Abstract:
This invention relates to a timing control, for example, a control for reserving a waiting time when a data processor sends or receives data to or from an external device. Dummy cycles for a number of cycles having a processing time equal to the desired waiting time are generated by a dummy instruction. A timing control system is disclosed which is especially suitable for a micro-program system of a pipeline control system.

Description:
BACKGROUND OF THE INVENTION 
     This invention relates to a timing protection system for various control timings in a data processor, and more specifically to the realization of the timing function by the use of a dummy cycle executed by an instruction, particularly a micro-instruction. 
     In the case of processing machine instructions for external devices such as input/output units using microprograms, a first micro-instruction is executed for sending some data to the external devices and then a second micro-instruction is executed to process the response signal sent from such external devices. 
     The timing protection required for timing control of such external devices has been carried out using a timer or a complicated control circuit which confirms operation by exchanging response signals with the external devices, namely by an interlock system. In other words, such timing protection has required specially designed circuits or a complicated control system. 
     SUMMARY OF THE INVENTION 
     It is an object of the present invention to realize timing protection during execution of programs, particularly micro-programs without using a particular circuit, within an ordinary program or micro-program control circuit structure. 
     In order to attain such an object in a data processor, an instruction for executing a dummy cycle which is invalid for processing is inserted at the desired position in the program. In the above example, the instruction is inserted between the first and second micro-instructions for which timing protection is necessary. Within the instruction, the number of repetitions of the dummy cycle is designated and the protection time is a function of the product of the number of repetitions of the dummy cycle and the cycle time of the processor. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram of a pipeline-type micro-program control circuit to which the present invention is applied; 
     FIG. 2 is a diagram of an embodiment of the present invention; 
     FIG. 3 is a time chart of an embodiment of the present invention. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     This invention provides the desired timing protection during execution by inserting an instruction designating a dummy cycle at the position in the program requiring timing protection. The number of dummy cycles are controlled by the instruction. The embodiment indicated below is concerned with a microprogrammed processor using pipeline control. First, the basic operation of a micro-instruction in the pipeline control system will be explained. 
     FIG. 1 illustrates the pipeline mechanism and the execution flow of micro-instructions. In this figure, block 1 is a central memory address register CSA and the OP code of a machine instruction is input to it as the address of control memory CS 2 in which micro-programs are stored. Blocks 3 to 8 are TAG registers of successive stages of a pipeline, corresponding to PHASE-A to PHASE-F of the execution flow indicated respectively to PHASE-A-TAG 3 to PHASE-F-TAG 8. The control bit of a micro-instruction read from the control memory CS 2 in the D cycle described later is synchronized with the pipeline and shifted from PHASE-A-TAG 3 to PHASE-F-TAG 8. The valid/invalid status of a TAG is indicated by the valid flag (V). Here, TAG indicates the control bits of the micro-instruction transmited in the TAG registers 3 to 8. 
     Processing of one micro-instruction is divided into the micro-operations of each cycle of D, R, A, B 1 , B 2 , E 1 , E 2 , CK and W. Each micro-operation is as follows. 
     (1) In the D cycle, the OP code of the machine instruction is decoded and the micro-instruction words are read from the control memory CS 2. 
     (2) In the R cycle, data for the registers used in address calculation are read on the basis of the micro-instruction words. 
     (3) In the A cycle, the address calculation is carried out. 
     (4) In the B 1  and B 2  cycles, desired operand data is read from a buffer memory. 
     (5) In the E 1  and E 2  cycles, the specified operations are executed. 
     (6) In the CK cycle, a data check is performed. 
     (7) In the W cycle, operation result data are written into registers. The contents of each TAG register are used as explained above for controlling hardware used for processing in each corresponding cycle, such as registers and operation units. 
     FIG. 2 is a block diagram of a hardware structure used for execution of a dummy cycle in this embodiment hereunder. This structure is connected to the pipeline control structure of FIG. 1. Of the micro-instruction words read from the control memory CS 2, the control fields called instruction TAG control phase-A (ITCA), execution mask EM, phase-B loop control (PBLC), end loop (EL) and iteration counter for phase-B (ITCB) are used in order to realize a dummy cycle. Functions of each field will be described later. 
     In FIG. 2, 11 is an ITCA register; 12 is an EM register; 13 is a PBLC register; 14 and 14&#39; are end loop (EL) registers; and 15 and 15&#39; are ITCB registers. Blocks 16 to 19 are decoders; 20 is an ITC register; 21 is ITC zero detection circuit; and 22 is an operation unit. Blocks 23, 27 and 28 are AND gates; 24 is a single loop latch; 25 and 26 are NAND gates; and 29 is a PHASE-B-VALID latch. The registers 11, 12, 13, 14 and 15 form a part of the PHASE-A-TAG register 3 of FIG. 1, while 14&#39;, 15&#39; and 20 form a part of the PHASE-B-TAG register 4 of FIG. 1. The fields ITCA, EM and PBLC are read in PHASE-A from the corresponding registers 11, 12 and 13. Similarly, the EL and ITCB fields are read in PHASE-B from the registers 14 and 15. 
     A dummy cycle in this embodiment executes a loop for counting one by one the values present in the EM field in the ITC register 20. The time until ITC=0 is the protection or reserved time. The contents of the ITCA field in the ITCA register 11 are decoded in the decoder 16 at the end of PHASE-A and a control signal is output so that the value of the EM field is input to the ITC register 20 from the EM register 12. The value of the EM field in the EM register 12 determines the number of loops of the dummy cycle. 
     The contents of the PBLC field in the PBLC register 13 are decoded in the decoder 17 at the end of PHASE-A and a control signal is output so that the single loop latch 24 is set. The contents of the EL field in the EL register 14 are controlled in such a manner that the END LOOP signal is output from the AND gate 23 when the ITC zero detection circuit 21 has detected the All-&#34;0&#34; state of the contents of the ITC register 20. The contents of the ITCB field in the ITCB register 15&#39; are decoded by the decoder 19 at the end of PHASE-B and a control signal is output so that the value obtained by substracting 1 from the value of the ITC register 20 is input to the ITC register 20. 
     When the single loop latch 24 is being set and the END LOOP is not ON, the PHASE-B valid flag is set again for each end of PHASE-A by the gates 25 and 28, but it is not reset even for the end of PHASE-B. In other words, the PHASE-B valid flag is kept ON. The output of AND gate 27 is used as a set enable signal to the PHASE-B-TAG register 4 and the contents of the PHASE-B-TAG register 4 are kept constant until this signal is generated when the END LOOP signal appears. 
     The dummy cycle and the operation of FIG. 2 are explained with reference to the flow diagram of FIG. 3. In this figure, l to n indicate the execution loop of micro-instructions repeated in the dummy cyc1e. NEXT INST. indicates the execution of the next instruction is being delayed, i.e. time is being reserved, during the dummy cycle. 
     Flow 1: 
     At the end of PHASE-A, the value of EM is input (EM→ITC) into the ITC register 20 and the single loop latch 24 is set. At the end of PHASE-B (PHASE-B-RELEASE), it the single LOOP signal latch 24 is ON and the END loop is OFF, the valid flag (V) of PHASE-B is not reset. Therefore, operation of PHASE-B is executed again and the next instruction (NEXT INST.) is inhibitted from moving from PHASE-A to PHASE-B and is nullified. In addition, at the end of PHASE-B, operation (ITC-1)→ITC is executed. 
     Flow 2: 
     At the end of PHASE-B, (ITC-1)→ITC is executed. Since the contents of the ITC register 20 is not &#34;0&#34; and the single loop latch 24 is ON, the valid flag (V) of PHASE-B is still not reset and the next instruction (NEXT INST.) is inhibitted from moving to PHASE-B from PHASE-A. Thereafter, the flow 2 is repeated through the flow N-1. 
     Flow n: 
     Since the contents of ITC register 20 becomes &#34;0&#34; in PHASE-B, the END LOOP signal is generated by the AND gate 23 and thereby the output of gate 27 turns ON and simultaneously the single loop latch 24 is reset. When the single loop latch becomes OFF, the dummy cycle terminates and the next instruction (NEXT INST.) is allowed to move to PHASE-B from PHASE-A by the output of gate 27, PHASE-B-TAG SET signal. 
     As explained above, a time-out is generated for the period (EM+1)×2×(machine cycle) when a a desirable value is present in the EM field and the timing is protected during such period. The method of realizing a dummy cycle is not restricted to precisely the above method and other adequate methods can also be obtained as required. According to this invention, a desired timing protection can be easily provided by inserting a single micro-instruction in an existing micro-program processor&#39;s control memory and providing the necessary control circuits.