arquitetura de com put adores - apostila

Upload: carlos-shosu-nishio-saboia

Post on 06-Jul-2015

5.192 views

Category:

Documents


1 download

TRANSCRIPT

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

2

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

3

1

- Componentes de um sistema de computao

1.1 - Descrio dos componentesUm 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

4

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 NeumannO 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

5

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 PalavraO 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

6

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

7

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

8

2 - Converso de bases e aritmtica computacionalDesde 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 numeraoEntre 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

9

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 BasesEntendido 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 2Entre 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)163

Arquitetura de Computadores 11

2.2.2 - Converso de nmeros de uma base B para a base 10A 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)105 4 3 2 1 0

2.2.3 - Converso de nmeros decimais para uma base BA 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 hexadecimalProcedimentos 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- MemriaA 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 secundriaNa 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 principalA 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

MPendereo 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 linearPor 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 principalConforme 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 MPA 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 combinaespossveis. 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 = 218

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 bits11 E

E

15

E

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 CacheEm 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 cacheUCPTransferncia cache/UCP clula por clula

CACHETransferncia 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 localidadeBasicamente, 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/CachePara 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

MPclula 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 bitsTAG

9 bits

7 bits

nmero do conjunto endereo da clula

3.5.4 - Algoritmos de substituio de dados na cacheO 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 cacheEm 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 - RegistradoresEm 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

o

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 = Quadroo

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 processamentoTarefas 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 palavraA 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 controleA 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 ControleAlm 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 InstruoSua 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.