Re: Bits of this are really cool
Indeed, this is (roughly) how the 360 did memory protection before the days of virtual memory - there were 15 protection keys (plus one for the system) which allowed the memory to be divided into a number of fixed (OS/MFT) or variable (OS/MVT) partitions, each of which could contain a separate program (job step). The hardware compared the protection key of the memory being accessed with 4 bits of the Program Status Word that the OS set to the correct key for the program currently executing.
Unfortunately, 16 isn't a big number...
I'm also not sufficiently familiar with the SPARC architecture to know if the caches use physical or virtual addresses - if they're physical addresses it could be quite complicated to ensure that two processes with pointers to different areas of overlapping shared memory were both allocated the same "colour".