diff options
author | Korey Sewell <ksewell@umich.edu> | 2010-01-31 18:26:13 -0500 |
---|---|---|
committer | Korey Sewell <ksewell@umich.edu> | 2010-01-31 18:26:13 -0500 |
commit | eac5eac67ae8076e934d78063a24eeef08f25413 (patch) | |
tree | a782cc748f191af1b5ddf3027913067599019d02 /src/cpu/inorder/resource.cc | |
parent | d8e0935af2805bc2c4bdfbab7de2c63f7fde46f7 (diff) | |
download | gem5-eac5eac67ae8076e934d78063a24eeef08f25413.tar.xz |
inorder: squash on memory stall
add code to recognize memory stalls in resources and the pipeline as well
as squash a thread if there is a stall and we are in the switch on cache miss
model
Diffstat (limited to 'src/cpu/inorder/resource.cc')
-rw-r--r-- | src/cpu/inorder/resource.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/cpu/inorder/resource.cc b/src/cpu/inorder/resource.cc index 286332e08..47a9a4b9a 100644 --- a/src/cpu/inorder/resource.cc +++ b/src/cpu/inorder/resource.cc @@ -340,6 +340,12 @@ Resource::squash(DynInstPtr inst, int stage_num, InstSeqNum squash_seq_num, } } +void +Resource::squashDueToMemStall(DynInstPtr inst, int stage_num, InstSeqNum squash_seq_num, + ThreadID tid) +{ + squash(inst, stage_num, squash_seq_num, tid); +} Tick Resource::ticks(int num_cycles) @@ -407,7 +413,7 @@ ResourceRequest::ResourceRequest(Resource *_res, DynInstPtr _inst, unsigned _cmd) : res(_res), inst(_inst), cmd(_cmd), stageNum(stage_num), resIdx(res_idx), slotNum(slot_num), completed(false), - squashed(false), processing(false), waiting(false) + squashed(false), processing(false), memStall(false) { #ifdef DEBUG reqID = resReqID++; |