inorder: update max. resource bandwidths
authorKorey Sewell <ksewell@umich.edu>
Fri, 18 Feb 2011 19:29:31 +0000 (14:29 -0500)
committerKorey Sewell <ksewell@umich.edu>
Fri, 18 Feb 2011 19:29:31 +0000 (14:29 -0500)
each resource has a certain # of requests it can take per cycle. update the #s here
to be more realistic based off of the pipeline width and if the resource needs to
be accessed on multiple cycles

src/cpu/inorder/resource_pool.cc

index e1914623a28706b613989f41235f71e1e564f744..4e2f930ab5901833bad4cd9100c527938e4cec1b 100644 (file)
@@ -55,7 +55,7 @@ ResourcePool::ResourcePool(InOrderCPU *_cpu, ThePipeline::Params *params)
 
     memObjects.push_back(ICache);
     resources.push_back(new FetchUnit("icache_port", ICache,
-                                      stage_width * MaxThreads, 0, _cpu,
+                                      stage_width * 2 + MaxThreads, 0, _cpu,
                                       params));
 
     resources.push_back(new DecodeUnit("Decode-Unit", Decode, 
@@ -68,7 +68,7 @@ ResourcePool::ResourcePool(InOrderCPU *_cpu, ThePipeline::Params *params)
                                        0, _cpu, params));
 
     resources.push_back(new UseDefUnit("RegFile-Manager", RegManager, 
-                                       stage_width * MaxThreads, 0, _cpu,
+                                       stage_width * 3, 0, _cpu,
                                        params));
 
     resources.push_back(new AGENUnit("AGEN-Unit", AGEN, 
@@ -77,16 +77,16 @@ ResourcePool::ResourcePool(InOrderCPU *_cpu, ThePipeline::Params *params)
     resources.push_back(new ExecutionUnit("Execution-Unit", ExecUnit, 
                                           stage_width, 0, _cpu, params));
 
-    resources.push_back(new MultDivUnit("Mult-Div-Unit", MDU, 5, 0, _cpu, 
-                                        params));
+    resources.push_back(new MultDivUnit("Mult-Div-Unit", MDU,
+                                        stage_width * 2, 0, _cpu, params));
 
     memObjects.push_back(DCache);
     resources.push_back(new CacheUnit("dcache_port", DCache, 
-                                      stage_width * MaxThreads, 0, _cpu,
+                                      stage_width * 2 + MaxThreads, 0, _cpu,
                                       params));
 
     resources.push_back(new GraduationUnit("Graduation-Unit", Grad, 
-                                           stage_width * MaxThreads, 0, _cpu,
+                                           stage_width, 0, _cpu,
                                            params));
 
     resources.push_back(new InstBuffer("Fetch-Buffer-T1", FetchBuff2, 4,