Skip to content

Commit 1da40c2

Browse files
Fix for Fetch Hang (#254) (#256)
It was observed that in certain long tests olympia model completed prematurely. This is because fetch unit is not restarted after flush and in this particular case, there were no credits or other events that triggered fetch to start fetching instructions Solution is to schedule fetching in next cycle after flush, just as done on initialization Co-authored-by: Rajat Bhatia <rbhatia@ventanamicro.com>
1 parent 662c24f commit 1da40c2

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

core/fetch/Fetch.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,11 @@ namespace olympia
260260

261261
// No longer speculative
262262
// speculative_path_ = false;
263+
264+
// Fix for Issue #254
265+
// It is possible that we do not have any external trigger to restart
266+
// fetch, so force bootstrap it like when initialized
267+
ev_fetch_insts->schedule(1);
263268
}
264269

265270
void Fetch::onROBTerminate_(const bool & stopped)

0 commit comments

Comments
 (0)