Lei de Amdahl - Divisão de Ciência da Computação

Transcrição

Lei de Amdahl - Divisão de Ciência da Computação
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?
Desempenho
Todos os componentes influem mas...
O desempenho da CPU é crítico para o
desempenho do Computador.
desempenhoCPU(X)= 1/TempoCPU(X)
Paulo André Castro
CE-703 / ITA
O que influi no desempenho de
CPU
Paulo André Castro
CE-703 / ITA
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?
Paulo André Castro
CE-703 / ITA
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)
Paulo André Castro
CE-703 / ITA
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)
Paulo André Castro
CE-703 / ITA
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!!
Paulo André Castro
CE-703 / ITA
Exemplos de
benchmark:
Família SPEC
www.spec.org
Paulo André Castro
CE-703 / ITA
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?
Paulo André Castro
CE-703 / ITA
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.
Paulo André Castro
CE-703 / ITA
Abordagens para Conjuntos de
Instruções
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?
Paulo André Castro
CE-703 / ITA
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)
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)
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Gráfico de Desempenho
MIPS / VAX
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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)
Paulo André Castro
CE-703 / ITA
Abordagens para Arquitetura
de Conjuntos de Instruções
Comparando Instruções
Numéricas
Paulo André Castro
CE-703 / ITA
Registradores de
Propósitos Gerais dominam
Paulo André Castro
CE-703 / ITA
Exemplos de Formato de
Conjunto de instruções
Paulo André Castro
CE-703 / ITA
Mundo RISC (CISC)
Exploração do Paralelismo
Entre fases
Entre Instruções
Entre Threads
Entre programas
Solução dos novos problemas trazidos pelo paralelismo
Paulo André Castro
CE-703 / ITA
Dentro da CPU: Como realmente
funciona um computador
Os cinco componentes clássicos
de um Computador - Controle
Paulo André Castro
CE-703 / ITA
Processador com Acumulador:
Um Caso Extremamente Simples
Paulo André Castro
CE-703 / ITA
Microprograma
da CPU com
Acumulador
Paulo André Castro
CE-703 / ITA
Revisão: Como Funciona o
Hardware Digital
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
Paulo André Castro
CE-703 / ITA
Representação Numérica
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
Equivalência entre os sistemas:
(29)base 10 = (11101)base 2 = (35)base 8 = (1D)base 16
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
Paulo André Castro
CE-703 / ITA
Conversão
de Base
Paulo André Castro
CE-703 / ITA
Computadores e Sistema Binário
Números Negativos (dois zeros)
Complemento de 2
Números Fracionários (ponto flutuante)
Mantissa e expoente
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Deslocamento
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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 2
2,25 -> Parte Inteira: (2)10= (10)2
-> Parte Fracionária (0,25)10 = (0.01)2
Número: (2,25)10 = (10,01)2
Paulo André Castro
CE-703 / ITA
Conversão de Fracionários
Paulo André Castro
CE-703 / ITA
Conversão de Fracionários - 2
Paulo André Castro
CE-703 / ITA
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?
Paulo André Castro
CE-703 / ITA
Conversão de Base
Paulo André Castro
CE-703 / ITA
Ponto Flutuante em
Computadores
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Lógica Digital (Booleana)
Paulo André Castro
CE-703 / ITA
Paulo André Castro
CE-703 / ITA
Paulo André Castro
CE-703 / ITA
Paulo André Castro
CE-703 / ITA
Paulo André Castro
CE-703 / ITA
Portas Lógicas
Paulo André Castro
CE-703 / ITA
Paulo André Castro
CE-703 / ITA
Paulo André Castro
CE-703 / ITA
Paulo André Castro
CE-703 / ITA
A suficiência da Porta NAND
Paulo André Castro
CE-703 / ITA
Portas lógicas podem ser
implementadas dentro de Chips
Paulo André Castro
CE-703 / ITA
Portas Lógicas em Transistores
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Implementando um multiplexador:
Exercício
Paulo André Castro
CE-703 / ITA
Implementando um multiplexador:
Solução
Paulo André Castro
CE-703 / ITA
Somadores
Meio-somador (sem
contabilização de carry ou “vaium”)
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 Vaium (Carry)
Paulo André Castro
CE-703 / ITA
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)
Paulo André Castro
CE-703 / ITA
Somador Completo
Paulo André Castro
CE-703 / ITA
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)
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Flip Flop RS
2 entradas: R e S
R para Reset (colocar no estado O)
S para Set (colocar no estado 1)
Paulo André Castro
CE-703 / ITA
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)
Paulo André Castro
CE-703 / ITA
Flip Flop D
1 entrada D (de Dado)
Transfere o dado de entrada para a saída
Paulo André Castro
CE-703 / ITA
Implementação de Flip Flop D em
Portas Lógicas
Paulo André Castro
CE-703 / ITA
Um Processador Simples com
Registradores de Propósitos Gerais
Um Processador de Registradores de
Propósitos Gerais (MIPS de ciclo único)
Paulo André Castro
CE-703 / ITA
Um Exemplo: MIPS
Principais 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
Paulo André Castro
CE-703 / ITA
Formato dos Conjunto de
Instruções MIPS
Paulo André Castro
CE-703 / ITA
Um Exemplo: MIPS
Principais 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
Paulo André Castro
CE-703 / ITA
Formato de Instruções MIPS
Paulo André Castro
CE-703 / ITA
Unidades Funcionais e Controle
no MIPS
Paulo André Castro
CE-703 / ITA
Carregamento de Instrução
Paulo André Castro
CE-703 / ITA
Controlando Operações R-type
Adição/Subtração/And/or...
Paulo André Castro
CE-703 / ITA
IF no fim de uma instrução
Paulo André Castro
CE-703 / ITA
Instrução Load
Paulo André Castro
CE-703 / ITA
Instrução Store
Paulo André Castro
CE-703 / ITA
Instrução de Desvio Condicional
Paulo André Castro
CE-703 / ITA
IF ao fim de uma instrução de
desvio condicional
Paulo André Castro
CE-703 / ITA
Desvio não condicional
Paulo André Castro
CE-703 / ITA
IF ao fim de uma desvio
não-condicional
Paulo André Castro
CE-703 / ITA
Sumário dos Sinais de Controle
Paulo André Castro
CE-703 / ITA
Decodificação Local – Controle
da ALU
Paulo André Castro
CE-703 / ITA
Paulo André Castro
CE-703 / ITA
Paulo André Castro
CE-703 / ITA
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?
Paulo André Castro
CE-703 / ITA
Melhorando o desempenho com
Pipeline
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
Paulo André Castro
CE-703 / ITA
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).
Instruções paralelizadas
Paulo André Castro
CE-703 / ITA
Qual o ganho de desempenho com
pipeline?
Diagramas Estágio x Tempo
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;
Paulo André Castro
CE-703 / ITA
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 ?
Paulo André Castro
CE-703 / ITA
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
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
Paulo André Castro
CE-703 / ITA
Problemas no Pipeline
Paulo André Castro
CE-703 / ITA
O Problema do Desnível entre
Fases e Instruções
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
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.
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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?
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Visão do pipeline MIPS com
Unidades Funcionais
IF
Paulo André Castro
ID/RF EX
MEM WB
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Dependência de Dados - RAW
Solução: atrasar o pipeline (via SW ou via HW)
Paulo André Castro
CE-703 / ITA
Implementando o atraso do
Pipeline através de Hardware
Paulo André Castro
CE-703 / ITA
Implementando o atraso do
pipeline através de software
Paulo André Castro
CE-703 / ITA
Dependência RAW ao Carregar dados
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Atrasando o pipeline em carregamento de
dados –Quantos clocks são necessários?
Paulo André Castro
CE-703 / ITA
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 ?
Paulo André Castro
CE-703 / ITA
Redução de Penalidade em
Bypassing
Paulo André Castro
R-Type:
CE-703 / ITA
Encaminhamento em Carregamentos
Seria possível eliminar este atraso ?
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Como controlar o
Encaminhamento?
Paulo André Castro
CE-703 / ITA
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.
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 ?
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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?
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Dependências WAW e WAR e Conclusão
de Execução Fora de Ordem
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
Paulo André Castro
CE-703 / ITA
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?
Paulo André Castro
CE-703 / ITA
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)
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Tomasulo
Paulo André Castro
CE-703 / ITA
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Exemplo Tomasulo – Instante 1
Paulo André Castro
CE-703 / ITA
Exemplo Tomasulo - Instante 2
Paulo André Castro
CE-703 / ITA
Estados das Instruções
Paulo André Castro
CE-703 / ITA
Instante 2 - Tomasulo
Fonte: Hennessy & Patterson, pg. 140. Erro no Livro: F0 (e não F2) será gravada por Mult1
Paulo André Castro
CE-703 / ITA
Sistemas de Memória
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 ?
Paulo André Castro
CE-703 / ITA
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.
Paulo André Castro
CE-703 / ITA
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ãovoláteis
Importante: Grande parte das informações não é utilizada
considerando pequenos intervalos de tempo.
Paulo André Castro
CE-703 / ITA
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?
Paulo André Castro
CE-703 / ITA
Hierarquia de Memória
Paulo André Castro
CE-703 / ITA
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?
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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;
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Funcionamento da Hierarquia
de Memória
Paulo André Castro
CE-703 / ITA
O que trafega entre os níveis ?
Paulo André Castro
CE-703 / ITA
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?
Paulo André Castro
CE-703 / ITA
Funcionamento da Memória
Cache
Paulo André Castro
CE-703 / ITA
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)
?
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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)
Paulo André Castro
CE-703 / ITA
Abordagens de Posicionamento
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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)
?
Paulo André Castro
CE-703 / ITA
Organização da Cache
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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.
Paulo André Castro
CE-703 / ITA
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)
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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)
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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.
Paulo André Castro
CE-703 / ITA
Como melhorar o desempenho
da 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).
Paulo André Castro
CE-703 / ITA
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)
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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 ?
Paulo André Castro
CE-703 / ITA
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.
Paulo André Castro
CE-703 / ITA
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).
Paulo André Castro
CE-703 / ITA
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?
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Tecnologias de Construção de
Memórias
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.
Paulo André Castro
CE-703 / ITA
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.
Paulo André Castro
CE-703 / ITA
Organização de uma DRAM
Paulo André Castro
CE-703 / ITA
Matriz de vários bits
Paulo André Castro
CE-703 / ITA
Exemplo de organização de um
chip de 256KB
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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”
Paulo André Castro
CE-703 / ITA
• 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)
Paulo André Castro
CE-703 / ITA
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)
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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.
Paulo André Castro
CE-703 / ITA
Melhorando o Desempenho da
Memória Principal
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.
Paulo André Castro
CE-703 / ITA
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%
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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)
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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)
Paulo André Castro
CE-703 / ITA
Memória Virtual
Memória Virtual
Paulo André Castro
CE-703 / ITA
Perguntas
Atualmente, memória principal é barata então podese 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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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?
Paulo André Castro
CE-703 / ITA
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?
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!
Paulo André Castro
CE-703 / ITA
Hierarquia de Memória com MV
Paulo André Castro
CE-703 / ITA
O funcionamento da MV
Paulo André Castro
CE-703 / ITA
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) ?
Paulo André Castro
CE-703 / ITA
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.)
Paulo André
Castro
.
CE-703 / ITA
Paulo André Castro
CE-703 / ITA
Fragmentação e Realocação
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Arquitetura Paralelas:
Multicomputadores e Multiprocessadores
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
Paulo André Castro
CE-703 / ITA
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...
Paulo André Castro
CE-703 / ITA
de Memória Compartilhada
(SMP)
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Organização Multiprocessador
com Memória Distribuída
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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)
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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???
Paulo André Castro
CE-703 / ITA
Organização Multiprocessador
de Memória Compartilhada
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Consistência :
P1:
A=0;
....
A=1;
if(B==0) ...
P2
B=0;
......
B=1;
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
Paulo André Castro
CE-703 / ITA
Coerência
Um sistema de memória é coerente se:
1.
2.
3.
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.
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.
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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?
Paulo André Castro
CE-703 / ITA
Protocolos de Snooping com
Invalidação
Paulo André Castro
CE-703 / ITA
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
Os cinco componentes clássicos
de um Computador
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
O que importa em Projeto de
I/O?
Desempenho
Expansibilidade
Disponibilidade
Capacidade de recuperação em caso de falha
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
O papel do I/O
Paulo André Castro
CE-703 / ITA
Exemplo de Arquitetura de um
Computador Atual
Paulo André Castro
CE-703 / ITA
Barramentos no Pentium 4
Paulo André Castro
CE-703 / ITA
Exemplo de Dispositivos de IO e Tx.
De Transferência
Paulo André Castro
CE-703 / ITA
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)
Paulo André Castro
CE-703 / ITA
Organização de um Disco
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Disco Magnético
Cilindros: Todas as trilhas sobre
a cabeça de leitura/ escrita das
superfícies.
Processo de Leitura/Escrita
1.
2.
3.
Posicionar o braço na trilha correta
(seek time)
Roda o disco até que o setor esteja
sobre a cabeça de leitura (rotational
latency)
Ler ou gravar (transferir) um bloco
de dados (transfer time)
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.
Paulo André Castro
CE-703 / ITA
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)
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Tempo de Acesso ao Disco
Disk Access Time = Queuing Delay + Controller Time +
Seek time + Rotational Latency + Transfer time
Paulo André Castro
CE-703 / ITA
Exercício: Calcule o tempo de
acesso ao Disco.
Paulo André Castro
CE-703 / ITA
Solução
Paulo André Castro
CE-703 / ITA
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)
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Uma célula de uma memória Flash
Paulo André Castro
CE-703 / ITA
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)
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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...
Paulo André Castro
CE-703 / ITA
Pooling x Interrupting
Paulo André Castro
CE-703 / ITA
Interrupting
Paulo André Castro
CE-703 / ITA
Barramentos
Principais Componentes
Paulo André Castro
CE-703 / ITA
Um Barramento (Bus) é
Paulo André Castro
CE-703 / ITA
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)
Paulo André Castro
CE-703 / ITA
Esquema de Barramento
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Barramento no Pentium 4
Paulo André Castro
CE-703 / ITA
Vantagens de usar Barramentos
Paulo André Castro
CE-703 / ITA
Desvantagens de Barramentos
Paulo André Castro
CE-703 / ITA
O que define um Barramento ?
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
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.
Paulo André Castro
CE-703 / ITA
Mestre (Master) e Escravo(Slave)
Paulo André Castro
CE-703 / ITA
Paulo André Castro
CE-703 / ITA
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...
Paulo André Castro
CE-703 / ITA
Paulo André Castro
CE-703 / ITA
Paulo André Castro
CE-703 / ITA
Exemplos de Barramentos
Paulo André Castro
CE-703 / ITA
Vídeo
AGP: Uma porta para vídeo
Paulo André Castro
CE-703 / ITA
Conector AGP
Paulo André Castro
CE-703 / ITA
Tipos de Conectores AGP e
Placa
Paulo André Castro
CE-703 / ITA
Barramento PCI
Paulo André Castro
CE-703 / ITA
Conectores PCI 32 bits 5V em
uma Placa Mãe
Paulo André Castro
CE-703 / ITA
Exemplo de Placa PCI – 32 bits
Adaptador SCSI
Paulo André Castro
CE-703 / ITA
Conectores PCI
64 bits 5V em
uma Placa Mãe
Paulo André Castro
CE-703 / ITA
Universal Placa de Rede
Ethernet
Paulo André Castro
CE-703 / ITA
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
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)
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.
Paulo André Castro
CE-703 / ITA
Barramentos Aviônicos
MIL-STD 1553 (Padrão para aviões militares)
Uso Civil – ARINC (Aeronautical Radio, Incorporated)
ARINC 429
ARINC 629
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
MIL-STD 1553 – Estrutura de
Barramento
Paulo André Castro
CE-703 / ITA
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.
Paulo André Castro
CE-703 / ITA
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.
Paulo André Castro
23-379
CE-703 / ITA
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).
Paulo André Castro
23-380
CE-703 / ITA
Transformer Coupled (Example)
Paulo André Castro
23-381
CE-703 / ITA
Words 1553
Paulo André Castro
CE-703 / ITA
Formatos de Transferência de Dados 1553
Paulo André Castro
CE-703 / ITA
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
Paulo André Castro
CE-703 / ITA
Barramento Arinc 429
Paulo André Castro
CE-703 / ITA

Documentos relacionados