ARM Advanced RISC Machine


I    Evolução da Família;
¡@
II   Esquema geral de funcionamento;
¡@
III  Tipos de dados aceitos;
¡@
IV  Gerenciamento de memória;
¡@
V   Endereçamento de memória;
¡@
VI   Informações de mercado;
¡@
VII  Assembly;
¡@
VIII Estrutura de procedures e functions;
¡@
IX  Exemplos de lógicas em Assembly;
¡@
X   Referências Bibliográficas.

Gerenciamento de Memória

A MMU (memory management unit)
- controla o acesso de memória externa
- responsável pela tradução do endereço virtual para o endereço físico
- assim como a checagem de permissão de acesso.

O controle detalhado do sistema e obtido através das tabelas de tradução armazenada na memória em estruturas de cache, denominado de TLBs (Translation Lookaside Buffers).

Ao ser gerado um acesso a memória pelo processador ARM, a MMU procura o endereço virtual de acesso na TLB. Caso a TLB não contenha a entrada para o endereço virtual, o hardware e invocado, retornando a tradução e a permissão de acesso da tabela de tradução na memória principal. A informação retornada e colocada a TLB em uma entrada não utilizada, ou sobrescrevendo alguma entrada existente.

A MMU pode ser habilitada ou desabilitada alterando o mapeamento de endereço virtual para físico.

Ao desabilitar a MMU, os acessos a memória passam a ser tratados da seguinte forma:
• A aplicação e que determina se o uso de caches e buffers de escrita serão habilitados ou não;
• Não são realizadas verificações de permissão de acesso a memória, e não são mais gerados sinais de abortos pela MMU;
• O endereço físico e igual ao endereço virtual, para todos os acessos.

 

PROCESSO DE TRADUÇAO

A MMU suporta acessos de memória baseados em :
- Seções compreendem blocos de memória de 1MB.
- Paginas podem ter três tamanhos diferentes:
• Minúsculas: compreendem blocos de memória de 1KB;
• Pequenas: compreendem blocos de memória de 4 KB (com o controle de acesso dividido em subpáginas de 1KB);
• Grandes: compreendem blocos de memória de 64 KB (com o controle de acesso dividido em subpáginas de 16KB).

Uma coleção de seções, de paginas grandes e de paginas pequenas e chamada de domínio. O acesso a cada domínio e controlado pelo registrador 3 do CP15, sendo que cada campo permite habilitar ou desabilitar o acesso ao domínio inteiro rapidamente. Assim, o mecanismo de troca de contexto entre processos e bastante eficiente, já que áreas completas de memória podem ser colocadas e retiradas da memória virtual rapidamente.

A tabela de tradução mantida em memória e dividida em dois níveis:
1. Primeiro nível: armazena traduções de seções e ponteiros para tabelas do segundo nível;
2. Segundo nível: armazena traduções de paginas pequenas e grandes. Existe um tipo desse nível que pode armazenar a tradução de paginas minúsculas. O processo de tradução sempre começa do mesmo jeito (com um fetiche no primeiro nível) em seqüência existem quatro formas de realizar a tradução de endereços e a verificação de permissão. Estas maneiras dependem se o endereço esta marcado como um acesso mapeado a seção (que requer somente um fetiche no primeiro nível) ou a pagina (que requer um fetiche no nível segundo também), sendo que se for mapeado a pagina, pode ser pagina grande, pequena ou minúscula.

Restrições de memória podem parar a execução do ARM
- falha da MMU (MMU detecta a restrição e sinaliza para o processador) podem ser:
- falha de alinhamento,
- falha de tradução,
- falha de domínio e
- falha de permissão.
- aborto externo (o sistema externo de memória sinaliza um acesso ilegal a memória). - fetiche de linha,
- acessos a memória e
- acessos a tabela de tradução.

Registradores específicos para falhas:
1. FAR (Fault Adress Register): onde e escrito o endereço que causou a falha;
2. FSR (Fault Status Register): e atualizado com status de falha. A arquitetura ARM também define um pino para abortos externos, permitindo que os acessos de leitura, escritas sem buffer, descritor de fetiche de primeiro nível, descriptor de fetiche de segundo nível e semáforos em áreas de memória possam ser abortados externamente e reiniciados de forma segura.

Os registradores 1 (alguns bits),2,3,4,5,6,8 e 10 do CP15 controlam a MMU.
• Registrador 1: habilita/desabilita MMU;
• Registrador 2: fornece o endereço físico da tabela de tradução de primeiro nível atualmente ativa a partir do valor dos 18 bits mais significativos;
• Registrador 3: cada dois bits definem a permissão de acesso para cada domínio (coleção de seções, páginas grandes e pequenas).
• Registrador 4: reservado;
• Registrador 5: status de falha (FSR);
• Registrador 6: embire¸co de falha (FAR);
• Registrador 8: utilizado para controlar TLBs;
• Registrador 10: permite que os resultados de uma busca nas tabelas de tradução sejam carregados na TLB de uma forma que não sejam sobrescritos pelos resultados de buscas posteriores.

¡@

Voltar