diff --git a/README.md b/README.md index 5a4ac2a5..e674b867 100644 --- a/README.md +++ b/README.md @@ -474,105 +474,6 @@ The IP address and the port number related to the server shall be informed in DRAMSys' configuration to subsequent use by DRAMSys to access the thermal simulation server. -#### Usage Example - -The DRAMSys' main configuration file is presented below. - -``` xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ../../../tests/error/test_error.stl - - - - -``` - -Enable the error model in fr_fcfs.xml. - -``` xml - - - - - - - - - - - - - - -``` - -Generate the input trace file for DRAMSys. - -``` bash -$ cd DRAMSys/tests/error/ -$ ./generateErrorTest.pl > test_error.stl -``` - -Start the 3D-ICE server providing the stack file and the port number. - -``` bash -$ cd DRAMSys/simulator/resources/configs/thermalsim -$ 3D-ICE-Server stack.stk 11880 -``` - -In another terminal or terminal tab start DRAMSys. Here the program's output -is redirected to a file. - -``` bash -$ cd build/simulator/ -$ ./dramSys > output -``` - ### DRAMSys Configuration The **dramSys** executable supports one argument which is a XML file that @@ -583,72 +484,32 @@ The XML code below shows a typic configuration: ``` xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - voco2.stl - voco2.stl - voco2.stl - - - + + + + + + + + + + + + + + ddr3_example.stl + ddr3_example.stl + ``` - Some configuration fields reference other XML files which contain more specialized chunks of the configuration like memory specification, address mapping and memory configurations. @@ -668,18 +529,25 @@ 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 configuration fields - clkMhz -(operation frequency for this device) and bl (burst length) - and a -**trace file**. +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. -A **trace player** is **equivalent** to a bus master **device** (i.e. a device -that locks a bus and generates memory transactions). 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. +Here is an example syntax: +``` +31: read 0x400140 +33: read 0x400160 +56: read 0x7fff8000 +81: read 0x400180 +``` + +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. @@ -689,13 +557,34 @@ providing **flexibility** for **exhaustive explorations.** #### Configuration File Sections -The main configuration file is divided into self-contained sections, each of -these sections is a set of logically related configuration aspects for the -simulation. +The main configuration file is divided into self-contained sections. Each of +these sections refers to sub-configuration files. -Below are listed the configuration sections and configuration fields. +Below, the sub-configurations are listed and explained. - **Simulator Configuration** + + The content of + [ddr3.xml](DRAMSys/simulator/resources/configs/simulator/ddr3.xml) is + presented below as an example. + + ```xml + + + + + + + + + + + + + ``` + + - *SimulationName* (boolean) + - Give the name of the simulation for distingushing from other simulations. - *Debug* (boolean) - "1": enables debug output on console - "0": disables debug output @@ -714,9 +603,6 @@ Below are listed the configuration sections and configuration fields. - Number of trace players - *NumberOfMemChannels* (unsigned int) - Number of memory channels - - *ControllerCoreDisableRefresh* (boolean) - - "1": disables refreshes - - "0": normal operation (refreshes enabled) - *ThermalSimulation* (boolean) - "1": enables thermal simulation - "0": static temperature during simulation @@ -730,6 +616,27 @@ Below are listed the configuration sections and configuration fields. - "0": disables the TLM 2.0 Protocol Checking - **Temperature Simulator Configuration** + + The content of + [config.xml](DRAMSys/simulator/resources/configs/thermalsim/config.xml) is + presented below as an example. + + ```xml + + + + + + + + + + + + + + ``` + - *TemperatureScale* (string) - "Celsius" - "Fahrenheit" @@ -764,8 +671,8 @@ Below are listed the configuration sections and configuration fields. - **Memory Specification** - A file with memory specifications. This information comes from datasheet and - usually does not change. + A file with memory specifications. This information comes from datasheets and + measurements, and usually does not change. - **Address Mapping** @@ -808,19 +715,26 @@ Below are listed the configuration sections and configuration fields. presented below as an example. ``` xml - - - - - - - - - - - - - + + + + + + + + + + + + + + + + ``` - *BankwiseLogic* (boolean) @@ -856,17 +770,13 @@ Below are listed the configuration sections and configuration fields. - "NoStorage": no storage - "Store": store data without error model - "ErrorModel": store data with error model [6] + - *ControllerCoreDisableRefresh* (boolean) + - "1": disables refreshes + - "0": normal operation (refreshes enabled) - **Trace Setups** - - *id* (string) - - Trace setup id. Two kinds of output files are generated by DRAMSys: - SQLite databases containing transactions related to each memory channel - (.tdb) and a text file (.txt) with the program output. The base name for - these files comes from this field. - *clkMhz* (unsigned int) - Speed of the trace player - - *bl* (unsigned int) - - Burst length - *trace file* - A pre-recorded file containing memory transactions to be executed by a trace player. @@ -894,6 +804,77 @@ A description of the content each directory follows. - **traces**: trace files for simulations. They contain accesses to memory in certain known scenarios. +#### Usage Example with Thermal Simulation + +The DRAMSys' main configuration file is presented below. + +``` xml + + + + + + + + + + + + + + + test_error.stl + + +``` + +Enable the error model in fr_fcfs.xml. + +``` xml + + + + + + + + + + + + + + +``` + +Generate the input trace file for DRAMSys. + +``` bash +$ cd DRAMSys/tests/error/ +$ ./generateErrorTest.pl > test_error.stl +``` + +Start the 3D-ICE server providing the stack file and the port number. + +``` bash +$ cd DRAMSys/simulator/resources/configs/thermalsim +$ 3D-ICE-Server stack.stk 11880 +``` + +In another terminal or terminal tab start DRAMSys. Here the program's output +is redirected to a file. + +``` bash +$ cd build/simulator/ +$ ./dramSys > output +``` + #### DRAMsys Diagrams - **Payload Extension information**