US3226683A - Sequential decision making device - Google Patents

Sequential decision making device Download PDF

Info

Publication number
US3226683A
US3226683A US63631A US6363160A US3226683A US 3226683 A US3226683 A US 3226683A US 63631 A US63631 A US 63631A US 6363160 A US6363160 A US 6363160A US 3226683 A US3226683 A US 3226683A
Authority
US
United States
Prior art keywords
node
line
nodes
output
task
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 - Lifetime
Application number
US63631A
Inventor
Jr John E Gaffney
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 to NL270155D priority Critical patent/NL270155A/xx
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US63631A priority patent/US3226683A/en
Priority to DE19611424710 priority patent/DE1424710B2/en
Priority to NL61270155A priority patent/NL140069B/en
Priority to SE10352/61A priority patent/SE308962B/xx
Priority to FR876379A priority patent/FR1313121A/en
Application granted granted Critical
Publication of US3226683A publication Critical patent/US3226683A/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K17/00Electronic switching or gating, i.e. not by contact-making and –breaking
    • H03K17/51Electronic switching or gating, i.e. not by contact-making and –breaking characterised by the components used
    • H03K17/52Electronic switching or gating, i.e. not by contact-making and –breaking characterised by the components used by the use, as active elements, of gas-filled tubes

Definitions

  • FIG.4 SEQUENTIAL DECISION MAKING DEVICE Filed Oct. 19. 1960 12 Sheets-Sheet 3 s 40. 402 FIG.4
  • control signals In many computer applications it is necessary to produce a plurality of control voltages for controlling the operation of the computer. These control signals must be produced in a certain sequence and the sequence must be reproducible.
  • a magnetic core memory addressing circuit must produce a plurality of control voltages for gating the various words of a particular record into particular storage locations in the memory. The sequence of these control voltages must be reproduced when it is desired to read the record out of the memory so that all words of the record are read out in the correct sequence. Further, the addressing circuit must tabulate available storage locations in the computer memory so that a record which is to be written into the memory is gated to an available storage location. The problem of tabulating available storage locations in a computer memory and assigning addresses in such a manner that a prescribed distribution of data in the memory unit is assured has long been recognized as an important one.
  • Another computer application in which a number of specific sequences of control voltages are required is in programming the tasks which are to be performed by a digital computer.
  • Many digital computers now have a large number of units connected in the system. For example, a digital computer may have several input'output units, several memory units and several arithmetic and logical units. Many times it is not necessary to utilize all of these units in carrying out a particular program. Under such circumstances it may be possible to simultaneously perform several programs it a control device can be provided to sequence the tasks which are to be performed by the computer. Such a control device must be capable of determining which units are available for performing a given task and must be capable of establishing preferences in performing particular tasks between the various programs.
  • FIGURE 1 is the diagrammatic showing of a node network used for addressing a memory
  • FIGURE 2 is a block diagram of a memory addressing system
  • FIGURE 3 is a block diagram of two levels of the node network
  • FIGURE 4 is a logic diagram of a single node in the node network
  • FIGURE 5 is a logic diagram of a modification of the node network
  • FIGURE 6 is a circuit diagram of one embodiment of the single node
  • FIGURE 7 is a diagrammatic representation of a buffer storage unit for a digital computer
  • FIGURE 8a is a portion of a block diagram of a butler storage system
  • FIGURE 8! is another portion of the block diagram of a butler storage system
  • FIGURE 80 shows the manner in which FIGURES 8a and 8b fit together
  • FIGURE 9 is a diagrammatic representation of a sequential task-ordering device for a digital computer
  • FIGURE 10 shows task sequences for a digital computer
  • FIGURE 1 la shows a service request array for a digital computer
  • FIGURE llb shows a control array for a digital computer
  • FIGURE 12 shows a block diagram of the program array
  • FIGURE 13 shows a block diagram of the service request-control array
  • FIGURE 14 shows a circuit diagram of a sample subnode in the program array
  • FIGURE 15 shows a circuit diagram of another portion of the program array
  • FIGURE 16 is a circuit diagram of the service request-control array.
  • a self-addressing memory which completely relieves the programmer of the sometimes arduous task of maintaining tables of available and unavailable memory locations.
  • this record can be written into the memory without specification of the particular locations into which it is to be written.
  • the only address associated with this record is an identification number or other name by which it can be referred to subsequently.
  • certain areas of memory can be given greater preference for selection as storage space than other areas for a given record or class of records.
  • This feature could be used to facilitate a clustering of selected addresses. around a given address according to a prescribed probability distribution function such as a normal or a uniform distribution.
  • certain areas of this general store could be allocated for particular uses, such as [/0 area, intermediate results area, etc. Although a particular area would normally be bounded, in the case of maximum demand for space in this area, addresses in other areas would be selected by the address ing device. That is, there is probability that a given address distribution might extend into other areas.
  • the self-addressing memory consists of two units, the store which could be a conventional core memory, and an address control unit. This invention is directed particularly toward this address control unit. The functions of these two units can be incorporated into one physical unit of equipment.
  • the address control unit is a two-dimensional array of nodes, certain ones of which can be electrically linked together to form a chain.
  • Each node of the address control unit corresponds to either one or a block of words in the memory.
  • Corresponding to every record stored in the memory there exists one such chain of nodes, one node for each one, or a block of, words in the record.
  • a connection is propagated among the nodes, one after the other, until all of the record has been entered into storage. This connection is propagated from an initiating node according to the preference selection roles built into the array.
  • This record is identified, for the purposes of later readout, by the particular initiating node, or source, with which it is associated.
  • the address or name of this source is the sole identification required for the entire record.
  • An actual electrical linkage among the nodes forming the chain for any given record is maintained throughout the lifetime of this record in the storage device. This linkage can be disrupted or destroyed upon a signal from the control circuitry associated with the address control unit.
  • a similar array of nodes is used to control a buffer storage unit for a digital computer and an array of nodes is used to control the performance of tasks by particular units of a digital computer.
  • FIG. 1 there is shown a diagrammatic representation of a node network.
  • a node network is made up of a plurality of sources, sources 13 being shown, and a number of individual nodes, nodes 442 being shown.
  • Each record which is to be stored in the memory is associated with a particular source, for example, source 1, designated S A sequential connection is then established between a number of nodes, one node being energized for each word in the record, or one node being energized for each group of words in the record.
  • Each node is associated with a particular storage location in the memory unit and cnergization of that node allows a particular word to be entered into that particular storage location.
  • the various nodes are divided into levels.
  • the first level, designated 1' comprises node 4, N node 5, N and node 6, N
  • the second level, designated j includes nodes 7, 8 and 9
  • the third level, designated level k includes nodes 10, 11 and 12.
  • a path or connection through an array of this nature might be established as follows:
  • N is preferred to N and N is preferred to N in establishing a connection.
  • N will be used if it is not busy"; i.e., already part of another connection previously established.
  • connections of maximum length m can be established.
  • This array could provide connections or chains of nodes in excess of m in length simply by switching back through the nodal network.
  • a typical chain of this sort would be:
  • N N N N N N Self-addressing memory A system including a node array which generates the sequence of addresses required for the storage of the words of a record is shown in FIG. 2.
  • a source node is picked for each record.
  • the address of this source corresponds to a record address for this record and remains in that association throughout the lifetime of the storage of this record in the storage device.
  • the record address is connected to the source control network 201 which in turn picks one of a plurality of sources 202.
  • An exclusive connection is then established through a number of nodes in the node network 203, one node being energized for each word of the record read into the memory.
  • the outputs of each of the nodes are connected through a converter 204 to the memory address decoder 205.
  • the converter 204 merely converts the energization of a particular node output into a code which can be accepted by the memory address decoder to allow the entering of a particular word into a particular storage location in a magnetic core memory 206.
  • the connections through the node network 203 are established synchronously so that the connection is allowed to proceed to the next level only after the newly selected node is gated to the memory address decoder 205 where the proper memory address is selected and the corresponding word of the record is read into the magnetic core memory 206 over an input 207.
  • the electrical connection through the node network remains so long as the record remains stored in the magnetic core memory. When the source is turned oif, the connection is broken and the nodes employed in the connection are, therefore, made idle. Thus, they are available for inclusion in other connections corresponding to the storage of other records.
  • Determining the addresses of the words comprising a record which is to be read out of storage is very similar to the process for developing the addresses described above.
  • the words are read out of the magnetic core memory 206 over an output line 208 as the node network 203 generates the plurality of readout signals, each corresponding to one of the nodes in the connection associated with the particular record to be read out.
  • the node network 203 is under control of a node network control circuit 209 which produces the signals necessary to write the record into or read the record out of the magnetic core memory.
  • the node network control circuit 209 is under control of a write signal applied over the input 210 or a read signal applied over the input 211.
  • the network control signal will sequentially produce a plurality of control signals designated read level 1', read level k read level m and so on. These sequential signals are applied through read control circuit 212 to the node network 203.
  • a spike generator 213 produces a read spike which is applied through one of the sources 202 which is associated with the record being read to the node network 203.
  • the signal read level i is energized and simultaneously a read spike is connected through the particular source 202 associated with the record being read to the node network 203.
  • the simultaneous application of these two signals to the first level in the node network energizes a particular node in the first level and this node, acting through converter 204 and memory address decoder 205 permits a word to be read from the particular storage location in the magnetic core memory 206 or over the output line 208.
  • the operation then proceeds with the occurrence of the read level 1' signal and the occurrence of another readout spike from spike generator 213. This causes the next level of the node network to be energized and another word to be read out of magnetic core memory 206.
  • the node network 203 is shown in more detail in FIG 3 which shows two levels of the node network, each of which includes three nodes.
  • the first level, designated level 1' includes a node 301, designated N node 302, designated N and node 303, designated N
  • the sources are shown diagrammatically in FIG. 3 as being three position switches.
  • the source S includes a switch 304 which can be set to a position 304a, 304b, or 3040.
  • a voltage V is applied to the various nodes in the first level and this voltage maintains any connection which has been established through source S to one of the nodes in the first level.
  • the switch 304 When the switch 304 is in the position 304b, the nodes associated with that source are in the open condition through these nodes. When the switch is in the position 304e, a read spike from the generator 305 is applied to the nodes at the various levels associated with sources 8,, and the nodes associated with this source are read.
  • source S is shown diagrammatically as including the switch 306 and source s is shown as including the switch 307. It should, of course, be understood that the switches shown could be replaced by electronic components for performing the switching functions of the sources.
  • each node is interconnected with the other nodes in that level.
  • node 302 N is preferred to node 303, N which is, in turn, preferred to node 301 N Therefore, three outputs from node 302, designated S S 7, and S are connected through lines 308, 309, and 310 to the other nodes in level i. The negation of these three outputs will inhibit the selection of nodes 301 and 303 in a connection unless node 302 is already in use, that is, it is busy.
  • nodes 301 and 303 are interconnected with each other and with node 302 to completely establish an order of preference in the establishment of connections through level 1'.
  • Three control signals are also applied to the nodes of level i.
  • the first of these control signals designated proceed to next level is applied to nodes 301, 302 and 303 over the line 311. This signal occurs cyclically and controls the advancement of a connection through the various levels of the node network. The signal advances the connection through level i to the next level.
  • a second control signal read level i is applied to all of the nodes in level i when it is decided to read information out of the memory. This signal is applied over the line 312 to all of the nodes in level i.
  • a third signal, designated reset FFs" is applied over a line 313 to all of the nodes in level i and resets output flip-flops in these nodes after the nodes have been used in any cycle for reading information from the memory.
  • Each node has an output, the one from node 301 being over the line 314.
  • the line 314 is connected through converter 204 to the memory address decoder and indicates the storage location into which information is to read or from which information is to be read.
  • the output from node 302 is over line 315 and the output from node 303 is over line 316.
  • Level j includes the nodes 317, 318 and 319.
  • the nodes of this level are interconnected in the same way that the nodes of level i are interconnected and the same control signals are applied to the nodes of level y.
  • FIG. 4 there is shown a logic diagram of a single node which may be employed in the node network array.
  • This node corresponds to the node N previously described.
  • the line 401 is raised thus enabling AND gate 402.
  • the other input to AND gate 402 is a signal indicative of the negation of all signals which might inhibit the connection of node N in a connection.
  • the signals and S are applied to an AND gate 403. These signals are indicative of the fact that source S has not previously been connected to either node N or N In either case, it would not be desirable to put node N in a connection with source S
  • the signals N set plus N set are applied to AND gate 403. These signals indicate that nodes N and N are already set.
  • the output of AND gate 402 is designated S This signal is inverted in inverter 405 which forms the signal S and this signal is connected to other nodes in level i to indicate that S is connected to N
  • the output of AND gate 402 is also connected back through OR circuit 404 to the input of AND gate 402 so that once the signal S is established it is locked-in through OR gate 404.
  • the combination and AND gate 402 and OR gate 404 is termed a latch.
  • the signal S is one of several inputs to an OR circuit 406 the output of which is used to set a latch 420 to indicate that the node N is energized or used in a connection.
  • OR circuit 406 the output of which is used to set a latch 420 to indicate that the node N is energized or used in a connection.
  • the output from OR gate 406 is also inverted in an inverter 407 to produce the signal N set.
  • This signal is applied to AND gate 403 and other AND gates in the node N to prevent N from being used in connection when it is already in use or busy.
  • the output of OR circuit 406 is connected through an AND circuit 408 to form the output to the next level.
  • AND gate 408 is energized only when the output of OR gate 406 is up and the signal proceed to next level" occurs.
  • the output of AND gate 408 is connected back through OR gate 409 to the input of 408 to lock-in the output of AND gate 408 when it occurs.
  • AND gate 408 is also connected through an inverter 410 to an AND circuit 411.
  • OR gate 406 forms the other input to AND gate 411.
  • the AND gate 411 is energized thus producing an output which set latch 420.
  • the signal reset FFs occurs which resets the latch 420.
  • An AND circuit 412 also provides an input to set the latch 420 in order to read the information out of the memory when this is desired.
  • the output of AND gate 408 forms one input to AND gate 412 and the read level i signal forms another input to AND gate 412.
  • the third input to AND gate 412 is from the spike generator. There will be a spike pulse input to AND gate 412 only when the record which it is desired to read is associated with one of the sources connected to the node N If we assume that the record which it is desired to read is associated with source S there will be a spike input to AND gate 412 from switch 304 and contact 304a, FIG. 3, during read time. This spike passes through AND gate 412 because the other inputs to AND gate 412 are up.
  • the output of AND gate 408 is up because node N is included in the connection from source S and the signal read level i is up during this read time. Therefore, the output of AND gate 412 sets latch 420 through an AC. input to latch 420. The output line of latch 420 is then up and the information contained in the storage location associated with node N is read out. After read out time the reset FFs signal occurs and the latch 420 is reset.
  • Source S is connected through an AND gate 413 to form a second input to OR gate 406.
  • the output of AND gate 413 is designated S indicating that node N is associated with source S
  • the other input to AND gate 413 is a signal indicative of the negation of any signals which would inhibit the use of node N in a connection involving source S
  • the signals S and the signals N set plus N set are applied to an AND gate 414.
  • the signal N set which is indicative of the fact that the node N is not already busy.
  • the output of AND gate 414 is connected through OR gate 415 to the other input to AND gate 413.
  • the output of AND gate 413 is connected back through OR gate 415 to lockin the output of AND gate 413 once it is obtained.
  • the output of AND gate 413 is also connected to an inverter 416 which produces the signal S Similarly, the source S is connected through an AND gate 417 and associated circuitry to form the third input to OR gate 406. Therefore, the node N can be associated with either S S or S
  • the operational sequence for writing a record into the magnetic core memory 206, shown in FIGURE 2 is as follows:
  • the reset FFs line is raised thus resetting all of [he latches such as the latch 420 in node N
  • an available source is selected which is to be associated with the record to be written into the memory.
  • the proceed to next level line is raised. This allows one of the nodes in the first level to be selected in accordance with the availability of the nodes in that level and in accordance with the preferences established for the selection of nodes of that level.
  • the output latch in the node selected is set and the first word of the record is entered into the storage location associated with that node.
  • the reset FFs line is raised thus resetting the latch in the selected node. This process is then repeated for the next word of the record which is to be entered into a storage location. The process continues until all of the words of the record are entered into storage locations in the magnetic core memory.
  • the reset FFs line is raised.
  • the source corresponding to the record to be read out is selected.
  • the read level 1' line is raised.
  • a voltage spike is put on the source line corresponding to the record which is to be read out. This sets the latch for the node of the first level corresponding to the connection which has been established for the record being read.
  • the output line of this node enables the particular storage location associated with this node through the memory address decoder, and that word is read out.
  • the reset FFs line is again raised.
  • the process is repeated with the exception that during the next cycle the read level 1' line is raised.
  • the process continues with each level being raised until the record is completely read out of the several memory locations in which are stored the words which comprise the record.
  • the source is then disconnected if the record is not to be read out again. If the record is to be read out repetitively the source is not disconnected.
  • FIG. 5 A slight modification which makes this possible is shown in FIG. 5 in which like numerals refer to the similar circuitry of FIG. 4.
  • FIG. 5 there is shown how the general node circuit of FIG. 4 is modified to permit the establishment of a unique connection from any source node to any given node, if available, in the network.
  • the modification includes a hold goal" signal which is applied to AND gate 508 through an inverter 509.
  • the hold goal line is activated only until the connection, terminating in this node, is established through intervening available nodes. The actuation of this line permits the node to enter into a connection regardless of whether it may be less preferable than any one or all of the other nodes of its level.
  • the negation of all other hold goal lines for this level are ANDed together to inhibit the establishment of the goal seeking connection to this goal if it is not the goal node regardless of whether it may be preferred to that node in normal establishment of the sequence. That is, the signals N goal and N goal are negated and applied to AND gate 503 to inhibit the establishment of a connection through this goal if it is not the goal node.
  • the goal seeking connection is established just like any other connection in the write sequence already described.
  • the addition to this is that the right hold goal line must be activated at least until the goal is reached, that is, the connection is established. Read out is accomplished in the same manner as described above.
  • connections of this nature could be established one after the other, one at a time.
  • nodes on successive levels can be established into a chain simply by considering each one to be a goal successively until all of the nodes are established in one chain.
  • the line labeled hold goal in FIG. 5 is actuated during the period in which the proceed to next level signal is applied to the nodes of this level to propagate some other connection such that this connection will not also try to propagate itself and thereby interfere with the connections being properly established.
  • FIG. 5 there is also shown a signal labeled make N busy. This represents another modification of the circuit shown in detail in FIG. 4. If both this line and the hold goal line are simultaneously actuated, this node will be made unavailable for its inclusion in a connection through the network. Such a node is termed a busy node.
  • FIG. 6 One circuit which may be used to implement the node logic diagram of FIG. 4 is shown in FIG. 6.
  • the circuit shown in FIG. 6 utilizes A.C. magnetic amplifiers including ferrite cores which are saturated with DC. applied on appropriate windings.
  • the input from source S is an A.C. signal which is applied to a winding 601 on the ferrite device 602.
  • the A.C. input signal will be coupled through to an output winding 603 only if the ferrite device 602 is unsaturated.
  • the ferrite device 602 is driven to saturation if any one of the signals S applied to winding 604, S applied to winding 60S, N,- set, applied to winding 606 or N set applied to Winding 607 is up.
  • the signal S is coupled to the output Winding 603, it is applied through a diode 608 and a resistor 609 to a holding core 610.
  • the A.C. signal S is rectified in the diode-resistor combination 608, 609 and applied to the winding 611 on the holding core in such a manner as to overcome the bias applied to the holding core through bias winding 612.
  • the signal S is coupled from winding 613 through the holding core to the output winding 614. Therefore, once the signal S is coupled through the core 602, it will remain coupled to the output through a holding core 610.
  • the signal S is then connected to a windinw 615 on the output ferrite device 616.
  • the input signal 8;; is similarly coupled through an input core 617 and holding core 618 to the winding 619 on output core 616.
  • the signal from the source S is coupled through input core 620 and holding core 621 to winding 622 on the output core 616.
  • the output core 616 serves as an OR circuit in that a signal on any one of the windings 615, 619 or 621 will be coupled to the output winding 623.
  • the output core serves as an AND device in that there will be an output only if the advance to next level signal applied to winding 624, is present to overcome the saturating bias applied to winding 625.
  • Buflcr-storage device The use of the sequential decision making device of this invention for assigning buffer storage space in a computer system is best explained in conjunction with FIGS. 7, 8a and Sb.
  • the system shown in FIGS. 7, 8a and 8b serves as a butler between several data transmission lines and a digital computer which both receives data from these lines and transmits data out 0 er such lines.
  • messages transmitted over the lines need not be of a definite length.
  • the sequential decision making device of this invention provides the means for allocating the storage space in a single buffer unit.
  • a source 701, designated S and a source 702, designated S are associated with input line I.
  • a source 703, designated S and a source 704 designated S are as sociated with input line N.
  • Each of the sources is of the type previously described. That is, each source can be turned on or turned off. All of the sources are connected to the node array 705 which is of the type previously described. While only input lines I and N have been shown, it will, of course, be understood that any number of input lines could be provided.
  • Each output line is similarly associated with two sources.
  • the output line I is associated with source 796, designated 8 and source 707, designated 5
  • output line N is associated with source 7tl8, designated S and source 709, designated S
  • the sources 706-709 are also connected to the node array 705.
  • Each input line has four possible statuses.
  • the first possible status is that a message is being received.
  • the sources associated with the input line are being used as an identity point for a message presently being accumulated in the buffer from the transmission line.
  • the computer cannot select this source in order to send out a message while it is in this status.
  • the second possible status for an input line the message ready status.
  • the message for Which this source serves as an identity point has been received in full from the transmission line and may be read out by the computer.
  • the computer can scan sources which are in this status whenever it is ready to ingest messages.
  • the third possible status for one of the input lines is the not selected status.
  • the source is not selected and is not serving as an identity point for a message either arriving or which has arrived on it.
  • the fourth possible status for an input line is the message being read status.
  • the source was in the message ready status and has been selected by the computer in order that the message for which it serves as an identity point may be read into the computer for processing.
  • the output lines have four possible statuses.
  • the first possible status for an output line is message being transmitted status.
  • the sources associated with the output line are being used as an identity point for a message presently being transmitted from the buffer onto this transmission line.
  • the computer cannot select this source in order to use it as an identity point for a message which it desires to dispatch onto this transmission line.
  • the second possible status for an output line is the message ready status.
  • the message for which the source serves as an identity point has been received from the computer and is ready for transmission on the line serviced by this source.
  • This status is reached by the inclusion of an end of message character in the message.
  • the end of message character was written into the message by the computer.
  • This is a transient status which proceeds to a message being transmitted status unless acknowledgement by the transmission equipment to a request to transmit signal from the source equipment is required prior to dispatching the message onto the transmission line.
  • the message being written status indicates that the sources associated with a particular transmission line were in the message ready status and now the message for which the source serves as an identity point is being transmitted from the computer to the buffer.
  • the fourth and final status for the output lines is the not selected status.
  • the source associated with particular output line is not selected as an identity point for holding a message to be transmited.
  • FIGS. 8a and 8b there is shown a system for assembling and disassembling messages from an input line 881 and an output line 802.
  • the system of FIGS. 8a and 8b serves as a butter between these input and output lines and a computer 803. It should be understood that various other input and output lines could be handled by this system and the other input lines are shown schematically as input line 804 and output line 805.
  • Input line 801 is connected directly to a one word data register 806.
  • Each word from the input line 881 is transferred from the data register 865 over line 807u 8871) into the butter register 808.
  • the word is transferred from butter register 808 into the magnetic core memory 809. This transfer is accomplished under control of node network 810 which acts through the memory address decoder 811 and the memory address register 7 812 to transfer words of information from the butler register 808 to the magnetic core memory 809.
  • the command to scan for input line service requests is received over line 818 from the buffer cycle priority control circuitry 819.
  • the write cycle request scanner 817 produces a signal indicative of the identification of the requesting input line. This signal is transferred over the line 828 which connccts this identification signal to the buffer cycle priority control circuit 819.
  • the butler cycle priority control 819 then acts through the write cycle control 829 and the timing and driving circuits 821 to gate the input message into the magnetic core memory 809.
  • node network 810 The particular storage locations into which the input mensage is to be gated is controlled by node network 810.
  • the last word in each input message is an end-ofmessage word. This word is sensed by an end-of-message sensor 826.
  • the end-of-message sensor 826 produces an output on line 827 indicating that a message is ready for use by the computer.
  • This and other similar input lines are scanned by an input message ready scanner 828.
  • the input message ready scanner 828 scans all of the inputs under the command of the computer 803 which sends out a command over the line 829 commanding the scanner 828 to scan for messages.
  • the scanner 828 notes a ready message
  • the address of the input line which is transmitting the message is transferred to the line address register 830. Under command of a read line address command over the line 831 to the AND gate 832 the line address is transferred from the line address register 830 over the line 833 to the computer 803.
  • the computer When the computer is ready to ingest one of the messages which has been stored in the magnetic core memory, the computer transfers the input line address over the line 834 to the input line address select circuit 835.
  • This circuitry is connected to a read cycle request scanner 836 which, under control of a command transferred over the line 837, will scan all of the inputs for read cycle requests.
  • the read cycle request scanner notes the request to read a particular message, the requesting line identification is transferred from the read cycle request scanner 836 to the butler cycle priority control 8159.
  • the buffer cycle priority control 819 acts through the read cycle control 837 and the timing and driving circuits 821 to transfer information out of the magnetic core memory.
  • the addresses of the storage locations in the magnetic core memory 809 which are to be read out are determined by the node network 810. If the read cycle request scanner determines that the message ingested over the input line 801 is now to be read out, both inputs to the AND gate 838 are raised.
  • the output of AND gate 838 is connected to sources 814 and 815 and determines that the storage locations in the magnetic core memory 809 which are associated with nodes which are in the connections from sources 814 and 815 will be read out. These storage locations are read out through the buffer register 808 over the data line 839, through the register 840 to the computer 803.
  • the register 840 is included in the data line to provide temporary storage so that there is no delay in the transfer of the data if the message cannot be immediately used.
  • An end-ofmessage sensor 814 is provided to provide an indication to the computer when the complete message has been read out of the magnetic core memory into the computer.
  • the address of the output line is transferred over line 842 to the output line address select circuit 843.
  • the output of this circuit is also connected to the write cycle request scanner 817.
  • the write cycle request scanner 817 Upon scanning all of the inputs, if the write cycle request scanner 817 notes that the computer is ready to write a mes sage into the magnetic core memory for later transfer over output line I, the write cycle request scanner raises the line 844 which forms one input to an AND gate 845.
  • the other input to AND gate 845 is from the output line address select circuit 843. When both of the inputs to AND gate 845 are raised, the output of AND gate 845 energizes the sources 847 and 848.
  • the sources 847 and 848 establish connections through the node network 810 to control and determine the storage locations to which the computer is to transfer data. This transfer of data takes place over the data line 848, through the temporary storage register 849 and the butter register 868 to the magnetic core memory 809.
  • An end-of-message sensor 850 senses the end-of-the-message which is being transferred from the computer to the magnetic core memory.
  • the first word of the message is transferred over the lines 851a and 851)) to the word data register 852 associated with output line I over which the message is to be transmitted.
  • the word data register 852 is connected to the AND gate 853 which when energized produces a read cycle request signal which is connected over line 854 to read cycle request scanner 836.
  • the read cycle request scanner 836 determines that this particular input indicates that a message is ready to be transmitted over output line 1 the read cycle request scanner enables the AND gate 855 the ouput of which is connected back to nodes 847 and 848.
  • the message is transferred under control of the node network from the magnetic core memory, through the buffer register 808, over lines 852a and 85th, through the one word data register 852 and out over output line 802.
  • the end-of-message sensor 856 senses the last word and enables an AND gate 857 which then disconnects sources 847 and 848 from the connection and makes them available for the transmission or reception of another message.
  • Task ordering device The sequential decision making circuitry of this invention used as a task ordering device in a computer is described in conjunction with FIGS. 9-16.
  • the sequential decision making circuitry of this invention can be used in a multi-programrned computer in which several programs proceed independently of each other to carry out the various tasks of each program. That is, each program is written in complete disregard of any other program or programs with which it might have to share the facilities of the computer system.
  • a computer system to which such a system might be applied is shown in FIG. 9.
  • the computer includes a plurality of input-output units, for example, 991 and 902; a plurality of arithmetic and logical units, for example, 993, 904, and 905; and a plurality of memories, for example, 906, 907 and 908. All of these units may be used simultaneously or sequentially to carry out a plurality of computer programs. These units are assigned various tasks in the programs by the sequence and information routing control circuit 909.
  • the sequential decision making circuitry of this invention performs the function of the sequence and information routing control circuit 909.
  • Each independent program is designated a task sequence which includes a number of tasks, A, B, C, etc., which must be performed in a prescribed sequence such as: first task A, then task B, then task C, and so on.
  • Each task might for example, represent a subroutine in the computer. Further, the task could correspond to a particular unit of the computer system such as arithmetic and logical unit 903 in FIG. 9. Then the task sequence would represent the necessary time sequence of operations which must be performed by the computer system in executing the overall program.
  • the system has ten selectable tasks which are designated A, B, C K. It will also be assumed that the system can handle any sequence of these tasks with a maximum length of seven tasks.
  • AK represent ten selectable tasks which can be performed during any one of time intervals I, through r
  • Each of the nodes in FIG. 10 corresponds to a sub-routine stored at a sequence of addresses beginning at the memory address corresponding to this node.
  • Each node in this circuit consists of several subnodes each of which is similar to the circuit shown in FIG. 6. That is, there are several possible paths through a given node point in the array.
  • Each task sequence which employs the task controlled or represented by a particular node is connected to it by means of one of the several submodes which constitute this particular node. For example, in FIG.
  • task sequence I includes the task A at time 1;, the task B at time 1 the task B at time r the task C at time 12; and the task C at time 2 This is the end of task sequence I.
  • Task sequence II includes tasks A, C, D, C, B, C & E in that order.
  • Intranode preferences can be set up such that should two task sequences be connected through the same node point simultaneously the task sequence connected to the sub-node having the greatest connection preference will get control of the function related to that node first. Subsequently, of course, the task sequence having the lesser preference for this node will be able to make its request for services by the task represented by this node.
  • each task sequence Prior to the execution of the task sequences to be performed, each task sequence is set up by linking the connection establishing sub-nodes at each stage in the node array. Thus, for task sequence I the following connection among connection establishment sub-nodes are made. Task A through Task B through Task B through Task C through Task C.
  • the operation of the scquential task ordering device based upon the node networks described previously is as follows: Each task sequence proceeds stage by stage to completion. At completion of the task sequence, the connections through the subnodes are broken unless it is desired to rerun the program corresponding to this task sequence again. Conflicts with other task sequences for computer system facilities at each stage are resolved at each stage where this problem is encountered.
  • a task sequence could be given an absolute first preference, an absolute second pcrferencc or uniform preference, that is first come, first served, with regard to the other task sequences that might be simultaneously contending for the use of a particular task function.
  • the completion of a task at a particular stage will cause a start function signal at the node of the next stage which is a member of this task sequence. This start function signal will cause this task to be performed provided that there are no simultaneous requests for this task by other sequencies to which a higher preference has been given.
  • the sequential task ordering device and the computer in general may be controlled by a master control program.
  • the function completed signals for each task cause a node in another array called the control scanner to be activated.
  • the control scanner is shown diagrammatically in FIG. 11.
  • FIG. 11 shows the broad concepts of the control scanner which is shown in more detail in FIGURES 12 and 13.
  • the control scanner consists of two basic parts, a service request array and a control array.
  • a function completed signal for a given task is turned on, regardless of which sequence or what stage this function is a part, the corresponding node in the service request array is turned on.
  • the particular node, of the eleven possible in this example, which is turned on is that node which comes at the time level next in sequence. For example, if six nodes had already been turned on, then if a task B gave a function completed signal the node at position B-Tq would be turned on or activated.
  • the computer When the computer is ready for a master control cycle, that is, it is ready to set up a sequence of tasks it must perform, it gates the first eight of the eleven positions of the service request array into the control array.
  • the number of stages, eight in this example, in the control array is made equal to the number of jobs the computer must have lined up to perform at any one time.
  • the activated nodes in the control array shown in FIG. 11]) are linked together electrically in the manner described in conjunction with FIG. 5. That is, each activated node is made a goal successively until all eight of the activated nodes are linked together. A node corresponding to a particular task to be performed would be selected as a goal. A connection would be established to this goal in the manner described above. The nodes forming this connection would correspond to the intermediate tasks which must be performed prior to the designated task. Each of these nodes could likewise correspond to a program in a computers memory which must be performed before the goal or task program is executed.
  • nodes corresponding to programs which are not to precede the attainment of this goal are made busy as described above.
  • the remaining available nodes would therefore correspond to possible intermediate tasks in the possible alternate paths available to achieve this desired goal.
  • certain nodes which are suitable for inclusion in a connection to this goal node may be busy due to their inclusion in a previously established connection. This could be symbolic of either a particular programs being in use or a particular device, such as an arithmetic unit, or input/output unit being operated in connection with another task sequence.
  • the various levels in the node network correspond to the precedence relations existent among the several nodes. For example, any task level i will be executed prior to any task in level 1'.
  • FIGS. 12 and 13 A program control system utilizing the sequential task ordering techniques of this invention is shown in FIGS. 12 and 13.
  • the system includes a program array 1201, program sources nodes 12021205, a program task sequence setup register 1206, a service request array and control array formed into one three dimensional array 1301, and various function controls 1302-1311.
  • the program control system also includes the control circuitry necessary to operate this equipment.
  • stage 1207 indicates that the Task A is to be performed at this level.
  • Section 1207a indicates that this task is to be given first preference at this stage.
  • stage 1208 indicates tht task B is to be performed at this stage while section 1208a indicates that this task is to be given second preference.
  • one of the program source nodes 12021205 which will serve to identify this task sequence is put into the select mode of operation.
  • FIGS. 14 and 15 Program army
  • the program array 1201 contains one node corre sponding to each selectable task at each stage of the array.
  • the details of the program array are shown in FIGS. 14 and 15.
  • Each node of the program array is subdivided into a number of sub-nodes, there being one sub-node for each preference level.
  • FIGS. 14 and 15 it is assumed that there are two levels of preference and hence two sub-nodes for each node.
  • FIG. 14 there are two nodes corresponding to task sequence A and task sequence B at level 1
  • a typical first preference sub-node and a portion of a second preference sub-node of the program array is shown in FIGS. 14 and 15.
  • FIG. 14 and 15 A typical first preference sub-node and a portion of a second preference sub-node of the program array is shown in FIGS. 14 and 15.
  • a select core 1401 and a hold core 1402 are provided for the source S input to the sub-node and a select core 1403 and a hold core 1404 are provided for the source S input to the suhnode. It will be understood, of course, that as many pairs of select and hold cores as there are sources requiring the use of this sub-node will be provided.
  • a first preference core 1501 is provided and produces an output which connects the subnode in the particular task sequence given first preference.
  • a second preferance core 1502 is provided and connects the sub-node in the task sequence given second preference. If the system is to be provided with more than two preference levels then additional preference cores should be provided.
  • the output lines from the sub-node are ORd together into a request core 1503. Request for service from second preference, and lower preference, sub-nodes will not be permitted to operate the request core until the request of the first preference, and all order of preferences greater than the given one, have been satisfied.
  • the task sequence is loaded from the program setup register 1206 into the program array 1201 as follows.
  • the sections of the program setup register 1206 which designate the task to be performed energize the corresponding task select line. For example, assuming that the sub-node shown in FIGS. 14 and 15 is associated with task A, then stage 1207 of the program setup register 1206 energizes the line 1405 designated task A select.
  • the program setup register stage which designates the preference of the task at this stage energizes the corresponding preference sub-node select line.
  • the section 1207a holds a first preference and this section of the stage energizes the line 1406 designated first preferance sub-node select.
  • Energization of a task select and a preference select line for a particular select core causes the corresponding hold core to pass the A.C. hold voltage from the given program source node to the output. For example, if lines 1405 and 1406 are energized, the A.C. voltage from the particular source node, that is, either from source S over input line 1407 or from source S over input line 1408, will pass through the select core to the hold core. Therefore, if source S is associated with the particular task sequence which is being set up the A.C. hold voltage will pass from input line 1407 to the select core 1401. The A.C. hold voltage will be coupled from the winding line 1409 to output winding 1410 because of the A.C.
  • the A.C. hold voltage from output winding 1410 is rectified by diode 1411 and applies an unblocking bias to hold core 1402 thus taking the hold core 1402 out of saturation. Because of this, the hold voltage from input 1407 is coupled from input winding 1412 to output winding 1413 and this coupling continues even though the D.C. voltages are removed from input windings 1405 and 1406. That is,

Description

Dec. 28, 1965 J. E. GAFFNEY, JR
SEQUENTIAL DECISION MAKING DEVICE 12 Sheets-Sheet 1 Filed Oct. 19. 1960 DECODER MEMORY ADDRESS NODE NETWORK MAGNETIC CORE MEMORY WORD OUTPUT OF RECORD BEING READ WORD INPUT OF RECORD BEING WRITTEN SOURC I AE 06mm TIII HR ME 6 NODE NETWORK CONTROL ZIO READ
WRITE RECORD ADDRESS mmvron.
JOHN E. GAFFNEY, Jr. m
JA TTOR N5 14 FIG.2
1965 J. E. GAFFNEY, JR 3,225,683
SEQUENTIAL DECISION MAKING DEVICE Filed Oct. 19. 1960 12 Sheets-Sheet 2 NODE OUTPUT LINES TO MEMORY ADDRESS DECODER i 3 m I IH" 0 mm a? I H. w (n O Q O 2 Dec. 28, 1965 J. E. GAFFNEY, JR
SEQUENTIAL DECISION MAKING DEVICE Filed Oct. 19. 1960 12 Sheets-Sheet 3 s 40. 402 FIG.4
A 8| SAY s52 409 408 OUTPUT TO l a OR 405 5x 53 OR NEXTLEVEL (Niy set Niz set) L I x L Nix set 0R 5 I- 57' T B a 407 L AY SAZ 4|4 415 (4B 5 LE: 8 0R (Nly sel NIZ set) 4'5 E 5 4|? E 5 s" m C a BX 8 x x SAY A2 Q l L T I Hi 0R (Nly set +N|z set) F I NODE OUTPUT LINE k I REAQ |E\ 1 i I REsgT 4:0 FFS NODE Nix H6 5 s 502 MAKE Nix BUSY 509 A a I HOLD GOAL A Y 51 503 504 SEX 506 508 a 8 OR a OUTPUT T0 (Niy set -51 set} NEXT LEVEL Dec. 28, 1965 J. E. GAFFNEY, JR 3,226,683
SEQUENTIAL DECISION MAKING DEVICE Filed 001.. 19, 1960 12 Sheets-Sheet 4 ADVANCE TO NEXT LEVEL INDICATOR TURN ON LEVEL i SC INDICATOR 0%; node w'ndin s say at x 8 wa e node wmamgs 1 x Niz sel C)( other nofle winflings 1.
l l-il NODE FIG?! ARRAY Dec. 28, 1965 Filed Oct. 19. 1960 J. E. GAFFNEY, JR
SEQUENTIAL DECISION MAKING DEVICE 12 Sheet s-Sheet 5 F|G.8u
F none 1-1 7 8M] I 8l0 8N\ 8l2 M ODE mzuomr MEMORY MESSAGE BEING READ! ADDRESS ADDRESS I L 1 A memo DECODER REGISTER MESSAGEbemqRECEIVE SHB IJAKEMITECYCLE r L NODE NOD L READ I I usrw nx WRITE CONTROL 1 i r "1 1 -i0A ,mooc 1-0 LMESSAGEbemqTRANSMITTED 848' k i L 847 I m3 824 l s g J I LIAISEMLRITE CYCLE A A L l 1 846 NODE 823 04-0 3 s22 1 gmpnffiobirmam INPUT lwono LINE 1 DATA REGISTEn E WORD READY I 827 SUI Mom ENDofHESSAG:
1o BUFFER SENSOR 'READY I REGISTER L J u 4 828 3 g 830 I PUT WORD INPUT NOD52 2; LINE ADDRESS LINE N am REGISTER LOGIC REGISTER I To EFQTER 5 s32 83| 1:1 2 OUTPUT I I I 0 i LINE I DATA REGISTE 1852 g comm.
s02 Lssm I 9 FROM BUFFER REG'STER cHARAc'TER TRANSMITTEII' a {READ CYCLE REQUEST j L MESSAGE REA Y i 54 OJTPUT I LINE N DATAREGISTER FROM BUFFER REGISTER Dec. 28, 1965 J. E. GAFF NEY, JR
Filed Oct. 19, 1960 12 Sheets-Sheet 6 iROM iNPUT LINE DATA REGISTERS 8 b I 19 OUTPUT LINE DATA REGiSTERS 307i, 808 l:: 839 B520 84') MAGNET BUFFER ENDofMESSAGE CORE SENSOR MEMORY Jane REGISTER e40 1 & g EOM T 819 L 837 A B READ CYCLE CONTROL DATA s20 WRITE CYCLE CONTROL A 6 J49 Re uestin Lmeldenflflcotion mom curglgorRequesis I DATA "/83? g 838 B48 WRITE CYCLE READ CYCLE & END ofMESSAGE flflequesi Scanner Request Scanner SENSOR 850 I La 50M 5 v 822 844 Model-I OUTPUT LINE WRITE odeZ-I ADDRESS SELECT 842 o Node N-I & Q I 845J 8555] INPUT LINE READ ADDRESS ssuacr 835 READ LINE ADDRESfi f LINE ADDRESS i SCAN FOR INPUT MESSAGE 4 83i ao3/ FIGBC 3 8b Dec. 28, 1965 J. E. GAFFNEY, JR 3,225,533
SEQUENTIAL DECISION MAKING DEVICE Filed Oct. 19. 1960 12 Sheets-Sheet 8 PROGRAM ARRAY l20| PROGRAM CONTROL DATA ENTER STAGE SELECT DRIVE SHIFT REGISTER FIG.|2
1965 J. E. GAFFNEY, JR 3,226,683
SEQUENTIAL DECISION MAKING DEVICE Filed Oct. 19. 1960 12 Sheets-Sheet 1O STAGE t, STAGE 1, INPUT BUSES OUTPUT BUSES S INPUT S INPUT S OUTPUT S OUTPUT I40 Inhibit TASK A-fi COMPLETED STAGE SELECT 8| is! NODE SELECT Dec. 28, 1965 J. E. GAFFNEY, JR 3,226,683
SEQUENTIAL DECISION MAKING DEVICE Filed Oct. 19. 1960 12 Sheets-Sheet 11 l505/ START FUNCTION A-h L REQUEST 1 PREF.
1502} SA 2'! 5 L PREF INHIBIT PROCEED CLAMPS OF THE 2nd PREFERENCE SUBNODE TASK A-T COMPLETED 4 75 kg? I STAGE n SELECT i'l' 2nd PREFERENCE i NODE SELECTED f f Dec. 28, 1965 J. E. GAFFNEY, JR 3,226,633
SEQUENTIAL DECISION MAKING DEVICE Filed Oct. 19, 1960 12 Sheets-Sheet 12 A T3 I606 I605 R L JXECUTE T3 1 NWT EXECUTE T2 1 lag,
as: |6l3 60' TI EXECUTE FUNCTION A of TI ,TO NOdEAT To d 6'4 A-T |6l8 START FUNCTION 2 EART FUNCTION \A-I A-T s 2 ISIS) E E T START FUNCTION A l IBIO/ i START FUNCTION 1 START FUNCTION A4 REQUEST A42 REQUEST FIG. l6
United States Patent 0 3,226,683 SEQUENTIAL DECISIGN MAKING DEVICE John E. Gaii'ney, Jr., Briarciiif Manor, N.Y., assignor to International Business Machines Corporation, New York, N.Y., a corporation of New York Filed Oct. 19, 1960, Ser. No. 63,631 15 Claims. (Cl. 340-1725) This invention relates to logic circuits and more particularly to a sequential decision making logic circuit.
In many computer applications it is necessary to produce a plurality of control voltages for controlling the operation of the computer. These control signals must be produced in a certain sequence and the sequence must be reproducible.
As an example, a magnetic core memory addressing circuit must produce a plurality of control voltages for gating the various words of a particular record into particular storage locations in the memory. The sequence of these control voltages must be reproduced when it is desired to read the record out of the memory so that all words of the record are read out in the correct sequence. Further, the addressing circuit must tabulate available storage locations in the computer memory so that a record which is to be written into the memory is gated to an available storage location. The problem of tabulating available storage locations in a computer memory and assigning addresses in such a manner that a prescribed distribution of data in the memory unit is assured has long been recognized as an important one.
In a particular system it may be desirable that data of a given category be stored in a prescribed segment of the memory and in another system it may be desirable that all data be distributed uniformly throughout the memory since all data is of a given category. In such a case, all of the data should not be concentrated in clusters about particular addresses. Normally, the operation of a memory unit is so programmed that a tabulation of available storage locations is maintained and there is a prescribed set of rules which is applied in choosing a particular storage location from the list of available ones. In such an arrangement, storage space is wasted in maintaining the tabulation of available storage locations. It would be desirable for the memory unit to accept a piece of data and file it without having the particular storage designation assigned by either the programmer or by a compiler routine. Such a memory unit would be structured so that it could be given some choice in finding a storage location. In such a unit addresses or storage locations would be assigned to a sequence of inputs by means of a sequence of choices where one choice is assigned to each word of the input.
Another application in which control signals must be produced in a certain sequence is the operation of a butler storage unit which operates between several data transmission lines and a digital computer which both receives data from these lines and transmits data out of the computer on the lines. Many prior art digital computers have operated on the fixed word length principle so that a butler storage unit having a definite number of storage locations is provided between each transmission line and the digital computer. However, many digital computers now operate on a variable word length technique so that it is not desirable to provide a bulTer storage unit of a definite number of storage locations between each transmission line and the digital computer. If this were done, a great number of storage locations would be wasted since each butler unit would have to have as many storage locations as the maximum number of words possible in each record. Under these circumstances, it is desirable to provide a single bufier unit between all of ice the data transmission lines and the digital computer and to assign storage space in the butter in a manner such that the buffer can service all of the lines.
Another computer application in which a number of specific sequences of control voltages are required is in programming the tasks which are to be performed by a digital computer. Many digital computers now have a large number of units connected in the system. For example, a digital computer may have several input'output units, several memory units and several arithmetic and logical units. Many times it is not necessary to utilize all of these units in carrying out a particular program. Under such circumstances it may be possible to simultaneously perform several programs it a control device can be provided to sequence the tasks which are to be performed by the computer. Such a control device must be capable of determining which units are available for performing a given task and must be capable of establishing preferences in performing particular tasks between the various programs.
Accordingly, it is an object of the present invention to provide a sequential decision-making device for controlling the operation of a digital computer.
It is another object of the present invention to provide a node network in which connections can be made between various nodes so that the nodes sequentially control the operation of a digital computer.
It is another object of the present invention to provide a memory addressing circuit which gates input words to available memory storage locations without maintaining a tabulation of available storage locations.
It is another object of the present invention to provide an improved memory address circuit in which extra storage space need not be used for the tabulation of available storage locations.
It is a further object of the present invention to provide a control system for a butler storage unit so that a single buffer storage unit can be used between a plurality of data transmission lines and a digital computer.
It is a further object of the present invention to provide an improved bulfer storage unit for variable word length computer systems.
It is a further object of the present invention to provide a sequential task-ordering device for use with a digital computer having a number of operating units capable of performing certain tasks.
It is a still further object of the present invention to provide a sequential task ordering device which controls the operation of a digital computer so that several programs can be carried on simultaneously in the computer.
These and further objects and advantages of the present invention will become more apparent from the following description and appended claims taken in conjunction with the drawings in which:
FIGURE 1 is the diagrammatic showing of a node network used for addressing a memory;
FIGURE 2 is a block diagram of a memory addressing system;
FIGURE 3 is a block diagram of two levels of the node network;
FIGURE 4 is a logic diagram of a single node in the node network;
FIGURE 5 is a logic diagram of a modification of the node network;
FIGURE 6 is a circuit diagram of one embodiment of the single node;
FIGURE 7 is a diagrammatic representation of a buffer storage unit for a digital computer;
FIGURE 8a is a portion of a block diagram of a butler storage system;
FIGURE 8!] is another portion of the block diagram of a butler storage system;
FIGURE 80 shows the manner in which FIGURES 8a and 8b fit together;
FIGURE 9 is a diagrammatic representation of a sequential task-ordering device for a digital computer;
FIGURE 10 shows task sequences for a digital computer;
FIGURE 1 la shows a service request array for a digital computer;
FIGURE llb shows a control array for a digital computer;
FIGURE 12 shows a block diagram of the program array;
FIGURE 13 shows a block diagram of the service request-control array;
FIGURE 14 shows a circuit diagram of a sample subnode in the program array;
FIGURE 15 shows a circuit diagram of another portion of the program array; and
FIGURE 16 is a circuit diagram of the service request-control array.
In accordance with one embodiment of the invention a self-addressing memory is provided which completely relieves the programmer of the sometimes arduous task of maintaining tables of available and unavailable memory locations. With this device, provided sufiicient space remains in the memory to accommodate a given record, this record can be written into the memory without specification of the particular locations into which it is to be written. The only address associated with this record is an identification number or other name by which it can be referred to subsequently.
By means of this device, certain areas of memory can be given greater preference for selection as storage space than other areas for a given record or class of records. This feature could be used to facilitate a clustering of selected addresses. around a given address according to a prescribed probability distribution function such as a normal or a uniform distribution. Further, when used with the general store of a computer, certain areas of this general store could be allocated for particular uses, such as [/0 area, intermediate results area, etc. Although a particular area would normally be bounded, in the case of maximum demand for space in this area, addresses in other areas would be selected by the address ing device. That is, there is probability that a given address distribution might extend into other areas. For example, if a uniform distribution on a certain group of address were assumed, this distribution might extend into other areas. These areas correspond physically to the tails of the distribution curve. Therefore, if there were an excess demand for space in this area, locations in other areas would be sought until the entire record to be stored was actually stored.
The self-addressing memory consists of two units, the store which could be a conventional core memory, and an address control unit. This invention is directed particularly toward this address control unit. The functions of these two units can be incorporated into one physical unit of equipment.
The address control unit is a two-dimensional array of nodes, certain ones of which can be electrically linked together to form a chain. Each node of the address control unit corresponds to either one or a block of words in the memory. Corresponding to every record stored in the memory, there exists one such chain of nodes, one node for each one, or a block of, words in the record. Upon writing, or entering, the record into the memory, a connection is propagated among the nodes, one after the other, until all of the record has been entered into storage. This connection is propagated from an initiating node according to the preference selection roles built into the array. This record is identified, for the purposes of later readout, by the particular initiating node, or source, with which it is associated. The address or name" of this source is the sole identification required for the entire record. An actual electrical linkage among the nodes forming the chain for any given record is maintained throughout the lifetime of this record in the storage device. This linkage can be disrupted or destroyed upon a signal from the control circuitry associated with the address control unit.
In accordance with other embodiments of the invention, a similar array of nodes is used to control a buffer storage unit for a digital computer and an array of nodes is used to control the performance of tasks by particular units of a digital computer.
Referring to FIG. 1 there is shown a diagrammatic representation of a node network. Such a node network is made up of a plurality of sources, sources 13 being shown, and a number of individual nodes, nodes 442 being shown.
Each record which is to be stored in the memory is associated with a particular source, for example, source 1, designated S A sequential connection is then established between a number of nodes, one node being energized for each word in the record, or one node being energized for each group of words in the record. Each node is associated with a particular storage location in the memory unit and cnergization of that node allows a particular word to be entered into that particular storage location.
The various nodes are divided into levels. The first level, designated 1', comprises node 4, N node 5, N and node 6, N Similarly, the second level, designated j, includes nodes 7, 8 and 9 and the third level, designated level k, includes nodes 10, 11 and 12.
A path or connection through an array of this nature might be established as follows:
( ia? 3 kx That is, the connection is established through nodes N N 6K3.
It is necessary that a preference be established for the nodes at each level. That is, a preference must be established for each node at that level with respect to every other node at that level. An example of this is:
( i iz ix This means that, when establishing a connection through the node array, at level i, N is preferred to N and N is preferred to N in establishing a connection. Hence, in establishing a connection, N will be used if it is not busy"; i.e., already part of another connection previously established.
In the array as described above, connections of maximum length m can be established. This array could provide connections or chains of nodes in excess of m in length simply by switching back through the nodal network. A typical chain of this sort would be:
(3) N N N N N Self-addressing memory A system including a node array which generates the sequence of addresses required for the storage of the words of a record is shown in FIG. 2. In such a system a source node is picked for each record. The address of this source corresponds to a record address for this record and remains in that association throughout the lifetime of the storage of this record in the storage device. In order to select a particular source to be associated with a particular record, the record address is connected to the source control network 201 which in turn picks one of a plurality of sources 202. An exclusive connection is then established through a number of nodes in the node network 203, one node being energized for each word of the record read into the memory. The outputs of each of the nodes are connected through a converter 204 to the memory address decoder 205. The converter 204 merely converts the energization of a particular node output into a code which can be accepted by the memory address decoder to allow the entering of a particular word into a particular storage location in a magnetic core memory 206.
The connections through the node network 203 are established synchronously so that the connection is allowed to proceed to the next level only after the newly selected node is gated to the memory address decoder 205 where the proper memory address is selected and the corresponding word of the record is read into the magnetic core memory 206 over an input 207. The electrical connection through the node network remains so long as the record remains stored in the magnetic core memory. When the source is turned oif, the connection is broken and the nodes employed in the connection are, therefore, made idle. Thus, they are available for inclusion in other connections corresponding to the storage of other records.
Determining the addresses of the words comprising a record which is to be read out of storage is very similar to the process for developing the addresses described above. The words are read out of the magnetic core memory 206 over an output line 208 as the node network 203 generates the plurality of readout signals, each corresponding to one of the nodes in the connection associated with the particular record to be read out.
The node network 203 is under control of a node network control circuit 209 which produces the signals necessary to write the record into or read the record out of the magnetic core memory. The node network control circuit 209 is under control of a write signal applied over the input 210 or a read signal applied over the input 211. When the node network control circuit 209 is under control of a read signal applied over the input 211, the network control signal will sequentially produce a plurality of control signals designated read level 1', read level k read level m and so on. These sequential signals are applied through read control circuit 212 to the node network 203. Simultaneously, with the occurrence of each read level" signal, a spike generator 213 produces a read spike which is applied through one of the sources 202 which is associated with the record being read to the node network 203. Thus, when the first level of the node network 203 is being read, the signal read level i is energized and simultaneously a read spike is connected through the particular source 202 associated with the record being read to the node network 203. The simultaneous application of these two signals to the first level in the node network energizes a particular node in the first level and this node, acting through converter 204 and memory address decoder 205 permits a word to be read from the particular storage location in the magnetic core memory 206 or over the output line 208. The operation then proceeds with the occurrence of the read level 1' signal and the occurrence of another readout spike from spike generator 213. This causes the next level of the node network to be energized and another word to be read out of magnetic core memory 206.
The node network 203 is shown in more detail in FIG 3 which shows two levels of the node network, each of which includes three nodes. The first level, designated level 1', includes a node 301, designated N node 302, designated N and node 303, designated N The sources are shown diagrammatically in FIG. 3 as being three position switches. For example, the source S includes a switch 304 which can be set to a position 304a, 304b, or 3040. When the switch 304 is positioned on the contact 304a, as shown in FIGURE 3, a voltage V is applied to the various nodes in the first level and this voltage maintains any connection which has been established through source S to one of the nodes in the first level. When the switch 304 is in the position 304b, the nodes associated with that source are in the open condition through these nodes. When the switch is in the position 304e, a read spike from the generator 305 is applied to the nodes at the various levels associated with sources 8,, and the nodes associated with this source are read.
Similarly, source S is shown diagrammatically as including the switch 306 and source s is shown as including the switch 307. It should, of course, be understood that the switches shown could be replaced by electronic components for performing the switching functions of the sources.
In order to establish a preference for the selection of a particular node in a level relative to the other nodes in that level in a given sequence of nodes at several levels, each node is interconnected with the other nodes in that level. In the embodment shown, it is assumed that node 302, N is preferred to node 303, N which is, in turn, preferred to node 301 N Therefore, three outputs from node 302, designated S S 7, and S are connected through lines 308, 309, and 310 to the other nodes in level i. The negation of these three outputs will inhibit the selection of nodes 301 and 303 in a connection unless node 302 is already in use, that is, it is busy. Similarly, nodes 301 and 303 are interconnected with each other and with node 302 to completely establish an order of preference in the establishment of connections through level 1'.
Three control signals are also applied to the nodes of level i. The first of these control signals, designated proceed to next level is applied to nodes 301, 302 and 303 over the line 311. This signal occurs cyclically and controls the advancement of a connection through the various levels of the node network. The signal advances the connection through level i to the next level. A second control signal read level i is applied to all of the nodes in level i when it is decided to read information out of the memory. This signal is applied over the line 312 to all of the nodes in level i. A third signal, designated reset FFs" is applied over a line 313 to all of the nodes in level i and resets output flip-flops in these nodes after the nodes have been used in any cycle for reading information from the memory.
Each node has an output, the one from node 301 being over the line 314. The line 314 is connected through converter 204 to the memory address decoder and indicates the storage location into which information is to read or from which information is to be read. Similarly, the output from node 302 is over line 315 and the output from node 303 is over line 316.
The outputs from each of the nodes in level i are also connected to the various nodes in the next level, designated level j. Level j includes the nodes 317, 318 and 319. The nodes of this level are interconnected in the same way that the nodes of level i are interconnected and the same control signals are applied to the nodes of level y.
Referring to FIG. 4, there is shown a logic diagram of a single node which may be employed in the node network array. This node corresponds to the node N previously described. When the source S is energized, the line 401 is raised thus enabling AND gate 402. The other input to AND gate 402 is a signal indicative of the negation of all signals which might inhibit the connection of node N in a connection. In order to form such a signal, the signals and S are applied to an AND gate 403. These signals are indicative of the fact that source S has not previously been connected to either node N or N In either case, it would not be desirable to put node N in a connection with source S Also, the signals N set plus N set are applied to AND gate 403. These signals indicate that nodes N and N are already set. Therefore, since the other nodes in level i are already set it is desirable to use node N in a connection. If either of these nodes, N or N were not set, N would not be used in a connection since both N and N are preferable to N in making a connection. The output of AND gate 403 is connected through OR gate 404 to the other input of AND gate 7 402. When all of the conditions for establishing node N as a node in a particular connection are established, the output of AND gate 402 is up. The output of AND gate 402 is designated S This signal is inverted in inverter 405 which forms the signal S and this signal is connected to other nodes in level i to indicate that S is connected to N The output of AND gate 402 is also connected back through OR circuit 404 to the input of AND gate 402 so that once the signal S is established it is locked-in through OR gate 404. The combination and AND gate 402 and OR gate 404 is termed a latch.
The signal S is one of several inputs to an OR circuit 406 the output of which is used to set a latch 420 to indicate that the node N is energized or used in a connection. When the latch 420 is set, the memory storage location associated with the node output line taken from the latch 420 can be read to or written from. The output from OR gate 406 is also inverted in an inverter 407 to produce the signal N set. This signal is applied to AND gate 403 and other AND gates in the node N to prevent N from being used in connection when it is already in use or busy. The output of OR circuit 406 is connected through an AND circuit 408 to form the output to the next level. AND gate 408 is energized only when the output of OR gate 406 is up and the signal proceed to next level" occurs. The output of AND gate 408 is connected back through OR gate 409 to the input of 408 to lock-in the output of AND gate 408 when it occurs.
The output of AND gate 408 is also connected through an inverter 410 to an AND circuit 411. The output of OR gate 406 forms the other input to AND gate 411. Between the time that OR gate 406 produces an output indicating the node N is to be included in a connection and the time at which the output to the proceed to next level signal occurs, the AND gate 411 is energized thus producing an output which set latch 420. After the occurrence of the proceed to next level signal, the signal reset FFs" occurs which resets the latch 420.
An AND circuit 412 also provides an input to set the latch 420 in order to read the information out of the memory when this is desired. The output of AND gate 408 forms one input to AND gate 412 and the read level i signal forms another input to AND gate 412. The third input to AND gate 412 is from the spike generator. There will be a spike pulse input to AND gate 412 only when the record which it is desired to read is associated with one of the sources connected to the node N If we assume that the record which it is desired to read is associated with source S there will be a spike input to AND gate 412 from switch 304 and contact 304a, FIG. 3, during read time. This spike passes through AND gate 412 because the other inputs to AND gate 412 are up. That is, the output of AND gate 408 is up because node N is included in the connection from source S and the signal read level i is up during this read time. Therefore, the output of AND gate 412 sets latch 420 through an AC. input to latch 420. The output line of latch 420 is then up and the information contained in the storage location associated with node N is read out. After read out time the reset FFs signal occurs and the latch 420 is reset.
Two other sources, S and s are also connected to node N Source S is connected through an AND gate 413 to form a second input to OR gate 406. The output of AND gate 413 is designated S indicating that node N is associated with source S The other input to AND gate 413 is a signal indicative of the negation of any signals which would inhibit the use of node N in a connection involving source S In order to form such a signal, the signals S and the signals N set plus N set are applied to an AND gate 414. Also applied to this AND gate is the signal N set which is indicative of the fact that the node N is not already busy. The output of AND gate 414 is connected through OR gate 415 to the other input to AND gate 413. The output of AND gate 413 is connected back through OR gate 415 to lockin the output of AND gate 413 once it is obtained. The output of AND gate 413 is also connected to an inverter 416 which produces the signal S Similarly, the source S is connected through an AND gate 417 and associated circuitry to form the third input to OR gate 406. Therefore, the node N can be associated with either S S or S The operational sequence for writing a record into the magnetic core memory 206, shown in FIGURE 2 is as follows:
First, the reset FFs line is raised thus resetting all of [he latches such as the latch 420 in node N Next, an available source is selected which is to be associated with the record to be written into the memory. Next, the proceed to next level line is raised. This allows one of the nodes in the first level to be selected in accordance with the availability of the nodes in that level and in accordance with the preferences established for the selection of nodes of that level. Upon the occurrence of the proceed to next level signal, the output latch in the node selected is set and the first word of the record is entered into the storage location associated with that node. Next, the reset FFs line is raised thus resetting the latch in the selected node. This process is then repeated for the next word of the record which is to be entered into a storage location. The process continues until all of the words of the record are entered into storage locations in the magnetic core memory.
The operational sequence for reading a record out of the magnetic core memory is as follows:
First, the reset FFs line is raised. Next, the source corresponding to the record to be read out is selected. Next, the read level 1' line is raised. Next, a voltage spike is put on the source line corresponding to the record which is to be read out. This sets the latch for the node of the first level corresponding to the connection which has been established for the record being read The output line of this node enables the particular storage location associated with this node through the memory address decoder, and that word is read out. The reset FFs line is again raised. The process is repeated with the exception that during the next cycle the read level 1' line is raised. The process continues with each level being raised until the record is completely read out of the several memory locations in which are stored the words which comprise the record. The source is then disconnected if the record is not to be read out again. If the record is to be read out repetitively the source is not disconnected.
Under certain circumstances it is desirable to include a particular node in a connection regardless of the preferences existing among the various nodes of that level. A slight modification which makes this possible is shown in FIG. 5 in which like numerals refer to the similar circuitry of FIG. 4.
Referring to HO. 5 there is shown how the general node circuit of FIG. 4 is modified to permit the establishment of a unique connection from any source node to any given node, if available, in the network. The modification includes a hold goal" signal which is applied to AND gate 508 through an inverter 509. The hold goal line is activated only until the connection, terminating in this node, is established through intervening available nodes. The actuation of this line permits the node to enter into a connection regardless of whether it may be less preferable than any one or all of the other nodes of its level. The negation of all other hold goal lines for this level are ANDed together to inhibit the establishment of the goal seeking connection to this goal if it is not the goal node regardless of whether it may be preferred to that node in normal establishment of the sequence. That is, the signals N goal and N goal are negated and applied to AND gate 503 to inhibit the establishment of a connection through this goal if it is not the goal node.
The goal seeking connection is established just like any other connection in the write sequence already described. The addition to this is that the right hold goal line must be activated at least until the goal is reached, that is, the connection is established. Read out is accomplished in the same manner as described above.
Several connections of this nature could be established one after the other, one at a time. Thereby, nodes on successive levels can be established into a chain simply by considering each one to be a goal successively until all of the nodes are established in one chain. The line labeled hold goal in FIG. 5 is actuated during the period in which the proceed to next level signal is applied to the nodes of this level to propagate some other connection such that this connection will not also try to propagate itself and thereby interfere with the connections being properly established.
In FIG. 5 there is also shown a signal labeled make N busy. This represents another modification of the circuit shown in detail in FIG. 4. If both this line and the hold goal line are simultaneously actuated, this node will be made unavailable for its inclusion in a connection through the network. Such a node is termed a busy node.
One circuit which may be used to implement the node logic diagram of FIG. 4 is shown in FIG. 6. The circuit shown in FIG. 6 utilizes A.C. magnetic amplifiers including ferrite cores which are saturated with DC. applied on appropriate windings. The input from source S is an A.C. signal which is applied to a winding 601 on the ferrite device 602. The A.C. input signal will be coupled through to an output winding 603 only if the ferrite device 602 is unsaturated. The ferrite device 602 is driven to saturation if any one of the signals S applied to winding 604, S applied to winding 60S, N,- set, applied to winding 606 or N set applied to Winding 607 is up. Once the signal S is coupled to the output Winding 603, it is applied through a diode 608 and a resistor 609 to a holding core 610. The A.C. signal S is rectified in the diode- resistor combination 608, 609 and applied to the winding 611 on the holding core in such a manner as to overcome the bias applied to the holding core through bias winding 612. When this occurs the signal S is coupled from winding 613 through the holding core to the output winding 614. Therefore, once the signal S is coupled through the core 602, it will remain coupled to the output through a holding core 610. The signal S is then connected to a windinw 615 on the output ferrite device 616.
The input signal 8;; is similarly coupled through an input core 617 and holding core 618 to the winding 619 on output core 616. Similarly, the signal from the source S is coupled through input core 620 and holding core 621 to winding 622 on the output core 616. The output core 616 serves as an OR circuit in that a signal on any one of the windings 615, 619 or 621 will be coupled to the output winding 623. The output core serves as an AND device in that there will be an output only if the advance to next level signal applied to winding 624, is present to overcome the saturating bias applied to winding 625. When an output is produced on the winding 623 it is rectified in the diode 626 and resistor 627 and applied to the holding winding 628 so as to hold the output core 616 in the unsaturated condition. The output is also connected to a winding 629 on the indicator core 630. When the output signal is present the signal winding 629 overcomes the saturating bias applied to winding 631 so that the indicator core 630 can couple a turn out signal from winding 632 through to winding 633 which will in turn energize the indicator 634. The output is 10 also connected through winding 629 to biasing windings 635, 636, and 637. When the node is energized, the rectified output signal applied to windings 635637 saturate the ferrite devices 602, 617 and 620 to prevent other sources from energizing the node.
Buflcr-storage device The use of the sequential decision making device of this invention for assigning buffer storage space in a computer system is best explained in conjunction with FIGS. 7, 8a and Sb. The system shown in FIGS. 7, 8a and 8b serves as a butler between several data transmission lines and a digital computer which both receives data from these lines and transmits data out 0 er such lines. In such a system it is quite desirable that messages transmitted over the lines need not be of a definite length. In such a system there must be some method of allocating the butter storage space in a single buffer which services all of the transmission lines. The sequential decision making device of this invention provides the means for allocating the storage space in a single buffer unit.
Referring to FIG. 7, there are two sources associated with each transmission line. That is, a source 701, designated S and a source 702, designated S are associated with input line I. Similarly, a source 703, designated S and a source 704 designated S are as sociated with input line N. Each of the sources is of the type previously described. That is, each source can be turned on or turned off. All of the sources are connected to the node array 705 which is of the type previously described. While only input lines I and N have been shown, it will, of course, be understood that any number of input lines could be provided.
Each output line is similarly associated with two sources. The output line I is associated with source 796, designated 8 and source 707, designated 5 Also, output line N is associated with source 7tl8, designated S and source 709, designated S The sources 706-709 are also connected to the node array 705.
Each input line has four possible statuses. The first possible status is that a message is being received. Under these circumstances the sources associated with the input line are being used as an identity point for a message presently being accumulated in the buffer from the transmission line. The computer cannot select this source in order to send out a message while it is in this status.
The second possible status for an input line the message ready status. In this case the message for Which this source serves as an identity point has been received in full from the transmission line and may be read out by the computer. The computer can scan sources which are in this status whenever it is ready to ingest messages.
The third possible status for one of the input lines is the not selected status. In this case the source is not selected and is not serving as an identity point for a message either arriving or which has arrived on it.
The fourth possible status for an input line is the message being read status. In this case the source was in the message ready status and has been selected by the computer in order that the message for which it serves as an identity point may be read into the computer for processing.
Similarly, the output lines have four possible statuses. The first possible status for an output line is message being transmitted status. In this status, the sources associated with the output line are being used as an identity point for a message presently being transmitted from the buffer onto this transmission line. The computer cannot select this source in order to use it as an identity point for a message which it desires to dispatch onto this transmission line.
The second possible status for an output line is the message ready status. In this case the message for which the source serves as an identity point has been received from the computer and is ready for transmission on the line serviced by this source. This status is reached by the inclusion of an end of message character in the message. The end of message character was written into the message by the computer. This is a transient status which proceeds to a message being transmitted status unless acknowledgement by the transmission equipment to a request to transmit signal from the source equipment is required prior to dispatching the message onto the transmission line.
The message being written status indicates that the sources associated with a particular transmission line were in the message ready status and now the message for which the source serves as an identity point is being transmitted from the computer to the buffer.
The fourth and final status for the output lines is the not selected status. The source associated with particular output line is not selected as an identity point for holding a message to be transmited.
Referring to FIGS. 8a and 8b there is shown a system for assembling and disassembling messages from an input line 881 and an output line 802. The system of FIGS. 8a and 8b serves as a butter between these input and output lines and a computer 803. It should be understood that various other input and output lines could be handled by this system and the other input lines are shown schematically as input line 804 and output line 805.
Input line 801 is connected directly to a one word data register 806. Each word from the input line 881 is transferred from the data register 865 over line 807u 8871) into the butter register 808. The word is transferred from butter register 808 into the magnetic core memory 809. This transfer is accomplished under control of node network 810 which acts through the memory address decoder 811 and the memory address register 7 812 to transfer words of information from the butler register 808 to the magnetic core memory 809.
When a word is received in data register 806 from input line 881 the line 813 is raised indicating that the first word of a message is received. This line 813 is be temporarily stored in the magnetic core memory. T
The command to scan for input line service requests is received over line 818 from the buffer cycle priority control circuitry 819. When the write cycle request scanner scans an input indicating that one of the input lines has an input word ready to be written into memory, the write cycle request scanner 817 produces a signal indicative of the identification of the requesting input line. This signal is transferred over the line 828 which connccts this identification signal to the buffer cycle priority control circuit 819. The butler cycle priority control 819 then acts through the write cycle control 829 and the timing and driving circuits 821 to gate the input message into the magnetic core memory 809.
The particular storage locations into which the input mensage is to be gated is controlled by node network 810.
When the write cycle request scanner 817 determines that the input line 801 has a message which is to be read into the magnetic core memory, an output is produced over line 822 which enables an AND gate 823. The other input to AND gate 823 is from the line 816 which is up because a word is in the data register 886. Accordingly, AND gate 823 produces an output which is connected over line 824 to the sources 814 and 815. When the line 824 is up, a write cycle is being performed upon input line 891. This write cycle is also controlled by the node network control circuitry 825 which is the same type of circuitry as previously described.
The last word in each input message is an end-ofmessage word. This word is sensed by an end-of-message sensor 826. The end-of-message sensor 826 produces an output on line 827 indicating that a message is ready for use by the computer. This and other similar input lines are scanned by an input message ready scanner 828. The input message ready scanner 828 scans all of the inputs under the command of the computer 803 which sends out a command over the line 829 commanding the scanner 828 to scan for messages. When the scanner 828 notes a ready message, the address of the input line which is transmitting the message is transferred to the line address register 830. Under command of a read line address command over the line 831 to the AND gate 832 the line address is transferred from the line address register 830 over the line 833 to the computer 803.
When the computer is ready to ingest one of the messages which has been stored in the magnetic core memory, the computer transfers the input line address over the line 834 to the input line address select circuit 835. This circuitry is connected to a read cycle request scanner 836 which, under control of a command transferred over the line 837, will scan all of the inputs for read cycle requests. When the read cycle request scanner notes the request to read a particular message, the requesting line identification is transferred from the read cycle request scanner 836 to the butler cycle priority control 8159. The buffer cycle priority control 819 acts through the read cycle control 837 and the timing and driving circuits 821 to transfer information out of the magnetic core memory.
The addresses of the storage locations in the magnetic core memory 809 which are to be read out are determined by the node network 810. If the read cycle request scanner determines that the message ingested over the input line 801 is now to be read out, both inputs to the AND gate 838 are raised. The output of AND gate 838 is connected to sources 814 and 815 and determines that the storage locations in the magnetic core memory 809 which are associated with nodes which are in the connections from sources 814 and 815 will be read out. These storage locations are read out through the buffer register 808 over the data line 839, through the register 840 to the computer 803. The register 840 is included in the data line to provide temporary storage so that there is no delay in the transfer of the data if the message cannot be immediately used. An end-ofmessage sensor 814 is provided to provide an indication to the computer when the complete message has been read out of the magnetic core memory into the computer.
When the computer is ready to transfer a message to the magnetic core memory for later transmission over one of the output lines, the address of the output line is transferred over line 842 to the output line address select circuit 843. The output of this circuit is also connected to the write cycle request scanner 817. Upon scanning all of the inputs, if the write cycle request scanner 817 notes that the computer is ready to write a mes sage into the magnetic core memory for later transfer over output line I, the write cycle request scanner raises the line 844 which forms one input to an AND gate 845. The other input to AND gate 845 is from the output line address select circuit 843. When both of the inputs to AND gate 845 are raised, the output of AND gate 845 energizes the sources 847 and 848. The sources 847 and 848 establish connections through the node network 810 to control and determine the storage locations to which the computer is to transfer data. This transfer of data takes place over the data line 848, through the temporary storage register 849 and the butter register 868 to the magnetic core memory 809. An end-of-message sensor 850 senses the end-of-the-message which is being transferred from the computer to the magnetic core memory.
When the message is transferred from the computer to the magnetic core memory the first word of the message is transferred over the lines 851a and 851)) to the word data register 852 associated with output line I over which the message is to be transmitted. The word data register 852 is connected to the AND gate 853 which when energized produces a read cycle request signal which is connected over line 854 to read cycle request scanner 836. When the read cycle request scanner 836 determines that this particular input indicates that a message is ready to be transmitted over output line 1 the read cycle request scanner enables the AND gate 855 the ouput of which is connected back to nodes 847 and 848. These sources then connect all of the nodes which are associated with the storage locations containing the message to be transmitted over output line I. The message is transferred under control of the node network from the magnetic core memory, through the buffer register 808, over lines 852a and 85th, through the one word data register 852 and out over output line 802. When the last word of the message is transmitted from the one word data register 852, the end-of-message sensor 856 senses the last word and enables an AND gate 857 which then disconnects sources 847 and 848 from the connection and makes them available for the transmission or reception of another message.
Task ordering device The sequential decision making circuitry of this invention used as a task ordering device in a computer is described in conjunction with FIGS. 9-16.
The sequential decision making circuitry of this invention can be used in a multi-programrned computer in which several programs proceed independently of each other to carry out the various tasks of each program. That is, each program is written in complete disregard of any other program or programs with which it might have to share the facilities of the computer system. In general, a computer system to which such a system might be applied is shown in FIG. 9. Referring to FIG. 9, the computer includes a plurality of input-output units, for example, 991 and 902; a plurality of arithmetic and logical units, for example, 993, 904, and 905; and a plurality of memories, for example, 906, 907 and 908. All of these units may be used simultaneously or sequentially to carry out a plurality of computer programs. These units are assigned various tasks in the programs by the sequence and information routing control circuit 909. The sequential decision making circuitry of this invention performs the function of the sequence and information routing control circuit 909.
Each independent program is designated a task sequence which includes a number of tasks, A, B, C, etc., which must be performed in a prescribed sequence such as: first task A, then task B, then task C, and so on. Each task might for example, represent a subroutine in the computer. Further, the task could correspond to a particular unit of the computer system such as arithmetic and logical unit 903 in FIG. 9. Then the task sequence would represent the necessary time sequence of operations which must be performed by the computer system in executing the overall program. As a concrete illustration of a system, it will be assumed that the system has ten selectable tasks which are designated A, B, C K. It will also be assumed that the system can handle any sequence of these tasks with a maximum length of seven tasks. This can be represented schematically by the program array shown in FIG. 10. In 10, AK represent ten selectable tasks which can be performed during any one of time intervals I, through r Each of the nodes in FIG. 10 corresponds to a sub-routine stored at a sequence of addresses beginning at the memory address corresponding to this node. Each node in this circuit consists of several subnodes each of which is similar to the circuit shown in FIG. 6. That is, there are several possible paths through a given node point in the array. Each task sequence which employs the task controlled or represented by a particular node is connected to it by means of one of the several submodes which constitute this particular node. For example, in FIG. 10, task sequence I includes the task A at time 1;, the task B at time 1 the task B at time r the task C at time 12; and the task C at time 2 This is the end of task sequence I. Task sequence II includes tasks A, C, D, C, B, C & E in that order.
Intranode preferences can be set up such that should two task sequences be connected through the same node point simultaneously the task sequence connected to the sub-node having the greatest connection preference will get control of the function related to that node first. Subsequently, of course, the task sequence having the lesser preference for this node will be able to make its request for services by the task represented by this node.
Prior to the execution of the task sequences to be performed, each task sequence is set up by linking the connection establishing sub-nodes at each stage in the node array. Thus, for task sequence I the following connection among connection establishment sub-nodes are made. Task A through Task B through Task B through Task C through Task C. The operation of the scquential task ordering device based upon the node networks described previously is as follows: Each task sequence proceeds stage by stage to completion. At completion of the task sequence, the connections through the subnodes are broken unless it is desired to rerun the program corresponding to this task sequence again. Conflicts with other task sequences for computer system facilities at each stage are resolved at each stage where this problem is encountered. At such points of juncture, that is, at a stage at which two task sequences require the use of the same facility and both sequences request the use of this facility simultaneously, the conflict can be resolved on either a first come, first serve basis and/or by a priority scheme. A task sequence could be given an absolute first preference, an absolute second pcrferencc or uniform preference, that is first come, first served, with regard to the other task sequences that might be simultaneously contending for the use of a particular task function. In this type operation, the completion of a task at a particular stage will cause a start function signal at the node of the next stage which is a member of this task sequence. This start function signal will cause this task to be performed provided that there are no simultaneous requests for this task by other sequencies to which a higher preference has been given.
In a more sophisticated system the sequential task ordering device and the computer in general may be controlled by a master control program. With this mode of operation the function completed signals for each task cause a node in another array called the control scanner to be activated. The control scanner is shown diagrammatically in FIG. 11. FIG. 11 shows the broad concepts of the control scanner which is shown in more detail in FIGURES 12 and 13. The control scanner consists of two basic parts, a service request array and a control array. When a function completed signal for a given task is turned on, regardless of which sequence or what stage this function is a part, the corresponding node in the service request array is turned on. The particular node, of the eleven possible in this example, which is turned on is that node which comes at the time level next in sequence. For example, if six nodes had already been turned on, then if a task B gave a function completed signal the node at position B-Tq would be turned on or activated.
When the computer is ready for a master control cycle, that is, it is ready to set up a sequence of tasks it must perform, it gates the first eight of the eleven positions of the service request array into the control array. The number of stages, eight in this example, in the control array is made equal to the number of jobs the computer must have lined up to perform at any one time.
The activated nodes in the control array shown in FIG. 11]) are linked together electrically in the manner described in conjunction with FIG. 5. That is, each activated node is made a goal successively until all eight of the activated nodes are linked together. A node corresponding to a particular task to be performed would be selected as a goal. A connection would be established to this goal in the manner described above. The nodes forming this connection would correspond to the intermediate tasks which must be performed prior to the designated task. Each of these nodes could likewise correspond to a program in a computers memory which must be performed before the goal or task program is executed.
When a goal is selected, as described above, nodes corresponding to programs which are not to precede the attainment of this goal are made busy as described above. The remaining available nodes would therefore correspond to possible intermediate tasks in the possible alternate paths available to achieve this desired goal. Further, note that certain nodes which are suitable for inclusion in a connection to this goal node may be busy due to their inclusion in a previously established connection. This could be symbolic of either a particular programs being in use or a particular device, such as an arithmetic unit, or input/output unit being operated in connection with another task sequence.
The various levels in the node network (see FIGURE 1) correspond to the precedence relations existent among the several nodes. For example, any task level i will be executed prior to any task in level 1'.
A program control system utilizing the sequential task ordering techniques of this invention is shown in FIGS. 12 and 13. The system includes a program array 1201, program sources nodes 12021205, a program task sequence setup register 1206, a service request array and control array formed into one three dimensional array 1301, and various function controls 1302-1311. The program control system also includes the control circuitry necessary to operate this equipment.
The operation of the program control system is as follows:
(a) Program setup Each task sequence is read into the program setup register 1206. The program setup register has a plurality of stages corresponding in number to the number of stages of the program array. There is a corresponding stage of the program setup register for each stage of the program array. Each such stage of the program setup register 1206 is divided into two sections. For example, 1207 and 1207a form the first stage, 1208 and 1208a form the second stage, and so on. The first section of each stage holds the indication of the particular task to be performed in this sequence at this stage. The second section of the stage holds the priority of this sequence for this task at this particular stage relative to other sequences which might select this stage. That is, stage 1207 indicates that the Task A is to be performed at this level. Section 1207a indicates that this task is to be given first preference at this stage. Similarly, stage 1208 indicates tht task B is to be performed at this stage while section 1208a indicates that this task is to be given second preference.
The preferences are indicated as follows:
First preference-1;
Second preference2;
First come, first served; no preference-3;
Stage not selected for inclusion in this task sequence0.
In order to initiate the performance of a particular task sequence, one of the program source nodes 12021205 which will serve to identify this task sequence is put into the select mode of operation.
(b) Program army The program array 1201 contains one node corre sponding to each selectable task at each stage of the array. The details of the program array are shown in FIGS. 14 and 15. Each node of the program array is subdivided into a number of sub-nodes, there being one sub-node for each preference level. In the example shown in FIGS. 14 and 15 it is assumed that there are two levels of preference and hence two sub-nodes for each node. As shown in FIG. 14 there are two nodes corresponding to task sequence A and task sequence B at level 1 A typical first preference sub-node and a portion of a second preference sub-node of the program array is shown in FIGS. 14 and 15. As shown in FIG. 14 a select core 1401 and a hold core 1402 are provided for the source S input to the sub-node and a select core 1403 and a hold core 1404 are provided for the source S input to the suhnode. It will be understood, of course, that as many pairs of select and hold cores as there are sources requiring the use of this sub-node will be provided.
Referring to FIG. 15, a first preference core 1501 is provided and produces an output which connects the subnode in the particular task sequence given first preference. Similarly, a second preferance core 1502 is provided and connects the sub-node in the task sequence given second preference. If the system is to be provided with more than two preference levels then additional preference cores should be provided. The output lines from the sub-node are ORd together into a request core 1503. Request for service from second preference, and lower preference, sub-nodes will not be permitted to operate the request core until the request of the first preference, and all order of preferences greater than the given one, have been satisfied.
The task sequence is loaded from the program setup register 1206 into the program array 1201 as follows. The sections of the program setup register 1206 which designate the task to be performed energize the corresponding task select line. For example, assuming that the sub-node shown in FIGS. 14 and 15 is associated with task A, then stage 1207 of the program setup register 1206 energizes the line 1405 designated task A select.
Similarly, the program setup register stage which designates the preference of the task at this stage energizes the corresponding preference sub-node select line. For example, the section 1207a holds a first preference and this section of the stage energizes the line 1406 designated first preferance sub-node select.
Energization of a task select and a preference select line for a particular select core causes the corresponding hold core to pass the A.C. hold voltage from the given program source node to the output. For example, if lines 1405 and 1406 are energized, the A.C. voltage from the particular source node, that is, either from source S over input line 1407 or from source S over input line 1408, will pass through the select core to the hold core. Therefore, if source S is associated with the particular task sequence which is being set up the A.C. hold voltage will pass from input line 1407 to the select core 1401. The A.C. hold voltage will be coupled from the winding line 1409 to output winding 1410 because of the A.C. voltage applied to input lines 1405 and 1406 thus keeping select core 1401 out of saturation. The A.C. hold voltage from output winding 1410 is rectified by diode 1411 and applies an unblocking bias to hold core 1402 thus taking the hold core 1402 out of saturation. Because of this, the hold voltage from input 1407 is coupled from input winding 1412 to output winding 1413 and this coupling continues even though the D.C. voltages are removed from input windings 1405 and 1406. That is,

Claims (1)

1. A COMPUTER CONTROL SYSTEM ESTABLISHING A SEQUENCE OF CONTROL SIGNALS COMPRISING A PLURALITY OF NODE CIRCUITS EACH OF WHICH PRODUCES ONE OF SAID CONTROL SIGNALS WHEN ENERGIZED, SAID NODE CIRCUITS BEING ARRANGED IN LEVELS, MEANS FOR INTECONNECTING THE NODE CIRCUITS IN EACH LEVEL IN SUCH A MANNER AS TO ESTABLISH A PREFERENCE IN THE ENERGIZATION OF NODE CIRCUITS IN THAT LEVEL, MEANS FOR SEQUENTIALLY ENERGIZING AND INTERCONNECTING ONE NODE IN EACH LEVEL WITH A NODE IN ANOTHER LEVEL IN ACCORDANCE WITH THE PREFERENCE AMONG UNENERGIZED NODES IN THE RESPECTIVE LEVEL, MEANS FOR MAINTAINING SAID SEQUENCE OF NODES IN THE ENERGIZED CONDITION TO PERMIT THE SUBSEQUENT REPRODUCTION OF THE SEQUENCE OF CONTROL SIGNALS PRODUCED BY SAID ENERGIZED NODES AND MEANS RESPONSIVE TO SAID SEQUENCE OF CONTROL SIGNALS FOR PERFORMING A DESIRED COMPUTER FUNCTION.
US63631A 1960-10-19 1960-10-19 Sequential decision making device Expired - Lifetime US3226683A (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
NL270155D NL270155A (en) 1960-10-19
US63631A US3226683A (en) 1960-10-19 1960-10-19 Sequential decision making device
DE19611424710 DE1424710B2 (en) 1960-10-19 1961-10-07 CIRCUIT ARRANGEMENT FOR CONNECTING DATA EMISSING DEVICES WITH DATA RECEIVING DEVICES IN DATA PROCESSING SYSTEMS
NL61270155A NL140069B (en) 1960-10-19 1961-10-11 SWITCHING NETWORK FOR ADDRESSING OR CONTROLLING A MEMORY OR CALCULATING MACHINE.
SE10352/61A SE308962B (en) 1960-10-19 1961-10-18
FR876379A FR1313121A (en) 1960-10-19 1961-10-19 Device for taking decisions in sequence

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US63631A US3226683A (en) 1960-10-19 1960-10-19 Sequential decision making device

Publications (1)

Publication Number Publication Date
US3226683A true US3226683A (en) 1965-12-28

Family

ID=22050483

Family Applications (1)

Application Number Title Priority Date Filing Date
US63631A Expired - Lifetime US3226683A (en) 1960-10-19 1960-10-19 Sequential decision making device

Country Status (4)

Country Link
US (1) US3226683A (en)
DE (1) DE1424710B2 (en)
NL (2) NL140069B (en)
SE (1) SE308962B (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3411143A (en) * 1966-01-13 1968-11-12 Ibm Instruction address control by peripheral devices
US3417374A (en) * 1966-01-24 1968-12-17 Hughes Aircraft Co Computer-controlled data transferring buffer
US4030078A (en) * 1974-12-16 1977-06-14 Gesellschaft Fur Mathematik Und Datenverarbeitung M.B.H. Dynamic memory arrangement for providing noncyclic data permutations
FR2378317A1 (en) * 1977-01-24 1978-08-18 Dethloff Juergen Text processing machine for automatic typewriters - has two position switch which controls electronic circuit for rapid text recall
US4156903A (en) * 1974-02-28 1979-05-29 Burroughs Corporation Data driven digital data processor
US4366551A (en) * 1977-06-24 1982-12-28 Holtz Klaus E Associative memory search system
US4383298A (en) * 1980-04-10 1983-05-10 Ciba-Geigy Corporation Plant maintenance control system
US4829443A (en) * 1987-02-02 1989-05-09 Pitney Bowes Inc. Insertion machine with computerized postage search and prioritized selection of inserts

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2994064A (en) * 1954-04-15 1961-07-25 Post Office Information transmitting circuits
US3067937A (en) * 1959-06-08 1962-12-11 Ibm Control element for computing devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2994064A (en) * 1954-04-15 1961-07-25 Post Office Information transmitting circuits
US3067937A (en) * 1959-06-08 1962-12-11 Ibm Control element for computing devices

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3411143A (en) * 1966-01-13 1968-11-12 Ibm Instruction address control by peripheral devices
US3417374A (en) * 1966-01-24 1968-12-17 Hughes Aircraft Co Computer-controlled data transferring buffer
US4156903A (en) * 1974-02-28 1979-05-29 Burroughs Corporation Data driven digital data processor
US4030078A (en) * 1974-12-16 1977-06-14 Gesellschaft Fur Mathematik Und Datenverarbeitung M.B.H. Dynamic memory arrangement for providing noncyclic data permutations
FR2378317A1 (en) * 1977-01-24 1978-08-18 Dethloff Juergen Text processing machine for automatic typewriters - has two position switch which controls electronic circuit for rapid text recall
US4366551A (en) * 1977-06-24 1982-12-28 Holtz Klaus E Associative memory search system
US4383298A (en) * 1980-04-10 1983-05-10 Ciba-Geigy Corporation Plant maintenance control system
US4829443A (en) * 1987-02-02 1989-05-09 Pitney Bowes Inc. Insertion machine with computerized postage search and prioritized selection of inserts

Also Published As

Publication number Publication date
NL140069B (en) 1973-10-15
DE1424710B2 (en) 1971-05-13
DE1424710A1 (en) 1970-02-12
SE308962B (en) 1969-03-03
NL270155A (en)

Similar Documents

Publication Publication Date Title
US4153932A (en) Data processing apparatus for highly parallel execution of stored programs
Dennis et al. A preliminary architecture for a basic data-flow processor
KR900001033B1 (en) Sequence controller
US5434972A (en) Network for determining route through nodes by directing searching path signal arriving at one port of node to another port receiving free path signal
US4876643A (en) Parallel searching system having a master processor for controlling plural slave processors for independently processing respective search requests
US4228497A (en) Template micromemory structure for a pipelined microprogrammable data processing system
US4766534A (en) Parallel processing network and method
US4156903A (en) Data driven digital data processor
US3248708A (en) Memory organization for fast read storage
EP0258736A2 (en) Parallel computer with distributed shared memories and distributed task activating circuits
US3226683A (en) Sequential decision making device
CN111338695B (en) Data processing method based on pipeline technology and related product
EP0369699A2 (en) Updating pattern-matching networks
US5907693A (en) Autonomously cycling data processing architecture
EP0164995B1 (en) Parallel register transfer mechanism for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes
EP0037264A2 (en) Associative memory system
EP0164418B1 (en) Microprogram control system
US3487373A (en) Apparatus providing symbolic memory addressing in a multicomputer system
US5926635A (en) Method for reducing complexities when communicating between tasks
KR920002571B1 (en) Data processing method of distributed processing system
US3505647A (en) Apparatus providing alterable symbolic memory addressing in a multiprogrammed data processing system
US3911405A (en) General purpose edit unit
US4333161A (en) Data processing apparatus operative on data passing along a serial, segmented store
US3351918A (en) Computer system employing specialized instruction execution units
JP3031591B2 (en) Access arbitration method