Lockstep Execution of gem5 and Spike for ISA-Level Verification

Esta tesis presenta un marco de co-simulación en lockstep entre los simuladores gem5 y Spike para la verificación de ejecuciones RISC-V a nivel de ISA. Se diseña e implementa un mecanismo para capturar el estado completo del núcleo (PC, registros enteros, registros de coma flotante, registros vector...

Descripción completa

Detalles Bibliográficos
Autor: Mata Porras, Alejandro
Tipo de recurso: tesis de maestría
Fecha de publicación:2025
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/452660
Acceso en línea:https://hdl.handle.net/2117/452660
Access Level:acceso abierto
Palabra clave:Computer architecture--Computer simulation
Computer systems – Verification
RISC microprocessors
RISC-V
gem5
Spike
lockstep co-simulation
ISA-level verification
RISC-V Vector (RVV)
core state snapshot
instantánea del estado del núcleo.
Arquitectura d'ordinadors--Simulació per ordinador
Sistemes informàtics
Microprocessadors RISC
Àrees temàtiques de la UPC::Informàtica::Arquitectura de computadors
Descripción
Sumario:Esta tesis presenta un marco de co-simulación en lockstep entre los simuladores gem5 y Spike para la verificación de ejecuciones RISC-V a nivel de ISA. Se diseña e implementa un mecanismo para capturar el estado completo del núcleo (PC, registros enteros, registros de coma flotante, registros vectoriales y CSRs) en cada commit de instrucción en gem5 y reenviarlo a Spike para su ejecución paso a paso. Actuando como modelo de referencia (golden model), Spike devuelve su propia instantánea, que luego se compara campo por campo con la de gem5 para detectar discrepancias funcionales. La infraestructura incluye modificaciones en gem5 (como nuevos eventos de commit, extracción de estado y filtrado de micro-operaciones), una capa externa de integración en C para controlar Spike, y un flujo de trabajo sistemático para investigar y corregir divergencias. El marco se valida utilizando un conjunto de pruebas basadas en intrínsecos RVV, y su sobrecarga de rendimiento se evalúa en tres modos de co-simulación: sin co-simulación, con co-simulación no verbosa y con registro completo del estado. Los resultados muestran que la verificación exhaustiva con registro completo incrementa el tiempo de simulación en un factor superior a 40, mientras que el modo no verboso ofrece un compromiso aceptable y mantiene las garantías de corrección funcional.