gem5源代码结构

实验要用到gem5模拟器,所以就简单看一下gem5源代码的结构。
源代码在这里
有需要的可以看官方文档

  • build-opts:主要是构建不同构建配置的默认设置文件。例如:X86
  • SConstruct:构建系统的一部分。作为build-opts目录
  • configs:用python编写的模拟配置脚本。目录中的文件提供一些基本的预打包功能来帮助简化编写配置,并提供了一些示例,可以直接使用,也可在自己的脚本中使用。
  • ext:gem5的依赖,并不是gem5的一部分。构建gem5所需的不太常见的外部软件包。
  • src:gem5的源代码
    • arch:ISA实现
      • generic:在其他ISA中使用的通用文件。
      • isa_parser.py:解析ISA描述的解析器.
      • ISA directories:与给定ISA关联的文件
        • OS directories:通常在SE模式下用于支持ISA/OS组合的代码。
        • isa:ISA描述文件。
    • base:可能对其他项目有用的常规数据结构。
      • loader:用于加载二进制文件和读取符号表的代码。
      • stats:用于保存统计信息并将数据写入文件或数据库的代码。
      • vnc:VNC支持
    • cpu:CPU模型
    • dev:设备模型
      • ISA directories:特定于给定ISA的设备模型
    • doxygen:Doxygen模板和输出
    • kern:特定于操作系统但与体系结构无关的代码(例如,数据结构的类型)。
      • OS directories:特定于给定模拟操作系统的代码。
    • mem:内存系统模型和基础架构
      • cache:在经典内存系统中实现缓存模型的代码。
      • ruby:实现ruby内存模型的代码。
      • protocol:Ruby协议定义。
      • slicc:slicc编译器。
    • python:用于配置和更高级别功能的Python代码。
    • sim:实现基本的基本模拟器功能的代码。
  • system:用于模拟系统的固件或引导程序之类的低级软件
    • alpha:Alpha控制台和palcode。
    • arm:一个简单的ARM引导程序。
  • tests:与gem5的回归测试有关的文件
    • configs: 用于测试的常规配置。
    • test-progs:每个ISA的“ Hello world”二进制文件,其他二进制文件则分别下载。
    • quick,long:快速和长期回归输入,参考输出以及测试特定的配置文件(按测试排列)。
  • util:实用程序脚本,程序和有用的文件不是gem5二进制文件的一部分,但在使用gem5时通常很有用。
gem5学习基础完整版,介绍了gem5环境的安装,以及一些基本概念。 gem5仿真器是用于计算机系统体系结构研究的模块化平台,涵盖系统级体系结构以及处理器微体系结构。1、多个可互换的CPU型号。 gem5提供了四种基于解释的CPU模型:简单的单CPI CPU; 有序CPU的详细模型和无序CPU的详细模型。 这些CPU模型使用通用的高级ISA描述。 此外,gem5具有基于KVM的CPU,该CPU使用虚拟化来加速仿真。 2、完全集成的GPU模型,可以执行真实计算机ISA,并支持与主机CPU共享的虚拟内存。 3、NoMali GPU模型。 gem5带有集成的NoMali GPU模型,该模型与Linux和Android GPU驱动程序堆栈兼容,因此无需进行软件渲染。 NoMali GPU不产生任何输出,但可以确保以CPU为中心的实验产生代表性的结果。 4、事件驱动的内存系统。 gem5具有详细的,事件驱动的内存系统,包括高速缓存,交叉开关,探听过滤器以及快速而准确的DRAM控制器模型,用于捕获当前和新兴内存的影响,例如内存。 LPDDR3 / 4/5,DDR3 / 4,GDDR5,HBM1 / 2/3,HMC,WideIO1 / 2。 可以灵活地布置组件,例如,以具有异构存储器的复杂的多级非均匀高速缓存层次结构来建模。 5、基于跟踪的CPU模型,可播放弹性跟踪,这些跟踪是由附着到乱序CPU模型的探针生成的依赖项和定时注释的跟踪。 跟踪CPU模型的重点是以快速,合理的方式而不是使用详细的CPU模型来实现内存系统(高速缓存层次结构,互连和主内存)的性能探索。 6、异构和异构多核。 可以将CPU模型和缓存组合到任意拓扑中,从而创建同构异构的多核系统。 MOESI侦听缓存一致性协议可保持缓存一致性。 7、多种ISA支持。 gem5将ISA语义与其CPU模型解耦,从而实现对多个ISA的有效支持。 目前gem5支持Alpha,ARM,SPARC,MIPS,POWER,RISC-V和x86 ISA。 有关更多信息,请参见支持的体系结构
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值