一、gem5的安装

hg clone http://repo.gem5.org/gem5

二、gem5依赖包的安装

  • sudo apt-get install python scons g++   (查看版本信息:xxx --version)

  • 将swig,m4,protobuf软件包解压到gem5文件夹下(因为我这边有就不用下载了(/≧▽≦)/)

a)swig

cd swig-3.0.12
./configure --without-pcre
make
sudo make install

ps:查看版本信息以验证安装情况

b)m4

cd m4-1.4.1
sudo make install

ps:查看版本信息以验证安装情况

c)protobuf

cd protobuf-2.5.0
./configure
make
sudo make install

protobuf的默认安装路径是/usr/local/lib,而/usr/local/lib不在Ubuntu体系默认的LD_LIBRARY_PATH中,所以在查看版本信息时会查询不到该lib编辑配置文件。解决办法如下:重新配置路径。

vim ~/.profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib保存并退出:wqsource ~/.profileps:查看版本信息以验证安装情况
  • zlib
sudo apt-get install zlib1g-dev查看版本信息使用:whereis zlib
  • sudo apt-get install libprotobuf-dev libgoogle-perftools-dev

三、集成

  • 首先,需要安装一款控制管理软件mercurial
sudo apt-get install mercurial
  • 然后,配置相应的.hgrc文件
[ui]
# Set the username you will commit code with
username=Your Name <your@email.address>
ssh = ssh -C
# Always use git diffs since they contain permission changes and rename info
[defaults]
qrefresh = --git
email = --git
diff = --git
[extensions]
# These are various extensions we find useful
# Mercurial Queues -- allows managing of changes as a series of patches
hgext.mq =
# PatchBomb -- send a series of changesets as e-mailed patches
hgext.patchbomb =
# External Diff tool (e.g. kdiff3, meld, vimdiff, etc)
hgext.extdiff =
# Fetch allows for a pull/update operation to be done with one command and automatically commits a merge changeset
hgext.fetch =
# Path to the style file for the M5 repository
# This file enforces our coding style requirements
style = /path/to/your/m5/util/style.py
[email]
method = smtp
from = Your Name <your@email.address>
[smtp]
host = your.smtp.server.here

ps:对username,style及from对应内容进行修改(我不会告诉你不改也是可以滴♪(^∇^*),不过这个文件必须( ̄TT ̄)有哦)

  • 接着,需下载nvmain并将其解压至gem5文件夹下,并在gem5文件夹下进行nvmain补丁安装,具体步骤如下:

a)hg qinit

b)hg qimport -f /path/to/nvmain/patches/gem5/nvmain2-gem5-XXXX+

(例如我的补丁包:root@lxb-virtual-machine:/home/gem5/nvmain/patches/gem5/nvmain2-gem5-11688+)

c)hg qpush

d)编译:scons EXTRAS=nvmain build/ALPHA/gem5.opt

e)SE测试:

./build/ALPHA/gem5.opt configs/example/se.py -c tests/test-progs/hello/bin/alpha/linux/hello --cpu-type=detailed
          --caches --l2cache --mem-type=NVMainMemory --nvmain-config=./nvmain/Config/PCM_ISSCC_2012_4GB.config



总结:

这算是我的第一篇博客,格式、内容搭配尚不协调,内容若有不正确、不完整之处,还请见谅\(^o^)/~。

写这篇文章是因为,网上虽然有很多博文,但总有些细节需要把控,希望大家可以少走弯路吧。总相信一句话:独学而无友,孤陋则寡闻。如若不嫌弃,可以一起学习交流喵(*^▽^*)

ps:如果引用我的博客也是很好滴,劳烦加引用哦,Thanks♪(・ω・)ノ

gem5集成nvmain相关推荐

  1. 在线安装gem5和nvmain集成gem5

    在线安装gem5并集成nvmain: 1 安装Mercurial 集成NVMain到GEM5中需要用到一个源代码控制管理工具:Mercurial apt-get install mercurial 2 ...

  2. Gem5和NVMain集成使用教程

    之前找了很多资料,按照教程试了之后发现仍然有错.弄了好久才搞定.现来分享一下流程和自己的总结. 先说流程: 1.注册bitbucket账号 NVMain的申请需要注册bitbucket账号.而这个账号 ...

  3. gem5和nvmain混合编译

    由于做混合内存,需要使用nvmain来做NVM的模拟,使用gem5做全系统的仿真,两者结合使用. 1.安装gem5 gem5的安装,包括相关依赖环境的安装见我的另外一篇博客:gem5的安装.编译及运行 ...

  4. Gem5与NVMain混合编译(一)

    gem5的安装与使用 1. 安装各类库文件(ubuntu) sudo apt-get install mercurial scons swig gcc m4 python python-dev lib ...

  5. 用nvmain配置gem5来模拟非易失内存

    NVMain是一个体系结构级的非易失内存模拟器,可以准确地模拟内存系统的时序和能耗.NVMain需要放在GEM5全系统模拟器中运行. 1 安装Mercurial 集成NVMain到GEM5中需要用到一 ...

  6. gem5+NVMain联合编译

    1.注册bitbucket账号 进入官网,注册即可,记住你的用户名及邮箱,在后面会用到. 2.获取NVMain使用权 打开https://bitbucket.org/mrp5060/nvmain/并登 ...

  7. 基准测试spec cpu2006

    最近在研究gem5,nvmain, 并将nvmain集成到gem5里面,然后用基准测试spec cpu2006进行测试.之前一直找不到基准测包,现在终于找到了,在此写下实验过程. 我的系统是ubunt ...

  8. 天人合一之毕设——准备阶段——3 HME仿真器

    毕设做的是异构内存方面的研究,需要在模拟器上仿真,目前已经实现的有很多,gem5.nvmain等等 无奈实验室师兄太牛自己设计了一款模拟器,我就直接用他的咯! 学名HME,一种轻量级的仿真器,gitu ...

  9. gem5+nvmain混合编译

    在已经安装编译完成gem5的基础上进行 如果还没有安装gem5转到https://blog.csdn.net/Roben_/article/details/109499569 先下载nvmain到ge ...

最新文章

  1. python list的复制
  2. Jscript 随记
  3. 射频识别技术漫谈(14)——S50与S70存取控制【worldsing笔记】
  4. 如何阻止子元素触发父元素的事件
  5. 【数据结构与算法】之深入解析“根据身高重建队列”的求解思路与算法示例
  6. linux文件系统、文件系统结构、虚拟文件系统
  7. YBTOJ:公共子串(KMP)
  8. Java面试题2019简书_2019最新Spring面试题大全含答案之Spring Beans(2019最全Spring超级葵花宝典)...
  9. 高德地图怎么搜索marker_2018-07-06 高德地图搜索定位,滑动地图显示周边信息,根据地址搜经...
  10. Kubernetes 1.9集群使用traefik发布服务
  11. OPPO或将于本月推出Find X2 英雄联盟 S10 限定版
  12. 【原创】告别恼人的水平滚动条——滚动条宽度到底是多少?
  13. 输出英文字母java数组_JAVA语言之通过生成随机数组来转化为字母进行输出的类...
  14. pix2pixHD总结
  15. python之面向对象反射和双下方法
  16. 微信小程序中基础入门
  17. 浅谈手机系统——iOS
  18. MySQL 表设计的经验准则
  19. SEO优化 - robots协议
  20. c语言指针near,C语言中 near指针和far指针

热门文章

  1. 先搞清楚荷、莲、芙蓉的区别
  2. 三五个人十来条枪 如何成为开发正规军(三十四)
  3. isset php 二维数组_php 一维数组按条件转换成二维数组
  4. 【强化学习】Asynchronous Advantage Actor-Critic(A3C)
  5. mapper文件报错:corresponds to your MySQL server version for the right syntax to use near ‘)VALUES( ‘
  6. AI在实体零售行业的应用场景
  7. 家用无盘服务器打游戏,开20台的电竞网咖酒店,无盘服务器用千兆网卡够用吗?...
  8. 解决windows下流氓软件的广告弹窗找不到关闭设置的问题
  9. 阿里云服务器配置如何选
  10. 《.NET并发编程实战》之 函数式并发基础