ELABORADO POR JAY KLENDER WORSES
TRABALHO DE
ARQUITECTURA E SISTEMA DE COMPUTADORES I
NOME: AUGUSTO
BERNARDO AFONSO CAPITÃO
Nº 24977
PERÍODO: MANHÃ
CURSO: ENGENHARIA
INFORMÁTICA
O DOCENTE
________________________
ENGº GABRIEL GRAÇA
LUANDA/2018
ÍNDICE
No
começo da década de 80, a tendência era construir chips com conjuntos de
instruções cada vez mais complexos, os famosos processadores CISC. Alguns
fabricantes porém, resolveram seguir o caminho oposto, criando o padrão RISC
(Reduced Instruction Set Computer, ou "computador com um conjunto reduzido
de instruções"). Ao contrário dos complexos CISC, os processadores RISC
são capazes de executar apenas algumas poucas instruções simples. Justamente
por isso, os chips baseados nesta arquitetura são mais simples e muito mais
baratos.
Porém,
ao mesmo tempo, existia a necessidade de continuar criando processadores
compatíveis com os antigos. RISC e CISC
são tipos de arquiteturas dos processadores. A arquitetura RISC, conhecida
também como Computador com um conjunto reduzido de instruções (Reduced
Instruction Set Computer), executa um conjunto simples e pequeno de instruções
que levam aproximadamente a mesma quantidade de tempo para serem executadas.
ARM,
originalmente Acorn RISC Machine, e depois Advanced RISC Machine, é uma família
de arquiteturas RISC desenvolvida pela empresa britânica ARM Holdings. Tais
arquiteturas são licenciadas pela ARM para outras empresas, que implementam-nas
em seus próprios produtos. A ARM também desenvolve chips que utilizam tal
arquitetura e que são licenciados para uso exclusivo de outras empresas em seus
produtos. ARM é um acrônimo de Advanced RISC Machine (algo como máquina RISC
avançada)
A arquitetura de
processador descreve o processador que foi usado em um computador. Grande parte
dos computadores vêm com identificação e literatura descrevendo o processador
que contém dentro de si, arquitetura CISC, RISC e ARM.
A CISC (em inglês: ComplexInstructionSet Computing),
Computador com um Conjunto Complexo de Instruções), usada em processadores
Intel e AMD; suporta mais instruções no entanto, com isso, mais lenta fica a
execução delas.
A RISC (em inglês: ReducedInstruction SetComputing),
Computador com um Conjunto Reduzido de Instruções) usada em processadores Power
PC (da Apple, Motorola e IBM) e SPARC (SUN); suporta menos instruções, e com
isso executa com mais rapidez o conjunto de instruções que são combinadas.
É indiscutível, porém, que em
instruções complexas os processadores CISC saem-se melhor. Por isso, ao invés
da vitória de uma das duas tecnologias, atualmente vemos processadores
híbridos, que são essencialmente processadores CISC, mas incorporam muitos
recursos encontrados nos processadores RISC (ou vice-versa).
Nos chips atuais, que são na verdade
misturas das duas arquiteturas, juntamos as duas coisas. Internamente, o
processador processa apenas instruções simples. Estas instruções internas,
variam de processador para processador, são como uma luva, que se adapta ao
projeto do chip. As instruções internas de um K6 são diferentes das de um
Pentium por exemplo. Sobre estas instruções internas, temos um circuito
decodificador, que converte as instruções complexas utilizadas pelos programas
em várias instruções simples que podem ser entendidas pelo processador. Estas
instruções complexas sim, são iguais em todos os processadores usados em micros
PC. é isso que permite que um Athlon e um Pentium III sejam compatíveis entre
sí.
O conjunto básico de instruções
usadas em micros PC é chamado de conjunto x86. Este conjunto é composto por um
total de 187 instruções, que são as utilizadas por todos os programas. Além
deste conjunto principal, alguns processadores trazem também instruções alternativas,
que permitem aos programas executar algumas tarefas mais rapidamente do que
seria possível usando as instruções x86 padrão. Agora vamos analisar cada uma
delas com um pouco mais detalhadamente.
Examinando de um ponto de vista um
pouco mais prático, a vantagem de uma arquitetura CISC é que já temos muitas
das instruções guardadas no próprio processador, o que facilita o trabalho dos
programadores, que já dispõe de praticamente todas as instruções que serão
usadas em seus programas. Os processadores CISC têm a vantagem de reduzir
o tamanho do código executável por já possuírem muito do código comum
em vários programas, em forma de uma única instrução.
Os processadores baseados na
computação de conjunto de instruções complexas contêm uma microprogramação, ou
seja, um conjunto de códigos de instruções que são gravados no processador,
permitindo-lhe receber as instruções dos programas e executá-las, utilizando as
instruções contidas na sua microprogramação. Seria como quebrar estas instruções,
já em baixo nível, em diversas instruções mais próximas do hardware (as
instruções contidas no microcódigo do processador). Como
característica marcante esta arquitetura contém um conjunto grande de
instruções, a maioria deles em um elevado grau de complexidade.
A CISC é implementada e guardada em
micro-código no processador, sendo difícil modificar a lógica de tratamento de
instruções. Esta arquitetura suporta operações do tipo “a=a+b” descrita por
“adda,b”, ou seja podem simplesmente utilizar dois operandos para uma
única instrução, sendo um deles fonte e destino (acumulador) e permite um ou
mais operadores em memória para a realização das instruções. Porém, do ponto de vista da performance, os
CISC’s têm algumas desvantagens em relação aos RISC’s, entre elas a
impossibilidade de se alterar alguma instrução composta para se
melhorar a performance. O código equivalente às instruções compostas do
CISC pode ser escrito nos RISC’s da forma desejada, usando um conjunto de
instruções simples, da maneira que mais se adequar. Sendo assim, existe uma
disputa entre tamanho do código X desempenho.
No caso de um chip estritamente
RISC, o programador já teria um pouco mais de trabalho, pois como disporia
apenas de instruções simples, teria sempre que combinar várias instruções
sempre que precisasse executar alguma tarefa mais complexa.
Os processadores baseados na
computação de conjunto de instruções reduzido não têm micro-programação, as
instruções são executadas diretamente pelo hardware. Como característica, esta
arquitetura, além de não ter microcódigo, tem o conjunto de instruções
reduzido, bem como baixo nível de complexidade. A ideia foi inspirada pela
descoberta de que muitas das características incluídas na arquitetura
tradicional de processadores para ganho de desempenho foram ignoradas pelos
programas que foram executados neles. Mas o desempenho do processador em
relação à memória que ele acessava era crescente. Isto resultou num
número de técnicas para otimização do processo dentro do processador, enquanto
ao mesmo tempo tentando reduzir o número total de acessos à memória.
RISC é também a arquiteturaadotada
para os processadores dos videogames modernos, que proporcionam um hardware
extremamente dedicado somente à execução do jogo, tornando-o muito mais rápido
em relação a micro computadores com mais recursos, embora com processador x86. Pode-se
concluir que os projetistas de arquiteturas CISC consideram três aspectos
básicos:
·
Uso de
microcódigo;
·
Construção de
conjuntos com instruções completas e eficientes (completeza no conjunto);
·
Criação de
instruções de máquina de “alto nível”, ou seja, com complexidade semelhante à
dos comandos de alto nível.
Colocados juntos, esses elementos do
projeto nortearam a filosofia de construção de processadores CISC por longo
tempo, como a família Intel x86, os processadores AMD K e, anteriormente, os
sistemas IBM e VAX. Assim é que existem naqueles conjuntos instruções
poderosas, do tipo:
- CAS –
compare andswapoperands (comparar valores e trocas operandos)
- RTR –
returnandrestorecodes (retornar e restaurar código)
- SWAP –
swapregisterwords (trocar palavras dos registradores)
Menor quantidade de instruções: talvez a característica mais
marcante das arquiteturas RISC, seja a de possuir um conjunto de instruções
menor(todas também com largura fixa), que as máquinas que possuíam a
arquitetura CISC, porém com a mesma capacidade. Vem daí o nome dado a
arquitetura RISC (computadores com um conjunto reduzido de instruções). A
SPARC, da Sun, possuía um conjunto de cerca de 50 instruções, a VAX-11/780
tinha até 300 instruções, o Intel 80486 foi apresentado com 200 instruções e os
Pentium possuem mais de 200 instruções.
Com o conjunto de instruções
reduzido e cada uma delas tendo suas funções otimizadas, os sistemas possuíam
um resultado melhor em questão de desempenho. Em virtude do conjunto reduzido
das instruções, acarretavam em programas um pouco mais longos.
Execução otimizada de chamadas de
função: outra
evolução da arquitetura RISC para a arquitetura CISC tem relação com a chamada
de retinas e passagem de parâmetros. Estudos indicam que as chamadas de funções
consomem um tempo significativo de processador. Elas requerem poucos dados, mas
demoram muito tempo nos acessos a memória. Em virtude disso, na arquitetura
RISC foram utilizados mais registradores. As chamadas de função que na
arquitetura CISC ocorriam com acessos a memória, mas na RISC isso era feito
dentro do processador mesmo, utilizando os registradores que foram colocados a
mais.
Modo de execução com Pipelining: uma das características mais
relevantes da arquitetura RISC é o uso de pipelining, mesmo sabendo que ela tem
um funcionamento mais efetivo quando as instruções são todas bastante
parecidas. Imaginando estágios de uma linha de montagem, não é interessantes
que um estágio termine antes do outro, pois nesse caso perde-se a vantagem da
linha de montagem. O objetivo de cada instrução, é completar um estágio de
pipeline em um ciclo de clock, mas esse objetivo nem sempre é alcançado.
O processamento de uma instrução é
composto pelo menos por cinco fases:
- Instructionfetch;
- Instructiondecode;
- Operandfetch;
- Execution;
Hoje em dia o pipeline não se limita
a apenas 5 estágios, mas pode chegar a 20 ou 30 estágios (Intel Pentium 4). No entanto,
para que todo o processo funcione é necessário que determinadas restrições se
verifiquem. A prioridade é que todas as instruções permaneçam em cada estágio o
mesmo tempo, para que:
- O sinal
de relógio seja usado como cadência de processamento;
- Não sejam
necessários “buffers”;
Execução de cada instrução em um
ciclo de clock: se o uso do pipelining se considera uma característica
importante da arquitetura RISC, a execução de uma instrução por ciclo de clock
é mais importante, segundo os que estabeleceram suas bases. Um dos pontos mais
negativos das arquiteturas RISC é o longo tempo de execução de cada instrução.
Com o surgimento dessa nova arquitetura, cada instrução passou a ser executada
a cada ciclo de clock.
·
Múltiplos
conjuntos de registradores, muitas vezes superando 256
·
Três
operandos de registradores permitidos por instrução (por ex., add R1,
R2, R3)
·
Passagem
eficiente de parâmetros por registradores no chip (processador)
·
Único
conjunto de registradores, tipicamente entre 6 e 16 registradores
·
Um ou dois
operandos de registradores permitidos por instrução (por ex., add R1,
R2)
·
Passagem de
parâmetros ineficiente através da memória
·
Instruções
de múltiplos ciclos
Como as novas gerações de uma família
de processador geralmente envolve a geração
antecessora, tanto o
conjunto de instruções quanto o hardware do novo chip
tornam-se mais complexos. Instruções diferentes
levam quantidades diferentes
de período de relógio para executar, o que pode tornar a
máquina excessivamente lenta.
Devido a tecnologia pipelined os
processadores RISC alcançam duas a quatro vezes a performance dos processadores
CISC usando tecnologia de semicondutor equivalente e os mesmos valores de
clock.
Pelo facto de um processador RISC
trabalhar com instruções simples, o processador utiliza de menos espaço no
chip, funções extras como circuito de gerenciamento de memória e unidade
aritmética armazenada num mesmo chip. Chips menores permitem que o fabricante
armazenem mais dispositivos em uma única pastilha, o que pode baixar
consideravelmente o custo.
A transição da arquitetura CISC
para arquitetura RISC pode apresentar alguns problemas devido ao fato que os
engenheiros de software podem ter problemas para fazer a transição do código de
memória de maneira correta.
A performance de um processador RISC
depende diretamente do código gerado pelo programador. No caso de um código mal
desenvolvido o processador pode gastar um tempo demasiado na execução das
instruções, isto faz com que a performance de uma máquina RISC dependa em
grande parte da qualidade do código, gerado pelo programador.
O facto da arquitetura CISC
trabalhar com instrução única com ações complexas e as máquinas RISC
trabalharem com instrução simples a transição do código pode acarretar
problemas. O termo "expansão do código" refere-se ao aumento de
tamanho que se obtém de um programa originalmente compilado para uma máquina
CISC, ter sido recompilado para uma máquina RISC. A expansão vai depender da
capacidade do programador e a natureza do conjunto de instruções de máquina.
Outra desvantagem que a
arquitetura RISC apresenta é o fato de requerer sistema de memória rápida para
alimentar suas instruções. Tipicamente sistemas baseados nesta arquitetura
costumam apresentar grande quantidade de memória cache interna, conhecida como
"first-level cache", o que encarece o projeto.
1- Poucas instruções, instruções
simples;
2- Instruções rápidas,
com um throughput
próximo de 1
(uma instrução executada por
ciclo de relógio);
3- Todas as instruções do mesmo
tamanho (com pouca variação de formato);
4- Número razoável de registradores
de propósito geral;
5- Acesso à memória somente com LOAD
e STORE;
6- Uso de instruções
compareandbranch;
7- Operações lógicas
e aritméticas entre
registradores (instruções com
três endereços de registrador).
4-A ARQUITETURA
DO ARM
Os processadores ARM foram desenhados com o
objectivo de possuírem um tamanho reduzido e bastante optimizados para o baixo
consumo de energia mantendo o desempenho, fazendo com que se tornem ideais para
a utilização em dispositivos portáteis. Os processadores da família ARM7 foram
usados, por exemplo, no Game Boy Advanced, Nintendo DS, iPod e ainda são usados
em telemóveis da Nokia. Na maior parte dos aspectos o ARM é um RISC – com uma
arquitectura Load-Store (tanto os operandos como o resultado têm de ser
registos), em que as instruções têm, por norma, 3 operandos. A família ARM7 é
de 32 bits e dependendo do processador pode ter cache e UGM.
Mais de 10 bilhões de
processadores contendo um núcleo ARM foram entregues, primariamente para uso em
sistemas embarcados. Na verdade, 98% dos telefones móveis do mundo contém pelo
menos um processador ARM. Você pode aplicar arquiteturas ARM para praticamente
qualquer aplicação embarcada, de protocolos de comunicação automotivos a
sistemas de segurança e dispositivos médicos.
Poucos anos atrás os
processadores ARM eram voltados mais para automação do que para gadgets e pouco
se falava em performance, já que eficiência energética e durabilidade eram os
pontos principais. Mas aí, a corrida entre fabricantes de smartphones começou e
os modelos Cortex-A começaram a ficar populares por trazer um nível adequado de
processamento para os sistemas operacionais móveis atuais, como Android, iOS e
Windows Phone.
As licenciadas da ARM podem então
otimizar, customizar e fabricar a IP dos seus casos de uso particulares ou
requisitos de clientes. Variações de núcleos ARM incluem frequências de clock
que variam, adição de RAM no chip, ou a adição de um periférico ao chip, como
conversores analógicos para digital (ADCs – analog-to-digital converters).
Exemplos de licenciada da ARM incluem Luminary Micro, NXP, STMicroelectronics e
Texas Instruments.
A ARM Ltd. fornece uma vasta gama
de projetos de processador dependendo dos requisitos do sistema. As ofertas
típicas da ARM são categorizadas em microprocessadores em nível de aplicação ou
microcontroladores de sistemas embarcados.
A ARM possui várias famílias de
microcontroladores: ARM7, ARM9 e Cortex-M3. O módulo NI LabVIEW Embedded Module
for ARM Microcontrollers pode programar mais de 300 microcontroladores, e a
National Instruments fornece opções de placas de avaliação para arquiteturas ARM7
e Cortex-M3.
A arquitetura ARM foi
desenvolvida para ter o melhor desempenho possível dentro das seguintes
limitações: ser simples, ocupar pouca área e ter baixo consumo de energia.
Assim é muito utilizado em aplicações como aparelhos portáteis: PDA (Palm
Tungsten, por exemplo), vídeo-game portátil (Nintendo Game Boy Advance), etc.
Além disso, há famílias de processadores ARM específicas para sistemas
embarcados: telefones celulares (aparelhos topo de linha), impressoras e
automóveis, por exemplo.
O núcleo do processador é pequeno
graças á simplicidade do seu conjunto de instruções e ao uso de
coprocessadores. O baixo consumo de energia é alcançado por três fatores:
simplicidade do circuito, pipeline curto (operando a baixas freqüências) e um
projeto que privilegia o mínimo consumo de energia sempre que o processador não
estiver em operação.
Os microcontroladores ARM7 são os
processadores ARM de mais longa data. A família ARM7 possui um pequeno
microcontrolador com consumo de energia muito baixo. O microcontrolador está no
mercado por mais de 10 anos, mas a sua implementação continua a melhorar com
novas tecnologias. Ele é o processador embarcado de 32 bits mais largamente
utilizado e é a escolha da maioria dos licenciados de microcontroladores.
A arquitetura ARM suporta uma
extensão do seu conjunto de instruções por meio da adição de coprocessadores,
ao mesmo tempo que dá suporte á emulação via software desses coprocessadores,
através de um trap para instruções indefinidas. A arquitetura suporta até 16 coprocessadores
lógicos, cada coprocessador pode ter até 16 registradores particulares de
qualquer tamanho razoável, não sendo limitados a 32 bits. Os coprocessadoes
utilizam uma arquitetura load-store, com instruções para realizar operações
internas nos seus registradores, instruções para ler e escrever registradores
da e para a memória, e instruções para mover dados de e para um registrador do
ARM.
Os processadores e
microcontroladores construídos com a arquitetura ARM são identificados conforme
a versão da arquitetura adotada, o perfil e suas variantes. Até o momento já
foram definidas 7 versões de arquitetura ARM, sendo atualmente em uso apenas 4,
identificadas pelo Prefixo ARMv, sendo elas ARMv4, ARMv5, ARMv6 e ARMv7.
Considerando a mais atual a
ARMv7, temos 3 perfis de uso definidos, ARMv7-A, ARMv7-R e ARMv7-M sendo
respectivamente usadas para, processadores de aplicação geral, processadores e
microcontroladores para aplicações de uso critico e resposta em tempo real, e
finalmente o perfil para uso em microcontroladores de uso geral.
As variantes são identificadas
por letras adicionados as versões. No momento existem as seguintes:
·
ARMv4,
·
Uma
variante que inclui apenas o conjunto padrão de instruções ARM.
·
ARMv4T,
·
Nesta
variante é adicionado o conjunto de instruções Thumb.
·
ARMv5T
·
Melhorias
em relação a interworking e instruções ARM. adicionado "Count Leading
Zeros" (CLZ) e instruções para "Software Breakpoint"(BKPT).
Um mesmo processador acaba tendo
as duas formas. Não é nem que o executável não pode mudar de um modelo para
outro, é que não pode mudar de uma arquitetura específica para outra já que o
conjunto de instruções é completamente outro. um ARM e um MIPS são RISC e não
pode transportar entre eles.
Cisc (Complex instruction set
computer) que é a forma mais comum de uso do Intel é caracterizado por ter
instruções mais macros que executam coisas de forma um pouco mais abstrata em
geral consumindo vários ciclos de clock. Tendem a produzir executável um pouco
menos, mas com performance menos previsível.
Risc (Reduced instruction set
computer) cujo maior representante hoje em dia é o ARM possue instruções muito
simples que faz o mínimo necessário, por isso geram executáveis maiores, ainda
que já seja possível otimizar isto, e tem um processamento mais previsível. Por
ter menos abstrações é mais simples programar nele. As abstrações são deixadas
para outro nível. Esta simplicidade se dá porque as instruções são sempre do
mesmo tamanho e o processador não tem que lidar com isto.
Concluindo,o ARM apresentam uma
arquitectura um pouco diferente. Podemos concluir, através da análise da
estrutura e da comparação entre os dois processadores, que o ARM está mais
vocacionado para aplicações de sistemas embebidos portáteis, conseguindo ter
uma arquitectura com um reduzido consumo de energia e um tamanho bastante
reduzido, principalmente devido à sua simplicidade, disponibiliza também
algumas tecnologias que os torna ideais para certos sistemas, por exemplo, a tecnologia
Jazelle (é, basicamente, uma implementação da maquina virtual Java) que os
tornam adequados para a utilização nos telemóveis recentes.
Hachman, Mark (2002). «ARM
Cores Climb into 3G Territory». ExtremeTech~
ARM Discloses Technical
Details Of The Next Version Of The ARM Architecture» (Nota de imprensa). ARM Holdings. 27 de outubro de 2011. Consultado em
20 de setembro de 2013.
"Some facts about the
Acorn RISC Machine" Roger Wilson posting to comp.arch, 2 November 1988. Retrieved 25 May 2007.
Sem comentários:
Enviar um comentário