From 27a58c86ce494588a12023a12b027b7f44bb35fc Mon Sep 17 00:00:00 2001 From: Julian Blake Kongslie Date: Sun, 15 Jan 2023 14:02:54 -0800 Subject: Stall decode after an instruction with stores until the stores are done. --- uarch/core.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'uarch/core.h') diff --git a/uarch/core.h b/uarch/core.h index b53a205..21725b3 100644 --- a/uarch/core.h +++ b/uarch/core.h @@ -17,6 +17,7 @@ struct restart { infra::transaction tr; unsigned int new_pc; bool interrupt; + unsigned int stores_sent = 0; }; struct fetch_bundle { @@ -57,6 +58,9 @@ struct decode_stage : public infra::sim { unsigned int pc; std::uint64_t icount; + unsigned int speculative_stores_sent = 0; + unsigned int stores_done = 0; + decode_stage(core &c); void clock(); @@ -77,6 +81,8 @@ struct exec_stage : public infra::sim { unsigned int gen = 0; + unsigned int stores_sent = 0; + unsigned int acc; unsigned int link; unsigned int mq; @@ -108,6 +114,7 @@ struct core { infra::port decode_mem_commandp; infra::port decode_mem_responsep; + infra::port decode_store_completep; infra::port decode_to_exec_instp; infra::port indir_instp; -- cgit v1.2.3