Computer Architecture And Method Of Operation for Multi-Computer Distributed Processing Having Redundant Array Of Independent Systems With Replicated Memory And Code Striping
First Claim
1. In a multiple computer system including a plurality of computing machines, each computing machine having a processor and each processor having an associated local memory that is directly coupled to only one particular processor from among the plurality of processors, a method for stripping computer program code across the plurality of computing machines comprising:
- (1) replicating at least a portion of stored memory data contents from each local memory into the local memory of each of the plurality of computing machines;
(2) updating a replicated memory content value in each other of the plurality of local memory every time a replicated local memory location is written to in any one or the local memory of the plurality of computing machines so that replicated memory locations remain substantially consistent between all of the computing machines, the updating including transmitting the updated content value from the computing machine that performed the content value update to other ones of the plurality of computing machines and receiving of the updated content value by the other ones of the plurality of computing machines;
(3) satisfying all computing machine memory access requirements from the processor, including read access and write access, substantially exclusively by access to the associated local memory for memory content that is part of the replicated memory, and preventing access to memory that is resident in a different one of the plurality of computing machines; and
(4) replicating at least a portion of an executable code of an application program, the executable code of the application program being different from the replicated memory data contents that may result from the execution of the application program code, on each of the plurality of computing machines, where replication may allow for variations of the executable code so that different computing machine operational requirements may be realized, and permits but does not require an exact copy of the executable code on each of the plurality of computing machines.
2 Assignments
0 Petitions
Accused Products
Abstract
Computers and other computing machines and information appliances having a modified computer architecture and program structure which enables the operation of an application program concurrently or simultaneously on a plurality of computers interconnected via a communications link or network using a special distributed runtime (DRT), and that provides for a redundant array of independent computing systems that include computer code distribution using code-striping onto the plurality of the computers or computing machines. A redundant array of independent computing systems operating in concert and code-striping features.
132 Citations
17 Claims
-
1. In a multiple computer system including a plurality of computing machines, each computing machine having a processor and each processor having an associated local memory that is directly coupled to only one particular processor from among the plurality of processors, a method for stripping computer program code across the plurality of computing machines comprising:
-
(1) replicating at least a portion of stored memory data contents from each local memory into the local memory of each of the plurality of computing machines; (2) updating a replicated memory content value in each other of the plurality of local memory every time a replicated local memory location is written to in any one or the local memory of the plurality of computing machines so that replicated memory locations remain substantially consistent between all of the computing machines, the updating including transmitting the updated content value from the computing machine that performed the content value update to other ones of the plurality of computing machines and receiving of the updated content value by the other ones of the plurality of computing machines; (3) satisfying all computing machine memory access requirements from the processor, including read access and write access, substantially exclusively by access to the associated local memory for memory content that is part of the replicated memory, and preventing access to memory that is resident in a different one of the plurality of computing machines; and (4) replicating at least a portion of an executable code of an application program, the executable code of the application program being different from the replicated memory data contents that may result from the execution of the application program code, on each of the plurality of computing machines, where replication may allow for variations of the executable code so that different computing machine operational requirements may be realized, and permits but does not require an exact copy of the executable code on each of the plurality of computing machines. - View Dependent Claims (2, 3, 4, 5, 7)
-
-
6. A method as in claim 6, wherein the contention controller comprises at least one of:
-
(i) a contention detector, (ii) a contention detector and contention resolver, (iii) a contention detector with messenger and a modified message format, (iv) a contention detector with data consolidation, and (v) a contention resolver with echo cancellation, (vi) and any combination of two or more of these.
-
-
8. A method for striping executable computer application program code between a plurality of computing machines interconnected via a network, each computing machine having an independent local memory directly coupled to only one particular associated a processor within a particular computing machine, the method comprising:
-
satisfying all data read and write requests/operations by the processor within a particular computing machine to local memory within that particular computing machine independent of any other computing machine or the local memory within the other computing machine; creating relationships between memory locations to define related memory locations and values stored in the memory locations in the plurality of independent local memories and values of the independent memories of the plurality of machines, maintaining each related memory location of each independent memory so that each related memory location has the same value or content or an equivalent value or content; identifying a modification or change by a first computing machine of the plurality of computing machines to a particular memory location of the first computing machine own associated independent local memory which location is related to at least one other memory location of a different independent memory of a different computing machine of the plurality f computing machines; and updating the related memory locations in the other independent memories with the same or equivalent modified or changed value generated by the first machine. - View Dependent Claims (9, 10)
-
-
11. A Redundant Array of Independent computer Systems (RAIS) comprising:
-
a plurality of computing machines interconnected via a communications network, each computing machine having a local independent memory coupled with a processor within the computing machine, and each independent memory comprising;
(i) a first plurality of memory locations storing values or content which correspond and relate to and are substantially similar with, a plurality of memory locations storing first values or content on at least one other independent memory of a different one of the plurality of computing machines;distributed control means for satisfying all read and write requests by each machine exclusively by the local independent memory of each machine; detection means for detecting written-to first memory locations; updating means for updating corresponding and related first memory locations and first values or content in the independent memories of the machines of the plurality of computing machines when the detection means detects a first memory location as having been written-to, so that corresponding first memory locations in all or the independent memories of the plurality of computing machines are updated to remain the same or substantially similar or equivalent in value or content. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A multiple computer system having at least one application program each written to operate on only a single computer but running simultaneously on a plurality of computers interconnected by a communications network, wherein different portions of said application program(s) execute substantially simultaneously on different ones of said computers, wherein each computer has an independent local memory accessible only by the corresponding portion of said application program(s) and wherein for each said portion a like plurality of substantially identical objects are created, each in the corresponding computer.
-
17. A plurality of computers interconnected via a communications link and each having an independent local memory and substantially simultaneously operating a different portion at least one application program each written to operate on only a single computer, each local memory being accessible only by the corresponding portion of said application program;
-
each said computer in operating said at least one application program reads and writes only to local memory physically located in each said computer, the contents of the local memory utilized by each said computer is fundamentally similar but not, at each instant, identical, and every one of said computers has distribution update means to distribute to all other said computers the content of any memory location updated by said one computer; and the local memory capacity allocated to the or each said application program is substantially identical and the total memory capacity available to the or each said application program is said allocated memory capacity.
-
Specification