changeset 6d4e6c81c22b in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=6d4e6c81c22b
description:
        inorder: remove reqRemoveList
        we are going to be getting away from creating new resource requests for 
every
        instruction so no more need to keep track of a reqRemoveList and clean 
it up
        every tick

diffstat:

 src/cpu/inorder/cpu.cc                  |  25 +------------------------
 src/cpu/inorder/cpu.hh                  |  10 +---------
 src/cpu/inorder/pipeline_stage.cc       |  14 --------------
 src/cpu/inorder/resource.cc             |  11 -----------
 src/cpu/inorder/resources/cache_unit.cc |   3 ---
 src/cpu/inorder/resources/tlb_unit.cc   |   3 ---
 src/cpu/inorder/resources/use_def.cc    |   3 ---
 7 files changed, 2 insertions(+), 67 deletions(-)

diffs (160 lines):

diff -r d536bebb511d -r 6d4e6c81c22b src/cpu/inorder/cpu.cc
--- a/src/cpu/inorder/cpu.cc    Fri Feb 18 14:27:52 2011 -0500
+++ b/src/cpu/inorder/cpu.cc    Fri Feb 18 14:28:10 2011 -0500
@@ -636,8 +636,7 @@
     }
     activityRec.advance();
    
-    // Any squashed requests, events, or insts then remove them now
-    cleanUpRemovedReqs();
+    // Any squashed events, or insts then remove them now
     cleanUpRemovedEvents();
     cleanUpRemovedInsts();
 
@@ -1436,28 +1435,6 @@
 }
 
 void
-InOrderCPU::cleanUpRemovedReqs()
-{
-    while (!reqRemoveList.empty()) {
-        ResourceRequest *res_req = reqRemoveList.front();
-
-        DPRINTF(RefCount, "[tid:%i] [sn:%lli]: Removing Request "
-                "[stage_num:%i] [res:%s] [slot:%i] [completed:%i].\n",
-                res_req->inst->threadNumber,
-                res_req->inst->seqNum,
-                res_req->getStageNum(),
-                res_req->res->name(),
-                (res_req->isCompleted()) ?
-                res_req->getComplSlot() : res_req->getSlot(),
-                res_req->isCompleted());
-
-        reqRemoveList.pop();
-
-        delete res_req;
-    }
-}
-
-void
 InOrderCPU::cleanUpRemovedEvents()
 {
     while (!cpuEventRemoveList.empty()) {
diff -r d536bebb511d -r 6d4e6c81c22b src/cpu/inorder/cpu.hh
--- a/src/cpu/inorder/cpu.hh    Fri Feb 18 14:27:52 2011 -0500
+++ b/src/cpu/inorder/cpu.hh    Fri Feb 18 14:28:10 2011 -0500
@@ -593,10 +593,7 @@
     /** Cleans up all instructions on the instruction remove list. */
     void cleanUpRemovedInsts();
 
-    /** Cleans up all instructions on the request remove list. */
-    void cleanUpRemovedReqs();
-
-    /** Cleans up all instructions on the CPU event remove list. */
+    /** Cleans up all events on the CPU event remove list. */
     void cleanUpRemovedEvents();
 
     /** Debug function to print all instructions on the list. */
@@ -626,11 +623,6 @@
      */
     std::queue<ListIt> removeList;
 
-    /** List of all the resource requests that will be removed at the end 
-     *  of this cycle.
-     */
-    std::queue<ResourceRequest*> reqRemoveList;
-
     /** List of all the cpu event requests that will be removed at the end of
      *  the current cycle.
      */
diff -r d536bebb511d -r 6d4e6c81c22b src/cpu/inorder/pipeline_stage.cc
--- a/src/cpu/inorder/pipeline_stage.cc Fri Feb 18 14:27:52 2011 -0500
+++ b/src/cpu/inorder/pipeline_stage.cc Fri Feb 18 14:28:10 2011 -0500
@@ -990,20 +990,6 @@
                     cpu->activateNextReadyContext();
                 }
                 
-                // Mark request for deletion
-                // if it isnt currently being used by a resource
-                if (!req->hasSlot()) {                   
-                    DPRINTF(InOrderStage, "[sn:%i] Deleting Request, has no "
-                            "slot in resource.\n", inst->seqNum);
-                    
-                    cpu->reqRemoveList.push(req);
-                } else {
-                    DPRINTF(InOrderStage, "[sn:%i] Ignoring Request Deletion, "
-                            "in resource [slot:%i].\n", inst->seqNum,
-                            req->getSlot());
-                }
-                
-                
                 break;
             }
 
diff -r d536bebb511d -r 6d4e6c81c22b src/cpu/inorder/resource.cc
--- a/src/cpu/inorder/resource.cc       Fri Feb 18 14:27:52 2011 -0500
+++ b/src/cpu/inorder/resource.cc       Fri Feb 18 14:28:10 2011 -0500
@@ -322,9 +322,6 @@
             if (resourceEvent[req_slot_num].scheduled())
                 unscheduleEvent(req_slot_num);
 
-            // Mark request for later removal
-            cpu->reqRemoveList.push(req_ptr);
-
             // Mark slot for removal from resource
             slot_remove_list.push_back(req_ptr->getSlot());
         }
@@ -456,14 +453,6 @@
     // Used for debugging purposes
     if (completed) {
         complSlotNum = slotNum;
-    
-        // Would like to start a convention such as all requests deleted in
-        // resources/pipeline
-        // but a little more complex then it seems...
-        // For now, all COMPLETED requests deleted in resource..
-        //          all FAILED requests deleted in pipeline stage
-        //          *all SQUASHED requests deleted in resource
-        res->cpu->reqRemoveList.push(res->reqMap[slotNum]);
     }
     
     // Free Slot So Another Instruction Can Use This Resource
diff -r d536bebb511d -r 6d4e6c81c22b src/cpu/inorder/resources/cache_unit.cc
--- a/src/cpu/inorder/resources/cache_unit.cc   Fri Feb 18 14:27:52 2011 -0500
+++ b/src/cpu/inorder/resources/cache_unit.cc   Fri Feb 18 14:28:10 2011 -0500
@@ -1171,9 +1171,6 @@
             }
 
             if (!cache_req->tlbStall && !cache_req->isMemAccPending()) {
-                // Mark request for later removal
-                cpu->reqRemoveList.push(req_ptr);
-
                 // Mark slot for removal from resource
                 slot_remove_list.push_back(req_ptr->getSlot());
             } else {
diff -r d536bebb511d -r 6d4e6c81c22b src/cpu/inorder/resources/tlb_unit.cc
--- a/src/cpu/inorder/resources/tlb_unit.cc     Fri Feb 18 14:27:52 2011 -0500
+++ b/src/cpu/inorder/resources/tlb_unit.cc     Fri Feb 18 14:28:10 2011 -0500
@@ -257,9 +257,6 @@
              if (resourceEvent[req_slot_num].scheduled())
                  unscheduleEvent(req_slot_num);
 
-             // Mark request for later removal
-             cpu->reqRemoveList.push(req_ptr);
-
              // Mark slot for removal from resource
              slot_remove_list.push_back(req_ptr->getSlot());
          }
diff -r d536bebb511d -r 6d4e6c81c22b src/cpu/inorder/resources/use_def.cc
--- a/src/cpu/inorder/resources/use_def.cc      Fri Feb 18 14:27:52 2011 -0500
+++ b/src/cpu/inorder/resources/use_def.cc      Fri Feb 18 14:28:10 2011 -0500
@@ -445,9 +445,6 @@
                 unscheduleEvent(req_slot_num);
             }
             
-            // Mark request for later removal
-            cpu->reqRemoveList.push(req_ptr);
-
             // Mark slot for removal from resource
             slot_remove_list.push_back(req_ptr->getSlot());
         }
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to