diff --git a/README.md b/README.md index 70ddd34a..9f90d747 100644 --- a/README.md +++ b/README.md @@ -191,16 +191,6 @@ From the build directory use the commands below to execute the traceAnalyzer. ``` bash $ cd traceAnalyzer -$ ./traceAnalyzer -``` - -Note for GNU/Linux users: - -If your keyboard shortcuts (e.g., Ctrl+O, Ctrl+T) from the traceAnalyzer menu -appear as "ghost" and pressing any of the key combinations has no effect then -you may need to set an extra environment variable: - -``` bash $ export QT_QPA_PLATFORMTHEME=qgnomeplatform $ ./traceAnalyzer ``` @@ -403,7 +393,7 @@ export LIBTHREED_ICE_HOME= export LIBSUPERLU_HOME= ``` -#### Running DRAMSys +#### Running DRAMSys with Thermal Simulation Before starting make sure you have a **clean repository** without any previous automatic generated Makefiles. One way to ensure this is by running the @@ -475,11 +465,9 @@ The XML code below shows a typic configuration: ddr3_example.stl - ddr3_example.stl + ddr3_SAMSUNG_M471B5674QH0_DIMM_example.stl ``` @@ -491,42 +479,35 @@ The XML configuration files are parsed by the program and the configuration details extracted are assigned to the correspondent attributes of the internal configuration structure. -#### Simulation Setups - -Every possible combination of memory specification, address mapping and memory -configuration corresponds to a **simulation setup**. - -DRAMSys executes all the **trace setups** listed in the configuration file for -each of the simulation setups. - -A single **trace setup** is composed of an id string and one or more -**devices**. - The **device** configuration consists of two parameters - clkMhz (operation frequency for this device) - and a **trace file**. A **trace file** is a pre-recorded file containing memory transactions. Each memory transaction has a timestamp that tells the simulator when it shall -happen, a transaction type (e.g. read, write) and a memory address. +happen, a transaction type (read or write) and a memory address given in +hexadecimal. Here is an example syntax: + ``` +# Comment lines initiate with # +# [clock-cyle]: [write|read] [hex-address] 31: read 0x400140 33: read 0x400160 -56: read 0x7fff8000 +56: write 0x7fff8000 81: read 0x400180 ``` +The timestamp corresponds to the time the request is to be issued and it is +given in cycles of the bus master device. Example: the device is a FPGA with +frequency 200 MHz (clock period of 5 ns). If the timestamp is 10 it means that +the request is to be issued when time is 50 ns. + A **trace player** is **equivalent** to a bus master **device** -(e.g. a processor). By adding device elements into the trace setup section -one can specify the operation frequency, the burst length and the trace file -to be used by trace players. - -Trace players without a corresponding device configuration do not generate -transactions. - -**DRAMSys** executes all the simulation setups within the configuration file -providing **flexibility** for **exhaustive explorations.** +(processor, FPGA, etc.). It reads an input trace file and translates each line into +a new memory request. By adding a new device element into the trace setup section +one can specify a new trace player, its operating frequency and the trace file +for that trace player. #### Configuration File Sections @@ -573,8 +554,6 @@ Below, the sub-configurations are listed and explained. - "0": disables temporal windowing - *WindowSize* (unisgned int) - Size of the window in clock cycles used to evaluate average bandwidth and average power consumption - - *NumberOfTracePlayers* (unsigned int) - - Number of trace players - *NumberOfMemChannels* (unsigned int) - Number of memory channels - *ThermalSimulation* (boolean)