Anda di halaman 1dari 69

Arquitetura de Computadores

NDICE

1 - COMPONENTES DE UM SISTEMA DE COMPUTAO ..................................................................... 4 1.1 - DESCRIO DOS COMPONENTES................................................................................................................ 4 1.2 - MQUINA DE VON NEUMANN .................................................................................................................... 5 1.3 - REPRESENTAO DAS INFORMAES ......................................................................................................... 6 1.3.1 - O Bit, o Caractere, o Byte e a Palavra............................................................................................ 6 2 - CONVERSO DE BASES E ARITMTICA COMPUTACIONAL .......................................................... 9 2.1 - OUTRAS BASES DE NUMERAO ................................................................................................................. 9 2.2 - CONVERSO DE BASES ............................................................................................................................ 11 2.2.1 - Converso entre Bases Potncia de 2 ........................................................................................... 11 2.2.2 - Converso de nmeros de uma base B para a base 10 ................................................................. 12 2.2.3 - Converso de nmeros decimais para uma base B ....................................................................... 12 2.3 - ARITMTICA BINRIA E HEXADECIMAL ..................................................................................................... 13 3- MEMRIA .................................................................................................................................................. 16 3.1 - MEMRIA SECUNDRIA ........................................................................................................................... 17 3.2 - ORGANIZAO DA MEMRIA PRINCIPAL ................................................................................................... 17 3.2.1 - Organizao de memria do tipo seleo linear........................................................................... 18 3.3 - OPERAES COM A MEMRIA PRINCIPAL ................................................................................................. 19 3.4 - CLCULOS COM CAPACIDADE DA MP ...................................................................................................... 21 3.5 - MEMRIA CACHE ................................................................................................................................... 23 3.5.1 - Utilizao da memria cache ........................................................................................................ 23 3.5.2 - Conceito de localidade .................................................................................................................. 24 3.5.3 - Mapeamento de dados MP/Cache ................................................................................................. 24 3.5.4 - Algoritmos de substituio de dados na cache .............................................................................. 26 3.5.5 - Poltica de escrita pela memria cache ........................................................................................ 27 3.6 - REGISTRADORES ..................................................................................................................................... 27 3.7 - TIPOS (TECNOLOGIAS DE FABRICAO DE MEMRIAS) ............................................................................. 28 3.8 - EXERCCIOS: .......................................................................................................................................... 30 4 - UNIDADE CENTRAL DE PROCESSAMENTO (PROCESSADOR) .................................................... 34 4.1 - FUNO PROCESSAMENTO ...................................................................................................................... 35 4.1.1 - A influncia do tamanho da palavra ............................................................................................. 36 4.2 - FUNO CONTROLE ................................................................................................................................ 36 4.2.1 - Unidade de Controle ..................................................................................................................... 37 4.2.2 - Relgio .......................................................................................................................................... 37 4.2.3 - Registrador de Instruo ............................................................................................................... 38 4.2.4 - Contador de Instruo .................................................................................................................. 38 4.2.5 - Decodificador de Instruo ........................................................................................................... 38 4.3 - INSTRUES DE MQUINA ....................................................................................................................... 38 4.3.1 - Formato das instrues ................................................................................................................. 39 4.4 - FUNCIONAMENTO DA UCP. O CICLO DA INSTRUO ............................................................................... 39 4.5 - METODOLOGIA TIPO LINHA DE MONTAGEM OU PIPELINE..................................................................... 43 4.6 - TIPOS DE CONTROLE DE UM PROCESSADOR ............................................................................................ 47 4.6.1 - Controle programado no hardware .............................................................................................. 48 4.6.2 - Controle por Microprogramao .................................................................................................. 48 4.7 - BARRAMENTOS ....................................................................................................................................... 49 4.7.1 - Comparao entre o Barramento Sncrono e Assncrono............................................................. 52

Arquitetura de Computadores

5 - REPRESENTAO DE INSTRUES .................................................................................................. 53 5.1 - QUANTIDADE DE OPERANDOS ................................................................................................................. 54 5.2 - MODOS DE ENDEREAMENTO ................................................................................................................. 54 5.2.1 - Modo imediato .............................................................................................................................. 55 5.2.2 - Modo direto ................................................................................................................................... 55 5.2.3 - Modo indireto ................................................................................................................................ 56 5.2.4 Endereamento por Registrador................................................................................................... 57 5.2.5 Modo Indexado ............................................................................................................................. 59 5.2.6 Modo Base Mais Deslocamento ................................................................................................... 60 6 EXECUO DE PROGRAMAS .............................................................................................................. 62 6.1 LINGUAGENS DE PROGRAMAO ............................................................................................................ 62 6.2 MONTAGEM ........................................................................................................................................... 62 6.3 COMPILAO ......................................................................................................................................... 63 6.4 LIGAO OU LINKEDIO ...................................................................................................................... 64 6.5 INTERPRETAO .................................................................................................................................... 65 7 - ENTRADA E SADA ................................................................................................................................. 66 7.1 - INTERFACES DE E/S ................................................................................................................................ 67 7.1.1 - Transmisso serial ........................................................................................................................ 68 7.1.2 - Transmisso Paralela ................................................................................................................... 68

Arquitetura de Computadores

- Componentes de um sistema de computao

1.1 - Descrio dos componentes


Um sistema de computao um conjunto de componentes que so integrados para funcionar como se fossem um nico elemento e que tm por objetivo realizar manipulaes com dados, isto , realizar algum tipo de operao com os dados de modo a obter uma informao til. Os comandos definidos (para realizar as operaes com os dados) - que se constituem, em conjunto, no que se denomina um programa de computador - precisam ser interpretados pela mquina (pelo computador) e, para tal, precisam de algum modo ser introduzidos no hardware. Trata-se da primeira etapa de um processamento - Entrada - que requer um componente ou equipamento especfico. No entanto, os computadores foram (e ainda so) projetados com capacidade de entender e realizar apenas tarefas bem simples. Ou seja, o programa introduzido no sistema pelo dispositivo de entrada no pode ser diretamente processado, pois seus comandos so complexos para o entendimento da mquina. E, por isso, o programa deve ser convertido para linguagem de mquina. As tarefas relacionadas so operaes que uma determinada mquina (o computador) pode realizar. Chamam-se por causa disso instrues de mquina. O componente do computador que capaz de entender e realizar uma operao definida por uma instruo de mquina denomina-se Unidade Central de Processamento - UCP. Para que a UCP possa trabalhar - entender e executar uma instruo de mquina - necessrio, em primeiro lugar, que o programa seja introduzido no sistema, para em seguida ser convertido, e depois a UCP comear a executar este ltimo. Antes da execuo, o programa e os dados devem ser guardados na prpria mquina para, um a um, serem localizados pelo processador, entendidos e executados. O componente do sistema de computao responsvel pelo armazenamento das informaes introduzidas pelo componente de entrada denominado Memria. Aps a realizao de todas as operaes, os resultados devem ser apresentados ao usurio, atravs de algum dispositivo de Sada, em uma forma inteligvel para ele (caracteres alfabticos, algarismos decimais, sinais de pontuao de nossa linguagem, etc.) e no na linguagem do computador. A Unidade Central de Processamento o componente vital do sistema, porque, alm de efetivamente realizar as aes finais, controla quando e o que deve ser realizado pelos demais componentes, emitindo para isso sinais apropriados de controle. Os programas e os dados so armazenados na memria para execuo imediata (memria principal) ou para execuo ou uso posterior (memria secundria). Os dispositivos de entrada ou sada servem basicamente para permitir que o sistema de computao se comunique com o mundo exterior, realizando ainda, alm da interligao, a converso das linguagens do sistema para a linguagem do meio exterior (caracteres de nossas linguagens) e vice-versa. O teclado (dispositivo de entrada) interliga o usurio (mundo exterior) e o computador, permitindo a comunicao entre ambos atravs do uso das suas teclas. Ao ser pressionada a tecla correspondente ao caractere A, por exemplo, os circuitos eletrnicos existentes no teclado convertem a presso mecnica em um grupo de sinais eltricos, alguns com voltagem alta (bit 1) e outros com voltagem baixa (bit 0), que corresponde, para o computador, ao caractere A Os dispositivos de sada operam de modo semelhante, porm em sentido inverso, isto , do computador para o exterior, convertendo os sinais eltricos internos (que em grupos, podem representar um caractere inteligvel pelo ser humano) em smbolos por ns conhecidos, como C, e, h, *, >, etc.

Arquitetura de Computadores

Processador - UCP

Vdeo Teclado Leitura Escrita

Entrada

Memria

Sada

Controle Dados Figura 1.1 - Componentes de um sistema de computao.

1.2 - Mquina de von Neumann


O primeiro computador eletrnico e digital, construdo no mundo para emprego geral, isto , com programa de instrues que podiam alterar o tipo de clculo a ser realizado com os dados, foi denominado ENIAC (Electronic Numerical Integrator And Computer, ou seja , Computador e Integrador Numrico Eletrnico) e foi projetado por John Mauchly e John P. Eckert, de 1943 a 1946, tendo funcionando da em diante at 1955, quando foi desmontado. O ENIAC era uma mquina gigantesca, contendo mais de 17.000 vlvulas e 800 quilmetros de cabos. Pesava cerca de 30 toneladas e consumia uma enorme quantidade de eletricidade, alm do consumo de vlvulas, que queimavam com grande freqncia devido ao calor. O ENIAC era extremamente rpido para sua poca, realizando cerca de 10.000 operaes por segundo. Ele possua 20 registradores, cada um deles podendo armazenar um valor numrico de 10 dgitos; era uma mquina decimal (no binria) e, por isso, cada dgito era representado por um anel de 10 vlvulas, uma das quais estava ligada em cada instante, indicando o algarismo desejado. O ENIAC era programado atravs da redistribuio de cabos em tomadas diferentes e rearranjo de chaves (possua cerca de 6.000), tarefa que poderia levar muitos dias. Enquanto Mauchly e Eckert iniciaram a construo de um novo computador, o EDVAC (Electronic Discret Variable Automatic Computer, ou seja, Computador Automtico Eletrnico de Variveis Discretas), um dos colaboradores do projeto do ENIAC, o matemtico John von Neumann, tambm iniciou outro projeto de aperfeioamento do computador inicial, denominado IAS, nome do local onde Von Neumman foi trabalhar, o Institute for Advanced Studies da Universidade de Princeton. O IAS embora pertencia primeira gerao de computadores e tenha sido, para os padres atuais, uma mquina limitada, fundamental no estudo da arquitetura de computadores, pois a grande maioria de suas especificaes permanece vlida at o momento. Seu projeto bsico, agora conhecido como mquina de von Neumann, possua cinco partes bsicas: a memria, a unidade aritmtica e lgica (UAL), a unidade de controle (UC) de programa e os dispositivos de entrada e sada. A memria consistia de 4096 palavras, cada palavra possuindo 40 bits (0 ou 1). Cada palavra armazenava duas instrues de 20 bits ou um inteiro de 39 bits com sinal. As instrues possuam 8 bits dedicados a identificar o tipo da instruo, e 12 bits para especificar uma dentre 4096 palavras de memria.

Arquitetura de Computadores

Dentro da unidade aritmtica e lgica, a precursora da atual CPU (Central Processing Unit), ou seja UCP (Unidade Central de Processamento), havia um registrador interno especial de 40 bits denominado acumulador. Uma instruo tpica adicionava uma palavra de memria ao acumulador ou armazenava o acumulador na memria. A mquina de von Neumann operava de modo repetitivo, executando um ciclo de instruo em seguida ao outro. Cada ciclo consistia em dois subciclos: o ciclo de busca (fetch cycle), onde o C.Op da prxima instruo era trazido da memria para o IR (Instruction Register) e a parte do endereo da instruo era armazenada no MAR (Memory Address Register). To logo o C.Op estivesse armazenado no IR, ento se iniciava o outro subciclo, o ciclo de execuo. O circuito de controle interpretava o cdigo de operao e gerava os sinais apropriados para acarretar o movimento de dados ou a realizao de uma operao na UAL (Unidade Aritmtica e Lgica).

Memria

Entrada Unidade de Controle UAL Sada Acumulador Figura 1.2 - A mquina original de von Neumann. Conforme pode ser observado dessas especificaes resumidas, o IAS possua caractersticas de arquitetura que permaneceram ao longo do tempo. As mquinas evoluram consideravelmente em velocidade, capacidade de armazenamento, miniaturizao, consumo de energia, e outras inovaes, mas a arquitetura bsica permaneceu.

1.3 - Representao das informaes 1.3.1 - O Bit, o Caractere, o Byte e a Palavra


O computador, sendo um equipamento eletrnico, armazena e movimenta as informaes internamente sob forma eletrnica; esta pode ser um valor de voltagem ou de corrente (sabemos tambm que na memria secundria as informaes so armazenadas sob forma magntica ou tica). Para que esta mquina pudesse representar eletricamente todos os smbolos utilizados na linguagem humana, seriam necessrios mais de 100 diferentes valores de voltagem (ou corrente). Tal mquina certamente seria difcil de ser construda. Considerando que muito mais simples e confivel projetar um circuito capaz de gerar e manipular o menor nmero possvel de valores distintos, optou-se por uma mquina binria, isto , capaz de entender apenas dois valores diferentes: 0 e 1. A menor unidade de informao armazenvel em um computador o algarismo binrio ou dgito binrio, conhecido como bit (contrao das palavras inglesas binary digit). O bit pode ter, ento, somente dois valores: 0 e 1. Evidentemente com possibilidades to limitadas, o bit pouco pode representar isoladamente; por essa razo, as informaes manipuladas por um computador so codificadas em grupos ordenados de bits, de modo a terem um significado til.

Arquitetura de Computadores

O menor grupo ordenado de bits representando uma informao til e inteligvel para o ser humano o caractere. Qualquer caractere a ser armazenado em um sistema de computao convertido em um conjunto de bits previamente definido para o referido sistema (chama-se cdigo de representao de caracteres). Cada sistema poder definir como (quantos bits e como se organizam) cada conjunto de bits ir representar um determinado caractere. A primeira definio formal atribuda a um grupo ordenado de bits, para efeito de manipulao interna mais eficiente, foi instituda pela IBM e , atualmente, utilizada por praticamente todos os fabricantes de computadores. Trata-se do byte, definido como um grupo ordenado de oito bits, tratados de forma individual, como unidade de armazenamento e transferncia. Como os principais cdigos de representao de caracteres utilizam grupos de oito bits por caractere, os conceitos de byte e caractere tornam-se semelhantes e as palavras, quase sinnimas. costume, no mercado, construrem memrias cujo acesso, armazenamento e recuperao de informaes so efetuados byte a byte (ou caractere a caractere). Por essa razo, em anncios de computadores, menciona-se que ele possui 256 Kbytes de memria cache ou 16 Mbytes de memria. O termo caractere mais empregado para fins comerciais, enquanto o termo byte empregado mais na linguagem tcnica dos profissionais da rea. O K e o M, referidos no exemplo, so letras indicativas de um valor numrico fixo, utilizado para reduzir a quantidade de algarismos representativos de um nmero. Nas grandezas mtricas, usase o K para representar mil vezes. Como os computadores so binrios, todas as indicaes numricas referem-se a potncias de 2, e, por essa razo, o K representa 1.024 unidades (dcima potncia de 2 ou 2 10 = 1024) e o M (abreviatura do termo mega) representa 1.048.576 unidades (valor igual a 1.024 x 1.024 ou 2 10 x 210 = 220). Com o progressivo aumento da capacidade dos dispositivos de armazenamento dos computadores, criou-se um terceiro elemento para abreviar valores mais elevados: trata-se do giga, representado pelo caractere G e que indica um valor igual a 1.024 mega ou 1.048.576K ou 230. Atualmente, j se menciona o termo tera, para representar um valor igual a 240 ou 1.024 G e o peta para representar 250 ou 1.024 teras. Dessa forma, os valores utilizados em computao para indicar capacidade de memria so normalmente compostos de um nmero (sempre entre 0 e 999) e uma das abreviaturas citadas. Alm do bit e do byte, h um outro conceito, tambm importante, relacionado com o armazenamento e a transferncia de informaes entre MP e UCP e especialmente relacionado ao processamento de dados pela UCP. Trata-se do conceito da palavra. Inicialmente, podemos definir a palavra como sendo um conjunto de bits que representa uma informao til. Assim, uma palavra estaria associada ao tipo de interao entre MP e UCP, que individual, informao por informao. Ou seja a UCP processa instruo por instruo (cada uma estaria associada a uma palavra), armazena ou recupera nmero a nmero (cada um estaria associado a uma palavra), e assim por diante. Todavia, o conceito de palavra no rigorosamente igual para todos os fabricantes. No que se refere unidade de armazenamento, considera-se mais importante a quantidade de bits recuperada em um acesso, em geral de tamanho igual ao de um byte. Esse valor de bits pequeno demais para representar um nmero ou uma instruo de mquina e, por isso, no pode ser aceitvel para o tamanho de uma palavra.

Arquitetura de Computadores

De modo geral, usam-se dois valores diferentes: um relacionado unidade de armazenamento - o byte (oito bits o valor mais comum) e outro para indicar a unidade de transferncia e processamento - a palavra (que, na quase totalidade de computadores, possui um nmero de bits mltiplo de 1 byte - 16 ou 32 bits o valor mais comum). Em geral, a UCP processa valores representados por uma quantidade de bits igual da palavra, indicando assim a capacidade de processamento do sistema.

Arquitetura de Computadores

2 - Converso de bases e aritmtica computacional


Desde os primrdios da civilizao o homem vem adotando formas e mtodos especficos para representar nmeros, tornando possvel, com eles, contar objetos e efetuar operaes aritmticas. A forma mais empregada de representao numrica a chamada notao posicional. Nela, os algarismos componentes de um nmero assumem valores diferentes, dependendo de sua posio relativa no nmero. O valor total do nmero a soma dos valores relativos de cada algarismo. Desse modo, a posio do algarismo ou dgito que determina seu valor. A formao de nmeros e as operaes com eles efetuadas dependem, nos sistemas posicionais, da quantidade de algarismos diferentes disponveis no referido sistema. H muito tempo a cultura ocidental adotou um sistema de numerao que possui dez diferentes algarismos - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 - e, por essa razo, foi chamado de sistema decimal. A quantidade de algarismos disponveis em um dado sistema de numerao chamada de base; a base serve para contarmos grandezas maiores, indicando a noo do grupamento. O sistema de dez algarismos, acima mencionado, tem base 10; um outro que possua apenas dois algarismos diferentes (0 e 1) de base 2, e assim por diante. Vamos exemplificar o conceito de sistema posicional. Seja o nmero 1303, representado na base 10, escrito da seguinte forma: 1 3 0 3 10 Neste exemplo, o nmero composto de quatro algarismos: 1, 3, 0 e 3, cada algarismo possui um valor correspondente sua posio no nmero. Assim, o primeiro 3 (algarismo mais direita) representa 3 unidades. Neste caso, o valor absoluto do algarismo (que 3) igual ao seu valor relativo (que tambm 3), por se tratar da primeira posio (posio mais direita, que a ordem das unidades). Enquanto o segundo 3 vale trs vezes a potncia de 2 na base 10 ou 300. O valor total do nmero seria 1 x 103 + 3 x 102 + 0 x 101 + 3 x 100 = 1303 10. Generalizando, num sistema qualquer de numerao posicional, um nmero N expresso da seguinte forma: N = (dn-1 dn-2 dn-3 ... d1 d0 )b onde: d indica cada algarismo do nmero; n-1, n-2, 1, 0 ndice, indicam a posio de cada algarismo; b indica a base de numerao; n indica o nmero de dgitos inteiros. O valor do nmero pode ser obtido do seguinte somatrio:

N = dn-1 x bn-1 + dn-2 x bn-2 + ... + d1 x b1 + d0 x b0 2.1 - Outras bases de numerao


Entre as bases diferentes da 10, consideremos apenas as bases 2 e potncias de 2, visto que todo computador digital representa internamente as informaes em algarismos binrios, ou seja, trabalha em base 2. Como os nmeros representados em base 2 so muito extensos (quanto menor a base de numerao, maior a quantidade de algarismos necessrios para indicar um dado valor) e, portanto, de difcil manipulao visual, costuma-se representar externamente os valores binrios em outras bases de valor mais elevado. Em geral, usam-se as bases octal ou hexadecimal, em vez da base decimal, por ser mais simples e rpido converter valores binrios para valores em bases que so potncias de 2.

Arquitetura de Computadores

Atravs da notao posicional, representam-se nmeros em qualquer base: (1011)2 - na base 2 (257)8 - na base 8 No entanto, nas bases diferentes de 10, o valor relativo do algarismo (valor dependente de sua posio no nmero) normalmente calculado usando-se os valores resultantes de operaes aritmticas em base 10 e no na base do nmero. Exemplo: Seja o nmero na base 2: (1011)2 3 2 1 0 Aplicando a expresso, teramos: 1 x 2 + 0 x 2 + 1 x 2 + 1 x 2 = 8 + 0 + 2 + 1 = (11)10 Podemos concluir que: a-) O nmero mximo de algarismos de uma base igual ao valor da base. b-) O valor do algarismo mais esquerda (mais significativo) de um nmero de n algarismos inteiros obtido pela multiplicao de seu valor absoluto (algarismo d n-1) pela base elevada potncia (n-1), ou seja: (dn-1 x b n-1 ). c-) O valor total do nmero obtido somando-se n valores, cada um expressando o valor relativo de um dos n algarismos componentes do nmero. A base do sistema binrio 2, logo, qualquer nmero, quando representado nesse sistema consiste exclusivamente em dgitos 0 e 1. Em bases de valor superior a 10, utilizam-se letras do alfabeto para representao de algarismos maiores que 9. Uma base especialmente importante em computao a 16 ou hexadecimal. Na base 16 (hexadecimal), dispomos de 16 algarismos (no nmeros) diferentes: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Os algarismos A, B, C, D, E, F, representam respectivamente os valores (da base 10): 10, 11, 12, 13, 14, 15. Exemplo: . Seja o nmero na base 16: (1A7B)16 . Aplicando a expresso, para encontrar o seu valor na base 10, teramos: 3 2 1 0 1 x 16 + 10 x 16 + 7 x 16 + 11 x 16 = 4096 + 2560 + 112 + 11 = (6779)10 Podemos observar que na frmula foram usados os valores 10 (para o A) e 11 (para o B) para multiplicar as potncias de 16. Por isso, obtivemos o valor do nmero na base 10. Utilizamos valores e regras de aritmtica da base 10 e, por isso, o resultado encontrado um valor decimal. A tabela a seguir, mostra a representao de nmeros nas bases 2, 8, 10 e 16.

Base 2 0 1 10 11 100 101 110 111 1000

Base 8 0 1 2 3 4 5 6 7 10

Base 10 Base 16 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8

Base 2 1001 1010 1011 1100 1101 1110 1111 10000 10001

Base 8 Base 10 Base 16 11 9 9 12 10 A 13 11 B 14 12 C 15 13 D 16 14 E 17 15 F 20 16 10 21 17 11

Arquitetura de Computadores 10

Podemos observar na tabela que os dgitos octais e hexadecimais correspondem a combinaes de 3 (octais) e 4 (hexadecimais) bits (algarismos binrios). Sendo a base desses sistemas de valor maior que a base 2 e tendo em vista essa caracterstica na representao de nmeros nas bases 8 e 16 em relao base 2, verifica-se que possvel converter rapidamente nmeros da base 2 para as bases 8 ou 16, ou vice-versa. Por exemplo, o nmero (101111011101), na base 2, possui 12 algarismos (bits), mas pode ser representado com quatro algarismos octais ou com trs algarismos hexadecimais. (101111011101)2 = (5735)8 ; porque: 101 = 5, 111 = 7 , 011 = 3 e 101 = 5 (101111011101)2 = (BDD)16 ; porque: 1011 = B, 1101 = D e 1101 = D.

2.2 - Converso de Bases


Entendido o conceito de representao de nmeros em notao posicional, e sendo esta notao aplicvel em qualquer base inteira, podemos exercitar a converso de nmeros de uma base para outra, principalmente no que se refere converso entre as bases mltiplas de 2, e entre estas e a base 10 e vice-versa.

2.2.1 - Converso entre Bases Potncia de 2


Entre as bases 2 e 8 Como 8 = 2 , um nmero binrio pode ser facilmente convertido para o seu valor equivalente na base 8. Se o nmero binrio for inteiro, basta dividi-lo, da direita para a esquerda, em grupos de 3 bits (o ltimo grupo no sendo mltiplo de 3, preenche-se com zeros esquerda). Ento, para cada grupo, acha-se o algarismo octal equivalente. A converso de nmeros da base 8 para a 2 realizada de forma semelhante, no sentido inverso; substitui-se cada algarismo octal pelos seus 3 bits correspondentes. Entre as bases 2 e 16 O procedimento de converso entre nmeros binrios e hexadecimais idntico ao da 4 converso entre as bases 2 e 8, exceto que, neste caso, a relao 16 = 2 . Desse modo, um algarismo hexadecimal representado por 4 bits; converte-se um nmero binrio em hexadecimal, dividindo-se este nmero em grupos de 4 bits da direita para a esquerda. A converso de hexadecimal para binrio obtida substituindo-se o algarismo hexadecimal pelos 4 bits correspondentes, de acordo com os valores indicados na tabela. Entre as bases 8 e 16 O processo de converso utiliza os mesmos princpios antes apresentados. No entanto, como a base de referncia para as substituies de valores a base 2, esta deve ser empregada como intermediria no processo. Ou seja, convertendo-se da base 8 para a base 16, deve-se primeiro efetuar a converso para a base 2 e depois para a base 16. O mesmo ocorre se a converso for da base 16 para a base 8. Exemplo: (3174)8 = ( )16 = (011) (001) (111) (100)2 = (11001111100)2 = (0110) (0111) (1100)2 = (67C)16
3

Arquitetura de Computadores 11

2.2.2 - Converso de nmeros de uma base B para a base 10


A converso de um nmero, representado em uma base B qualquer, para seu correspondente valor na base 10 realizada empregando-se a expresso da notao posicional. Exemplo: (101101)2 = ( )10 Substituindo-se, na expresso, as letras pelos valores do exemplo, teremos: b=2 (a base origem do nmero a ser convertido) n=6 (6 algarismos) n - 1 = 5 (expoente do primeiro produto mais esquerda) dn-1 = 1 Os produtos seguem a seqncia da expresso, resultando em: 1 x 2 + 0 x 2 + 1 x 2 + 1 x 2 + 0 x 2 + 1 x 2 = 32 + 0 + 8 + 4 + 0 + 1 = (45)10
5 4 3 2 1 0

2.2.3 - Converso de nmeros decimais para uma base B


A converso de nmeros, representados na base 10, para seus valores equivalentes em uma base qualquer efetuada atravs de um processo inverso ao do subitem anterior (base B para base 10). A converso obtida dividindo-se o nmero decimal pelo valor da base desejada; o resto encontrado o algarismo menos significativo do valor na base B (mais direita). Em seguida, divide-se o quociente encontrado pela base B; o resto o outro algarismo ( esquerda); e assim, sucessivamente, vo-se dividindo os quocientes pelo valor da base at se obter quociente de valor zero. Em cada diviso, o resto encontrado um algarismo significativo do nmero da nova base; o primeiro resto encontrado o valor do algarismo menos significativo e o ltimo resto ser o algarismo mais significativo (mais esquerda). Na realidade, o algoritmo de converso pode ser definido com vrios critrios de parada, tais como: a-) Enquanto quociente for diferente de zero: . dividir dividendo por divisor . extrair resto como algarismo e coloc-lo esquerda do anterior . repetir . Quando quociente for igual a zero, parar. b-) Enquanto dividendo for maior que divisor: . dividir dividendo por divisor . extrair resto como algarismo e coloc-lo esquerda do anterior . repetir . Usar o dividendo (que agora menor que o divisor) como ltimo algarismo esquerda (algarismo mais significativo). Exemplos: 1-) (45)10 = ( )2 45 / 2 = 22 resto0 = 1 22 / 2 = 11 resto1 = 0 11 / 2 = 5 resto2 = 1 5/2 =2 resto3 = 1 2/2 =1 resto4 = 0 1/2 =0 resto5 = 1 O nmero (101101)2

Arquitetura de Computadores 12

2-) (490)10 = ( )16 490 / 16 = 30 resto0 = 1010 algarismo A16 30 / 16 = 1 resto1 = 1410 algarismo E16 1 / 16 = 0 resto2 = 110 algarismo 116 O nmero (1EA)16

2.3 - Aritmtica binria e hexadecimal


Procedimentos de adio e subtrao de nmeros binrios e hexadecimais, inteiros e sem sinal. Soma binria A operao de soma de dois nmeros em base 2 efetuada de modo semelhante soma decimal, levando-se em conta, apenas, que s h dois algarismos disponveis (0 e 1). Sendo assim: 0+0=0 1+0=1 0+1=1 1 + 1 = 0, com vai 1 Exemplos: 11111 vai 1 111 101101 parcela 1 10101 +101011 parcela 2 +11100 1011000 110001 Subtrao binria A subtrao em base 2, na forma convencional, usada tambm no sistema decimal (minuendo - subtraendo = diferena), relativamente mais complicada por dispormos apenas dos algarismos 0 e 1 e, dessa forma, 0 menos 1 necessita de emprstimo de um valor igual base (no caso 2), obtido do primeiro algarismo diferente de zero, existente esquerda. Se estivssemos operando na base decimal, o emprstimo seria de valor igual a 10. Exemplos: 101101 - 100111 000110 A partir da direita para a esquerda a-) 1 - 1 = 0 b-) 0 - 1 no possvel. Ento, retira-se 1 da ordem esquerda, que fica com 1 - 1 = 0, e passa-se para a ordem direita, como 2, visto que 1 unidade de ordem esquerda vale uma base de unidades (no caso: base = 2) da ordem direita. 2-1=1 c-) Agora tem-se 0 - 1 e, portanto, repete-se o procedimento do item acima 2-1=1 d-) 0 - 0 = 0 e-) 0 - 0 = 0 f-) 1 - 1 = 0 Resultado: 0001102 ou simplesmente 1102

Arquitetura de Computadores 13

Aritmtica hexadecimal A aritmtica com valores expressos em algarismos hexadecimais segue as mesmas regras para qualquer base. Exemplo 1: Adio 1 11 3A943B +23B7D5 5E4C10 Da direita para a esquerda, temos: a-) B = 1110 + 5 = 1610 Como 1610 no um algarismo vlido da base 16 (o maior algarismo, F, tem valor = 15 10), ento usa-se o princpio posicional, substituindo 16 unidades da ordem da direita por 1 unidade a ordem esquerda (vai 1) B + 5 = 0 e vai 1 b-) 1 + 3 + D = 1 + 3 + 13 = 1710 1710 = 16 (vai 1 para a esquerda) + 1 c-) 1 + 4 + 7 = 1210 1210 equivalente ao algarismo C16. Coloca-se C como resultado e no h vai 1. d-) 9 + B = 9 + 11 = 2010 20 = 16 (vai 1 para a esquerda) + 4. Coloca-se 4 como resultado e vai 1 para a esquerda. e-) 1 + A + 3 = 1 + 10 + 3 = 1410 1410 equivale ao algarismo E16 f-) 3 + 2 = 5 Resultado: 5E4C10 Exemplo 2: Subtrao 4C7BE8 - 1E927A 2DE96E Da direita para a esquerda: a) 8 - A no possvel. Retira-se, ento, 1 unidade da ordem esquerda (E - 1 = D), passando 16 unidades (valor igual ao da base) para a direita, as quais so somadas ao valor existente, 8. 16 + 8 = 24 - A = 24 - 10 = 1410, equivalente ao algarismo E16. b) D - 7 = 13 - 7 = 6 c) B - 2 = 11 - 2 = 9 d) 7 - 9 no possvel. Retira-se 1 unidade da ordem esquerda (C - 1 = B), passando 16 unidades para a direita, as quais so somadas ao valor existente, 7. 16 + 7 = 23 - 9 = 1410, equivalente ao algarismo E16.

Arquitetura de Computadores 14

e)

C - E no possvel. Retira-se 1 unidade da ordem esquerda (4 - 1 = 3), passando 16 unidades para a direita, as quais so somadas ao valor existente, B16 = 1110. 1610 + B16 = 1610 + 1110 = 27 - 14 = 1310, equivalente ao algarismo D16. f) 3 - 1 = 2

Resultado: 2DE96E16

Arquitetura de Computadores 15

3- Memria
A memria o componente do computador cuja funo armazenar as informaes que so, foram ou sero manipuladas pelo sistema. A memria de um computador possui tantas variedades - tais como: de velocidade, de capacidade de armazenamento, de tecnologia de construo de utilidade dentro do sistema - que se torna, na realidade, um sistema hierarquicamente estruturado. Na memria, o elemento a ser manipulado fisicamente o bit, o qual, em grupo de n bits, corresponde a uma unidade de informao a ser armazenada, transferida, recuperada, etc. Ou seja, a memria serve para armazenar informaes (na forma de bits) e recuper-las quando desejado. Para isso, realizam-se aes de escrita (transferncia de bits de outro componente para a memria; por exemplo: da UCP) e de leitura (transferncia de bits da memria para a UCP). Por informao, entendem-se as instrues e os dados de um programa. Para o correto e eficaz funcionamento da manipulao das informaes de e para a memria de um computador, verifica-se a necessidade de se ter em um mesmo computador diferentes tipos de memria. Para certas atividades, p. ex., fundamental que a transferncia de informaes seja a mais rpida possvel. o caso das atividades realizadas internamente no processador, onde a velocidade primordial, porm a quantidade de bits a ser manipulada muito pequena (em geral, corresponde quantidade de bits necessria para representar um nico valor - um nico dado). Isso caracteriza um tipo de memria diferente, p. ex., daquele em que a capacidade de armazenamento mais importante que a sua velocidade de transferncia. O ideal, claro, que a capacidade e velocidade de transferncia fossem grandes, mas nesse caso o custo seria alto demais. As memrias de um computador, se interligam de forma estruturada, constituindo um sistema em si, parte do sistema global de computao, podendo ser denominado subsistema de memria. Esse subsistema projetado de modo que seus componentes sejam organizados hierarquicamente, conforme mostrado na estrutura em forma de pirmide na figura 4.1.

Figura 4.1 - Hierarquia de memria.

Arquitetura de Computadores 16

3.1 - Memria secundria


Na base da pirmide que representa a hierarquia de memria em um computador encontra-se a memria denominada secundria ou memria auxiliar. Esta memria tem por objetivo garantir um armazenamento mais permanente a toda a estrutura de dados e programas do usurio, razo pela qual deve naturalmente possuir maior capacidade que as outras memrias. A memria secundria de um computador pode ser constituda por diferentes tipos de dispositivos, alguns diretamente ligados ao sistema para acesso imediato (discos rgidos, por exemplo), e outros que podem ser conectados quando desejado (como os disquetes, fitas de armazenamento, CD-ROM etc.). Uma das principais caractersticas dos dispositivos que constituem a memria secundria sua no volatilidade.

3.2 - Organizao da memria principal


A MP a rea de trabalho da UCP, isto , a UCP e a MP trabalham ntima e diretamente na execuo de um programa. As instrues e os dados do programa ficam armazenados na MP e a UCP vai buscando-os um a um medida que a execuo vai se desenrolando. Os programas so organizados de modo que os comandos so descritos seqencialmente e o armazenamento das instrues se faz da mesma maneira, fisicamente seqencial (embora a execuo nem sempre se mantenha de forma seqencial). A memria principal composta de um determinado nmero de clulas (ou posies), cada uma podendo armazenar uma parte da informao. Cada clula tem um nmero, chamado de seu endereo, pelo qual os programas podem referenci-la. Se a memria tem N clulas, elas tero endereos de 0 a N - 1. Uma clula constituda de um grupo de M bits, que manipulado em conjunto (como se fosse uma nica unidade) em uma operao de leitura ou de escrita. Cada clula representa uma parte da informao, instruo ou dado, propriamente dita. Seu significado que ela a menor unidade enderevel. A maioria dos fabricantes de computador padronizaram a clula de 8 bits, que chamada byte. J com relao s palavras, so formadas por um grupo de bytes (clulas). Um computador com uma palavra de 16 bits tem 2 bytes/palavra, enquanto que um computador com palavra de 32 bits tem 4 bytes/palavra. O significado de uma palavra que a maioria das instrues operam em palavras inteiras. Uma mquina de 16 bits ter registradores de 16 bits e instrues que manipulam palavras de 16 bits, enquanto que uma mquina de 32 bits ter registradores de 32 bits e instrues para mover, somar, subtrair e outras que manipulam palavras de 32 bits. Teoricamente, a unidade de armazenamento da MP deveria ser a palavra, isto , palavra e clula deveriam ser especificadas com o mesmo tamanho, o que, na realidade no acontece. Os fabricantes tm preferido organizar a MP com clulas de 1 byte de tamanho, com palavras de 16, 32 e 64 bits. H autores que utilizam a palavra como unidade de transferncia e armazenamento, neste caso, o endereamento de memria feito por palavra e no por clula. A memria vista como um conjunto de palavras, o que no representa um problema, desde que a palavra seja constituda por um nmero de bits mltiplo da clula. No entanto, na prtica possvel encontrar computadores cuja integrao UCP/MP realizada com uma unidade de transferncia diferente no s da palavra, mas tambm do tamanho da clula, seja por razes tcnicas, seja apenas por interesses comerciais. Existem tambm, computadores cuja palavra, nem sequer formada por um conjunto bits mltiplo da clula.

Arquitetura de Computadores 17

MP
endereo 0 endereo 1 endereo 2 endereo 3 M bits M bits

N clulas

endereo N - 2 endereo N - 1 bit 0 bit 1 bit M - 1

Todas as clulas tm a mesma quantidade M de bits

Figura 4.2 - Organizao bsica da memria principal.

3.2.1 - Organizao de memria do tipo seleo linear


Por esta tcnica todos os bits de uma dada clula (palavra) esto na mesma pastilha, o arranjo fsico e lgico das clulas o mesmo. O conjunto organizado em N clulas de M bits cada. Por exemplo, uma pastilha de 16 K bits pode conter 1024 clulas de 16 bits cada. Os elementos de cada conjunto so conectados por linhas horizontais e verticais. Cada linha horizontal da memria (uma clula) uma sada do decodificador de linha; cada linha vertical da memria (bit da clula) se conecta ao sensor de dados para receber ou enviar 1 bit da clula. Em outras palavras, o decodificador tem 2E sadas para E entradas, isto , se cada endereo armazenado no REM tem E bits, a ligao REM - decodificador tem E linhas. A sada do decodificador ter x linhas, uma para cada um dos N = 2E clulas de memria. No exemplo acima, a pastilha de 16 K bits teria um REM de 10 bits, 10 linhas de sada do REM para o decodificador e deste sairiam 1024 linhas, uma para cada clula de memria. Dado um certo endereo, por exemplo, endereo 12 decimal ou 0000001100 em binrio, armazenado no REM, isto acarretaria uma sada 1 na linha 13 do decodificador, correspondente ao endereo 12 (linha 13 porque o primeiro endereo 0). As demais linhas seriam iguais a zero. O problema com este tipo de organizao o tamanho do decodificador. medida que a quantidade de clulas aumenta, o decodificador tem que crescer demasiadamente e os circuitos se tornam mais complexos, apesar da grande vantagem de velocidade que tem.

Arquitetura de Computadores 18

Linha de bit

Linha de clula

Linhas de endereos Decodificador por seleo de linha (1 entre N linhas)

REM E bits

Memria N clulas

Read / Write

Circuitos de E/S por colunas

Linhas de Dados

3.3 - Operaes com a memria principal


Conforme descrito anteriormente as operaes que podem ser realizadas com a MP so: escrita (write) e leitura (read). Os componentes utilizados durante estas operaes so mostrados na figura abaixo e sero descritos a seguir. Estes componentes so conectados atravs de barramentos especfcicos. O barramento de um sistema de computao o elemento responsvel pela interligao dos demais componentes, conduzindo de modo sincronizado o fluxo de informaes entre eles - dados, endereos e sinais de controle - de acordo com uma programao de atividades previamente definida pela UC.

Arquitetura de Computadores 19

Figura 3.3 - Estrutura UCP/MP e a utilizao de barramento para comunicao entre elas. Registrador de dados da memria (RDM) - Memory Buffer Register (MBR) - registrador que armazena temporariamente o contedo de uma ou mais clulas que est sendo transferido da MP para a UCP (em uma operao de leitura) ou da UCP para a MP (em uma operao de escrita). Em seguida a informao encaminhada para outro elemento da UCP para processamento ou para uma clula da MP, conforme o tipo da operao de transferncia. Permite armazenar a mesma quantidade de bits do barramento de dados. Registrador de endereos da memria (REM) - Memory Address Register (MAR) registrador que armazena temporariamente o endereo de acesso a uma posio de memria, ao incio de uma operao de leitura ou de escrita. Em seguida, o endereo encaminhado rea de controle da MP para decodificao e localizao da clula desejada. Permite armazenar a mesma quantidade de bits do barramento de endereos. Barramento de controle - Interliga a UCP MP para passagem de sinais de controle durante uma operao de leitura ou escrita. bidirecional, porque a UCP pode enviar sinais indicando que a operao de leitura ou escrita e a MP pode enviar sinais do tipo wait (para a UCP aguardar o trmino de uma operao). Barramento de endereos - Interliga o REM MP para transferncia dos bits que representam um determinado endereo. unidirecional, visto que somente a UCP aciona a MP para a realizao de operaes de operaes de leitura ou escrita. Possui tantas linhas de transmisso quantos so os bits que representam o valor de um endereo. Barramento de dados - Interliga o RDM MP para transferncia de informaes entre MP e UCP (sejam instrues ou dados). bidirecional, isto , ora os sinais percorrem o barramento da UCP para a MP (operao de escrita), ora percorrem o caminho inverso (operao de leitura). A realizao de uma operao de leitura efetivada atravs da finalizao de algumas operaes menores (microoperaes), cada uma consistindo em uma etapa. O tempo gasto para realizao de todas estas etapas caracteriza o tempo de acesso. O intervalo de tempo decorrido entre duas operaes consecutivas (leitura-leitura, leitura-escrita ou escrita-leitura) denomina-se ciclo de memria.

Arquitetura de Computadores 20

Etapas de uma operao de leitura 1-) (REM) (outro registrador) 1.a-) O endereo colocado no barramento de endereos 2-) Sinal de leitura colocado no barramento de controle 3-) (RDM) (MP(REM)) 4-) (registrador) (RDM) Etapas de uma operao de escrita 1-) (REM) (registrador) - A UCP coloca o endereo no REM 1.a-) O endereo colocado do barramento de endereos 2-) (RDM) (registrador) - A UCP coloca no RDM o dado a ser transferido 3-) Sinal de escrita - A UCP aciona o sinal de gravao pelo barramento de controle 4-) (MP(REM)) (RDM) - O dado transferido para a clula de memria pelo barramento de dados

3.4 - Clculos com capacidade da MP


A memria principal um conjunto de N clulas, cada uma armazenando um valor com M bits. Ento, a quantidade de endereos da MP tambm igual a N, visto que a cada contedo de clula est associado um nmero, que o seu endereo. O valor de N representa a capacidade da memria, atravs da quantidade de clulas ou de endereos. O valor de M indica a quantidade de bits que podem ser armazenados em uma clula (que a informao propriamente dita). Como 1 bit representa apenas um entre dois valores (base binria), podemos concluir que:

a) pode-se armazenar em cada clula um valor entre 0 e 2M - 1. So 2M combinaes


possveis. 8 Por exemplo, se M = 8 bits, temos 2 = 256 Seriam armazenados valores entre 00000000 (0) e 11111111 (255). b) a MP tendo N endereos, N = 2 , sendo E = quantidade de bits dos nmeros que representam cada um dos N endereos. 9 Por exemplo, se N = 512 (porque a MP tem 512 clulas), N = 2 , E = 9.
E

c) o total de bits que podem ser armazenados na referida MP T, sendo: E T = N x M ou T = 2 x M Utilizando os valores do exemplo acima, teremos: T = 512 x 8 = 4096 bits = 4K bits Exemplo 3.4.1: Uma memria RAM pode armazenar um mximo de 256K bits. Cada clula pode armazenar 8 bits. Qual o tamanho de cada endereo e qual o total de clulas que podem ser utilizadas nesta memria ? Total de bits = T = 256K = 2 3 1 clula = 8 bits = M = 2 18 3 15 Sendo T = N x M, N = T / M = 2 / 2 = 2
18

Arquitetura de Computadores 21

Se N = 2 , ento: 2 = 2 E = 15 Tamanho de cada endereo = 15 bits (E) 15 Total de clulas: 2 = 32K Podemos acrescentar a esses elementos o REM, RDM, o barramento de dados e o de endereos. Como o barramento de dados interliga o RDM e a MP, ento ambos possuem o mesmo tamanho em bits. O mesmo acontece entre o barramento de endereos e o REM. Como o REM tem por funo armazenar o endereo de acesso a uma clula da MP, ento seu tamanho deve corresponder quantidade de bits de cada endereo. J o RDM deve ter um tamanho correspondente palavra do computador, visto que deve transferir os bits de uma palavra entre a UCP e a MP (ou vice-versa, dependendo da operao ser de escrita ou de leitura). Exemplo 3.4.2: Um computador, cuja memria principal tem uma capacidade mxima de 2K clulas de 16 bits cada, possui um REM, um RDM e a palavra possui tamanho de 32 bits. Qual o tamanho destes registradores, qual o valor do maior endereo dessa MP e qual a quantidade total de bits que nela podem ser armazenados ? M = 16 bits Se total de clulas = 2K, N = 2 , se N = 2 ento E = 11 Se cada endereo um nmero de 11 bits, ento o REM tambm deve ter o tamanho igual a 11 bits. Se a palavra tem 32 bits e o RDM o registrador cuja funo armazenar uma palavra de dados, ento: RDM = 32 bits Maior endereo: 2K - 1 = 2047 Total de bits: como T = N x M, ento T = 2K x 16 = 32K bits
11 E

15

Exerccios:
1-) Um computador possui um RDM com 16 bits de tamanho e um REM com capacidade para armazenar nmeros com 20 bits. Sabe-se que a clula deste computador armazena dados com 8 bits de tamanho e que ele possui uma quantidade N de clulas, igual sua capacidade mxima de armazenamento. Pergunta-se: a-) Qual o tamanho do barramento de endereos ? b-) Quantas clulas de memria so lidas em uma nica operao de leitura ? c-) Quantos bits tem a memria principal ? 2-) Um computador possui uma memria principal com 4K clulas, cada uma capaz de armazenar uma palavra de 8 bits. Pergunta-se: a-) Qual o maior endereo desta memria ? b-) Qual o tamanho do barramento de endereos deste sistema ? c-) Quantos bits podem ser armazenados no RDM e no REM ? d-) Qual o total de bits que pode existir nesta memria ? 3-) Um computador possui uma memria principal com capacidade para armazenar palavras de 16 bits em cada uma de suas N clulas. O barramento de endereos tem 12 bits de tamanho. Quantos bytes podero ser armazenados nessa memria ?

Arquitetura de Computadores 22

3.5 - Memria Cache


Em toda execuo de uma instruo, a UCP acessa a memria principal (sem cache), pelo menos uma vez, para buscar a instruo e transferi-la para um dos seus registradores. Muitas instrues requerem outros acessos memria, seja para a transferncia de dados para a UCP (que sero processados na UAL), seja para a transferncia do resultado de uma operao da UCP para a memria. Em resumo, para a realizao do ciclo de uma instruo h sempre a necessidade de ser realizado um ou mais ciclos de memria. Parte do problema de limitao de velocidade do processador, refere-se diferena de velocidade entre o ciclo de tempo da UCP e o ciclo de tempo da memria principal. A MP transfere bits para a UCP em velocidades sempre inferiores s que a UCP pode receber e operar os dados, o que acarreta, muitas vezes, a necessidade de acrescentar-se um tempo de espera para a UCP (waitstate - estado de espera). Se o processador (UCP) precisa esperar pelos bits enviados da MP, isto se faz em perodos fixos. Cada perodo destes chama-se um estado de espera. O nmero de estados de espera inseridos para que a transferncia de dados se concretize depende da relao entre a velocidade da UCP e da MP. Se todos os circuitos da UCP e da MP fossem fabricados com elementos de mesma tecnologia, este problema deixaria de existir. O aperfeioamento tecnolgico das memrias utilizadas como MP, no tem acompanhado a evoluo dos processadores que vm constantemente obtendo velocidades cada vez maiores em suas operaes. Na busca de uma soluo para este problema (congestionamento na comunicao UCP/MP), foi desenvolvida uma tcnica que consiste na incluso de um dispositivo de memria entre UCP e MP, denominado memria cache, cuja funo acelerar a velocidade de transferncia das informaes entre UCP e MP. Esse tipo de memria fabricado com tecnologia semelhante da UCP e, portanto, possui tempos de acesso compatveis, resultando numa considervel reduo da espera da UCP para receber dados e instrues da cache, ao contrrio do que acontece em sistemas sem cache.

3.5.1 - Utilizao da memria cache


UCP
Transferncia cache/UCP clula por clula

CACHE
Transferncia cache/MP bloco por bloco de clulas

MP

Com a incluso da cache podemos descrever o funcionamento do sistema com a execuo dos seguintes passos: 1) Sempre que a UCP vai buscar uma nova instruo (aps a busca inicial), ela acessa a memria cache. 2) Se a instruo (ou dado) estiver na cache (chama-se acerto), ela transferida em alta velocidade (compatvel com a da UCP). 3) Se a instruo (ou dado) no estiver na cache (chama-se falta), 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 desejada, mas dela e de um grupo subseqente, na pressuposio de que as instrues do grupo sero requeridas pela UCP em seguida e, portanto, j estaro na cache quando necessrio (acertos).

Arquitetura de Computadores 23

Para haver realmente aumento de desempenho do sistema, necessrio que haja mais acertos do que faltas. Isto , a memria cache somente produtiva se a UCP puder encontrar uma quantidade de palavras na cache, suficientemente grande para sobrepujar as eventuais perdas de tempo com faltas.

3.5.2 - Conceito de localidade


Basicamente, podemos definir o conceito de localidade como sendo o fenmeno relacionado com o modo pelo qual os programas em mdia so escritos e executados pela UCP. A execuo dos programas se realiza, na mdia, em pequenos grupos de instrues. Este fato pode ser decomposto em duas facetas do princpio da localidade: espacial e temporal. Assim, os programas no so executados de modo que a MP seja acessada randomicamente como seu nome sugere (RAM). Se um programa acessa uma palavra da memria, h uma boa possibilidade de que ele em breve acesse a mesma palavra novamente. Este o princpio da localidade temporal. E se ele acessa uma palavra da memria, h uma boa probabilidade de que o programa acesse proximamente uma palavra subseqente ou de endereo adjacente quela palavra que ele acabou de acessar. o princpio da localidade espacial.

3.5.3 - Mapeamento de dados MP/Cache


Para entender o sentido desta funo como elemento de projeto da memria cache , E devemos considerar que uma MP consiste em um conjunto seqencial de N = 2 clulas endereveis, cada uma possuindo um nico endereo com E bits. Consideremos ainda que a MP est dividida em um conjunto de B blocos (numerados de 0 a B -1), cada um constitudo de K clulas, sendo B = N / K ou B = 2E / K. A memria cache constituda de Q linhas de dados, denominadas quadros, cada uma podendo armazenar K clulas. Q bem menor que B para que a cache no seja muito cara. A cada instante, a memria cache possui um conjunto de blocos de MP armazenados em seus quadros, com os dados que a UCP deve precisar. Porm, como Q < B (h mais blocos que quadros), no possvel um quadro da cache estar dedicado a armazenar um especfico bloco da MP, ou seja, um quadro usado por mais de um bloco e, por conseguinte, preciso identificar , em cada instante, qual o especfico bloco que est armazenado no especfico quadro da cache. Para isso, cada quadro tem um campo (alm daquele para armazenar K clulas), denominado TAG, que contm a identificao do bloco e que, como veremos a seguir, faz parte dos E bits do endereo completo da MP. E MP possui N clulas = 2 clulas endereveis MP dividida em B blocos com K clulas - B = N / K Cache possui Q quadros (linhas de dados), cada uma contendo K clulas = tamanho do bloco da MP. Cada quadro possui um campo (TAG) que contm o nmero de identificao do bloco que nele est armazenado. Para definir a relao entre os blocos da MP e os quadros da cache, pode-se escolher uma das trs alternativas de mapeamento disponveis: direto, associativo, associativo por conjunto.

Arquitetura de Computadores 24

MP
clula de end. 0 clula de end. 1 clula de end. 2 bloco 0 (K clulas) CACHE

bloco 1

bloco B - 1 clula de end. N-1 TAG Tamanho do bloco (K clulas)

Mapeamento direto: por esta tcnica, cada bloco da MP tem um quadro da cache previamente definido para ser armazenado. Ou seja, uma certa regio da cache s pode conter dados de uma determinada regio da MP. Como h mais blocos de MP do que quadros da cache, isto significa que muitos blocos iro ser destinados a um mesmo quadro, sendo preciso definir a regra a ser seguida para a escolha do quadro de cada bloco. Podemos exemplificar considerando uma MP com espao de endereamento de 8 Mbytes 23 (clulas), tendo cada uma um endereo com 23 bits (2 = 8 M). A cache associada a esta MP possui um tamanho correspondente a 128 Kbytes dividida em 10 1024 (2 ) quadros, com 128 bytes de dados cada um. Sabemos que podemos obter o total de blocos da MP calculando B=N/K onde: 23 N = Nmero de clulas da MP = 2 7 K = Nmero de clulas do quadro da cache = 2 23 7 16 B = 2 /2 =2 = 64 K blocos. A memria principal ser, ento dividida em 64 K blocos de 128 bytes. Como h 65536 blocos na MP e 1024 quadros na cache, ento cada quadro dever armazenar (um de cada vez, 6 claro) 64 blocos = (2 ). Cada endereo da MP pode ser divido nos seguintes elementos: 6 bits mais significativos - indicam qual bloco entre os 64 alocados naquele quadro (TAG); 10 bits do meio - indicam o endereo do quadro da cache; 7 bits menos significativos - indicam o endereo da clula (byte) de dados no quadro. Esta tcnica de mapeamento , sem dvida, simples e de baixo custo de implementao, alm de no acarretar sensveis atrasos de processamento dos endereos. O seu problema consiste justamente na fixao da localizao para os blocos (no exemplo, 64 blocos esto destinados a um quadro, o que indica que somente 1 de cada vez pode estar l armazenado). Se por exemplo, durante a execuo de um programa, um dado cdigo fizer repetidos acessos a palavras situadas em blocos alocados no mesmo quadro, ento haver necessidade de sucessivas idas MP para substituio de blocos (muitas faltas) e a relao acerto/faltas ser baixa, com a conseqente reduo do desempenho do sistema.

Arquitetura de Computadores 25

Mapeamento associativo: Neste tipo de mapeamento, os blocos no tm um quadro fixado previamente para seu armazenamento. Qualquer regio da cache pode conter dados de qualquer regio da MP, o que implica na varredura de toda a cache para verificar a presena dos dados. O endereo da MP , neste caso, dividido apenas em duas partes: os 7 bits menos significativos, para indicar a clula desejada pela UCP; e os 16 bits restantes, indicam o endereo do bloco desejado. O campo TAG de cada quadro armazena o endereo completo do bloco armazenado no respectivo quadro. Embora esta tcnica evite a fixao dos blocos aos quadros, por outro lado acarreta a necessidade de uma lgica complexa para, rapidamente, examinar cada campo TAG de todos os quadros da cache. Mapeamento associativo por conjuntos: Esta tcnica tenta resolver o problema de conflito de blocos em um mesmo quadro (da tcnica de mapeamento direto) e o problema de tcnica de mapeamento associativo, de exaustiva busca e comparao do campo TAG de toda a memria cache. A tcnica se resume em organizar os quadros da cache em grupos, denominados conjuntos, os quais esto vinculados a regies da MP (como no mapeamento direto). Dentro do conjunto os quadros so complementarmente associativos, como na tcnica anterior. Genericamente, a cache dividida em C conjuntos de D quadros, de modo que: Q = C x D. O mtodo estabelece que o endereo da memria principal dividido da seguinte forma: 7 bits
TAG

9 bits

7 bits

nmero do conjunto endereo da clula

3.5.4 - Algoritmos de substituio de dados na cache


O problema se resume em definir qual dos blocos atualmente armazenados na cache deve ser retirado para dar lugar a um novo bloco que est sendo transferido. Isto necessrio porque todos os quadros da cache esto sempre ocupados, visto que Q muito menor que B. Dependendo de qual tcnica de mapeamento se esteja usando, pode-se ter algumas opes de algoritmos. Por exemplo, se o mtodo de mapeamento adotado foi o direto, ento no h o que definir, pois, neste caso, somente h um nico quadro possvel para um dado bloco. No entanto para os outros dois mtodos de mapeamento, pode-se optar por um dos seguintes algoritmos: . O que no usado h mais tempo (LRU-Least recently used) - O sistema seleciona para ser substitudo o bloco que est h mais tempo sem ser utilizado. . Fila (FIFO- First-in, First-out) - O sistema escolhe o bloco que est armazenado h mais tempo na cache, independentemente de estar sendo usado ou no com freqncia pela UCP. . O que tem menos referncias (LFU-Least Frequently used) - O sistema escolhe o bloco que tem o menor nmero de acessos por parte da UCP. . Escolha aleatria - Trata-se de escolher aleatoriamente um bloco para ser substitudo, independentemente de sua situao no conjunto.

Arquitetura de Computadores 26

3.5.5 - Poltica de escrita pela memria cache


Em sistemas com memria cache, sempre que a UCP realiza uma operao de gravao, esta ocorre imediatamente na cache. Sendo a cache apenas uma memria intermediria, no a principal, necessrio que, em algum momento, a MP seja atualizada, para no comprometer a integridade do sistema. Antes que um bloco seja substitudo na cache, preciso considerar se ele foi ou no alterado na cache e se estas alteraes tambm foram realizadas na MP; caso contrrio, isto significa que o bloco da cache est diferente do bloco da MP e isto no pode acontecer, pois a MP precisa ser to corretamente mantida quanto a cache. Uma tcnica que implemente a poltica de escrita, deve levar em considerao alguns fatores, tais como: . A memria principal pode ser acessada tanto pela cache quanto por elementos de entrada e sada (um dispositivo de acesso direto a memria (DMA)). Neste caso, possvel que uma clula da MP tenha sido alterada na cache e ainda no na MP e, assim, esta clula da MP est desatualizada. Ou um elemento de E/S pode ter alterado a clula da MP e, ento, a clula da cache que estar desatualizada. . A memria principal pode ser acessada por vrias UCP, cada uma contendo sua memria cache. Neste caso, possvel que uma clula da MP seja alterada para atender alterao de uma cache especfica de uma UCP, e as demais caches cujo contedo esteja ligado a esta palavra estaro desatualizadas. Tcnicas conhecidas: Escrita em ambas (Write through): Por esta tcnica, cada escrita em uma clula da cache acarreta escrita igual na clula correspondente da MP, assegurando validade permanente e igual ao contedo de ambas as memrias. Caso haja outros mdulos UCP/Cache, estes alteraro tambm suas caches correspondentes. Com a utilizao desta tcnica, pode haver uma grande quantidade de escritas desnecessrias na MP, com a natural reduo de desempenho do sistema. Escrita somente no retorno (Write back): Esta tcnica realiza a atualizao quando o bloco foi substitudo e se houve alterao. Sempre que ocorrer uma alterao da clula na cache, o quadro correspondente ser marcado atravs de um bit adicional. Assim, quando o bloco armazenado no quadro especfico for substitudo, o sistema verifica o valor do bit adicional; caso seja igual a 1, o bloco ento escrito na MP; caso contrrio, no. Esta tcnica minimiza a desvantagem da tcnica anterior, porm a MP fica potencialmente desatualizada para utilizao por outros dispositivos a ela ligados, como o mdulo de E/S, o que os obriga a acessar o dado atravs da cache, o que um problema. Escrita uma vez (Write once): Tcnica apropriada para sistemas multi-UCP/Cache, que compartilhem um mesmo barramento. Por ela, o controlador da cache atualiza o bloco da MP sempre que o bloco correspondente na cache foi atualizado pela primeira vez. Este fato no s atualiza ao mesmo tempo ambos os blocos (como na tcnica Write through), mas tambm alerta os demais componentes que compartilham o barramento nico. Estes so informados de que houve alterao daquela clula especfica e impedem seu uso. Outras alteraes naquele bloco apenas so realizadas, na cache local, pois o bloco somente atualizado na MP quando foi substitudo na cache. A poltica Write once pode ser conveniente, mas apenas para sistemas com mltiplas UCP.

3.6 - Registradores
Em um computador, o destino do contedo de qualquer tipo de memria o processador (a UCP). Isto , o objetivo final de cada uma das memrias armazenar informaes destinadas a serem, em algum momento, utilizadas pelo processador. Ele o responsvel pela execuo das instrues, pela manipulao dos dados e pela produo dos resultados das operaes.

Arquitetura de Computadores 27

Para executar a instruo o processador necessita busc-la (na memria cache ou principal) e armazen-la em seu prprio interior. Em seguida a este armazenamento da instruo, o processador dever, na maioria das vezes, buscar dados da memria para serem manipulados na UAL. Esses dados tambm precisam ser armazenados em algum local da UCP at serem utilizados. Os resultados de um processamento (de uma soma, subtrao, operao lgica etc.) tambm precisam, s vezes ser guardados temporariamente na UCP, ou para serem novamente manipulados na UAL por uma outra instruo, ou para serem transferidos para uma memria externa UCP. Esses dados, assim como as instrues, durante a etapa de busca, so armazenados na UCP em pequenas unidades de memria denominadas registradores. Os registradores so a memria interna da UCP.

3.7 - Tipos (Tecnologias de fabricao de memrias)


A memria principal da maioria dos computadores atuais fabricada com tecnologia de semicondutores. Tendo em vista as caractersticas desses elementos eletrnicos, este tipo de dispositivo possui a particularidade de gastar o mesmo tempo para acessar qualquer clula de memria independente de sua localizao. Qualquer que seja o endereo, aleatoriamente ou randomicamente escolhido, o tempo de acesso ser o mesmo. Esse tipo de memria denominado memria de acesso aleatrio, sendo, no entanto, mais conhecida pela sigla de sue nome em ingls: RAM - Random Access Memory. Memrias RAM so normalmente utilizadas na implementao do espao de endereamento da memria principal dos computadores. No que se refere ao processo de fabricao e desempenho, h dois tipos de RAM no mercado: memrias RAM estticas (Static RAM - SRAM) e memrias RAM dinmicas (Dynamic RAM - DRAM). Memrias estticas so aquelas em que o valor de 1 bit permanece armazenado na clula enquanto houver energia eltrica alimentando o dispositivo. Isto , se uma operao de escrita armazena valor zero em uma clula, este valor permanece armazenado at que uma nova operao de escrita grave outro valor por cima (o valor 1). O valor ento permanece esttico. Nas memrias dinmicas, o valor armazenado precisa ser reconstitudo de tempos em tempos, visto que o armazenamento do valor do bit se realiza atravs da carga de um dispositivo eletrnico denominado capacitor, o qual vai perdendo a carga medida que o tempo passa, necessitando de peridicas recargas para que o valor armazenado permanea inalterado. A carga armazenada neste capacitor (que permanece por alguns milissegundos) faz a clula guardar o valor 1, e a ausncia de carga representa o valor 0. Os poucos milissegundos de reteno do valor de carga logo passam e o dado estaria perdido se no houvesse um processo de reescrita. Ou seja, periodicamente as clulas de uma memria DRAM requerem uma operao de reescrita dos dados, que se denomina refreshing e que responsvel pela velocidade menor das DRAM em relao as SRAM. Por isso, um ciclo de memria em uma DRAM maior que o tempo de acesso. Embora seja rpida e de acesso aleatrio, a RAM possui algumas desvantagens, entre as quais a volatilidade, isto , perde seu contedo quando a energia eltrica interrompida. Alm disso em alguns casos representam o inconveniente de permitir que se escreva normalmente em suas clulas, possibilitando a acidental eliminao do contedo de uma ou mais clulas. Uma vez que o processador nada realiza sem as instrues, necessrio que ele possua uma certa quantidade de memria no voltil. Neste tipo de memria so armazenadas as instrues que iniciam a operao e a inicializao do sistema, to logo a alimentao eltrica seja ligada. Em microcomputadores costuma-se chamar de bootstrap ou simplesmente boot, enquanto outros fabricantes chamam IPL - Initial Program Load. Este tipo de memria chamada ROM - Read Only Memory e alm de ter que ser no voltil, permite apenas operaes de leitura. No entanto, o tempo de acesso em memrias ROM tambm constante, independentemente da localizao da clula e, conseqentemente so tambm memrias RAM.

Arquitetura de Computadores 28

Um exemplo tpico o dos microcomputadores do tipo PC, que vm da fbrica com um conjunto de rotinas bsicas do sistema operacional armazenadas em ROM, denominadas em conjunto de BIOS - Basic Input Output System. Uma variao deste tipo de memria denomina-se PROM - Programmable Read Only Memory - ROM programvel. Uma PROM fabricada sem nenhum bit armazenado e posteriormente realizada a etapa de gravao das informaes, a qual, aps seu trmino, tambm no permite alterao. Outros tipos de ROM so a EPROM - Erasable PROM e EEPROM - Electrically ou Electronically EPROM (tambm chamada EAROM - Electrically Alterable ROM). A EPROM pode ser utilizada diversas vezes porque os dados nela armazenados podem ser apagados ao se iluminar a pastilha com luz ultravioleta, a qual incide em uma janela de vidro, montada na parte superior da pastilha.

Uma pastilha de EPROM. O outro tipo, EEPROM ou EAROM, permite que a programao (escrita de bits), o apagamento e a reprogramao sejam efetuadas por controle da UCP.

Arquitetura de Computadores 29

3.8 - Exerccios:
1-) Considere uma palavra de memria cujo endereo representado por um nmero binrio com 32 dgitos. Em seu contedo encontra-se o valor, em hexadecimal, F10A. Pergunta-se: a-) Quais os tamanhos do REM e do RDM desse sistema? b-) Quantos bytes podem ser armazenados em memria? 2-) Um sistema possui uma memria principal com capacidade de armazenamento de 32 Mbytes. Sabendo que o processador transfere um grupo de 4 clulas de 16 bits nas operaes com a MP, determine o tamanho em bits do REM e quantas palavras podem ser armazenadas. 3-) Considere uma memria com capacidade de armazenamento de 64 K bytes; cada clula pode armazenar 1 byte de informao e cada caractere codificado com 8 bits. Resolveu-se armazenar na memria deste sistema um conjunto de caracteres do seguinte modo. A partir do endereo (hexadecimal) 27FA, foram escritos sucessivamente grupos de 128 caracteres iguais, iniciando pelo grupo de As, seguido do grupo de Bs, e assim por diante. Qual dever ser o endereo correspondente ao local onde est armazenado o primeiro J? 4-) Um computador possui uma MP com 256 Mbits. Sabendo que a capacidade de transferncia do sistema de 32 bits e que uma clula possui a metade desta capacidade, pergunta-se: a-) Qual o tamanho do endereo de clula? b-) Qual o tamanho do RDM e da palavra? c-) Quantas clulas podem ser endereadas neste computador? 5-) Um computador possui um RDM com 64 bits de tamanho e um REM com capacidade para armazenar nmeros com 16 bits. Sabe-se que a clula deste computador armazena informaes com 32 bits de tamanho e que ele possui uma quantidade N de clulas, igual sua capacidade mxima de armazenamento. Pergunta-se: a-) Qual o tamanho do barramento de endereos? b-) Quantos Kbytes podem ser armazenados na memria principal ? 6-) Um computador possui uma memria principal com 128K clulas, cada uma capaz de armazenar uma palavra de 32 bits. Pergunta-se: a-) Qual o maior endereo de clula de memria? b-) Qual o tamanho do barramento de endereos deste sistema? c-) Quantos bits podem ser armazenados no RDM e no REM? d-) Quantos Kbits podem ser armazenados em memria? 7-) Um computador possui uma memria principal com capacidade para armazenar palavras de 32 bits em cada uma de suas N clulas. O barramento de endereos tem 20 bits de tamanho. Quantos bytes podero ser armazenados nessa memria? 8-) Um sistema capaz de enderear palavras de 64 bits em cada uma de suas 16 Mega posies de memria. Sabendo-se que uma palavra corresponde a oito clulas; pergunta-se: a-) Quantas clulas o sistema capaz de enderear? b-) Quantas palavras o sistema capaz de enderear? c-) quantos Mbits podem ser armazenados nesta memria? 9-) Sabendo-se que a capacidade total da memria de um certo computador de 256 Mega bytes (1 Mega = 106) e que ela l/escreve dados sempre no formato 64 bits a cada acesso, pode-se afirmar que o nmero mnimo de linhas (bits) com que o processador a enderea de? 10-) Um computador pode armazenar at 4Gbytes de memria principal, organizada em clulas de 16 bits. O sistema possui uma memria cache, com mtodo de mapeamento direto, composta por 4K quadros de 256 bytes. Qual o formato em bits do endereo de memria deste computador? Supondo que a UCP solicite a clula de endereo 1.048.580, determine o contedo do endereo de memria.

Arquitetura de Computadores 30

11-) Utilizando as caractersticas do computador do exerccio anterior, indique o endereo da clula de memria correspondente ao endereo de memria representado por tag = 3, quadro = 1023 e clula = 2. 12-) Um sistema possui uma memria principal com capacidade de armazenamento de 512 Mbytes, composta por N clulas de 1 byte e uma memria cache com mapeamento direto composta por 2048 quadros de 64 bytes; pergunta-se: a-) qual o formato em bits do endereo de memria deste computador? b-) Qual o endereo do bloco que contm a clula de endereo 8203? 13-) Utilizando as caractersticas do computador do exerccio anterior, indique o endereo da clula de memria correspondente ao endereo de memria representado por tag = 2, quadro = 2015 e clula = 2. 14-) Um computador possui uma memria cache, com mapeamento direto, composta por 2 K quadros de 128 bytes. Analisando o mapeamento, contatou-se que o nmero de blocos de memria principal 256 vezes o nmero de quadros. Pergunta-se: Quantos bits so necessrios ao campo TAG, para que a cache seja endereada? 15-) Um certo processador enderea sua memria principal atravs de uma palavra de endereo de 30 bits. Sabe-se ainda que este processador dispe de um cache e que o campo do endereo que vai do bit 02 ao bit 17 (ambos inclusive) o campo usado para indexao do cache, ou seja, o campo que enderea as posies de entrada do cache, pode-se afirmar que: a-) o cache tem 64K posies endereveis de entrada e de mapeamento direto; b-) apenas que o cache tem 64K (1K = 1024) posies endereveis de entrada; c-) o cache tem 64K posies endereveis de entrada e totalmente associativo; d-) o cache tem capacidade para armazenar um mximo de 64K blocos de dados; e-) a capacidade do cache de 64K bytes.

Respostas:
1-) 4 1 palavra = 1 clula = 16 bits = 2 bits o 32 N de clulas = 2 32 4 36 Total de bits = 2 x 2 = 2 a-) REM = 32 bits; RDM = 16 bits 36 3 33 b-) 2 / 2 = 2 bytes 2-) 25 28 Total de bits: 32 Mbytes = 2 bytes = 2 bits 4 1 clula = 16 bits = 2 bits 6 1 palavra = 64 bits = 2 bits 28 4 24 Se o no de clulas = 2 / 2 = 2 ento o REM = 24 bits 28 6 22 Podem ser armazenadas: 2 / 2 = 2 palavras 3-) A, B, C, D, E, F, G, H, I = 9 x 128 = 1152(10) = 480(16) Primeiro J = 27FA + 480 = 2C7A 4-) 28 Total de bits: 256 Mbits = 2 bits 5 1 palavra = 32 bits = 2 bits 4 1 clula = 16 bits = 2 bits o 28 4 24 N de clulas = 2 / 2 = 2

Arquitetura de Computadores 31

a-) Se o n de clulas = 2 b-) 32 bits 24 c-) 2 clulas

24

ento so necessrios 24 bits (tamanho do endereo) para o endereamento.

5-) Obs: A resposta do item b-) deve ser expressa em Kbytes 5 1 clula = 32 bits = 2 bits 16 5 21 Total de bits = 2 clulas de 2 bits = 2 bits a-) Igual ao REM = 16 bits. 21 3 18 10 8 b-) 2 bits / 2 = 2 bytes / 2 = 2 Kbytes 6-) 5 1 palavra = 1 clula = 32 bits = 2 bits o 17 N de clulas = 128K = 2 17 5 22 Total de bits = 2 clulas de 2 bits = 2 bits 17 a-) 2 1 b-) 17 bits c-) RDM = 32 bits; REM = 17 bits 22 10 12 d-) 2 bits / 2 = 2 Kbits 7-) 5 1 palavra = 1 clula = 32 bits = 2 bits 20 5 25 Total de bits = 2 clulas de 2 bits = 2 bits 25 3 22 Podero ser armazenados: 2 bits / 2 = 2 bytes 8-) 6 1 palavra = 64 bits = 2 bits 3 1 clula = 8 bits = 2 bits 24 6 30 Total de bits = 2 palavras (16 Mega posies) de 2 bits = 2 bits o 30 3 27 a-) N de clulas = 2 / 2 = 2 o 24 b-) N de clulas = 2 30 20 10 c-) 2 bits / 2 = 2 Mbits 9-) 28 Total de bytes = 256 Mbytes = 2 bytes 3 1 palavra = 1 clula = 64 bits = 2 bytes o 28 3 25 N de clulas = 2 / 2 = 2 Nmero mnimo de linhas (bits) com que o processador a enderea: 25 bits 10-) 4 1 clula = 16 bits = 2 bits = 2 bytes 32 Total de bytes da MP = 2 bytes 8 Tamanho do bloco = 256 bytes = 2 bytes o 32 8 24 N de blocos da MP = 2 bytes / 2 = 2 o 8 7 N de clulas por bloco = 2 / 2 = 2 o 12 N de quadros de cache = 4K = 2 24 12 12 Blocos de MP por quadro de cache = 2 / 2 = 2

Arquitetura de Computadores 32

Formato em bits do endereo: TAG = 12 bits; Quadro = 12 bits; Clula = 7 bits Contedo do endereo de memria para a clula de endereo 1.048.580: 1.048.580 128 = 8192 e Resto = 4 8192 = Endereo do bloco; 4 = Clula (endereo da clula no bloco) 8192 4096 (n de quadros) = 2 e Resto = 0 2 = TAG; 0 = Quadro
o

11-)

Se Tag = 3 e quadro = 1023, significa que dos 2 quarto. Ento:

12

blocos reservados para o quadro 1023 ele o

O endereo do bloco = 3 x 4096 + 1023 = 13311 O endereo da primeira clula no bloco = 13311 x 128 (tam. Bloco) = 1.703.808 O endereo da clula referenciada = 1.703.808 + 2 = 1.703.810 12-) 1 clula = 1 byte 29 Total de bytes da MP = 2 bytes 6 Tamanho do bloco = 64 bytes = 2 bytes o 29 6 23 N de blocos da MP = 2 bytes / 2 = 2 o 11 N de quadros de cache = 2048 = 2K = 2 23 11 12 Blocos de MP por quadro de cache = 2 / 2 = 2 Formato em bits do endereo: TAG = 12 bits; Quadro = 11 bits; Clula = 6 bits Endereo do bloco de memria que contm a clula de endereo 8203: 8.203 64 = 128

13-) Se Tag = 2 e quadro = 2015, significa que dos 212 blocos reservados para o quadro 2015 ele o terceiro. Ento: O endereo do bloco = 2 x 2048 + 2015 = 6111 O endereo da primeira clula no bloco = 6111 x 64 (tam. Bloco) = 391.104 O endereo da clula referenciada = 391.104 + 2 = 391.106 14-) 8 bits 15-) letra b-)

Arquitetura de Computadores 33

4 - Unidade Central de Processamento (Processador)


A UCP possui uma extrema importncia no funcionamento de um sistema de computao. Ela a responsvel pela execuo das instrues, manipulao dos dados e produo dos resultados das operaes. Um programa composto por uma srie de instrues de mquina. Para que a execuo do programa se realize necessrio que as instrues estejam armazenadas na memria principal em clulas sucessivas. A funo da UCP consiste em: 1 - Buscar uma instruo na memria (operao de leitura), uma de cada vez; 2 - Interpretar que operao a instruo est indicando (aritmtica, operao de e/s, movimentao de um dado de uma clula para outra); 3 - Buscar os dados onde estiverem armazenados; 4 - Executar efetivamente a operao com o(s) dado(s), guardar o resultado (caso haja algum) no local definido na instruo; 5 - Reiniciar o processo apanhando nova instruo.

Figura 4.1 - Fluxo bsico (resumido) de um ciclo de instruo. Estas etapas constituem o ciclo de instruo. Este ciclo se repete indefinidamente at que o sistema seja desligado, ou ocorra algum tipo de erro, ou seja encontrada um instruo de parada. As atividades realizadas pela UCP podem ser divididas em duas grandes categorias funcionais; funo processamento e funo controle. A diviso das atividades da CPU em duas reas funcionais, tem por objetivo exemplificar o processo de execuo serial de uma instruo. Processo serial aquele no qual cada atividade do ciclo de instruo realizada em seqncia anterior. um processo lento e pouco eficiente, quando deseja-se maior velocidade de processamento.

Arquitetura de Computadores 34

Atualmente, visando buscar maior velocidade na realizao de suas atividades, os processadores so projetados para utilizar uma tcnica conhecida como linha de montagem (pipeline). A UCP divide-se em vrias partes funcionais distintas (estgios), cada uma correspondendo a uma determinada atividade. Dessa forma, vrias instrues so realizadas de forma simultnea, embora em estgios diferentes, exatamente como ocorre em uma linha de montagem de automveis.

Figura 4.2 - Esquema simplificado de uma UCP.

4.1 - Funo processamento


Tarefas comuns a esta funo: Operaes aritmticas (somar, subtrair, multiplicar, dividir); Operaes lgicas (and, or, xor, etc.); Movimentao de dados (Memria-UCP, UCP-Memria, registrador-registrador, etc.); Desvios (alterao de seqncia de execuo de instrues); Operaes de entrada e sada. O dispositivo principal desta rea de atividades chamado UAL - Unidade Aritmtica e Lgica. Os demais componentes relacionados com a funo processamento so os registradores, que servem para armazenar dados a serem usados na UAL. A interligao entre estes componentes efetuada pelo barramento interno da UCP. A UAL o dispositivo da UCP que executa as operaes matemticas com os dados. composta por circuitos lgicos e componentes eletrnicos que, interligados realizam as operaes. Ela pode ser uma parte pequena da pastilha do processador, usada em pequenos sistemas, ou pode conter um considervel conjunto de componentes lgicos de alta velocidade.

Arquitetura de Computadores 35

Os registradores so considerados a memria da UCP. Alm de armazenar dados a serem usados na UAL, armazenam temporariamente o resultado de uma operao aritmtica ou lgica realizada na UAL. Este resultado pode ser reutilizado por uma instruo ou apenas ser transferido, em seguida, para a memria. Em geral, os registradores de dados da UCP tm uma largura (quantidade de bits que podem armazenar) igual da palavra. Um exemplo de registrador muito comum utilizado como memria auxiliar na UAL o acumulador (ACC), que alm de armazenar dados, serve de elemento de ligao da UAL com os outros dispositivos da UCP.

4.1.1 - A influncia do tamanho da palavra


A capacidade de processamento de uma UCP (a velocidade com que realiza o ciclo de uma instruo) em grande parte determinada pelas facilidades embutidas no hardware da UAL. Um dos elementos fundamentais a definio do tamanho da palavra da UCP. O valor escolhido durante o projeto de fabricao da UCP determinar o tamanho dos elementos ligados rea de processamento, entre estes, a UAL. Um tamanho maior ou menor de palavra (e, por conseguinte, da UAL, dos registradores de dados, do barramento interno) acarreta, sem dvida, diferenas fundamentais de desempenho da UCP. No projeto de uma UCP, a definio do tamanho da palavra tem enorme influncia no desempenho global de toda a UCP e, do sistema como um todo. Esta influncia torna-se evidente ao analisarmos alguns aspectos, tais como: Influncia no desempenho devido ao maior ou menor tempo na execuo de instrues com operaes matemticas na UAL; Influncia no desempenho devido ao tamanho escolhido para o barramento interno e externo da UCP. Para obter o mximo de desempenho, a largura do barramento de dados deve ser no mnimo igual ao tamanho da palavra. Se a largura do barramento for, p. ex., igual a 16 bits em um sistema com palavra de 32 bits (UAL e registradores de 32 bits), ento o movimento de 4 bytes de um dado, requerer dois ciclos de tempo do barramento, ao passo que em um barramento de 32 bits requereria apenas um ciclo de tempo. Influncia na implementao fsica do acesso memria. Embora atualmente a capacidade das memrias seja medida em bytes (porque as clulas so sempre de largura igual a 8 bits), o movimento de dados entre UCP e memria normalmente medido em palavras, porque o barramento de dados que une o RDM memria deve acompanhar em largura o valor da palavra. Para uma UCP de 32 bits de palavra, desejvel que a memria seja organizada de modo que sejam acessadas 4 clulas contguas (4 bytes=32 bits) em um nico ciclo de memria.

4.2 - Funo controle


A rea de controle de uma UCP a parte funcional que realiza (uma etapa de cada vez, em sistemas de execuo serial, ou vrias etapas simultaneamente, em sistemas de execuo pipelining) as atividades de : 1. busca da instruo que ser executada, armazenando-a em um registrador especialmente projetado para esta finalidade; 2. interpretao das aes a serem desencadeadas com a execuo da instruo e como realiz-las; 3. gerao dos sinais de controle necessrios ativao das atividades requeridas para a execuo da instruo identificada.

Arquitetura de Computadores 36

Em resumo, a rea de controle projetada para entender o que fazer, como fazer e comandar quem vai fazer no momento adequado. Os dispositivos bsicos que fazem parte desta rea funcional so: Unidade de Controle (UC); Decodificador; Registrador de Instruo (RI); Contador de Instruo (CI) ou PC Program Counter; Relgio ou Clock; Registradores de endereo da memria (REM) e de dados da memria (RDM).

4.2.1 - Unidade de Controle


Alm de controlar a ao da UAL, esse dispositivo realiza a movimentao de dados e instrues de e para a UCP, atravs dos sinais de controle que emite em instantes de tempo programados. Os sinais de controle emitidos pela UC ocorrem em vrios instantes durante o perodo de realizao de um ciclo de instruo e, de modo geral, todos possuem uma durao fixa e igual, originada em um gerador de sinais usualmente conhecido como relgio (clock).

4.2.2 - Relgio
o dispositivo gerador de pulsos (em geral, um gerador de cristal de quartzo) cuja durao chamada de ciclo. A quantidade de vezes em que este pulso se repete em um segundo define a unidade de medida do relgio, denominada freqncia, a qual tambm usada para definir velocidade da UCP. Um ciclo de relgio ou de mquina (machine cycle) o intervalo de tempo entre o incio de um pulso e o incio do seguinte. Este ciclo est relacionado realizao de uma operao elementar, durante o ciclo de uma instruo (p. ex., uma microinstruo, que parte do ciclo de uma instruo de mquina). No entanto, mesmo esta operao elementar no se realiza em um s passo e, por essa razo, costuma-se dividir o ciclo de mquina em subciclos, defasados no tempo, de modo que cada um aciona um passo diferente da operao elementar. Por exemplo um ciclo de instruo se inicia pela movimentao de uma cpia da instruo da memria para a UCP. Esta ao, que corresponde a um ciclo de leitura, corresponde tambm a uma operao elementar (ou realizao de algumas microinstrues), que se desdobra nos passos de uma operao de leitura (o endereo transferido para o REM, h a decodificao do endereo, etc.). Portanto cada passo do ciclo de leitura realizado em um subciclo. A unidade de medida usual para a freqncia dos relgios da UCP o Hertz (Hz), que significa 1 ciclo por segundo. Por tratar-se de freqncias elevadas, os valores so representados em milhes de Hertz (Mhz). Assim, por exemplo, se um determinado processador funciona com o seu relgio oscilando 25 milhes de vezes por segundo, sua freqncia de operao de 25 Mhz. E como a durao de um ciclo o inverso da freqncia, ento cada ciclo, neste exemplo, ser igual ao inverso de 25.000.000 ou 1/25.000.000 = 0,00000004 ou 40 nanossegundos. Se as operaes, para realizar um ciclo de instruo, duram o tempo definido por um ou mais pulsos do relgio, e se estes pulsos tiverem curta durao, mais operaes podem ser realizadas na mesma unidade de tempo. Atualmente as UCP tm sido projetadas e fabricadas para funcionar com freqncias bastante elevadas (o que acarreta um ciclo de mquina bem pequeno).

Arquitetura de Computadores 37

4.2.3 - Registrador de Instruo


o registrador que tem a funo de armazenar a instruo a ser executada pela UCP. Ao se iniciar um ciclo de instruo, a UC emite o sinal de controle que acarretar a realizao de um ciclo de leitura para buscar a instruo na memria e que ser transferida pelo barramento de dados e armazenada no RDM, para posterior armazenamento no RI.

4.2.4 - Contador de Instruo


Sua funo armazenar o endereo da prxima instruo a ser executada. to logo a instruo que ser executada seja lida da memria para a UCP (incio do ciclo de instruo), o sistema providencia a modificao do contedo do CI de modo que ele passe a armazenar o endereo da prxima instruo na seqncia. Ou seja, a funo do CI a de armazenar o endereo da prxima instruo, pois o que ele faz durante a maior parte da realizao de um ciclo de instruo.

4.2.5 - Decodificador de Instruo


um dispositivo utilizado para identificar as operaes a serem realizadas, que esto correlacionadas instruo em execuo. Ou seja, cada instruo uma ordem para que a UCP realize uma determinada operao. Como so muitas instrues, necessrio que cada uma possua uma identificao prpria e nica. A unidade de controle est preparada para sinalizar adequadamente aos diversos dispositivos da UCP, conforme a identificao da instruo a ser executada. O decodificador recebe na entrada um conjunto especfico de bits para identificar uma n instruo de mquina (cada instruo tem um valor prprio) e possui 2 sadas, sendo n a quantidade de algarismos binrios do valor de entrada. Exemplo da decodificao em uma UCP:
E0 a E3 Registrador de Instruo Decodificador UC

Sinais de Controle

S0 a S15

E - Entrada (4 bits) S - Sada (16 bits)

4.3 - Instrues de mquina


O projeto de um processador centrado no conjunto de instrues de mquina que se deseja que ele execute. Uma das anlises e decises fundamentais do projeto, envolve o tamanho e a complexidade do conjunto de instrues. Quanto menor e mais simples o conjunto de instrues, mais rpido o ciclo de tempo do processador. Na realidade, todo o projeto do processador se resume em: Definir o conjunto de instrues (qual o formato e tamanho de cada uma, quais as operaes a realizar - o que caracteriza a quantidade); Implementar os componentes do processador em funo da definio anterior (UAL, registradores, barramento etc.).

Arquitetura de Computadores 38

Fisicamente falando (do ponto de vista do hardware), uma instruo de mquina um grupo de bits que indica ao processador uma operao ou ao que ele deve realizar. Um processador fabricado com a capacidade de realizar uma quantidade de operaes bem simples (primitivas), cada uma delas associada a uma instruo de mquina. Quando falamos em conjunto de instrues, estamos nos referindo a todas as possveis instrues que podem ser interpretadas e executadas por um processador.

4.3.1 - Formato das instrues


Instrues de mquina so constitudas de um conjunto de bits dividido em dois campos: O primeiro campo chama-se cdigo de operao; O restante do conjunto de bits (se houver) denomina-se campo do(s) operando(s) ou, simplesmente, operando(s).

C. Op.

Operando

Cdigo de operao - C. Op. - o campo cujo valor a identificao (ou cdigo) da operao a ser realizada. Assim, cada instruo possui um nico cdigo, o qual servir de entrada no decodificador da rea de controle. Campo operando - Op. - (so) o(s) campo(s) da instruo cujo valor binrio indica a localizao do dado (ou dados) que ser (o) manipulado (s) durante a realizao da operao. Um dos fatores mais importantes no projeto de uma UCP consiste na escolha do tamanho das instrues. Essa escolha depende de vrias caractersticas da mquina, tais como: Tamanho da memria; Tamanho e organizao das clulas da MP; Velocidade de acesso; Organizao do barramento de dados. Um bom conjunto de instrues requer muitas instrues, o que implica muitos bits para o cdigo de operao. Requer tambm que as instrues sejam completas e, nesse caso, h necessidade de muitos bits na instruo, de modo a atender aos diversos campos de operandos. No entanto, quanto mais bits a instruo possua, mais memria se consome para armazen-la.

4.4 - Funcionamento da UCP. O ciclo da instruo


A base do projeto de uma UCP a escolha do conjunto de instrues que ela ir executar, para em seguida definir e especificar os demais componentes da arquitetura, os quais contribuiro para o processo de interpretar e executar cada instruo. O ciclo de instruo apresentado pelo fluxo da figura 5.3 pode ser descrito em LTR (linguagem de transferncia entre registradores), de modo que possamos acompanhar sua realizao com a movimentao de informaes nos componentes da UCP/MP:

Arquitetura de Computadores 39

Iniciar 1 - RI REM RDM RI 2 - CI

(CI) CI MP(REM) RDM CI + 1

Buscar a instruo, cujo endereo est no CI

Contedo do CI incrementado para o endereo da prxima instruo

3 - Interpretar o C.Op.(Decodificao) O decodificador recebe os bits do C.Op. e gera uma sada para a UC 4 - Buscar Op. (se houver) REM Op RDM MP(REM) 5 - Executar a instruo 6 - Retornar Os passos 1 e 2 correspondem ao ciclo de busca (fetch) e os seguintes - 3, 4 e 5 correspondem ao ciclo de execuo.

Figura 4.3 - Fluxograma de um ciclo de instruo.

Arquitetura de Computadores 40

Caractersticas de um processador simples, a ser utilizado como exemplo: 1 - Palavra: 12 bits 2 - Endereos: 8 bits (256 clulas de memria) 3 - Clulas de 12 bits 4 - Instrues de 1 operando apenas, com C.Op. = 4 bits e campo operando = 8 bits 5 - O campo operando sempre indica o endereo de memria do dado, exceto em instrues de desvio 6 - A UCP possui apenas um registrador de dados, o ACC, com 12 bits de tamanho, o RI, tambm com 12 bits de tamanho, o CI e o REM, com 8 bits cada um, e o RDM, com 12 bits tambm. 7 - Formato das instrues. C.Op. Operando

4 bits 8 bits 8 - Instrues disponveis: C.Op. Sigla Descrio 0 HLT Parar a execuo do programa 1 LDA Op ACC (Op) 2 STR Op (Op) ACC 3 ADD Op ACC ACC + (Op) 4 SUB Op ACC ACC - (Op) 5 JMP OP CI Op Exemplo:

HALT LOAD STORE

Considerando a execuo de duas das instrues definidas no modelo UCP/MP (LDA Op e ADD OP) e, utilizando a organizao de MP e UCP, consideraremos alguns valores iniciais existentes ao iniciar a execuo do primeiro ciclo de instruo - da instruo LDA: a-) A instruo LDA est armazenada no endereo decimal 2. C.Op = 1 e Op = B4. b-) O valor do dado armazenado na clula de endereo B4 igual a 1A7. c-) A instruo ADD est armazenada no endereo decimal 3. C.Op = 3 e Op = B5. d-) O valor armazenado em B5 07D. e-) O valor armazenado no CI = 02 (este valor considerado como tendo sido atribudo pelo sistema operacional). f-) O valor armazenado no RI = 317 (provavelmente o valor da instruo anteriormente executada). g-) O valor armazenado no ACC = 20B (tambm um valor da operao anterior). h-) O valor armazenado no REM = B3 e no RDM = 7BC. Ento, ao terminar um ciclo de uma instruo qualquer, a UC reinicia o processo atravs da execuo do ciclo de uma nova instruo, conforme o fluxo da figura 5.3.

Arquitetura de Computadores 41

Execuo da instruo LDA 1 - RI = 1B4 2 - CI = 03 Como cada instruo ocupa uma clula da MP, a prxima instruo dever ocupar a clula seguinte, a do endereo, a do endereo 02. Portanto, 02 + 01 = 03 o endereo seguinte. No entanto, em quase todos os sistemas em funcionamento, no h processadores to bem comportados quanto o especificado no exemplo, especialmente no que se refere relao entre o tamanho das instrues e das clulas de MP. Por conseguinte , a realidade est mais para: (CI) (CI) + n , sendo n = quantidade de clulas ocupadas por uma nica instruo, do que para: (CI) (CI) + 1. 3 - Resultado do decodificador: 0001 4 - REM B4 ; RDM 1A7 5 - ACC = 1A7 Na prtica h um clculo para se achar o valor de um endereo. Porm no nosso exemplo, o endereo transferido diretamente para o REM. O que, na prtica, realmente diferencia o desempenho de uma instruo em relao a outra a quantidade de ciclos de memria (acessos) que cada uma realiza durante seu ciclo de instruo, visto que o ciclo de memria um tempo pondervel se comparado com o ciclo do processador. Execuo da instruo ADD Dados a serem inicialmente considerados, referentes ao trmino da instruo anterior: CI = 03; RI = 1B4; ACC = 1A7; REM = B4; RDM = 1A7 Seguindo as etapas teremos: 1 - RI = 3B5 2 - CI = 04 3 - Resultado do decodificador: 0011 4 - REM B5 RDM 07D UAL ACC = 1A7 ACC RDM = 07D UAL ACC = 07D 5 - Execuo da operao: 1A7 + 07D = 224 O resultado, valor 224, transferido para o ACC, concluindo a execuo do subciclo de execuo e o ciclo completo da instruo. Se o programa continuasse em execuo, neste momento seria iniciado um outro ciclo de instruo, correspondente ao valor armazenado no endereo 04. A instruo ADD realizou dois ciclos de memria (para leitura), um para busca da instruo e outro para a busca do segundo operando. Em termos comparativos, seu tempo bsico de execuo praticamente o mesmo da instruo LDA, visto que ambas realizaram a mesma quantidade de acessos MP. A diferena existente reside na operao aritmtica realizada pela instruo ADD. No entanto, se a instruo a ser executada possusse dois operandos, sendo, p. ex., do tipo: (Op2) (Op1) + (Op2) ento, a completa realizao de seu ciclo de instruo consumiria 4 ciclos de memria (4 acessos), o dobro das duas instrues exemplificadas: um ciclo de memria para buscar a instruo e armazen-la no RI; um ciclo de memria para buscar o primeiro operando (Op1); um terceiro ciclo para buscar o segundo operando e, finalmente, o ltimo ciclo de memria para armazenar o resultado da operao na memria, no endereo indicado por Op2.

Arquitetura de Computadores 42

Exerccio: Utilizando as caractersticas do processador, anteriormente definidas, calcular A = B + C - D. Instrues: Load B Add C Sub D Str A Hlt Valores iniciais: CI = 01 RI = 3D7 ACC = 1A7 REM = D8 RDM = 07D Contedo da MP 00 01 1B4 02 3B5 03 4B6 04 2B7 05 000 .... .... B4 010 B5 021 B6 015 B7 040 .... FF

4.5 - Metodologia tipo linha de montagem ou Pipeline


Ao descrever o funcionamento da UCP, na realizao de seus ciclos de instruo foi observado que, embora o ciclo de instruo seja composto de vrias etapas, ele realizado basicamente de forma seqencial, isto , uma etapa se inicia aps a concluso da anterior. UCPs deste tipo vm sendo usadas desde as primeiras geraes de computadores, e muitos aperfeioamentos tecnolgicos foram introduzidos para reduzir o tempo de processamento de uma instruo, entre os quais o aumento da velocidade do relgio e a tecnologia de semicondutor, com seus sucessivos melhoramentos em fabricao e miniaturizao. Porm, as etapas do ciclo de instruo permaneciam sendo realizadas seqencialmente, como mostrado no exemplo a seguir. No exemplo podemos observar este fato e verificar que o tempo total de execuo da instruo a soma do tempo gasto em cada etapa.

Arquitetura de Computadores 43

Instruo

Ciclo de Busca Instruo

Ciclo de Execuo T2

Resultado

T1

T = Tempo de execuo da instruo = T1 + T2 Ciclo de Busca = Leitura da instruo, incremento do CI Ciclo de execuo = Decodificao, Busca do operando, Execuo da operao O processo semelhante ao da fabricao de um automvel, se existisse uma fbrica que trabalhasse em montagem seqencial: primeiro, a carroceria (gastaria um tempo T1), depois o motor (tempo T2), em seguida as rodas (tempo T3), depois a parte eltrica (T4), os bancos e espelhos (T5) e o acabamento final (T6). Cada carro ficaria pronto em um tempo T = T1+T2+T3+T4+T5+T6 e somente com a total concluso de um carro (tempo T) que um outro automvel comearia a ser fabricado. A fbrica produziria, em um turno de X horas, um total mximo de X/T carros, o que sempre seria um valor pequeno. Uma outra metodologia, usada h muito tempo pelas fbricas de automvel e por inmeras outras indstrias, consiste em dividir o processo de fabricao em estgios independentes, que, por isso, podem se superpor uns aos outros, no tempo. Denomina-se linha de montagem (pipeline). Em computao, a metodologia de construo da UCP composta de estgios permitiu que, tambm nestes sistemas, se adotasse esta tcnica. A caracterstica do processo pipeline reside em duas premissas bsicas: a-) A diviso do processo (seja o de fabricao de um automvel, de uma TV ou o ciclo de uma instruo na UCP) em estgio de realizao independentes um do outro; e b-) Um novo produto (automvel, TV ou instruo) inicia seu processo de fabricao ou execuo, antes que o anterior conclua seu processo. Suponhamos que o processo de realizao do ciclo de uma instruo seja dividido em dois estgios: o da leitura da instruo e o da execuo da instruo lida. Para ler uma instruo, necessrio um acesso memria, mas para executar a instruo nem sempre necessrio acessar a memria (por exemplo, na decodificao e na execuo da operao no h acessos memria). Portanto, possvel ler uma instruo, utilizando-se dos circuitos de um estgio, e transferir esta instruo para o estgio de execuo. E, durante o perodo em que, neste estgio, no h atividade com a memria, pode-se ativar o estgio de leitura para buscar uma nova instruo e continuar o processo com novas instrues. Esta atividade de busca de nova instruo antes da concluso da anterior conhecido como pr-busca (pre-fetch). Considerando que cada estgio gaste o mesmo perodo de tempo T (L gasta T unidades e E gasta T unidades de tempo), ento uma instruo executada de forma seqencial gastaria 2T unidade de tempo para ser concluda, ao passo que, com o processo pipelining, uma instruo conhecida a cada tempo T, ou seja, o tempo de execuo se reduziria pela metade. Na realidade, pode no haver muita produtividade em um sistema destes (pipelining com 2 estgios) porque: a-) O tempo de realizao do estgio L no igual ao do estgio E. Em geral, a execuo consome mais tempo, devido principalmente etapa de busca de operando. Portanto, na maioria do tempo de execuo (E) pode no ser possvel haver outra busca de instruo. b-) Pode no ser possvel buscar nova instruo antes da execuo completa da anterior. Em uma instruo de desvio, o endereo de desvio s conhecido aps a execuo da operao e, nesse caso, no h como buscar uma nova instruo durante o estgio de execuo. Assim, o estgio de busca no foi superposto ao de execuo, e o de execuo

Arquitetura de Computadores 44

da instruo seguinte tambm vai acontecer aps sua busca. Ou seja, nada se ganhou em termos de tempo. Apesar disso, os processadores Intel 8086/8088 foram projetados com 2 estgios de processamento cada um realizado por uma unidade independente: a Unidade de Interface do Barramento (BIU - Bus Unit Interface) e a Unidade de Execuo (EU - Execution Unit). O sistema funciona muito bem para o seu padro. Para obter produtividade e rapidez do sistema, deve-se construir a UCP com mais estgios. Quanto maior a quantidade de estgios, mais superposio e aumento de velocidade. importante ressaltar que o tempo de durao de cada estgio deve ser o mais semelhante possvel, de modo que um estgio no espere o trmino do outro para iniciar a execuo seguinte.

Figura 4.4 - Exemplo de ciclo de instruo do tipo pipeline com 5 estgios A figura 4.4 apresenta um esquema de execuo de instrues utilizando o mtodo pipelining com 5 estgios. O ciclo de cada instruo executado nos estgios de Busca(B), de Decodificao(D), de Clculo do endereo do(s) operando(s)(C), de Busca do(s) operando(s)(O), e de Execuo da operao (E). Considerando a hiptese definida, de estgios com tempo de durao igual (quanto mais estgios, maior a probabilidade de se obter tempos iguais em cada estgio), podemos verificar, pelo diagrama de tempo do exemplo, que o tempo total de execuo das 4 instrues de 14 unidades de tempo. Se as 4 instrues fossem executadas em um processador seqencial, consumiriam 20 unidades de tempo (4 instrues x 5 unidades de tempo cada = 20). .No diagrama consideramos que: . Somente um acesso memria pode ser realizado de cada vez, isto , durante a execuo do estgio de busca, B, no pode ser realizado, p. ex., o estgio O (busca de operandos);

Arquitetura de Computadores 45

. No estgio de execuo da operao (E) h acesso memria para armazenar o resultado da operao, embora saibamos que nem sempre isto verdadeiro; . Todos os estgios so realizados em um perodo de tempo igual. Se isto no acontecer na prtica, poder haver alguma espera entre o trmino de um estgio e o incio de outro. Um dos problemas mais crticos quando se projeta um esquema de pipeline reside na necessidade de se evitar atrasos no processamento dos estgios, de modo a se manter um fluxo contnuo das instrues no seu percurso de um estgio para outro. Um dos fatores que mais complicam a obteno deste propsito o tratamento dado s instrues de desvio, especialmente s de desvio condicional. Em um desvio condicional, no h meios de se conhecer o endereo da prxima instruo, a no ser aps o teste da condio definida na instruo; se o teste for verdade, o endereo um (de desvio); caso contrrio, no haver desvio e o endereo o seguinte (calculado pelo incremento natural do CI). E o teste de validade da condio somente realizado durante o estgio de execuo da operao. Se no exemplo, a instruo 2 for uma instruo de desvio condicional, o estgio B da instruo 3 no poder ser iniciado na unidade de tempo 2, como mostrado na figura, porque naquele instante o endereo da prxima instruo ainda no conhecido, o que somente poder acontecer aps a execuo da operao (estgio E). durante a fase de execuo que se realiza o teste de condio, e, dependendo do resultado (falso ou verdadeiro), o endereo de desvio (endereo da prxima instruo) ser um (a instruo imediatamente seguinte) ou outro (instruo fora da seqncia). Neste caso, haver um atraso no fluxo de processamento das instrues. Vrias alternativas vm sendo analisadas, conduzindo a algumas formas diferentes de implementao do pipeline. Entre essas alternativas podemos citar: . Busca de ambas as instrues antecipadamente - por esse mtodo, o sistema, ao reconhecer uma instrues de desvio condicional (estgio de decodificao da operao), realiza a leitura da instruo seguinte na seqncia e a leitura da instruo se o desvio ocorrer. De modo que, ao ser obtido o resultado do teste de condio, ambas as instrues j estaro disponveis e o fluxo de processamento no ser atrasado. . Previso da ocorrncia ou no do desvio - consiste na determinao da ocorrncia ou no do desvio. Tendo em vista o tipo das instrues anteriores, o sistema estima se o desvio ocorrer ou no. Isto pode ser realizado com o auxlio do programa compilado e de lgica especial da UCP. Por exemplo, numa seqncia de instrues de um loop, ocorrer desvio para sua reinicializao em 99% das vezes, exceto no final do loop. O processador Intel Pentium emprega este ltimo mtodo; um dispositivo no processador mantm uma histria dos desvios anteriores e decide se haver ou no o desvio na instruo corrente baseado nos dados passados.

Arquitetura de Computadores 46

4.6 - Tipos de Controle de um Processador A UC o elemento da UCP cuja funo consiste em coordenar a execuo completa de uma instruo de mquina (dos passos que caracterizam um ciclo de instruo), isto , ela emite os sinais de controle para ativar a realizao de cada etapa do ciclo da instruo. Os sinais de controle para ativar as etapas so diferentes para cada instruo, pois as tarefas a serem executadas para a ao de somar so diferentes das da ao de subtrair. A UC deve, ento ser construda contendo a programao de emisso destes sinais conforme a instruo que ser decodificada.

Figura 4.5 - Decomposio de um programa em linguagem de mquina em seus elementos mais simples. A execuo de um programa consiste, na realidade, na consecuo de uma srie de pequenos passos pelo hardware. H duas maneiras, utilizadas no projeto e funcionamento de uma UC, que caracterizam conceitos diferentes de controle: . Controle programado diretamente no hardware (hardwired control); e . Controle por microprogramao. A diferena bsica entre os dois tipos est no processo de controle da realizao do ciclo de instruo. No primeiro caso (hardwired), cada etapa realizada segundo uma lgica preestabelecida, implementada fisicamente no hardware da rea de controle. No caso de controle microprogramado, a interpretao e as conseqentes etapas do ciclo de instruo so realizadas passo a passo por um programa, denominado microprograma.

Arquitetura de Computadores 47

4.6.1 - Controle programado no hardware


Neste tipo de implementao, a unidade de controle construda como um conjunto de circuitos logicamente combinados, os quais produzem sinais de controle de sada de acordo com os sinais de entrada recebidos no circuito. A unidade de controle recebe entrada do relgio e do registrador de instruo. em cada ciclo de relgio, a UC realiza a leitura de todas as entradas, as quais passam por alguns de seus circuitos lgicos internos, e emite os correspondentes sinais de sada. A movimentao de dados de um local para outro, ocorre atravs da abertura de uma porta lgica no caminho entres os dois locais. Esta porta aberta como conseqncia da chegada, em uma de suas entradas, de um sinal de controle. A essncia do processo consiste em entendermos como funcionam os circuitos combinatrios internos da UC. Para cada sinal de entrada, produz-se um sinal de sada derivado de uma expresso boolena implementada nos circuitos da UC. A conseqncia final a construo de inmeras expresses lgicas que definem o comportamento da UC e, por fim, da UCP. Podemos, ento, imaginar a enorme quantidade de expresses lgicas que devem ser definidas para uma UCP grande e real, o que garante extrema complexidade tarefa. Alm disso, h uma grande inflexibilidade no mtodo, visto que qualquer alterao que se deseje fazer em algum elemento da UCP (incluso de dispositivo etc.) acarretar a necessidade de redefinio de todo o conjunto de expresses lgicas. A vantagem do processo que a instruo de mquina buscada imediatamente executada pelo hardware, com o conseqente ganho de velocidade. Processadores com arquitetura RISC utilizam essa tcnica de funcionamento da UC visando justamente este ganho de velocidade na execuo dos ciclos das instrues. Como as instrues de maquinas RISC tendem a ser mais simples, tambm a tarefa de especificar as inmeras expresses lgicas tm sua complexidade um pouco reduzida.

4.6.2 - Controle por Microprogramao


O funcionamento da UC de um processador j bastante complexo por sua prpria natureza (sincronizao e gerao de uma enorme quantidade de sinais para controlar, no tempo certo, a efetivao de vrias aes dentro do processador), especialmente se este controle tiver que ser (como no item anterior) realizado atravs de um conjunto de circuitos lgicos. A execuo de um ciclo de instruo consiste na realizao de uma certa quantidade de pequenas operaes, basicamente de transferncia de valores binrios entre registradores e, eventualmente, de uma operao matemtica qualquer. Estas pequenas operaes (pequenas pela sua simplicidade e curta durao) so denominadas microoperaes. Exemplo de um ciclo de busca decomposto em microoperaes RI (CI) T1: REM CI (CI) (CI) + 1 T2: RDM (MP(REM)) * Ciclo de busca simplificado T3: RI RDM (CI) (CI) + 1 * Ciclo de busca realizado em 3 perodos de tempo Uma microoperao a menor ao que pode ser realizada em um processador, consistindo em geral na abertura de uma porta lgica para movimentao de dados de um registrador para outro.

Arquitetura de Computadores 48

Uma microinstruo o processo prtico de definir uma microoperao, determinando qual porta lgica deve ser aberta ou em qual registrador um sinal de relgio deve ser introduzido. Deste modo, para cada microoperao mostrada no exemplo anterior deve haver uma microinstruo que indique o sinal apropriado a ser emitido para sua realizao. Por exemplo, para efetivar a transferncia dos bits de endereo de uma instruo, os quais esto armazenados no CI, para o REM, h uma porta lgica no caminho entre CI e REM (uma linha de controle, vindo da UC, une os dois), que ser ativada (bit 1 aparece durante o intervalo de tempo correspondente a T1) pela interpretao da microinstruo correspondente. O termo microprogramao indica que as aes da UC de um computador sejam realizadas atravs da execuo de instrues (conceitualmente semelhantes a instrues em linguagem de mquina) que, como resultado, produzam a realizao de uma ao ou operao aritmtica ou lgica pelo hardware. Estas instrues so denominadas de microinstrues, para diferencia-las das instrues de mquina (macroinstrues) que as originou e, tambm, porque realizam uma operao de mais curta durao que o tempo gasto para realizar uma macroinstruo. O conjunto de microinstrues foi, ento, chamado de microprograma. Assim, foi inserido um nvel intermedirio entre o nvel de linguagem de mquina (que era at ento o nvel mais baixo de software) e o nvel de hardware. Este nvel, denominado firmware, constitudo pelo microprograma citado. Na prtica, parece que temos uma micro-UCP no interior da UCP, visto que deveremos ter, para executar o microprograma: . memria - usualmente chamada memria de controle, que armazena as microinstrues. , em geral, do tipo ROM, de modo que um usurio no destrua acidental ou intencionalmente seu contedo; . microcontador de instrues - para armazenar o endereo da prxima microinstruo; . microregistrador de instruo - que armazena a microinstruo correntemente sendo interpretada.

4.7 - Barramentos
O barramento o elemento responsvel pela interligao dos componentes de um sistema de computao, conduzindo de modo sincronizado o fluxo de informaes de uns para os outros dados, endereos e sinais de controle - de acordo com uma programao previamente definida na UC. basicamente um caminho comum eltrico entre mltiplos dispositivos. Um exemplo comum o barramento de sistema presente em todos os microcomputadores, que consiste em 50 a 100 fios de cobre paralelos gravados na placa-me, com conectores (slots) espaados em intervalos regulares para inserir placas de memria e E/S. Os barramentos podem ser tambm dedicados a funes especiais, tais como interligar um microprocessador a um ou mais co-processadores ou a memrias locais. Alm disto, dentro da prpria pastilha do microprocessador existem vrios barramentos para interligar os componentes internos. H basicamente dois tipos de barramento: . barramento externo: interliga os diversos componentes do sistema (UCP, memria, unidades de entrada/sada); e . barramento interno: interliga elementos no interior de um componente, como, por exemplo, o do processador (UCP). A largura (ou tamanho) de um barramento uma unidade de medida que caracteriza a quantidade de bits que pode fluir simultaneamente pelo barramento. No caso de fiao, consiste na quantidade de fios paralelos existentes no barramento, ao passo que, em circuitos impressos (placas), consiste nos traos impressos na placa com material condutor, por onde flui a corrente eltrica.

Arquitetura de Computadores 49

Esta largura (ou tamanho), maior ou menor, se constitui tambm em um dos elementos que afetam a medida de desempenho de um sistema, juntamente com a durao de cada bit ou sinal. A taxa de transferncia, que , em geral, especificada em bits por segundo, depende fundamentalmente da largura do barramento. O intervalo de tempo requerido para mover um grupo de bits ao longo do barramento denominado ciclo de tempo do barramento ou simplesmente ciclo do barramento (bus cycle), modo anlogo ao ciclo do processador e ciclo de memria. Para entender o funcionamento do barramento de um computador, preciso enfatizar o aspecto de compartilhamento que caracteriza aquele componente, ou seja, como um barramento interliga diversos componentes (seja barramento interno ou externo), as informaes s podem fluir uma de cada vez, seno haver coliso entre os sinais eltricos, causando perda de informao. Este compartilhamento (um caminho para vrios usurios) implica a necessidade de definio de regras bem explcitas de acesso ao barramento por um usurio (quando acessar, como acessar, como terminar) e de comunicaao entre eles (como interrogar um componente destinatrio, que resposta deve ser enviada, quanto dura a comunicao etc.). Estas regras costumam ser denominadas protocolos do barramento, as quais so usualmente implementadas atravs de sinais de controle e exata sicronizao entre eles. Assim, o barramento no se constitui to-somente na fiao, mas tambm na unidade de controle do barramento, que administra o acesso e as transferncias (implementao do protocolo adotado). Para projetar um barramento a ser utilizado em um computador, alguns detalhes devem ser considerados: 1-) Mtodo de controle de acesso ao barramento. Alguns dispositivos que se conectam a um barramento so ativos e podem iniciar transferncias pelo barramento, enquanto outros so passivos e esperam por requisies. Os ativos so chamados mestres; os passivos so chamados escravos (master / slave). Quando a UCP ordena que um controlador de disco leia ou escreva um bloco, a UCP est agindo como um mestre e o controlador de disco est agindo como escravo. Entretanto, mais tarde, o controlador de disco pode agir como mestre quando ele comanda que a memria aceite as palavras que ele est lendo da unidade de disco. O modo mais simples e barato de implementao deste mtodo, consiste em definir um componente (em geral a UCP) como o mestre. Neste caso apenas a UCP pode acessar o barramento, seja para colocar informaes para um determinado componente (escrita), seja para obter informaes de um outro componente (leitura). Os demais componentes so os escravos. A grande desvantagem deste mtodo que toda a comunicao realizada via mestre (UCP). Se h volume de dados envolvido nas transferncias, pode ocorrer um grande gargalo no funcionamento do barramento, como, p.ex., durante a transferncia de dados entre memria secundria e memria principal. Uma alternativa para eliminar a desvantagem deste mtodo consiste em se adotarem mltiplos mestres no sistema e no um s para todo o sistema. Esse novo mtodo emprega um dispositivo denominado Acesso Direto Memria ou DMA - Direct Memory Access (utilizado pela maioria dos sistemas atuais). Ele se caracteriza pela possibilidade de um dos componentes que compartilham o barramento poder ganhar seu controle para transmitir ou receber informaes. Este mtodo, ainda que alivie a UCP para realizar outras tarefas enquanto uma transferncia esteja sendo realizada (por exemplo, entre a memria principal e a memria secundria, pelo DMA), requer maior complexidade nos circuitos de controle do barramento e nos componentes do sistema para administrar as diversas solicitaes simultneas de acesso ao barramento e os correspondentes sinais de controle. Por exemplo, o que acontece se a UCP e um controlador decidem usar o barramento ao mesmo tempo? A resposta que uma pastilha chamada rbitro de barramento decide quem o prximo a usar. Geralmente dada a preferncia aos dispositivos de E/S sobre a UCP, por que os discos e outros dispositivos com partes mveis no podem ser parados, e fora-los a esperar causaria perda de dados. Quando no h E/S em execuo, a UCP pode usar todos os ciclos de barramento para referenciar a memria. Entretanto, quando algum dispositivo de E/S est

Arquitetura de Computadores 50

operando, tal dispositivo ir requerer o barramento e ser atendido quando necessrio. Este processo chamado roubo de ciclos e reduz a velocidade do computador. Os mainframes tm mltiplos barramentos e assim no sofrem este problema. Existem muitas combinaes tpicas de mestre e escravo. Em nenhuma circunstncia a memria pode ser um mestre. Mestre
UCP UCP UCP E/S Co-processador

Escravo
Memria E/S Co-processador Memria Memria

Exemplo
Busca de instrues e dados Incio de transferncia de dados Passando instrues de ponto-flutuante DMA (acesso direto memria) Busca de operandos

2-) Tipo de sincronizao nas operaes com o barramento - Um outro aspecto de projeto de barramento refere-se ao modo pelo qual os eventos so coordenados no barramento. H duas tcnicas disponveis: . operao sncrona; . operao assncrona. Com a operao sncrona, os pulsos emitidos pelo relgio regulam o aparecimento / desaparecimento dos sinais nas diversas linhas do barramento. Isto , o relgio sincroniza o funcionamento do barramento e a ocorrncia e durao de todos os eventos. Para tanto, o barramento de controle possui uma linha para o relgio, por onde circulam os pulsos gerados por aquele dispositivo, sendo cada pulso denominado um ciclo de relgio ou ciclo do barramento. Por exemplo, um ciclo de leitura comea (como qualquer evento) no incio de um pulso de relgio pela colocao do endereo de leitura no barramento de endereos, emisso de um sinal de leitura (linha READ). Isto ocorre no primeiro ciclo de barramento, T1. Durante o perodo de relgio seguinte, ciclo de barramento T2, nada acontece no barramento, mas a memria usa este tempo para decodificar o endereo e colocar os dados no barramento, emitindo o sinal de confirmao durante este perodo. Aps o incio do terceiro e ltimo ciclo de barramento, T3, a UCP transfere os bits que esto no barramento de dados para o RDM. Se a memria no conseguir (porque lenta) decodificar o endereo e colocar os bits de dados no barramento correspondente no tempo requerido, isto , entre o instante em que o sinal READ foi detectado e o instante (algum tempo depois do incio de T3) em que o dado colocado efetivamente no barramento, a UCP precisa esperar mais e, para isso, a memria ativa uma linha de espera (WAIT). o chamado wait state. Haver tantos ciclos de barramento para espera quantos a memria precisar. Assim que estiver pronta para colocar os dados no barramento, ela desativa a linha de espera. J na operao assncrona no h relgio sincronizador, nem eventos com durao certa de um ciclo de barramento (j que no h relgio). claro que, quando estamos nos referindo ausncia de relgio, apenas com relao a no haver pulso de relgio para o barramento. Com o mtodo assncrono, cada evento depende somente da ocorrncia do evento anterior, o qual pode ter durao diferente em tempo. Para exemplificar utilizaremos as seguintes linhas: de endereos, de dados, de READ, de inicializao do processo (MSYN - master synchronization ou sincronizao de mestre) e de resposta do escravo (SSYN - slave synchronization ou sincronizao de escravo). Quando a UCP deseja realizar uma operao de leitura, a UC coloca o endereo da clula de memria (se o acesso foi memria, o que no necessariamente verdade, pois poderia ser a um perifrico), ativa o sinal de leitura - READ, para identificar qual a operao a ser realizada, e ativa o sinal MSYN, para indicar que a ao deve ser realizada, com o endereo informado. O sinal MSYN no ativado junto com o de READ e da colocao dos bits de endreo no barramento; ele aparece depois, de modo a dar tempo aos sinais de endereo para se estabilizarem na linha.

Arquitetura de Computadores 51

Assim que o escravo detecta (sensa) o sinal MSYN, ele inicia imediatamente a operao requerida, isto , decodifica o endereo e coloca os dados no barramento. Ao concluir esta atividade, o escravo informa atravs da ativao de um sinal de resposta, SSYN. E o barramento volta a estar disponvel para qualquer outra operao.

4.7.1 - Comparao entre o Barramento Sncrono e Assncrono


O barramento sncrono simples de implementar e testar, justamente devido sua natureza inflexvel no tempo. Em conseqncia, qualquer atividade entre mestre e escravo somente pode se realizar em intervalos fixos de tempo, o que se torna uma desvantagem. Isto porque o barramento sncrono pode ter problemas ao trabalhar com dispositivos que tenham tempos de transferncia diferentes. O que no acontece com o barramento assncrono, que, por no depender de relgio com intervalos fixos de tempo, pode conviver com dispositivos que tenham velocidades baixa e alta, que utilizam tecnologia antiga e avanada. Assim, em um certo momento, a UCP pode operar com um determinado dispositivo (escravo), que opera com certa taxa de transferncia (tempo). Os sinais se sucedem no barramento a partir da colocao do endereo, READ e MSYN na linha, independentemente de sua durao. Por isso, a operao seguinte pode ser realizada com outro dispositivo que tenha velocidade maior ou menor, porque tudo acontecer tambm a partir do MSYN.

Arquitetura de Computadores 52

5 - Representao de instrues
Um programa consiste em uma seqncia de instrues, cada uma delas especificando alguma ao particular. Parte da instruo, denominada cdigo de operao, diz qual a ao a ser executada. O restante do conjunto de bits que compe a instruo (se houver) denomina-se campo do(s) operando(s) ou, simplesmente, operando(s).

C. Op.

Operando

Cdigo de operao - C. Op. - o campo cujo valor a identificao (ou cdigo) da operao a ser realizada. Assim, cada instruo possui um nico cdigo, o qual servir de entrada no decodificador da rea de controle. Campo operando - Op. - (so) o(s) campo(s) da instruo cujo valor binrio indica a localizao do dado (ou dados) que ser (o) manipulado (s) durante a realizao da operao. Quando uma equipe de projeto de computadores tem de escolher um formato de instruo (ou formatos) para uma mquina, deve considerar diversos fatores. Primeiramente, e o mais importante, instrues curtas so melhores do que as longas. Um programa que consiste em n instrues de 16 bits ocupa apenas metade do espao da memria necessria a n instrues de 32 bits. Um segundo ponto que cada memria tem uma taxa de transferncia particular que determinada pela tecnologia e projeto de engenharia da memria. A taxa de transferncia de uma memria o nmero de bits por segundo que pode ser lido da memria. Se a taxa de transferncia de uma memria particular for de t bps e o comprimento mdio de instruo de r bits, a memria pode prover no mximo t/r instrues por segundo. Portanto, a taxa qual as instrues so executadas (isto , a velocidade do processador) depende do comprimento da instruo. Instrues mais curtas significam processador mais rpido. Se o tempo necessrio execuo de uma instruo for grande comparado ao tempo necessrio para busc-la da memria, o tempo de busca da instruo no ser to importante. Entretanto, com CPUs rpidas, a memria freqentemente o gargalo. Aumentar o nmero de instrues buscadas por segundo portanto um importante critrio de projeto. Espao suficiente na instruo para expressar todas as operaes desejadas um n terceiro critrio de projeto para formato de instrues. Uma mquina com 2 operaes e uma instruo menor do que n bits impossvel. Simplesmente no h espao suficiente no cdigo de operao para indicar todas as operaes. Um quarto critrio que altamente desejvel que o comprimento da palavra da mquina seja um mltiplo inteiro de seu comprimento de caractere. Se o cdigo do caractere possuir k bits, o comprimento de palavra deve ser k, 2k, 3k, 4k, ...; de outra forma, ser desperdiado espao ao armazenar caracteres. Naturalmente, possvel armazenar 3,5 caracteres por palavra, mas fazer isto provoca acessos muito ineficientes aos caracteres. As restries impostas ao comprimento de palavra pelo cdigo de caractere afetam o comprimento da instruo, pois ou deve uma instruo ocupar um nmero inteiro de bytes ou palavras, ou deve um nmero inteiro de instrues encaixar-se em uma palavra. Um projeto com o caractere com 9 bits, uma instruo de 12 bits e uma palavra de 31 bits seria catastrfico.

Arquitetura de Computadores 53

Um quinto critrio de projeto diz respeito ao nmero de bits do campo de endereo. Considere o projeto de uma mquina com o caractere de 8 bits e uma memria principal que deve armazenar 216 caracteres. Os projetistas podem escolher atribuir s unidade endereos de 8, 16, 24 ou 32 bits como tambm outras possibilidades. O conjunto de instrues definido para uma determinada UCP sempre constitudo de uma mistura de formatos diferentes, justamente para permitir a melhor aplicao em cada caso. Para compreender, de modo ordenado, a representao de instrues nos computadores, pode-se efetuar a anlise segundo dois aspectos: quantidade de operandos; modo de interpretao do valor armazenado no campo operando (modo de endereamento).

5.1 - Quantidade de operandos


Algumas consideraes podem ser feitas a respeito de instrues com vrios operandos: possuir todos os operandos necessrio realizao de uma operao aritmtica; menor quantidade de instrues em um programa; ocupao demasiada de espao de memria, principalmente se levarmos em considerao que um grande nmero de instrues de um programa no necessita de todos os operandos. Um bom conjunto de instrues requer muitas instrues (para atender a diferentes tipos de aplicaes), o que implica muitos bits para o cdigo de operao. Requer tambm que as instrues sejam completas e, nesse caso, h necessidade de muitos bits na instruo, de modo a atender aos diversos campos de operandos.

5.2 - Modos de endereamento


A existncia de vrios mtodos para localizar um dado que est sendo referenciado em uma instruo se prende necessidade de dotar os computadores da necessria flexibilidade no modo de atender aos diferentes requisitos dos programas. Em algumas instrues ineficiente usar o dado armazenado na MP, como, por exemplo, no caso de um contador, o qual tem um valor fixo inicial e, durante a execuo do programa, sistematicamente atualizado. Nesse caso, melhor seria se o referido contador (dado) fosse inicialmente transferido para um registrador disponvel na UCP e l permanecesse (sendo diretamente atualizado na UCP) at o final da execuo do programa, em vez de ir da MP para a UCP e vice-versa (para atualizao de seu valor), o que acarreta um considervel gasto de tempo para os repetidos ciclos de leitura e gravao. Por outro lado, a manipulao de vetores acarreta a necessidade de se estabelecer um mtodo eficaz de endereamento para variveis que ocupam posies contguas de memria. E assim por diante. Dentre os diversos modos de endereamento atualmente empregados, os principais so: imediato; direto; indireto; por registrador; indexado; base mais deslocamento.

Arquitetura de Computadores 54

5.2.1 - Modo imediato


O mtodo mais simples e rpido de obter um dado indicar seu prprio valor no campo operando da instruo, em vez de busc-lo na memria. A vantagem desse mtodo reside no curto tempo de execuo da instruo, pois no gasta ciclo de memria para buscar o operando durante sua execuo. Assim o dado transferido da memria juntamente com a instruo (para o RI), visto que est contido no campo operando da instruo. Esse modo, denominado imediato, til para inicializao de contadores; na operao com constantes matemticas ou para armazenamento de ponteiros em registradores da UCP. Valor do dado est no campo operando No gasto um ciclo de memria para buscar o operando Dado transferido da memria com a instruo

Exemplo 1:

Exemplo 2:

C.Op.
4 bits

R
8 bits

Operando
8 bits

MOV R,Op R Op C. Op = 5 Instruo: 5307. Armazenar o valor 07 no registrador de endereo 3 (R3)

5.2.2 - Modo direto


Nesse mtodo, o valor contido no campo operando indica o endereo de memria onde se localiza o dado. O endereo pode ser de uma clula onde o dado est inteiramente contido ou ;pode indicar o endereo da clula inicial, quando o dado est armazenado em mltiplas clula. Exemplo 1: Instruo: B5C3B C. Op. = B ADD Op1, Op2 Somar o dado armazenado na clula de endereo 5C com o dado armazenado na clula de endereo 3B e armazenar o resultado na clula de endereo 5C.

Arquitetura de Computadores 55

Valor do campo operando indica o endereo do dado Endereo da clula (palavra) que contm o dado, ou endereo inicial Requer apenas uma referncia memria para buscar o dado

Exemplo 2: C.Op.
4 bits

Operando 1
8 bits

Operando 2
8 bits

ADD Op1, Op2 (Op1) (Op1) + (Op2) C. Op = B Instruo: B5C3B Somar o contedo(dado) do endereo 5C (Op1), com o dado(contedo) armazenado no endereo 3B (Op2) e armazenar o resultado na clula de endereo 5C

5.2.3 - Modo indireto


Nesse mtodo, o valor do campo operando representa o endereo de uma clula; mas o contedo da referida clula no o valor de um dado (como no modo direto); um outro endereo de memria, cujo contedo o valor do dado. Assim, h um duplo endereamento para o acesso a um dado e, conseqentemente, mais ciclos de memria para buscar o dado. O endereo intermedirio conhecido como ponteiro, pois indica a localizao do dado (aponta para o dado). A grande desvantagem desse mtodo , obviamente, maior quantidade de ciclos de memria requerida para completar o ciclo da instruo, pois, para se acessar um dado no modo indireto, necessrio efetuar dois acessos memria (um para buscar o endereo do dado e outro para efetivamente buscar o dado). Valor do operando o endereo de uma clula (palavra). Contedo da clula outro endereo de memria, cujo contedo o dado Duplo endereamento. Maior quantidade de ciclos de memria Mltiplos nveis. Um bit indica se o endereamento prossegue ou no Manuteno de ponteiros Elimina-se o problema do modo direto (limitao do valor do endereo do dado) Estando o endereo armazenado em memria (pode ocupar uma ou mais clulas), se estender ao tamanho necessrio representao do maior endereo de memria Tempo de execuo: Instrues com modo imediato mais rpidas que direto Instrues com modo direto mais rpidas que indireto Velocidade de execuo diretamente proporcional quantidade de acessos despendida em cada ciclo da instruo

Arquitetura de Computadores 56

Exemplo: C. Op. = 4 LDA Op ACC ((Op)) Instruo: 474 74 o endereo da clula, cujo contedo (5D) o endereo do dado (1B4). Aps a execuo, o valor 1B4 estar armazenado no ACC.

74

05D

5D

1B4

Exemplo: C.Op.
4 bits Operando 8 bits MP

LDA Op ACC ((Op)) C. Op = 4 Instruo: 474 74 o endereo da clula, cujo contedo (5D) o endereo do dado (1A4). Aps a execuo, o valor 1A4 estar armazenado no ACC

74 5D

05D

1A4

5.2.4 Endereamento por Registrador


Esse mtodo tem caracterstica semelhante aos modos direto e indireto, exceto que a clula (ou palavra) de memria referenciada na instruo substituda por um dos registradores da UCP. Com isso, o endereo indicado na instruo aponta para um dos registradores, e no para uma clula de memria. Uma das vantagens consiste no menor nmero de bits necessrios para enderear os registradores, visto que esses existem em muito menor quantidade que as clulas de memria. Outra vantagem est na utilizao do dado, que passa a ser armazenado em um meio (registrador) cujo acesso muito mais rpido que o acesso memria. C. Op.
8bits

R2
4 bits

R1
4 bits

Existem duas maneiras de empregar o modo de endereamento por registrador: Modo por registrador direto; Modo por registrador indireto.

Arquitetura de Computadores 57

No modo direto, o registrador endereado na instruo contm do dado a ser manipulado; no modo indireto, o registrador referenciado armazena o endereo de uma clula de memria onde se encontra o dado. O uso do registrador somente vantajoso se proporcionar reduo de ciclos de memria. Caracterstica semelhante aos modos direto e indireto, exceto que a clula de memria referenciada na instruo um registrador Controle de loop Economia de bits nas instrues (tamanho do(s) campo(s) operando(s) Proporcional reduo de ciclos de memria Dificuldade em definir quais dados sero armazenados nos registradores e quais permanecero na memria (falta de registradores) Modo por registrador direto registrador endereado na instruo contm o dado Modo por registrador indireto registrador referenciado armazena o endereo de uma clula onde se encontra o dado

Exemplo 1:

C.Op.
4 bits

R1
4 bits

R2
4 bits

ADD R1, R2 LDR R1, R2

(R1) (R1) + (R2) (R1) ((R2))

Cada campo (R) contm o endereo de um dos 16 registradores. Cada registrador poder conter um dado (direto), ou o endereo da MP onde estar o dado (indireto)

Exemplo 2:

C.Op.
4 bits ADD R, Op ADD R, Op

R
4 bits

Operando
8 bits

(R) (R) + (Op) ou (R) (R) + Op

Um dos campos da instruo enderea um registrador que contm o dado, o outro campo enderea uma clula da MP, que armazena o dado (direto). Em uma variao deste formato, o campo operando pode conter o prprio valor do dado (imediato).

Arquitetura de Computadores 58

5.2.5 Modo Indexado


Freqentemente, durante a execuo de programas, h necessidade de se manipular endereos de acesso a elementos de certos tipos de dados. Esses endereos servem, na verdade, de ponteiros para os referidos elementos. O acesso aos elementos de em vetor (array) deve considerar que tais elementos so armazenados seqencialmente na memria e que sua localizao pode ser referenciada por um ponteiro (endereo), que alterado para indicar o elemento desejado (o ndice do elemento identifica cada um). Em uma instruo desse tipo, o endereo do dado a soma do valor do campo operando (fixo para todos os elementos de dado vetor) e de um valor armazenado em um dos registradores da UCP (normalmente denominado registrador ndice). O valor armazenado nesse registrador varia para o acesso a cada elemento (aponta para o elemento desejado). A grande vantagem da tcnica reside na rapidez de execuo das instrues de acesso aos dados, visto que a alterao do endereo dos elementos realizada na prpria UCP. Manipular dados do tipo vetor (array). Os elementos de um vetor so armazenados seqencialmente na memria. A localizao de cada elemento pode ser referenciada por um ponteiro (endereo) Endereo do dado a soma do valor do campo operando (fixo para todos os elementos de um dado array) e de um valor armazenado em um dos registradores da UCP (registrador ndice). O valor armazenado nesse registrador varia para o acesso a cada elemento (aponta)

Exemplo 1:

C.Op.
4 bits

R
4 bits

Operando

16 bits

LDA Ri, Op ACC (Op + (Ri)) Valor do campo Op = 19FF Valor de Ri = 0001 Aps a execuo, o valor 05D, valor do primeiro elemento do vetor, estar armazenado no ACC A(1) 1A00 A(2) 1A01

MP

05D 3C0

Arquitetura de Computadores 59

5.2.6 Modo Base Mais Deslocamento


Esse mtodo empregado em grande parte das arquiteturas de computadores, com o propsito de reduzir o tamanho das instrues (economia de memria) e facilitar o processo de relocao dinmica de programas. A escolha desse modo decorre de dois fatores: 1. Durante a execuo de uma grande quantidade de programas, as referncias a clulas de memria, onde se localizam os operandos, normalmente so seqenciais, ocorrendo poucos acessos a outras instrues fora de ordem (exceto desvios); e 2. A maioria dos programas ocupa um pequeno espao da MP disponvel. Dessa forma, em vez de ser necessrio, em cada instruo, que o campo operando tenha um tamanho correspondente capacidade total de endereamento da MP, basta que o endereo desejado seja obtido pela soma de um valor existente em um dos registradores da UCP com um valor contido na instruo. Esse mtodo consiste na utilizao de dois campos na instruo (que substituem o campo operando); um, com o endereo de um registrador (chamado base), e outro, com um valor denominado deslocamento (porque contm um valor relativo primeira instruo). Reduzir o tamanho das instrues Facilitar o processo de relocao dinmica de programas Endereo desejado obtido pela soma de um valor existente em um registrador com um valor contido na instruo Instruo com 2 campos (constituindo o campo operando): 1) Endereo de um registrador = base 2) Valor relativo primeira instruo = deslocamento

C.Op. 4 bits

Rb 4 bits

Deslocamento 12 bits

MP

Rb1

1FFF

8K Deslocamento (4K)

Arquitetura de Computadores 60

Podemos observar que o processo de clculo do endereo de acesso idntico para os modos indexado e base mais deslocamento. A diferena est no conceito de cada um, no na sua implementao. A indexao empregada quando se deseja acessar diferentes dados, atravs de alterao do endereo, por incremento (ou decremento) do valor do registrador ndice. Quando a modificao de endereo realizada para relocao de programa, basta uma nica alterao do contedo do registrador base (no modo base mais deslocamento). Sobre o que realmente acontece internamente, podemos observar: 1. Vrios dados so acessados com diversos valores de registrador ndice e um nico valor no campo operando; 2. Vrios dados so acessados com um nico valor de registrador base e valores diferentes no campo deslocamento da instruo. Observaes: Indexado X Base mais deslocamento: Indexao acessar diferentes dados alterando o valor do registrador ndice Base + deslocamento (modificao do endereo inicial) alterao no contedo do registrador base Internamente: a) vrios dados acessados com diferentes valores de registrador ndice e um nico valor no campo operando; b) vrios dados so acessados com um nico valor de registrador base e valores diferentes no campo deslocamento da instruo. Processo de clculo do endereo de acesso idntico em ambos os modos. A diferena est no conceito de cada um, no na implementao Indexao empregada para acessar diferentes dados, atravs de alterao (incremento/decremento) do registrador ndice Base + deslocamento Uma nica alterao do contedo do registrador base Mtodos de indicao do modo de endereamento de instruo: 1) Cada cdigo de operao estabelece no s o tipo da instruo como tambm o modo de endereamento. 2) Instruo possui um campo especfico para indicar o modo de endereamento; nesse campo consta um cdigo binrio correspondente ao modo desejado.

Arquitetura de Computadores 61

6 Execuo de Programas
Para que um computador realize uma determinada tarefa, necessrio que este seja instrudo passo a passo. Necessita, portanto, que seja projetado com a capacidade de interpretar e executar um conjunto de operaes, cada uma sendo constituda de uma instruo de mquina especfica. O conjunto de instrues ou comandos organizados em uma certa seqncia, compe o que denominamos programa de computador. Atualmente, os programas no so mais escritos diretamente em linguagem de mquina em virtude da dificuldade de se organizar as instrues, dos problemas de entendimento e manuteno. Porm, para que um programa escrito em uma linguagem qualquer seja executado, algumas etapas de converso devem ser realizadas. A seguir uma descrio das etapas que definem o processo de execuo de um programa escrito em uma linguagem qualquer, de nvel acima da linguagem de mquina.

6.1 Linguagens de Programao


Uma linguagem de programao uma linguagem criada para instruir um computador a realizar suas tarefas. Um programa completo, escrito em uma linguagem de programao, denominado de cdigo. Deste modo, codificar um algoritmo significa converter suas declaraes em um comando ou instruo especfico de uma certa linguagem de programao. O tipo mais primitivo de linguagem de programao a linguagem que o computador entende diretamente (linguagem de mquina). Estas instrues podem ser executadas diretamente pelo hardware. Uma instruo de mquina um conjunto de bits, dividida em subconjuntos, com funes determinadas: um subconjunto estabelece o cdigo de operao e o outro define a localizao do(s) dado(s). Um programa em linguagem de mquina uma longa seqncia de nmeros, alguns dos quais representam instrues e outros, os dados a serem manipulados pelas instrues. Para escrever um programa em linguagem de mquina, o programador deve conhecer todas as instrues disponveis para aquela mquina e seus respectivos cdigos de operao e formatos, assim como os registradores disponveis na UCP e os endereos das clulas de memria onde sero armazenadas as instrues e os dados. A linguagem de mquina (linguagem binria de 0s e 1s) a mais elementar e representa a forma mais direta de utilizao do hardware. Mas tambm a mais complicada e difcil para o programador. Uma pequena melhoria de apresentao para o programador consiste em substituir os valores binrios por nmeros hexadecimais. Apesar de se continuar trabalhando com nmeros, reduz-se bastante a quantidade de algarismos. Em manuais e livros, quando se trata de representar valores binrios internos da mquina, utiliza-se o hexadecimal equivalente.

6.2 Montagem
A primeira evoluo para tornar os programas mais representativos da inteno do programador e, mais inteligveis ao prprio, foi com o emprego de smbolos alfanumricos em vez de nmeros. Desenvolveu-se, ento, uma linguagem de smbolos alfabticos, denominada linguagem de montagem (Assembly). Um programa escrito em linguagem de montagem, compreende uma linha de cdigo para cada instruo, tendo, portanto, uma relao de 1:1 com as instrues de mquina.

Arquitetura de Computadores 62

Programas escritos em linguagem de montagem no so diretamente executveis por que o hardware no entende smbolos, mas sim cdigos binrios. Dessa forma, h necessidade de se desenvolver um programa com o propsito de converter as instrues assembly em correspondentes instrues de mquina, e os endereos simblicos em endereos fsicos de memria. O processo de converso (ou traduo) chamado de montagem e realizado por um programa denominado Montador (Assembler). O montador l cada instruo em linguagem de montagem e cria uma instruo equivalente em linguagem de mquina. Este programa especfico da UCP em que ele ser executado. Isto fica claro quando se sabe que o montador cria instrues de mquina especficas de uma mquina, de um processador (UCP). No processo de montagem, o programa escrito em linguagem de montagem, chamado de cdigo fonte, examinado, instruo por instruo, e, em seguida, convertido para um outro programa em linguagem binria de mquina, denominado cdigo objeto. Cdigo Fonte Montador Cdigo Objeto Um passo mais significativo no sentido de criar uma linguagem de comunicao com o computador, mais simples, foi o desenvolvimento de linguagens que refletissem mais os procedimentos utilizados na soluo de um problema, sem preocupao com o tipo de UCP ou de memria onde o programa ser executado. Tais linguagens, por serem estruturadas de acordo com a compreenso e a inteno do programador, so usualmente denominadas linguagens de alto nvel. Da mesma forma que os programas em linguagem de montagem, os programas em linguagem de alto nvel, tambm requerem uma converso para instrues de mquina, processo denominado compilao. Normalmente, a converso de um simples comando em linguagem de alto nvel, redunda em dezenas de instrues de mquina, diferentemente de um programa em linguagem de montagem, onde cada instruo implica em uma nica instruo de mquina.

6.3 Compilao
Compilao o processo de anlise de um programa escrito em linguagem de alto nvel, o programa fonte (ou cdigo fonte) e sua converso (ou traduo) em um programa equivalente, porm descrito em linguagem binria de mquina (cdigo objeto). O programa que realizar esta tarefa denominado compilador. A compilao um processo semelhante ao de montagem (na anlise do programa fonte, e gerao de cdigo objeto em linguagem de mquina), porm mais complexo e demorado. Na montagem, h uma relao de 1:1 entre as instrues de linguagem de montagem e as instrues de mquina, enquanto na compilao isto no acontece, pois um nico comando em linguagem de alto nvel pode gerar vrias instrues de mquina. Inicialmente, o compilador realizar uma anlise do cdigo fonte (normalmente esta tarefa realizada por um mdulo do compilador denominado front-end), dividido em trs partes funcionais distintas: anlise lxica, anlise sinttica e anlise semntica. Aps essa tripla anlise, gerado um cdigo intermedirio, e so construdas vrias tabelas, como a tabela de smbolos, que auxiliar a realizao da segunda fase, que a fase de efetiva criao do cdigo objeto.

Arquitetura de Computadores 63

Nesta segunda fase, o mdulo do compilador denominado back-end aloca memria para as variveis e realiza a atribuio dos registradores a serem utilizados, alm da gerao do cdigo objeto final. O gerador de cdigo a parte do mdulo que converte a representao intermediria, gerada pelo mdulo front-end, em cdigo objeto. O cdigo objeto pode ser absoluto, isto , os endereos constates do cdigo so endereos reais de memria, ou pode ser relocvel, isto , os endereos so relativos ao incio do programa, transformando-se em endereos reais apenas na ocasio de execuo. Cdigos relocveis so mais versteis e, por isso, mais utilizados. Eles podem ser compilados separadamente e, posteriormente, ligados (linkeditados) para formar um mdulo nico que ser executado. Como o conjunto de instrues das UCP possui uma grande quantidade de instrues, algumas bem semelhantes, o gerador de cdigo pode produzir diferentes seqncias de cdigo de mquina para um mesmo clculo. Na prtica, os compiladores ignoram muitas das instrues existentes, sendo este pouco uso uma das desvantagens alegadas para mquinas (CISC) em relao aos processadores com arquitetura de poucas instrues (RISC).

6.4 Ligao ou Linkedio


Quando um programador escreve um programa (qualquer que seja a linguagem utilizada), ele no se preocupa em codificar determinadas operaes, porque o cdigo binrio necessrio para realizar aquelas tarefas j existe armazenado no sistema. preciso apenas que o cdigo em questo seja buscado onde estiver e incorporado ao programa para execuo. o caso, por exemplo, de comandos de entrada e sada. As rotinas externas ao programa (no fazem parte dele) so normalmente organizadas em arquivos (cada rotina consta de um arquivo de cdigo binrio), que constituem bibliotecas especficas para cada grupo de rotinas (matemticas, entrada / sada etc.). Uma biblioteca uma coleo de cdigos objeto, um para cada rotina especfica, e indexada pelo nome da rotina. Quando o programa de aplicao deseja usar uma dessas rotinas, ele insere uma chamada de biblioteca no seu cdigo (library call). Podemos concluir que um cdigo objeto gerado por um compilador no imediatamente executvel, visto que ainda h cdigo binrio a ser includo no programa, como, por exemplo, uma chamada de rotina de E/S. Quando o compilador, ao gerar o cdigo objeto, encontra um comando da linguagem de alto nvel que v requerer o uso de uma rotina de biblioteca, ele insere uma chamada para a rotina em cdigo objeto. Esta chamada inclui o nome da rotina, bem como o endereo de qualquer dado que deve ser passado entre o programa e a rotina. Para que o programa seja executado, necessrio que a rotina seja incorporada ao cdigo objeto do programa de aplicao, isto , que haja uma conexo lgica entre o cdigo objeto principal e o cdigo objeto da rotina. Esse processo de interpretao da chamada e respectiva conexo com a rotina denomina-se ligao ou linkedio e realizado por um programa denominado ligador ou linkeditor. Como resultado do processo de ligao, obtm-se um conjunto de cdigos de mquina, interligados e prontos para execuo. Chama-se este conjunto de cdigos de mdulo de carga ou cdigo executvel (por exemplo, os arquivos gerados no sistema operacional DOS que possuem a terminao EXE e COM so cdigos executveis, enquanto os arquivos com terminao OBJ so cdigos objeto). Cdigo Fonte Compilador Cdigo Objeto Linkeditor Cdigo Executvel

Arquitetura de Computadores 64

Na terminologia normalmente adotada para o assunto de ligao, a chamada a uma rotina externa denominada referncia externa no resolvida. Por se tratar de uma chamada para uma rotina que no pertence ao cdigo objeto que est sendo gerado pelo compilador, sua localizao desconhecida para ele (no resolvida), e externa porque no pertence ao cdigo objeto referido. O funcionamento do linkeditor consiste em examinar todo o cdigo objeto, gerado aps a compilao, e procurar as referncias externas no resolvidas. Para cada uma, procurar sua localizao nas bibliotecas indicadas nos comandos de execuo do programa (estes comandos so diretivas para o sistema operacional executar o compilador, o linkeditor etc.) Quando o linkeditor encontra a rotina chamada em uma das bibliotecas, ele substitui a linha de chamado pelo cdigo objeto da rotina. Isto se chama resolver a referncia externa. Uma das possveis mensagens de erro que podem surgir aps a concluso do processo de ligao a de no ter encontrado alguma rotina. Nesse caso, o cdigo objeto continua sem poder ser executado, pois ainda haver uma (ou mais de uma) referncia externa no resolvida. O loader, tambm chamado carregador, o utilitrio responsvel por colocar fisicamente na memria um programa para execuo. O procedimento de carga varia com o cdigo gerado pelo linkeditor e, em funo deste, o loader classificado como sendo do tipo absoluto ou relocvel. Se o cdigo executvel for do tipo absoluto, o loader s necessita conhecer o endereo de memria inicial e o tamanho do mdulo para realizar a carga. Ento o loader transfere o programa da memria secundria para a memria principal e inicia sua execuo (loader absoluto). No caso do cdigo relocvel, o programa pode ser carregado em qualquer posio de memria, e o loader responsvel pela relocao no momento da carga (loader relocvel).

6.5 Interpretao
O mtodo de interpretao se caracteriza por realizar as trs fases (compilao, ligao e execuo), comando a comando, do programa fonte. No h, portanto, um processo explcito de compilao e ligao. Na realidade, um programa fonte diretamente executado (interpretado) por um outro programa (o interpretador) e produz o resultado. No h produtos intermedirios, como o cdigo objeto ou cdigo executvel, como acontece no mtodo anterior. Resumindo, cada comando do cdigo fonte lido pelo interpretador, convertido em cdigo executvel e imediatamente executado, antes que o comando seguinte seja lido.

Arquitetura de Computadores 65

7 - Entrada e Sada
Para que possamos desfrutar da rapidez e flexibilidade de um computador, no basta sabermos que ele pode armazenar na memria os programas e dados que desejamos processar e nem que ele pode executar milhes de instrues por segundo. preciso que o programa que temos escrito em folha de papel e os dados que sero por ele manipulados sejam inseridos no sistema, caractere por caractere. Para tanto, precisamos de um meio qualquer que faa essa comunicao homem-mquina. Um teclado do tipo semelhante ao de uma mquina de escrever pode servir como elemento de entrada - em geral, os dispositivos de entrada ou de sada so denominados de perifricos (porque se encontram instalados fora do ncleo principal UCP/MP, mas ficam na maior parte das vezes prximos, isto , na sua periferia). Da mesma forma que temos a necessidade de comunicao com a mquina tambm preciso que haja comunicao no sentido contrrio, isto , mquina-homem, de modo que o usurio possa entender os resultados de um processamento. Uma impressora ou uma tela de vdeo podem servir como dispositivos de sada. Os dispositivos de entrada e sada, assim com o conjunto UCP/MP so interligados atravs do barramento externo, tambm chamado de barramento do sistema (system bus), por onde fluem os mesmos tipos de informao, dados, endereos e sinais de controle. Na realidade, o barramento do sistema permite o compartilhamento de informaes entre os diversos componentes de um computador, da mesma forma que o barramento interno da UCP permite o trnsito de informaes entre os registradores e demais unidades da UCP. O funcionamento do conjunto de dispositivos de entrada/sada em um computador , em geral, caracterizado pela existncia de diversos elementos que, embora realizem o mesmo tipo de funo (tenham o mesmo objetivo de comunicao homem-mquina), possuem caractersticas bem diversas. Por isso, costuma-se integrar os diversos elementos que cooperam no processo de entrada e sada, em um subsistema, parte do sistema de computao. Um subsistema de entrada/sada (E/S) deve, em conjunto, ser capaz de realizar duas funes: receber ou enviar informaes ao meio exterior; converter as informaes (de entrada ou de sada) em uma forma inteligvel para a mquina (se estiver recebendo) ou para o programador (se estiver enviando). Sobre a relao UCP/MP e o subsistema E/S h algumas observaes interessantes que devem ser mencionadas: 1) A primeira observao refere-se s diferentes caractersticas de cada dispositivo de E/S, o que tornaria extremamente complicada a comunicao UCP perifrico, se esta fosse realizada direta e individualmente, isto , se houvesse ume comunicao direta entre a UCP e o teclado, entre a UCP e a impressora, e assim por diante. Os perifricos costumam usar formatos e tamanhos diferentes de unidades de transferncia de dados. O mouse e o teclado enviam os bits um a um, ao passo que o vdeo e a impressora recebem da UCP as informaes byte a byte. J os discos e os disquetes trocam informaes com o conjunto UCP/MP em blocos de bits para otimizar a transferncia. Alm disso, existem diferenas relativas parte eltrica de gerao e interpretao dos sinais de transmisso. A velocidade de transferncia de dados de um perifrico , em geral, muito menor que a da UCP. No seria eficaz conectar os perifricos diretamente ao barramento do sistema, pois isto reduziria a velocidade da UCP/MP em sua comunicao. Alm disso, cada perifrico tambm tem velocidade diferente de um outro. Por causa disto na prtica a UCP no se conecta diretamente com cada perifrico, mas sim com dispositivos que realizam a traduo e a compatibilizao das caractersticas de um (dispositivo de E/S) para o outro (UCP/MP), alm de realizar outras tarefas de controle. Esses dispositivos costumam ser chamados de interface de E/S, porm h outros nomes igualmente utilizados pelo mercado, como: controladora (adiciona-se ao nome o do

Arquitetura de Computadores 66

especfico perifrico, como por exemplo, controladora de disco, controladora de vdeo), processador de perifricos, canal, adaptador e outros. 2) Os diversos tipos de dispositivos que podem ser conectados em um computador so classificados em trs categorias: a) os que transmitem/recebem informaes inteligveis para o ser humano - so adequados para estabelecimento de comunicao com o usurio. o caso de impressoras, monitores de vdeo, teclados; b) os que transmitem / recebem informaes inteligveis apenas para a mquina - so adequados para comunicao mquina a mquina ou internamente a uma mquina, como por exemplo, os discos magnticos; c) os que transmitem / recebem de / para outros dispositivos remotamente instalados, tais como os modems. 3) H duas maneiras bsicas de se realizar transmisso / recepo de dados entre os perifricos / interfaces e UCP/MP, bem como entre dispositivos interconectados entre si, local ou remotamente: a) a informao pode ser transmitida / recebida, bit a bit, um em seguida ao outro - isto caracteriza a transmisso serial; e b) a informao pode ser transmitida / recebida em grupos de bits de cada vez, isto , um grupo de bits transmitido simultaneamente de cada vez. Chama-se transmisso paralela. A escolha de um desses tipos de interligar a E/S ao sistema UCP/MP depende de vrios fatores, tais como: tipo e natureza do perifrico, custo de implementao e velocidade de transmisso desejada. 4) Basicamente, um dispositivo de entrada ou sada se comunica com o meio externo (usurio do sistema ou outro dispositivo) e com sua interface de E/S. Esta comunicao compreende o envio e recebimento de dados (bits) e sinais de controle.

7.1 - Interfaces de E/S


Uma interface de E/S pode servir apenas para a conexo UCP/MP e para controle de um nico dispositivo de E/S ou pode atender a vrios dispositivos, at mesmo dispositivos diferentes. Por exemplo, uma controladora de disco de certos microcomputadores pode controlar a comunicao da UCP/MP com uma unidade de disco e uma unidade de disquete; h outros tipos de controladoras, em microcomputadores, que podem controlar at 8 dispositivos perifricos (Interface SCSI - Small Computer System Interface). Uma interface ou controlador de E/S , em geral, responsvel pelas seguintes tarefas: a) controlar e sincronizar o fluxo de dados entre a UCP/MP e o perifrico; b) realizar a comunicao com a UCP, inclusive interpretando suas instrues ou sinais de controle para o acesso fsico ao perifrico; c) servir de memria auxiliar para o trnsito das informaes entre os componentes (buffer de dados); e d) realizar algum tipo de deteco e correo de erros durante as transmisses.

Arquitetura de Computadores 67

Em geral, uma interface de E/S se comunica com o perifrico atravs das seguintes aes bsicas: 1) A interface envia um sinal de controle interrogando o perifrico sobre a disponibilidade de receber dados (se foi operao de escrita) ou de enviar (leitura). 2) O perifrico responde. 3) A interface transmite os dados (a quantidade de bits em cada transmisso de pende da unidade de transferncia de dados adotada pelo perifrico). 4) O perifrico certifica o recebimento ou o trmino da leitura. A utilizao de um buffer interno pelas interfaces um fator fundamental para a compatibilizao de velocidades diferentes entre o barramento do sistema e suas linhas externas.

7.1.1 - Transmisso serial


Na transmisso serial, o perifrico conectado ao dispositivo controlador ou interface de E/S por uma nica linha de transmisso de dados, de modo que a transferncia de dados realizada um bit de cada vez, embora o controlador possa ser conectado UCP/MP atravs de barramento de vrias linhas. A transmisso serial mais lenta que a transmisso paralela, visto que s envia em bit de cada vez, sendo normalmente utilizada em perifrico de baixa velocidade ou cuja caracterstica tpica de transmisso bit a bit. O teclado e o mouse so dispositivos que realizam comunicao serial, assim como os modems (equipamentos utilizados para enviar dados, via linhas telefnicas, para outros dispositivos geograficamente distantes). Como a transmisso bit a bit, necessrio que o receptor e o transmissor estejam sincronizados bit a bit, isto , o transmissor transmite is bits sempre com a mesma velocidade e, todos os bits tero a mesma durao no tempo. Por exemplo, se o transmissor estiver operando na velocidade de 1000 bits por segundo (1000 bps), isto significa que cada bit dura 1/1000 seg ou 1 milissegundo. Para que o receptor seja capaz de receber todos os bits enviados, ele precisa saber quando um bit inicia e qual a sua durao (largura do bit). Se, a cada 1 mseg, o transmissor envia um bit (o nvel de tenso alto significa, por exemplo, bit 1 e o nvel de tenso baixo significa bit 0), ento, a cada 1 mseg o receptor deve sensar o nvel de tenso da linha para captar i bit que est chegando e identific-lo como 0 ou 1. O receptor deve trabalhar, com a mesma velocidade do transmissor. Para que haja maior confiabilidade no processo, comum que o receptor sense no instante em que o bit est na metade de sua durao, de modo a evitar possveis erros se ele, por exemplo, detectasse prximo subida do valor 0 para 1 ou vice-versa. Receber bit a bit no suficiente. preciso que o receptor saiba identificar grupos de bits que tenham um significado, como, por exemplo, o da representao de 1 caractere. Dependendo do cdigo de representao utilizado, cada caractere ser representado por um grupo de n bits (em geral, n igual a 8 bits).

7.1.2 - Transmisso Paralela


Com o uso de transmisso em paralelo, um grupo de bits transmitido de cada vez, cada um sendo enviado por uma linha separada de transmisso. Esse processo mais utilizado para transmisso interna no sistema de computao e para ligao de alguns perifricos (atualmente, em impressoras, mais comum o emprego de interface paralela do que serial) a curta distncia, visto que o custo da transmisso paralela maior em face da quantidade de linhas utilizadas. Quanto maior a distncia entre os dispositivos maior ser o comprimento da conexo e maior o custo correspondente.

Arquitetura de Computadores 68

A transmisso paralela uma forma padro usada em microcomputadores e computadores de maior porte, devido simplicidade do seu uso. Uma interface paralela muito utilizada na conexo de impressoras o padro CENTRONICS, nome dado em razo de o mtodo ter sido desenvolvido por um fabricante com este nome. O padro CENTRONICS (padro porque a maioria dos sistemas utiliza esta interface) define um conjunto de sinais que fluem pelas linhas de conexo, bem como estabelece o formato e a quantidade de pontos que devem existir no conector associado. Um outro tipo de interface paralela denomina-se SCSI - Small Computer Systems Interface, empregada para controlar dispositivos com elevado volume e velocidade de transmisso, como discos magnticos e CD-ROM.

Arquitetura de Computadores 69

Anda mungkin juga menyukai