Prévia do material em texto
Faculdade Internacional da Paraíba Disciplina: Arquitetura e Organização de Computadores Professor: Hugo Nathan Ciência da Computação ARM BARBOSA, Edson[footnoteRef:1]; FALEIA, Douglas[footnoteRef:2]; LIMA, Adriano[footnoteRef:3]; MACIEL, Marta[footnoteRef:4]; MAIA, Erion[footnoteRef:5]. [1: Apresentação do ARM;] [2: Produção de relatório;] [3: Produção de slides para apresentação;] [4: Produção de relatório;] [5: Apresentação do ARM.] INTRODUÇÃO Este relatório contempla os conceitos e as descrições das características mais pontuadas no ARM. Iniciado com uma breve história sobre como o ARM (Advanced RISC Machines) foi desenvolvido, suas vantagens e aplicações. Bem como, de modo reduzido, explora-se as características gerais de sua arquitetura baseada em Risc, instruções, pipeline. As atualizações decorrentes das versões, famílias e as extensões do ARM, também serão apresentadas. Seguido de exemplos e descrições dos Sistemas Operacionais (SO) que são utilizados na Arquitetura ARM, assim como, os sistemas operacionais embarcados. E por fim, é explanado a sua aplicação em contextos atuais. 1. HISTÓRICO ARM Furber (2000) relata que o primeiro processador ARM foi desenvolvido na Acorn Computers Limited, de Cambridge, Inglaterra, entre os anos de 1983 e 1985. A empresa Acorn já era conhecida no Reino Unido, devido seu sucesso com os microcomputadores BBC (British Broadcasting Corporation), uma máquina alimentada pelo microprocessador 6502 de 8 bits, que se tornou a máquina de uso escolar, laboratórios de pesquisa e estabelecimentos de ensino superior do Reino Unido. Essa demanda levou os engenheiros da Acorn analisaram vários microprocessadores para construir uma máquina potente (FURBER, 2000). De acordo com Furber (2000) os microprocessadores CISC de 16 bits que estavam disponíveis em 1983 eram mais lentos do que as peças de memória padrão. Eles também tinham instruções que levavam muitos ciclos de clock para serem concluídas (em alguns casos, muitas centenas de ciclos de clock), como o micro da BBC se beneficiou muito da rápida resposta de interrupção (MOS Technology 6502) (GOMES, LEITE, CAETANO, 2011), então os projetistas da Acorn não estavam dispostos a aceitar um retrocesso neste aspecto do desempenho do processador. Na época a Acorn cogitou em desenvolver um microprocessador proprietário, no entanto, o investimento era muito alto para uma empresa de pouco mais de 400 funcionários. Sendo assim, eles se concentraram em produzir um design melhor, além de alguns pequenos gate arrays projetados para o micro BBC. De modo que, eles passaram o restante da década de 1980 fazendo progressos discretamente no que seria o futuro ARM (FURBER, 2000; FORTE, 2015). O RISC I vinha sendo desenvolvido por alunos de pós-graduação da Universidade da Califórnia em Berkeley, liderado por David Patterson. Era essencialmente simples, então não havia instruções complexas (FURBER, 2000). Em 26 de abril de 1985, os primeiros protótipos ARM1 (Figura 1) chegaram à Acorn Computers Limited em Cambridge, Inglaterra, tendo sido fabricados pela VLSI Technology, Inc., em San Jose, Califórnia. Poucas horas depois, eles estavam executando o código nos PCs Acorn (FURBER, 2000; FORTE, 2015). Esta arquitetura não foi comercializada e a Arcon continuou no desenvolvimento. No ano seguinte a segunda versão, chamada de ARM2 foi, então, lançada (GOMES, LEITE, CAETANO, 2011). Como bem apontam Gomes, Leite e Caetano (2011), no período em que o ARM2 foi desenvolvido, era o processador de 32 bits mais básico no mercado, com apenas 30.000 transistores, mas superava o desempenho de processadores mais complexos RISC ou CISC, como o 286 da Intel. Esses microprocessadores possuíam um barramento de dados de 32 bits e outro de endereços de 26 bits (PEREIRA, 2007). Figura 1: Arquitetura dos primeiros protótipos ARM1. Fonte: https://commons.wikimedia.org/wiki/File:Acorn-ARM-Evaluation-System.jpg. Acesso em: 28/11/2021. Então, podemos afirmar, de acordo com Furber (2000) que o ARM, nasceu por meio de uma combinação casual de fatores e se tornou o principal componente da linha de produtos da Acorn. Mais tarde, após uma modificação criteriosa da expansão da sigla para (Acorn RISC Machine), a empresa emprestou seu nome para ampliar seu mercado além da gama de produtos da Acorn (FURBER, 2000; FORTE, 2015). Essas primeiras versões dos microprocessadores ARM (ARM2 e ARM3) foram utilizadas nos primeiros computadores RISC pessoais (Archimedes 300, 400 e 500) fabricados pela Acorn (PEREIRA, 2007). Até a formação do Advanced RISC Machines Limited (que mais tarde foi renomeada simplesmente ARM Limited) em 1990, a Acorn permaneceu com RISC Machine (FORTE, 2015). Mas ao longo da década de 1990, aos cuidados da ARM Limited (empresa separada especificamente para ampliar a exploração da tecnologia ARM), o ARM saltou para o cenário mundial e estabeleceu uma posição de liderança de mercado em aplicações embarcadas de alto desempenho, baixo consumo de energia e baixo custo e licenciado para muitos fabricantes de semicondutores em todo o mundo (FURBER, 2000). No ano seguinte, Pereira (2007) descreve que, foi lançada a primeira versão embedded comercial da CPU ARM, o ARM6™, juntamente com o primeiro microprocessador do ARM, o ARM610 (PEREIRA, 2007). É importante ressaltar que, atualmente, a ARM Limited não fabrica chips, apenas licencia o uso de suas CPUs (a sua propriedade intelectual) por outros fabricantes de microcontroladores e microprocessadores, permitindo eles desenvolvam suas próprias famílias de CPUs (PEREIRA, 2007; GARRETT, 2020) (Figura 2). Figura 2: A ARM Limited não fabrica e vende processadores; empresa tem, na verdade, direitos sobre designs. Fonte: https://www.techtudo.com.br/noticias/2020/08/processador-arm-tudo-sobre-os-futuros-chips-dos-computadores-da-apple.ghtml. Acesso em: 28/11/2021. 2. ARQUITETURA De acordo com Furber (2000), nenhum processador é particularmente útil sem o suporte de ferramentas de desenvolvimento de hardware e software. De modo geral, o ARM apresenta um kit de ferramentas que inclui um emulador de conjunto de instruções para modelagem de hardware e teste de software e benchmarking (uma análise estratégica das melhores práticas usadas por empresas do mesmo setor que o seu), uma linguagem de montagem (assembler), compiladores C e C ++, entre outros (FURBER, 2000). Há muitas vantagens em fazer uso da tecnologia ARM, Pereira (2007) aponta algumas delas, como velocidade, um dos grandes atrativos dos ARMs e muitas aplicações podem necessitar ou se beneficiar da velocidade extra, obtida com a migração de CPUs; Custo reduzido, a arquitetura utilizada nos ARM consolidou-se e amortizou-se ao longo dos anos. Por isso, o custo de licenciamento reduziu bastante. A baixa complexidade de implementação da CPU também permite que os processos na fabricação se tornassem mais baratos; Facilidade de migração: atualmente a grande maioria dos projetos é escritos em C e o uso desta linguagem, o que facilita no desenvolvimento da aplicação, inclusive a migração de uma arquitetura para outra; Sistemas operacionais: um dos mitos que cercam os ARM é que necessitam de um sistema operacional para funcionar, o que não é verdade. Apesar de os ARMs executarem sistemas operacionais com facilidade, seu uso não é essencial (PEREIRA, 2007). Além disso, tem vantagens atrativas ao mercado, como, esquenta bem menos, o processador ARM, em geral, dispensa coolers e sistemas complicados de refrigeração, em um movimento que deve baratear o processo de design e fabricação do computador (GARRETT, 2020). Nos últimos três meses de 2019, um total de 6,4 bilhões de processadores tipo ARM foram lançados no mercado dentro de celulares, tablets, computadores e servidores. De fato o ARM é ideal para mobile. Os chips (Figura 3) controlam ainda uma infinidade de equipamentos e aparelhos portáteis (Figura 4), desde o freio ABS de um automóvel até o conjunto de lâmpadas inteligentes de uma casa conectada (GARRETT, 2020), por exemplo. Figura 3: Chip ARM. Fonte:https://tecnoblog.net/427211/arm-nova-arquitetura-chips-armv9-mais-rapida-segura/amp/. Acesso em: 27/11/21. Figura 4: Processador ARM nos dispositivos móveis da Apple. Fonte: https://www.tecmundo.com.br/produto/211758-processador-arm.htm. Acesso em: 27/11/21. A seguir são apresentadas as características ARM que mais são pontuadas na literatura. Elas foram desenvolvidas considerando seus principais pontos; lembrando que o ARM é feito de propriedades mais complexas, de modo que, recomenda-se que seja realizada a leitura mais aprofundada das referências aqui citadas. 2.1 CARACTERISTICAS GERAIS I. RISC Risc é um conjunto de instruções de processadores, utilizado em todos os processadores ARM. As instruções contidas no Risc são mais simples que o sistema CISC. O sistema RISC exige menos do processador, assim o chip não precisa de tanta energia, o que é essencial em dispositivos móveis que tem bateria (SOUSA, 2021). Em 1990 o primeiro chip ARM foi projetado, com arquiteturas RISC, eram o Berkeley RISC I e II e o Stanford MIPS (que significa Microprocessador sem pipeline de intertravamento). A ARM também incorporou vários recursos do design RISC de Berkeley, como: uma arquitetura load-store; instruções de 32 bits de comprimento fixo; formatos de instrução de 3 endereços (FURBER, 2000). Conforme Pereira (2007) as instruções RISC utilizadas pela ARM Limited viabilizaram a construção de uma CPU bastante simples e eficiente, que permitia a implementação de um decodificador de instruções, menos complexo que um baseado em microcódigo. Em Furber (2000) encontram-se três vantagens no uso de Risc: 1. Um processador simples deve exigir menos transistores e menos área de silício. Portanto, uma CPU inteira caberá em um chip; 2. Um processador simples deve exigir menos esforço de design e, portanto, ter um custo de design mais baixo e ser mais bem adaptado à tecnologia; 3. Coisas menores têm frequências naturais mais altas, portanto, um processador simples deve permitir uma alta taxa de clock. II. TIPOS DE INSTRUÇÕES Algumas características interessantes das instruções ARM (GOMES, LEITE, CAETANO, 2011, p. 2): · Conjunto grande e uniforme de registradores; · Arquitetura de LOAD/STORE (carga-armazenamento). Operações de processamento de dados não operam diretamente com o conteúdo da memória, somente com o conteúdo de registradores; · Modos de endereçamento simples, com todos os endereços de load/store sendo determinados a partir dos registradores ou pelos campos da instrução; · Uniformidade e tamanho fixo dos campos das instruções para simplificar a decodificação de instruções; · Controle sobre a ALU e sobre o shifter (deslocador) em todas as instruções de processamento de dados; · Auto incremento e decremento dos endereços das instruções; · Instruções de múltiplos loads/stores para maximizar o desempenho; · Execução condicional da maioria das instruções. O conjunto de instruções do ARM pode ser dividido em 6 grandes classes (GOMES, LEITE, CAETANO, 2011, p. 2,3 e 4; FORTE, 2015, p. 2 e 3): · Instruções de Branch - Essas instruções possibilitam a troca do fluxo de instruções escrevendo um endereço no PC; · Instruções de processamento de dados - Essas instruções podem atualizar os bits. Podemos ter registradores, imediatos ou registradores deslocados; · Transferência de registradores de status - Existem duas instruções (MRS e MSR) que podem transferir dados do registrador de status; · Instruções de Load/Store - Instruções de carregamento e escrita de dados na memória. Podem ler/escrever palavras inteiras (32 bits), meias-palavras (16 bits), bytes sem sinal, e podem ler e estender o sinal de meias-palavras; · Instruções de co-processador - Há um grupo de instruções para trocas de dados com coprocessadores, assim como, para controle destes. Todo o tratamento de ponto flutuante é feito por um coprocessador cuja presença nos chips é opcional; · Instruções de geração de exceções - A instrução SWI causa uma interrupção de software, sendo normalmente usada para fazer chamadas ao sistema operacional. III. SUPORTE A 64 BITS - ARMV8-A Segundo Forte (2015), a primeira versão da arquitetura ARM que suporta instruções de 64 bits é a ARMv8-A, também operadas em processadores Cortex-A72, Cortex-A57 e Cortex-A53. Essa versão insere registradores de 64 bits, bem como, utiliza endereçamento virtual estendido e processamento de dados de 64 bits. IV. PIPELINE Conforme Gomes e colegas (2011) o pipeline[footnoteRef:6] dos processadores baseados na arquitetura ARM são muito semelhantes aos pipelines de outros processadores RISC. Entretanto, como atualmente existem várias famílias de processadores ARM, é normal que cada uma use um diferente modelo de pipeline, por exemplo, o pipeline do Intel XScale, um processador para aplicativos de alto desempenho, é baseado no ARMv5TE e desenvolvido a partir da arquitetura StrongARM, tem mais pipeline (sete estágios) do que o StrongARM (cinco estágio). O que vai diferenciar é o número de estágios ou pipeline, diminuindo ainda mais tempo de execução de um programa. [6: Pipeline é uma técnica de segmentação de instruções. Pipeline vai separar as etapas de execução de instruções em unidades físicas independentes, assim, uma etapa pode trabalhar com uma instrução, ao mesmo tempo em que outra unidade trabalha com outra instrução.] Atualmente a arquitetura já conta com 7 versões bases, que continuam sendo usadas e desenvolvidas, já que o uso de cada família é voltado para um nicho de mercado. Existem também várias extensões especializadas. Abaixo são apresentadas as versões, famílias e as extensões do ARM. V. VERSÕES ARM Diversas variações das CPUs ARM estão disponíveis e são diferenciadas pela versão da arquitetura e pela família a qual pertence. Aqui temos uma breve descrição de cada versão conforme é apresentada por Pereira (2007, p. 18-19): · V1: a primeira versão da CPU ARM incluía um conjunto de 16 registradores da CPU, instruções básicas de carga e armazenar, suportando dados de 8, 32 ou múltiplos de 32 bits. Essa versão não foi utilizada em nenhum produto comercial; · V2: incluía instruções de multiplicação, suporte a coprocessador e bancos de registradores adicionais para interrupções rápidas (FIQ); · V3: expandiu o barramento de endereços para 32 bits, incluíram novos registradores de estado da CPU, instruções adicionais para manipulação desses registradores, novos modos de processamento de exceção da CPU, etc.; · V4: adicionou as instruções para manipulação de 16 bits e instruções de carga de 8 e 16 bits com extensão de sinal; · V5: adicionou novas instruções, como a contagem de zeros à esquerda, breakpoint por software, melhorou a interoperabilidade entre os modos ARM e Thumb e incluiu dois módulos de suporte à CPU; · V6: abrange diversos melhoramentos no suporte à memória, multiprocessamento e gerenciamento de exceções. Inclui os módulos DSP e Java lançados na versão 5; · V7: geração mais recente da arquitetura ARM é totalmente baseada na tecnologia Thumb-2, e garante performances muito mais elevadas. VI. FAMÍLIAS ARM As versões resultaram na criação de diferentes famílias ARM, em que cada uma é evolução da família anterior (Figura 5), normalmente visando o aumento do desempenho, afirma Pereira (2007). Figura 5: Evolução das famílias ARM. Fonte: http://www.inf.ufrgs.br/~flavio/ensino/cmp237/arm7.pdf. Acesso em: 29/11/2021 · ARM1: foi o primeiro protótipo a chegar à Acorn Computers Limited em Cambridge, Inglaterra, tendo sido fabricados pela VLSI Technology, Inc., porém, não foi comercializado (MANUAL ARM DDI, 2014); · ARM2 e ARM3: primeiras versões dos microprocessadores ARM (ARM2 e ARM3). Foram utilizadas nos primeiros computadores RISC pessoais (Archimedes 300, 400 e 500) fabricados pela Acorn (MANUAL ARM DDI, 2014); · ARM4: a primeira variante de arquitetura coberta por este manual. Inclui apenas o conjunto de instruções ARM. Adiciona o conjunto de instruções Thumb (MANUAL ARM DDI, 2014); · ARM5: melhora a interação das instruções ARM e Thumb. Adiciona contagem dezeros à esquerda (CLZ) e ponto de interrupção de software (BKPT) instruções (MANUAL ARM DDI, 2014); · ARM6: adiciona muitas novas instruções ao conjunto de instruções ARM. Formaliza e revisa o modelo de memória e a arquitetura de depuração (MANUAL ARM DDI, 2014). De acordo com o MANUAL ARM DDI (2014), as famílias anteriores agora estão obsoletas. Porém, as famílias seguintes utilizaram de algumas propriedades oferecidas nos ARMs anteriores para aprimorar seu sistema. · ARM7: “é baseada na versão 4 da arquitetura ARM, com pipeline integrado de três estágios. A família ARM7 apresenta um baixo custo e bom desempenho. Existem quatro variantes da família ARM7: ARM7TDM1, ARM7TDM1-S, ARM720T, ARM740T, ARM7EJ-S [...]” (PEREIRA, 2007, p. 19). · ARM9: “também se baseia na CPU ARM v4, incluindo as funcionalidades TDMI e um pipeline de cinco estágios, gerenciador de memória (MMU) e cache dupla (instruções e dados) integrada de 8 ou 16 KiB[footnoteRef:7]. Essas CPUs podem atingir velocidades de até 300 MIPS. Há três versões da família ARM9: ARM920T, ARM922T e ARM940T [...]” (PEREIRA, 2007, p. 20). [7: O kilobyte é um múltiplo do byte da unidade para informação digital, ou seja, um kilobyte equivale a 1000 bytes (Disponível em: https://www.gbmb.org/kib-to-kb. Acesso em: 30 de nov. de 2021).] · ARM9E: “é uma evolução da família ARM9, a família ARM9E utiliza a quinta versão da arquitetura ARM e programa diversas inovações, como: caches variáveis dinamicamente (de 4 a 128 KiB), coprocessador de ponto flutuante e cálculo vetorial (VFP9) opcional, coprocessador de vídeo (MOVE®) opcional com instruções especiais para aceleração da codificação/decodificação de MPEG4 [..]. Há cinco modelos principais, focados em aplicações distintas: ARM926EJ-S, ARM946E-S, ARM966E-S, ARM968E-S e ARM996HS [...]” (PEREIRA, 2007, p. 20). · ARM10E: “é composta pelos modelos ARM1020E, ARM1022E e ARM1026EJ-S e possui memória cache dupla interna de 16 ou 32 KiB, pipeline de seis estágios com predição estática de desvios, execução de instruções fora da sequência, barramento interno de 64 bits, coprocessador de ponto flutuante e cálculo vetorial (VFP10) opcional e velocidade de até 430M1PS/650MFLOPS [...]” (PEREIRA, 2007, p. 20). · ARM11: “é um das famílias de maior desempenho da ARM. Essas CPUs utilizam a versão 6 da arquitetura ARM, com um pipeline de oito ou nove estágios, predição dinâmica de desvios, memórias cache de 4 a 64 KiB, barramentos de 64 bits de alta performance, instruções SIMD para multimídia, coprocessador de ponto flutuante e cálculo vetorial, gerenciamento inteligente de consumo de energia (IEM) opcional [...]”. (PEREIRA, 2007, p. 20). · CORTEX®: “a família ARM CORTEX utiliza a sétima geração da arquitetura ARM e permite atingir níveis de desempenho muito superiores aos das versões anteriores. Entre as principais características disponíveis na família CORTEX, destacam-se: arquitetura superescalar (execução de duas instruções simultaneamente) com pipeline de até 13 estágios, predição dinâmica de desvios, memória cache primária (LI) de 16 ou 32 KiB e secundária (L2) de 64 KiB a 2 MiB, coprocessador de mídia NEON com instruções SIMD de 64/128 bits, entre outras novidades [...]. A família CORTEX-M3 é considerada a menor CPU ARM fabricada atualmente (em torno de 33.000 portas lógicas, incluindo o sistema de interrupção) [...]” (PEREIRA, 2007, p. 21). · StrongARM: “foi desenvolvida pela DEC (Digital Equipment Corporation) em parceria com a ARM, com o objetivo de aumentar a performance das CPUs ARM, pela inclusão de caches, modificação de instruções etc. Muitas dessas modificações foram incorporadas aos projetos posteriores da ARM (ARM9 em diante) [...]” (PEREIRA, 2007, p. 21). · Xcale: “a família Xcale da Intel é resultado da aquisição da linha StrongARM da DEC e seu posterior aprimoramento. Os Xcale atuais, programam a arquitetura ARMv5TE sem o coprocessador de cálculo vetorial, com pipelines de oito estágios” (PEREIRA, 2007, p. 21). VII. EXTENSÕES DA ARQUITETURA · Thumb: “as instruções Thumb são na verdade instruções ARM codificadas para aumentar a desempenho do processador em certas aplicações, utilizando um barramento de dados mais simples (de apenas 16 bits) e criando uma melhor densidade dos códigos. As versões de processadores ARM que possuem o conjunto de instruções Thumb têm a letra T em seu nome, como ARM720T [...]” (GOMES, LEITE, CAETANO, 2011, p. 7). · Thumb-2: “esse novo tipo de instrução foi implementado inicialmente no núcleo ARM1156 (em 2003). Ele estende o limite de 16 bits do modo Thumb com algumas instruções adicionais de 32 bits, para dar um melhor desempenho para aplicações totalmente escritas em modo Thumb. Assim, essas aplicações podem continuar com a densidade de código do antigo Thumb, mas tem a possibilidade de utilizar recursos do modo ARM Thumb-2 [...]” (GOMES, LEITE, CAETANO, 2011, p. 8). · Jazelle: “permite a execução em hardware de bytecodes Java. É outro modo de operação implementado na arquitetura, diferente dos modos ARM e Thumb. Os processadores que suportam o modo Jazelle têm o seu nome acompanhado da letra J, como por exemplo, ARM926J-S” (GOMES, LEITE, CAETANO, 2011, p. 8; FORTE, 2015, p. 11). · Thumb-2EE: “também conhecido como Jazelle RCT, essa tecnologia foi lançada em 2011, primeiramente no núcleo Cortex-A8. O Thumb-2EE estende o Thumb-2 com um conjunto de instruções particularmente úteis para códigos gerados em tempo de execução, como ocorre com os compiladores JIT do Java e C#” (GOMES, LEITE, CAETANO, 2011, p. 8). · NEON: “é um conjunto de instruções do tipo SIMD (Single Instruction Multiple Data) de 64 e 128 bits criado especialmente para acelerar aplicações multimídia e de processamento de sinais. Projetada para a série Cortex-A” (GOMES, LEITE, CAETANO, 2011, p. 8; FORTE, 2015, p. 10). · VFP (Vector Floating Point Processor): “coprocessador que estende as instruções ARM para o cálculo de ponto flutuante de precisão simples e dupla, totalmente compatível com o padrão ANSI/IEEE 754 [...]. É utilizado em controle automotivo, gráficos 3D, controle industrial e tratamento de imagens” (GOMES, LEITE, CAETANO, 2011, p. 8; FORTE, 2015, p. 10). 3. SISTEMAS OPERACIONAIS Antes de citarmos os Sistemas Operacionais (SO) que utilizam na Arquitetura ARM, temos que saber o que é Sistema Operacional. Os Sistemas Operacionais são conjuntos de programas elaborados para controlar e gerenciar o hardware e os recursos de software de um computador (PEREIRA, 2007). Neste é estabelecido uma estrutura e protocolos para que as aplicações façam uso de recursos do hardware e frequentemente incluem diversas funções gerais, que podem vir a ser empregadas pelas aplicações para que o Sistema Operacional venha trocar informações com outras aplicações em execução (PEREIRA, 2007). · Sistema Operacional ARTHUR Arthur foi o primeiro Sistema Operacional que continha uma interface gráfica utilizada em computadores da Acorn, equipadas com uma CPU ARM. Até ser trocada pelo RISC OS 2, disponibilizado em 1989. A área de trabalho é bem primitiva, apresentando um esquema de cores tipicamente descrito como "techinicolor"; sem contar que as primeiras versões eram cheias de defeitos[footnoteRef:8]. [8: https://memim.com/arthur-operating-system.html. Acessado em: 25 de nov. de 2021.] 3.1 SISTEMA OPERACIONAL EMBARCADO O sistema embarcado ou programas e sistema embutido em microprocessado, diferente do computador pessoal, tem como objetivo um conjunto tarefas específicas em um computador é completamente dedicado ao dispositivo ou sistema que ele controla (OLIVEIRA, 2018). Por meio da engenharia é possível aperfeiçoar o projeto, reduzir tamanho, recursos computacionais, bem como, o custo do produto. Existem vários sistemas operacionais embarcados que fazem a utilização do ARM como o RTOS, Symbian OS, Bada OS, eCos, Integrity, Nucleus PLUS, QNX, Thread, VxWorks e Windows CE no Unix-Like temos o GNU/Linux, BSD, Plan 9, Inferno, Solaris e WebOS do Linux tem o Android, Arch Linux, Chrome OS, Debian, Fedora, Gentoo, GoboLinux,MeeGo, Motomagx, Slackware, Ubuntu no BSD temos RISC iX (Apenas em Sistemas ARM2/ARM3), FreeBSD, NetBSD, OpenBSD, IOS(Apple) e do Solaris temos o OpenSolaris (OLIVEIRA, 2018). Abaixo será descrito brevemente alguns desses sistemas, como forma de exemplificação e descrição de Sistemas Operacionais que fazem uso da tecnologia ARM: I. Windows CE No inicio do ano 1990 uma nova classe de computadores é criada a PDA (Assistente pessoal digital). A maioria desses PDA era alimentada por baterias, com a uma tendência emergente de computadores, a Microsoft queria entrar em ação, porém, os processadores Intel x86 que eram necessários para executar o desktop do Windows consumia muita bateria (PEDROSO, 2007). O Windows CE se originou desse projeto, chamado Pegasus z; enfatizando o uso de baixo consumo de energia, compatibilidade com armazenamento de memória, flash e requisitos de memória relativamente baixos (usando tecnologia ARM) (ANDREW, 1999). Ele também manteve uma interface gráfica do usuário amigável semelhante ao Windows 95, completa com o Menu Iniciar e até mesmo uma versão integrada do Solitaire. A primeira versão dele foi lançada no dia 16 de novembro de 1996, atualmente o Windows CE e conhecido como “Windows Embedded Compact”. II. Inferno[footnoteRef:9] [9: http://www.vitanuova.com/inferno/. Acessado em: 25 de nov. de 2021.] Inferno é um sistema operacional usado na criação e suporte de serviços distribuídos. O nome do sistema e dos programas associados, bem como, o da companhia Vita Nuova são inspirados no trabalho literário de Dante Alighieri (A Divina Comédia de Dante). Tem como objetivo operar em modo hospedeiro sobre vários sistemas operacionais distintos ou nativamente em uma variedade de arquiteturas de hardware. Ele foi lançado no ano de 1996; a versão mais estável do mesmo e a 4.0 de 2015 e é compatível com ARM. III. Android Android é o sistema operacional móvel do Google, ele está presente em vários aparelhos de diferentes fabricadoras como LG, Motorola, Samsung, Positivo e muitas outras. Ele é conhecido por ter um núcleo baseado no Linux, tendo um código aberto e uma serie de possibilidades de personalização. Esse sistema foi lançado no ano de 2008 e vem sendo atualizado até os dias atuais, utilizando o ARM em suas versões, tendo a sua última versão, a 12.0, lançada no dia 19 de outubro de 2021 (BARROS, 2021). IV. FreeBSD O FreeBSD é um sistema operacional usado em uma variedade de plataformas que busca o desempenho em recursos, velocidade e estabilidade. Ele é oriundo do BSD (Berkeley Software Distribution), a versão de UNIX desenvolvida na Universidade da Califórnia em Berkeley. Ele dispõe de rede avançada, desempenho, segurança e recursos de compatibilidade (SANTANA, 2019). Também consumidor da tecnologia ARM. V. OpenSolaris O sistema operacional OpenSolaris é produto da Sun Microsystems, que atualmente é uma subordinada a Oracle. Depois que a Oracle comprou a OpenSolaris ela decidiu interromper o projeto e substitui-lo por tecnologia ARM, onde teria uma redução de recursos e maiores desempenhos (TAXEIRA, 2008; GARRETT, 2020). 4. ATUALIDADE Nas últimas décadas o ARM passou por mudanças que incluem a introdução do novo formato de instrução compactado chamado 'Thumb', que reduz o custo e a dissipação de energia em sistemas pequenos; avanços significativos no desempenho com as famílias de processadores ARM9, ARM 10 e 'Strong-ARM'; um ambiente de desenvolvimento e depuração de software de última geração; uma ampla variedade de aplicativos integrados baseados em núcleos de processador ARM (FURBER, 2000). No dia 31 de março 2021 a ARM anunciou a criação de nova arquitetura ARMv9, isso porque a última arquitetura foi lançado no ano de 2011. A nova arquitetura vem com um fator de segurança amplificada o ARM Confidential Compute Architecture (CCA), tecnologia que visa evitar que falhas no nível de hardware possam favorecer o surgimento de problemas tão graves quanto às vulnerabilidades Spectre e Meltdown (ALECRIM, 2021). Eles anunciaram que o desempenho será melhorado e a nova GPU Mali, e sinalizaram que os chips baseados na arquitetura ARMv9 poderá ter desempenho cerca de 30% maior comparando com o Cortex-A1, o núcleo de referência mais potente da companhia (ALECRIM, 2021). Também terá atualização na parte gráfica, tendo poucos detalhes, porém, prometem seguir tendências atuais, com ray tracing e sombreamento em taxa variável (ALECRIM, 2021). Não tem data exata para o ARMv9 chegar ao mercado, pois depende da adoção da mesma entre os fabricantes, mas pode ter ser lançamento em 2022. No entanto, mais de 100 bilhões de chips baseados em tecnologia ARM foram vendidos nos últimos cinco anos. Para os próximos anos, a ARM Limited espera que a nova arquitetura comercialize por volta de 300 bilhões de chips (ALECRIM, 2021). A Apple é uma das empresas que vem buscando tecnologia ARM com desempenho que batem de frente com a intel e AMD, assim podendo investir em seus próprios processadores para uso em computadores, tendo controle tanto do processo quanto do desenvolvimento, desde o software até a CPU (GARRETT, 2020). REFERÊNCIAS ANDREW, B. Windows CE brings real time control to the PC platform. Journal Assembly Automation, v. 19 n. 4 p. 306-308. 1999. Disponível em: https://www.emerald.com/insight/content/doi/10.1108/01445159910295195/full/html. Acesso em: 27 de Nov. 2021. ALECRIM, Emerson. ARM revela ARMv9, nova arquitetura de chips mais rápida e segura. Tecnoblog, 2021. Disponível em: https://tecnoblog.net/427211/arm-nova-arquitetura-chips-armv9-mais-rapida-segura/amp/. Acesso em: 27 de nov. de 2021. BARROS, Thiago. Conheça o Android, o sistema operacional móvel do Google. Techtudo, 2021. Disponível em: https://www.techtudo.com.br/tudo-sobre/android.html. Acesso em: 26 de nov. de 2021. FORTE, Cássio Henrique Volpatto. Processadores ARM: visão geral e aplicações. Grupo de Sistemas Paralelos e Distribuídos (GSPD) Departamento de Ciência da Computação e Estatística Universidade Estadual Paulista “Júlio de Mesquita Filho” (UNESP) São José do Rio Preto - SP – Brasil, 2015. Disponível em: https://docplayer.com.br/8897475-Processadores-arm-visao-geral-e-aplicacoes.html. Acesso em: 26 de nov. de 2021. FURBER, Steve. Arm System On Chip Architecture. Ed. Addison-Wesley. 2000. GARRETT, Felipe. Processador ARM: tudo sobre os futuros chips dos computadores da Apple. Techtudo, 2020. Disponível em: https://www.techtudo.com.br/noticias/2020/08/processador-arm-tudo-sobre-os-futuros-chips-dos-computadores-da-apple.ghtml. Acesso em: 27 de nov. de 2021. GOMES, Pedro Henrique; LEITE, Tatiane Silvia; CAETANO, Uirauna Imirim. A Arquitetura ARM. 2011. Disponível em: https://bootblockbios.files.wordpress.com/2011/01/arquitetura-arm-texto-1.pdf. Acesso em: 24 de nov. de 2021. MANUAL DE REFERENCIA ARQUITETURA ARM. Copyright © 1996-1998, 2000, 2004-2012, 2014 ARM. All rights reserved. ARM DDI 0406C.c (ID051414). Disponível em: https://www.macs.hw.ac.uk/~hwloidl/Courses/F28HS/Docu/DDI0406C_C_arm_architecture_reference_manual.pdf. Acesso em: 28 de nov. de 2021. OLIVEIRA, Suellen. Sistemas Operacionais Embarcados. Medium, 2018. Disponível em: https://medium.com/@suellensantos2209/sistemas-operacionais-embarcados-8e4e025853b1. Acesso em: 26 de nov. de 2021. PEDROSO, Juliano de Mello. Proposta de utilização do sistema operacional Windows CE para aplicações didáticas na área de controle e automação. Mestrado em Ciências (Dissertação). Pós-Graduação em Engenharia Elétrica e Informática Industrial da Universidade Tecnológica Federal do Paraná. Curitiba, 2007. PEREIRA, Fábio. Tecnologia ARM Microcontroladores de 32 Bits. Érica/Saraiva. 2007. SANTANA, Leonardo. O que é FreeBSD? Descubra esse sistema incrível!. SempreUpdate, 2019. Disponível em: https://sempreupdate.com.br/o-que-e-freebsd-descubra-esse-sistema-incrivel/. Acesso em: 26 de nov. 2021. SOUSA, Fernando. O que é um processador ARM. Tecmundo, 2021. Disponível em: https://www.tecmundo.com.br/produto/211758-processador-arm.htm. Acesso em 28 de nov. de 2021. TEXEIRA, Jarbas.Apresentando o OpenSolaris. iMasters, 2008. Disponível em: https://imasters.com.br/devsecops/apresentando-o-opensolaris. Acesso em 26 de nov.2021. 6