Patent GB-1324617-A (GB)
Title: Digital processor
IPC: G06F15/80
Filed: 1971-09-02
Abstract: 1324617 Data processor NATIONAL CASH REGISTER CO 2 Sept 1971 [14 Sept 1970] 40930/71 Heading G4A A digital data processor is operable under the control of a cyclical timing device and includes a memory, a program counter including a memory address register, logic means responsive to the output of the memory, and means connecting the logic means and the program counter and being arranged to transmit response signals from the logic means to the program counter which is adapted to respond in various ways to these signals in accordance with the time within a processor cycle at which they occur. The processor is said to be suitable to control a data terminal in a system comprising several such terminals connected to a central unit, the system being used, e.g. in a department store, see Specification 1,324,616. The processor is described in some detail in functional terms. Briefly it comprises a read only memory 14 addressed by a program counter 16 and connected, via a parallel-serial converter 18, to a memory bus 22. The processor further includes a group of recirculating shift registers 34 and three special registers, register 42, accumulator 44, and an I/O buffer register 46. Register 54 can be used as a counter for counting pro. cessor clock signals where a delayed action is required. The various registers may be selected individually by selection device 28 which includes an adder/subtractor 32, thus when an ADD instruction is read from memory the selected origin register will apply its most significant character simultaneously to origin bus 36 and to its least significant character position, the remaining characters being shifted up one place, the destination register will apply its most significant character to destination bus 38 in the same way and the ADD/SUBTRACT circuit will add the characters and apply the result to arithmetic bus 40 for storage in accumulator register 56. The registers may be selected directly from the instruction or by means of data stored in the accumulator which is transferred to the selection device in response to the instruction. Several instruction formats as well as a number of individual instructions are described. Timing arrangements.-The processor is constructed from MOS, LSI four phase circuits and operates on a sixteen bit periodic cycle generated by network 12. Each bit of the timing cycle is divided into four phases by four overlapping timing signals, Fig. 2 (not shown). The program counter includes logic circuits 26 which normally cause the count to be incremented following each sixteen bit cycle but which may cause the count to be increased by more than one or to be held constant for several cycles in accordance with the time required to implement a given instruction. A memory response bus 66 receives signals from an indicator 60, which is responsive to instructions on memory bus 22, and from I/O buffer 46, accumulator 44, and register selection logic 30, the signals being single pulses occurring at given times with the sixteen bit clock cycle. The program counter 16 is responsive to these signals on the response bus 66 in a way determined by their time or occurrence within a cycle. The various units in the processor are connected to bus 66 by transistors which are enabled at the appropriate times to pass the required signals to the bus. Five possible signals applied to the response bus 66 are described. Due to the construction of MOS circuitry the timing is described in terms of half bit (within the sixteen bit cycle) times. The times at which the signals are applied to the bus are 7¢, 8¢, 12¢, 13¢, and 14¢. A signal at time 7¢ instructs logic 26 to treat the last six bits of the current instruction as an index for accessing the first instruction along a program branch, the index modifying the current program count. A signal at time 8¢ causes logic 26 to read from memory the next word in accordance with the program count at the end of the current cycle, the resulting accessed word being treated as if it were not an instruction. A signal at time 12¢ causes logic 26 to omit to read the next word at the end of the current cycle, e.g. when the current instruction requires two (or more) cycles for execution or when a conditional branch is not to be taken. A signal at both times 12¢ and 13¢ causes an unconditional branch to be taken by reading the next instruction at the end of the current cycle and treating the resulting word as a twelve bit indirect address for a branch instruction. The counter is set to the address and the memory accessed to produce the first instruction along the branch. A signal at time 14¢ causes the next word to be read in accordance with the program count, the word being treated as an instruction in the normal way. When a branch occurs the current address is stored in a return address register whose contents may subsequently be modified by a constant contained in a word accessed from memory. Accessed instructions may be skipped when a comparison of a field within the instruction and the contents of an indicator register 62 indicate inequality.