Sistema computadores
Bancos de Registradores
Otimização do Uso de Registradores por Compiladores
Kleber Augusto de Moraes Renato Sanches Pinter Reinaldo Reis Rafael Gallerani
RA 0000007466 RA 0000001476 RA 0000007685 RA 0000008025
Bancos de Registradores
• Em qualquer arquitetura de microprocessadores, microcontroladores ou processadores digitais de sinais (DSP) os registradores são utilizados para a manipulação dos dados necessários para a execução de uma determinada tarefa/procedimento/programa.
• É importante ter em vista que um registrador é um arranjo lógico físico, ou seja, composto por flip-flops, portas lógicas e outras implementações de lógica digital, construídas no próprio chip. O número de registradores varia de forma diretamente proporcional a complexidade da arquitetura desenvolvida. Processadores que operam Sistemas Operacionais como o UNIX, Windows ou Linux, necessitam grandes bancos de registradores.
Bancos de Registradores
•Os registradores são organizados em janelas para diminuir o acesso à memória
•Cada janela é dedicada a uma chamada de procedimento •Tipos de registradores em uma janela –Registradores de parâmetros –Registradores locais –Registradores temporários
Bancos de Registradores
• Os registradores temporários armazenam os parâmetros passados para o procedimento • Os registradores locais contêm as variáveis locais ao procedimento • Os registradores temporários são usados para trocar resultados/parâmetros com o procedimento seguinte
Bancos de Registradores
• Exemplo de como um OS gerencia um banco de registradores de 6 janelas
Bancos de Registradores
Bancos de Registradores
Bancos de Registradores
Bancos de Registradores
Bancos de Registradores
Bancos de Registradores
• Banco de Registradores X Mémoria Cache – Comparativo de utilização
Bancos de Registradores
• Banco de registradores baseado em janelas
–Referência simples a um registrador
Bancos de Registradores
• Memória