Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

ARQUITETURA DE 
COMPUTADORES 
AULA 1 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Prof. André Roberto Guerra 
 
 
 
2 
CONVERSA INICIAL 
Nesta etapa, exploraremos os fundamentos e os aspectos avançados que 
constituem a base dos sistemas de computação modernos. Para tanto, a 
disciplina está organizada em seis aulas, cada uma projetada para oferecer uma 
compreensão profunda e prática dos diferentes componentes que formam a 
arquitetura de computadores. Nesse sentido, é necessário destacá-las, cuja 
finalidade é ambientá-los sobre o que veremos ao longo do curso: 
• Aula 1 – Fundamentação: nesta primeira aula, nos concentraremos nos 
conceitos básicos que sustentam a arquitetura de computadores. 
Discutiremos a importância da arquitetura de computadores, sua evolução 
histórica e os princípios fundamentais que orientam o design e a 
funcionalidade dos sistemas computacionais. 
• Aula 2 – Visão geral dos computadores: na segunda aula, faremos uma 
análise abrangente dos componentes essenciais dos computadores. 
Abordaremos a estrutura e a organização dos computadores, incluindo a 
interação entre hardware e software, além de examinar os diferentes tipos 
de computadores e suas aplicações. 
• Aula 3 – Lógica digital: a lógica digital constitui a base dos sistemas 
computacionais. Nesta aula, exploraremos os princípios da lógica digital, 
incluindo portas lógicas, circuitos combinacionais e sequenciais, e como 
esses elementos formam o núcleo dos processadores e outros 
componentes computacionais. 
• Aula 4 – Microprocessadores: os microprocessadores são o coração dos 
computadores modernos. Vamos estudar sua estrutura, funcionamento e 
o papel crucial que desempenham na execução de instruções. 
Analisaremos também os diferentes tipos de microprocessadores e suas 
arquiteturas específicas. 
• Aula 5 – Sistemas operacionais: os sistemas operacionais são essenciais 
para a gestão dos recursos do computador e a execução de aplicações. 
Nesta aula, discutiremos os principais conceitos dos sistemas 
operacionais, incluindo gerenciamento de memória, processos, sistemas 
de arquivos e segurança. 
• Aula 6 – Arquiteturas paralelas: por fim, exploraremos as arquiteturas 
paralelas, fundamentais para o desempenho dos sistemas 
 
 
3 
computacionais em tarefas complexas e de alto volume de dados. 
Abordaremos as técnicas de paralelismo, os desafios e os benefícios de 
arquiteturas multicore e multiprocessadas. 
Cada etapa foi cuidadosamente planejada para proporcionar uma mistura 
equilibrada de teoria e prática, garantindo que você não apenas compreenda os 
conceitos, mas também saiba aplicá-los em situações reais. Ao final do curso, 
você terá adquirido uma sólida compreensão da arquitetura de computadores, 
estando preparado para enfrentar desafios avançados na área da computação. 
Prepare-se para explorar, questionar e aprofundar seu conhecimento 
sobre os intrincados mecanismos que fazem os computadores funcionarem. 
TEMA 1 – A HISTÓRIA E EVOLUÇÃO DA ARQUITETURA DE 
COMPUTADORES 
A arquitetura de computadores, que se refere ao design e organização 
dos componentes de um sistema de computador, é um campo que tem evoluído 
significativamente desde o início. Desde as primeiras máquinas calculadoras até 
os avançados sistemas de computação paralela de hoje, a trajetória da 
arquitetura de computadores reflete uma jornada de inovação contínua, 
impulsionada por necessidades científicas, tecnológicas e econômicas 
(Murdocca; Heuring, 2001; Silva, 2023). 
1.1 As máquinas mecânicas 
A história da arquitetura de computadores começa com as máquinas de 
calcular mecânicas. Um dos primeiros dispositivos notáveis foi a máquina de 
calcular de Blaise Pascal, construída em 1642, que utilizava uma série de 
engrenagens para realizar operações aritméticas básicas (Souza; Zafaneli, 
2004; Fonseca Filho, 2007). 
 
 
 
4 
Figura 1 – Pascalina ou máquina de calcular de Pascal 
 
Créditos: Archivist/Adobe Stock. 
Segundo Villaça e Steinbach (2014), em 1801, Joseph-Marie Jacquard 
inventou o tear de Jacquard, que usava cartões perfurados para controlar o 
padrão tecido, uma inovação que influenciaria posteriormente o design de 
computadores. 
1.2 A máquina analítica de Charles Babbage 
De acordo com Miguel Velasco (1985), Charles Babbage, mais conhecido 
como o pai do computador, propôs o conceito de uma máquina analítica na 
década de 1830. A máquina analítica era um design teórico para um computador 
mecânico de propósito geral, que incluía componentes como uma unidade de 
controle, uma unidade aritmética, uma memória e dispositivos de entrada e 
saída. Apesar de Babbage nunca ter conseguido construir sua máquina, seus 
princípios teóricos foram fundamentais para o desenvolvimento da arquitetura de 
computadores. 
 
 
5 
1.3 A era das válvulas: computadores eletrônicos iniciais 
O advento da eletrônica no século XX trouxe uma revolução na 
computação. Nos anos 1940, os primeiros computadores eletrônicos, como o 
Electronic Numerical Integrator and Computer (ENIAC), usavam válvulas 
termiônicas (tubos de vácuo) para realizar cálculos (Woiler, 1970; Aranha, 2004). 
O ENIAC, completado em 1945, podia realizar 5.000 operações por 
segundo, uma capacidade notável para a época. Contudo, por serem máquinas 
grandes, consumiam um volume expressivo de energia, tornando-as mais 
propensas a falhas. 
1.4 A arquitetura de Von Neumann 
John von Neumann, um matemático e cientista da computação, propôs 
uma arquitetura que se tornaria a base para a maioria dos computadores 
modernos. A arquitetura de Von Neumann, delineada em um relatório de 1945, 
descreve um sistema onde os dados e as instruções são armazenados na 
mesma memória. Isso permitia que os computadores fossem programáveis, 
executando uma série de instruções de forma sequencial (Castilho; Silva; 
Weingaertner, 2023). Os principais componentes dessa arquitetura incluem a 
Unidade Central de Processamento (CPU), a memória, e dispositivos de entrada 
e saída. 
1.5 A transição para transistores 
Na década de 1950, os transistores substituíram as válvulas termiônicas, 
levando ao desenvolvimento de computadores mais compactos, eficientes e 
confiáveis. Os transistores permitiram a criação de computadores de segunda 
geração, como o IBM 1401 e o UNIVAC II. A miniaturização dos componentes e 
a redução do consumo de energia marcaram essa era, possibilitando a 
disseminação dos computadores em setores comerciais e científicos (Gerbasi, 
2021). 
1.6 A revolução dos circuitos integrados 
Nos anos 1960 e 1970, os circuitos integrados (ICs) transformaram 
novamente a arquitetura de computadores. Os ICs permitiram a integração de 
 
 
6 
milhares de transistores em um único chip, levando à criação de computadores 
de terceira geração, como o IBM System/360 (Castro, 2022; Duarte, 2023). Essa 
tecnologia possibilitou a produção em massa de computadores mais poderosos 
e acessíveis, e pavimentou o caminho para a era dos microprocessadores. 
1.7 Microprocessadores e computadores pessoais 
O lançamento do microprocessador Intel 4004 em 1971 marcou o início 
de uma nova era na arquitetura de computadores. Os microprocessadores 
integravam a CPU em um único chip, tornando possível a criação de 
computadores pessoais (PCs). A IBM lançou seu primeiro PC em 1981, usando 
um microprocessador Intel 8088 (Castro, 2022; Duarte, 2023). Os computadores 
pessoais democratizaram a computação, tornando-a acessível a empresas e 
indivíduos em todo o mundo. 
1.8 A era dos computadores paralelos e distribuídos 
À medida que as demandas computacionais cresceram, especialmente 
em áreas como modelagem científica, inteligência artificial e Big Data, tornou-se 
claro que aumentar a velocidade dos processadores individuais não seria 
suficiente. Isso levou ao desenvolvimento de arquiteturas de computação 
paralela e distribuída. Os sistemas de computação paralela0 
0 1 0 0 0 
0 1 1 1 1 
1 0 0 0 1 
1 0 1 0 1 
1 1 0 0 1 
1 1 1 1 1 
Fonte: Elaborado com base em Guerra, 2023. 
Portanto, a tabela-verdade claramente mostra todas as possíveis saídas 
da função fW para cada combinação de entradas X, Y e Z. Essa análise é 
fundamental no design de circuitos digitais, pois permite prever o comportamento 
Criar colunas para as 
variáveis de entrada e listar 
todas as combinações 
possíveis utilizando a 
seguinte fórmula: n. de 
combinações = 2n (n = 
número de variáveis de 
entrada). 
Criar uma coluna para cada 
variável de entrada que 
apareça complementada 
na equação e anotar os 
valores resultantes. 
Avaliar a equação seguindo 
a ordem de precedência, 
partindo do nível de 
parênteses mais internos: 
primeiro – multiplicação 
lógica; segundo – adição 
lógica.
 
 
8 
da função sob todas as condições possíveis, garantindo assim a correta 
implementação e o funcionamento do circuito. 
TEMA 3 – OPERAÇÕES E OPERADORES 
Na álgebra booleana, são definidas algumas operações elementares 
(básicas), conforme mostra a Figura 6. 
Figura 6 – Operações elementares (básicas) 
 
Fonte: Elaborado com base em Guerra, 2023. 
O autor ainda aponta para a necessidade de compreender que também 
há funções complementares (Figura 7). 
Figura 7 – Funções complementares 
 
Fonte: Elaborado com base em Guerra, 2023. 
Para compreender melhor os operadores lógicos digitais (elementares e 
complementares) – portas lógicas, a Figura 8 ilustra esse processo. 
NÃO (NOT) E (AND) OU (OR)
NAND (negação de E)
NOR (negação de OU)
XOR (exclusive-OR – OU exclusivo)
XNOR (negação de OU exclusivo)
 
 
9 
Figura 8 – Operadores lógicos digitais1 (elementares e complementares) – portas 
lógicas 
 
Fonte: Elaborado com base em Guerra, 2023. 
Essas operações serão aprofundadas posteriormente, de modo mais 
detalhado no próximo tópico. As variáveis booleanas são representadas por 
letras maiúsculas, como A, B, C, …, e as funções pela notação f(A, B, C, D, …) 
(Guerra, 2023). Há uma ordem na solução das operações descrita como 
precedência, a saber: 
1. ( ) – parênteses 
2. ' – negação 
3. . – e 
4. + – ou, OU exclusivo, … 
Embora não sejam operadores, os parênteses têm um papel importante 
na ordem de precedência das operações, pois seu uso modifica a ordem usual 
dos operadores, assim como acontece na álgebra comum. 
TEMA 4 – PORTAS LÓGICAS 
Uma função booleana pode ser representada por uma equação, 
detalhada por sua tabela-verdade, ou de forma gráfica, em que cada operador é 
associado a um símbolo específico, permitindo reconhecimento visual imediato. 
Esses símbolos são chamados de portas lógicas. 
Na verdade, além de serem símbolos de operadores lógicos, as portas 
lógicas representam recursos físicos, ou seja, circuitos eletrônicos capazes de 
 
1 O operador lógico buffer é costumeiramente chamado de coringa. 
 
 
10 
realizar operações lógicas. Na eletrônica digital, que opera apenas com dois 
estados, o nível lógico 0 normalmente corresponde à ausência de tensão (0 volt), 
enquanto o nível lógico 1 está associado à presença de tensão (5 volts) (Guerra, 
2023). 
Na álgebra booleana, em que as portas lógicas também representam 
circuitos eletrônicos que realizam as funções booleanas simbolizadas, esse 
conjunto de portas lógicas e suas conexões, que representam equações 
booleanas, é denominado circuito lógico (Guerra, 2023). 
4.1 Porta lógica NOT (NÃO) 
A operação NOT dispensa uma definição, uma vez que seu resultado é 
simplesmente o valor contrário (inverso) ao que a variável apresenta. Uma 
variável booleana pode assumir somente um entre dois valores: se a variável 
vale 1, o valor inverso é 0, e vice-versa. Os símbolos utilizados para 
representação são ~A e A' (lê-se “negação de A”) (Guerra, 2023). 
Figura 9 – Porta lógica NOT 
 
Fonte: Elaborado com base em Guerra,2023. 
Tabela 3 – Tabela-verdade NOT 
A f = A' 
0 1 
1 0 
Fonte: Elaborado com base em Guerra, 2023. 
Diferentemente de todas as outras operações lógicas, a negação é 
definida sobre uma variável ou sobre o resultado de uma expressão. Portanto, o 
operador negação é unário. 
 
 
 
11 
4.2 Porta lógica AND (E) 
A operação AND, também denominada multiplicação lógica, pode ser 
definida como aquela que resulta 0 se pelo menos uma das variáveis de entrada 
vale 0. Assim, ela resulta 1 somente quando todas as variáveis de entrada são 
1. A operação AND é representada pelo símbolo ·, tal como o símbolo da 
multiplicação algébrica. Também é possível encontrar na bibliografia o símbolo 
∧ (Guerra, 2023). 
Figura 10 – Porta lógica AND 
 
Fonte: Elaborado com base em Guerra, 2023. 
Tabela 4 – Tabela-verdade NA 
A B f = A · B 
0 0 0 
0 1 0 
1 0 0 
1 1 1 
Fonte: Elaborado com base em Guerra, 2023. 
A operação lógica AND necessita de pelo menos duas variáveis 
envolvidas, motivo pelo qual é uma operação binária. 
4.3 Porta lógica OR (OU) 
A operação OR, também denominada adição lógica, pode ser definida 
como aquela que resulta 1 se pelo menos uma das variáveis de entrada vale 1. 
Assim, a operação OR resulta 0 apenas quando todas as variáveis de entrada 
são 0. A operação OR é representada pelo símbolo +, tal como o símbolo da 
 
 
12 
adição algébrica. No entanto, ressaltamos que, em variáveis booleanas, não se 
trata da adição algébrica, mas da adição lógica. Outro símbolo encontrado na 
bibliografia é ∨ (Guerra, 2023). 
Figura 11 – Porta lógica OR 
 
Fonte: Elaborado com base em Guerra, 2023. 
Tabela 5 – Tabela-verdade OR 
A B f = A + B 
0 0 0 
0 1 1 
1 0 1 
1 1 1 
Fonte: Elaborado com base em Guerra, 2023. 
Diferentemente da operação NOT, todas as operações lógicas 
necessitam de pelo menos duas variáveis envolvidas, não sendo possível 
realizar as operações sobre somente uma variável. Desse modo, o operador OR, 
conforme os demais, é binário. 
4.4 Porta lógica NAND (negação de E) 
A operação NAND, também denominada negação de E, é equivalente à 
operação AND seguida de uma operação NOT, podendo ser definida como a 
operação que resulta 0 somente quando todas as variáveis de entrada são 1. 
Assim, a operação NAND resulta 1 para todos os outros valores das variáveis de 
entrada. A operação NAND é representada pelo símbolo · seguido do símbolo ' 
– (A · B)' (Guerra, 2023). 
 
 
13 
Figura 12 – Porta lógica NAND 
 
Fonte: Elaborado com base em Guerra, 2023. 
Tabela 6 – Tabela-verdade NAND 
A B f = (A · B)' 
0 0 1 
0 1 1 
1 0 1 
1 1 0 
Fonte: Elaborado com base em Guerra, 2023. 
Assim como nas demais operações, e diferentemente da operação NOT, 
a operação lógica NAND necessita de pelo menos duas variáveis, sendo, 
portanto, uma operação binária. 
4.5 Porta lógica NOR (negação de OU) 
A operação NOR, também denominada negação de OU, é equivalente à 
operação OU seguida de uma operação NOT, podendo ser definida como a 
operação que resulta 1 somente quando todas as variáveis de entrada são 0. 
Assim, a operação NOR resulta 0 para todos os outros valores das variáveis de 
entrada. A operação NOR é representada pelo símbolo + seguido do símbolo ' – 
(A + B)' (Guerra, 2023). 
 
 
 
14 
Figura 13 – Porta lógica NOR 
 
Fonte: Elaborado com base em Guerra, 2023. 
Tabela 7 – Tabela-verdade NOR 
A B f = (A + B)' 
0 0 1 
0 1 0 
1 0 0 
1 1 0 
Fonte: Elaborado com base em Guerra, 2023. 
Assim como nas demais operações, e diferentemente da operação NOT, 
a operação lógica NOR necessita de pelo menos duas variáveis, sendo, portanto, 
uma operação binária. 
4.6 Porta lógica XOR (OU exclusivo) 
A operação XOR, também denominada OU exclusivo, é definida como 
aquela que resulta 0 quando todas as variáveis de entrada são iguais. Assim, a 
operação XOR resulta 1 para as variáveis de entrada diferentes (Guerra, 2023). 
Essa operação também pode ser definida como a multiplicação lógica de 
OR e NAND, como em (A + B) · (A · B)'. A operação NOR é representada pelosímbolo ⊕. 
 
 
 
15 
Figura 14 – Porta lógica XOR 
 
Fonte: Elaborado com base em Guerra, 2023. 
Tabela 8 – Tabela-verdade XOR 
A B f = (A ⊕ B) 
0 0 0 
0 1 1 
1 0 1 
1 1 0 
Fonte: Elaborado com base em Guerra, 2023. 
Assim como nas demais operações, e diferentemente da operação NOT, 
a operação lógica XOR necessita de pelo menos duas variáveis, sendo, portanto, 
uma operação binária. 
4.7 Porta lógica XNOR (negação de OU exclusivo) 
A operação XNOR, também denominada negação de OU exclusivo ou 
complemento de OU exclusivo, é definida como aquela que resulta 1 quando 
todas as variáveis de entrada são iguais. Assim, a operação XNOR resulta 0 
para as variáveis de entrada diferentes. Essa operação também pode ser 
definida como a negação da multiplicação lógica de OR e NAND, como em ((A 
+ B) ⋅ (A ⋅ B)')'. A operação XNOR é representada pelo símbolo ⊕ seguido do 
símbolo ' (Guerra, 2023). 
 
 
 
16 
Figura 15 – Porta lógica XNOR 
 
Fonte: Elaborado com base em Guerra, 2023. 
Tabela 9 – Tabela-verdade XNOR 
A B f = (A ⊕ B)' 
0 0 1 
0 1 0 
1 0 0 
1 1 1 
Fonte: Elaborado com base em Guerra, 2023. 
Assim como nas demais operações, e diferentemente da operação NOT, 
a operação lógica XNOR necessita de pelo menos duas variáveis, sendo, 
portanto, uma operação binária. 
TEMA 5 – APLICAÇÕES PRÁTICAS 
Com vistas a concluir esta abordagem sobre portas lógicas e lógica digital, 
vamos explorar as aplicações práticas dessas tecnologias para aprofundar 
nosso entendimento. As portas lógicas são fundamentais em diversas áreas e 
aplicações tecnológicas. O Quadro 2 apresenta alguns exemplos. 
Quadro 2 – Aplicações práticas 
Computadores e 
processadores 
As portas lógicas são usadas para construir unidades lógicas e 
aritméticas (ALUs), que executam operações básicas em 
processadores. 
Memórias digitais 
Flip-flops, que são usados para armazenar dados em memória 
RAM e registros, são construídos a partir de portas lógicas. 
Sistemas de controle 
Circuitos digitais controlam tudo, desde eletrodomésticos até 
sistemas de controle de tráfego e automação industrial. 
 
 
17 
Dispositivos de 
comunicação 
Circuitos lógicos são usados em modems, roteadores e outros 
equipamentos de rede para processar sinais de comunicação. 
Eletrônica de 
consumo 
Gadgets, como smartphones, tablets e consoles de videogame, 
dependem de circuitos digitais complexos. 
Fonte: Elaborado com base em Descovi et al., 2023. 
Sendo assim, entender as portas lógicas e sua aplicação na lógica digital 
é apenas o início de uma jornada no mundo da eletrônica e da computação. Com 
esse conhecimento, é possível pensar em estratégias para enfrentar desafios 
mais complexos e desenvolver soluções inovadoras (Guerra, 2023). Por isso, é 
importante continuarmos explorando, experimentando e construindo, 
aprofundando nosso entendimento e habilidades na arquitetura de 
computadores. 
FINALIZANDO 
Ao longo deste estudo, exploramos os fundamentos da lógica digital, 
essenciais para entender a arquitetura de computadores e os sistemas 
eletrônicos modernos. Abordamos a álgebra de Boole, compreendendo as 
variáveis booleanas e operações básicas, e entendendo como servem de base 
teórica para a lógica digital. Discutimos as funções da lógica digital, combinando 
operações booleanas para criar expressões lógicas complexas e representá-las 
por meio de tabelas-verdade, expressões algébricas e diagramas de circuitos. 
Aprofundamos detalhadamente as operações e os operadores 
fundamentais, como AND, OR, NOT, XOR, NAND, NOR e XNOR, e vimos como 
são utilizados para construir circuitos que executam funções específicas. 
Avançamos para as portas lógicas, examinando como esses operadores 
booleanos são implementados fisicamente em circuitos eletrônicos e destacando 
exemplos práticos de sua aplicação. 
Por fim, discutimos sobre as aplicações práticas da lógica digital em 
sistemas e dispositivos eletrônicos, como computadores, processadores, 
sistemas de controle e dispositivos de comunicação. Compreendemos como os 
conceitos estudados são aplicados no mundo real, formando a base para a 
criação de circuitos e sistemas complexos. 
 
 
 
18 
REFERÊNCIAS 
CÁCERES NIETO, E. La inteligencia artificial aplicada al Derecho como una 
nueva rama de la teoría jurídica. Anales de la Cátedra Francisco Suárez, v. 57, 
p. 63-89, 2023. Doi: https://doi.org/10.30827/acfs.v57i.26281. 
DESCOVI, E. D. P.; CEOLIN, S. R.; PEREIRA, R. T. et al. Controle e 
monitoramento remoto da climatização para salas de telecomunicações. Revista 
Contemporânea, v. 3, n. 8, p. 10.478-10.505, 2023. Doi: 
https://doi.org/10.56083/RCV3N8-031. 
GUERRA, A. R. Raciocínio lógico computacional: fundamentos e aplicações. 
Curitiba: Editora Intersaberes, 2023. 
MUNIZ JUNIOR, R. O. História da matemática e tecnologias digitais: 
biografias e contextos. 2021. Monografia (Licenciatura em Matemática) – 
Universidade Federal de Uberlândia, Ituiutaba, MG, 2021. 
SILVA, M. V. Conceitos de computação I. São Paulo: Editora Senac, 2020. 
 
 
 
 
 
 
 
 
 
 
ARQUITETURA DE 
COMPUTADORES 
AULA 4 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Prof. André Roberto Guerra 
 
 
2 
CONVERSA INICIAL 
Nesta abordagem, exploraremos temas fundamentais relacionados a 
microprocessadores e microprogramação, importantes para a compreensão do 
funcionamento interno dos computadores modernos. Os tópicos que 
abordaremos são apresentados no Quadro 1. 
Quadro 1 – Tópicos abordados 
 
Fonte: Guerra, 2024. 
Esses temas são fundamentais para entender como os 
microprocessadores funcionam, como a microprogramação otimiza e controla 
operações em sistemas computacionais, e como a memória cache melhora o 
desempenho do sistema. A compreensão desses conceitos é crucial para o 
design e a análise de sistemas de hardware e software avançados. 
Aprofundaremos cada uma dessas áreas e descobriremos como se 
interrelacionam na arquitetura de computadores. 
 
Introdução à Microprogramação: analisaremos os princípios básicos da microprogramação,
uma técnica utilizada para implementar o controle de unidades de processamento, detalhando
como instruções são convertidas em microinstruções que controlam o hardware.
Microprocessadores: estudaremos a arquitetura e o funcionamento dos microprocessadores,
os componentes centrais dos sistemas de computação. Veremos como eles executam
instruções e realizam operações aritméticas e lógicas.
Caminho de Dados: exploraremos o caminho de dados dentro de um processador,
entendendo como os dados são transferidos entre diferentes partes do sistema, como
registradores, ALU (Unidade Lógica e Aritmética) e memória.
Watchdog: discutiremos o conceito de watchdog, um mecanismo de segurança que monitora
a operação do sistema e reinicializa o microprocessador em caso de falhas, garantindo a
confiabilidade e estabilidade do sistema.
Cache de Memória: analisaremos o conceito de cache de memória, uma forma de memória
de alta velocidade que armazena temporariamente os dados mais frequentemente acessados
pelo microprocessador. Exploraremos os diferentes níveis de cache (L1, L2, L3), suas
funções, e como eles melhoram o desempenho do sistema ao reduzir o tempo de acesso à
memória principal.
 
 
3 
TEMA 1 – MICROPROCESSAMENTO 
Desde o desenvolvimento do primeiro computador com programa 
armazenado na memória, por volta de 1950, houve poucas inovações 
significativas nas áreas de arquitetura e organização de computadores. Um dos 
maiores avanços desde o nascimento do computador foi a introdução da 
Unidade de Controle Microprogramada. Proposta por Wilkes em 1951, essa 
inovação foi incorporada pela IBM na linha S/360 em 1964 (Nunes, 2023; 
Miranda, 2009). No nível acima da lógica digital, encontramos o nível de 
microarquitetura, cuja função é implementar o nível Instruction Set Architecture 
(ISA), ou em português Arquitetura do Conjunto de Instruções situadoacima 
dele. 
O projeto do nível de microarquitetura depende da ISA que está sendo 
implementada, bem como das metas de custo e desempenho do compilador. 
Muitas ISAs modernas, especialmente aquelas baseadas no projeto Reduced 
Instruction Set Computing (RISC), possuem instruções simples que 
normalmente podem ser executadas em um único ciclo de relógio (Nunes, 2023; 
Miranda, 2009). Em contrapartida, ISAs mais complexas, como as utilizadas no 
Pentium 4, podem exigir múltiplos ciclos de relógio para executar uma única 
instrução. 
A execução de uma instrução pode requerer a localização de operandos 
na memória, a leitura desses operandos e o armazenamento dos resultados de 
volta na memória. A sequência de operações dentro de uma única instrução 
muitas vezes leva a uma abordagem de controle diferente da adotada para ISAs 
simples (Nunes, 2023; Miranda, 2009). 
Dessa forma, o avanço da Unidade de Controle Microprogramada e a 
evolução das microarquiteturas são fundamentais para a implementação 
eficiente das ISAs, influenciando diretamente o desempenho e o custo dos 
sistemas computacionais. 
TEMA 2 – FAMÍLIA DE COMPUTADORES 
A microprogramação facilita o projeto e a implementação da unidade de 
controle, além de oferecer suporte ao conceito de família de computadores. Além 
da International Business Machines (IBM), a Digital Equipment Corporation 
(DEC), Programmed Data Processor-8 (PDP-8) também introduziu a ideia de 
 
 
4 
uma família de computadores, que desvincula uma arquitetura de máquina de 
suas implementações específicas (Kowaltowski, 1996). Isso permitiu que 
integradores disponibilizassem ao mercado computadores com a mesma 
arquitetura, mas com diferentes níveis de desempenho e preços. 
Nos primeiros computadores digitais da década de 1940, havia apenas 
dois níveis: o nível ISA, no qual toda a programação era realizada, e o nível 
lógico digital, que executava esses programas. Os circuitos do nível lógico digital 
eram complicados, difíceis de entender e montar, e muitas vezes pouco 
confiáveis (Velloso, 2014). 
Maurice Wilkes, pesquisador da Universidade de Cambridge, projetou 
uma máquina de três níveis para simplificar drasticamente o hardware. Essa 
máquina incluía um interpretador embutido e imutável (o microprograma) cuja 
função era executar programas de nível ISA por meio de interpretação. Ao focar 
na execução de microprogramas, que possuíam um conjunto limitado de 
instruções, em vez de programas de nível ISA, com conjuntos de instruções 
muito maiores, o número de circuitos eletrônicos necessários foi 
significativamente reduzido (Kowaltowski, 1996). 
Na época, os circuitos eletrônicos eram compostos por válvulas 
eletrônicas, e essa simplificação prometia reduzir o número de válvulas, 
aumentando a confiabilidade dos sistemas (ou seja, reduzindo o número de 
falhas diárias). Poucas dessas máquinas de três níveis foram construídas na 
década de 1950, mas a ideia ganhou popularidade na década de 1960. Por volta 
de 1970, a abordagem de interpretar o nível ISA por meio de um microprograma, 
em vez de diretamente por meios eletrônicos, tornou-se dominante, sendo 
adotada pelas principais máquinas da época (Kowaltowski, 1996). 
TEMA 3 – MICROPROGRAMAÇÃO INCLUÍDA NO HARDWARE 
Durante os anos dourados da microprogramação, nas décadas de 1960 e 
1970, os microprogramas cresceram em tamanho e complexidade. Esse 
aumento de complexidade, contudo, resultou em uma redução da velocidade de 
execução das instruções. No entanto, alguns pesquisadores perceberam que, 
eliminando os microprogramas e reduzindo drasticamente o conjunto de 
instruções, as máquinas poderiam se tornar mais rápidas (Velloso, 2014). 
 
 
5 
A execução direta das instruções restantes, por meio do controle do 
caminho de dados por hardware, marcou um retorno ao projeto de computadores 
como eram antes da invenção da microprogramação por Wilkes. 
Quadro 2 – Comparação entre Microprogramação e Controle por Hardware 
Característica Microprogramação Controle por Hardware 
Tamanho do Conjunto de 
Instruções 
Grande Reduzido 
Complexidade dos 
Microprogramas 
Alta Baixa 
Velocidade de Execução Tendência a ser mais lenta Mais rápida 
Flexibilidade Alta Baixa 
Exemplo de Uso IBM S/360 RISC (Reduced Instruction 
Set Computing) 
Fonte: Elaborado por Guerra, 2024, com base de Velloso, 2014. 
O Quadro 2 compara as características principais da microprogramação 
e do controle por hardware. A microprogramação possui um conjunto de 
instruções maior e mais complexo, o que pode levar a uma execução mais lenta. 
Em contrapartida, o controle por hardware tem um conjunto de instruções 
reduzido e mais simples, permitindo uma execução mais rápida. A flexibilidade 
é maior na microprogramação, enquanto o controle por hardware é mais eficiente 
em termos de velocidade (Velloso, 2014). A IBM S/360 é um exemplo de sistema 
que utilizava microprogramação, enquanto arquiteturas RISC representam o 
controle por hardware. 
3.1 O retorno ao controle por hardware 
Ao eliminar a microprogramação e reduzir o conjunto de instruções, foi 
possível implementar arquiteturas mais eficientes. Essa abordagem é 
exemplificada pelos projetos RISC, em que as instruções simples são 
executadas diretamente pelo hardware em um único ciclo de relógio. 
 
 
 
6 
Quadro 3 – Vantagens do controle por hardware na arquitetura RISC 
Vantagem Descrição 
Simplicidade Menor complexidade do conjunto de 
instruções 
Eficiência Instruções executadas diretamente pelo 
hardware 
Velocidade Execução rápida das instruções em um 
único ciclo de relógio 
Redução de componentes eletrônicos Menos circuitos necessários para a 
execução das instruções 
Fonte: Elaborado por Guerra, 2024, com base de Velloso, 2014. 
O quadro apresenta as vantagens do controle por hardware na arquitetura 
RISC. A simplicidade é alcançada por meio de um conjunto de instruções menos 
complexo. A eficiência e a velocidade são aperfeiçoadas porque as instruções 
são executadas diretamente pelo hardware em um único ciclo de relógio. A 
redução de componentes eletrônicos significa que menos circuitos são 
necessários, o que pode aumentar a confiabilidade e reduzir custos. 
3.2 A roda continua girando 
Mesmo com o retorno ao controle por hardware, a evolução na arquitetura 
de computadores não parou. Com a popularização da linguagem de 
programação Java, surgiu uma nova abordagem. Programas Java são 
geralmente compilados para uma linguagem intermediária chamada bytecode 
Java, que é então interpretada ou compilada Just-In-Time (JIT) para execução. 
 
 
 
7 
Quadro 4 – processo de execução de programas Java 
Etapa Descrição 
Compilação Inicial O código Java é compilado para bytecode 
Java 
Interpretação/Compilação JIT O bytecode Java é interpretado ou 
compilado JIT para execução 
Execução O código resultante é executado pela 
máquina virtual Java (JVM) 
Fonte: Elaborado por Guerra, 2024, com base de Velloso, 2014. 
O quadro detalha o processo de execução de programas Java. 
Primeiramente, o código Java é compilado para bytecode Java, uma linguagem 
intermediária. Em seguida, o bytecode é interpretado ou compilado JIT para 
execução. Finalmente, o código resultante é executado pela máquina virtual 
Java (JVM). Essa abordagem híbrida oferece um equilíbrio entre desempenho e 
portabilidade, permitindo que programas Java sejam executados em diversas 
plataformas com eficiência. 
TEMA 4 – MICROPROCESSADOR 
De acordo com o dicionário Michaelis, um microprocessador é um 
conjunto de elementos da unidade central de processamento, normalmente 
contidos em um único chip de circuito integrado. Esse chip, quando combinado 
com outros chips de memória e de entrada/saída, constitui um microcomputador. 
4.1 O Ciclo do Processador 
A operação de um microprocessador, como o 8088, consiste em executar 
instruções sequencialmente. A execução de uma única instrução podeser 
subdividida nas etapas do Quadro 5. 
 
 
 
8 
Quadro 5 – Etapas do ciclo de execução de instruções em um microprocessador 
Busca da Instrução A instrução é buscada na memória no 
segmento de código utilizando o contador de 
programa (PC) 
Incremento do Contador de Programa O contador de programa é incrementado para 
apontar para a próxima instrução 
Decodificação da Instrução A instrução buscada é decodificada 
Busca de Dados Os dados necessários são buscados na 
memória e/ou nos registradores do 
processador 
Execução da Instrução A instrução é executada 
Armazenamento dos Resultados Os resultados da instrução são armazenados 
na memória e/ou nos registradores 
Reinício do Ciclo O processo retorna à Etapa 1 para iniciar a 
próxima instrução. 
Fonte: Elaborado por Guerra, 2024, com base em Meneses; Henriques, 2022. 
A execução de uma instrução é semelhante à execução de um 
microprograma, um programa muito pequeno utilizado por diversos fabricantes 
de microprocessadores. 
4.2 Watchdog e confiabilidade dos microcontroladores 
Um aspecto importante na operação de microcontroladores é a 
continuidade da execução dos programas. Em ambientes industriais, 
interferências podem fazer com que o microcontrolador pare de executar o 
programa ou execute incorretamente. Enquanto um computador pode ser 
resetado manualmente para resolver esses problemas, os microcontroladores 
não possuem um botão de reset (Soares, 2021). 
Para resolver essa questão, é introduzido um bloco chamado watchdog 
(cão de guarda). Esse bloco é um contador contínuo que é "zerado" sempre que 
o programa é executado corretamente. Quando o programa trava, o contador 
não é reiniciado, e, ao atingir seu valor máximo, ele resetará o microcontrolador, 
permitindo a execução correta do programa novamente. Esse processo aumenta 
a confiabilidade na execução de qualquer programa sem a necessidade de 
intervenção do usuário (Soares, 2021). 
 
 
9 
Além disso, ruídos em sistemas digitais podem levar a comportamentos 
inadequados. Um circuito utilizado para reconduzir o sistema ao seu 
comportamento normal é o watchdog timer (Soares, 2021). O sistema digital gera 
periodicamente um sinal que reinicializa o contador. Caso o contador não seja 
reinicializado, ele gera um sinal para resetar o sistema, reestabelecendo o 
controle. 
Quadro 6 – Funcionamento do Watchdog Timer 
Componente Função 
Contador Contínuo Zerado sempre que o programa é executado 
corretamente. 
Reset do Microcontrolador Aciona um reset quando o contador atinge o 
valor máximo após uma falha no programa. 
Fonte: Elaborado por Guerra, 2024, com base em Soares, 2021. 
O quadro descreve os componentes e o funcionamento do watchdog 
timer, que aumenta a confiabilidade dos sistemas microcontroladores, 
prevenindo falhas de execução. 
TEMA 5 – CACHE DE MEMÓRIA 
A cache de memória é um componente crucial na arquitetura de 
computadores, projetado para aumentar a velocidade de acesso aos dados e 
melhorar o desempenho geral do sistema. Funciona como uma memória 
intermediária de alta velocidade, localizada entre a Unidade Central de 
Processamento (CPU) e a memória principal (RAM), armazenando 
temporariamente os dados e instruções mais frequentemente utilizados pelo 
processador (Carvalho; Martins, 2004). Este mecanismo reduz a latência e 
aumenta a eficiência do processamento, pois a CPU pode acessar os dados da 
cache muito mais rapidamente do que da memória principal. 
5.1 Funcionamento da cache de memória 
A cache de memória opera com base no princípio da localidade, que se 
divide em dois tipos: localidade temporal e localidade espacial. A localidade 
temporal refere-se ao conceito de que dados acessados recentemente são 
propensos a serem acessados novamente em um futuro próximo. Já a localidade 
 
 
10 
espacial sugere que dados localizados próximos uns dos outros na memória têm 
maior probabilidade de serem acessados em sequência (Damasceno, 2016). A 
cache é organizada em níveis hierárquicos, geralmente denominados L1, L2 e 
L3. 
Figura 1 – Hierarquia de Memória Cache: Níveis L1, L2 e L3 
 
Fonte: Elaborado por Guerra, 2024, com base em Damasceno, 2016. 
A estrutura hierárquica da memória cache desempenha papel categórico 
na eficiência do processamento de dados. Cada nível de cache é otimizado para 
um equilíbrio entre velocidade e capacidade, garantindo que o processador 
tenha acesso rápido aos dados mais frequentemente utilizados (Damasceno, 
2016). Essa hierarquia reduz a frequência com que o processador precisa 
acessar a memória principal, que é mais lenta, melhorando assim o desempenho 
geral do sistema. 
5.2 Estrutura e políticas de cache 
A estrutura da cache inclui várias políticas de gerenciamento que 
determinam como os dados são armazenados, acessados e substituídos. As 
principais políticas estão apresentadas no Quadro 7. 
 
Cache L3: É a maior e mais lenta entre os três níveis, mas ainda mais rápida que a
memória principal. Geralmente, é compartilhada entre todos os núcleos do
processador, proporcionando uma camada adicional de cache para melhorar o
desempenho.
Cache L2: Tem maior capacidade que a L1, mas é um pouco mais lenta. Pode ser
dedicada a cada núcleo do processador ou compartilhada entre múltiplos núcleos,
dependendo da arquitetura.
Cache L1: É a mais rápida e menor em capacidade, localizada diretamente no núcleo
do processador. Ela é dividida em cache de instrução e cache de dados, otimizando
ainda mais o acesso rápido a ambos os tipos de informações.
 
 
11 
Quadro 7 – Políticas de cache de memória: mapeamento, escrita e substituição 
Política de 
Mapeamento 
Define como os dados da memória principal são mapeados para a 
cache. Existem três tipos de mapeamento: direto, associativo e 
associativo por conjunto. No mapeamento direto, cada bloco de 
memória principal mapeia para uma única linha na cache. No 
mapeamento associativo, qualquer bloco pode ser armazenado em 
qualquer linha da cache. O mapeamento associativo por conjunto é 
uma combinação dos dois, no qual a cache é dividida em conjuntos e 
cada bloco mapeia para qualquer linha dentro de um conjunto 
específico. 
Política de Escrita Determina como as operações de escrita são tratadas pela cache. 
Existem duas abordagens principais: write-through e write-back. Na 
política write-through, os dados são escritos simultaneamente na 
cache e na memória principal, garantindo a consistência imediata. Na 
política write-back, os dados são escritos na cache e atualizados na 
memória principal apenas quando o bloco é substituído, o que melhora 
a eficiência, mas requer uma política de controle de coerência para 
garantir a consistência dos dados. 
Política de 
Substituição 
Define quais dados são removidos da cache quando novos dados 
precisam ser carregados. A política mais comum é a LRU (Least 
Recently Used), que remove o bloco que não foi usado há mais tempo. 
Outras políticas incluem FIFO (First-In, First-Out) e Random, que 
seleciona um bloco aleatoriamente para substituição. 
Fonte: Elaborado por Guerra, 2024, com base em Xavier; Rodrigues; Lima Júnior, 2004. 
As políticas de cache de memória – mapeamento, escrita e substituição – 
são fundamentais para o desempenho eficiente dos sistemas de computação. O 
mapeamento eficiente dos dados, as estratégias de escrita que garantem a 
consistência e as políticas de substituição que otimizam o uso da cache são 
essenciais para maximizar a velocidade de acesso aos dados e a eficiência geral 
do sistema (Xavier; Rodrigues; Lima Júnior, 2004). A escolha das políticas 
adequadas depende das características específicas da aplicação e da 
arquitetura do sistema, sendo um componente vital no design de processadores 
e sistemas de memória. 
5.3 Benefícios e desafios da cache de memória 
A cache de memória proporciona diversos benefícios, apresentados a 
seguir. 
 
 
 
12 
Quadro 8 – Benefícios da cache de memória 
Aumentoda Velocidade de Acesso Reduz significativamente o tempo de acesso 
aos dados, permitindo que a CPU processe 
informações mais rapidamente. 
Melhoria do Desempenho do Sistema Ao reduzir a latência de acesso à memória, a 
cache melhora o desempenho geral do 
sistema, especialmente em operações que 
envolvem processamento intensivo de dados. 
Eficiência Energética Ao minimizar a necessidade de acessos 
frequentes à memória principal, a cache 
contribui para a redução do consumo de 
energia. 
Fonte: Elaborado por Guerra, com base em Araújo, 2003. 
No entanto, a implementação da cache de memória também apresenta 
desafios. 
Quadro 9 – Desafios da implementação da cache de memória 
Custo A memória cache é mais cara de fabricar devido à sua alta 
velocidade e complexidade. 
Complexidade de Projeto Integrar múltiplos níveis de cache e gerenciar políticas de 
mapeamento, escrita e substituição aumenta a complexidade 
do design do processador. 
Coerência de Cache Em sistemas multiprocessadores, manter a coerência dos 
dados na cache é um desafio significativo, exigindo protocolos 
de coerência para garantir que todas as cópias dos dados 
sejam consistentes. 
Fonte: Elaborado por Guerra, 2024, com base em Araújo, 2003. 
Embora a cache de memória ofereça benefícios significativos em termos 
de desempenho e eficiência energética, sua implementação enfrenta desafios 
importantes, como custo elevado, complexidade de projeto e garantia de 
coerência de dados em sistemas multiprocessadores. O contínuo 
desenvolvimento de tecnologias e estratégias de design é essencial para superar 
esses desafios e continuar a melhorar a capacidade dos sistemas 
computacionais de atender às crescentes demandas por processamento rápido 
e confiável. 
 
 
13 
FINALIZANDO 
Durante este estudo, discutimos temas importantes ligados ao universo 
da arquitetura de computadores. Entre eles, destaca-se o microprocessamento, 
que constitui a base operacional de qualquer computador, sendo responsável 
pela execução de instruções e processamento de dados. A família de 
computadores, por sua vez, introduz o conceito de variações dentro de uma 
mesma arquitetura, permitindo que diferentes implementações atendam a 
requisitos específicos de desempenho e custo, enquanto mantêm a 
compatibilidade com um conjunto de instruções definido. 
A microprogramação, incluída no hardware, que representa uma 
abordagem flexível para implementar o controle do processador, utilizando 
microinstruções armazenadas internamente. Essa técnica oferece 
adaptabilidade às mudanças nas necessidades de processamento sem a 
necessidade de alterações físicas no hardware. Já o estudo aprofundado do 
microprocessador envolve a compreensão de sua arquitetura interna, ciclos de 
instrução, tipos de registradores e a interação entre a unidade de controle e o 
caminho de dados, fundamentais para otimização do desempenho 
computacional. 
E, finalmente, o cache de memória e a hierarquia de memória, agindo 
como uma camada de armazenamento rápido e temporário entre o processador 
e a memória principal. 
 
 
 
14 
REFERÊNCIAS 
ARAÚJO, R. B. Computação Ubíqua: Princípios, Tecnologias e Desafios. In: 
Simpósio Brasileiro de Redes de Computadores. (Org.). Computação Ubíqua: 
Princípios, Tecnologias e Desafios. 1 ed. Natal: 2003. p. 45 - 115. 
CARVALHO, M. B.; MARTINS, C. A. P. S. Arquitetura de Cache com 
Associatividade Reconfigurável. In: SIMPÓSIO EM SISTEMAS 
COMPUTACIONAIS DE ALTO DESEMPENHO (SSCAD). Anais... Porto Alegre, 
Sociedade Brasileira de Computação, p. 50-57, 2004. 
DAMASCENO, A. L. O impacto da hierarquia de memória sobre a arquitetura 
IPNoSys. Dissertação (Mestrado em Ciência da Computação) – Universidade 
do Estado do Rio Grande do Norte, Mossoró/RN, 2016. 
KOWALTOWSKI, T. Von Neumann: suas contribuições à Computação. Estudos 
Avançados, v. 10, p. 237-260, 1996. 
MENESES, R. D.; HENRIQUES, M. A. A. Aplicação de esquemas de assinatura 
digital pós-quântica baseada em reticulados para hardwares restritos. In: XIV 
ENCONTRO DE ALUNOS E DOCENTES DO DCA/FEEC/UNICAMP (EADCA), 
2022. Anais... Universidade de Campinas (UNICAMP). Campinas, 25-26 ago. 
2022. 
MIRANDA, R. J. C. Desenvolvimento de um programa didático 
computacional destinado à geração de códigos de comando numérico a 
partir de modelos 3D obtidos em plataforma CAD considerando a técnica 
prototipagem rápida. Dissertação (Mestrado em Engenharia Mecânica) – 
Universidade Federal de Minas Gerais, Belo Horizonte, 2009. 
NUNES, G. R. Um estudo sobre a geração de trajetórias retilínea e circular 
para um robô móvel a rodas com tração-diferencial e configuração carro 
com uso restrito de sensores propriocepetivos (encoders). Monografia 
(Bacharelado em Engenharia Elétrica) – Instituto Federal do Espirito Santo, 
Vitória/ES, 2023. 
SOARES, S. N.; WAGNER, F. R. Uma Análise de Ferramentas de Software para 
o Ensino de Organização e Arquitetura de Computadores. In: INTERNATIONAL 
CONFERENCE ON ENGINEERING AND COMPUTER EDUCATION, 2000. 
Anais... São Paulo: [s.n.], 2000. 
 
 
15 
SOARES, M. F. Estudo dos efeitos combinados da interferência 
eletromagnética e envelhecimento na confiabilidade do microcontrolador 
Cortex-M4. Dissertação (Mestrado em Engenharia Elétrica) – Pontifícia 
Universidade Católica do Rio Grande do Sul, Porto Alegre, 2021. 
VELLOSO, F. Informática: conceitos básicos. Elsevier Brasil, 2014. 
XAVIER, M. A. S.; RODRIGUES, J. C.; LIMA JÚNIOR, O. A. Estudo 
Comparativo de Simuladores de Memória Cache. 2004. Disponível em: 
. Acesso em: 26 jul. 2024. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ARQUITETURA DE 
COMPUTADORES 
AULA 6 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Prof. André Roberto Guerra 
 
 
2 
CONVERSA INICIAL 
Nesta etapa, abordaremos assuntos essenciais para compreender como 
o paralelismo melhora o desempenho e a eficiência dos sistemas 
computacionais. 
Figura 1 – Tópicos a serem abordados 
 
A partir desses tópicos, podemos ampliar o nosso olhar e conhecimento 
referente às arquiteturas paralelas e seu impacto na computação moderna. 
 
 
Visão Geral do Paralelismo
Abordadremos o paralelismo, discutindo os princípios fundamentais que permitem a
execução simultânea de múltiplas instruções. O paralelismo é a chave para aumentar a
capacidade de processamento dos computadores, permitindo que diversas operações sejam
realizadas ao mesmo tempo. Exploraremos como esse conceito se aplica tanto ao nível de
hardware quanto ao nível de software, destacando suas vantagens e desafios.
Paralelismo no chip
Examinaremos o paralelismo no chip, também conhecido como paralelismo de nível de
instrução (ILP) e como os processadores modernos utilizam técnicas como a execução fora
de ordem, a previsão de desvios e a superescalaridade para maximizar o uso de seus
recursos internos. E a importância dos pipelines de execução e como contribuem para a
eficiência do processamento.
Coprocessadores
Discutiremos os processadores especializados que trabalham em conjunto com a CPU
principal para acelerar tarefas específicas, como cálculos matemáticos complexos ou
processamento gráfico. E como a integração de coprocessadores pode melhorar
significativamente o desempenho do sistema para determinadas aplicações.
Multiprocessadores versus multicomputadores
A comparação entre multiprocessadores e multicomputadores será nosso próximo foco.
Multiprocessadores são sistemas com múltiplas CPUs que compartilham a mesma memória
física, enquanto multicomputadores consistem em múltiplos computadores interconectados
que comunicam entre si através de uma rede. Analisaremos as vantagens e desvantagens
de cada abordagem, bem como suas aplicações típicas.
Escalonamento
O escalonamento é um aspectocrucial em arquiteturas paralelas, referindo-se à maneira
como as tarefas são distribuídas entre os processadores disponíveis. Abordaremos as
diferentes estratégias de escalonamento, como escalonamento estático e dinâmico, e
discutiremos como elas afetam a eficiência e a utilização dos recursos do sistema.
Desempenho
Por fim, discutiremos o desempenho das arquiteturas paralelas, a medir e avaliar o
desempenho de sistemas paralelos, considerando métricas como speedup, eficiência e
escalabilidade. Além dos fatores que limitam o desempenho e como superá-los através de
técnicas avançadas de otimização.
 
 
3 
TEMA 1 – PARALELISMO 
Embora os computadores continuem a evoluir em velocidade, as 
exigências impostas a eles crescem igualmente rápido. Astrônomos desejam 
simular a história completa do universo, desde o big bang até o seu final. 
Cientistas farmacêuticos aspiram projetar medicamentos personalizados para 
doenças específicas sem a necessidade de testes extensivos em animais. 
Engenheiros de aeronaves poderiam criar produtos mais eficientes no consumo 
de combustível usando simulações computacionais detalhadas em vez de 
protótipos físicos. Para muitos usuários em ciência, engenharia e indústria, 
qualquer capacidade de computação será insuficiente (Galante, 2024). 
Diante desses desafios crescentes, os arquitetos de computadores estão 
cada vez mais adotando sistemas paralelos. Enquanto pode não ser viável 
construir uma máquina com uma única Unidade Central de Processamento 
(CPU) com um ciclo de tempo de 0,001 nanossegundos, é possível e eficaz 
construir sistemas com milhares de CPUs, cada uma com um ciclo de tempo de 
1 nanossegundo. Embora mais lentas individualmente, a capacidade total de 
processamento desses sistemas paralelos pode ser equivalente ou até superior, 
oferecendo esperança para enfrentar problemas computacionais complexos 
(Tanenbaum, 2001; Tanenbaum; Bos, 2024). 
O paralelismo pode ser implementado em diversos níveis. No nível mais 
básico, ele pode ser incorporado ao chip da CPU através de pipelines e designs 
superescalares com múltiplas unidades funcionais. Além disso, instruções de 
comprimento variável podem permitir paralelismo implícito. CPUs também 
podem ser projetadas com recursos especiais para manipular múltiplos threads 
simultaneamente. Juntas, essas técnicas podem proporcionar ganhos 
significativos de desempenho, potencialmente até dez vezes superiores em 
comparação com sistemas puramente sequenciais (Silva; Nunes; Guardia, 2024; 
Tanenbaum, 2001). 
Em um nível mais avançado, placas adicionais com CPUs especializadas 
podem ser adicionadas a um sistema, focadas em funções como processamento 
de rede, multimídia ou criptografia. Essas CPUs especializadas podem aumentar 
o desempenho em até cinco a dez vezes em suas áreas específicas de atuação. 
No entanto, para alcançar ganhos de desempenho de ordens de magnitude 
como 100, 1000 ou 1 milhão, é necessário criar e integrar eficientemente 
 
 
4 
múltiplas CPUs em grandes multiprocessadores ou multicomputadores (clusters 
de computadores) (Tanenbaum, 2001; Tanenbaum; BOS, 2024). 
Esses sistemas complexos enfrentam desafios significativos de 
coordenação e comunicação entre processadores, que exigem soluções 
robustas para garantir eficiência. Além dos clusters tradicionais, grids de 
computação começam a surgir, permitindo a colaboração de organizações 
inteiras através da internet. Esses sistemas distribuídos têm potencial para 
expandir significativamente as capacidades computacionais disponíveis, 
representando uma visão promissora para o futuro da computação. 
A complexidade do paralelismo, desde acoplamentos fortes até 
acoplamentos fracos, é um campo de pesquisa intensivo e vital, abrangendo 
desde a otimização de desempenho em sistemas locais até a coordenação de 
enormes redes de computadores globalmente distribuídas. 
TEMA 2 – PARALELISMO NO CHIP E PARALELISMO NO NÍVEL DE 
INSTRUÇÃO 
Importa salientar que o paralelismo é dividido em várias categorias, as 
principais podem ser destacadas nas tabelas 1 e 2, juntamente com suas 
características. 
Tabela 1 – Paralelismo no chip 
TIPO DE 
PARALELISMO 
DESCRIÇÃO 
Paralelismo no 
nível da instrução 
Consiste em emitir múltiplas instruções por ciclo de clock, 
maximizando o uso das unidades funcionais disponíveis. 
Multithreading Permite que múltiplos threads executem 
simultaneamente na mesma CPU, aproveitando 
períodos de latência ou espera de outras operações. 
Múltiplas CPUs no 
chip 
Incorpora mais de uma CPU no mesmo chip, permitindo 
que cada processador execute tarefas independentes de 
forma simultânea. 
Fonte: Guerra, 2024. 
Essas técnicas de paralelismo no chip são essenciais para atender às 
crescentes demandas por desempenho computacional em áreas como 
simulação, processamento de dados em tempo real e computação de alto 
 
 
5 
desempenho. Cada uma contribui para otimizar o uso dos recursos do 
processador, proporcionando ganhos significativos em eficiência e velocidade de 
processamento (Tanenbaum; Bos, 2024). 
A figura 2 destaca o paralelismo no nível da instrução, sendo uma técnica 
fundamental utilizada para aumentar a eficiência dos processadores modernos. 
Além de permitir que múltiplas instruções sejam emitidas e executadas em um 
único ciclo de clock, maximizando o uso das unidades funcionais do 
processador. 
Essa abordagem é implementada de duas maneiras principais: 
processadores superescalares e processadores de Very Long Instruction Word 
(VLIW) ou, em português, Palavra de Instrução Muito Longa (Silva, 2020). A 
figura a seguir apresenta as características e diferenças dessas duas técnicas 
de paralelismo no nível da instrução. 
Figura 2 – Paralelismo no nível da instrução 
 
Fonte: Guerra, 2024. 
Os processadores superescalares e VLIW exemplificam como o 
paralelismo no nível da instrução pode ser implementado de maneiras distintas, 
mas complementares. Os processadores superescalares dependem do 
hardware para emitir múltiplas instruções de forma dinâmica, adaptando-se às 
TIPO DE CPU
Processadores superescalares
Capazes de emitir múltiplas instruções para unidades de execução em
um único ciclo de clock, variando de duas a seis instruções
dependendo do design e circunstâncias.
DESCRIÇÃO
Processadores VLIW
Utilizam Palavras de Instrução Muito Longas que contêm múltiplos
opcodes e operandos, permitindo execução simultânea de várias
operações em diferentes unidades funcionais.
 
 
6 
condições do sistema e ao estado das unidades funcionais. Essa flexibilidade 
permite uma utilização eficiente dos recursos disponíveis, mesmo que nem todas 
as instruções possam ser emitidas simultaneamente (Lopes; Pereira, 2020). 
Por outro lado, os processadores VLIW adotam uma abordagem mais 
estática, onde o compilador prepara grupos de instruções que podem ser 
executados em paralelo, garantindo que todas as unidades funcionais sejam 
utilizadas de maneira otimizada. Embora essa técnica possa resultar em 
instruções mais longas e complexas, ajuda a eliminar a necessidade de lógica 
de emissão dinâmica no hardware, simplificando o design do processador 
(Lopes; Pereira, 2020). 
Ambas as abordagens possuem características distintas, e a escolha 
entre elas depende das necessidades específicas da aplicação e das 
características do sistema (Lopes; Pereira, 2020). O uso eficaz do paralelismo 
no nível da instrução é crucial para alcançar altos níveis de desempenho nos 
processadores modernos, permitindo que eles atendam às crescentes 
demandas de computação em diversas áreas, desde simulações científicas até 
processamento de multimídia. 
TEMA 3 – COMPUTAÇÃO DE CLUSTER 
O computador de cluster é outro tipo de multicomputador, que geralmente, 
é composto por centenas ou até milhares de PCs ou estações de trabalho 
conectadas através de uma rede. A distinção entre um cluster e um 
multicomputador é semelhanteà diferença entre um mainframe e um PC: ambos 
possuem CPU, memória RAM, sistema operacional e outros componentes. No 
entanto, os componentes do mainframe são mais rápidos e robustos (exceto 
talvez o sistema operacional) (Azevedo Dias; Araújo, 2023). 
Em termos qualitativos, eles são diferentes e são utilizados e gerenciados 
de maneiras distintas. Essa mesma distinção se aplica aos multicomputadores 
em relação aos clusters (Azevedo Dias; Araújo, 2023). Existem diversos tipos de 
clusters, mas os dois principais são os clusters centralizados e descentralizados. 
 
 
 
7 
Figura 3 – Aspectos dos os clusters centralizados e clusters descentralizados 
 
É válido acrescentar os clusters centralizados, normalmente, as máquinas 
são homogêneas e não possuem periféricos além das placas de rede e, 
possivelmente, discos rígidos (Azevedo Dias; Araújo, 2023; Aldana; Buitrago; 
Gutiérrez, 2020). 
Já os clusters descentralizados são geralmente conectados por uma LAN 
e costumam ser heterogêneos, com um conjunto completo de periféricos. No 
entanto, ter um cluster com centenas de mouses não é muito mais útil do que ter 
um cluster sem nenhum mouse (Azevedo Dias; Araújo, 2023; Aldana; Buitrago; 
Gutiérrez, 2020). 
O mais importante é que muitos desses computadores têm proprietários 
que são emocionalmente ligados às suas máquinas e podem não gostar da ideia 
de um astrônomo usar seus computadores para simular o big bang. Utilizar 
estações de trabalho ociosas para formar um cluster implica na necessidade de 
um mecanismo para migrar tarefas quando os donos dessas máquinas 
precisarem usá-las. Essa migração é possível, mas aumenta a complexidade do 
software necessário para gerenciar o cluster (Aldana; Buitrago; Gutiérrez, 2020). 
Em geral, os clusters são pequenos conjuntos com cerca de 500 PCs. No 
entanto, é possível construir clusters muito grandes utilizando PCs comuns, 
como faz o Google. Além disso, clusters de grande escala podem ser utilizados 
em diversas áreas, desde pesquisas científicas complexas até a execução de 
• Consistem em estações de trabalho ou PCs
agrupados em uma grande estante dentro de
uma sala. Muitas vezes, esses computadores
são empacotados de maneira mais compacta
do que o normal para reduzir o espaço físico e
o comprimento dos cabos.
Clusters 
centralizados 
• São formados por estações de trabalho ou
PCs distribuídos por um prédio ou campus.
Muitos desses computadores ficam ociosos
durante várias horas do dia, especialmente à
noite.
Clusters 
descentralizados 
 
 
8 
grandes aplicações empresariais, devido à sua capacidade de processamento 
distribuído e flexibilidade. 
TEMA 4 – ESCALONAMENTO 
É um dos conceitos fundamentais na arquitetura de computadores e 
sistemas operacionais, sendo crucial para a eficiência do processamento de 
tarefas (Tanenbaum; Bos, 2024). Escalonamento se refere à metodologia 
utilizada pelo sistema operacional para gerenciar e distribuir o tempo da CPU 
entre os vários processos ou threads que necessitam ser executados. 
Visando corroborar com o exposto anterior e como forma de ampliar a 
linha de raciocínio, a Tabela 3 apresenta a importância do escalonamento. 
Tabela 3 – Importância do escalonamento 
Maximização do uso 
da CPU 
O objetivo primário do escalonamento é garantir que 
a CPU seja utilizada de forma eficiente, minimizando 
o tempo ocioso e maximizando o throughput, que é a 
quantidade de trabalho realizado em um 
determinado período de tempo. 
Justiça e equidade O escalonamento deve garantir que todos os 
processos recebam uma fatia justa do tempo da 
CPU, evitando que algum processo monopolize os 
recursos enquanto outros permanecem em espera. 
Minimização da 
latência 
O tempo de resposta para processos interativos deve 
ser minimizado para garantir uma experiência de 
usuário fluida, enquanto processos em lote devem 
ser concluídos rapidamente para maximizar a 
produtividade. 
Fonte: Tanenbaum; Bos, 2024. 
Compreender os diversos aspectos do escalonamento ajuda a visualizar 
como um sistema operacional pode manter a eficiência e a equidade no uso da 
CPU. A maximização do uso da CPU, a justiça na distribuição de recursos e a 
minimização da latência são pilares fundamentais para proporcionar um 
ambiente de computação robusto e eficiente (Tanenbaum; Bos, 2024). 
 
 
9 
Os algoritmos de escalonamento determinam a ordem e a forma como os 
processos recebem tempo de CPU, impactando diretamente a eficiência e a 
justiça do sistema operacional (Tanenbaum; Bos, 2024). Cada algoritmo tem 
suas próprias características e é adequado para diferentes cenários e tipos de 
carga de trabalho. 
Tabela 4 – Algoritmos de escalonamento 
First-Come, First-Served (FCFS) Os processos são atendidos na ordem 
em que chegam. Simples de 
implementar, mas pode levar ao 
problema de "convoy effect", onde um 
processo longo retarda os outros. 
Shortest Job Next (SJN) Também conhecido como Shortest Job 
First (SJF), prioriza os processos com 
menor tempo de execução estimado. 
Efetivo na redução do tempo de espera 
médio, mas pode causar starvation para 
processos mais longos. 
Round Robin (RR) Cada processo recebe um tempo fixo 
(quantum) para execução em um ciclo. 
Uma técnica justa e eficiente para 
sistemas de tempo compartilhado. 
Priority Scheduling Processos são escalonados com base 
em prioridade. Alta flexibilidade, mas 
pode levar a starvation para processos 
de baixa prioridade se não forem 
implementadas técnicas de 
envelhecimento. 
Multilevel Queue Scheduling Diferentes filas para processos com 
diferentes características (interativos, 
em lote etc.). Combina os benefícios de 
vários algoritmos de escalonamento. 
Fonte: Tanenbaum; Bos, 2024. 
 
 
 
10 
Os diversos algoritmos de escalonamento oferecem soluções para 
diferentes necessidades e desafios operacionais. Desde a simplicidade do First-
Come, First-Served (FCFS) até a complexidade do Multilevel Queue Scheduling, 
a escolha do algoritmo adequado é crucial para atender às demandas 
específicas de cada sistema e garantir a melhor performance possível 
(Tanenbaum; Bos, 2024). 
Além dos algoritmos de escalonamento, existem várias considerações 
importantes que afetam a eficácia e a eficiência do escalonamento de processos 
(Tanenbaum; Bos, 2024). Esses fatores influenciam diretamente a 
responsividade e a performance geral do sistema operacional. 
Tabela 5 – Considerações no escalonamento 
Context Switching Trocar de um processo para outro envolve salvar e 
restaurar estados, o que pode ser custoso em termos 
de desempenho. 
Preemptividade Algoritmos preemptivos permitem a interrupção de 
processos em execução para atender a processos 
mais prioritários, aumentando a responsividade do 
sistema. 
Real-Time Systems Sistemas de tempo real exigem algoritmos de 
escalonamento específicos que garantem o 
cumprimento de prazos rigorosos. 
Fonte: Tanenbaum; Bos, 2024. 
As considerações no escalonamento, como a troca de contexto, a 
preemptividade e as exigências dos sistemas de tempo real são elementos 
cruciais que moldam o comportamento e a eficácia do escalonamento. Entender 
esses fatores é essencial para implementar e otimizar um sistema de 
escalonamento que atenda às necessidades de diferentes tipos de cargas de 
trabalho e condições operacionais (Tanenbaum; Bos, 2024). 
TEMA 5 – DESEMPENHO 
O desempenho de um sistema de computação é uma medida de sua 
eficiência na execução de tarefas, influenciado por diversos fatores desde o 
hardware subjacente até a otimização do software. Entender e aperfeiçoar o 
 
 
11 
desempenho é fundamental para maximizar a eficácia dos sistemas 
computacionais (Silva, 2023). 
Além disso, é influenciado por vários fatores, sendo a arquitetura da CPU 
um dos mais importantes. A estrutura interna do processador, incluindo sua 
frequência de clock, o número de núcleos e a capacidade de execução de 
instruçõesparalelas impacta significativamente a eficiência do sistema. Além 
disso, a velocidade e a eficiência da memória RAM, assim como a hierarquia de 
caches, determinam a rapidez com que os dados são acessados e processados 
pela CPU (Silva, 2023). 
Outro fator crítico é o desempenho das operações de entrada e saída 
(I/O), que envolve discos rígidos, SSDs e dispositivos de rede. Esses 
componentes podem se tornar gargalos para muitas aplicações. Técnicas como 
o pipeline de instruções e a arquitetura superescalar, que permitem que múltiplas 
instruções sejam processadas simultaneamente, também são essenciais para 
aumentar a eficiência da execução (Silva, 2023; Lima, 2019). 
De acordo com Silva (2023) e Lima (2019), existem várias métricas para 
avaliar o desempenho de um sistema. O throughput, que é a quantidade de 
trabalho que um sistema pode processar em um determinado período, é de alta 
prioridade para sistemas de alto desempenho. A latência, ou o tempo total que 
um sistema leva para responder a uma solicitação, é crucial para sistemas 
interativos e de tempo real. O tempo de execução, que é a duração total que um 
programa leva para ser executado desde o início até a conclusão, serve como 
um indicador direto da eficiência de processamento. 
A utilização dos recursos, que mede quanto os recursos do sistema (CPU, 
memória, I/O) estão sendo utilizados durante a operação, também é uma medida 
importante, pois a utilização eficiente dos recursos é um sinal de bom 
desempenho. Para melhorar o desempenho, várias técnicas podem ser 
empregadas. A otimização de código envolve melhorar o código-fonte do 
software para reduzir o uso de recursos e aumentar a velocidade de execução. 
O uso de paralelismo, por meio de técnicas como multithreading e 
multiprocessing, permite distribuir a carga de trabalho entre múltiplas unidades 
de processamento (Schmalfuss, 2020; Lopes, 2021; Lima, 2023; Lima, 2019). 
A substituição de algoritmos ineficientes por outros mais rápidos e que 
consomem menos recursos também é uma prática comum para aprimorar o 
desempenho. Além disso, a atualização de componentes de hardware, como 
 
 
12 
CPU, memória e dispositivos de armazenamento, pode melhorar a capacidade 
e a velocidade do sistema (Schmalfuss, 2020; Lopes, 2021; Lima, 2023; Lima, 
2019). Por fim, implementar políticas de gerenciamento de recursos que 
garantam a alocação eficiente e a manutenção do desempenho ideal sob 
diferentes cargas de trabalho é essencial para a eficiência global do sistema. 
FINALIZANDO 
Os tópicos abordados sobre arquitetura de computadores destacam a 
importância de diversas técnicas e estratégias para melhorar o desempenho dos 
sistemas computacionais modernos. Vimos que o paralelismo é uma técnica 
essencial que permite a execução simultânea de múltiplas tarefas, aproveitando 
a capacidade de múltiplos processadores ou núcleos de execução para acelerar 
o processamento de dados e aumentar a eficiência dos programas. Dentro desse 
contexto, o paralelismo no chip, ou de nível de thread, utiliza múltiplos núcleos 
em um único processador para executar diferentes threads simultaneamente. 
Por outro lado, o paralelismo no nível de instrução (ILP) permite que um 
processador execute várias instruções ao mesmo tempo, utilizando técnicas 
como pipelining e execução fora de ordem para aumentar a velocidade de 
processamento. Discutimos ainda que a computação de cluster envolve a 
utilização de múltiplos computadores interconectados para funcionar como um 
sistema unificado, permitindo o processamento distribuído de grandes volumes 
de dados. Essa abordagem é particularmente eficaz em aplicações complexas, 
como simulações científicas e análise de big data, melhorando tanto o 
desempenho quanto a capacidade de processamento. 
Em relação ao escalonamento, problematizamos se tratar de uma técnica 
crítica de gerenciamento de tarefas em sistemas operacionais, determinando a 
ordem e o tempo de execução dos processos. Um escalonamento eficiente 
maximiza a utilização dos recursos do sistema, minimiza o tempo de espera e 
garante um desempenho consistente, sendo especialmente importante em 
ambientes de computação paralela. 
Por fim, discutimos sobre o desempenho, sendo este uma medida crucial 
na avaliação dos sistemas computacionais, referindo-se à rapidez e eficiência na 
execução de tarefas. Fatores como a arquitetura do processador, a capacidade 
da memória e as técnicas de paralelismo e escalonamento influenciam 
diretamente o desempenho global de um sistema. Além disso, a análise e a 
 
 
13 
otimização do desempenho são essenciais para garantir que os sistemas 
atendam de forma eficaz às demandas de processamento. 
 
 
 
14 
REFERÊNCIAS 
ALDANA, M. J.; BUITRAGO, J. A.; GUTIÉRREZ, J. E. Avaliação de clusters 
baseados em sistemas em um chip para a computação de alto desempenho: 
uma revisão. Revista Ingenierías Universidad de Medellín, v. 19, n. 37, p. 75-
92, 2020. 
AZEVEDO DIAS, H. D.; ARAÚJO, J. S. Programação e Computação em Cluster: 
Um Relato de Experiência na Educação Profissional Técnica em Informática. 
In: ANAIS do XXIX Workshop de Informática na Escola. SBC, p. 182-191. 2023. 
LIMA, E. C. Otimizando a execução de aplicações paralelas em ambiente de 
nuvem heterogênea. Dissertação (Mestrado em Engenharia Elétrica) – 
Universidade Federal do Pampa, Alegrete/RS, 2023. 
LIMA, C. A. M. Organização e Arquitetura de Computadores II. 2019. 
Disponível em: 
. Acesso em: 3 jul. 2024. 
LOPES, R. A. S. Masa-StarPU: estratégia com múltiplas políticas de 
escalonamento de tarefas para alinhamento de sequências com pruning. 
Dissertação (Mestrado em Informática) – Universidade de Brasília, Brasília/DF, 
2021. 
LOPES, A. S. B.; PEREIRA, M. M. Aceleradores Reconfiguráveis no Projeto 
Multicore: uma análise de custo versus benefício. HOLOS, v. 6, p. 1-20, 2020. 
SCHMALFUSS, M. F. Uma interface para escalonamento de algoritmos 
iterativos em C++. Dissertação (Mestrado em Ciência da Computação) – 
Universidade Federal de Pelotas, Pelotas/RS, 2020. 
SILVA, V. M.; NUNES, R. P. C; GUARDIA, H. C. Programação paralela com 
Unity: um estudo de caso usando threads em CPU e em GPU. In: ESCOLA 
Regional de Alto Desempenho de São Paulo (ERAD-SP). SBC, p. 25-28. 2024. 
SILVA, M. V. Conceitos de computação I. São Paulo: Editora Senac São Paulo, 
2020. 
SILVA, L. R. M. Organização e Arquitetura de Computadores: uma Jornada 
do Fundamental ao inovador. Freitas Bastos, 2023. 
 
 
15 
SIQUEIRA, H. M. C. Proposta de arquitetura de alto desempenho para 
sistemas de tempo real. Tese (Doutorado em Sistemas e Computação) – 
Universidade Federal do Rio Grande do Norte, Natal/RN, 2020. 
TANENBAUM, A. S. Organização Estruturada de Computadores, 4. ed. Rio 
de Janeiro: LTC, 2001. 
TANENBAUM, A. S.; BOS, H. Sistemas operacionais modernos. Bookman 
Editora, 2024.utilizam múltiplos 
processadores trabalhando simultaneamente em diferentes partes de um 
problema, enquanto os sistemas distribuídos usam múltiplos computadores 
interconectados para realizar tarefas de forma colaborativa (Maliszewski et al., 
2021). 
1.9 Arquiteturas modernas e futuras 
No contexto contemporâneo, a arquitetura de computadores continua a 
evoluir em passo acelerado. Tecnologias como a computação em nuvem, a 
Internet das Coisas (IoT) e a Inteligência Artificial (IA) estão moldando novas 
direções. A computação quântica, que utiliza os princípios da mecânica quântica 
para realizar cálculos extremamente rápidos, está emergindo como uma fronteira 
promissora, embora ainda esteja em estágio experimental (Pereira, 2022). 
Os processadores modernos, como os CPUs multicore e GPUs, estão 
otimizados para lidar com cargas de trabalho paralelas e intensivas em dados. 
 
 
7 
Além disso, as arquiteturas especializadas, como os Tensor Processing Units 
(TPUs) desenvolvidos pelo Google para acelerar o processamento de algoritmos 
de machine learning, estão se tornando cada vez mais comuns (Pereira, 2022; 
Lorenzon; Schnorr, 2023). 
Em termos gerais, a história e evolução da arquitetura de computadores 
são uma jornada significativa, sobretudo para compreender os processos que 
constituem e qualificam a inovação tecnológica. Desde as primeiras máquinas 
mecânicas até os sistemas de computação paralela e quântica do mundo 
contemporâneo, a arquitetura de computadores tem se transformado 
consecutivamente para atender às crescentes demandas da sociedade. Vale 
destacar ainda que cada avanço significa novas possibilidades e desafios. 
TEMA 2 – PRINCÍPIOS BÁSICOS DA ARQUITETURA DE COMPUTADORES 
A arquitetura de computadores é um campo fundamental na ciência da 
computação e da engenharia eletrônica. Este campo envolve o design, a 
organização e a interconexão dos componentes de um sistema de computação, 
essencial para o desenvolvimento de sistemas eficientes e de alta performance. 
A arquitetura de computadores configura-se como um conjunto de regras e 
métodos que delineiam a funcionalidade, a organização e a implementação de 
sistemas de computação (Silva, 2023). 
Em termos específicos, abrange o design dos componentes internos do 
computador e a forma como interagem para processar dados e executar 
programas. Os principais componentes de um sistema de computador são: 
Tabela 1 – Componentes básicos de um computador 
Unidade 
Central de 
Processamento 
(CPU) 
A CPU, ou processador, é a “cabeça” do computador, responsável pela 
execução de instruções de programas. Consiste em duas partes 
principais: a Unidade de Controle (UC) e a Unidade Lógica e Aritmética 
(ULA). 
Memória 
A memória de um computador armazena dados e instruções. Existem 
vários tipos de memória, incluindo a memória Random Access Memory 
(RAM) para armazenamento temporário e a memória Read-Only Memory 
(ROM) para armazenamento permanente. 
Dispositivos de 
Entrada e 
Saída (E/S) 
Esses dispositivos permitem a comunicação entre o computador e o 
mundo externo, como, por exemplo, teclados, monitores, impressoras e 
discos rígidos. 
Barramentos 
Barramentos são vias de comunicação que transferem dados entre os 
diferentes componentes do computador. 
Fonte: Silva, 2023. 
 
 
8 
Compreender os componentes básicos de um computador é fundamental 
para entender como os sistemas de computação funcionam e como diferentes 
elementos interagem para executar tarefas complexas. A CPU, memória, 
dispositivos de entrada e saída e barramentos formam a espinha dorsal da 
arquitetura de computadores, cada um desempenhando papel essencial para 
garantir a eficiência e funcionalidade do sistema (Silva, 2023). O 
desenvolvimento contínuo dessas tecnologias assegura o aprimoramento da 
capacidade e performance dos sistemas de computação, abrindo novas 
possibilidades para inovação e desenvolvimento no campo da informática. 
A maioria dos computadores modernos é fundamentada na arquitetura de 
Von Neumann, proposta por John von Neumann em 1945. Esta arquitetura 
define um sistema onde os dados e as instruções são armazenados na mesma 
memória (Castilho; Silva; Weingaertner, 2023). Seus principais componentes 
incluem: 
Fluxograma 1 – Arquitetura de Von Neumann: fundamentos e componentes 
 
 
Fonte: Kowaltowski, 1996; Castilho, Silva e Weingaertner, 2023. 
A arquitetura de Von Neumann estabeleceu os princípios fundamentais 
que ainda guiam o design dos computadores modernos, proporcionando uma 
base sólida para a evolução contínua da tecnologia computacional. 
Considerando esses componentes e visando uma melhor compreensão sobre 
essa abordagem, a Figura 2 apresenta os caminhos de dados de uma típica 
máquina de Von Neumann. 
 
Unidade de 
controle: 
responsável por 
buscar, 
decodificar e 
executar 
instruções do 
programa.
Unidade Lógica 
e Aritmética 
(ULA): realiza 
operações 
matemáticas e 
lógicas.
Memória: 
armazena dados 
e instruções.
Dispositivos de 
Entrada/Saída 
(E/S): permitem 
a interação com 
o usuário e 
outros sistemas.
 
 
9 
Figura 2 – Caminho de dados de uma típica máquina de Von Neumann 
 
Fonte: Tanenbaum, 2001. 
Este diagrama representa a organização interna da CPU, destacando 
como as instruções são processadas. No centro do esquema, estão a UC e a 
ULA, conectadas por registradores que armazenam temporariamente dados e 
instruções. A UC busca e decodifica as instruções da memória principal, 
coordenando a execução das operações pela ULA. O caminho de dados também 
mostra a interação da CPU com a memória e os dispositivos de E/S através de 
um barramento, demonstrando a sequência de busca, decodificação e execução 
que caracteriza o modelo de Von Neumann (Tanenbaum, 2001). 
Referenciais teóricos, como é o caso de Castilho, Silva e Weingaertner 
(2023), têm estudado sobre o conjunto de Instruções ou, em inglês, Instruction 
Set Architecture (ISA). O ISA é o alicerce de qualquer arquitetura de computador, 
que define o repertório de operações que um processador pode executar, 
formando a interface entre o software e o hardware. As instruções do ISA podem 
ser classificadas em distintas categorias, cada uma desempenhando papel 
essencial no funcionamento do computador: 
 
 
10 
Tabela 2 – Conjunto de operações que um processador pode realizar 
Instruções 
Aritméticas 
Estas instruções realizam operações matemáticas básicas como adição, 
subtração, multiplicação e divisão. São fundamentais para a execução 
de cálculos e operações numéricas em programas de computador. 
Instruções 
Lógicas 
Instruções como AND, OR, NOT e XOR realizam operações lógicas que 
são essenciais para a tomada de decisões e processamento de dados 
binários. 
Instruções de 
Controle 
Gerenciam o fluxo de execução do programa, permitindo saltos 
condicionais e incondicionais, chamadas de sub-rotinas e retornos, que 
são cruciais para a implementação de estruturas de controle, como 
loops e condicionais. 
Instruções de 
Transferência de 
Dados 
Movem dados entre registradores, memória e dispositivos de 
entrada/saída, facilitando a manipulação e o armazenamento de 
informações dentro do sistema. 
Fonte: Castilho, Silva e Weingaertner, 2023; Kowaltowski, 1996. 
Especificamente, a Tabela 2 aponta instruções fundamentais para o 
funcionamento dos computadores, que juntas formam a base para o 
processamento e a manipulação eficiente de dados nos sistemas 
computacionais. De acordo com Castilho, Silva e Weingaertner (2023), o futuro 
da arquitetura de computadores possui diversos elementos importantes, como, 
por exemplo, o desenvolvimento de novos paradigmas, como a computação 
quântica e a computação neuromórfica. 
A computação quântica promete resolver problemas computacionais que 
são intratáveis para computadores clássicos, utilizando qubits e princípios da 
mecânica quântica para realizar cálculoscomplexos de forma exponencialmente 
mais rápida. Já a computação neuromórfica procura emular a arquitetura do 
cérebro humano, criando sistemas mais eficientes e inteligentes que podem 
aprender e adaptar-se a novos desafios (Lorenzon; Schnorr, 2023). 
Esses são alguns dos princípios básicos da arquitetura de computadores, 
responsáveis por formar uma base sólida para o desenvolvimento de sistemas 
eficientes, escaláveis e inovadores. Desde a definição do conjunto de instruções 
até o futuro promissor da computação quântica, a compreensão desses 
conceitos é essencial para todos os profissionais da área de computação 
(Lorenzon; Schnorr, 2023). 
A evolução contínua da arquitetura de computadores impulsiona os 
avanços tecnológicos, permitindo a criação de sistemas mais influentes e 
versáteis para enfrentar possíveis desafios futuros. 
 
 
11 
TEMA 3 – CONCEITOS FUNDAMENTAIS NA ARQUITETURA DE 
COMPUTADORES 
A arquitetura de computadores define a estrutura e o funcionamento dos 
sistemas computacionais, envolvendo desde o nível mais básico dos circuitos 
eletrônicos até a organização de software complexo. Esses conceitos são 
fundamentais para entender como os computadores processam informações e 
realizam tarefas, influenciando diretamente a eficiência, performance e 
capacidade de ajustamento dos sistemas modernos (Lima; Moreano, 2021; 
Silva, 2023). 
A Tabela 3 resume os principais conceitos da arquitetura de 
computadores e suas características. 
Tabela 3 – Principais conceitos da arquitetura de computadores e suas 
características 
Instruções e Linguagem 
de Máquina 
Comandos elementares em forma de códigos binários que a CPU 
pode executar, incluindo operações aritméticas, lógicas, de 
controle e transferência de dados. 
Arquitetura de Von 
Neumann 
Modelo de arquitetura de computadores que usa o mesmo 
espaço de memória para dados e instruções, acessados por um 
único barramento. 
 
Arquitetura de Harvard 
Modelo de arquitetura que utiliza barramentos separados para 
dados e instruções, permitindo acesso simultâneo e 
aumentando a eficiência, embora mais complexo de 
implementar. 
 
Hierarquia de 
Armazenamento 
Diferentes níveis de memória com características de capacidade, 
velocidade e custo variáveis, incluindo registros, cache, RAM, e 
dispositivos de armazenamento em massa. 
Fonte: Silva, 2020. 
Esses são alguns dos conceitos fundamentais na arquitetura de 
computadores, responsáveis por formar uma base sobre a qual todo o 
funcionamento dos sistemas digitais é construído. Desde a organização interna 
da CPU até a interação com dispositivos externos, esses princípios definem não 
apenas o desempenho técnico dos computadores, mas também sua capacidade 
de evoluir e se adaptar às demandas crescentes de processamento de dados e 
informação na era digital (Silva, 2023; Silva, 2020). 
Dominar esses conceitos é essencial para profissionais de tecnologia da 
informação e engenheiros de software que buscam criar sistemas eficientes e 
potentes para uma variedade de aplicações e necessidades computacionais. 
 
 
12 
TEMA 4 – QUESTÕES INTRODUTÓRIAS AOS ELEMENTOS ESSENCIAIS DA 
ARQUITETURA DE COMPUTADORES 
Segundo Lima e Moreano (2021), a arquitetura de computadores é um 
campo multidisciplinar que reúne uma série de fatores essenciais para seu 
desenvolvimento. São fatores que influenciam garantindo que os computadores 
executem tarefas de maneira rápida, precisa e eficiente, considerando as 
crescentes demandas por processamento de dados e complexidade 
computacional na era digital. 
Para efeito de melhor esclarecimento, a Tabela 4 se esforça em destacar 
alguns aspectos envolvidos na arquitetura de computadores. 
Tabela 4 – Aspectos introdutórios envolvidos na arquitetura de computadores 
Desempenho vs. 
Custo 
Um dos desafios centrais na arquitetura de computadores é 
encontrar um equilíbrio entre desempenho e custo. Aumentar a 
velocidade e a capacidade de processamento geralmente requer 
investimentos em componentes mais avançados e, 
consequentemente, mais caros. 
Paralelismo e 
Computação 
Distribuída 
Com o aumento da demanda por poder de processamento, o 
paralelismo e a computação distribuída se tornaram áreas de intensa 
pesquisa e desenvolvimento. Essas abordagens permitem que 
múltiplos processadores ou sistemas trabalhem simultaneamente em 
uma tarefa, melhorando significativamente o desempenho e a 
escalabilidade em sistemas computacionais complexos. 
Segurança e 
Confiança 
À medida que os sistemas computacionais se tornam onipresentes 
na sociedade, a segurança dos dados e a confiança nas operações 
se tornam preocupações críticas. 
Evolução 
Tecnológica 
A arquitetura de computadores está em constante evolução à medida 
que novas tecnologias emergem e novos desafios surgem. Desde a 
miniaturização dos circuitos até o desenvolvimento de novos 
paradigmas de computação, como a computação quântica. 
Fonte: Ribeiro, 2023. 
A arquitetura de computadores é um campo dinâmico e essencial que 
sustenta a revolução digital em curso. Ao compreender os elementos 
fundamentais e as questões introdutórias deste campo, pode-se contemplar 
melhor como os sistemas computacionais são projetados, implementados e 
aprimorados para enfrentar os desafios do mundo moderno (Ribeiro, 2023). 
Explorar os conhecimentos nesse campo não apenas amplia o entendimento da 
tecnologia, mas também abre caminho para as inovações que moldarão o futuro 
da computação. 
 
 
13 
TEMA 5 – FUNDAMENTAÇÃO EM ARQUITETURA DE COMPUTADORES: 
DOS PRIMÓRDIOS AO PRESENTE 
A história da arquitetura de computadores é uma jornada fascinante que 
começou há mais de meio século e continua a evoluir rapidamente até os dias 
atuais. Este texto explora os marcos significativos, os avanços tecnológicos e os 
principais conceitos que moldaram essa disciplina essencial para o 
desenvolvimento e funcionamento dos sistemas computacionais modernos. 
5.1 Primórdios da arquitetura de computadores 
O surgimento da arquitetura de computadores remonta aos anos 1940 e 
1950, uma época marcada por grandes inovações e descobertas. Um dos 
marcos fundamentais foi o desenvolvimento do ENIAC (Electronic Numerical 
Integrator and Computer) em 1946, considerado o primeiro computador digital 
eletrônico de grande escala (Silva, 2023). Projetado pelos cientistas John 
Mauchly e J. Presper Eckert na Universidade da Pensilvânia, o ENIAC introduziu 
conceitos básicos de arquitetura de computadores, incluindo a utilização de 
válvulas eletrônicas para processamento de dados e a implementação de 
instruções codificadas diretamente no hardware (Silva, 2022). 
5.2 A era dos transistores e circuitos integrados 
Na década de 1950, a evolução dos computadores foi impulsionada pela 
substituição das válvulas eletrônicas por transistores, dispositivos 
semicondutores menores, mais rápidos e mais confiáveis. Esta transição foi 
liderada por iniciativas como o UNIVAC I (Universal Automatic Computer I), o 
primeiro computador comercialmente produzido nos Estados Unidos (Castro, 
2022; Duarte, 2023). A introdução dos circuitos integrados na década de 1960 
permitiu a miniaturização e integração de múltiplos componentes eletrônicos em 
um único chip, aumentando significativamente a capacidade de processamento 
e reduzindo custos. 
5.3 Arquiteturas e modelos 
Durante as décadas de 1970 e 1980, surgiram diferentes arquiteturas de 
computadores que definiram a forma como os sistemas processam informações 
 
 
14 
até hoje. A arquitetura de Von Neumann, proposta por John von Neumann na 
década de 1940, estabeleceu o modelo de computador que separa a unidade de 
processamento central da memória de armazenamento, com um único 
barramento para a comunicação entre ambas (Silva, 2023). Esse modelo ainda 
é predominante na maioria dos computadores pessoais e servidores de hoje. 
Em contraste, a arquitetura de Harvard,desenvolvida no início do século 
XX, propôs um modelo onde a memória de instruções e a de dados são 
separadas fisicamente, permitindo que instruções e dados sejam acessados 
simultaneamente, aumentando a eficiência do processamento em certos tipos 
de aplicações. 
5.4 Avanços na era moderna 
O final do século XX e o início do século XXI testemunharam avanços 
extraordinários na arquitetura de computadores, impulsionados pela 
miniaturização dos transistores e pelo aumento da capacidade de 
processamento. A introdução dos processadores multicore permitiu que 
múltiplos núcleos de processamento fossem integrados em um único chip, 
melhorando a capacidade de multitarefa e paralelismo em sistemas 
computacionais (Katinsky; Leon, 2022). Além disso, o desenvolvimento de 
técnicas avançadas de cache, otimização de barramentos de comunicação e 
novas arquiteturas de memória, como memórias flash e SSDs (Solid State 
Drives), revolucionaram o armazenamento e acesso aos dados, aumentando 
significativamente a velocidade e eficiência dos sistemas (Tanenbaum; Bos, 
2024). 
5.5 Desafios e tendências futuras 
A arquitetura de computadores enfrenta desafios contínuos à medida que 
a demanda por maior desempenho, eficiência energética e segurança cresce. 
Tendências como computação quântica, redes neurais artificiais e sistemas 
embarcados estão moldando o futuro da arquitetura de computadores, exigindo 
novos paradigmas de design e inovação (Silva, 2023; Oliveira, 2023). 
Em suma, a fundação da arquitetura de computadores desde seus 
primórdios até o presente reflete não apenas uma progressão tecnológica, mas 
também um profundo impacto na sociedade moderna. A contínua evolução 
 
 
15 
dessa disciplina essencial continuará a moldar o futuro da computação, 
impulsionando novas descobertas e aplicações que transformam nosso mundo 
digital. 
FINALIZANDO 
Com base no que vimos até aqui, a arquitetura de computadores se 
constitui como um campo essencial e dinâmico, cuja história remonta aos 
primeiros dispositivos mecânicos, evoluindo através das máquinas de Blaise 
Pascal e Charles Babbage, até os primeiros computadores eletrônicos do século 
XX, como o ENIAC. Com o advento dos transistores e circuitos integrados, a 
capacidade de processamento ampliou-se exponencialmente, culminando em 
sistemas modernos mais sofisticados. 
É importante ressaltar ainda que os princípios básicos da arquitetura de 
computadores incluem a organização e a integração de componentes cruciais 
como a Unidade Central de Processamento (CPU), memória, dispositivos de 
entrada/saída e barramentos. A arquitetura de Von Neumann, por exemplo, é um 
modelo fundamental que descreve como programas e dados compartilham o 
mesmo espaço de memória, permitindo a execução eficiente de instruções. 
Discutimos ainda os conceitos fundamentais nessa área, incluindo a 
hierarquia de memória, que vai dos registros rápidos na CPU ao armazenamento 
secundário, e o paralelismo, que permite a execução simultânea de múltiplas 
instruções, aumentando significativamente a eficiência do sistema. O pipelining, 
por sua vez, melhora a taxa de processamento ao permitir que diferentes 
estágios de execução de instruções ocorram em paralelo. 
Quanto às questões introdutórias aos elementos essenciais da arquitetura 
de computadores, destaca-se a relevância de equilibrar desempenho e custo, 
sendo este um desafio constante para arquitetos de sistemas. O paralelismo e a 
computação distribuída são abordagens que aumentam a capacidade de 
processamento ao permitir que múltiplos processadores ou sistemas trabalhem 
simultaneamente. A segurança também é uma preocupação central, protegendo 
dados e a integridade das operações contra ameaças cada vez mais rígidas e 
desafiadoras. 
Em síntese, no que tange à fundamentação em arquitetura de 
computadores, examinamos a trajetória histórica e as inovações tecnológicas 
 
 
16 
que moldaram o campo, desde os primórdios com dispositivos mecânicos até os 
avanços modernos, como processadores multicore e computação quântica. 
 
 
 
 
17 
REFERÊNCIAS 
ARANHA, G. O processo de consolidação dos jogos eletrônicos como 
instrumento de comunicação e de construção de conhecimento. Ciências & 
Cognição, v. 3, p. 21-62, 2004. 
BRASIL ESCOLA. Blaise Pascal. 2024. Disponível em: 
. Acesso em: 2 jul. 
2024. 
CASTILHO, M. A.; SILVA, F.; WEINGAERTNER, D. Uma possível abordagem 
para o ensino introdutório de algoritmos em cursos de computação. In: 
SIMPÓSIO BRASILEIRO DE EDUCAÇÃO EM COMPUTAÇÃO, 3., p. 376-385, 
2023. Anais… 
CASTRO, J. I. M. Economia-mundo e monopólio: Terceira Revolução 
Industrial e o Leste Asiático. Trabalho de Conclusão de Curso (Bacharelado em 
Relações Internacionais) – Universidade Federal do Rio Grande do Sul, Porto 
Alegre, 2022. 
DUARTE, T. D. Sistema integrado de monitoramento de consumo de água 
residencial. Trabalho de Conclusão de Curso (Graduação em Engenharia 
Elétrica) – Instituto Federal de Educação, Ciência e Tecnologia da Paraíba, João 
Pessoa, 2023. 
FONSECA FILHO, C. História da computação: o caminho do pensamento e da 
tecnologia. EDIPUCRS, 2007. 
GERBASI, V. A. Colaboração, trabalho digital e o cercamento sobre o 
conhecimento tecnológico. Tese (Doutorado em Ciências Sociais) – 
Universidade Estadual Paulista, Marilia, 2021. 
KATINSKY, J. R.; LEON, E. Reflexões sobre o design industrial. Olhares, 
2022. 
KOWALTOWSKI, T. Von Neumann: suas contribuições à computação. Estudos 
Avançados, v. 10, p. 237-260, 1996. 
LIMA, D. P.; MOREANO, N. ECS e EMCS: simuladores de caches para o apoio 
pedagógico no ensino de Arquitetura de Computadores. In: WORKSHOP 
SOBRE EDUCAÇÃO EM COMPUTAÇÃO, 19., p. 308-317, 2021. Anais… 
 
 
18 
LORENZON, A. F.; SCHNORR, L. M. Pensamento computacional paralelo: 
desafios do presente e do futuro. Sociedade Brasileira de Computação, 2023. 
MALISZEWSKI, A. M. et al. Ambiente de Nuvem Computacional Privada para 
Teste e Desenvolvimento de Programas Paralelos. In: Minicursos da XXI 
Escola Regional de Alto Desempenho da Região Sul, 2021. Disponível em: 
. Acesso em: 2 jul. 2024. 
MIGUEL VELASCO, J. R. La máquina analítica de Charles Babbage. In: 
Homenaje al profesor D. Rafael Rodríguez Vidal. Universidad de Zaragoza, 
1985. p. 299-324. 
MURDOCCA, M. J.; HEURING, V. P. Introdução à arquitetura de 
computadores. Elsevier, 2001. 
OLIVEIRA, H. C. Aquisitores de dados na indústria: passado, presente e 
futuro. Monografia (Graduação em Engenharia de Controle e Automação) – 
Universidade Federal de Ouro Preto, Ouro Preto, 2023. 
PEREIRA, L. M. Internet das coisas (IoT): inovações, impactos setoriais e 
implicações sobre as estratégias empresariais. Monografia (Bacharelado em 
Ciências Econômicas) – Universidade Federal de Uberlândia, Uberlândia, 2022. 
RIBEIRO, M. B. Uma plataforma para integração de dados para cidades 
inteligentes. Dissertação (Mestrado em Ciências) – Universidade de São Paulo, 
São Paulo, 2023. 
SILVA, A. K. Counter-Strike: um jogo feito por pessoas e alavancado por sua 
comunidade. Trabalho de Conclusão de Curso (Bacharelado em Publicidade e 
Propaganda) – Centro Universitário da Serra Gaúcha, Caxias do Sul, 2022. 
SILVA, L. R. M. Organização e arquitetura de computadores: uma jornada do 
fundamental ao inovador. Freitas Bastos, 2023. 
SILVA, M. V. Conceitos de computação I. Senac São Paulo, 2020. 
SOUZA, L. V.; ZAFANELI, C. Informática na Docência: Possibilidade de Quebrar 
Paradigmas. Akrópolis – Revista de Ciências Humanas da UNIPAR, v. 12, n. 
2, 2004. 
 
 
19 
TANENBAUM, A. S. Organização estruturada de computadores. 4. ed. Rio de 
Janeiro: LTC, 2001. 
_____. BOS, H. Sistemas operacionais modernos. Bookman,2024. 
VILLAÇA, M. V. M.; STEINBACH, R. Brevíssima história do computador e suas 
tecnologias parte i–do osso de lebombo aos computadores eletromecânicos. 
Revista Ilha Digital, v. 5, p. 3-24, 2014. 
WOILER, S. Computador: conceitos e aplicações. Revista de Administração 
de Empresas, v. 10, p. 141-156, 1970. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ARQUITETURA DE 
COMPUTADORES 
AULA 2 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Prof. André Roberto Guerra 
 
 
 
2 
CONVERSA INICIAL 
Nesta etapa, abordaremos os componentes elementares que formam a 
base dos sistemas computacionais. Ter uma compreensão clara destes 
componentes é essencial para avançarmos em estudos mais detalhados e 
específicos. Os principais componentes que serão discutidos já foram 
apresentados anteriormente, e neste momento aprofundaremos essa discussão. 
TEMA 1 – VISÃO GERAL DOS COMPONENTES ELEMENTARES DOS 
COMPUTADORES 
Neste tópico, serão apresentados e discutidos os três principais 
componentes elementares dos computadores, considerando aspectos correlatos. 
Para isso, é necessário observamos a Figura 1, que destaca esses componentes 
de forma mais detalhada. 
Figura 1 – Três principais componentes elementares dos computadores 
 
Fonte: Castilho; Silva; Weingaertner, 2023. 
Entende-se que esses componentes exercem papéis centrais na execução 
de computadores, com finalidades e características que lhes distinguem e, ao 
mesmo tempo os aproximam. Essas características serão apresentadas ao longo 
desta etapa. 
 
Processadores 
(CPU – Unidade 
Central de 
Processamento)
Memórias
Dispositivos de 
entrada e saída
 
 
3 
1.1 Processadores (CPU – unidade central de processamento) 
1.1.1 Definição e função 
O processador, ou a Unidade Central de Processamento (CPU), é o 
cérebro do computador. É considerado o responsável por executar instruções e 
processar dados. A CPU realiza operações aritméticas, lógicas, de controle e de 
entrada/saída, seguindo as instruções de um programa armazenado na memória 
do sistema (Castilho; Silva; Weingaertner, 2023). A CPU é composta por diversas 
partes essenciais, cada uma com um papel crítico no processamento de dados. 
Figura 2 – Estrutura da CPU 
 
Fonte: Castilho; Silva; Weingaertner, 2023; Kowaltowski, 1996. 
Para melhor compreensão, é significativo sinalizar que a Unidade de 
Controle (UC) é responsável por gerenciar e coordenar todas as operações dentro 
da CPU. Além disso, busca as instruções da memória, decodifica essas instruções 
para determinar quais operações precisam ser realizadas e, em seguida, 
coordena a execução dessas operações pela Unidade Lógica e Aritmética (ULA) 
ou outras partes da CPU (Kowaltowski, 1996; Castilho; Silva; Weingaertner, 
2023). 
A ULA executa as operações aritméticas (como adição e subtração) e 
lógicas (como AND, OR e NOT), aspectos cruciais para a manipulação de dados 
numéricos e lógicos dentro do computador. Em relação a registradores, 
caracterizam-se como pequenas unidades de armazenamento de alta velocidade 
dentro da CPU que armazenam dados temporários e instruções durante o 
processamento (Kowaltowski, 1996; Castilho; Silva; Weingaertner, 2023). 
Unidade de Controle (UC)
Unidade Lógica e Aritmética (ULA)
Registradores 
Cache
 
 
4 
Por exemplo: incluem o contador de programa (que mantém o controle da 
próxima instrução a ser executada) e o acumulador (que armazena os resultados 
intermediários de operações aritméticas e lógicas). Quanto ao cache, é necessário 
ressaltar que se trata de uma memória de alta velocidade localizada próxima à 
CPU, usada para armazenar dados e instruções frequentemente acessados. De 
modo mais específico, o cache melhora a eficiência da CPU reduzindo o tempo 
de acesso à memória principal (Kowaltowski, 1996; Castilho; Silva; Weingaertner, 
2023). 
Segundo Carro e Wagner (2003) e Jordan (2015), o funcionamento da CPU 
pode ser descrito por meio do ciclo de instrução, que é dividido em várias etapas: 
Tabela 1 – Funcionamento da CPU 
Busca (fetch) 
A UC busca a próxima instrução a ser executada na memória, 
utilizando o contador de programa para determinar seu endereço. 
Decodificação 
(decode) 
A instrução buscada é decodificada pela UC para determinar qual 
operação deve ser realizada e quais operandos são necessários. 
Execução 
(execute) 
A operação especificada pela instrução é executada. Se a instrução for 
uma operação aritmética ou lógica, a ULA realiza a operação. Se a 
instrução envolve transferência de dados, a UC coordena a movimentação 
dos dados entre registradores e memória. 
Escrita (write 
back) 
O resultado da operação é escrito de volta na memória ou em um 
registrador, conforme especificado pela instrução. 
Fonte: Carro; Wagner, 2003; Jordan. 2015. 
Desse modo, esse conjunto de etapas é fundamental para o funcionamento 
da CPU, uma vez que são coordenadas para executar instruções e processar 
dados de maneira eficiente. 
Além desses passos para o funcionamento da CPU, também é necessário 
observar e compreender que existem vários tipos de processadores, cada um 
otimizado para diferentes tipos de tarefas e cargas de trabalho. Observemos o 
Quadro 1: 
 
 
 
5 
Quadro 1 – Tipos de processadores 
Processadores de 
Uso Geral (GPUs) 
CPUs tradicionais são projetadas para executar uma ampla variedade 
de tarefas de computação geral, desde aplicações de escritório até 
jogos e navegação na web. 
Processadores 
Gráficos (GPUs) 
GPUs são projetadas especificamente para renderização de gráficos e 
computação paralela intensiva. Possuem centenas ou milhares de 
núcleos menores que podem executar operações simultaneamente, 
tornando-as ideais para tarefas como processamento gráfico, 
aprendizado de máquina e simulações científicas. 
Processadores de 
Aplicação 
Específica (ASICs) 
ASICs são projetados para executar uma tarefa específica de forma 
extremamente eficiente. Podemos citar como exemplos de 
processadores usados em dispositivos de rede, smartphones e 
equipamentos de mineração de criptomoedas. 
Processadores 
Multi-Core 
CPUs modernas geralmente possuem múltiplos núcleos de 
processamento em um único chip, permitindo a execução simultânea 
de múltiplos threads e aprimorando significativamente a performance 
para aplicações multitarefa. 
Fonte: Gomes, 2012; Souto, 2018. 
Com base no Quadro 1, pode-se dizer que os processadores são cruciais 
na computação moderna, cada um com sua importância específica. A junção 
desses processadores constitui a base da computação moderna, cada um 
aprimorando a eficiência e o desempenho em diferentes áreas de aplicação. 
Na concepção de Lima e Moreira (2014) e Silva (2023), ao estudar os tipos 
de processadores de forma voluntária ou não, nos remetemos aos avanços na 
tecnologia. A tecnologia de processadores tem evoluído rapidamente, 
impulsionada por avanços na fabricação de semicondutores e novas arquiteturas 
de design. Há avanços notáveis que merecem destaque, como: 
Tabela 2 – Avanços na tecnologia de processadores 
Miniaturização 
A contínua redução no tamanho dos transistores (conhecida como Lei 
de Moore) permite a criação de processadores mais potentes e 
eficientes em termos de energia. 
Hiperthreading 
Tecnologia que permite a execução de múltiplos threads de instruções em um 
único núcleo, melhorando a utilização da CPU e o desempenho geral do 
sistema. 
Arquiteturas 
híbridas 
Processadores modernos frequentemente combinam núcleos de alto 
desempenho com núcleos de alta eficiência, permitindo um balanceamento 
dinâmico entre desempenho e consumo de energia, como visto nas 
arquiteturas big.LITTLE. 
Computação 
quântica 
Embora ainda em estágio experimental, a computação quântica promete 
revolucionar a computação ao realizar operações em escala quântica, 
possibilitando a solução de problemas complexos intratáveis para os 
processadores clássicos. 
Fonte: Lima; Moreira,2014; Silva, 2023. 
 
 
6 
Desse modo, a CPU é um componente vital de qualquer sistema de 
computação, com papel central na execução de instruções e no processamento 
de dados. Com uma estrutura composta por unidade de controle, unidade lógica 
e aritmética, registradores e cache, a CPU realiza operações complexas de 
maneira eficiente (Silva, 2023). Os contínuos avanços na tecnologia de 
processadores impulsionam o desempenho e a capacidade dos sistemas 
computacionais, abrindo caminho para novas aplicações e inovações no campo 
da computação. 
TEMA 2 – CONTEXTUALIZANDO SISTEMAS COMPUTACIONAIS: BREVES 
CONSIDERAÇÕES SOBRE INTERCONEXÃO 
Vimos até aqui que a estrutura dos sistemas computacionais é formada por 
três componentes elementares: CPU, memórias (principal e secundária) e 
dispositivos de entrada e saída (E/S); esses sistemas são descritos por 
Tanenbaum (2001) como um conjunto interconectado que trabalha 
harmoniosamente para processar dados e executar instruções. Com o objetivo de 
corroborar com a discussão, destacamos a Figura 3, que apresenta a organização 
de um computador simples com uma CPU e dois dispositivos de E/S. 
Figura 3 – Organização de um computador simples com uma CPU e dois 
dispositivos de E/S 
 
Fonte: Tanenbaum, 2001. 
 
 
7 
A Figura 3 nos fornece uma visão clara e concisa da organização básica 
de um computador simples. Além disso, esse diagrama ajuda a ilustrar como os 
componentes – CPU, dispositivos de E/S e o barramento – interagem para realizar 
tarefas computacionais. Essa organização básica é o ponto de partida para a 
compreensão de sistemas mais complexos. 
Segundo Carro e Wagner (2023), um dos conceitos fundamentais em 
sistemas computacionais é o sistema de interconexão, ou barramento. O 
barramento se configura como uma via de comunicação que conecta todos os 
componentes do sistema – CPU, memória e dispositivos de E/S. Além disso, 
permite a transferência de dados, sinais de controle e endereços entre esses 
componentes, garantindo que possam operar de maneira coordenada. 
Há diferentes tipos de barramento, como barramentos de dados, 
barramentos de endereço e barramentos de controle, cada um com papel 
específico na comunicação interna do sistema. O barramento é importante porque 
determina a velocidade e a eficiência com que os componentes podem se 
comunicar. Cabe destacar que um barramento eficiente pode aprimorar o 
desempenho do sistema, permitindo que a CPU acesse rapidamente a memória 
e os dispositivos de E/S, e vice-versa (Carro; Wagner, 2003; Silva, 2023). 
Com o avanço da tecnologia, surgiram barramentos mais rápidos e 
eficientes, como os barramentos PCI Express (PCIe), que aumentam a largura de 
banda disponível para a comunicação entre os componentes. Os barramentos 
PCIe são uma grande evolução na interconexão de componentes em sistemas 
computacionais modernos; introduzidos para substituir os antigos barramentos 
Peripheral Component Interconnect (PCI), Peripheral Component Interconnect 
eXtended (PCI-X) e Accelerated Graphics Port (AGP), o PCIe oferece uma série 
de melhorias significativas em termos de velocidade, flexibilidade e eficiência, 
tornando-se uma referência para a comunicação interna em computadores (Carro; 
Wagner, 2003; Silva, 2023). 
À medida que as demandas por maior desempenho e eficiência continuam 
a crescer, o PCIe permanecerá um componente essencial na arquitetura de 
sistemas computacionais modernos. 
 
 
 
8 
TEMA 3 – INTRODUÇÃO ÀS ARQUITETURAS REDUCED INSTRUCTION SET 
COMPUTER (RISC), COMPLEX INSTRUCTION SET COMPUTER (CISC) E VERY 
LONG INSTRUCTION WORD (VLIW) 
No amplo cenário da arquitetura de computadores, diferentes abordagens 
foram desenvolvidas para otimizar o desempenho, a eficiência e a complexidade 
dos processadores. Três das arquiteturas mais influentes e discutidas são a 
Reduced Instruction Set Computer (RISC), a Complex Instruction Set Computer 
(CISC) e a Very Long Instruction Word (VLIW). Cada uma dessas arquiteturas 
apresenta uma filosofia única de design, visando atender a diferentes 
necessidades e desafios computacionais (Tanenbaum, 2001; Hepola; Multanen; 
Jääskeläinen, 2022). 
Segundo Vardhan, Israel e Basiri (2023), a arquitetura RISC foi idealizada 
com o objetivo de simplificar as instruções executadas pela CPU, permitindo que 
cada instrução seja executada rapidamente e com maior eficiência. A filosofia 
RISC fundamenta-se na utilização de um conjunto reduzido de instruções, com 
tamanhos uniformes e comumente executadas em um único ciclo de clock. Essa 
abordagem simplificada facilita a implementação de pipelines, permitindo que 
múltiplas instruções sejam executadas simultaneamente em diferentes estágios, 
aumentando assim o throughput do processador. A RISC é particularmente 
vantajosa em aplicações que requerem alta velocidade e eficiência, como 
dispositivos embarcados e sistemas de tempo real. 
A arquitetura CISC, por sua vez, adota uma abordagem mais complexa, 
com um conjunto de instruções extenso e variado. As instruções CISC podem 
executar operações sofisticadas e multifacetadas com uma única instrução, o que 
pode reduzir a quantidade de código necessária para realizar tarefas complexas. 
Embora as instruções CISC possam ser mais “lentas” para executar, elas são 
projetadas para minimizar a necessidade de instruções adicionais, potencialmente 
simplificando a programação e aprimorando a compatibilidade com softwares 
mais antigos. Tradicionalmente, a CISC tem sido aproveitada em computadores 
pessoais e servidores, nos quais a flexibilidade e a compatibilidade com uma 
ampla gama de aplicativos são cruciais (Tanenbaum, 2001; Vardhan; Israel; 
Basiri, 2023). 
Para compreendermos melhor essas distinções entre a arquitetura RISC e 
CISC, observe a Tabela 1 
 
 
9 
Tabela 1 – Comparativo entre a RISC e a CISC 
RISC CISC 
Múltiplos conjuntos de registradores, muitas 
vezes superando 256 
Único conjunto de registradores, 
tipicamente entre 6 e 16 registradores 
Três operandos de registradores permitidos 
por instrução (ex.: add R1, R2, R3) 
Um ou dois operandos de registradores 
permitidos por instrução (ex.: add R1, R2) 
Passagem eficiente de parâmetros por 
registradores no chip (processador) 
Passagem de parâmetros ineficiente 
através da memória 
Instruções de um único ciclo (ex.: load e 
store) 
Instruções de múltiplos ciclos 
Controle hardwired (embutido no hardware) Controle microprogramado 
Altamente paralelizado (pipelined) Fracamente paralelizado 
Instruções simples e em número reduzido Muitas instruções complexas 
Instruções de tamanho fixo Instruções de tamanho variável 
Complexidade no compilador Complexidade no código 
Apenas instruções load e store podem 
acessar a memória 
Muitas instruções podem acessar a 
memória 
Poucos modos de endereçamento Muitos modos de endereçamento 
No que concerne à arquitetura VLIW, é significativo dizer que ela 
representa uma abordagem inovadora que visa maximizar o paralelismo no nível 
de instrução. Em vez de depender de instruções individuais, a VLIW utiliza 
palavras de instrução longas que contêm múltiplas operações, todas executadas 
simultaneamente. Essa abordagem permite que o compilador organize as 
operações de forma otimizada, reduzindo a complexidade do hardware necessário 
para detectar e gerenciar o paralelismo em tempo de execução (Tanenbaum, 
2001; Vardhan; Israel; Basiri, 2023). A arquitetura VLIW é especialmente eficaz 
em aplicações que podem se beneficiar de um alto grau de paralelismo, como 
processamento multimídia e computação científica. 
Em termos gerais, as arquiteturas RISC, CISC e VLIW representam 
diferentes estratégias para abordar os desafios da eficiência e desempenho em 
processadores. Compreender suas especificidades e funções é essencial para 
conhecer as abordagens adotadas na evolução dos processadores e na busca 
por soluções que possam atenderàs necessidades crescentes do mundo 
computacional moderno. 
TEMA 4 – A IMPORTÂNCIA DA MEMÓRIA NO FUNCIONAMENTO DOS 
COMPUTADORES DIGITAIS 
A memória é um componente essencial dos computadores, responsável 
por armazenar programas e dados. Sem a capacidade de leitura e escrita de 
informações pela CPU, um computador digital não funcionaria, pois os programas 
 
 
10 
não poderiam ser armazenados (Tanenbaum, 2001; Silva, 2023). O dilema entre 
velocidade e capacidade é um desafio econômico, não tecnológico, influenciando 
o design e a hierarquia das memórias. 
Para efeito de melhor compreensão da abordagem, a Figura 4 mostra a 
hierarquia de memória. 
Figura 4 – Hierarquias de memória 
 
Fonte: Tanenbaum, 2001. 
De acordo com Tanenbaum (2001) e Silva (2023), a memória primária, ou 
memória principal (MP) é onde os programas em execução e os dados que 
utilizam são armazenados. A CPU processa as instruções obtidas da MP, e os 
resultados são retransmitidos a ela. A unidade básica de memória é o bit, que 
pode assumir valores binários (0 ou 1), sendo fisicamente mais simples de 
distinguir. A memória é constituída por células, cada uma armazenando uma 
informação específica. Cada célula possui um endereço que a identifica, formando 
a base pela qual os programas referenciam dados na memória. 
Nos computadores modernos, as células são agrupadas em palavras, que 
representam a menor unidade de dados que pode ser transferida para ou da MP. 
Por exemplo: uma palavra de 32 bits contém 4 bytes (ou 4 células). As instruções 
e dados são organizados em palavras, refletindo a arquitetura do processador, 
como nos processadores de 32 bits, nos quais tanto as palavras quanto os 
registradores têm 32 bits (Tanenbaum, 2001; Silva, 2023). 
Conforme Tanenbaum (2001) e Silva (2023), a memória pode ser 
classificada de diversas maneiras. A memória volátil, como a Random Access 
Memory (RAM), perde seus dados quando a energia é desligada. Em contraste, a 
 
 
11 
memória não volátil retém os dados mesmo sem energia. Memórias endereçadas 
sequencialmente, como fitas magnéticas, requerem a leitura dos endereços 
anteriores para acessar uma célula específica. Já a RAM permite acesso 
aleatório, com tempo de acesso uniforme para todas as células. 
Quanto aos registradores, Tanenbaum (2001) e Silva (2023) afirmam que 
os registradores usados para endereçar a memória têm tamanho correspondente 
ao barramento de endereços, igual ao tamanho da palavra. A memória cache é 
uma memória pequena e rápida que armazena os dados e instruções mais 
recentemente acessados pela CPU. Quando a CPU precisa de uma palavra, 
primeiro a busca na cache; caso não seja encontrada, a busca se estende à 
memória principal. A cache efetiva reduz significativamente o tempo médio de 
acesso à memória, com múltiplos níveis de cache possíveis, como cache de nível 
1 no chip e cache de nível 2 no barramento. A Figura 5 aponta para esses 
argumentos de forma mais especificada. 
Figura 5 – Localização da memória cache 
 
Fonte: Tanenbaum, 2001. 
Quanto à memória secundária, Tanenbaum (2001) e Silva (2023) dizem 
que a memória principal possui capacidade limitada, sendo complementada pela 
memória secundária, que não é endereçada diretamente pela CPU. Dados na 
memória secundária são transferidos para a memória principal antes de serem 
executados pela CPU, uma necessidade devido à volatilidade da MP. A memória 
secundária, geralmente não volátil, garante armazenamento permanente de 
dados, permitindo que programas e arquivos sejam acessados novamente após 
desligamentos do sistema. 
Entre os tipos de memória secundária destacam-se discos rígidos (HDs), 
memórias flash, discos de estado sólido (SSD) e discos ópticos. Sistemas 
 
 
12 
operacionais modernos utilizam a memória secundária para expandir a 
capacidade da memória principal por meio da memória virtual. Além do que foi 
apresentado, também merece destaque a localização da memória cache, como 
bem demonstra a Figura 5, enfatizando sua função intermediária crucial entre a 
CPU e a memória principal. 
TEMA 5 – O PAPEL DA ENTRADA E SAÍDA (I/O) NA COMUNICAÇÃO 
COMPUTACIONAL 
A entrada e saída, comumente referida como I/O (Input/Output), é crucial 
na comunicação entre o computador e o meio externo. Essa comunicação ocorre 
por meio da transferência de dados externos para o computador (entrada) e da 
transferência dos resultados do processamento de dados para o usuário (saída). 
A I/O é essencial para a interação com o usuário, permitindo que a representação 
interna dos dados, processada em sinais eletrônicos dentro do computador, seja 
convertida em uma forma compreensível para as pessoas, e vice-versa (Silva, 
2023). 
Diversos dispositivos são utilizados nesse processo, especialmente os 
periféricos, que mediam a entrada e saída de dados. Entre as características 
distintivas das operações de I/O estão a variabilidade na velocidade de 
transferência, a natureza assíncrona das atividades de I/O, a incerteza na 
qualidade dos dados transferidos e a possibilidade de interrupções nas 
transferências (Silva, 2023). 
Os barramentos são fundamentais para a comunicação entre os 
componentes do sistema computacional, interconectando os elementos básicos 
do computador. Eles permitem a transferência direta de dados entre dispositivos 
de I/O e a memória através de controladores especiais, como os Controladores 
de Direct Memory Access (DMA) (ou “acesso direto à memória”). Esses 
controladores assumem temporariamente o controle do barramento, isolando a 
comunicação entre a CPU, a memória e os dispositivos de I/O, o que permite uma 
transferência eficiente e sem interrupções significativas (Silva, 2023). 
Essa arquitetura garante que os dados possam ser movidos de maneira 
eficaz entre os diferentes componentes do sistema, mantendo a integridade e a 
velocidade necessárias para um desempenho computacional otimizado (Figura 
6). 
 
 
 
13 
Figura 6 – Estrutura lógica/barramento 
 
Fonte: Tanenbaum, 2001. 
Os barramentos em um sistema computacional podem ser categorizados 
com base na direção de condução dos sinais. Podem ser unidirecionais, 
conduzindo sinais em uma única direção, ou bidirecionais, permitindo a condução 
em ambas as direções, conforme comandos eletrônicos. Além disso, existem 
barramentos de três estados, que são bidirecionais com a capacidade adicional 
de desconexão elétrica controlada. Essa desconexão eletrônica facilita a 
comunicação seletiva entre dispositivos, possibilitando, por exemplo, que a CPU 
se conecte à memória e se desconecte dos dispositivos de entrada/saída (E/S) 
(Tanenbaum, 2001). 
A arquitetura de barramentos é fundamental para a organização interna de 
um computador, e diferentes tipos de barramentos têm papéis específicos: 
Figura 7 – Tipos de barramentos 
 
Fonte: Guerra, 2024. 
Barramento de dados
Responsável pela 
transferência de 
dados e instruções 
entre os dispositivos. 
Esse barramento é de 
três estados entre a 
memória e a CPU, e 
unidirecional com a 
capacidade de 
desconexão elétrica 
nos dispositivos E/S.
Barramento de 
endereços
Conduz o endereço 
que deve ser 
selecionado na 
memória ou nos 
dispositivos de E/S. 
Geralmente é 
unidirecional, indo 
da CPU (que define 
o endereço) para a 
memória e os 
dispositivos E/S.
Barramento de controle
Transfere sinais de 
controle que ativam 
ou desativam 
dispositivos, 
selecionam modos 
de operação 
específicos, ou 
sincronizam 
circuitos.
 
 
14 
Diferentes padrões de barramento foram desenvolvidos ao longo do tempo, 
cada um com suas próprias características: 
Tabela 2 – Características dos padrões de barramento em sistemas 
computacionais 
ISA (Industry Standard 
Architecture) 
Um padrão pioneiro da IBM que facilitou a integração de 
dispositivos diversos. 
EISA (Extended ISA) 
Uma extensão do ISA com múltiplas conexões para maior 
versatilidade. 
PCI (PeripheralComponent Interconnect) 
Desenvolvido pela Intel, esse padrão tornou-se amplamente 
utilizado devido à sua natureza de domínio público, facilitando a 
interconexão de componentes periféricos. 
PCIe (PCI Express) 
O sucessor do PCI, oferece maior velocidade e eficiência. 
Diferente dos barramentos tradicionais, o PCIe utiliza conexões 
diretas e linhas de bits seriais para comunicação. 
Esses diferentes tipos de barramentos e padrões são essenciais na 
eficiência e eficácia da comunicação interna em sistemas computacionais, 
permitindo a transferência e controle de dados entre a CPU, memória e 
dispositivos periféricos (Tanenbaum, 2001). 
A Figura 8 traz um exemplo de arquitetura de barramento, considerando 
aspectos fundamentais desse universo. 
Figura 8 – Exemplo de arquitetura de barramento 
 
Fonte: Tanenbaum, 2001. 
 
 
15 
A arquitetura de barramento apresentada destaca a importância da 
coordenação entre esses elementos para garantir que dados e instruções sejam 
transmitidos corretamente e de maneira sincronizada. 
FINALIZANDO 
Nesta etapa, abordamos temas essenciais para a compreensão da 
arquitetura de computadores. Inicialmente, nos debruçamos sobre uma visão 
geral dos componentes elementares dos computadores, destacando a 
importância da CPU, memória e dispositivos de entrada/saída (E/S) no 
funcionamento básico do sistema. Partimos, então, para uma contextualização a 
respeito dos sistemas computacionais, com ênfase nas interconexões entre esses 
componentes por meio de barramentos, que facilitam a comunicação interna e a 
transferência de dados. 
Além disso, tratamos das arquiteturas RISC, CISC e VLIW, entendendo que 
cada dessas arquiteturas possui características distintas que influenciam o 
desempenho, a complexidade e a eficiência dos processadores, oferecendo 
diferentes abordagens para a execução de instruções e operações 
computacionais. Exploramos ainda a importância da memória no funcionamento 
dos computadores digitais e discutimos os diferentes tipos de memória (primária 
e secundária) e suas características, enfatizando como a memória afeta a 
velocidade e a capacidade de armazenamento e seu papel no processamento de 
dados e execução de programas. 
Por fim, abordamos o papel da entrada e saída (I/O) na comunicação 
computacional e como os dispositivos de I/O permitem a interação entre o usuário 
e o computador, possibilitando a transferência de dados externos para o sistema 
e vice-versa, essencial para a funcionalidade prática dos sistemas 
computacionais. 
 
 
 
 
16 
REFERÊNCIAS 
CARRO, L.; WAGNER, F. R. Sistemas computacionais embarcados. Jornadas 
de atualização em informática. Campinas: UNICAMP, 2003. 
CASTILHO, M. A.; SILVA, F.; WEINGAERTNER, D. Uma possível abordagem 
para o ensino introdutório de algoritmos em cursos de Computação. III SIMPÓSIO 
BRASILEIRO DE EDUCAÇÃO EM COMPUTAÇÃO. Anais..., SBC, p. 376-385. 
2023. 
GOMES, V. C. F. Fast Poisson solver para sistema híbrido reconfigurável. 
Dissertação (Mestrado em Computação Aplicada) – Instituto Nacional de 
Pesquisas Espaciais, São José dos Campos, 2012. 
HEPOLA, K.; MULTANEN, J.; JÄÄSKELÄINEN, P. Dual-IS: Instruction set 
modality for efficient instruction level parallelism. In: International Conference on 
Architecture of Computing Systems. Cham: Springer International Publishing, 
p. 17-32. 2022. 
JORDAN, M. G. Estudo do impacto da implementação de um escalonador em 
uma arquitetura multiprocessada com núcleos heterogêneos. Trabalho de 
Conclusão de Curso (Graduação em Engenharia de Computação) – Universidade 
Federal de Santa Maria, Santa Maria, 2015. 
KOWALTOWSKI, T. Von Neumann: suas contribuições à computação. Estudos 
Avançados, v. 10, p. 237-260, 1996. 
LIMA, B. R.; MOREIRA, E. T. Análise da adequação de softwares de 
benchmark para mensuração de desempenho de microcomputadores. 
Trabalho de Conclusão de Curso (Licenciatura em Computação) – Universidade 
de Brasília, Brasília, 2014. 
SILVA, L. R. M. Organização e arquitetura de computadores: uma jornada do 
fundamental ao inovador. Rio de Janeiro: Freitas Bastos, 2023. 
SOUTO, T. D. Predição de performance em ambientes multi-core com 
aceleradores compartilhados. Dissertação (Mestrado em Ciência da 
Computação) – Universidade Federal do Rio Grande do Sul, Porto Alegre, 2018. 
TANENBAUM, A. S. Organização estruturada de computadores. 4. ed. Rio de 
Janeiro: LTC, 2001. 
 
 
17 
VARDHAN, C. S.; ISRAEL, G. J.; BASIRI, M. Mohamed Asan. High Performance 
Data Level Parallelism based Instruction Set Architecture in RISC-V. In: 2023 IEEE 
7th Conference on Information and Communication Technology (CICT). 
IEEE, p. 1-6. 2023. 
 
 
 
 
 
 
 
 
 
 
 
ARQUITETURA DE 
COMPUTADORES 
AULA 3 
 
 
 
 
 
 
 
 
 
 
 
Prof. André Roberto Guerra 
 
 
 
2 
CONVERSA INICIAL 
Nesta abordagem, mergulharemos no mundo da lógica digital, também 
conhecida como lógica dos circuitos ou lógica de Boole (ou booleana). A lógica 
digital é fundamental para entendermos o funcionamento interno dos 
computadores, desde as operações básicas até as estruturas mais complexas. 
Nosso objetivo é desvendar os princípios que governam os circuitos digitais e 
como são utilizados para realizar operações lógicas essenciais no 
processamento de dados. 
Os tópicos que iremos abordar estão expostos na Figura 1. 
Figura 1 – Caminho teórico de nossas abordagens 
 
Prepare-se para um estudo repleto de informações significativas para seu 
processo formativo com exemplos práticos. A compreensão desses conceitos é 
essencial para avançarmos em nosso estudo e para nos tornarmos proficientes 
na criação e análise de circuitos digitais. 
TEMA 1 – ÁLGEBRA DE BOOLE 
A álgebra de Boole é utilizada no projeto de circuitos lógicos e é baseada 
nos princípios da lógica formal, uma área de estudo da filosofia. Foi criada pelo 
matemático britânico George Simon Boole (1815-1864), razão pela qual leva seu 
Definições da álgebra de Boole: vamos começar entendendo os conceitos
básicos e a importância da álgebra de Boole na lógica digital. Esse
conhecimento é crucial, pois serve de base para todas as operações e
circuitos que estudaremos.
Funções: exploraremos as diferentes funções booleanas, como elas são
representadas e utilizadas para expressar operações lógicas. Veremos
exemplos práticos para solidificar nosso entendimento.
Operadores e operações: discutiremos os principais operadores
booleanos (AND, OR, NOT, XOR etc.) e como eles se combinam para
realizar operações lógicas. Compreenderemos a lógica por trás de cada
operação e como elas são aplicadas nos circuitos.
Portas: finalmente, aprenderemos sobre as portas lógicas, que são os
blocos construtivos fundamentais dos circuitos digitais. Veremos como cada
tipo de porta funciona, suas representações e suas aplicações práticas.
 
 
3 
nome. Seu teorema é definido sobre um conjunto de dois elementos: (0, 1); 
(baixo, alto); (falso, verdadeiro). 
Boole descobriu que poderia usar um conjunto de símbolos matemáticos 
para representar certas afirmativas da lógica formal, sem atribuir a esses 
símbolos um significado numérico. Publicou suas descobertas em 1854, no 
trabalho Uma análise matemática da lógica. Em 1938, Claude E. Shannon (1916-
2001) demonstrou que o trabalho de Boole poderia ser usado para descrever a 
operação de sistemas de comutação telefônica (Muniz Junior, 2021; Guerra, 
2023). 
Figura 2 – Operação de sistemas de comutação telefônica 
 
Fonte: Guerra, 2023. 
A álgebra de Boole utiliza variáveis booleanas, que podem assumir 
apenas dois valores: 0 (falso) e 1 (verdadeiro). As operações fundamentais da 
álgebra de Boole incluem: AND, OR, NOT, XOR etc. (Figura 3). 
Figura 3 – Operações fundamentais da álgebra de Boole 
 
Fonte: Elaborado com base em Silva, 2020. 
AND (E): uma operação binária
que resulta em 1 se ambos os
operandos forem 1, e 0, caso
contrário.
OR (OU): uma operaçãobinária
que resulta em 1 se pelo menos
um dos operandos for 1, e 0 se
ambos os operandos forem 0.
NOT (NÃO): uma operação
unária que inverte o valor do
operando, transformando 0 em 1
e 1 em 0.
XOR (OU exclusivo): uma
operação binária que resulta em 1
se os operandos forem diferentes,
e 0 se forem iguais.
 
 
4 
Essas operações permitem a construção de expressões booleanas 
complexas que podem representar qualquer função lógica. É válido destacar 
que, inicialmente, o trabalho de Boole não recebeu ampla aceitação, pois era 
considerado abstrato e desvinculado das aplicações práticas da época. No 
entanto, no século XX, suas ideias ganharam relevância com o desenvolvimento 
da eletrônica digital e dos computadores (Muniz Junior, 2021; Guerra, 2023). 
Claude Shannon, em seu trabalho pioneiro A Symbolic Analysis of Relay 
and Switching Circuits, de 1937, demonstrou como a álgebra de Boole podia ser 
aplicada ao projeto de circuitos eletrônicos (Muniz Junior, 2021; Guerra, 2023). 
Sua contribuição foi fundamental, sobretudo porque mostrou que os princípios 
de Boole podiam ser usados para simplificar e analisar circuitos de relés, que 
são os precursores dos circuitos digitais modernos (Muniz Junior, 2021; Guerra, 
2023). Essa aplicação prática consolidou a álgebra de Boole como uma 
ferramenta fundamental na engenharia elétrica e na ciência da computação. 
O Quadro 1 apresenta alguns pensadores fundamentais sobre a álgebra 
de Boole que ajudaram a contribuir na ampliação desse universo. 
Quadro 1 – Pensadores fundamentais sobre a álgebra de Boole 
George Boole 
Figura central na criação da álgebra de Boole. Seu trabalho 
estabeleceu as bases teóricas para o estudo da lógica por meio 
de métodos matemáticos. A inovação de Boole foi perceber que 
operações lógicas podiam ser tratadas de maneira algébrica, 
possibilitando a criação de um sistema lógico-matemático 
robusto. 
Augustus De Morgan 
Contemporâneo de Boole, De Morgan fez contribuições 
significativas para a lógica e a teoria dos conjuntos. Conhecido 
por formular as Leis de De Morgan, que são fundamentais na 
simplificação de expressões booleanas e têm aplicações diretas 
na álgebra de Boole. 
Claude Shannon 
Engenheiro eletricista e matemático, foi o responsável por trazer 
a álgebra de Boole para o domínio da engenharia elétrica. Seu 
trabalho demonstrou a utilidade prática das ideias de Boole no 
projeto e análise de circuitos eletrônicos. Shannon é 
frequentemente considerado o “pai da teoria da informação”, e 
seu trabalho ajudou a pavimentar o caminho para a revolução 
digital. 
Alan Turing 
Embora não diretamente associado à álgebra de Boole, Alan 
Turing também merece menção por suas contribuições à lógica 
e à computação. Turing desenvolveu conceitos fundamentais 
sobre computabilidade e máquinas abstratas (Máquinas de 
Turing), que são profundamente influenciados pela lógica 
matemática, incluindo princípios da álgebra de Boole. 
Fonte: Elaborado com base em Cáceres Nieto, 2023. 
 
 
5 
Em síntese, a Álgebra de Boole, iniciada por George Boole e desenvolvida 
por pensadores como Augustus De Morgan e Claude Shannon, formou a base 
para a lógica digital e a computação moderna. Essa área de estudo transformou 
a forma como entendemos e aplicamos a lógica em sistemas eletrônicos, 
destacando-se como uma das contribuições mais importantes à matemática e à 
ciência da computação do século XIX ao século XX (Muniz Junior, 2021; Guerra, 
2023). Compreender o contexto histórico e os pensadores que moldaram a 
álgebra de Boole é crucial para compreender sua importância e seu impacto. 
TEMA 2 – LÓGICA DIGITAL: FUNÇÕES 
A lógica digital é a base dos sistemas eletrônicos modernos, desde 
simples circuitos até complexos computadores. As funções da lógica digital, que 
utilizam operações booleanas, são cruciais para o funcionamento desses 
sistemas. Além disso, as funções da lógica digital permitem a implementação de 
operações aritméticas, controle de processos, tomada de decisões e 
armazenamento de dados (Guerra, 2023). 
De acordo com Guerra (2023), uma ou mais variáveis e operadores 
podem ser combinados formando uma função lógica (Figura 4). 
Figura 4 – Função lógica 
 
 
Fonte: Guerra, 2023. 
Ao contrário da álgebra ordinária na matemática clássica, em que as 
variáveis podem ter qualquer valor dentro do intervalo de -∞ a +∞, as variáveis 
booleanas só podem ter dois valores: 0 e 1. Como o número de valores que cada 
variável pode assumir é finito e pequeno, o número de estados que uma função 
booleana pode assumir também é finito, o que significa que essas funções 
podem ser completamente descritas utilizando-se uma tabela que lista todas as 
combinações de valores que as variáveis de entrada e os correspondentes da 
função (saídas) podem assumir (Guerra, 2023). 
 
 
6 
De modo semelhante à lógica dos predicados, os resultados de uma 
função lógica digital podem ser expressos pela tabela-verdade, que relaciona os 
resultados (saída) de uma função lógica para todas as combinações possíveis 
de suas variáveis (entrada). Tabela A – Tabela-verdade da função Z = f(A, B) = 
A + B (Guerra, 2023). 
Tabela 1 – Tabela-verdade da função Z = f(A, B) = A + B 
A B A + B 
0 0 0 
0 1 1 
1 0 1 
1 1 1 
Fonte: Guerra, 2023. 
Nessa tabela-verdade, a função lógica Z apresenta duas variáveis, A e B, 
sendo Z = f(A B) = A+B. Dada a equação que descreve uma função booleana 
qualquer, deseja-se saber detalhadamente como essa função se comporta para 
qualquer combinação das variáveis de entrada. O comportamento de uma 
função é descrito pela sua tabela-verdade, e esse problema é conhecido como 
avaliação da função ou da expressão que descreve a função considerada. Em 
suma, deseja-se achar a tabela-verdade para a função booleana (Guerra, 2023). 
Uma tabela-verdade consiste, basicamente, em um conjunto de colunas 
nas quais são listadas todas as combinações possíveis entre as variáveis de 
entrada (à esquerda) e o resultado da função (à direita). Também é possível criar 
colunas intermediárias para listar os resultados de subexpressões contidas na 
expressão principal. Isso normalmente facilita a avaliação, principalmente no 
caso de equações muito complexas e/ou que contenham muitas variáveis 
(Guerra, 2023). 
Quando aparecem operações E e OU em uma mesma equação booleana, 
é necessário seguir a ordem de precedência, como ocorre na lógica 
proposicional. Por exemplo, expressões que utilizam parênteses têm 
precedência sobre operadores E e OU que estejam no mesmo nível. O número 
de combinações que as variáveis de entrada podem assumir pode ser calculado 
por 2n, em que n é o número de variáveis de entrada (Guerra, 2023). A Figura 5 
apresenta o procedimento para a criação da tabela-verdade com base em uma 
equação booleana. 
 
 
7 
Figura 5 – Procedimento para a criação da tabela-verdade 
 
Fonte: Elaborado com base em Guerra, 2023. 
Dada a função fW - X + Y · Z, a variável W representa a função booleana 
propriamente dita. Essa variável depende das variáveis que estão à direita do 
sinal =, ou seja, depende de X, Y, Z. Logo, as variáveis de entrada são 3. O total 
de combinações entre 3 variáveis será 22 = 8. Então, a tabela-verdade para fW 
terá 3 colunas à esquerda e 8 linhas. Seguindo o procedimento apresentado, 
criamos uma coluna na qual são listados os valores para Z (Guerra, 2023). 
Em seguida, iniciamos a avaliação propriamente dita, partindo do nível 
mais interno de parênteses. Como não há parênteses na expressão, resolvemos 
as subexpressões que envolvem a operação Y · Z. Então, criamos uma coluna 
para Y · Z, na qual são anotados os resultados do produto. Finalmente, são 
utilizados os resultados de Y · Z listados na coluna anterior para operar X + Y · 
Z. O resultado é a tabela-verdade da Tabela 2, na sequência (Guerra, 2023). 
Tabela 2 – Tabela-verdade da função fW = X + Y · Z 
X Y Z Y · Z X + Y · Z 
0 0 0 0 0 
0 0 1 0

Mais conteúdos dessa disciplina