Dispositivos Móveis
Processadores do SO Android (ARM)
ARM7
Memória - Capacidade
As principais características da arquitetura ARM quanto à memória são:
• Processador de 32 bits;
• 16 registradores de uso geral;
• Conjunto de instruções extensível com o uso de coprocessadores;
• Instruções básicas similares ao 6502;
• Instruções de três endereços;
• Capacidade de executar instruções de 16 bits usando a arquitetura Thumb;
• Baixo consumo de energia;
• Tamanho do núcleo reduzido;
• Até 16 co-processadores lógicos
Memória - Organização
O Cortex-M3 e o Cortex-M4 possuem um mapa de
memória predefinido. Isso permite que os periféricos
integrados, como o controlador de interrupção e os
componentes de depuração, sejam acessados por
instruções simples de acesso à memória.
O mapa de memória predefinido também permite
que o processador Cortex-M3 seja altamente
otimizado para velocidade e facilidade de integração
em projetos de sistema em um chip (SoC).No geral,
o espaço de memória de 4GB pode ser dividido em
intervalos, conforme mostrado na figura ao lado.
Memória - Organização
Sistema
Barramento Periférico Privado - Externo - Fornece acesso a:
●O Trace Port Interface Unit (TPIU), a Macrocélula de Rastreamento
Incorporada (ETM) e a tabela ROM,áreas específicas de
implementação do mapa de memória PPB.
Barramento Periférico Privado - Interno - Fornece acesso a:
●A Macrocélula de Rastreamento de Instrumentação (ITM), ao Ponto
de Controle de Dados e Rastreamento(DWT), ao Flashpatch, ao
Ponto de Interrupção (FPB), O Espaço de Controle do Sistema
(SCS), incluindo o MPU e o Controlador de Interrupções Vetorizado
(NVIC).
●Dispositivo Externo - Esta região é usada para memória de
dispositivo externo.
●RAM externa - Esta região é usada para dados.
●Periférico - Esta região inclui áreas de bits e bit bands.
Memória - Organização
●Bit bands dos periféricos - Os acessos diretos a esse
intervalo de memória se comportam como acessos de
memória periférica, mas essa região também é endereçável
por bits por meio de alias de banda de bits.
●Região de bits bands periférica - Os acessos de dados a
esta região são remapeados para a região de banda de
bits. Uma operação de gravação é executada como leitura-
modificação-gravação.
SRAM - Esta região executável é para armazenamento de
dados. O código também pode ser armazenado aqui. Esta
região inclui áreas de banda de bits e alias de banda de bits.
Código - Esta região executável é para o código do
programa. Os dados também podem ser armazenados aqui.
Memória - Cache
Cada local de memória na cache é conhecido como linha de cache. A cache no ARM é full associative, o que significa que
ela é associativa por conjunto de ‘N’ vias, sendo N o número total de linhas de cache, assim, qualquer busca na cache
precisa checar cada linha de cache.
A cache é também mapeada diretamente, ou seja, a cache é associada por conjunto de ‘m’ vias, com um conjunto de ‘m’
blocos e uma entrada pode residir em qualquer bloco dentro desse conjunto. O tamanho das linhas de cache é sempre
uma potência de dois e tipicamente são de 16 bytes (4 words) ou de 32 bytes (8 words).
A política de substituição utilizada pela cache dos processadores ARM podem ser: peseudorândomica ou Round-Robin.
Quanto ao tamanho, o sistema de memória ARM permite diferentes tamanhos de cache, dependendo da importância de
performance no dispositivo.
Os processadores ARM dividem sua cache em duas partes: uma cache exclusiva para dados e uma cache exclusiva
para instruções, podendo assim acelerar o processo de execução já que é permitido instruções de leitura e escrita num
mesmo ciclo de clock. E o tamanho da cache de dados pode diferir do tamanho da cache de instrução.
Para cada cache, existe uma área da memória RAM dedicada também separadamente, uma para dados e outra para
instruções, essas áreas são chamadas TCM, que foi desenvolvida com objetivo de fornecer uma memória mais estável
que as caches e ao mesmo tempo com baixa latência. Assim, elas são utilizadas para conter rotinas críticas, em que a
imprevisibilidade da memória cache é altamente indesejável, como por exemplo: rotinas manipuladoras de interrupções.
CPU
Os processadores ARM têm até 11 modos de operação, variando conforme
a versão.
Isso permite uma melhor adaptação a diferentes cenários e tipos de
aplicações, o que torna uma arquitetura que abrange muitos dispositivos.
Arquitetura do processador
● Baseada no padrão RISC, ou seja,
contempla um conjunto pequeno de
instruções;
● Tem foco na redução do consumo de
energia, calor emitido e de custos, tornando-
se ideal para sistemas embarcados;
● Há versões que processam dados e
instruções de 32 e também de 64 bits (a
partir do ARMv8-A).
Diagrama de bloco
● Troca de dados com o processador ocorre por meio da
memória externa via um barramento de dados;
● Valor transferido para o processador é um dado
proveniente de uma instrução de Load/Store ou até uma
busca de instruções;
● Instruções obtidas são decodificadas por um
decodificador de instruções antes de serem executadas
por meio do gerenciamento da unidade de controle;
● A lógica de pipeline que fornece sinais de controle a
todos os elementos de hardware do processador;
● Há um banco de registradores (register file), que é
constituído por um conjunto de registradores de 32 bits;
● Em geral, as instruções de processamento de dados do
ARM possuem dois registradores de origem, Rn e Rm e
um registrador único de destino Rd como resultado.
Diagrama simplificado e genérico
Registradores
● 37 registradores, sendo alguns
exclusivos de determinados modos de
operação da CPU.
● 30 são de propósito geral, entre eles:
○ 2 para ponteiro de pilha e link register;
○ 7 de uso específico, como contador de
programa e registradores de estado
(Negativo, Zero, Carry e Overflow).
Conjunto de instruções
● O conjunto de instruções do ARM pode ser dividido em 6 classes:
● Instruções de Branch;
● Instruções de processamento de dados;
● Transferência de registradores de status;
● Instruções de Load / Store;
● Instruções de co-processador;
● Instruções de geração de exceções.
Conjunto de instruções
● 4 bits para o campo de condição; ● Instruções fixas de 32 bits;
● 3 bits para o tipo de instrução; ● Instruções compactas de 16 bits
● 5 bits para código de operação; (Thumb);
● ● Bit menos significativo ao mais
20 bits com uso variável, podendo
significativo;
conter endereços, referências a
● Bit S, que carrega um valor responsável
registradores, deslocamentos e
por determinar a alteração dos valores
rotações.
das flags de estado a partir do resultado
da operação.
Pipeline
● Busca;
● Decodificação;
● Execução de instruções;
● Pipeline duplo de 13 estágios.
Pipeline
Estágios de busca do pipeline do ARM Estágios de decodificação do pipeline do
Cortex-A8 ARM Cortex-A8
Pipeline
Estágios de execução do pipeline do ARM Cortex-A8
Pipeline
Estágios de execução do pipeline do ARM Cortex-A8
Barramentos
● O sistema operacional ARM utilizam a Arquitetura de
Barramento Avançado de Microcontroladores(AMBA,
Advanced Microcontroller Bus Architecture);
● Foi introduzida em 1996 e é largamente utilizada
como um padrão de comunicação on-chip da ARM
limited;
● Sua função é fazer com que os blocos interajam uns
com os outros em SoC(System-on-a-chip, Sistemas
em um chip ou circuito integrado por
microcontroladores), interconectando os seus
módulos.
Barramentos
Barramentos
O seu barramento de padrão aberto traz vantagens
como:
○ uma maior compatibilidade com os
barramentos periféricos;
○ mais flexibilidade e independência de
tecnologia;
○ permite aos designers de periféricos
reutilizarem o mesmo design em vários
projetos através da interface plug-and-
play para desenvolvedores de hardware
que melhora a disponibilidade e o
tempo de lançamento no mercado.
Barramentos
● Ao longo do tempo, o AMBA passou por quatro especificações (AMBA 1.0, AMBA 2.0, AMBA
3.0 e AMBA 4.0) e também foi dividido em dois tipos de barramento:
○ Barramentos de sistema
■ ASB (Advanced System Bus)
● é utilizado para módulos de alto desempenho, e quando os requisitos de
desempenho do AHB (Advanced High-performance Bus) não são
necessários
■ AHB (Advanced High-performance Bus)
● é um barramento utilizado quando se exige um alto desempenho com altas
frequências de clock.
Barramentos
● AXI (Advanced eXtensible Interface)
■ é utilizado para altas performances, designs de sistemas de
alta frequência e uma série de características de interconexão
de alta velocidade.
● barramento de periféricos
■ APB (Advanced Peripheral Bus)
● é menos complexo, pois ele é otimizado para o baixo
consumo de energia,além de possuir uma interface de
baixa complexidade.
Barramentos
● Advanced Peripheral Bus (APB)
○ APB é projetado para acessos de controle de baixa largura de banda, por exemplo,
registrar interfaces em periféricos do sistema
○ Este barramento tem um endereço e uma fase de dados semelhantes ao AHB, mas
uma lista de sinais de baixa complexidade muito reduzida
○ Além disso, é uma interface projetada para um sistema de baixa frequência com
largura de bits baixa (32 bits).
● Advanced High-performance Bus (AHB)
○ AHB é um protocolo de barramento introduzido na Advanced Microcontroller Bus
Architecture versão 2 publicada pela empresa Arm [Link]ém da versão anterior,
possui os seguintes recursos:
Barramentos
● grandes larguras de barramento (64/128/256/512/1024 bit)
○ Uma transação simples no AHB consiste em uma fase de endereço e uma fase de
dados subsequentes (sem
○ estados de espera: apenas dois ciclos de barramento)
○ AHB-Lite é um subconjunto de AHB formalmente definido no padrão AMBA 3. Este
subconjunto simplifica o projeto de um barramento com um único mestre.
● Advanced Extensible Interface (AXI)
○ AXI , a terceira geração de interface AMBA definida na especificação AMBA 3, é
voltada para projetos de sistema de alta frequência de clock de alto desempenho e
inclui recursos que a tornam adequada para interconexão submicrométrica de alta
velocidade:
Barramentos
● endereço / controle separado e fases
de dados;
● suporte para transferências de dados
● desalinhados usando strobes de byte;
● transações baseadas em burst com
apenas
● endereço inicial emitido;
● emissão de vários endereços
pendentes com
● respostas fora de ordem;
● adição fácil de estágios de registro
para
● fornecer fechamento de tempo.
Unidade Aritmética e Lógica
Dois canais para realizar operações com inteiros:
○ Um canal de instruções denominadas Load/Store;
○ Um canal para instruções de multiplicação.
Load/Store: processam somente os valores localizados nos registradores e os resultados sempre serão
armazenados em algum registrador.
A multiplicação de inteiros pode ocorrer com operandos de 32 ou 16 bits.
O resultado pode ocupar 32 ou 64 bits.
Na adição e na subtração, é possível aplicar a operação em partes dos operandos, ou seja, realizar de forma
paralela.
Curiosidades
Atualmente a Arm Holdings, empresa
responsável pela pesquisa e
desenvolvimento da arquitetura ARM,
comemora a marca de 200 bilhões de chips
que já foram produzidos por seus parceiros
que ajudaram a chegar nesse caminho.
Curiosidades
● 1996: Lançado Celular Nokia 6110 com ARM7TDMI
implementado.
● 2001: Apple lança o iPod utilizando também o
ARM7TDMI.
● 2005: cerca de 98% de todos os telefones celulares
vendidos usavam pelo menos um processador ARM.
● 2008: Primeiro smartphone com Android é lançado: O
T-Mobile G1.
● 2010: Apple lança o Ipad. Seu chip, o A4, nada mais
é do que um ARM Cortex A8.
Curiosidades
● 2011: a arquitetura ARM de 32 bits era a arquitetura mais
utilizada em dispositivos móveis e a de 32 bits mais popular em
sistemas embarcados.
● 2013: 10 bilhões foram produzidos e chips baseados em ARM
são encontrados em quase 60% dos dispositivos móveis do
mundo.
● 2013: a Chipmaker Freescale Semiconductor anuncia a criação
do menor chip ARM do mundo. O Kinetis KL02, que media 1,9
por 2 milímetros, e trazendo uma unidade microcontroladora
completa (MCU).
● 2014: Intel (maior concorrente do ARM) anuncia parceria para
fabricação de processadores com arquitetura ARM.
● 2015: Microsoft anuncia Windows 10 para arquitetura ARM.
Curiosidades
● 2016: o grupo SoftBank anunciou a compra da
ARM.
● 2021: ARM anuncia que está desenvolvendo o
PlasticARM, um novo chipset flexível com uma
das menores dimensões já utilizadas, voltado
para pulseiras inteligentes e dispositivos IoT.
● 2022: proposta de venda da companhia ARM
por US$ 40 bilhões para a Nvidia Corp. é
cancelada.
Curiosidades
O supercomputador mais poderoso do mundo é
o japonês Fugaku, equipado com 158.976
processadores A64FX da Fujitsu, baseados na
arquitetura ARM vista em celulares e no Apple
M1, com 48 núcleos cada, para um total de
7.630.848 núcleos rodando a 2,2 GHz. A
máquina traz ainda 5 Petabytes (PB) de
memória RAM, o equivalente a 5.000.000 de
Gigabytes (GB).
Conclusão
Com base nas informações obtidas, conclui-se que o processador ARM se
desenvolveu muito ao longo dos anos e consolidou-se no mercado através da
utilização em dispositivos móveis e sistemas embarcados, preservando suas
vantagens: acessível, baixo consumo de energia e rapidez. Pelo crescente
interesse de grandes empresas em utilizar a arquitetura ARM e valorização da
empresa que detém os direitos do processador, o futuro dessa tecnologia deve
ser longo, próspero e com muitas inovações.
Obrigado!
Fernanda Szabadi - RA 0030482213026
Nathalia Alves Rabelo - RA 0030482213003
Nicollas Pires Furquim Schlemm - RA 0030482213033
Rogerio Rodrigues Lopes - RA 0030482123004
Rogerio Takashi Oue - RA 0030482213031
Sandy Maria Correa Manoel - RA 0030482213011