问题标签 [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 回答
3167 浏览

android - 如何在 Android 中循环挂载 SD 卡映像,而不是在设备/模拟器上

我正在使用 ARM 全系统模拟器 (gem5) 来运行 Gingerbread。Gingerbread 图像是从 gem5 网站获得的,但它是一个标准。我感兴趣的大多数应用程序都需要一个 sdcard,所以我在我的 Android 映像的 init.rc 文件中添加了“mount -o loop /system/sdcard”。当我启动模拟系统时,应用程序抱怨系统上不存在 sdcard。Gingerbread 的挂载(来自工具箱或busybox)是否支持循环挂载图像文件?通过链接,Gingerbread 使用的busybox 版本似乎确实存在循环安装问题,但我无法确定这是否是唯一的问题。如果是这样,我如何替换 Android 文件系统上的 busybox 版本?我可以用更新的二进制文件替换busybox二进制文件吗?

0 投票
2 回答
703 浏览

embedded - 研究嵌入式系统中实时调度的工具

我使用 GEM5 软件模拟器,我的任务是根据我想要使用的调度算法更改 linux 内核。不,我想切换到嵌入式系统,我的目标是在 Altera FPGA(或任何平台)上进行实时信号处理。我是这个领域的新手,我在这个论坛上阅读了很多主题,但我仍然对以下几点感到困惑:

  • 是否所有嵌入式 RTOS 都支持多核,如果没有,哪个更合适?我听说过嵌入式 linux,但我没有一个明确的想法。
  • 关于我从这个论坛posix线程中学到的并行编程库更合适,因为它是细粒度的,我是对的吗?
  • 我对 FPGA 的选择不是最终的我想知道是否有其他用于嵌入式系统的软件工具模拟器,如 GEM5。
0 投票
2 回答
1251 浏览

c - Different read and write count using cachegrind and callgrind

I am doing some experiments with Cachegrind, Callgrind and Gem5. I noticed that a number of accesses were counted as read for cachegrind, as write for callgrind and for both read and write by gem5.

Let's take a very simple example:

I compile with:

gcc ex.c --static -o ex

So basically, according to the asm file, addl $1, -8(%rbp) is executed 100,000 times. Since it's both a read and a write, I was expecting 100k read and 100k write. However, cachegrind only counts them as read and callgrind only as write.

-

Could someone give me a reasonable explanation? Would I be correct to consider there are in fact ~100k reads and ~100k writes (i.e. 2 cache accesses for an addl)?

0 投票
1 回答
2406 浏览

computer-architecture - gem5 缓存统计信息 - 重置和转储

我正在尝试熟悉 gem5 模拟器。首先,我写了一个简单的程序

我用 util/m5/m5op_x86.S 编译它并使用...运行它

m5out/stats.txt 显示(除其他外)......

为什么一个空函数会显示如此多的命中和未命中?命中和未命中是由 libc 引起的吗?如果是这样,那么 m5_reset_stats() 和 m5_dump_stats() 的目的是什么?

0 投票
1 回答
548 浏览

linux - 卸载或创建多个 gem5 模拟

最近下载了gem5,用scons搭建了一个ARM架构的linux仿真。那行得通,现在我想做一个英特尔 x86 处理器。我是否需要删除现有的 ARM 模拟?如果不是,我可以同时维护两个不同的模拟吗?

0 投票
1 回答
1037 浏览

multicore - runing diffrent programs in multiocore architecture in gem5

I'm very new in gem5. I want to run 3 simple programs ,those are difference from the other; in multi core Architecture;like a system with 3 ARM core. I set number of cpu=2 and separate 2 programs by using ";" :test1;test2 I try this code for 2 ARM core

but I saw this error :

how can I do that??

0 投票
1 回答
1315 浏览

ubuntu - 编译期间使用了错误的 gcc 版本

我正在我大学的 hpc 上安装 gem5-gpu。

我已经加载了gcc/4.9.2模块,gcc -v也显示当前gcc版本是4.9.2

但是当我尝试构建gem5-gpu时,会出现错误:

为什么会有这样的冲突?

0 投票
1 回答
370 浏览

c - 编译 glibc 时 mipsel-gcc 产生的奇怪加载指令

我正在尝试在 Gem 5 模拟器中运行一小段 hello-world MIPS 程序。该程序使用 gcc 4.9.2 和 glibc 2.19(由 crosstool-ng 构建)编译,在 qemu 中运行良好,但在 gem5 中因页面错误(试图访问地址 0)而崩溃。

代码相当简单:

file ./test结果:

./test:ELF 32 位 LSB 可执行文件,MIPS,MIPS-I 版本 1,静态链接,用于 GNU/Linux 3.15.4,未剥离

在使用 gdb 进行一些调试后,我发现页面错误是由_dl_setup_stack_chk_guardglibc 中的函数触发的。它接受一个调用函数_dl_random传递的 void 指针__libc_start_main,它恰好是NULL. 但是,据我所知,这些函数从不取消引用指针,而是生成指令以从内存_dl_random指针指向的加载值。一些代码片段可能有助于理解:

在函数中(未设置__libc_start_main宏):THREAD_SET_STACK_GUARD

在函数中_dl_setup_stack_chk_guard(总是内联):

反汇编代码:

  • 0x4a1858 (0x4a0000 + 6232)是地址_dl_random
  • 0x4a1854 (0x4a0000 + 6228)是地址__stack_chk_guard

页面错误发生在0x00400eb8。我不太明白指令是如何生成的0x00400eb80x00400ebc有人可以解释一下吗?谢谢。

0 投票
3 回答
1541 浏览

gem5 - 在gem5模拟环境中测量时间的最佳方法是什么

我正在 gem5 模拟环境中运行一个小型矩阵乘法程序,并想测量程序的执行时间。该程序在 Fortran 中,我在矩阵乘法例程之前和之后使用 cpu_time 来获取时间。但是在 gem5 环境中还有其他更好的方法来测量时间吗?

0 投票
1 回答
202 浏览

gem5 - 如何在 Gem5 的 FS 模式下将统计打印与 m5ops 相关联?

在 SE 模式下,将每个统计打印与其对应的 m5op 关联起来要容易得多。

但是,在 FS 模式下,在同一个“stats.txt”文件中会打印多个(数十甚至数百个)统计信息;我们如何识别以下内容:

哪个统计打印对应于什么?

或者

至少,哪些统计打印是用户调用的 m5ops 的续集?