summaryrefslogtreecommitdiff
path: root/src/cpu/inorder/cpu.hh
diff options
context:
space:
mode:
authorKorey Sewell <ksewell@umich.edu>2009-05-12 15:01:13 -0400
committerKorey Sewell <ksewell@umich.edu>2009-05-12 15:01:13 -0400
commit1c8dfd92543aba5f49e464b17e7e8143fc01a58c (patch)
tree3c5b9059b07e8d0bccdf826249330bfcb8c5c1cc /src/cpu/inorder/cpu.hh
parent63db33c4b1cd7a071c2a2fe47bda21a73618d054 (diff)
downloadgem5-1c8dfd92543aba5f49e464b17e7e8143fc01a58c.tar.xz
inorder-alpha-port: initial inorder support of ALPHA
Edit AlphaISA to support the inorder model. Mostly alternate constructor functions and also a few skeleton multithreaded support functions * * * Remove namespace from header file. Causes compiler issues that are hard to find * * * Separate the TLB from the CPU and allow it to live in the TLBUnit resource. Give CPU accessor functions for access and also bind at construction time * * * Expose memory access size and flags through instruction object (temporarily memAccSize and memFlags to get TLB stuff working.)
Diffstat (limited to 'src/cpu/inorder/cpu.hh')
-rw-r--r--src/cpu/inorder/cpu.hh14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/cpu/inorder/cpu.hh b/src/cpu/inorder/cpu.hh
index 744dd5cf9..8b2442ac0 100644
--- a/src/cpu/inorder/cpu.hh
+++ b/src/cpu/inorder/cpu.hh
@@ -103,9 +103,6 @@ class InOrderCPU : public BaseCPU
Params *cpu_params;
- TheISA::TLB * itb;
- TheISA::TLB * dtb;
-
public:
enum Status {
Running,
@@ -236,11 +233,17 @@ class InOrderCPU : public BaseCPU
*/
unsigned fetchPortIdx;
+ /** Identifies the resource id that identifies a ITB */
+ unsigned itbIdx;
+
/** Identifies the resource id that identifies a data
* access unit.
*/
unsigned dataPortIdx;
+ /** Identifies the resource id that identifies a DTB */
+ unsigned dtbIdx;
+
/** The Pipeline Stages for the CPU */
PipelineStage *pipelineStage[ThePipeline::NumStages];
@@ -262,6 +265,9 @@ class InOrderCPU : public BaseCPU
/** Communication structure that sits in between pipeline stages */
StageQueue *stageQueue[ThePipeline::NumStages-1];
+ TheISA::ITB *getITBPtr();
+ TheISA::DTB *getDTBPtr();
+
public:
/** Registers statistics. */
@@ -308,6 +314,8 @@ class InOrderCPU : public BaseCPU
void deallocateThread(unsigned tid);
void deactivateThread(unsigned tid);
+ PipelineStage* getPipeStage(int stage_num);
+
int
contextId()
{