® ê 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