mem: HBMCtrl changes to allow PC data buses to be in different states
This change updates the HBMCtrl such that both pseudo channels can be in separate states (read or write) at the same time. In addition, the controller queues are now always split in two halves for both pseudo channels. Change-Id: Ifb599e611ad99f6c511baaf245bad2b5c9210a86 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/65491 Reviewed-by: Jason Lowe-Power <power.jg@gmail.com> Maintainer: Jason Lowe-Power <power.jg@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
@@ -189,6 +189,28 @@ class MemInterface : public AbstractMemory
|
||||
Tick nextBurstAt = 0;
|
||||
Tick nextReqTime = 0;
|
||||
|
||||
/**
|
||||
* Reads/writes performed by the controller for this interface before
|
||||
* bus direction is switched
|
||||
*/
|
||||
uint32_t readsThisTime = 0;
|
||||
uint32_t writesThisTime = 0;
|
||||
|
||||
/**
|
||||
* Read/write packets in the read/write queue for this interface
|
||||
* qos/mem_ctrl.hh has similar counters, but they track all packets
|
||||
* in the controller for all memory interfaces connected to the
|
||||
* controller.
|
||||
*/
|
||||
uint32_t readQueueSize = 0;
|
||||
uint32_t writeQueueSize = 0;
|
||||
|
||||
|
||||
MemCtrl::BusState busState = MemCtrl::READ;
|
||||
|
||||
/** bus state for next request event triggered */
|
||||
MemCtrl::BusState busStateNext = MemCtrl::READ;
|
||||
|
||||
/**
|
||||
* pseudo channel number used for HBM modeling
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user