Buscar

arquiteturar de computadores do seculo XXI

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Visão Geral da Arquitetura de Computadores 
 1 – Introdução 
Os primeiros computadores eletrônicos surgiram na década de 
1940, contudo, as primeiras máquinas de calcular que os 
inspiraram tem centenas de anos. 
Hoje vemos o computador como uma máquina composta de 
diversos componentes eletrônicos e eletromecânicos que 
atuam em conjunto e que são capazes de receber, armazenar 
e tratar dados para produzir informações. 
Os dispositivos de cálculo começaram a aparecer ainda no 
século XVI, mas foi somente a partir do século XX que tais 
sistemas se popularizaram e começaram a se mostrar 
realmente úteis. 
Atualmente as famílias de computadores podem ser 
classificadas em cinco grupos distintos: os computadores 
pessoais (PCs), os minicomputadores, os 
superminicomputadores, os computadores de grande porte 
(mainframes) e os supercomputadores. 
 
2 – Precursores das máquinas de calcular 
• Ábaco (3.500 a.C.): O mais antigo é datado de 
aproximadamente 3.500 a.C. Este ábaco da imagem foi 
encontrado no Vale entre os rios Tigre e Eufrates. Perto do 
ano de 2.600 a.C. surgiu o Suan-Pan, uma evolução do 
ábaco (fig. 1) associado ao povo chinês. Algo semelhante 
ocorreu no Japão, dando origem ao Soroban. O ábaco é 
um mecanismo manual que permite representar números 
e realizar cálculos no sistema decimal. 
 
Fig 1. Ábaco 
• Bastões de Napier (1610 - 1614): Feitos de marfim, eram 
tabelas móveis que permitiam realizar operações de 
multiplicação e divisão. Os Bastões de Napier (Fig. 2) eram 
compostos de 9 peças, sendo uma para cada dígito de 1 a 
9. Cada uma das hastes do conjunto é uma coluna de uma 
tabela de multiplicação. 
 
Fig 2. Bastões de Napier 
• Réguas de Cálculo (1621). As Réguas de Cálculo (Fig. 3) 
representaram uma grande evolução e eram usadas por 
estudantes de engenharia até meados da década de 1970. 
 
Fig 3. Réguas de Cálculo 
3 - As Gerações dos Computadores 
Apesar de auxiliar as pessoas a realizar operações de cálculos, 
os dispositivos apresentados anteriormente não podem ser 
considerados computadores. 
Se considerarmos que dispositivos mecânicos e 
eletromecânicos podem ser considerados computadores então 
podemos dividir os computadores em gerações de 
equipamentos. 
 
3.1 - Geração Zero (século XVII) 
Eram “computadores” (na verdade calculadoras) 
essencialmente mecânicos e rígidos no que diz respeito à 
execução de programas. Os representantes dessa geração 
são: 
 
• Calculadora de Pascal (1642): Apesar de ter sido um 
fracasso comercial, foi uma invenção de extrema 
importância. Blaise Pascal desenvolveu em 1642 uma 
máquina de calcular totalmente mecânica. A máquina 
ficou conhecida como Pascaline (Fig. 4) e era baseada 
em um disco para cada potência de 10, sendo que cada 
disco possuía 10 dígitos, de 0 a 9. 
 
Fig 4. Pascalina 
• Calculadora de Leibnitz (1671): Filósofo e matemático, o 
alemão Leipzig, Gottfried Wilhelm von Leibnitz (21/06/1646 
- 14/11/1716), introduziu o conceito de multiplicação e 
divisão por meio de somas e subtrações sucessivas. Sua 
invenção era uma evolução em relação a Pascalina. 
 
• Placa Perfurada (1801): Joseph Marie Jacquard introduziu 
um conceito que apesar de não ter sido usado para 
processamento de dados, serviu como inspiração. Trata-se 
de folhas perfuradas que eram usadas para controlar o 
padrão de costura em máquinas de tecelagem, como uma 
espécie de programação da máquina. 
 
• Arithmometer (1820): Charles Xavier Thomas inventou 
em 1820 a primeira máquina capaz de realizar as 4 
operações básicas da matemática que se tornou um 
sucesso comercial. Para realizar multiplicações, utilizava o 
mesmo princípio da Calculadora de Leibnitz. 
 
• Máquina Diferencial de Babbage (1823): Charles 
Babbage (1792-1871), matemático e engenheiro britânico 
desenvolveu, também baseado no princípio dos discos, 
uma máquina interessante. Babbage é considerado por 
muitos como o pai da computação moderna. A Máquina 
Diferencial de Babbage permitia calcular tabelas de 
funções (logaritmos, funções trigonométricas, etc.) sem a 
intervenção de um operador humano. Ao operador cabia 
somente iniciar a cadeia de operações, e a seguir a 
máquina tomava seu curso de cálculos. 
 
• Máquina Analítica (1833): Charles Babbage projetou 
também uma máquina bem avançada, a Máquina 
Analítica. Ada Lovelace criou programas para a máquina 
tornando-se assim a primeira pessoa a programar 
computadores no mundo. A máquina analítica podia ser 
programada para realizar várias funções e era constituída 
de uma unidade de controle de memória aritmética e de 
entrada e saída. Sua operação era governada por um 
conjunto de cartões perfurados. 
• Máquina de Hollerith (1886): Ao perceber a demora 
(cerca de 10 anos) no processamento do censo nos 
Estados Unidos no qual a maioria das perguntas possuía 
respostas binárias (sim ou não), Herman Hollerith, 
funcionário do Departamento de Recenseamento, 
idealizou um cartão perfurado que seria capaz de 
armazenar as informações coletadas no censo e uma 
máquina capaz de tabular tais informações. Assim surgiu a 
Máquina Tabuladora ou Máquina de Recenseamento, 
que era composta das seguintes unidades: 
 
• Unidade de controle, responsável por dirigir a sequência de 
operações. 
• Entrada de dados que utilizava cartões perfurados. 
• Saída, que também utilizava cartões perfurados, 
perfurando-os. Esses cartões poderiam posteriormente ser 
usados como entradas. 
• Saída impressa que apresentavam os resultados finais. 
Anos mais tarde, Hollerith fundou uma companhia, a Tabulating 
Machine Company. Em 1924, tal empresa mudou de nome, 
tornando-se a International Business Machines Corporation, 
hoje mais conhecida como IBM. 
3.2 - Primeira Geração (1930-1958) 
Esta geração é marcada pelo surgimento de relés e válvulas 
eletrônicas (fig. 5). Esses computadores permitiam a realização 
de cálculos automaticamente. Relés são eletroímãs que 
possuem a função de abrir ou fechar circuitos elétricos, já as 
válvulas, são dispositivos bem mais rápidos do que os relés, em 
que os elétrons circulam no vácuo. 
 
Fig 5. Relé (à esquerda) e Válvula (à direita) 
Todos os computadores de primeira geração eram baseados 
nessas tecnologias, e bastavam poucas horas de uso para 
apresentarem defeitos. Seus dispositivos de entrada e saída 
eram primitivos e seus cálculos eram realizados em alguns 
milésimos de segundos. O cartão perfurado era sua principal 
fonte de leitura de dados. 
Ainda que representassem um salto tecnológico em relação a 
seus antecessores, os computadores da primeira geração 
tinham várias limitações, dentre elas, o custo elevado, lentidão, 
pouca confiabilidade, o grande espaço que ocupavam e a 
quantidade de energia que consumiam, inclusive para a 
dissipação do calor das quase 20 mil válvulas que utilizavam, em 
média. 
Os principais computadores desta geração foram: 
• MARK I: criado entre 1937 e 1944, durante a II Guerra 
Mundial. Praticamente era uma calculadora gigante 
idealizada por H. Aiken na Universidade de Harvard, foi 
considerado o primeiro projeto de computador. Integrava 
conceitos de computadores digitais e analógicos, pois tinha 
sistema eletrônico e mecânico na mesma máquina. Seus 
sucessores foram o MARK II, III e IV. 
 
• ABC (Atanasoff Berry Computer) criado em 1939, foi o 
primeiro a usar válvulas para circuitos lógicos e o primeiro 
a ter memória para armazenar dados. Seu projeto foi 
baseado em quatro princípios: 
 
• Utilizar a eletricidade como meio; 
• Utilizar a lógica binária para operações; 
• Usar condensadores para memória que pudesse ser 
regenerado; 
• Realizar cálculos por ações lógicas diretas, e não vias 
convencionais de numeração. 
 
• ENIAC (Electronic Numeric Integrator and Calculator): 
criado entre 1943 e 1946, foi considerado o primeiro 
grande computador digital da história. Não utilizava 
nenhum programa de armazenamento interno, todos os 
programas que utilizava eram introduzidos por cabos que 
o preparavapara suas operações de cálculo, que podiam 
durar semanas. Por possuir diversos componentes 
discretos, não funcionava por muitos minutos sem que um 
deles fosse danificado. O ENIAC recebia dados através de 
cartões perfurados e seus programas eram 
recondicionados através de reconfigurações nos seus 
circuitos. Permaneceu operacional por mais de uma 
década e foi a partir dele que o conceito de programa 
armazenado introduzido por John von Neuman foi 
estabelecido. Deu origem ao EDVAC (Electronic Discrete 
Variable Automatic Computer), o IBM 650 (o primeiro 
computador da IBM), e o UNIVAC (Universal Automatic 
Computer). 
Uma curiosidade aqui. Como esses equipamentos eram grandes 
(ocupavam andares inteiros de um prédio), e muitos de seus 
componentes emitiam luz e calor, era comum a entrada de 
insetos em seu interior. Frequentemente os insetos (bug, em 
Inglês) morriam eletrocutados e causavam a queima de algum 
circuito. Daí a origem do termo bug para problemas/falhas em 
aplicações computacionais usado comumente até hoje. 
3.3 - Segunda Geração (1955-1965) 
O surgimento dos transistores deu origem a diversos novos 
projetos. A segunda geração de computadores apresentou as 
memórias com anéis ferromagnéticos, sendo as fitas magnéticas 
a segunda forma de armazenamento. Essas fitas possuíam 
capacidade de armazenamento e acesso muito maior e mais 
rápido do que as fitas perfuradas. Também foi nessa geração 
que surgiram as memórias “RAM”. 
Os computadores se tornaram mais rápidos, mais baratos e 
também menores. Passaram a consumir menos energia, 
possuíam maior confiabilidade e tinham menos problemas com 
o aquecimento. 
3.4 - Terceira Geração (1965-1980) 
Transistores foram substituídos por circuitos integrados, o que 
permitiu a substituição de dezenas de transistores em uma única 
peça de silício, originando assim computadores ainda menores, 
mais rápidos e baratos. Podemos dizer que foi nessa geração 
que surgiram os microprocessadores. 
Para o armazenamento dos dados eram utilizados discos 
magnéticos o que permitia acesso direto a arquivos grandes. 
Também foi nessa geração que surgiu o conceito de “família de 
computadores compatíveis”, o que facilitava a migração dos 
sistemas, quando isso se fazia necessário. 
3.5 - Quarta Geração (1980 …em diante) 
Com a tecnologia de Integração de Alta Escala (LSI - Large 
Scale of Integration), concebida na década de 1970, foi possível 
combinar até 65 mil componentes em uma só pastilha de silício 
- chip. Durante a década de 1980 o número de componentes que 
podiam ser integrados passou de milhares para milhões e assim 
surgiram novos computadores, menores, mais velozes e ainda 
mais poderosos do que aqueles da geração anterior. 
Em todas as gerações passadas existia algo em comum entre 
todos os computadores, afinal todos possuíam uma única CPU 
para executar o processamento. Entretanto, a partir do século 
XXI, surgiram computadores com mais de uma CPU, permitindo 
assim aos computadores atingirem velocidades de 
processamento próximas à velocidade da luz. 
4 - Tipos de Arquiteturas de Computadores 
Ao longo dos anos diferentes tipos de arquiteturas de 
computadores foram surgindo. Cada uma delas com algumas 
características próprias. Neste contexto, evita-se afirmar que 
uma arquitetura seja melhor que outra, entende-se que sejam 
diferentes e que cada uma delas seja mais adequada para 
determinados tipos de situações do que outras. 
Dentre os tipos mais comuns de arquiteturas de computadores, 
podemos citar as seguintes: 
• Arquitetura de Von Neumann: a principal característica é 
a possibilidade de um computador digital poder armazenar 
seus programas no mesmo espaço de memória em que 
são armazenados os dados. Este modelo utiliza uma 
Unidade Central de Processamento (CPU) e uma de 
armazenamento (Memória) para comportar dados e 
instruções. 
 
A arquitetura de Von Neumann possui os seguintes 
componentes: 
• Uma memória; 
• Uma unidade aritmética e lógica (ULA); 
• Uma unidade central de processamento (CPU), 
composta por diversos registradores; 
• Uma Unidade de Controle (UC), cuja função é a 
mesma da tabela de controle da Máquina de Turing 
universal: buscar um programa na memória, instrução 
por instrução, e executá-lo sobre os dados de entrada 
 
• Arquietura de Harvard: é baseada em conceitos mais 
recentes do que a arquitetura de Von Neumann devido à 
necessidade de fazer com que os microcontroladores 
sejam mais rápidos. Sua principal diferença em relação às 
demais está no fato de que esta arquitetura possui duas 
memórias diferentes e independentes. Tem como principal 
característica o acesso à memória de dados de modo 
separado em relação à memória de programa. 
5 - O Sistema BIOS 
Com a redução dos custos de produção dos computadores, de 
seu tamanho e aumento de sua potência, a presença de 
computadores nas residências para uso doméstico e pessoal 
virou uma realidade. Entretanto, a maioria dos sistemas 
operacionais eram desenvolvidos especificamente para 
determinadas arquiteturas de computadores, sendo necessário 
desenvolver um novo sistema operacional quando essa 
arquitetura mudasse. 
Isso dificultava a inserção de computadores em mais lares e 
também era um grande problema para a indústria de software 
e também de hardware. Sem muitos detalhes, pode-se afirmar 
que a solução encontrada foi a de inserir como componente de 
hardware uma memória de conteúdo permanente e que fosse 
capaz de armazenar todas as informações básicas do 
computador além de realizar uma inicialização prévia de todo o 
sistema computacional. Tal sistema ficou conhecido como 
BIOS e o local no qual ele fica armazenado, foi chamado de 
ROM. 
Obviamente os sistemas operacionais modernos também 
tiveram que passar por adaptações e o resultado são sistemas 
operacionais que podem ser instalados em praticamente 
qualquer arquitetura computacional. 
Como parte da BIOS, um sistema com interface gráfica simples 
mas amigável foi desenvolvido e a partir desse sistema o 
usuário pode verificar informações sobre o computador e 
também interferir em seu funcionamento em nível de 
componentes. Este sistema é o SETUP da BIOS, e ainda que 
possa variar de fabricante para fabricante, seu CORE (núcleo) 
permanece o mesmo. 
5.1 - Códigos de Erros do BIOS 
Como dito anteriormente, a depender do fabricante, algumas 
características do BIOS podem mudar, mas seu “coração”, 
CORE, é praticamente o mesmo para todos. Uma das 
funcionalidades do BIOS é fazer a verificação do sistema 
durante sua inicialização e caso alguma falha seja encontrada, 
emitir avisos para que o usuário possa providenciar os devidos 
reparos. Alguns dos códigos de erro do BIOS são: 
• 1 Bip Curto: Post Executado com sucesso: Este é um Bip 
feliz emitido pelo BIOS quando o POST é executado com 
sucesso. Caso o seu sistema esteja inicializando 
normalmente e você não esteja ouvindo este Bip , verifique 
se o speaker está ligado à placa mãe corretamente. 
• 1 Bip longo: Falha no Refresh (refresh Failure) : O circuito 
de refresh da placa mãe está com problemas, isto pode ser 
causado por danos na placa mãe ou falhas nos módulos 
de memória RAM 
• 1 Bip longo e 2 bips curtos ou 1 Bip longo e 3 bips 
curtos: Falha no Vídeo: Problemas com o BIOS da placa 
de vídeo. Tente retirar a placa, passar borracha de vinil em 
seus contatos e recolocá-la, talvez em outro slot. Na 
maioria das vezes este problema é causado por mau 
contato. 
• 2 bips curtos: Falha Geral: Não foi possível iniciar o 
computador. Este problema é causado por uma falha grave 
em algum componente que o BIOS não foi capaz de 
identificar. Em geral o problema é na placa mãe ou nos 
módulos de memória. 
• 2 Bips longos: Erro de paridade: Durante o POST, foi 
detectado um erro de paridade na memória RAM. Este 
problema pode ser tanto nos módulos de memória quanto 
nos próprios circuitos de paridade. Para determinar a 
causa do problema, basta fazer um teste com outros 
pentes de memória. Casoesteja utilizando pentes de 
memória sem o Bit de paridade você deve desativar a 
opção “Parity Check” encontrada no Setup. 
• 3 Bips longos: Falha nos primeiros 64 KB da memória 
RAM (Base 64k memory failure). Foi detectado um 
problema grave nos primeiros 64 KB da memória RAM. Isto 
pode ser causado por um defeito nas memórias ou na 
própria placa mãe. Outra possibilidade é o problema estar 
sendo causado por um simples mal contato. Experimente 
retirar os pentes de memória, limpar seus contatos usando 
uma borracha de vinil (aquelas borrachas plásticas de 
escola) e recolocá-los com cuidado. 
• 4 Bips Longos: Timer não operacional: O Timer 1 não está 
operacional ou não está conseguindo encontrar a memória 
RAM. O problema pode estar na placa mãe (mais provável) 
ou nos módulos de memória. 
• 5 Bips: Erro no processador O processador está 
danificado, ou mal encaixado. Verifique se o processador 
está bem encaixado, e se por descuido você não esqueceu 
de baixar a alavanca do soquete Zif (acontece nas 
melhores famílias. 
• 6 Bips: Falha no Gate 20 (8042 – Gate A20 failure): O gate 
20 é um sinal gerado pelo chip 8042, responsável por 
colocar o processador em modo protegido. Neste caso, o 
problema poderia ser algum dano no processador ou 
mesmo problemas relacionados com o chip 8042 
localizado na placa mãe. 
• 7 Bips: Processor exception (interrupt error): O 
processador gerou uma interrupção de exceção. Significa 
que o processador está apresentando um comportamento 
errático. Isso acontece às vezes no caso de um overclock 
mal sucedido. Se o problema for persistente, experimente 
baixar a frequência de operação do processador. Caso não 
dê certo, considere uma troca. 
• 8 Bips: Erro na memória da placa de vídeo (display 
memory error) : Problemas com a placa de vídeo, que 
podem estar sendo causados também por mal contato. 
Experimente, como no caso das memórias, retirar a placa 
de vídeo, passar borracha em seus contatos e recolocar 
cuidadosamente no slot. Caso não resolva, provavelmente 
a placa de vídeo está danificada. 
• 9 Bips: Erro na memória ROM (rom checksum error): 
Problemas com a memória Flash onde está gravado o 
BIOS. Isto pode ser causado por um dano físico no chip do 
BIOS, por um upgrade de BIOS mal sucedido ou mesmo 
pela ação de um vírus da linhagem do Chernobil. 
• 10 Bips: Falha no CMOS shutdown register (CMOS 
shutdown register error): O chamado de shutdown register 
enviado pelo CMOS apresentou erro. Este problema é 
causado por algum defeito no CMOS. Nesse caso será um 
problema físico do chip, não restando outra opção senão 
trocar a placa-mãe. 
• 11 Bips: Problemas com a memória cache (cache memory 
bad): Foi detectado um erro na memória cache. 
Geralmente quando isso acontece, o BIOS consegue 
inicializar o sistema normalmente, desabilitando a memória 
cache. Mas, claro, isso não é desejável, pois deteriora 
muito o desempenho do sistema. Uma coisa a ser tentada 
é entrar no Setup e aumentar os tempos de espera da 
memória cache. Muitas vezes com esse “refresco” 
conseguimos que ela volte a funcionar normalmente. 
Principais Tipos de Computação 
1 – Introdução 
Atualmente (até o ano de 2020 pelo menos), podemos encontrar 
diversos tipos de computadores. Computadores não são 
somente equipamentos de médio ou grande porto, não são 
somente os computadores pessoais (PC’s) ou notebooks, que 
estão presentes em diversas empresas e residências. 
Computadores podem ser qualquer dispositivo eletroeletrônico 
capaz de executar instruções de software, não importando para 
isso se o referido dispositivo possui uma arquitetura complexa 
ou não. 
Diferentes necessidades levam a criação de diferentes tipos de 
computadores, alguns com maior e outros com menor 
capacidade de processamento e armazenamento, não. Ao 
classificarmos os tipos de computadores, podemos separá-los 
de acordo com sua arquitetura, finalidade, características 
tecnológicas, entre outros. 
2 – Computação Monociclo e Multiciclo 
Antes de iniciar é importante esclarecer que veremos um pouco 
mais sobre este assunto em outras aulas. Outro ponto 
importante a ser considerado, é que para entendermos a 
diferença entre a computação monociclo e multiciclo, é preciso 
antes compreender quais são as fases de um processo de 
software. 
2.1 – Ciclo de Vida de um Processo 
Apesar de este ser um conteúdo oriundo de outra disciplina, seu 
entendimento aqui facilitará na compreensão do que são ciclos 
de CPU e de como as tecnologias monociclo e multiciclo se 
comportam e como podem interferir no desempenho do sistema 
computacional em si. Quanto às fases do ciclo de vida de um 
processo, podemos dividi-las da seguinte forma: 
• Novo: Um novo processo foi aidionado a fila de execuções, 
então a CPU deverá buscar os dados necessários para 
executar o processo; 
• Pronto: O processo encontra-se pronto para ser 
executado, nesse ponto ele pode ser enviado para a CPU 
pois os dados básicos para sua execução já foram 
selecionados; 
• Em Execução: O processo está na CPU sendo executado; 
• Em Espera: O processo executou alguma operação de 
Entrada e Saída, ou depende de algum dado que deve ser 
fornecido por outro processo ou que não foi previamente 
carregado; 
• Terminado: O processo encerrou seu ciclo de execução. 
A figura 2.1 representa de este ciclo de forma mais lúdica. 
 
Figura 2.1. Ciclo de vida de um processo 
Em uma arquitetura monociclo, somente um processo pode ser 
executado a cada ciclo de CPU, isso significa dizer que nenhum 
outro processo poderá ser candidato a entrar na CPU até o 
processo em execução entre na fase de terminado. Estamos 
dizendo então que, mesmo que existam outros processos na fila 
de novos, este processo somente seguirá para a fila de pronto 
quando o processo que já está na CPU seguir para terminado. 
Mas arquiteturas multiciclo por sua vez, quando um processo é 
movido para a fila de processos em espera, um processo que 
se encontra na fila de pronto pode ser encaminhado para a 
CPU. Processos que estão em espera geralmente não 
dependem de qualquer ação da CPU, e por este motivo a CPU 
pode ser direcionada a execução de outros processos. 
3 – Computação Linear, Pipeline e Paralela 
Além dos modelos de arquiteturas citados no tópico 2, podemos 
também citar as arquiteturas lineares, pipeline e paralelas. Estes 
tópicos são apresentados separadamente para deixar claro o 
fato de que uma arquitetura não necessariamente exclui a outra. 
A respeito dos modelos de arquiteturas que foram citadas: 
• Arquitetura Linear: via de regra, para toda arquitetura 
monociclo é também aplicada uma arquiteutra linear, ou 
seja, modelo de processamento no qual um processo inicia 
e finaliza seu ciclo de forma linear, sem interrupções ou 
desvio para ouro processo durante sua execução. 
• Arquitetura Pipeline: aplicada como forma de melhorar a 
performance em arquiteturas lineares mas capazes de 
operar em multiciplo, a arquietuta pipeline permite que o 
processador inicie outro processo enquanto um processo 
em execução encontra-se em estado de espera ou até 
mesmo pronto. Dessa forma, a CPU atua como uma linha 
de produção, os praocessos são vistos em várias fases e 
mais de um processo pode estar em executando em um 
estado de pseudo-paralelismo, cada um em um 
determinado estágio de seu ciclo de vida. 
• Arquitetura Palalela: pode executar os processos tanto no 
modelo linear quanto em pipeline. Nesse tipo de arquitetuta 
tem-se ou mais de uma CPU ou uma CPU com mais de um 
núcleo. Dessa forma nada impede que mais de um 
processo esteja em execução no mesmo espaço de tempo, 
basta somente que esses processos não estejam sendo 
executados na mesma CPU ou núcleo. 
 
Figura 2.2. Processamento Paralelo 
De fato essas não são as únicas, mas são as arquiteturas mais 
comumente utilizadas nos computadores mais acessíveis (até o 
momento de preparação desse material). O que podemos 
afirmar é que os componentes de hardware evoluem 
velozmente, e que logo teremosnovos modelos de arquitetura, 
a exemplo, citamos a computação quântica (DA SILVA, 2018). 
4 – Tolerância a Falhas 
Assim como ocorre em diversas outras áreas do conhecimento, 
algumas funções ou necessidades requerem mais atenção e 
comprometimento do que outras. Vamos por exemplo comparar 
duas profissões. Não queremos aqui comprar o mérito entre as 
duas, mas sim analisar as consequências que podem resultar de 
falhas em cada uma das profissões. 
Supondo que um médico cirurgião cometa um erro grave durante 
um procedimento cirúrgico, o pior resultado que podemos ter é 
a perda de uma vida. Agora, suponha que um confeiteiro cometa 
o erro grave durante a preparação de um bolo de casamento. O 
pior resultado que podemos ter são noivos bem furiosos (claro, 
isso pode ser muito perigoso). 
Com essa comparação queremos deixar claro que, alguns 
sistemas computacionais devem possuir a capacidade de tolerar 
e se recuperar de falhas com maior agilidade do que outros. Um 
sistema de navegação de um avião por exemplo, este tipo de 
sistema não pode ser tão suscetível a falhas quanto o sistema 
de um computador pessoal. Então é correto dizer que, quanto 
mais “importante” for a finalidade para a qual o dispositivo está 
sendo desenvolvido, maior deverá ser sua capacidade de 
continuar em operação mesmo em caso de falhas. 
A tolerância a falhas pode ser obtida tanto através da 
implantação de componentes de hardware desenvolvidos 
especificamente para verificar a existência de falhas e tentar 
contornar ou reparar essas falhas, caso ocorram, como também 
através de uma técnica de redundância do hardware. Com isso, 
caso um falhe, o outro entra imediatamente em operação. 
5 – Comunicação e Sincronização Entre Computadores 
Outra questão importante quando se considera os tipos de 
arquiteturas de computadores, é a forma como ocorrem a 
comunicação entre os componentes de um computador e até 
mesmo entre dois ou mais dispositivos computacionais 
diferentes. 
Nós nos referimos anteriormente a possibilidade da computação 
paralela, ou sea, processos sendo executados em paralelo, no 
mesmo espaço de tempo, mas em CPU’s ou núcleos diferentes. 
Entretanto, um processo não consome somente recursos de 
CPU, processos também consomem memória, e quando 
levamos isto em consideração, então devemos nos preocupar 
na forma como a comunicação e sincronização desses 
processos ocorrem. 
A bem da verdade é preciso dizer que grande parte desse 
problema fica a cargo do sistema operacional. Ao hardware cabe 
fornecer os recursos, ao software fica a responsabilidade de 
administrar, de forma correta e eficiência, esses recursos. Um 
desses recursos são as memórias, e no que se refere às 
memórias, um dos modelos mais comum de arquitetura é, de 
acordo com a Taxonomia de Flynn é o modelo MIMD - Multiple 
Instruction Multiple Data (VALDEVINO, 2011), e suas principais 
características são: 
• Memória Compartilhada com espaço de endereçamento 
único e comunicação através de Load e Store nos 
endereços de memória. 
• Memória Privativa com espaço de dendereçamento distinto 
para cada processador e comunicação através da troca de 
mensagens através das operações send e receive. 
Posteriormente estudaremos um pouco mais sobre os modelos 
propostos pela Taxonomia de Flynn. Entretanto, é altamente 
recomendado que, sendo possível, você estude as bibliografias 
utilizadas na confecção desse material. 
Sistemas Numéricos e Circuitos Lógicos em 
Arquiteturas Computacionais 
1 – Sistemas Numéricos 
Ao longo da história diversos tipos de sistemas de 
numeração surgiram. Acredita-se que tais sistemas surgiram 
principalmente devido à necessidade humana de contagem 
mesmo em formas rudimentares de agricultura e pecuária 
Dessa forma foram sendo criados códigos e símbolos 
para representar valores e operações entre eles. 
Todo sistema numérico tem o mesmo propósito, variando 
principalmente em relação a seus símbolos e o que cada um 
deles representa. 
Em nosso cotidiano, o sistema de numeração que 
utilizamos é o sistema decimal, já na computação, os sistemas 
numéricos mais utilizados são o sistema binário, sistema 
octal e o sistema hexadecimal. 
1.1 – Sistema Decimal 
Este é o sistema numérico mais conhecido e utilizado em 
todo o mundo. É composto por 10 elementos cujos símbolos 
são 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9,sistemas de base 10. Este tipo 
de sistema é muito aplicado na matemática, apesar de já terem 
sido, sem sucesso, aplicados na computação para 
representação de dados (STALLINGS, 2010). A nota 
1.2 – Sistema Binário 
Este é o sistema numérico dos computadores e da grande 
maioria dos dispositivos eletrônicos. O sistema binário possui 
somente dois elementos, 0 e 1. É como decidir entre verdadeiro 
e falso. Combinando 0´s e 1´s pode-se representar qualquer 
outro número e codificar informação de outras naturezas tais 
como sons, imagens, vídeos, etc. Isso vale para outros 
sistemas, mas a base binária está na raiz da computação ainda 
nos dias de hoje. 
1.3 – Sistema Octal 
Este sistema de numeração é também utilizado na 
matemática e na ciência da computação. Também conhecido 
como sistema de base 8, conta com 8 elementos para formação 
de quaisquer outros valores, são eles: 0, 1, 2, 3, 4, 5, 6 e 7. 
1.4 – Sistema Hexadecimal 
Também muito aplicado na computação, o sistema 
hexadecimal, ou sistema de base 16, possui 16 elementos em 
sua composição, e permite formar qualquer sequência de 
valores utilizando os seguintes elementos: 0, 1, 2, 3, 4, 5, 6, 7, 
8, 9, A (representa 10), B (representa 11), C (representa 12), 
D(representa 13), E (representa 14), F(representa 15). 
2 – Relações Entre as Bases Numéricas 
Para cada um dos sistemas apresentados existe a 
possibilidade de conversão das bases e a realização de 
operações básicas da matemática. 
2.1 - 
Também é possível encontrar na internet uma calculadora 
que realiza a conversão de bases, basta clicar no link: 
https://www.calculadoraonline.com.br/conversao-bases Por 
fim, apresentamos na Figura 3.1 uma tabela com a relação 
entre cada elemento de cada uma das bases apresentadas: 
 
 
Figura 3.1. Tabela de Relação entre os elementos das bases decimal, binária, octal e 
hexadecimal 
Para a computação, conhecer as bases binárias da 
relação que existe entre elas é extremamente importante. Os 
computadores, mesmo os mais modernos, representam todos 
os seus dados com base nesses valores, com isso, pode ser 
necessário, durante o processo de interação com o 
computador, compreender essa relação para se obter o 
resultado desejado em uma situação específica. 
3 – Representação dos Dados 
https://www.calculadoraonline.com.br/conversao-bases
O funcionamento dos computadores está baseado na 
presença ou não de corrente elétrica em seus componentes. 
Para ser mais específico, verifica-se a existência ou não de 
corrente em determinadas conexões existentes em seus 
componentes. 
Com base na existência ou ausência de corrente (1 ou 0 
– binário), o componente realizará ou não uma determinada 
ação, podemos dizer então que, o conjunto de presença e 
ausência de corrente em determinadas portas de determinados 
componentes determinam ações e dados que o computador irá 
processar. 
Representar todos os dados necessários utilizando 
somente a base binária se mostrou um grande desafio e tornou 
o sistema mais complexo do que o necessário, Convencionou-
se utilizar a base hexadecimal para representação dos dados 
por demandar muito menos espaço de memória. 
Para facilitar a relação entre os valores dos sistemas 
numéricos e os símbolos do alfabeto e demais caracteres 
especiais, as principais tabelas que mantém as relações entre 
esses valores são a ASCii, EBCDIC e UNICODE. 
 
 
 4 - Portas lógicas e circuitos lógicos 
 
 A simbologia de portas lógicas é bastante comum em projetos 
de circuitos de computadores. Observe a relação entre as 
entradas e saídas de cada símbolo, lembrando sempre que 
sinais lógicos variam entre0 e 1. 
 
https://web.fe.up.pt/~ee96100/projecto/Tabela%20ascii.htm
http://www.cadcobol.com.br/tabascii.htm
https://www.tamasoft.co.jp/en/general-info/unicode.html
 
Por meio de portas lógicas montamos circuitos lógicos que 
são a essência dos computadores. 
Os dois circuitos abaixo mostram as mesmas saídas para 
um mesmo conjunto de sinais lógicos. Observe a equivalência 
entre as expressões matemáticas correspondentes aos 
circuitos. 
 
 
Comunicação entre Componentes 
1 – Introdução 
Os diversos componentes que fazem parte de um sistema 
computacional precisam ser capazes de trocar informações 
entre si. 
Para viabilizar a comunicação entre os componentes, é 
necessário um suporte físico e lógico. Em termos de arquitetura 
de computadores, este meio de comunicação é conhecido 
como barramento. 
2 – Barramentos 
Chamamos de barramento o conjunto de cabos, fios, 
portas, circuitos impressos e outros que servem de via de 
comunicação para e entre os componentes que fazem parte do 
computador (STALLINGS, 2010). Alguns autores chamam 
barramentos de “autoestrada de dados”, devido a sua função 
de servir como via de transporte de dados, ou seja, via de 
comunicação. 
2.1 – Objetivos dos Barramentos 
Além de servir como via para fluxo de dados na arquitetura 
computacional, os barramentos possuem também o objetivo de 
reduzir o número de vias de comunicação entre os diversos 
componentes que fazem parte do computador. Isso é possível 
pois os barramentos são a única vida de dados disponível para 
esses componentes. 
 
 
Figura 4.1. Comparação ligação sem barramentos e ligação com barramentos 
3 – Funcionamento dos Barramentos 
Geralmente os barramentos possuem entre 50 e 100 
linhas físicas que são classificadas em: 
• Barramento de dados: também conhecido como 
barramento de memória ou barramento de 
endereçamento, este barramento é unidirecional e 
responsável por transportar endereços de memória; 
• Barramento de endereços: este barramento é 
bidirecional, ou seja, pode transmitir dados para 
qualquer parte de suas pontas, ou seja, pode tanto 
trazer dados para o processador como levar dados 
do processador para outros componentes; e 
• Barramento de controle: também bidirecional, o 
barramento de controle é também conhecido como 
“barramento de encomendas”. Sua responsabilidade 
é transportar ordens e sinais de sincronização. 
É importante frisar que, bidirecionais ou não, os 
barramentos quando ocupados, ficam exclusivos para o 
componente que assumiu seu controle até que este 
componente renuncie ao controle do barramento. 
1. 
2. 
– Modelos de Barramentos 
 
 
Existem diversos tipos de barramentos sendo que os mais 
conhecidos são: 
• ISA (Industry Standard Architecture): primeiro 
barramento utilizado nos PC’s. Foi lançado no 
começo dos anos 1990 e começou a ser substituído 
pelo local PCI na década de 2000. O barramento ISA 
é formado pelos slots de 8 e 16 bits existentes nas 
placas de CPU, além de alguns dos seus circuitos 
internos. Foi originado no IBM PC, na versão de 8 
bits, e posteriormente aperfeiçoado no IBM PC AT, 
chegando à versão de 16 bits. 
Possui as seguintes características: 
• Transferências em grupos de 8 ou 16 bits; 
• Clock de 8 MHz. 
Para saber mais sobre esse barramento 
visite https://www.gta.ufrj.br/grad/01_1/barramento/
parte_isa.htm. 
 
• EISA (Extended Industry Standard Architecture): 
este barramento possui as mesmas dimensões de 
um slot ISA de 16 bts, contudo, é mais alto, além de 
possuir duas linhas de contatos. Sua linha superior 
possui a mesma configuração de pinagem de um 
ISA de 16 bits, o que garante a compatibilidade com 
periféricos que fazem uso desse padrão, a linha 
inferior no entanto possui 90 novos contatos e são 
utilizados por placas de 32 bits. Para saber mais 
sobre esse modelo acesse 
https://www.hardware.com.br/termos/eisa. 
• VLB (VESA Local Bus): Lançado pela Video 
Electronics Standards Association em 1993, este é 
um barramento de expansão com velocidades muito 
superiores ao ISA e EISA. Atua na mesma 
frequência que a placa mãe. Trata-se de um 
barramento de 32 bits. As desvantagens do VLB 
incluem a falta de suporte a Bus Mastering e a Plug-
and-Play, além de uma alta taxa de utilização do 
processador e limitações elétricas, que permitem um 
máximo de 2 ou 3 slots VLB por máquina. 
• Para saber mais sobre esse modelo de 
barramento visite 
https://www.hardware.com.br/termos/vlb. 
 
• PCI (Peripheral Component Interconnect): 
Concebido inicialmente para atuar com a frequência 
de 33 MHz e com 32 trilhas de comunicação no 
modo half-duplex. Depois de alguns anos, foi 
https://www.gta.ufrj.br/grad/01_1/barramento/parte_isa.htm
https://www.gta.ufrj.br/grad/01_1/barramento/parte_isa.htm
https://www.hardware.com.br/termos/eisa
inserida uma versão com frequência de 66 MHz. 
Assim como a interface USB, o barramento PCI 
também é Plug And Play. 
• Mais informações sobre o barramento podem 
ser acessadas em: 
https://www.hardwarecentral.net/single-
post/2018/01/10/o-barramento-pci. 
• AGP (Accelerated Graphics Port): Criada pela Intel, 
seu propósito era resolver problemas de 
desempenho no processamento de gráficos 3D 
apresentados por placas de vídeo PCI. Por padrão o 
modelo AGP transfere dados a 66 MHz e 32 bits. 
• Mais informações em: 
https://www.gta.ufrj.br/grad/01_1/barramento/p
arte_agp.htm. 
• AMR (Audio and Modem Riser): Inicialmente criada 
para atuar com circuitos de som e modem, para que 
possam ser utilizadas é preciso que se tenha no 
chipset circuitos de áudio AC’97 e de modem MC’97. 
• CNR (Communications and Network Riser): Após a 
AMR a Intel lançou o padrão CNR, este padrão 
possui slot idêntico ao AMR, contudo permite que 
sejam instalados riser cards com funções de áudio, 
modem e rede. 
Para saber mais sobre os modelos AMR e CNR, 
visite o site: 
http://191.13.234.92/curso/info/miguel/Arquivos/Fun
damentos/Hardware_Total/cap12%20-
%20Barramentos%20da%20placa%20de%20CPU.
pdf . 
Além destes, outros tipos e modelos de barramentos 
estão disponíveis no mercado, dentre eles podemos citar os 
barramentos locais, de memória, USB, SCSI, IDE e Firewire. 
Recomenda-se a leitura deste material para reforçar seu 
aprendizado. 
4 – Hierarquia dos Barramentos 
https://www.hardwarecentral.net/single-post/2018/01/10/o-barramento-pci
https://www.hardwarecentral.net/single-post/2018/01/10/o-barramento-pci
https://www.gta.ufrj.br/grad/01_1/barramento/parte_agp.htm
https://www.gta.ufrj.br/grad/01_1/barramento/parte_agp.htm
http://191.13.234.92/curso/info/miguel/Arquivos/Fundamentos/Hardware_Total/cap12%20-%20Barramentos%20da%20placa%20de%20CPU.pdf%C2%A0
http://191.13.234.92/curso/info/miguel/Arquivos/Fundamentos/Hardware_Total/cap12%20-%20Barramentos%20da%20placa%20de%20CPU.pdf%C2%A0
http://191.13.234.92/curso/info/miguel/Arquivos/Fundamentos/Hardware_Total/cap12%20-%20Barramentos%20da%20placa%20de%20CPU.pdf%C2%A0
http://191.13.234.92/curso/info/miguel/Arquivos/Fundamentos/Hardware_Total/cap12%20-%20Barramentos%20da%20placa%20de%20CPU.pdf%C2%A0
Desde que os computadores começaram a ganhar 
visibilidade comercial, o tamanho dos equipamentos passou a 
fazer parte da real preocupação dos engenheiros eletrônicos e 
da computação. Assim sendo, adicionar mais barramentos ao 
conjunto, como forma de resolver possíveis gargalos de 
comunicação ou até mesmo melhorar o desempenho dos 
equipamentos não era uma opção viável. Uma forma de 
resolver a questão foi a criação de uma estrutura hierárquica 
para os barramentos (STALLINGS, 2010) (Figura 4.2). 
 
 
Figura 4.2. Hierarquia dos Barramentos 
Tal estrutura em hierarquia permite que os barramentos locais e 
de sistema ocupem-se de atividades diretamente relacionadas a 
CPU e Memórias, enquanto outros dispositivos podem estar no 
barramento de alta velocidade e periféricos em barramentos de 
expansão. 
Entendendo a Unidade Central de Processamento do 
Computador 
1 – Introdução 
A CPU corresponde ao cérebro docomputador. Mas 
quando nos referimos à CPU não estamos nos referindo a 
somente um componente, estamos nos referindo a um conjunto 
de microcomponentes que juntos formam a CPU (Central 
Process Unit) ou UCP – Unidade Central de Processamento. 
2 – A CPU 
Como vimos anteriormente, a CPU que também é 
conhecida como processador e dividida em várias partes, 
composta de vários microcomponentes que juntos formam o 
processador e permitem que ele realize todas as atividades que 
lhe são atribuídas (STALLINGS, 2010). 
Algumas pessoas confundem CPU com gabinete (Figura 
5.1), e acham que CPU e processador são coisas distintas, mas 
não são. 
 
 
Figura 5.1. Gabinete (Isso não é uma CPU) 
Os principais componentes de uma CPU são os 
Registradores, a Unidade de Lógica e Aritmética e a 
Unidade de Controle, veremos um pouco mais sobre cada um 
desses componentes nos próximos tópicos. 
2.1 – Unidade de Lógica e Aritmética (ULA) 
Também conhecida como ULA, que nada mais é do que 
uma acrônimo de Unidade de Lógica e Aritmética (Figura 5.2). 
É o circuito responsável pela realização de operações de lógica 
e também operações aritméticas. Este componente é parte 
fundamental tanto das CPU’s mais simples como das mais 
complexas. Ela é responsável por executar as principais 
operações lógicas e aritméticas do computador, e isso inclui 
não somente operações matemáticas básicas tais como soma, 
subtração, divisão, mas também testes de maior e menor, 
negativo ou positivo, etc. 
 
 
Figura 5.2. Esquema de uma ULA no qual A e B são operandos, R é saída, F é entrada 
de controle e D saída de status. Fonte: Apostila de Arquitetura e Organização de 
Computadores da Universidade Estadual do Amazonas 
2.2 – Unidade de Controle 
A Unidade de Controle é responsável pela realização de 
três atividades, são elas a busca pela instrução, que consiste 
em recuperar de um local informado da memória a instrução 
que deve ser executada; decodificação, que consiste 
basicamente em converter a instrução recuperada em um 
formato que seja compreendido pela CPU; e execução, que 
consiste na execução propriamente dita da instrução. 
Dependendo da instrução, a execução pode requerer a 
participação da ULA e de outros componentes da CPU. 
2.3 – Registradores 
Diversos processadores possuem pequenas memórias 
em sua composição. Essas memórias são conhecidas como 
registradores. Os registradores servem basicamente para o 
armazenamento temporário de dados que são gerados durante 
a execução de instruções pela CPU. Dentre os registradores, 
os mais importantes são o Contador de Programa (Program 
Counter - PC) que indica qual será a próxima instrução a ser 
executada, e o Registrador de Instrução (Instruction 
Register) que armazena a instrução que está sendo executada 
no momento. 
A respeito do Registrador PC, ele sempre será atualizado 
de forma incremental, ou seja, seu valor sempre será acrescido 
de 1, indicando assim a posição de memória na qual se 
encontra a próxima instrução a ser executada, esta lógica 
somente será desrespeitada nos casos em que a própria 
instrução em execução indique o endereço de memória da 
próxima instrução a ser executada (TANENBAUM e ZUCCHI, 
2009). 
3 – O Ciclo de uma CPU 
Sabemos que a velocidade de uma CPU é medida por sua 
taxa de clock e os clocks são medidos em termos de MHz 
(megahertz). Sendo assim, 1 MHz representa 1 milhão de ciclos 
por segundo, ou seja, 1 milhão de clocks por segundo 
(TANENBAUM e ZUCCHI, 2009). 
Durante um ciclo, ou seja, durante a execução de uma 
instrução, as seguintes atividades são realizadas pela CPU: 
1. Recupera a próxima instrução da memória e a 
armazena no registrador de instruções; 
2. Atualiza o contador de programa; 
3. Determina qual foi o tipo de instrução recuperada; 
4. Caso a instrução utilize palavra de memória, 
determina onde está essa palavra; 
5. Trás a palavra para dentro de algum registrador da 
CPU, caso isso seja necessário; 
6. Executa a instrução; e 
7. Retorna para o passo 1. 
 
Como pode ser visto, essa é a vida da CPU, ficar 
repetindo esse ciclo infinitamente até que o computador seja 
desligado. Tal sequência é geralmente conhecida como 
buscar-decodificar-executar e com o passar dos anos, os 
processadores foram se tornando cada vez mais capazes de 
executar esses ciclos com mais e mais velocidade. 
 
4 – Multiciclo e Pipeline 
Ainda que os computadores tenham evoluído 
incrivelmente, em determinados momentos surgem gargalos. 
Como continuar aumentando a velocidade de clock de um 
processador, se praticamente toda capacidade de inserir nano 
circuitos em pequenas pastas de silício já foram praticamente 
esgotadas? Duas soluções possíveis são: 
1. Implementar técnicas de pipeline. Essa é uma 
tendência que já foi apresentada nesta disciplina e 
consiste basicamente em dividir o 
processo/instruções em fases, e, com auxílio dos 
recursos de interrupção, executar partes distintas 
de um mesmo processo ou de processos distintos 
em diferentes momentos, preferencialmente quando 
um processo está em modo de espera; e 
2. Implementar recursos de multiciclos. Tais recursos 
podem inclusive ser implementados sobre as 
técnicas de pipeline. Se por um lado o espaço 
existente em uma CPU é pequeno demais para 
reproduzir todos os circuitos existentes na CPU, ele 
pode não ser pequeno demais para reprodução de 
parte desses componentes. Essa técnica permite 
criar CPU’s com vários núcleos que compartilham 
recursos como registradores. Dessa forma torna-se 
possível a execução de mais de um ciclo em uma 
mesma fração de tempo. 
 
Principais Tipos de Arquiteturas de CPU’s 
1 – Introdução 
Quando aprofundamos nossos estudos em arquitetura de 
computadores, o estudo do funcionamento da CPU é o mais 
importante. 
Vamos agora estudar um pouco melhor os detalhes 
arquiteturais da CPU, entendendo o que são arquiteturas RISC 
e CISC, Máquinas Escalares e Máquinas Superescalares. 
2 – Arquitetura CISC 
O termo CISC é o acrônimo de Complex Instruction Set 
Computer, ou seja, computador com conjunto de instruções 
complexo. Esta arquitetura está presente em diversos tipos de 
processadores de diversas fabricantes, a Intel e AMD são dois 
exemplos. 
Uma característica desse tipo de arquitetura é sua 
capacidade de suportar instruções mais complexas, ou seja, é 
capaz de suportar um número maior de instruções se 
comparado a outras arquiteturas. Entretanto, isso pode deixar 
o computador lento, principalmente quando o número de 
instruções complexas é pequeno e o processador atua com 
grandes conjuntos de instruções menos complexas, ou seja, 
reduzidas (TANENBAUM e ZUCCHI, 2009). 
3 – Arquitetura RISC 
O termo RISC é o acrônimo de Reduced Instruction Set 
Computer, ou seja, computador com conjunto reduzido de 
instruções. Também presente em diversos processadores de 
diferentes fabricantes, tais como as já citadas Intel, AMD, 
Apple, IBM e Motorola. 
Uma de suas principais características é a capacidade de 
suportar somente pequenos conjuntos de instruções, ou seja, a 
cada ciclo de CPU, somente um conjunto reduzido de 
instruções. Isso pode ser vantajoso para a maioria dos 
computadores de uso doméstico (STALLINGS, 2010). 
4 – RISC vs CISC 
A melhor forma de comparar as duas tecnologias é 
apresentar os resultados de um estudo que foi realizado 
especificamente para este fim. O resultado do estudo realizado 
por Mashey (1995) é apresentado na Figura 6.1, e de acordo 
com Stallings (2010), para o referido estudo, os seguintes itens 
foram considerados típicos de uma arquitetura RISC clássica, 
são eles: 
1. Um tamanho único de instrução. 
2. O tamanho é normalmente de 4 bytes. 
3. Um número menor de modos de endereçamento, 
normalmente menos de cinco. Este parâmetro é 
difícil de determinar. Na tabela, modos literais e de 
registradores não são contados e formatos 
diferentes com tamanhos de off set diferentes são 
contados separadamente. 
4. Nenhum endereçamento indireto que requer um 
acessoà memória para obter o endereço de um 
operando na memória. 
5. Nenhuma operação que combina leitura/escrita com 
aritmética (por exemplo, adicionar da memória, 
adicionar para memória). 
6. Não mais do que um operando endereçado em 
memória por instrução. 
7. Não suporta alinhamento arbitrário de dados para 
operações de leitura/escrita. 
8. Número máximo de usos da unidade de 
gerenciamento de memória (MMU) para um 
endereço de dados em uma instrução. 
9. Número de bits para especificadores registradores 
inteiros igual a cinco ou mais. Isto significa que ao 
menos 32 registradores inteiros podem ser 
explicitamente referenciados em um momento. 
10. Número de bits para especificadores de 
registradores de ponto flutuante igual a quatro ou 
mais. Isto significa que ao menos 16 registradores 
de ponto flutuante podem ser referenciados 
explicitamente em um momento. 
 
Figura 6.1. Tabela comparativa entre RISC vs CISC 
É preciso lembrar que muitos processadores são 
desenvolvidos ou com arquitetura principal CISC, e um 
emulador RISC, ou com arquitetura principal RISC e um 
emulador CISC (STALLINGS, 2010). 
5 – Máquinas Escalares e Superescalares 
Máquinas escalares são basicamente os tipos mais 
comuns de processadores modernos. Dentro da taxonomia de 
Flyn tais processadores estão classificados como SISD - Single 
Instruction, Single Data - Instrução Única, Dados Únicos. 
Vejamos então um pouco mais sobre as máquinas 
superescalares. 
Os recursos de pipeline que vimos em outras ocasiões 
trazem ganhos consideráveis de desempenho. Imagine então 
dois ou mais pipelines operando juntos. Este é um dos recursos 
possíveis com a introdução das máquinas superescalares. 
Anteriormente vimos a possibilidade de uma única CPU 
ter dois ou mais núcleos compartilhando os demais recursos da 
CPU e do próprio computador. É exatamente essa alteração na 
arquitetura dos processadores que permite que dois ou mais 
pipelines sejam executados simultaneamente. Um bom 
exemplo do que estamos afirmando pode ser visto na Figura 
6.2 extraída de (TANENBAUM e ZUCCHI, 2009). 
 
 
Figura 6.2. Pipeline duplo de cinco estágios com uma unidade de busca de instrução 
comum. 
Agora, tente imaginar a representação de sete pipelines de cinco 
estágios e com mais de uma unidade de busca de instrução. Isso 
também é possível. 
Execução de Instruções nas CPU’s 
1 – Introdução 
Qualquer instrução que o computador necessite executar 
depende de instruções digitais, e é aqui que voltamos aos 
componentes de uma CPU e as etapas do Ciclo de Execução 
das Instruções. 
2 – Ciclo de Execução das Instruções e Componentes da 
CPU 
Retomando a ideia de ciclo de execução de instruções: 
1. Recupera a próxima instrução da memória e a 
armazena no registrador de instruções; 
2. Atualiza o contador de programa; 
3. Determina qual foi o tipo de instrução recuperada; 
4. Caso a instrução utilize palavra de memória, 
determina onde está essa palavra; 
5. Copia a palavra para dentro de algum registrador da 
CPU, caso isso seja necessário; 
6. Executa a instrução; 
7. Retorna para o passo 1. 
O primeiro passo do processo é a recuperação da 
instrução em alguma posição de memória. Para que isso seja 
possível, o valor armazenado no contador de programa deve 
ser convertido em um conjunto de sinais elétricos que serão 
transmitidos por várias portas que permitem a saída e entrada 
de sinais em diversos componentes da CPU. 
Lembram-se de quando estudamos as bases binárias, 
octais e hexadecimais? O endereço de memória armazenado 
em um contador de programa geralmente é representado em 
hexadecimal que pode ser convertido em binário e levar até a 
posição de memória desejada. 
Considerando um sistema de 16 bits, o endereço de 
memória CB4E poderia facilmente ser convertido na seguinte 
sequência binária 1100101101001110. Considerando que o 
valor 1 representa a presença de sinal elétrico e o valor 0 a 
ausência do sinal elétrico. 
Agora que a instrução foi recuperada, o próximo passo é 
atualizar o contador de programa, isso significa que o endereço 
de memória será atualizado para a próxima posição de 
memória. Depois disso, a CPU deve determinar qual é o tipo de 
instrução recuperada. Isso é uma atividade para a Unidade de 
Controle. Desconsiderando os detalhes, podemos afirmar que 
a UC recebeu como instrução um conjunto de 0’s e 1’s, e que 
depois de definir quais são os tipos de instrução, a Unidade de 
Controle verificará se será ou não necessário acessar e 
recuperar uma palavra de memória. 
Atuar exclusivamente com binários torna a operação mais 
lenta, em diversos casos, após receberem os sinais, os 
componentes eletrônicos convertem os binários em 
hexadecimais, o que reduz seu tamanho e facilita sua 
apresentação, execução e armazenamento. Antes de executar 
uma instrução, o UC deve decodificá-la, e parte disso é 
converter os comandos em sinais binários. 
3 – Representação dos dados 
Praticamente todos os dados que trafegam pelo sistema 
computacional são convertidos hora em binários, hora em 
hexadecimais. 
Para facilitar e padronizar a interação entre 
equipamentos e pessoas, tabelas como a ASCii foram criadas. 
Tais tabelas apresentam relações entre valores hexadecimais 
e diversos símbolos que são utilizados nos mais variados 
alfabetos pelo mundo. 
Principais Tipos de Memórias de um Computador 
1 – Introdução 
No computador temos as Memórias, e podemos dizer que 
elas possuem esse nome justamente por sua função de 
“memorizar” ou seja, armazenar conteúdos, dados, 
conhecimento e por que não dizer, lembranças do que foi 
realizado durante a utilização do computador. Nesse material 
veremos um pouco mais sobre esse dispositivo. 
2 – O Sistemas de Memória 
Para facilitar a compreensão sobre o complexo sistema 
de memória dos computadores, Stallings (2010) opta por 
classificar as memórias de acordo com suas principais 
características (Figura 8.1). 
Antes de fazê-lo, vamos compreender melhor alguns 
termos que são frequentemente utilizados quando nos 
referimos ao sistema de memória do computador. De acordo 
com Stallings (2010), temos: 
• Palavra: unidade “natural” de organização da 
memória. O tamanho da palavra normalmente é 
igual ao número de bits usados para representar um 
inteiro e ao tamanho da instrução. 
• Unidades endereçáveis: em alguns sistemas são 
as próprias palavras, em outras entretanto o 
endereçamento pode ser feito em nível de bytes. De 
qualquer forma, o relacionamento entre o tamanho 
https://web.fe.up.pt/~ee96100/projecto/Tabela%20ascii.htm
em bits A de um endereço e o número N de unidades 
endereçáveis é 2A = N. 
• Unidade de transferência: número de bits lidos ou 
escritos na memória de uma só vez. 
Características relacionadas ao modo de acesso à 
memória 
• Acesso sequencial: a memória é organizada em 
unidades de dados chamadas registros. O acesso é 
feito em uma sequência linear específica. 
• Acesso direto: assim como o acesso sequencial, o 
acesso direto envolve um mecanismo compartilhado 
de leitura-escrita compartilhado. Porém, os blocos 
ou registros individuais têm um endereço exclusivo, 
baseado no local físico. 
• Acesso aleatório: cada local endereçável na 
memória tem um mecanismo de endereçamento 
exclusivo, fisicamente interligado. 
• Associativo: esse é o tipo de memória de acesso 
aleatório que permite fazer uma comparação de um 
certo número de bit desejados dentro de uma 
palavra para uma combinação especificada, e faz 
isso para todas as palavras simultaneamente. 
Características relacionadas ao desempenho das 
memórias 
• Tempo de acesso (latência): para a memória de 
acesso aleatório, esse é o tempo gasto para realizar 
uma operação de leitura ou escrita, ou seja, o tempo 
desde o instante em que um endereço é apresentado 
à memória até o instante em que os dados foram 
armazenados ou se tornaram disponíveis para uso. 
• Tempo de ciclo de memória: esse conceito é 
aplicado principalmente à memória de acesso 
aleatório,e consiste no tempo de acesso mais 
qualquer tempo adicional antes que um segundo 
acesso possa iniciar. 
• Taxa de transferência: essa é a taxa em que os 
dados podem ser transferidos para dentro ou fora de 
uma unidade de memória. 
Para a memória de acesso aleatório, ela é igual a 
1/(tempo de ciclo). 
Para a memória de acesso não aleatório, existe a 
seguinte relação: 
 
TN=TA+nRT_{N}=T_{A}+\dfrac{n}{R}TN=TA+Rn 
onde 
TN = tempo médio para ler ou escrever N bits 
TA = tempo de acesso médio 
n = número de bits 
R = taxa de transferência em bits por segundo (bps) 
 
Figura 8.1. Principais características do sistema de memórias do computador 
3 – A hierarquia da Memoria 
Tanenbaum e Zucchi (2009) afirmam haver uma relação entre a 
capacidade, tempo de acesso e custo das memórias, e de 
acordo com os autores: 
• Tempo de acesso mais rápido, maior custo por bit. 
• Maior capacidade de armazenamento, menor custo por bit. 
• Maior capaciadade de armazenamento, tempo deacesso 
mais lento. 
Assim o projetista do sistema entra em um dilema, como 
construir um sistema extremamente eficiente, com boa 
capacidade de armazenamento e que não seja caro? Para 
resolver a questão, o projetista precisa empregar a hierarquia 
de memórias (STALLINGS, 2010). 
De acordo com Stallings (2010) e representado na Figura 8.2, 
quanto mais se desce na hierarquia de memórias, maior é: 
• Diminuição do custo por bit. 
• Aumento da capacidade. 
• Aumento do tempo de acesso. 
• Frequência de acesso à memória pelo computador 
 
Figura 8.2. A hierarquia de memória 
Quando se trata de sistema de memória de um computador, 
entramos em um assunto de extrema complexidade. Nesse caso 
o ideal é recorrer a algum material escrito por alguma autoridade 
no assunto. Como recomendação, sugiro a leitura do capítulo 4 
do livro indicado em Stallings (2010).

Outros materiais