USRE26171E - Multiprocessing computer system - Google Patents

Multiprocessing computer system Download PDF

Info

Publication number
USRE26171E
USRE26171E US56036666A USRE26171E US RE26171 E USRE26171 E US RE26171E US 56036666 A US56036666 A US 56036666A US RE26171 E USRE26171 E US RE26171E
Authority
US
United States
Prior art keywords
instruction
memory
field
program
fields
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US176940A external-priority patent/US3229260A/en
Application filed filed Critical
Priority to US56036666 priority Critical patent/USRE26171E/en
Application granted granted Critical
Publication of USRE26171E publication Critical patent/USRE26171E/en
Expired legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements

Definitions

  • This invention relates to digital computers and more particularly to digital computers which are capable of simultaneously operating upon several interdependent or independent instruction sequences.
  • Computing systems known in the prior art have been capable of simultaneously operating upon several interdependent or independent instruction sequences, that is, multiprocessing. Such systems require a supervisory program which controls the progress of the various instruction sequences through the system.
  • the complexity of the supervisory program depends upon the degree to which the execution of the various instruction sequences is integrated in the system. If, with the systems of the prior art. an attempt is made to have a high degree of simultaneity relative to the execution of several instruction sequences, the supervisory program becomes complex and a large amount of the systems time is consumed by the supervisory program in order to perform the necessary transfer and control functions (i.e., the necessary housekeeping operations). Some of the transfer and control operations can be taken care of by a compiler program rather than by a supervisory program; however, if this is done, the system will lack flexibility and furthermore, the compiler program must be made complex thus occupying more of the systems time.
  • the present invention is directed at a computing system which can simultaneously execute a plurality of interdependent or independent instruction sequences, and wherein the progress of the various instruction sequences being executed by the system at any one time is not established by a compiler program or controlled by a supervisory program.
  • the system of the present invention includes a plurality of autonomous computing elements and an associate memory.
  • Each autonomous computing element is essentially a computer which after it has been given an instruction is capable of independently operating upon the instruction to generate a specified result.
  • Each autonomous computing element may be a simple computing element such as an adder which is merely capable of requesting an instruction and after it has been given an instruction of obtaining an augend and an addend from memory. generating their sum, placing the sum in memory and then requesting another instruction.
  • certain of the autonomous computing elements may be complex computing systems which, once they have been given an instruction, are capable of operating independently using subroutines which are stored within the elements.
  • a plurality of interdependent or independent instruction sequences are stored in the associative memory.
  • Each of these programs consists of a plurality of instruction words which must be operated upon in some established sequence.
  • the instruction words of the various programs may be intermixed in the memory, that is, it is not required that all of the instructions of one program be stored in sequential locations in the memory.
  • Each instruction includes in addition to an indication of the particular operation which is to be performed (ll a first field which identifies the program with which the particular instruction is associated, (2) a second field which identifies the position which the particular instruc tion occupies in the sequence of instructions which form the particular program with which the particular instruction is associated, and (3) a third field which identifies the particular type of computing element needed in order to execute the particular instruction.
  • the system includes means for identifying when a particular instruction is ready for execution.
  • an autonomous computing element Whenever an autonomous computing element becomes idle, it interrogates the memory to find an instruction which is then ready for execution and which by the information in its third field contains an indication that it can be executed by the particular autonomous computing element which is interrogating the memory. If such an instruction is found, it is sent to the particular element for execution. After an element completes the execution of an instruction, the system indicates that the next instruction which is in the same program as the com pleted instruction is ready for execution. This next instruction will remain in memory until an autonomous computing element which is capable of executing the particular instruction becomes idle and interrogates the memory to find an instruction which it can execute. Therefore, it can be seen that the instructions in a par ticular sequence need not all be executed by the same autonomous computing element.
  • An object of the present invention is to provide an improved computing system.
  • a further object of the present invention is to provide a computing system which is capable of simultaneously operating upon a plurality of independent programs.
  • Yet another object of the present invention is to provide a computing system which has a plurality of autonomous computing elements in which all information relating to the sequence and progress of a program during execution is held in a memory which is common to all autonomous computing elements.
  • Still another object of the present invention is to provide a computing system with a plurality of autonomous computing elements each of which can work independently on any one of a plurality of stored programs as the condition of these programs requires and dictates.
  • Yet another object of the present invention is to provide a system which allows program sequences to fan-out and fan-in merely as a result of the information stored in the instruction words themselves.
  • Yet another object of the present invention is to provide a multiprocessing system in which the hardware in the system is used in the most efficient manner possible in order to process a plurality of programs.
  • Yet another object of the present invention is to proa vide a multiprocessing system in which the hardware in the system is used in the most efficient manner possible in order to process a plurality of programs in a priority order established by information in the instruction words of the programs.
  • Yet another object of the present invention is to provide a computing system which can be easily expanded or contracted as required.
  • Yet another object of the present invention is to provide a computing system which is adapted to be manufactured in the modular concept with independent replaceable units.
  • FIGURE la is an information flow diagram which shows the overall organization of the system.
  • FIGURE 1b is a chart which specifies the general characteristics of the processing elements as shown in FIG- URE 1a.
  • FIGURE 1c is a diagram which shows the format of an instruction word.
  • FIGURE 1d is a diagram which shows the format of a data word.
  • FIGURE 1e is a diagram which shows four instruction words which are in the instruction ready memory at one particular time.
  • FIGURES 2a, 2b, 2c, 2d and 2e (which fit together as shown in FIGURE 2) are an overall circuit diagram of the system.
  • FIGURE 3 is a detailed circuit diagram of the instruction memory sequence control circuit shown in FIG- URE 2a.
  • FIGURES 4a and 4b (which fit together as shown in FIGURE 4) are detailed circuit diagrams of the main memory sequence control circuit shown in FIGURE 2a.
  • FIGURE 5 is a timing diagram which shows the output of the timer shown in FIGURE 3.
  • FIGURE 6 is a timing diagram which shows the output of the timer shown in FIGURE 4a.
  • FIGURES 7a and 7b (which fit together as shown in FIGURE 7) are circuit diagrams of processing element A which is shown in FIGURES la and 2c.
  • FIGURE 8 is a circuit diagram of processing element D which is shown in FIGURES la and 2e.
  • FIGURE 9 is a circuit diagram of processing element C which is shown in FIGURES la and 2d.
  • FIGURE 10 is a timing diagram of the output of the timer shown in FIGURE 9.
  • FIGURE 11 is a detailed circuit diagram of add one adder shown in FIGURE la.
  • FIGURE l2a is a diagram of instructions used to explain sequence combining.
  • FIGURE 12b is a diagram of an end of sequence instruction.
  • FIGURE la A general overall flow diagram of the system is shown in FIGURE la.
  • the system consists of a main memory 112, an instruction ready memory 113 and five processing elements A, B, C, D and E.
  • Each of the processing elements A to E is an autonomous (or independent) computing element.
  • Each of the processing elements A to E receives instruction from instruction ready memory 113; however, after a particular processing element receives an instruction it proceeds to execute this instruction while operating independently from the rest of the system. After a processing element completes the execution of an instruction, it signals the system that it has finished executing the instruction and that it is ready to receive another instruction.
  • the type 4 of operation which each of the processing elements A to E is capable of performing is tabulated in the chart of FIGURE 1b.
  • Each of the memories 112 and 113 is an associative or content addressed memory. That is, a word is addressed and read out of a memory location, not by specifying the address of the particular memory location where the word is stored, but instead by specifying the information contained in one or more particular fields in the word.
  • Memory 113 also has the further capabilities as specified below. When one specifies the content of a particular field (hereinafter called the type of element field) of the instruction word which one desires to readout, and there are two or more instruction words in the memory 113 which have the specified information in the specified field, memory 113 has the ability to examine another field in these instruction words (called a priority field) to determine which one of the instruction words has the highest priority. If more than one of these instruction words has the same priority memory 113 has the still further ability to readout the particular one of these instruction words which has been stored in memory 113 for the longest period of time. The details of memories 112 and 113 will be explained later.
  • each instruction word has nine fields 121 to 129 as shown in FIGURE 1c.
  • the information stored in field 121 of each instruction word is termed the program tag and it specifies the particular program (or instruction sequence) with which the particular instruction word is associated.
  • the information stored in field 122 of each instruction word is termed the address symbol and it specifies the location of the particular instruction in the program specified by the program tag in field 121 of the particular instruction.
  • the information stored in field 123 of each instruction word indicates the type of element needed to perform the particular instruction and the information in field 124 of each instruction word indicates the particular operation which is to be performed.
  • the information stored in field 125 of certain instruction words is termed the sequence combining tag, the function of the sequence combining tag will be explained later.
  • each program has a priority rating assigned thereto, the more important programs being given higher priority.
  • the information in field 126 specifies the priority of the particular program with which the particular instruction is associated.
  • the information stored in fields 127, 128 and 129 are operand symbols which either specify operands upon which the particular instruction is to operate, or which specify the identification in memory of the operands upon which the particular instruction is to operate.
  • the operand fields may also contain information required in order to execute a transfer or decision instruction.
  • each instruction word is shown as containing three operand symbols in fields 127, 128 and 129. Three fields are shown merely for the purpose of illustration and naturally, in accordance with techniques known in the art, more or less operand fields could be used in various known ways.
  • the main memory 112 also has stored therein data words which are associated with the various programs.
  • Each of the data words stored in main memory 112 has the format shown in FIGURE 1d which includes the three fields 131, 132 and 133.
  • the data per se is stored in field 133.
  • the information in field 131 specifies the particular program with which the data stored in field 133 is associated.
  • the information which is stored in field 132 of any data word specifies a particular data word out of all the data words which are associated with the pro gram whose identification is specified in field 131.
  • each of the processing ele ments A, B, C, D and E is specified in the second column of FIGURE 1b and the particular binary number (in field 123 of an instruction word) which specifics each type of processing element is listed in the third column of FIG- URE lb.
  • both processing element A and processing element B are capable of performing addition and multiplication and the binary number 110 in field 123 of an instruction indicates that it must be performed by the type of a processing element which is capable of addition and multiplication (i.e., the instruction must be performed by either processing element A or processing element B).
  • the instruction words do not specify which particular process ing element must execute the particular instruction.
  • processing elements Dcpending upon the frequency of use, more or less of a particular type of processing element can be added into the system.
  • processing elements which are shown are merely meant to be illustrative for the purpose of explaining the invention and it should be understood that various other types of processing elements can be added into the system.
  • each of the fields of the words 141 to 144 is identified by a numeral followed by a letter.
  • the numeral which identifies each field is the same as the numeral which identifies the same type of field in FIG- URE 1c.
  • Each set of numerals which identifies a field in instruction word 141 is followed by the letter G
  • each set of numerals which identifies a field in instruction word 142 is followed by the letter H
  • each set of numerals which identifies a field in instruction word 143 is followed by letter I
  • each set of numerals which identifies a field in the instruction word 144 is followed by the letter J.
  • the information in fields 121G to 121] identifies the four programs with which the four particular data words are associated, and the information in fields 1226 to 122] identifies the particular position which each instruction occupies in its associated program.
  • the information in fields 1236 to 123] identifies the type of element which is capable of executing the respective instructions. It should be noted that both instruction 141 and instruction 142 can be executed by the same type of element identified by the binary number 110 in fields 123G and 123H. Instructions 143 and 144 must be executed by other types of elements as indicated by the binary numbers in fields 1231 and 123].
  • a processing element whenever a processing element becomes idle it requests an instruction from instruction ready memory 113.
  • the system interrogates memory 113 to find if there is an instruction therein which has in field 123 the symbol which indicates that the particular instruction can be performed by the element which is requesting the instruction.
  • the system interrogates instruction ready memory 113 to find if any of the instruction words therein has the symbol lltl in field 123.
  • the four instructions shown in FIGURE le are in the memory and hence the system finds that both instructions 141 and 142 have the symbol lit) in field 123.
  • the system interrogates fields 126 of there two instructions to determine which has the highest priority. in the present case, the number stored in the field 126H is greater than the number stored in field 1266 and hence the memory reads out instruction 142 and passes it to processing element B. If both instructions 141 and 142 had the same number stored in their priority fields. the system would readout the particular instruction which had been stored in instruction ready memory 113 for the longest period of time (the details of memory 113 are given later).
  • a processing element After a processing element receives an instruction, it operates independently of the remainder of the system. First it interrogates field 124 of the instruction which it has received to determine the operation which it is to per form. it then requests from main memory 112 any data which is required and after it has received the required data, it performs the desired operation. After the operation has been performed, the processing element stores the result in the main memory 112 (it the instruction which it receives indicates that this is what is to be done). Once the complete operation has been performed (and if required the result has been stored in main memory 112) the processing element signals the system that it has completed the instruction which it received.
  • the system When the system receives an indication that a processing element has completed an instruction, it interrogates the procesing element to determine the particular program and the particular instruction upon which the processing element has been working. After the system has determined this information, it interrogates the main memory 112 and brings the next instruction in the same program into the instruction ready memory 113. Simultaneously (subject to certain limitations discussed later) with the above operation, the system interrogates the instruction ready memory to determine if there is another instruction in the instruction ready memory which the processing element can perform. Thereafter, the general cycle described above is repeated.
  • FIGURES 2a, 2b, 2c, 2d and 2e show in the interconnections between the major components.

Description

March 7, 1967 FALKOFF Re. 26,171
MULTIPROCESS ING COMPUTER SYSTEM Original Filed March 2, 1962 17 Sheets-Sheet 1 MAIN II2 FIG. IO MEMORY INSTRUCTION H5 READY MEMORY l PROCESSING PROCESSING PROCESSING PROCESSING PROCESSING] ELEMENT ELEMENT ELEMENT ELEMENT ELEMENT L A B C D E L. I SYMBOL IN FlELD e22 PROCESSING TYPE OF ELEMENT WHICH REPRESENTS THE ELEMENT PARTICULAR TYPE T OF ELEMENT A ADDTHDN ULTIPLICATIDN no I l a ADDITION ,MULTIPLICATION 440 I C LOGICAL OPERATOR 01o EL... 7". D INPUT ,OUTPUT 004 T E GENERAL PURPOSE COMPUTER 10o INVENTOR F|G 1b AM 0. FALKOFF BY gav ATTORNEY March 7, 1967 A. D. FALKOFF MULTIPROCESSING COMPUTER SYSTEM 17 Sheets-Sheet 5 Original Filed March 2, 1962 $6 QC EH SE $2 mSN E8 Quiz? 2% 22 A A 5&2? EN 33 r 7 EN EN mm 7 t mm: a H r 7 3 25 J W m 2: 3 92 r m 2 m5 3% $8 w JJ V x $88 mmom V (NON March 7, 1967 A. D. FALKOF'F MULTIPROCESS ING COMPUTER SYSTEM Original Filed March 2, 1962 17 Sheets-Sheet 8 FIG 3 J2 H/ T4 INSTRUCTION FIELD INTERROW'ON T5 READY 423 REGISTER BOI I MEMORY TIMER 22 SEQUENCE CONTROL m P32? CODE cDDE CODE CODE MIIE 5128K mc M20) N25 l LATCH LIIcII LATCH LATCH LATCH I 2 3 4 5 s R s R s R s R s R I i 1 i i EIIAAM mm was.- 5mm IIIEI,
311A 3% 3H0 SHD SHE r" f Now-m J (AND AND [AND AND AND IIIM CIRCUIT rm (5'08 2I00 PIUA /3|0C 2IOE\ 2I0B ,mc {510D [SIDE 25 2SI INSTRUCTION 2 3x REQUEST) 2IIIII-- I;
March 7, 1967 A. D. FALKOFF MULTIPROCES S ING COMPUTER SYSTEM Original Filed March 2, 1962 17 Sheets-Sheet 9 MAW MEMORY 's-4 SEQUENCE CONTROL 4a 4b l TIMER 400 407 1 m A M1 525111.111" N41 n2 m WW5 H5 495 494 I 495 492 r ANDI/ AND AND AND AND /491 l i I I 1 1 sa W 1 OR E 55 484 463 432 48: A4. "L weenm; i 1 gAND [AND AND AND AND 1 466A i 1 L I 466 466B 5 [4660 H I [4660 m I If DI [466E E E A. .7 .4. i A I W OR 455 464 Z463 462 161 [LATCH LATCH LAgcH LAgGH LATCH NOT WM 5 R s R s R s R s n 489 l i 2 l L ilid r g 1* 7 125f ns 474 475 M72 4?1 g [AND] AND AND] AND AND 213 213m mm L... I 2130 mE A. D. FALKOFF MULTIPROCESSING COMPUTER SYSTEM March 7, 1967 17 Sheets-Sheet 11 Original Filed March 2, 1962 M OUT PUT OF TIMER 322 \NPUT ACTIVE INPUT 1 INACTIVE m L, M V
\ \NPUT ACTIVE PTES March 7, 1967 A. D. FALKOFF MULTIPROCESSING COMPUTER SYSTEM 17 Sheets-Sheet 14 Original Filed March 2, 1962 maEC :2
mw mmm im a;
2 EEDQ E E5 :2: 3mm B8 new A M r? V J @E W F 2m mwmmood cm a m w u L March 7, 1967 Original Filed March 2, 1962 FIG.IO
TIMER DETECTS IOII IN FIELD I24 OF REGISTER A. D. FALKOFF MULTIPROCESSING COMPUTER SYSTEM 17 Sheets-Sheet 16 OUTPUT 0F TIMER 821 DTI IJUA
IJMA
DTSA
DT6A
DT5B BT48 M UTBB 0n ma n ivivw REPEAT UNTIL GOMPARI' cmcun INDICATESA CQMPARISON I I I March 7, 1967 Original Filed March 2, 1962 A. D. FALKOFF MULTIPROGESSING COMPUTER SYSTEM 17 Sheets-Sheet 1 7 c121) uzm uzm 124 (125) uz iOH United States Patent 26.171 MULTIPROCESSING COMPUTER SYSTEM Adin D. Faiirotf, Croton-on-Hudson, N.Y., assignor to International Business Machines Corporation, New York,
N.Y., a corporation of New York Original No. 3,229,260, dated Jan. 11, 1966, Ser. No.
176,940, Mar. 2, 1962. Application for reissue June 1,
1966, Ser. No. 560.366
20 Claims. (Cl. 340172.5)
Matter enclosed in heavy brackets appears in the original patent but forms no part of this reissue specification; matter printed in italics indicates the additions made by reissue.
This invention relates to digital computers and more particularly to digital computers which are capable of simultaneously operating upon several interdependent or independent instruction sequences.
Computing systems known in the prior art have been capable of simultaneously operating upon several interdependent or independent instruction sequences, that is, multiprocessing. Such systems require a supervisory program which controls the progress of the various instruction sequences through the system. The complexity of the supervisory program depends upon the degree to which the execution of the various instruction sequences is integrated in the system. If, with the systems of the prior art. an attempt is made to have a high degree of simultaneity relative to the execution of several instruction sequences, the supervisory program becomes complex and a large amount of the systems time is consumed by the supervisory program in order to perform the necessary transfer and control functions (i.e., the necessary housekeeping operations). Some of the transfer and control operations can be taken care of by a compiler program rather than by a supervisory program; however, if this is done, the system will lack flexibility and furthermore, the compiler program must be made complex thus occupying more of the systems time.
Stated differently, with the systems of the prior art, it a system is merely executing one instruction sequence, practically the entire capabilities of the system can be devoted to executing this one instruction sequence; however, if a system is simultaneously executing two or more interdependent or independent instruction sequences, a considerable amount of the systems time must be devoted to housekeeping operations. Furthermore, the multiprocessing systems known in the prior art do not make efficient use of all of the hardware in the system. The present invention is directed at a computing system which can simultaneously execute a plurality of interdependent or independent instruction sequences, and wherein the progress of the various instruction sequences being executed by the system at any one time is not established by a compiler program or controlled by a supervisory program.
The system of the present invention includes a plurality of autonomous computing elements and an associate memory. Each autonomous computing element is essentially a computer which after it has been given an instruction is capable of independently operating upon the instruction to generate a specified result. Each autonomous computing element may be a simple computing element such as an adder which is merely capable of requesting an instruction and after it has been given an instruction of obtaining an augend and an addend from memory. generating their sum, placing the sum in memory and then requesting another instruction. On the other hand, certain of the autonomous computing elements may be complex computing systems which, once they have been given an instruction, are capable of operating independently using subroutines which are stored within the elements.
Reissued Mar. 7, 1967 'ice With the present system, a plurality of interdependent or independent instruction sequences (hereinafter termed programs) are stored in the associative memory. Each of these programs consists of a plurality of instruction words which must be operated upon in some established sequence. The instruction words of the various programs may be intermixed in the memory, that is, it is not required that all of the instructions of one program be stored in sequential locations in the memory.
Each instruction includes in addition to an indication of the particular operation which is to be performed (ll a first field which identifies the program with which the particular instruction is associated, (2) a second field which identifies the position which the particular instruc tion occupies in the sequence of instructions which form the particular program with which the particular instruction is associated, and (3) a third field which identifies the particular type of computing element needed in order to execute the particular instruction. The system includes means for identifying when a particular instruction is ready for execution.
Whenever an autonomous computing element becomes idle, it interrogates the memory to find an instruction which is then ready for execution and which by the information in its third field contains an indication that it can be executed by the particular autonomous computing element which is interrogating the memory. If such an instruction is found, it is sent to the particular element for execution. After an element completes the execution of an instruction, the system indicates that the next instruction which is in the same program as the com pleted instruction is ready for execution. This next instruction will remain in memory until an autonomous computing element which is capable of executing the particular instruction becomes idle and interrogates the memory to find an instruction which it can execute. Therefore, it can be seen that the instructions in a par ticular sequence need not all be executed by the same autonomous computing element.
One of the reasons that the first and second fields in each instruction word (i.e., the fields which identify the particular program with which the instruction is associated and the particular location of the instruction in the particular program) are needed is so that after each instruction has been executed, the system will know which other instruction is thereby made ready for execution.
An object of the present invention is to provide an improved computing system.
A further object of the present invention is to provide a computing system which is capable of simultaneously operating upon a plurality of independent programs.
Yet another object of the present invention is to provide a computing system which has a plurality of autonomous computing elements in which all information relating to the sequence and progress of a program during execution is held in a memory which is common to all autonomous computing elements.
Still another object of the present invention is to provide a computing system with a plurality of autonomous computing elements each of which can work independently on any one of a plurality of stored programs as the condition of these programs requires and dictates.
Yet another object of the present invention is to provide a system which allows program sequences to fan-out and fan-in merely as a result of the information stored in the instruction words themselves.
Yet another object of the present invention is to provide a multiprocessing system in which the hardware in the system is used in the most efficient manner possible in order to process a plurality of programs.
Yet another object of the present invention is to proa vide a multiprocessing system in which the hardware in the system is used in the most efficient manner possible in order to process a plurality of programs in a priority order established by information in the instruction words of the programs.
Yet another object of the present invention is to provide a computing system which can be easily expanded or contracted as required.
Yet another object of the present invention is to provide a computing system which is adapted to be manufactured in the modular concept with independent replaceable units.
The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the invention, as illustrated in the accompanying drawings.
In the drawings:
FIGURE la is an information flow diagram which shows the overall organization of the system.
FIGURE 1b is a chart which specifies the general characteristics of the processing elements as shown in FIG- URE 1a.
FIGURE 1c is a diagram which shows the format of an instruction word.
FIGURE 1d is a diagram which shows the format of a data word.
FIGURE 1e is a diagram which shows four instruction words which are in the instruction ready memory at one particular time.
FIGURES 2a, 2b, 2c, 2d and 2e (which fit together as shown in FIGURE 2) are an overall circuit diagram of the system.
FIGURE 3 is a detailed circuit diagram of the instruction memory sequence control circuit shown in FIG- URE 2a.
FIGURES 4a and 4b (which fit together as shown in FIGURE 4) are detailed circuit diagrams of the main memory sequence control circuit shown in FIGURE 2a.
FIGURE 5 is a timing diagram which shows the output of the timer shown in FIGURE 3.
FIGURE 6 is a timing diagram which shows the output of the timer shown in FIGURE 4a.
FIGURES 7a and 7b (which fit together as shown in FIGURE 7) are circuit diagrams of processing element A which is shown in FIGURES la and 2c.
FIGURE 8 is a circuit diagram of processing element D which is shown in FIGURES la and 2e.
FIGURE 9 is a circuit diagram of processing element C which is shown in FIGURES la and 2d.
FIGURE 10 is a timing diagram of the output of the timer shown in FIGURE 9.
FIGURE 11 is a detailed circuit diagram of add one adder shown in FIGURE la.
FIGURE l2a is a diagram of instructions used to explain sequence combining.
FIGURE 12b is a diagram of an end of sequence instruction.
General description of major components of the system A general overall flow diagram of the system is shown in FIGURE la. The system consists of a main memory 112, an instruction ready memory 113 and five processing elements A, B, C, D and E.
Each of the processing elements A to E is an autonomous (or independent) computing element. Each of the processing elements A to E receives instruction from instruction ready memory 113; however, after a particular processing element receives an instruction it proceeds to execute this instruction while operating independently from the rest of the system. After a processing element completes the execution of an instruction, it signals the system that it has finished executing the instruction and that it is ready to receive another instruction. The type 4 of operation which each of the processing elements A to E is capable of performing is tabulated in the chart of FIGURE 1b.
Each of the memories 112 and 113 is an associative or content addressed memory. That is, a word is addressed and read out of a memory location, not by specifying the address of the particular memory location where the word is stored, but instead by specifying the information contained in one or more particular fields in the word. Memory 113 also has the further capabilities as specified below. When one specifies the content of a particular field (hereinafter called the type of element field) of the instruction word which one desires to readout, and there are two or more instruction words in the memory 113 which have the specified information in the specified field, memory 113 has the ability to examine another field in these instruction words (called a priority field) to determine which one of the instruction words has the highest priority. If more than one of these instruction words has the same priority memory 113 has the still further ability to readout the particular one of these instruction words which has been stored in memory 113 for the longest period of time. The details of memories 112 and 113 will be explained later.
In the particular embodiment of the invention shown herein, each instruction word has nine fields 121 to 129 as shown in FIGURE 1c. The information stored in field 121 of each instruction word is termed the program tag and it specifies the particular program (or instruction sequence) with which the particular instruction word is associated. The information stored in field 122 of each instruction word is termed the address symbol and it specifies the location of the particular instruction in the program specified by the program tag in field 121 of the particular instruction. The information stored in field 123 of each instruction word indicates the type of element needed to perform the particular instruction and the information in field 124 of each instruction word indicates the particular operation which is to be performed. The information stored in field 125 of certain instruction words is termed the sequence combining tag, the function of the sequence combining tag will be explained later.
Depending upon its importance, each program has a priority rating assigned thereto, the more important programs being given higher priority. The information in field 126 specifies the priority of the particular program with which the particular instruction is associated.
The information stored in fields 127, 128 and 129 are operand symbols which either specify operands upon which the particular instruction is to operate, or which specify the identification in memory of the operands upon which the particular instruction is to operate. Naturally, as in other computing systems, the operand fields may also contain information required in order to execute a transfer or decision instruction. Herein each instruction word is shown as containing three operand symbols in fields 127, 128 and 129. Three fields are shown merely for the purpose of illustration and naturally, in accordance with techniques known in the art, more or less operand fields could be used in various known ways. The main memory 112 also has stored therein data words which are associated with the various programs.
Each of the data words stored in main memory 112 has the format shown in FIGURE 1d which includes the three fields 131, 132 and 133. The data per se is stored in field 133. The information in field 131 specifies the particular program with which the data stored in field 133 is associated. The information which is stored in field 132 of any data word specifies a particular data word out of all the data words which are associated with the pro gram whose identification is specified in field 131.
The general capability of each of the processing ele ments A, B, C, D and E is specified in the second column of FIGURE 1b and the particular binary number (in field 123 of an instruction word) which specifics each type of processing element is listed in the third column of FIG- URE lb. As indicated by the chart of FIGURE lb, both processing element A and processing element B are capable of performing addition and multiplication and the binary number 110 in field 123 of an instruction indicates that it must be performed by the type of a processing element which is capable of addition and multiplication (i.e., the instruction must be performed by either processing element A or processing element B). However, the instruction words do not specify which particular process ing element must execute the particular instruction. Dcpending upon the frequency of use, more or less of a particular type of processing element can be added into the system. Herein the particular processing elements which are shown (two of which are type 110) are merely meant to be illustrative for the purpose of explaining the invention and it should be understood that various other types of processing elements can be added into the system.
General description of an example of the operation of the system For present purposes of illustration, the system will be assumed to be operating upon four independent programs which are stored in memory 112. Each of the four programs stored in memory 112 consist of one ordered sequence of instructions. Each instruction has a format shown in FIGURE 1c. At any particular time, there is one instruction in each sequence of instructions (ie in each program) which is ready for execution. Whenever an instruction becomes ready for execution, it is transferred (in a manner which will be explained in detail later) from main memory 112 into the instruction ready memory 113.
Since the system is operating upon four independent programs (each of which for the present discussion is assumed to have only one sequence of instructions), there will be at any particular time only four instructions in the instruction ready memory 113. For purposes of illustration, four particular instruction words 141 to 144 which may be in instruction ready memory 113 at one particular time are shown in FIGURE le. Naturally, the size of each of the fields in the instruction words is here chosen merely for the purpose of illustration and these fields may be any size which is needed in the particular application of the invention.
For convenience in reference between the specification and the drawings, each of the fields of the words 141 to 144 is identified by a numeral followed by a letter. The numeral which identifies each field is the same as the numeral which identifies the same type of field in FIG- URE 1c. Each set of numerals which identifies a field in instruction word 141 is followed by the letter G, each set of numerals which identifies a field in instruction word 142 is followed by the letter H, each set of numerals which identifies a field in instruction word 143 is followed by letter I, and each set of numerals which identifies a field in the instruction word 144 is followed by the letter J.
The information in fields 121G to 121] identifies the four programs with which the four particular data words are associated, and the information in fields 1226 to 122] identifies the particular position which each instruction occupies in its associated program.
The information in fields 1236 to 123] identifies the type of element which is capable of executing the respective instructions. It should be noted that both instruction 141 and instruction 142 can be executed by the same type of element identified by the binary number 110 in fields 123G and 123H. Instructions 143 and 144 must be executed by other types of elements as indicated by the binary numbers in fields 1231 and 123].
As previously stated, whenever a processing element becomes idle it requests an instruction from instruction ready memory 113. When the system receives such a request, the system interrogates memory 113 to find if there is an instruction therein which has in field 123 the symbol which indicates that the particular instruction can be performed by the element which is requesting the instruction. In the present case, when processing element 13 indicates that it needs an instruction, the system interrogates instruction ready memory 113 to find if any of the instruction words therein has the symbol lltl in field 123. In the example presently being diSClhffiCl. the four instructions shown in FIGURE le are in the memory and hence the system finds that both instructions 141 and 142 have the symbol lit) in field 123. Since two instructions are found which are capable of being executed by cle ment B, the system interrogates fields 126 of there two instructions to determine which has the highest priority. in the present case, the number stored in the field 126H is greater than the number stored in field 1266 and hence the memory reads out instruction 142 and passes it to processing element B. If both instructions 141 and 142 had the same number stored in their priority fields. the system would readout the particular instruction which had been stored in instruction ready memory 113 for the longest period of time (the details of memory 113 are given later).
After a processing element receives an instruction, it operates independently of the remainder of the system. First it interrogates field 124 of the instruction which it has received to determine the operation which it is to per form. it then requests from main memory 112 any data which is required and after it has received the required data, it performs the desired operation. After the operation has been performed, the processing element stores the result in the main memory 112 (it the instruction which it receives indicates that this is what is to be done). Once the complete operation has been performed (and if required the result has been stored in main memory 112) the processing element signals the system that it has completed the instruction which it received.
When the system receives an indication that a processing element has completed an instruction, it interrogates the procesing element to determine the particular program and the particular instruction upon which the processing element has been working. After the system has determined this information, it interrogates the main memory 112 and brings the next instruction in the same program into the instruction ready memory 113. Simultaneously (subject to certain limitations discussed later) with the above operation, the system interrogates the instruction ready memory to determine if there is another instruction in the instruction ready memory which the processing element can perform. Thereafter, the general cycle described above is repeated.
Practically an unlimited queuing facility can be obtained through the use of priority field and further more a program such as a diagnostic program can be assigned the highest priority thereby insuring that it will be executed by the system in preference to all other programs in the system.
Functional description of major components of the system We will now give a more detailed explanation of the system with reference to detailed circuit diagram shown in FIGURES 2a, 2b, 2c, 2d and 2e. FlGURES 2a, 2b, 2c, 2d and 2e which fit together as shown in FIGURE 2, shows in the interconnections between the major components.
It should be noted that two different types of interconnections between the various components are shoun in the circuit diagrams of FIGURES 2a, 2b, 2c, 2d and 2e. Single line connections which merely transmit one signal between components are represented by single lines and cables which simultaneously transmit a plurality of signals between components are designated by dual
US56036666 1962-03-02 1966-06-01 Multiprocessing computer system Expired USRE26171E (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US56036666 USRE26171E (en) 1962-03-02 1966-06-01 Multiprocessing computer system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US176940A US3229260A (en) 1962-03-02 1962-03-02 Multiprocessing computer system
US56036666 USRE26171E (en) 1962-03-02 1966-06-01 Multiprocessing computer system

Publications (1)

Publication Number Publication Date
USRE26171E true USRE26171E (en) 1967-03-07

Family

ID=38543814

Family Applications (1)

Application Number Title Priority Date Filing Date
US56036666 Expired USRE26171E (en) 1962-03-02 1966-06-01 Multiprocessing computer system

Country Status (1)

Country Link
US (1) USRE26171E (en)

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3401376A (en) * 1965-11-26 1968-09-10 Burroughs Corp Central processor
US3401380A (en) * 1965-05-13 1968-09-10 Automatic Telephone & Elect Electrical systems for the reception, storage, processing and re-transmission of data
US3411143A (en) * 1966-01-13 1968-11-12 Ibm Instruction address control by peripheral devices
US3416139A (en) * 1966-02-14 1968-12-10 Burroughs Corp Interface control module for modular computer system and plural peripheral devices
US3426329A (en) * 1966-02-14 1969-02-04 Burroughs Corp Central data processor for computer system having a divided memory
US3444525A (en) * 1966-04-15 1969-05-13 Gen Electric Centrally controlled multicomputer system
US3454936A (en) * 1966-11-14 1969-07-08 Data Pathing Inc Method of and system for interrogating a plurality of sources of data
US3480916A (en) * 1967-01-30 1969-11-25 Gen Electric Apparatus providing identification of programs in a multiprogrammed data processing system
US3496551A (en) * 1967-07-13 1970-02-17 Ibm Task selection in a multi-processor computing system
US3521238A (en) * 1967-07-13 1970-07-21 Honeywell Inc Multi-processor computing apparatus
US3538504A (en) * 1967-01-30 1970-11-03 Weston Instruments Inc Computer controlled peripheral processing devices for a telemetry system
US3544969A (en) * 1967-11-27 1970-12-01 Standard Computer Corp Language independent computer
US3614745A (en) * 1969-09-15 1971-10-19 Ibm Apparatus and method in a multiple operand stream computing system for identifying the specification of multitasks situations and controlling the execution thereof
US3623158A (en) * 1968-11-12 1971-11-23 Ibm Data processing system including nonassociative data store and associative working and address stores
WO1980002609A1 (en) * 1979-05-11 1980-11-27 Boeing Co Transition machine-general purpose computer
US4257097A (en) 1978-12-11 1981-03-17 Bell Telephone Laboratories, Incorporated Multiprocessor system with demand assignable program paging stores
WO1981002645A1 (en) * 1980-03-10 1981-09-17 Boeing Co Modular system controller for a transition machine
US4318173A (en) 1980-02-05 1982-03-02 The Bendix Corporation Scheduler for a multiple computer system
US4323966A (en) 1980-02-05 1982-04-06 The Bendix Corporation Operations controller for a fault-tolerant multiple computer system
US4333144A (en) 1980-02-05 1982-06-01 The Bendix Corporation Task communicator for multiple computer system
US4729094A (en) 1983-04-18 1988-03-01 Motorola, Inc. Method and apparatus for coordinating execution of an instruction by a coprocessor
US20070049560A1 (en) * 2005-05-27 2007-03-01 Lalitha Krishnan Tigecycline and methods of preparing 9-nitrominocycline

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3401380A (en) * 1965-05-13 1968-09-10 Automatic Telephone & Elect Electrical systems for the reception, storage, processing and re-transmission of data
US3401376A (en) * 1965-11-26 1968-09-10 Burroughs Corp Central processor
US3411143A (en) * 1966-01-13 1968-11-12 Ibm Instruction address control by peripheral devices
US3416139A (en) * 1966-02-14 1968-12-10 Burroughs Corp Interface control module for modular computer system and plural peripheral devices
US3426329A (en) * 1966-02-14 1969-02-04 Burroughs Corp Central data processor for computer system having a divided memory
US3444525A (en) * 1966-04-15 1969-05-13 Gen Electric Centrally controlled multicomputer system
US3454936A (en) * 1966-11-14 1969-07-08 Data Pathing Inc Method of and system for interrogating a plurality of sources of data
US3480916A (en) * 1967-01-30 1969-11-25 Gen Electric Apparatus providing identification of programs in a multiprogrammed data processing system
US3538504A (en) * 1967-01-30 1970-11-03 Weston Instruments Inc Computer controlled peripheral processing devices for a telemetry system
US3496551A (en) * 1967-07-13 1970-02-17 Ibm Task selection in a multi-processor computing system
US3521238A (en) * 1967-07-13 1970-07-21 Honeywell Inc Multi-processor computing apparatus
US3544969A (en) * 1967-11-27 1970-12-01 Standard Computer Corp Language independent computer
US3623158A (en) * 1968-11-12 1971-11-23 Ibm Data processing system including nonassociative data store and associative working and address stores
US3614745A (en) * 1969-09-15 1971-10-19 Ibm Apparatus and method in a multiple operand stream computing system for identifying the specification of multitasks situations and controlling the execution thereof
US4257097A (en) 1978-12-11 1981-03-17 Bell Telephone Laboratories, Incorporated Multiprocessor system with demand assignable program paging stores
WO1980002609A1 (en) * 1979-05-11 1980-11-27 Boeing Co Transition machine-general purpose computer
US4319321A (en) 1979-05-11 1982-03-09 The Boeing Company Transition machine--a general purpose computer
US4318173A (en) 1980-02-05 1982-03-02 The Bendix Corporation Scheduler for a multiple computer system
US4323966A (en) 1980-02-05 1982-04-06 The Bendix Corporation Operations controller for a fault-tolerant multiple computer system
US4333144A (en) 1980-02-05 1982-06-01 The Bendix Corporation Task communicator for multiple computer system
WO1981002645A1 (en) * 1980-03-10 1981-09-17 Boeing Co Modular system controller for a transition machine
US4379326A (en) 1980-03-10 1983-04-05 The Boeing Company Modular system controller for a transition machine
US4729094A (en) 1983-04-18 1988-03-01 Motorola, Inc. Method and apparatus for coordinating execution of an instruction by a coprocessor
US20070049560A1 (en) * 2005-05-27 2007-03-01 Lalitha Krishnan Tigecycline and methods of preparing 9-nitrominocycline

Similar Documents

Publication Publication Date Title
USRE26171E (en) Multiprocessing computer system
US3229260A (en) Multiprocessing computer system
US3469239A (en) Interlocking means for a multi-processor system
US3478322A (en) Data processor employing electronically changeable control storage
US3651482A (en) Interlocking data subprocessors
EP0096575B1 (en) Concurrent processing elements for using dependency free code
US5896542A (en) System and method for assigning tags to control instruction processing in a superscalar processor
US4187539A (en) Pipelined data processing system with centralized microprogram control
US4228498A (en) Multibus processor for increasing execution speed using a pipeline effect
US3629854A (en) Modular multiprocessor system with recirculating priority
US20080126757A1 (en) Cellular engine for a data processing system
US3299261A (en) Multiple-input memory accessing apparatus
US3094610A (en) Electronic computers
GB1267384A (en) Automatic context switching in a multi-programmed multi-processor system
KR880001170B1 (en) Microprocessor
US3745532A (en) Modular digital processing equipment
US3470540A (en) Multiprocessing computer system with special instruction sequencing
US3959774A (en) Processor which sequences externally of a central processor
US3706077A (en) Multiprocessor type information processing system with control table usage indicator
EP0377976B1 (en) Microcode control apparatus utilizing programmable logic array circuits
US3320594A (en) Associative computer
US3396371A (en) Controller for data processing system
US4754424A (en) Information processing unit having data generating means for generating immediate data
US3245047A (en) Selective data transfer apparatus
US3432810A (en) Addressing system for a computer employing a plurality of local storage units in addition to a main memory