Todos os membros da família i486 incluem um controlador interno de cache (Level 1) com 8KB de memória cache. Basicamente, esta cache é uma área de memória muito rápida incorporada no processador e que é usada para guardar dados e código que vai ser acedido pelo processador.
O uso da memória cache reduz o tempo de espera do processador por dados evitando que o processador fique à espera desses mesmos dados da memória principal, que é muito mais lenta, aumentando, assim, substancialmente, a performance do processador.
A organização da memória cache no 486 é tecnicamente denominada de “four-way set associative cache”, o que quer dizer que a memória é dividida em quatro blocos, sendo cada bloco organizado em 128 ou 256 linhas, com 16 bytes cada linha.
O conteúdo da cache deve ser sempre sincronizado com o conteúdo da memória principal, de modo a assegurar que o processador está a trabalhar com os dados correctos. Por essa razão, a cache nos 486 é do tipo Write-Throug, isto é, quando o processador escreve informação na cache, essa informação é também escrita automaticamente na memória principal.
3.5.7.2 i486DX
O I486DX é fabricado com tecnologia CMOS (Complementary Metal Oxide Semiconductor) de baixo consumo, originalmente disponível na versão de 168 PGA (Pin Grid Array) de 168 pinos e uma tensão de 5 volts. Posteriormente, foi lançada uma versão de 196 pinos PQFP (Plastic Quad Flat Pack) a 3,3 volts, assim como uma versão para computadores portáteis de 208 pinos SQFP (Small Quad Flat Pack).
Entre outras características, o i486DX tem registos internos de 32 bits, barramento de dados externo de 32 bits e barramento de endereços de 32 bits. No seu interior tem qualquer coisa como 1,2 milhões de transístores e encontramos também um coprocessador matemático, uma unidade de gestão de memória e um controlador de cache com uma cache L1 de 8 KB. Devido a isso e a uma unidade interna de processamento mais eficiente, ele é capaz de executar instruções individuais a cerca de dois ciclos de processador.
Tal como o i386DX, o i786DX pode endereçar 4GB de memória e gerir até 64 TB de memória virtual. Suporta inteiramente os três modos de operação do i386, isto é, modo real, modo protegido e modo real virtual.
3.5.7.3 i486SX
O i486SX é virtualmente igual ao i486DX, mas com uma diferença: não tem coprocessador matemático. Algumas das primeiras versões do SX eram integradas da série DX, mas com defeitos no processador matemático, os quais foram aproveitados pela Intel para lançar uma versão mais barata do 486. No entanto, esta opção durou pouco, porque a Intel logo desenhou um novo chip sem coprocessador, tendo isso baixado o número de transístores de 1,2 milhões para 1,185 milhões.
O i486SX foi lançado numa versão de 168 pinos e a velocidade de 16 MHz, 20MHz, 25 MHz e 33 MHz, tendo também sido lançada uma versão SX2 que trabalhava a 50MHz ou 66MHz.
3.5.7.4 I487SX
O i487SX na realidade não é um coprocessador matemático, como a sua designação poderá dar a entender, pois na realidade não é mais do que um i486DX a 25 MHz completo, com um pino extra e alguns outros alterados. Aquando da introdução do I487SX no respectivo socket, ele desactiva o 486SX através de um novo sinal de um dos seus pinos. Quanto ao pino extra, ele não tem absolutamente sinal nenhum e serve somente para evitar que se introduza o integrado indevidamente no socket.
3.5.7.5 I486DX2 e I486DX4
Começando pelo DX2, ele trabalha internamente a duas vezes a velocidade de relógio do sistema, isto é, trabalha a 50MHz se a placa principal for configurada para 25 MHz. No entanto, se a configurarmos para 33 MHz, o processador já trabalhará a 66 MHz. Foram lançadas três versões para este processador:
- DX2 a 40 MHz para sistemas de 16 MHz ou 20 MHz;
- DX2 a 50MHz para sistemas de 25 MHz;
- DX2 a 66 MHz para sistemas de 33 MHz.
A única parte do DX2 que não trabalha a duas vezes a velocidade do sistema é a unidade de interface de barramento, dado que é a região do integrado que gere os I/O entre o CPU e o exterior. Como serve de “intermediário” entre ambas as partes, a unidade de interface de barramento torna a multiplicação transparente para o resto do sistema, fazendo com que o DX2 pareça um DX normal, exceptuando o facto de executar as instruções ao dobro da velocidade.
No caso do DX4, em vez de um dobrador de velocidade, temos um triplicador. Isto é, se multiplicarmos os 33 MHz do relógio de sistema por 3, temos 99MHz, mas, por questões de marketing, a Intel denominou-o de 100MHz. Uma diferença muito importante do DX4 em relação ao DX2 era o facto de trabalhar a 3,3 volts.
3.5.8 Pentium
Em Outubro de 1992, a Intel anunciou a sua quinta geração de processadores, com o nome de código P5 e nome comercial Pentium. Este processador é inteiramente compatível com todos os anteriores processadores Intel, no entanto, tem grandes diferenças em relação aos seus antecessores, como vamos ver seguidamente (fig. 3.27).
Figura 3.27 – Processador Pentium
Uma das grandes e revolucionárias diferenças entre o Pentium e os processadores anteriores é o facto de ter duas pipelines, o que lhe permite executar dois processos simultaneamente. A esta capacidade a Intel chamou de tecnologia superescalar, normalmente associada a processadoras RISC, tendo o Pentium sido o primeiro processador CISC a ser considerado como superescalar. Na prática, é quase como se tivéssemos dois processadores i486 dentro de um só chip.
Vejamos na tabela 3.10 um resumo das características principais do Pentium.
| Pentium | |
| Velocidade | Primeira geração-:60,6 MHz Segunda geração-75 MHz, 90MHz, 100MHz, 120 MHz, 133 MHz, 150 MHz, 166MHz e 200MHz |
| Multiplicador de Relógio | 1x (primeira geração); 1,5x – 3x (segunda geração) |
| Registos | 32 bits |
| Barramento de Dados Externo | 64 bits |
| Barramento de Endereços | 32 bits |
| Memória Máxima | 4 GB |
| Cache L1 | 8 KB de código, 8 KB de dados |
| Tipo de Cache | Two-way set associative, write-back data |
| Transferências Burst-Mode | Sim |
| Número de transístores | 3,1 milhões |
| Tamanho do Circuito | 0,8u (60/66 MHz); 0,6u (75-100MHz); 0,35u (120-200MHz) |
| Coprocessador | Interno |
| Gestão de Energia | SMM (System Management Mode) |
| Tensão de Alimentação | 5 volts (primeira geração), 3,465 V, 3,3 V, 3,1 V, 2,9 V (segunda geração) |
| Encapsulamento | 275 pinos PGA (Pin Grid Array), 296 pinos SPGA (Staggered Pin Grid Array) |
Tabela 3.10 – Características do Pentium
As duas pipelines de instruções do Pentium são denominadas de “Pipeline U” e “Pipeline V”: a “U”, que é a primária, pode executar as instruções de inteiros e de vírgula flutuante; a “V”, que logicamente é secundária, somente pode executar instruções simples de inteiros e certas instruções de vírgula flutuante. A grande vantagem de dupla pipeline é permitir a execução de duas instruções simultaneamente. No entanto, como já vimos anteriormente, nem todas as instruções sequenciais podem ser executadas simultaneamente e nesses casos é usada somente a pipeline “U”.
O Pentium tem um barramento de endereços de 32 bits, o que lhe dá a mesma capacidade de endereçamento de 4 GB do i386 e i486, mas, no entanto, o Pentium tem um barramento de dados de 64 bits, o que quer dizer que pode movimentar o dobro dos dados do seu antecessor i486, à mesma velocidade de relógio. O facto de ter um barramento de dados de 64 bits implica que a memória de sistema seja acedida a 64 bits, o que quer dizer que cada banco de memória passou a ser de 64 bits. Não esqueçamos que o i486 só tinha 32 bits. No i486 bastava uma SIMM para termos um banco de memória, no Pentium passamos a necessitar de duas SIMM para ter o mesmo resultado, no entanto, com o dobro da memória.
Apesar de ter um barramento de dados de 64 bits, o Pentium só tem registos de 32 bits. Devido a isso, quando as instruções são processadas internamente, são divididas em blocos de 32 bits e processadas do mesmo modo que no 486.
O Pentium tem uma cache interna de 16 KB, dividida em dois blocos de 8 KB cada, sendo um para instruções e outro para dados. Esta cache está organizada no modo “two-way set associative”, sendo cada “set” ou conjunto dividido em linhas de 32 bits. Cada bloco de cache tem um TLB (Translation Lookaside Buffer), o qual traduz os endereços lineares para endereços físicos.
O Pentium foi lançado com dois desenhos básicos, cada um deles com várias versões. A primeira geração foi lançada com velocidades de 60 MHz e 66 MHz. O chip tinha 273 pinos no formato PGA e trabalhava a 5 volts; além disso, o processador trabalhava à mesma velocidade da placa principal (fig. 3.28).
Figura 3.28 – Arquitectura interna do Pentium
Em Março de 1994, a Intel lançou o Pentium de segunda geração, com velocidades que variavam dos 75 MHz aos 200MHz. Nesta segunda geração foi utilizada uma tecnologia BICMOS de 0,6u nas versões de 75 MHz, 90 MHz e 100 MHz, nas versões 120 MHz a 200MHz foi utilizada também a tecnologia BICMOS, mas de 0,35u.
O chip desta segunda geração de processadores Pentium tem 296 pinos no formato SPGA (Staggered Pin Grid Array) e trabalha a 3,3 volts, pelo que é incompatível com a primeira geração. No seu interior estão qualquer coisa como 3,3 milhões de transístores.
Nesta segunda geração é necessária a utilização de circuitos multiplicadores de relógio, de modo a o processador poder trabalhar a velocidades superiores à do barramento. Por exemplo, um Pentium a 166 MHz trabalha duas vezes e meia a velocidade do barramento. Na tabela 3.11 podemos ver os factores multiplicativos para cada uma das versões do Pentium.
| Versão do CPU | Factor Multiplicativo | Barramento |
| Pentium 75 | 1,5x | 50 MHz |
| Pentium 90 | 1,5x | 60 MHz |
| Pentium 100 | 1,5x | 66 MHz |
| Pentium 120 | 2x | 60 MHz |
| Pentium 133 | 2x | 66 MHz |
| Pentium 150 | 2,5x | 60 MHz |
| Pentium 166 | 2,5x | 66 MHz |
| Pentium 200 | 3x | 66 MHz |
Tabela 3.11 – Tabela dos processadores Pentium
3.5.8.1 Pentium MMX
A terceira geração de processadores Pentium foi lançada em 1997 com o nome de código P55C e designação comercial Pentium MMX. Este processador é um Pentium de segunda geração, com tecnologia MMX. As suas velocidades vão de 166 MHz a 233 MHz, mantém as características principais dos seus antecessores, mas tem algumas alterações em relação ao desenho original dos Pentium de segunda geração. Entre elas são de realçar a cache L1 de 32 KB, dividida em dois blocos de 16 KB cada, uma unidade de pipeline específica para instruções MMX (fig. 3.29)
O MMX foi fabricado com tecnologia de silício CMOS de 0,35u, o que permitiu baixar a sua tensão de alimentação para 2,8 volts, apesar de no seu interior ter qualquer coisa como 4,5 milhões de transístores (fig. 3.30).
Figura 3.29 – Arquitectura interna do MMX
Figura 3.30 – Pentium MMX
O seu outro trunfo é o facto de ampliar o conjunto de instruções do Pentium em mais 57 instruções, às quais foi dado o nome de instruções SIMD (Single Instrution, Multiple Data), instruções essas específicas para multimédia.
As aplicações de comunicações e multimédia actuais usam ciclos repetitivos que, apesar de ocupar 10% ou menos do código total da aplicação, podem representar cerca de 90% do tempo de execução. O SIMD permite que uma instrução execute a mesma função em múltiplos blocos de dados, sendo o mesmo que dar uma ordem a um grupo de pessoas, em vez de dar a mesma ordem a cada uma delas individualmente. O SIMD ainda permite ao processador reduzir ciclos de instruções intensivos, que são relativamente vulgares em aplicações de vídeo, áudio, gráficos ou animações.
3.5.8.2 Pentium Pro
O sucessor do Pentium MMX é o Pentium Pro que foi apresentado em Setembro de 1995. O encapsulamento é de 387 pinos e usa o socket 8, pelo que não é compatível a nível de pinos com os seus antecessores (figs. 3.31 e 3.32).
Figura 3.31 – Pentium Pro
Figura 3.32 – Socket 8
O integrado é construído com o formato de um módulo multichip, a que a Intel chamou Dual Cavity PGA. No seu interior tem dois chips, um com o processador propriamente dito e no outro está a cache L2 de 256 KB ou 512 KB. O processador tem 5,5 milhões de transístores, enquanto que para a memória L2 de 256 KB tem 15,5 milhões e a de 512 KB 31 milhões de transístores, o que dá um impressionante total de 36,5 milhões de transístores no caso de ter 512 KB de cache L2.
A arquitectura do Pentium Pro inclui três pipelines, o que lhe permite executar múltiplas instruções por ciclo, incluindo também uma cache L1 de 16 KB dividida, sendo 8 KB em modo “two-way set associative” para instruções primárias e 8 KB em modo “four-way set associative” para dados. O Pentium Pro tem capacidade de “dynamic branch prediction”, assim como “speculative execution” e pode executar as instruções fora da sua ordem. Estas técnicas são denominadas pela Intel como “dynamic execution”.
Mas vamos, antes de mais, ver na tabela 3.12 um resumo das suas especificações.
| Pentium Pro | |
| Apresentação | Setembro 1995 |
| Velocidades | 150MHz, 166 MHz, 180 MHz e 200 MHz |
| Factor Multiplicativo | 2,5x – 3x |
| Tamanho de Registo | 32 bits |
| Barramento de Dados Externo | 64 bits |
| Barramento de Cache Integrada | 64 bits |
| Barramento de Endereços de Memória | 32 bits |
| Máximo de Memória Endereçável | 4 GB |
| Cache L1 | 8 KB de código, 8 KB de dados |
| Número de Transístores | 5,5 milhões |
| Nº de Transístores na Cache L2 | 15,5 milhões (256 KB), 31 milhões (512 KB) |
| Tamanho de Circuito | 0,35u |
| Encapsulamento | 387 pinos Dual Cavity PGA |
| Coprocessador Matemático | Incorporado |
| Gestão de Energia | SMM |
| Tensão de Alimentação | 3,3 volts |
Tabela 3.12 – Características do Pentium Pro
Apesar de parecer um processador totalmente novo, em muitos aspectos dá-nos mais a sensação de ser uma evolução dos anteriores. O núcleo do chip é de arquitectura RISC, enquanto a interface de instruções externas é de arquitectura CISC. Por outras palavras, ele “pega” nas instruções CISC, transforma-as em várias instruções RISC e executa-as em pipelines de execução paralelas, aumentando assim a performance do processador.
Se compararmos o Pentium Pro com o Pentium, o primeiro é mais rápido, correndo software de 32 bits, já que o dynamic execution do Pentium Pro foi maximizado para trabalhar com sistemas operativos de 32 bits. No que respeita a sistemas operativos de 16 bits, tipo Windows 95 ou 98, aí o caso torna-se bastante diferente, pois um Pentium consegue superar um Pentium Pro de velocidade equivalente (fig. 3.33).
Figura 3.33 – O Pentium Pro e o Pentium
Já referimos neste capítulo a dynamic execution, ou execução dinâmica das instruções, pelo que vamos ver como isso é feito no Pentium Pro. Este tipo de execução é possível porque o Pentium Pro possui três pipelines e desta forma consegue executar três instruções simultaneamente. As instruções são analisadas quanto à sua interligação, mas não são executadas ordenadamente, isto é, são enviadas para os pipelines as instruções que não dependem umas das outras e só depois é que são executadas as que necessitam dos dados das anteriores.
Como vimos no parágrafo anterior, a unidade de execução executa as instruções baseada na não dependência de execução de outras instruções e não na sua ordem original dentro de um programa. Para isso, baseia-se nas seguintes três técnicas:
- Multiple branch prediction (revisão de desvios múltiplos) – Prediz a execução do programa através de vários ramos. Através de um algoritmo especial, o processador pode antecipar saltos ou ramificações no fluxo de instruções. Isto é possível porque, enquanto o processador recebe instruções, ele també está a verificar as instruções do programa mais para a frente.
- Data flow analysis (análise de fluxo de dados) – Cria, optimiza e reordena as instruções analisando a dependência entre elas, independentemente da sua ordem original no programa. O processador lê as instruções descodificadas e determina quando estão disponíveis para processamento ou, por outro lado, se dão dependentes de outras instruções que necessitam de ser executadas primeiro. Assim, o processador determina qual a sequência óptima para processamento e executa as instruções de um modo mais eficiente.
- Speculative execution (execução especulativa) – É o resultado do Multiple Branch Prediction e do Data Flow Analysis. Executa as instruções especulativamente, isto é, as instruções podem ser executadas sem dependências umas das outras. Utiliza a técnica de Data Flow Analysis para verificar as dependências entre instruções e o algoritmo de Multiple Branch Prediction para estabelecer a lista das instruções que podem ser executadas. Assim, o Pentium pró pode em dada ciclo de relógio executar três instruções independentes. Após essa execução, os resultados são armazenados em registos de memória temporários e só são disponibilizados quando as instruções que as antecedem, na sequência original do programa ou processo a que pertencem, tiverem sido igualmente executadas.
Outras das características do Pentium Pro é o facto de ter cache L2 integrada. Ao colocar a cache L2 no interior do chip, a cache pode trabalhar À mesma velocidade do processador, em vez dos típicos 60 MHz do barramento da placa principal. De facto, a cache L2 tem um backside bus interno de 64 bits, o qual não partilha tempo de processamento com o barramento FSB externo de 64 bits do processador.
Outras das características da cache L2 integrada é o multiprocessamento ser grandemente melhorado. O Pentium Pro suporta um novo tipo de configuração do multiprocessador chamado Multiprocessor Specification (MPS 1.1). o Pentium Pro com MPS permite configurações de até quatro processadores. Ao contrário de outras configurações do multiprocessador, o PENTIUM pró elimina problemas de coerência de cache, porque cada chip mantém uma cache L1 e uma L2, separadas internamente.
3.5.8.3 Pentium II
O Pentium II é o nome comercial do Klamath, o Pentium Pro com tecnologia MMX. Integra as capacidades de dynamic execution do PENTIUM Pro com a tecnologia MMX.
Sem comentários:
Enviar um comentário