什么是gem5?
gem5是一个模块化的离散事件驱动的计算机系统模拟器平台。这意味着:
- GEM5 的组件可以轻松重新排列、参数化、扩展或更换,以满足您的需求。
- 它将时间的流逝模拟为一系列离散事件。
- 它的预期用途是以各种方式模拟一个或多个计算机系统。
- 它不仅仅是一个模拟器;它是一个模拟器平台,可让您使用任意数量的预制组件来构建自己的模拟系统。
gem5 主要用 C++ 和 Python 编写,大多数组件都是在 BSD 风格的许可证下提供的。 它可以模拟一个完整的系统,其中设备和操作系统处于完整系统模式(FS 模式),或者仅用户空间程序,其中系统服务由模拟器在系统调用仿真模式(SE 模式)下直接提供。 对在 CPU 模型上执行 Alpha、ARM、MIPS、Power、SPARC、RISC-V 和 64 位 x86 二进制文件有不同级别的支持,包括两个简单的单个 CPI 模型、一个无序模型和一个按顺序流水线模型。 内存系统可以灵活地构建为缓存和横杆,也可以使用Ruby模拟器来构建,后者提供了更灵活的内存系统建模。
gem5 模拟器是用于计算机系统架构研究的模块化平台,包括系统级架构和处理器微架构。gem5 是一个社区主导的项目,采用开放式治理模式。
gem5 最初是为学术界的计算机体系结构研究而设计的,但它已经发展到学术界、工业界研究和教学的计算机系统设计中使用。
1.git仓库clone
&n