Re: Which Segment Keeper Bill Frantz (frantz@netcom.com)
Thu, 2 Apr 1998 23:04:25 -0800

At 8:26 AM -0800 4/2/98, Jonathan S. Shapiro wrote:
>First, the issue is not a question over which keeper gets involved.
>The issue is whether an undersized red segment in a tree is ever
>entered by the address translation logic. My hypothesis was that it
>is not.

A segment defines a certain range of addresses as determined by its lss/ssc. That range of addresses can be smaller than the range defined by a slot which holds it's key, or it can be bigger. If it is smaller, then the extra addresses are undefined, and outside the segment. i.e. the segment is never consulted in resolving the address. If it is larger, then the excess addresses are inaccessible in that context. (However, see window keys for a way to access them.)

At the implementation level, the red segment must be accessed to determine what address range it defines. However, if the address is out of its range, it's keeper should not be invoked.

For example:

Consider a segment where each slot defines a megabyte. Assume that slot 2 of that node holds a key to a red segment where each slot defines a 4K range. The total range for that red segment is 64K. If the address 0x215000 is resolved, it will look in slot 2 of the 16 megabyte node and see the red segment. It will see that the red segment only defines addresses 0-0xffff. Since relative address 0x15000 is outside that range, it will stop considering the red segment. If the 16 megabyte node defines a keeper, then that is the keeper that will be invoked (assuming no no-call bits).


Bill Frantz       | If hate must be my prison  | Periwinkle -- Consulting
(408)356-8506     | lock, then love must be    | 16345 Englewood Ave.
frantz@netcom.com | the key.     - Phil Ochs   | Los Gatos, CA 95032, USA