【Gem5】获取构建教程

Gem5入门——系统仿真模拟器之构建gem5 Gem5教程——构建Gem5 阅读详情

gem5-tutorial-hpca-2023

  • 打开网址:
    github

  • 创建教程代码空空间
    “Code” -> “Codespaces” ->
    “Create Codespace on master”

GitHub Codespaces 是一个由 GitHub 提供的云端开发环境,它允许开发者在浏览器中直接进行代码的开发、编辑和测试,无需在本地计算机上安装任何开发工具或配置环境。这使得开发者可以更快速地开始一个新项目,同时也方便了团队成员之间的协作,因为每个人都可以在相同的云端环境中工作。

1 介绍

1.1 Gem5是什么

gem5架构模拟器提供了一个通过对底层硬件的行为进行建模来评估计算机系统的平台。它使研究人员能够模拟复杂计算机系统的性能和行为,包括CPU、内存系统和互连。这使得研究不同微架构和架构选择的性能以及不同工作负载的影响,而无需构建和测试真实系统。

在这里插入图片描述

Gem5是一个开源的计算机架构模拟器,它结合了系统级架构和处理器微架构。Gem5的前身是密歇根大学的m5项目和威斯康星大学的GEMS项目。这两个项目于2011年合并,形成了现在的Gem5。Gem5被广泛应用于学术界和工业界,支持多种指令集架构(ISA),包括Arm、x86、MIPS、Power、RISC-V、SPARC等,并且提供了多种CPU模型,如Simple CPU、Minor CPU、O3 CPU等。它是一个模块化、离散事件驱动的计算机系统模拟器平台,主要由C++和Python编写。Gem5支持两种主要模式:全系统模式(FS)和系统调用模式(SE),能够模拟完整的基于Linux的操作系统,或者模拟系统调用。此外,Gem5还包括了两种不同的缓存系统:Classic和Ruby 3。

1.2 Gem5可以用来做什么

  1. 教育用途
  2. Research
  3. Industrial R&D(Research and Development) 工业研发

1.3 获取并构建gem5

  1. Gem5开发语言
    模拟配置是用 Python 编写的,它与核心 CPP 模拟器交互。 在本教程中,我们将仅在 Python 级别进行工作。但是添加CPP代码对于扩展gem5的功能是必要的。
    在这里插入图片描述

  2. Gem5运行层次
    在这里插入图片描述

  • 主机host:正在使用的实际硬件
  • 模拟器Simulator:在主机上运行,向guest开放硬件
  • 访客guest:在Simulated硬件Hardware上运行的代码
    gem5 上运行的操作系统是 guest OS
    gem5模拟硬件
  • 模拟器的代码:运行本机执行/模拟guest代码
  • guest代码:(或基准、工作负载等)
    在 gem5 上运行,而不是在主机上运行。
  • 模拟器的性能: 在主机上运行模拟的时间 你感受到的Wallclock时间
  • 模拟得出的性能: 模拟器预测的时间 guest代码在模拟器上运行的时间
  1. 下载\构建 gem5
    1. 安装依赖
    > sudo apt install build-essential git m4 scons zlib1g zlib1g-dev \
    libprotobuf-dev protobuf-compiler libprotoc-dev libgoogle-perftools-dev \
    python3-dev python-is-python3 libboost-all-dev pkg-config libhdf5-dev libpng-dev
    
    //可能需要安装:
    > apt-get install libcapstone-dev
    
    1. 克隆源代码
    > git clone https://github.com/gem5/gem5.git
    > cd gem5
    //在编译时需要指定系统配置的缓存一致性协议:
    > scons build/X86/gem5.opt -j$(nproc) PROTOCOL=MESI_Three_Level
    
    1. 最后编译成功
    > ...
    > scons: done building targets
    
体系结构模拟器——gem5 Gem5 模拟器 阅读详情

相关推荐

gem5学习(9):构建gem5——Building gem5

构建gem5

共同学习,共同进步。 2375

GEM5入门学习1

本文详细描述了GEM5使用安装,以及简单系统脚本的构建。

u014756627的博客 5637

GEM5教程--gem5开始之旅(一)

GEM5系列教程--gem5开始之旅一、建立GEM5 GEM5模拟器是一个用于计算机系统结构研究的模块化平台,包含系统级别的结构以及处理器的微体系结构。读者若想详细的了解,请查看其官方文档GEM5文档 读者如果想要入门GEM5的话,可以参考Learning_GEM5这个网站,这里面有较为详细的教程,可以带读者从入门到精通。小编我对GEM5的入门学习也是从这个Learning_GEM5这个网站学习的...

qq_43381135的博客 3万+

CPU五级流水线

取指: 指令取指(InstrucTIon Fetch)是指将指令从存储器中读取出来的过程。 译码: 指令译码(InstrucTIon Decode)是指将存储器中取出的指令进行翻译的过程。经过译码之后得到指令需要的操作数寄存器索引,可以使用此索引从通用寄存器组(Register File,Regfile)中将操作数读出。 执行: 指令译码之后所需要进行的计算类型都已得知,并且已经从通用寄...

weixin_41458037的博客 1万+

GEM5教程--修改和拓展gem5(一)

GEM5教程--修改和拓展gem5(一)一、设置开发环境1、gen5样式准则([编码样式文档](http://old.gem5.org/Coding_Style.html)) 一、设置开发环境 1、gen5样式准则(编码样式文档) 修改任何开源项目时,请务必遵循项目的样式准则。 gem5样式的详细信息可以在如上网站找到。 ...

qq_43381135的博客 7566

GEM5官方教程全流程: part 1

gem5有一个很重要甚至离谱的事情是,和计算机领域很多东西一样,它变化很快,所以时间很重要: 这是2023年11月的官方教程。我跑了一遍并记录下来。 本文将教程的A部分入门完成了,下一步是B部分修改和扩展,再下一步是C部分ruby缓存一致性。

更新一些计算机体系架构NoC,GEM5, AXI4,还有machine learning 的日常 4510

gem5标准库概述

组件包的核心是电路板的概念。例如,存储器设备和处理器可以被添加到板,其中板负责通信,而假设存储器或处理器符合已知的API,则存储器或处理器的设计者不必考虑这一点。与编程语言中的标准库类似,gem5标准库旨在为gem5的用户提供常用的组件、特性和功能,以提高他们的生产力。用户可以在其 Python 配置文件中指定需要特定的 gem5 资源,并且在运行时,该包将检查主机系统上是否有本地副本,如果没有,则下载它。在 gem5 的上下文中,资源是在模拟中或由模拟使用的东西,但不直接用于构建要模拟的系统。

qq_46264636的博客 883

GEM5教程--修改和拓展gem5(二)

GEM5教程--修改和拓展gem5(二)三、调试GEM51、使用调试标志(debug flags)2、添加一个新的调试标志 三、调试GEM5 gem5通过调试标志提供对printf样式的代码跟踪/调试的支持。 这些标志允许每个组件具有许多调试打印语句,而无需同时启用所有这些语句。 运行gem5时,您可以从命令行指定要启用的调试标志。 1、使用调试标志(debug flags) (1)例如,运行“创...

qq_43381135的博客 5113

【Gem5】入门准备和新手教程

学习Gem5的过程中,发现官网很多东西过时了,而且learning gem5网站给的一些代码有语法错误,因此在此记录学习过程。

hunterlxt的博客 2万+

RISCV gem5 FS(Full System)

RISC-V gem5 FS 本文记录了根据最新发布的RISCV 在gem5 上配置full system全系统模拟的方法,从配置环境到运行脚本的全过程,其中包含全部配置代码以及部分重要步骤的截图,部分体会心得。

qq_39473674的博客 5655

GEM5教程--修改和拓展gem5(四)

GEM5教程--修改和拓展gem5(四)六、在内存系统中创建SimObjects1、gem5主、从端口2、数据包3、端口接口4、简单内存对象示例 六、在内存系统中创建SimObjects 在这个部分中,我们将创建一个位于CPU和内存总线之间的简单内存对象。在下面的部分中中,我们将使用这个简单的内存对象,并为其添加一些逻辑,使其成为一个非常简单的阻塞单处理器缓存。 1、gem5主、从端口 在深入研究...

qq_43381135的博客 5964

GEM5教程: 使用 gem5 运行 PARSEC 基准测试

使用 gem5 运行 PARSEC 基准测试。full system 全系统模拟,包括gem5模拟一个计算机架构运行ubuntu,在gem5模拟的ubuntu里运行parsec基准测试,并且将模拟机的运行结果和performance记录下来。 具体内容:本文是官方PARSEC教程的具体执行实现与踩坑,并且附上细节诠释与代码解读。

更新一些计算机体系架构NoC,GEM5, AXI4,还有machine learning 的日常 4422

gem5学习(3):在gem5中创建简单的类——Creating a very simple SimObject

在gem5中创建简单的类

共同学习,共同进步。 1581

gem5学习(14):将gem5扩展到ARM——Extending gem5 for ARM

将gem5扩展到ARM

共同学习,共同进步。 2267

gem5教程第一章 部署gem5(实测可跑通)

本章详细介绍了如何设置gem5开发环境和构建gem5。

qq_20388971的博客 1104

GEM5教程–gem5开始之旅(一)

GEM5教程–gem5开始之旅(一)一、建立GEM51、GEM5的环境要求2、获取GEM5源代码3、第一个GEM5的建立二、创建一个简单的配置脚本1、GEM5的配置文件2、创建一个配置文件3、运行GEM54、总结GEM5系列教程索引 GEM5模拟器是一个用于计算机系统结构研究的模块化平台,包含系统级别的结构以及处理器的微体系结构。读者若想详细的了解,请查看其官方文档GEM5文档 读者如果想要入门GEM5的话,可以参考Learning_GEM5这个网站,这里面有较为详细的教程,可以带读者从入门到精通。小编我对GEM5的入门学习也是从这个Learning_GEM5这个网站学习的,接下来的系列教程,

GEM5教程--gem5开始之旅(二)

GEM5系列教程--GEM5开始之旅(2)

qq_43381135的博客 9636

沧小海深入剖析xilinx的GTP/GTX核,掌握高速串行收发机制——第六章 接收端结构及功能说明

总目录在这哦~ https://blog.youkuaiyun.com/z123canghai/article/details/107700878 第六章 接收端结构及功能说明 子目录 6.1 RX的模拟前端 6.2 RX的OOB信号 6.3 RX的均衡器 6.4 RX的CDR 时钟数据恢复 6.5 RX时钟输出结构 6.6 RX 的极性控制 6.7 RX 的PRBS 6.8 Rx字节、字的对齐功能 6.9 Rx接收弹性缓冲区 6.10 Rx的时钟纠正 6.11 Rx接收通道绑定 6...

滄海的博客 1万+

learning_gem5 part1_01 构建 gem5

本章节详细介绍了如何搭建 gem5 开发环境并进行构建。

eloudy的专栏 710

Linux yum源配置以及yum命令讲解

前面为大家介绍了RPM二进制包安装软件,RPM包安装的最大的缺点也提到过,就是依赖性太强,一旦遇到依赖问题,则需要我们手动解决包之间具有依赖性的问题,今天为大家介绍一种可自动解决包之间依赖关系的安装方式:yum。 yum 全称“Yellow dog Updater, Modified”,是一个专门为了解决包的依赖关系而存在的软件包管理器。就好像 Windows 系统上我们通常可以通过各种软件管家实现软件的一键安装、升级和卸载,yum就是Linux 系统中的一键安装工具。yum 解决依赖关系的基本逻辑是:yu

九派Linux的博客 2283

基于STM32L4XX 、HAL库的TMP144YFFR数字温度传感器驱动应用C语言程序设计

define TMP144_ADDRESS 0x00 // 默认为全局地址,用于单器件或MDA命令。#define TMP144_CMD_READ_TEMP 0x00 // 读取温度寄存器命令。if (temp_raw & 0x800) { // 判断第11位(符号位)

PP_Cottage的博客 91
上一篇: 【DAC‘ 2022】Kite: A Family of Heterogeneous Interposer Topologies
下一篇: 【NoC片上网络 On-Chip Network】第五章 流控制
正在輸入......
博客等级 码龄7年 637粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

正在輸入......

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值