gem5

What are pseudo-instructions for in gem5?

▼魔方 西西 提交于 2021-02-05 08:17:04
问题 So, I was seeing how some simulations in gem5 are implemented, more specifically, I was having a look at PIMSim (https://github.com/vineodd/PIMSim). I saw they had implemented some pseudo-instructions for the x86 architecture. I have seen these pseudo-instructions are only used in full system mode. For that they have modified the following files: include/gem5/m5ops.h util/m5/m5op_x86.S src/arch/x86/isa/decoder/two_byte_opcodes.isa src/sim/pseudo_inst.hh(cc) I have understood what changes are

Could not build gem5 on a machine with anaconda: “lto1: fatal error: bytecode stream”

久未见 提交于 2021-01-29 02:39:50
问题 When I tried to build gem5 with command scons build/X86/gem5.opt -j12 , I received an error message saying lto1: fatal error: bytecode stream in file '/home/beihai/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.a' generated with LTO version 6.0 instead of the expected 8.1 I think it might be the problem of wrong gcc version. But I do not know how to fix it. My system is Kubuntu 20.04 By running gcc -v , I got the global gcc version gcc version 9.3.0 By running /home/beihai

Could not build gem5 on a machine with anaconda: “lto1: fatal error: bytecode stream”

对着背影说爱祢 提交于 2021-01-29 02:33:17
问题 When I tried to build gem5 with command scons build/X86/gem5.opt -j12 , I received an error message saying lto1: fatal error: bytecode stream in file '/home/beihai/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.a' generated with LTO version 6.0 instead of the expected 8.1 I think it might be the problem of wrong gcc version. But I do not know how to fix it. My system is Kubuntu 20.04 By running gcc -v , I got the global gcc version gcc version 9.3.0 By running /home/beihai

gem5 full system Linux boot fails with “Kernel panic - not syncing: VFS: Unable to mount root fs”

廉价感情. 提交于 2021-01-28 23:21:27
问题 I want to run arm's linux system in gem5's fs mode,I download related files from this address: http://www.gem5.org/documentation/general_docs/fullsystem/guest_binaries I was able to configure the correct file path, but finally got this output in the terminal2: [ 0.661620] No filesystem could mount root, tried: [ 0.661621] ext3 [ 0.661650] ext4`enter code here` [ 0.661663] ext2 [ 0.661676] vfat [ 0.661690] fuseblk [ 0.661703] [ 0.661728] Kernel panic - not syncing: VFS: Unable to mount root fs

gem5 full system Linux boot fails with “Kernel panic - not syncing: VFS: Unable to mount root fs”

旧巷老猫 提交于 2021-01-28 22:52:31
问题 I want to run arm's linux system in gem5's fs mode,I download related files from this address: http://www.gem5.org/documentation/general_docs/fullsystem/guest_binaries I was able to configure the correct file path, but finally got this output in the terminal2: [ 0.661620] No filesystem could mount root, tried: [ 0.661621] ext3 [ 0.661650] ext4`enter code here` [ 0.661663] ext2 [ 0.661676] vfat [ 0.661690] fuseblk [ 0.661703] [ 0.661728] Kernel panic - not syncing: VFS: Unable to mount root fs

schedBreak(<tick>) gdb debugging function not working

若如初见. 提交于 2021-01-28 21:15:00
问题 I am trying to create breakpoints and debug gem5 using gdb. I referred to http://www.gem5.org/Debugger_Based_Debugging. As in the official documentation in the above link, I tried `call schedBreak() but it doesn't work. the following are the full commands: ➜ test-gem5-x86 git:(master) ✗ gdb --args ./build/X86/gem5.opt configs/learning_gem5/part1/simple.py GNU gdb (Ubuntu 8.1-0ubuntu3) 8.1.0.20180409-git Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or

Viewing the parameters of the branch predictor in gem5

穿精又带淫゛_ 提交于 2021-01-28 13:41:44
问题 part question. First, how do I configure the size of a branch predictor? I can see that I can set the type using the se.py config script and the --bp-type argument. (In my case I'm setting it to LTAGE), but how do I change the size of the tables? And is there an easy way to see the total size of all tables? My second part, is looking at the code, I don't understand the LTAGE constructor: LTAGE::LTAGE(const LTAGEParams *params) : TAGE(params), loopPredictor(params->loop_predictor) { } The

Viewing the parameters of the branch predictor in gem5

不问归期 提交于 2021-01-28 13:39:12
问题 part question. First, how do I configure the size of a branch predictor? I can see that I can set the type using the se.py config script and the --bp-type argument. (In my case I'm setting it to LTAGE), but how do I change the size of the tables? And is there an easy way to see the total size of all tables? My second part, is looking at the code, I don't understand the LTAGE constructor: LTAGE::LTAGE(const LTAGEParams *params) : TAGE(params), loopPredictor(params->loop_predictor) { } The

Viewing the parameters of the branch predictor in gem5

橙三吉。 提交于 2021-01-28 13:37:19
问题 part question. First, how do I configure the size of a branch predictor? I can see that I can set the type using the se.py config script and the --bp-type argument. (In my case I'm setting it to LTAGE), but how do I change the size of the tables? And is there an easy way to see the total size of all tables? My second part, is looking at the code, I don't understand the LTAGE constructor: LTAGE::LTAGE(const LTAGEParams *params) : TAGE(params), loopPredictor(params->loop_predictor) { } The

What is the difference between the gem5 CPU models and which one is more accurate for my simulation?

陌路散爱 提交于 2021-01-27 19:05:56
问题 When running a simulation in gem5, I can select a CPU with fs.py --cpu-type . This option can also show a list of all CPU types if I use an invalid CPU type such as fs.py --cpu-type . What is the difference between those CPU types and which one should I choose for my experiment? Question inspired by: https://www.mail-archive.com/gem5-users@gem5.org/msg16976.html 回答1: An overview of the CPU types can be found at: https://cirosantilli.com/linux-kernel-module-cheat/#gem5-cpu-types In summary: