chuckie512 / cashmc Goto Github PK
View Code? Open in Web Editor NEWThis project forked from estwings57/cashmc
CasHMC: A Cycle-accurate Simulator for Hybrid Memory Cube
Home Page: http://ieeexplore.ieee.org/document/7544479/
License: Other
This project forked from estwings57/cashmc
CasHMC: A Cycle-accurate Simulator for Hybrid Memory Cube
Home Page: http://ieeexplore.ieee.org/document/7544479/
License: Other
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.