问题标签 [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.

0 投票
1 回答
329 浏览

compilation - Gem5 中用于 ARM 处理器的指令访问

我使用 Gem5 来获取 ARM 处理器的指令访问。我使用 -marm 选项生成代码。

我相信使用此选项只会生成 32 位 ARM 指令。但结果如下所示:

我们可以看到,在 2000 年,使用了 _start+9,即 _start+7 的 2 个字节。所以我认为使用了 16 位指令。为什么会这样?为什么不是32位?

另外,有谁知道 _start+7.0 和 _start+7.1 是什么意思?为什么我有两条不同的指令具有相同的内存地址?

提前致谢。

0 投票
1 回答
525 浏览

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交叉编译器的目标?

提前致谢

0 投票
2 回答
1080 浏览

time - gem5模拟时间高

美好的一天每个

人我在这里遇到了一个真正的问题,花了将近几周的时间进行搜索,但没有结论

我试图在 gem5 上运行编译的 c++ 代码(二进制文件)来测量我制作的一些架构所消耗的时间使用python并进行比较以显示统计信息等。

使用需要花费少量时间才能完成的二进制文件看起来还可以,但是当二进制文件需要例如2秒时,模拟时间会非常
长解决这个问题,我需要尽可能优化模拟时间
我认为这很容易,但直到现在我才能弄清楚:\

我到目前为止达到的是:
- 在快速模式下构建 gem5,但这并没有给我在模拟时间上与优化模式的任何区别
- 但是在优化模式下使用快速转发。直到现在我才能做到这一点,

请提供任何帮助!

0 投票
1 回答
2231 浏览

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,为每个问题按回车键以获取默认值。

最后,命令是这样的:

任何关于错误消息或冻结原因/解决方案等的评论都会非常有帮助。提前致谢!

0 投票
1 回答
227 浏览

python - 如何在 gem5 中创建区域缓存

我试图修改 ~/src/mem/cache/ 脚本和代码来为 ARM 架构创建一个基于区域的缓存系统。到目前为止,我已经设法更改 SConscript,以便在 scons 中构建 cache.cc、cache.hh 和 Cache.py 的副本,但我不知道应该将内存访问者重定向到区域缓存的位置。换句话说:我希望能够根据他们的 mem 来指导一些 mem ref.s。访问 D-cacheA 的地址,其余的访问 D-cacheB,而缓存 A 和 B 相同。

0 投票
2 回答
1322 浏览

c - C 应用程序如何使用 gem5 在多个内核上工作?

我是 gem5 模拟器的新手。我有一个 C 应用程序,我想让它运行得更快。所以我做的第一件事是使用循环展开和 SIMD 等多种技术对其进行优化。下一步,我打算让它在多核X86ARM)上工作,因为我必须使用 gem5 模拟器。

该应用程序用于 Radix4 计算。现在我已经成功地让它在X86ARM的一个核心系统上运行,但是现在我想让它在 4、16、... 核心 X86 或 ARM 上运行。

有人可以给我一些提示或告诉我正确的方法吗?谢谢

这是关于应用程序的全球理念

0 投票
1 回答
1833 浏览

c - Intel / ARM 内在函数等效性

我有一个使用 Intel 内在函数的 C 应用程序,例如:

现在,我正在尝试修改我的应用程序,以便使用名为Gem5的模拟器使其在 ARMv8 上运行。因此,我开始四处寻找 ARM 内在函数,并找到了这本手册ARM® NEON™ Intrinsics Reference

好吧,我找到了算术内在函数,但我对设置、存储和加载指令有点迷茫。

任何有 ARM 内在函数经验的人都可以告诉我正确的内在函数吗?

0 投票
3 回答
937 浏览

c - 将 m5ops.h 链接到 C 项目

我有一个 C 应用程序,它使用 Gem5 操作中的一个名为“m5_dumpreset_stats()”的函数。

所以,我做了以下,我包含了这个函数的头文件:

然后在我的源文件中我调用了这个函数:

要构建我的项目,我正在使用 Makefile :

我的第一个猜测是我必须使用 Makefile 链接库,但老实说,我不知道怎么做?有人可以告诉我正确的方法吗?

PS : m5_dumpreset_stats(delay,period): 以延迟纳秒保存和重置模拟统计到文件;每隔几纳秒重复一次。

0 投票
0 回答
1967 浏览

arm - ARM Cortex A9 启动代码和中断设置

我尝试以裸机方式对 Cortex-A9 进行编程。我使用来自: https ://github.com/tukl-msd/gem5.bare-metal的“hello world”代码 。但是,我无法让中断工作。当我使用中断创建中断时,例如#47,我的软件不会跳转到 ISR 功能。我错过了什么?我需要做更多的初始化吗?

启动代码:

链接器脚本:

主 C 程序:

0 投票
1 回答
905 浏览

makefile - 从 Makefile 迁移到 CMake:-I

我们在 Makefile 中有一个旧的编译脚本,想开始使用 CMake。有谁知道 CMake 中 Makefile 中的 -I 相当于什么?

这是具体的行:“-I gem5-stable/util/m5 gem5-stable/util/m5/m5op_x86.S”