Merge pull request #110 from tranan/master

Improve README.md file and remove TODOs in Arbiter.h
This commit is contained in:
fzeder
2016-09-19 09:58:27 +02:00
committed by GitHub Enterprise
4 changed files with 1313 additions and 1273 deletions

View File

@@ -985,4 +985,24 @@
y="0"
id="tspan640"
style="font-size:13.99967957px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:CALIBRI;-inkscape-font-specification:CALIBRI">()</tspan></text>
<path
d="m 414,30 90,0 0,24.75 -90,0 0,-24.75 z"
id="path642"
style="fill:#d8d8d8;fill-opacity:1;fill-rule:evenodd;stroke:none" /><path
d="m 414,30 90,0 0,24.75 -90,0 0,-24.75 z"
id="path644"
style="fill:none;stroke:#404040;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none" /><text
transform="matrix(1,0,0,-1,443.21,38.175)"
id="text646"><tspan
x="0 4.272336 9.1532879 16.119144"
y="0"
id="tspan648"
style="font-size:13.99967957px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:CALIBRI;-inkscape-font-specification:CALIBRI">free</tspan></text>
<text
transform="matrix(1,0,0,-1,466.3,38.175)"
id="text650"><tspan
x="0 4.24512"
y="0"
id="tspan652"
style="font-size:13.99967957px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:CALIBRI;-inkscape-font-specification:CALIBRI">()</tspan></text>
</g></svg>

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 58 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 114 KiB

View File

@@ -123,9 +123,6 @@ private:
return TLM_ACCEPTED;
}
// TODO: check this id. How the payload extension propagates and is used...
// TODO: check the index mechanism for initiator and target sockets. Assert the index to be valid.
// Initiated by initiator side
// This function is called when an arbiter's target socket receives a transaction from a device
tlm_sync_enum nb_transport_fw(int id, tlm_generic_payload& payload, tlm_phase& phase, sc_time& fwDelay)

View File

@@ -814,17 +814,28 @@ A description of the content each directory follows.
- **Payload Extension information**
GenerationExtension is added in TracePlayer and DramExtension is added in Arbiter.
DramExtension indicates the decoded address (channel, bank, colums, row) and the socket id (thread) of a payload. It is added in the Arbiter and is sent to the Controller.
![Payload Extension information](DRAMSys/docs/images/PayloadExtension.png)
- **Transaction object with Memory Manager**
The acquire method is called before passing the transaction object and the release method is called after the component is done with the transaction object.
The TracePlayer allocates the memory for the transaction object by calling allocatePayload method.
The acquire method is called before passing the transaction object in TracePlayer, Arbiter and Controller.
The release method is called after each component is done with the transaction object. After the final call of release method, the free method of the memory manager is called to free the transaction object.
![Payload Memory Manager](DRAMSys/docs/images/PayloadMemoryManager.png)
- **Architecture of the backend TLM model**
The below figure shows our custom TLM protocol between the Controller and the Dram. A new transaction enters the Controller with the BEGIN_REQ phase is stored in frontendPEQ. The callback function of the frontendPEQ is called and send the payload to the Scheduler.
The Scheduler checks the address of payload and the current state to determine proper command (Active, Precharge, Read or Write). Then the ControllerCore sends the payload with the corresponding phase (BEGIN_ACT, BEGIN_PRE, BEGIN_RD or BEGIN_WR) to the Dram by calling nb_transport_fw method.
The Dram receives the transaction then send back to the Controller by calling nb_transport_bw with appropriate END phase (END_ACT, END_PRE, END_RD or END_WR).
![Architecture backend TLM](DRAMSys/docs/images/TransactionPhase.png)
#### References