Patent ID: 6813522
Filing Date: 2004-11-02
Classification: G06F

Abstract:
In a multiprocessor system including at least a first processor, a second processor, and a memory linked to each of the processors for read and write access to the memory by each of the processors, each of the processors having an address translator for translating logical addresses specified by program instructions to corresponding physical addresses for addressing the memory, the address translator of the first processor accessing a first translation table, and the address translator of the second processor accessing a second translation table, a method comprising:(a) allocating at least three non-overlapping regions in physical address space of the memory including a program region containing a program, a first data region for private read-write access by the first processor, and a second data region for private read-write access by the second processor; (b) initializing a first copy of program data in the first data region of the memory, and initializing a second copy of the program data in the second data region of the memory; (c) setting entries in the first translation table and in the second translation table so that each of the processors translates logical instruction addresses of program instructions of the program in the memory to physical addresses of the program instructions in the program region of the memory so that the processors share read-only access to the program in the memory during concurrent invocations of the program in the memory, so that the first processor translates logical data addresses specified by read-write access instructions in the program to physical addresses in the first data region of the memory, and so that the second processor translates the logical data addresses specified by the read-write access instructions in the program to physical addresses in the second data region of the memory; and (d) each of the processors running concurrently a separate invocation of the program in the program region of the memory, which includes copying the first translation table to produce a copy of the first translation table, and exchanging contents of at least one pair of entries in the copy of the first translation table to produce the second translation table.