Escolar Documentos
Profissional Documentos
Cultura Documentos
Livro Texto Unidade I
Livro Texto Unidade I
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.
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
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
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
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.
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.
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
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.
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 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.
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
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
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).
14
ARQUITETURA DE COMPUTADORES MODERNOS
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”.
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
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.
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.
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).
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
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.
20
ARQUITETURA DE COMPUTADORES MODERNOS
Observação
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.
21
Unidade I
Saiba mais
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.
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.
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.
Saiba mais
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
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
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
26
ARQUITETURA DE COMPUTADORES MODERNOS
Observação
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
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.
Movimentação
Controle
Armazenamento Processamento
28
ARQUITETURA DE COMPUTADORES MODERNOS
Movimentação
Controle
Armazenamento Processamento
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
29
Unidade I
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.
Um computador moderno está estruturado a partir de quatro componentes, responsáveis pelo seu
pleno funcionamento, classificados em (STALLINGS, 2010):
• 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.
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
31
Unidade I
Observação
Tradução (compilador)
Tradução (assembler)
Hardware
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
A
AND F
B
A
OR F
B
NOT A F
A
NAND F
B
A
NOR F
B
A
XOR F
B
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.
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).
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.
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
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
36
ARQUITETURA DE COMPUTADORES MODERNOS
Lembrete
37
Unidade I
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
38
ARQUITETURA DE COMPUTADORES MODERNOS
É 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.
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
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).
40
ARQUITETURA DE COMPUTADORES MODERNOS
Figura 28 – Silício em pó
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).
41
Unidade I
42
ARQUITETURA DE COMPUTADORES MODERNOS
Saiba mais
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
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
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.
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
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.
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
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
286 360
CK Energia Terra
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.
• 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).
• 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
Sinais de
controle Lógica de controle
Banco de registradores
Unidade Unidade
artimética artimética
de inteiros de ponto
flutuante
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
ULA
Sinais de controle da UC
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).
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)
Barramento de controle
Além das tarefas citadas anteriormente, a UC possui requisitos funcionais, como segue:
• Determinação das funções que a UC deve realizar para que as micro‑operações sejam efetuadas.
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 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.
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
Como citado anteriormente, vários são os problemas que podem ser apontados como limitadores do
aumento no desempenho do processador, como:
• 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.
55
Unidade I
Saiba mais
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.
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.
Período
Tempo
56
ARQUITETURA DE COMPUTADORES MODERNOS
• 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
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
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
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.
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 1 → T = 445 X 8 X,
f
(1,33x10
1
9 ( → T = 2,67 microssegundos (2,67 µs).
Exemplo de aplicação
Resolução
Substituindo na fórmula:
1 → 1,33x10
9
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.
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.
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 lógica e
aritmética (CA)
Memória Equipamento de
principal (M) E/S (E,S)
Unidade de controle
do programa (CC)
60
ARQUITETURA DE COMPUTADORES MODERNOS
A partir dessa máquina, von Neumann definiu que todos os computadores deveriam possuir as
seguintes características:
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.
61
Unidade I
01 39
0 8 20 28 39
Saiba mais
62
ARQUITETURA DE COMPUTADORES MODERNOS
63
Unidade I
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.
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)
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
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
• 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
ULA
• 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.
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
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
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
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.
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.
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.
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.
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.
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
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 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).
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 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
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)
O processador Intel 8086 possui outros registradores auxiliares, todos de 16 bits, listados a seguir:
• Registrador BP (Base Pointer): utilizado no acesso ao conjunto de dados que está dentro do
segmento de pilha, como um vetor de dados.
• 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
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.
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
Observação
76
ARQUITETURA DE COMPUTADORES MODERNOS
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.
77
Unidade I
Observação
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
78
ARQUITETURA DE COMPUTADORES MODERNOS
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.
Lembrete
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
+V
øV
Bit ø Bit 1 Bit ø Bit 1 Bit ø
-V
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):
• 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.
• 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
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 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
• 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.
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.
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
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)
84
ARQUITETURA DE COMPUTADORES MODERNOS
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)
• Aumento no tempo para acesso à memória, quanto menor for o nível na 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.
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
Transferência Transferência
de palavra de bloco
Rápida Lenta
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.
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
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.
Processador
Busca de
instruções Busca de dados
Memória principal
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.
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:
Dados
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.
Dados
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
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.
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
Endereço
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
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
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.
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.
Habilitar
S3 S2 S1 S0
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.
94
ARQUITETURA DE COMPUTADORES MODERNOS
Saiba mais
As células unitárias de memória têm algumas propriedades em comum, como (STALLINGS, 2010):
• 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
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
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.
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
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
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.
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
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.
End 257 A 1F
Conteúdo da posição de memória = 2C
End 257 B 2C
Lembrete
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:
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:
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
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.
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.
• Enviam‑se os dados contidos na MBR (Memory Buffer Register) para outro registrador.
102
ARQUITETURA DE COMPUTADORES MODERNOS
5C 1324
≈ ≈
End FFFF
Barramento de controle
Barramento de endereços
5C
Barramento de dados
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.
103
Unidade I
F7 21C8
≈ ≈
Barramento de controle
Barramento de endereços
Barramento de dados
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
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.
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
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
RC
de coluna de
endereços (column
Decodificador
Array de células
Decodificador
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)
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.
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
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)
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
DQS
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
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
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:
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
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
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)
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
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
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.
512 bytes de dados ECC – error connecting code 512 bytes de dados
(bits para deteção de erros)
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
113
Unidade I
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 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.
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:
Exemplo de aplicação
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.
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
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
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).
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
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.
117
Unidade I
3.6.2 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.
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.
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.
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.
Saiba mais
119
Unidade I
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
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.
• 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.
• 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.
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).
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
Semicondutor
Terra
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.
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.
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
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.
3.8.2 DVD
• espirais mais estreitas, com uma separação entre trilhas de 740 nm;
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.
Figura 111 – Variações entre os tamanhos das depressões e planos em função da luz laser inserida
Saiba mais
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
Observação
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:
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
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.
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
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
129
Unidade I
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.
Observação
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
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
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.
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.
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
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
TRH
RD
TRL TDH
WAIT
Tempo
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
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.
MREQ
RD
MSYN
DATA Dados
SSYN
135
Unidade I
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
136
ARQUITETURA DE COMPUTADORES MODERNOS
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.
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.
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.
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
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.
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
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).
• 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.
• 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
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).
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).
141
Unidade I
Interface
UCP/MP 10110001 Periférico
Buffer
Serial
Barramento
do sistema
(transmissão em V)
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
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
143
Unidade I
Observação
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:
144
ARQUITETURA DE COMPUTADORES MODERNOS
Resumo
145
Unidade I
Exercícios
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.
A) I, apenas.
B) III, apenas.
C) I e II, apenas.
D) II e III, apenas.
E) I, II e III.
I – Afirmativa correta.
146
ARQUITETURA DE COMPUTADORES MODERNOS
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.
Questão 2. (Enade 2017, adaptada) Leia o texto a seguir a respeito da memória em um sistema
computacional.
147
Unidade I
N bits
1
Largura da memória
Figura 131
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.
A) I, apenas.
B) III, apenas.
C) I e II, apenas.
D) II e III, apenas.
E) I, II e III.
148
ARQUITETURA DE COMPUTADORES MODERNOS
I – Afirmativa correta.
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.
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