Patent GB-1529581-A (GB)
Title: Data processing apparatus
IPC: G06F9/48
Filed: 1975-10-06
Abstract: 1529581 Data processing system XEROX CORP 6 Oct 1975 [29 Oct 1974] 40808/75 Heading G4A A microprogram controlled data processing system includes a microprogram memory 60 addressed by means of an address memory 68 containing a plurality of address registers each associated with a respective task, there being selection means to select the address register associated with the highest priority task requiring execution thereby to access the appropriate microprogram. General.-The system includes a main data memory 36, a register file 2, an arithmetic and logic unit 20 associated with registers 6 and 10 to perform operations under microprogram control on data from selected registers 2, from memory 36, and in respect of a magnetic disc controller 30, and a display (e.g. a CRT) controller 32. Data read from the main store 36 is parity checked 80, and the system further includes a main memory address register 14, an instruction register 16, and an addressable constant memory 28. The ALU 20 is controlled by a read only memory 40 addressed by 4 bits of a microinstruction, see below, and its output may be shifted in shifter 44 under microprogram control. Microprogramming.-Microinstructions are stored in memory 60, each specifying the address of its succeeding instruction in a 10-bit field. The next instruction address is fed via line 66 to the address memory 68, via modification logic 74 used for branching. The address memory has for each of a number of tasks one addressable location comprising two stages. Each micro-instruction includes 32 bits, the remaining 22 including a selection field for registers in file 2, an ALU function field, a bus source field to select data from the various sources, e.g. main memory 36 register file 2, &c., for application to the bus 24, two function fields, and two bits causing the loading of registers 16 and 6 respectively. Certain codes in the two function fields cause respective operations to be performed. However the interpretation of the remaining codes depends on the task being executed. Several tasks of varying priority are provided, there being a priority decoder 78 which, in response to a special microinstruction indicating that a new task may be selected and hardware generated signals specifying that associated tasks require execution, acts to select the location in address memory 68 corresponding to the highest priority task requiring execution. In this way execution may switch between tasks after a one instruction delay caused by the two stages of address memory 68. The tasks have various priorities ranging from the highest, detection of a main data memory parity failure, to the lowest which is a task emulating an instruction set similar to that of the Data General Nova computer. The second function field of a microinstruction generally contains branch conditions. When a branch condition is met modification logic 74 OR's one or more bits (up to 10) into the next instruction address being fed via line 66 to address memory 68. Thus two or more way branching is possible given a proper choice of instruction address. Display controller.-The display controller receives data from the main memory under microprogram control, the appropriate microprogram being actuated by task switching in the manner described above in response to request signals from the controller. The data is read into a main buffer, from there into an intermediate buffer, and from there to a shift register for conversion to serial form for use in the CRT display. Clocking signals and vertical and horizontal blanking signals are also formed. Disc controller.-The disc controller operates a number of two-sided discs and receives data and disc commands in the form of disc addresses, read/write instructions, &c., from the main memory, control being under microprograms activated by task switching, see above, in response to request signals supplied by the controller.