Execution trace cache

O Pentium III possui 32 KB de cache L1, dividido em dois blocos, onde 16 KB são para o armazenamento de dados e os demais 16 KB para o armazenamento de instruções. O Athlon utiliza um cache L1 de 128, novamente dividido em dois blocos separados, que armazenam dados e instruções.

No Pentium 4, o bloco do cache L1 destinado a instruções foi substituído pelo Execution trace cache, um tipo de cache ultra-rápido que, em vez de instruções, armazena diretamente uOPs, que são as instruções já decodificadas, prontas para serem processadas. Isto garante que o cache tenha apenas um ciclo de latência (a instrução é solicitada em um ciclo e recebida no seguinte), o que faz com que o processador não perca praticamente tempo algum ao utilizar dados armazenados no trace cache, ao contrário do que acontecia no Pentium III, onde são perdidos pelo menos dois ciclos em cada leitura, o tempo necessário para decodificar a instrução.

Se você está em dúvida sobre o que é um “uOP”, e como eles são produzidos e processados, aqui vai uma explicação resumida:

Apesar dos processadores para micros PC continuarem usando o conjunto x86 de instruções, que é composto por 184 instruções, internamente eles são capazes de processar apenas instruções simples de soma e atribuição. Existe então um circuito decodificador, que converte as instruções complexas usadas pelos programas nas instruções simples entendidas pelo processador. Uma instrução complexa pode ser quebrada em várias instruções simples. No Pentium 4, cada instrução simples é chamada de uOP. No Athlon cada conjunto de duas instruções recebe o nome de macro-ops.

O trace cache ocupa uma área muito grande do die do processador, equivalente ao que seria ocupado por aproximadamente 96 KB de cache L1 convencional. Apesar disso, ele armazena o equivalente a apenas 8 KB de instruções decodificadas, já que elas ocupam brutalmente mais espaço. Ou seja, por um lado o trace cache melhora o desempenho do processador, já que é muito rápido, mas por outro diminui (em relação ao que seria obtido ao utilizar um cache convencional de maior capacidade), pois o pequeno volume de dados armazenados faz com que ele precise recorrer mais freqüentemente aos dados armazenados no cache L2 e na memória principal.

O trace cache é complementado por um cache de dados de baixa latência, consideravelmente mais rápido que o cache L1 encontrado no Pentium III e no Athlon. O problema é que, para atingir o desempenho desejado, as células do cache se tornaram extremamente volumosas, de forma que a Intel optou por incluir apenas 8 KB.

Ou seja, na prática, o Pentium 4 possui apenas 16 KB de cache L1: 8 KB para dados e mais o equivalente a 8 KB para instruções, armazenadas de forma decodificada no trace cache. Por algum motivo, os projetistas da Intel decidiram que essa configuração seria a melhor em termos de desempenho.

Este diagrama mostra as áreas ocupadas pelo trace cache e pelo cache L2 dentro do die do Willamette. Veja que, apesar de armazenar um volume pequeno de dados, o trace cache ocupa uma área equivalente a pouco mais de 60% da ocupada pelos 256 KB de cache L2:


Die do Pentium 4 Willamette, com as áreas referentes ao
trace cache e ao cache L2 assinaladas

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X