diff --git a/README.md b/README.md index 52155331..72b4e72f 100644 --- a/README.md +++ b/README.md @@ -126,8 +126,15 @@ The JSON code below shows an example configuration: "name": "ddr3_example.stl" }, { - "clkMhz": 400, - "name": "ddr3_example.stl" + "clkMhz": 2000, + "type": "generator", + "name": "gen0", + "numRequests": 2000, + "rwRatio": 0.85, + "addressDistribution": "random", + "seed": 123456, + "maxPendingReadRequests": 8, + "maxPendingWriteRequests": 8 } ] } @@ -142,7 +149,14 @@ Fields Description: - "mcconfig": memory controller configuration file - "tracesetup": The trace setup is only used in standalone mode. In library mode or gem5 mode the trace setup is ignored. Each device should be added as a json object inside the "tracesetup" array. -Each **trace setup** device configuration consists of two parameters, **clkMhz** (operation frequency of the **trace player**) and a trace file **name**. Most configuration fields reference other JSON files which contain more specialized chunks of the configuration like a memory specification, an address mapping and a memory controller configuration. +Each **trace setup** device configuration can either be a **trace player** or a **traffic generator**. By not specifing the **type** parameter, the device will act as a **trace player**. +All device configurations must define a **clkMhz** (operation frequency of the **traffic initiator**) and a trace file **name** (in case of a trace player this specifies the **trace file** to play; in case of a traffic generator this field is only for identification purposes). +The **maxPendingReadRequests** and **maxPendingWriteRequests** parameters define the maximum number of outstanding read/write requests. The current implementation delays all memory accesses when one limit is reached. The default value (0) disables the limit. + +A **traffic generator** can be configured to generate **numRequests** requests in total, of which the **rwRatio** field defines the probability of one request being a read request. The **seed** parameter can be used to produce same results for all simulations. +The parameter **addressDistribution** can either be set to **"random"** or **"sequential"**. In case of **"sequential"** the additional **addressIncrement** field must be specified, defining the address increments after each request. + +Most configuration fields reference other JSON files which contain more specialized chunks of the configuration like a memory specification, an address mapping and a memory controller configuration. #### Trace Files