A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Trace caches: alternativa inteligente à cache de instruções Danilo Lacerda RA: 008448.

Apresentações semelhantes


Apresentação em tema: "Trace caches: alternativa inteligente à cache de instruções Danilo Lacerda RA: 008448."— Transcrição da apresentação:

1 Trace caches: alternativa inteligente à cache de instruções Danilo Lacerda RA: 008448

2 BenchmarkBranch tomados %Tam. médio do bloco básico Número de instruções entre branch tomados Eqntott86.2%4.204.87 Espresso63.8%4.246.65 Xlisp64.7%4.346.70 Gcc67.6%4.656.88 Sc70.2%4.716.71 Compress60.9%5.398.85 Benchmark SPEC92 para inteiros Um bloco básico é uma seqüência de instruções e apenas a última instrução é um desvio

3 Trace caches Em computadores superescalares temos um alto grau de paralelismo, unidades funcionais são duplicadas e é possível a execução paralela de instruções. Aumentando a quantidade de instruções decodificadas por ciclo podemos aumentar o desempenho. Assim, além de tentarmos preencher unidades funcionais ou recursos ociosos, também temos mais instruções para procurar por paralelismo. Temos duas alternativas: Aumentar o tamanho do bloco básico, diminuindo a freqüência de desvios. Ou então melhorar os algoritmos de predição de branch por ciclo, de modo que podemos decodificar em um ciclo vários blocos básicos como se fossem em seqüência. A trace cache captura e armazena seqüências de instruções (traces) durante o fetch das instruções, caracterizadas pelo endereço da primeira instrução e a saída do preditor de branch. Durante a execução se estas seqüências se repetirem o fetch da instrução é feito da trace cache.

4 Fluxo de instruções carregadas Bloco Básico Branch tomado Branch não tomado PC: 1800 tntn tt Trace cache 1800tt Adiciona a nova seqüência à trace cache Predição de branch:... 1800 tt Trace cache 1800tt Consulta a trace cache procurando 1800tt Legenda: Seqüência encontrada na trace cache, que entrega para o decodificador.

5 Trace caches no Pentium 4 Substitue a cache de instrução convencional, arquitetura NetBurst, pela trace cache. Foi essencial para conseguirem aumentar a freqüência dos processadores, já que as PLAs (programmable logic arrays) que faziam a decodificação de instruções IA-32 em micro-operações não conseguiu suprir a alta demanda por instruções por ciclo. Armazena na trace cache micro-operações e não instruções IA-32. A trace cache armazena até 12000 micro-operações, e tem auxilio de uma ROM para decodificar instruções IA- 32 mais complexas, ou seja, são representadas por um grande número de micro-operações.

6 Desempenho Na proposta original de Rotenberg este simulou o comportamente das trace caches e obteve um ganho médio de 28% comparado com outros mecanismos de fetch de instruções. No mestrado de Sung, este analisou que alguns parâmetros e algoritmos da trace cache podiam ser otimizados e obteve um ganho médio de desempenho de 67,9% para benchmarks de inteiros e 16,3% para benchmarks de ponto- flutuante.

7 Fluxo de instruções carregadas Bloco Básico Branch tomado Branch não tomado PC: 1800 tntn tt Adiciona a nova seqüência à trace cache: 1800tt Predição de branch:... 1800 tn Trace cache 1800tt Consulta a trace cache procurando 1800tn Legenda: Seqüência parcial encontrada na trace cache, que entrega para o decodificador as instruções dos 2 primeiros blocos básicos. 40008600 4000|8600 Acertos parciais


Carregar ppt "Trace caches: alternativa inteligente à cache de instruções Danilo Lacerda RA: 008448."

Apresentações semelhantes


Anúncios Google