Quoting Steve Reinhardt <[email protected]>:

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.


Oh, right, as far as fixing up page faults that doesn't make sense in FS. That will need to work slightly different so that the right thing happens in the right context, but you're right, we don't need to make a new thing there for FS. I think we're in agreement, we were just talking about different things.

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

Reply via email to