Execução Especulativa Conceitos, Princípios e Técnicas Patrícia Pilisson Côgo RA 041481 Campinas, Novembro/2005 Agenda • Introdução • Técnicas de Execução Especulativa − Especulação de Controle • Branch Prediction • Eager Execution • Disjoint Eager Execution − Especulação de Dados • Endereço • Valor • Tratamento de Exceções Introdução • Processadores com Pipeline • Paralelismo a Nível de Instrução • Dependências: − Controle − Dados Introdução • Execução Especulativa • Localidade Valor Tempo Espaço Técnicas de Execução Especulativa Especulação de Controle • Branch Prediction − Direção − Endereço Alvo • Eager Execution • Disjoint Eager Execution Especulação de Controle Fig.1 :Comparação entre técnicas de esp. de controle, extraída do trabalho de Augustus K. Uht e Vijay Sindagi Especulação de Dados • Predição de Endereços − Explora localidade temporal − MAP: Memory Address Prediction Fig.2 : Representação da Memory History Table, adaptada do trabalho de Gonzalez e Gonzalez Especulação de Dados •Predição de Valor −Explora localidade de valor Fig. 3: Localidade de Valor para Instruções de Load, extraída do trabalho de Lipasti e Shen Especulação de Dados • Predição de Valor Fig. 4: Localidade de valor para escrita em registradores, extraída do trabalho de Lipasti e Shen Especulação de Dados • Predição de Valor − Implementação em dois níveis: Fig.5: Unidade de Predição, extraída do trabalho de Lipasti e Shen Especulação de Dados • Predição de Valor Fig. 6: Unidade de Verificação e Correção extraída do trabalho de Lipasti e Shen Tratamento de Exceções • Garantir Funcionalidade • Métodos − Modelo de especulação restritivo − Modelo geral de especulação − Write-back Supression Dúvidas??