前言
最近由于工作需要,我开始学习 [gem5](gem5: The gem5 simulator system) 模拟器。gem5 模拟器是一款模块化的计算机系统架构平台,可用于研究系统级架构、处理器微架构。gem5 是一个开源平台,最初是为学术界的计算机体系结构研究而构想的,目前已经发展为学术界、工业研究和教学中的计算机系统设计。
根据 gem5 的 [paper](can11_gem5.pdf (wisc.edu)),gem5 诞生于 [M5](IEEE Xplore Full-Text PDF:) (CPU仿真框架) 和 [GEMS](untitled (wisc.edu)) (内存时序仿真器) 两者的合并。该项目是许多学术和工业机构共同努力的结果,包括 AMD、ARM、HP、MIPS、普林斯顿大学、麻省理工学院以及密歇根大学、德克萨斯大学和威斯康星大学。在过去的十年中,M5 和 GEMS 已在数百种出版物中使用,并已被下载数万次。 gem5 项目上的高水平协作,再加上组件部分的先前成功和类似 BSD 的自由许可证,使 gem5 成为一个有价值的全系统仿真工具。
基于gem5,我将深入探讨学习系统级架构、处理器微架构的实现。
gem5 目录结构
linux查看项目的一级目录: `tree -L 1`
.
├── build
├── build_opts
├── build_tools
├── CODE-OF-CONDUCT.md
├── configs
├── CONTRIBUTING.md
├── COPYING
├── ext
├── include
├── KCONFIG.md
├── LICENSE
├── m5out
├── MAINTAINERS.yaml
├── optional-requirements.txt
├── pyproject.toml
├── README.md
├── RELEASE-NOTES.md
├── requirements.txt
├── SConstruct
├── site_scons
├── src
├── system
├── TESTING.md
├── tests
└── util
12 directories, 13 files