o que influi no desempenho de cpu paulo andré castropauloac/ce703/ce703_cap2_6s_p2.pdf ·...
Post on 07-Nov-2018
214 Views
Preview:
TRANSCRIPT
1
Lei de Amdahl
� O ganho de desempenho possível de um dado melhoramento é limitado pela fração de tempo que a característica melhorada é usada.
� Suponha que um aperfeiçoamento ofereça um ganho de desempenho S para uma fração do tempo F. Qual o ganho de desempenho?
Exemplo � Se um computador executa um programa P em 100 segundos, onde 30%
das operações são acessos a memória com tempo médio de acesso de 80ms e 60% são operações de ponto flutuante.
A)Qual o impacto no desempenho global do sistema, ao se diminuir o tempo médio de acesso a memória pela metade ?
B)Qual o impacto no desempenho global, ao dobrar o desempenho das op. de ponto flutuante ?
Exemplo 2
� Se um computador executa um programa P em 100 segundos, onde 80% das operações são multiplicações. Quanto seria preciso melhorar o desempenho das multiplicações para que o sistema tive um ganho de desempenho de cinco vezes?
CE-703 / ITAPaulo André Castro
Desempenho
� Todos os componentes influem mas...
� O desempenho da CPU é crítico para o desempenho do Computador.� desempenhoCPU(X)= 1/TempoCPU(X)
CE-703 / ITAPaulo André Castro
O que influi no desempenho de CPU
CE-703 / ITAPaulo André Castro
Que programas utilizar para medir desempenho?
� Desempenho é medido com base em tempos de execução de programas selecionadas . Então, como selecionar?
� Situação ideal: usuário sabe exatamente quais programas utiliza com quais dados de entrada e testa nos computadores seus desempenhos. Factível?
2
CE-703 / ITAPaulo André Castro
Candidatos a programas de avaliação (benchmark)
� Programas reais� Dados de entrada
� portabilidade
� Aplicações modificadas� Uso de scripts para fornecer a interatividade
� Kernels� Implementam trechos de código comuns em vários
programas. Por exemplo: laços com operação de vetores (Linpack)
CE-703 / ITAPaulo André Castro
Candidatos a programas de avaliação (benchmark) 2
� Toy Benchmarks:� Crivo de Eratóstenes, QuickSort, etc.
� Benchmarks Sintéticos� Semelhante aos kernels, porém utilizam freqüência média de instruções
em grandes programas para selecionar as instruções.
� Ex. Whetstone e Dhrystone.
� Pacotes de programas de benchmark� Reunem vários outros benchmarks individuais para formar um pacote
� Ex. SPEC(Standard Performance Evaluation Corporation)
CE-703 / ITAPaulo André Castro
Programas de benchmark
� Há muitos programas de benchmark disponíveis. � Não há melhores ou piores,
� há aqueles mais ou menos adequados ao seu problema
� Embora se utilize freqüentemente dados de um benchmark para avaliar de forma absoluta dois computadores, lembre-se:� Desempenho é relativo ao programa!!
CE-703 / ITAPaulo André Castro
Exemplos de benchmark:Família SPEC www.spec.org
CE-703 / ITAPaulo André Castro
Riscos do uso de Benchmarks
� Atualmente existem vários benchmarks focados em medir o desempenho de sistemas embutidos…ver EEMBC (The Embedded Microprocessor Benchmark Consortium)
� Como muitas decisões de compra são feitas com base em benchmark, os projetistas são pressionados a otimizarem seus projetos para o benchmark
� Isso é realmente bom?
CE-703 / ITAPaulo André Castro
Como Melhorar o desempenho?� Instruction Set
� Pipeline, processadores superescalares, matriciais, vetoriais, etc.
� Organização� Hierarquia de Memória, barramentos especializados, memória
entrelaçada, etc.
� Tecnologia� Aumento da Taxa de clock, consumo de potência, etc.
3
Abordagens para Conjuntos de Instruções
CE-703 / ITAPaulo André Castro
Projetando Instruções
� Instruções com tempo de execução muito diferentes ou com número de fases muito diferentes não são adequadas para uma linha de produção (pipeline)� Porque não criar instruções simples com pequenas diferenças em
tempo de ex. de fases (e mesmo número de fases)
� Não seria mais vantajoso:� Criar instruções poderosas que resolvessem problemas comuns ao
invés de instruções simples que resolvem quase nada?
Abordagens para Conjuntos de Instruções � Final dos anos 70, surge a idéia de Computadores de arquitetura de alto
nível (HLLCA – High Level Language Computer Architecture)
� No ínicio dos anos 80, Ditzel e Patterson argumentavam que arquiteturas mais simples seriam o melhor caminho e apresentam a idéia do Reduced Instruction Set Computer (RISC)
� Na mesma época, alguns projetistas (VAX) refutaram a idéia e seguiram construindo computadores baseados em conjuntos de instrução complexos (Complex Instruction Set Computer, CISC)
CE-703 / ITAPaulo André Castro
Desenvolvimento
� Os desenvolvimentos RISC e CISC continuaram em paralelo,disputando mercado� A arquitetura teve três grandes projetos iniciais:
� RISC de Berkeley(Patterson e outros)
� IBM 801
� MIPS de Stanford (Hennessy e outros)
CE-703 / ITAPaulo André Castro
RISC x CISC� Para ajudar a resolver o debate entre RISC e CISC, os
projetistas do VAX fizeram uma comparação entre o VAX 8700 e o MIPS M2000 no início dos anos 90. � VAX: Modos de endereçamentos poderosos, instruções eficientes,
codificação de instrução eficiente e poucos registradores� MIPS M2000: Instruções simples, modos de endereçamentos simples,
formato de instruções de comprimento fixo, grande número de registradores, pipelining
� Os computadores tinham organizações semelhantes e tempos de clock iguais
CE-703 / ITAPaulo André Castro
Gráfico de DesempenhoMIPS / VAX
4
CE-703 / ITAPaulo André Castro
RISC x CISC
� Finalmente, sobreviveu apenas um CISC a este embate: x86� Alto volume de chips
� Compatibilidade binária com o software do PC
� Conversão interna de CISC para RISC
� Escala suficiente para suportar o hardware extra
CE-703 / ITAPaulo André Castro
RISC x CISC
� Mercado Embutido � Celulares, PDAs, eletrodomésticos,...� Crítico Custo e Energia: Não há espaço para conversão de
hardware� Utiliza Compiladores e Arquiteturas RISC
� Em 2000, o número de processadores embutidos comercializados foi mais de duas vezes o número de processadores x86 (mais de 90% deles RISC)
Abordagens para Arquitetura de Conjuntos de Instruções
CE-703 / ITAPaulo André Castro
Comparando Instruções Numéricas
CE-703 / ITAPaulo André Castro
Registradores de Propósitos Gerais dominam
CE-703 / ITAPaulo André Castro
Exemplos de Formato de Conjunto de instruções
5
CE-703 / ITAPaulo André Castro
Mundo RISC (CISC)
� Exploração do Paralelismo� Entre fases
� Entre Instruções
� Entre Threads
� Entre programas
� Solução dos novos problemas trazidos pelo paralelismo
Dentro da CPU: Como realmente funciona um computador
CE-703 / ITAPaulo André Castro
Os cinco componentes clássicos de um Computador - Controle
CE-703 / ITAPaulo André Castro
Processador com Acumulador: Um Caso Extremamente Simples
CE-703 / ITAPaulo André Castro
Microprograma da CPU comAcumulador
Revisão: Como Funciona o Hardware Digital
6
CE-703 / ITAPaulo André Castro
Processador = Software implementado em Hardware Digital
� Revisão: Como Funciona o Hardware Digital� Representação Numérica e Operações Matemáticas
� Lógica Digital
� Memória
� Transistor
Representação Numérica
� Equivalência entre os sistemas:
(29)base 10 = (11101)base 2 = (35)base 8 = (1D)base 16
Sistema Base Alfabeto
Decimal 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Binário 2 0, 1,
Octal 8 0, 1, 2, 3, 4, 5, 6, 7,
Hexadecimal 16 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,A,B,C,D,E,F
CE-703 / ITAPaulo André Castro
Representação de Números
� Um número em base B, pode ser representado como (aj, aj-1,aj-2,...a0)B , onde 0 ≤ ak ≤ B-1 e escrito na forma polinomial:� ajBj + aj-1Bj-1 + aj-2Bj-2 + .......+ a1B1 + a0B0
� Logo:� (347)10 = 3 x I02 + 4 x l01 + 7 x 100
� (10111)2 = 1 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 1 x 20
CE-703 / ITAPaulo André Castro
Conversão de Base
CE-703 / ITAPaulo André Castro
Computadores e Sistema Binário
� Números Negativos (dois zeros)� Complemento de 2
� Números Fracionários (ponto flutuante)� Mantissa e expoente
CE-703 / ITAPaulo André Castro
Complemento de 2
Conversão de Base:
• Se Positivo(isto é, bit de sinal igual a zero): Conversão Normal
• Se Negativo: Complementa número sem sinal, adiciona 1 e faz a Conversão Normal
7
CE-703 / ITAPaulo André Castro
Deslocamento
CE-703 / ITAPaulo André Castro
Números Fracionários (Ponto Flutuante)� Inteiros
� (15)10= (01111)2 = 23+22+21 +20 = 8+4+2+1
� Números binários fracionários� (1,5)10 = (1,1)2 = 20+2-1 = 1+0,5 = (1,5)10
� (0,101)2 = 1*2-1 +0*2-2 + 1*2-3 = 0,5+0+0,125 = (0,625)10
CE-703 / ITAPaulo André Castro
Conversão de Números Fracionários� De binário para Decimal:
� (0.1011)2 = 2-1+2-3+2-4 = 0,5+0,125+0,0625 = = (0,6875)10
� (0.1001)2 = 2-1+2-4 = 0,5+0,0625 = (0,5625)10
� (111.101) = 22 + 21+20 + 2 -1 + 2-3 = 4+2+1 + 0,5+0,125= (7,625)10
� Conversão de Fracionários para base 22,25 -> Parte Inteira: (2)10= (10)2
-> Parte Fracionária (0,25)10 = (0.01)2Número: (2,25)10 = (10,01)2
CE-703 / ITAPaulo André Castro
Conversão de Fracionários
CE-703 / ITAPaulo André Castro
Conversão de Fracionários - 2
CE-703 / ITAPaulo André Castro
Algoritmo para Conversão de Base
� A representação em base 10 (0,d1 d2 ..dj-1 dj ) pode ser obtida através dos seguintes passos:
� Observe que o algoritmo pode nunca parar...
� Como solucionar o problema do possível loop infinito?
8
CE-703 / ITAPaulo André Castro
Conversão de Base
CE-703 / ITAPaulo André Castro
Ponto Flutuante em Computadores
CE-703 / ITAPaulo André Castro
Processador = Software implementado em Hardware Digital
� Revisão: Como Funciona o Hardware Digital� Representação Numérica e Operações Matemáticas
� Lógica Digital
� Memória
� Transistor
CE-703 / ITAPaulo André Castro
Lógica Digital (Booleana)
CE-703 / ITAPaulo André Castro CE-703 / ITAPaulo André Castro
9
CE-703 / ITAPaulo André Castro CE-703 / ITAPaulo André Castro
CE-703 / ITAPaulo André Castro
Portas Lógicas
CE-703 / ITAPaulo André Castro
CE-703 / ITAPaulo André Castro CE-703 / ITAPaulo André Castro
10
CE-703 / ITAPaulo André Castro
A suficiência da Porta NAND
CE-703 / ITAPaulo André Castro
Portas lógicas podem ser implementadas dentro de Chips
CE-703 / ITAPaulo André Castro
Portas Lógicas em Transistores
CE-703 / ITAPaulo André Castro
Multiplexadores
� Multiplexar significa transmitir um grande número de informações através de um número pequeno de linhas ou canais
� 2^n linhas de entrada para uma saída e n linhas de controle
� • As linhas de controle especificam QUAL das 2^n possibilidades é transmitida para a saída
CE-703 / ITAPaulo André Castro
Implementando um multiplexador: Exercício
CE-703 / ITAPaulo André Castro
Implementando um multiplexador: Solução
11
CE-703 / ITAPaulo André Castro
Somadores� Meio-somador (sem
contabilização de carry ou “vai-um”)
� Efetua a adição de 2 dígitos binários (não leva em consideração o “vai-um”)
� • Entradas:� A e B - os 2 bits a serem
somados
� • Saídas:� S e C - a Soma e o bit de Vai-
um (Carry)
CE-703 / ITAPaulo André Castro
Somadores - 2
� Somador Completo
� Efetua a adição de 2 dígitos binários (não leva em consideração o “vai-um”)
� • Entradas:� A e B - os 2 bits a serem somados e o “vem-um”
� • Saídas:
� S e C - a Soma e o bit de Vai-um (Carry)
CE-703 / ITAPaulo André Castro
Somador Completo
CE-703 / ITAPaulo André Castro
Memória
� Circuitos Combinacionais não possuem capacidade de “armazenamento” da informação
� A mudança dos valores das entradas implica necessariamente uma mudança dos valores das saídas
� Um Flip Flop é uma célula binária capaz de armazenar um bit de informação (multivibrador biestável)
CE-703 / ITAPaulo André Castro
Flip Flops
� Tem 2 saídas: uma para o valor considerado “normal” e outra o complemento deste valor
� Um FF mantém o valor da saída (diz-se o seu ESTADO) até que um SINAL (clock) o comande TROCAR DE ESTADO
� Sinal de clock (relógio)
� Tipos comuns de Flip Flops� RS
� D
� JK
CE-703 / ITAPaulo André Castro
Sinal de Clock (Relógio)
� As mudanças de estado só acontecem com a
� transição do sinal do Relógio do circuito
� Sincronização no sistema
� As mudanças podem ocorrer tanto na borda ascendente quanto descendente
12
CE-703 / ITAPaulo André Castro
Flip Flop RS
� 2 entradas: R e S
� R para Reset (colocar no estado O)
� S para Set (colocar no estado 1)
CE-703 / ITAPaulo André Castro
Flip Flop JK
� Modificação no FF RS. O estado indefinido do FF RS é definido no FF JK
� 2 entradas: J e K
� K para Reset (colocar no estado O)
� J para Set (colocar no estado 1)
CE-703 / ITAPaulo André Castro
Flip Flop D
� 1 entrada D (de Dado)
� Transfere o dado de entrada para a saída
CE-703 / ITAPaulo André Castro
Implementação de Flip Flop D em Portas Lógicas
Um Processador Simples com Registradores de Propósitos Gerais
CE-703 / ITAPaulo André Castro
Um Processador de Registradores de Propósitos Gerais (MIPS de ciclo único)
13
CE-703 / ITAPaulo André Castro
Um Exemplo: MIPSPrincipais Instruções� Adição
� add R1,R2,R3; R1 = R2 + R3
� Subtração � sub R1,R2,R3; R1 = R2 – R3
� Adição de constante (add immediate )� addi R1,R2,100; R1 = R2 + 100
� Multiplicação (resultado em 64 bits) � mult R2,R3; Hi, Lo = R2 x R3
� Divisão (resultado em 64 bits) � div R2,R3; Lo = R2 ÷ R3, Hi = R2 mod R3 � Lo = quotient, Hi = remainder
CE-703 / ITAPaulo André Castro
Formato dos Conjunto de Instruções MIPS
CE-703 / ITAPaulo André Castro
Um Exemplo: MIPSPrincipais Instruções� Alterar memória (word)
� SW R3, 500(R4) Mem[R4 + 500] =R3
� Ler memória (word)� LW R1, 30(R2) R1 = Mem[R2 + 30]
� Desvio Condicional� beq R1,R2,100 if (R1 == R2) go to PC+4+400
� Desvio incondicional (constante)� jump j 2500; go to 10000
� Desvio incondicional (registrador)� jr R31; go to R31
CE-703 / ITAPaulo André Castro
Formato de Instruções MIPS
CE-703 / ITAPaulo André Castro
Unidades Funcionais e Controle no MIPS
CE-703 / ITAPaulo André Castro
Carregamento de Instrução
14
CE-703 / ITAPaulo André Castro
Controlando Operações R-type Adição/Subtração/And/or...
CE-703 / ITAPaulo André Castro
IF no fim de uma instrução
CE-703 / ITAPaulo André Castro
Instrução Load
CE-703 / ITAPaulo André Castro
Instrução Store
CE-703 / ITAPaulo André Castro
Instrução de Desvio Condicional
CE-703 / ITAPaulo André Castro
IF ao fim de uma instrução de desvio condicional
15
CE-703 / ITAPaulo André Castro
Desvio não condicional
CE-703 / ITAPaulo André Castro
IF ao fim de uma desvio não-condicional
CE-703 / ITAPaulo André Castro
Sumário dos Sinais de Controle
CE-703 / ITAPaulo André Castro
Decodificação Local – Controle da ALU
CE-703 / ITAPaulo André Castro CE-703 / ITAPaulo André Castro
16
CE-703 / ITAPaulo André Castro
Como melhorar desempenho ?
•Desempenho é o inverso do tempo...
• O tempo de execução de uma instrução é a soma dos tempos gastos pelas unidades funcionais
•O que faz a ULA enquanto se carrega uma nova instrução?
•O que faz a unidade de memória enquanto a ULA realiza uma operação?
•Idéia: usar o pipeline.....mas é necessário controlar o pipeline, o controle é igual?
Melhorando o desempenho com Pipeline
CE-703 / ITAPaulo André Castro
Pipeline� Pipeline: Uma idéia natural
� Linhas de montagem
� Dividir a tarefa em sub-tarefas seqüenciais, alocar recursos para cada sub-tarefa e controlar as mudanças de fase
� Ex: Lavanderia� Lavar e Secar: 4h. Logo, 4 cestas demorariam 16h� Lavar: 2h e Secar: 2h. Quanto 4 cestas demorariam?� 10h
Pipeline de Ciclo de Instrução
� Pipeline do ciclo de instrução: uma instrução pode ser (por exemplo) dividida em:� Recuperação da instrução (RI) IF, Decodificação da
instrução (DI) ID, Obtenção dos operandos (OO) , Execução (EX) e Armazenamento do resultado (AR).
CE-703 / ITAPaulo André Castro
Instruções paralelizadas Qual o ganho de desempenho com pipeline?
� Diagramas Estágio x Tempo
17
CE-703 / ITAPaulo André Castro
Conceitos Básicos� n: número de instruções� p: número de estágios do pipeline;� Tj (1 ≤ j ≤ p): demora em Ej;� TL: demora de transição de estágio� T: período de clock (ciclo de máquina)� Tmax= max{Ti}
� T = Tmax + TL; f: freqüência = 1/T;
CE-703 / ITAPaulo André Castro
Medindo o ganho...� Gp: ganho com p estágios
� Ganho = (Tempo sem pipeline)/(Tempo com pipeline)� Sem pipeline: t1 = n * p * T� Com pipeline: tp = (p + n – 1) * T� Gp = n*p / (p+n -1)
� Se n >> p, Gp aproximadamente p� Então, quanto maior p maior o ganho ?
Eficiência do Pipeline
� ηηηη: eficiência – relação entre a área ocupada e a área total do diagrama Estágio x Tempo
Produtividade (throughput)
� W: produtividade – número de tarefas completadas por unidade de tempo
CE-703 / ITAPaulo André Castro
Impedimentos
� Impedimentos para valores máximos em ganho, eficiência e produtividade:� Estágios de diferentes tempos
� Falhas em caches
� Instruções de diferentes durações
� Dependências� Recursos
� Desvios e interrupções nos programas
� Dados
CE-703 / ITAPaulo André Castro
Problemas no Pipeline
18
CE-703 / ITAPaulo André Castro
O Problema do Desnível entre Fases e Instruções
CE-703 / ITAPaulo André Castro
Problemas no Pipeline: Dependências� Conflito de Recursos
� Dependência de Dados� RAW: Read After Write
� WAR: Write After Read
� WAW: Write After Write
� Dependência de Controle� Predição de Desvios, Desvios Retardados
Conflito de Recursos
� Também conhecido por Hazard Estrutural ou ainda Dependência Funcional� Resultado da competição de duas ou mais instruções pelo mesmo recurso
ao mesmo tempo � Soluções:
� uma das instruções deve esperar � aumento dos recursos
CE-703 / ITAPaulo André Castro
Controle do Uso de Recursos� Quando uma dependência envolve apenas recursos da CPU
(registradores ou unidades funcionais), costuma-se usar uma tabela de reserva dos recursos.
� Toda instrução antes de ser executada faz um cheque na tabela sobre os recursos que utilizará; se algum(uns) dele(s) estiver(em) marcado(s), ela é bloqueada, até eles sejam liberados.
� Após o uso, a instrução libera o recurso desmarcando a tabela de reserva
� Se a dependência envolver local de memória pode-se utilizar um sistema de bloqueio desse local.
CE-703 / ITAPaulo André Castro
Dependência de Dados
� Dependência WAR (Write After Read) � A = B+ C
� B = C + D
� Causa Problemas ?
� Falsa Dependência: sem problemas desde que não exista execução fora de ordem
CE-703 / ITAPaulo André Castro
Dependência de Dados
� Dependência WAW (Write After Write)� A = B+C
� A = D+E
� Causa Problemas ?
� Falsa Dependência: sem problemas desde que não exista execução fora de ordem
19
CE-703 / ITAPaulo André Castro
Dependência de Dados
� Dependência RAW (Read After Write) � I1: A = B+ C
� I2: E = A + D
� Causa Problemas?
� Sim. Instrução I2 só pode captar o valor de A após o término da instrução I1
� Solução Simples� Atrasar instrução I2. Quantos Clocks?
CE-703 / ITAPaulo André Castro
Pipeline MIPS
� O MIPS utiliza um pipeline com profundidade 5, porém com uma divisão de fases diferente da tradicional: RI, DI, OO, EX, AR. Fases do pipeline MIPS:
� IF: Instruction Fetch – carregamento de instrução
� ID/RF: Decodificação de registradores e carregamento de registradores
� EX: execução
� MEM: Acesso a memória para acessar dados (load e store)
� WB: Armazenamento do resultado
CE-703 / ITAPaulo André Castro
Visão do pipeline MIPS com Unidades Funcionais
IF ID/RF EX MEM WB
CE-703 / ITAPaulo André Castro
Problemas no Pipeline: Dependências� Dependência (Conflito) de Recursos
� Dependência de Dados� RAW: Read After Write
� WAR: Write After Read
� WAW: Write After Write
� Dependência de Controle� Predição de Desvios, Desvios Retardados
CE-703 / ITAPaulo André Castro
Dependência de Dados - RAW
Solução: atrasar o pipeline (via SW ou via HW)
CE-703 / ITAPaulo André Castro
Implementando o atraso do Pipeline através de Hardware
20
CE-703 / ITAPaulo André Castro
Implementando o atraso do pipeline através de software
CE-703 / ITAPaulo André Castro
Dependência RAW ao Carregar dados
CE-703 / ITAPaulo André Castro
Dependência RAW no carregamento
Obs.: O dado estará disponível ao final de MEM, não ao final de EX como nas Operações R-type
CE-703 / ITAPaulo André Castro
Atrasando o pipeline em carregamento de dados –Quantos clocks são necessários?
CE-703 / ITAPaulo André Castro
Dependências RAW
� Esses problemas são comuns?� Operações R-type: 3 bolhas (stalls) por dependência
� Logo, 3 unidades funcionais ociosas.
� Há como evitar a ocorrência da dependência?
� Há como diminuir a ociosidade ?
CE-703 / ITAPaulo André Castro
Redução de Penalidade em R-Type: Bypassing
21
CE-703 / ITAPaulo André Castro
Encaminhamento em Carregamentos
Seria possível eliminar este atraso ?
CE-703 / ITAPaulo André Castro
Implementando o Bypassing
•Necessário mais multiplexadores para receber entrada dos dados
•Assume-se que durante ID/RF, as gravações são feitas antes das leituras
CE-703 / ITAPaulo André Castro
Como controlar o Encaminhamento?
Controle de Bypassing
Com bypassing (novas opções): Saída da EX, Saída da DM (memória) e Saída da DM (EX)
Perguntas: 1) Porque não saída de WB?
2) Porque buscar valor calculado em EX na Saída de DM?
Além do Pipeline:Processadores Superescalares
Instruction Level Paralelism (ILP)
� Pipelining cria uma barreira teórica de CPI(Clock por instrução) igual a 1,0.
22
CE-703 / ITAPaulo André Castro
Limites do Pipelining
� CPI real = CPI teórico + atrasos estruturais + atrasos por dependência de dados + atrasos por desvios
� CPI teórico em pipeline é aproximadamente 1� Logo CPI real >1.
� Como poderia ser alterada a cpu para obtermos CPI < 1 ? Idéias ?
CE-703 / ITAPaulo André Castro
Como avançar na exploração do paralelismo entre instruções� Pipeline
� Super-pipeline� Aprofundar o pipeline, fazendo com que as fases clássicas levem vários
ciclos
� Superescalar� Linhas de execução em paralelo
� Novas dependências
� VLIW� Cada “pacote”, especifica várias instruções
CE-703 / ITAPaulo André Castro
Em busca de CPI menor que 1
� Superescalar:� Instruções ordenadas por compilador ou por hardware
(algoritmo de Tomasulo)� PowerPC, Sun SPARC, Cell Be (Playstation...), x86, etc.
� Very Long Instruction Word (VLIW):� Instruções organizadas em pacotes pelo compilador.
� Bastante utilizada em sistemas embutidos
� Chamado de EPIC pela Intel. Ex.: Itanium
CE-703 / ITAPaulo André Castro
Avançando em ILP
� Mesmo em processadores RISC necessariamente há instruções com tempos de execução muito diferentes. Exemplos:
� soma de inteiros (add) e
� divisão de ponto flutuante (DIV.D)
� Qual o problema?
� Qual a Solução?
CE-703 / ITAPaulo André Castro
Avançando em ILP
� Permitir mais de uma instrução entrar na fase de execução� Emissão em ordem
� Tempos diferentes de execução
� Logo, possível conclusão fora de ordem
Dependências WAW e WAR e Conclusão de Execução Fora de Ordem
23
CE-703 / ITAPaulo André Castro
Conclusão Fora de Ordem� Exemplo:
� DIV.D F0,F2,F4
� ADD.D F10,F0,F8
� SUB.D F12,F8,F14
� Problema: ? SUB é atrasada(desdobrada)
� Solução: Executar SUB.D antes de ADD.D
CE-703 / ITAPaulo André Castro
Problemas no Escalonamento Dinâmico� Exemplo 2:
� I1: DIV.D F0,F2,F4
� I2: ADD.D F6,F0,F8
� I3: SUB.D F8,F10,F14
� I4: MUL.D F6,F10,F8
� Dependências?
� Executar na ordem: I1,I3,I2,I4 diminui atrasos. Problemas?
� Como resolver?
CE-703 / ITAPaulo André Castro
Solução para Dependências Falsas� Requisito: Permitir execução fora de ordem, sem mudar o
resultado do programa
� Renomear registradores para evitar falsas dependências (WAW e WAR)
� Exemplo (WAW):� MUL.D R1,R2,R3� ADD.D R2, R1,R3� SUB.D R1,R4,R5
� Solução:� MUL.D R1,R2,R3� ADD.D R2, R1,R3� SUB.D R5,R4,R5 (Substituir R1 por R5, isto é, outro registrador não
utilizado (não lido) até seu próximo ponto de gravação)
CE-703 / ITAPaulo André Castro
Requisitos para Solução� Exemplo (WAR):
� MUL.D R1,R2,R3� ADD.D R6,R1,R2� SUB.D R3,R4,R5� ....� ADD.D R9,R4,R3
� Solução:� MUL.D R1,R2,R3� ADD.D R6,R1,R2� SUB.D R8,R4,R5 (Substituir R3 por R8, isto é outro registrador não
utilizado (não lido) até seu próximo ponto de gravação)� ....� ADD.D R9,R4,R8
CE-703 / ITAPaulo André Castro
Requisitos para Solução
� Identificar instruções sem dependências e permitir que ultrapassem instruções com dependências
� Identificar e Bloquear instruções com dependências de dados ou dependências estruturais
� Manter o pipeline o mais eficiente possível
CE-703 / ITAPaulo André Castro
Métodos de Solução� Software
� Com grandes conjuntos de registradores, o compilador pode eliminar perigos WAR e WAW através de renomeação
� Eventualmente pode usar “moves” entre registradores� Erros (ou omissão) no compilador podem levar a baixa eficiência do
processador!!!
� Hardware� Não tem como observar instruções à frente, mas consegue eliminar
dependência em relação a registradores� Scoreboard� Algoritmo de Tomasulo
24
CE-703 / ITAPaulo André Castro
Tomasulo
CE-703 / ITAPaulo André Castro
CE-703 / ITAPaulo André Castro
Informações de Controle� Estações de Reserva
� Op: código da operação� Qj,Qk : Estações de reserva que produzirão o operando� Vj,Vk : O valor dos operandos de origem, apenas um valor entre V e Q é
valido. Em instruções de carga, guarda o endereço� A : Usado para guardar informações sobre cálculo de endereços� Busy: Indica se a estação de reserva está sendo usada ou não
� Registradores� Qi: O número da estação de reserva que irá gerar o resultado, se zero o
valor do registrador é o valor correto
CE-703 / ITAPaulo André Castro
Exemplo de aplicação com Tomasulo
� Instruções� L.D F6,34(R2)
� L.D F2,45(R3)
� MUL.D F0,F2,F4
� SUB.D F8,F2,F6
� DIV.D F10,F0,F6
� ADD.D F6,F8,F2
CE-703 / ITAPaulo André Castro
Exemplo Tomasulo – Instante 1
CE-703 / ITAPaulo André Castro
Exemplo Tomasulo - Instante 2
25
CE-703 / ITAPaulo André Castro
Estados das Instruções
CE-703 / ITAPaulo André Castro
Instante 2 - Tomasulo
Fonte: Hennessy & Patterson, pg. 140. Erro no Livro: F0 (e não F2) será gravada por Mult1
Sistemas de Memória
CE-703 / ITAPaulo André Castro
Memória: O Gargalo de Von Neuman� Memória principal: considerada como sendo o gargalo da
arquitetura de Von Neumann:
� O ciclo da memória principal costuma ser 4 a 20 vezes maior que o ciclo de máquina.
� Se o processador não recebe instruções tão rapidamente quanto ele pode processar, o que ele faz?
� Como tornar a memória tão rápida quanto a CPU ?
CE-703 / ITAPaulo André Castro
Sistema de Memória
� Porque toda a memória de um computador não pode ser feita da mesma tecnologia da CPU ?
� Seu custo seria elevadíssimo, pois o volume de informações é muito grande.
� A tecnologia da CPU tipicamente produz memórias voláteis.
CE-703 / ITAPaulo André Castro
Sistema de Memória
� Muitas informações devem permanecer, mesmo após a máquina ser desligada.� Memória não-volátil
� Volatilidade versus Desempenho� Memórias voláteis tender a ser sempre mais rápidas que memórias não-
voláteis
� Importante: Grande parte das informações não é utilizada considerando pequenos intervalos de tempo.
26
CE-703 / ITAPaulo André Castro
Princípio da Localidade� “Os programas tendem a reutilizar dados e instruções que
usaram recentemente.”� “Regra prática”: um programa passa 90% de seu tempo de execução em 10% de
seu código.
� Também aplica-se a dados mas não tão fortemente quanto em instruções.
� Dois Tipos de localidade:� Localidade espacial� Localidade Temporal
� Como tirar vantagem dessa característica para obter mais desempenho?
CE-703 / ITAPaulo André Castro
Hierarquia de Memória
CE-703 / ITAPaulo André Castro
Perguntas
� Os níveis mais altos devem ser sempre mais rápidos e os mais baixos maiores. Por quê?
� Em que situação é vantajoso introduzir novos níveis na hierarquia?
� Ao colocar informações nos níveis mais altos, deve-se apagar dos níveis mais baixos?
CE-703 / ITAPaulo André Castro
Níveis de Memória Visíveis
� Registradores � Memória de trabalho da CPU para armazenamento temporário de instruções e dados;� registradores de propósitos gerais, vários registradores de propósitos específicos (AR, PC,
IR, SP, Flags, etc.);
� Memória Principal� Em comparação com os registradores da CPU, sua tecnologia costuma ser inferior e sua
capacidade de armazenamento é bem maior
� Deve ser suficientemente grande para armazenar os programas em execução e seus respectivos dados
� Até 70 vezes mais lenta que os registradores
� Memória Secundária� Não volátil
� Memória de overflow
� Grande desnível em relação a memória principal
CE-703 / ITAPaulo André Castro
Memória Cache � Armazena cópia das regiões da memória principal mais
freqüentemente usadas pela CPU, num curto intervalo de tempo;
� Diferente das outras memórias caches são transparentes aos programadores (mesmo em assembly);
� Computadores com vários níveis hierárquicos de cache são comuns atualmente, tipicamente os níveis mais altos ficam no mesmo circuito integrado da CPU;
CE-703 / ITAPaulo André Castro
Memória Cache 2� Em multiprocessadores,
� Várias processadores demandam informações de uma memória, logo a cache também é fundamental
� há complexidade adicional para controlar o acesso a cache de modo coerente
� Muitas vezes é dividida em Cache de dados e cache de instruções� Cache de Instruções
� A próxima instrução a ser executada é retirada do cache de instruções;
� não estando ali presente, nova seqüência é carregada no CI:� Caso o CI contenha aninhamentos inteiros de laços com grande número de
repetições, serão evitados inúmeros acessos à memória
27
CE-703 / ITAPaulo André Castro
Funcionamento da Hierarquia de Memória
CE-703 / ITAPaulo André Castro
O que trafega entre os níveis ?
CE-703 / ITAPaulo André Castro
Perguntas
� Porque os blocos de transferência mais baixos são iguais ou maiores?
� Pode ocorrer que um dado esteja em nível superior, mas não no nível logo inferior? Como?
CE-703 / ITAPaulo André Castro
Funcionamento da Memória Cache
CE-703 / ITAPaulo André Castro
Quatro perguntas sobre Organização da Cache
� P1: Onde um bloco pode ser inserido no nível superior (posicionamento do bloco) ?
� P2: Como um bloco é encontrado se está no nível superior da hierarquia (cache) ?
� P3: Que bloco deve ser substituído ao ocorrer uma falha (substituição do bloco) ?
� P4: O que acontece em uma gravação (estratégia de gravação) ?
CE-703 / ITAPaulo André Castro
Conceitos Úteis
� A cache é divida em blocos com um número fixo de palavras de memória (nível mais alto)
� O endereço de memória é então divido em duas partes: � O endereço do bloco (às vezes, chamado de título, ou tag)
� A posição da palavra dentro do bloco (offset)
� Bits de offset = log2 (Tamanho do Bloco)
� Endereço do Bloco = Endereço – bits de offset
28
CE-703 / ITAPaulo André Castro
Posicionamento do Bloco
� Abordagens:� Cache de Mapeamento Direto
� Cada bloco da memória só pode ser colocado em uma posição da memória
� Ex. (Endereço do Bloco) mod (Número de blocos na cache)
� Cache Completamente Associativo� Cada bloco pode ser alocado em qualquer posição da cache
� Posição definida pela estratégia de substituição
CE-703 / ITAPaulo André Castro
Posicionamento do Bloco
� Abordagens (Continuação)� Cache Associativo de Conjunto
� Um bloco da memória pode ser deslocado para um único determinado conjunto ( o qual conta com um certo número de blocos), dentro do qual o bloco pode ser colocado em qualquer posição
� Ex.: Conjunto Escolhido = (Endereço do Bloco) mod (Número de conjuntos na cache)
CE-703 / ITAPaulo André Castro
Abordagens de Posicionamento
CE-703 / ITAPaulo André Castro
Vantagens e Desvantagens das Abordagens
� Mapeamento Direto� Vantagens: Simplicidade
� Desvantagens: Possível Ineficiência com inflexibilidade
� Completamente Associativo� Vantagens: Total flexibilidade
� Desvantagens: Complexidade e custo de implementação
� Associativo de Conjunto� Vantagens e Desvantagens: Meio termo entre as anteriores
CE-703 / ITAPaulo André Castro
Quatro perguntas sobre Organização da Cache
� P1: Onde um bloco pode ser inserido no nível superior (posicionamento do bloco) ?
� P2: Como um bloco é encontrado se está no nível superior da hierarquia (cache) ?
� P3: Que bloco deve ser substituído ao ocorrer uma falha (substituição do bloco) ?
� P4: O que acontece em uma gravação (estratégia de gravação) ?
CE-703 / ITAPaulo André Castro
Organização da Cache
29
CE-703 / ITAPaulo André Castro
Acessando a cache
� Exemplo:
� Endereço 01173 → título 0117 → Sucesso → DR←←←←12
� Endereço 01163 → título 0116 → Falta → Procura na memória principal
CE-703 / ITAPaulo André Castro
P2: Como um bloco é encontrado na cache ?
•O Tag marca o endereço de memória ao qual corresponde o bloco de cache e também se utiliza um bit para marcar a validade ou não do bloco (bit de validade)
• Tags sempre são pesquisadas em paralelo
CE-703 / ITAPaulo André Castro
P3: Substituição do Bloco
• Que bloco pode ser substituído ao ocorrer uma falha?
•Mapeamento direto: Não há decisão a ser feita, pois cada bloco é direcionado para um bloco de cache
•Mapeamento Completamente associativo ou de conjunto: várias opções
•Aleatória: Escolhe-se aleatoriamente um bloco para a substituição
•Menos recentemente usado(Least Recently Used): Registra-se os acessos aos blocos e se retira do cache o menos usado recentemente. Baseia-se no passado para prever o futuro
CE-703 / ITAPaulo André Castro
Implementação do LRU
� Implementação com Contador� Guardar para cada bloco, em um campo contador o número
do último acesso (em clocks)
� Substitui-se o bloco com menor clock
� Implementação com Pilha� Manter em uma pilha os números de cada bloco
� Ao ser realizada acesso a um bloco X, este passaria ao topo da pilha
� Substitui-se o bloco cujo número está na base da pilha
CE-703 / ITAPaulo André Castro
Implementação Aproximada de LRU� Exige bastante do hardware
� Criar um campo de referência com n bits� Em cada acesso setar para 1
� Deslocar
� Primeiro a entrar, Primeiro a sair( First In First out, FIFO), Esta opção se aproxima ao substituir o mais antigo, no lugar do menos recentemente usado
CE-703 / ITAPaulo André Castro
P4: Estratégia de Gravação � As leituras dominam as operações de memória, mas também
existem escritas. Segundo algumas estimativas, aproximadamente 10%
� Estratégias de Solução:� Write-Through: As informações são gravadas no cache e na memória
inferior
� Write-Back: As informações são gravadas apenas no cache. A gravação na memória ocorrerá apenas quando houver substituição do bloco.
30
CE-703 / ITAPaulo André Castro
Estratégias de Gravação
� Write-Back� Vantagens
� Usa menos largura de Banda da Memória (Multiprocessadores)
� Poupa Energia por usar menos HW
� Desvantagens� Precisa controlar atualização da Memória
� Falha de leitura pode causar gravação
� Memória fica inconsistente com a cache (multiprocessadores)
CE-703 / ITAPaulo André Castro
Estratégias de Gravação
� Write-Through� Vantagens
� Mais fácil de Implementar
� Falha de leitura não causa gravação
� Nível Inferior sempre coerente (multiprocessadores)
� Desvantagem� Gravações sempre demoram o tempo do nível inferior, mesmo em
caso de acerto
CE-703 / ITAPaulo André Castro
Buffer de Gravação
• Write-Through– Buffer de Gravação para evitar atrasar a CPU– FIFO (First In, First Out)– Tipicamente em torno de 4 entradas
• Problema: Frequência de Instruções de Gravação maior que frequência da DRAM (Saturação do Buffer)
CE-703 / ITAPaulo André Castro
Buffer de Gravação 2
• Problema: Freqüência de Instruções de Gravação maior que capacidade de atendimento da DRAM (Saturação do Buffer)
• Solução: Aumentar o desempenho das gravações através da introdução de outro nível de cache
CE-703 / ITAPaulo André Castro
Falha de Gravação
� Ao tentar gravar um dado que não está na cache há duas opções:
� Write Allocate (Gravação com Alocação) : � Traz o bloco que contém o endereço para a cache
� Write Not Allocate (Gravação sem Alocação): � O dado fica apenas na memória principal
CE-703 / ITAPaulo André Castro
Definições
� Ciclo de Memória: tempo para devolver a CPU uma palavra
� Palavra de Memória: conjunto de bytes que pode ser entregue a CPU a cada requisição.
� Taxa de Transferência: número de bytes por unidade de tempo entregues pela memória.
� Exemplo:� palavra de 32 bits ou 4 bytes� ciclo de memória = 50 ns; � taxa de transferência: 640 Mbits/s ou 80 MB/s.
31
CE-703 / ITAPaulo André Castro
Como melhorar o desempenhoda Memória?� Reduzir o ciclo de memória
� usando memória cache
� Melhorar taxa de acerto
� Aumentar o tamanho da palavra� Acessar várias palavras em paralelo (usando memória
entrelaçada).
CE-703 / ITAPaulo André Castro
Desempenho da Memória
•Nem todo acesso à memória é atendido pela cache;•Quando é atendido→ Sucesso na cache•Quando não → Falha na cache
•Grandeza Fundamental para o desempenho do sistema de Memória com Cache:
•Taxa de sucesso (ou taxa de acerto)
CE-703 / ITAPaulo André Castro
Desempenho da Memória
� O tempo efetivo de um sistema com cache é um valor intermediário entre os tempos da cache e da memória principal.� Tef = h * Tc + (1 – h) * Tm (0 ≤ h ≤ 1)
� Taxa de sucesso h: probabilidade de sucesso na cache
� Taxa de falha (1-h): probabilidade de falha na cache
CE-703 / ITAPaulo André Castro
Desempenho da Memória
� Taxa de Erro e Penalidade � Tef = Tc + (Tx. Erro)* Penalidade
� Tx. Erro = (1-h)
� Penalidade = Tm-Tc
� Qual o tempo efetivo considerando dois níveis de caches ?� Tef = h * Tc + (1 – h) * [ h2 * Tc2 + (1-h2)*Tm]
� Como se mede a taxa de acerto h2 ?
CE-703 / ITAPaulo André Castro
Taxa de Acerto na Cache
� É comum a obtenção de valores altos para h; desse modo, o ciclo efetivo fica sensível a pequenas mudanças de h:� Caso Tc = Tm / 10 e h caia de 0.99 para 0.98 (1%)
então Tef sobe 8.3% (quase 10%).
� Caso Tc = Tm / 10 e h caia de 0.99 para 0.89 (~10%) então Tef sobe 82.5% (quase dobra).
� Caso Tc = Tm / 20 e h caia de 0.99 para 0.89 então Tef é multiplicado por 2.5.
CE-703 / ITAPaulo André Castro
Desempenho de Memória
� Pequenas melhorias em h podem resultar em substancial aumento de desempenho no sistema de memória.
� Fatores que variam a razão de sucesso h� Número de palavras dos blocos e número de blocos;
� Critério de escolha do bloco que dará lugar a um novo bloco vindo da memória principal, na ocorrência de uma falta (Política de substituição de blocos).
32
CE-703 / ITAPaulo André Castro
Exercício � Considere um computador com
� CPI(Clock por Instrução) = 1,0� Penalidade por erro = 25 ciclos� Taxa de erros = 2%� Acessos a memória representam 50% do total de instruções em média.
� Quão mais rápido seria este computador se não houvesse erro de cache?
CE-703 / ITAPaulo André Castro
Resposta � Computador sem Erros:
� Tempo de Execução Ideal = IC *1,0* Tempo de Clock
� Computador Real� Tempo de Execução Real= Tempo de Execução ideal +
Tempo de Parada� Tempo de Parada = IC * Acesso a memória/Instrução * Taxa
de Erros * Penalidade de Erro * Tempo de clock
CE-703 / ITAPaulo André Castro
Resposta
� Tempo de Parada:� TP= IC*(1+0,5)*0,02*25 = IC *0,75
� (1+0,5) – 1 para acesso de instrução e 0,5 para acesso de dados da instrução
� Tempo de Execução Real� Tempo de Parada : IC*0,75 * tempo de clock
� Tempo de Execução = 1,75*IC * tempo de clock
� Ganho = 1,75 *IC*TClock / 1,0*IC*TClock = 1,75
CE-703 / ITAPaulo André Castro
Medidas de Taxa de Erro de Cache� Erro/Instrução
� Ex.:3 falhas/1000 instruções
� Taxa de Erro /acesso a memória� Ex.: 2% dos acessos causam falha de cache
� Erro/Instrução = (Taxa de Erro * Acessos a Memória)/IC = Taxa de Erro * (Acesso)/Instrução
CE-703 / ITAPaulo André Castro
No Exemplo, anterior
� Erro/Instrução = Taxa de Erros *Acessos/Instrução� Erro/Instrução = 0,02* (1+0,5) = 0,03
� Recalculando o Tempo de Parada para o exemplo, obtemos o mesmo resultado� Tempo de Parada = IC * Erro/Instrução * Penalidade de Erro
� TP = IC * 0,03 * 25 = IC * 0,75
Tecnologias de Construção de Memórias
33
CE-703 / ITAPaulo André Castro
Tecnologias de Construção de Memórias� ROM (Read Only Memory): Memória não volátil, gravada apenas uma vez no momento o
processador não consegue modificá-las. Algumas podem ser apagadas eletricamente (EEPROM ).
� SRAM: Prioriza velocidade e capacidade� Os dados não precisam ser gravados periodicamente� Linhas de endereço não multiplexadas. � 8 a 16 vezes mais cara que DRAM
• DRAM: Prioriza custo por bit e capacidade� Os dados precisam ser gravados novamente após uma leitura� Periodicamente precisam ser gravados (atualizados) novamente mesmo sem leitura � Linhas de endereço multiplexadas.
CE-703 / ITAPaulo André Castro
Tecnologias de Construção de Memórias� DRAM: DRAMs tradicionalmente tinham uma interface assíncrona com seu controlador e
com isso um overhead de sincronização. � Introduziu-se um sinal de clock para os chips DRAM tornando-os síncronos. Batizou-se isto de DRAM
síncrona (SDRAM).
� DDR SDRAM: Inovação onde se transfere dados da memória na borda crescente e decrescente do sinal de clock da SDRAM, com isso duplicando a taxa. Double Data Rate(DDR)� DDR2 e DDR3: Evolução da tecnologia DDR com aumento de clock e redução de voltagem nos chips
� DIMM (Dual Inline Memory module): Memórias, em geral, são vendidas em pequenas placas DIMM de 4 a 16 chips DRAMs e geralmente organizadas de modo a fornecerem palavras de 8 bytes.
CE-703 / ITAPaulo André Castro
Organização de uma DRAM
CE-703 / ITAPaulo André Castro
Matriz de vários bits
CE-703 / ITAPaulo André Castro
Exemplo de organização de um chip de 256KB
CE-703 / ITAPaulo André Castro
Funcionamento da DRAM
� Multiplexação do Endereço� RAS (Row Access Strobe)
� CAS (Column Access Strobe)
� Acesso ao Dado
� Atualização Periódica de Dados� Bits de uma linha podem ser atualizados simultaneamente
� Atualização é determinada pelo DRAM Controller e tipicamente demora um tempo de acesso a um dado por linha
34
CE-703 / ITAPaulo André Castro
Modos de Operação
� Modo Regular� Cada acesso é definido por:
� RAS(Row Access Strobe)
� CAS (Column Access Strobe)
� Carregamento do Dado
� Modo Rápido� Dados na mesma linha são acessados apenas mudando o CAS
CE-703 / ITAPaulo André Castro
Desempenho da DRAM
� Tempo de Acesso não uniforme devido a:� Localização
� Atualização dos Dados
� Tipicamente o tempo é dividido em:� RAS precharge (tRP) : seleção de linha
� RAS-to-CAS delay (tRCD) : seleção de coluna
� CAS latency (CL) : leitura/gravação do dado
� Cycle Time (tRAS): tempo completo “médio”
CE-703 / ITAPaulo André Castro
• Tais valores podem ser determinados através de aplicativos específicos:•RAS precharge (tRP)•RAS-to-CAS delay (tRCD) •CAS latency (CL) •Cycle Time (tRAS)
CE-703 / ITAPaulo André Castro
Memória vem em Módulos� Para facilitar o manuseio e também explorar o entrelaçamento de memória,
utiliza-se módulos de memória� DIMM (Dual inline memory module)
� 4 a 16 chips de memória
� Tipicamente largura de 8 bytes (64 bits)
� SDRAM : 168 pinos, DDR (184 pinos), DDR2 (240 pinos), DDR3 (240)� Todos incompatíveis e trocas podem causar danos ao hardware (figura 168 pinos)
CE-703 / ITAPaulo André Castro
Dados de Módulos de DRAM
Standard name I/O Bus clock Data transfers per second Module name Peak transfer rate
DDR-266 133 MHz 266 Million PC-2100 2100 MB/s
DDR-300 150 MHz 300 Million PC-2400 2400 MB/s
DDR-333 166 MHz 333 Million PC-2700 2700 MB/s
DDR-400 200 MHz 400 Million PC-3200 3200 MB/s
DDR2-533 266 MHz 533 Million PC-4300 4264 MB/s
DDR2-667 333 MHz 667 Million PC-5300 5336 MB/s
DDR2-800 400 MHz 800 Million PC-6400 6400 MB/s
DDR3-1066 533 MHz 1066 Million PC-8500 8528 MB/s
DDR3-1333 666 MHz 1333 Million PC-10700 10664 MB/s
DDR3-1600 800 MHz 1600 Million PC-12800 12800 MB/s
266M/s*8B/tranfser=2128MB/s
300M/s*8B=2400MB/s
CE-703 / ITAPaulo André Castro
Desempenho da Memória Principal� Opções:
� Aumentar largura do dados� Barramento mais largo� Intercalar memória
� Melhor tempo de acesso � tecnologia de construção: clock, latência,etc.� DDR (Double Data Rate), DDR2, etc.
35
Melhorando o Desempenho da Memória Principal
CE-703 / ITAPaulo André Castro
Memória Entrelaçada� Memória entrelaçada permite acesso simultâneo a tantas palavras
quantos forem os seus módulos independentes.
� Com um número suficiente de módulos, é possível haver, num dado momento, várias instruções e vários operandos em fase de recuperação e vários resultados em fase de armazenamento.
� É claro que, para ganho máximo, num dado momento, cada acesso à memória deve acessar módulos distintos.
CE-703 / ITAPaulo André Castro
Maior Largura do Barramento X Memória Intercalada - Exemplo� Considere o seguinte sistema:
� Envio de Endereço: 4 clocks da CPU� Acesso a palavra na Memória: 56 clocks� Envio de uma palavra pelo barramento: 4 clocks
� Para Bloco = 1 palavra (64 bits)� Tx. De Erro: 3%� Penalidade : 64 clocks ( 4+ 56+4)� Média de Ciclos por Instrução(s/erro de cache): 2 � Acesso a Memória/Instrução: 1,2
� Para bloco =2 palavras� Tx. De Erro: 2%
� Para bloco = 4 palavras� Tx. De Erro: 1,2%
CE-703 / ITAPaulo André Castro
Exemplo (Cont.)� Qual a melhoria do sistema em relação ao original com
barramento simples ao utilizar :� intercalação de 2 ou 4 bancos� sistema com barramento duplicado
� Em blocos de 1,2 e 4 palavras
� Solução:� TempoExecução+Penalidade*Tx.Erro
� CPI para sistema de memória de 1 palavra� 2+3% *( 1,2*64) = 4,3
CE-703 / ITAPaulo André Castro
Exemplo (Cont.)
� Bloco de duas palavras (128 bits)
� barramento de 64 bits, sem intercalação:� 2+2%*(1,2*2*64) =5,07
� barramento de 64 bits, com intercalação (2 bancos):� 2+2%*1,2* (4+56+8) =3,63
� Barramento de 128 bits, sem intercalação:� 2+2%*1,2*64 = 3,54
CE-703 / ITAPaulo André Castro
Efeitos da duplicação do bloco
� Diminuição do desempenho no sistema de barramento de 64 bits, sem intercalação� De 4,3 para 5,07
� Intercalação de Memória mais rápida em 1,19 vezes � Speedup = 1,19 = (4,3/3,63)
� Duplicação do Barramento mais rápido em 1,22 vezes� Speedup = 1,22 = (4,3/3,63)
36
CE-703 / ITAPaulo André Castro
Efeito da quadruplicação do bloco (Cont. )
� Bloco de 4 palavras (256 bits)
� barramento de 64 bits, sem intercalação:� 2+1,2%*(1,2*4*64) =5,69
� barramento de 64 bits, com intercalação (4 bancos):� 2+1,2%*1,2* (4+56+16) =3,09
� Barramento de 128 bits, sem intercalação:� 2+1,2%*1,2*2*64 = 3,84
CE-703 / ITAPaulo André Castro
Efeito da quadruplicação do bloco� Diminuição do desempenho no sistema de barramento de 64
bits, sem intercalação : De 4,3 para 5,69� A duplicação do Barramento é mais rápida apenas 1,12 vezes
(4,30/3,84)� Intercalação de Memória agora é a mais rápida 1,39 vezes
(4,30/3,09)
� O custo de quadruplicar o barramento de memória pode se tornar proibitivo e não traria desempenho muito melhor� Barramento de 256 bits, sem intercalação:
� 2+1,2%*1,2*64 = 2,92 (Ganho de 1,06 em relação a intercalação)
Memória Virtual
CE-703 / ITAPaulo André Castro
Memória Virtual
CE-703 / ITAPaulo André Castro
Perguntas
� Atualmente, memória principal é barata então pode-se manter a memória física do mesmo tamanho da memória virtual. Nessa situação, porque utilizar sistema de memória virtual?� Simplicidade na Recolocação
� Simplifica a Proteção de Memória
CE-703 / ITAPaulo André Castro
O papel da Memória Virtual� Generalidade
� Habilidade de executar programas maiores que a memória física
� Gerenciamento mais eficiente� Alocação/Desalocação de blocos de tamanhos variáveis é onerosa e leva a fragmentação
� Proteção� Regiões do espaço de endereço podem ser declaradas como: somente leitura, código executável,
� Flexibilidade� partes de um programa podem ser colocadas em qualquer lugar na memória, sem relocação
� Eficência no Armazenamento� Mantem na memória apenas as partes mais “importantes” do programa
� I/O Concorrente� Executa outros processos, enquanto está carregando/descarregando uma página
� Expansiblilidade� Possibilita deixar espaço no espaço virtual de endereços para que objetos/programas possam crescer
� Desempenho� Facilita o tratamento de multiprogramming e das linguagens de alto nível
37
CE-703 / ITAPaulo André Castro
Memória Virtual
• Endereços Virtuais V= {0,1,2,3,....n-1}• Endereços Físicos P = {0,1,2,3,....m-1}. Onde m < n• Para cada endereço a em V pode existir um endereço em P (a’), caso contrário
falha de página(acesso ao disco)• Dois endereços Virtuais podem apontar para o mesmo endereço físico
CE-703 / ITAPaulo André Castro
Memória Virtual e Cache
� A tradução de endereço virtual deve ser feita antes ou depois da cache?� Antes: Perda de desempenho por ter que fazer um acesso
adicional
� Depois: Cache trabalharia com endereços virtuais e memória com endereços reais. Problema?
Cache com Endereços Virtuais� Dois endereços virtuais podem mapear o mesmo endereço físico!
� Logo, duas entradas de cache podem conter os mesmos dados.
� Perda de espaço útil na cache e Problema na Atualização
� Acontece quando dois programas (endereços virtuais distintos) compartilham um mesmo objeto de dados. Freqüente?
CE-703 / ITAPaulo André Castro
Cache com Endereços Reais
� Problema de Desempenho!� Colocar a Tabela de tradução em SRAM
� Qual o Tamanho da Tabela de Tradução?� Endereço Virtual: 32 bits
� Endereço Real: 32 bits
� Bloco: 4KB
� Memória virtual: 4GB
� Tamanho da Tabela de Páginas > 5 MB
� Solução: Cache da tabela de páginas!
CE-703 / ITAPaulo André Castro
Hierarquia de Memória com MV
CE-703 / ITAPaulo André Castro
O funcionamento da MV
38
CE-703 / ITAPaulo André Castro
Quatro perguntas sobre Funcionamento da Memória Virtual (...Cache)
� P1: Onde um bloco pode ser inserido no nível superior (posicionamento do bloco) ?
� P2: Como um bloco é encontrado se está no nível superior da hierarquia ?
� P3: Que bloco deve ser substituído ao ocorrer uma falha (substituição do bloco) ?
� P4: O que acontece em uma gravação (estratégia de gravação) ?
CE-703 / ITAPaulo André Castro
Translation Look-aside Buffer (TLB)
• TLBs são caches, tipicamente são completamente associativas para melhorar a taxa de sucesso
• Entre o disco e a memória principal, o esquema de atualização é sempre write-back!
• Associa-se ao sistema de memória Virtual, proteção de acesso (leitura, escrita, código, etc.)
.
CE-703 / ITAPaulo André Castro CE-703 / ITAPaulo André Castro
Fragmentação e Realocação
CE-703 / ITAPaulo André Castro
Selecionando o Tamanho de Página
� Razões para páginas maiores� O tamanho da Tabela de Páginas é inversamente proporcional ao
tamanho da página, logo economiza-se memória.
� Transferir páginas maiores para ou do armazenamento secundário é eficiente
� Páginas maiores mapeiam mais memória logo tendem a reduzir as falhas no TLB
� Razões para páginas menores� Não desperdiçar espaço, os dados devem ser contínuos dentro de uma
página� Processos pequenos tendem a ser mais rápidos?
� Soluções Híbridas: múltiplos tamanhos de páginas� Alpha: 8KB, 64KB, 512 KB, 4 MB pages
� Segmentação: Página de tamanho variável
CE-703 / ITAPaulo André Castro
39
CE-703 / ITAPaulo André Castro
Resumo� Memória Virtual: introduzida inicialmente para
permitir a execução de programas que precisavam de muita memória
� Hoje: MV é importante para proteção de memória e permite que os programas usem endereços falsos.
� TLB são cache para a tabela de página e são importantes para obter desempenho para a máquina
� Caches tipicamente trabalham com endereços físicos Arquitetura Paralelas:Multicomputadores e Multiprocessadores
CE-703 / ITAPaulo André Castro
Arquiteturas Paralelas� (SISD) Single Instruction Stream, Single Data Stream:
Monoprocessador
� (SIMD) Single Instruction Stream, Multiple Data Stream: arquiteturas vetoriais
� (MISD) Multiple Instruction Stream, Single Data Stream: sem implementação comercial
� (MIMD) Multiple Instruction Stream, Multiple Data Stream: arquiteturas multiprocessadas, comumente os processadores são microProcessadores comerciais
CE-703 / ITAPaulo André Castro
Múltiplos Processadores
� Opção 1:� Compartilham cache, memória e sistema de I/O
� Opção 2:� Compartilham memória e sistema de I/O
� Opção 3:� Compartilham sistema de I/O
� Opção 4:� Não compartilham nada, apenas se comunicam através de redes
� Todas as opções são viáveis/interessantes?� Lembrem-se da importância de evitar gargalos...
CE-703 / ITAPaulo André Castro
de Memória Compartilhada (SMP)
CE-703 / ITAPaulo André Castro
Memória Centralizada
� Baixo número de processadores
� A memória e seu barramento podem se tornar um gargalo para o sistema � uso de grandes caches e vários barramentos
� Organização mais popular atualmente
40
CE-703 / ITAPaulo André Castro
Organização Multiprocessador com Memória Distribuída
CE-703 / ITAPaulo André Castro
Organização Multiprocessador com Memória Distribuída� Tipicamente maior número de processadores
� Distribuição de memória traz vantagens� Maior largura de banda percebidas (desde que acessos sejam
principalmente locais
� Menor latência
� Tipicamente também se distribui o sistema E/S, assim cada nó pode ser um pequeno sistema distribuído de memória centralizada
CE-703 / ITAPaulo André Castro
Arquitetura de Memória e Modelos de Comunicação
� Multiprocessadores simétricos (SMP) ou Uniform Memory Access(UMA) –Os processadores compartilham uma memória única e tem tempos de acesso uniforme
� Memória compartilhada Distribuída(DSM) ou Non-Uniform Access Memory (NUMA)– Os processadores compartilham o mesmo espaço de endereços, não necessariamente a mesma memória física
� Multicomputadores – processadores com memórias e espaço de endereços independentes que se comunicam através de algum tipo de rede de interconexão� Podem ser computadores completos ligados em rede (clusters)
CE-703 / ITAPaulo André Castro
Mensagens X Memória Compartilhada
� Passagem de Mensagens� Hardware mais simples
� Comunicação Explícita, o programador controla quando ocorre ao contrário do DSM
� Sincronização associada ao envio de mensagens
� Facilita a comunicação iniciada pelo transmissor o que pode trazer vantagens em desempenho
CE-703 / ITAPaulo André Castro
Mecanismos de Comunicação 2
� Memória Compartilhada Distribuída (DSM)� Facilidade de programação
� Overhead de comunicação mais baixo para itens pequenos, pela implementação em hardware e não através de E/S
� Uso de cache pode reduzir a latência e liberar largura de banda para os demais processadores, mas introduz problemas de sincronização
CE-703 / ITAPaulo André Castro
Adoção no Mercado
� SMP: maior dimensão de mercado (cifras e unidades)� multiprocessadores em chip
� DSM (>8 processadores)
� Multicomputadores (mensagens) � popularização de clusters para sistemas na Internet
� MPP (Massively Parallel Processors) > 100 processadores� Abordagens híbridas: mensagens e DSM
41
CE-703 / ITAPaulo André Castro
Arquitetura de Memória Compartilhada Simétrica (SMP)� Grandes e eficientes sistemas de cache podem reduzir
bastante a necessidade de largura de banda da memória
� Multiprocessadores simétricos são bastante econômicos a medida que necessitam de pouco hardware adicional e usam processadores comuns
� Em SMP, caches não apenas fornecem localidade como também replicação....Isto não traz problemas???
CE-703 / ITAPaulo André Castro
Organização Multiprocessador de Memória Compartilhada
CE-703 / ITAPaulo André Castro
Problemas em SMP ?� Se P1 altera a posição de memória X (na sua cache) e
P2 lê a posição de memória X o que ocorre? � Isto é coerente?� O que é coerência de caches ?� Um sistema é coerente se ele retorna o último valor
gravado em um item de dados� Coerência e Consistência do Sistema de Memória
� Coerência: garantir a utilização do dado mais atual� Consistência: sincronizar a leitura/gravação entre
processadores
CE-703 / ITAPaulo André Castro
� Consistência :� P1: P2
� A=0; B=0;� .... ......� A=1; B=1;� if(B==0) ... if(A==0) ....
� Inicialmente, A e B em cache com valor igual a zero, qual dos dois if é seguido ou os dois?
� Muitas vezes precisa ser tratado pelo próprio programador
CE-703 / ITAPaulo André Castro
Coerência� Um sistema de memória é coerente se:
1. Uma leitura por um processador P em uma posição X seguido de um gravação por P em X, sem a ocorrência de gravações em X por outro processador neste intervalo, sempre retorna o valor gravado por P.
2. Uma leitura por P1 na posição X após uma gravação por P2 em X retorna o valor gravado se a leitura e a gravação estiverem separadas no tempo e não ocorrer nenhuma outra gravação em X entre os dois acessos.
3. Gravações na mesma posição são serializadas; isto é, duas gravações na mesma posição por dois processadores quaisquer são vistas na mesma ordem por todos os processadores. Por exemplo, se os valores 1 e depois 2 são gravados em X, nenhum processador pode ler 2 e depois 1
CE-703 / ITAPaulo André Castro
Caches Coerentes
� Manutenção em Hardware da coerência de caches através de protocolos de coerência de Cache
� Abordagem baseada em Snooping� Invalidação de gravação� Atualização ou Difusão
� Abordagem baseada em Diretório� Usadas em Arquitetura de memória distribuída
compartilhada
42
CE-703 / ITAPaulo André Castro
Protocolos de Snooping
� Cada cache tem um cópia dos dados de um bloco de memória e também uma cópia do status de compartilhamento do bloco(compartilhado/ não compartilhado)
� Como as caches compartilham o barramento de memória elas espionam (snoop) o tráfego para verificar se tem cópias do bloco trafegado
� Snooping com Invalidação� Gravação em bloco compartilhado invalida as demais cópias do bloco em cache. � Ao tentar acessar um bloco inválido, há uma falha de cache, e o dado vem do
bloco de cache “dirty” e também para a memória (caso write-back)� Gravações em blocos não compartilhados não geram problemas. Porque?� O que aconteceria com sistemas write-through?
CE-703 / ITAPaulo André Castro
Protocolos de Snooping com Invalidação
Protocolos de Snooping
� Snooping com Atualização ou Difusão� Diferença apenas no tratamento da gravação, o armazenamento de cache é o
mesmo. Isto é, bloco e status do bloco
� Gravação em bloco compartilhado atualiza as demais cópias do bloco em cache e também a memória
� Exemplo
Sistemas de Entrada e Saída
CE-703 / ITAPaulo André Castro
Os cinco componentes clássicos de um Computador
CE-703 / ITAPaulo André Castro
Sistemas de Entrada e Saída (I/O)� Medidas de Desempenho
� Throughput e Tempo de Resposta(Latência)
� Discos Magnéticos
� Acesso a E/S � Instruções X Mapeamento de Memória
� Status: pooling x Interrupting
� Delegando Responsabilidade: DMA & IOP(I/O Processor)
� Interação com Sistema Operacional� Compartilhamento de Recursos: Scheduling e Proteção
� Provisão de “Drivers” de dispostivo
43
CE-703 / ITAPaulo André Castro
O que importa em Projeto de I/O?� Desempenho
� Expansibilidade
� Disponibilidade
� Capacidade de recuperação em caso de falha
CE-703 / ITAPaulo André Castro
Desempenho de Sistema de E/S� O desempenho de sistemas de E/S depende de vários
aspectos:� Barramentos
� I/O Controllers
� Dispostivos de I/O
� O software de I/O (OS e device drivers)� Velocidade
� Uso eficiente dos dispositvos
CE-703 / ITAPaulo André Castro
O papel do I/O
CE-703 / ITAPaulo André Castro
Exemplo de Arquitetura de um Computador Atual
CE-703 / ITAPaulo André Castro
Barramentos no Pentium 4
CE-703 / ITAPaulo André Castro
Exemplo de Dispositivos de IO e Tx. De Transferência
44
CE-703 / ITAPaulo André Castro
Discos Magnéticos� Propósito:
� Armazenamento não-volátil� Grande, barato e lento� Nível mais baixo na hierarquia de memórias
� Dois grandes Tipos:� Floppy disk� Hard disk
� Ambos os tipos:� Baseiam-se em um disco rotativo coberto com uma superfície magnética� Usam uma cabeça(head) de leitura/escrita para acessar as informações� Vantagens dos Discos rígidos (HD) sobre Floppy disks:
� Como os disco são rígidos(metal ou vidro) podem ser maiores� Maior densidade porque podem ser controlados com mais precisão� Maior taxa de transferência porque podem rodar mais rápido� Podem ter mais de um “disco” (platter)
CE-703 / ITAPaulo André Castro
Organização de um Disco
CE-703 / ITAPaulo André Castro
Números Típicos
� Números Típicos (dependem do tamanho do disco)� 5.000 a 30.000 trilhas(tracks) por superfície
� 100 a 500 setores(sectors) por trilha� Setor: menor unidade que pode ser lida
� Geralmente todas as trilhas tem o mesmo número de setores� Logo: setores tem tamanhos físicos distintos
Disco Magnético
� Cilindros: Todas as trilhas sobre a cabeça de leitura/ escrita das superfícies.
� Processo de Leitura/Escrita1. Posicionar o braço na trilha correta
(seek time)
2. Roda o disco até que o setor esteja sobre a cabeça de leitura (rotational latency)
3. Ler ou gravar (transferir) um bloco de dados (transfer time)
CE-703 / ITAPaulo André Castro
Desempenho de Discos Magnéticos� Seek Time: na faixa de 5 a 12 ms
� Soma de todos os tempos de buscas/Número de Buscas� Devido à “localidade” o seek time real pode ser apenas 25%
a 30% do tempo divulgado pelos fabricantes.
CE-703 / ITAPaulo André Castro
Latência Rotacional
� Rotational Latency: � Período de rotação do disco: 3,600 a 10,000 RPMs (16ms a
0,4ms por rotação)� Latência média: Tempo para percorrer metade do disco (8ms
a 0,2 ms)
� Latência Rotacional=0,5 * Periodo de rotação = 0,5/X RPM = 0,5/ (X*60*RPS)
45
CE-703 / ITAPaulo André Castro
Desempenho de Discos Magnéticos� Tempo de Transferência: fatores relevantes
� Tamanho da transferência(1 setor): 1KB/setor
� Taxa de Transferência: 3 a 65MB/s� Velocidade de Rotação: 3600 a 15000 RPM
� Densidade de bits: bits/polegada
� Diâmetro do disco: 1,0 a 3,5 polegadas
� Valores típicos de Transfer Time: 0,01 a 0,03ms/setor
CE-703 / ITAPaulo André Castro
Tempo de Acesso ao Disco
Disk Access Time = Queuing Delay + Controller Time +Seek time + Rotational Latency + Transfer time
CE-703 / ITAPaulo André Castro
Exercício: Calcule o tempo de acesso ao Disco.
CE-703 / ITAPaulo André Castro
Solução
CE-703 / ITAPaulo André Castro
Memória Flash
� Não-volátil e baseado em transistores como EEPROM, porém maior capacidade de memória por chip
� Baixo consumo de energia e resistência a vibrações quando comparado com discos
� Baseia-se em transitores MOSFET (floating-gate transistor)
CE-703 / ITAPaulo André Castro
Memória Flash - 2
� Basicamente dois tipos Flash: NOR Flash e NAND Flash
� NOR Flash
� Tempo de acesso de leitura é comparável a DRAM (bem mais rápido que discos)
� Livres de falhas. Tipicamente usada como NVRAM
� NAND Flash
� A taxa de transferência é comparável a dos discos
� Usada em USB flash drives, memory card, solid state disks. Capaz de lidar com falhas de memória.
� Tempo de gravação bem maior que o de leitura (possivelmente maior que discos rígidos)� Primeiro apaga-se um bloco de memória e depois grava-se
46
CE-703 / ITAPaulo André Castro
Uma célula de uma memória Flash
CE-703 / ITAPaulo André Castro
Memória Flash
� Qual o Tempo de leitura e gravação de um bloco de 64KB em memória Flash e disco magnético ? (Dados de 2001) � Memória Flash: 65ns/leitura de 1 byte
� 1,5Microsegundos/gravação de 1byte e 5ms para apagar 4KB
� Disco: Overhead de controlador: 1ms� 3600RPM
� 12ms de seek time anunciado(real igual a 1/3)
CE-703 / ITAPaulo André Castro
Memória Flash
� Flash� Leitura: 64KB*65ns/Byte= 4,3ms
� Gravação: 64KB/(4KB/5ms) + 64KB*1500ns/B = 178,3ms
� Disco� Leitura/Gravação
� 12ms/3 + 0,5/3600RPM + 64KB/4,2MB/s +0,1ms =
� 27,3ms
CE-703 / ITAPaulo André Castro
Dados de Flash Memories
� O padrão compact Flash simula discos ATA, por isso simula interface de discos, seek commands, trilhas lógicas, etc.
� cu.in =Cubic inch
CE-703 / ITAPaulo André Castro
Memória Flash� O custo por GB tem caído por volta de 50% ao ano.
� Em 2006, o custo/GB é aproximadamente igual a DRAM e 50 vezes maior que disco rígido mesma taxa de transferência de discos e latência de 10 a 100 vezes menor...
� Em 2008, o custo/GB era de 4 a 8$, ou 4 a 20 vezes mais caros que o custo/GB do disco e 5 a 10 vezes mais baixo que DRAM
� porém há desgaste da memória, normalmente limitado a 1M de gravações
� Eliminou o discos flexíveis...
� Tornou-se padrão em Sistemas Embutidos
� Eliminará os discos rígidos?� Já há laptops baseados unicamente em flash...
CE-703 / ITAPaulo André Castro
Pooling x Interrupting
47
CE-703 / ITAPaulo André Castro
Interrupting
Barramentos
CE-703 / ITAPaulo André Castro
Principais Componentes
CE-703 / ITAPaulo André Castro
Um Barramento (Bus) é
CE-703 / ITAPaulo André Castro
Funções do Barramento� Conexão de Memória
� Recebe e envia dados� Recebe endereços� Recebe sinais de controle
� Read� Write� Timing
� Entrada e Saída (I/O)� Recebe e Envia dados� Recebe sinais de controle do computador� Recebe sinais de controle dos periféricos
� Ex.: velocidade de rotação do disco� Recebe endereços do computador
� Ex.: Número de porta para identificar periférico� Envia sinais de interrupção para computador(controle)
CE-703 / ITAPaulo André Castro
Esquema de Barramento
48
CE-703 / ITAPaulo André Castro
Barramentos
� Barramento de Dados� Transporta dados (ou instruções) não há diferença neste nível
� Geralmente bidirecional
� Largura é determinante para o desempenho
� Barramento de Endereços� Identifica fonte ou origem de um fluxo de dados
� Largura identifica a capacidade máxima de endereçamento
� Barramento de Controle� Sinais de Controle (ler/gravar)
� Sinais de interrupção
� Sinais de clock
CE-703 / ITAPaulo André Castro
Barramento no Pentium 4
CE-703 / ITAPaulo André Castro
Vantagens de usar Barramentos
CE-703 / ITAPaulo André Castro
Desvantagens de Barramentos
CE-703 / ITAPaulo André Castro
O que define um Barramento ?
CE-703 / ITAPaulo André Castro
Projeto de Barramentos
� A velocidade e a largura de banda são influenciados por 4 fatores principais:� Largura do Barramento
� Esquema de Clock do Barramento
� Método de Arbitragem
� Operação
49
CE-703 / ITAPaulo André Castro
Largura do Barramento� O número de linhas de endereço determina o tamanho da
memória endereçável� Quanto maior o número de linhas, mais fios, conectores
maiores. Logo, o hardware torna-se mais caro.� 8088 – 20 linhas de endereço, 80286 + 4 linhas, 80386 +8 linhas
� A tendência é um crescimento constante das larguras dos barramentos para aumentar a capacidade dos barramentos
� Muitas vezes projetistas fazem multiplexação de dados e endereços em diferentes fases (ou em tempo) para reduzir o número de linhas. Mas com isto também se reduz o desempenho do barramento.
CE-703 / ITAPaulo André Castro
Mestre (Master) e Escravo(Slave)
CE-703 / ITAPaulo André Castro
CE-703 / ITAPaulo André Castro
Múltiplos Mestres de Barramento: Arbitragem� Com múltiplos possíveis mestres de barramento é necessário definir um
meio de garantir que apenas um dispositivo será selecionado como mestre.
� O método deve balancear:� Prioridade entre dispositivos
� Justiça: mesmo o dispositivo de prioridade mais baixa deve operar
� Quatro possíveis Classes de Arbitragem� Arbitragem distribuída por auto-seleção: Cada dispositivo coloca o próprio
código
� Arbitragem distribuída por detecção de colisão: exemplo Ethernet
� Daisy Chain: Autorização dada em seqüência...
� Arbitragem Centralizada: Autorização dada por órgão central...
CE-703 / ITAPaulo André Castro
50
CE-703 / ITAPaulo André Castro CE-703 / ITAPaulo André Castro
Exemplos de Barramentos
CE-703 / ITAPaulo André Castro
VídeoAGP: Uma porta para vídeo
CE-703 / ITAPaulo André Castro
Conector AGP
CE-703 / ITAPaulo André Castro
Tipos de Conectores AGP e Placa
CE-703 / ITAPaulo André Castro
Barramento PCI
51
CE-703 / ITAPaulo André Castro
Conectores PCI 32 bits 5V em uma Placa Mãe
CE-703 / ITAPaulo André Castro
Exemplo de Placa PCI – 32 bitsAdaptador SCSI
CE-703 / ITAPaulo André Castro
Conectores PCI 64 bits 5V em uma Placa Mãe
CE-703 / ITAPaulo André Castro
Universal Placa de Rede Ethernet
Barramentos Antigos...ISA
� ISA, (Industry Standard Architecture)� palavra de 8 bits� 62 pinos, � taxa de 1.2 MB/s)
Barramentos Antigos...EISA
� Extended ISA (palavra de 32 bits, 98 pinos)� Taxa de transferência: 32 MB/s
52
Barramentos Antigos...VESA� VESA Local Bus (VLB)
� Palavra de 32 bits, 112 pinos� Taxa de transferência:133 MB/s� Slot é uma extensão do ISA
Universal Serial Bus (USB 2.0)
CE-703 / ITAPaulo André Castro
Histórico de versões� USB 0.7: Lançado em novembro de 1994.
� USB 0.8: Lançada em dezembro de 1994.
� USB 0.9: Lançada em abril de 1995.
� USB 0.99: Lançado em agosto de 1995.
� USB 1.0: Lançado em janeiro de 1996, com taxas de transferência de dados de 1,5 Mbit / s (baixa velocidade) e 12 Mbit / s (Velocidade máxima).
� USB 2.0: Lançado em abril de 2000 com a velocidade de 480 Mbps.
� USB 3.0: Lançado em setembro de 2009 com a velocidade de 4,8 Gbps.
CE-703 / ITAPaulo André Castro
Barramentos Aviônicos
� MIL-STD 1553 (Padrão para aviões militares)
� Uso Civil – ARINC (Aeronautical Radio, Incorporated)� ARINC 429
� ARINC 629
CE-703 / ITAPaulo André Castro
MIL-STD 1553
� O padrão 1553 pode ser dividido em três partes:� Tipos de terminais: Bus controller, Bus monitor (opcional) e
Remote Terminal
� Protocolo de Barramento: incluindo formatos de mensagens e estrutura
� Especificação de hardware: tais como impedências, frequencia de operação, etc.
� O barramento 1553 pode operar com até 1Mbps de taxa de transferência
CE-703 / ITAPaulo André Castro
MIL-STD 1553 – Estrutura de Barramento
53
CE-703 / ITAPaulo André Castro
Tipos de Terminais no padrão1553
� Bus Controller: Responsável por todo o fluxo de dados do barramento e inicia todas as transferências de informação. Também monitora o status do sistemas, não confundir com o Bus monitor.
� Bus Monitor: Recebe e armazena tráfego selecionado no barramento. Não responde a nenhum tráfego
� Remote Terminal: São o maior número de unidades de um barramento 1553. Devido a endereçamento de RT utilizar 5 bits nas mensagens, podem existir até 31 RT em um barramento. Um RT pode ser uma unidade separada para ligar um subsistema ou ser parte do subsistema.
CE-703 / ITAPaulo André Castro 23-379
Direct Coupled
� Bus is terminated at each end with a terminating resistor.
� Connection from the Tee to the terminal is very short.
� Typically Tee is connected directly to the connector on the back of the terminal.
CE-703 / ITAPaulo André Castro 23-380
Transformer Coupled� Bus is terminated at each end with a terminating resistor,
just as in Direct Coupling but � now the two Tee's replaced with transformer couplers.
� Connection to the terminals is no longer the length of the Tee, but significantly long, consisting of another cable (of up to 20 feet in length).
CE-703 / ITAPaulo André Castro 23-381
Transformer Coupled (Example)
CE-703 / ITAPaulo André Castro
Words 1553
CE-703 / ITAPaulo André Castro
Formatos de Transferência de Dados -1553
54
CE-703 / ITAPaulo André Castro
ARINC 429
� “ARINC. Specification 29 Digital Information Transfer System, Mark 33”, 429 as it is commohnly known , is the basis from digital buses in modern civil aircraft” Digital Avionics Systems. P.31.
� ARINC 429 opera com taxas de transferências de 12 a 14.5 or 100kpbs em um barramento simplex
CE-703 / ITAPaulo André Castro
Barramento Arinc 429
top related