On Fri, Sep 30, 2011 at 9:12 PM, Gabriel Michael Black <
[email protected]> wrote:

>
> That's why a Kernel and a Process are both workloads... They *are*
> basically the same thing, just in different contexts, which is what I'm
> getting at.


Yea, I'm not disagreeing with that.


> And we do need a common abstraction for address spaces, because we have a
> common wrapper around them, namely ports which do translation. Why they do
> translation, how they're translating, what being read or written, none of
> that matters. They take an address in and turn it into some other address.
> Then we have one type of port that does translation, it hooks up to a common
> interface, and that's that. Then we don't have to have vports or tports and
> whatever other variation we have now. When Processes and Kernels are both
> instances of a Workload, you don't have to do a cast into the subclass to
> get the object that needs to be handled in a special way, all to do the same
> job. It's just something like
>
> Addr phys = workload->addressSpace->**translate(virt);


I agree, tport and vport definitely need to be merged.  I was thinking more
of TLB miss handling, where PageTable is involved in SE mode but (other than
implementing the HW page table walker correctly) the simulator isn't really
involved in FS mode, so it seemed like overkill to unify the concepts.
 Using a unified AddressSpace base class as a way to unify tport and vport
does seem reasonable.

Steve
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to