问题标签 [gem5]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
compilation - Gem5 中用于 ARM 处理器的指令访问
我使用 Gem5 来获取 ARM 处理器的指令访问。我使用 -marm 选项生成代码。
我相信使用此选项只会生成 32 位 ARM 指令。但结果如下所示:
我们可以看到,在 2000 年,使用了 _start+9,即 _start+7 的 2 个字节。所以我认为使用了 16 位指令。为什么会这样?为什么不是32位?
另外,有谁知道 _start+7.0 和 _start+7.1 是什么意思?为什么我有两条不同的指令具有相同的内存地址?
提前致谢。
arm - 为 arm-linux-gnueabi-g++ 的目标添加预取功能
以下代码行已arm-linux-gnueabi-g++-4.7
在 Ubuntu 主机上使用交叉编译。prfm
应该为特定行生成指令,但事实并非如此。
编译命令是:
在此处引用与该问题相关的gcc 参考中的一行:
如果目标不支持数据预取,如果地址表达式包含副作用但不生成其他代码并且 GCC 不发出警告,则计算地址表达式。
最后一条信息是交叉编译器是通过 using 安装的apt-get install
,而不是从头开始安装的。
问题来了:
如何简单地将数据预取支持添加到arm-linux-gnueabi-g++-4.7
交叉编译器的目标?
提前致谢
time - gem5模拟时间高
美好的一天每个
人我在这里遇到了一个真正的问题,花了将近几周的时间进行搜索,但没有结论
我试图在 gem5 上运行编译的 c++ 代码(二进制文件)来测量我制作的一些架构所消耗的时间使用python并进行比较以显示统计信息等。
使用需要花费少量时间才能完成的二进制文件看起来还可以,但是当二进制文件需要例如2秒时,模拟时间会非常
长解决这个问题,我需要尽可能优化模拟时间
我认为这很容易,但直到现在我才能弄清楚:\
我到目前为止达到的是:
- 在快速模式下构建 gem5,但这并没有给我在模拟时间上与优化模式的任何区别
- 但是在优化模式下使用快速转发。直到现在我才能做到这一点,
请提供任何帮助!
linux-kernel - 引导 gem5 X86 Ubuntu 全系统模拟
我需要在 gem5 上运行一个相对较新版本的 x86 磁盘映像。从本指南开始,我使用带有内核 v3.2.1 的 Ubuntu 12.04 磁盘映像,因为该组合适用于其他人。
过了一段时间,模拟器就挂了,请分享有关原因和可能解决方案的任何想法。谢谢!
您可以在下面的 m5term/telnet 上找到输出。之后,就是准备磁盘映像和内核以供参考的过程。
gem5终端的最后一部分(m5term/telnet):
以下是准备磁盘映像的完整故事:
内核编译步骤:
我下载了 v3.2.1,然后将 v2.6.28.4 的配置文件复制为 v3.2.1 的 .config 文件。点击 后make vmlinux
,为每个问题按回车键以获取默认值。
最后,命令是这样的:
任何关于错误消息或冻结原因/解决方案等的评论都会非常有帮助。提前致谢!
python - 如何在 gem5 中创建区域缓存
我试图修改 ~/src/mem/cache/ 脚本和代码来为 ARM 架构创建一个基于区域的缓存系统。到目前为止,我已经设法更改 SConscript,以便在 scons 中构建 cache.cc、cache.hh 和 Cache.py 的副本,但我不知道应该将内存访问者重定向到区域缓存的位置。换句话说:我希望能够根据他们的 mem 来指导一些 mem ref.s。访问 D-cacheA 的地址,其余的访问 D-cacheB,而缓存 A 和 B 相同。
c - C 应用程序如何使用 gem5 在多个内核上工作?
我是 gem5 模拟器的新手。我有一个 C 应用程序,我想让它运行得更快。所以我做的第一件事是使用循环展开和 SIMD 等多种技术对其进行优化。下一步,我打算让它在多核(X86和ARM)上工作,因为我必须使用 gem5 模拟器。
该应用程序用于 Radix4 计算。现在我已经成功地让它在X86和ARM的一个核心系统上运行,但是现在我想让它在 4、16、... 核心 X86 或 ARM 上运行。
有人可以给我一些提示或告诉我正确的方法吗?谢谢
这是关于应用程序的全球理念
c - Intel / ARM 内在函数等效性
我有一个使用 Intel 内在函数的 C 应用程序,例如:
现在,我正在尝试修改我的应用程序,以便使用名为Gem5的模拟器使其在 ARMv8 上运行。因此,我开始四处寻找 ARM 内在函数,并找到了这本手册ARM® NEON™ Intrinsics Reference
好吧,我找到了算术内在函数,但我对设置、存储和加载指令有点迷茫。
任何有 ARM 内在函数经验的人都可以告诉我正确的内在函数吗?
c - 将 m5ops.h 链接到 C 项目
我有一个 C 应用程序,它使用 Gem5 操作中的一个名为“m5_dumpreset_stats()”的函数。
所以,我做了以下,我包含了这个函数的头文件:
然后在我的源文件中我调用了这个函数:
要构建我的项目,我正在使用 Makefile :
我的第一个猜测是我必须使用 Makefile 链接库,但老实说,我不知道怎么做?有人可以告诉我正确的方法吗?
PS : m5_dumpreset_stats(delay,period): 以延迟纳秒保存和重置模拟统计到文件;每隔几纳秒重复一次。
arm - ARM Cortex A9 启动代码和中断设置
我尝试以裸机方式对 Cortex-A9 进行编程。我使用来自: https ://github.com/tukl-msd/gem5.bare-metal的“hello world”代码 。但是,我无法让中断工作。当我使用中断创建中断时,例如#47,我的软件不会跳转到 ISR 功能。我错过了什么?我需要做更多的初始化吗?
启动代码:
链接器脚本:
主 C 程序:
makefile - 从 Makefile 迁移到 CMake:-I
我们在 Makefile 中有一个旧的编译脚本,想开始使用 CMake。有谁知道 CMake 中 Makefile 中的 -I 相当于什么?
这是具体的行:“-I gem5-stable/util/m5 gem5-stable/util/m5/m5op_x86.S”