Patent GB-1443777-A (GB)
Title: Data processing apparatus
IPC: G06F9/38
Filed: 1973-07-19
Abstract: 1443777 Instruction pipe-lining INTERNATIONAL COMPUTERS Ltd 17 July 1974 [19 July 1973] 34427/73 Heading G4A A store 110, 115, Fig. 1, is accessible by an associated stage 108, 113 of an instruction pipeline during execution of a particular phase of an instruction, and a register associated with the or each store holds the identity of a location into which data is to be written when it becomes available at a subsequent phase of execution so that in the meantime the store may be accessed during the corresponding phase of execution of subsequent instructions. Instruction pipe-line.-A program counter 101 provides an instruction address to a fetch unit 103 which fetches the instruction from a low capacity, fast access store 104, if necessary after transferring the appropriate block of instructions from a main store 100. Stack management 106 decodes each instruction to determine the access steps required to obtain the corresponding operand, and either obtains the oper- and stack address relative to the contents of a selected base register or from a stack front end address register. The stack is accessed from a fast access store 110, if necessary after a block transfer. For an indirect operand the data retrieved from the stack is a descriptor pointing to the required operand and after an indexing operation using a selected index register, the operand is fetched at stage 113 from a further fast access store 115. A direct access operand is obtained directly from the stack by stage 108 and a literal value contained in an instruction passes through the pipe-line unaltered. The operand emerging from stage 113 is associated with the corresponding OP code emerging simultaneously from the last in a chain of buffers 116-119, and, after passing through buffers 121, is operated on by arithmetic unit 122. The output from Au 122 is supplied to main store 100 and, in the case of an updated operand is inserted in the appropriate store 110, 115 using the special write memory address register thereat. Fast access stores, Fig. 2.-The block address of an operand is used as a search argument in an associative table 33 to determine if the block is already in fast access store 10. A match identifying signal on lines 34 is encoded 15 to access the store 10 over X, Y drive lines 17, 18, multiple X or Y energizations being detected at 19, e.g. to initiate an access retry. If a subsequent update is required, the match identifier is put into the write memory register 53 for use in a subsequent write access when the updated data is available, the word address being held in a register 69. It is stated that update operations may be performed on different words in the same block under the control of a counter 73, update operations for other blocks being held up until register 53 can be cleared. If no match is found when searching table 32 the block required is transferred to store 10 from main store and overwrites the block previously stored at the location pointed to by a counter 78. Comparator 80 and counter 78 ensure that the most recently accessed block in store 10 goes to the bottom of the priority list for replacement. Operands of single or double length are selected by an indicator 48 and gates 39, 40.