That sounds good, but I'm not sure what sort of special encoding to use. The accesses need to be the real size because the last bytes could be why it faults. I considered whether piggybacking on prefetches would work, but the semantics are a little different there too. Do you have any other suggestions? Maybe there could just be a flag like "NO_ACCESS" that got tacked onto the read or write.
Gabe Steve Reinhardt wrote: > I'd argue that these test accesses should be encoded as 0-byte reads > or something like that rather than direct translation requests anyway, > since we really want the "fault or noop" semantics anyway, and this > would avoid widening the ExecContext interface. > > > On 2/19/09, Gabriel Michael Black <[email protected]> wrote: > >> Yes and no. Those functions are necessary for the instructions to be >> able to try accesses without actually touching memory, but I don't >> think there's any other concrete need for them. >> >> Gabe >> >> Quoting Steve Reinhardt <[email protected]>: >> >> >>> So does this imply that we should just ditch those translate*Req calls and >>> have each CPU directly call translate() on its itb or dtb? It seems like >>> that's all the working instances of the CPU models do. There are a few >>> cases where the translate*Req calls still call the process ptable, but >>> that's an anomaly and should be eliminated now that we use TLBs in SE mode >>> too. >>> >>> (Basically I think that's where these calls came from, is they provided a >>> uniform interface to translation across FS/SE back when SE didn't use a >>> TLB.) >>> >>> Steve >>> >>> >> >> _______________________________________________ >> m5-dev mailing list >> [email protected] >> http://m5sim.org/mailman/listinfo/m5-dev >> >> > > _______________________________________________ m5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/m5-dev
