Patent ID: 7032099

Claim:
A parallel processor comprising: a plurality of processor elements; a first processor element of said plurality of processor elements for executing a first user program of a plurality of user programs, said first processor element executing a wait instruction, said wait instruction suspending processing of said first user program; a second processor element of said plurality of processor elements for executing at least a second user program of said plurality of user programs, said second processor element executing a wait release instruction, said wait release instruction commanding said first processor element to resume said processing of said first user program, said second processor element continuing processing of said second user program after executing said wait release instruction; a plurality of local memory, each local memory being uniquely associated with a corresponding processor element of said plurality of processor elements; and a common memory connected to a common bus, said common memory storing said plurality of user programs, a corresponding user program of said plurality of user programs being provided to said corresponding processor element via said common bus, wherein: said second processor element executes a synchronization wait instruction, said synchronization wait instruction suspending processing of said second user program; said first processor element executes a program end instruction, said program end instruction resuming said processing of said second user program; said wait instruction resumes processing of said second user program after said second processor element executes said synchronization wait instruction; said first processor element notifies said second processor element that said first processor element is executing said wait instruction; and said second processor element executes a program execution instruction, said program execution instruction commanding said corresponding processor element to receive said corresponding user program from said common memory and to execute said corresponding user program.