sexta-feira, 29 de outubro de 2010

Microarquitetura Core

Microarquitetura Core
 microarquitetura Intel Core, divulgada em 2006 pela Intel, é uma nova arquitetura que permite um aumento de desempenho combinado à um menor consumo de energia. Possui recursos avançados que permitem um melhor desempenho por Watt. Dentre estes recursos temos uma execução mais rápida de instruções maiores, uma melhora no sistema de consumo de energia que possibilita a desativação temporária de áreas ociosas, um sistema aprimorado de predição de instruções e dados e também algumas novas instruções multimídia.
O texto abaixo apresenta em linhas gerais essa nova arquitetura e seus principais recursos.

Intel Wide Dynamic Execution

A Execução Dinâmica é uma combinação de técnicas como a análise do fluxo de dados, execução especulativa, execução fora de ordem e tecnologia superescalar onde se tem mais de uma unidade de execução. A primeira vez que esta tecnologia foi usada pela Intel foi na microarquitetura Intel de 6ª geração, conhecida como P6, usada nos processadores Pentium Pro, Pentium II, and Pentium III. Para a microarquitetura Intel NetBurst, foi introduzido o Advanced Dynamic Execution, um dispositivo de execução especulativa proposto para manter a continuidade da execução de instruções dentro do processador. Além disso, a NetBurst possui um algoritmo de previsão de desvio (branch-prediction) mais eficaz diminuindo o número de reconfigurações do pipeline.
Com a microarquitetura Intel Core tem-se um ganho significativo da capacidade de despachar execuções devido ao Intel Wide Dynamic Execution. Essa tecnologia possibilita uma maior entrega de instruções por ciclos de clock melhorando tanto o tempo de execução como a utilização eficaz de energia. Cada núcleo de execução é, digamos, mais largo, possibilitando que cada núcleo busque, despache, execute e retorne até quatro instruções completas simultaneamente. Anteriormente a NetBurst podia trabalhar com ate três instruções por tempo, um ganho de desempenho de 33%. Outras melhorias incluem um melhor algoritmo de previsão de desvio, buffers de instruções maiores o que possibilita mais flexibilidade na execução além de outras melhorias que reduzem o tempo de execução.

Intel Advanced Smart Cache

A arquitetura Intel Core foi desenvolvida desde o começo prevendo-se o suporte a vários núcleos por processador. Diferentemente dos processadores anteriores, os processadores Intel Core com múltiplos núcleos compartilham a memória cache de nível 2 (L2).
A primeira vantagem da estratégia de compartilhar o cache L2 é que a quantidade de cache L2 pode ser alterada dinamicamente de acordo com a carga dos núcleos. Em um processador DualCore, quando um núcleo está inativo, o núcleo ativo fica com toda a cache L2 à sua disposição. Quando vários núcleos estão ativos a cache L2 é dividia proporcionalmente entre os núcleos de acordo com a freqüência de requisições feitas por cada núcleo à memória.
A segunda vantagem é que ao utilizar uma única cache L2 não é necessário utilizar técnicas para garantir a consistência de dados entre as caches dos vários núcleos, diminuindo a utilização do barramento entre o processador e a memória do sistema.
Uma terceira vantagem é que o espaço total disponível em cache L2 é melhor utilizado já que quando dois núcleos utilizam os mesmos dados eles não são duplicados em várias caches, sendo compartilhados pelos dois núcleos.
A última vantagem é que a microarquitetura Core possui lógica de controle adicional para permitir que os dados da cache L1 de um núcleo sejam transferidos para a cache L1 de outro núcleo passando pela cache L2 compartilhada. Isso permite um passo a menos (não é necessário transferir dados entre as caches L2 de cada núcleo) no compartilhamento de dados entre as caches L1 de diversos núcleos, potencialmente melhorando a performance do sistema quando vários núcleos executam a mesma tarefa.

Intel Smart Memory Access

Intel Smart Memory Access é o nome de um conjunto de técnicas utilizada para aumentar a performance do sistema de acesso à memória do processador. Consiste das técnicas de Pré-Carregamento e Desambiguação de Memória.

Intel Advanced Digital Media Boost

O Intel Advanced Digital Media Boost é um recurso que melhora significativamente a performance quando executa instruções SSE. Tanto as operações de ponto de flutuação com dupla precisão da SIMD em 128-bits como as operações aritméticas de inteiros SIMD em 128-bits reduzem o número total de instruções necessárias para executar uma determinada tarefa do programa, e como resultado pode contribuir para um aumento total da performance. Eles aceleram uma grande quantidade de aplicações, incluindo vídeo, som, imagem, processamento de fotos, encriptação, financeiras, científicas e de engenharia. As instruções de SSE intensificam a arquitetura da Intel ao permitir que os programadores desenvolvam algoritmos que podem misturar pacotes de pontos de flutuação de precisão individual com inteiros, usando tanto as instruções SSE como as instruções MMX, respectivamente.

Em várias das antigas gerações de processadores, as instruções SSE, SSE2 e SSE3 em 128 bits eram executadas em um nível sustentado de uma instrução completa a cada dois ciclos de relógio—por exemplo, a mais baixa em 64 bits em um ciclo e a mais alta em 64 bits no próximo ciclo. O recurso Intel Advanced Digital Media Boost permite que estas instruções em 128-bits sejam completamente executadas em um nível de rendimento de uma por ciclo de relógio, efetivamente dobrando a velocidade da execução para estas instruções. Isto aumenta ainda mais a eficiência total da Microarquitetura Intel® Core™ através do aumento do número de instruções controladas por ciclo. O recurso Intel Advanced Digital Media Boost é particularmente útil para a execução de importantes operações de multimídia envolvendo gráficos, vídeo e áudio e para o processamento de outros conjuntos de dados ricos que utilizam instruções SSE, SSE2, e SSE3.



2 comentários: