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**