×

Computer architecture and method of operation for multi-computer distributed processing with replicated memory

  • US 7,860,829 B2
  • Filed: 03/02/2009
  • Issued: 12/28/2010
  • Est. Priority Date: 04/23/2004
  • Status: Active Grant
First Claim
Patent Images

1. A method of operating, on a multiple computer system comprising a plurality of computers, a stored application program having code written to operate only on a single computer system comprising a single computer having a single CPU or a single computer having symmetric multiple processors, said code including a plurality of threads all intended to execute in cooperation with a single memory, wherein:

  • all of said plurality of computers are interconnected via a communications link;

    each one of said plurality of computers is independent of the other ones of said plurality of computers, has a single independent local memory which is not shared with any other computer of said plurality of computers and accessible only by the corresponding portion of said application program executing on that single computer, has a substantially similar copy of said application program code stored therein, and has at least one thread;

    each said single independent local memory has memory locations only addressable and accessible by the thread or threads of the corresponding computer executing the corresponding copy of said application program code, and each said independent local memory has stored therein all application memory values arising from the execution of all said threads of all said plurality of computers;

    said method of operating comprising the steps of;

    (i) allocating said plurality of threads of said stored application program code amongst said multiple computers so that at least a portion of the application including at least one thread of said application program code is allocated to a corresponding one of said multiple computers for execution thereon by one or more threads of that one of said multiple computers;

    (ii) substantially simultaneously executing said application program code thread or threads by those ones of said multiple computers having an application program code thread or threads allocated thereto;

    (iii) storing in said single independent local memory of each said computer a replica of each and every application memory value addressable by each and every said thread of each and every one of said plurality of computers; and

    (iv) communicating via said communications link each new application memory value which has overwritten a previous corresponding value as a consequence of execution of said application program code on any one of said single computers, to the independent local memory of all other ones of said computers, whereby the values of said replica application memory values of all said computers remain, subject to an updating transmission delay, substantially identical;

    (v) modifying each said copy of said application program code prior to storing same in each said single independent local memory;

    wherein said modifying step (v) further comprises;

    (a) detecting instructions which share memory records utilizing one of said single computers;

    (b) listing all such shared memory records and providing a naming tag for each listed memory record;

    (c) detecting those instructions which write to, or manipulate the contents of, any of said listed memory records; and

    (d) generating an updating propagation routine corresponding to each said detected write or manipulate instruction, said updating propagation routine forwarding the re-written or manipulated contents and name tag of each said re-written or manipulated listed memory record to all of the others of said single computers.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×