A primeira caracterstica a considerar em um computador sua unidade central de processamento a UCP (Unidade Central de Processamento), que tambm chamada de CPU (Central Processing Unit), processador e microprocessador. Estes quatros termos so equivalentes. Tudo o que acontece num computador provm do microprocessador. Ele executa o processamento numrico (adio, subtrao, etc.), as funes lgicas e as funes de temporizao. A Figura 1.1 mostra o modelo bsico da maioria dos computadores atuais. Este modelo foi apresentado em 1946 em um artigo por Von Neumann e implementado em 1950. Esta arquitetura bsica de um computador conhecida como Arquitetura de Von Neumann. Memria Dispositivos de Entrada/Sada Unidade de Controle de Processamento Barramento de Dados Barramento de Controle Barramento de Endereos Registratores ULA Controlador
Figura 1.1 Diagrama de Blocos da Arquitetura de Von Neumann
As operaes do microprocessador so controladas por um conjunto de instrues que, quando organizadas em uma seqncia lgica, formam o chamado programa. O programa e os dados a serem manipulados so armazenados numa memria externa ao microprocessador. O microprocessador alimentado com dados e sinais de controle, executa uma instruo por vez, e produz como sada, dados e sinais de controle. O microprocessador executa instrues muito simples, mas realizadas com uma velocidade extremamente elevada, possibilitando a realizao de tarefas complexas. Internamente, um microprocessador formado por trs unidades principais: os registradores; a unidade lgica e aritmtica (ULA); e o circuito de controle.
1.1 - Unidade Lgica e Aritmtica ULA Todos os microprocessadores possuem a unidade lgica e aritmtica (ULA). A ULA contm um somador que executa operaes aritmticas binrias sobre os dados 2 obtidos na memria, dos registradores ou de outras entradas. Algumas ULAs executam tarefas mais complexas como multiplicao e diviso. Alm disso, elas trabalham com lgica Booleana e deslocamentos de dados. A cada manipulao lgica ou aritmtica sinalizada pela ULA atravs dos bits de estado (flags), como por exemplo a sinalizao da ocorrncia de estouro (carry) de bits durante uma soma.
1.2 - Registradores Para que um dado possa ser transferido para a ULA, necessrio que ele permanea, mesmo que por um breve instante, armazenado em um registrador conhecido como acumulador (AC). Alm disso, o resultado de uma operao aritmtica ou lgica realizada na ULA tambm armazenado temporariamente no acumulador, de modo que possa ser utilizado mais adiante ou apenas para ser transferido para a memria. J o registrador que tem a funo especfica de armazenar a instruo a ser executada pelo microprocessador conhecido como registrador de instruo (RI). Todo microprocessador possui um outro registrador conhecido por contador de instruo (CI) ou program counter (PC), cuja funo especfica armazenar o endereo da prxima instruo a ser executada. To logo a instruo que vai ser executada seja buscada (lida) da memria, o sistema de controle do microprocessador providencia a modificao do contedo do CI (normalmente CI incrementado de um) de modo que ele passe a armazenar o endereo da prxima instruo na seqncia. Por isso, comum definir a funo do CI como sendo a de "armazenar o endereo da prxima instruo".
1.3 - Unidade de Controle o dispositivo mais complexo do microprocessador. Este possui a lgica necessria para realizar a movimentao de dados e instrues da memria para os registradores, alm disso esse dispositivo controla a ao da ULA. Os sinais de controle emitidos pela unidade de controle (UC) ocorrem em vrios instantes durante o perodo de realizao de um ciclo de instruo e, de modo geral, todos possuem uma durao fixa e igual, originada em um gerador de sinais usualmente conhecido como relgio (clock). A unidade de controle mais difundida a unidade de controle fixa, que utiliza circuitos combinacionais. Neste tipo de implementao da unidade de controle tem-se basicamente um circuito combinacional que recebe como entrada infomaes do RI, dos Registradores de Flags e de um contador sequncial, como pode ser observado na Figura 1.2. O circuito combinacional contm todas as informaes necessrias para a gerao dos pulsos de controle. Utilizando mtodos clssicos de sntese e minimizao de funes booleanas. Para cada sada dos sinais de controle (definidas unicamente pelas entradas) tem- se uma funo booleana. 3
Fig 1.2 - Esquema bsico de uma unidade de controle
1.4 - Dispositivos de Entrada e Sada (E/S) Os dispositivos de entrada e sada, tambm conhecidos por perifricos, so os meios pelos quais o microprocessador se comunica com o mundo exterior. Os dispositivos de E/S fazem uma correspondncia entre os nveis de sinal e a sincronizao dos circuitos internos de estado slido do microprocessador com os outros componentes contidos no microcomputador. Por exemplo, os circuitos internos de um microprocessador so projetados para serem econmicos com a eletricidade, de modo a operar mais rpido e gerar menos calor. Esses delicados circuitos internos no so capazes de lidar com as correntes mais altas necessrias para ligao com componentes externos. Consequentemente, cada sinal que sai do microprocessador passa por um buffer de sinal da unidade de I/O, que eleva sua capacidade de lidar com correntes.
1.5 - Via de Dados, Endereos e Controle A conexo entre o microprocessador, memria e dispositivos E/S realizada por um conjunto de fios ou linhas paralelas, chamados de via ou barramento. Como podemos observar na Figura 1.1, temos trs vias diferentes: vias de dados; a via de endereos;e a via de controle. Os dados trafegam entre o microprocessador, memria e E/S atravs da via de dados. Estes dados podero ser instrues para o microprocessador ou informaes do microprocessador para as portas E/S e vice-versa. A via de endereos utilizada pelo microprocessador para selecionar uma clula de memria ou dispositivo E/S atravs de um cdigo binrio. A via de controle conduz os sinais de controle para a memria e para os dispositivos E/S, especificando as direes dos dados em relao ao microprocessador, o momento exato da transferncia, etc. A Figura 1.3 ilustra uma situao tpica na qual um microprocessador est conectado em vrios dispositivos atravs de um barramento de 8 bits. O barramento de dados simplesmente uma coleo de caminhos condutores sobre os quais os dados CIRCUITO COMBINACIONAL Contador RI Clear Clock Sinais de Flag Sinais de controle
4 digitais so transmitidos de um dispositivo para outro. Obviamente, tendo em vista que as sadas de todos os dispositivos esto conectadas no mesmo barramento, deve-se tomar o cuidado com os problemas de conteno de barramento, onde dois ou mais sinais ligados na mesma linha de barramento ficam ativos e, basicamente, competem um com o outro. Para que conteno seja evitada as sadas dos dispositivos conectados ao barramento devem possuir sadas triestate ou devem ser conectados ao barramento atravs de buffers de terceiro estado. As entradas de habilitao de sada (OE output enable) de cada dispositivo (ou seu buffer) so usadas para garantir que apenas um dispositivo ative suas sadas em cada instante.
Fig 1.3 Barramento tpico
5 A 74LS126 X E E X 0 alta impedncia 1 A
Fig 1.4 Buffer triestate
1.6 - Memria
Memria todo conjunto ou dispositivo capaz de armazenar bits de informao. Nela os dados e instrues ficam disponveis ao processamento pelo microprocessador. A memria pode estar divida em pores de armazenamento, um bloco que armazena somente dados (Memria de Dados), um outro que armazena somente as instrues (Memria de Instruo). A memria mapeada atravs de endereos, onde cada endereo aponta para um conjunto de bits denominado de palavra de memria. Cada bit da palavra de memria denominado como clula de memria. A quantidade de bits que a palavra de memria possui determinado pelo nmero de bits que o microprocessador capaz de ler ou gravar de uma nica vez (podem ser tanto dados como instrues). No confundir uma palavra de memria com byte, que o agrupamento de oito bits. A capacidade de uma memria especificada pelo nmero de bits que ela capaz de armazenar. Exemplo: suponha uma memria capaz de armazenar 4096 palavras de 20 bits. Isto representa uma capacidade total de 81920 bits. Poderamos tambm expressar essa capacidade como 4k X 20 ( comum usar a designao 1k para representar 1024 = 2 10 quando nos referimos capacidade de memria). Na arquitetura desenvolvida por Von Neumanna memria era a mesma tanto para dados e como para instrues, e possua 4096 (2 12 ) palavras de 40 bits. Neste caso, o barramento de endereos possua 12 vias e o barramento de dados 40 vias. 6 00h FFFh ..... . . . . . . . . . . bits 0 1 2 39 38 37 p a l a v r a s
Figura 1.5 Representao da memria utilizada por Von Neumann
Pode-se dividir a memria em dois grupos segundo a capacidade de leitura/escrita: memria ROM (Read Only Memory); e memria RAM (Random Access Memory)
1.6.1 - Memria ROM (Memria apenas de Leitura)
uma poro da memria que no depende de energia para manter o seu contedo. Tambm chamada de memria permanente, nela so armazenadas informaes que no podem ser apagadas durante o funcionamento do microprocessador. uma memria apenas de leitura, onde o usurio pode apenas ler as informaes nela gravadas. Nela residem os programas necessrios ao funcionamento do microprocessador. H vrios tipos de ROM:
PROM (Programmable ROM) - ROM cujo contedo gravado uma nica vez; EPROM (Erasable PROM) - ROM que pode ser reprogramada, desde que previamente apagada com raios ultra-violeta. EEPROM (Electrically EPROM) - Reprogramvel por impulsos eltricos especiais. FLASH Como a EEPROM reprogramavl por impulsos eltricos. As memrias FLASH podem ser gravadas com uma velocidade bem superior a EEPROM.
7 1.6.2 - Memria RAM (Memria de Acesso Randmico)
Memria de acesso randmico ou aleatrio, tambm chamada de memria temporria. Seu uso restringe-se ao perodo em que o equipamento est em funcionamento. Se a mquina no receber energia, mesmo que seja por uma frao de segundos, todo o contedo da memria RAM estar perdido. Essa memria voltil, seu contedo pode ser modificado durante o do microprocessador. Esta serve tanto para armazenar programas e dados, quanto para guardar resultados intermedirios do processamento.
1.6.3 Princpio de Operao da Memria Embora cada tipo de memria seja diferente na sua operao interna, certos princpios bsicos de operao so iguais para todos os sistemas de memrias. Todos os sistemas de memria necessitam de linhas de entrada e sada para realizar as seguintes funes: Selecionar o endereo na memria que sendo acessado para uma operao de leitura ou escrita; Selecionar uma operao de leitura ou uma de escrita a ser realizada; Fornecer os dados de entrada a serem armazenados na memria durante uma operao de escrita; Manter os dados de sada vindos da memria durante uma operao de leitura; Habilitar a memria de modo que responda as entradas de endereamento e ao comando de leitura.
A Figura 1.6 apresenta o diagrama de uma memria RAM de 32 X 4 que armazena 32 palavras de 4 bits. Tendo em vista que o tamanho da palavra de quatro bits, existem quatro linhas de entrada de dados e quatro linhas de sada de dados. Durante uma operao de escrita, o dado a ser armazenado na memria deve ser aplicado nas linhas de entradas de dados. Durante uma operao de leitura, a palavra que est sendo lida da memria aparece nas linhas de sada de dados. Memria RAM 32 X 4 Entrada de dados Sada de dados Comando de leitura/ escrita Habilitao da memria A3 I3 A0 A1 A2 R/W I0 I1 I2 ME O3 O0 O1 O2 A4 Entrada de endereos
Figura 1.6 Diagrama de uma memria RAM 32 X 4 8
A entrada W R / controla qual operao deve ser realizada na memria: leitura (R READ) ou escrita ( W - WRITE). A entrada ME (tambm conhecida com CS CHIP SELECT) desabilita completamente a memria, de modo que ela no responde s outras entradas. Esse tipo de entrada til quando vrios mdulos de memria so combinados para formar uma memria maior. Exemplo: Construir um sistema de memria de capacidade 64 X 4 com duas memrias de capacidade de 32 X 4.
RAM 32 X 4 RAM 32 X 4 Sada de dados O0 - O3 Entrada de endereos A0 - A4 Entrada de dados I0 - I3 ME ME A5 R/W Entrada de endereo
Fig 1.7 - Sistema de memria de capacidade 64 X 4
Sempre que o microprocessador deseja escrever dados em uma posio de memria, os passos devem ocorrer: 1. O microprocessador fornece o endereo binrio da posio de memria no qual o dado deve ser armazenado; 2. O microprocessador coloca o dado a ser armazenado nas linhas de barramento de dados; 3. O microprocessador coloca o sinal W R / em nvel baixo e o sinal ME em nvel alto;
J o processo de leitura deve seguir os seguintes passos: 1. O microprocessador fornece o endereo binrio da posio de memria da qual o dado deve ser buscado; 2. O microprocessador coloca os sinal W R / e ME em nvel alto;
Exerccio: 1) Sabendo que uma determinada memria tenha uma capacidade de 4k X 8, responda: a) Quantas vias o barramento de entrada de dados deve possuir? b) Quantas vias o barramento de sada de dados deve possuir? c) Quantas vias o barramento de endereo deve possuir?
9 2) Construa um sistema de memria de capacidade de 128 X 4 a partir de memrias de capacidade de 32 X 4. 3) Construa um sistema de memria de capacidade de 32 X 8 a partir de memrias de capacidade de 32 X 4.
1.7 - Ciclo de Mquina medida que o microcomputador trabalha, dados so transferidos entre microprocessador, a memria e os dispositivos de entrada/sada. Chama-se ciclo de mquina cada ocorrncia completa de uma transferncia de dados dentro do sistema. O ciclo de mquina composto por vrias etapas, que so realizadas basicamente de forma seqencial, isto , uma etapa se inicia aps a concluso da anterior. O tempo de cada etapa do ciclo de maquina determinado pelo perodo de relgio (clock) do microprocessador. A Figura 1.8 mostra o ciclo de mquina de um microprocessador hipottico composto por quatro etapas. Q1 Q4 Q3 Q2 ciclo de mquina Q4 Q1 C I = C I + 1 C I = C I + 1 sinais de relgio sinais de acesso a memria
Figura 1.8 Ciclo de mquina de uma UCP hipottica
Etapa Q 1 : durante a etapa Q 1 o microprocessador acessa a memria de programa, l a instruo a ser executada e realiza a copia desta instruo para o registrador de instruo (RI). O endereo da instruo acessada na memria de programa indicado pelo CI. Etapa Q 2 : durante a etapa Q 2 o microprocessador l a memria de dados e realiza a copia dos dados necessrios para execuo da instruo identificada na etapa Q 1 nos registradores acumuladores. Etapa Q 3 : durante a etapa Q 3 a ULA executa a instruo identificada na etapa Q 1 . Observe que durante a etapa Q 3 no h acesso a memria. Etapa Q 4 : durante a etapa Q 4 o microprocessador atualiza os dados alterados na etapa Q 3 , escrevendo na memria de dados. Ao final da etapa Q 4 o contador de instruo atualizado automaticamente (CI=CI+1), guardando o endereo da prxima instruo a ser executada. Neste exemplo hipottico sendo a freqncia do sinal do relgio de 4 MHz, cada etapa ter um perodo de 0,25 s e a realizao de um ciclo de mquina gastar 1 s. 10 Uma forma de aumentar a velocidade do microprocessador consiste em sobrepor algumas das etapas independentes do ciclo de mquina, esta metodologia denominada de pipeline. No ciclo de mquina hipottico anterior pode-se, por exemplo, sobrepor a etapa Q 1 com a etapa Q 3 , j que o funcionamento da ULA independente do acesso memria, assim enquanto a ULA executa uma instruo, o microprocessador guarda no RI a instruo a ser realizada no ciclo de mquina seguinte. Com a sobreposio das etapas Q 1 e Q 3 , a instruo buscada em um ciclo de mquina sempre ser executada no prximo ciclo. A Figura 1.9 mostra o novo ciclo de mquina do microprocessador hipottico. E1 E1 E3 E2 ciclo de mquina E3 E2 C I = C I + 1 C I = C I + 1 sinais de relgio sinais de acesso a memria ciclo de mquina posterior ciclo de mquina anterior
Figura 1.9 Ciclo de mquina de uma UCP hipottica utilizando a metodologia de pipeline Etapa E 1 : durante a etapa E 1 o microprocessador l a memria de dados e realiza a copia dos dados necessrios nos registradores acumuladores para execuo da instruo que foi identificada no ciclo de mquina anterior.
Etapa E 2 : durante a etapa E 2 a UCP acessa a memria de programa, l a instruo a ser executada no ciclo de mquina posterior, realizando a copia desta instruo para o registrador de instruo (RI), e ao mesmo tempo a ULA executa a instruo identificada no ciclo de maquina anterior. Etapa E 3 : durante a etapa E 3 a UCP atualiza os dados alterados na etapa E 2 , escrevendo na memria de dados. Ao final da etapa E 3 o contador de instruo atualizado automaticamente (CI=CI+1), guardando o endereo da prxima instruo a ser executada. Considerando ainda que a freqncia do sinal do relgio seja de 4 MHz, a realizao de um ciclo de mquina gastar agora 0,75 s.
1.8 Interrupes
Certas situaes podem interromper o fluxo seqencial normal de execuo das instrues. Esta situao pode ser caracterizada por uma interrupo. Considere por exemplo, que durante a execuo de um programa, ao processar um grande volume de dados, parte destes dados ser impressa. O microprocessador transfere para a impressora uma certa quantidade de dados em um ciclo de mquina. Devido a sua inrcia mecnica, a impressora gasta um nmero maior de ciclos para imprimir aqueles dados. Neste intervalo de tempo o microprocessador no pode ficar parado aguardando para enviar mais dados para a impressora, ele deve continuar executando o programa corrente. 11 Quando a impressora estiver apta a receber novos dados, ela sinaliza ao microprocessador por uma linha especial de controle de interrupo. Ao receber este sinal, o microprocessador suspende a execuo do programa corrente e automaticamente transfere novos dados para a impressora, retornando, a seguir, ao programa em execuo. Esta capacidade de trabalhar com interrupes aumenta a performance do microprocessador. Geralmente, vrios dispositivos trabalham com interrupes sob o comando de um nico microprocessador. Para atender a todos, as interrupes podem ser priorizadas. Assim, ser atendido em primeiro lugar aquele que possuir maior prioridade.
2 - Representao das Instrues
Os microprocessadores executam programas escritos em linguagem de mquina e que estejam gravados em determinadas posies de memria, de acordo com as caractersticas de cada arquitetura utilizada. A linguagem da mquina no natural ao ser humano. Para vencer esta barreira, foram criadas as Linguagens de Montagem (Assembly) e as Linguagens de Alto Nvel.
2.1 Linguagem de Mquina
Independente do microprocessador utilizado, as instrues em linguagem de mquina so formadas por combinaes de 0 e 1. Estas instrues contm o cdigo de operao e os operandos, como mostrado na Figura 2.1.
cdigo de operao (opcode) endereo do operando 1 endereo do operando 2 bit 0 bit n
Fig. 2.1 Representao da estrutura da instruo em linguagem de mquina
Cdigo de Operao ou opcode - identifica a operao a ser realizada pelo processador, ou seja o campo da instruo cujo valor binrio identifica a operao a ser realizada. Este cdigo decodificado pela unidade de controle. Cada instruo dever ter um cdigo nico que a identifique. Operando(s) - o campo da instruo cujo valor binrio sinaliza a localizao do dado que ser manipulado (processado) pela instruo durante a operao. Em geral, um operando identifica o endereo de memria onde est contido o dado que ser manipulado, ou pode conter o endereo onde o resultado da operao ser armazenado.
2.2 Linguagens de alto nvel
As linguagens de alto nvel so caracterizadas por apresentar comandos alfanumricos, onde cada comando costuma ser implementado por um conjunto de instrues de mquina, de forma transparente ao programador, que a princpio no necessita conhecer as caractersticas de arquitetura e programao de cada processador para poder program-lo. As linguagens de alto nvel, por sua vez, so independentes da mquina em que vai ser executado o programa, desde que se disponha de verses do compilador que gere cdigo para cada processador que se pretenda programar. 12
2.3 Linguagem Assembly
A linguagem de montagem ou assembly definida com base na linguagem de mquina, onde cada instruo da mquina representada por um comando mnemnico em caractere alfanumrico, em vez de cominaes de 0 e 1. Os programas escritos nestas linguagens so especficos para cada famlia de microprocessadores, cujas instrues costumam ser definidas pelo prprio fabricante do microprocessador. Na Tabela 2.1 tm-se algumas instrues em assembly de um microprocessador hipottico.
Tab. 2.1 - Algumas instrues de um microprocessador hipottico
Instruo (comando mnemnico)
Argumentos Significado Operao Opcode
org
- Zera o CI CI=0 0000
add
Op1,op2 Somar op1=op1+op2 0010
sub
Op1,op2 Subtrair op1=op1-op2 0011
mov
Op1,op2 Mover op1=op2 0100
Os programas escritos na linguagem assembly so chamados de arquivo-fonte. criado sentenas em um arquivo de texto comum. Querendo-se, por exemplo, criar um programa para realizar a seguinte operao: resultado = var1 + var2 var3. Deve-se criar um arquivo texto contendo as seguintes sentenas:
Fig. 2.2 Exemplo de um programa na linguagem assembly
Supondo que o endereo da varivel var1 na memria de dados seja b00000, o endereo de var2 seja b00001, o endereo de var3 seja b00010 e que o endereo de resultado seja b00011, o programa acima depois de montado (copilado) geraria um arquivo em linguagem de mquina que sria:
Fig. 2.3 Exemplo de um programa na linguagem de maquina
add var1,var2 ;(var1=var1+var2) mov resultado,var1 ;(resultado=var1+var2) sub resultado,var3 ;(resultado=var1+var2-var3)
0010 00000 00001 0100 00011 00000 0011 00011 00010 13 3 Os Primeiros Microprocessadores: 3.1 - 8086 Lanado pela Intel em 1978, o 8086 tinha um desempenho dez vezes melhor que seu antecessor o 8080. Seus registradores tinham a largura de 16 bits, o barramento de dados passou de 8 para 16 bits e o barramento de endereos se tornou maior com 20 bits de largura, permitindo assim que fosse controlado mais de 1 milho de bytes de memria. A memria passou a ser tratada de maneira diferente pois esse processador tratava a mesma como se fosse dividida em at 16 segmentos contendo 64 kilobytes cada, e no permitia que nenhuma estrutura de dados ultrapassasse a barreira entre os segmentos.
Fig. 3.1 Arquitetura interna do 8086 3.2 - 8088 O 8088 surgiu da necessidade em se criar um processador com caractersticas parecidas com as do 8086 mas que tivesse um custo menor. Dessa forma, a Intel colocou no mercado um chip que s se diferenciava do 8086 pelo fato de ter um barramento de dados de 8 bits. Em virtude de sua concepo menos avanada e do baixo custo de produo o 8088 foi escolhido pela IBM, para o projeto de seu computador pessoal.
14 Agente Secreto 89 O Agente Secreto 89 est tentando descobrir quantos dias antecedem o assassinato de um certo lder mundial. Seu contato lhe revelou que esta informao est localizada numa srie de caixas postais. Para garantir que ningum mais obtenha a informao, ela espalhada por dez caixas diferentes. Seu contato forneceu a ele dez chaves juntamente com o seguinte conjunto de instrues: Abra a caixa 1 primeiro e execute a instruo localizada l. Continue pelas caixas restantes em seqncia, a menos que seja instrudo ao contrrio. Uma das caixas est preparada para explodir quando for aberta. (1)
Some o nmero armazenado na caixa (9) ao seu nmero de cdigo de agente secreto.
(2)
Divida o resultado anterior pelo nmero armazenado na caixa (10)
(3)
Subtraia o nmero armazenado na caixa (8)
(4)
Se o resultado anterior no for igual a 30, v para a caixa (7). Caso contrrio continue para a prxima caixa.
(5) Subtraia 13 do resultado anterior. (6) Retorne para o quartel-general com a resposta. (7) BOMBA! (8) 20
(9) 11 (10) 2
Dez caixas postais com mensagens para o Agente 89
Se voc procedeu corretamente, deve terminar na caixa 6 com uma resposta de 17 dias. Nesta brincadeira podemos fazer uma srie de analogias sobre os conceitos bsicos da operao de um computador, so elas:
As caixas postais so similares memria em um computador;
As caixas postais de 1 a 6 contm instrues a serem executadas pelo agente secreto (computador), e as caixas 8, 9 e 10 contm dados referenciados pelas instrues;
Os nmeros de cada caixa so como os endereos das posies da memria;
Trs classes diferentes de instrues so apresentadas nas caixas de 1 a 6. As caixas de 1 a 5 so instrues que demandam operaes aritmticas. A caixa 4 contm uma instruo de deciso denominada salto condicional. A caixa 6 contm uma instruo de controle.