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.hh | |
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.hh')
-rw-r--r-- | src/cpu/inorder/resource.hh | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/cpu/inorder/resource.hh b/src/cpu/inorder/resource.hh index 2cf8e61eb..f7c4b8fcd 100644 --- a/src/cpu/inorder/resource.hh +++ b/src/cpu/inorder/resource.hh @@ -156,6 +156,9 @@ class Resource { virtual void squash(DynInstPtr inst, int stage_num, InstSeqNum squash_seq_num, ThreadID tid); + virtual void squashDueToMemStall(DynInstPtr inst, int stage_num, + InstSeqNum squash_seq_num, ThreadID tid); + /** The number of instructions available that this resource can * can still process */ @@ -376,8 +379,8 @@ class ResourceRequest void setProcessing() { processing = true; } /** Get/Set IsWaiting variables */ - bool isWaiting() { return waiting; } - void setWaiting() { waiting = true; } + bool isMemStall() { return memStall; } + void setMemStall(bool stall = true) { memStall = stall; } protected: /** Resource Identification */ @@ -386,11 +389,12 @@ class ResourceRequest int resIdx; int slotNum; - /** Resource Status */ + /** Resource Request Status */ bool completed; bool squashed; bool processing; - bool waiting; + + bool memStall; }; #endif //__CPU_INORDER_RESOURCE_HH__ |