Readme updated
This commit is contained in:
379
README.md
379
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
|
||||
<simulation>
|
||||
<!-- General Simulator Configuration (used for all simulation setups) -->
|
||||
<simconfig>
|
||||
<Debug value="1" />
|
||||
<DatabaseRecording value="1" />
|
||||
<PowerAnalysis value="1" />
|
||||
<EnableWindowing value = "1" />
|
||||
<WindowSize value="1000" />
|
||||
<NumberOfTracePlayers value="1"/>
|
||||
<NumberOfMemChannels value="4"/>
|
||||
<ControllerCoreDisableRefresh value="0"/>
|
||||
<ThermalSimulation value="1"/>
|
||||
<SimulationProgressBar value="1"/>
|
||||
<NumberOfDevicesOnDIMM value = "1" />
|
||||
<CheckTLM2Protocol value = "0" />
|
||||
</simconfig>
|
||||
|
||||
<!-- Temperature Simulator Configuration (used for all simulation setups) -->
|
||||
<thermalsimconfig>
|
||||
<TemperatureScale value="Celsius" />
|
||||
<StaticTemperatureDefaultValue value="23" />
|
||||
<ThermalSimPeriod value="100" />
|
||||
<ThermalSimUnit value="us" />
|
||||
<PowerInfoFile value="../../DRAMSys/simulator/resources/configs/thermalsim/powerInfo.xml"/>
|
||||
<IceServerIp value="127.0.0.1" />
|
||||
<IceServerPort value="11880" />
|
||||
<SimPeriodAdjustFactor value="10" />
|
||||
<NPowStableCyclesToIncreasePeriod value="5" />
|
||||
<GenerateTemperatureMap value="1" />
|
||||
<GeneratePowerMap value="1" />
|
||||
</thermalsimconfig>
|
||||
|
||||
<memspecs>
|
||||
<memspec src="../../DRAMSys/simulator/resources/configs/memspecs/WideIO.xml"></memspec>
|
||||
</memspecs>
|
||||
|
||||
<addressmappings>
|
||||
<addressmapping src="../../DRAMSys/simulator/resources/configs/amconfigs/am_wideio.xml"></addressmapping>
|
||||
</addressmappings>
|
||||
|
||||
<memconfigs>
|
||||
<memconfig src="../../DRAMSys/simulator/resources/configs/memconfigs/fr_fcfs.xml"/>
|
||||
</memconfigs>
|
||||
|
||||
<tracesetups>
|
||||
<tracesetup id="fifo">
|
||||
<device clkMhz="1000">../../../tests/error/test_error.stl</device>
|
||||
</tracesetup>
|
||||
</tracesetups>
|
||||
|
||||
</simulation>
|
||||
```
|
||||
|
||||
Enable the error model in fr_fcfs.xml.
|
||||
|
||||
``` xml
|
||||
<memconfig>
|
||||
<BankwiseLogic value="0"/>
|
||||
<OpenPagePolicy value="1" />
|
||||
<MaxNrOfTransactions value="8" />
|
||||
<Scheduler value="FR_FCFS" />
|
||||
<Capsize value="5" />
|
||||
<PowerDownMode value="NoPowerDown"/>
|
||||
<PowerDownTimeout value="100" />
|
||||
<!-- Error Model: -->
|
||||
<ErrorChipSeed value="42" />
|
||||
<ErrorCSVFile value="../../DRAMSys/simulator/src/error/error.csv" />
|
||||
<!-- Modes: NoStorage, Store (store data without errormodel), ErrorModel (store data with errormodel) -->
|
||||
<StoreMode value="ErrorModel" />
|
||||
</memconfig>
|
||||
```
|
||||
|
||||
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
|
||||
<simulation>
|
||||
|
||||
<!-- General Simulator Configuration (used for all simulation setups) -->
|
||||
<simconfig>
|
||||
<Debug value="1"/>
|
||||
<DatabaseRecording value="1"/>
|
||||
<PowerAnalysis value="1"/>
|
||||
<EnableWindowing value = "1" />
|
||||
<WindowSize value="1000" />
|
||||
<NumberOfTracePlayers value="5"/>
|
||||
<NumberOfMemChannels value="1"/>
|
||||
<ControllerCoreDisableRefresh value="0"/>
|
||||
<ThermalSimulation value="0"/>
|
||||
<SimulationProgressBar value="1"/>
|
||||
<NumberOfDevicesOnDIMM value = "1" />
|
||||
<CheckTLM2Protocol value = "0" />
|
||||
</simconfig>
|
||||
|
||||
<!-- Temperature Simulator Configuration (used for all simulation setups) -->
|
||||
<thermalsimconfig>
|
||||
<TemperatureScale value="Celsius" />
|
||||
<StaticTemperatureDefaultValue value="89" />
|
||||
<ThermalSimPeriod value="100" />
|
||||
<ThermalSimUnit value="ms" />
|
||||
<PowerInfoFile value="../../DRAMSys/simulator/resources/configs/thermalsim/power_thresholds.xml"/>
|
||||
<IceServerIp value="127.0.0.1" />
|
||||
<IceServerPort value="11880" />
|
||||
<SimPeriodAdjustFactor value="10" />
|
||||
<NPowStableCyclesToIncreasePeriod value="5" />
|
||||
<GenerateTemperatureMap value="1" />
|
||||
<GeneratePowerMap value="1" />
|
||||
</thermalsimconfig>
|
||||
|
||||
<!-- Memory Specifications -->
|
||||
<memspecs>
|
||||
<memspec src="../../DRAMSys/simulator/resources/configs/memspecs/WideIO.xml"></memspec>
|
||||
</memspecs>
|
||||
|
||||
<!-- Address Mappings -->
|
||||
<addressmappings>
|
||||
<addressmapping src="../../DRAMSys/simulator/resources/configs/amconfigs/am_wideio.xml"></addressmapping>
|
||||
</addressmappings>
|
||||
|
||||
<!-- Memory Configurations -->
|
||||
<memconfigs>
|
||||
<memconfig src="../../DRAMSys/simulator/resources/configs/memconfigs/fifo.xml"/>
|
||||
</memconfigs>
|
||||
|
||||
<!-- Trace Setups -->
|
||||
<tracesetups>
|
||||
<!-- Multiple trace setups are allowed for the same simulation setup -->
|
||||
<tracesetup id="fifo">
|
||||
<!--
|
||||
Specify here a trace file for each of the trace players. Trace
|
||||
players without a file will not generate transactions.
|
||||
It is also possible to choose "cklMhz" and the "bl" for every
|
||||
player.
|
||||
-->
|
||||
<device clkMhz="200">voco2.stl</device>
|
||||
<device clkMhz="200">voco2.stl</device>
|
||||
<device clkMhz="200">voco2.stl</device>
|
||||
</tracesetup>
|
||||
</tracesetups>
|
||||
|
||||
<!-- Configuration for the DRAMSys Simulator -->
|
||||
<simconfig src="ddr3.xml" />
|
||||
<!-- Temperature Simulator Configuration -->
|
||||
<thermalconfig src="config.xml" />
|
||||
<!-- Memory Device Specification: Which Device is on the DDR3 DIMM -->
|
||||
<memspec src="MICRON_1Gb_DDR3-1600_8bit_G.xml"></memspec>
|
||||
<!-- Addressmapping Configuration of the Memory Controller -->
|
||||
<addressmapping src="am_ddr3_8x1Gbx8_dimm_p1KB_brc.xml"></addressmapping>
|
||||
<!-- Memory Controller Configuration: -->
|
||||
<mcconfig src="fifoStrict.xml"/>
|
||||
<!--
|
||||
The following trace setup is only used in standalone mode.
|
||||
In library mode e.g. in Platform Architect the trace setup is ignored.
|
||||
-->
|
||||
<tracesetup id="fifo_scram">
|
||||
<!--
|
||||
Specify here a trace file for each of the trace players. Trace
|
||||
players without a file will not generate transactions.
|
||||
It is also possible to choose "cklMhz" and the "bl" for every
|
||||
player.
|
||||
-->
|
||||
<device clkMhz="200">ddr3_example.stl</device>
|
||||
<device clkMhz="200">ddr3_example.stl</device>
|
||||
</tracesetup>
|
||||
</simulation>
|
||||
```
|
||||
|
||||
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
|
||||
<simconfig>
|
||||
<SimulationName value="ddr3" />
|
||||
<Debug value="0" />
|
||||
<DatabaseRecording value="1" />
|
||||
<PowerAnalysis value="1" />
|
||||
<EnableWindowing value = "1" />
|
||||
<WindowSize value="100" />
|
||||
<ThermalSimulation value="0"/>
|
||||
<SimulationProgressBar value="1"/>
|
||||
<NumberOfMemChannels value="1"/>
|
||||
<NumberOfDevicesOnDIMM value = "8" />
|
||||
</simconfig>
|
||||
```
|
||||
|
||||
- *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
|
||||
<thermalsimconfig>
|
||||
<TemperatureScale value="Celsius" />
|
||||
<StaticTemperatureDefaultValue value="89" />
|
||||
<ThermalSimPeriod value="100" />
|
||||
<ThermalSimUnit value="us" />
|
||||
<PowerInfoFile value="../../DRAMSys/simulator/resources/configs/thermalsim/powerInfo.xml"/>
|
||||
<IceServerIp value="127.0.0.1" />
|
||||
<IceServerPort value="11880" />
|
||||
<SimPeriodAdjustFactor value="10" />
|
||||
<NPowStableCyclesToIncreasePeriod value="5" />
|
||||
<GenerateTemperatureMap value="1" />
|
||||
<GeneratePowerMap value="1" />
|
||||
</thermalsimconfig>
|
||||
```
|
||||
|
||||
- *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
|
||||
<memconfig>
|
||||
<BankwiseLogic value="0"/>
|
||||
<OpenPagePolicy value="1"/>
|
||||
<MaxNrOfTransactions value="8"/>
|
||||
<Scheduler value="FIFO_STRICT"/>
|
||||
<Capsize value="5"/>
|
||||
<PowerDownMode value="NoPowerDown"/>
|
||||
<PowerDownTimeout value="100"/>
|
||||
<!-- Error Modelling -->
|
||||
<ErrorChipSeed value="42"/>
|
||||
<ErrorCSVFile value="../../DRAMSys/simulator/src/error/error.csv" />
|
||||
<StoreMode value="NoStorage"/>
|
||||
</memconfig>
|
||||
<mcconfig>
|
||||
<BankwiseLogic value="0"/>
|
||||
<OpenPagePolicy value="1" />
|
||||
<MaxNrOfTransactions value="8" />
|
||||
<Scheduler value="FIFO" />
|
||||
<Capsize value="5" />
|
||||
<!-- 4 Modes: NoPowerDown, Staggered, TimeoutPDN, TimeoutSREF -->
|
||||
<PowerDownMode value="NoPowerDown" />
|
||||
<PowerDownTimeout value="100" />
|
||||
<!-- Error Modelling -->
|
||||
<ErrorChipSeed value="42" />
|
||||
<ErrorCSVFile value="../../DRAMSys/simulator/src/error/error.csv" />
|
||||
<!-- Modes:
|
||||
- NoStorage,
|
||||
- Store (store data without errormodel),
|
||||
- ErrorModel (store data with errormodel)
|
||||
-->
|
||||
<StoreMode value="NoStorage" />
|
||||
<ControllerCoreDisableRefresh value="0"/>
|
||||
</mcconfig>
|
||||
```
|
||||
|
||||
- *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
|
||||
<simulation>
|
||||
<!-- Configuration for the DRAMSys Simulator -->
|
||||
<simconfig src="wideio_thermal.xml" />
|
||||
<!-- Temperature Simulator Configuration -->
|
||||
<thermalconfig src="confi.xml" />
|
||||
<!-- Memory Device Specification: Which Device is on the DDR3 DIMM -->
|
||||
<memspec src="WideIO.xml"></memspec>
|
||||
<!-- Addressmapping Configuration of the Memory Controller -->
|
||||
<addressmapping src="am_wideio.xml"></addressmapping>
|
||||
<!-- Memory Controller Configuration: -->
|
||||
<mcconfig src="fr_fcfs.xml"/>
|
||||
<!--
|
||||
The following trace setup is only used in standalone mode.
|
||||
In library mode e.g. in Platform Architect the trace setup is ignored.
|
||||
-->
|
||||
<tracesetup id="fifo_scram">
|
||||
<!--
|
||||
This device mimics an image processing application
|
||||
running on an FPGA with 200 Mhz.
|
||||
-->
|
||||
<device clkMhz="1000">test_error.stl</device>
|
||||
</tracesetup>
|
||||
</simulation>
|
||||
```
|
||||
|
||||
Enable the error model in fr_fcfs.xml.
|
||||
|
||||
``` xml
|
||||
<memconfig>
|
||||
<BankwiseLogic value="0"/>
|
||||
<OpenPagePolicy value="1" />
|
||||
<MaxNrOfTransactions value="8" />
|
||||
<Scheduler value="FR_FCFS" />
|
||||
<Capsize value="5" />
|
||||
<PowerDownMode value="NoPowerDown"/>
|
||||
<PowerDownTimeout value="100" />
|
||||
<!-- Error Model: -->
|
||||
<ErrorChipSeed value="42" />
|
||||
<ErrorCSVFile value="../../DRAMSys/simulator/src/error/error.csv" />
|
||||
<!-- Modes: NoStorage, Store (store data without errormodel), ErrorModel (store data with errormodel) -->
|
||||
<StoreMode value="ErrorModel" />
|
||||
</memconfig>
|
||||
```
|
||||
|
||||
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**
|
||||
|
||||
Reference in New Issue
Block a user