Re: [m5-dev] changeset in m5: InOrder: Import new inorder CPU model from MIPS.

2009-02-16 Thread nathan binkert
If #2 didnt exist, then that would make more sense to me. That would make an instruction HAVE to use the threadContext interface to access any CPU facilities. That would also remove the CPU pointer from the instruction object as well. If that were the solution, I would be OK with it, because

Re: [m5-dev] changeset in m5: InOrder: Import new inorder CPU model from MIPS.

2009-02-16 Thread Korey Sewell
I'm not sure I all the way understand why the register file shouldnt be defined in the ISA... I could see maybe there being one standard integer and floating point register file thats totally generic however, the system/miscellaneous registers are pretty ISA dependent so those register probably

Re: [m5-dev] changeset in m5: InOrder: Import new inorder CPU model from MIPS.

2009-02-16 Thread nathan binkert
I'm not sure I all the way understand why the register file shouldnt be defined in the ISA... I could see maybe there being one standard integer and floating point register file thats totally generic however, the system/miscellaneous registers are pretty ISA dependent so those register

Re: [m5-dev] changeset in m5: InOrder: Import new inorder CPU model from MIPS.

2009-02-13 Thread Korey Sewell
Gabe, I plan to work on developing WIKI documentation for the in-order model on m5sim.org next week. The short story is that the in-order model functions on three main concepts: PipelineStage, Resource, and an Instruction Schedule. - The Pipeline stage is a generic version of the pipeline stages

Re: [m5-dev] changeset in m5: InOrder: Import new inorder CPU model from MIPS.

2009-02-13 Thread Korey Sewell
Instead of this, couldn't you do the cross thread thing by looking up the appropriate thread context in the cpu object and then calling the register access function for that thread context? This would work more in line with the other CPU models. I've been looking into this and it seems that

Re: [m5-dev] changeset in m5: InOrder: Import new inorder CPU model from MIPS.

2009-02-13 Thread Steve Reinhardt
2009/2/13 Korey Sewell ksew...@umich.edu Instead of this, couldn't you do the cross thread thing by looking up the appropriate thread context in the cpu object and then calling the register access function for that thread context? This would work more in line with the other CPU models.

Re: [m5-dev] changeset in m5: InOrder: Import new inorder CPU model from MIPS.

2009-02-13 Thread Korey Sewell
I haven't looked at this particular issue closely, but aren't you answering your own question? The thing you gain by accessing the CPU via the ThreadContext interface is that all of the CPU models present a consistent and compatible interface to the instruction objects... Hey Steve, I agree

Re: [m5-dev] changeset in m5: InOrder: Import new inorder CPU model from MIPS.

2009-02-13 Thread nathan binkert
My toy example of this is say I want to read a integer register from an instruction. I could either go: (1) inst-threadContext-readIntReg() or (2) inst-cpu-readIntReg() In the threadContext object, there is just some redundant call to cpu-readIntReg() anyway. So you end up calling (1) and

Re: [m5-dev] changeset in m5: InOrder: Import new inorder CPU model from MIPS.

2009-02-13 Thread Korey Sewell
If #2 didnt exist, then that would make more sense to me. That would make an instruction HAVE to use the threadContext interface to access any CPU facilities. That would also remove the CPU pointer from the instruction object as well. If that were the solution, I would be OK with it, because then

[m5-dev] changeset in m5: InOrder: Import new inorder CPU model from MIPS.

2009-02-10 Thread Korey Sewell
changeset 09ab46bfa914 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=09ab46bfa914 description: InOrder: Import new inorder CPU model from MIPS. This model currently only works in MIPS_SE mode, so it will take some effort to clean it up and make it

Re: [m5-dev] changeset in m5: InOrder: Import new inorder CPU model from MIPS.

2009-02-10 Thread nathan binkert
changeset 09ab46bfa914 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=09ab46bfa914 description: InOrder: Import new inorder CPU model from MIPS. This model currently only works in MIPS_SE mode, so it will take some effort to clean it up and make it

Re: [m5-dev] changeset in m5: InOrder: Import new inorder CPU model from MIPS.

2009-02-10 Thread Korey Sewell
Thanks for the helping in pushing this out Nate. There is a short and long version of the thread support in MIPS and why it varies. I'll give the short version here: MIPS was implemented ot use the MT ISA extension which requires the ability to read/write registers from other threads. I designed

Re: [m5-dev] changeset in m5: InOrder: Import new inorder CPU model from MIPS.

2009-02-10 Thread nathan binkert
I'll give the short version here: MIPS was implemented ot use the MT ISA extension which requires the ability to read/write registers from other threads. I designed the register file to be on size fits all. It can be instantiated multiple times as a per-thread register file (Simple-CPU) OR