From 9c927f4dd7a47af2e3306a420d0781eff711320a Mon Sep 17 00:00:00 2001 From: Derek Christ Date: Wed, 2 Jun 2021 10:52:53 +0200 Subject: [PATCH] Update readme to reflect new traffic generator changes. The readme was updated to reflect the new json configuration parameters for the traffic generator. --- README.md | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) 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