Program address control system with address advance adder for read only memory
United States Patent Endou et al. Apr. 1, 1975 [54] PROGRAM ADDRESS CONTROL SYSTEM 3,713,108 1/1973 Edstrom et al. 340/1725 WITH ADDRESS ADVANCE ADDER FOR 3,753,242 8/l973 Townsend 340/1725 3,774,]66 ll/l973 Vigliante... 340/l72.5 READ ONLY MEMORY 3.786.434 1/1974 Frye et al.. 340/1725 [75] inventors: Hirohide Endou, Kodaira; Yoshiaki 3,794,979 2/1974 McMahon 340N725 Kitazume, Sayama; Jun Kawasaki, Hachioji; Yoshikazu Hatsukano, Primary E.\&#39;aminerGareth D. Shaw Kodaira, all of Japan Assistant Examiner-John P. Vandenburg A ignee: td. &#39;r0ky01 Japan Attorney, Agent, or Firm-Cra1g &amp; Antonelli [22] Filed: Dec. 26, 1973 [57] ABSTRACT [21] Appl- 427529 1n the ROM (read-only memory) of this system, ad-  
  dresses starting from the first are sequentially assigned 30 Foreign Appncatinn p i i Data by an address register. when the output from a condi- Dec 25 1972 Japan 47429259 tron fllp-flop and the slgnal from the address register produce a pattern predetermined for each address, the [52] U S Cl 340/172 5 ROM delivers an output signal from an output termi- {SH In. .0. (mag/1.6 n3] related to the address. p appearance of the [58] Fieid 444/] output signal at the output terminal of an address, an  
  instruction allocated to the address is executed. Fur- [56] References Cited thermore, jumping from an address presently assigned to a preceding address and a temporary stay in the UNITED STATES PATENTS present address can be realized by controlling the conif -l tents of the above-mentioned condition flip-flop. ervan eta 3,634 883 1/1972 Kreidermacher 340/1725 4 Claims, 6 Drawing Figures 1 PROGRAM ADDRESS CONTROL SYSTEM WITH ADDRESS ADVANCE ADDER FOR READ ONLY MEMORY BACKGROUND OF THE INVENTION 1. Field of the Invention This invention relates generally to program control systems including a Read-Only Memory (hereinafter simply called ROM), and more particularly to a type thereof adapted for controlling logic operations in table type electronic computers.  
 2. Description of the Prior Art In a table type electronic computer employing a ROM, when an start pulse for initiating a dataprocessing operation thereof is generated by the application of a key input, the contents of the key input are encoded and set in a function flip-flop. The contents of the function flip-flop are thereafter decoded, and the kind of operations to be undergone is thereby determined. Based on this determination, further decoding is carried out for assigning an address in an ROM in which corresponding process programs are stored, and a first address of the process programs is set in a program counter. The process programs are thereafter sequentially read out, and the operations corresponding to the instructions included in the programs are successively put into practice through a control logic circuit. A termination command signal is included at the end of the process programs, and upon detection of the termination signal. all of the operations intended by the key input are completed.  
  An example of the conventional program control system used in a table type electronic computer is indicated in FIG. I. In the initial state of the operation, a starting address is set in an address register II. The contents of an ROM 12 indicated by the address are read out by a command decoder 13, and controls corresponding to the command thus read-out are then carried out.  
  Upon execution of the command, the contents in the address register 11 are added by one through an adder 14, and the results thus added are newly set in the address register II through an AND gate 16b.  
  In case where the contents of the ROM 12 indicate an address reached by jumping, the address is set in the address register 11 through another AND gate 16a. Furthermore, the return addresses in the case ofjumping to sub-routines is stored in an evacuation address register 15, and these are thereafter set back in the address register 11 through still another AND gate 16c.  
  In this kind of control system, all of the addresses thus set in the address register II are effective, and the contents in the ROM 12 defined by these addresses are also utilized effectively. In other words, the control system includes substantially no redundancy in the operational periods of the address register 11 and the ROM 12, and this fact has constituted an advantageous feature of the conventional control system in elevating the operational speed. However, the conventional control system has required the evacuation address register. as described above, for storing the return addresses in the case of jumping to a sub-routine, and the number of bits required in the ROM have increased because the addresses of the jumped transfer must be memorized in the ROM. These features of the conventional control system are disadvantageous in view of the fact that the reduction of the cost is imperative in the small-size SUMMARY OF THE INVENTION An object ofthe present invention is to provide a program control system having an address circuit which has substantially a jumping function without employing the evacuation address register.  
  Another object of the invention is to reduce the number of bits required in the ROM, and hence to reduce the production cost of the program control system.  
  For the achievement of the above-described two objects, the program control system according to the present invention is characterized in that it includes an address register for assigning addresses in the ROM and a plurality of condition flip-flops for indicating the present condition of the operation system, whereby the effectiveness or ineffectiveness of the present address in the ROM is judged from the contents of the condition flip-flop, and the variation of the addresses in the ROM is selected from three modes consisting ofjumping to a preceding address, staying in the same address, and the addition by one of the present address.  
  The other objects and features of the present inven&#39; tion will be apparent from the following detailed description when read in conjunction with the accompanying drawings.  
 BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram showing a conventional program control;  
  FIGS. 2(A), 2(B), and 2(C) are diagrams showing types ofthe programs used in the control system of this invention; and  
  FIGS. 3 and 4 are block diagrams showing examples of the program control system according to the present invention.  
 GENERAL PART OF THE INVENTION The basic concept of the present invention will now be described with respect to three kinds of programs. In the first program shown in FIG. 2(A), A, B, C, D, E, and F represent unconditional commands (or instructions), respectively, .II and .I2 represent decision commands (or instructions). The marks@throughrepresent addresses in the ROM wherein the abovedescribed commands (or instructions) are stored.  
  In the first kind of the program, it is assumed that the result of the decision command I1 is NO, and the result of the decision command J2 is YES, so that the destinations of the jumping transfers are always in the subsequent addresses in the programs. In the execution of this kind of program, according to the conventional practice, the command A stored in the addressCDof the ROM is firstly put into practice, and then the decision command .I] stored in the addressthereof is carried out. When the results of the command .II are found to be NO, the address assigned by the address register is jumped to the address@, whereby the command C is carried out. Then the addresat that instant is further added by one so that another decision command J2 stored in the addressis carried out. Supposing that the results of the decision are yes, the address if further added by one thereby to proceed into the address@. After the execution of the command D in the address dressto carry out the command F.  
  In other words, according to the conventional system, the assignment ofthe addresses in the ROM by the address re ister is shifted in the sequence of 6) whereby three kinds of jumping commands (two conditional jumps by J1 and J2 and one unconditionaljump) and the destinations of the jumping commands are required.  
  According to the present invention, the contents of the address register is always increased by one, and hence the assignment of the addresses in the ROM follows the sequence of and it is so controlled that the command B in the addressand the command E in the addressare not put into practice. By so doing, the jumping commands can be eliminated and the necessity of the evacuation address register is nullified. Furthermore, there is no necesssity to store the destination addresses in the ROM, and hence the required number of bits in the ROM can be substantially decreased.  
  ln FlG. 2(B), there is indicated another type of program wherein the rocess is advanced from an address (U) to an address 6 and remains there until the result of the decision command J3 becomes NO. In the execution of such a program in accordance with the present invention, the operation of a circuit adding one to the present address is stop ed simultaneous with the attainment of the address (5 in the contents of the address register, and the operation is resumed to the operative state upon detection by the conditional flip-flop of the result N0 of the decision command J3.  
  In FIG. 2(C), there is indicated a third example of the program. wherein the process is advanced in the sequence of@ Q2 and and after the execution of the command L, the process is unconditionally jumped to the preceding address Q2 In this case, since the destination ofthe jumping operation is beforehand known, the destination address can be generated by means of a separate memory or a separate gate, and the address thus obtained if forcibly set in the address register.  
 PREFERRED EMBODIMENTS OF THE lNVENTlON According to the present invention, there is provided a program control system constructed on the basis of the above-described basic concept and the abovedescribed three kinds of programs can be thereby carried outwith a simplified logic circuit. A preferred embodiment thereof is indicated in FIG. 3 wherein there is included an address register 21 comprising flip-flops FFll through FFIS and FF21 through FF25. To the flip-flops FFll through FFlS digit pulses DP are applied. and to the flip-flops FF21 through FF word pulses WP are applied. Each ofthe digit pulses and the word pulses are generated only one time in the corresponding digit and word. JAO through JA4 designate jumping address signals applied to these flip-flops from the outside, which are directly set in the flip-flops FF21 through FFZS. The outputs from the flip-flops FF21 through FF25 and the outputs of inverter gates G81 through G85 inverting the outputs of the flip-flops FF2l through FF25 are applied to the ROM 22, respectively. Round marks Oin the ROM 22 indicate inserting positions of MOS type transistors or diodes, and@ through Q designate addresses in the ROM 22.  
  When signals are applied from the address register 21 to all of the Q marked positions in an address of the ROM 22, an output signal appears on the correspond ing one of the output terminals 0 through It for the addressesthrough (3 For instance, when attention is paid to the output terminal a for the first address@specifically, an output signal appears thereon only when 10000 is set in the flip-flops FF21 through FF25 of the address register 21. Appearance of the output signal on the terminal 0 causes execution of the command A. Likewise, the appearance of an output signal on the terminals b, c, d, causes the execution of the commands J1, B, C, (in FIG. 2(A)), respectively.  
  A condition flip-flop circuit 23 includes two flip-flops F1 and F2, the outputs of which are supplied to the ROM 22. The conditions of the flip-flops F1 and F2 are controlled by the outputs ps1, through p51,, and pr2, through pr2,,, from the ROM 22 and the decision data cs], through cs1, and cr2 through cr2,,, representing the execution results of the decision commands.  
  The operation of the program control system of this embodiment will now be described with respect to the case where the system is applied to the execution of the program shown in FIG. 2(A).  
  Initially, both of the condition flip-flops F1 and F2 have been reset thus delivering 0 from the 0 output and 1&#34; from the Q output. The flip-flops FF15 through FFll in the address register 21 are set in this sequence to 00001, and the contents are shifted into the flip-flops FF25 through FF21 when word pulses arrive at the flip-flops. Accordingly, all of the Omarked positions in the addressin the ROM 22 are filled by the signal 1&#34;, and an output signal is delivered from the terminal a. By the output signal from the terminal a the command A indicated in FIG. 2(A) is carried out. The contents of the flip-flops FF15 through FFll are then shifted leftwardly, and one is added by an adder 24 to the thus shifted present address. That is, a new address of 00010 is obtained, and this address is passed through a NAND gate G6 and an inverter G7 to be set in the flip-flops FFlS through FFl l. The new address is again shifted to the flip-flops FF25 through FF21 upon arrival of the word pulses, so that the second addressCQis selected in the ROM 22 and an output pulse ps1, is delivered from the terminal b. Delivering the output signal ps1, causes the system to execute the decision command 1, in FIG. 2(A). The output signal p51 and a signal (&#39;51, showing the result of the decision are applied to a NAND gate G11. When the result of the decision is yes, that is, the es], is l, the output of the NAND gate G11 is passed through another NOR gate G31 to the terminals s of the flip-flop F1, and Q output thereof is changed to l&#34; and the Q output thereof is changed to When the new contents of the flip-flops FF15 through FF11 in the address register 21 are again shifted to the adder 24 and one is added thereto, a further new address of 000] l&#34; is obtained. Since the condition flip-flop F1 is set as described above, no signal is introduced into theQmarked position in the address (3) corresponding to the flip-flop Fl, whereby NAND logic in the addresscannot be executed and no signal is obtained from the terminal c. Thus, the command B in FIG. 2(A) is not carried out.  
  When the contents of the flip-flops FFlS through FFll in the address register 21 are further added by one, the address is now changed to 00100&#34;, and the fourth address 4 is selected and an output signal is delivered from the terminal d. The delivery of the output from the terminal d causes the system to execute the command C in FIG. 2(A). B repeating the same procedure, the addresses,,, andare sequentially selected. However, when the address (6) is selected, NAND logic is not satisfied in the same address, and no output signal is delivered from the terminal f so that the command D in FIG. 2(A) is not executed. Furthermore, the clearing of the contents of the address register 21 can be carried out by applying 0&#34; to the terminal C1 of the NAND gate G6. By this procedure, the contents in the adder 24 is prohibited from entering the address register 21 and the register 21 is thereby cleared.  
  The operation of the program control system according to this invention in the case of executing a program of the type shown in FIG. 2(B) will now be described. It is assumed that both of the condition flipflops F1 and F2 are in the reset state. When an address 0101 1 is set in the address register 21, an address is selected in the ROM 22 so that an output appears in the terminal i and the command H is thereby carried out. When the subsequent address OI I00 is set in the address register 21, the subsequent address Q is selected, so that an output signal appears at the terminal j and a decision command J3 is carried out. At the same time, a 0 signal is applied to a terminal AC1 of a gate G4, and the adder stops its operation for adding one to the present address. This means that the contents of the address register 21 is held to the same address. When the result of the decision command J3 is found to be NO, a logic product is obtained in a NAND gate G12 between the output signal psl from the terminal} and the decision data (51 and the output from the NAND gate G12 is passed through a NOR gate G31 to the condition flip-flop Fl. Accordingly, the 0 output thereof is changed to l and the Q output thereof is changed to As a result, no signal is introduced to the position, marked with corresponding to the output Q from the flip-flop F1 in the address Q of the ROM 22, whereby no output signal is delivered from the terminal j. Thus, a signal l is again introduced into the terminal AC1 of the gate G4, and the adder 24 resumes its operation for adding one to the present address. The contents of the flip-flops FFIS through FFll in the address register 21 are changed to OI l0l so that the address (3 is selected and the command I is thereby executed.  
  The operation of the program control system in the case of executing the program, as shown in FIG. 2(C), will now be described with the simultaneous reference to FIG. 4.  
  In FIG. 4, numeral 22 designates a ROM similar to that in FIG. 3, and numeral 25 designates a jump address generating circuit. The jump address generating circuit 25 has MOS transistors or diodes inserted at positions marked with The commands K, 14 and L cor responding to the addresses Q) and Q} are executed in a similar manner as described hereinbefore, and an output signal from the output terminal n corresponding to the address Q) is introduced into NAND gates G91 through G95 in the jump address generating circuit 25. When the command L is executed, a pulse WP is also applied to the NAND gates G91 through G95 at the instant of the termination of the command L. The outputs of the NAND gates are passed through respectively provided inverters G101 through G105 to the flip-flops FFll through FF15 in the address register 21. Since the contents of an ROM included in the jumping address generating circuit 25 connected with the output terminal from the address is 10110 as clearly shown in FIG. 4, this address is forcibly set in the flip-flops FFll and FFIS. That is, the process is set back to the address after the execution of the command corresponding to the address The above described operation is repeated while the result of the decision command I4 is YES, and when the result he comes NO, the process is advanced to the address Q) In FIGS. 2(A), 2(8), and 2(C), full lines indicate routes followed when the Q outputs of the condition flip-flops F1 and F2 are both 0&#39;, broken lines indicate the routes followed when the Q outputs of the flip-flops F1 and F2 are l and 0&#34;, respectively, and one dot chain lines indicate routes followed when the Q outputs are l and respectively, wherein designates a value which may be either 0&#34; or As described herein in detail, according to the present invention, execution of ordinary programs is attained by simply adding one to an address of each pre ceding program so that the conventional setting back to an arbitrary address depending on the result of the decision command is eliminated. For this reason, the program control system according to this invention does not require any evacuation register to store the return addresses, and the construction of the system is thereby substantially simplified. Furthermore, since the system is provided with condition flip-flops, temporary stop of the address renewal and jumping to a predetermined address preceding the present address can be carried out in a simple manner.  
  While we have shown and described several embodiments in accordance with the present invention, it is understood that the same is not limited thereto but is susceptible of numerous changes and modifications as known to a person skilled in the art, and we therefore do not wish to be limited to the details shown and described herein but intend to cover all such changes and modifications as are obvious to one of ordinary skill in the art.  
 What we claim is:  
 I. A program addressing control system comprising:  
 a read only memory having a coordinate array of input and output lines and means interconnecting selected crosspoints of said input and output lines, so that respective combinations of signals applied to said input lines will produce a signal on each output line, respective commands being executed in response to the signals from said output lines;  
 a plural stage address register, the outputs of respective stages of said address register being connected to respective input lines of said read only memory;  
 an adder having an input connected to the output of said address register for receiving an address signal stored therein and adding l to said address signal, and having an output connected to the input of said address register for setting the thus added result therein;  
 a plurality of condition flip-flops having outputs connected to additional input lines of said read only memory; and  
 gating means, connected to said condition flip-flops, for controlling the state thereof in accordance with the output signals on the respective output lines of said read only memory and the signal indicating the the address register, for forcibly setting said address register into a preselected state in response to selected outputs of said read only memory.  
  4. A program addressing control system as defined in claim 3, wherein said address signal generating means includes a secondary read only memory in the form a matrix having input lines connected to selected output lines of said read only memory and output lines connected to the respective stages of said address register. I l