
Em um microprocessador, tudo gira em torno de ciclos de clock. Os ciclos de clock são uma forma de medir quanto tempo um microprocessador leva para executar uma instrução. Pense nisso como um número de instruções que um microprocessador pode executar em um segundo. Quanto mais rápida for a velocidade do clock, mais instruções o microprocessador será capaz de manipular por segundo.
Uma forma de processadores como o Core i7 tentarem aumentar a eficiência é prevendo instruções futuras baseados em velhas instruções. Isso é chamado de previsão de desvio (branch prediction). Quando a previsão de desvio funciona, o microprocessador completa as instruções de forma mais eficiente. Mas se acontecer de a previsão de desvio estar errada, o microprocessador tem que compensar. Isso pode significar ciclos de clock desperdiçados, que se traduz em performance mais lenta.
A Nehalem tem dois buffers de destino de desvio (BTB). Esses buffers (área usada para armazenamento temporário de dados na memória do computador durante operações de entrada/saída) carregam instruções para os processadores em antecipação ao que os processadores precisarão em seguida. Assumindo que a previsão esteja correta, o processador não precisa acessar a informação na memória do computador. Os dois buffers de Nehalem permitem que o processador carregue mais instruções, diminuindo o tempo de atraso no caso de um valor estar errado.
Outra melhoria eficiente envolve os loops do software. Um loop é uma linha de instruções que o software repete enquanto é executado. Ele pode vir em intervalos regulares ou de maneira intermitente. Com os loops, a previsão de desvio torna-se desnecessária - uma ocorrência de um determinado loop deverá executar da mesma forma que o outro. A Intel projetou os chips Nehalem para reconhecer loops e lidar com eles de forma diferente da de outras instruções.
Os microprocessadores sem a detecção do fluxo de loop tendem a ter um fluxo que começa com a previsão de desvio, move-se para o hardware designado para coletar - ou buscar - as instruções , decodificá-las e executá-las. A detecção do fluxo de loop pode identificar instruções repetidas, evitando parte desse processo.
A Intel usou a detecção do fluxo de loop em seus miroprocessadores Penryn. A detecção do fluxo de loop do Penryn fica entre os componentes de busca e decodificação dos velhos computadores. Quando o detector do chip Penryn descobre um loop, o microprocessador pode desligar tudo, exceto o detector do fluxo de loop, que envia as instruções apropriadas para um buffer.
As melhorias da previsão de desvio e da detecção do fluxo de loop são parte da estratégia "taque" da Intel. Os transistores nos chips Nehalem são do mesmo tamanho dos do Penryn, mas o desenho da Nehalem torna mais eficiente o uso do hardware.
A seguir, vamos dar uma olhada em como os microprocessadores Nehalem lidam com os fluxos de dados.