Traditionally, Moore's Law drove improvements in single-core processors, but since the industry hit the limits of single-thread performance, there has been a shift towards multicore processors to exploit parallelism. A memory hierarchy with caches is crucial to avoid the latency issues otherwise given by sharing a memory between cores of a multi-core processor. However, while solving the latency problem, the addition of caches introduces cache coherence issues. In fact, maintaining cache coherence becomes a key challenge from both the design and verification standpoints. This thesis introduces a novel hybrid co-simulation framework to design and validate implementable cache coherent memory hierarchies described in SystemVerilog HDL. This novel approach applies the signal-level observability and increased accuracy of RTL simulators to the coherence protocol implementation, while the rest of the system is simulated by a system-level simulator. In particular, the proposed flow is implemented by leveraging the state-of-the-art gem5 and Verilator system-level and RTL-level simulators, respectively, interacting and synchronizing with each other by means of socket-based communication. As an example, to showcase the effectiveness of the proposed co-simulation framework, a coherent memory hierarchy supporting the MSI cache-coherence protocol on top of the AXI/ACE communication protocol is designed and integrated into the novel co-simulation flow. An extensive experimental campaign employing state-of-the-art benchmark suites produced two outputs: first, a performance evaluation of the implementable example MSI protocol against gem5 MI, MESI, and MOESI protocol models, and lastly, a comparison of the performance of the co-simulation flow against standard gem5 simulations.

Storicamente, i miglioramenti nei processori single-core sono stati pilotati dalla legge di Moore. Tuttavia, a causa del raggiungimento dei limiti prestazionali per singolo thread, l'industria ha effettuato una transizione verso i processori multicore, al fine di sfruttare il parallelismo. Una gerarchia di memoria con cache è cruciale per evitare i problemi di latenza che altrimenti si presenterebbero con una memoria direttamente condivisa tra i core di un processore multicore. Tuttavia, se da un lato l'aggiunta delle cache risolve il problema della latenza, dall'altro introduce problemi di coerenza della cache. Infatti, mantenere la coerenza tra le cache private diventa la principale sfida, nell'ambito sia della progettazione, sia della verifica. Questa tesi propone un flusso di co-simulazione per sviluppo e valutazione di protocolli di coerenza descritti in SystemVerilog, sfruttando l'osservabilità a livello di segnale e la maggiore accuratezza dei simulatori RTL per l'implementazione del protocollo di coerenza, mentre il resto del sistema è simulato da un simulatore di tipo full-system. In particolare, il flusso proposto è implementato sfruttando i simulatori allo stato dell'arte gem5 e Verilator, rispettivamente operanti ai livelli di sistema e RTL, che interagiscono tra loro e si mantengono sincronizzati attraverso una comunicazione basata su socket. Al fine di dimostrare l'efficacia dal framework di co-simulazione presentato, si propone come esempio, una rete di interconnessione coerente descritta in SystemVerilog, sintetizzabile e implementabile, con controllore di cache di primo livello che supporta un protocollo di coerenza MSI. Infine, un'ampia campagna sperimentale, che utilizza applicazioni provenienti da suite di benchmark dallo stato dell'arte, permette di valutare le prestazioni del protocollo MSI proposto rispetto ai modelli di protocollo MI, MESI e MOESI di gem5; inoltre permette di confrontare le prestazioni del flusso di co-simulazione rispetto alle simulazioni standard di gem5.

A full-system co-simulation framework to design and validate cache coherence protocols

GUARISCO, ADRIANO
2023/2024

Abstract

Traditionally, Moore's Law drove improvements in single-core processors, but since the industry hit the limits of single-thread performance, there has been a shift towards multicore processors to exploit parallelism. A memory hierarchy with caches is crucial to avoid the latency issues otherwise given by sharing a memory between cores of a multi-core processor. However, while solving the latency problem, the addition of caches introduces cache coherence issues. In fact, maintaining cache coherence becomes a key challenge from both the design and verification standpoints. This thesis introduces a novel hybrid co-simulation framework to design and validate implementable cache coherent memory hierarchies described in SystemVerilog HDL. This novel approach applies the signal-level observability and increased accuracy of RTL simulators to the coherence protocol implementation, while the rest of the system is simulated by a system-level simulator. In particular, the proposed flow is implemented by leveraging the state-of-the-art gem5 and Verilator system-level and RTL-level simulators, respectively, interacting and synchronizing with each other by means of socket-based communication. As an example, to showcase the effectiveness of the proposed co-simulation framework, a coherent memory hierarchy supporting the MSI cache-coherence protocol on top of the AXI/ACE communication protocol is designed and integrated into the novel co-simulation flow. An extensive experimental campaign employing state-of-the-art benchmark suites produced two outputs: first, a performance evaluation of the implementable example MSI protocol against gem5 MI, MESI, and MOESI protocol models, and lastly, a comparison of the performance of the co-simulation flow against standard gem5 simulations.
GALIMBERTI, ANDREA
ING - Scuola di Ingegneria Industriale e dell'Informazione
10-ott-2024
2023/2024
Storicamente, i miglioramenti nei processori single-core sono stati pilotati dalla legge di Moore. Tuttavia, a causa del raggiungimento dei limiti prestazionali per singolo thread, l'industria ha effettuato una transizione verso i processori multicore, al fine di sfruttare il parallelismo. Una gerarchia di memoria con cache è cruciale per evitare i problemi di latenza che altrimenti si presenterebbero con una memoria direttamente condivisa tra i core di un processore multicore. Tuttavia, se da un lato l'aggiunta delle cache risolve il problema della latenza, dall'altro introduce problemi di coerenza della cache. Infatti, mantenere la coerenza tra le cache private diventa la principale sfida, nell'ambito sia della progettazione, sia della verifica. Questa tesi propone un flusso di co-simulazione per sviluppo e valutazione di protocolli di coerenza descritti in SystemVerilog, sfruttando l'osservabilità a livello di segnale e la maggiore accuratezza dei simulatori RTL per l'implementazione del protocollo di coerenza, mentre il resto del sistema è simulato da un simulatore di tipo full-system. In particolare, il flusso proposto è implementato sfruttando i simulatori allo stato dell'arte gem5 e Verilator, rispettivamente operanti ai livelli di sistema e RTL, che interagiscono tra loro e si mantengono sincronizzati attraverso una comunicazione basata su socket. Al fine di dimostrare l'efficacia dal framework di co-simulazione presentato, si propone come esempio, una rete di interconnessione coerente descritta in SystemVerilog, sintetizzabile e implementabile, con controllore di cache di primo livello che supporta un protocollo di coerenza MSI. Infine, un'ampia campagna sperimentale, che utilizza applicazioni provenienti da suite di benchmark dallo stato dell'arte, permette di valutare le prestazioni del protocollo MSI proposto rispetto ai modelli di protocollo MI, MESI e MOESI di gem5; inoltre permette di confrontare le prestazioni del flusso di co-simulazione rispetto alle simulazioni standard di gem5.
File allegati
File Dimensione Formato  
2024_10_Guarisco_Tesi_01.pdf

non accessibile

Descrizione: Testo tesi
Dimensione 4.3 MB
Formato Adobe PDF
4.3 MB Adobe PDF   Visualizza/Apri
2024_10_Guarisco_Executive Summary_02.pdf

non accessibile

Descrizione: Testo executive summary
Dimensione 1.05 MB
Formato Adobe PDF
1.05 MB Adobe PDF   Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/227118