EP0290467A1 - Apparatus and method for a microprogrammed data processing system having a plurality of control stores - Google Patents
Apparatus and method for a microprogrammed data processing system having a plurality of control storesInfo
- Publication number
- EP0290467A1 EP0290467A1 EP87901238A EP87901238A EP0290467A1 EP 0290467 A1 EP0290467 A1 EP 0290467A1 EP 87901238 A EP87901238 A EP 87901238A EP 87901238 A EP87901238 A EP 87901238A EP 0290467 A1 EP0290467 A1 EP 0290467A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- microinstruction
- control
- central processing
- processing unit
- segment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/223—Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
Definitions
- This invention relates generally to data processing systems and, more particularly, to central processing subsystems that are implemented using microprogramming techniques. By providing a plurality of control stores that are accessed by the same microinstruction at different time periods, simplifications in implementation of the central processing subsystem can be achieved.
- the data processing system includes at least one central processing unit or subsystem 10 (or 11), at least one input/output unit or subsystem 13 (or 14), a main memory unit or subsystem 15 and a system bus 19 coupling the plurality of units or subsystems.
- the central processing unit(s) manipulate groups of logic signals according to a sequence of instructions in a programs stored in software or firmware. Typically the logic signal groups and the program itself are stored, at least during program execution, in the memory unit.
- the input/output unit(s) provides an interface between the data processing system and terminal units, mass storage units, communication units and other units requiring coupling to the data processing system.
- a console unit can be coupled to the central processing unit(s) in order to initialize the data processing system, to control test and diagnostic procedures, and to be used as a terminal unit when the system is in operation.
- the system bus by providing a coupling between data processing system subsystems, provides a convenient technique for altering the configuration of the data processing system to accommodate a variety of processing requirements.
- the present invention relates to the execution of instructions by the central processing unit.
- a data processing system such as is illustrated in Figure 1, the actual manipulation of data signal groups takes place under the control of a group of related instructions that is generally called a program. These instructions are executed in a sequence.
- FIG 2a the execution of a series of instructions according to the related art is illustrated.
- the instruction #1 is executed by a central processing unit subsystem.
- a next instruction #2 in the sequence is executed by the central processing unit subsystem during the second time interval T n .
- the data processing unit executes instruction #3 during a third time interval T n .
- the interval for the execution of any instruction by the data processing unit requires a predetermined period of time.
- the execution time for an instruction can have a variable length
- complex apparatus must then be included in the central processing unit to coordinate the exchange of data signal groups between the groups of logic components within the central processing unit and between the central processing unit and the other subsystems of the data processing system.
- the period for execution of the three instructions will generally be three times the basic time period. It will be clear that the basic time interval must be of -sufficient duration to permit the execution of the lengthiest instruction in the instruction set.
- a technique for dividing the execution of an instruction generally referred to as a macroinstruction, into the execution of at least one microinstruction has been devised.
- Each microinstruction is, in turn, divided into a group of microinstruction segments, each segment being executed sequentially by the central processing unit.
- This technique is referred to as "pipelining" the execution of an instruction set.
- each segmented microins ruction can (although not necessarily) take a longer period of time than is required for the execution of a nonsegmented microinstruction, because of the additional apparatus required for the division of the microinstruction into the microinstruction segments, an instruction stream can be executed faster than is possible for a nonsegmented microinstruction.
- Figure 2b the division of an microinstruction into a plurality of segments is shown. It will be understood that each segment relates to a separate and independently operating group of components in the central processing unit. Registers and gates, according to principals well-known in the art of data processing system design, separate the operation of component group executing a particular segment. The subinterval, t 0 , for each segment must be of sufficient period of time to permit the execution of all possible segments in each apparatus group.
- Instruction #1 is now completed in the new (and possibly longer) time period of T' 0 equals n times t , where t Q is the subinterval required for the execution of each microinstruction segment and where n is the number of microinstruction segments required for the execution of each microinstruction.
- the next microinstruction in the sequence, microinstruction #2 begins an interval n after the beginning of microinstruction #1.
- the third microinstruction in the sequence, microinstruction -#3 then begins an interval t thereafter.
- Each microinstruction can take the increased amount of time for the execution.
- FIG. 3a an organization for a central processing unit 10 implementing the pipelined execution of an microinstruction sequence is shown.
- the central processing unit is divided into an instruction subunit 31 and associated control unit 32, an execution subunit 33 and a cache (or local) memory subunit 34.
- the cache memory subunit 34 is coupled to the system bus 19 and exchanges groups of logic signals with the other subsystems of the data processing system by means of the system bus under control of the control unit 32.
- the execution subunit 33 again under control of the control unit 32, performs the manipulation of the data signal groups that is defined by the instructions being executed.
- the instruction subunit 31 receives the macroinstructions to be executed and reformats the instructions in a manner that can be used to control the operation of the central processing unit 10.
- the signals corresponding to the macroinstructions are applied to a random access memory or logic in the control unit 32 and the location of the random access memory in control unit 32 addressed by the macroinstruction signals contains an address. This address is then applied to a control store within control unit 32, the control store being an addressable memory.
- the output signals from the control store are referred to as the microinstructions and are logic signals that are applied to the logic elements of the central processing processing system.
- the signals provided by the microinstructions control the operation of central processing unit.
- the signals from the microinstructions are arranged in groups called micro-orders, and each micro-order can be used to control a portion of the central processing unit, for example, the execution of a microinstruction segment.
- the first instruction will be processed by instruction unit during a first interval t Q .
- the execution subunit 33 of the data processing unit can be processing the first instruction
- the instruction subunit 31 of the central processing system can be processing the second instruction.
- the cache memory unit can be processing instruction #1
- the execution unit can be processing instruction #2
- the instruction unit can be processing instruction #3.
- This three level pipeline, with concurrent processing in the cache memory subunit, the execution subunit and the instruction subunit can continue as long as instructions are entered into the instruction subunit 31 or as long as addresses are provided by a microbranch and sequencer unit (shown in Figure 4b).
- each of the functional subunits 31, 32, 33, and 34 described above can require a plurality of subunits to complete each requisite operation to complete the execution of each instruction.
- the groups of signals, sometimes referred to as micro-orders, controlling the individual units must be systematically delayed to coordinate the micro-orders with the flow of the signal groups, being processed, through the subunits of the central processing unit 10.
- a control unit 32' for use in delaying the issuance of micro-orders is shown.
- a macroinstruction is extracted from a unit such as an instruction buffer (not shown) in instruction subunit 31 (refer to Figure 3a) , and applied to a decoder random access memory 50.
- a decoder random access memory 50 During time T , the output of random access memory 50, an address of the first of a set of microinstruc ions for performing the macroinstruction, is applied to control store 60 through a temporary storage element such as a latch 70 and buffer 8JD.
- a temporary storage element such as a latch 70 and buffer 8JD.
- Control store 60 generates the associated set of micro-orders, which are then applied to latch 62.
- Latch 62 is divided into three sections to accommodate the three level pipeline illustrated in Figure 2c.
- latch 62 outputs one of its three sets of logic signal groups stored therein as micro-orders to subunits of the central processing unit, while applying the remaining two sets to latch 64.
- latch 64 outputs one of the remaining sets of micro-orders to the subunits of the central processing unit and stores the last set in latch 68. Then, during time T, latch 68 outputs the last set of micro-orders.
- the aforementioned and other objects are accomplished, according to the present invention, by a central processing unit operating under microprogram control.
- the control unit provides the signals that control the apparatus processing the data signal groups.
- the control unit includes a plurality of control store units for converting address signal groups into microinstruction segments.
- the plurality of control stores results in a plurality of microinstruction segments, each microinstruction having a narrower field than the microinstruction from a single control store.
- FIG. 1 is a block diagram of a data processing system capable of using the present invention.
- FIG. 2a, FIG. 2b, and FIG. 2c are diagrammatic representations of the division of an instruction into segments.
- FIG. 3a is a block diagram of a central 5 processing unit with an associated control unit capable of implementing segmented instruction execution.
- FIG. 3b is a block diagram of a control unit for use in the central processing unit of FIG. 3a.
- FIG. 4a is a block diagram of a data processing system having a plurality of control units according to the present invention.
- FIG. 4b is a block diagram of the control unit shown in Fig.4a superimposed on a timing chart. • 15 DESCRIPTION OF THE PREFERRED EMBODIMENT 1. DETAILED DESCRIPTION OF THE DRAWINGS
- FIG. 4a a block diagram of 20 a central processing unit having a control unit 32 with a plurality of control stores according to the present invention is shown.
- Fig. 4b shows a more detailed diagram of a control unit 32 of the present invention.
- a plurality of time 25 intervals specifically T, through T fi , are shown. These time intervals generally relate to the flow of control of the central processing unit for execution of a microinstruction, i.e. each time interval relates generally to the execution of a microinstruction segment. Instructions are retrieved from the cache memory subunit 34 and entered in the instruction buffer 401.
- a given (macro)instruction is extracted from the instruction buffer 401 and, during T réelle , applied through latch 410 to the decoder random access memory 402.
- the output signals from the decoder random access memory 402 are applied to a first set of terminals of a multiplexer/latch circuit 403.
- the output signals from the multiplexer/latch circuit 403 are applied to the first control store 404 and simultaneously to latch circuit 416; however, the signals are not entered into latch circuit 416 until time period T, .
- Output signals of control store 404 are applied directly to microbranch and sequencer logic unit 405 and to latch circuit 411.
- the output signals from latch circuit 416 are applied to control store 402 and to latch circuit 414.
- Output signals of control store 402 are applied directly to latch circuit 413.
- the output signals from the latch circuit 414 are applied to a third control store 409, the output signals from third control store 409 being applied directly to latch circuit 419.
- the output signals of latch 411, latch 413, and latch 419 are microinstruction segments that can be generated by the same address and on consecutive clock cycles, respectively during intervals T, , T_. and Tg .
- the execution logic unit 425 along with associated latch circuit 426, and the register file 420, along with associated latch circuit 421, are shown as examples of the essential_central processing apparatus that receive micro-orders at differing times and can. receive microinstruction segments from different control stores.
- Latch circuits 410, 403, 411, 413, 414, 416 and 419 along with the latch circuits 421 and 426 are included to emphasize the partitioning in apparatus grouping and in time.
- the microbranch and sequencer logic 405 is included as an example of the apparatus that requires early receipt of signals from the control store. The microbranch sequencer is used to implement, among other operations, branching operations and subroutines.
- a segment of microinstructions from control store 404 applied to unit 405 may call into operation one such branching operation or subroutine.
- a signal from control store 404, applied to multiplexer/latch circuit 403, causes circuit 403 to select the signal from the microbranch and sequencer logic unit 405. It should be emphasized that, as soon as circuit 403 selects signals from microbranch and sequencer logic unit 405, the control unit 32 is redirected to begin a new microinstruction that starts during a time period T Tin. 2.
- the execution logic unit 425 the unit generally performing the logic operations on the data signal groups, typically includes several units ' and can operate in a plurality of modes.
- a different set of logic signals (micro-orders) will be required for control of each unit operating in the appropriate mode.
- the operation of the execution logic unit 425 is typically completed within one clock cycle.
- the efficient operation of the execution logic unit and associated apparatus requires that the data to be manipulated be readily available to the appropriate portion of the execution logic unit.
- the execution logic unit will typically perform a multiplicity of operations, but only the desired results of the operation are transferred to the appropriate succeeding logic elements.
- the data signal groups to be operated upon during a first system clock cycle, the operation on the data signal groups during a succeeding system clock cycle, and the utilization and distribution of the results during a yet later system clock cycle take place in a relatively narrow band of clock cycles. However, these operations can be separated according to principles known in the ar .
- the plurality of control stores can be synchronized with the sequential manipulation of data signal groups during a microinstruction sequence. It will be clear that the address signals applied to the control stores can be delayed beyond the one clock cycle for each control store if more appropriate microinstruction segment synchronization can be achieved. It will also be clear that, although no saving in the width of a total microinstruction is realized, by partitioning the microinstruction into at least two smaller microinstructions, convenience in implementation can be realized.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/823,804 US4794527A (en) | 1986-01-29 | 1986-01-29 | Microprogrammed data processing system using latch circuits to access different control stores with the same instruction at different times |
US823804 | 1997-03-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
EP0290467A1 true EP0290467A1 (en) | 1988-11-17 |
Family
ID=25239772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP87901238A Withdrawn EP0290467A1 (en) | 1986-01-29 | 1987-01-29 | Apparatus and method for a microprogrammed data processing system having a plurality of control stores |
Country Status (10)
Country | Link |
---|---|
US (1) | US4794527A (zh) |
EP (1) | EP0290467A1 (zh) |
JP (1) | JPH01500065A (zh) |
KR (1) | KR910001054B1 (zh) |
CN (1) | CN1008667B (zh) |
AU (1) | AU6932187A (zh) |
CA (1) | CA1278385C (zh) |
ES (1) | ES2004200A6 (zh) |
IL (1) | IL81428A (zh) |
WO (1) | WO1987004819A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4825356A (en) * | 1987-03-27 | 1989-04-25 | Tandem Computers Incorporated | Microcoded microprocessor with shared ram |
US4875160A (en) * | 1988-07-20 | 1989-10-17 | Digital Equipment Corporation | Method for implementing synchronous pipeline exception recovery |
US5006980A (en) * | 1988-07-20 | 1991-04-09 | Digital Equipment Corporation | Pipelined digital CPU with deadlock resolution |
US5019967A (en) * | 1988-07-20 | 1991-05-28 | Digital Equipment Corporation | Pipeline bubble compression in a computer system |
JPH04140892A (ja) * | 1990-02-05 | 1992-05-14 | Internatl Business Mach Corp <Ibm> | 制御データをエンコードする装置及び方法 |
CN102243578A (zh) * | 2010-05-10 | 2011-11-16 | 北京凡达讯科技有限公司 | 一种芯片的命令译码方法、系统及装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5548604B2 (zh) * | 1973-03-30 | 1980-12-06 | ||
GB1426749A (en) * | 1973-06-05 | 1976-03-03 | Burroughs Corp | Micro programme data processor having parallel instruction flow streams for plural level of subinstruction sets |
JPS5068747A (zh) * | 1973-10-22 | 1975-06-09 | ||
US3953833A (en) * | 1974-08-21 | 1976-04-27 | Technology Marketing Incorporated | Microprogrammable computer having a dual function secondary storage element |
JPS522242A (en) * | 1975-06-24 | 1977-01-08 | Hitachi Ltd | Information processing apparatus |
US4131941A (en) * | 1977-08-10 | 1978-12-26 | Itek Corporation | Linked microprogrammed plural processor system |
US4370709A (en) * | 1980-08-01 | 1983-01-25 | Tracor, Inc. | Computer emulator with three segment microcode memory and two separate microcontrollers for operand derivation and execution phases |
US4390946A (en) * | 1980-10-20 | 1983-06-28 | Control Data Corporation | Lookahead addressing in a pipeline computer control store with separate memory segments for single and multiple microcode instruction sequences |
US4574394A (en) * | 1981-06-01 | 1986-03-04 | Environmental Research Institute Of Mi | Pipeline processor |
US4586127A (en) * | 1982-11-03 | 1986-04-29 | Burroughs Corp. | Multiple control stores for a pipelined microcontroller |
US4591972A (en) * | 1982-11-15 | 1986-05-27 | Data General Corp. | Data processing system with unique microcode control |
US4574344A (en) * | 1983-09-29 | 1986-03-04 | Tandem Computers Incorporated | Entry control store for enhanced CPU pipeline performance |
WO1985002278A1 (en) * | 1983-11-10 | 1985-05-23 | Fujitsu Limited | Microprogram control method |
-
1986
- 1986-01-29 US US06/823,804 patent/US4794527A/en not_active Expired - Lifetime
-
1987
- 1987-01-28 ES ES8700206A patent/ES2004200A6/es not_active Expired
- 1987-01-28 CA CA000528358A patent/CA1278385C/en not_active Expired - Fee Related
- 1987-01-29 CN CN87102161A patent/CN1008667B/zh not_active Expired
- 1987-01-29 AU AU69321/87A patent/AU6932187A/en not_active Abandoned
- 1987-01-29 KR KR1019870700871A patent/KR910001054B1/ko not_active IP Right Cessation
- 1987-01-29 IL IL81428A patent/IL81428A/xx not_active IP Right Cessation
- 1987-01-29 WO PCT/US1987/000180 patent/WO1987004819A1/en not_active Application Discontinuation
- 1987-01-29 EP EP87901238A patent/EP0290467A1/en not_active Withdrawn
- 1987-01-29 JP JP62501061A patent/JPH01500065A/ja active Pending
Non-Patent Citations (1)
Title |
---|
See references of WO8704819A1 * |
Also Published As
Publication number | Publication date |
---|---|
KR880700966A (ko) | 1988-04-13 |
ES2004200A6 (es) | 1988-12-16 |
KR910001054B1 (ko) | 1991-02-23 |
CN87102161A (zh) | 1987-09-09 |
CN1008667B (zh) | 1990-07-04 |
JPH01500065A (ja) | 1989-01-12 |
IL81428A0 (en) | 1987-08-31 |
CA1278385C (en) | 1990-12-27 |
AU6932187A (en) | 1987-08-25 |
US4794527A (en) | 1988-12-27 |
WO1987004819A1 (en) | 1987-08-13 |
IL81428A (en) | 1990-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0045634B1 (en) | Programmable digital data processing apparatus arranged for the execution of instructions in overlap | |
KR860001274B1 (ko) | 병렬처리용 데이터 처리 시스템 | |
US4228497A (en) | Template micromemory structure for a pipelined microprogrammable data processing system | |
CA1109967A (en) | Expandable microprogram memory | |
EP0054243A2 (en) | Memory controlling apparatus | |
US4310880A (en) | High-speed synchronous computer using pipelined registers and a two-level fixed priority circuit | |
US4443848A (en) | Two-level priority circuit | |
US3953833A (en) | Microprogrammable computer having a dual function secondary storage element | |
US4459666A (en) | Plural microcode control memory | |
GB1594014A (en) | Microprogramme system with fixed jump addressing | |
JPS60167034A (ja) | Cpuパイプラインの性能向上用補助的制御記憶装置 | |
US4429361A (en) | Sequencer means for microprogrammed control unit | |
CA1099415A (en) | Rom initializing apparatus | |
US4258417A (en) | System for interfacing between main store memory and a central processor | |
EP0378071B1 (en) | Multiprocessor controller having shared control store | |
US4047245A (en) | Indirect memory addressing | |
GB2153558A (en) | Pipelined data processing | |
US4794527A (en) | Microprogrammed data processing system using latch circuits to access different control stores with the same instruction at different times | |
EP0164418B1 (en) | Microprogram control system | |
US5124910A (en) | Microprogram control apparatus for generating a branch condition signal to be designated by a micro-branch instruction | |
US4053947A (en) | Method and apparatus for executing sequential data processing instructions in function units of a computer | |
US4107774A (en) | Microprogram splatter return apparatus | |
US4803615A (en) | Microcode control of a parallel architecture microprocessor | |
JP2680828B2 (ja) | ディジタル装置 | |
EP0290466B1 (en) | Method and apparatus for requeueing trapped microaddresses in a pipelined data processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE CH DE FR GB IT LI LU NL SE |
|
RBV | Designated contracting states (corrected) |
Designated state(s): CH DE FR GB IT LI NL |
|
17P | Request for examination filed |
Effective date: 19880927 |
|
17Q | First examination report despatched |
Effective date: 19900723 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 19930112 |
|
RIN1 | Information on inventor provided before grant (corrected) |
Inventor name: STEWART, ROBERT, E. Inventor name: HOOPER, DONALD, F. |