Disclosed are a method and apparatus for protecting memory consistency in a multiprocessor computing
system, relating to
program code conversion such as dynamic
binary translation. The exemplary multiprocessor computing
system provides memory and multiple processors, and a set of controller / translator units TX1, TX2, TX3 arranged to convert respective application programs into program threads T1, T2, etc., which are executed by the processors. Each controller / translator unit sets a first mode where a single thread T1 executes on a single processor P1, orders a second mode for two or more threads T1, T2 that are forced to execute one at a time on a single processor P2 such as by setting affinity with that processor, and orders a third mode to selectively apply
active memory consistency protection in relation to accesses to explicit or implicit
shared memory while allowing the multiple threads T1, T2, T3, T4 to execute on the multiple processors.