Você está na página 1de 60

Introdução a Arquitetura e

Organização de Computadores
Com foco em Desenvolvimento de Sistemas
Parte 4 – CPU / Processadores
2023
Marcos Mendes
Arquitetura de von Neumann

Arquitetura de von Neumann


https://pt.wikipedia.org/wiki/Arquitetura_de_von_Neumann

2
CPU - Central Processing Unit
"A unidade central de processamento ou CPU (Central
Processing Unit), também conhecida como processador,
é a parte de um sistema computacional, que realiza as
instruções de um programa de computador, para
executar a aritmética básica, lógica, e a entrada e saída
de dados."
https://pt.wikipedia.org/wiki/Unidade_central_de_processamento

"O processador é o componente mais complexo e


frequentemente o mais caro, mas ele não pode fazer nada
sozinho. Como todo cérebro, ele precisa de um corpo, que é
formado pelos outros componentes do micro, incluindo
memória, HD, placa de vídeo e de rede, monitor, teclado e
mouse."
Guia do Hardware – Carlos E. Morimoto
https://www.hardware.com.br/termos/processador

3
CPU - Central Processing Unit
"Para possibilitar o processamento, a UCP deve
conter registradores para o armazenamento das
informações e dos resultados decorrentes deste
processo, uma unidade para realizar os cálculos
necessários (ULA) e uma unidade que coordene
todas as suas operações. (UC)"
Ricardo Pannain et al

4
CPU - Central Processing Unit
Os cálculos necessários são realizados pela ULA -
Unidade Lógica e Aritmética.
"ALU é a parte do computador que realmente realiza
operações lógicas e aritméticas sobre os dados.
Todos os outros elementos do sistema de
computação — unidade de controle, registradores,
memória, E/S — existem sobretudo com o objetivo
de trazer dados para a ALU processar, e depois levar
os resultados de volta. De certa forma, atingimos o
núcleo ou a essência de um computador quando
consideramos a ALU."
Stallings

5
CPU - Central Processing Unit
"A Unidade de Controle é responsável por
controlar todas as atividades dentro de um
computador por meio da geração de sinais elétricos
(sinais de controle) para as unidades internas e
externas à UCP."
Ricardo Pannain et al

6
História
"Foi só no início da década de 70 que surgiram as
CPUs desenvolvidas totalmente em circuitos
integrados e em um único chip de silício.
4 bits O Intel 4004 foi o primeiro microprocessador a ser
lançado, em 1971 ... Barramento de 4 bits...
Endereçava até 640 bytes de memória.
A Intel desenvolveu o processador 8008, em 1972.
8 bits
Uma CPU de 8 bits, com barramento externo de 14
bits e capaz de endereçar 16 KB de memória. Seu
clock trabalhava na frequência máxima de 0,8 MHz."
Felipe Arruda

7
História
"Em 1974, a Intel desenvolveu o 8080, que apesar
de ainda ser um processador de 8 bits, podia
executar, com algumas limitações, operações de 16
bits. Tinha clock limite de 2 MHz, era capaz de
realizar centenas de milhares de operações por
segundo e de endereçar até 64 KB de memória.

16 bits O Intel 8086 de 1978 alcançava a velocidade do


clock de 5 MHz, utilizando instruções reais de 16
bits. Podia endereçar até 1MB de memória. O
nome "x86" veio do fato de que o nome dos
processadores que vieram depois do Intel 8086
também terminavam em '86'".
Felipe Arruda

8
História
"Em 1982, é lançado o Intel 80286 de 6–12,5 MHz,
capaz de endereçar até 16MB de memória.
Posteriormente, as empresas AMD e Harris Corporation
conseguiram romper essa barreira, chegando a 25 MHz.
32 bits
As CPUs 80386 e 80486, lançadas entre o meio e o fim
da década de 80, trabalhavam com clocks que iam de 33
MHz a 100 MHz, respectivamente."
Felipe Arruda

"O 80386 foi a primeira máquina de 32 bits da Intel. o


80386 competia em complexidade e potência com os
minicomputadores e mainframes introduzidos alguns anos
antes. Este foi o primeiro processador da Intel a aceitar
multitarefa. Podia endereçar até 4 GB de memória."
Stallings

9
História
"Em 1995, a Intel lançava o Pentium Pro, com
64 bits
barramento de 64 bits. Pode endereçar até 64 GB de
memória.
Após o lançamento do Pentium 4 em 2000, eles já
estavam tão pequenos (0,13 micrômetros) e numerosos
(120 milhões) que se tornou muito difícil aumentar o
clock por limitações físicas, principalmente pelo
superaquecimento gerado.
A principal solução para esse problema veio com o uso de
mais de um núcleo ao mesmo tempo, através da
tecnologia multicore. Assim, cada núcleo não precisa
trabalhar numa frequência tão alta."
Felipe Arruda

10
História
"Em 2006, a Intel inicia a sua linha Core, para
consumidores que precisam de mais poder de
Multicore

processamento. Faz parte dessa linha o modelo


Core 2 Duo, que demonstra uma capacidade
incrível se comparado com os dual-core anteriores
da empresa.
Em 2010, a Intel anunciou os modelos Core i3, i5 e
i7."
Felipe Arruda

11
História
"O 8086 de 1978 foi introduzido com uma
velocidade de clock de 5 MHz e tinha 29.000
transistores. Um Core i7 EE 4960X, de seis cores,
introduzido em 2013, opera a 4 GHz, um ganho de
velocidade com um fator de 800, e tem 1,86 bilhão
de transistores, cerca de 64.000 vezes a quantidade
do 8086. Ainda assim, o Core i7 EE 4960X tem um
invólucro ligeiramente maior que o 8086 e tem um
custo compatível."
Stallings

A história dos processadores - Felipe Arruda - 16/06/2011


https://www.tecmundo.com.br/historia/2157-a-historia-dos-processadores.htm

12
CPUs de 16 bits / 32 bits / 64 bits
"Dois dos parâmetros fundamentais que determinam o
desempenho de uma CPU são o número de pinos de
endereço e o número de pinos de dados. Um chip com
m pinos de endereço pode endereçar até 2m
localizações de memória. Valores comuns de m são
16, 32 e 64. De modo semelhante, um chip com n pinos
de dados pode ler ou escrever uma palavra de n bits
em uma única operação. Valores comuns de n são 8,
32 e 64. Uma CPU com 8 pinos de dados efetuará quatro
operações para ler uma palavra de 32 bits, enquanto uma
CPU com 32 pinos de dados pode executar a mesma
tarefa em uma única operação. Assim, o chip com 32
pinos de dados é muito mais rápido; porém,
invariavelmente, também é mais caro."
Tanenbaum
Tabela 1.3 – Stallings p. 40 13
Ciclo de Execução de Instruções
"Uma Unidade de Controle (CU), cuja função é a
mesma da tabela de controle da Máquina de Turing
universal: buscar um programa na memória,
instrução por instrução, e executá-lo sobre os dados
de entrada..."
Wikipédia - https://pt.wikipedia.org/wiki/Arquitetura_de_von_Neumann

"Um ciclo de máquina é definido como o tempo


necessário para obter dois operandos dos
registradores, executar uma operação da ALU e
armazenar o resultado em um registrador."
Stallings

14
Ciclo de Execução de Instruções
Segundo Stallings:
1. Busca da instrução: o processador lê uma instrução da
memória (registrador, cache, memória principal).
2. Interpretação da instrução: a instrução é decodificada
para determinar qual ação é necessária.
3. Busca dos dados: a execução de uma instrução pode
necessitar a leitura de dados da memória ou de um módulo
de E/S.
4. Processamento dos dados: a execução de uma
instrução pode necessitar efetuar alguma operação
aritmética ou lógica com os dados.
5. Escrita dos dados: os resultados de uma execução
podem necessitar escrever dados para a memória ou para
um módulo de E/S.

15
Ciclo de Execução de Instruções
Segundo Tanenbaum:
1. Trazer a próxima instrução da memória até o
registrador de instrução.
2. Alterar o contador de programa para que aponte para
a próxima instrução.
3. Determinar o tipo de instrução trazida.
4. Se a instrução usar uma palavra na memória,
determinar onde essa palavra está.
5. Trazer a palavra para dentro de um registrador da
CPU, se necessário.
6. Executar a instrução.
7. Voltar à etapa 1 para iniciar a execução da instrução
seguinte.
16
Representação de Instruções
"Dentro do computador, cada instrução é representada
por uma sequência de bits. A instrução é dividida em
campos, correspondentes aos elementos constituintes da
instrução.

Durante a execução da instrução, uma instrução é lida


para um registrador de instrução (IR) no processador. O
processador deve ser capaz de extrair os dados dos
diversos campos da instrução para realizar a operação
exigida."
Stallings
17
Representação de Instruções
"É difícil ... lidar com representações binárias das
instruções de máquina. Dessa maneira, tornou-se uma
prática comum usar uma representação simbólica das
instruções de máquina.
Os opcodes são representados por abreviações,
chamadas mnemônicos, que indicam a operação.
Alguns exemplos comuns são:"

Stallings

18
Tipos de Instruções
 Processamento de dados: instruções aritméticas e
lógicas.
 Armazenamento de dados: movimentação de dados
para dentro ou fora do registrador e/ou locais de
memória.
 Movimentação de dados: instruções de E/S.
 Controle: instruções de teste e desvio.
Stallings

19
Conjunto de Instruções
"A operação do processador é determinada pelas
instruções que ele executa, conhecidas como instruções
de máquina ou instruções de computador. A coleção de
diferentes instruções que o processador pode executar é
conhecida como conjunto de instruções.
O usuário que escolhe programar em linguagem de máquina
tem que ter conhecimento da estrutura dos registradores e da
memória, dos tipos de dados aceitos diretamente pela máquina
e do funcionamento da ALU.
Se um programador estiver usando uma linguagem de alto
nível, como Pascal ou Ada, muito pouco da arquitetura da
máquina básica é visível."
Stallings

Abstração!
20
Arquitetura do Conjunto de Instruções
Dois tipos básicos de arquitetura, com relação ao
conjunto de instruções de um processador são:

CISC (Complex Instruction Set Computer - Computador


com conjunto de instruções complexo)
"...Inclui um número maior de instruções e instruções
mais complexas. Dois motivos principais motivaram essa
tendência: um desejo para simplificar compiladores e um
desejo para melhorar o desempenho. Fundamentando
essas duas motivações estava a mudança para linguagens
de programação de alto nível por parte dos
programadores; projetistas tentaram projetar máquinas
que oferecessem melhor suporte para linguagens de
programação de alto nível."
Stallings
21
Linguagem de Montagem
Um processador pode entender e executar instruções
de máquina. Essas instruções são simples números
binários armazenados no computador. Se o
programador quisesse programar diretamente na
linguagem de máquina, então seria necessário entrar com
o programa como dados binários.
Stallings

22
Linguagem de Montagem

Stallings

23
Linguagem de Montagem

Stallings

24
Compiladores
"Linguagens de programação são notações para se
descrever computações para pessoas e para
máquinas. O mundo conforme o conhecemos
depende de linguagens de programação, pois todo o
software executando em todos os computadores foi
escrito em alguma linguagem de programação. Mas,
antes que possa rodar, um programa primeiro
precisa ser traduzido para um formato que lhe
permita ser executado por um computador.
Os sistemas de software que fazem essa tradução
são denominados compiladores."
Alfred Vaiano et al.

25
Compiladores
"Colocando de uma forma bem simples, um
compilador é um programa que recebe como
entrada um programa em uma linguagem de
programação - a linguagem fonte - e o traduz para
um programa equivalente em outra linguagem - a
linguagem objeto. Um papel importante do
compilador é relatar quaisquer erros no programa
fonte detectados durante esse processo de
tradução."
Alfred Vaiano et al.

26
Compiladores
"Linguagens de programação são, em geral, projetadas
para permitir que os seres humanos expressem
computações como sequências de operações.
Processadores de computador, a seguir referidos como
processadores, microprocessadores ou máquinas, são
projetados para executar sequências de operações. As
operações que um processador implementa estão, quase
sempre, em um nível de abstração muito inferior ao
daquelas especificadas em uma linguagem de
programação. Por exemplo, a linguagem de programação
normalmente inclui uma forma concisa de imprimir algum
número para um arquivo. Esta única declaração da
linguagem deve ser traduzida literalmente em centenas
de operações de máquina antes que possa ser executada.

27
Compiladores
A ferramenta que executa estas traduções é
chamada compilador. O compilador toma como
entrada um programa escrito em alguma linguagem
e produz como saída um programa equivalente. Na
noção clássica de um compilador, o programa de
saída é expresso nas operações disponíveis em
algum processador específico, muitas vezes
chamado máquina-alvo.
Linguagens “fonte” típicas podem ser C, C++,
Fortran, Java, ou ML. Linguagem “alvo” geralmente
é o conjunto de instruções de algum
processador."
Keith D. Cooper & Linda Torczon

28
Compiladores

Alfred Vaiano et al.

29
Interpretadores
"Em vez de produzir um programa objeto como
resultado da tradução, um interpretador executa
diretamente as operações especificadas no programa
fonte sobre as entradas fornecidas pelo usuário."
Alfred Vaiano et al.

30
Máquinas Virtuais
"Um programa fonte em Java pode ser primeiro
compilado para uma forma intermediária, chamada
bytecode. Os bytecodes são então interpretados por
uma máquina virtual. Os bytecodes compilados em
uma máquina podem ser interpretados em outra
máquina."
Alfred Vaiano et al.

31
Arquitetura do Conjunto de Instruções
RISC (Reduced Instruction Set Computer - Computador
com conjunto reduzido de instruções)
São características da arquitetura RISC:
 Um conjunto de instruções simples e limitado.
 Um grande número de registradores de propósito geral
e/ou o uso de tecnologia de compiladores para
otimizar o uso de registradores. A razão pela qual o
armazenamento em registradores é indicado é que
esse é o dispositivo de armazenamento mais rápido
disponível, mais rápido que a memória principal e que
a cache.
 Uma ênfase na otimização do pipeline de instruções.
Stallings

32
RISC vs CISC
"No começo da década de 80, a tendência era construir
chips com conjuntos de instruções cada vez mais
complexos. 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. Outra vantagem dos processadores RISC, é
que, por terem um menor número de circuitos internos,
podem trabalhar a frequências mais altas. Um exemplo
são os processadores Alpha, que em 97 já operavam a 600
MHz."
https://www.hardware.com.br/artigos/risc-cisc/

33
RISC vs CISC
"Pode parecer estranho que um chip que é capaz de
executar algumas poucas instruções, possa ser considerado
por muitos, mais rápido do que outro que executa centenas
delas. Mas o que acontece, é que um processador RISC é
capaz de executar tais instruções muito mais rapidamente.
A idéia principal, é que apesar de um processador CISC ser
capaz de executar centenas de instruções diferentes,
apenas algumas são usadas frequentemente... é
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 (2007)
vemos processadores híbridos, que são essencialmente
processadores CISC, mas incorporam muitos recursos
encontrados nos processadores RISC (ou vice-versa)."
https://www.hardware.com.br/artigos/risc-cisc/

34
RISC vs CISC
"Apesar de por questões de Marketing, muitos
fabricantes ainda venderem seus chips, como sendo
“Processadores RISC”, não existe praticamente
nenhum processador atualmente que siga
estritamente uma das duas filosofias. Tanto
processadores da família x86, como o Pentium II,
Pentium III e AMD Athlon, quanto processadores
supostamente RISC, como o MIPS R10000 e o HP
PA-8000, ou mesmo o G4, utilizado nos Macintoshs,
misturam características das duas
arquiteturas, por simples questão de
performance."
https://www.hardware.com.br/artigos/risc-cisc/

35
RISC vs CISC
"A partir do 486, as CPUs da Intel contêm um
núcleo RISC que executa as instruções mais simples
(que normalmente são as mais comuns) em um
único ciclo do caminho de dados, enquanto
interpreta as mais complicadas no modo CISC de
sempre. O resultado disso é que as instruções
comuns são rápidas e as menos comuns são lentas.
Mesmo que essa abordagem híbrida não seja tão
rápida quanto um projeto RISC puro, ela resulta em
desempenho global competitivo e ainda permite
que softwares antigos sejam executados sem
modificação."
Tanenbaum

36
RISC vs CISC
"Em anos mais recentes, a controvérsia RISC versus
CISC sumiu quase que totalmente. Isso
aconteceu porque houve uma convergência gradual
das tecnologias. Com o aumento da densidade dos
chips e da velocidade do hardware, os sistemas RISC
se tornaram mais complexos. Ao mesmo tempo, em
um esforço para obter o máximo desempenho, os
modelos CISC focaram em questões
tradicionalmente associadas com RISC, como um
aumento no número de registradores de uso geral e
mais ênfase no projeto do pipeline de instruções.."
Stallings

37
Registradores
Ciclo de Execução de Instruções: Busca da
instrução; Interpretação da instrução; Busca dos
dados; Processamento dos dados; Escrita dos dados.

"Para fazer essas coisas, deve estar claro que o


processador precisa armazenar alguns dados
temporariamente. Ele deve lembrar a posição da
última instrução executada para que possa saber
onde buscar a próxima instrução a ser executada.
Por essa razão, ele precisa armazenar instruções e
dados temporariamente enquanto uma instrução
está sendo executada. Ou seja, o processador
precisa de uma pequena memória interna."
Stallings
38
Registradores
"A CPU também contém uma pequena memória de
alta velocidade usada para armazenar resultados
temporários e para algum controle de informações.
Essa memória é composta de uma quantidade de
registradores, cada um deles com determinado
tamanho e função. Em geral, todos os registradores
têm o mesmo tamanho. Cada um pode conter um
número, até algum máximo definido pelo tamanho
do registrador. Registradores podem ser lidos e
escritos em alta velocidade porque são internos à
CPU."
Tanenbaum

39
Registradores
"Os registradores no processador desempenham
dois papéis:
 Registradores visíveis ao usuário: possibilitam
que o programador de linguagem de máquina ou
de montagem minimize as referências à memória
principal, pela otimização do uso de registradores.
 Registradores de controle e de estado:
usados pela unidade de controle para controlar a
operação do processador e por programas
privilegiados do Sistema Operacional para
controlar a execução de programas.

40
Registradores
... Não há uma separação clara de registradores
nessas duas categorias. Por exemplo, em algumas
máquinas, o contador de programas é visível ao
usuário (por exemplo, o x86), mas em muitos
outros, não é.
... Existe uma variedade de registradores do
processador que são empregados para controlar a
operação do processador. ... É claro que máquinas
diferentes terão organizações distintas dos
registradores e usarão terminologia diferente."
Stallings

41
Registradores
"Um registrador visível ao usuário é aquele que pode
ser referenciado pelos recursos da linguagem de
máquina que o processador executa. Podemos
dividi-los nas seguintes categorias:
 Uso geral.
 Dados.
 Endereços.
 Códigos condicionais."
Stallings

42
Registradores
"...os registradores de uso geral estão ali para
conter as variáveis locais fundamentais e resultados
intermediários de cálculos. Sua função principal é
prover acesso rápido a dados muito usados
(basicamente evitando acessos à memória).
Máquinas RISC, com suas CPUs velozes e memórias
(relativamente) lentas, costumam ter ao menos 32
registradores de uso geral, e a tendência em novos
projetos de CPU é ter ainda mais."
Tanenbaum

43
Registradores
"Quatro registradores de controle e estado são
essenciais para execução das instruções:
 Contador de programas (PC): contém o endereço
de uma instrução a ser lida.
 Registrador da instrução (IR): contém a instrução
lida mais recentemente.
 Registrador de endereço de memória (MAR):
contém o endereço de um local de memória.
 Registrador de buffer de memória (MBR): contém
uma palavra de dados para ser escrita na
memória ou a palavra lida mais recentemente."
Stallings

44
Registradores
"'Palavras' são as unidades de dados movimentadas
entre memória e registradores."
Tanenbaum

45
Registradores
"Em geral, o processador atualiza o PC depois de ler
cada instrução para que o PC sempre aponte para a
próxima instrução a ser executada. Uma instrução
de desvio ou salto também irá modificar o conteúdo
do PC. A instrução lida é colocada em IR, onde o
opcode e os especificadores de operando são
analisados. Os dados são trocados com a memória
com o uso de MAR e MBR. Em um sistema
organizado com barramentos, MAR se conecta
diretamente ao barramento de endereços e MBR se
conecta diretamente ao barramento de dados.
Registradores visíveis ao usuário, por sua vez,
trocam dados com MBR."
Stallings
46
Registradores
"Muitos modelos de processador incluem um
registrador ou conjunto de registradores
frequentemente conhecido como palavra de estado
do programa (PSW), que contém as informações de
estado. Em geral, a PSW contém códigos
condicionais e outras informações de estado.
Campos comuns ou flags do PSW incluem:
 Sinal: contém o bit de sinal do resultado da última
operação aritmética.
 Zero: definido em 1 quando o resultado é 0.
 Overflow: usado para indicar overflow aritmético.

47
Registradores
 Carry: definido em 1 se uma operação resultou em
um carry (adição) ou um empréstimo (subtração) de
um bit de ordem maior. Usado para operações
aritméticas de múltiplas palavras.
 Igual: definido em 1 se uma comparação lógica
resultou em igualdade.
 Habilitar/desabilitar interrupção: usado para
habilitar ou desabilitar interrupções.
 Supervisor: indica se o processador está executando
no modo supervisor ou usuário. Algumas instruções
privilegiadas podem ser executadas apenas no modo
supervisor e algumas áreas de memória podem ser
acessadas apenas no modo supervisor."
Stallings
48
Famílias de Computadores
"No início da década de 60, a IBM desenvolveu uma nova
abordagem: planejou uma família de computadores que
poderiam executar o mesmo software, com poder de
processamento e preços diferentes. Com isso, os
programas não seriam mais dependentes de máquina,
mas compatíveis entre todos esses modelos."
Felipe Arruda

"O conceito de família separa a arquitetura de uma


máquina da sua implementação. Um conjunto de
computadores é oferecido, com características de
preço/desempenho diferentes e que apresentam a
mesma arquitetura ao usuário. As diferenças em preço e
desempenho se devem às diferentes implementações da
mesma arquitetura."
Stallings
49
Famílias de Computadores
Atualmente, as três famílias de computadores mais
populares são: x86, ARM e AVR.

 X86: computadores desktop, notebooks e servidores


 ARM: é utilizada pela maioria dos dispositivos móveis,
smartphones e tablets.
 AVR: microcontroladores utilizados em sistemas
embarcados, como o Arduino.

50
ARM
"A ARM é uma família de RISC baseada em
microprocessadores e microcontroladores desenvolvidos
pela ARM Holdings, de Cambridge, na Inglaterra. A
empresa não faz processadores, mas, em vez disso,
desenvolve microprocessador e arquitetura multicore,
licenciando-os aos fabricantes.
Os chips ARM são processadores de alta velocidade que
são conhecidos pelo pequeno tamanho do die (pequeno
pedaço de silício onde um circuito é implementado) e pelo
baixo consumo de energia. Eles são amplamente usados
em smartphones e em outros dispositivos hand-held,
inclusive sistemas de jogos, bem como uma grande
variedade de produtos de consumo."
Stallings

51
ARM
"Os chips ARM são os processadores dos populares
dispositivos Apple, o iPod e o iPhone, e são usados em
praticamente todos os smartphones Android. A ARM é
provavelmente a arquitetura de processador embarcado
mais amplamente usada e de fato a arquitetura de
processador mais usada de qualquer tipo no mundo.
A ARM Holdings licencia um número de micropro-
cessadores especializados e relacionados às tecnologias,
mas a maior parte de sua linha de produtos é a família
das arquiteturas de microprocessadores Cortex. Há três
arquiteturas Cortex, convenientemente denominadas
pelas iniciais A, R e M."
Stallings

52
ARM
"Núcleos ARM são fabricadas aos bilhões anualmente e,
além de celulares, estão no interior de consoles de
videogame, automóveis, dispositivos com IoT, leitores e-
reader, televisores, placas como Raspberry Pi e em uma
série de dispositivos conectados ou não. Segundo a
empresa, de 2013 a 2017, 50 bilhões de processadores
foram comercializados no mundo.
É por isso que os chips Snapdragon, A11 Bionic, Helio P22
e Exynos são processadores variados, criados por marcas
diferentes – nesse caso, Qualcomm, Apple, MediaTek e
Samsung –, mas ainda assim são CPUs ARM,
desenvolvidas a partir de licenças concedidas a cada uma
dessas fabricantes parceiras."
Filipe Garrett
https://www.techtudo.com.br/noticias/2018/07/arm-cortex-exynos-e-mali-entenda-as-siglas-dos-processadores-de-celular.ghtml

53
AVR
"A arquitetura AVR é usada em sistemas embutidos de
muito baixo nível. A história do AVR começa em 1996, no
Norwegian Institute of Technology, onde os estudantes Alf-
Egil Bogen e Vegard Wollan projetaram uma CPU RISC de 8
bits chamada AVR. Esse nome supostamente significa “(A)lf
and (V)egard’s (R)ISC processor” (processador RISC de Alf e
Vegard).
A Atmel lançou seu primeiro microcontrolador AVR, o
AT90S1200, em 1997. Para facilitar sua adoção pelos
projetistas de sistemas, eles executaram a pinagem para
que fosse idêntica à do Intel 8051, que era um dos
microcontroladores mais populares da época. Hoje, há muito
interesse na arquitetura AVR porque ela está no centro da
plataforma muito popular de controle embutido Arduino,
de fonte aberta."
Tanenbaum
54
AVR
"A arquitetura AVR é realizada em três classes de
microcontroladores. A classe mais baixa, a tinyAVR,
foi projetada para aplicações mais restritas quanto a
superfície, potência e custo. Ela inclui uma CPU de 8
bits, suporte digital básico para E/S e suporte para
entrada analógica (por exemplo, na leitura de
valores de temperatura de um termômetro). O
tinyAVR é tão pequeno que seus pinos trabalham
com dupla função, de modo que podem ser
reprogramados em tempo de execução para
qualquer uma das funções digitais ou analógicas
admitidas pelo microcontrolador.

55
AVR
"O megaAVR, que é encontrado no popular sistema
embutido de fonte aberta Arduino, também
acrescenta suporte para E/S serial, clocks internos e
saídas analógicas programáveis. O topo de linha
nessa ponta inferior é o microcontrolador AVR
XMEGA, que também incorpora um acelerador para
operações criptográficas e mais suporte interno para
interfaces USB."
Tanenbaum

56
Arduino

O Arduino é uma plataforma de prototipagem


eletrônica open-source que se baseia em
hardware e software, flexíveis e fáceis de usar.
É destinado a artistas, designers, hobbistas e
qualquer pessoa interessada em criar objetos
ou ambientes interativos.
http://playground.arduino.cc/Portugues/HomePage

57
Arduino

O Arduino pode sentir o estado do ambiente que o


cerca por meio da recepção de sinais de sensores e
pode interagir com os seus arredores, controlando
luzes, motores e outros atuadores. O
microcontrolador na placa é programado com a
linguagem de programação Arduino, muito parecida
com a Linguagem C. Os projetos desenvolvidos com o
Arduino podem ser autônomos ou podem comunicar-
se com um computador para a realização da tarefa.

58
Placas Arduino

Arduino Uno
Arduino Mega
Sem
escala

Arduino Nano
Arduino Pro Mini
59
Placa Arduino UNO

Portas Digitais
Led 13

Led

Porta USB
ON

Alimentação

Externa

Fornecimento de energia para os componentes Entradas Analógicas


60

Você também pode gostar