Predicting multiple streams per cycle

The next stream predictor is an accurate branch predictor that provides stream level sequencing. Every stream prediction contains a full stream of instructions, that is, a sequence of instructions from the target of a taken branch to the next taken branch, potentially containing multiple basic block...

Descripción completa

Detalles Bibliográficos
Autores: Santana Jaria, Oliverio J., Ramírez Bellido, Alejandro, Valero Cortés, Mateo|||0000-0003-2917-2482
Tipo de recurso: informe técnico
Fecha de publicación:2005
País:España
Institución:Universitat Politècnica de Catalunya (UPC)
Repositorio:UPCommons. Portal del coneixement obert de la UPC
Idioma:inglés
OAI Identifier:oai:upcommons.upc.edu:2117/106641
Acceso en línea:https://hdl.handle.net/2117/106641
Access Level:acceso abierto
Palabra clave:Microprocessors
Parallel processing (Electronic computers)
Microprocessadors
Processament en paral·lel (Ordinadors)
Àrees temàtiques de la UPC::Informàtica::Arquitectura de computadors
Descripción
Sumario:The next stream predictor is an accurate branch predictor that provides stream level sequencing. Every stream prediction contains a full stream of instructions, that is, a sequence of instructions from the target of a taken branch to the next taken branch, potentially containing multiple basic blocks. The long size of instruction streams makes it possible for the stream predictor to provide high fetch bandwidth and to tolerate the prediction table access latency. Therefore, an excellent way for improving the behavior of the next stream predictor is to enlarge instruction streams. In this paper, we provide a comprehensive analysis of dynamic instruction streams, showing that focusing on particular kinds of stream is not a good strategy due to Amdahl's law. Consequently, we propose the multiple stream predictor, a novel mechanism that deals with all kinds of streams by combining single streams into long virtual streams. We show that our multiple stream predictor is able to tolerate the prediction table access latency without requiring the complexity caused by additional hardware mechanisms like prediction overriding, also reducing the overall branch predictor energy consumption.