There seems to be a bug in HBMCtrl #1867
-
I tested HBM2Stack() and found that some addresses were inaccessible, and the following error occurred: src/mem/mem_ctrl.cc:633: panic: panic condition !mem_intr->getAddrRange().contains(pkt->getAddr()) occurred: Can't handle address range for packet ReadSharedReq [1e3dc0:1e3dff] By debugging, I found that HBMCtrl is a single memory controller to the membus, and it seems that it does not correctly transmit the requested address to the corresponding internal pseudo channel, regardless of whether _interleave_addresses is used. When using _interleave_addresses, the test code is as follows:
When not using _interleave_addresses, the test code is as follows:
|
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
I don't fully understand the bug report. Can you show a complete example of the HBM controller not working so we can reproduce? I believe the second example is incorrect. The ranges for the two pseudo channels are assumed to be interleaved with bit 6. See https://github.com/gem5/gem5/blob/stable/src/mem/hbm_ctrl.cc#L229. Maybe we can provide a |
Beta Was this translation helpful? Give feedback.
I don't fully understand the bug report. Can you show a complete example of the HBM controller not working so we can reproduce?
I believe the second example is incorrect. The ranges for the two pseudo channels are assumed to be interleaved with bit 6. See https://github.com/gem5/gem5/blob/stable/src/mem/hbm_ctrl.cc#L229.
Maybe we can provide a
fatal
if this is misconfigured.