14216:188a91ee11c1 |
02-Sep-2019 |
Daniel R. Carvalho <odanrc@yahoo.com.br> |
configs: Fix replacement policy assignment
Commit d207e9ccee411877fdeac80bb68a27900560f50f reworked the tags to split the replacement policies, however the name of the variable that contains the replacement policy changed between patch revisions, which was not updated accordingly in the configs files.
Change-Id: I2072529e2c7d54197c371bcaa323bfd9f34ec3ba Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/20548 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> Tested-by: kokoro <noreply+kokoro@google.com> |
14062:21848204c189 |
19-Jun-2019 |
Giacomo Travaglini <giacomo.travaglini@arm.com> |
configs: Fix NULL dram-lowp regressions
The problem arises since there are some scripts (like NULL dram regressions) which are making use of MemConfig.py without using Opions.py so they won't have the new enable-dram-powerdown option
Change-Id: Id9769cce2e8a25b57da76f07eeebd279a6e00440 Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19268 Reviewed-by: Matthew Poremba <matthew.poremba@amd.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> Tested-by: kokoro <noreply+kokoro@google.com> |
14038:8ba13d8b7810 |
01-May-2019 |
Matthew Poremba <matthew.poremba@amd.com> |
mem: Option to toggle DRAM low-power states
Adding an option to enable DRAM low-power states. The low power states can have a significant impact on application performance (sim_ticks) on the order of 2-3x, especially for compute-gpu apps. The options allows for it to easily be enabled/disabled to compare performance numbers. The option is disabled by default.
Change-Id: Ib9bddbb792a1a6a4afb5339003472ff8f00a5859 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18548 Reviewed-by: Wendy Elsasser <wendy.elsasser@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> Tested-by: kokoro <noreply+kokoro@google.com> |
13980:62a28c423e91 |
16-May-2019 |
Jason Lowe-Power <jason@lowepower.com> |
configs: Generalize FileSystemConfig for non se.py
This patch updates the FileSystemConfig so it works with more kinds of config scripts (e.g., the Learning gem5 scripts).
There are 4 main changes: - Added system as a parameter to the config_filesystem function so the function can search the system for the number of CPUs instead of relying on options from Options.py - Instead of calling redirect_paths everywhere config_filesystem is used, now it is implicitly called. - Cleaned up the Ruby scripts a bit to remove redundant calls to config_filesystem - Added a config_filesystem call to the Ruby Learning gem5 script (currently the only Learning gem5 script that requires it).
In the future, I think it would be better to move the config_filesystem call into simulate.py, probably into the instantiate function. I tried to use the per-CPU configuration parameters instead of options from Options.py, but that's not possible until after the SimObject params have been finalized in instantiate.
Change-Id: Ie6501a7435cfb3ac9d2b45be3722388b34063b1e Signed-off-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18848 Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br> Tested-by: kokoro <noreply+kokoro@google.com> |
13967:755cdc26b48d |
14-May-2019 |
Javier Bueno <javier.bueno@metempsy.com> |
configs: Fix duplicate branchPred reference in Simulation.py
Change-Id: I5ef5fb7ebc5fc2a4776adc43643c4df27efc341c Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18769 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
13958:1945df12e5b0 |
07-Jan-2019 |
Jairo Balart <jairo.balart@metempsy.com> |
config: add an option to list and select indirect branch predictor
Change-Id: I9a855d36de7d95b7785ff8a897899037cea6a3d8 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/15320 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Tested-by: kokoro <noreply+kokoro@google.com> |
13952:197e72db5ab0 |
09-May-2019 |
Brandon Potter <brandon.potter@amd.com> |
config, sim-se: bugfix for 54c77aa0
The NULL ISA does not have some members for the options class which are referenced by the FileSystemConfig code.
Create default values for the members so that the simulation does not fail during the configuration phase.
Change-Id: Ie65bf0e5550c964eae42d1df4c36c2c5bc4ea703 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18748 Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br> Maintainer: Jason Lowe-Power <jason@lowepower.com> Maintainer: Brandon Potter <Brandon.Potter@amd.com> Tested-by: kokoro <noreply+kokoro@google.com> |
13885:d10ea5e56cb0 |
18-Apr-2018 |
David Hashe <david.hashe@amd.com> |
configs: faux-filesystem fix w/ ruby in se mode
These changes are needed so that the config scripts can report cache hierarchy information to the faux filesystem.
This is useful for the ROCm runtime when it reads psuedofiles from the host filesytem from "/proc".
Change-Id: Iad3e6c088d47c9b93979f584de748367eae8259b Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/12121 Reviewed-by: Brandon Potter <Brandon.Potter@amd.com> Maintainer: Brandon Potter <Brandon.Potter@amd.com> Tested-by: kokoro <noreply+kokoro@google.com> |
13883:f44e21d3aaa7 |
18-Apr-2018 |
David Hashe <david.hashe@amd.com> |
sim-se: add a faux-filesystem
This change introduces the concept of a faux-filesystem. The faux-filesystem creates a directory structure in m5out (or whatever output dir the user specifies) where system calls may be redirected.
This is useful to avoid non-determinism when reading files with varying path names (e.g., variations from run-to-run if the simulation is scheduled on a cluster where paths may change).
Also, this changeset allows circumventing host pseudofiles which have information specific to the host processor (such as cache hierarchy or processor information). Bypassing host pseudofiles can be useful when executing runtimes in the absence of an operating system kernel since runtimes may try to query standard files (i.e. /proc or /sys) which are not relevant to an application executing in syscall emulation mode.
Change-Id: I90821b3b403168b904a662fa98b85def1628621c Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/12119 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> Tested-by: kokoro <noreply+kokoro@google.com> |
13876:1643f200987c |
27-Mar-2019 |
Javier Bueno <javier.bueno@metempsy.com> |
config: Add flag options to set the hardware prefetchers to use
This patch adds three flag options to set the prefetcher class of the L1i cache, L1d cache and L2 cache.
Change-Id: I310fcd9c49f9554d98cd565a32bdb96a3e165486 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17709 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Tested-by: kokoro <noreply+kokoro@google.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
13811:88827de8fced |
26-Mar-2019 |
Javier Bueno <javier.bueno@metempsy.com> |
config: Use the corresponding HPI Caches when using the HPI cpu
The HPI cpu comes with specific cache definitions, but they are ignored when using this cpu. This patch solves this in the same way it is done for the O3_ARM_v7a cpu.
Change-Id: Iabf763291099d9508e3c5eac00b1e233cb38ce6b Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17708 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
13806:e2ca4f169e82 |
23-Mar-2019 |
Javier Bueno <javier.bueno@metempsy.com> |
configs: fix class reference in CacheConfigs
One reference was not properly updated when changing to absolute import paths
Change-Id: Idf330487d5d08d92ebb4489f16d75429f882bd7a Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17541 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
13803:32c104f40e57 |
25-Jul-2018 |
Daniel R. Carvalho <odanrc@yahoo.com.br> |
configs: Remove default kernel value from system creation
Kernel was being set using a placeholder and then assigned the correct value. This would generate the following error if the placeholder file did not exist: 'IOError: Can't find file <placeholder> on path'
This patch follows the same directions of commit 12eca7ac04ae1ba559bf322b5c625513929d369d and removes the default values, forcing the user to properly configure the kernel.
Change-Id: I0eb45d12eda6b6efe9a3fe118996b640844a7b34 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/11850 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
13774:a1be2a0c55f2 |
25-Feb-2019 |
Andreas Sandberg <andreas.sandberg@arm.com> |
configs: Use absolute import paths
Use absoluate import paths to be Python 3 compatible. This also imports absolute_import from __future__ to ensure that Python 2.7 behaves the same way as Python 3.
Change-Id: Ica06ed95814e9cd3e768b3e1785075e36f6e56d0 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/16708 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> |
13731:67cd980cb20f |
26-Jan-2019 |
Andreas Sandberg <andreas.sandberg@arm.com> |
configs: Fix Python 3 iterator and exec compatibility issues
Python 2.7 used to return lists for operations such as map and range, this has changed in Python 3. To make the configs Python 3 compliant, add explicit conversions from iterators to lists where needed, replace xrange with range, and fix changes to exec syntax.
This change doesn't fix import paths since that might require us to restructure the configs slightly.
Change-Id: Idcea8482b286779fc98b4e144ca8f54069c08024 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/16002 Reviewed-by: Gabe Black <gabeblack@google.com> |
13684:076506a21535 |
24-Jan-2019 |
Giacomo Travaglini <giacomo.travaglini@arm.com> |
configs: simpoint-profile usable with NonCachingCPUs only
NonCachingCPU is replacing the Atomic+fastmem option.
Change-Id: I66f5c8a880d1b3fd1331871d89e8d6a229938e57 Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/15935 Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
13636:3b55e4bae1d8 |
04-Feb-2019 |
Giacomo Travaglini <giacomo.travaglini@arm.com> |
configs, arch-arm: Using AddrRange for Realview mem_regions
Physical memory ranges are now saved in Realview objects as pairs of addresses (start address and size). This patch is substituting them with a single AddrRange object.
Change-Id: I02d25d557c5c54d062f0dccef8ede45744d0ce6b Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Ciro Santilli <ciro.santilli@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/16206 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
13606:2ad4449e6cb4 |
24-Jan-2019 |
Ciro Santilli <ciro.santilli@arm.com> |
configs: fs.py remove --generate-dtb and enable it by default
The option is now enabled if neither --bare-metal nor --dtb-filename are given.
This is what fs_bigLITTLE.py already did before this patch.
Change-Id: I9179f8c9fa18edbd1e0f1a65ea2c1de0a26b7921 Reviewed-on: https://gem5-review.googlesource.com/c/15899 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
13605:8904f6c497e6 |
03-Dec-2018 |
Ciro Santilli <ciro.santilli@arm.com> |
configs, arch-arm: don't search for default DTB and kernel
Before this commit, there were default magic DTB and kernel filenames for some platforms.
This was inelegant and error prone, as it refered to out-of-tree files, and set defaults which users almost always want to customize with explicit command line options.
One result of this is that a wrong exception could be thrown if --kernel was given but not --machine-type, since the default machine type VExpress_EMM had a default kernel, and the code would always search for the default filename even though --kernel was given:
IOError: Can't find file 'vmlinux.aarch32.ll_20131205.0-gem5' on path.
The defaults existed only for older machine types, and not for the usually recommended VExpress_GEM5_V1, which suggests that this deprecation should not affect many users.
Change-Id: Ia49298304f658701ea0800bd79e08db404a655c3 Reviewed-on: https://gem5-review.googlesource.com/c/15898 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
13532:b1cacf73cd4e |
13-Nov-2018 |
Jairo Balart <jairo.balart@metempsy.com> |
dev-arm: Add a VExpress_GEM5_V2 platform with GICv3 support
Change-Id: I6fd14138d94654e8e60cde08239ea9a50fc19eb7 Reviewed-on: https://gem5-review.googlesource.com/c/14255 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> |
13432:6ce67b7e6e44 |
07-Nov-2018 |
Pau Cabre <pau.cabre@metempsy.com> |
configs: Added an option for choosing branch predictor type
Added the parameter "--bp-type" to set the branch predictor type Added the parameter "--list-bp-types" to list all the available branch predictor types
Change-Id: Ia6aae90c784aef359b6d8233c8383cd7a871aca1 Signed-off-by: Pau Cabre <pau.cabre@metempsy.com> Reviewed-on: https://gem5-review.googlesource.com/c/14015 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
13357:110926e15f1f |
13-Sep-2018 |
Ciro Santilli <ciro.santilli@arm.com> |
config: add --param to fs.py, se.py and fs_bigLITTLE.py
The option allows to set SimObject params from the CLI.
The existing config scripts have a large number of options that simply set a single SimObject parameter, and many still are not exposed.
This commit allows users to pass arbitrary parameters from the command line to prevent the need for this kind of trivial option.
Change-Id: Ic4bd36948aca4998d2eaf6369c85d3668efa3944 Reviewed-on: https://gem5-review.googlesource.com/c/12985 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
13167:258a04d4c20b |
04-Sep-2018 |
Ciro Santilli <ciro.santilli@arm.com> |
dev, arm: remove the RealViewEB platform
This is an old platform, and we haven't had official Linux kernel configs for it in a while, so we've decided to deprecate it.
Furthermore, trying to use it fails with:
object 'RealViewEB' has no attribute 'pci_host'
and the last commit in the class happened two years ago, which indicates that no one has been using it.
Change-Id: Icc674b00b152eb3246e05141dbaf2624cc720f21 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/12471 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
13015:9e48c6a83b85 |
30-Aug-2018 |
Ciro Santilli <ciro.santilli@arm.com> |
config, dev-arm: Fix UART handling baremetal mode
fs.py in baremetal mode currently fails for the VExpress_GEM5_V1 platform due to inconsistent UART naming with error message:
AttributeError: object 'VExpress_GEM5_V1' has no attribute 'uart'
Consistently name keep all UARTs in the Arm platforms in a vector named 'uart' or as a single device named 'uart'. Update the configuration scripts to reflect the fact that 'uart' can be a vector.
Change-Id: I20b8dbac794d6a9be19b6ce8c335a097872132fb Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/12473 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
13012:5fbc6b9c64bc |
15-Mar-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
cpu: Replace the fastmem with a new CPU model
The AtomicSimpleCPU used to be able to access memory directly to speed up simulation if no caches are used. This is fine as long as no switching between CPU models is required. In order to switch to a new CPU model that requires caches, we currently need to checkpoint the system and restore it into a new configuration. The new 'atomic_noncaching' memory mode provides a solution that avoids this issue since caches are bypassed in this mode. This changeset removes the old fastmem option from the AtomicSimpleCPU and introduces a new CPU, NonCachingSimpleCPU, which derives from the AtomicSimpleCPU.
The NonCachingSimpleCPU uses the same mechanism as the AtomicSimpleCPU used to use when accessing memory in when fastmem was enabled.
This changeset also introduces a new switcheroo test that tests switching between a NonCachingSimpleCPU and a TimingSimpleCPU with caches.
Change-Id: If01893f9b37528b14f530c11ce6f53c097582c21 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/12419 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12941:24771c7aee2e |
28-Aug-2018 |
Andreas Sandberg <andreas.sandberg@arm.com> |
config: Move KVM CPU checking to CpuConfig helper module
Both se.py and fs.py need to check if a CPU is a KVM CPU. This is somewhat involved since CPUs can be disabled at compile time. Enable better code reuse by moving it to the CpuConfig module.
Change-Id: I47b1512ecb62e757399a407a0e41be83b9f83be3 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/12418 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12880:cb1fb179e8c8 |
21-Sep-2017 |
Jason Lowe-Power <jason@lowepower.com> |
configs: Always exit with code 0
Update simulation.py to always exit with code 0 assuming the simulation exits normally. If the running application has a return code that is non zero, then print the return code before exiting.
Change-Id: I1983985d50311627574d4364b32ee961ae88e003 Signed-off-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-on: https://gem5-review.googlesource.com/4880 |
12647:6d7e2f321496 |
12-Apr-2018 |
Tony Gutierrez <anthony.gutierrez@amd.com> |
configs, mem-ruby: fix issues with style in AMD license
fixes line length and white space issues.
Change-Id: Ia04a91ec68cae2bcdabeb93bb1a0f74e8e5486c3 Reviewed-on: https://gem5-review.googlesource.com/9801 Reviewed-by: Bradford Beckmann <brad.beckmann@amd.com> Maintainer: Bradford Beckmann <brad.beckmann@amd.com> |
12600:e670dd17c8cf |
19-Feb-2018 |
Daniel R. Carvalho <odanrc@yahoo.com.br> |
mem-cache: Split array indexing and replacement policies.
Replacement policies (LRU, Random) are currently considered as array indexing methods, but have completely different functionalities:
- Array indexers determine the possible locations for block allocation. This information is used to generate replacement candidates when conflicts happen. - Replacement policies determine which of the replacement candidates should be evicted to make room for new allocations.
For this reason, they were split into different classes. Advantages:
- Easier and more straightforward to implement other replacement policies (RRIP, LFU, ARC, ...) - Allow easier future implementation of cache organization schemes
As now we can't assure the use of sets, the previous way to create a true LRU is not viable. Now a timestamp_bits parameter controls how many bits are dedicated for the timestamp, and a true LRU can be achieved through an infinite number of bits (although a few bits suffice in practice).
Change-Id: I23750db121f1474d17831137e6ff618beb2b3eda Reviewed-on: https://gem5-review.googlesource.com/8501 Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com> |
12598:b80b2d9a251b |
12-Feb-2018 |
Nikos Nikoleris <nikos.nikoleris@arm.com> |
arch-arm, configs: Treat the bootloader rom as cacheable memory
Prior to this changeset the bootloader rom (instantiated as a SimpleMemory) in ruby Arm systems was treated as an IO device and it was fronted by a DMA controller. This changeset moves the bootloader rom and adds it to the system as another memory with a dedicated directory controller.
Change-Id: I094fed031cdef7f77a939d94f948d967b349b7e0 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/8741 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12564:2778478ca882 |
06-Mar-2018 |
Gabe Black <gabeblack@google.com> |
config: Switch from the print statement to the print function.
Change-Id: I701fa58cfcfa2767ce9ad24da314a053889878d0 Reviewed-on: https://gem5-review.googlesource.com/8762 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com> Maintainer: Gabe Black <gabeblack@google.com> |
12475:c6a23d6370de |
14-Mar-2016 |
Glenn Bergmans <glenn.bergmans@arm.com> |
config: Embed Device Tree generation in fs.py config
Equips the fs.py config routine with an extra commandline option --generate-dtb that will generate a dtb file automatically before running the simulation. Only works with ARM systems and gives a warning if the simulated system is not of --machine-type VExpress_GEM5_V1.
Change-Id: I7766e5459fd9bec2245de83cef103091ebaf7229 Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/5968 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
12395:322bb93e5f06 |
09-Nov-2017 |
Swapnil Haria <swapnilster@gmail.com> |
mem-ruby: Support atomic_noncaching acceses in ruby
Ruby has no support for atomic_noncaching accesses, which prevents using it with kvm-cpu. This patch fixes this by directly forwarding atomic requests from the ruby port/sequencer to the corresponding directory based on the destination address of the packet.
Change-Id: I0b4928bfda44fd9e5e48583c51d1ea422800da2d Reviewed-on: https://gem5-review.googlesource.com/5601 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Bradford Beckmann <brad.beckmann@amd.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> Maintainer: Bradford Beckmann <brad.beckmann@amd.com> |
12374:df27dd3da16d |
02-Dec-2017 |
Austin Harris <austinharris@utexas.edu> |
config: Fix need to set ISA of switch cpus.
Since BaseCPU.createThreads() no longer overrides the BaseCPU.isa parameter, switch_cpus should have the ISA copied. This fixes a fatal error in BaseCPU when restoring from a checkpoint.
Change-Id: I4fdcacb76da46bdbe1ce37dcf05c5a6a8a9e5237 Signed-off-by: Austin Harris <austinharris@utexas.edu> Reviewed-on: https://gem5-review.googlesource.com/6241 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12340:a52f6d327259 |
22-Nov-2017 |
Éder F. Zulian <zulian@eit.uni-kl.de> |
config, mem, hmc: fix HMC test script
This patch keeps the logic behind the HMC model implementation untouched.
Additional changes: - simple hello world script using HMC (SE simulation)
Usage examples:
./build/ARM/gem5.opt configs/example/hmctest.py ./build/ARM/gem5.opt configs/example/hmctest.py --enable-global-monitor --enable-link-monitor --arch=same ./build/ARM/gem5.opt configs/example/hmctest.py --enable-global-monitor --enable-link-monitor --arch=mixed ./build/ARM/gem5.opt configs/example/hmc_hello.py ./build/ARM/gem5.opt configs/example/hmc_hello.py --enable-global-monitor --enable-link-monitor
Change-Id: I64eb6c9abb45376b6ed72722926acddd50765394 Reviewed-on: https://gem5-review.googlesource.com/6061 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12254:e4b3baf80eb4 |
10-Nov-2017 |
Gabe Black <gabeblack@google.com> |
config: Fix the "script" SysPath functor.
This particular functor looks in the config root, not in the path specified by M5_ROOT like binary and disk.
Change-Id: Ib007c36934c65ca9f808e995a2e0c71f0b338788 Reviewed-on: https://gem5-review.googlesource.com/5641 Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Maintainer: Gabe Black <gabeblack@google.com> |
12233:53cf2e32cb59 |
30-Oct-2017 |
Gabe Black <gabeblack@google.com> |
config: Rework the SysPaths functions into functors.
These functions were already being treated as psuedo objects and had properties assigned to them setting what their paths were. That's a bit unusual and made it less obvious what the code was doing, but also forced the "system" function to know what all the possible path searching functions were so that they'd have their "path" property initialized properly in a central location.
This change introduces a PathSearcFunc class which encapsulates the mechanisms of the old code and makes it implicitly extensible so that other path searching functions which might look in other directories can be added in other places.
Change-Id: I7be28e51481a06ec83997677af99927709b18003 Reviewed-on: https://gem5-review.googlesource.com/5341 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
12152:e44b42795fee |
04-Jul-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
config: Discover CPU timing models based on target ISA
The CpuConfig helper currently assumes that all timing models live in the cores.arm package. This ignores the potential mismatch between the target ISA and the ISA assumptions made by the timing models.
Instead of unconditionally listing all CPU models in cores.arm, list timing models from cores.generic and cores.${TARGET_ISA}. This ensures that the listed timing models support the ISA that gem5 is targeting.
Change-Id: If6235af2118889638f56ac4151003f38edfe9485 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/3947 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12149:b87a60509a13 |
10-Jul-2017 |
Ashkan Tousi <ashkan.tousimojarad@arm.com> |
config, arm: Add a high-performance in order timing model
The High-Performance In-order (HPI) CPU timing model is tuned to be representative of a modern in-order ARMv8-A implementation. The HPI core and its supporting simulation scripts, namely starter_se.py and starter_fs.py (under /configs/example/arm/) are part of the ARM Research Starter Kit on System Modeling. More information can be found at: http://www.arm.com/ResearchEnablement/SystemModeling
Change-Id: I124bd06ba42d20abff09d447542b031d17eabe22 Signed-off-by: Ashkan Tousi <ashkan.tousimojarad@arm.com> Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/4201 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> |
12109:f29e9c5418aa |
05-Apr-2017 |
Rekai Gonzalez-Alberquilla <Rekai.GonzalezAlberquilla@arm.com> |
cpu: Added interface for vector reg file
This patch adds some more functionality to the cpu model and the arch to interface with the vector register file.
This change consists mainly of augmenting ThreadContexts and ExecContexts with calls to get/set full vectors, underlying microarchitectural elements or lanes. Those are meant to interface with the vector register file. All classes that implement this interface also get an appropriate implementation.
This requires implementing the vector register file for the different models using the VecRegContainer class.
This change set also updates the Result abstraction to contemplate the possibility of having a vector as result.
The changes also affect how the remote_gdb connection works.
There are some (nasty) side effects, such as the need to define dummy numPhysVecRegs parameter values for architectures that do not implement vector extensions.
Nathanael Premillieu's work with an increasing number of fixes and improvements of mine.
Change-Id: Iee65f4e8b03abfe1e94e6940a51b68d0977fd5bb Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> [ Fix RISCV build issues and CC reg free list initialisation ] Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/2705 |
12099:40bbc2917b8a |
04-Jul-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
config, arm: Don't import timing models for missing CPUs
When importing the cores.arm package, we currently throw an exception if a timing model can't be imported due to a missing dependency (e.g., the required CPU model wasn't included in the build). This is undesirable since it prevents other, working, timing models from being added to the package. Wrap the import_module call in a try-except block and skip timing models that have missing dependencies.
Change-Id: I92bab62c989f433a8a4a7bf59207d9d81b3d19e1 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/3946 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12098:6a2ac80ff671 |
26-Jun-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
config: Clean up core timing model discovery
Instead of hard-coding timing models in CpuConfig.py, use introspection to find them in the cores.arm model package.
Change-Id: I6642dc9cbc3f5beeeec748e716c9426c233d51ea Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Gabor Dozsa <gabor.dozsa@arm.com> Reviewed-on: https://gem5-review.googlesource.com/3944 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12097:77a3d2890ba6 |
26-Jun-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
config: Move core timing models to config/common/cores
Change-Id: I189b6462cc64f7cc6c1b7a6c2af1abb60e1854de Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Gabor Dozsa <gabor.dozsa@arm.com> Reviewed-on: https://gem5-review.googlesource.com/3943 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12096:a5289d3657b3 |
26-Jun-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
config: Make ex5_*.py independent of old configs
The ex5_LITTLE and ex5_big configs currently depend on Caches.py and O3_ARM_v7a.py. These aren't actual dependencies since all of the params from the caches and the old O3 model are overridden. This changeset updates the ex5 models to derive from the base SimObjects instead.
Change-Id: I999e73bb9cc21ad96865c1bc0dd5973faa48ab61 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Gabor Dozsa <gabor.dozsa@arm.com> Reviewed-on: https://gem5-review.googlesource.com/3942 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12095:07ec0befb9f1 |
26-Jun-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
config: Add missing import of 'fatal' in CpuConfig
Change-Id: I7762d344cb964c3e010135ff928c6ea12538912c Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Gabor Dozsa <gabor.dozsa@arm.com> Reviewed-on: https://gem5-review.googlesource.com/3941 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12094:81aba95c81f9 |
26-Jun-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
config: Make some MemConfig options optional
MemConfig currently assumes that all callers include the its full set of options in the command line parser. This is unnecessary and sometimes confusing. Make most of the options optional to avoid having to add all of them to example scripts.
Change-Id: I2d73be2454427b00db16716edcfd96a47133c888 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Gabor Dozsa <gabor.dozsa@arm.com> Reviewed-on: https://gem5-review.googlesource.com/3940 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12079:a5cc6df83fcf |
23-Feb-2017 |
Gedare Bloom <gedare@rtems.org> |
configs, arm: add option to enable security extensions
Change-Id: I0c839bb649a5d2d73080b7e718da3c9b5839cf8c Signed-off-by: Gedare Bloom <gedare@rtems.org> Reviewed-on: https://gem5-review.googlesource.com/3264 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12067:9423cf8c1e87 |
06-Mar-2017 |
Nikos Nikoleris <nikos.nikoleris@arm.com> |
config: Warn not fail for ARM systems configured with ruby
Ruby for ARM systems is not fully supported but certain configurations are expected to work. This change removes the more general fail statement and warns or fails depending on the particular configuration.
Change-Id: Ic24799aff966ba15858b93482e0f24a8672d9483 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/2905 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> |
12028:29ea3c7bc92f |
22-Mar-2017 |
Pierre-Yves Péneau <pierre-yves.peneau@lirmm.fr> |
arm, config: added support for ex5 model of big.LITTLE
This patch enables using calibrated big and LITTLE cores, ex5_big and ex5_LITTLE instead of the default 'arm_detailed' and 'minor' cpus. The ex5 model is based on the Samsung Exynos 5 Octa (5422) SoC. Operation and memory hierarchy latencies have been calibrated using the lmbench micro-benchmark suite. The preliminary validation results have been published as: 'Full-System Simulation of big.LITTLE Multicore Architecture for Performance and Energy Exploration', in International Symposium on Embedded Multicore/Many-core Systems-on-Chip (MCSoC'16), Lyon, France (Sep, 2016).
From http://reviews.gem5.org/r/3666
Change-Id: I4935dee0a9222bd1bf7adfccb9443014945bb2d7 Signed-off-by: Anastasiia Butko <abutko@lbl.gov> Signed-off-by: Pierre-Yves Péneau <pierre-yves.peneau@lirmm.fr> Reviewed-on: https://gem5-review.googlesource.com/2464 Reviewed-by: Gabor Dozsa <gabor.dozsa@arm.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12026:1219d7a06a66 |
12-Jan-2017 |
Weiping Liao <weipingliao@google.com> |
config: Changes to boot Android N
necessary kernel command line options in FSConfig.py
Change-Id: Id66f640b6beb4efa9c23080c3d2516eda688c72d Reviewed-on: https://gem5-review.googlesource.com/3320 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
12014:f973caaf935d |
08-May-2017 |
Gabe Black <gabeblack@google.com> |
config: Fix up some configs to not use CPU aliases.
Support for CPU aliases were removed recently.
Change-Id: I3c1173dc34170d8639d95e52bf660f248848f77f Reviewed-on: https://gem5-review.googlesource.com/3100 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
11995:d3dbd5a6b19a |
27-Apr-2017 |
Gabe Black <gabeblack@google.com> |
config: Remove support for CPU aliases.
This was added for backwards compatability, but it adds a decent amount of complexity.
The table below shows what CPU class name to use in place of a given alias.
+==========+========================================================+ | Alias | CPU class | +==========+========================================================+ | timing | TimingSimpleCPU | | atomic | AtomicSimpleCPU | | minor | MinorCPU | | detailed | DrivO3CPU | | kvm | ArmKvmCPU, ArmV8KvmCPU or X86KvmCPU, depending on arch | | trace | TraceCPU | +==========+========================================================+
Change-Id: I251c4f64b7869c6b64dd25b36967ae240f01ef08 Reviewed-on: https://gem5-review.googlesource.com/2940 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
11949:db6d68484756 |
03-Apr-2017 |
Gabe Black <gabeblack@google.com> |
config: Add a default system disk image for SPARC FS.
When the change below removed the hard coded disk name for the SPARC FS configuration, it broke the regression which had not specified a disk name. This change adds a default disk name so that the regression will continue to work like it used to, but preserving the effect of this other change.
commit 86a25bbcee88f6e69299867b6264885d738f636e Author: Jakub Jermar <jakub@jermar.eu> Date: Tue Jul 19 09:52:46 2016 -0500
config: Allow SPARC FS image to be specified on the command line
Change-Id: Ieb317b2bf573a4f2fc435d34cccd1f246c28d84c Reviewed-on: https://gem5-review.googlesource.com/2645 Maintainer: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> |
11889:3e7a56472f08 |
23-Feb-2017 |
Pierre-Yves Péneau <pierre-yves.peneau@lirmm.fr> |
config: exit with fatal() if error
If output redirection is activated, the error message is printed in simout. This change ensure it will be printed in simerr.
Change-Id: Ie661ac6b6978bf2e4aaaccdf23134795d764d459 Signed-off-by: Pierre-Yves Péneau <pierre-yves.peneau@lirmm.fr> Reviewed-on: https://gem5-review.googlesource.com/2221 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
11851:824055fe6b30 |
09-Nov-2016 |
Brandon Potter <brandon.potter@amd.com> |
syscall_emul: [patch 5/22] remove LiveProcess class and use Process instead
The EIOProcess class was removed recently and it was the only other class which derived from Process. Since every Process invocation is also a LiveProcess invocation, it makes sense to simplify the organization by combining the fields from LiveProcess into Process. |
11837:17b37f38944a |
14-Feb-2017 |
Wendy Elsasser <wendy.elsasser@arm.com> |
mem: Update DRAM configuration names
Names of DRAM configurations were updated to reflect both the channel and device data width.
Previous naming format was: <DEVICE_TYPE>_<DATA_RATE>_<CHANNEL_WIDTH>
The following nomenclature is now used: <DEVICE_TYPE>_<DATA_RATE>_<n>x<w> where n = The number of devices per rank on the channel x = Device width
Total channel width can be calculated by n*w
Example: A 64-bit DDR4, 2400 channel consisting of 4-bit devices: n = 16 w = 4 The resulting configuration name is: DDR4_2400_16x4
Updated scripts to match new naming convention.
Added unique configurations for DDR4 for: 1) 16x4 2) 8x8 3) 4x16
Change-Id: Ibd7f763b7248835c624309143cb9fc29d56a69d1 Reviewed-by: Radhika Jagtap <radhika.jagtap@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> |
11818:f12963cb9dc2 |
09-Feb-2017 |
Christian Menard <Christian.Menard@tu-dresden.de> |
misc: Clean up and complete the gem5<->SystemC-TLM bridge [1/10]
The current TLM bridge only provides a Slave Port that allows the gem5 world to send request to the SystemC world. This patch series refractors and cleans up the existing code, and adds a Master Port that allows the SystemC world to send requests to the gem5 world.
This patch: * Restructure the existing sources in preparation of the addition of the * new Master Port. * Refractor names to allow for distinction of the slave and master port. * Replace the Makefile by a SConstruct.
Testing Done: The examples provided in util/tlm (now util/tlm/examples/slave_port) still compile and run error free.
Reviewed at http://reviews.gem5.org/r/3527/
Signed-off-by: Jason Lowe-Power <jason@lowepower.com> |
11763:302c6b957854 |
19-Dec-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
sim: Remove redundant buildEnv import
Change-Id: Id6bdbc0c988aa92b96e292cabc913e6b974f14bb Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> |
11722:f15f02d8c79e |
30-Nov-2016 |
Sophiane Senni <sophiane.senni@gmail.com> |
mem: Split the hit_latency into tag_latency and data_latency
If the cache access mode is parallel, i.e. "sequential_access" parameter is set to "False", tags and data are accessed in parallel. Therefore, the hit_latency is the maximum latency between tag_latency and data_latency. On the other hand, if the cache access mode is sequential, i.e. "sequential_access" parameter is set to "True", tags and data are accessed sequentially. Therefore, the hit_latency is the sum of tag_latency plus data_latency.
Signed-off-by: Jason Lowe-Power <jason@lowepower.com> |
11703:08b78e0a3717 |
26-Oct-2016 |
Michael LeBeane <michael.lebeane@amd.com> |
dev: Add m5 op to toggle synchronization for dist-gem5. This patch adds the ability for an application to request dist-gem5 to begin/ end synchronization using an m5 op. When toggling on sync, all nodes agree on the next sync point based on the maximum of all nodes' ticks. CPUs are suspended until the sync point to avoid sending network messages until sync has been enabled. Toggling off sync acts like a global execution barrier, where all CPUs are disabled until every node reaches the toggle off point. This avoids tricky situations such as one node hitting a toggle off followed by a toggle on before the other nodes hit the first toggle off. |
11688:725fef71f376 |
26-Oct-2016 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Break out base options for usage with NULL ISA
This patch breaks out the most basic configuration options into a set of base options, to allow them to be used also by scripts that do not involve any ISA, and thus no actual CPUs or devices.
The patch also fixes a few modules so that they can be imported in a NULL build, and avoid dragging in FSConfig every time Options is imported. |
11683:f1e198a028be |
15-Oct-2016 |
Fernando Endo <fernando.endo2@gmail.com> |
cpu, arm: Distinguish Float* and SimdFloat*, create FloatMem* opClass
Modify the opClass assigned to AArch64 FP instructions from SimdFloat* to Float*. Also create the FloatMemRead and FloatMemWrite opClasses, which distinguishes writes to the INT and FP register banks. Change the latency of (Simd)FloatMultAcc to 5, based on the Cortex-A72, where the "latency" of FMADD is 3 if the next instruction is a FMADD and has only the augend to destination dependency, otherwise it's 7 cycles.
Signed-off-by: Jason Lowe-Power <jason@lowepower.com> |
11682:612f75cf36a0 |
14-Oct-2016 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Make configs/common a Python package
Continue along the same line as the recent patch that made the Ruby-related config scripts Python packages and make also the configs/common directory a package.
All affected config scripts are updated (hopefully).
Note that this change makes it apparent that the current organisation and naming of the config directory and its subdirectories is rather chaotic. We mix scripts that are directly invoked with scripts that merely contain convenience functions. While it is not addressed in this patch we should follow up with a re-organisation of the config structure, and renaming of some of the packages. |
11670:6ce719503eae |
13-Oct-2016 |
Andreas Hansson <andreas.hansson@arm.com> |
ruby: Fix regressions and make Ruby configs Python packages
This patch moves the addition of network options into the Ruby module to avoid the regressions all having to add it explicitly. Doing this exposes an issue in our current config system though, namely the fact that addtoPath is relative to the Python script being executed. Since both example and regression scripts use the Ruby module we would end up with two different (relative) paths being added. Instead we take a first step at turning the config modules into Python packages, simply by adding a __init__.py in the configs/ruby, configs/topologies and configs/network subdirectories.
As a result, we can now add the top-level configs directory to the Python search path, and then use the package names in the various modules. The example scripts are also updated, and the messy path-deducing variations in the scripts are unified. |
11626:c89c72b0e5f5 |
13-Sep-2016 |
Michael LeBeane <michael.lebeane@amd.com> |
config: move dist-gem5 options to common config dist-gem5 should not be restricted to FullSystem mode. |
11604:b254396b7759 |
12-Aug-2016 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Add snoop filter to SystemXBar by default
This patch changes the default behaviour of the SystemXBar, adding a snoop filter. With the recent updates to the snoop filter allocation behaviour this change no longer causes problems for the regressions without caches.
Change-Id: Ibe0cd437b71b2ede9002384126553679acc69cc1 Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Tony Gutierrez <anthony.gutierrez@amd.com> |
11599:55bd18998b7c |
10-Aug-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
arm, config: Exit with fatal error if using Ruby
Ruby on ARM is currently very experimental. Fail with a fatal error that explains this to make sure users are aware of the limitations (it doesn't actually work yet!).
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> |
11598:e0ddee91eb13 |
10-Aug-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
arm, config: Add initial support for Ruby
Add initial support for creating an ARM system with a Ruby-based memory system. This support is currently experimental and limited to the new VExpress_GEM5_V1 platform.
Change-Id: I36baeb68b0d891e34ea46aafe17b5e55217b4bfa Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Brad Beckmann <brad.beckmann@amd.com> |
11563:1040cd2252d4 |
19-Jul-2016 |
Jakub Jermar <jakub@jermar.eu> |
config: Allow SPARC FS image to be specified on the command line
At the moment the SPARC FS machine configuration comes with a hardcoded value for using the Solaris 10 disk image from the OpenSPARC tarball. The --disk-image option is completely ignored for SPARC. This simple patch modifies the behavior so that --disk-image option is both taken into account and also required. This makes it possible to easily change SPARC FS images without having to modify the configuration files. |
11551:d24ad08b22b0 |
01-Jul-2016 |
Abdul Mutaal Ahmad <abdul.mutaal@gmail.com> |
mem: different HMC configuration
In this new hmc configuration we have used the existing components in gem5 mainly [SerialLink] [NoncoherentXbar]& [DRAMCtrl] to define 3 different architecture for HMC.
Highlights
1- It explores 3 different HMC architectures
2- It creates 4-HMC crossbars and attaches 16 vault controllers with it. This will connect vaults to serial links
3- From the previous version, HMCController with round robin funtionality is being removed and all the serial links are being accessible directly from user ports
4- Latency incorporated by HMCController (in previous version) is being added to SerialLink
Committed by Jason Lowe-Power <jason@lowepower.com> |
11539:de57dbf319d0 |
20-Jun-2016 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Fix omission of walker cache in config scripts
This patch ensures a walker cache is instantiated if specfied.
Change-Id: I2c6b4bf3454d56bb19558c73b406e1875acbd986 Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-by: Mitch Hayenga <mitch.hayenga@arm.com> |
11501:9345c4320477 |
27-May-2016 |
Stephan Diestelhorst <stephan.diestelhorst@arm.com> |
mem, config: Selective use of snoop filter
Disable the default snoop filter in the SystemXBar so that the typical membus does not have a snoop filter by default. Instead, add the snoop filter only when there are caches added to the system (with the caches / l2cache options).
The underlying problem is that the snoop filter grows without bounds (for now) if there are no caches to tell it that lines have been evicted. This causes slow regression runs for all the atomic regressions. This patch fixes this behaviour. |
11481:fc247b9c42b6 |
19-May-2016 |
Bjoern A. Zeeb <baz21@cam.ac.uk> |
config, x86: Properly space pad the X86IntelMPBus Entry descriptions
According to the Intel Multi Processor Specification rev 1.4 (-006) (*), section 4.3.2 Bus Entries, Bus type strings are >>6-character ASCII (blank-filled) strings<<. This patch properly pads the entries with the missing spaces at the end.
(*) http://www.intel.com/design/pentium/datashts/24201606.pdf
Committed by Jason Lowe-Power <power.jg@gmail.com> |
11331:cd5c48db28e6 |
10-Feb-2016 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Deduce if cache should forward snoops
This patch changes how the cache determines if snoops should be forwarded from the memory side to the CPU side. Instead of having a parameter, the cache now looks at the port connected on the CPU side, and if it is a snooping port, then snoops are forwarded. Less error prone, and less parameters to worry about.
The patch also tidies up the CPU classes to ensure that their I-side port is not snooping by removing overrides to the snoop request handler, such that snoop requests will panic via the default MasterPort implement |
11320:42ecb523c64a |
06-Feb-2016 |
Steve Reinhardt <steve.reinhardt@amd.com> |
style: remove trailing whitespace
Result of running 'hg m5style --skip-all --fix-white -a'. |
11308:7d8836fd043d |
19-Jan-2016 |
Tony Gutierrez <anthony.gutierrez@amd.com> |
gpu-compute: AMD's baseline GPU model |
11297:d1f8610cdffd |
15-Jan-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
dev, arm: Add a platform with support for both aarch32 and aarch64
Add a platform with support for both aarch32 and aarch64. This platform implements a subset of the devices in a real Versatile Express and extends it with some gem5-specific functionality. It is in many ways similar to the old VExpress_EMM64 platform, but supports the following new features:
* Automatic PCI interrupt assignment * PCI interrupts allocated in a contiguous range. * Automatic boot loader selection (32-bit / 64-bit) * Cleaner memory map where gem5-specific devices live in CS5 which isn't used by current Versatile Express platforms. * No fake devices. Devices that were previously faked will be removed from the device tree instead. * Support for 510 GiB contiguous memory |
11292:5d1d5bf9c178 |
11-Jan-2016 |
Andreas Hansson <andreas.hansson@arm.com> |
configs: Fix inheritance of HMCSystem and cleanup spacing
Minor fix to ensure the HMCSystem can actually be instantiated (SimObject cannot be created). Also address some spacing issues. |
11291:9d2364203316 |
07-Jan-2016 |
Gabor Dozsa <gabor.dozsa@arm.com> |
config: Updates for distributed gem5 simulations |
11251:a15c86af004a |
07-Dec-2015 |
Radhika Jagtap <radhika.jagtap@ARM.com> |
config: Enable elastic trace capture and replay in se/fs
This patch adds changes to the configuration scripts to support elastic tracing and replay.
The patch adds a command line option to enable elastic tracing in SE mode and FS mode. When enabled the Elastic Trace cpu probe is attached to O3CPU and a few O3 CPU parameters are tuned. The Elastic Trace probe writes out both instruction fetch and data dependency traces. The patch also enables configuring the TraceCPU to replay traces using the SE and FS script.
The replay run is designed to resume from checkpoint using atomic cpu to restore state keeping it consistent with FS run flow. It then switches to TraceCPU to replay the input traces. |
11244:a2af58a06c4e |
04-Dec-2015 |
Andreas Sandberg <andreas.sandberg@arm.com> |
dev: Rewrite PCI host functionality
The gem5's current PCI host functionality is very ad hoc. The current implementations require PCI devices to be hooked up to the configuration space via a separate configuration port. Devices query the platform to get their config-space address range. Un-mapped parts of the config space are intercepted using the XBar's default port mechanism and a magic catch-all device (PciConfigAll).
This changeset redesigns the PCI host functionality to improve code reuse and make config-space and interrupt mapping more transparent. Existing platform code has been updated to use the new PCI host and configured to stay backwards compatible (i.e., no guest-side visible changes). The current implementation does not expose any new functionality, but it can easily be extended with features such as automatic interrupt mapping.
PCI devices now register themselves with a PCI host controller. The host controller interface is defined in the abstract base class PciHost. Registration is done by PciHost::registerDevice() which takes the device, its bus position (bus/dev/func tuple), and its interrupt pin (INTA-INTC) as a parameter. The registration interface returns a PciHost::DeviceInterface that the PCI device can use to query memory mappings and signal interrupts.
The host device manages the entire PCI configuration space. Accesses to devices decoded into the devices bus position and then forwarded to the correct device.
Basic PCI host functionality is implemented in the GenericPciHost base class. Most platforms can use this class as a basic PCI controller. It provides the following functionality:
* Configurable configuration space decoding. The number of bits dedicated to a device is a prameter, making it possible to support both CAM, ECAM, and legacy mappings.
* Basic interrupt mapping using the interruptLine value from a device's configuration space. This behavior is the same as in the old implementation. More advanced controllers can override the interrupt mapping method to dynamically assign host interrupts to PCI devices.
* Simple (base + addr) remapping from the PCI bus's address space to physical addresses for PIO, memory, and DMA. |
11238:627dd43a5846 |
03-Dec-2015 |
Andreas Sandberg <andreas.sandberg@arm.com> |
arm, config: Automatically discover available platforms
Add support for automatically discover available platforms. The Python-side uses functionality similar to what we use when auto-detecting available CPU models. The machine IDs have been updated to match the platform configurations. If there isn't a matching machine ID, the configuration scripts default to -1 which Linux uses for device tree only platforms. |
11199:929fd978ab4e |
06-Nov-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Add an option to perform clean writebacks from caches
This patch adds the necessary commands and cache functionality to allow clean writebacks. This functionality is crucial, especially when having exclusive (victim) caches. For example, if read-only L1 instruction caches are not sending clean writebacks, there will never be any spills from the L1 to the L2. At the moment the cache model defaults to not sending clean writebacks, and this should possibly be re-evaluated.
The implementation of clean writebacks relies on a new packet command WritebackClean, which acts much like a Writeback (renamed WritebackDirty), and also much like a CleanEvict. On eviction of a clean block the cache either sends a clean evict, or a clean writeback, and if any copies are still cached upstream the clean evict/writeback is dropped. Similarly, if a clean evict/writeback reaches a cache where there are outstanding MSHRs for the block, the packet is dropped. In the typical case though, the clean writeback allocates a block in the downstream cache, and marks it writable if the evicted block was writable.
The patch changes the O3_ARM_v7a L1 cache configuration and the default L1 caches in config/common/Caches.py |
11197:f8fdd931e674 |
06-Nov-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Add cache clusivity
This patch adds a parameter to control the cache clusivity, that is if the cache is mostly inclusive or exclusive. At the moment there is no intention to support strict policies, and thus the options are: 1) mostly inclusive, or 2) mostly exclusive.
The choice of policy guides the behaviuor on a cache fill, and a new helper function, allocOnFill, is created to encapsulate the decision making process. For the timing mode, the decision is annotated on the MSHR on sending out the downstream packet, and in atomic we directly pass the decision to handleFill. We (ab)use the tempBlock in cases where we are not allocating on fill, leaving the rest of the cache unaffected. Simple and effective.
This patch also makes it more explicit that multiple caches are allowed to consider a block writable (this is the case also before this patch). That is, for a mostly inclusive cache, multiple caches upstream may also consider the block exclusive. The caches considering the block writable/exclusive all appear along the same path to memory, and from a coherency protocol point of view it works due to the fact that we always snoop upwards in zero time before querying any downstream cache.
Note that this patch does not introduce clean writebacks. Thus, for clean lines we are essentially removing a cache level if it is made mostly exclusive. For example, lines from the read-only L1 instruction cache or table-walker cache are always clean, and simply get dropped rather than being passed to the L2. If the L2 is mostly exclusive and does not allocate on fill it will thus never hold the line. A follow on patch adds the clean writebacks.
The patch changes the L2 of the O3_ARM_v7a CPU configuration to be mostly exclusive (and stats are affected accordingly). |
11187:854e61d5390e |
04-Nov-2015 |
Nilay Vaish <nilay@cs.wisc.edu> |
configs: fix bug introduced due to 276ad9121192
I had made a typo in changeset 276ad9121192. This changeset fixes it |
11183:276ad9121192 |
03-Nov-2015 |
Erfan Azarkhish <erfan.azarkhish@unibo.it> |
mem: hmc: top level design
This patch enables modeling a complete Hybrid Memory Cube (HMC) device. It highly reuses the existing components in gem5's general memory system with some small modifications. This changeset requires additional patches to model a complete HMC device.
Committed by: Nilay Vaish <nilay@cs.wisc.edu> |
11182:fa8b2a99d4fe |
03-Nov-2015 |
Palle Lyckegaard <palle@lyckegaard.dk> |
sparc: add missing parameter to makeSparcSystem()
makeSparcSystem() in configs/common/FSConfig.py is missing the cmdLine parameter Without the parameter the simulation fails to start. With the parameter the simulation starts properly. |
11104:2d537040a4b9 |
16-Sep-2015 |
Jason Lowe-Power <power.jg@gmail.com> |
config: Add configs scripts used in Learning gem5
Added a new directory in configs (learning_gem5) to hold the scripts that are used in the book. See http://lowepower.com/jason/learning_gem5/ for a working copy. For now, only the scripts in Part 1: Getting started with gem5 have been added. A separate patch adds tests for these scripts.
Committed by: Nilay Vaish <nilay@cs.wisc.edu> |
11053:62544e45c0f4 |
21-Aug-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Add explicit Cache subclass and make BaseCache abstract
Open up for other subclasses to BaseCache and transition to using the explicit Cache subclass. |
10993:4e27d8806403 |
04-Aug-2015 |
Matthias Jung <jungma@eit.uni-kl.de> |
misc: Coupling gem5 with SystemC TLM2.0 Transaction Level Modeling (TLM2.0) is widely used in industry for creating virtual platforms (IEEE 1666 SystemC). This patch contains a standard compliant implementation of an external gem5 port, that enables the usage of gem5 as a TLM initiator component in SystemC based virtual platforms. Both TLM coding paradigms loosely timed (b_transport) and aproximately timed (nb_transport) are supported.
Compared to the original patch a TLM memory manager was added. Furthermore, the transaction object was removed and for each TLM payload a PacketPointer that points to the original gem5 packet is added as an TLM extension. For event handling single events are now created.
Committed by: Nilay Vaish <nilay@cs.wisc.edu> |
10887:279efb97ec99 |
03-Jul-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Remove redundant is_top_level cache parameter
This patch takes the final step in removing the is_top_level parameter from the cache. With the recent changes to read requests and write invalidations, the parameter is no longer needed, and consequently removed.
This also means that asymmetric cache hierarchies are now fully supported (and we are actually using them already with L1 caches, but no table-walker caches, connected to a shared L2). |
10884:c60acdbdd6ad |
03-Jul-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Allow read-only caches and check compliance
This patch adds a parameter to the BaseCache to enable a read-only cache, for example for the instruction cache, or table-walker cache (not for x86). A number of checks are put in place in the code to ensure a read-only cache does not end up with dirty data.
A follow-on patch adds suitable read requests to allow a read-only cache to explicitly ask for clean data. |
10860:cba0f26038b4 |
01-Jun-2015 |
Andreas Sandberg <andreas.sandberg@arm.com> |
kvm, arm: Add support for aarch64
This changeset adds support for aarch64 in kvm. The CPU module supports both checkpointing and online CPU model switching as long as no devices are simulated by the host kernel. It currently has the following limitations:
* The system register based generic timer can only be simulated by the host kernel. Workaround: Use a memory mapped timer instead to simulate the timer in gem5.
* Simulating devices (e.g., the generic timer) in the host kernel requires that the host kernel also simulates the GIC.
* ID registers in the host and in gem5 must match for switching between simulated CPUs and KVM. This is particularly important for ID registers describing memory system capabilities (e.g., ASID size, physical address size).
* Switching between a virtualized CPU and a simulated CPU is currently not supported if in-kernel device emulation is used. This could be worked around by adding support for switching to the gem5 (e.g., the KvmGic) side of the device models. A simpler workaround is to avoid in-kernel device models altogether. |
10820:e2a283400c43 |
05-May-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
arch, cpu: Do not forward snoops to table walker
This patch simplifies the overall CPU by changing the TLB caches such that they do not forward snoops to the table walker port(s). Note that only ARM and X86 are affected.
There is no reason for the ports to snoop as they do not actually take any action, and from a performance point of view we are better of not snooping more than we have to.
Should it at a later point be required to snoop for a particular TLB design it is easy enough to add it back. |
10807:dac26eb4cb64 |
29-Apr-2015 |
Nilay Vaish <nilay@cs.wisc.edu> |
cpu: o3: replace issueLatency with bool pipelined
Currently, each op class has a parameter issueLat that denotes the cycles after which another op of the same class can be issued. As of now, this latency can either be one cycle (fully pipelined) or same as execution latency of the op (not at all pipelined). The fact that issueLat is a parameter of type Cycles makes one believe that it can be set to any value. To avoid the confusion, the parameter is being renamed as 'pipelined' with type boolean. If set to true, the op would execute in a fully pipelined fashion. Otherwise, it would execute in an unpipelined fashion. |
10803:a91eb7b4a442 |
23-Apr-2015 |
bpotter <brandon.potter@amd.com> |
config: enable setting SE-mode environment variables from file |
10789:e94c22bd9ef1 |
20-Apr-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Remove memory aliases and rely on class name
Instead of maintaining two lists, rely entirely on the class name. There is really no point in causing unecessary confusion. |
10786:ee82c2c30421 |
14-Apr-2015 |
Malek Musleh <malek.musleh@gmail.com> |
config, cpu: fix progress interval for switched CPUs This patch ensures that the CPU progress Event is triggered for the new set of switched_cpus that get scheduled (e.g. during fast-forwarding). it also avoids printing the interval state if the cpu is currently switched out.
Committed by: Nilay Vaish <nilay@cs.wisc.edu> |
10785:f56c10663a01 |
13-Apr-2015 |
Dibakar Gope <gope@wisc.edu> |
cpu: re-organizes the branch predictor structure.
Committed by: Nilay Vaish <nilay@cs.wisc.edu> |
10780:46070443051e |
08-Apr-2015 |
Curtis Dunham <Curtis.Dunham@arm.com> |
config: Support full-system with SST's memory system
This patch adds an example configuration in ext/sst/tests/ that allows an SST/gem5 instance to simulate a 4-core AArch64 system with SST's memHierarchy components providing all the caches and memories. |
10772:8a7285d6197e |
27-Mar-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
arm, configs: Do not forward snoops from I cache
This fix simply tells the I cache to not forward snoops to the fetch unit (since there is really no reason to do so). |
10759:37fd40f8300f |
23-Mar-2015 |
Steve Reinhardt <steve.reinhardt@amd.com> |
config: expand '~' and '~user' in paths |
10757:8a4040874157 |
23-Mar-2015 |
Curtis Dunham <Curtis.Dunham@arm.com> |
config: Add ability to exit simulation after initialization
When using gem5 as a slave simulator, it will not advance the clock on its own and depends on the master simulator calling simulate(). This new option lets us use the Python scripts to do all the configuration while stopping short of actually simulating anything. |
10747:3fe41011333d |
19-Mar-2015 |
Chris Emmons <Chris.Emmons@arm.com> |
config: Specify OS type and release on command line
This patch enables users to speficy --os-type on the command line. This option is used to take specific actions for an OS type, such as changing the kernel command line. This patch is part of the Android KitKat enablement. |
10735:071996521ce6 |
09-Mar-2015 |
Rizwana Begum <rb639@drexel.edu> |
config: Fix for 'android' lookup in disk name This patch modifies FSConfig.py to look for 'android' only in disk image name. Before this patch, 'android' was searched in full disk path.
Committed by: Nilay Vaish <nilay@cs.wisc.edu> |
10720:67b3e74de9ae |
02-Mar-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Move crossbar default latencies to subclasses
This patch introduces a few subclasses to the CoherentXBar and NoncoherentXBar to distinguish the different uses in the system. We use the crossbar in a wide range of places: interfacing cores to the L2, as a system interconnect, connecting I/O and peripherals, etc. Needless to say, these crossbars have very different performance, and the clock frequency alone is not enough to distinguish these scenarios.
Instead of trying to capture every possible case, this patch introduces dedicated subclasses for the three primary use-cases: L2XBar, SystemXBar and IOXbar. More can be added if needed, and the defaults can be overridden. |
10697:71c40e5c8bd4 |
16-Jan-2015 |
Curtis Dunham <Curtis.Dunham@arm.com> |
config: add --root-device machine parameter
In case /dev/sda1 is not actually the boot partition for an image, we can override it on the command line or in a benchmark definition. |
10682:3d17366c0423 |
05-Feb-2015 |
Steve Reinhardt <steve.reinhardt@amd.com> |
config: rename 'file' var
Rename uses of 'file' as a local variable to avoid conflict with the built-in type of the same name. |
10681:c35efeacc933 |
05-Feb-2015 |
Steve Reinhardt <steve.reinhardt@amd.com> |
config: make M5_PATH a real search path
Although you can put a list of colon-separated directory names in M5_PATH, the current code just takes the first one that exists and assumes all files must live there. This change makes the code search the specified list of directories for each individual binary or disk image that's requested.
The main motivation is that the x86/Alpha binaries and the ARM binaries are in separate downloads, and thus naturally end up in separate directories. With this change, you can have M5_PATH point to those two directories, then run any FS regression test without changing M5_PATH. Currently, you either have to merge the two download directories or change M5_PATH (or do something else I haven't figured out). |
10677:5935ab1ddd7a |
03-Feb-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Add XOR hashing to the DRAM channel interleaving
This patch uses the recently added XOR hashing capabilities for the DRAM channel interleaving. This avoids channel biasing due to strided access patterns. |
10675:bb7cd7193edc |
03-Feb-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Adjust DRAM channel interleaving defaults
This patch changes the DRAM channel interleaving default behaviour to be more representative. The default address mapping (RoRaBaCoCh) moves the channel bits towards the least significant bits, and uses 128 byte as the default channel interleaving granularity.
These defaults can be overridden if desired, but should serve as a sensible starting point for most use-cases. |
10667:e17949745150 |
30-Jan-2015 |
Malek Musleh <malek.musleh@gmail.com> |
config: arm: fix os_flags Fix the makeArmSystem routine to reflect recent changes that support kernel commandline option when running android. Without this fix, trying to run android encounters a 'reference before assignment' error.
Committed by: Nilay Vaish <nilay@cs.wisc.edu> |
10650:a6fe75e8296b |
20-Jan-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
scons: Do not build the InOrderCPU
One step closer to shifting focus to the MinorCPU. |
10620:74834c49fbbe |
23-Dec-2014 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Expose the DRAM ranks as a command-line option
This patch gives the user direct influence over the number of DRAM ranks to make it easier to tune the memory density without affecting the bandwidth (previously the only means of scaling the device count was through the number of channels).
The patch also adds some basic sanity checks to ensure that the number of ranks is a power of two (since we rely on bit slices in the address decoding). |
10613:9d0aef7a9b2e |
23-Dec-2014 |
Marco Elver <Marco.Elver@ARM.com> |
config: Add --memchecker option
This patch adds the --memchecker option, to denote that a MemChecker should be instantiated for the system. The exact usage of the MemChecker depends on the system configuration.
For now CacheConfig.py makes use of the option, adding MemCheckerMonitor instances between CPUs and D-Caches.
Note, however, that currently this only provides limited checking on a running system; other parts of the system, such as I/O devices are not monitored, and may cause warnings to be issued by the monitor. |
10608:427f988fe6e5 |
23-Dec-2014 |
Dam Sunwoo <dam.sunwoo@arm.com> |
config: Add options to take/resume from SimPoint checkpoints
More documentation at http://gem5.org/Simpoints
Steps to profile, generate, and use SimPoints with gem5:
1. To profile workload and generate SimPoint BBV file, use the following option:
--simpoint-profile --simpoint-interval <interval length>
Requires single Atomic CPU and fastmem. <interval length> is in number of instructions.
2. Generate SimPoint analysis using SimPoint 3.2 from UCSD. (SimPoint 3.2 not included with this flow.)
3. To take gem5 checkpoints based on SimPoint analysis, use the following option:
--take-simpoint-checkpoint=<simpoint file path>,<weight file path>,<interval length>,<warmup length>
<simpoint file> and <weight file> is generated by SimPoint analysis tool from UCSD. SimPoint 3.2 format expected. <interval length> and <warmup length> are in number of instructions.
4. To resume from gem5 SimPoint checkpoints, use the following option:
--restore-simpoint-checkpoint -r <N> --checkpoint-dir <simpoint checkpoint path>
<N> is (SimPoint index + 1). E.g., "-r 1" will resume from SimPoint #0. |
10594:4fdc929c0aaa |
04-Dec-2014 |
Gabe Black <gabeblack@google.com> |
config: Add two options for setting the kernel command line.
Both options accept template which will, through python string formatting, have "mem", "disk", and "script" values substituted in from the mdesc. Additional values can be used on a case by case basis by passing them as keyword arguments to the fillInCmdLine function. That makes it possible to have specialized parameters for a particular ISA, for instance.
The first option lets you specify the template directly, and the other lets you specify a file which has the template in it. |
10588:145c436a3854 |
03-Dec-2014 |
Gabe Black <gabeblack@google.com> |
config: Get rid of some extra spaces around default arguments. |
10524:fff17530cef6 |
06-Nov-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: interface with classic memory controller This patch is the final in the series. The whole series and this patch in particular were written with the aim of interfacing ruby's directory controller with the memory controller in the classic memory system. This is being done since ruby's memory controller has not being kept up to date with the changes going on in DRAMs. Classic's memory controller is more up to date and supports multiple different types of DRAM. This also brings classic and ruby ever more close. The patch also changes ruby's memory controller to expose the same interface. |
10512:b423e1d0735e |
30-Oct-2014 |
Ali Saidi <Ali.Saidi@ARM.com> |
arm, tests: Update config files to more recent kernels and create 64-bit regressions.
This changes the default ARM system to a Versatile Express-like system that supports 2GB of memory and PCI devices and updates the default kernels/file-systems for AArch64 ARM systems (64-bit) to support up to 32GB of memory and PCI devices. Some platforms that are no longer supported have been pruned from the configuration files.
In addition a set of 64-bit ARM regressions have been added to the regression system. |
10507:f33fab6214c4 |
30-Oct-2014 |
Ali Saidi <Ali.Saidi@ARM.com> |
arm: fix bare-metal memory setup.
The bare-metal configuration option still configured memory with the old scheme that no-longer works. This change unifies the code so there aren't any differences. |
10442:cd2daa931a54 |
11-Oct-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
config: separate function for instantiating a memory controller This patch moves code for instantiating a single memory controller from the function config_mem() to a separate function. This is being done so that memory controllers can be instantiated without assuming that they will be attached to the system in a particular fashion. |
10438:08fa6ad59594 |
16-Jul-2014 |
Jiuyue Ma <majiuyue@ncic.ac.cn> |
config, x86: Ensure that PCI devs get bridged to the memory bus
This patch force IO device to be mapped to 0xC0000000-0xFFFF0000 by reserve anything between the end of memory and 3GB if memory is less than 3GB. It also statically bridge these address range to the IO bus, which guaranty access to pci address space will pass though bridge to iobus.
Committed by: Nilay Vaish <nilay@cs.wisc.edu> |
10437:caec4a7b8b74 |
16-Jul-2014 |
Jiuyue Ma <majiuyue@ncic.ac.cn> |
config, x86: swap bus_id of ISA/PCI in X86 IntelMPTable
This patch assign bus_id=0 to PCI bus and bus_id=1 to ISA bus for X86 platform. Because PCI device get config space address using Pc::calcPciConfigAddr() which requires "assert(bus==0)". This fixes PCI interrupt routing and discovery on Linux.
Committed by: Nilay Vaish <nilay@cs.wisc.edu> |
10405:7a618c07e663 |
20-Sep-2014 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Rename Bus to XBar to better reflect its behaviour
This patch changes the name of the Bus classes to XBar to better reflect the actual timing behaviour. The actual instances in the config scripts are not renamed, and remain as e.g. iobus or membus.
As part of this renaming, the code has also been clean up slightly, making use of range-based for loops and tidying up some comments. The only changes outside the bus/crossbar code is due to the delay variables in the packet. |
10358:644b615fbe6a |
03-Sep-2014 |
Ali Saidi <Ali.Saidi@ARM.com> |
arm: Support >2GB of memory for AArch64 systems |
10357:1aff1376921e |
03-Sep-2014 |
Ali Saidi <Ali.Saidi@ARM.com> |
arm: Assume we have a kernel that supports pci devices
Change the default kernel for AArch64 and since it supports PCI devices remove the hack that made it use CF. Unfortunately, there isn't really a half-way here and we need to switch. Current users will get an error message that the kernel isn't found and hopefully go download a new kernel that supports PCI. |
10353:dfebd39c48a7 |
03-Sep-2014 |
Geoffrey Blake <Geoffrey.Blake@arm.com> |
config: Refactor RealviewEMM to fit into new config system
This eliminates some default devices and adds in helper functions to connect the devices defined here to associate with the proper clock domains. |
10327:5b6279635c49 |
03-Sep-2014 |
Mitch Hayenga <mitch.hayenga@arm.com> |
cpu: Change writeback modeling for outstanding instructions
As highlighed on the mailing list gem5's writeback modeling can impact performance. This patch removes the limitation on maximum outstanding issued instructions, however the number that can writeback in a single cycle is still respected in instToCommit(). |
10262:f3e9fe1600d6 |
28-Jul-2014 |
Anthony Gutierrez <atgutier@umich.edu> |
arm: make the PseudoLRU tags the default for the O3_ARM_v7aL2
the Cortex-A15 has a random replacement policy for its L2 cache. see the Cortex-A15 Technical Reference Manual 1.7 About the L2 memory system. this patch makes the PseudoLRU tags the default for the ARM O3 CPU's L2 cache. |
10259:ebb376f73dd2 |
23-Jul-2014 |
Andrew Bardsley <Andrew.Bardsley@arm.com> |
cpu: `Minor' in-order CPU model
This patch contains a new CPU model named `Minor'. Minor models a four stage in-order execution pipeline (fetch lines, decompose into macroops, decompose macroops into microops, execute).
The model was developed to support the ARM ISA but should be fixable to support all the remaining gem5 ISAs. It currently also works for Alpha, and regressions are included for ARM and Alpha (including Linux boot).
Documentation for the model can be found in src/doc/inside-minor.doxygen and its internal operations can be visualised using the Minorview tool utils/minorview.py.
Minor was designed to be fairly simple and not to engage in a lot of instruction annotation. As such, it currently has very few gathered stats and may lack other gem5 features.
Minor is faster than the o3 model. Sample results:
Benchmark | Stat host_seconds (s) ---------------+--------v--------v-------- (on ARM, opt) | simple | o3 | minor | timing | timing | timing ---------------+--------+--------+-------- 10.linux-boot | 169 | 1883 | 1075 10.mcf | 117 | 967 | 491 20.parser | 668 | 6315 | 3146 30.eon | 542 | 3413 | 2414 40.perlbmk | 2339 | 20905 | 11532 50.vortex | 122 | 1094 | 588 60.bzip2 | 2045 | 18061 | 9662 70.twolf | 207 | 2736 | 1036 |
10243:cfb6b578a89a |
30-Jun-2014 |
Anthony Gutierrez <atgutier@umich.edu> |
arm: make the bi-mode predictor the default for O3_ARM_v7a_BP
the branch predictor used in the Cortex-A15 is a bi-mode style predictor, see:
http://arm.com/files/pdf/at-exploring_the_design_of_the_cortex-a15.pdf and http://nvidia.com/docs/IO/116757/NVIDIA_Quad_a15_whitepaper_FINALv2.pdf
this patch makes the bi-mode predictor the default for the ARM O3 CPU. |
10224:54d3ef2009a2 |
15-May-2014 |
Anthony Gutierrez <atgutier@umich.edu> |
config: remove unecessary assignment of etherlink interfaces
in makeDualRoot() the etherlink interfaces are set using the tsunami interface however, they are set again a few lines later based on whether or not the system is a realview or tsunami system; the original assignment is always overwritten or there will be a fatal. this seems like an artifact from when tsunami was the only type of system capable of running with the dual option. |
10161:ae43fc4d78cb |
14-Apr-2014 |
Anthony Gutierrez <atgutier@umich.edu> |
arm: set default kernels for VExpress_EMM and VExpress_EMM64 |
10159:ca6f1407f8f8 |
10-Apr-2014 |
Gedare Bloom <gedare@rtems.org> |
config: add num-work-ids command line option Adds the parameter --num-work-ids to Options.py and reads the parameter into the System params in Simulation.py. This parameter enables setting the number of possible work items to different than 16. Support for this parameter already exists in src/sim/System.py, so this changeset only affects the Python config files.
Committed by: Nilay Vaish <nilay@cs.wisc.edu> |
10146:27dfed4c8403 |
23-Mar-2014 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Rename SimpleDRAM to a more suitable DRAMCtrl
This patch renames the not-so-simple SimpleDRAM to a more suitable DRAMCtrl. The name change is intended to ensure that we do not send the wrong message (although the "simple" in SimpleDRAM was originally intended as in cleverly simple, or elegant).
As the DRAM controller modelling work is being presented at ISPASS'14 our hope is that a broader audience will use the model in the future. |
10145:d19f759b7340 |
23-Mar-2014 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Change memory defaults to be more representative
Make the default memory type DDR3-1600 x64, and use the open-adaptive page policy. This change is aiming to ensure that users by default are using a realistic memory system. |
10136:ba1ed063e3af |
23-Mar-2014 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: More descriptive address-mapping scheme names
This patch adds the row bits to the name of the address mapping schemes to make it more clear that all the current schemes places the row bits as the most significant bits. |
10118:5e1f04b4d5e4 |
20-Mar-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
config: remove ruby_fs.py
The patch removes the ruby_fs.py file. The functionality is being moved to fs.py. This would being ruby fs simulations in line with how ruby se simulations are started (using --ruby option). The alpha fs config functions are being combined for classing and ruby memory systems. This required renaming the piobus in ruby to iobus. So, we will have stats being renamed in the stats file for ruby fs regression. |
10071:6234ea863e76 |
18-Feb-2014 |
Anthony Gutierrez <atgutier@umich.edu> |
arm: armv8 boot options to enable v8
Modifies FSConfig.py to enable ARMv8 compatibility. To boot gem5 with ARMv8: Download the v8 kernel, .dtb file, and root FS from: http://gem5.org/Download Download the ARMv8 toolchain, and add the bin dir to your path: http://www.linaro.org/engineering/engineering-projects/armv8 Build gem5 for ARM Build the v8 bootloader (in gem5/system/arm/aarch64_bootloader) Make script in gem5/system/arm/aarch64_bootloader will require v8 toolchain, drop the produced boot_emm.arm64 in $(M5_PATH)/binaries/ Run: $ build/ARM/gem5.fast configs/example/fs.py --machine-type=VExpress_EMM64 \ --kernel=/path/to/kernel/vmlinux-linaro-tracking \ --dtb-filename=/path/to/dtb/rtsm_ve-aemv8a.dtb \ --disk-image=/path/to/img/linaro-minimal-armv8.img |
10066:06a33d872798 |
18-Feb-2014 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Add a wrapped DRAMSim2 memory controller
This patch adds DRAMSim2 as a memory controller by wrapping the external library and creating a sublass of AbstractMemory that bridges between the semantics of gem5 and the DRAMSim2 interface.
The DRAMSim2 wrapper extracts the clock period from the config file. There is no way of extracting this information from DRAMSim2 itself, so we simply read the same config file and get it from there.
To properly model the response queue, the wrapper keeps track of how many transactions are in the actual controller, and how many are stacking up waiting to be sent back as responses (in the wrapper). The latter requires us to move away from the queued port and manage the packets ourselves. This is due to DRAMSim2 not having any flow control on the response path.
DRAMSim2 assumes that the transactions it is given are matching the burst size of the choosen memory. The wrapper checks to ensure the cache line size of the system matches the burst size of DRAMSim2 as there are currently no provisions to split the system requests. In theory we could allow a cache line size smaller than the burst size, but that would lead to inefficient use of the DRAM, so for not we fatal also in this case. |
10046:8b7425bd3196 |
28-Jan-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
x86: add a warning about the number of memory controllers When memory size > 3GB, print a warning that twice the number of memory controllers would be created. |
10041:fae4550d2103 |
27-Jan-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
config: allow more than 3GB of memory for x86 simulations This patch edits the configuration files so that x86 simulations can have more than 3GB of memory. It also corrects a bug in the MemConfig.py script. |
10037:5cac77888310 |
24-Jan-2014 |
ARM gem5 Developers |
arm: Add support for ARMv8 (AArch64 & AArch32)
Note: AArch64 and AArch32 interworking is not supported. If you use an AArch64 kernel you are restricted to AArch64 user-mode binaries. This will be addressed in a later patch.
Note: Virtualization is only supported in AArch32 mode. This will also be fixed in a later patch.
Contributors: Giacomo Gabrielli (TrustZone, LPAE, system-level AArch64, AArch64 NEON, validation) Thomas Grocutt (AArch32 Virtualization, AArch64 FP, validation) Mbou Eyole (AArch64 NEON, validation) Ali Saidi (AArch64 Linux support, code integration, validation) Edmund Grimley-Evans (AArch64 FP) William Wang (AArch64 Linux support) Rene De Jong (AArch64 Linux support, performance opt.) Matt Horsnell (AArch64 MP, validation) Matt Evans (device models, code integration, validation) Chris Adeniyi-Jones (AArch64 syscall-emulation) Prakash Ramrakhyani (validation) Dam Sunwoo (validation) Chander Sudanthi (validation) Stephan Diestelhorst (validation) Andreas Hansson (code integration, performance opt.) Eric Van Hensbergen (performance opt.) Gabe Black |
10003:459491344fcf |
03-Jan-2014 |
Steve Reinhardt <steve.reinhardt@amd.com> |
config, x86: move kernel specification from tests to FSConfig.py
For some reason, the default x86 kernel is specified in tests/configs/x86_generic.py and not in configs/common/FSConfig.py, where the kernels for all the other ISAs are. This means that running configs/example/fs.py for x86 fails because no kernel is specified. Moving the specification over fixes this problem.
There is another problem that this uncovers, which is that going past the init stage (i.e., past where the regression test stops) fails because the fsck test on the disk device fails, but that's a separate issue. |
9982:b2bfc23f932c |
15-Nov-2013 |
Anthony Gutierrez <atgutier@umich.edu> |
cpu: allow the fetch buffer to be smaller than a cache line
the current implementation of the fetch buffer in the o3 cpu is only allowed to be the size of a cache line. some architectures, e.g., ARM, have fetch buffers smaller than a cache line, see slide 22 at: http://www.arm.com/files/pdf/at-exploring_the_design_of_the_cortex-a15.pdf
this patch allows the fetch buffer to be set to values smaller than a cache line. |
9935:cc9dc514036e |
17-Oct-2013 |
Dam Sunwoo <dam.sunwoo@arm.com> |
util: Streamline .apc project convertsion script
This Python script generates an ARM DS-5 Streamline .apc project based on gem5 run. To successfully convert, the gem5 runs needs to be run with the context-switch-based stats dump option enabled (The guest kernel also needs to be patched to allow gem5 interrogate its task information.) See help for more information. |
9929:d6f0e70fd0d4 |
17-Oct-2013 |
Ali Saidi <Ali.Saidi@ARM.com> |
arm, config: Fix a small issue with the dtb file being specified |
9909:0679c3554ba3 |
09-Oct-2013 |
Nilay Vaish <nilay@cs.wisc.edu> |
config: correct example ruby scripts A couple of recent changesets added/deleted/edited some variables that are needed for running the example ruby scripts. This changeset edits these scripts to bring them to a working state. |
9898:2935441b0870 |
29-Sep-2013 |
Andreas Sandberg <andreas@sandberg.pp.se> |
x86: Add support for m5ops through a memory mapped interface
In order to support m5ops in virtualized environments, we need to use a memory mapped interface. This changeset adds support for that by reserving 0xFFFF0000-0xFFFFFFFF and mapping those to the generic IPR interface for m5ops. The mapping is done in the X86ISA::TLB::finalizePhysical() which means that it just works for all of the CPU models, including virtualized ones. |
9891:19fa1dfd583f |
30-Sep-2013 |
Andreas Sandberg <andreas@sandberg.pp.se> |
config: Add a 'kvm' CPU alias
Add a CPU alias, 'kvm', for the first available KVM-accelerated CPU model. |
9867:650fc966ed78 |
11-Sep-2013 |
Joel Hestness <jthestness@gmail.com> |
config: Initialize and check cpt_starttick
The previous changeset (9816) that fixes the use of max ticks introduced the variable cpt_starttick, which is used for setting the relative max tick. Unfortunately, with checkpointing at an instruction count or with simpoints, the checkpoint tick is not stored conveniently, so to ensure that cpt_starttick is initialized, set it to 0. Also, if using --rel-max-tick, check the use of instruction counts or simpoints to warn the user that the max tick setting does not include the checkpoint ticks. |
9845:3f6e2f267aba |
26-Aug-2013 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Fix configuration files for bare-metal binaries. |
9836:4411b4e0c03a |
19-Aug-2013 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Command line support for multi-channel memory
This patch adds support for specifying multi-channel memory configurations on the command line, e.g. 'se/fs.py --mem-type=ddr3_1600_x64 --mem-channels=4'. To enable this, it enhances the functionality of MemConfig and moves the existing makeMultiChannel class method from SimpleDRAM to the support scripts.
The se/fs.py example scripts are updated to make use of the new feature. |
9827:f47274776aa0 |
19-Aug-2013 |
Akash Bagdia <akash.bagdia@arm.com> |
power: Add voltage domains to the clock domains
This patch adds the notion of voltage domains, and groups clock domains that operate under the same voltage (i.e. power supply) into domains. Each clock domain is required to be associated with a voltage domain, and the latter requires the voltage to be explicitly set.
A voltage domain is an independently controllable voltage supply being provided to section of the design. Thus, if you wish to perform dynamic voltage scaling on a CPU, its clock domain should be associated with a separate voltage domain.
The current implementation of the voltage domain does not take into consideration cases where there are derived voltage domains running at ratio of native voltage domains, as with the case where there can be on-chip buck/boost (charge pumps) voltage regulation logic.
The regression and configuration scripts are updated with a generic voltage domain for the system, and one for the CPUs. |
9826:014ff1fbff6d |
19-Aug-2013 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Move the memory instantiation outside FSConfig
This patch moves the instantiation of the memory controller outside FSConfig and instead relies on the mem_ranges to pass the information to the caller (e.g. fs.py or one of the regression scripts). The main motivation for this change is to expose the structural composition of the memory system and allow more tuning and configuration without adding a large number of options to the makeSystem functions.
The patch updates the relevant example scripts to maintain the current functionality. As the order that ports are connected to the memory bus changes (in certain regresisons), some bus stats are shuffled around. For example, what used to be layer 0 is now layer 1.
Going forward, options will be added to support the addition of multi-channel memory controllers. |
9816:971507cbbe65 |
18-Jul-2013 |
Joel Hestness <jthestness@gmail.com> |
Configs: Fix up maxtick and maxtime
This patch contains three fixes to max tick options handling in Options.py and Simulation.py:
1) Since the global simulator frequency isn't bound until m5.instantiate() is called, the maxtick resolution needs to happen after this call, since changes to the global frequency will cause m5.simulate() to misinterpret the maxtick value. Shuffling this also requires tweaking the checkpoint directory handling to signal the checkpoint restore tick back to run(). Fixing this completely and correctly will require storing the simulation frequency into checkpoints, which is beyond the scope of this patch.
2) The maxtick option in Options.py was defaulted to MaxTicks, so the old code would always skip over the maxtime part of the conditionals at the beginning of run(). Change the maxtick default to None, and set the maxtick local variable in run() appropriately.
3) To clarify whether max ticks settings are relative or absolute, split the maxtick option into separate options, for relative and absolute. Ensure that these two options and the maxtime option are handled appropriately to set the maxtick variable in Simulation.py. |
9815:3b3b94536547 |
18-Jul-2013 |
Andreas Hansson <andreas.hansson> |
config: Update script to set cache line size on system
This patch changes the config scripts such that they do not set the cache line size per cache instance, but rather for the system as a whole. |
9800:5fdd91246b7b |
28-Jun-2013 |
Nilay Vaish <nilay@cs.wisc.edu> |
configs: rearrange the available options in Options.py It also changes the instantiation of physmem in se.py so as to make use of the memory size supplied by the mem_size option. |
9793:6e6cefc1db1f |
27-Jun-2013 |
Akash Bagdia <akash.bagdia@arm.com> |
sim: Add the notion of clock domains to all ClockedObjects
This patch adds the notion of source- and derived-clock domains to the ClockedObjects. As such, all clock information is moved to the clock domain, and the ClockedObjects are grouped into domains.
The clock domains are either source domains, with a specific clock period, or derived domains that have a parent domain and a divider (potentially chained). For piece of logic that runs at a derived clock (a ratio of the clock its parent is running at) the necessary derived clock domain is created from its corresponding parent clock domain. For now, the derived clock domain only supports a divider, thus ensuring a lower speed compared to its parent. Multiplier functionality implies a PLL logic that has not been modelled yet (create a separate clock instead).
The clock domains should be used as a mechanism to provide a controllable clock source that affects clock for every clocked object lying beneath it. The clock of the domain can (in a future patch) be controlled by a handler responsible for dynamic frequency scaling of the respective clock domains.
All the config scripts have been retro-fitted with clock domains. For the System a default SrcClockDomain is created. For CPUs that run at a different speed than the system, there is a seperate clock domain created. This domain incorporates the CPU and the associated caches. As before, Ruby runs under its own clock domain.
The clock period of all domains are pre-computed, such that no virtual functions or multiplications are needed when calling clockPeriod. Instead, the clock period is pre-computed when any changes occur. For this to be possible, each clock domain tracks its children. |
9791:39c75548bcd4 |
27-Jun-2013 |
Akash Bagdia <akash.bagdia@arm.com> |
config: Rename clock option to Ruby clock
This patch changes the 'clock' option to 'ruby-clock' as it is only used by Ruby. |
9790:ccc428657233 |
27-Jun-2013 |
Akash Bagdia <akash.bagdia@arm.com> |
config: Add a system clock command-line option
This patch adds a 'sys_clock' command-line option and use it to assign clocks to the system during instantiation.
As part of this change, the default clock in the System class is removed and whenever a system is instantiated a system clock value must be set. A default value is provided for the command-line option.
The configs and tests are updated accordingly. |
9789:233420718e61 |
27-Jun-2013 |
Akash Bagdia <akash.bagdia@arm.com> |
config: Add a CPU clock command-line option
This patch adds a 'cpu_clock' command-line option and uses the value to assign clocks to components running at the CPU speed (L1 and L2 including the L2-bus). The configuration scripts are updated accordingly.
The 'clock' option is left unchanged in this patch as it is still used by a number of components. In follow-on patches the latter will be disambiguated further. |
9736:20ae86ebd4c2 |
03-Jun-2013 |
Andreas Sandberg <andreas@sandberg.pp.se> |
config: Add missing CPUs to --restore-with-cpu
The --restore-with-cpu option didn't use CpuConfig.cpu_names() to determine which CPU names are valid, instead it used a static list of known CPU names. This changeset makes the option parsing code use the CPU list from the CpuConfig module instead. |
9728:7daeab1685e9 |
30-May-2013 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: More descriptive DRAM config names
This patch changes the class names of the variuos DRAM configurations to better reflect what memory they are based on. The speed and interface width is now part of the name, and also the alias that is used to select them on the command line.
Some minor changes are done to the actual parameters, to better reflect the named configurations. As a result of these changes the regressions change slightly and the stats will be bumped in a separate patch. |
9709:fe54045c8670 |
30-May-2013 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Add a LPDDR3-1600 configuration
This patch adds a typical (leaning towards fast) LPDDR3 configuration based on publically available data. As expected, it looks very similar to the LPDDR2-S4 configuration, only with a slightly lower burst time. |
9707:1305bec2733f |
30-May-2013 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Avoid explicitly zeroing the memory backing store
This patch removes the explicit memset as it is redundant and causes the simulator to touch the entire space, forcing the host system to allocate the pages.
Anonymous pages are mapped on the first access, and the page-fault handler is responsible for zeroing them. Thus, the pages are still zeroed, but we avoid touching the entire allocated space which enables us to use much larger memory sizes as long as not all the memory is actually used. |
9691:b1be1df904c9 |
14-May-2013 |
Anthony Gutierrez <atgutier@umich.edu> |
cpu: remove local/globalHistoryBits params from branch pred
having separate params for the local/globalHistoryBits and the local/globalPredictorSize can lead to inconsistencies if they are not carefully set. this patch dervies the number of bits necessary to index into the local/global predictors based on their size.
the value of the localHistoryTableSize for the ARM O3 CPU has been increased to 1024 from 64, which is more accurate for an A15 based on some correlation against A15 hardware. |
9665:6dbdeee787cc |
22-Apr-2013 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Add a mem-type config option to se/fs scripts
This patch enables selection of the memory controller class through a mem-type command-line option. Behind the scenes, this option is treated much like the cpu-type, and a similar framework is used to resolve the valid options, and translate the short-hand description to a valid class.
The regression scripts are updated with a hardcoded memory class for the moment. The best solution going forward is probably to get the memory out of the makeSystem functions, but Ruby complicates things as it does not connect the memory controller to the membus. |
9647:5b6b315472e7 |
22-Apr-2013 |
Dam Sunwoo <dam.sunwoo@arm.com> |
cpu: generate SimPoint basic block vector profiles
This patch is based on http://reviews.m5sim.org/r/1474/ originally written by Mitch Hayenga. Basic block vectors are generated (simpoint.bb.gz in simout folder) based on start and end addresses of basic blocks.
Some comments to the original patch are addressed and hooks are added to create and resume from checkpoints based on instruction counts dictated by external SimPoint analysis tools.
SimPoint creation/resuming options will be implemented as a separate patch. |
9634:37a6fb91f96d |
09-Apr-2013 |
Joel Hestness <jthestness@gmail.com> |
Configs: Fix handling of maxtick and take_checkpoints
In Simulation.py, calls to m5.simulate(num_ticks) will run the simulated system for num_ticks after the current tick. Fix calls to m5.simulate in scriptCheckpoints() and benchCheckpoints() to appropriately handle the maxticks variable. |
9622:d351a723eb02 |
28-Mar-2013 |
Nilay Vaish <nilay@cs.wisc.edu> |
x86: create space in bios memory map As of now, we mark the top 1MB of memory space as unusable. Part of it is actually usable and is required to be marked so by some of the newer versions of linux kernel. This patch marks the top 639KB as usable. This value was chosen by looking at QEMU's output for bios memory map. |
9606:0a4b702628bd |
22-Mar-2013 |
Nilay Vaish <nilay@cs.wisc.edu> |
config: return exit event instead of cause changeset: a4739b6f799d made some changes that where an exit event should have been returned in place of exit cause. This patch corrects the error. |
9562:7f9d6e971ada |
20-Feb-2013 |
Ali Saidi <saidi@eecs.umich.edu> |
config: Fix --prog-interval command line option |
9539:0ac00d9a8aaf |
15-Feb-2013 |
Anthony Gutierrez <atgutier@umich.edu> |
options: add command line option for dtb file |
9522:9290a0198c50 |
15-Feb-2013 |
Andreas Sandberg <Andreas.Sandberg@ARM.com> |
config: Remove O3 dependencies
The default cache configuration script currently import the O3_ARM_v7a model configuration, which depends on the O3 CPU. This breaks if gem5 has been compiled without O3 support. This changeset removes the dependency by only importing the model if it is requested by the user. As a bonus, it actually removes some code duplication in the configuration scripts. |
9521:1cd02decbfd3 |
15-Feb-2013 |
Andreas Sandberg <Andreas.Sandberg@ARM.com> |
config: Move CPU handover logic to m5.switchCpus()
CPU switching consists of the following steps: 1. Drain the system 2. Switch out old CPUs (cpu.switchOut()) 3. Change the system timing mode to the mode the new CPUs require 4. Flush caches if switching to hardware virtualization 5. Inform new CPUs of the handover (cpu.takeOverFrom()) 6. Resume the system
m5.switchCpus() previously only did step 2 & 5. Since information about the new processors' memory system requirements is now exposed, do all of the steps above.
This patch adds automatic memory system switching and flush (if needed) to switchCpus(). Additionally, it adds optional draining to switchCpus(). This has the following implications:
* changeToTiming and changeToAtomic are no longer needed, so they have been removed.
* changeMemoryMode is only used internally, so it is has been renamed to be private.
* switchCpus requires a reference to the system containing the CPUs as its first parameter.
WARNING: This changeset breaks compatibility with existing configuration scripts since it changes the signature of m5.switchCpus(). |
9520:ea7c03ae2d5e |
15-Feb-2013 |
Andreas Sandberg <Andreas.Sandberg@ARM.com> |
config: Cleanup CPU configuration
The CPUs supported by the configuration scripts used to be hard-coded. This was not ideal for several reasons. For example, the configuration scripts depend on all CPU models even though only a subset might have been compiled.
This changeset adds a new module to the configuration scripts that automatically discovers the available CPU models from the compiled SimObjects. As a nice bonus, the use of introspection allows us to automatically generate a list of available CPU models suitable for printing. This list is augmented with the Python doc string from the underlying class if available. |
9518:8faae62af8c3 |
15-Feb-2013 |
Andreas Sandberg <Andreas.Sandberg@ARM.com> |
cpu: Add CPU metadata om the Python classes
The configuration scripts currently hard-code the requirements of each CPU. This is clearly not optimal as it makes writing new configuration scripts painful and adding new CPU models requires existing scripts to be updated. This patch adds the following class methods to the base CPU and all relevant CPUs:
* memory_mode -- Return a string describing the current memory mode (invalid/atomic/timing).
* require_caches -- Does the CPU model require caches?
* support_take_over -- Does the CPU support CPU handover? |
9494:50da272a1300 |
10-Feb-2013 |
Andreas Sandberg <andreas@sandberg.pp.se> |
config: Don't call sys.exit in interactive mode in run()
The run() method in Simulation.py used to call sys.exit() when the simulator exits. This is undesirable when user has requested the simulator to be run in interactive mode since it causes the simulator to exit rather than entering the interactive Python environment. |
9489:172dbcb74a0e |
31-Jan-2013 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Add DDR3 and LPDDR2 DRAM controller configurations
This patch moves the default DRAM parameters from the SimpleDRAM class to two different subclasses, one for DDR3 and one for LPDDR2. More can be added as we go forward.
The regressions that previously used the SimpleDRAM are now using SimpleDDR3 as this is the most similar configuration. |
9480:d059f8a95a42 |
24-Jan-2013 |
Nilay Vaish <nilay@cs.wisc.edu>, Timothy Jones <timothy.jones@cl.cam.ac.uk> |
branch predictor: move out of o3 and inorder cpus This patch moves the branch predictor files in the o3 and inorder directories to src/cpu/pred. This allows sharing the branch predictor across different cpu models.
This patch was originally posted by Timothy Jones in July 2010 but never made it to the repository. |
9460:5532a1642108 |
08-Jan-2013 |
Ali Saidi <saidi@eecs.umich.edu> |
config: Fix issue with changeset: a4739b6f799d. |
9457:a4739b6f799d |
08-Jan-2013 |
LluÃs Vilanova <vilanova@ac.upc.edu> |
util: add m5_fail op.
Used as a command in full-system scripts helps the user ensure the benchmarks have finished successfully.
For example, one can use:
/path/to/benchmark args || /sbin/m5 fail 1
and thus ensure gem5 will exit with an error if the benchmark fails. |
9433:34971d2e0019 |
07-Jan-2013 |
Andreas Sandberg <Andreas.Sandberg@ARM.com> |
cpu: Rename defer_registration->switched_out
The defer_registration parameter is used to prevent a CPU from initializing at startup, leaving it in the "switched out" mode. The name of this parameter (and the help string) is confusing. This patch renames it to switched_out, which should be more descriptive. |
9408:10a84dceab25 |
07-Jan-2013 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Do not use hardcoded physmem in fs script
This patch generalises the address range resolution for the I/O cache and I/O bridge such that they do not assume a single memory. The patch involves adding a parameter to the system which is then defined based on the memories that are to be visible from the I/O subsystem, whether behind a cache or a bridge.
The change is needed to allow interleaved memory controllers in the system. |
9360:515891d9057a |
06-Dec-2012 |
Erik Tomusk <E.Tomusk@sms.ed.ac.uk> |
TournamentBP: Fix some bugs with table sizes and counters globalHistoryBits, globalPredictorSize, and choicePredictorSize are decoupled. globalHistoryBits controls how much history is kept, global and choice predictor sizes control how much of that history is used when accessing predictor tables. This way, global and choice predictors can actually be different sizes, and it is no longer possible to walk off the predictor arrays and cause a seg fault.
There are now individual thresholds for choice, global, and local saturating counters, so that taken/not taken decisions are correct even when the predictors' counters' sizes are different.
The interface for localPredictorSize has been removed from TournamentBP because the value can be calculated from localHistoryBits.
Committed by: Nilay Vaish <nilay@cs.wisc.edu> |
9357:94383c5124d2 |
19-Nov-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Fix description of checkpoint option from cycle to tick
This patch merely updates the description of the "take-checkpoints" option to reflect that it is specified in ticks and not in cycles. |
9344:7f966113afd1 |
02-Nov-2012 |
Andreas Sandberg <Andreas.Sandberg@arm.com> |
python: Rename doDrain()->drain() and make it do the right thing
There is no point in exporting the old drain() method in Simulate.py. It should only be used internally by doDrain(). This patch moves the old drain() method into doDrain() and renames doDrain() to drain(). |
9326:96ae1c545fb5 |
02-Nov-2012 |
Andreas Sandberg <Andreas.Sandberg@arm.com> |
Partly revert [4f54b0f229b5] and move draining to m5.changeToTiming
Changeset 4f54b0f229b5 removed the call to doDrain in changeToTiming based on the assumption that the system does not need draining when running in atomic mode. This is a false assumption since at least the System class requires the system to be drained before it allows switching of memory modes. This patch reverts that part of the changeset. |
9321:7f0464326b2b |
30-Oct-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Unify caches used in regressions and adjust L2 MSHRs
This patch unified the L1 and L2 caches used throughout the regressions instead of declaring different, but very similar, configurations in the different scripts.
The patch also changes the default L2 configuration to match what it used to be for the fs and se scripts (until the last patch that updated the regressions to also make use of the cache config). The MSHRs and targets per MSHR are now set to a more realistic default of 20 and 12, respectively.
As a result of both the aforementioned changes, many of the regression stats are changed. A follow-on patch will bump the stats. |
9315:2e00867b5001 |
26-Oct-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Fix the cache class naming in regression scripts
This patch unifies the naming of the default L1 and L2 caches in the regression configs to be in line with what is used in the se and fs scripts. |
9311:227d19399b51 |
25-Oct-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Use SimpleDRAM in full-system, and with o3 and inorder
This patch favours using SimpleDRAM with the default timing instead of SimpleMemory for all regressions that involve the o3 or inorder CPU, or are full system (in other words, where the actual performance of the memory is important for the overall performance).
Moving forward, the solution for FSConfig and the users of fs.py and se.py is probably something similar to what we use to choose the CPU type. I envision a few pre-set configurations SimpleLPDDR2, SimpleDDR3, etc that can be choosen by a dram_type option. Feedback on this part is welcome.
This patch changes plenty stats and adds all the DRAM controller related stats. A follow-on patch updates the relevant statistics. The total run-time for the entire regression goes up with ~5% with this patch due to the added complexity of the SimpleDRAM model. This is a concious trade-off to ensure that the model is properly tested. |
9310:aa7bf10e822a |
25-Oct-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Use shared cache config for regressions
This patch uses the common L1, L2 and IOCache configuration for the regressions that all share the same cache parameters. There are a few regressions that use a slightly different configuration (memtest, o3-timing=mp, simple-atomic-mp and simple-timing-mp), and the latter are not changed in this patch. They will be updated in a future patch.
The common cache configurations are changed to match the ones used in the regressions, and are slightly changed with respect to what they were. Hopefully this means we can converge on a common base configuration, used both in the normal user configurations and regressions.
As only regressions that shared the same cache configuration are updated, no regressions are affected. |
9288:3d6da8559605 |
15-Oct-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
Mem: Use cycles to express cache-related latencies
This patch changes the cache-related latencies from an absolute time expressed in Ticks, to a number of cycles that can be scaled with the clock period of the caches. Ultimately this patch serves to enable future work that involves dynamic frequency scaling. As an immediate benefit it also makes it more convenient to specify cache performance without implicitly assuming a specific CPU core operating frequency.
The stat blocked_cycles that actually counter in ticks is now updated to count in cycles.
As the timing is now rounded to the clock edges of the cache, there are some regressions that change. Plenty of them have very minor changes, whereas some regressions with a short run-time are perturbed quite significantly. A follow-on patch updates all the statistics for the regressions. |
9284:f4ff625eae56 |
15-Oct-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
Regression: Use CPU clock and 32-byte width for L1-L2 bus
This patch changes the CoherentBus between the L1s and L2 to use the CPU clock and also four times the width compared to the default bus. The parameters are not intending to fit every single scenario, but rather serve as a better startingpoint than what we previously had.
Note that the scripts that do not use the addTwoLevelCacheHiearchy are not affected by this change.
A separate patch will update the stats. |
9263:066099902102 |
25-Sep-2012 |
Mrinmoy Ghosh <mrinmoy.ghosh@arm.com> |
Cache: add a response latency to the caches
In the current caches the hit latency is paid twice on a miss. This patch lets a configurable response latency be set of the cache for the backward path. |
9232:3bb99fab80d4 |
19-Sep-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
AddrRange: Simplify AddrRange params Python hierarchy
This patch simplifies the Range object hierarchy in preparation for an address range class that also allows striping (e.g. selecting a few bits as matching in addition to the range).
To extend the AddrRange class to an AddrRegion, the first step is to simplify the hierarchy such that we can make it as lean as possible before adding the new functionality. The only class using Range and MetaRange is AddrRange, and the three classes are now collapsed into one. |
9221:4f54b0f229b5 |
12-Sep-2012 |
Joel Hestness <hestness@cs.wisc.edu> |
Standard Switch: Drain the system before switching CPUs When switching from an atomic CPU to any of the timing CPUs, a drain is unnecessary since no events are scheduled in atomic mode. However, when trying to switch CPUs starting with a timing CPU, there may be events scheduled. This change ensures that all events are drained from the system by calling m5.drain before switching CPUs. |
9215:a67412670f37 |
11-Sep-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
Checkpoint: Pass maxtick to avoid undefined variable
This patch fixes a bug in scriptCheckpoints, where maxtick was used undefined. The bug caused checkpointing by means of --take-checkpoints to fail. |
9197:0281650db548 |
09-Sep-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
se.py: support specifying multiple programs via command line This patch allows for specifying multiple programs via command line. It also adds an option for specifying whether to use of SMT. But SMT does not work for the o3 cpu as of now. |
9164:d112473185ea |
22-Aug-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
Bridge: Remove NACKs in the bridge and unify with packet queue
This patch removes the NACKing in the bridge, as the split request/response busses now ensure that protocol deadlocks do not occur, i.e. the message-dependency chain is broken by always allowing responses to make progress without being stalled by requests. The NACKs had limited support in the system with most components ignoring their use (with a suitable call to panic), and as the NACKs are no longer needed to avoid protocol deadlocks, the cleanest way is to simply remove them.
The bridge is the starting point as this is the only place where the NACKs are created. A follow-up patch will remove the code that deals with NACKs in the endpoints, e.g. the X86 table walker and DMA port. Ultimately the type of packet can be complete removed (until someone sees a need for modelling more complex protocols, which can now be done in parts of the system since the port and interface is split).
As a consequence of the NACK removal, the bridge now has to send a retry to a master if the request or response queue was full on the first attempt. This change also makes the bridge ports very similar to QueuedPorts, and a later patch will change the bridge to use these. A first step in this direction is taken by aligning the name of the member functions, as done by this patch.
A bit of tidying up has also been done as part of the simplifications.
Surprisingly, this patch has no impact on any of the regressions. Hence, there was never any NACKs issued. In a follow-up patch I would suggest changing the size of the bridge buffers set in FSConfig.py to also test the situation where the bridge fills up. |
9156:38dd0780322a |
21-Aug-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
Checkpoint: Fix broken checkpointing functionality
This patch fixes the checkpointing by ensuring that the directory is passer to the scriptCheckpoints function, and that the num_checkpoints is not used before it is initialised. |
9151:a4faa7dde56c |
15-Aug-2012 |
Anthony Gutierrez <atgutier@umich.edu> |
configs: add option for repeatedly switching back-and-forth between cpu types.
This patch adds a --repeat-switch option that will enable repeat core switching at a user defined period (set with --switch-freq option). currently, a switch can only occur between like CPU types. inorder CPU switching is not supported.
*note* this patch simply allows a config that will perform repeat switching, it does not fix drain/switchout functionality. if you run with repeat switching you will hit assertion failures and/or your workload with hang or die. |
9140:cfd2a8364ea1 |
06-Aug-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Simulation.py: move code related to checkpointing to functions This patch moves the code related to checkpointing from the run() function to several different functions. The aim is to make the code more manageable. No functionality changes are expected, but since the code is kind of unruly, it is possible that some change might have creeped in. |
9139:ee038fbbe5d2 |
06-Aug-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Config: change how cpu class is set This changes the way in which the cpu class while restoring from a checkpoint is set. Earlier it was assumed if cpu type with which to restore is not same as the cpu type with the which to run the simulation, then the checkpoint should be restored with the atomic cpu. This assumption is being dropped. The checkpoint can now be restored with any cpu type, the default being atomic cpu. |
9129:b57966a6c512 |
23-Jul-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
Config: Use clock option in se/fs script and pass to switch_cpus
This patch changes the se and fs script to use the clock option and not simply set the CPUs clock to 2 GHz. It also makes a minor change to the assignment of the switch_cpus clock to allow different clocks. |
9070:fa77985a87c6 |
11-Jun-2012 |
Anthony Gutierrez <atgutier@umich.edu> |
configs: add run scripts for ics/gb versions of android and bbench
1) Modifies Benchmarks.py to add support for Android ICS and BBench on Android ICS.
2) An rcS script is added for BBench on ICS.
3) Separates benchmark entries and rcS scripts for GB/ICS
4) Removes the debugging output from the existing BBench run script. These print statements were used for debugging and they seemed to confuse users into believing they should see some terminal output. |
9060:ee4104e628f3 |
07-Jun-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Config: Remove setMipsOptions As status matrix, MIPS fs does not work. Hence, these options are not required. Secondly, the function is setting param values for a CPU class. This seems strange, should probably be done in a different way. |
9059:95b525b1d3a0 |
07-Jun-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Config: changes to a couple of error msgs |
9036:6385cf85bf12 |
31-May-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
Bus: Split the bus into a non-coherent and coherent bus
This patch introduces a class hierarchy of buses, a non-coherent one, and a coherent one, splitting the existing bus functionality. By doing so it also enables further specialisation of the two types of buses.
A non-coherent bus connects a number of non-snooping masters and slaves, and routes the request and response packets based on the address. The request packets issued by the master connected to a non-coherent bus could still snoop in caches attached to a coherent bus, as is the case with the I/O bus and memory bus in most system configurations. No snoops will, however, reach any master on the non-coherent bus itself. The non-coherent bus can be used as a template for modelling PCI, PCIe, and non-coherent AMBA and OCP buses, and is typically used for the I/O buses.
A coherent bus connects a number of (potentially) snooping masters and slaves, and routes the request and response packets based on the address, and also forwards all requests to the snoopers and deals with the snoop responses. The coherent bus can be used as a template for modelling QPI, HyperTransport, ACE and coherent OCP buses, and is typically used for the L1-to-L2 buses and as the main system interconnect.
The configuration scripts are updated to use a NoncoherentBus for all peripheral and I/O buses.
A bit of minor tidying up has also been done. |
8976:73b178a5d564 |
03-May-2012 |
Jayneel Gandhi <jayneel@cs.wisc.edu> |
Config: Fix help msg for option --mem-size |
8956:1df031399919 |
16-Apr-2012 |
Jayneel Gandhi <jayneel@cs.wisc.edu> |
Config: Add command line options for disk image and memory size Added the options to Options.py for FS mode with backward compatibility. It is good to provide an option to specify the disk image and the memory size from command line since a lot of disk images are created to support different benchmark suites as well as per user needs. Change in program also leads to change in memory requirements. These options provide the interface to provide both disk image and memory size from the command line and gives more flexibility. |
8931:7a1dfb191e3f |
06-Apr-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
MEM: Enable multiple distributed generalized memories
This patch removes the assumption on having on single instance of PhysicalMemory, and enables a distributed memory where the individual memories in the system are each responsible for a single contiguous address range.
All memories inherit from an AbstractMemory that encompasses the basic behaviuor of a random access memory, and provides untimed access methods. What was previously called PhysicalMemory is now SimpleMemory, and a subclass of AbstractMemory. All future types of memory controllers should inherit from AbstractMemory.
To enable e.g. the atomic CPU and RubyPort to access the now distributed memory, the system has a wrapper class, called PhysicalMemory that is aware of all the memories in the system and their associated address ranges. This class thus acts as an infinitely-fast bus and performs address decoding for these "shortcut" accesses. Each memory can specify that it should not be part of the global address map (used e.g. by the functional memories by some testers). Moreover, each memory can be configured to be reported to the OS configuration table, useful for populating ATAG structures, and any potential ACPI tables.
Checkpointing support currently assumes that all memories have the same size and organisation when creating and resuming from the checkpoint. A future patch will enable a more flexible re-organisation. |
8929:4148f9af0b70 |
05-Apr-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Config: corrects the way Ruby attaches to the DMA ports With recent changes to the memory system, a port cannot be assigned a peer port twice. While making use of the Ruby memory system in FS mode, DMA ports were assigned peer twice, once for the classic memory system and once for the Ruby memory system. This patch removes this double assignment of peer ports. |
8920:99083b5b7ed4 |
28-Mar-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Config: Change the way options are added I am not too happy with the way options are added in files se.py and fs.py currently. This patch moves all the options to the file Options.py, functions from which are called when required. |
8919:c1366a30d5eb |
27-Mar-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Config: Move setWorkCountOptions() to Simulation.py The function is presently defined in FSConfig.py, which does not seem to be the correct place for it. |
8898:f777750a00e2 |
16-Mar-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
FSConfig.py: fix a typo makeLinuxAlphaRubySystem |
8894:351585c17699 |
09-Mar-2012 |
Ali Saidi <saidi@eecs.umich.edu> |
ARM: Fix memory starting at non-zero address and exceeding max mem for a system. |
8887:20ea02da9c53 |
09-Mar-2012 |
Geoffrey Blake <geoffrey.blake@arm.com> |
CheckerCPU: Make CheckerCPU runtime selectable instead of compile selectable
Enables the CheckerCPU to be selected at runtime with the --checker option from the configs/example/fs.py and configs/example/se.py configuration files. Also merges with the SE/FS changes. |
8870:f95c4042f2d0 |
01-Mar-2012 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Add support for Versatile Express extended memory map
Also clean up how we create boot loader memory a bit. |
8863:50ce4deacda9 |
01-Mar-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
x86: Fix switching of CPUs This patch prevents creation of interrupt controller for cpus that will be switched in later |
8862:dedd8be81731 |
01-Mar-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Config: make option ruby available always |
8858:c68ae0f78d8e |
26-Feb-2012 |
Gabe Black <gblack@eecs.umich.edu> |
Make the IO bridge accept address headed to all the local APICs. |
8846:2eaf1809c6c6 |
14-Feb-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
Script: Fix the scripts that use the num_cpus cache parameter
This patch merely removes the use of the num_cpus cache parameter which no longer exists after the introduction of the masterIds. The affected scripts fail when trying to set the parameter. Note that this patch does not update the regression stats. |
8839:eeb293859255 |
13-Feb-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
MEM: Introduce the master/slave port roles in the Python classes
This patch classifies all ports in Python as either Master or Slave and enforces a binding of master to slave. Conceptually, a master (such as a CPU or DMA port) issues requests, and receives responses, and conversely, a slave (such as a memory or a PIO device) receives requests and sends back responses. Currently there is no differentiation between coherent and non-coherent masters and slaves.
The classification as master/slave also involves splitting the dual role port of the bus into a master and slave port and updating all the system assembly scripts to use the appropriate port. Similarly, the interrupt devices have to have their int_port split into a master and slave port. The intdev and its children have minimal changes to facilitate the extra port.
Note that this patch does not enforce any port typing in the C++ world, it merely ensures that the Python objects have a notion of the port roles and are connected in an appropriate manner. This check is carried when two ports are connected, e.g. bus.master = memory.port. The following patches will make use of the classifications and specialise the C++ ports into masters and slaves. |
8836:922edffe734d |
12-Feb-2012 |
Ali Saidi <saidi@eecs.umich.edu> |
configs: fix minor config bugs posted on the mailing list |
8831:6c08a877af8f |
12-Feb-2012 |
Mrinmoy Ghosh <mrinmoy.ghosh@arm.com> |
prefetcher: Make prefetcher a sim object instead of it being a parameter on cache |
8815:deb3b3cff4a3 |
05-Feb-2012 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Rename the bridge which allows commnication back to the local APICs.
There was a collision with a name used in fs.py, and that causes that script not to work when used with x86. |
8803:f6c5785bc8fd |
28-Jan-2012 |
Gabe Black <gblack@eecs.umich.edu> |
SE/FS: Get rid of FULL_SYSTEM in the configs directory |
8801:1a84c6a81299 |
28-Jan-2012 |
Gabe Black <gblack@eecs.umich.edu> |
SE/FS: Make SE vs. FS mode a runtime parameter. |
8725:73116cbeacba |
26-Jan-2012 |
Ronald Dreslinski <rdreslin@umich.edu> |
configs: actually add ARMv7a-like cpu/cache file |
8724:7b4d80b26e35 |
26-Jan-2012 |
Ronald Dreslinski <rdreslin@umich.edu> |
configs: A more realistic configuration of an ARM-like processor |
8718:062bf3879857 |
23-Jan-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Config: Enable using O3 CPU and Ruby in SE mode |
8714:cd48e2802644 |
17-Jan-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
MEM: Removing the default port peer from Python ports
In preparation for the introduction of Master and Slave ports, this patch removes the default port parameter in the Python port and thus forces the argument list of the Port to contain only the description. The drawback at this point is that the config port and dma port of PCI and DMA devices have to be connected explicitly. This is key for future diversification as the pio and config port are slaves, but the dma port is a master. |
8713:2f1a3e335255 |
17-Jan-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
MEM: Make the bus bridge unidirectional and fixed address range
This patch makes the bus bridge uni-directional and specialises the bus ports to be a master port and a slave port. This greatly simplifies the assumptions on both sides as either port only has to deal with requests or responses. The following patches introduce the notion of master and slave ports, and would not be possible without this split of responsibilities.
In making the bridge unidirectional, the address range mechanism of the bridge is also changed. For the cases where communication is taking place both ways, an additional bridge is needed. This causes issues with the existing mechanism, as the busses cannot determine when to stop iterating the address updates from the two bridges. To avoid this issue, and also greatly simplify the specification, the bridge now has a fixed set of address ranges, specified at creation time. |
8706:b1838faf3bcc |
17-Jan-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
MEM: Add port proxies instead of non-structural ports
Port proxies are used to replace non-structural ports, and thus enable all ports in the system to correspond to a structural entity. This has the advantage of accessing memory through the normal memory subsystem and thus allowing any constellation of distributed memories, address maps, etc. Most accesses are done through the "system port" that is used for loading binaries, debugging etc. For the entities that belong to the CPU, e.g. threads and thread contexts, they wrap the CPU data port in a port proxy.
The following replacements are made: FunctionalPort > PortProxy TranslatingPort > SETranslatingPortProxy VirtualPort > FSTranslatingPortProxy |
8689:ec5f79b99ac3 |
11-Jan-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Config: Add support for restoring using a timing CPU Currently there is an assumption that restoration from a checkpoint will happen by first restoring to an atomic CPU and then switching to a timing CPU. This patch adds support for directly restoring to a timing CPU. It adds a new option '--restore-with-cpu' which is used to specify the type of CPU to which the checkpoint should be restored to. It defaults to 'atomic' which was the case before. |
8671:7945abdd05cb |
10-Jan-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Config: Remove short option string for cpu type |
8661:2d791d07c59b |
09-Jan-2012 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Add support for running multiple systems |
8659:78f27ef5e919 |
09-Jan-2012 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Add support for initparam m5 op |
8657:776bc26ee1d4 |
09-Jan-2012 |
Ali Saidi <Ali.Saidi@ARM.com> |
cpu2000: Add missing art benchmark to all |
8649:c3e7a961c727 |
05-Jan-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Config: Add an option of type 'choice' for cpu type This patch adds a new option for cpu type. This option is of type 'choice' which is similar to a C++ enum, except that it takes string values as possible choices. Following options are being removed -- detailed, timing, inorder. |
8643:2f18d1ab589f |
15-Dec-2011 |
Anthony Gutierrez <atgutier@umich.edu> |
ARM: Update config files for Android/BBench images available on website. |
8631:8c038d4cd210 |
01-Dec-2011 |
Chander Sudanthi <chander.sudanthi@arm.com> |
O3: Remove hardcoded tgts_per_mshr in O3CPU.py.
There are two lines in O3CPU.py that set the dcache and icache tgts_per_mshr to 20, ignoring any pre-configured value of tgts_per_mshr. This patch removes these hardcoded lines from O3CPU.py and sets the default L1 cache mshr targets to 20. |
8595:1f3c96b5d85e |
19-Oct-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Fix small bug in config script that prevents android from booting |
8528:1f95c9a0bb2f |
19-Aug-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Add some MP regressions and clean up the disk images and kernels a bit |
8525:5f3fe76e7950 |
19-Aug-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Add VExpress_E support with PCIe to gem5 |
8524:1ddd1aa0e55b |
19-Aug-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Add support for Versatile Express boards |
8323:fd20dcf1a9aa |
23-May-2011 |
Steve Reinhardt <steve.reinhardt@amd.com> |
config: revamp x86 config to avoid appending to SimObjectVectors A significant contributor to the need for adoptOrphanParams() is the practice of appending to SimObjectVectors which have already been assigned as children. This practice sidesteps the assignment operation for those appended SimObjects, which is where parent/child relationships are typically established.
This patch reworks the config scripts that use append() on SimObjectVectors, which all happen to be in the x86 system configuration. At some point in the future, I hope to make SimObjectVectors immutable (by deriving from tuple rather than list), at which time this patch will be necessary for correct operation. For now, it just avoids some of the warning messages that get printed in adoptOrphanParams(). |
8318:3f37cc5d25bc |
23-May-2011 |
Korey Sewell <ksewell@umich.edu> |
configs: missed spot progress-interval change |
8311:7b42aba8e5f2 |
20-May-2011 |
Korey Sewell <ksewell@umich.edu> |
configs: cleanup redundant/unused options maxinsts & max_inst redundant prog_intvl and profile seem redundant, but profile looks to be unused add -p option for progress intervals |
8287:45f3ac6b6a1c |
04-May-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Configure bootloader parameters |
8246:914389024c33 |
20-Apr-2011 |
Nathan Binkert <nate@binkert.org> |
python: fix another bug from changes to main.py |
8212:134bd699967a |
04-Apr-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Include IDE/CF controller by default in PBX model.
Frame buffer and boot linux: ./build/ARM_FS/m5.opt configs/example/fs.py --benchmark=ArmLinuxFrameBuf --kernel=vmlinux.touchkit Linux from a CF card: ./build/ARM_FS/m5.opt configs/example/fs.py --benchmark=ArmLinuxCflash --kernel=vmlinux.touchkit Run Android ./build/ARM_FS/m5.opt configs/example/fs.py --benchmark=ArmAndroid --kernel=vmlinux.android Run MP ./build/ARM_FS/m5.opt configs/example/fs.py --benchmark=ArmLinuxCflash --kernel=vmlinux.mp-2.6.38 |
8211:5275c2fbe957 |
04-Apr-2011 |
Anthony Gutierrez <atgutier@umich.edu> |
Sim: Fix Simulation.py to allow more than 1 core for standard switching.
This patch moves the assignment of testsys.switch_cpus, testsys.switch_cpus_1, switch_cpu_list, and switch_cpu_list1 outside of the for loop so they are assigned only once, after switch_cpus and switch_cpus_1 are constructed. |
8145:21e4f3a569fb |
17-Mar-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Bare metal system should have 256MB of RAM. |
8134:b01a51ff05fa |
17-Mar-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
Mem: Fix issue with dirty block being lost when entire block transferred to non-cache.
This change fixes the problem for all the cases we actively use. If you want to try more creative I/O device attachments (E.g. sharing an L2), this won't work. You would need another level of caching between the I/O device and the cache (which you actually need anyway with our current code to make sure writes propagate). This is required so that you can mark the cache in between as top level and it won't try to send ownership of a block to the I/O device. Asserts have been added that should catch any issues. |
8088:ac1bd3d1aa54 |
24-Feb-2011 |
Gabe Black <gblack@eecs.umich.edu> |
Configs: Explicitly import env in Benchmarks.py
env was being implicitly imported into Benchmarks.py through SysPaths.py. This change brings it in explicitly in the file where it's used. |
8061:08e91664adac |
23-Feb-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Clarifies creation of Linux and baremetal ARM systems.
makeArmSystem creates both bare-metal and Linux systems more cleanly. machine_type was never optional though listed as an optional argument; a system such as "RealView_PBX" must now be explicitly specified. Now that it is a required argument, the placement of the arguments has changed slightly requiring some changes to calls that create ARM systems. |
8057:5a8208fa1600 |
23-Feb-2011 |
Korey Sewell <ksewell@umich.edu> |
configs: cache: add cache line size option |
8056:8fe2d7ff1111 |
23-Feb-2011 |
Korey Sewell <ksewell@umich.edu> |
configs: set default cache params It's confusing (especially to new users), when you are setting some standard parameters (as defined in Options.py) and they aren't reflected in the simulations so we might as well link the settings in CacheConfig.py to those in Options.py |
7949:e59dac494020 |
11-Feb-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
VNC: Add VNC server to M5 |
7937:bb6411d45356 |
08-Feb-2011 |
Brad Beckmann <Brad.Beckmann@amd.com> |
config: fixed minor bug connecting dma devices to ruby |
7925:6823ef6d7a9f |
07-Feb-2011 |
Gabe Black <gblack@eecs.umich.edu> |
X86, Config: Move the setting of work count options to a separate function.
This way things that don't care about work count options and/or aren't called by something that has those command line options set up doesn't have to build a fake object to carry in inert values. |
7914:eee5bb0fb8ea |
07-Feb-2011 |
Brad Beckmann <Brad.Beckmann@amd.com> |
m5: added work completed monitoring support |
7905:00ad807ed2ca |
07-Feb-2011 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: x86 fs config support |
7876:189b9b258779 |
03-Feb-2011 |
Gabe Black <gblack@eecs.umich.edu> |
Config: Keep track of uncached and cached ports separately.
This makes sure that the address ranges requested for caches and uncached ports don't conflict with each other, and that accesses which are always uncached (message signaled interrupts for instance) don't waste time passing through caches. |
7869:e9edb137c872 |
02-Feb-2011 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Change how the default disk image gets set up.
The disk image to use was always being forced to a particular value. This change changes what disk image is selected as the default based on the architecture being built. In the future, a more sophisticated system might be used that selected a path based on certain rules instead of relying on one off file names. |
7868:6029008db669 |
01-Feb-2011 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Add L1 caches for the TLB walkers.
Small L1 caches are connected to the TLB walkers when caches are used. This allows them to participate in the coherence protocol properly. |
7766:1252ec1c8714 |
17-Nov-2010 |
Gabe Black <gblack@eecs.umich.edu> |
Config: Change misleading "cycle" message to say "tick".
Most of the messages in the config scripts that report a time value already print "@ tick" followed by the current tick value, but a few were printing "@ cycle". Since this is a distinction that's frequently confusing to new users, this changes those message to the more accurate and consistent "@ tick". |
7750:0731d632db76 |
15-Nov-2010 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Add support for a dumb IDE controller |
7730:982b4c6c1470 |
08-Nov-2010 |
Ali Saidi <Ali.Saidi@ARM.com> |
Mem: Finish half-baked support for mmaping file in physmem.
Physmem has a parameter to be able to mem map a file, however it isn't actually used. This changeset utilizes the parameter so a file can be mmapped. |
7633:d8112aa18a1b |
24-Aug-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
config: fixed ruby dma device connections |
7586:da93206873dc |
23-Aug-2010 |
Ali Saidi <Ali.Saidi@arm.com> |
ARM: Add configuration for Linux/Full System |
7551:b10ee98aea91 |
20-Aug-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: Reduced ruby latencies
The previous slower ruby latencies created a mismatch between the faster M5 cpu models and the much slower ruby memory system. Specifically smp interrupts were much slower and infrequent, as well as cpus moving in and out of spin locks. The result was many cpus were idle for large periods of time.
These changes fix the latency mismatch. |
7538:5691b9dd51f4 |
20-Aug-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
config: reorganized how ruby specifies command-line options |
7534:c76a14014c27 |
17-Aug-2010 |
Steve Reinhardt <steve.reinhardt@amd.com> |
misc: add some AMD copyright notices Meant to add these with the previous batch of csets. |
7531:f5e86115a07a |
17-Aug-2010 |
Steve Reinhardt <steve.reinhardt@amd.com> |
sim: fold checkpoint restore code into instantiate() The separate restoreCheckpoint() call is gone; just pass the checkpoint dir as an optional arg to instantiate(). This change is a precursor to some more extensive reworking of the startup code. |
7530:89b6893554f5 |
17-Aug-2010 |
Steve Reinhardt <steve.reinhardt@amd.com> |
configs: clean up checkpoint code in Simulation.py Small change to clean up some redundant code. Should not have any functional impact. |
7525:722f2ad014a7 |
17-Aug-2010 |
Steve Reinhardt <steve.reinhardt@amd.com> |
sim: make Python Root object a singleton Enforce that the Python Root SimObject is instantiated only once. The C++ Root object already panics if more than one is created. This change avoids the need to track what the root object is, since it's available from Root.getInstance() (if it exists). It's now redundant to have the user pass the root object to functions like instantiate(), checkpoint(), and restoreCheckpoint(), so that arg is gone. Users who use configs/common/Simulate.py should not notice. |
7515:82453f1b46c5 |
09-Aug-2010 |
Nathan Binkert <nate@binkert.org> |
None, not none |
7489:26cd0ad262d0 |
06-Jul-2010 |
Steve Reinhardt <steve.reinhardt@amd.com> |
util: add a script for testing checkpointing See comments in util/checkpoint-tester.py for details. |
7416:e1a7a9f33a00 |
02-Jun-2010 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: fix sizes of structs for ARM Linux |
7069:edde97a6ea7c |
19-Apr-2010 |
Nathan Binkert <nate@binkert.org> |
config: fix assertion for x86 in FSConfig.py |
7032:9f938aea1942 |
22-Mar-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: Reorganized Ruby topology and protocol files |
7027:46b02e79bf2c |
22-Mar-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: Adds configurable bit selection for numa mapping |
7025:9adf5b0ccc79 |
22-Mar-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: Ruby support for sparse memory
The patch includes direct support for the MI example protocol. |
7014:441317194b08 |
22-Mar-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: fixed how ruby_fs creates phsyical memory
Now ruby_fs creates physical memory of the right size. |
6981:aba5f7216636 |
25-Feb-2010 |
Lisa Hsu <Lisa.Hsu@amd.com> |
configs: pull out cache configuration code from se.py and fs.py. Most of these frontend configurations share cache configuration code, pull it out so that changes to caches don't have to require changing multiple config files. |
6918:9b57f0108bc8 |
29-Jan-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: Converted Garnet to M5 configuration |
6916:a421f60f0e87 |
29-Jan-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: Added a mesh topology |
6908:0e1d7624e641 |
29-Jan-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: MOESI_CMP_token updates to use the new config system |
6893:9cdf9b65d946 |
29-Jan-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: FS support using the new configuration system |
6892:6a2db6c8a9b1 |
29-Jan-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: reorganized ruby python configuration Reorganized ruby python configuration so that protocol and ruby memory system configuration code can be shared by multiple front-end configuration files (i.e. memory tester, full system, and hopefully the regression tester). This code works for memory tester, but have not tested fs mode. |
6802:e649cb8af113 |
19-Dec-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Record the memory mode when building an X86 system. |
6776:463aab78c057 |
18-Nov-2009 |
Brad Beckmann <Brad.Beckmann@amd.com> |
m5: Added option to take a checkpoint at the end of simulation |
6769:630a3d0b7eb7 |
18-Nov-2009 |
Brad Beckmann <Brad.Beckmann@amd.com> |
m5: Moved profile option since Simulation depends on it. |
6765:b5101309174d |
18-Nov-2009 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: Support for merging ALPHA_FS and ruby Connects M5 cpu and dma ports directly to ruby sequencers and dma sequencers. Rubymem also includes a pio port so that pio requests and be forwarded to a special pio bus connecting to device pio ports. |
6654:4c84e771cca7 |
22-Sep-2009 |
Nathan Binkert <nate@binkert.org> |
python: Move more code into m5.util allow SCons to use that code. Get rid of misc.py and just stick misc things in __init__.py Move utility functions out of SCons files and into m5.util Move utility type stuff from m5/__init__.py to m5/util/__init__.py Remove buildEnv from m5 and allow access only from m5.defines Rename AddToPath to addToPath while we're moving it to m5.util Rename read_command to readCommand while we're moving it Rename compare_versions to compareVersions while we're moving it. |
6641:59f08019c39a |
16-Sep-2009 |
Korey Sewell <ksewell@umich.edu> |
configs: add maxinsts option on command line -option to allow threads to run to a max_inst_any_thread which is more useful/quicker in a lot of cases then always having to figure out what tick to run your simulation to. |
6174:7e5c7412ac89 |
05-May-2009 |
Korey Sewell <ksewell@umich.edu> |
cpus: fix cpu progress event this was double scheduling itself (once in constructor and once in cpu code). also add support for stopping / starting progress events through repeatEvent flag and also changing the interval of the progress event as well |
6144:e330f7bc22ef |
05-May-2009 |
Korey Sewell <ksewell@umich.edu> |
cpus: fix cpu progress event this was double scheduling itself (once in constructor and once in cpu code). also add support for stopping / starting progress events through repeatEvent flag and also changing the interval of the progress event as well |
6135:9327451a8e7a |
26-Apr-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86, Config: Make makeX86System consider the number of CPUs, and clean up interrupt assignment. |
6122:9af6fb59752f |
16-Jul-2008 |
Steve Reinhardt <Steve.Reinhardt@amd.com> |
mem: use single BadAddr responder per system. Previously there was one per bus, which caused some coherence problems when more than one decided to respond. Now there is just one on the main memory bus. The default bus responder on all other buses is now the downstream cache's cpu_side port. Caches no longer need to do address range filtering; instead, we just have a simple flag to prevent snoops from propagating to the I/O bus. |
6107:52a5e1c63380 |
21-Apr-2009 |
Steve Reinhardt <steve.reinhardt@amd.com> |
Minor tweaks for future Ruby compatibility. |
6074:76c2b55fce6d |
19-Apr-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Actually put the PCI INTA entry into the MP tables. |
6072:2372a164604f |
19-Apr-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Make E820 report nice, round (and correct) numbers. |
6044:3b23e5fc76e4 |
19-Apr-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Automatically make the IO APIC in an N CPU system have id N+1. |
6028:137a2b89eed4 |
15-Apr-2009 |
Steve Reinhardt <steve.reinhardt@amd.com> |
configs: Allow M5_CPU2000 env var to set CPU2K binary path. It would be nice to have a more comprehensive mechanism but this is a big improvement over manually editing the script. |
5918:c3d88393a1f3 |
25-Feb-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Add IRQ4 to the Intel MP tables. |
5869:acbe11bbfe68 |
10-Feb-2009 |
Korey Sewell <ksewell@umich.edu> |
Configs: Add support for the InOrder CPU model |
5847:02e0e93d1ba7 |
01-Feb-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Find the natural lpj for this configuration. |
5845:c88856b98084 |
01-Feb-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Add a root device to the kernel command line. |
5843:a2c317cefcf8 |
01-Feb-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Configure the first PCI interrupt. |
5841:08c65e29e57e |
01-Feb-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Hook in a hard drive image. |
5840:6481e40d21eb |
01-Feb-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Take out the IDE noprobe kernel arguments. |
5833:5a07c4e3249b |
01-Feb-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Plug in an IDE controller. |
5828:5975aa055dc8 |
01-Feb-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Add some interrupt info to the intel MP tables. |
5822:05ffa2c3c800 |
30-Jan-2009 |
Ali Saidi <saidi@eecs.umich.edu> |
Errors: Print a URL with a hash of the format string to find more information about an error. |
5819:f4a1bcc3b7bc |
25-Jan-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Prevent Linux for probing for non-existant IDE controllers. |
5644:2c54b5aa7769 |
11-Oct-2008 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Add entries for the IO APIC to the MP table. |
5641:51b7b8cf8083 |
11-Oct-2008 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Add an Intel MP table to the simulation. |
5638:dc073dc6358b |
11-Oct-2008 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Rename the PC device to Pc. |
5615:1c4b9b1aa500 |
10-Oct-2008 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Turn SMBios structures into simobjects. |
5613:0d14611ee1bb |
10-Oct-2008 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Split makeLinuxX86System into makeLinuxX86System and makeX86System. |
5543:3af77710f397 |
10-Sep-2008 |
Ali Saidi <saidi@eecs.umich.edu> |
style: Remove non-leading tabs everywhere they shouldn't be. Developers should configure their editors to not insert tabs |
5478:ca055528a3b3 |
17-Jun-2008 |
Nathan Binkert <nate@binkert.org> |
Rename SimConsole to Terminal since it makes more sense |
5450:25e395a87745 |
12-Jun-2008 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Make the e820 table manually or automatically configurable from python. |
5416:26aa7cf1be28 |
12-Jun-2008 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Force the kernel to use a certain loops per jiffy instead of calculating it. |
5412:771996f1d68e |
12-Jun-2008 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Make the amount of system memory match the hardcoded e820 info. |
5411:d517a2f5f2a6 |
12-Jun-2008 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Make the regular console use the serial port as well. |
5389:215d8a8c97df |
25-Mar-2008 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Change the Opteron platform to be the PC platform. |
5378:7c058e69f257 |
15-Mar-2008 |
Ali Saidi <saidi@eecs.umich.edu> |
Simpoints: Fix regression bug/Don't set process.simpoint, if simpoint doesn't exist |
5371:dce5a8655829 |
29-Feb-2008 |
Lisa Hsu <hsul@eecs.umich.edu> |
Error out if -s is used without --caches (instead of saying you must specify a CPU). |
5370:b16ec4d7e77c |
29-Feb-2008 |
Ali Saidi <saidi@eecs.umich.edu> |
Configs: Make sure options don't conflict |
5369:9358355117b0 |
28-Feb-2008 |
Ali Saidi <saidi@eecs.umich.edu> |
Configs: Fix some bugs we introduced in the simpoints code |
5361:e379019a1abd |
27-Feb-2008 |
Rick Strong <rstrong@cs.ucsd.edu> |
Configs: Make using Simpoints easier with some config files that support them easily |
5357:eecb5fd0be62 |
26-Feb-2008 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Get PCI config space to work, and adjust address space prefix numbering scheme. |
5353:487d6f3291d7 |
22-Feb-2008 |
Vilas Sridharan <vilas.sridharan@gmail.com> |
add instruction count fast forwaing and max instruction options |
5347:f15b21a5bd2e |
14-Feb-2008 |
Ali Saidi <saidi@eecs.umich.edu> |
Configs: Change Simulation.py to return a subclass of the CPU models rather than the original class. Without this changes elsewhere in the config script (e.g. the DriveSys frequency can change the TestSys frequency. |
5330:a1db38b0d8e8 |
21-Jan-2008 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Use the existing boot_osflags instead of duplicating it. |
5323:75f7e6366a41 |
12-Jan-2008 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Make the IO ports work using extra physical address lines. Add a serial port. |
5311:9ed42a2315ae |
18-Dec-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
Checkpointing: Fix a bug in the simulation script when restoring without standard switch and change some ifs to work with the default port since every port is now connected to something. |
5299:e61b9f2a9732 |
02-Dec-2007 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Move startup code to the system object to initialize a Linux system. |
5266:cd03d3753a8d |
16-Nov-2007 |
Korey Sewell <ksewell@umich.edu> |
Accidently kept hardcoded memory value in merge. Remove that and now ALPHA_FS quick regressions pass |
5263:e059fb430ef3 |
16-Nov-2007 |
Korey Sewell <ksewell@umich.edu> |
compile-time fix for setMipsOptions function |
5253:0ecd2477b9f3 |
15-Nov-2007 |
Korey Sewell <ksewell@umich.edu> |
add setMipsOptions function for MIPS usage |
5222:bb733a878f85 |
13-Nov-2007 |
Korey Sewell <ksewell@umich.edu> |
Add in files from merge-bare-iron, get them compiling in FS and SE mode |
5211:f7412cfae319 |
03-Nov-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
Checkpoint: Use checkpoint_dir, if that is not set use outdir (-d), and if that isn't set use cwd. |
5185:d970c1ec39c9 |
25-Oct-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
Checkpoints: Change Simulation.py to not go crazy if the simulation ends before the number of checkpoints requested are created. |
5133:a88763dd4a84 |
07-Oct-2007 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Adjust the config scripts for x86 fs. |
5073:1916291dcfda |
12-Sep-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
Checkpointing: Fix directory regex |
5072:ff0e3c84a1de |
12-Sep-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
Checkpointing: Force drain/resume when switching a CPU |
4982:723f5ce7f7b0 |
16-Aug-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
PCI: Move PCI Configuration data into devices now that we can inherit parameters. |
4981:33fabf3473a5 |
16-Aug-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
Devices: Make EtherInts connect in the same way memory ports currently do. |
4972:ee5b7df7f436 |
12-Aug-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
Regression: fix configuration for SPARC_FS |
4968:f1c856d8c460 |
08-Aug-2007 |
Vincentius Robby <acolyte@umich.edu> |
Added fastmem option. Lets CPU accesses to physical memory bypass Bus. |
4965:ad0e792a5c78 |
10-Aug-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
DMA: Add IOCache and fix bus bridge to optionally only send requests one way so a cache can handle partial block requests for i/o devices. |
4876:a18cedc19da5 |
30-Jun-2007 |
Steve Reinhardt <stever@eecs.umich.edu> |
Get rid of remaining traces of obsolete CoherenceProtocol object. |
4555:7db37af44eb6 |
10-Jun-2007 |
Nathan Binkert <binkertn@umich.edu> |
the cmd argument is supposed to be an array of parameters, not one string |
4520:c118873326c7 |
04-Jun-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
fix SPARC....
configs/common/FSConfig.py: fix SPARC |
4486:aaeb03a8a6e1 |
27-May-2007 |
Nathan Binkert <binkertn@umich.edu> |
Move SimObject python files alongside the C++ and fix the SConscript files so that only the objects that are actually available in a given build are compiled in. Remove a bunch of files that aren't used anymore. |
4455:18ff8ee46de8 |
15-May-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
add an l2 cache option to se example config
configs/common/Options.py: configs/example/fs.py: move l2 cache option to Options.py |
4444:0648bdc8d1c9 |
10-May-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
remove hit_latency and make latency do the right thing set the latency parameter in terms of a latency add caches to tsunami-simple configs
configs/common/Caches.py: tests/configs/memtest.py: tests/configs/o3-timing-mp.py: tests/configs/o3-timing.py: tests/configs/simple-atomic-mp.py: tests/configs/simple-timing-mp.py: tests/configs/simple-timing.py: set the latency parameter in terms of a latency configs/common/FSConfig.py: give the bridge a default latency too src/mem/cache/cache_builder.cc: src/python/m5/objects/BaseCache.py: remove hit_latency and make latency do the right thing tests/configs/tsunami-simple-atomic-dual.py: tests/configs/tsunami-simple-atomic.py: tests/configs/tsunami-simple-timing-dual.py: tests/configs/tsunami-simple-timing.py: add caches to tsunami-simple configs |
4432:5e55857abb01 |
07-May-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
fix partial writes with a functional memory hack figure out the block size from devices attached to the bus otherwise use a default block size when no devices that care are attached
configs/common/FSConfig.py: src/mem/bridge.cc: src/mem/bridge.hh: src/python/m5/objects/Bridge.py: fix partial writes with a functional memory hack src/mem/bus.cc: src/mem/bus.hh: src/python/m5/objects/Bus.py: figure out the block size from devices attached to the bus otherwise use a default block size when no devices that care are attached src/mem/packet.cc: fix WriteInvalidateResp to not be a request that needs a response since it isn't src/mem/port.hh: by default return 0 for deviceBlockSize instead of panicing. This makes finding the block size the bus should use easier |
4418:aaa5828991b3 |
30-Apr-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
add a udp stream benchmark and a udp loopback benchmark |
4271:13ea06ef646d |
22-Mar-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Fix mcf benchmark object so it gets the arguments it expects. |
4167:ce5d0f62f13b |
06-Mar-2007 |
Nathan Binkert <binkertn@umich.edu> |
Move all of the parameters of the Root SimObject so they are directly configured by python. Move stuff from root.(cc|hh) to core.(cc|hh) since it really belogs there now. In the process, simplify how ticks are used in the python code. |
4132:a4ed11288493 |
05-Mar-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Merge zizzer.eecs.umich.edu:/bk/newmem into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86 |
4116:f6e3dc4655e9 |
02-Mar-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Keep around which input set was used for a benchmark, and make vortex work with SPARC. |
4107:3ac1abf8e035 |
27-Feb-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Fix issue with twolf where the presence or absence of two files, smred.sav or smred.sv2, would affect the outcome of the program. These names are based on the input file names which are in turn based on the input set selected. There may be more files like this generated for larger input sets, for example "mdred.sv3" |
4104:10b99ef0a7ff |
03-Mar-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
Add Iob and remove the fake device
configs/common/FSConfig.py: add an attachOnChipIO to force people to think about where "onchip" i/o should be connected in their hierarchy |
4103:785279436bdd |
03-Mar-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
Implement Niagara I/O interface and rework interrupts
configs/common/FSConfig.py: Use binaries we've compiled instead of the ones that come with Legion src/arch/alpha/interrupts.hh: get rid of post(int int_type) and add a get_vec function that gets the interrupt vector for an interrupt number src/arch/sparc/asi.cc: Add AsiIsInterrupt() to AsiIsMmu() src/arch/sparc/faults.cc: src/arch/sparc/faults.hh: Add InterruptVector type src/arch/sparc/interrupts.hh: rework interrupts. They are no longer cleared when created... A I/O or ASI read/write needs to happen before they are cleared src/arch/sparc/isa_traits.hh: Add the "interrupt" trap types to isa traits src/arch/sparc/miscregfile.cc: add names for all the misc registers and possible post an interrupt when TL is changed. src/arch/sparc/miscregfile.hh: Add a helper function to post an interrupt when pil < some set softint src/arch/sparc/regfile.cc: src/arch/sparc/regfile.hh: InterruptLevel shouldn't really live here, moved to interrupt.hh src/arch/sparc/tlb.cc: Add interrupt ASIs to TLB src/arch/sparc/ua2005.cc: Add checkSoftInt to check if a softint needs to be posted Check that a tickCompare isn't scheduled before scheduling one Post and clear interrupts on queue writes and what not src/base/bitfield.hh: Add an helper function to return the msb that is set src/cpu/base.cc: src/cpu/base.hh: get rid of post_interrupt(type) since it's no longer needed.. Add a way to see what interrupts are pending src/cpu/intr_control.cc: src/cpu/intr_control.hh: src/dev/alpha/tsunami_cchip.cc: src/python/m5/objects/IntrControl.py: Make IntrControl have a system pointer rather than using a cpu pointer to get one src/dev/sparc/SConscript: add iob to SConsscrip tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/config.ini: tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/config.out: tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/config.ini: tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/config.out: tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/config.ini: tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/config.out: tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/config.ini: tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/config.out: tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/config.ini: tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/config.out: update config.ini/out for intrcntrl not having a cpu pointer anymore |
4094:1950ef76ddf9 |
22-Feb-2007 |
Nathan Binkert <binkertn@umich.edu> |
Get rid of the ConsoleListener SimObject and just fold the relevant code directly into the SimConsole object. Now, you can easily turn off the listen port by just specifying 0 as the port. |
3999:ba54519a7a92 |
30-Jan-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
fix some checkpointing annoyances -m works as you think it should Ctrl-C actually ends the simulation now |
3898:42a529d97cf2 |
09-Jan-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
add memory mapped disk device
configs/common/FSConfig.py: src/python/m5/objects/T1000.py: add configuration for memory mapped disk src/dev/sparc/SConscript: add memory mapped disk to sconscript |
3823:1c8f87aa103e |
06-Dec-2006 |
Ali Saidi <saidi@eecs.umich.edu> |
Many more fixes for SPARC_FS. Gets us to the point where SOFTINT starts getting touched.
configs/common/FSConfig.py: Physical memory on the T1 starts at 1MB, The first megabyte is unmapped to catch bugs src/arch/isa_parser.py: we should readmiscregwitheffect not readmiscreg src/arch/sparc/asi.cc: Fix AsiIsNucleus spelling with respect to header file Add ASI_LSU_CONTROL_REG to AsiSiMmu src/arch/sparc/asi.hh: Fix spelling of two ASIs src/arch/sparc/isa/decoder.isa: switch back to defaults letting the isa_parser insert readMiscRegWithEffect src/arch/sparc/isa/formats/mem/util.isa: Flesh out priviledgedString with hypervisor checks Make load alternate set the flags correctly src/arch/sparc/miscregfile.cc: insert some forgotten break statements src/arch/sparc/miscregfile.hh: Add some comments to make it easier to find which misc register is which number src/arch/sparc/tlb.cc: flesh out the tlb memory mapped registers a lot more src/base/traceflags.py: add an IPR traceflag src/mem/request.hh: Fix a bad assert() in request |
3814:33bd4ec9d66a |
04-Dec-2006 |
Ali Saidi <saidi@eecs.umich.edu> |
More changes to get SPARC fs closer. Now at 1.2M cycles before difference
configs/common/FSConfig.py: seperate the hypervisor memory and the guest0 memory. In reality we're going to need a better way to do this at some point. Perhaps auto generating the hv-desc image based on the specified config. src/arch/sparc/isa/decoder.isa: change reads/writes to the [hs]tick(cmpr) registers to use readmiscregwitheffect src/arch/sparc/miscregfile.cc: For niagra stick and tick are aliased to one value (if we end up doing mps we might not want this). Use instruction count from cpu rather than cycles because that is what legion does we can change it back after were done with legion src/base/bitfield.hh: add a new function mbits() that just masks off bits of interest but doesn't shift src/cpu/base.cc: src/cpu/base.hh: add instruction count to cpu src/cpu/exetrace.cc: src/cpu/m5legion_interface.h: compare instruction count between legion and m5 too src/cpu/simple/atomic.cc: change asserts of packet success to if panics wrapped with NDEBUG defines so we can get some more useful information when we have a bad address src/dev/isa_fake.cc: src/dev/isa_fake.hh: src/python/m5/objects/Device.py: expand isa fake a bit more having data for each size request, the ability to have writes update the data and to warn on accesses src/python/m5/objects/System.py: convert some tabs to spaces src/python/m5/objects/T1000.py: add more fake devices for each l1 bank and each memory controller |
3812:eaa215123a26 |
30-Nov-2006 |
Ali Saidi <saidi@eecs.umich.edu> |
Load the hypervisor symbols twice, once with an address mask so that we can get symbols for where it's copied to in memory Add the ability to use an address mask for symbol loading Rather then silently failing on platform accesses panic Move BadAddr/IsaFake no Device from Tsunami Let the system kernel be none, but warn about it
configs/common/FSConfig.py: We don't have a kernel for sparc yet src/arch/sparc/system.cc: Load the hypervisor symbols twice, once with an address mask so that we can get symbols for where it's copied to in memory src/base/loader/aout_object.cc: src/base/loader/aout_object.hh: src/base/loader/ecoff_object.cc: src/base/loader/ecoff_object.hh: src/base/loader/elf_object.cc: src/base/loader/elf_object.hh: src/base/loader/object_file.hh: src/base/loader/raw_object.cc: src/base/loader/raw_object.hh: Add the ability to use an address mask for symbol loading src/dev/sparc/t1000.cc: Rather then silently failing on platform accesses panic src/dev/sparc/t1000.hh: fix up a couple of platform comments src/python/m5/objects/Bus.py: src/python/m5/objects/Device.py: src/python/m5/objects/T1000.py: src/python/m5/objects/Tsunami.py: Move BadAddr/IsaFake no Device from Tsunami src/python/m5/objects/System.py: Let kernel be none src/sim/system.cc: Let the system kernel be none, but warn about it |
3751:b422ffec62c1 |
22-Nov-2006 |
Gabe Black <gblack@eecs.umich.edu> |
Added a parameter to set memory to zero. This is to support Legion, and once we can make our own hypervisor binary, we probably won't need it. |
3745:70a265d01c87 |
20-Nov-2006 |
Gabe Black <gblack@eecs.umich.edu> |
Add in rom/rams for the nvram, hypervisor description, and partition description. |
3743:2061715f68d1 |
16-Nov-2006 |
Gabe Black <gblack@eecs.umich.edu> |
Fixes for SPARC_FS
configs/common/FSConfig.py: Make a SPARC system create an IO bus. src/python/m5/objects/T1000.py: Create a T1000 platform src/arch/sparc/miscregfile.cc: Initialize the strand status register to the value legion provides. src/cpu/exetrace.cc: Truncate an ExtMachInst to a MachInst before comparing with Legion. |
3681:129a68314264 |
26-Nov-2006 |
Kevin Lim <ktlim@umich.edu> |
Include check for making sure caches are enabled. |
3671:c60eba24f33b |
16-Nov-2006 |
Nathan Binkert <binkertn@umich.edu> |
Implement a single config file to encompass all of the SPEC CPU2000 stuff, and use it in all of the tests that currently use SPEC |
3668:bacb0a392e78 |
15-Nov-2006 |
Ron Dreslinski <rdreslin@umich.edu> |
Add L2 cache option to fs.py --l2cache |
3631:cebd6af96efd |
09-Nov-2006 |
Kevin Lim <ktlim@umich.edu> |
Merge ktlim@zizzer:/bk/newmem into zamp.eecs.umich.edu:/z/ktlim2/clean/newmem-busfix |
3584:8c3cdb2c001c |
09-Nov-2006 |
Ali Saidi <saidi@eecs.umich.edu> |
Get SPARC to the point that it starts running. Add ability to load the ROM bin files, cleanup lockstep printing a bit Since we don't have a platform yet, you need to comment out the default responder stuff in Bus.py to make it work.
SConstruct: Add TARGET_ISA to the list of environment variables that end up in the build_env for python configs/common/FSConfig.py: add a simple SPARC system to being testing with, you'll need to change makeLinuxAlphaSystem to makeSparcSystem in fs.py for now src/SConscript: add a raw file object, at least until we get more info about how to compile openboot properly src/arch/sparc/system.cc: src/arch/sparc/system.hh: add parameters for ROM files (OBP/Reset/Hypervisor), a ROM, load files into ROM src/base/loader/object_file.cc: src/base/loader/object_file.hh: add option to try raw when nothing works src/cpu/exetrace.cc: cleanup lockstep printing a little bit src/cpu/m5legion_interface.h: change the instruction to be 32 bits because it is src/mem/physical.cc: fix assert that doesn't work if memory starts somewhere above 0 src/python/m5/objects/BaseCPU.py: Add if statement to choose between sparc tlbs and alpha tlbs src/python/m5/objects/System.py: Add a sparc system that sets the rom addresses correctly src/python/m5/params.py: add the ability to add Addr() together |
3514:b166ee5dce91 |
09-Nov-2006 |
Kevin Lim <ktlim@umich.edu> |
Clean up config scripts to not have to worry about attaching a cache only to the TimingCPU. Now the Atomic CPU works with caches.
configs/common/Simulation.py: Atomic CPU now works properly with caches, so we don't have to do extra parsing to hook up caches only to the timing CPU.
However the O3CPU must always use caches, so a check for that must still exist.
Also change the switch_cpus to be placed at the system level, now that Steve changed how the IntrController gets its CPU. configs/example/fs.py: configs/example/se.py: Atomic CPU now handles caches. |
3511:8cb26619b6ec |
08-Nov-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
simplify maxtick parsing in both the python and the c++.
configs/common/Simulation.py: simplify maxtick code a little bit - instead of checking for -1, just set it at MaxTick. src/python/m5/__init__.py: make a new m5 param called MaxTick. src/sim/host.hh: fix the M5 def. of MaxTick src/sim/main.cc: Simplify the MaxTick/num_cycles parsing within main.cc |
3510:c529f0b16334 |
08-Nov-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
make rcS files read from the m5 source directory, not /dist. |
3509:ff94a3eda992 |
08-Nov-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
change to os.path.join like nate wanted. |
3481:14362d3b0756 |
01-Nov-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
factor some more commone code and enable going from checkpoint into arbitrary CPU with or without caches.
configs/common/Simulation.py: enable going from checkpoint into arbitrary CPU with or without caches. |
3480:c1ec938d2920 |
01-Nov-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
make it so that you can do a standard switch without the caches option. this will have only the o3 cpu have a cache, rather than timing (warmup) + o3 have cache. |
3478:b2372d54182c |
01-Nov-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
change name of 2nd switch_cpu so that ckpt recovery with multiple cpus doens't get confused. |
3477:eaf445891a4e |
31-Oct-2006 |
Kevin Lim <ktlim@umich.edu> |
Fix up configs.
configs/common/Simulation.py: Remove mem parameter. configs/example/se.py: Remove debug output that got included in my other push. |
3449:97c98705ac4e |
30-Oct-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
FSConfig.py: Accidentally committed this last time
configs/common/FSConfig.py: Accidentally committed this last time |
3448:bb2632fa57dc |
30-Oct-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
se.py, fs.py: import Caches Simulation.py: Fix typo - L2Cache --> L1Cache
configs/common/Simulation.py: Fix typo - L2Cache --> L1Cache configs/example/fs.py: configs/example/se.py: import Caches |
3447:258e3c319f6f |
30-Oct-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
ensure that there is a "/" between the cptdir and the cpt.%d. |
3445:5c5f90f5506c |
30-Oct-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
decouple the switch option from the warmup period option - parsing was confused otherwise, oops. |
3410:ef75e2c78b2d |
30-Oct-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
add some comments and make the warmup period in a switchover parameterizable.
configs/common/Options.py: make the warmup period in a standard switch part of the option. configs/common/Simulation.py: add some comments and also make the warmup period an option. |
3395:49e674f2fb5d |
27-Oct-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
factor out common run code from se.py and fs.py.
configs/example/fs.py: factor out common code. configs/example/se.py: factor out common code |
3372:ccbe8a56f5b7 |
22-Oct-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Add mutex test to Benchmarks.py. |
3304:c5917aeb8e2f |
17-Oct-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Rename 'Machine' to 'SysConfig'. Clean up a little. |
3231:ba2a74b94586 |
10-Oct-2006 |
Kevin Lim <ktlim@umich.edu> |
Two minor fixes.
configs/common/SysPaths.py: Undo accidental change. src/SConscript: Fix. |
3223:a2b6fa575c05 |
08-Oct-2006 |
Kevin Lim <ktlim@umich.edu> |
Clean up configs.
configs/common/FSConfig.py: configs/common/SysPaths.py: configs/example/fs.py: configs/example/se.py: tests/configs/o3-timing-mp.py: tests/configs/o3-timing.py: Clean up configs by removing FullO3Config and instead using default values. src/python/m5/objects/FUPool.py: Add in default FUPool. src/python/m5/objects/O3CPU.py: Use defaults better. Also set checker parameters, and fix up a config bug. |
3105:993f1abefd67 |
06-Sep-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Enable proxies (Self/Parent) for specifying ports. Significant revamp of Port code. Some cleanup of SimObject code too, particularly to make the SimObject and MetaSimObject implementations of __setattr__ more consistent. Unproxy code split out of print_ini().
src/python/m5/multidict.py: Make get() return None by default, to match semantics of built-in dictionary objects. |
3089:0ea2eb13c4de |
11-Sep-2006 |
Ali Saidi <saidi@eecs.umich.edu> |
add annotation code to m5
configs/common/Benchmarks.py: add annotate test app src/SConscript: add annotate.cc to lis src/arch/alpha/isa/decoder.isa: add annotate instructions src/base/traceflags.py: Add annotate trace flag src/sim/pseudo_inst.cc: src/sim/pseudo_inst.hh: add annotate pseudo ops util/m5/m5op.S: util/m5/m5op.h: add anotate ops |
3025:00fe36086a14 |
16-Aug-2006 |
Ali Saidi <saidi@eecs.umich.edu> |
add etherdump file option |
3005:ceb86e85d62d |
16-Aug-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Finish test clean-up & reorg.
configs/common/FSConfig.py: Add default Machine() param configs/example/fs.py: configs/example/se.py: make it work again src/python/m5/objects/BaseCPU.py: Make mem PhysicalMemory so that a Parent.any proxy works well src/sim/process.cc: Increase default stack size so we don't get an 'increasing stack' message on 'hello world' tests/SConscript: Add full list of current configs. tests/configs/simple-atomic.py: tests/configs/simple-timing.py: don't need SEConfig anymore tests/quick/00.hello/test.py: tests/quick/20.eio-short/test.py: fix tests/run.py: move configs to separate dir |
2998:1d5ea4e433f5 |
16-Aug-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
More restructuring of regression tests. Moving work back to zizzer...
configs/common/FSConfig.py: configs/test/fs.py: Move CPU connections out of makeLinuxAlphaSystem() src/python/m5/objects/BaseCPU.py: Create default TLBs in full system. Move utility cache functions here. src/python/m5/objects/O3CPU.py: Add _mem_ports tests/run.py: Add binpath() Change maxtick default to 'forever' tests/simple-atomic.py: Use connectmemPorts() tests/simple-timing.py: Fix up. |
2995:34553e4fd1ac |
15-Aug-2006 |
Ali Saidi <saidi@eecs.umich.edu> |
implement benchmark selection code |
2969:d2f8f9a23082 |
27-Jul-2006 |
Kevin Lim <ktlim@umich.edu> |
Clean up some more config stuff.
configs/common/FSConfig.py: Clean up some code to make functions look less like classes. Also put makeList function (formerly listWrapper) into m5 itself. configs/test/fs.py: Update for changed code. src/python/m5/__init__.py: Put makeList into m5. |
2953:10e7700b27f6 |
22-Jul-2006 |
Kevin Lim <ktlim@umich.edu> |
Last minute check in. Very few functional changes other than some minor config updates. Also include some recently generated stats.
SConstruct: Make test CPUs option non-sticky. configs/common/FSConfig.py: Be sure to set the memory mode. configs/test/fs.py: Wrong string. tests/SConscript: Only test valid CPUs that have been compiled in. tests/test1/ref/alpha/atomic/config.ini: tests/test1/ref/alpha/atomic/config.out: tests/test1/ref/alpha/atomic/m5stats.txt: tests/test1/ref/alpha/atomic/stdout: tests/test1/ref/alpha/detailed/config.ini: tests/test1/ref/alpha/detailed/config.out: tests/test1/ref/alpha/detailed/m5stats.txt: tests/test1/ref/alpha/detailed/stdout: tests/test1/ref/alpha/timing/config.ini: tests/test1/ref/alpha/timing/config.out: tests/test1/ref/alpha/timing/m5stats.txt: tests/test1/ref/alpha/timing/stdout: Update output. |
2934:0b091d7d00f0 |
21-Jul-2006 |
Kevin Lim <ktlim@umich.edu> |
Rearrange the FS configs to be more shared. Also check in the full-system tests. Reference stats coming soon.
configs/test/fs.py: Pull out a lot of common code and put it into configs/common/FSConfig.py. |
2931:871cb78cd6fa |
21-Jul-2006 |
Kevin Lim <ktlim@umich.edu> |
Some reorganization. Options are all handled at the user level script. Move createCpus function (now called connectCpu) to Util.py, where it can be used by other configs. |