Ir ao conteúdo
  • Cadastre-se

Por Dentro da Arquitetura AMD64


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

Envio e Agendamento

Como mencionamos, a Unidade de Controle de Instruções é o Buffer de Reordenamento dos processadores AMD64. Aqui as macro-ops podem ser selecionadas e enviadas para os agendadores fora de ordem, ou seja, não na mesma ordem em que as instruções apareciam no programa em execução. Por exemplo, se o programa tem algo como:

Inteiro
Inteiro
Inteiro
Inteiro
Inteiro
PF
Inteiro
PF

A arquitetura AMD64 tem três unidades de execução de instruções de números inteiros e três unidades para a execução de números de ponto flutuante. Se ela usasse a tecnologia de execução fora de ordem, sua unidade de ponto flutuante ficaria ociosa durante a execução deste programa, já que a quarta instrução é uma instrução inteira e não poderia ser executada ao mesmo tempo porque todas as três unidades de execução já estariam sendo utilizadas. Como esta arquitetura implementa o recurso de execução fora de ordem, a quinta instrução, que é a primeira instrução de ponto flutuante), pode ser enviadas para a unidade de execução junto com a primeira, aumentando o desempenho do processador. Na verdade, como ela tem três unidades de ponto flutuante, as instruções de ponto flutuante disponíveis neste programa seriam enviadas todas ao mesmo tempo para execução. O objetivo do agendador é manter todas as unidades de execução do processador ocupadas durante todo o tempo.

O Buffer de Reordenamento disponível na arquitetura AMD64 tem 72 entradas e o que é mais interessante é que cada unidade de execução tem seu próprio agendador com seu próprio buffer (8 entradas cada). As unidades de execução de ponto flutuante têm apenas um agendador com 36 entradas. Portanto, a arquitetura AMD64 tem um total de quatro agendadores, a mesma quantidade disponível nos processadores Pentium 4.

O Buffer de Reordenamento é também responsável pelo renomeamento dos registradores. A arquitetura CISC x86 tem apenas oito registradores de 32 bits (EAX, EBX, ECX, EDX, EBP, ESI, EDI e ESP). Este número é pequeno, especialmente porque processadores modernos podem executar instruções fora de ordem, o que “mataria” o conteúdo de um dado registrador, travando o programa.

Por isso, nesta etapa o processador muda o nome e o conteúdo dos registradores usados pelo programa para um dos 96 registradores internos disponíveis, permitindo que a instrução seja executada ao mesmo tempo em que outra instrução que usa o mesmo registrador padrão (ou até mesmo fora de ordem), isto é, que uma segunda instrução seja executada antes da primeira mesmo que elas utilizem o mesmo registrador.

A arquitetura AMD64 tem 96 registradores internos, enquanto que o Pentium 4 tem 128. Nos processadores Intel de 6ª geração (como o Pentium II e Pentium III) havia apenas 40 registradores internos. É interessante notar como a AMD fez um truque na arquitetura AMD64 para obter esses 96 registradores. Eles simplesmente criaram um campo de resultado em cada uma das 72 entradas do buffer de reordenamento para armazenar os resultados de cada instrução (isto não está disponível no Pentium 4; o Pentium 4 precisa alocar um registrador interno para armazenar os resultados cada vez que uma instrução é executada). Além disso, o arquivo de registradores (ou IFFRF, Integer Future File and Register File, como a AMD chama) tem 40 entradas (como 16 delas armazenam o valor “correto” para cada registrador x86, elas não podem ser usadas). Então, enquanto a resposta correta para “quantos registradores internos a arquitetura da AMD tem?” é 40, o número efetivo é de 96 devido a esta diferença arquitetural.


Figura 14: Buffer de Reordenamento e Agendadores da arquitetura AMD64.


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...