Ir ao conteúdo
  • Cadastre-se

Por Dentro da Arquitetura AMD64


     211.914 visualizações    Processadores    4 comentários
Por Dentro da Arquitetura AMD64

Pipeline da Arquitetura AMD64

Pipeline é uma lista de todos os estágios que uma dada instrução precisa percorrer para ser executada. A arquitetura AMD64 utiliza um pipeline de 12 estágios para executar instruções inteiras e 17 estágios para executar instruções de ponto flutuante. Por isso, para uma dada instrução ser executada nos processadores AMD64 ela precisa passar por 12 ou 17 estágios. A arquitetura anterior da AMD – K7, que era usada pelo processador Athlon original, Athlon XP e alguns modelos de Sempron – tinha um pipeline de 10 estágios. O pipeline do Pentium 4 tem 20 estágios e o pipeline do Pentium 4 “Prescott” tem 31 estágios. Os futuros processadores da Intel Core 2 Duo terão um pipeline com 14 estágios.

Vamos estudar o pipeline de execução de instruções de números inteiros da arquitetura AMD64, que é baseado no pipeline da arquitetura K7. A principal diferença entre eles é o estágio do decodificador que, na arquitetura AMD64, foi quebrado em diferentes estágios, provavelmente para permitir que processadores AMD64 atingissem clocks mais elevados.

Por Dentro da Arquitetura AMD64
Figura 11: Pipeline para execução de instruções de números inteiros da arquitetura AMD64.

Aqui está um resumo do que cada estágio faz, o que explica como uma dada instrução é processada pelo processador baseado na arquitetura AMD64. Se você achar isto complicado, não se preocupe. Falaremos mais detalhadamente sobre cada estágio nas próximas páginas.
 
Busca: Busca instruções do cache L1 de instruções em grupos de 16 bytes (128 bits). Esta etapa é dividida em dois estágios. O segundo estágio também é chamado de “Trânsito”, já que sua principal operação é mover dados dentro do processador (similar ao estágio “Drive” disponível no Pentium 4).

  • Pega: Neste estágio os 128 bits enviados pela unidade de busca são armazenados em um buffer. Como as instruções x86 não têm tamanho fixo, neste estágio o processador procura e separa as instruções presentes no buffer. É nesse estágio também que é decidido para qual decodificador a instrução x86 será enviada: para um decodificador simples (e rápido), usado para instruções x86 comuns e que são convertidas em apenas um ou dois macro-ops, ou para um decodificador complexo (lento), usado por instruções x86 que são convertidas em vários macro-ops. Este estágio também é conhecido como “procura” (“scan”).
  • Decodificador: Aqui as instruções x86 são convertidas em macro-ops que o núcleo do processador pode entender. Esta etapa demora dois estágios.
  • Empacotamento: Aqui, pares de macro-ops decodificados são fundidos em um único macro-op.
  • Empacotamento/Decodificação: Mais algumas decodificações são feitas aqui antes dos macro-ops serem enviados para a Unidade de Controle de Instruções (que é a mesma coisa do Buffer de Reordenamento presente nos processadores da Intel).
  • Envio: Os macro-ops são enviados para o agendador apropriado neste estágio.
  • Agendamento: Os macro-ops são agendados para serem executados em um dos agendadores do processador.
  • UGE/ULA: As instruções são executadas.
  • Cache de Dados: Os dados gerados pela unidade de execução são enviados para o cache L1 de dados, os registradores originais são restaurados e a instrução é marcada como “executada” no buffer de reordenamento. Esta etapa é equivalente à etapa de retirada dos processadores da Intel.

Artigos similares


Comentários de usuários

Respostas recomendadas

Só uma pequena duvida

todos os K8,K9,k10 sao da arquitetura AMD64

mas por exemplo, estava buscando apelidos para essas gerações (seriam mas microaquiteruas correto ?)

o K8 é hammer , e o K9 é barcelona ? e o K10 é agena ? isso ?

é que fiz uma junção do K7 com o Palomino e então conclui isso, (duvida antiga)...

conheco as microarquiteturas Intel, e geralmente é nome reservado mesmo, e a AMD no caso das microarchitetures geralmente usa o nome do 1 núcleo produzido ou estou enganado ?

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Só uma pequena duvida

todos os K8,K9,k10 são da arquitetura AMD64

mas por exemplo, estava buscando apelidos para essas gerações (seriam mas microaquiteruas correto ?)

o K8 é hammer , e o K9 é barcelona ? e o K10 é agena ? isso ?

é que fiz uma junção do K7 com o Palomino e então conclui isso, (duvida antiga)...

conheco as microarquiteturas Intel, e geralmente é nome reservado mesmo, e a AMD no caso das microarchitetures geralmente usa o nome do 1 núcleo produzido ou estou enganado ?

K9 não chegou ao mercado, foi direto do K8 pro K10 (barcelona) e o Shangai/Deneb é chamado "K10.5" (dentro dela ainda existem outros núcleos como Propus, Thuban..). O Agena é o codinome dos chips usados nos Phenom "1", Barcelona é o mesmo chip, mas usado nos Opterons da época (e que eu não sei os números)

Do Barcelona pra frente, temos tópicos bem extensos e completos de discussão sobre eles lá no setor de processadores, acho que já te vi em alguns deles. ^_^

Link para o comentário
Compartilhar em outros sites



Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...