Buscar

231GGR0113A_ Unidade 1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 1/26
Autoria: Fernando Cortez Sica - Revisão técnica: Jackson Luis Schirigatti
Arquitetura de computadores e microprocessadores
UNIDADE 1 - QUAL O IMPACTO DA
EVOLUÇÃO DOS SISTEMAS DE
COMPUTAÇÃO EM SUA
ESTRUTURAÇÃO?
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 2/26
Prezado estudante, nesta primeira conversa,
abordaremos alguns conceitos e as evoluções
dos computadores eletrônicos. Por que devemos
conhecer a história dos computadores? Muitos
aspectos dos computadores atuais vieram das
gerações anteriores. Portanto, conhecer essa
história significa conhecer mecanismos que
habitam nos computadores atuais.
Após isso, conversaremos sobre a estruturação básica dos computadores. Que nível
de detalhamento veremos inicialmente? Dialogaremos sobre dois níveis de abstração:
arquitetura e organização dos processadores. Por que é importante aprender esses
aspectos? Sabendo as particularidades de uma máquina, temos condições de
implementar sistemas de software mais eficientes, aproveitando melhor os recursos
da máquina. Outro motivo para isso é a possibilidade de criarmos nosso próprio
processador. Existem, hoje, várias plataformas de desenvolvimento que exigem
menos esforços para a criação de hardware de sistemas computacionais.
Na sequência, conversaremos sobre o mapeamento das instruções em nível de
hardware – a chamada linguagem de programação Assembly. Nesse cenário,
explicaremos como as instruções são executadas dentro do processador, constituindo
o “ciclo de instrução”.
Por fim, veremos duas técnicas para aumentar a eficiência computacional: pipeline e
superescalaridade.
Bons estudos!
Introdução
1.1 Evolução dos sistemas
computacionais
Inicialmente, é interessante pontuar que os computadores acompanham a evolução da
eletrônica, desde a válvula termiônica até os atuais circuitos integrados, que têm altos índices
de integração. Dá-se o nome de integração à miniaturização e ao encapsulamento de vários
componentes eletrônicos dentro de um mesmo invólucro. Tal evolução possibilitou a construção
de circuitos menores, que tiveram, como consequências mais evidentes, as seguintes:
maior densidade de componentes – um espaço menor pode conter muitos mais módulos
implementados, que proverão uma maior eficiência computacional;
menor distância para a propagação de sinais – uma menor distância proporciona um
tempo menor de propagação de sinais. Então, tem-se a possibilidade de operar com
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 3/26
Mas qual é a história dos computadores? Responderemos a essa pergunta a seguir.
1.1.1 História dos computadores
A ideia de automatizar cálculos já chamava a atenção da humanidade há muito tempo. De
acordo com Monteiro (2007), podemos apontar, desde 3000 a.C., a existência de dispositivos
mecânicos de auxílio aos cálculos:
O computador de Babbage era capaz de armazenar 1000 números de 20 dígitos. A sua
programação se baseava na utilização de instruções aritméticas e de desvios – jumps (saltos).
Hoje, desvios são encontrados nas diversas linguagens de programação (desvios condicionais
e não condicionais).
Com a evolução das pesquisas sobre eletricidade, após os trabalhos de Nikola Tesla e a
invenção dos motores elétricos, no século XIX, as máquinas de cálculo também evoluíram.
Surgiram, então, os dispositivos baseados nas máquinas de Pascal e de Babbage com motores
frequências mais altas;
memórias com maior capacidade de armazenamento e mais rápidas – os pontos
anteriores possibilitaram memórias mais eficientes e com maior capacidade de
armazenamento.
em 3000 a.C., havia a utilização do Ábaco ou soroban pelos povos da China e da
Mesopotâmia;
em 1500, uma calculadora mecânica é criada por Leonardo da Vinci;
em 1642, um contador mecânico para somar e para subtrair é criado por Blaise Pascal;
em 1673, houve uma concepção de calculadora por Leibniz, que a baseou na máquina de
Pascal, adicionando-lhe as operações de multiplicação e de divisão;
em 1801, Joseph Jacquard automatizou a produção de tecelagem. O desenho da trama do
tecido era armazenado em cartões perfurados;
em 1823, iniciaram os trabalhos de Charles Babbage na Royal Astronomical Society of Great
Britain, que deram origem ao primeiro computador mecânico programável – a máquina
analítica.
Ada Lovelace foi a primeira pessoa a codificar um programa
para computador, escrevendo-o para a máquina analítica de
Babbage. A linguagem de programação Ada (criada em
1982) foi batizada em homenagem a ela. Para saber um
pouco mais de Ada Lovelace, acesse a reportagem
de Sousa (2020, on-line). 
Acesse (https://conhecimentocientifico.r7.com/ada-
lovelace/.)
Você o conhece?
https://conhecimentocientifico.r7.com/ada-lovelace/
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 4/26
elétricos.
Outros lançamentos importantes para o aparecimento dos computadores como os conhecemos
atualmente foram os seguintes.
Com a invenção das válvulas termoiônicas, os projetos de computadores deixaram de utilizar os
relés (ou componentes mecânicos) e passaram a ser completamente eletrônicos. 
1.1.2 Geração dos computadores 
Os computadores mecânicos já apresentavam ideias que seriam mais bem exploradas nos
computadores eletrônicos: a criação de uma linguagem de programação; estruturas de entrada
e de saída de informações; e módulo central de processamento. Veremos, então, as gerações
dos computadores.
 
Como mencionamos, a primeira geração foi marcada pela utilização de válvulas termoiônicas.
Tivemos, como primeiro computador construído nessa geração, o ENIAC (Electronic Numerical
Integrator and Computer), com suas 30 toneladas e com suas 18 mil válvulas. Esse computador
foi desenvolvido por John Mauchly e por John Eckert, entre os anos de 1943 e 1946, na
Universidade da Pensilvânia (Estados Unidos).
Cartão perfurado
Em 1889, foram desenvolvidos, por Herman Hollerith,
o cartão perfurado (de acordo com a ideia de Jacques
Jacquard) e uma máquina que classificava e ordenava
informações.
Calculadora com relés eletromecânicos
Em 1935, foi criada, por Konrad Zuse, uma
calculadora com relés eletromecânicos.
Computador baseado em relés eletromecânicos
Em 1941, foi criado, por Konrad Zuse, o Z3, primeiro
computador baseado em relés eletromecânicos.
Primeira geração (1940-1952)
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 5/26
Inicialmente, o ENIAC realizaria cálculos balísticos para atender a demandas militares da
Segunda Guerra Mundial. Porém, em função do atraso na construção, não foi colocado em
operação a tempo. A sua primeira missão, de fato, foi frente à construção da bomba de
hidrogênio.
A performance do ENIAC era na casa de 5000 adições por segundo, empregando operandos
representados no sistema de numeração decimal, que foi herdado dos dispositivos mecânicos.
A sua programação era baseada nas posições de chaves e de cabos.
Além do ENIAC, destacaram-se o EDVAC (Electronic Discrete Variable Automatic Computer),
construído em 1946; e o computador desenvolvido no IAS (Institute for Advanced Studies, da
Universidade de Princeton), por John von Neumann, em 1952.
Duas inovações do computador de von Neumann foram a utilização de memória para que o
programa fosse armazenado na ocasião de seu processamento; e a dissociação do módulo de
controle do módulo responsável pelo processamento das instruções. A ideia de programa
armazenado faz você lembrar-se de algo? Sim, essa é a filosofia dos computadores atuais! A
figura “Módulos funcionais do IAS”, a seguir, ilustra a estruturação do IAS.
#PraCegoVer: na figura, a memória principal e o equipamento de E/S são representados por
paralepípedosverticais de cor verde: a memória principal está à esquerda da imagem,
enquanto a unidade central de processamento está à direta. No centro da imagem, entre a
memória principal e o equipamento de E/S, está a unidade central de processamento, que é
composta por dois submódulos: a unidade lógico-aritmética (que recebe os operandos) e a
Figura 1 - Modelos funcionais do IAS
Fonte: STALLINGS, 2017, p. 14.
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 6/26
unidade de controle (que recebe as instruções). Esses submódulos estão indicados em cubos,
que, igualmente, são verdes. Setas bidirecionais ligam a memória principal aos submódulos da
unidade central de processamento; e os submódulos da unidade central de processamento ao
equipamento de E/S. Os submódulos da unidade central de processamento (unidade lógico-
aritmética e a unidade de controle) também são interligados por setas bidirecionais.
Na figura “Módulos funcionais do IAS”, podemos notar a presença destes módulos:
Temos mais duas contribuições do IAS. Uma é a utilização do termo “palavra” para denotar a
unidade básica de armazenamento e de transferência das informações – no caso, a palavra era
de 40 bits (representada no formato binário). A segunda contribuição foi a utilização do termo
“registrador” para as estruturas de armazenamento internas à ULA e à unidade de controle
(MBR, MAR e PC):
As instruções do IAS eram agrupadas de acordo com a sua funcionalidade. Sendo assim, eram
mapeadas instruções para transferência de dados (memória-registrador e registrador-
registrador), para desvio incondicional; para desvio condicional; para manipulações aritméticas;
e, finalmente, para modificação de endereço.
memória principal – assim como acontece nos computadores atuais, a memória visa a
armazenar instruções, operandos e resultados;
unidade lógica-aritmética (ULA) – executa as operações aritméticas e lógicas;
unidade de controle (UC) – decodifica e gera sinais de controle;
equipamento de E/S – promove a interface entre o computador e o ambiente externo.
registrador de buffer de memória (MBR – Memory Buffer Register) – faz a interface entre
CPU e memória para enviar e para receber dados da memória;
registrador de endereço de memória (MAR – Memory Address Register) – junto com o
MBR, o MAR também faz parte da interface entre CPU e memória. Armazena o endereço de
memória a ser manipulado;
registrador de instrução (IR – Instruction Register) – armazena a instrução a ser executada;
registrador de buffer de instrução (IBR – Instruction Buffer Register) – armazena a próxima
instrução a ser executada;
contador de programa (PC – Program Counter) – contém o endereço de memória da
próxima instrução a ser executada;
acumulador e quociente-multiplicador (AC e MQ, respectivamente) – armazenam os
operandos e o resultado gerado pela ULA.
Alan Turing pode ser considerado o pai da computação.
Suas pesquisas proporcionaram a criação da inteligência
artificial e culminaram na concepção dos computadores
Você o conhece?
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 7/26
Nessa geração, outra ideia tomou força: a arquitetura de Harvard (1945). A arquitetura de
Harvard separa a memória de dados da de instruções. Para tanto, faz uso de barramentos
específicos dessas memórias para a CPU, tornando possível a busca simultânea de instruções
e de dados. Isso possibilitou avanços na computação atual, como o pipeline e os processadores
RISC (Reduced Instruction Set Computer – em português, computador com conjunto de
instruções reduzidas).
O que são pipeline e RISC? Conversaremos sobre ambos os conceitos em momentos
oportunos.
Outros lançamentos da primeira geração, de acordo com Stallings (2017), são os seguintes:
UNIVAC (construído, em 1947, pela Eckert-Mauchly Computer); IBM-700 (1952); IBM-701
(1953); e IBM-702 (1955).
A segunda geração foi impulsionada pela invenção do transistor, em 1948, por William Shockley
(físico da Bell Labs). Os transistores substituíram, com eficiência, as válvulas termoiônicas,
proporcionando uma drástica redução do tamanho dos equipamentos e um aumento nas
capacidades de processamento e de memória.
Nessa geração, aparecerem os núcleos de ferrite, os tambores e as fitas magnéticas como
dispositivos de memória; linguagens de programação como o FORTRAN e o COBOL; e os
primeiros sistemas operacionais – os “monitores” (STALLINGS, 2017).
Merecem, também, destaques os seguintes fatos:
atuais. Para saber mais sobre ele, acesse o texto de Nunes
(2012).
Acesse
(http://www.dsc.ufcg.edu.br/~pet/jornal/junho2012/materi
as/historia_da_computacao.html)
 Segunda geração (1952-1964)
O transistor é construído a partir de materiais
semicondutores (por exemplo, o silício). Ao silício, são
adicionadas impurezas (como fósforo e boro), criando
uma desestabilização em sua estrutura atômica,
tornando-o carregado positivamente ou negativamente.
Essa carga com excesso ou de íons positivos ou de íons
negativos permite um controle do fluxo dos elétrons.
Para saber mais desse assunto, acesse o vídeo de GV
Ensino (2013).
Acesse (https://www.youtube.com/watch?
v=a8mo9EQZ2p4&list=PLFfpdsnO_HS_h-
1s1VCFPuFrC-P9btyfb&index=2.)
Você quer ver?
http://www.dsc.ufcg.edu.br/~pet/jornal/junho2012/materias/historia_da_computacao.html
https://www.youtube.com/watch?v=a8mo9EQZ2p4&list=PLFfpdsnO_HS_h-1s1VCFPuFrC-P9btyfb&index=2.
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 8/26
Dentre as inovações do IBM-7094 que se fazem presentes nos computadores atuais, podemos
destacar o processador dedicado de E/S. Com o processador de E/S, a CPU não apresenta
mais a funcionalidade de controlar as operações de entrada e de saída, ficando, então,
dedicada ao processamento efetivo. A troca de informações entre a CPU e o processador de
E/S era baseada na utilização de um buffer de dados – razão pela qual o nome buffering
(buferização) foi atribuído a essa inovação. A figura a seguir ilustra a estrutura para buffering.
#PraCegoVer: a figura ilustra a interligação entre a unidade central de processamento e a
memória por meio de um elemento denominado multiplexador. Os três elementos estão
representados na porção esquerda da imagem, em caixas de cor laranja, de acordo com o
seguinte ordem: unidade central de processamento, multiplexador e memória. As relações entre
os três elementos são marcadas por setas bidirecionais, que indicam a retroalimentação de
seus processos. Do multiplexador, derivam múltiplos canais de dados, que, por sua vez, são
ligados aos dispositivos de E/S. Temos, como dispositivos de E/S, a unidade de fita magnética,
fundação da companhia DEC (Digital Equipment Corporation) em 1957 e o lançamento do
computador PDP-1 (que marcou o início da geração de minicomputadores);
lançamento, pela IBM, dos modelos 7090 (1960), 7094 I (1962) e 7094 II (1964).
Figura 2 - Arquitetura básica do IBM-7094
Fonte: STALLINGS, 2017, p. 21.
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 9/26
a perfuradora de cartões, a impressora de linha, a leitora de cartões, o tambor, o disco, as
hiperfitas e o equipamento de teleprocessamento. Todos os canais de dados estão contidos em
caixas de cor laranja, e sua relação com o multiplexador é marcada por setas bidirecionais.
Alguns canais de dados interagem entre si: a unidade de fita magnética, a perfuradora de
cartões, a impressora de linha e a leitora de cartões; o tambor e o disco; e o disco, as hiperfitas
e o equipamento de teleprocessamento.
 
 Na figura “Arquitetura básica do IBM-7094”, aparece um módulo multiplexador, que consiste
em um seletor, sendo capaz de selecionar, a cada momento, o canal de dados que transportará
as informações entre a CPU e os dispositivos de E/S.
 
Nessa época, surgiram os circuitosintegrados, encapsulando milhares de transistores em uma
região de silício. Isso proporciou um grande salto na miniaturização dos computadores e um
aumento na capacidade de processamento e de armazenamento de dados. Muitas das
inovações também estão presentes nos computadores atuais:
Merecem destaques, na terceira geração, os seguintes equipamentos.
Terceira geração (1964-1971)
utilização de semicondutores e de discos magnéticos nas memórias interna e externa –
houve diminuição do tempo de acesso às informações e aumento da capacidade de
armazenamento;
técnica de spool (Simultaneous Peripheral Operation On-Line) – com o spool, o
multiplexador de E/S da segunda geração foi substituído por um módulo que possibilitava o
tráfego de dados de forma simultânea aos dispositivos de E/S;
aparecimento da multiprogramação – houve avanços dos sistemas operacionais
multiprogramados, como o CTSS/MIT, que deu origem ao MULTICS, que, por sua vez,
evoluiu para o UNIX.
Consistiu em uma família de computadores que se diferenciavam apenas em relação
ao custo, à capacidade de memória, à quantidade de canais de E/S e à capacidade de
processamento. Todos os modelos rodavam o sistema operacional OS 360.
Foi um minicomputador da DEC direcionado ao segmento não coberto pela IBM de
minicomputadores.
IBM System 360 (1964) 
DEC PDP-8 (1964)
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 10/26
Outro ponto a ser observado no PDP-8 é a introdução de uma estrutura, denominada omnibus,
para a interconexão de seus módulos internos. O omnibus contribuiu para a idealização dos
barramentos atuais.
Alguns autores dividem o período a partir de 1971 em duas gerações, que são marcadas pelo
aparecimento dos circuitos integrados baseados em VLSI (Very Large Scale Integration – em
português, integração em larga escala) e pelo aparecimento do ULSI (Ultra Large Scale
Integration – em português, integração em ultra-escala). Porém, para que a nossa conversa
fique mais objetiva, vamos focar em como VLSI e ULSI integram apenas uma geração: a quarta
geração.
Quando se fala em ULSI, dizemos que, dentro de um circuito integrado, podemos encontrar
milhões de transistores. Atualmente, cada transistor se encontra na casa dos nanômetros (10
 m). A microeletrônica (10 m) e a nanoeletrônica possibilitaram o surgimento de
microprocessadores e de multiprocessadores altamente eficientes e de baixo consumo.
Quarta geração (a partir de 1971)
Gordon Moore, cofundador da Intel, em 1965, profetizou
que a capacidade (e o número de transistores) de um
processador dobraria a cada 18 meses. Essa profecia
ficou conhecida como Lei de Moore. Para saber mais do
assunto, acesse a matéria de Markoff (2016).
Acesse
(http://www1.folha.uol.com.br/tec/2016/05/1768028-
lei-de-moore-esta-se-esgotando-e-tecnologia-busca-
sucessores.shtml.)
Você quer ler?
-
9 -6
Introduziu o termo OEM ( – em português, fabricante
original de equipamento) para designar a produção de módulos por terceiros.
Original Equipment Manufacturers
PDP-8
http://www1.folha.uol.com.br/tec/2016/05/1768028-lei-de-moore-esta-se-esgotando-e-tecnologia-busca-sucessores.shtml.
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 11/26
Quanto às linguagens de programação surgidas na quarta geração, citamos C++, SQL, JAVA.
Há, ainda, os sistemas operacionais de rede e os distribuídos.
Agora que conversamos um pouco sobre as gerações de
computadores, faça uma pesquisa; escolha uma máquina de cada
geração; e identifique, para cada modelo, os seguintes parâmetros:
tamanho físico (pode ser peso ou espaço ocupado); capacidade de
armazenamento da memória; e capacidade de processamento
(podem ser, por exemplo, instruções por segundo ou qualquer outra
métrica de performance que você encontrar, especificando-a).
Reflita como a evolução contribui com nossos parques
computacionais.
Vamos Praticar!
1.2 Arquitetura convencional de
computadores
Ao conversarmos sobre a terceira geração, mais precisamente sobre o lançamento do IBM-360,
mencionamos o termo “família”. Mas o que é uma família de computadores/processadores?
Para respondermos a essa pergunta, falaremos, antes, de outros dois termos: arquitetura e
organização de computadores.
Os termos arquitetura e organização nos darão uma noção da abstração do processador
quanto à separação da parte visível da parte não visível ao programador. Em algumas
situações, é conveniente que conheçamos a estruturação do processador, para que possamos
construir sistemas mais eficientes e otimizar o código para o processador em questão. Outra
situação que temos é a necessidade de implementarmos sistemas de baixo nível, como a
codificação do núcleo (kernel) de um sistema operacional e implementação de um compilador
ou de um device driver.
1.2.1 Conceitos de arquitetura e de organização
Para facilitar o entendimento dos conceitos, vamos comparar os termos “arquitetura” e
“organização” com uma função do contexto da programação. Uma função consiste em seu
protótipo (nome da função, tipo de retorno e lista de parâmetros) e na sua codificação.
Podemos dizer que o protótipo se relaciona com a arquitetura do processador. Sendo assim, o
programador, para utilizá-la, não precisa saber como foi implementada, mas, sim, como evocá-
la em seu código. Assim é, também, nos processadores. Para implementarmos um sistema no
qual temos de usar instruções em Assembly, precisaremos saber apenas a arquitetura.
Notemos alguns aspectos relacionados à arquitetura do processador.
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 12/26
Por sua vez, a organização de computadores se relaciona aos aspectos de implementação
interna do processador. O seu conhecimento não é importante para programador, que pode
tomar o processador como uma caixa-preta.
Conheça exemplos de itens da organização dos computadores!
Conjunto de instruções
Cada família de processadores (ou seja, conjunto de processadores com a mesma
arquitetura) exporta o mesmo conjunto de instruções.
Mecanismos de entrada e de saída (E/S)
Os dispositivos de E/S (ou I/O – Input/Output), como os seus métodos de acesso, devem ser
de conhecimento do programador, para que possa prover, aos seus sistemas, as
funcionalidades inerentes à busca e à gravação de informações nos dispositivos externos.
Técnicas de endereçamento
Conhecer os modos de endereçamento do processador faz com que possamos
implementar, por exemplo, a parte do SO responsável pelo gerenciamento da memória.
Tamanho dos tipos de dados
Saber o tamanho da palavra e, consequentemente, os tamanhos (em bytes) utilizados nos
tipos de dados (tais como char e float) é útil na implementação de sistemas mais
econômicos frente à memória.
Pinagem do processador
Corresponde ao protótipo da função (ou seja, relaciona a interface do processador com os
demais componentes da placa).
Registradores
Para codificarmos, por exemplo, device drivers ou rotinas de interrupção, faz-se necessário
saber o conjunto de registradores.
Servem para ativar e para sincronizar os módulos do processador.
Corresponde à própria implementação do hardware. 
Estabelece que um processador é composto por diversos submódulos.
Cada implementação pode interconectá-los de forma distinta, mesmo
no caso de processadores da mesma família.
Devido à quantidade de estágios que o formam, pode influenciar a
performance de processamento. Lembre-se de que conversaremos
sobre pipeline mais à frente.
Sinais internos
de controle
Forma de
implementaçã
o das
instruções
Hierarquia dos
módulos
funcionais
Tamanho
do pipeline
 
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 13/26
Para concluir a nossa conversa sobre os assuntos arquitetura e organização, podemos afirmar
que, mesmo dentro de umamesma família, dois processadores produzidos por empresas
diferentes (como a Intel e a AMD) têm organizações distintas.
Independentemente da família e da organização, todos os processadores seguem a filosofia de
programa armazenado. Mas o que vem a ser isso? Esse é o próximo assunto de nossa
conversa.
1.2.2 Máquina de programa armazenado
Tanto o IAS quanto a máquina de Harvard usavam a ideia de programa armazenado. Diante
disso, faz-se necessária uma estruturação capaz de fornecer, ao processador, as instruções a
serem executadas e os respectivos operandos, conforme mostra a figura “Estruturação básica
de um computador”.
Teste seus conhecimentos
(Atividade não pontuada)
Este é outro aspecto importante da organização dos computadores.
 Cada projeto de processador pode ter uma quantidade distinta de
módulos replicados. Também conversaremos sobre superescalaridade
adiante.
Quantidade de
unidades
superescalares
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 14/26
#PraCegoVer: a figura é formada por dois círculos azuis. O primeiro ilustra a composição
básica de um computador: módulos E/S, memória principal e unidade central de
processamento. Esses três módulos que aparecem dentro do primeiro círculo azul, em círculos
de cor laranja, estão interconectados pelo barramento do sistema. Relacionado ao primeiro
círculo por um envoltório pontilhado, há um segundo círculo azul, que decompõe a unidade
central de processamento em submódulos: registradores, ALU e unidade de controle. Esses
três submódulos são, por sua vez, interconectados pelo barramento interno; e também estão
em círculos de cor laranja.
 
A figura “Estruturação básica de um computador” indica que um computador consiste em uma
interconexão de módulos que podem ser decompostos em submódulos. A decomposição da
figura seguiu uma abordagem top-down (de cima para baixo), em que um módulo é
decomposto por módulos que são especializados e têm menor complexidade de
implementação.
Ainda em relação à figura “Estruturação básica de um computador”, podemos perceber que o
computador pode ser decomposto pelos seguintes módulos:
Figura 3 - Estruturação básica de um computador: composição segundo uma abstração de alto nível; e decomposição
do processador em submódulos
Fonte: Elaborada pelo autor, baseada em STALLINGS, 2017.
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 15/26
 O que representam os submódulos pertencentes à CPU? Conversaremos sobre isso a seguir.
CPU – é o módulo principal do computador e executa as instruções dos programas. Para
tanto, cada instrução é lida da memória e carregada na CPU;
memória principal – armazena as instruções, as informações a serem executadas e as
informações de controle;
E/S (entrada/saída) – são representados pelos controladores e pelos dispositivos de E/S,
como controladores de teclado e de vídeo e HD (Hard Disk);
barramento do sistema – cabe ao barramento do sistema prover a interconexão entre o
processador, a memória e os dispositivos de E/S. Deve, também, prover mecanismos de
sincronização e de gerenciamento, para que os intercâmbios de informações sejam
realizados de forma segura e eficiente.
Uma das preocupações relacionadas a um computador é a
sua performance. Faça uma pesquisa e reflita sobre como os
elementos básicos podem influenciar essa performance. Por
exemplo, caso tenhamos duas máquinas distintas,
poderemos afirmar que a melhor máquina é a que apresenta
a maior frequência de clock?
Vamos Praticar!
1.3 Unidade Central de
Processamento
Ainda há pouco, mencionamos que a CPU pode ser decomposta nos seguintes submódulos:
unidade de controle, registradores, ALU e barramento interno. Mas quais são as
funcionalidades de cada um deles? Responderemos, agora, a esse questionamento:
registradores – são células de memória do processador das quais dependem o
carregamento de instruções, os dados a serem processados e as informações de controle;
ALU – contém o hardware para executar instruções aritméticas (como a adição) e lógicas
(como a comparação de magnitude);
barramento interno – provê a interconexão dos módulos da CPU;
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 16/26
Os registradores podem ser dos tipos GPR (General Purpose Registers – em português,
registradores de propósito geral) e registradores de estado e de controle. A função dos GPR é
armazenar as informações a serem processadas e as resultantes de processamento. Os
registradores de estado e de controle armazenam informações úteis ao gerenciamento e à
sincronização das etapas da instrução e dos módulos internos ao processador. Como exemplo
de registradores de estado e de controle, podemos citar MBR, MAR, IR, PC. Você se lembra
deles? São os mesmos de quando falamos sobre o IAS.
Além do MBR, do MAR, do IR e do PC, podemos citar, ainda, os seguintes registradores, de
acordo com Stallings (2017).
Voltando às funcionalidades do processador, falamos que o processador gera sinais de controle
para realizar as etapas do ciclo de instrução. Veremos, agora, o que vem a ser ciclo de
instrução.
1.3.1 O ciclo de instrução
As instruções são agrupadas em razão de suas funcionalidades e dos módulos ativados por
ocasião de suas execuções. De forma geral, as instruções são agrupadas em quatro grupos
(STALLINGS, 2017):
unidade de controle – é responsável pelo gerenciamento do processamento e, também,
pelo fluxo de informações dentro do processador.
I/O AR (input-output
address register)
É um registrador da interface processador-dispositivo
de I/O e armazena o endereço de I/O a ser
manipulado.
I/O BR (input-output
buffer register)
Armazena a informação manipulada entre a CPU e o
dispositivo de I/O cujo endereço consta em I/O AR.
Flags
S erve para armazenar o estado da última operação da
ULA. Assim, é possível informar se a última operação
da ULA resultou em um valor nulo (flag zero); se
resultou em um valor negativo (flag sinal); e, ainda, se
o valor produzido extrapolou a capacidade de
representação numérica (flag overflow).
Oportunamente, veremos um exemplo
em Assembly que manipula o registrador flags.
processador-memória – fornece instruções que executam transferência de dados entre o
processador e a memória;
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 17/26
Para que uma instrução seja executada, são necessárias várias etapas desde a sua busca na
memória até a efetivação do resultado. Essas etapas são chamadas de ciclo de instrução,
conforme ilustra a figura “Etapas do ciclo de instrução”, a seguir.
#PraCegoVer: a figura ilustra um ciclo de cinco etapas: buscar instrução da memória;
decodificar instrução; buscar operandos; execução; e escrita dos resultados (write-back). Cada
etapa surge dentro de uma caixa laranja. Setas unidirecionais (da esquerda para direita)
relacionam as cinco etapas. A última seta parte de escrita dos resultados e retorna à etapa
inicial, buscar instrução de memória, indicando que o processo se retroalimenta. A etapa de
buscar instrução apresenta um código associado: IR=Mem[PC]; PC = PC + 1. Por sua vez, a
etapa de decodificar instrução apresenta uma subdescrição associada: geração de sinais de
controle.
Na figura “Etapas do ciclo de instrução”, o ciclo se repete a cada instrução, realizando as
seguintes operações:
processador-E/S – permite que informações sejam intercambiadas entre o processador e os
módulos de E/S;
processamento – desempenha o processamento propriamente dito. Para executar uma
instrução de processamento, as informações a ser manipuladas deverão ter sido carregadas
previamente nos registradores;
controle – são aquelas que podem, por exemplo, modificar o fluxo de processamento, como
acontece com os desvios condicionais.
Figura 4 - Etapas do ciclo de instruçãoFonte: Elaborada pelo autor, 2020.
 busca da instrução – nesta etapa, transfere-se, do sistema de memória para o registrador
IR, a instrução cujo endereço é referenciado pelo registrador PC. Após a transferência para o
IR, o PC é incrementado para que transfira a instrução subsequente ao próximo ciclo de
busca;
decodificação – proporciona a geração de sinais para ativar módulos específicos do
processador e para proporcionar direcionamento de fluxos para os dados;
busca dos operandos – após a decodificação, o processador saberá qual classe de
instrução será executada e, consequentemente, quais serão as fontes das informações a
serem manipuladas. Dessa forma, realiza-se a busca dos operandos associados à instrução
a ser executada;
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 18/26
Conversamos, aqui, sobre registradores, sobre classes de instrução, sobre ciclos de instrução e
sobre outros elementos. Mas como podemos colocar tudo isso em prática? Exemplificaremos
isso com conserva sobre a linguagem Assembly.
1.3.2 Linguagem Assembly
A linguagem Assembly representa, na forma de itens mnemônicos, as instruções exportadas
pelo processador. Cada processador apresenta o seu próprio Assembly: caso escrevermos, por
exemplo, um programa em Assembly do ARM, esse não poderá ser compilado para o x86. Mas
como é a sintaxe do Assembly? Para respondermos a essa questão, tomemos, como exemplo,
um trecho de código escrito em um Assembly hipotético. O referido trecho ilustra a tradução do
comando “if” em Assembly.
mov Reg1, [Reg2] ; Reg1 = conteúdo da posição de mem. apontada por Reg2
mov Reg3, 10 ; Reg3 = 10
sub Reg1, Reg3 ; Reg1 = Reg1 - Reg3
js p_else ; desvio para p_else se flag sinal esteja sinalizada
 <sequência_if> ; codificação relativa ao if
jump p_final ; desvio não condicional para p_final
p_else: ; rótulo denominado p_else
 <sequência_else> ; codificação relativa ao else
p_final: ; rótulo denominado p_final
 <restante_do_código> ; sequência após o desvio condicional
Vamos, antes, fazer algumas considerações. A quantidade de operandos (itens a serem
manipulados) pode variar de arquitetura para arquitetura. No nosso caso, as instruções poderão
manipular, no máximo, dois operandos. Sendo assim, teremos a seguinte instrução:
 
instrução operando_destino, operando_fonte
 
No caso do “sub”, o operando à esquerda corresponde tanto à fonte quanto ao destino do
resultado da operação. Caso o Assembly manipulasse três operandos, teríamos esta instrução:
 
instrução operando_destino, operando_fonte1, operando_fonte2
 
Os comentários, no código, estão precedidos por ponto-e-vírgula.
Voltando, então, ao código, percebemos que, na primeira linha, ocorre a instanciação, por meio
do comando “mov” (movimentação de dados), do registrador “Reg1” com o conteúdo da
posição de memória referenciado pelo registrador “Reg2”. Na segunda linha, é realizada a
instanciação do registrador “Reg3” com o valor 10.
Quando é realizada a operação “sub” na terceira linha, é instanciado o registrador flags. Caso a
subtração resulte em 0, o bit zero é instanciado em 1; caso a subtração resulte em um valor
negativo, o bit sinal é instanciado em 1.
execução – representa a execução propriamente dita;
escrita dos resultados (write-back) – efetiva os valores resultantes do processamento da
instrução.
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 19/26
O flags é utilizado como parâmetro da quarta linha: instrução “js” (jump sinal). A instrução js faz
com que o fluxo de processamento seja desviado para o rótulo “p_else” (um rótulo marca uma
posição de memória) caso o bit flag sinal valha 1 – ou seja, caso a subtração anterior tenha
gerado um valor negativo. Sendo assim, o trecho identificado como “<sequência_if>” somente
será executado se o resultado da operação de subtração for maior ou igual a zero.
Consequentemente, o trecho “<sequência_else>” será executado se o resultado da operação
de subtração gerar um valor negativo.
A instrução “jump” corresponde a um desvio não condicional (como o comando “goto” da
linguagem C/C++). No caso do código, o desvio não condicional direciona o fluxo de
processamento ao rótulo “p_final” – saindo da estrutura if/else.
Exibimos apenas um Assembly hipotético, para que pudéssemos mostrar o que seria programar
em Assembly – o estilo da programação. Em Assembly, temos de planejar, instrução por
instrução, o que o computador deverá fazer.
Atualmente, existem vários modelos de
microprocessadores e de microcontroladores. Faça uma
pesquisa das diferenças entre um microprocessador e um
microcontrolador. Depois, veja a estruturação dos
registradores e os tipos de instruções Assembly de, por
exemplo, um microprocessador PIC.
Vamos Praticar!
1.4 Tendências
atuais
Os processadores modernos englobam várias técnicas para aumentar a sua performance.
Dentre essas técnicas, destacam-se mecanismos que embutem paralelismo para a execução
das instruções.
Inicialmente, vamos apresentar duas técnicas comumente usadas nos processadores atuais: o
pipeline e a superescalaridade.
1.4.1 Pipeline
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 20/26
O pipeline consiste em antecipar o início da execução da próxima instrução. Em um
processamento puramente sequencial, o início da próxima instrução é feito quando a instrução
corrente completar todo o seu ciclo de instrução. No pipeline, a busca de uma nova instrução
pode ser iniciada quando a instrução atual estiver em sua etapa de decodificação. Mas o
pipeline toma por base apenas as etapas do ciclo de instrução? Não! Na verdade, cada etapa
pode ser quebrada, ainda, em várias microinstruções.
Para facilitar o entendimento disso, vamos adotar um processamento de sinais para um
equipamento biomédico. Vamos supor que sejam necessárias quatro etapas: 1) aquisição de
sinais a partir de um transdutor; 2) pré-processamento, como a aplicação de transformadas
numéricas; 3) processamento efetivo; e 4) pós-processamento, como plotagem de gráficos e
atuação eletromecânica.
Agora, imaginemos dois cenários, como indica a figura “ Processamento puramente sequencial
(a) e processamento baseado em pipeline (b)”. Em (a), temos o processamento das quatro
etapas realizado no modo puramente sequencial. Em (b), temos a execução baseada em
pipeline. Para o nosso exemplo, assuma que todas as etapas gastem o mesmo tempo de
processamento.
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 21/26
 #PraCegoVer: a figura mostra duas planilhas – (a) e (b) –, tendo, como linhas, as etapas de
processamento de sinais (aquisição de sinais, pré-processamento, processamento e pós-
processamento); e, como colunas, as marcações de tempo (de 1 até 12). O processamento é
feito frame (quadro) a frame. Em (a), que retrata o processamento sequencial, temos, para o
frame 1, a ocupação dos tempos 1, 2, 3 e 4. O processamento do frame 2 ocorre nos
momentos 5, 6, 7 e 8. Finalmente, o frame 3 ocupa os momentos subsequentes: 9, 10, 11 e 12.
Por sua vez, (b) ilustra o processamento com pipeline. No tempo 1, temos a aquisição do frame
1. No tempo 2, há o pré-processamento do frame 1 simultaneamente à aquisição do frame 2.
No tempo 3, ocorrem o processamento do frame 1, o pré-processamento do frame 2 e a
aquisição do frame 3. Em 4, há o processamento do frame 1, o processamento do frame 2 e o
pré-processamento do frame 3. No momento 5, há o pós-processamento do frame 2 e o
processamento do frame 3. Finalmente, no tempo 6, há o pós-processamento do frame 3,
totalizando as etapas requeridas para o processamento de sinais.
 
Na figura “Processamento puramente sequencial (a) e processamento baseado em pipeline
(b)”, acima, no sistema com pipeline, cada etapaé processada por um hardware específico.
Para que o módulo não fique ocioso, transferirá o seu resultado ao módulo seguinte (por meio
de buffers de transferência) assim que finalizar um processamento; e iniciará o processamento
da nova informação. Dessa forma, o tempo total do processamento do conjunto de frames
diminui, embora o tempo de processamento de cada frame permaneça inalterado. O ideal é que
o pipeline mantenham todos os módulos processando alguma informação; e que haja a vazão
de um frame finalizado por unidade de tempo – no caso dos processadores, uma instrução
sendo completada por unidade de tempo.
Figura 5 - Processamento puramente sequencial (a) e processamento baseado em pipeline (b)
Fonte: Elaborada pelo autor, 2020.
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 22/26
Para o nosso caso hipotético, com a aplicação do mecanismo de pipeline, conseguimos reduzir,
pela metade, o tempo de processamento dos três frames. Em função da defasagem do início do
processamento de cada frame, podemos falar que o pipeline realiza um “pseudoparalelismo”.
Falamos que o pipeline é uma técnica baseada no pseudoparalelismo. A superescalaridade,
seria um paralelismo pleno? Conversaremos sobre isso a seguir.
1.4.2 Superescalaridade
Uma arquitetura é superescalar caso apresente replicações de suas unidades funcionais. Os
processadores atuais utilizam essa filosofia junto com o pipeline para que se tenha altas
performances computacionais. A figura “Parte de um processador hipotético superescalar”, a
seguir, simplifica a parte de uma arquitetura hipotética dotada de estrutura superescalar. Os
módulos “Soma FP”, “Mult FP” e “Unidade inteiros” denotam módulos responsáveis por realizar
soma/subtração de ponto flutuante (floating point – FP); multiplicação/divisão de ponto flutuante;
e operações que envolvem operadores inteiros, respectivamente.
Você sabia que é possível fazer sistemas de software com
abordagens baseadas em pipeline e em superescalaridade? Para
isso, podemos realizar as implementações com “threads”. As threads
se comportam como funções independentes entre si – ou seja, podem
ser executadas paralelamente, compartilhando o mesmo espaço de
endereçamento (por exemplo, podendo acessar as mesmas variáveis
globais). Para saber mais sobre threads, você poderá procurar pela
biblioteca pthread (POSIX threads). Se quiser ter uma ideia inicial,
acesse o texto de Garcia (2017):
https://www.embarcados.com.br/threads-posix/
(https://www.embarcados.com.br/threads-posix/).
Você sabia?
https://www.embarcados.com.br/threads-posix/
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 23/26
#PraCegoVer: a figura ilustra uma conexão entre a memória e um buffer de instruções. Desse
buffer de instruções, representado em um caixa laranja, deriva uma linha que interliga todos os
módulos de processamento, indicados em caixas azuis: “Soma FP”, dois módulos “Mult FP” e
três módulos “Unidades de inteiros”. Dos módulos “Soma FP” e “Mult FP”, sai uma linha que
direciona os resultados para o “Banco de registradores FP”, de que, por sua vez, deriva uma
linha bidirecional para a memória. Dos módulos “Unidade inteiros”, direcionam-se resultados ao
“Banco de registradores inteiros”, de que, por fim, deriva uma linha bidirecional rumo à memória
(interligando-se à saída bidirecional do “Banco de registradores FP”).
 
Na figura “Parte de um processador hipotético superescalar simplificado”, a memória alimenta,
com instruções, o buffer de instruções, que, após a decodificação, direciona-as aos módulos de
processamento correspondentes. A superescalaridade é alcançada pela replicação de “Mult FP”
e de “Unidades de inteiro”. Os bancos de registradores são específicos para os tipos de dados
– ou seja, existem registradores GPR para o armazenamento apenas de valores de ponto
flutuante (interagindo com os módulos que processam informações do tipo ponto flutuante).
Temos, também, registradores GPR que armazenam apenas valores inteiros (conectados
apenas aos módulos de processamento de valores inteiros).
Figura 6 - Parte de um processador hipotético superescalar simplificado
Fonte: Elaborada pelo autor, 2020.
O processador Intel Core-i7 é um exemplo de
processador atual que utiliza, dentre outras técnicas, as
abordagens de pipeline e de superescalaridade. Para
saber mais do assunto, você poderá acessar o texto de
Telles (2009).
Acesse
(https://www.ic.unicamp.br/~ducatte/mo401/1s2009/T
2/042348-t2.pdf)
Você quer ler?
https://www.ic.unicamp.br/~ducatte/mo401/1s2009/T2/042348-t2.pdf
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 24/26
Existem outros mecanismos e estruturações para que tenhamos um aumento da capacidade de
processamento. Na figura “Parte de um processador hipotético superescalar simplificado”,
podemos dividir a memória em memória de instruções e em memória de dados, tal como ocorre
na arquitetura Harvard.
A mesma divisão é encontrada na cache nível 1 (level 1; L1): cache L1 de instruções
e cache L1 de dados. Tais mecanismos e estruturações serão abordados ao longo de nossas
conversas.
Faça uma pesquisa e reflita sobre como a arquitetura
Harvard está presente nos processadores atuais. Os
processadores da Intel seguem o padrão Harvard?
São superescalares? Têm pipeline? E os
processadores ARM?
Vamos Praticar!
Teste seus conhecimentos
(Atividade não pontuada)
Nesta primeira conversa, falamos sobre os aspectos iniciais dos
computadores; sobre suas gerações; sobre sua estruturação
básica; sobre como as instruções são executadas; sobre duas
técnicas para aumentar o poderio de processamento.
Esperamos ter contribuído com seus estudos, apresentando-lhe
conteúdos capazes de sustentar o seu desenvolvimento estudantil
e profissional; e, com isso, ajudá-lo em análises e em tomadas de
decisões quanto ao desenvolvimento de sistemas (tanto de
software quanto de hardware) e à implantação de parques
computacionais.
Nesta unidade, você teve a oportunidade de:
Conclusão
https://www.ic.unicamp.br/~ducatte/mo401/1s2009/T2/042348-t2.pdf
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 25/26
identificar as particularidades de arquitetura e de organização,
de modo a poder reconhecer e a analisar famílias de
processadores;
identificar os computadores frente ao seu contexto histórico,
relacionando os pontos inerentes a cada geração às
características dos atuais computadores;
tomar conhecimento do funcionamento e analisar os impactos
do pipeline e da superescalaridade sobre o funcionamento do
computador;
identificar e analisar os pontos que impactam no desempenho
computacional.
GARCIA, F. D. Threads POSIX. Embarcados, [S. l.], 13 mar.
2017. Disponível em:
https://www.embarcados.com.br/threads-posix/
(https://www.embarcados.com.br/threads-posix/). Acesso
em: 24 out. 2020. 
MARKOFF, J. Lei de Moore está se esgotando e tecnologia busca sucessores. Folha
de São Paulo, São Paulo, 17 maio 2016. Disponível em:
https://www1.folha.uol.com.br/tec/2016/05/1768028-lei-de-moore-esta-se-
esgotando-e-tecnologia-busca-sucessores.shtml
(https://www1.folha.uol.com.br/tec/2016/05/1768028-lei-de-moore-esta-se-
esgotando-e-tecnologia-busca-sucessores.shtml). Acesso em: 24 out. 2020.
MONTEIRO, M. A. Introdução à organização de computadores. 5. ed. Rio de
Janeiro: LTC, 2007.
NUNES, M. Alan Turing: o pai da computação. Jornal PETNews, Campina Grande,
jun. 2012. Disponível
em:http://www.dsc.ufcg.edu.br/~pet/jornal/junho2012/materias/historia_da_comp
utacao.html
(http://www.dsc.ufcg.edu.br/~pet/jornal/junho2012/materias/historia_da_computa
cao.html). Acesso em: 23 out. 2020.
SOUSA, I. Ada Lovelace – Biografia e sua importância na tecnologia. Conhecimento
Científico, [S.l.], 7 fev. 2020. Disponível em:
https://conhecimentocientifico.r7.com/ada-lovelace/(https://conhecimentocientifico.r7.com/ada-lovelace/). Acesso em: 22 out. 2020.
STALLINGS, W. Arquitetura e organização de computadores. 10. ed. São Paulo:
Pearson, 2017.
Referências
https://www.embarcados.com.br/threads-posix/
https://www1.folha.uol.com.br/tec/2016/05/1768028-lei-de-moore-esta-se-esgotando-e-tecnologia-busca-sucessores.shtml
http://www.dsc.ufcg.edu.br/~pet/jornal/junho2012/materias/historia_da_computacao.html
https://conhecimentocientifico.r7.com/ada-lovelace/
26/06/2023, 19:56 Arquitetura de computadores e microprocessadores
https://ambienteacademico.com.br/mod/url/view.php?id=779055 26/26
TELLES, B. O Processador Intel Core i7. Paulo Cesar Centoducatte, Campinas,
2009. Disponível
em: https://www.ic.unicamp.br/~ducatte/mo401/1s2009/T2/042348-t2.pdf
(https://www.ic.unicamp.br/~ducatte/mo401/1s2009/T2/042348-t2.pdf). Acesso em:
27 out. 2020.
TRANSISTOR #02 – Histórico e funcionamento do transistor. [S. l.], 25 fev. 2013. 1
vídeo (14 min). Publicado pela instituição GV Ensino. Disponível em:
https://www.youtube.com/watch?v=a8mo9EQZ2p4&list=PLFfpdsnO_HS_h-
1s1VCFPuFrC-P9btyfb&index=2 (https://www.youtube.com/watch?
v=a8mo9EQZ2p4&list=PLFfpdsnO_HS_h-1s1VCFPuFrC-P9btyfb&index=2).
Acesso em: 24 out. 2020.
https://www.ic.unicamp.br/~ducatte/mo401/1s2009/T2/042348-t2.pdf
https://www.youtube.com/watch?v=a8mo9EQZ2p4&list=PLFfpdsnO_HS_h-1s1VCFPuFrC-P9btyfb&index=2

Outros materiais