You are on page 1of 19

Europaisches P a t e n t a m t

® ê European Patent Office (lî) Publication number: 0 042 0 8 2

Office européen des brevets B1

® EUROPEAN PATENT SPECIFICATION

® Date of publication of patent spécification: 16.05.84 ® Intel.3: G 06 F 9 / 2 6


(§) Application number: 81103979.1

@ Date offiling: 23.05.81

(54) Microprogram sequencerfor microprogrammée] control unit.

(§) Priority: 12.06.80 IT 2273280 @ Proprietor: HONEYWELL INFORMATION


SYSTEMS ITALIAS.p.A.
Via Martiri d'ItalialO
(§) Date of publication of application: 1-10014 Caluso (Torino) (IT)
23.12.81 Bulletin 81/51
(72) Inventor: Zanchi, Vittorio
(§) Publication of thegrantof the patent: Via Tartaglia, 19
16.05.84 Bulletin 84/20 1-20100 Milano (IT)
Inventor: Maccianti, Tiziano
Via Pascoli, 5
@ Designated Contracting States: 1-20010 Pregnana Milanese (Ml) (IT)
CHDEFRGB LI NL SE

(§) Références cited: (SS) Références cited:


US-A-3 909 797 AUTOMATISME, volume 24, no. 1, 2, January,
US-A-3 938 098 February 1979 PARIS (FR) C. BRIE "Panorama
US-A-3 939 455 des Processeurs en tranches. I. les
US-A-4001 784 séquenceurs", pages 31-39
CD US-A-4001788
US-A-4075 687
CM US-A-4179 737
00
o ELECTRONIC DESIGN, volume 24, no. 22, 25th
October 1976 ROCHELLE PARK (US) J. GOLD
CM "Bipolar controllers - they're fast, cheap and
easy to use", pages 106-1 10
O
o Note: Within nine monthsfrom the publication of the mention of the grant of the European patent, any person may
give notice to the European Patent Office of opposition to the European patent granted. Notice of opposition shall
CL be filed in a written reasoned statement. It shall not be deemed to have beenfiled until the opposition fee has been
m paid. (Art. 99(1) European patent convention).
Courier Press, Leamington Spa, England.
any time and phase of the internal processes
and which, generally, require the immediate
The present invention relates to micro- interruption of the process in progress and the
program sequencers for microprogrammed immediate execution of the required service;
control units of data processing systems as set this is particularly true in case the interrupt
out in the first portion of Claim 1. A micro- requests come from fast peripheral units, such
program sequencer is a set of circuits which as disk units.
determines the orderly read out of the micro- In microprogrammed central units this
instructions stored in a control memory, that is involves the interruption of microprograms in
the orderly read out of the microprograms in a progress, through which the program
control unit of a data processing system instructions of the internal process are
capable of performing operations of internal executed, and the start of microprograms
computation, of information transfer with a executing the services required by the
working memory and, at the same time, capable interruption.
of managing the operation of peripheral However, when an interruption occurs,
devices. information about the status of the internal
It is known that data processing systems interrupted process must be saved in order to
generally comprise a central unit, a main work resume such process once the required service
memory and a plurality of peripheral units con- has been executed.
nected to the central unit by means of a This problem has been solved, in the prior
plurality of input/output channels for the art, by a multiplication of resources, par-
exchange of information. ticularly of registers, devoted to the storing of
The data processing system job consists of the microprogram address and determined
processing some data according to well defined states of the several overlapping processes.
program instructions. For instance, in U S - A - 4 . 0 0 1 . 7 8 4 the
From the logical point of view the central unit control unit of a data processing system
comprises a control unit and an operative unit. comprises three microprogram address
The program instructions are interpreted and registers. A first register is used to store the
executed by means of microprograms, that is addresses of the microprogram which performs
microinstruction sequences that the control unit the program instructions of the internal pro-
reads out from a control memory, one micro- cesses; a second register is used to store the
instruction at a time. Through suitable decoding addresses of the microprogram executing the
of the microinstructions a set of elementary services required by interruptions having a
commands, or microcommands, is generated certain priority level; a third register is used to
which cause the working of the several store the addresses of the microprogram
logic/electric networks of the central unit in the executing services required by interruptions
manner required by the several program having another priority level.
instructions. Such structure allows to save microprogram
The operative processes performed by the addresses which, otherwise, would be lost
system may be internal, that is executed within owing to the interruptions, but it is not effective
the central unit with possible data exchange for the "saving" of addresses which should be
with the working memory, or external, that is saved within the same program. Such concept
requiring the intervention of peripheral units. may be explained by referring to microprogram
In the second case they require an structures. It is known that the several program
information transfer between some peripheral instructions of an operative process are
units and the central processing unit through executed by microprograms consisting of a set
input/output channels which connect the peri- of microinstructions stored in a control memory.
pheral units to the central processing unit. The microinstructions are preferably
The operative processes which develop arranged in sequence to form a microprogram.
within the peripheral units are synchronized In other words, a microinstruction stored in a
neither among them nor with the ones which memory address n is followed by a micro-
develop within the central unit. instruction stored in address n+1, and so on. In
Therefore, the whole system monitoring is such a way the memory addressing operation,
not carried out by one program, univocally may be carried out by a network which
determined as to the timing, but it is rather per- increments the preceding address by one unit.
formed with "interruptions" which require the The network is particularly simple and
execution of predetermined services. unexpensive.
The "interruptions" can be caused by However such criterium cannot be always
interrupt requests coming from peripheral units. adopted.
Owing to an interrupt request, the central First of all, during the execution of a micro-
unit must interrupt the execution of an internal program, it is often necessary to choose
process in progress in order to execute the between two possible paths, according to par-
service required by the peripheral unit. ticular conditions which occur and, for one at
As already mentioned, the "interruptions" least of such paths, the sequential addressing is
are asynchronous events which may occur at no longer possible.
Further, the several microprograms, each one seen and an automatic mechanism of return,
allowing for the interpretation of a well that is of selection of one of these registers.
determined program instruction, may contain A particularly effective solution of such
portions formed by identical microinstruction problem is described in U S - A - 3 , 9 0 9 , 7 9 7 .
sequences. According to the solution suggested by such
To avoid a memory waste it is suitable to patent the registers devoted to save the several
store such microprogram portions in the control return addresses form a stack where the output
memory once only as to avoid duplications. order of the information stored therein is
Such microinstruction portions or sequences, opposite to the input order, that is information
identical for several microprograms, are named is handled on a last in, first out basis (LIFO).
"subroutines" and it is clear that, for all the In other words the last recorded information
microprograms which use them, possibly with is always the first one to be read out.
the exception of one, the access to such sub- This allows the "nesting" of subroutines of
routines cannot follow the general criterium of different level, the one inside the other, and the
sequential addressing. orderly return to the several subroutines up to
During the microprogram execution some the internal computation microprogram.
jump microinstructions, for sake of precision However such solution does not consider the
unconditioned jump microinstructions, are problems rising from a microprogrammed
therefore provided: the execution of such jump system where a microprogram interruption may
microinstructions causes the interruption of the be caused by external events; in fact the above
sequential addressing operation and the jump solution does not satisfy the requirements of a
to a microinstruction whose address is deter- control unit which jointly uses microprograms
mined by the information contained in the jump comprising common subroutines and inter-
microinstruction. ruption mechanisms.
If all the subroutines were final portions of A partial solution to such problem is offered
the microprograms, their execution would by microprogram sequencers of the type
complete the microprogram which has called described in the mentioned US-A-
for one of them and there will be no further 3,909,797, which are now present on the
problems. market in form of integrated circuits, as for
On the contrary a subroutine may also form instance the circuits with code 2911 and 2910
an intermediate portion of a microprogram. It is manufactured by Advanced Micro Devices Inc.
therefore necessary, at the end of the sub- A clear description of such circuits may be
routine, to return to the specific microprogram found in the article by Claude Brie: "Panorama
by which the subroutine has been called. des processeurs en tranches. I- les
sequenceurs" (Publication: Le Nouvel Auto-
Evidently, the subroutine is not able by itself matisme, Vol. 24, No. 1/2, Janvier/Fevrier
to specify to which of the several micro- 1979, pages 31 to 39.
programs it has to go back and which must be The mentioned integrated microprogram
the subsequent return address in the micro-
sequencers comprise the features set out in the
program basic sequence. first portion of Claim 1, e.g. a multiplexer which
Therefore, the return address necessary to go transmits to its output set one of several
back to the main microprogram after the addresses present on its input sets and coming
execution of a subroutine, must be previously form:
saved before starting the subroutine in a
suitable register. - t h e outside (directly or through an internal
Generally the address to be saved is the jump address/holding register),
microinstruction address, which calls for the - a n internal microprogram counter register
subroutine, incremented by one. latching the address of the microinstruction
The last microinstruction of the subroutine in progress incremented by one,
must contain a command information which - an internal register stack of LIFO type (last in
controls the return, that is the addressing of the first out).
subsequent microinstruction by using the saved
address. Such integrated sequencers, suitably con-
However, it cannot contain information con- trolled, may supply the addressing inputs of a
cerning the specific register where the address control memory with a sequential address, a
has been saved, but the read out from the return address from subroutine and a jump
register of address to be used must be auto- address to subroutine.
matically obtained. In case of jump to subroutine, the jump
Generally a subroutine may also contain, in address is generally provided in absolute way
its turn, microprogram portions common to by a suitable field of the jump microinstruction
other subroutines or microprograms, which will in progress.
be considered subroutines of second level or of Such jump address is therefore applied to the
subsequent level. It will be therefore necessary input set of the sequencer multiplexer devoted
to provide a number of address saving registers to receive information from the outside. When
equal to the subroutine levels which are fore- interruption mechanisms are provided for in the
system, the same input set of multiplexer may register may be loaded with such address and
receive through control gates an external micro- the memory addressing can be performed
program address provided by an interrupting without interfering in the first and second
unit of the system. In such way, if an inter- looped communication path with the flow,
ruption is enabled during the execution of a updating and saving of the address already con-
microinstruction of address N, in the following tained in the present address register and in the
machine cycle the microinstruction addressed microprogram counter register of the
by the interruption address is executed and, at sequencer.
the same time, the saving of address N+1 into This is particularly true for jump micro-
stack is performed. It is obvious that the instruction with address saving. Therefore inter-
interruption microprogram ends with a micro- ruptions may arise, without delay, during
instruction allowing the return to the execution of whatever microinstruction.
interrupted microprogram. The sole constraint intrinsic in such archi-
However if an interruption occurs during tecture is that the first microinstruction of the
execution of a microinstruction which call for interrupt microprogram must be a jump micro-
non sequential addressing of the next one, such instruction with saving of address, to provide,
as for instance a jump microinstruction, the during its execution, the saving in the stack of
described arrangement and particularly the the address contained in the microprogram
multiplexer constitutes a real bottleneck for the counter register, and the generation of the next
simultaneous transfer of two different address through the second looped com-
addresses, one to the stack for saving purpose, munication path.
the other to the control memory for addressing By this, the further advantage is obtained to
of the first microinstruction of the interrupting secure an homogeneous format to the program
microprogram. microinstructions: the saving function, specified
Interference occurs. by a predetermined microinstruction bit, is only
Moreover it may even be required to save present in the jump microinstructions, where it
two addresses, such as, in case of jump to sub- may be necessary.
routine microinstruction with address saving, Such function is not present, in any case, in
the address N+1 of the next sequential micro- the sequential microinstructions where it would
instruction and the address K of the subroutine be unuseful and where the utilization of a bit
first microinstruction. with such a specific use is inconsistent with the
Thus the solution offered by the prior art is need to assign a different meaning to the
limited by this constraint. This constraint might several microinstruction bits. Ways of carrying
be overcome by taking interruptions into con- out the invention will appear more clearly from
sideration only on the occurrence of selected the following description of preferred
microinstructions, with a firmware approach embodiments of the invention and from the
which involves a relatively slow interrupt enclosed drawings where:
response time, or through the use of expensive Fig. 1 shows how fig. 1A and 1B are to be
additional circuits, such as interruption mask- juxtaposed for their reading.
unmask logic responsive to the nature of the Fig. 1A and 1B jointly show a micropro-
microinstruction in progress and deferring of grammed control unit comprising a sequencer
the interrupt consideration whenever required. according to the present embodiment.
These disadvantages are overcome in a Fig. 2 shows the timing diagrams of some
simple and unexpensive way by the micropro- timing signals used in the unit of fig. 1A and 1B.
grammed control unit sequencer of the present Figures 3 (3A to 3E) show the format of the
invention as set out in Claim 1 which, in microinstructions used in the control unit of fig.
addition to the integrated sequencer such as 1A and 1B.
the mentioned AMD 2911, providing a looped Fig. 4 shows a slightly modified form of the
communication path for the sequential sequencer of fig. 1A.
increment of the addresses and stack for Fig. 5 shows a second modified form of the
address saving, comprises a second looped sequencer of fig. 1A.
communication path including a present Fig. 1A and 1B jointly show a micropro-
address register (ROSPA) and a summing unit grammed control unit comprising a sequencer
for non sequential address generation. according to the present invention.
The second communication path has in The microprogrammed control unit of fig. 1A
common with the first communication path a and 1B may be associated to central pro-
first address node, and is further provided with cessing units having a different architecture and
a second address node immediately upstream which are not described herein because they
said present address register, through which are beyond the scope of the present invention.
node interrupt addresses are received. Particularly it may be used in the data pro-
By this arrangement the following cessing system described in U S - A -
advantages are achieved: 4.001.784 to which reference is made in order
When an interrupt address is received at the to have a complete understanding of the whole
second address node during execution of what- central processing unit.
ever microinstruction, the present address In such a central processing unit, fig. 1A and
1B of the present invention integrally replace plexer circuit 8. A bank of registers DR9 is
the circuits shown in fig. 8a and 8b of the further provided, which may be addressed by
mentioned patent. microcommands.
The control unit substantially comprises (fig. The content of register IR7 may be saved in
1 B): such bank and from there the previously saved
statuses may be read out and reloaded in the
- a control memory or ROS 1 where the micro- index register IR7. To this purpose, the outputs
programs are stored; of index register IR7 are connected through a
- an output register 2 (ROR) for ROS memory, channel 10 to inputs 11 of register bank 9, and
receiving and storing at each machine cycle the outputs 12 of register bank 9 are con-
a microinstruction read out from ROS nected, through channel 13, to a set of inputs of
memory 1; multiplexer 8 which may selectively transfer to
- a n addressing register ROSAR 3 having its index register 7 the statuses read out from bank
outputs connected to the address inputs of 9 or the statuses which occur during a machine
ROS memory 1 and receiving and storing at cycle.
each machine cycle a ROS address; The outputs of index register 7 are further
- a microinstruction decoder 4 which receives connected, through a channel 14 and a group
on its inputs the microinstruction contained 15 of enabling AND gates, to decoder 4, and
in register ROR 2 and decodes it providing provide it with information which adds to the
on its outputs elementary commands or one obtained from the read out
microcommands. Such decoder may be of microinstruction.
the type described in the U S - A - The control unit sequencer, that is the circuit
3.812.464 which decodes the micro- set devoted to the control memory 1
instructions according to a field of the addressing, comprises (Fig. 1A):
sames, the field having variable length and
being named function code. Fig. 1B shows, - a sequencing unit 16 carried out by the
as an output from decoder 4, only the micro- already mentioned integrated circuit Am
commands necessary for the understanding 2911;
of the embodiment and precisely So, S1, S2, - a n auxiliary register 17 (ROSPA) intended to
S3, S4, FILE EN, PUSH/POP, RDR, WDR, DR contain the address of the microinstruction
ADDR, EOS, IR; in course of execution;
- a timing unit 5 which cyclically generates - a summing network 18;
timing signals for each machine cycle. Such - a multiplexer circuit 19.
timing signals are forwarded to the several
elements forming the central unit for timing The sequencing unit 16 substantially
them. Fig. 1B shows as an output from unit 5 comprises:
the signals necessary for understanding the
invention, and precisely: STRORA, PH2, - a stack 20;
STCSSA, STINTA, STSNA; - a microprogram counter register µPCR21;
- a timing network 6 which receives on its - a + counter or incrementer 22;
inputs microcommands decoded by decoder - a multiplexer circuit 23;
4 and timing signals produced by timer 5. - a set 24 of tristate output control circuits;
Network 6 performs logical AND operations - a set 25 of AND gates;
among timing signals and microcommands, - a n inverter 26 connected to the control input
and supplies on its outputs suitable timed of the tristate set 24.
microcommands during each machine cycle.
The sequencing unit 16, in the whole, has a
In fig. 1B only signal STSNA · (IR+S4) is set 27 of address inputs (by connecting in
shown as an output from network 6, which parallel a suitable number of integrated circuits
signal is necessary for a full understanding of AM 2911, any desired parallelism can be
the embodiment; obtained), a set 28 of address outputs and a
certain number of control inputs.
- t h e control unit further comprises an index Two pins So and S, are used to control multi-
register IR 7 intended to receive and to store plexer 23.
particular machine statuses or conditions, as Multiplexer 23 is provided with three sets of
for instance the occurrence of an input (CI) inputs and transfers the signals present on one
or an output (COT) carry due to arithmetical of the three input sets to its output depending
or shift operations, or the occurrence of con- on the logical combination of the signals
ditions, detected by comparison and indi- present on So, S1 inputs.
cated by a positive comparison signal NZ2. An input set 29 of multiplexer 23 is con-
nected to input set 27.
These statuses received from other central A second input set 30 is connected to
unit elements (described for instance in the outputs of register stack 20 and a third input set
mentioned U S - A - 4 . 0 0 1 . 7 8 4 ) are sent to 31 is connected to the outputs of micro-
inputs of register IR7 through a two path multi- program counter register µPCR21.
Outputs of pPCR21 are further connected to connected to a first input set of multiplexer 19,
the inputs of register stack 20. which receives on a second input set, through
Outputs of multiplexer 23 are connected to paths 41, 42, a certain number of bits read out
inputs of AND gate set 25, the AND gates being from ROS memory 1.
enabled by a signal ZERO at logical level 1 A third input set of multiplexer 19 receives a
applied to a control input 32. fixed binary addressing code: for instance
The outputs of AND set 25 are connected to OOOF.
the inputs of the tristate output set 24 and to The outputs of multiplexer 19 are connected
the inputs of incrementer 22. to inputs 27 of sequencing unit 16.
The tristate output set 24 is enabled to the The selection of the input set is determined
information transfer by a command signal by the logical level of the two signals on control
applied to an input pin OE connected to the inputs S2, S3.
enabling inputs of tristates 24 through inverter The sequencer is completed by some circuits
26. for connection to a logical priority network
Incrementing counter 22 is controlled by a intended to detect the interruptions coming
signal CN applied to input 33. from several channels connecting peripheral
When CN is at logical level 1 counter 22 units.
increments by one unit the binary information The logical priority network may be of the
applied to its inputs and transfers it on its type described and shown in fig. 7 of the men-
outputs; when CN=0 the binary information tioned U S - A - 4 . 0 0 1 . 7 8 4 .
applied to inputs of counter 22 is transferred Such priority network emits on one of three
unchanged. output leads 99, 150, 154 an interrupt signal
The loading of register pPCR21 and of stack having high, low, intermediate priority respec-
20 is controlled by a timing signal CK applied to tively. On one of four leads 158, 159, 161, 162
an input 34. it further emits a signal at logical level 1 which
When CK signal rises from 0 to 1, register indicates which is the channel sending the
µPCP21 is loaded and, in case, stack 20 is interruption.
enabled too. For instance a channel 1 is associated to lead
Stack 20 comprises 4 cascade connected 158, a channel 2 to lead 159 and so on.
registers 20A, 20B, 20C, 20D and its operation One or more peripheral units will be con-
is controlled by two signals FILE EN and nected to each channel through a peripheral
PUSH/POP applied to two control inputs 35 and adapter or peripheral control unit.
36 respectively. Turning to fig. 1B, leads 99, 150, 154 are
When FILE EN=1 no operation is performed connected to the inputs of an OR gate 43, each
by stack 20. one through an AND gate 47, 48, 49 having
When FILE EN=0 stack 20 operates two, three, four inputs respectively.
according to signal PUSH/POP. Or 43 output is connected to an input of a
In case PUSH/POP=1 the information two input AND gate 44; AND gate 44 is con-
present on the output of ,uPCR21 is stored in trolled by a cyclical timing signal STINTA
register 20A with the rising edge of signal CK (it (INTERRUPTION STROBE) applied to its second
is therefore available on inputs 30 of multi- input.
plexer 23 through channel 37). At the same The output of AND gate 44 is connected,
time the information previously stored in through lead 50, to input OE of sequencing unit
registers 20A, 20B, 20C is transferred or 16.
pushed into registers 20B, 20C, 20D
When OE is at logical level 1 the outputs 28
respectively.
In case PUSH/POP=0, the information stored of the sequencing unit 16 are locked (in high
in register 20D, 20C, 208, is transferred or impedance output status).
popped into register 20C, 20B, 20A respec- Output of AND gate 44 is further connected
tively, with the rising edge of signal CK. to control input CN of sequencing unit 16
The information present, at this point, in through a NOT 51 and to the control input
register 20A is directly available on inputs 30 of of a tristate set 46.
multiplexer 23 through channel 37. Tristate set 46 receives as an input an
Outputs 28 of sequencing unit 16 are con- interruption vector (that is the first micro-
nected, through channel 38, to the inputs of the instruction address of the microprogram called
memory addressing register 3 (ROSAR). for by the interruption) and transfers such
Such outputs are further connected, through vector on channel 38 and on channel 39 when
channel 39, to the inputs of present address it is enabled by AND gate 44 with output at
register 17 whose outputs are connected, logical level 1.
through path 40, to a first input set A of The interruption vector is generated by a
summing network 18, which receives through logical network 45 (VECTOR GENERATOR)
path 41, on a second input set B a certain which suitably codes the input signals, con-
number of microinstruction bits read out from stituted by the interruption signals at different
ROS memory 1. priority level (received on leads 99, 150, 154,
The outputs of summing network 18 are through AND 47, 48, 49) and by the inter-
rupting channel signals received on leads 158, The rising edge of STRORA is used as strobe
159, 161, 162. signal for register ROR2. At a time t2 a second
The circuital structure of logical network 45 signal PH2 (diagram b) rises to logical level 1
is beyond the scope of the invention; this and remains at such level up to time tio,
network is substantially a coding network which The rising edge of PH2 is used as strobe
generates an address binary output code on signal for register stack 9, whilst the falling
channel 51 depending on the binary code edge of PH2 is used as clock signal for flip-flops
received on its inputs (7 bits two of which at 52, 53, 54.
logical level 1). At a time t3 a third signal STSNA (diagram c)
In alternative, in order to have a higher flexi- rises to logical level 1 and remains at such level
bility, the interruption vector generator can be up to time t7.
constituted by a coding network which The rising edge of STSNA is used as timing
generates an addressing binary output code signal applied to network 6.
which addresses, in its turn, an auxiliary When one of microcommands IR or S4 is
memory where the interruption addresses are present, it produces a timed microcommand
stored. STSNA (IR+S4) used as strobe signal for
The vector generator outputs are connected register 7. At an instant t4 a fourth signal
to the inputs of tristate set 46 through channel STINTA (diagram d) rises to logical level 1 and
51. remains at such level up to a time t7. Such
AND gates 47, 48, 49 together with JK flip- signal is used to enable AND gate 44.
flops 52, 53, 54 and with two AND gates 55, At a time t6 a fifth signal STCSSA (diagram
56 (fig. 1B) provide suitably timing of interrupt e) rises to logical level 1 and remains at such
signals and interrupt masking if a higher priority level up to time t9.
interruption was already in progress. The rising edge of STCSSA is used as strobe
Output of AND gate 47 is connected to J signal for register 3, memory 1, register 17 and
input of flip-flop 52; output of AND gate 48 to J sequencing unit 16.
input of flip-flop 53 and output of AND gate 49 Times to, t2 ... t", orderly follow in the time.
to J input of flip-flop 54. The organization of the microinstructions is
The inverted output of flip-flop 53 is con- now considered, such microinstructions con-
nected to an input of AND gates 48, 49. trolling during each machine cycle the operation
The inverted output of flip-flop 54 is con- of the sequencer, the control unit and the whole
nected to an input of AND gate 49. data processing central system.
The inverted output of flip-flop 52 is further Fig. 3A, 3B, 3C, 3D, 3E show the format of
connected to an input of AND gates 55, 56 and the several basic types of microinstructions,
the inverted output of flip-flop 53 is connected that is the meaning assumed by the several bits
to an input of AND gate 56. forming each microinstruction.
A microcommand EOS (end of service) is Essentially the microinstructions are of two
applied to K input of flip-flop 52 through lead types: OPERATIVE microinstructions (fig. 3A,
57 and to an input of AND gates 55, 56 which 3B) and JUMP microinstructions (fig. 3C, 3D,
have their outputs connected to K input of flip- 3E). The OPERATIVE microinstructions may be
flops 53, 54 respectively. TRANSFER microinstructions (fig. 3A
Flip-flops 52, 53, 54 are set/reset according TRANSFER) or LOGIC/ARITHMETIC operative
to the logical level on their J, K inputs, by the microinstructions (fig. 3B LOGICAL/ARITM).
falling edge of a timing signal PH2 applied to A transfer microinstruction comprises several
their clock input. fields of bits having a precise meaning.
The set of such flip-flops determines the A first field (bits 0 - 3 ) , named FC or
interruption level which is in progress. FUNCTION CODE, characterizes the micro-
The timed operation of such network will be instruction and assigns to the subsequent fields
explained later on. a determined meaning.
Before explaining the operation of the Decoding network 4 (fig. 1B) decodes such
sequencer object of the present invention, a function code and, according to it, distributes
brief description is made about the system subsequent bit levels, turned into electrical
timing and the organization of the micro- levels, to determined outputs of theirs.
instructions controlling it with particular The electrical levels at such outputs control
reference to the sequencer working. the several registers and the several gates
Fig. 2 shows, in timing diagram, the signals constituting the system in order to perform the
produced by timing unit 5 which are useful for function defined by the microinstruction bits.
understanding the sequencer working. A second field (bits 0 4 - 0 7 ) , named BLOCK
A machine cycle consists of a time interval, SEL or block selector, defines which are the
from time to to time t'o which is the beginning of system elements involved in the transfer.
the subsequent cycle. For instance the transfer microinstruction
A machine cycle start is determined by a can control the information transfer from a
timing signal STRORA (diagram a) which rises register of a bank to a register of another bank,
to logical level 1 at time to and remains at or from the output register of the working
logical level 1 up to time t5. memory to an output register of channel inter-
face, etc. (Such considerations are referred to same microinstruction is not verified, and must
the specific architecture described in the be the one having address N+K if the condition
already mentioned U S - A - 4 . 0 0 1 . 7 8 4 ) . specified by the same microinstruction is
A third field (bits 0 8 - 1 3 ) , named ADDR A, verified.
defines the specific address of one of the The displacement K is provided by the same
registers involved in the transfer, for instance microinstruction.
one of the registers of a bank or one of the Also in this case, a first field (bit 0 - 5 )
output registers. defines the function code.
A fourth field (bits 14-21), named ADDR B, A second field (bit 06), named SAVE, defines
defines the specific address of the other register whether the progressive address of the jump
involved in the transfer. microinstruction in progress, incremented by
A fifth field (bit 22), named DIR, defines the one unit, must be saved into stack 20 in order
transfer direction, that is if the transfer has to to be recalled later on.
occur from the location defined by ADDR A to A third field (bit 07), named C DR, defines
the one defined by ADDR B or viceversa. whether the condition to be verified is con-
Other fields (bit 23-31 ) are used for control tained in a DIRECT REGISTER.
functions and as parity check bits. A fourth field (bit 0 8 - 1 6 ) defines which is
Fig. 3B shows the format of a LOGIC/ARITH- the condition COND to be verified.
METIC operative microinstruction. A fifth field (bit 17-29) defines the
Also in this case there is a field (bits 0 - 3 ) displacement K.
with meaning of function code FC, a field (bits At last fig. 3E shows the format of a relative
1 8 - 2 0 ) with meaning of address of the unconditioned jump microinstruction (REL.
register (SOURCE) containing the operand (the UNC. JUMP), with possible operations of saving
operator may be stored in a fixed register), a and of return from subroutine and with possible
field (bits 2 1 - 2 3 ) which defines the priority change.
logic/arithmetic operation to be executed (OP Such microinstruction is typical for the start
SEL), a field (bit 2 4 - 2 6 ) which defines the of a subroutine or of an interrupting micro-
address of the register where the operation program and for the return from a subroutine or
result is to be stored, and a field IR (bit 29) from an interrupting microprogram.
which defines whether the index register is to Also in this case a first field (bit 0 - 0 5 )
be updated with the conditions of carry/over- defines a function code and a second field (bit
flow/etc. which have occurred owing to the 06), named SAVE, indicates if the progressive
operation. address of the jump microinstruction in
Other fields, not specifically shown, may progress, or, more generally, the address
assume suitable meanings. The operative present in register ROSPA, incremented or not
microinstructions do not contain, contrarily to by one unit, must be saved into stack 20 in
the jump ones, any useful information defining order to be recalled later on.
the subsequent microinstruction address. A third field (bit 07), named RD DR, defines if
The subsequent microinstruction will be the content of a DIRECT REGISTER must be
therefore called for by the sequencer through read out and transferred into register IR7.
the increment by one unit of the previous A fourth field (bit 08), named WR DR, defines
operative microinstruction address. if the content of register IR7 must be saved by
Fig. 3C shows the format of an absolute writing it in a DIRECT REGISTER.
jump microinstruction (ABS. JUMP). A fifth field (bit 09), named RET, defines if
Such kind of microinstruction specifies the the microinstruction is a microinstruction of
address of the following microinstruction itself. return from a subroutine or from an inter-
A first field (bits 0 - 5 ) constitutes the rupting microprogram; in this last case a pop
function code. operation of stack 20 is commanded and the
A second field (bit 06), named SAVE, defines subsequent microinstruction address is read out
whether the progressive address of the jump from stack 20.
microinstruction in progress, incremented by A sixth field (bits 10-13), named DR ADDR,
one unit, must be saved into stack 20 in order defines which DIRECT REGISTER of stack 9 is
to be called for later on; if bit 06 is at logical interested in the transfer (read or write).
level 1, the saving operation occurs. A seventh field (bit 14), named PC (PRIORITY
A third field (bit 0 7 - 2 2 ) , named ADDR, con- CHANGE), defines if a priority change must
stitutes the absolute address of the subsequent occur, for instance because a microprogram of
microinstruction. interruption treatment ends.
Other fields, not specifically shown, may An eighth field (bits 1 7 - 2 9 ) gives the jump
assume suitable meanings. Fig. 3D shows the displacement K.
format of a relative conditioned jump micro- Once described the format of the micro-
instruction (REL. COND. JUMP). instructions used to control the central system
Such kind of microinstruction, having a and the sequencer object of the invention, as
generical address N, defines that the subse- well as the essential timings of a machine cycle,
quent microinstruction must be the one having the sequencer working may be examined in the
address N+1 if a condition specified by the different possible cases.
1-Initialization instruction in progress is of the logic/arithmetic
To initialize the system it is enough to force kind, field IR (bit 29) may define, if at logical
by a start push button (not shown), which level 1, that register IR7 must be loaded with
activates at the same time a machine cycle, a the conditions verified during the execution of
logical level 0 on input 32 which locks AND such microinstruction.
gates 25. Such conditions, coming from a condition
As assumption is made that no external check network, not shown, are transferred
interruption be present, a start address 0 is through multiplexer 8 (enabled by a micro-
forced on channels 38 and 39 and is applied to command S4) to inputs of register 7 and loaded
inputs of incrementer 22. Such address is into it by the rising edge of a signal STSNA · !R
loaded into registers 17 (ROSPA) and 3 which is obtained as a logical AND of micro-
(ROSAR) by the rising edge of signal STCSSA, command IR with timing signal STSNA.
while address +1 is loaded into counter Register IR7 is therefore loaded at time t3
µCPCR21. and its outputs are connected, through AND
A read operation of ROS memory 1 starts, at gates 15 enabled by STSNA · IR, to channel 14
the end of which the microinstruction of which supplies decoding network 4.
address 0 is available on the output of such Some microcommands generated by such
memory. At the subsequent cycle start (time to) network are therefore modified. Particularly, if
the read out microinstruction is loaded into among the conditions received by register IR7
register ROR 2 by the rising edge of timing an ERROR condition is present, micro-
signal STRORA, so that the microinstruction is commands So S1 assume a logical condition
available on inputs of decoder 4 and a set of which selects input set 29 of multiplexer 23
microcommands is produced on the outputs of and microcommands S2 S3 assume a logical
decoder 4. level which selects inputs OOOF of multiplexer
Such microcommands allow the micro- 19.
instruction execution during the cycle. So, starting from time t3, when STSNA signal
Supposing that the read out micro- rises (or better with a certain delay due to the
instruction is an operative microinstruction, it signal propagation time, but however before
causes an address sequential updating. time t6) an address OOOF is forced, through
multiplexer 19, inputs 27 and 29, multiplexer
2-Address sequential updating 23, gates 25, tristates 24, on channels 38 and
Microcommands So and S1 at logical level 0 39. A start address OOOF of an error treatment
are two of the microcommands generated by routine is therefore loaded into registers 17
decoder 4 and they are available from time to. (ROSPA) and 3 (ROSAR) by timing signal
Such microcommands select input set 31 of STCSSA. At the same time the address
multiplexer 23, so that the new address "1", OOOF+ i s loaded into register µPCR21, whilst
present in register µPCR21, is transferred on the previous address contained into µPCR21 is
channels 38 and 39 and applied to inputs of lost. In fact, when an error occurs, it is unuseful
incrementer 22. to save information in progress (microprogram
At instant t6 the new address "1" is loaded addresses included) in order to resume
into registers 17 and 3 by the rising edge of operations which have not been correctly
signal STCSSA, and an address incremented by executed.
one unit, that is "2", is loaded into register
µCPCR21. 4-Absolute jump with address saving
Generally, if at instant to of any cycle an Assumption is made that, during a general
operative microinstruction of address N is machine cycle n-1, an absolute jump micro-
loaded into register ROR 2, this means that instruction of address N is addressed.
during the previous cycle address N was loaded At time t6 of cycle n-1 registers ROSPA 17
into registers ROSPA 17 and ROSAR 3 and that and ROSAR 3 are loaded with address N and
address N+ w a s loaded into register µPCR21, register µPCR21 is loaded with address N+1.
all these loadings occurring at a time t6 by the At time to of cycle n, the microinstruction of
rising edge of timing signal STCSSA. address N is available in register ROR2 and is
During the cycle within which the micro- decoded.
instruction of address N is executed, the new Field 0 7 - 2 2 defines a new address NA to
address N+ i s transferred by the rising edge of be used to address the subsequent micro-
STCSSA from µPCR21 to channels 38, 39 instruction: such bit field is transferred through
through multiplexer 23, AND gates 25, tristate channels 41, 42 to an input set of multiplexer
circuits 24, and then loaded into registers 19.
ROSPA and ROSAR. The microinstruction decoding produces a
At the same time the content of µPCR21 is group of microcommands S2, S3 at logical level
incremented to N+2. such as to select the input set of multiplexer 19
connected to channel 42, as well as a set of
3-Forcing to microprogram routine of error microcommands S0, S1 which select input set
treatment 29 of multiplexer 23.
It is to be noted that, if the operative micro- Therefore new address NA is transferred on
channels 38, 39 and to inputs of incrementer information the condition to be verified and, if
22. this last one is verified, it generates a set of
Besides, if bit 06 (SAVE field) is at logical microcommands S2, S3 at a logical level such as
level 1, two microcommands FILE EN at logical to select the input set of multiplexer 19 which is
level 0 and PUSH/POP at logical level 1 are connected to the output set of summing net-
generated; such microcommands are applied to work 19, and a set of microcommands S0, S,
inputs 35, 36 of the sequencing unit 16 which select input set 29.
respectively. Besides, if bit 06 is at logical level 1 (that is
At time t6 of cycle n, new address NA is the command of saving into stack is present),
loaded into registers ROSPA 16 and ROSAR 3, microcommands FILE EN at logical level 0 and
while address N+1 contained in ,uPCR21 is PUSH/POP at logical level 1 are also generated.
loaded into register 20A of stack 20. So, as time t6, address N+K is loaded into
At the same time address NA+1, present on ROSPA 17 and ROSAR 3, while address N+1
outputs of network 22, is loaded into register contained in ,uPCR21 is transferred to register
,uPCR21. The new microinstruction, which will 20A of stack 20 and address N+K+ i s loaded
be recalled, will therefore be the one of address into µPCR21.
NA, while the sequential address N+1 is saved If the condition had not been verified, no
into stack 20 and will be recalled later on. saving would have occurred and the address
If the microinstruction of address N was a loaded into ROSPA 17 and ROSAR 3 would be
jump microinstruction without address saving N+1, while the address contained in µPCR21
(that is bit 06 SAVE was at logical level 0), the would be N+2.
saving operation would not have occurred.
6-External interruption
5-Relative conditioned jump Assumption is made that an interruption
Assumption is made that, during a general request is presented by a peripheral unit of the
machine cycle n-1, a relative conditioned jump system.
microinstruction of address N is addressed. Such completely asynchronous event is con-
At time t6 of cycle n-1, an address N is sidered at a suitable time of a machine cycle; it
loaded into registers ROSPA 17 and ROSAR 3 is recognized only if there are not interruption
and an address N+1 is loaded into register requests of higher priority or interruption
µPCR21. requests in progress having the same priority
At time to of cycle n, the microinstruction of level and is presented to the central unit in
address N is available into register ROR2 and is order to develop an interruption execution
decoded. microprogram.
Field 1 7 - 2 9 defines a jump displacement K These operations are performed by an inter-
to be used to address the subsequent micro- face priority network, not shown because it is
instruction if a determined condition is verified. beyond the scope of the invention.
Such bit field is transferred, through channel An embodiment of such network is described
41, to input set B of summing network 18 in the already mentioned U S - A - 4 . 0 0 1 . 7 8 4 .
which receives on its input set A the address N For the invention purposes it suffices to point
coming from ROSPA through channel 40. out that such network provides leads 99, 154,
The microinstruction decoding produces a 150, with signals indicating an interruption
group of microcommands: microinstruction bit having high, mean, low priority and leads 158,
07 defines whether the condition to be 159, 161, 162 with signals indicating an inter-
examined is contained in a register DR of bank rupting channel.
9, whose address is expressed by the field of The number of such leads is variable and it
bits 1 0 - 1 3 . depends on the number of priority levels that
In the affirmative case, addressing micro- the system is able to consider and on the
commands of bank 9 and a read micro- number of interface channels.
command RDR are generated by network 4. Fig. 1B is considered and assumption is
Timing signal PH2 therefore controls the made that an intermediate priority interruption
reading of the selected register. occurs on lead 154 during the initial phase of a
At time t2, the content of the selected machine cycle and that, at the same time, a
register is available on output set 12. signal of interrupting channel is applied to lead
The selected register content defines the 158.
condition to be examined and is transferred It is further to be supposed that no treat-
through multiplexer 8, controlled by micro- ment of high or intermediate priority inter-
command S4 at suitable logical level, to the ruption is in progress, that is flip-flops 52 and
inputs of register IR7. 53 are reset.
At time t3, by the rising edge of STSNA, the The interruption is therefore transferred
content read out from the selected register is through AND 48, is applied to vector generator
loaded into register IR7 and transferred, then, 45 and, through OR 43, is applied to an input of
through AND gates 15 and channel 14, to AND gate 44.
decoding network 4. At time t4, the interruption is transferred to
Such network selects in the contained lead 50 by the rising edge of STINTA and it
enables tristate circuits 46, while NOT 51' microinstruction of address MI (specified by the
applies a logical level 0 to input CN. interruption vector) contains the following
Therefore an interrupting microprogram useful information:
address MI, coming from network 45 as
interrupting vector and present on channel 51, A) SAVE=1 to save the preexistent address.
is applied to channels 38 and 39. B) WDR=1 to save the content of register IR7
The interruption signal is present on lead 50 into a DIRECT REGISTER.
for a suitable portion of the cycle, that is from C) DR ADDR: DIRECT REGISTER address.
time t4 (signal STINTA rising to 1) up to time t7, D) K: jump displacement necessary to generate
when signal STINTA falls to logical level 0. the subsequent address. Such quantity may
When the interruption is received, the suitably be equal to 1.
sequencer is in a state determined by the micro-
instruction in progress. Assumption is made All these information are available at time to,
that an operative microinstruction of address N that is at the machine cycle start.
is in progress. It is therefore clear that address DR ADDR information allows to select a
N is contained in registers ROSAR 3 and register of bank 9.
ROSPA 17 and an address N+1 is contained in Information WDR=1 together with signal
register µPCR21. PH2 allows to control a writing operation at
The several commands So, S1, S2' S3 enable instant t4: the content of register IR7 is loaded
multiplexers 19 and 23 to transfer address N+1 into the selected DR register through channel
to output set 28 of sequencing unit 16 and to 10 and inputs 11. The function code specifies
inputs of incrementer 22. that the microinstruction is a relative uncon-
But, at time t4, the output tristate gates 24 ditioned jump microinstruction and generates,
are locked by the interruption and a signal when it is decoded, signals S2. S3 such as to
CN=0 is applied to input 33. select the input set of multiplexer 19 which is
So, at instant t6, address N+1 is not loaded connected to the output set of summing
into registers ROSPA and ROSAR by the rising network 18.
edge of STCSSA. It also generates signals S0, S1 such as to
Instead of it address MI of interrupting select input set 29 of multiplexer 23.
microprogram is loaded. So, address MI present in ROSPA is added to
At the same time address N+2 is not loaded jump displacement K (which is assumed=1), is
into register µPCR21, but, instead of it, N+ i s transferred on channels 38, 39 and is applied to
loaded again (because CN=0). inputs of network 22.
Microinstruction MI is therefore addressed Command SAVE=1, suitably decoded,
and it is executed during the subsequent cycle. generates a signal FILE EN at logical level level
According to an aspect such micro- 0 and a command PUSH/POP at logical level 1.
instruction is a jump microinstruction and not So, by timing signal STCSSA, address N+1
an operative microinstruction and it allows to present in µPCR21 is saved by loading it into
save the machine states existing before the stack register 20A and address MI+1 is loaded
interruption. Such microinstruction has the into ROSPA 17 and ROSAR 3.
format shown in fig. 3E. At the same time a new address MI+2,
A first field (bits 0 - 5 ) constitutes the which can be used for the following sequential
function code. addressing of the microprogram, is loaded into
A second field (bit 06), named SAVE, in this µPCR21. In case the interruption occurs during
case at logical level 1, defines that the pre- a jump microinstruction, the several addresses
existent microprogram address must be saved. can be easily saved by using the several
A third field (bit 07), named RDR, is not used available paths.
in this case and is at logical level 0.
A fourth field (bit 08), named WDR, is at If a jump microinstruction of address N is in
logical level 1 and determines that the infor- progress, register µPCR21 contains address
mation contained in register IR7 must be saved N+1.
into a DIRECT REGISTER. Such address is saved into the stack by
A fifth field (bit 09), named RET, is in this signal STCSSA (if SAVE=1) and, at the same
case at logical level 0 and is not used. time, µPCR21 is loaded with the jump address
A sixth field (bit 10-13), named DR ADDR, (absolute or relative) obtained through multi-
determines the DIRECT REGISTER address to be plexers 19, 23, AND gates 25 and network 22
used for the writing operation specified by bit (which does not increment such jump address
08. because an interruption has been previously
A seventh field (bit 14), named PC, is in this recognized by signal STINTA).
case at logical level 0 and is not used. Always by signal STINTA tristate circuits 24
An eighth field (bit 17-29), named K, have been locked and tristates 46 enabled, so
defines the jump displacement K to be used to that, by STCSSA, the interrupt vector, instead
establish the subsequent microinstruction of the jump address, is loaded into ROSPA and
address. ROSAR.
Therefore, in case of interruption, the called During the execution of the interrupt micro-
instruction, also the jump address contained 54, which inhibits, till set, that other subse-
into pPCR21 is then saved into stack 20. quent low priority interruptions be recognized.
Evidently this is possible only because the The function of the return microinstruction
interrupting microinstruction is a jump micro- from interrupting microprogram is in this case
instruction (with saving) which does not use, for double.
the address increment, network 22 and register On one side such return microinstruction
jMPCR21 as temporary store, but it uses a path commands, by field 09 (RET) at logical level 1, a
different from the first one. Such different path pop operation of the stack and the recall from
has only a section in common with the first path stack 20 of the lower priority microprogram
and is provided with summing network 18 and address previously interrupted.
with temporary storing register of the addresses On the other side it commands the tran-
(ROSPA). sition to a lower priority level by field 14 (PC) at
So, during the second phase of the cycle logical level 1.
within which an interruption occurs and during Field 14, when it is decoded, generates a
the first phase of the executing cycle of the first microcommand EOS which is applied to K input
microinstruction, register µPCR21 can be used of flip-flop 52 through lead 57, and to K input of
as temporary register of the jump address flip-flops 53, 54 through AND gates 55 and 56
which can therefore be saved. respectively.
The unconditioned relative jump micro- As AND gate 55 receives to its input the
instruction, having the format shown in fig. 3E, signal present on Ô output of flip-flop 52 and
is also used as return microinstruction both AND gate 56 receives to its inputs the signals
from interrupting microprogram and from present on output Q of flip-flops 52 and 53, it is
subroutine. clear that EOS applies a signal at logical level 1
to input K of flip-flops 53, 54 only if flip-flop 52
is reset, as well as that EOS applies a signal at
7-Return from subroutine logical level 1 to input K of flip-flop 54 only if
In such case, the last microinstruction of the flip-flops 52, 53 are reset.
microprogram is of the type shown in fig. 4E. Therefore, when during the execution of the
Field 09 (RET) is at logical level 1 and microinstruction of return from interrupting
commands, when decoded, a pop operation of microprogram timing signal PH2 falls to logical
stack 20: the address of the following micro- level 0, that flip-flop is reset among flip-flops
instruction is read out from stack 20. 52, 53, 54 which were set, indicating the higher
priority.
8-Return from interrupting microprogram In conclusion the sequencer is able to
Every time an interruption at a certain priority generate microprogram addresses with pos-
level is recognized, that is it causes a jump to an sibility of inserting subroutines at the same
interruption treatment microprogram, a flip-flop priority level and saving microprogram
indicating the interruption priority level is set. addresses, as well as with possibility of inter-
The flip-flops indicating the several priority rupting microprograms to jump to interrupting
levels are flip-flops 52, 53, 54. microprograms, and saving addresses and,
Fig. 1B shows that an high priority finally, of returning from such subroutines or
interruption INT HP is transferred through AND interrupting microprograms.
gate 47 only if flip-flop 52 was reset. This is allowed because two address
During the same machine cycle, interruption generation loops having a common section and
INT HP addresses the interruption treatment two address latch registers are provided, as well
microprogram by means of signals STINTA as a stack connected to one of such loops.
(which enables AND gate 44) and by signal A first loop is formed by multiplexer 23, by
STCSSA. AND gate set 25, by incrementer 22, by register
Always during the same machine cycle, flip- ,uPCR21 and by the connection between output
flop 52 is set by the falling edge of PH2, set of juPCR21 and input set 31 of multiplexer
because its J input is at logical level 1. 23.
The set of flip-flop 52 locks AND gate 47 A second loop is formed by multiplexer 23,
and, from now onwards, interruption INT HP by gate sets 25 and 24, by channel 39, by
may be removed from lead 99. register 17, by channel 40, by summing net-
No other interruption occurring on lead 99 is work 18, by multiplexer 19 and by the con-
recognized, till flip-flop 52 is set. nection between the output set of multiplexer
The set of flip-flop 52 also locks gates 48 19 and input set 29 of multiplexer 23.
and 49 so that the interruptions having lower On the first loop the stack 20 of address
priority level cannot be recognized too. saving is inserted.
Likewise an intermediate priority inter- A preferred embodiment of the invention has
ruption, if it is recognized, sets flip-flop 53, been described, but it is clear that several
which inhibits, till it is set, that other subse- modifications can be made without departing
quent interruptions having intermediate or low from the scope of the invention.
priority be recognized. Likewise, a low priority For instance, the use of two multiplexers 19
interruption INT BP, if recognized, sets flip-flop and 23 connected in cascade is arbitrary and is
due to the advantage of using a component -a second loop for address circulation
(sequencing unit 16) available on the market. comprising: a second register (17) having its
Actually two multiplexers 19 and 23 may be input and its outputs on said second loop; a
included in one multiplexer 23A, as shown in summing network (18) having a first input
fig. 4. set connected to the outputs of said second
In fig. 4 a modified embodiment of the register, a second input set connected to at
sequencer of fig. 1A is shown. least some outputs of said control memory
The elements corresponding to those of fig. and its output on said second loop,
1A are identified by the same reference - s a i d second loop further comprising con-
numbers. nection means (19, 27, 29) of said summing
The two address generation loops, essential network outputs to said first node and said
for the sequencer working, are evidenced by a set of gates (24) said set of gates having its
double line. outputs connected to the inputs of said
Fig. 5 shows a second modified embodiment second register,
of the sequencer of fig. 1A; such modified - a second addressing node connected to the
embodiment uses two multiplexers and differs outputs of said set of gates (24) to the inputs
from fig. 1A only because multiplexer 19 is of said second register (17) and to an input
downstream of multiplexer 23. Also in this channel (51) for interruption addresses,
figure the elements corresponding to those of - second set of gates (46) enabled by an
fig. 1A are identified by the same reference interruption signal and controlling said input
numbers and the two address generation loops channel, said interruption signal further
are evidenced by a double line. inhibiting (via 26) said first set of gates (24).
2. Microprogram sequencer as claimed in
claim 1, characterized in that said connection
means of the second loop comprises a second
1. Microprogram sequencer for micropro- multiplexer (19) having a set of inputs con-
grammed control unit of a data processing nected to outputs of said summing network
system comprising: (18) and outputs connected to a set of inputs
(29) of said first multiplexer (23).
- a control memory (1), 3. Microprogram sequencer as claimed in
- timing unit (5) for timing the operation of claim 1, characterized in that said first multi-
said control unit during subsequent machine plexer (23) consists in an upstream multiplexer
cycles, (23, Fig. 5) and a cascade downstream multi-
- a decoder (4) receiving at its inputs, at each plexer (19, Fig. 5).
machine cycle, a microinstruction read out
from said control memory and machine con-
ditions or states and supplying on its outputs
microcommands for controlling said unit, 1. Mikroprogrammfolgesteuerung für eine
- afirst multiplexer (23) being part of a mikroprogrammierte Steuereinheit einer Daten-
memory control loop (38, 1, 41, 42, 19, 27, verarbeitungsanlage mit
29) and of a first loop for address cir-
culation, - einem Steuerspeicher (1);
- t h e first loop comprising an incrementer -einem Zeitgeber (5) für die zeitliche
(22), having its inputs and its outputs on said Steuerung des Betriebs der Steuereinheit
loop, said incrementer being controlled to während aufeinanderfolgender Maschinen-
increment by one unit or to transfer zyklen;
unchanged an address received on its inputs, -einem Decoder (4), der während jedes
a first register (21) having its inputs con- Maschinenzyklus' an seinen Eingängen einen
nected to outputs of said incrementer and its aus dem Steuerspeicher entnommenen
outputs on said first loop, an address saving Mikrobefehl sowie Maschinenzustands-
register stack (20) having its inputs coupled signale empfängt und an seinen Ausgängen
to the outputs of said first register and its Mikrobefehle für die Steuereinheit (1) liefert;
outputs coupled to first inputs of said first - einem ersten Multiplexer (23) als Teil der
multiplexer, a first address output node said Speichersteuerschleife (38, 1, 41, 42, 19,
node being upstream of said incrementer, 27, 29) und einer ersten Schleife für den
- s a i d first multiplexer conveying on said Adressenumlauf;
output node at least the outputs of said first - wobei die erste Schleife einen Schritt-
register (21 o f said stack (20) and of other schalter (22) umfaßt, dessen Eingang und
networks, Ausgang in der Schleife liegen und welcher
- a set of gates (24) enabled by a control derart gesteuert wird, daß eine seinen Ein-
signal (OE) and having their inputs con- gängen zugeführte Adresse entweder um
nected to said output node, einen Schritt fortgeschaltet oder unver-
ändert durchgeschaltet wird;
and characterized in that it comprises further - d i e erste Schleife ferner ein erstes Register
(21) enthält, dessen Eingänge an Ausgänge
des Schrittschalters (22) und dessen Aus-
gänge an die erste Schleife angeschlossen 1. Unité de commande séquentielle de
sind; microprogramme pour une unité de commande
- d i e erste Schleife außerdem ein Adressen- par microprogramme d'un système de traite-
sicherstellungs-Stapelregister (20) auf- ment de données, comprenant:
weist, dessen Eingänge an die Ausgänge des
ersten Registers (21) und dessen Ausgänge - u n e mémoire de contrôle (1),
an erste Eingänge des ersten Multiplexers - u n e unité de synchronisation (5) pour syn-
(23) angeschlossen sind; chroniser le fonctionnement de l'unité de
- ein erster Adressenausgangsknoten strom- commande pendant des cycles machine se
aufwärts vom Schrittschalter liegt; suivant,
- u n d wobei der erste Multiplexer (23) am - u n décodeur (4) recevant à ses entrées, à
Ausgangsknoten zumindest die Ausgangs- chaque cycle machine, une micro-instruction
signale des ersten Registers (21), des lue dans ladite mémoire de contrôle et des
Stapelregisters (20) sowie anderer Schalt- conditions ou états et fournissant à ses
kreise liefert; sorties des microcommandes pour com-
- u n d mit einer Gruppe von Gattern (24), die mander ladite unité,
von einem Steuersignal (OE) aktiviert - un premier multiplexeur (23) faisant partie
werden und mit ihren Eingängen an den d'une boucle de commande de mémoire (38,
Ausgangsknoten angeschlossen sind, da- 1, 41, 42, 19, 27, 29) et d'une première
durch gekennzeichnet, daß die Mikro- boucle pour la circulation d'adresses,
programmfolgesteuerung ferner eine zweite - l a première boucle comprenant un compteur
Adressenumlaufschleife mit folgenden Bau- progressif (22), ayant ses entrées et ses
gruppen aufweist: sorties sur ladite boucle, ledit compteur pro-
- Ein zweites mit seinen Ein- und Ausgängen gressif étant commandé pour incrémenter
in der Schleife liegendes Register (17); d'une unité ou pour transférer une adresse
- ein Summiernetzwerk (18), das mit einer inchangée reçue à ses entrées, un premier
ersten Gruppe von Eingängen an die Aus- registre (21) ayant ses entrées connectées
gänge des zweiten Registers (17), mit einer aux sorties du compteur progressif et ses
zweiten Gruppe von Eingängen an sorties sur ladite première boucle, une pile
wenigstens einige Ausgänge des Steuer- de registres de sauvegarde d'adresse (20)
speichers (1) und mit seinem Ausgang an die ayant ses entrées connectées aux sorties du
zweite Schleife angeschlossen ist; premier registre et ses sorties connectées à
-Verbindungseinrichtungen (19, 27, 29) des premières entrées du premier multi-
zwischen den Ausgängen des Summier- plexeur, un premier noeud de sortie
netzwerkes und dem ersten Knoten und der d'adresse, ledit noeud étant en amont du
ersten Gruppe von Gattern (24), wobei die compteur progressif,
Ausgänge der Gatter an die Eingänge des -le premier multiplexeur envoyant audit
zweiten Registers angeschlossen sind; noeud de sortie au moins les signaux de
- e i n e n zweiten Adressierknoten, der an die sortie du premier registre (21 d e la pile (20)
Ausgänge der Gruppe von Gattern (24), die et d'autres réseaux,
Eingänge des zweiten Registers (17) und - u n groupe de portes (24) validées par un
einen Eingangskanal (51) für Unter- signal de commande (OE) et ayant leurs
brechungsadressen angeschlossen ist; entrées connectées au noeud de sortie,
- e i n e zweite Gruppe von Gattern (46), die ladite unité de commande séquentielle étant
durch ein Unterbrechungssignal aktiviert caractérisée en ce qu'elle comprend en outre:
werden und den Eingangskanal steuern, - u n e seconde boucle pour la circulation
wobei das Unterbrechungssignal (über 26) d'adresses comprenant: un second registre
die erste Gruppe von Gattern (24) sperrt. (17) ayant son entrée et ses sorties sur ladite
seconde boucle; un réseau de sommation
2. Mikroprogrammfolgesteuerung nach (18) ayant un premier groupe d'entrées con-
Anspruch 1, dadurch gekennzeichnet, daß die necté aux sorties du second registre, un
Verbindungseinrichtungen der zweiten Schleife second groupe d'entrées connectées au
einen zweiten Multiplexer (19) aufweisen, der moins à certaines sorties de la mémoire de
mit einer Gruppe von Eingängen an die Aus- contrôle et sa sortie sur la seconde boucle,
gänge des Summiernetzwerkes (18) und mit - l a seconde boucle comprenant en outre un
Ausgängen an eine Gruppe von Eingängen (29) moyen de connexion (19, 27, 29) des sorties
des ersten Multiplexers (23) angeschlossen ist. de réseau de sommation au premier noeud
3. Mikroprogrammfolgesteuerung nach et au groupe de portes (24), ledit groupe de
Anspruch 1, dadurch gekennzeichnet, daß der portes ayant ses sorties connectées aux
erste Multiplexer (23) aus einem stromauf- entrées du second registre,
wärts angeordneten Multiplexer (23 in Fig. 5) u n second noeud d'adressage connecté aux
und einem stromabwärts angeordneten sorties du groupe de portes (24), aux entrées
Kaskadenmultiplexer (19 in Fig. 5) besteht. du second registre (17) et à un canal
d'entrée (51) pour des adresses d'inter- second multiplexeur (19) comportant un groupe
ruption, d'entrées connecté aux sorties du réseau de
- u n second groupe de portes (46) validé par sommation (18) et des sorties connectées à un
un signal d'interruption et commandant ledit groupe d'entrées (29) du premier multiplexeur
canal d'entrée, ledit signal d'interruption (23).
invalidant (par 26) ledit premier groupe de 3. Unité de commande séquentielle de
portes (24). microprogramme selon la revendication 1,
caractérisée en ce que le premier multiplexeur
2. Unité de commande séquentielle de (23) est constitué par un multiplexeur en amont
microprogramme selon la revendication 1, (23, Figure 5) et un multiplexeur en aval en
caractérisée en ce que ledit moyen de con- cascade (19, Figure 5).
nexion de la seconde boucle comprend un

You might also like