cpu-o3: Increase LSQ buffer sizes to match max vector length
Change-Id: I5890c7cfa147125ce3389001f85d56d4b5a9911d Signed-off-by: Gabor Dozsa <gabor.dozsa@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/13525 Tested-by: kokoro <noreply+kokoro@google.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Michael LeBeane <Michael.Lebeane@amd.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
This commit is contained in:
committed by
Giacomo Gabrielli
parent
3b04ba58b8
commit
019e3204ba
@@ -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"
|
||||
@@ -80,6 +81,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::CPUPol::IEW IEW;
|
||||
@@ -97,7 +100,7 @@ class LSQUnit
|
||||
/** The request. */
|
||||
LSQRequest* req;
|
||||
/** The size of the operation. */
|
||||
uint8_t _size;
|
||||
uint32_t _size;
|
||||
/** Valid entry. */
|
||||
bool _valid;
|
||||
public:
|
||||
@@ -142,8 +145,8 @@ class LSQUnit
|
||||
/** 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; }
|
||||
/** @} */
|
||||
};
|
||||
@@ -152,7 +155,7 @@ class LSQUnit
|
||||
{
|
||||
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. */
|
||||
@@ -659,7 +662,7 @@ LSQUnit<Impl>::read(LSQRequest *req, int load_idx)
|
||||
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user