官网原文:gem5 Introduction
1、什么是gem5?
gem5是一个模块化离散事件驱动的计算机系统模拟平台。这表示:
1. gem5可以根据需求重排、参数化、扩展或替换;
2. 它以一系列离散事件模真时间的流逝;
3. 它用于以多种方式模拟一个或多个计算机系统;
4. 它不只是一个模拟器,它是一个允许用户使用预置组件建立自己的模拟系统的模拟器平台;
gem5由C++和Python共同完成,大部分组件满足BSD证书。可以在FS(full system)模式下模拟完整的系统,或在SE(syscall emulation)模式下由模拟器提供系统调用模拟用户空间程序。gem5支持:
ISA:Alpha, ARM, MIPS, Power, SPARC, 64位x86
CPU:两个简单的单CPI模型,乱序模型,顺序流水线模型
存储系统可以灵活构建cache以及crossbar。目前,Ruby模拟器与gem5集成,可以提供更为灵活的存储系统建模。
2、创造性的功能
gem5用于计算机体系结构研究,如果要添加新功能,gem5的模块化设计允许在不了解gem5全部机制的前提下修改特定的功能。
若添加了新的功能,请考虑回馈gem5为更多的人提供方便。
3、获取
gem5源码由Mercurial版本控制系统管理。可能感兴趣的库:
1. gem5 — 主库
2. gem5-stable — 与gem5的内容基本相同,通常建议使用“gem5”
3. encumbered — gem5的扩展库,使用更为严格的许可证。目前只含有SimpleScalar EIO路径格式的支持。
4. Linux-patches — linux补丁库,提升模拟效率。这些补丁为可选项,建议使用以降低模拟运行时间。
若刚开始使用gem5,你可能会需要Mercurial来获取gem5或gem5-stable库。
获取副本需要确认你的系统上安装了Mercurial并能够运行hg命令。随后使用hg clone 来创建自己的本地副本。使用URL http