Topico Dedicado aos Processadores FX e serie de APUs sockets AM3+,FM2 e FM2+ e algum futuro Socket unificado da AMD
Topico Anterior por Hekinhohttp://adrenaline.uol.com.br/forum/...335606-amd-bulldozer-am3-topico-dedicado.html
A palavra chave da arquitetura Bulldozer está no aproveitamento dos processos. Enquanto a Intel optou pelo uso da tecnologia de virtualização Hyper-Threading, que simula núcleos lógicos aos físicos – aumentando assim a performance em tarefas multi-threads, a AMD foi em outra direção, focando no aumento físico do número de instruções por clock (IPC) através de uma maior unidade interna de processamento. Em outras palavras, os engenheiros da companhia optaram por integrar dois núcleos para formar um bloco de construção fundamental, a famosa estrutura “modular do Bulldozer".
Conforme pode ser visto acima, tal módulo compartilha porções de um núcleo de processamento tradicional - incluindo a instrução fetch, unidades de ponto flutuante e decode, bem como o cache L2 - entre os dois núcleos de processamento. A AMD optou por compartilhar apenas os recursos que nem sempre são totalmente utilizados por um único núcleo. Desta forma, ao não duplicar tais recursos, a companhia ganhou em várias frentes, como é o caso de otimização dos recursos e de seu gerenciamento, bem como na otimização da área do chip.
A parte principal de cada módulo Bulldozer é composta de canais de predição (prediction pipeline) - que preveem quais serão as próximas instruções a serem utilizadas. O canal de busca (fetch pipeline) separado em seguida, preenche as duas filas de instruções - uma para cada thread - com essas instruções. Os decodificadores convertem instruções x86 complexas para as instruções internas mais simples da CPU. Vale ressaltar que os processadores da geração Bulldozer tem quatro destes.
Cada módulo tem um trio de catalogadores, um para cada núcleo inteiro e um para a FPU (Unidade de Ponto Flutuante). Cada núcleo inteiro tem ainda duas unidades de execução e duas unidades de geração de endereço, além de quatro ALUs.
Embora cada módulo tenha apenas uma única unidade de ponto flutuante, a FPU do Bulldozer é consideravelmente mais capaz que as FPUs dos processadores das gerações passadas. É possível observar no diagrama acima duas unidades de inteiros MMX e duas unidades FMAC (Fused multiply-accumulate) de 128 bits. Em um arranjo semelhante ao SMT (simultaneous multi-threading) - tecnologia HyperThreading implementada pela Intel - o FPU pode lidar com duas threads de hardware, um para cada núcleo no módulo.
O FPU do Bulldozer tem uma vantagem em outra área, graças a presença duas unidades de FMAC de 128 bits. O termo FMAC é a abreviação para "fusão de multiplicação-acumulação", também conhecido como FMA, para designar "fusão de multiplicação-adição". Ou seja, trata-se de uma estrutura que em uma única operação, une multiplicação com adição, algo novo para os processadores x86. Assim, as operações de FMA alimentam o resultado da multiplicação diretamente no somador sem arredondamento, aumentando assim a precisão matemática do resultado. É por esta razão que as GPUs da geração DirectX 11 passaram a adotar o recurso FMA como seu novo padrão.
A Unidade de Ponto Flutuante suporta quase todas as extensões do padrão x86, incluindo SSSE3, SSE 4.1, 4.2, e o novo recurso AVX (Extensões de Vetor Avançado) da Intel. O AVX permite maior capacidade de processamento de gráficos, mídia e outros processamentos paralelos, além de cargas de trabalho intensivas de pontos flutuantes, duplicando a largura de vetores SIMD de 128 bits para 256 bits. Assim as unidades FMAC do Bulldozer trabalham juntas formando um único vetor de 256 bits por ciclo.
SMT x Arquitetura modular
A implementação do SMT por parte da Intel duplicou os estados arquitetônicos (parte de uma CPU responsável pela condição de um processo), mas não a execução como um todo da engine. Isto permitiu que seus processadores maximizassem os recursos de execução pelos silícios ativos que, de outra maneira, estariam ociosos, ou pela injeção de threads dentro do pipeline da ocorrência do processo.
Como resultado, a Intel utiliza o SMT para garantir que seu processador esteja sempre ocupado “triturando” os dados, uma vez que, cada vez mais, os sistemas estão aumentando sua “inteligência” no sentido de despachar threads para esta finalidade.
O "problema" com esta implementação de SMT (um recurso de execução/ registros duplicados) é que uma janela de instrução rastreia o despacho, a execução e a retirada de ambos os threads, ou seja, eventualmente pode sobrecarregar o processador, causando eventuais gargalos/falhas.
Já no Bulldozer, o recurso de virtualização recebeu uma janela de instrução dedicada a ambos os threads emitidos ao processador pelo sistema operacional.
O diagrama acima ilustra isso perfeitamente: Uma interface comum (fetch / decode) pode receber e despachar dois threads a um par de catalogadores de inteiros independentes.
Os catalogadores de inteiros estão associados com seu próprio conjunto de pipelines de execução. O consenso geral é que eles são eventualmente divididos entre operações de ALU e armazenamento, mas que poderiam, na verdade, reduzir a performance de execuções single thread.
Estes recursos de execução gravam os dados em seus próprios pedaços de memórias cache L1, enquanto o SMT atual habilita núcleos a gravarem os resultados de ambos os threads em um mesmo cache de dados L1.
Modelos do Bulldozer:
Quadcore: FX4100
SixCore: FX6100
Octacore: FX8120 e FX8150
Modelos do Piledriver:
Quadcore:FX4300
Sixcore: FX6300 e FX6350
Octacore: FX8320,FX8350,FX9590
Em construção...
Por Dentro Da Arquitetura Piledriver
Por dentro do núcleo Piledriver
Conforme mencionado na seção anterior, o AMD FX-8350 tem como grande destaque o fato de ser baseado na arquitetura Piledriver. Apesar da “novidade”, a macro arquitetura é uma evolução da Bulldozer, com os mesmos princípios básicos de organização dos núcleos, formados por módulos. Há, inclusive, as mesmas estruturas funcionais compartilhadas entre os núcleos, como é o caso da memória cache L2, da unidade de ponto flutuante, do buscador de instrução e do decodificador de instrução.
Além disso, o semicondutor do Vishera compartilha algumas características em relação ao Zambezi, como é o caso da litografia (em 32nm), quantidade de transistores (1,2 bilhão), área de die (315 mm2) e quantidade de núcleos e de memória cache L2/L3.
Apesar da aparente semelhança com os antigos processadores da linha FX, os engenheiros da AMD fizeram duas importantes modificações que culminaram em um melhor desempenho.
A primeira mudança foi na estrutura interna do núcleo (conforme é possível verificar na imagem abaixo).
Somente com a alteração das estruturas internas contidas no die do Vishera, a AMD conseguiu atingir uma maior freqüência nos núcleos Piledriver sem aumentar a dissipação térmica máxima, mesmo mantendo o processo de fabricação em 32nm.
Outra mudança foi na condução da fila de execução do processamento, resultando em núcleos mais eficientes (e consequentemente mais desempenho). A interface principal de controle dos dados possui um previsor de ramificação (branch predictor) mais preciso e com maior janela de instrução. As unidades de execução adquiriram um agendador avançado que “aprendeu” a processar instruções individuais de forma mais rápida, como é o caso da divisão de número inteiro e ponto flutuante.
Além disso, os engenheiros da AMD afirmam ter aumentado o tamanho TLB L1 (Translation Lookaside Buffer – dispositivo que visa facilitar a tradução de endereços lineares em endereços físicos, evitando a consulta à tabela de páginas localizada na memória) aumentando assim a velocidade do processamento dos dados, além de aprimorar a pré-busca dos dados e os algoritmos de arbitragem na memória cache L2.
Última edição: