sexta-feira, 26 de agosto de 2011

AMD Athlon (K7) vs Pentium III

Vamos a uma comparação directa entre as arquitecturas do Athlon e do Pentium III:

Descodificador de instruções
 
A primeira grande diferença entre o Athlon e o Pentium III reside na maneira como as instruções são descodificadas e processadas. Existem basicamente dois tipos de instruções simples que o processador pode executar: operações aritméticas (soma ou atribuição) e instruções de leitura ou gravação. Na maioria das vezes, uma instrução aritmética vem junto com uma operação de leitura ou gravação, já que depois de executar a operação será preciso gravar o resultado em algum lugar.

No Athlon, as instruções são descodificadas na forma de pares. Cada par, chamado “macro-ops” pode ter uma instrução aritmética e uma instrução de leitura ou gravação. Caso a opção de leitura ou gravação não seja necessária, o espaço reservado a ela ficará vago.

O Athlon tem dois descodificadores de instruções.

O primeiro descodificador chamado “Hardware decoder”, encarrega-se de converter todas as instruções simples, enquanto o segundo descodificador, chamado de “Microcode decoder” tem a função de converter as instruções mais complexas. Cada um dos dois descodificadores pode enviar 3 pares de instruções, ou três macro-ops por ciclo para a unidade de controle, onde as instruções serão ordenadas e despachadas para as unidades de execução. Como as unidades de execução do Athlon processam três instruções por ciclo, este arranjo assegura que em qualquer caso, mesmo caso entrem apenas instruções simples, ou só instruções complexas, o processador terá pelo menos três instruções por ciclo para processar.
O Pentium III processa cada instrução separadamente, e não em pares com o Athlon. Cada instrução é então chamada de “uops”.
 
Temos um total de três descodificadores de instruções: dois descodificadores simples, que cuidam das instruções simples, e descodificam apenas uma instrução cada e um descodificador mais complexo que cuida das instruções x86 mais complexas. Este segundo descodificador é capaz de descodificar até 4 instruções por ciclo.

A princípio, parece um empate técnico, já que somados os três descodificadores, temos 6 instruções por ciclo, como no Athlon. Na prática porém, quando o descodificador de instruções complexas está ocupado, os dois descodificadores simples param. Isto faz com que em muitas situações os descodificadores não sejam capazes de produzir todas as instruções que as unidades de execução podem processar, fazendo com que fiquem ociosas durante parte do tempo, o que naturalmente significa perda de performance.

in Manual de Hardware Completo
de Carlos E Marimoto

Sem comentários: