Você está na página 1de 3

PIPELINE

uma tcnica de implementao que visa maximizar a utilizao dos diferentes recursos de HW

Pipeline permite que vrias instrues sejam processadas simultaneamente com cada parte do HW
atuando numa instruo distinta

Aumento do nmero de estgios do pipeline aumenta o desempenho

Estgios de um Pipeline:
IF (Instruction Fetch) : Busca instruo
ID (Instruction Decode): Decodifica instruo e l registradores
EX (EXecute operation) : Calcula dados ou endereos
MEM (Access MEMory operand): Acessa operando na memria
WB (Write result Back to register): Escreve resultado no registrador

MIPS projetado para pipeline:
Todas as instrues so de 32 bits, mais fcil de buscar e decodificar em um ciclo
Poucas instrues e instrues regulares, permite decodificao e leitura de registradores em um estgio
Endereamento do Load/store : Permite clculo de endereo no terceiro estgio e acesso no quarto estgio

Melhora de desempenho por utilizar pipeline:
Estgios com a mesma durao
Instrues independentes de resultados calculados em instruo anterior
Execuo sequencial das instrues

Conflitos : Situaes que evitam que uma nova instruo seja iniciada no prximo ciclo
Estruturais: Recurso necessrio para execuo de uma instruo est ocupado, por exemplo, 2 instrues tentam
acessar a memria no mesmo ciclo.
Soluo replicar recurso.

Dados : Dependncia de dados entre instrues, uma instruo depende de um dado gerado por uma instruo
anterior.
o Solues em software (compilador/montador) : Insero de NOPs e Re-arrumao de cdigo.
o Solues em hardware : Mtodo de Curto-circuito (Forwarding), Usa o resultado desejado assim que
computado; Insero de retardos (stalls).
Como Implementar Forwarding?
Idia acrescentar HW com uma lgica capaz de detectar conflitos de dados e controlar unidade de
processamento para realizar o forwarding
Deve-se acrescentar mais conexes para permitir que resultados possam ser utilizados antes de
escritos no banco de registradores
Possivelmente, acrescenta-se multiplexadores para que outros estgios possam selecionar a fonte
do operando

Controle : causados por alterao de fluxo de controle, Deciso da prxima instruo a ser executada depende de
uma instruo anterior.
Resolvendo Conflitos de Controle
Solues em software (compilador/montador): Re-arrumao de cdigo
Solues em hardware : Congelamento do pipeline; Execuo especulativa; Acelerao de avaliao de desvio
Execuo especulativa : Pode reduzir penalidades de desempenho decorridos de conflitos.
Esttica : Simplicidade de implementao; No se baseia no comportamento do cdigo,
tendo resultados que variam de aplicao para aplicao
Dinmica : Baseia-se no comportamento do cdigo (maior probabilidade de acerto) ;
Complexidade de implementao e maior custo de HW.
Acelerao de avaliao de desvios: Ajuda a diminuir penalidades de desempenho; Custo maior de
HW, devido a replicao de componentes




CACHE (SRAM)

A Cache deve ser controlada por hardware, pois ela tem que ser rpida e se fosse controlada por software geraria atraso; Na
cache guardado endereo e valor;

A unidade da cache chamada de bloco. A cache de Dados se diferencia da cache de instruo pela capacidade de suportar
escrita.

HIT -> Quando a cache contm o dado. HIT Time: Tempo para acessar o dado.
Outras Formas de Reduzir Hit Time : Diminuir tamanho da cache ; Diminuir associatividade

MISS -> Quando ela no contm o dado. Aumentar o tamanho do bloco normalmente diminui a tx de falha. MISS PENALTY ->
Tempo para buscar um bloco da memoria para a cache + tempo para transf ao processador.

MAPEAMENTO DIRETO -> Estruturaonde vcada local de memoria mapeado exatamente para um local na cache, isso
acontece usando os bits menos significativos do endereo de memria.

TAG -> Um campo da cache que contem informaes de endereos para identificar se uma word a word solicitada..

BIT DE VALIDADE -> Um campo na cache que identifica se uma entrada contm um endereo vlido.

LOCALIDADE TEMPORAL: Se um local de dados for usado, ele tende a ser usado novamente.

LOCALIDADE ESPACIAL: Se um local de dados for usado, ento os dados com endereos prximos tendero a ser usados.

Diagrama e algoritimo de um sistema com cache para leitura:




1) Verifica se endereo j est na cache;
2) Se est, compara o Tag e se for igual, verifica se valido, e se for, retorna o valor;
3) Se no, ongela o pipeline, o controlador da cache l o valor na memria, armazena no lugar com utilizao mais
antiga, guarda tambm a tag e coloca vlido, depois retorna valor;

Diagrama e algoritimo de um sistema com cache para escrita:




1) Acha na cache o endereo desejado; escreve o valor na cache, a Tag e coloca vlido; atualiza memoria.

Para cache com 1 byte (word) por bloco fica: Tag + Indice + Offset de Byte
Para cache com + de 1 byte (word) por bloco fica: Tag + Indice + Offset de Bloco (palavra) + Offset de Byte

Escritas na Cache:
Write Through: cache e memria so atualizadas simultaneamente
Write Back: memria somente atalizada quando o bloco substitudo na cache. Usa dirty bit para marcar linhas
alteradas na cache.
Para solucionar a espera na escrita usa-se WriteBuffers, onde o bloco escrito no buffer e CPU pode continuar a
execuo.

Para garantir coerncia necessrio mecanismos implementados em hardware
Protocolos Snooping: Cada cache monitora leituras/escritas no barramento.
Protocolos baseados em Diretrios: Caches e memria mantem status de compartilhamento de blocos em um
diretrio centralizado

Cache L1

Geralmente blocos de cache L1 so menores que blocos de L2



Memrias Mais Largas
Acesso paralelo a mais de uma palavra por bloco : Reduo da penalidade de cache
Necessidade de barramento mais largo : Expanso da largura da memria condicionada a barramento
Necessidade de multiplexadores e lgica de controle

Memria Interleaved
Bancos de memria para escrita/leitura de mltiplas palavras: Reduz penalidade
Endereo enviado simultaneamente para os diferentes bancos de memria
Largura do barramento no precisa ser aumentado
Necessita pouco hardware adicional

Você também pode gostar