[comp.arch] address masking gimmick

andrew@frip.wv.tek.com (Andrew Klossner) (04/12/89)

[]

	"Time yet again for expression of one of my favorite
	architectural "gimmicks": provide a mask that is implicitly
	ANDed with any {instruction,data} address before use -- this
	way you could place tag bits in the low bits, in the high bits,
	or in any bit you wanted (and not have to rely on features like
	"The 68000 only implements 24 address bits", etc.)."

We used this approach in implementing Smalltalk on a 68020-based
workstation.  Everything was fine until a system call in which the
process passed a tagged address to the kernel.  We looked at the work
involved in teaching the kernel to apply the mask to every user address
that it ever sees, and threw up our hands.  The compromise was to mask
the address on a page fault, but to require the application explicitly
to mask addresses passed through syscalls.

  -=- Andrew Klossner   (uunet!tektronix!orca!frip!andrew)      [UUCP]
                        (andrew%frip.wv.tek.com@relay.cs.net)   [ARPA]

shs@uts.amdahl.com (Steve Schoettler) (04/13/89)

In article <11271@tekecs.GWD.TEK.COM> andrew@frip.wv.tek.com (Andrew Klossner) writes:
>[]
>
>	"Time yet again for expression of one of my favorite
>	architectural "gimmicks": provide a mask that is implicitly
>	ANDed with any {instruction,data} address before use

In the early masks of the Rockwell 6502, unimplemented opcodes were not
trapped, and often did some crazy things.

One of the "reserved" opcodes performed  X & PC -> SP.

Maybe they were before their time :-).

Steve

-- 

        Steve Schoettler
        shs@uts.amdahl.com
        {sun,decwrl,pyramid,ames,uunet}!amdahl!shs
        Amdahl Corp., M/S 213, 1250 E. Arques Ave, Sunnyvale, CA 94088