Você está na página 1de 149

Arquitetura de

Computadores Modernos
Autores: Prof. Alexandre Bozolan
Profa. Sandra Muniz
Colaboradoras: Profa. Vanessa Lessa
Profa. Larissa Rodrigues Damiani
Professores conteudistas: Alexandre Bozolan / Sandra Muniz

Alexandre Bozolan

É doutor em Ciências, subárea Engenharia Elétrica, com ênfase em Telecomunicações pela Escola de Engenharia
de São Carlos da Universidade de São Paulo – USP, e mestre em Engenharia Elétrica e Computação pela Universidade
Presbiteriana Mackenzie com ênfase em Óptica não linear e Telecomunicações Ópticas. Engenheiro de computação,
formado pela Universidade Brás Cubas, licenciado em Matemática pela Universidade Paulista – UNIP, atua como
professor no curso de bacharelado em Ciência da Computação e nos cursos tecnólogos de Automação Industrial,
Gestão em Análise e Desenvolvimento de Sistemas, Gestão em Tecnologia da Informação na UNIP.

Sandra Muniz

Doutora em Tecnologias da Inteligência e Design Digital pela Pontifícia Universidade Católica de São Paulo, mestre
em Tecnologias da Inteligência e Design Digital pela mesma instituição e especialista em Segurança da Informação e
graduada em Tecnologia da Informação. É coordenadora auxiliar dos cursos Análise e Desenvolvimento de Sistemas,
Gestão de Tecnologia da Informação. Atua como professora no curso de bacharelado em Ciência da Computação e
Sistemas da Informação nos cursos tecnólogos de Automação Industrial, Gestão em Análise e Desenvolvimento
de Sistemas, Gestão em Tecnologia da Informação na UNIP.

Dados Internacionais de Catalogação na Publicação (CIP)

B793a Bozolan, Alexandre.

Arquitetura de Computadores Modernos / Alexandre Bozolan,


Sandra Muniz. – São Paulo: Editora Sol, 2023.

268 p., il.

Nota: este volume está publicado nos Cadernos de Estudos e


Pesquisas da UNIP, Série Didática, ISSN 1517-9230.

1. Processador. 2. Memória. 3. Transmissão. I. Bozolan, Alexandre.


II. Muniz, Sandra. III. Título.

CDU 681.3.026

U517.38 – 23

© Todos os direitos reservados. Nenhuma parte desta obra pode ser reproduzida ou transmitida por qualquer forma e/ou
quaisquer meios (eletrônico, incluindo fotocópia e gravação) ou arquivada em qualquer sistema ou banco de dados sem
permissão escrita da Universidade Paulista.
Profa. Sandra Miessa
Reitora

Profa. Dra. Marilia Ancona Lopez


Vice-Reitora de Graduação

Profa. Dra. Marina Ancona Lopez Soligo


Vice-Reitora de Pós-Graduação e Pesquisa

Profa. Dra. Claudia Meucci Andreatini


Vice-Reitora de Administração e Finanças

Prof. Dr. Paschoal Laercio Armonia


Vice-Reitor de Extensão

Prof. Fábio Romeu de Carvalho


Vice-Reitor de Planejamento

Profa. Melânia Dalla Torre


Vice-Reitora das Unidades Universitárias

Profa. Silvia Gomes Miessa


Vice-Reitora de Recursos Humanos e de Pessoal

Profa. Laura Ancona Lee


Vice-Reitora de Relações Internacionais

Prof. Marcus Vinícius Mathias


Vice-Reitor de Assuntos da Comunidade Universitária

UNIP EaD
Profa. Elisabete Brihy
Profa. M. Isabel Cristina Satie Yoshida Tonetto
Prof. M. Ivan Daliberto Frugoli
Prof. Dr. Luiz Felipe Scabar

Material Didático
Comissão editorial:
Profa. Dra. Christiane Mazur Doi
Profa. Dra. Ronilda Ribeiro

Apoio:
Profa. Cláudia Regina Baptista
Profa. M. Deise Alcantara Carreiro
Profa. Ana Paula Tôrres de Novaes Menezes

Projeto gráfico: Revisão:


Prof. Alexandre Ponzetto Vitor Andrade
Vera Saad
Sumário
Arquitetura de Computadores Modernos

APRESENTAÇÃO.......................................................................................................................................................9
INTRODUÇÃO............................................................................................................................................................9

Unidade I
1 INTRODUÇÃO..................................................................................................................................................... 11
1.1 Fundamentos dos computadores digitais................................................................................... 11
1.2 Período histórico e evolução dos computadores modernos............................................... 13
1.2.1 Computadores de primeira geração: válvulas (1936‑1953)................................................... 15
1.2.2 Computadores de segunda geração: transistores (1954‑1965)........................................... 20
1.2.3 Computadores de terceira geração: circuitos integrados (1965‑1980)............................ 22
1.2.4 Computadores de quarta geração e além: VLSI (1980‑atual)............................................... 23
1.3 A evolução do poder de processamento e a lei de Moore................................................... 24
1.4 Definição da organização e arquitetura de computadores.................................................. 26
1.5 Sobre a hierarquia de função do computador: processamento, armazenamento,
movimentação e controle de dados...................................................................................................... 27
1.5.1 Operação funcional................................................................................................................................. 27
1.5.2 Dados e seu processamento................................................................................................................ 28
1.5.3 Como o computador armazena dados........................................................................................... 28
1.5.4 Como os dados são movimentados................................................................................................. 29
1.5.5 Unidade de controle............................................................................................................................... 30
1.6 Sua estrutura.......................................................................................................................................... 30
1.7 Definições de computadores multiníveis modernos............................................................... 32
1.7.1 Os níveis de evolução das máquinas multiníveis........................................................................ 34
1.8 Sistemas operacionais e seu desenvolvimento......................................................................... 34
2 UNIDADE CENTRAL DE PROCESSAMENTO E OS PROCESSADORES MODERNOS................... 37
2.1 Fundamentos da CPU (Central Unit Processing – unidade central
de processamento)....................................................................................................................................... 37
2.1.1 Como acontece o processo de fabricação da CPU..................................................................... 39
2.1.2 Conceitos dos chips de CPU................................................................................................................ 43
2.1.3 Como surge o Intel Core i7.................................................................................................................. 46
2.1.4 Como é a organização geral de um processador........................................................................ 50
2.1.5 Um processador e sua microarquitetura........................................................................................ 51
2.1.6 Principal dispositivo interno do processador – Unidade lógica e aritmética (ULA)..... 52
2.1.7 Dispositivo mais complexo da CPU – Unidade de controle (UC)......................................... 52
2.2 Principais conceitos sobre o desempenho de operação do processador....................... 54
2.2.1 Sinal elétrico de sincronismo – clock.............................................................................................. 56
2.2.2 Cálculo da taxa de execução de instruções por segundo....................................................... 58
2.3 A arquitetura da máquina de von Neumann............................................................................. 59
2.3.1 Fundamentos do computador IAS.................................................................................................... 59
2.3.2 Histórico e a arquitetura Harvard..................................................................................................... 62
2.4 Como os registradores de um computador são organizados.............................................. 63
2.4.1 A linguagem de baixo nível e os registradores de propósito geral ou
visíveis ao usuário............................................................................................................................................... 64
2.4.2 Registradores de controle e estado.................................................................................................. 64
2.4.3 Passo a passo da organização de registradores nos processadores modernos.............. 67
2.5 Processador Intel x86 e sua evolução........................................................................................... 70
3 MEMÓRIAS E SUA HIERARQUIA: MEMÓRIAS PRIMÁRIAS E MEMÓRIAS SECUNDÁRIAS............. 79
3.1 Principais características das memórias...................................................................................... 79
3.1.1 Como acontece o acesso à memória............................................................................................... 81
3.1.2 Entendendo os endereços de memória.......................................................................................... 84
3.1.3 Projeto de hierarquia de memória.................................................................................................... 84
3.2 Memória cache....................................................................................................................................... 86
3.2.1 Dados de cache e instruções............................................................................................................... 88
3.2.2 Endereçamento de cache..................................................................................................................... 89
3.2.3 Caches associativas................................................................................................................................. 90
3.2.4 Mapeamento direto com caches....................................................................................................... 90
3.3 Memória somente de leitura............................................................................................................ 91
3.3.1 ROM programada por máscara.......................................................................................................... 92
3.3.2 PROM............................................................................................................................................................ 93
3.3.3 EPROM.......................................................................................................................................................... 94
3.3.4 EEPROM e flash........................................................................................................................................ 94
3.4 Memória RAM......................................................................................................................................... 95
3.4.1 Memória DRAM e SRAM....................................................................................................................... 96
3.4.2 Organização de memória: endereço, conteúdo, armazenamento
e posição na memória RAM........................................................................................................................... 99
3.4.3 Operação de leitura...............................................................................................................................102
3.4.4 Operação de escrita..............................................................................................................................103
3.4.5 DRAM síncrona.......................................................................................................................................105
3.4.6 DRAM Rambus........................................................................................................................................106
3.4.7 DDR‑SDRAM............................................................................................................................................108
3.5 Memórias secundárias.......................................................................................................................109
3.5.1 Organizando o funcionamento dos discos rígidos....................................................................111
3.5.2 Principais propriedades e o funcionamento dos discos rígidos......................................... 114
3.5.3 Calculando o espaçamento e armazenamento em discos rígidos....................................114
3.5.4 Funcionamento do desempenho em discos rígidos................................................................115
3.6 RAID em discos rígidos.....................................................................................................................117
3.6.1 RAID 0.........................................................................................................................................................117
3.6.2 RAID 1.........................................................................................................................................................118
3.6.3 RAID 2.........................................................................................................................................................118
3.6.4 RAID 3.........................................................................................................................................................118
3.6.5 RAID 4.........................................................................................................................................................119
3.6.6 RAID 5.........................................................................................................................................................119
3.6.7 Memória virtual..................................................................................................................................... 120
3.7 Drive de estado sólido (SSD)...........................................................................................................121
3.8 Discos ópticos.......................................................................................................................................123
3.8.1 CD‑ROM.................................................................................................................................................... 123
3.8.2 DVD............................................................................................................................................................. 125
3.8.3 Blu‑ray....................................................................................................................................................... 125
3.9 Disquetes................................................................................................................................................126
3.10 Fitas magnéticas................................................................................................................................128
4 COMPUTADOR E SEUS BARRAMENTOS E TIPOS DE TRANSMISSÃO DE DADOS..................130
4.1 Barramentos do computador.........................................................................................................130
4.2 Largura de barramento.....................................................................................................................132
4.3 Barramentos síncronos.....................................................................................................................133
4.4 Barramentos assíncronos.................................................................................................................135
4.5 Barramento ISA....................................................................................................................................136
4.6 Barramento PCI....................................................................................................................................137
4.7 Barramento AGP..................................................................................................................................137
4.8 Barramento PCI Express....................................................................................................................138
4.9 Barramento serial universal USB..................................................................................................139
4.10 Principais tipos de transmissão...................................................................................................141
4.10.1 Transmissão serial................................................................................................................................141
4.10.2 Transmissão paralela......................................................................................................................... 143

Unidade II
5 O COMPUTADOR E SEUS DISPOSITIVOS DE ENTRADA E SAÍDA (E/S)........................................150
5.1 Principais características dos dispositivos de E/S...................................................................150
5.2 Interfaces e dispositivos de E/S.....................................................................................................152
5.3 Teclado.....................................................................................................................................................153
5.4 Mouse.......................................................................................................................................................155
5.5 Impressoras matriciais, jato de tinta e a laser.........................................................................156
5.6 Monitores de vídeo.............................................................................................................................160
6 COMPUTADOR E O CONJUNTO DE INSTRUÇÕES DE MÁQUINA..................................................162
6.1 Aspecto fundamental do ciclo de instrução............................................................................162
6.2 Os tipos de operandos.......................................................................................................................163
6.2.1 Números................................................................................................................................................... 163
6.2.2 Caracteres................................................................................................................................................ 164
6.2.3 Dados lógicos......................................................................................................................................... 165
6.3 Execução de instrução: ciclo indireto.........................................................................................165
6.4 Busca e execução de instruções....................................................................................................166
6.5 Formatos de instrução......................................................................................................................168
6.5.1 A expansão de opcodes.......................................................................................................................170
6.6 Intel Core i7 e suas instruções.......................................................................................................172
6.7 Endereçamento de instruções........................................................................................................173
6.7.1 Tipo de endereçamento imediato.................................................................................................. 173
6.7.2 Tipo de endereçamento direto........................................................................................................ 174
6.7.3 Tipo de endereçamento indireto.................................................................................................... 174
6.7.4 Tipo de endereçamento de registradores.................................................................................... 174
6.7.5 Endereçamento indireto por registradores................................................................................ 175
6.7.6 Endereçamento por deslocamento................................................................................................ 175
6.7.7 Endereçamento de pilha.................................................................................................................... 177
6.8 O computador e as interrupções..................................................................................................179
6.8.1 As interrupções e o ciclo de instrução..........................................................................................181
6.8.2 Interrupções múltiplas........................................................................................................................ 186
6.9 Pipeline de instruções.......................................................................................................................188
6.9.1 Desempenho do pipeline................................................................................................................... 194
6.9.2 Hazards de pipeline.............................................................................................................................. 199
6.9.3 Previsão de desvio em pipeline........................................................................................................201
6.10 Princípios da linguagem de montagem...................................................................................205
7 FUNDAMENTOS DAS ARQUITETURAS RISC X CISC, PROCESSAMENTO PARALELO,
PROCESSADORES SUPERESCALARES, MULTITHREADING E MULTICORE....................................212
7.1 Arquitetura RISC..................................................................................................................................212
7.1.1 Menor quantidade de instruções e todas com largura fixa.................................................212
7.1.2 Execução otimizada de chamada: funções.................................................................................212
7.1.3 Menor quantidade de modos de endereçamento....................................................................213
7.1.4 Modos de execução baseados no uso de pipeline...................................................................213
7.1.5 Execução de cada instrução em um ciclo de clock..................................................................213
7.2 Arquitetura RISC da IBM..................................................................................................................213
7.3 Pipeline na arquitetura RISC..........................................................................................................215
7.4 Processador superescalar e superpipeline.................................................................................217
7.4.1 Comparativo entre processadores superescalar e superpipeline........................................219
7.4.2 Limitações................................................................................................................................................ 220
7.5 Multithreading.....................................................................................................................................222
7.6 Multicore.................................................................................................................................................225
8 TÓPICOS EM SISTEMAS EMBARCADOS, IOT, SMART CITIES E TI VERDE...................................230
8.1 Sistemas embarcados........................................................................................................................230
8.1.1 Sistemas padronizados de hardware embarcado.................................................................... 234
8.2 Internet das coisas (IoT – Internet of Things)..........................................................................242
8.2.1 IoT versus M2M..................................................................................................................................... 244
8.3 Smart houses e smart cities............................................................................................................246
8.3.1 Casas inteligentes (smart houses).................................................................................................. 246
8.3.2 Cidades inteligentes (smart cities)................................................................................................. 249
8.4 TI verde e sustentabilidade..............................................................................................................252
APRESENTAÇÃO

O objetivo desta disciplina é oferecer ao aluno conhecimentos básicos e ao mesmo tempo


fundamentais para uma boa compreensão do funcionamento dos computadores em geral e/ou dos
sistemas embarcados, por exemplo os dispositivos móveis, que possuem funcionamento equivalente.

A evolução dos computadores nos tem possibilitado um elevado nível de acessibilidade e interação
com as máquinas, o que facilitou sua aplicação em diversas áreas da ciência e tecnologia, tornando
nosso cotidiano muito mais prático e versátil. Devido a essa rápida evolução dos computadores, se
faz necessário estudarmos um pouco mais essa máquina, além de conhecermos toda sua trajetória
evolutiva até chegarmos às máquinas atuais.

Há aproximadamente 70 anos, desde quando os computadores eletromecânicos foram


desenvolvidos, que os rumos da história tecnológica do homem mudaram para sempre. Logicamente
que, em seu início, os computadores ainda não tinham o pleno alcance de usabilidade como nos
dias de hoje. Na verdade, eles não possuíam a capacidade de processamento sequer comparada a
um celular mais simples atualmente. Hoje em dia, computadores estão em toda a parte, sejam de
grande, sejam de pequeno porte, em cima de uma mesa ou no bolso da calça, no pulso, nas televisões
modernas, nas geladeiras etc., realizando todos os tipos de tarefas a que foram programados.
Entre algumas dessas tarefas, podemos exemplificar as tarefas simples, que vão desde escrever/ler um
e‑mail, manipular fotografias, construir tabelas e gráficos, até tarefas mais complexas, como simular
colisão de partículas subatômicas, efetuar cálculos meteorológicos, controlar voos, toda uma malha
ferroviária, robôs em uma linha de produção etc.

INTRODUÇÃO

O novo profissional do século XXI deverá estar adaptado às diferentes funcionalidades apresentadas
por um computador, inclusive saber utilizar essas novas tecnologias para sugerir outras novas que ainda não
chegaram a nossas residências. Os profissionais da área de tecnologia da informação deverão se apropriar
dos conhecimentos de funcionamento interno dos computadores para que assim possam também
contribuir nesse desenvolvimento das novas tecnologias. Por fim, um conhecimento aprofundado da
organização de computadores oferece ao profissional/aluno um pleno entendimento de como a relação
hardware/software é implementada, e poderá, assim, embasar todas as suas implementações futuras na
área de tecnologia.

Neste livro‑texto, são abordadas, primeiramente, a organização e a arquitetura básica dos computadores,
além de sua evolução a partir do desenvolvimento do primeiro computador eletromecânico. São apresentados
os sistemas de numeração e métodos de conversão em binário e hexadecimal, utilizados em sistemas
computacionais, além do conceito de portas lógicas digitais, fundamentais para realizar o processamento
e o armazenamento de dados.

9
São apresentados os temas referentes à organização dos sistemas computacionais, quanto à
arquitetura de um processador, e o conjunto de instruções executadas internamente em um
computador.

São explanados os tipos e as características das memórias primárias e secundárias de um


computador, responsáveis por operacionalizar todo o armazenamento dos dados e instruções na
máquina.

Finalmente, são tratados temas como os meios de transmissão (barramentos) de comunicação


de dados e instruções nos computadores. Também são abordados meios de comunicação entre
dispositivos de entrada e saída, além de métodos de processamento paralelo e máquinas com vários
núcleos de processadores.

Esperamos que você tenha um ótimo aproveitamento deste material e se sinta motivado a ler e
conhecer mais sobre a arquitetura de computadores.

Boa leitura!

10
ARQUITETURA DE COMPUTADORES MODERNOS

Unidade I
1 INTRODUÇÃO

1.1 Fundamentos dos computadores digitais

Os computadores podem nos libertar de enfadonhas tarefas repetitivas e rotineiras, nos ajudando
a utilizar nossas principais qualidades e características humanas em outras tarefas que exijam maior
criatividade. Outra forma de encarar a importância dos computadores é sua utilização no processo de
ensino/aprendizagem do século XXI. Nos dias atuais não há meios didáticos e pedagógicos eficientes
que, em pelo menos uma de suas fases de produção, não houve a utilização de um computador.

Essas máquinas, além de facilitar nossos trabalhos e estudos, em sua maioria atualmente, servem
como uma forma de lazer para muitas pessoas, seja por meio de interações sociais, compras online,
serviços de delivery, navegação por GPS (Global Positioning System – sistema de posicionamento global)
ou jogos digitais. Dessa forma, se faz necessária uma abordagem técnica e incisiva sobre o assunto
computador e por que é tão importante em nossas vidas.

Figura 1 – Uso dos dispositivos computacionais no dia a dia

Disponível em: https://bit.ly/3kogkgU. Acesso em: 18 jan. 2023.

11
Unidade I

Uma das possíveis definições para um computador moderno é o de uma máquina, constituída
por diversas partes eletrônicas ou eletromecânicas, capazes de operar dados digitais ou analógicos
fornecendo assim, de forma sistêmica e controlada, informações usadas em uma gama variada de
aplicações que facilitam nosso cotidiano. Os computadores modernos são, de certa forma, implementações
de algoritmos que executam diversos outros algoritmos. Dessa forma, esse conjunto de algoritmos
aninhados (estruturas hierárquicas) contém o princípio da equivalência de hardware e software que diz:
“Qualquer coisa que possa ser feita com software pode ser feita com hardware, e qualquer coisa que
possa ser feita com hardware pode ser feita com software” (NULL; LOBUR, 2010, p. 37).

Um computador, que tenha um certo propósito de funcionamento, pode ser projetado para
realizar qualquer tarefa, como a edição de um texto, análise orçamentária, desenhos de plantas de
edifícios, controle funcional de uma linha de produção em uma fábrica, sistemas embarcados etc.
Outro enfoque mais abrangente do assunto se refere aos diferentes tipos de arquiteturas e organização
de computadores. Entende‑se como organização de computadores o tratamento de questões
relacionadas à sua estrutura e comportamento dos sistemas lógicos, do ponto de vista do programador
de computador. No caso da arquitetura de computadores, incluirá muitos outros elementos, tais como
conjuntos de instruções, códigos de operações, tipos de dados, quantidade de registradores, modos
de endereçamento, modelos de acesso aos diferentes tipos de memórias e aos diferentes tipos de
acessos aos dispositivos de E/S (entrada e saída). Dessa forma podemos ressaltar que a arquitetura
de computadores afeta, de forma direta, a execução lógica dos programas. E qual é a verdadeira
importância em estudarmos os computadores de forma aprofundada?

Uma das formas de entender a relevância do estudo das diferentes arquiteturas de computadores
está justamente na otimização de softwares e programas que, em conjunto com os compiladores,
realiza toda a interface para a comunicação do hardware (nível mais baixo) com o software (nível
mais alto). Outra forma de entender a importância dos computadores em nossas vidas é a sua exímia
capacidade de resolver problemas complexos do mundo real, baseando‑se em simulações de modelos
matemáticos abstratos. Para que os computadores “computem”, ou seja, façam com que sinais elétricos
se transformem em informação, vários processos precisam ocorrer no tratamento ou processamento de
dados. O dado, por exemplo, é definido como o elemento primordial ou entrada original a ser processada
por algum computador. Já a informação é definida como a saída do processamento dos dados de entrada
(MONTEIRO, 2019). Para que haja um bom funcionamento e otimização do desempenho, todos os dados
introduzidos em um computador precisam ser interpretados pela máquina, de modo que ela possa
processá‑los corretamente.

Por outro lado, a informação resultante do processamento deverá ser compativelmente armazenável.
Para que isso ocorra, temos como menor unidade de informação o “algarismo binário” ou “dígito
binário”, popularmente conhecido como bit, originário da contração das palavras em inglês binary digit.
Os dígitos binários alternam entre duas possibilidades de valores, sendo eles (0 e 1). Tais valores digitais
são representados em volts. O byte (conjunto contendo oito bits), implementado pela IBM, foi a
primeira padronização de ordenação para um grupo de bits e é utilizado até os dias de hoje por todos
os fabricantes de computadores.

12
ARQUITETURA DE COMPUTADORES MODERNOS

Lembrete

Para que operem de forma correta, os computadores modernos


necessitam realizar o processamento dos dados, que consiste basicamente
em uma série de atividades ordenadas e controladas, a fim de manipular um
arranjo de dados que resultarão em uma informação relevante para
o usuário.

Para que possamos entender melhor o funcionamento dos computadores modernos se faz necessário
um estudo sobre como eles chegaram até os dias atuais e como ocorreu essa evolução tecnológica
pelas décadas.

1.2 Período histórico e evolução dos computadores modernos

O estudo do histórico dos computadores se baseia, principalmente, em sua capacidade evolutiva a fim
de produzir um ganho no poder computacional a cada nova geração de computadores desenvolvidos,
otimizando o processamento dos dados, atingindo a diminuição de tamanho dos seus componentes
eletrônicos, aumentando a capacidade de armazenamento em bytes e, por fim, atingindo melhorias na
comunicação entre os diversos dispositivos de E/S.

Observação

A evolução dos computadores teve origem incerta, às vezes atribuída ao


ábaco, desenvolvido no Iraque em 2700 a.C., ao mecanismo de Anticítera,
desenvolvido na Grécia antiga cerca de 125 a.C. Cita‑se também a máquina
de cálculo mecânica de Blaise Pascal (1623‑1662), construída em 1642,
ou mesmo a máquina diferencial de Charles Babbage (1791‑1871),
construída em 1822.

Podemos atribuir como um dos principais fatores que contribuíram para o aumento do desempenho
dos processadores e, por consequência, dos computadores, seu emprego em substituição a atividades
até então realizadas inteiramente por humanos. A partir do momento em que as máquinas foram
capazes de realizar tarefas complexas, difíceis até para nós, ficou claro também que era necessário
aumentar cada vez mais seu poder. Chegou‑se também à conclusão de que componentes eletrônicos
menores poderiam consumir menos energia e aquecer menos, e mesmo assim apresentar um ganho de
desempenho. Assim, o encolhimento de componentes recém‑desenvolvidos na década de 1940, como
os transistores, possibilitaram um aumento no desempenho dos computadores.

13
Unidade I

Figura 2 – Miniaturização dos componentes e circuitos de um computador

Disponível em: https://bit.ly/3D0RB8P. Acesso em: 18 jan. 2023.

Além disso, outros fatores têm contribuído para o aperfeiçoamento dos computadores nas décadas
seguintes como a melhoria no desempenho dos processadores, incluindo o uso do processamento
paralelo, baseando‑se no uso de técnicas de pipeline, superpipeline, computadores superescalares ou
mesmo execução de instruções de forma preditiva. Para que todas essas técnicas possam ocasionar
ganho de desempenho seu projeto deve conter um equilíbrio, a fim de que o ganho final não ocasione
algum tipo de atraso entre dispositivos.

De fato, a miniaturização dos dispositivos eletroeletrônicos teve seu início nas décadas de 1930
e 1940, justamente com o surgimento dos computadores da chamada “primeira geração”. Podemos
observar, de forma sintetizada, a tabela a seguir, contendo dados sobre o desempenho (operações por
segundo) em função da quantidade de dispositivos envolvidos em realizar o processamento (relés,
válvulas, transistores e integração de transistores).

Tabela 1 – Gerações dos computadores modernos

Datas Velocidade de dados em


Geração Tecnologia utilizada
(aproximadas) operações por segundo
1 1946‑1957 Válvula 40.000
2 1958‑1964 Transistor 200.000
3 1965‑1971 Integração em pequena escala 1.000.000
4 1972‑1977 Integração em grande escala 10.000.000
5 1978‑1991 Integração em escala muito grande 100.000.000
6 1991‑? Integração em escala ultra grande 1.000.000.000

Adaptada de: Stallings (2010, p. 20).

14
ARQUITETURA DE COMPUTADORES MODERNOS

1.2.1 Computadores de primeira geração: válvulas (1936‑1953)

Não há um consenso histórico conclusivo sobre quem inventou o primeiro computador eletrônico
ou eletromecânico. Muitas pessoas, equivocadamente, creditam como sendo o primeiro computador o
ENIAC. Na verdade, o ENIAC foi o primeiro computador a válvulas patenteado, o que lhe rendeu toda
essa “fama”.

Figura 3 – Válvula termiônica

Disponível em: https://bit.ly/3YlVUUB. Acesso em: 18 jan. 2023.

Alguns pesquisadores, redescobrindo fatos históricos, apontam que na verdade o primeiro computador
binário programável foi construído na Alemanha entre 1936 e 1938. Seu projeto não foi, inicialmente,
uma ideia com aplicações militares (o que era muito comum nesse período pré‑Segunda Guerra Mundial),
mas sim um trabalho do brilhante engenheiro Konrad Zuse (1910‑1995). Zuse construiu uma série
com quatro, chamados V1, V2, V3 e V4, cuja letra V significava Versuchmodell ou modelo experimental
(WAZLAWICK, 2016, p. 120). Apesar dessas máquinas iniciais, o computador Z1, concebido para ser uma
continuação do projeto inicial do modelo de Babbage (1791‑1871), foi o computador que mais lhe
trouxe os resultados pretendidos. Diferentemente da máquina analítica de Babbage, que utilizava discos
para representar a aritmética decimal, o Z1 já operava em base binária (base 2), o que representa uma
automatização e processamento muito mais simples.
15
Unidade I

Figura 4 – Réplica da máquina Z1 de Konrad Zuse no museu de Berlim

Fonte: Wazlawick (2016, p. 122).

O Z1 inicialmente não possuía relés (dispositivos eletromagnéticos capazes de produzir uma variação
súbita através da aplicação de uma corrente elétrica). Os relés foram de fato incorporados em seu
projeto Z3, de maneira que o Z1 possuía apenas pinos metálicos que podiam estar em duas posições
distintas, a fim de representarem os bits 0 e 1.

Figura 5 – Relé eletromecânico

Disponível em: https://bit.ly/3IXpcEo. Acesso em: 18 jan. 2023.

16
ARQUITETURA DE COMPUTADORES MODERNOS

Embora construído de forma amadora (na sala de estar da casa dos seus pais) o Z1 era um computador
bastante avançado para a época, usando uma programação de instruções inseridas através de cartões
perfurados, utilizados para escrever instruções e/ou dados.

Figura 6 – Processo de transcrição de programas em cartões perfurados utilizados em computadores

Disponível em: https://bit.ly/3ZImvwp. Acesso em: 18 jan. 2023.

A máquina possuía um clock de processamento de 4 Hz (quatro ciclos de operação por


segundo), capaz de realizar operações de soma e subtração através de somas sucessivas e subtrações
sucessivas, respectivamente. Além disso, o Z1 utilizava números em ponto flutuante, ou seja, números
representados por uma mantissa e um expoente. Apesar de a primeira geração ser marcada pelos
computadores a válvula, o Z1 foi considerado pertencente a essa geração dos computadores que
também estavam em pleno desenvolvimento, tanto na Europa quanto nos Estados Unidos.

Ainda em 1936, Zuse convidou um de seus amigos (Helmut Schreier 1912‑1984) para conhecer o Z1
e participar do projeto do Z2. Zuse estava propenso a construir esse novo projeto utilizando relés, mas
Schreier indicou que ele deveria usar um dispositivo mais rápido, a válvula. De fato, Schreier projetou
um computador baseado no uso de válvulas, mas foi inicialmente refutado tanto por Zuse quanto pelos

17
Unidade I

militares. Entretanto, na mesma época o físico e professor norte‑americano John Atanasoff (1903‑1995),
em conjunto com seu aluno Clifford E. Berry, tiveram a mesma ideia de construir um computador a
válvulas, denominado ABC (Atanasoff‑Berry Computer), considerado o primeiro computador a válvulas
termiônicas em 1939. O ABC possuía 300 válvulas e mais de 1,5 km de fios em sua estrutura interna.
Um dos supostos motivos para o não conhecimento dessa máquina foi sua baixa eficiência, visto que
essa máquina não era programável, assim como a máquina de Babbage, projetada para o cálculo de
polinômios ou sistemas de equações lineares. Sendo assim, o computador ABC não pode ser considerado
uma máquina de Turing completa, ou seja, uma máquina capaz de realizar qualquer cálculo utilizando
algum programa codificado especificamente para determinada tarefa (FOROUZAN; MOSHARRAF, 2012).

Figura 7 – Réplica do computador ABC

Disponível em: https://bit.ly/3RsQIf7. Acesso em: 18 jan. 2023.

Por causa de sua representatividade histórica, é de suma importância abordarmos o computador


ENIAC (Electronic Numerical Integrator and Computer – computador integrador numérico eletrônico),
apresentado em 1945 pelos cientistas John Mauchly (1907‑1980) e John Presper Eckert (1919‑1995),
também se baseando no trabalho de John Atanasoff (computador ABC). O ENIAC ocupava uma área
correspondente a 1.800 metros quadrados, pesando aproximadamente 30 toneladas e consumindo
cerca de 174 quilowatts de energia elétrica. Diferentemente do Z1, o ENIAC utilizava 17.468 válvulas,
capazes de auxiliar na realização das operações computacionais. Além dessas características, o ENIAC
possuía uma memória com capacidade de cerca de 1.000 bits ou 1k de informação, armazenados em
cartões perfurados (NULL; LOBUR, 2010).
18
ARQUITETURA DE COMPUTADORES MODERNOS

Figura 8 – Computador ENIAC em operação

Disponível em: https://bit.ly/3ZXR95l. Acesso em: 18 jan. 2023.

Assim como o Z1, o ENIAC foi desenvolvido para fins militares, principalmente no cálculo de trajetórias
balísticas. O modo como o ENIAC tomava decisões foi uma forte influência para a criação da linguagem
FORTRAN alguns anos depois. Apesar de sua sofisticação (para a época), o trabalho de programação no
ENIAC era demorado. Inicialmente, seis mulheres foram escolhidas entre “computadores humanos” para
realizar sua programação, o que era tarefa para várias semanas e era realizada na seguinte sequência
(WAZLAWICK, 2016):

1 O problema a ser resolvido deveria ser representado por um conjunto de equações matemáticas.

2 As operações mais complexas dessas equações deveriam ser reduzidas em operadores aritméticos
básicos para que sejam executados pelo ENIAC.

3 Em cada passo era necessário “plugar” os acumuladores que receberiam os dados e onde também
seriam armazenados os resultados.

4 Outros passos de computação precisavam ser plugados em sua sequência correta para que cada
um fosse executado através do controle principal.

19
Unidade I

1.2.2 Computadores de segunda geração: transistores (1954‑1965)

A década de 1950 viu o surgimento da computação comercial como vemos hoje em dia. Em se
tratando de hardware, essa década foi responsável pela transição gradual dos computadores a válvula
e relés para um dispositivo revolucionário, o transistor. Isso porque o uso de válvulas não era muito
prático, do ponto de vista de engenharia, pois as válvulas tinham um elevado consumo de eletricidade,
superaqueciam e queimavam com muita facilidade. Chegava‑se ao ponto de que elas queimavam mais
rápido do que podiam ser repostas, de modo que os computadores passavam mais tempo em manutenção
do que funcionando. Conhecendo esses problemas, os cientistas John Bardeen (1908‑1991), Walter
Brattain (1902‑1987) e William Shockley (1910‑1989) desenvolveram o transistor, derivação da palavra
transfer resistor, ou resistor de transferência.

Figura 9 – Réplica do primeiro transistor

Disponível em: https://bit.ly/3YhpfiN. Acesso em: 18 jan. 2023.

O transistor é um componente totalmente eletrônico, geralmente utilizado como um amplificador


ou como um interruptor de sinais elétricos, entre outras funções. Ele opera basicamente abrindo ou
fechando a passagem de corrente elétrica. O transistor não foi capaz de revolucionar apenas a indústria
dos computadores, mas também foi responsável pelo desenvolvimento de vários outros dispositivos como
rádio, televisão, calculadora de bolso, máquina de lavar, geladeira, micro‑ondas, aviões, refrigeradores,
possibilitando até chegarmos aos robôs. O uso de transistores nos eletroeletrônicos se tornou muito
vantajoso, pois, além de seu custo de fabricação ser menor, seu consumo de energia elétrica é irrisório
se comparado às antigas válvulas termiônicas. Atualmente, os processadores contêm mais de um bilhão
de transistores em uma única placa microprocessada, formando circuitos capazes de realizar cálculos
extremamente complexos de maneira bastante rápida.

20
ARQUITETURA DE COMPUTADORES MODERNOS

Observação

Os transistores modernos que equipam nossos computadores, celulares,


tablets etc. possuem apenas alguns nanômetros de diâmetro (1 nanômetro
equivale a 1 milímetro dividido por 1 milhão). Na 11ª geração de processadores
Intel os transistores possuem dimensão de apenas 10 nanômetros.

A primeira máquina construída para ser um computador de propósito geral totalmente transistorizado
foi o Harwell Cadet, desenvolvido em 1953 no Reino Unido. Esse computador possuía um clock de
apenas 58 kHz, o que era aproximadamente 20 vezes mais lento que os processadores a válvula ou
relés da época.

Figura 10 – Primeiro computador totalmente transistorizado

Disponível em: https://bit.ly/3WeO25O. Acesso em: 18 jan. 2023.

Posteriormente, em 1956 o MIT (Massachusetts Institute of Technology) também desenvolveu um


computador totalmente transistorizado, o TX‑0 (Transistorized Experimental Computer – computador
transistorizado experimental), ao qual reivindicam como sendo o primeiro.

21
Unidade I

Saiba mais

Aprofunde‑se no assunto com a leitura de:

OLIVEIRA, J. Intel anuncia CPUs de 11ª geração de alto desempenho para


notebooks gamer. Canaltech, 11 maio 2021. Disponível em: https://bit.ly/3XhIl8q.
Acesso em: 18 jan. 2023.

1.2.3 Computadores de terceira geração: circuitos integrados (1965‑1980)

A década de 1950 introduziu o conceito do uso contínuo de transistores de estado sólido substituindo
as válvulas termiônicas. Entretanto, o crescimento das demandas por máquinas com cada vez maior
desempenho forçou os pesquisadores, juntamente com os grandes fabricantes de dispositivos, a buscar
maneiras de integrarem cada vez mais transistores em suas máquinas. Um problema decorrente era que
um único ponto de solda malfeita nos transistores poderia inviabilizar totalmente o funcionamento do
computador. Dessa forma, podemos considerar que o grande avanço no uso dos computadores ocorreu
justamente a partir da terceira geração, principalmente devido à construção do circuito integrado
(CI ou IC – Integrated Circuit), desenvolvido pelos cientistas Jack Kilby (1923‑2005) e Robert Noyce
(1927‑1990). O CI consiste no empacotamento de vários transistores conectados, formando uma rede
interligada, onde é possível controlar a passagem da corrente elétrica de forma lógica. Isso levou a
um desenvolvimento exponencial na eletrônica, inclusive aperfeiçoar o funcionamento das portas
lógicas básicas (AND, OR, NOT, XOR, XNOR) responsáveis pelo processamento de dados e instruções no
computador e que até então eram realizadas por válvulas ou relés.

Figura 11 – Réplica do primeiro circuito integrado

Disponível em: https://bit.ly/3XBUogs. Acesso em: 19 jan. 2023.

22
ARQUITETURA DE COMPUTADORES MODERNOS

Pode‑se afirmar que um dos marcos do início da terceira geração moderna de computadores
ocorreu em 1963, quando a IBM apresentou o computador IBM 360, desenvolvido por John Watson Jr.
(1914‑1993). Esse computador utilizava circuitos integrados (CIs) capazes de operar instruções de
máquina em bilionésimos de segundos, além de serem rápidos e confiáveis. Apesar de revolucionário,
esse projeto foi considerado um suicídio para a IBM, pois foram gastos mais de 5 bilhões de dólares, de
modo que o seu sucesso poderia representar a obsolescência de muitos outros produtos da empresa
(WAZLAWICK, 2016). Por fim, o IBM 360 se consolidou como o fim da distinção entre compradores para
uso científico e para uso comercial, pois ele poderia servir qualquer demanda que fosse necessária,
apresentando um alto poder de processamento.

Figura 12 – Mainframe IBM 360

Disponível em: https://bit.ly/3wfvxUo. Acesso em: 19 jan. 2023.

1.2.4 Computadores de quarta geração e além: VLSI (1980‑atual)

A terceira geração ocasionou a rápida expansão dos computadores para várias aplicações, desde o uso
militar até em pequenas e grandes corporações comerciais. Isso foi possível devido à integração de milhares
de transistores em um chip e, à medida que as técnicas de fabricação avançavam, um número maior de
transistores poderia ser agrupado, possibilitando uma variedade de escalas de integração de circuitos
eletrônicos muito grande, o que fez surgir toda uma indústria da microeletrônica. Tecnicamente existem
várias categorias de integração de circuitos, a começar pelo SSI (Small Scale Integration – integração em
pequena escala), onde é possível compactar cerca de 10 a 100 componentes eletrônicos (transistores,
capacitores, resistores etc.) por chip; o MSI (Medium Scale Integration – integração em média escala),
capaz de conter de 100 a 1.000 componentes por chip; LSI (Large Scale Integration – integração em larga

23
Unidade I

escala), onde se acoplam de 1.000 a 10.000 componentes; e, por fim, VLSI (Very Large Scale Integration –
integração em escala muito larga), que contém mais de 10.000 componentes por chip e que marca
o início da quarta geração dos computadores (NULL; LOBUR, 2010). A tecnologia conhecida como
VLSI possibilitou o desenvolvimento do microcomputador ou PC (Personal Computer – computador
pessoal), dispositivo suficientemente pequeno, barato (se comparado aos antigos Mainframes) e de fácil
fabricação, tornando seu acesso ao público muito mais simples.

Figura 13 – IBM PC modelo 5150

Disponível em: https://bit.ly/3Hg1h1G. Acesso em: 19 jan. 2023.

Saiba mais

Conheça mais sobre a evolução dos computadores modernos:

EVOLUÇÃO dos computadores. Brasil Escola, 2022. Disponível em:


https://bit.ly/3HbWtuc. Acesso em: 17 jan. 2023.

1.3 A evolução do poder de processamento e a lei de Moore

A indústria de manufatura de computadores e seus dispositivos periféricos continua em plena


expansão, principalmente devido à constante evolução da capacidade e desempenho dos microchips
e sua aplicação direta nos sistemas embarcados. O que tornou possível a melhora no desempenho nos
computadores foi a miniaturização dos transistores, que, em menor tamanho e maior quantidade, foram
capazes de proporcionar melhores condições para que um chip possa efetuar mais cálculos lógicos e
aritméticos que um processador de uma geração anterior.
24
ARQUITETURA DE COMPUTADORES MODERNOS

O fundador da Intel, o famoso cientista Gordon Moore (1929‑), publicou em 1965 na Electronic
Magazine um artigo científico baseado em suas pesquisas, onde ele verificou que cada nova geração de
chips de memória era lançada três anos após a geração anterior.

Dessa forma, se cada geração tiver quatro vezes mais memória do que a geração anterior, o número
de transistores do chip também crescerá a uma taxa constante, permitindo‑nos observar um crescimento
contínuo e estável pelas próximas décadas (TANENBAUM; AUSTIN, 2013). Essa pesquisa ficou conhecida
mundialmente como lei de Moore, embora não seja uma lei, propriamente dita. Hoje em dia costuma‑se
empregá‑la referenciando‑se que o número de transistores pode aumentar a cada 18 meses, o que
equivale a um aumento de 60% do número de transistores por ano.

Saiba mais

Leia o artigo na íntegra no link a seguir:

MOORE, G. Cramming more components onto integrated circuits.


Electronics, v. 38, n. 8, abr. 1965. Disponível em: https://intel.ly/2OZhsWY.
Acesso em: 18 jan. 2023.
Lei de Moore para chips de CPU (Intel)
Core i7
10G Core 2
Core Duo
1G
Pentium 4
Pentium III
100M
Pentium II
10M Pentium
Lei de Moore
1M
Transitores

80286 80486
100K Pentium
8086 80386 Pro
10K 4004 8080 8008
1K 8008
100
10
1
1970 1975 1980 1985 1990 1995 2000 2005 2010
Ano de lançamento

Figura 14 – Número de transistores versus ano de lançamento

Fonte: Tanenbaum e Austin (2013, p. 34).

25
Unidade I

Como é possível observar na figura, até meados da década de 1970 o número de transistores
ainda estava abaixo de 10K (10 mil) transistores. Durante os anos 1990 foi alcançada a incrível marca
de 1M (1 milhão) de transistores em um chip de processador. Após os anos 2010 e até a atualidade,
o número de transistores em um chip ultrapassa a barreira de 10G (10 bilhões). A lei de Moore é
apenas uma observação empírica sobre como a engenharia de materiais pode avançar na produção
de processadores digitais. Alguns cientistas afirmam que a lei de Moore ainda pode continuar válida
por pelo menos mais uma década, apesar de isso já ter sido dito há mais de uma década. Outros
pesquisadores acreditam que o “calcanhar de Aquiles” seja a dissipação de energia, fuga de corrente
elétrica e outros efeitos indesejados da eletrônica, que se tornam um obstáculo, pois tais efeitos
podem causar problemas sérios nos processadores, diminuindo sua vida útil. Outro fator importante
é que, devido à diminuição dos transistores, a tendência é de que as espessuras desses dispositivos
cheguem a um nível atômico, impossibilitando maiores diminuições de tamanho, exigindo assim
blocos de montagem subatômicos, o que dificultaria o processo de fabricação. Contudo, novas
pesquisas com transistores estão sendo realizadas, incluindo os novos avanços em computação
quântica, nanotubos de carbono além das pesquisas utilizando o grafeno, trazendo um novo patamar
para o poder computacional.

Saiba mais

Conheça mais sobre a tecnologia do Grafeno:

HELERBROCK, R. Grafeno. Mundo Educação. [s.d.]. Disponível em:


https://bit.ly/3wfkYQU. Acesso em: 18 jan. 2023.

1.4 Definição da organização e arquitetura de computadores

Podemos definir a arquitetura de computadores como os atributos acessíveis a um programador de


computador e com impacto direto sobre a execução lógica da máquina. Por outro lado, a organização
de computadores são unidades operacionais pertencentes à arquitetura e suas interconexões
(meios de se comunicar com outros dispositivos). Fazem parte dos atributos de uma arquitetura
de computadores o conjunto de instruções ou códigos de operação que uma máquina necessita
para poder operar, o número de bits utilizados para que seja realizada a representação dos dados,
por exemplo números ou caracteres, mecanismos de entrada e saída (E/S) de dados e instruções,
além de técnicas de endereçamento de memórias internas ou externas (STALLINGS, 2010). Alguns
atributos presentes em sistemas computacionais podem incluir todos os hardwares acessíveis a um
programador, por exemplo sinais de controle, interfaces entre o computador e seus periféricos e
estrutura de memória utilizada no sistema etc.

26
ARQUITETURA DE COMPUTADORES MODERNOS

Observação

De modo geral, não há uma distinção entre a arquitetura e a organização


de computadores. Alguns fabricantes de computadores oferecem uma
família de computadores (grupo de computadores tendo como base o
uso de processadores com características em comum) utilizando a mesma
arquitetura, mas com diferenças em sua organização.

Em uma classe de computadores denominada PC (Personal Computer – computador pessoal), o


relacionamento entre a arquitetura e organização de computadores é de fato praticamente idêntica.

1.5 Sobre a hierarquia de função do computador: processamento,


armazenamento, movimentação e controle de dados

A hierarquia dos sistemas computacionais consiste em componentes de entrada e saída que


se inter‑relacionam com os níveis mais baixos de sua estrutura e é essencial em um projeto de um
computador moderno. Assim, cada nível hierárquico dependerá de uma caracterização simplificada e
resumida do sistema local, ficando os demais níveis caracterizados separadamente, de modo que, quando
um computador é projetado, essas características são analisadas em relação à sua estrutura e função.

1.5.1 Operação funcional

A operação funcional de um computador pode ser representada através de um diagrama, contendo


funções básicas, que são: processamento de dados, armazenamento de dados, movimentação de dados
e controle. A figura a seguir mostra uma visão funcional de um computador, com cada uma das funções
citadas anteriormente.

Capacidade de
armazenamento
de dados

Aparato de
Ambiente operacional movimentação Mecanismo
(origem e destino dos dados) de dados de controle

Capacidade de
processamento
de dados

Figura 15 – Interconexão e fluxo de dados entre sistemas


de armazenamento, processamento e controle

Fonte: Stallings (2010, p. 8).

27
Unidade I

Observa‑se que o sistema necessita de uma interface física para que ocorra a movimentação de
dados, constituída por dispositivos periféricos, que servirão de receptores/transmissores (RX/TX) para os
dados após a inserção de dados no sistema ou seu processamento. Em seguida, o mecanismo de controle
indica qual tipo de operação o dado requererá, seja processamento de dados, seja armazenamento
de dados. Após o processamento de dados, estes são armazenados de forma temporária ou definitiva, e
uma cópia desses dados é devolvida para o operador no ambiente externo à máquina pelos periféricos
do computador, como monitor, impressora, pendrive, impressora etc.

1.5.2 Dados e seu processamento

O processamento de dados é o processo que consiste na extração de informações de forma ordenada


e concatenada, resultando em uma combinação de novos resultados a serem utilizados pelo próprio
hardware e/ou pelo sistema operacional. O processamento de dados é subdividido em três etapas: entrada,
processamento e saída. Os dados geralmente ficam armazenados, sendo necessária a movimentação
deles para que seja realizado o processamento, como observado na figura a seguir.

Movimentação

Controle

Armazenamento Processamento

Figura 16 – Movimentação dos dados desde o armazenamento, controle,


processamento de dados e de volta ao armazenamento

Fonte: Stallings (2010, p. 9).

1.5.3 Como o computador armazena dados

O computador deve ser capaz de armazenar dados temporariamente, tornando o armazenamento de


dados e instruções um processo dinâmico e contínuo. Dessa forma, os dados transferidos do ambiente
externo para o interno podem ser armazenados no computador para a realização dos processos de
leitura e escrita, como mostra a figura.

28
ARQUITETURA DE COMPUTADORES MODERNOS

Movimentação

Controle

Armazenamento Processamento

Figura 17 – Armazenamento de dados internos/externos

Fonte: Stallings (2010, p. 9).

1.5.4 Como os dados são movimentados

Como mencionado anteriormente, um computador também deve ser capaz de movimentar dados
gerados internamente para dispositivos externos. Dessa forma, ele será capaz de receber dados e
processá‑los. Os dispositivos responsáveis pela interconexão com seu exterior (entrada/saída – E/S) são
conhecidos como periféricos e são muito importantes para que o usuário tenha a possibilidade de
interação com a máquina. Um computador pode funcionar como um dispositivo para movimentação
de dados transferindo‑os de um periférico para outro, como ilustra a figura.

Movimentação

Controle

Armazenamento Processamento

Figura 18 – Movimentação de dados

Fonte: Stallings (2010, p. 9).

29
Unidade I

1.5.5 Unidade de controle

O controle, como o próprio nome diz, controla as operações realizadas pelo processador, fornecendo
instruções para a realização das três funções descritas anteriormente (processamento de dados,
armazenamento de dados e movimentação de dados). O gerenciamento dessas funções é realizado
pelo processador do computador, mais especificamente pela unidade de controle (UC), gerenciando os
recursos computacionais através de instruções, além de coordenar o desempenho e as funcionalidades
do processador.

1.6 Sua estrutura

Um computador moderno está estruturado a partir de quatro componentes, responsáveis pelo seu
pleno funcionamento, classificados em (STALLINGS, 2010):

• Unidade central de processamento (UCP ou CPU – central processing unit): constituída


pela unidade lógica e aritmética (ULA) e pela unidade de controle (UC), tem como função o
controle de toda a operação do computador, realizando suas funções de processamento de dados
e instruções, além de gerenciar o armazenamento de dados.

• Memória principal: tem como função armazenar os dados de forma dinâmica e temporária.

• Entrada e saída (E/S ou I/O – input/output): responsável por mover os dados entre o computador e
seu ambiente externo (periféricos) ou de um ambiente externo para seu processamento interior.

• Interconexão do sistema: é formada por mecanismos que oferecem meios de comunicação


entre a CPU, a memória principal e os dispositivos de E/S. Um exemplo comum de interconexão
do sistema é pelo barramento de dados e instruções, que consiste em uma série de fios de cobre
condutores aos quais todos os outros componentes se conectam. A figura a seguir ilustra uma
visão ampliada dos dispositivos contidos na estrutura interna de um computador moderno.

30
ARQUITETURA DE COMPUTADORES MODERNOS

Computador

E/S Memória
principal

(a) Barramento
do sistema

CPU
CPU
Registradores ULA

Barramento (b)
interno

Unidade
de controle

Unidade
de controle
Lógica de
sequenciação

(c) Registradores e
decodificadores
da unidade de
controle
Memória
de controle

Figura 19 – Estrutura organizacional expandida de um computador moderno

Adaptada de: Stallings (2010, p. 10).

Conforme observado na figura 19, a estrutura interna organizacional de um computador moderno é


constituída principalmente por barramentos (fios) que fazem o elo entre os diferentes dispositivos e níveis
de um computador. Na figura 19a, é possível observar o nível de dispositivos internos do computador,
como CPU, memória principal e dispositivos de E/S; na figura 19b, é possível ter uma visão ampliada
da CPU, constituída pelos registradores, ULA, UC e o barramento interno, que faz a interconexão entre
esses dispositivos; na figura 19c, um nível mais abaixo mostra uma visão ampliada da UC, constituída
por registradores e decodificadores da UC, memória de controle e dispositivos lógicos, que realizam a
sequenciação de instruções.

31
Unidade I

Observação

A UC (unidade de controle) realiza todo o controle operacional


da CPU (unidade central de processamento), a ULA (unidade lógica e
aritmética) realiza a função de processamento de dados, e os registradores
oferecem armazenamento interno na CPU para o armazenamento de
dados e instruções.

1.7 Definições de computadores multiníveis modernos

Os computadores modernos possuem diversos estágios de desenvolvimento onde foram introduzidos


diferentes níveis de abstrações e organizações para o tratamento de dados/instruções. Atualmente, são
aceitos, basicamente, seis níveis, que vão do nível zero, também conhecido como nível lógico, até o nível
cinco, que é o nível mais alto, onde estão as linguagens de programação (TANENBAUM; AUSTIN, 2013).
A figura a seguir mostra como estão separados os multiníveis de computadores atualmente.

Nível 5 Nível de linguagem orientada a problemas

Tradução (compilador)

Nível 4 Nível de linguagem de montagem (assembly)

Tradução (assembler)

Nível 3 Nível do sistema operacional da máquina

Interpretação parcial (sistema operacional)

Nível 2 Nível de arquitetura de conjunto de instruções

Interpretação (microprogramação) ou execução direta

Nível 1 Nível de microarquitetura

Hardware

Nível 0 Nível lógico digital

Figura 20 – Níveis de abstração de um computador moderno

Fonte: Tanenbaum e Austin (2013, p. 4).

O nível mais baixo da estrutura (nível 0 ou nível lógico digital) contém todo o hardware da máquina.
Nesse nível são encontrados os dispositivos fundamentais para a operação de um computador (portas
lógicas ou logic gates). As portas lógicas são responsáveis pelo comportamento digital binário de um
computador, tratando os dados apresentados a partir de estados eletrônicos 0 (desligado) e 1 (ligado).

32
ARQUITETURA DE COMPUTADORES MODERNOS

Nome Símbolo gráfico

A
AND F
B

A
OR F
B

NOT A F

A
NAND F
B

A
NOR F
B

A
XOR F
B

Figura 21 – Diferentes tipos de portas lógicas digitais

Fonte: Stallings (2010, p. 320).

As portas lógicas são constituídas por elementos analógicos como transistores, que, combinados
com outros componentes eletrônicos, resultam em um comportamento digital. Cada porta lógica é
constituída por alguns transistores, e a junção de várias portas lógicas formam circuitos digitais
combinacionais ou sequenciais, que operaram sobre dados binários constituídos por 8, 16, 32, 64, 128
bits ou mais.

O próximo nível é o 1, conhecido como nível de microarquitetura, que ainda está na categoria de
nível de hardware. No nível 1 também se encontra uma coleção de registradores, que são dispositivos
de memória interna, contidos dentro da CPU, e são basicamente constituídos por portas lógicas. Nesse
nível também se encontra a ULA, que é responsável pela organização lógica e aritmética do processador.
Os registradores também servem como base para a transferência de dados e instruções para dentro e
fora da ULA. Geralmente, em computadores modernos a operação do fluxo dos dados é controlada por
um programa denominado microprograma.

O nível 2, também conhecido como nível de arquitetura do conjunto de instruções de máquina


ou ainda instruction set architecture (ISA), contém instruções de operação do hardware. As empresas
fabricantes de computadores geralmente entregam, ao venderem o computador, um manual de
referência da máquina com seus princípios práticos operacionais. Nesse manual se encontra o nível ISA
e como as instruções são executadas e interpretadas pela máquina.

33
Unidade I

O nível 3 (nível de máquina do sistema operacional) costuma ser conhecido como nível híbrido, pois
a maioria de suas instruções operacionais está contida no nível ISA, informando que há uma mescla
entre os níveis mais baixos, dificultando sua separação exata. Os acréscimos feitos nesse nível implicam
a introdução de um interpretador, que realiza o controle dos hardwares contidos nos níveis abaixo
(nível 0 e nível 1), além de interpretar o conjunto de instruções produzidas no nível 2.

O nível 4 foi criado especificamente para atender desenvolvedores de sistemas e aplicativos, ou seja,
profissionais especializados no projeto e execução de emuladores, para que possam ter acesso direto ao
hardware das camadas mais abaixo, usando uma linguagem de baixo nível, como a linguagem assembly.

Por fim, o último nível (5) é conhecido como nível de linguagem orientada a objeto e trata dos
softwares utilizados por desenvolvedores de aplicações, também conhecidas popularmente como
linguagens de alto nível. Há uma lista extensa dessas linguagens, sendo algumas das mais conhecidas
C, C++, C#, Java, Javascript, Python, PHP, Perl, R etc., que possuem como função a compilação
(interpretação) de instruções obtidas em alto nível (nível de usuário) convertendo‑as em instruções de
máquinas (baixo nível).

1.7.1 Os níveis de evolução das máquinas multiníveis

Os seis níveis adotados atualmente são responsáveis pelo funcionamento do processamento de


dados de um computador. Antes disso, a ideia de níveis sofreu algumas mudanças necessárias para
que essa separação fosse de fato uma implementação prática. Os programas escritos em linguagem de
máquina (nível 1) podiam inicialmente ser executados diretamente pelos circuitos digitais encontrados
no nível 0 (hardware), sem a necessidade de algum interpretador ou tradutor para realizar essa leitura e
transferência de dados. Entretanto, ao evoluírem, os níveis mais altos, que constituem basicamente no
uso de softwares, ficaram cada vez mais responsáveis por realizar o intercâmbio das informações entre o
hardware e o software, com o intuito de otimizar o processamento e armazenamento das informações.

Os primeiros computadores digitais da história, desenvolvidos na década de 1940, continham


apenas dois níveis de abstração: nível 0 e nível 1, onde era realizada toda a programação em nível
lógico digital. Durante a década de 1950, foi introduzido mais um nível, com o intuito de facilitar a
inserção e interpretação de dados. Esse nível era baseado no uso de microprogramação, e executava
programas do nível ISA através da interpretação de instruções. Os três níveis mais baixos perduraram até
a década de 1970, quando os demais níveis foram elaborados e aperfeiçoados, principalmente através
do desenvolvimento dos sistemas operacionais (nível 3).

1.8 Sistemas operacionais e seu desenvolvimento

Um sistema operacional pode ser definido como um programa capaz de gerenciar todo o hardware
de um computador (SILBERSCHATZ; GALVIN; GAGNE, 2015). Um sistema operacional também pode
ser definido como um ambiente de software que facilita, no âmbito do usuário, a inserção/extração de
dados e instruções de um ambiente para outro (software/hardware).

34
ARQUITETURA DE COMPUTADORES MODERNOS

Lembrete
Um sistema operacional é o principal software de um computador,
pois além de realizar todo o controle dos componentes de hardware, ele
nos permite um acesso facilitado e intuitivo a tarefas importantes como
edição de textos, navegação web, elaboração de planilhas, comunicação
com outros usuários etc.

O surgimento dos sistemas operacionais advém da necessidade de facilitar a interação


homem‑computador (IHC). Nos anos de 1960, quando um usuário necessitava operar um computador,
seu acesso à máquina era diretamente através do hardware. Aliado a essa necessidade, o volume de
dados e instruções ocorria em crescimento exponencial, sendo necessário algum software para realizar
o gerenciamento de dados e instruções contidos nos cartões perfurados ou nas fitas magnéticas. De
modo que, durante a segunda geração de computadores (1955‑1965), surgiram os primeiros softwares
para gerenciamento de arquivos em lote (batch), ou seja, para controle de um lote de cartões perfurados.
Nesse período, computadores (mainframes) começaram a processar um volume muito grande de dados.
Os cartões perfurados continham os programas de computadores que possuíam o programa que,
depois de inseridos um a um para leitura, eram processados. Porém, a inserção de dados manualmente
e unitária de cada cartão perfurado se mostrou ineficaz. Logo, se mostrou necessário o uso do lote de
cartões perfurados para serem lidos e processados mais rapidamente pelo computador, otimizando o
tempo de execução das tarefas. A partir disso, notou‑se também a necessidade do desenvolvimento de
algum software que realizasse o controle dessa tarefa, surgindo os primeiros sistemas operacionais em
lote, desenvolvidos na linguagem Fortran ou assembly. A figura a seguir mostra uma sequência lógica
de como o processo era realizado.
Acionador Fita de Sistema Fita de
de fita entrada de fita saída
Leitor de
cartão Impressora

1401 7094 1401

(a) (b) (c) (d) (e) (f)

Figura 22 – Funcionamento de um sistema operacional em lote

Fonte: Tanenbaum (2010, p. 5).

No início do processo (figura 22a), o primeiro operador é responsável pela inserção de um lote
de cartões perfurados em um leitor de cartões que fazem parte do sistema de mainframe IBM 1401
(figura 22b). O processo tem sequência com o mainframe 1401 realizando a operação de conversão dos
dados contidos nos cartões para um sistema de fita magnética. Depois de terminar da transferência, os
dados gravados nas fitas de entrada (figura 22c) agora são inseridos em outro mainframe (IBM 7094)
35
Unidade I

(figura 22d), que de fato realiza o processamento do programa escrito inicialmente nos cartões perfurados.
Terminado o processamento, os dados eram armazenados em outro conjunto de fitas magnéticas de
saída (figura 22e), que serão lidos por outro mainframe 1401, sendo por fim realizada a impressão dos
dados resultantes na saída (figura 22f). A figura a seguir ilustra em qual sequência as instruções eram
realizadas em um lote (batch) de cartões perfurados.

$END
Dados para programa

$RUN
$LOAD

Programa Fortran

$FORTRAN
$JOB, 10,6610802,
MARVIN TANENBAUM

Figura 23 – Conjunto estruturado de cartões perfurados em lote

Fonte: Tanenbaum (2010, p. 6).

No início da sequência, um cartão $JOB contém informações com o tempo máximo para o processamento e
os dados do programador que está utilizando o sistema. Em seguida, encontra‑se o cartão $FORTRAN, que
informa ao sistema operacional o acionamento do compilador Fortran a partir de informações contidas em
uma fita magnética. A próxima leitura será justamente do programa Fortran desenvolvido pelo programador
contendo os dados a ser processados pelo sistema. Na sequência, o cartão $LOAD ordena ao sistema
operacional o carregamento do programa‑objeto recém‑compilado. O próximo cartão a ser lido será o
$RUN, que indica ao sistema operacional que naquele momento deve ser executado o programa constituído
pelo conjunto de dados já ordenados nos cartões. Por fim, o cartão $END indica a conclusão das tarefas.
Um dos sistemas operacionais mais populares a executar as tarefas de leitura e processamento de dados e
instruções nesse período (1960‑1970) foi o Fortran Monitor System (FMS) e o sistema operacional da IBM,
IBSYS (TANENBAUM, 2010).

Saiba mais

Para conhecer um pouco mais sobre os sistemas operacionais modernos,


leia os capítulos 1 e 2 de:

SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Fundamentos de sistemas


operacionais. 9. ed. Rio de Janeiro: LTC, 2015.

36
ARQUITETURA DE COMPUTADORES MODERNOS

2 UNIDADE CENTRAL DE PROCESSAMENTO E OS PROCESSADORES


MODERNOS

2.1 Fundamentos da CPU (Central Unit Processing – unidade central


de processamento)

O processador é considerado o “cérebro” do computador, controlando suas tarefas, como processar,


gravar ou interpretar dados, operando sobre dígitos binários (bits 0 e 1). Ele também é considerado
o elemento mais ativo de um computador, pois realiza, constantemente, a execução de programas
armazenados na memória principal (memória RAM), buscando por novas instruções, decodificando‑as
e, por fim, executando‑as sequencialmente. No geral, as CPUs são “empacotadas” em um único chip
multiprocessado constituído por um núcleo de silício, ligado a um conjunto de pinos capazes de realizar
toda a comunicação de dados/instruções eletronicamente.

Figura 24 – UCP (unidade central de processamento) Intel I5

Disponível em: https://bit.ly/3wfNTVa. Acesso em: 19 jan. 2023.

Lembrete

A CPU é constituída por diferentes partes distintas em unidade de


controle, responsável pela busca e decodificação de instruções e pela
unidade lógica e aritmética (ULA), que efetua operações lógicas booleana
(AND, OR, NOT, NAND, NOR, XOR, XNOR).

37
Unidade I

Figura 25 – George Boole

Disponível em: https://bit.ly/2m1YbXT. Acesso em: 19 jan. 2023.

A origem da lógica booleana data em 1854, quando o matemático britânico George Boole escreveu
um trabalho científico intitulado “An investigation of the laws of thought” (Uma investigação das
leis do pensamento). Em seu trabalho, Boole prenunciou que as tarefas poderiam ser resolvidas com
base em decisões lógicas como verdadeiro (V) ou falso (F) (TOCCI; WIDMER; MOSS, 2011). Essa teoria
é amplamente utilizada até os dias atuais e emprega um sistema baseado em símbolos ou operadores
lógicos para descrever as tomadas de decisão.

Saiba mais

Da mesma forma que se utilizam símbolos algébricos, por exemplo x


e y, assim também a teoria booleana se baseia no uso de símbolos para
representar uma expressão lógica. Saiba mais em:

MONTEIRO, M. A. Introdução à organização de computadores. 5. ed. Rio


de Janeiro: LTC, 2019.

38
ARQUITETURA DE COMPUTADORES MODERNOS

2.1.1 Como acontece o processo de fabricação da CPU

É muito importante entender como ocorre o processo de fabricação dos processadores desde o seu
início, com a preparação do silício bruto, até a obtenção final do microchip encapsulado. A partir da
visão do processo de fabricação também é possível diagnosticar quais são as limitações que a indústria
da eletrônica atravessa atualmente com a escassez de matéria‑prima além das dificuldades em se
produzirem componentes cada vez menores.

É de conhecimento de todo usuário que cada vez mais os dispositivos integrados na CPU diminuem
de maneira que novas tecnologias precisam ser modificadas para manter a indústria da microeletrônica
em constante evolução. A indústria deve continuar a oferecer o máximo em desempenho aos usuários
que, por sua vez, utilizam cada vez mais os recursos computacionais para o lazer e a diversão e que, por
consequência, requerem mais desempenho das máquinas.

Figura 26 – Operador de uma máquina de litografia durante o processo de fabricação do chip

Disponível em: https://bit.ly/3wfmh2r. Acesso em: 19 jan. 2023.

O processo para a fabricação de um processador envolve várias etapas, desde a obtenção do silício
em altíssimo grau de pureza até o estágio final com a litografia (impressão de circuitos eletrônicos) e
encapsulamento do processador.
39
Unidade I

Observação

O processo de litografia, que deriva das palavras gregas lithos (pedra)


e graphein (escrever) não é uma descoberta recente, mas remonta ao
século XVIII. Logicamente, em seu início, essa tecnologia não era empregada
na fabricação de processadores, e sim na escrita em peças de calcário.
Somente em meados do século XX é que todo o processo de fabricação de
peças eletrônicas, utilizando a escrita de dispositivos com lasers, foi de fato
implementada nos processadores.

Em um primeiro estágio de fabricação, o silício está num estado sólido (como pode ser observado
na figura 27) e, na sequência, ele é triturado até ficar reduzido ao tamanho de pequenos grãos de pó
(figura 28).

Figura 27 – Pedaço de silício com alto grau de pureza

Disponível em: https://bit.ly/3WjInLH. Acesso em: 19 jan. 2023.

40
ARQUITETURA DE COMPUTADORES MODERNOS

Figura 28 – Silício em pó

Disponível em: https://bit.ly/3kYZGoq. Acesso em: 19 jan. 2023.

Após a trituração e obtenção do pó, ele será inserido em uma máquina, conhecida como câmara
de crescimento epitaxial (figura 29), para que possa ser aquecido em altas temperaturas (aproximadamente
1000 °C).

Figura 29 – Máquina de crescimento epitaxial

Disponível em: https://bit.ly/3WsiHfY. Acesso em: 19 jan. 2023.

41
Unidade I

Durante o processo de aquecimento e crescimento epitaxial, o silício passa por um processo de


rotação para que seja obtido um formato cilíndrico, também conhecido como pré‑forma ou “tarugo”.

Figura 30 – Pré‑forma ou “tarugo” de silício dentro de uma máquina de crescimento epitaxial

Disponível em: https://bit.ly/3J1URoi. Acesso em: 19 jan. 2023.

Essa pré‑forma é finalmente fatiada transversalmente, facilitando o próximo estágio da fabricação,


que será a litografia. Na sequência, é possível observar o próximo estágio de fabricação do processador,
em que se retira um pequeno pedaço do wafer, que será empacotado num chip.

42
ARQUITETURA DE COMPUTADORES MODERNOS

Figura 31 – Dezenas de processadores no wafer

Disponível em: https://bit.ly/3XEdv9Q. Acesso em: 19 jan. 2023.

Saiba mais

Aprofunde seus conhecimentos sobre a fabricação dos processadores


com a leitura de:

ALECRIM, E. Processadores: fabricação, miniaturalização e


encapsulamento. Infowester, 2009. Disponível em: https://bit.ly/3GU25YC.
Acesso em: 18 jan. 2023.

2.1.2 Conceitos dos chips de CPU

Um chip de CPU, basicamente, contém três funcionalidades, a saber: alocação de endereços,


processamento e controle de dados. Assim, essas premissas de operação poderão ser conectadas a
pinos na memória e a chips de E/S através de um conjunto de fios de cobre paralelos (barramento),
para que as operações básicas ocorram na CPU. Ao buscar uma instrução na memória, inicialmente
a CPU coloca o endereço da posição de memória desejada daquela exata instrução em seus pinos de

43
Unidade I

endereços. Após essa primeira etapa, ela ativa uma ou mais linhas de controle com a finalidade de
informar à memória que ela necessita ler uma palavra. A palavra, do inglês word, é um termo técnico
utilizado em computação para denominar uma sequência fixa de bits contendo 8, 16, 32 ou 64 bits de
acordo com a arquitetura do processador e que representa uma informação útil para o computador
(MONTEIRO, 2019). Então a memória responde colocando a palavra requisitada nos pinos de dados da
CPU e ativa um sinal que informará o que acabou de ser realizado. Ao receber esse sinal, a CPU aceita
a palavra e executa a instrução indicada. A instrução indicada pode ser uma requisição para realizar
alguma leitura ou escrita de palavra de dados, em que todo o processo deverá ser repetido para cada
palavra adicional que será processada.

Nos chips de CPU também existem dois parâmetros que determinam o seu desempenho, que são a
quantidade de pinos de endereços e o número de pinos para dados. Um chip com m pinos de endereços
poderá realizar o endereçamento de até 2m localizações na memória. Os valores mais comuns para
o número de pinos m são 16, 32 e 64 (TANENBAUM; AUSTIN, 2013). Assim, um chip consistindo em
n pinos de dados pode ler ou escrever uma palavra de n bits em uma única operação. Portanto, um chip
de 64 pinos de dados será muito rápido, porém de altíssimo custo.

Além dos pinos para endereçamento, a CPU possui pinos de controle. Os pinos de controle servem
para regular o fluxo e a temporização de dados que chegam da CPU e que passam por ela, além de
outras funcionalidades. As CPUs também possuem pinos para energização (entre 1,2 volt a 1,5 volt),
um pino de aterramento (negativo) e um pino para o sinal de sincronismo de clock (onda quadrada de
frequência bem definida). Existem outros pinos que realizam o controle e que podem ser agrupados nas
seguintes categorias:

• Controle de barramento

• Interrupções

• Arbitragem de barramento

• Sinalização de coprocessador

• Estado

• Diversos

44
ARQUITETURA DE COMPUTADORES MODERNOS

A figura a seguir mostra um chip de CPU genérico baseado no uso desses grupos de pinos de sinais.

Endereçamento Arbitragem de
barramento

Coprocessador
Dados

Microprocessador típico
Controle de
barramento Estado

Interrupções Diversos

Símbolo para
aterramento elétrico
Φ Alimentação

Símbolo para sinal


de clock

Figura 32 – Pinagem lógica de uma CPU genérica

Fonte: Tanenbaum e Austin (2013, p. 147).

Como observado na figura anterior, as diversas setas indicam os sinais de entrada e os sinais
de saída do chip. Além dessas, outras setas indicam a utilização de vários pinos para realização da
comunicação de dados e instruções. Também é possível observar, logo abaixo da figura, a pinagem para
alimentação elétrica, aterramento e entrada para realização do sincronismo de clock.

Lembrete

A maioria dos pinos de controle do barramento interno do chip são,


na verdade, pinos de saídas de comunicação da CPU para o barramento;
portanto, são linhas de comunicação dos dispositivos de E/S para a memória
principal (RAM).

Outros diversos pinos do chip são utilizados para sinalização de interrupções, oriundas dos
dispositivos de E/S que se conectam à CPU e necessitam interromper processos em execução. Assim,
a principal função nesse caso é a de controlar algum dispositivo de E/S, ativando um sinal dos pinos
para interromper a CPU ou fazê‑la realizar algum tipo de serviço para o dispositivo de E/S, como a
verificação de ocorrências de erros de comunicação de E/S. Algumas CPUs, como a observada na figura
anterior, possuem um pino de saída para confirmação do sinal de interrupção. Os pinos de arbitragem de

45
Unidade I

barramento são utilizados para realizar o controle do tráfego no barramento, de modo a impedir que dois
ou mais dispositivos tentem usá‑lo simultaneamente e, por consequência, ocorra algum conflito. Outros
chips são projetados para operarem como processadores auxiliares ou coprocessadores, como o Sprow
ARM7 observado na figura a seguir, especializado em processamento paralelo e processamento gráfico.

Figura 33 – Coprocessador Sprow ARM7

Disponível em: https://bit.ly/3GR0mDt. Acesso em: 19 jan. 2023.

2.1.3 Como surge o Intel Core i7

Talvez o mais conhecido e também o processador mais bem‑sucedido da Intel é o Core i7. Ele foi
lançado no ano de 2008 em sua primeira geração e é considerado a maior evolução dos processadores
Intel desde o Intel 8088. Como comparativo, o 8088 possuía míseros 29 mil transistores e um clock de
4,77 MHz e que foi amplamente utilizado no desktop IBM PC da década de 1980, enquanto em seu
lançamento (2008) o i7 possuía cerca de 731 milhões de transistores distribuídos em quatro processadores,
operando à frequência de clock de 3,2 GHz (3,2 bilhões de hertz ou ciclos por segundo), utilizando uma
largura de linha (fios de cobre de ligação entre os transistores) de 45 nanômetros (45 x 10‑9 metros). Aqui
pode‑se ressaltar que quanto menor for a largura de linha (o que também implica transistores menores),
mais transistores serão empacotados em um chip, aumentando, assim, seu poder de processamento em
hertz. A primeira geração da arquitetura i7 era baseada na arquitetura Nahalem, que na época substituiu
a arquitetura Core utilizada nos processadores anteriores e evoluiu para uma arquitetura Sandy Bridge,
composta por 1,16 bilhão de transistores, trabalhando a uma velocidade de até 3,5 GHz, com largura
de linha de 32 nanômetros (TANENBAUM; AUSTIN, 2013). Outra diferença interessante é que o i7 é
uma máquina completa de 64 bits multicore, que corresponde ao tamanho da palavra/instrução que o
processador consegue interpretar.
46
ARQUITETURA DE COMPUTADORES MODERNOS

Figura 34 – Intel Core I7

Disponível em: https://bit.ly/3QYwCcz. Acesso em: 19 jan. 2023.

O i7 é compatível em aplicações que requerem o uso de processamento paralelo e de threads de


hardware e software. O sistema de hyper‑threading (conceito de processamento paralelo desenvolvido
em 2002 nos processadores Pentium 4), também conhecido como multithreading simultâneo, permite
que latências com quantidade de tempo para acesso a outro hardware em tempos muito curtos sejam
utilizadas quando há falta de espaço em memória cache. Além disso, todos os processadores Core i7
possuem três níveis (layer) de memória cache (L1, L2 e L3), em que cada núcleo possui uma cache de
dados L1 (layer 1) com 32 kB (kilobytes) e uma cache L1 de instruções também com 32 kB. Os núcleos
dos processadores i7 também possuem sua própria cache L2 com 256 kB, além de compartilharem entre
todos os núcleos uma cache unificada L3 com tamanhos que variam de 4 a 15 MB (megabytes).

Como descrito anteriormente, todos os processadores Core i7 possuem múltiplos núcleos com
caches específicas para dados. Isso pode ocasionar um problema quando a CPU modifica a palavra
na cache e que também esteja contida em outro núcleo, sendo utilizada ao mesmo tempo. Se outro
processador tenta ler a mesma palavra da memória, poderá obter um valor ultrapassado, ou seja, sem as
modificações mais recentes, visto que as palavras de cache modificadas não são escritas imediatamente
de volta na memória. Assim, para manter uma consistência de informações da memória, cada núcleo
em um sistema microprocessado realiza a operação snoops (escuta) no barramento de memória, em
busca de referências de palavras contidas na cache. Quando ela acha uma dessas referências, são
fornecidos os dados antes que a memória faça a leitura deles, assim não haverá risco de os dados não
estarem atualizados.

47
Unidade I

Outro problema apresentado no projeto do Intel i7 se refere ao consumo elevado de energia, o que
também ocorre naturalmente com outras CPUs. Um processador Core i7 consome entre 17 e 150 watts,
dependendo de seu modelo ou frequência de operação (hertz). A fim de impedir que algum dano ocorra
no silício devido ao aquecimento excessivo, em todo projeto de processadores a Intel utiliza métodos
de resfriamento com o uso de dissipadores de calor, para que o calor não danifique o substrato do
processador e o silício queime. Na figura a seguir é possível observar um dissipador de calor anexo à CPU.

Figura 35 – Dissipador de calor anexo na parte superior da CPU

Disponível em: https://bit.ly/3iNh9zv. Acesso em: 19 jan. 2023.

O projeto original do Intel i7 também possui um soquete de conexões land grid array (LGA) com
37,5 milímetros de borda e 1.155 pinos em sua parte inferior, em que 286 são para alimentação e
360 para aterramento. Os pinos estão dispostos como um quadrado de 40 x 40 pinos com 17 x 25 pinos
faltando no meio. Outros 20 pinos também estão faltando no perímetro de forma assimétrica, para
impedir que o chip seja inserido de forma incorreta pelo usuário na sua base situada na placa‑mãe
Essa disposição física da pinagem é observada na figura a seguir.

48
ARQUITETURA DE COMPUTADORES MODERNOS

Figura 36 – Vista inferior da disposição física dos pinos do Intel Core i7

Fonte: Tanenbaum e Austin (2013, p. 160).

A pinagem lógica de funcionamento é mostrada na próxima figura, onde é possível observar que
em seu lado esquerdo há cinco grupos principais de sinais de barramento, incluindo comunicações
com a memória principal (RAM) através de comunicação double data rate (DDR); e no seu lado direito,
uma diversidade de sinais, para diagnósticos, monitoramento térmico, detecção e gerenciamento de
energia etc.

49
Unidade I

Canal de memória DDR#1 124 18


Diagnósticos
124 4
Monitoramento térmico
Canal de memória DDR#2
10
80 Gerenciamento de energia
Canal PCle CPU do Core i7 7
16 Detecção de energia
Interface de mídia direta 24
Configuração
12
21 Diversos
Interface de monitor flexível

286 360

CK Energia Terra

Figura 37 – Pinagem lógica do Intel Core i7

Fonte: Tanenbaum e Austin (2013, p. 161).

Após o estudo externo, incluindo sua pinagem lógica e física, agora é necessária uma abordagem das
principais características de funcionamento da CPU.

2.1.4 Como é a organização geral de um processador

O processador é organizado de acordo com as seguintes funcionalidades:

• Buscar instruções: o processador deve ser capaz de realizar a leitura de uma ou várias instruções
que ocupam endereços específicos na memória (registrador, cache, memória principal).

• Interpretar instruções: as instruções são decodificadas a fim de se determinar qual ação é


requerida naquele momento.

• Obter dados: o ato da execução de uma ou mais instruções pode requerer a leitura de dados da
memória ou algum dispositivo de E/S.

• Processar dados: a execução de instruções pode requerer a realização de operações lógicas e/ou
aritméticas com os dados.

• Gravar dados: os resultados obtidos através do processamento de dados podem ser gravados na
memória ou dispositivos de E/S.

50
ARQUITETURA DE COMPUTADORES MODERNOS

2.1.5 Um processador e sua microarquitetura

A microarquitetura de um processador é constituída por um conjunto de instruções contendo


operações complexas, além de três subsistemas principais: unidades de execução, banco de registradores
e lógica de controle. Essas unidades também podem ser descritas como o caminho dos dados do
processador, pois os dados e instruções fluem regularmente por eles (CARTER, 2002), como indica a
figura seguinte.
Dados fornecidos
pela memória
Dados para memória Dados para memória Instruções de memória

Sinais de
controle Lógica de controle

Banco de registradores

Unidade Unidade
artimética artimética
de inteiros de ponto
flutuante

Figura 38 – Diagrama de blocos de uma CPU moderna

Fonte: Carter (2002, p. 49).

O diagrama da figura anterior mostra quais são as etapas envolvidas na execução de uma ou
várias instruções e como os módulos do processador interagem entre si durante o processamento e a
decodificação da instrução. Inicialmente, o processador busca a instrução que está contida na memória
principal (externa ao processador) e a direciona para ser decodificada pela lógica de controle. Após a
decodificação da instrução, esta é representada em um padrão de bits a fim de informar ao hardware
como ela deverá ser executada. Esse padrão de bits será então enviado para a próxima sessão da unidade
de execução da instrução, através de sinais de controle, a qual lê as entradas da instrução na memória
interna do processador (banco de registradores). Assim que a instrução é decodificada e os valores são
armazenados nos registradores, as instruções são executadas em uma unidade lógica aritmética (ULA)
de inteiros e/ou ponto flutuante, a fim de se obter resposta ao processamento desejado. Por fim, os
dados obtidos são devolvidos como resposta à memória principal do computador, primeiro passando
pelo banco de registradores através do barramento interno do processador.

51
Unidade I

2.1.6 Principal dispositivo interno do processador – Unidade lógica e aritmética (ULA)

A ULA é o principal dispositivo interno do processador e realiza efetivamente as operações lógicas/


matemáticas sobre dados e instruções. Qualquer ULA é considerada um conjunto de circuitos lógicos
simples que, ao se integrarem, realizam as operações (AND, OR, NAND, NOR, XOR e XNOR), operações
de deslocamento, incremento, complemento, soma, subtração, multiplicação e divisão (MONTEIRO,
2019). Uma ULA geralmente possui duas entradas de dados conectadas à saída (resultado da operação
efetuada), entrada para sinais de controle para determinação da operação a ser realizada, além de
saídas de comunicação com registradores e para sinalização de flags. Em processadores mais antigos, o
barramento interno para dados é utilizado para interligar a ULA ao registrador acumulador, conhecido
também como AC ou ACC (accumulator), e aos demais registradores, e na sequência à mEmória principal,
conforme observado na figura a seguir.
Saída para flags Saída para registradores

ULA
Sinais de controle da UC

Entradas de sinais de registradores

Figura 39 – ULA e suas conexões de entrada e saída

Adaptada de: Monteiro (2019, p. 164).

Alguns fabricantes de processadores atuais, como a Intel, têm substituído o nome unidade lógica e
aritmética (ULA) por unidade de cálculo ou unidade de execução; outros, como a AMD, têm chamado a
ULA de integer unit (UI). Alguns processadores atuais também são constituídos por unidades responsáveis
por cálculos fracionários (representados em ponto flutuante) denominadas unidade de FPU (Floating
Point Unit – ponto flutuante).

2.1.7 Dispositivo mais complexo da CPU – Unidade de controle (UC)

A UC é considerada o dispositivo mais complexo dentro da CPU. Ela é responsável pela movimentação
de dados/instruções no processador através de sinais de controle sincronizados pelo clock. A UC opera
sobre micro‑operações (pequenos passos no ciclo de leitura), em que a cada início de um ciclo de instrução
ocorrerá uma busca (fetch) da instrução solicitada, trazendo uma cópia dela para o processador, que será
armazenada no IR (Instruction Register – registrador de instrução). Cada micro‑operação é inicializada
por um pulso oriundo da UC em decorrência de uma programação prévia, realizada diretamente no
hardware. A estrutura básica diagramada de funcionamento da UC é observada na figura a seguir.

52
ARQUITETURA DE COMPUTADORES MODERNOS

Registrador
de instrução
Código de operação

Decodificador
Pulsos
de relógio

t
t Sinal resultante
t da decodificação
Gerador (apenas 1 saída
de tempo Unidade de controle
ativada de cada vez)

Sinais de Sinais de Sinais de controle para


controle para controle vindos dispositivos internos
o barramento do barramento da UCP (registradores,
de sistema de sistema UAL, etc.)

Barramento de controle

Figura 40 – Diagrama de bloco de funcionalidade da unidade de controle

Fonte: Monteiro (2019, p. 172).

Os opcodes oriundos do registrador de instrução (IR) são inicialmente decodificados, ou seja, as


instruções são interpretadas e servem de sinais de execução de tarefas na UC. Como é observado na
figura anterior, um gerador de tempo está conectado à UC para controlar o ritmo (pulsos) em que
as instruções devem ser inseridas no barramento para que alguma ação seja executada pela ULA.

Além das tarefas citadas anteriormente, a UC possui requisitos funcionais, como segue:

• Definição dos elementos básicos do processador.

• Descrição das micro‑operações que o processador executa.

• Determinação das funções que a UC deve realizar para que as micro‑operações sejam efetuadas.

A UC também desempenha duas tarefas básicas, que são o sequenciamento e a execução.

• Sequenciamento: as micro‑operações devem ser executadas em série, baseando‑se no programa


que está em execução.

• Execução: a UC deve garantir que cada micro‑operação seja executada.

Para que a UC realize a operação da CPU de forma funcional, ela deve ser constituída por sinais de
controle de entrada, como:

53
Unidade I

• Registrador de instrução: é utilizado para definir qual opcode deverá ser executado no ciclo de
instrução corrente.

• Flags: são necessárias para que a UC determine o estado do processador e das saídas das operações
anteriores da ULA.

• Sinais de controle do barramento de controle: fazem parte do barramento do sistema para o


fornecimento de sinais para a UC.

• Sinais de controle dentro do processador: são sinais que fazem os dados serem movidos de um
registrador para outro registrador, além de ativarem funções específicas da ULA.

• Sinais de controle para barramento de controle: são constituídos pelos sinais de controle para
memória principal e sinais de controle para os módulos de E/S.

• Clock: é responsável pelo tempo de ciclo do processador ou tempo de ciclo de clock de operação
do processador.

2.2 Principais conceitos sobre o desempenho de operação do processador

Os principais fabricantes de processadores como a Intel e a AMD buscam, continuamente, o aumento


no desempenho de seus processadores, mesmo que a evolução dos processadores e seu desempenho
também estejam atrelados à lei de Moore. Como existem limitações para aumentar a velocidade do
processador, atualmente três técnicas são utilizadas para contornar algumas limitações impostas por
Moore (STALLINGS, 2010):

• A primeira implica aumentar a frequência do hardware do processador, e o aumento deve se


fundamentar na diminuição de tamanho das portas lógicas contidas no processador. Assim,
quanto mais portas lógicas reunidas dentro de um mesmo chip, maior será a frequência de clock.

• A segunda implica aumentar a capacidade e a velocidade das memórias auxiliares do processador


(memórias do tipo cache), que fazem a “ponte” e o trânsito de dados/instruções entre o processador e
a memória principal (RAM).

• A terceira técnica implica a realização de mudanças na arquitetura e organização de um


processador, de modo a buscar o aumento na velocidade da execução das instruções, o que pode
envolver algum processo de paralelismo na execução de tarefas.

Entre os fatores citados, o mais aplicado para que haja ganho no desempenho tem sido o aumento
na quantidade de transistores no processador, aumentando assim a capacidade de clock. Entretanto
vale ressaltar que uma diminuição constante nos componentes eletrônicos os torna também cada vez
mais próximos, ocasionando um aumento no aquecimento do processador. A figura a seguir mostra
uma tendência de aumento linear no desempenho do processamento à medida que a densidade de
transistores também aumenta.
54
ARQUITETURA DE COMPUTADORES MODERNOS

107

106
Transistores (milhares)
105 Frequência (MHz)
Potência (W)
104 Cores

103

102

10

0,1
1970 1975 1980 1985 1990 1995 2000 2005 2010

Figura 41 – Tendência de aumento linear no desempenho dos processadores


em função do aumento da quantidade de transistores

Fonte: Stallings (2010, p. 42).

Como citado anteriormente, vários são os problemas que podem ser apontados como limitadores do
aumento no desempenho do processador, como:

• Potência: aumentar a densidade de transistores e, consequentemente, a velocidade de clock do


processador também aumentará a densidade de potência dada em watts/cm2. Isso levará a uma
dificuldade para dissipar o calor gerado no chip, de forma que o calor irá se configurar um sério
problema a ser considerado no projeto.

• Atraso de resistência e capacitância (RC): existe uma limitação física na velocidade em que os
elétrons fluem no chip entre os transistores, que é dada pela resistência e capacitância dos fios
metálicos que conectam os transistores. Assim, o atraso pode aumentar à medida que o produto
RC aumenta. Consequentemente, com a diminuição dos componentes do chip, as interconexões
de fios metálicos se tornam mais finas, o que aumenta a resistência elétrica. E, ao diminuir o
tamanho e a distância entre os transistores, os transistores também ficarão mais próximos uns dos
outros, aumentando a capacitância.

• Latência de memória: a baixa frequência na comunicação entre o processador e a memória


também limitará a velocidade e o desempenho do processador.

55
Unidade I

Saiba mais

Aprenda mais sobre a lei de Moore e seus principais impactos em:

ROTMAN, D. We’re not prepared for the end of Moore’s Law. Technology
Review, 2020. Disponível em: https://bit.ly/3Wu0yi4. Acesso em: 18 jan. 2023.

2.2.1 Sinal elétrico de sincronismo – clock

Os processadores e as memórias são componentes digitais, constituídos por milhares de portas


lógicas. Os circuitos digitais mudam de estado (comutam de estado) entre os bits 0 e 1 milhão ou até
mesmo bilhões de vezes por segundo ao executarem tarefas específicas, de acordo com instruções de
um programa. Essas operações precisam estar sincronizadas para que executem as tarefas de forma
ordenada, ou seja, com uma sequência lógica de início, meio e fim. Para que isso ocorra, o componente
que realiza tal sincronização é o relógio, conhecido também como clock (MONTEIRO, 2019).

O clock é considerado um contador de tempo do processador e foi desenvolvido para gerar pulsos; a
duração entre o início da contagem do pulso até o início do próximo pulso é denominada ciclo. De forma
geral, os pulsos comutam de valor para intensidade alta, que corresponde ao bit 1, para a intensidade
baixa, que corresponde ao bit 0. Essa alternância de estado faz que seja possível sincronizar e cadenciar
as ações ou atividades do processador. De certa forma, o clock também pode ser entendido como um
dispositivo que realiza um controle, sincronizando todos os componentes do computador, visto que é o
processador quem dita a frequência de como tudo deve operar. A figura a seguir mostra um esquema
com um conjunto de pulsos gerados por um clock e alguns de seus elementos principais.

Borda de subida Borda de descida


1 ciclo de clock

Período
Tempo

Figura 42 – Diagrama de pulsos de clock

Fonte: Monteiro (2019, p. 173).

56
ARQUITETURA DE COMPUTADORES MODERNOS

Os elementos contidos na figura anterior podem ser entendidos como:

• Ciclo de clock ou ciclo de relógio: determina o intervalo de tempo entre o início da borda de subida
(ou descida) do pulso até o início da próxima borda de subida (ou descida) do pulso subsequente.

• Período ou ciclo de tempo: é o intervalo de tempo necessário para que o pulso execute uma
oscilação completa.

• Borda de subida: é constituída pelo período usado pelo pulso para realizar a transição de subida.

• Borda de descida: é formada pelo período utilizado pelo pulso para realizar a transição de descida.

• Frequência ou taxa de clock: é a quantidade de ciclos por segundo do clock, determinada também
pelo inverso do período e medida em hertz (Hz), em que 1 Hz é igual a um ciclo por segundo.

A figura a seguir mostra um diagrama de ciclo de clock, onde o sinal de clock original foi denominado
(T0), e os demais ciclos de processador subsequentes são constituídos pelos pulsos (T1, T2, T3, T4 e T5).
1 subciclo = t0 / 5

To

T1

T2

T3

T4

T5

1 ciclo = t0

Figura 43 – Diagrama de ciclos de um processador contendo cinco subciclos

Fonte: Monteiro (2019, p. 175).

O ciclo de clock geralmente é relacionado a uma operação elementar que ocorre durante o ciclo de
instrução. Porém, mesmo as operações elementares não se realizam em um único ciclo, de forma que
um ciclo pode se subdividir em outros ciclos menores, conhecidos como subciclos. Os subciclos podem
estar defasados no tempo, de maneira que cada um pode acionar um passo diferente da operação
elementar inicial. Essas diferenças de operações do ciclo fundamental também são conhecidas como
micro‑operações e possibilitam, entre outras coisas, o processamento paralelo. Na figura anterior
também foi possível observar um subciclo dado por t0/5 que corresponde ao tempo de início da borda
de subida do ciclo t0 dividido por 5, que é o tempo de duração do último subciclo t5 e, portanto, de sua
borda de descida.
57
Unidade I

2.2.2 Cálculo da taxa de execução de instruções por segundo

Como já definido antes, um processador é controlado através de um sinal de clock em uma frequência
1
constante f ou, de forma equivalente, por um tempo de ciclo constante (letra grega tau), onde: τ = .
𝑓
Exemplo de aplicação

A partir da frequência de operação de um processador de 233 MHz, encontre o tempo de duração


de cada ciclo.

Resolução
1 1 2,29 x 10-9 segundos ou 4,29 nanossegundos (ns).
Utilizando a fórmula: τ = , tem‑se: τ =
𝑓’ 233 x 106
É importante notar que nesse tipo de cálculo não devemos trabalhar com arredondamentos, pois,
como os valores de tempo de resposta são muito pequenos, qualquer diferença ou arredondamento
pode ocasionar um erro acumulativo durante a execução dos demais ciclos de clock.

A tabela a seguir mostra alguns dos prefixos para valores na base decimal (base 10) e base binária (base 2),
organizados pela International Electrotechnical Commission, e que são úteis na resolução dos exemplos e
exercícios dados.

Tabela 2 – Prefixo de valores e bases utilizados em computação

Prefixo Símbolo Potência de 10 Potência de 2 Prefixo Símbolo Potência de 10 Potência de 2


Kilo K 1 mil = 103 210 = 1024 Mili m 1 milésimo = 10‑3 2‑10
Mega M 1 milhão = 106 220 Micro µ 1 milionésimo = 10‑6 2‑20
Giga G 1 bilhão = 109 230 Nano n 1 bilionésimo = 10‑9 2‑30
Tera T 1 trilhão = 1012 240 Pico p 1 trilionésimo = 10‑12 2‑40
Peta P 1 quadrilhão = 1015 250 Femto f 1 quadrilionésimo = 10‑15 2‑50
Exa E 1 quintilhão = 1018 260 Atto a 1 quintilionésimo = 10‑18 2‑60
Zetta Z 1 sextilhão = 1021 270 Zepto z 1 sextilionésimo = 10‑21 2‑70
Yotta Y 1 setilhão = 1024 280 Yocto y 1 setilionésimo = 10‑24 2‑80

Adaptada de: Null e Lobur (2010).

Outro fator preponderante no cálculo da execução de instruções é a contagem de instruções, dada


pela sigla IC. Pode‑se também determinar outro parâmetro importante para a aferição do tempo total de
execução de várias instruções em função da frequência do processador. Essa outra variável na equação
corresponde à medida de CPI (Cycles per Instruction – ciclos por instrução).

58
ARQUITETURA DE COMPUTADORES MODERNOS

Para instruções que exigem o mesmo número de ciclos de clock para serem executadas, a CPI será
dada por um valor constante, de acordo com a frequência do processador. Dessa forma, é possível
calcular o tempo total T necessário para a execução de um determinado programa, dado por:

Exemplo de aplicação

Qual será o tempo total de resposta para a execução de um determinado programa que possua
445 instruções (IC), 8 ciclos por instrução e uma frequência (f) de processamento de 1,33 GHz?

Resolução

T = Ic X CPI X τ, mas é importante lembrar que τ = 1, então:


f

T = Ic X CPI X 1 → T = 445 X 8 X,
f
(1,33x10
1
9 ( → T = 2,67 microssegundos (2,67 µs).

Outra medida muito utilizada para calcular o desempenho de um processador é a taxa de


execução, expressa em MIPS (Millions of Instructions per Second – milhões de instruções por segundo),
dada por: CPI 1X 106 .

Exemplo de aplicação

Considere a execução de um programa contendo 900 instruções, executadas em um processador


capaz de operar 4 ciclos por instrução a uma frequência de 1,33 GHz. Qual será a quantidade de MIPS
para esses valores?

Resolução

Substituindo na fórmula:

1 → 1,33x10
9

CPI X 106 4x106


= 332,5 MIPS ou 332,5 milhões de instruções por segundo.

Note que, apesar de no enunciado ter sido citada a quantidade de instruções, na fórmula utilizada
esse dado não foi inserido na obtenção do resultado final.

2.3 A arquitetura da máquina de von Neumann

2.3.1 Fundamentos do computador IAS

Atualmente a microarquitetura de um processador é bem aceita, mas no início da computação,


principalmente durante as gerações dos computadores da década de 1940 e 1950, os computadores
ainda não possuíam um padrão bem definido, sobretudo quanto aos componentes necessários para

59
Unidade I

que seu funcionamento ocorresse de forma otimizada, pois naquela época não havia uma estruturação
de quais componentes deveriam estar contidos em cada máquina para melhor tratar dados/instruções.

Coube ao matemático húngaro (naturalizado americano posteriormente) John von Neumann


(1903‑1957), que trabalhava no Instituto de Estudos Avançados da Universidade de Princeton, nos
Estados Unidos, realizar modificações no projeto do já famoso computador ENIAC, em 1946. As tarefas
de processamento e armazenamento de dados no ENIAC eram extremamente enfadonhas. Von Neumann
verificou que a programação poderia ser facilitada se o programa fosse representado de forma adequada
para a realização do armazenamento na memória junto com os dados. Assim, um computador poderia
obter suas instruções lendo‑as diretamente da memória, e um programa poderia ser criado ou alterado
através de endereços da memória, de forma que essa ideia ficou conhecida como conceito de “programa
armazenado” (STALLINGS, 2010).

A publicação do novo projeto de von Neumann ocorreu em 1945 e foi a base para a construção de um
computador com uma nova proposta de arquitetura, o EDVAC (Electronic Discrete Variable Automatic
Computer), finalizado em 1949. Após o término do projeto do EDVAC, von Neumann se dedicou à
construção do seu novo computador, desenvolvido nos laboratórios do Instituto de Estudos Avançados
de Princeton, cujo nome ficou conhecido como computador IAS (Institute of Advanced Studies). O IAS
ficou pronto em 1952 e é conhecido como o protótipo para todos os computadores modernos de uso
geral. A figura a seguir mostra como foi projetada a estrutura geral do computador IAS.

Unidade central de processamento (CPU)

Unidade lógica e
aritmética (CA)

Memória Equipamento de
principal (M) E/S (E,S)

Unidade de controle
do programa (CC)

Figura 44 – Estrutura simplificada de um computador IAS

Fonte: Stallings (2010, p. 14).

60
ARQUITETURA DE COMPUTADORES MODERNOS

A partir dessa máquina, von Neumann definiu que todos os computadores deveriam possuir as
seguintes características:

• Memória principal para armazenamento dos dados.

• Unidade lógica e aritmética (ULA) para realizar operações em dados binários.

• Unidade de controle (UC) para interpretar/executar todas as instruções da memória principal.

• Dispositivos de entrada e saída (E/S) controlados pela UC.

Segundo von Neumann, um computador precisa ser capaz de realizar as operações elementares da
aritmética (adição, subtração, multiplicação e divisão), lembrando que nesse caso a aritmética adotada
precisa ser a aritmética binária. Assim, é imprescindível que ele contenha as unidades especializadas
em realizar essas tarefas. O controle lógico do dispositivo tem como função organizar a sequência
apropriada de como as operações devem ser executadas (para que haja sincronismo). Von Neumann
estabeleceu também que, para que os dispositivos possam executar operações em sequências longas
e complicadas, se faz necessário o uso de uma memória que seja capaz de armazenar um volume
grande de dados. Um computador deve ser capaz de estabelecer contato de entrada e saída com
dispositivos internos/externos com a finalidade de ler/gravar dados. Como praticamente todos os
computadores atuais possuem a mesma função e estrutura, eles também são conhecidos como
máquinas de von Neumann.

Um fator muito importante do computador de von Neumann é sua memória. No computador


IAS a memória era constituída de 1.000 locais para armazenamento, chamados de palavras (words),
contendo 40 dígitos binários (40 bits). Uma palavra pode ser definida como um conjunto ordenado de
bytes no qual a informação pode ser armazenada, processada e transmitida dentro de um computador.
Geralmente, um processador possui um conjunto de instruções de tamanho fixo, de forma que o
tamanho da instrução será igual ao tamanho da palavra. Por exemplo, um computador de 64 bits
processará palavras de 64 bits ou mesmo duas palavras de 32 bits. A figura 45a mostra a formatação
desses dados, em que cada número é representado por um bit de sinal e um valor de 39 bits contendo
a palavra. Já na figura 45b é possível observar a mesma palavra de 40 bits podendo ser subdividida em
duas instruções de 20 bits cada.

61
Unidade I

01 39

(a) Palavra de número


Bit de sinal

Instrução esquerda Instrução direita

0 8 20 28 39

Opcode Endereço Opcode Endereço

(b) Palavra de instrução

Figura 45 – Estrutura simplificada de um computador IAS

Fonte: Stallings (2010, p. 15).

Cada instrução/palavra subdividida em duas instruções de 20 bits será constituída de um opcode


(código de operação) de 8 bits que especifica a operação realizada naquele momento, e um endereço
de 12 bits que designa uma das palavras na memória, com valores numerados de 0 a 999. A máquina de
von Neumann foi desenvolvida basicamente utilizando componentes de memória (registradores) que
auxiliam em toda as tarefas da UC e da ULA.

Saiba mais

Conheça mais sobre a máquina de von Neumann:

FREIBERGER, P. A. Von Neumann machine. Encyclopedia Britannica,


2022. Disponível em: https://bit.ly/3XnAoyH. Acesso em: 18 jan. 2023.

2.3.2 Histórico e a arquitetura Harvard

A arquitetura Harvard teve seu início com o desenvolvimento do computador eletromecânico


Mark III, em 1950. Esse computador possuía memórias diferentes para dados e instruções.

62
ARQUITETURA DE COMPUTADORES MODERNOS

Figura 46 – Computador Mark III

Disponível em: https://bit.ly/3Xujpec. Acesso em: 19 jan. 2023.

A diferença básica entre a arquitetura de von Neumann e a desenvolvida na Universidade de Harvard


é que, enquanto a de von Neumann utiliza o mesmo barramento para envio/recebimento de dados e
instruções (o que pode ocasionar gargalos na execução de tarefas de busca), a arquitetura Harvard usa
barramentos diferentes. Como a arquitetura Harvard é capaz tanto de ler instruções ou dados ao mesmo
tempo, há um grande benefício para a utilização de processamento paralelo como o pipeline, o que
aumenta a velocidade de execução das aplicações.

2.4 Como os registradores de um computador são organizados

Os registradores são pequenos dispositivos de memória fabricados dentro do processador, constituídos


basicamente de portas lógicas e que fornecem armazenamento temporário para dados/instruções na
CPU. Os registradores estão no topo da hierarquia da memória, pois são mais rápidos, ou seja, possuem
maior velocidade de transferência de dados/instruções para dentro ou fora do processador. Apesar disso,
os registradores possuem uma capacidade de armazenamento menor, se comparada a outras memórias
internas, além de possuírem custo mais elevado em relação a outras memórias. Os registradores
geralmente são classificados de acordo com sua funcionalidade em: registradores de propósito geral e
registradores de controle e estado (STALLINGS, 2010).

63
Unidade I

2.4.1 A linguagem de baixo nível e os registradores de propósito geral ou visíveis ao usuário

Os registradores de propósito geral possibilitam que o desenvolvedor de linguagem de baixo nível


(linguagem de máquina), como assembly, realize referências diretamente à memória principal (RAM). Esses
registradores podem ser subdivididos, ainda, como: de uso geral, dados, endereços e códigos condicionais.

Os registradores de uso geral são atribuídos a uma variedade de funções de acordo com a necessidade
do programador em nível de máquina. Essa categoria de registradores pode conter um operando para
realizar qualquer operação, por exemplo operações de ponto flutuante (tipo de representação de números
utilizada em computadores) ou operações que envolvam processo de pilhas. Em algumas situações, os
registradores de uso geral também podem ser utilizados para funções de endereçamento ou dados.
Como registradores de dados, eles podem ser utilizados somente para guardar dados temporários, e não
podem ser empregados para o cálculo do endereço de um operando. Como registradores de endereços,
eles podem se dedicar exclusivamente ao modo de endereçamento de ponteiros de segmento, quando
o endereço não está somente em um lugar exclusivo, mas sim segmentado. Podem se comportar como
registradores de índice para indexar endereços ou como ponteiros de pilha, caso exista a necessidade de
empilhamento de endereços.

2.4.2 Registradores de controle e estado

Os registradores de controle e estado são usados no funcionamento do processador e, diferentemente


dos “visíveis” ao usuário (aptos a serem programados por qualquer usuário que tenha conhecimento
de linguagem de baixo nível), eles estão ocultos para programação, ficando apenas disponíveis para o
acesso direto do sistema operacional. Esses registradores são organizados da seguinte forma:

• MBR (Memory Buffer Register – registrador de buffer de memória): é o registrador que


recebe uma ou várias palavras que serão armazenadas na memória ou enviadas para alguma
unidade de E/S. Pode‑se entender a palavra também como algum dado a ser processado pelo
computador que ficará temporariamente armazenado aguardando instruções, ou uma palavra
pode ser interpretada como o resultado do processamento e seu próximo passo será o envio para
memória principal e unidades de E/S.

• IR (Instruction Register – registrador de instrução): é o registrador que contém um código de


operação (opcode) que está em execução.

• IBR (Instruction Buffer Register – registrador de buffer de instrução): é utilizado para


armazenar temporariamente a próxima instrução a ser executada (depois que for executada a
instrução contida no IR).

• MAR (Memory Address Register – registrador de endereço de memória): é o registrador que


especifica o endereço na memória principal a ser lido/escrito.

• PC (Program Counter – registrador contador de programa): é o registrador que contém o


endereço para busca de um par de instruções contidas na memória principal.
64
ARQUITETURA DE COMPUTADORES MODERNOS

Além dos registradores de controle e estado, a máquina de von Neumann possui os registradores
acumulador (AC) e multiplicador (MQ), que são empregados para manter temporariamente os operandos
(que especificam os dados a serem modificados) e resultados de operações da ULA.

A figura a seguir mostra uma estrutura detalhada envolvendo todos os registradores do IAS, assim
como o processador constituído pela ULA e UC e as comunicações via barramento de dados/instruções
conectando a memória principal e seus endereçamentos e algum equipamento de entrada e saída E/S.
Unidade central de processamento (CPU)

Unidade lógica e aritmética (CA)

AC MQ

Equipamento de
Circuitos lógico‑aritméticos entrada‑saída (E, S)

MBR

Instruções
e dados

Instruções
M (0) e dados
M (1)
M (2)
M (3) PC IBR
M (4) AC: registrador acumulador
MQ: registrador de quociente‑multiplicador
MBR: registrador de buffer de memória
MAR IR IBR: registrador de buffer de instrução
Memória PC: contador de programa
principal (M)
MAR: registrador de endereço de memória
Sinais de Circuitos de IR: registrador de instrução
controle controle
M (4092) Unidade de controle
M (4093)
M (4095) do programa (CC)

Endereços

Figura 47 – Diagrama da estrutura expandida da máquina de Von Neumann (IAS)

Fonte: Stallings (2010, p. 10).

A máquina de von Neumann realiza repetidamente um ciclo de instrução, em que cada ciclo
consiste em dois subciclos. Durante o primeiro ciclo (ciclo de busca de instrução ou fetch cycle), o
código de operação (opcode) da próxima operação é carregado no registrador de instrução (IR) e parte
do endereço é carregada no registrador de endereço de memória (MAR). A instrução então poderá ser
retirada do IBR ou recebida da memória principal carregando‑se uma palavra no MBR e, na sequência,
para IBR, IR e MAR.
65
Unidade I

O computador IAS possuía um total de 21 instruções agrupadas como segue:

• Transferência de dados: são instruções de movimentação de dados entre a memória e os


registradores da ULA ou mesmo entre dois registradores diretamente para a ULA.

• Desvio incondicional: são instruções que podem modificar a sequência de execução das
instruções para facilitar a execução de operações repetitivas.

• Desvio condicional: são instruções que podem se tornar dependentes de uma condição do
programa, permitindo que ele possua pontos de decisão.

• Aritméticas: são instruções realizadas pela ULA consistindo em operações binárias de adição,
subtração, multiplicação e divisão.

• Modificação de endereço: são instruções que permitem que os endereços sejam calculados
na ULA e inseridos em instruções armazenadas na memória, permitindo uma flexibilidade para
realização do endereçamento.

Não são todos os processadores que possuem registradores designados para tarefas específicas
como o MAR e o MBR, porém é necessário que haja algum mecanismo de armazenamento temporário
(buffer). Geralmente, o processador atualiza o registrador program counter (PC) após ler cada
instrução para que o PC sempre possa apontar para as próximas instruções a serem executadas. Uma
instrução de desvio condicional ou incondicional também modificará o conteúdo do registrador PC,
de forma que a instrução é lida e colocada no registrador IR, em que o opcode será analisado. Os
dados são transferidos entre a memória e os registradores MAR e MBR através do barramento interno
do processador.

Existem diversos fluxos para execução dos dados na máquina de von Neumann, a qual é realizada
por registradores contidos na ULA e na UC assim como pelos diversos barramentos que conectam esses
dispositivos. Por exemplo, um banco de registradores genéricos recebe os valores A e B para realização
da operação aritmética de adição na ULA. A ULA efetuará a operação nessas entradas, produzindo um
resultado no registrador de saída que é armazenado em um outro registrador e que pode, na sequência,
ser armazenado na memória principal, a fim de ser enviado para algum dispositivo de E/S. A figura a
seguir mostra uma operação de adição de dois valores.

66
ARQUITETURA DE COMPUTADORES MODERNOS

A+B

A Banco de registradores
B

A B Registrador de entrada da ULA


Barramento de entrada da ULA

ULA

A+B Registrador de saída da ULA

Figura 48 – Fluxo de execução de instruções no processador da máquina de von Neumann

Fonte: Tanenbaum e Austin (2013, p. 44).

2.4.3 Passo a passo da organização de registradores nos processadores modernos

Muitos modelos de processadores podem incluir um conjunto de registradores conhecidos como


PSW (Program Status Word – palavra de estado do programa), que contém as informações de códigos
condicionais ou informação de estado ou flags (sinalizadores), como:

• Sinais: bits resultantes da última operação aritmética realizada.

• Zero: quando o resultado da operação for igual a zero.

• Carry: quando uma operação resulta em um transporte (adição) para empréstimo (subtração)
de um bit de ordem superior. Também é utilizado em operações aritméticas para operações com
múltiplas palavras.

• Igual: utilizado para realizar uma comparação lógica de igualdade.

• Overflow: usado para indicar uma sobrecarga aritmética.

• Habilitar/desabilitar interrupções: aplicado para habilitar ou desabilitar interrupções.

• Supervisor: utilizado na identificação do uso do processador em modo supervisor ou modo


de usuário.

67
Unidade I

Além desses registradores, vários outros são utilizados na organização dos registradores de controle
e estado de um processador e variam de acordo com o modelo. Por exemplo, um ponteiro para um bloco
de memória contendo informações adicionais sobre algum processo. Outros modelos de processadores
podem utilizar máquinas baseadas em interrupções vetorizadas, fazendo‑se necessário o uso de um
registrador que atenda a esse tipo de requisição de endereçamento. Em outros processadores, se faz
necessário o uso de registradores do tipo pilha, quando é preciso realizar chamadas de sub‑rotinas que
estão em um topo da pilha. Há também registradores usados como ponteiros de tabela de páginas da
memória virtual, além dos registradores utilizados para operações de E/S.

Em um projeto de processadores, existe uma série de fatores que influenciam na inclusão (ou não)
de certos registradores de controle e estado. Uma das questões relacionadas a esse projeto remete
ao sistema operacional. Geralmente, um projetista de sistema operacional deve ter o conhecimento
funcional dos registradores para que eles possam funcionar de modo a otimizar a conexão entre o
hardware e o software, tornando essa interação fluida. Outra questão fundamental do projeto dos
registradores é referente à alocação de informações e comunicação entre registradores e a memória. Em
geral, se dedicam a algumas centenas ou milhares de palavras de memória e controle, e o projetista de
hardware deve decidir quanto da informação será armazenada nos registradores e quanto da informação
ficará na memória cache ou memória RAM. Alguns processadores de 16 ou 32 bits são baseados nessa
arquitetura de organização de registradores e servem de exemplo o Motorola MC68000, o Intel 8086 e
o Pentium 4 (STALLINGS, 2010).

O MC68000, por exemplo, possui registradores de 32 bits que são divididos em 8 registradores para
manipulação de dados e 9 registradores de endereços indexados. Por possuir registradores de 32 bits, nesse
tipo de processador há uma facilidade de realizar operações de dados de 8, 16 ou 32 bits determinadas
pelo código da operação realizada. Dada a capacidade de 32 bits dos registradores de endereços, não
há a necessidade de segmentação de endereçamento; além disso, dois desses 9 registradores podem ser
utilizados como ponteiros de pilha.

Outros registradores possuem funcionalidades bem conhecidas, como para uso do sistema
operacional, contador de programa, controle e estado e registradores para uso do próprio usuário.
A parte (a) da figura a seguir mostra a organização dos registradores do MC68000.

68
ARQUITETURA DE COMPUTADORES MODERNOS

a) MC68000 b) 8086 c) 80386


Registrador de dados Registradores gerais Registradores gerais
DO AX Acumulador EAX AX
D1 BX Base EBX BX
D2 CX Contador ECX CX
D3 DX Dados EDX DX
D4
D5 Ponteiros e índices ESP SP
D6 SP Ponteiro de pilha EBP BP
D7 BP Ponteiro de base ESI SI
SI Índice de origem EDI DI
Registrador de endereços DI Índice de destino
A0 Estado do programa
A1 Segmento Registrador FLAGS
A2 CS Código
A3 DS Dados Ponteiro da instrução
A4 SS Pilha
A5 ES Extra
A6
A7 Estado de programa
Flags
Estado de programa Ponteiro de
Contador de programa instrução
Registrador de estado

Figura 49 – Exemplo de organização de registradores em processadores

Fonte: Stallings (2010, p. 361).

Na parte (c) da figura anterior, pode‑se observar a organização dos registradores do processador
80386, que possui registradores de 32 bits constituídos pelos registradores de uso geral AX, BX, CX e DX,
além dos de controle SP, BP, SI e DI e de estado (registrador de flags e ponteiro de instruções).

Observação

O processador 8086, primeiro processador de 16 bits fabricado pela Intel,


utiliza uma abordagem diferente na organização de seus registradores, pois
cada registrador possui um uso específico.

Alguns registradores podem ser utilizados para operarem como de uso geral, enquanto outros podem
ser usados para realizar endereçamento ou armazenamento de dados e instruções, além de registradores
de 16 bits para atuarem como índices e ponteiros. Além desses, o 8086 (figura 49b) possui quatro
registradores de segmento de instruções, como para realização de desvio, segmento de dados e segmento
de pilha. O uso de um processador de 32 bits também permite a compatibilidade de programas escritos
para arquiteturas de 8 ou 16 bits, o que possibilitou aos projetistas maior flexibilidade ao projetar a
organização dos registradores.

69
Unidade I

2.5 Processador Intel x86 e sua evolução

A arquitetura x86 teve sua origem no processador de apenas 4 bits Intel 4004, fabricado em larga
escala a partir de 1971 com o intuito de disputar uma fatia da crescente indústria japonesa de eletrônicos.
Esse processador apresentava como característica um chip do tipo dual in‑line package (DYP), com
circuitos eletrônicos (transistor) totalmente integrados.

Figura 50 – Processador Intel 4004

Disponível em: https://bit.ly/3Xpgxir. Acesso em: 19 jan. 2023.

Após o sucesso do lançamento do 4004, a Intel desenvolveu melhorias na sua linha de processadores,
e lançou, em 1972, um processador de 8 bits para dados e 16 bits para palavras, denominado Intel 8008.
Esse processador possuía surpreendentes 500 kHz de frequência clock.

Figura 51 – Processador Intel 8008

Disponível em: https://bit.ly/3wdtoZ1. Acesso em: 19 jan. 2023.

70
ARQUITETURA DE COMPUTADORES MODERNOS

A Intel continuou a evoluir em sua linha de processadores e lançou em 1974 o primeiro processador
de uso geral do mundo, o 8080. Esse processador possuía sete registradores de uso geral e capacidade de
endereçamento de memória de 64 kB, além de um clock de 2 MHz, que foram utilizados no computador
da Xerox, o Altair, um sucesso de vendas na época com cerca de 25 mil unidades.

Figura 52 – Processador Intel 8080

Disponível em: https://bit.ly/40kYWdx. Acesso em: 19 jan. 2023.

A evolução do 8080 foi o processador Intel 8086, o precursor da arquitetura x86. O 8086 foi tão
importante que até os dias atuais ainda serve de base para os processadores modernos. Ele era um
circuito muito poderoso para época (1978) e operava a 16 bits, tanto para dados quanto para palavras,
além da possibilidade de endereçamento de 1 Mb de posições, direcionados em um caminho para dados
(barramento) de 20 bits.

Figura 53 – Processador Intel 8086

Disponível em: https://bit.ly/3QQsTh3. Acesso em: 19 jan. 2023.

71
Unidade I

O 8086 possuía uma estrutura simples, o que facilitava sua programação em linguagem de montagem
(assembly). Internamente, o Intel 8086 é dividido em duas unidades: unidade de execução e unidade de
interface com o barramento (PANNAIN; BEHRENS; PIVA JR., 2012):

• EU (Execution Unit – unidade de execução): a unidade de execução (EU) está situada na ULA
e é responsável pela execução das operações lógicas e aritméticas e das instruções de máquina.

• BIU (Bus Interface Unit – unidade de interface com o barramento): é a unidade responsável
pela comunicação de dados entre a ULA e os meios externos, como memória e dispositivos de E/S.
Também é responsável pela transmissão de sinais de endereçamento, dados, controle e busca
de instruções.

A figura 54 mostra a arquitetura do processador 8086 e seus registradores operacionais.

Barramento C

Somador
Q6
Q5
Unidade de interface Q4
ES
com barramento Q3
CS
Q2
DS
Q1
SS
IP
Operando Sequenciador
Indireto

Barramento A
AX
TMP A
BX
TMP B
CX
TMP C
DX
SP
Unidade de
BP execução
SI ALU
DI

FLAG

Figura 54 – Organização básica do processador Intel 8086

Fonte: Pannain, Behrens e Piva Jr. (2019, p. 243).

Os registradores do Intel 8086 estão divididos em registradores de propósito geral e registradores


específicos ou de estado e controle. Os específicos geralmente são utilizados como segmentadores,
apontadores e índices de endereçamento, além de sinalizadores de estado e controle (flags). O 8086
72
ARQUITETURA DE COMPUTADORES MODERNOS

possuía quatro registradores de propósito geral de 16 bits, que também podiam operar a 8 bits (AX, BX,
CX e DX), utilizados para operações lógicas e aritméticas:

• Registrador AX (acumulador): utilizado em operações lógicas e aritméticas, para instruções de E/S


e em instruções de operações de ajuste BCD (binary coded decimal – codificação binária decimal).

• Registrador BX (base): usado como registrador base para referenciação a posições da memória
principal, ou seja, é capaz de armazenar o endereço base de uma tabela ou vetor de dados, onde
as posições são obtidas adicionando‑se um valor de deslocamento (offset).

• Registrador CX (contador): aplicado em operações iterativas e repetitivas para contagem de


bits, bytes ou palavras, sendo incrementado ou decrementado quando necessário.

• Registrador DX (dados): utilizado em operações para armazenamento de parte de um produto de


32 bits ou em operações também de 32 bits para armazenar o resto de uma operação de divisão.

Os registradores específicos ou de controle e estado podem ser classificados em: segmento de código,
segmento de dados, segmento de pilha e segmento extra (também utilizado para dados). Todos esses
registradores são de 16 bits e são utilizados para trabalhar com blocos de memória de 64 kB:

• Registrador de segmento de código (code segment – CS): usado para apontar para uma área
de memória que contém o código do programa que está sendo executado.

• Registrador de segmento de dados (data segment – DS): usado para apontar para um
segmento de memória que será utilizada no armazenamento de dados do programa em execução.

• Registrador de segmento de pilha (stack segment – SS): aplicado na identificação do segmento


que será utilizado como pilha (stack), com o objetivo de armazenar os dados temporários do
programa em execução.

• Registrador de segmento extra de dados (extra segment – ES): utilizado para determinar um
segmento extra de dados, como no armazenamento e acesso da memória de vídeo.

Observação

O endereçamento no Intel 8086 pode apresentar algumas diferenças


no armazenamento de dados na memória principal ou em uma pilha
de registradores.

Em cada situação, serão separados os segmentos ativos endereçáveis para alocar os 64 Kbytes. Os
segmentos ativos estão dispostos como: segmento de código endereçado por CS, segmento de dados
endereçado por DS, segmento de pilha endereçado por SS e segmento extra de dados endereçados
por ES. Os registradores citados anteriormente (CS, DS, SS e ES) armazenam o endereço base de seu
73
Unidade I

segmento; então, há uma necessidade de haver outros registradores para armazenar o deslocamento
(offset) dentro de um dado segmentado, como mostra o esquema da figura 55.

Registro de segmento

64 KBYTES

Deslocamento (OFFSET)

Figura 55 – Segmento de endereço base e deslocamento

Fonte: Pannain, Behrens e Piva Jr. (2019, p. 246).

O processador Intel 8086 possui outros registradores auxiliares, todos de 16 bits, listados a seguir:

• Registrador IP (Instruction Pointer): é considerado o program counter (PC) do 8086 e é utilizado


em conjunto com o registrador CS para localizar uma posição, em um segmento de código em
operação, da próxima instrução que será executada. Esse segmento será automaticamente
incrementado em função do número de bytes da instrução após a operação de busca dessa instrução.

• Registrador SP (Stack Pointer): usado em conjunto com o registrador SS no acesso à área de


pilha contida na memória principal, apontando sempre para o topo da pilha.

• Registrador BP (Base Pointer): utilizado no acesso ao conjunto de dados que está dentro do
segmento de pilha, como um vetor de dados.

• Registrador SI (Source Index): usado como registrador de índice em modos de endereçamento


indireto, em conjunto com o registrador DS.

• Registrador DI (Destination Index): atua em conjunto com ES, quando utilizado em instruções
de manipulação de string ou com DS em acesso a vetores armazenados no segmento de dados.

• Registrador de sinalizadores (flags): é um registrador de 16 bits que tem como função indicar
um estado do processador após a execução de uma instrução.

Após o lançamento do 8086, a Intel continuou a desenvolver processadores mais robustos e versáteis,
como o utilizado mundialmente 80286 (figura a seguir), capaz realizar um endereçamento de memória
de 16 MB e com 6 MHz de frequência de clock.

74
ARQUITETURA DE COMPUTADORES MODERNOS

Figura 56 – Processador Intel 80286

Disponível em: https://bit.ly/3GVNJar. Acesso em: 19 jan. 2023.

Em seguida, em 1985, a Intel lançou seu primeiro processador multitarefa (multitask) de 32 bits,
denominado 80386 (figura a seguir), capaz de executar milhares de tarefas de forma simultânea. Esse
processador teve uma aceitação muito grande entre o público e foi muito usado em minicomputadores
e mainframes.

Figura 57 – Processador Intel 80386

Disponível em: https://bit.ly/3QSP1Yr. Acesso em: 19 jan. 2023.

A Intel continuou a aperfeiçoar seus processadores, sempre desenvolvendo novas tecnologias no que
diz respeito à miniaturização dos componentes embutidos e, em 1989, lançou o 80486 (figura a seguir).
Esse processador possuía um poder de processamento de 25 MHz de frequência de clock, mais do que
o dobro da capacidade do anterior 80386, que tinha apenas 12 MHz de clock. O 80486 oferecia um
coprocessador matemático interno, auxiliando a CPU na realização das tarefas matemáticas complexas.
PCs baseados no uso desse processador popularizaram o uso dos computadores na indústria, comércios
e, principalmente, em seu uso nas residências para a diversão de crianças, jovens e adultos.
75
Unidade I

Figura 58 – Processador Intel 80486

Disponível em: https://bit.ly/3HhBJBx. Acesso em: 19 jan. 2023.

Apesar de a família de processadores da Intel possuir essa codificação utilizando o 86 em sua


numeração, e ainda que sua arquitetura básica continuasse baseada no x86, em 1993 foi lançado o
Pentium (figura a seguir), baseado em um poder de processamento de 66 MHz.

Figura 59 – Processador Intel Pentium

Disponível em: https://bit.ly/3XJMr96. Acesso em: 19 jan. 2023.

Observação

Esse processador foi um grande avanço nas arquiteturas da Intel,


pois se baseava em técnicas superescalares, que permitiam que múltiplas
instruções fossem executadas em paralelo.

76
ARQUITETURA DE COMPUTADORES MODERNOS

A sequência de lançamentos da Intel ocorreu através do lançamento do Pentium II (1997), baseado


na tecnologia MMX, projetada para processamento eficaz de áudio e vídeo e poder de processamento
de 233 MHz de clock.

Figura 60 – Processador Intel Pentium II

Disponível em: https://bit.ly/3QQVh2I. Acesso em: 19 jan. 2023.

Fabricado em 1999 e com uma frequência de clock de 450 MHz, o Pentium III incorpora melhorias
nas operações em ponto flutuante, melhorando seu desempenho em gráficos 3D.

Figura 61 – Processador Intel Pentium III

Disponível em: https://bit.ly/3CZsELc. Acesso em: 19 jan. 2023.

A sétima geração de processadores da Intel iniciou‑se com o lançamento do Pentium 4 em de 2000, e


foi um dos maiores sucessos tecnológicos e de vendas da empresa. O Pentium 4 possuía surpreendentes
1,3 GHz de clock, melhorias de desempenho em processos gráficos e de multimídia, além do alto
desempenho para operações de ponto flutuante.

77
Unidade I

Figura 62 – Processador Intel Pentium 4

Disponível em: https://bit.ly/3iNVTcL. Acesso em: 19 jan. 2023.

Observação

Ponto flutuante (ou virgula flutuante, dependendo do país em que


essa notação for empregada) é uma forma de representar números
muito grandes ou muito pequenos, contendo muitos dígitos à esquerda
ou à direita da vírgula, de forma mais simplificada, utilizando uma
mantissa e um número inteiro positivo ou negativo, chamado expoente.
Por exemplo, em vez de escrevermos o número 0,00000000765, podemos
representá‑lo como 7,65x10-9.

Antes ainda do lançamento das famílias i3, i5, i7 e i9 em 2009 e que ainda estão em utilização, a Intel
lançou em 2006 o Intel Core e o Intel Core 2. Esses processadores foram os primeiros com arquitetura
de 64 bits e núcleo de quatro processadores em um único chip.

Saiba mais

Para conhecer um pouco mais sobre a evolução dos processadores da


Intel e sua arquitetura interna, leia:

JORDÃO, F. Tabela de processadores Intel. TecMundo, 2013. Disponível


em: https://bit.ly/3GPuTBG. Acesso em: 18 jan. 2023.

78
ARQUITETURA DE COMPUTADORES MODERNOS

3 MEMÓRIAS E SUA HIERARQUIA: MEMÓRIAS PRIMÁRIAS E MEMÓRIAS


SECUNDÁRIAS

3.1 Principais características das memórias

Uma memória é um componente pertencente a um sistema eletrônico, que possui como principal
função o armazenamento de dados/instruções que foram manipuladas por um sistema computacional
(MONTEIRO, 2019). A figura a seguir mostra, em um esquema conceitual, uma memória fictícia simbolizada
por um depósito para ser utilizada por uma ou mais entidades, como ocorre com um armário que possui
várias gavetas contendo pastas em seu interior. Por causa do tipo de organização computacional atual,
as memórias devem ser interligadas e integradas.

101 102 103 104

Armazenar (escrita) Leitura (recuperar)


105 106 107 108

109 110 111 112

113 114 115 116


Cada caixa tem um endereço

Figura 63 – Arquivo organizador para o armazenamento de pastas

Fonte: Monteiro (2019, p. 79).

Lembrete

Devido à otimização na organização dos dados nos sistemas


computacionais atuais, não é possível a utilização de somente um tipo
(físico) de memória, mas sim de um conjunto de memórias interligadas
e integradas, com diversas velocidades e capacidades de armazenamento.

As memórias do tipo primárias são memórias que os processadores acessam para realizar a “leitura”
ou “escrita” dos dados/instruções de forma rápida (TANENBAUM; AUSTIN, 2013). Esse tipo de memória
possui como característica uma capacidade de armazenamento pequeno (se comparada às memórias
secundárias), geralmente contendo algumas centenas de dezenas de bits até no máximo poucos
megabits. Já as memórias secundárias, também conhecidas como memórias auxiliares, são memórias
não voláteis e se posicionam externamente à placa‑mãe do computador. Elas são utilizadas para o
armazenamento auxiliar de dados e programas em grandes volumes de bytes (STALLINGS, 2010).
79
Unidade I

São consideradas memória primárias de um computador os seguintes dispositivos: memória cache,


memória ROM (Read Only Memory – memória somente de leitura) e memória RAM (Random Access
Memory – memória de acesso aleatório). Um dispositivo de memória deve ser capaz de armazenar no
mínimo um dos dois estados fundamentais, os bits 0 ou 1. O modo pelo qual o bit é identificado na
memória pode variar, como em discos rígidos (HD – Hard Disks) por meio de um campo magnético,
presença ou ausência de uma marca óptica (CDs, DVDs, blu‑rays etc.) ou mais comumente por um sinal
elétrico (memória RAM, ROM, cache, registradores), esquematizado na figura a seguir:

+V

øV
Bit ø Bit 1 Bit ø Bit 1 Bit ø
-V

Figura 64 – Representação de bits em sinais elétricos

Fonte: Monteiro (2019, p. 82).

Um bit pode indicar dois valores distintos (+5v ou ‑5V), que podem ser usados para o armazenamento
dos dados de forma simbólica, como o alfabeto. O alfabeto em língua portuguesa contém 26 letras
minúsculas (incluindo as letras k, w, x, y), 26 letras minúsculas, 4 símbolos matemáticos (+, ‑, *, /) e
8 sinais de pontuação (. ; : , ( ) – “). Apenas nesse exemplo simples foi possível criar 64 possibilidades de
representação de informações que necessitariam ser distinguidas internamente por um computador,
utilizando apenas dois bits para tal tarefa. Uma das possíveis soluções para esse problema de codificação
é definir um código com 64 elementos, com cada elemento contendo 6 bits.

Além da codificação, os sistemas de memória podem ser compreendidos de acordo com algumas
classificações, como (STALLINGS, 2010):

• Localização: indica se a memória utilizada é interna ou externa ao computador.

• Capacidade: a memória deve ser fabricada para suportar a leitura/escrita em bytes (8 bits) de
acordo com o tamanho da palavra em sistemas que compreendem 8, 16, 32 e 64 bits.

• Unidade de transferência: é constituída pelo número de linhas elétricas (barramento) para


dentro ou fora do módulo de memória em operação, que podem ser lidas ou escritas de uma
só vez. Em se tratando de memórias externas, os dados transferidos seguem ao seu destino em
unidades maiores, como os blocos, que possuem centenas de palavras.

• Palavra: é a unidade básica de organização da memória, que possui um tamanho igual ao número
de bits utilizados para representar o tamanho de uma instrução. A arquitetura x86, por exemplo,
possui grande variedade de tamanhos de instruções, expressos como múltiplos de bytes.

• Unidades endereçáveis: a unidade endereçável é constituída pela palavra, que possui uma
relação entre o tamanho em bits A de um endereço e o número N de unidades endereçáveis
como 2A = N.
80
ARQUITETURA DE COMPUTADORES MODERNOS

3.1.1 Como acontece o acesso à memória

Mais alguns parâmetros associados às memórias dizem respeito a como se realiza o acesso para
leitura/escrita dos dados e instruções, subdivididos em:

• Acesso sequencial: as memórias estão organizadas em unidades chamadas registros. O acesso


em algumas memórias é realizado em uma sequência linear específica, assim a informação de
endereçamento é utilizada no auxílio de separação de registros e no processo de recuperação
de dados armazenados. Unidades de memória de fita magnética são o exemplo mais comum para
o acesso sequencial.

Figura 65 – Rolo de fita magnética

Disponível em: https://bit.ly/3DWUk3R. Acesso em: 19 jan. 2023.

• Acesso direto: de forma semelhante ao sequencial, esse acesso geralmente envolve um esquema
compartilhado para realizar a leitura/escrita. Nesse tipo de acesso, os registros individuais ou
blocos de registros possuem um endereço exclusivo em algum local físico da memória. Para que
seja possível o acesso direto, primeiramente é necessário alcançar uma vizinhança geral ao
endereço, depois uma busca sequencial, uma contagem ou espera até que o local desejado seja
alcançado. O tempo de acesso para esse tipo de sistema pode ser variável, pois depende de alguns
fatores, como as rotações por minuto (RPM). Os discos rígidos magnéticos, como o da figura a
seguir, são um exemplo de acesso direto à memória.

81
Unidade I

Figura 66 – Disco rígido magnético

Disponível em: https://bit.ly/3kp0O4q. Acesso em: 19 jan. 2023.

• Acesso aleatório: nessa categoria de acesso à memória, cada local endereçável possuirá um
sistema de endereçamento exclusivo, fisicamente interligado. O tempo necessário para o acesso
à memória de forma aleatória é independente da sequência de acessos anteriores, dessa forma,
qualquer local desejado poderá ser selecionado de forma aleatória (randômica) e, também,
endereçado e acessado de forma direta. A memória principal do computador (memória RAM), como
mostrado na figura seguinte, é o principal exemplo de utilização do acesso aleatório à memória.

Figura 67 – Memória de acesso aleatório RAM

Disponível em: https://bit.ly/3JuGKbo. Acesso em: 19 jan. 2023.

82
ARQUITETURA DE COMPUTADORES MODERNOS

• Acesso associativo: variação do acesso aleatório, porém nesse tipo de endereçamento uma
palavra será recuperada da memória baseada em um pedaço de seu conteúdo, em vez do seu
endereço. Assim, como no acesso aleatório, cada endereço terá seu modo de endereçamento,
com um tempo de recuperação constante, independentemente do padrão de acesso anterior.
Memórias cache, como as da próxima figura, representam esse tipo de acesso.

Figura 68 – Memórias cache externas à CPU

Disponível em: https://bit.ly/3D1C8W5. Acesso em: 19 jan. 2023.

Outras características também são importantes no que diz respeito ao desempenho de um sistema
de memória, como a capacidade da memória e sua velocidade. Para que o desempenho seja avaliado,
três parâmetros devem ser considerados, como segue:

• Latência ou tempo de acesso à memória: é o tempo gasto para que seja realizada uma
operação de leitura/escrita. Esse tempo será contado desde que o endereço seja apresentado à
memória até o momento em que os dados forem armazenados ou se tornarem disponíveis para
serem utilizados.

• Tempo de ciclo de memória: consiste no tempo para um acesso aleatório mais um tempo
adicional antes do início de um segundo acesso.

• Taxa de transferência: consiste na taxa onde dados podem ser transferidos externa ou
internamente da unidade de memória. No caso de um acesso aleatório à memória, esse valor
será igual a 1 sobre o tempo de ciclo, ou seja, 1. Em situações em que o acesso não seja do tipo
aleatório, a seguinte relação é utilizada: τ
n
TN = TA+
R
onde TN = tempo médio para ler/escrever N bits, TA = tempo de acesso médio à memória, n é o
número de bits e R a taxa de transferência em bps (bits por segundo).

83
Unidade I

3.1.2 Entendendo os endereços de memória

As memórias são organizadas em células unitárias onde é possível armazenar uma informação em
forma de bit. Cada célula unitária possui um número que determina seu endereço, onde os programas
podem ser referenciados durante a operação de leitura/escrita. Todas as células de memória têm o
mesmo número de bits, assim, se uma célula possuir k bits, ela poderá conter qualquer um dos 2K
diferentes tipos de combinações de bits. E se a memória possuir n células, seu endereçamento será
de 0 a n − 1. A figura a seguir mostra três modos de organização de uma memória de 96 bits, em
que as células adjacentes possuem endereços consecutivos. Todos os computadores atuais expressam
o endereçamento de memória, como números binários, mesmo aqueles que também trabalham com as
bases octal ou hexadecimal. De modo que se um endereço contiver m bits, o número máximo de células
que poderão ser endereçáveis é de 2m.

Endereço 1 célula
Endereço Endereço
0 0 0
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 16 bits
7 7 (c)
8 12 bits
9 (b)
10
11
8 bits
(a)

Figura 69 – Célula de endereçamento de 8 bits (A), célula de endereçamento


de 12 bits (B), e célula de endereçamento de 16 bits (C)

Fonte: Monteiro (2019, p. 107).

3.1.3 Projeto de hierarquia de memória

Em um projeto de desenvolvimento de memórias há três questões que devem ser levadas em


consideração em sua fabricação: qual o seu custo, qual sua capacidade e qual a sua velocidade.
Respondendo a essas questões, no que diz respeito à capacidade de armazenamento, as memórias
devem possuir a maior (capacidade) possível, deixando livre para o uso de aplicações que necessitem
de mais espaço. Em relação à velocidade, certamente que um maior desempenho é desejável para que
o processador possa, em tempo síncrono, enviar e receber informações oriundas da memória, ou seja,
é desejável que tanto o processador quanto a memória possuam a mesma velocidade de operação. Em
relação ao custo, ela não deve ser demasiadamente cara em relação a outros dispositivos do computador.
Além disso, a relação de custo de uma memória deve conter outras características, como:

84
ARQUITETURA DE COMPUTADORES MODERNOS

• tempo de acesso rápido envolverá um custo maior por bit;

• quanto maior a capacidade de armazenamento, menor será o custo por bit;

• quanto maior a capacidade, mais lento será o tempo de acesso à memória.

Ao se projetar um sistema de memória, é necessário atender aos requisitos de desempenho, se


atentando para o custo por bit e a capacidade de armazenamento, além de buscar uma melhora no
desempenho com tempos menores de acesso. Em um projeto de computador é necessário levar em
conta não apenas um dispositivo de memória que fará parte do projeto, mas emprego de uma hierarquia
de memória, em que é possível estabelecer o tempo médio de acesso de vários tipos de memória, como
demonstra a figura:
Mais caro

Tempos de acesso
1ns 2ns Registrad
ores
3ns 10ns Cache nív
el 1
25ns 50ns Cache nív
el 2 a
30ns 90ns tem
Memória
principal Sis do
c ta Mais barato
5ms 20ms ne im
a
Disco rígid
o fixo Co róx
100ms 50s ap do
Discos óti h ta
cos (vitrola Lin n ec
s automáti sco
10s 3m cas)
Fita magn De
ética (bibli
otecas rob
otizadas)

Figura 70 – Pirâmide estrutural da hierarquia de memória

Fonte: Null e Lobur (2010, p. 313).

A relação de descendência na hierarquia de memória segue os seguintes critérios:

• Diminuição do custo por bit, quanto menor for o nível na hierarquia.

• Aumento na capacidade de armazenamento, quanto menor for o nível na hierarquia.

• Aumento no tempo para acesso à memória, quanto menor for o nível na hierarquia.

• Aumento ou diminuição da frequência de acesso às memórias, de acordo com o nível de hierarquia.

85
Unidade I

Como observado, no topo da hierarquia de memória estão os registradores (MBR, IR, MAR, PC, AC
etc.) do processador que, embora mais rápidos (por volta de 1 a 2 nanossegundos), são os mais caros
e têm menor capacidade de armazenamento. Memórias caches L1, L2 e L3, internas ao processador,
possuem tempo de acesso estimado de 3 a 50 nanossegundos, respectivamente. A memória principal
do computador (RAM) tem um tempo de acesso médio de 90 nanossegundos e capacidade de
armazenamento que pode chegar a 32 gigabytes em um único pente de memória. Descendo mais
no nível de hierarquia, os discos rígidos magnéticos, muito utilizados em computadores pessoais, têm
capacidade de armazenamento mediano (1 a 10 terabytes) a um custo de tempo de acesso na faixa
dos milissegundos. Discos ópticos e fitas magnéticas, geralmente utilizadas para realizar backup em
empresas, estão na base da hierarquia de memória e têm tempo de acesso que pode levar segundos ou
mesmo minutos, com a grande vantagem de serem as memórias com menor custo financeiro atualmente.
Como os registradores já foram abordados especificamente anteriormente, agora é necessário estudar
com detalhes a memória cache.

3.2 Memória cache

A memória cache tem o objetivo de obter desempenho similar ao de memórias mais rápidas, como
os registradores, porém disponibilizando uma maior capacidade (alguns megabytes) se comparada à
capacidade de armazenamento dos registradores.

Observação

O computador, durante sua execução, opera referenciando dados/


instruções localizados na memória principal, de forma que essa memória
intermediária tenta acessar esses endereços de forma mais ágil e, ao
mesmo tempo, armazenar parte desses dados ou endereços para possíveis
acessos futuros.

O conjunto de memórias do computador consiste basicamente em uma memória principal (RAM)


de maior capacidade, porém mais lenta, em conjunto com a memória cache, de menor capacidade,
porém mais rápida, como esquematizado na figura a seguir.

Transferência Transferência
de palavra de bloco

CPU Memória cache Memória principal

Rápida Lenta

Figura 71 – Relação de comunicação entre a CPU, cache e memória principal

Fonte: Stallings (2010, p. 96).

86
ARQUITETURA DE COMPUTADORES MODERNOS

Na medida em que o processador necessita realizar a operação de leitura de uma palavra contida
na memória, realiza‑se a verificação para determinar se ela está contida na memória cache. Se estiver
contida, a palavra será entregue à CPU, se não estiver, um bloco da memória principal, contendo algum
número fixo de palavras, será lido na cache e o resultado será fornecido à CPU. Essas conexões são
conhecidas como localidade de referência e ocorrem quando um bloco de dados é enviado para a
memória cache a fim de realizar uma única referência à memória. As memórias do tipo cache ainda
podem ser subdivididas em diferentes níveis (multiníveis) ou layers (L1, L2 e L3), em que a L3 possui
maior capacidade de armazenamento entre todas as caches, porém, sendo a mais lenta. A L2 é mais
lenta que a L1 e, por consequência, a L1 é a mais rápida nessa hierarquia. A figura a seguir mostra uma
relação de comunicação entre os diferentes níveis de cache, porém, nesse exemplo, todas elas estão
externas à CPU, fato que não ocorre com as memórias cache atuais.

CPU Cache de nível 1 Cache de nível 2 Cache de nível 3 Memória principal


(L1) (L2) (L3)

Mais rápida Rápida Menos rápida Lenta

Figura 72 – Organização de memória cache em três níveis

Fonte: Stallings (2010, p. 96).

Especificamente, a memória cache possui uma matriz de etiqueta e uma matriz de dados, como
mostrado na figura a seguir. Essa matriz de etiquetas possui os endereços de todos os dados contidos na
memória cache, e a matriz de dados contém, consequentemente, todos os dados.

Matriz de dados
Matriz de etiqueta

Endereço Etiqueta

Lógica de
acertos/faltas

Acerto? Dados

Figura 73 – Diagrama de blocos da memória cache

Fonte: Carter (2002, p. 159).

87
Unidade I

A proposta da divisão da memória cache em matrizes tem como objetivo reduzir seu tempo de
acesso, pois a matriz de etiquetas geralmente tem menos bits (se comparada à matriz de dados) e, por
consequência, poderá ser acessada de forma mais rápida se comparada à matriz de dados. Quando
esta é acessada, a saída obtida precisa ser comparada com o endereço da memória de referência para
que seja determinado se houve ou não um acerto de memória cache, também conhecido como cache
hit. O acerto de cache significa que os buffers de dados e endereços são desativados e haverá uma
comunicação apenas entre a CPU e a memória cache, sem outro tráfego no barramento interno do
sistema. O processo inverso ocorre em caso de falha de cache ou cache miss, em que o endereço desejado
é colocado no barramento e os dados são deslocados pelo buffer de dados para a memória cache e CPU.

3.2.1 Dados de cache e instruções

Em outros tipos de memória, como a RAM, as instruções e os dados geralmente compartilham o


mesmo espaço dentro de cada nível da hierarquia de memória, entretanto o mesmo não ocorre na
memória cache em que dados e instruções são armazenados em caches diferentes. Essa característica
ficou conhecida como cache Harvard (figura a seguir), pois se trata de uma das características da
arquitetura de Harvard.

Processador

Busca de
instruções Busca de dados

Cache de instruções Cache de dados

Memória principal

Figura 74 – Esquema de interligação de cache para processadores de arquitetura Harvard

Fonte: Carter (2002, p. 159).

Essa configuração permite que a CPU busque, de forma simultânea, as instruções a partir da cache
de instruções e dados pela cache de dados. Assim, quando a memória cache possui tanto instruções
quanto dados, ela é denominada cache unificada. Uma desvantagem no uso de caches separadas é que
a automodificação de certos programas se torna difícil, ou seja, quando um programa precisa modificar
suas próprias instruções, tais instruções serão tratadas como dados e armazenados na cache de dados.
Assim, para executar as instruções modificadas, o sistema operacional precisará realizar operações
especiais de descarga. De forma geral, a memória cache de instruções pode ser de duas a quatro vezes
88
ARQUITETURA DE COMPUTADORES MODERNOS

menor do que a cache de dados, pois as instruções de um sistema operacional ocupam menor espaço
físico na memória se comparadas com os dados.

3.2.2 Endereçamento de cache

Um conceito intimamente relacionado com a memória cache diz respeito à memória virtual, nome
dado à técnica que utiliza uma memória secundária como o disco rígido, ou mesmo à memória cache
para o armazenamento temporário. Uma memória virtual, basicamente, permite que programas façam o
endereçamento da memória de forma lógica, sem de fato considerar a quantidade de memória disponível
fisicamente na RAM. Quando a memória virtual é utilizada, os locais de endereço nas instruções conterão
endereços virtuais, e não físicos, de forma que para realizar a leitura/escrita da memória RAM será
necessário o uso de uma unidade gerenciadora de memória (MMU – Memory Management Unit) para
traduzir os endereços virtuais em endereços físicos na RAM, como mostra a figura:

Endereço lógico Endereço físico


MMU
Memória
Processador Cache principal

Dados

Figura 75 – Organização de memória cache lógica

Fonte: Stallings (2010, p. 99).

Uma cache lógica (ou virtual) pode armazenar os dados utilizando endereços virtuais, assim o
processador irá acessar a memória cache de forma direta, sem a necessidade de ter que passar pela
MMU, como mostra a organização feita na figura a seguir.

Endereço lógico Endereço físico


MMU
Memória
Processador Cache principal

Dados

Figura 76 – Organização de memória cache física

Fonte: Stallings (2010, p. 99).

Uma das vantagens nesse tipo de abordagem da cache lógica é que a velocidade de acesso será maior
se comparada à uma cache do tipo física, pois, como os diagramas mostram, a cache pode responder
antes que a MMU concretize a tradução do endereçamento.

89
Unidade I

3.2.3 Caches associativas

A associatividade em memória cache significa quantas posições nela contém um endereço de


memória. As caches associativas permitem que os endereços sejam armazenados em diversas posições
na cache, o que reduzirá as penalidades ocasionadas por conflitos no barramento de memória, devido
a dados que precisam ser armazenados nas mesmas posições. Memórias cache que possuam uma baixa
associatividade podem restringir o número de posições de endereços disponíveis, o que pode ocasionar
o aumento nas falhas, e que, por consequência, reduzirá o espaço ocupado. As caches podem ter um
mapeamento associativo, como mostrado na figura:
Endereço
Etiqueta Linha de dados
Lógica de acerto/falha Acerto?
Etiqueta Linha de dados
Lógica de acerto/falha Acerto?
Linha que contém
dado é enviada à CPU
Etiqueta Linha de dados
Lógica de acerto/falha Acerto?

Etiqueta Linha de dados


Lógica de acerto/falha Acerto?

Figura 77 – Esquema de memória cache com mapeamento associativo

Fonte: Carter (2002, p. 162).

Nesse tipo de endereçamento de cache é permitido que qualquer endereço seja armazenado em
qualquer uma das linhas de cache. Assim, quando uma operação de acesso à memória é solicitada à
cache, tal acesso precisa ser comparado a cada uma das entradas na matriz de etiquetas, para que seja
determinado se os dados referenciados na operação de fato estarão contidos nela. As caches associativas
são, no geral, implementadas com matrizes distintas para dados e etiquetas.

3.2.4 Mapeamento direto com caches

As caches que possuem mapeamento direto são exatamente o oposto das associativas. No
mapeamento direto, cada endereço só poderá ser armazenado em uma posição da memória cache,
como exemplificado na figura a seguir. Dessa forma, quando uma operação de acesso a memória é
enviada a uma cache que foi mapeada de forma direta, um subconjunto de bits será utilizado para
selecionar o byte que está dentro de uma linha da cache para onde aponta o endereço.

90
ARQUITETURA DE COMPUTADORES MODERNOS

Matriz de etiquetas Matriz de dados

Endereço

Etiqueta para verificar


acertos/falhas
Comparação Envio de dados para o
processador se houver acerto
Acerto?

Figura 78 – Esquema de memória cache com mapeamento direto

Fonte: Carter (2002, p. 163).

Assim, haverá n bits menos significativos no endereçamento que serão utilizados para determinar a
posição do endereço de dentro da linha de cache, onde n é dado por log na base 2 do número de bytes
contidos na linha. Assim, os m bits mais significativos dados também por log na base 2 do número de
linhas na cache serão utilizados para selecionar a linha que conterá o endereço armazenado.

Saiba mais

Aprenda mais sobre a importância das memórias do tipo cache nos


computadores atuais pesquisando em:

O QUE é memória cache? Entenda sua importância para o PC. Techtudo,


2022. Disponível em: http://glo.bo/3QTlwpo. Acesso em: 18 jan. 2023.

3.3 Memória somente de leitura

As memórias somente de leitura (ROM – Read Only Memory), como as da figura a seguir, são fabricadas
a partir de materiais semicondutores (silício), não voláteis, ou seja, não perdem seus dados/instruções ao
serem desligadas, possuem desempenho semelhante aos das memórias de leitura/escrita, além de serem
seguras por permitir apenas a leitura de seu conteúdo através de determinados programas.

91
Unidade I

Observação

Todos os dispositivos computacionais modernos (computadores,


celulares, tablets, consoles de jogos, câmeras digitais etc.) utilizam parte
do endereçamento da memória RAM baseada em memórias do tipo ROM.

Figura 79 – Memória somente de leitura do tipo ROM

Disponível em: https://bit.ly/3WrGInk. Acesso em: 19 jan. 2023.

As memórias ROM são conhecidas por fazerem parte do sistema de inicialização dos computadores
pessoais, e são popularmente conhecidas como BIOS (Basic Input Output System – sistema básico
de entrada e saída). Além disso, devido a sua versatilidade e baixo custo, a memória ROM também
é responsável por armazenar sistemas de controle de processos em dispositivos embarcados como
injeção eletrônica em automóveis, fornos micro‑ondas, geladeiras, smart TVs, drones, entre outros. As
memórias do tipo ROM vêm evoluindo ao passar das décadas, a fim de torná‑las mais rápidas e práticas
devido a sua grande aderência em dispositivos embarcados, de modo que vários tipos de diferentes
configurações de ROM foram criados.

3.3.1 ROM programada por máscara

O tipo mais básico de memória ROM é a programada por máscara, nome dado devido ao processo de
fabricação e escrita de bits através de máscaras padrão. Os bits que fazem parte do programa de usuário
são gravados no interior dos elementos da memória durante o processo de fabricação, conhecido como
hardwired, onde cada um já é gravado no endereço de célula correspondente (MONTEIRO, 2019). Após
sua fabricação, a pastilha ROM estará pronta para ser utilizada e nenhum tipo de software será capaz
de modificar os bits nela gravados. Ademais, a fabricação da memória ROM é mais barata, pois utiliza‑se
apenas uma máscara de um programa matriz para que milhares de cópias do hardware sejam produzidas.
Contudo, também há desvantagens no processo de fabricação em larga escala dessas memórias como:
92
ARQUITETURA DE COMPUTADORES MODERNOS

• Uma vez produzida, não há possibilidade de recuperar qualquer erro do programa, ou seja, se
apenas um único bit estiver errado na pastilha, todo o lote deverá ser descartado.

• O custo de fabricação de uma máscara para escrita dos bits na memória é o mesmo, de modo que
é possível fabricar milhares de módulos de memória.

• Devido a essas características, a memória ROM é considerada um dispositivo mais simples, se


comparada às memórias cache e RAM, pois necessita de apenas um decodificador e um barramento
de saída, além de circuitos lógicos utilizando portas OR para realizar o endereçamento, como
mostra a figura a seguir.
Decodificada
2 po 4
End. Conteúdo
00
A0 01 00 0101
A1 10 01 1011
11 10 1110
11 0000

Habilitar

S3 S2 S1 S0

Figura 80 – Esquema de memória ROM com mapeamento direto

Fonte: Monteiro (2019, p. 114).

Nessa figura é possível observar que a memória é decodificada no modo 2 por 4 e possui quatro
células de 4 bits cada, podendo endereçar quatro endereços de 2 bits. Nota‑se também que o
decodificador de endereços possui uma entrada para um endereço de dois bits (A0 e A1) e linhas de saída
do decodificador que se conectam em quatro portas OR (S0, S1, S2 e S3), em que cada porta será responsável
pela geração de um dos quatro bits da célula de memória, de acordo com o endereço especificado.

3.3.2 PROM

As memórias ROM programáveis (Programable Read Only Memory) são fabricadas sem qualquer
informação; posteriormente, seja pelo fabricante, seja pelo usuário, são inseridos os bits contendo
as informações que ficarão fixas nela. Isso quer dizer que, embora fabricadas sem nenhum dado (limpas),
após serem gravados, os dados não poderão mais ser apagados. Um outro diferencial entre a memória
ROM e a PROM está no seu custo individual. Como a ROM pode ser fabricada em larga escala a custos
fixos da matriz, divididos pela quantidade de cópias, no caso da PROM, sua fabricação será facilitada
devido ao menor custo individual de fabricação, que independe da quantidade, pois não haverá o custo
da fabricação da máscara.

93
Unidade I

3.3.3 EPROM

Com a evolução dos computadores, também vieram as evoluções nas memórias ROMs. Uma variação
da PROM foi a EPROM – Erasable PROM ou PROM apagável (figura a seguir) –, que também se trata de
uma memória não volátil.

Figura 81 – Memória EPROM

Disponível em: https://bit.ly/3QPPxWO. Acesso em: 19 jan. 2023.

Uma EPROM é programada através de um dispositivo eletrônico que transforma o programa


computacional em uma corrente elétrica, injetada na memória. Uma janela de quartzo situada acima da
memória já programada é utilizada para apagar completamente todo seu conteúdo. Para que o processo
de apagamento seja realizado, uma luz ultravioleta (~200‑400 nanômetros) é incidida sobre a janela em
um tempo estimado de 20 a 25 minutos. Uma vez apagada, a memória ainda pode ser regravada através
do processo de “queima” de bits, que ocorre com a inserção de uma corrente elétrica mais forte do que
a convencional utilizada para ler os dados.

3.3.4 EEPROM e flash

A memória EEPROM (Electronically EPROM), ou EPROM eletronicamente gravável e apagável, é uma


memória parecida com a RAM, pois permite que múltiplos endereçamentos sejam escritos/apagados em
uma única operação. Com um grande diferencial da memória RAM, uma vez escrito algum dado, ele
será preservado sem a necessidade de fonte de alimentação constante para mantê‑lo. Uma variação da
memória EEPROM é a memória flash, muito utilizada como cartões de memória, pen drives, MP3 players,
armazenamento interno de câmeras digitais e celulares. Esse tipo de memória pode apagar totalmente
ou parcialmente seu conteúdo em uma única operação de escrita.

94
ARQUITETURA DE COMPUTADORES MODERNOS

Figura 82 – Diversos formatos de memórias do tipo flash

Disponível em: https://bit.ly/3Rylsf2. Acesso em: 19 jan. 2023.

Saiba mais

Sobre as memórias do tipo ROM, acesse:

O QUE é memória ROM? Techtudo, 2012.

Disponível em: http://glo.bo/3HczPSG. Acesso em: 18 jan. 2023.

3.4 Memória RAM

Uma célula unitária da memória principal é constituída basicamente de um material semicondutor


(silício). Por definição, um material semicondutor é aquele que apresenta um nível intermediário (não é
totalmente isolante nem totalmente condutor) de portadores de carga ou elétrons livres.

As células unitárias de memória têm algumas propriedades em comum, como (STALLINGS, 2010):

• Devem apresentar dois estados estáveis, que representam os números binários 0 e 1.

• Devem ser capazes de ser escritas, pelo menos uma vez, para que seu estado seja definido.

• Devem ser capazes de ser lidas, para que seu estado atual seja conhecido.

95
Unidade I

Lembrete

Por definição, um material semicondutor é aquele que apresenta um


nível intermediário de portadores de carga ou elétrons livres. De forma
que um material semicondutor, como o nome mesmo já diz, não é um
bom condutor e também não é um isolante, estando em um patamar
intermediário entre os dois.

Uma célula de memória tem três terminais funcionais, como mostra a figura a seguir, capazes de
transportar o sinal elétrico que definirá seu estado (0 ou 1). Um dos terminais é o de seleção, que selecionará
individualmente cada célula de memória, para que uma operação de leitura ou escrita seja realizada.
Controle Controle

Entrada Entrada
Seleção de dados Seleção de dados
Célula Célula

(a) Escrita (b) Leitura

Figura 83 – Operação de escrita (A) e operação de leitura (B)

Fonte: Stallings (2010, p. 129).

Observação

Cada célula unitária possui um terminal de controle que define qual das
duas operações serão realizadas naquele momento. Na operação de escrita,
um terminal fornecerá um sinal elétrico que define qual estado (0 ou 1)
deverá ser gravado na célula. Por fim, na operação de leitura, o terminal de
saída é utilizado para obter o estado atual da célula.

3.4.1 Memória DRAM e SRAM

As memórias do tipo RAM (Random Access Memory) acessam as palavras individuais de forma direta
através de uma lógica de endereçamento interno. Em memórias RAM é possível ler os dados contidos
na memória e escrever novos dados de forma muito rápida, pois necessitam apenas de sinais elétricos
para essas tarefas. Outra característica muito importante nas memórias do tipo RAM é que elas são
voláteis, ou seja, para que seu estado seja mantido por um tempo determinado, elas devem receber
alguma fonte de energia constante. Assim, se a energia for interrompida, os dados gravados serão
perdidos, o que determina que a RAM é utilizada somente para armazenamento de dados/instruções de
forma temporária.
96
ARQUITETURA DE COMPUTADORES MODERNOS

Existem, de forma básica, dois tipos de tecnologias de memórias RAM: a RAM dinâmica e a
RAM estática.

Lembrete

Os sistemas básicos de memória são constituídos de vários dispositivos


para realizar o armazenamento de dados e instruções, em que cada
dispositivo tem sua própria característica em relação ao tempo de
transferência, capacidade e custo.

RAM dinâmica ou DRAM (Dynamic RAM)

Nessa tecnologia, a célula unitária da memória é constituída por capacitores que armazenam os
dados como cargas elétricas em seu interior. Apesar de armazenarem um estado binário, as memórias
RAM são basicamente um dispositivo analógico, pois armazenará uma carga elétrica com um valor
dentro de um certo intervalo. Os capacitores são dispositivos eletrônicos que interpretam, nessa
situação, a presença (bit 1) ou a ausência (bit 0) de uma carga elétrica para que seu estado seja definido.
Entretanto, os capacitores são dispositivos dinâmicos, ou seja, variam em função do tempo e possuem
como característica uma tendência natural para que sua energia seja descarregada. Dessa forma,
para que os dados sejam mantidos até a próxima operação de leitura ou escrita, é necessário que um
mecanismo de recarga elétrica periódica (refresh) ocorra, a fim de que os dados não sejam perdidos.
A figura a seguir mostra uma estrutura esquemática de uma memória DRAM típica, com uma célula
unitária, capaz de armazenar 1 bit.
Linha de endereço

Transistor

Capacitor de
armazenamento

Linha de
bit B Terra

Figura 84 – Célula unitária de uma memória DRAM

Fonte: Stallings (2010, p. 130).

Nessa figura, é possível observar que há uma linha de endereço ativada toda vez que o valor do
bit precisa ser alterado para o estado de lido ou escrito. Há também outro dispositivo eletrônico na
célula, denominado transistor. Resumidamente, um transistor é um dispositivo semicondutor (silício ou

97
Unidade I

germânio) que atua, de acordo com o tipo, ou como um amplificador de corrente elétrica ou como uma
chave para atenuar ou barrar uma corrente elétrica. No caso das células unitárias da RAM, o transistor
atuará como uma chave, aceitando ou não uma corrente elétrica. Assim, o funcionamento da célula de
RAM se dá quando o transistor aceita a corrente aplicada na linha de endereço e armazena a carga no
capacitor. Na escrita, um sinal elétrico é aplicado na linha de endereço com destino ao capacitor; uma
alta tensão (3 a 5 volts) representará um bit e uma baixa tensão (0‑0,8 volts) representará o bit zero.
Na operação de leitura, a linha de endereço é utilizada para acionar o transistor da célula unitária, de
modo que o estado atual do capacitor seja lido e sua carga transferida em uma linha de bit, e, assim, um
amplificador de voltagem a compare com um valor de referência e determine se a célula contém o bit
zero ou um. É importante salientar que a cada operação de leitura da célula de memória o capacitor será
descarregado, necessitando ser restaurado pelo estado anterior ou por um novo estado após a operação.

RAM estática ou SRAM (Static RAM)

Pode‑se citar como principal aplicação de uma memória SRAM seu emprego em memórias do tipo
cache. Diferentemente da memória DRAM, a RAM estática é um dispositivo mais complexo, como
pode ser observado na figura a seguir, e contém os mesmos elementos lógicos encontrados em um
processador. O dispositivo básico de armazenamento dos estados nesse tipo de memória é o flip‑flop,
que se trata de um dispositivo estático, ou seja, os bits ficarão armazenados enquanto houver energia
elétrica sendo fornecida ao dispositivo.
Voltagem cc

T3 T4
C1 C2
T5 T6

T1 T2

Terra
Linha de Linha de
Linha de endereço
bit B bit B

Figura 85 – Célula unitária de uma memória SRAM

Fonte: Stallings (2010, p. 130).

No diagrama da figura anterior, observa‑se que existem quatro transistores (T1, T2, T3 e T4), que são
cruzados, como nota‑se nos circuitos sequenciais, também conhecidos como flip‑flops, de forma a
produzir um estado lógico estável. Para o estado lógico, C1 está em nível lógico alto e C2 está em nível
lógico baixo, de modo que T1 e T4 estarão desligados e T2 e T3 estarão ligados. Já para o estado lógico zero,
o ponto C1 está em nível baixo e o ponto C2 está em nível alto. Nessa situação, T1 e T4 estarão ligados e
T2 e T3 estarão desligados. Os dois estados serão estáveis desde que uma corrente elétrica seja aplicada
continuamente e, diferentemente da memória DRAM, não será necessária nenhuma recarga para que os

98
ARQUITETURA DE COMPUTADORES MODERNOS

dados sejam retidos. A linha de endereço na SRAM também é utilizada para abrir ou fechar uma chave,
assim como na DRAM, além de controlar dois transistores (T5 e T6). Dessa forma, quando um sinal for
aplicado à linha de endereço, esses dois transistores serão ligados, permitindo que uma operação de
leitura ou escrita seja realizada. No caso de uma operação de leitura, o estado de bit desejado é aplicado
à linha B e seu complemento à linha B, de forma que forçará que os quatro transistores (T1, T2, T3 e T4)
permaneçam no estado correto.

3.4.2 Organização de memória: endereço, conteúdo, armazenamento e posição na


memória RAM

Em uma organização de memória, composta por vários elementos identificados e localizados


individualmente, é necessário que algum código seja atribuído ao elemento a fim de que ele possa ser
identificado e localizado. Esse conceito é o endereçamento ou posição da memória e é válido para qualquer
tipo de memória. Na figura a seguir, é possível observar que existem dois endereços (257A e 257B), que
alocam dois conteúdos, 1F e 2C, respectivamente. Os Mbits armazenados estão contidos em células de
memória e são geralmente expressos em grupos de 8 bits ou 1 byte. Dessa forma, é comum expressar a
capacidade da memória em termos como 64 Mbytes ou 64 MB.

End 257 A 1F
Conteúdo da posição de memória = 2C
End 257 B 2C

Posição da memória principal


≈ ≈ com endereço igual a 257 tem
armazenada a informação cujo
valor é 1F

Figura 86 – Valores de endereço e conteúdo da memória principal

Fonte: Monteiro (2019, p. 96).

Lembrete

Capacidade da memória refere‑se à quantidade de dados que podem


ser armazenados em um certo instante de tempo. Para computadores, onde
a representação dos dados é através do bit, os valores para expressar a
capacidade da memória podem ser de 512 bits, 16.384 bits ou 8.388.608 bits.

99
Unidade I

À medida que esse número de bits aumenta, fica muito difícil de expressá‑lo, devido ao tamanho de
algarismos necessários para essa tarefa. Entretanto é possível realizar a simplificação dos valores através
da seguinte tabela:

Tabela 3 – Grandezas numéricas computacionais

Unidade Valor em potência de 2 Valor em unidades


1 K (1 quilo) 210
1.024
1 M (1 mega) 1.024 K = 220 1.048.576
1 G (1 giga) 1.024 M = 230 1.073.741.824
1 T (1 tera) 240 1.099.511.627.776
1 P (1 peta) 250 1.125.899.906.843.624
1 E (1 exa) 260 1.152.921.504.607.870.976
1Z (1 zeta) 270 1.180.591.620.718.458.879.424
1Y (1 yota) 280 1.208.925.819.615.701.892.530.176

Adaptada de: Monteiro (2019, p. 47).

Dessa forma, os valores 16.384 e 8.388.608 podem ser representados de forma mais simples, como
16 Kbits e 8 Mbits, respectivamente. Embora facilite a interpretação, essa não é a melhor maneira de
quantificar a capacidade da memória. Como é sabido, não é possível armazenar dois estados em uma
única célula de memória, assim somente um único endereço poderá ser localizado e identificado, pois, se
dois valores fossem armazenados em um único endereço ou célula, o sistema operacional não seria capaz
de identificar qual dos dois estados seria o desejado naquela operação (leitura ou escrita). Dessa forma,
mais importante do que a capacidade de uma memória é a quantidade de endereçamento que ela pode
manipular, visto que é possível armazenar um dado em cada endereço. Em se tratando de quantizar
a capacidade da memória principal, não há padronização. Entretanto o uso da quantidade de bytes
em vez da quantidade de palavras é bem aceito nos computadores modernos e outras denominações,
como células, também são aceitas. Alguns exemplos também mostram que utilizar uma simbologia
mais simplificada ajuda o leitor a identificar o volume de bytes envolvidos nos cálculos, como pode
ser observado:

• 2.048 bytes ≡ 2 K bytes ≡ 2 x 210 bytes

• 393.216 células ≡ 384 K células ≡ 384 x 210 células

• 1.048.576 palavras ≡ 1 M palavras ≡ 1 x 220 palavras

A memória RAM é constituída de um conjunto de N células, cada célula armazenando um valor


(0 ou 1) designado como Mbits. Assim, a quantidade de endereços que ocupam o espaço endereçável
da memória RAM também será igual a N, pois cada conteúdo da célula será associado a um endereço.
De forma que o valor de N representará a capacidade da memória, que também está associada
à quantidade de células ou endereços dessa memória. Como o bit é representado por dois estados
possíveis, então é possível concluir que (MONTEIRO, 2019):

100
ARQUITETURA DE COMPUTADORES MODERNOS

• É possível armazenar em cada célula unitária um valor entre 0 e 2M‑1, de forma que se tem
2M combinações possíveis. Por exemplo, se M for igual a 8, então tem‑se 28 = 256 combinações,
resultando em valores binários iniciados em 00000000 e 11111111, que podem ser convertidos em
016 e FF16 na base 16 ou 010 e 25510 na base decimal, respectivamente.

• A memória principal tem N endereços, e sendo E igual à quantidade de bits dos números que
representarão cada um dos N endereços, tem‑se: N = 2E. Assim, se N = 512, então 512 = 2E, logo
E será igual a 9 pois 29 = 512.

• O número total de bits armazenados na memória RAM é de 512 células. De forma que com 8 bits
de tamanho resulta em: N = 512 (total de células), M = 8 bits (tamanho de cada célula), E = 9 bits
(tamanho em bits do número que representa cada endereço) e T = 4096 (total de bits da memória).

• Utilizando‑se a equação T = N x M, tem‑se que: 4.096 = 512 x 8. Esses valores podem ser mais
facilmente operacionalizados se houver uma representação em potenciação, assim, T = 4096 bits
ou 4 Kbits ou 212 bits. É possível utilizar a potenciação para simplificar os demais termos no restante
da equação, colocando‑os em base 2, onde 512 é representado por 29 e 8 é representado por 23.

Exemplo de aplicação

Exemplo 1

Uma memória RAM possui um espaço de endereçamento de 2 K, onde cada célula pode armazenar
até 16 bits. Qual será o valor total de bits que podem ser armazenados nessa memória e qual o tamanho
de cada endereço?

Resolução

Se o espaço máximo endereçável é de 2 K, então N = 2 K (quantidade máxima de células também


é 2 K). Cada célula tem 16 bits, então M = 16 bits (tamanho da célula) ou 24. Sendo N = 2 E, então
N = 2 K, e convertendo 2 K em potência na base 2, tem‑se: 21 × 210 = 211(mantém‑se a base e somam‑se
os expoentes). Dessa forma, obtém‑se que E = 11. Se E representa a quantidade de bits de cada número
que irá expressar um endereço e E = 11, logo os endereços de cada célula são números que possuem
11 bits. Aplicando‑se a equação: T = N × M → 211 × 24 = 215. Convertendo para múltiplos de K = 210,
tem‑se: 25 × 210 = 32K.

Logo: T = 32 K (total de bits da memória principal) e E = 11 bits (tamanho de cada endereço).

Exemplo 2

Uma RAM foi fabricada com a possibilidade de armazenar 256 K bits, onde cada célula unitária pode
armazenar 8 bits. Qual é o tamanho de cada endereço e qual é o total de células unitárias que podem
ser armazenadas nessa RAM?

101
Unidade I

Resolução

Como o total de bits é dado por T = 256 K, e utilizando a potenciação em base 2, pode‑se expressar
256 K como: T = 28 × 210 → T = 218.

Se 1 célula contém 8 bits, então M = 8 → M = 23. Utilizando‑se a equação T = M x N, então


N (quantidade de células) pode ser reescrito como: N = T/M. Assim, substituindo os valores na equação,
tem‑se: N = 256 K/8. Colocando tudo em potenciação para facilitar as contas: N = 218/23 = 215 (mantém‑se
a base e subtraem‑se os expoentes).

Para facilitar a quantificação de N = 215, pode‑se representar como N = 25 × 210 ou N = 32 K


(células). Sabendo‑se que N = 215 e que N = 2E, então o tamanho de cada endereço é E = 15.

3.4.3 Operação de leitura

A leitura ocorre após a execução de instruções menores, também conhecidas como micro‑operações
(micro‑ops), sendo que cada uma dessas instruções consiste em uma etapa do processo de leitura ou
escrita da memória. Essas micro‑operações geralmente gastam um certo tempo de acesso à memória
para serem executadas. Assim, o intervalo de tempo gasto na realização de duas operações consecutivas
(leitura‑leitura, leitura‑escrita ou escrita‑leitura) são conhecidas como ciclo de memória. Como exemplo,
as operações de leitura de um dado armazenado (5C) em um endereço 1324 da memória principal para
a CPU. As etapas que descrevem essa operação de leitura, que também pode ser observada no diagrama
da próxima figura, são:

• O registrador MAR (Memory Address Register) recebe o dado de outro registrador da CPU.

• O endereço é então colocado no barramento de endereços.

• Insere‑se um sinal de leitura no barramento de controle.

• Decodifica‑se o endereço e a localização das células.

• O registrador MBR recebe os dados pelo barramento de dados.

• Enviam‑se os dados contidos na MBR (Memory Buffer Register) para outro registrador.

Inicialmente, a UC (unidade de controle) começa a operação de leitura realizando a transferência do


endereço 1324 de algum registrador específico, como o PC (Program Counter) para o registrador MBR e
insere o sinal de leitura (READ) no barramento de controle para indicar o que a memória principal deve
fazer em seguida. A memória principal então decodifica o endereço recebido e transfere seu conteúdo
para o registrador MBR pelo barramento de dados. A partir do registrador MBR, a informação desejada
será transferida para o elemento do processador, o destinatário final, que geralmente é algum outro
registrador da CPU.

102
ARQUITETURA DE COMPUTADORES MODERNOS

CPU Memória principal


End 0000

Outro reg. Outro reg.

MBR MAR UC End 1324 5C

5C 1324
≈ ≈

End FFFF
Barramento de controle

Barramento de endereços

5C
Barramento de dados

Figura 87 – Operação de leitura na memória principal

Fonte: Monteiro (2019, p. 102).

O tempo utilizado no acesso para a realização dos seis passos descritos antes não garante que a
memória principal possa realizar uma nova operação logo em seguida. O que indica que estar pronta ou
não para uma nova operação está inteiramente relacionada com o modelo de memória RAM utilizada
(DRAM ou SRAM). As memórias do tipo SRAM, por exemplo, permitem que outra operação de leitura
ou escrita seja realizada de forma imediata logo após a conclusão de uma operação, enquanto memórias
do tipo DRAM não possibilitam isso.

3.4.4 Operação de escrita

A operação de escrita possui um procedimento de funcionamento parecido ao da operação de leitura,


com exceção do sentido da transferência, que é inverso ao da leitura, ou seja, o sentido é do processador
para a memória principal. A próxima figura mostra um exemplo de operação de escrita de um dado (F7)
oriunda do processador para ser armazenado na memória principal no endereço 21C8. Os seguintes
passos explicam essa operação:

103
Unidade I

• O registrador MAR recebe da CPU o dado oriundo de outro registrador.

• O endereço correto recebido é colocado no barramento de endereços.

• O registrador MBR recebe os dados da CPU oriundos de outro registrador.

• É realizado o sinal de escrita (WRITE) através do barramento de controle.

• O dado é transferido para a célula de memória referida através do barramento de dados.


CPU Memória principal
End 0000

MBR MAR UC End 21C8 F7

F7 21C8
≈ ≈

Barramento de controle

Barramento de endereços

Barramento de dados

Figura 88 – Operação de escrita na memória principal

Fonte: Monteiro (2019, p. 104).

A UC (unidade de controle) coloca o endereço desejado no registrador MAR e o dado que deve
ser transferido no registrador MBR. O endereço é então fixado no barramento de endereços e,
consequentemente, o dado é colocado no barramento de dados, além do sinal de escrita (WRITE), acionado
no barramento de controle. O resultado da operação de decodificação do endereço pelos dispositivos de
controle da memória será o valor F7, que será alocado na célula unitária com endereço 21C8.

104
ARQUITETURA DE COMPUTADORES MODERNOS

3.4.5 DRAM síncrona

A SDRAM (Synchronous DRAM) foi desenvolvida no ano de 1994, com o intuito de realizar a
troca de dados com o processador de forma sincronizada através de um sinal de clock externo. Além
disso, a DRAM possui maior velocidade de transmissão no barramento da CPU/memória, sem ter a
necessidade de impor algum estado de espera na comunicação, como ocorria na DRAM tradicional
assíncrona. Na DRAM, a CPU apresenta endereços e níveis de controle à memória, o que indica que
um conjunto de dados que estão em um determinado local na memória deverá ser lido/escrito.
Após um tempo de acesso, a DRAM irá escrever ou ler os dados, e durante o atraso de tempo de
acesso, a DRAM poderá realizar diversas funções internas, tais como verificar e rotear dados através
de buffers de saída. Entretanto a CPU deverá esperar por algum atraso, o que diminuirá, obviamente,
o seu desempenho. A tabela a seguir mostra algumas das diversas pinagens encontradas nas SDRAM
e suas diferentes funcionalidades.

Tabela 4 – Pinagem básica de uma DRAM síncrona

A0 a A13 Entradas de endereço


CLK Entrada de clock
CKE Habilitação de clock
CS Seleção de chip
RAS Strobe de endereço de linha
CAS Strobe de endereço de coluna
WE Habilitação de escrita
DQ0 a DQ7 Entrada/Saída de dados
DQM Máscara de dados

Fonte: Stallings (2010, p. 141).

A SDRAM possui a característica do emprego do modo rajada (burst), que elimina o tempo de
configuração de endereçamento e tempo de pré‑carga de fileira de linha e coluna após um primeiro
acesso à memória. Nesse modo rajada, uma quantidade de dados pode ser enviada rapidamente após
o primeiro bit ter sido acessado. Esse modo de operação é muito útil em situações que todos os bits
a serem acessados estiverem em sequência e na mesma linha de array do acesso inicial. Além disso, a
SDRAM tem uma arquitetura interna (figura a seguir) com um banco múltiplo de memória, que melhora
o desempenho devido a operações em paralelo no chip.

105
Unidade I

CKE Buffer CKE Decodificador de coluna Decodificador de coluna


Array de células

Decodificador

Decodificador
Array de células
CLK Buffer CLK

de linha

de linha
banco de memória 0 banco de memória 1
(2MB X 8) (2MB X 8)
A0 DRAM DRAM
A1
Buffers de endereço (14)

A2
A3 Amplificadores Amplificadores
A4
A5
A6 de sinal de 000
controle
Gerador

Buffers de E/S
001

Circuito de
A7

de dados
de dados
controle
A8 002
A9 003
A11 004
A12 005
A13 006
A10 007
MR

DCM

Decodificador de coluna CAC = contador


CAC

Decodificador de coluna
RC

de coluna de
endereços (column

Decodificador
Array de células
Decodificador

Array de células adress conter)

de linha
banco de memória 2
de linha

banco de memória 2
Decodificador

MR = registrador de
de comando

CS (2MB X 8) (2MB X 8)
modo (mode register)
RAS DRAM DRAM
CAS RC = contador
Amplificadores Amplificadores de refresh
WE (refresh conter)

Figura 89 – Diagrama funcional de uma DRAM síncrona

Fonte: Stallings (2010, p. 142).

O MR (Mode Register – registrador de modo) é considerado outro recurso que diferencia as SDRAMs
das DRAMs convencionais. Esse mecanismo de lógica especifica o tamanho da rajada, que é baseada
no número de unidades de dados alimentadas sincronamente pelo barramento. A SDRAM transfere, de
modo eficiente, grandes blocos de dados em série, muito utilizado para aplicações como processamento
de textos ou planilhas.

3.4.6 DRAM Rambus

Desenvolvida em meados de 1997, esse tipo de memória ser tornou a principal concorrente
da memória SDRAM e foi logo compatibilizada com os processadores Pentium e Itanium da Intel. Essa
memória tem os chips encapsulados verticalmente, com todos os pinos situados em um dos lados,
como mostra a próxima figura. A troca de dados entre memória e CPU ocorre por um barramento com
28 fios de cobre, que tem a capacidade de endereçar até 320 chips de RDRAM a uma taxa de 1,6 GBps
(Gyga bits por segundo).

106
ARQUITETURA DE COMPUTADORES MODERNOS

Figura 90 – Memória DRAM Rambus ou RDRAM

Disponível em: https://bit.ly/3D3ou4L. Acesso em: 19 jan. 2023.

O barramento de comunicação da memória RDRAM oferece informações de endereçamento e


controle utilizando um protocolo de comunicação assíncrono, orientado a bloco de palavras. Em vez
de ser controlada por sinais RAS, CAS, R/W ou CE, como na memória SDRAM, a RDRAM recebe uma
solicitação de memória através do barramento de alta velocidade- que contém o endereço solicitado,
o tipo de operação e o número de bytes utilizados na operação atual. A configuração de uma RDRAM,
como mostrado na figura a seguir, consiste em um controlador e uma série de módulos conectados pelo
barramento em comum.

Controlador
RDRAM 1 RDRAM RDRAM n
Vterm
INITo
INIT
Barramento de dados (18:0)
RC [7:0]
RCIK [2]
TCIK [2]
Vief [2]
Gnd (32/18)
Vd (4)

Figura 91 – Estrutura básica da memória RDRAM

Fonte: Stallings (2010, p. 143).

O controlador está situado na extremidade da memória e conectado pelo barramento, que tem
18 inhas para dados, sendo 16 reais e 2 de paridade, “pulsando” a uma taxa dobrada do sinal do clock,
ou seja, um bit é enviado em cada transição de clock. Isso resultará em uma taxa de 800 Mbps em cada
linha de sinal de dados. Na outra extremidade do barramento está localizada a entrada do sinal de clock,
que se propaga até o extremo do controlador e depois retorna ao seu ponto original. As linhas adicionais
do barramento incluem também uma tensão elétrica de referência, fio terra e fonte de alimentação.

107
Unidade I

3.4.7 DDR‑SDRAM

A DRAM síncrona (SDRAM) desenvolvida em 1994 era capaz apenas de enviar dados ao processador
a cada ciclo de clock, o que tornava o processo de escrita e leitura um tanto quanto lento e limitado,
pois cada um deles só podia ser realizado a cada ciclo. Uma nova versão de SDRAM, a mundialmente
conhecida DDR‑SDRAM (Double Data Rate SDRAM), desenvolvida pela JEDEC Solid State Technology
Association, tem a capacidade de ler/escrever dados duas vezes por ciclo de clock. As operações de
leitura ou escrita ocorrem, uma de cada vez, a cada transição de subida ou descida do pulso do sinal
de clock. A figura a seguir mostra a temporização básica para o processo de leitura na DDR.

Clock

RAS

CAS

Linha de Endereço
Endereço endereço de coluna

Dados Dados Dados Dados


DQ válidos válidos válidos válidos

DQS

RAS = Seleção de endereço de linha


CAS = Seleção de endereço de coluna
DQ = Dados (entrada e saída)
DQS = Seleção DQ

Figura 92 – Temporização de leitura em uma DDR‑SDRAM

Fonte: Stallings (2010, p. 144).

A transferência de dados nessa memória ocorre de forma síncrona, com a transição de leitura
e escrita nas bordas de subida e descida. Um sinal denominado strobe de dados bidirecional (DQS),
fornecido pelo controlador da memória, ajuda a sincronizar a memória durante um- leitura ou escrita-
Em algumas implementações de DRAM, - DQS pode ser ignorado durante o processo de leitura. Para
facilitar a realização do processo de leitura e escrita nas células de memória, elas são organizadas
como matrizes, construídas por linhas e colunas. Dessa forma, para que um endereço na memória seja
conhecido através de uma posição, o controlador de memória obtém seu valor (RAS – Row Address
Strobe) de uma coluna e o seu valor de linha (CAS – Column Address Strobe), como pode ser observado
no diagrama a seguir.

108
ARQUITETURA DE COMPUTADORES MODERNOS

0
2
4
6
8
10
12
14
16
18
20

Figura 93 – Diagrama de linhas e colunas de um endereço de memória RAM

Fonte: Edwards e Leung (s.d.).

Há algumas variações na tecnologia DDR, principalmente no que diz respeito à taxa de transferência
de bits. A DDR2, por exemplo, aumenta a taxa de transferência de dados, o que leva a um aumento da
frequência de operação desse chip de memória, além de aumentar o buffer (cache localizada na RAM)
que realiza a pré‑busca, aumentando de 2 bits na versão anterior para 4 bits. Esse buffer permite que
o chip RAM pré‑posicione os bits que serão colocados na base de dados de forma rápida. Já a DDR3,
desenvolvida em 2007, tem a capacidade de realizar a pré‑busca utilizando um buffer de 8 bits. Um
módulo DDR simples tem a capacidade de transferir dados a uma taxa de 200 MHz a 600 MHz. Já
um módulo DDR2 tem a capacidade de transferir a uma taxa de 400 a 1.066 MHz, e um módulo de
memória DDR3 consegue transferir a uma taxa de clock de 800 MHz a 1.600 MHz.

Saiba mais

Para um conhecimento mais aprofundado sobre qual tipo de memória


RAM escolher para seu computador, recomenda‑se a seguinte leitura:

SODERSTROM, T. How to choose the right memory: a 2020 guide to


DRAM. Tom’s Hardware, 2020. Disponível em: https://bit.ly/2MacOBV.
Acesso em: 18 jan. 2023.

3.5 Memórias secundárias

Os primeiros computadores desenvolvidos não possuíam nenhum dispositivo de memória secundária


como os HDs (Hard Disks – discos rígidos). Entre 1930 e 1940 os programas eram introduzidos
manualmente, todas as vezes que precisassem ser executados, mesmo que essa execução fosse repetida,
ainda assim era necessário inserir manualmente o programa em cada nova utilização. Os primeiros
dispositivos de armazenamento em massa foram as fitas magnéticas, semelhantes às utilizadas nos

109
Unidade I

gravadores de som da época. Com o surgimento dos computadores pessoais (PCs) em 1981, surgiram
também os primeiros dispositivos denominados discos rígidos magnéticos, desenvolvidos pela IBM.
Antes disso, os discos magnéticos eram utilizados somente nas grandes corporações e eram muito
grandes (quase o tamanho de duas geladeiras residenciais), se comparados com os discos rígidos atuais,
como pode ser observado a seguir:

Figura 94 – RAMAC, o primeiro sistema de armazenamento em discos rígidos

Disponível em: https://bit.ly/3wrYIDy. Acesso em: 19 jan. 2023.

O RAMAC (Random Access Method of Accounting and Control – método de acesso aleatório de
contagem e controle) da IBM foi o primeiro disco rígido comercializado em 1956 (MONTEIRO, 2019).

Lembrete

Vale ressaltar que os dispositivos anteriores ao RAMAC não eram


propriamente discos, e sim tambores cobertos com material magnético
para o armazenamento dos dados no formato de minúsculos campos
magnéticos.

Nesse mesmo período, a IBM trabalhava em um novo dispositivo, baseado em discos que giravam a
taxas elevadas de1.000 a 1.200 rpm ou rotações por minuto (elevadas para a época), mas que tendia
a danificar a cabeça de gravação. No início dos anos 1960, a IBM conseguiu lançar o aperfeiçoamento
do RAMAC, facilitando assim o crescimento dessa nova tecnologia.
110
ARQUITETURA DE COMPUTADORES MODERNOS

3.5.1 Organizando o funcionamento dos discos rígidos

Os discos rígidos magnéticos são constituídos de várias superfícies circulares e metálicas, denominadas
pratos, onde cada superfície é coberta por um material magnetizável. A figura a seguir mostra um
disco rígido magnético utilizado em computadores atuais. Observe que ele está aberto somente para
demonstração de seu interior, visto que, ao se abrir um disco rígido magnético, ele deixa de ter seu
funcionamento correto.

Braço
Eixo Atuador
Disco (prato)

Cabeça de leitura e gravação

Figura 95 – Disco rígido magnético aberto e seus componentes

Disponível em: https://bit.ly/3Hq2qTn. Acesso em: 27 jan. 2023.

Cada superfície ou face do disco, também conhecido como prato, é organizado em áreas circulares
concêntricas chamadas trilhas, que são numeradas de 0 a T‑1, endereço da última trilha do disco. Essas
separações têm seu início a partir da 0 (mais externa do disco) até a mais interna T‑1, como mostram
as próximas figuras. Todas as trilhas têm a mesma capacidade de armazenar bytes e isso se deve ao fato
de que existe uma diferença de densidade de gravação entre as trilhas mais externa e a mais interna.
Dessa forma, para que se evitem erros devido à proximidade do final do prato nas extremidades, além
de evitar que haja uma diferença muito grande em relação às densidades entre as trilhas externas, a sua
área magnetizável fica posicionada na parte central do prato, de forma que não haverá trilhas próximo à
borda do prato ou mesmo ao eixo central de rotação.

111
Unidade I

Trilhas

Rotação Setor

Cabeça de leitura/gravação

Prato

Superfícies

Cilindro

Figura 96 – Organização interna de um disco rígido magnético

Fonte: Monteiro (2019, p. 318).

As trilhas nas superfícies dos discos são magnetizáveis e são divididas em partes menores de tamanho
fixo, denominadas setores, que servem de parâmetro de unidade de armazenamento. Cada setor do disco
rígido é organizado para gravar os 512 bytes para dados, de forma que o sistema de leitura/gravação
não seja confundido com outro setor.
Lacunas Setores Trilhas
entre setores Lacuna
entre trilhas
S6
S6
SN
S5

SN
S5

S1
S4

S1
S4

S2
S3
S2
S3

Figura 97 – Layout de separação interna do disco rígido

Fonte: Stallings (2010, p. 151).

112
ARQUITETURA DE COMPUTADORES MODERNOS

Os setores têm um campo inicial, que se inicia antes dos bytes destinados para dados, conhecido
como preâmbulo. O preâmbulo contém elementos necessários para sincronizar a cabeça antes de cada
leitura/gravação. Outro espaço existente entre cada par de setores é conhecido como espaço morto ou
gap intersetorial e é utilizado para evitar a superposição de leitura/gravação nos casos em que os setores
fiquem contíguos, devido à alta velocidade da rotação do disco no eixo. Os setores também possuem um
campo denominado ECC (figura a seguir), que contém bits calculados durante a transmissão dos dados
e têm como finalidade proteger o bloco de 512 bytes de possíveis erros decorrentes da transmissão.

Setor Gap entre setores Setor

Preâmbulo ECC Preâmbulo ECC

512 bytes de dados ECC – error connecting code 512 bytes de dados
(bits para deteção de erros)

Figura 98 – Organização de trilhas e setores em um disco rígido

Fonte: Monteiro (2019, p. 319).

Como já mencionado, um disco rígido é constituído não só por um, mas diversos pratos, que giram
constantemente e na mesma velocidade em torno do seu eixo central. Um braço mecânico transporta
a cabeça de gravação/leitura, efetuando um movimento na transversal, realizando as operações de
gravação/leitura em cada uma das trilhas solicitadas na operação. A movimentação do braço é realizada
através de um mecanismo, denominado atuador, movimentado pela atração de uma bobina. Existem
diferentes métodos de acesso aos discos rígidos, além de diversas unidades de transferência, utilizadas
de acordo com o sistema operacional escolhido. Alguns sistemas efetuam a transferência de dados do
disco rígido para o processador e a memória principal de setor por setor.

Observação

É importante ressaltar que em outros sistemas de maior capacidade de


armazenamento e também ao volume de transferências, a transferência
de dados é realizada a para um grupo de setores ou cluster (vários setores) de
cada vez.

113
Unidade I

3.5.2 Principais propriedades e o funcionamento dos discos rígidos

O acesso a dados/instruções em um disco rígido ocorre em uma série de etapas, também conhecidas
como micro‑operações. De forma resumida, pode‑se definir as seguintes etapas para que o acesso ao
disco seja completado:

• Interpretação do comando que realiza a solicitação de E/S. Etapa em que um endereço físico que
contém os dados desejados é localizado pelo número do cilindro ou setor e é conhecido como
geometria do disco.

• Movimentação do braço em direção à trilha desejada ou cilindro, conhecido também como seek.

• Localização do setor, onde a cabeça de leitura/gravação passa por cima do setor desejado.

• Transferência de bits através de condutores com destino a um buffer e depois para uma área da
memória principal especificada na operação de busca.

O tempo gasto entre o início da operação de leitura/escrita e o seu término é conhecido como tempo
de acesso e é constituído pela soma dos quatro tempos distintos, correspondentes às seguintes etapas
(MONTEIRO, 2019):

• Tempo necessário para a interpretação do comando: é todo o período gasto para que o sistema
operacional seja capaz de interpretar o comando, transmitir a instrução para o controlador de
disco e a conversão no endereço físico desejado.

• Tempo para realização da busca (seek): é o tempo gasto para realizar a interpretação do
endereço desejado pela unidade de controle além da movimentação mecânica do braço até as
trilhas desejadas.

• Tempo de latência: é o período decorrido a partir da chegada da cabeça de leitura/gravação


na trilha e a passagem pelo setor. O tempo médio para a latência será igual à metade do tempo
gasto para que o disco efetue uma volta completa, ou seja, para que seja possível que o setor gire
completamente ao redor da cabeça, o que é inversamente proporcional à velocidade de rotação
do disco, estimada entre valores de 5.400, 7.200 e 10.000 rpm (rotações por minuto).

• Tempo para realizar a transferência dos dados: é o tempo para realizar a transmissão dos
sinais elétricos em formato de bits, com valores típicos da ordem de 400 a 800 microssegundos.

3.5.3 Calculando o espaçamento e armazenamento em discos rígidos

O cálculo do espaço necessário para o armazenamento em discos rígidos consiste na escolha do


setor ou grupo de setores, como a unidade de transferência fixa, deixando de existir, portanto, o fator
de bloco de dados variáveis. Dessa forma, será necessário o cálculo de quantidade de trilhas ou cilindros

114
ARQUITETURA DE COMPUTADORES MODERNOS

que serão consumidos por arquivo. Um cilindro é constituído por um conjunto de todas as trilhas que
estão na mesma posição relativa, como exemplificado na figura seguinte:

Figura 99 – Trilhas e cilindros internos

Fonte: Stallings (2010, p. 154).

Exemplo de aplicação

Os arquivos de dados são constituídos de N registros lógicos e, considerando a divisão de trilhas


em setores, cada um deles com uma quantidade fixa de bytes no armazenamento. Assim, pode‑se
implementar o cálculo com o seguinte exemplo:

Deseja‑se conhecer qual será o espaço necessário para armazenar em disco rígido um arquivo com
80.000 bytes. O disco, para realizar o armazenamento, possui 40 trilhas, além de 9 setores de 512 bytes
cada. Como calcular?

Resolução

A quantidade de setores necessária será 80.000/512 = 156,25. Mas como o número de setores deve
ser composto por um número inteiro, então serão necessários 157 setores. O cálculo da quantidade
de trilhas consiste em dividir o total de setores obtido (157) pelos setores disponíveis no disco (9),
resultando em: 157/9 = 17,4 trilhas, que também precisa ser adequado para 18 trilhas, pois esse número
também não é fracionado.

3.5.4 Funcionamento do desempenho em discos rígidos

Para o funcionamento ideal, os discos rígidos dependem de vários fatores, entre eles: a quantidade
de operações de E/S, taxa de transferência, quantidade de bytes envolvidos na operação, além do sistema
operacional utilizado. Quando uma unidade de disco rígido está em operação, o disco gira de forma
constante em altas velocidades, de modo que, para realizar a leitura/gravação, a cabeça necessita ser
posicionada no início do setor e na trilha desejada.

115
Unidade I

O processo de seleção da trilha envolverá a movimentação da cabeça em um sistema de cabeça


móvel ou mesmo selecionando eletronicamente uma cabeça no sistema de cabeça fixa. Para sistemas de
cabeça móvel, o tempo gasto para o posicionamento da cabeça na trilha é conhecido como tempo
de busca ou seek time (STALLINGS, 2010). Após a trilha ser selecionada, o controlador de disco rígido
aguarda até que o setor escolhido esteja alinhado com a cabeça. Assim, o tempo gasto até que o início
do setor encontre a cabeça é conhecido como atraso rotacional ou latência rotacional. Além desses
tempos gastos para o alinhamento da cabeça na trilha, existe a soma do tempo de busca, quando
ocorre o atraso rotacional que será igual ao tempo de acesso, determinado pelo tempo gasto para
o posicionamento da cabeça na operação de leitura/gravação. Dessa forma, quando a cabeça já está
posicionada corretamente, a operação de leitura/gravação será realizada quando o setor se mover sob a
cabeça, realizando de fato a transferência dos dados, obtidos pelo tempo de transferência.

Em uma rede de computadores, por exemplo, existe uma técnica utilizada para a detecção da
posição rotacional dos discos, conhecida como RPS (Rotational Positional Sensing – sensor de posição
rotacional). Essa técnica é acionada quando o comando de busca é emitido, daí o canal é liberado para
tratar outras solicitações de E/S. Assim, quando a busca termina, o dispositivo determinará quando os
dados solicitados na operação estarão posicionados sob a cabeça do disco. À medida que o setor se
aproxima da cabeça, o dispositivo procura o caminho solicitado para que ocorra a comunicação com o
sistema. Se a unidade de controle estiver ocupada em outra operação de E/S, então uma nova tentativa
para realizar a conexão é solicitada, e, se houver falha, ainda assim o disco necessitará girar por mais
uma volta inteira antes de uma nova reconexão. Esse processo é conhecido como falha de RPS e é um
elemento que deverá ser somado à linha de tempo de transferência para o disco rígido, como mostra a
figura a seguir.
Espera pelo Espera Atraso Transferência
Busca
dispositivo pelo canal rotacional de dados

Dispositivo ocupado

Figura 100 – Temporização de transferência em discos rígidos

Fonte: Stallings (2010, p. 156).

O cálculo do tempo de transferência depende da velocidade de rotação dos discos rígidos e obedece
à expressão: T = b/rN, onde T é o tempo de transferência, b é o número de bytes a serem transferidos,
N é o número de bytes em uma trilha e r a velocidade de rotação dada em rpm, ou rotações por minuto.

Exemplo de aplicação

Calcule o tempo total em uma operação de transferência de dados onde o número de bytes a serem
transferidos é de 1.024 Mbytes, o número de bytes da trilha é de 512 bytes e a velocidade de rotação do
disco é de 7.200 rpm.

116
ARQUITETURA DE COMPUTADORES MODERNOS

Resolução

Calculando o tempo total T para a realização da transferência, a resposta seria: T = 1.024/7.200 * 512
→ 277,77 µs (microssegundos).

3.6 RAID em discos rígidos

Em 1988, David Patterson e outros pesquisadores sugeriram que seis tipos de organizações de
paralelismo específicas poderiam ser utilizados para a melhoria de desempenho e a confiabilidade do
armazenamento de dados nos discos rígidos magnéticos. As ideias de Patterson foram empregadas pela
indústria na fabricação dessa nova tecnologia para os dispositivos de E/S e ficaram conhecidas como
RAID (Redundant Array of Inexpensive Disks – arranjo redundante de discos baratos) (TANENBAUM;
AUSTIN, 2013).

Observação

O processamento realizado de forma paralela nos computadores pode


acelerar seu desempenho.

A ideia do sistema RAID envolve a instalação de uma caixa contendo vários discos rígidos, geralmente
próximos a um servidor, e substituição da placa controladora de disco por uma placa controladora
RAID. Dessa forma, de acordo com a configuração adotada, os discos rígidos, embora sendo muitos,
aparecerão como apenas um único disco para o sistema operacional. Outra propriedade importante no
sistema RAID se refere à distribuição dos dados pelos diferentes discos, a fim de permitir que a operação
ocorra em paralelo. Com essa finalidade, Patterson desenvolveu diferentes esquemas ou níveis que
ficaram conhecidos como RAID 0 até o nível RAID 5.

3.6.1 RAID 0

Embora tenha o nome de RAID e também faça parte do sistema de esquemas de redundância, o
RAID 0 não possuía redundância. Essa configuração consiste em dividir os discos em tiras (stripes),
distribuídos e intercalados (striped), o que auxilia no processo das solicitações de blocos de dados, que
estarão distribuídos pelos vários discos. Isso tornará o processo mais veloz, visto que a resposta para essa
solicitação será executada em paralelo por todos os discos envolvidos no processo.

Tira 0 Tira 1 Tira 2 Tira 3

Tira 4 Tira 5 Tira 6 Tira 7 RAID nível 0

Tira 8 Tira 9 Tira 10 Tira 11

Figura 101 – RAID 0

117
Unidade I

3.6.2 RAID 1

Essa configuração RAID consiste na implementação de redundância através da duplicação ou mesmo


triplicação de um determinado volume de dados em todos os discos, criando uma espécie de espelhamento,
conforme observa‑se na figura a seguir. Dessa forma, cada transação de leitura/gravação de dados em
um disco também ocorrerá nos outros definidos no espelhamento. É possível realizar a combinação dos
RAID 0 e RAID 1, garantindo maior rapidez e confiabilidade. O uso de um sistema combinado de RAIDs
geralmente é atribuído para servidores de arquivos ou grandes datacenters.

Tira 0 Tira 1 Tira 2 Tira 3 Tira 0 Tira 1 Tira 2 Tira 3


Tira 4 Tira 5 Tira 6 Tira 7 Tira 4 Tira 5 Tira 6 Tira 7 RAID nível 1

Tira 8 Tira 9 Tira 10 Tira 11 Tira 8 Tira 9 Tira 10 Tira 11

Figura 102 – RAID 1

3.6.3 RAID 2

Nesse sistema, o RAID incluirá um mecanismo para detecção de falhas como um código de correção
de erros. No processo de leitura/gravação dos discos, os dados solicitados e o código de correção de
erro associado serão entregues ao controlador do array. Se algum bit contiver erro, o controlador
poderá reconhecê‑lo e corrigi‑lo de forma instantânea, usando algum processo de paridade de bits
para a recuperação.

Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7


RAID nível 2

Figura 103 – RAID 2

3.6.4 RAID 3

Semelhantemente ao RAID 2, no RAID 3 os dados são divididos pelos vários discos rígidos, utilizando‑se
um disco adicional para a verificação de erros através do processo de paridade. O uso dessa técnica pode
garantir maior integridade dos dados quando houver a necessidade de recuperação.

Bit 1 Bit 2 Bit 3 Bit 4 Paridade


RAID nível 3

Figura 104 – RAID 3

118
ARQUITETURA DE COMPUTADORES MODERNOS

3.6.5 RAID 4

No esquema de RAID 4, os dados são divididos igualmente entre todos os discos, com exceção de
um, que é utilizado exclusivamente para inserir os dados necessários para realizar a paridade. A única
diferença do RAID 4 com os anteriores consiste no tamanho dos blocos de armazenamento, são maiores
do que do RAID 3, tornando o rendimento melhor no processo de leitura. Esse sistema é indicado para
utilização com arquivos de tamanho grande, quando é exigida uma maior integridade dos dados, pois a
cada operação de leitura é realizada a paridade dos dados, resultando também em maior confiabilidade.

Tira 0 Tira 1 Tira 2 Tira 3 P0-3


Tira 4 Tira 5 Tira 6 Tira 7 P4-7 RAID nível 4
Tira 8 Tira 9 Tira 10 Tira 11 P8-11

Figura 105 – RAID 4

3.6.6 RAID 5

No RAID 5 a paridade não se restringe a somente uma unidade de disco, como foi observado
no RAID 4, mas toda a matriz de discos tem a paridade distribuída. Nessa situação, o tempo de
gravação será menor, pois não será preciso acessar um único disco de paridade em cada operação
de leitura/escrita, mas sim acessar o disco que possui a paridade necessária para a recuperação de
dados em um processo específico.

Tira 0 Tira 1 Tira 2 Tira 3 P0-3


Tira 4 Tira 5 Tira 6 P4-7 Tira 7
Tira 8 Tira 9 P8-11 Tira 10 Tira 11 RAID nível 5
Tira 12 P12-15 Tira 13 Tira 14 Tira 15
P16-19 Tira 16 Tira 17 Tira 18 Tira 19

Figura 106 – RAID 5

Saiba mais

Aprenda mais sobre configurações de software e hardware dos


sistemas RAID em:

VIANA, A. L. S. Um pouco sobre RAID – configuração via software e via


hardware. DevMedia, 2012. Disponível em: https://bit.ly/3HglwfM. Acesso
em: 18 jan. 2023.

119
Unidade I

3.6.7 Memória virtual

Um conceito importante e muito usado em discos rígidos magnéticos é conhecido como memória
virtual. Essa técnica é utilizada porque, no geral, os computadores pessoais não possuem uma quantidade
elevada de memória RAM, tornando insuficiente a execução de algumas aplicações quem envolvem, por
exemplo, processamento gráfico, processamento de vídeo, programação de alto desempenho de dados,
entre outros.

Observação

A memória virtual tem como objetivo principal utilizar o disco como


uma extensão da memória principal, aumentando, assim, o espaço para o
endereçamento disponível da RAM.

Ao utilizar a memória virtual, a memória principal (RAM) possuirá uma área muito maior do que a
original para realizar o endereçamento. Essa área no disco rígido é reconhecida como um arquivo de
páginas, pois contém algumas porções da memória principal. Uma forma simples de entender como
funcionam as memórias virtuais é o conceito de posição imaginária da memória principal, endereçado
no disco rígido pelo sistema operacional. A memória virtual também é conhecida como páginas, o que
é uma maneira de dividir a memória em blocos com tamanhos fixos, dividindo também os programas
com blocos do mesmo tamanho. Alguns conceitos de memória virtual envolvem os seguintes termos:

• Endereço virtual: é o endereço lógico no programa que o processo utilizará. Dessa forma, sempre
que o processador gerar o endereço, ele estará relacionado ao espaço de endereçamento virtual.

• Endereço físico: é o endereço real na memória RAM.

• Mapeamento: é o mecanismo onde os endereços virtuais serão traduzidos para endereços físicos.

• Quadro de páginas: são pedaços ou blocos de mesmo tamanho em que a memória RAM é dividida.

• Páginas: são pedaços ou blocos onde a memória virtual é dividida, de modo que cada um desses
blocos possuem o mesmo tamanho que um quadro da página.

• Paginação: é o processo de copiar uma página virtual do disco para um quadro de página que
está na memória RAM.

• Fragmentação: é um pedaço da memória que se torna não utilizável.

• Falha de página: envolve um ou mais eventos que ocorrem quando a página que é solicitada não
está na memória RAM e deve ser copiada do disco rígido para ela.

120
ARQUITETURA DE COMPUTADORES MODERNOS

Como a memória RAM e a memória virtual são divididas em páginas de tamanhos iguais, algumas
partes do espaço de endereçamento dos processos podem ser movidos para a memória RAM e não
precisam ser armazenados de forma contígua.

Outro fator importante em termos de paginação são os registros utilizados para gravar as informações
das páginas, conhecidos como tabela de páginas. Dessa forma, cada processo armazenado possui sua
própria tabela, que irá armazenar sua posição física de cada página virtual do processo. Assim, uma
dessas tabelas possui N linhas, onde N será o número de páginas virtuais do processo.

3.7 Drive de estado sólido (SSD)

Da mesma forma que os HDs, os SSD (Solid State Drive) são memórias não voláteis e se apresentam
como uma alternativa de memória de alta velocidade. Melhor que as memórias do tipo RAM, o SSD é
constituído por várias células unitárias, cujo principal componente é o transistor. Os transistores são
dispositivos eletrônicos que possuem como uma das suas principais características a comutação, ou
seja, eles modificam o seu estado atual. Porém, ao comutarem, eles se desgastam, chegando a um ponto
de não funcionarem mais, o que é conhecido como falha de um transistor. Essa falha também pode ser
explicada como uma injeção de portadora, que ocorre quando uma carga elétrica é colocada dentro do
transistor, alterando o seu estado anterior e tornando‑o permanentemente ligado ou desligado. E foi
assim que a empresa Toshiba, na década de 1980, viu que era possível aproveitar essa falha para criar
um mecanismo de memória não volátil, a memória flash (TANANBAUM; AUSTIN, 2013).

Figura 107 – Drive de estado sólido

Disponível em: https://bit.ly/3Hh4Bd5. Acesso em: 19 jan. 2023.

Diferentemente dos discos rígidos magnéticos, que possuem tanto parte elétrica quanto mecânicas,
as memórias SSD têm um desempenho superior, visto que são basicamente dispositivos inteiramente
eletrônicos, sem peças mecânicas. Outra grande vantagem do SSD é a sua utilização em dispositivos
móveis, como notebooks, a fim de evitar trepidações ou movimentos bruscos, que dificilmente irão
impactar o seu correto funcionamento.
121
Unidade I

Conforme pode ser observado na figura a seguir, uma célula de memória flash é composta de um
transistor especial. Nele há uma espécie de porta flutuante que é carregada e descarregada (eletricamente)
através do uso de voltagens maiores do que os 5 volts convencionais, em se tratando de dispositivos
para computadores.
Tensão de programação
12V

Porta de controle
Isolador Carga negativa
interceptada
Porta flutuante
Isolador

Ponta de teste Origem Canal Dreno

Semicondutor

Terra

Figura 108 – Célula de memória do tipo flash

Fonte: Tanenbaum e Austin (2013, p. 77).

Antes de a célula unitária flash ser programada, o que corresponde à aplicação da carga elétrica, a
porta flutuante não afetará a operação do transistor, de modo que ela continuará atuando como um
isolador entre a porta de controle e o canal, tornando‑o apenas um transistor simples. A referida alta
tensão é baseada em 12 volts e aplicada na porta de controle, que irá acelerar o processo referido de
injeção de portadora na porta flutuante. A carga elétrica inserida na porta flutuante tornará o transistor
flash negativamente carregado, aumentando, assim, a tensão necessária para que ele seja ligado. Uma
atenção mais baixa do que 12 volts será exigida para determinar se a porta flutuante está ou não
carregada, o que resultará em um valor que será codificado como bits 0 ou 1. Dessa forma, uma das
principais vantagens das memórias SSD constitui que, uma vez que a carga é inserida na célula unitária,
ela irá permanecer estável, mesmo que não haja alimentação elétrica, tornando‑a não volátil.

Em relação à velocidade, os dispositivos SSD podem operar duas ou mesmo três vezes mais rápido
do que um disco rígido convencional, que possui acesso a dados em até 100 MB/s. Logicamente, não há
somente vantagens nesse tipo de dispositivo, podendo‑se destacar a sua alta taxa de falha. Essas falhas
ocorrem geralmente porque uma célula flash unitária tipicamente pode ser escrita aproximadamente
cem mil vezes até que ela deixe de funcionar corretamente. Isso quer dizer que o processo de injetar
elétrons danifica a célula aos poucos, assim como os isolantes que estão ao seu redor. Algumas técnicas
para aumentar o tempo de vida dos dispositivos SSD são usadas atualmente. Uma delas é conhecida
como nivelamento de desgaste, sendo empregada a fim de espalhar as escritas por todas as células flash,
não tornando algum ou alguns pontos viciados. Dessa forma, todas as vezes que um bloco precisa ser
escrito, há uma distribuição homogênea por ele, ou mesmo a busca por blocos que não foram escritos
no processo anterior.
122
ARQUITETURA DE COMPUTADORES MODERNOS

Ao utilizar o nivelamento de desgaste, um drive SSD poderá suportar uma quantidade de escritas
que será igual ao número de escritas que uma célula poderia sustentar multiplicado pelo número de
blocos no drive.

3.8 Discos ópticos

Desenvolvidos em meados dos anos 1980 pelas empresas Philips e Sony, os discos ópticos eram
inicialmente utilizados para gravar em programas de televisão e, na sequência, devido a sua grande
capacidade de armazenamento para a época, também passaram a ser usados no armazenamento de
dados de computadores. Entretanto, sua popularidade ocorreu na gravação de músicas, substituindo os
discos de vinil. Entre as variedades desses discos ópticos podem ser citados: CD‑ROM, CDs regraváveis,
DVDs e blu‑rays.

3.8.1 CD‑ROM

Os Compact Discs (CDs) possuem, no geral, 120 mm de diâmetro, 1,2 mm de espessura e um orifício de
15 mm em sua área central, como mostra a figura a seguir. No ato de sua fabricação, um CD é preparado
com o uso de um laser infravermelho de alta potência que produz orifícios com 0,8 micrômetros de
diâmetro em um disco mestre que é revestido de vidro. A partir desse disco mestre será fabricado um
molde com saliências onde estavam originalmente os orifícios produzidos pelo laser.

Figura 109 – Mídias de CD‑ROM

Disponível em: https://bit.ly/3GVu1LR. Acesso em: 19 jan. 2023.

No ato de sua fabricação, um CD é preparado através da utilização de um laser infravermelho


de alta potência, que produz orifícios com 0,8 micrômetros de diâmetro em um disco mestre, que é
revestido de vidro. A partir desse disco mestre será fabricado um molde com saliências onde estavam
originalmente os orifícios produzidos pelo laser. Nesse processo de preparação é introduzido o
policarbonato, uma espécie de plástico fundido no molde, a fim de formar um CD com o mesmo
padrão de orifícios do mestre. Logo após, é depositada uma camada fina de alumínio refletivo sobre a
camada já depositada anteriormente de policarbonato, produzindo assim um verniz de proteção. Por
fim, insere‑se uma etiqueta com a nomenclatura da finalidade daquele CD, sendo as possibilidades
123
Unidade I

diversas, como gravar músicas ou dados. Essas marcas inseridas no substrato de policarbonato são
conhecidas tecnicamente como depressões ou pits, do inglês, e as áreas que estão posicionadas entre
as depressões são conhecidas como planos, lands, como exemplificado na figura a seguir.
Sulco em espiral

Depressão
Plano

Bloco de 2 k de
dados de usuário

Figura 110 – Estrutura de gravação em CD‑ROM

Fonte: Tanenbaum e Austin (2013, p. 79).

O processo de leitura do CD‑ROM (Compact Disk Read Only Memory) ocorre quando um diodo
laser de baixa potência emite uma luz infravermelha com comprimento de onda de 780 nm sobre as
depressões e planos que estão no disco, realizando a leitura dos dados contidos naquele local por onde
a luz passa. Devido à altura das depressões, correspondente a um quarto do comprimento de onda da
luz do laser, a luz refletida na depressão terá uma defasagem de meio comprimento de onda em relação
à que é refletida na superfície que a circunda. O resultado disso é que as duas partes irão interferir
umas com as outras de forma destrutiva, o que envolverá a devolução de menos luz ao fotodetector
do aparelho de reprodução de luz que reflete. É exatamente dessa forma que um aparelho interpreta
a diferença entre uma depressão e um plano, que envolverá justamente a leitura dos bits 0 e 1.

Embora possa parecer muito mais simples interpretar uma depressão como sendo um bit zero e o
plano como sendo o bit 1, é muito mais confiável utilizar uma transição entre a depressão e o plano ou
o plano, e a depressão para representar o bit 1 é a sua ausência para indicar o bit zero. É exatamente
dessa forma que os bits 0 e 1 são interpretados em um CD‑ROM, como mostra o esquema da figura 111.
As depressões em planos são escritas no CD‑ROM em uma espiral única e contínua que começa próxima
ao orifício central e se estende até uma distância de 32 mm em direção a sua borda. Uma espiral conterá
22.188 rotações ao redor do disco, o que daria cerca de 600 mm.

Para que uma música seja tocada em um CD‑ROM e haja uma taxa uniforme, é necessário que os
planos e as depressões passem sob a luz a uma velocidade linear e constante. Como consequência, a
taxa de rotação deve ser reduzida de forma contínua à medida que a cabeça de leitura do dispositivo se

124
ARQUITETURA DE COMPUTADORES MODERNOS

move, desde a parte interna até a parte externa do CD‑ROM. A parte interna do disco geralmente possui
uma taxa de rotação de 530 rpm, enquanto a taxa na parte mais externa é de 200 rpm. Essa variação na
velocidade deve ser regulada da mesma maneira que ocorre nos discos rígidos magnéticos que possuem
um sistema de velocidade angular constante.

Em relação a sua organização de dados, os dispositivos de CD‑ROM operam com 75 setores/s,


o que dá uma taxa de dados de 153.600 bps. Um CD‑ROM padrão de áudio possui um espaço de
74 minutos de música; se usado para dados, possui aproximadamente uma capacidade de 682.000 bits, o
que geralmente é arredondado para 650 MB, pois um MB será igual a 220 bytes, ou seja, 1.048.576 bytes.

3.8.2 DVD

Devido à grande demanda no aumento da capacidade de gravação de dados em CDs, em meados


da década de 1990 foi desenvolvida uma variação dessa mídia para que ela tivesse a capacidade de
armazenar não somente músicas como também filmes. Com essa demanda, surgiu o DVD (Digital Vídeo
Disc), hoje também conhecido como Digital Versatile Disc. Os DVDs possuem o mesmo desenho dos CDs,
porém com algumas novidades:

• depressões com tamanhos reduzidos de 400 nm;

• espirais mais estreitas, com uma separação entre trilhas de 740 nm;

• leitura de gravação utilizando um laser de 650 nm.

Além dessas melhorias, que ocasionaram um aumento na capacidade em 7 vezes, chegando a um


total de 4,7 GB, um dispositivo DVD funciona com diferentes velocidades. A velocidade de transferência
do DVD 1x possui 1,4 KB/s e pode alcançar velocidades 4x (5400 KB/s) ou maiores. Assim como os
CDs de maiores capacidades, os DVDs podem gravar em ambas as faces de sua mídia, chegando à
capacidade de armazenamento:

• uma face, uma camada com 4,7 GB;

• uma face, duas camadas totalizando 8,5 GB;

• duas faces, uma camada totalizando 9,4 GB;

• duas faces, duas camadas totalizando 17 GB.

3.8.3 Blu‑ray

Em sucessão ao DVD, surgiu o blu‑ray, assim chamado devido à frequência de luz na faixa do laser
azul utilizado para leitura dos dados gravados. A frequência azul aplicada possui um comprimento
de onda menor e uma frequência maior, o que obriga no ato da leitura que as depressões e os planos
também sejam menores. Dessa forma, com mais depressões e planos na mídia, é possível armazenar
125
Unidade I

muito mais dados. A figura a seguir mostra, de forma resumida, um comparativo entre as principais
mídias óticas apresentadas, incluindo a variação das depressões e regiões planas, que influenciarão na
quantidade de dados gravados.

CD DVD HD DVD Blu-ray


I=800 nm I=400 nm I=200 nm I=150 nm
w= w= w= w=
600 nm 320 nm 200 nm 130 nm
p= p= p= p=
16 µm 740 nm 400 nm 320 nm
ø= ø= ø= ø=
16 µm 11 µm 620 nm 480 nm

λ=780 nm λ=650 nm λ=405 nm λ=405 nm


0.1 mm
0.6 mm 0.6 mm 1.1 mm
11 mm 0.6 mm 0.6 mm
0.1 mm

Figura 111 – Variações entre os tamanhos das depressões e planos em função da luz laser inserida

Disponível em: https://bit.ly/3QWnW6t. Acesso em: 19 jan. 2023.

Saiba mais

Conheça mais sobre os últimos avanços em discos ópticos em:

CRIADO disco óptico que armazena dados em cinco dimensões.


Inovação Tecnológica, 2009. Disponível em: https://bit.ly/3GS7QGh. Acesso
em: 18 jan. 2023.

3.9 Disquetes

Também conhecidos como floppy disk drivers (FDD), os disquetes possuem características
semelhantes ao disco rígido, embora com menor capacidade de armazenamento. A grande diferença
entre esses dispositivos está na velocidade de acesso, capacidade de armazenamento, tempo de
transferência de dados e, principalmente, a sua portabilidade, ou seja, disquetes são muito mais simples
de serem removidos do que os discos rígidos.

126
ARQUITETURA DE COMPUTADORES MODERNOS

Figura 112 – Disquete

Disponível em: https://bit.ly/3XLHsom. Acesso em: 19 jan. 2023.

Observação

Os disquetes foram desenvolvidos na década de 1960 como uma


alternativa mais simples e barata do que os discos rígidos.

Devido a sua facilidade e usabilidade, os disquetes se tornaram muito populares entre usuários
tanto domésticos quanto empresariais. Esse processo ocorreu junto com o avanço dos computadores
pessoais. As informações são gravadas de forma idêntica aos discos rígidos. Em trilhas, esses setores
estão posicionados na superfície do disco magnetizável. Para que seja acionado o disquete em um
computador, há um mecanismo que realiza a leitura ou gravação para cada superfície. Comumente,
um computador possui um drive para acionar o disquete. Esse drive contém um sistema eletromecânico
que irá acessar as trilhas entre setores dos disquetes. No geral, os usuários desse dispositivo dispunham
de alguns modelos diferentes oferecidos conforme três fatores principais:

• capacidade total de armazenamento;

• taxa de transferência de bits;

• tempo médio para acesso ao dispositivo.

Em relação à taxa de transferência dos disquetes, logicamente não se compara com as dos discos
rígidos magnéticos, que podem alcançar taxas de transferência na ordem de MB/s, enquanto em
disquetes essa taxa não chega a centenas de KB/s.
127
Unidade I

3.10 Fitas magnéticas

Desenvolvidas em meados dos anos 1950, elas foram muito utilizadas como dispositivos para
armazenamento de dados e instruções, visto que no início da computação os modos de realizar a leitura
e a gravação de dados era um processo um tanto quanto lento, pois se baseavam no uso de cartões
perfurados. O princípio de funcionamento das fitas magnéticas é bastante semelhante ao processo
de leitura e gravação de fitas aplicadas em dispositivos de som. Eles usam de dois carretéis de fita
que se desenrolam de um lado para o outro, de maneira que a fita passará por um par de leitura ou
gravação em velocidades constantes. A figura a seguir mostra um dispositivo de fita magnética usada
em computadores como mainframes na década de 1980.

Figura 113 – Rolo de fita magnética

Disponível em: https://bit.ly/3QWIs7e. Acesso em: 19 jan. 2023.

Diferentemente do tipo de acesso à memória que ocorre em dispositivos como discos rígidos
magnéticos ou memória RAM, o acesso aos dados contidos na fita magnética é realizado apenas
sequencialmente, ou seja, cada informação é armazenada uma após a outra e a sua leitura é executada
também num processo sequencial. Dessa forma, a localização do registro desejado na operação de
leitura começará a partir do início da fita, variando registro a registro, até que se identifique o registro
desejado, como corre numa fita cassete.

A fita magnética é constituída por uma tira contínua de um material plástico que é coberto com
alguns elementos magnetizáveis, onde os bits serão gravados. Dessa forma, os bits gravados em um
certo sentido de magnetização irão representar o bit 0, enquanto em outro sentido magnetizável irão
indicar o bit 1. As posições nas trilhas são magnetizáveis quando esses campos são preenchidos pela
passagem de corrente elétrica em uma bobina que está presente na cabeça de gravação. A figura a
seguir mostra como exemplo um trecho de uma fita magnética em que é possível observar os bits
indicados em linhas paralelas.
128
ARQUITETURA DE COMPUTADORES MODERNOS

0123456789ABCDEFMNY$/%*
9 4
8 6
7 0
6 1
Trilhas 5 2 Posições dos bits
4 P*
3 3
2 7
1 5
* A posição P do bit se refere ao bit de paridade

Coluna

Figura 114 – Organização de linhas e colunas em diferentes trilhas de uma fita magnética

Fonte: Monteiro (2019, p. 319).

Os dados armazenados em canais paralelos, conhecidos como trilhas, percorrem toda a fita magnética.
A quantidade de trilhas pode variar entre 7 ou 9, embora fitas com 7 trilhas já estejam obsoletas há
muitas décadas, de modo que somente as com 9 trilhas continuam a ser fabricadas. Cada caractere é
armazenado verticalmente, um bit a cada trilha, adicionando‑se um bit de verificação de paridade, o
que irá completar as 9 trilhas necessárias.

Entre as características das fitas magnéticas, uma das mais interessantes é a respeito do seu sistema
de transporte de unidades de fita, que consiste no processo de parada e partida das rotações dos carretéis.
Entre as colunas da fita magnética é obtida a gravação, que pode variar de acordo com a velocidade de
passagem da fita, podendo demonstrar que uma das principais características referentes ao desempenho
das unidades da fita está relacionada a sua densidade. Em geral, fitas magnéticas possuem densidades
de 800 caracteres por polegadas ou BPI (bytes per inch), chegando até mesmo em densidades de
6.250 caracteres por polegada. Devido à implementação de dispositivos com maior desempenho e velocidade
para gravação de dados, como DVD e blu‑ray, as fitas magnéticas caíram em desuso, principalmente, para
usuários domésticos, ficando restritas em grandes data centers, como dispositivos de backup.

Além dessas características, as fitas magnéticas possuem algumas marcas de ações para o controle
da gravação de dados, por exemplo, uma marca refletora no seu início e no final do carretel, para
impedir que a fita ultrapasse os limites e ocorra algum dano a ela.

Saiba mais

Aprenda mais sobre as novas tendências de armazenamento de dados


ultrarrápidos em:

ULTRAMAGNETRON: gravação magnética à velocidade da luz. Inovação


Tecnológica, 2014. Disponível em: https://bit.ly/3WmtKat. Acesso em: 19 jan. 2023.

129
Unidade I

4 COMPUTADOR E SEUS BARRAMENTOS E TIPOS DE TRANSMISSÃO DE


DADOS

4.1 Barramentos do computador

Tecnicamente, barramento é definido como um fio (ou vários fios) de cobre que tem como função
realizar um “caminho” para que a corrente elétrica possa fluir entre vários dispositivos internos ou
externos ao computador, como pode ser observado na placa de circuitos impressos da figura a seguir.

Figura 115 – Configuração de fios de cobre em um barramento da placa‑mãe

Disponível em: https://bit.ly/3J12mf2. Acesso em: 19 jan. 2023.

Observação

Os barramentos geralmente possuem diferenças que variam de acordo


com sua finalidade, como para o transporte de dados entre a ULA e a UC,
ou entre a CPU e a memória principal, ou mesmo entre outros dispositivos
de E/S como disco rígido, CD, DVD, pen drive etc.

Os primeiros computadores pessoais possuíam um barramento externo, conhecido também


como barramento do sistema, que consistia em 50 a 100 fios de cobre alocados em paralelo dentro
da placa‑mãe. Esses fios também eram formados por conectores com intervalos de distanciamento
regulares ligados à memória principal e outras placas de E/S como conexões de rede, impressora etc.
(TANENBAUM; AUSTIN, 2013).
130
ARQUITETURA DE COMPUTADORES MODERNOS

Em alguns diagramas, o barramento sempre é representado por setas largas e sombreadas. A distinção
entre as setas e uma linha reta apenas cortada por um pequeno segmento de reta inclinada com valores
de bits é quase imperceptível. Quando os bits de dados ou endereços, por exemplo, são utilizados na
figura, comumente são representados por um segmento de reta diagonal. Entretanto, para bits de
controle, usam‑se geralmente setas mais largas e sombreadas, como esquematizado na figura a seguir.
Chip de CPU
Barramentos Barramento
Registradores de memória
Controlador Memória
de barramento

Barramento de E/S
ULA

Barramento no chip Disco Rede Impressora

Figura 116 – Organização interna de um computador e seus barramentos

Fonte: Tanenbaum e Austin (2013, p. 148).

Os barramentos devem possuir um certo padrão. Para tal, os projetistas de computação devem
seguir um protocolo de barramentos, que irá determinar especificações mecânicas (tensões mecânicas)
e elétricas (temporização, largura de banda) na fabricação das placas. Existem variedades de barramentos
para uso em computadores, entre os mais conhecidos estão: Omnibus (PDP‑8), Unibus (PDP‑11),
Multibus (8086), barramento IBM PC (PC/XT), barramento ISA (PC/AT), barramento SCSI. Outra
característica de funcionamento dos barramentos está relacionada à transferência ativa ou passiva de
dados/instruções: os ativos são conhecidos como mestres; os passivos, escravos.

Quando o processador ordena que uma controladora de discos realize o processo de leitura ou escrita
de um bloco de palavras, a CPU está agindo como um mestre e o dispositivo que atua obedecendo à
operação como um escravo. Os sinais em binário, emitidos pelos dispositivos do computador, geralmente
são fracos e não conseguem energizar o barramento, principalmente se ele for relativamente longo e
com muitos dispositivos conectados nele. Assim, a maioria dos barramentos mestres estão conectados
por um chip denominado controlador de barramento, que opera como um amplificador digital de
sinais elétricos. De forma semelhante, os dispositivos que operam como escravos estão conectados em
um chip denominado transceptor de barramento. As interfaces de barramento possuem três estados
diferentes, que permitem que se desconectem quando for necessário ou então se conectem (coletor
aberto) (TANENBAUM; AUSTIN, 2013).

131
Unidade I

4.2 Largura de barramento

A largura do barramento também é um parâmetro que deve ser considerado no projeto de um


computador ou mesmo de um dispositivo móvel. Quanto mais linhas de endereços houver no barramento,
mais capacidade de memória cache ou memória principal e processador poderão ser endereçadas de
forma direta. Portanto, se um barramento possuir n linhas de endereços, então a CPU poderá utilizá‑la
para endereçar 2n localizações diferentes na memória.

Em memórias de grande capacidade, os barramentos exigem muitas linhas de endereços. O problema


é que barramentos muito largos necessitam, obrigatoriamente, de mais espaço físico, mesmo utilizando
fios estreitos, além de precisar de conectores maiores. Esses fatores podem encarecer o barramento,
obrigando os fabricantes a produzir tipos que levem em consideração o tamanho máximo de memória a
ser usada a um barramento específico. Um sistema usando barramento de endereçamento de 64 linhas
e 232 bytes de memória principal irá custar mais do que um com 32 linhas e os mesmos 232 bytes.
O computador IBM PC com processador Intel 8088, esquematizado na parte A da figura a seguir possuía
um barramento de endereços de 20 bits que possibilitavam o endereçamento de 1 MB de memória.
Endereço de 20 bits
Endereço de 20 bits

Endereço de 20 bits Controle


Controle Endereço de 4 bits
8088 80286 80386
Controle Endereço de 4 bits Controle
Endereço de 8 bits
Controle
Controle
(a) (b) (c)

Figura 117 – Barramento de endereço e controle no processador


Intel 8088 (A), no Intel 80286 (B) e no Intel 80386 (C)

Fonte: Tanenbaum e Austin (2013, p. 148).

A partir da evolução do 8088, a Intel lançou o 80286 e decidiu aumentar o espaço de endereçamento
para 16 MB, de modo que foi necessário adicionar mais quatro linhas de barramento sem alterar as vinte
linhas originais para facilitar a compatibilidade, conforme a parte B da figura anterior. Já no lançamento
do Intel 80386, oito linhas de endereço precisaram ser adicionadas, além de outras linhas de controle,
originando o barramento conhecido como EISA, como ilustra a parte C da figura anterior.

Observação

Nos projetos dos dispositivos digitais atuais, não são apenas o número
de linhas de endereços que tendem a crescer, mas também o número de
linhas para transmissão de dados.
132
ARQUITETURA DE COMPUTADORES MODERNOS

Segundo Tanenbaum e Austin (2013), existem dois modos básicos para aumentar a largura de banda
para transmissão de dados no barramento:

• redução do tempo para realizar a transmissão de dados, o que implicaria mais transferências
por segundo.

• aumento da largura de dados, possibilitando mais bits em cada transferência.

Dessa forma, aumentar a aceleração do barramento também é possível, porém difícil, pois os sinais
geralmente trafegam com diferentes velocidades no barramento, problema conhecido na literatura
como atraso diferencial do barramento. Esse atraso pode complicar a evolução dele, pois quanto mais
rápido for o barramento, mais provável e sério será o atraso diferencial. Outro problema relacionado ao
barramento está associado à compatibilidade da aceleração. Placas e circuitos impressos mais antigos
foram projetados para barramentos mais lentos e podem não funcionar com um novo. Para contornar
um problema desses, os projetistas de computadores optam por usar um barramento multiplexado,
assim, em vez de linhas de endereços e dados separados, podem ser anexadas 32 linhas de endereços
e dados juntos. Então, inicialmente, pode‑se utilizar o barramento somente para endereços e depois
somente para dados. Os barramentos ainda podem ser divididos em duas categorias: síncronos ou
assíncronos, de acordo com sua dependência do clock.

4.3 Barramentos síncronos

Possuem uma linha controlada por um oscilador de cristal, responsável pelo sinal de clock, que
consiste em uma onda quadrada gerada a partir de um sinal analógico, que tem frequências geralmente
entre 5 MHz e 133 MHz.

Cr
qu istal
art de
zo

C
de onv
pa na ersã
a
ra lóg o
dig ic
ita o
l

Figura 118 – Geração de um sinal de clock e sua conversão analógica/digital

Fonte: Stallings (2010, p. 39).

133
Unidade I

Utilizando um barramento síncrono, considere o diagrama temporal da figura a seguir para melhor
compreensão dos sinais de clock. Nesse exemplo, aplica‑se um clock de 100 MHz, resultando em um
ciclo de barramento de 10 nanossegundos, e tem‑se as linhas de clock, ADDREES, DATA, MREQ, RD e
WAIT, e representadas na mesma escala de tempo.
Ciclo de leitura com
1 estado de espera
T1 T2 T3

Φ TAD

ADDRESS Endereço de memória a ser lido


TDS
DATA Dados
TM TMH
MREQ
TML

TRH
RD

TRL TDH
WAIT

Tempo

Figura 119 – Temporização de leitura em um barramento síncrono

Fonte: Tanenbaum e Austin (2013, p. 152).

Usando esse barramento, leva‑se 15 nanossegundos (15x10‑9 segundos) para que um endereço
seja lido na memória. No geral, essa leitura ocorre durante três ciclos de barramento; o primeiro ciclo
começa na borda ascendente de T1 e o terceiro ciclo termina na borda ascendente de T4. No exemplo da
figura anterior, nenhuma das bordas ascendentes ou descendentes foi colocada na linha vertical, pois
nenhum sinal elétrico poderá trocar seu valor no tempo zero, de modo que se pode admitir que se leva
1 nanossegundo para o sinal mudar. O início de T1 é definido através da borda ascendente do clock, e
no meio do caminho de T1 o processador insere o endereço da palavra desejada nas linhas de endereço.
O endereço não é constituído de um único valor e é mostrado na figura como duas linhas que se cruzam
no instante da mudança de endereço. Assim, é possível observar que o conteúdo das linhas de dados não
é significativo até grande parte de T3. Após as linhas de endereços acomodarem seus novos valores, eles
são ativados. No primeiro, indica‑se que está sendo ativada (bit 0) a memória, e não uma comunicação
de E/S, e o segundo é ativado (bit 0) para leitura e negado (bit 1) para realização da operação de escrita.
Dessa forma, como a memória leva cerca de 15 nanossegundos após o endereço ficar estável, ela não
poderá entregar os dados requisitados durante o tempo T2.

134
ARQUITETURA DE COMPUTADORES MODERNOS

4.4 Barramentos assíncronos

Os barramentos assíncronos não possuem um clock mestre e, embora sejam fáceis para trabalhar
devido a seus intervalos discretos de tempo, eles possuem alguns problemas. Por exemplo, como
os ciclos de clock não podem ser fracionados, ainda que o processador e a memória realizem uma
transferência de dados em 3,1 ciclos, eles deverão ser prolongados até 4,0. Outro problema também
relacionado com os ciclos de leitura/escrita é que barramentos construídos especificamente para esse tipo
de comunicação dificilmente são aproveitados em avanços de tecnologia. Nos barramentos assíncronos,
como o da figura a seguir, em vez de vincular todas as operações ao clock, quando o mestre quando o
mestre ativar o endereço MREQ e RD na sequência, ele ativa um sinal especial denominado MSYN ou
master synchronization. Dessa forma, quando o escravo verifica o sinal, ele irá realizar o trabalho de
forma mais rápida, concluindo a fase ativando o SSYN ou slave synchronization. Em resumo:

• MSYN é ativado.

• SSYN é ativado em resposta MSYN.

• MSYN é negado em resposta a SSYN.

• SSYN é negado em resposta à negação de MSYN.

Observe a operação de um barramento assíncroo:


Operação de um barramento assíncrono

ADDRESS Endereço de memória a ser lido

MREQ

RD

MSYN

DATA Dados

SSYN

Figura 120 – Temporização de leitura em um barramento assíncrono

Fonte: Tanenbaum e Austin (2013, p. 154).

135
Unidade I

4.5 Barramento ISA

O ISA (Industry Standard Architecture) foi um dos tipos mais utilizados nos anos 1980/1990. Ele
foi desenvolvido para funcionar em computadores pessoais IBM PC/AT, equipados com processadores
Intel 80286 e era uma estrutura típica de 8 bits, projetada para substituir o padrão já ultrapassado
VESA (Video Electronics Standards Association). Orginalmente, o padrão ISA operava em frequência de
4,77 MHz, mas que logo foi substituído por uma frequência mais alta de 8,33 com o lançamento dos
modelos de computadores PC/XT de 16 bits. O padrão ISA era dividido em duas partes: a primeira tinha
pinos usados por placas que suportavam apenas 8 bits; a segunda tinha a capacidade de extensão para
adicionar pinos extras. Outra característica do ISA é a grande quantidade de contatos elétricos, que
chegam a 98, como mostra a figura a seguir: há somente 16 trilhas para dados, e o restante delas é
usado para realizar o endereçamento. Se comparada com os barramentos atuais, o ISA é considerado
muito lento para operações que envolvem processamento de alto desempenho, como os da placa‑mãe
do computador, porém esse tipo ainda é usado, principalmente, pela facilidade de operação, e muitos
desenvolvedores na área de automação industrial ou robótica ainda utilizam esse padrão.
SHB Slot
PCI-X Slots PCI Slots X8 PCI-E Slot
ISA Slots X16 PCI-E Slot

USB Connectors

Etherbet
Connectors

ATX Power in

AUX Power in
ISA Bridge
PCI-X Bridge

Figura 121 – Diversos padrões de barramentos, entre eles o padrão PCI, ISA, PCI express

Disponível em: https://bit.ly/3Xqyc9s. Acesso em: 19 jan. 2023.

136
ARQUITETURA DE COMPUTADORES MODERNOS

4.6 Barramento PCI

O PCI (Peripheral Interconnect Bus – barramento de interconexão de componente periférico) foi


desenvolvido em 1990 para substituir o já ultrapassado EISA (Extended Industry Standard Architecture).
Originalmente, o PCI possuía a capacidade de transferir 32 bits por ciclo, barramento compatível a um
clock de 33 MHz e largura de banda de 133 MB/s. Em 1993 foi lançada a segunda versão do padrão
PCI (PCI 2.0), em 1995, o PCI 2.1. O tipo PCI tem capacidade de funcionamento em uma frequência até
66 MHz, manipulando transferências em 64 bits a uma largura de banda total, atingindo 528 MB/s.
Devido a essa taxa elevada de transferência de dados/instruções, foi possível melhorar o desempenho
nas transmissões de áudio, principalmente, de vídeo em alta qualidade.

Figura 122 – Barramento PCI

Disponível em: https://bit.ly/3J2uOxo. Acesso em: 19 jan. 2023.

A melhora do padrão PCI se deve a dois chips da Intel, que trabalham como uma espécie de ponte que
conecta o PCI ao processador, à memória principal e ao restante do barramento. O PCI foi desenvolvido
para operar em 32 bits ou 64 bits, de modo que o padrão 64 bits pode comportar o funcionamento em
32 bits, mas o contrário não é possível. Além disso, o padrão PCI também suporta operar em 5 volts e
3,3 volts, como os barramentos mais modernos.

4.7 Barramento AGP

No final dos anos 1990, o barramento padrão ISA estava praticamente inutilizado, portanto novos
projetos, além do aprimoramento do padrão PCI, estavam em desenvolvimento. A Intel desenvolveu um
novo tipo para comandar a placa gráfica, denominado AGP (Accelerated Graphics Port Bus – barramento

137
Unidade I

de porta gráfica acelerada), como mostra a figura a seguir. A primeira versão do AGP foi a 1.0, que
funcionava a uma largura de banda de 264 MB/s, e ficou conhecida como 1x. Embora um pouco mais
lento do que o já existente PCI, ele era capaz de controlar de forma eficiente a placa gráfica.

Figura 123 – Barramento do tipo AGP

Disponível em: https://bit.ly/3CXCixS. Acesso em: 19 jan. 2023.

4.8 Barramento PCI Express

O barramento AGP foi superado, em desempenho, por um novo tipo, denominado PCI Express, que
possui a incrível capacidade de largura de banda de 16 GB/s de dados por enlaces de barramento serial
de alta velocidade.

Figura 124 – Barramento do tipo PCI express

Disponível em: https://bit.ly/3XK8cWA. Acesso em: 19 jan. 2023.

138
ARQUITETURA DE COMPUTADORES MODERNOS

Uma das novas implementações da tecnologia PCI Express, ou simplesmente PCIe, é eliminar o
barramento paralelo, constituído de muitos mestres e escravos, e usar um projeto baseado em conexões
seriais ponto a ponto de alto desempenho. Essa solução apresenta uma transição radical na tradição do
barramento ISA/EISA/PCI e se pauta em algumas ideias do universo de redes Ethernet comutada. A ideia
se fundamenta em uma estrutura com um computador constituído de um conjunto de chips, memória
e controladores de E/S que necessitam ser interconectados. O PCIe irá fornecer um sistema comutador
de uso geral para conectar os chips usando ligações seriais, como ilustra o esquema da figura a seguir.
Sistema PCI Express típico

Cache de CPU CHIP ponte Memória


nível 2

Computador Ligações seriais


em pares

Gráficos Disco Rede USB 2 Outro

Figura 125 – Sistema de barramento PCIe

Fonte: Tanenbaum e Austin (2013, p. 177).

Como mostrado na figura anterior, o processador, a memória e a cache estão conectadas a um chip
através de ligações seriais em pares. Cada conexão é constituída por um par de canais unidirecionais – um
liga o comutador e o outro é oriundo dele. Cada canal de transmissão é formado por dois fios de
barramento, um para o sinal e outro para o aterramento, para diminuir alguma possibilidade de ruído
durante a transmissão de alta velocidade. A arquitetura PCIe também possui três pontos de diferenças
em relação ao barramento PCI antigo, um deles é o comutador centralizado e o outro é o uso de
conexões seriais ponto a ponto estreitas. A terceira diferença é um pouco mais sutil, envolve um
modelo conceitual de mestre de barramento encontrado no PCI, que emite um comando a um escravo
que envia um pacote de dados a um outro dispositivo. Assim, é comum se referir ao barramento PCIe
como uma miniatura de rede de comunicação de comutação de pacotes.

4.9 Barramento serial universal USB

Os barramentos PCI e PCIe são muito eficientes e rápidos ao anexar dispositivos de alto desempenho,
mas são muito caros para ser empregados em dispositivos de E/S, que operam a baixa velocidade. Além
da questão do custo, alguns barramentos como ISA têm a necessidade de que sejam adaptados alguns
comutadores e pontes na placa, para assegurar que o barramento terá êxito de execução em versões
mais recentes e para que nenhum ajuste adicional seja preciso.

139
Unidade I

Observação

Para resolver todas as pendências relacionadas ao desempenho, em


1993 sete empresas do ramo da tecnologia (Compaq, DEC, IBM, Intel,
Microsoft, NEC e Northern Telecom) se juntaram para buscar uma solução
de unificação para a anexação de uma gama variada de dispositivos de E/S.

Esse padrão resultante da pesquisa em conjunto das empresas envolvidas foi lançado em 1998 e ficou
conhecido como USB (Universal Serial Bus – barramento serial universal), e desde então é amplamente
utilizado em computadores, celulares, tablets, smart TVs e sistemas embarcados em geral (TANENBAUM;
AUSTIN, 2013). Ao se juntarem, as sete empresas tomaram como primordial na elaboração do projeto as
seguintes características:

• Os usuários não necessitarão de ajustes de comutadores ou pontes para que o USB funcione para
diferentes tipos de dispositivos.

• Os usuários não precisarão abrir a torre para instalar novos dispositivos de E/S.

• Apenas um tipo de cabo e conector será utilizado como padrão para esse barramento (figura a seguir).

• A energia de alimentação deverá ser fornecida pelo próprio barramento.

• O limite para 127 dispositivos é poderem ser conectados a um único computador usando
o padrão USB.

• O sistema deverá ser capaz de suportar dispositivos que operem em tempo real, como telefone,
televisão etc.

• Novos dispositivos poderão ser instalados mesmo com o computador em funcionamento.

• Não será necessária a reinicialização do computador após a instalação do novo dispositivo.

• A produção desse novo barramento e todos os dispositivos de E/S baseados nele não deverá ter
um custo alto.

140
ARQUITETURA DE COMPUTADORES MODERNOS

Figura 126 – Conector do tipo USB (barramento serial universal)

Disponível em: https://bit.ly/3HeiDer. Acesso em: 19 jan. 2023.

O padrão USB atende a todos esses requisitos e é largamente utilizado em dispositivos como
teclado, mouse, câmeras fotográficas, scanners, telefones digitais, entre outros. A primeira versão do
padrão USB ficou conhecida como 1.0 e possui uma largura de banda de 1,5 Mbps, suficiente para
atender teclados e mouses. Já a versão 1.1 opera em 12 Mbps, capaz de operar impressoras, câmeras
digitais e outros dispositivos de multimídia. Já a versão 2.0 tem suporte para dispositivos com a
capacidade de transferência de 480 Mbps, capaz de operar drives de disco rígido externo, webcams de
alta definição e interfaces de redes ethernet. A versão 3.0 alcança incríveis velocidades de transferência
de 5 Gbps e pode ser usada em dispositivos de alta performance e ultrabanda larga, como memórias
externas SSD (Solid State Drive).

4.10 Principais tipos de transmissão

Existem, basicamente, dois modos para realizar uma transmissão/recepção entre os periféricos/
interfaces, o barramento e o processador/memória principal, denominados serial e paralela
(MONTEIRO, 2019).

4.10.1 Transmissão serial

Na transmissão em série (também chamada serial), o periférico é conectado ao módulo de controle


ou interface de E/S através de uma linha única para execução da transmissão de dados, de maneira que
essa transferência seja realizada um bit de cada vez, mesmo que o controlador tenha a capacidade de
ser conectado ao processador/memória principal através do barramento constituído de diversas linhas
de transmissão e com grande largura de banda, como observado na figura a seguir:

141
Unidade I

Interface
UCP/MP 10110001 Periférico
Buffer
Serial
Barramento
do sistema
(transmissão em V)

Figura 127 – Diagrama de transmissão serial entre uma interface e o periférico

Fonte: Monteiro (2019, p. 345).

Inicialmente, a transmissão serial era considerada muito lenta se comparada com a paralela. Teclado,
mouse e modens são dispositivos que realizam comunicação serial. Como a transmissão serial é feita
bit a bit, sempre será necessário que o receptor (RX) e o transmissor (TX) estejam sincronizados bit a bit,
ou seja, o transmissor deverá transmitir os bits sempre na mesma velocidade, de modo que todos eles
deverão possuir o mesmo tempo de duração. Por exemplo, se TX estiver funcionando em uma velocidade
de 1 Kbps, isso significará que cada bit irá durar 1/1.000 segundos ou 1 milissegundo. Para que o RX
seja capaz de receber todos os bits de forma correta, ou seja, um a um, ele precisa iniciar a sequência de
bits e denominar qual a sua duração, conhecida como largura de bit. Assim, se a cada 1 milissegundo
TX enviar um bit, cujo nível de tensão alta é considerado bit 1 e nível de tensão baixa considerado bit 0,
então RX deverá verificar o nível de tensão da linha recebida para identificar o bit como 0 ou 1.

As comunicações em série também podem ser subclassificadas como síncronas e assíncronas. Nas
assíncronas, o processo de sincronização de RX é realizado e cada novo caractere transmitido, assim,
antes de a transmissão ser iniciada, cada caractere será acrescido de dois pulsos, um no início e outro
no final do pulso. Já a transmissão síncrona é considerada uma forma moderna de comunicação se
comparada com a assíncrona, pois nesse caso os dados são transmitidos de uma só vez por blocos de
caracteres sem a necessidade de intervalos entre eles tampouco de um pulso indicando o início ou o
fim da transmissão, reduzindo com o uso a quantidade de bits na linha de transmissão. Hoje uma das
aplicações de maior uso de cabeamento em série é sua aplicação para conexão de discos rígidos ou
drives de SSD, utilizando o cabeamento SATA (Serial Advanced Technology Attachment).

142
ARQUITETURA DE COMPUTADORES MODERNOS

Figura 128 – Conexão de cabo SATA (serial ATA)

Disponível em: https://bit.ly/3wfaaCr. Acesso em: 19 jan. 2023.

4.10.2 Transmissão paralela

Possui a capacidade de enviar um conjunto de bits de cada vez, assim, cada bit é enviado por uma
linha separada de transmissão, como mostra a figura a seguir:
Transmissão

0 1
1 0
0 0
1 1
T 0 1 R
0 0
1 0
0 0
Caractere 2 Caractere 1
Transmissor Receptor

Figura 129 – Diagrama de transmissão paralela entre TX e RX

Fonte: Monteiro (2019, p. 350).

143
Unidade I

Observação

Nesse tipo de transmissão (paralelo), quanto maior a distância entre os


dispositivos, maior será o custo, devido à quantidade de linhas utilizadas.

Outra característica das transmissões em paralelo é que elas podem ser mais rápidas, se comparadas
com algumas conexões em série mais antigas, o que permite maiores taxas de transmissões para dados.
Um problema aparente com a transmissão em paralelo é que os bits enviados podem não chegar ao
destino exatamente no mesmo instante ao qual foram programadas para chegar. Isso ocorre devido
a algumas diferenças de comprimento de cabos de que os canais de comunicação são constituídos.
A solução para esse problema foi o aprimoramento da transmissão em série, pois ao transmitir bit a bit
não ocorrerá o problema de desvio conhecido como skew. Consequentemente, como já abordado, em
1995 surgiu outro padrão, conhecido como USB. Entre os dispositivos que usavam em larga escala as
conexões em paralelo estão as impressoras e as conexões entre o disco rígido e a placa‑mãe, conhecidos
como IDE (Integrated Drive Electronics), como mostra a figura a seguir:

Figura 130 – Cabo flat para conexão em paralelo do tipo IDE

Disponível em: https://bit.ly/3wiyYta. Acesso em: 19 jan. 2023.

144
ARQUITETURA DE COMPUTADORES MODERNOS

Resumo

Nesta unidade, foi possível verificar como ocorreu a evolução dos


computadores modernos e entender como essa evolução proporcionou o
avanço dos modelos que usamos atualmente.

Vimos que o principal dispositivo eletrônico utilizado nos dispositivos


atualmente é o transistor. Esse dispositivo ainda continua em plena
evolução e seu emprego se expande cada vez mais para tudo que usamos
diariamente, como smart TVs, smartphones, smartwatches, aparelhos de
micro‑ondas, geladeiras, drones, satélites etc.

Destacamos, de forma detalhada e cronológica, alguns dos principais


aspectos operacionais dos processadores assim como dos registradores que
dão suporte de memória para armazenamento das instruções.

Em seguida, aprendemos um pouco mais sobre os sistemas de memória.


Vimos que elas podem ser subdivididas entre memórias internas, ou seja,
aquelas que estão posicionadas ou dentro da CPU (registradores, memória
cache) ou acopladas na placa‑mãe, como RAM e ROM. Acentuamos
que as memórias do tipo externa são aquelas acopladas externamente
às placas‑mãe, como discos rígidos, pendrive, fitas magnéticas, mídias
ópticas, disquetes etc.

Também ressaltamos que existem regras para o endereçamento e


armazenamento dos dados e instruções nas memórias. Nesse contexto,
estudamos como os discos rígidos podem operar de forma segura e com
melhor desempenho utilizando‑se o sistema de discos redundantes, RAID.

Finalmente, pudemos detalhar os diferentes tipos de conexões e


barramentos existentes em computadores ou em qualquer dispositivo
digital. Observamos que o principal tipo de barramento encontrado em um
PC é o da placa‑mãe. Além disso, aprendemos que a própria placa‑mãe
necessita de outros tipos de conexões para se comunicar eficazmente
com os dispositivos periféricos, o que pode ocorrer principalmente pela
conexão USB. Vimos que durante a evolução das placas‑mãe vários
tipos de conectores foram utilizados, como VESA, ISA, PCI, entre outros,
o que possibilitou a variação da velocidade de transmissão dos dados
e das instruções.

145
Unidade I

Exercícios

Questão 1. (Apice 2021, adaptada) No contexto de sistemas operacionais e considerando os estágios


dos computadores multiníveis modernos, avalie as afirmativas a seguir.

I – Um sistema operacional é um programa que, do ponto de vista do programador, acrescenta


diversas novas instruções e características, acima e além do que o nível ISA (Instruction Set
Architecture – arquitetura do conjunto de instrução) fornece.

II – Em geral, o sistema operacional é executado, em grande parte, em software, mas não há qualquer
razão teórica para que ele não possa ser colocado em hardware, exatamente como acontece com os
microprogramas (quando estão presentes).

III – O sistema operacional pode ser considerado um intérprete para certas características de
arquitetura não encontradas no nível ISA. Entre as principais, estão memória virtual, instruções de E/S
virtual e facilidades de processamento.

É correto o que se afirma em:

A) I, apenas.

B) III, apenas.

C) I e II, apenas.

D) II e III, apenas.

E) I, II e III.

Resposta correta: alternativa E.

Análise das afirmativas

I – Afirmativa correta.

Justificativa: os computadores modernos apresentam diversos estágios de desenvolvimento, nos


quais foram introduzidos, ao longo do tempo, diferentes níveis de abstrações e de organizações para
o tratamento de dados/instruções. Atualmente, são aceitos, basicamente, seis níveis, que vão do nível
zero, também conhecido como nível lógico digital, até o nível cinco, no qual estão as linguagens de
programação modernas. O nível 2, que corresponde ao nível ISA, contém as instruções de operação
do hardware, ou seja, o conjunto de instruções que o processador pode realizar. Já o nível 3 é o
nível do sistema operacional (SO). Nesse nível, são acrescentados recursos além dos fornecidos pelo

146
ARQUITETURA DE COMPUTADORES MODERNOS

nível ISA, como a possibilidade oferecida pelo SO de gerenciar o funcionamento do processador e


da memória, de forma a permitir o uso simultâneo de diversos aplicativos (que conhecemos como
sistemas multitarefas).

II – Afirmativa correta.

Justificativa: hardware e software são considerados recursos logicamente equivalentes. Isso significa
que toda operação realizada pelo software pode ser implementada diretamente pelo hardware, assim
como operações executadas pelo hardware podem ser simuladas pelo software. Desse modo, não há
razão teórica para que um sistema operacional não possa ser executado em hardware. A escolha pelo
software se dá por questões de custo e de facilidade de atualização, entre outros motivos que tornam
essa implementação mais viável.

III – Afirmativa correta.

Justificativa: o sistema operacional funciona como um interpretador de comandos oriundos dos


níveis superiores (níveis 4 e 5), arbitrando o acesso ao hardware. Com isso, características de arquitetura
não presentes no nível ISA, como memória virtual, são implementadas graças ao gerenciamento do SO.

Questão 2. (Enade 2017, adaptada) Leia o texto a seguir a respeito da memória em um sistema
computacional.

Em um computador, a memória é a unidade funcional que armazena e recupera operações e dados.


Tipicamente, a memória de um computador usa uma técnica chamada acesso aleatório, que permite
o acesso a qualquer uma de suas posições (células). As memórias de acesso aleatório são divididas em
células de tamanho fixo, estando cada célula associada a um identificador numérico único chamado
endereço. Todos os acessos à memória referem‑se a um endereço específico e deve‑se sempre buscar ou
armazenar o conteúdo completo de uma célula, ou seja, a célula é a unidade mínima de acesso.

SCHNEIDER, G. M.; GERSTING, J. L. An invitation to computer science. 6. ed.


Boston: MA: Course Technology, Cengage Learning, 2009 (com adaptações).

A figura a seguir ilustra a estrutura de uma unidade de memória de acesso aleatório.

147
Unidade I

Endereço Memória 1 bits

N bits
1

3 Registrador de endereços da memória

Registrador de dados da memória


2N-1

Largura da memória

Figura 131

Considerando o funcionamento de uma memória de acesso aleatório, avalie as afirmativas a seguir.

I – Se a largura do registrador de endereços da memória for de 8 bits, o tamanho máximo dessa


unidade de memória será de 256 células.

II – Se o registrador de dados da memória tiver 8 bits, será necessária mais que uma operação para
armazenar o valor inteiro, 2024, nessa unidade de memória.

III – Se o registrador de dados da memória tiver 12 bits, é possível que a largura da memória
seja de 8 bits.

É correto o que se afirma em:

A) I, apenas.

B) III, apenas.

C) I e II, apenas.

D) II e III, apenas.

E) I, II e III.

Resposta correta: alternativa C.

148
ARQUITETURA DE COMPUTADORES MODERNOS

Análise das afirmativas

I – Afirmativa correta.

Justificativa: se a largura do registrador de endereços da memória for de n bits, é possível


endereçar até 2n células de memória. Com um registrador de endereços de 8 bits, endereçamos
28 = 256 células de memória.

II – Afirmativa correta.

Justificativa: se o registrador de dados da memória tiver m bits, será possível armazenar 2m valores
inteiros distintos nesse registrador, sendo que o valor armazenado pode ter um valor que vai de
0 até 2m – 1. Com um registrador de dados de 8 bits, pode‑se armazenar na unidade de memória,
em uma operação, um valor que varia de 0 até 28 – 1 = 255. Desse modo, será necessária mais
do que uma operação de gravação para armazenar o valor inteiro, 2024, nessa unidade de memória.
Para que essa gravação acontecesse em apenas uma operação, precisaríamos de um registrador de
dados de, pelo menos, 11 bits, já que 211 – 1 = 2047.

III – Afirmativa incorreta.

Justificativa: o registrador de dados pode ter a capacidade maior do que uma célula da memória com
a qual se comunica. Normalmente, um registrador de dados tem o tamanho da palavra do processador.
Desse modo, um dado pode ocupar várias células de memória. No entanto, é esperado que o tamanho
do registrador de dados seja múltiplo da largura de memória. Como 12 não é múltiplo de 8, temos uma
afirmativa incorreta.

149

Você também pode gostar