Skip to content

Commit

Permalink
Uop memory generator in VLSU, adding mem request status to loadstore …
Browse files Browse the repository at this point in the history
…wrapper instead of inst_ptr
  • Loading branch information
aarongchan committed Jul 30, 2024
1 parent 47f1f86 commit 918caf8
Show file tree
Hide file tree
Showing 5 changed files with 175 additions and 127 deletions.
5 changes: 4 additions & 1 deletion core/LoadStoreInstInfo.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,9 @@ namespace olympia

bool isRetired() const { return getInstPtr()->getStatus() == Inst::Status::RETIRED; }

void setIsLastMemOp(bool is_last_mem_op) { is_last_mem_op_ = is_last_mem_op; }
bool isLastMemOp() const { return is_last_mem_op_; }

bool winArb(const LoadStoreInstInfoPtr & that) const
{
if (that == nullptr)
Expand Down Expand Up @@ -170,7 +173,7 @@ namespace olympia
bool in_ready_queue_;
uint32_t vector_iterations_ = 0;
uint32_t total_vector_iterations_ = 0;

bool is_last_mem_op_ = false;
Inst::Status vlsu_status_state_;
}; // class LoadStoreInstInfo

Expand Down
7 changes: 5 additions & 2 deletions core/MemoryAccessInfo.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,9 @@ namespace olympia

uint64_t getPhyAddr() const { return ldst_inst_ptr_->getRAdr(); }

sparta::memory::addr_t getVAddr() const { return ldst_inst_ptr_->getTargetVAddr(); }
sparta::memory::addr_t getVAddr() const { return vaddr_; }

void setVAddr(sparta::memory::addr_t vaddr) { vaddr_ = vaddr; }

void setSrcUnit(const ArchUnit & src_unit) { src_ = src_unit; }

Expand Down Expand Up @@ -187,6 +189,7 @@ namespace olympia
LoadStoreInstIterator replay_queue_iterator_;

bool is_vector_ = false;
sparta::memory::addr_t vaddr_;
};

using MemoryAccessInfoPtr = sparta::SpartaSharedPointer<MemoryAccessInfo>;
Expand Down Expand Up @@ -267,7 +270,7 @@ namespace olympia

inline std::ostream & operator<<(std::ostream & os, const olympia::MemoryAccessInfo & mem)
{
os << "memptr: " << mem.getInstPtr();
os << "memptr: " << mem.getInstPtr() << " " << mem.getVAddr();
return os;
}

Expand Down
1 change: 1 addition & 0 deletions core/ROB.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ namespace olympia

void ROB::retireInstructions_()
{
ILOG("Retiring")
// ROB is expecting a flush (back to itself)
if (expect_flush_)
{
Expand Down
Loading

0 comments on commit 918caf8

Please sign in to comment.