gem5全系统模拟

本文介绍了如何使用gem5进行全系统模拟,包括启动Linux内核,通过m5term连接访问。详细步骤涉及下载x86和alpha全系统文件,解压缩并配置环境变量,以及启动x86虚拟机和编译m5term。
摘要由CSDN通过智能技术生成

陆续写些关于新书《自己动手写CPU》的博客,本篇主要是讲解 gem5运行全系统模拟


使用gem5可以启动Linux内核,称为全系统模拟,启动之后,可以通过telent连接,进行访问,但四telent有时不稳定,gem5推荐使用m5term进行连接访问,整个步骤如下:

(假设gem5文件加压缩后,位于/root/gem5/gem5-stable-50ff05095970文件夹)

(1)打开终端,进入/root/gem5/gem5-stable-50ff05095970目录,使用如下命令得到x86的二进制虚拟机

scons build/X86/gem5.opt 
时间比较长,大约半个小时。

(2)在http://www.m5sim.org/Download下载x86对应的全系统文件,我用的下载地址是http://www.m5sim.org/dist/current/x86/x86-system.tar.bz2

下载后,在/root/gem5/gem5-stable-50ff05095970目录下新建一个文件夹fs-image,将下载的x86-system.tar.bz2复制到该文件夹下,并解压缩。

(3)在http://www.m5sim.org/Download下载alpha对应的全系统文件,我用的下载地址是http://www.m5sim.org/dist/current/m5_system_2.0b3.tar.bz2

下载后,解压缩,将其中disks目录下的linux-bigswap2.img复制到/root/gem5/gem5-stable-50ff05095970/fs-image/x86-system/disks目录下。

(4)修改/root/.bashrc,其中添加环境变量,如下:

export M5_PATH=$M5_PATH:/root/gem5/gem5-stable-50ff05095970/fs-image/x86-system
使用source /root/.bashrc,使得修改后的环境变量生效。

(5)在终端中进入/root/gem5/gem5-stable-50ff05095970目录,是如如下命令可以启动x86虚拟机:

build/X86/gem5.opt configs/example/fs.py --kernel=x86_64-vmlinux-2.6.22.9 --disk-image=linux-x86.img

会出现如下启动结果:

gem5 Simulator System.  http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.

gem5 compiled Jan 26 2015 13:54:19
gem5 started Jan 26 2015 18:19:14
gem5 executing on localhost.localdomain
command line: build/X86/gem5.opt configs/example/fs.py --kernel=x86_64-vmlinux-2.6.22.9 --disk-i
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。 有关更多信息,请参见支持的体系结构。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值