Skip to content

Commit

Permalink
Fix update logic
Browse files Browse the repository at this point in the history
  • Loading branch information
h0lyalg0rithm committed Oct 5, 2023
1 parent 21fa527 commit 6c351c7
Showing 1 changed file with 4 additions and 7 deletions.
11 changes: 4 additions & 7 deletions core/LSU.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1002,10 +1002,7 @@ namespace olympia
ILOG("Issue priority new dispatch " << inst_ptr);
for (auto &inst_info_ptr : ldst_inst_queue_) {
if (inst_info_ptr->getInstPtr() == inst_ptr) {
if(inst_info_ptr->getState() != LoadStoreInstInfo::IssueState::ISSUED)
{
inst_info_ptr->setState(LoadStoreInstInfo::IssueState::READY);
}
inst_info_ptr->setState(LoadStoreInstInfo::IssueState::READY);
inst_info_ptr->setPriority(LoadStoreInstInfo::IssuePriority::NEW_DISP);

return;
Expand All @@ -1027,7 +1024,7 @@ namespace olympia

if (mem_info_ptr->getMMUState() == MemoryAccessInfo::MMUState::MISS) {
// Re-activate all TLB-miss-pending instructions in the issue queue
if(!allow_speculative_load_exec_ || inst_info_ptr->getState() == LoadStoreInstInfo::IssueState::NOT_READY)
if(!allow_speculative_load_exec_)// Speculative misses are marked as not ready and replay event would set them back to ready
{
inst_info_ptr->setState(LoadStoreInstInfo::IssueState::READY);
}
Expand Down Expand Up @@ -1067,7 +1064,7 @@ namespace olympia

if (mem_info_ptr->getCacheState() == MemoryAccessInfo::CacheState::MISS) {
// Re-activate all cache-miss-pending instructions in the issue queue
if(!allow_speculative_load_exec_ || inst_info_ptr->getState() == LoadStoreInstInfo::IssueState::NOT_READY)
if(!allow_speculative_load_exec_) // Speculative misses are marked as not ready and replay event would set them back to ready
{
inst_info_ptr->setState(LoadStoreInstInfo::IssueState::READY);
}
Expand Down Expand Up @@ -1102,7 +1099,7 @@ namespace olympia
for (auto &inst_info_ptr : ldst_inst_queue_) {
if (inst_info_ptr->getInstPtr() == inst_ptr) {

if(!allow_speculative_load_exec_ || inst_info_ptr->getState() == LoadStoreInstInfo::IssueState::NOT_READY)
if(!allow_speculative_load_exec_)// Speculative misses are marked as not ready and replay event would set them back to ready
{
inst_info_ptr->setState(LoadStoreInstInfo::IssueState::READY);
}
Expand Down

0 comments on commit 6c351c7

Please sign in to comment.