Documente Academic
Documente Profesional
Documente Cultură
MICROCONTROLADORES
AULA 6
1
CONVERSA INICIAL
2
permitiram o projeto do primeiro processador ARM, ARM1, que foi
usado posteriormente como coprocessador no computador da BBC e
foi sucedido por versões gradativamente melhores. Na época, ARM era
a sigla para Acorn RISC Machine. No início, a Acorn Computer
encomendava a fabricação dos processadores à VLSI Technology Inc.,
mas o sucesso da arquitetura levou a grandes demandas, que a
fabricante não podia atender. Isso levou à necessidade de outro
fabricante ou à criação de uma nova empresa. Decidiu-se por uma
nova empresa, a ARM Ltda., fundada por Acorn Computer, VLSI
Technology e Apple Computer.
(Disponível em:
<http://docplayer.com.br/8897475-Processadores-arm-visao-geral-e-
aplicacoes.html>. Acesso em: 01 de dezembro de 2016)
3
Evolução da família
“As diferentes versões das CPUs ARM, resultaram na criação de diversas
famílias ARM, em que cada uma é evolução da família
anterior, normalmente visando ao aumento de performance, sendo”:
(PEREIRA, 2013, p. 19)
• ARM1 – 1985 - protótipo que não chegou ao mercado.
• ARM2 – 1986 – Possuía um barramento de dados de 32 bits, porém
só usava 26 bits, deixando os 6 bits restantes para as flags de estado.
Foi considerado o microprocessador de 32 bits mais simples, com
30.000 transistores (comparando com o Motorola modelo 68000, seis
anos mais velho e continha 70.000 transistores), não
tinha cache.
• ARM3 – 1989 – 4KB de cache, melhorou a performance.
Ao longo dos anos 90, a ARM torna-se líder no mercado de
processadores embarcados, pois oferece alto desempenho com baixo
consumo de energia.
• ARM6 – 1991 – Processador 32 bits, tinha somente 35000
transistores. A Apple usou em seus primeiros PDAs processadores
ARM 610 (1994).
• ARM7 – 1994 – Usa metade da energia utilizada no ARM6 e tem de
50% a 100% mais performance.
• ARM7TDMI – Pipeline de 3 estágios. Processador de 32 bits que
combina tamanho reduzido, pouca energia e alta performance (usado
em Game Boy Advance, iPod).
• StrongARM – Série mais rápida que os ARM anteriores, tem
limitações de softwares com suas versões anteriores, pois possui
diferentes tamanhos para memória e instruções.
• ARM8 – Pipeline de 5 estágios, banda de memória duplicada.
Aumento na taxa de clock.
• ARM9TDMI – Pipeline de 5 estágios também, usado em calculadoras
HP. Reduziu o espaço do programa executável em 35%.
• ARM9E – Processador de 32 bits, incluindo instruções da ARM®,
Thumb® e Dsp. Usado em vídeogames da Nintendo e telefones como
Sony Ericson.
• ARM10E – Pipeline de 6 estágios, cache variando entre 32k e 16k,
dependendo do modelo. Excelente combinação de performance e
pouco consumo de energia.
(Disponível em:
<http://sca.unioeste-
foz.br/~habib/x/trabalhos/grupob3/public_html/html/evolucao.htm>.
Acesso em: 02 de dezembro de 2016).
4
inferiores do que os CPUs Desktop. Trabalham entre 133MHz e
400MHz, comparado a 2GHz dos CPUs usados em desktop. Pipeline
de 7 estágios.
• ARM11 – É uma das famílias de maior performance. Essas CPUs
utilizam a versão 6 da arquitetura ARM, com Pipeline de 8 ou 9
estágios, predição dinâmica de desvios, barramento de 64 bits,
trabalham entre 532 e 665 MHz. É usado em comunicadores como
Nokia E90, Apple, iPhone.
• Cortex – Atualmente o processador mais poderoso da ARM, trabalha
de 600Mhz até mais de 1 GHz. Inclui 13 estágios de Pipeline, com
estados de espera programáveis.
(Disponível em:
<http://sca.unioeste-
foz.br/~habib/x/trabalhos/grupob3/public_html/html/evolucao.htm>.
Acesso em: 02 de dezembro de 2016).
Tema 2: Arquitetura
5
Controle sobre a ALU e sobre o shifter (deslocador) em todas
instruções de processamento de dados;
(Disponível em:
<http://docplayer.com.br/12862182-A-arquitetura-arm-mc722-projeto-
de-sistemas-computacionais-pedro-henrique-gomes-tatiane-silvia-
leite-uirauna-imirim-caetano.html>. Acesso em: 02 de dezembro de
2016).
6
Figura 1: Diagrama em blocos CPU ARM7
7
“A arquitetura ARM inclui um total de 31 registradores da CPU e pode
operar com dois conjuntos de instruções, sendo um de 32 bits chamado ARM e
outro de 16 bits chamado Thumb”. (PEREIRA, 2013, p. 70)
8
da instrução em execução. A Tabela 1 apresenta a descrição de operação do
Pipeline para o estado ARM.
Endereço Operação
PC Busca
PC - 4 Decodificação
PC - 8 Execução
9
O registrador R13 do modo ARM que opera como apontador da pilha é
chamado simplesmente de SP para o modo Thumb, assim como o registrador
R14 do modo ARM, chamado de LR no estado Thumb e o registrador R15,
contador de programa chamado PC para o modo Thumb.
Como as instruções do modo Thumb possuem tamanho de 16 bits, o PC
é incrementado de dois em dois bytes a cada nova instrução a ser executada.
Além disso, o PC aponta sempre para a próxima instrução a ser buscada, o que
implica, devido ao Pipeline, na instrução em execução quatro bytes abaixo do
valor atual do PC. Na Tabela 2, temos apresentação da descrição do
funcionamento do Pipeline para o modo de execução Thumb.
Endereço Operação
PC Busca
PC – 2 Decodificação
PC – 4 Execução
10
R7 R7
R8
R9
R10
R11
R12
R13 SP Apontador de Pilha (SP)
R14 LR Endereço de Retorno (LR)
R15 PC Contador de Programa (PC)
CPSR CPSR Estado da CPU
11
Modo User (usr)
Este modo de operação é não privilegiado e utilizado para operações
cotidianas do programa, sendo que o programa em execução não pode alterar o
modo de operação nem habilitar/desabilitar interrupções. As únicas formas de
saída desse modo são o reset ou a execução de uma interrupção por software.
Em ambas as situações, o novo modo de operação passa a ser o supervisor.
12
que se refere à temporização da instrução. Este nome decorre do fato de que a
instrução que ocasiona a execução já foi previamente carregada da memória e
encontra-se no Pipeline, aguardando o instante da sua execução. Essa
execução somente ocorre se a instrução for efetivamente executada, ou seja, se
ela atingir o último estágio do Pipeline.
Data Abort – Possui um comportamento muito similar ao do
prefetch abort, com a diferença de que esse tipo de abort é provocado pela
tentativa de escrever ou ler um dado de uma posição de memória não permitida
ou não implementada, sendo que a detecção ocorre durante a execução da
instrução.
13
CPSR referente a interrupções IRQ habilitadas, também estiver em nível lógico
“0”.
14
Instruções de Branch
15
BVC Flag overflow a “0” Resultado da operação com sinal não gerou
overflow
BVS Flag overflow a “1” Resultado da operação com sinal gerou overflow
BGT Superior Resultado da operação com sinal é valor superior
BGE Superior ou igual Resultado da operação com sinal é valor superior ou
igual
BLT Menor Resultado da operação com sinal é valor inferior
BLE Menor ou igual Resultado da operação com sinal é valor inferior ou
igual
BHI Superior Resultado da operação com sinal é valor superior
BLS Igual ou superior Resultado da operação com sinal é valor igual ou
superior
16
0010 SUB Subtração Rd:=Rn - oper2
0011 RSB Subtração com comutação Rd:= oper2 – Rn
operandos
0100 ADD Adição Rd:=Rn + oper2
0101 ADC Adição com carry Rd:=Rn + oper2 + C
0110 SBC Subtração com carry Rd:=Rn - oper2 + C -1
0111 RSC Subtração com carry e Rd:=oper2 – Rn + C -1
comutação dos operandos
1000 TST Teste Update flags após Rn
AND oper2
1001 TEQ Teste de equivalência Update flags apósRn EOR
oper2
1010 CMP Comparação Update flags apósRn -
oper2
1011 AMN Comparação com negação do Update flags apósRn +
segundo operando oper2
1100 ORR Ou lógico bit-a-bit Rd:=Rn OR oper2
1101 MOV Mover, copiar dado Rd:= oper2
1110 BIC Nand lógico bit-a-bit Rd:=Rn AND NOT oper2
1111 MVN Mover, copiar com negação Rd:= NOT oper2
17
A arquitetura ARM suporta dois tipos de instruções de load e store, que
transferem o conteúdo de um registrador para a memória ou ao
contrário. O primeiro tipo pode carregar ou escrever uma palavra de 32
bits ou um byte sem sinal.
O segundo tipo pode ler ou escrever meia palavra de 16 bit sem sinal,
e pode carregar e sinalizar meia palavra de 16 bit ou um byte. Este tipo
de instrução está disponível apenas para a arquitetura ARM versão 4
ou posterior.
Codificação das instruções:
Instrução que lê e carrega palavra ou byte sem sinal:
(Disponível em:
<http://sca.unioeste-
foz.br/~habib/x/trabalhos/grupob3/public_html/html/assembly.htm>.
Acesso em: 02 de dezembro de 2016)
18
Rd – Especifica o registrador do qual será lido ou onde será carregado
a informação.
(Disponível em:
<http://sca.unioeste-
foz.br/~habib/x/trabalhos/grupob3/public_html/html/assembly.htm>
Acesso em: 02 de dezembro de 2016)
Instruções do Coprocessador
19
permite, também, ao processador criar endereços para o
coprocessador carregar e escrever instruções.
(Disponível em:
<http://sca.unioeste-
foz.br/~habib/x/trabalhos/grupob3/public_html/html/assembly.htm>.
Acesso em: 02 de dezembro de 2016)
SÍNTESE
20
pequeno "computador" de baixo custo, que executa diversas aplicações
evolvendo sistema operacional Linux.
Raspberry Pi
21
Fonte:<http://wiki.seeedstudio.com/wiki/Raspberry_Pi_3_Model_B>.
Acesso em: 16 de dezembro de 2016.
REFERÊNCIAS
22
<http://docplayer.com.br/12862182-A-arquitetura-arm-mc722-projeto-de-
sistemas-computacionais-pedro-henrique-gomes-tatiane-silvia-leite-uirauna-
imirim-caetano.html> Acesso em: 02 de dezembro de 2016.
23
WIKIPEDIA. Núcleo (Sistema Operacional). Disponível em:
<https://pt.wikipedia.org/wiki/N%C3%BAcleo_(sistema_operacional)>. Acesso
em: 16 de dezembro de 2016.
24