forked from iris-casl/manifold
-
Notifications
You must be signed in to change notification settings - Fork 0
For fat tree
License
sharda/manifold
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Lib requirements ---------------- The code uses the gsl scientific library and I am yet to fix the configure script to check for if it is available. So make sure you have gsl installed. Installing it on ubuntu by sudo apt-get install libgsl0 libgsl0-dev How to compile and run the simulator ------------------------------------ 1. Follow the given steps to compile Iris ./configure make 2. Run the simulator There are three different binaries - manifold_simMC: this runs a standalone version of the memory controller simulator and takes as many traces as the number of the threads. ./manifold_simMC <trace1> <trace2> ./manifold_simMC traces/perl_3254.tr traces/perl_3254.tr - manifold_simIris: this runs an integrated network and memory model with currently the mesh topology. This is a simple sample test case of pkt generators with sink nodes. ./manifold_simIris config/ex_mesh_phy_sink.cfg - manifold_fullSim: this runs the full system with zesto->network->MC. Currently only supports meshes of small sizes. - TODO: DHRUV FILL IN SAMPLE The following switches are supported at the command line in the current version --thread_id_bits, --mc_bits --early_credit Environment details ------------------- The current version has been tested with 1. gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4) Linux 2.6.28-18-generic #60-Ubuntu SMP i686 GNU/Linux 2. gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu4) Linux 2.6.24-23-generic #1 SMP i686 GNU/Linux To add parameters to the config file ------------------------------------ 1. Add the new parameter to the manifold/source/util/config_params.h file. Example: uint no_of_cores = 0; uint concentration = 0; 2. To use the new parameter in a source file, use "extern" keyword. Example: To use these variables in mesh.h file, we include the following lines: extern uint no_of_cores; extern uint concentration; To add additional fields to high level and low level packets ------------------------------------------------------------ 1. Add the new field to the file manifold/source/simIris/data_types/highLevelPacket.h ( for a high level packet ) and manifold/source/simIris/data_types/lowLevelPacket.h (for a low level packet) Example: unsigned int transaction_idt; 2. Add the new field to the corresponding part in the head/body/tail of the flit packet as defined in manifold/source/simIris/data_types/flit.h Example: unsigned int transaction_id; // added to class HeadFlit 3. In manifold/source/simIris/data_types/lowLevelPacket.cc file, add the new field to the corresponding part of LowLevelPacket::add(Flit* ptr) function. Example: this->transaction_id = hf->transaction_id; 4. In manifold/source/simIris/data_types/highLevelPacket.cc file, make entries for the new field in the 2 functions for converting from high level to low level packets and vice-versa. Example: In HighLevelPacket::to_low_level_packet(LowLevelPacket* pkt) hf->transaction_id = transaction_id; and in HighLevelPacket::from_low_level_packet (LowLevelPacket* llp) transaction_id = llp->transaction_id; 5. To use this field, include code as shown in sample below from manifold/simIris/source/components/impl/genericTPGVcs.cc file which uses hop_count in the function GenericTPGVcs::handle_out_pull_event ( IrisEvent* e ) Example: hlp->transaction_id = 1000;
About
For fat tree
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- C++ 53.8%
- Java 34.3%
- C 11.5%
- Other 0.4%