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