O3: Enhance data address translation by supporting hardware page table walkers.
authorGiacomo Gabrielli <Giacomo.Gabrielli@arm.com>
Sat, 12 Feb 2011 00:29:35 +0000 (18:29 -0600)
committerGiacomo Gabrielli <Giacomo.Gabrielli@arm.com>
Sat, 12 Feb 2011 00:29:35 +0000 (18:29 -0600)
commite2507407b17188dca802082434cfe0230d9bfa61
tree6913f9325a7c2fc9c6e99119c61f014e10707842
parent453dbc772dba92dbceb44eaeef3c617d17d63e84
O3: Enhance data address translation by supporting hardware page table walkers.

Some ISAs (like ARM) relies on hardware page table walkers.  For those ISAs,
when a TLB miss occurs, initiateTranslation() can return with NoFault but with
the translation unfinished.

Instructions experiencing a delayed translation due to a hardware page table
walk are deferred until the translation completes and kept into the IQ.  In
order to keep track of them, the IQ has been augmented with a queue of the
outstanding delayed memory instructions.  When their translation completes,
instructions are re-executed (only their initiateAccess() was already
executed; their DTB translation is now skipped).  The IEW stage has been
modified to support such a 2-pass execution.
src/arch/arm/tlb.cc
src/cpu/base_dyn_inst.hh
src/cpu/base_dyn_inst_impl.hh
src/cpu/o3/fetch.hh
src/cpu/o3/iew_impl.hh
src/cpu/o3/inst_queue.hh
src/cpu/o3/inst_queue_impl.hh
src/cpu/o3/lsq_unit_impl.hh
src/cpu/simple/timing.hh
src/cpu/translation.hh
src/sim/tlb.hh