Escolar Documentos
Profissional Documentos
Cultura Documentos
Computadores
Motivao
Atravs do estudo da estrutura funcional e
organizacional de um sistema computacional, o aluno
ser capaz de identificar os componentes que o
compe, a funo de cada um deles, e a interao com
os demais componentes do sistema.
Todas as reas da Cincia da Computao baseiam-se
no processamento de informaes, que so realizados
atravs de operaes bsicas, extremamente simples,
que sero estudadas ao longo da disciplina.
2
Objetivo do Curso
Toda a base da Cincia da Computao est na
compreenso do funcionamento bsico de um
computador, que realizado atravs de operaes
elementares, mas que so utilizadas na
implementao de poderosos e complexos sistemas
computacionais.
Nos captulos seguintes veremos como funciona e
qual o propsito dos elementos que, operando em
conjunto, definem o que chamamos de computador.
Bibliografia
Introduo Organizao de Computadores Mrio A. Monteiro; ed.
LTC
Introduo Cincia da Computao Guimares/Lages; ed. LTC
Arquitetura e Organizao de Computadores Willian Stallings; ed.
Prentice Hall
Organizao Estruturada de Computadores Andrew S. Tanenbaum;
ed. LTC
Arquitetura de Computadores Hennessy e Patterson; ed. Campus
Introduo
A arquitetura de um sistema computacional
estabelece o modelo da organizao e funcionamento
de um sistema de processamento, com todas suas
partes, divididas em sees, interagindo entre si.
Os componentes e suas relaes so representados
atravs de sistemas hierrquicos, o que mostra-se
ideal para o estudo de conjuntos complexos e que
atuam em diferentes nveis; separados por suas
caractersticas, estudaremos o funcionamento de cada
um destes componentes.
5
Unidade Central
de Processamento
Sistema de Interconexo
Memria Principal
Interface de E/S
Disco
Vdeo
Rede
Etc.
Componentes Bsicos
Todo sistema de computao constitudo, ao
menos, pelos seguintes componentes:
Um mdulo que realize as operaes necessrias para a
execuo dos programas, a unidade central de processamento;
Uma rea de trabalho para o armazenamento das informaes
que sero processadas, a memria principal;
Dispositivos para o recebimento de informaes e
retorno/armazenamento dos resultados, os dispositivos de
entrada e sada de dados;
E finalmente, um meio atravs do qual os dispositivos possam
se comunicar e transmitir dados, os barramentos de
comunicao.
Abstraes
Tanto o hardware quanto o software so
constitudos de nveis hierrquicos, o nvel mais alto
esconde os detalhes dos mais baixos.
Utilizao dessas camadas
abstraes.
Abstraes
Um exemplo de abstrao cotidiano e presente na vida de
grande parte das pessoas a TV. Todos sabem como
utiliz-la, mas como ela funciona? Como as informaes
so transmitidas? Como seu funcionamento, do ponto
de vista eletrnico? A maioria das pessoas que utilizam
uma TV a operam em um nvel de abstrao muito alto.
Hoje, o mesmo acontece com os computadores. Internet,
editores de texto, jogos, etc., so recursos que muito
usurios dominam, mas sem fazer idia do que existe e o
que est acontecendo dentro da torre ou gabinete de seu
computador. Este conhecimento o que diferencia o
especialista em computao do usurio comum.
9
Subsistemas
Ao estudarmos qualquer assunto complexo e/ou com
grande riqueza de detalhes, a estratgia mais natural
para facilitar o processo de aprendizado subdividir o
tema principal em partes menores, e ento,
preocupar-se somente com uma poro por vez.
Aps estudadas todas as partes, o passo final
enxergar como estas se relacionam, tratando agora o
objeto de estudo como um todo e abstraindo, se
possvel, os detalhes mais especficos de cada uma das
partes.
10
Exemplo de Subsistema
Abaixo, um exemplo (ainda bastante simplificado) de
alguns componentes presentes na Unidade Central de
Processamento (UCP ou CPU):
Registradores
Rn
...
Barramento Interno
R1
R0
Unidade de Controle
11
12
Histrico
1642
Gerao 0
Mecnicos
1 Gerao
Vlvulas
1980
4 Gerao
VLSIs
1990
5 Gerao
ULSIs
2 Gerao
Transistores
3 Gerao
Circuitos
Integrados
13
14
Gerao 0 - Mecnicos
Mquina de calcular de Pascal (1642)
permitia apenas adio e subtrao
uso de engrenagens e funcionava manualmente com manivela
Leibniz (~1672)
multiplicao e diviso
Babbage (~1822)
Mquina de Diferenas
15
16
17
18
Gerao 0 - Mecnicos
Babbage (~1834)
Mquina Analtica
imprecisa
19
Gerao 0 - Mecnicos
Projeto de calculadoras automticas
uso de rels eletromagnticos.
Aiken (1944, Harvard)
Mark I
computador de uso geral construdo com rels.
72 palavras de 23 dgitos decimais;
Baseado nos trabalhos de Babbage;
Mark II
No saiu do projeto, pois a tecnologia de rels
tornou-se obsoleta em pouco tempo, finalizando a gerao
dos dispositivos mecnicos, dando lugar ao incio da era
eletrnica.
Partes mecnicas
baixa velocidade de processamento e
pouca confiabilidade.
20
1 Gerao - Vlvulas
ENIAC (Electronic Numerical Integrator And Computer)
Primeiro computador digital de propsito geral (1946)
Criado inicialmente para a realizao de clculos balsticos
18 mil vlvulas, 10 mil capacitores, 70 mil resistores, um peso de 30
toneladas, consumo de 140 quilowatts e 800 km de cabos
Programao feita em painis (~ 6000 chaves multiposicionais),
com redistribuio de cabos
conhecimento profundo do
hardware
Mquina decimal, com 20 registradores capazes de armazenar um
valor numrico de 10 dgitos
Rpida
5.000 operaes/segundo
ENIAC
22
1 Gerao - Vlvulas
EDVAC (Electronic Discrete Variable Automatic Computer)
Mquina IAS (Institute of Advanced Studies,1946)
desenvolvida por John von Neumann;
aritmtica binria ao invs da decimal;
definio de uma arquitetura de computadores com programa
armazenado;
Vlvula
2 Gerao - Transistores
Transistor
melhor custo, tamanho e desempenho do
que as vlvulas;
base da lgica digital
ligar e desligar a
corrente eltrica em um dispositivo (2
estados).
TX-0 (Lincoln Laboratory do M.I.T., 1957)
primeiro
computador
experimental.
transistorizado,
apenas
26
27
Pastilha (chip)
Porta Lgica
Pastilha empacotada
28
4 Gerao - VLSIs
VLSI (Very Large Scale Integration)
milhes de transistores armazenados em uma nica pastilha;
computadores cada vez menores e mais rpidos;
A miniaturizao de componentes eletrnicos levou ao surgimento
dos computadores pessoais, criando um novo segmento no mercado;
Intel 4004 (1971): o primeiro microprocessador;
Intel 8080 (1974): microprocessador de 8 bits de propsito geral.
5 Gerao - ULSIs
ULSI (Ultra Large Scale Integration)
Componentes cada vez menores de de mais baixo custo, o que
permitiu a evoluo de aplicaes computacionais mais
complexas.
30
5 Gerao - ULSIs
Novos paradigma no projeto de computadores:
Arquiteturas Paralelas;
Processamento Distribudo nos Sistemas Operacionais;
Redes de Alta Velocidade;
Linguagens e metodologias de programao concorrentes;
Linguagens naturais: interface homem/mquina.
Novas aplicaes:
Caixas eletrnicos;
Computadores em automveis;
Notebooks;
Projeto genoma;
World Wide Web;
Computao distribuda em escala mundial.
31
Novas tecnologias
Para o desenvolvimento de aplicaes mais eficientes,
programadores devem se familiarizar com novos
aspectos da organizao de computadores.
Hierarquia de memria (memria principal, memria
cache em vrios nveis, etc.);
Paralelismo de execuo de instrues;
Novas tecnologias de processamento (processadores
multicore, etc.).
32
P e rf o r m a n c e
800
700
600
500
D E C A lp h a 5 /5 0 0
400
300
D E C A lp h a 5 / 3 0 0
200
100
D E C A lp h a 4 /2 6 6
S U N - 4 / M IP S
M IP S
IB M
260
M 2000
R S 6000
0
1987
M /1 2 0
1988
1 9 89
1 99 0
IB M P O W E R 1 0 0
D E C A X P /5 0 0
H P 9 0 0 0 /7 5 0
1991
1 99 2
199 3
19 94
1995
19 96
1 99 7
Year
33
35
36
Desempenho
37
Sistemas de Numerao
Os sistemas de numerao surgiram com a evoluo
da civilizao para atender a necessidade de registrar
informaes sobre quantidades.
Sistema decimal: o sistema de numerao mais
comum de ser empregado, o que estamos mais
habituados a trabalhar e pensar (mas existem excees!
Ex.: dzia, grosa).
Surgimento a partir da analogia com a contagem utilizando os
dedos da mo;
Criao da notao posicional (nmeros em posies diferentes
representam valores diferentes - unidade, dezena, centena, etc.).
39
Sistemas de Numerao
Base de um sistema de numerao: quantidade de
algarismos disponveis para a representao.
Ex: base decimal: 0 1 2 3 4 5 6 7 8 9 base 10
40
Nveis de Programao
Linguagem de montagem ainda est longe da notao
utilizada pelas pessoas que querem gerar programas
para resolver problemas.
Soluo: criar um conjunto de instrues (uma
linguagem de mais alto nvel) que seja mais dirigido s
pessoas do que mquina.
Linguagem de programao de alto nvel traduzida pelo
compilador.
A+B
add A,B
1000110010100000
41
Representao Simblica
No programa em linguagem de montagem, as
instrues
so
representadas
atravs
de
abreviaes, chamadas de mnemnicos, que
associam o nome da instruo sua funo, como por
exemplo:
ADD
SUB
Soma
Subtrao
MPY
Multiplicao
DIV
Diviso
LOAD
STOR
Compilador C
Programa
em linguagem
de montagem (MIPS)
swap:
muli $2,$5,4
add $2,$4,$2
lw $15,0($2)
lw $16, 4($2)
sw $16,0($2)
sw $15,4($2)
jr
$31
Montador
Programa
em linguagem
de mquina
0001011101110110
1100011001010101
0000000111110101
0011001100110011
1100011110001110
1110001111000000
1010101010101010
43
Representao da Informao
Sistema Binrio: bit (binary digit): 1 ou 0 sistema de
numerao conhecido como base 2.
Sinal eltrico mais simples tem dois estados,
representados por sim e no.
No confundir bases: 102 = 210 ; dez igual a dois???
Instrues: conjunto de bits inteligvel pelo
computador.
Ex: 1000110010100000 (deve somar dois nmeros).
44
Representao da Informao
Repr. Binria
Potncia
Repr. Decimal
20
10
21
100
22
1000
23
10000
24
16
100000
25
32
1000000
26
64
10000000
27
128
100000000
28
256
1000000000
29
512
10000000000
210
1024
45
Representao de Informao
Representao binria: perfeitamente adequada para
computadores, mas para seres humanos...
Soluo: trabalhar com bases que utilizem a potncia
de 2; as mais utilizadas so octal (23) e hexadecimal
(24).
Octal: oito algarismos para representao; um algarismo octal
representa 3 bits.
01234567
Hexadecimal: dezesseis algarismos para representao; um
algarismo hexadecimal representa 4 bits.
0123456789ABCDEF
46
Representao de Informao
A princpio, as bases binria, octal e hexadecimal podem
parecer um conceito totalmente novo, mas no so. Sua
formao e comportamento funcionam exatamente como
na base decimal; a lgica de construo exatamente a
mesma!
Lembre-se da base decimal, como temos um conjunto de
smbolos ou algarismos, que associamos a certas
quantidades de alguma coisa que queremos contar. Quando
no existem mais algarismos a serem utilizados sozinhos,
comeamos a combin-los, seguindo um critrio
estabelecido pela notao posicional
47
Tabela de Representao de
Sistemas de Numerao
Decimal
Binrio
Hexadecimal
Octal
10
11
100
101
110
111
1000
10
1001
11
10
1010
12
11
1011
13
12
1100
14
13
1101
15
14
1110
16
15
1111
17
48
Valores Binrios
Ser importante identificar se um valor maior que
o outro quando estivermos trabalhando em sistemas
de numerao que no sejam decimais. No h
segredo, funciona da mesma forma que no sistema
decimal.
Qual valor maior?
10100101010010 ou 11010110001011?
11111 ou 100000?
49
Ex.: 0011111101012
=
001 111
1
110
101
= 17658
50
Ex.: 0011111101012 =
= 3F516
51
Ex: 3F516
316 = 112
F16 = 11112
516 = 1012
0011111101012
e no
n o 1111111012 = 1FD16
52
Exerccios
Efetue as seguintes converses de base:
101001011012 = ( )16 = ( )8
5FB716 = ( )2 = ( )8
743258 = ( )2 = ( )16
53
54
Exs.:
1523
16
95
16
15
16
5F316
3359
419
52
64378
55
Exerccios
Efetue as seguintes converses de base:
1D516 = ( )10
1001011012 = ( )10
53418 = ( )10
15510 = ( )2
6310 = ( )8
11910 = ( )16
56
lgebra de Boole
No sculo XIX, o matemtico ingls George Boole
desenvolveu um estudo estabelecendo o conjunto de
regras e estruturas a serem aplicadas a smbolos
lgicos, ficando conhecida como lgebra de Boole
(ou lgebra Booleana)
A motivao por trs deste estudo surgiu dos
problemas constantes nos projetos de circuitos de
chaveamento com rels; o planejamento lgico
reduziria a complexidade e os erros na
implementao
57
lgebra de Boole
Os circuitos eletrnicos modernos mantm uma
estrutura de funcionamento anloga a utilizada com
rels, portanto, as mesmas tcnicas desenvolvidas
para circuitos com rels ainda so utilizadas no
projeto de modernos computadores de alta
velocidade
A lgebra booleana, por meio de suas regras,
proporciona um modo econmico e direto de
descrio do conjunto de circuitos usado nos
computadores
58
lgebra de Boole
As variveis usadas nas equaes booleanas podem
assumir apenas um de dois valores possveis,
representados pelos smbolos 0 e 1, chamados de
estados lgicos
Usualmente utilizamos 1 para representar um
circuito fechado ou no estado ligado ON, e 0 um
circuito aberto ou no estado desligado OFF
59
Multiplicao
10
61
101
+ 11
1000
101
x 11
101
+ 101
1111
10002 = 810
11112 = 1510
62
1 111000
100101
+ 11110
1000011
111
x
111
111
111
+ 111
110001
26+21+20 = 6710
25+24+20 = 4910
63
Exerccios
Converta para binrio e efetue as operaes a seguir.
O resultado final deve ser representado na mesma
base dos valores originais.
6310 + 3410
3210 x 610
7BA16 + 9C616
348 x 218
738 + 348
64
Operaes Binrias
Subtrao: o mtodo mais simples de subtrao entre dois
valores binrios atravs do complemento a base,
executado pela seguinte sequncia de instrues (ei, um
algoritmo!):
Mantenha o minuendo na sua forma original;
Inverta o subtraendo (todo 1 vira 0 e todo 0 vira 1;
Some o minuendo e o subtraendo;
Some 1;
Ignore o algarismo mais significativo caso ele esteja numa posio
decimal que os operandos no tenham um algarismo significativo.
Obs.: no se esquea de representar os zeros nosignificativos (pois este sero importantes na inverso)!
65
Complemento a 2
Esta forma de representao que vimos chamada
complemento a 2; pode ser usada para outras operaes
particulares, alm da transformao de uma subtrao
em adio.
Em qualquer situao, a converso feita da mesma
forma: invertem-se os bits (0 1 e 1 0) e soma 1.
importante sempre lembrar dos zeros no-significativos
para realizar uma converso, pois zeros esquerda se
tornaro 1s.
66
1001110
100101
+ 110011
1011000
+
1
1011001
67
Exerccios
Efetue as seguintes operaes. O resultado final
deve ser representado na mesma base dos valores
originais.
3710 3010
8310 8210
638 348
778 118
BB16 AA16
C4316 19516
68
69
10
-10
10
00
71
11
110
011
00
72
Exerccios
Efetue as seguintes operaes. O resultado final
deve ser representado na mesma base dos valores
originais.
12010 / 510
6310 / 810
1458 / 48
B216 / 816
73
Representao de Dados
Antes de prosseguirmos, precisamos entender os seguintes
conceitos:
BIT (BInary digiT): a representao do menor item de dado
possvel;
Byte: um conjunto de bits ( adotado como padro que 1 byte
formado por 8 bits);
Palavra: um conjunto de bytes; um computador com palavra de 32
bits tem 4 bytes por palavra. A maioria das instrues de um
computador opera sobre palavras, por exemplo, cada operao de
um computador de 32 bits opera sobre palavras de 32 bits, deve ter
registradores de 32 bits, instrues para 32 bits, etc.
Representao de Dados
Da forma que vimos at agora todas as representaes
numricas so de valores inteiros e sem um limite
mximo, isto , iramos de 0 a . Devemos estabelecer
um domnio de valores dentro do qual o sistema ir
operar. Ser necessrio estabelecermos uma forma de
representar valores negativos.
Na prtica utilizamos o bit na posio mais significativa
(isto , o bit mais a esquerda) para a representao do
sinal, com a seguinte conveno:
Bit 0 sinal positivo.
Bit 1 sinal negativo.
75
Representao de Dados
Desta forma, uma representao em binrio com n
bits teria disponveis para a representao do
nmero n-1 bits (o bit mais significativo representa o
sinal). Este modelo de representao chamado de
representao em sinal e magnitude.
76
Representao de Dados
Teoria:
-
+
0
-(2n-1-1)
+(2n-1-1)
0
77
Representao em Sinal e
Magnitude
A magnitude o valor absoluto de um nmero, que
independe do sinal, representada em binrio.
O sinal representado pelo bit mais significativo,
sendo positivo se representado por 0 e negativo se
representado por 1.
O valor dos bits usados para representar a magnitude
independe do sinal, ou seja, seja o nmero positivo
ou negativo, a representao da magnitude ser
exatamente a mesma, variando somente o bit de
sinal.
78
Representao em Sinal e
Magnitude
Sinal
Ex.:
Magnitude
0110110 = + 5410
1110110 = - 5410
o binrio 110110 corresponde ao valor absoluto 54.
Exemplo de Representao de
Dados
Valor decimal
+9
-9
+127
-127
Exerccio
Complete o quadro a seguir com os valores pedidos
para uma arquitetura de 32 bits, representados como
uma potncia de base 2, quando conveniente:
32 bits
Sem Sinal
Sinal e Magnitude
Menor Valor
Maior Valor
Quantidade de
valores distintos
81
82
Representao de operaes
Lembre-se que as instrues so interpretadas em
linguagem de montagem (que ser estudada com
detalhes mais adiante), utilizando mnemnicos
para representar as operaes, desta forma, apenas
os operandos possuem sinais, por exemplo:
+5 ( 7) SUB (5, -7)
+12 + ( 3) ADD (12, -3)
83
84
0110110
+ 0101011
1100001
26 + 25 + 20 = + 9710
86
Exemplo de Multiplicao
Multiplicao:
Na multiplicao so utilizadas as regras j conhecidas
para a magnitude, e o sinal manipulado da mesma
forma que na aritmtica tradicional.
+1910 x (-1910) = 010011 x 110011 = -36110
10011
x 10011
10011
10011
+ 10011
101101001
28+26+25+23+20 =
256 + 64 + 32 + 8 + 1 = 36110
87
Exerccios
Efetue as seguintes operaes em sinal e
magnitude, sem restries quanto a quantidade de
bits. . O resultado final deve ser representado na
mesma base dos valores originais.
4710 (+5210)
6910 (+4010)
3210 x (+1410)
548 x (-58)
A216 x (-1316)
88
Limites de memria
Em sistemas reais, tanto os valores operados quanto os
resultados produzidos podem exceder os limites de
armazenamentos impostos pela arquitetura, ou seja, o
nmero de bits que compem a palavra (principalmente em
multiplicaes).
Para contornar esta limitao, no caso de o nmero de bits da
soluo exceder o limite da palavra, podem ser utilizadas duas
palavras para armazenar o resultado
Uma palavra de n bits contm os n-1 bits do valor, precedidos
pelo bit de sinal. A outra palavra conter os bits mais
significativos, 0s complementares, se necessrios, e o sinal
do resultado.
89
1 0 1 0 1 1
1 0 1 0 0 1
= 1101101001 = -361
90
Limites de memria
No caso de no ser possvel armazenar um valor mesmo
usando o limite de palavras do sistema para a representao
de um valor, ocorre um erro chamado OVERFLOW, que pode
ser traduzido livremente como estouro de memria. Isto
significa que tentamos armazenar mais bits do que uma
capacidade pr-estabelecida para uma varivel.
Exs.:
Tipo
Tamanho em
Bytes
Faixa Mnima
unsigned char
0 a 255
signed char
-127 a 127
int
-2.147.483.648 a 2.147.483.647
unsigned int
0 a 4.294.967.295