Você está na página 1de 72

ARQUITETURA E ORGANIZAO

DE COMPUTADORES
[UMA VISO GERAL]
UNIVERSIDADE DO VALE DO RIO DOS SINOS UNISINOS
Reitor
Pe. Marcelo Fernandes de Aquino, SJ
Vice-reitor
Pe. Jos Ivo Follmann, SJ
EDITORA UNISINOS
Diretor
Pe. Pedro Gilberto Gomes, SJ
Editora da Universidade do Vale do Rio dos Sinos
EDITORA UNISINOS
Av. Unisinos, 950
93022-000 So Leopoldo RS Brasil
_______________
Telef.: 51.35908239
Fax: 51.35908238
editora@unisinos.br
ARQUITETURA E ORGANIZAO
DE COMPUTADORES
[UMA VISO GERAL]
ALEXANDRA DA COSTA PINTO DE AGUIAR
EDITORA UNISINOS
2010
da autora, 2010
_______________
2010 Direitos de publicao e comercializao da
Editora da Universidade do Vale do Rio dos Sinos
EDITORA UNISINOS
Esta obra segue as normas do
Acordo Ortogrfico da Lngua Portuguesa
vigente desde 2009.
Editor
Carlos Alberto Gianotti
Acompanhamento editorial
Mateus Colombo Mendes
Reviso
Renato Deitos
Editorao
Dcio Remigius Ely
Capa
Isabel Carballo
Impresso, inverno de 2010
__________________
A reproduo, ainda que parcial, por qualquer meio, das pginas que
compem este livro, para uso no individual, mesmo para fins
didticos, sem autorizao escrita do editor, ilcita
e constitui uma contrafao danosa cultura.
Foi feito o depsito legal.
Sobre a autora:
ALEXANDRA DA COSTA PINTO DE AGUIAR. Possui mestrado em Cincia da Computao pela
Pontifcia Universidade Catlica do Rio Grande do Sul (2008) e graduao em Cincia da Compu-
tao pela Universidade de Santa Cruz do Sul (2006). Tem experincia de pesquisa com nfase em
Arquitetura de Sistemas de Computao e Sistemas Embarcados, tendo iniciado suas atividades
ainda durante a graduao. Atualmente, dedica seu tempo s atividades de pesquisa do doutora-
do, cuja atuao focada principalmente nos temas: sistemas embarcados multiprocessados e sis-
temas operacionais de tempo real.
A282 Aguiar, Alexandra da Costa Pinto de.
Arquitetura e organizao de computadores : uma vi-
so geral / Alexandra da Costa Pinto de Aguiar. So Leo-
poldo, RS : Ed. UNISINOS, 2010.
72 p. (EAD)
ISBN 978-85-7431-400-6
1. Arquitetura de computador. 2. Organizao de
computador. I. Ttulo. II. Srie.
CDD 004.22
CDU 004.2
Dados Internacionais de Catalogao na Publicao (CIP)
(Bibliotecrio Flvio Nunes, CRB 10/1298)
APRESENTAO
O presente livro tem por objetivo apresentar uma viso geral acerca
dos conceitos que envolvem a organizao e a arquitetura dos computadores
modernos, servindo de material de apoio disciplina de Arquitetura e Organi-
zao de Computadores I. Para isso, conta com uma linguagem clara e direta
que visa ajudar o aluno a compreender as propriedades bsicas e essenciais
dessa disciplina.
Entre os contedos abordados nesta publicao, pode-se destacar o
fundamento do sistema binrio a linguagem do computador. Ainda, o aluno
instigado a conhecer mais de perto como funciona a parte lgica do computa-
dor atravs das portas lgicas e seus circuitos.
Emumnvel de abstrao umpouco mais alto, observamos como esses
diversos componentes da organizao formam uma arquitetura de computa-
dores e como isso influencia a maneira pela qual voc usa um computador.
Comexemplos empolgantes e didticos, esta uma compilao dirigi-
da aos alunos do curso de Sistemas de Informao e contmas principais dire-
trizes para que obtenham sucesso em seu estudo!
ALEXANDRA DA COSTA PINTO DE AGUIAR
SUMRIO
1. INTRODUO ORGANIZAO DE COMPUTADORES ......................... 9
1.1. Histrico ................................................................................................ 9
1.2. Modelo de Von Neumann .................................................................. 10
1.3. Evoluo dos computadores .............................................................. 11
1.4. Conceitos importantes ......................................................................... 12
2. SISTEMAS NUMRICOS E O COMPUTADOR .............................................. 15
2.1. Sistemas numricos posicionais ......................................................... 15
2.2. Sistema binrio ..................................................................................... 16
2.3. Sistema hexadecimal ........................................................................... 17
2.4. Sistema octal ......................................................................................... 17
2.5. Converso entre sistemas numricos ................................................ 17
2.6. Representando informaes no computador ................................... 20
2.7. Operaes binrias bsicas ................................................................. 21
3. SISTEMAS DIGITAIS E PORTAS LGICAS ................................................... 23
3.1. Circuitos digitais .................................................................................. 23
3.2. lgebra de Boole (booleana) .............................................................. 23
3.3. Portas lgicas ........................................................................................ 24
3.4. Expresses lgicas ............................................................................... 24
3.5. Circuitos lgicos ................................................................................... 25
4. SIMPLIFICAO DE FUNES LGICAS ................................................... 27
4.1. Derivao de expresses booleanas .................................................. 27
4.2. Soma de Produtos e Produto de Somas ............................................ 27
4.3. Simplificando atravs de Mapas de Karnaugh ................................ 29
5. CIRCUITOS COMBINACIONAIS ................................................................... 33
5.1. Conceito ................................................................................................. 33
5.2. Multiplexadores/demultiplexadores ................................................. 33
5.3. Codificador/decodificador .................................................................. 34
5.4. Comparadores ...................................................................................... 34
5.5. Somadores ............................................................................................. 34
5.6. Unidade Lgica e Aritmtica ULA ................................................. 36
6. CIRCUITOS SEQUENCIAIS ............................................................................ 37
6.1. Conceito ................................................................................................. 37
6.2. Flip-flops ................................................................................................. 37
6.3. Flip-Flop tipo RS .................................................................................... 38
6.4. Flip-Flop tipo D ..................................................................................... 38
6.5. Flip-Flop tipo J-K ................................................................................... 39
6.6. Utilizao de circuitos sequenciais .................................................... 40
7. INTRODUO ARQUITETURA MIPS ....................................................... 41
7.1. Ligao entre hardware e software ....................................................... 41
7.2. Linguagem de mquina ...................................................................... 41
7.3. CISC x RISC .......................................................................................... 42
8. A ARQUITETURA MIPS E SEU ASSEMBLY ................................................... 45
8.1. Conceito ................................................................................................. 45
8.2. Registradores ........................................................................................ 46
8.3. Representao de instrues .............................................................. 47
8.4. Grupo de instrues ............................................................................ 48
8.5. Modos de endereamento ................................................................... 50
9. A ARQUITETURA MIPS MONOCICLO ......................................................... 51
9.1. Conceitos e elementos bsicos ........................................................... 51
9.2. Busca de instrues .............................................................................. 52
9.3. Execuo de instruo ......................................................................... 53
9.4. Unio dos fluxos de execuo ............................................................ 56
9.5. Sinalizao de controle ........................................................................ 57
9.6. Implementao completa .................................................................... 58
10. A ARQUITETURA MIPS MULTICICLO ....................................................... 61
10.1. Conceito bsico e breve comparao com monociclo ................... 61
10.2. Bloco operativo ................................................................................... 62
10.3. Execuo das instrues .................................................................... 65
11. DISPOSITIVOS DE SADA E PROGRAMAS: UMA INTERFACE ................. 67
11.1. Conceitos ............................................................................................. 67
11.2. Modelos de troca de dados ............................................................... 67
11.3. Mapeamento de entrada e sada ...................................................... 68
11.4. Modos de transferncia ..................................................................... 68
12. REFERNCIAS ............................................................................................... 71
ALEXANDRA DA COSTA PINTO DE AGUIAR 8
CAPTULO 1
INTRODUO ORGANIZAO
DE COMPUTADORES
____________________
Neste captulo vamos fazer umapanhado de diversos conceitos para que voc se familiarize como termo organizao
de computadores e como que ser tratado ao longo deste livro. Inicialmente, apresentamos umbreve histrico da com-
putao para contextualiz-lo das principais mudanas que ocorreram tanto no software quanto no hardware ao lon-
go dos anos. Tambm veremos o modelo de Von Neumann, tido por muitos como a principal base para a computao
atual, almde aprender sobre os diversos componentes do computador e sua relao como restante do estudo. Este
um captulo introdutrio, mas importantssimo para que voc construa a capacidade de relacionar os diversos conte-
dos que sero abordados. Portanto, no deixe de ler!
____________________
1.1 Histrico
Historicamente, os computadores tm evoludo rapidamente quando
comparados a outras reas do conhecimento. Pode-se dizer que a capacidade
do ser humano de calcular quantidades de diferentes maneiras foi um dos fa-
tores que possibilitaramo desenvolvimento tanto da matemtica quanto da l-
gica. Por exemplo, nos primrdios da matemtica os dedos das mos eram
usados para se efetuar clculos.
Desde a Antiguidade, o que se nota a constante evoluo do ser hu-
mano no que diz respeito maneira de se efetuar clculos. Na regio do Mar
Mediterrneo, por exemplo, surgiram o alfabeto e o baco. J a primeira ferra-
menta efetivamente empregada para a computao foi o baco, cuja inveno,
que ocorreu em torno de 2400 a.C., atribuda aos habitantes da antiga Meso-
potmia.
No entanto, pode-se dizer que a primeira mquina efetivamente cons-
truda, uma inveno de Wilhelm Schickard (1592-1635), era capaz de somar,
subtrair, multiplicar e dividir. Cabe ressaltar que essa mquina foi perdida du-
rante a guerra dos trinta anos, sendo que, durante muitos anos, nada se soube
sobre ela e atribua-se a Blaise Pascal (1623-1662) a construo da primeira cal-
culadora, capaz apenas de efetuar somas e subtraes.
Nos anos seguintes, pode-se dizer que o projeto de uma mquina de
calcular foi sendo aprimorado. Vale destacar que essas mquinas no so pa-
recidas com nossas atuais calculadoras. Em termos comerciais, somente em
1820 o francs natural de Paris, Charles Xavier Thomas, projetou e construiu
uma mquina capaz de efetuar as quatro operaes aritmticas bsicas: a
Arithmomet, que foi a primeira calculadora realmente comercializada com
sucesso.
No entanto, todas essas mquinas ainda estavam longe de ser um
computador de uso geral como aquele que temos emnossas casas, escritrios e
escolas, pois no eram programveis. Para entender o que um computador
programvel, vamos detalhar o que o Modelo de Von Neumann.
1.2 Modelo de Von Neumann
John von Neumann foi um matemtico naturalizado nos EUA que
contribuiu em diversas teorias, entre elas: a teoria dos conjuntos, da anlise
funcional, da mecnica quntica, na teoria dos jogos, entre muitas outras con-
tribuies na rea da Matemtica.
Para a computao, o grande legado de John von Neumann a arqui-
tetura de von Neumann, que se caracteriza pela possibilidade de uma mqui-
na digital armazenar seus programas no mesmo espao de memria que os
dados, abrindo assima possibilidade para que se manipulemtais programas.
O modelo proposto por Von Neumann contm os seguintes compo-
nentes:
1. uma memria;
2. uma unidade aritmtica e lgica (do ingls, Aritmethic and Logic
Unit ALU ou ULA);
3. uma unidade central de processamento (do ingls, Central Proces-
sor Unit CPU), composta por diversos registradores (elementos de
memria); e
4. uma Unidade de Controle, cuja funo : buscar um programa na
memria, instruo por instruo, e execut-lo sobre os dados de
entrada.
Cada um desses elementos representado na mquina real atravs de
componentes fsicos independentes, cuja implementao tem variado ao lon-
go do tempo, graas s constantes evolues na tecnologia de fabricao. Den-
tre essas podem ser citados:
rels eletromagnticos;
os tubos de vcuo (ou vlvulas); e
materiais semicondutores, que formam transistores e os circuitos
eletrnicos integrados.
Pode-se observar, no entanto, que, apesar da evoluo tecnolgica que
aconteceu, a ideia do modelo computacional permanece bastante semelhante
ao modelo proposto por Von Neumann.
Dentro da CPU, temos diversos elementos registradores, usados para
realizar clculos provenientes de instrues computacionais. Essas instrues
so armazenadas juntamente aos dados em uma memria, sendo que cabe a
uma unidade de controle ler as instrues e solicitar ULA que faa as opera-
es corretas. A figura 1 mostra um diagrama do modelo bsico de Von Neu-
mann.
ALEXANDRA DA COSTA PINTO DE AGUIAR 10
COL EO
Figura 1 Modelo de Von Neumann.
1.3 Evoluo dos computadores
Na tabela 1, pode-se acompanhar a evoluo dos computadores a par-
tir da primeira mquina computacional programvel baseada na arquitetura
proposta por Von Neumann. Classificam-se as mquinas com relao s tec-
nologias, s caractersticas do hardware, do software, definindo para cada gera-
o de mquina um exemplo.
Tabela 1 Evoluo dos computadores.
Gerao Tecnologias Caracterstica
de Hardware
Caracterstica
de Software
Exemplo
1 (1946-1954) Vlvulas, me-
mria de tu-
bos catdicos
Aritmtica de
ponto fixo
Linguagem de
mquina, lin-
guagem as-
sembly
IAS, UNIVAC
2 (1955-1964) Transistores,
ncleo de fer-
rite, discos
magnticos
Ponto flutuan-
te, registrador
ndice, proces-
sadores E/S
Linguagens
de alto nvel,
bibliotecas de
rotinas, pro-
cessamento
em lote
IBM7094.
CDC1604
3 (1965-1974) Circuitos inte-
grados (SSI e
MSI)
Microprogra-
mao, pipeli-
ne, memria
cache
Multiprogra-
mao, multi-
processamen-
to, sistema
operacional,
memria vir-
tual
IBM S/360,
DEC PDP-8
4 (1975- ?) Circuitos LSI,
memrias se-
micondutoras
Computado-
res pessoais
DOS, Win-
dows
Amdahl 470,
Intel 8748
11 INTRODUO ORGANIZAODE COMPUTADORES
1.4 Conceitos importantes
Dentre os conceitos importantes, necessrio que fique clara a diferen-
a entre organizao e arquitetura de computador.
A Arquitetura do Computador refere-se aos atributos que so visveis
para o programador. Dentre esses, podemser citados: o conjunto de instrues
ou a quantidade de bits utilizados para se representar os caracteres.
J a Organizao do Computador refere-se s unidades operacionais e
suas interconexes que implementam as especificaes da sua arquitetura.
Como exemplo, temos os sinais de controle e interrupes.
importante frisar que uma mesma arquitetura pode ser implementa-
da por mais de um tipo de organizao. Assim, a organizao varia mas man-
tm-se a interface com o programador, o que introduz o conceito de famlia de
computadores.
bastante comum, por questes de compatibilidade, que se mantenha
itens bsicos da arquitetura como o conjunto de instrues, mas que se evo-
lua em termos de organizao e tcnicas de fabricao. Como exemplo, temos
a famlia x86, da Intel, que surgiu em meados da dcada de 1980 e ainda
usada at os dias de hoje, como mostra a figura 2.
Figura 2 Famlia de processadores Intel.

ALEXANDRA DA COSTA PINTO DE AGUIAR 12


COL EO
RECAPITULANDO:
Modelo de Von Neumann, usado at os dias de hoje;
Computao em evoluo constante;
Famlia de computadores para aumentar a compatibilidade.

AUMENTANDO O CONHECIMENTO:
Captulos introdutrios das referncias.
13 INTRODUO ORGANIZAODE COMPUTADORES
COL EO
CAPTULO 2
SISTEMAS NUMRICOS E O COMPUTADOR
____________________
Apartir deste captulo voc ter a base numrica necessria para compreender at mesmo os mais complexos com-
ponentes internos de umcomputador. Vamos entender e detalhar o que so os sistemas numricos posicionais e como
eles se relacionamcomo computador. Ainda, aprenderemos a realizar converses entre os mais diversos sistemas nu-
mricos: decimal, binrio, hexadecimal e octal.
____________________
2.1 Sistemas numricos posicionais
Para iniciar os estudos, deve-se entender o que exatamente um siste-
ma numrico posicional. Comesse propsito considere os nmeros 4664 (deci-
mal) e XXXVII (37 em romanos). Agora, observe algumas das propriedades
mais importantes em ambas as ocasies:
o valor do primeiro algarismo 4 diferente do valor do ltimo alga-
rismo 4 no nmero decimal 4664. Enquanto o primeiro indica 4 mil,
o ltimo indica 4 unidades. Caso semelhante ocorre como algarismo
6: na primeira apario, o algarismo indica 6 centenas, enquanto que
o segundo indica 6 dezenas; e
no nmero romano, cada um dos X vale 10, independentemente de
sua posio, acontecendo o mesmo com o V e com o I.
A partir dessas observaes pode-se concluir que, no sistema decimal,
o valor de umdeterminado smbolo depende diretamente de sua posio, sen-
do este umsistema posicional. J no se pode dizer que o mesmo acontece com
o sistema romano que, portanto, no posicional.
Em um sistema posicional um mesmo smbolo ou algarismo pode as-
sumir valores diferentes de acordo com a sua posio. Ento, para se saber o
valor de qualquer nmero que esteja escrito em um sistema posicional, ne-
cessrio que se conhea o valor posicional de cada smbolo.
O clculo do valor de um determinado smbolo feito atravs da fr-
mula do valor posicional, que :
V = A * B
P
(1)
Onde.:
V o valor posicional do smbolo. Exemplo: o valor posicional do
smbolo 4 no nmero decimal 345 40.
A o valor absoluto do smbolo. Exemplo: o valor do smbolo 4 no
sistema decimal 4.
B a base do sistema numrico, ou seja, a quantidade de smbolos
que se tem para escrever os nmeros, sendo que no sistema decimal
tem-se um total de 10 smbolos (0 1 2 3 4 5 6 7 8 9), portanto a base
desse sistema 10.
P a posio em que o smbolo se encontra no nmero. Essa posio
definida da direita para esquerda e iniciada em zero. Exemplos:
A posio do smbolo 5 no nmero 345 0 (zero). J a posio do
smbolo 4 no nmero 345 1. E a posio do smbolo 3 no nmero
345 2.
Aps saber quanto um algarismo vale em um determinado nmero,
basta se fazer o somatrio de todos os algarismos para, ento, determinar o va-
lor total do nmero.
importante frisar que essa frmula s se aplica a nmeros que usem
um sistema numrico posicional. Sendo assim, ela no vlida para se calcu-
lar nmeros no sistema romano, por exemplo, por este no ser um sistema po-
sicional.
Exemplos do sistema decimal:
(347)
10
= 3 * 10
2
+ 4 * 10
1
+ 7 * 10
0
(32)
10
= 3 * 10
1
+ 2 * 10
0
(555)
10
= 5 * 10
2
+ 5 * 10
1
+ 5 * 10
0
(4232)
10
= 4 * 10
3
+ 2 * 10
2
+ 3 * 10
1
+ 2 * 10
0
2.2 Sistema binrio
Para ns, seres humanos, o sistema numrico decimal bastante natu-
ral: temos dez dedos nas mos e usamos dez dgitos para contar. No entanto
para o computador, esse sistema no muito prtico, j que os dados precisam
ser interpretados atravs do estado da corrente eltrica (ligada/desligada,
alta/baixa). Para resolver esse impasse, usual que mquinas digitais como o
computador usem o sistema de numerao binria, que usa apenas dois dgi-
tos: ZERO e UM em sua representao. Esses dois dgitos podem ento ser em-
pregados como correspondentes aos estados desligado e ligado dos diversos
componentes digitais.
Osistema binrio, assimcomo o decimal, umsistema posicional. Isso
significa que o valor de um dado smbolo (zero ou um) depende da sua posi-
o. Como so dois dgitos, a base deste sistema 2.
Embora o sistema binrio resolva o problema das mquinas eletrni-
cas, para ns o sistema decimal continua sendo o preferido. Ento o que fazer
para que possamos conviver harmoniosamente com os dois sistemas numri-
cos? Precisamos saber como converter nmeros de decimal para binrio e
vice-versa.
Exemplos do sistema binrio:
(11)
2
= 1 x 2
1
+ 1 x 2
0
= (3)
10
(111)
2
= 1 x 2
2
+ 1 x 2
1
+ 1 x 2
0
= (7)
10
(10111)
2
= 1 x 2
4
+ 0 x 2
3
+ 1 x 2
2
+ 1 x 2
1
+ 1 x 2
0
= (23)
10
ALEXANDRA DA COSTA PINTO DE AGUIAR 16
COL EO
2.3 Sistema hexadecimal
O sistema hexadecimal um sistema de numerao posicional que re-
presenta os nmeros em base 16, empregando, portanto, dezesseis smbolos.
Os computadores usam, normalmente, como unidade mais bsica de
memria o byte, que formado por oito bits. Comum byte possvel se repre-
sentar 2
8
= 256 valores possveis e, atravs de apenas dois dgitos do sistema
hexadecimal pode-se representar a mesma quantidade de informaes (um
byte ou oito dgitos binrios com apenas dois dgitos hexadecimais):
2
8
= 2
4
* 2
4
= 16 * 16
Como no sistema hexadecimal so necessrios dezesseis algarismos
para representar um nmero nessa base e a base decimal s possui dez, tor-
na-se necessrio recorrer s letras A, B, C, D, E, F. Sendo assim, os dezesseis d-
gitos do sistema hexadecimal so 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
Exemplos do sistema hexadecimal:
(12C)
16
= 1 x 16
2
+ 2 x 16
1
+ C x 16
0
= (300)
10
(BF)
16
= B x 16
1
+ F x 16
0
= (191)
10
(54CC)
16
= 5 x 16
3
+ 4 x 16
2
+ C x 16
1
+ C x 16
0
= (21708)
10
2.4 Sistema octal
Sistema octal um sistema posicional de numerao cuja base 8, ou
seja, utiliza oito smbolos para a representao de quantidade: 0 1 2 3 4 5 6 7.
Inicialmente, o sistema octal foi muito utilizado na computao como
uma alternativa mais compacta ao sistema binrio na programao emlingua-
gem de mquina. Embora ainda possa ser empregado, muito mais comum,
atualmente, que o sistema hexadecimal seja mais utilizado como alternativa.
Exemplos do sistema octal:
(502)
8
= 5 x 8
2
+ 0 x 8
1
+ 2 x 8
0
= (322)
10
(22)
8
= 2 x 8
1
+ 2 x 8
0
= (18)
10
(71)
8
= 7 x 8
1
+ 1 x 8
0
= (57)
10
2.5 Converso entre sistemas numricos
Entre os sistemas numricos mais utilizados na computao tem-se:
Sistema binrio
Sistema decimal
Sistema octal
Sistema hexadecimal
Cada um desses sistemas, dentro da sua faixa de valores possveis,
possui uma aplicao especfica dentro da Computao. Entre eles poss-
17 SISTEMAS NUMRICOS E OCOMPUTADOR
vel realizar converses, como de binrio para decimal, decimal-octal, octal-he-
xadecimal. A seguir, tm-se as principais converses entre os sistemas num-
ricos.
Converso de decimal para qualquer base. A tcnica consiste em di-
vidir-se sucessivamente o valor, em decimal, pelo quociente correspondente
base desejada. Aps, deve-se ler os restos emuma determinada ordem, para se
formar o nmero na base desejada.
A figura 3 mostra a converso do nmero 342
10
para o sistema binrio,
que resulta no nmero 101010110
2
.
Figura 3 Converso de decimal para outra base.
Converso de qualquer base para a decimal. Basta reescrever os n-
meros considerando a base a ser convertida elevada ao expoente da ordem
(posio do algarismo no nmero). A figura 4 traz um exemplo de converso
do nmero 10110
2
em binrio para a base decimal.
Figura 4 Converso de qualquer base para decimal.
Converso de binrio para octal. Para converter um nmero binrio
em octal, divide-se a notao binria em grupos de trs dgitos binrios cada e
substitui-se cada grupo pelo seu valor octal correspondente.
Exemplo: converter o binrio 1111100101 em octal. Inicialmente, sepa-
ramos o valor dado em grupos de trs dgitos (completando-se com zeros o
grupo mais da esquerda, se necessrio):
ALEXANDRA DA COSTA PINTO DE AGUIAR 18
COL EO
001 111 100 101
Octal: 1 7 4 5
Converso de binrio para hexadecimal. Para realizar essa converso
adota-se uma tcnica semelhante da converso de binrio para octal, porm,
muda-se o tamanho de cada grupo para quatro dgitos.
0011 1110 0101
Hexadecimal 3 E 5
Converso de octal ou hexadecimal para binrio. Cada smbolo octal
deve ser substitudo pelo conjunto de trs dgitos binrios que o representa.
Cada smbolo hexadecimal deve ser substitudo pelo conjunto de quatro bin-
rios que o representa. A seguir, podem ser observados dois exemplos de con-
verso:
Ex. 1: Converter o octal 5701 para binrio.
5 7 0 1
101 111 000 001
Ex. 2: Converter o hexadecimal C0A para binrio.
C 0 A
1100 0000 1010
Complementando, voc pode observar a tabela 2 que traz os principais
dgitos de cada sistema numrico visto at aqui.
Tabela 2 Converso bsica entre sistemas numricos
Decimal Binrio 4 Binrio 3 Hexa Octal
0 0000 000 0 0
1 0001 001 1 1
2 0010 010 2 2
3 0011 011 3 3
4 0100 100 4 4
5 0101 101 5 5
6 0110 110 6 6
7 0111 111 7 7
8 1000 8
9 1001 9
10 1010 A
19 SISTEMAS NUMRICOS E OCOMPUTADOR
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F
2.6 Representando informaes no computador
Como brevemente descrito, o computador trabalha com o sistema bi-
nrio, que emprega dois dgitos: 0 e 1 (base 2 ou binria). Assim, pode-se afir-
mar que o Bit (BInary digiT) a menor unidade de informao existente e pode
assumir dois valores: 1 bit pode ser 0 ou 1.
Devido necessidade de se representar grandezas maiores, utiliza-se
ento unidades maiores, formadas a partir de um conjunto de bits, que repre-
senta nmeros e outros smbolos, como os caracteres e os sinais de pontuao
que usamos nas linguagens escritas.
Essa unidade maior precisa ter bits suficientes para representar os sm-
bolos que possamser usados, tais como: dgitos numricos, letras maisculas e
minsculas do alfabeto, sinais de pontuao, entre outros.
Ento, utiliza-se o Byte (BinarY TErm), formado por um grupo de oito
bits, para essa funo. Cada byte armazena o equivalente a um caractere de
nossa linguagem.
Como at mesmo o byte no a grandeza mais adequada, costuma-se
empregar sufixos que determinam as quantidades de bytes envolvidas em
uma determinada operao, como pode ser visto na tabela 3.
Tabela 3 Grandezas computacionais
Byte B 8 bits 1 byte
Quilobyte (ou Kilobyte) KB 1.024 bytes 2
10
=1.024 bytes
Megabyte MB 1.024 KB 2
20
=1.048.576 bytes
Gigabyte GB 1.024 MB 2
30
=1.073.741.824 bytes
Terabyte TB 1.024 GB 2
40
=1.099.511.627.776 bytes
Nibbles e palavras. Nmeros binrios muitas vezes so divididos em
grupos de quatro bits, como vimos em BCD e hexa. Byte tem o mesmo som da
palavra mordida em ingls (bite), e nibble significa mordiscar. Assim, um
nibble = 4 bits e um byte = 8 bits. Logo, em um byte existem dois nibbles.
Bits, nibbles e bytes representamumnmero fixo de dgitos binrios. J
uma palavra umgrupo de bits que representa certa unidade de informao e
depende diretamente do tipo de processador.
Processadores mais simples e antigos utilizavampalavras de oito e de-
zesseis bits. J uma boa parte dos processadores comerciais, como os deriva-
dos da famlia x86, da Intel, utiliza palavras de 32 bits. Atualmente, existem
processadores com palavras de 64 bits.
ALEXANDRA DA COSTA PINTO DE AGUIAR 20
COL EO
2.7 Operaes binrias bsicas
Atravs da utilizao do sistema binrio, devemos ser capazes de rea-
lizar diversas operaes para que sua utilizao seja bem-sucedida. Essas ope-
raes podem ser divididas em lgicas e aritmticas.
As operaes lgicas bsicas permitidas no sistema binrio so: NOT,
AND, OR.
Na operao NOT ou negao, dada uma varivel binria A qualquer
caso ela possua valor 0, ao se aplicar a negao, temos que seu valor final 1 e
vice-versa, como pode ser visto na figura 5.
A NOT A
0 1 NOT 01010100
1 0 10101011
Figura 5 Exemplo de operao lgica NOT.
J na operao AND, so comparadas duas variveis binrias e seu re-
sultado est expresso na figura 6. Nessa operao, o resultado final s verda-
deiro (valor 1) quando ambas as variveis tiverem valor 1.
A B A AND B
0 0 0 01010100
0 1 0 AND 00110010
1 0 0 00010000
1 1 1
Figura 6 Exemplo de operao lgica AND.
Por fim, na operao OR, sempre que uma das variveis possuir o va-
lor 1, o resultado final ser 1, como pode ser visto na figura 7.
A B A OR B
0 0 0 01010100
0 1 1 OR 00110010
1 0 1 01110110
1 1 1
Figura 7 Exemplo de operao lgica OR.
Com relao s operaes aritmticas, primeiro veremos a soma. A
soma binria efetuada semelhante decimal, onde temos a figura do Vai-um
(vai da soma para a esquerda) e do Vem-Um (vindo do algarismo mais direi-
ta). Existe uma tabela verdade que mostra como fazer a soma binria, vista na
figura 8:
21 SISTEMAS NUMRICOS E OCOMPUTADOR
A + B = V1 exemplo:
0 0 0 0 01010100
0 1 1 0 + 00110010
1 0 1 0 10000110
1 1 0 1
Figura 8 Soma binria.
J a subtrao feita atravs de um truque: representamos o segundo
algarismo de forma negativa e realizamos uma soma entre eles. Se fizssemos
em decimal, estaramos realizando a operao 11 + (1) em vez de 11 1.
Para representao de nmeros negativos em binrios iremos adotar a
representao de complemento de 2. Para isso, iremos aplicar o operador NOT
em um nmero e somar a este mais 1, como pode ser visto na figura 9.
1. Fazer-se o complemento de 1,
2. Soma-se um (1) ao resultado anterior.
+5 = 0101
5' = 1010
+1
5'' = 1011 = 5
Figura 9 Complemento de 2.

RESUMINDO:
Sistema binrio e sua importncia para a computao;
Como representar nmeros no sistema binrio;
Relao entre o sistema binrio e o hexadecimal, principalmente;
Como representar e converter informaes entre os diversos sistemas numricos;
Como feita a representao das informaes no computador;
Operaes binrias lgicas e aritmticas.

AUMENTANDO O CONHECIMENTO:
Captulos que tratemda representao da informao, sistemas binrios e converso entre sis-
temas, nas referncias.
ALEXANDRA DA COSTA PINTO DE AGUIAR 22
COL EO
CAPTULO 3
SISTEMAS DIGITAIS E PORTAS LGICAS
____________________
Neste captulo iremos aprender um pouco mais sobre as funes lgicas bsicas que regem os sistemas digitais.
Entre essas funes temos as mais simples operaes: AND, OR, XOR, NOT, entre outras. Ainda vamos ver como a
partir dessas simples funes podem ser desenvolvidos complexos circuitos que formam os sistemas digitais atuais.
Iremos, ainda, detalhar sobre o que so os sistemas digitais e como eles esto cada vez mais presentes em todos os
lugares.
____________________
3.1 Circuitos digitais
Circuitos digitais so circuitos eletrnicos que baseiamo seu funciona-
mento na lgica binria, em que toda a informao guardada e processada
sob a forma dos dgitos zero (0) e um (1).
Como dito anteriormente, essa representao deriva da utilizao de
dois nveis discretos de tenso eltrica, frequentemente representados por L e
H (do ingls low baixo e high alto , respectivamente).
Entre os sistemas atuais baseados em circuitos digitais, tem-se vrios
exemplos, entre eles: computadores, celulares, leitores de DVD, entre outros.
3.2 lgebra de Boole (booleana)
So estruturas algbricas que capturam a essncia das operaes
lgicas E, OU e NO, bem como das operaes da teoria de conjuntos soma,
produto e complemento. Ela tambm o fundamento da matemtica compu-
tacional, baseada em nmeros binrios.
O nome derivado de seu criador, George Boole, matemtico ingls,
que foi o primeiro a defini-las como parte de um sistema de lgica emmeados
do sculo XIX.
Os operadores da lgebra booleana podemser representados de vrias
formas. frequente serem simplesmente escritos como E, OU ou NO (so
mais comuns os seus equivalentes em ingls: AND, OR e NOT).
Ainda, na lgebra de Boole as variveis possuem valores VERDADEI-
ROS ou FALSOS. Esse um dos motivos pelos quais facilmente aplicada aos
sistemas que se apoiam no sistema binrio, como os computadores.
3.3 Portas lgicas
Portas lgicas ou circuitos lgicos so dispositivos que operam um ou
mais sinais lgicos de entrada para produzir uma e somente uma sada, de-
pendente da funo implementada no circuito.
So geralmente usadas em circuitos eletrnicos, por causa das situa-
es que os sinais deste tipo de circuito podem apresentar: presena de sinal,
ou 1; e ausncia de sinal, ou 0.
As situaes Verdadeira e Falsa so estudadas na lgebra de Boo-
le e do origem ao nome dessas portas. O comportamento das portas lgicas
conhecido pela tabela verdade que apresenta os estados lgicos das entradas e
das sadas. A seguir, na figura 10, so diversas portas lgicas.
Figura 10 Portas lgicas.
3.4 Expresses lgicas
As diversas portas lgicas podem ser agregadas formando expres-
ses, assim como expresses matemticas. Quando, em uma mesma equao
booleana, aparecem operaes E e OU, necessrio seguir a ordem de prece-
dncia.
Tal como na lgebra dos nmeros reais, a multiplicao (lgica, AND)
tem precedncia sobre a adio (lgica, OR). Alm disso, expresses entre
parntesis tm precedncia sobre operadores E e OU que estejam no mesmo
nvel.
Caso a negao (NOT) seja aplicada sobre uma subexpresso inteira,
necessrio que se avalie primeiramente a subexpresso para, s aps, inverter
o seu resultado.
Com relao precedncia das operaes, temos:
(0) parnteses
(1) Negao
(2) E
(3) Ou, Ou-exclusivo
Por exemplo, temos a expresso ou equao booleana X + Y . Z. Para
resolv-la, montamos a tabela verdade correspondente:
ALEXANDRA DA COSTA PINTO DE AGUIAR 24
COL EO
X Y Z Z' Y . Z' X + Y . Z'
0 0 0 1 0 0
0 0 1 0 0 0
0 1 0 1 1 1
0 1 1 0 0 0
1 0 0 1 0 1
1 0 1 0 0 1
1 1 0 1 1 1
1 1 1 0 0 1
3.5 Circuitos lgicos
Dada uma equao booleana qualquer, possvel desenhar-se o circui-
to lgico que a implementa. Os passos a serem seguidos para se realizar o de-
senho do circuito lgico a partir de uma equao so praticamente os mesmos
usados na avaliao da expresso:
identificamos as variveis independentes
Para cada uma destas, traamos uma linha (da esquerda para a di-
reita), representando os fios que conduzem os valores.
deve-se seguir desenhando as portas necessrias para representar
cada uma das subexpresses,
Como exemplo, observe na figura 11 circuito resultante da tabela ver-
dade da equao X + Y . Z, da seo anterior.
Figura 11 Circuito de equao booleana.

RESUMINDO:
Conceitos sobre sistemas e circuitos digitais;
lgebra booleana;
Portas lgicas e ligao com a lgebra booleana;
Circuitos a partir de portas lgicas.

25 SISTEMAS DIGITAIS E PORTAS LGICAS


AUMENTANDO O CONHECIMENTO:
Captulos que tratem sobre lgebra booleana e circuitos, nas referncias.
ALEXANDRA DA COSTA PINTO DE AGUIAR 26
COL EO
CAPTULO 4
SIMPLIFICAO DE FUNES LGICAS
____________________
Aps entender como so formadas as expresses booleanas e como elas so representadas nos computadores atra-
vs dos circuitos digitais, vamos ver neste captulo como simplific-las. Ainda no nvel de expresses, iremos criar ex-
presses menores que consigam, no entanto, representar a mesma informao. Isso fundamental nos computadores
atuais, j que, normalmente, quanto menor um circuito, menor seu consumo de energia.
____________________
4.1 Derivao de expresses booleanas
Dada uma funo ou expresso booleana, descrita por sua tabela ver-
dade, realizar sua derivao encontrar uma equao que a descreva. Logo,
pode-se afirmar que a derivao de expresses booleanas o problema inver-
so da avaliao de uma expresso booleana (aquele onde realizamos as opera-
es de acordo com as precedncias e obtemos a resposta final).
Basicamente, existem duas maneiras de se descrever uma funo boo-
leana:
descrevendo-se todas as situaes das variveis de entrada para as
quais a funo vale 1, ou;
todas as situaes onde a funo tem valor lgico 0.
O primeiro mtodo conhecido por Soma de Produtos (SdP), enquan-
to que o segundo chamado Produto de Somas (PdS).
importante destacar que, dada uma tabela verdade que represente
uma dada funo, qualquer funo booleana pode, ento, ser descrita por
meio de soma de produtos ou por meio de produto de somas.
Como as funes booleanas s podem assumir um dentre dois valores
(0 ou 1), basta se usar um dos dois mtodos para que se encontre uma equao
que represente uma determinada funo.
4.2 Soma de Produtos e Produto de Somas
Dada uma funo booleana de n entradas, so possveis 2
n
combina-
es de valores. Dizemos que esse conjunto de valores, os quais as variveis
podemassumir, juntamente com os respectivos valores da funo, constituem
o espao da funo.
A cada combinao de entradas podemos associar um termo produto
ou mintermo, no qual todas as variveis da funo esto presentes, e que
construdo da seguinte forma:
Caso a varivel correspondente possua valor 0, ela deve aparecer ne-
gada; caso contrrio, a varivel vale 1 e ela deve aparecer no nega-
da.
Atabela 4 lista os termos produto associados a cada combinao de en-
tradas para uma funo booleana de trs variveis (A, B e C, por exemplo).
Tabela 4 Simplificao com mintermos
A B C mintermo
0 0 0 A B C . .
0 0 1 A B C . .
0 1 0 A B C . .
0 1 1 A B C . .
1 0 0 A B C . .
1 0 1 A B C . .
1 1 0 A B C . .
1 1 1 A B C . .
Dessa forma, se quisermos encontrar a equao para uma funo a
partir de sua tabela verdade, basta montarmos uma funo OU entre os vrios
mintermos associados s sadas com valor 1 da funo. Por exemplo, na tabela
5, temos as variveis A, B e C e a funo resultante, F, a qual no sabemos que
expresso gera este resultado.
Tabela 5 Tabela verdade de uma funo desconhecida
A B C F
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 0
Podemos ver que, respectivamente, A, B e C possuem os seguintes va-
lores quando a funo F verdadeira (possui valor 1): (0,1,0), (0,1,1), (1,0,1) e
(1,1,0). Assim, podemos representar essa equao em uma soma de produtos,
da seguinte forma:
F A B C A B C A B C AB C = + + +
ALEXANDRA DA COSTA PINTO DE AGUIAR 28
COL EO
Raciocnio semelhante usado para gerar uma expresso atravs do
Produto de Somas. Nesse caso, deve-se avaliar as variveis da seguinte forma:
Caso a varivel correspondente possua valor 1, ela deve aparecer
negada;
Caso contrrio, se valer 0, deve aparecer no negada.
No entanto, para formar o produto de somas, iremos procurar pelos
resultados que valem 0 (zero) na tabela verdade da funo.
Os termos formados a partir da avaliao das linhas zero so formadas
por portas lgicas ORe possuema denominao de maxtermos. Atabela 6 lista
os termos soma (maxtermos) associados a cada combinao de entradas para
uma funo booleana de trs variveis (A, B e C, por exemplo).
Tabela 6 Simplificao atravs de maxtermos
A B C maxtermos
0 0 0 A + B + C
0 0 1 A + B + C
0 1 0 A + B + C
0 1 1 A + B + C
1 0 0 A + B + C
1 0 1 A + B + C
1 1 0 A + B + C
1 1 1 A + B + C
Observando ento a mesma funo F da tabela 5. Nesse caso, os valo-
res das variveis de entrada (A,B,C) para os quais F=0 so (0,0,0), (0,0,1), (1,0,0)
e (1,1,1), respectivamente. Assim, os maxtermos associados so:
F = (A + B + C) (A + B + C) (A + B + C) (A + B + C)
4.3 Simplificando atravs de Mapas de Karnaugh
Aps vermos como derivar expresses mesmo de tabelas verdade que
nada indiquem sobre sua origem, observamos agora como simplificar essas
funes. Asimplificao torna os circuitos menores, commenos portas lgicas
e, portanto, mais eficazes tantos em termos de desempenho quanto emtermos
de consumo de energia.
O Mapa de Karnaugh um diagrama utilizado na minimizao de
funes booleanas. O prprio nome mapa vem do fato dele ser um mapea-
mento a partir de uma tabela-verdade. O mapa temuma montagemespecfica
dependendo do nmero de variveis. Independentemente para quantas vari-
veis se monta o mapa, sempre iremos procurar pelos nmeros 1s adjacentes
para realizar a simplificao.
Mapa de Karnaugh (MK) duas variveis. No mapa, so usadas re-
presentaes para as duas variveis presentes no circuito e para todas as possi-
bilidades de combinao. Assim, o mapa sempre possui 2
n
quadrinhos,
29 SIMPLIFICAODE FUNES LGICAS
onde n o nmero de variveis. Nesses quadrinhos preenchemos os resulta-
dos da funo de acordo com sua tabela verdade.
Por exemplo, a funo F = (AB) + AB:
A B F
0 0 0
0 1 0
1 0 1
1 1 1
Pode ser representada pelo seguinte MK:
No Mapa de Karnaugh, os dois quadrinhos contguos, contendo o va-
lor lgico 1 cada, indicam que:
Avarivel Ano muda de valor lgico nos dois quadrculos conten-
do o valor lgico 1 da funo F (1 acima da tabela). Logo, mantenha
a varivel A.
A varivel B muda de valor lgico nos dois quadrculos contendo o
valor lgico 1 da funo F (0 e 1 esquerda da tabela). Por isso, eli-
mine a varivel B.
No nosso exemplo, a funo minimizada equivalente a F = A, j que
das duas variveis, somente a varivel Ano muda de valor lgico nos quadr-
culos contguos.
Mapa de Karnaugh (MK) trs variveis. O raciocnio o mesmo. Po-
rm, temos de representar agora oito quadrinhos. Observe que as extremida-
des laterais DEVEM ser consideradas como valores contguos e que, somente
podemser agrupadas quantidades de nmeros 1 nas potncias de 2: 2
0
=1, 2
1
=2,
2
2
=4, 2
3
=8, etc. Assim, se voc encontrar trs nmeros 1s adjacentes, deve for-
mar dois agrupamentos, cada um, contendo dois nmeros 1.
Observe ainda que tambm podemos preencher o MK baseado em
uma simplificao ocorrida atravs de Produto de Somas, como mostra a figu-
ra 12.
ALEXANDRA DA COSTA PINTO DE AGUIAR 30
COL EO
Figura 12 Mapa de Karnaugh para trs variveis.
Nesse caso, a expresso resultante, simplificada F = A + B'C'
Mapa de Karnaugh (MK) quatro variveis. Novamente, mantemos
o raciocnio das simplificaes anteriores e as mesmas regras. Porm, como
agora teremos dezesseis quadrinhos, os 1s considerados adjacentes podem,
tambm, aparecer entre as linhas superior e inferior, alm dos quatro cantos
do mapa, como pode ser visto na figura 13.
Figura 13 Mapa de Karnaugh para quatro variveis.
Para a montagem do mapa, tanto faz se representar as variveis como
0 e 1 ou como seus valores lgicos, como no exemplo anterior. A nica regra
que somente uma das variveis mude por vez. Por exemplo: aps 00 deve vir
ou 10 ou 01. Jamais podemos alterar as duas variveis, saindo de 00 para 11.

RESUMINDO:
Derivao de expresses booleanas atravs de seu valor na tabela verdade;
Soma de Produto e Produto de Somas para representar uma funo;
Utilizando Mapas de Karnaugh para simplificar as funes.
31 SIMPLIFICAODE FUNES LGICAS
AUMENTANDO O CONHECIMENTO:
Captulos que tratem de funes lgicas booleanas e simplificao de funes atravs de ma-
pas de Karnaugh, nas referncias.
ALEXANDRA DA COSTA PINTO DE AGUIAR 32
COL EO
CAPTULO 5
CIRCUITOS COMBINACIONAIS
____________________
No captulo anterior vimos que a partir de expresses algbricas possvel montar circuitos lgicos. J neste captulo
veremos que esses circuitos podem ser divididos em combinacionais e sequenciais. Vamos ver que ambos so funda-
mentais na criao dos computadores, mas iniciamos nossos estudos pelos circuitos combinacionais.
____________________
5.1 Conceito
Nos circuitos combinacionais, a sua principal caracterstica que sua
sada depende somente dos valores colocados na entrada. Nesse sentido,
possvel afirmar que, aps alimentar o circuito com alguma entrada, no meio
do circuito um processamento definido pela funo que ele implementa
realizado. No restante do captulo, iremos aprender a funcionalidade de al-
guns circuitos combinacionais em especial.
5.2 Multiplexadores/demultiplexadores
Os multiplexadores possuem a funcionalidade de direcionar uma en-
tre n entradas diretamente para a sada. Assim, este circuito possui 2
n
linhas de
entrada, n linhas de controle e 1 sada. A funcionalidade do circuito selecio-
nar uma nica sada a partir de vrias entradas, sendo ento que a entrada es-
colhida direcionada para a sada.
Afigura 14 mostra a tabela verdade de ummultiplexador (canto supe-
rior esquerda), umsmbolo pelo qual o circuito pode ser representado (canto
inferior esquerda) e o circuito que implementa a funcionalidade do multiple-
xador (lado direito da figura).
Figura 14 Circuito combinacional, multiplexador.
J o demultiplexador, possui funcionalidade contrria ao multiplexa-
dor, ou seja, dada uma nica entrada, redireciona-a para uma das sadas sele-
cionadas.
5.3 Codificador/decodificador
Esses so circuitos que convertem informaes de uma codificao
para outra. Assim, uma das maiores aplicaes dos codificadores/decodifica-
dores est na converso de informaes de um cdigo para o acionamento de
displays, de forma que algarismos ou letras codificadas digitalmente sejam
mais compreensveis aos usurios. Um dos exemplos o codificador para dis-
play de sete segmentos.
5.4 Comparadores
Esses circuitos tm a funcionalidade de comparar duas entradas. Para
isso, baseia-se na porta lgica XNOR, que produz 0 caso as entradas sejam
iguais e 1 caso elas sejam diferentes.
5.5 Somadores
Esse considerado um dos circuitos lgicos mais importantes de um
computador, pois responsvel por realizar a operao da soma binria. Para
isso, so usadas duas variveis A e B, e tm-se duas sadas: Soma e Vai um. A
implementao do circuito vem da anlise da tabela verdade do somador.
Com isso tem-se que uma porta AND representa a coluna do Vai um e uma
porta XOR representa a coluna da Soma, como pode ser visto na figura 15.
ALEXANDRA DA COSTA PINTO DE AGUIAR 34
COL EO
Figura 15 Meio somador.
importante destacar que esse circuito considerado um meio soma-
dor. Isso porque ele no considera o vai um que veio do dgito da direita,
como pode ser visto na figura 16.
Figura 16 Vai um e Vem um na soma binria.
Para que se possa fazer a soma total, precisamos de um somador com-
pleto que utiliza na sua base dois meio somadores. Observe a tabela verdade
do somador completo: alm das variveis de entrada A e B, considera-se tam-
bm o vem-um (que equivalente ao vai-um do dgito mais direita).
A figura 17 mostra como funciona a tabela verdade do somador com-
pleto e um circuito que o descreve.
Figura 17 Somador completo.
35 CIRCUITOS COMBINACIONAIS
Observe que o somador completo capaz de somar dois bits conside-
rando um dgito vindo da direita (Vai um da soma anterior). Porm, para que
possamos somar mais do que dois bits, precisamos encadear vrios somadores
completos.
Assim, o Vai-um de um vira Vem-um do prximo, como pode ser visto
na figura 18:
Figura 18 Somador de quatro bits.
5.6 Unidade Lgica e Aritmtica ULA
Esta a unidade responsvel pelas operaes aritmticas e lgicas exe-
cutadas pelo computador. Dentre essas operaes pode-se ter adio, subtra-
o, operaes lgicas (E, OU, XOR, INVERSO), entre outras.
Observe, no entanto, que cabe ao projetista definir as operaes reali-
zadas pela ULA. Ainda, os dados so fornecidos ULAatravs de registradores,
que so elementos de processamento e, uma vez processados, so armazena-
dos novamente em registradores.
Os registradores so interligados ULA por meio de sinais eltricos. J
a Unidade de Controle fornece sinais para controlar a operao da ULA e a
transferncia de dados entre a ULA e os registradores. Observe que este mode-
lo de computao baseado na arquitetura de Von Neumann.

RESUMINDO:
Neste captulo foi possvel aprender sobre o funcionamento de circuitos combinacionais e ob-
servamos diversos tipos deles. Dentre os mais importantes, esto os multiplexadores e a ULA.

AUMENTANDO O CONHECIMENTO:
Captulos que tratem de circuitos combinacionais, nas referncias.
ALEXANDRA DA COSTA PINTO DE AGUIAR 36
COL EO
CAPTULO 6
CIRCUITOS SEQUENCIAIS
____________________
Os circuitos vistos no captulo anterior so caracterizados por apenas realizarem um determinado processamento,
sendo conhecidos como combinacionais. Neste captulo, vamos estudar os circuitos sequenciais, cuja principal carac-
terstica permitir que uma sada seja determinada no s pela entrada atual, mas tambm pela sada anterior. Para
isso, devemos ter os elementos bsicos de memria, ou flip-flops, que sero detalhados nas prximas sees.
____________________
6.1 Conceito
Como vimos anteriormente, os circuitos combinacionais so aqueles
nos quais os valores da sada dependem unicamente daqueles. No entanto, os
computadores digitais tambm apresentam circuitos que no dependem ex-
clusivamente das entradas, mas tambm dos valores de sada do prprio cir-
cuito.
Isso acontece porque na formao desses circuitos, ditos sequenciais,
existem elementos de memria capazes de armazenar um bit de informao.
Tipicamente, os circuitos sequenciais so empregados como controladores de
circuitos combinacionais, sendo que sua utilizao, normalmente, se d em
conjunto.
Os elementos capazes de armazenar um bit de informao so conhe-
cidos como flip-flops, elementos que, em geral, necessitam de sincronizao
dos acontecimentos.
Isso significa que precisamos dizer o momento em que um determina-
do circuito sequencial deve mudar de estado, ou em que momento as sadas
iro mudar de valor. Este momento bem determinado e deve ser o mesmo
para todo o circuito, utilizando-se como base o relgio de um sistema digital,
que justamente aquele que desempenha a sincronizao, sendo que comum
que todos os dispositivos obedeam ao mesmo relgio (do ingls, clock).
6.2 Flip-flops
Os elementos de memria utilizados nos circuitos sequenciais so de-
nominados FLIP-FLOPs FF. Os FF so dispositivos de armazenagem binria
capazes de armazenar um bit de informao.
O FF um dispositivo que apresenta dois estados estveis que chama-
remos de estado 0 e estado 1. O FF responde a entradas. Sendo assim, se uma
entrada faz com que ele v para o estado 1, ele permanecer neste estado 1 at
que uma nova combinao de entradas o faa mudar para o estado 0. Da mes-
ma forma, uma vez que esteja no estado 0, ele permanecer neste estado at
que uma nova combinao de entradas o faa modificar para o estado 1.
Adicionalmente, possvel afirmar que esta capacidade de manter o
estado atual estvel que faz do FF o elemento bsico de armazenamento dos
computadores digitais.
Ainda, uma das regras bsicas dos FF que sempre apresentam duas
sadas, sendo que uma o complemento da outra. importante destacar que
existem diversos tipos de FF. Seus diferentes tipos decorrem das maneiras pe-
las quais a informao entra no FF bemcomo a maneira pela qual afetama mu-
dana de estado do FF.
6.3 Flip-flop tipo RS
Esse tipo de flip-flop tem seu nome derivado das primeiras letras das
duas entradas possveis que especificam a ao que as entradas executam so-
bre as sadas. Ou seja, o FF-RS depende da habilitao de suas entradas por um
sinal de relgio para que estas possam alterar o estado do FF.
Oflip-flop set/reset ativa (set, muda sua sada para o nvel lgico 1, ou
retm se este j estiver em 1) se a entrada S (set) estiver em 1 e a entrada R
(reset) estiver em 0 quando o relgio for mudado.
O flip-flop desativa (reset, muda sua sada para o nvel lgico 0, ou a
mantm se esta j estiver em 0) se a entrada R (reset) estiver em 1 e a entrada
S (set) estiver em 0 quando o clock estiver habilitado. Se ambas as entradas
estiverem em 0 quando o clock for mudado, a sada no se modifica. Se, entre-
tanto, ambas as entradas estiverem em 1 quando o clock estiver habilitado,
nenhum comportamento particular garantido. Isso comumente escrito na
forma de uma tabela verdade, exibida na figura 19.
Figura 19 Flip-flop tipo RS.
6.4 Flip-flop tipo D
O flip-flop D (data ou dado, pois armazena o bit de entrada) possui
uma entrada, que ligada diretamente sada quando o clock mudado. Inde-
pendentemente do valor atual da sada, ele ir assumir o valor 1 se D= 1 quan-
do o clock for mudado ou o valor 0 se D = 0 quando o clock for mudado.
ALEXANDRA DA COSTA PINTO DE AGUIAR 38
COL EO
Este flip-flop pode ser interpretado como uma linha de atraso primiti-
va, visto que a informao colocada na sada umciclo depois de ela ter chega-
do na entrada.
Sendo assim, pode-se afirmar que a sada Q segue a entrada D, como
mostra sua tabela verdade, exposta na figura 20.
D Q
t
Q
t+ 1
0
0
1
1
0
1
0
1
0
0
1
1
Figura 20 Tabela verdade do Flip-flop tipo D.
O flip-flop pode ser utilizado, ento, para armazenar um bit de infor-
mao. Ainformao armazenada emumconjunto de flip-flops pode represen-
tar o estado de um sequenciador, o valor de um contador, um caractere ASCII
em uma memria de um computador ou qualquer outra parte de uma infor-
mao.
Um uso a construo de mquinas de estado finito a partir da lgica
eletrnica. O flip-flop lembra o estado anterior de mquina, e a lgica digital
utiliza este estado para calcular o prximo estado.
6.5 Flip-flop tipo J-K
O flip-flop J-K aprimora o funcionamento do flip-flop R-S interpretando
a condio S = R = 1 como um comando de inverso. Especificamente, a com-
binao J = 1, K = 0 um comando para ativar (set) a sada do flip-flop; a combi-
nao J = 0, K = 1 um comando para desativar (reset) a sada do flip-flop; e a
combinao J = K= 1 umcomando para inverter o flip-flop, trocando o sinal de
sada pelo seu complemento.
A tabela verdade do FF-JK est apresentada a seguir, na figura 21.
J K Q
t
Q
t+ 1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
Figura 21 Tabela verdade do flip-flop JK.
39 CIRCUITOS SEQUENCIAIS
6.6 Utilizao de circuitos sequenciais
Como voc pode observar, vrias so as formas de se implementar um
circuito sequencial na computao. Agora, veremos o principal uso deles e
da sua capacidade de armazenar informaes na implementao das mqui-
nas de estados finitos.
Uma mquina de estados finitos ou Autmato Finito uma modela-
gem de um comportamento, composto por estados, transies e aes. Um es-
tado, representado por umFF tipicamente tipo D, armazena informaes sobre
o passado, isso , ele reflete as mudanas desde a entrada num estado, no in-
cio do sistema, at o momento presente.
Uma transio indica uma mudana de estado e descrita por uma
condio que precisa ser realizada para que a transio ocorra. Uma ao a
descrio de uma atividade que deve ser realizada numdeterminado momen-
to. Dentre os diversos tipos de ao, podemos destacar:
Ao de entrada (no estado): executa a ao quando entra no estado;
Ao de sada: executa a ao quando sai do estado;
Ao da entrada: executa a ao dependendo do estado presente ou
das condies da entrada;
Ao de transio: executa a ao quando ocorre uma determinada
transio.
Mquinas de estados finitos podem ser representadas por meio de um
diagrama de estados (ou diagrama de transio de estados). Diversas tabelas
de transio de estados so usadas. Atravs do uso das tabelas podemos repre-
sentar uma de mquina finita de estados que contenha informaes completas
sobre as aes.
Essas tabelas so conhecidas como tabelas de estados e podem ser im-
plementadas assimcomo as tabelas verdade atravs de circuitos. A diferena
principal que a tabela verdade expressa atravs de umcircuito combinacio-
nal, enquanto que a tabela de estados representada atravs de umcircuito se-
quencial.

RESUMINDO:
Neste captulo estudamos os diversos tipos de FFs, elementos que so responsveis por ar-
mazenar um bit de informao, e com isso nos ajudam a implementar os circuitos sequenciais,
cujas sadas dependem tambm das sadas anteriores tais como as mquinas de estados
finitos.

AUMENTANDO O CONHECIMENTO:
Captulos que tratem de circuitos sequenciais, nas referncias.
ALEXANDRA DA COSTA PINTO DE AGUIAR 40
COL EO
CAPTULO 7
INTRODUO ARQUITETURA MIPS
____________________
Nos captulos anteriores estvamos trabalhando sobre o hardware. A partir deste captulo iremos estudar questes
relativas ao software. Para isso, vamos detalhar uma arquitetura em especfico: a arquitetura MIPS. Essa arquitetura
bastante didtica e existe muito material disponvel na rede sobre ela. Alm de ser didtica tambm utilizada es-
pecialmente em sistemas embarcados, como celulares e dispositivos de entretenimento, como DVD.
____________________
7.1 Ligao entre hardware e software
At agora, estvamos trabalhando diretamente sobre o hardware e no
nos preocupvamos com o que exatamente esse hardware formava ou com o
que era executado nele. No entanto, agora, devemos elevar um pouco o nosso
nvel de abstrao para entendermos a linguagem que comanda o hardware: a
linguagem de montagem ou assembly.
importante destacar que todos aqueles circuitos estudados, como
multiplexadores, ULAs e mquinas de estados so elementos bsicos e podem
ser colocados juntos com o intuito de formar um determinado processador.
Nesse sentido, o processador composto por duas partes distintas:
uma parte de controle e uma outra, em que a execuo propriamente dita
realizada.
Lembre-se de que os computadores atuais, na sua esmagadora maio-
ria, so baseados em um modelo bastante antigo, o modelo de Von Neumann,
abordado em captulos anteriores deste documento.
Este modelo prev que instrues que descrevem um determinado
programa ou uma funcionalidade sejam armazenadas em uma memria e,
ento, sejam executadas, uma a uma, pela parte operativa do processador (ti-
picamente composto por pelo menos uma ULA) controladas pelo controle do
processador.
7.2 Linguagem de mquina
Aoperao de uma CPU determinada pelas instrues que ela execu-
ta, conhecidas como instrues de mquina ou instrues do computador.
Essas instrues so definidas pelo conjunto de instrues que uma determi-
nada mquina suporta. Quemdefine isso, via de regra, o prprio projetista.
No entanto, comum, por questes de compatibilidade entre geraes
diferentes de hardware, que a linguagem de mquina permanea a mesma, ou
seja, para os programadores de software e compiladores no existe diferena
entre umIntel 286, um486 ou umPentiumIV! J do ponto de vista do hardware
(no somente de implementao, mas tambm de fabricao) cada um desses
processadores representa um incrvel avano tecnolgico e de desempenho.
Ento, a coleo de diferentes instrues, as quais a CPU capaz de
executar, conhecida com conjunto de instrues da CPU ou ISA, do ingls,
Instruction Set Architecture.
Cada instruo de umdeterminado ISAdeve conter toda a informao
necessria para que a CPUpossa execut-la. Isso significa que, para o hardware,
somente as informaes contidas na instruo devem ser suficientes para que
todas as unidades do processador sejam devidamente programadas.
Entre essas informaes, podemos citar:
Cdigo de operao especifica a operao a ser efetuada;
Referncia a operando fonte, operandos que constituem dados de
entrada para a operao e referncia a operando de destino;
Endereo da prxima instruo, endereo onde a CPUdever buscar
a prxima instruo (normalmente est em um registrador especfi-
co, o program counter (contador de programa PC).
Na maioria dos casos, a prxima instruo a que segue imediatamen-
te instruo corrente. Porm, instrues que derivam de saltos condicionais e
incondicionais podem no obedecer a essa premissa. Nesse caso, quando ne-
cessrio, a instruo deve fornecer um endereo de memria principal ou vir-
tual para o qual o PC deve ser redirecionado.
7.3 CISC x RISC
De acordo como o conjunto de instrues (Instruction Set Architecture)
de um processador projetado, podemos classific-lo em dois tipos:
1. CISC (Complex Instruction Set Computer), e;
2. RISC (Reduced Instruction Set Computer).
CISC (computador com conjunto de instrues complexas) uma li-
nha de arquitetura de processadores capaz de executar centenas de instrues
complexas diferentes, sendo, assim, extremamente verstil. Dentre os exem-
plos mais famosos de processadores CISC esto os 386 e os 486 da Intel.
Os processadores baseados na computao de conjunto de instrues
complexas contm uma microprogramao, ou seja, um conjunto de cdigos
de instrues que so gravados no processador, permitindo-lhe receber as ins-
trues dos programas e execut-las, utilizando as instrues contidas na sua
microprogramao. Seria como quebrar essas instrues, j embaixo nvel, em
diversas instrues mais prximas do hardware (as instrues contidas no mi-
crocdigo do processador). Como caracterstica marcante essa arquitetura
contm um conjunto grande de instrues, a maioria deles em um elevado
grau de complexidade.
No entanto, examinando do ponto de vista prtico, a grande vantagem
da arquitetura CISC que j se tem muitas das instrues guardadas no pr-
prio processador, o que facilita o trabalho dos programadores de linguagem
de mquina.
Com isso, os processadores CISC tm a vantagem de reduzir o tama-
nho do cdigo executvel por j possuremmuito do cdigo comumemvrios
programas, em forma de uma nica instruo.
J os computadores RISC (Conjunto Reduzido de Instrues) fazem
parte de uma linha de arquitetura de processadores que favorece um conjunto
de instrues mais simples e pequeno que levam aproximadamente a mesma
ALEXANDRA DA COSTA PINTO DE AGUIAR 42
COL EO
quantidade de tempo entre elas para serem executadas. Existem vrios micro-
processadores modernos que so RISCs, como, por exemplo, DEC Alpha,
SPARC, MIPS, e PowerPC.
Com relao ao tipo de microprocessador mais usado em desktops, o
x86 da Intel mais CISC do que RISC, embora verses mais novas dessa arqui-
tetura traduzam instrues x86 baseadas em arquitetura CISC em formas ba-
seadas em arquitetura RISC mais simples, utilizando prioridade de execuo,
e, dessa forma, adotando uma postura hbrida.
Os processadores baseados na computao de conjunto de instrues
reduzido no tem micro-programao como acontece no CISC. Assim sendo,
as instrues so executadas diretamente pelo hardware. Como caracterstica
principal, essa arquitetura, alm de no ter microcdigo, tem um conjunto de
instrues bastante reduzido, almde contar comumbaixo nvel de complexi-
dade.
Dentre as caractersticas principais das arquiteturas RISC, podem ser
destacadas:
conjunto reduzido e simples de instrues e formatos simples e re-
gulares de instrues;
operandos sempre em registradores e modos simples de enderea-
mento memria;
uma operao elementar por ciclo mquina e uso de pipeline.
Ainda, arquiteturas RISC so adotadas para os processadores dos vi-
deogames modernos, que proporcionam um hardware extremamente dedicado
somente execuo do jogo, tornando-o muito mais rpido em relao a mi-
crocomputadores com mais recursos, embora com processadores x86.
Do ponto de vista de desempenho, os processadores CISC possuem
tambm algumas desvantagens em relao aos RISC. Entre elas a impossibili-
dade de se alterar alguma instruo composta para se melhorar o desempe-
nho. O cdigo equivalente s instrues compostas do CISC pode ser escrito
nos RISCs da forma desejada, usando um conjunto de instrues simples, da
maneira que mais se adequar. Sendo assim, existe uma disputa entre tamanho
do cdigo versus desempenho.

RESUMINDO:
Espera-se que o aluno entenda a relao entre hardware e software e as diferentes estratgias
de implementao em termos de conjunto de instrues.

AUMENTANDO O CONHECIMENTO:
Captulos que tratem de linguagem de montagem, nas referncias.
43 INTRODUO ARQUITETURA MIPS
COL EO
CAPTULO 8
A ARQUITETURA MIPS E SEU ASSEMBLY
____________________
Neste captulo iremos detalhar uma arquitetura em especfico, a arquitetura MIPS. Espera-se que o aluno tenha
compreendido bem a relao entre software e hardware passada, com nfase, no ltimo captulo. A partir deste novo
estudo, iremos trabalhar com um novo paradigma de programao: a programao em linguagem de mquina ou as-
sembly. Cada arquitetura possui seu prprio assembly, assim, iremos detalhar apenas o assembly da arquitetura esco-
lhida, o MIPS.
____________________
8.1 Conceito
MIPS uma boa arquitetura para estudo, no apenas devido popula-
ridade desse tipo de processador, mas tambm porque uma arquitetura fcil
de entender.
As primeiras verses das CPUs MIPS eram de 32-bits, mas as mais re-
centes tornaram-se 64-bits. Existem cinco verses da implementao MIPS,
compatveis entre si, chamadas MIPS I, MIPS II, MIPS III, MIPS IV, e MIPS 32/64.
Almdisso, diversas extenses esto disponveis, incluindo a MIPS-3D
que um conjunto simples das instrues ponto-flutuante SIMD dedicadas s
tarefas 3D comuns;
Diz-se que, pelo fato de ser umprocessador comprojeto limpo, esta ar-
quitetura MIPS pode ser usada com fins educativos, alm de ter influenciado
processadores tais como o SPARC da Sun.
Observe que iremos aprender sobre como uma arquitetura funciona.
Essa arquitetura uma arquitetura RISC, cujos conceitos voc viu no captulo
anterior.
Um conceito muito importante na arquitetura estudada que a arqui-
tetura MIPS organiza a memria em palavras de 32 bits. Significa que, para
acessar a memria, deve-se acess-la de 4 em 4 bytes (32 em 32 bits).
Observe que, quando voc faz um programa em C ou outra linguagem
de programao qualquer, voc no tem contato direto com os registra-
dores nemcoma linguagemde mquina. Isso acontece porque o compi-
lador traduz seuprograma para a linguagemde mquina de uma arqui-
tetura em especfico.
8.2 Registradores
Registradores so elementos de memria e bastante usual que uma
determinada arquitetura permita que o programador assembly acesse alguns
registradores para que sejam diretamente manipulados. O MIPS tm 32 regis-
tradores de uso geral cada um com 32 bits, denominados de R0, R1 ..., R31.
Embora os registradores possamser usados vontade pelo programa-
dor assembly, eles tm usos especficos para determinadas instrues. O R0,
por exemplo, sempre contm o valor 0. O R31, aps o uso da instruo JAL
(Jump And Link) possui o endereo retorno da sub-rotina. Afigura 22 mostra os
registradores e seus usos mais comuns.
Nome do re-
gistrador
Nmero Uso
$zero 0 constante 0
$at 1 reservado para o montador
$v0 2 avaliao de expresso e resultados de uma funo
$v1 3 avaliao de expresso e resultados de uma funo
$a0 4 argumento 1
$a1 5 argumento 2
$a2 6 argumento 3
$a3 7 argumento 4
$t0 8 temporrio (no preservado pela chamada)
$t1 9 temporrio (no preservado pela chamada)
$t2 10 temporrio (no preservado pela chamada)
$t3 11 temporrio (no preservado pela chamada)
$t4 12 temporrio (no preservado pela chamada)
$t5 13 temporrio (no preservado pela chamada)
$t6 14 temporrio (no preservado pela chamada)
$t7 15 temporrio (no preservado pela chamada)
$s0 16 temporrio salvo (preservado pela chamada)
$s1 17 temporrio salvo (preservado pela chamada)
$s2 18 temporrio salvo (preservado pela chamada)
$s3 19 temporrio salvo (preservado pela chamada)
$s4 20 temporrio salvo (preservado pela chamada)
$s5 21 temporrio salvo (preservado pela chamada)
$s6 22 temporrio salvo (preservado pela chamada)
$s7 23 temporrio salvo (preservado pela chamada)
$t8 24 temporrio (no preservado pela chamada)
$t9 25 temporrio (no preservado pela chamada)
$k0 26 reservado para o kernel do sistema operacional
ALEXANDRA DA COSTA PINTO DE AGUIAR 46
COL EO
$k1 27 reservado para o kernel do sistema operacional
$gp 28 ponteiro para rea global
$sp 29 stack pointer
$fp 30 frame pointer
$ra 31 endereo de retorno (usado por chamada de funo)
Figura 22 Registradores da mquina MIPS.
Fonte: HENESSY, PATTERSON, 2005
8.3 Representao de instrues
As instrues MIPS so divididas em trs tipos:
1. Tipo R instrues de registradores, como add (adio), and (E lgi-
co) entre outras;
2. Tipo I instrues que precisamde uma constante numrica ouva-
lor imediato em sua composio. Instrues de acesso memria,
de desvios condicionais e tipo R com valores constantes (como
addi, andi) pertencem a este grupo, e;
3. Tipo J instrues de salto incondicional (jump) como j.
Instrues do tipo R (Registrador)
31 26 25 21 20 16 15 11 10 6 5 0
op rs rt rd shamt funct
Instrues do tipo I (Imediato)
31 26 25 21 20 16 15 0
op rs rt immediate
Instrues do tipo J (Salto)
31 26 25 0
op target
Observe que alguns campos se repetem em todos os tipos de instru-
es, enquanto que outros existem somente em um determinado tipo de ins-
truo. A seguir, observe os campos e suas descries:
OP: 6 bits que definem a operao (opcode);
RS: 5 bits de indicam um registrador de origem;
RT: 5 bits que indicam um registrador (origem ou destino) ou condi-
o de salto;
RD: 5 bits que indicam um registrador de destino;
SHAMT: 5 bits que especificama quantidade de bits a seremdesloca-
dos;
FUNCT: 6 bits que definem a funo da operao;
47 AARQUITETURA MIPSE SEU ASSEMBLY
IMMEDIATE: 16 bits que indicam o imediato; e
TARGET: 26 bits que definem o endereo do alvo do salto.
8.4 Grupo de instrues
Neste documento no iremos discutir de forma exaustiva as instrues
do processador MIPS. No entanto, iremos abordar alguns exemplos dos princi-
pais grupos de instrues.
Instrues aritmticas simples. Nesse grupo, instrues como adio
e subtrao podemser realizadas. Observe que as instrues so de dois tipos,
tipo Re tipo I. As instrues tipo Rso aquelas cuja operao ocorre exclusiva-
mente entre registradores. J as do tipo I, ocorremtambmcomconstantes nu-
mricas.
Exemplos de instrues aritmticas simples:
add $r1, $r2, $r3 # Esta instruo soma o contedo dos registradores
$r2 e $r3, colocando o contedo no registrador $r1
addi $r4, $r1, 9 # Agora estamos somando o contedo do registrador
$r1 como valor imediato 9 e armazenando o resultado em$r4. Onmero ime-
diato deve ter 16 bits.
sub $r1, $r2, $r3 # Subtrai-se o contedo de $r3 do contedo de $r2 e
coloca-se em $r1.
Instrues de operadores lgicos. Semelhante ao grupo das instru-
es aritmticas, porm, so realizadas operaes lgicas como AND, OR, XOR
etc. Tambm compreende instrues pertencentes aos grupos R e I.
Exemplos de instrues de operadores lgicos:
and $r1, $r2, $r3 # Realiza uma operao AND bit-a-bit entre $r3 e $r2.
O resultado armazenado em $r1.
andi $r1, $r2, 42 # Realiza uma operao AND bit-a-bit entre $r2 e o va-
lor imediato 42. O resultado armazenado em $r1. O nmero imediato deve
caber em 16 bits.
or $r1, $r2, $r3 # Realiza uma operao ORbit-a-bit entre $r3 e $r2. Ore-
sultado armazenado em $r1.
ori $r1, $r2, 42 # Realiza uma operao OR bit-a-bit entre $r2 e o valor
imediato 42. Oresultado armazenado em$r1. Onmero imediato deve caber
em 16 bits.
Podemos notar que as instrues seguem uma lgica clara. At agora
todas seguem uma mesma lgica. Alm destas, no existem instrues mais
complexas como potncias ou razes quadradas. Somente as operaes mate-
mticas mais simples so representadas.
Instrues de uso de memria. As instrues do uso da memria se-
guem uma lgica diferente das instrues de operaes aritmticas. Inicial-
mente, existem trs tipos de instrues capazes de copiar dados da memria
para os registradores.
lw$r1, 8($r2) # Load Word: Esta instruo carrega uma palavra (estru-
tura de 4 bytes ou 32 bits) localizada no endereo representado pela soma do
valor armazenado no registrador $r2 mais 8 (este deslocamento SEMPRE tem
que ser mltiplo de 4 0, 4, 8, 12...). O resultado armazenado em $r1.
lh $r1, 6($r3) # Load Half: Esta instruo carrega uma estrutura de dois
bytes, ou seja, meia palavra localizada no endereo representado pela soma do
valor armazenado no registrador $r3 mais o nmero 6 (este deslocamento
ALEXANDRA DA COSTA PINTO DE AGUIAR 48
COL EO
SEMPRE tem que ser mltiplo de 2 0, 2, 4, 6, 8...). O resultado armazenado
em $r1.
lb $r1, 16($r2) # Load Byte: Esta instruo carrega umbyte (8 bits) loca-
lizado no endereo representado pela soma do valor armazenado em $r2 mais
o nmero 16. O resultado armazenado em $r1.
Perceba que desta forma bastante rpido de se carregar o contedo
de um valor em um vetor. Basta saber o endereo do valor inicial do vetor e o
ndice de sua posio. Por exemplo, suponha que eupossua umvetor de carac-
teres char vetor[5]. Supondo que o registrador $r1 contenha o endereo de ve-
tor[0], para armazenar o valor de vetor[3] no registrador $r2 e assumindo que
cada caractere possui uma palavra (32 bits), basta usar a seguinte instruo:
lw $r2, 16 ($r1)
Colocamos o 16 l porque cada caractere ocupa 32 bits e queremos pe-
gar o quarto caractere da sequncia. Logo, precisamos nos deslocar 16 bytes
para acharmos o caractere certo.
J para a operao inversa, de armazenamento de contedo de um re-
gistrador na memria, tambm existem trs comandos. Eles so semelhantes
com relao ao endereamento. A nica diferena que o registrador que no
load servia para armazenar o contedo vindo da memria, no store serve para
gravar um contedo na memria.
sw$r1, 4($r2) # Store Word: Esta instruo carrega uma palavra (estru-
tura de 4 bytes) localizada no registrador $r1 e armazena no endereo repre-
sentado pela soma do valor armazenado no registrador $r2 mais 4.
sh $r1, 4($r2) # Store Half: Esta instruo carrega uma estrutura de 2
bytes localizada no registrador $r1 e armazena no endereo representado pela
soma do valor armazenado no registrador $r2 mais 4.
sb $r1, 4($r2) # Store Byte: Esta instruo carrega um byte (8 bits) loca-
lizado no registrador $r1 e armazena no endereo representado pela soma do
valor armazenado no registrador $r2 mais 4. Instrues de acesso memria
pertencem ao tipo I.
Instrues de controle de fluxo
Agora veremos instrues capazes de controlar o fluxo de execuo de
instrues de um computador. A primeira delas a instruo beq, ou Branch
if Equal:
beq $r1, $r2, DESTINO
O que esta instruo faz verificar se o valor de $r1 igual $r2. Caso
isso seja verdadeiro, ela muda o valor do registrador PC (Program Counter ou
contador de programa), que guarda o endereo da prxima instruo a ser
executada. No destino podemos colocar o label ou rtulo de uma outra parte
do cdigo assembly.
Alm do beq, temos tambm o bnq, ou Branch if Not Equal:
bne $r1, $r2, DESTINO
Ele funciona da mesma forma que o beq. Adiferena que ele pula um
determinado nmero de instrues somente se o valor dos dois registradores
for diferente. Instrues de branch pertencem ao tipo I.
E finalmente, temos a instruo j, ou Jump, que faz parte do terceiro
tipo, o tipo J:
j ENDEREO
Ele faz com que o programa passe a executar a instruo que encon-
trada no endereo dado. O endereo passado para a instruo j sempre um
nmero de 26 bits, normalmente atravs de um rtulo.
Instrues de comparaes
Por fim, precisamos ver ainda instrues de comparao. Umexemplo
o slt, ou Set Less Than:
49 AARQUITETURA MIPSE SEU ASSEMBLY
slt $r1, $r2, $r3
Ela armazena 1 em $r1 se $r2 < $r3 e 0 caso contrrio.
8.5 Modos de endereamento
Nas instrues do MIPS podemos representar os endereos de dados
das seguintes formas:
1. A Registrador: Representamos o dado passando o nome do regis-
trador no qual ele est contido. Ex.: add $r1, $r2, $r2.
2. Base-Deslocamento: Representamos o dado passando o endereo
de umvetor no qual ele est e a quantidade de bits a seremdesloca-
dos. Ex.: lw $r5, 4($r65).
3. Imediato: Passamos o dado escrevendo o seu valor imediato. Ex.:
addi $r1, $r2, 456.
4. Relativo ao PC: Passamos o dado descrevendo o seu valor relativo
ao endereo da instruo atual. Ex.: beq $r1, $r2, DESTINO.
5. Absoluto: passamos o valor informando o seu endereo (pseudo-)
absoluto. Ex.: j DESTINO.
Existemapenas estas cinco formas de endereamento no MIPS, e atra-
vs delas que efetuamos todas as operaes necessrias.

RESUMINDO:
Compreenso esperada com relao s instrues, os tipos de instruo e sua mecnica de
operao. Os registradores e sua nomenclatura so igualmente importantes bemcomo a estru-
tura bsica de um programa assembly para MIPS.

AUMENTANDO O CONHECIMENTO:
Captulos das referncias que tratem da arquitetura MIPS e seu assembly.
ALEXANDRA DA COSTA PINTO DE AGUIAR 50
COL EO
CAPTULO 9
A ARQUITETURA MIPS MONOCICLO
____________________
Aps vermos os principais conceitos da linguagem de mquina e do conjunto de instrues de uma mquina MIPS,
neste captulo iremos estudar uma maneira de se implementar essa arquitetura. Assim, aprofundamos atravs do
MIPS os conceitos sobre uma implementao monociclo. Nessa implementao, detalhamos quais so os caminhos
do hardware que levam correta execuo do software (assembly) em questo.
____________________
9.1 Conceitos e elementos bsicos
Como vimos anteriormente, existem dois conceitos importantes: ele-
mentos da arquitetura, visveis ao programador, e elementos da organizao
interna de um processador.
Voc tambm estudou sobre as instrues assembly da arquitetura
MIPS e agora veremos como o hardware efetivamente executa essas instrues.
Iniciamos nossos estudos coma implementao monociclo da arquite-
tura MIPS. O nome monociclo vem do fato de que todas as etapas necessrias
para que uma dada instruo seja executada so feitas em um nico ciclo de
clock. Assim, a cada ciclo de clock que passa, uma nova instruo executada.
Dentre os elementos de hardware existentes na arquitetura, podemos
destacar:
contador de programa (PC), que quem define a posio da mem-
ria que contm a prxima instruo a ser executada;
memria de instrues/dados, uma memria nica que contm o
conjunto de instrues referente a um dado programa e tambm os
dados deste programa;
unidade de controle, responsvel por interpretar e controlar as ins-
trues em execuo;
banco de registradores, que um mdulo contendo todos registra-
dores manipulveis (leitura/escrita); e
unidade lgica e aritmtica (ULA), mdulo responsvel pela opera-
o lgica/aritmtica das instrues.
Contando com esses elementos bsicos existentes na arquitetura,
possvel ento se fazer a execuo de uma determinada instruo. Para isso,
cada instruo deve passar por uma srie de etapas, que contemplam:
1. Busca de instruo. Nessa etapa deve-se ir na memria de instru-
es e buscar aquela endereada pelo PC. Aps, devemos incre-
mentar o PC para que no prximo ciclo a instruo correta seja bus-
cada;
2. Interpretao da instruo. Essa etapa realizada por uma unidade
de controle. Logo aps buscar efetivamente a instruo na mem-
ria de instrues, a unidade de controle verifica de qual instruo
se trata e gera os sinais de controle apropriados;
3. Busca de operandos. J nessa etapa, aps saber qual a instruo
em questo, busca-se no banco de registradores os operandos ne-
cessrios execuo da instruo;
4. Processamento de dados. Uma vez que se tenha as informaes
dos operandos e o que deve ser feito (tudo isso apontado pela ins-
truo), momento de se fazer a execuo propriamente dita. Se
soma, a ULAsoma. Se subtrao a ULAsubtrai e assimpor dian-
te, e;
5. Escrita/salvamento de dados. Para instrues tipo R e Load, che-
gado o momento de se escrever os resultados no banco de registra-
dores. Para instrues de armazenamento de dados na memria,
como store, deve-se fazer essa escrita tambm.
9.2 Busca de instrues
Para que possamos detalhar a arquitetura MIPS monociclo, iremos di-
vidir algumas das etapas principais para que voc compreenda melhor.
Iniciamos nossos estudos pela busca de instrues, etapa inicial e fun-
damental para que a prxima instruo seja executada.
Observe, ento, a figura 23. Nessa figura, temos o PC, que um regis-
trador onde o endereo da prxima instruo a ser executada fica armazena-
do. Imagine que ele vale, inicialmente 0. Ento, esse endereo 0 passado
memria de instrues que acessa a posio 0 e coloca emsua sada a instruo
correspondente a essa posio.
No mesmo instante, passamos o valor do PC atual (0) para um soma-
dor, que soma esse valor atual com 4 e passa o resultado (neste caso, 4) para a
linha de entrada PC. Observe no entanto, que PC umregistrador ativado pela
linha de clock do sistema. Assim, ele somente ser atualizado no prximo ciclo
de clock, garantindo a coerncia do sistema de clculo de prximo endereo.
ALEXANDRA DA COSTA PINTO DE AGUIAR 52
COL EO
Lembrando:
Instrues so compostas por palavras de 32 bits
Memria armazena 1 byte por posio
Logo:
Uma busca sequencial de instrues feita
atribuindo-se ao PC= PC+4
Figura 23 Busca de instrues.
Fonte: HENESSY, PATTERSON, 2005.
9.3 Execuo de instruo
Aps buscar a instruo correta na memria, passamos, ento, sua
execuo. Para isso, dividiremos, inicialmente, as execues de acordo com o
tipo de instruo.
Execuo semacesso a memria. Nesse caso, estamos tipicamente tra-
tando de instrues tipo R, lgicas e aritmticas. Nessas instrues, lembre
que os registradores so utilizados como operandos e que umdeterminado re-
gistrador o destino final da operao.
Exemplo: add $t2, $t0, $t1
Observe que acessamos o banco de registradores e endereamos os re-
gistradores de leitura (fonte) e o de escrita (destino). Os dois registradores, no
exemplo anterior, a seremlidos so $t0 e $t1. So esses os registradores que en-
tram na ULA para que a operao desejada seja realizada. Aps a execuo da
operao, o resultado da ULA contm o resultado final da operao e deve ser
escrito no registrador destino, no exemplo, o registrador $t2.
Figura 24 Execuo da instruo.
53 AARQUITETURA MIPSMONOCICLO
Desse diagrama, observe ainda os sinais de controle existentes. Esses
so os sinais setados ou designados pela unidade de controle no momento da
decodificao de uma instruo.
Sinal RegWrite. Define se o banco de registradores pode ter um dado
(proveniente da linha writedata) escrito no registrador (indicado por writeregis-
ter).
Sinal ALU Operation. Define o tipo de operao a ser realizado pela
ULA, proveniente do resultado da interpretao da instruo.
Execuo com acesso a memria. Em instrues que fazem acesso
memria, apesar de usarmos os mesmos recursos de hardware, o fluxo de exe-
cuo mudado, uma vez que o objetivo da instruo outro.
Nessas instrues, existemdois registradores: um que destino da lei-
tura ou fonte da escrita na memria e umoutro que serve de base para o clcu-
lo do endereo de acesso.
Ainda, nas instrues com acesso memria, cabe ULA executar o
clculo que dir qual o endereo correto da memria de dados a ser manipu-
lado.
Para que isso seja possvel, devemos passar ULA duas informaes:
1. Registrador com endereo base; e
2. Deslocamento em bytes necessrio.
Por exemplo, se tivermos a instruo lw $t0, 0 ($t1) o comportamento
esperado que faamos a leitura do endereo de memria calculado por 0 ($t1)
e que o contedo deste endereo seja armazenado no registrador $t0.
J se a instruo emquesto sw$t0, 0 ($t1), o comportamento espera-
do que o contedo existente no registrador $t0 seja escrito, gravado na posi-
o apontada por 0 ($t1).
Observe, no entanto, que a maneira que as instrues so escritas so
extremamente semelhantes. Por isso, na figura 25, voc pode visualizar os ca-
minhos necessrios para que ambas sejam executadas. Comecemos, ento, pe-
las partes comuns s duas instrues.
Ambas necessitamque a ULA faa o clculo do endereo de memria a
ser acessado, seja para escrita, seja para leitura. Ento, a ULArecebe como ope-
randos um registrador ($t1, no exemplo), proveniente do banco de registrado-
res. Alm disso, a ULA recebe a parte imediata (lembre que so instrues tipo
I que possuem uma constante numrica de 16 bits).
Os 16 bits passam por uma extenso de sinal que faz com que se tenha
como resultado 32 bits, j que a ULA somente aceita operandos de 32 bits. Nes-
se caso, o resultado da ULA passado como endereo para a memria de da-
dos e no ao banco de registradores, como visto anteriormente.
Agora, vamos s particularidades. Para que a instruo de loadfuncio-
ne, precisamos que o dado lido da memria (read data 1) seja escrito no banco
de registradores. Por isso, existe uma conexo entre read data 1, da memria de
dados, e write data, do banco de registradores.
J para que a instruo de store possa ser executada, precisamos que o
registrador dessa instruo entre na memria de dados. Para isso, ele inter-
pretado pelo banco de registradores, no como um registrador a ser escrito,
mas sim como o segundo a ser lido. Este segundo operando (read data 2) pas-
sado diretamente para a linha de escrita write data da memria de dados.
ALEXANDRA DA COSTA PINTO DE AGUIAR 54
COL EO
Por fim, para que isso tudo funcione harmoniosamente, necessrio
que os sinais de controle sejam setados da maneira correta.
Sinal MemWrite. Define se deve ser realizada uma operao de escri-
ta na memria. Assim, pode assumir dois valores: 0=No escreve e 1=Escreve;
Sinal MemRead. Define se deve ser realizada uma operao de leitura
na memria. Dessa forma, assume os valores 0=No leia e 1=Leia;
Execuo de saltos condicionais. Esse tipo de instruo faz com que a
prxima instruo a ser executada dependa de um determinado teste. Assim,
para que funcione corretamente ela deve sobrepor a lgica de incremento do
PC=PC+4.
Existe uma lgica para se calcular o valor do endereo do desvio, que
feito com base no valor de PC da nova instruo somado da extenso do sinal
mais significativo deslocado esquerda de 2.
Sendo assim, o prximo PC pode ser:
PC + 4, ou;
Alvo do desvio.
Observe que utilizamos uma estrutura do tipo multiplexador para que
possamos colocar juntas as opes de PC. Existe umnovo sinal de controle que
indica qual o PC a ser pego tambm.
Comrelao ao bloco operativo, visto na figura 26, cabe ULA realizar
a comparao e ajudar a unidade de controle a decidir qual o valor correto do
PC. Para isso, os dois registradores da instruo de branch so passados ULA
e sua sada zero encaminhada ao controle para que decida o valor do sinal de
controle PCSrc.
55 AARQUITETURA MIPSMONOCICLO
Figura 25 Execuo de instrues com acesso memria.
Fonte: HENESSY, PATTERSON, 2005.
Figura 26 Incluso de suporte a branch.
Fonte: HENESSY, PATTERSON, 2005.
Este sinal PCSrc indica qual o PCa ser gravado no registrador. Quem
decide o valor a unidade de controle baseada na codificao da instruo e na
sada da comparao da ULA.
9.4 Unio dos fluxos de execuo
Voc deve ter observado que os fluxos de execuo para operaes
com e sem memria operam sobre os mesmos elementos de hardware (banco
de registradores, ULA). No entanto, a manipulao feita de forma diferente.
Isso ocorre emfuno das diversas funcionalidades existentes nas instrues.
Apesar disso, importante observar que todas essas funcionalidades
devem coexistir. Para isso, iremos adotar uma ttica semelhante adotada
para solucionar o problema dos PCs mltiplos: multiplexadores.
Ento, teremos dois novos multiplexadores, exibidos na figura 27:
1. O primeiro, controlado pelo sinal ALUSrc, define qual fonte de
dados ser utilizada na operao com a ULA, ou seja, define qual
o segundo operando a ser passado para a ULA: registrador prove-
niente do banco de registradores ou valor constante que sofreu a
extenso de sinal necessria, e;
2. O segundo, controlado pelo sinal MemToReg, que define qual a
informao a ser escrita no banco de registradores: se o resultado
da ULA (em operaes tipo R e tipo I da ULA) ou se a informao
vinda da memria de dados (no caso de um load, por exemplo).
ALEXANDRA DA COSTA PINTO DE AGUIAR 56
COL EO
9.5 Sinalizao de controle
Durante a descrio dos blocos operativos, voc deve ter notado a exis-
tncia de uma srie de sinais de controle os quais foramsendo sempre explica-
dos. Esses sinais so controlados pela unidade de controle, que nada mais do
que uma mquina de estados finita que recebe o campo de instrues (bits 31 a
26) da instruo proveniente da memria, decodifica-a e gera uma gama de si-
nais de controle em funo disso.
Agora que estamos observando que os 32 bits da instruo so usados
de maneira diferente de acordo com a necessidade dos blocos, observamos
que ao banco de registradores adicionado um novo multiplexador que, atra-
vs do sinal RegDst, seleciona se o registrador de escrita ser proveniente do
campo de instruo dos bits 20-16 ou dos bits 15-11.
Isso acontece em decorrncia do tipo de instruo que estamos utili-
zando. Observe que, nas instrues tipo R (add, and, or, etc), o intervalo de bits
de 15 a 11 armazena o registrador destino dessa instruo. Logo, ao decodifi-
car uma instruo como sendo tipo R, a unidade de controle seta o sinal RegDst
com o intuito de que o registrador a ser escrito esteja neste intervalo.
Por outro lado, caso seja uma instruo tipo I da ULA(addi, andi etc.) ou
uma instruo de load (lw, lb etc.), o intervalo de bits da instruo que armaze-
na qual o registrador que deve ser escrito encontra-se, justamente, no intervalo
entre os bits 20-16. Assim, quando a unidade de controle verifica que se trata
de uma instruo desse tipo, deve setar o sinal RegDst de forma correta para
que o registrador a ser escrito pertena a esse segundo intervalo.
J no que diz respeito unidade lgica e aritmtica, uma unidade de
controle prpria da ULA, separada do controle geral do processador, recebe o
sinal de controle ALUOp, esse sim, proveniente do controle geral do processa-
dor, juntamente comos bits referentes ao campo funct da instruo, compreen-
dido entre os bits 5-0, para controlar as operaes sobre a ULA. Isso somente
acontece caso se trate de uma instruo tipo R, como add, por exemplo.
Por fim, para que possam ser corretamente operacionalizados, os sal-
tos condicionais necessitam com que uma porta lgica E (AND) faa a gerao
do o sinal PCSrc. Esse sinal somente poder estar ativo quando o sinal Branch,
57 AARQUITETURA MIPSMONOCICLO
Figura 27 Unio dos fluxos de execuo.
Fonte: HENESSY, PATTERSON, 2005.
que indica uma instruo de desvio condicional, e o sinal zero, proveniente
da comparao entre dois operandos que ocorre na ULA, estiverem ativos em
1. Zero em 1 significa que os operandos so iguais. Se eles so iguais e o sinal
Branch est ativo, logo, temos o PC sendo desviado para o alvo do desvio.
A seguir, na figura 28, voc pode observar as consequncias dos prin-
cipais sinais de controle quando esto ativos (possuem valor 1) ou quando es-
to inativos (cujo valor 0).
Nome do sinal Efeito quando inativo (0) Efeito quando ativo (1)
RegDest Seleciona registrador rt
(bits.20:16) como destino da
escrita no banco de registra-
dores
Seleciona registrador rd
(bits.15:11) como destino da
escrita no banco de registra-
dores
WriteReg Nenhum Habilita a escrita no registra-
dor definido por RegDest
com o valor da entrada de da-
dos para escrita
ALUSrc O segundo operando da ULA
vem da segunda sada do
banco de registradores
O segundo operando da ULA
consiste nos 16bits mais bai-
xos da instruo com sinal es-
tendido
PCSrc O PC substitudo pela sada
do somador que calcula o va-
lor PC+4
O PC substitudo pela sada
do somador que calcula o
destino do desvio
ReadMem Nenhum O contedo da memria do
dados designado pela entra-
da Endereo colocado na sa-
da Dados da leitura
WriteMem Nenhum O contedo da memria de
dados designado pela entra-
da Endereo substitudo
pelo valor na entrada de da-
dos para escrita
MemToReg O valor enviado para a entra-
da dados para escrita do ban-
co de registradores vem da
ULA
O valor enviado para a entra-
da de dados para escrita do
banco de registradores vem
da memria de dados
Figura 28 Sinais de controle.
Fonte: HENESSY, PATTERSON, 2005.
9.6 Implementao completa
Na figura 29 voc pode visualizar a implementao completa do pro-
cessador. Aquele cdigo assembly que voc fez agora reside na memria de ins-
trues e o prprio processador capaz de realizar todo o resto do trabalho
sem qualquer interferncia externa. Observe que o PC pode alternar entre a
prxima instruo e o alvo do desvio Branch, o que significa que esta imple-
mentao no suporta instrues de salto incondicional, como jump.
ALEXANDRA DA COSTA PINTO DE AGUIAR 58
COL EO

RESUMINDO:
Neste captulo espera-se que o aluno entenda o funcionamento de uso do registrador PC bem
como a organizao de uma CPU. Ainda, necessrio que se compreenda o fluxo de dados
quando da execuo de uma instruo e a influncia dos sinais de controle para a execuo das
instrues.

AUMENTANDO O CONHECIMENTO:
Captulos das referncias que tratem da arquitetura MIPS monociclo.
59 AARQUITETURA MIPSMONOCICLO
Figura 29 Implementao MIPS monociclo.
Fonte: HENESSY, PATTERSON, 2005.
COL EO
CAPTULO 10
A ARQUITETURA MIPS MULTICICLO
____________________
Neste captulo veremos uma segunda forma para implementar um processador MIPS. Na arquitetura multiciclo as eta-
pas pelas quais uma instruo passa ao ser executadas so claramente divididas, sendo que cada uma dessas etapas
realizada em um ciclo. Logo, diferente da arquitetura monociclo, na multiciclo uma instruo pode levar vrios ciclos
para terminar sua execuo. Por isso, instrues que demandam mais passos, demoram mais. Instrues que deman-
dam menos passos, demoram menos.
____________________
10.1 Conceito bsico e breve comparao com monociclo
No estudo da arquitetura monociclo, podemos observar que ela bas-
tante funcional, sendo que absolutamente todas as instrues so executadas
em um s ciclo.
No entanto, essa abordagem pode se tornar bastante ineficiente, j que
o tempo do ciclo de relgio definido pelo caminho da instruo mais lenta,
acarretando frequncias mais baixas de operao.
Alm disso, no caso de instrues de load/store, cujas operaes ocor-
rem em cooperao com a memria, no possvel o compartilhamento de
recursos no tempo, j que tanto a memria de dados quanto a de instrues po-
dem ser acessadas no mesmo ciclo de relgio.
Com isso, surge uma nova proposta: a implementao multiciclo.
Nesse caso, as instrues so divididas claramente em etapas, sendo que
cada etapa executada em um ciclo de relgio. Agora, em vez de ser definido
pela instruo mais lenta, o perodo do relgio determinado pela etapa mais
lenta.
Enquanto que na monociclo todas as etapas da instruo aconteciam
em um nico ciclo de relgio, agora cada instruo executa em um nmero
apropriado de ciclos de relgio (proporcional ao nmero de etapas).
Nesse sentido, importante observar que os recursos de hardware po-
dem ser aproveitados, ocasionando uma reduo no custo do bloco operativo
e um consequente aumento na complexidade do bloco de controle, respons-
vel por gerenciar toda essa diviso das instrues em etapas bem como a pas-
sagem entre etapas e entre instrues.
Algumas modificaes, no entanto, so cruciais para que consigamos
implementar com sucesso a verso multiciclo do processador.
Amemria, por exemplo, pode ser nica, e serve para armazenar tanto
instrues quanto dados. AULAser melhor aproveitada, evitando que soma-
dores extras (como o que realizava o clculo do prximo PC, na monociclo) se-
jam necessrios.
Adicionalmente, necessria a insero de registradores (que no so
visveis aos programadores) para que se possa reter as informaes e sadas
das unidades funcionais entre uma etapa e outra (exigncia do regime multi-
ciclo). Isso significa que os dados a serem salvos em funo de uma mesma
instruo, mas que sero necessrios um ciclo de relgio posterior (para a
prxima etapa) ficam armazenados nesses registradores no visveis ao pro-
gramador. J dados que sero necessrios em outras instrues devem ser ar-
mazenados em elementos de memria visveis ao programador (banco de
registradores, PC ou memria).
10.2 Bloco operativo
Observe na figura 30 o bloco operativo principal do multiciclo. Inicial-
mente, o PC, que antes era atualizado por um somador independente, agora
recebe a informao da ULA. Isso acontece porque nessa implementao mul-
ticiclo a ULA quem realiza o clculo de prximo PC. Veja que adicionamos
umnovo multiplexador na entrada do primeiro operando da ULA. Agora, este
primeiro operando pode vir do banco de registradores (como era na mono-
ciclo) ou pode ser o PC atual. Ao utilizar o PC atual como sendo o primeiro
operando, bastante natural que se utilize a opo fixa 4 do multiplexador do
segundo operando. Lembre que para acessar a prxima palavra de memria
devemos pular 4 bytes, visto que uma palavra composta por 4 bytes.
Esse segundo multiplexador tem duas opes iguais s do monociclo,
que compreendem os valores vindos do banco de registradores e da extenso
de sinal, para instrues de acesso memria e tipo I da ULA. Visualize que
existe uma quarta opo que ainda no discutimos. Essa opo diz respeito a
um deslocamento esquerda realizado sobre uma extenso de sinal. Lem-
bre-se que exatamente a mesma operao realizada na arquitetura monoci-
clo para darmos suporte instruo beq (branch on equal). Logo, usamos a ULA
para duas novas tarefas: clculo do prximo PCe clculo do desvio do branch.
ALEXANDRA DA COSTA PINTO DE AGUIAR 62
COL EO
Figura 30 Bloco operativo multiciclo.
Fonte: HENESSY, PATTERSON, 2005.
Ainda, existe um novo multiplexador na entrada da nica memria
deste bloco operativo. Esse multiplexador escolhe quem est endereando a
memria: no caso de estarmos buscando uma nova instruo, iremos pegar o
valor do PC; no caso de estarmos acessando dados, lemos o endereo calculado
pela ULA.
Logo aps esse acesso, voc pode observar dois registradores novos e
que no so visveis ao programador:
1. O registrador de instruo (do ingls, instruction register IR), e;
2. O registrador de dados da memria (do ingls, memory data register
MDR).
Esses registradores armazenam as informaes entre uma etapa e ou-
tra, assim como os registradores A e B, responsveis pelo armazenamento de
dados lidos do banco de registradores e o registrador ULASada, que guarda o
resultado da ULA.
Um ltimo multiplexador no discutido o que controla o dado a ser
escrito no banco de registradores. Observe que j existe (da arquitetura mono-
ciclo) ummultiplexador que decide qual o endereo do registrador a ser escri-
to. Este novo, que se situa na sada do MDR e temcomo opes os registradores
MDR e ULASada, serve para que se decida qual o dado a ser escrito no banco
de registradores. Novamente, isso depende nica e exclusivamente da instru-
o que est sendo executada. No caso de uma instruo de LOAD, a informa-
o a ser gravada no banco de registradores proveniente da memria, logo,
passado ao banco o valor contido em MDR. J por outro lado, quando se trata
de uma instruo tipo R ou tipo I da ULA, a informao correta a ser gravada
est na sada da ULA que contm o resultado da operao e, portanto, pas-
sa-se ao banco de registradores o valor contido em ULASada.
Nessa implementao iremos adicionar os recursos necessrios para
que se possa dar suporte tambma jump. Comisso, basta adicionar outro mul-
tiplexador para suportarmos essa nova fonte de PC, que agora alimentado
por trs fontes distintas:
1. o resultado PC+4, vindo da sada da ULA: sempre ser armazenado
em PC;
2. o contedo do registrador ULASada, que armazena o endere-
o-alvo do desvio condicional, aps este ter sido calculado pela
ULA (beq); e
3. os 26 bits menos significativos do IR deslocados para a esquerda e
concatenados com os quatro bits mais significativos do PC incre-
mentado (para calcular o alvo do jump).
Afigura 31 exibe agora a implementao completa, dando destaque s
trs fontes possveis para o PC.
63 AARQUITETURA MIPSMULTICICLO
ALEXANDRA DA COSTA PINTO DE AGUIAR 64
COL EO
F
i
g
u
r
a
3
1

I
m
p
l
e
m
e
n
t
a

o
c
o
m
p
l
e
t
a
m
u
l
t
i
c
i
c
l
o
.
F
o
n
t
e
:
H
E
N
E
S
S
Y
,
P
A
T
T
E
R
S
O
N
,
2
0
0
5
.
10.3 Execuo das instrues
Agora que voc j sabe como o hardware da arquitetura multiciclo,
observaremos, ento, os passos necessrios para que as instrues sejam exe-
cutadas. importante que voc relacione esses passos queles percorridos na
implementao monociclo, pois, na sua essncia, so os mesmos:
1. busca de instruo;
2. decodificao e interpretao das instrues;
3. leitura de registradores, mesmo aqueles que no so utilizados;
4. clculo de endereo de branch, mesmo que no seja branch;
5. execuo da operao, que pode ser diferente de acordo com a ins-
truo:
a. no caso das instrues do tipo R, a execuo propriamente dita;
b. o clculo de endereo efetivo do operando, no caso das instru-
es load/store, e;
c. determinar se branch deve ser executado, no caso de branch;
6. acesso memria, para instrues load/store, e;
7. escrita de registradores, para instrues do tipo R e load.
A figura 32 traz esses passos numerados e resumidos. Voc deve olhar
essa figura juntamente com a figura 31, da implementao completa do pro-
cessador, para compreender melhor o que ocorre em cada etapa.
A unidade de controle, assim como na implementao monociclo, a
grande responsvel pelo correto funcionamento das diversas instrues. Para
que isso acontea com sucesso, utiliza-se uma mquina de estados para con-
trolar as etapas pelas quais as instrues so encaminhadas.
A figura 33 exibe a mquina de estados completa. Observe que a nu-
merao segue a figura anterior, portanto, voc pode relacionar a etapa e seu
efeito no bloco operativo (emtermos de operao dos registradores) comos si-
65 AARQUITETURA MIPSMULTICICLO
Figura 32 Etapas para execuo das instrues.
Fonte: HENESSY, PATTERSON, 2005.
nais de controle de tal etapa, exibidos nesta figura. Esses sinais de controle, na
sua esmagadora maioria, dizem respeito aos diversos multiplexadores da ar-
quitetura e qual o valor que deve ter em um determinado momento.

RESUMINDO:
Neste captulo espera-se que o aluno entenda o funcionamento de uso da organizao de uma
CPU multiciclo, comparativa monociclo. Ainda, necessrio que se compreenda o fluxo de da-
dos da execuo de instrues multiciclo bem como porqu do uso de registradores como bar-
reiras temporais. A parte de controle, mais complexa, e um hardware menos redundante so
partes fundamentais dessa arquitetura.

AUMENTANDO O CONHECIMENTO:
Captulos das referncias que tratem da arquitetura MIPS multiciclo.
ALEXANDRA DA COSTA PINTO DE AGUIAR 66
COL EO
Figura 33 Mquina de estados multiciclo.
Fonte: HENESSY, PATTERSON, 2005.
CAPTULO 11
DISPOSITIVOS DE SADA E PROGRAMAS:
UMA INTERFACE
____________________
Neste ltimo captulo trataremos de alguns conceitos fundamentais relativos comunicao entre o processador e os
dispositivos que o cercam. At ento, estvamos trabalhando dentro do processador, de maneira bastante detalhada.
Agora, em uma viso mais externa, o processador somente mais um componente do sistema aos quais se unem
dispositivos de entrada e sada fundamentais para que se possa utilizar umsistema computacional de forma bemsuce-
dida.
____________________
11.1 Conceitos
Dentre um dos principais problemas da computao, est o da comu-
nicao. Isso porque o processador, tipicamente, um dos componentes mais
rpidos de todo o sistema. Mas de nada adianta tanto desempenho se os com-
ponentes encarregados de levar as informaes at o processador forem extre-
mamente lentos.
Alm disso, problemas com dispositivos de E/S (Entrada/Sada), como
uma falha em um sistema de armazenamento, criam situao muito desagra-
dvel, uma vez que a computao deve garantir desempenho ao seu usurio e
os dispositivos de E/S devem garantir confiabilidade no seu uso.
11.2 Modelos de troca de dados
Para garantir o funcionamento do sistema como umtodo, existemmo-
delos que so planejados para atender as caractersticas de diferentes sistemas
digitais. Dentre eles, podem ser citados:
Os sistemas assncronos; e
Os sistemas sncronos.
Modelos de trocas de dados em nvel eltrico levam em considerao
sinais e protocolos necessrios para realizar trocas de dados. Porm, a imple-
mentao do modelo de um circuito a grande responsvel pela interao entre
sistemas, como, por exemplo, entre um perifrico e seu controlador.
Nos sistemas que seguem o modelo assncrono, visualizado na figura
34, so empregados dois sistemas computacionais autnomos que no neces-
sitam ter a mesma referncia de tempo, ou seja, no seguem o mesmo clock ou
relgio. Assim, trabalha-se em um sistema em que uma requisio enviada
(send) e uma confirmao (ack) retribuda.
Figura 34 Modelo assncrono.
J no modelo sncrono, da figura 35, dois sistemas computacionais
autnomos possuem as mesmas referncias temporais. Assim, no h necessi-
dade do sinal de confirmao (ack), pormos sistemas devemestar necessaria-
mente sincronizados, sendo que o tempo para a transferncia conhecido.
Figura 35 Modelo sncrono.
11.3 Mapeamento de entrada e sada
Tarefas localizadas em diferentes dispositivos necessitam se comuni-
car. Nesse momento, pode surgir a dvida de qual o mecanismo mais apro-
priado para se adotar ao transferir os dados.
Uma das solues se compartilhar uma rea de dados comum, com
polticas adequadas para acesso a dados, sendo que essa abordagem conhe-
cida como mapeamento em memria.
Por outro lado, pode-se acessar diretamente uma porta do dispositivo,
tendo-se um determinado protocolo de comunicao de baixo nvel que per-
mita a identificao do endereo dos dados, sendo conhecido como mapea-
mento em portas.
11.4 Modos de transferncia
Por fim, aps conseguirmos acessar um determinado dispositivo, pre-
cisamos entender como transferir dados entre eles. Assim, algumas questes
motivadoras para se analisar os diversos modos de transferncia surgem:
Quando efetuar a transferncia, de modo a atender requisitos de
projeto?
ALEXANDRA DA COSTA PINTO DE AGUIAR 68
COL EO
Quais so os mecanismos para controlar as transferncias com efi-
cincia?
Nesse sentido, tambmse deve atender aos diversos requisitos presen-
tes nos sistemas. Entre eles, a rpida resposta a eventos crticos surge combas-
tante fora, j que alguns eventos de segurana requerem resposta imediata,
assim como eventos de tempo real, que tm um tempo mximo preciso para
seremrespondidos. Almdisso, importante que se evite uma eventual sobre-
carga da CPUcomatividades de E/S, visto que a ideia da CPU realizar proces-
samento de dados, ou seja, se possvel, deixar que atividades envolvendo E/S
sejam controladas por outros elementos do sistema.
Destacamos agora os trs modos bsicos que existem com relao aos
modos de transferncia:
programado;
orientado a interrupo; e
acesso direto memria.
Entrada e sada programada. Nessa tcnica, toda a interao entre o
processador e o controlador do dispositivo de inteira responsabilidade do
programador. O funcionamento baseado no envio de um comando ao con-
trolador e na espera da concretizao da tarefa.
Exemplificando, considere que o processador envia um comando de
leitura ao controlador e, emseguida, l de forma constante umregistrador res-
ponsvel por armazenar o estado ou condio, para que se verifique se o dado
solicitado j est disponvel. Caso isso seja verdadeiro, a leitura realizada.
O principal problema dessa abordagem que as operaes de E/S so
infinitamente mais lentas quando comparadas s operaes de clculo tipica-
mente realizadas pela CPU. Dessa forma, utilizar-se continuamente o proces-
sador para fazer a verificao do andamento de uma operao E/S representa
um desperdcio muito grande de processamento.
Assim, uma melhoria desse mtodo diz respeito insero de opera-
es de clculo (processamento) entre as sucessivas verificaes do estado da
operao E/S, conhecido como polling. No entanto, as verificaes peridicas
previstas neste mtodo fazem com que um novo problema seja enfrentado:
como se deve determinar a frequncia da verificao. Se a frequncia de polling
for muito alta, pode-se desperdiar tempo, principalmente se o dispositivo for
extremamente lento. J uma frequncia baixa de polling pode ocasionar es-
peras desnecessrias por parte do dispositivo e a consequente perda de infor-
maes.
Interrupo. Mesmo com a utilizao de polling, possvel observar
que o modo programado gera uma srie de problemas durante a execuo de
uma transferncia de dados. A abordagem ideal seria uma em que o prprio
dispositivo avisasse ao processador que uma informao est disponvel. Este
justamente o princpio das interrupes.
Este mecanismo baseado na gerao de umsinal ao processador sem-
pre que um determinado evento externo ao processador ocorrer. No recebi-
mento desse sinal, o processador para momentaneamente o que est fazendo
(processamento de instrues, por exemplo) para executar uma rotina de tra-
tamento de interrupo.
Para que seja possvel o uso de interrupes, uma srie de detalhes
tanto na parte do software quanto na parte do hardware devem ser considera-
dos.
O controlador de interrupes, por exemplo, possui, pelo menos, trs
funes principais:
1. identificar a fonte da interrupo a fim de executar, para cada uma
delas, um procedimento especfico;
69 DISPOSITIVOS DE SADA E PROGRAMAS: UMA INTERFACE
2. privilegiar o atendimento de uma interrupo em relao a outra
(adotando um esquema de prioridades);
3. selecionar quais interrupes sero atendidas.
DMA Transferncia direta a memria. Existe ainda uma terceira al-
ternativa para realizar uma transferncia de dados, transferindo diretamente
os dados do controlador para a memria. Conhecido como acesso direto me-
mria (DMA Direct Memory Access), esse mtodo usa um hardware especial,
denominado de controlador de DMA, responsvel por realizar a transferncia
de dados entre um dispositivo de E/S e a memria.
Internamente, o controlador de DMA emprega diversos registradores
utilizados pelo processador para programar efetivamente a transferncia de
dados. Nesse caso, para que uma transferncia ocorra com sucesso necess-
rio que o processador inicialize o controlador de DMA, passando certas infor-
maes como a quantidade de dados a transferir, origeme destino dos blocos e
qual o sentido da transferncia (memria para dispositivo ou vice-versa).
Aps realizar essa programao, a execuo de DMA iniciada.
Enquanto o controlador de DMA efetua a transferncia, o processador pode
realizar suas tarefas de processamento e, ao trmino da transferncia, uma in-
terrupo enviada do controlador de DMA para o processador, sinalizando
que a operao foi completada com sucesso.

RESUMINDO:
Compreender os diversos tipos de funcionamento de modelos de troca de dados e como rea-
lizado o mapeamento de dispositivos de E/S. Ainda, entender o funcionamento dos distintos mo-
dos de transferncia de dados entre dispositivos.

AUMENTANDO O CONHECIMENTO:
Captulos das referncias que tratemsobre a interface entre processador e memria, emespe-
cial nos livros de sistemas operacionais.
ALEXANDRA DA COSTA PINTO DE AGUIAR 70
COL EO
REFERNCIAS
BROOKSHEAR, J. Glenn. Cincia da computao: uma viso abrangente. 5. ed. Porto
Alegre: Bookman, 2000, 499 p.
HENNESSY, John L. e PATTERSON, D. Organizao e projeto de computadores: a interfa-
ce hardware/software. 3. ed. Rio de Janeiro: Elsevier, c2005, 484 p.
HENNESSY, John L. Arquitetura de computadores: uma abordagem quantitativa. Rio de
Janeiro: Campus, 2003, 827 p.: il.
MURDOCCA, Miles J. Introduo arquitetura de computadores. Rio de Janeiro: Campus,
2000, 512 p.
STALLINGS, William. Arquitetura e organizao de computadores: projeto para o desem-
penho. 5. ed. So Paulo: Prentice Hall, 2005, 786 p.: il.
TANENBAUM, Andrew S. Sistemas operacionais: projeto e implementao. 3. ed. Porto
Alegre: Bookman, 2008, 990 p.
TANENBAUM, Andrew S. Sistemas operacionais modernos. 2. ed. So Paulo: Pearson
Prentice Hall, 2007, 695 p.
TOCCI, Ronald J. Sistemas digitais: princpios e aplicaes. 10. ed. So Paulo: Pearson,
2008, 804 p.: il.
WEBER, Raul Fernando. Arquitetura de computadores pessoais. 2. ed. Porto Alegre: Sagra
Luzzatto, 2001, 271 p. (Srie Livros Didticos; 6)
WEBER, Raul Fernando. Fundamentos de arquitetura de computadores. Porto Alegre: Sa-
gra Luzzatto, 2000, 262 p. (Srie Livros Didticos; 8)
COL EO

Você também pode gostar