Universidade Estadual de Campinas - UNICAMP

Instituto de Computação – IC

MO 401 – Arquitetura de Computadores I

Register Renaming

Campinas, 28 de Novembro de 2005

Fernanda Alcântara Andaló

RA 041462

fernanda.andalo@ic.unicamp.br

Fernanda Alcântara Andaló fernanda.andalo@ic.unicamp.br

Roteiro

1

Introdução

2

Considerações iniciais

3

Esquemas de Register Renaming

1.1

O que é Register Renaming?

1.2

O Problema

3.1

Banco de registradores físicos

3.2

Reorder buffer – ROB

4

Principais implementações

4.1

Algoritmo de Tomasulo

5

Histórico

6

Conclusão

Fernanda Alcântara Andaló fernanda.andalo@ic.unicamp.br

Introdução

◊

O que é Register Renaming?

◊

O problema:

•

Explorar paralelismo

•

Aumento do número de instruções que um processador pode

executar em paralelo

•

Número limitado de registradores disponíveis no conjunto de

instruções

•

Isso causa problemas de dependências falsas

Fernanda Alcântara Andaló fernanda.andalo@ic.unicamp.br

Introdução

•

Dependências de fluxo

•

Dependências de saída

•

Anti-dependências

}

Dependências falsas

Fernanda Alcântara Andaló fernanda.andalo@ic.unicamp.br

Introdução

◊

Register Renaming realizado pelo compilador

◊

Aumentar número de registradores não é solução

•

Não é simples evitar duplicação de código

•

Número grande de registradores requer muitos bits para

especificação

•

Muitos conjuntos de instruções já especificaram um número

pequeno de registradores – Incompatibilidade!

Fernanda Alcântara Andaló fernanda.andalo@ic.unicamp.br

Considerações Iniciais

◊

Registradores físicos vs. Registradores de arquitetura

◊

Conflito de dados

•

Leitura após escrita (RAW)

•

Escrita após escrita (WAW)

•

Escrita após leitura (WAR)

◊

Renomeação parcial vs. Renomeação total

Fernanda Alcântara Andaló fernanda.andalo@ic.unicamp.br

Esquemas de Register Renaming

◊

Buffer de Renomeação

Fernanda Alcântara Andaló fernanda.andalo@ic.unicamp.br

Esquemas de Register Renaming

◊

Banco de registradores físicos

•

Disponível

Estados possíveis:

•

AR – Utilizado como

registrador de arquitetura

RB, não válido – Utilizado

como buffer de renomeação,

mas registrador ainda não

contém o resultado da

instrução associada

•

RB, válido – Utilizado como

buffer de renomeação

e o registrador já contém

o resultado da instrução

associada

•

Fernanda Alcântara Andaló fernanda.andalo@ic.unicamp.br

Esquemas de Register Renaming

◊

Reorder buffer (ROB)

Fernanda Alcântara Andaló fernanda.andalo@ic.unicamp.br

Principais implementações

◊

Algoritmo de Tomasulo

Fernanda Alcântara Andaló fernanda.andalo@ic.unicamp.br

Principais implementações

◊

Algoritmo de Tomasulo

Fernanda Alcântara Andaló fernanda.andalo@ic.unicamp.br

Principais implementações

◊

MIPS R10000 e Alpha21264

Fernanda Alcântara Andaló fernanda.andalo@ic.unicamp.br

Principais implementações

◊

AMD K7 e K8

Fernanda Alcântara Andaló fernanda.andalo@ic.unicamp.br

Histórico

Fernanda Alcântara Andaló fernanda.andalo@ic.unicamp.br

Conclusão

Fernanda Alcântara Andaló fernanda.andalo@ic.unicamp.br

Conclusão

◊

A maioria dos processadores atuais empregam alternativas básicas

•

Uso de banco único (R10000, R12000, M3)

•

Uso de banco isolado e mapeamento de registradores

(linha PA8x00, Power3)

•

Renomeação no ROB e uso de tabelas de mapeamento

(Pentium Pro, Pentium II, Pentium III)

2005-11-04T01:15:07