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
Arquitetura de Computadores
Processador - UCP
Entrada
Memria
Sada
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.
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
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 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
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.
Arquitetura de Computadores 11
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
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.
Arquitetura de Computadores 16
Arquitetura de Computadores 17
MP
endereo 0 endereo 1 endereo 2 endereo 3 M bits M bits
N clulas
Arquitetura de Computadores 18
Linha de bit
Linha de clula
REM E bits
Memria N clulas
Read / Write
Linhas de Dados
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
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
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.
Arquitetura de Computadores 24
MP
clula de end. 0 clula de end. 1 clula de end. 2 bloco 0 (K clulas) CACHE
bloco 1
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
Arquitetura de Computadores 26
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.
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
24
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-)
12
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
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.
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.
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.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
Sinais de Controle
S0 a S15
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.
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.
Arquitetura de Computadores 39
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.
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:
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
Arquitetura de Computadores 43
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
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.
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).
Arquitetura de Computadores 54
Exemplo 1:
Exemplo 2:
C.Op.
4 bits
R
8 bits
Operando
8 bits
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
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
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
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
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
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
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.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).
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.
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.
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