0% acharam este documento útil (0 voto)
4 visualizações18 páginas

Estrutura e Organização da Arquitetura ARM

A arquitetura ARM é baseada em uma arquitetura RISC com uma organização que inclui uma unidade lógica aritmética, um banco de registradores e um decodificador de instruções. O modelo de programação ARM possui 37 registradores, incluindo registradores de uso geral e de status, e suporta modos de operação variados, como FIQ e IRQ. A organização de memória ARM utiliza uma estrutura linear de bytes com alinhamento específico, e as instruções ARM e Thumb são projetadas para interoperabilidade, permitindo operações eficientes com diferentes tamanhos de instruções.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
4 visualizações18 páginas

Estrutura e Organização da Arquitetura ARM

A arquitetura ARM é baseada em uma arquitetura RISC com uma organização que inclui uma unidade lógica aritmética, um banco de registradores e um decodificador de instruções. O modelo de programação ARM possui 37 registradores, incluindo registradores de uso geral e de status, e suporta modos de operação variados, como FIQ e IRQ. A organização de memória ARM utiliza uma estrutura linear de bytes com alinhamento específico, e as instruções ARM e Thumb são projetadas para interoperabilidade, permitindo operações eficientes com diferentes tamanhos de instruções.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

1. Explique sobre a arquitetura e organização ARM?

A arquitetura ARM (Advanced RISC Machine) consiste em:


1. Carregar - armazenar arquitetura
2. Registrar banco
3. ULA
4. Registrar de multiplicação
5. Barramento de dados
6. Deslocador de barril
7. Registrador de endereços
8. Decodificador de instruções
9. Incrementador

1. Load – store architecture


Uma vez que o processador ARM é basicamente um processador RISC, ele usa uma carga e armazenamento.
arquitetura. Isso significa que tem dois tipos de instrução: carregar e armazenar para
transferindo dados para dentro e para fora do processador, respectivamente.
CARREGAR : Esta instrução copia dados da memória para os registradores na
núcleo do processador.
ARMAZENAR: Esta instrução copia dados de registradores no núcleo do processador para
memória. O conjunto de instruções do processador ARM não inclui o
instruções que manipulam diretamente os dados na memória. O processamento de dados é
realizado apenas em registros.
2. Registrar banco
Este é um banco de registradores de 32 bits usado para armazenar itens de dados. Consiste em 2
portas de leitura, 1 porta de escrita + 1 leitura, 1 porta de escrita reservada para r15 (programa
contador).
3. ULA ( Unidade Lógica Aritmética)
Ela executa as funções aritméticas e lógicas necessárias. A ULA executa
a operação e armazena o resultado computado via barramento interno no destino
registre-se e depois vá ao banco de registro.

4. Multiplicar registro
[Link] de dados

Os dados entram no núcleo ARM através do barramento de dados. Os dados estão ou em


forma de um código de operação de instrução ou um item de dados. Desde Von Neumann
a arquitetura é utilizada, itens de dados e instruções compartilham o mesmo barramento. isso é
contraste com a arquitetura Harvard do ARM que utiliza duas diferentes
ônibus.
6. Deslocador de Barril
O conteúdo dos registradores é alternativamente pré-processado no deslocador de barril.
antes de aplicar como entrada para a ALU. Uma ampla gama de endereços e expressões
pode ser calculado usando deslocador de barril e ALU.
7. Registro de Endereço
Isso contém o endereço gerado pelas instruções de carregamento e armazenamento e
coloca-o no barramento de endereço.

8. Decodificador de Instruções
Esta unidade decodifica o opcode da instrução lido da memória e então o
a instrução é executada.
9. Incrementador
Para instruções de carga e armazenamento, o incrementador atualiza o conteúdo do
endereço registra antes que o núcleo do processador leia ou grave o próximo registrador
valor de ou para a localização de memória consecutiva. O núcleo do processador
continua a execução da instrução. Apenas quando uma exceção ou interrupção
ocorre, o fluxo normal de execução é alterado.

2. Explique sobre o modelo de programação ARM? (ou)


Explique sobre a organização dos registradores ARM?
Registros ARM: Possui 37 registros.

ARM7TDMItem um total de 37 registradores—31 registradores de 32 bits de uso geral


e seis registradores de status—mas esses não podem ser vistos todos de uma vez. O estado do processador
e o modo de operação dictam quais registradores estão disponíveis para o programador.
15 registradores gerais (R0 a R14), e um registrador de status e contador de programa são
visível a qualquer momento - quando você escreve programas em nível de usuário
R13 (SP)-Ponteiro de pilha
R14 (LR)- Registrador de link
R15 (PC)- contador de programa
O conjunto de registradores de estado ARM:

No estado ARM, 16 registradores gerais e um ou dois registradores de status são visíveis em


qualquer momento. Em modos privilegiados (não de Usuário), os registradores agrupados específicos do modo são
ligado. O acimaFigura (Registrar organização no estado ARM)mostra
quais registros estão disponíveis em cada modo: os registros bancados são marcados com um
triângulo sombreado.
O conjunto de registradores do registrador de estado ARM contém 16 registradores acessíveis diretamente: R0 a R15. Todos
exceto R15, são de uso geral e podem ser usados para armazenar dados ou
valores de endereço. Além desses, há um décimo sétimo registro usado para armazenar
informação de status.
O Registro 14 é usado como o registro de link de sub-rotina. Este recebe uma cópia do R15.
quando uma instrução de Ramificação e Ligação (BL) é executada. Em todos os outros momentos, pode ser
tratado como um registrador de uso geral. Os registradores correspondentes em banco R14_svc,
R14_irq, R14_fiq, R14_abt e R14_und são usados de forma similar para armazenar o retorno
valores de R15 quando interrupções e exceções ocorrem, ou quando Branch e Link
instruções são executadas dentro de rotinas de interrupção ou exceção.
O Registro 15 mantém o Contador de Programa (PC). No estado ARM, os bits [1:0] de R15 são
zero e os bits [31:2] contêm o PC. No estado THUMB, o bit [0] é zero e os bits [31:1]
contém o PC.
O Registro 16 é o CPSR (Registro de Status do Programa Atual). Isso contém
bandeiras de código de condição e os bits do modo atual.

O modo FIQ tem sete registros bancados mapeados para R8q–14 (R8_fiq–R14_fiq). Em
No estado ARM, muitos manipuladores de FIQ não precisam salvar nenhum registrador. Usuário, IRQ,
Supervisor, Abort e Undefined cada um têm dois registradores armazenados mapeados para R13
e R14, permitindo que cada um desses modos tenha um ponteiro de pilha privado e link
registros.

3. Explain about THUMB programming model? (or)


Explique sobre a organização do registrador THUMB.
O conjunto de registradores do estado THUMB;

O conjunto de registradores de estado THUMB é um subconjunto do conjunto de estado ARM.


o programador tem acesso direto a oito registradores gerais, R0–R7, bem como ao
Contador de Programa (PC), um registrador de ponteiro de pilha (SP), um registrador de link (LR), e
o CPSR. Existem Pointers de Pilha armazenados, Registros de Link e Processo Salvo
Registradores de Status (SPSRs) para cada modo privilegiado. Isso é mostrado acima
Figura ( Registrar organização em THUMBestado).

4. Explique sobre o registrador de status do programa do ARM?

A ARM contém um Registrador de Status do Programa Atual (CPSR), além de cinco


Registros de Status de Programa Salvos (SPSRs) para uso por manipuladores de exceção.
As funções deste registro são:
Mantenha informações sobre a operação ALU realizada mais recentemente.
Controle a habilitação e desabilitação de interrupções.
Defina o modo de operação do processador
O N, Z, C e V são bandeiras de código de condição
pode ser alterado como resultado de operações aritméticas e lógicas na
processador
pode ser testado por todas as instruções para determinar se a instrução deve ser
executado
N : Negative. Z : Zero. C : Carry. V : Overflow
Os bits I e F são os bits de desativação de interrupção
O bit T é o bit do polegar
Os bits M0, M1, M2, M3 e M4 são os bits de modo

[Link] sobre os modos de operação do ARM?

O ARM tem sete modos básicos de operação:

modo sem privilégios sob o qual a maioria das tarefas é executada


FIQ: inserido quando uma interrupção de alta prioridade (rápida) é acionada
IRQ: entrou quando um interruptor de baixa prioridade (normal) é acionado
Supervisor: entrou no reset e quando uma Interrupção de Software
instrução é executada
Abortar: usado para lidar com violações de acesso à memória
Undef: usado para lidar com instruções indefinidas
Sistema: modo privilegiado usando os mesmos registradores que o modo usuário

[Link] sobre a organização de memória ARM?


Além do estado do registro do processador, um sistema ARM possui
estado da memória. A memória pode ser vista como um array linear de bytes numerados
de zero até 232-l. Os itens de dados podem ser bytes de 8 bits, meio-palavras de 16 bits ou palavras de 32 bits
palavras de bits. As palavras estão sempre alinhadas em limites de 4 bytes (ou seja, os dois
os bits do endereço menos significativo são zero) e os meios palavras estão alinhados em números pares
fronteiras de byte. A organização da memória é ilustrada na figura abaixo.
Isso mostra uma pequena área de memória onde cada local de byte tem uma identificação única
número. Um byte pode ocupar qualquer uma dessas localizações, e alguns exemplos são
mostrado na figura. Um item de dados do tamanho de uma palavra deve ocupar um grupo de quatro
localizações de byte começando em um endereço byte que é um múltiplo de quatro, e
novamente a figura contém alguns exemplos. Meias-palavras ocupam dois bytes
localizações começando em um endereço de byte par. Este é o padrão, 'little-endian',
organização de memória utilizada pelo ARM.

Figura: 'little-endian', organização da memória

MemoryFormats

3a0seB [Link]
rcsodm
unaR
sertybM7
edraeniT
loãçm
eoD
cueazlom
sceiaME
rSv
ólaus-iu
m
ocom
am
eianA
ró[Link]
dam
irvpiaosrM7
egslunapdo7ar4aT
m
tesbarD
ytrazenvdra,ptlm
ME
oSn
irpedori-oegãsur
[Link]-elttoiem
uF
anom
elagro
B dn-irsto
itazendtao
A organização de memória de um dispositivo Flash é dividida em setores Flash.
os setores são chamados de blocos em RL-FlashFS. Normalmente, um bloco é uma memória de 64 KB
A página. Os blocos podem ser divididos em células de memória, que são escritos sequencialmente.
O tamanho da célula de memória depende da arquitetura do dispositivo e é de 8- (byte), 16- (meio
palavra) ou 32 bits de largura (palavra).

Cada bloco contém o seu próprioinformações de alocaçãoescrito para a alocação de arquivo


tabela localizada no topo da memória. O nome do arquivo e o conteúdo do arquivo são armazenados em baixo
regiões de memória. Se o tamanho do arquivo exceder um único bloco, então o arquivo é armazenado em várias partes
vários blocos. Vários arquivos menores são armazenados em um único bloco.
When the file content is modified, the old file content isinvalidatedand a new
o bloco de memória é alocado. O bloco Flash é apagado quando todos os dados armazenados em
o Bloco Flash foi invalidado.

ARM and Thumb instruction set overview


As instruções ARM e Thumb podem ser agrupadas por área funcional.
Todas as instruções ARM têm 32 bits de comprimento. Quase todas as instruções Thumb tinham 16 bits.
O conjunto de instruções Thumb é um subconjunto dos ARM de 32 bits mais comumente usados
Instruções. Instruções Thumb têm cada uma 16 bits de comprimento e possuem um correspondente
Instrução ARM de 32 bits que tem o mesmo efeito no modelo de processador. Thumb
instruções operam com a configuração padrão de registradores ARM, permitindo
excelente interoperabilidade entre os estados ARM e Thumb.
Ao executar, as instruções Thumb de 16 bits são descompactadas de forma transparente para 32 bits.
instruções ARM de bit em tempo real, sem perda de desempenho.
Thumb tem todas as vantagens de um núcleo de 32 bits:
espaço de endereço de 32 bits
registros de 32 bits
deslocador de 32 bits e Unidade Lógica Aritmética (ULA)
Transferência de memória de 32 bits.

Portanto, o Thumb oferece uma ampla gama de ramificações, operações aritméticas poderosas, e uma
grande espaço de endereço.

Juntas, as instruções Thumb de 32 bits e 16 bits fornecem funcionalidade que é


quase idêntico ao conjunto de instruções ARM.
A tabela a seguir descreve alguns dos agrupamentos funcionais disponíveis
instructions:
Instrução Description
Grupo

Ramo e Estas instruções fazem o seguinte:


control . Desvio para sub-rotinas.
. Ramifique-se para trás para formar laços.
. Avance em estruturas condicionais.
. Tornar as seguintes instruções condicionais sem
ramificação.
. Altere o processador entre o estado ARM e o estado Thumb.

Processamento de dados Essas instruções operam nos registradores de uso geral.


pode realizar operações como adição, subtração ou bitwise
lógica sobre o conteúdo de dois registradores e colocar o resultado em um terceiro
registrar. Eles também podem operar no valor em um único registro, ou
em um valor em um registrador e um valor imediato fornecido dentro do
instrução.
Instruções de multiplicação longa geram um resultado de 64 bits em dois registradores.

Carregar registro Estas instruções carregam ou armazenam o valor de um único registrador de


e armazenar ou para a memória. Eles podem carregar ou armazenar uma palavra de 32 bits, uma palavra de 16 bits
meia palavra, ou um byte não assinado de 8 bits. Carregamentos de byte e meia palavra podem
ou ser estendido por sinal ou estendido por zero para preencher o registrador de 32 bits.
Algumas instruções também são definidas que podem carregar ou armazenar 64 bits
valores de doubleword em dois registradores de 32 bits.

Múltiplo Estas instruções carregam ou armazenam qualquer subconjunto do propósito geral


carregar registro registros de ou para a memória.
e armazene

Registro de status Estas instruções movem o conteúdo de um registrador de status para ou de


acesso um registrador de uso geral.

Coprocessador Estas instruções suportam uma maneira geral de estender o ARM


arquitetura. Eles também permitem o controle do Sistema CP15
Controlar registradores do coprocessador.
[Link] sobre os recursos do ARM?

Arquivo de registro uniforme grande: Um processador ARM contém um grande número de


como aRISC.

Arquitetura load-store: O processador ARM utiliza uma arquitetura RISC.


contém um grande número de registradores. O conjunto de instruções contém separadamente
instruções de carregamento e armazenamento para transferir dados entre o banco de registradores
e memória externa. Quando os dados devem ser operados, eles são armazenados no registrador
e depois processados. Os acessos à memória são separados dos dados
processamento. Assim, podemos usar itens de dados armazenados em registros vários itens
sem acesso múltiplo à memória.

Campos de instrução uniformes e de comprimento fixo (32 bits): processador ARM


o conjunto de instruções contém um número reduzido de instruções. Todas as instruções são
32 bits de comprimento. A maioria das instruções é executada em um único ciclo. Cada instrução
pode ser executado condicionalmente.

Três formatos de instrução de endereçamento: A maioria das instruções de RISC e ARM


o processador tem 3 formatos de instrução de endereço, ou seja, dois operandos de origem são
armazenado em dois locais de endereço diferentes e o terceiro operando está armazenado em um
terceiro endereço localização.

A ARM tem uma arquitetura de 32 bits, mas suporta também tipos de dados de 16 bits ou 8 bits.

ARM é programável como alinhamento de dados little endian ou big endian em


memória.

A ARM oferece a vantagem de usar um CISC em termos de funcionalidade,


junto com a vantagem de um RISC em termos de programas mais rápidos
implementação, bem como a redução do comprimento do código.

O processador ARM possui um núcleo RISC para processamento

Combinação de recursos RISC e CISC ─ ARM suporta um complexo


conjunto de instruções baseado em modos de endereçamento.

Você também pode gostar