Previsão de desvios em arquiteturas multitarefas simultâneas - Dal Pizzol, Guilherme (2005)
A exploração do paralelismo no nível de instrução (ILP) em arquiteturas superescalares é limitada fortemente pelas dependências de controle, as quais são ocasionadas pelas instruções de desvio, e pelas dependências de dados. As arquiteturas SMT (Simultaneous MultiThreaded) buscam explorar um novo nível de paralelismo, denominado paralelismo no nível de tarefa (TLP), para buscar e executar instruções de diversas tarefas ao mesmo tempo. Com isso, enquanto uma tarefa está bloqueada por dependências de controle e de dados, outras tarefas podem continuar executando, mascarando assim as latências de previsões incorretas e de acessos à memória, usando mais eficientemente as unidades funcionais e demais recursos disponíveis. Contudo, o projeto dessas arquiteturas continua a esbarrar nos mesmos problemas associados ao uso de técnicas utilizadas para a exploração de ILP, como a previsão de devios. Além disso, essas arquiteturas trazem novos desafios, como a determinação da maneira mais eficiente de distribuição/compartilhamento de recursos entre as tarefas. Nesse trabalho será apresentada uma topologia para as tabelas de previsão de desvios em arquiteturas multitarefas simultâneas. Além disso, serão desenvolvidas duas análises complementares acerca de previsão de desvios: o impacto da taxa de acertos da previsão de desvios em arquiteturas com pipelines profundos e o impacto da taxa de acerto na previsão do alvo de um desvio. Entre as principais contribuições do trabalho pode-se citar a definição de uma estrutura particionada para as tabelas de previsão em arquiteturas SMT, aliando desempenho a um menor custo de implementação em uma arquitetura real. Além disso, é mostrado que a taxa de acerto da previsão de desvios tem um grande impacto no desempenho das arquiteturas SMT com pipelines profundos, bem como nas causas de bloqueio do estágio de busca quando utiliza-se cache de instruções bloqueantes.