Escolar Documentos
Profissional Documentos
Cultura Documentos
Prof. Marcos Quinet Universidade Federal Fluminense UFF Plo Universitrio de Rio das Ostras - PURO
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 baseiamse no processamento de informaes, que so realizados atravs de operaes bsicas, extremamente simples, que sero estudadas no decorrer 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 extremamente simples, 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 Fundamentos de Arquitetura de Computadores Raul Fernandes Weber; ed. Sagra Luzzatto Arquitetura de Computadores Pessoais Raul Fernandes Weber; ed. Sagra Luzzatto
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
Memria Principal
Interface de E/S
Componentes Bsicos
Todo sistema de computao constitudo, pelo menos, dos seguintes componentes:
Um mdulo que realize as operaes necessrias, 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.
7
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 A Interface entre os dois nveis de abstrao, hardware e software bsico caracteriza a arquitetura do conjunto de instrues da mquina Interface abstrata permite que vrias implementaes executem o mesmo software
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 informtica 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 encaixam, 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 ... R1 R0
Barramento Interno
Unidade de Controle
11
Histrico
1642 1945 1955 1965 1980 1990
Gerao 0 Mecnicos
4 Gerao VLSIs
5 Gerao ULSIs
13
Gerao 0 - Mecnicos
Mquina de calcular de Pascal (1642)
permitia apenas adio e subtrao uso de engrenagens e funcionava manualmente com manivela
Evoluo da mquina de Pascal, com pequenas melhorias e novos recursos, sendo mais rpida clculo de tabelas de nmeros teis navegao naval executava apenas um algoritmo e permitia s adio e subtrao mtodo de sada: perfurao dos resultados em uma placa de cobre com um buril de ao
14
15
16
17
Gerao 0 - Mecnicos
Babbage (~1834) Mquina Analtica
avano: mquina de uso geral ainda era inteiramente mecnica (rodas dentadas e engrenagens) 4 componentes: armazenamento (memria); engenho (unidade de clculo); seo de entrada (leitora de cartes perfurados); seo de sada (sada perfurada e impressa). tecnologia de hardware da poca imprecisa
18
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.
19
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 Duas ordens de magnitude maior e quatro ordens de magnitude mais lento que as mquinas de hoje
20
ENIAC
21
1 Gerao - Vlvulas
EDVAC (Electronic Discrete Variable Automatic Computer) Mquina IAS (1946)
desenvolvida por John von Neumann; aritmtica binria ao invs da decimal; definio de uma arquitetura de computadores com programa armazenado;
Vlvula
A funo de uma vlvula eletrnica regular o fluxo de corrente eltrica que passa por uma parte de um circuito
23
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).
24
25
26
Porta lgica: implementa uma funo booleana. Clula de memria: armazena um bit de informao.
Pastilha (chip)
27
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.
29
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; Laptops; Projeto genoma; World Wide Web; Computao distribuda em escala mundial.
30
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, cache L1,
cache L2, etc.).
31
D E C A lp h a 5 /5 0 0
0 1987
1 9 89
1 99 0
32
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
A posio ocupada por um algarismo em um nmero altera seu valor de uma potncia de 10 para cada casa esquerda.
Ex: 125 = 1 x 102 + 2 x 101 + 5 x 100
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 MPY DIV LOAD STOR Soma Subtrao Multiplicao Diviso Carregar dados da memria Armazenar dados na memria
42
Montador
Compilador C
swap:
0001011101110110
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 1 10 100 1000 10000 100000 1000000 10000000 100000000 1000000000 10000000000 Potncia 20 21 22 23 24 25 26 27 28 29 210 Repr. Decimal 1 2 4 8 16 32 64 128 256 512 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
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
50
51
Ex: 3F516
Exerccios
Efetue as seguintes converses de base:
101001011012 = ( )16 = ( )8 5FB716 = ( )2 = ( )8 743258 = ( )2 = ( )16
Dica: para as converses octal/hexadecimal e hexadecimal/octal, no h frmula direta, estes devem ser convertidos primeiro para binrio e depois convertidos novamente.
53
54
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 x 0 1 0 1 0 0 0 1
(um nmero N vezes b igual a soma de N com N b vezes); a subtrao pode ser feita atravs do mtodo de complemento a base (que veremos a seguir); Finalmente, a diviso pode ser feita atravs de sucessivas subtraes.
61
10002 = 810
11112 = 1510
62
26+21+20 = 6710
25+24+20 = 4910
63
Exerccios
Converta para binrio e efetue as seguintes operaes:
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 nosignificativos para realizar uma converso, pois zeros esquerda se tornaro 1s.
66
67
Exerccios
Efetue as seguintes operaes:
3710 3010 8310 8210 638 348 778 118 BB16 AA16 C4316 19516
68
69
71
72
Exerccios
Efetue as seguintes operaes:
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. Esta limitao necessria para que possamos representar atravs de bits diferentes tipos de dados (nmeros, instrues, etc.)
74
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) 0
+(2n-1-1)
77
Ex.:
0110110 = + 5410 1110110 = - 5410 o binrio 110110 corresponde ao valor absoluto 54.
A faixa de representao de um valor binrio em sinal e magnitude com n bits possui 2n representaes, representando os valores de - (2n-1-1) (menor valor negativo) a + (2n-1-1) (maior valor positivo).
Como a representao do zero em sinal e magnitude?
79
Como podemos observar, o maior e menor valores que podemos representar com 8 bits so, respectivamente, +127 e -127.
80
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 Menor Valor Maior Valor Quantidade de valores distintos
81
Sem Sinal
Sinal e Magnitude
Os bits referentes ao sinal dos operandos, positivo ou negativo, no devem ser operados aritmeticamente!
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
26 + 25 + 20 = + 9710
+5410 (+4310) (em uma representao com palavras de 8 bits): 11 1 11 0110110 0110110 A operao feita sem o + 1010100 - 0101011 bit de sinal! 10001010 + 1 10001011 00001011 = + 1110
1110
Por que os operandos foram invertidos? Lembre-se que as operaes so feitas somente com a magnitude, que so valores positivos, portanto, o menor valor deve ser subtrado do maior valor.
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 Operamos sem o bit de sinal (o mais significativo)
Exerccios
Efetue as seguintes operaes em sinal e magnitude, sem restries quanto a quantidade de bits:
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
bits mais significativos
1 0 1 0 0 1
= 1101101001 = -361
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 prestabelecida para uma varivel. Exs.:
Tipo unsigned char signed char int unsigned int Tamanho em Bytes 1 1 4 4 Faixa Mnima 0 a 255 -127 a 127 -2.147.483.648 a 2.147.483.647 0 a 4.294.967.295