Você está na página 1de 709

Maria A.

Monteir'o
Sn$ W

Prefácio

Desde sua primeira edição, este livro tem o propósito O capítulo de memória foi dividido em dois, um para
desavir de livro-texto básico para divasos tipos de cur- a apresentação da hierarquia de um sistcn1a de memória
sos na área de Jnformática,seja no contexto de graduação, e a descrição da 1nemória principal e o outro exclusivo
seja no de cursos de extens..i.o universitária. O material para memórias cache. A memória secundária tambérn
nele contido e a forma de apresentação e dt.-scriçào per- se tornou um capítulo separado. deixando-se o subsis-
mitem, ainda, que de possa ser utilizado até mesmo para tema de entrada/saída apenas para os elementos básicos
estudos individuais para principiantes. desse assunto, como as interfaces e dispositivos periferi-
A iua recepcividade no mercado e nos meios escolares cos clássicos.
motivou seu constante aperfeiçoamento, o que redundou Em todos os capítulos e em alguns apêndices foram
nas edições subseqiienres. acrescentados mais exercícios, de modo a proporcionar
A esrruturn dos assuntos em capítulos procurou seguir ao aluno a oportunidade de verificar seu aprendizado e
a natural organização funcional de um computador, com capacidade de absorção dos conhecimentos com a prática
seus componentes básicos: memória, processador e en- dos exercícios. Ao final do livro consta sua resposta.
trada/ saída, as quais não se alteraram com o tempo; so- O Cap. 1 consiste em uma introdução ao assunto abor-
mente foram aperfeiçoadas em capacidade, velocidade e dado. estabelecendo alguns conceitos básicos e concluin-
AexibiLidade, parecendo ser, por isso. uma metodologia do com um breve histórico sobre a criação e a evolução
apropriada parn o ensino do assunto. Para melhor en- dos computadores. Nesta edição, o texto relativo ao his-
tendimento, acrescentaram-se alguns capítulos com ex- tórico dos computadon..--s foi ampliado.
tensões intrínsecas e complememações pertinentes aos O Cap. 2 apresenta de modo sucinto os componentes
citados componentes. básicos de um computador e define unidades essenciais
O contc(1do de cada capítulo foi daborado e tem sido :10 entendimento do resto do livro, como o bit e o byte,
atualizado consid~r:mdo o programa e a experiência de bem como outras unidades referenciais.
ministrá-lo por mais de 28 anos em cursos na área de Como os compmadores digitais são máquinas binárias,
Informática em Universidades, empresas e outras insti- e estamos habituados à aritmética decimal, no Cap. 3 s.1.o
tuições, assim como os comentários que eventualmente :1present.1dos conceitos sobre sistemas de numeração niio-
são feitos por colegas e alunos. decimais. bem como métodos para convers.io de valores
Esta edição foi ampliada e atualizada de modo a aten- de base l Opara a base 2 e para as bases 8 e 16, us.,das com-
der à 1naioria das expectativas cm uma multiplicidade de plcmcmarmcntc nos sistcn1as de processamento de dado.s.
cursos. co111 objetivos e profundidades difcrcnt,·s, bem Mostra-se, ainda, como se efetuam operações aritméticas
como a alguns novos conceitos l' tecnologias surgidos em sistema.ç não-decimais. Como já mencionado antes,
em um mercado de grande e rápida evolução. Esta edi- foi aumentada a quantidade de exercícios. Ainda assim,
ção é constituíd:1 de 12 capítulos e seis apêndkes, <'l.lém se o Jeitor estiver interessado cm mais detalhes, poderá
da bibliografia e da parte com as respostas aos exercícios encontrá-los no Apêndice A - Sistemas de Numeração,
inseridos em todos os capítulos e cm alguns apêndices. onde o assunto é novamente tratado, porém com mais
Para facilitar o seu uso, incluiu-se nos capítulos (prin- profondidade.
cipalmente do Cap. 1 ao Cap. 11) a descrição básica do Devido à sua relevância no dese1npcnho dos sistemas
assunto a que o capítulo se refere, contendo, assim, as ca- de computação, o estudo da memória foi realçado nesta
racterísticas e particularidades essenciais ao conhecimen- edição, de modo que o Cap. ~ trata exclusivamente dos
to principal sobre a área coberta pelo titulo do capítulo. aspcctos relativos à hierarquia de um sistema de armaze-
como o processador ou a memória. Além disso, foi acres- namento e êr1fase na memória principal (ou conhecid1
centado um capítulo sobre a tecnologia das arquiteturas como RAM). deixando-se a memória cache para um
mais atuais dos nücrocomputadores e um conjunto de capítulo separa.do (Cap. 5) e a memória secundária para
apêndices que aprofundam a descrição e apresenrnçào outro capítulo específico (Cap. 9).
de vários assuntos, visando a cursos que requerem mais Os Caps. 6 e 7 revistos e atu:1lizados mostram. respec-
detalhes ou leitores mais curiosos e intcn-ssados, t.-special- tivamcntc, detalhes conceituais da organização e funcio-
mente o Apêndice D - Alguns Detalhes. namento dos processadores, be1n como relativos ao modo
Sn$W

iv / Prefáâo

corno os dados são representados internamente em u m Diversos apêndices completam e aprofundam o texto,
sistema de computação, como as técnicas utiJizadas para comendo uma descrição nuis detalhada do sistema de
implementação de operações aritméticas corn diferen- numeração no Apêndice A, uma descrição dos principajs
tes tipos de dados. Além disso. foram acrescemados rnais conceitos de Lógica Digital, alicerce no projeto e imple-
exercícios a cada um desses capítulos. mentação de co1npuradores digitais, no Apêndice B, con-
O Cap. 8 trata do cortjumo de insmrções de máquina, ceitos de compilação, linkediçào e de execução de pro-
que todos os processadores possuem e que se constituem gramas. no Apêndice C, sobre códigos de represent.1çào
de elemento fundamental de uma determinada arquitetu- interna de caracteres, no Apêndice E, além de um glossá-
ra. Ele foi revisto e ampliado em relação à edição anterior, rio no Apêndice F e uma relação de elementos bibliográ-
alterando-se, inc1usivc, seu nome para atender melhor ao ficos. que servem de auxílio e referência aos leitores. No
tipo de abordagem do assunto. Apêndice D foram incluídos diversos tópicos, com con-
No Cap. 9 são tratados assuntos relativos às etapas re- ceitos e mais detalhes sobre componentes e tecnologias
alizadas para efetivação da execução de um programa concernentes aos assuntos tratados de forma fundamental
elaborado em uma linguagem diferente da que é inteli- no texto básico. Finalmente, foram inc1uídas as respostas
gível pelo hardware, ou seja, a linguagem de máquina. Em aos exercícios propostos nos diversos capítulos.
oucras palavras, apresentarn-se conceitos sobre compila- Antes de finalizar esta parte inicial do livro,gostaria de
ção, linkedição e interpreiaçào, que permitem ao leitor ressaltar que esta edição. como as ameriores, ceve motiva-
compreender o que se passa no computador durante a ção e sofreu alterações graças aos comentários e obser-
execução de seu programa. vações de mais de 28000 alunos e ex-alunos, ben1 como
Os diversos disp ositivos, denominados genericamente de professores que tenho tido o prazer de fazer contato
periféricos, são abordados no Cap. 1O (Entrada e Saída}, ncssc-s anos. É muito importante que haja o maior nú-
alguns dos quais discutidos com mais detalhes que outros mero possível desses comentários, cflticas e observações,
ern virtude de seu maior apelo popular. inclusive sobre eventuais o m.is.sõcs de assuntos conside-
No Cap. 11, apresenta-se uma breve descrição da ar- rados relevantes aos diversos programas dos cursos. Para
quitetura R.ISC - R.educed lnstruction Ser Computers, tanto, solicito àqueles que desejarem fazer seus comen-
e são relacionados alguns aspecros comparativos entre essa tários. crídcas e sugestões ou desejarem obcer as figuras
arquitetura e a arquitetura denominada C ISC-Complex utilizadas pelo livro, que usem o canal direto com o autor,
Instruction Set Computers, largamente en1pregada nos pelo e-mail marioarn IOOO@grnaiJ.com. o que me per-
processadores da fanúlia x86. mitirá a obtenção de mais subsídjos para aperfeiçoar as
Foi acrescentado um capítulo (Cap. 12) com elementos futuras revisões do livro.
conceituais e descritivos de arquitetu ras mais avançadas e
atuais, como as de procc-ssadorl"S superescalarcs e super- M.A.M.
pipclining e arquitemras de 64 bits.
Sn$W

Agradecimentos

Em p rimeiro lugar, devo expressar profunda gratidão Agradeço, e muito, aos inúmeros prolessores que,
aos l'neus in(1meros ex-alunos que. irticialmente, ao longo adotando o livro ern seus cursos cm todo o país e enviando-
de vários anos, pela necessidade de uma fome de consulta me suas criticas e obsc1vações, c::stimularam-me a continuar
adequada ao tipo de aulas e de assu ntos dados, induziram- seu aperfeiçoamento e o lançamento d e novas ed ições.
me a escrever uma apostila e, dep ois, aperfeiçoá- la com Agradeço à minha mãe pelos ensinamentos e valores
suas críticas e sugestões, resultando na primeira edição passados d urante minh a vida, especialmente determinação
deste livro. E às continuadas críticas e sugestões, que me e coragem, e que certamente fora m fatores importantes
motivaram a escrever as edições subseqüentes. até esta para a elaboração e a conclusão das sucessivas edições
q u inta. deste livro.
Muitos professores, colitgas de c ursos e o utros auxilia- Mas, sobretudo, agradeço a Deus, não só por estar
ram na edição iniciaJ, bem como no aperfeiçoamento vivo e per mitir-me, entre outras coisas, escrever um
das demais edições. Sempre lembrarei do saudoso Prof. livro, na esperança de poder contribuir (mesmo que
Luiz R.oberto Borges Pedroso e do Prof. Lucio Franco com uma núnima parcela) para a fo rmação profissional
de Sá Fernandes, que efetuaram u ma cuidadosa leitura de inúmeras pessoas, m as também por ter-me propor-
do manuscrito orig inal, auxiliando-me com suas críticas cionado e mantido ao longo de mais de 21 anos a m aior
corretas e excelentes sugestões para a primeira edição, fonte de inspiração, de carinho e de motivação: mi11ha
bem como da Prof' Sandra Magalhães, que, ainda para a querida Claudia. Sua enorme tolerância nas infindáveis
primeira edição, realizou u1na revisão léxica e ortográfica, noites e finais de semana de d ig itação e de correção d o
com eficácia e dedicação. Nas demais edições, muitos texto, seu permanente incentivo. sua compreensão, seu
outros colegas contribuíram corn suas c ríticas, obser- carinho d iário, sua dedicação ao nosso am or nesses anos
vações e sugestões, inclusive o Prof. João Luiz Queiroz todos e o completo suporte, especialmente nos me us
Ferrei,a, pela elaboração das soluções de grande parte dos m.omemos rnais diüceis, foram e têm sido o elememo
exercícios para a q uarta edição. Agradeço, também, aos decisivo e impulsionador, responsável pela efetivação e
m e us ex-alunos Fernanda C ristina R . da Silva e Thiago continuidade desta o bra.
Costa V. Lima, pdo a uxílio que me propo rcionaram na
elaboração das figuras adicionais para esta edição. M.A.M .

Co m entários e Sugestões
Apesar dos melhores esforços do autor, do editor e dos revisores, t': inevit1tvd que surjaU\ erros 110 te.-.:ro. Assim, s..i.o bem-,rindas
as comunicações de usuários sobre corrcçôi.:s ou .sugestões referentes ao comclldo ou ao nJvd pedagógico que auxiliem o apri-
moramento de edições futuras. Os comencirios dos leitores pode1n ser e11caini11hados à LTC - Livros Téc11icos e Cienlificos
Editora l(da .. uma editora inlegrance do GEN I Grupo Editorial Nacional no endereço: Tr:J;vC$S.1 do Ouvidor, 11 - Rio de Jinciro,
RJ - CEP 20040-040 ou ao endereço elerrôoico lrc@grupogerl.coin.br.
Sn$W

Sumário

1 INTRODUÇÃO, 1
1.1 Conceitos Básicos, 1
1.1.1 Proccss.1111ento de Dados,
1.1.2 Hardw•re e Software, 3
1.1.3 Computadores Digitais, 4
1. 1.4 Sistemas, 8
1.1.5 Sistemas de Computação, 9
1.2 Histórico, l 2
1.2. l Época dos Dispositivos Mecânicos (3000 a.C.-1880), 13
1.2.2 Época dos Dispositivos Eletromecânicos (1880-1930), 15
1.2.3 Época dos Componentes Ektrônicos - Primeiras Invenções (1930--1945), 16
1.2.4 A Evolução dos Computadores Eletrônicos (1945-até quando?), 17
1.2.4.1 Primeira Geração: Computadores à Válvula, 17
1.2.4.2 Segunda Geração: Computadores Transistorizados, 20
1.2.4.3 Terceira Geração: Computadores com Circuitos Integrados, 21
1.2.4.4 Quarta Geração: Computadores que Utilizam VLSl, 23
1.2.4.5 Evolução dos Computadores de Grande Porte (Mainfi:nmcs), 23
1.2.4.6 Computadores Pessoais - Microcomputadores, 23
Exercícios, 29

2 O SISTEMA DE COMPUTAÇÃO, 31
2.1 Componentes, 31
2.2 Represenração das Informações, 44
2.2.1 O Bit, o Caractcre, o Byte e a Palavra, 44
2.2.2 Conceito de Arquivos e Registros, 49
2.3 Medidas de Desempenho de Sistemas de Computação, 50
Exercícios, 51

3 CONVERSÃO DE BASES E ARITMÉTICA COMPUTACIONAL, 54


3.1 Notação Posicional - Base Decimal, 54
3.2 Outras Bases de Numeração, 55
3.3 Conversão de BasL.,;, 58
3.3. l Conversão entre J3asl!S Potência de 2, 58
3.3.1 . 1 Entre as Bases 2 e 8, 58
3.3.1.2 Entre as Bases 2 e 16, 58
3.3. l.3 Entre as Bases 8 e l 6, 59
3.3.2 Conversão de Números de uma Base 13 para a Base 10, 59
3.3.3 Conversão de Números Decimais para uma Base 8, 61
3.4 Aritmética Não-d.:cima1, 63
3.4.1 Aritmética Binária. 64
3.4.1.1 Soma Binária, 64
3.4. 1.2 Subtração Binária. 64
3.4.1.3 Mulriplic:ição Binária, 66
3.4. 1.4 Divisão Binária, 67
Sn$W
Sumário / vil

3.4.2 Aritmética Octal (cm Ba.se 8), 70


3.4.3 Aritmética Hexadecimal (em Base 16), 72
Exercícios, 73

4 MEMÓRIA PRINCIPAL, 79
4.1 Introdução, 79
4. 1. 1 Como as Informações São Representadas nas Memórias, 81
4.1.2 Como se Localiza uma Informação nas Memórias, 83
4 .1.3 OpcraÇÕl"S Realizadas em uma Memória, 84
4.2 Hierarquia de Memória, 85
4.2.1 Registradores, 88
4.2.2 Memória Cachc, 90
4.2.3 Memória Princip..ll, 92
4.2.4 Memória Secund.1ria, 93
4.3 Memória Principal ou Memória Primária - Ml~ 95
4.3.1 Org.mizaçào da Memória Principal. 95
4.3.2 Considerações sobre a Org.111ização da Memória Principal, 98
4.3.3 Operações do Processador com a Memória Principal, 99
4.3.3.1 Operação de Leitura. 102
4.3.3.2 Operação de Escrita, 103
4.3.4 Capacidade de MP - Cálculos, 104
4.3.4.1 Cálculos com Capacidade da MP (RAM). 106
4.3.5 Tipos e Nomenclatura de MP, 110
4.3.5.1 Memóri>< do Tipo ROM, 113
4.4 Erros. 116
Exercícios. 118

5 MEMÓRIA CACHE, 120


5.1 1ntroduçào, 120
5.2 Conceituação. 120
5.2.1 Diferença de Velocidade Processador/ MI~ 120
5.2.2 Conceito de Localidade, 121
5.2.3 Organização e Funcionamento da Memória Cache. 124
5.3 Tipos de Uso de Memória Cache. 128
5.4 Elementos de Projeto de uma Memória Cache, 129
S.4.1 Mapeamento de Dados MP/Cache, 129
5.4.2 Algoritmos de Substituição de Dados na Cache, 147
5.4.3 Política de Escrita pela Memória Cachc, 147
S.4.4 Níveis de Cache de Memória RAM, 148
5.4.S Tamanho da Memória Cache, 150
5.4.6 Largura de Linha da Memória Cache, 150
Exercícios, 1S 1

6 PROCESSADORES, 153
6.1 Introdução. 153
6.2 Organização Funcional do Processador, 154
6.2.1 Função Processamento, 162
6.2.1. l Unidade Aritmética e Lógica - UAL. 163
6.2.1.2 R.egistradorcs de Dados, 165
6.2.1.3 A lnfluênci::i do T.·un:rnho da Palavra, l66
6.2.2 Função Comrolc, 170
6.2.2. l A Unidade de Controle, 171
6.2.2.2 O Relógio. 173
6.2.2.3 Registrador de Instrução (RI)- lnstruction Registcr (IR.), 175
6.2.2.4 Contador de Instrução (CI) - l'rogram Counter (PC), l 76
Sn$W

viii / Sumário

6.2.2.5 Decodificador de Instrução, l 76


6.2.2.6 Registrador de Dados de Memória - ROM e R.egistrador de Endereços de
Mernória (!UM), 177
6.3 Instruções de Máquina, 177
6.3. l O que É uma Instrução de Máquina?, 177
6.3.2 Formato das Instruções, 180
6.4 Funcionamento do Processador. O Ciclo da Instrução. 183
6.5 Considerações sobre Processadores, 193
6.5.1 Tecnologia de Fabricação dos Processadores. 193
6.5.2 Largura da P,lavra, l 94
6.5.3 Conj unto de lnstruçÕl.--s, 195
6.5A Registradores de Dados, 195
6.5.5 Metodologias de Funcionamento da Unid,de de Controle, 197
Exacícios, 20 t

7 REP RESENTAÇÃ O D E D A D OS, 204


7.1 Introdução, 204
7.2 Tipos de Dados. 207
7.3 Tipo Caractere. 209
7.4 Tipo Lógico, 211
7.4.1 Operador Lógico ANO, 211
7.4.2 Operador Lógico OR, 213
7.4.3 Operador Lógico NOT. 215
7.4.4 Operador Lógico EXCLUS!VE-OR (OU EXCLUSIVO), 216
7.5 Tipo Numérico. 219
7.5.1 R.epresenL1çào em Ponto Fixo, 221
7.5. l.1 Sinal e Magnitude, 223
7.5.1.2 Representação de N úmeros Negativos em Complemento, 230
7.5.2 Overflow, 247
7.5.3 Representação em 1>onro Flutuante, 248
7.5.3.l Representação Normalizada. 251
7.5.3.2 Conversão de Números para Pomo Flutuante, 251
7.5.4 Representação Decimal, 259
Exercícios. 266

8 CONJUNTO DE INST R UÇÕ E S, 271


8.1 Introdução, 271
8.2 Formato de uma [nsrrução de Máquina, 273
8.2. l Campo Código de Operação (C. Op.) . 274
8.2.2 Campo Operando (O p.), 277
8.3 Quantidade de Operandos, 277
8.3.1 Instruções com Três Operandos. 279
8.3.2 Instruções com Dois O perandos. 281
8.3.3 Instruções com U m O perando, 283
8.4 Modos de Endereçamento, 287
8.4. l Modo Imediato. 288
8.4.2 Modo Direto, 289
8.4.3 Modo Indireto, 290
8.4.4 Endereçamento por R egistrador, 293
8.4.5 Modo Indexado, 297
8.4.6 Modo Base Mais Deslocamenco, 302
8.5 Linguagem Assembly. O Assembler, 303
8.6 Considerações sobre o Conjunto de Instruções dos Processadores, 307
8.6.1 A Arquitetura IA-32 ou o Conj unto de Instruções dos Processadores Intel e AMO, 308
8.6.2 Arquitenira de Processadores R ISC, 3 10
Exercícios, 3 1O
SU$W

S,wuírio / ix

9 MEMÓRIA SECUNDÁRIA, 314


9.1 Introdução, 314
9.2 Discos Magnéticos, 314
9.2.1 Histórico, 315
9.2.2 Organi~ção e Funciom1.mento, 3 17
9.2.3 Características de Funcion,mento dos Discos Rígidos, 3 19
9.2.4 Discos Flexíveis ou Disquetes, 322
9.2.5 Cálculo de Espaço de Armazenamento em Discos, 323
9.2.6 RA IO, 324
9.3 Meios de Armazenamento com Tecnologia Ótica, 326
9.3.1 Introdução, 326
9.3.2 Compact Disk - CD, 326
9.3.3 Digital Versatile (ou Video) Disk - DVD, 331
9.4 Fitas Magnéticas, 331
Exercícios, 335

10 ENTRADA E SAÍDA (E/S), 337


10.1 lnn-oduçào, 337
10.2 Interfaces de E/S, 340
10.3 Tipos de Transmissão, 345
10.3.1 Transmissão Serial, 345
10.3.1.1 Transmissão Assíncrona, 346
10.3.l.2 Transmissão Síncrona, 348
10.3.2 Transmissiio Paralela. 349
10.4 Dispositivos de EIS, 350
10.4.1 Teclado. 351
10.4.2 Monitor de Vídeo, 353
10.4.2.1 Modalidade Textual ou Símbolo a Símbolo, 357
10.4.2.2 Modalidade Gr:ífica ou 13it a Bit, 358
10.4.2.3 Vídeo Colorido, 359
10.4.2.4 Algumas Observações sobre Monitores de Vídeo, 360
10.4.3 Impressoras, 361
10.4.3. 1 Impressoras Matriciais, 361
10.4.3.2 Impressoras de Jato de Tinta. 363
10.4.3.3 Impressoras a Laser, 363
10.4.4 Mouse, 365
10.5 Métodos para Realiz.,ção de Operações de E/S, 366
10.5. 1 Entrada/ Saída por Programa, 366
10.5.2 Entrada e Saída com Emprego de Interrupção, 368
10.5.3 Acesso Direto à Memória - OMA, 371
Exercícios, 372

11 ARQUITETURAS RISC, 374


11.1 lnt,-odução, 374
11.2 CaracceriSticas das Arqui1ecuras CISC. 378
11.3 Características das Arquiteturas R ISC. 380
11 .3.1 Menor Quantidade de Instruções.Todas com largura Fixa, 380
11.3.2 Execução Otimizada de Chamada de Funções, 381
11 .3.3 Menor Quantidade de Modos de Endereçamento, 38 1
11 .3.4 M odo de Execução com Piprli11i11g, 382
11.3.5 Execução de Cada Instrução em um Ciclo de Relógio, 382
1 1.4 R ISC X CISC, 383
11.5 Exemplos de Arquiteturas RtSC, 385
11 .S. I O Desenvolvimento da Arquitetura RISC na IBM, 385
11 .5.2 A Arquitetura dos Processadores SPARC (Pesquisa Inicial em Berkeley), 389
Sn$W

x / S11111árfo

11 .5.3 A Arquitetura dos Processadores MIPS (Pesquis.1 Inicial em Stanford), 391


11.5.4 O utras Arquitecuras RISC, 393
Exercícios, 394

12 CONSIDERAÇÕES SOBRE OUTRAS ARQUITETURAS, 395


12. l Introdução, 395
12.2 Tipos de Process.1memo Não-seqiiencial (Paralelo), 397
12.2.1 Classificação de Computação -Taxonomia de Flynn, 398
12.2.2 Processamento Superescalar e Superpipelining, 398
12.2.2.1 Processamento Superescalar, 399
12.2.2.2 Processamento Supcrpipeline, 405
12.2.2.3 VLIW (Vcry Long lnstruction Word), 406
12.2.3 Arquitetura Vetorial, 407
12.3 Arquiteturas de 64 Bits, 4 10
12.3.1 IA-64 (!mel Arch_iteccure 64 Bits). 411
12.3.2 AMO 64, 419
Exercícios. 42 1

APÊNDICES, 422
A SISTEMAS DE NUMERAÇÃO, 422
A. l Sobre Símbolos e Números, 422
A.2 Sistema de Numeração Não-posicional, 423
A.3 Sistema de Numeração Posicional, 424
A.3.1 Base, 425
A.3.2 Um Pouco de História, 427
A.4 Algarismos e N úmeros, 427
A.5 Conversão de Bases, 428
A.5. 1 Da Base 10 para uma Base B Qualquer, 428
A.5.1.1 Conversão de Números Inteiros, 429
A.5.1.2 Conversão de Números Fracionários. 430
A.5.2 Convcrs.io de füse B (Não 1O) para Valor Decimal, 432
A.5.3 Convcrs.io Direta encre Bases Não-decirnais, 433
A.6 Outros Métodos de Conversão de Bases, 434
A.7 Operações Aritméticas, 437
A.7.1 Procedimentos de Adição, 438
A.7.1.1 Adição de N úmeros Binários, 438
A.7. 1.2 Adição de N úmeros Octais e Hexadecimais, 439
A. 7.2 Procedimentos de Subtração, 440
A.7.2. 1 Subtração de N úmeros Binários, 440
A.7.2.2 Subtração de N é,meros Octais e Hexadecimais, 441
A.7.3 Multiplicação de Números Binários, 441
A.7.4 Divisão de N é, meros Binários, 442
Exercícios, 443

B CONCEITOS DA LÓGICA DIGITAL, 445


B.1 lnrrodução, 445
B.2 Portas e Operações Lógicas, 446
B.2.1 Operação Lógica ou Porta ANO (E), 448
B.2.2 Operação Lógica ou Porta O R (OU). 450
B.2.3 Operação Lógica N OT (Inversor), 452
B.2.4 Operação Lógica NAND - N OT ANO, 454
B.2.5 Operação Lógica N O R - NOT OR, 4S6
B.2.6 Operação Lógica XO R. - EXCLUSIVE O R, 459
B.3 Expressões Lógicas - Aplicações de Port1s, 461
B.3. 1 Cá1culos com Expressões Lógicas, 462
Sn$W

Sumário / xi

B.4 Noções de Álgebra Booleana, 468


B.4.1 R.egras Básicas da Álgebra Booleana, 470
B.5 Circuitos Combinacionais. 473
B.5.1 Exemplo Prático - Projeto de um Mukiplicador de 2 Bits, 475
B.5.2 Portas Wired-Or e Wired-And, 477
B.5.3 Circuitos Integrados, 478
B.5.4 Decodificador, 481
B.6 Circuitos Seqiienciais. 482
B.6. l Flip-Aops, 483
Exercícios. 486

C EXECUÇÃO DE PROGRAMAS, 489


C.1 Introdução, 489
C.2 linguagens de Programação, 489
C.3 Montagem e Compilação, 492
C.3.1 Montagem, 493
C.3.2 Compilação, 495
C.4 Ligação ou Linkedição, 499
C.5 Interpretação. 501
C.5.1 Compilação X lmerpretação, 502
C.6 Execução de Programas em Código de Máquina, 504
Exercícios, 51 1

D ALG UNS DETALHES, 513


D. I Sobre Memórias, 513
D.1.1 Tipos e Tecnologias de Memórias do Tipo RAM, 513
D.1.1.1 Sobre as Memórias SRAM. 515
D.1.1.2 Sobre as Memórias DRAM, 522
D.1.1.3 Comparação entre as Tecnologias SRAM e DRAM, 528
D.1.2 Evolução da Tecnologia das Memórias DR.AM, 528
D. 1.3 Tipos de Encapsulamento das Memórias de Semicondutores, 533
D.2 Sobre Processadores, 534
D.2.1 U nidade Aritmética e Lógica - UAL (Functional Unit ou lnteger Unit), 535
D.2.2 Metodologia de Execução T ipo Linha de Montagem ou Pipeli11i11g, 541
D.2.2.1 Descrição do Processo, 541
D.2.2.2 Desempenho de um Pipeline. 548
D.2.2.3 Tipos de Pipeline, 549
D.2.2.4 Problemas Decorrentes do Emprego de Pipclining, 550
D.2.3 Tipos de Controle em um Processador, 555
D.2.3. l Controle Programado no Hardware, 556
D.2.3.2 Controle por Microprogramaçào. 561
D.2.4 Os Processadores e Suas Arquiteturas. 579
D.2.4.1 A Evolução da Arquitetura x86 da Intel. 579
D.2.4.2 Process.,dores da A.l'V!D. 596
D.2.5 Encapsulamento de Elementos de um Processador em uma Pastilha (Chip). 599
D.2.6 Soquetcs Utilizados para Inserção de Proccss.,dores na Placa-mãe, 601
D.3 Sobre Barramentos, 603
D.3.1 Conceitos Básicos sobre Barramentos, 603
D.3.2 Elementos de Projeto e Funcionamento de um 13arramento, 605
D.3.2.1 Comparação entre o Barramento Síncrono e o Assíncrono, 610
D.3.3 O Barramento PCI. 61 O
D.3.3.1 Funcionamento do Padrão PCI, 612
D.3.3.2 Emprego da Arbitragem nos Barramentos PC I, 615
D.3.4 Sobre Alguns Barramentos, 616
D.3.4.l Tecnologia USB - Universal Serial Bus, 616
D.3.4.2 Tecnologia HypcrTransport. 617
Sn$W

xii / Smnário

0.3.4.3 Tecnologia Firewire (!EEE 1394). 618


D.3.4.4 Tecnologia AGP, 618
0.3.4.5 Tecnologia PCl Express, 619
0 .4 Circuitos de Apoio (Chipsets). 620
0.5 Organização de Dados na Memória do Tipo 13ig Endian e l ittle Endian, 621
D.6 Sobre a Representação de Números em Ponto FJutuance, 622
D.6.1 O Padrão IEEE-754, 1985, 624
0 .6.2 Erros e Arredondamento em Opernçõcs Aritméticas cm Ponto Flutuante no Padrão
lEEE-754, 628
O. 7 Sobre o Sistema de Entrada/ Saída (EIS), 629
D.7.1 lntroduç,io, 629
D.7.2 Sobre Teclados, 629
D. 7.2.1 Ernpas Oásicas do Funcionamento de um Teclado Utilizado
e111 Microcomputadores, 629
O.7.2.2 Um Pouco de História, 632
D. 7 .3 Sobre Vídeos, 633
D.7.3.1 Vídeos de Cristal Líquido - LCD, 634
D.7.3.2 Vídeos de Gás Plasma, 635
D.7.4 Tecnologias Alternativas parn Impressão cm Cores, 635
D.7 .S Sca1111ers, 637
Exercícios, 638

E CÓDIGOS D E REPRESE NTAÇÃO DE CARACTERES, 642


E.1 Tabelas de Códigos ASCII e EBCDIC, bem como Valores em Hexadeci111al, 645
E.2 O Unicode, 645

F G LOSSÁRIO, 64 7

BIBLIOGRAFIA, 658

RESP OSTAS D OS EXERCÍCIOS, 662

ÍND ICE, 694


Sn$W

Introdução

1.1 CONCEITOS BÁSICOS


1.1.1 Processamento de Dados
Um computador é uma máquina (conjunto de partes eletrô,úcas e eletromecârúcas) capaz de sistematica-
mente coletar, ma,úpular e fornecer os resultados da manipulação de i,úonnações para um ou mais objetivos.
Por ser uma máquina composta de vários circuitos e componentes eletrô,úcos, também foi chamado durante
algum tempo de equipamento de pr0<essa111e11ro e/e1r611ico de dados.
Processamento de dados (tradução do termo inglês Data Processi11g) consiste, então, em uma série de ativi-
dades ordenadamente realizadas, com o objetivo de produzir um arranjo determinado de informações a partir
de o utras obtidas inicialmente.
A manipulação das inforn,ações coletadas no irúcio da atividade chama-se pr0<essa111e1110; as i.Júonnações iiúciais
são usualmente denominadas dados.
Os tennos dado e i11for111ariío podem ser tratados como sinõrúmos ou como termos distintos; dado pode ser
definido como a matéria-prima originalmente obtida de uma ou mais fontes (etapa de coleta), e i11for111ação
como o resultado do processamento, isto é, o dado proce,;sado ou "acabado".
A Fig. 1. 1 mostra o esquema básico de um processamento de dados (manual ou automático), que resulta
em um produto acabado: a i,iformaçiío.
bifon11ação subentende dados orga,úzados (segundo um arra,tjo ou programação específica) para o atendi-
mento ou emprego de uma pe,;soa ou grupo que os recebe.
Como o conhecimento e a tomada de decisão s.ão importantes em várias áreas e cm diferentes níveis hie-
rárquicos de uma organização, a informação para uma determinada pessoa ou grupo pode ser considerada
como um dado para outra.
Por exemplo, o processamento eletrô,úco de dados (PED) de itens do estoque de uma empresa pode estar
estruturado para ser realizado em diferentes etapas. Na primeira, deseja-se apenas atualizar as informações de
est0que para uso do almoxarifado e, nesse caso, os dados (de entrada) são itens recebidos e retirados em um dia,
bem como a posição do dia anterior; o processameuto consistirá, basicamente, em operações arinnéticas de soma
e subtração (além de outras não principais); como resultado (de saída), obtêm-se informações sobre a nova
posição do estoque.
Numa segunda etapa, pode-se ter um outro tipo de processamento, dessa vez para produzir informações
para um outro nível de tomada de decisão. Nesse caso, utiliza-se como dados a posição do est0que (informa-
ção no processamento anterior); o processa111e1110 verificará quais itens estão abaixo de um mírúmo, e como
resultado (de saída) obtém-se a 11ova informação (itens especificamente selecionados).
Sn$W

2 / 1utrodução

DADOS RESULTADO: Informação


PROCESSAMENTO
(En1radas) (Saida)

Figura 1.1 Etapas básicas de um processamento de dados.

É claro que. nesse caso, um único processa1nenco poderá obter as duas informações. inas isso não impede
que constatemos a variação do emprego de dado e informação.
A obtenção de dados e a realização de seu processamento para produzir informações específicas são uma
atividade que vem sendo exercida desde os primórdios da civilização. O que tem variado com o correr do
tempo é, além naturalmente da tecnologia, o volume de dados a ser manipulado e a eficácia da manipulação,
medida em termos de velocidade e flexibilidade na obtenção das infonnaçõcs resultantes.
A busca de técnicas mais eficazes de processamento de dados, aliada ao natural avanço tecnológico cm di-
versos oucros ramos de atividade, como a eletrônica e a mecânica. por exemplo, conduziu o mundo ao desen-
volvimento de equipamentos de PED - os compuradores - capazes de coletar, armazenar e processar dados
muito mais rapidamente que os antigos meios manuais. Como veremos mais adiante, neste capítulo, o pri-
meiro computador (a máquina capaz de automatizar o processamento de dados) surgiu da necessidade de se
acelerar a realização de cálculos (processamento matemático de dados) .
Atualmente, com a imensa quantidade de informações que precisam ser conhecidas e atualizadas rapida-
1nence pelas empresas, a utilidade dos computadores deixou de ser apenas importante para se tornar essencial,
quase imprescindível em praticamente todo tipo de atividade.
O avanço tecnológico na área de telecomunicações também contribuiu de modo considerável para o cres-
cimento do uso de compuradores, visto que permitiu sua interligação, criando-se as redes de comunicação de
dados, sejam as in ternas a uma empresa ou aquelas que interligarn outras redes. O exe1nplo mais claro e de
conhecimento mais amplo do público em geral é o da lncernec, a rede mundial capaz de pennitir a comuni-
cação entre praticamente qualquer ripo de computador, alavancando, também, seu conhecimento e sua uti-
lização a áreas da sociedade muitas vezes distantes de qualquer tipo de tecnologia.
Quando se estuda ou analisa um computador, podemos trarar o assunto sob dois pontos de vista diferentes:
da organização (ou implemencação) e da arquitetura do computador.
A organização de um computador, também conhecida por implementação, é a parte do escudo da ciên-
cia da computação que trata dos aspectos relativos à parte do computador mais conhecida dos especialistas que
o construíram e cujo entendimento é desnecessário ao programador. São aspectos relativos aos componentes
fisicos específicos, como a tecnologia utilizada na construção da memória, a freqiiência do relógio, os sinais de
controle para iniciar a.~ mjcrooperaçõcs nas d iversas unidades da máquina.
A arquitetura do mesmo computador é uma outra parte da mesma ciência da computação, mais no nível de
conhecimento desejado pelo programador, visto que suas características (as da arquitetura de uma determina-
da máquina) tê1n impacto direto na elaboração de um progran1a. São elementos de uma arquitetura, o con-
junto de instruções de um processador, o tamanho da palavra, os modos de endereçamento das instruções, o
tipo e o tamanho dos dados manipulados pelo processador.
Como exemplo da distinção entre essas partes, podemos mencionar como elemento de decisão de uma
dada arquitetura se a sua unidade de controle será '' programada por hardware" ou se será microprogramada
(ver Cap. 6 e Apêndice D). Decidido, por exemplo, que ela será microprogramada, ent.10 um aspecto da
organização do processador a ser decidido refere-se ao tipo de tecnologia e ao tamanho da memória de con-
trole, que armazenará as microinstruções projetadas para o referido processador.
Desse modo, um fab1icante pode definir elementos característicos da arquitetura de uma "família'' de pro-
cessadorc-s e construir vários deles, cada um com uma diferente organização, um modelo diferente para venda .
Um exemplo típico é o da "famíliaº x86, da huel, que se constituiu, durante anos, na base de in(Hneros
processadores, desde o 80386 (mesmo antes já havia os processadores Intel 8086/8088) até o atual Pentium 4 .
Desse modo, tem sido possível aos usuários trocar de computador (de processador) sem precisar alterar seus
SU$W

T11trod11ção / 3

programas ou ter que recompilá-los (ver explicação sobre compilação no Apêndice C), visto que empregam,
em essência, a inesrna arquitetura.
No entanto, cada processador (386, 486, Pentium, Pentium Pro, Pentium li, Pentium Ili, Pentium 4) tem
características específicas de implementação, isto é, tem uma organização diferente da do outro, a qual afeta
seu interior e seu desempenho. mas não no que se refere ao usuário.
Na nossa vida cotidiana, consrumamos perceber essas diferenças entre arquitetura e organização em outros
ramos de atividade, embora não se utilize a mesma nomenclatura aqui apresenrada. É o caso, por exemplo, da
especificação da arquitetura de um edi6cio (como a quantidade de cômodos, o tipo de cobertura das paredes
da cozinha, se terá ou não varanda etc.). Dados semelhantes aos aspeccos de organização já indicados são os
dados de estrutura, cálculos de peso e de vigas, encanamentos etc.

1.1.2 H ardware e S o ftware


Este livro trata de computadores, de sua arquitetura e organização, sua estrutura funcional e 6sica.
Sendo uma máquina, o compucador é constituído de diversos componentes 6sicos, desde os menores, na
escala de nanômetros, como os rransistores, resistores e capacirores (componentes eletrônicos), a outros mai-
ores, como a válvula de raios catódicos, VRC (do termo inglês CRT- cathode ray cube), usada nos monitores
de vídeo, o teclado, o mouse, a fiação elétrica interna, as placas de circuito impresso e outros. En1 conjunto,
esses componentes formam a pa,~e conhecida como l,ardware' . A Fig. 1.2 mostra exemplos de componentes
(hardware) de computadores.
No entanto, se considerarmos apenas o hardware, este é um objeto inerte, sem qualquer atividade própria.
Ele requer (qualquer parte do hardware) uma instrução ou comando para realizar uma específica atividade,
por menor ou mais simples que seja.
O motor de um disco rígido (HD - hard disk) inicia sua roração após receber uma instrução específica
definida pelo fubricante; o braço desse mesmo disco também se move pelas trilhas por força de instrução ou
seqüência de instruções; quando pressionamos uma tecla de un1 teclado, uma série de instruções é executada
de modo a prover o aparecimento do corrcspondtmte caractere no vídeo, por exemplo . Além disso, podemos
escrever um conjunto de comandos (instruções) en1 uma seqüência específica e em uma linguagem especial-
mente definida para interação com a máquina (linguagem de programação de alto nível, como Pascal, Fortran,
C e outras) e obter os resultados mais diversos, confonne a ordem e o tipo de comandos escolhidos.
Essas instruções, que podem ser ordenadas de formas diferentes (e, conseqüentemence, produzir resultados
diferentes), foram denominadas seftware, em oposição ao rermo hardware. É o que conhecemos genericamente
como programas de compucador.
É o programa (software) que mostra a versatilidade e a "imeligência" do compurador. Assim, um determi -
nado compucador, fabricado com base em um processador específico, como o Pentium 4, por exemplo, ou o
AMO Athlon XP, pode controlar a abertura e fechamento de sinais de trânsito em uma região. Isto é realiza-
do pela execução de um programa, que manipula as instruções de máquina segundo uma detem1inada se-
qüência (o programa).
Este mesmo computador (com o mesmo processador e as mesmas instruções de máquina) pode servir para
edirar-se um texto ou acessar um site WWW ou ainda ajudar a controlar o estoque de um almoxarifudo.
Cada uma dessas atividades é realizada por meio da manipulação diferente (programa diferente) das mesmas
instruções, utilizando o mesmo hardware.
O termo hardware é uma palav':' original da língua inglesa, de uso comum, que identifica qualquer ferra-
menta (linrd significa duro, rígido. E um elemento dificil de modificar manualmente}, material físico. Porém,

1E.in in,glês. l1ar,fM1rr s.ig.11i60 ferrag<ns. Q~1:i.l<111~-r forr..a.mcnt:i como unu ch;m: <k parnfüso ou m\'Slno um.a p~'{J como um pirJfuso ou uma bica é h:irdw,uc:
cm inglês. um2 l<>j.1 dl.' fcm~-c,u é unu l1,11d1•u« Jl.,rr, No c111anto, em po rtugu~. $0IIICIIIC u...1m0& cw p:ibvr:,a p:ir.a idt:ntilic;;ir 111:iccria.l de çomputador.
Sn$W

4 / b11rod11ção

Monitor Cabo USB

~
Gabinete

.,,,. o,:::;,>
Teclado Pendrive

Mouse

Figura 1.2 Exemplos de hardware.

o termo seftivare surgiu na época dos computadores, para i11dicar o elemento que comanda as atividades do
hardware, a sua programação, suas inscruções e que podem facilmente ser alteradas manualmente. O tenno
inglês seft é o antônimo de hard e significa "macio" . Ou seja, o hardware é dificil de manipular, de alterar,
enquanto o software não.
l'lea!mente, pode-se facilmente reescrever uma linha (ou várias) de código, ou seja, i: simples manipular
um programa, o que não acontece, p. ex., se desejan11os acrescentar uma tecla em um teclado. Nesse caso, o
teclado teria que reton1ar ao fab1icante 1 para analisar o problema e projetar um novo teclado.

1.1.3 Computadores Digitais


Confo1111c já mencionamos antetionnente, o compucador é constituído de um c01tjunto de componenres
(hardware), capaz de realizar uma sé,ie de tarefus, de acordo com a seqiiência de ordens dadas aos componentes,
sendo essas ordens (ou insn·uções) em conjunto denominadas software. Vimos também que os computadores são
máquinas que manipulam dados para produzir produtos acabados, que chamamos genericamente de infonnações.
Assim, internamente um computador precisa ter um procctsso qualquer para representar não só os dados que
irá manipular (processar}, mas também as instruções ou ordens dadas aos seus componentes, como, por exemplo,

- captar um valor no dispositivo de entrada,


- somar um valor com outro,
- mover um valor de um local para outro,
- colocar um valor na porta de saída etc.
Sn$W

1utrodução / 5

O ser humano também pode realizar tarefas repetitivas ou seqüencialmcntc ordenadas, como quando exe-
cuta uma receita para fazer um bolo, como quando está efotuando o processamento anua) do imposto de ren-
da de forma manual (seguindo as instruções ordenadas existentes cm um manual), e assim por diante.
No caso do ser humano, tanto os dados que ele irá manipular para fazer a declaração de re nda (valores de
salários recebidos, resultados de somas e subtrações etc.) quanto as instruções do manual s.'io fonnados pelos
símbolos que nós. humanos. combi namos para representar informações, e que chamamos. por exemplo, de:

- caracteres alfabéticos (as letras, que podem ser maiúsculas e minúsculas, p. ex., a, G, x, T)
- caracteres numéricos ou números, fonnados por conju ntos de algarismos, p. ex., l26, 7, 34
- sinais de pontuação, p. ex., - , . ; (
- sinais representativos de operações matemáticas, p. ex., + * / , e assim por diante.
Na realidade, esses caracteres s.io graficamente representados pelos símbolos mostrados nos exemplos porque
nós, humanos, rendo capacidade visual (e sonora), podemos combinar um símbolo diferente para cada elemento
que desejamos representar em nossa linguagem escrita e auditiva. Desse 1nodo quando lemos mn livro, seja de
1

ficção ou técnico, conseguiinos compreender a mensagem do autor devido a esse acordo entre nós, que chama-
mos de linguagem de comunicação. As linguagens usadas pelos humanos são constituídas de símbolos, que re-
presentam a menor unidade de infonnação (caracteres, sinais de pontuação etc.) e regras de sintaxe e semântica
da linguagem, e assim nos connmicamos sem problema. 1-Iá no mundo diversas linguagens de comunicação,
usadas por diferentes grupos de pessoa~. como o português, o inglês, o francê-s e inúmeras outras.
No caso dos compm.adores, também há necessidade de se definir uma forma de representar internamente
os dados que ele recebe e processa e ainda as instruções que ele usa para eferuar seu processamento. Ou seja,
foi preciso definir uma linguagem de representação interna de dados/ i11sm1ções e de comunicação interna
para os computadores.
Tratando-se de uma máquina (que não possui nossa acuidade visual nem sonora). que é constituída em
grande parte de componentes elerrônicos, ou seja, componentes que são percorridos (utilizam-se de) por sinais
clér,icos, seja de tensão ou de corrente e cuja habilidade (razão de sua criação) é a manipulação de valores
numéricos, é bastante aceitável que seus c1iadores tenham decidido representar os dados a serem introduzidos
e manipulados internamente por algarismos ou dígitos (são palavras sinônimas) . Esses dígitos são internamente
representados por valores de tensão, um para cada símbolo diferente (visco que, não tendo a máquina acuidade
visual, não posso representar diferentes valores por síir1bolos diferentes, mas sim apenas por valoré'S diferentes
de tensfo elétrica). A Fig. 1.3 mostra exemplos comparativos dos símbolos com valores de tensão.

•4V
•3V

nnnn •2V
•1V
(1)

a 7 (2)

(1) Forma elétrica. usada em máquinas eletrônicas


(uma intensidade de sinal diferente para cada caractere)

(2) Forma gráfica simbôlica , usada pelos humanos


(um simbolo diferente para cada caractere)

Figura 1 .3 Exemplos de representação de dados pelos humanos e por uma máquina.


SU$W

6 / Jmroduçifo

Desse modo, vemos que para os humanos é facil criar e memorizar diversos símbolos d iferentes, um para
cada dado individual de informação de sua linguagem . Cross<> modo, podemos imaginar, considerando os ca-
racteres básicos de sua linguagem, cerca de 80 símbolos diferentes, entre os quais temos:

- 26 símbolos para caracteres alfabéticos minúsculos (letras minúsculas) - a b e d x gj ...... .


- 26 símbolos para caracteres alfabéticos maiúsculos (letras maiúsculas) - A B G O P V ..... .
- 4 símbolos para sinais de pontuação (. , ; : )
- 10 símbolos para caracteres numéricos (algarismos decimais) - O l 2 3 4 5 6 7 8 9
- 4 símbolos representativos de operações aritméticas - * - /
- n outros símbolos, como : ( ) ( ) " ' < > %# &

Como será mencionado adiante (ver Histórico, item 1.2), os computadores surgiram para resolwr de for-
ma mais rápida e confiável (sem os erros comuns aos h umanos em processos repetitivos) problemas matemá-
ticos e não-textuais, como vemos em livros e outros textos. Além disso, ficaria extl'e1namente di6cil para os
engenheiros criar mais de 80 níveis diferentes de tensão, u m para cada símbolo a ser usado (na realidade, os
humanos usam centenas de símbolos diferentes em suas comu nicações escritas e sonoras).
Dessa forma, optou-se por representar internamente os dados e instruções através de algarismos, os quais
são convertidos para sinais de tensão conforme o valor do algarismo. Assim, querendo-se introduzir como
dado o caractere a o u o caractere T, a máquina transfonna cm urn valo r numérico correspondente, segundo
uma combinação qualquer (código), o qual é internamente representado por um valor de tensão específico,
definido pelos fabricantes. D aí a razão de os computadores serem chamados de 111áq11i11as digitais, porque
representam os dados internamente e os manipulam por digitos (ou algarismos). E esses dígitos têm a propri-
edade de variar de valor discretamente no tempo. Ou seja, passa-se do valo r l para o 2 ou de um valor l para
o utro valor 1 se1n valores intermediários, sendo números inteiros e não reais, diferentemente d<! um outro
tipo de valor 011 grandeza que pode variar continuamente no tempo, e q ue chamamos de analógica.
Como costu mamos usar o siste1na decimal para numerar e processar matematicamente grandezas, seria
aceitável e compreensível que os cientistas que projetaram e construíra1n os priineiros computadores adotas-
sem algarismos decimais para a representação interna e para as unidades de cálculo daquelas máquinas. O com-
putador ENIAC, pronto em 1946 e con.siderado o primeiro (ou dos primeiros) computador surgido (ver
Histórico, itcn1 1.2) us.ava o sistema decimal internamente. Era, então, uma máquina digital (porque repre-
sentava os dados internos por dígitos) decimal (porque esses dígitos eram dígitos decimais - de Oa 9).
Mas essa forma de representação revelou-se desvantajosa em foce de inconvenientes de custo e confiabili-
dade. lendo-se custo em várias formas, como de consumo de energia, dissipação de calor etc., devido à neces-
sidade de usar 10 difere ntes níveis de tensão, conforme podemos observar na Fig. 1.4.
Isso se deve, em patte, à necessidade de se ter que adotar 10 diferentes rúveis de tensão, bem separados, de modo
a evitar conOitos de interpretação pelo sistema, corúonne exemplificado na Fig. 1.4, tendo em vista que, por ser
uma máquina fubricada industrialmente, há sempre variações internas de valores, assim como em nossas tomadas
elétricas de casa há constantes variações da tensão de entrada. Para garantir que o sistema vai entender corretamente
um valor adota-se uma margem de tolerância na sua interpretação, como mostrado na Fig. 1.5. Para um valor, p.
ex., de +3V para um dígito, o sistema é projetado para entender este dígito com valores entre +2,8V e+ 3,2V, e
para um outro dígito, cujo valor representativo é + 3,SV, sua tolerância de interpretação seria de +3,3V a + 3,7V.
Dessa forma, haveria uma pequena separação de tensão entre os dois dígitos (+3,2V para um e +3,3V para outro),
o que poderia acarretar um erro se essa margem fo~~e ligeiramente ultrapassada em algum caso.
Para se garantir que esse problema não ocorra, consideram-se margens de tolerância maio res e separações
entre os valores de cada algarismo também maiores. Isso, naturaln1cnte, conduz a valores de tensão de entrada
mais largos, para acomodar todos os valores de tensão de todos os digitos. Esse fato, obviamente, acarreta
malar consumo de energia e potência, con1 maior dissipação de calor, como mencionado antes.
Considerando todos esses inconvenientes. verificou-se, então, que o mais confiável e de menor custo se1ia
adotar uma m.enor quantidade de valores de tensão diferentes para representar os dígitos internamente, o que
SDêW

3,5
8
3,0
2,5
7
-
2,0 ·- ...3
1,5 -2
1,0

·-
-
o
4
0,5
n
-0,5 --
-1 ,0 ·- -1
-1 ,5 - ..
5
-2,0
6
-2,5 ·- ... figura 1.-4 Exemplo de r·e pr,e sentaçã,o de 1(!1
9
-M - algarismos por níveis d,e tensão, difurenties, ent
máiquina dec· mai .

Tolerincia

---- - - ...._________,.
Possibilidade de oonftito

dlígito 1 digito z
Figura 1.5 xe-mplo de possibilidade de conflito na inte:rpretaçio de doi1; valo:re-s.

significa adotar um s;i tema onde os. dados eriam repres.ent:ad.o e manipulado por poucos dígitos difi:r m ,
Em outta palavra em vez d u ar o si tema decimal, adotar um sistema menor (n enor quantidade de sím-
bolo , menor ba; e) endo o menor, como o de base 8 {oiro aig:arismos., em vez de 10) ou base 2 (apeias dois
algari mos difer ntes., e 1).
Além d as vamagc 1 ·, cm teima de custo e r cursos., foram considerados, ramb-;m outros. fat_ores important :

- o hard;,; are bá jco (inicialmente válvufa~. n:1 '· , chavl?$ <;;te. e po.•m:riom1entc o tran i tore ) é biná,io,
poi. deix, ou não pa!>:!ar conente;, a porta 1;; tão b ·rtas. ou :6·chadas; os campo magn'·tico r pres ·ntativo 0

de uin dígito., e, 1 detern ·nado dispo irivo de armazenamento, podem e tar or· entado · em uma ou outra
direção; um:;1. marca ótica ex· te ou não, e a s.irn por diante.
- a lói:ica de pwgramação é do tipo: SE ondição verdadeira ENTÃO faça 3..'>!im, Í!m, a".s:ím etc., E-
ÃO foça as.sim, a sim etc. ENTÃO e SE ÀO são ca:minho elementos binário poi c!>colhc-sc E ÃO
ou E Ao. E 3 sim por diante.

Em resumo, mna máquina com hnguag,em binária (apena dígito O e '1) cria .mai~ ha:rau mai confiávd,
comumiria meno reem me poderi p:roce . ar dado. de modo mais eficicntt: do que uma outra que u. a.s.sc
mais digito. E o r.jolm von emnann a im fez seu IAS ( 'ritem. 1.2) foi esp cificado como uma máqui-
Sn$W

8 / Jutroduçiio

na digital binária. E as demais máquinas desde então têm sido digitais binárias. A sua linguagem de máquina é
digital binária, a máquina realiza operações matemáticas através das regras do sistema binário .
Atualmente, como só temos máquinas (computadores) digitais biná,ias, é redundante escrever digital biná-
rio, e digital virou usinônimo" de djgital binário.

1. 1.4 Sistemas
Um sistema pode ser definido de diferentes maneiras. Um sistema pode ser compreendido, por exemplo,
como um conjunto de partes que cooperam para atingir um objetivo comum. Porém, a definição que parece
mais apropriada para nossas concdtuações é a seguinte. ligeiramente diferente da anterior:
"Conjunto de parces coordenadas que concorrem para a realização de mn determinado objetivo".
Atua1mence, o enfoque siscê1nico se fuz presente em quase todas as áreas do dcsenvolvim.cnco comercial,
científico, industrial e social.
Temos conhecimento do sistema de transporte de uma cidade, um conjunco de partes (os ônibus, as ruas,
os motoristas e trocadores, as pessoas) que se integram (através das normas e trajetos aprovados pela prefeitura
da cidade) para atingir o objetivo de trnnsporrar pcssoa.s de um local para outro de forma eficaz (o q ue nem
sempre acontece ... ). Conhecemos o utros sistemas, como o sistema circulatório do corpo humano. o sistema
econômico do país (!!!!) etc.
O processamento eletrônico de dados, devido à sua própria natureza, a de ser um conjunto de componentes
separados que se integram segundo procedimentos e regras previamente estabelecidos, vem-se desenvolvendo
de acordo com os conceitos da Teo,ia de Sistemas e, por essa razão, é chamado de sistema de computação.
É sistema porque é um conjunto de partes que se coordenam (o teclado, a memória, o processador, os
dispositivos perifcricos, os programas) para a realização de um objetivo: computar (por isso é de computação).
Computar significa taltular, realizar cálculos matemáticos. Os computadores são máquinas de computar, de
calcular, de realizar operações matemáticas. O primeiro computador, desenvolvido na década de 1940, tinha
o objetivo de acelerar cálculos balísticos para o exército americano (ver item 1.2). E daí em diante os compu-
tadores não pararam de evoluir tecnologicamenre, mas continuaram sendo equipamentos para computar. Mesmo
quando um processador está sendo usado para processar texto ele o fuz através de cálculos matemáticos, como
também acontece quando ele realiza processamenco gráfico e o utros mais.
Calcular, realizar operações matemáticas, é uma tarefa a ser executada com valores, com dados. O cálculo
matemático com valores numéricos nada mais é do que a numipulação desses valores. O resultado de mna
operação matemática é normalmente armazenado em uma céluJa de memória ou registrador do processador,
o que se trata de outro tipo de manipulação dos dados. E assim por diante, Na realidade, um computador
realiza contínuas e constantes manipulações de dados. A manipulação dos dados, realizada segundo instruções
de um programa, é conhecida como processamento dos dados.
Sistemas de processamento de dados são aqueles responsáveis pela coleta, armazenamento, processamento
e recuperação, em equipamentos de: processamento detrôn ico. dos dados necessários ao funcionamento de
um ouc.ro sistema maior: o sistema de informações.
O sistema de informações de uma emprc~ pode ser conceituado como o conjunto de métodos, processos
e equipamentos ncce-ssá1ios para se obter, processar e utilizar informações dentro da empresa. Dessa forma, ele
compreende não só o SPD (Sistema de Processamento de Dados) como também todos os procedimentos
manuais necessários a prover infonnaçõt:s para um determjnado nível de decisão de uma organização.
Em qualquer organização, os sistemas de informações se desenvolvem segundo duas dimensões: os COIIIJ>I)·
11eutes da orga11ização, isto é, seus diversos setores funcionais, e o uível de decisão, o qual obedece a uma hierar-
quia clássica, de níveis:
• nível operaciona1 (de execução corriqueira e imediata, de competência dos menores escalões);
• nível gerencial (de nível intennedjário, de competência da gerência sec.oriaJ);
• alto nível da organização (de nível estratégico, de competência da diretoria).
Sn$W

lntrmluçiio / 9

O tipo de decisão tomada em cada nível requer um diference grau de agregação da informação e, em con-
seqüência, d iferences tipos de relatórios e/ou apresentação e uso da info1111ação.
Dentro desse enfoque, um sistema de informações gerenciais (SIC) pode ser conceitt1ado como o sistema
de informação que engloba todos os componentes e todos os níveis de decisão de uma organização.
Em geral, um sistema de processamento de dados compreende duas parces: o sistema de computação (o
computador e os programas básicos) e os sistemas de aplicação. Os primeiros. normalmente fornecidos com-
pletos pelo fabricante ou por fornecedores específicos, e os últimos, desenvolvidos pelo usuário ou por tercei-
ros, especificamente dedicados a uma aplicação de interesse do usuário.

1. 1.5 Sistemas de Computação


Qualquer processamento de dados requer a execução de uma série de etapas, que podem ser realizadas de
fonna manual ou automática por um computador. Tais etapas, daborndas e executadas passo a passo, consti-
ruein o que se chama programn. Cada um dos passos mencionados é uma diferente instrução, ou ordem de
comando, dada ao hardware, objerivando a realização de uma determinada ação (uma operação aritmética,
uma transferência de informação etc.). O programa é o conjunto de instruções.
Consideremos que se deseja, por ~xemplo, somar 100 nún1eros e imprimir o resultado. Se o processo é 1na-
nual, precisa-se de uma máquina de somar e outra de escrever, bem como de uma pessoa que executará e.odas as
etapas. Estas poderão <>star relacionadas em um papel, de modo que o operador não cometa erros nem se esqueça
de alguma etapa. devendo ser executadas sistematica1nente uma após outra. confonne rnosc111do na Fig, 1.6.
1

1. Escrever e guardar N=0 e SOMA=0


2. Ler número da entrada
3. Somar valor do número ao de SOMA e guardar resultado como SOMA
4. Somar 1 ao valor de N e guardar resultado como novo N
5. Se valor de N for menor que 100, então passar para item 2
6. Senão: imprimir valor de SOMA
7. Parar

Figura 1.6 Algoritmo para soma de 100 números.

Uma pessoa é capaz de executar a soma, cujo algoritmo é apresentado na Fig. l.6, através de vai;ações sobre
as etapas indicadas, mas un1 computador, sendo uma máquina, requer instruções precisas e completas sobre
cada passo que deva executar.
O grupo de passos relacionado na figura constitui um algoritmo. Algoritmo é 11111 conjunto de etapas finitas,
ordenadamente definidas, com o propósito de obter solução para ulll determinado problema. O tenno "finitas"
significa a necessidade de um requisito qualquer que estabeleça o final da execução do algoritlllo; no exemplo
dado, podemos observar, na etapa 5, que a execução das etapas de 2 a 4 se repete enquanto N<100. Esta é,
pois, a cláusula de parada.
A Fig. 1.7 mostra um esquema da execução manual do programa gerado pelo algoritmo da Fig. 1.6, obser-
v:.mdo-se nele as etapas básicas.

ENTRADA PROCESSAMENTO SAÍDA

Digitação Cálcu!O e tes1es lmpJessão


do l)l'ograma dos resultados
e dos dados

Figura 1.7 Fases de processamento de um progu1na.


Sn$W

10 / [tltrodução

As etapas de um algoritmo $:lo as instruções que deverão ser executadas por uma máquina (quando falamos
de computadores); o conjunto de instruções constitui o que chamamos de programa. Um programa de com-
putador é a formalização de um algoritmo em linguagem inteligível pelo computador.
Assim como o operador deve ter entendido os sete passos do programa apresemado na Fig. 1.6, um com-
putador precisa entender cada instrução, de modo a executar corrctamenre a operação que se pretende. O
operador entende português, sua linguage1n de con1unicação com o utras pessoas; os computadores têm uma
linguagem própria - a linguagem binária, conforme n1ostrado no item anterior. Nesta Jinguagem. os caracte-
res inteligíveis não são A, 8, +, =, O, 3 etc., mas apenas zero (O) e um (1). Todo dado coletado pelos com-
putadores, as instruções por ele executadas, bem como os resultados de um processamento, são sempre cons-
tituídos de conjuntos ordenados de zeros e 1111s.
No entanto, essa linguagem, chamada de linguagem de máquina, é, para osscr<:'$ humanos, tediosa de manipular,
dificil de compreender e fãcil de acaJTetar e1T0S. Por essa razfo, foram desenvolvidas oueras linguagens, mais próximas
do entendimento dos operadores, genericamente chamadas litt~11nge11s de pmgmmnçào. Atualmente, há dezenas dessas
linguagens, tais como Cobol, Pascal, Fortran, Visual Basic, Lisp, Assembly, C e Visual C, Oelphi, Ada, Java etc.
Cada uma dessas linguagens possui regras fixas e 1ígidas de sintaxe, scmelhames às das linguagens de comunicação
humana, tais como português, inglês etc. (embora estas não possuam sintaxe tão rígida). O programador escreve o
programa através da descrição de instrução por inscn,çào (como fizemos nos passos de 1 a 7 da Fig. 1.6).
Tal programa não é, entretanto, possível de ser di ret.an1enc.e executado pela máquina. visto que as lingua-
gens de programação são apenas um modo de o operador comunicar-se com o computador. A máquina so-
meme entende e executa instruções mais simples, chamadas instruções de máquina.
Todo computador é construído co1n circuitos eletrônicos capazes de reconhecer e executar diretamente
apenas um conjunto limitado e simples de instruções de máquina, nas quais todo programa (escrito em Pascal,
C, Oelphi, Java etc.) deve ser convertido antes de ser cxecurado. Essas instruções são n01malmente do tipo:
• executar operações aritméticas sobre dois números;
• executar operações lógicas sobre dois números;
• mover um conjunto de bits (um número ou parte) de um ponto para outro do computador;
• desviar a seqüência do programa;
• fazer a comunicação com algum dispositivo de entrada ou saída de dados.
Em resumo, o computador, sendo uma máquina, precisa de ºordens'' específicas (suas instruções) para execu-
taras atividades para as quais foi construído. Durante seu projeto, seu idealizador definiu que sua n1áquina deverá
realizar un1 conjunto de operações básicas, conto, por exemplo, "soinar dois núrneros", multiplicar dois núme-
ros", ''mover um dado de uma área da 1nemória para o processador", "transfe1ir um dado da memó1ia para um
periferico" etc. Essas operações básicas (muitas vezes conhecidas como operações primitivas) são formalizadas
como instruções da máquina, sendo sua definição fonnal convertida em um conjunto de bits e sua implemt:nta-
ção estabelecida no processador, vindo da fabrica em seu interior; o método de implementar as inscn1ções primi-
tivas em um processador pode variar (microprogramas são um tipo, p. ex.), conforme veremos no Cap. 6.
Essa formalização em instruções de máquina constitui a "linguagem" de comunicação dos humanos com a
máquina e desta intcrnamt!nte entre seus componentes.
Assim como os humanos possuem urna linguagem próp1ia, c1iada e desenvolvida ao longo do tempo para
permitir nossa comunicação cotidiana (português, inglês, hebraico, francês. cspan ho1, alemão são exemplos
de linguagens da raça humana), também_foi necessário criar urna Linguagem, aliás existem diversas, para co-
municação dos compmadores, a primeira das quais e mais básica é denominada linguagem de máquina, e é
imprc-scindívcl para o funcionamento de qualquer computador.
No entanto, como já mencionamos anrerionnente, criar programas (organizar centenas, milhares de instruções
binárias, cheias de O e 1, se tomou praticamente inviável em temias de perda de tempo, custo de pessoal, entre
outros problemas, razão por que surgiram as linguagens chamadas de "alto 1úvel" ou "orientada a aplicação". O
nome alto nívd decorre naturalmente do futo de essas linguagens serem mais distantes da fonna de entendimento
SU$W

llltroduçao / 11

do process.,dor e mais próximas do entendimento do programador, do ser humano, tendo características semelhantes
às nossas linguagens de comunicação. Dadas as semelhanças com as linguagens dos humanos, que peniútem ao
programador pensar usando fonnas às quais ele já está habituado, tais como palavras da sua língua (as linguagens mais
conhecidas foram desenvolvid'IS utilizando-se palavras da língua ingles.1), sinais de operações matemáticas(+, - , / *),
seu emprego t0niou-se mais vantajoso do que a utilização de símbolos pouco inteligívei.s.
A Fig. 1.8 mostra um trecho de programa criado em três linguagens diferemes, com a finalidade de mostrar
ao leitor, neste estágio inicial de entendimento sobre um computador e suas características, as diferenças mais
visíveis entre elas, a principal sendo a clareza e a concisão. Como se pode observar nos exemplos da figura, o

Linguagem Delphi
Procedure Tforml . TestAsm;
var I, Total : Integer;
begin
Total, =O ,
For I ,= 1 To 5 do
Total :=Total+lO;
end;

Linguagem Assembly
push ebp
rnov ebp, esp
add esp, -$0c
mov [ebp-$04], eax

xor eax, eax


mov [ebp-$0c], eax

rnov[ebp-$08], $00000001

add dword ptr [ebp-$0c], $0a

inc dword ptr [ebp -$08]


cmp dword ptr [epb-$08], $06
jnz TForml.TestAsm + $15

mov esp, ebp


pop ebp
ret

Linguagem de Máquina (binário)


01010101
00010 111 1101 100
100000111100010011110100
100010010100010111111100
001100 1111001101
100010010100010111111100
1100011101000101111100001000000
10000011010001011111010000001010

111111110100010111111000
100000 11011 111011 111 1000000001 10
01110 101111 10011
1000101111100101
0101 11 01
11000011

Figura 1.8 Exemplo de programas cm Dclphi, Assembly e linguagem de máquina (binário).


Sn$W

12 / Iu1rod11çiio

trecho do programa escrito em linguagem de alto nível possui muito menos linhas de código do que o mesmo
programa convertido para a linguagen1 binátia da máquina.
Uma o utra vantagem dessas linguagens reside no fato de que, em fàce de suas semelhanças com as lingua-
gens dos humanos, elas podem ser definidas para atender requisitos e intenções específicas de emprego. Assim
é que a linguagem Cobol foi definida para emprego em programas comerciais, Fortran é mais bem utilizada
em programação cienc:ífica, além das linguagens surgidas n,ais recente1nente com o desenvolvimento dos sis-
1

temas gráficos (Visual llasic, Visual C), e assim por diante.


Ainda há outras vantagens do uso de linguagens de alto nível sobre a li11guagem de máquina, entre as quais
pode-se citar:
a) a concisão das linguagens de alto nível, se comparadas com programas binários (ver Fig. 1.8). Neste
úkimo caso, os programas são mais longos e de di6ci1 e1uendilnento em face das instruções serem mais
simples, portanto exigindo rnuitas para cada item operacional. Por exemplo. em uma linguagem de
alto nível teríamos o seguinte con1ando:
X: = A + 13 / (C * D - A),
o qual poderia se transfonnar nas seguintes instruções binárias:
1000111000000111
0000111000001100
01111 11000001111
0·10·11·11 000001001
1100111 00000 1110
0011111 00001 1000
01 1111100001 101 1
1110111000100011
O exemplo é ilustrativo das diferenças apontadas e já obse1vadas na Fig. l.8.

1.2 HISTÓRICO
Embora o conhecimento histórico da evolução dos computadores não seja essencial para compreender seu füncio-
namento, é interessante que o leitor possa ter oporttnúdade de acompanhar historicamente seu desenvolvimento.
É comum encontrar cm livros sobre o assunto uma divisão histórica da evolução dos computadores segun-
do o elemcnro cletrônico básico de sua o rganização: válvulas, transisrores, circuitos integrados, pastilhas de
alta e muito alta integração (VLST).
Uma outra classificação histórica baseia-se em épocas limitadas por acontecimentos marcames da evolução
da computação. Neste texto, procurarcn1:os descrever uma combinação desses dois aspectos.
Podemos separar os aconteci1nentos crono1ogicamente e confonne seu componente básico. Assi1n, ten10s
a segu inte divisão:
- dispositivos mecânicos (do ábaco a Babbagc);
- dispositivos eletromecânicos {do cattào HoUerith ao Mark !);
- dispositivos elerrônicos (até o Eniac);
- computadores - equipamentos eletrônicos de processamento de dados:
Com válvulas (ou primeira geração) ;
Com transístores (ou segunda geração);
Com circ uitos integrados, IC (ou terceira geração)
Com integração cm larga escala, VLSI (chips) (ou quarta geração)
Sn$W

/utroduçiio / 13

Passaremos de fonna especial sobre os microprocessadores. base dos compmadores pessoais, portáteis e móveis.
atualmente existentes aos milhões no 111undo inteiro.

1.2.1 Época dos Dispositivos Mecânicos (3000 a .e. - 1880)


O conceito de efetuar cálculos com algu m tipo de equipamento vem dos chineses, com registros de sua
existência e m 2500 a 3000 a.C. Esses equipamentos eram chamados de ábacos e:,, postc:,riormente, tem-se regis-
tros do uso desses ábacos pelos babilónios e pelos romanos.
Esse dispositivo (ver Fig. 1.9) permitia a contagem de valores, tomando possível aos comerciantes babilónicos
rcgistrar dados numéiicos sobre suas colheitas. Também os romanos se serviram muito dos ábacos para efetuar
cálculos aritméticos simples, registrando valores de o utra forma (ver Apêndice A para explicação sobre alga-
,;smos romanos). Até hoje há quem use 1.11 tipo de dispositivo, ainda popular na China, por exemplo .

Figura 1.9 Exemplo de um ábaco.

Unia evolução conhecida do ábaco surgiu c m ISOO, através de um calculador mecânico inventado por
Leonardo da Vinci; em 1621 apareceu outra invenção para cálculos, a conhecida régua de cálculo. Mas foi no
século XVII (em 1642) que surgiu efetivamente uma máquina para cálculos, quando o filósofo e matemático
francês Blaisc Pascal, aos 19 anos. m1 cidade francesa de Rouen, constru iu um contador mecânico que rc:a)j-
zava operações aritméticas de soma e subtração através de rodas e engrenagens dentadas. Esse instrumento,
posteriormente denominado Pascalina, em homenagem ao seu inventor, foi idealiiado para auxiliá-lo em seu
trabalho de contabilidade e consistia em seis engrenagens dentadas, com um ponteiro indicando o valo r deci-
mal escolhido o u calculado. Cada engrenagem continha 1O dentes que, após efemarem um giro completo,
acarretavam o avanço de um dente de mna segunda engrenagem, exatamente o rne-smo princípio de um
hodômetro de automóvel e base de todas as calculadoras mecânicas. Cada conjunto de ponteiros era usado
como um registmdor para annazenar temporariamente o valor de um número. Um registrador atuava como
aw11111/ador, para guardar resultados e uma parcela. O o utro registrador era utilizado para se introduzir um
valor a ser somado ou subtraído do valor annazenado no acumulador. Q uando se acionava a manivela e a
máquina era colocada cm movimento. os dois valores eran1 adicionados e o resultado aparecia no acumula-
dor. O calculador de Pascal apresentou duas significativas inovações tecnológicas para sua época:
1) penniria o uso de "vai I", passado automaticamente para a pareda seguinte; e
2) utilizava o conceito de complemento para realizar operações aritméticas de subtração através de soma
de complemento (esse conceito é até hoje essencialmente a base de funcionamento dos circuitos de
operação aritmética em ponto fixo dos computadores).
A máquina, embora rudiment.1r. era eficaz para sua época. sendo inteira1nente mecânica e não automática
(funcionava por comando de uma manivela acionada manualmente). A linguagem de programação PASCAL
foi assim chamada em ho nra desse cientista pdo seu trabalho pioneiro em rnatemática e também devido à sua
invenção.
Sn$W

14 / I111rod11çiio

Algum tempo após a invenção de Pascal, outro filósofo e matemático, dessa vez alemão, Gottfried Leibniz.
construiu uma calculadora mais completa que a de Pascal, porque realizava as quatro operações aritméticas, e
não apenas a adição e subtração, como a Pascalina. O calculador mecânico de Leibniz era uma duplicata do
calculador de Pascal acrescido de dois conjun tos adicionais de rodas, as quais perm.itiam a realização de mul-
tiplicação e divisão por meio de um processo de operações sucessivas (sabemos ser possível realizar multipli-
cações por somas sucessivas e divisão por subtrações sucessivas). Ambas as máquinas, a de Pascal e a de Leibniz,
eram manuais.
A primeira utilização prática de dispositivos mecânicos para computar dados automaticamente data do iní-
cio de 1800. Naquela época, aconteceram muitas contribuições para o desenvolvimento inicial dos computa-
dores, sendo obtidas do aperfeiçoamento de processos cm uma área inteiram ente diferente de computação -
a de tecelagem. Em 1801,Josephjacquard produziu com sucesso um retrato em tecelagem, cuja produção foi
inteiramente realizada de forn1a n1ecânica e controlada automaticamente por instruções registradas em orifi-
cios em cartões perfurados. Um dos mais conhecidos resultados desse processo, de realização de tarefas de
tecelagem por uma máquina controlada por programa armazenado, foi o retrato do próprio Joseph Jacquard
cm uma tapeçaria, o qual consumiu 24.000 cartões.
Um dos últimos e mais importantes trabalhos pioneiros em compurnçào por processos mecânicos foi rea-
lizado por um inglês de nome Charles Babbage, que, .::m 1823, foi contratado pda Royal Astronomical Society
of G reat Britain para produzir uma máquina calculado,-a prog,-amável, com a finalidade de gerar rnbelas de
navegação para a marinha britânica.
Em seu trabalho, Dabbage projetou dois tipos de máquina: a máq11i11a de diferenças e a 111áq11i11a a11al/tica.
A primeira delas, a 111áq11i11a de difere11ças, foi j usrnmentc idealizada para atender às necessidades da Marinha
Rea] Inglesa. Na época, as tabelas de navegação eram escritas nHmualmcntc por diversos funcionários, contra-
tados para:
1) realizar sucessivas e n,petitivas operações de adição e multiplicação e
2) imprimir os resulrndos, escrevendo-os.
Foi constatado que, devido à natureza pen11anentc e repetitiva do processo realizado por humanos, sempre
ocorriam erros (tanto nos cálculos, q uanto na ocasião de rcgistr.ir por .::scrito os resultados). O que Babbage se
propunha (por contrato) era projetar uma máquina que realizasse de forma constante e sem erros o tedioso
trabalho de cálculos, e registrasse, de forma também confiável, os resulrndos.
A 111áq11i11a de difere11ças (as.sim chamada devido ao nome do proc.::sso matemático de cálculo utilizado por
da - diferenças finitas) era um dispositivo mecânico que só realizava adições e subtrações (como a máquina de
Pascal) e cujos cálculos matemáticos se baseavam no processo de difere nças finitas, pelo qual é possível calcular
fórmulas (até com polinõmios e funções trigonométricas) utilizando apenas a operação de adição (a descrição
detalhada do método e do trabalho de Babbage pode ser encontrada em fDUUD 78]). Ela era constituída de
um conj unto de registradores mecânicos, cada um contendo rodas com dígitos, que serviam para annazenar
um valor decimal. A exemplo da calculadora de Pascal, dois rcgistradorcs adjacentes c::ram conectados por um
mecanisrno de efetuar sornas. A máquina era acionada por um motor movido a vapor. que realizava uma série
de etapas e finalmente apresentava um resultado. Além disso, ela continha um dispositivo de g1-avaçào em
uma chapa de cobre, uma espécie de agulha que marcava os valores na chapa, a qual servia de 1natriz para
posterior impress.io cm papel. Esse processo de gravação pode ser considerado como pioneiro em termos de
dispositivos de armazenamento secundário .
Babbage projdou algumas dessas máquinas, capazes de realizar cákulos com valores de até 15 algarismos e
com polinõmios de até 3. 0 grau. Ele conseguiu convencer o governo inglês a financiar a construção de uma
máquina mais sofisticada e precisa, capaz de calcular polinômios de até 6.0 grau e números de até 20 dígitos.
Essa máquina nunca funcionou, e após 1nuito dinheiro gasto pelo governo e, dize1n, todo o de 13abbage, o
governo inglês dcsis,iu do projeto.
Esse novo tipo de máquina foi chamado pelo seu inventor de mhq11i11n aualftica.
A máquina era, na realidade, um computador mecânico capaz de a1111azenar 1.000 números de 20 algarismos
e que possuía um programa que podia modificar o funcionamento da máquina, fazendo-a realizar diferentes
Sn$ W

lurmdução / 15

cálculos. Esta era de fato a sua grande diferença e vantagem sobre as anteriores, o fato de se tornar de uso mais
geral por possuir a capacidade de modificar suas operações e assim realizar diferentes cálculo,. Pode-se dizer
que essa máquina foi a precursora dos primeiros computadores elecrônicos, inclusive no seu método de intro-
duzir instruções por ca1tõcs perfurados (muito usado nas primeiras gerações de computadores detrônicos) .
Embora inteiramente mecânica. a máquina analítica de Charles Babbage possuía essencialmente os mesmos
componentes que u,n compucadol' atual:
• memória: constituída de rodas dentadas de contagem;
• processador: com uma unidade capaz de realizar as quatro operações aritméticas (operando com pares de
registradores) e "unidade de controle'' . constituída de cartões perfurados convenientemente para realizar esta
ou aquela operação;
• saída: para uma impressora ou para um dispositivo perfurador de cartõcs.
Além da fundamental característica de realização de progi-amas de emprego geral, o projeto ainda acrescen-
tou a capacidade de desvio da seqüência de ações da máquina, isto é, um prenúncio do que mais tarde (nos
1
atuais computadores) seiiam as instruções "Jump (desvio incondicional) e p. ex ., "Jump on zero" (dcsvio

condicional).
Alguns pesquisadores acreditam que Babbagc utilizou cm seus cartões perfurados a idéia de Jacques Jacquard,
anteriormenre eirado.
O projeto final de Babbage. que pretendia ter a capacidade nào de calcular valores com 20 dígitos, mas sim
com 50 algarismos, nunca chegou a se:: ton1ar uma realidade física. talvez por estar realmente avançado demais
p:lra a época, quando a tecnologia de fabricação dos dispositivos neccs.sários ao fimcionarnento das engrena-
gens não tinha a devida capacidade.
Alguns o utros detalhes histó1icos interessantes podem ser citados, como a estimativa de Babbage de que sua
máquina deveria realizar uma operação de adição c:m um segundo e uma multiplicação em um minuto, e que
o progr:-1111a c1iado para fazer a máquina funcionar foi desenvolvido por uma moça chamada Ada Lovelace.
que pode ser, então, considerada a primeira programadora de computador d.i história, e que deu seu nome
para a modema linguagem de programação ADA, desenvolvida para o Departamento de Defesa dos EUA.

1.2.2 Época dos Dispositivos Eletromecânicos (1880-1930)


Com a invenção do motor déni co no fim do século XIX. surgiu uma grande quantidade de máquinas de
somar acionadas por motores elétricos baseadas no princípio de funcionamento da máquina de Pascal. Essas
máquinas se tornaram dispositivos comuns cm qualquer escritório até o advento das modernas calculadoras de
bolso, cm 1970.
Em 1889, Herman Hollerith desenvolveu o cartão perfurado para guardar dados (sempre o cartão perfura-
do, desde Jacques Jacquard) e também uma máquina tabuladora rnecânic::1, acionada por um mocor elétrico,
que contava, classificava e ordenava informações annazenadas em cartões perfurados. Por causa dessa inven-
ção, o Bureau ofCensus dos EUA conrrarou Hollerith cm 1890 para utilizar sua máquina tabuladora na apu-
ração de dados do censo de 1890. O censo foi apurado cm dois anos e meio, apesar do aumento da população
de 50 para 63 milhões de habitantes em relação ao censo de 1880, que consumiu quase l Oanos de processa-
mento manual.
O sucesso de Hollerith com a apuração do censo conduziu à criação, c m 1896, da Tabulating Machine
Company, por onde Hollerith vendia uma linha de máquinas de tabulação com cartões perfm-ados. Em 191-1,
um banqueiro persuadiu três companhias a se juntarem, entre ebs a empresa de Hollerith, formando a Computer
Tabulating R.ecording Corporation. Thomas Watson foi contratado como gerente geral, e em 1924 ele mudou
o nome da companhia para IBM - Intemational Business Machines, logo após ter iniciado no Canadá uma
bem-sucedida filial. Atualmente, os cartões perfurados nào sào mais utilizados (até a década de 1980 eles fo-
ram um dos principais elementos de entrada de dados dos computadores d igitais, inclusive nos IBM/360/370
e de outros fabricantes). Também eram chamados de cartões Holle,ith, assim como o código de 12 bits por
eles us.1do também se denominava código Holletith.
SU$W

16 / fotmduçifo

A primeira máquina de calcular cletrônica somente surgiu por volta de 1935, e seu inventor foi um estu-
dante de engenharia alemão, Konrad Zusc, cuja idéia consistia cm c liar uma máquina que usava relés mecâ-
nicos que, atuando con10 chaves, podiam abrir ou fechar auto1naticainente o que levou à utilização de nú-
1

meros binários em vez de algarismos decimais, utilizados nas engrenagens da máquina de Babbage.
Em 1936, Zusc deixou de ser estudante e profis.5ionalmente ciiou sua primeira máquina, chamada Z 1, baseada
cm rdés mecânicos. que usava um teclado como dispositivo de entrada e lâmpadas (dispositivo binário - acesa
e apagada) como componente de saída (o primeiro microcomputador com ercial, o Altair, em 1974, rambém
usava lâmpadas como dispositivo de saída embora ainda não ernpregasse o teclado como dispositivo de entra-
1

da). Zuse realizou alguns aperfeiçoamemos em seu "computador" até concluir, em 1941, o Z3, o qual utili-
zava relês eletromecânicos e era controlado por programa, sendo talvez o primeiro computador efetivamente
operacional do mundo. Um outro modelo mais aperfeiçoado, o Z4, foi usado pelos militares alemães para
auxiliar no projeto de aviões e mísseis durante a Segu nda Guerra Mundial. Provavelmente Zuse te,ia desen-
volvido máquinas de maior capacidade e versatiJidade St! rivesst! sido mais bem financiado pdo governo ale-
1nào. Os bombardeios aliados na Alemanha destruíram a maior parte dos computadores construídos por Zuse,
e por isso o seu trabalho foi praticamente perdido, restando apenas o registro histórico dessas invenções.
Outro "inventor" da época de dispositivos eletroinecânicos foi Howard Aiken, un1 fisico e rnacen1ático
americano que desenvolveu um "computador", o Mark 1, u tilizando os princípios básicos da máquina de
Babbage (era um sistema decimal e não binário, como os de Zusc), com engrenagens decimais e com estru-
tura computacional baseada em relés eletromecânicos. O projeto, que foi financiado pela IBM, era capaz de
armazenar 72 números, e as instruções de dois operarldos erarn introduzidas na 1náquina por meio de uma 6ca
de papel perforndo. Ao ser completado, em 1944, o Mark I podia realizar uma soma em seis segundos e uma
divisão em 12 segundos (Charles Babbage imaginava que sua máquina analítica poderia realizar uma adição
em um segundo). No entanto, a clctrônicajá começava a substituir elementos eletromecânicos por dispositi-
vos muito mais rápidos, as válvulas, o que já tornava o Ma,·k I obsoleto antes de opernr comercialmente em
escala, e o seu sucessor, o Mark 11 , nem chegou a ser concluído.

1.2.3 Época dos Componentes Eletrônicos - Primeiras Invenções


(1930-1945)
O problema dos computadores mecânicos e eletromecânicos residia em dois foros: baixa velocidade de pro-
cessame11to, devido à parte mecânica de seus elementos, e falta de co,!frabilidadt dos resultados, já que seu
armazenamento e movimento interno eram realizados por engrenagens, incapazes de realizar sempre o 111es-
mo tipo de movimento, principa!Jnente com o desgaste causado pelo tempo .
Esses dois problemas só poderiam ser solucionados com a utilização de elementos de armazenament0 e
chaveamento que não tivessem partes mecânicas e fossem bem mais rápidos. Para ranto, os cientistas dedica-
dos a esse trabalho passaram a explorar o uso de um componente eletrõnico, a válvula, invenrada em 1906.
Pode-se dizer, grossc> mc>do, que uma válvula é um dispositivo elctrônico constituído de um tubo de vidro
selado e que, em seu interior, a vácuo, ficam diversos ele1nentos interligados de modo a permitir, de certa
maneira, a passagem ou não de corrente elétrica. Esses elementos - catodo, anodo, grade e filamento - agem
de modo que o filamento produz aquecimento no catodo e no anodo, e quando uma corrente eléti·ica é apli-
cada sobre eles ela flui do catodo para o anodo devido à diferença de potencial entre eles. Quando se insere
uma grade entre o catodo e o anodo obtém-se um controle do fluxo da corrente, através da modificação da
voltagem aplicada à grade (de valor<:s negativos a positivos).
Quando se troca a vo1tagem sobre a grade isso acarreta a passagem ou não da corrente e, assim, a válvula age
como se fosse uma chave co1n relação às placas. Desse modo, tem-se uma chave controlada eletronicamente
(isto é, cm alta velocidade), o que é muito mais eficaz do que u1n relé, controlado mecanicamente. Por essa
razão, as válvulas passaram a ser utilizadas nos computadores substituindo os relês. Uma evolução considerável
naquele tempo.
Na mesma época em que Zuse e Aiken realizavam seus trabalhos com dispositivos eletromecânicos, dois
outros cientistas desenvolveram con1putadores usando válvulas.
Sn$W

1,11rod11çao I 17

Um desses cientist.1s foi John Vincent Atanasoff, que, por volta de 1939, projetou uma máquina calculado-
ra para resolver equações lineares. mas a invenção apenas ficou registrada historicamente, sem que a intenção
de seu inventor, de que a máquina se tornasse um dispositivo de emprego geral, fosse realizada. A grande
importância dessa invenção foi, no entanto, a atenção que despertou em um outro cientista, John Mauchly,
um dos construtores do computador ENIAC. que é atualmente reconhecido como aquele que deu início à
computação clctrônica, como veremos logo adi::inte.
Além de Atanasoff, outro cientista, o matemático inglês Alan Turi ng, desenvolveu urna máquina com
componentes eletrônicos. Turing é bastante conhecido pda teoria de computação que desenvolveu, conhe-
cida con10 ináquina de Turing, descrita em 1937 e que consistia na definição de uma função de computação,
pela q ual uma máquina poderia simular o comportamento de qualquer máquina usada para computação se
fosse adequadamente instruída para tal (isto é, se recebesse instruções através de uma fita de papel perfurado).
Porém, até pouco tempo atrás não havia registro de que ele tivesse se dedicado a outro tipo de trabalho mais
prático, para o desenvolvime nto de computadores.
Recentemente, com a divulgação de documentos núlitares do governo britânico, antes sigilosos, é que se
tomou conhecimento de que o primeiro computador verdadeiramente elerrônico foi colocado em operação
e m 1943, com o propósito de quebrar códigos militares secretos de comunicação dos alemães. Essa máquina.
construída por Alan Turing com válvulas eletrônicas, foi denominada Colossus, provavelmente devido a seu
tamanho . Sua grande desvant.1gen residia no fato de não ser uma máquina de emprego geral. pois não podia
resolver outros problemas a não ser a quebra de códigos militares. Ela era, então, um sistema de computação
com programa único.

1.2.4 A Evolução dos Computadores Eletrônicos (1945 - até quando?)


Apesar de os proj etos de Atanasoff e Turing terem sido bem-sucedidos e serem mais amigos, reconhece-se
o utra n1áquina eletrônica como o primeiro computador, com essas características propriamente ditas, proje-
tado como uma máquina de emprego geral, eletrônica e automática. Seu nome: EN IAC, ntio breve resumo
histôrico será apresentado a seguir.
Costumava- se dividir (e não há razão para fazermos diference) a evolução cronolôgica do desenvolvimento
dos computadores até nossos dias de acordo com o elemento básico utilizado na fabricação dos componcnces
do processador central, o primeiro deles já citado como sendo a válvula eletrônica.

1.2.4.1 Primeira Geração: Computadores à Válvula


O primeiro computador eletrônico e digital, construído no mundo para emprego geral, isto é, com pro-
grama de instruções que podiam alterar o tipo de cálculo a ser realizado com os dados, foi denonúnado ENIAC
(Electronic Numerical lntegrator And Computer) e foi projetado por John Mauchly e J ohn P. Eckerc. de
1943 a 1946, tendo funcionado daí em diante até 1955, quando foi desmontado.
Em agosto de 1942, na Universidade da Pensilvânia. John Mauchly, inspirado no projeto de Atanasoff,
propôs ao exército americano o financiarnento para construção de uma máquina que auxiliasse os militares do
Ballistics R esearch Laboratory (um departamento do exército americano responsável pela elaboração de tabe-
las de alcance e trajetôria para novas armas balísticas) em seu tr:ibalho, reduzindo o tempo de elaboração das
tabelas balísticas. Na época, o laboratôrio empregava mais de 200 pessoas para o cálculo das t:1belas, as quais,
usando máquinas calculadoras de mesa, resolviam repetidamente equações balísticas para gerar os dados ne-
cessários à fo nnaçào das t:1bclas. Tabelas para uma simples arma poderiam levar até dias para serem completa-
das, e isso atrasava consideravelmente a entrega dos artefutos.
O ENIAC (ver Fig. 1. 10) era uma máquina gigantesca. contendo mais de 17.000 válvulas e 800 quilôme-
tros de cabos. Pesava cerca de 30 toneladas e consumja uma enorme quantidade de deu;cidadc, além de vál-
vulas, que queimavam com grande freqiiência devido ao calor.
De qualquer modo, e apesar de ter ficado pronto após o término da guerra e. portanto, sem poder ser uti-
lizado para o propósito inicial de seu financiamento, o ENIAC era extremamente rápido para sua época, rea-
lizando cerca de 10.000 operações por segundo. Ele possuía 20 rcgismdores, cada um deles podendo arma-
Sn$ W

18 / lutrodução

Figura 1.10 ENIAC "U.S. Army Photo".

zenar um va1or numérico de 1O dígicos; era uma máquina decimal (não biná1ia) e, por isso, cada dígito era
representado por um anel de IO válvulas, uma das quais estava ligada em cada instante, indicando o algarismo
desejado. O ENIAC era programado através da redistribuição de cabos em tomadas difere ntes e rearranjo de
chavt-,; (possuía cerca de 6.000), tarefu q ue poderia levar muitos dias (pode-se imaginar a redistribuição de
cabos como uma tarcfu análoga à das telefonistas cm antigas mesas telefonicas).
O EN IAC provou, com sucesso, que era uma máquina de emprego geral ao ser utilizado para realização de:
co,nplexos cálculos e,n relação ao uso da bomba H, uma tarefa bem diferente daquela para a qual ele tinha
sido construído. No entanto, crd uma máquina de dificil operação e de manutenção dispendiosa devido às
sucessivas queimas de válvulas.
De qualquer modo, a divulgação das características do ENIAC despertou o interesse de numerosos cientis-
tas da área, e vários projetos tiveram inlCio na mesma época.
Enquanto Mauchly e Eckert iniciaram a constniçào de um novo computador, o EDVAC (Electronic Discret
Variable Automatic Computer), um dos colaboradores do projeto ENIAC, o matem,ítico John von Neumann,
também inicio u outro projeto de aperfeiçoamento do computador inicial, denominado IAS, nome do local
onde von Neumann foi trabalhar, o lnstitute for Advanced Studies da Universidade de Princeton.
O EDVAC de Mauchly e Eckert não foi adiante devido ã saída de ambos da Universidade de Pensilvânia,
para constituíre m sua própria ç mpresa . q ue mais tarde se tornou a UNIVAC. Recentemente, a UNIVAC
uniu-se à Burroughs, constituindo-se na atu::1) Unysis Corporation .
A ourra vertence do aperfeiçoamento do ENIAC, pelo desenvolvimento do EDVAC, é atribuída, como já
mencionado, a John von Ncumann. e é a ele que se credita de um modo gera] a definição de uma arquitetura
de computadores con1 programa armazeuado, que até os dias atuais é empregada nas máquinas modernas.
Em 1945, von Neumann divulgou seu conceito ao publicar a especificação básica do EDVAC, isto é, da
sua versão do EDVAC, no trabalho First Dr~fi ~fa Repor, 011 rhe ED VAC (primeiro rascunho de 11111 relatório
sobre o EDVAC). O relatório definia as características essenciais de uma máquina seqiiencial de programa
a1,11azenado. Nele for.un introduzidos os aperfeiçoamentos desejados para reduzir os inconvenientes do ENIAC,
tais como: a dificuldade de programar a recolocação da fiação (isso poderia ser realizado com o mesmo tipo de
elementos que representavam os dados no ENIAC eletronicamente) e o tipo de aritmética (substiruindo a
aritmética decimal pela binária devido à dificu ldade e ao custo de construir uma máquina capaz de representar
confiavelmence 1O níveis de tensão em vez de apenas dois, ver item 1. 1.3).
Em 1946, von Neumann e vários outros cientistas em P1inceton iniciaram a construção de uma nova máquina,
um computador detrônico de programa armazenado, o IAS. que se utilizava dos mesmos princípios descritos
no referido relatório do EDVAC.
snow

Unidade aritmética e llóg ica

1 ACC MO 1

1 OisposiliV-OS de
entrada
1 Clrouíto$ arltmé!ioos e
5.a.Ída

MBR
'
f l 1m;treução
1
l
1 ! osdad

t
1 IBA 1 PC 1
1

l
1
'
~ rcuítos
IR
1

~
t
1 MAR
1
Memória
princlpaJ

Sinais de
de oontro.le
controle L....--.....

t
U111dade de OQllbole
Endereços

Fi.gura l. t t Diagra:ma em b1oco da e.llt:mt'lllra do IAS.

O IAS poss.uia a~ seguintes características básicas extraída de [STAL nn] (embora pertença à p1·ünefra geração
de computado~s e tenha sido, para os padrões atu.üs, uma máquina limitada, o IAS é fimdamemal uo estu do da
arquitetura de computadores, poii> a b:rr,rndt: 1mlioria ck su:ílS espec:ificaçôes pem1anccc válida até o momcmo):
a) era constituído de quatro unidades principais. (ver Fig. 1. 11), a memória, a UAL, a UC e a parte de
entrada e aída;
b) possuía mem1ória com 1.000 pos.içõe , chamadas palavras, cada uma podendo armazenar um valor com
4( l dígitos. binários (bits.) (ver Fig. 1. 12);

e) tanto os dados (valores numéricos) qua11to as imtruçôes enH11 n:presenr.ado da ll1<.'.'Slll)l fonna binária e
armazenados na mec,ma memória;
d) possuía 2] instruções de 2 bits cada Lima com,cituídas de dois campos um com oiro bit.,;, denomi11ado
código de operação (C.Op.), e o omrn com 12 birs. denominado endereço para Jocalizar cada uma das
1.000 palavras endt:1-eços de 000 :íl 999 (i:mbora pudt: ·si.: c.:ndi.:ri:çar 4096 (4K) posiçôc:s de.: mi.:móría,
pois 2 12 = 4096, o [AS somcnce pc>ssuÍ:íl 1.000 cndi;rcço!.);
e) operava de modo repetitivo, ex<.'.'cucando um tido de iustr11çífo ~m . eguida ao outro. Cada ciclo cons.i:s-
tia em dois ubcidos: o ciclo de busca (fiwl, rydt), ond<.'.' o C.Op. da próxima instrução era trazido da
memótia para o JR e a parte de endereço da instruçà() era armazenada 110 MAR {l'Wewmy Addre~s Rtgi$te1).
Tào logo o C.Op. esti es.~e armazenado no IR, então se in iciava o outro :subciclo, o âdo dr: e·xr:cuçã,1. O
c-ircuico dt' controJe imerpre-tava o código de operaçâio e gemva os sinais apropriadm para acaneca1- o
movimento de dado ou ai rea]ização de uma opençào na UAL - Unid.1de Aritmécica e Lógica.
snow
20 / fotrodnfifo

O 1 39

Bit de sinal e Valor do número

(a} Aepresenlaçáo da um dado em uma p,atavrai

o 1 a 19 20

C.Op. C.Op. Endereço

-- WWW

lnslrução dl!I esquerda


- ..
lnsuuçií.o de direita
--
(b) Formato da 1i:ratawa de irtSln.iç.ã,o (duas ir1Sln,1çôes em uma palavra)

Figura L 12 Formato de palavras de ·m emória d.o IAS..

Conforme pode se,r ob5ervado dessas especificações reimmida , o IAS possuía caracceristicas. de arquitetura
que permaneceram ao longo do tempo. As. málJUinas evoluíram cons1deravdmeme em velocidade, capacida-
de de armazen:unento, nliniamrizaçâo con_umo de energia e calor e omrn inovaçõe_, ma a arquicernr bá-
s.ica permaneceu.
Em 1949, a empre:;a fi.mdada por Mauchly e Eckert construiu co n s.uce o o prim iro compmador para
fim çmnnciais, o UNíVAC 1 (Universal Automatic Computer), adquirido pdo llurean ofCen u dos EUA
para processar o dado do c,•nso de 1950. Pouco mai rarde, a Mauchly-Eckerc Compmcr Corporarion foi
absorvida pda Sp~·17;,•-Ra11d Corporation. como uma de suas s.ubsid.iária<;, com o nome de UN[VAC.
A U JVAC fabricou diversos outros tipos de compntadore a começar pelo U IVAC H e em seguida.,
a s~rii.:: 1·100, mais voltada para a computação científica.
Em 1953, a IBM, ,ué então ni.ais volt3dà, e; com suc1;;s:so, para a construção e comercialização de equipa-
mentos de processamento por c:1.1do perfura.de..), la11çou o seu primeiro computador detrônico de programa
anm1.zcm1do, o rnM -701, voltado par-a o proce amento científico. Es.sa má.quina pos. ufa uma memhria com
2K palavra~ de- 36 bits. Em 1955, a IBM modificou o hardware do 701 para adaptá-Jo ao uso comercial, fan-
çando o rnM -702. e c;m 1956 foi lançado o IllM-704, com 4K palavra:,; de n emória e, final.mente, em 1958
a IBM lançou outra máquina, ma.is aperfeiçoada o IBM-709. e sa ocas1ao a IBM já ~e desta.cava no merca-
do l:!m refaçào à UNlVAC, qne vinha sendo a. número 1 desde 1950.

1.2.4.2 Segunda Geração: Computadores Transistorizados


A i.:ktrônk:1 111od ·rna urgiu em 23 de dezembro de 1947, quando três dentistas. do Bell Laborntories -
John Bardeen, Walter füatai11 e Williain chockley- produziram pela primeira vez o efeito tran.sistor. Ele:
dcs.-cobri111m que;- as propricdadc-s condutora. de um diodo micoridutor pod~riam ser contr-olad, por um
terceiro el!:!mento. Os. tran istore. e tornaram nào ó um uce o em toda a indú tria eletrónica {cu to tama-
nho e desempenho melhores que os dispo itivos a válvula) como também formaram a b,1se de todos os con-1-
putadon.:s digitais :w: os di:is atuais. O fato d que se pode li~r e deslig:1r (dois estados) a corrente dét,·ica , m
um dispo ·it" vo •. a base di: toda a lógica digital (ve,· Ap ··ndici.'. B) .
O trans~ tor re,lliza as me mas funções básica_ de uma válvula, porém o foz consumindo muito 1nenos ener-
gia e calor, o que o tornou rapidamente sub timto comp]eto das váJvukls. Afém disso. seu tamanJ10 é muito
menor que o dt! uma válvufa, economizando-se e paço de forma considerâvel.
Sn$W

llltrodução / 21

A primeira companhia a lançar comercialme;:nte um computador transistorizado foi a NCR, e logo enl
seguida a RCA . As vantagens dessas máquina.~ sobre suas antecessoras a válvula eram várias: eram mais baratas,
mcnorc·s e dissipavam niuito menos calor, além do menor consumo de energia elétrica.
Essa nova geração de computadores cambém teve, e muito, a participação ativa da 101\11, já se fin11ando
como a mais importante companhja na produção de máquinas científicas, embora a Control Dar.a tambén1
produzisse máquinas científicas (CDC) de grande desempenho. Ela transformou a sétie 700 em série 7000,
esta rransistorizada. O primeiro deles, o 7090, e mais tarde o 7094, que possuía um ciclo de inst.r ução de dois
microssegundos e 32K palavras, ainda de 36 bits. Além do domínio na computação científica, a ll3M também
produziu uma máquina comercial de enorme sucesso, o IBM-1401 (quatorze zero um, como era conhecido).
Com esta geração de compumdores, outros fàtos historicamente import:lntt'S mmbém aconteceram. Entre eles:
a) O aparecimento de outra companhia fabricante de computadores, a DEC - Digital Equipment
Corporation, que viria mais tarde a se tomar o segundo maior fàbricante do mundo, após a IBM. A
DEC foi fundada em 1957 por Kenneth Olsen, um dos engenheiros do Lincoln Laboratory, do MIT
(Massachusetts lnstitute of Technology), órgão que realmente desenvolveu o primeiro computador
transisto,izado, o TX- O (embora o da NCR tenha sido o primeiro do tipo comercial, o TX-O foi o
primeiro de todos, embora apenas em ,úvel experimental). No mesmo ano de 1957, a DEC lançou seu
prin1eiro computador, o PDP-1, início de uma longa série de 111áquinas exttaordinariamente eficazes e
tecnologicamente avançadas, até o fàmoso PDP-11. Por ser uma máquina de pequeno porte, compa-
rada com os computadores de até então, o PDP-1 também custava muito menos. Por essa razão e de-
vido ao excelente desempenho para a sua faixa de preço, o computador da DEC teve grande aceitação
do mercado, tomando-se um marco inicial da indústria de minicomputadores, da qual a DEC foi líder
por um longo período {primeiro com os PD P e, em seguida, com a fanúlia VAX) .
b) O aparecimento de unidades aritméticas e lógicas mais complexas, assim como unidades de controle.
c) O aparecimento de linguagens de programação de nível superior ao das linguagens Assembly da época
(na realidade, o FORTRAN para o IBM 704, em 1957, era ainda de primeira geração).
d) O surgimento de ourra companhia importante, a Control Data Corporation, que lançou, em 1964, o
sistema CDC-6000, voltado primaiiamente para processamento científico (a CDC sempre construiu
computadores com uma maior vocação para o processamento num,hico) . Era uma máquina con1 pala-
vra de 60 bits (apesar de não ser múltipla da base 2, possuía um valor grande, apropriado para prc>cessa-
meuto numérico) e vários protcs.sadores i11depe11de111es de entrada/saída, um total de 10. denontinados PPU
- Pcriphcral Proccssing Unit. que liberavam a UCP de várias tarefas, tornando o sistema ainda mais
rápido.

1.2 .4.3 Terce ira Geração: Computadores com Circ uitos Integrados
O desenvolvimento da tecnologia de circuitos integrados (btte,~rated Circuit.<- Iq surgiu devido à necessi-
dade de se encontrar uma solução para os problemas de acomodação dos componentes eletrônicos {transísto-
res, capacitores, resistores) nos equipamentos à medida que sua quantidade ia crescendo com o aumento da
capacidade das máquinas. Das tentativas de encontrar solução para tais problemas é que se idealizou a possibi-
lidade de acomodá- los em um único invólucro.
O ponto importante no conceito de circuitos integrados é que se pode formar múltiplos transístores em um
(111ico elemento de silício, de rn.odo que um circuito lógico que antes ocupava uma placa de circuito impresso
completa pode ser, com essa tecnologia, acomodado em uma só pastilha (chip) de silício . E mais ainda, como
se pode conectar vários transistores diretamente na pastilha, eles podem ser incrivelmente menores. necessi-
tando, assim, menos energia e dissipando menos calor.
Em outubro de 1958,Jack Kilby, da Texas Instruments Co., colocou dois circuitos cm uma peça de ger-
mânio. O dispositivo resultante era rudimentar e as interconexões tinham que ser realizadas por fios externos,
mas esse dispositivo é, em geral, reconhecido como o primeiro circuito integrado fàbricado no mundo. Logo
em seguida, 11..obert Noyce, da Fairchild Semiconductor lnc., utilizou-se de técn icas recém- criadas na mesma
companhia e integrou mllltiplos componentes em um substrato de silício. Os dispositivos con1erciais que se
SD(eW

sucederam mostraram a vantagem do silíci.o sobre o germinio e p rmiti111m o !>Urgj_memo de uma nova gera-
ção de máquinas mai podero a ' menori.:-~, devido à incegraçào em larga cs.eala (LS[ -1..A~e cale lmegmtión)
qu , o circuitos integrados proporcionaram.
Em 1964, a l:BM e utili:wu da 1r Cf;'nte. ino ações tecnoJógica mi án~::i da H:lkroeletrôrJic~ (o circuito.
integrado) e lançou a ua mai fumo a "fan1Hia' de: e mpmadores, a érie /360. E e si terna incorpor-ou di-
ve1 a ino açõe:., que se tornaram um marco hi5~Órico em rermos de computação e consolidaram a po içào já
obtida pela. ]BM como a primeira fahrk:mte de computadores do mundo.
Entre e as inovações, podemos cita.r:
a) O conceito de família de computadores, em vez de máquina indi idual como até então. Esse conceito
perm.i.tc que o fubdcanre ofereçai o mes1no tipo de máquina {arquitt:turã igllal - linguagem de máqujna
cmdhantc erc.) com diferentes ca.p acidades e preços o qu garante uma maior quantidade de e ientes.
O s.ist·nr1a /360 foi fançacio, inkialmenct: com cinco n1odelos 30 40, 50, 65 e 75, cada um com carac-
teristi,ca próprias decido de in trução, capacidade de metnórfa insralável, quantidad de proc ssadon:
de E/S, e11bora todos os t 1odelo t've ci 1 o me mo conjunto bá ko de instruções (e comi o um
program,1 criado m um mod1do poderia, em princípio, er execurado em outro). A Fig. 1.13 mostra
um quadro compa :ativo entre os diverso nodelos da famíli ;
b) A utilização de uma unidade de co.n trok com microp:rogramação em vez d. t1, didonai unidad1::s de
controle no hardware (ver Cap .. 6);
e) O einpre rode uma 1:écnica chamada de multipr-ogram.içâo, pcfa q ual vários programa5 companilh~m
a mesma memória prindpaJ e dividem o uso da UCP, dando a. impressão ao U!>Uário de que e tio sendo
executados simulrnne, mente;
d) A elevada capacidade de proce.ssame:nw (pam a época), com palavra de 32 bi e ciclo d in miçàu de aré
250 nanossegundos, bem como a grande capacidade de annazenamcmo n.a 1lH.:mória :principal, 16 Mbytc ;
e;) M1:;mó:ria p1incipal m·ientada a byte, isto é cada célul,a de MlP armazena oiro bi de informação indc-
pcnd t m nte do tamanho de bit definido para .l pa1avra de dados. Em1 c, racrerí~r-ica tornou~c: co-
mum para qua e todo o mercado (exceto máquinas cii:ntíficàs), 1; até hoje os computadon: continuam
com a MP orientada a byte;
Q O lançamento de um programa (conjunto d• pTograrna é o melhor termo) g~Pnciador dos recursos
de hardware, de modo m.aj integrado e eficaz, o i~u:ma operado11al O /360.
Alénda fam.íliia / 360, e a época de L [ presenciou também o lançamemo de outro miniico,npurador D C,
con-1 ô rcuito integrados, memória principal orientada a byte e palavra. de 16 bits, o PDP- 11, uma das 111áqui-
na m.a:i fa1no a em sua categoria. Seu ucessor, o i. rema VAX- 1 1 f.lmbi::m cttvc o mc~mo :mccsso, e péci-
almente no arn1biente universitário.

Caracterfsllcas da lamllia l300

Caractl8físlicas Modelo30 ModeJo-40 Modelo50 r,,t,dslo 65 Modero;5

O,apaeidade máxima
64K 256K 296K 512K 512K
ele MP(byies)

Cielo db processo
em mrcrosse,gundos 1 0,625 O,!j. 0,25 0,2

Cluanlidacle máxima
de cal'llllis (EIS) 3 3 4 6 6

B~es pu[l(adOs.
dá MP por CiêlO 1 2 4 16 16

Figura 1. 13 Cara.cteristiicas prin,c"pai dai fanúl.lia IBM/360.


Sn$W

Introdução I 23

1.2.4.4 Quarta Geração: Computadores que Utilizam VLSI


O termo VLSI ( Very Últ~e S<nle /111egrario11), integração em muito larga escala, caracteriza uma classe de
dispositivos elerrônicos capazes de annazenar, em um único invólucro. milhares e até milhões de diminutos
componentes. fa.1e dispositivo.já ante,ionnence mencionado e denominado pastilha (d,ip), vem constituindo
a base da estrutura de todos os principais sistemas de computação modernos (ver Apêndice 13).
A técnica de núniacurização de componentes eletrônicos, ou microdctrônica, conduziu, por volta de 1971/
1972, ao desenvolvimenco de um outro tipo de computadores até então inexistente 110 mercado- os compu-
tadores pessoais, ou microcomputadores.
A evolução dos microcomputadores, decorrente principalmente do avanço na miniaturizaçào dos proces-
sadores e demais elementos, vem sendo de tal forma rápida e eficiente que os computadores de maior porte
foram sendo progressivamence substituídos nas empresas, restando hoje um nicho de mercado bem pequeno
e específico para aquelas máquinas. Atualmente. pode-se afirmar que a maioria dos sistemas de computação
utilizados no mundo comercia) e govern~unental é baseado e,n microcomputadores, assim como o imenso
universo dos computadores pessoais. É claro que ainda h5 inúmeros computadores de !,'Tindc porte, instalados
e atualizados, funcionando na indústria e cm grandes corporações, como bancos e órgãos governamentais.
Além disso, processamentos científicos e de imensas quantidades de dados (cálculos de meteorologia, de
prospecção de solo, de criptografia e outros desses tipos) se valem de supercomputadores, os quais empregam,
cm grande escala, uma técnica de multiprocessamento.

1.2.4.5 Evolução dos Computadores de Grande Porte (Mainframes)


Os computadores de grande po1te se constituíram nas principais máquinas das empresas, desde os primór-
dios da computação, com o lançamento do UNIVAC l e do JBM-701, e até alguns anos atrás, quando a
capacidade sempre crescente e o custo bem menor dos microcomputadores orientaram as intenções dos usu-
ários na ocasião de implantar novos sistemas ou atualizar os antigos, grande parte deles substituindo os mainfra1nes
por estações de trabalho em rede o u mesmo redes locais de ,nicroco,nputadores.
Um dos principais representantes dessa categoria, o siste,na IBM/360, teve uma evolução tecnológica acen-
tuada e pennanente. desde 1964 até 1988, já com o nome de /370, tendo continuado o desenvolvimento com
novos siste,nas, porém sempre com a mesma arquitetura básica, como os IBM-43xx, ll3M-308x e IDM-309x.
A Fig. 1. 14 apresenta um quadro demonstrativo da evolução dos sistemas /360 e /370, incluindo as p1i11-
cipais inovações de cada família.
Outra classe de computadores bastante específica e com aplicações científicas de finidas é a de
supercomputadores, entre os quais são mais significativos os da fumília CRA Y (CR.A Y- 1, CR.A Y-2, CRA Y-
X/MP, CRAY-Y /M P), a família WM-90xx, com processamento vetorial, e a família CDC-CYl3ER.

1.2.4.6 Computadores Pessoais - Microcomputadores


Em 1968, dois cientistas, cx-funcioná,ios da Fairchild Senúconductor lnc., R.oben Noyce e Gordon Moore,
fundaram uma companhia, Intel Corporation, com o propósito de produzir memó1ias para rnainfran1cs com
semicondutores. Ambos imaginaram que a Intel deveria fabricar produtos para empn:go geral, e não produzir
componentes para clientes e objetivos específicos.
No ano seguinte, a Intel aceitou trabalhar com uma companhia japonesa para fabricação de componentes
para calculadoras e1etrônicas, e dessa p:.uceria surgiu o primeiro chip contendo em um mesmo invólucro todos
os componentes reqw:ridos por um processador- tratava-se, então, do surgimento do primeiro microproces-
sador, o qual se tornou comercial em 1971, quando a Intel produziu a primeira Unidade Central de Proces-
samento - UCP - contendo todos os componentes eletrônicos em uma só pastilha de circuito integrado,
denominada I NTEL-400-1.

!() tcnuo UCP - Unidade \.,:mr.11dl· Prol"t"i<:tm,:mo é> cniundo do in~ê, CPl ' - Cmtr,1/ Pni«#ili:? l 'mt, que M: n.-tC.·n: ao procc\i:.ldor de um t:Ompuudor.
AtuJ.lmcmc. uu-S(' m:us o t\'flllO prOC\'S.Ql.-tor do tJm' UCI'. m:is n\"St,: ll\'ro iremos uS.lr :imbos Oj. rcmios. como S(' (os.sl-ill p3b\·r-.as sinônim:i.s.
Sn$W

24 / lntroduçilo

Ano Evento Principal


1964 Lançamento do Sist ema /360 pela IBM
1968 Representação de Números em Ponto Flutuante
Arredondamento
Alinhamento a Nível de Byte
EIS Multiplexada a Bloco (Bloco Multiplex 1/0)
1970 Lançamento do Sistema /370 pela IBM
Relógio (Time-of-day c lock)
Registradores de Controle
Seis Novas Instruções de Emprego Geral
1972 Grandes Alterações que Diferenciam o Sistema /360 do Sistema /370
Memória Virtual
Modo de Controle Estendido
Registro de Eventos de um Programa
Timerda UCP
Comparador entre Valores de Relógio (clock comparator)
1973 Extensões para Multiprocessamento
Instruções de Manuseamento de PSW
Instruções que tratam de troca de programas na forma condicional (cond~ional swapping)
1978 Proteção de Endereços de Memória
1979 Chaveamento de Conjunto d e Canais
1981 Facilidades de Manipulação de Duplo Espaço de Endereçamento
Proteção de Segmentos
Instruções de Enfileiramento de EIS
1983 Lançamento do Sistema /370 pela IBM - Arquitetura Estendida
Endereçamento de 31 bits
Novo Subsistema de Canal de EIS
Proteção de Páginas
1984 Execução Interpretativa
1986 Lançamento do Sistema /370 - Facilidade Vetorial pela IBM
Registradores de Vetores
Instruções de Manipulação de Vetores
1988 Lançamento da Arquitetura /370 - S istema Enterprise pela IBM
Registradores de Acesso
Modo de Endereçamento para Acesso a Registrador
Pilha de Ligação

Figura 1.14 Quadro demonstrativo da evolução dos sistemas /360 e /370.

Esta U C P o u Processador (chamou-se microprocessador devido ao seu di mi nuto tamanho em relação aos
mai nframes da época) possuía palavra de 4 bits e tinha cerca de 2 .300 transístores na pastilha. Como esse mi-
croprocessador, apesar de ser um sucesso, possuía pouca capacidade (palavra de 4 bits) , logo em seguida a Intel
lançou um novo m icroprocessador. dessa vez com 8 bits de palavra e 16K de m em ória, o Intel 8008.
Tanto o 4004 quanto o 8008 eram UCP destinadas a uma aplicação específica (o 8008 destinava-se à Display
Terminais Corporation, para serv ir de contro lador de um m onitor de vídeo). Embora a empresa solicitante da
Sn$W

I111rod11çao / 25

pastilha nunca tivesse usado o 8008, a Intel vendeu uma quantidade não esperada dessa pastilha, mesmo com
os problemas de pouca memó,ia e pequeno conjunto de instruções. Emão, em 1973, a Intel lançou o seu
grande sucesso da época, o primeiro microprocessador de emprego geral do mundo, o Intel 8080. O 8008
possuía cerca de 3.500 transistores encapsulados na pastilha, enquanto o 8080 tinha em torno de 5.000 tran-
sístores. Este último possuía também 8 bits de tamanho de palavra, capacidade maior de memória (cada ende-
reço tinha 16 bits e, então, a memória podia conter até 64 Kbytes) e um grande conjunto de instruções (78
instruções). O 8080 vendeu aos milhões e, desde então, a Intel não parou mais de crescer e desenvolver novos
produtos inclusive com seus lançarnentos inais conte1nporâneos, o microprocessado1· Pentium 4, com suas
1

várias versões, e o lta,úum, que incorpora a nova arquitetura de 64 bits, IA-64 contendo mais de 200 milhões
de tn-msistores na pastilha.
Mas a história dos computadores pessoais e m icroprocessadores não se constitui somente da Intel; o utros
fabricantes surgiram e se tornaram importantes, não só para a história da computação, mas atualmente sendo
concorrentes poderosos da Intel. Pode-se citar a Compaq, que, durante algu m tempo, chegou a liderar o
mercado de microcomputadores; era tão importante que adquiriu uma grande empresa fabricante de compu -
tadores de grande porte, a DEC (Digira] Equipment Corporarion), a qual pode ser lembrada, entre outras
coisas, pelo lançamento, em 1992, de um processador de 64 bits, revolucionário na época. Recentemente a
Compaq foi absorvida pela HP.
Outra empresa surgida no mercado de hardware, para fubricação de d1ips de memória, depois de algum tempo
entrou no mercado de núcroprocessadores e atualmente é o maior concorrente da Intel, chegando a superar, em
vendas, a gigante do HW em certas ocasiões e locais. Trata-se da AMD (Advanced Micro Devices), fabricante
dos processadores K6 e Athlon K7, de 32 bits, do Athlon 64 e do Opceron, com placafom1a de 64 bits.
Na realidade, os computadores pessoais surgiram com o lançamento do Alrair em 1975, que pode ser con-
siderado o p1imeiro computador pessoal oferecido com fins comerciais, auxiliando sobremodo o início da
revolução que os microcomputadores realizaram desde então. Esse núcrocompucador, construído pela em-
presa M ITS, baseava-se no microprocessador Intel 8080 e utilizava um interpretador da linguagem, Basic,
desenvolvido por Bill Gates e Paul Allen, que fundaram naquela ocasião a Microsoft, tornando-a mais adian-
te, o gigante atual. O Alcair foi um verdadeiro sucesso comercial. A Fig. 1.15 apresenta uma foto do Almir ao
lado de um moderno Lapcop, e a Fig. 1.1 6 mostra o Alcair de frente, com suas chaves e lâmpadas (dispositivos
de entrada e saída).

Figura 1. 15 O m icrocomputador Altair ao lado d e um m od erno notebook.

Desde o surgimento dos p1imeiros núcroprocessadores da lmel (4004 e 8008) e do primeiro microcomputador
(Alrair), a evolução da núcroeletrônica e da tecnologia de fabricação e mo ntagem de componentes completos
tem sido extraordinariamente rápida.
Surgiram diversas empresas que se tornaram grandes devido a enorme demanda e cocai diversidade de uso
dos computadores no inundo contemporâneo, da medicina à astronon1ia, da área pessoal e em casa, como
também no comércio e na educação, das fãbricas (auxiliando a manufatura dos produtos e cm seu projeto) aos
laboratórios, em meteorologia e em pesquisas de todo tipo.
Sn$ W

26 / Tutroduçiio

.- Alt•u 8800 l!IIBJ 13

Figura 1.16 O microcomputador Altair.

Entre os exemplos mais marcantes (são tantos) podem-se citar os processadores Intel, do 8080/8085 e do
8088/8086, base dos microcomputadores pessoais (PCs), lançados pela IBM em 1981, do 386 (primeiro mi-
croprocessador de 32 bits) ao 486 e aos Pencium e ao ltanium.
Também outro fabricante, a AMD vem disputando o mercado de processadores com a Intel, lançando
produtos com desempenho cada vez melhor, sendo muitíssimo utilizados no Brasil. Entre eles, pode-se men-
cionar o K6-2, o Achlon K7, o Achlon-64 e o Opteron.
A Tabela 1.1 apresenta um quadro demonstrativo com dados de alguns dos principais microprocessadores
surgidos desde o Intel 4004, de modo a permitir ao leitor conhecer alguns desses dispositivos. No Cap. 6 serão
apresentados mais detalhes de suas funções e características.
Entre as empresas fabricances de microcompucadores podem-se citar a Motorola, a ll3M, a Sun e a MIPS.
A Motorola, mundialmente conhecida por diversos produtos, como celulares, foi também pioneira na área
de microprocessadores, concorrendo, no início dos PCs, com a Intel ao lançar processadores como o M6800
(concorrente do Intel 8080) e o 68000 (de 32 bits). Posterionnente, junto com a ll3M, foi fabricante do pro-
cessador PowcrPC.
Durante muito cempo, a Motorola supriu os computadores pessoais da Apple, outra grande empresa da
área de computação, até hoje fubricame dos computadores Macintosh. Depois a Apple passou a usar os PowerPC
e recentementt! anunciou que passará a usar, a partir de 2007, os processadores lncd em alguns de seus com-
putadores.
Mais ainda, outras t!mprt!sas surgiram na áre:a de.: computação e se ton1aram grandes, como a Sun Microsystems,
fabricante dos processadores $pare e de várias estações de crabalho, além de ter sido responsável pela criação da
linguagem de programação Java e do sistema operacional Solaris.
Além da Sun, a MIPS foi outra empresa que surgiu para fubricar processadores com cecnologia RISC (ver
Cap. 11), como os Mips 2000, Mips 3000 e Mips 4000.
Por outro lado. e para finalizar este resumo histórico, é apresentada a Tabela 1.2. compreendendo um quadro
demonstrativo da evolução da ciência da cornputação, incluindo-se naturalrnente algumas das observações
inseridas neste item.
SDêW

T abela 1.1 Quadr'o Demonstrativo da Evo!u,ç ão de Micropro -e$ adore$

Mi roproc,essadol'es D11ta de lançanwnto PafavYã de dados Endereçamento máximo

lmel 40tM 1971 4 ] Khytc


lmel 00 1973 8 64 Kbytc
lmel 8088 1980 16 ] Mbytc
lnccl )286 1982 16 16 Mbytcs
Intel &0Jf!6 1985 32 4 Gbytcs - 4GB
lmd 80486 1989 32 4 Gbyt1.-:s - 4GB
lmel Penrimn [ 1993 32 4 Gbyk -4GB
lmel Petl'lium Pro 1995 32 4 Gbyt~ - 4GB
lmel Pr.:nrium [I 1997 32 4 ,byt -4 B
lmel P t111ltlll nr 1999 32 4 Cbytcs - 4GB
lmel Penrium 4 2000 32 4 Gbytcs - 4GB
hm:I Jr.:rnium 2001 64 16 Exbytcs - 16ExB

Momrol:i 6000 1974 64 Kbytcs - 64KB


Motorol.i 68{)00 1979 32 16 Mbyt1.-s - 16MB
Motorola 6801 O 1983 32 16 Mbyt~ -16MB
Motorola 68020 1984 32 4 Gibyt~ - 4Gl3
Motornfa 68031.l 1987 32 4 , ,bytes - 4 , B.
Motorola 68040 1989 32 4 Gbytcs - 4GB

Zilog Z -8 1974 M Kbytcs


Zilo Z- O 1979 16 l Mbyt.,;

AMD- K6 1997 32 4 Gbytes


AMD-K6-2 1998 32 4 Gbyt~s
AMO Arnlon 1999 32 4 Gbyres
AMD Arktlon XP 2 02 32 4 Gbyres
AMD Achlo116-I 2'003 64 l Tcrabyte
AMO pteron 2, 01 64

C.rix 6X 6MX 1997 32 4 Gb;rt:es


Cyrix MIi 1998 32 4 Gbyres

Sun PARC 19 7 32 4 Gbyte~


mM PowcrPC 1993 32 4 Gbytc

Tabela 1.2 Eventos Relevantes da Evolução da Computação


Periodo Evento

5DO a,C. Invenção e milinç:io do ábaco.


1642 d,C. Bbise Pascal cria su:i máquina de s.om:u,
1670 Goufried fa:ibniz c,ri:i uma máquina de calcubr que realiz,:i as quatro opt:raçôe~ arítmétic.
t 2J Charl Babbag cri:1 a nüquin:i de difer niça , por contr.tto com Marinh;,1 e;1l rngtes:i ,
1 .i2 O mesmo Babbage: projeta mna núquitu ;irulícic:i para realizar cilculos.
1889 HNman Holleri[h ilwema o can:io perli1r;tdo,
1 9() Hollericll des.r.:rwolve utn im· ina para regisu-:ir e pro ess:.;,r os dado do censo.
1924 Cmmituiçâo da IBM.
1939 John J\tanasolf projct.1 o primeiro computador digital.
1946 Têr111i110 ~fa consrn1ç.'ío do E IAC.
194.6 John ,·on eum:illn propõl!' q11~ um progr;irn;1 ~ja am1;1zen:ido 110 compuudor e projet o
IA , implemenundo sua propo. rn ..
Snõw

Tabela 1.2 Eventos ReLevan t.es da Evolução da Compi1t aç ão (c onti:r11.11;1ç-&;o)


P,e dodo

195 1 1.:rmin:i a construção do primeiro computador comercial de propósito gi:ral. o UNIVAC.


1956 Telfrnin:1 :1 mont;)gem do primeiro com l!t.1(for [r-.)1u i ~orizado, o TX_-0 no MJT.
1957 Ulliá t..-q~•if e d;l. IDM, liderod;.i por Joh ri B,;.çh(i~. dcsenvol e a primeir:i linguagem di.: alto nívd,
fortrnn, ;,,·oltada p,'lr.'I wh1cion;"1r pn>bknm lll;l.te1n:iticos.
1958 A LBM lança o IBM-7090 .
1958 Jack Kilby, na Ti:xas Jns~m,mmts, ·ompl ·t:i :i constniçdo do p.-imeiro circuiro imegrado
con ·ndo ·inco componcm1.-,.,
1962 Doi1gl:.r- .Engclbart, do. ranford Rcsc:.ir,;:h !nstit1Jtc, i1wcnt:1 o inome.
1964 A lBM lauça o IBM/ 360, prime-iro computador a utilizar circuito~ im,-grados.
1964 A linguagcn1 BM.ic (Bcgiimcrs A.ll- purpm1c· Symbolic Imtn1ction Goele) Í; d ,:nvolvid. por
Thoma Kunz e John Kennl·dy 110 Darnnomh Colle~c. M. i tarde, d . se toma popular
d1.-vido ao lançamemo do Altair com o interpri::r:idor dc.srnvolvido por BiDI Gatc e Paul
Allen. fu11d:idore!> da Microsoft.
1965 Gordon Moore, diretor de p~qui a e des.e1wol\'imemo da empresa Faírchild Semiconducmr,
prevê que a densidade dos uans:i:smre.s e drcu itm incegrados dobraria a cada ]2 mese no!> IO
anos cgu imes. Essa previsão foi atualizada em l 975, ulmi rnindo- t.: 12 rncses por 18 meM!:., e
comou-se conhec-id:1 como Lei de Moo.-e.
1967 A rBM fabrica o primeiro " ílopp_ di!-k''.
1970 A primeira V€rs1io do i rem.1 oper:u;;io1ul Urlix é l:mç.11da., rodando i:m 1,1111 comp\1t dor DEC
PDP-7. te si rema fo ' c: crito. a pa.11ir d · 1969, no Bdl Labs, por Dcnni Ritdlie e Ken
Thompsorl.
1971 A li11gi.1. gi:111 Pascal é proj ·t:id.:i por Ni.ckfau Winh.
1971 A lmd 1. llçà o prim ·iro 5.istc:ma de microcornpmador, ba eado 110 proc sador 4004, com
desempenho de 60000 operaçôe:. por egundo e 2300 tr.u ismres encaps,ulado~.
1972 Dcruüs R..itchic do I3ell Lam desenvolve a lingu:igcm C.
1973 G,uy KildaU escreve um istema operadou.--il na linguagem PL/M e o denomin~ P/ M
(Control Program/ Mouitor).
1974 A ln~l lauça o proccs.s.1.dor 8080 de~ MHz (primc:in..i l,.mç~mtt:nw r:n1 1973), com 6000
rransi ror e 6-4{)000 instmçõ por scgi1ndo. O CP/ M é :.idapt..'ldo para o 8081.l , e a Motorola
lança :.cu proce ador de 8 bits. o 6800.
1975 a edição de janeiro Ó;l. revis-m PopHfor Eki:rro,lio; é rcafürodo o bnçtum.:nto do primeirn
mkrocomp,1tadc)r di: 8 bi ·, o Alta.ir.
1976 Sreve Wozni:tk e St ' \,'C job fonn.:'lm a Appk Computc-r.
A DEC hnç-:1 mll de ~r;v, niái. popula.rc rninicomptlt:idorcs, o VAX 11/7
1977 A Appli: Comp:m,' lam;a s ·u computador Appl~ H.
1979 urg,r: ã primcirn pla.nilha dctrônica, Vi ic:ik.
'1981 A ].UM ammcia o lançamento de seu primeiro microcompul';l.dor. o m M-PC.
1984 A Appk aprc ·cnra scll prirnt>iro computador do ripo Madmilib.
1987 A Micro oft lança . Lu pb nilha Excel, o primeiro aplicativo par:1 o Windo,
1989 A Mkr ofi: l:mp ~eu . i tc1n:i opt.:racional Window parn IBM- PCs.
1990 A Microsofi: lanç:1 :i ve.-s,lo 3,0 dn Wi11dows pam P s.
1991 A AMD lança seu clone dü procc. ;;dor Iritd 386.
1991 Linu. orv;ild. d~'1WOlvc o s,i tema opcrnciomil Lima;,;., na Piinl.india.
1992 A IBM e a M oh)ro].;. ç~mbdcçç·m um .-cordo para dc-,;mrolvimcuto do microproce ador
PowerPC.
1992 A IBM lança mn microcomputador porüril, o ThinikPad 700C.
A N ·A desenvolve o pri1neiro navegador para Itn ernct, o Mosaic.
1994 O Mosaic se tr:msforrna no N ersc~J e.
1994 A Iomi;g.'l 1:mç..i ~\15 Zip driv~.
1995 A Micros.oft bnç.1 nova vers:o do SO Windo" - Window· 95
1995 A (rnel l~nç.-i o pl"ôCl.'"~ádor Pcntillm Pro.
1995 A 3Com, Sun e -0111p:1q lnnçi'lln o padrão ,igabit Etht.:mcr.
1996 A Microsofc lança o Windows 4JI c: o lntcn'lct Explorer 3.0.
snow
fotrodufiio J 29

Tabela 1.2 Eventos Relevantes da Evo]ução da Computação (couânuação)


Período Ev,e nto

1998 A [mel bnça o process dor Penrium 11 de 333 MHz.


1998 A Compa.q adquire a DEC, fabricante dos procesmlores de 6~ biu Alpha.
2000 A Microsofc inicia a dls1ribuiç:o do SO Windows 2000 e o Windows ME.
200 1 A Deli M' coloca como primdro f.tbricam de PCs do mu.ndo.
2001 ançarm:nto do barramento USB 2.0 ~ do padrão A A 1.0.
2001 A Micro-o t inicia a d_istribuiç.io do SO Windows XP.
2002 t .ança.mrnto do padriio PC] EKpn· .
2005 A AMD inicia di tribuiçào de s,cu proce!>sador d\j 64 bi , núcleo duplo, Athlon 64 X2.
2005 A Apple divulga ma intenção de s.ubsrírnir o proci:ssador Powerrc por p:mcessadores [me] em
cus computadon.-:s.

EXERCÍCIOS
1) Conceitue o termos dndo e i1!fonuaçiio, no que~~ refere a seu enr'lprcgo cm procc s.amcmo de dado .
2) aracterize as etapas principais de mn process:n-nento d,e dados.
3) Concdtuc um )ist,i;:ma. .ite doi e emplo prático de organizações si têmicas na vida real.
4) on iderand.o a organ:iz-açào de si:stcma:s de infolfma.ção ddinida no irem 1.1 .4 cite o~ níveis cxi!.tt:ntes
e dê exemplos pcirico de sisn:mas em c:1da um dos nivc.::i relacionado. .
5) O que você emend,e por um programa de compumdor?
6) .onceitu o:- termos lwrd11•Me e s'!_fiwart'.
7) O que é e p, 111 <]Uc serve um;'I hngL1agcm de programação de computador? Cite e ·etnplo de lingua-
géns de progrnn1açâo.
8) Quen1 d envolveu a máquina analítica?
9} Qual foi a ca1-actetísc.ica mat·came do censo de l890 dos EUA, no que se refere à cont1biliz.'lçâo dos
dados levantados?
1O) Qual foi o propó ito que c-onduzin ao desenvohrimento do primeiro computador eletrônico do mun-
do?
1·1) Qual foi. o ptimeiro microprocessador de 8 bits lançado comercialmente? Qual o nome da empresa
propiietáiria?
12) Qua:is eram a caracccdstica.~ há icas da arquitetura proposta pelo D1. John von 'Umann?
13) Qual a import..1.ncfa do computa.dor Altair para. a e a lução da contprnt-ação ,c omc.cial?
14) O que você entend~ po1· si tema. digital? Qu,1.l e1Lia a alternativa na computação se não e ·istissem má-
quina digitai ?'
15) O que conduziu o pensamento dos pe~qui adores par-J de envolvercompmadores que someme Iliam o
~i tema binádo 1:: não, por exemplo, o sistema decimal?
16) Cite empresa>brasikin1s qu comercializam co1nputadores com sua p1iipria marca.
17) Qual foi o prim jro equiparnemo utiliza.do no mundo para realizar dkulos matemárioos?
18) Con:sjderando o formato das inscruçfü:: do prncc;. . ador IA (ver Fi.g. 1.1 2), indique qual deverá ser a
máxima quan tidade de insm1çâo qu,e ·O ]AS poderia ter.
19) Uma da versões do processador Pe.ntium [[[ possui endereços de 36 bi ts em vez do tradicional de 32
bits. Qual deveria er a capacidade máxima de end.ereçamemo :n aquele proce adores?
Sn$W

30 / ltitrod,lfão

20) O EN IAC é usualmente conhecido como sendo o piimciro computador fabiicado (máquina clctrôni-
ca de processamento de dados). No entanto, antes dele pelo menos dois outros cientistas desenvolve-
ram equipamentos eletrônicos de computação, embora sem terem tido o devido crédito. Quais foram
os cientistas e suas máquinas maravilhosa.e;?
21) Qual foi a pri meira linguagem de programação de alto nível desenvolvida? Qual seu objetivo principal?
22) Pense em algumas vantagens globais obtidas pelo uso de máquinas para realizar processamento de dados
em substituição ao ser hmnano.
Sn$W

O Siste ma d e Computação

2.1 COMPONENTES
No capítuJo anterior, vin10s que um sisterna de computação é um conjunto de componentes que são inte-
grados para funcionar como se fossem um único elemento e que têm por objetivo realizar manipulações com
dados, isto é, realizar algum tipo de operações com os dados de modo a obter uma informação Íl til.
A Fig. 1.1 mostra as etapas do processo de marúpulação de dados (processamento de dados), a qual. como
mencionamos, pode ser realizada de fon na manual, como se fazia antes da era dos cornputadores, ou através
dos computadores, que são, então. máquinas de processar dados de forma eletrônica.
Quando, em 1943, J. Eckert e J. Mauchly iniciaram o desenvolvimento de uma máquina para computare
obter de fon11a mais rápida as tabeJas balísticas requeridas pelo exército americano, e)es tiveram em mente
aquelas etapas da Fig. 1.1, para criar os componentes que iriam constituir o computador de forma completa.
Ou seja, tinham que projetar um meio para entrar os dados (elemento de Entrada, E - ou Input - l), outro
para apresentar o resultado na forma que os humanos entendessem (elemento de Saída, S - ou Output - O)
e, finalmente, un1 demento capaz de ordenadamente executar instruções que 1nanipulasse1n os dados como
desejado (elemento de processamento ou processador). Na realidade, naquela época e em um primeiro mo-
mento, os componentes de EIS não eram tão explicitamente definidos e visivelmente compreendidos como
atualmente, pois não tinham surgido ainda os monitores de vídeo, impressoras, teclado 1 1nouse e outros mais
que reconhecemos facilmente nos dias de hoje.
Desse modo, o primeiro computa.dor surgiu com os 1nesmos con1ponentes necessários para se realizar com
sucesso as etapas de processamento de dados: Processador e Sistema de Entrada/Saída (E/S) ou, como são
conhecidos em inglês: Input/Output (1/0).
Logo em seguida,John von Neumann aperfeiçoou de forma considerável aquela arquitetura inicial, acres-
centando um elernento (componente) fundamental: a memória, um componente para armazenar tanto pro-
gramas quanto dados, o que tornou o processo de manipulação dos dados muito mais rápido e eficaz. Tal
arquitetura, conhecida como de von Neumann (embora vários o utros cienristaS tenham colaborado no pro-
jeto) , tem-se mantido ao longo do tempo, naturalmente com notáveis aumentos de capacidade, velocidade e
desempenho global.
Como este livro trata do estudo e da descrição dos computadores, precisamos, em primeiro lugar, apresentar
as principais partes que compõem essa extraordinária máquina. Este capítulo, então, consiste na apresentação
genérica dos com ponentes principais de um sistema de computação. de modo que, nos capítulos subseqüentes,
possamos detalhá-los um por um, em. suas funções, estrutura interna e funcionamento.
A Fig. 2. l mostra um modelo de computador, com seus componentes básicos, os quais. com.o já mencio-
nado, fazem parte (exceto as memórias) das etapas de um processo de manipulação de dados.
SU$W

32 / O Sistema de Computafâo

d - -- ~ _P_~_~_•_~_d_o_r ~ - - -C = >

I
Dispositivo Dispositivo
de entrada de saida

Memória principal
Memória
(RAM) secundária
ou primária

Figura 2.1 Componentes básicos de um computador.

Para identificar melhor cada um dos componentes mostrados, vamos utilizar um exemplo corriqueiro. Esse
exemplo nos auxiliará a apresenrar a descrição funcional de cada componente, a memória ou o processador
central, por exemplo, bem como pretende mostrar exemplos práticos dos componemes reais atualmente fa-
bricados, de modo que o leitor tenha uma idéia viva sobre o que se está descrevendo teoricamente.
Consideremos o caso de um siste1na de conttole do movimento diário de uma agência bancária, no que se refere
exclusivamente à atualização dos saldos das contas de cliences que tiveram movimento em um detemúnado dia. Em
linhas gerais (e de fonna bem simplificada, apenas com o propósito já mencionado de procurannos identificar os
principais componentes de um sistema de computação), o movimento do dia compreenderia apenas retiradas de
algum valor (arravés, p. ex., de um cheque, cartão etc.) ou inclusões (arravés do depósito por cheques, ca1tões,
espécie etc.). As duas possíveis operações seriam, então, retirada - executada por uma operação arim,ética de sub-
rrair do saldo atual o valor da retirada, obtendo-se um novo valor de saldo, e depósito - executada portnna operação
aritmética de somar ao saldo atual o valor do depósito, obtendo-se um novo valor de saldo. Ambas as operações são
realizadas através de i1úonnações obtidas de um docmnento - DOC - que contén1 o número da conta a ser mani-
pulada, o tipo da operação (retirada ou depósito) e o valor a ser manipulado em moeda.
A Fig. 2.2(a) mostra o processo de atualização através da descrição, em linguagem clara, sem qualquer com-
pronússo de identificá-la com alguma linguagem de programação, das erapas (tarefas) a serem realizadas para
a referida atualização.
A relação de tarefas q ue descrevemos em linguagem clara na Fig. 2 .2(a) é denominada algori tmo (ver de-
finição de algoritmo no item 1.1.3). No enranto, um algoritmo descrito do modo informal como mostrado
na figura não consegue ser processado por uma máquina, justamente devido à sua informalidade (a máquina
não entende esse tipo de palavras) e à ausência de qualquer padrão de nomenclatura. Cada pessoa pode escre-
ver a mesma relação de rarefas, porém usando palavras e frases ligeiramente diferentes. Isso impede que uma

Início do Programa
Enquanto houver DOC

Fazer
• Obter um DOC
• Ler número do DOC
• Enoontrar oonta com número = numero do OOC
• Se tipo-DOC = depósito
Então: Novo-saldo = Saldo + Valor
• Se tipo·DOC = retirada
Então: Novo-saldo = Saldo - Valor
• Escrever Novo-saldo no lugar de Saldo
Fim do Fazer
Fim do Programa

Figura 2.2(a) Exemplo de mn aJgorit.mo simplificado para atualização de saldo de contas bancárias.
SU$W

O Sistema de Computação / 33

máquina entenda que tarefa deve ser realizada (por exemplo, alguém pode denominar "adicionar" a operação
de somar. Como uma máquina deve entender esta operação?). Por isso, foi necessário definir linguagens de
comunicação com os computadores, chamadas, de forma genérica, linguagens de programação (ver item 1.1.3).
Nesse nosso exemplo, então, o passo seguinte seria codificar o algoritmo em comandos de uma linguagem de
programação de alto nível do tipo Pascal ou ainda C, Visual C, Delphi etc. Na Fig. 2.2(c) mostramos, apenas
para ilustração do leitor, uma possível codificação do algoritmo na linguagem C .
Em seguida, os comandos definidos - que se constituem, em conjunto, no que se denomina um Programa de
Computador- precis.1m ser interpretados pela máquina (pelo computador) e, para tal, precisam de algum modo
ser introduzidos no hardware. Trata-se da primeira etapa de um processamento (ver item 1.1. l) - Entrada - que
requer um componente ou equipamento específico (hardware). Por exemplo, podemos digitar caractere por
caractere do programa em questão, usando o componente denominado Teclado, bastante semelhante ao teclado
das máquinas de escrever comuns. No irem 10.3.1 é descrito o funcionamento de um teclado, mostrado na Fig.
2.3. Há inúmeros outros equipamentos que podem ser utifüados como componente de entrada de dados em um
sistema de computação. Exemplos de dispositivos anialmente usados como entrada de dados e programas:
Teclado
Mouse
Scanner
Caneta
Microfone
Touch-screen
Sensores ópticos (utilizados para "ler" as marcas a lápis, colocadas em folhas de respostas por candidatos
cm um concurso vestibular)
Sensores magnéticos (utilizados para "ler" marcas colocadas em um cheque de banco)
Disquetes o u discos rígidos
CDs, DVDs etc.
No Cap. 1O - Entrada/Saída e no Apêndice D - Mais detalhes, são descritos vários d ispositivos de EIS.

Início do Programa
INÍCIOObter OOC
Se não há mais DOC.
Então: Vá para FIM
Senão: Fazer 1:
Ler número do DOC
CONTA Obter Nova Conta
Ler Número da Conta
Se Número do OOC = Número da Conta
Então: Fazer 2:
Ler tipo do OOC
Se tipo do ooc = Depósito
Então: Trazer Valor da Conta para Calculador
Trazer Valor ôo OOC para Calculador
Somar: Valor da Conta + Valor do OOC = Resultado
Substíluir Valor da Conta por Resultado
Senão: Trazer Valor da Conta para Calculador
Trazer Valor ôo DOC para Calculador
Subtrair Valor da Conta - Valor do OOC = Resultado
Substituir Valor da Conta por Resultado
Fim de Fazer 2
Senão: Retomar para CONTA
Fim de Fazer 1
FIM Fim do Programa

Figura 2.2(b) Descrição mais detalhada do algoritmo da Fig, 2.2(a).


Sn$W

34 / O Sistema de Computnfão

No entanto, os computadores foram (e ainda são) projetados com capacidade de entender e realizar apenas
tarefas bem simples e curtas, tais como:
somar dois números de cada vez (ele não efetua operações com três ou quatro n(1meros de uma só vez
etc.),
mover um número de um local para outro,
ler o caractere correspondente à tecla que acabamos de pressionar no teclado, e assim por diante.
Então, para que o computador possa realizar as tarefus que relacionamos de modo geral na Fig. 2.2(a), pre-
cisamos detalhá-las mais, de modo que as novas tarefus sejam iguais às operações que o hardware sabe fuzcr.
Ou seja, o programa introduzido no sistema pelo dispositivo de entrada não pode ser diret.1mente processado,
pois seus comandos são complexos para o entendimento da máquina. E, por isso, foi preparada uma nova
relação com outras t.1refas, mais detalhadas e simples, que produzem, porém, o mesmo resultado final, soluci-
onando o mesmo problema. A Fig. 2.2(b) mostra essa nova relação (programa), que compreende as operações
que o hardware pode realizar. Na realidade, algumas das instruções relacionadas na figura precisam ainda ser
mais detalhadas, mas trata-se de situação bem específica {de entrada e saída), a ser discutida adiante.

void main()
{
printt {"Digite o número do documento: ");
scanf {"%d", &num_doc);
=
AAQ_CONTAS fopen (*Arquivo de Contas dos Clientes", "rw");
while {num_doc != O)
{
printt {"Informe o número da conta: ");
scanf ("%cf', &num_conta);
printt {"Informe o valo(');
scanf ("%r, &valor);
printt {"Qual o tipo do lançamento {D) Depósito ou A {Retirada)");
scanf ("%e", &tp_lanc);
fseek (AAQ_CONTAS, sizeof(RegCliente)'(num_conta-1 ), SEEK..SET);
fread (&RegCliente, sizeof{RegCliente), 1, ARQ_CONTAS);
if (tp_lanc =="D")
AegCliente.Saldo = AegCliente.Saldo + valor;
else
RegCliente.Saldo = RegCliente.Saldo - valor;

fseek (ARQ_CONTAS, sizeof{AegCliente)"(num_conta-1 ), SEEK_SET):


fwrite (RegCliente, sizeof{RegCliente), 1, AAQ_CONTAS);
printf {"Digite o número do documento: ");
scanf {~/4d", &num_doc);
)

fclose {ARQ_CONTAS);
)

Figura 2.2(c) Programa em C para o algoritmo da Fig. 2.2(b) .

Neste momento, vamos ignorar corno foi realizada a transformação do programa da Fig. 2.2 (a) no programa da
Fig. 2.2(b) (ver Apêndice C), como também nada s.1bemos ainda sobre o fonnato dos elementos que constituem os
referidos programas. Queremos, neste instante, tão-somente identificar quais são os componentes envolvidos com
a realização das tarefas desc,itas nas figuras citadas e conhecer suas funções básicas dentro do processo global.
Retornando ao algoritmo da Fig. 2.2(b), devemos ter atenção ao fato de que, para que uma máquina seja
capaz de realizar várias operações, é preciso que e1a seja de algum modo instruída a identificar cada uma delas
e, depois de identificá-la, saber como realizá-la. As tarefas relacionadas na Fig. 2.2(b) são, uma por uma, ope-
rações que uma determinada máquina (o hardware) pode realizar. Chamam-se, por causa disso, instruções de
máq11i11a . O componente do computador que é capaz de entender e realizar uma operação definida por uma
SU$W

O Sistema de Cc,mputação / 35

Figura 2.3 Exemplos de dispositivo de E/S - Teclados.

instrução de máquina denomina-se Unidade Central de Processamento - UCP, ou, simplesmente, processador
(CPU - Cewral P"'cessi11g U11ir). Uma UCP ou processador é constituída de milhões de minúsculos circuitos
e componentes eletrônicos {transistores, resistores etc.) ct\jas fünções básicas são ler e interpretar instruções de
máquina e realizar as operações matemáticas (ou outras) definidas após a interpretação de uma detcnninada
instrução (ver Cap. 6). Atualmente, os mencionados milhões de elementos podem ser encapsulados em um
único invólucro, formando as pastilhas (chips), que já citamos no Cap. 1, como os processadores (UCP) Intel
Pentium 4, Intel ltaniwn, Intel Celeron, AMD Athlon, AMD Opteron, AMD Athlon 64, Motorola/LBM
Power PC, Sun Sparc e o utras. A Fig. 2.4 mostra algu ns exemplos de chips processadores.

, ............
__
Athlon

ª -.
,~!!?.
f'U"•• c..,...,
n , ..., ~

.,..
SPARC

Pentium 4

Figura 2.4 Exemp los de p rocessadores.


Sn$W
36 / O Sistema dt C"mputaçâo

Para que a UCP possa trabalhar - entender e execurar uma instrução de máquina - é necessário, em pri-
meiro lugar, que o programa mostrado na Fig, 2.2(a) seja introduzido no sistema (através de um dispositivo de
entrada, como o teclado), para em seguida ser convertido no programa da Fig. 2.2(b), e depois a U CP come-
çar a executar este último.
Já vimos ante1iom1ente que um progr.m1a é sempre consciwído de vá1ias instntÇÕ<:S, t: para que de seja rapida.
mente executado é necess.íiio que ele execute todas as instn,ções, recebendo os dados, manipulando-os e expondo
todos os resultados, de fom1a totalmente automática. Em outras palavras, antes da execução do programa, este e os
dados que serão por ele manipulados devem ser am1az.enados na próp1ia máquina para, um a um, serem localizados
pelo processador, entendidos e executados, sem que haja interveniência de uma pessoa (pois, nesse caso, haveria
sempre um atraso bem grande). O componente do sistema de computação responsável pelo am,azenamento das
i,úonnações introduzidas pelo componente de ENTRADA é denominado Memória (ver Fig. 2.6).
Após a realização de todas as operações, os resultados devem ser apresentados ao usuário interessado, o qual
naturalmente deseja vê-los em uma forma inteligível para de (caracteres alfubéticos, algarismos decimais, si-
nais de pontuação da nossa linguagem etc.) e não na linguagem do computador. Esses resultados podem ser
apresentados en1 lllll vídeo ou impressos em um outro equipamento muito popular en1 computação, a im-
pressora, ou em qualquer outro dispositivo de SAÍDA (ver Fig. 2.5 e Cap. 10).

Monitor

Pendrive
CD-Rom

Impressora

Mouse

Figura 2.5 Exemplos de dispositivos do E/S.

Em resumo, os componentes básicos de um sistema de computação são:


• processador (ou UCP);
• 1ne1nória;
• componentes de E/S .
O pr()cessad()r rcaliz.a duas funções prhnotdiais: a .. cerebral", de interpretar as ações que devem ser realizadas:
por conta de u111a dctcnninada instrução de máquina, e a "executiva". de efctivainente realizar aquela operação
interpretada. Qualquer processador é construído contendo internamente as seqüências {ou rnicroprograma -
ve1· Apêndice O) de execução de cada operação primitiva que o seu projetista definiu, como a de somar dois
nllmeros, muJtiplicar dois números, mover un1 dado de um local para outro etc.
snow
O. is.lem11 dr Co111p11t11çifo / 37

( Início )
~I
••
Buscar
irtstrl\Jção na
rrremõria

l
lnlerpretar a
op,era,ção a ser
realí!U<f:a

i
Bus.ear
operandos
(se houver)

l
Executara
operação

1 Figura 2.,(i Cj,cfo básico de instrução.

Para executar cada pa~o de uma deter.m.inada seqi.iéncia , mn compont>nte interno do proces a.dor emite
um s.:ina] de controle para transferir ou mover bits de um local para outro (por exemp1o, uma etapa de uma
eqUência de . oma pode. er nan ferir o endereço de um c:fado dé um. regi. r:rador1 para ourro rt'gi. trador).
Na realidade, o proce ador contém !>empre uma se,qilênçia bá ica de execução de operações pr:im1tiva. que
é conhecida como ódo de in truçâo, mo n11da na Fig. 2.6 (no ap. 6 o kitor obterá uma completai.: detalha-
da de crição do funcionamento de um ciclo d instrução, com exem1plos elucidativo).
Omro componence ,é a ,nem,dria. Tr:ata-se de 11.1m componente que não pode s.cr e tudado como um ele-
mento individuál, já que há diferentes tipos de memóri:.i em qualquer si tema de computação. · a realidade,
pod1;;mo imaginar a memória como mn si terna de a:rmazen:unento, comtjtuído de várjos di positivos cada
mn com características diferentes. de desempenho, porém todos servindo a um mesmo propósim: a11J1azena-
mento e recuperação, Conforme veremos mais adiante, e:»e sim:~ma de memória. é constituído de ári.os · 01t'l-
ponentes de armazenamemo como: rc~,i tradcm;S,, 1nemória cache, mcmú1;a p1im;ip.il, memória :;ecundária.
A Fig. 2.7 mo tra alguns. exemplo. de mcméni:1s usada~ atualmi.:ntc no computadorc _
Uma da caracterí ticas marcantes do dispo iri oi; de amlazcnamcnto é o endereço de a.cesso a uma deter-
minada parte (ou posição) do di positivo ou da memória. Endereço é: um número (natur3lmcntc bináiio, já
que todo computador funciona no istema binãrio) tp1e indica uma púsú;âo ou local da mem6tia onde e
armazena um determinado vak)Tr (o d~do).
O conceito de endereço cm memória d • computador é semelhante ao end reço utilizado em nossa vida
coridiana p:.ira identificar e localizar locais de moradia ou. de rrabalho, um núme-ro.
Os dispo!\irivo~ d · Eutradt1 ou StJid" servem basicamente para permitir que o sistema de cm11puração :se
co111uniquc colll o mundo exterior, realizando ainda além da interligação, .1. conve·rsào da linguagens do
i~tema parn a linguagem do meio e. terior (caractere de nos a ]ingu:igem) e vice- ersa. Os cre humano
t'ntcndt.:m s-ímbolos como A, b, ., (, + etc., e o computador entende s..inai elétricos que podem a !illmir um.
valor de tensão (+ 3 vo]ts) para representar o valor l ou um outto valor (O volt) para representar o valor O. O
teci.ado (di po itívo de ENTRADA) interliga o u ·uário (mundo e t(!tioi·) e o computador, permitindo a co-

1R.q,:i.11r~or ~ um~ peqm.· na 111('111ória d ~ :dti'~inrn \·do,dtfade. ('!'.Htotme nos procc« ,1d.ol'tl p,U'il :1m1:k:!~1rnr um ünico \·alar ,k ,htl.u ou ~n,kJrc';ç., •• ·ri ,l,:,,çnt<>
111\l .;,p. -1 ~ m1,,,-,11,,"im1~do fr~11t•~nt~·m ·11t.: =1<1 llifl!,.'ll dos d emaH t"J]lÍtuln<
Sn$W

38 / O Sistemn dt Compurnçifo

DDR

DIMM

PCI

Figura 2.7 Exemplos de me1nórias.

municação entre ambos através do uso das suas teclas. Ao ser pressionada a tecla correspondente ao caractere
A, por exemplo, os circuitos clctrônicos existentes no teclado "convertem" (ver Cap. 10) a pressão mecânica
em um grupo de sinais elétricos, alguns com voltagem alta (bit l) e outros com voltagem baixa (bit 0), que
corresponde, para o computador, ao caractere A.
Os dispositivos de SAÍDA operam de modo semelhante, porém em sentido inverso, isto é, do computador
para o exterior, convertendo os sinais elétricos inten10s (e que, em grupos. podem representar um caraccere
inteligível pelo ser humano) cm símbolos conhecidos pelos humanos, como os caracteres C, e, h, *, >, + etc.
Nos Caps. 9 e 10 serão mostradas as características básicas de alguns dos dispositivos de saída mais conhe-
c idos, como o vídeo, a impressora, o CD-ROM, os discos magnéticos e o mouse.
Nos parágrafos anteriores, apresentamos ao leitor os componentes e suas funções, que constituem um sis-
tema de computação do ponto de vista do hadware. Processador, memó,ia e dispositivos de EIS são realmente
os componentes mais visíveis e conhecidos, porque são aqueles que têm função explicitamente visível e os
quais nos acostumamos a usar diretamente (como os de E / S) ou ver e pegar, quando compramos, montamos
etc. , con10 o processador e os diversos tipos de memória. No entanto. ainda falta 1nencionar um elemento
importallte desse sistema, que provê a interligação de todos os componelltes, permitindo a comu,úcação en-
tre eles e, por isso, viabilizando seu funcionamento.
Como as informações existentes internamente (programas e dados) nos diversos componentes são repre-
sentadas por sinais elétricos, que indicam os dois valores que o sistema conhece (bit Oou bit !), para que os
bits caminhe1n de um local para outro é necessária a existência de uma fiação apropriada para conduzir os
sinais elétricos, da mesma fonna que, em nossa residência, há uma enorme quantidade de fios necessários para
conduzir os sinais elétricos que irão acender as luzes, ligar os clctrodo111ésticos, conduzir som e outros. Desse
modo, o processador encaminha um dado para a 1nemória através de fios condutores, assim como a me1nória
principal pode encaminhar também (ou receber) dados (bits) do disco rígido através de fios condutores.
O conjunto de fios que conduzem sinais elétricos entre os diversos componentes do computador (sinais
détricos que podem, cm um dado instante, representar bits de dados ou bits de endereço o u mesmo sinais de
controle indicadores de uma determinada operação a ser realizada) é conhecido como barra meu to. A Fig. 2.8
mostra u1n m.odelo de conexão entre os diversos componentes de um sisten1a de computação através de um
barramemo. A figura mostra o barramento representado por dois traços separados, que servem para mostrar
SU$W

O Sistema dt Computação / 39

Memória Memória
Processador cache principal EIS EIS EIS

( ... )

Barramento (BUS)

Detalhe barramento Fios


indrviduais

Figura 2.8 Modelo de interconexão entre componentes de um sistema de computação.

que entre os traços estão passando diversos fios. É comum, tambéin, se represencar um barramento com vários
fios por um único fio, contendo um traço em diagonal e ao lado desse traço um número, que indica a quan-
tidade de fios daquele barramento.
Em inglês o barramento chama-se b11s, cujo significado mais comum é ônibus, veículo de transporte com-
partilhado (ou seja, perm ite que diferentes pessoas possam usar o mesmo veículo para irem a d iferences locais,
mais economicamente do que se usassem um veículo individual, como um carro, por exemplo). O termo bus
é mais apropriado do que barr,mento porque exprime a maior qualidade do barramento em um sistema de
computação: a capacidade de compartilhamento de uma mesma via, economizando fios (economia de custo
e espaço) . Como se pode ver na Fig. 2.8, cada componente pode se comunicar com um outro usando o mesmo
barramento; naturalmente, como os sinais elétricos são os mesmos, só pode haver uma comunicação bilateral
cm cada instante, ficando as demais comunicações aguardando sua vez.
Os barramentos são mais ou menos sen1elhantes a u1na avenida de mna cidade, por onde passam veículos
de transporte (sinais elétricos, no caso do computador), um por cada pista (um sinal po,· cada fio, no caso do
computador). A avenida pode ter uma única pista, por onde passa um único carro de cada vez (o barramento
pode ter um único fio, por onde passa um sinal de cada vez, um bit de cada vez). Chama-se esse tipo de
barramento de serial. Outro tipo de barramento ou avenida, no caso de uma cidade, é aquele constituído de
vários fios (no caso da avenida é como se ela fosse constituída de várias pistas), por onde passam vários sinais
simultaneamente, um por cada 60. Chama-se esse tipo de barramento de paralelo. Largura do barramento é
a propriedade relativa à quantidade de fios (de bits} de que ele é constituído; é mais utilizada no caso de
barramentos paralelos do que seriais.
Um barramento que seja constituído de 10 fios paralelos indica que podem passar por ele simulcaneamente
10 sinais elétricos, cada um representativo de 1 bit; a largura do barramento é, então, igual a 10 bits.
Os barramentos são usualmente constituídos de duas partes:
- parte que conduz bits de dados - barramento de dados - BD
- parte que conduz bits de endereços - barramento de endereços - BE
Além disso, há um conjunto de fios adicionais que conduzem sinais de controle e comunicação durante
uma operação de transferência pt:1o barramento; embora não se encontre com freqüência na literatura, esses
fios que conduzem sinais de controle podem ser chamados também parte do barramento global, como barra-
mento de controle ou BC. A Fig. 2. 9 mostra um exemplo de interconexão por barramento, com a separação
entre as três partes, BD, BE e BC.
Na realidade, é bom frisar que o barramento é único (por exemplo, barramento PCI o u FSB), porém di-
vidido em três conjuntos de fios, cada um deles servindo a uma funcionalidade diferente, dentro do mesmo
processo de transferência. Um conjunto serve para a função de transportar sinais de controle e comun icação,
e é cor1hecido por BC - barramento de controle; outro conjunto de fios serve para a função de transportar
sinais (bits) que representam um número, que é o endereço de um local de memória ou indicativo de um
SDêW

40 / O Sistema dr Compuraçifo

( ... )

Barramento de dados - BD

Figura 2.9' Mode o de intercone ·ão de con1ponentes de um si tema de com1n:l'tação.

dererminado di posiri o de E/ , conhecido como ban memo de endereçoo, BE, e, finalmente um outro
conjmuo serve para a função de tran portar inai (bits) que represemam o dado que e tá sendo transferido do
endereço mc11cicmadn.
No cam da conexão ao prece. . , dor (por exemplo, qu.-indo se- trata do ban-.im mo que i.ntcrcone-cta o pro-
ç ·. s.:aJor à memória cachc e à mcnu1iria prinôpal, ou RAM) , todos. ,1; s. . fio ·h gain aos. pino de ligação do
procl.!sSaador ao mundo e ·terior, ou eja a soma dos fios do BC, do BD e do B é igual ao mtal de pinos do
processador ou cotal de foro do saquete e1 1 qut:' o prnce. s.ador . e encaixa na p laca-mãe do . i terna (pam en-
tender o conceito de pJaca-màe, ver Cap. 6).
Para auxiliar o 1eit.or no entendimento das f:unções do barramenms., podemos apr-e sentar um pequeno
exemplo de operação de transferência de d3do. entre o proccs adore a n en 61ia principal. omo o e. emp]o
visa tão- somente; melhorar a comprens.ão da função de um barram nto, nào precisamos exp]ical' o que é o pe-
raçâo de ace s.o o sinais de tem,po nvoJvidos e outra explicações peninentes ai; quais e1iio detalh adas 111.-ii
adiante, quando efetivame1 te estudaremos os barramentos (Cap. 6 e Apíindice D).
Vamo imaginar, por exempJo, que o proce_ ador requer um dado parn ser m.-inipui.ado no decorrer da
execuçào de um~l ins.m1çào (a .i n truçào pode ser, p. ex., a. de s,nmar doi~ númc1-os, 1c um dele é o dado que
o prece_· ador esrá. 11:qui:n:ndo). O processador abe o end.e1·eço do dado (nesse mmnent.o nao intel'e: sa aber-
mos conu) o prnçe. ~adm veio a ·ab •lf do endereço), que é, por exemp1o, .J7 m decimal 0000100101 em
binário (o valor binário exato & apena 1001 O1, porém e tamo considerando, para efeito do e ·emplo, que o
barramento de endereço , BE. tem 10 fios o que permit,e passar endereço~ de at' 1O bits. Er tão, a fargura

Processador M@mória

37 75

BE 37 _____.,.

BD 75

Figura .2.10 Ex.,ê mplõ dê fü.ndonamento dos bauatnentos de dados, endereço ,e controlo.
Sn$W

O s;.s,ema de Ccm,putafiio / 41

desse BE é de IO bits, e preenchemos com zeros o valor do endereço para totalizar os 1Obits. O processador
não sabe, mas vamos imaginar que o dado que está armazenado no endereço 37 é o valor 75 decimal, que
co1Tt--Sponde, em bináiio, a 1001011. Vamos supor que cada endereço de memória tenha uma largura de 8
bits, ou seja, possa annazcnar números com valor de até 8 bits; ent.io, no caso presente, estará armazenado no
endereço 37 o valor O100 1O11, que deverá ser transferido para o processador (na realidade é transforida uma
cópia desse valo r), e, como veremos mais adiante (Cap. 4), c--ste exemplo trata de uma operação de acesso
chamada de operação de leitura .
Como se trata de dois componentes não-hu manos se comunicando e como o b::irramento é compartilha-
do, é preciso que se estabeleça uma regra para defirúr se o processador pode iniciar ou não o procedimento de
transferência, pois a memória poderia estar ocupada. recebendo ou transfetindo dados para outro componen-
te. Assim, o processador precisa interrohrar a memória ou sinalizar no barramento que ele deseja a transferên-
c ia. E a memória precisa responder (ou o controle do barramento) que tudo está OK. Os sinais elétricos cor-
respondentes a cada comunicação dessas fluem por fios separados (um para cada função) na pane do barra-
mento q ue chamamos de BC - barramento de controle. Muitos são os sinais de controle (sinal do relógio,
sinal de confirmação de recebimento, sinal indicador de que a operação é de leitura, sinal indicador de que a
operação é de escrita, sinal indicador de acesso à linha, sinal indicador de acesso à coluna e omros, alguns dos
q uais estaremos descrevendo no Cap. 6 e no Apêndice O). A Fig. 2.11 mostra os elementos piincipais da
operação de transferência .
Em resumo (ver Figs. 2.9 e 2. 10):
1. o processador inicia o procedimento inteJTogando a MP {ou o barramento, dependendo do protocolo
utilizado) pelo BC;
2. a resposta, OK, também passa pelo fio defi nido do BC;
3. o processador sinaliza para a MP o ripo de operação (leirura), também us.1ndo um fio específico do BC;
4. o processador passa o endereço para a MP, pelo BE;
5. a MP decodifica o endereço e transfere o dado do endereço 37 (valor 75) para o processador pelo BD.
Na verdade, o algoritmo definido pelo protocolo de acesso é bem mais complicado, com mais itens e de-
pendente de sinais de tempo, gerados no barramento por um dispositivo de sincronização que conhecemos
como relógio (do<k, como já vin1os) . No entanto, neste estágio inicial do li vro somente interessa conhcccr as
funções e algumas características simples e primord iais dos barramentos (como a largura, por exemplo), daí a
simplificação do procedimento e das explicações a respeito do exemplo descrito.
Para finalizar, devem-se ressaltar algumas características dos BE, BC e BD (ver Fig. 2.1 1).
Sobre o Barramento de Controle - BC:
Trata-se de um conjunto de fios condutores, onde cada um tem uma independência funcional, seja na direção
do fluxo do sinal (p. ex ., no fio que leva o sinal de interrogação a direção é do processador (P) para a memóiia
(MP), enquanto no fio que leva a resposta da MP a direção é oposta, da MP para o P, como mostrado na Fig.
2.11), seja no instante em que o sinal surge no fio correspondente (p. ex., o sinal de interrogação surge primeiro
e somente após um instante é que surge a resposta, e someme depois é que surge o sinal de leirura (ou de esc,ita),
e assim por diante). Também a função de cada fio é diferente, conforme já mostramos.
Sobre o Barramento de Endereços - BE:
N esse caso, ele possui uma característica fisica marcame, a largura, L, que consiste na quantidade de bits (ou
fios condutores) que o BE possui. Quanto maior o valor de L, maior a quantidade de endereços que podem
ser usados no referido sisten1a 1 ou seja, a capacidade da memória, visto que:
N = 2\ sendo N = quantidade de endereços e L = quantidade de bits do BE ou de cada endereço.
Por exemplo, se L = 6 bits, significa que o BE possui 6 fios e cada endereço utilizado é um número de 6
bits, seja o primeiro endereço (endereço O decimal ou 000000 binário) ou o último endereço (t ·1111·1 em
binário ou 63 decimal). Ou seja, 64 endereços, desde O até 63, ou
N=64=2•
SDêW
42 / O Si's1e1,1o1 de Co1111111t11ção

Memória
princq:ial

INT

ACK

Ba rtamenb:l
de
ce>11trole

LEGENDA:

INT • interrogação
ACK-OK
L - Sinal de leit,ura 1read)
E - Sirlll I de escrita (write)

p M p M
o o
o 1
o o

\
o o BD
BE 1 1
o o
!.)______
1
o
1

Figura 2.11 Leirtura (transferência) de dados entre prooes.s:ador e memória principal.

Como ainda não traram<J. de sistemas de num1.: -ação (01p. 3), do que âo bit c-cc. (icc-1111 2.2, a s. guir),
apena:s moscramo es~t:!> ext:n11plos. em de ralb ar nt:m explicai· o resultados.

Exe1t1p1o 2. :li.
Con ide :ar um proci: s.ador qu · po ua 10 pinos. para enviar endereço p.:ir o b~nõl.mento de end r ·ço:s,
BE. Qual deverás.era máxima capacidade d,e endereçamento dess.e istema?
Proce:s.s.ado = 10 pino de endereços = 10 fios do BE.
To tal de ndereço =
""' 21JE ""' 2'° ""' 1024 ndcn.:ço
Tmal de endereço. = 1 24 (des.dc- endereço O até endereço l 23) .
1

Sobt,e o Hattamento de Dados - BD:


Como o BD é o conjunto de fi~ que nvc para transporte dos ina1 détrico · corre pendente aos bits de
dado , o desempenho da t:ran forencia do dado e tá intimamente ligado a tr· ele nento ou carncterí tica
de e barr.nne1 to:
- largma., L;
- elocidade V·
Sn$W

O Sist~mn de Comp11tariio / 43

- taxa de transferência, T, sendo que:


T=LXV
A largura, L, j á foi definida anteriormente e, como mencionado, assemelha-se à quantidade de pistas de
uma avenida em uma cidade.
A velocidade do barramento, V, está intimamente ligada a um dispositivo chamado relógio, que será estu-
dado no Cap. 6 . sobre processadores. Mas podemos imaginar essa velocidade como sendo a quantidade de
sinais {bits) que são transferidos em cada um dos L fios do barramento. Sua unidade de medida mais comum
é o Hertz, Hz, uma unidade da fisica e de ondulações eletromagnéticas, que é a natureza real dos sinais que
andam nos barramentos. De modo aproximado, nesse momento, podemos assemelhar que 1 Hz - 1 bit por
segundo, o u bps.
A taxa de transferência, T, consiste na real medida de desempenho do BD, ou seja, a quantidade total de
bits (ou de dados) que passa pelo barramento na unidade de tempo.

Exemplo 2.2
Considerar um computador que tenha um barramento de dados, BD, com as seguintes características:
largura = 10 bits e velocidade= 100 MHz. Calcular a taxa máxima de transferência de dados do BD.
Taxa de transferência = T = V (velocidade) X L (largura)
Se L = 10 bits e V = l 00 MHz, então:
T = 10 X 100 = 1000 Mbps aprox. 1 Gbps
Observação: Considera-se ser possível aproximar 100 MHz para 100 Mbits/ s ou 100 Mbps. ou seja. que
o barramento transfira aproximadamente 1 bit por ciclo. Na realidade, o valor é um pouco menor devido
a ruídos e eventuais perdas. Outra aproximação refere-se ao futo de que MHz o u GHz são unidades do
sistema decimal e os múltiplos são 100, 1000, 1.000.000 etc., enquanto Mbps é unidade do sistema binário
e os múltiplos são 1024 ou 2'", M = 2"', e assim por diante.
De modo que 1 MHz con esponderia aproximadamente a 1 Mbps ou 1.000.000 bps, ou mais exatamente
a 953.675 bps (1.000.000 / (1024 X 1024)).

Para encerrar esta explicação preliminar sobre os barramentos existentes nos sistemas de computação, deve-
mos observar que o modelo apresentado na Fig. 2.8, onde todos os componentes do sistema estão ao mesmo
barramento, apesar de simples, prático de impleinencar e barato, é a1tan1ente ineficaz e, por isso, não é usado
em sistemas reais. A razão desses inconvenientes está não só na quantidade de dispositivos que estariam conec-
tados a mna 1nesn1a via, o nde s0111ente dois dispositivos falam de e.ada vez, como também, e principalmente,
nas diferentes velocidades de transferência dos diversos dispositivos de um sistema de computação, corno o
processador e a memória (cache e principal) com velocidades muito elevadas, comparativamente com, p. ex .,
o redado e mouse, com taxas de trJnsfcrência muito baixas.
A tinilo de ilustração, podemos fazer uma comparação com uma cidade que possua uma única avenida
onde os veículos de transporte se locomovem e que haja três tipos de veículos: veículos tipo carro de corrida,
com velocidades elevadíssimas. veículos de velocidade compaóvel com carros de passeio e veículos tipo bici-
cleta e patinete, todos usando a mesma e única aven ida. De modo que, q uando uma bicicleta está passando
pela avenida, todos têm que esperar muito tempo até ela cruzar todo o percurso para outro veículo poder usar
a avenida. Este método de transporte é clararnente ineficaz.
Para solucionar o problema, o responsável pelos transportes consnuiu mais duas avenidas, e a cidade passou
a contar com três avenidas, mna delas somente usada por carros de alta velocidade, a outra somente usada
pelos carros de passeio (média velocidade) e a o utra pelos veículos lentos (bicicletas e patinetes), de modo que
um tipo de veículos não atrapalha o trânsito do outro tipo.
O mesmo tipo de estratégia foi adotado 11a arquitetura dos sistemas de computação, que possuem disposi-
tivos muito rápidos (processador e memória), que usam um barramento específico (nonnahnentc conhecido
Sn$W

44 / O S istt ma de Cm111mtaçiío

Prooessador Cache MP

Ponte
(Bridg•)
Chlpsel

Barramento de expansão para EI S de alta velocidade (Ex.: PCI)

Oiseo Placa
rígido Vldeo
LAN

Ponte
(«>ntrole Chipsel)

G'
Barramento de expansão para EIS de baixa velocidade (Ex.: ISA. USB)

Tac;lado
li
l 1mpressora I
IC
Scanner 1

Figuta 2.12 Exemplo de modelo de sistema com vários barramentos.

como ban-:uncnto do sistema, ou sysrem bus): dispositivos de E IS rápidos. como disco rígido, placas de rede
local (LAN), modems velozes, e outros usam outro barramento, apropriado a este tipo de dispositivos (um
exemplo atual é do barramento PC!) e, finalmente, um barramento específico para dispositivos lentos, como
teclado, rnouse, porta paralela etc. A Fig. 2.12 apresenta um exemplo desse tipo de arquitetur:1 de sistema de
computação, com três barra1nencos 1 sendo que a conexão entre eles é efetuada por um dispositivo de conexão
chamado ponte (bridge), que realiza a sincronização e a transferência entre eles.
En1 resumo, os sistemas atuais, embora mais potentes. possuem os mesmos componentes básicos e realizam
suas funções essenciais o rientadas pelos mesmos conceitos fundamentais expostos no relatóiio apresentado por
John von Neumann (NEUM 45), relativo à arquitetura do seu sistema EDVAC e do IAS (ver irem 1.2.4.1),
quais sejam:
dados e instruções são armazenados cm uma memóiia do tipo que escreve e recupera Oeitura); ver Cap. 4;
• o conteúdo da memória é endereçado conforme a sua posição, indepcndcntcmcnrc do tipo da info rma-
ção nele contido; ver Cap. 4; e
• a execução das instruções ocoiTC de forma seqüencial (a não ser que uma instrução específica mude
momentaneamente a seqüência), un1a em seguida à outra; ver item 6.4.

2.2 REPRESENTAÇÃO DAS INFORMAÇÕES


2.2.1 O Bit, o Caractere, o Byte e a Palavra
Toda informação introduzida em um compurador (sejam dados que serão processados ou instruções de um
programa) precisa ser entendida pela máquina, para que possa corretamente interpretá-la e processá-la.
No texto deste livro, as informações apresentadas em forma de caracteres são entendidas pelo leitor porque
ele conhece o formato e o significado dos símbolos que representam os caracteres alfabéticos, os numéricos
(algarismos) e os sinais de pontuação o u matemáticos(+, - , X,/,>,<,= etc.).
SDêW

O Sistem11 de Om1pmaçifo / 45

O computador, endo um equipamento elctrônico-, antuzen.a e movimenta as informaçõ s iut mamente


. ob forma eletrônica; ta podt: S:Cr um valo,- de volcagc111 ou dt: corr me ( abemm r, mbém que na memória
1.;cundália as infom1açõe são anm1zenadas sob forma magnética ou ótica).
Para que esta máquina pudc. :c:: representar cktricamcnt · todo lJ. simbo]os utilizados na linguagem huma-
na, cr'am m:cc ár'o mai de 100 diferente valores de voltagem (ou dc cmTentc) . Tal m.áquina certamente
eri:1 djfici] de er constndda para fins comerciais e, pos ivelmente teria muito baixa confiabilidade (uma das
grandes desv:mtagem do primeiro computador detrúnicú consc11.1ído o Eniac, foi ju tamente o fat.o de er
uma máqL1ina d 1mal, o ,1u' foi imediatam ·m1,; con-íg~do a partir d, máquina s.eguincc, o rAS, que já era urn
computador binário (v r item 1.2.4. 1). o cas-o do lAS optou-se por uma máquina binária porque von
emnann e sua eqLiipe con ideraram muito mai!i . impk_ e confiável projetar um circuito capaz de gerar e
ma.nipuJar o menor núm.ero po ível de valore di tintos ism é capaz de entender apena doi valores diference :
O e 1.
Alér111 di$:SO, com uma máqui1,a binfoa toma- s. · mai impks o i,;mprcgo da lógica bookana (do [M / NÀO,
AEERTO/FECHADO, A, ]MA/ ABAIXO, U ,ADO/ UGADO etc) .
Dc:s a forma o:s computa.dore. digit, i (que trabalham com valore di)C -etos) ão totalmente bin..11 ·o . Toda
'nfo:rmação introduzida em um computador é convertida para a fot1na binária, através do emprego de um
código qualquer de armazenamento, como veremo rnai adiante.
A linguagens utilizada pelo hun anos., como o portuguê , po suem uma trutura d infonnaçào criada
para permitir a construção dos elemento nece~ário à comurücaçào entre pes oa ~a no formato falado ou
escrito. A im é que nos comunic:uno l.m com os. outro!> att vé!> de crechm do conjunro de demcnco. cii~po-
niveic'i n no s.a. linguagcm, co1110 o caractere e a palavra , unindo-o de acordo com as regra dt: con trução
estabelecida (léxica e de sintaxe}.
O menor elememo di~poní el de unrn linguag m humana ' o caraccerc (em portugu • po$<SUimü. 23 ca-
ractere. ,lfabético. comoo 'a'' o 'd',o'f . 10carnctcn:snuméri os comoo. algar1smos 0",'1'
além dos sinais de pontuação i:: de opçraçôcs aritméticas, ·nquanto, na língua ingk ·a, há 26 a:rac~ ·:r · lfab ,._
tico. • o. no . O· 23 mai o K o Y e o W).
A menor unidad d inforn1::tção, armazenáv l · m um computador é o alg:;ui ·mo binârio ou digi~o biná1io,
conhecido como bit (contração da pafavras ing]esa binary digit) . O bit pode ter, então, somente dois valore :
O e (ver Fig. 2.13).

+ 1/

Bit~ Bit 1 Bit 95 Bit 1 011~

li

fi«iu:a 2.13 epfe ·entação de 1 b't.

No entanto, um ca1.'lctcre is.ofado pratica111ente nada ignificai para nosso entiido de connmicaçào, razão
por que se criamm a.,;. palavras, que . âo conjuntos d · cantct res formando 1.11n ntido d informação útil como
"me n , 'pe soa , cano ·e uma enorm- quantidade de outn1~ palavras, confonm; pod mo. oberva ao fofüe-
ar um dicionário da Ungua portuguesa ou de outra língua qua]qucr_
Da mesma forma que na nossa hnguagem a menor unidade de informação (o carnctcre) pouco ou nada
significa como informaç-io útil, m computação, com possihfüdade rào li.mirada., o bit pouco pode n:pn.:sc11tar
Sn$W

46 / Ü s;.stema dt: C-0111plltt1fâO

isoladamente; por essa razão as informações manipuladas por um computador são codificadas c m grupos or-
denados de bits, de modo a terem um significado útil.
O menor grupo ordenado de bits que pode representar uma in fo,mação em computadores é o caractere da
linguagem dos humanos, justamente a menor unidade de informação das nossas linguagens (como se pode
verificar, em computação ainda há um nível ainda mais baixo de representação de informação. que é o bit) .
Qualquer caracterc a ser armazenado em um sistema de computação é convertido em um conjunto de bits
previamente defüúdo para o referido sistema (chama-se códig<> de represe11taçiio de caracteres) .
Cada sistema poderá defü1ir como (quantos bits e como se organi zam) cada conj unto de bits irá repre-
sentar um determinado caractere. Poderão, por exemplo, ser 5 bits por caractere (nesse caso, serão codifi-
cados 32 símbolos d iferentes), 6 bits por caractere (codificando 64 símbolos diferen tes), 7 bits, 8 bits, e
assim por diante. No Cap. 7 serão apresentados algu ns dos pri nc ipais códigos de representação de caracteres
(ver também Apêndice B).
A prime ira definição formal atribuída a um grupo ordenado de bits, para efeito de manipulação interna
mais eficiente, foi instituída pela IDM e é, atualmente, utilizada por praticamente todos os fubricantes de com-
putadores. Trata-se do byte, definido como um grupo ordenado de 8 bits, rratados de forma inruvidual , como
unidade de annazenarncnco e transferência .
O byte foi definido para servir de elemento de referê ncia para a constrnção e funcionamento dos disposi -
tivos de armazenamento e também como referência para os processos de transforência de dados entre pe1ife-
ricos e UCP/MP. As impressoras continuam recebendo dados byte a byte, como também é costume no mercado
construir memó1ias cujo acesso, arnuzenamemo e recuperação de informações são efetuados byte a byte (ou
caractcrc a caractere) . Po r essa razão, c m anúncios de compuradores menciona-se que ele possui "512 Kbytes
de mt:mória" ou "32 M caracteres dt.! memória" ou ainda u2 Gbytcs de memória'\ por exemplo. Na realida-
de, em face desse costume quase sempre o termo byte é omitido por já subentender esse valor.
Como os principais códigos de representação de caracteres utilizam grupos de 8 bits por caractere, os con-
ceitos de byte e caraaere tornam-se semelhantes, e as palavras, quase sinônimas. O termo caractere é 1nais en1-
pregado para fins comerciais (propaganda, apresentações a pessoas não familiarizadas com o jargão de compu-
tação), enquanto o tcn110 byte é empregado mais na linguagem técnica dos profissionais da área.
No entanto, i: bom prestar atenção ao fato de que, embora um caractere represente pouca informação com
sentido (por exemplo, a letra "a., não fornece quase nenhuma informação se estiver isolada, como a rnaioria
das letras de nosso alfabeto, que nada represenram se estivere m isoladas em um texto, como o " I", o "v"),
ainda assim trata-se de um elemento bem definido de informação .Já o byte, que pode rcprescnrar um caractcrc
inte111amente no computador, não tem a finalidade de representar qualquer tipo de infonnação. sendo tão-
somente uma unidade de armazena111ento e transferência.
Este fato é particularmente verdadeiro quando se trata de valores numéricos, que usualmente s.io represen-
tados em um sistema de computação por uma quantidade de bits bem maior do que a de um byte (8 bits).
Assim é que, em um deternúnado sistema de computação, os números podem ser representados com conju n-
tos de 32 bits, o que compreende 4 bytes de dados para cada número. Nesse caso, um byte nada representa,
pois é apenas parte do valor do nlln1ero (é mn caso semelhante ao de nosso sistema numérico, o decimal, em
que podemos ter que escrever em um papel o número 1539734, que possui 7 algarismos. No caso desse nú-
mero, o algarismo 7 isoladamente nada represenra, nem qualquer um dos demais algaiismos).
Voltando ao exemplo ante,ior sobre a utilização do tenno byte c m citações sobre a capacidade de memória
de computadores, verificamos a inclus.io dos caracteres K. M e G. Tais caracteres são letras indicativas de um
valor numérico fixo, utilizado para reduzir a quantidade de algarismos representativos de um número. Nas
grandezas métricas, usa-se o K para representar mil vezes.
Como os computadores são máquinas binárias, todas as indicações numéricas referem-se a potências de 2 e
não a potências de 10, como no sistema m étrico, e, por essa razão. o K representa 1024 unidades (décima
potência de 2 ou 2"' = 1024), o M (abreviatura do teimo mega) representa 1.048.576 múdades (valor igual a
'!024 X 1024 o u 2 1" X 2"' = 2 2") e og(!/a, representado pelo caractere G, indica um valor igual a 1024 mega
o u 1.048.576K ou 2'" = 2 1" X 2"' X 2"' = 1.073.741.824 unidades.
Snõw
O Sisrem.a· de Compulafifo / 47

Em con eqtiência, no exemplo anterior o valor 512 Kbytes (prn1 uncia- ~e 'quinhemo. e doze ka b res')
corre~ponde a um alar de 512 X 1024 = 524.288 bytes, enquanto 32M caract r s (pronuncia-s.~ 'trinta e:
doi · mt.:ga caracti;n; ') corrt.: pondt.: a 32 X 1024 X ·t 024 = 33.554.432 caracteres, e 2 Gbyt,es (pronuncia-se
'dois giga byte ") cor-responde a 2 X 1024 X 1024 X 1024 = 2 .1 47.48J .648 byres.
Com o progres i,ro aumento da capa.cidade do disposit·j vos de armazenam nto dos comput.)dore., cria-
ram-se mai doi demento. para abreviar valores ma.is de a.dos: traca- e do termo rcra, para repre; entar um
valor igua] a 2~0 ou t 024G, e do renno peta para reprc enrnr 2s.11 ou 1024 tera .
Dessa forma, m valore utilizado~ cm computação para indicar capacidade de memória são normalmente
composto de um número ( empr entr O e 1023) uma das abreviatura citad.as.. A Tabela 2 .1 mostra as
grandeza..,; ut.ili:zadas em computação.

Tabel.-i 2 .1 ·Gra:ndozas Usadas para Abr~via:r Valores em Computação


Nome da unidade Valor ,e m potência de 2 Valor em Lu1iidades

IK (1 quilo) 2 10 1024
1M (1 meg;i) 10241< = 2·' 1.04K.:;76
1G (1 giga) 1024M = 2.)1' 1J l73.741 .824
11' (1 tera) 2'"' 1.099.511 .627.776
1P (1 peta) 2 o11 1. 125.899.9 6.843.624
l fü ( l exa) 2. . ., 1. 152.?21 .504.607.870.?76
I Z (l :zeu) 2 111 l. l 80.59 l.620.718.458.879.424
IY (1 yona) '>"'' l .208.925.819.615.701.892.530. l 76

Conforme ob. ervamo :nueriom1e11te, :1 e trumra das linguagens dos humano e inicia pelo ca.ractere e
st!guc organizando grupos de canictcn: para formar, aí s.im, uma unidade úcil de infon11::içâ.o a palá!vra.~-
Também em computação (e penso que pelo mesmo 1notivo) niou-se o conceito da pafavra embora m:s.s.e
ca o de renha peque1rns diferença ena relação às pala ras das no as linguagens. & im além do bit e do byte,
temos. o conce ·têo rcfacionado com o arn1azcna111c:nto e a transferência de informaçõc-s entre MP e U CP, porém
mais e peciaJrnente relacionado ao processamento de dados pela U P, denominado palavra.
h iciahn nte, podemo definir a pafc111m como sendo um conjunto de bits qu · repre · nta um.a informaç;io
útil pua os computadores, Desse modo uma palavra esrarja associada ao tipo d-e interação entre M e UCP,
que é individual infor.m.a.çào por info11uação. Ou ~ja, a UCP pmces a in tmçào por in truçfo (cada uma
estaria a ociada -a um-a palavra) armazena ou recupt!1"3 númtcro a número (e.ida. um ·C tari a. ociado a un1a
palavra), e a sim pol' diante. a prática. há diferença em relação , esta idé".1..
A palavra nos coinputadore -:. um valo!í fixo , contante para um dadn pn)ce-m1dor (12 bi~ como nns
Pentium e Mot.orola, ou M bi , como no ma.i novo proce adora. ser lançado pela lnte] e o . Al.pha), diferen-
temente das linguagens dos humanos, onde as pafa ras têm quantid::ides va.tiáveis. de caracteres (inesa possui
quatro e.trace r . , cnqu::i.nto ::i.utomóvel pos ui nov car:ictere ) .
O conceito de palavra nã.o é; rigoro ament1.: igual para todo · o fabricantes· alguns. e t-abekcem o tamanho
dos r egistradores int.ernos da UCP igllal ao da palavra, enquanto outros usam este conceito de palavra de modo
rn::i-i abr 11ge11te. A Intel, AM.D -: Motornla, para Sl.'.US microprocc~adon:.-s, seguem o 1nc-smo:s conceitos tm-
tigcn; da JBM.
o que se refor à unidade de armazena11enw, considera-se n :ú important a qua1 tidade de bits recupe-
rada cm um acesso, cm gcrnl de tamanho igual ao dt> um byte. Es l' valor dt: bics e: pequeno dcmai. para rcpn:-
sencar um número ,o u uma instrução de máquina e por isso. não pode er aceicáivd para o, tamanho de: uma
palavra.
De modo genl, u.sam-:sc doi!. valore~ difcrcr te. : um rdaórn1ado à unida.de de anna.zcnamcmo - o bytç
(oito bi~ é o valo1' m. is comum) e outro para indicar a unidade de tr.'lnsfe,-r.ncia · pi-o e. ~a.ment0 - a palavra
SDêW

48 / O ist~m.i de Ci1mp1,rraçifo·

(que, na c.1uas.i: totalidade de cumputadon:s., po. s.uí um númem de híts múh:ip]o de ] b. te - 16 ou 32 bits é o
valor rnaí comum), Em gcTãl, a UCP proc.:ssa valores n.·pre enrado por um.a quantidade de bits igual à da
palavra, indicando a. sim a capacidade d...- proce. samento do i. rema.
o ite1n 6.2.1.3 pode-se verificar de modo, mais daro a utilidade do conceito da palavra como unidade de
proce . amemo e até 111...-_mo como unidade de: transfni:ncia d dado inremamente, e m'io como unidade de
arm. zena1t'lc1110 .
O!. próximo" capítulos os conceitos de palavra, a, unidade!; de an11azenamemo e de transferência. e o
emprego do byte S1.:rào detalhadamente apre: e1 tado e e ·e1nplificados. A Tabda 2.2 apn.·s,enra. um. rest: mo
do conce'tos j: em:itido , ampliando a e:strutuira de 1nfornrnçiio nos compuradore. mesmo com concejtos
ainda nio explicados, apenas para efetuar o devido registro e chamar a atenção do ldtor.

T abela 2.2 Estrutura de, lnformaçõe,, nas Linguagens, dos Humano~ e nos ,Computador,cs
Computadores Hngt1agim:s dos Wmman!os
lJit Caractcrc
I3ytc caracccre
t' Palavra
Palavra Frns •
R gim-o Textos
Arqnivo LiYro&
Banco de d:'l.dos

Neste ponto, após a introdução a aJgumas unidad de medida, dotadas em computação, col'no o K. M, G
etc., podem- se men ionar dois outros el m ntos de medida aprop1iados. tat 1bém para u o em co1nputa.ção
devido ao crescente emprego da microeletrôn1ca e nanotecnologia.: medidas de espaço muito pequeno e medidas
de rempo muim curto. As Tabelas 2 .3 e 2.4 apresentam alguma! dcs,. unidade de medida, que erão cxrcn-
a.mente rnendonaclas nos próximos capítulm.

Tabela. 2.3 Unidades d1c1 M1c1dida de E ·paço Muito Pequeno


Unidade Descrição
Mícron 10-i mm (i tnilé:ümo do milimeno)
anômetro (mn) lU "mrn (1 1nilion0.;imo do m ilimt!uo) ou 1 mil~imo do mícron
Angmõm 10 na11ômerms

Tabela 2.4 Unidades de Med'da de Ternp,o Muito Curto


Unidade Descrição
Mili t.'t,'tlndo 10-~ do si::gundo
Micro -cgundo 10-h do Sí.'g'l.llldO
no5M:gundo 10-·, do scgu II e.lo
Picosscgundo 10- 12 do cgundo

Ante d,i.: cnc1.:rrar e t~ item, "'com.idernndo que jâ foram mostradas as diversas unidades. de medida de ca-
pacidade de memória e omras ma.das em compncação, poclemo. apre entar um outro exemplo de cálculos
com barramentos (ver Exemplos 2.1 e 2.2), com. vakm!. mais rcai t:> pcitico .

Exe:tnplo 2 .3
ConsÍ!derar um computador c.111.: po, !>ua um barramento de endereço, BE, com ]argui~ de 24 bits e bar-
ramento de dado BD. com. a.s . eguinre!> cara.ctl'rística :
Sn$W

O SistemtJ dt Computação I 49

Largura = 32 bits
Velocidade = 400 M H z
Além disso, o processador se utiliza de 245 tipos diferentes de sinais de controle, alguns que sào recebi-
dos e outros que sào enviados por ele para o barramento externo.
Pergunta-se:
a) Qual deverá ser a máxima capacidade da memó,ia principal desse sistema?
b) Qual deverá ser a taxa de transferência do BD'
e) Qual é o totaJ de pinos que o processador precisa ter para usar todos os sinais necessários ao seu correto
funciona.mento?

Soluç ão
a) Sendo BE = 24 bits, então a máxima capacidade de memória é 2"' = 22'.
Pode-se calcular este valor de várias maneiras, sendo uma delas por uso das simplificações adotadas
com as unidades K, M. G ou T.
No caso, colllo est.1lllos tratando do valor 24 e 1 mega é igual a 2~', podemos estabelecer que em 2"
há 2' megas, pois:
2"' X 220 = 22". Assim, temos:
l
224 = 2' X 22<l = 16 M
1 j
A máxima capacidade da n1tm1órfa, neste caso. será l6 M endereços.
b) Taxa de transferência, T = V X L. sendo V = velocidade e L = largura.
Como L = 32 bits e V = 400 MHz (aproximadamente 400 Mbps), então:
T = 32 X 400.000.000 = 12.800.000.000 bps
Usando a simplificação pelas unidades, teremos:
T = 12.800 Mbps o u 12,8 Gbps (simplificando l G = 1000 M, quando na realidade, 1 G = 1024)
c) A quantidade de pinos do processador é resultante da soma dos pinos usados para transportar ende-
reços (largura do BE) mais a quantidade de pinos usados para transportar dados (largura do BD) mais
a quantidade de pinos usados para transportar sinais de controle (largura do BC) .
No exemplo dado, teremos:
(BE = 24) + (BD = 32) + (BC = 245) (um para cada tipo de sinal de controle) = 301 pinos no total.

2.2.2 Conceito de Arquivos e Registros


Todo processamento em um computador consiste, como já mencionado, na manipulação de dados segun-
do um conjunto de instruções que, globalmente, chamamos de programa.
Para que seja possível individualizar grupos diferentes de informações (o conjunto de dados de um progra-
ma constitui um grupo diferente do conjunto de dados de outro programa, por exemplo), os sistemas opera-
cionais (progran1as que controlam o armazenamento e a recuperação dessas informações para entrada, saída
o u guarda em memória secundária) estruturam esses grupos dt: dados sob uma forma denonlinada arquivo.
U m arquivo de informações (ou dados) é um co11iunto formado por dados (ou info,mações) de um mesmo
tipo ou para uma mesma aplicação. Por exemplo, podemos ter um arquivo de alunos de uma turma (conten-
do informações sobre cada aluno individualmente} ou um arquivo comendo as instruções de um programa.
Sn$W

50 / O Sisrtma de Comp11ta(lio

Cada arquivo é constituído por itens individuais de infon11ação (cada aluno, no nosso exemplo) chamados
registms.
Assim, um arquivo de uma tum1a de 60 alunos possui um total de 60 registros; um arquivo com informa-
ções sobre 1000 empre1:,,ados de uma organização possui mil regiscros, e assim por diante.
Um programa é também um arq uivo (embora constituído de um único registro, visto que as instruções
não são consideradas como registros individuais).
Para entendermos melhor o conceito de a1111azcnamcnto e recuperação de informações sob a forma de
arquivos, podemos fazer ana1ogia com um sisten1a semelhante, porém manual.
Suponhamos a existência de mna empresa com 500 empregados, que manipula um escoque de material de
consumo con1 cerca de 10 mil itens e que. por incrível que possa parecer. ainda não possua um sistema de
computação eletrônico.
Na gerência de pessoal, as infonnações sobre os funcionários da empresa estão organiz.1das da seguinte fonna:
as informações sobre cada funcionário são colocadas em um formulário apropriado, estruturado com
campos separados para cada um dos itens de informação, tais como: número de matricula, nome, ende-
reço, departamento, salário:
o fo1111ulário é guardado ("armazenado'') em uma pasta (uma para cada funcionário), identificada exter-
namente pelo número de matrícula do funcionário;
as 500 pastas são guardadas em um armário de aço com gavetas (arquivo), sendo organizadas em ordem
crescente de número de matricula (é a chave de acesso à pasta desejada).
Já a gerência de material possui controle dos itens do estoque de material de forma scmdhante: h:í uma
ficha para cada item de c:stoque. contendo as informações nc:cessárias sobre cada mn; as fichas são armazenadas
em pequenas caixas metálicas, chamadas arq11i11os portáteis.
No exemplo descrito, o armário de aço e a caixa metálica constituem arquivos, com função semeJhance aos
arquivos de dados e m sistemas de computação eletrônicos; cada pasta ou ficha consritui um registro, respec-
tivamente, do fu ncionário ou do material de estoque. As infonnações de um funcionário são especificada.~ cm
campos separados (nome é um campo, endereço é outro campo, e assim por diante).
A estrutura de armazenamento e recuperação de info nnaçõcs na memória secundária de um sistema de
compucação é concebida segundo o conceito de arquivos e rcgistros. Isso porq ue, na memória secundária, o
sistema operacional pode guardar info rrnações cm grupos para obter maior eficiência na transferê ncia com a
memória principal.
O proce~o é d iferente da estrutura da memória ptincipal, onde a preocupação é com itens individuais de
infonnação (uma instrução, um número, uma letra etc.).

2.3 MEDIDAS DE DESEMPENHO D E SISTEMAS DE


COMPUTAÇÃO
Um dos aspecros mais interessantes da evolução tecnológica dos computadores é que, embora esta tenha
sido. sem dúvida, extraordinariamente rápida e acentuada, os princípios básicos estabelecidos nos p,;mórdios
da compuração permanecem es.scncialmcncc os mesmos. Em outras palavras, as c:uacterísticas de arquitetura
do computador IAS, como definidas por von Neumann, são instruções organizadas cm um programa, previ-
amente annazenadas na memória, e o ciclo de busca, interpretação e execução de cada instrução se mantendo
de modo geral intacto. No entanto, várias inovações no processo operacional do ciclo das imtruções vêm
surgindo, ano após ano, sempre na busca do objetivo de aumentar o desempenho dos sistemas de compura-
ção. O desempenho aumenta dramaticamente, mas a essência dos prindpios fundamencais de concepção do
processo de computação cem pt:nnant:cido, pdo menos acé o momento atual.
Na busca do aumento de desempenho, verifica-se que a medida geral desse desempenho depende funda-
mentalmente da capacidade e da velocidade de seus diferences componentes, da velocidade com que estes
componentes se comunicam entre si e do grau de compatibilidade que possa existir entre eles (p. ex., se a
Sn$W

O Sistema de Computnç.iio / 51

velocidade da U CP de um sistema é m.uito maior que a da memória, então este sistema tem um desempenho
inferior ao de um o utro cm que a UCP e a memó1·ia tên1 velocidades mais próximas).
Há muito tempo se sabe que uma corrente, constituída de vários elos interligados, é tão forte quanto o mais
fraco deles, assin1 con10 um sistema (constituído de vários componentes) é tão produtivo e eficaz quanto o
menos produtivo e eficaz de seus componentes. Por exemplo, uma ligação rclefõnica de um aparelho locali-
zado no R io de J aneiro para o utro, localizado em Londres, Inglaterra, se realiza através da conexão de vários
circuitos (como os elos de uma corre nte), iniciando pela linha fisica que conecta o aparelho à sua centra) local
no Rio de J aneiro, desta passando provavelmente por uma ou mais centrais até a da operadora internacional
(ainda no Rio de J aneiro); daí se estabelece uma conexão por satélite com a central da operadora internacional
na Inglaterra, e os circuitos vão se estabdeccndo de modo similar na Inglaterra, em Londres e até o aparelho
de destino . Todos esses circuitos menos um podem ser da melhor q ualidade, devido à excelente tecnologia de
sua construção. os mais imunes a ruídos etc. Um deles. no e ntanto, pode ter sofrido algum tipo de problema
e, nesse caso, o sinal passando por de sofre grande inte1ferência de ruídos, sem proteção adequada para evitar
isso. As duas pessoas estarão falando em meio a ruídos e. naturalmente, reclamando da qualidade e do desem-
penho do circuito completo.
Assin1 também acontece con1 os computa.dores, constituídos de diversos cornponentes, como o processa-
dor, as memórias, barramentos, dispositivos perifericos e outros. Para aumentar o desempenho desses sistemas
i: necessá,io que t0dos os seus componentes renham qualidade adequada para que um deles não comprometa
o esforço dos demais.
Considerando a existência de tantos fatores que influenciam o desempenho de urn siste1na de com.putação,
desenvolveram-se diversos meios de medir seu desempenho.
O desempenho dos processadores, em geral, é medido e m rennos da sua velocidade de trabalho; como seu
trabalho é executar instn,ções, criou-se a unidade (sempre questionada por alguns) chamada MIPS - milhões
de instruções por segundo, e também a unidade MFLOPS (millio ns of lloating poinr operations per second)
- milhões de operações de ponto flutuante por segundo, que é uma medida típica de estações de trabalho e de
supercomputadores, pois estes costumam trabalhar mais com cálculos matemáticos.
Para tentar equalizar e padro1úzar as medidas de desempe11ho de processadores de diferentes fabricantes e
com características diferentes, foram desenvolvidos programas de reste e medida denonúnados SPEC ("System
Performance Evaluation Cooperative").
Já quando se trata de recuperação ou escrita de informações na memória, o tempo de acesso é uma unidade
de medida mais apropriada, estando relacio nada à velocidade de cada componente e à do canal de interligação
entre os dois (UCP e memória).
Tempo de resposta é uma medida ligada ao desempenho mais global do sistema, e não de um ou outro
componente. Trata-se do período de tempo gasto entre o instame em que o usuário iniciou uma solicitação
ou interrogação e o instante em que o sistema apresentou ao usuário a sua resposta ou atendeu à sua solicita-
ção. Por exemplo, o intervalo de tempo entre a solicitação de um saldo de conta em um tenninal bancário e
a apresentação no vídeo da resposta (o saldo da conta) .
Uma ourra unidade de medida de desempenho é a vazão (thmughput), que define a quantidade de ações ou
transações que podem ser realizadas por um sistema na unidade de tempo . Por exemplo, a quantidade de
atualizações que podem ser feitas em um sistema de controle do estoque de uma empresa.
Quando estamos nos referindo à velocidade com que um detenninado dispositivo de e ntrada ou de saída
transfere ou recebe dados da UCP, utilizamos uma unidade que mede a taxa de transferência que o canal de
ligação (ver barramento no Apêndice D) pode suportar, isto é, a quantidade de bits por segundo que podem
trafogar pelo referido canal (item 2.1 ).

EXERCÍCIOS
1) Explique o que você entende por memória. Cite dois exemplos de memórias na vida prática (evite usar
exemplo de memória de computador).
Sn$W

52 / O Sistema de Computação

2) Descreva as funções de uma U,údade Central de Proccs~mento.


3) Faça o mesmo para a memória de um computador.
4) Para que servem os dispositivos de entrada e de saída de um computador? Cite alguns exemplos.
S) Imagine uma cmprc-s.a qualquer. Cite exemplos de arquivos e rcgistros a serem criados para o armazc-
namenco das informações que circulam na tal empresa.
6) Conceitue o bit, o byte e a palavra.
7) 1ndique o valor de x nas seguintes expressões:
a) 65.536 = xK
b) 12288K = xM
c) 19.922.944 = xM
d) 8 Gbytes = x bytes
e) 64 Kbytes = x bit<
f) 262.144 bits = x K bics
g) '16.777.216 palavras= x palavras
h) 128 Gbits = x bits
i) 512K células = x células
j) 256 Kbytes = x bics
8) O que é vazão cm um sistema de computação? E tempo de resposta? Em que circunsmncias são utili-
zadas estas informações?
9) Qual é a diferença entre linguagem de alto nível e linguagem de máquina?
10) Se um barramento de endereços possui 17 fios condu tores, qual deverá ser o maior endereço que pode
ser transportado nesse barramento?
11) C ite exemplos de processadores (UC P) comerciais.
12) Os barramentos são fios condutores que interligam os compo nentes de um sistema de computação (SC)
e pernútem a comunicação entre eles. Eles são organizados em três grupos de fios, cada um deles com
funções separadas. Quais são esses grupos? Indique, para cada grupo: sua função, direção do fluxo de
sinais e suas principais características.
13) Um deternúnado Sistema de Computação é constituído de um processador com quatro unidades de
cálculo para inteiros, operando a 1,2 GHz de velocidade e de uma Memória Principal (M P) constituída
de um espaço máximo de e ndereçamento de 128M ende,·eços. Ambos os componentes s.io interliga-
dos por um barramento de dados (BD), de e ndereços (BE) e de controle (BC), sabendo-se que o BC
possui 112 fios co11du tores para seus diversos sinais e que o BD tem uma taxa de transferência de dados
de 6,4 Gbics/s. Considerando que o soquete do processador~ do tipo I para 171 pinos, pergunta-se:
a) Qual deverá ser a velocidade do 80'
b) O que acontecerá com o sistema se o BE tiver seu projeto alterado, acrescentando-se dois novos fios
condutores?
14) Qual é o princípio fu ndamental que caracte,iza a existência e eficácia dos barramentos em um SC -
Sistema de Computação?
15) Considere um SC que possua um processador capaz de endereçar, no máximo, 32M posições de me-
mória principal. Qual deverá ser o tamanho, em bits, de seu barramento de endereços (DE)?
16) Um determinado processador tem seus transístores com espessura de 90 nanõmetros. Se se desejasse
expressar esta medida em angstroms, como seria indicada a espessura dos transisto,·es? E se a unidade
fosse o núcron?
Sn$W

O Sistema de Computação / 53

17) Calcule o valor de x nas seguintes expressões:


a) 16K = 2'
b) 2 27 = x (expresse em quantidade de K, de M o u de G)
e) 4M * 128K = 2'G
d) 32 Mbytes = 2' Mbits
18) Por que se menciona que a equivalê11cia 200 MHz = 200 Mbps é aproximada e não exata? E por que
a equivalência 8000 Mbps = 8 Gbps também não é exata e sim aproximada?
19) Cite uma das razões principais pela qual os atuais sistemas de compuração possuem uma hierarquia de
barramentos interligando os diversos componences, em vez de utilizar um únko conjunto de barramentos,
interligando todos os componentes do sistema.
Sn$W

Conversão de
Bases e Aritmética
Computacional

3 .1 NOTAÇÃO POSICIONAL - BASE DEC IMAL


Desde os primórd ios da civilização o Homem vem adotando formas e métodos específicos para representar
números, tomando possível, com eles, contar objetos e efetuar operações aritméticas (de soma, subtração etc.).
A forma mais empregada de representação numérica é a chamada 1101aríio posírio11al. Nela, os algarismos
componentes de um nú1nero assumen1 va]ores diferentes, dependendo de sua posição relativa no nún1ero. O
valor total do número é a soma dos valores relativos de cada algarismo. Desse modo, é a posição do algarismo
ou dígito que determina seu valor.
A formação de números e as operações com eles efetuadas dependem, nos sistemas posicionais, da quanti-
dade de algarismos diferentes disponíveis no referido sistema. Há muito tempo a cultura ocidemal adotou um
sistema de numeração que possui dez diferentes algarismos - O, 1, 2, 3, 4, 5, 6, 7, 8, 9 - e, por essa razão,
foi chamado de sistema decimal. (Ver mais detalhes no Apêndice A - Sistemas de Numeração.)
A quantidade de algarismos dispo,úveis em um dado sistema de numeração é chamada de base; a base serve
para contarmos grandezas maiores, indicando a noção de grupamento. O sistema de dez algarismos, mencio-
nado anteriom,ente, tem base 10; um outro sistema que possua apenas dois algarismos diferentes (O e 1) é de
base 2, e assim por diante.
Vamos exemplificar o conceito de sistema posicional. Seja o número 1303, representado na base 10, escrito
da seguinte forma:
1 3 O 3,..
Em base decimal, por ser a mais usual. comuna-se dispensar o indicador da base. escrevendo-se apenas o número:
1303
Neste exemplo, o número é composto de quatro algarismos:
1, 3, Oe 3
e cada algarismo possui um valor correspondente à sua posição no número.
l\.ssim, o primeiro 3 (algarismo mais ã direita) representa 3 unidades. Neste caso, o valor absoluto do alga-
rismo (que é 3) é igual ao seu valor relativo (que também é 3), por se tratar da l.' posição (posição mais à
direita, que é a ordem das u nidades). Considerando-se o produto três vezes a potência O da base 10 ou
Sn$ W

Conversão de Bases e Aritmtlica Comp11tacio11al / 55

3X 10"=3
enquamo o segundo 3 vale três vezes a potência 2 da base IO ou
3 X 102 = 300
E o último à esquerda vale uma vez a potência 3 da base 1O, ou 1 X 1O' = 1000.
O valor total do número seria então:
1000 + 300 +O+ 3 = 1303"'
1 X 10 + 3 X 10 + 0 X 101 + 3 X 10''
3 2 = 1303 111

Generalizando, num sistema qualquer de numeração posicional, um número N é expresso da seguinte fonna:
N = (d 0 _ , d0 _, d. -, ... d, d,,)• (3.1)
onde:
d indica cada algarismo do número;
n - 1, n - 2, 1, O (índice) indicam a posição de cada algarismo;
b indica a base de numeração;
n indica o número de dígitos inteiros.
O valor do número pode ser obtido do seguinte somatório :
N = d0 _ 1 X b" - ' + d., _, X b" - 2 + ... + d, X b' + d,, X bº (3.2)
Desse 1nodo, na base 10, poden10s representar um número:
N = 3748
o nde:
11 = 4 (quatro dígitos inteiros) .
Utilizando a fónn ula indicada na Eq. 3.1 :
d. - 1 = 3 ou d, = 3; d, = 7; d, = 4; d,, = 8
ou obtendo seu valor de acordo com a fómtula mostrada em (3.2):
N = 3 X 10' + 7 X 10' + 4 X 101 + 8 X 10" =
= 3000 + 700 + 40 + 8 = 3748,.,
Observação: Números fracionários são apresentados em detalhe no Apêndice A.

3.2 OUTRAS BASES DE NUMERAÇÃO


Vejamos, em seguida, como representar nlHneros en1 outra base de nmneração.
Entre as bases diferentes de 1O, consideremos apenas as bases 2 e potências de 2, visto que todo computador
digital representa internamente as iiúonnações em algari.smos binários, ou seja, trabalha em base 2. Como os núme-
ros representados em base 2 são muito extensos (quanto menor a base de numeração, maior é a quantidade de
algarismos necessários para indicar um dado valor) e. portanto, de dificil 1nanipulação visual, costtuna-se reprerentar
extemamente os valores binários em outras bases de valor mais elevado. Isso pemútc maior compactação de alga-
rismos e melhor visualização dos valores. Em geral, usam-se as bases occal ou hexadecimal, em vez da base decimal,
por ser mais simples e rápido converter valores binários (base 2) para valores em bases múltiplas de 2.
Utilizando-se a notação posicional indicada na Eq. 3.1, representam- se números em qualquer base:
(LO ! lh - na base 2
(342)5 - na base 5
(257)• - na base 8
Snõw
56 / Co,wersiio de B'1.sts e Arit11.1é.tica C~mp11t11cio11,1l

N o enran.m na base. diferentes de 10, o va]or rela.ti o do algarismo (valor dependente de ua po iça n·o
número) í: norrnalrn ·nt · cakuh1do usando- e os va ore - rcsuJtan tes de operações aritméticas em base 10 e não
na ba e do número ( cr Apêndice A parn mais detalhe) e ponanr.o, o valor total do número na base usada
erá e pres: o em ermos de grandeza na b:!:! e 1O.

Exempmo 3.1
S ,j o núm ~ro na bas ~ 2 : (10t1 h (u ou-se a. d · CTiçâo d.i Eq. 3.1).
S · aplica cmos a Eq. 3.2 te1ia111os:
1 X 2;; + 0 X 22 + 1 X 21 + 1 X 2° =
- 8 + + 2 + 1 = (1l)m
Este valor 11 e tá expresso na ba.s1,; 10 e não na ba e 2. Porranto, será (11) 10.

Ex,emplo 3.2
(1043) = 1 X 5J + 0 X 5z + 4 X 5 1 +3 X 5° =
125 + + 2 + 3 = (148)10
Sobre o assuato, podet o · concluir:
a) O número máximo de ;'!}g.iiri mo difel"cntc de uma ba e é igua] ao valor dai b, se.
Exemplo:
• na base 10 t mo 1 , dígims.: de O a 9;
• na bas 2 temo pena do· dígitos: O e 1 ;
• na ba.s:e 5 temo cinco digitas: de O a 41-.
b) O va1o1· do algari mo mais à e querda (mais significativo) de um número d n algari mo inteiro · é
obtido pefa nmltipbcaçà.o de eu valor ab olut:o (algari mo d 1) pela base elevada à potência (n - 1).
0_

ou seja., (d 1 X bn- 1).


0 _

e) O valor total do número é obtido somando -se n valon~s. cada um expressando o valor relar:i o de um
dm n a.lgari~mo&componentes d.c;,, núm~ro.

Exemplo· 3. 3
3) 375,o
n =3 (3 .ilg:ari 1110s)
+ 7 X 101 +
3 X 10 2 5 X lQP = (3 producos)
= 300 + 70 + 5 (3 vaJores a somar)
b) 1 012 (5 algarismos)
1 X 2-1 + i..Ll3, + 1 X 22 + ~t + .1.L..2, (5 produto - 5 valore")
1

1.."' p1.-od. 2 ." prod, .0 prod. 4.0 p od. 5.0 prod.


16 +8 +4 +o + = 29LO
b e do ist ma binário é 2 e, conseqüentemente, qualquer núme1u, quando repre:sentado nesse sistema
consist·e exdusivament·e em dígitos O e 1. O termo dígito binário é chamado b.it, contraçà.o do t.ermo inglês
/Jinary digit.
Por exemplo, o númer.o binário 11 1. 1 po: ui cinco dígitos, o,u a.lgari mo bináiio . Diz- • q u o r fi rido
níunero .é -constituído de 5 bits.
Snõw

Go,wusii.o de Bases e Aritmé1itt1 Comp11tac.ion11J I 57

Em bases de valor superior a 1O usa.m-$C letn•s: do alfabeto pa[a a rcprc cntaçâo de alga.Tismo maiores que
9. Uma dessas, base~ e •specialmente importante em computação - trata- s.e d.i base 16 ou hexadecimal, por
er de val.or potên i.i de 2 (como a base 8) .
e sa base, os "al!f,lri mo '' .A, B, C, D, E e F ·epl'e entam, re pectivamente, o vafores (da bas. 10): 10, 11,
12, t., 14 e 15.
Na base 16 {hexadecimal), di pomo de 16 algari mos (não númeT-O ) difenmte :
0, 1,2,3, ... ,9,A,B,C,D EeF
Um número n · a b se é representado na fotma da Eq. 3 .1:
{1A7B)",
Os.eu valor na base 10 s.erá obtido usando- e a Eq. 3.2:
1 X 163 + 10 X 16l +7 X 16 1 + 11 X 16° = 4096 + 25 60 + 112 + 11 = 6779 10

Observen os que na Eq. 3.2 forain usado os vatores 10 (para o algaristno A) e 11 (para o alg-arismo B) para
multiplicar as potências d,e 16. F'or isso, obtivemos o va]or do número na base 10.
En, outras palavras, utilizamo valores. e regras de aritmética da base 10 e, por isso o resukado encontrado
& um . 1<:i.r decimal. A Tabefa 3.1 mostrn a repres.entaçào d.e números nas bases 2, 8, 10 e 16.
Peia tabela, podet :ios obset-var que os digitas octüs e hexadeámais correspondem a combinações d.e 3 (octais)
e 4 (h xadecimai) bi (algarismos binários). endo a base des ,es jstemas de valor maior que a bai e 2 e tendo
em vista es:s.) particularidade na representação de números na ba es 8 e 16 em refação a base 2 ve:rifica-se que
é possível converter rapidamente números da ba e 2 par, as bas.es 8 ou 16, ou vice- er.m.
Por exemplo, o núm,c r (101111011101) na ba e 2, po55ui 12 a]gari mo (bits), mas. pode er representado
com quatro algaTisrnos octais ou cot 1 apenas três alg.1rismos he ·adecimais:
(101111011101)z = (5735)
porque 1 1 = 5; 111 = 7; 011 = 3 e 10 1 =5
(101111011l01) 2 = (BDD) u,
porque 1011 = B; 1101 = D; 11.01 = D.

T abela 3.1.
:B,ase 2 Base 8. Bas,e 10 Base 16

o o o o
1 1
rn 2 2 2
n 3 3 3
100 4 4 4
01 5 5 5
110 (l 6 6
H1 7 7 7
1000 10 8 8
l 00] 11 9 9
1010 12 10 A
101] 13 11 B
110 14 12 e
1101 15 l3 D
1110 16 14 E
11 U 17 15 F
1000 20 16 ]O
10001 21 17 H
Sn$W

58 / Conversão dt B,ue.t e Aritmt<tita Computaâoual

3 .3 CONVER SÃO DE BASES


Uma vez entendido como representar números em notação posicional e como esta notação é aplicável em
qualquer base inteira, podemos exercitar a conversão de números de uma base para outra.
Interessa-nos, principalmente, verificar o processo de conversão emre bases múltiplas de 2, e entre estas e
a base 10, e vice-versa.

3 .3.1 Con versã o entre B ases P otência de 2


3.3.1.1 Ent r e a s B ases 2 e 8
Como 8 = 2', um número binário (base 2) pode ser facilmente convertido para o seu valor equivalente na
base 8 (ocral). Se o número binário for inteiro, bast.1 dividi-lo, da direita para a esquerda, em grupos de 3 bits
(o último grupo, à esquerda, não sendo múltiplo de 3, preenche-se com zeros à esquerda). Emão, para cada
grupo, acha-se o algarismo octal equivalente, conforme mostrado na Tabela 3.1 .
A conversão de n(,meros da base 8 para a 2 é realizada de fonna semelhante, no sentido inverso; substitui-
se cada algarismo occal pelos seus 3 bits correspondentes (ver Tabela 3.1).

E xemplo 3.4
1) (1110 10 111), = ( ).
(111) (010) (111), = (727).
7 2 7
2) (1010011111), = ( ).
(001) (010) (01 1) (111), = (1237).
1 2 3 7
3) (327), = ( ),
(011) (010) (111), = (011010111), ou (11010111), Obs.: N aturalmente, despreza-se o(s) zero(s)
3 2 7 à esquerda do número.
4) (673), = ( ),
(110) (111) (011), = (1 1011101 1),
6 7 3

3 .3 . 1.2 Entre as Bases 2 e 16


O procedimento de conversão entre números binários e hexadecimais (base 16) é idêntico ao da conversão
entre as bases 2 e 8, execro que, neste caso, a relação é 16 = 2' .
Desse modo, um algarismo hexadecimal é representado por 4 bits (ver Tabela 3.1). Converte-se um nú-
mero binário em hexadecimal dividindo-se este número em grupos de 4 bits da direit.1 para a esquerda.
A conversão de hexadecimal para binário é obtida substituindo-se o algarismo hexadecimal pelos 4 bits
correspondentes, de acordo com os valores indicados na Tabela 3.1.

Ex emplo 3.5
1) (101101 101 1), = ( ),.
(0010) (1 10 1) (1011), = (2DB),6
2 D D
SU$W

Conversão dt Da.ses e Aritmética Computacional I 59

2) (1001 1100101 101), = ( ),.


(0010) (0111) (0010) (1101), = (272D), 6
2 7 2 D
3) (306) 16 = ( ),
(0011) (0000) (01 10), = (11000001 10),
3 O 6
4) (FS0), 6 = ( ),
(1111) (0101) (0000), = (111101010000),
F 5 O

3.3.1.3 Entre as Bases 8 e 16


O processo de conversão utiliza os mesmos princípios antes apresentados. No entanto, con10 a base de
referência para as substi tuições de valores é a base 2, esta deve ser empregada como intermediária no processo.
Ou seja, convertendo-se da base 8 para a base 16, deve-se primeiro efetuar a conversão para a base 2 (como
mostrado nos subitcns anteriores) e depois para a base 16. E o mesmo ocorre se a conversão for da base 16 para
a base 8.

Exemplo 3.6
1) (3174). = ( ),.
Primeiro, conve,~e-se o número da base 8 para a base 2:
(011) (001) (1 11) (100), = (01 1001111100),
Em seguida, converte-se da base 2 para a base 16, separando-se os algarismos de 4 em 4, da dire ita para
a esquerda :
(0110) (0111) (1100) = (67C),.
6 1 e
2) (254). = ( ),.
= (010) (101) (100), = (010101100),
= (1010) (1100), = (AC)",
3) (2E7 A)16 =( )s
= (0010) (1 110) (0111) (1010), = (0010111001111010), =
= (010) (111) (001) (111) (010), = (27172).
4) (3C7),6 = ( )8
= (0011) (1100) (0111), = (11 11000111), =
= (001) (111) (000) (111), = (1707).
3.3.2 Conversão de Números de uma Base B para a Base 10
A conversão de um número, representado em uma base B qualquer, para seu correspondente valor na base
1O é realizada empregando-se a Eq. 3.2. A melhor maneira de compreender o processo de conversão consiste
na realização de alguns exemplos práticos, onde se indica, detalhadamente, a aplicação da referida equação.
SU$W

60 / Cuuversão de Bases e Aritmésica Comp11taciot1al

Os exemplos apresentados referem-se apenas a números inteiros. No Apêndice A - Sistemas de Numera-


ção, são detalhados os diversos processos de conversão de números inteiros e fracionários.

Exemplo 3.7
1) (101101), = ( ),0
Substituindo, na Eq. 3.2, as letras pelos valores do exemplo, teremos:
b =2 (a base origem do número a ser convertido)
n =6 (6 alga,ismos)
n - 1 =5 (expoente do 1.º produto mais à esquerda)
d,, _ 1 =1 (algarismo mais à esquerda)
1.ºproduto: d,,_, X b" - 1
= 1 X 2s
Os demais produtos seguem a seqiiência da Eq. 3.2, resultando em:
1x~+ox~+1x~+1x~+ox21 +1x~=
= 32 + O + 8 + 4 + O + 1 = (45) 10
2) (27)s = ( l,o
Da mesma maneira, substitui-se na Eq. 3.2:

b=8

n=2

11 -1 = 1 d. - ,1 XX IB"8 -'I ++ ld
7ºI X
X IB'
8º'I
l 2 1

d. - 1 = 2
Valor total:
2 X 8' + 7 X 8º = 16 + 7 = (23) 10

3) (2A5) 16 =( ),o
2 X 162 + 10 X 161 + 5 X 16º =
= 512 + 160 + 5 = (677),0
4) (6734), =( ),o
6 X 83 + 7 X 82 + 3 X 81 + 4 X 8° =
= 3072 + 448 + 24 + 4 = (3548).
5) (27)8 = ( ), 0
2 X 8 + 7 X 8° = 23,o
1

Observação: No desenvolvimento foram suprinUdos os produtos em que os algatis1nos eram O, visco que
o resultado seria também sempre zero.
6) (457). = ( ),.
4 X 92 + 5 X 9' + 7 X 9° =
= 324 + 45 + 7 = (376) 10
7) (243); = ( ) 10
2 X 52 + 4 X 51 + 3 X Sº =
= 50 + 20 + 3 = (73) 10
Sn$W

Co,wersão de Bases e A ritmética Computncfoual I 61

3.3.3 Conversão de Números Decimais para uma Base B


A conversão de números, representados na base 1O. para seus valores equivalentes em u1na base B qualquer
é efetuada através de um processo inverso ao do subirem anterior (base B para base 10).
A conversão é obtida dividindo-se o número decimal pelo valor da base desejada; o resto encontrado é
o algarismo menos significativo do valor na base B (mais à direita). Em seguida, divide-se o quociente en-
contrado pela base 8 ; o resto é o algarismo seguinte (à esquerda); e assim, sucessivamente, vão-se dividindo
os quocientes pelo valor da base até se obter quociente de valor zero. Em cada divisão, o resto encontrado
é um algarismo significativo do número na nova base; o primeiro resto encontrado é o valor do algarismo
menos significativo (mais à direita), e o último resto será o algarismo mais significativo (mais à esquerda).
Na realidade, o algoritmo de conversão pode ser definido com vá1ios critérios de parada, cais como:
a) Enquanto o quociente for diferente de zero:
dividir dividendo por divisor;
• extrair resto como algarismo e colocá- lo à esquerda do anterior;
• repetir.
Quando o quociente for igual a zero, parar.
b) Enquanto o dividendo for maior que o divisor:
dividir dividendo por divisor;
• extrair resto como algarismo e colocá-lo à esquerda do anterior;
repetir.
Usar o dividendo (que agora é menor que o divisor) como último algarismo à esquerda (algarismo mais
significativo).
No Apêndice A - Sistemas de Numeração, sào detalhados os proccdimenws de conversão de números
inteiros e fracioná1ios.

Exemplo 3.8
1} (3964)w = ( ls
3964/ 8 = 495 resto., = 4 (algarismo menos significativo)
495/ 8 = 61 resto, = 7
6'1 / 8 = 7 resto,= 5
7/8 = O resto, = 7 (algarismo mais significativo)
Observa-se que o primeiro resto encontrado (algarismo 4) é o a1garismo inais à direita do número.
O número é, então, (7574)•.
2) (483) 10 = ( ),
483/ 8 = 60 resto0 = 3 (algarismo menos significativo, mais à direita)
60/8 = 7 resto, = 4
7/ 8 = O resto, = 7 (algarismo mais sign ificativo, mais à esquerda)
O número é (7 43) •.
Para verificar, façamos o processo inverso, isto é : converter (743), para a base 1O.
7 X 82 + 4 X 8' + 3 X 8" =
= 448 + 32 + 3 = (483)111
Sn$W

62 / Corwe.rsão de Bases t: Aritmética Computacional

3) (45), 0 = ( h
45/2 = 22 resto(, = t (a]garismo menos significativo, 1nais à direita}
22/2 = l i resto, = O
11 /2 = 5 resto, = 1
512 = 2 rcst0, = 1
2/2 = 1 resto, = O
1/2 = O resto; = 1 (algarismo mais significativo, mais à esquerda)
O número é 1011012•
4) (97) 10 = ( )2
97/2 = 48 resto.,= 1 (algarismo menos significativo)
48/2 = 24 resto, = O
24/2 = 12 resto, = O
12/2 = 6 resto3 = O
6/2 = 3 resto, = O
3/2 = 1 restos = 1
1/2 = O resto6 = 1 (algarismo mais significativo)
O número é (1 100001),.
5) (2754),0 = ( )16
2754/ 16 = 172 n:sco0 = 2 algarismo 2 11, (algarismo menos significativo)
172/16 = 10 resto, = 12 algarismo C ,6
10/16 = O nmo, = 10 algarismo A16 (algarismo mais significativo)
O número é (AC2).,,.
6) (490) ,.,= ( ),.
490/16 = 30 resto0 = 10w algarismo A16 (algarismo menos significativo)
30/16 = 1 resto, = 14,0 algarismo E 11,
1/16 = O resto,= 110 algarismo l1t, (algarismo 1mis significativo)
O número é (1 EA) 16.

É possível simplificar o processo de conversão de valores da base 2 para a base 1O e vice-versa. Para tanto,
basta considerar o seguinte:
a) A Eq. 3.2 estabelece o valor de um número pela soma de produtos:
d..- , X b•- 1 +
b) Cada produto é constituído de duas parcelas: a primeira é o algarismo correspondente à posição cm
que se encontra e a segunda é a potência da base, cujo índice indica a posição.
c) No caso de a base ser 2, os algarismos só podem assumir o valor 0 o u 1. Dessa forma, o re.~ultado do
produto somente pode ser 0 ou o próprio valor da potência de 2.
Exemplos:
101 = 1 X 2' + 0 X 2 1
+ 1 X 2º
O primeiro produto, 1 X 2 2, tem valor igual a 2 2 = 4. Isto é, como o algarismo é 1, então 1 X 2'
ou apenas 22 tem mesmo valor. No caso do segundo produto, O X 21 é igual a zero. O terceiro
produto, iguaJ ao primeiro, é 1 X 2° ou 2° = 1.
d) As potências de 2, da dire ita para a esquerda, crescem da seguinte forma:
snow

2'' = 1 (potência zc.-o, com: pondcnte à po içâo mai à d.ireita)


2 1 = 2 , 2 2 = 4 ; 2J. = 8 · 2-1 = 16 etc.
Ou seja:
.'
~
6 5 3 2 o posiçào
... 2(, 2s 21 +- potência

''' 64 32 16 8 4 2 1 valor

Em con eqiiência converter mn n(unero da base 2 para a. base 10 con::;ist es. cndalmcnr.e em ornar as
potência d<.: 2 com:spondi:;nte:s à pC>siçôi.:~" onde o algari mo é igual a 1 d-e sprezando a pot,ê ncia onde o
algarisni:o é zcrn.

Exemplo 3.9
Efetuar as seguin t ~ conver ,o s:
1) (110011)? =( ) 111

5 4 3 2 o posição
1 1 o 1 1 +- alga.ri· mo
2" 2~ 2• 2º ~ potências válida~ para omar
32 16 2 +- valores
Valorem ba e- 10: 32 + 16 + 2 + 1 = (51) 1 11

2) ( WOl 1lh =( )111


32 16 8 4 2 ] +- potências
1 O O 1 1 t alg. ri~mos
Valor em ba e 10: somam- e a porências váli.da , correspondenres à po jçào onde o algarismo é 1.
32 +4+2+1= (39) [l i

3.4 ARITMÉTICA ÃO·- D · CIMAL


Neste item serào apresentado procedimentos para realização das quatro operações arit.inéticas (adição, sub-
tração, nmltiplicaç:io e divisão) de número não -decimais (quaJquer omro si tema de base difer,e nte de 10)
es.sencia.lmcnte o de b~ -e 2 e potf:ncia de 2, que intcn,:_·,mi ao. sistema.'> de compu~ção.
O . númcr~ serão inteiros, sc-n'.'I ]imite de tamanho 1;; po itívos ( c-m inal) .
o Apêndice A - Sistemas de Numeração, são detalhados procedimentos: para execução de operações
aricmérica.'>, com números binfoos, octai ,e h,cxadccim.ii , incluindo Vâlon~. int ·1rns e fraóonário. porl!m
ainda. . cm sinal.
No Cap. 7, s.ào detaJllados procedimentos. para execução de operações. arirméti-ca com números positivos
e neg. tivas (inclu. âio do sinal no. número.1,), intcú.-os e &acioni1io~, bem como aque]es -e ·presm na forma
BCD (Binary Coded D.ecime) . Os procedimentos estão relacionados ao proce so efetivamente realizado no
inrerior da unidade d proce. sa.menro do. compucad Te . Já, 1íC-5tc capítulo, p,·ocura-se de;,screver proc di-
menco apenas matemático:s, para fiuniliarizar o leitor corn opc-raçõt: matemáticas não- dccimaii .
Finalmente não e escá levando em conta qualquer limiu: dos números, ou s,cja. a quanddad · mâ:xima de
algari mo pennitida para um dado número, o que é uma efetiva preocupação no caso dos computa.dor-es.
Tram- e do problema de ove(flow ou e!.mum do limite, guarido um:t op!;!ração :tritmética r ulta em um valor
acima do limite máximo po sivel (ver Cap. 7).
SDêW

3,A.1 Aritnlétíca Binária


JA.1.1 Sorna 1nana
' . , .
A ôp ·ração de soma de dois números em base 2 é efetuada de modo semelhante à soma decimal, levando-
se em conta ape.na , que ó há doi alg rismos di poníve's (O e 1). im pod mos CTiar uma tabela C·O m t da
a po füilidades:
0+0=0 0+1=1
1 + O= 1 1 + 1 = O, com 'va· 1" ou 102

Exemplo· J.. , O ,(adl·ção)

a) Efi tuar a soma 45 1n e 47 10: b) Efetuar a. soma 3 7 10 e 87 10:

Dec 'ma] Binário Decimal Bin.á.rio

1 1 111
4-.5 37 01001 ']
+ 47 + 87 + 1010111
92 124 11'11'1 O

Ex.emp1o 3.n (adiição)

b) Efoi:uar !>Oma 11io e ·1410:

D cima] Biná ·o Decimal Binário

1 '11 11 HJ
27 11011 11 l0U
+ 25 + 11001 + 14 + 1110
52 110100 25 110

Exemplo 3. 12 (adição)

a) Efetuar a soma 357 14.1 315 111: b) fetuar a s.oma 99io e 91 10:

D cima] Binário Decimal Binário

1 1 1111111 u 1 11
357 10U001 ,] 99 1100011
+
--
315 10011101 '] + 91 1011011
672 101010 000 190 0111110

3.4.1.2 Subtração ... , "'


1na:ria
A ubtr.tç-ão cm base 2 na fonn convenciona], u:sada rnmbén no si ema decimal (nrinuendo - ubmendo =
diferença), é re1adva:ne te mai cot plicada por disponno a.pena dosalg;a.rism.o O e 1 e, de 3 f; Tma, m :no
1 necessita de' empré timo' de um va]o igual à ba e (no ca o é 2), obtido do primeiro algarismo diferente
de :z.ew, existente à esquerda. Se estivés emos operando na base decimal, o "empréstimo' seria de valor
igual a 10.
SU$W

Convmiio de Bases e Aritmfsica Comp1llacional I 65

Exemplo 3.13 (subtração)


Efetuar a subtração 101101 - 100111:
2
002
101101
-100111
000110
A partir da direita para a esquerda, vamos executar a operação algarismo por algarismo (6 algarismos).
1) 1 - 1 = O (primeiro algarismo do resultado - mais à direita).
2) O - 1 não é possível. Então, rerira-se 1 da ordem à esquerda (3.' ordem a partir da direita), que fica com
1 - 1 = 0, e passa-se para a ordem à direita, o valor equivalente, que é 2, visto que 1 unidade de
=
ordem à esquerda vale uma base de unidades (no caso: Base 2) da ordem à direita.
2 - 1 = 1 (segundo algarismo do resultado)
3) Agora tem-se O - 1 e, portanto, repete-se o procedimento do item anterior.
2 - 1 =1
4) O - O= O
5) O - O= O
6) 1 - 1 = O
Resultado: 000110 2 ou simplesmente 110 2 .

Exemplo 3.14 (subttação)

Efetuara subtração 100110001-10101101:


1
02 022
100110001
- 010101101
010000100
A partir da direita para a esquerda:
1) 1 - 1 = O
2) 0-0=0
3) O - 1 não é possível. Retira-se 1 da 5.' ordem, a partir da direita, ficando 2 unidades na 4 .' ordem.
Dessas 2 unidades, retira-se 1 unidade para a 3.' ordem (nesta 3.' ordem ficam, então, 2), restando 1
unidade nesta 4.' ordem.
2- 1=1
4) 1 - 1 = O
5) O - O= O
6) 1 - 1 =O
7) 0 -0 =0
8) O - 1 não é possível. R erira-se 1 da ordem à esquerda, que fica com zero e passam-se 2 unidades para
a direita.
2 - 1= 1
9) 0-0=0
Resultado: (010000100),
SDêW

,66 / Conn·rsâo de Bases t Aritmétirn Computarionnl

Exen1plo 3. 15 (subtração)

a) Efecu r a s:ubtJ; 3 37 - 26: b) Efêtuar a ubtraçào 2 l - ] 7:

D1õcimal fünáirio Dedmal Binário


9 1121
01:202 uo 02202:2
37 1.00rn1 = 37 201+10 l 1001001 =- 201
- 26 - OH OlO = 26 18 7 101110 1 = 187
11 0010n = 11 O] 4 000011 10- 14

3 .4. 1.3 Multiplicação Binária


A.t:, regra~ para reali:zã.ç âo de rnultíplicaçâo com número. binários :são cxuam nte igu. is .à.$ das multiplicações
decimai, com uma enorme vantagetn obre estas pelo fato de que só temos - a]gari mo em vez d 1 . D, se
mod< temo. apcna.~:
0X0=0
OXt=O
lX =O
1 X 1= t
Enquanto na multiplicação decimal temos uma tabela com 100 operaçõe • do tipo:
l X 2 = 2· 2 X 7 = 14· 5 X 6 = 30 etc.
Para m.clhor entendin1t:11to obre- o a . umo, báStà ob. erv:u algun exemplos, cotu a descriçio detalhada d
cada passo e, incluindo em todo" o exemplo a operação em decima1 i;:: f;;'m binái:io.

E empfo 3.16 (multipU ção)

Efotu:ílr a multiplicação 6 X 5:

Decimal Binário
6 110 +- multiplicando
X5 X 10 1 ~ nu1Jtiplicador

30 l lfl +- pmdutos parci:ii.s


ouu
11 0
ll U ~ re~uhado

O procedimento consist,e em multiplicar cada a[g.-iri mo do ,nu]tiplicador pdo .algari~mos do multiphcan-


do,. re u1tando em suce i,vô produtos parciai, t ntos quanto!. forem m algari mos do multipbc..1.dm·. o
Exemplo 3.16 ão três algari mos e, portanto, temos trê: produto parciais.
Cada produto parcjal é colocado de modo a se posicionar uma ca a para a~ queirda do produto anterior
isto é, há um deslocamentJO do 2.º produto para à esqucirda c:m refação ao 1.º produto e há um deslocamento
à esquerda do 3 .0 pr-od to en -elação ao 2.<> produto.
Em eguida os tr" produto ão amado produzindo o r ~suhado dc~cjado.
o caso de ~í t ·ma binfirios o procedimemo é ainda mais impl porque os produtos pardais só podem
ser zero (se o algarismo do multiplicando for zero} ou o próprio va]or do mulciplicador ( e o algarismo do
multiplicando for um),
SU$W

C onversão de Bases e Aritmética Computacional / 67

Exemplo 3.17 (multiplicação)

Efetuar a multiplicação 21 X 13:

Decimal Binário

21 10101 +- multiplicando
X 13 X 1101 .... multipLlcador
63 10101 +- 4 produtos parciais,
+21 +00000 cada um deslocado
l casa para a
273 10101
esquerda
10101 ~ resultado
100010001
Exemplo 3 .18 (multiplicação)

Efetuar a multiplicação 18 X 4:

Decimal .Binário
18 10010
X4 X 100
72 00000
00000
10010
1001000
Neste exemplo, bastaria acrescentarmos dois zeros à direita do multiplicando e teríamos o mesmo resultado
da operação completa.
multiplicando: 10010
1nais dois zeros: 1001000 <- resultado
Isso acontece porque o multiplicador é constituído do algarismo 1 (repetição do multiplicando) seguido de
dois zeros. O produto parcial de cada multiplicador por zero é igual a zero e, portanto, a soma com o multi-
plicando resulta no próprio valor do multiplicador, porém deslocada uma ordem para a esquerda, o que sig-
nifica acréscimo de um zero à direita.

3.4.1.4 Divisão Binária


O procedimento matemático para realização de uma operação de divisão com números binários é seme-
lhante ao procedimento para a mesma operação com valores decimais.
O procedimento compreende a manipulação de quatro elementos:
dividendo valor a ser dividido
divisor valor que deve estar contido II vezes no dividendo e que, então, se deseja saber qual o valor de 11
quociente quantidade de vezes que o divisor se rnpete no dividendo (valor de 11)
resto caso a divisão não seja exata, isto é, o divisor vezes II não seja igual ao dividendo, a diferen-
ça é chamada de resto.
Vamos descrever o processo na base 1O para entenden110s bem cada passo e, em seguida, exemplificar na
base 2 1 seguindo os rnes111os procedimentos.

Exemplo 3.19
1) 35/5 = 7, com resto = 0 e
SU$W

68 / Co,wersiio dt Basts e Aritmétfr:a Computaciottal

2) 37/5 = 7, com resto= 2.


Nestes exemplos, o dividendo é 35 e:: 37, os divisores são, em ambos os casos. S, o quociente é igual a 7 em
ambos os casos e o resto é, respectivamente, 0 e 2.

37[l
-35 7
2
Procedimento:
a) Verifica-se quantas vezes o divisor cabe no dividendo por tentativa .
b) Iniciam-se, mentalmente ou por qualquer outro mét0do que o leitor considere confortável, as tentati-
vas tais como:
2 X 5 =10, 3 X 5 = 15, 4 X 5 = 20 (t0dos menores que 35)
E prossegue-se: 5 X 5 = 25, 6 X 5 = 30, 7 X 5 = 35 e 8 X 5 = 40 . Como 40 é maio r que 35 (ou
37, no caso do segundo exemplo) o valor escolhido para quociente é igual a 7.
e) Subtrai-se de 35 (dividendo) o valor resultante da multiplicação do quociente pelo divisor (7 X 5),
encontrando-se um valor que é o resto da divisão. No primeiro exemplo, o valor é zero, 35 - 35 = 0,
e no segundo exemplo é 2, 37 - 35 = 2.
d) O resto da divisão deve sempre ser um valor igual, no máximo, ao divisor menos 1. No exemplo, ele
deverá ser, no máximo, igual a 4, pois se ele fosse 5, isso significaria que o quociente poderia ser maior,
já que o divisor (valor 5) ainda cabe no dividendo.
Vejamos um exem plo de divisão binária.

Exemplo 3.20 (divisão)


Efetuar a divis.10 (1001), por (101),:
(l0O l)z/(101),
No caso da divisão binátia o procedimento se toma mais simples, visto que cada algarismo do quociente só
pode ser 1 {quando o divisor é menor - apenas 1 vez - que o dividendo ou parte dele) ou zero {taso contrário).
No exemplo acima, 1O1 é menor e cabe apenas I vez cm ·1001. O quociente é, então, 1 e
1001
- 101
0100
o resto é ( 100),.
Em decimal, (1001), = 9w, (101), = 5w e (100), = 4 10• Ou seja, 9/5 = 1, resto 4.
Vejamos em seguida um exemplo de operação de d ivisão binária com dividendo de valor bem maior que
o divisor de modo que ocorram divisões parciais.

Exemplo 3.21 (divisão)


Efe,uar a divisão 101010, por 101, :

(101010),1(110),
a) Em primeiro lugar, verifica-se q ue valor (que quantidade de algarismos) é suficientemente maior que o
divisor, de modo que o primeiro algarismo do quociente sej a 1.
No exemplo utilizado, o valor 1010 (quatro p,imeiros algarismos da esquerda para a direita) é maior
uma vez que o divisor. Assim, temos inicialmente
Sn$W

Cmwmifo de Bases e A ri1mé1ica Computacional / 69

10101ol...!.!.Q
- 110 1
100

b) Em seguida, subtrai-se de 1010 (parte utilizada do dividendo) o valor 110 (que é 1 X 110), o u seja,
quociente, 1, vezes divisor, 110, encontrando-se como resto parcial 100.
c) Efetua-se nova divisão, utilizando-se como novo dividendo o valor do resto parcial 100 acrescido de
um algarismo do dividendo completo, sendo, no caso, o algarismo 1.
O novo dividendo será 1001, que contém 1 vez o divisor, 110. E assim teremos nova divisão parcial

l001~
- l 10 1
0 11
d) Repete-se pela terceira vez o processo, dividindo-se 1 1O (novo dividendo, fonnado pelo resto parcial
11 acrescido do último algarismo do dividendo completo 0) por 110. Encontra-se quociente 1 e resto
parcial 000. A divisão está completada .

110~
- 110 1
000

A operação completa fica assim:

10101ol.!.!Q.
- 110 111
1001
- 110
0110
- 110
000

Exemplo 3.22 (divisão)


Efetuar a divisão 37 ,u por 4,0:
Decimal Binário

37/4 100101/100

1001011100
37l2_ ~ 1001
36 0 101
9
1 100
00 1

a) Divide-se 100 (menor valor do dividendo que é ainda igual ou maio r que o divisor) por 100 (divisor),
encontrando-se quociente 1, com resto parcial 0 (100 - 100) .
b) Acrescenta-se ao resto 0 tantos algarismos do dividendo (um a um da esquerda para a direita} quantos
necessários para que o valor obtido seja igual ou maior que o divisor. A cada algarismo selecionado e
não suficiente acrescenta-se urn zero ao quociente.
c) No exemplo, foram selecionados os algarismos 101 (acrescentou-se 00 ao quociente, para os algarismos
10 que formaram o valo r 0 10, ainda menor que o divisor 100. Finalmente acrescentou-se 1 (último
Sn$W

70 / Cm111mão de Bases e A ritmética Comp141aâoual

algarismo disponível do dividendo), resultando 101, neste caso superior a 100. Então, o quociente foi
acrescido de 1.

3 .4.2 Aritmé tica O ctal (em Base 8)


O sistema binário, por ser constituído de tão poucos algarismos diferences em sua base (O e 1), causa o fato
de os números serem na maioria das vezes constituídos de uma enorme quantidade de algarismos. Na reaHda-
de, podemos generalizar a regra de que "quanto menor o valor da base, maior é a quancidade de algarismos de
um número naquela base".
Assim, por exemplo , o número 9 na base 10 só possui um algarismo, porém na base 6 é constituído de dois
algarismos, 13, e na base 2 necessita de quatro algarismos para sua representação:
9,., = 13. = 10012
Quanto maior o número, mais rapidamente cresce a quantidade de dígitos binários (bits) ncccssá,i os para
essa representação:
(101 100 11 11011 101), = (46045) 10 = (B3DD),.
Além disso, os sistemas de base menor (e o sistema binário é o menor de t0dos) ainda possuem um outro
inconveniente. A quantidade de algarismos disponiveis na base sendo pequena, há pouca diferença entre os
algarismos e, sendo muitos, acarreta dificuldade de percepção do usuário. Basta ver o exemplo anterior, onde
o valor binário possui 16 algarismos com variação apenas entre 0s e 1s, muito mais complicado de comprc--
ensão por parte do leitor do que o valor 46045, com apenas cinco algarismos e vários símbolos diferentes (o
4, o 6, o 5 e o 0) ou mais ainda, na base 16, com o valor B3DD, com apenas 4 algarismos.
O nosso sistema visual distingue melhor variações acentuadas entre elementos (por exemplo, entre B, 3, D,
4, 5, 6 etc.) do que diferenças núnimas, tais como apenas 0s e Is. Por isso. disti nguimos melhor as diferenças
e ntre objetos coloridos do que cst<-s mesmos objetos cm preto e branco, apenas distinguidos por tons diferen-
tes de preto.
Por esta razão, apesar de internamente nos computadores o sistema ser essencialmente binário, costuma-se
empregar bases mais elevadas para representar externamente os valores annazenados ou manipulados pelos
compucadores.
Utiliza-se com freqüência as bases 8 e 16 por serem bases maiores, e a conversão da base 2 para elas, e vice-
versa, é mais rápida que para a base 1O. Atualmente, a base 16 é a base mais usada para representar, em manuais,
vídc::os etc., estes valores que estão intcrnaincnre cn1 binário.
Com este propósito, vamos apresentar alguns aspectos da aritmética octal e hexadecimal, apenas as opera-
ções de adição e subtração, visto que as outras não se aplicam para o fim a que se destinam.
Para finalizar e consolidar o assunto, apresentamos alguns exemplos de aritmética cm qua1qucr outra base
não-decimal nem potência de 2.

Exemplo 3 .23 (adição)


Efetuar a soma (3657)8 + (1741)8 :
l ll "vai 1"
3657 +- l .:' p."lrcela
+ 174 1 +- 2.' parcela
5620

Da direita para a esquerda, temos para cada um dos quatro algarismos:


1) 7 + 1=8
Como não há algarismo 8 na base 8, emprega-se o conceito posicional. isto é, 8 unidades de uma ordem
valem 1 unidade da ordem imediatamente à esquerda. Então: fica 0 = 8 - 8 e "vai I" para a esquerda.
Sn$W

Ctmvmão de Basts t Aritmética Computacional I 71

2) 1 (vai 1 vindo da ordem à direita) +5+ 4 = 1O


Utilizando o mesmo conceito anterior. temos:
10 - 8 = 2 e "vai l" (que é igual a 8).
3) 1 (vai 1) + 6 + 7 = 14
14 - 8 = 6 e "vai 1"
4) l + 3 + 1 = 5 Não há "vai 1" porque não se excede 7.
Resultado: 5620,

Exemplo 3 .24 (adição)


Efetuar a soma (443)8 + (653),:
11 .. vai .,.
443 .--1.-:. parcela
+ 653 <-- 2.' parcela
1316
Da direita para a esquerda, para cada um dos três algarismos:
1) 3 + 3 =6
Como 6 é um algarismo válido da base 8, não há "vai I ".
2) 4+5=9
Então: 9 - 8 = l e "vai l " (que correspondem às oito unidades em excesso).
3) l +4+6= 11
Então: 11 - 8 = 3 e "vai l".
4) l +0 =1
Resultado: 13163

Exemplo 3.25 (subtração)


Efetuar a subtração (731 2), - (3465).:

88
+- empréstimos
6208
7ôl2 +- 1..1 parcela
-3465 ~ 2.'/j parcela
3625
Da direita para a esquerda, temos para cada um dos quatro algarismos:
l) 2 - S não é possível. Então, rerira-se l unidade da ordem à esquerda, a qual vale uma base de unidades
(no caso base =
8) da direita, som ando-se ao valor 2.
8 + 2 = 10 - 5 = 5
2) 1 - 1 = O - 6 não é possível. E ntão, retira-se 1 unidade da esquerda (que fica com 3 - 1 = 2 unida-
des), passando 8 para a direita, o que fica 8 + O 8. =
8-6=2
3) 3 - 1 = 2 - 4 não é possível. Então, retira-se 1 da esquerda (J - 1 = 6), passando oito unidades para a
direita.
Sn$W

72 / Convusiío dt! B,ues e Aritmética Computaci,mal

8 +2 = 10 - 4 = 6
4) 7 - 1 = 6 - 3 = 3
R.esultado: 36258

3.4.3 Ari tmética Hexad e cimal (em Base 16)


Já mencionamos antc1i ormente que a aritmética co1n valores expressos em algaris1nos hexadecin1ais segue
as mesn1as regras para qualquer base: somar ou subtrair algarismo por algaris1110 1 utilizando-se de "vai x" na
casa à esquerda (e somando-o com as parcelas seguintes à esquerda) ou de "emprésrjmo" (como nas subtra-
ções cm qualquer outra base) , e assim por diante.

Exemplo 3.26 (adição)


Efetuar a soma (3A943B) 16 + (23B7D5) 16:
J1 +- "v.ii l"
3A 9438 <-- 1. • parcela
+ 238705 <-- 2.' parcela
SE4CIO

Da dire ita para a esquerda. temos para cada um dos seis algarismos:
1) B = 11 10 + 5,6 = 16w
Como 16"' não é um algarismo válido da base 16 (o maior algarismo, F, tem valor = 15io), então usa-
se o p1incípio posicional, substiruindo 16 unidades da ordem da direita por 1 unidade da o rdem à es-
querda (vai 1).
B + 5 = O e vai 1
2) 1 + 3 + D = 1 + 3 + 13 = 17 10
1710= 16 (vai 1 para a esquerda) + 1
3) 1 + 4 + 7 = 12,,,
1210 equivale ao alga1ismo C ,6 • Coloca-se C como resultado e não há "vai I ".
4) 9 +B = 9 + 11 = 20w
20 = 16 (vai 1 para a esquerda) + 4. Coloca-se 4 como resultado e "vai 1" para a esquerda.
5) 1 +A +3 = 1 + 10 + 3 = 14w
14 10 equivale ao al1,r.uismo E, 6 • Coloca-se E como resultado e não há "vai I " .
6) 3 +2 = 5. Coloca-se 5 como resultado e não há "vai ·1".
Resultado: 5E4C10,6

Exemplo 3.27 (subtração)


Efetuar a subtração (4C7BE8), 6 - (1 E927 A)u,:
4 - 1 =3 C - 1= B + 16 = 27 E - l =D 8 + 16 = 24
I <1. 7 + 16 = 23 B 1 8
- 1 E 9 2 7 A
2 D E 9 6 E
Da direita para a esquerda, para cada um dos seis algarismos:
Sn$W

Conversão de Bases e Arilmética Cmnputm:ior,nl I 13

1) 8 - A não é possível. Retira-se, então, 1 unidade da ordem à esquerda (E - 1 = D), passando 16


unidades (valo r igual ao da base) para a direita, as quais são somadas ao valor existente, 8.
'J 6 + 8 = 24 - A = 24 - 1O = 1410, equivalente ao algarismo E, 6
2) D - 7 = 13 - 7 = 6
3) B - 2 = 1 1 - 2 = 9
4) 7 2 9 não é possível. Retira-se uma unidade da ordem à esquerda (C - 1 = B), passando 16 unidades
para a direita, as quais são som.adas ao valor existente, 7.
16 + 7 = 23 - 9 = 1410, equivalente ao algarismo E 16
S) C - E não é possível. Rerira-se 1 unidade da ordem à esquerda (4 - 1 = 3), passando 16 unidades para
a direita, as quais são somadas ao valor existente, ll 16 = 11 io·
16io + B, 6 = 16io + ll io = 27 - 14 = 13,.., equivalente ao algarismo D 16
6) 3 - 1 =2
Resultado: 2DE96E, 6

EXERCÍCIOS
1) Converter os seguintes valores decimais em valores binários equivalentes (conversão de base 10 para
base 2):
a) 329 e) 135
b) 284 f) 215
e) 473 g) 581
d) 69 h) 197

2) Converter os seguintes valores binários em valores decimais equivalentes (conversão de base 2 para base 10):
a) 11011101010 e) 111001101001
b) 11001101101 f) 111 111000011
e) 10000001111 g) 101100011000
d) 11101100010 h) 100000000110

3) Converter os seguintes valores decimais em valores octais equivalences (conversão de base 10 para base 8):
a) 177 e) 343
b) 254 f) 27
e) 112 g) 821
d) 719 h) 197

4) Converter os seguintes valores decimais em valores binários equivalentes (convc,-s.'io de base 10 para base 2):
a) 417 e) 251
b) 113 f) 769
e) 819 g) 180
d) 77 h) 27
Sn$W

74 / Co,wersão de Bn.sts e An-,mética Comp111nâonal

5) Converter os seguintes valores binários em valores decimais equivalentes (conversfo de base 2 para base l O):
a) 110001 1 e) 1000000011
b) 10101 1l 1101 f) 111100011110110
c) 1100001 1001 g) 1100100001
d) 101 101 h) 1101110

6) Converter os seguintes valores decimais em valores octais equivalentes (conversiio de base 10 para base 8):
a) 917 e) 325
b) 779 f) 216
c) 610 g) 413
d) 593 h) 521

7) Converter os seguintes valores octais cm valores decimais equivalentes (conversiio de base 8 para base 10):
a) 405 e) 705
b) 477 f) 173
e) 237 g) 201
d) 46 h) 452

8) Converter os seguintes valores decimais em valores hexadecimais equivalentes (conversão de base 10


para base 16):
a) 447 e) 622
b) 544 f) 97
c) 223 g) 121
d) 71 h) 297

9) Converter os seguintes valores hexadecimais em valores decimais equivalentes (conversão de base 16


para base 10):
a) 3A2 e) 1ED4
b) 338 f) 7EF
c) 621 g) 22C
d) 99 h) 110A

10) Converter os seguintes valores octais em valores decimais equivalentes (conversão de base 8 para base 10):
a) 2136 e) 120
b) 1741 f) 317
c) 613 g)720
d) 546 h)665

1·1) Converter os seguintes valores decimais em valores hexadecimais equivalentes (conversão de base 10
para base 16):
a) 2173 e) 743
b) 1325 d) 212
SU$W

C()uvtrsiio dt Ba$tS e. Aritmética Comp11tacio11al / 75

e) 681 g) 1480
f) 937 h) 1671

12) Converter os seguintes valores hexadecimais em valores decimais equivalentes (conversão de base 16
para base IO):
a) 21A7 e) 2351
b) 1BC9 f) 19AE
c) 27D g) ACEF
d) E5F h) 214B

13) Efetuar as seguintes conversões de base:


a) 37421• = ( ), 6 e) 5331 8 = ( ),
b) 14A3B, = ( )
6 10 f) 100011011, = ( ).
e) 11011100011 2 = ( ) 16 g) 217 ,., = ( ),
d) 2BEF5 16 = ( )8 h)413. =( ),

14) Efetuar as seguintes somas:


a) 317528 + 6735, = e) 1100111101, + 1011101102 =
b) 37742, + 26573, = f) 211312, + 121313, =
e) 2A5BEF,6 + 9C829u, = g) 36458 + 27648 =
d) 356., + 442, = h) 110011110, + 11011111, =

15) Efetuar as seguintes operações de subtração:


a) 64B2E,6 - 27EBA 16 =
b) 2351 , - 1763, =
e) 5436 - 4556 =
d) 43321, - 2344, =
e) 110010000102 - 1111111111 2 =
f) 10001101000, - 101101101, =
g) 43DAB,6 - 3EFFA16 =
h) 100010, - 11101, =

16) Eferuar as seguintes conversões de base:


a) 2317• = ( ),
b) IA45B = ( )16 8

e) 3651 u, = ( ),
d)l1001011011011, =( ).

17) Efetuar as seguintes somas:


+ 2167, =
a) 3251 8 + 1111001 2 =
e) 1011101 2
b) 2EC3BA, 6 + 7C35EAu, = d) 1110000101, + 1000011111, =
Sn$W

76 / Co1111mifo de Bases e. A ritmt/iu, Computadoual

e) 312321,+ 112213, = g) 2748E,6 + FA 7B5u, =


f) 2AC79,. + B7EEC,6 = h) 217, + 173, =
18) Efetuar as seguintes operações de subtração:
a) 1100000011012 - 101 1001 11012 =
b) 35A3,,, - 2FEC,6 =
c) 374258 - 147668 =
d) 1001001, - 111100, =
19) Quantos números inteiros positivos podem ser representados em u ma base B, cada um com II algaris-
mos significativos?

20) A partir do valor binário 1 1001 1, escreva os cinco números que se seguem em scqüência.

21) A partir do valor binário 1011 01, escreva seis números, salta ndo de três em três n úmeros, de forma
crescente.

22) A partir do valor octal 1365, escreva os oito números que se seguem em seqiiência.

23) A partir do valor octal 3745, escreva os oito números pares segu intes.

24) A partir do valor hexadecimal 2BEF9, escreva os 12 nú meros que se seguem em seqiiência.

25) A partir do valor hexadecimal 3A57, escreva os 10 números subseqlientes, saltando de quatro em qua-
tro valores (por exemplo, o primeiro subscqüente é 3ASB).

26) A maioria das pessoas só pode contar até 10 utilizando seus dedos. Entretanto, quem trabalha com
computador pode fazer melhor. Se você imaginar cada um dos seus dedos como um dígito binário,
convencionando que o dedo estendido significa o algarismo I e o rcco1hido significa O, até quanto
você poderá contar usando as duas mãos?

27) Supondo um sistema posicional de numeração de base 4, determine, a partir da operação de adição a
segu ir, os valores de A, B, C e D:
BADB
+ DDDC
BCOCB

28) Suponha um sistema posicional de base 6. Detenn ine os valores de A, B, C, O, E e F:


ADCFA
BABOF
CFEOFB
29) Efetue as seguin tes operações aritméticas na base indicada para o resultado:
a) FEFE, 6 + 11 101001000111102 = ( )8 e) 10011101, + 376, = ( )16
b) 7374, + 313202, = ( ),. f) 3E5416 + 12578 = ( ).
e) 384 10 + 512,. = ( )16 g) 101 101 10101, + 2FE ", = ( )8
d) 532. + 101., = ( ),. h) 137410 + 1101101 1110111, = ( l.

30) Expresse o valor decimal 100 em todas as bases entre 2 e 9 (inclusive).


Sn$W

Co,wmiio de Base$ t Aritmé1ica Computaâ o,wl / 77

31) Quantos números diferentes podem ser criados por u111 conj unto de quatro chaves, cada uma podendo
gerar três d iferentes algaris111os?

32) Q uantos números binários diferentes podem ser annazenados em memórias com espaço de armazena-
mento de seis dígitos cada uma?

33) Quantos números d iferentes podem ser c1iados na base 8 cada um possuindo três algaris111os'

34) Quantos números binários diferentes pode111 ser criados cada um possuindo oito algarismos'

35) Qual é o valor decimal equivalente ao maior número de sete algarismos que pode existir na base 2 '

36) Em cada uma das seguintes equivalências, ache o valor da base b, na qual o nú111ero à d ireita está expres-
so:
a) 496w = 1306• c) 1248,6 = 11110•
b) 249 10 = 13B• d) 1248,r, = 1021020.

37) U 111 hodômetro hexadecimal mostra o número 5ECFC. Q uais são as seis próximas leituras'

38) Um hodômetro hexadecimal mosrra o número A3FF. Qual é a le itura seguinte' Após rodar alguns
quiló metros, o hodômetro apresenta a segt1inte leitura: A83C. Quanto foi andado? (Dê a resposta em
hexadecimal e em decimal.)

39) Converter os seguintes números, representados em base 6, para seus valores equivalentes em base 9.
a) 24,, d) 5556
b) 1446 e) 3144,,
c) 23546 f) 211 6

40) Converter os seguintes números de uma base B para outra base B indicada:
a) 234,, = ( )8 d) 246458. = ( ),
b) 1321, = ( ), e) 44526 = ( l,
e) 431; = ( )9 f) 21 12, = ( );

41) Complete a tabela abaixo:

Decimal Binário O ctal Hexadecimal


37
110011 01
356
LA4C
1000 1101
117
2A5B
457

42) Efetue as seguintes operações aritméticas:


a) (101), X (1 11), = ( ),
b) (11101), X (10 10), = ( ),
e) (11001 1 10), / (1 10 1), = ( ),
Sn$W

78 / Conversão de Bases e Arirmttita Comp11tMio11al

d) (1 11110001), X (1001 t), =( l,


e) (100 100011) 2 / = ( ),
(1 1101),
f) (1 101 101),/ (100), = ( ),
g) (1 11000001) X (101001), = ( )2

43) Se um número binário é deslocado uma ordem para a esquerda, isco é, cada um de seus bi ts move-se
uma posição para a esquerda e mn zero é inserido na posição rnais à direita, obtém-se um novo nú1ne-
ro. Qual é a relação matemática existente entre os dois números?

44) A soma de dois números binários é 101000 e a diferença entre eles é igual a 1010. Quais são os nCune-
ros binários?

45) Ache os valores decimais equivalentes aos seguintes números representados nas bases indicadas:

a) 2C6, 6 e) 1001100102

b)l 10 11102 f) 2567,

c) 3468 g) 4DC9 16

d) 1432, h) 26578

46) Mostre por que 121n é igual a l OON+I·

47) Considere um número decimal N constituído por três algarismos. A soma dos três algarismos desse
número é 18 e a soma do algarismo mais significativo com o menos significarivo é igual a l O. O quociente
da divisão de N pelo algarismo menos significativo é 171 . Qual é o valor de N'

48) Considere um número representado em base 8 composto de dois algarismos, sendo que o algarismo
menos significativo é o menor dos dois. A soma dos dois algarismos é 8 e a diferença entre eles é 2.
C alcule o valor equivaleme desse número na base 16.

49) Ache os valores binários correspondentes aos seguintes números nas bases indicadas:

a) 26DF8 16 d) 10010,6

b) 756377s e) 121218

c) 5341 8 f) FFAB,.
SU$ W

Memória Principal

4.1 INTRODUÇÃO
Conforme já mencionado no Cap. 2, a memória é o componence de um sistema de compu raçào cuja fun-
ção é annazenar as informações que são (ou serão) manipulada.~ por esse sistema, para que elas possam ser
pronramence recuperadas, quando necessário.
Conceitualtnente, a n1emória é unt componente muito simples: é um "depósito" onde são guardados certos
clcment0s (dados ou infom1ações) para serem usados quando desejado (recuperação da informação armazenada).
A Fig. 4.1 apresenta o esquema conceituai de qualquer tipo de memória, imaginada como um depósito
para uso de uma ou mais entidades, assim como unta caLxa de cartas ern u1n correio.
No entanto, na prática, em um sistema de computação não é possível construir e utilizar apenas um tipo de
me1nória. Na verdade, a memória de um computador é em si um sisterna, ou melhor, um subsistema tendo 1

em vista que é constituída de vários componentes (vários tipos diferentes de memória) interligados e integra-
dos, com o objetivo já definido acima: armazenar informações e pennitir sua recuperação quando requerido.
A necessidade da existência de vários tipos de memória ocorre em virtude de vários fatores conco1Tcntes.
Em primeiro lugar, o aumento, sempre crescente, da vdocidade do processador, muito maior que o tempo de

' /
---- •
/

/

/
•/
/

Armazenar
----
101


102


103


104

. Uitu,a

----
{escrita) (recuperar)
105 106 107 108 /
• •
---- /
109 110• 111 112 e

113 • 114 • 115 • 116 •/


Coda caixa tem 00t endereço

Figur-a 4.1 Exemplo de um típico depósito que funciona de modo semelhante a uma memória .
Sn$ W

80 / Memória Priuâpnl

acesso' da memória, ocasiona atrasos (às vezes, intoleráveis) na transferência de birs entre memória e proces-
sador, e vice-versa. Outro fator se relaciona com a capacidade de armazenamento de infonnações que os sis-
temas de computação precisam ter, cada vez maior, em face do aumento do tamanho dos programas, bem
como do aumenco do volume dos dados que devem ser armazenados e manipulados nos sistemas atuais. Se
existisse apenas um tipo de memória, sua velocidade (tempo de acesso) deveria ser compatível com a do pro-
cessador, de modo que este não ficasse esperando muito tempo um dado que estivesse sendo transferido da
memó,ia. Sua capacidade deve,ia ser muito grande, mesmo. E não poderia perder os dados em uma eventual
falta de energia. Naturalmente, é impossível reunir todos esses requisitos em uma única 1nemória.
Explicando melhor, pode-se imaginar um sistema no qual o processador manipula um dado em 5
nanosscgundos e a memória pode transfo1ir um dado para o processador em 60 nanossegundos. Grosso modo
(vamos simplificar bastance o processo para facilitar o entendimento do leitor), pode-se afirmar que o proces-
sador, em cada 60 nanossegundos, trabalharia cinco e ficaria os outros 55 nanossegundos ocioso. acarretando
uma baixa produtividade do sistema. Para aumentar essa produtividade pode-se, p. ex., desenvolver memórias
com maior velocidade (isso já vem sendo realizado há muito tempo, como veremos mais adiame). No eman-
to, tais 111einórias têm um custo mais elevado; esse custo cresce ainda mais quando se sabe que as memórias
vêm aumentando de capacidade sistematicamente.
Na realidade, o avanço da tecnologia na construção de processadores e memórias de semicondutores não tem
sido uniforme, isto é, o aument0 da velocidade do proces.,;,1dor tem sido bem maior que o aumemo da velocidade
de acesso das memórias. Enquanto a quantidade de instruções executadas por segundo por um processador tem
dobrado a cada 18 meses para o mesmo preço, a velocidade de acesso das memórias tem aumentado cerca de 10%
ao ano, embora sua capacidade de annazenamenco venha quadruplicando a cada 36 meses, para o mesmo preço.
Em resumo, os dois citados fatores, velocidade e ca.p::icidade, indicam a necessidade de se projetar não um
único tipo de memória (com elevada velocidade e grande capacidade, mas com custo altíssimo), mas sim um
conjunto de memórias com diferentes características, o que leva a uma hierarquia de funcionamento a que
denornina.mos subsistema de memória.. Tal hierarquia será descrita no item 4.2, a seguir.
Na realidade, a existência, nos sistemas de computação, de uma hierarquia de memória se torna possível
graças a um princípio revelado na execução dos programas e que se conhece como princípio da localidade, o
qual será abordado cm detalhes no Cap. 5.
No entanto, pode-se observar q ue o princípio, que foi estabelecido a partir de trabalhos de pesquisa sobre
comportamento de programas, indica que, cm média, os programas tendem a ser executados em blocos, cons-
tituídos de instruções que são executadas de forma seqiiencial e ordenada.
Assim, em função desse ptincípio e do foto. já citado, de que se deseja rapidez de memó,ia e grande capa-
cidade a baixo custo 1 organiza-se a área de armazenamento em mcmó1ias de vários tipos e características, or-
ganizadas de forma hierárquica.
Conforme pode ser observado na Fig. 4.1, há duas únicas ações que podem ser realizadas em um depósito
(memória). A primeira é a ação de guardar um elemento (ou um grupo de elementos) - em computação, esta
ação é genericamente denominada armazenar, e a operação em si, que é realizada para a consecução desta
ação de armazenamento, é chamada de escrita 0 11 gravação (wrüe). A segunda é a ação de recuperação do ele-
mento guardado (ou grupo de elementos) para um uso qualquer - em computação esta ação se denomina
recuperar (retrieve), e a operação para realizá-la chama-se /ei/1/ra (rmâ).
Para solidificar mais ainda esses conceitos tão simples e incluir novos conceitos concernentes, podem-se
iniaginar vários tipos de "depósitos" existentes na nossa vida cotidiana e cujo funcionamento pode ser associ-
ado ao das memórias de computadores.
Uma biblioteca,' p. ex., funciona como um "depósito" de elementos (os livros, periódicos etc.) . Todo
elemento recebido para ser guardado (armazenado) tem que possuir uma identificação (nome do livro ou do

1A dd'i,,i\·io completa de tempo ck- :1n-sso <'sti t·onodJ no itt·m 4.2. por\·m podemOIS ,implificar, tst:1bdcct"ndo que se 11':ttl de vdocid:idc dl memóri:i.
lpor f.wor. n5o p<-nsem os(:is) b,blimccjno,s(as) qu.:- reduu :i imp<m·jn<i.1 ~· o v:'llor ineqincin-1de um:i biblioh'('";l. rompanndo-1 a um simpk-s depósito. A idéia
foi t:io-~c,111en1c 1.-ompar.ar o 1uOOo de funáon-amcnto. nio :i íun~o.
Sn$W
Afrmória Pri11â1,al I 81

periódico, autor etc.) e um código de localização (n(1mero da estante, da prat1..·lcirn etc.) para que seja possível
ao funcionário ou usuário encontrar o livro ou periódico quando desejado.
O funcionamento de u ma agência de correios para guarda e recuperação de correspondência, ou o modo
de manipulação de correspo ndência em um edificio de apartamentos, é semelhante ao das bibliotecas (apenas
no que se l'efere às operações de armazenamento e leimra) e. de certa fom1a, ao de uma memóiia de compu-
tador (ou, ainda, ao da própria memória dos seres humanos).
Em uma bibJioteca, o elemento a ser manipulado (a "informação'' a que nos referimos antes) é o )ivro.
A .lçào de annazenamenco (que se denomina escrita em sistemas de computação). por exemplo. consiste na
operação de guardar o livro em uma estante/ prateleira previmnente identificada como disponíve]. a qual
tem um código de localização, p. ex., prateleira 5 da estante 15 (que é o endereço) . Quando alguém deseja
um livro emprestado, realiza-se uma operação de "recuperação da informação" (dado o nome do livro,
encontra-se a sua localização, seu endereço) .
Na caixa de correio de um cdificio de aparcamentos o conceito é também semelhante. A ittformação é a
cart.a; cada apamn1ento possui um t 11dereço e uma caixa concspondentc:. A colocação pelo carteiro de uma
e.arta q ue c hega para um certo apartamento consiste na operaç~o de armazenamento (escrita). E a ação do
proprietário de apanhar sua correspondência (recuperação ou leitura) é possível acr:wés do conhecimemo da
localização da caixa correspondente.
Há uma peque na d iferença nos exemplos citados em relação às memórias de computador, no que se refere à
possibilidade de haver um endereço vazio. Uma caixa de correio pode estar vazia porque o responsável retirou
toda a correspondência. como tambérn. mn detennin:ido local de uma biblioteca pode estar vazio porque o livro
está e1nprestado. Isto não acontece com a memória elctrônica de um computador, pois sr ele estiver encrgizado
a mcmó1ia conte rá sinais elétricos c m cada local de ann azenamento, mt.-smo que não seja uma informação útil.

4.1.1 Como as Informações São Representadas nas Memórias


A memória de um sistema de computação tem como elemento básico de armazenamemo Gsico o bit. Ou
seja. fisicameme e1a é constroída de modo a representar individualmente bit por bit (seja com seu valor O -
zero, seja com seu valor 1 - um). O modo pelo qual cada bit é identificado na memória é variado: pode ser
um sinal elétrico, con10 mostrado na Fig. 4.2, ou um campo magnético ou, ainda, a pre-scnça/ ausC:ncia de
uma marca ótica.
Como u m bit pode apenas indicar dois valores distintos, sua utilidade individual é bastante restrita. Na
prática, precisamos passar para o compu tador as informações que conhecemos na vida cotidiana, no nnalmen-
te em fonna de caracteres ou símbolos gráficos que visualmente conseguin1os distinguir. Assim, clara1ne11te
distinguimos o caractere "a'' do caractcrc ºb'', como também o simbolo mate1nático "+ 11 do sín1bolo º(",
porque todos eles têm fo nnato visual diferente e o ser humano, através do sentido da visão, consegue distin-
gui- los (é possível, também, para os humanos, separar esses sírnbolos através do sentido do tato, como se faz
em braile, para pessoas cegas).
Como computadores não possuem esses sentidos dos humanos, des conseguem apenas distinguir sinais
elétricos diferentes, isto é, se o valor represenm O(zero) ou 1 (um). Nesse caso, para introduzir todos os sím-
bolos básicos q ue usamos em nosso d ia-a-dia precisaríamos mais do q ue um bit. visto que com apenas um b it
só poderíamos representar dois sirnbolos distintos. Considerando, por exemplo, que gostariamos de represen-
tar internamente en1 um computador o nosso alfabeto e demais símbolos gráficos da matemática e afins, p re -
cisaríamos criar uma fo rma de representação interna para o seguinte:
26 letras m inúsculas (considerando as letras k , w. x. y)
26 letras maiúsculas
4 símbolos matemáticos ( +, - , * , /)
8 sinais de pontuação (. ; , : () - " )
S01ne nte nesse simples exemplo criamos 64 possibilidades de representação de informações q ue precisari-
am ser distinguidas internarnente pelo computador. que possui apenas dois valores djferentes. A solução p;1ra

.. vo - -'"-
SDêW

-t V

B.ll ~ Bíil 1 Elit; Bil 1 Bil~

Figura 4.2 Representa.çã,o de t bit.

e e problema é a definição d.e um cód1go tcpre. entativú de çada sfo:nbolo, c;ida mn tendo uma m,l.l m:íl qua.n-
tjdade de bit-s, tanto qu 11to. forem nec, . s.:irioJ para 110 pennítir r ·pn-s
.. ·ntar todo. os ímbolos d1es jado . o
exemplo aciima em qu criamo 64 ít bolos, pn:â arj:uno d1.::finir um códí..,.o om 64 dementos, cada um
co :n ei bits. o item 7.3 o a sunto é abordado com mais. de-talhe, e o Apêndice E apre ent.a os elementos de
alguns códigos de representação de dados.
Por i o, o 1 tema de wmputaçào costumam grupar uma determinada quantidade de bi iden tificando
·::;t • grupo corno um.i unidade d armazenamento, denom.inada dli,la .3
Uma cél'uia é, então, um grupo de bits tratado em conjunto pelo istel'Tila, i to é, ele e 1 iove em bloco,
como e fo , um único el mel to, sendo identifica.do para efeillo de annazenamento e transferência como
uma unidade. Como veremo nui :id:iante, o rermo célula .:sr: ndo utiljzado apenas para identificar a unj-
dade de armazemunenrn da memórfa principal; nos demais 6pos de mem.ória. a unidade de anna2ir.mamento
(grupo de bits que se move j unto,) po. sui outra denominaçôe (bloco crm· clustcr etc.).
Observação·: e ta parte jnicial do ,capít1.1Jo esta.mos no referindo à memória do computador de forma.
genérica embora já tenhamos explicado que a memória é na realidade um conjunto de memórias. Na prática,
e e conjunto ' constjtuído:
- pela 1m:móüa chamada p1incipal ou p1Lünária , que no mercado e mesmo na lite1.itura técnica e d no:m ina
RAM - Random Acce s Memory (mernória de ace o randômico ou aleatório), a qual erá anali: ada aind,a
nest,e capítulo·
- pela memória cache, con traída com recnoJogia RAM e que e in el'e no j temas para acelerar a transfe-
rência de dados com o proce adm· - e e dispositi o será. analisado no Cap. 5;
- pelos regi trador s - pequenos dispo itivos de annazenamento existente o int rior do, prnc, sadores, com
o propó ito de annazen:rr individm1bneme dado , instruçõe ou endereço . Es es di positivos erão anal.i ado
tanto ne te capi ulo quanto no ap. 6; e
- pelo dispositivos de armazenamento senmdário, como discos rígidos,, di quete: CDs e D Ds. es com-
ponent,es serão ana}is.a.dos no Cap. 9.
Embora no item seguinte eja efetl1ada uma breve apresentação d cada 11.1m dde , com o p[·opó.~ito de
apre entar a estmn1ra h 'erárquica do ub istema de memória, e te capítulo ::;e di.: tina a analisar e detalhar as
caracterí ticas e o funcionamento da memória principal (ou RAM).
É também intere: ante mencionar um ponto sobre a nomenclatur.t do di_ po itivo de a1mazenamento,
conformes.e encontra na descrições de produto, no art:igo. publicado e no c:mcrid.imemo do mer ·ado de
um modo gera sem que e e tome mna regra for na1mente e t-abelecid; por algun órgão d!! padronização.

'Mmlt>< >l•lwe:< defi 111,.,,, " grup<i ,1,,, bic. itl,,m tifi~ dó ~or 1.1111 t.·ndcrt:ço de ,uctnóriJ .:0111.. pit"1~'1'iil ~ <:omo cHub 1m1 ú11ko bic, Sélll ~11.d;.-r.,,o mdividoil. Neo!I •
livr,,l. co111idc12111os p~ldrm :t tmidadc ele alor nos proc=dorc':!i (ver Cap. 6) ,: a uni(bd.- dt" i r111;n:l.'11>111~1,tn ,;,,11110 "'·'h ,h. "ª" ç.,mfümlind<>, ~..im, u& [ú111os..
SU$W

Memória Prittcipal / 83

É com.mn, quando se mencionam os termos em inglês, separar a nomencla.cura dos dispositivos de armaze-
namento em duas partes: 111emory (memória) e storage (depósito ou am1azenador), referindo-se a 111e111ory quan-
do se tr.ita de memórias elecrônjcas, tipo DRAM e cache (SRAM), e storage quando se trata de discos, CDs
ecc. Não é comum chamar-se discos (Hard Disk ou HD) de memória, talvez porque aqueles dispositivos não
perdem informação quando desligados, e as memórias sim.
Ratificando, então, o que já foi mencionado anccriom1cnte, neste capítulo trataremos de memórias, especifica-
mente memórias prinópais (RAM). No Cap. 5 será abordada a memória cache e no Cap. 9 a memória secundária.

4.1.2 Como se Localiza uma Informação nas Memórias


Como uma memória é constituída de vários desses grupos de bits (célula, bloco etc.), é necessário que seja
definido um método para identificar univocamente cada uma dessas células (ou blocos), de modo que possa
ser distintamente identificado o grupo de bits desejado para um certo processamento.
Trata-se de um processo semelhante a vários outros encontrados em nosso dia-a-dia. Por exemplo, cm
uma rua podem-se construir 100 casas rigorosamente iguais, de tal forma que não se possa visualmente distin-
guir uma da o utra. No entanto, o carteiro não erra ao entregar diariamente a correspondência, pois cada cas.1
possui uma forma única de identificação, um número fixado em sua porta ou fachada. Este número, diferente
e único par.i cada casa, é denominado endereço.
De modo análogo. em um sistema de compmação as células (ou grupos de bits que se movem junto) são
identificadas, mna a mna, por um número, ca1nbé1n denonlinado enderefO. Na Fig. 4.1 podemos observar que
cada caixa possui um número identificador, 101, 102, 103, 104, .. . 116, que é seu endereço.
Em resumo, cada célula da memória principal ou cad1 grupo de bits (bloco, setor etc.) em um sistema de com-
putação é identificado na sua c1iação por um número denominado endereço. A memória é organizada, então, em
grupos de bits, scqücncialmente dispostos, a partir do grupo (célula, bloco, setor etc.) de endereço O (zero) até o
último grupo, de endereço (N - 1), sendo N a quantidade total de grupos. O sistema de controle das memórias é
construído de modo a 1ocalizar um certo grupo de bits a partir do seu endereço, confom1e veremos mais adiante.
As Figs. 4.7 a 4.l O mostram memórias com a disposição de suas células e respectivos endereços.
É importante enfatizar (e isso será repetido em outr.is partes deste livro) que as memórias são constituídas de
elementos fisicos (seu conteúdo} que, de diferentes formas (elétrica, magnética, ótica), representam os dados
que desejamos armazenar e manipular. Os endereços de cada grupo de bits (célula, bloco, setor etc.) não são
fisicamente representados em qualquer lugar do sistema. Didaticamente se insere, ao lado de cada célula, p.
ex., o seu endereço de modo que o leitor possa identificar a célula e acompanhar melhor a explicação, mas o
valor do endereço não está fisicameme naquela posição.
O endereço de memória é, então. o elen1ento que indica a unidade de armazenamento. ou seja, toda e
qualquer memória é organjzada e m partes iguais (algumas tão pequenas quanto 8 bits ou 1 byte, como é o
caso da mcmó,ia principal [R.AM) e ou tras bem maiores, como 512 bytes de um setor de um disco magné-
tico), cada uma delas identificada e localizada por um endereço.
No caso das memórias elctrô nicas, este endereço, em forma de valor binário, é enviado pelo processador
(sempre que este realiza um acesso à memória) para o barramento do sistema (o BE), por meio dos pinos de
contato existentes na pastilha do processador.
Os processadores da geração de 16 b its de palavra (Intel 8086/8088) possuíam e ndereços com 20 bits de
largura, permitindo usar memórias com 1 M endereços (ou 1M células), cada um podendo armazenar um dado
com 8 bits, 1 byte de largura. Assim, a capacidade de memória podia ser expressa como:
lM células de 1 byte ou apenas 1MB (o B maiúsculo significa byte)
porque 1M = 2'°.
J á os processadores Pentium, da geração de 32 bits de palavra possuem endereços de 32 bits, podendo,
assim, ter memórias com capacidade de endereçame nto de 4G células, também de 1 byte, ou:
4 Gl3 = 2"
SDêW

84 / Memórfo Prfo.ipaf

4,. 1.3 O pera ções :R e alizadas em uma Memória


Já foi 11 encionado que uma metuória ,é utu d:i positivo de arm z namento (dep6 iro) de in ormaçõe_. Quando
se org; niza um depósito tem-se por objetivo permitir que dememos (objetos, no ca o de uma abr'ca. p. , .,
ou infot11açõe: no ca o da memória ) possam er guardados. (annazenado) de uma forma organizada q e
po . ibil:ite s.ua id ntificaç:fo e locaili2:1ç-o, uandc) s.r; d. . ejar 1-ewperar (apanhar para uso) um de Se5 elemen-
to . Pode-se, cni.i '.'I, e1t1. um d~p6~ito realizar duas açõe distint.."ls:
- guardar o elemento (armazen, r) · t:
- retirar o elemento (rocup rar).
Também m uma memória podem e reaJ:iz:ar essa me ma dua: açoe {ou operaçõe) as quai, ne e ca o,
são d,e nominada :
- e crita ou gravaçà.o ou armazenamento (u,rite ou rernrd) · e
- le' ut·a ou recup raçào (mui ou retrfrr,e).
Amba a operaçõe ão po íveis graças à técnica utj]izada para identificar cada Je1 e1 to (ou grupo de b'ts)
por um núm ro seu end reço que permite identificar o local d , rmaz namento (p,u.i crita) ou d · recupe-
1, çào {para leitm-a) .

A opet-aç:ão d crita é naturalmente de trutiva, ou eja, ao armazenar- e um dado ·l!m una célula o con-
teúdo ant rior ' d struído vi to qu o bits que chegam ào gravado por cima dos que estavan no local O
proceSS,o é emelhante ao i ali:zado para gravar uma músk em uma fita ca sete; a música que ai sendo gra-
vada apaga a. anterior. A Fig. 4.3(a) mosrra um exemplo de operação de escrita descrirn em dernlh no item
4.3.3_2_

UCP IMP

endereço o11 o 1 OO1 1 - Célula1

i 1 1 110 1 Endereço 011 1 1 1 11 O 1 - Célula


00 1 1: 0
Endereço 1000 1111 0 - Céh,1la1

1 1 1 1 O

,( a) Operação de escrita-O va1or 11110 é 1ransf1u ido (uma cópia)


da UCP-para a MP e armaze111adb r1a oéhJ'la de endereço 1000,
a paga.não, o conteúdo anlsrio:r (0011 0').

uc:p MP

Endereço 011 O 1 OO1 1


1 1 'l 1 a Er'ldereço 01 11 11 1 1 o, 1
1 1 ÓO1 1 1
"
Endereço 1000 1 11 1 o

1 OO1 1 l
(ib) Operaçâ,Q de leitura - O valor 10011, rumaz:im:ado no en..dereço,
da MIP 0 11o, é transferido ( o6piaJ para a UCP, ~ do o 'l;lalor
ant01iior (111 10) e armazenando no mesmo local.

Figura 4.3 Operação, dê leiturà ,e escrlra na MP.


Sn$W

Memória Pri11cipal / 85

A operação de leitura, cujo exemplo é apresentado na Fig. 4.3(b) e descrita no item 4.3.3.1 não deve ser
destrutiva. Ela é, na realidade, uma ação de copiar um valor (dado o u in formação) em o utro local, permane-
cendo o mesmo valor no local de origem.

4.2 HIERARQUIA DE MEMÓRIA


No item anterior mencionamos o futo de haver atualmente vários tipos diferentes de dispositivos de arma-
zenamento, cada um com características próp1ias (tempo de acesso, capacidade, aplicabilidade etc.) e que, em
conjunto, fomiam o que poden1os chamar de um subsistt;ma, organizado de forma hierárquica.
Sem querer simplificar dtmais uma explicação sobre um assunto técnico, mas com o propósito de, princi-
palmente aos iniciantes, exemplificar melhor a necessidade e a funcionalidade dessa hierarquia, vamos apre-
sentar uma situação q ue pode ser real em uma indústria qualquer, que fubrique produtos constituídos de di-
versos componentes (itens de montagem), os quais precisam ser a1111azcnados enquanto não são utilizados pelos
opecirios na produção de um artigo.
Vamos supor que a linha de produção é constintída de aJgumas bancadas. e em cada uma há um fu ncioná-
1io montando o produto a ser fub1icado. Para isso, de se utiliza de um esquema previamente determinado,
que define a ordem para apanhar os itens e inserir na montagem. Vamos supor que há uma caixa de depósito
de itens na própria bancada e que a operação de apanhar um item an11azenado nessa caixa gaste 30 segundos.
O ideal se,ia que, em cada turno de trabalho, p. ex., cada funcionário tivesse à disposição na bancada t0dos
os itens requeridos para a montagem dos produtos. Assim, ele gastaria apenas o tempo necessário para apa-
nhar, na própria bancada, o item desejado (tempo de acesso), que seria, cm nosso exemplo, de 30 segundos.
No entanto, para que isso acontecesse era nc:cess..írio que a c::iixa da bancada fosse muito grande (para arma-
z~nar todos os itens necessários às montagens cm um turno de trabalho), e isso custaria espaço e muito d inhei-
ro. Além do mais, o operário não usa t0dos os itens a todo o momento; na maior parte do seu tempo de
trabalho ele usa uma pequena quantidade de itens de todos que esrào previstos naquela montagem.
Assim, os departamentos de planejamento e de produção pens.1ram em uma solução mais barata, e mais
eficaz. Foi instalado um armário no espaço de monragem, organizado de modo a acomodar gavetas iguais às
das bancadas, com os itens nelas. E mais, o armário estava dividido em prateleiras, cada uma de]as contendo 11
gavetas. de modo que ele é preenchido gaveta por gaveta. O almoxarifudo central é organizado. para isso, em
conjuntos de prateleiras, cada uma com II gavetas cheias de itens.
Desse modo, o operário inicia seu turno apanhando uma gaveta do armário (o tempo para fazer isso é da
ordem de 3 minutos, bem maior que os 30 segundos anteriormente mencionados), e dda de vai apanhando
os itens desejados até que procura um itern e não encontra em sua bancada; nesse caso, ele apanha a gaveta que
contém o item e prossegue cm sua montagem, tendo que eventualmente ir ao armário (gastar os 3 1ninutos)
e buscar outra gaveta. Vez por outra, q uando de vai ao anuário buscar uma gaveta que contenha um icem
desejado na montagem não acha esse ite1n cm Ilcnhuma das gavetas existentes e. por isso. é necessário obtê-
lo no almoxarifado cemral. Como o tempo de ida ao local do almoxarifado, a análise do pedido pelo funci-
onário de lá e sua busca são bem demorados (vamos supor, cerca de 3 horas), o material é trazido em uma
grande quantidade para não se ter que ir ao ahnoxarifado 1nuitas vezes en1 um turno. Assim, o fimcionário
encarregado transporta uma prateleira completa com N gavetas, que encaixa no espaço apropriado do annário.
E, assim, o sistema funciona com três níveis de annazenainento:
1. o almoxarifado central (parece nosso conhecido disco rígido), com grande espaço de armazenamento e
longos tempos de busca de itens (tempo de acesso);
2. o a,mário na sala de montagem (semelhante à nossa memória principal [RAM!), organizado em gavetas
de itens. com tempo de recuperação bem menor que o do almoxarifado; e
3. as gavetas de cada bancada (semelhante à memória cache), com o menor tempo de acesso e pouca quan-
tidade de armazenamento, porém suficiente para as necessidades de montagem.
Naturalmente, não descrevemos (nem mesmo no exemplo da fãb1ica) uma situação cm todos os seus deta-
lhes, pois o escopo é apenas mostrar a conveniência da organização de depósitos ern níveis e sua eficácia.
Sn$W

86 / Memória Pri11âpal

A estratégia e ncontrada nos sistemas de computação foi semelhante à do exemplo anterior e, por isso, en-
contramos atualmente uma variedade de componentes para armazenamento funcionando integrados nos com-
putadores, como mostraremos no decorrer deste texto .
A Fig. 4.4 moma o subsistema de memória, projetado de modo que seus componentes sejam organizados
hierarquicamente, em forma de pirâmide.
A pirâmide em questão é projetada com uma base larga, que simboliza a elevada capacidade, o tempo de
uso e o custo do cornponente que a representa (no caso, os componentes utilizados como armazenamento de
capacidade, como discos rígidos [HDs], CDs, DVDs e fitas) .
A variação crescente dos valores de certos parâmetros que caracterizam um tipo de memória pode ser mostrada
no formato inclinado de uma pirâmide.
Com a finalidade de permitir ao leitor compreender a função de cada componente do subsistema de memória
e as diferenças entre eles, a seguir serão definidos os p1incipais parâmetros para análise das características de cada
tipo de memória apresentada na Fig. 4.4. O valor maior (base) ou menor (pico) de algum parâmetro foi a causa
da utilização de uma pirâmide para representar a hierarquia do sistema de memória de um computador.
As características analisadas são: tempo de acesso, capacidade, volatilidade, tecnologia de frabricação,
temporariedade e custo.
Tempo de acesso - indica quanto tempo a Jnemória gasta para colocar uma in formação na barra de dados
após uma determinada posição ter sido endereçada. Isto é, o período de tempo decorrido desde o instante e m
que foi iniciada a operação de acesso (quando a origem - em geral é o processador - passa o endereço de
acesso para o sistema de memória) até que a informação reque1ida (instrução ou dado) tenha sido efetivamen-
te transferida. É um dos parâmetros que pode medir o desempenho da memória. Pode ser chamado de tempo
de acesso para leitura ou. sin1plesmente, tempo de leitura.
O valor do tempo de acesso de uma memória é dependente da sua tecnologia de construção e da velocida-
de de seus circuitos. Ele varia bastante para cada tipo, de alguns poucos nanossegundos, no caso de memórias
tipo R.AM (ORAM, SRAM etc. - descritas mais adiante) até dezenas de milissegundos, no caso de memória
secundária (discos magnéticos, CD-ROMs e fitas).
A descrição desses tipos, seu funcionamento e características básicas serão apresentados mais adiante (neste
capítulo será tratada a memória principal, R.AM/R.OM e memória cache, ficando a memória secundária para
ser discutida no Cap. 9) .
Deve ser mencionado ainda que o tempo de acesso das memórias eletrónicas (do tipo RAM, ROM etc.)
é igual, independentemente da distância fisica entre o local de um acesso e o local do próximo acesso, ao passo
que, no caso de dispositivos eletromecânicos (discos, CD-ROMs etc.), o tempo de acesso varia conforme a
distância fisica entre dois acessos consecutivos.

Custo alto
Velocidade att-a
8abca capacidade
- - - - - Registradotes

- - - - Memória cache

- - Memória principal

Custo baixo Oisoos


Velo<idado balxa - Memória secundária
Capacidade etévada CO-ROM

Figura 4.4 Hierarquia de me1n6ria.


Sn$W

Me.m6ria Principal / 87

Outro parâmetro (utilizado apenas em memórias eletrónicas) é o chamado ciclo de tempo do sistema de
rnemória (mcmory sys1em's cyde time}, o u siir1plesrr1ente ciclo de memória, que é o pcriodo de tempo decorrido
entre duas operações sucessivas de acesso à memória, sejam de escrita o u de leitura. fase tempo depende de
outros fucores relacionados aos tempos de funcionamento do sistema. Esses outros furo res podem, em cercas
rnemórias. impedfr. por um pequeno intervalo de ternpo. o uso do sistema de memória para um novo acesso,
logo após a conclusão do acesso anterior. Nesses casos. o ciclo de memória compreende o tempo de acesso
mais um cerro tempo para essas outras atividades, a serem descritas mais adiante. Outras memórias não reque-
rem esse tempo adicional entre acessos e, portanto, o ciclo de memória é igual ao tempo de acesso.
O ciclo de memória é usualmente empregado como elemento de medida de desempenho das memórias
clctrônicas, sendo indicado nos manuais e demais documentos descritivos das características de um dado tipo
de n1emórfa.
Capacidade é a q uantidade de informação que pode ser annazenada em uma memória; a urúdade de medi-
da mais comum é o byte, embora também possam ser usadas outras unidades, como céfolas (no caso de me-
mória principal ou cache), setores (no caso de discos) e bits (no caso de registradorcs) . Dependendo do cama-
nho4 da memória, isto é, de sua capacidade, indica-se o valor numérico total de elementos de forma simpli-
ficada, através da inclusão de K (qu ilo), M (mega), G (giga), T (cera) ou P (peta) - (ver item 2.2.1).

Exemplos de nomenclatura para valores de capacidade de memórias:


• O registrador RI cem 32 bits.
• A memória ROM do microcomputador A tem 32 Kbytes.
• A memória RAM do computador B tem capacidade para endereçar 128M células.
• O disco C cem capacidade para armazenar 8,2 Gbyces.
• O CD-ROM E cem capacidade de armazenamento igual a 650 Mbytes.
Volatilidade - memórias podem ser do tipo volátil ou não-volátil. Uma memó1ia não-volátil é a que retém
a informação annazenada quando a energia elétrica é desligada. Memória volátil é aquela que perde a infor-
mação armazenada quando a energia elétrica desaparece (incernrpçào de alimentação elétrica ou desligamento
da chave ON/ OFF do equipamento) .
Uma vez que um processador nada pode fazer sem instruções que indiquem a próxima operação a ser re-
alizada, é óbvio que todo sistema de computação deve possuir alguma quantidade de memória não-volátil.
Isto é, ele deve possuir, pelo menos, algumas instruções armazenadas em me1nória não-volátil para serem
executadas inicialmente, sempre que se ligar o computador.
Rcgistradorcs são memória do tipo volátil, como também memórias de sc1nicondutorcs, do tipo RAM.
Memórias magnéticas e ótkas, como discos e fitas e também me;:mó1ias de semicondutores do tipo ROM.
EPROM etc. são do tipo 11ão- voláti/.
É possível manter a enl!rgia em uma memória origlnahnente não-volátil através do e mprego d!! baterias.
Mais adiante. este parâmetro será analisado e exemplificado com um pouco mais de detalhe (ver Apêndice O).
Tec110/ogia de fabricação - ao longo do tempo, diversas tecnologias vêm sendo desenvolvidas para a fabri-
cação de memórias. Atualmente, algumas dessas tecnologias já são obsoletas, como as memórias de núcleo de
ferrite (magnéticos), e o utras ainda não têm uma aplicação comercial ampla, como as memórias de bolha.
Algumas das tecnologias mais conhecidas e utilizadas são:
a) Memórias de se111icc>11d11tores - são dispositivos fubó cados com circuitos clecrônicos e baseados em semi-
conduton.--s. São rápidas e relativamente caras, se comparadas com o utros tipos. Dentro desta categoria
geral há várias tecnologias específicas, cada mna com suas vantagens, desvantagens, velocidade, custo

'Em compuu.çlo. cos.rum:i.-.s..- \Wr o tl.'"nno cam:mho p;a.r:i indil:.u :i quanti<Udc d1: in(orm:iflo (bits. brt~-s '-'l(".). 1.· nio par.i indiar :i. gn.nd<"U. íiska do dl·1nc-nto.
como se ~7. n:1 vicl1; cotidi:&11:1. Por CX<"mpl<>, () tun:inho do l»rr:uncruo de dados dt· um c;cnq ~i.Sll"nt:t é de 6-1 bit-t, Ug,1ific,mdo ~1uc o r~·fcrido b:1rr..1111c1110 de
cbd()( possui M fi05 coloc-MJosjuntos. c:i.J:1 um pcnnitindo 2 p:1..,~sl·m de um sin:i.l dé-rrioo, i:orr...sponckntl.'" 10 v:ik,r dl• um bit.
SU$W

88 / A,Jemória Prindpal

como memórias SRAM, DRAM, SDRAM etc., as q uais são mencionadas no item 4.3.5 e serão mais
detalhadamente descritas no Apêndice D.
Registradores, memória principal e memória cache são exemplos de memórias de semicondutores
ou, mais simplesmente, me1nórias eletrônicas.
b) Memórias de meio magt1ético - são dispositivos, como os disquetes e discos rígidos (/iard tlisks), fabricados
de modo a armazenar informações sob a fonna de campos magnéticos. Eles possuem caracte,ísticas
magnéticas semelhantes às das firas cassete de som, as quais são memórias não-voláteis. Devido à natu-
reza eletro mecânica de seus componentes e à tecnologia de construção em con1paraç.ão con1 rnernórlas
de semicondutores, esse tipo é mais barato e permite, assim, o armazenamento de grande quantidade
de informação. O método de acesso às informações armazenadas em discos e fitas é diferente (ver irens
9.2 e 9.4), resultando e m tempos de acesso diversos (por possuírem acesso direto, discos são mais rápi-
dos do que firas, que o peram com acesso seqüencial). O Cap. 9 descreve, com mais detalhe, a o rg-Jni-
zação, as tecnologias e outras características dos discos e fitas magnéticas.
c) Memória de meio ótico - dispositivos, como os CD-ROMs, capazes de armazenar cerca de 650 Mbytes
de informação permitindo apenas sua leitura, por isso o nome ROM após o CD (recentemente surgi-
ram no mercado dispositivos que podem regravar dados, como os discos - denominam-se em inglês
CD- R W (readablel,vriteble). Tais dispositivos utilizam um feixe de luz para "marcar" o valor (O ou 1) de
cada dado em sua superficie.
Temporariedade - trata-se de uma característica que indica o conceito de tempo de pe,manência da infor-
mação em um dado dpo de memória.
Por exemplo, infonnações (programas e dados) podem ser annazenadas em discos ou disquetes e lá pcm,ane-
cerem armazenadas indefinidamente (por " inde6nidameme" entende-se um considerável período de tempo,
por muitos anos, mas h:í sempre a possibilidade de perda de magnetismo com o passar do tempo). Pode-se, en-
tão, definir esse tipo de memória con10 permanente, ao conttáti.o dos registradores, p. ex .. que a1mazcnam um
dado por um tempo extremamente curto (nanossegundos), o su6cieme para o dado ser, em seguida, transferido
para a U AL. Os registradores podem, às vezes, reter o dado annazenado para posterior processamento pela UAL,
mas, mesmo assim, esta retenção não dura mais do que o tempo de execução do programa (na hipótese de maior
pennanência) ou de parte dele (hipótese de duração menor). É uma memória do tipo tra11sitório. Outros exem-
plos de memórias de pennanência transitória de dados são a memória cache e a memória p,incipal, embora os
dados nelas pennaneçam armazenados mais tempo do que nos regimadores (tempo de duração da execução de
um programa - q ue pode ser de uns poucos segundos ou até mesmo de algumas horas).
C11sto - o custo de fabricação de uma memória é bastante variado em função de dive,~os fatores, entre os
quais se pode mencionar principalmente a tecnologia de fabricação, que redunda em maior ou menor tempo
de acesso, ciclo de memória, quantidade de birs cm cc,w espaço fisico e outros. Uma boa unidade de medida
de custo é o preço por b)>te armazenado, em vez do custa total da memória em si. Isso porque, devido às
diferentes capacidades, seria irreal considerar, para con1paração 1 o custo pelo preço da mem6 1ia cm si. natu-
ralmente diferente, e não da unidade de armazenamento (o byte), igual para todos os tipos.
Em outras palavras, um disco rígido de microcomputador pode annazenar, p. ex., 80GB e custar, no merca-
do, em tomo de RS300,00, o que indica um custo de RS0,00375 por Mbyte, enguamo uma memória do tipo
de semicondutor, dinâmica, pode custar cerca de RS0,82 por Mbyte, adquirindo-se, então, 256MB por R$20,00
(o preço de 11\IIB na MP é muito mais caro que 1MB armazenado no d isco). Não há comparação física nem
lógica possível entre o valor dos 256MB de RAM e os 80GB do disco se analisannos apenas o dispositivo como
um todo (o disco como um componente individual é mais caro que o pente de memória RAM).

4.2.1 Registradores
Em um sistema de computação, a destinação final do conteúdo de qualquer ripo de memória é o proces-
sador. Isto é, o objetivo final de cada uma das memórias (ou do subsistema de memória) é armazenar infonna-
ções destinadas a serem, em algum momento, utilizadas pelo processador. Ele é o responsável pela execução
das instruções, pela manipulação dos dados e pela produção dos resultados das operações.
Sn$W

M~i,mhia f>riuâpal / 89

As ações operativas do processador são realizadas (ver Cap. 6) nas suas unidades funcio nais: na unidade arit-
mética e lógica - UAL (ALU - Arirhmetic a11d ¼ic U11ir), na unidade de ponto flutuante - UPF (Floar Poi11t
U11it - FPU) ou talvez em uma unidade de processamento vetorial. No enc.1nto, antes que a instrução seja
interpretada e as u1údades do processador sejam acionadas, o processador necessita buscar a instrução onde ela
estiver armazenada (memória cachc ou principal) e armazená-la em seu próprio interior, cm um dispositivo
de memória denominado registrador de i11str11ç.ão.
Em seguida a este armazenamento da instrução, o processador deverá, na maioria das vezes, buscar dados da
memória (cachc, principal ou mesmo de unidades de disco em fita) para serem manipulados na U AL. Esses
dados também precisam ser armazenados em algum local do processador até serem efetivamente utilizados.
Os resultados de um processamento (de uma soma, subtração, operação lógica etc.) também precis.1m, às vezes,
ser guardados temporarian1c:ntc no processador, ou para serem novamente manipulados na UAL por uma
outra instrução, ou para serem transferidos para uma memória externa à UCP. Esses dados são armazenados
na UCP cm pequenas unidades de memória denominadas registradores. 1

Um registrador é, portanto, o elemento superior da pirânúde de memória (ver Fig. 4.4), por possuir a maior
velocidade de transferência dentro do sistema (menor tempo de acesso), menor capacidade de armazenamen-
ro e maior custo.
Analisando os diversos parâmetros que caracterizan1 as 1nen1órias, descritos no item anterior, te1nos:
Tempo de acesso - um ciclo de memória; por serem construídos com a mesma tecno)ogia do processador,
estes d ispositivos possuem o menor tempo de acesso/ciclo de memória do sistema (neste caso, não é aplicável
distinguir-se tempo de acesso e ciclo de memória, por serem sempre igu ais), algo em torno de l a 2
nanossegundos.'
Capacidade - os registradores são fabricados com capacidade de annazenar um único dado, uma única ins-
trução ou até mesmo um único endereço. Desta forma, a quantidade de bits de cada um é de uns poucos bits
(de 8 a 128). dependendo do tipo de processador e, dentro deste, da aplicação dada ao registrador em si .
R.egistradores de dados têm, em geral, o tamanho definido pelo fabricante para a palavra do proce$Sador. ta-
manho diferente dos registradores usados exclusivamente para arn,azenar endereços (quando há rcgisrradores
com esta função específica no processador) . Por exemplo, o processador Intel Pentium, cuja palavra é de 32
bits (ver Cap. 6), tem registradores de dados (inteiros) também de 32 bits, inclusive registradores de endereços
(os números que indicam os endereços de célula de memória principal do processador têm 32 bits, enquant0
os registradores para armazenar valores em ponto flutuante têm 64 bits de largura); o processador PowcrPC
tem regisrradores de dados de 32 bits (palavra de 32 bits) e rcgistrador de endereços também de 32 bits, en-
quanto o processador Alpha possui rcgistradorcs de dados de 64 bits, assim como os Pentium ltanium (ver
Tabela 6.2).
Volatilidade - registradores são memórias de semicondutores e, portanto, necessitam de energia elétrica
para funcionarem . Assim. registradorcs são rnemórias voláteis. Para o processador funcionar sem interrupção,
mesmo quando eventualmente a energia el~trica para o computador é interrompida. é necessário que o siste-
ma de computação seja ligado a um dispositivo de alimentação elétrica denonúnado 110-break, o qual é cons-
tituído de bateria o u gerador de corrente e um conversor AC/DC.
Tecnologia - conforme mencionado no tópico anterior, os registradores são memórias de senúcondutores,
sendo fabricados com tecnologia igual à dos demais circuitos do processador, visco que eles se encontram inse,idos
em seu interior. No entanto, há diversos modelos de tecnologia de fabricação de sem icondut0res, uns com
tempo de acesso maior que outros, custos e capacidade de annazenamcnto, no mesmo espaço físico, diferen-
tes. Tecnologia bipolar e MOS (metal oxide se111ico11d11ctor) são comuns na tãbricação de registradores.
Ttmporariedade - os registradores são memórias auxiliares internas ao processador e, portanto, tendem a
guardar informação (dados o u instruções) o mais temporariamente possível. Acumuladores ou registradores
de dados armazenam os dados apenas o tempo necessário para sua utilização na UAL.

Sé imp0r1:une mcncion:u t1m· Cll\ 11úu1cn;,s que reprctcuti m o ~m J>l:'nho ~ lllll compl1tador sio biscante v:iri.iv.:is. visto que a t1.."Cnologi:i ;11v.2.nç:i cm enomic
vdoc-irud1..· (mllior do que :1 r.tpidcz com que :mulizo as vcl'SÕ1.."S d1..-s11.· livro}. As.sin,, cit:ir 1 2 2 ni n1..-s;tc i1t~12n1c pode signific2r 11111 v:ilor conserv~or c1w ndo
<'Ste li\1ro .:sti\·1..--r .sendo lido. por t'St:.itcm ji ultrn~s:1dos ou dCSJ.tu:ifüados.
Sn$W

90 / Memória Pn·,,apal

Custo - devido à tecnologia mais avançada dl! sua fabricação, os rcgistradores encontram-se no topo da
pirâmide em termos de custos, sendo os dispositivos de maior custo entre os d iversos tipos de memória.

4.2.2 Memória Cache


Na pirâmide de memória, abaixo dos registradores, encontrn-se o co1uunco cache-memória principal. Em
sistemas de computação mais antigos a pirânúde não possuía memória cache e, desse 1nodo, os regisrradores enun
ligados diretamente à memória principal. A Fig. 4.5 mostra uma pastilha (<l,ip) de memória cache (cache extema).
Em toda execução de uma instrução, o processador acessa a memória p1incipal (sem cache) pelo menos
uma vez, para buscar a instmção (uma cópia dela) e transferi-la para um dos registradores do processador (ver
Cap. 6) . E, mais ainda, muitas instruções requerem outros acessos à memória, seja para a transferência de da-
dos para o processador (que serão processados na UAL), seja para a transferência do resultado de uma opera-
ção do processador para a memória.
Em resumo, para a realização do ciclo de uma instrução há sempre a necessidade de ser realizado um ou
mais ciclos de memória (no Cap. 6 será descrito com detalhes o procedimento referente à realização de ciclos
de instrução).
Considerando-se que um ciclo de memória é anialmente bem mais demorado do que o período de tempo
que o processador gasta para realizar uma operação na UAL, fica claro que a d uração da execução de um ciclo
de instrução é bastante afetada pela demora dos ciclos de memória.
Desde há muito, então, esta interfuce entre o processador e a memória p1incipal vem sendo 11111 ponto frágil
no que se refere à perfornumce do sistema.
Na tentativa de melhorar o desempenho dos sistemas de computação. os projetistas do processador vêm
constantemente obtendo velocidades cada vez maiores nas operações dessas unidades. o que não está aconte-
cendo na ,nes1na proporção com o aperfeiçoamento tecnológico das memórias utilizadas con10 memória prin-
cipal. Assim, atualmente a diferença de velocidade entre processador e memõria principal é talvez maior do
que já foi no passado.
Na busca de uma solução para este problema (o gargalo de congestionamento na commúcação processa-
dor/ MP que degrada o desempenho dos sistemas), criou-se um mecanismo, que consiste na inclusão de um
dispositivo de memória entre processador e MP, denominado memória cache, cuja função é acelerar a velo-
cidade de transferência das informações entre processador e MP e, com isso, aumentar o desempenho dos
sistemas de computação.
Para tanto, esse tipo de memó1ia é fubricado com tecnologia semelhante à do processador e, em conseqüên-
cia, possui tempos de acesso comparivcis, resultando numa considerável redução da espera do processador para
receber dados e instruções da cache, ao contrário do que acontece em sistemas sem cachc (conceitos e tecnologia
de fàbricação de memórias cachc, bem como seu funcionamento, são detalhadamente apresentados no Cap. 5).
O conceito de cache difundiu-se e é atualmente usado cm sistemas de computação modernos: RAM cachc,
ou cachc para a memória principal e cache para disco. Trataremos aqui das características das memórias cache
para memó1ia principal, deixando para o Cap. 5 a descrição das características das memórias cache para disco.

Figura 4.5 E xemplo de memória cache (cachc externo) .


Sn$W

Memória Principal I 91

Além disso, deve-se mencionar que as memórias RAM cache podem ser inseridas em dois (ou até três)
níveis, sendo o primeiro denominado Ll (Levei 1 - nível 1), uma memó da cache inse1;da internamente no
proces.sador, isto é, é e ncapsulada na mesma pastilha, enquanto a de ,úvel 2, L2' o u cache externa (ou ainda
cache secundá,ia) consiste em uma pastilha (chip) separada e própria, instalada na placa-mãe do computador.
No Cap. 5 descreveremos esses tipos com um pouco mais de detalhe.
Logo abaixo dos rcgistradorcs na pirâmide é. inserida a memória RAM cache, com os seguintes parâmetros:
Tempo de acesso, ciclo de memória - sendo memórias de senticondutores, fabricadas com tecno1ogia e re-
cursos para prover menores c iclos de memória que as memórias RAM comuns (memória principal do tipo
dinâmica, a ser explicada nos itens 4.3 e 4.7), elas possuem velocidade de transferência ral q ue lhes garante
tempos de acesso entre 5 e 20 ns, sendo por esra razão colocadas, na pirâmide, logo abaixo dos registradores.
Capacidade - tendo em vista que o processador acess.a primeiramente a men1ória cache, para buscar a infor-
mação requerida (a próxima instrução ou dados requeridos pela instrução em execução), é importante que a
referida memória tenha capacidade adequada para armazenar uma apreciáve) quantidade de infom1ações, vis-
to que, se ela não foi encontrada na cache, então o sistema deverá sofrer um atraso para que a informação seja
transferida da memóiia principa1 para a cache .
Por outro lado, u111a grande capacidade implicará certarnente a elevação de seu custo, muitas vezes inacei--
tável pal'a compor o preço total do siste ma, sem aumentar o desempenho na proporção esperada.
Na ,·ealidade, conforme será mostrado no Cap. 5, a eficiência de uma memória cache é da o rdem de 95%
a 98%, isto é, em cada 100 acessos, por exemplo, o processador encontra o valor desejado na cache em 95 a
98 deles e somente 110s acessos restantes é que ele não se encontra na cache. N este caso, o sistema precisa
buscar o dado na MP (de fut0 ele busca o dado e mais os dados contíguos - um bloco de dados - que cerra-
mente ele precisará em seguida, devido ao princípio da localidade) armazenando-o na cache e daí parn o pro-
cessado,·.
Desse modo, aumentar o tamanho da memória cache tende a aumentar o custo do sistema, sem acréscimo
significativo de eficiência da cache, pois não há prnticamente nada o que crescer após 98% de eficiência.
A capacidade da memó ria cache va1ia conforme seu tipo, sendo me no r para e.aches L1 do que para caches
L2.
Valores típicos de memória cache L1 oscilam entre 32 e 256KB e até 4MB para L2.
Volatilidade - a exemplo dos registradores, memórias cache são dispositivos construídos com circuitos ele-
trônicos, requerendo, por isso, energia e1érrica para seu füncionan1ento. São, deste 1nodo, dispositivos volá-
teis.
Tec110/ogia - memórias cache são fàbricadas com circuitos eletrónicos de alta velocidade para atingirem sua
finalidade. Em geral, são memórias estáticas, denominadas SRAM (ver item 4.3.5).
Temporariedade - o tempo de permanência de uma instrução ou dado nas memórias cache é relativamente
pequeno, menor que a duração da execução do programa ao qual a referida instrução ou dado patence. Isto
porque, devido a seu tamanho não ser grande e ser utilizada por todos os programas em execuç.'io, há neces-
sidade de alteração periódica da informação armazenada para pcnnitir a entrada de novas informações. Embo-
ra a transitoriedade das in fom,açõcs na cache seja uma realidade, o período efetivo de permanência de um
dado o u instrução é dependente do tipo de política de substituição de i,úormação (ver item 5.5).
Custo - o custo de fabricação das memórias cache é alto. O valor por byte está situado entre o dos registra-
dores, que são os mais caros, e o da memória principal, mais barata. Memórias cache internas à CPU ainda são
mais caras do que as exc.ernas.

"A evolução dl'l empréS<) e t."l d~empenh() <b, llll·m6ri:is c,çlic 1\"m çondwz.i,k, os fabrk:un('S ~ us.ir~·m m:iis de um:i ~chr no imcnordo proc~-ssador. LI e: L2.
é, em il~ns sistcm:is. uma ,crrcir:i. c:ichc. L1. n:i pba ~11Ue.
Sn$W

92 / 1\1.cmória Priuâpal

4.2.3 Memória Principal


U111a das principais características definida.s no projeto de arq uitetura do sistema de von Neumann, o q ual
constitui a pri1neira geração dos computadores, consistia no fato de ser uma máquina ºde progra1na armaze-
nado". O fato de as instruções, uma após a outra, poderem ser imediata111ente acessadas pelo processador é
que garante o automatismo do sistema e aumenta a velocidade de execução dos programas (uma máquina
executando açõc-s sucessivas. sem intervalos e sem cansar, como não acontece com os seres humanos) .
E o processador pode acessar imediata111cnte uma instrução após a o utra porque elas estão an11azenadas
internamente no contputador. Esta é a importância da memória.
E, desde o princípio, a memória especificada para armazenar o programa (e os seus dados) a ser executado
é a memóiia que atualmente chamamos de principal (ou memória real), para distingui-la da memória de dis-
cos e fitas (memó,ia secundária).
A memória principal é. então, a mcmó1ia básica dt: um sistema dt: computação dt:sde seus primórdios. É o
dispositivo onde o programa (e seus dados) que vai ser executado é armazenado para que o processador vá
" buscando" instrução por instrução.
Seus parfünetros possuem as segujntes características:
Tempo de acesso: ciclo de memória - a memória principal é construída com elementos cttja velocidade ope-
racional se situa abaixo das memórias cache, embora sejam muito mais rápidas que a memória secu ndáiia. Nas
gerações iniciais de computadores o tipo mais comum de mt:mória principal era uma matriz de pequenos
núcleos magnéticos, os quais armaz.enavam o valor 1 o u o valor O de bit conforme a adição do campo mag-
nético armaz.enado. Essas rnemórias possuían1 baixa velocidade, a qual foi substanciabnente elevada com o
surgin1ento das n1emótias de semicondutores. Atualmente, as memórias desse tipo possuem ten1po de acesso
entre 50 ns e 80 ns.
Capacidade - a capacidade da memória principal (memória RAM, como é chamada pelo mercado e na
maior parte da literatura) é sempre bem superior à das memórias cachc, podendo ser limitada por dois fatores:
• a definição de seu tamanho máximo, estabelecida no projeto da arquitetma do processador (constando
inclusive na sua pinagcm)~ e
• a limitação imposta pelo dispositivo de controle da memória (inserido no tl,ipset) e pela tecnologia da
placa-mãe.
Os processadores, desde o lntd 386, lançado em 1985, possuem endereços com 32 bits e, assim, podem
endereçar até 4G. N o entanto, desde a época do lançamento do 386 e até recentemente, as placas-mãe (ex-
ceto de máquinas especiais, como servidores etc.) e dJipsets não endereçavam tanto; na verdade, bem menos
que o limite de 4G .
Com o surgimento das arquiteturas de 64 bits, os proc.::ssadores poderão gerar endereços de 64 bits de lar-
gura. Isto acarreta a possibilidade de gerenciar um espaço de e ndereçamento de memória de:
2"' = 16 EB (16 exabytcs) .
Conforme se pode observar dos dados mostrados na Tabela 2 . 1, 1EB (um exabyte) corresponde a I milhão
de T [l - terabytes (na realidade é mais do que I milhão ou 1024 X 1024), um valor extraordinariamente
elevado para os dias atuais. Imagina-se que se deva levar algum tempo para que se possa ter módulos de me-
11161ia. placas-mãe e chipsets capazes de manipular valo res tão elevados.
Volatilidade- sendo atualmente construído com sem icondutores e circuitos eletrônicos co11·elatos, este tipo
de n1en1ória també111 é volátil, tal como acontece com os registradorcs e a mc11161ia cache. No entanto, há
normalmente uma pequena quantidade de memória não-volátil fazendo parte da memória principal, a qual
serve pat".l armazenar pequena quantidade de instruções que são executadas sempre que o computador é ligado.
Tecnologia - conforme já mencionado, nos primeiros sistemas usavam-se núcleos de ferrite (processo mag-
nético) para annazcnar os bits na memória principal, até que foram substituídos pela tecnologia de semicon-
ducores. Os circuitos que representam os bits nas memó1ias atuais possuem uma tecnologia bem mais avança-
da que seus predecessores de fenite e, portanto, têm velocidade mais elevada de transferência, garantindo baixos
Sn$W

iWemdn'n Pri11cipal / 93

tempos de acesso cm comparação com o modelo anterior. São, porém, dcmentos mais lentos do que aqueles
que constituem as mc1nória.~ cache. Na maioria dos sistemas atuais esta tecnologia produz memória com ele-
mentos dinâmicos (DRAM), como será mostrado no item 4.3.5 e no Apêndice D.
Temporariedade - para que um programa seja executado é necessário que ele esteja armazenado na memó1ia
principal (e seus dados também). Atualmente esta afinnação é parcialmente verdadeira, visto que não é mais
necessário que o programa completo (todas as instruçÕ<><) esteja na MP; neste caso, é obrigatório apenas o arma-
zenamento, na MP, da instntçào que será accssada pdo proc<..--ssador (na prática, não se usa soml!nte a iH.Stmçào que
será executada, mas sim esta e um grupo de outras). Não importa, contudo, se é o progrnma todo ou parte dele
que deve estar armazen:1do na MP para str utilizado pela UCP. Fica claro que, em qualquer circunstância. as
instruções e os dados pc1111anecem temporariamente na MP enquanto durar a execução do progr:una (ou até
menos tempo). Esta temporariedade é bastante variável. dependendo de várias circunstâncias, como, por exem-
plo, o tamanho do programa e sua duração. a quantidade de programas que estão sendo processados juntos e
o utras mais. No entanto, a transitoriedade com que as infonnações pen11:mccc111 armazenadas na MP é, em ge-
ral, mais duradoura que na me1nória cacheou nos registradorcs, embora mais lenta que na memória secundária.
Custo - memórias dinâmicas usadas como memória principal têm um custo mais baixo que o custo das
memórias cache, por isso podem ser vendidos computadores com uma quantidade apreciável de MP (com
128MB, 256MB. 512MB e I o u 2GB) sem que seu preço seja inaceitável. Valores típicos de MP oscilam
entre RS0,80 e RS5,00 por Mbyte.

4.2.4 Memória Secu ndária


Na base da pirâmide que representa a hierarquia de memória cm um sisten1a de computação encontra-se
um tipo de memória com maior capacidade de armazenamento do que os outros tipos já descritos, menor
custo por byte armazenado e com tempos de acesso também superiores aos outros tipos. Esta menl.ória, deno-
minada memória secundária, mcmóiia auxiliar ou memó1ia de massa, tem por objetivo garantir um armaze-
namento mais pennancntc a toda a estrutura de dados e:: programas do usuário, razão por que deve natural-
mente possuir maior capacidade que a mentória principal.
A memória secundária de um sistema de computação pode ser constituída por diferentes tipos de disposi-
tivos, alguns diretamente ligados ao sistema para acesso imediato (discos rígidos, por exemplo), e outros que
podem ser conectados quando desejado (como os disquetes, fitas de armazenamento, CD-ROMs etc.), cuja
informação an11azcnada se toma diretamente conectada e disponível para o específico disquete ou fita que
estiver inserido no elemento de leitura/escrita (drive ou acionador), e nquanto os demais ficam disponíveis (,?ff-
H11e) para acesso manual pelo usuário.
Um das grandes características dos dispositivos que constituem a memória secundária t! sua n~o-volatilidade.
A análise de seus parâmetros (considerando urna média entre os diversos equipamentos) conduz às seguintes
observações:
Tempo de acesso/ciclo de memória - conforme será mostrado no Cap. 9, os dispositivos que podem cons-
tituir um elemento de armazena,nento secundário ou auxiliar em um sistema de computação são, em geral,
dispositivos eletromecânicos e não circuitos puramente elerrônicos, como é o caso de registradores, memó1ia
cache e memória principal. Por essa razão, aqueles dispositivos possuem tempos de acesso 1nais altos.
Tempos de acesso típicos para discos ,ígidos estão atualmente na faixa de 8 a 30 milissegundos Oá estão
sendo fabricados discos com tc1npos ainda menores. mas sempre da ordem de milissegundos, muito acima dos
nanossegundos das outras memórias). Discos do tipo CD-ROM trabalham com tempos de acesso ainda mai -
o,·es, na faixa de 120 a 300 ns, enquanto as ficas magnéticas são ainda mais lentas, podendo ler um arquivo em
tempos da ordem de segundos.
Capacidade- uma das características que coloca a memória secundária na base da pirânlide é justamente sua
grande capacidade de armazenamento, a qual também varia consideravelmente, dependendo do tipo de dis-
positivo utilizado.
Discos rígidos de microcomputadores podem, atualmente. set· encontrados com capacidades variando e ntre
2 e 50 Gbytes. Sistemas de grande po1te já há muito tempo possuem discos rígidos com dezenas de Gbytes de
Sn$ W

94 / Mem6ria Principal


Processador (Cache L1 e Registradores) - - - -

Processador (Cache L2)

Cache L2 (Externo)

MP(RAM)

MS(Discos) - - - - - - - - -& ! : :
...r
IIIIJ.i':
1 · /

ROM - - - - - - - - - - - - - - - _,,'

CMOS - - - - - - - - - - - - -

VRAM (Placa de vídeo) - - - - - -


--
Ili
li

Figura 4.6 Tipos de memória em uso nos microcon1putadores.


Sn$W

Memória Pn'utipal / 95

capacidade de armazenamento. Os demais dispositivos, como CD-ROM (com capacidade da ordem de 600
M B ou mais para cada disco, podendo o usuário possuir tantos quantos quiser e puder pagar), fitas magnéticas
(a capacidade depende do comprimento da fira e da densidade de gravação), discos óticos etc. serão analisados
com mais detalhe nos Caps. 9 e 10.
Volatilidade - como estes dispositivos armazenam as infonnaçôes de fot1na magnética ou ótica, elas não se
perdem nem desaparecem quando não há alimentação elétrica . Trata-se, pois, de elementos úteis para guardar
os programas e dados de forma permanente.
Tecnologia - este parâmetro possui uma variedade imensa de tipos, visto que para cada dispositivo entre os
já mencionados (discos, disquetes, fitas, discos óticos, CD-ROM) há d iferentes tecnologias de fabricação atu-
almente em uso, o que dificulta a sua descrição neste item. Nos Caps. 9 e 10 serão apresentados mais detalhes
de cada dispositivo, incluindo-se algumas das tecnologias em uso.
Temporariedade - conforme já mencionado no item volatilidade, a mcmó ,ia secundária é um componente
(vendo-se os diversos dispositivos corno um todo) de annazenamento com caráter permanente ou, pe)o me-
nos, de lo ngo período de armazenamento. Ela serve. ent.1.o, para armazenar programas e dados que não estão
sendo requeridos imediatamente e que exigem també1n grande espaço de armazenamento devido à sua natu-
ral quantidade.
A Fig. 4.6 apresenta diversos tipos de memória atualmente em uso nos microcomputadores, caracterizando
definitivamente a hierarquia e os elementos 1nencionados até ent..1o neste texto.

4.3 MEMÓRIA PRINCIPAL OU MEMÓRIA PRIMÁRIA - MP


Neste item serão apresentadas as características essenciais da memória principal ou primária de um sistema
de computação . E1ll primeiro lugar será mostrada a estrutura organizacio nal da MP, projetada para um acesso
rápido e fãcil pelo processador. Em seguida, serão descritas as operações que podem ser realizadas entre pro-
cessador e MP, bem como detalhes de capacidade, tempo de acesso e ciclo de máquina. Como conclusão,
serão apresentados alguns tipos de memória principal. No Apêndice D abordam-se maiores detalhes de fabri-
cação e endereçamenco das memórias RAM.

4.3.1 Organização da Memória Principal


P:ira melhor descrever a org:111ização da memória p1incipal (MP) dos computadores, é bom lembrar alguns
conceitos já expostos j untamente com o utros a serem apresentados pela p1·imcira vez:
a) a MP é o "depósito" de trabalho do processador, isto é, o processador e a MP trabalham íntima e di-
retamente na execução de um programa. No instante de execução do prob,rra1na, as instruçÕ<.!S e os dados
do program:1 vão sendo armazenados na MP (o processo de criação e funcionamento da memória vir-
tual, da organização da MP em páginas etc. foge ao escopo deste livro, mas pode ser encontrado em
literatura referente aos sistemas operacionais) e o processador os vai "buscando'' à medida que a execu-
ção vai se desenrolando.
Neste capítulo não será considerada a existência das memórias cache, pois, na realidade, o processa-
dor "busca" um dado/instrução na MP, mas <essa solicitação é interceprada pelo controle da memória
cache, e se uma cópia do dado já estiver armazenada na cache ela é trazida para o processador, sem
necessidadte de acesso à MP (ver Cap. 5);
b) os programas são organi zados dte modo que os comandos são descricos seqüencialmente e o armazena-
mento das instruções se faz da mêsma maneira, fisicamente seqüencial (embora a execução nem sempre
se mantenha de fonna seqüencial - ver Cap. 6);
c) palavra - é a unidade de informação do sistema processador/MP que deve representar o valor de um
número (um dado) ou uma instrução de máquina. Desse modo, a MP deveria ser organizada como um
conjunto seqüencial de palavras, cada uma diretamente acessível pelo processador. N a prática isco não
acontece porque os fabricantes seguem idéias próprias, não havendo um padrão para o tamanho da
palavra e sua relação com a organização da MP. Por exemplo, os antigos processadores Intel 8086/
SU$W

96 / Mt m6rin Priucipal

8088 possuíam palavra com um tamanho igual a 16 bits; a palavra dos processadores Intel, desde o 80386
até o Pentium 4, bem como dos processadores AMD, desde o K6 até os Athlon K7 é igual a 32 bits; a
palavra dos processadores Intel ltanium, AMD Athlon 64, AMD Opteron e do HP Alpha é de 64 bits,
enquanto a MP associada a todos esses processadores é orga,úzada em células com 8 bits (1 byte} de
tan1anho;
d) e11dereço, co11te1ído e posição de MP - em toda organização composta de vários elementos, que podem
ser identificados e localizados individualmente para, com eles, ser realizado algum tipo de atividade, há
necessidade de se estabelecer um tipo q ualquer de identificação para cada elemento e associar a esta
identificação um código (ou coisa parecida) que defina sua localização dentro da o rganização, de modo
que cada elemento possa ser facilmente identificado e localizado. Este é o conceito, já exposto, de en-
dereço, conteúdo ou posição de MP (vale, aliás, para qualquer tipo de memória) (ver item 4.l). A Fig.
4.7 mostra um exemplo do significado de endereço e conteúdo de uma memória e sua óbvia difere nça;
e) 1111idade de armaz e11a111e11to - consiste no grupo de bits que é inequivocamente identificado e localiza-
do por um endereço. A MP é, então, organizada em unidades de armazenamento, que denominamos,
neste texto, células, cada uma possuindo um número de identificação - seu endereço - e contendo em
seu interior uma quantidade M de bits, que se constitui na informação propriamente dita (pode ser uma
instrução ou parte dela, pode ser um dado ou parte dele). Na vida real, o valor de M, ou seja, a largura
de cada célula de memória RAM (MP), é de 8 bits ou 1 byte . Por essa razão, é comum simplificar-se
a nomenclatu ra da capacidade das MP (RAM) e, cm vez de se expressar a capacidade de uma dada
m emória por "64M células de I byte cada uma", simplifica-se para "64 Mbytcs" o u 64MB.
Teoricamente, a unidade de armazenamento da MP deveria ser a palavra, isco é, palavra e célula
deveriam ser especificadas com o m esmo tamanho, o q ue não acontece, e os fabricantes têm preferido
organizar as M P com células de 1 byte (8 bits} de tamanho, com palavras de 16, 32 e até 64 bits. Há
au tores que definem célula como o local destinado a armazenar 1 bit e, nesse caso, um grupo de células
(ou de bits) é acessado por um mero endereço;
f) unidade de trauiferêucia - para a MP, consiste na quantidade de bits q ue é transferida da memória em
u ma operação de leitura ou transferida para a memória em uma operação de escrita. Também, teo1ica-
mente, deveria ser igual à palavra e à unidade de armazenamento, porém, em face do aumento da ve-
locidade e da taxa de transferência dos barramentos e aperfeiçoamento da tecnologia das memórias R AM,
os sistemas vêm usando unidades de transferência diferentes não só da largura de uma célula, mas tam-
bém da palavra.
Por exemplo, os processadores atuais (excluídos os de 64 bits), embora sendo construídos com palavras de
32 bits, est.io podendo transferir 64 bits (8 células) ou até 128 bits (16 células) de cada vez entre processador
e MP, devido ao barramento de dados de 64 ou 128 bits.

MP

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

Posição da MP com endereço igual a


::::: 257A tem armazenada a informação
cujo valor é 1F.

1
Figura 4.7 Significado dos valores de endereço e conteúdo na MP.
SDêW

Memórin PrfrldptJI I 97

A memória principal de qualquer si.sttema de oompmação é organizada como um cOl'yunto de ' cHu1a
seqilencialmente dispo 1a a partir da célula de endereço igual .a O até a ú1tima de endereç igual ,a N - 1- con-
fonne mo.m.-id n.:i Fig. 4.8.
Cada célnfa é constmída. para. annaze:nar u:m grupo de M bits, que representa a i11formaçio propriamente dit-a
e que é manipul}do em conjunto (como se fo. e uma única unidade) cm uma operação de leitura u de e crir:L
Com o de envol v:imento da tecnologia de micro detrônica e de semkondutores, a. antiga memória de
núdeo magnético foram substituídas, por vol~ d 1970, por dispo iti os voláteis de C:ir do. ólido denomina-
da!> genericameme RAM (memórias de ace o ai atório) e, no ca o da MP, por um modelo de tecnologia
eh.amado O RAM - memórias RAM dinamicas ou dynamic random access wemory. As :iet 1ória de semicm -
duton:!> p s uem várias c,u ctel's.ticas intel'essantes que as toma.m extJ",e mameute vantajosas para se constituí-
rem na ba e d: MP, qu i ~:J<im:
• são memória. d a e. o ale, tório {RAM nmdom am:ss mcmory,), ou eja., o ac o a cada célula d,e pende
apenas de cu endcn:ço ,· I'.lâo da posição do acesso anterior, como ac,ontec·a nas memórias d · acesso
s.eqüencial~
• ocupam ndaüvam •nt pouco espaço, podendo muit.os bits serem amiazenaidos em uma pa tilha (r::l1ip)
pois a espessura dos. componente (capacjtor e tt.ansi tor) é e.xtrem..amenre pequena da ordem de mí-
crons· e
• po s.u m tempo de ace s.o pequeno (da ordem de nanes egundo ).
Ess~.ncialmentc, o e!.pàÇo de àrmaze11a1-ue11to da t 11er 11ÓI ·a principal (gen rica 1e11tt: cha nada de RAM} é
um grupo d célufas, ada uma pod,e ndo armazenar um. grupo de M bi . E ta é a memória de trabalho do
proce sador , portanto, deve permitir o armazenamento de instruções e dados (operação de escrita) e tam-
bém a leitura de sa m~mas :instrnções e dadm. Chan a- c a isso uma memória do cipo Lei.rum e E crita (Readi
WrUe) . Este ti:po de memória tem urna particularidade de-s antajo a que é o fato de s.er volãtil i to ê, pc-rd ·
toda a infonnaç-âo nda armazenada se for int~rrompida a nergia létrica que a alimenta.
No entanto todo ístema p:redsa, para iniciar seu füncionamenro regular- qLte um gnipo de instruções (não
· ào programas grandes) esreja pem1anenremente ami.azenado na MP de modo que, aco ]igarmos o compuc dor,
esse progrn.m.a ü-ricie amomaticament o funcionamento dô istcma~ no ca o d PCs, c-ssc programa chama-se

MP
Endereço O .- Mbils
Endereço 1
- M biis
Endereço 2 .~
M bits
Enclereço 3

Ncilulas
-

~ndereço N-2 Tooas as ,cékllfls !êm a.


mesma quantidade M de biis
Endereço N- 1

Bit 1 Bit 2 0itM·1


Figura 4.8 Organizaçãô básica da MiP.,
Sn$W

98 / Memórin Prinâpal

POST - Po111er 011 &!f Test. Essas insm,ções vêm jumo com o hardware e não devem sofrer um acidental apa-
gamento se, inadvertidamente. un1 progrania do usuário tentar gravar em cima delas . .Elas devem estar, portanto,
em um tipo de RAM que só pennica leinira por parte dos programas comuns. A gravação (esc1ita) nelas deve ser
realizada eventualinente, e não através de processos comuns. Essas memórias chamam-se memórias someme de
leitura (ROM - Read 011/y Memory) . O icem 4.3.5 descreve outros aspcccos relativos às memó,ias RAM e ROM.
Observação: O mercado e a maioria dos textos encomrados sobre o assunto consideram a MP constimída de duas
partes: memória RAM, apenas a memória volátil que usamos para annazenar programas e dados em execução (os
tradicionais pentes de memória DIMM), e memória ROM, a parte que comém os programas de irúcialização e
ourros de controle. No entanto, há opinião que considera a MP como um todo como memória RAM, separada
cm duas partes, uma Readi Hliite Ocimra e escrita} volátil etc. (a memória aqui mencionada como ll.AM) e outra
somente para leitura, ou R.OM. Ou seja, por essa opinião as memó1ias ROM, tendo acesso aleatório e tempo fixo
de acesso a qualquer célula, são também RAM, embora com características de fàb,icação (para não serem voláteis)
diferemes do outro tipo (lein,ra/ escrica). Porém, essa opinião não é muito difündida e partilhada pela maioria e,
assim, na prática devemos considerar a primeira versão: memória p1incipal constituída de RAM e ROM.
No icem 4.3.5 trataremos um pouco mais dos tipos RAM e ROM, bem como no Apêndice D, quando
serão abordados mais detalhes de fabricação e funcionamento da memória RAM.

4.3.2 Considerações sobre a Organização da Memória Principal


Embora a organização estrutural das men1órias de semicondurorc-s, atualmente adotadas como MP, seja
simples do ponto de vista conceituai - grupo de N células com M bits cada-, uma análise mais detalhada dessa
mesma org.irúzaçào pemúte relacionar algumas observações interessantes que têm servido de base para modelos
diferentes ou discussões técnicas.
a) A q11a11tidade de bits de 111110 cé/11/a (valor de M na Fig. 4.8)
Já 1nencionamos que cada célula é constituída de um conjunto de circuitos eletrônicos, baseados cm semi-
condutore:s, que pennitem o armazenamento de valores Oou t , os quajs representam um dado ou uma instrnção.
A quantidade de bits que pode ser armazenada em cada célula é um requisito definido pelo fabricante. Uma
célula contendo M bits permite o annazenamento de 2M combinações de valores. uma de cada vez, é claro. A
Fig. 4.9 mostra alguns exemplos de MP com diferences tamanhos de células.
Há bastante tempo todo o mercado vem adotando uma largura (tamanho) padrão de célula de 8 bits - 1
byte, mas no passado vários tamanhos foram utilizados por d iferences fabricantes.
b) A relação endereço X co11terído de 11111a célula

MP1 MP2 MP3

EndO 12 bits EndO 16 bits EndO Sbits

End 1 12 bits End 1 16 bits End 1 8bits

End 254 l----'-'2=bit"s'----l End 254 l ----1cc6..cb,'lts'---- i End 254 f---"8-"bit"''•'-- - i


End255,..__ _c.12=bits=----' End255 ...__ _ _1..c6..cb~~' - - - ~ End 255 '---"ª-"bi"'
'I S ' - --'

(a) (b) (e)

Figura 4.9 Exemplos de MP com mesma quantidade de células (256), porém com largura de célula dife-
rente.
SDêW
Mem6.ria Principal l 99

MP1 MP2
EndOOOO EndlOOOOOO End 000000001
Encl 0001 Enc1100000,1 En.d 00000001
End0002

End 1AC5 BS Enc132A57B C3 EndA315COOO 24

i:= ~ :::; =
End FfFE L__j EndFFFFPE L__J Enel FFFFFFFE L__J
End FFFF ~ EndFFFFFF~ End FFFFFFff ~
(a} (b) (e)

F"guta 4,.10 Exemplo de P ,c om mesma lar~ra do dh.1b, porém com quantida,de de êélu1as. diiferenee.

A Fig. 4.9 mo tra exemplos d memória com diferentes tan anho de C(;lub. porém com a rne. ma qu:mti-
dad1: de célul.is (no. ex mplos há três organizações de MP cada uma com 256 ctilula ), ender,~ç-ad.:i d · 0 10 a
255 111 ou d,e 0016 a F · 16 ou aind, de- O O 00002 a 1'1 1 '] 11 '11 ~-
A Fig. 4.1 moma outros exemplos de organização de MP, desta vez com memória de 111;;m10 tamanho
dt: célufa, porém com quantidades d-ifon.:nt,ç de célula~.
A comparação entre os exi:mplo d;'I Figs. 4.9 e 4. 10 indica qu os alares de endereço e conteúdo de célula
embo1-a as.soc'ados ou si:ja, o ndereço [A 5 está associado ao conteúdo BS no e ·emplo d:l Fjg. 4.10 (a), têm
ori.gen diversa , Em outra pafavras, a quantidade de bi do núm roque re:pres nc;i um d.e tetmin.ado ende-
reço, p. ex., 16 bits do nfonero IACS no exemplo da Fig. 4.10 (a) define a quantidade máxima de end ·rcço
que urna MP pod · ter, bem corfü) o s,cu espaço d,c endereçamento. o e. emplo cita.do, es. e paço de
ndci-eçami:nco ôu capacid d,c mãxim d memória(;:
64K c-élulas. porque 2 1'' = 2 6 • 2 111 = 64 · K ôu 64K
Como toda as célul. têm o tamanho de 1 b re a qu:lntid.ade de célula: é sempre ig11al à quantidade d
bytes.

4.3.3 Operações do Processador com a Memó:d a P rincipal


Já :lbemos conforme anteriorm nte e ·plicado que é poss.í eJ realizar dua op raçõ s com a memória prin-
cipal (pode-. e e. tender essa afim:iaçâo para qualquer tipo de dispos:itivo de .armazenan1ento embora e uf>em
[ omes dif! rentes mo ltro dipo·it'vos):
• e. crita (write) - armaz nar ir formaçÕt!s na memória·
• leitura (muf) - recuperar u1111a jnformação armazenada na memó1·ia.
abemo t..unb 'm que a operação de leitura não destrói o cont údo da m mória, ela a.p ena providenóa a
transfer,ê nc·a de uma cópi, do qu , e tí armaz.et ado enquanto a i 1fom1.açào de ejada continua armazenada.
omente a operação d escrita é d .tmtiva.
Vamos de crever com um pouco mais de detalhe, como se de enrola conceitualmente uma opernç.ão de
l iturn e mua d es.crita na MP de um si t ma d co m.p u mçâo,
Para ramo há ncc Si;idade d . e .apr enrnr o el m mo. que co-mpô ma esr:rnmrn Proce sado:r/MP e que
lo uti]i2~1do na,q uela opera.çõe (ver fjgs. 4 .1 1 e 4.1 2) a aber:
- barr;im~ntos (de- dado~BD dt: endcn.:ço~ - BE 1;; de contro]1; - BC);
- regi.sua.dores de dado e , ndereços d, memória.·
- controlador da memória,
Snõw
100 / Mcmdri.11 Prirzcip·al

UCP MP

REM

Barramento de OOlll:role

Sarramemto, d@ endueços

B-arramenlo de dados

Figura 4.11 Estrurura UCP/MP e a utiilização de barramento paira comunicação ,e ntre eles.

A Fig. 4. 12 mostra algun do componentes citado (exceto o registradores, 1uinúsculos di positivos cxi -
tente dentro do processador), como os barramentos e o controlador de memória.
Bamnncnto de d«Jo•s - (ver ·tem 2.1) - intediga o RDM {M:UR) à MP, para tramferência de infor :nações
encre MP e preces ador ( eja1n insm1ções ou dado }. É bidireci(lnal, ist-0 é ora o, sinai percorrem o barra-
mento do processador para a MP (oper.,ção de crim) ora percorrem o caminho inverso (operação de lejtma);
es.te elemento já foj momado no Cap. 2.
Na Fig. 4.12 pode ser visto o barramento que intediga os conectol'es da MP (RAM) ao controlador e de te
.i.o proce.. ador. Trarn- e do ban;'lmcnto c-onh ·ciclo como b.i.n'"3mcnrn do. irn:m..i. (s,,s1em b11s) ou FSB lfro,rt side
lm.s), já mostrado no Cap. 2. Uma parte do fios ' usada para trans.Íi r'ncia de dados, o BD.
Registrad,or de Dados da Me,nória (RDM), Mcmory Bziffer Rcgister (MBR) - regi trndor que ar111.i.2 ·tia te111-
porariamen~ a informação (conteúdo cl • uma ou 111ais célula ) que e tá end,o tran:;fü1-ida da MP pa1;'1 o pro-
c·e f>:ador (em uma oper. çào de leitura) ou do p1·oce:; ador para a MP (c::m uma opc1-ação de escrita)_ Em 'SegL11-
da a referida info mação é reencaminhada para outro dispo itivo do processador para plloce amento ou para
tu1t1a célula da MP conform. o tipo da operaçiiio d,e tt:msferência. Permite armazenar a mesma quantidade de
bit do barramento de dad.o . .
Registr.ad.or de EuJereços da Me,nória (REM), 1vlemory• Address Rtgistcr (MAR) - regi trador que armaz na
temporariamente o endereço de acesso a uma posição de memória, ao e iniciar uma operação de leitura ou
de escrita. Em seguida, o referido endereço é encaminhado à área de comrnk da MP para decod1Ílcaçâo e
loca]ização da célula de ejada. >e:rmite armazenar a mesma quJ.ntidadc- de bits. do barramento de endereços.
Barramento ,de erulerefOS - interliga. o REM (MAR) à MP para n,ansfi rên ·ia dos bit! que r presencam um
det rm.i 1 do endereço. E uniidir~cional, vi:to que !.QnH:.mte o processador a.dona a MP paira a. realiz.11çl.o de ope-
rações de leitur ou es.cri.ta. PO'S$Ui tanco fios (olll linha. d crarunissàio) quanto ão os bits que representam o
va]ol' de um endereço. É part do barram1:nt<J do sistema. !llO!.tra.do na F:ig. 4.12 e já descrito no Cap. 2.
Barrarue,tt.o de co·n~role - rnnjumo de fios condmores que imerliga o proce sador (unidade de controle) à
MP para pasiagcm de :sinai de controle durante uma opemção de leitura ou escrita. É bidirecional, porque o
Sn$W

Mem6ria Principal / 101

1!!11!!1 l!!!I

Processador
11 11

Controlador
1 Chip~! 1 ~ dememória
............
1111111111111
, Chi~I

1 RAM ......................
.................................
1 (MP)
......,...........................
.................................
1 ..............................
Figura 4.12 Exemplo de placa-mãe com componentes do siste1na de memória.

processador pode enviar sinais de controle para a MP, como sinal indicador de que a operação é de leitura
(R EAD) ou de escrita (WRlTE}, e a MP pode enviar sinais do tipo WAIT {para o processador se manter
aguardando o término de uma operação), além de uma infinidade de ou tros sinais, como os do relógio etc.
Esse barramento também já foi descrito no Cap. 2.
Co11trolador da Memória - tem por função gerar os sinais necessários para controlar o processo de leitura ou
de escrita, além de interligar a memória aos demais componentes do sistema de computação. É o controlador
que possui a lógica requerida para receber e interpretar os sinais de controle do processador e responder a ele
nas operações de leitura e escrita; além disso, decodifica o endereço colocado no barramento de endereços,
localizando a célula desejada e liberando os bits para o barramento de dados.
O contro lador da memória fuz parte de um chip conhecido como dúpsct, localizado na placa- mãe (ver Fig.
4.12), cuj as demais funções serão descritas no Cap. 6 e no Apêndice D.
Para simplificar a descrição dos procedimentos de leitura/ escrita serão omitidos alguns detalhes dos sistemas
reais, como o fato de o endereçamento não ser realizado diretamente a cada célula, e sim por um método de
o rbranizar a memória cm linhas e colunas (esse método é detalhadamente apresentado no Apêndice D), assim
como o uso de dispositivos auxiliares no processo de leitura/escrita: interface de dados do barramento,
decodificadorcs de linhas e colunas e sinais de tempo, como CAS e RAS.
O autor considera que para o entendimento básico do leitor sobre o processo de leitura/escrira é essencial
simplificar a quantidade de componentes e a descrição, sem pt!rder a essência conceituai do processo. Para os
leitores interess.1dos no detalhe e na realidade do funcionamento das memórias, sugere- se a leitura do Apên-
d ice D.
Tambén1com o propósito de simplificar a descrição de procedimentos e operações realizadas intemamcnte em
um sistema de computação, vamos adotar uma convenção geneticamente conhecida como Linguagem de Trans-
ferência entre Rcgistradorcs (LTR), tradução do tcnno R~'l/ister Tra11efer La,,eu~~c. Princípios básicos da LTR:
a) Caracteres alfanuméricos significam abreviaturas de nomes de registrndores ou posições de 1nemória.
Ex .: R.EM, MP.
b) Parênceses indicam concelldo. no caso de regiscradores, ou que o valor encre parênteses é um endereço
de MP.
SU$W

102 / .Mtmdria Principal

c) Uma seta indica atribuição, isto é, transferência de conteúdo de um registrador para outro ou para a
MP ou vice-versa.
Por exemplo:
(REM) {CI) - significa que o conteúdo do registrador cujo nome é CI é transferido (uma cópia)
para o registrador REM.
(ROM) (MP{REM)) - significa que o conteúdo da célula da MP cujo endereço está no REM é
transferido para o ROM.

4.3.3.1 Operação de Leit u ra (Ver Fig. 4.13)


A realização de uma operação de leitura é efetivada através da finalização de algumas operações menores
(microoperações), cada uma consistindo em uma etapa ou passo individualmente bem definido. O tempo gasto
para realização de todas estas etapas caracteriza o te111pc> de atesso (ver item 4.2). O intervalo de tempo decorrido
entre duas operações consecutivas (leitura-leitura, leitura-escrita ou escrita-leitura) denomina-se ciclo de 111e1116ria.
A Fig. 4.13 mostra um exemplo de operação de leitura de um dado armazenado no endereço 1324 da MP
para o processador (o valor do dado é SC).
Os passos que descrevem a referida operação de leitura são:
1) REM t-- de o utro rcgistrador do processador (ver Cap. 6) .
1a) O endereço é colocado no barramenco de endereços.
2) Sinal de leitura no barramento de concrole.

UCP
End 0000

Outro reg.

REM uc End 1324 se

1324

End FFFF
Barramento de contJole

Barramento de encler

se
Barramento de dados
1 · (REM) -+-(ovlro reg,)
1a · O endereço é colocado no barramento de endereços
2 • Sinal de leitura no barramento de oontrole (deoodficação)
3 · (RDM)-+-(MP (REM))
4 · (outro "'9-l -+-(ADM)

Figura 4. 13 Exemplo de operação de leitura.


Sn$W

Memória Pn'ntipal / 103

2a) Decodificação do endereço e localização da célula (controlador de memória).


3) ROM f- MP(REM) pelo barramento de dados.
4) Para outro registrador do processador f- RDM .
No primeiro passo, a múdade de Controle, UC do processador (a UC será descrita no Cap. 6) inicia a
operação de leitura através da transferência do endereço 1324 de um de seus registradores específicos {pode
ser, por exemplo, o CI, a ser descrito no Cap. 6) para o REM e coloca o sinal de leitura (READ) no barra-
mento de controle para indicar aos circuitos de controle da MP o que fàzer em seguida.
A MP dccodifica o endereço recebido (ver Apêndice D) e transfere seu conteúdo para o ROM atrnvés do
barramento de dados. Do RDM, então, a informação desejada é transferida para o elemento do processador
destinatário final (normalmente é um dos registradorcs do próprio processador).
A realização completa dos quatro passos desciitos gasta um tempo de acesso, mas não garante que a MP
possa realizar logo c.!111 seguida uma nova operação. Estar pronta o u não para realizar uma nova operação de-
pende do tipo de memória RAM utilizada, como veremos no item 4.3.5 {também no Apêndice 0). As me-
mórias estáticas (SRAM) pennitem que outra operação (de leitura o u escrita) seja imediatamente realizada
após a conclusão de uma operação de leicu ra/escrita, enquamo memórias dinâmicas (ORAM), não.
Observação: Como já mencionado anteriormeme, o processo foi simplificado para mostrar apenas os seus
dcmentos conceituais. não considerando, por exemplo. itens de tempo (sinais de relógio, cm diagramas de
tempo), nem a decodificaçào de endereços em duas etapas (linhas e colunas), deixando esses detalhes reais de
funcionamc::nto das memórias SRAM o u ORAM para o Apêndice D.

4 .3.3.2 Operação de Escrita (Ver Fig. 4.1 4 )


A realização de uma operação de esetita segue procedimento semelhante ao da operação de leitura. exceto,
é daro, pelo sencido da transferência, que é inverso, isco é, do processador para a MP.
A Fig. -1.14 mostra um exemplo de operação de escrita de um dado, de valor igual a f7, do process.1dor
para a MP, a ser armazenado no endereço 21C8.
Os passos que descrevem a referida operação são:
1) (!\EM) f- (outro registrador) - o Processador coloca endereço no REM
la) O endereço é colocado no barramento de endereços
2) (ROM) f- (outro registrador) - o Processador coloca no ROM o dado a ser
transferido
3) Sinal de escrita - o Processador aciona o sinal WRITE pelo
barramento de controle
4) (MP(REM)) f- (ROM) - o dado é transferido para a célula de
memória pelo barramento de dados.
Nos primeiros passos a UC coloca o endereço desejado no REM e o dado a ser transferido no ROM . O
endereço é colocado no barramento de e ndereços, o dado no barramento de dados e o sinal de escrita ( Write)
é acionado no barramento de controle.
Como resultado da dccodificação do endereço pelos dispositivos de controle da memória, o valor F7 é
colocado na célula desejada, de endereço 21 C8.
Confo1111e explicado para a operação de leitura, a rt>alizaçào dos passos necessários à eferivaçào de uma
operação de escrita gasta um tempo de acesso, e a MP pode ou não estar preparada para imediatamente rea-
lizar nova operação.
Observação: A d<!sc1ição dos passos relativos à realização de uma operação de leitura o u de .:scrita não
teve o propósito de ser precisa no tempo e na sincronização absolutamente necessários. se:: fosse desejada uma
expJicação mais profunda a respeito do mecanismo de sincronização de operdçÕcs cm um computador. No
SDêW

104 / M ·,mí,i,1 Pri11cip11f

UC? MP
ndOODO

FIOM End:2 C8 F7

F7

BsiramenlO de oontróli!

O ,..alor F:l' é- e~ilo rlQ itridereç,o 21-08 (valor 11n,lgo • 3A)

entanto, par~, quem estiver jnte1· sado 11e e ni 1 de detalhe o Apêndice D apresenta uma descrição mais.
precis.1 da$ referida operações.

4.3 .4 Capacidade de M P - Cálculos


Conforme já expos.w neste capitulo, a memória principal (MP) qm: o mercado conhece como memória
RAM ou simpk·smenre RAM, é organizada em. conjuntos d célufa cada uma podendo armaz- nar uma certa
quantidade de bits - a informação cm i, ·cja um, instrução (ou pa,te dela) ou um da.do (ou parte dele).
Na realidade, embora s.cja m:li~. impl-e imaginarmo..~ a MP como uma seqUêncü contJ.m1a de cé]ulas, de de
a célula de ndereço O (zero) atê a última cé]ula na prática essa m ·móri~ · $ãO org, nizadi fi ican ente de
forma diferent~ . Na maioria dela são con tmidas. como matrizes de bits (divididas cm linha_ e colunas)., algu-
mas vez.es matrizes quadradas, mesmo número de fü1ha. e de col11.1na e outra v ·.z:e:s r ·tangular om m,·n
coJuna que linhas (ver Apêndice D),
Considerando que instruçõe e dados pred :.un estar armazenados na MP para q ue o pr,ogr:;ima po. a er
executado pelo proce s.ador,7 e considerando afoda que é posc;ível, e ba tante de ejáivel qu vários programa.
po am ·'r e ·cutado conco-rrcnccn1c te pelo proce· ador, é importante conceituar o que eja capacidade de
uma memória e como podemos cakl~lar e entend r aumentos de capacidade e outr, s informações conccmen-
(êt;S. N t irem o enfoque m.üor do a ~unto se refere aos cálculo de capacidade em memórias RAM (MP).
Capacidadc de mcn:1ória n:fcre-:sc: genericamente à quantidade de informaçõe que nela podem er arma-
zenada m un instante de tc1npo. Tratando- e de um computador, cuja Lm:idade bá ica de represeutaçào de

'Den"-5<' co11!.irk•r.1r qll~. :Ullllm~n• •, l1' 1i:c11i 111ilii.1ib'i 1'~1':'1 g~.-re-,ici:i,in~nm de mc111L'nia de:cc'mlimm quc ap.:11:is u111:i. pcme do p~na ~ 51:llS dJdoi
pre•np111 ~t:ar :min:a~en:i.du"' ,u MI' ,lu ,m: ~ c:~e.:uç'.lo ti r.:(crido pro,;.r,u11a11. Esrn p.1rce 1<~111 diver:sai OC'lmmi113çoo ~gina. p. e:,;.),
Sn$W

t\tltmória Principal / 105

informação é o bit, pode-se imaginar este elemento como unidade de medida de capacidade. Neste caso,
poderia expressar a capacidade de uma memória com valores do tipo:
512 bits 16.384 bits 8.388.608 bits
À medida que os valores crescem, torna-se mais complicado e pouco prático indicar o valor pela sua com-
pleia quantidade de algarismos. No item 2.2.1 foi mostrado que é possível simplificar esta informação através
do emprego de unidades como o K (1K = 2'" = 1024). o M-mega (1 M = 2'' = 1.048.576), o G-giga (1 G
= 2,o = 1.073.741.824), o T-tera (lT = 2"' = l.099.511.627.776) e o P-peta (IP= 2'' = 1024 'D,
Desse modo, os mesmos valores antes indicados com codos os seus algarismos agora podem ser assim sim-
plificados:
512 bic~ 16K bits 8M bits
Mas, mesmo simplificando a apresentação da infonnaçào continua-se, neste caso, a indicar a capacidade da
memória pela quantidade de bits. No entanto, esta não é a melhor maneira de quantificar a referida capacidade.
Na realidade, sabemos que não é possível armazenar dois ou mais valores cm uma célula de incmória, ou
seja, em um único endereço somente poderá ser localizado e identificado um valor (um dado) . Isto porque se
fossem armazenados dois valores em um ende,·eço (uma célula), o sistema não saberia identificar qual dos dois
seria o desejado em uma certa operação de leitura ou escrita (precisar-se-ia. então. de uma identificação a mais
- um endereço dentro de um endereço), com codos os óbvios inconvenientes.
Desta fonna, o mais importante elemento para determinar a capacidade de uma memória é a quantidade de
endereços que poderemos criar e manipular naquela memória, visco que, na melhor das hipóteses, pode-se
a1mazenar um dado em cada endereço. Na realidade, o mais comum, principahnente quando se ma1t.ipulam
valores numéricos, é um dado ser armazenado ocupando várias céluJas e conseqüenternence, vários endere-
1

ços. Por exemplo, se a MP de um certo sistema estiver organizada com células de 8 bits de tamanho e os dados
forem defi nidos com 32 bits, enrào um dado sera armazenado cm quatro células (a maneira pela qual o sistema
recebe a informação de endereço daquele dado não é discutida aqui).
Como não se podem an11azcnar dois nún1cros no mesmo endereço (mas um número pode até ocupar mais
de um e ndereço), a quantidade de endereços tem mais sentido de individualidade de infom,açào do que qual-
quer outra unidade.
Na prática, então, usa-se a quantidade de células para representar a capacidade da memória e, como no
111ercado infonnaJde compra, venda, assistência técnica etc. da maioria dos computadores a célula de memó-
ria principal (que o mercado denonúna informalmente RAM) tem um tamanho de 8 bits - 1 byte -, usa-se
mesmo é a quantidade de bytes (e muitos abreviam a informação colocando apenas o valor, sem a unidade, de
rào comum que é o uso de bytes). Em outras palavras, é normal procurar-se memória para compra informan-
do ao vendedor: "preciso de 16 megas", o que significa, na realidade: preciso de memória com 16 megacélulas
de 1 byte cada uma, isro é, preciso de ·J6 mcgabytes de memória.
Ainda mais:
a) o bit, apesar de ser a unidade elementar de representação de infonnaçào nos computadores, individu-
almente não representa nenhuma informação útil (com exceção do valor de uma variável lógica), pois
somente pode assumir dois valores, O ou 1~
b) para representar uma informação útil, seriam necessários mais bits (em grupo) para se poder codificar
vários elementos de um conjunto qualquer. Por exemplo, a representação de caracteres maiúsculos,
minúsculos, séries de pontuação, gráficos etc. requer, em média, 7 ou 8 bits, de modo a se criar um
conjunto de 128 ou 256 códigos, conforme já mencionamos no início deste capírulo;
c) os tempos de transferência de infonnações entre processador e MP (tempo de acesso) são decorrentes
de vários fatores (tipo de circuitos para constn1çào da memória, d istância fisica entre os dcmcntos,
quantidade de etapas durante as operações de transferência, duração do pulso do relógio da procc~ador
etc. - ver Cap. 6 e Apêndice D), dos q uais o menos importante é a quantidade de bits. Deve ser escla-
recido que estamos falando de um único acesso e não de vários acessos cm conjunto, pois, neste último
caso, o desempenho do sistema aumenta sensivelmente se o barr.uncnto de dados for maior.
Sn$W

106 / M~món·n Priutipal

U1m outra possível unidade de medida de capacidade de memória seria a palavra. Expressar uma capacida-
de assim:
16K palavras é mais significativo do que:
16K bytes
visto q ue, neste último caso, não sabemos ao certo quantas palavras há na ral memória (quanros dados ou
instruções podem ser annazenados na memória). enquanto, no pri1nciro exemplo, a palavra deve indkar o
tamanho de um dado ou de uma instrução (na prática, isto também não é verdade, o que complica muitas
vezes os cálculos de capacidade).
Não há uma padro ni zação para indicar valores de capacidade de memó1ia. embora seja mais comum se usar
"quantidade de bytesn ern vez de, p. ex., "quantidade de palavras". Para computadores construídos com pro-
pósitos comerciais usa-se o byte como unidade básica de armazenamento (embora isto não seja um padrão
imutável), enquanto computadores ditos científicos, mais habilitados a manipuJar números (como os super-
computadores), costumam organizar sua MP em palavras.
No entanto, a título de esclarecimento e para acostumar o leitor co1n os jargões da área, vamos apresentar
a seguir alguns exemplos de expressões para representar capacidade de memória.
2 Kbytes = 2 X 2'" = 2048 bytes.
384K células = 384 X 2' 0 = 393.216 células
384K palavras= 393.216 palavras
2 Mbytes = 2 X 2'" = 2.097.152 bytes.

4.3.4.1 Cálcu los com Capaci dade da MP (RAM)


A memória principal (RAM) é um conjunto de N células, cada uma armazenando um valor com M bits.
Então, a quantidade de endereços contida no espaço endereçável da referida RAM é também igual a N, visto
que a cada conteúdo de célula está associado um número, que é o seu endereço.
O valor de N represenra a capacidade da memória, através da quantidade de células ou de endereços. O
valor de M indica a quantidade de bits que podem ser a1111azenados em uma célula individual (que é a infor-
mação propriamente dita).
Como um bit representa apenas um entre dois valores (base binária), então podemos concluir que:
a) pode-se armazena,· em cada célula um valor entre O e 2" - 1, porém um de cada vez. São 2" combi-
nações possíveis.
Por exemplo, se M = 8 bits, temos: 2' = 256.
Seriam armazenados valores entre:
00000000(0,n o u 0 16 ) e 11111111 (255,o ou FF,.).
b) a MP tendo N endereços e sendo E = quantidade de bits dos números que representam cada um dos
N endereços, então:
N = 2•.
Por exemplo, se N = 512 (porque a MP tem 512 células), então, 512 = 2•, e E= 9, pois 2'' = 512.
c) o total de bits que podem ser armazenados na referida MP é denonúnado T, sendo:
T=NXM=2" XM
No exemplo acima, onde a MP (R AM) é um espaço seqüencial de 512 células, cada uma com 8 bits de
tamanho, teremos:
N (total de células) = 512 células; M (tamanho de cada célula)= 8 bits; E (tamanho em bits do número
que representa cada endereço) = 9 bits; T (total de bits da memó,;a) = 4096 bits
Sn$W

Mtmória Principal / 107

N = 2• ; 512 = 2• donde E = 9.
T = N X M = 512 X 8 = 4096 bits= 4 X 1024 (K) bits ou 4K bits.
Também se poderia obter o valo r 4K utilizando potenciação:
512 X 8 = 2'' X 2' = 2 12 = 22 X 2111 = 4K, pois 2 2 = 4 e 2 "' = K.
A Fig. 4.15 mostra exemplos de configurações de MP (RAM) com diferentes valores de N, M, E e T.

MP 1 MP2 MP3
End O End O 1 End o ,_,.....,__,___,
End 1 End 1 1 End 1
End2 End 2 End 2 H H-+-1
End3 End 3 End 3 HH-+-1
End4
EndS ,_,_
End 4
End 5
,_ ,_
- ... ·- '-
,_ End 4
End S HH-1---1
End 6 End 6 End 6 HH-1---1
End7 1 End 7 End 7 HH-1---1
End8 End 8 ,_,....._,___,
_ _ _ __ 16bits _ _ _ _ __
End9 .. End 9 ,_,....._,___,
c.l<la
End 10 End 10 ,_,.....,__,___,
End 11 8 células x 16 bfts = 128 bits
End 11 L.J'---'-'--'
End 12 4 bits
End 13 ~ cêlula-te
End 14
12 céhAas x 4 bits • 48 bits
End 15
8bits
,._célufa_.,.

16 cehlas x 8 bits= 12a bits (b) (e)


(a)

Figura 4.15 Exemplos de organização de MP.

Exemplo 4. 1
Uma memória RAM (MP) tem um espaço máximo de endereçamento de 2K. Cada célula pode arma-
zenar 16 bits. Q ual o valo r total de bits que podem ser armazenados nesta memória e qual o tamanho de
cada endereço?

Solução
Se o espaço máximo e ndereçável é 2K, então: N = 2K (a quantidade máxima de células é 2K).
1 célu la = ·16 bits. Então: M = 16 bits (tamanho em bits de cada célula).
Sendo N = 2• , então N = 2K = 2 X 1024, e convertendo em potências de 2, temos: 2' X 2 = 2 1' 1 11 •

Se N = 2• e N = 2 então: 2• = 2 eE = 11.
11
,
11

Se E = quantidade de bit, de cada número que expressa um endereço, e sendo E = 11, então os ende-
reços de cada célula são números que têm 11 bits.
T = N X M =2 11
X 16 =2 11
X 2' =2 15
Convertendo para múltiplo de K = 2 "', teremos: 2s X 2 "'
= 32K.
Respostas: T otal de bits da MP: 32K (T)
Tamanho de cada endereço: 11 bits (E)
Sn$W

108 / i\llem6rin Priucipal

Exemplo 4.2
Uma memória RAM (MP) é fabricada com a possibilidade de armazenar um máximo de 2561< bits.
Cada célula pode armazenar 8 bits. Q ual é o tamanho de cada endereço e qual é o torai de células que
podem ser utilizadas naquela RAM?

Solução
Total de bits = T = 256K. Utilizando potenciação, temos: 256K = 2$ X 2 10 = 2" .
U ma célula = 8 bits Emào: M (tamanho de cada célula) = 8 = 2-'.
Sendo T = N X M, então: N (quantidade de células) = T /M = 256K / 8 = 32K.
Pode-se o bter o mesmo resulrado através de potenciação: 256K / 8 = 2'" / 23 = 2" = 2; X 2'º = 32K.
Se N = 215 e se sabemos q ue N = 2• então: E= 15
Respostas: Tamanho de cada endereço: 15 bits (E)
Tot<1l de células: 32K (N)

Nesse instante podemos passar a considerar também os elementos básicos do processo de transferência de
dados entre M P e processador: o REM, R.DM, barramento de dados e barramento de endereços. Além disso,
devem ser efetuadas algumas considerações sobre os tamanhos de cada um desses elementos, o que pennitirá
realizar os cálculos de capacidade desejados.
Como o DO - barramento de dados- intt:rliga o ROM e a memória R.AM (MP), então ambos possuem
o mesmo ramanho e m bits. O mesmo acontece entre o BE - barramento de endereços e o R EM .
Como o R EM e o BE têm por Função annazenar o e ndereço de acesso a uma célula da MP, então seus
tamanhos devem corresponder à quantidade de bits de cada endt:reço. Em outras palavras, o tamanho, em
bits, do J)..EM e do UE é igual ao valo r de E na equação N = 2".
Já o R OM deve ter um tamanho correspondente à palavra do sistema, visto que deve transfe1ir os bi ts de
uma palavra entre o processador e a MP (ou vice-versa, dependendo da operação ser de escrita ou de leitura) .
Na prática, não há um padrão de tamanho de RDM (ou seja, nem semp,·e seu taman ho é o da palavra) e ,
po rtanto, para cada caso deve ser indicado o seu tamanho ou um:i indicação de como obtê-lo . A título de
informação pode ..se mencionar que, atualmente, a maioria dos processadores possui um BD, barramento de
dados, com tamanho m últiplo da palavra, de modo a acelerar o processo de transferência de dados entre pro-
cessador e MP, visto que o processador tem espaço de armazenamento interno para receber dados ames que
esses sejam processados.

Exemplo 4.3
Um computador, cuja memória RAM (MP) tem uma capacidade máxima de a,-mazenamento de 2K
palavras de 16 bits cada, possui um !UM e um R.DM . Qual o tamanho desses registradores; qual o valor do
maior e ndereço dessa MP e qual a quantidade total de bits que nela podem ser armaze nados'

Solução
Se a capacidade máxima da MP é 2K palavras, entende-se que o endereçamento é por palavra (nada
foi dito d ifere nte) e, ene,'\o: N = 2K.
Se cada palavra cem 16 bits e foi entendido q ue o endert!çamenro é por palavra, deduz- se que em cada
célula pode ser annazenada uma palavra. Nesse caso, M = 16.
Sabe-se q ue N = zce, no exemplo, N = K. Então: 2e = 2K = 2 1 X 2 10 = 2 11 • E = l l bits.
Se cada endereço é um n í, rnero de 11 bits, então o lliM (registrador cuja fu nção é armazenar ende-
reços) também deve ter um tamanho igual a l ] bits.
Sn$W

Memória Priuâpnl / 109

Se a palavra tem 16 bits e o RDM é o regimador cuja função é armazenar uma palavra de dados (não
foi especificado outro dado}, então: R.DM = 16 bits.
Como T = N X M, então: T = 2K X 16 = 32K bits.
Finalmente, o maior endereço:
Deve ser igual a (2K - 1) ou (2 X 1024) - 1 ou 2048 - 1 = 2047.
Respostas: Tamanho do REM = 11 bits.
Tamanho do RDM = 16 bit,;.
Maior endereço: l l l l l l l l l l l, = 2047 ,.. = 7FF,6 •
Quantidade total de bits da MP: 32K bits.

Exemplo 4.4
Um processador possui um RDM com capacidade de armazenar 32 bits" um REM com capacidade de
annazenar 24 bits. Sabendo-se que em cada acesso são lidas duas células da memória l<cAM (MP) e que o
barramento de dados (BD) tem tamanho igual ao da palavra, pergunta-se:
a) Qual é a capacidade máxima de endereçamento do microcomputador em qm:stão?
b) Qual é o total máximo de bits que podem ser armazenados na memória R.AM (MP)>
e) Qual é o tamanho da palavra e de cada célula da máquina?

Soluç ão
ROM = 32 bits e R.EM = 24 bits BD = palavra cada acesso = 2 células
A capacidade máxima de endereçamento, isto é, o total de endereço e d~ células é igual o N = 22 .
Se l<cEM = 24 bits e se R.EM armazena valor de endereço, então: E = 24 bits e 2• = 2 2' .
Separando as potências, teremos: 22' = 2' X 2'' = 16 X 1M (pois 1M = 2"'
Assim, N = 16M endereços ou 16M células (resposta a)
Total de bits = T = N X M , sendo M = tamanho de uma célula e N = total de células = 16M = 2".
Como cm cada acesso se lê duas células. e um acesso transfere, pelo BD, uma quantidade de bits, então:
BD = 2 células. Como BD = RDM, então BD = 32 bitS = 2 células. Uma célula = l /2 BD = J6 bits.
Então: T = 16M células X 16 bits= 256M bits. Por potenciação, temos: 2" X 2' (pois 16 = 2') = 2"'.
Como 2" = 2• X 2~•. então: 256M bits (resposta b) .
O tamanho da palavra é igual ao do barramento de dados (BD). Como BD = R.DM, então: palavra =
32 bits,
O t.1111anho de cada célula é de 16 bits, pois já vimos que célula = 1/2 BD (em cada ac.:-sso são lidas 2
células).
Respostas:
a) Capacidade máxima d.:- endereçamento do microcomputador : 16M células.
b) Total máximo de bits que podem ser armazenados na memória R.AM : 256M bits.
c) Tamanho da palavra: 32 bits e tamanho de cada célula: 16 bitS.

Exemplo 4.5
Um processador possui um BE (barramento de endereços) com capacidade de permitir a transferência
de 33 bits de cada vez. Sabe-se que o BD (barramento de dados) permite a transferência de quatro palavras
SU$W

110 / Memória Priuâpnl

em cada acesso e que cada célula da memória RAM (MP) am,azena um oitavo (1/8) de cada palavra.
Considerando q ue a memória RAM (MP) pode armazenar um máximo de 64G bits, pergunta-se:
a) Qual é a quantidade máxima de células que podem ser armazenadas na memória RAM (MP)'
b) Qual é o tamanho do REM e do BD existentes neste processador'
c) Qual é o tamanho de cada célula e da palavra desta máquina'

Solução
BE = 33 bits BD = 4 palavras por acesso célula = 1/8 da palavra T = 64G bits
Sabemos, por definição, que: BE = REM, BD = ROM, M = tamanho de cada célula e T = N X M.
Assim, !\EM = 33 bits. Como, então, cada um dos N endereços da MP é um número de 33 bits, E =
33, e N sendo igual a 2• , N = 2" = 2' X 2~' = 8G endereços o u células, pois 23 = 8 e 2·"' = 1G
(resposta a) .
Como T = N X M , e sendo M = tamanho de uma célula, então: M = T / N ou M = 64G (T) / 8G
(N) = 8 bits.
As unidades esrào correras, pois T = bits em células e N = total de células. Enrào M = bits em células/
célula = bits.
Se 1 célula = 8 bits e cada célula = 1/ 8 palavra, então: tamanho de 1 palavra = 8 X 1 célula = 8 X 8
= 64 bits.
Se o BD penn ite a transferência de quatro palavras de cada vez. então: BD = 4 X l palavra = 4 X 64
= 256 bits.
Respostas:
a) Quanridade máxima de células que podem ser armazenadas na memória: 8G células.
b) Tamanho do REM: 33 bits e tamanho do BD: 256 bits.
c) Tamanho de cada célula: 8 bits e tamanho da palavra: 64 bits.

4.3.5 Tipos e Nomenclatura de MP


A memória principal dos computadores modernos é fàbricada com tecnologia de semicondmores, o que lhes
permite elevada velocidade de acesso e transferência de bit~, já que são circuitos apenas elétricos em funciona-
menro (não há partes mecânicas, como acontece nos discos e fitas magnéticas, bem como nos disquetes e CO-
ROMs). A velocidade de percurso de um sinal elétrico é nominalmente a velocidade da luz (300.000 km/ s).
Tais memórias, no encanto, mantêm os valores binários arn1azenados apenas enquanto estiverem e nergizadas,
sendo assim do tipo volátil, conforme já mencionado anteriormente. No Apêndice D há uma mais completa
desc1ição dos métodos de fabricação e funcionamento dessas memórias.
A memória principal é a memória de trabalho do processador, seu grande "bloco de rascunho", onde os
programas (e seus dados) se sucedem em execução, uns após os outros. Ou seja, para q ue um programa seja
executado é necessário que suas instruções e os dados por elas manipulados estejam annazenados, ainda que
temporariamente, na memória principal (MP). Este programa e dados estão nonnalmente armazenados de
forrn;;i permanente na 111emória secundária, seja um disco magnético (usualmente denominado disco rígjdo,
palavra traduzida do inglês hard tlisk, HD) seja um CD-ROM.
Por exemplo, quando vamos trabalhar um texto utilizando um processador de textos tipo Microsoft Word,
é requerido que o código do Word esteja armazenado na MP para garantir velocidade no processamento (o
processador precisa encontrar na MP as instruções do Word necessárias a um determinado processamento do
texto, colocar negrito cm uma palavra, por exemplo), assim como também o texto sendo trabalhado deve
estar annazenado na MP.
Na realidade, as coisas ocorre m ligeiramente diferentes, visto que atualmente não é mais requerido que o
programa inteiro esteja armazenado na MP, bastando q ue ele seja dividido em "pedaços", chamados páginas,
SU$W

t\1cmória Principal / 111

e o sistema transfere apenas algumas das páginas de cada vez (as que estão ou itão ser usadas em breve). AJi:m
disso, como já mencionamos antes, o processador de texto e o arquivo de dados (o texto) estão inicialmente
armazenados em disco. E, mais ainda, atualmente o processador não acessa diretamente a MP, como nos sis-
temas mais antigos; ele procura inicialmente a instrução desejada no momento ou o dado requerido para um
processamento, em outro tipo de 111e1nória, a inemória cache, já apresentada anteriormente e que será descrita
no Cap. 5.
A Fig. 4. 16 mostra um demonstrativo do fluxo de biis para um determinado processament0, a partir de seu
local de armazenamento permanente (o disco rígido) at~ sua chegada ao processador para se efetivar o proces-
sam ento .

Disco rígido (HD)

Memória principal (RAM)

Processador (UCP) registradores


Memória cache
Figura 4. 16 Fluxo de bits para u1n processamento.

A MP dos microcomputadores é comercial e populanneme denominada memória RAM, ou simplesmen-


te RAM . O termo é uma sigla das palavras inglesas Ra11d<>111 Affess .IV/emory, cuja tradução é Memória de Aces-
so AJeató,io (ou randônúco).
As memórias RAM são construídas com tecnologia q ue lhes garante tempos de acesso na faixa dos
nanossegundos (variável entre valores da ordem de 15 a 70 ns, de acordo com os elementos e processos de
fabricação), tendo uma caracteristica única e marcante: o tempo de acesso a qualquer de suas células é igual,
independente da localização 6sica da célula.
Em outras palavras, se o tempo de acesso de uma deternúnada memória de semicondutor é, p. ex., 70 ns,
isto significa que este será o tempo para acessar a célula de endereço O (primeira célula). Se, em seguida, se
desejar accssar a cé)ula de maior endereço, o tempo tambén1será igual a 70 ns, como também será de 70 ns se,
após acessar a célula de endereço 13A, se desejar acessar a célula de endereço 138 . Qualquer que seja o ende-
reço, aleatoriamente o u rando1nicamente escolhido, o tempo de acesso será o mesmo. Daí o seu nome, me-
mória de acesso randômico (RAM) .
Isto é possível devido~ tecnologia (circuitos eletrônicos) de construção, onde sinais elétricos percorrem os
condutores (c,tio comprimento é núlimétrico) com a velocidade da luz, seja da primeira para a última célula,
Sn$W

112 / M~1mfria J>,·iuâf'nl

seja da terceira para a quarta. Não há movimento fisico de qualquer de seus elementos (o que consumiiia
tempo), pois uma célula é localizada através da decodificação de seu endereço (processo quase instantâneo) e
emissfo de sinais elétricos correspondentes para "abertura" da célula e passagem dos seus bit; para o barra-
mento de dados.
A tecnologia RAM tem variações, que foram evoluindo com o tempo, as quais redundaram em vários
diferentes tipos. Estes tipos podem ser piimciramentc grupados em duas vertentes: SRAM (Static RAM) e
ORAM (Oynamic RAM), isto é, a RAM estática e a RAM dinâmica; o primeiro tipo, mais râpido e de custo
mais elevado, costuma s1.::r utilizado na constn1çào das inemórias cachc, e o outro tipo, ORAM, é aquele usa ...
do gcnerlcamente nas memórias principais tr::idicionais. Este tipo vem evoluindo e sendo produzido pelos
diversos fabricantes com diferences nuances, que lhe valeram diversos nomes, tais como: FPM, EDO, DDR.
Ambas, no entanto, são voláteis.
A tecnologia RAM , constituída de memóiias eletrónicas, de tempo de acesso igual independente da célula
localizada, pode se1vir para construção de dois tipús de memória no que se refere à sua aplicação cm um sis-
tema:
• memórias que servem para se ler e escrever nelas (memórias L/ E), denominadas em inglês R I W memory; e
• memórias o nde os programas aplicativos som~nte podem ler seu conteúdo. não lhes sendo pernlitido
gravar em suas células, as memórias do tipo ROM (read c11/y 111e111ory, úu memória somente para leitura);
estas têm uma notável particuJaridade, que é o fato de não serem volãceis, como as 1nemórias L/ E.
Além da MP pcm1itir que um prngrama seja armazenado em seguida ao úutro (istú significa que são reali-
zadas sucessivas operações de escrita nas mesmas célu1as), durante a execução normal de um progr:1ma, suas
instruções são sucessivamente lidas pelo processador. que, por sua vez, também realiza operações de escrita
sobre a M P, armazenando resultados das operações realizadas.
Se wna men1ória é de acesso aleatório (RAM) para leitura, inva1iavchnente também o será para realizar
ciclos de escrita. Assin1, as memórias do tipo RAM, que perm item lcituralésCJi ta (R/W), sàú usadas como
memória principal (MP), e este termo, RAM, passou a ser tão comum com estas memórias que se confundiu
com o próprio nome da memória (comumente se usa no comércio e na indúst1ia o termo RAM quando se
refore à MP, assim cúmú falamos, em geral, gilctc - nome de um fab,icante - cm vez da lâmina de barbear).
O uso do termo RAM para definir a memória principal de trabalho, onde nossos programas e aplicativos
são armazenados. é incorreto, como veremos a seguir.
Embora seja rápida (tempo de acesso pequeno) e de acesso aleatório (mesmo tempo no acesso a qualquer
célula), a RAM possui algumas desvantagens, entre as quais a volatilidade, isto é, perde seu conteúdo quando
a corrente elétrica é interrompida.
Por outro lado, as memórias read-write apresentam o inconveniente (nem sempre é um inconveniente) de,
permitindo que se escreva nonnalmcnte cm suas células, ser possível a acidental elinlinação do conteúdo de
uma ou mais de suas células.
Uma vez que o processador nada realiza sem as instruções, é óbvio que ele deve possuir uma certa quanti-
dade de mcrnória não-volátil. (sto é. um local onde estejam permanentemente armazenadas instruções que
automaticamente iniciam a operação e a inicialização do sistema, tão logo a alimentação elétrica seja ligada.
Em microcomputadores costuma--se chamar isso de programa bootstrap, o u simplesmente boot, e nquanto ou-
tros fub1ica11tes chamam IPL - foitial Pmgmm Lwd (Carregamento do Programa Inicial). entre outros nomes.
Esse tipo de memóiia (ainda de semicondutores e, portanto, RAM), além de ter que ser 11ão- volátil (para
nàú haver a perda do programa de boot). também não deve permitir que haja eliminações acidentais. Trat.1-se
de um programa que deve estar permanentemente armazenado e não pode sofrer alterações por parte de ne-
nhum outro programa. Em outras pal:wras, ,nemórias que armazena1n esc.e tipo de programas devem permitir
apeuas leitura. C hamam-se estas memórias de R.OM - Read Ouly Atfemor)' (memórias somente para leitura),
e elas devem ser não-voláteis.
No encanto, o tempo de acesso ern memórias ROM também é constante, independentemente da localização
fisica da célula e. por consegu inte, elas também são memórias RAM. Porém, o mercado incorreu no engano
Snõw
Memório P,fotipal / 113

ErKtereço O Endereço ,O

Leiti.lral RAM
~scrlta (AJW)

RMI
~~ ~

RAM

ROM ROM

ErdareQ>ON-1 Endflr@ÇQ N· 1
-------
(a) Nom1mclarura corr&ta (b) Nomooclat\Jra poputar

Fíg:Dra 4.17 Configuração da memóri.a principal (MP) de um microcomputadoi:- do tipo· PC.

de chamar de RAM apena a Il1i:1110t1ã R/W - ldtma/escrita talvc:z para darament · diferençá-la~ do outro
tipo, ROM (som nce par, leirnrn), já que as . igfo . ão bem pare idas.
A Fig. 4.17 apresenta a di:!.tl'.ibuição e. p cial da. memórias R/W, RAM e R OM em um microcomput.ador,
indicando o conceito correto e o conceito usado na prática peJo mercado.
As men ória DRAM ve1n evolui11do em ternos de am 1ento d capacidade ç de vdoc:idadc (cmbnrn esta c-111
menor percentag m do que o de ejado em face do awuento da velocidad· dos prOC' sador' ), redundando ·rn
diversos tipos: ED0 ORAM, BED0 DRAM, SDR.AM RDR.AM e outro , vilitos no quadro-re umo a ~eguir.

l
Em resumo, podemos da ificar a memórias de emicondutores. do si;guint1; modo:

L/E - leitura/E crita SRAM FPM D AM


(R/ W - · ead/ Write) EDO DRAM
DRAM DEDODRAM
SDRAM
RDRAM (Rambus)
DDR.eDDR2

l
RAM
ROM
ROM (Somente 1 itura) PRO
.M
(Rea.d OnJy Memol'y) EPR0M
EEPR.OM e Flash Mc:inory

Corno podemo observar no quadro-re.umo adma, tanto a 111cn1óda L/E (que permitem leitura escri-
ta) quanto a memórias ROM (que permitem apenas leirnra) ão memórias de acesso mndômico, is.to é, ão
memórias lAM.
A descrição do diversos tipo de· DRAM e o métodos de endereçamento das DRAM SRAM encontram-
se no Apêndice D enquanto os 1nodeJos de memórias ROM ·ão descrito no item 4.3.5.1 a eguir.

4.3.5.1 Me órias do Tipo OM


Mem6das ROM são ramb ~m mentódas de scmkondut<1Ps fabricada., pa.ra ,uingj.r crê~ objetivos:
a) ter de e1npenho semelhante ao da memórias RIW de sen kondmores (o eu de en-1penho não é igual,
poi. po. suem menor velocidade de acesso m.as pode-se dizer que é semelhante)·
SDêW

b) não s-cr o1áril (c.a.racterí tka e sencial para qll.]c o ,c omputador po ua memória rápida e perm.ani.:nt·c. );
c) rer segurança, permitir apenas 1drura de eu conte(1do por detenninado programa - Hã d rerminados
progran as críticos que nfo go r-.i.rfamo de ver i lfectado. por vín: s, por • mplo-
Todo istema de computação utiliza uma parte do espaço de 1;:ndcn:çamento da men ória principal com
memória do tipo RO . O microcompurndore do tipo P , por exemplo êm da ffibrica com um conjun-
ro de ro inas há i as. do sistema oper cjonal at·mazenadas em ROM, denominadas em conjunto como B1O
- Basic l11pu1 Outp111 • rstem ou Sistema Bá ico de ntrada e aída.
O utra áphcação importante das ROM é o am1az namcnto de microprogram, m mc11.1órí.1 de controle
{ROM) (ver item 6.6.4.2) e também em sistemas de controle de proces os, como ~i t ·ma de injeção eJetrô-
nica de automóvei fom,o de· :nicroonda outros eletrodoméstico con.trobdo por computadore , a~ hn
com.o emjogo eletrôn.icos (videogamt'"!i)-
A. m. mórias ROM mmb'm sofreram uma evolução tecnológica ao Jongo do tempo, p1i 11ópalmcntc para
torn.á.- fa nui prática e comerci;:ilment~ ac~itávei st.>111 perder a ua principal característica de crcm memó-
ria soment para ]eiturn por parte d,o progr.iima$ aphc:ui o (embora, com , u, l!voluçiio, el _ po. suam tipos
que permjtem a troca do Si!U conteúdo s ·mprc através de proce o e pe-ciais. e nu ca por um .intple~ progra-
ma , plcativo).

MASK-ROM
primeiro e 01·iginal tipo é a chamada rn ' I ória ROM pu111 (u..,;amos em: nome ' pt: ra" para diferençar de
outro tipos de R , 111.ai fl xíveis, como veri;mos a eguir), que é ~mbém conhecida tecnicamente como
pirQgrarruula 1,&r tuáunra ( ',nask progmmmc•,I"), d vido ao pr,oc ss.o de fabricaçã.o e e crit.'I d~1 bits 11 m ·mória_
est.1. rn, k-ROM o conjumo de bit (programa especificado pelou L1á1io) é jns.e1ido no interior dos ele-
mento da pastilha durnnt o processo de fabricação. Chama- e a i o em inglês de prece o liardwired, pois cada
b ·t ( eja O ou '1 co1úo11ne o progi·,11ua) é criado já na célub apropriada.. Apó o término da fabricação, a pasrilha
ROM está co npJeta, con o programa am1azenado, e nada pod ci alterar o valor de qualquer de ens bits.
Por !>er de ta fi nna, a ROM se· mm um dí po itívo muiro mai!. impk!. do que Llli1á RAM, nccc itando
apenas de um decodificador de endereços a com:sponde1m.:s linha de barratnemo de s.a.ida e algun circuito
lógico (por exemplo, operadores OR). A Fig. 4, 18 mo tra um e, ·e,npJo de mna me1nória ROM comricu ída
de quat o célula de 4 bi cada uma possuindo, então, quatro endereço de 2 bit' cada um.
a Fig. 4.18 podemos observar o çkcodificiidoT d<.: endereço~ com uma entrad.t p;lrn um i:ndi:n:ço d,1;; 2
bits, ~ . e A 1 a linhas de . aida do d ·wdifiçador para as quatro pona. lógica_ OR, S,i. 1, ~ 1; SJ, çad;'I uma
rcspon ávd pel geração de um dm 4 bits da~ células da memória, conforme o endereço dado_

D.eood ificada
2por4

00 1--- - - - - - ~ - - - - - ~
01 End. Conteúdo

10 - ---->-~----->----......__ 00 0101
11 01 1O11
1iO 111 O
Habiliiitar 11 0000

s1
Figura 4.18 Mem6ria ROM con1. 4 células. de 4 b·t cada.
Sn$W

Memória Prit1tipal I 11 S

Como exemplo, seja o endereço de entrada 01, sendo O na linha A.., e I na linha A,. O decodificador pro-
d uzirá um sinal positivo (bit 1) na linha correspondente ao valor 01 da figura, que incidirá sobre uma das
entradas das portas S, , S, e S0• A o utra entrada de cada porca, bem como as duas entradas da porca S, , terão
valor nulo (bit O), já que não incide nada da saída do decodificador. A combinação de bits O e bit 1 nas três
portas indicadas produzirá como saída um bit 1 en1 cada uma e, na restante, S21 sairá bit O. E1n conclusão, o
valor da célula a ser lido será 1011, conforme programado na fàbricação da memória. Processo semelhante
ocorre nas demais posições.
Trata-se de um processo semelhante ao da fabricação de CDs, onde se cria prin,eiro uma matáz do CD
desejado (no caso é uma matriz da pastilha com todos os bits inseridos), a q ual tem um valor financeiro apre-
ciável e, em seguida, se realiza a prensagem (reprodução da matriz em cada cópia) das cópias (no caso, trata-
se da criação das demais pastilhas). O método é bastante parecido com o da fabricação de processadores.
Esse tipo de memória ~ relativamente barato se fabricado em grandes quantidades, porque, nesse caso, o
custo da fabricação da máscara de programa é diluído para cada pastilha. No encamo, há certas desvantagens:
a) não há possibilidade de recuperação de qualquer erro eventual no programa. Se se inserir um único b it
errado na pastilha (em geral é no co,tjunto fubricado, devido ao processo de máscara), o lote deve ser
destruído e fabricada nova partida correta . Isso pode acarretar problemas de custo do sistema;
b) o custo (não pequeno) da criação da máscara para inserção dos bits é o mesmo, seja para fabricar uma
pastilha o u milhares delas.

PROM
Para atenuar o problema do custo fixo da máscara (matriz), desenvolveu-se uma variação daquele tipo de
memória ROM pura, denominado PR.OM (Progra111111able Remi 011/y Me111ory), R.OM programável. N a rea-
lidade, não se trata prop,iamentc de ser programável, porque não é possivel a reutilização da PR.OM (como
também não se reutiliza a R.OM) . Nela. como nas R.OM puras, somente é possível gravar os bits desejados
uma única vez, porém com a diferença de que a gravação dos bits é posterior à fase de fabricação da pastilha,
embora deva ser realizada por dispositivo especial.
Uma PR OM é, então, fabricada "virgem" (sem qualquer bit armazenado) e depois, seja pelo usuário, fa-
b,icante do programa ou qualquer agente especializado que possua a máquina específica para inserir os bit~,
ocorre a etapa de gravação da infonnação, a qual, após seu ténn.ino, tarnbém não permite alteração. Esta etapa
de gmvação é conhecida como processo de "queimar" a pastilha (ver Apêndice D).
Trata-se de um processo semelhante ao utilizado atualmente pelos dispositivos gravadores de CD, que pro-
d uzem os CD-R. Nestes, também se us.1 um CD virgem e o gravador de CD insere os elementos de infor-
mação no CD-R, o qual é, em seguida, "queimado", inviabilizando o utras gravações.
Uma ponderável diferença entre as ROM e as PR OM reside no seu custo individual. Como já mencionado,
as ROM só se tomam atraentes se fabricadas em grande quantidade, pois neste caso o custo fixo da matriz é
dividido por uma grande quantidade de cópias; para menores quantidades, a PROM se torna mais conveniente
devido ao menor custo individual, o qual independe da quantidade (não há custo fixo de fab,icação de máscara).

EPROM e EEPROM
Posterio nnente foram desenvolvidos ou tros dois tipos de R OM, os q uais possuem uma particularidade
interessante. Conquanto se mantenham somente para leitura (R OM) de programas aplicativos, durante uma
execução normal, elas podem ser apagadas (através de um processo especial, que depende do tipo) e regravadas.
sendo portanto reutilizáveis. São elas: EPR.OM (Erasable PROM)- PROM apagável, a EEPROM (Ele<1rically
ou Eiertm11ically EPR OM) o u EPR OM eletrónica. também chamada EAROM (Elecrrically Alrernbie ROM) e
a memória F/m;/J ou Flash- R OM . São memó1ias úteis no caso de aplkações que requerem muito 1nais leitura
de dados do que csc,ita, sendo o caso, por exemplo, de programas de sistemas (controle do vídeo, de modems,
de dispositivos de entrada/ saída), onde o fabiicante escreve o programa. que é intens.1mente lido pelos aplicativos,
mas que não deve ser por eles modificado (escrito por cima); eventualmente, o fabricante precisa modificar
seu progra1na, criando mna nova versão, o que pode ser realizado nessas memórias.
Snõw

A EPROM pode ser uti]izada diver as vezes, porque os dado nela armazenado podem . t:r apagados ao ~e
iluminar a p rilha com lu:z ultravioleta (~er Fig. 4.19') a qual incide em uma janela de vidro, montada na
pane superior da pa- tilha. O processo de apag:m ento qu é complem (wdo o conteúdo da memória é ::ipa-
gado) dUl'a em média cerca de 20 a 25 minmo.
Una vez apagad, a pa tilhai pode er reuti]izada atravé. de novo pirocc. so de "quein1a' de novos bifS. Após
esse pas o, ajanéfa de vidro co tuma ser coberta paira e: ritar mn apagamc:nm acident.,l.
O outro tipo, EEPROM ou EAROM, desenvo]vido pos-tedonuente, introduziu uma caracrerisric..1 mai vcr.;áti]
e pcirica no proci: ~a d1;; nmtili2açiio da R M: a progromação (escrita dos bits), o ap gamento e a reprograma-
ção são fetuado~ através dr. controle do processador. í~to C: por s·oft:war . Um· .brrande vantagem destt- tipo d ·
llli;mória é o furo de as operaçõe poderem s-e1· n:::ifo:;'lda e pecificamente ~brc um b~ te ou bytes detemrin::idos..
Com a EEPROM p1·ogramada , . in m1çô nela am1az nad::is 5.o rerida indefiniidamente ou até l)UC um
sinal de apag.un ·nto seja capta.do por um ensor.
Uma boa aplicação para a EPROM con!iisk cm se utilizar programação da. tedas de um redado. Ne e
caso a função de cada tecla · d finida m mnà tãbda que reide em n.mia EEPROM instalada no circuito
impre so normalmente localizado na parte interna do teclado. Programa apl:icat:ivos (como pirf>ec.. adore~ de
texm pl.1nil1 as. etc.), ao serem carregados na me111ória do i cema. para e ·ecuçào, armazi.;n::im na EEPROM
fünçà1;. d1;; tcda."i e~pecífiea. para o referido ap]ica.ci o. De ta. fonna, as. fünçõe do t·dado pod~m. cr padro-
ni,rndas para cada aplicação.
Finalmente, um outro tipo dessa m..::mórias é denominada Fia h tendo prece- o de funcionamento bas-
t~uue semelhante aio das EEPROM ou seja, o conteúdo total ou parcial da memória pode ser apagado nor-
ma1meme por um proce· o de escrita, embora nas Fla!>h o apagamento nàio possa ser efetuado no níveJ de byte
como na EEPROM. O tel'lno Flash foi imaginado devido à elevada velocidade de apagament.o de as me-
mória c;111 comparação com as antigas EPROM e EEPR M.

Janela de i;iuartzo

" 1

· ucro de plástico
lnvól 1 Invólucro de plás1
Pasli[h.ra de silício
1 Cerâmica 1

Figura 4.19 Umra pastilha de E PROM inclHi nmaj,meWa transparente pela ,q ual mn feL".e d.e luz ultravioleta
pode apagar todo o seu co12t eL1do.

4.4ERROS
Em rodo istema de tran_mi s.ão de informação a di~câ11cia (tclc.:çomunicaçào) há ~t:mpre a possihilidack de
ocorrerem d formaçõ , ou acé mes no d truiçào de p~me da informação tl'an mi tida (ou toda). ls ocmTe
devido a int erferência no meio de transmissão.
A memória principal {ou GJLlalqucr outro tipo de mcmó,ria) utiliza rn11 mei.o de tr.u,rn1i âo (b:;m,un ·mo de da-
dos.} para o trânsito da infonnaçâo (palavm.'> de dados ou 1nstmçôt.>S) cmre a MP e a UCR. fase trân ito s.ofi- · intt:r-
ferênci, que podem al.rerar o valor de um ou mais bits (de O para 1 ou de l para O) ou aré mesmo desm1'-Jos.
Sn$W

J\1emória Priucipal / 11 7

Não faz parte do escopo deste livro descrever as possíveis causas da existência de erros na transmissão e no
armazenamento de in formações na MP de um sistema de computação, mas é import.inte sabermos que os
atuais sistemas de mcn1ória possuem mecanismos capazes de detectar e corrigir tais erros. A Fig. 4.20 sumaiiza
o processo básico de detecçào e correção de erros.
O processo pode ser resumido nas seguintes etapas (ver Fig. 4.20) :
a) Os grupos de M bit~ de info rmação que serão gravados nas células da MP sofrem um processamento es-
pecifico, cm um dispositivo próprio para dececção de erros. Esse processamento é realizado segundo as
etapas de um algoritmo dctenninado (A) e produz, como n:sult1do, um conj unto de K (M) bits.
b) Serão gravados, então, em células com capacidade para armazenar M + K bits (e não apenas os M bits de
informação).
c) Ao ser recuperado o valor em bits de uma determinada célula (opcrnção de leitura), o sistema de detecçào
é acionado; o mesmo algo,itmo inicial (A) é cxecumdo sobre os M bits de info nnação armazenados, ob-
tendo-se um novo conjunto de K bits (K2).
d) Os K (M) bits armazenados são comparados com os K (K2) bits acima calculados, obtendo-se um entre os
seguintes possíveis resultados:
1 - ambos os conjuntos de K bits têm o mesmo valor, o que significa ausência de erros. Neste caso, os M bits
da célula desejada são transmitidos;
2 - os co,tjuntos são diferentes, concluindo-se pela existência de erro no bloco de M bits. O erro pode ser
corrigido o u não. dependendo de como o sistema foi projetado.
O processo de co,,.cçào de erros, denominado comumente ECC (Error Correaiou Cone ou código de cor-
reção de erro), baseia-se no código utilizado para constituir os K bit~ adicionais de cada célula. Em geral, este
método é utilizado em cornputadores com aplicações mais sensíveis, e.ais com.o um servidor de arquivos ou
se1vidor de rede. Eles podem detetar a ocorrência de e JTOS em um ou mais bits e corrigir um bit errado . Ou
seja, se for detecmda a oco11'ê ncia de erro cm um bit, este será identificado pelo código e naturalmente cor-
rigido; porém~ se forem detetados mais bits errados então o ECC so1nente indica o erro sem poder identificar
(e corrigi r) os bits errados.

(M bits}

(M+K1 biis}
Dados
de
í:7
f - - - --+l•~ r- - - - - --r ~
(K1bils) r:::-J
en~ado

(a• b} Armazenamento na MP º"""' de salda

(M+Ktbils}
(K2 biis) eo.r.,a,ação
MP ,__ _., Correção
K1·K2

Mbils
(e} 1tanslefênclada MP

Figura 4.20 Processo básico de dctecção/corrcção de erros.


SU$W

118 / ,Wemória J'>riutipnl

EXERCÍCIOS
1) Um computador possui uma memória p,;ncipal com capacidade para annazenar palavras de 16 bits em
cada uma de suas N células, e o seu barramento de endereços cem 12 bits de tamanho. Sabendo-se q ue
em cada célula pode-se armazenar o valor exato de uma palavra, quantos bytes poderão ser a1111azena-
dos nessa memória?
2) O que você entende por acesso à memória? Caracterize o tempo de acesso nos dive,~os tipos de memória.
3) Quais são as possíveis operações que podem ser realizadas em uma memória?
4) Qual é a diferença conceituai entre uma memória do tipo SRAM e ou tra do tipo ORAM' Cite van-
tagens e desvantagens de cada unta.
5) Qual é a diferença, cm termos de endereço. conteúdo e total de bits, entre as seguintes organizações de
MP:
a) memória A: 32K células de 8 bits cada;
b) memória B: 16K células de 16 bits cada; e
c) memória C : 161< células de 8 bits cada?
6) Qual é a fu nção do registrador de endereços de memória (REM)? E do registrador de dados de memó-
ria (RDM}?
7) Descreva os barramentos q ue interligam processador e MP, indicando função e direção do fluxo de
sinais de cada um.
8) Descreva passo a passo uma operação de leitura. Utili ze um diagrama esquemático.
9) Faça o mesmo para uma operação de escrita.
1 O) Um computador possui um RDM com 16 bits de tamanho e um REM com capacidade para armaze-
nar números com 20 bits. Sabe-se que a célula desce computador armazena dados com 8 bits de tama-
nho e que ele possui uma quantidade N de células. igual à sua capacidade máxima de armazenamento.
Pergunta-se:
a) Qual é o tamanho do barramento de e ndereços?
b) Quantas células de memória são lidas em uma única operação de leitura'
e} Quantos bits tem a memória principal?
11) Um microcomputador possui uma capacidade máxima de memória principal (RAM) com 32K célu-
las, cada uma capaz de armazenar uma palavra de 8 bits. Pergunta-se:
a) Qual é o maior endereço, em decimal, desta memória?
b} Qual é o tamanho do barramento de endereços deste sistema'
e) Quantos bitS podem ser armazenados no R OM e no R EM?
d) Qual é o total máximo de bits que pode existir nesta memória?
12) Considere uma célula de uma MP cujo endereço é, em hexadecimal. 2C81 e que tem armazenado em
seu conteúdo um valor igual a, em hexadecimal, FSA. Sabe-se que, neste sistema, as células têm o mesmo
tamanho das palavras e que em cada acesso é lido o valor de uma célula. Pergunta-se:
a) Qual deve ser o tamanho do REM e do RDM nesse sistema?
b) Qual deve ser a máxima quantidade de bits que podem ser implementados nessa memória>
13) Considere uma memória com capacidade de armazenamento de 64K bytes; cada célula pode armazenar
1 byte de informação e cada caractere é codificado com 8 bits. R esolveu-se annazenar na memória deste
sistema um conjunto de caracteres do seguinte modo. A partir do endereço (hexadecimal) 27FA, for.1111
escritos sucessivamente gn,pos de 128 caracteres iguais, iniciando pelo grupo de As, seguido do grupo de
Bs, e assim por diante. Qual deverá ser o endereço correspondente ao local onde está am,azenado o 1 .• J?
Sn$W

:\1emória J>rincif'al / 119

14) O custo das memórias SRAM é maior que o das memórias ORAM. No entanto, o processo de conexão das
memórias ORAM é mais complexo que o das SRAM e, em conseqüência. o preço da intcrlàce das ORAM
é bem maior que o das SRAM. Supondo que uma interlàce de ORAM custe RSS,00, uma intcrlàce de
SRAM custe RS1 ,00, o preço por bit de uma SRAM é de R S0,00002 e o de uma O RAM é de R S0,00001,
calcule quantos bits deve ter uma memória dinâmica (DRAM) para que o conjunto sej a mais barato.
15) Compare uma n1emória principaJ e mna memória cachc em termos de tempo de acesso, capacidade e
temporariedade de armazenamento de dados.
16) Uma memória R OM pode ser também considerada uma memória do tipo Leitura/Escrita? Por quê'
17) Qual é a diferença emre uma memória do tipo PROM e uma do tipo EPROM?
18) E qual é a diferença entre uma memória do tipo R OM "original" (mask ROM) e uma memória do
tipo PROM ? E o q ue é idêntico nelas?
19) O q ue significa o termo s/1ado111 ROM'
20) Enumere os diferentes tipos de men1ória que podem existir em um microcomputador moderno, atual,
desde um simples registrador até os CD-R.OMs etc.
21) Considere um sistema constintído de um processador - memó ria cache - memória principal, no qual
o tempo de acesso processador/men1ória cache é de 8 ns e o tempo de acesso memória cachc/ 111cmória
principal é de 70 ns. Observando-se um intervalo correspondente a 100 ac<:ssos consecutivos do pro-
cessador e que a eficiência da memória cachc é de 96%, calcule o tempo médio de acesso do sistema.
22) Qual é a vanmgcm do uso de muitos registradores em um processador?
23) Por que não é possível a memó ria p1incipal ser totalmente volátil?
24) Sempre que o processador realiza um acesso à memória para efetuar uma operação de leitura ou de
c-scrita, ele manipula dois valores distintos, mas que estão associados ao acesso. Quais são estes valores?
25) O que significa a expressão ECC - código de correção de erros?
26) Proj ete uma memória ROM de fonna semelhante a que está mostrada na Fig. 4.1 8. considerando que ela
possua 8 células de 4 bits cada uma. Podem ser assumidos quaisquer valores para annazenar nas 8 células.
27) Quantos bits são requeridos para se endereçar células em uma memória de 128G?
28) E quantos bits seriam reque,idos se a memó,ia tivesse 32K'
29) Quantas posições de memória existem desde o endereço 0400 (hexadecimal), inclusive, e o endereço
11FF (hexadecimal)'
30) De que depende fundamentalmente a dctemúnação da quantidade máxima de posições de memória
que um processador consegue endereçar?
31) Uma imagem pode ser representada por uma matriz de pontos armazenada na memória de um compu-
tador. Cada ponto possui uma indicação de cor associada a ela; essa cor precisa de 4 bytes para ser re-
presentada. Baseado nessas infonnações pede-se:
a) a quantidade de mcmó tia, e m bytes, necessária para armazenar uma imagem de 640 X 420 pontos;
b) a quantidade de mcn1ória c m megabytcs necessária para armazenar 1O imagens semelhantes a esta;
c) quantas imagens como esm poderiam ser armazenadas na memória de um computador com 128MB
de memória l~AM?
32) Quantos bytes podem ser am1azenados em uma memó1ia ROM que possua 16 linhas de endereçamento
e que possua 4 li nhas de saída de dados?
33) Você considera válida a afirmação " um computador com mais poder de processamento pode armaze-
nar mais programasº?
34) Você considera válida a afinnação "vale aumentar a capacidade da memória principal para que o acesso
aos meios magnéticos (discos rígidos e disquetes) seja mais rápido"?
Sn$W

Memória Cache

5.1 INTRODUÇÃO
No item 4.2.2 foi apresentada uma breve explicação sobre o conceito de memória cache, bem como dados
de seu desempenho e características de modo a situá-la adequadamente na estrutura piramidal de uma hierar-
quia de memória.
Neste capítulo serão apresentados, com mais detalhes, conceitos e técnicas que pennitiram o desenvolvi-
mento, o projeto, o funcionamento e o uso de 1ne1nórias cache em sistemas de computação atuais.
lrúcialmence será apresentado o motivo impulsionador da existência das men1órias cache: o gap de veloci-
dade entre memória principal e processador; devido à necessidade de redução desse gap, os pesquisadores
concluíram, de vários estudos de comporramento dos programas, pela existência de um princípio originado
no modo pelo qual os programas cm geral são executados. denominado princípio da localidade, e que esse
princípio é importante para a inserção da 1nemória cache na hieraquia de memória dos sistemas de computa-
ção. Em seguida, será mostrada a o rganização básica de uma memória cache e, finalmente, serão apresentados
e analisados diversos itens que impactam o projeto e construção de memó,fas cache.

5.2 CONCEITUAÇÃO
Para que seja possível entender perfeit.imente o sentido da criação e do desenvolvimento das memórias
cache e de sua crescente e pennanente utilização nos sistemas de computação, deve-se, primeiramene, anali-
sar dois aspectos relacionados com o funcionamenco e a utilidade dessas memórias: um deles refere-se à dife-
rença de velocidade processador/MP, e o outro, ao conceito de localidade, sendo o primeiro o motivador
para se ter chegado ao llltirno.

5.2.1 Diferença de Velocidade Processador/MP


Nesse caso, trata-se de uma constatação inevitável. Parte do problema de limitação de desempenho dos
processadores, que qualquer projetisra de sistemas de compuração enfrenra, reforc-sc à diferença de velocida-
de entre o ciclo de tempo do processador e o ciclo de tempo da memória principal. Ou seja, a MP transfere
bits para o processador em velocidades sempre inferiores às que o processador pode receber e operar os dados,
o que acarreta, muit.is vezes, a necessidade de acrescentar-se um tempo de espera para o processador (,vair state
- estado de espera) . Mesmo atualmente existindo memórias ORAM síncronas, que eliminam o estado de espera,
a diferença de velocidade processador/memória principal permanece grande. A Fig. 5.1 mostra um exemplo
da diferença de velocidade processador/MP.
Se todos os circuitos do processador e da MP fossem fabricados com elementos de mesma tecnologia, este
problema deixaria de existir e não estaríamos aqui explicando o que é e para que serve uma memória cache.
SDêW

Memó.ria Cnclie I 121

Memória
?rocessa:dor principal

Operação
soma: 2ns

Fjgura 5. i Exemplo de diferença dii velocidad,e


P/MP. Empilanto o praacessador gasta 2 ns adi-
ciommdo dois dado a MP gasta 100 ns trans-
Transferencia; 100 ns I 1 forindo os dados: para o p.rncessa:dorr.

O problema de diferença de velocidade se toma di6ci] de. olucionar apena com melhorias no de: empe-
nho da MP, d vido a fatwes d· cu to e t cno1ogia. Já foi anct'.riorm nte mencionado que enquanto o d,e -
sempenho do microprnct: actoc , por exemplo vem dobrando a cada 18 a 24 mese o mesmo não acontece
com a vdocidade de tr:m ferência (tempo d ace o) da mr:rnó.-ia DRAM (RAM dinâmicas), largamente
utilizadas co :no M ' que vem aument.ando r~latíva111eme p uco de a.no para ano (cerca de 100/4).

Ape ar de a recnologia parn aumemar a velocidade da MP ser bem conhecida, faz ri o ne te momento
penalizaria consídera.velmente o isrema em ctmo, pois memóri, rápida ão muito carn , como ' oca o das
memória~ SRAM .
En bora correndo o l"i co der duudância, é bom enfatizar, então, qu ape at de rodo o avanços na tec-
nologia di: con trução da met 1órias DRAM, pa sando da obso]eta FPM ED te. p ra a_ atuais DDR
DDR2 e Rambus, ela: . continmuu a er con tituidas de um capacitor/ transi tOT por bit e, po1unto requi:rem
recarregamento. aturaln1ente são consideravelmente mais rápida: qne a antecessora , m.: ainda mai 1 nus
que a inc1116da~ SRAM e mais len.m. in.da <:iue os tempo de cra.ns:ferência interna. dos proce.ssador (p.ex.,
entre regi rradore- ) .
Es e problema pen:nanent ·• exis.tente de. d o surgimento do computadores., foi-se a.gravando com a pos-
sibfüdadc de uso concorrente de vários pmgramas (multiprogrnmaçã.o), quando a manutenção da ocupação
do proc sador é e cncial para o .tum1;11t0 de desempenho do. istema como um rodo e a vdoddadc de rra.ns-
forência da MP rem papel relevante.
Na década de 1960, emão com o propósito de encomrar uma so]ução para e te problema (de poderiam.
ter :iri.os objecivos em mente ma o probl.ema dogap de velocidade pwce. dor/ MP era um dele) di erso
pesquisadores, norad meme na mM, analisaram d forma ccnsiva. o comport.unenro do proc"' os (progra-
ma cm exc Llç· o), e de . u.lS con lu~ôe a respeito urgiu um princípio de fun ionam :·nt,o do programa ,
denominado genericamente princípio, da localidade (focality o.f ,efere-m:e ou pri11dple ef lomlity) .

5.2.2 Conc,e ito, de Localidade


e observarmos um programa de compnta.d:0r de forma ampla e enérica podeulos ob5ervar que:
• Considerando que o programa já e teja çin sua forrna · ·e ·uci d Gã sofreu o proce.. o d compilação e
e tá tran formado cm in truçótc-s d~ máquina binária.), ele tem :suil!, instruçôe ordenada cqüendalmcn-
re de acordo com o algoricmo de envolvido pi:lo prog1.lmad r. te~ e in. rnme, o programa nada rnais é
do que um conjunto de linhas d i.nmuçê . que ão armaizenadas ~ qüenciailmentc mi n'.l1:mórfr1 (cm um.
endereço após o outro) ..
• Qnando o programa é colocado ·m execução ($e transforma em um u ma1 proce o), a instruções
vão endo bu cada pelo proces.sador na MP para intcrpr ·taçâo e execução (ver Cap. 6) , natural111 nte,
os endereços vão $C $Ucedendo no Cl (ver de. c.-içâo e oper:lçâo do conrador de instrução no Cap. 6}
eqíiencialmeme, e ·cem quando ocorr a.Lgum loop ou comando de de vio em que a cqü "nci de
execução é abruptamente alterada.
SU$W

122 / JVlemórit1 Cnd1c

MP

Ou~o progarna

Parle 1 {
dop<0g.A

caJI Slirrotina 1
ooop,
ooop2
sub-rotina 1

parts2
Figura 5.2 Um programa e1n execução
com várias partes (exemplo do princípio
de localidade especial).

Ao analisar a estrutura e a execução de diversos programas (comerciais, científicos, programas de exercícios


crc.), os pesquisadores verificaram que os programas são, em média, executados de fonna semelhante, isto é,
em blocos de instruções seqiienciais, sendo algumas delas mu itas vezes executadas mais de uma vez em curtos
intc1valos de tempo.
Há vários exemplos cm serviços e práticas cotidianas, seja em computação ou não, que seguem essa tendência
de realizar uma pequena q uantidade do total de tarefas (ou qualquer coisa semelhante} mais frcqüencemente e,
por isso, essas tarefas ou ações são separada.~ para mais rápido acesso. Assim, quando estamos navegando na lntemet
temos a tendência de acessar uma página de um site mais de uma vez em curto espaço de tempo, ou seja, acessamos
aquela página, passamos para outra e o utra e, pouco depois, voltamos àquela página inicial. Os sistemas tendem
a guardar essas páginas acessadas en1 nossa n1e1nória para evitar um longo acesso várias vezes à mesma página.
Outro exemplo pode ser de uma recepcionista de um escritório qualquer, que precisa realizar (ou recebe)
contatos de muitos clientes em um período de tempo de trabalho. As fichas de todos os clientes podem estar
em ordem alfabética em um arquivo de aço, afastado de sua mesa e, assim, ela precisa buscar uma a uma se-
qüencialmente, embora muitos dos clientes há muito tempo não procurem o escritório e um grupo menor é
freqiientemente contatado. Para facilitar seu trabalho, aumentando a produtividade nos contatos, é preciso
que ela perca pouco tempo buscando a ficha de um cliente, o que pode ser obtido se a ficha estiver em uma
pequena pasta suspensa, colocada cm cima de sua mesa (mas a pasta tem espaço para poucas fichas) .
Ao longo do tempo de trabalho (de execução, no caso de um programa, por exemplo), a recepcio nista vai
colocando na pasta suspensa em cima da mesa as fichas dos clientes de contato mais freqiiente, de modo que
sempre q ue ela precisar fazer comato com algum ela procura sua ficha primeiro na pasta da mesa, onde ela
deve, na maio ria das vezes (mais de 90% a 95%), encontrar a ficha desejada, ganhando um tempo considerável
e1n relação ~o processo inicial, em que ela precisai;a levantar-se e ir ao arquivo de aço cada vez que desejasse
uma ficha. E desnecessário mencionar que seria praticamente impossível a recepcionista trazer o arquivo para
ci1na de sua 1nesa, pois o tempo de busca de uma ficha entre várias centenas delas continuaria a ser maior do
que procurar uma ficha entre algumas poucas dezenas, na pequena past.1 suspensa.
Da mesma fonna, uma loja armazena nas prateleiras artigos semelhantes em uma mesma prateleira, pois um
cliente quando localiza.: apanha un1 artigo é rnuito provável que queira tarnbém exa1ninar um outro parecido
Sn$W

Mem6ria Cat/1< I 123

e gastará pouco tempo buscando-o, pois está annazenado ao lado. O mais provável é que o atendente retire
da prateleira para ci ma do balcão todos os produtos semdhantes ao que o cliente deseja, e que estão armaze-
nados juntos. O tempo de acesso no balcão é naturalmente muito menor que a ida à prateleira.
Poderíamos ficar aqui apresentando inúmeros outros exemplos da localidade de busca, ou seja, grupar pe-
quenos itens de acesso &eqüente próximo ao usuário para seu uso freqüente.
A este ripo de comportamento dos programas em execução, concluído pelos pesquisadores, chamou-se de
pri11dpio da localidade.
Basicamente, e de modo simplista, podemos definir o conceito de localidade como sendo o fenômeno
relacionado com o modo pelo qual os programas em média s.-io escritos pelo programador e executados pelo
processador. Este princípio, a1iáis, não é aplicado apenas em memórias cache, fisicamente existentes em um
chip, mas deu origen1, como já observamos anteriormente, ao desenvolvimento da hieraquia de memória,
com a implementação de diversos tipos diferentes de 1ne1nória e1n um sistema de computação e mesmo, como
mostrado nos exemplos, ao seu amp]o uso na nossa vida comum.
Prosseguindo, este princípio pode ser decomposto em duas facetas ou modalidades: localidade espacial e
temp()ra/.
Na realidade, os programas não são executados de modo que a MP seja acessada randomicamcntc como seu
nome sugere (RAM). Se um programa acessa uma palavra da memó,ia, há uma boa probabilidade de que ele cm
breve acesse a mesma palavra novamente. Este é o princípio da /«a/idade temporal. E se ele acessa uma palavra da
memória, há uma boa probabilidade de que o acesso seguinte seja uma palavra subseqüence ou de endereço adja-
cente àquela palavra que ele acabou de accssar. Nesse caso, trata-se da modalidade /«a/idade espacial.
A modalidade de localidade espacial é aceitavelmente simples de ser entendida, pois se refere ao fato já
mencionado e mostrado anteriormente de que os programas s.io executados em pequenos blocos de instru-
ções, blocos esses constituídos de instruções executadas seqüencialmente. Na realidade, na maior parte do
tempo é isso mesmo que acontece, tanto que o hardware do controle de execução das instruções nos proces-
s.1dorcs é construído com este propósito (no Cap. 6 será mostrado que, após a busca de cada insm,ção o hardware
- registrador que armazena o endereço de acesso a instrução (o contador de instrução C I) - é incrementado
para apontar para o endereço da próxima instrução na seqüência, pressupondo, então, que é ela a desejada).
Eventualmente, esta ordem seqiiencial é quebrada por uma instrnção de desvio, como, p.ex, um IF-THEN-
ELSE ou um D0-WH ILE, ou uma chamada de rotina etc.
A modalidade temporal refere-se ao fato de os programas renderem a usar freqüentemente o mesmo ende-
reço em curtos espaços de c.empo, conto, por exemplo, em um loop (ou no caso da visita ao mesmo site várias
vezes, como mencionamos no início deste capítulo). No caso de nossa rcccpcionista, é comum ela acessar a
ficha de um 111csmo cliente várias vezes em curtos intervalos de tempo.
A Fig. 5.2 já mostra um exemplo do princípio da localidade espacial. Nesta figura, um certo programa
pode ser constituído de um grupo de instruções iniciais, realizadas em seqüência (parte 1), de dois loops (loop
1 e loop 2) de uma sub-rotina chamada dentro do loop 1, o que significa que ela será repetida diversas vezes,
e do resto do código (parte 2 e parte 3).
O que acontece é q ue cada parte do programa (parte 1, loop 1, sub-rotina, loop 2, parte 2 e parte 3) é
realizada separadamente, isco é, durante um tempo o processador somente acessa o gru po de instrução da
parte 1, depois se dedica ao loop 1 e, neste, dive~as vezes salta para a área da sub-rotina e acessa somente seu
código, e assim por diante. Ou seja, o programa não salta indiscriminadamente da primeira instrução para
uma no meio do programa, depois para outra no final, retornando para o início etc.
Na Fig. 5.3, apresentamos um programa em C, cuja estrutura e execução podem ser analisadas do mesmo
modo, e com isso podc1111os identificar a existência de ambos os princípios, da localidade espacial e da loca-
lidade temporal.
Pode-se observar, na figura, um exemplo da existência de localidade espacial na execução de programas,
através da apresentação de um prognnna que cakuJa a média de duas turmas; com ele podemos vislumbrar a
propriedade do emprego da memória cache em sua execução.
Sn$ W

124 / Memória Cad1e

Cálculo da média de 2 turmas. A e B

void main ()
{
prlntf ("Número de alunos da turma A:"): início de execução em seqüêneia
seanf ("%d", &quanl_A);
maior nota A= -1;
soma:nota:A = O: término execução em seqüência
for (i=O;i < quant_A: I++)
{ k>op - inicio
printf pnforme a matricula do aluno:");
seanf ("%d",&matt[OI~));
printf ("Informe a nota: '");
seanf ("%f',&nota[O][i));
if (nolaJOl[ij > maior_nola_A)
malor_nola_A = nolaJ01[1I:
soma_nota_A = soma_nota_A + nota(Ol(1J:
) k>op • término
medla_nota_A = soma_nota_A f quant_A:

ctrscr (); sub-rotina (limpa tela)

printf ('Número de alunos da turma 8 : }: inicio de exec. em seq.


seanf ("%d", &quant_B);
total= O;
soma nota B = O; término exec. seq,
for (i=Õ;i < Quant_B; io)
{ k>op • inicio
printf ("Informe a matricula do aluno:");
seanf ("%d",&matr[1 I~));
printf ("Informe a nota: '''):
seanf ("%f',&nola[1 ][i));
if (notaJ1J[i] > maior_nota_A)
total++;
soma_nota_B =soma_nota_B + nota[1 1(I):
} término· loop
media_nota_B = soma_nota_B / quant_B: eâlculo média tunna 8
printf ("A média dos alunos da turma A toi: %4 .2r, media_nota_A) :
printf ("A média dos alunos da turma B foi: %4.2f", media_nota_B):
printf ("Anota mais alta da turma A foi: %4.2f', maior_nota_A);
printf ("%d alunos da turma 8 obtiveram nota superior â maior nota da turma A". total);
}

Figura 5.3 Exemplo de programa para demonstração de localidades na sua execução.

Pode-se observar no programa os trechos de execução em seqüência, bem como dois loops, que mostram
também a localidade temporal.
Assim, seria uma boa idéia tirar vantagem daqueles princípios de localidade se se colocasse a parte repetitiva
de um pedaço do programa t!m uma memória bem rápida, mantendo o restante do progranrn, q ue não está
sendo u tilizado no momento, na men1ória 1najs lenta e de maior capacidade, porém mais barata .

5.2.3 Org anizaç ão e Funcio n am ento da M em ó ria Cach e


Como aproveitar, então, os dois princípios da localidade? Confo11ne mencionado no parágrafo anterior, o
projetista do sistema cria um elemento de memória intermediário entre o processador e a MP, como mostra-
do na Fig. 5.4. Este elemento de memória, denonúnado memória enche, deve possuir elevada velocidade de
transfei-ência e um tamanho capaz de armazenar partes de um programa, suficientemente grandes para obter
o máximo rendimento do princípio da localidade espacial e suficientemente pequenas para não elevar em
excesso o custo do sistema de computação.
Praticamente em todo <..--ste capítulo estamos nos referindo à memória cache fisicamente real, que é locali-
zada internamente no invólucro do processador ou que é um chip inserido na placa-mãe, seja na sua organi-
zação e funcionamento, seja também referente aos seus elementos de projeto. Este foi o objetivo dos pesqui-
sadores e projetistas de sistema nos primórdios da computação; naquela época e durante algum tempo sua
SDêW

1l-!emóri11 Cacl,e / 125

Processador

CACHE

Fiigura 5.4 Organização para transforência de informações entrse Proc:essador/Cache/MP.

ap]icaçào e re um.ia nes e us.o. No entanto, atualmente e empr ga o ten110 cndrt p3r.:1 ·x:pn; ~r e rganiz.lr
diferentes tipo de aplicaçào de armazeuamenw em si remas de computação (ver item eguint , 5.3), como
cache dedico cache no naveg, dor (brm er) e qualque--r ourro isrema de am1azemm-1ento que se valh,a d..ts
caract ·rí. cicas. do princípio da local idade.
Com a incht.ão da memória cache eiitre o proce$Sador e a memória principal, podemos descrever os se-
guintes elementos e um proced:imento de funcionamento entrem trê com:ponentes, confomie mostrado na
Fig. 5.5.
a figura ob erva- e que a cone,."iio entre o di positivos. é comum ao prncessador e is duas memó.rjas, de
n1odo que, colocado unl! endereço no BE, em: é: "visto' ranro pela memória cache quanro pela MP; o mesmo
ocorre com o BD embor ob outro, a p1;cto. Isto, cm 10 ver ·mo. a cguir, tem pm propó. ito clcr r o pr-o-
Ct.:. so de tramJr.m.mcia ao fucilh;;u· a comunicação entre os trê componente .
De. de o princípio, e pdo 11:11e11os até os d'a atuaj o proce s.ador é projetado para, quando de ejado, soli-
cica1· um dado 4u · e. tcj:t armazenado na MP e, por is o, coloca no BE um valor binário corr pondente ao
e11dereço de t.1111, célula (1 byte} d.a MP, índcp ·ndr.:ntemente do fato de e.x:istir ou não memória cache. Sem
nm det~1mo~ n~. se im.t,rnte sobP a 01-ganização da cad e, van os apenas descrever o proces o operacional de
urna tran ferência de dado e11tre o t -ês componentes e em eguida des.crevere1nos a organização do si tema
todo.

Funcioname'nto, Gené.rico de Acess,o


fürc procedimento operacional pode ser apresenta.do (sempre de fonna simplificada, ver Fig. 5.5) referin-
do- e a uma operação d.e ]eimra de 1 byte de dados (l célula da MP) conforme numerado n;i página .1;;gu1nte.

Memória
Piocessador prinolpa1

8 D • Barramerito de dados

Figura 5.5, Exenrplo de conexãio e fuucio-n.ame,nto do si tema proce·sa.do,r , cache e memór·a p,.r ·nciipal.
Sn$W

126 / Memória Cac/re

1. o processador inicia a operação de leitura e coloca o endereço desejado da MP no BE (ver item 4.3.3);
2. o sistema de controle da cache intercepta o endereço, interpreta seu conteúdo (dependendo do método
de mapeamento de endereço cache/MP a interpretação dos bits do endereço é diferente, confo rme
veremos no item 5.4.3);
3. da interpretação do endereço o controle da cache conclui se o byte (dado) solicitado está ou nào arma-
zenado na cache. Se esdver, este fato é denominado acerto (ou /,ir) . O dado (cópia) é transferido, pelo
BD, da cache para o processador na velocidade desses elementos, muito maior que a MP/processador.
4. se o byte desejado não esdver armazenado na cache. este fato é denominado falia (ou miss) . Nesse caso, o
comrole da MP é acionado para localizar o bloco da MP que contém o byte desejado e este bloco é rrnns-
fc,ido para a cachc, sendo armazenado cm uma linha daquela memória (a seguir será definido o que é um
bloco de MP e uma linha da memória cache). Em seguida, o byte desejado é transferido para o processador.
Naturalmente, a operação dccon·cntc de umafalta é muito mais demorada que a de um acerto, e será mais
ainda se o conteúdo da linha (algum byte dela) tiver sido alterado, pois esta terá que ser transferida de volta
para a MP para garantir a integridade dos dados alterados após o ténnino da execução do prograrna;
5. considerando o que é estabelecido no princípio da localidade espacial, de que, realizado um acesso a um
dctcnninado endereço, o acesso segu in te deve (é muito provável) ser realizado no endereço contíguo de
memória e tendo em vista aproveitar ao máximo a maior velocidade (pequeno tempo de acesso) das
memórias cache, quando o sistema de controle tiver que buscar um dado na MP ele busca esse dado e
mais alguns que se supõe o processador desejará em seguida. Daí o conceito de divisão da MP em blocos
de X bytes e da cache em linhas com X bytes de largura.
O que se deseja, então. é um máximo de acertos (/rits) e um núnimo de faltas (misses), para que o sistema
tenha um bom desempenho. Podemos definir um valor de eficiência da cache pela relação entre acertos e o
total de acessos:

E = Acenos (Hit} * 100 sendo E, = eficiência da cachc.


' T oca) aces.~os

Exemplo 5.1
U m determinado sistema de computação possui uma memória cache, MP e processador. Em operações
normais, o btêm-se 96 acertos para cada 100 acessos do processador às memórias. Qual deve ser a eficiência
do sistema cache/MP?

Solução
Se e m 100 acessos ocorrem 96 acertos, teremos quato faltas e a eficiência do sistema será:

96
E = - = O 96 * 100 = 96%
' 100 '

Organização Genérica de Memórias Cachc


Para pernútir, com aproveitamento, o funcionan1ento adequado dos sistemas de armzenamento, as memó-
rias cache são organizadas de modo diferente da memória principal (RAM) e essas, por sua vez, passam a ter,
para o sistema de acesso processador/cache/MP, uma organização lógica diferente da tradicional organização
fisica (conjunto de N células seqüencialrnente organizadas por endereços subseqüentes de t a N - 1). Na
realidade, uma outra memória, chamada virtual, também se encaixaria nesse mesmo tipo de organização a ser
apresentado (na memória secundária), mas não faz parte do escopo deste livro) .
A Fig. 5.6 rnosrra um exemplo de organização básica de memória cachc, e na Fig. 5.7 é mostrada essa mesma
o rganização de memória cache, mas foi acrescentada a memória principal , com sua organização tisica-padrão
(e111 células) e a organização lógic:=i apropriada, cm blocos, para funcionamento com a memória cachc.
SDêW

M mória C<1dre / 127

Memoriai cacile
Linha O 1 3
I I
Byte Byte Byte
2 1
~~ Byte O {clih.1la O)

Linha 1 M • • ~ ...... Byte O(ci!l1.1la 4)


llnh~2 " ' ' li

L Linhas

Lima L - 1 ••• M

Tàg Da.C!M;
Fig111,lt'a 5.6 Organização básiica de umil memória ~ache,

D!.! !! mod , a MP pc:rm.i.nc:ct: 6. icamcnt:e como uma seqfiência ordenada e co11tí11ua de célula.. ou byte
vi to que na prática, conforme já mencionado no Cap. 4 atualmente rodas as memórias principais (RAM) :são
organizada com c,élulas de largura igual a 8 bits, ou 1 b te_

Mem6Jla pt'lncipal
Memória cad1e Byh~ o(ce u a O)

Linha O J B~ell B~e


Byte !Byte
1 o Bloco O
Byle 1 (célu a 1)
Byle 2
Byle :3
.' ..
1

Byte Byte
Linha 1
1 o Byte 4
By1a 5
Linha 2 li • ~ • .... a li ~ 1
Bloco 1
Byte 6
Byle 7
B Blocos. Byte 8 Nt de cétulas
Byte 9

l nha L - 1
li l ªfe 1 1

Tag Dados 1

. igura 5.7 Organização memór'a cache/memória p:rincipat

' o 1!ntanto para funcionar com a cache im rida no i te111a o commk da cache (rnmbém locallz.ado no
d1ipset- ver Caps.. 4 e 6) cons.idern a MP organizada em bloco de X d]ulas ôu X byte cada, de mod q ue,
quando há una olicitação de tran ferência de dado pelo proce sador e o sistema de controle não ~ncontl,) o
dado desejado na cache ocorre a ua transferênda d.a MP para a men óda cache, porém não ó e te byte i:.
n":lnsferido, mas também o ubseqüemes, que fuzem parte do conjunto (bloco). Repetindo o que foi menci-
onado anteriormen te, isso e ba eia no prindpio da l,(lctdidrule espacial. Ou seja, tF.lm,fere-se o dado desejado
e mai: . aJgtm outros que se pressupõe o proce sador irá preci1>a1· logo em seguida.
o ex,e mplo d~ Fig.. 5.6 e 5.7, e da bloco pos ui 4 byte. {quatro célula ) de largura que de e s r a me. ma
largura de uma linha da cache, i·co é o X = 4 (fargura de bloco/Linha).
Em r~mmo (Fig. 5. 7):
A MP é fisicamente organizad:a em uma seqiiência con inua de · células cada uma com 1 by~e de lar-
gura; então, é constituida fisica111ente d bytes d dados, do endere o O (byte ) até o ndereço N -
1 (b te N - ·1).
Sn$ W

128 / Memória Ca,;/,e

Para funcionar integrada ao sistema processador/cache/ MP, esta última é organizada em B blocos, de X
bytes (X células cada um), cada um deles com endereço B,. sendo i = O a B - 1.

Quantidade de células (bytes)


Quantidade de blocos = ---'--------;....:..---'-
Largura de 1 bloco (X bytes)

A memória cache é organizada em um conjunto de L linhas, sendo cada linha constituída de X bytes,
mesma largura de 1 bloco da MP. As linhas têm endereço de O até L - l . Além disso, cada linha possui
um campo indicador do endereço do bloco que está naquele instante annazenado nela. Este campo é
chamado T ag ou rótulo (usaremos no decorrer deste capítulo o termo Tag, mais conhecido na literatura) .
Então, cada bloco ou linha, possuindo X bytes de largura, cada byte é endereçado igualmente por ende-
reços O, 1, 2 .... X - 1 e, portanto, sua localização é composta, no mínimo, pelo endereço do bloco e do
byte em seu interior.
No exemplo da Fig. 5.7, a largura de l bloco/Linha = X = 4 bytes, de modo que teremos sempre os
bytes O, 1, 2 e 3 (que é X - 1). O bloco de endereço O (bloco O) é constituído dos bytes O, 1, 2 e 3,
correspondentes, respectivameme, às células de endereços O, 1, 2 e 3; o bloco 1 é constituído dos bytes
O, 1, 2 e 3 dele, correspondentes, respectivamente, às células de endereços 4, 5, 6 e 7; o bloco 2, cons-
tituído dos bytes O, 1, 2 e 3 dele, correspondentes, respectivamente, às celulas de endereços 8, 9 , 10 e 1 1,
e assim por diante, até o bloco B - 1 (último bloco da MP).
É claro, a q uantidade de blocos B é sempre muito maior que a quantidade de Linhas, L, requere ndo que se
tenha que definir métodos para mapear os blocos da MP nas poucas linhas da cache; no ite m 5.4.1 serão des-
critos três métodos desenvolvidos: direto, associativo e associativo por co11jut1to.
É importante ressaltar a importância do princípio da localidade (importância da construção de programas
de forma estruturada) , pois, mesmo se tendo uma e nonne relação entre quantidade de blocos e quantidade de
linhas (tamanho da MP muito maior que o da cache, como, p.ex., c m sistemas atuais, com 128MB o u 256MB
de MP e caches L2 de I MB a 4MB e dessas para as Lt com algumas poucas dezenas de KB) , ainda assim, a
eficiência das memórias cache, E, , é da ordem de 95% a 98%.
A Fig. 5.8 mostra um processador com barramento único (ônibus) e memória cache incluída.

-
POOCESSADOO

-
- MEMORIA
<:ACHE

-
SISTEMA
DE
EIS
-
CCHTACI.AOOA
OE
DISCO
MP

1 8ARAAMEHTO ONICO- OAOOS-. ENOEAEÇOS ECONTROlE.

Figura 5.8 Exemplo de um sistema de computação (mkrocomputador) com utilização de memória cache
em um barramento único.

5 .3 TIPOS DE USO D E MEMÓRIA CACHE


A importância das memórias cachc nos sistemas de computação é inquestionável, e atualmente elas setor-
nam cada vez mais imprescindíveis para um correto e eficaz desempenho dos sistemas. Esta importância tem-
se traduzido, entre o utros elementos, no desenvolvimento ê na c1iação de diferentes tipos de cache.
Em princípio, podem -se definir dois tipos básicos de emprego de cache nos sistemas de computação con-
tempor:ineos:
SU$W

Memória Cacl,e / 129

• na relação UCP/MP (cache de RAM ou "RAM Cache") e


na relação MP/ Discos (cache de disco o u "Disk Cachc") .
O pti meiro tipo, cache de RAM ou cache para a MP, refere-se ao conceito exposto nos itens anteriores,
em que a memória cache é utilizada para substituir o uso da memória principal (ou RAM) pelo processador,
acelerando o processo de transferência de dados desejados pelo processador.
No segundo tipo, cache de disco, o sistema funciona segundo os mesmos princípios da cachc de memória
RAM, porém, em vez de utilizar a memória de alta velocidade SRAM para servir de cache o sistema usa uma
pa,~e da memória principal, ORAM, como se fosse um espaço em disco (vale-se de uma parte da RAM como
buffer). Deste modo, quando um programa requer um dado que esteja armazenado em disco, o sistema veri-
fica em primeiro luga,· se o dado está no espaço reservado na memória RAM e que simula o espaço em disco;
da mesma fonna que na cache de RAM, se o dado for encontrado no bufíer da memória (que simula o espaço
em d isco) haverá um acerto (hi t), e se não for encontrado lá então ocorre uma falta (m iss) , e nesse caso o
sistema interrompe o seu processamento para acessar o disco efetivamente, localizar e transferir o dado dese-
jado e mais um bloco de dados subseqüenres, de modo semelhante ao da cache de RAM.
Assim como no caso de cache de RAM, a cache de disco pode aumentar excepcionalmente o desempenho
do sistema, visto que o acesso à memória RAM (fàixa de nanossegundos) é milhares de vezes mais rápido que
o acesso ao disco (fàixa de milissegundos).

5.4 ELEMENTOS DE PROJETO DE UMA MEMÓRIA CACHE


Para se efetivar o projeto e a implementação de uma memória cache deve-se decidir entre várias alternati-
vas tecnológicas, atualmente disponíveis, as quais podem ser agrupadas por fi.mção:
Função de mapeamento de dados MP/ cache
• Algoritmos de substituição de dados na cache
Política de escri ta pela cache
Níveis de cache
Definição do tamanho das memórias cache. Lt e L2
Escolha de largura de linha de cache

5.4.1 Mapeamento de Dados MP/Cache


Para entender melhor o sentido desta função como elemento de projeto de memória cache, vamos repetir
algumas considerações sobre a organização da MP e memória cachc, explicadas no item 5.2.3. A memória
RAM (MP) consiste em um conjunto seqüencial de N = 2• palavras endereçáveis (células), cada uma possu-
indo um único e unívoco endereço com E bitS de largura; as células são dispostas a parcir do endereço Oaté a
célula de endereço (N - 1) e, na prática, todas possuem largura de 8 bits ou 1 byte para armazenamento de
dados (ver exemplo da Fig. 5.7).
Para efeito de funcio namento da memória principal, MP (memória RAM), com a memória cache, consi-
deremos:
- que a MP está organizada como um conjunto de B blocos (numerados de Oa B - 1);
que cada bloco da MP é constituído de X células (X bytes, já que nos sistemas atuais uma célula arma-
zena 8 bits o u I byte de dados);
que a quantidade B de blocos da MP é B = N / X ou B = 2• / X (ver Fig. 5.7);
que a memória cache é organizada como um conj unto de L grupos de bytes, sendo cada um deles deno -
minado linha. Cada uma das L linhas da cache possui X bytes, isto é, a mesma quantidade de bytes de um
bloco da MP;
o tamanho da cache {L • X bytes) é sempre muito menor que o tamanho da MP (B * X bytes) .
Sn$W

130 / Mem6ria Cat/1<

Observemos, então, a extraordinária tecnologia de uso da 1nemó1ia cache: esta memória possui uma capa-
cidade menor que 1% da capacidade da memória RAM, mas perntite obter 90% a 95% de taxa de acertos
(hits}. É por esta razão que atualmente todos os sistemas utilizam o conceito de cache com mais de um tipo,
LI e L2, e muitos com L3 também). Naturalmente, esta enorme eficácia é possível graças ao conhecimento
do princípio da localidade, exposto anreriorn1ente. Para recapitularn1os este princípio utilizemos um simples
exemplo, através de um pequeno loop, dos inúmeros que qualquer programa tem.
Suponhamos um trecho de um programa do tipo:

Índice = 1000
Enquanto Índice diferente de zero
Iniciar
?((Índice).= A (Índice) + B (Índice)
Indica = Indica - 1
Terminar

Neste exemplo, consideremos que a memória cache é capaz de armazenar este simples trecho do progra-
ma. Isto significa que em 999 vezes das 1000 o sistema obterá um acerto, ou seja, uma taxa de acerto da ordem
de 99,9%, mesmo considerando-se que sua capacidade seja muito menor que a da memória RAM.
A cada instante, a memória cache possui um conjunto de blocos de MP arn,azenados em suas lit1/ias, com
os dados que o processador deve precisar (para haver acertos e não fui tas). Porém, como L < < B (há muito
mais blocos que linhas) não é possível uma li11/ia da cache estar dedicada a a,mazenar um específico bloco da
MP, ou seja, uma linha é usada por mais de um bloco e, por conseguinte, é preciso identificar, em cada ins-
tante, qual o específico bloco que está armazenado na específica linha da cache. Pata isso, conforme mencio-
nado anteriormeme, cada linha tem um campo (além daquele para armazenar as X palavras), denominado
etiqueta (rag), que contém a identificação do bloco e que, como veremos a seguir, fuz parte dos E bits do
endereço completo da MP.
Considerando, então, a grande diferença de tamanho entre as duas memórias, ou seja, há uma grande quan-
tidade de blocos da MP que, durante o funcionamento do sistema, precisarão ser armazenados na pequena
quantidade de linhas da memória cache (por demanda do processador ao longo da execução dos programas).
Em outras palavra.<, há necessidade de se determinar um meio eficaz de determinar qual a linha em que um
bloco específico será armazenado, quando solicitado pelo sistema. Ora, como B > > L, então não se pode ter
uma relação 1:1 entre eles, daí a necessidade de estabelecer um mécodo de mapear os endereços dos blocos
com os endereços das linhas. Há três alternativas:
• Mapeamemo direto
• Mapea1nento associativo
Mapea1nento associativo por conjuntos
Na realidade, poderíamos classificar em dois: direto e associativo, tendo este duas modalidades: completo e
por conjuntos.

Mapeamento Direto
Por esta técnica, cada bloco da MP tem uma linha da cache previamente definida onde será armazenado.
Como há mais blocos do que linhas da cache, isso significa que muitos blocos irão ser destinados a uma mes-
ma linha, naturalmente, um bloco de cada vez; é, portanto, preciso definir a regra a ser seguida pata a escolha
da linha específica de cada bloco.
Desta forma, os X primeiros bytes (X primeiras células) da MP constituirão o bloco O (zero), o qual estará
previamente destinado (quando tiver que ser armazenado na cache) à linha de endereço O (zero) da cache.
Os X byt.e s seguintes constituirão o bloco 1 (um), o qual estará previamente destinado à linha de endereço
1 (um) da cache, e assim por diante, até o bloco de endereço correspondente ao valor L - 1, o qual estará
previamente destinado à linha de endereço L - 1 (última linha da cache) .
SDêW
Me1mfrit:r C aclle I 131

Os X byte:c. s:eguint:1; con tituirão o bloco de endereço oonespondente ao valor L, o qua] também e tará
desdnado ao endereço O (zero} as:.im como o bloco L + 1 mapeado à linha 1 (um) da cache o bloco L + 2
à linha 2 e a sim por diante.
As!>im a linha O (zero) da cache é de tino, d1.: am1azc:n mc:nto do. blocos O (zero} L, 2L, 3L etc. (natu-
r.-ilmeme, um em cada inswnt ck tempo); a linha 1 (u111) é d ·stino dos bloco~ 1 (um). L + ·1; 2L + 1 etc.
N a Fig. 5.9 apresema-se um exen'llplo simple'> par.l moscnn-, com números os den ento aqui menciona.dos
'11CJllla .

N o exemplo, , M P po.. ui 64 c~lula de ·1 byt cada, ou um total de 64 byce!. (64E} e a memória cache mm
uma capacidade de 16 byte.:. ("16B). A M P ,-; oi-gani:zada em bloco d · 4 b} te!. (células) c~da um, de bycc O a
byte 3, me n a fargura d, linha da cache.
Como a cache po5"-s.ui um total de 16B cada linha tem 4B de largura, ela acQm oda apenas quatro ]inha.
endereçada de- linhl O .i 1:imha 3 (v ·r a ig. 5.9).

Mapeada
IByte Byte 5yte Byte para a
3 2 1 o cadie na:
Linha O Byte I IByte
3 2
Byte
1
L B3oco O Linha O

Liinlla 1 BICICO 1 Unha 1

Llnh-a 2 Bloco 2 Unha 2

l.ilnh,a 3 SIOCO 3 Unha 3

Bloco 4 Unha 4

Bloco 5 Unhca 5

Blcico 6 Unha 6

Bloco 7 Unha 7

BIOCO 8 ünl'la 8

Bloco 9 Unoo 9

BloCCJ 10 linha 10

Bloco 11 linha 11

B1000 12 l inha 12

Bloco 13 Linha 13

Blooo, 14 linha 14

Blooo 15 Linha 15

Figura 5.,9 Exemplo de m:11peamento direto. A m em 6ri~ possui 6,4 dfolas (M bytes) e a memória cache
possui 16 byte · (quatro linhas com q·u a ro bytes cada) .. Cada Unha pode armazenar quat ro blo,oos, um ,d,e
ada vez. Ex,~ mp]o: a linha O pode arn1aze11ar os blocos O, 4, 8 e 12.
snow
13 2 / Mt'mórfo Cacl1e

Em restmo:
Total d~ capacid de da MP ""' 64B ou 2". ou seja,. c:ad;i endereço E da MP possui sei bits de largura.
Total d bloco """ 64B / 4B ""' 16 ou 2-1.
Capacidade total da cadw = 16B, 1; c,1da linha = 4 byces.
Toral de linhas = 16 / 4 = quatro linhas ou 22 ou seja, cada. endereço de linha pos.sui 2 bits d1; largura.
omo há 16 bloco na MP quatro linhas na cache cada hnha pode acomodar quatro blocos natl1ral-
m nt um d cada vez. Sabema que 4 ""' 2:?, ou seja, 2 bit p3ra. tag.
Para detalhar um pouco mai!s o método, aprt-st:nr:a-se um outro exemplo (exemplm. nunca são demais. para
melhor comprei;n ão do leitor), a.inda com valore pequenos. de modo que o desenhos posam ser completo
em tei-mo dos l;lh:m!;ntos da n'lemórias, ~ que.: está mama.do na. Fig. 5.10.

Blooo MF> Bytfr


00000 (O)
0000 00001 (1)
00010 12)
TL 0001
00011 (3)
o:
Lintia 0000-010CM000-1100 00100 (4)
Linha 1: 0001-0101-1001 -1101 0010
Linl'lã 2: 001 o-0110-101 0-111 0
00101 15)
Lintia 3'. 0011-0111-1011-1111 00110 €6)
0011 00111 (7)
01000 (8)
0100
01001 (9)
01010 (10)
Tag Dados 0101 01011 (11J
01100 (12)
(00) Unha O Byte 1 Byte O 0110
01101 (13)
0111 O (1 4)
(01 l Li11na 1 0111 01111 (15)
(02) Unha 2 1000
rnooo (16)
10001 (17)
10010 (18)
(03) Linha 3 1001
10011 (19)
10100 (20)
1010
• E.mfer,eço (fa MP com 5 lbtts (2' - 32) 10101 (21)
- Endereçt1 interpretado pele ceche: 10110 (22)
1011
10111 (23)
HOOO (24)
-----5 b i t s - - - - ~ 1100
111001 (2:5)
11010 (26)
Tag L nha Byt@ 1101
11011 (27)
11100 (28)
2bits 2 bits 1 bi1 mo 111101 (29)
1U10 (3(1)
1111
1U11 (31)

Figura 5.10 Exemplo de organização com ma:pea,niento direto em uma MP com 32 cé]ufas (bytes) e uma
cache com quatro linhas de 2 1/:lyt~s cadili.

Na figura., observam-se o seguintes. elementos. e valore :


Memória principal, MP, com 32 células de 8 bits cada um~. ou 32B (b tes.), com endereço. desde O
(zero} atl! 31. Colll.O 25 = 32, cada i:ndcr ·ço bi11ário pó-ssui 5 bits d~ largur~ e vai de 00000 até 11111,
como mostrado à direita de cada célula.
A MP é rninbém tn·ganizada cm bloco. de 2 byte~, totaliz:a.1ido B = 32 / 2 = ]6 blocos 1;;, como 2 4 ""' 16,
emào cada bloco cem um endereço de 4 bits de l.a.rgura indo de 000 té l 111 como mo tra.do à. cs-
qnerda de cada blocü da. MP Jla figm"i'l. Ob~i.:,va-~c:: qui:: o!> cndi::rcçrn. do. blocos cone pondcm aos qua-
tro algaTismo n1ais . ignificadvo (ma.i~ à t:SlJuerda) do end,l·reço de Lima célula.
Sn$W

Mtmória Cache / 13 3

A memória cache possui 8 bytes de tamanho para dados, sendo organizada em quatro linhas de 2 bytes
cada uma, pois os blocos da MP também têm largura de 2 bytes. O endereço de um dos dois blocos
precisa apenas de I bit (bloco O ou bloco 1), sendo, portamo, o último algarismo à direita do endereço
da célula. Em outras palavras: os 5 bits de endereço de célula dividem-se em quatro para os endereços de
cada um dos 16 blocos e um para o endereço do específico byte.
Como a cache possui quatro linhas, cada endereço de linha é um número de 2 bits de largura (22 = 4).
- Tendo 16 blocos para serem annazenados (quando solicitado pelo processador em um detemúnado acesso)
em uma das quatro linhas, isto sig,úfica que cada linha terá atribuição de receber quatro blocos (16 / 4 = 4),
estando previarnente d~c.enninado como isto ocorrerá. A figura confim1a o que já foi 1nencionado anterior-
mente:
• A linha de endereço 002 (decimal O) recebe os blocos 0000 - 0100- 1000 e 1100 (observa-se, nesse
caso, que os dois bits à direita de cada bloco são 00 nos quatro blocos - endereço da linha).
• As linhas O1, 1Oe 11 receberão os blocos indicados na figura. Ve1ifica-se que os dois últimos bits são
sempre o endereço da linha.
Como temos quatro blocos para cada linha, é necessário um meio de identificar qual deles está arn1aze-
nado em um dado instante para que o sistema identifique se ocorreu uma fàlta (miss) o u acerto (hit} cm
cada acesso e tome as providências de acordo. Para isso, as memória.~ cache possuem um campo adicio --
nal ao dos dados, denominado etiqueta (ou, em inglês, tag), o qual penni te identificar qual bloco, daque-
les destinados àquela linha, está armazenado. No exemplo mostrado na Fig. 5.1 O, o campo tag possui 2
bits de largura (correspondendo aos 2 bits mais significativos do endereço da célula, mais à esquerda) .
Neste ponto, podemos mostrar o formato de endereço de célula como é interpret:ido pelo sistema de con-
trole da cache para determinar se o byte requerido está na cache (hit} ou se não est:í (miss).

5 bits - - - - -
Tag Linha Byte
2 bits 2 bits 1 bit

O endereço é subdividido cm três campos d istintos, que serão interpretados de forma diferente pelo siste-
ma de controle da cache:
Tag - 2 bits (2' = 4 blocos por linha) - scrve para se s.1ber que bloco está armazenado no momento na linha
especificada;
Linha - 2 bits (2 2 = quatro linhas) - indica o endereço da linha onde pode estar o dado;
Byte - 1 bit (21 = 2 bytes por bloco) - caso haja um acerto (hit}, indica qual byte está sendo requerido pelo
processador.
Vamos considerar, em seguida, um exemplo com valores mais reais.
Seja uma memória pri ncipal (MP} com espaço de endereçamento de 4G8 (células), tendo cada uma um
endereço com 32 bits (2l2 = 4G), como acontece nos processadores INTEL Pcntiurn o u AMD K7 e o utros.
Para exemplificar, vamos assumir que a cachc associada a esta memória RAM (MP) possui um tamanho
con·espondente a 64 Kbytes, divididos em 1024 (2"? ou IK linhas, com 64 bytes de dados cada uma (largura
de I bloco/1 linha = 64 bytes ou células de dados = 648) . Cada bloco ou Linha terá, então, os bytes de Oa
63 (de modo semelhante ao que mostramos no exemplo da Fig. 5.7) .
A memória p1incipal será, então, dividida cm 64M blocos de 64 bytes cada (648 é a mesma quantidade de
bytes do bloco de dados da memó,ia piincipal e da linha da cache). A Fig. 5.11 mostra, com dados, o exemplo
que estamos descrevendo.
R elembrando as informações do item anterior, vemos que a MP possui N palavras (células), divididas em
8 blocos e que a cache possui L linhas de 6413 cada. Sendo 13 = N/L, e nt.io: B = 4G / 64K = 64M blocos,
numerados de bloco Oaté bloco 64M - l .
SDêW

134 / Me1116rin Cache

Cãetie - 64 l<h)ft*;

64 IJyites 16 bi1S Unha O

BIOco 1 6411:fy1.es 16 bits Lílllha 1

BI0<»2 64 lbytes

16 biis nha 1023

Ti¼J

- - - - Umii --------<

N* eo lbloeo <la llnrni EM . do


nalinM jiag) byte

16 bits 10bil$

Figul'a 5.11 Memória cache c om mapealllénto diil[eto.

Como há. 64M blocos na MP e 1024 linhas na cache, ndo cada linha deverá acomodar (um de· cada vez,
~ claro) 6S..536 blocos (64K = 2 1'') .
Em resumo:
T ot 1 capacidade da M · = 4GB ou 2.1 2, ou seja, cada ndereço E da possui 32 bits de hrgura.
Total de capacidade da cache: 64KB. Cada ]inha po sui 64B.
Tornl de bloco da MP= N / = 4GB / 64B """ 231 / zr.""' 2 26, portanto cad.- endereço de bfoc-o t m
26 b11rs de largar. (campo Unha + ag do fo mato de ct d ·r ço ). 0

Total de Jinha = 64 KB 1 64 B =10241inha ou 1 l, ou 2 10 OlJ seja, cada end rnço de linha pos. ui 1
bits de· largura.
Como há 64M bloco n MP e 1024 ]inhas na cache, cada linha pod acomodar 64M / lK = 21'' / 2 10
= 2 1" ou 64K blocos naturalmente mn de cada vez. Assim, o campo Tag pos:uirá 16 bit-.
O formato de end reço de célula como é inte'rpretado pelo istema de controle d, cache para delerminar
se o byt r quer.ido está na ca,c he (hit) ou e nfo, est: (mi s).

32 bits
Tag Linha yte
16 bits 1 bits 6 bit

Tag-16 bits - há 65.536 blocos atribntdos a cada linha (64K = 2 1(') ·


Linha- 10 bits - há. 1024 ou 1K Jinhas·
Byt,1;; - 6 bits - há 64 (2'' = 64) byt s por b1oco/linha.
Parn definir quai. bloco da MP er·o alocado::; a um linha e:specíficn pode- c:fotuar um ·impk· c.íkulo
t:
usando "·e aritmética de módulo (rc~l:.O da divisão) . A~,;irn para definir a linha de cada bloco, seja:
EL = end, reço da linha da cache (de de 1inh, O a.ré linha 1024 - 1)
Sn$W

ML?11Ória Cacl,e / 135

E = endereço da RAM (MP), que vai de e ndereço O até e nd. 4G -1


L = quantidade de linhas da cache, sendo no caso Q = 1024
= E módulo L.
e, então: EL
No exemplo da Fig. 5.11, L = 1024 e, portanto, EL = E, módulo 1024, e teríamos o seguinte mapeamen-
to previamente definido :
para a linha O estarão destinados os blocos O, 1024, 2048, 3072 e assim por diante, num total de 64K
blocos;
• para a linha 1 estarão destinados os blocos 1, 1025, 2049, 3073 e assim por diante;
e assim sucessivamente até a linha 1023, que receberá o bloco 1023, 2047, até o bloco 64M - 1.
Deste modo, cada bloco da MP estará diretamente mapeado a uma linha específica da cachc, daí o nome
do método de mapeamento direto.
Uma outra observação interessante refere-se ao tamanho da cache em bits, valor que determina, entre outras
coisas, seu custo, devido à quantidade de componentes fisicos (cransistores etc.) que deverão ser requeridos.
A quantidade de bits de uma memó,ia cache compreende os bits necess.-írios para armazenamento dos da-
dos (no exemplo da Fig. 5.1 O é de 64 bits (quatro linhas * 2 bytes cada), e no exemplo da Fig. 5.11 é de
524.288 bits = 64KB * 8 bits) mais os bits necessários para os L campos r'l~ (etiqueta) da memória (no exem-
plo da Fig. 5.10 é de 8 bits = quatro linhas* 2 bits, e no exemplo da Fig. 5.11 é de 1.048.576 bits = 65.536
linhas* 16 bits).
Em seguida, vamos apresentar o procedimento básico de uma operação de leitura efetuada pelo processa-
dor e que é interpretada primeiramente pelo sistema de controle da cache. Para isso, milizaremos os dois exem-
plos mostrados nas Figs. 5.10 e 5.11.
Em primeiro lugar, considera-se o exemplo da Fig. 5.10, onde temos:
- e ndereço de byte (célula) = 5 bits
- endereço de linha = 2 bits
- tag = 2 bits
A Fig. 5.12 auxilia na compreensão do procedimento, que~ descrito a seguir:
1} O endereço de 5 bi~ (endereço de célula/byte) que se apresenta para cache e MP é interpretado pelo
sistema de controle da cache conforme os campos específicos:
tag: 2 bits; linha: 2 bi~; byte: 1 bit.
2) Primeiramente, o sistema decodifica a parte do endereço referente ao e ndereço de linha (dois bits cen -
trais); daí, aponta para a linha selecionada .
3) Em seguida, o sistema irá checar se o bloco que contém o byte desejado está annazenado naquela linha
(acerto ou hil) ou não (falta ou miss). Para isso, é realizada uma comparação (usualmente por meio
de portas xor) entre o valor do campo ta,g da linha e o valor no campo ta,~ do endereço (2 bits).
4) Se forem valores iguais, significa que o bloco procurado se encontra annazenado na cache (um acerto
ou /,ir) . Nesse caso, o endereço do byte desejado é passado para um decodificador de endereços que
localiza e transfere o byte para o processador pelo barramento de dados (procedimento semelhante ao
mostrado no item D .1).
5) Se os valores forem diferentes, significa que o bloco não se encontra na cache (fulta o u miss). O sistema
interrompe o process.1mento e vai iniciar a localização e a busca do bloco requerido (o endereço cor-
responde aos 4 bits mais significativos) para transferir uma cópia da MP para a linha específica.
6) Nesse ponto, o sistema precisa verificar se algum byte do bloco foi alterado durante o período em que
esteve armazenado (se o processador realizou alguma operação de escrita). Se houve alteração, então o
bloco a ser substituído retorna para a MP, caso contrário ele simplesmente é destruído pelo armazena-
SDêW

136 / Memória C adie

BIOOO MP Byte
1
00000 (O)
0000 00001 (1)
Cache 1

0001 O (2)
0001 1

00011 (3)
1

00100 (4)
Tag Dados oom 1 00101 (5)
....--N OO) U nha O 00110 (6)
6 0011 00111 (7)
Decodilicador 01000 (6)
(01) Un"a 1
01001 (9)
(02) Linna :z 0 10,1 0 (10)
0,1011 (11)
(03) l nha 3 0 11 00 (12)
01101 (1 3)
01110 (1 4)
01111 (15)
10000 (16)
10001 (17)
1001O (18)
100r11 (19)
10100 (20)
10101 (21)
Taig Byte 10110 (22)
2 bits 1 bi 10111 (23)
11000 (24)
1'1(10
Tag'l'linhia ••• 11001 (25j
11010 (26)
~--r-- -=------,,.:,e===::,__-<: AFC:: · Decodfic:ado:r
1
1101
1101 1 (27)
11100 (28)
1110 111 01 (29)
11'1 o (30)
1111 111'111 (31)

f igura 5. 12 Exemp o de acesso à memória c11che pot meio de: m a:p amen to direto.

mento em cima do no vo b]oco. Para s.aher ~ houv~ ou não aheraçno no bloco os sitemas u am mn bit
adicional em cada linha, qu s r.'i secado (bir 1) caso t nha ocorrido alguma operação d.e e crita ou e
mamém m , (2. ro) caso 11âo_
Em . eguida., uti1izaremos os d1:m1:nto_ do ~i~ti,:ma .icem,pli 1cado na Fig . S.1 J onde temos:
end re,ç o de byte (célula) = 32 bits
endereço de linha = 10 bits
t.ig: = 16 bi~
O proccd:ímcmo, a ~guir apn,;$1,,:nt.~do p,odç s r .ico11:1panhado por meio da Fig. 5.13.
1) O pmccs:mdor aprçsc.:nta o ·ndi,:n:ço d1; 32 bit.'i no BE, -omum à cache e MP e ím1J de contmle cor-
re pondente à operação desejada no B, , que é pri11ieirar:ner1tc inrerccptado pelo circuim de controJe
cfa c:achc (ver i."· 4.5). :face circ:uiro ínicia a idcnt:ificaçâo de seu campos para definfr primeiramente e
ã palavr.a d ·.i:jada ci na ca -h · ou fl ão. Para i::xcmplifiear, amo_ considerar Q endereço binário
OUOOUOOOUOOUOt 0000001] 0001001000. Para -efeitos de pmce.ssamento pelo ist ma de contmle da cach ·,
ste endereço será dividido em três partes conforme já 1nostrado na Fig. 5.11, da e querda para a direit.i,
a saber:

0000000000000100 0000110001
T ag: (16 bits.) Linha ( 1O bits) Byt1: (6 bit!>)
2) O 10 bits cenrmi são exami1tados ( er Fig. 5.13), e seu v, 101· indica que se trata da Linha 00 0110011
= 25m, R c-!.m verificar e o bloco solicitado é o que . e encontra armazenado no q uadro 25 ou se lá está
um outro bloco.
SDêW

3) O ,c ontrolador da cache ex:uniina por comparação se o valor do can:1po 1;3g do endereço - no caso o
alm é 00 0000 O 0010 2 = 4 10 - é igua} ao do cami o tag da linha_ o exemplo dado ele s.ão iguai .
Isso significa um acerto (Hit) que o dado de ejado encontra- e também ,1a cache_
4) Ein eguida, ,é :.ice~.ido o dado do endereço ""' 001 001 =8 1,, (úJtimos 6 bits. do ·eHdereço) t:ramferid,o
paTa o pro ç1;511ador_
5) Se os va]orc~ elo. çan pos 1ag do endereço e d,a hnha da. cache nãio fo em1ig;uais, j, to ignificaria qui: (,_1
bfoco de~ jado não e ·ncontrava annaz ·nado n c~che (uma fu}t-a ou mi . ) e, parear to, d ·v ria er
transferido da MP para o quadro, 25 substituindo o atual bloco, para em eguida o dado (o byte de
dado) r,e querido - byte 8- ser t-an ferido para o procc sador pelo barramento de dado , BD. are-
alidade, doi ace so : uma cópia do bloco da MP par, a cachc e o dado da cache para o processador.
Para tanto, o. 26 bit m is sig11ifiçativos do cndt:rc -o ('16 bit. do campo rag mais 10 bits do campo quadr-o)
e;riam utili:z:a.dos como ndercço do bloco desejado, poi_~: 2~" = 64M, ou ~eja cada um dos 64M blocos tem
um endereço com 26 bits.
De e er observado que os procedimemos n.ostrados s.ão bási.cos para qllalquer tipo de cache, porém lá
a]guma pequena difeyenç:l.i, específica em cada ..:aso, como por exemplo, para operaçõe de leitura ou de
e críta; ou, ainda, e e r:raca d uma ca.chc L 1 de da.dos (cm que a ama1i:zaç.ào do bloco que retorna é impor-
tante) ou de imtruç3e~ (nunca há n.:torno dr.: in truçâo p, ra MP) e m ào bu cadas p lo endereço contido
no C] (J>~.1?m111 wui1te1 ou Pq.
A técnica de mapeamento direto é sem dúvida simpfos e de bai 'o custo d i111pl m~nta,ção, al~m de não
acarretar sen íveis atrasos de processamento dos endereços. O eu problema con is.te justamente na fixação da
localização para os bloco (em um do exemplo. da.dos (Fig_ 5_ 11 ), 65.536 bJocos estão desrinado a uma li-
nha, o que indica que _omcmc um de cada vez pode cmt.r l.í am1a.zcn do).
Se, por exemplo, duranti.: a cxccuçã-o de um prnb'T, m~ um dado código fizer repetida referências (.l!ce os)
a palavras situadas cm bloco a]ocado na me ma inha, então haverá nece sidade de uce sivos acess.os à MP
para sub;;[ituiç; o de blo o (muita fu.ltas) e a relação ac tto/faha será baixa com a cotis,eqíiente redução de
des. mpenho do l>i tema. o exemplo da Fig_ 5.11 poderílmm ter referência seguidas a uma célula do bloco
e a ôutra célula do bl.oco 1024, como também, poi- çcrincidência, outro ace o ubscqü,encc a uma célula do
b]oc 2048 rodm destinados à mesma linha O da çach~.
Para concluir, aprc:enca.m-. e , lgun:s ~xemplm qu auxiliam a encender n dhor o onceito e a si tr.:mãti a
d.o ma.p camen ro diireto _

Tag Linha Byta

0000000000000100 000001100

unha O

4 -= 4 - - - - -- 1 - -....;..-+.;;;.<.;;;;;..;;.;;....o_ __,_.=.r..;=-::_,___-'-"'L'-"--"-IO Linha 25


t ~

Unha 1023
Tag
Fi.gura 5 .13 E e1nplo de operação de leitura et'll. men 6 ia cache ,c om n ap eament;o di:11eto.

Ex@'tnpJ.o 5.2
âlculo da quantidade de bits nec, -sário para uma d t rminada memória cache.
Sn$W

138 / Mtm6ria Cad,e

Considere um sistema de computação com uma memória cache de 32KB de capacidade, constituída de
linhas com 8 bytes de largura. A MP possui uma capacidade de 16MB.

Solução
O total de bits a serem us.1dos na cache é a soma dos bits de dados (produto da quantidade de linhas pela
largura em bits de cada uma) mais os bits usados na coluna tag, cujo valor existe para cada linha.
Assim, temos:
T (total de bits da cache) = Ta (cotai de bits para a parte de dados) + T, (total de bits dos tags)
TJ = 32KB X 8 bits= 32 * 1024 * 8 = 262.144 bits
T, = quantidade de linhas * largura do campo tag
Quantidade de linhas = 32KB / 8 bytes = 4KB = 2"
Largura do campo tag = quantidade de blocos / quantidade de linhas
Quantidade de blocos = 16MB / 8B = 2MB = 221
Quantidade de blocos por linha= 2" / 2 12 = 29 = 512, e o campo tag possui 9 bits de largura.
T, = 4 X 1024 X 9 = 36.864
T = 262.144 + 36.864 = 299.008 = 292KB

Exemplo 5.3
Cálculo de formato de endereço para memórias cache com mapeamemo direto.
Considere uma MP com 64MB de capacidade associada a uma memória cache que possui 2K linhas,
cada uma com largura de 16 bytes. Detem1ine o formato do endereço para ser imerprecado pelo sistema de
controle da cache.

Solução
MP = 64MB = 2'6 Largura de bloco = linha = 168 = 2'
L = 2K = 2"
O formato do endereço pos.sui três campos: cag - linha - byte.
Tag - endereço do bloco desejado, atribuído a uma específica linha . Seu valor e m bits é diretamente
dependente da q uantidade de blocos atribuídos a cada linha, o que pode ser obtido da relação
emre o total de blocos, T., e o cotai de linhas, L.
Lin ha endereço da linha desejada . Sua largura depende diretamente da quantidade de linhas.
Byte endereço do byte desejado. Sua largura depende diretamente da quantidade de bytes em cada
bloco/linha.

T• = 64MB / 16B = 4MB = 222 •

Byte = 4 bits, pois há 16 bytes por bloco.


Li nha = 11 bits, pois L = 2".
Tag = 11 bits, pois: T. / L = 4 MB / 2K = 2 22 / 2 11 = 2 11 = 2K blocos por linha.

26 bits -----1~

Tag Linha Byte


11 bits 11 linhas 4 bits
Sn$W

M~mórin Cacl,e / 139

Exemplo 5.4
Seja uma MP constituída de blocos com largura de 32 bytes, associada a uma cache com 128KB. Em
dado instante o processador realiza um acesso, colocando o seguinte endereço (expresso em algarismos
hexadecimais): 3FC92B6. Determine qual deverá ser o valor binário da linha que será localizada pelo sis-
tema de controle da cachc.

Solução
O endereço completo da MP possui sete algarismos hexadecimais, ou 7 X 4 bits = 28 bits.
Campo byte = 5 bits, pois 2; = 32 e há 32 bytes por bloco/ linha.
Quantidade de linhas, L, da cache é igual a ·J 28Kl3 (total da cachc) / 32B (largura da linha = 4K linhas
= 211.
O campo "linha" do endereço tem largura de 12 bits, pois L = 2 12•
O campo tag terá 11 bits, pois: 28 - 12 - 5 = 11.
O endereço 3FC92B6 em bits será:
0011 111111001001001010110110
Dividindo pelos campos do endereço, teremos:

00 111111110 0 10010010 101 10110


Tag Linha Byte

Deste modo, o endereço da linha desejada é: 0 10010010101.

Mapeamento Associativo
Conforme foi exposto na descrição do mapeamento direto, este método é simples de implementar e fun-
cionar; no entanto, acarreta uma razoável inflexibilidade no uso do mapeamento, pois os blocos são fixamente
detenninados para uma linha específica . Com isso, pode ocorrer um aumento de faltas (misses) devido justa-
mente a essa inflexibilidade (dois acessc)s próximos em tempo podem fazer referência a blocos alocados para
uma mesma linha, resultando, por exemplo, na retirada de um bloco que acabou de ser trazido da MP e sua
utilização cm seguida - nova falta) .
Para enfrentar este problema e tomar a distribuição dos blocos mais flexível, foi desenvolvido um outro
método, exatamente o oposto do mapeamento direto (ver Fig. 5.14). Trata-se do método chamado mape-
amento associativo.
Por esre método nào há local fixo na memória cache para alocação de um bloco da MP; quando é requi-
sitado pelo sistema de controle da cachc cm um acesso o especifico bloco pode ser armazenado cm qualquer
linha, substituindo a que lá estiver annazenada. Neste caso, no entanto, há necessidade de se escolher cuida-
dosamente qual deverá ser o bloco a ser substituído (ptlo menos este problema o mapeamento direto não
possui). Há diferentes estratégias para se definir esta <escolha, caracterizando diferentes politicas de substituição
de linhas, as quais serão tratadas no irem 5.4.2.
Além disso, para o sistema determinar se o bloco acessado está armazenado na cachc (acerto - hit) ou não
(falta - miss), há necessidade de se efetuar a verificação em cada linha, comparando o endereço do bloco com
o que csrá armazenado no campo rag da linha. Para que esta ve11ficaçào seja rápida e, por isso, eficaz, há ne-
cessidade de que a comparação seja simultânea a todas as linhas (no exemplo da Fig. 5.14 seriam quatro com-
parações, mas em memórias bem maiores há um grande consumo de hardware para isso).
A Fig. 5.14 mostra o mesmo exemplo anterior de MP (com 32 células) e cache (com quatro linhas) , ado-
tando agora o método associativo, cm que cada bloco pode ir para qualquer linha.
snow
140 / Me1116ria Cadu:

IBlooo MP Byte
00000 (O)
0000
00001 (1)
00010 (2)
0001 00011 (3)
00100 (4)
0010 00101 (5)
00110 (6)
Tag 0011 00'111 (7)
Datlt>'S
01000 (8)
(00) Linha O Byte 1 Byle O 0100
01001 (9)
01010 (10}
(01) Linha 1 0101
01011 (11)
01100 (12)
(02) Linhai2 0110
0'1101 (13)
01'11 O (14)
(03) L!inha 3 0111
01111 (1 5)
10000 (16)
1000 10001 (17)
• Endereço da MP ., 5 bits, para 2' = 32 10010 (13)
• Endereço inlerpr~!ado pela c.iclle: 1001 10011 (19)
10100 (20)
1010
10101 (21)
1BIOoo (tagl I B~te 10110 (22)
1011
4bilS 1 !xt 10111 (23)
11000 (24)
1100
11 001 (25)
11010 (26)
1101 11 011 {27)
11100 (28)
mo ~ 111 01 (-29"}
11110 (30)
1111 11111 (31)

Figura 5. 4 Exemplo de organiza.çio com mapeamento, assoc·ativo completo com MP'de 32 -célu1a:s (bytes)
,e uma ca,c he c,o,m quatro linhas d<ti 2 byt,çs cada.

e se caso, o end,e reço passado pelo processador nu BE (5 bit ) é interpretado pelo istema de controle da
ca.che apena com doj~ campo : o de identificaçào do bloco (com -4 bi ) e o de ndereço do específico byte
(ou palavra) com 1 b.it.
Ent.fo mna da~ diferenças em. refação ao método anterior (mapea1nento diroto) r id· no tamanho do cam-
po fa_.(! incluído em cada linha: ne te método o campo ti{~ pos lli uma largura. igual à do endereço do bloco (no
exemplo ão 4 bits) valor sempre maior do que ou ado no mapeamento dir to (cons.om - e mai bits neste
tipo de mapeamento).
A Fig. 5.15 mostra a organização Jógica da c1che pan o füncion,amento do i tema com o método de
n ap~amento associ:uivo.
[ a figllra , observa-se a me ma MP e cache, oo me mos decodificadores de 'ndere,ç o de bloco e de byte e
os comparadores, endo no caso quatro, a saída dos quajs está conectada a uma porta indkad,or-a de ac ·rto ou
falta.
O procedinumto básico pô'.ml o mêtodo de mapcam cmo as:sociari o complem é:
1} O process.ador inicia o ace so pefa coloca.ç:io do e,ndereço no BE, o qua] é intt:rc,1cptado pdo :,;i5tema de
controle da cache.
2) O valor do campo bloco do endereço (4 bits m.:ii.s iguificativo ) ,é replicado em todos o dementes de
comp;uação, os quais pos uem, no outro lado, o valor armazenado cm cada campo tag de linha (i.:ndc-
.r eço de bloco),
3) Usualmente e rn comparação pode et· rea'hzada por uma pol'ta lógica, :xot· (ver Apêndice B): a saída de
toda as comparações (realizada em um único instante de tempo, qualquer que seja a qua1 tidade de
snow
iWà11-6r1rf Cm;J.rt" / 141

Bloco MP Byle
00000 (OJ
1

0000 00001 (1)


Cache
00010 (2)
0001
00011 (3)
00100 (4)
T:ag1 Dados 0010
1
00101 (5)
{00) Linha O a 001 10 (6)
0011
B oom (7)
Deoodilicador 01000 (8)
(º1)_ Linha 1 b 0100 01001 (9)
(02) Linha 2 e 0101 O(1 O)
01011 (11)
01100 (12)
(Q-ªlLinna 3 d 0110 01101 (13)
01110 (14)
0111 0111 1 {15)
Bloco Byle 10000 (16)
1000
0101 o 10001 (17)
10010 {18)
1001 10011 (19)
10100 (20)
1010
10101 (21)
a
101 ·10 (22)
1011 "10111 (23)
t)
11000 (24)
Acerto 1100 11001 (25)
Falta --""L::.:.:.:..:.:::.:.==-.J
e 1101
11010 (28}
11011 (27)
d 11100 (28)
1110 11101 (29)
11110 (30)
1111
11111 (3 1)

Figura. S.~5 Ex,e mplo de acesso a memória cache por meio de mapeamento as o i.ad vo completo.

comparadore ) é entrada de uma porta lógica and, cuja. aída acus.a . e o bloco e rá (acen:o - hir) ou não
(falta - mis.) na çaçhe.
4) , a~o h.lj.t .lCerto (hit), endereço do by·tç (bit m ·nm s1gnificati o) é acionado pam se efetuar a t:rans-
frrência. para. o procc ·sadoi- do n:s,p1;cti vo valor pt.:lo b:,1rramenm de &1do · cajo haj1. falta, o elemento
de ace w à MP é acionado para si: l."fetuar a localização do bloc:o t:, . egundo a poiírica e r1beiecida de
ub tituiçào d,r; linha (iti:11 5.4.2) trnn feri-lo para a linha. escolhida.
N.lt urnlmcnre, tt~te método posrni a gran de vantagt:111 d.e garantir uma maior flexn)ilidade na alocação e
armaunamemo dos bJocos., evitando maior quantidade de falra (hit ) poréu1 acarreta um aum nto cori ide-
nível de hardware com o conse,qiknte aumento de cmtto e complexidade do istema. Há maior quantidade
de bits n.l cachi: (co11fo1m1; pod1;mos. verifi -ar pelo Exemplo 5.4), bem como de componcme-s nece sário.
para cada um d~ L comparador l, (no ex ·mplo da Fig. 5.14 ão quatro c:umpa.r.idrne • pois há apena quarro
linhas na ,cachc, ma um istema real po sui ca hes com n1ilhar1;s dt> linhas o que redu ndaria cm milhan:.·. de
comparadores., re p cti va fiação de conexão, portas lógicas e m tro elet 1ento , ~ncar ~c1:ndo ba t.intc o sist,i.:ma.
Em função desses óbice do mapeamt:nro a sociativo. bem como con ideraudo-se os incon etüentes do
mapt:amenro dircro. ma. r.ambém a vanrngens de ambos o métodos, de envolveu-se um método alternativo,
que procnFOll ag1eg.ir a.~ vantagc-1L dt: ambos llS mérodo. anrt:riores e eliminar ou minimizar :suas dewanta-
gtins_ Cha.mou-_ e a 1;;st e método de ãSSociativo poir conjunto; na realidade, í:: conh ecido como a_soc·ati vr> por
conjunto de N .
Ante: de apresentar os detalhe des e método, vamos. mostrar algun extlmplo. do 1;mprego e funôona-
mento do método as ociativo con pleto.
SU$W

142 / M<"11Jria Cacl,e

Exemplo 5.5
Cálculo da quantidade de bits necessários parn uma deternúnada memória cache.
Considere um sistema de computação com uma memória cache de 32KB de capacidade, constituída de
linhas com 8 bytes de largurn . A MP possui uma capacidade de 16MB.

Solução
O total de bits a serem usados na cache é a soma dos bits de dados (produto da quantidade de linhas pela
largura em bits de cada uma) mais os bits usados no campo bloco (coluna bloco) existeme em cada linha.
Assim, temos:
T, (total de bits da cache) = T. (total de bits para a parte de dados) + T • (total de bits do campo bloco)
T• = 32KB X 8 bits = 32 * 1024 • 8 = 262. 144 bits.
T• = quantidade de linhas * largura do campo bloco.
Quantidade de linhas = 32KB / 8 bytes = 4KB = 2 12•
Largura do campo bloco = largw
Quantidade de blocos = 2""' •1oro.
Quantidade de blocos = 16 MB / 8 B = 2 MB = 2 21 •
Largurn do campo bloco = 21 bits.
T• = 4KB * 21 bits= 84 Kbits = 84 * 1024 =.
T = 262.144 + 86.016 = 348.160 = 340 Kbits.

Exemplo 5.6
Cálculo de formato de endereço para memórias cache com mapeamento associativo completo.
Considere uma MP com 64MB de capacidade associada a uma memória cache que possui 2K linhas,
cada uma com largura de 16 bytes. Determine o formato do endereço para ser interpretado pelo sistema de
controle da cache.

Solução
MP = 64MB = 226 • Largurn de bloco = linha = 16B = 2'.
L = 2K = 2 11 •
Total de blocos = 4M blocos (2 26 / 2' = 2 22 ou 4M)
O formato do endereço possui dois campos: bloco - byte
O campo byte é calculado de forma idêntica ao do mapeamento direto, possuindo, pois, 4 bits de largura.
A largurn do campo bloco é obtida calculando-se o total de blocos, que é de 4MB = 2 22 e será, portanto,
de 22 bits.
Assim, teremos:

Bloco Byte
22 bits 4 bits
SU$W

M,1116ria Cat/,e I 143

Exemplo 5.7
Seja uma MP constituída de blocos com largura de 32 bytes, associada a uma cache com 64KB. Em dado
instante o processador realiza um acesso, colocando o seguinte endereço (expresso em algarismos
hexadecimais): 3FC92B6. Detem,ine q ual deverá ser o valor binário do c,impo bloco que será localizado
pelo sistema de controle da cache.

Solução
O endereço completo da MP possui sete algarismos hexadecimais, ou 7 X 4 bits = 28 bits.
Campo byte = 5 bits, pois 2; = 32 e há 32 bytes por bloco/linha.
Quantidade de blocos, B, igual a 228 / 2 5 = 2"' = 8M .
O campo bloco possui, então, 23 bits de largura.
O endereço 3FC92B6 cm bits será:
0011 111 1110010010010 101 1 01 10
Dividindo pelos campos do endereço, teremos:

001111111 10 010010010 10 1 10110


Bloco Byte

Deste modo, o endereço do bloco desejado é: 0011 1111 1100 1001 001 O101 .

Mapeamento Associativo por Conjuntos


Esta técnica tenta resolver o problema de conOito de blocos em uma mesma linha (da técnica de 11111pe11111e11-
10 direto) e o problema da técnica de 111apea111ento assc>ciativo, relativo à custosa busca e comparação simultâneas
do campo tag de toda a memória cache.
É, pois, um comprontisso entre ambas as técnicas anteriores.
A Fig. 5.16 mostra o mesmo exemplo de MP (32 células) e de memória cache (quatro linhas de 2 bytes
cada) adequado ao método associativo por conj unto.
Pode-se observar na figura que o sistema dividiu o espaço de dados da cache em dois conjuntos de duas
linhas cada. Cada conjun to é tratado pelo sistema como no método direto, ou seja, cada bloco da cachc é
previamente dedicado a um conjunto, mas dentro do conjunto o bloco pode ser armazenado em qualquer das
linhas do conjunto (método associativo) .
Como são 16 blocos, atribuídos fixamente a dois conjuntos, teremos oiro blocos por conjunto; conforme
se observa na Fig. 5. 15, temos o ito blocos at,ibuídos ao conj unto O(zero) e o ito blocos atribuídos ao conjunto
1 (um) e, por isso, o campo tag do endereço possui 3 bits (21 = 8) .
O endereço interpretado pelo sistema de controle da cachc possui três campos, identificados da esquerda
para a direita:
Tag (3 bits} - Conjunto (1 bit) - Byte (1 bit)
A Fig. 5.17 auxilia na descrição do procedimento de acesso do processador a um byte (palavra) específico,
identificando se ocorreu um acerto (e o byte especificado é imediatamente transferido da cachc para o proces-
sador) ou uma falta (há necessidade de se transferir o bloco desejado para a cache e daí o byte para o proces-
sador).
O procedünento básico para acessos em sistema,s que usam o mét0do de mapeamento associativo por con-
junto é :
1) O processador inicia o acesso pela colocação do endereço no BE, o qual é interceptado pelo sistema de
controle da cache.
SDêW

B1000 MP Byle
00000 (Oj
0000 - - - - - 1 00001 (1)

0001 ----1 00010


00011
(2)
(31
00100 (4)
0010 ---""'00101 (5)
(00) Linha O Byte O 00110 (6}
0011 t----=t 00111 (7)
(01) Linha 1 01000 (81
0100 - - -=t 01001 (9}
(02) Linha 2 0,0,10 (10)
0101 i-----t 01011 (11}
(03) Unha 3 0110 ----1 011 00
01101
(12:)
(13)
0111 0 (14)
- Ende e-ço da Mi"= 5 bits, para 2 · = 32 01 11 -----1011111 (15)
- Ent1e1eço r,rterprela<JQ pel<! Cilche ; HIOOO (16)
1000 - - - = t, t0001 (17)
li,i,•- ---32-----""41•1 1001 - - - - li
10010 (·1&)
10011 (19)
10100 (20)
1 lag I Conjunto I B)'1e 1 1010 i - - - - - tl 101()1 (21)
3 Lli'IS 1 tm 1 DII 10 110 (22)
1011 - - - - ii 10m (23)

Co11J~mto O: 0000-00110-01 00-01110-1000-101Os11 Oô-11 ·1o


Co11j,mtç 1; 0001-0011--0101•0111-·1001- 101·1-1101- 1·111
11100 i - - - - - tl !~~ :;;~
- - - - li 11010 (:25)
U01
11011 (27)
i - - - - - tl 11100 (28)
1110
----111110 11101 (29)
(30)
11 11 ....__ __. 11m !31)

Fi.gura 5.16 Ex-e mplo de organização com mapoament,o, assod:ativo por c--onjnnto am MP ,c o:m 32 células
(byt.es) e uma cache com quatro linhas de 2 conjunfos de duas linhas.

Bloco MP B)'le
00000 (O)
0000
Cache 00001 {1)
00010 (2)
0001
000·11 {3)
00100 {4)
Tag Dacros 0010
00101 (5)
(OO)Lin~O oo 00110 {6)
B 0011 001 11 {7)
~-
1

Decodlllcador 01000 (8)


(01) Linha 1 o 0100
01001 (9)
00 Linha 2 [ a C'>
01010 (10)
o 0101
~
01011 (11)
(00) Linlta 3 [ b 01100 {12)
011 0 011 01 {13}
01110 {14)
011 1
01111 {15)
OecodificadCN' 10000 (16)
1000
10001 {17)
3 1 10010 (18)
Tag 1001
Con]un.to Byle 10011 ,(19)
)!)00{ '1 0100 ,(20)
1010 10101 ,(21)
10110 ·(22)
1011
'10111 (23)
Aoen:o
11000 ·(24)
falta 1100 1

1) Xl<XX 11001 (25)


11010 (26)
Con1paracknes 1101 11011 (27)
11100 (28)
·1110
11101 (29)
111'10 (30)
1111
11111 (31)

Figur•_ 5.17 Exemplo d a,cesso à memória cach,e por meio de ma1>eamento associativo por conjunto.
Sn$W

Memórin Cnd,e / 145

2) O valor do campo conjunto do endereço (no exemplo da Fig. 5. 17. é I bit- o segundo bit da direita
para a esquerda no fo1111ato do endereço) é transferido para o decodificador, cuja saída aponta para o
conjunto formado por duas linhas da cache (linhas 2 e 3, que correspondem ao conjunto de endereço
1). Trata-se de procedimento exatamente igual ao do mapeamento direto, sendo que, neste caso, cada
bloco está associado diretamente a um conjunto e não a uma linha .
3) Em seguida, o controle da cachc irá localizar q ual das linhas se deseja, comparando o valor existente no
campo tag (3 birs) com o valor existente na coluna tag de cada uma das duas linhas do conjunto, exa-
tamente como no método associativo completo).
4) Caso haja acerto (hit}, o e ndereço do byte (bit menos significativo) é acionado para se efetuar a trans-
ferência para o processador do respcctivo valor pelo barramento de dados; caso haja fult.1, o elemento
de acesso à MP é acio nado para se efetuar a localização do bloco; primeiramente, é definido o co,aj unto
para onde ele será transferido (previamente definido como no mapeamento direto} e, segundo a polí-
tica estabelecida de substituição de linha (item 5.4.2), escolhe-se q ual linha do conjunto será usada,
como no mapeamento associativo completo.
Para finalizar, apresentam-se alguns exemplos do emprego desse método de mapeamento:

Exemplo 5.8
Cákulo da quantidade de bits necessários para uma dt:terminada mcrnória cache, que funciona com
mapeamento por conjunto de quatro .
Considere um sistema de computação com uma memória cache de 32KB de capacidade, constituída de
linhas com 8 bytes de largura e conjunto de 4. A MP possui uma capacidade de 16MB.

Solução
O torai de bits a serem usados na cache é a soma dos bits de dados (produto da quantidade de linhas pela
largura em bits de cada uma) mais os bits usados na coluna 1n CLÚO valor existe para cada linha de um
0
~,

conjunto.
Assim. temos:
T (t0tal de birs da cache) = T., (total de bits para a parte de dados) + T, (total de bits dos tags).
T• = 32KJ3 X 8 bits = 32 * 1024 * 8 = 262.1 44 bits.
T, = quantidade de linhas * largura do campo rag.
Quantidade de linhas = 32KB / SB = 4K = 2".
Quantidade de conjuntos, C = 4K (quamidade de linhas)/ 4 (quantidade de linhas por conjunto) = IK
= 2w.
Quantidade de blocos= 16MB / 8B = 2MB = 2''·
Campo rag: quantidade de blocos por cortjunto = 2M / 1K = 2" / 2"' = 2 11 •
A largura do campo tag é, pois, de 11 bits.
T, = 4K X 2K = 2" *2 11
= 2'-' = 8K = 8 * 1024 = 8192 bits.
T = 262.144 + 8.192 = 270.336 = 264 Kbits.

Exemplo 5.9
Cálculo de formato de endereço para memórias cache com mapea,nento associativo por conjunto .
Considere uma MP com 64MB de capacidade associada a uma memória cache que funciona com ma-
peamento a,;,~ociativo por conj unto de 4 e que possui 32KB, com linhas de largura de 16 bytes. Determine
o formato do endereço para ser interpretado pelo sistema de controle da cache.
SU$W

146 / Mtmória Caclte

Solução
MP = 64MB = 2 2• = linha = 16B = 2' .
Largura de bloco
Quantidade de blocos da MP = 64MB / 16B = 4M = 222
Quantidade de linhas da cache = 32KB / 16B = 8K = 2".
Quantidade de conjuntos = quantidade de linhas / 4 = 8K / 4 = 2K = 2".
Quantidade de blocos por conjunto = 4M / 2K = 2 2 = 2 = 2K.
22
/
11 11

O formato do e ndereço possui três campos: tag - conjunto - byte.


Campo byte = 4 bits (16 bytes por bloco = 2').
Campo conjunto = 11 bits.
Campo tag = 11 bits (devido à quantidade de blocos por conjunto).
Tag Conjunto Byte
11 bits 11 bits 4 bits

Exemplo 5.10
Seja uma MP constituída de blocos com largura de 32 bytes, associada a uma cache com 64KB: a cache
usa mapeamento por conjunto de 4. Em dado instante o processador realiza um acesso, colocando o se-
guinte endereço (expresso em algarismos hexadecimais): 3FC92136. Determine qual deverá ser o valor bi-
nário do co,tjunto que será localizado pelo sistema de contro le da cache.

Solução
O endereço compleco da MP possui sete algarismos hexadecimais, ou 7 X 4 bits = 28 bits.
Campo byte = 5 bits, pois 2; = 32 e há 32 bytes por bloco/linha.
Quantidade de linhas, L, da cache é igual a 128KB (torai da cache) / 32B (largura da linha = 4K linhas
= 212 _
Quantidade de conjuntos= quantidade de linhas/ 4 = 4K / 4 = lK = 2"'.
O campo "conj unto" do endereço tem largura de 10 bits, pois C = lK = 2"'·
O campo tag terá 13 bits, pois: 28 - 10 - 5 = 13.
O e ndereço 3FC92B6 em bits será:
0011111111001001 0010 1011 0110
Dividindo pelos campos do endereço, teremos:

1001111 11 11001 001 001O 101 10110


Tag Conjunto Byte

Deste modo, o endereço do conjunto desejado é: 001 0010 101


Atualmente, grande parte dos sistemas emprega mapeamento por conjunto, variando apenas o valor de
N, podendo-se encontrar caches com conjuntos de 4, conjuntos de 8 e conjuntos de 16. À medida que a
capacidade das caches vai aumentando, tende a aumentar o valor de N, de modo a se manter o equilíbrio
das vantagens dos métodos ameriores.
SU$W

1\lfem&n·a Caclte / 147

5 .4.2 Algoritmos de Substituição de Dados na Cach e


O problema se resume em definir qual dos blocos atualmente armazenados na cache deve ser retirado para
dar lugar a um novo bloco que está sendo transferido (é bom lembrar que isto é necessário porque todos os
quadros da cache estfo sempre ocupados, visto que L < < B) . Se o le itor esqueceu o sigiúficado das letras, L
= quantidade de linhas da cache e B = quantidade de blocos da MP.
A nece,;.~idade de decisão sobre substituição de linhas somente ocorre quando se usam os métodos de ma-
peamento associativo, seja o completo ou por conjunto, pois é neles q ue se considera a 0exibilidade de alocação
de blocos em linhas. No método de mapeamento direto esta possibilidade não ocorre, pois previamente são
estabelecidas as linhas onde serão armazenados os blocos.
No caso, então, dos métodos associativos, pode-se optar por algum dos seguintes algoritmos de substituição
de linhas:
O que rufo é us<1d,, luí mnis tempo {LRU - least rece111/y 11ml), o sistema escolhe para ser substituído o bloco que
está mais tempo sem ser utilizado. Ou seja, trata-se de um bloco que o processador não acessa há mais tempo.
O algo,itmo LRU pode ser implementado de forma simples em caches associativas por conjuntos de 2,
utilizando-se 1 bit adicional em cada linha. Quando uma das duas linhas do conjunto é acessada, o bit é setado
(passa para valor 1) e o bit da outra linha passa para valor O. De modo que na ocasião em q ue um bloco vai ser
armazenado na cache cm um determinado conj unto (lembre-se de que a escolha do conjunto não é opcional,
pois se fàz de modo igual ao método direto), escolhe-se a linha que possui bit igual a O (pois é o que não é
usado há mais tempo entre os dois do conjunto) .
Quando aumenta a associatividade, como, p.ex., para conjunto de 4, o problema também cresce; uma das
maneiras para solucionar isso é considerar pares de linhas e, nesse caso, têm-se dois pares, podendo-se estabe-
lecer 1 bit para cada par, funcionando de modo idêntico ao do conjunto de 2. Em seguida, determina-se, no
par escolhido, qual a linha que foi usada há mais tempo por meio de outro bit. Com isso, gasta-se mais hardware
e mais tempo para processamento dos tais bits.
Com o crescimento da associatividade, o problema se torna bem maior, tornando-se dificil implementar
esse processo de forma exata; nesse caso, opta-se por uma estratégia de aproximação na escolha da linha a ser
substituída o u por outra modalidade, como a de fila (FIFO), LFU ou escolha aleatória, como descrito a seguir.
Fila, ou seja, o primeiro a chegar é o primeiro a ser atendido (FIFO - firs1- i11,first-0111). O sistema escolhe o
bloco que está há mais tempo na cache (chegou primeiro,f,rsl-iu, é o q ue sai primeiro,first-011i), independen-
temente de estar sendo usado o u não com frcqiiência pelo processador.
O que tem mcuos refcrêucins (LFU - /ens1_{requently used). Nesse caso, o sistema de controle escolhe o bloco
que cem tido menos acessos por pane do processador (menos referências).
Escolha alcatórin - trata-se de escolher aleatoriamente um bloco para ser substituído, independentemente de
sua situação no conjunto .
Um estudo realizado sobre memó,ias cache, baseado em diversas simulações (ver SM IT82), obteve d iver-
sas conclusões, entre as quais a de que escolher um bloco aleatoriamente reduz muito pouco o desempenho
do sistema en1 comparação com os demais algoritmos, baseados em algmn tipo de uso, e é extre1nan1ente
simples de implementar. E, mais ainda, quando a associatividade aumenta em associação por conjunto (p. ex.,
conjuntos de 4 ou de 8), ambos os métodos, LRU e aleató 1io, quase se equivalem em desempenho, sendo o
aleatório muito mais simples e barato cm termos de hardware.

5.4.3 Política de Escrita pel a Memória Cache


Em sistemas com memória cache, toda vez que o processador realiza uma operação de escrita, esta ocorre
imediatan1ente na cache. Como a cache é apenas uma memória intermediária, não a principal, é necessário
q ue, em algum momento, a MP seja atualizada, para que o sistema mantenha sua correção e integridade .
Ames que um bloco possa ser substituído na cache, é necessário considerar se ele foi ou não alterado na
cache e se essas alterações também foram realizadas na MP; caso contrário, isto significa que o bloco da cache
Sn$W

148 / .Memória Cnr.lu:

está diferente do da MP, e isto não pode acontecer, pois a MP precisa ser tão corretamente mantida q uanto a
cache.
Atualmente podem ser encontradas algumas políticas de esc1ita, cada uma contendo suas vanragens e des-
vantagens em relação às outras, no que se refere p1'incipalmente ao custo e ao desempenho.
O problema é complicado se levarmos em conta algumas ponderações, tais como:
• A mcmó,ia principal pode ser accs.sada tanto pela cache quanto por elementos de Entrada e Saída (um dispo-
sitivo de acesso direto à memória, DMA, por exemplo). Neste caso, é possível que uma célula da MP tenha
sido alterada na cachc e ainda não na MP e, assim, esrn célula da MP estã desatualizada. Ou um elemento de
EIS pode ter alterado o conteúdo da célula da MP e, então, a célula da e.ache é que estará desatualizada.
• A memória p1incipal pode ser acessada por vários processadores, cada um contendo sua 1ne1nó1ia cache. Nt.-.ste
caso, é po~sível que o conteúdo de uma célula da MP seja alterado para acender à altenição de uma cache
específica de um processador, e as demais caches c,tjo conteúdo esteja ligado a esta célula esrnrão des.1tualizadas.
Entre as técnicas conhecidas. tentos:
• E$crita cm ambas (write thro11,,_(!IJ)
Nesta técnica, cada escrita em uma palavra da cache acarreta escrita igual na palavra correspondente da MP,
assegu rando validade permanente e igual ao conteúdo de ambas as memórias. Caso haja outl'OS módulos UCP/
c~chc, estes alterarão também suas caches correspondentemente.
• Escrita somente 110 retome> (write back)
Esta técnica não realiza atualização simultânea como a anterior, mas sim quando o bloco foi substituído e
se houver ocon ido alteração. Em outras palavras, sempre que ocorrer u ma alteração do byte na cache o qua-
dro correspondente será marcado através de um bit adicional, que pode ser denom inado ATUALIZA, por
exemplo. Assim, quando o bloco armazenado no quadro específico foi substituído, o sistema verifica o valor
do bit ATUALIZA; caso seja de valor igual a l , então o bloco é escrito na MP; caso contrário, não.
• Escrita umn 11ez (write C)IJtC)
É uma técnica apropriada para sistemas de multiprocessadores, cada u1n com sua cache. que compartilhem
um mesmo barramento. Pol' ela, o controlador da cache escreve atualizando o bloco da MP sempre que o
bloco correspondente na cache foi atualizado pela primeira vez. Este fato não só atualiu ao mesmo tempo
ambos os blocos (como na técnica wrire tlmwg/1) , mas também alerta os demais componentes que comparti-
lham o barramento único. Estes são cientificados de q ue houve altenição daquela palavra específica e impe-
dem seu uso. O utras alterações (esc,itas) naquele bloco apenas são realizadas na cache local, pois o bloco so-
mente é atualizado na MP quando foi substituído na cache.
Comparando-se as três políticas, podem ser estabelecidas algumas conclusões:
Com a política 111rite througl, pode haver uma grande quantidade de escritas desnecessárias na MP, com a
natural redução de desempen ho do sistema.
A política 111rite bnck minimiza aquela desvantagem, porém a MP fica potencialmente desatualizada parn
utilização por outros dispositivos a ela ligados, como o módulo de E/S, o q ue os obriga a acessar o dado
através da cachc 1 o que é um problema .
A política write <>uct pode ser conveniente, mas apenas para sistemas com múltiplos processadores, não
sendo ainda muito usada.
O mesmo estudo sobre caches mencionado ancerionnente [SM ITS2] mostra que a percentagem de escritas
na men1ória é bai.xa 1 da orde1-n de 15%, o que pode apontar para uma simples política write through.

5.4.4 Níveis de Cache de Memória RAM


No que se refere às memórias cache de RAM, o aumento crescente da velocidade dos processadores e o
compromisso de não se au mentar demasiado o custo das memórias cachc (o que ocorrci;a inevitavelmente
com o aumento de sua capacidade:} conduziram os projetistas e cientistas a desenvolver caches com d iferentes
snow

caractenstica de velocidade e capacj<lade, formando t;11nbém um sjstenu hierárquico em níveis ou catnadas,


a exemplo do próprio sistema globa] de memória.
A,;,: im é que atualmente, m fabricant·1: e: montadores de sistemas estabeleceram doi e até tr·~!> diferentes
nívei de memória cache, todo consrirnídos de memórias SRAM. poré1n cada um corn caracrerísticas e loca-
lização difere11tes. ste níveis/camadas podem ser dependendo do projcm do sistema de computação:
ivel 1 (Level 1) ou l1 ernpre locabzada no interior do proccs'.!iador·
ívd 2 (Levd 2) ou L2 sendo localizada, ern1 geral, na placa-mãe do computador, ou ~cja, excema ao
proces.sador. Porém, têm sido lançados prc:m.:ss:tdorcs cm que a cache · 2 e tá localizada no interi.or da
pastilha do proces ador, si:parada de te;
- Nível 3 (Levei 3) ou L3 - existente em alguns prnce sadores, quando esrcs possuem 11 e L2 inrernamenti.!
cm seu invólucro; ne se caso, é 1ocaliz-ada externamente ao pwces.~:idor na placa-mãe.
O computadotes qu • po uem midtipl:ts. memórias c.u:he iniciam o ace o pela cache L 1, também de-
nominada cache primária. E ta 1nemória, con tituída de dementos com t:ecnologja SRAM e com velocidad
de a.ce s.o igual à do p1'oces ador é, por esta razão, aqui; possui menor tempo de acesso: sempre qlle ,o proces-
sador buscar um dado/jnstrução e obtivr;:r um ac,cl"to (bit), a vdocidade de trnnsferência será a do proce s.ador,
com m'lli tempo extremamente r-âpido,
O füncionamento do i$tema é sempre o me, mo de caso anteri1,m~!.: a memória de ní el mai baixo é a que
tem maior velocidade (e também maior cu to) e menor capacidade. O proci: ador cmprc procur.i o dado/
jm,truçiio na mt:111ória de m nor nível; não i;:l1Contrando na L1, bu~caní na L2 (s.; houver uma)· desta para a
memória DRAM e fina]mente nlo encomr.mdo na IDR..AM irá bmcar o daclo/Jnstrnçâo no disco.
Apesar d.a memória cache LI serem :.cmpn: intcrn, ·, isto é construída com os mesmos elementos. do
processador, pode haver diferenças de arquitetura entre ela que modificam eu desempenho. É o caso por
exemplo, de um pmce s.ador com ca.che de maior tamanho que outro ou se um proces ador pos. Lti ou não a
cachç dividida, cachi: L1 d,e ins.tnições e cache Ll de dados; a maior capacidade e/ou a divi ào da cache jnter-
na, L 1, pod rn tomar um pmces.sador mais rápido que outro, até mesmo se esse outro possuir um processador
mais rápido. Por exemplo, os proces.saidores Pencium possuem cache dividida nomrnln\ente de 32KB (16KB
para dados e 16KB para instruções, outros possuem 24KB para irmruçõe e 81<.H para dados), ,e nquanto alg1ms
AMO Athlon possuem cache LI uni.ficada e outrn dividida.
A Tabela 5.1 apresenta. a.lgun proce adores e suas cache: p.rjmária:s, U. fu cach,i.:s podem er organizad~s.
de forma unificada (nesse caso, na colnna Tamanho con ra um único valor) ou dividida (ne e caso, mostram-
se rni dois valores, ini iando-se cada um pelas juióais i, cache de instmçào, e O, de cache de dados).

Tabe a 5.1 Exemplos de Caches em Proce:ssadores


Processadores Fabricante Tamanho da Ca.che
804 Í) Intel 8KB
Arhlon K7 AMD 1~64KB e D-MKB
Pçntiu1n Intel l-8Kl3 r: D-8KD
Pemium MMX Intel 1-8I<B e D-24KB
Pcntium PRO lntd 1-8Kl3 l' D-SKil
PowerPC Mll Motorol~ / IUM 32 Kll
['e11durn UI Intel l-8Kil e D-24Kl3
i>e11tiurn ~ lmd l-8Kl3 e D--8KB
Achlon 6-1 AMO 1-MKB e D-64K.B
Powcr 5 IBM 64KB
lt'lliiuni Intel l- 16KB e D -16KB
Sn$W

150 / Mem6rin Cndie

A men1ória cache L2 ou cache externa, ou ainda denominada cache secundária, é usualment.e instalada na
placa-mãe do sistema, externamente ao processador. mas ainda constituída de elementos com tecnologia SRAM.
Naturalmente, possui menor velocidade de transferência do que a cache Ll, visto que opera na velocidade do
barramento de dados da placa-mãe, sempre mais lento que a velocidade do processador. No entanto, possui
bem maior capacidade de armazenamento que as memórias cache L1. cm uma fuixa de 64Kl3 a 4Ml3 (é pos-
sível que ao ler este texto o leitor já tenha tido infonnação sobre valores ainda maiores, o que é perfeitamente
natural em face da velocidade de avanço da tecnologia desses componentes).
Apesar de a cache L2 ser também conhecida como e.ache externa, alguns processadores têm sido fabricados
com a cache L2 instalada internamente na pastilha do processador, embora em um invólucro separ.ido deste, mas
não podendo mais ser chamada de cache externa. É o caso, por exemplo. do Pentium Pro. Pentium 11, Ili e 4.
Alguns modelos de processadores AMO Athlon possuem cache L2 interna, integrada ao proc.:-ssador, e foi
desenvolvido para perinirir um terceiro nível de mernória cachc, denominado L3, externo, com concro1ador
na placa-mãe.

5 .4.5 T am anh o da Mem ó r ia Cache


Já foi explicado que uma memória cache só é produtiva, isto é, o desempenho do sistema cresce bastante
con1 seu uso se. durante a execução de um programa, ocorrerem muito mais acertos (o dado requerido pelo
processador se encontra na cache) do que faltas (o dado requerido pelo processador não se encontra na cachc
e deve, então, ser transferido da memória ORAM (MP) para a cache (seja L1 ou L2), par.i desta ir para o
processador), e se isto for obtido atr.ivés do emprego de uma memória cache de tamanho relativamente pe-
queno. para que o custo do sistema seja baixo.
A definição da faixa de tamanho adequada para urna cache depende de uma sé,ie de fatores específicos de
um certo sistcnu, tais como:
tamanho da mernória principal,
• relação accrtos/fa1tas,
• tempo de acesso da MP.
custo médio por bit, da MP, e da memória cache L 1 ou L2,
• tempo de acesso da cache L1 ou L2,
• natureza do programa em execução (princípio da localidade).
Vários estudos têm sido realizados a respeito, podendo-se considerar uma faixa entre 32K e 256 Kbytes
para mcn1ó1·ias cachc do tipo L1 (cache primária ou interna) e de 64K até 4 Mbytes para memórias cache do
tipo L2 (cache secundária) . Naturalmente, estes valores não são definitivos nem t>stãticos, o que significa que,
logo adiante, pode-se <'Star trabalhando com outras faixas de valores.

5.4.6 Largura de Linh a d a Memória Cach e


A escolha da largura ótima de uma cache é tão dificil quanto qualquer outra escolha neste tipo de assunto,
devido às diversas va1iávcis envolvidas. Normalmente se tentam valores estimados em laboratório. que a prá-
tica e novos tt"Stcs aperfeiçoam . É comum se encontrar caches com linhas de 8 a 32 bytes de largura.
O tamanho da linha de uma cache está naturalmente associado ao princípio da localidade espacial; corno se
sabe que acessando um determinado endereço os acessos seguintes têm grande probabilidade de serem ende-
reços contíguos, então uma linha com vários bytes atende a .:stc princípio. Ao buscar um dado, o sistema
busca esc.e e vários outros em seqi.iência. que serão provavelmente acessados em seguida (mas agora em tempo
bem mais rápido, pois já estarão na cache).
Nesse caso deveríamos imaginar que crescendo a largura da linha (muitos bytes) o princípio da localidade
espacial seria mais bem atendido. o que não é necessariamente verdade. R ealmente, aumentando até uma
certa (não específica nem calculável) quantidade de bytes o tamanho da linha vamos aumentando a taxa de
Sn$W

Memória Caclrt I 151

acertos. Porém, a manutenção da seqüência de execução de um programa não ê permanente, pois v<:z por
outra aparece um desvio, p.ex., em um comando IF-THEN- ELSE, e neste caso algum dos bytes a mais
exjstentes na linha estarão sendo desnecess~rios, acarretando aumento de faltas.
Uma outra possível desvantagem de uma largura de linha excessiva é a redução da quantidade de linhas, L
= Tamanho da cache / brgura da linha. Mantido L, se aumentarmos largura da linha, reduz-se a quantidade
de linhas e isso aumentará a quantidade de blocos para cada linha, p.ex., aumentando a probabilidade de faltas.

EXER CÍCIOS
1) Uma memória cache associativa por co,ajunto consiste em 256 linhas divididas em conjuntos de duas
linhas cada. A memória principal contém 4K blocos de 128 bytes cada um. Mostre o formato de um
endereço de MP e da cachc.
2) Em que circunstâncias uma cache que funciona com mapeamento associativo por conjunto pode ser
considerada igual à cache que funciona com mapeamento direto?
3) Considere um sistema de computação que possui uma memória principal (RAM) com capacidade máxima
de endereçamento de 64K células, e que cada célula annazena um byte de infon11açào. Para criar un'I
sistema de controle e funcionamento da sua n1emória cache, a memória RAM é constituíd1 de blocos de
8 bytes cada. A memória coche do sistema é do tipo mapeamento direto, contendo 32 linhas. Pergunta-se:
a) Como seria organizado o endereço da MP (RAM) cm tennos de tag, número da linha e do byte
dentro de uma linha?
b) E m que linha estaria contido o byce armazenado no seguime endereço da MP: 0001 0001 0001 1011?
c) Qual é a capacidade da memória cache em byces?
4) Como a memória principal pode ser o rganizada de modo diferente, tendo uma única estrutura fisica, e
quais são essas diferentes formas de organização daquela memória?
5) Explique por que não é conveniente escolher valores muito grandes de tamanho de linha de caches e
porque este tamanho é sempre muito 111aior que o de uma cé]ula de memória principa].
6) Ao se verificar a 0'1,>anizaçào de uma mcmó,ia cache e da MP de um sistema de computação, observa-
se que a cache tem uma capacidade de armazl'namcnto muito menor que a MP e, ainda assim, sabe-se
que em 100 acessos do processador à cache de obtém cerca de 95 a 98% de ace,ws. Por quê'
7) Por que é necess.írio se estabelecer uma polirica para substituição de linhas para os mécodos de mape-
amento associativo e não para o n1étodo direto?
8) Considere uma MP que possui 4K blocos de 128 células de I byte cada e uma memória cache do tipo
associativa por conj unto que possui 64 linhas divididas em conjuntos de quatro linhas. Qual deverá ser
o for,nato do cmnpo de l'ndcrcçamcnto para acesso ã MP e à memória cache?
9) Considere um sisccma de computação que possui uma memória principal orga1úzada em células de 1
byte cada e apenas uma me111ó1ia cachc externa, organizada com mapeamento direto, sendo cada linha
de 32 byces. Em um dado instante, o processador in icia um acesso colocando no BE comum o ende-
reço hexadecimal: 5D7A9F2. Sabendo-se que neste sistema cada linha da cache tem atribuídos 512
blocos da MP, pergunta-se:
a) Qual deverá ser a largura do llE do sistema?
b) Qual foi a linha acessada pelo processador?
1O) Qual é a diferença entre caches unificadas e divididas? Que categoria de cache em um sistema multicache
usa um ou outro tipo daquela organização?
11) Considere uma memória cache organizada com mapearnento associativo por conjunto, sendo cada
conjunto de quatro linhas. A MP tem uma capacidade de armazenar 64Ml3, sendo organizada byte a
byte, e o sistema transfere de cada vez (MP ,- -+ cache) 32 byces. Considerando que a capacidade da
cache é de 64KB, 1nostrc como deve ser o fonnato dos campos de endereço para a memória cache.
Sn$W

152 / Memória Cadlt

12) Por que a memória cache é um dispositivo de am,azenamento volátil?


13) Considere um sistema de armazenamento constimído de uma memória principal. que é endereçada
por byte e que tem uma capacidade de 256KB, sendo orgarúzada em blocos de 16 bytes de largu ra.
Considerando que se usa neste sistema o método de mapeamento direto para uma cache constituída de
128 linhas, pergunta-se:
a) Qual deverá ser o formato do endereço a ser interpretado pelo sistema de controle da cache, indi-
cando a largura de cada campo?
b) Em q ue linhas deveriio ser armaze nados os bytes que possuam os seguintes endereços:
- 1011 1110 0010 1001 110 1 0000 1100?
- 0001 1010 0011 0001 0111 1000 1111?
c) Qual deverá ser o total de bits consumido nessa cachc?
d) Qual deverá ser o endereço do bloco que contém um byte com o seguinte endereço:
0010 1110 1001 0001 1110 0011 1110?
14) Considere um sistema de annazenamento com MP endereçada por byte, onde cada endereço tem urna
largura de 30 bits e uma memória cache consti tuída de 256KB, possuindo L linhas com largura de 16
bytes. Calcule o tot.11 de bits da memória cache para um dos métodos de mapeamento: direto, associativo
e associativo por conjunto .
l S) Considere um sistema de armazenamento onde a MP é endereçada por byte, que utiliza o método de
mapeamento direto na sua cache e onde o formato dos endereços interpretados pelo sistema de contro-
le é:

Tag Linha Byte


8 bits 12 bits 4 bits

Pergunta-se:
a) Qual a capacidade de armazenamento da MP, em bytes?
b) Quantas linhas possui a memória cache?
c) Qual é a largura de cada bloco/linha'
d) Qual é a q uantidade de blocos acribuído a cada linha da cache?
16) Supondo que esse sistema utilize o método de mapeamento associativo por conjunto de 4 e que o for-
mato do endereço de cache é:

Tag Conjunto Byte 1.


8 bits 8 bits 4 bits

pergunta-se:
a) Qual a capacidade de armazenamento da MP, em bytes?
b) Quantas linhas possui a memória cache?
e) Quantos conjuntos possui a memória cachc?
d) Qual é a largura de cada bloco/linha?
e) Qual é a quantidade de blocos atribuído a cada linha da cache'
Sn$W

Processadores

6 .1 INTRODUÇÃO
No Cap. 2 apresentamos uma visão global da estrutura sistémica de um computador e uma breve descrição
de cada um de seus principa.is componentes, incluindo os barramentos que interconectam os referidos com-
ponentes. A partir do Cap. 4 iniciamos a descrição mais detalhada de cada componente, a memória em pri-
meiro lu1,'<'r, mais especificamente a memória principal (Cap. 4) e a memória cache (Cap. 5), ambas interliga-
das direta e logicamente à UCP (ao processador) na execução de um programa.
Neste capítu lo, analisaremos um outro componente, o processador ou Unidade Central de Processamento -
UCP, que desempenha um papel crucial no funcionamento do sistema de computação. O processador é res-
ponsável pela atividade-fim do sistema, isto é, computar, calcular, processar. Como já mencionamos em ca-
pítulos anteriores, os processadores atuais são fabricados de modo que, em um único invólucro (pastilha -
chip) são inseridos todos os elementos necessários à realização de suas funções. E cada vez mais a tecnologia
tem avançado nessa área, de modo a se fabricar processadores mais complexos e poderosos, como o Pentium
4 e o ltanium, da Intel, este último contendo em uma pastilha mais de 100 milhões de transístores, ou o IBM/
Mororola PowerPC, o u ainda os Athlon (K7), da AMO, encapsulados com cerca de 22 m ilhões de transisro-
res. A Tabela 6 .1 apresenta um quadro demonstrativo com as principais características de diversos processado-
res, o que nos permitici comparar e observar sua evolução tecnológica.
Para descrever e anaJisar um processador:
em primeiro lugar, será apresentada sua organização funcional, isto é, quais são suas funções principais e
como logicamente ele é estruturado para realizar tais funções, o u seja, quais são os componentes básicos
que fazem parte de cada área funcional distinta e o objetivo de cada um - e m conjunto, constitui-se em
uma combinação da nücroarquitetura do processador e mais uma parte relativa à execução das operações
primitivas nesse processador.
• em seguida, será descrito o funcionamento, passo a passo, deste processador básico, através da execução
de instruções de máquina.
• fi nalmente, serão apresentados alguns aspectos relevantes dos processadores. Mais detalhes sobre caracte-
rísticas avançadas, fabricação e evolução tecnológica dos processadores constam do Cap. 12 e do Apên-
dice O; o Cap. l 'I trata especificamente de processadores com arquitetura R ISC.
Considerando a crescente complexidade não só de componentes mas também do ponro de vista funcional,
o autor tem adotado, não só em suas aulas mas também nos c.extos elaborados a respeito, como este 1ivro, uma
estratégia que consiste em:
Sn$W

154 / Prowsndores

• inicialmente mostrar uma arquitecura si1nples de um processador, que se1ve de base para as explicações
conceituais sobre seus componentes internos, suas funções e eles todos integrados para executar instru-
ções individuais e em bloco, como programa . Essa arquitetura, baseada essencialmente no neanderthal
Intel 8080, tem sido excelente ferramenta de aprendizagem, e é a base do método de apresentação deste
capítulo. Posteriormente, os alunos, em disciplinas mais avançadas ou em textos desse tipo (como o
Apêndice D deste livro), são apresentados a arquiteturas mais avançadas, com os demais componentes,
que servem para aperfeiçoar o desempenho, a capacidade e a flexibilidade dos processadores, mas nào
alteram sua concepção básica.
• em outras palavras, consideramos que o conhecimento do que é e como funciona um processador qual-
quer, como dispositivo de computação, pode ser explicado através apenas dos elementos básicos aqui
apresentados e descritos, necessários a executar um ciclo de instrnção (ver item 6.4). Q ue, após esse
conhecimento adquirido, é possível mostrnr outros componentes e fu nções dos processadores (existen-
tes nos mais modernos, apenas), outros métodos de processar, desenvolvidos para aumentar o desempe-
nho, mas que não alteram o conceito inicial.

6.2 ORGANIZ AÇÃO FUNC IONAL DO PROCE SSADOR


O pro<essador ou Unidade Central de Processamemo - UCP' é o componente vital do sistema de compu-
tação. Na realidade, o processador é responsável pela realização de qualquer operação realizada por um com-
putador. Isto quer d izer que o processador comanda não somente as ações efetuadas internamente, conto tam-
bém, cm dccorrência da interpretação de uma determinada instn1ção 1 ele emite os sinais de controle para os
den1ais componentes do computador agirem e realizarem alguma tarefo.
A Fig. 2. 4 mostra exemplos de processadores, ou microprocessadores. A possibilidade de encapsular em um
único invólucro todos os transiston:s necessários para constituir cada componente interno (unidade de cálcu-
lo, registradores, unidade de controle e muitos outros) e todos juntos fo1111ando um processador surgiu cm
1971, com o processador Intel 4004 e, por ser um elemento tão pequeno e com já (para a época) tantos com -
ponentes eletrônicos juntos, denominou-se microprocessador (ver item 1.2.4.6).
Um dos fatores de sucesso daquele projeto residia no avanço da microclctrônica, que permitia construir, na
época, transistores (o menor componente fisico de um processador, que atua como chave de duas posições,
para o sistema binário da n1áquina) tão minúsculos, da ordem de 10 1nícro ns ou 1O mjlésimos de milímetro de
espessura (ver unidades de medida no Cap. 2). Na realidade. o valor da espessura de um transístor é que se
torna a base da evolução de velocidade, capacidade e funcionalidade, bem como da m iniaturização dos pro-
cessadores. Por essa razão, atualmente processadores são construídos usando-se transístores com tecnologia de
espessuras de transístores da ordem de 0,09 mícron (90 nanômctros) e 65 nanômetros (ver essa unidade no
Cap. 2). No Apêndice D serão apr,:sentadas mais informações sobre a fabricação de processadores com eleva-
da t.axa de m.iniattnização, bem como as perspectivas dos fab1icantes para o futuro.
Um dos faton:s primordiais dessa miniaturiz:.içào está na famosa equação de Einstein,
E=v*t,scndo E = espaço;v = velocidade de propagação do sinal; t = tempo de percurso
Se um bit (um sinal elétrico) percorre um fio condutor interno {p.cx., de um rcgi.strador para outro ou
percorrendo a unidade de cálculo) com velocidade fixa, v. correspondente à velocidade da luz, então se que-
remos que ele realize urna tarefa, por exemplo, de percorrer uma unidade de cálculo para efetivar uma ope-
ração aritmética em menos tempo. podemos reduzir o espaço a ser percon;do. Para isso, reduz-se a espcmira
(o espaço) de cada transístor e, conseqüentemente, será reduzido o tempo de percurso. Além disso, com e$-

1l)ur..imc muito cc.·mpo usc.n1-sç ap,..n:is o tenno UCP - Unid:iclt· \.e,ur.il de Pn.'ICCS.."Umeutcl p:ar1 imfü-ar o cornponcu1..- n"Spon~wl pdo pix>l't-($3.nmuo d:t<;
nKtruçôt..., do,; J>")S'71m~~. p;arn ,füa:1111,1:uir de out~ c:omponcntí.'$ qm· reali.t;WJ1n 1::;1.rcfas sc.:undiri:t"- de procí:$Sllll<'ntO. como pr«l'SS<ldor<'S. pl.r.1 ~:iliur <'
co111robr oper:tc,·Õl-s dl· E/S. M.tis tt'Cl'nt<'lfü'lll<', t,.•m-s.t' encontrado nJ litcrarur.1 o tl'RIH.l prOl:l"SSJ<kn. md1'-';.IIC.lo p:ir.i rc:1,n-sl"nt:1r o pro<'~·»ador .,;..-111r.d, sem
h:w..-r rcforências :i proct-ss.1dort-s. pt·riferkm. dp1t·o-1. dt· máql1i,us tk w:io,~t· porte. N,-stc t,·,:1c.1 U'Jrt:1110, :iml>O'> .,, ll'nm-..., t!c for1m s.im.lniuu, i,to f. 11ropl">-
,;;i1ilCl:inwm,· aparc:cc:ci um ou ou1n:, clek-,.
Sn$W

Processndmt·s I 155

Transistores

1.000.000.000
Processador Intel® ltarliun"® 2

. . Proc:essad~r Intel® lt~a r'®.~ ... 100.000.000


: ProceSsador tnt~ Pentium!l 4 :
i Processacr~ Intel® Pen\ium® 1~ :
.......... , .............. P,rocessa<l.oc ~ tetll .~.enU~f' ...... '. ........ . 10.000.000
; Process~or Intel® P~ntium!l ~ ;

......... r,ocessadoi)ntel 486™ : . . ... ............ . 1.000.000


Processad~r Intel 3861"')
: 286
100.000
8086

•• •••• •• i ............... ; •• 10.000


... 'êóáO' ' '.
8008 ..Á -
4004("".f :
1.000
1970 1975 1980 1985 1990 1995 2000 2005
Figura 6.1 Gráfico-exemplo da lei de Moore.

pcs.~uras menores pode-se encapsular mais e mais transistores, tornando o processador mais poderoso (mais e
mais complexos componentes), e assim por diante.
Com o avanço da tecnologia, passou-se de 2300 transístores encapsulados no 4004 para 29.000 no 8088,
para 3. 100.000 no primeiro Pentium e para mais de 100 milhões de transístores nos processadores ltanium, da
Intel. e no Opteron. da AMO .
Ainda sobre esse assunto, é interessante mencionar uma entrevista do co-fundador da Intel, Gordon Moore,
em abril de 1965 (portanto, antes do lançamento do 4004) sobre sua perspectiva de evolução dos processado-
n:s nos anos seguintes. Ele, na famosa entrevista, afirmou que os process..1dores deveriam dobrar a quantidade
inte111a de transístores anualmente (a Fig. 6.1 apresenta a lei de Moore em tennos da evolução dos processa-
dores Pcntium). Essa afi1111ação, atualizada por ele mais tarde (1975) para dois anos (há quem mencione que
se tratava de 18 meses, e não 24), vem se revelando verdadeira ao longo do tempo, e passou a ser conhecida
como Lei de Moore, devido à importância do processo de aumento da capacidade e desempenho dos proces-
sadores. Atualmente, mais de 40 anos depois, a lei de Moore continua válida.
Um processador tem, por propósito, realizar operações com dados (que denominamos processamento)
non11almcntc numé1icos. Para realizar essas operações o processador nccc..""SSita, em primeiro lugar, interpretar
que tipo de operação ele irá executar (pode ser a soma de dois números, pode ser a subtração de dois valores,
e assim por diante). Em seguida, antes da realização propriamente dita da operação, é necessário que os dados
t:stejam armazenados no dispositivo que irá executar a operação.
Portanto. o processador não somente realiza o processamemo (executa a operação com os dados) como tam-
bém controla todo o funcionamento do sistema. ou seja, busca a desciiçào da operação a ser realizada, interpreta
que tipo de operação deverá ser realizado, localiza e busca os dados que serão processados, e assim por diante.
Todo processador é construído de modo a ser capaz de rc·alizar algumas operações, denominadas p,;miti-
vas, tais como:
somar, subtrair, multiplicar ou dividir números (operações arinnéricas);
mover um dado de um local de annazenamento para outro {operação de movimento de dados):
transferir um valor (dado) parn um dispositivo de saída (operação de entrada ou saída (EIS). e assim por
diante.
Sn$W

156 / Processadores

Essas operações e a localização dos dados que elas manipulam têm que estar represencadas na única forma
inteligível pelo sistema, que é uma seqüência de sinais elétricos, cuja imensidade corresponde a Os e Is (uma
seqüência de bits).
A seqüência de Os e Is que formaliza uma determinada operação a ser realizada pelo processador denomi-
na-se instrução de máquina.
Uma instrução de máquina é a identificação fonnal do tipo de operação a ser realizado (portanco, cada
operação consiste em uma instrução diferente), contendo um grupo de bit~ que identifica a operação a ser
realizada e outro grupo de bits que pennite a localização e o acesso aos dados que serão manipulados na n::fo-
rida operação. O u seja, se a operação desejada é uma soma, a instrução de máquina correspondente deve conter
os bits necessários para indicar que se trata de soma e onde estão annazenados os valores que deverão ser so-
mados.
Na realidade, não se trata só de os bits indicarem que a operação é de soma, pois este grupo de bits, que
mais adiante será identificado como um elemenco chamado código de operação, será responsável por gerar uma
seqüência de ações (que chamamos microopcrações em sistemas microprogramados) para execução propria-
mente dita da instrução (da operação).
O que realmente se deseja mostrar é que, cm nossa linguagem (dos humanos), que é gráfica (temos muitos
símbolos diferentes para diversas atividades que queremos realizar), é mais simples expressar diferentes modos
de rc-alizar uma mesma operação, con10, por cxe1nplo, o de u1na mesma ope.:rnção de soma:
a) soma de valores inteiros: 135 + 272
b) soma de valores fracionários: 135, 77 + 272, 89
c) notação ciencífica: 0,135 0 1o+<U + Ü,0272 * JQHM
No computador, por ser uma máquina sem inteligência própria, é necessário especificar detalhadamente
como as operações serão realizadas. O algoritmo (passo a passo) para executar a soma indicada no item (a) é
totalmente diferente do algoritlllO para realizar a mesma operação de soma, porém indicada de modo diferen-
te no item (c). Ainda mais, a mesma operação, representada do lllcsmo modo e com o mesmo algoritmo do
item (a), pode ser realizada com os valores 135 e 272 (dados) armazenados nos registradores do processador ou
com os mesmos dados, porém armazenados na memória. Em cada caso, alguns passos do algoritmo da soma
(a busca dos dados) serão diferentes, caso estejam nos registradores ou na memória.
Um programa executável (ver Apêndice C) é constituído de um coqjunto de instruções de máquina (ver
o item 6.3) seqüencialmente organizadas (nos sistemas PC, um programa executável possui a temúnação .EXE).
Para que a execução do referido programa tenha início é necessário q ue:
1) as instruções a serem executadas estejam armazenadas em células sucessivas, na memória p,incipal;
2) o endereço da primeira instrução do programa esteja armazenado no processador, para que ele possa
iniciar o processo de buscar - que é efetivamente uma operação de leitura - essa primeira instrução
(veremos mais adiante que os endereços das instruções são armazenados em um registrador específico
para isso).
A função do processador (UCP) consiste, emão, em:
a) buscar uma instrução na memória (operação de leitura). uma de cada vez (cujo endereço deve estar
armazenado no registrador existente na UCP e específico para esse fim);
b) interpretar que operação a instrução está explicitando (pode ser uma soma de dois números. uma mul-
tiplicação, uma operação de entrada ou de saída de dados, ou ainda uma operação de movimentação de
um dado de uma célula para outra);
e) buscar os dados onde estiverem armazenados, para trazê-los até o proc~ssador;
d) executar efetivamente a operação com o(s) dado(s);
e) guardar o resultado (se houver algum) no local definido na instrução; e, finalmente,
f) reiniciar o processo buscando uma nova instrução.
snow
Pro,eesst1dorl!':S I 15 7

Buscar
lr1St11.Jção r1a
memória

Interpretar a
operação a ser
realiza<kt

Buscar
oiperandos
(oo ho1.1ver)

Executara
operação

Escrever
resuUado

Término
1-igura 6.2 Ciclo de instrução básico.

Es.ta etapas con1põem o que s.e denomina um ciclo de imlmçào (ver Fig. 6.2). E te ciclo e t·Cpcte indcfini-
dameme aré que o isrema eja desligado ou reinicia.do (por reset ou novo bool) ou ocorra algum tipo d erro
ou. ainda. que cja e11contrada uma instruçao de parada. Em our:ra palavras o processador é projetado e fabri-
cado com o propósito ú1 ico d1: executa uce- ivamente pequenas operações matemática. (ou outra manipu-
laçoes. imple com dados), na ordem e na seqüência definida pela organização do programa.
A Fig. 6.2, que se constitui em uma versão ampliada da Fig. 2.6 t 10s.tra uma seqüêncü1 imp]ificada. do
algoritmo de funcionarnemo de um processador ou visto de outro n11odo, o conjun~o de etapa que cons6-
tm:m ..:fetivamenrc o cido de cxeçuçâo de uma instrução. Mai. adi, me em, seqüência eci det.alhada. de modo
a :st" t<nnar complct,.
Mais uma vez, é preci. o ressaltar a -.implici!dadc do moddo de processador em análise, o que favor ce as
..-xplicaçõe.s e garante solidez no co,,hccimenco adlJuirido permit1ndo que posc~riormente, se possa mostrar,
nc te ou çm qualquc.::T outro u:xto, modelos mais av;mçadm qui.: o ldrnr esclarecido e com e._a base poderá
compreender em dificu]dade.
Uma d:.i . imp1ificaçõe do modelo con i te e1 demonstrar o fonciomuncnto do . i_~cem pela execução
seqfiencia] de m111 cido de instrução, ou seja a realização de um ciclo (de uma operação) de cada vez. Ou seja,
srnneme apó o processador realizar todas a.s etapas do e ido de uma instrução é que iniciará o ciclo da próxi-
ma., e assim suces..si amente. É semelha me ao proce:s~t> dt::" uma rubrica de TVs., cttio modelo de produção (an-
tigo} fos.\e o, de montaT urn1.i TV completa de cada vez (o ato de interlinar t! montar todos os. componente at~
o apan:lho esta,· pronto pode ser :.issemelhado ao ciclo de uma imtn1ção); ou seja, ~om •ntc após. um ap;u-elho
de: 'TV 1:c-sta1· pronto ,é qm: S:c: inicia o ddo de momag,i.:m do aparelho seguinte.
em a: fibrkas de TV nem O!i processadore atuais utilizam esse moddo, mas. ele é fünda1nentalme11te
imples de s. r explicado. Atualmente (no ca o do prncl! s.adores., a panir do [ntel 80 6, em 1978) o modelo
de pro e. samento U$3do é de múltiplas in ttuçõe. Sl;!'lldo t!xccutad'I- concommremente ou até me~mo siimultanea-
mi.:nti.:, proci.: ·e denominadú lir1lia de mo1m1.gem por :ser einelh, nre ao e.·einpJo da linha d ~ montagem da
snow
158 / Pn.ltes.sadores

fábdca de TV (ou pipdiuiug), havendo ,ünda arquic ·tura~ que t:mp.-cgam mais de ul1la linha de mrn1tagi.:m paTa
execução da opera.çôe primitiv,1s - sio o processadon..-s s.up~n.·!;ca,brc:s, como n Pen ti um 4, cuj:,s. caracte1ís.-
ticas. básicas erão mostradas no Apêndice D.
Os proce s.adores I :ite] 8080 e 8085 o processador Motorofa 6800 e o processador ZiJog Z80 empregavam
o mftodo dt: 1,;xecuç-ào seqüencial de um ócio de instrução, semelha.me ao da mbrica de TV que numtava um
aparelho compfoto de cad.a vez.
Os proce s.adon: lrud 8086 e 8088 intmduzirnm dois es.tágios de pipdi11i111?; já o proce ador lntel 80486
atingiu cinco estágio d1; proc~s:sam1,;nto ind'pendente; o Jntel Pentium Pro e o PowerP operavam com -:ei
t-stãgios funcionais· o Intel Pentium ll (6.~ geração} trabalhava com 10 estágio, e alguns. modelos do Pentjmn
4 adota111 até 20 estftgios..
O leiror que compreendeu km o mod ,]o simples. de ciclo de instrução s. qüencial, a ser explicado neste
capítulo, não deverá ter dificuldadt! para cntl.!nder a evolução do processo, como a tecnologia pipr•li11f11R, que
mo~trtm.:mo~ brcvcm1.;nte ainda 11e-ste capítulo, ou como o processamento pal'aldo m1 o prnces.samento fora
de ordem, o processamento es.pecuJativo ou o processamento vetorial tratados tamo no Cap. 12 quamo nú
Apêndice D.
Os rnnms l iCTO e TÉRM[NO, 1:n ostrados na Fig. 6.2, podem ser entendidos como o iní io e o térmi-
no do foncionamemo da máquina, isco é, quando se liga a chave ele alimenta,ç ão (!w11'fr cm) e quando i.; desliga
o compurador (pc,werqfj, ou início de seu funciom.me11to cm uma rcinicí::ilizaçào. 11llnmt todo o tt:!mpo "111
que a máquina esti ligada cfa ex~cuta inínt ·rrnptame-ntl.! cidos. d1.: in trnção, como mo trado na Fig. 6.3.

Exécutar a operação
Bu5éar uma if'IStruç-.ão Interpretar a irislrução
indicada pela inlelllPfetaçãQ

Figura 6. 3 Funciom1ment:o do hardware do processador - ciclo de instrução básico.

Mais adiante, intmos obsc.:.-var qm; lllll ciclo de in tmção é constituído de etapas mai detalhada do que as
qu · mostramos até o momento. Por exemplo, antes de realizar a operação o proce. sador deve bus.car o(s.)
dado(s) que sed.(ào) manipulado(s) durante a execução da operação, quando for oca o de uma opera,çiío coni
dados.

As Funçies Realizadas pelos Processadores


As atividades realizada.~ por um proce~ador {suas fi.mçôt:~) podr.-m ser dividida. cm duas grande. categorias:
• função processamemo· e
• função contro]e.
A Fig. 6.4 mostra um diagrama em bloco simples de um process.ador, mo trando as duas áreas fimcionais
aqui referidas. interliga.da por um conjunto de fios denominados, em bloco, barramento intemo do proces-
sa.d or, por onde fluem sinai de dados (d,rdpara o bloco de processamento), de endereço e de controle. que
se em canto a uma quanto a our:rn área do pruces.sador; a parte con tiruída pelos componente da área de
proce: amento é u ualmence conhc:óda cm h;xto~ cm i11glês como data pa,li.
A Fig. 6.5 mostra um esquema de um processador simple (baseia-se essencialmente no e quema de funci-
onan1c-mo e- nm componente. do lmcl 8080 qm:. até hoje, após 30 anm de eu lançamento, ainda serve para
en ino não só de arquitetura· de proce~ado1·e , mas ta1nbém de progr:u-naçào em lfrlgnagem ,lSSembly). Em-
bora no dias at1.rnis s · use mai~ o ccn110 procl' s.ador, naquda época usava- e mai$ Unidadl' Lcmrnl de Pmcc.:s-
samento - UCP. tendo ido as im mantido na figura. Além cli_s.o, não s.e falava em microarquitt"tura. e, por
isso, estamos. e l!staremos lls.:.indo juntos nos. di::igrama~ concc.:itos de dllis nívci!. de :rrquitctura atuais, o das
imtn.1çõi.: de máqui11a (conhecido e acc.:ssado pdo!\ probrr:,madl)rcs de si!.tcma) e o da microarquitecul'1. (mais
baixo, p1·óxímo ao hardvv·a.-c e não a.ctc~ívd ao~ prográmadorcs).
snow

Procecssador

Área f1,1ncional de
!)tocessa men10 o
(ExeC'llçâo ele Opet"ação) E
~
Área rum:íooal do
con1ro1e
(Busca, interprelação e
oorilrOle d:e, inslrução)

Para mernôria

Bartaml}11to do sístlã'ma Figura 6.4 Diagra:ma em bJoco (básico)


(System bus) de um pro ces ~dor.

Barramento
UCP de dados

IJAL
ACC
Regst'adores REM (MAR)
OaR-1 CI {PC}

IJC

Barramen10 de ..001role

---. co1111ole
e:::::;> clados/endereQO

Figura 6.5 Esqnen1.a simplificado de urna UCP.

a figura , mo tram-~e o principais coinponcnt(.'5 da dua áreas funcionai de um procc ~dor (apr(.'5cnta-
d:i na Fig. 6.4), o~ g uais erão descritos mai adiante: a UAL, o ACC e regis.tradore de dados, como parte da
área funcionaJ de processamento; a UC- unidade de controle, RI - registra.dor de instrução decodificador
dt' in. n1.1çõe I (PC) - conrndot de imr1'ü1rào (rodt">S fazendo pãrtc da frca funcional de controle - Fig. 6.4).
REM (MAR ) - rcgistrador de endereço!'. ele n1emólia e RDM (MBR) - registrador de dados de memória,
aJém do barra1ne1 to imemo.
Desercvcn do as dua:s fonçô(.:S pode-. e afi rm:;i r que a .fimçJ,i prori:ssmr1e11 to $é encam:ga d realizar as at:jvida-
dcs rdacinn.td.a:s com a t:fotiva cxccuçâo de urna op -raç~o. ou s.i;ja, processar, realizar mn cálculo aritmético
ou lógico, p.ex.. O item 6.2.1 aprcscma m den1lhc!i mais importante~ rdativos aos com ponente: do processa-
dor quc constitu~m esta área, e a,,; Figs. 6.6 e 6.7 mos.tram, res.pectivam nte, o diagrama em b]oco do proces-
SDêW

Área fun.cional ele prooesse.men!o

_____B!_gO
Reg 1
Reg2
Reg3

IReg N-1
Regfalrador
de c.on1rof9

Area fun.cional de controle

Figura 6.6 Componentes da âr1u1 fünc·onaiJ de pr,o :s:amcoto.

Ba_rramento
UCP ,d 'e°'~
ROM (MSfl,}

Regi!.lradoce-s
O a. R-1 Cl (PC)
!Barramento
_ _ _... i ------+--' i ..__ _ __, ~e end'ereços

uc
Barraméilito de oonlmli:t

QOl'l11'(11é
=l:> ~et1derc691)

fig1.1:ra 6.7 E$qnema da UCP .m o,strada na Fig. 6.S, co,m realce para o-s el,e mentos que contribuem para a
realização da função pt<oce amento.
SU$W

/>rocessadorC$ I 161

sador, com os componemes da área de processamento e o mesmo diagrama do processador mostrado na Fig.
6.5, porém realçando os componentes diretamente relacionados a essa função (item 6.2.1).
A fimçào co111role é exercida pelos componentes do processador que se encarregam das atividades de busca,
interpretação e controle da execução das instruções, bem como do controle da ação dos demais componentes
do sistema de computação (memória, entrada/ saída). O item 6.2.2 descreve em detalhes os elementos desta
área do processador, e as Figs. 6.8 e 6.9 mostram, respectivamente, o diagrama em bloco do processador, com
os componentes da área de controle e o mesmo diagrama do processador mostrado na Fig. 6.5, porém real-
çando os componentes diretamente relacionados a essa função {item 6.2.2).
Em resumo. é possível conccitualmcnte imaginar que um processador simples, sem elementos mais com-
plexos, pode ser dividido nestas duas áreas. Esm divisão é bem apropriada para caracterizarmos e entendennos
melhor o processo de execução seqiiencial e serial de um ciclo de uma instrução, aquele que é típíco das
máquinas com arquitetura SIMD (Si11gle lusrn1C1io11 Si11gle DaM - Uma Instrução, Um Dado) (ver item 12.2.1),
ou seja, a cada instrução se manipula um dado, no qual cada atividade do ciclo de instrução (ver Fig. 6.2) é
realizada en1 seqüência à anterior. Como já m.encionarnos 1nais de mna vez, é mn processo lento e pouco
eficiente, se desejarmos maior velocidade de processamento. Na maior parte deste capítulo vamos tratar do
funcio namento de um processador que trabalha de modo seqüencial. Mais adiante, será apresentada uma des-
crição do processo pipeline; o leitor poderá, conforme também já mencionamos, obter informações sobre
arquiteturas atuais, mais avançadas, no Cap. 12 e no Apêndice D. Além disso, no Cap. 11 há informações e
detalhes sobre o utro tipo de arquitetura de computadores, denominada RJSC- Reduced lustn1(1io11 Ser Co111p11ters,
ou Computadores com Conjunto Reduzido de Instruções.
Ainda para completar nosso entendimento das macrofunções dos processadores em termos de suas duas
grandes áreas funcionais, podemos apresentar um exemplo do funcionamento do corpo humano, no qual
pode-se observar que os processadores têm grande semelhança.
Se uma pessoa, de repente, deseja levantar seu braço direíto (execumr unl.l operação primitiva - o proces-
sador pode ter que, por exemplo, executar uma soma de dois números, que é uma operação primitiva, cuja
scqüêncía de execução vem de fabrica embutida na unidade de controle do processador), realiza primeiro a
atividade cerebral de interpretar a ordem (instrução de máquina, no caso do processador) de levantar o braço

Processador

Atea funcional de processamento


Sinais de controle -;J ~ Dados
.- - - - - - - - - - - , Controle
1 Memória
Unidade 1 de controle
de 1
•1
controle
1
t t t-----t 1
Relógio
uc Oeoodifieador
(Untt oontrol) 1 de lnstruQOes 1
1 (Deco<ler) 1
1
------ -- --- Controle 1

RI • Registrador 1
de instruções 1

CI • Contador Controle
de instruções
(PC . Program counter)
Endereços~
Área funcional de oontrole =
Dados. endereços e controle Figura 6.8 Componentes básicos da
para o barramento do sistema ,_. área funcional de controle.
snow
162 / Prore,SS(ldores

UCP

UAL
ACC
F>ioglSlreidoros
OaR-1 CI {PC)

.._..__...l -----~lt
Barramen1o
d& en<lereços
~----

uc
Bàlramen10 ele ccntrole

oolllro!e
=C:,-dadosA!ndereQO

Figura 6;() Esquema da UCP mostrada na Fig. 6.5. com realce para os e lemen to que contribu,e m para a
re-alização da função controle.

(ou dt: ornar doi_~ valort: no caso do processador) e. crn seguida, gera sinais elétricos que pcrcorr4;!m os ner-
vo (nos..,;a 'fiação'' interna, semelhante ao barramento do proce s.ador) até os músculo do braço - es.sa se-
qtiéncia faz parte da ativjdade cereb:raJ, se-melhante à da área de controle de um prece ador. Ao atingir· os
rn(1sculos, os sinais acionam o movimento de suspender o braço (atividade muscular ou no caso dos proces-
sadores, a atividade de execução da operação ou arividadc d,e processamento) .

6.2.1 P unção Processamento,


o Cap. 1 foi aprcs.i;ntado o concdto do que ignifica processarm~nto de dados., a ação de manipula[ um ou
mais valores. (dado) em uma certa seqüência de ações., de modo a produzir um res.ultado útil. O res.ultado
muda conforme o tipo de operação realizada (ou :seja de acordo com a seqi.iência. de açôe - de acordo com
a in truçio espedfica). Esta é a essência dos . iscema!> de computação comerciais, que combinam o hardware
(fixu e irnut-ávd) com o sofrwarc (foc:ilmcnce modific::1do - pdo m cno para progran1ac.forc!> esperto ), rapaz
de realizar difc.n::-nrc~ rm·c&!> (o hardware) conforml.! a ordem e a seqü&ncia d,i; imtniçõç qtie recebe (atravi~
do oÍtwan;).
Por cxempio se uma insnu çào define q ue deve ~er realizada uma operação de adição sobre os valores A =
5 e B = 3,
ou eja: A+ D,
o sistema, ao inti.;rpretar a in truçào, ger-a. ações ubs.~qüentes. que redundarão no re uhado de valor igual a.
5 + 3 ""' 8. Por outro Lado, e o sistema interpretar uma outra instrução que define a operaçào de s.ubtraçào,
ou A - B,
ele deve ierar outras ações. (embora obre o mesmos dados) de modo que o resultado se-ja 5 - 3 - 2 (e não
mais 8). E claro que parce da!> ações rcalizadlL'> para executar as duas instruções é igual.
Process.;u- o dado é executar com ele uma ação que produza algum tipo de resultado. Esta é, pois, a ;11tjvida-
de--fim do sistema; de exjste para proces ar dados. Entre as tarefas comuns a 1.:s.ta funçào - processamento -
podem er citada as que realizam:
Sn$W
Prowsadores / 163

operações aritméticas (somar, subtrair, multiplicar. dividir);


operações lógicas (and, or, xor etc. - ver Apêndice B);
• movimentação de dados (memória - UCP, UCP - memória, registrador - registrador etc.);
desvios (alteração de seqüência de execução de instmçõcs);
• operações de entrada ou saída.
Basicamente, esta área consiste nos seguintes componentes principais (ver Figs. 6.6 e 6 .7):
- UAL' - Unidade A,;tmética e Lógica ou Aritluuetic aud Logit Uuit - ALU - é o dispositivo principal
da função processamento, o que efetivamente realiza as operações prinútivas da máquina;
- registradores de dados - ou simplesmente registradores, que servem para armazenar dados (ou para
guardar resultados), que serão usados pela UAL, ou resultados parciais das operações.
- registrador especial de controle (ou de.flags) - que armazena um conjunto de bits, cada um deles com
funções específicas, decorrentes das operações aritméticas realizadas;
- barramento interno - a interligação entre estes componentes é efetuada pelo barramento interno do
processador (ver mais sobre barramentos no Cap. 2 e no Apêndice D) . Em conjunto, essa área é co-
nhecida também como data patlt.

6.2.1.1 Unidade Aritmética e Lógica - UAL


A UAL ("ALU") é o dispositivo do processador que efetivamente executa as operações matemáticas com
os dados. T ais operações podem ser:
- soma - subn-..çào
- multiplicação -divisão
- operação lógica AND - operação lógica OR
- operação lógica XOR - operação complemento
- deslocamento à direita - deslocamento à esquerda
- incremento de 1 a un1 valor - decremento de l a um va101·
Tais operações podem utilizar dois valores (operações aritméticas, operações lógicas), por isso a UAL pos-
sui duas entradas de dados (ver Fig. 6.5) ou apenas um valor (como, por exemplo, a operação de co111plemen-
to - ver item 7.5. 1). Ambas as entradas se conectam à saída (resultado da operação efetuada) pelo barramento
interno de dados. Além dessas entradas, a UAL recebe, também, sinais de controle que vão decernúnar que
operação será realizada.
Nos processadores mais antigos, o barramento interno de dados servia para interligar a UAL a um regim-..-
dor especial chamado acumulador ou, abreviadamente, ACC (accumulator) e aos demais registradores e daí à
memória pri ncipal, conforme pode ser observado na Fig. 6.5; nos processadores mais modernos, com mais
componentes, o barra111ento interno conduz os bits de dados de e para a memória cache LI, um dos N regis-
rradores de dados e daí para a UAL que processa os valores (ver diag,-..ma do processador Pentium no Apên-
dice D).
Qualquer UAL í:: um aglomerado de circuitos lógicos (ver Apêndice B) e componentes eletrónicos simples
que, integrados, realizam as operações já 111encionadas. Ela pode ser uma parte pequena da pastilha do proces-
sador. usada em pequenos sistemas, ou pode compreender um considerável conjunto de componentes lógicos
de alta velocidade, sendo que os processadores vêm utilizando em suas arquitecu rns, conforme já 111encionado,
mais de uma UAL. de modo a to111ar a execução das instruções mais rápida. A Fig. 6 .10 mostra uma UAL
comendo duas entradas (dados e controle) e saídas.

~o tl'TIIIO UAL. <:tmb~m podt· ser t·urnn1rndo .:omo ULA - Uni<bdc Lópl-.t l" Antml'lil-,.
Sn$ W
164 / Procmaáom

Saida para flags Salda para registradores

UAL

Entradas de registradores
Figura 6.10 Interligação da UAL ao restante da UCP.

Alguns fabricantes têm substituído o nome Unidade Aritmética e Lógica - UAL por Unidade de Cálculo
ou de Execução, como é o caso da Intel e AMD (IU - fllreger U11it), para o componente que realiza tanto
cálculos arinnéticos (com núineros inteiros, normalmente utilizando a metodologia de complemento a dois)
quanto cálculos com operadores lógicos, daí seu nome UAL. No entanto, arquiteturas mais recentes, como
do Pentium 4, voltaram a denominar a unidade como originalmente, ALU - Arit/rmeric n11d wgic Uuir). Já o
componente projetado para executar cálculos com números fracionários - representados em ponto flutuante
- não executa operações lógicas e seu nome, desde o surgimento do Intel 486, tem sido FPU - Ffomiug Poiur
Uuir, ou Unidade de Ponto Flutuante.
É interessante observar, também, o que já tem sido mencionado diversas vezes nesse texto sobre o real
funcionamento do hardware, especialmente dos processadores, como um imenso conjunto de minúsculas chaves
que abrem e fecham e permitem a passagem de sinais elétricos, os quais ca1ninhan1 de urn loca) para outro na
velocidade nominal da luz; e que, por isso, quanto n1enor for a distância entre os pontos de um percurso, n1ais
rápida será a ação decorrente.
A UAL, como todos os demais componentes, também se enquadra nesse modelo, o que pode ser exem-
plificado na Fig. 6.1 1, na qual mostra-se duas UAL com tamanhos fisicos diferentes. A UAL 1 é constituída de
transístores com determinada espessura, e a UAL 2 é constituída da mesma quantidade de transístores, porém
com espessura bem menor. A realização de uma operação de soma de 1 bit (valor 1) com outro bit (valor O)
produzirá, naturalmente, o resultado de valor binário igual a 1. Na figura, a operação (simplificadíssima, é

Entradas UAL 1

bit11l_
bit 1 J1_

4 ~ d1= V• t1
distànçia d,
UAL2
bit11l_ 1
1bit 1 J1_'
biton :
4 J d1 =v·t,
d,
Figura 6.11 Influência da redução do tamanho
tl e t, · tempo para sinais (bits) comod,< d, dos componentes no tempo de execução de
percorTerem a UAL 1 e a UAL 2 então:(EJ atividades do procc.ssamcnto.
Sn$W

Pr0<essadorts / 165

claro) é mostrada com o propósito de mostrar que ela se constitui efetivamente do percurso dos dois sinais
pelo dispositivo (a UAL), percurso este que tem uma extensão füica dl para a UALl e d, para a UAL2. Como
os sinais e1étricos em ambos os componentes perco1,-cm os demcntos com a mesma velocidade. v, da luz,
então:
Na UAL I-> d1 =V$ t1

Na UAL2 -> d~ = V*~


Como d, < d,, então, t1 < t,
A despeito da g,·ande variação de velocidade, tamanho e complexidade, as operações aritméticas e lógicas
realizadas por uma UAL seguem sempre os mesmos princípios fundamentais das UAL mais antigas. Nos Caps.
3 e 7 são apresentados detalhes sobre a execução de operações aritméticas e lógicas. tanto com valores inteiros,
ponto fixo, quanto com valores represent.1dos em ponto flutuante, inc1usive incluindo o sinal dos números e
operações em complemento a dois, usadas nas UAL contemporâneas. No Apêndice O são mostrados mais
detalhes do funcionamento das UAL para inteiros.

6.2.1.2 Registradores de dados


Para que um dado possa ser transferido para a UAL, é necc,;sário que ele permaneça, mesmo que por um
breve instante, armazenado em um regisrrador (a memória específica dos processadores - ver defin ição e ca-
racterísticas de regisrradores no Cap. 4). Além disso, o resultado de uma operação aritmética o u lógica reali-
zada na UAL deve ser armazenado temporariamente, de modo que possa ser reutilizado mais adiante (por
outra instrução) o u apenas para ser, em seguida, transferido para a memória (seja memória cache LI ou L2. ou
memória RAM). Mesmo no caso dos atuais processadores, dotados de uma quantidade apreciável de espaço
de annazenamenco nas n1emórias cache L1, os registradores continuam a existir e ser i1nportantes, visto que o
tempo de transferência de um registrado,· para a UAL é notavelmente menor que o das memórias cache. Nos
proce,;sadores com arquitetura do tipo RISC, por exemplo, a importância dos registradores é considerável e
sua quantidade, por isso, é maior que a dos processadores com arquitetura do tipo ClSC, conforme pode ser
constatado com detalhe no Cap. 11.
Para atender aos propósitos mencionados, os processadores são fabricados contendo uma cerca quantidade
de registradores, destinados ao amiazenamemo de dados. Servem, pois, de memória auxiliar básica da UAL.
Os sistemas mais antigos, como mostrado na Fig. 6.5, possuíam um regiscrador especial, denorninado ac1m111-
lndor (abrevia-se, em inglês, ACC). o qual, além de armazenar dados, servia, também. de elemento de ligação
da UAL com os restantes dispositivos do processador. As máquinas de grande porte nunca tiveram esse regis-
trador incluído em sua arquitetura, sejam os fabricados pela IBM ou pela DEC ou, ainda, pela U nysis e CDC.
Posteriormente, a partir do surgimento da segunda geração de microprocessadon,s da Intel, proce,;sadorcs
8086/8088, o ACC desapareceu, optando-se por inserir no processador registradores especializados no arma-
zenamento de dados, de endereços e de segmentos, c1tias funções nos processadores constam nos exemplos
dc-scritos no Apêndice: D; os registradores costumam ser identificados por letras, tipo: AH, AL, EAX e o utras.
Nos processadores de outros fabricantes, como os K6 e Athlon-K7 da AMO, não existiu o ACC, mas apenas
registradores de dados. A Fig. 6.6 mostra um conjunto de registradores de dados, que também podem recc:ber
endereços para acesso. numerados gene1icamente de R,., até R:.:-i·
Os regisrradores de dados de alguns processadores têm uma largura (quantidade de bits que podem arma-
zenar) igual ao tamanho estabelecido pelo fabrica nte para a palavra do referido processador, quando se traia de
regist:radores para valores inteiros e que operam com a unidade de execução de cálculos de valores inteiros,
enquanto possuem, em geral, o dobro da larg,,ra da palavra quando se trata de registradores para armazenar
números representados c m ponto flutuante, a sere m manipulados pelas unidades de cálculo de ponto flutuan-
te (FPU). Desse modo, processadores que possuem palavra de largura igual a 16 bits devem ter seus rcgistra-
dores de dados com largura igual a 16 bits, assim como aqueles que po,;suem palavra de 32 ou 64 bits devem
ser fabricados com seus registradores de dados com largura. respectivamente, de 32 bits e 64 bits.
Além dos registradores de dados, os procc,;sadores possuem, e m geral, outros registradores (que não parti-
cipam diretamente da função processamento), com fimções específicas ou que funcionam para a área de con-
Sn$ W

166 / Proc,ssadores

trole, os quais serão descri tos mais adiante. Entre estes rcgistradores podemos citar desde já o registrador de
inst11.1çfo (R.J) e o contador de instrução (CI) ou PC - Progmm Cmmtcr, além do registrador de endereços de
memória - R..EM (ou MAR.) e o registn1dor de dados de memória - R.DM (ou MBR.), já descritos no Cap. 4.

Registradores Especiais de Estado


Além dos registradores usuais para armazenamento de dados e de endereços, a área de processamento se
vale de um outro ripo de registradores que auxiliam e completam a realização das operações matemáticas pda
UAL, i11dica11do o estado de vários clcme11tos referemes à operação em si. Alguns fabricantes de11ominarn esse
conjunto de registradores de PSW - Pr,i~rnm Stntus Wc>rd. que poderia ser traduzido como palavra de estado
do programa e outros denominam registrador de controle, como mostrado na Fig. 6.6.
Na realidade, o registrador se comporta conceicualmente de modo diferente dos demais registradorcs exis-
tentes nos processadores, pois em vez de annazcnar dados de forma integral. isto é, um único valor. de se
d ivide cm bits que possuem significado d iferente, um por um. Usualmente, esses bits são setados (seu valor é
colocado em l) ou nào (mantidos em valor O) após a execução de cada operação aritmética; a descrição da
operação cm si já estabelece que ou quais bitS de controle serão setados pelo resultado da operação. Os prin-
cipais bits de estado mais frcqüeutcmentc encontrados nos processadores s.1o:
sinal - contém o sinal resultante da última operação aritmética realizada pelo processador.
overflow - quando setado (= l) indica que a última operação aritmética realizada resultou em estouro
do valo,·, um erro.
zero - quando setado (= I} indica que a última operação aritmética realizada resultou no valor zero.
vai 1 (rarry) - indica que oco1Tcu "vai 1" para o bit mais à esquerda 11a última operação de soma realizada .
Pode indicar, também, overflow em optraçõcs con1 nlllneros sem sinal.
paridade-é secado(= 1) ou não (=O), dependendo da quantidade de bits I no byte recebido (ver Cap. 7).
A Fig. 6.12(a) mostra o co,tjunto de bitS do registrador de estado dos p.-ocessadores L'entium, denominados
cm conj unto registrador Eflags, enquanto a Fig. 6.1 2(b) mostra o mesmo ripo de bits de estado utilizado pelos
preoccssadorcs Motorola, 68000, denominados códigos de condição ((011di1io11 (odes).

6.2.1.3 A Influência do Tamanho da Palavra


A capacidade de processamento de um processador (a velocidade com que realiza o ciclo de uma instrução)
é em grande parte determinada pelas facilidades embutidas no hardware da UAL (ela é, aliás, só hardware)
para realizar as operações matemáticas projetadas-'.
Um dos elementos fundamentais para isso é a definição do tamn11ho dn pa/m,rn do processador. O valores-
colhido no projeto de fabricação do processador determinará o tamanho dos elementos ligados à área de pro-
cessamemo, a UAL e os registradores de dados.
Nos processadores mais antigos, como o 8080/ 8085, 8086/ 8088 ou mesmo o 80386, também o barramento
extemo de dados (o llD, existente na placa-mãe, também chamado em bloco de bamunento do sistema ou FSB -
front side bus) tinha uma largura. em bits. igual ao tamanho da palavra. Com a inserção da memória cache interna
nos processadores, a partir do processador Intel 486 (atualmente, todos os processadores possuem, pelo menos, a
cache intema L1 e alguns possuem, alim dessa, também uma segunda cachc interna, a L2), tomou-se vam~tjoso
buscar ir1ais da.dos de cada vez das memórias externas ao processador, já que estes poderiam ser annazenados na
cache L1 antes de reque1idos pelo process.1dor, acelerando a velocidade de procc-ssamento. Desta fo1111a, os barramentos
de dados passaram a ter uma largt1ra. em bits, maior do que o tamanho da palavra. Nos Pcntium originais, o barra-
mento interno de d1dos tinha largura de 64 bits, t: atualmente há ban-amcntos com 128 bits.

'Na r,•;1lid:id(·. nuutos 1;uor1..,_ 1.·omnbu1.'111 p.ira o :.n1111c:mo d:i .;-ap:it·idJ.d,: di: pNKt..,._-.Jlll<'UIC) d1.· mu:i UC P e 11.lo ,0111cuh· o um.mho ,b Jnl.n l';l, 1.·<>m<>. p.,·x .. :'I
,1u:ann1l.1dt· 1k UAL ,·xi..•Mnf<' no pro<'1.-...~dor (dt"$dc o procc-ss.1,lor -48(, ltlll ~ido pcnn:incruc o uso d1.· 1lu.,~ ou 111..ti< uni11.J.<k.,_ .mlm~lk:is. ~-p.irando. mdm1n ·.
o ,·.ikulo com iml.'irCK (ponto 6-.o) ,lo d,: fndon;Írios (pc,1110 llununu:) c:m umd:id,·, md,·p,·eulcuu•\ c ,..,.pt"<·i..,liz-..ttfa, JMl'3. c;id:i c:i~).
snow
Prou .mulores I 167

31 30 29 28 27 26 25 :24 23 22 212019 18 17 16 15 114 13 12 11 10 9 8 7 6 5 4 3 2 1 O


1
V V
,o o o o o, o ô o o o 1 1 1 A V R o N op oF D 1 T S z A (l p
F F F F F o F o eF
o p e M F T
F
F
L

X ID FLAG (1D ) J
1
X Víirtual linte·m
· upt Pending {VIP)
- . pt FLAG (VIF)
X Virtual l11terru -
X Alignment eheck (AC) -- 1

X Virtual - 80,8 6 Mode (VM)


X Resume FLAG (RF)
X Nested Tas k (NT) 1

X 1/0 Privileg,e Levei (IOPL) - -


S Overflow FLA· G (OF}
e Direc~ion FLAG (DF}
X lnterrupt E nable FLAG (IIF) 1
X Trap FLAG ,{TF) -
S Sign FLAG (SF)
s Zero FLAG (ZF) -- 1
J

S Auxiliary Ca. rry FLAG (AF)


S Party FLAG ,(PF)
S Cany FLAG (CF) 1

S lndicates a Sta~us FlAG


C lndicates a Contrai FLAG
X lndicates a System FlAG

O Posições reservadas ainda sem uso

Figura 6.12(a) Registrador EFLAG do processador Pentiimn.

N z V e X

N• •.iv!) FI.AG -Valor 1 seo rMAillBlbde llmll operaçloanlnM!:llcafornewe.trto.


Z: • ~ FLAG - Valor" 1 se o =utado for lol8I a zwtl,
11 • 0..Crfl;iw A.AG • Y.lloe' 1 s;e OOOITI!í Dl/!ldc!W, lslo é de1'8taoo se OOLJl'llf 1rOca i:19 sariill,
C • Cl!lll}' FLAG • Valer 1 141 OOOffllr "Vllll 1• 1111r11 b1! oo 111:lllllWO>
X • Exl.et.d i'LAG • 5eft'iOl~i.e ~ FLAG C, por!)m per.,w ~ -

figura 6. 2(b) Código de condiçifo (conditiona] oode:s:) no processador Motolll'.'ola 68000.

Um tamanho maior ou menor de palavra (e, púr con. eguintc, da UAL e do. n:gi~tradon:s de d.ados) acar-
reta, sem dúvida, diferenças acenruadas de dc-scmpcnho do procl.! sador.
om o único propósito de mostrar de forma prática a influência do tamanho da pnl.avra n capacidade de
proci.::s~mcnto de um p1-oce~ ador, vejamos um exempJo imple de dlculo.
Seja, por exemplo. a execução de 1,.un,1 úperaç~o de soma de: dois v.:dúrcs, A = 3A25 e B = 172 , ambos
niunero~ intcfros cm sin:111 com 16 bits de tamanho cada um (o~ doi. números c!>tiio rcpre~ ntados ern
hexadeci1rn1I, endo por isso annazcnados da tê:>rma visual mais inteligível, denominada l1(e·-mdian, j to é, a
SD(eW

t 68 / Prorns adom

parte m, i igruficariva do númi.:ro é armazenada no endereço tnais baixo e a parte mi.:110 'gnificativa do
número é am az.enada no endereço mais alto). fam forma é utilizada por aJgnns processadores, mas. nem to-
dos. o pmces adol'e [ntel utiliza-se a forma. oposta, denominada. líulc-e11dl'tw (ver Apêndice D). A referida
soma erá inmlada em doi isrea1:'ls de computação i~tení.t 1 e !>ÍStema 2.
O si tema 1 po ui palavra de 8 bit e a memória principal tem 64K célufas de 8 bits cada uma, conforme
inos.trado na Fig. 6.13 (pod •ria er, p.ex., semelhante à arquitetura básica do proce sadores Intel 8080/8085
ou Motorofa 6800).
O i tema 2 pos ui palavra de 16 bit: e a. 11emória prjncipal possui um espaço de endereçamento de 1M
célula· todas também com 8 bits cada uma conforr11e mostrado na fjg. 6.l4 (poderia ser, p.ex., emefüante
à arquitetura básica do proce5.!ador [ncd 8086 ou 8088}.
Em re mno, a unidade de pro ·e· a111e11to (e~te teritio "unid, de" não é L1tilizado na füeratlH'a nein pelos
fabricante mas acredjto er peritinente pam o entendimento do assm1t-0) a palavra, é diferente nos doi si te-
ma , tendo a do istema 2 o dobro do tamanho dai palavra do i tema 1, enquanto a unidad e de armazenamen-
to de ambos o sistema tem o mesmo valor, 8 bi . A drnlo de informaçào pode-se afinm1r que ainda nos
proce adore nrnis modernos :i unidade de armazena111t:mo cominua endo o b te. j to é as célula são orga.-
nizadas de modo a cada mna am,azenar um byce de dados; cnquamo i m o tamanho da palavra vem evolu-
indo !.i.n:macicamcnt~ do vaku inicial d, 4 biL-; do pri1m:iro micropr,oces.sador (Intel 4004) par.a 64 bits dos
prece adore. mai modernos para o futuro (Alpha da HP. lt.1.nimn da lnt l. AthJon 64 e Opterou da AMD
ou P.ower PC GS, da. TBM/ AppJe, pm· exemplo).

Opetª1ção de Sorna no Sistema ll


a) A opt:raçâo é realizada em duas etapa lógicas (na prár:iica são gastos diversos cempo de rdógio-, confor-
me mo trado no Apêndice D), porque cada valm-tem 16 bits e o procc-· ador (UCP) (UA_l r cgistn.dor
A C e barramento de d,1do ) só pcrniitc armazenar, proce ar e crnn ferir dado com bits de tama-
1ho.
b) a primeir-a etapa ào tran ferido para a UAL via ACC e barramemo de dados., a primeira metade de
cada número (25 para o número A e 2C para o número B), e- de .ão soma.do.

MP
UCP o 8 biis
1

1
8 bits
3A
25+2C (1')
3A-17(~) 25
17
UAL 2C

ACG= Bl:its ::: ;;

Sais Bamunerito de dados

UCP - palavra de 8 bits


Mem5ria de 64 Kblijtes

Operação: somar 2 números oom 16 bits de !amanho


A"' 3A25 ,e B"' 172C (realizada em duas etapas)
f igura 6.13 E ,e mplo d,e urna operação de soma de dois números, A e B, em um computador com palavra
de 8 bits.
SD(eW

Proc:essndom I 169

e) a egunda. etapa a. o,pe1-ação é n::alizad.l! di: forma idêntica exceto p ra a. egunda parte dos alares (3A
para o nú111ero A e 17 par.l. o número B).
d.) A opernçâio comp]ern gasta um p~r:íodo de tempo iguil a T 1 (soma do. rempos T/2 da etapa 1 e T/2
da {;;t pa 2).
A Fig. 6. t 3 1uost :a este exe nplo e11 um diagrama em bloco de um procc. ador em ·1hantc ii dn ~is.tcma 1,
com a tramfer~ncia dos valores s1mdo efetuada de 8 em 8 bits de cada vez.

Operação de Soma no Sistema 2


a.) A operação é realizada em uma única et.-ipa lógica, porque o proces:mdor é fobric.:ado para operar valores
de 16 bitS de tamanho mesmo ca111anho dos. número. Desse modo, o~ r úmero) não nece it3m ser
divididos. em dua partes, como no i tema 1.
b) A operação completa gast.a um ·p eríodo d tempo igual a T~.
A Fig:. 6. ]4 mostra e te c:xi.:rnplo cm ~Hn diagrama ·m bloco d,e um pmcç-s. ador semelhante à de.) . istcma 2
com a tran fi rência do valores se, elo efi tuada, de 16 em 16 bits de cada vez.
Comidn-anclo que a operação dtc soma no S]stema I é realizada ·m duas etapa. e ;:i mesma opi.:ração no
-i tema 2 f; rc.l.lizad ,·m uma etapa o tempo T:a deve er aproximadamente a n1etade do tempo 1• [ to torna
a capa.cidade do processador do i tema 2 'b em maior que a. capacidade do isrema L
Nota: É importante re sahar que no exemp]os anteriores foram consideradas vá ias simplifirnçõe não
somente na arquitetura do do~s sistem.a.~ como também no pi-oce ~o de s.onu vi ando n::io complitar, expli-
cação do e enc·al- a infl.uêná1 do tamanho da palavra na variação da capacidade de processamento dos 1s-
temas. Nenhmna das implifica.ç ões feiras comprom ce a c,.mclmâo final.

MP
lôblls
UCP o a bits
8 biis
3A
25
17
UAL 2C

ACC • 16 biis ::

16 biis 6am1memQ de d'.K!Os

UC.P • palavra de 16 bits


Memôria de 1 Mbyte

Op-eração: somar 2 numeros com 16 bits de tamanho


A= 3A25 e B = 172C (r,e:alãzada em um:a única etapa)

Fígur-a 6.14 Bxêmplo de uma operação d,e soma de dois números, A e B, em um computador com palavra
de 16 hiít:s.

No projero de um proces. a.dor, a definição do tainanho da palavra tem enormc influ&ncia no de-en p ·nho
globa.l de todo o componente r; por cort cguincc, do sistema como l1111 todo. Vcj:anms:
Sn$W

170 / Processadores

a) Influência o u desempenho devido ao maior ou menor tempo na execução de instruções com opera-
ções matemáticas na UAL, confonne demonstrado no exemplo aruerior.
b) Influência no desempenho devido ao tamanho escolhido para o bamtmento interno e externo. Con-
forme já mencionamos, obtém-se o máximo de desempenho quando a largura (tamanho) do barra-
mento de dados é, no mínimo, igual ao tamanho da palavra (como nos exemplos mostrados). Se a lar-
gura do barramento for, p. ex., igual a 16 bits cm um sistema com palavra de 32 bits (UAL e registra-
dores de 32 bits), então o movimento de 4 bytes de um dado tipo de caractere requererá dois ciclos de
tempo do barramento, ao passo q ue em barramento de 32 bits requereria apenas um ciclo de tempo.
c) Influência também na implementação fisica do acesso à memória. Embora atualmente a capacidade das
memórias seja medida em bytes (porq ue as células são sempre de largura igual a 8 bits), o movimento
de dados entre o proct:ssador e memó ria é normolmentc medido cm palavras, porque o barramento de
dados que une o R OM (MB R ) à memória é múltiplo da largura da palavra. Para u m proct-ssador de 32
bits de palavra, por exemplo, é desejável que a memória seja organizada de modo que sejam acessadas
quatro células contíguas (4 byces = 32 bits) em um único ciclo de memória. Se isto não ocorrer, o
processador deverá ficar cm estado de espera (wait state). Como observamos anteriormente, na realida-
de atual o bamuncnto de dados é ainda maior que o tamanho da palavra, cm geral múltiplo do tamanho
da palavra, acarretando urn desempenho ainda melhor do sistcrna .
A Tabela 6.1 apresenta uma relação de processadores com vários dados caracte1ísticos, entre os q uais o ta-
manho da palavra .

6 .2 .2 Fun ção Contro le


Já verificamos que as instruções de máquina que compõem um programa cm execução devem estar an11aze-
nadas seqi.ienciaJmcntc na mcmó1ia principal (e na cachc, stt houver uma). Já verificamos também que a UAL é
o dispositivo do processador responsável por realizar a operação matemática definida pela instrução que estiver
sendo executada no 11101nento. Falta conhecer1nos mais detalhes sobre as insm.1ções de máquina, a saber:
o que é e como fu nciona uma instrução de máquina - descrito nos itens 6.3 e 6.4;
como a referida instrução de máquina é moviinentada da memória para o processador;
• onde a instrução de máquina será armazenada no processador, e
• como será identificada e controlada a ação (a operação) que deve ser realizada.
A resposta para estas indagações está no conheci mento das funções desempenhadas pela área de controle
dos processadores.
A área de controle de um processador é a parte funcional que realiza as atividades de (uma et.1pa de cada vez
em sistemas de execução scqücncial, o u vá1ias etapas simultaneamente, em sistemas de execução pipeli11i1~f!.):
a) busca da instrução que será executada, an nazenando-a cm um registrador especialmente projetado para
esta finalidade;
b) interpretação das ações a serem desencadeadas com a execução da instrução (se é uma soma, uma sub-
tração. unta complementação etc. e como realizá-la). Estas duas etapas compõem o que se dcno1nina
rido tfe b11sm tia í11s1mçào (ou, em inglês,.fetdr tyde); e
c) geração dos sinais de controle apropriados para ativação das atividades requeridas para a execução pro-
priamente dita da instrução identificada. Esses sinais de con trole são enviados aos divcí$OS componc11tes
do sistema, sejam internos do processador (como a UAL) ou externos (como a memória ou E/S). Esta
etapa é denorninada ciclo de execução da instrução (ou, e m inglês, exemtc cydc). A Fig. 6.2 mostra os
passos principais de um ciclo de instrução; no item 6A será mostrado o dctalhamcnto do cic1o, bem
como apresentados exemplos de seu efetivo funcionainento.
A área de controle é projetada para entender o q ue füzcr, con10 fazer e comandar q uem vai fazer no mo-
mento adequado. C onforme a analogia com os seres humanos, exemplificada ancer-io11nente neste capítulo, é
a parte cerebral. enquanto a área de processamento realiza a parte muscular e os nervos assemelhan1-se à fiação
Sn$W

Prormadores I 171

dos barramentos. por onde os sinais emitidos por um componente específico da área de controle s..io tmcami-
nhados para todos os de111ais co111ponences ativos do processador.
A Fig. 6.8 mostra o diagrama em bloco de ,1111 processador genérico, com os componentes básicos da área
de controle, enquanto a Fig. 6.9 apresenta o mes1110 diagrama e111 bloco do processador exemplificado na Fig.
6.5, com realce para os dispositivos que fuze111 parte da área de controle.
Os dispositivos básicos que fuzem parte da área funcional de controle são:
1) unidade de controle - UC:
2) relógio ou dock;
3) registrador de instrução - ru ou IR. - i11str11crio11 Yl'Jlister";
4) contador de instrução - C I o u PC - pro_grmu touwer ou ainda IP - i11s1ructfo11 pciuter;
5) decodificador de instrução;
6) registrador de dados da memória - RDM (MBR) e rcgistradorcs de endereço de memória - REM
(MAR).
A quantidade, a co111plexidade e a disposição dos componentes que realizam as funções de contro le variam
consideravel111ente de processador para process.,dor, porém, essencialmente, os dispositivos indicados (realça-
dos na Fig. 6.9) são os mesmos.
É i111portante ressaltar que a organização dos componentes e o funcionamento básico da área de controle
constituem a microarquitetura dos processadores, uma parte normalmente tratada de for111a separada na lire-
ratura, por marcar um nível específico da abstração de um siste111a de co111pumção.
Neste livro, optamos por descrever esses ele111entos e o funciona111emo básico do processador integrando o
nível da micl'oarquitetura (o controle) com o 11ívcl superior, das instruções de máquina e dos componentes
visíveis a esse nívd, como a UAL e os rcgistradores de dados.
Com a finalidade de explicar de modo mais simples o funcionamento de um processador, continuaremos
a adotar o esquema das Figs. 6.5 a 6.9.

6.2.2.1 A Unidade de Controle


É o dispositivo mais complexo do processador. Ele possui a lógica necessária para realizar a movimentação
de dados e de instruções de e para o processador, através dos sinais de comrole que emite em instames de
tempo dc.,terminados confor111e u111a programação prévia. A Fig. 6. 15 mostra um diagrama em bloco simpli-
ficado dos principais elementos da função controle de um proccs.~idor, ressaltando a Unidade de Controle,
UC. Como também se observa nas Figs. 6.8 e 6.9, a UC se conect., a todos os principais elementos do pro-
cessador (como, p .ex., a UAL, os rcgimadores de dados) e ao barramento externo de comrole. Os sinais de
controle emitidos pela UC ocorrem em vários instantes durante o período de realização de um ciclo de ins-
trução e, de modo geral, todos possue111 uma duração fixa e igual, origi nada cm um gerador de sinais deno-
minado relógio (do(k), ta111bém mostrado na Fig. 6.15.
Os microeventos (ou microoperaçõcs) comandados pelo funcionamento da UC podem ser iniciados se-
gundo um de dois p,incípios de organização de processadores (ver Apêndice D) :
por microprogramação; ou
por programação prévia diretamente 110 hardware.
Assim, por exemplo, o início de um ciclo de instrução consiste na busca (jetd1) da referida instrução (ver
Fig. 6.2), trazendo u111a cópia dela da MP para o processador (armazenando no RI- registrador de instn,ção,
como será explicado mais adiante). Para efetivar esta ação são rt·alizadas algumas ações menores que, em con-
junto, constituem a desejada transferência (na realidade, constituem os passos de um ciclo de leitura, confor-
me.! descrito no item 5.3.3.1). Tais operações menores denominam-se microopcrações, por se constituírem na
me!nor parte individualmente executável pelo processador. A Fig. 6.16 mostra um exemplo dt! microoperações
realizadas para completar o reforido ciclo de busca.
SD(eW

172 / Pror.e$sndarcs

Registrador de instrução

~ J. <11-.0-
: - - - - Código de operação

PI.lisos
DEiCODIFICADOR
Silia'I resul'Mntê
de da deoo<lificação

. .. l
~lógiO,
(apenas 1 salda
aiivadl:l <le ca.(Ja vez)
'' 'f ,, ,

1:,. .
t,
::
Gerador 1,
.
de
tempo
... .-
UINIDAJDE DE CONTROLE

1.
.

Sinais d9 con1rOle Sin.ais. tle oonlwle Sinaís d~ conlrore


1para o bl!rrame-n,o vindas do m11ra:men10 para di~itiYos
deslslema de:sisterna , 7 iJl!ernos d11 UCP
(re9istrador'ês, UAJL. elt:..)

BARRAMENTO DE CONTROLE

Figura IJ.15 Diag;ra11u1 em b]oco sim.plifkado da fünção controle.

C da microopr:ração ~ realizada por iniciativa. de um pulso originado na UC em decm:-rência de uma pré ia


programação (dil'etamente no hudware ou pela execução de: uma mic-roinstmção, se a arquitetura do pr,occs.-
sador é microprogramada)_

Ío, REM - (Cl)i


(1, CI - CI + N
RD'M - M(Ôp-)
t, RI - - - - RDM
Sendo: t,. t,. t · puls~ de- ~cl6gio cmitid~ em instantc-s scqiicnC!ialmente Cí8$C8nles
IREM - te9jsíradar da andere',0'5 da 1memócí.i,
IRDM • raeg™raoor·ílc oaoos cr.e m.emõria
CI • contactar de Instruções F"gura. 6.16 Seqüincia de m·croopernções
M(OpJ - oonteüdos. de célw!a(s:J de endereça igual a Op. Naliz:a-das em um ciclo de busca (fetch).

Uma outra característica de ft.mcjonamemo do sistemas de computação na :kea de comrole, nrni especi-
ficamente com refação.\ Unidade de Controle, refere-se ao n1odo pelo qual o sis[el11, conduz, execução d.a.s
j n tru ções red l1 nda ndo ,e m djve-rs.o tipo de arqujtemrn de processadores, mis con1t0:

1) proc' sadorec que ex.'cutam in truçõe de modo exdu ivamente eqUendal ou -erfal (S] D)·
Sn$W

Processadorrs I 173

2) processadores que executam instruções de modo concorrente, o u tipo pipeline Qinha de montagem);
3) processadores que executam várias instruções simultaneamente (proccssamenro paralelo);
4) processadores que realizam processamento vetorial.
Neste capítulo trararemos de explicar as funções básicas dos processadores através do método citado no
item 1; no Cap. 12 descreveremos process.1dorcs cujos modelos de controle baseiam-se nos itens 3 e 4. A
tecnologia pipeli11i1t~ é abordada neste capítulo e no Apêndice O.

6.2.2.2 O Relógio
Tendo em vista que os procctssadores (não só estes, mas também memórias e o utros compon<.mtes digitais)
são constituídos na sua menor parte por circuitos digitais, que mudam de estado (de um valor para outro)
milhões de vezes por segundo e que para executarem as tarefas determinadas de acordo com uma programa-
ção prévia precisam estar sincronizados, usa-se nos compumdores um dispositivo com essa finalidade de sin-
cronização, o relógio (ou cfock).
A base de qualquer relógio (que é um contador de tempo) é um dispositivo gerador de pulsos cuja duração
é chamada de ciclo. A Fig. 6. 17 mostra um conjunto de pulsos gerados por um relógio, com seus principais
elementos indicados.
Os pulsos, então, se alternam do valor de intensidade alta (correspondente a 1) para o valor de intensidade
baixa (correspondente a 0), esm alternância se fazendo ao longo do tempo. Dessa forma, o sistema serve para
sincronizar, ou seja. permitir que duas ou mais ações ocorram no mesmo instante de tempo (no mesmo
pomo de um pulso) e cadenciar as ações (ou atividades o u microoperações) realizadas em um deternúnado
dispositivo; por cadenciar, entenda-se controlar a velocidade com que elas ocorrem.
O relógio pode ser entendido como um dispositivo de controle; ele é como um maestro de uma orquestra,
que sincroniza e cadencia a ação dos músicos. Outro exemplo interessante é o do "patrão'' de uma embarca-
ção a remo. Para a embarcação deslizar certa (na mesma direção sempre) e com velocidade é necessário que
todos os remadores levantem, abaixem e empurrem a água (remar) no mesmo instante de tempo (isso é sin-
cronismo), e executando mais remadas por minuto aumenta-se a velocidade do barco (isto é cadência). O
patrão executa as duas funções ao gritar (marcar o tempo), que acionam o movimento igual de cada remador.
Quanto mais "marcas" de som ele der por minuto mais remadas aconrect"m e maior será a velocidade do
barco (aumenro da velocidade do relógio).
Na Fig. 6.17 obse,vamos os seguintes elementos:
ciclo do relógio ou simplesmente ciclo (clock cycle ou cycle) - é o intervalo de tempo entre o início da
subida (ou da descida) de um pulso até o início da subida (ou da descida) do outro pulso;
período (cyclc timc o u pcriod) - intervalo de tempo gasto para se obter um ciclo do sinal do relógio .
Medido em unidades de tempo, usualmente de nanossegundos, ns;
lado de subida (rising edge) - é a parte do pulso que realiza a transição do valor baixo para o valor alto;
tempo de subida (rising time)-é o período de tempo gasto pelo sinal para realizar roda a subida. Medido
em unidades de tempo, usualmente de nanossegundos;

(rising e<lge) (fatling edge)


lado de subida Lado de descida

1+.
~/
o.

Tempo Figura 6. 17 Pulsos de relógio.


Sn$ W

lado de descida (falling edge) - é a parte do pulso que realiza a transição do valo r alto para o valor baixo:
tempo de descida (falling time) - é o período de tempo gasto pelo sinal para realizar toda a descida.
Medido em unidades de tempo, usualmente de nanossegundos;
freqliência (frequency ou clock rate) - é a quantidade de ciclos por segundo de um relógio. Ela é o
inverso do período e vice-versa, sendo usualmente medida em Hertz (Hz), onde 1 Hz = 1 cido/ s. Como
as rnxas de pulsos ou velocidades dos relógios dos processadores são muito elevadas, usam-se unidades
mC,ltiplas do Hz, a saber:
1000 Hz = 1 kHz
1000 kHz = 1.000.000 = 1 MHz
1000 MHz= 1.000.000.000 = 1 GHz
Como o período é o inverso d::i freqüência e vice-versa, então:
Se F = 1 GHZ (velocidade ou taxa de relógio de diversos processadores), então: P = 1/ F = 1 /
1.000.000.000 = 1 X 10-• 1 ns (ver unidades de tempo no Cap. 2) .
Se P = 1,25 ns, então: F = 1 / P = 1 / 1 * 10-·• = 1 / O, 00000000125 = 800.000.000 Hz = 800 MHz.
A Fig. 6. 18(a) mostra um exemplo de um esquema relacionado ao relógio de um processador e os pulsos
po r ele gerados (Fig. 6 .18(b)). O ciclo de relógio est.í relacionado à realização de uma operação elementar,
durante o ciclo de uma instrução. No entanto, mesmo l'Sta operação dementar não se rca1iza e1n um só passo
e, por essa razão, costuma-se dividir o ciclo de máquina em ciclos menores (subciclos). defasados no tempo,
de modo que cada um aciona um passo diferente da operação elementar. Esses diferentes passos de uma ope-
ração elemenrar denominam-se microoperaçõcs, conforme já mencionamos anreriormeme. A Fig. 6. 18(b)
mostra o ciclo básico e os cinco subciclos gerados por um retardador (foi utilizado um exemplo dos ciclos do
processador Intel 8085).
Como mencionado antes, a base de operação de qualquer relógio (inclusive a maio,ia dos relógios de pulsos
atuais) é um cristal de quaitzo que gera pulsos, acionado por oscilador. Quando ''cutucado" eletricamente pelo
oscilador, o qua11zo produz seus pulsos. que variam em fn.:qü~ncia confo1111e a espessura do corte do cristal.
Na Fig. 6 .1 6 apresentamos um exemplo de microoperações realizada.< para completar a busca de uma ins-
trução da MP para o Registrador de Instrução, RI, na UCP. Cada microopcração é realizada cm um instante
de tempo T 111 confonne se observa na figura. Esses instantes de tempo são o riginados no relógio.
Se as operaçÕ<'S, para realizar um c iclo de instrução, duram o tempo definido por um o u mais pulsos do
relógio, e se estes pulsos tiverem curta duração, mais operações podem ser n:alizadas na mesma unidade de
tempo (o período-ba.,e utilizado é o segundo, ciclos por segundo, milhões de instruções por segundo. ou
MIPS ou milhões de operações de ponto flutuante por segundo, MFlops).
Uma das características de processadores mais conhecida dos usuários que trabalham com cornputadores ou
pretendem adquirir um é j ustamente a freqüência do relógio do processador. Ela realmente pode ser conside-
rada também um indicador de desempenho menos técnico para os leigos. No entanto, não é absolutamente
verdade que um processador com velocidade de relógio maior que o outro seja mais eficiente que aquele. Isto
porque, se é verdade que a maior velocidade de relógio implica pulsos de duração menores, a tecnologia e a
arquitetura de projeto do processador podem torná-lo mais eficiente que um outro, mesmo que funcionando
com velocidade de relógio menor, como, p.cx ., através de paralelismo de atividades (ou seja, em um pulso de
relógio pode-se disparar mais de uma ação, como em processadon.."S supcrcscalarcs).
O processador Pentium possuía uma arquitetura supc1i o r ao do processador 80486. com mais estágios de
pipelining, memória cachc maior, entre outras características melhores que as do 486. Neste caso, um Pentium
funcionando a 66 MHz ce1ia desempenho superior a um 486 que pudesse funcionar a uma velocidade de 80
ou 100 MHz.
O process.1dor Intel 8080 foi lançado com velocidade de 2 MHz, enquanto atualmente temos processadores
funcionando em velocidades de 1,6 GHz a 3 G Hz e maiores, como o Pentium 4, o AMD Athlon 64 e PowerPC
G5. A Tabela 6.1 apresenta uma relação mais completa de processadores e suas freqiiências de relógio.
SD(eW

Proce.ssmiores I J!. 7 5

~1-1~~-º_S_~~I ~ ~l_º_l_:~-- -~
(a) Diagrama em bloco do oonJ\Jnto de tempo ela área de cof'ltrole

~--- 1 subciclo = 'o I 5


1!<E-----
-----;I: -

n____n~ ~n~-~n~--
LJ7 . n n n___
_~n n1 n n__
,_,n n n n._____
:a------~n n n n___
_ ____.n n n n__
~- - 1 ciclo = to - -~

~
l'empo
(b} Diagrama de tempo do ciclo do prooessador ( 10 ) e seus 5 subciclos
Figura 6,.:ll8 Diagrama em bloco da UC., mostrando o re]ógio e llm conjunto ,d e cicfos ,d e te1npo-.

6.2.2.3 Registrador de Instrução ,(RI) - Instruction Register (lR)


É o regi trador (mostrado na Fig 6 ,8 e realçado na Fig, 6 ..9) que tem a função e pedfica de a mazenar a
instruçiiio a er execmada pdo proce sador_ Ao . e iniciar mn ciclo de ümmção (ver item 6.4) a UC emjte
sinais de controle em. cqii.ência n tempo, de modo que e pr,o ccssc, realização de um ciclo de leitma. para
bu. cara it1. rmção na memória (uma cópia d la)_ Confoirmc definido na progra.inaçfo do ciclo de bu ca de um.
ddo de instrução (ver Fig. 6.2). ao término de t cido de leitura a instrução d ejada será a 111az nada no RI.
via bar -am nto externo de dado , barr; 11ento interno e ROM (no ite :n f .4 são apTTc entados 11:-iaí detafües da
execução compl ta de um ciclo de im.trnçfo).
a realicbde e me mo nos proc ssadores usados como exemplo (8080/8085/6 00) nesse texto os eventos
e pas,;;;av.1111 ligeiramente diferente e o lJ de fato armazenava uma parte da instrução. denominada códjgo da
operação, como .erá d,escrico a~ guir. Arualmcmc, o proo.:-~o é ainda maí c0111plt=xo, t:m face da ncce sidade
de maior desempenho, com maiores velocidades proces o pipeline-, u ando- e b1!lJ'crs para armazenar in m1-
çÕe5 em fila ante me mo de ua execução (unidade de busca e decod'ficaçào no Pentimn 4 ou [n truction
ontrol Unit no AMD Athlon, por exemplo).
este capítulo e~camm de cn: cndo o funcio11amcnt<..1 de um process.;dor imple. e M:rial e, pôT e - a razão, con-
tinuaremos a e-mpn:ga.r o I · I como rcgistrador qu · armazena uma iimrnção compl ta -'111 e, da ciclo di.! imtmção.
Sn$W

176 / Processadores

6.2.2.4 Contador de Instrução (CI) - Program Counter (PC)


É o registrador cuja função específica é annazcnar o endereço da próxima instrução a ser executada. Tão
logo a instrução que vai ser executada seja buscada (lida) da memória para o processador (início do ciclo de
instrução), o sistema automaticamente efetiva a modificação do conteúdo do C I de modo q ue ele passe a
armazenar o endereço da próxima instrução na scqi.iência (ver item 6.4). Por isso, é comum definir a função
do C I corno sendo a de "a11nazenar o endereço da próxima instrução"; na realidade, durante a maior parte da
realização de um ciclo de instrução o CI contém o endereço já da próxima instrução.
O CI é um registrador crucial para o processo de controle e de seqüenciamcnto da execução dos progra-
mas. Esta característica será detalhadamente analisada no item 6.4, quando será apresentada, passo a passo, a
execução de um Clclo de instrução.
Como esse registrador annazena o endereço da instn1ção que será buscada cm ~qüência na memória para a
execução do ciclo de instrução subseqüente (ver item 6.4, que detalha passo a passo a realização de ciclos de instru-
ção), ele é fündamemal para o processo de controle e da seqiicncialidade da execução das instruções. Em outras
palavras, o hardware (componentes do processador, incluindo o CI) não tem controle sobre qual i.nstn1ção deverá
ser executada em seguida; ele simplesmente busca a instn1çào cujo endereço <'Stá no CI . Desse modo, a alteração de
seu conteúdo define a próxima instrução, cttjo ciclo será executado (pois contém o endereço dela), seja ela a instn1-
çào cm seqüência no ml"Smo programa, seja uma outra instmçào fora de seqiiência no mesmo programa (p.ex. 1
deconentc de um desvio, devido a um comando IF-THEN-ELSE) ou mesmo podendo ser uma instn1ção de um
outn,) prohrrama, que está iniciando ou retomando a execução (sistemas nmkiprogramados, contendo vários pro-
cessos ou thrcads armazenados na men1ória e Hsimultaneamente" em execução). Embora o conceito de
multiprogramaçào não fuça parte do escopo deste livro, é importante conhecer as possibilidades de alteração do
conteúdo do Cl 1 entre as quais está a de mudar de conteúdo para reiniciar ou iniciar um outro programa.
Possibilidades de alteração do conteúdo do C I:
1) Sisrenuricamente, através de seu incremento automático em um ciclo de instrução (característica da
seqüencialidade com que pedaços de um programa s.io executados, conforme já explicado no Cap. 5,
princípio da localidade .:spacial). É realizado sempre pelo hardware;
2) Sempre que o sistema precisa reinicializar (ou iniciar-se), o hardware é prograniado para inserir no CI
o endereço da p1imcira instrução do programa de inicialização, o qual d ispara o processo de inicialização;
3) Eventualmente, através de instruções de desvio Qump ou Branch, como será mostrado a seguir e no
Cap. 8), quando se usa um comando de desvio {IF-THEN-ELSE ou DOWHILE, p.ex.) ern um pro-
grama ou quando o sistema operacional decide mudar de prograrna em execução.

6.2.2.5 Decodificador de Instrução


É um dispositivo utilizado para identificar qual operação será realizada, correlacionada à instrução cujo código
de operação foi decodificado. Em outras palavras, cada instrnção é uma ordem para que o processador realize
uma dctenninada operação (ver item 6.3). Como são muitas instruções, é necessário que cada uma possua
uma identificação própria e única. A múdade de controle está, por sua vez, preparada para sinalizar adequada-
mente aos diversos dispositivos do processador, conforme ela tenha identificado a instrução a ser executada.
O decodificador recebe em sua entrada um conjunto de bits previamente escolhido e específico para identificar
uma instrução de máquina (cada instrução tem um valor próprio, denon-1inado código de operação, confonne
será mostrado no item 6.3) e possui 2N saídas, sendo N a quantidade de algarismos binários do valor de entra-
da. O fi.mcionamcnto de um dccodificador é detalhado no Apêndice B e há exemplo de uso de decodificadores
no Apêndice D.
A Fig. 6. 19 mostra um exemplo de configuração de decodificador com entrada de 4 bits e 16 saídas. Cada
linha de saída aciona de modo diferente a UC e esta, por sua vez, emite sinais de controle por diferentes
caminhos, confonnc a linha de saída dccodificada.
Por exemplo, quando aparece na entrada o valor 0010 {E,,= O, E,= O, E2 = 1, E.,= 0), e ntão, na saída
somente a linha S, ( = 1) estará ativa.
SDêW

Pro.cesslldorl!S I 177

- Ragi~trador de
fnSln._rçio
Eo a 3

Oécodifa-dor uc
i----

'------i!-
Sill<JiS
de
controle

E· 1mtrada S * salda as 15
(ai Diagrama em lllooo da dêood~ em uma UCP

Eo El E2 Es So S1 62 83 S4 S5 S5 Sr %¾ S 10 S11 S12 81a $14 S1s


o 1) o o o o o o o o o o (1 ô o o o o o
o o t) 1 'º 1 o o o o o o o o o o o o o o
o o 1 o o o 1 o o o o o o o o o o o o o
o o 1 1 o o o 1 o o o o o o o (1 (l (1 1) o
o 1 o o o o o ó 1 o o o o o o o o o o o
1) 1 o 1 o o o o o 1 o o o o o o o o o o
o 1 1 o o o o o o à 1 o o o o o o o o o
o 1 1 1 o o o o o o o 1 o (l o o o o o o
1 o o o o o o o o o o o 1 o o o o o o 1)
1 o o 1 o o o o o o o o o 1 o o (1 o o o
1 o 1 o o o o o o o o o o o 1 o o o o o
o 1 1 o o o o o o o (l o (1 o 1 o o o o
1 o (l o t) o o o o o o o o o o 1 o o 1)
1 o 1 o o o o o o o o o o o o o 1 o o
1 1 o o t) IJ IJ o o o o o o o o o o 1 o
1 1 1 o o o o o o (1 (l o 1) o o o o o
(b) ímRs ,de saroo

Figura ,6,,19 Exemplo de um de codifü:ador com 4 entradas e 16 saídas.

6.2.2.6 Registrador de ados ,d e Memória - RDM e Registrador de Endereços


de Memória - REM
Sào os registradores utilizado pelo proce ador e memória para cotm:micaçào e transferência de infonmiçõc.
confon-ne ja explic, do no ap. 4. E(,.~. eriio nov.imt'nte mencionado durant · a d(.-scríçfü> dt' um cido de imtru-
ção, o iwm 6.4. Em gemi, o M (ou MBR - ~-!cmory B,!(fer RrJisrc~ po sui um tamanho (c.apacidadc de
annazena.mento de bits) igual ao do barramento de dados; este atualmente tem sido construido com largura, em
bits, múltipla do ta1nanJ10 da palavra do processador. Assim é que o Pentimn 4, por exemplo, que possui palavm
de 32 bits, tem sido ins-etido em sistemas com bai1-runento de dadm mm largura de 64 bits e de 128 bit .
OREM (ou MAfl - i\llcm,ory Addn·ss R cgistc-r) possui um tamanho igual ao do endereço da memó.rja (e
conseq(lentemente do barrmnento de endereços do si. tema). Pela definição do t-.Jmanlm em bit do R EM
podemo cakular qual o e paço máximo de endcr,cç 1111:mo da mc;mória principal de um computador,
0

Por exemplo e no proj,eto de nm detenninado proce.sador o endereço de aces~o ; memória é definido


com LJma largura de 20 bits, te do o. ban:-amemo de endereço, bem coino o REM é C], devt'n po suir uma
largura 111ínim.a de 20 bits, indicando que o e paço máximo de endereçam nto no. ist mas ba eados naquele
proce sador deverâ er de:
2111 = 1M endereços.
Se, por omro lado, os endcn.:ços o çffi definido com 32 bil:S (e.aso dos processadores lntel a partir do 386
até o Pentium atuai ,e dos A.J\i1iD até o Ad1lon K7), então o espaço máximo de endereçamemo cria'
2J2 = 4G endereço

6.3 INSTRUÇÕES DE MÁQUINA


6.3 61 O que É uma Ins.truç:ão de Máquina?
De de o primeiro~ capítulo!> dc-s.te livro as im,truçõ s d.i: máquina vêm sendo empr · m nciona.d,l, sem
que r:enharno., :;ité ç _cç momento, no. detido a ent nder efetivamente o que é uma in.stmçào de máquina.
Sn$W

178 / Pr0<essndores

A arquitetu ra básica dos processadores do tipo von N eumann (ver item 2.1), cujos p1incípios fundamentais
ainda são válidos (a scqücncialidade da execução das instruções deixou de existir con1 o advento das técnicas
pipeli11i11g, o u de processamento paralelo. o u vct0rial etc.), é baseada essencialmente na existência de uma or-
dem o u instrução para que o processador (o hardware) reali ze uma dctenninada operação (assim como nós
insrruín1os um funcionário a realfaar un1a dt!term inada atividade - a instrução. aqui, não no sentido de ensi-
nar, mas de comandar a n:alfaação de um aro).
Uma máquina pode executar tarefas complicadas e sucessivas se for " instruída" (no sentido de ordenar,
determinar) sobre o que fazer e em q ue seqüência isso deve ser feito . Os seres humanos (pelo menos a maio-
ria), se receberem uma instn1ção do tipo: "trazer a pasta da funcionária Maria", são capazes de localizar o
arquivo onde as pastas de todos os funcio nários estão arqui vadas - cm geral por o rdem a]fabética - e achar a
pasta, trazendo-a a quem pediu . Nosso cérebro realizou uma série de ações intermediárias para q ue a tarefa
fosse conduida com êxito.
No e ntanto, se a mesma "instrução'' fosse dada a uma máquina (e ela não tivesse qualquer outra orientação
prévia armazenada), ela não conseguiria "trazer a pasta desejada".
Para a máquina, é necessário que a " instrução'' seja detalhada cm pequenas etapas. visco que ela é constru-
ída para ser capaz de entender só dessa forma, o u seja, em pequenas operações.
No exemplo em q rn:stào, a máquina devciia receber um conjunto de instruções con10 o da Fig. 6.20, es-
pecíficas para ela, sendo, portanto, chamadas de instruções de máquina (da máquina).
O programa mostrado na Fig. 6.20 - não completo nem estruturado - tem apenas o propósito de indicar,
por comparação simbólica, a diferença e ntre a generalidade de uma instrução para o funcio ná1;0 e o detalhe
de uma instrução para a n1áquina. Co1n os sistemas de computação isto não é diferente.
Uma instrução de máquina é a fo nnali zação de uma operação básica, simples (ou p1imitiva) que o hardwa,·e
é capaz de realizar diretamente. Podemos, p.ex ., projetar um processador que possua uma UA L capaz de so-
mar o u de 1nultiplicar dois números, mas ainda não se conseguiu fabricar uma UAL capaz de executar dire-
taml'nte, em uma única ação:

Nesse caso, a UAL tem que ser instruída para executar, cn1 prim.ciro lugar:
T = B * C, o nde T é um local temporário de armazenamento.
Em seguida, ela realizará a operação:
X= A+T
Primeiramente, a UAL efetuará a multiplicação. cuj o resultado é temporariamente armazenado em algum
tipo de memória (dependendo do programa e do siste ma), que poderia ser um rcgistrador ou u ma célula de
rnemória 1 para, em seguida, este resuJt.ado parcial ser recuperado e somado ao valor A. Como foi necessário
criar duas instruções diferentes, passou a ser um programa, executado de forma seqüencial: primeiro, realizan-
do T = B * C e, em seguida, X = A + T.

1 • achar arquivo. Se não houver arquivo, vá p/3; S{Jn§o. prosseguir


• comparar n'I arqufvo com nt arquivo que contém as pastas doa funeionéôos
• se números Guals, enlllo prosseguir; SM tlo, vott:ar para 1
2 • achar uma puta. Se no.o houver mais putas, vil p/3; 86nlo. prosseguir
• oomparar nome de pasta com nome dado
7
• se forem iguais, entilo prosseguir; $911So, voltar p.ilra 2
• retirar a pasta
• abrir a pasta para quem pedtr
3 • parar

Figura 6.20 Exe1nplo de instruções primitivas ou instruções para uma máquina localiz.ar e buscar uma
pasta de documentos de um arqujvo.
Sn$ W

Prowsndores / 179

Na realidade, pode-se observar que o cérebro humano rambém não realiza, de imediaro, três operações si-
multaneamente. Embora possamos indicar no papel urna operação, digamos, com quatro parecia.~. como indicado:
19
27
35
+ :±a
129
Quando efetivamente execut.1mos a operação mentalmente, fàzemos primeiro a soma dos a]garismos me-
nos significarivos (ordem das unidades) das duas primeiras parcelas de cima para baixo (é claro que se poderia
iniciar de baixo para cima etc.):
9 +7 = 16
Em seguida, esre valor (16) com o primeiro algarismo da 3.' parcela:
16+5=21
E, finalmcmc, a soma parcial (21) com o primeiro algarismo da 4.' parcela:
21+8 = 29
Nesse ponto, colocamos 9 no resultado e dizemos "vai 2" (representativo de 20 ou 2 * a base 10)
E retornamos no mesmo processo para o 2.º algarismo, até obtermos 129 de resultado.
Ou seja, apesar de constarem quatro parecias no papel, não somamos os quatro primeiros algarismos de
uma única vez e, assim . os processadores também operam de dois em dois números, só que de modo mais
fo rmal (a UAL somente aceita duas seqiiências de bits, uma para cada número a ser manipulado) . O Apêndice
O mostra o funcionamento completo de uma UAL.
O projeto de um processador é centrado no conjunto de instruções de máquina que se deseja que ele execute
(na realidade. do conjunto de operações primitivas que ele poderá executar). Uma das mais fu ndamentais análi-
ses e decisões do projeto envolve o tamanho e a complexidade do co,tjunro de instruções. Quanto menor e mais
simples o cortjunto de instrnções, mais r.\pido é o ciclo de tempo do processador (porém mais d i6cil é a rransfor-
mação de um progra111a desenvolvido cm uma li11gu:1gcm do tipo Pasca) ou Delphi para a li11guagem da 1náquina
que tenha esse cortj umo simples (isso será mais bem explicado no Cap. 11. sobre arquiteturas RISC) .
Pode-se utilizar, pelo menos, duas tecnologias de projeto de processadores empregadas pelos fubricames de
mini, microcomputadores e de estações de trabalho:
• Sistemas com co,tjunto de instruções complexo (complex iusrmcri<>11 ser co111p11rers - C ISC); e
Sistemas com conjunto de instruções reduzido (red11ced i11str11cri,m set ,,,,111mrers - RISC).
Embora na maioria dos capítulos deste livro sejam mencionados conceitos e caractc1ística..~ de arqui teturas
C ISC e o Cap. 11 seja dedicado a arquiteturas R.ISC, eventualmente tem-se mostrado algm1s exemplos de
processadores R ISC. O próprio conjunto de instruções, definido especificamente neste capítulo para explicar
o funcionamento de um ciclo de instrução. te1n características de.: máquinas R.TSC, por serem instruções sim-
ples e de mesmo tamanho (Fig. 6.23).
Do ponto de vista 6sico (do ponto de vista do hardware), uma insm,ção de máquina é um grupo de bits
que indica ao processador uma operação ou ação que de deve realizar. Um processador é fabricado com a
capacidade de realizar uma certa quantidade de operações bem simples (primitivas), cada uma delas associada
a uma instrução de máquina.
Funcionalmcntc 1 um processador possui instruções capazes de realizar operações do tipo:
• oper:1ções matemáticas (aritméticas, lógicas, de complemento, de deslocamento)~
movimentação de dados (memó,ia - processador e vice- versa);
entrada e saída (leitura e escrita em dispositivo de E/S); e
controle {desvio da seqüência de execução, parar etc.).
snow

1. 80 / P"°'essndores

Processador

UAL IReg O
(Un dade de cáloulo) Reg 1
Reg 2
Reg 3 Registrac!or
de
dados

IJC - Unidatle era OO(llrole RegN-1

, Memória
·._, de_
q , __ _ oonlrole
_ _ ___. 1
11
,......_D_ec_Q_di-lica-._d_o_r---, 1
Clein~~
(Decooer)
CI • Contador
d'e il'\St11.1Ções
RI - Regislrador (PC - Program ooun!er)
de i111slruções
(lnslr1.Jc!ion regis,ler) REM - Regislrador de
endereços de memória
RDM - RegistíOOOI" ele fMAR - Memory address register)
1
,da-dos da memória
(MBR - Me-m.ory burfer regist81)

Para BD do Para BEdO


barramento !barramento
do sistema li ParaBCdo do sistema
4l)arramento
<fo sislema

F"gura 6.21 Componentes básicos de utn p1mcessador.

Quando se menciona 'conjunto de ins.truçôc;s" (ou• 111structio11 st:t'') t"Sta.mc nos referindo a todas as possí-
vc,;i in~truçôc que podi.:rn ser -interpretada. e :-.1::cutadas prnr \ll11 pro ·(.;. sador. O proct::. ado.. lmd 808-0 po: uí
um conjunto de 78 imtru,ões de máquina, enquanto o lntd 8088 pos~ufa 117 in. truçôe o 80486 rinha um
conjmuo com 28-6 imtruÇÔt..'.s de máquina 1; alf."\.111S moddos. do lnt ·I Pcnrium 4 rêm um conjunro de 247 immtções.
O nível de arqui[emra de preces adores que trata das instruções de máquina é o mai baixo nível d,e enten-
dímcnto do. programadores, que podem ace_ ár as instruções de 1rntquina (u ualmente pelo seu mnetnnônico
de linguagem as.scmhiy) e milizar indu i e, os Tegi tradores de dado . o entanto, confol'me já menciona-
mos a1ueriorn-1ic11te e será nui.s detaJhadu no Apêndice D, as. in truções de máquina ão interpretada: pelo
nível inferior denominado rnicroarquircmrn, n.ão ' isi el ao programador que compreende principalmente
os demenros da área de cont:role, mostrado!> de forma n:·sumida na Fig. 6.21.
'ota: A partir de te ponto, vamo. implificar a nom~nclatura · o enrcndim1;ntà do a..sunto inst:ruÇÕC'S. O
tenuo illstmriio será usad,o quando estivermo nos referindo à instrução de máqu'na, como in tru ção binária
ou A sembly (ver Cap. 8), e o termo «>mm1do quando nos. referirmos ;i 1.1m;1 instrução de linguagem de ma.is
alto nivd como Pa e-ai, C Delphi,Ja.va, Lisp C++ etc.

6.3 .2 For:rna.to das Instruções


Ne te item tramremo apenas. das de:finiçõe nece s!irias pa1.i entendennos um ciclo de instrução e a execução
de programa em linguagem de máquina, por execução uc.ess.iva de ciclos de ínstruçôe:s .. Detalhe; conceituais,
de formatação e de operacionafü:açào de imtruçàe de máquina, s.ào e pccificamente a11:.1lisados 110 Cap. 8.
Sn$W

Processadores / 181

De modo geral, podemos separar o grupo de bits que constitui uma instrução cm duas paites: uma delas
indica o que é a instrução e como será executada, e a outra pane se refere ao(s) dado(s) que será(ão) manipulado(s)
na operação. A primeira parte é constituída de um só campo, enquanto a segunda parte poderá ter um ou majs
campos, conforme a instrução se refira explicitamente a u1n ou mais dados. Assim, temos os seguintes campos
em cada instrução:
• um campo (um subgrupo de bits) chama-se tódigo de operação;
• o restante grupo de bits (se houver) denomina-se tampo do{s) opcrm,d,,(s) ,,,,, simplesmente, operando(s).

Código de Operando(s)
operação

Cád[~o de operação - C.Op. - é o campo da instrução cujo valor binário é a identificação (ou código) da
operação a ser realizada . Assim, cada instrução possui um único código, o qual servirá de entrada no decodificador
da área de controle (ver item 6.2.2.5). A Fig. 6.22 apresenta exemplos de tipos de operações primitivas nor-
malmente encontradas na implementação dos processadores.
Um processador que possua insm,ções cujo campo C.Op. tenha uma largura de 8 bits poderá ser fabricado
contendo a implernentação de um conj unto de até 256 instruções difere ntes, visto que:
C .Op. = 8 bits. Então: 2• = 256 códigos de operação.
Como cada C.Op. representa uma única instrução, então 256 C .Op. indica 256 instruções de máquina.
Campo operando- Op. - é(sào) o(s) campo(s) da instrução cujo valor binário indica(m) a localização do dado
(ou dados) que será(ão) manipulado(s) durante a realização da operação.

• Transferir uma palavra de d&dos de uma célula para outra.


" Efetuar a soma entre dois operandos, guardando o resultado em um
deles ou em um terceiro QPerando.
" Desviar Incondicionalmente para outro endereço fora da seqüência.
• Testar uma condição. Se teste verdadeiro, então desviar para outro
endereço fora da s.eqüencia.
" Realizar uma op&ra-Ção lógica ANO entre dois valores.
• Parara exocução de um programa.
"Adicionar 1 ao valor de um operando.
• Transferir um byte de dados de uma porta de E.IS para a MP.
"Transferir um byte de dados da MP para uma porta de EIS.
• Substituir o operando por s&u valor absoluto.

Figura 6.22 Exemplo de operações primitivas típicas.

Como já n1encionado antes, a instrução pode ser constituída de um ou mais campos "operando", isto é, se
a operação for realizada com mais de um dado a instrução poderá comer o endereço de localização de cada
um dos dados referidos nela. como mostrado a seguir (ver Cap. S)

1 C.Op. 1 Operando 1 1Operando 2 I Operando 31

Utilizando-se uma forma mais específica para repn:scntar a operação que a instrução indica, teríamos:
(operando 3) <- (operando 1) + (operando 2)
Esta instrução podc1;a. ser do tipo: ··somar o valor armazenado na memória no e ndereço indicado no cam-
po operando 1 co1n o valor armazenado na memória no (!ndereço indicado no campo operando 2 e arma-
zenar o resuJcado na posição de memória. cltio endereço está indicado no campo operando 3".
Sn$ W

182 / l'rrxtssnd<>rts

Esta lo nga frase poderia ser substituída por urna expressão mais silllples, com sintaxe rígida. do tipo:
SOMAR Operandol, Operando 2. Operando 3 (em português)
ou
ADO O p1 , Op2, O p3
ADD - é o código da o peração (C.Op.) que significa somar e cuja sigla é comumente usada nos conjuntos de
instruções de processadores reais:
Op 1. Op2, Op3 - é a abreviatura do calllpo Operando 1. Operando 2, Operando 3.
Pode-se economizar o emprego dos operandos. c-sco1hcndo--sc um deles para servir a um duplo propósito:
inicialmente annazcnar o valor de um dos dados e, cm seguida, armazenar, no mesrno local, o rt"'-$ultado da
o peração. Dessa forma, basta indicar apenas dois campos operando na instrução, como exemplificado a seguir:

1 C.Op. 1 Operando 1 1 Operando 2 I

De forma semelhante à mostrada no exemplo anterior, podc..se ter a descrição completa da instrução com
o novo fo rmato, como a seguir:
i.somar o valor armazenado na memória no endereço indicado no campo operando 1 com o valo r annazc-
nado na memória no endereço indicado no campo operando 2 e armazt:nar o n:sultado na posição de me-
mória cujo endereço está indicado no campo operando 1"; o resultado também poderia ser armazenado c111
.. operando 2" em vez de em .. operando 1" .
A frase poderia ser subscituída por:
SOMAR Operando 1, Operando 2 (cm po1tuguês)
ou
ADD Op l , Op2
que significa:
(Operando 1) <- (Operando 1) + (Operando 2)
o u poderia sig1lificar (dependendo do desejo do fabricante):
(Operando 2) <- (Operando 1) + (Operando 2)
Também poderíamos utilizar o registrador chamado acumulador (ACC). mostrado nas Figs. 6.5. 6.7 e 6.9, uti-
lizado em arquiteturas de processadores oo fanúlia 8080 para annazenar iniciahnente um dos valores e. depois da
realização da soma. armazenar o resultado. Como elll processadores dotados de ACC ek rende a ser um só. não há
nccc-ssidade de explicitar seu endereço; basta programar a UC para uciliz.-í-lo quando decodi6car o C.Op. específico.
A instrução teria o seguinte fonr1ato:

1 C . Op. 1 Operando 1

.E sua representação:
ACC <- ACC + (Operando)
N os exemplos em que descreveremos o funcionalllento de um processador na execução de ciclos de ins-
trução. utiJjz.aren10s este modelo de instn1çã.o de um operando (apresentado na Fig. 6.23). porém será tmpn..·-
gado um registrador denominado !~,. de modo a iniciar a aproximação com os modelos existentes, onde não
mais existe ACC.
Pode-se observar. então, que cm um mesmo conjunto de instruções de um processador podem existir for-
matos diforcntcs de instruçõc-.s, indusivê para a realização de uma mesma operação. Os formatos apresentados
Sn$W

l'ro<e.'isadort!s / 183

são parte da quantidade de formatos e modos de endcrcça111c11to que podem existir em processadores reais e
que serão descritos e exemplificados no Cap. 8.
Um outro fator a ser considerado no projeto do conjunto de instruções de um processador refere-se ao
significado do valor binário indicado no(s) carnpo{s) opcrando(s) das instruções. Ou seja, o 111odo de localizar
o dado pode variar de instrução para instrução. Chama-se a isto de modo de endereçamento; atual111encc
há vários destes modos sendo empregados nos processadores. Para evit.1r o risco de tornar a explicação inicial
do assunto mais complicada do que o desejado, debrnremos. como no caso ante,ior, mais detalhes para o Cap.
8. Neste capítulo apresentaremos apenas insrn,ções com formato e características bem simples: apenas dois
modos de endereçamento e somente um operando.

6.4 FUNCIONAMENTO DO PROCESSADOR.


O CICLO DA INSTRUÇÃO
A base do projeto de u111 proc<essador é a <escolha do conj unto de instruções q ue ele irá executar {trata-se de
defin ir que operações o hardware será capaz de realizar diretamente atravt's de seus circuitos), para cm seguida
dc:finir e especificar os dt:mais componentes da arquitetura e da organização. os quais contribuirão para o pro-
cesso de interpretar e executar cada instrução.
Neste icem mostra-se, em detalhe, o funcionamento básico de um processador ao descrever-se, passo a
passo, as Napas requeridas para o processador completar a execução de uma instrução de máquina. O Cap. 8
trato de modo mais amplo os aspcctos e carJcterísticas do conjunto de instruções dos processadores reais.
Para descrever com clareza as referidas etapas e pcmlitir o entendimento do sentido individual e global do pro-
cesso de funcionamento da UCP, vamos utilizar um subsistema UCP/M P hipotético, mais simpks que os modelos
comerciai.~ e de acordo com o que ji csmmos dc-scrcvcndo nos itens anteriores. A Fig. 6.23 relaciona as caracterís-
ticas básicas do subsistema UCP/Ml' hipotético, o qual será utilizado no dcco,,.cr das explicações desce item. As
instruçõesJZ Op .. JP Op.,JN Op.,JMP Op., mostradas nessa figura, denonúnam-se instruções de desvio.
Desvio é uma alteração forçada da seqüência de execução de um programa. Como já mencionamos ante-
riormente, os programas são elaborados e annazenados de forma sc.:qüencial. uma instrução em seguida à ou-

C8racteristica de um processador. a ser utilizado nos exemplos do llvro


1 • Palavra: 12 bits
2 • Endereços: 8 bits (256 oélulas de memôria)
3 • Células de 8 bits
4 • Instruções de 1 operando apenas. com C. Op. = 4 bits e campo operando = 8 bi1s
5 • Campo operando sempre indica o endereço de memória do dado, exceto em instruções de desvio
6 • O processador possui vários registradores de dados, todos com largura de 12 bits, porém somente
o registrador Ro estâ habilitado: além disso, possui, um RI. tamWm com 12 bits de tamanho, o CI
e o REM com 8 bits cada um e o ROM oom 12 bits também.
7. Fom1ato das instruções

e Op. Operando
4 bits 8 bits
8 • lns.lruçóes disponiveis:
e. Op. Sigla Desoriçào
O HLT Para a execução do programaºº Halt. em inglês
1 LDA Op Ro - (Op.)" .. Load em inglês
2 STR Op (Op.) - Ro''' Store
3 ADD Op Ro - Ro + (Op.)
4 Sub Op Ro - Ro • (Op.)
5 JZ Op Se Ro =O.então: CI - Op.
6 JP Op Se Ro > O, então: CI ,,._ Op.
7 JN Op Se Ro < O, então: CI .,._ Op.
8 JMPOp CI -op.
9 GET Op ler dado da porta de entrada e armazená-lo em (Op.)
A PRT Op Colocar na porta referente à impressora o valor armazenado em (Op.)

Figura 6.23 Descrição das características principais de um pequeno processador.


SDêW

tra, que é a base do princípio da localidade e pacial. o entanto nem. em.pre a efet:i a execução do programa
1

se faz. de forma eqüencial, como, p.e ., quando e e ecuta uma ima:ruçào de d~. vio do ripo: JF - THE
ELS . e -e c, o, ao te tara condição expre a na dáu ula IF e a condi(o é erdadeira o proce. adore e-
cutará em guida, o cm uunto d1e in truçõ · con ta:nt s da dáu ula HE , alrando (de vianda) as instruçõe
que fazem parte da dáusula ELSE. Por outro fado se a condição do [F for fal a, o processadot· alnn.i (dcwíará)
as instruções que fazem parte da cláu ula [ e ex;ecutaú a eqüênc·a con tante da part ELSE. Como a in tru-
çõe ão localizada na memória por seu ender -ços, os tJj ' de v:io ' e eíetivam pefa ah:eT.ação de cnder,e ço
de bu. ca da jn truçào; o qua.1 de e estl:r amiazenado no CI - Contador de ln trução, na fa e d bu ca da
in tração.
Dessa forma. e o conteúdo do CI for alterado, a instruç.ào a er bu cada el novo c'do pod1:rá e tar fora d
eqiiência definida pelo hardware no item do cido d,e in ttuçào: · 1 = CI + n (increm nto do CI), Ia ig.
6 . 24,
A Fig. 6.24 descreve, com mais deta]h<.! o fluxo de ações qu con tituet 1 um ciclo de instrução arnpfümdo
o fluxo mo trado na Fig. 6.2.
O cido de insm1çâo apres.ent-ado pelo fluxo da Fig. 6.24 pode er descrito em LTR Qinguagem de tr:ms-
ferência emre regi tradores - er it.etn 5.3.3) d modo qne po samo. acompanhar ua reaJjza.ç ão com a mo-
vimentação de infonnações no componentes da UCP/ MI? deserit,o na Fig. 6.23:
Iniciar
RJ ~ (CI) Bu. car in rruç:ão., cujo cndt:reço c-srá no C]
(CI) ~ ~C]) +1 ,nteúd d~ I ê increm ntado par.lo endcn:çn da próxima in_tru âo

lnioio

Bt1scar a
pr,óxima
Ciclo
d'.e
busca { inslr1.19ão

1ncremen1ar o ci

Cálc,ulo
do endereço,
da ?r6::dma
irislrLJÇao,

auscare Cálculo
,a_rrmiil!Z:enãr doel'ldereço
Ciclo opera,riCIO <!'o operand~
de
exeet1ção

Elle-cuia.r
11i •O 'J)6J8çl0

Escrever
resultado

Figura 6.24 Fluxograma de u.m dclo de i:ustmçãio.


SU$W

Processadores I 185

Interpretar o C.Op. O decodificador recebe os bits do C .Op. e gera uma saída


para a U C
Buscar Op. (se houver)
Executar a instrução
Escrever resultado
Retornar
Não vamos, neste momento, considerar alguns aspectos, como a possibilidade de ocorrer a dececção de um
sinal de inrerrupção (fenômeno que será discutido no Cap. 10) ou a execução de vários c iclos de instrução de
modo paralelo (método de pipelining, que será abordado brevemente mais adiante e em mais deta.lhes no
Apêndice D).
Para que a explicação seja mais inte ressante, vamos considerar a execução de duas das instruções definidas
no modelo UCP/ MP da Fig. 6.23:
LDA Op . e ADO Op.
e, utilizando a organização de MP e o processador (UCP) dessa mesma figura, vamos considerar alguns valo-
res iniciais (a Fig. 6.25 mostra os det.1lhes) existentes ao irúciar a execução do primeiro ciclo de instrução da
ÍIISlnl(iÍó LDA.

Execução do ciclo da instrução LDA Op.:


a) A instrução LDA está armazenada na MP no endereço decimal 2. que é igual a 02 16 e a 000000102 • Sua
descrição em binário é: 0001101 10 100, ou IB4 em hexadecimal.
Os 12 bits que constituem a instnrção têm finalidades diferentes conforme o formato já definido para
as insrruções (Fig. 6.23), sendo os 4 primeiros bits detenninados para o código da operação (C.Op.) e
os 8 bits restantes indicam o valor do campo operando, endereço do dado a ser marúpulado pela ope-
ração (Op.).
Assim, temos: C.Op. 116 (0001,) e Op. = B416, (101 101002) (valor escolhido no exemplo), e o for-
mato completo da instrução será:

10001 101 10100

C.Op. Op.

b) O valor do dado armazenado na célula de endereço B4 é igual a 423 10 o u 1A7 16 {trata-se de um valor
assumido para o exemplo).
c) A instrução ADO está armazenada no endereço 03"" e sua descrição em binário é: 001110110101 ou
31351(,•
Corno na instrução anterior, os 4 primeiros bits constituem o C.Op. e os 8 bits restantes o valor de Op.

1 001 1 10110101

C.Op. O p.

=
sendo C.Op. 3 16 (conforme defirúdo no exemplo da Fig. 6.23 para a instnrção ADO) e Op. =B5 16
(valor também assumido para o exemplo).
d) O valor do dado armazenado cm B5 16 é 07D 16 ou 125,..
e) O valor armazenado no CI = 02 16 é considerado no exemplo como tendo sido atribuído pelo sistema
operacional.
f) O valor armazenado no R I = 317 16 (provavelmente é o valor da instrução anteriormente executada).
snow
186 / Pmcess1111on:s

Processador MP
00
01
02 1 1B4
03 3B5

-~
r
~

RI V

317
B4 1A7
85 070
B6

RDM
-~ .~

7BC
oontrola

Barramento de dados
Barramento de endereços

ftgura 6.25 Dados iniidais para ,e xecução do ciclo ,d as instruções IDA e ADD.

g) O valor :irm:m:m,lo no regis.trador de da.dos, R 11 = 2013 1,, (também é um valor obtido em operação
anterior).
h) O valur ,1m1aze11ado 110 IR.EM = B3 e 110 RJ)M = 7UC.
Então, ao tenninar um ciclo de uma in truçâo l)ualqucr, a U . n:inicia o proces~n :itr.rvé~ d::i execução do
ciclo de uma nova instrução (no ca~u. seri a imtruç::io LDA de nosso exemp1o), conforme o fluxo da Fig.
6.24.
Seguindo a etapas indicadas na refer.ida figum e observimtlo m v~1km: armazenados e a1tcrados nas Fig..
6.26 (subciclo de busca) e 6.27 (subciclo de i:xl'cuçâo). tcrcmm (todos os valori:s es.tâo repn~s.1;ntados em
hexadecimal):
l), RI ~ (CI);
Resultado: RI = 1B4 (02) (Fig. 6.26)
Descriçiio pas!>o a p::is~o:
a) A UC aciona a tran.i;ferência dos birs do CI par:a o REM (cópia), pdo barr:uncnto i11tcrno.
Resultado: CI -+ R.EM = 02 (Fig. 6 .26).
b) A UC ativa a linha R..EAD (Jejtura) do b.mamenro de conrrole. a qual é rcrnnhecido pelo circuito
decodificador de endereços da MP.
e) O dispos.itivo de controle da memória de-codifica o endereço. Em seguida, aquele órcuiro tran fere os
bits (cópia) da célub de endereço 02, ct1ju valor é 1 B-4, para o ba1T.unento de dados e daí para o ROM.
Resultado ROM = 1134 (Fig. 6.26).
d) o i1mance seguime. o valor 184 é t:ni.n~fcrido do R.DM para o R]. pdo barramento interno do pro-
ce sadol', substituindo o valor 317. que e tava Já armazenado.
Nota! 1) Ohserve a not.~çâo 1,.1!;:tda, (Rí) e (CI), ou~ j:i. RT e CI entre p::i.rê11teses, para indicar c-onteÍldo,
porllUl' (02) signific::t "transferir o conti:údo do c:ndl.'.rcço 02 ". Se fosse usado o tt!nno Cl apenas
(si:m p,iri'.:ntc:.;c-s) , o própi-io valor !l2 si.:ria tran. fc,-iclo par:i. o Rl
snow
Proces.sadorrs / l 87

2) Para ~implific.:,n a explicaçàu, foram on1itidos di ersos eventos que ocorrem 110 barramento, na
realidade di: um ciclo destes, como, por exemplo, a colocação, pelo circuito de controJe da memó-
ria, de um sinal no barrami:nto de controle ·onfirmando o témtino da r:ransterêncfa do valor no
barr;1111ento de dados, de modo que o process::idor po Síl utilizã-lo (rransfcrência para o RDM etc.),
como també-m o foto de que o endereçamento pode er realizado cm duas ~t;'lpas. (linha e cobn:;i),
como é d ·scrito em detalhes no Apêndice D.
2) CI ~ (CI) + 1;
Resultado: CI = 03 (Fig. 6 . 26)
Como no exemplo adotado cada in truçào ocupa uma célula da MP (especificação da Fig. 6.23) e as
imtruçõe estão Ot!,ranjz.adas em eqiiência, a próxima in trução deverá ocupar a célula. seguinte, cujo ende-
reço ~erá encào, 03. Porranto, 02 + 01 = 03, que é o endereço seguinte.
No entanto, em qua e todo o sistemas \!m fimcionamento não há processadores t 10 .. "bem comportados"
qt1anto o r.!s.pecificado na Fig. (1.23, especial1Uente no que se refor à ,-elação entre o tamanho das instruções e
das cé]ulas de MP. Quando st.> trata de proce adores com arqujtetura do t.ipo CISC. a realidade está mais para:
(CI) ..- (CJ} + n , ~cndo n = ljl!l3ntid;;idc de çélula!i ocupada por 1..nna úníça instrnç5.o,. cm vez dç; (CI)
~ {Cl) + l
O que indica que o tamanho das imtruções ~ variável, o valor de- n é , •ari5.vel também e a UC deve ser
preparad.a para este fato.
Quando s~ trata de prnce~sadon;s com Jrquitetura do t'po RISC, a n;alid di.: é 11 ter um valor fi~-o, nor-
maln11;nte igual :m da pafavr:1, 32 bits, 11..1 maiora dos sistemas, ou :-eja, ocupando quatro céh.das (quatro
i:ndc.:rcçm; çontígum) de 1 byte çad:i_
o~ mkrnprnceso;.adores 8080/8085, cujas in_truç:ôcs podiam ocup;'lr 1, 2 ou 3 céfolas de memória (e
c:ad:t ci:lula pos_<;uía 8 bit.,; de 1:irgura), as in truc;ões. el"am lidas para o processador (UCP) um byte de cada

Processador MP
00
uc

r-
01
1
02 184
1
03

CI AI
-~-~ .~

'~

1 Pl' 0.3 1 H m 184 1

REM ADM
1 J3! 02 1 1 ieC 184 1
' -., -~

1' T
FIF
'-.._Conlrnle da MP /
.. • li
--
Barramento de controle
Barramento de dados
Barramento de endereços

Endereço Dados Controle

Figura 6.26 Fluxo de dados e de e,ndereç.os dUi"ãnte a. l'ealização do ddo de busca da instrução DA.
SDêW

18 8 / Proar.s.smlores

,.rez {tamanho dai ,céh1fa} e o CI era incl'ementado de 1 em l, porém m.ii d~ uma vê2 durunce o ciclo da
mesma instrução ( e a instrução ocupasse 2 ou 3 bytes). No iste 1a fBM / 370, o 2 p1-imciro bits do
código de opeTação indi,ca · a,n o timanho da ins rução sendo 00 paira instt1.1çôes de 2 byte , 01 para inst1u-
çõe dt.: 4 byws t: 11 para instrução de 6 byte de tamanho, de modo que o CI er, inc ementado de a ordo.
os pr, ~e:· adores P, nrium e AMD as in truções po: uem diversos tamanho (11 tem valor v;u;iávd), cn-
(1uanto nos processadore. PARC e Po ,verPC as in. rruçôe. rêm Jairgura fixa. endo n = 32.
Em nosso s.i t ma fictício usan110 mn valor não- múltiplo de 1 by e porque pr ci ávamo dom nor valm·
po ivd (para fa ili~r a visL1a.lizaçâo da plicaçõe , . em comprometer a inteligibiljdade do texto) .
OBS.: Para um melhor emend.imento do fluxo de dados no exemp]os, e ocom;!r uma ope--açiio d1;: li! cri~
em c'lula d MP ou regi trador a figur;'I mostrará os doi. valores: o anr.e rior à ,e squerda, com urna barra
diagonal atrave ada: e o novo valor à dinúta.
3) Decodificação do Código de Operação - Fig. 6 . 27
a) A U emir~ o inal apropriado para que o RI rm.nS,firn para o decodifi.cador d instrução o 4 bits mais
ignificativo · qm:: corre po,,d m ao alor cfo C.Op.
Resu1tado: decodificador ·+-- 0001 2 ou 1 i 6 (Fig. 6.27)
b) O d.e codificadot~leciona, atravé da Jógica nele existente {ver ex mp]os de decodificadot·es 110 Apên-
dice B e no itt:m 6.2.2.5), a linha de saída corre pondente para a UC, a qua] mitirá o sinai adequado
e nas qtiência pree rabelecida que conduzirão à execução da operação d finida p la in truçào.
0

· a realidade, a ação decorr nte da saída decodific:ida do C. · p. depende do método utilizado pdo
istcma para ,cxccuta:r a in tn1ções,. eja por microprogramaçiio on progran1.1ção diret.amente no hardware.
4) Se tiver openmdo(s), ll:mscái-lo(s); senão, passar para o :iitem 5, - Fig. 6.27
No ca o presente, nio há operando a er previamente buscado,
5) Execução da operação
Resultado. 8<i, = 1A7 (Fig. 6.27).

Processador MP

uc
~ 1 ~
Ro
l_?.98 1A71!:-
......... ,.,
~

RI
REM ---, B4
1 184 1 1A7
lfa!" B4 P-
RDM
,a(
~

1A7 1
o - "
1' T

'-1 Controle /

--
11
• • Banam&nro de contm1e
BairramenlO de dados
Barramento de ender,eçõs

Figura 6.27 Flu ·õ de dados e de ender,e ços durant!e o c:ido de execução da instrução LDA.
SU$W

Pr1Xessadores / 189

a) A UC emite o sinal para que os bits correspondentes ao valor do campo do operando da instrução - 04
sejam transferidos para o REM, pelo barramento interno.
Na prática, em geral há um cálculo para se achar o valor de um endereço, con10 acontecia nos
microprocessadores de 16 bits e ainda acontece nos processadores atuais, somando-se o valor de um regis-
trador de segmento ao constante da instrução (ver modos de endereçamemo no Cap. 8). No nosso siste-
ma "bem comportado" isto não é necessário, e o endereço ll4 é transferido diret.;unente pat3 o REM.
b) A UC ativa a linha READ (leitura) do barramento de contro le, o qual aciona o circuito de controle da
MP para decodificar o endereço 134.
c) Decodificado o endereço, o circuito de conrrole da MP transfere o valor (o comeí,do) armazenado na
célula de endereço 134 - cujo valor é 1A7 - para o ROM, pelo barramento de dados.
6) Escrever o resultado
Resultado: RDM = 1A7
a) No instame seguinte, a UC emite o sinal apropriado para que este valor seja transferido (cópia) para o
registrador R.., pelo barramento inten10 do processador.
Observação: Se o processador utilizasse todos os rcgistradores existentes (R.., a R.0 _ 1), e ntão seria necessá,io
que as instruções tivessem um formaro diferente (para dois operandos), de modo a incluir o endereço do rc-
gistrador desejado (ou seja, um dos N registradores). Como, para simplificar, só o R,, está ativo, então é des-
necessário indicar o endereço do registrador no formaro da instrução.
Os passos I e 2 co1Tcspondem ao ciclo de b11sc,1 (fetch}, e os seguintes - 3, 4, 5 e 6 - correspondem ao ciclo
de execução. O ciclo de instrução realizou dois acessos à memória para a realização de dois ciclos de leitura.
O que, na prática, reahnente diferencia o desempenho de uma instrução em relação à o utra é a quantidade
de ciclos de memória (acessos) que cada uma realiza durante seu ciclo de instrução, visto que o ciclo de me-
mória é um tempo ponderável, se comparado com o c iclo do processador.
Execução do ciclo da instrução ADO Op.
Vamos, em seguida, descrever o ciclo da instrução ADD Op., considerando que é a instrução seguinte
na seqiiência da execução (a Fig. 6.28 mostra a instrução no endereço 03 da MP, justamente o valor atual-
mente armazenado no CI após a execução do ciclo de LDA Op. - ver Fig. 6.26).
A Fig. 6.28 mostra o subciclo de busca de ADO Op., e a Fig. 6.29 mostra o subciclo da execução. Nesta
instrução será usado o passo 4 do ciclo de instrução (buscar operando) e haverá efetivamente a realização de
uma operação (operação a,itmética de adição), com a conseqiiente ação da UAL e o passo 6, com a escrita do
resultado no registrador R..,.
Dados a serem inicialmente considerados, referentes ao ténnino da instrução anterior:
C I = 03; RI = 1B4; R., = 1A7; REM = 134; R.DM = 1A7
Seguindo as etapas indicadas na Fig. 6.24, teremos:
1) RI<- (CI)
a) REM <- CI = 03 (Fig. 6.28)
b) Ativação da linha READ pela UC. Decodificação pelo circuito de controle da MP do endereço colo-
cado no barramento de endereços.
e) R.DM <- 385. Naturalmente, o valor copiado da célula (385) vai p1imeiro para o barramento de dados
e daí para o ROM, conforme já explicado no exemplo amerior.
d) RI <- 385 , substituindo o valor 1134, da instrução anterior.
2) (CI) <- (CI) + 1
CI = 03 + 1 = 04 (Fig. 6.28)
3) Decodificação do código de operação
C.Op. = 3 (Fig. 6.28)
Snõw

Processa dor MP
00
uc 01
~
li
02
li
03 38 5

CI ,, AI
."...
, .., ".
1 pg' 04 1
-, jDI( 385 1

REM RDM
1 fM 03 1 1 Vd" 385 1

1'
, .. -..
T T
FF
'-....._Controle da MP /
1
--
Ba.mtmenlo de control 8
Barramento de dados
1

8a rramento de ende reços

El'ldere-ço Dado.s Controle


Figura 6.28 Fluxo de da,d o e de endereço . durante a realização do dclo de bi1m:a da in .trução ADD.

a) Dccodificador ~ (RJ( .Op.))


A definição da. ~aida decodificada correspondente à opel'ação ADD é enviada para a UC.
b) A UC emite inais apropriados para a 1·eali2açfo dos passo 4 e 5 de acordo com sua progmuaçã.o pré-
via para esse código de operação.
4) Buscar operando na MP (Fig. 6.29)
Como a. instrução determina que o va.lo.r ann.azenad-o no regi!>trador R.c (1 A7) seja omado a um vafor que
está na M P, no endereço B5 te lor (operando) d,fc!ve ~cr transferido ti.a MP p ra a UAL (n, n,•alidadl! é
tra.n ferida mna cópia do valor, permrnoccndo esre também na :ua célula) de modo que em seguida. pos.sa ser
somado. T rata-se, então de n:alizar um ·ido d, · m ·mória para kitura.
) A UC emite sinal de controle de modo lJUt::

REM ~ Op. REM o('-, BS pois Op. = HS


b) O valor BS é colocado no barramento de endereços (UC) ç a UC ativa a linha READ.
c) O controle da MP decodifica o end.e reço B5 e, em eguida, o:s bit am1azenados no endere,ço BS ( 70)
.:io rran feridos para o RDM.
RDM +- (M(REM))
RDM +- (M(B5))
RDM = 07D
d) UAL ·~ , (1A7), que é o primi:fro operando
R,, ~ R D M (07D)
U AL +- ~i (07D), que é o segundo operando
SDêW

Pwcessndor.rs I 1.91

Precessado r MP

uc

AI)
y<f 224

RI
- - •t""

AEM 385
JS 85 B5 070
ROM
~ 07D
, .. ,.,

Oonlrole
4. ..
·- -
Barramento de dadoo

Barramento de endereços

Figura 6.29 Fluxo de dados e de ende-re,ços durante a realização do ciclo de xecu,ção, da instrução ADO.

Há divcnos modo d.e iimplementar a co]ocação de va or~s na UAL Certos sistemas u an l"egi tnldo,rc.
tcmporário: p. ra armazenar o doi operador ''.)í im ·di.it211m;ntc ame de serem transferidos para a UAL. Em
outros, o barramento i:ltemo leva dado diretan1ente para a UAL, quan do clc:. ejado.
o no. o sistema hipotético. vamos u tilizar o registrado · R , como incio de ligação entre o barramenro
i11tt'rnO e a UAL
5) Ex,e cu,çãio da. operação (Fig. 6.2'9)
e. ta etapa, a UC émite o :si11al correspond r te qu aciona a entrada dos dois valores no cit· u'to ]óo-ico,
que realiza uma adição e obtém o tesulcado na s.1ida (no Apêndice D pode- e oh,ervãr uma UAC cm detalhe
com r.eu c.ir,~1itos intemos de modo a e poder com.pre-ender mdhor a operação da soma em um prnct.-s$3dor) .
JA7u, + 07D 16 = 224 u,
A soma foi realizada u ando- e aritmética hexadecimal para número inteiro. !;l!m inal (ver Cap. 3).
•6) Escrever o resultado
O rcsultado, valor 224tf,, é transferido para o R, 1, conch1i11do a execução do ubciclo de e. ecuçào e o ciclo
comp1ero da insrmçào.
·e o progra:ma continuasse em execução, neste momento seria iruc·ado um ouu·o ciclo d instrução, col"-
0

re pondentc ao valor armazenado no endereço 4.


A irisrrução ADO con um.iu dois ciclo de memória (para leitura), um para a busca da in m.1.ção e oucrn
pam n bu.~ca cio 2~ operando.
Em termos comparar.i 'OS. eu tempo bá!>ico de execução t:. praticamenci: o, mesmo da inmução LDA. vis.to
que ::unhas realizaram :i mesma qu:mtidade de ace o à MP, ou eja, doi ;lCt.>ssos. A pelJUena dife-n:nça cxj -
teme reside na operação aritmética. realiza.da pela jmcruçâ.o ADD. No encanto e a instrução a s.cr executada
po:.suí · e dois operandos sendo, p.ex. do tipo:
(Op. 1) +- (Op ,1) + (Op.z)
então a compJcm realização de eu ciclo de imtruçào comumiiiia quatm cido de memór:'a (qua.tro acesos),
o dobro das duas. imtruçõe exemplificadas: um ciclo de memó ia para b l e-ar a jn rmção e armazen.í.- la no
Sn$W

192 / Prowsadom

R I; um ciclo de memória para buscar o primeiro operando (Op.); um terceiro ciclo para buscar o segundo
operando e, finalmente, o úlciino ciclo de memória para annazenar o resulcado da operação na men1ória, no
endereço indicado por Op.
Ao mencionar ciclo de memória, estamos nos referindo ao conjunto de etapas que leva a concluir-se um
ciclo de leitura ou um ciclo de escrita, e não aos ciclos de relógio que efetivamente acionam a efetivação de
uma microoperação (um dos passos de uma das citadas operações de memória). Na realidade, a execução de
um ciclo de instrução consome vários pulsos de relógio, variando-se sua quantidade de acordo com o tipo da
instrução.
Os exemplos mostrados consideraram uma série de limitações que não existem nos processadores reais, mas
que foram introduzidas para facilitar a compreensão do leitor, sem invalidar a realidade. Entre elas pode-se
citar a quantidade de operandos (mais de um) e o modo de endereçamento (significado do campo operando).
No Cap. 8 são apresemados outros tipos de instruções, como as que manipulam valores annazenados nos
regisrradores de dados (mais rápidas) em vez de armazenados na memória, que foram mostrados nesses exem-
plos e que consomem mais tempo de execução do que com o emprego de registradores.
A simples observação dos dementos contidos nas Figs. 6.5 e 6.6 e sua comparação com outras arquiteturas
mais recentes mostra diversas diferenças com novos componentes e funções (Apêndice D). A título de infor-
mação inicial, podem-se mencionar entre as diferenças:
- o surgimento de uma memória interna do processador (cache interna - LI ), que pode ser usada de forma
unificada, para armazenar instruções e dados (caso de algumas arquiteturas iniciais da Intel e AMD) o u de
forma dividida; nesse caso, utilizado nas arquiteturas Intel desde o Pentium, e nas da AMD a partir do Athlon
K7, há duas cache LI separadas, a cache que somente annazena dados (pode ser de 8KB ou mais) e a cache
que armazena as instruções (pode ser de 8KB ou mais);
- a existência de mais de uma UAL, un1a delas ou ,nais de uma, exdusivamcntc para efetuar cálcu)os com
valores inteiros e uma ou mais de uma para efemar separadamente cálculos com valores fracionários (números
representados em ponto flutuante - ver Cap. 7). A Fig. 6.30 mostra um diagrama em bloco simplificado do
processador Pencium original.
Na figura, pode-se observar as duas memórias cache L 1, sendo a cache para dados o componente que ali-
mema (barramento interno) os rcgimadores de dados e as duas UALs para valores inteiros (denominada, pela
Intel, Imeger U11it - IU) e a unidade de cálculo de ponto flutante, denominada FPU - Floati11g Poim U11it.
A quantidade e o emprego dos rcgistradores variam bastante de modelo para modelo de processador. A Fig.
6.6 mostra um grupo de N registradores, identificados por R.., a RN·> • e nquanto a Fig. 6.5 mostra o ACC e um
grupo de registradores de dados, de endereços genéricos R,, a R •. Já as Figs. 6.12, 6.13 e 6.14 apresentam
exemplos de organização de registradores de dados de alguns processadores, respectivamente, o Intel 8085
(microprocessador de palavra igual a 8 bits). Intel 8088 (primeiros PC - palavra de 16 bits) e Pentium 4 (pa-
lavra ainda de 32 bits) . Estamos, em mais detalhes, nos referindo a registradores de dados para inteiros, mos-
trando exemplos dos registradores para annazenar valores em ponto flutuante, no Apêndice D.
Uma o utra consideração refere-se ao tamanho da palavra dos antigos processadores de grande porte IBM/
370, que era de 32 bits, a mesma largura dos 16 registradorcs de emprego geral neles existentes. O micropro-
cessador Intel 8088, que moveu os p1i mei ros sistemas IBM PC, possuía registradores de 16 bits cada um, ta-
manho idêntico ao definido pela Intel para a palavra. Os processadores Pentium de 6.' geração (P6) possuíam
palavra de 32 bits e 8 registradores de mesmo tamanho. denominados emprego geral; além disso, possuíam
também 6 registradores de 16 bits denominados rcgistradores de segmento, que funcionavam para o cálculo
dos endereços de acesso à memória na execução de programas (ver Apêndice D).
Nos exemplos acima, os valores indicados referem-se a níuneros inteiros; para núm.eros representados em
ponto flutuante, alguns processadores possuem registradores expliciiamente dedicados a essa função, com o
dobro da largura da palavra e outros utilizavam pares de registradores para cada número, de modo, então, a
produzir o dobro do ta1nanho, visto que números em ponto flutuante sempre requerem mais a1garismO$ de-
vido à precisão necessária (ver Cap. 7).
SU$W

Processadore, / 193

Cache l 1 - instruções

Fila de
instruQê,es

Barramento Deoodificador
do
sistema
Interface

UAL UAL
(ínt) (ínt) FPU

Cache L1 - insuuçõe-s
Figura 6.30

6.5 CONSIDERAÇÕES SOBRE PROCESSADORES


Neste capítulo foram apresent.1das as características básicas dos processadores, componente cemral de um
sistema de computação. Como foi mencionado diversas vezes, analisamos elementos, características e compo-
nemes de um sistema simples, organizado para funcionar de forma seqüencial (executando uma instrução de
máquina de e.ada vez), um processo lento e pouco eficaz nos dias atuais, mas que serve bem para a apresentação
conceituai do processador.
Para concluir este capítulo e prover a pome de conhecimento ao leitor, útil para o aprendizado dos assuntos
mais avançados apresentados no Cap. 12 (sobre arquiteturas avançadas, paralelas e de 64 bits) e no Apêndice
D (mais detalhes sobre processadores existentes atualmente no mercado), vamos mencionar alguns pontos
relevantes da arquitetura e da organização de processadores. Pontos a considerar:
- tecnologia de fabricação dos processadores;
- largura da palavra;
- conjunto de instruções;
- registradores de dados (quantidade, tipo e largura);
- mecologja de funcionamento da unidade de controle;

6.5.1 Tecnologia de Fabricaç ão dos Processadores


Os detalhes sobre a tecnologia de fabricação dos processadores são, naturalmente, um assunto que foge ao
escopo deste livro. No entanto, é importante saber o elemento principal em que se baseia a tecnologia, razão
primordial da notável evolução dos processadores, desde l 971, quando a Intel c,fou o p1imeiro microchip, ao
encapsular e m um único invólucro mais de 2000 transistores. colocando-os sobre o mesmo wafer de silício .
Isso foi possível, e vem sendo cada vez mais, pela capacidade de alguns fabricantes {Intel, AMO, IBM) re-
duzirem cada vez mais a espessura de cada transistor e, assim, conseguirem encapsuJar cada vez mais compo-
nentes em um chip, dotando os processadores de mais recursos e mais capacidade de processamento.
Sn$W

194 / Processadores

Atualmente, a tecnologia de fabricação da maioria dos processadores utilizados em microcompucadores é


baseada em uma espessura de 0,065 mícrons, ou 65 nanômetros (no Cap. 2já definimos a unidade nanômetro),
já sendo mencionada a tecnologia de 45 nanômctros. A Intel já divulgou dados sobre essa evolução e seu
planejamento até 2015, quando se espera uma tecnologia de 1 1 nanômetros de espessura dos transístores.
O componente básico para qualquer chip a ser fabricado é o 11,1fer de silício, um componente constituído,
como o nome pressupõe, essencialmente de silício fündido com alguns outros componentes. De um único
u,afer podem ser cortados vá,ios processadores, formando um lote específico, de forma semelhante ao que se
obtém com as memórias ROM e CD-ROM, ou seja, a partir de uma matriz são obtidas diversas cópias idên-
ticas. O wafer é construído em várias camadas, algumas delas tendo espessura tão fina quanto o tamanho de 5
a 7 átomos.
Há perspecrivas do lançamenco para 2007 de processadores para PCs constituídos de transístores com es-
pessura de 45 nanômctros; com isso. vai ser possível encapsular cerca de l bilhão de transistorcs em um chip.
O grande objetivo dos fabricantes de chips como Intel e AMO é produzir compo11entes, como processa-
dores, com mais elementos internos, conforme mencionado acima, o que aca1Teta um aumento do desempe-
nho do contponente global como um processador, por exemplo, e, ao mesmo tempo, obter uma redução no
consumo de energia, o que, aparentemente, t! um paradoxo.
Segundo a Intel, que planeja fabricar os chips baseados no processo de fabricação de 45 nanômetros, vai-se
manter ainda por alguns anos a máxima contida na lei de Moore (ver Fig. 6.1) sobre a evolução da quantidade
de transístores por chip.

6.5.2 Largura da Palavra


No irem 6.2. 'l .3 demonstramos, com um exemplo elucidativo, a importância da largura da palavra sobre a
capacidade de cálculo dos processadores.
Um maior valor de palavra pode representar a possibilidade de o processador operar, de uma só vez, com
valores muito grandes, requeridos atualmente em processamento científico avançado, be1n como para valores
comerciais de grande porte.
Muitas aplicações atualmente requerem grande capacidade computacional. como processamento de som e
imagem (multimídia), projeto e manufatura de produtos por computador (CAD e CAM). como também jogos
para computador, processamento e1n tempo rea] e vídeo digit..11.
Além disso, tem sido comum na indústria de processadores manter a mesma largura do valor de palavra e
de endereços, desde o lançamento em 1985 do processador Intel 80386, o qual possuía palavra de 32 bits e
também seus endereços possuíam 32 bits de largura, o que alcançava enonnes (para a época) 4GB de espaço
de endereçamento.
Os processadores que vêm sendo lançados com arquitetura de 64 bits possuem ramo palavra de 64 bits
(largura dos elementos internos de process.1mento como unidades de cálculo e registradores de dados) quanto
endereços de 64 bits, o que pennitirá alcançar-se extraordinário espaço de endereçamento de 2"' = l 6EB
(dezesseis exabytes).
Na realidade, a palavra é adotada pelos fabricantes como um elemento de definição de características dos
processadores, especialmente no que se refere às suas funções de processamento. A largura cb palavra tem sido
um fator determinante da escolha, pelos fabricantes de processadores, dos tamanhos dos componentes da área
de processamento, bem como dos barramentos de dados correspondentes.
Uma pequena variação ncss.1 política tem sido a escolha, pelos fub,icames, da largura dos barramentos de
dados em processadores contemporâneos. Em fuce da necessidade do aumento da velocidade de processa-
mento e aproveitando o uso crescente das memórias cache internas, a largura dos barramentos tem sido do-
brada e até mesmo quadruplicada em relação ao tamanho da palavra dos processadores.
O primeiro núcroprocessador, Intel 4004, possuía palavra de 4 bits, ou seja, processava valores numé,icos
de 4 em 4 bits e, assim, toda sua pequena área de processamento tinha a mesma largura, de 4 bits.
Sn$W

Procmndores / 195

Já o processador mais comercial e conhecido efetivamente como primeiro pelo mercado, o Intel 8080,
dobrou o tamanho da palavra e processava valores numéricos de 8 cm 8 bits. Todos os seus registradores de
dados, como a UAL e o barramento interno e externo de dados, tinham a mesma largura de 8 bitS.
Ainda com o processador Intel 486 e o processador AMO K6, a largura da palavra, no caso, de 32 bitS,
predominava como unidade de processamento e de transferência de dados pelos barramentos.
O processador Pentium manteve a largu ra da palavra em 32 b itS, o que só veio a ser alterado em 2002,
com o lançamento das primeiras versões do lcanium, processador de 64 bitS (palavra de 64 bits de largura).
No entanto, com versões subseqlientes do Pentium original, os barram entos de dados passaram a ter largura
superior ao tamanho de 32 bits, passando a 64 bits e mesmo 128 bits, até ao Pentium 4, que possui, em
determinadas versões, barramento interno de 256 bits, com barram ento do sistema de 64 bits e 128 bits de
largura

A Tabela 6.1 relaciona o valor da palavra de t0dos os processadores dela constantes.


É interessante observar o uso do tenno p alavra , ou ,vord, em inglês. É possível encontrar-se na literatura o
uso do termo word (palavra) para indicar mais o conteúdo de uma posição de memória (local identificado por
um único endereço) do que a capacidade de processamento de uma UCP.
Por exemplo, os processadores atuais possuem posições de memória capazes de armazenar 1 byte cada uma
e, assim, pode-se encontrar eirado na literatura que eles possuem memória com palavras (word) de 8 bitS e
mencionar-se gue o processador mi possui arquitetura de 32 bitS ou que aquele o utro possui arquitetu ra de 64
bits, sem mencionar-se explicitamente que tem palavra de 32 ou de 64 bits.
No entanto, o autor considera rmis adequado diferenciar o emprego do termo palavra, tornando-o exclu-
sivo do tamanho dos componentes internos do processador, e chamar de célula a posição de memória. E é isso
gue tem sido feito neste texto.

6.5.3 Conjunto d e Instruç ões


O conjunto de instruções de um processador define as operações primitivas que essa máquina irá executar,
bem como a natureza do desempenho de suas atividades. Além disso, irá determinar a especificação dos de-
mais componentes,já que a instrução interfere com praticamente todos os componentes do processador, visto
que ela csrabclcce a operação que será realizada (então, a UAL, os registradores de dados, o barramento inter-
no se relacionam a isso). O seu formato e partes componentes irão determinar a organização e o desempenho
do decodificador de instrução e a largura do regisrrador de instrução.
Dessa maneira, é a partir da especificação das instruções de máquina que o restante do processador começa
a ser delineado. É, portanto, uma parte essencial do projeto de processadores, definindo inclusive sua arqui-
tecura (CJSC ou RISC, por exemplo).
Neste capítulo mostramos o funcionamento de um ciclo de instrução, que é, na realidade, o modo de fun-
cionamento de um processador. Para isso, precisamos explicar (mesmo sucintamente) o que é e como se
formatam as instruções ine,·entes aos processadores. No Cap. 8 são mostradas em mais detalhe a organização
e a variedade das instruções dos processadores contemporâneos.

6.5.4 Registradores de Dados


Como já sabemos, os regimadores de dados constituem-se na memória diretamente ligada às unidades de
cálculo (UAL e FPU), portanto, de tempo de acesso mais rápido. Sua largura costuma ser igual à da palavra do
processador, tendo variado como a palavra, ao longo do tempo, de 8 bitS até os 64 bitS das máquinas atuais;
nesse caso, estan1os tratando de rcgistradon:s de dados representados como valores inteiros (representação ern
ponto fixo - item 7.3.2) e man ipulados pelas UAL específicas para valores inteiros (é o caso das lnteger Unit
ou Execution Unir dos processadores Intel e AMO).
Quando se trata de manipulação de valores fracionários (representados em ponto flutuante), as operações
matemáticas são realizadas por unidades de cálculo específicas (unidades de ponto flutante ou FPU) e os dados
SDêW

são armazenados em regisn··adores e pedficos norma1mcnte com o dobro do valor da palavra, por exemplo,
64 bit.~ para os pmce.. adore de 32 bhs.
A existência d regi tradore de dado. no pmcc s. .dorc'. acarreta mna éri,e de vanrngens ao sistema ntre
as qúa1 :
• regi trador s são n1ai rápidos do qu a memória comum, mesmo a memórias cache jntema Ll;
• é mai tãcil par.i o compiJador u ar l'egis.tradores do que pilha de dados por exen1plo;
• o armazemunento de uma. variável em um registrador pernute que ela possa er u ada div rsa v z' 10
decorrer da execução do programa, . em haver ace. os adici,o nai_ à memória· j to é e ela tives e arma-
z•nad:.l n.l m ·mória, i;rn cada reÍI raênda do pr-ogra 1a hav.1;;ria ac1;. o à memória para bu d -]a, enquanto
com o us.o d n:gi trador b.i t..- o acesi:;o ü1iciaJ {load) para ,;1m n:gist1:ador, e a_._ demais re, r~ncias à vari-
ável erão ft,it;;i ao r gi tr-ador, rapidamente.
,. como há relativamente pouco rcgistradonos em um proc ·. s.ador (me mo aquele que po. ucm 128 re-
gi tradore ) comp rativa1t'let1t,c com a memóTia. economizam- se bits no ender ·ç n1ent:o de regim1tdores
(no exemplo de 128 ncgistradore eriam 7 bits pa a der'ço de cada um dele.}, ~m rda,çâo â. quam:i-
dad d · b' requerida o acesso fo à memória (32 ou mais bi ).
A quantidade dele tem variado de máquina para má.qujna., mas tem · ido co tume nos proce adores que
eguem a arquitetura do tipo I C possuir poucos registradores, enquanto proc s ador ·I são con ti.tu-
idos de muito desses component .
O proc sado · 8080 po uía ete regis.tradores. de dados (vei- Fig. 6.31),. o ACC mai o r gi tradores. B,
D E, H e L, todo de 8 bits de largura, enquanto o processador 8086/8088. de 1 bits de pa1avra, tinha quatro
r gisttador de 16 bits, m qua~ eram na verdad , aj1.rnçâo de quatro pare de regi trador s de 8 bit (AH/ AL
-BH/BL-CH/, - DH/ DL), de modo que em pmsiv l armazenar 8 bits ou 16 bits (mantendo a cornpa-
tibilidad com o 080/ 085). Além do regis radore: de dado o 8086 ti 11ha tambéi 1 regi tl"adore d • . g-
mento para rdocaçào e endereçamento,
Os proc · adore Pentium origina' tan bé :n d' punham de pouco registrad,on.;~ de dados, tendo, pou::m,
voluido p,'1111 arquiteturas. tipo · TSC. até os Pentium 4, que podem chegar a 128 registradores de 32 bits para
inteiro , a.F•m do registrndol" d ponto flutuante (vei- Apêndice D),

32 bfl:s
EAX

(ai Intel 6080/8085 EBX


ECX
16 biis ED,x
AH AL Para dados
Dados BH BL
,e 1

end:&reç:os Cl-l CL 32 bits


OH DE ESP
EBP
16 biis
ESI
cs7 IEDI
P,;ua1 os 1

segmentos
1
Para segmentos
ss
ES (e) lnlel 4S6
Fígttra 6.31 Exemplos de conjunto de 11egiístra,-
{b) Intel 808610086 dore, de dados de, alguns proce~sadonis.
SDêW

O prnce s.adores que eguem ~ e pecificaç:ões normalmente e tabel.ecida parn a arquitetura fUSC têm
como padn'io po ~uir muito· rc-gi tradores. de dados. Exempl,os de ses tipo s.ào os processadore SPARC, que
podem ter a(;é 512 r'égi tradores, o:s processadore M[PS e os Po, erPC.

,6 ..5.5 Meto dologias de Fund.o natnento da Unidade d.e Contro le


Conforme ji foi e. posto ant r:ionn,1;nte a unidade de contro~e é o componente responsável p la cferi\;•a
atividade do proces ador ãtr-;\v~ la pr-ogramaçào que traz em seu imerior. Dela partem o. inai· d.e cone-o!
(pulsos elétricos) que percorrem o barramento interno t:: chcg;im ai codo. o deli:umtm do procl.'.sado1·, omo
a UAL, os regismidores ck: ctado, o cont:.ador de instmçõe etc. (como o n1,:rvo do corpo humano, que con-
duzem o s1n. i. r.:lêtrico que o cérebro emite para comandar no o movimentos). A eqíiência de geração
dos sinais dtcpe11de da programação exisrenrc na unidade de control , que foi armazenada ou con. cn dda p r-
ma11ente111e11te durante a fabricação do pro c55ador.
O conjunto formado pela UC pd dccodificador de insm1ção e pelo regi tradores a s.o ciados à UC cons-
titui a microarquitetura de um proce sador a área re ponsá d pela reali zação das núcmoperaçõe~ (menore.
operaçõe realizada.~ díretan ent p lo hardware) e ue, ncsl:!:l capíwfo, explicamos de modo integrado cotn o:s
regi tradore. de d da., UA e i1 truçoes de máquina. Na ri!àlidadl!, o c01tjunto de instmçõe de máquina
(in truct1on s t) é o menor nível a e. ado p ~lo prngramador o qual é, no entanto, um .l emenco ab tnu:o de
com micação entr o progran ad r e o hardware. -
Cada in truçà.o de máquina é, por sua vez, d1.:compo ta l.'.111 pane m ~nore , que e denomjnam
nucrooperações, estas im, r ponsávei por uma ação es.p~dfica do hardware, como, p.ex. a transfi rAncia de
bir.. de um regi rrador para. outro ou a aida de bits de um regi trador para a UAL para a 1·eaLiz.aç:'io de um,
opcraçãl) aritliru;:tica.
A Fig. 6.32 mo tra um ex mplo d de ompo 'çào da estrutura de nm programa em linguagem de alto nível
até o nível das nricrooperaçõe&. a Fig. 6.32(a) mo. rra-:!ic um e. trutnra genéri a con tituída 1nicialmen.k de u,n
programa codificaido em uma lingu;igem qualquer de ah:o nível (coino C ou Pascal ou Forrran). O progr.una é
organizado con uma eqüência d comandos, C 1 2, CJ, ... .ité C,,. Cada comand , ap' o proc • o d4; om.-
pilação (ver Ap ~ndice C) é converddo em uma ~eqtiência de inscmções de máquina. ]M,. IM~ [M.l .. . at' [M,,.
Q uando tuna instmçfo de máquina está sendo e ·ecutada, isto é quando o proce ador está r alizando o
ciclo daquela in. truçio e pedfica,. após a etapa de dccodific~1ção do código da operação, a UC é acionada e
dis.para a eÀecuçio da. 111Ícroopcraçôcs MO,, MOi, M03 .•.. até MO,., a. q uai!> co,, ritucm a menor parte do
proc-c; so e qlil!e ;io efutivam nte o ha ·dv..·ar~ .
a Fig. 6.32{b) a referida decompo içào e r a]iza por meio de um exemplo mais real, partindo- e de um
comando de um possív, 1 p r ograma de control · admini trativo de u n e cdtóri,o e chegando-. e à.
microopcra,çõc..;;.
Amba a~ figura . (a) ,· (b), niin !ião compl tas, poi faltam nív is como o do i rema up ·111cional e o que se
colccam acima do programa individualmente mos.t1"3do na Fig. 6.32(b) utilizam um comando de lingu, gem
de aho nívd (como, p.ex., a li11guagem C), con o:
salafi.o = s.afario + alt raçao - desconto
ao _er compilado pode s.c tran fmmar em um conjunto d instruçõ s. de 111~quim (código obj eto), cn g'éral
com uma ,quantidade.:- de instruçõc b ·m m ior em virtude da implic'dad da fünitação de cada instrução d~
máqu'm1. Por e;,;;c=mplo:
MOV R" abrio
MOV R1 alteraca.o
ADR ll11 R ,
SUB R11 de:icomo
MOV sala rio, R.,
Sn$W

198 / Prowsadorts

C, - comando(s) de linguagem de alto nível


lM. - instrução(ões) de máquina
MO, - mlcroopera~o(ões)

e, e, e, ... e,.
~--"-/~ '----------..,.........:.__-~
IM, IM, IM, ... IM,, I IM, IM, IM, ... IM,, 1

MO, MO: ... MO.

(a) Exemplo genérico de decomposição da estrutura de um programa em


linguagem de alto nível (comandos C0 C1 ••• C,) em mlcrooperações (MO.).

REM
se ~ sinal de leitura (REAO)
MOV BE +- REM
8O +- M(Op.)
salario = salarto + atteracao - desconto ROM +- 8O
R, +- RDM

MOV R1• alteracao


AOR R0 R,
SUB R,, desconto
MOV salario, R,

(b) Exemplo da decomposição da estru1ura de um programa


em linguagem de alto nível. com uma insll'ução real.

Figura 6.32 Exemplos de transformação de programas em microoperações.

No nível da microarquitetura do processador. cada instrução de máquina mostrada aqui. que é apenas a
explos.fo de um dos inúmeros comandos da linguagem de alto ,úvel (há programas que são constituídos de
centenas ou milhares de linhas de código), pode ser decodificada e, como resultado, gerar um específico sinal
de controle que aciona, na UC, a execução de uma scqi.iência de n1icrooperações, como:
REM <- R I (Op.)
BC <- sinal de leitura (Read)
BE <-REM
BD <-M {Op.)
ROM <-BD
R., <-RDM
No Apêndice D é mostrado com mais detalhe o conceito de microprogramação. o esquema de uma mi-
croarquitecura de processador e o modo de funcionamemo de um microprograma.
Nesses exemplos e explicações mostrou-se um dos modos de organização e funcionamento da unidade de
controle de um processador. É possível construir uma UC para funcionar de forma diferente, embora os re-
sultados sejam semelhances, mas o desempenho não. Pode-se classificar o projeto e a organização das UC em:
1) UC microprogramada;
2) UC programada diretamente no hardware.
A UC microprogramada consiste na existência de um estágio de intcrpretição inferior ao das instruções de
máquina e que efetivamente comanda as atividades do hardware e foi o que pudemos observar no exemplo
acima, com auxílio da Fig. 6.31. Esta tecnologia, que será abordada em detalhes no Apêndice D, e vem sendo
Sn$W

Processadores / 199

adotada pelos fabricantes de processadores q ue seguem as regras para uma arquitetura do tipo CTSC, como a
Intel em sua fanúlia x86, foi lançada pela primeira vez pela IBM em seus famosos computadores de grande
porte IBM/ 360.
Em linhas gerajs, a UC <: constituída de um decodificador de instruções e de uma memória ROM que
contén1 mn conjunto de microprogra1nas, cada um deles relacionado a uma das instruções de ináquina daque-
le específico processador. Assim, por exemplo, a instrução
MOV regl, rcg2
possui um determinado código de operação, o qual, quando decodificado, acarreta a geração de um sinal de
comrole na saída do decodificador, que aciona o iiúcio da execução do microprograma correspondente arma-
zenado na memória ROM da UC.
O referido microprograma é constituído de vá,ias microinstruçôes, cada uma capaz de executar uma ação
simples (nlicroopcr:1ção), do tipo:
transferir bits do rcgistrador RDM para o registrador de instrução - R I
ou R I <-ROM
Apesar da necessidade de se incerpretar cada microinstrução (como qualquer instrução de máquina) e, com
isso, acarretar algum atraso no processamento, a tecnologia produz uma notável 0exibilidade ao fabricante,
com sensível economia de custo, permitindo a inclusão de novas instruções em uma família de processadores
sem ter que redesenhar o chip todo.
Tecnologia Pipelining. A tnlidade de Controle - UC, cuj o papel principal é realizar, de forma perma-
nente e sucessiva, ciclos de instrução (que consistem cm atividades para execução de uma instrução de máqui-
na), pode füncionar de fonna:
1) seqüencial ou serial - um ciclo completo de uma instrução de cada vez;
2) pipelining - vários ciclos de instrução sendo excutados de fonna concoJTente.
A execução de fonna seqüencial é uma forma antiga e fora de uso no mercado desde os processadores de 8
biis (8080, Z-80, M6800 etc.), em face de suas inúmeras linútaçôes, pru,cipalmente de desempenho. No entanto,
por ser simples e de f.ícil compreensão foi adotada neste livro para a maioria das explicações sobre o funcio-
namento de um processador e do ciclo de execução das instruções.
A forma pipelining, também conhecida como li11ha de montagem, garante que múltiplas instruções poss.1m
ser executadas co11correnremente, reduzindo de modo considerável o tempo de completar-se cada ciclo, com
isso aumentando bastan te o desempenho dos processadores. Esta metodologia vem sendo adotada pelos pro-
cessadores desde o lançamento do Intel 8086, que possuía dois estágios, enquanto atualmente o Pentium 4
tem até 20 estágios de processamento. No Apêndice O, há um item específico sobre esta tecnologia.
A Tabela 6. t apresenta alguns dados de processadores, existentes no mercado ao longo do tempo, do Intel
4004 (primeiro nlicroprocessador) aos atuais Pentium 4, AMO Athlon K7 e PowerPC, tendo-se o mitido dados
referentes a processadores com arquitetura de 64 bits, os quais serão analisados e descritos no Cap. 12.
Ta:i;cla 6.1 CarnctorÍ!!'ticas da Processado1ms,
N ,
Ve1ocidade do
Barram ento
Ve:locidade do
Processador Tecll]o,f ogia de
InterY'alo,
Interno
Q1mntidade de
Transístores
Latgu:r<l
do BD
Largu.r<l
BE
Capa,c:idade
máxitn~ da
=-e=,
!PN1cess11,dor Modelo F.ibrka.,ç-ão Ano Sis-t - MíH ~ MH~ Fãbricaçiio ,(ink rnns.) (míllhões) (bíts) (b:íts) MP {by1~s)
.....
8000
8081, ;,;xxxx
Intel
lntd
1971
1')71-1
2MH:i:
-1,77- m
2Ml-fa
4,77-W
CMOS
NMOS.CMOS
li)
3,0
o,mmc,
0,029
8,
I<>
"~
20
MK
IM 1
8088
S02,86
XXX.XX
xxx_:,,;:,;
lnrel
lnrcl
1':.179
l':.11'>2
4,77
6- 20
-1,77
6- 20
NMOS.CMOS
CMOS
3,0
1,5
0,02!.J
0,134 16
8 20
2•1
IM
16M
;
:..
S038(, DX lnrd 1Wl5 16--fü 16 - 4(J CMOS 1,5 0,275 .32 32 4G ,::,

S:0<18() DX lnrd ]'-Jl>'J 25 - 50 25 - 50 CMOS 1,0 1,2 .32 32 4G ~


5x86 x:,oc...::,: AMD 1•n5 33 133 CMOS 0,.35 XX2'2'X .32 .32 4G
5x86M1 XXXlül C'l·rix 1'>96 .B- 50 IOO - 120 CMOS 0,6.5 2,0 .32 32 4G
Pénri\1111 PS lmd 1993 60 - 266 60 - 200 Bipol:u CMOS 0,8- 0.35 3,1 64 32 4G
Pcnrium MMX liu~l 1997 266 166 - 233 CMOS 0,35 4,5 64 32 4G
fo.:86 MI Cyrix 1995 50 - 7.5 IOO - 150 CMOS 0 ,6- 0,5 3,0 64 ]2 4G
K5 x.-.:xxx i\MD 1995 5-0 - 66 75 - l 16 CMOS 0,35 4,3 (i4 32 4G
l"emiurn l 'ro l'6 l11rd 1995 151..1 - 266 150 - 200 Dip<}I.U CMOS 0,6- U,,.15 21,C) (,4 .% 64G
Pcmimu li fotd 1997 66 233 - 333 CMOS 0,35- 0.25 7.5 M 36 64 G
K.6 li AMD 1997 66 ](;(, - 2M CMOS 0,35 - 0,25 R.S 64 32 4G
6x!!6MX M2 C~•rix 1997 Ml-75 1$0 - 1:-r7 CMOS 0,35 6,0 (;-1 32 4G
IPen.rimu Ili Intel 1999 iOll - 113 5[1(1 - 900 CMOS 0,25 - 0,18 28 (,4 3<, MG
K"l Athlon AMD l9'J') 200MHz 5{•0- 1GHz CMOS 0,18 37 6'I 32 4G
P~ntium 4 Intel 1002 XOOMHz At,ê 3.6GH2" CMOS 0,065 IOO 128 3(, 6,1 G

Tipo do Cad1e L2 1.arg)Ull'a


Tjpõ do Enc--ap!!'u.- Pinos do Cache Tipo da, (m1 p'laca- Unidade de Esmg. Regi!ltrador
Procesudoi: Modelo SoquGta lan1e1no Soqi1U?te L1 Cache L1 tnii'.e) Câlc1do ln< FPU Pipeli.ll.itlg (bits)

8080 XXXXX DTP nu• 40 Nfo lll\X:X.X Nio 1 xxxx:x xxxx 8


80M .'<XXX~)( Dll' DIP ,IO Nio X1":XXXX Nio 1 803? 2 16
801':rR xxxxxx DIP DIP 40 Nio XXXX:X.\! Nio 1 8087 2 16
80Z86 XXX.XX.\; PGA PGI\ (,I_:,. Não X,'(iox{ Não 1 80287 2 16
8<1386 DX l~GA l'GA 132 Nio XXX:X.\;X Nio 1 803S7 4 32
!{041i() DX Soq 1, 2<.i 3 PGA 168 S KB Unílic:id:i At-é 2.'56 Kll 1 1 - no chip 5 32
5x8-6 ;o:.xxx Soque-te 3 PGA l68 16 KB Unilic11d.i At~ 2.;6 Kll 1 1 - no çhip s 12
5x86Ml xx:..x:.. S-oqm:tc 3 PG A 168 ]6 .Kll Unific11d11 256KB 1 1 - no chir 5 32
Pcncium r•s Soq 4. 5 e 7 PGA 273 e 2% 16KB D-8 e 1-8 256 :i 5 12K 2 t - no chip 5 32
l>çnd\l!U MMX 5-oqm:tc- 7 PGA 296 32KB D-16 i: 1-16 256 :i 5 12K 2 1- 110 chip 6 32
6x86 MI S.Oquete 7 SPGA 296 l C,KR Unilkad~ 256 a 512K 2 1- llf,) çhip 7 32
K5 xxxx.-.: S-oq5e7 í~A 2% 24KB D-8 e 1-16 256 3 512K 5 1- no chi!) 5 32
Pc-ntium Pro f>(, Soqtiete 8 5PGA 387 16 K D-8 e 1-8 256K J IM 4 1 - no dtip 14 32
P,;-nchm1 u Slot 1 SEC 242 32KB D-l6c 1-16 512 K 5 1 - no chip 14 32
K.6 liX.-..x~-,; SoqLtete 7 SP'GA 2'X', M l<B D-32 e 1-32 2561< 11 IM 6 1 - no cl11p 6 32
6x86MX M2 Soqt1etc 7 SP'GA 2W, 64 KB U1\ific3,h 256 3 5 12K 2 1 - no chip 7 32
Pentmrn Ili Soq\tetc 3 70 FC-PGA2 370 40 Kll D-16e 1-24 512K J 2M 3 2-no d1ip IO 32
K7 tuhl.on Sim A PGA -162 64 KB D-l2c 1-32 512K J IM 3 1 - no c ilip IO 32
l'emium 4 Slot 1 FC- PGA2 47fl 2flKB D-1<,e 1- 12 Até4M 5 2 - no d1ip 20 32/64
12K uace
SU$W

Proces.sncfores I 201

EXERCÍCIOS
l) Descreva as fu nções básicas de uma U CP, indicando os seus componentes principais.
2) Quais são as funções da unidade aritmética e lógica - UAL?
3) O que é e para q ue servia o ACC'
4} Qual é o componente de um processador que determina o período de duração de cada uma de suas
atividades e controla o sincronismo entre elas?
5) Quais são as funções da unidade de controle de um processador?
6) Seria possível realizar o projeto de um processador em q ue o tamanho em bits do C I fosse diferente do
tamanho do REM' Nesse caso, qual dos dois registradores deve,ia ter maior tamanho' Por quê?
7) Considere um computador cuja MP é org-anizada com N células de l byte cada uma. As instruções
interpretadas pela UCP possuem três tamanhos diferentes: as do tipo A possuem 16 bits; as do tipo 13
têm 32 bits e as do tipo C possuem 48 bits. Considerando que o código de operação de cada uma cem
um tamanho fixo e igual a 8 bits e que os programas executados nesse processador sfo constituídos de
uma mistura dos três tipos de h1struções, imagine um processo prático para incrt:mento auromático do
C I após a execução de cada instrução de um programa.
8) Considere um processador cuj o ciclo de instrução não possua a etapa de incremento aucornático do
valor do CI. 1magine um mécodo alternativo que permita a execução do programa.
9) Qual é e onde se localiza o registrador cujo conteúdo controla a seqüêncía de processamento das ins-
truções de um programa?
10) Considerando as instn,ções a seguir, indique a quantidade de ciclos de memó1ia despendidos par:, re-
alizar seu ciclo de instrução completo {explicite a quantidade de ciclos de leitura e de escrita, quando
fo r o caso) :
ADDOp. R, <- R., + {Op.}
SUB Op. (Op.) <- Rco - (Op.)
ADD Op.1, Op.2 (Op.l} <- {Op.l) + {Op.2}
INCR R, <-R, + 1
LDA Op. R, <- (Op.)
11) Qual é o regisrrador cttjo conteúdo determina a capacidade de memória de um computador' Justifique.
12) Considere um computador com 64K células de memória, instruções de um oper:indo, tendo possibi-
lidade de ter um conjunto de 256 instruções de máquina. Considerando que cada instrução tem o ta-
manho de uma célula, que é o mesmo tamanho da palavra do sistema, qual o tamanho , em bits, do
Reg, Cl e RDM? Qual é o total de bits dessa memória?
13) Um computador cem um R .EM de 16 bits e um barramento de dados de 20 bits. Possui instruções de
um opernndo, todas do tamanho de uma célula de memória e do mesmo tamanho da palavra . .Ele foi
adquirido com apenas uma placa de 4K de 111e111ó1ia.
Pergunta-se:
a) Qual o tamanho, em bits, do ROM e C I?
b) Seria possível aumentar-se a capacidade de armazenamento dessa memória? Até quanto? Por quê?
c) Q ual a quantidade máxima de instruções de máquina que poderia existir nesse computador?
14) Um computador possui um conj unto de 128 instruções de um operando ; supondo que sua memó ria
tenha capacidade de armazenar 512 palavras e que cada instrução tenha o tamanho de uma palavra e da
célula de memória.
Pergunta-se:
a) Qual o tamanho em bits do R.EM, RDM, RI e C l'
snow

b) Qual a capacidade da memória em byte ?


c) Se se quise . e aherar o tamanho das in truções para 17 bits, mantendo inalterado o tamanho do REM,
quanms novas instruções poderian1 ser criadas?
B) Quand.o se fufa que u1111 determinado microcomputador A é mn nücro de 8 bits e qne um outro niicro
13 é de 16 bits, a que estamos nos referindo? Ao tamanho da célula de MP ou ao ta1nanho da palavra?
Qual aba e de e~ doi conceito (pala me célula)?
16) Con idere um compntador que possua u11'H1. UCP com C] de 16 bits e R.J de 38 bit . Suas instmções
têm d.oi operando do me. mo ta.manho (16 bit), além, é claro de um cód.igo de operação.
Pergurita- e:
a) Qual o cunanho da imtn.1.çio'
b) Qual o tamanho do campo do código di.: opcr.1çào'
e) Considerando que a configi.1rru;ão básica. d.c~a máquina é de 16 Kbyte de memória, até que tamanho
pode a. memória ser expandida?
17) A figura a seguir ilu tra u11a memória de 256 células em que cada célula (ou palavra) contém 16 bits.
essa figura cada. retânguJo simboliz.1 uma célnfa de memória; o número hexadecimal que está di::ntro
do retânguJo representa. o !.eu conteúdo, e o ní'unero colocado ao la.do de ca.da um indka o endereço
da célula (rerângulo).

MP
End Cont,eúdo

00 00]0
01 AOFD
02 04)00
A4 1123
AS C13ü5
A6 B2tm
FD 4ü4()
FE 21F8
F tJ-JA5

Pergunta-se:
a) Qual. a capacidade comi d~ mcmóría, cm bíts?
b) Supondo que, no início de um cido de in truçào, o conteúdo do Cl (contador de Ülstrução} eja o
hi:xadecima.l AS e que cada instrução oc-upe i.nna (mica célula (palavra), qual ei-á a in trnçào que ser,1
executada?·
c) Supondo que o cot1teí1do do R.EM (regi:mador de end.e reços de memória) renha o valor hexadecimal
FD e que mn inal de leittu:a.. eja enviado da UCP pa.ra a. memória qual d er.í ser o conteúdo do
RDM (n:gi~trado1· de dados de m~m6ria) ao final do ciclo de leitura?
18) fa:pl.ique a diferença entre um processamento . eqüenóal e um omro pipclíne.
19) on idere um proce sador que possua um CI com largura de 32 bits e tenha um conjunto de 61 ins-
tn1ções todas de tamanho fixo igual a 32 bits.; o processador é, ainda constinddo de 60 regi traidores de
dados p.ara armazenamento de valo1:es inteiros, rodo_ com 32 bit~ de largura e 20 n:gis.tradcm:·s d·· 64
bits de hugura para am azemu 1ento de valore~ em ponto flutuante.
Considere que rodas as instruções que n1anipulam opcuçô,ei matemáticas. têm um forn1ato de 2
operandos.
Pergunta- e:
SDêW

Procusarlor/!$ I 2:03

a) Qi.]al ~ o tot..'ll de bits da largura de cada can11po operando das in:stmçõe maremáticas?
b) Qunl é o valor do ~spaço de endereçamento da memória desse sistema?
e} on idenmdo as in trnções que manipt 1am com dado annazenados em regi tmdores, inch ue qua]
devc:1-á ei· a largura míni.n a do endereçamento dos regi tradores de inteiros.
20) on:sidere um pTO -e·sador que po sua um cmrjunto de 197 in5truçõe algJuma da.<; quais têm formato
de 2 operandos, com 32 bits de largura e outra.~ po_ uem form, to de 1 operando, corri 24 bits d · brbTU-
ra. xplique como de e ""r a oqr,inização de entrada e saída do decodíficador d ín truçôe de se pro-
ce ador.
21) Um deternünado proccs adoqm )U · uma ve]ocid,1.de d.e prece samento expressa como 80 MHz. Calcule
qu,11 deverá er o intervalo do ciclo d.e relógio de. 'i-3 ntáquin.i..
22) Considere um proces ado:r que possua um conjunto de instruções sobre o qual foi feito nm cxci'.lto da
mai 'mportantes na tabela ,l ~guir. este prncl.'. S3dor todos os end~r~ço possuem 16 bits e a jm;tru-
çôe: po suem m:n fonnaco i'.mi-co, mo!>tràdo a s•guir e ele po ui um conj unt-0 de 16 regjsrradore de
dados. Suponh, que em um dct!;nninado instante, corre pondente ao término da . xecuçâo de un1;1
instrução qualquer, o Cl teI ha annazenado o seguinte valor rcpresenta.d.o em hex.adccima1: C I = 2B78,
e que- o rcgistrador R[ tenha armazenado o s1::guince- V31oir cm hexadecimal: R[ = 2C4F08D9.

1 C.Op.1 R.eg_ 1 Op_ 2 I

Tabela com ui:n ,r:ixt-ra o do conjun o de instruções do processaclõr


c.op.
(base 16) Si:g]a Ass tnbly De criçiío
(JO HLT Parar
01 MOVR,Op. R r- {Op.)
01 MOVMOp.,R (Op.) +- (ll)
]O JMPR, Op. CI +- Op.
n JP R., P· -,: R >
O, cnt;io: CI .- Qp_
12 Jr R, Op. eR <
O, então: C] +- Op.
13 JP R , Op. e R ""'O, então: C] - Op.
20 ADDR,Op. (R) - (R ) + Op.
21 . UBR, Op. (R) - (R ) - Op-

Pergunta- ·:
a) Qual deverá ser a largura, em bits, do campo .Op- da in truçõe ?
b) Qual deverá ser a br-gura do campo R1.:g das instruç- e ?
e) Quant-os ace ·so à memória devem ser r aliudo para execu tar o ciclo compforn da insrrução de
C.Op. igual a 11? E para a 'mtrnção de C.Op. igual a 21?
Sn$W

Representação de Dados

7 .1 INTRODUÇÃO
Já sabe1nos que um computador funciona arravés da execução sist.emática de instruções que o orienca1n a
realizar algum tipo de operação sobre valores (numéricos, alfabéticos ou lógicos). Estes valores são generica-
mente conhecidos como dad<>S.
Quer desejemos calcular uma expressão matemática complexa, quer o objetivo seja colocar uma relação de
nomes em ordem alfabética, como também a rarefu de ace.ssar a Internet e até a manipulação do mouse, tarefas
que requerem ou não a execução de operações matemáticas, todas elas necessitam do emprego de instruções1
que ativem operações com os dados. Estes dados podem ser valores numéricos (no cálculo de expressões ma-
temáticas), valores alfubéticos (caracteres) ou ainda valores apenas binários (lógicos). De qualquer modo, tanto
as instruções quanto os dados c-scão sempre armazenados internamente sob ,.. fonna de: uma scqüência de Os e
1s, os algarismos binários. que constituem a linguagem da máquina.
Quando digitamos os va1ores dos dados, estes são convertidos internamente em um código de armazena-
memo como se fossem caracteres alfubéricos (nesse instante, eles são tratados como um texto), confon11e mos-
trado nos Caps. 6 e 1O (ver item 10.3.1 ), isto é, quando introduzimos, por exemplo, um dado cujo valor
decimal é 143, este número é digitado algarismo por algarismo, é claro, primeiro o algarismo ·1, depois o
algarismo 4 e, cm seguida, o algarismo 3. Logo, o sistema de computação segue o mesmo processo, recebendo
estes algarismos não como o número 143, 111as sim um texto com caracteres codificados segundo o código de
a1111azename11to interno utilizado (na maioria dos casos é o código ASCII - ver item 7.3 e Apêndice E).
Nesse exemplo, seriam introduzidos (digitados) os seguintes valores binários:
001 10001 (algarismo l em ASCII) 00110100 (algarismo 4) 001 1001 1 (algarismo 3)
Qualquer que tenha sido a linguagem de programação utilizada para escrever o programa, este deverá ser
convertido para um outro programa equivalente, porém em linguagem de máquina, denominado código-
objeto e, em seguida, completado através do processo de ligação, tornando-se um código executável pelo
processador (os processos de compilação, que gcra111 código-objeto e código de ligação, que dão origem a
códigos executáveis, são apresentados no Apêndice C) . A referida conversão (compilação) também inclui os
dados, que deverão ser alterados de modo a estare111 cm u111a forma apropriada para utilização pela unidade
aritmética e lógica (UAL). Em outras palavras, se o programa que vamos executar contiver um comando do
tipo:
X: = A+ B;

1Ncm: ,cxco. p:.n di~ing:uir o a.~umo. dc110111i11:1rc111os; i,111111{,'lrs qu.ando se tr:uar d<: li1lgu2!:tl~m de m.i,quina e ,,1111,111J,,J quando u·.at:.nuos de instna(ôtt em
linitu:igt<ns dl• :11ho nivd. Há P'('S,SO:IS que dl•nomm:un indmmumentc rns«ni~·<X,-s. a,mccnuudo o .11nbmo "dl.' núc111ina'" ou "ling\1~cm dç alto nfrcr·.
Sn$W

Represe11tafifo de Dados / 205

01
antes da sua execução teren1os que, de alguma forma, introduzir um valor numérico co1Tcspondente a "A e
um o utro valor para "B", de modo que esses valores sejam lidos pelo processador e somados na UAL. Para
efetivar a soma, a UAL executa, passo a passo, uma série de microoperações (um algoritmo), como, por exemplo,
verificar o sinal dos números, efetuando uma ou outra ação diferente, conforme o valor dos sinais, como será
descrito mais adiante.
No entanto, dependendo da fo1111a com que o dado foi definido no programa pelo programador (ao escre-
ver o programa em uma linguagem de alto nível), o referido algoritmo poderá ser diferente (em cada passo
serão realizadas microoperações diferentes, de acordo com o algo,;rmo realizado), embora o resultado final
seja o mesmo. Ou seja, se o progra1nador definiu o dado como um valor inteiro, eJe será representado de uma
forma diferente, por exemplo , da forma que ele seria internamente representado se o programador tivesse
definido o mes1no dado como sendo um valor fracionário. E a operação arinnética, embora sendo a mesma
(uma soma, por exemplo), te,;a sua efetivação estabelecida por algoritmos diferentes, um para o caso de soma
com nú ..neros representados sob a fonna de inteiros e o utro para o caso de uma soma com números represen-
tados sob a forma de fracionários. Por exemplo:
Se A = +5 e B = -3, e nrão, após a .:xecução do comando, teremos: X = +2.
Se, por exe111plo, A e B forem representados internamente de uma forma binária simples e direta, com 16
bits (mais adiante veremos que se trata do caso de os valores estarem sendo representados como inteiros com
sinal), teríamos para cada um:
A = +5 = 0000000000000101
D = -3 = 1000000000000011
Observação: Não vamos, por o ra, explicar o que significa o bit I mais à esquerda da va,;ável B.
E o algarismo para a UAL realizar a soma dos dois valores seria mais o u menos igual ao que mentalmente
fazemos para a mesma operação.
No entanto, poderíamos usar uma máquina calculadora que utilizasse uma outra fo1ma de representar os
1nesn1os valores (+ 5 e - 3), como, por exemplo, a notação científica matemática:
A = +0,005 X t0• 3
B = -0,003 X 10"
Observação: Para números inteiros e tào pequenos, esta forma de representação nunca é utiliz.1da. Está ser-
vindo apenas para tornar a explicação mais clara.
Nesse caso, o algoritmo que a UAL deve executar certamente será diferente, embora, no fina), os resulta-
dos sejam idênticos.
Esta diferença de formas d.: representação.: respectivos algoritmos de realização das operações matemáticas
é bastante útil, pois cada u111a tem uma aplicação onde é mais vantajosa que a outra. Cabe ao programador a
escolha da forma a ser utilizada pelo sistema, podendo ser explícita, quando ele define as variáveis e constantes
cm seu programa, o u implícita. ao deixar que o compilador faça sua própiia escolha. A seguir são apresentados
alguns exemplos de definição de va1iáveis em deternUnadas linguagens, indicando-se, cnt cada caso, o tipo de
dados correspondente, estabelecido internamente no sistema.

Exemplo 7 .1 Definição de variáveis em Pascal


Inteiros int I
String sem limite de taman ho
String com 30 caracteres
Ponto 0utuante real V
Array de 5 valores inteiros
(este não é um tipo p,;mitivo de dados)
Sn$W

206 / Represa11nrno de Dndos

Exen1plo 7 .2 Definição d1..· variáveis em C


fntciros int J
String sem limite de tamanho char *S
String com 30 caracteres char S{30}
Ponto flutuanre double V
Array de 5 valores inteiros im 1[5]
(esrc não é u m ripo primitivo de dados)

Exen,plo 7 .3 D..:finiç5o de variáveis em Visual Ba.sic


Inteiros Dim I As Integcr
String sem limire de tamanho Dim S As String
String com 30 c:u actcn:s Dim S As Srring*30
Ponto flutuante Dim V As Doublc
Array de 5 valores inteiros Dim 1 [41 As lnteger
(este não é um ripo pri mi tivo de dados)

Exemplo 7 .4 Definição de variáveis cm Ddphi


Inteiros var 1: lnteger
String sem limite de ramanho var S: String
String com 30 caracteres var S: String [30]
Ponto flutuante var V: Doubk
Array de 5 valores inteiros var 1: Array[O .. .4] of lntegcr
(este não é um tipo p,imirivo de dados)

Este capitulo trata j ustamente das diversas formas de representação de dados ("tipos de dados", cm lingua-
gens de programação) utilizadas nas linguagens e compreendidas pelo hardware dos sistemas modernos. Não
discorreremos especificamente sobre todos os possíveis tipos de dados aceitos pelas linguagens de programa-
ção, visto que grande parte ddes consiste na especificação lógica dé representação do dado e não na sua forma
pri mitiva de uso pelo h:.1rdw:.1re. Tr:.l taremos apenas dos tipos primitivos. inteligívei"' ao processador e às ins-
truções de máquina.
Um dos aspectos mais impo,tantes do processo de representação de dados cm um computador e, consc-
qiic ntcmcntc, do proj eto propriamente dito do processador se refere à quantid:,dc de alga,ismos que cada
dado deve possuir na sua representação interna, o que afetará consideravelmente o tamanho e capacidade de
inúmeros compo nentes do sistema. Por exemplo, o projetista da Intel o u da AMD ou da Motorola, ao definir
os elementos de proj eto de um novo processador, pode estabelecer que os números inteiros serão representa-
dos in ternamente com valores binários de 32 algarismos cad:.1 um (32 bits t'. o termo mais usual). Isso signifi..
cará uma série de providências correlatas. como a definição do barramento interno de dados, da quantidade
de fiação. do tamanho da Unidade Arir111ética e Lógica (ver Cap. 6) para <upo,tar operações aritméticas e
lógicas com valo res de 32 bits, e assim por diante.
Pode acontecer. por exemplo. que u111a operação aritmética de m ultiplicação rc:1lizada com valores repre-
sentados em 32 bits produza u111 resultado de valor maior que o maior número repres,mtável com 32 bits.
Nesse caso, OCOJTC o que se denomina i'Slcmrc> da representaç5o (cweiflow). o que cst;í. descrito com mais deta-
lhes mais adiante, neste capíntlo .
Assim. diferentemente de nossos cálculos usando papel e lápis, c,\jo único li111ite é o tamanho do papel
(embora possamos ,·mcndar v,\rias folhas e torná-la cnor111e). em computação precisa-se ter atenção aos
limites impostos pela quantidade máxima de bits dos v:ilores representados e dos diversos componentes da
máquina (rcgistradorcs, barr:11ncnto etc) . Tais lim ites afetam a precisão dos resultados. como veremos mais
adiante.
Sn$ W

Represc,,cnçãt> d~ Dados / 207

7 .2 TIPOS DE DADOS
Confonne podemos observar pelos exemplos mostrados anterio1111ente, quando um programador elabora
um progmma ele precisa definir para o sistema como cada dado deverá ser manipulado, isto é. de deverá
(explícita ou implicitamente) detenninar o tipo de cada dado declarado. Assim , por exemplo, a declaração
VAR. ANOS: INTEGER.;
indica para um programa compilador Pascal (ver Apêndice C sobre compiladores) que o número que foi ar-
mazc:nado na memória no endereço correspondente à variável ANOS deverá ser um valor inteiro, a ser
convertido para uma forma binária com 16 birs. Porém, se a declaração fosse do tipo:
VAR ANOS: REAL;
o valor numérico a ser armazenado em REAL teria uma forma diferente, representada em noraçào científica.
As palavras INTEGER e REAL foram, pois, imerpreradas de modo diferente, acarretando alterações sig-
nificativas. tanto no modo de organjz.ar os bits que representam um número, quanto na seqi.iência de etapas
do algoritmo de execução de uma operação al'itmética com o número.
Talvez algum leitor possa. ainda neste inst.1nte (antes de ter lido o capítulo por completo), se pergunt.1r que
formas diferentes são essas e, principalmente, que algoritmos diferentes são cssc:s para realizar a mesma operação
aritmética com os mesmos valores. s~, por exemplo. tivéssemos <.)S valores (decimais):
1249 e 3158
e descjásseinos somar ambos os valores, utilizando duas fonnas diferentes para sua representação. Nesse caso,
os passos (algoritmo) para realização da reforida operação de sorna seriam diferentes conforme a forma de re-
presentação utilizada. Senão vejamos:

Exe1nplo 7.5 Soma de 12~9 1.· 3158, rcprcs<~ntados com sua fon11a n:1tural. de valorc4- inteiros
A efetivação da soma se realiza pela soma parcial de cada alga,ismo individualmente especificado (mais o
algarismo correspondente ao "vai 1''). como fazemos na vida cotidiana, us.:mdú papel e lápis. No presente
exemplo serão quatro somas, uma para cada pareda de algarismo.

O1 1
12~9
+3158
4407

Exe1nplo 7.6 Soma de 1249 e 3158, fl'pn:.-scmados na forma matemática denominada notação científica
A efetivação da soma com os valores representados cm notação científica se realiza de acordo com as
seguintes etapas:
1) Converter cada valor para a representação cm not.1çào científica:
1249 = 0,1249 X 10" e 3158 = 0,3158 X 10"
2) Em seguida se realiza a soma propriamente dita. Neste caso, como os expoentes sfo iguais (ambos de valor
igual a + 4) e a parte fi-acionária está com as vírgulas alinhadas. ambos com 4 algarismos depois da víri,'1.1la, a
soma se realiza somente através da adição. algarismo por algarismo. dos valores fracionátios. 0.1249 e 0,3158.

O11
0.12 4 9
+ 0.3 158
0,4 ~O7
3) O resultado final será 0,4407 X 10" .
Sn$W

208 / Represtutnfiío ,le Dntlc>s

Caso os expoentes não fossem iguais, seria nccessá1io antes que eles fossen1 igualados, através de modi-
ficação (por multiplicação ou divisiio uma ou mais vezes por IOda parte fracionária de um dos números) do
valor da parte fracionária de um dos números.
Os leitores que possuem máquinas de calcular um pouco mais avançadas do que aquelas be111 si111ples que
se usam para si,nples operações aritméticas podem constatar o que acabamos de explicar e até concluir sobre
uma das razões de se usar duas for111as diferentes de representação e cálculo de um mesmo valor numérico. As
1náquinas cienríficas com cerceza se prestam bem a essa demonstração.
Consideremos, por exemplo, uma calculadora capaz de realizar cálculos mate111áricos simples ou complexos.
Como todo cquipamenco (hardware), sendo construído com partes e componentes 6sicos, possui suas linútações.
Uma delas, p.ex., é a quantidade de elementos existentes na calculadora (Leds) e usados para mostrar visual-
mente ao operador os algarismos dos números que ele estiver marúpulando (no visor ou display da máquina).
Em nossa calculadora, o visor somente permite que sejam vistos 11 algarismos, além de espaço para as vírgulas
(ou ponto cm inglês) que separam valo res e do eventual sinal negativo (o sinal + para positivos é nonnalmen-
te omitido), ou seja, o espaço do visorsó n1ostra até, no máximo, um número inteiro ou não com 11 algaris1nos.
Esta forma direta de representação é semelhante a representação de inteiros nos computadores (variável
integer) ou, como veremos adiame, representação em ponto fixo .
Por exemplo: o número 13467245901 (11 algarismos) pode ser representado na calculadora nessa forma
direta, semelhante a que usamos no papel.
Já o número 235667378911 não pode ser representado assim, pois tem 12 algarismos e não há espaço no
visor para mais un1 algarismo.
Se não usarrnos a calculadora e apenas papel, poderíamos n1anipular números com enonne e variável quan-
tidade de algarismos, que o papel permite; porém, uma máquina tem limites definidos na fabrica (isso carac-
te,iza um hardware, corno observamos no capítulo I deste livro) .
Caso desejemos efetuar operações aritméticas com valores até o linúte apresentado, o sistema embutido na
calculadora adorará o algoritmo mostrado no Exemplo 7.5, da mesma forma que faríamos se estivéssemos
apenas com papel e lápis.
No entanto, nessa calculadora é possível realizar operações arit.m6ticas cujos resultados em valor ultrapassem
os 11 algarismos previamente definidos como linúte. Nesse caso, o sistema deverá substituir a forma de
representação por outra que, usando o mesmo limite do display (do visor) de 11 algarismos, possa indicar
valores muito maiores. Este mécodo de representação (e, como será mostrado adiante também possui regras
específicas para realizar operações aritméticas) é usado há muito tempo cm matemática, com o propósito de
cxpn~ssar nl1meros muito grandes (muitos algarisn10s) ou rnuito pequenos (números menores que l); em
matemática, este método é denominado notação científica. Na co111putação, foi batizado de representação em
ponto flutuante e, naturalmente, as operações aritméticas realizadas con1 n(11neros assim representados fazem
parte do mesmo contexto e se chamam, em conjunto, de aritmética em ponto flutuante.
No exemplo de nossa calculadora, se multiplicássemos dois valores muito grandes, como
a) 12352788 e b) 35697008
embora cada valor individualmente tivesse menos que 11 algarismos e, por isso, estaria representado
normalmente, o resultado, que.! é um valor inteiro com 16 algarismos não podeiia se;:r diretamente representado
no visor da máquina. Nesse caso. o sistema interno da calculadora mosttatia o resultado na forma de notação
cientifica, assin1:
4,41 E 14 <- resultado de a * b
E que, na forma direta, ficaria assim:
440.957.562.058.304, um valor com 15 algarismos ou 4,41 * 10+1•
Daí a forma
4,41 E 14,
SU$ W

Representação de Dados I 209

sendo E indicador de q ue a seguir tem-se o valor do expoente e 14 a representação do expoeme + l 4.


Assiln , para um número n1uito grande, que consumiria rnais espaço na calculadora adotou-se uma técnica
para manipulá-lo sem aumentar espaço no visor nem internamente.
No item 7.5 serão apresentadas, em detalhe, as diversas formas de representar e manipular valores numéri-
cos em computadores.
De um 1nodo geral, as seguintes formas de dados são mais uti lizadas nos programas atuais de computador
(fon11as primitivas, entendidas pelo hardware):
dados sob forma de caracteres (tipo caractere);
• dados sob forma lógica (tipo lógico);
• dados sob forma numérica (tipo numérico).
Outras formas mais complexas são permitidas cm certas linguagens modernas (como tipo REGISTRO,
tipo ARRA Y, tipo INDEX, tipo POINTER etc.). No entanto, durante o processo de compilação, os dados
acaba111 sendo convertidos finalmente nas forn1as prilnirivas já mencionadas, para que o hardware pos.sa entcndê-
las e executá-las.
A Fig. 7.1 apresenta um quadro contendo a nomenclatura das formas primitivas mais conhecidas e dos tipos
de dados correspondentes.
Cada linguagem implementa um ou mais desses tipos pri1nirivos de dados. A linguagem ADA, por exem-
plo, utiliza INTEGER (para valores inteiros), FLOAT (para valores fracionários), CHARACTER (para sím-
bolos alfanuméricos) e BOOLEAN (para variáveis do tipo lógico). A lir1guagem Pascal denomina INTEGER,
REAL, CHAR e BOOLEAN, respectivamente. E as demais linguagens utilizam nomes semelhantes, confor-
me podemos observar nos exemplos já apresentados.

FORMA TIPOS

Caractere Caractere

Lógico Lógico

Sinal e magni tude


Ponto fixo Complemento a 1

l
{ Complemento a 2
Numérico Ponto flutuante

Decimal

Figura 7 .1 Tipos pritnitivos de dados.

7 .3 TIPO CARACTERE
A representação interna de informação em um computador é realizada através da especificação de uma
conespondência entre o sím bolo da informação e um grupo de algarismos binários (bits} . Isso porque o com-
putador, possuindo somente dois símbolos (O ou 1) para representação, requer mais de um bit para identifica,·
todos os possíveis símbolos que constituen1 as informações usadas pelo homem e que precisa m ser armazena-
das e processadas na máquina.
Como poderemos representar, com apenas dois símbolos (O e !), t0dos os caracteres alfabéticos (maiúsculos
e minúsculos), algarismos decimais. sinais de pontuação e de operações matemáticas etc ., necessáiios à elabo-