Um novo conceito foi introduzido com a arquitetura Core: fusão de instruções (macro-fusion). Fusão de instruções é a capacidade de combinar duas instruções x86 dentro de apenas uma microinstrução. Isto aumenta o desempenho e diminui o consumo do processador, já que ele executará apenas uma microinstrução em vez de duas.
Este esquema, no entanto, é limitado a instruções de desvio condicional e de comparação (ou seja, instruções CMP, TEST e Jcc). Por exemplo, considere o trecho do programa abaixo: … load eax, [mem1] cmp eax, [mem2] jne target …
O que isto faz é carregar para o registrador de 32 bits EAX dados contidos na posição de memória 1, compara seus valores com os dados contidos na posição de memória 2 e, se eles forem diferentes (jne = vá para se não for igual), o programa vai para o endereço “destino”, mas se eles forem iguais, o programa continua na posição atual.
Com a fusão de instruções as instruções de comparação (cmp) e condicional (jne) serão concatenadas dentro de uma única microinstrução. Então, depois de passar pelo decodificador de instrução, esta parte do programa será algo como: … load eax, [mem1] cmp eax, [mem2] + jne target …
Como você pode ver, economizamos uma microinstrução. Quanto menor o número de instruções a serem executadas, mais rápido o computador realizará a execução da tarefa além de consumir menos.
O decodificador de instruções encontrado na arquitetura Core pode decodificar quatro instruções por pulso de clock, enquanto que os processadores Pentium M e Pentium 4 podem decodificar apenas três.
Por causa da fusão de instruções o decodificador de instruções da arquitetura Core envia cinco instruções por vez para a fila de instruções, apesar de ele poder decodificar apenas quatro instruções por pulso de clock. Isto é feito assim porque se duas das cinco instruções forem fundidas em apenas uma, o decodificador pode ainda decodificar quatro instruções por pulso de clock. De outro modo ele ficaria parcialmente ocioso toda vez que uma fusão de instruções aparecesse, ou seja, ele entregaria apenas três microinstruções em sua saída enquanto que ele é capaz de entregar até quatro.
Na Figura 1 você pode ver um breve resumo do que explicamos nesta página e nas anteriores.
 clique para ampliar Figura 1: Unidade de busca e decodificador de instruções da arquitetura Core.
|