MIPS - Pepe Line
Casos: MIPS - Pepe Line. Pesquise 862.000+ trabalhos acadêmicosPor: mmateusam • 26/10/2014 • 1.155 Palavras (5 Páginas) • 296 Visualizações
PIPELINE
É uma técnica de implementação que visa maximizar a utilização dos diferentes recursos de HW
Pipeline permite que várias instruções sejam processadas simultaneamente com cada parte do HW
atuando numa instrução distinta
Aumento do número de estágios do pipeline aumenta o desempenho
Estágios de um Pipeline:
IF (Instruction Fetch) : Busca instrução
ID (Instruction Decode): Decodifica instrução e lê registradores
EX (EXecute operation) : Calcula dados ou endereços
MEM (Access MEMory operand): Acessa operando na memória
WB (Write result Back to register): Escreve resultado no registrador
MIPS projetado para pipeline:
• Todas as instruções são de 32 bits, mais fácil de buscar e decodificar em um ciclo
• Poucas instruções e instruções regulares, permite decodificação e leitura de registradores em um estágio
• Endereçamento do Load/store : Permite cálculo de endereço no terceiro estágio e acesso no quarto estágio
Melhora de desempenho por utilizar pipeline:
• Estágios com a mesma duração
• Instruções independentes de resultados calculados em instrução anterior
• Execução sequencial das instruções
Conflitos : Situações que evitam que uma nova instrução seja iniciada no próximo ciclo
• Estruturais: Recurso necessário para execução de uma instrução está ocupado, por exemplo, 2 instruções tentam acessar a memória no mesmo ciclo.
Solução é replicar recurso.
• Dados : Dependência de dados entre instruções, uma instrução depende de um dado gerado por uma instrução anterior.
o Soluções em software (compilador/montador) : Inserção de NOPs e Re-arrumação de código.
o Soluções em hardware : Método de Curto-circuito (Forwarding), Usa o resultado desejado assim que é computado; Inserção de retardos (stalls).
Como Implementar Forwarding?
• Idéia é acrescentar HW com uma lógica capaz de detectar conflitos de dados e controlar unidade de processamento para realizar o forwarding
• Deve-se acrescentar mais conexões para permitir que resultados possam ser utilizados antes de escritos no banco de registradores
• Possivelmente, acrescenta-se multiplexadores para que outros estágios possam selecionar a fonte do operando
• Controle : causados por alteração de fluxo de controle, Decisão da próxima instrução a ser executada depende de uma instrução anterior.
Resolvendo Conflitos de Controle
• Soluções em software (compilador/montador): Re-arrumação de código
• Soluções em hardware : Congelamento do pipeline; Execução especulativa; Aceleração de avaliação de desvio
Execução especulativa : Pode reduzir penalidades de desempenho decorridos de conflitos.
• Estática : Simplicidade de implementação; Não se baseia no comportamento do código, tendo resultados que variam de aplicação para aplicação
• Dinâmica : Baseia-se no comportamento do código (maior probabilidade de acerto) ; Complexidade de implementação e maior custo de HW.
Aceleração de avaliação de desvios: Ajuda a diminuir penalidades de desempenho; Custo maior de HW, devido a replicação de componentes
CACHE (SRAM)
A Cache deve ser controlada por hardware, pois ela tem que ser rápida e se fosse controlada por software geraria atraso; Na cache é guardado endereço e valor;
A unidade da cache é chamada de bloco. A cache de Dados se diferencia da cache de instrução pela capacidade de suportar escrita.
HIT -> Quando a cache contém o dado. HIT Time: Tempo para acessar o dado.
Outras Formas de Reduzir Hit Time : Diminuir tamanho da cache ; Diminuir associatividade
MISS -> Quando ela não contém 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 endereço de memória.
TAG -> Um campo da cache que contem informações de endereços para identificar se uma word é a word solicitada..
BIT DE VALIDADE -> Um campo na cache que identifica se uma entrada contém um endereço válido.
LOCALIDADE TEMPORAL: Se um local de dados for usado, ele tende a ser usado novamente.
LOCALIDADE ESPACIAL: Se um local de dados for usado, então os dados com endereços próximos tenderão a ser usados.
Diagrama e algoritimo de um sistema com cache para leitura:
1) Verifica se endereço 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 não, ongela o pipeline, o controlador da cache lê o valor na memória, armazena no lugar com utilização mais antiga, guarda também a tag e coloca válido, depois retorna valor;
Diagrama e algoritimo de um sistema com cache para escrita:
1) Acha
...