Ubuntu20.04搭建gem5并运行helloworld

叶卡捷琳堡 2024-06-23 11:37:07 阅读 67

文章目录

相关资料一、安装gem5二、运行helloworld

相关资料

gem5官网知乎-计算机体系结构-gem5模拟器入门gem5:Hello World Tutorial

一、安装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

从github或gitee上拷贝gem5代码

git clone https://gitee.com/koverlu/gem5.git

拷贝完成后,会多一个gem5的目录我们进入该目录,在执行对应的构建命令。这里构建的是X86架构,如果要构建ARM或其他架构同理

cd gem5scons build/X86/gem5.opt -j9

构建完成后,如果没有错误,说明构建成功。在gem5目录下会多一个名为build的目录。

二、运行helloworld

在安装完gem5的环境后,我们可以编写对应的helloworld程序进行测试。在根目录下(gem5目录下),新建一个名为hello-world.py的python文件。

from gem5.isas import ISAfrom gem5.components.boards.simple_board import SimpleBoardfrom gem5.components.cachehierarchies.classic.no_cache import NoCachefrom gem5.components.memory.single_channel import SingleChannelDDR3_1600from gem5.components.processors.simple_processor import SimpleProcessorfrom gem5.components.processors.cpu_types import CPUTypesfrom gem5.resources.resource import Resourcefrom gem5.simulate.simulator import Simulator# Obtain the components.cache_hierarchy = NoCache()memory = SingleChannelDDR3_1600("1GiB")processor = SimpleProcessor(cpu_type=CPUTypes.ATOMIC, isa=ISA.X86, num_cores=1)#Add them to the board.board = SimpleBoard( clk_freq="3GHz", processor=processor, memory=memory, cache_hierarchy=cache_hierarchy,)# Set the workload.binary = Resource("x86-hello64-static")board.set_se_binary_workload(binary)# Setup the Simulator and run the simulation.simulator = Simulator(board=board)simulator.run()

这个例子演示了一个最简单的环境,没有Cache,CPU直连主存。值得一提的是,官方文档上给的helloworld示例有问题,SimpleProcessor函数需要有三个参数,还需要指定ISA,在最上方也需要引入from gem5.isas import ISA。否则执行会报错。

使用如下命令运行该程序,如果输出Hello World!,则说明成功.

./build/X86/gem5.opt hello-world.py



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。