Índice:
Definição - O que significa Alocação de Registros?
A alocação de registros refere-se à prática de atribuir variáveis aos registros, bem como manipular a transferência de dados para dentro e para fora dos registros. A alocação de registro pode ocorrer:- Em um bloco básico, conhecido como alocação de registro local
- Sobre uma função ou procedimento inteiro, conhecido como alocação de registro global
- Sobre os limites das funções atravessados por meio de um gráfico de chamadas, conhecido como alocação de registros entre procedimentos
Techopedia explica Alocação de Registros
Durante o curso da compilação, o compilador deve determinar a maneira pela qual as variáveis são alocadas para um pequeno e específico intervalo de registros. Algumas das variáveis podem não estar em uso ou são consideradas "ativas" simultaneamente. Isso leva à atribuição de alguns registros a várias variáveis. No entanto, não é possível atribuir duas variáveis dinâmicas simultâneas ao mesmo registro sem danificar o valor.
As variáveis que não podem ser atribuídas a alguns registros precisam ser armazenadas na RAM e devem ser carregadas e retiradas para cada leitura e gravação, respectivamente, um procedimento conhecido como derramamento. O acesso aos registros é muito mais rápido que o acesso à RAM. Além disso, acelera o tempo de execução do programa compilado; portanto, compiladores eficientes visam atribuir o maior número possível de variáveis aos registros.
Geralmente, a maioria dos alocadores de registro atribui todas as variáveis à memória principal ou a um registro da unidade central de processamento (CPU). A velocidade é o principal benefício ao usar um registro. Os computadores apresentam um intervalo finito de registros, o que significa que nem todas as variáveis disponíveis podem ser atribuídas aos registros. O processo de mudar uma variável de um registro para a memória é conhecido como derramamento, enquanto o procedimento inverso de mover uma variável da memória para um registro é conhecido como preenchimento. A alocação inteligente de registros é uma etapa crucial para qualquer compilador.
Existem dois tipos de alocação de registro:
- Alocação de registro local: este é um processo de alocação de um bloco básico (ou hiper bloco ou super bloco) por vez. A alocação de registro local aumenta a velocidade.
- Alocação global de registros: se a utilização do registro for baixa usando a alocação local, é importante fazer uso da alocação global de registros. Na alocação simples de registros globais, os valores mais ativos são alocados em cada loop interno. A alocação total do registro global usa um procedimento para identificar faixas ao vivo em um gráfico de fluxo de controle, atribuir faixas ao vivo e também dividir faixas conforme necessário.