[comp.arch] hardware mask for tagged addresses

andrew@frip.gwd.tek.com (Andrew Klossner) (12/29/87)

[]

	"I have been thinking that the best thing to do is to
	implicitly AND mask all addresses with a loadable ADDRESS_MASK
	value."

We do this in the Tektronix bit-mapped workstations (440[45], 431[567])
in support of Smalltalk with tagged addresses.  Things work out fine in
the user process.  The bad news comes when you get into the kernel.
Our MMU (a custom design, Motorola didn't put out a good chip in time)
was of the KISS variety and didn't include a user-mode probe facility,
so user address validation and translation is done in software.  When
it came time to shoehorn a new Unix between the hardware and Smalltalk,
we were faced with hunting down all the places where the kernel "knows"
that a user address contains no tag bits.

We ended up teaching the kernel to ignore tag bits in the page fault
handler, and teaching Smalltalk to clean up all addresses that it
passes through system calls.

  -=- Andrew Klossner   (decvax!tektronix!tekecs!andrew)       [UUCP]
                        (andrew%tekecs.tek.com@relay.cs.net)   [ARPA]