Hello Gabor Dozsa,
I'd like you to do a code review. Please visit
https://gem5-review.googlesource.com/c/public/gem5/+/13525
to review the following change.
Change subject: cpu-o3: Increase LSQ buffer sizes to match max vector length
......................................................................
cpu-o3: Increase LSQ buffer sizes to match max vector length
Change-Id: I5890c7cfa147125ce3389001f85d56d4b5a9911d
Signed-off-by: Gabor Dozsa <[email protected]>
---
M src/cpu/o3/lsq_unit.hh
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/cpu/o3/lsq_unit.hh b/src/cpu/o3/lsq_unit.hh
index 91046b8..41d8930 100644
--- a/src/cpu/o3/lsq_unit.hh
+++ b/src/cpu/o3/lsq_unit.hh
@@ -51,6 +51,7 @@
#include <queue>
#include "arch/generic/debugfaults.hh"
+#include "arch/generic/vec_reg.hh"
#include "arch/isa_traits.hh"
#include "arch/locked_mem.hh"
#include "arch/mmapped_ipr.hh"
@@ -79,6 +80,8 @@
template <class Impl>
class LSQUnit {
public:
+ static constexpr auto MaxDataBytes = MaxVecRegLenInBytes;
+
typedef typename Impl::O3CPU O3CPU;
typedef typename Impl::DynInstPtr DynInstPtr;
typedef typename Impl::DynInstConstPtr DynInstConstPtr;
@@ -97,7 +100,7 @@
/** The request. */
LSQRequest* req;
/** The size of the operation. */
- uint8_t _size;
+ uint32_t _size;
/** Valid entry. */
bool _valid;
public:
@@ -137,8 +140,8 @@
/** Member accessors. */
/** @{ */
bool valid() const { return _valid; }
- uint8_t& size() { return _size; }
- const uint8_t& size() const { return _size; }
+ uint32_t& size() { return _size; }
+ const uint32_t& size() const { return _size; }
const DynInstPtr& instruction() const { return inst; }
/** @} */
};
@@ -147,7 +150,7 @@
{
private:
/** The store data. */
- char _data[64]; // TODO: 64 should become a parameter
+ char _data[MaxDataBytes];
/** Whether or not the store can writeback. */
bool _canWB;
/** Whether or not the store is committed. */
@@ -644,7 +647,7 @@
if (req->mainRequest()->isMmappedIpr()) {
assert(!load_inst->memData);
- load_inst->memData = new uint8_t[64];
+ load_inst->memData = new uint8_t[MaxDataBytes];
ThreadContext *thread = cpu->tcBase(lsqID);
PacketPtr main_pkt = new Packet(req->mainRequest(),
MemCmd::ReadReq);
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/13525
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: I5890c7cfa147125ce3389001f85d56d4b5a9911d
Gerrit-Change-Number: 13525
Gerrit-PatchSet: 1
Gerrit-Owner: Giacomo Gabrielli <[email protected]>
Gerrit-Reviewer: Gabor Dozsa <[email protected]>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev