-
Notifications
You must be signed in to change notification settings - Fork 14
CasHMC: A Cycle-accurate Simulator for Hybrid Memory Cube
License
estwings57/CasHMC
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
CasHMC: A Cycle-accurate Simulator for Hybrid Memory Cube version CasHMC v1.3 - 2017.07.10 1. Developer Dong-Ik Jeon Ki-Seok Chung Hanyang University estwings57 [at] gmail [dot] com 2. About CasHMC CasHMC provides a cycle-by-cycle simulation of every module in HMC, and generates analysis results including a bandwidth graph and statistical data. It supports HMC unique features, such as the high speed serial link, the packet-based interface, and the vault-based DRAM structure. Since CasHMC simulates all HMC modules at a cycle-accurate level, it is capable of deriving precise simulation results and analyses. Furthemore, CasHMC is implemented in C++ as a single wrapped object that includes a HMC controller, communication links, and the HMC memory. Instantiating this single wrapped object facilitates simultaneous simulation in parallel with other simulators that generate memory access patterns such as a processor simulator or a memory trace generator. 3. CasHMC version info v1.0 (2016.05.07 released) - Released the 1st CasHMC - Modeling HMC architecture and packet-based interface v1.1 (2016.07.21 released) - Support 'atomic commands' refered to HMC specification 2.1 (arithmetic, bitwise, boolean, comparison) for more information, check Transaction.h (TransactionType) or RunSim.cpp (line 86) v1.2 (2016.09.27 released) - Modify vault mapping (CrossbarSwitch) of the packet bigger than the maximum block size - Support a new link priority scheme (buffer-aware scheme) - Add one cycle delay for an atomic command operation in VaultController class (atomicOperLeft) - Minor revision (few mistakes) v1.3 (2017.07.10 released) - Integrated with gem5 simulator * Configure parameters loading at the runtime (parameters in ConfigSim.ini and ConfigDRAM.ini files) * Static and dynamic library compilation by Makefile - Link power consumption simulation is added (configured by link power parameter in ConfigSim.ini file) - Support various link power managements * QUIESCE_SLEEP : on the basis of the tQUIESCE that is the time interval to enter link lowe power mode * MSHR : the number of active links is decided by the number of the allocated MSHR * LINK_MONITOR : the number of active links is decided by the derived downstream and upstream link bandwidth * AUTONOMOUS : MSHR and LINK_MONITOR together - Minor revision 4. Getting CasHMC CasHMC is available on github. https://github.com/estwings57/CasHMC 5. Folder directory graph : Gnuplot script file and a graph data file after a simulation run is over result : Log files after a simulation run is over sources : All CasHMC source files trace : The example of trace files (The files are extracted from SPEC CPU2006 benchmarks) 6. Building CasHMC To build an optimized CasHMC $ make 7. Running CasHMC > Command line arguments -c (--cycle) : The number of CPU cycles to be simulated -t (--trace) : Trace type ('random' or 'file') -u (--util) : Requests frequency (0 = no requests, 1 = as fast as possible) [Default 0.1] -r (--rwratio) : (%) The percentage of reads in request stream [Default 80] -f (--file) : Trace file name -h (--help) : Simulation option help > The example of trace generator mode $ ./CasHMC -c 100000 -t random -u 0.1 -r 60 > The example of trace file mode $ ./CasHMC -c 100000 -t file -f ./trace/SPEC_CPU2006_example/mase_trace_bzip2_base.alpha.v0.trc > The example of CasHMCWrapper object instantiating In a source file #include "CasHMCWrapper.h“ #include "Transaction.h" ... CasHMCWrapper *casHMCWrapper = new CasHMCWrapper("ConfigSim.ini", "ConfigDRAM.ini"); ... TransactionType tranType = DATA_READ; uint64_t physicalAddress = 0x0123456789abcdef; unsigned dataSize = 32; Transaction *newTran = new Transaction(tranType, addr, dataSize, casHMCWrapper); casHMCWrapper->ReceiveTran(newTran); ... > Integration with gem5 simulator There is a script file [CasHMC/integration/gem5/integ_CasHMC-gem5.sh] for integrating CasHMC and gem5 Copy this script file to gem5 root directory and then run the script (gem5 download : $ hg clone http://repo.gem5.org/gem5) $ cp -a CasHMC/integration/gem5/integ_CasHMC-gem5.sh $GEM5_DIR $ source $GEM5_DIR/integ_CasHMC-gem5.sh 8. Special thanks to HyeJin Choi, Kyeong-Bin Park
About
CasHMC: A Cycle-accurate Simulator for Hybrid Memory Cube
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published