Gem5 Simulator - Simulation Mechanism

Gem5 是針對電腦系統架構所設計的模擬器,目前主要用於系統層面相關的研究,可以模擬出執行所需的 cycle 數、記憶體 access 數、cache miss 等。其中 Gem5 將各組件模擬模組化,並透過 C++ 後端和 python 前端設置的方式來實作,除了可以快速地置換和配置想要的組件之外,也方便研究人員自行新增想要的新設計。這篇文章主要介紹 Gem5 模擬系統運行的機制和相關 configuration 初始化原理。

The gem5 simulator is a modular platform for computer-system architecture research, encompassing system-level architecture as well as processor microarchitecture.

Simulate Mechanism

Gem5 是一個 event-driven 模擬器,所以最主要是透過一個全域 (global) 的 mainEventQueue 和 main loop 來實現系統模擬,這也意味著所有的行為 (callback function) 都必須依照正確的順序加入到 event queue 中,最後的模擬結果才會如預期。