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

Slides:



Advertisements
Apresentações semelhantes
Organização de Computadores I
Advertisements

Arquitetura de Computadores
Arquitetura e organização de computadores.
Processadores AMD.
Autor: Salvador P. Gimenez
ARQUITETURAS RISC E CISC
MIPS MULTICICLO Fluxo de Dados e Controle
Intel Pentium 4 Giovanni Rizzo de Paiva - RA Matheus Tasso Perugini - RA Rafael Rodrigues Dias - RA MC722 - Projeto de Sistemas Computacionais.
Processador Intel Itanium
Daniel M. Aquino, Marcelo C. Perez, Thais A. B. Fernandes
Processador Pentium 4 MO401 – Arquitetura de Computadores I
Arquiteturas Superescalares
Paralelismo em nível de instrução: Arquiteturas VLIW Grupo 01: Júlia Martinez Perdigueiro ra Tatiane Baggio Borili ra
Técnicas de Predição de Desvios
CISC e RISC.
SSC114 Arquitetura de Computadores Pipeline - Predição de desvios
SSC144 Arquitetura de Computadores Introdução
Maria Aparecida Castro Livi
Mais sobre potência: As novas idéias CMP502 Profs. Luigi e Flávio.
Rganização de Computadores Melhorias de Desempenho com Pipelines - Parte B - Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de.
Rganização de Computadores Melhorias de Desempenho com Pipelines Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de Desempenho.
Estudo comparativo entre as arquiteturas Opteron e Itanium
Professor: Erivelto Tschoeke – UDESC/CEPLAN
Professor: Carlos Roberto da Silva Filho, M. Eng.
Sistemas Digitais Microprocessados
Processadores – Aula 3 Professor: André Luis Meneses Silva
Arquitetura de Computadores
Processadores – Aula 3 Professor: André Luis Meneses Silva
Prof. Felipe Ferreira de Oliveira
Fundamentos da Arquitetura de Computadores
Arquitetura de computadores
Sistemas Operacionais
Arquitetura de computadores
Organização e Arquitetura de Computadores
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Davi de Andrade Lima Castro RA:  A plataforma C6000: ◦ Ponto-fixo:  C62x  C64 / C64x+ ◦ Ponto-flutuante:  C67x / C67x+ ◦ Arquitetura VLIW:
Pet computação UFPE Aula de apoio aos feras: Arquitetura de Computadores.
Contextualização de Paralelismo em nível de instrução
Arquitetura de Computadores
Unidade Central De Processamento: Processador
ARQUITETURA DE COMPUTADORES II
POLIMIG Curso Técnico em Informática Disciplina: Hardware
Software Básico Nível ISA Capítulo 5 Mitsuo Takaki
Sistemas Operacionais
Organização e Arquitetura de Computadores
Unidade Central De Processamento: Processador
Bruno C. Bourbon Jarbas J. de O. Júnior {bcb, cin.ufpe.br
Tudo sobre o Processador
Parte 3 Seção de Dados e Unidade de Controle
Slides before 1st Section Divider
TRACE CACHE Mário Luiz Rodrigues Oliveira IC/UNICAMP JUNHO/2006.
Engenharia de Sistemas Embarcados Aula 5: Um Conjunto Básico de Ferramentas.
Introdução à Computação Componentes Básicos dos Computadores
Arquitetura de Computadores Processadores 2 Waldemiro Arruda.
O que devem fazer os Microprocessadores ?
Processadores.
Elementos de Informática
Afonso Ferreira Miguel
Arquitetura de Microcomputadores
Funcionamento interno do computador
Arquitetura de computadores
Arquitetura de computadores
ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções
ARQUITETURA DE VON NEUMANN
Introdução ao Processamento Vetorial
Pet computação UFPE Arquitetura Von Neumann. pet computação UFPE 1.Definição e tipos de arquitetura Quando falamos em arquitetura temos dois tipos a considerar:
 Evolução constante das linguagens de programação de alto nível (LAN) desde o Fortran (primeira LAN)  Surgimento de novos paradigmas como a OO, Orientação.
 Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:  Somar e subtrair  Mover um dado de um local de armazenamento.
Construção de Via de dados Trabalho Avaliativo do Primeiro Bimestre. Marcos André de Sena Silva.
Benchmarks: Dhrystone e Whetstone Matheus F. Stigger.
Transcrição da apresentação:

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

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

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.

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: tt Trace cache 1800tt Consulta a trace cache procurando 1800tt Legenda: Seqüência encontrada na trace cache, que entrega para o decodificador.

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

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.

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: 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 |8600 Acertos parciais