Uma pastilha de um microprocessador contém um conjunto de pinos, através dos quais é feita toda a comunicação externa. Estes pinos são usados para receber sinais de fora para dentro do processador, para enviar os sinais do processador para fora, ou para fazer ambas. Entendendo as funções dos pinos de um processador, podemos saber como é feita a interação do processador com a memória e com dispositivos de E/S.A pinagem do processador pode ser dividida em três tipos: endereço, dado e controle.Estes pinos são conectados a pinos similares das memórias e pastilhas de E/S através de um conjunto de fios paralelos denominados de barramento, FUNÇÕES BÁSICAS DE UMA UCP O processador é o componente principal de um sistema de computação. É responsável pela realização das operações de processamento e de controle, durante a execução de um programa. Um programa para ser executado pelo processador deve ser formado por uma série de instruções de máquina. Para iniciar a execução de um programa, as instruções devem ser armazenadas na memória principal. A operação da UCP consiste em: Buscar uma instrução da memória (operação de leitura), uma de cada vez; Decodificar a instrução, para determinar o tipo de operação a ser realizada, por exemplo: soma, multiplicação, leitura ou escrita na memória, mover dados de um lugar para o outro, etc; Se as instruções utilizarem dados, buscá-los onde estiverem armazenados para que a UCP possa processá-los; Executar a operação com os dados e guardar o resultado, se houver, no local especificado; Reiniciar o processo, buscando a próxima instrução. Estas etapas consistem do ciclo de instrução. Este ciclo se repete até que seja encontrada alguma instrução de parada, o sistema seja desligado ou ocorra algum tipo de erro. A UCP é projetada para executar sucessivamente, operações básicas na seqüência definida pelo programa. As atividades realizadas pela UCP podem ser divididas em duas categorias: Processamento Controle COMPONENTES PRINCIPAIS DE UMA UCP 1. Unidade Lógica e Aritmética É um dispositivo lógico, interno à UCP, cuja função é realizar as operações aritméticase lógicas requeridas nas instruções de máquina 2. Registradores Um dado a ser enviado para a ULA, é armazenado temporariamente em um determinado registrador interno da UCP. Além disso, o resultado de uma operação realizada pela ULA também é armazenado em um registrador, de maneira que possa ser executado por alguma outra instrução ou para que possa ser transferido para a memória. A UCP contém uma pequena memória, de alta velocidade, usada para armazenar resultados temporários e certas informações de controle. Esta memória é formada por um certo número de registradores, cada um com uma dada função. Um registrador é basicamente uma palavra de memória interna ao processador. A diferença é que acesso a um registrador é muito mais rápido que o acesso a qualquer palavra de memória externa ao processador. Em geral, o número de bits que os registradores internos de uma UCP são capazes de armazenar é igual ao número de pinos do barramento de dados, ou seja, o número de bits que o processador é capaz de tratar de uma só vez. O processador 8086, possui registradores de 16 bits, ao passo que o 80486 possui registradores de 32 bits. A quantidade de registradores empregados em uma UCP, variam de processadores para processadores. Um desses registradores é o Acumulador (ACC), cuja função básica é servir como elemento básico de ligação entre a ULA e os demais dispositivos da UCP. Existe dois registradores internos ao processador que funcionam em conjunto na execução das instruções de um programa. O registrador de instrução IR (instruction register ) armazena o código da instrução que está sendo executada, enquanto que o registrador apontador de instruções IP (instruction pointer ) contém o endereço de memória da próxima instrução a ser executada. O usuário não tem acesso direto a estes dois registradores internos. O Registrador de Estado (RST) Armazena códigos de condição gerados pela ULA e eventualmente, sinais de interrupção gerados por dispositivos de Entrada e Saída. Os registradores REM (registrador de endereço de memória) e RDM (registrador de dados de memória) são usados para efetuar a comunicação com a memória. 3 Controle A área de controle de uma UCP é a parte que realiza as seguintes atividades: * Busca de instrução que será executada, armazenando-a em um registrador especialmente projetado para esta finalidade: Registrador de Instrução. * Interpretação das ações que serão processadas durante a execução da instrução. Por exemplo, se é uma soma, um complemento, etc. * Geração dos sinais de controle apropriados para a execução da instrução identificada. Sinais estes que são enviados aos diversos componentes do sistema, sejam eles internos ou externos. A parte de controle é projetada para identificar o que deve ser feito, como deve ser feito e enviar os sinais apropriados para os dispositivos que serão utilizados, no tempo adequado. Os dispositivos da UCP responsáveis pelo controle são: * Unidade de Controle (UC); * Decodificador de Instrução; * Registrador de Instrução (IR); * Contador de Instruções (PC); * Relógio; * Registradores de Endereço (REM) e de dados (RDM). Relógio (clock) Dispositivo usado para gerar pulsos cuja duração é chamada de ciclo. A quantidade de vezes em que o pulso se repete durante um segundo, chama-se freqüência, que também é usada para definir a velocidade de uma UCP. Um ciclo de relógio ou de máquina é o intervalo de tempo entre o início de um pulso e o início do seguinte. Este ciclo é relacionado à realização de uma operação elementar, durante o ciclo de uma instrução. Mesmo uma operação elementar não se realiza em uma só etapa e, por isso, costuma-se dividir o ciclo de máquina em ciclos menores (subciclos), que são defasados no tempo, de modo que, cada subciclo aciona um passo diferente da operação elementar. A unidade de medida para a freqüência dos relógios é o Hertz (Hz), que significa 1 ciclo por segundo. Como os valores de freqüência são elevados, abreviam-se estes valores usando-se “Milhões de Hertz” (MHz). Assim, se um processador trabalha a 25 MHz, a duração do ciclo é de 40 nanosegundos. PIPELINE Ao descrever o funcionamento da UCP, na realização de seus ciclos de instrução observa-se que, embora o ciclo de instrução seja composto de várias etapas, ele é realizado basicamente de forma seqüencial, isto é, uma etapa se inicia após a conclusão da anterior. UCPs deste tipo vêm sendo usadas desde as primeiras gerações de computadores, e muitos aperfeiçoamentos tecnológicos foram introduzidos para reduzir o tempo de processamento de uma instrução, entre os quais o aumento tecnológico do relógio e a tecnologia de semicondutor, com seus sucessivos melhoramentos em fabricação e miniaturização. Uma outra metodologia, usada há muito tempo pelas fábricas de automóvel e por inúmeras outras indústrias, consiste em dividir o processo de fabricação em estágios independentes, que, por isso, podem se superpor uns aos outros, no tempo. Denomina-se linha de montagem ou pipeline. Em computação, a metodologia de construção da UCP composta de estágios permitiu que, também nestes sistemas, se adotasse esta técnica. A característica principal do processo de “pipelining” reside em duas premissas básicas: a) divisão do processo (seja o de fabricação de um automóvel, de uma TV ou ciclo de uma instrução na UCP) em estágios de realização independentes um do outro; e b) um novo produto inicia seu processo de fabricação ou execução depois de o anterior concluir seu processo. EVOLUÇÃO DOS MICROPROCESSADORES 8086 8088 80286 80386 80486 AMD Am 5x86 Cyrix Cx 5x86 Pentium Pentium Pro Pentium MMX Pentium II CELERON Pentium III AMD X5 AMD K5 AMD K6 CYRIX Pentium IV PROCESSADORES RISC E CISC Durante grande parte da história dos computadores pessoais, os modelos predominantes de microprocessadores têm sido da Intel Corporation. O primeiro processador IBM PC foi o Intel 8086. As gerações de processadores Intel que o seguiram forma da família ’86. Todos eram versões mais elaboradas do 8086 original, mas com desempenho melhorado por uma de duas maneiras — operando mais rapidamente ou ratando mais dados simultaneamente. O 8088, por exemplo, operava a 4,7 milhões de oscilações por segundo — e alguns chips Pentium ultrapassam 500 MHz. Já o 8088 podia tratar 8 bits de dados por vez, enquanto o 80486 trata 32 bits internamente. Mas apesar das alterações, os processadores Intel até o 80486 eram baseados em uma filosofia de projeto denominada CISC, do inglês “complex instruction set computing”, ou computação por conjunto complexo de instruções. O projeto CISC emprega comandos que incorporam muitas pequenas instruções para realizar uma única operação. É um facão no sentido de retalhar e fatiar dados e código. Uma alternativa de projeto, por comparação, funciona mais como um bisturi, cortando pedaços menores e mais delicados de dados e código. O bisturi chama-se “reduced instr uctions set computing”, RISC, ou computação por conjunto reduzido de instruções. Projetos RISC são encontrados em processadores como o Alpha da DEC, RISC 6000 d a IBM, o processador PowerPC e, até certo grau, os processadores Pentium da Intel. O RISC é um projeto menos complicado que utiliza diversas instruções simples para executar em menos tempo uma operação comparável à de um único processador CISC executando um grande e complicado comando. Os chips RISC podem ser fisicamente menores que os chips CISC. E como possuem menos transistores, são geralmente mais baratos de produzir e menos propensos a sobreaquecimento. Mas não tem havido um movimento para grandes vendas de RISC devido a duas razões. A mais importante é manter a compatibilidade com o vasto número de programas aplicativos que tem sido escritos para funcionar com os processadores CISC anteriores da Intel. A segunda razão é que não se obtém o benefício completo da arquitetura RISC a menos que se esteja usando um sistema operacional e programas que tenham sido escritos e compilados especificamente para conseguir o melhor das operações RISC. Alguns fabricantes de computadores estão oferecendo processadores RISC como forma de projetarem-se na tecnologia de ponta. Executam antigos programas CISC somente através da emulação de processadores CISC, o que anula as vantagens do RISC. Assim, a maioria dos fabricantes de PC têm permanecido com o projeto que é onde os investimentos estão. Ao mesmo tempo, criad ores de software estão relutantes em converter seus programas para versões compiladas para RISC já que não há tantas pessoas que possuem PCs baseados em RISC. O mais provável é que os processadores continuem pela via evolucionária mais segura que a Intel está trilhando. Eventualmente, vamos acabar usando arquitetura RISC, mas a maioria dos usuários não saberá quando seus computadores cruzarem a linha divisória entre os dois projetos. Os novos processadores Pentium empregam uma arquitetura que mistura características das arquiteturas CISC e RISC, sendo muito difícil dizer qual das arquiteturas será a do futuro. A Tabela 3.5 mostra um comparativo entre as principais características das arquiteturas RISC e CISC. A grande evolução nos micros PC se deu na introdução do processador 80386 com ele os fabricantes de processadores, como a Intel tiveram base para seus projetos futuros, tanto que atualmente a grande maioria dos processadores disponíveis no mercado possuem o funcionamento compatível com o processador 386. Três características, inovações técnicas, formaram a base para o projeto do processador 386. A primeira delas é que há tantas instruções para ir do modo protegido quanto para voltar ao modo real; a segunda delas é a criação do modo virtual 8086, programas escritos no modo real pudem ser utilizados diretamente dentro do modo protegido; e por sua vez a terceira característica que se baseia na manipulação de dados a 32 bits, o dobro da plataforma anterior. Além disso, estando no modo protegido, o 80386 consegue acessar até 4 GB de memória (RAM) muito mais que qualquer micro necessita. Isto ocorreu em meados dos anos 80, mas somente por volta de 1990 tornaram-se comuns nos PCs que utilizavam este microprocessador. Vamos descrever alguns recursos importantes do modo protegido do 80386: Memória Virtual: com essa maneira de gerenciar, podemos simular um computador com mais memória RAM do que ele possui. Ou seja, é uma técnica que se baseia no ato de conseguir um arquivo do disco rígido de tamanho qualquer para utilizar como uma memória extra, chamado arquivo de troca (swap file). Proteção de Memória: como o processador acessa muita a memória, podemos carregar diversos programas simultaneamente. Através da proteção da memória, o processador é capaz de isolar cada programa em uma área de memória bem definida, de modo que um programa não invada a área de memória que esteja sendo utilizada por outro programa. Multitarefa: graças à proteção de memória, o processador é capaz de saber exatamente onde se encontra cada programa carregado na memória. Dessa forma, ele pode executar automaticamente uma instrução de cada programa, parecendo que os programas estão sendo executados simultaneamente. Modo Virtual 8086: o modo protegido é, a rigor, incompatível com o modo real. Como poderíamos executar programas de modo real em modo protegido? Através do modo virtual 8086, o processador pode trabalhar como se fosse vários processadores 8086 com 1 MB de memória (ou seja, um XT) simultaneamente. Isso significa que você pode ter, ao mesmo tempo, um ou mais programas de modo real rodando dentro do modo protegido simultaneamente, cada programa achando que está trabalhando em um processador 8086 “puro” e completamente “limpo”.