Académique Documents
Professionnel Documents
Culture Documents
Nota de Aula
Org Comp Prof Pedro Corra Pag 2
1. Introduo
1.1 A informao
No incio dos tempos, informaes eram transmitidas apenas por gestos e som
(naquela poca, eram apenas grunhidos) e se guardava informaes apenas com o crebro
(a nossa memria, ou possivelmente apenas uma vaga lembrana!).
Os habitantes das cavernas pintavam animais nas paredes, no se sabe muito bem o
que eles representavam. Muito tempo depois, os sumrios criaram um sistema para
representar sua linguagem atravs de desenhos, gravados em placas de argila. Os egpcios
Org Comp Prof Pedro Corra Pag 4
era subtraido do maior (e no somado). Assim, a quantidade 128 era representada por
CXXVIII = 100 + 10 + 10 + 5 + 1 + 1 + 1 = 128. Por outro lado, a quantidade 94 era
representada por XCIV = (-10 + 100) + (-1 + 5) = 94.
Nesses sistemas, os smbolos tinham um valor intrnseco, independente da posio
que ocupavam na representao (sistema numrico no-posicional). Um grande problema
desse sistema a dificuldade de realizar operaes com essa representao. Experimente
multiplicar CXXVIII por XCIV! Assim, posteriormente foram criados sistemas em que a
posio dos algarismos no nmero passou a alterar seu valor (sistemas de numerao
posicionais).
No Oriente Mdio, por esses tempos, criou-se uma das mais importantes invenes
da humanidade: o alfabeto. Na antiguidade, usava-se um smbolo para representar cada
conceito ou palavra. Assim, eram necessrios milhares de smbolos para representar todos
os objetos, aes, sentimentos, etc - como so ainda hoje algumas linguagens. Como
Org Comp Prof Pedro Corra Pag 6
decorar todos? O grande achado foi decompor a linguagem em alguns poucos smbolos e
regras bsicas. Uma conseqncia de fundamental importncia para nossos estudos de
informtica foi possibilitar a ordenao alfabtica (essa uma tarefa tpica dos
computadores).
Nessa poca, foi tambm criado o baco - uma calculadora decimal manual.
Por volta do ano de 650 DC, os hindus inventaram um mtodo de produzir papel
(que antes j fora inventado pelos chineses) e seus matemticos criaram uma representao
para os nmeros em que existiam diferentes smbolos para as unidades, incluindo um
smbolo para representar o zero. Essa simples criao permitiu que se processasse a
aritmtica decimal e se fizesse contas no papel. Depois de milhares de anos em que todos
os clculos eram feitos com calculadoras (bacos, swan-pan, etc) finalmente era possvel
calcular sem auxlio mecnico, usando um instrumento de escrita e papel. A matemtica
criada pelos hindus foi aprendida pelos rabes (que depois foram copiados pelos europeus).
Por volta de 830, um matemtico persa (chamado Al-khwarismi, que inspirou o nome
algarismo) escreveu um livro (Al-gebr we'l Mukabala, ou lgebra) em que apresentava os
algarismos hindus. E esse livro, levado para a Europa e traduzido, foi a base da matemtica
do Renascimento.
Org Comp Prof Pedro Corra Pag 7
Pr-histria
Por volta do ano 2000 a.C., os chineses j utilizavam um instrumento para auxlio
ao clculo semelhante ao baco. O baco , criado posteriormente pelos rabes, permitia um
rpido clculo atravs do deslocamento de sucessivas contas trespassadas numa estrutura de
madeira.
transmisso do excedente aps uma volta completa de uma roda. Os valores negativos eram
manipulados atravs de uma representao de complemento, o que permitia a utilizao do
mesmo mecanismo para adio e subtrao.
Org Comp Prof Pedro Corra Pag 8
Idade da Engrenagem
Por ter criado o programa para fazer o Calculador Analtico funcionar, Ada
considerada a primeira programadora de computador da histria.
Infelizmente, dada a tecnologia da poca, a Mquina Analtica nunca foi concluda.
Apesar disso, este modelo tornou-se a pedra fundamental na qual calcaram-se os modernos
computadores da atualidade.
Por esta poca, entre 1847 e 1854, outro ingls, George Boole, provou que todos os
clculos matemticos no tm um fim em si mesmos, mas num esquema lgico bsico que
justifica os demais clculos. Assim, ele desenvolveu uma lgebra formal para descrever as
regras deste esquema lgico, de onde poderiam ser derivadas a aritmticas e outras
lgebras. Desde ento, esta lgebra lgica passou a ser considerada de interesse
excepcional, mas, s em 1924, o fsico Jeremy Bernstein mostrou que a lgebra de Boole
constitua num grupo com propriedades particulares de equivalncia e proporcionalidade.
Esta lgebra foi de importncia fundamental para a computao. Sem ela, no seria possvel
a implementao dos circuitos combinatrios com os quais hoje se constroem os
computadores [BAR 67].
destinado ao clculo blico. Posteriormente a sua concepo foi contestada como sendo um
plgio da mquina de Atanasoff.
Nesta poca a programao era feita diretamente atravs de um painel com chaves
de liga-desliga ou ento atravs de fitas de papel ou cartes perfurados. Posteriormente veio
o uso do teclado (ainda sem monitor).
Idade do Transistor
monitores de vdeo. Outro perifrico que veio a ser importante nos dias de hoje, foi o
mouse, desenvolvido em 1964 por Douglas Engelbart.
Idade do Chip
Idade do Micro
At o final dos anos 70, os computadores pessoais criados necessitavam que seu
usurio dominasse a linguagem Basic para controle e manipulao dos dados no
computador, o que limitava sua utilizao apenas aos que se dispunham a program-los. Foi
ento que, em 1979, a IBM lanou o IBM-PC com o primeiro sistema operacional para
computadores pessoais sem a necessidade de programao, o chamado MS-DOS.
Org Comp Prof Pedro Corra Pag 12
Idade da Rede
Uma vez que a iniciativa privada visualizou a Internet como sendo um novo tipo de
meio de comunicao, forou sua disseminao comercial. Os efeitos dessa expanso esto
sendo sentidos at hoje, e o sero por muitos anos ainda.
2. Conceitos Bsicos
2. 1 Dgitos binrios
Byte: Quando representamos nmeros em papel (em qualquer base) temos quantos
dgitos forem necessrios para representar um nmero. Isto no acontece quando um
computador armazena um nmero. Ele sempre utiliza um nmero fixo de dgitos binrios,
ou bits, para a representao em base 2. Portanto, se estamos utilizando um byte para
armazenamento, todos os 8, e no mximo 8 bits, sero usados. Por exemplo, 2710,
armazenado em um byte, corresponde seqncia binria 00011011. Portanto, um byte
um conjunto de 8 bits, cuja combinao de estados representa os diversos smbolos ou
caracteres que compem a informao. Foi inicialmente definido pela IBM.
2. 2 Bases Numricas
Definio:
Base numrica: a quantidade de algarismos de um sistema de numerao.
Ex.
2. 3 Notao posicional
2. 4 Converso de bases
As bases numricas :
Exemplo :
10 2 1 100 1 99 (0 99)
2 4 1 16 1 15 (0 a F )
Se o nmero que voc deseja converter estiver na base 8, voc deve efetuar a
converso deste para a base 2, observando a tabela 1.
Exemplo:
111110 1012
1001100111 11010 2
100 110 011 111 010 2
( 4 6 3 7 2 )8
esquerda. Com os bits j agrupados voc dever converter cada grupo de 4 bits no
algarismo correspondente da base 16, obtendo assim o nmero na base 16.
(7654) 8
(111 110 101 100) 2
(1111 1010 1100) 2
(FAC)16
2. 4.4.2 Converso da base 16 para a base 8
Caso a converso a ser feita seja da base 16 para a base 8, voc dever transform-lo
para a base 2 e em seguida agrupar os bits do nmero obtido trs a trs da direita para a
esquerda. Com os bits j agrupados voc dever converter cada grupo de 3 bits no
algarismo correspondente da base 8, obtendo assim o nmero na base 8.
Exemplo:
(F73E) 16
(1111 0111 0011 1110) 2
(001 111 011 100 111 110) 2
(173476) 8
2.4.5 Exerccios
Como o prprio subttulo nos diz s se aplica para operaes entre bits ou seja
nmeros na base 2.
0 X 0 = 0
0 X 1 = 0
1 X 0 = 0
1 X 1 = 1
Org Comp Prof Pedro Corra Pag 21
Enquanto na multiplicao decimal temos uma tabela com 100 operaes, do tipo:
1 X 2 = 2; 2 X 7 = 14; 5 X 6 = 30 etc
Efetuar a multiplicao de 35 / 5 e de 37 / 5 :
35 |5 5 37 |5 5
- 35 7 - 35 7
0 2
Procedimento:
a) Verifica-se quantas vezes o divisor cabe no dividendo por tentativa.
b) Iniciam-se as tentativas tais como:
2 X 5 = 10 , 3 X 5 = 15 , 4 X 5 = 20 (todos menores que 35)
E prossegue-se : 5 X 5 = 25 , 6 X 5 = 30 , 7 X 5 = 3 e 8 X 5 = 40.
Como 40 maior que 35 (ou 37, no caso do segundo exemplo) o valor escolhido
para quociente igual a 7.
c) Subtrai-se de 35 (dividendo) o valor resultante da multiplicao do quociente
pelo divisor (7 X 5), encontrando-se um valor que o resto da diviso. No
primeiro exemplo, o valor zero, 35 - 35 = 0, e no segundo exemplo 2,
37 - 35 = 2.
d) O resto da diviso deve sempre ser um valor igual, no mximo, ao divisor menos
1. No exemplo, ele dever ser, no mximo, igual a 4, pois se ele fosse 5, isso
significaria que o quociente poderia ser maior, j que o divisor (valo 5) ainda
cabe no dividendo.
Exemplo 1
Efetuar a diviso de (1 0 0 1)2 por (1 0 1)2:
(1 0 0 1)2 / (1 0 1)2
No caso da diviso binria o procedimento se torna mais simples, visto que cada
algarismo do quociente s pode ser ser 1 (quando o divisor menor - apenas uma vez- que
o dividendo ou parte dele) ou zero (caso contrrio).
Org Comp Prof Pedro Corra Pag 23
Exemplo 2
Efetuar a diviso de (1 0 1 0 1 0)2 por (1 1 0)2:
(1 0 1 0 1 0)2 / (1 1 0)2
1 0 1 0 1 0 |1 1 0 x
- 1 1 0 111
0 1 0 0 1
- 1 1 0
0 0 0 1 1 0
- 1 1 0
0 0 0 0 0 0
2.5.5 Exerccios
O valor dos bits usados para representar a magnitude independe do sinal, isto , sendo o
nmero positivo ou negativo, a representao binria da magnitude ser a mesma, o que
varia apenas o bit de sinal.
Org Comp Prof Pedro Corra Pag 25
Ex.:
0011 = +3
1011 = -3
(011 equivale ao valor absoluto 3)
FAIXA DE REPRESENTAO
A representao na base b em sinal e magnitude com n bits (incluindo o bit de sinal) possui
bn representaes e permite representar bn -1 valores, de vez que h duas representaes
para o zero.
A faixa de representao de uma representao na base 2 em sinal e magnitude com n bits
(incluindo o bit de sinal) possui
2n representaes, representando os valores entre - ( 2n-1-1) e + ( 2n-1-1).O maior valor
inteiro positivo ser ento + ( 2n-1-1) e o menor valor inteiro negativo ser - ( 2n-1-1).
Algoritmo da subtrao
O algoritmo da subtrao o mesmo da soma, sendo feita como se fosse uma soma de
dois nmeros que tem os sinais diferentes.
A representao em sinal e magnitude apresenta uma grande desvantagem: ela exige um
grande nmero de testes para se realizar uma simples soma de dois nmeros inteiros. O
algoritmo acima descrito complicado de ser realizado no computador, o que resulta em
baixa eficincia (execuo lenta). Um outro ponto negativo termos duas representaes
para o zero.
Portanto:
Ex.1 Ex.2
(base -1) ---> 999 FFFF
- 297 - 3A7E
Complemento---> 702 C581
Org Comp Prof Pedro Corra Pag 27
FAIXA DE REPRESENTAO
A representao na base b em complemento a (base-1) com n bits possui bn representaes
e permite representar bn -1 valores. H duas representaes para o zero.
A faixa de representao de uma representao na base 2 em complemento a (base-1) com
n bits a mesma que em sinal e magnitude e pode ser calculada como
2n valores, entre - ( 2n-1-1) e + ( 2n-1-1)
O maior valor inteiro positivo ser ento + ( 2n-1-1) e o menor valor inteiro negativo ser
- ( 2n-1-1).
Org Comp Prof Pedro Corra Pag 28
Obs: Podemos concluir que, tal como na representao em sinal e magnitude, sempre
que em uma representao em complemento o primeiro dgito binrio for 1, o nmero
representado negativo! Mas importante notar que o bit mais significativo, na
representao em complemento, ao contrrio do que ocorre na representao em sinal
e magnitude, NO REPRESENTA O SINAL DE NEGATIVO!
Org Comp Prof Pedro Corra Pag 29
REPRESENTAO
2.5.6.4 DE NMEROS NEGATIVOS EM
COMPLEMENTO A BASE
A representao dos nmeros inteiros negativos em complemento a base obtida
subtraindo-se da base cada algarismo do nmero. Ora, seria a mesma coisa subtrair cada
algarismo de (base-1), isto , calcular o complemento a (base -1) e depois somar 1 ao
resultado, ou seja:
b - N = [(b-1) - N] + 1.
Ou seja, encontramos o complemento a (base-1) do nmero (o que facilita muito no caso
dos nmeros binrios) e depois somamos 1 ao resultado. Fica mais fcil entender atravs de
exemplos:
Ex.1: Calcular o complemento a base do nmero 29710.
Se a base 10, o complemento a base ser igual a complemento a 10.
Ex.2: Calcular o complemento a base do nmero 3A7Eh.
Se a base 16 (lembremos mais uma vez que o H ou h depois do nmero simboliza
"hexadecimal"), o complemento a base ser igual a complemento a 1610 ou 10h.
Org Comp Prof Pedro Corra Pag 30
2.5.6.5 Exerccios
2.5.7.1 Exerccios
OU ( + ) - sinal de soma.
Boole desenvolveu sua lgebra a partir desses conceitos bsicos e utilizando apenas
os algarismos 0 e 1.
Os primeiros computadores fabricados, como o ENIAC, trabalhavam em
DECIMAL. No entanto, a utilizao de circuitos eletrnicos que operassem com 10
diferentes nveis de tenso (para possibilitar detectar as 10 diferentes grandezas
representadas no sistema decimal) acarretavam uma grande complexidade ao projeto e
construo dos computadores, tendo por conseqncia um custo muito elevado. Surgiu
ento a idia de aplicar a lgebra de Boole, simplificando extremamente o projeto e
construo dos computadores.
Mas como os conceitos da lgebra de chaveamentos (um ramo da lgebra do Boole)
so aplicados ao projeto dos computadores digitais?
A chave de tudo um circuito eletrnico chamado CHAVE AUTOMTICA.
Como funciona uma chave automtica?
Vamos imaginar um circuito chaveador com as seguintes entradas:
- uma fonte de alimentao ( E ) (fornece energia para o circuito);
- um fio de controle ( C ) (comanda a operao do circuito);
- um fio de sada ( S ) (conduz o resultado).
CIRCUITO OU (OR)
Tabela-Verdade
A B L
0 0 0
0 1 1
1 0 1
1 1 1
2.6.11 Exerccios
___
5) Seja A = 10011. Calcular X = A ( not A ).
_____
6) Seja A = 10010 e B = 11110. Calcular X = A B .
3. Subsistema de Memria
3.1. TECNOLOGIAS
As primeiras tecnologias utilizadas em memrias foram as memrias de ncleos
magnticos, hoje apenas uma curiosidade. As memrias modernas so compostas por
circuitos semicondutores, com novas tecnologias sendo criadas a cada ano permitindo que
grandes quantidades de clulas de memria sejam encapsuladas em pequenas pastilhas.
Custo alto
Velocidade alta
Baixa capacidade
de armazenamento
Reg
Memria Cache
Memria Principal
Baixo custo
Velocidade baixa
Elevada capacidade Memria Auxiliar
de armazenamento
Tringulo da memria
Org Comp Prof Pedro Corra Pag 47
A UCP v nesta ordem e acessa primeiro a que est mais prxima. Subindo na
hierarquia, quanto mais prximo da UCP, maior velocidade, maior custo, porm menor
capacidade de armazenamento.
3.3. REGISTRADORES
Registradores so dispositivos de armazenamento temporrio, localizados na UCP,
extremamente rpidos, com capacidade para apenas um dado (uma palavra). Devido a sua
tecnologia de construo e por estar localizado como parte da prpria pastilha ("chip") da
UCP, muito caro. O conceito de registrador surgiu da necessidade da UCP armazenar
temporariamente dados intermedirios durante um processamento. Por exemplo, quando
um dado resultado de operao precisa ser armazenado at que o resultado de uma busca da
memria esteja disponvel para com ele realizar uma nova operao.
A figura 1 ilustra o smbolo grfico de um registrador de carga paralela de 8 bits,
apresentando as suas 8 entradas, 8 sadas e as entradas para os comandos que habilitam
estas entradas ou sadas.
Registrador de 8 bits
Sempre que a UCP vai buscar uma nova instruo (ou dado), ela acessa a
memria cache;
Se a instruo (ou dado) estiver na cache, chama-se de acerto ou "cache hit", ela
transferida em alta velocidade (compatvel com a da UCP).
Se a instruo (ou dado) no estiver presente na cache, chama-se de falta,
"cache miss" ou "cache fault", ento o sistema est programado para
interromper a execuo do programa e transferir a instruo desejada da MP
para a cache. Porm, essa transferncia no somente da instruo (ou dado)
desejada, mas dela e de um grupo subsequente, na pressuposio de que as
instrues do grupo sero requeridas pela UCP em seguida e, portanto, j
estaro na cache quando necessrio. O ndice de cache hit ou taxa de acerto da
cache geralmente acima de 90%.
seguir pela UCP) gravado em uma parte da Memria Principal. Recentemente, as unidades
de disco passaram a incorporar em sua interface chips de memria - tipicamente 32 a 64
Kbytes - para acelerar a transferncia de dados, utilizando um algoritmo de cache.
Cada clula identificada por um endereo nico, pelo qual referenciada pelo
sistema e pelos programas. As clulas so numeradas seqencialmente, uma a uma, de 0 a
N-1. Cada um desses nmeros chamado de endereo da clula. O Endereo o
localizador da clula, que permite identificar univocamente uma clula. Assim, cada clula
pode ser identificada pelo seu endereo.
Unidade de transferncia a quantidade de bits que transferida da memria em
uma nica operao de leitura ou transferida para a memria em uma nica operao de
escrita. O tamanho da clula poderia ser igual ao da palavra, e tambm unidade de
transferncia, porm por razes tcnicas e de custo, so freqentemente diferentes.
OBS.: Uma clula no significa o mesmo que uma palavra; uma clula no necessariamente
contm uma palavra. Palavra a unidade de processamento da UCP. Uma palavra deve
representar um dado ou uma instruo, que poderia ser processada, armazenada ou
transferida em uma nica operao. No entanto, em geral no assim que acontece e os
computadores comerciais no seguem um padro nico para a organizao da UCP e MP.
Computadores comerciais (tais como por exemplo os baseados nos processadores Intel x86)
podem ter o tamanho da palavra definido como de 32 bits, porm sua estrutura de memria
tem clulas de 16 bits.
EXEMPLO:
N = 2E
0 a (N-1) -
M - Tamanho x - n de bits N - n de T - Capac. da
Faixa de
da clula do endereo endereos memria
endereos
8 bits - - 1 K byte -
16 bits - 1 K endereos - -
- 4 bits - 256 bits -
4 bytes - - 4 Gbytes -
- - - 1 Mbyte 0 a 65.535
64 bits - - - 0 a 262.143
Org Comp Prof Pedro Corra Pag 54
3.10. Barramentos
Um barramento uma conexo fsica para a transmisso de sinais entre sistemas digitais,
que utilizado para comunicao entre eles. Trata-se de um conjunto de condutores (fios,
trilhas, silcio) por onde passam os bits. Uma das principais caractersticas de um
barramento a sua largura, isto , quantos bits podem ser transmitidos simultaneamente.
R Barramento de Dados M
D e
C M m
P R Barramento de Endereos
r
E
U i
M Barramento de Controle
a
Figura 2 - Interface CPU / Memria
e guardar em #10
8 9 10 11
12 13 14 15
3 0 0
Org Comp Prof Pedro Corra Pag 60
Quadro 3 - Exerccio
0 1 2 3
Ler o prximo Se #15 > #13 mudar Multiplicar #14 por Somar #12 com #15
carto e armazenar a chave para #5 #15 e guardar em e guardar em #15
no #13 #14
4 5 6 7
#1
8 9 10 11
12 13 14 15
1 0 1 2
Org Comp Prof Pedro Corra Pag 61
Este conceito tambm conhecido por modelo de von Neumann, sendo que o
gargalo neste sistema o grande fluxo de dados entre a CPU e a memria do computador.
4.3.1. Registradores
Para que a CPU possa efetuar operaes sobre os dados da memria, eles devem
ficar, mesmo que temporariamente, armazenados em registradores. O nmero de
registradores e os seus tamanhos dependem da arquitetura e organizao de um
processador, no podendo ser expandidos pelo usurio por serem implementados
diretamente no circuito integrado da CPU. O conjunto de registradores de um processador
muitas vezes chamado de banco de registradores (register file).
Alguns destes registradores possuem uso dedicado, isto , so utilizados
internamente pelo processador durante a execuo das instrues e no esto disponveis
para o programador. Por exemplo:
PC - Program Counter (ou CI - Contador de Instruo): Armazena o endereo
da prxima instruo a ser executada pela CPU.
RI - Registrador de Instruo: Mantm o cdigo binrio da instruo sendo
executada, a qual vai ser interpretada pelo decodificador de instrues, que por
sua vez, instrui Unidade de Controle sobre os passos a serem tomados para que
a instruo seja efetivamente executada.
RDM - Registrador de Dados da Memria: Armazena os dados que esto sendo
transferidos de/para a memria.
REM - Registrador de Endereos da Memria: Armazena o endereo da clula
onde deve ser feita a prxima operao de Leitura/Escrita na memria.
Parte dos registradores est disponvel para ser utilizada pelos programas.
Atualmente, a tendncia que os processadores disponibilizem algumas dezenas destes
registradores. Computadores mais simples deveriam disponibilizar, pelo menos, o seguinte
registrador:
AC - Acumulador: Serve para o armazenamento temporrio do resultado das
operaes lgicas e aritmticas. Quando o nico registrador disponvel, todas
as instrues o utilizam tanto como operando fonte como operando destino.
Org Comp Prof Pedro Corra Pag 63
4.3.2. Unidade de Aritmtica e Lgica - UAL (ou Unidade Lgico Aritmtica - ULA)
O PH1 possui um conjunto de cinco registradores, a maioria deles com 8 bits, com
exceo do RI que possui somente 4 bits. Estes podem ser classificados em dois grupos: de
uso reservado ao processador e de uso geral. No Quadro 5 so apresentados estes
registradores.
O nico registrador de uso geral no PH1 o AC, isto , somente ele est disponvel
diretamente para o programador.
5.1.2. Os barramentos
utilizado somente por trs registradores (PC, REM, RDM). O ltimo tipo o barramento de
controle, que envia sinais a partir da UC a fim de comandar o funcionamento de cada
circuito do processador.
O tamanho da palavra utilizada pela UAL do PH1 de oito bits e todas as suas
operaes so realizadas com nmeros inteiros sinalizados em complemento de dois. A
unidade lgica aritmtica recebe como entrada normalmente dois operandos. Um o
registrador AC e o outro pode ser um valor vindo da memria, armazenado
temporariamente em RDM. O resultado da operao armazenado novamente em AC.
NOT JL end
Parar '1'
Fim Se
Fim Enquanto
Fim.
Figura 8 - Algoritmo de funcionamento do PH1.
Exerccio 2:
Programa em Assembly
Exerccio 3
Preencha o quadro abaixo com os valores que seriam armazenados na MP, aps o
montador (assembler) do PH1 fazer a traduo para a linguagem de mquina do programa
em linguagem de montagem (assembly) fornecido.
Org Comp Prof Pedro Corra Pag 80
Endereo Contedo
0
text
1
LDR y 2
3
laco: JEQ fim 4
LDR r 5
6
MUL x 7
STR r 8
9
LDR y 10
SUB um 11
12
STR y
13
JMP laco 14
fim: LDR r 15
16
HLT 17
18
data 19
20
r: byte 1 ... ...............
x: byte 4 ... ...............
128
y: byte 3 129
um: byte 1 130
131
Exerccio 4:
O processador PH1 possui uma srie de limitaes, como o fato de existir um nico
registrador de uso geral, assim como o fato de que suas instrues poderem enderear a
memria apenas de uma forma. O PH2, por sua vez, representa uma evoluo, onde
algumas novas caractersticas sero destacadas para a continuidade do aprendizado. Desta
forma somente sero apresentadas na seqncia os aspectos deste processador que forem
diferentes daquela verso original.
0 0 0 1 0 1 0 0
|---------------- 8 bits ---------------|
Operando (End) 1 0 0 0 0 0 1 0
Instrues com operando
1 1 1 1 0 0 0 0
|---------------- 8 bits ---------------|
Instrues sem operando
Org Comp Prof Pedro Corra Pag 84
endereamento define onde a CPU vai buscar os operandos de suas instrues. No PH2 so
reservados dois bits para identificar o modo de endereamento, sendo que as instrues que
no possuem operando ignoram o contedo destes bits. Estes modos so apresentados no
Quadro 15.
Quadro 15 - Modos de endereamento do PH2
Cdigo Endereamento
00 Direto
01 Indireto
10 Imediato
11 Indexado
Exerccios
Exerccio 1:
Preencha o quadro abaixo com os valores a serem armazenados na MP, aps o montador
(assembler) do PH2 fazer a traduo para a linguagem de mquina do programa em
linguagem de montagem (assembly) fornecido. Objetivo: exercitar a converso para binrio.
End Contedo
0
Text
1
LDR AC, x 2
3
LDR BC, y 4
LDR IC, #4 5
6
LDR CC, #x 7
laco: JEQ BC, fim 8
9
10
DEC BC 11
12
JMP laco
13
fim: INC AC 14
STR CC, ultimo 15
16
HLT 17
18
19
data 20
x: byte 8 ...
128
y: byte 5 129
ultimo: byte 0 130
131
132
Org Comp Prof Pedro Corra Pag 87
Exerccio 2:
Preencha o quadro abaixo com os valores a serem armazenados na MP, aps o montador
(assembler) do PH2 fazer a traduo para a linguagem de mquina do programa em
linguagem de montagem (assembly) fornecido. Objetivo: exercitar o modo de endereamento
indexado.
End Contedo
0
Text
1
LDR AC, #0 2
3
LDR IC, #3 4
laco: JL IC, fim 5
6
LDR AC, IC+dados 7
DEC IC 8
9
JMP laco 10
fim: STR AC, ultimo 11
12
HLT
13
14
data 15
16
dados: byte 5 17
byte 3 ...
128
byte 6 129
byte 10 130
131
ultimo: byte 0 132
133
Org Comp Prof Pedro Corra Pag 88
Exerccio 3:
O contedo do quadro abaixo e a esquerda, representa as instrues de um programa em
linguagem de mquina, armazenadas na MP de um computador. Complete o espao ao lado
direito do quadro com as instrues correspondentes a esse programa em linguagem de
montagem (assembly) do PH2.
Programa que calcula a potncia de um nmero x elevado a y-sima potncia.
Calcula r = x ** y
Com relao ao tipo de armazenamento interno utilizado pela CPU e a forma com
que os operandos das instrues so referenciados, podem-se classificar as arquiteturas de
computadores dentro das seguintes classes: Arquitetura de acumulador, de pilha, register-
memory e load-store.
Exemplo: A = B + C
LOAD B ; Acumulador MEM[B]
ADD C ; Acumulador Acumulador + MEM[C]
STORE A ; Mem[A] Acumulador
Exemplo: A = B + C
LOAD R1, B ; R1 MEM[B]
ADD R1, C ; R1 R1 + MEM[C]
STORE R1, A ; MEM[A] R1.
Exemplo: A = B + C
LOAD R1, B ; R1 MEM[B]
LOAD R2, C ; R2 MEM[C]
ADD R3, R2, R1 ; R3 R2 + R1
STORE R3, A ; MEM[A] R3
Exemplo: A = B + C
PUSH C ; topo topo+1, pilha[topo] MEM[C]
PUSH B ; topo topo+1, pilha[topo] MEM[B]
ADD ; pilha[topo-1]pilha[topo]+pilha[topo-1],
topo topo-1
POP A ; MEM[A] pilha[topo], topo topo-1
Org Comp Prof Pedro Corra Pag 92
8.1. Introduo
UCP
UCP
Memria Principal
Sistema de E/S
Dados
Endereos
Controle
65.535 65.535
MP
MP
255 255
E/S E/S
0 0 0
Memria Compartilhada Memria Isolada
8.4.1. Interrupes
Uma interrupo um sinal de hardware que enviado ao processador quando um
evento detectado solicitando que este interrompa o que estiver fazendo e desviando a sua
ateno para outra atividade. Quando esta atividade concluda, o processador deve
retornar a execuo ao ponto em que ele estava quando foi interrompido.
Org Comp Prof Pedro Corra Pag 97
Para que o processador possa executar esta rotina, ele deve conhecer o endereo de
memria onde ela est armazenada. Alguns computadores mais simples utilizam uma nica
rotina para o tratamento de todas as interrupes sendo que esta rotina esta armazenada em
um endereo definido da memria. Para aumentar a versatilidade, a maioria dos sistemas
utiliza vetores de interrupes que armazenam o endereo da rotina especfica para o
tratamento de cada interrupo, como o caso dos PCs
Org Comp Prof Pedro Corra Pag 98
Processadores
menores que os chips CISC. E pelo fato de usarem menos transistores, geralmente sua
fabricao mais barata e produzem menos calor.
A primeira mquina RISC moderna foi o minicomputador 801 construdo pela IBM,
comeando em 1975, entretanto, a IBM no publicou nada a seu respeito at 1982. Em
1980, um grupo em Berkeley, liderado por David Patterson e Carlo Squin, comeou a
projetar pastilhas RISC VLSI. Eles criaram o termo RISC e batizaram sua pastilha de CPU
de RISC I, seguida de perto pela RISC II. Um pouco mais tarde, em 1981, do outro lado da
baa de So Francisco, em Stanford, John Hennessy projetou e fabricou uma pastilha RISC
um pouco diferente, que ele chamou de MIPS.
Estas trs mquinas RISC so comparadas a trs mquinas CISC na Tabela. 9.1.
Cada uma delas levou diretamente a importantes produtos comerciais. O 801 foi o ancestral
do IBM PC/RT, o RISC I foi a inspirao do projeto SPARC da Sun Microsystems, e a
pastilha MIPS de Stanford levou formao da MIPS Computer Systems.
Muitas previses vm afirmando que o futuro dos processadores caminha para um
projeto RISC, e provavelmente elas estejam corretas. Mas no tem havido um movimento
de venda em massa do RISC, por duas razes. A mais importante delas manter a
compatibilidade com o vasto nmero de software aplicativo, desenvolvido para trabalhar
com os processadores Intel CISC mais antigos. A segunda razo que no se recebe todos
os benefcios da arquitetura RISC, a no ser que se use um sistema operacional e programas
que tenham sido criados e compilados especificamente para tirar vantagens das operaes
RISC. a clssica situao do ovo e da galinha. Alguns fabricantes de computadores esto
oferecendo processadores RISC para se projetarem como lderes em tecnologia. Eles
executam os antigos programas CISC somente atravs da emulao de um processador
CISC, o que acaba negando as vantagens do RISC. Ao mesmo tempo, os criadores de
software relutam em converter seus programas para verses compiladas RISC quando ainda
h muitas pessoas usando PCs baseados em CISC.
O Pentium mudou isso. Os tcnicos podem argumentar se o Pentium pode ser um
verdadeiro chip RISC. um cmodo comprometimento. O Pentium executa antigos
aplicativos e sistemas operacionais e ao mesmo tempo oferece vantagens na velocidade de
programas criados especialmente para usar a capacidade do padro Pentium. E com o
sistema operacional cada vez mais avanado, pode-se colocar mais de um microprocessador
Org Comp Prof Pedro Corra Pag 102
Dado o desejo de ter toda instruo gastando um ciclo de relgio, claro que as
instrues que referenciam a memria vo ser um problema. Instrues que buscam seus
operandos de registradores e armazenam seus resultados em registradores podem ser
manipuladas em um nico ciclo, mas instrues que carregam a partir de, ou armazenam,
em memria levam muito tempo. Aumentar o ciclo de relgio por um fator de dois ou trs
para acomodar cargas e armazenamentos viola a Regra de Ouro N 1 do projeto RISC.
Como algumas instrues tm que referenciar memria, instrues especiais LOAD
e STORE so adicionadas arquitetura. Apenas estas instrues podem referenciar a
memria.
claro que proibir que as instrues comuns acessem a memria no resolve o
problema de como fazer com que LOADs e STOREs operem em um ciclo. A soluo est
em um pouco de truque. Vamos agora relaxar nosso objetivo ligeiramente. Em vez de
requerer que toda instruo deva ser executada em um nico ciclo, vamos meramente
insistir que seremos capazes de comear uma instruo a cada ciclo, sem levar em
considerao quando que ela termina. Se, em n ciclos, conseguirmos iniciar n instrues,
na mdia teremos atingido uma instruo por ciclo, o que suficientemente bom.
Para atingir este objetivo modificado, todas as mquinas RISC tm pipeline. A CPU
contm diversas unidades independentes que trabalham em paralelo. Uma delas busca as
instrues, e outras as decodificam e executam. A qualquer instante, diversas instrues
esto em vrios estgios de processamento.
Uma instruo comum utiliza duas unidades pipeline, uma para busca e outra para
execuo. Num instante de tempo uma instruo iniciada. No outro instante, a instruo
iniciada muda de unidade e executada. Na unidade que ficou livre iniciado uma nova
instruo. Assim mantemos a mdia, que iniciar uma instruo a cada ciclo. Porm
instrues LOADs e STOREs requerem uma terceira unidade, para referenciar a memria.
Ento, em vez de finalizarem a execuo em duas unidades, finalizam em trs unidades.
Os projetistas de RISC, se preocupam principalmente, em criar tcnicas e
dispositivos que acelerem o processamento da informao. Uma dessas tcnicas, o
Pipeline. O Pipeline uma tcnica em que o hardware processa mais de uma instruo de
cada vez. Ele no espera o trmino de uma instruo para executar outra. Em uma mquina
CISC tpica, temos, basicamente, quatro fases para a execuo: busca, decodificao,
Org Comp Prof Pedro Corra Pag 104
execuo e escrita. Em uma mquina RISC, temos as mesmas fases, s que executadas em
paralelo. Uma fase no precisa esperar a outra terminar, para que ela se inicie. Este
procedimento, no diminui o tempo de execuo da tarefa, mas melhora o processamento
global.
A transio de CISC para RISC foi uma mudana radical na arquitetura. Os
conjuntos de instrues foram mudados, sacrificando a compatibilidade binria para o
desempenho. Reduzindo o conjunto de instrues, o processador cabia em um chip menor
que permitia que os desenvolvedores aumentassem a velocidade do clock. Alm disso, o
processador poderia ser "pipelineado" e uma unidade de controle microcodificada tornou-se
desnecessria. RISC, "resolve os casos comuns mais rpidos", era o princpio que
conduziu a um aumento impressionante da performance comparado com os processadores
CISC.
Tabela. 9.1 RISC X CISC
RISC CISC
1 Instrues simples levando 1 ciclo Instrues complexas levando mltiplos ciclos
Apenas LOADs/STOREs referenciam a
2 Qualquer Instruo pode referenciar a memria
memria
3 Altamente pipelined No tem pipeline, ou tem pouco
4 Instrues executadas pelo hardware Instrues executadas pelo microprograma
5 Instrues com formato fixo Instrues de vrios formatos
Poucas instrues (Basicamente do tipo
Muitas instrues e muita quantidade de modos
6 Load/Store) e pouca quantidade de modos
de endereamento
de endereamento.
7 A complexidade est no compilador A complexidade est no microprograma
8 Mltiplos conjuntos de registradores Conjunto nico de registradores
Org Comp Prof Pedro Corra Pag 105