The Instruction Fetch Unit¶
MO601 - Arquitetura de Computadores II
http://www.ic.unicamp.br/~rodolfo/mo601
Rodolfo Azevedo - rodolfo@ic.unicamp.br
Verificando conceitos¶
- Quais são os primeiros passos para executar uma instrução?
- Descreva cenários onde você precisará de previsão de desvios (branch prediction)
- Por que previsão de desvios?
- Considerando um preditor de desvio como uma caixa preta, quais são as entradas e as saídas?
Quais são os primeiros passos para executar uma instrução?¶
Descreva cenários onde você precisará de previsão de desvios (branch prediction)¶
Por que previsão de desvios?¶
Considerando um preditor de desvio como uma caixa preta, quais são as entradas e as saídas?¶
Pipeline de Fetch¶
Instruction Cache¶
Branch Target Buffer¶
Return Address Stack¶
- Usa o call-trace para selecionar o endereço de retorno
- Tabela com poucas entradas
- Perte uma entrada em cada overflow
- Pode ser implementado com uma pilha
Previsão de Saltos (Branck Predictor)¶
- Preditor estático
- Utiliza um bit da codificação da instrução
- Preditor dinâmico
- Local Predictor
- Correlating predictor (gshare)
- Tempo de warmup
- Preditores híbridos
- Agrupamento com a BTB
Par ou ímpar?¶
Quantas instruções de salto tem esse trecho de código?
Par ou ímpar?¶
Quantas instruções de salto tem esse trecho de código?