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