Diferente dos processadores atuais, que usam sistemas bem mais complexos de decodificação e reorganização de instruções, com o objetivo de manter as unidades de execução ocupadas na maior parte do tempo, o Pentium continua processando as instruções diretamente (como no 486) e na ordem original, mantendo a simplicidade.
Esta abordagem é chamada de processamento ordenado (in-order) e é atualmente usada em processadores de baixo consumo, como a Atom e os processadores ARM. Ela permitiu que o Pentium fosse construído com apenas 3.1 milhões de transístores (um processador atual utiliza 200 ou 300 milhões, sem contar os caches) e fosse relativamente econômico do ponto de vista do consumo elétrico.
Continuando, o uso da arquitetura superescalar trouxe um novo problema, que é a divisão do trabalho entre as unidades de execução, já que os aplicativos continuam sendo compostos por comandos sequenciais, com o uso de muitas operações de tomada de decisão, onde o processador precisa primeiro concluir a execução de uma instrução para saber qual caminho seguir e poder assim executar as seguintes.
Para solucionar o problema foi adotado o uso de um circuito de branch prediction, encarregado de dividir as instruções entre as duas unidades e antecipar o processamento de instruções, de forma a manter ambas ocupadas na maior parte do tempo.
Em uma operação de tomada de decisão (se, então, senão), por exemplo, uma das unidades de execução processaria a primeira instrução (o “se”), enquanto a outra adiantaria o processamento das instruções de um dos caminhos possíveis, escolhido pelo circuito de branch prediction com base na sua tabela interna de possibilidades.
Sempre que o caminho correto é escolhido, o processador ganha tempo (já que aproveita o trabalho executado). Por outro lado, quando o circuito de branch prediction erra a previsão, o processador precisa descartar o trabalho realizado, limpar o pipeline e começar novamente a partir do caminho correto.
O circuito de branch prediction do Pentium era relativamente simples, projetado para examinar o código em busca de algumas funções específicas e tomar decisões pré-programadas, o que resultava em um índice de acerto de 60 a 80%. Nos processadores atuais (que usam três ou mais unidades de execução e pipelines muito mais longos) o circuito de branch prediction é muito mais complexo e trabalha com índices de acerto muito mais altos, acima de 95%. Isso é necessário pois com pipelines mais longos, a penalidade pelos erros nos processadores atuais é muito maior que na época do Pentium, que usava um pipeline de apenas 5 estágios.
Outra mudança trazida pelo Pentium foi a adoção de caches separados para dados e instruções. Diferente do 486, que usava um único bloco de cache L1 para tudo, o Pentium adotou o uso de dois blocos separados de cache L1 (de 8 KB cada um, totalizando 16 KB) para dados e instruções. Isso melhorou a eficiência do cache (em relação ao cache unificado do 486), permitindo que o processador consiga acessar instruções e os dados necessários (para executá-las) simultaneamente, em vez de precisar fazer duas operações separadas.
Além do aumento no tamanho, o cache L1 passou a ser acessado através de um barramento interno de 512 bits (256 bits para o cache de dados e mais 256 para o de instruções), contra apenas 128 bits no 486. Assim como no 5×86 da AMD, passou também a ser utilizado cache write-back, que também cacheava as operações de escrita. O cache usado no 486 cacheia apenas as operações de leitura, o que permite ao processador ganhar tempo ao ler dados, mas não ajuda na hora de gravar, situação onde o processador tinha que esperar pela memória RAM.
Com a popularização dos games e aplicativos 3D de uma forma geral, o desempenho do processador em ponto flutuante passou a ser cada vez mais importante. Combinado com as melhorias no cache, foi desenvolvido um co-processador aritmético cerca de 5 vezes mais rápido que o usado no 486, que adotou o processamento de instruções em estágios, assim como nas unidades de execução de inteiros. O co-processador do Pentium era tão rápido (comparado com outros processadores da época), que mesmo um K6-2 perdia para um Pentium da mesma frequência em jogos e aplicativos muito dependentes de cálculos de ponto flutuante.
A arquitetura do Pentium continua via até os dias de hoje na forma do Atom, que é essencialmente um Pentium modernizado, com um pipeline mais longo, suporte às instruções SSE e capaz de operar a frequências de clock mais altas.
Pentium 100 com o encapsulamento de cerâmica e uma foto do die do processador
Deixe seu comentário