How so? You can have the state for both in the one object, can't you? Gabe
Ali Saidi wrote: > Having two pointers in the CPU for the DTB and ITB is still a > necessity. If you're trying to model separate structures you're going > to need two of them. > > Ali > > > On Mar 6, 2009, at 1:13 AM, Gabe Black wrote: > > >> I think ITBs and DTBs are usually very similar differ in a few key >> ways >> like the nx (no execute) bit in x86 for example. In x86 the DTB and >> ITB >> classes are basically just wrappers around a common TLB with one >> translate function, and the DTB's and ITB's version just call that >> with >> an extra parameter or two. This should generally work across other >> ISAs >> as far as I know. If the translate functions really are radically >> different, there isn't much overhead in having them both in there and >> just picking one or the other based on that parameter. I think even >> the >> generic TLB that's for SE implementations that don't have an ISA >> specific TLB yet just looks things up in the page table no matter what >> your translating. >> >> As far as whether to get rid of the separation between the ITB and >> DTB I >> think it's a good idea. I can't think of any benefit to having the >> separation other than that it's already there, and while it hasn't >> caused any other problems it prevents Korey from having a UTB >> implementation. We'd likely want to give it parameters which let you >> independently configure it's ITB and DTB (or UTB) personalities, but >> that should be pretty easy. >> >> This should (knock on wood) be pretty easy to implement and I'd be >> happy >> to help. >> >> Gabe >> >> nathan binkert wrote: >> >>>> How different are ITBs and DTBs anyway? It seems like for a UTB >>>> you'd >>>> want a single object that handles both ifetch and data translations >>>> using a common translate() method, not something that inherits from >>>> two different classes. E.g., why not just derive it from TLB? >>>> >>>> >>> The two translation functions are different because every ISA does >>> some different things for instructions vs data. Think about >>> something >>> like the executable bit. >>> >>> >>> >>>> Philosophically, I agree... let's avoid virtual inheritance if at >>>> all >>>> possible. It's just not a good idea. >>>> >>>> >>> Ok, so the question is, which of the other alternatives should we do? >>> Gabe (mister TLB expert)? Korey (since this is mips code)? >>> >>> Nate >>> _______________________________________________ >>> m5-dev mailing list >>> m5-dev@m5sim.org >>> http://m5sim.org/mailman/listinfo/m5-dev >>> >>> >> _______________________________________________ >> m5-dev mailing list >> m5-dev@m5sim.org >> http://m5sim.org/mailman/listinfo/m5-dev >> >> > > _______________________________________________ > m5-dev mailing list > m5-dev@m5sim.org > http://m5sim.org/mailman/listinfo/m5-dev > _______________________________________________ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev