Ir ao conteúdo
  • Cadastre-se

Por Dentro da Arquitetura AMD64


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

Cache de Memória e Unidade de Busca

Na arquitetura AMD64 o caminho de dados entre o cache de memória L2 e o cache L1 de dados é de 128 bits. Nos processadores Intel de 7ª geração (Pentium 4) este caminho de dados é de 256 bits e nos processadores Intel de 6ª geração (Pentium Pro, Pentium II, Pentium III e Pentium M) este caminho de dados é de 64 bits.

Por Dentro da Arquitetura AMD64
Figura 12: Unidade de busca da arquitetura AMD64.

O cache L1 de instruções dos processadores AMD64 possui uma lógica de pré-decodificação, ou seja, cada byte armazenado no cache L1 de instruções tem alguns bits para marcar o início e o fim de cada instrução. Como as instruções x86 não têm tamanho fixo (elas pode ter qualquer tamanho entre um e 15 bytes*), o processo de detectar onde cada instrução começa e termina é muito importante para o decodificador do processador.

* Você pode ficar um pouco perdido com esta afirmação, já que você sempre escutou que a arquitetura x86 usa instruções de 32 bits (ou seja, 4 bytes), portanto uma explicação mais aprofundada é necessária para um maior entendimento.

Dentro do processador o que é considerado uma instrução é o opcode da instrução (o equivalente em linguagem de máquina da instrução em linguagem assembly), mais todos os dados requeridos. Isto ocorre porque a instrução deve entrar na unidade de execução “completa” de modo a ser executada, isto é, junto com todos os dados requeridos. Além disso, o tamanho do opcode de cada instrução x86 é variável e não fixo em 32 bits, como você poderia imaginar. Por exemplo, uma instrução do tipo mov eax, (dado de 32 bits), que armazena um dado de 32 bits no registrador EAX é considerada internamente como uma instrução de 40 bits (mov eax é traduzida em um opcode de 8 bis mais os 32 bits de seu dado). Na verdade, ter instruções com diferentes comprimentos é o que caracteriza um conjunto de instruções CISC (Complex Instruction Set Computing, computação usando um conjunto de instruções complexo).

Caso você queira aprender mais sobre este assunto, leia AMD64 Architecture Programmer’s Manual Vol. 3: General Purpose and System Instructions.

O cache L1 de instruções fornece 76 bits extras para a unidade de busca: 52 bits de marcação de pré-decodificação, oito bits de paridade e 16 bits seletores de desvio. Os bits seletores de desvio são usados pelo processador para tentar adivinhar os desvios no programa em execução.

Na realidade o cache L1 de instruções é maior do que os 64 KB anunciado, já que ele armazena informações de pré-decodificação e de desvio. Na verdade, o tamanho real do cache L1 de instruções da arquitetura AMD64 é de 102 KB (64 KB cache de instrução + 4 KB paridade + 26 KB dados de pré-decodificação + 8 KB dados de desvio).

O buffer de destino de desvio (BTB, Branch Target Buffer) na arquitetura AMD64 tem 2.048 entradas. O BTB é uma pequena memória que lista todos os desvios identificados no programa. O BTB do Pentium 4 é de 4.096 entradas enquanto que nos processadores de 6ª geração da Intel este buffer é de 512 entradas.

Um outro registrador de desvio, BHT (Tabela de Histórico de Desvios) – que a AMD chama GHBC (Global History Bimodal Counter, contador histórico bimodal global) – tem 16.384 entradas na arquitetura AMD64, enquanto que no Pentium 4 esse registrador é de 4.096 entradas, o mesmo tamanho do BHT encontrado na arquitetura AMD K7. Este registrador de dois bits é usado para identificar desvios condicionais: “certamente tomado”, “tomado”, “não tomado” e “certamente não tomado”.


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