Patent ID: 8650442

Claim:
A method in a data processing system including a simultaneous multi-threaded processor for executing a plurality of threads simultaneously, said method comprising the steps of: simultaneously executing said plurality of threads, wherein said plurality of threads access a first portion of a real memory space included within said system during execution; permitting apparently exclusive use of said first portion by a first one of said plurality of threads and simultaneously permitting apparently exclusive use of said first portion by a second one of said plurality of threads, wherein said first and second ones of said plurality of threads simultaneously appear to have exclusive use of said first portion and may simultaneously access said first portion; inserting a bit into each address field for each instruction addressing a location in a shared portion of said real memory space that is to be executed by said processor; storing a unique thread identifier in said bit for the each instruction, said unique thread identifier identifying a thread that executed said each instruction; executing an instruction including a unique thread identifier and data, said instruction addressing a location in a shared portion of said real memory space; determining whether an entry has already been stored in said location; in response to a determination that no entry has already been stored in said location, storing said unique thread identifier and said data in said location; in response to a determination that an entry has already been stored in said location, finding a unique thread identifier already stored in said location; and determining whether said unique thread identifier already stored in said location matches said unique thread identifier included in said instruction and only executing said instruction if said unique thread identifier already stored in said location matches said unique thread identifier included in said instruction.