arqtop.gif (104731 bytes)

 

SUMÁRIO

         1. Introdução

                 1.1 Introdução ao ciclo de memória do processador

                1.2 O Microcódigo

                1.3 As instruções para as arquiteturas CISC e RISC

                1.4 Lógica Sincronizada

        2. Arquiteturas

                2.1 Comparativo CISC / RISC

                2.2 Arquitetura RISC

        3. Conjunto de Instruções MIPS RISC

       4. Processadores

                4.1 Intel MMX

                4.2 Power PC

                4.3 NX 586 P110

                4.4 Pentium

                4.5 Pentium Pro

               4.6 Motorola 6800

                4.7 R10000

                4.8 AMD K6

                4.9 Pentium Xeon

                4.10 Cyrix 6x86 MX

                4.11 Merced

        5. Evolução dos Processadores

       6. Conclusão

        7. Bibliografia


    1. Introdução

        1.1 Introdução ao Ciclo de Memória do Processador

       Volta ao Sumário

        Em vez de trabalhar diretamente com duas entradas simultaneamente, os microprocessadores modernos trabalham um de cada vez. O primeiro padrão de entrada é carregado para uma área especial denominada registrador. Um registrador funciona tanto como memória quanto área de trabalho. Ele armazena seqüências de bits até que possam ser trabalhadas ou até que haja um microprocessador de modo que as alterações solicitadas pelas instruções possam aparecer no registrador. A maioria dos microprocessadores normalmente tem vários registradores, alguns dedicados a funções especiais ( por exemplo, memorizar qual etapa de uma função o chip está realizando no momento ) e alguns com funções gerais.

        Outras instruções do microprocessador fazem com que o chip transfira números para seus registradores, a fim de serem processados mais tarde ou com que ele transporte informações de um registrador para outro local – por exemplo, para memória ou para uma porta de saída. Algumas instruções requerem a execução de uma série de etapas. Por exemplo, a instrução que fornecemos como ilustração faz com que o processador subtraia um número imediato – armazenado na memória de um acumulador, que é um tipo de registrador particularmente adequado a cálculos.

        Tudo que o microprocessador faz é executar uma série dessas instruções individuais. A simples subtração ou soma de dois números pode exigir de dezenas de etapas, incluindo a conversão dos números do sistema decimal para o binário ( 0’s e 1’s ) que o microprocessador entende. Os programas de computador são complexos porque precisariam analisar processos que imaginamos como uma coisa só – somar números, digitar uma carta, reposicionar um elemento gráfico – e subdividi-los em uma seqüência longa e complexa de pequenos passos


        1.2 O Microcódigo

        Volta ao Sumário   

        As instruções são unidades básicas de controle do microprocessador, pois informam a ele o que fazer. Internamente, entretanto, o circuito interno do microprocessador freqüentemente tem de passar por várias etapas para executar uma instrução. A instrução informa ao microprocessador para executar um grupo de etapas que compõe uma operação. O conjunto completo desses grupos que compõe cada instrução é um microcódigo.

        Utilizando um microcódigo, os projetistas do microprocessador podem facilmente designar um conjunto bastante abrangente de instruções a um chip. Uma das conseqüências dessa estratégia são os sete diferentes comandos de subtração que os microprocessadores dos PC’s entendem. As pequenas variações entre eles facilitam informar ao microprocessador o que fazer. Poucas etapas iniciais devem ser executadas para cada operação.

        Originalmente concebida por Maurice Wilkes na Universidade de Cambridge, a idéia por trás do microcódigo era aperfeiçoar o conjunto de instruções dos primeiros mainframes. O microcódigo permite que computadores simples, mas rápidos, se beneficiem de instruções complexas. Ele inclui uma segunda camada no microprocessador. Na verdade, o microcódigo é um conjunto secundário de instruções que são executadas de forma invisível dentro do microprocessador de uma nanoprocessador – essencialmente um microprocessador dentro de outro.

        Essa estratégia microcódigo / nanoprocessador facilita a criação de microprocessadores mais complexos. O avançado circuito de processamento de um chip pode ser projetado independentemente das instruções que deverá executar. A forma na qual o chip trata suas instruções complexas pode ser ajustada mesmo depois que a arquitetura dos circuitos principais já tenha sido definida. Os bugs do projeto podem ser facilmente corrigidos se o microcódigo for alterado – uma operação fácil em comparação com a alternativa de desenvolver um novo projeto para o chip inteiro, uma tarefa delicada quando há milhões de transistores envolvidos. O sofisticado conjunto de instruções utilizado pelo microcódigo também facilita a criação de softwares para o microprocessador ( e para os computadores construídos a partir dele ) reduzindo o número de instruções necessárias para cada alteração.

        Por outro lado, o microcódigo tem uma desvantagem. A colocação do nanoprocessador dentro do microprocessador causa o overhead. O nanoprocessador deve tratar várias de suas próprias instruções de microcódigo para executar as instruções que você envia para o microprocessador. Mais etapas significam um tempo maior para executar cada instrução, prejudicando o desempenho do processamento. No entanto, a alta velocidade na qual as instruções do microprocessador ( e do nanoprocessador ) podem ser executadas – possivelmente milhões por segundo – torna essa estratégia em camadas não só possível, como prática.


        1.3. As instruções para as arquiteturas CISC e RISC

        Volta ao Sumário

        O microcódigo não é necessário para operar. As instruções podem ser fisicamente conectadas a um chip de modo que uma seqüência de bits de instrução execute diretamente a instrução desejada. O resultado disso é que as instruções podem ser executadas em velocidades muito maiores. Por outro lado, a complexidade de um microprocessador com instruções fisicamente conectadas aumenta muito à medida que mais instruções são incluídas. Os projetos mais práticos tem conjuntos de instruções menores.

        No laboratório de pesquisas da IBM, John Cocke analisou a utilização de instruções por parte dos computadores e descobriu que a maior parte do trabalho feito por eles envolve poucas instruções. Por exemplo, em um computador com um conjunto de 200 instruções, dois terços de seu processamento envolve a utilização de mais ou menos 10 instruções. Cocke prosseguiu com esse trabalho, projetando um computador baseado em poucas instruções que podiam ser rapidamente executadas. A ele é creditada a invenção do RISC ( Reduced Instruction Set Computer ) em 1974. Em 1987, o trabalho de Cocke com o RISC lhe valeu Turing Award ( nome derivado de um dos pioneiros da informática, Alan M. Turing, famoso por sua definição de inteligência artificial no Turing Test ), concedido pela Association for Computing Machinery como maior prêmio por contribuições técnicas no setor de informática.

        A pesquisa de Cocke que a maior parte do processamento de um computador era feito por instruções básicas, não pelas instruções mais avançadas, complexas e especializadas. Outros estudos na Universidade da Califórnia, em Berkley, e na Universidade de Standford, demonstraram que havia inclusive casos em que uma seqüência de instruções simples poderia executar uma tarefa complexa mais rapidamente do que uma única instrução complexa. O resultado dessa pesquisa freqüentemente se resume à regra de 80/20 – em que aproximadamente 20% das instruções de um computador fazem 80% do trabalho. O objetivo do projeto RISC é otimizar o desempenho de um computador para esses 20% das instruções, agilizando a execução tanto quanto possível. Os 80% restantes poderiam ser duplicados, quando necessário, através de combinações dos 20% mais rápidos. Análises – e a experiência prática – mostraram que os 20% poderiam ficar tão rápidos que o overhead necessário para emular os 80% restantes não representava uma desvantagem. Conseqüentemente, a concepção RISC passou ser utilizada nos projetos de microprocessadores mais modernos e rápidos.

        Não há uma linha exata demarcando os limites de complexidade no projeto de um chip e a redução possível em termos de complexidade com os projetos RISC. Por exemplo, o microprocessador RISC, O M/200 produzido pela Mips Computer Systems, possui um conjunto completo de 115 instruções. O 386 da Intel, um microprocessador CISC contém 144 instruções ( dependendo de como você conta ). Embora significativa, a diferença entre os dois não representa um divisor de águas.

        Ao caracterizar um RISC ou um CISC, o mais importante não é o número de instruções que o computador ou um microprocessador pode entender, mas sim a forma como essas instruções são executadas. Reduzir o conjunto das instruções de um computador é apenas uma das estratégias utilizadas para agilizar seu processamento. À medida que o número de instruções é reduzido, todas as outras deficiências que interferem em seu desempenho também são reduzidas e tudo que permanece é capaz de oferecer a menor resistência possível à passagem dos dados.

        As características mais marcantes da filosofia RISC são a eliminação do microcódigo, a ênfase na agilização das instruções mais usadas pelo computador, o relacionamento mais estreito entre a máquina e o projeto otimizado de compilador ( linguagem de programação ). Os projetos RISC exploram técnicas de memória rápida como o Cache e o Pipeline. As próprias instruções RISC são mais centralizadas – cada uma é projetada para uma realizar uma única função. E as instruções são mais uniformes, modo que todas têm o mesmo tamanho e trabalham de forma semelhante com operandos.


        1.4. Lógica Sincronizada

        Volta ao Sumário

        Os microprocessadores não executam suas instruções assim que os sinais de código de instrução chegam aos pinos que os conectam ao circuito do seu computador. Se fizessem isso, eles rapidamente ficariam confusos. Os sinais elétricos não podem mudar de estado instantaneamente; Eles sempre passam por um período de transição breve, porém mensurável. Além disso, todos os sinais não mudam necessariamente com a mesma velocidade, sempre há um período de confusão quando os sinais dos terminais do microprocessador são insignificantes. Para impedir que o microprocessador reaja a esses sinais inválidos, o chip aguarda por uma indicação de que tem um comando válido para ser executado. Ele espera até obter um sinal do tipo "faça isso".

        Nos PC’s modernos essa indicação é fornecida pelo clock do sistema. O microprocessador verifica as instruções enviadas a ele a cada vez que recebe um pulso de clock – contanto que não esteja ocupado executando uma outra instrução.

        No entanto, a maior parte dos microprocessadores não é capaz de executar uma instrução a cada ciclo de clock. A execução de todas as etapas descritas no microcódigo para uma instrução pode consumir mais de cem ciclos de clock. Além disso, todas as instruções são diferentes. Algumas consomem poucos ciclos, outras consomem vários. O números de ciclos necessários para executar instruções varia de acordo com o tipo do microprocessador. Alguns microprocessadores são mais eficientes do que outros ao executar suas instruções. A tendência atual é reduzir o número de ciclos de clock necessários para executar uma instrução comum. Os projetos RISC têm como característica necessitar de um número menor de clocks por instrução, normalmente uma média inferior a 1,5 ciclo por instrução. Alguns projetos CISC ( como o Intel 486, que opera a 1,2 ciclo por instrução ) também alcançaram esse nível de eficiência.


        2. Arquiteturas

        Volta ao Sumário

       2.1 Comparativos CISC / RISC

        RISC (Reduced Instruction Set Computers) 

  1. Instruções simples de apenas 1 ciclo
  2. Referências à memória só com LOAD/STORE
  3. Uso intensivo de Pipeline
  4. Instruções executadas por hardware
  5. Instruções com formato fixo
  6. Poucas Instruções com poucos modos de endereçamento
  7. A complexidade está no compilador
  8. Vários conjuntos de Registradores

        CISC (Complex Instruction Set Computers) 

  1. Instruções complexas com vários ciclos
  2. Qualquer instrução pode referenciar à memória
  3. Pouco uso de Pipeline
  4. Instruções interpretadas pelo microprograma
  5. Instruções com formato variável
  6. Muitas Instruções com muitos modos de endereçamento
  7. A complexidade está no microprograma
  8. Um único conjunto de Registradores

 

        Um processador baseado CISC terá muitas instruções (para cálculos e parâmetros de I/O, por exemplo) embutidos dentro da própria CPU. Então um programa de software ou um aplicativo pode recuar e deixar a CPU realizar muitas instruções exigidas para uma função específica. Os processadores Intel seguem o projeto CISC.

        Os defensores da arquitetura CISC propugnam que as instruções de máquina, sendo mais complexas, se aproximam em definição dos comandos da linguagem de alto nível que está sendo compilada, o que reduz o consumo de memória com reflexos no custo do sistema. As máquinas com arquitetura CISC executam mais rapidamente os programas escritos em linguagem de alto nível devido à pouca quantidade de códigos binários executáveis.

        Algumas desvantagens do CISC: uso maior de memória na execução de chamadas de funções; maior quantidade de modos de endereçamento (aumenta o tempo de execução); tempo de decodificação de instruções muito alto.


        2.2 Arquitetura RISC

        Volta ao Sumário

              Desde a década de 50 todos os chips eram construidos com base na arquitetura CISC. Depois surgiu uma outra arquitetura de microprocessadores: o RISC. Inventado na década de 70 pelo pesquisador John Coke, da IBM, só sabe executar terefas simples, mas faz isso com muito mais

              rapidez.Ao contrário do CISC, o RISC é capaz de fazer várias operações em apenas um ciclo de máquina. O CISC normalmente gasta alguns ciclos de máquina para executar uma operação. Ele resolve problemas complicados, mas gasta algumas voltas de seu relógio fazendo isso. Na década de 80, foi inventado o chip superescalar, justamente o que executa mais de uma instrução por ciclo de máquina. Era o começo da arquitetura Power. A IBM lançou, no início dos anos 90, as estações de trabalho RISC 6000, as primeiras a usar chips com essa nova arquitetura.

      A mesma potência por um preço muito menor

              Em setembro de 1993, chegaram ao mercado as primeiras máquinas a ter em seu interior os chips Power PC--as estações de trabalho RISC 6000/250 da IBM. A revolução começava. Os computadores pessoais lançados pela Apple e IBM chegaram perto do desempenho que só se conseguia com estações de trabalho, mas custam até vinte vezes menos( preço nos Estados Unidos). Os computadores RISC do laboratório do Curso de Informática da UFSM são: RS6000/390 IBM - Pérola e Marfim; RS 6000/350 IBM -Safira; SUN SPARC 2 - Onix; AXIL 240- Ambar; AXIL 220 - Quartzo.

      Microprocessadores RISC: A nova força dos Workstations

              Um número cada vez maior das estações de trabalho que são lançadas no mercado utilizam microprocessadores com tecnologia RISC. Isto não é sem motivo e, como procuraremos mostrar abaixo, os microprocessadores RISC chegaram para ganhar e ficar. As diferenças de funcionamento e as vantagens são significativaó se comparados com os micropocessadores convencionais, comos os Intel 80X86 e Motorola 680XX, os superminis, como os da DIGITAL.

              Estudos realizados no começo dos anos 80 comprovaram que os processadores passavam 90% do tempo executando apenas 10% do repertório de instruções disponíveis. Isto levou ao desenvolvimento do conceito de máquinas RISC, processadores que implementariam o menor número possível de instruções no processador, deixando para o compilador a tarefa de montar as funções mais complexas a partir deste conjunto mínimo. Os resultados obtidos foram bastante satisfatórios e, da experiência à prática foi um passo. Dois grandes sucessos comerciais nesta área tem origem em projetos pioneiros nas Universidades de Berkeley (SPARC) e Stanford (MIPS). Outros microprocessadores RISC bastante utilizados são o HPPA da HP, o I80860 da Intel e o Motorola 88000.

              Os microprocessadores RISC se caracterizam pela simplicidade de sua arquitetura interna, podendo ser implementados com o estado da arte em tecnologia e com menor gasto de área. Isto implica em uma relação custo/desempenho bem melhor que a dos microprocessadores convencionais, que consomem mais área e, devido à complexidade de projeto, não conseguem acompanhar o último passo em termos de tecnologia de fabricação. Algumas outras características de projeto fazem com que os microprocessadores RISC possam ter um desempenho superior aos dos processadores convencionais, que são enumeradas a seguir:

      Pipeline

              A simplicidade das instruções do RISC, de menor número e com formato fixo (32 bits), permite uma arquitetura com alto nível de "pipeline". Ou seja, uma instrução é executada em várias etapas, como em uma linha de montagem: não se espera um carro ficar pronto para se iniciar a montagem do próximo, mas procura-se ter um carro em cada etapa da linha de fabricação. O resultado é uma produção muito maior. O mesmo acontece com o microprocessador RISC, que normalmente divide a execução das instruções em 4 ou 5 etapas, gerando aproximandamente uma instrução "pronta" a cada ciclo de processador, tendo outras em execução em outras fases do "pipeline". Os processadores convencionais, possuem instruções de tamanho variável e muito complexas, que dificultam a elaboração de "pipelines" eficientes.

              Alguns microprocessadores convencionais mais recentes apresentam algum tipo de estrutura de "pipeline", sem porém alcançar a eficiência dos processadores RISC.

      Microcontrole por Hardware

              Nos microprocessadores convencionais e superminis, a forma de controle da execução das instruções é através de memória de microcódigo. Nos microprocessadores RISC este controle é feito diretamente por circuitos lógicos na pastilha. A diferença entre os dois conceitos está no tempo de execução e no espaço gasto internamento na pastilha. A solução RISC é mais rápida permitindo velocidades de "clocks" maiores e, ocupando menos espaço, gera um projeto final com área menor e, consequentemente, menor custo.

      Arquitetura orientada a Registrador

              Os microprocessadores RISC só possuem instruções que operam em dados que estejam nos seus registradores. As únicas operações de acesso à memória são as operações para carga e armazenamento destes registradores. Isto agiliza bastante as operações aritméticas, permitindo uma alta taxa de execução. Isto é uma filosofia distinta dos processadores convencionais, já que estes permitem operações entre operandos na memória. A princípio diria-se que o microprocessador RISC necessita de mais instruções para fazer a mesma tarefa. Contudo, o compilador RISC procura alocar as variáveis nos registradores locais, o que compensa esta diferença ao longo da execução de um programa.

      Tecnologia em fabricação

               A tecnologia CMOS foi dominante durante toda a década de 80. Daqui por diante, a tendência é a utilização de novas tecnologias que possam atender a demanda por mais desempenho, como ECL e Arseneto de Gálio. O uso destas tecnologias vai permitir obter-se maiores velocidades de "clock" , na ordem de 80 Mhz ou mais. Contudo, para que a nova demanda por dados e instruções possa ser atendida, é necessário que estes lançamentos venham acompanhados de caches e/ou pastilhas de memória de igual tecnologia e desempenho correspondente, o que deve atrasar o lançamento de estações com estas tecnologias.

              Contudo, os primeiros projetos de microprocessadores já começam a surgir, como a do SPARC, feita em ECL pela Bipolar Integrated Technology, e o do Motorola MC88000, também em ECL. Até o presente momento, a implementação de microprocessadores convencionais com esta tecnologia é impossíveì de ser obtida devido à complexidade de seus circuitos.

              Por outro lado, os microprocessadores RISC necessitam de certas características para que possam ter um bom desempenho. Algumas delas são descritas a seguir:

      Banda Passante

              Por buscarem praticamente uma instrução a cada ciclo da memória, os microprocessadores RISC precisam ter uma banda passante bastante larga para o acesso à memória. Com ciclos na ordem de 20 a 40 Mhz, esta banda passante só pode ser conseguida com o uso de cache de instruções. Por este motivo, todas as estações de trabalho com RISC encontradas no mercado apresentam memórias caches em suas arquiteturas. Outra forma de aumentar a banda passante é a utilização de esquemas diferentes para organizar a interface de barramento do processador. Existem três formas principais: utilizar um barramento único para dados e instruções; barramentos totalmente separados de dados e instruções, com endereçamento independente; e barramento separado de dados e instruções, mas com endereçamento compartilhado. Os processadores convencionais que só possuem barramento único para dados e instruções. Mais uma vez, a estrutura dos processadores RISC permite a adoção dos outros dois tipos de organização, que oferecem resultados superiores ao do barramento único.

      Compiladores

              Como o conjunto de instruções é bastante simples, a eficiência com que um programa é executado vai depender do código objeto gerado pelo compilador. Variações da ordem de 30% são comuns entre programas executados com e sem o uso da opção de otimização dos compiladores. O desempenho final do sistema vai depender do conjunto compilador - processador, e todos os programas devem ser compilados na sua versão final com todas as opções de otimização. Existe um questionamento muito grande em relação ao tamanho do código gerado pelos compiladores RISC.

              Levantamentos para a linha SPARC, da SUN, indicam que o tamanho total do código de um programa escrito em "C" é apenas 25% maior nos microprocessadores RISC do que nos processadores convencionais. Como o ciclo de processador é bem menor no RISC e taxa de execução das instruções bem maior, o resultado final é grandemente favorável ao RISC.

      Ponto Flutuante

              Para ambientes que exijam mais em termos de processamento científico, o uso de coprocessadores de ponto flutuante é imprescindível. Como as estações de trabalho são primeiramente dedicadas a este tipo de aplicação, vamos encontrar este coprocessadores em todas as estações do mercado. O desempenho dentro de uma mesma família pode variar em função do coprocessador que for escolhido. Este coprocessadores apresentam diferenças também aos seus equivalentes para processadores convencionais como, p. ex., não realizarem o cálculo de funções transcendentais ( seno, cosseno, etc.). Contudo, novamente a experiênca, mostra que os resultados obtidos são extremamente satisfatórios.

      Sistema Operacional

              O sistema operacional largamente utilizado nos sistemas elaborados com estes processadores é o UNIX e seus semelhantes. Aliás, o sucesso dos microprocessadores RISC se deve em grande parte à existência de um sistema operacional aberto, portável, que pudesse ser instalado nos computadores desenvolvidos com estes novos microprocessadores. A disponibiliade de aplicativos é aquela típica dos ambientes UNIX, ainda distante dos ambientes de escritório, e muito mais voltada para as aplicações de engenharia. Na linha de compatibilização, existe um esforço muito grande, em que se destacam a Motorola e SUN, para elaboração de padrões de interfaces binárias para as aplicações (Application Binary Interfaces). Este tipo de padrão, juntamente com as interfaces de usuário padronizadas, como o MOTIF, permitiriam aos aplicativos executar, sem necessidade de recompilação em plataformas de "hardware" com arquiteturas distintas, desde que utilizem um mesmo tipo de processador RISC. Esta seria uma forma de superar o gargalo atual destes sistemas, que é a demanda cada vez maior maior por aplicativos.

      Aplicações e mercado

              Os microprocessadores RISC tem uma variação muito grande em relação à velocidade do "clock", desde 16/20 Mhz até 40 Mhz. Com isto, uma ampla gama de aplicações é conseguida mantendo-se compatibilidade binária dentro de uma mesma família. O resultado são estações de trabalho sem disco, custando cerca de U$ 4000,00; estações de trabalho com monitores de alta resolução (U$ 8000,00), estações com aceleradores gráficos para aplicações de engenharia (U$15000,00), e servidores de rede, com custo entre U$25000,00 e U$ 80000,00 dependendo da quantidade de memória e da capacidade em disco.

              Os microprocessadores RISC possuem também aplicações em sistemas dedicados, que exijam alta capacidade de processamento, tais como processamento gráfico e de imagem, em terminais gráficos e impressoras laser. Uma nova fronteira que começa a ser explorada são os sistemas multiprocessadores e os microprocessadores superescalares. Os primeiros exploram o paralelismo a níveì de programas, ou seja, permitem a execução real de vários programas simultaneamente. Os últimos exploram o paralelismo a nível de instruções, permitindo a execução de mais de uma instrução em cada ciclo de processador. Os primeiros sistemas multiprocessadores já estão sendo lançados no mercado internacional e os sistemas superescalares são aguardados como realidade comercial para os meados da década, embora os primeiros projetos já se encontrem em andamento.

               Em termos de mercado, as estações de trabalho e os servidores baseados em tecnologia RISC respondem atualmente por 40% da produção correspondente nos EUA. As taxas de crescimento para este mercado estão estimadas em mais de 100% ao ano e por volta de 1995 cerca de 90% de todas as estações de trabalho produzidas deverão utilizar processadores RISC.

              Certamente a liderança deste mercado dever permanecer com a SUN, secundada pela Digital, com sua DECstation. Uma nova força que reaparece neste mercado é a IBM, com a excelente estação RS/6000, mas que tem ainda um tempo de maturação muito grande pela frente e o fantasma do fracasso do IBM/RT para superar.

              Podemos concluir, sem sombra de dúvida, que os microprocessadores RISC chegaram para assumir o seu lugar no mercado, e devem representar a grande base para as plataformas de estações de trabalho e servidores durante toda a década de 90.


        3. Introdução ao conjunto de instruções MIPS

        Volta ao Sumário

        MIPS (acrônomo para "Microprocessor without Interlocking Pipe Stages", ou Microprocessador sem intertravamento entre os estágios de Pipeline) é um conjunto de instruções desenvolvido no início da década de 80 pela MIPS Computer Company, mais especificamente por John Henessy.

        Atualmente, o controle sobre a distribuição e o licenciamento de processadores MIPS RISC está nas mãos da MIPS Technologies Inc., uma subsidiária da Silicon Graphics Inc.

        O conjunto de instruções originalmente desenvolvido foi sofrendo alterações (adição de novas instruções), de modo que cada extensão, como mostra a figura ao lado, é compatível com as anteriores. Assim, um processador MIPS RISC desenvolvido utilizando o conjunto de instruções MIPS IV roda perfeitamente quaisquer programas binários desenvolvidos em MIPS I, II ou III sem qualquer alteração. Será dada ênfase ao conjunto de instruções MIPS IV, que foi o utilizado no projeto do processador MIPS RISC R 10000, ao qual será dado maior destaque.

        Deve-se ressaltar também a já existência do conjunto de instruções MIPS V, que por ter sido desenvolvido muito recentemente, não foi utilizado em nenhum dos processadores aqui mencionados.

        Seguem abaixo alguns processadores MIPS RISC e o conjunto de instruções por eles utilizados:

                MIPS I - Implementado no R 2000 e R 3000;

                MIPS II - Implementado no R 6000;

                MIPS III - Implementado no R 4400;

                MIPS IV - Implementado no R 8000 e R 10000;

        Principais características do conjunto de instruções MIPS

 

Uso de registradores de propósito geral com arquitetura load-store (RISC);

  1. Provê ao menos 16 registradores de propósito geral, além de registradores separados para operações de ponto flutuante;
  2. Registradores MIPS:
  3. Armazenamento de 2^32 bytes programáveis;

    31 registradores de uso geral (R0=0);

    32 registradores de 32 bits de ponto flutuante;

  4. Formato e tipos de dados:
  5. Inteiro de 8, 16 e 32 bits;

    Números de ponto flutuante de 32 e 64 bits, padrão IEEE 754;

  6. O código executado é traduzido em uma mesma variedade de instruções MIPS, ou seja, por maior que seja um código e por mais palavras reservadas que ele possua, ao ser decodificado para instruções MIPS, ele cairá sempre em instruções do conjunto (I, II, III ou IV) no qual foi desenvolvido;
  7. Otimização para codificação de instruções:

Melhoria de performance: Codificação das instruções fixa - facilita a decodificação das instruções, sobretudo nos ciclos IF e ID;

Melhoria do tamanho do código : Codificação das instruções variável - torna o código mais compacto;

Exemplos de instruções MIPS

 

Instruções aritméticas :

add.........................add $1, $2, $3............$1 = $2 + $3;

add imm. uns...........addiu $1, $2, 100.......$1 = $2 + 100;

divide......................div $2, $3...................Lo = $2 / $3; Hi = $2 mod $3;

Move from Hi..........mfhi $1.......................$1 = Hi;

 

Instruções lógicas:

and.........................and $1, $2, $3............$1 = $2 & $3;

or immediate...........ori $1, $2, 10.............$1 = $2 | 10;

shif right logical........srl $1, $2, 10.............$1 = $2 >> 10;

 

Instruções de transferência de dados:

Store word.............sw 500(R4), R3;

Load half word........lh R1, 40(R2);

Load upper imme....lui R1, 40;

 

Instruções de comparação, jumps e branches

branch on equal......beq $1, $2, 100.........if ($1==$2) goto PC+4+100;

set less than imme...slti $1, $2, 100

jump.......................j 1000

 

Detalhes do conjunto de instruções MIPS

 

Instruções de branch e jump colocam o endereço de retorno PC + 4 no registrador de link.

Os dados chamados pelas instruções load byte (lb) e load half word (lh) são extendidos como se segue:

Lbu e lhu são "zero extended";

Lb e Lh são sign extended;

 

Overflow pode ocorrer nas instruções aritméticas com sinal como add, addi e sub. Assim, não se observa a ocorrências do mesmo nas instruções addu, subu, addiu (porque trabalham com números sem sinal), and, or, xor, nor (que são implementadas através da comparação bit-a-bit) e shifts, mult, multu, div e divu (que são implementadas através de deslocamento de bits).

 

Formato de instruções e modo de endereçamento

 

As instruções MIPS podem ter dois formatos: tipo R (Registrador) e tipo I (Imediato). O primeiro (1) "guarda" 6 bits para o op, 5 para rs, para rt e 5 para rd (sendo rs e rt registradores fonte, e rd o registrador de destino). O segundo tipo também reserva 6 bits para op, 5 para rs e 5 para rt. A diferença em relação ao primeiro é que, no caso do formato do tipo Imediato, rt passa a ser o registrador destino, e os 16 bits restantes representam uma contante("immediate").

Para endereçamento das instruções, são usados o modo registrador (1), em que o operando é o registrador, o modo registrador imediato (2), em que o operando é uma constante que faz parte da instrução, o modo base + índice (3), em que o operando se encontra na memória e o seu endereço é dado pela soma do valor de rs com a constante e o modo relativo ao PC (4), em que o operando também se encontra em memória, sendo seu endereço dado pela soma do valor de PC com a constante.


        4. Processadores

        Volta ao Sumário

                4.1 Intel MMX

                Volta ao Sumário                

      Nessa tecnologia foram acrescidos mais 57 novos comandos ao conjunto de instruções. As novas instruções do MMX podem manipular dois, quatro ou até oito grupos de bits ao mesmo tempo. O tratamento de sons e a compressão ou descompressão de imagens animadas são aplicações em que são necessários cálculos repetitivos, que podem ser muito acelerados com o uso da tecnologia MMX.

      Outra mudança foi feita na memória cache primária. A Intel aumentou de 16 para 32 KB. Essa é a principal razão para o ganho de velocidade nas aplicações tradicionais.

                4.2 Power PC

            Volta ao Sumário

      Fazendo parte da série de projetos Power PC, os chips 601 e 620 são projetos de arquitetura RISC. O 601 ( 32 bits ) possui a interessante característica de executar 3 instruções por sinal e clock. Este processador integra 3 unidades – uma inteira ( IU ), uma unidade branch de processamento ( BPU ) e uma unidade ponto flutuante ( FPU ). Incorpora também uma unidade de gerenciamento da memória ( MMU ) entre outras caracterísiticas.

      O 620 ( 64 bits ) é capaz de executar 4 instruções por ciclo de clock. Incorpora 6 unidades de execução independentes, possui uma unidade de predição de instrução, de forma a aumentar a velocidade de fetch das instruções. Uma das características dos sistemas Power PC é a execução de múltiplas instruções em paralelo.

                4.3 NX 586 P110

                Volta ao Sumário

      Este é um processador de arquitetura RISC da NexGen. Disponível em dois clocks: 100 e 110 MHz. Uma característica interessante deste processador é que caso tenha que executar instruções CISC da família 80x86, estas são decodificadas para RISC e executadas. Seu índice MFLOPS é de cerca de 20. Seu índice MIPS é 100.

       

                4.4 Pentium

                Volta ao Sumário

      A linha de processadores Pentium da Intel possui arquitetura CISC, 64 bits de barramento para transporte de dados e 32 para o endereçamento. Seu índice MIPS é de cerca de 170. Seu índice MFLOPS é de 50.

                4.5 Pentium Pro

                Volta ao Sumário

      Esta linha de processadores da Intel possui núcleo de instruções RISC, 64 bits de dados e 36 bits de endereçamento, chegando a endereçar 64 GB físicos e 64 GB virtuais. Seu ínidce MIPS é de cerca de 230. Seu índice MFLOPS é de cerca de 120.

                4.6 Motorola 6800

                Volta ao Sumário

      Esta família de processadores CISC (conhecida como "68 K" ou 680x0) formam as bases dos sistemas iniciais Macintosh. Tem um número moderado de registradores de uso geral ( 8 registradores de dados e 8 registradores de endereço ), possui um registrador de status de propósito especial, que guarda códigos de condição e usa um dos registradores de endereço como um stack pointer e outro como frame pointer. Incorpora instruções de tamanho variável entre outras características interessantes.

                4.7 R 10000

                Volta ao Sumário

Baseado em ANDES (Architecture with a Non Sequential Dynamic Execution Scheduling) Advanced Superscalar, que possibilita a execução de mais de uma instrução por ciclo (quatro, no caso do R 10000) e também execução de instruções fora de ordem;

Foi projetado para trabalhar em alta performance, funcionando com um clock interno de 200 Mhz e com seis unidades separadas de execução (sendo duas ALU´s, duas unidades inteiras e duas de ponto flutuante). Além disso, utiliza o conjunto de instruções MIPS IV.

O cache primário de dados é formado por dois bancos idênticos de 16 Kbytes e o cache de instruções por um 32 Kbytes. Além disso possui um barramento dedicado para cache secundário de dados de 128 bits. Esse barramento opera a 200 MHz e pode chegar a uma taxa de transferência em momentos de pico de 3.2 GBytes.

Filas de instruções inteiras, de ponto flutuante e de endereçamento são também implementadas no própio chip. Cada uma dessas filas possui 16 posições, sendo que a fila de endereçamento é organizada como uma fila circular usando a política de reposição FIFO (First In First Out).

Existe também uma Branch Unit que ajuda na revisão de branches e possui circuitos especiais de pilha de branch.

Ao contrário de todas as outras instruções, somente um branch pode ser executado por ciclo. Isso se deve ao fato de cada instrução de branch "carregar" um delay slot, permitindo no máximo a entrada de duas instruções de branch por ciclo. Além dessa limitação, o processador não consegue executar mais de uma instrução desse tipo por ciclo.

A respeito da parte física do projeto, a implementação do processador R 10000 é feita usando circuitos CMOS VLSI de 0.35 microns em um único chip de 17 por 18 milímetros. Tal chip contém assim 6.7 milhões de transistores, sendo que destes aproximadamente 4.4 milhões estão nas caches primárias.

Pipeline para o Processador R10000

Os processadores MIPS RISC mais antigos tem arquitetura de pipeline linear, onde apenas uma instrução é carregada por ciclo. Como exemplo, tem-se a arquitetura de pipeline do processador MIPS RISC R 4400. Já os mais recentes, como é o caso do R 10000, tem uma arquitetura de pipeline superescalar, o que possibilita que mais de uma instrução seja carregada por ciclo (4, no caso do R 10000).

No que se refere aos estágios de pipeline, temos que este, para o microprocessador MIPS RISC R 10000 é dividido em 6 ciclos distintos que podem ser sintetizados da seguinte maneira: no primeiro estágio (Fetch), as quatro instruções (deve-se lembrar que o processador é superescalar) são buscadas na memória e então alinhadas no registrador de instruções de quatro palavras. Se quaisquer instruções forem deixadas no ciclo de decodificação anterior, elas são agregadas com novas palavras da Instruction Cache para carregar o registrador de instruções.

No segundo estágio (Decode and Rename), as quatro instruções localizadas no registrador de instruções são decodificadas e renomeadas (tal renomeação determina qualquer dependência entre as instruções e provê um manejamento preciso de exceções). Quando renomeados, os registradores lógicos referenciados são mapeados para registradores físicos. Registradores inteiros e de ponto-flutuante são renomeados independentemente. Um registrador lógico é mapeado para um novo registrador físico sempre que ele for o registrador de destino de uma instrução.

No entanto, quando uma instrução atribui um novo valor a um regsitrador lógico, este é renomeado para um novo registrador físico, enquanto o valor anterior é retido no antigo registrador físico. À medida que as instruções vão sendo renomeadas, os números de seus registradores lógicos são comparados para determinar se há qualquer dependência entre as quatro instruções decodificadas durante este ciclo. Depois que os números dos registradores físicos se tornam conhecidos, uma tabela contendo os registradores físicos ocupados indica se cada operando é ou não válido. As instruções renomeadas são carregadas nas filas de inteiros ou ponto-flutante. Em relação a branches, tem-se uma unidade que determina o próximo endereço para o contador de programa (PC).

Já no terceiro estágio as instruções decodificadas são escritas nas filas. Nos estágios de 4 a 6 (que no conjunto recebem o nome de Execution) as instruções são executadas nas várias unidades funcionais. Tais unidades e seus processos de execução são descritos abaixo:

 

  1. Multiplicador de ponto-flutuante (Pipeline de 3 estágios)

 

Operações de multiplicação e deslocamentos condicionais de precisão simples ou dupla são executadas nessa unidade com uma latência de 2 ciclos e uma taxa de repetição de 1 ciclo. A multiplicação é completada durante os dois primeiros ciclos; o terceiro ciclo é usado para pegar e transferir o resultado.

 

b) Unidades de ponto-flutuante para divisão e raiz quadrada

 

Operações de divisão ou raiz quadrada de precisão simples ou dupla podem ser executadas em paralelo por unidades separadas.

 

c) Somador de ponto-flutuante (Pipeline de 3 estágios)

 

Operações de adição, subtração, comparação e conversão de precisão simples ou dupla são executadas com dois ciclos de latência e um ciclo para taxa de repetição.

 

d) ALU1 de inteiros (Pipeline de 1 estágio)

 

Operações inteiras de soma, subtração e lógicas são executadas com um ciclo de latência e um ciclo de taxa de repetição. Esta ALU também verifica as previsões de branch, os quais são condicionais em registradores de valores inteiros.

 

e) ALU2 de inteiros (Pipeline de 1 estágio)

 

Assim como na ALU1, operações inteiras de soma, subtração e lógicas são executadas com um ciclo de latência e um ciclo de taxa de repetição. Operações de multiplicação e divisão de inteiros gastam mais de um ciclo.

 

f) Cálculo do endereço e TLB

 

Um único endereço de memória pode ser calculado a cada ciclo para ser usado tanto em operações de load ou store inteiras ou de ponto-flutuante. O cálculo do endereço e operações de load podem ser calculados fora da ordem do programa. Tem-se ainda uma última fase (Store results), que ocorre ainda na execução, responsável pelo armazenamento (escrita) dos resultados.

 

 

                4.8 AMD K6

                Volta ao Sumário

      O AMD-K6 é, antes de tudo, um processador Super Escalar compatível com o conjunto de instruções x86 e com suporte a instruções Multimídia, denominada MMX. No entanto sua arquitetura interna é construída em cima de instruções RISC86. Isso é possível porque ele possui decodificadores que geram instruções RISC a partir das x86. Possui 7 unidades funcionais de execução divididas em estágios de pipeline. Sua cache interna é de 64Kb possuindo também mecanismos de execução especulativa e técnicas de resolução de dependência de dados e de controle [FER92]. Para melhorar o grau de aproveitamento de suas unidades funcionais, possui também mecanismos de execução de instruções fora de ordem. Com esses recursos, o AMD é capaz de executar até seis instruções RISC por clock.

      Possui 48 registradores, sendo que 24 deles são para uso geral e os outros 24 exclusivos para serem usados na renomeação (usado para resolver alguns casos de dependência de dados). Dos 24 de uso geral, 8 são os mesmos encontrados nas arquiteturas x86 (EAX, EBX, ECX, EDX, EBP, ESP, ESI e EDI).

      A execução de uma instrução começa pela sua busca na memória principal pela unidade predecode. Esta calcula o tamanho da instrução corrente armazenando-a na cache de instruções. As instruções ficam então disponíveis ao decodificador, que irá transformá-las em instruções RISC, disponibilizando-as ao Escalonador Central. O Escalonador, então, envia as instruções, agora RISC, da maneira mais eficiente possível para as respectivas Unidades de Execução. Todo este percurso é feito sem nenhum custo extra de tempo.

      Decodificador de x86 para RISC86

      Um dos maiores problemas das instruções x86 é quanto ao seu tamanho. Estas instruções não tem um tamanho fixo, podendo variar de 1 até 15 bytes, enquanto que as RISC possuem um tamanho fixo. O AMD-K6 considera três tipos de instruções x86: curtas, longas e vetoriais. As curtas (short) são aquelas que não ultrapassam sete bytes de tamanho; as longas (long) são as maiores que sete bytes e menores ou iguais a onze; instruções maiores que 11 bytes são denominadas vetoriais (vector).

      A arquitetura do AMD-K6, isto é, aquilo que é visível aos softwares que serão executados em máquinas que o utilizarem, é baseada no conjunto de instruções x86. Porém, sua micro-arquitetura, isto é, como realmente ele processa as instruções, é baseada no conjunto de instruções RISC 86. É necessário, então, que seja feita uma decodificação de cada instrução a ser executada para seu(s) equivalente(s) em RISC. Cada instrução x86 curta ou longa pode resultar em até quatro instruções RISC (ver exemplo na tabela 1).

      O K6 possui três conjuntos de decodificadores para executar esta tarefa, um para cada tipo de instrução, de acordo com o seu tamanho. Para instruções do tipo short, foi implementado duas unidades de decodificação e uma unidade para cada um dos outros dois tipos de instruções (long e vector). As instruções do tipo short e long são completamente decodificadas pela unidade, enquanto que as do tipo vector são iniciadas pelo decodificador e terminadas por uma unidade especial de procura com rotinas armazenadas em uma ROM.

      O buffer de instruções (cache nível 1) possui bits de predecodificação que possibilitam ao decodificador a correta classificação das instruções.

      Mesmo havendo quatro unidades de decodificação (duas short, uma long e outra vector) só é possível decodificar um tipo de instrução por clock, o que significa que em apenas um ciclo de clock o K6 é capaz de decodificar até duas instruções short ou uma long (as vector precisam ser enviadas para outra unidade). As instruções short geram até duas instruções RISC enquanto que as long até quatro - programas x86 típicos são compostos de 80% de instruções short. Isso possibilita ao sistema de decodificação gerar até quatro instruções RISC por ciclo de clock. Por isso que a saída do decodificador é composta de quatro instruções. Temos também um pequeno inconveniente nesse ponto: a saída deverá ser sempre de quatro instruções. Se por acaso a instrução for do tipo long, mas gerar apenas três instruções RISC, o decodificador gera uma quarta instrução sem efeito algum (NOP) para enviar as quatro instruções necessárias. Temos, então, a possibilidade remota de termos apenas uma instrução válida saindo do decodificador, e as outras três sem efeito algum

      Organização da cache

      O K6 possui 64kb de cache, sendo esta dividida entre cache de instruções e de dados É designado 32kb para armazenar instruções x86 e outros 32kb para dados. Internamente são organizadas em setores, sendo cada setor composto de 64 bytes e cada um desses setores, novamente divididos em duas linhas de 32 bytes cada. A cache utiliza o protocolo MESI de coerência [STA96].

      Cache de instruções

      Na cache de instruções também é colocada a informação de predecode, gerada pelo Predecode logic. Na verdade, esta informação consiste apenas no tamanho da instrução.

      A última informação da cache (tabela 2) consiste em um bit MESI, que define se o dado contido na linha é Valido ou Inválido. O protocolo MESI define quatro tipos de estados: Alterado, Exclusivo, Compartilhado e Invalido (Modified, Exclusive, Shared e Invalid), mas no caso de instruções pode ocorrer apenas os estados Exclusive e Invalid, por isso apenas 1 bit.

      Cada entrada dessa cache é associada a uma entrada de uma tabela TBL [AMD98], usada para converter endereços lineares em físicos.

      Cache de dados

      Já na cache de dados, não há a informação predecode, mas necessite de 2 bits de MESI. Isso porque uma linha pode assumir todos os quatro estados previstos no protocolo MESI

      Estes estados podem ser:

      - Modified - O dado presente na cache foi alterado e esta diferente da memória;

      - Exclusive - significa que este dado está coerente e não foi alterado.

      - Shared - O dado é compartilhado por outras caches.

      - Invalid - O dado e invalido (ou instrução).

      Desempenho

      O AMD-K6 é o principal concorrente do Pentium II. De fato possui muitas características importantes que merecem certa atenção ao decidir pela compra [TOR98]. Sua principal vantagem é a relação custo-benefício, pois o Pentium II ainda é muito caro para a maioria dos usuários. Recentemente, porém, a Intel lançou uma versão econômica do Pentium II, denominada Celeron, com preços compatíveis ao AMD-K6.

      Muitas das técnicas de aumento de performance já incorporam nossos processadores e não são mais exclusividade dos grandes computadores RISC. Entretanto, a arquitetura destes processadores de uso comercial ainda é baseada no conjunto de instruções x86 o que dificulta muito o uso destas técnicas. O principal problema decorre do fato do tamanho das instruções: enquanto as RISC?s possuem tamanho fixo, as x86 podem variar de um byte a dezenas. A solução encontrada pelos fabricantes foi introduzir decodificadores que traduzem cada instrução x86 para as respectivas instruções RISC.

      Dentre estes processadores o K6 é, sem dúvida, um forte representante. Principal concorrente do Pentium PRO e Pentium II, possui características interessantes que podem ser fatores decisivos na escolha. Talvez a principal vantagem seja a economia, não só pelo preço do chip em si, mas também pelo fato de não necessitar, o K6, de placa mãe exclusiva1 para ele. Enquanto o Pentium PRO e o Pentium II requerem placas exclusivas, o K6 pode ser instalado nas placas típicas desenvolvidas para processadores Pentium, desde que possuem configuração de clock adequada.

      Desde sua implementação, o K6 ficou um pouco desacreditado. Suspeitava-se que, mesmo tecnicamente melhor e mais barato, não haveria condições de ser produzido em larga escala, o que afastou alguns fabricantes de computadores que preferiram criar acordos de "fidelidade" com a Intel e passar a vender micros "Intel Inside". Recentemente, no entanto, alguns fabricantes firmaram acordo com a AMD e passaram a fornecer ao mercado micros equipados com o K6. Dentre os principais fabricantes estão a IBM e COMPAQ. Esta competição já obrigou a Intel a lançar uma versão Light do seu processador Pentium II - chamado de Celeron - e a investir fortemente em publicidade, procurando manter a marca Intel como sinônimo de qualidade e confiança, mas acredito que deverá fazer muito mais do que isso se quiser manter-se na liderança mundial de processadores.

 

                4.9 Pentium Xeon

                Volta ao Sumário

      Dentro da estratégia de segmentação de mercado de processadores que a Intel vem desenvolvendo , nos últimos anos, o lançamento do Pentium II Xeon, anunciado no final do mês de junho , significa um novo impulso para as necessidades específicas para servidores e workstation, mercado que a Intel começou a trabalhar em 95. O processador Pentium II Xeon utiliza arquitetura P6 de 0,25 mícron e opera , inicialmente, a 400 Mhz.

      Apresentando o processador Pentium® II Xeon™

      O processador Pentium® II Xeon™ de 450 MHz e 400 MHz é o primeiro membro da família de microprocessadores Intel Inside® da Intel projetado exclusivamente para os potentes servidores e estações de trabalho de hoje. Baseado na arquitetura do processador Pentium II, o processador Pentium II Xeon acrescenta um desempenho superior, a facilidade de gerenciamento e a confiabilidade, vitais para as empresas, que os servidores e estações de trabalho baseados em processadores Intel® exigem.

      Características do Produto

      O processador Pentium II Xeon está disponível com caches velozes e muito grandes, para fazer com que os dados sejam tramitidos em altíssima velocidade através do núcleo do processador. Além disso, as características que facilitam o gerenciamento, tais como Proteção Térmica, Verificação e Correção de Erros, Verificação de Redundância Funcional e o Bus de Gerenciamento do Sistema ajudam a garantir o máximo de confiabilidade e tempo de atividade.

      Alto desempenho para os aplicativos que você necessita

      O processador Pentium II Xeon é ideal para todos os aplicativos de estação de trabalho ou de servidor baseados em processadores Intel, onde o que conta é a potência.

      Velocidade e desempenho totais nas estações de trabalho, para aplicativos gráficos, de engenharia, CAD, finanças e processamento de imagens. Desempenho em nível empresarial nos servidores, além da confiabilidade e de recursos que facilitam o gerenciamento de aplicativos vitais à empresa. Dimensionável, com suporte a multiprocessamento integral para até oito processadores, suporte a sistemas maiores do que oito vias usando tecnologias de cluster como a arquitetura VI e NUMA e suporte à memória expandida de 36 bits para a utilização de memória maior que 4 GB.

      Os processadores Intel Pentium II Xeon estão disponíveis na velocidade de 450 MHz e 400 MHz para oferecer o melhor desempenho Intel existente atualmente para aplicativos executados em sistemas operacionais tais como o Windows NT for Workstations, Windows NT for Servers, NetWare e UNIX

      4.10  Cyrix 6x86

      Volta ao Sumário

      O processador 6x86 MX oferece grandes avanços com relação ao processador 6x86. Estas melhorias permitem que o processador alcanece níveis mais altos de desempenho comqualquer velocidade de clock.

      Comparado ao processador 6x86, o design do 6x86MX quadruplica o tamanho do cache interno para 64 kbytes, triplica o tamanho do TLB e aumenta a escalabilidade de freqüência para 200MHz e mais.

      Além disso, ele apresenta 57 novas instruções de MMX que agilizam o processamento de determinados aplicativos de multimídia e comunicações, os quais de mandam um intenso processamento.

      O processador 6x86MX também contem um recurso de RAM transitória, assim como um de controle do desempenho e permite o armazenamento de códigos e dados 5M1. Ele oferece desempenho otimizado de 16 e 32 bits executando em Windows95, Windows NT, OS/2, DOS, UNIX e outros sistemas operacionais.

      O processador 6x86MX apresenta uma arquitetura superpípelined que aumenta o número de estágios de pipelines para evitar obstrução de execução e aumentar a escalabilidade da freqüência. As técnicas avançadas da arquitetura incluem a troca de nome de registro, compleição fora de ordem, eliminação da dependência de dados, previsão de branch e execução especulativa. Estas inovações de design eliminam varias dependências de dados e conflitos de recursos para atingir um desempenho mais elevado ao executar software de 16 e 32 bits.

      Clocking

      2x, 2.5x, 3x, 3.5x taxas de clock núcleo/bus flexíveis

      Cache L1

      64 Kbytes; retro – escrita; associativo em 4 direções instruções e dados unificados; endereços de portas duplas.

      Bus

      Bus de dados externo de 64 bits; bus de endereço pipelined de 32 – bits.

      Comaptibilidade

      Compatível com a tecnologia MMX e SO x86, incluindo Windows 95/NT, OS/2, DOS, Solaris, UNIX e outros.

      Unidade de ponto flutuante

      80 bits com interface de 64 bits; execução paralela; usa conjunto de instrução x87; compatível com IEEE-754

4.11 Merced

Volta ao Sumário

O processador Merced será o primeiro processador da família de produtos IA-64T da Intel, e incorpora desempenho inovador, aprimorando técnicas de arquitetura como predicação e especulação.

O programa do processador Merced avançou consideravelmente e hoje inclui:

 

A família de produtos IA-64 da Intel deverá ampliar as capacidades da Intel Architecture® de atender os segmentos de mercado de servidores e estações de trabalho de alto desempenho, e já recebeu apoio sem precedentes da indústria. Uma série de empresas, entre elas os principais fabricantes de sistemas de estações de trabalho e servidores, fornecedores de sistemas operacionais líderes de mercado e dezenas de desenvolvedores de software independentes já assumiram publicamente o compromisso de suportar o processador Merced e a família de produtos IA-64. 

                5. Evolução dos Processadores

O microprocessador foi um componente que fez a diferença na evolução da computação. Foi crucial na miniaturização do hardware e conseqüente redução do custo. A evolução do microprocessador determinou uma mudança na vida da humanidade em geral, que passou a dispor de equipamentos nunca antes imaginados.

O microprocessador evoluiu a uma velocidade incrível, e ainda continua, porém o hardware em geral mudou pouco. Isso nos faz pensar que a informática como um todo mal chegou na maturidade e ainda tem um longo campo de desenvolvimento, mais fantástico do que aconteceu desde o primeiro transístor até hoje. E o microprocessador é uma peça fundamental nesse desenvolvimento.

Este trabalho tenta de um modo geral mostrar a história e evolução deste componente que mudou uma geração: o microprocessador.

Evolução Tecnológica

Os primeiros computadores utilizavam circuitos eletromecânicos e válvulas. O aparecimento do transístor trouxe a redução do tamanho e da potência consumida em relação as válvulas, além de serem dispositivos mais robustos e confiáveis. Os computadores usando essa tecnologia estão classificados como de segunda geração. O domínio da tecnologia da física do estado sólido permitiu a integração de vários transístores em uma única embalagem com aproximadamente as mesmas dimensões de um único transístor. Surgiram então os circuitos integrados que foram responsáveis pelo aparecimento dos computadores de terceira geração. Estes computadores tinham maior potência de cálculo, eram mais rápidos, confiáveis e menores fisicamente de que seus antecessores de segunda geração.

Atualmente, o processo de integração tem praticamente o mesmo custo para se integrar centenas, milhares ou milhões de transístores em uma única pastilha. Pode-se falar então na quarta geração de computadores pela utilização da integração eem altíssima escala (VLSI).

Graças ao desenvolvimento da microeletrônica é possível construir toda uma Unidade Central de Processamento em uma única pastilha de silício. Essa pastilha, ou chip, denomina-se microprocessador, sendo conhecido pelo nome de seu fabricante seguido de um determinado número. Exs: INTEL 8080, INTEL 8088, Z80, MOTOROLA 6800, etc.

Os microprocessadores são classificados pelo tamanho da palavra - ou comprimento, em bits, da unidade de informação - que são capazes de processar de uma só vez. Os primeiros microprocessadores foram de 8 bits, seguidos pelos de 16 bits e, mais recentemente, pelos de 32 bits.

O microprocessador é, portanto, a Unidade Central de Processamento de um microcomputador.

Evolução Cronológica dos Microprocessadores

1969 – A  Intel projeta um chip de circuito integrado que poderia receber instruções e executar funções de dados simples. Esse projeto se tornou o microprocessador 4004.

1970 –  Gilbert Hyatt patenteou uma aplicação que seria o primeiro microprocessador da história. A Intel criou um layout de circuitos, que era o microprocessador 4004.

- Intel 4004, o primeiro

A primeira CPU com chip simples foi o intel 4004, um processador 4-bits destinado para ser uma calculadora. Ele processava dados em 4 bits, mas suas instruções eram 8 bits longos. As memórias de programas e dados eram separadas, 1K de memória de dados em 12 bit PC e 4K de memória de programa (na forma de quatro stacks). Havia também dezesseis registros de propósitos gerais de 4 (ou oito de 8 bits). O 4004 tinha 46 instruções, velocidade de 108 KHz, e tinha somente 2300 transistores. O 4040 foi uma versão superior ao 4004, nele foram acrescentadas 14 instruções, mais stacks (oito) e 8K de espaço para programas. Seu preço inicial era U$200. E usava 2300 transístores que podiam endereçar 640 bytes. Os manuais foram escritos por Adam Osborne. A Eletronic News publicou e ajudou na promoção do chip. A Intel ganhou o direito de comercializar seu chip abertamente.

1972 –  Scelbi Computer Consulting inicia o trabalho de design naquele que poderia ser o processador Scelbi-8H.

A Intel lança o seu chip 8008, com 108 KHz, o primeiro microprocessador de 8 bits que acessava 1 KB de memória. O processador foi originalmente desenvolvido pela Computer Terminal Corporation (mais tarde chamada DataPoint). Usava 3500 transístores;

National Semicondutor apresenta seu microprocessador IMP-16.

Intel lança o seu chip 8080 com 2 MHz, um microprocessador de 8 bits, que podia acessar 64 KB de memória e usava 6000 transístores. O primeiro microcomputador a usá-lo foi o MARK-8.

- O Intel 8080

O 8080 foi o sussessor do 8008 (1972, similar ao 4040 - tinha 14 bits de endereçamentos PC), ele tinha barramento de 16 bit de endereçamentos e 8 bits de dados. Internamente, tinha sete registros de 8 bits (A,B,C,D,E,H,L - pares BC, DE e HL foram combinados como registros de 16 bits), um stack pointer de 16 bits ocupava o lugar do de 8 bits que o 8008 possuía e, também tinha um programa de contagem de 16 bits. Ele também tinha várias portas I/O, porém podiam ser modificadas sem retirar ou interferir no espaço de endereçamentos, e um simples pino permitia que o stack ocupasse um banco separado na memória.

A Intel melhorou o projeto com o 8085 (1976), foram adicionadas duas instruções para suas interrupções, e somente requeria uma fonte de +5V. Possuia alguns detalhes extras de entrada/saída.

A Motorola apresenta o chip 6800, um microprocessador de 8 bits usado em microcomputadores, indústrias e serviços de controle automotivo.

- Motorola 6800

O 6800 e 6809, e séries 6502, usavam clock de ciclo simples para gerar timing para quatro estágios de execução interna, embora essas instruções eram executadas em um único 'ciclo' externo (esta é a diferença para o clock-doubling, que usa uma fase para gerar um clock interno rápido, sicronizado com um clock externo). Outras CPUs como o 8080 usavam o clock externo diretamente, com instrução equivalente à dos quatro ciclos, isso significava que 2 MHz do 6809 era equivalente a 8 MHz do 8080. Mais tarde, a Motorola produziu CPUs nessa linha com um clock de quatro ciclos.

A Texas Instruments introduz o chip TMS1000 para microcomputadores.

Surge o RCA 1802 de 6.4 MHz, considerado um dos primeiros chips com tecnologia RISC.

Logo após surge o Altair 8800, com 1 KB de memória, e vendido por U$375. O Altair usa um processador de 8 bits (Intel 8080) com endereçamento de 16 bits. Tem 78 instruções básicas de máquina com mais de 200 variações. Pode endereçar diretamente 65 K de memória. Seu ciclo de intrução básica dura 2 ms.

1975 –  MOS anuncia o MC 6501 por vinte dólares e o MC 6502, por 25 dólares, ao mesmo tempo que o 8080 da Intel custava 150.

A IBM começa a trabalhar no projeto "801", para desenvolver um chip que poderia ser usado tanto em pequenos como em grandes computadores.

1976 –  É fundada a Apple Computer Company.

O SC/MP, microprocessador de 8 bits aparece, com avançado multiprocessamento. Também o MCP-1600.

A Zilog introduz o Z80, um chip de 8 bits.

- O Zilog Z-80

O Z-80 foi o aperfeiçoameto do 8080, e foi vastamente aperfeiçoado, ele também usava 8 bit de dados e 16 bit de endereçamento, e executava todos os códigos op do 8080 (não do 8085), mas com 80 a mais, suas instruções eram operadas em 1, 4, 8 e 16. Os registros foram duplicados, com dois bancos de registros (incluindo A e F)que podiam ser trocados entre eles. Isto permitiu operação rápida do sistema operacional. No Z-80 foram acrescentados dois registros de indíce (IX e IY).

A velocidade do Z-80 era de 2.5mhz, para o Z80-H era 6mhz. O que realmente fez o Z-80 popular, foi a sua interface de memória - a CPU gerava sua própria RAM refresh signals (reativar sinais convertidos), isso significa simples projeto e baixo custo. Sua compatibilidade com o 8080 ,e CP/M, o primeiro modelo de microprocessador com sistema operacional padrão, fez dele a primeira escolha entre muitos outros sistemas.

Foram também produzidas variantes do Z-80 como o Z-180 (também avaliavel como o Hitachi 64180, com componentes adicionados (dois timers 16 bit, dois controladores DMA, três portas seriais, e uma MMU(unidade de

gerenciamento de memória) segmentada com mapeamento 20 bit. 1M de espaço para endereçametos e três segmentos de mapeamento de memória com tamanho variável em 16 bits(64K)), e o Z-280, versão 16 bits que foi introduzida em julho de 1987, com MMU 24 bit (16M), multitarefa, cache de 256 bytes, e vários novos códigos op foram acrescentados. O clock externo era 2 ou 4 vezes mais rápido que o clock interno (ex.: 16 Mhz da CPU com 4 Mhz de bus). Uma versão Z-380 - 16/32 bits também existiu.

O Z-8 (1979) foi um processador inspirado no Z-80, porém em seu chip estavam: RAM (atualmente têm-se 124 para registros gerais e 20 para registros especiais) e ROM (muitas vezes um interpretador BASIC), e era disponível uma grande variedade de configurações que ultrapassavam os 20 Mhz.

1978 –  A Intel lança o chip 8086.dólares e pode acessar 1 MB de memória. Era baseado no design do 8080/8085.

- Intel 8086, o primeiro 80x86

Era um chip de 16 bits. Usava registradores de 16 bits e 29000 transístores. Preço de 360 dólares e pode acessar 1 MB de memória. Era baseado no design do 8080/8085. E foi o primeiro da família 80x86.

1979 –  Intel produz o microprocessador 8088,

- Intel 8088, o XT

Conhecido como o XT. Possuia a mesma arquitetura e os mesmos programas do 8086, mas possuía um barramento de 8 bits, o que o tornava mais lento, porém mais barato que o 8086. E logo se tornou o padrão da insústria para computadores pessoais.

A Zilog mostra o processador Z8000 de 16 bits.

A Microsoft libera sua linguagem Assembler para os microchips 8080 e Z80.

O chip 68000 da Motorola é lançado.

- Motorola 68000

Era uma pastilha completamente nova, não era compatível nem com o 6800, nem com o 6809. Foi uma mudança radical em relação ao passado. Embora o barramento de dados possuísse 16 bits, todos os registradores que o programador via eram de 32 bits, e a má quina pode somar ou subtrair (não multiplicar ou dividir) números de 32 bits em apenas uma instrução, o que transformava o 68000 um híbrido entre 16 e 32 bits. Seu sucesso deu origem a outros processadores, da família 680x0.

1980 –  Apple Computer lança o Apple III, que usa o processador 6502A de 2 MHz.

A Intel 8086, Zilog Z8000, Motorola M68000 e o chip PDP-11 da Digital Equipment começam a usar o Microsoft XENIX OS, uma versão do sistema operacional UNIX (multiusuario e multitarefa).

A Intel anuncia o iAPX-432, um microprocessador de 32 bits. Mais tarde, a Intel constrói o 80286 como um passo entre o 8086 e o 432.

A Motorola apresenta uma linha de estações de trabalho usando o Motorola 68000.

1981 –  A Intel apresenta o iAP-432 na Conferência Internacional de Circuitos.

A IBM apresenta o seu primeiro computador desktop, o Datamaster, que usava um chip 8086 de 16 bits.

O chip 8088 de 4.7 MHz, é usado no computador pessoal 5150 da IBM.

A National Semiconductor apresenta o chip 32000, o primeiro de 32 bits comercial.

1982 – A Radio Shack apresenta o TRS-80, modelo 16, usando o chip Motorola MC 68000 de 16 bits.

A Intel apresenta os processadores 80186, 80188.

A Intel introduz o 80286 de 16 bits, usando 134 mil transístores. Seu preço inicial era de U$360 e podia acessar 16 MB de memória.

- Intel 80286

Microprocessador de 16 bits, usando 134 mil transístores. Seu preço inicial era de U$360 e podia acessar 16 MB de memória, ao contrário do 8086/8088, que não podiam endereçar mais que 1 megabyte de memória.

Lançado em 1982, tinha como características 80x86 pinos, o que viria a se tornar padrão para a Intel, e um espaço para endereçamento de 24 bits. Tinha ainda atributos para um Suporte Virtual de Memória.

1983 – O computador TI 99/2 da Texas Instruments usa o microprocessador TI9995 de 16 bits.

A National Semiconductor coloca em amostra o NS32032 de 32 bits e 6 MHz.

1984 –  Motorola lança o chip 68010, logo após o 68008.

- Motorola 68008, 68010

O 68008 era idêntico ao 68000, só que tinha barramento de 8 bits, para produtos simples. Já o microprocessador 68010, foi criado para poder suportar memória virtual, o que não acontecia com os chips 68000/68008. Podia endereçar 16 mega de memória.

Seu antecessor, o 68012, apenas tinha a diferença de poder endereçar 2 Gb de memória.

1985 –  A Intel apresenta o chip 80386 de 16 MHz. Usa registradores de 32 bits e 275 mil transístores. Seu preço inicial era de 299 dólares e podia acessar 4 GB de memória.

- Intel 80386

Era o primeiro de 32 bits. Possuia 275 mil transístores. Seu preço inicial era de 299 dólares e podia acessar 4 GB de memória.

Foi uma evolução sobre o 80286, pois até aí o acesso à memória estava restrito a 16384 segmentos de 64 K.

Incluia um endereçamento mais normal (registros de 32 bits), com mais números de processamento (incluindo paginação separada) adicionadas para compatibilidade com o design original. De fato, códigos escritos para o 8008 podem ainda rodar no mais recente Pentium-pró.

O 80386 também adicionou uma MMU (Unidade de Gerenciamento de Memória) de novos códigos, semelhante ao Z-280.

O Advanced RISC Machine (ARM), da Acorn, é lançado. Era um processador de 32 bits para uso doméstico.

A Sun Microsystems trabalha em seu processador SPARC.

A MIPS Technology apresenta o primeiro chip RISC disponível comercialmente, o R2000 (32 bits e 8 Mhz). Era pretendido para simplificar do design de processadores eliminando o travamento do hardware entre uma tarefa e outra.

1986 –  A Motorola começa a trabalhar no processador 88000.

A NexGen começa a trabalhar sobre a quinta geração de processadores x86.

A Motorola apresenta o processador 68030.

1987 –  A Zilog introduz uma versão de 16 bits para CPU do Z80, a Z280.

A Commodore lança a primeira máquina IBM-PC compatível, usando um microprocessador 8088.

A Advanced Micro Device lança o AMD 29000.

- AMD 29000

O 29000 tem um grande número de registros separados em conjuntos globais e locais. Permite tamanho variáveis de janelas, de 1 a 128 registros. Essa flexibilidade torna a alocação de registros mais fácil.

Todos os registros podem ser protegidos, em blocos de quatro, do acesso. Isso torna o AMD 29000 mais útil para aplicações embutidas, que é onde esses processadores são usados. O AMD também inclui uma MMU( unidade de gerenciamento de memória).

1988 –  A Motorola lança o chip 88000.

- Motorola 88000

O Motorola 88000 é um processador de 32 bits, um dos primeiros CPUs de arquitetura RISC. Cada bus tem um cache separado, que simultaneamente acessa dados e instruções, sem causar conflitos.

Com exceção disso, é similar à arquitetura da Hewlett Packard Precision. Embora o 88000 seja mais modular, tem um pequeno o elegante conjunto de instruções, apenas falta endereçamento (limitado a 32 bits). O 88000 tem 32 bits, com 8 distintas funções internas - e uma unidade de ponto flutuante.

Mas o seu desenvolvimento foi atrasado quando a Motorola favoreceu o PowerPC em conjunto com a IBM.

A Intel introduz 80386SX, como o 80386, mas com a diferença que tem 16 bits no barramento de dados.

A IBM apresenta o PS/2 30 286, usando bus AT.

A Apple introduz o computador Macintosh IIx, usando os processadores Motorola 68030 e 68882.

1989 –  Digital Equipment começa a desenvolver um microprocessador de 64 bits. O chip vai estrear com o Alpha 150 MHz 21064 em 1992.

A Intel apresenta o chip 80486.

- Intel 80486

Ele integra o 80386 e o coprocessador aritmético 80387 e adiciona um cache primário. Usa 1.2 milhões de transistores, com preço inicial de U$900.

O 80486 adiciona plena ramificação, 8 K de cache, FPU ( Unidade de Ponto Flutuante) integrada e versões de duplicação de clock .

A Motorola anuncia o microprocessador 68040, e uma versão 50 MHz do 68030.

- Motorola 68040

Como o 80486, contém um coprocessador de ponto flutuante, uma unidade de gerenciamento de memória e um cache no chip. Possui 1,2 milhões de transístores.

A Apricot Computer lança o primeiro PC-486, que usa o chip 80486 de 25 MHz.

A IBM demonstra a nova linha de estações de trabalho RISC System/6000.

A Sun Microsystems anuncia a SPARCstation 1 de 20 MHz.

A Intel descobre o chip i860.

- Intel i860

O Intel 80860 era um chip impressionante, capaz de obter uma performance perto de 66 MFLOPS em aplicações reais, comparado aos 5 a 10 MFLOPS das outras CPUs da época. Mas isso não passava de marketing. O chip nunca se tornou popular, pois era mais lento do que as mais novas CPUs.

O 860 tinha muitos usos, como executar duas funções por ciclo. Ele podia usar 8 K de cache de dados. Instruções e barramento de dados eram separados, com 4 GB de memória segmentados. Isto também inclui um gerenciador de unidade de memória para armazenamento virtual.

O i860 tinha 32 bits. Era uma dos primeiros microprocessadores a conter não apenas uma FPU (unidade de ponto flutuante) como também uma ALU(unidade de aritmética e lógica) inteira. Era o primeiro capaz de fazer uma operação com inteiro, uma multiplicação e adicionar uma instrução de ponto flutuante, pelo equivalente a três instruções, mas tudo ao mesmo tempo. Mas para ter o chip à velocidade máxima, requeria o uso de linguagem assembler: usado com os compiladores padrões tinha uma velocidade próxima aos outros microprocessadores. Por causa disso, ele foi usado como um coprocessador, para aceleração de ponto flutuante - como uma adição paralela para estações de trabalho.

Outro problema do 860 era a dificuldade de interrupções manuais: tinha quatro operações reunidas em uma, então quando ocorria interrupções, poderia haver perda de dados, ao menos que um complexo código fosse usado para reparar o erro. E isso ocasionava perda de 62 ciclos até 2000 ciclos (50 microssegundos).

1990 –  A Motorola anuncia a disponibilidade do seu microprocessador de 32 bits 25 MHz, o 68040. Ele incorpora 1.2 milhões de transistores e inclui caches de dados e instruções.

A patente básica dos microprocessadores foi concedida a Gilbert Hyatt, 20 anos após a primeira aplicação da sua patente.

A Motorola anuncia uma nova linha de processadores RISC, e o primeiro desta linha é o 88110. No 88110, gravação e pesquisa ficam no buffer, então o processador não precisa esperar, tornando o processamento mais rápido.

O processador INMOS T-9000 é designado para computação paralela.

- INMOS T-9000

É um processador designado para ser acoplado a outros processadores para maior velocidade de processamento paralelo. O conjunto de instruções é minimizado, como no design RISC. A característica mais importante é que cada chip contém quatro conexões em série para ser conectado a uma estação de trabalho.

O CPU possui muitos níveis de caches de alta velocidade. O cache principal possui 16 K, e é designado para três leituras e uma gravação simultaneamente. As instruções são com bytes, consistindo em quatro bits operacionais e quatro bits de dados, mas podem carregar dados extras, 4 bits por vez.

Essa arquitetura faz instruções muito compactas, mas executando um byte de instrução por ciclo pode ser devagar para instruções de múltiplos bytes, então o T-9000 une esses bytes, que podem ser executado em paralelo e em cinco estágios.

1991 –  O microprocessador Motorola 68040 fica disponível, após um ano de dificuldades técnicas.

A MIPS Technologies lança o processador R4000, de arquitetura RISC.

A Intel estréia o chip i486SX de 20 MHz, com o coprocessador aritmético i487SX.

A Intel produz o chip 80486 de 50 MHz.

A MIPS Techologies introduz oficialmente o R4000, um processador RISC de 64 bits.

- MIPS R4000

O R4000 é uma nova versão do R2000, mas com controle de cache melhorado, expandido para 64 bits e é super ramificado (permitindo um maior clock e duas vezes mais instruções, ao custo de aumento da latência.

1992 –  Intel anuncia uma tecnologia duplicadora de clock para seus microprocessadores, permitindo que a velocidade do CPU (MHz) continue aumentando, sem precisar de uma placa-mãe e componentes mais rápidos, e estréia o 486DX2.

A Digital Equipments descobre o Alpha 21064, um microprocessador de 64 bits.

- Alpha 21064

A arquitetura Alpha, segundo a DEC, foi designada para uma vida operacional de 25 anos. É uma arquitetura de 64 bits, mas permite conversões. O Alpha 21064 foi introduzido com uma unidade de ponto flutuante e uma unidade de busca/armazenamento.

Ele adiciona uma unidade de ponto flutuante e aumenta a velocidade do clock de 200 para 300 MHz.

1993 –  A Intel introduz o processador Pentium de 60 MHz.

- Intel Pentium

A Intel lançou no primeiro semestre de 1993 o microprocessador Pentium, que até naquele momento se supunha viria a chamar-se 586. O chip marca a quinta geração do PC, que surgiu em 1981 com o processador 8088, e elevou o computador à categoria de mainframe ao integrar o estado da arte da tecnologia de produção de circuitos integrados em um pequeno quadrado plástico de poucos centímetros de lado.

Quando lançado, o chip chegou com desempenho até dez vezes superior ao do processador 486DX 33 MHz em operações matemáticas de ponto flutuante e devia ameaçar ainda mais a posição dos computadores de grande porte ao ser usado para construir poderosos servidores de rede e sistemas multiusuários. Ao anunciar esse chip, a Intel deu o empurrão final para "matar" o 386 como micro básico e mudar o cenário da indústria.

O processador Pentium concentra a força de um mainframe num pequeno quadrado de 5,5cm de lado. Os primeiros modelos(60 e 66 MHz) integravam 3,1 milhões de transistores - praticamente o triplo de seu antecessor - e executavam até 112 milhões de informações por segundo. Esses Pentiuns davam ao usuário quase quinze vezes mais poder de processamento que um chip 386SX de 25 MHz e praticamente o dobro do poder da CPU mais potente disponível até então(486 DX2 de 66 MHz).

Hoje já há os processadores Pentium de 133 e 150 MHz, topos de linha da família de processadores da Intel. Micros equipados com eles ainda são caros, mas têm desempenho 80% superior ao dos modelos de 75 MHz e por isso são usados como servidores ou estações de trabalho gráficas. Para tirar proveito de toda a capacidade de um Pentium 133 MHz é importante que toda a configuração seja bem dimensionada: ela deve incluir no mínimo 16 MB de memória, 1 GB de disco rígido, drive de CD-ROM de quádrupla velocidade e monitor de 15 polegadas. A altíssima performance do Pentium deve-se a um coquetel de tecnologias feito para tirar o máximo de aproveitamento do silício.

Um de seus truques é ser o primeiro da família a usar a arquitetura superescalar, privilégio de máquinas Risc e de mainframes, que lhe permite processar até duas instruções simultâneas por ciclo de clock. Para isso, ele possui pipeline(duto interno para tráfego de instruções)duplo que funciona como se o chip tivesse dois 486 embutidos. Cada vez que duas instruções dependentes chegam ao processador, ele consegue processá- las ao mesmo tempo, passando cada uma delas por um pipeline.

A idéia de duplicidade foi implantada pela Intel em outros pontos do chip, como no barramento(bus) de dados que trafegam da memória para o processador, que é de 64 bits, contra os 32 bits do 486. Isso significa que, no mesmo período de tempo, o Pentium é capaz de buscar o dobro da quantidade de dados na memória do micro, o que resulta em ganho de performance. A unidade de processamento de ponto flutuante (cálculos com números fracionários) permite que o chip consiga executar aplicações 5 a 10 vezes mais rápido que um 486SX de 33 MHz.

O sucessor do 486 ostenta ainda uma novidade chamada Branch Prediction, ou Previsão de Desvios. Essa área contém um buffer que armazena e analisa os últimos 256 desvios executados no processamento e tenta antecipar-se ao programa e adivinhar qual estrada ele vai seguir. Se acertar, a aplicação anda mais rápido. Se errar, não há perda de performance. O resultado é um aumento médio de 20% no desempenho. Finalmente, os dois caches internos de 8KB cada um para dados e instruções servem como um atalho para que o chip ganhe tempo buscando as instruções e os dados mais usados diretamente em sua memória, sem precisar acessar a memória principal do micro.

A coleção de recursos do Pentium o transforma num chip com o que se pode chamar de estado da arte da tecnologia de processador, ideal para usar os novos softwares e sistemas operacionais de 32 bits.

 

RADIOGRAFIA - as principais novidades do Pentium

 

  1. Pentium tem dois caches de 8KB cada um, para dados e instruções. Eles agem como uma memória intermediária que guarda as informações mais usadas pela CPU, evitando que ela tenha de acessar a memória principal. Isso acelera o desempenho do micro.
  2. O barramento (bus) externo que faz a comunicação com a memória é de 64 bits. Com isso, a quantidade de informações transferida da memória para a CPU alcança a velocidade de até 528 MB por segundo.
  3. O coração do Pentium é a unidade de processamento superescalar, que usa dois pipelines independentes para executar duas instruções por ciclo de clock.
  4. A unidade de ponto flutuante (FPU) processa operações com números fracionários a uma velocidade até dez vezes maior que um 486 DX de 33 MHz.
  5. No Pentium, a área de compatibilidade com o 386 ocupa apenas 5% da área útil do chip, contra os 20% necessários ao 486. Faz com que o chip possa usar todos os softwares feitos para os outros processadores Intel.
  6. A nova unidade de previsão dos desvios analisa o programa que está sendo executado pela CPU e procura antecipar o caminho que a próxima instrução do software vai seguir. Pode aumentar a performance do processador em até 20%.

 

A Motorola começa o primeiro chip PowerPC 601.

- PowerPC 601

É o primeiro de 32 bits da linha de PowerPCs-Risc ( Reduced Instruction Set Computer). O 601 fornece altos níveis de performance para computadores desktop, estações de trabalho e sistemas de computadores com multiprocessamento simétrico. Tem um desenho superescalar que pode executar até 3 instruções por ciclo de clock. Executa em paralelo instruções emitidas para múltiplas unidades, e pode completar fora de ordem enquanto preserva programas corretamente.

Tem 3 unidades de execução de inteiros (IU), uma BPU (Branch Processing Unit), uma unidade de ponto flutuante (FPU), e uma unidade de gerenciamento de memória (MMU). A habilidade para executar múltiplas instruções em paralelo e o uso de instruções simples com rápida execução trazem máxima eficiência aos sistemas PowerPC.

1994 –  Lançamento do processador Pentium de 90 MHz pela Intel. No mesmo mês houve o lançamento do chip de 100 MHz.

A IBM e Motorola apresentam o processador PowerPC 601 com 100 MHz.

Logo após apresentam o PowerPC 604 de 100 MHz.

- PowerPC 604

Tem um design superescalar capaz de executar 4 instruções por ciclo de clock para seis unidades de execução independentes, incluindo:

* Duas unidades inteiras de ciclos simples;

* Uma unidade inteira de ciclos múltiplos;

* Unidade de processamento ramificada;

* Unidade de armazenamento/busca;

* Unidade de ponto flutuante.

O microprocessador PowerPC 604 usa prognóstico de ramificação dinâmica para melhorar a precisão do monitoramento de instruções. Isso combinado com a incrível habilidade de executar através de duas ramificações indefinidas, permite múltiplas execuções com alto nível de eficiência.

A MIPS Technologies apresenta o microprocessador R4400 de 64 bits e clock de 200 MHz.

O Dr. Thomas R. Nicely nota que o processador Pentium algumas vezes produz resultados falhos em ponto flutuante, trabalhando com apenas 4 a 8 casas decimais com precisão.

A Digital Equipment Corporation produz o AXP1064A de 64 bits e 275 Mhz, usando processador Alpha RISC em grande número, custando U$1083 por chip. Após apresenta formalmente sua nova geração de processadores Alpha AXP, incluindo uma versão de 300 MHz, que pode executar um bilhão de instruções por segundo.

A Sun Microsystems anuncia o processador RISC UltraSPARC de 64 bits.

A IBM e Motorola apresentam e introduzem o protótipo do processador PowerPC 620, operando em 133 MHz.

A MIPS Technologies apresenta o microprocessador RISC R10000 e a Intel o Pentium 75 MHz.

- MIPS R10000

A versão R10000 traz a FPU( unidade de ponto flutuante) em um chip, e adiciona todas as características modernas, avançadas, às características da CPU, incluindo cache I/D separado (duas vias de 32 K cada), uma controladora a ias no chip, execução superescalar (despacha quatro instruções -possivelmente fora de ordem- para cada um dos inteiros, dois pontos flutuantes e uma unidade de busca/armazenamento).

Possui renomeação de registros dinâmica, um cache de instruções, onde estas são praticamente decodificadas quando carregadas para o cache, simplificando o estágio de decodificação do processador.

1995 –  Intel introduz o processador Pentium de 120 MHz. Também anuncia disponibilidade mediata dos processadores Pentium de 133 MHz.

Mais tarde demonstra um sistema usando um chip P6 de 150 MHz, rodando o Windows 95. E diz que o nome oficial para seu chip P6 será Pentium Pro. Também mostra o 80486SXSF e o GXSF 486. O GX tem barramento de 16 bits e o SX de 32 bits. Ambos tem 33 MHz, operando em 2.0-3.3 volts.

A Digital Equipment apresenta o processador Alpha 21164 rodando com 333 MHz.

A Cyrix anuncia o 6X86/100 MHz e o 5x86/120 MHz.

A Intel apresenta o microprocessador Pentium Pro com velocidades entre 150 e 200 MHz.

- Pentium Pro

Lançado pela Intel em novembro de 1995, o processador Pentium Pro começa a equipar máquinas para aplicações que exigem alto desempenho, como servidores de rede corporativas, grandes bancos de dados, estações de trabalho de CAD, desktop publishing e autoria em multimídia.

Além da velocidade de processamento - de 150 a 200 MHz - o novo chip tem recursos com execução dinâmica ( que permite o processamento de até três instruções por ciclo de clock) e memória cache interna de 256 ou 512 KB. Essas características permitem um desmpenho superior ao de servidores e estações de trabalho baseados em tecnologia Risc. É um sistema escalável e aberto, compatível com os padrões do mercado em hardware (placas de vídeo, disco e memória) e software.

A mais nova versão do Pentium Pro, cujo codinome é Klamath, foi projetada para incorporar os circuitos MMX (MultiMedia Extensions) que são na verdade um processador matemático matricial que quadruplicará o desempenho do chip em muitas aplicações gráficas. O Klamath também abandona o cache L2, que torna o desenvolvimento do chip mais barato.

O Klamath vai ser construído usando um processo de 0,28 mícron, o que está perto do estado da arte. O próximo processo que os fabricantes de chip discutem é o de 0,25 mícrom e, depois, o de 0,20 mícron, supostamente o último até o ano 2000, quando será necessária uma tecnologia de fabricação totalmente nova, usando raios X para criar pequenos transistores e trilhas eletrônicas. A velocidade dos chips para o Klamath e os outros processadores Pentium Pro atingirá a faixa de 300 a 333 MHz.

1996 –  Intel anuncia a imediata disponibilidade do Pentium P55C de 150 MHz e também o P55C de 166 MHz.

- Novos processadores da Intel

Se a Intel continuar em seu rumo atual, boa parte da funcionalidade do modem será incorporada ao processador, utilizando um recurso que a empresa chama de processamento nativo de sinal. Isso significa que atualmente a CPU de um computador é tão poderosa que, juntamente com o software certo, pode funcionar como processador digital de sinais. Foi a IBM quem primeiro mostrou essa capacidade, com seu chip PowerPc, alguns anos atrás, e agora a Intel faz a mesma coisa. A empresa está adicionando novos recursos a seus processadores com uma coisa chamada MMX (multimedia extensions).

O MMX vai permitir que o chip processe som, vídeo, cores, tudo em tela cheia. Além disso, a própria CPU substituirá periféricos, como placas de som e modens. Assim, a Rockwell precisava fazer alguma coisa ainda mais impressionante. E é o que ela tenta com a família de chips DSVD (DigitalSimultaneous Voice and Data). Eles suportam velocidades de 28,8 Kbps de dados, também voz e ainda contam com secretária eletrônica.

Um Rival Para o Pentium

A Advanced Micro Devices está lançando o seu primeiro processador feito para competir com o Pentium. O Am5x86-P75 usa tecnologia da geração 486. Por isso, com uma frequência de clock de 133 MHz, tem desempenho apenas 6% superior ao de um Pentium 75MHz. A AMD afirma que seu produto gasta menos energia e produz menos calor que o da Intel, o que possibilita a construção de notebooks mais compactos e com maior autonomia de bateria.


           6  Conclusão

            Volta ao Sumário

O microprocessador, talvez por ser o "cérebro" do computador, foi a parte do hardware que mais evoluiu. E essa evolução ocorreu de forma muito rápida, provavelmente nunca imaginada pelo seu inventor e primeiros fabricantes.

Por isso até nos indagamos -"para que evoluir mais?", pois a velocidade dos computadores de uso pessoal de hoje já é bem grande. Porém o homem insiste em buscar mais, tenta "extrair" da máquina o máximo.

Como exemplo dessa evolução, vimos que os primeiros processadores tinham velocidade em torno de 4 MHz e agora os mais potentes alcançam velocidades superirores a 200 MHz. Um aumento impressionante em mais ou menos vinte anos. Microprocessadores que há anos comprávamos ao mesmo preço do que um carro novo, hoje compramos por menos de 100 dólares. E o carro continua quase o mesmo preço.


7. Referências Bibliográficas

Volta ao Sumário

Intel Corporation – www.intel.com

Universidade de São Carlos – www.cisc.com.br

HOLLUP, Victor. A Evolução dos Processadores. 3 ed.., R.J., Scribba, 1995

MARC, Otto. Introdução à Arquitetura RISC. 2 ed.., S.P., Image, 1993

Patterson, David A & J. L. Henessy [1994]. Computer Organization & Design The hardware/software interface

Tanenbaum, Andrew S. [1990]. Organização estruturada de Computadores

Mips - www.mips.com

www.ee.gannon.edu/~frezza/classes/1997/CompArch/lec04/