public bool reissue_rd_req() { //retry mshr if (mshr_retry) { Dbg.Assert(!mctrl_retry); //retry mshr bool mshr_ok = insert_mshr(curr_rd_req); if (!mshr_ok) { return(false); } //success mshr_retry = false; //check if true miss bool false_miss = inst_wnd.is_duplicate(curr_rd_req.block_addr); Dbg.Assert(!false_miss); //retry mctrl mctrl_retry = true; } //retry mctrl if (mctrl_retry) { Dbg.Assert(!mshr_retry); //retry mctrl bool mctrl_ok = insert_mctrl(curr_rd_req); if (!mctrl_ok) { return(false); } //success mctrl_retry = false; return(true); } //should never get here throw new System.Exception("Processor: Reissue Request"); }
public bool reissue_rd_req() { //retry mshr if (mshr_retry) { Dbg.Assert(!mctrl_retry); //retry mshr bool mshr_ok = insert_mshr(curr_rd_req); if (!mshr_ok) { return(false); } //success mshr_retry = false; //check if true miss bool false_miss = inst_wnd.is_duplicate(curr_rd_req.block_addr); Dbg.Assert(!false_miss); } mctrl_retry = request_retry(curr_rd_req); //retry mctrl if (mctrl_retry) { Dbg.Assert(!mshr_retry); //retry mctrl bool mctrl_ok = insert_mctrl(curr_rd_req); if (!mctrl_ok) { return(false); } //success mctrl_retry = false; Stat.procs[pid].l2_cache_miss_count.Collect(); return(true); } return(true); }