CA1167971A - External microcode operation in a multi-level microprocessor - Google Patents

External microcode operation in a multi-level microprocessor

Info

Publication number
CA1167971A
CA1167971A CA000395488A CA395488A CA1167971A CA 1167971 A CA1167971 A CA 1167971A CA 000395488 A CA000395488 A CA 000395488A CA 395488 A CA395488 A CA 395488A CA 1167971 A CA1167971 A CA 1167971A
Authority
CA
Canada
Prior art keywords
macroinstruction
microinstructions
central processor
microinstruction
processor unit
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.)
Expired
Application number
CA000395488A
Other languages
French (fr)
Inventor
Michael B. Druke
Richard L. Feaver
Stefan Kosior
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
Data General Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Data General Corp filed Critical Data General Corp
Application granted granted Critical
Publication of CA1167971A publication Critical patent/CA1167971A/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units

Abstract

Abstract of the Invention A data processing system the central processing unit (CPU) of which is responsive to and executes microinstructions generated by the decoding of macro-instructions so as to provide one or more data processing operations. The sys-tem is arranged so that such microinstructions can be supplied to the CPU from a CPU-resident microcode decoding logic or from one or more external microcode decoding units. Each of the external units can identify a macroinstruction which it is capable of decoding and includes logic for externally providing one or more microinstructions which result from the decoding process. If an exter-nal microcode unit and the CPU-resident decode logic are both capable of such decoding operation. the external unit overrides the CPU decoding logic and con-trols the decoding operation externally. The external microcode unit includes logic for monitoring the number of microinstructions supplied to the CPU which have not yet been executed by the CPU.

Description

3re~

This invention relates to data processing systems using microproces-sors and, more particularly, to systems which use microcode architecture and arecapable of responding to e~ternally supplied microcoded instructions by utili-zing unique interface techni~ues thereorO
Data processing systems have generally been developed to provide sys-tem configurations which range from compact single-board micro-computers ~o morecomplex high per~ormance mini-compute~s. Such systems use microcode architec-ture in which macroinstruc~ions are sui~ably decoded so as to provide access to a microinstruction or to a sequence of more than one microinstruction obtained from a suitable data store thereof.
In order to reduce the data storage space required for the microin-str~uctions and to avoid handling a large number of "wide" instruction words, certain microcode systems have utilized multi-level, in most cases "two-level", microcode store techniques, as opposed to one-level microcode stores, as is known in the art. One such two level microcode system which is used to increase the power of a conventional two-level microcode technique has been described in Canadian Patent Applicatlon Serial No~ 370,565, filed ~ebruary 10~ 1981 and entitled "Data Processing System" as filed by Bernstein et al. and assigned to Data General Corporatlon of Westboro, ~assachusetts.
~ In accordancè with the system described therein, the microcontrol store is formed as an "orthogonal" store in which a firstJ or "vertical", micro-control store provides a "narrow" microinstruction word portion having one fieldcomprising a selected number of vertical microinstruction bits for selecting oneof a plurality of second, or "horizontal"3 microinstructions from a second level~
or horizontalj microcontrol store3 one or more "modifier" fields, as described in such application, and a sequ0ncing field for presenting the address of the ~.
,~

' ; ' 7~

next ~i.eO~ each successive) vertical microinstruc~ion in a sequence thereof.
As described therein, vertical microinstructions (microcodes) can be fetched either from a CPU-resident vertical control ROM or from one or more external microcontrollers via one or more external microcontroller interface units. The external microcodes can be obtained a~ any one time from one of the plurality of external microcontroller units by the use of suitable time-multiplexing tech-niques using a *ime-multiplexed microcode bus.
While such system has provision for supplying external microcode infor-mation utilizing appropriate software, for example, the most effective way for providing such external microcode information is descri~ed with reerence to the invention disclosed herein. Accordingly, in order ~o achieve effective use of both the CPU-resident microcode information and the external microcode informa-tion, the invention provides for sui~able inter~ace logic which permits the most effective control of the transfer of exteTnal microcode information from an ex-ternal mlcrocode unit. While the invention is applicable to such multi-level mlcrocode systems, its use is not limlted thereto and the principles thereof are -also applicable to~single-level systems.
In accordance with the invention, a unique microcode control interface unit is utilized wherein every macroinstruction supplied, for example, by sof*-nare to the system is simul~aneously decoded by bo~h the CPU-resident microcode control unit and the microcode interface units. A subset of the operational code (OP-CODE) in the macroinstruction identifies which type of microcode control unit ~i.e., an external mlcrocode unit or an internal, i.eO, a CPU-resident, unit) is required to perform the decoding operation in order to produce the required microinstruction or sequence of microinstructions. If the OP-CODE identifies a situation in which both an external and an internal microcode control unit are
-2-i capable of performing the decoding operation, appropriate lagic is provided bythe selected external unit so that the external microcode controller can over-ride the CPU-resident controller and, therefore, can provide the required deco-ding operation.
The external microcontrol interface unit includes logical capability for determining the successive addresses of successive microinstructions in a sequence thereof within the external interface unit itself without the need for any logical operations to be performed by any CPU-resident control logic units.
The external microcontrol interface unit also has unique logic for monitoring the transfer of microinstruc~ions from the external unit to the CPU
and for monitoring the execution thereo by the CPU so that, at any point in time, the external microcontroller unit keeps track of the diference between how many microinstructions have been transferred and how many of such micro-instructions have been executed by the CPU, and, accordingly, how many of the transferred microinstructions have yet to be executed.
Briefly summari~ed, the present invention provides a data processing system comprising a central processor unit including means responsive to a macroinstruction for decoding said macroinstruction to produce a sequence of one or more microinstructions; and processing logic means responsive to said microinstructions for executing said microlnstructions to provide one or more data processing operations; said system further comprising one or more external microcode control units, each including means responsive to a macroinstruction received from said central processor unit for decoding said macroinstruction to produce a sequence of one or more microinstructions; means responsive to sald decod m g means for transmitting said one or more microinstructions to said central processor unit for execution thereby; and said decoding means further . . .
. ~ , , . :: . .- . .. : .

i'7~

including means responsive to a macroinstruction received from said central processor unit for determining whether said macroinstruction is one which is to be decoded by a selected one of said external microcode control units or one which is to be decoded by said central processor unit.
The invention can be described more fully with the help of the accom-panying drawings wherein:
Figure 1 shows a broad block diagram of an overall system which utilizes the invention;
Figure 2 shows a more specific block diagram of an exemplary external microcontroller interface unit as used in the system of Figure l;
Figure 3 shows a more specific block diagram of exemplary sequencing logic used in the external microcontroller interface unit of Figure 2; and Figure 4 shows a timing diagram helpful in understanding an exemplary operating sequence of the external microcontroller interface unit of the inven-tion.
An overall system which utilizes the external microcontroller inter-face unit of the invention is shown in Figure 1 wherein a microprocessor unit, identified as a central processor unit or CPU 10 in the figure, is interconnec-ted via an appropriate system bus 11 with a memory system 12, one or more sys-tem input/output ~I/O) units 17, I/O interface units 14 and 14A for interfacing I/0 units via different I/0 bus means 15 and 15A, respectivelyJ and one or more external microcontroller (XMC) interface units 13. In a particular embodiment of the system, for example, the system bus 11 may be in the form of a 16-bit parallel system bus while 16-bit microcode inputs from an external microcontrol-ler unit 13 can be transmitted to the~CPU in a time-multiplexed fashion via an intermediate 8-bit bus 13A and the 8-bit microcode bus 16. Further 16-bit '``

: :

i'7~

intermediate system buses llA are provided from the main system bus 11 to the external microcontroller units 13 as shown.

: ?

:

-4a-A

.. .. . . . .
, ....... . ,.; , ~ . .

. . . .. . .

.
~ -...

The system o~ Figure 1 is generally described in the a~orementioned Canadian patent application of Bernstein et al. and the particular operation of the CPU and its operatlonal relationship with the memory and various I/O units and buses is described therein in detail. Pur~her explanation o such detailed operation is not necessary in order to describe this invention and, accordingly, reference may be made to the previously filed Canadian application~ if necessary for an understanding ef the overall system operation. For convenience the in-vention is described as used in such multi_level microcode system although, as mentioned above, its use is not llmited thereto.
In systems which utilize multi-level ~e.g., ~wo-level~ microcode archi-tecture (as in the above referred to application~ and which provide for the supplying of external microcode information, as in the system of Figure 1, the latter information must be supplied through~one or more suitable interface units such as shown by units 13 of the figureO In conventional systems capable of utilizing external microcode operation, the CPU normally requires appropriate logic which responds to software for identifying the macroinstruction to be de-coded as one which requires decoding either by the internal microcode architec-ture or b~ the external microcode architecture. Once the CPU has identified the macroinstruction as requiring an external microcode decoding proced~ure, it supplies the macroinstruction to the designated external microcontroller unit whlch then proceeds to decode the macroinstruction so as to provide ~he initial microinstruction via the microcode bus.
In many such conventional systems once the initial microinstruction has been provided to the CPU rom an external micrccode unit, the CPU then uti-llzes its`own internal se~uencing logic and microcode control store to provide ~he subsequent microinstructions of ~he particular sequence required by the .

`:

~.

7~

decoded macroinstruction. Control of the macroinstruction decoding process, as well as the process for determ~ning the address Qf each subsequent mlcro~nstruc~
tion required in the sequence~ e~ectlvel~, thereore, resides in the CPU
In contrast, the external microcontrol interface unit of the invention permits control of the macroinstruction decoding and the sequencing of the micro-instructions to reside fully in the external microcontroller unit itself so as to provide a more effective and efficient use of an instruction register "pipe-lining" process which is conventionally utilized in the CYU of such a two-level microcode s~stem of the type described above.
Figure 2 shows an exemplary external microcontroller interface (X~C) unit 13 having a configuration which would be utilized in each of the XMC units 13 shown in Figure 1. In such exemplary unit a macroinstruction is supplied under control of CPU via an intermediate s~stem bus~ llA,~such macroinstruction being defined by a suitable 16-bit word, as shown.
The macrolnstruction is supplied to the X~C instruction register 20 which supplies such macroinstructlon, in a pipe~lined mannerJ LO a decode/matrix unit ~1 which utilizes a sultable lnstruction program logic array ~IPLA~ matrix providing for appropriate decoding of the macroinstruction to produce an initial ~icroinstruction. Such decoding, for example, is of the same nature as is dis-cussed with reference to the CPU-resident decode control PLA unit which is dis-closed in the aforesaid application. The initial microinstruction includes the horizontal address bits field ~ADRH) and the two vertical modifier fields (Vl~
V2~ J the six~bit horizontal address and each of the four-bit vertical modifiers being supplied to the CPU via the X~C bus 16 and intermediate bus 13A through an appropriate multiplexer and buffer unit ?2~ The multiplexer unit supplies such ields as part of two time~multiplexed eight-bit bytes as depicted at the output ~6-. I

.' ' 7~

thereof, The IRLA decode unit 21 also supplieg a two-bit "ini~ial next address mode" ~INAM) signal vla a nex~ address ROM unit 23 to the multipl0xer and buffer unit 22 so that a total o~ 16-bits ~ADRH, Vl, V2 and INAM~ are supplied via multiplexer and buffer unit 22 to bus 13A for the initial microinstruction.
The IPLA decode/matrix unit 21 also supplies a next address mode ~NEXT) field of 10 bits and an initial address control ~IADRC) field of 10 bits to the XMC sequence logic unit 24, thc structure and operation of which is explained in more detail with reference to Figure 3.
~ he sequence unit 24 then con~rols ~he supplying of a sequence of hori-lQ ~ontal address and vertical modifier fields via a control program logic array decode ~CPLA) matrix unit 25, as discussed below, each of the sequence of hori-zontal addresses and vertical modifie~s then belng appropriately supplied in sequence via multiplexer/buffer unit 22 to the CPU, following the prior supplying ~hereto of the initial address and modifiers directly from the IPLA decode/matrix unit 21. During a sequence the next address can be supplied to sequence logic 24 from a source external to the microcontroller unit 13 via a dispatch register 26, such addresses being dispatched to the external microcontroller unit 13 via system bus 11 and interconnecting X~C bus llA under the control of appropriate dispatch control logic 27. Suitable timing logic unit 28 is utilized to provlde suitable timing control signals to the various components of the external micro-control unit 13.
Figure 3 depicts in more detail the elements of the external microcon-troller (XMC) sequence logic unlt 24. As can be seen therein, an appropri.ate multiplexer 30 supplies an address input to a program counter 31, such input being selected from either the IRLA decode unit 21 (the IADRC ~ield), the CPLA
matrix unit 25 ~the ADRC field), or the dispatch register 26 ~the DREG field).
~7-- '~ , ' .

~.~.tj~7~

Alternatively, such address can be supplied to program counter 31 as a feedback input from a last in/first out memory s~ack 32. An appropriate control signal ADEC for the multiplexer unit is supplied ~rom an IPLA control logic unit 29 (see Figure 2).
When a request to decode a macroinstruction is issued by the CPU of Figure 1, each macroinstruction includes within it the information which deter-~ines whether such macroinstruction is to be decoded by the internal, i.e., the CPU~resident, decoding uni~s of the processor 10 or by an external microcontrol-ler unit 13. Thus, each macroinstruction is arranged so that i~ has a unique bit pattern which can only be decoded by either the internal decoding units of the processor or the decoding units of a specifled external microcontroller in-terface unit. In certain cases where a particular external microcontroller unitJ
such as shown in Figures 2 and 3, recognizes the bit pat~ern of the macrolnstTuc-tion from the instruction register pipe line as e requiring decoding by itself, the IPLA decodejmatrix`unit 21 indicates such rècognition by asserting a single bit MYTNS ("my instruction") which is supplied to the IPLA control logic 29 to cause the assertion of an ACK ~'tacknowledge") signal for supply to the proc0ssor.
The latte~ signal indicating that the macroinstruction which has been requested for decode ~via a previous assertion of a suitable REQ ("request") signal) will be decoded b~ this particular microcontroller unit.
Should both a specified external microcontroller unit 13 and the CPU-resident decoding units of the processor recognize a macroinstruction bit pat-tern as being one which it is capable of decoding, an acknowledge ~ACK) signal , from the microcontroller mterface unit is alwa~s interpreted by the cent~al processor unit as requiring external microcode decoding, even if the CPU-resident processor decoding units could decode such macroinstruction. Accordingly, de-..... . .

~: . . :
:: , -~
- . ' .. '. .:. . ~ . -.' , ': . ' ~ ' .. . ' ' ~
~ . :
,. ; . :

37~

coding b~ the external unit prevails. Such operation is designated as an "exter-nal microcode override" condition, If no ACK signal is asserted from any exter-nal microcontroller unit, ~he processor utllizes iks o~m internal macrocode decoding units, as discussed in the aforementioned application of eernstein et al, or performing the macroinstruction decoding operation.
In addition, the assertion of a MYINS signal, together with the asser-tion of an appropriate "kri-sta~e enable" ~TSE) signal, will produce a "tri-state" (TS) signal from the IPLA control loglc 29 for con~rolling the operation of the multiplexer/buffer register 22. In each external microcontroller uni~
13, the TS signal is not asserted unless the M~INS signal has been asserted by the IPLA decode/matrix unit 21 to indicate that the particular microcontroller unit 13 in question has been selected for the decoding operation. Accordingly, the XMC bus 16 can be driven only by one external microcontroller unit at a timeso that bus burn-out problems that may occur if multiple external units are attempting to drive the hus simultaneously are avoided.
O~ce the ~XINS signal has been asserted, the IPLA control logic 29 provides an appropriate decode control signal ~ADEC) which in effeck represents a basic initiation signal for operation of the external microcontroller unit so as to permit appropriate decoding of the incoming macroinstruction to proceed.
The macroinstruction is initially decoded by the IPLA decode/matrix unit 21 which receives 32 bits comprising the 16 bit macroinstruction word and the 16 inversion bits thereor via the instruction register pipe line system 20, such system for handling incoming information in a pipe-lined fashion being well known to the art~ The decoded macroinstruction word then selects the cor-rect initial microinstruction word at the decoded address from the IPLA storage matrix which comprises a plurality of stored microinstruction words. The initial ~. ~

, .

, . - ~ . :
3 ~ ~'7 ~

microinstruction uord from the I~LA ma~rlx comprises the following fields as shown below.
6 ~ 4 1 10 10 2 1 __ L ADRH ¦ V1 ¦ V~ 1D~C ¦ IAD~C ¦ NE~r ¦ CNAMX ¦ ~INS

INITIAL r~IcR,oINsTRucTIQN WORD ~LDS

As can be seen, the microinstruction ~ord is 38 bits wide and includes 8 fields.
The ADRH, V1, and V2 fields are effec~lvel~ the same as those described in the aforesaid application o~ Bernsteln e~ al. with reference to the horizontal ad-dress and vertical modifier fields of khe initial microinstruction decoded by the ~PU~resident decoding uni~s, Such fields are appropriately supplied to the horizontal decoder and to the vertlcal modi~ier unit5 respectivel~, in the man-ner discussed in the previously ~iled application. The ~YINS bit has been dis-cussed above.
The DEC field merely indicates which operation mode will be used with respect to ~he next address in the microinstruction sequenceO In the case of the initi~al microinstruction obtained rom the IPLA matrix, the DEC bit signifies either that the next operating mode will require a decoding of the next micro-instruction of a sequence thereo or will require a call for a new macroins~ruc-tion (e.g., if there is only a single microinstruction in the current sequence).
The DEC bit and the four CNAM bits from the CNAM ROM 38 ~Figure 3~ generate the NAM bits vi`a next address logic unit 23, which are transmitted to the CPU with the ADRH, V1 and V2 ields to indicate to the CPU the four operations discussed below. The IADRC field provides the address of one of the microinstructions te~g~, one of 102~ microinstructlons m an;exem~lary embodiment) which are stored in the CPLA matrix unit 25. The selected microinstruction may either be executed next following the execution of ~he current microinstruction, or not, depending .

. :

: "

., , - . . . , :
.
:' .: ' ', , ' ' :' . .. .
. . . .

on the interpretation of the next address mode ~AM~ ~ield or the next address mode extensions ~CNAMX) field, as discussed below.
The CNA~X field sets a plurality of appropriate flags ~FLAG A, FLAG B
or FLAG C) to their initial state in accordance with the following table:
NOP FLAG A-FLAG B=FLAG C=O
SET A ~LAG A-l, FLAG B-~LAG C-0 SET B FLAG B~ LAG A~LA~ C~0 SET C ,~LAG C=l, ~LAG A_E~LAG B-0 The next address mode (NA~ field indica~es whether the external micro-controller sequencing operation should con~inue with the fetching and execution af the next microinstruction of the sequence or whether it should continue to re-execute the same vertical modifiers in the currently executing microinstruc~
tion in accordance with whether the NAM field indicates a true repeat ~TREPT~ ora false repeat ~PREPT~ condition. The NA~ field further determines whether or not a decode operation should take place as discussed with reference to the vertical sequence unit of the processor as discussed in the aforesaid Bernstein et al. application~ The NAM field conditions are summarized as follows:
NEXT Continue fe~ching and executing microcode TRERT If SKIP-l, re-ex0cute vertical, else NEXT
FREPT If SKIP=0, re-execute vertical, else NEXT
DECODE Same as in CPU-resident vertical sequencer The NEXT field points to ~n address of one of the microinstructions in the CPLA. Such pointer provides the value of the control program counter subse-quent to the current program counter content ~i.e., CPC~l in Figure 3) which is needed by the CNAM micro-order CA~ The CPC~l is not otherwise available with-out the NEXT field since the IPLA decode/matrix unit 21 is not addressed by the ~11 -' .
' ' ': , ,. :

control program counter ~instead it is ~he IPLA which initialiæes the control program counter). Thus, the NEXT field in efect pushes a return to the stack ~Pigure 3) so that the s~stem knows ~here to return after a sub-routine has been executed.
Once the initial microinstruction has been decoded and the NAM field indicates that the next microinstruction should be fetched and executed, the next microinstruction, and each subsequent one o a sequence thereof, is supplied by the CPLA matrix unit 25 which selects a microinstruction a~ the selectcd ad-dress therein. The microinstruction that is selected supplies ~he ADRH, Vl and V2 ~ields to the output multiplexer/buffer unit ~2 and, thence, to the external microcode bus 16. The complete field representation for a microinstruction ob-tained from the CPLA matrix unit 25 i9 shown belo~:

. . ~ ~ . . ~
AD~I Vl ¦ V2 CNAM ¦ A~RC CNANX

CPLA MICROINSTRUCTION WORD ~IELDS
. _ _ The ADRHj Vl and V2 fields o~ the 31 bit CPLA microinstruction wordare as discussed above with reference to the IPLA microinstruction word and supply the horizontal address and vertical modifier fields to the processor via microcode bus 16. The ADRC field provides the address of one of the microin-structions in the CPLA matrix unit 25. Such microinstruction may or may not be executed nextdepending on the interpretation of the CNAM and CNAMX fields, the ADRC field specifying both unconditional and condi~ional branch addresses which are to be used in determining the~new control program counter tPC) value.
The CNAM field is a four bit field which specifies one of the following 14 encodings.
JUMp CpC~A~RC
RLNEXT PRE~ADRC J CpC~CpC~l . ~
~ ..

, ~,, " . . .
.. . .
'' ' ' , ., ,-. , . .

7~

~REPT J~p ~REPT JUMP
DECODE STOP S~NPING X~C MICRQCOD~ TO TH~ CPU
CALL PUSH CPC~l 0NTO SUBROUTINE STACK, THEN JU~P
RTRN POP SUBROUTINi~ STACK INTO CPC
TJU~P IF C0NDal, T~E~ JUMP, ~LSE CPC=CPC~l j~JUMP IF COND=0, T1lBN JU~P, EhSE CPC=CPC~l TCALL IF COND~l, THEN CALL, ELSE CPC=CPC-~l FCALL IF COND=0, THEN CALL, ELSE CPC=CPC~l TRTRN IF COND=l~ THEN RTRN, ELSE JUMP
FRTRN I~ CONDaO, ~HEN RTRN, ELSE JUMP
RJUMP CPC=DREG
The first 7 encodings are unconditionals while the rest are condi-tionals~ which condltions are specified b~ the CNAMX field discussed below. In the par~icular embodiment shown, the subroutine stack (shown in Figure 3) is four deep ~stacks ~-3) so that only four nested subroutine calls are possible.
The DREG refers to the dispatch register 26 shown in Figure 2.
The CNAMX ield has 8 encodings ~or ~oth unconditionals:and condition-als as follows:
UNCONDITIONAL
NOP NO OPERATION
CLRX FLAG A=o~ FLAG Ba0, FLAG C=0 SET A FLAG A=l SET B FLAG B=l SET C ~LAG C=l CLRA : FLAG A~0 .. .
' ~ .

.' ~ '' ' , ' CLRB PLAG BqO
CLRC FLAG C=O
CONDITIONAL
~ . . .
~AI~ O COND-SKIP
~AI~ 1 COND-SKIR
~AIT 2 CON~SKIR
~AIT 3 COND~SKIR
~LAG A CON~_PLAC A
~LA~ B COND-FLAC B
10 PLAG C CO~D-~LAG C
In the conditional made, waiting ~Wait p-Wai~ 3~ is necessar~ due to the delay bet~een the X~C microlnstructlon fetch by the X~C, ~he X~C microin-struction fetch b~ the CRU, the target horizon~al~s execution by the CPU, and the receipt of SKIP by the X~C unit, or the external loading of the dlspatch register 26. Waiting is not necessary ~hen an~ flag is~specified because the flags are implemented by the XMC unit and are immediately available.
The HTBEC (horizontals~to~be~executed) counter 37 indicates how many microinstructions have been sent to tha CPU but have not yet been executed. The HTBEC counter is incremented by the ACK signai, is decremented by the ~IOREX
signal and is cleared by the ADEC signalO The contents thereof are compared to ;the WAIT request signal from the CNAMX RO~ 35 in the flags/condi~ion logic 36 to assurè that the SKIP signal iS returned for the micro m struction of in~erest ~as discussed in more detail below wi~h respect to the timing diagram of Pigure
4). The flags/condition logic 36 asserts a HOLD signal to hold the operation of the program counter 31 until the above_mentioned comparison indicates that the appropriate SKIP signal has been received. When the HOREX signal for the I ~

:
, , ' ~ ~;'7~-3'~

pa~ticular microinstruction of in~er~s~ ~s received in phase II o~ a ~ycle, the SKIP signal for ~ha~ microinstruc~ion ls r~turn~d ln phase I of the follow:ing cycle.

In order to understand the opera~ion of the system shown in ~igures 1-3 it is helpful to set orth a typlcal sequence of ope~ations performed there-by as depicted wlth reference to the ~xemRlary signal timing diagrams shown in Pigure 4 and Chart I shown belo~O Figure ~ depicts various key signals which are asserted durîng the exemplar~ opera~ion ~and shown on ~igures 2 and 3) while Chart I depicts the s~uence o~ s~eps performed in the exemplary opera~ions.
CHART I
APR CNAM CNAMX C~MMENT
:
A: TST NEXT - THIS INSTRUCTION ~ETCHEP PRO~ IPLA
B: MOV NEXT THIS INSTRUCTION ~ETCHED ~RO~ CPLA
: C: ~o~ ~JUMP/J WAI~ 1 TH}S BRANCHES TO J IF TST IN A WAS PALSE
D: TST ~JUMP/W WAIT 3 THIS ~RANCHES TO W IF TST IN D WAS FALSE
E: MOV NEXT THIS INSTRUCTION WILL NOT BE EXECUTED

~ .

JiMOV NEXT - THIS INSTRUCTION WILL NOT BE EXECUTED
I . I

M~V NEXT ~ P ~ILL RRANCH TO HERE
X:~V NEXT . ~ THIS INST~UCTION ~TCHEP ~R~ CRLA
M~Y NEXT ~ THIS INsTRucTIQN pETCHED ~R~M CPLA
z~MQY NEXT ~ THIS ~NSTRUCTI~N pETCHE~ ~RO~ CPLA

:

, Each of the CLOCK cycles has two phases ~I and II), a sequence of 15 cycles being shown in the example depicted. Initially, in the example shown~
the CPU requests a macrocode decode operation M by asserting a MACR signal t~
"macrocode~' request) ~uring phase II of cycle 1, immediately followed by a MICR
signal (a "microcode" request) during phase I of cycle 2. If the macrocode is one which can be handled by the par~icular external microcontroller unit, such unit decodes the macroinstruction and asserts its ACK signal to show performance of the decode operation so as to produce the initial microinstruction A at the XMC buso As depicted in Figure 4 such microinstruction is placed on the bus in two portions Al and A2 shown at the C bus at phase II of cycle 2 and at phase I
of cycle 3, while acknowledging the decoding thereof, as mentioned above, by asserting the ACK signal at phase II of cycle 2.
As can be seen in Chart IJ such microinstruction is a test instruction and is fetched from the IPLA decode/matrix unit 21. If the DEC field does not indicate that the decoding of a new macroinstruction is required (as, for exam-ple, when the currently decoded macroinstruction contained only a single micro-instruction), the next microinstruction B is fetched from the CPLA matrix unit 25. Microinstruction Al, A2 is sent on the X~C bus to the CPU for execution while the ~rBEC counter is incremented by "1" to show that a microinstruction has been sent to the CPU for execution but has not yet been execu~ed.
When the next microinstruction B has been fetched from the CPI,A it is ackno~ledged in phase II of cycle 3 and transmitted to the CPU, the ~rBEC being again incremented ~by:l) to "2" at phase I of cycle 4.
The next microinstruction C is then fetched from the CPLA and trans-mitted to the CPUD While this operation would normally increment the HTBEC to "3", by this time the first microinstruction A has been executed and the asser-: -16-.

, i - :

..

tion of the HOREX ~horizontal execu~ed) signal rom the CPU simultaneously decre-ments the IITBEC by 1 so that lt remains at "2".
The CNAMX ROM 35 controls the extension of the time before the next microinstruction can be fetched. Thus, during microinstruction C the CNAMX ROM
asserts a ~AIT value of 1 ~see Char~ I~ which together with the count of the HTBEC and`the ACK signal de~ermines whether the program counter should be held in its current state ~i.e., whether a HOLD signal should be asserted - see pigure 3). If microcode is currentl~ being sent (an ACK is asserted~, the pro-gram counter is held in its current state if ~he WAIT value plus the HTB~C
count is equal to or greater than 30 If microcode is not currentl~ being sent (no ACK is asserted), the program counter is held in its current state if the W~IT value and the HTBEC count is greater than 3. In the example of Chart I and Pigure 4,~the sum of the WAIT value and the HTBEC count during phase II of cycle 4 is equal to 3 and the ACK is present so tha~ the program counter is held in its current state. Durlng phase II of cycle 5, since an ACK is not present and such sum is no~ greater than 3 the program counter is allowed to change from microins~ruction C to microinstruction D.

.
In accordance with microinstruction C, the test which is made in micro-instruction A determines whether the microprogram jumps directly to microinstruc-tion J ~when the test is "False") or whether the next sequential microins~ruction D is to be used ~when the test is "True"). In the particular example shown, the SKIP signal defines the test status (SKIP is "true" when high and "false" whe~
ow) and, as shown, is high (true) for microinstruction C. Accordingly, thesequence of operations proceeds to the next microinstruction D of the sequence.
Microinstruction D is then fetched after the above one cycle delay, at which time microinstruction B has been executed so that assertion of the HOREX
~ ~17-, .

.

,.` "" '` ~

~ ~ ~i'7~3'7 si~nal fr~m the CPU decrements the HTB~C ts "1".
Microinstruction ~ asserts a ~AI~ 3 signal and the sum of the WAIT
value and the HTBEC count is greate~ than 3 thrQugh phase II of cycle 9 so that the program counter is held in its current state through cycle 9, the HOLD signal producing a delay of 3 cycles to permit the test to be made in microinstruction D. Such test determines whether the micr~program jumps to microinstruction W
tSK~P is false) or whether the next se~uential microinstruction E is to be fetched for use ~SKIP is true). In the particular example shown, the test (SKIP
signal) at the end of the three cycle ~ait i5 shown to be false ~SKIP is low~, so that a branch is made to microinstruction W. ~eanwhile HT~EC is decremented to zero to reflect the execution of microinstruction D. The sequence of opera-tions then proceeds with microinstructions W, X, Y, Z . . . as shown.
As mentioned above, the microinstructions are transmitted in the XMC
bus in tl~ 8-bit b~tes (e.g., Al and A2 or microinstruction A) during separate phases of the timing cyclesO The mitial microinstruction A is obtained from the IPLA unit 21, while all subsequent microinstructions are obtained from ~he CPLA unit ~5. The HTBEC shows at all times how many horizontal microinstructionshave been transmitted from the X~C unit ta the processor and are still to be executed by the processor.
While the above description dlscusses the configuration and operation o a particular exemplary embodiment of the invention, modifications thereof ~ithin the spirit and scope o the invention will occur to those in the art.
Hence, the invention is not to be limited to the specific embodimen~ shown and described herein except as defined by the appended claims.

~8-.., ,i - :

Claims (13)

THE EMBODIMENTS OF THE INVENTION IN WHICH AN EXCLUSIVE
PROPERTY OR PRIVILEGE IS CLAIMED ARE DEFINED AS FOLLOWS:
1. A data processing system comprising a central processor unit inclu-ding means responsive to a macroinstruction for decoding said macroinstruction to produce a sequence of one or more microinstructions; and processing logic means responsive to said microinstructions for executing said micro-instructions to provide one or more data processing operations; said system further comprising one or more external microcode control units, each inclu-ding means responsive to a macroinstruction received from said central processor unit for decoding said macroinstruction to produce a sequence of one or more microinstructions; means responsive to said decoding means for transmitting said one or more microinstructions to said central processor unit for execution thereby; and said decoding means further including means respon-sive to a macroinstruction received from said central processor unit for determining whether said macroinstruction is one which is to be decoded by a selected one of said external microcode control units or one which is to be decoded by said central processor unit.
2, A data processing system in accordance with claim 1 wherein each said external microcode control unit further includes control means responsive to said decoding means for assuring that said macroinstruction is decoded only by said selected external microcode control unit when said macroinstruction is capable of being decoded either by said selected external microcode control unit or by said central processor unit.
3. A data processing system in accordance with claim 1 wherein each said external microcode control unit comprises initial macroinstruction decode means responsive to a macroinstruction for decoding said macroinstruction to produce an initial microinstruction; means for transmitting first selected fields of said initial microinstruction to said central processor unit for execution thereby; further decode means responsive to other selected fields of said initial microinstruction for providing a sequence of one or more successive microinstructions; and means for transmitting first selected fields of said successive microinstructions to said central processor unit for execu-tion thereby.
4. A data processing system in accordance with claim 3 wherein control means of each said external microcode control unit further includes means responsive to said decoding means and to said central processor unit for indicating the number of microinstructions which have been transmitted to said central processor unit and which have not yet been executed by said central processor unit.
5. A data processing system in accordance with claim 4 wherein said first selected fields of said initial microinstruction include one or more execution fields for use by said central processor unit in executing said initial micro-instruction; and a next address mode field for indicating whether the sequence of microinstructions transmitted to said central processor unit from said external microcode control unit is to be continued or is to be completed upon execution of the current microinstruction.
6. A data processing system in accordance with claim 5 wherein said external microcode control unit includes program counter means for supplying an address to said further decode means of the next successive microinstruction of a sequence thereof;
stack means for storing one or more microinstructions for use in a sub-routine execution;
and further wherein said other selected fields of said initial micro-instruction include a first address field capable of providing an address for supply to said program counter means;
a second address field for providing a pointer address in said further decode means for identifying an address in said stack means which provides an incremented value of said program counter means.
7. A data processing system in accordance with claim 6 wherein said ex-ternal microcode control unit further includes means capable of providing an externally generated address for supply to said program counter means.
8. A data processing system in accordance with claim 7 wherein the first selected fields of said successive microinstructions from said further decode means include one or more execution fields for use by said central processor unit in executing said successive microinstructions; and other selected fields of said successive microinstructions include a first address field capable of providing an address for supply to said program counter means, and further including means for selecting for supply to said program counter means a first address, field from said initial microinstruction, a first address field from one of said successive microinstructions, or said externally generated address.
9. A data processing system in accordance with claim 8 wherein said other selected fields of said successive microinstructions include a next address mode field for determining whether the next successive microinstruction in a sequence thereof is to be executed by said central proces-sor unit, whether a portion of said execution fields are to be reexecuted by said central processor unit, or whether a new macroinstruction is to be decoded by said data processing system.
10. A data processing system in accordance with claim 9 wherein said other selected fields of said successive microinstructions include a control field for determining whether the execution cycle of a micro-instruction is to be extended beyond the normal execution cycle therefor.
11. A data processing system in accordance with claims 1 or 2 wherein said transmitting means includes bus means interconnecting said external micro-code control unit and said central processor unit; and driving means for placing a microinstruction produced by said external microcode control unit on to said bus means for transmission to said central processor unit;
and further wherein each said external microcode control unit includes means for activating its own driver means only when said external microcode control unit has been selected to decode said macroinstruction and to provide said sequence of one or more microinstructions.
12. A data processing system in accordance with claim 2 wherein each said external microcode control unit comprises initial macroinstruction decode means responsive to a macroinstruction for decoding said macroinstruction to produce an initial microinstruction;
means for transmitting first selected fields of said initial microin-struction to said central processor for execution thereby;
further decode means responsive to other selected fields of said ini-tial microinstruction for providing a sequence of one or more successive micro-instructions; and means for transmitting first selected fields of said successive micro-instructions to said central processor unit for execution thereby.
13. A data processing system in accordance with claim 12 wherein each said external microcode control unit includes means for indicating the number of microinstructions which have been transmitted to said central processor unit and which have not yet been executed by said central processor unit.
CA000395488A 1981-02-06 1982-02-03 External microcode operation in a multi-level microprocessor Expired CA1167971A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US232,238 1981-02-06
US06/232,238 US4399505A (en) 1981-02-06 1981-02-06 External microcode operation in a multi-level microprocessor

Publications (1)

Publication Number Publication Date
CA1167971A true CA1167971A (en) 1984-05-22

Family

ID=22872355

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000395488A Expired CA1167971A (en) 1981-02-06 1982-02-03 External microcode operation in a multi-level microprocessor

Country Status (8)

Country Link
US (1) US4399505A (en)
EP (1) EP0057788B1 (en)
JP (1) JPS57139855A (en)
AU (1) AU544951B2 (en)
BR (1) BR8200513A (en)
CA (1) CA1167971A (en)
DE (1) DE3176135D1 (en)
IL (1) IL63879A (en)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4931989A (en) * 1982-02-22 1990-06-05 International Business Machines Corporation Microword generation mechanism utilizing a separate programmable logic array for first microwords
US4556938A (en) * 1982-02-22 1985-12-03 International Business Machines Corp. Microcode control mechanism utilizing programmable microcode repeat counter
US4685080A (en) * 1982-02-22 1987-08-04 International Business Machines Corp. Microword generation mechanism utilizing separate programmable logic arrays for first and second microwords
US4594661A (en) * 1982-02-22 1986-06-10 International Business Machines Corp. Microword control system utilizing multiplexed programmable logic arrays
US4928223A (en) * 1982-10-06 1990-05-22 Fairchild Semiconductor Corporation Floating point microprocessor with directable two level microinstructions
US4531200A (en) * 1982-12-02 1985-07-23 International Business Machines Corporation Indexed-indirect addressing using prefix codes
US4697250A (en) * 1983-08-22 1987-09-29 Amdahl Corporation Flexible computer control unit
JPS6093511A (en) * 1983-10-27 1985-05-25 Fanuc Ltd Format conversion interface device
US4825363A (en) * 1984-12-05 1989-04-25 Honeywell Inc. Apparatus for modifying microinstructions of a microprogrammed processor
US5261116A (en) * 1986-07-02 1993-11-09 Advanced Micro Devices, Inc. Programmable, expandable controller with flexible I/O
EP0414811B1 (en) * 1988-05-03 1997-02-19 Wang Laboratories, Inc. Microprocessor having external control store
JPH0682320B2 (en) * 1988-06-08 1994-10-19 日本電気株式会社 Data processing device
US5043879A (en) * 1989-01-12 1991-08-27 International Business Machines Corporation PLA microcode controller
US6378061B1 (en) * 1990-12-20 2002-04-23 Intel Corporation Apparatus for issuing instructions and reissuing a previous instructions by recirculating using the delay circuit
GB2266606B (en) * 1992-04-27 1996-02-14 Intel Corp A microprocessor with an external command mode
US5630083A (en) * 1994-03-01 1997-05-13 Intel Corporation Decoder for decoding multiple instructions in parallel
US5586278A (en) * 1994-03-01 1996-12-17 Intel Corporation Method and apparatus for state recovery following branch misprediction in an out-of-order microprocessor
US5537629A (en) * 1994-03-01 1996-07-16 Intel Corporation Decoder for single cycle decoding of single prefixes in variable length instructions
US5559974A (en) * 1994-03-01 1996-09-24 Intel Corporation Decoder having independently loaded micro-alias and macro-alias registers accessible simultaneously by one micro-operation
US5668985A (en) * 1994-03-01 1997-09-16 Intel Corporation Decoder having a split queue system for processing intstructions in a first queue separate from their associated data processed in a second queue
US5566298A (en) * 1994-03-01 1996-10-15 Intel Corporation Method for state recovery during assist and restart in a decoder having an alias mechanism
US5673427A (en) * 1994-03-01 1997-09-30 Intel Corporation Packing valid micro operations received from a parallel decoder into adjacent locations of an output queue
US5608885A (en) * 1994-03-01 1997-03-04 Intel Corporation Method for handling instructions from a branch prior to instruction decoding in a computer which executes variable-length instructions
US5600806A (en) * 1994-03-01 1997-02-04 Intel Corporation Method and apparatus for aligning an instruction boundary in variable length macroinstructions with an instruction buffer
US5586277A (en) * 1994-03-01 1996-12-17 Intel Corporation Method for parallel steering of fixed length fields containing a variable length instruction from an instruction buffer to parallel decoders
US5758116A (en) * 1994-09-30 1998-05-26 Intel Corporation Instruction length decoder for generating output length indicia to identity boundaries between variable length instructions
WO1998008160A1 (en) * 1996-08-20 1998-02-26 Idea Corporation A method for identifying hard-to-predict branches to enhance processor performance
US6041403A (en) * 1996-09-27 2000-03-21 Intel Corporation Method and apparatus for generating a microinstruction responsive to the specification of an operand, in addition to a microinstruction based on the opcode, of a macroinstruction
US6154834A (en) * 1997-05-27 2000-11-28 Intel Corporation Detachable processor module containing external microcode expansion memory
US6260082B1 (en) * 1998-12-23 2001-07-10 Bops, Inc. Methods and apparatus for providing data transfer control
EP1242874A1 (en) * 1999-12-31 2002-09-25 Intel Corporation External microcode
US7698539B1 (en) * 2003-07-16 2010-04-13 Banning John P System and method of instruction modification
US20140007098A1 (en) * 2011-12-28 2014-01-02 Paul M. Stillwell, Jr. Processor accelerator interface virtualization
US20170323239A1 (en) 2016-05-06 2017-11-09 General Electric Company Constrained time computing control system to simulate and optimize aircraft operations with dynamic thermodynamic state and asset utilization attainment

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE625673A (en) * 1961-12-04
US3478322A (en) * 1967-05-23 1969-11-11 Ibm Data processor employing electronically changeable control storage
JPS50155146A (en) * 1974-06-03 1975-12-15
JPS5140728A (en) * 1974-10-02 1976-04-05 Ayao Miura Haamueanyoru ronrikikai
US4087857A (en) * 1976-10-04 1978-05-02 Honeywell Information Systems Inc. ROM-initializing apparatus
JPS6019028B2 (en) * 1977-08-26 1985-05-14 株式会社日立製作所 information processing equipment
US4236210A (en) * 1978-10-02 1980-11-25 Honeywell Information Systems Inc. Architecture for a control store included in a data processing system
CA1137641A (en) * 1979-06-22 1982-12-14 Merle E. Homan Single chip microcomputer selectively operable in response to instructions stored on the computer chip or in response to instructions stored external to the chip

Also Published As

Publication number Publication date
JPS638489B2 (en) 1988-02-23
AU544951B2 (en) 1985-06-27
BR8200513A (en) 1982-12-07
IL63879A (en) 1984-09-30
EP0057788B1 (en) 1987-04-22
DE3176135D1 (en) 1987-05-27
IL63879A0 (en) 1981-12-31
JPS57139855A (en) 1982-08-30
EP0057788A2 (en) 1982-08-18
US4399505A (en) 1983-08-16
AU7621481A (en) 1982-08-12
EP0057788A3 (en) 1982-09-08

Similar Documents

Publication Publication Date Title
CA1167971A (en) External microcode operation in a multi-level microprocessor
EP0330836B1 (en) Method for multiprocessor system having self-allocating processors
US5101344A (en) Data processor having split level control store
EP0411747B1 (en) Multiple instruction decoder
US4729094A (en) Method and apparatus for coordinating execution of an instruction by a coprocessor
US4715013A (en) Coprocessor instruction format
US7676654B2 (en) Extended register space apparatus and methods for processors
US5249280A (en) Microcomputer having a memory bank switching apparatus for accessing a selected memory bank in an external memory
US5694617A (en) System for prioritizing quiesce requests and recovering from a quiescent state in a multiprocessing system with a milli-mode operation
EP0405495A2 (en) Instruction unit logic management apparatus included in a pipelined processing unit
EP0652514B1 (en) Data processing apparatus handling plural divided interruptions
US4731736A (en) Method and apparatus for coordinating execution of an instruction by a selected coprocessor
US4750110A (en) Method and apparatus for executing an instruction contingent upon a condition present in another data processor
JPS63273134A (en) Method and apparatus for altering microinstruction using microinstruction pipeline
US4287561A (en) Address formulation interlock mechanism
US5021991A (en) Coprocessor instruction format
JP2840604B2 (en) Method and apparatus for specifying operands for instructions executed on a microcode CPU
EP0523758B1 (en) A method and apparatus for coordinating execution of an instruction by a coprocessor
US4821231A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
US4758950A (en) Method and apparatus for selectively delaying an interrupt of a coprocessor
US4914578A (en) Method and apparatus for interrupting a coprocessor
US4994961A (en) Coprocessor instruction format
US11907712B2 (en) Methods, systems, and apparatuses for out-of-order access to a shared microcode sequencer by a clustered decode pipeline
CN115048334A (en) Programmable array processor control apparatus
CA1223969A (en) Microcode control of a parallel architecture microprocessor

Legal Events

Date Code Title Description
MKEX Expiry