Sujet : Re: MMU using base and bound
De : mitchalsup (at) *nospam* aol.com (MitchAlsup1)
Groupes : comp.archDate : 10. Apr 2025, 16:48:26
Autres entêtes
Organisation : Rocksolid Light
Message-ID : <0f11555bb565a94c2a0bf47c243527c1@www.novabbs.org>
References : 1
User-Agent : Rocksolid Light
On Thu, 10 Apr 2025 7:02:41 +0000, Robert Finch wrote:
Working on the MMU component tonight.
>
Just realized that it is possible to have only a single hierarchical
page table in the system if base and bound addressing is applied before
translating with the page table. Or to reduce the number of page tables
using the base/bound addressing.
>
Building base/bound registers into the MMU, pondering having multiple
sets of registers to reduce the amount of register swapping. A single
BRAM should be enough for 32 sets of 16 registers. Could store an index
for selecting the set in the process control block. Defaulting set zero
for flat addressing.
Base and Bounds is not compatible with the feature/functionality we see
in modern applications; things such as::
a) mmap()
b) dynamically linked libraries
c) Address Space Layout Randomization
d) JITTed binaries
At least until there are enough base and bounds registers, and when
there
are enough of these, then the B&B MMU smells just like a SW programmable
TLB--and at this point--either go all the way or don't start down that
path.
Also note:: at SATA data transfer rates, activating a 20 GB application
takes multiple seconds on the disk drive itself, something that only
suffers a dozen milliseconds with typical paging.