Patent GB-1500527-A (GB)
Title: Data processing system
IPC: G06F9/38
Filed: 1975-05-23
Abstract: 1500527 Digital data processing systems GENERAL ELECTRIC CO 23 May 1975 [3 June 1974] 22730/75 Heading G4A A digital data processing system comprises a hierarchy of at least three, e.g. four, Fig. 5, levels, each pair of adjacent levels being interfaced by a respective bus or buses, e.g. 26; 36, 70; 46, 54, first instruction words each containing an operand code portion being sequentially selected from a store 10 and placed on bus 26 by a controller 12, the second and third levels each including a plurality of processing units, e.g. 28, 32; 38, 42, 72, 74, 78, 80, connected in parallel to the next higher bus, at least one, e.g. two (28 and 32), of the processing units in the second level being a translator processing unit, and at least one, e.g. three (72, 74 and 78) of the processing units in the second and third levels being an execution processing unit, each processing unit being adapted to accept from the respective next higher bus only instruction words containing designated operation code portions. Each execution processing unit is responsive to an instruction word accepted by that unit to perform the operation defined by that instruction word, each translator processing unit having an associated store, e.g. 30, 34; 40, 44, 82 which are preferably read-only stores, for storing second instruction words which also each contain an operation code portion defining an operation to be performed. Each translator processing unit includes selection means operable, in accordance with the operation code portion of an accepted instruction word, selectively to place the accepted instruction word on a next lower bus either with or without certain of the stored second instruction words. The fourth level of the hierarchy includes only execution processing units, e.g. 48, 50, 52, 88, of which the Boolean Logic Unit 52 and the Data Memory Unit 48 are later described in detail. The lower level processing units indicate to the higher level processing units (or to the controller 12, as the case may be) their ability to accept instruction words according as the lower level processing units are not or are busy; in the latter case accessing of further instruction words from the store 10 is prevented until the lower level processing units have accepted the former instruction words. The first mode of operation of the translator processing units, referred to above, is a "routing" mode wherein instruction words are transferred without modification from a bus to the next lower bus, whereas the second mode is a "sequence" mode wherein a sequence of second instruction words from the associated store is also placed on the next lower bus. Routing and sequence operations are each assigned blocks of operation code numbers, the operation codes being decoded by a unit (102), Fig. 6 (not shown) of a typical translator processing unit to effect the appropriate mode of operation. Boolean Logic Unit, Fig. 11.-This operates on pairs of vectors A, B, e.g. of four bits each, fed to a Y latch 148 and thence to respective A and B latches 158, 160, and decodes the operation code portion of an instruction word fed to a latch 144 to address a read-only micro-code generator 150 whereby enabling signals are produced for the various components of the Unit. The Unit is able to calculate the vectors A AND B, A OR B, A # B, the scalar (A 1  AND B 1 ) OR ... OR (A 4  AND B 4 ) (the Boolean inner product of A and B), and the scalar (A 1  OR B 1 ) AND ... AND (A 4  OR B 4 ) (the Boolean dual product of A and B). These quantities are obtained using ALU's 138 and 140, each bit position of the ALU's using a logic cell (142), Fig. 12 (not shown) and the logic cells being interconnected as in Fig. 13 (not shown) to form the coupled ALU's. One of sixteen fourbit R registers of a RAM 156 may be selected by a signal fed to an R latch 146 for use in the Unit. If a scalar output is produced, i.e. the Boolean inner or dual product, this is placed in one bit position of an F latch 166 as selected by a decoder 168 fed from the R latch 146; otherwise a vector output occupies the entire F latch 166. Data Memory Unit, Fig. 20.-This provides temporary virtual storage for output signals from sensor outputs 62 of external process equipment 56, Fig. 5, for processing by the Boolean Logic Unit. The process equipment 56 may be, e.g. a simulator for training purposes, results from the Boolean Logic Unit being fed thereto via control inputs 66. Instruction words fed to the Data Memory Unit from a higher level translator processing unit are held in latches 208, 210, 212 and 214 holding respectively the operation code, an N-bit field, a page field and an address field. The contents of latch 208 access a read-only micro-code generator 220 to produce enabling signals for this Unit. Each item of external process equipment is assigned to a respective page of a memory 58<SP>1</SP>, the contents of latch 212 causing accessing of the required page via a decoder 240. Differing numbers of bit positions within an item of input or output data are accommodated by the N-bit field in latch 210 presetting a bit counter 226 to the particular number; counter 226 is decremented after each bit is read or written from or into memory 58<SP>1</SP>. The address field of the instruction word held in latch 214 initiates a mapping, by means of a translator store 232, of input data into locations of the memory 58<SP>1</SP>. Data operated on within the Data Memory Unit is in serial form, parallel data words being input or output to or from this Unit via respective parallel/serial and serial/parallel converters 234, 242. A range of locations in memory 58<SP>1</SP> is reserved for real storage of data produced internally by the data processing system (no interface with external process equipment), part of this range overlapping with the virtual storage. An interface arrangement for the alphanumeric display unit 76 of Fig. 5 is described, which arrangement is generally similar to the execution processing units 52, 48 described above (Fig. 26, not shown).