DEVICE AND METHOD FOR OBTAINING A SEQUENTIAL ADDRESS OF A MICROPROGRAMMED SEQUENCE CONTROLLER

Abstract: The device and method are intended for achieving a high capacity of the control functions and optimum flexibility of the control with low loading of the micro words and good testability of an electronic component controlled by the sequence controller (SQ) by means of optimum distribution of the tasks and functions to micro instruction, hardware logics and control registers. Such a device exhibits means (SOFTD, JUMPCON) for testing jump conditions (JUMPCTR) and for providing an associated jump address (JUMPADDR), jump conditions (JUMPCTR) and associated jump address (JUMPADDR) being contained in a micro instruction (MB), and exhibits means (MAPD, MAPCON) for testing map conditions (MAPCTR) and for providing a map address (MAPADDR), the map control function (MAPCTR) being contained in a micro instruction (MB). In such a method, a field containing jump conditions (JUMPCTR) in a micro instruction (MB) causes certain conditions to be tested and, when these conditions are satisfied, ensures that a jump address (JUMPADDR) also contained in this micro instruction is provided. In such a method, a field with map (MAPCTR) in the micro instruction (MB) controls the formation of a map address (MAPADDR). <IMAGE>

Description: Vorrichtung und Verfahren zur Folgeadress-Bildung eines mikroorogramm-gesteuerten Sequenzers. Die Erfindung betrifft eine Vorrichtung nach dem Oberbegriff des Patentanspruchs 1 und ein Verfahren nach dem Oberbegriff des Anspruchs 5 zur Folgeadress-Bildung eines mikroprogramm-gesteuerten Sequenzers. Beispielsweise besitzt ein integrierter Hochleistungs- DMA-Kontroller ADMA (advanced direct memory a vier voneinander unabhängige Kanäle, die den Datentransfer zwischen Medien: (Speicher, Peripherie-Geräte) oder allgemeiner gesprochen zwischen Datenquellen und Daten- senken bewerkstelligen. Die Hauptsteuerung der Kanäle übernehmen Mikroprogramme, deren' Mikrobefehlsfolge von einem Sequenzer gesteuert wird. Die Arbeitsweise eines Sequenzers besteht darin, abhängig von entsprechenden Steuerinformationen und zu testenden Zuständen eine Verzweigungsadresse bei eraull- ten Test bzw. eine 'continue'-Adresse (Linearfall) bei nicht erfülltem Test zur Verfügung zu stellen. In Anbetracht der komplexen und zeitkritischen Aufgaben des ADMA ist die Sequenzsteuerung (Steuerung der Mikro- befehlsfolge) von einer Vielzahl von Parametern abhängig, so dass verschiedene, mit unterschiedlichen Prioritä- ten versehene Steuerfunktionen notwendig sind, um die Folgemikroadresse zu bilden Der vorliegenden Erfindung liegt die Aufgabe zugrunde, eine Vorrichtung und ein Verfahren der eingangs genannten Art anzugeben, mit denen sich durch optimale Verteilung der Aufgaben und Funktionen auf Mikrobefehl, Hardware-Logiken und Steuerregister grosse Mächtigkeit der steuerfunktionen sowie optimale Flexibilität der Steuerung bei geringer Belastung der Mikroworte und guter Testbarkeit eines vom Sequenzer gesteuerten elektronischen Bauteils: erreichen lassen Diese Aufgabe wird erfindungsgemäss durch eine Vorrichtung nach dem Anspruch 1 und durch ein Verfahren nach dem An- spruch 5 gelost. Ausgestaltungen und Vorteile der Erfin- dung sind in den Unteransprüchen, der Beschreibung uns der Zeichnung dargestellt. Irs ADMA lassen sich vier Hauptgruppen von Folgemikroadres- sen unterscheiden, aus denen der Sequenzer jeweils eine auswählt. Diese vier Hauptgruppe: von Folgemikroadres- sen werden im folgenden in steigender Priorität beschrieben: a) Linearfolgeadresse oder 'continue'-Adresse: Sie wird ausgewählt, wenn keine Sprungbedingung oder sonstige weiter unten beschriebene Bedingungen vorhanden und erfüllt sind. Die 1continue'-Adresse hängt aber noch von einem weiteren Parameter ab, nämlich dem Typ des Mikrobefehls. Bei sogenannten Organisations-Mi=obefehlen ist die continue-Adresse üblicherweise die um 1 inkre- mentierte Mikroadresse des aktuellen, laufen, laufenden Mikrobefehls; bei sogenannten DMA-Befehlen oder allgemeiner bei Nicht-Organisations-Mikrobefehlen ist die 'continue'-Aadresse gleich der aktuellen, laufenden Mikrobefehlsadresse. b) Sprungadresse: Sie wird ausgewahlt, wenn die von einer Steuerfunktion (ump control) angegebenen Bedingungen erfüllt sind. Ein und dieselbe ' 'jump control' soll, wenn sie in verschiede- nen Mikrobefehlen verwendet wird, unterschiedliche Sprungadressen liefern. Beispiel: Die '2ump control' "not another source byte?" führt bei erfüllter Bedingung dieser jump control' zum Sprung auf den Destination (Daten- senke)-DMA-Mikrobefehl des zugehörigen DMA-Mikroprogramms. c) Mapadresse: Sie wird ausgewählt. wenn die von einer Steuerfunktion ('map control') angegebenen Bedingungen erfüllt sind. Die Steuerfunktion 'map control' hat eine höhere Priorität als die Steuerfunktion 'jump control', das bedeutet, dass bei erfüllter 'map'-Bedingung trotz gegebenenfalls eben falls. erfüllter' 'jump'-Bedingung die Mapadresse erzeugt wird. In Unterschied zur Steuerfunktion 'jump control' Sihrt ein und dieselbe Steuerfunktion 'map control', wenn sie in verschiedenen Mikrobefehlen angewandt wird, bei gleichen erfüllten Bedingungen immer zur gleichen Mapmikro- programmadresse, weil mit einer Mapmikroprogrammadresse im allgemeinen gemeinsame Oragnisationsprogramme, wie z.B. Ende. Behandlung oder Data Chaining angesprungen werden sollen. Weitere Unterschiede der Steuerfunktion tmap control' zur Steuerfunktion ump control' sind: Eine Steuerfunktion 'map control' kann verschiedene Grup pen von zu testenden Bedingungen ansprechen, die in sich priorisiert sind und damit je nach höchster gültiger Priorität dieser zu testenden Bedingungen verschiedene Mapmikroprogrammadressen erzeugen. Z.B. führt der Mikrobefehl 'Mux Idle Map', der einen Subkanal dazu veranlasst, auf eine Anforderung zu warten, bei vorliegender Start-/ St op-Subka na 1-Anforderung durch die Zentraleinheit (CPU) zur Mapmikroprogrammadresse des zugehörigen Start-/Stop Mikroprogrammes, während bei gleichzeitig anliegender An- forderung zur Bedienung eines anderen bereits gestarteten Subkanals das ru diesem. anderen Subkanal gehörige Mikro- programm -nachrngig ausgeführt wird Eine Steuerfunktion 'map control' kann, ohne zu priorisieren, verschiedene Mapmikroprogrammadressen erzeugen (vergleichbar mit einer Mehrfach-Verzweigung) aufgrund der Decodierung von Steuerbits im zentralen Steuerregister ('control register'). Beispiel: Bei einem Transfermap wird die Startadresse der benötigten DMA-Routine bereitgestellt, in Abhängigkeit von Eintragen in den Benutzer- zugänglichen Kommando- und Modus-Registern d) Testadresse: Sie wird ausgewählt, wenn die Steuerfunktion 'tast control' die Auswahl eines beliebigen Mikrobefehls vorschreibt, und wird mit höchster Priorität gebildet Ein Ausführungsbeispiel der Erfindung wird im folgenden anhand der Zeichnung näher beschrieben. Fig. 1 zeigt ein Blockschaltbild für ein Ausführungsbei spiel der Erfindung. Fig.2 zeigt ein Mikrowort, das bei einem Auführungsbei- spiel der Erfindung verwendet werden kann. Fig. 3 zeigt das Prinzip einer PLA für einen Mapdecoder. In der Fig.1 ist ein Blockschaltbild fUr ein AusfUhrungs- beispiel der Erfindung dargestellt. Der Sequenzer SQ erhält die vier verschiedenen Adressen entsprechend den vorher beschriebenen Hauptgruppen, nämlich die 'continue' Adresse CADDR, die Sprungadresse JUMPADDR, die Mapadresse MAPADDR und die Testadresse TMADDR. Der Sequenzer SQ wählt je nach den vom Mikrobefehl MB bzw. vom Testregi- ster TR vorliegenden. Steuerinformationen. deren Prioritäten und den dazugehörigen Testergebnissen eine Mikropro- grammadresse davon aus Die Auswahl der 'continue'-Adresse CADDR wird gesteuert durch das Steuerbit ORG aus dem Feld 'instruction pipe control' ITC des Mikrobefehls MB. Bei sogenannten Orga nisatlons-Mikrobefehlen ist die 'continue'-Adresse die um 1 inkrementierte Mikroprogrammadresse ROMA des aktuellen, Laufenden Mikrobefehls MB. Bei sogenannten DMA Befehlen ist die. 'continue'-Adresse CADDR gleich der aktuellen Mikrobefehlsadresse ROMA. Ein eventuell notwendiges Inkrementieren der aktuellen Mikrobefehlsadresse ROMA erfolgt über einen Inkrementer INCR. Das Steuerbit ORG steuert über einen Multiplexer MUX die Auswahl zwischen einer um +1 inkrementierten aktuellen Mikrobefehls- adresse ROMA und einer nicht inkrementierten aktuellen Mikrobefehlsadresse ROMA Die aktuelle Mikrobefehis- adresse ROMA umfasst 7 Bit und kann in einem kanalspezi- fischen Mikroadressregister MPARi, i a 0,1,2,3, gespeichert werden. Ein ADMA mit vier kanälen enthält vier Mikroadressregister MPARi und für den jeweils zugehörigen Mikrobefehl vier Mikroinstruktionsregister MPIRi. Aus diesen vier Kanälen wird jeweils ein kanal über ein Signal PRIOR mittels einer Priorisierungseinheit GPRIO ausgewählt Die Priorisierung eines Kanals erfolgt auf grund von externen Anforderungen EREQ, von internen Anforderungen IREQ und aufgrund von Anforderungen aus zentralen Steuerregistern GBR, GDR. Die vom Sequenzer SQ ausgewählte Mikraadresse ROMA wird in einem Zwischenspeicher SLATCH zwischengespeichert und liest aus dem Mikro befehlsspeicher ROM den zugehörigen Mikrobefehl MB atis. Der Mikrobefehlsspeicher ROM. umfasst 128x40 Bit Der je- weils priorisierte Mikrobefehl Mg wird in einem Mikrobe- fehls-Zwischenspeicher MLATCH zwischengespeichert. Fig.2 zeigt die verschie'denen Felder eines Mikrowortes MB, wie es in einem erfindungsgemässen Ausführungsbeispiel nach Fig.1 verwendet werden kann. Das Feld JUMPCTR ('jump control') im Sequenzsteuerfeld SC des Mikrobefehls ME testet bestimmte Bedingungen und sorgt, wenn diese Be Bedingungen erfüllt sind, für die Bereitstellung der gleichfalls im Mikrobefehl MB mitgeführten Sprungadresse JUMPADDR. Diese Sprungadresse JUMPADDR wird deshalb im Mikrobefehl MB mitgeführt, weil ein und dieselbe Steuerfunktion JUMPCTR in verschiedenen Mikrobefehlen MB zu unterschiedlichen Sprungadressen JUMPADDR führen. Das Feld Sequenzsteuerung SC des Mikrobefehis MB umfasst insgesamt 15 Bit. Sie ben Bit davon umfasst die mitgeführte Sprungadresse JUMPADDR und fiinf Bit umfassen die Testbedingungen, mit denen ein Soft-Decodierer SOFTD angesteuert wird. Dieser Soft-Decodierer SOFTD überprüft, ob die in dem Feld JUMPCTR enthaltenen Sprungbedingungen aufgrund der in verschiedenen Steuerregistern GMR 1R (Betriebsmodus), GCR und CCR (Start/ Stop der Kanäle), GSR und CSR (Status der vier Kanäle) enthaltenen Informationen erfüllt sind. Sind diese Sprung bedingungen JUMPCTR erfüllt, so teilt dies der Soft-Deco- dierer SOFTD dem Sequenzer SQ über ein Signal JUMPCON mit. Das Feld mit der Mapsteuerung MAPCTR im Mikrobefehl MB steuert die Bildung der Mapadresse MAPADDR. Der Mapdecodierer MAPD überprüft autonom, ob die Map-Steuerfunktion MAPCTR aufgrund der in den Registern GNR, GCR, GSR, CCR und CSR enthaltenen Informationen gültig sind. Ausser- dem führt der Mapdecoder MAPD autonom eine Priorisierung der verschiedenen von der Mapsteuerung MAPCTR angesprochenen Bedingungen durch. Daraufhin liefert der Mapdecoder MAPD hardwaremässig die entsprechende Mapadresse MAPADDR. Die Erfüllung der von der Mapsteuerung MAPCTR geforderten Bedingungen wird dem Sequenzer SQ vom Mapdecoder MAPD über ein Signal MAPCON mitgeteilt. Die Einschleusung der Testadresse TMADDR wird über das Testregister TR. vorgenommen Dieses Testregister TR kann über einen internen Datenbus 13 von der: Zentraleinheit. (CPU) beschrieben. werden und ermöglicht den Test des ADMA Wird im Testregister TR das TAE('test adress enable')-Bit gesetzt, so wird die ebenfalls im Register TR beind- licht Testadresse TMADDR vom Sequenzer SQ ausgewählt. Damit. können beliebige Mikrobefehlsadressen ROMA angesprungen und die zugehörigen Mikrobefehle MB danach ausge- führt werden. Das Mikrowort von Fig.2 enthält neben der Sequenzsteuerung SC noch eine Adressooin-t:er-St euerung APC und eine Datentransfer-Steuerung DSC neben der bereits besproche nen 'istruction type control' ITC. Eine Datensteuereinheit SDCU überwacht den Datentransfer. Eine Torrich- tung PIP1/PIP3 dient zum Pipelining bei der Ausführung verschiedener Mikrobefehle. Im Mapdecoder MAPD werden die drei Bits der Steuerfunktion MAPCTR decodiert. Drei Bits ergeben acht mögliche Abfragebedingungea. Der Mapdecoder MAPD weist eine PLA ('programmable logic array') auf, an deren Eingängen verschiedene Gruppen von zu testenden Bedingungen und deren Jeweilige Prioritätsstufung in Abhängigkeit von der Jeweils aktuellen Steuerfunktion MAPCTR anliegen. An den Ausgängen dieser PLA werden in Abhängigkeit von der Jeweils aktuellen Steuerfunktion MAPCTR, in Abhängigkeit von den von der aktuellen. Steuerfunktio MAPCTR angespro- chenen Bedingungen und in Abhängigkeit von deren Priori siebung in sich je nach höchster gültiger Priorität verschiedene Adressen MAPADDR erzeugt. Wie eine PLA, bei der bestimmte Ausgänge eine vorgegebe- ne Abhängigkeit von bestimmten Eingängen haben, herge stellt und benutzt werden kann, kann der Fachmann dem Lehrbuch von C. Mead und L. Conway, 'Introduction to VLST Systems', Addison-Wesley, insbesondere dem Kapitel 3.10 'The Programmable Logie Array' entnehmen. Figur 3 zeigt das Konstruktionsprinzip für eine PLA für einen Mapdecoder MAPD. Die drei Steuerbits MAPCTR, die in Figur 3 mit MAPCTRL bezeichnet sind,. treffen auf einen DECODER, der acht Ausgänge aufweist. Die invertierten Ausgänge (MEx-Q, MEy-Q@ME-Y = invertiertes Signal MAPENABLE) sind jeweils an die Basis von mehreren MOS-Transistoren angeschlossen.. Bei einem rein statischen Decodierfall weisen die Bedingungen CA, CB und deren invertierte Signale CA-Q, CB-Q unter sich keine Prioritätsstufung auf Die Bedingungen CA und CD können aus Steuerregistern, Statusregistern und aus der Errorerkennung stammen. Die Bedingungen CA, CB und ihre invertierten Signale sfieuern verschiedene Basiselektroden von MOS-Transistoren so, dass über verschiedene Leitungen, an denen die Drain Elektroden dieser MOS-Transistoren angeschlossen sind, drei von den vier möglichen Kombinationen bei gegebenen Bedingungen CA, CB abgefragt werden können. Uber die Leitung MEx-Q wird abgefragt, welche von diesen drei Kombinationen gültig sind Das Ergebnis dieses Abfragens wird. wiederum über MOS-Transistoren der invertierten Steuerleitung MAPCON-Q mitgeteilt. Ist die vierte Kom- binationsmöglichkeit der Bedingungen CA, CB, die über die Leitung MEx-Q nicht abgefragt wird, erfüllt, so ist die Leitung MAPCON nicht aktiviert. Ist die Leitung MAPCON aktiviert, so wiri gleichzeitig über die Basiselektroden von MOS-Transistoren eine Mapadresse über die invertierten Signale MAPADDRi-Q, MAPADDRk- ausgewählt Ist sowohl das Signal MEx-Q eine logische Null und ist zugleich dns invertierte Steuersignal MAFCON-Q eine logische Eins, so wird über ein Gatter UJ ein unbedingter Sprung über ein Ausgangssignal FE (fatal error) veran lasst Bei einem priorisierenden Decodierfall weist eine Bedingung C2 die höchste Priorität, eine. Bedingung C1 die zweithöchste Priorität und eine Bedingung CO die niedrigste Priorität auf An dieJenige Leitung, die bei vorliegen- der Bedingung C2 aktiviert wird, ist von den Signalen für diese drei Bedingungen und ihre invertierten Signale nur ein einziger MOS-Transistor angeschlossen, dessen Basis von dem invertierten Signal C2-Q gesteuert wird. An die Leitung, die aktiviert wird, wenn die Bedingung Ci die höchste gültige Priorität aufweist, sind zwei MOS-Transistoren angeschlossen, deren Basiselektroden einmal von dem invertierten Signal C1-Q und zum anderen von dem Signal C2 gesteuert werden. Der dritten Leitung, die bei Vorliegen der Bedingung CO mit der höchsten gültigen Priorität aktiviert wird, sind drei MOS Transistoren angeschlossen, deren Basiselektroden einmal von dem Signal C1, zum anderen von dem Signal C2 und zum dritten von dem invertierten Signal COQ gesteuert werden. Das Vorliegen dieser zuletzt genannten Bedingungen zusammen mit ihrer inneren Priorisierung wird Uber die Leitung MEy-Q abgefragt. Die Aktivierung der Mapdecoder Ausgänge entspricht dem rein statischen Decodierfall. Die Leitungen, die durch Ansteuern der' Basiselektroden von MOS-Transistoren auf eine logische Null durchgeschaltet werden, sind Uber Lasttransistoren L an. eine Versorgungsspannung angeschlossen. Um bei einem Fertigungstest des elektronischen Bausteines de1nh'alt der Nkrobefehlsspeichers ROM auslesen zu kön nen@ kann ein Bit ROMSPILL gesetzt werden. Bei aktivier- tem ROMSPILL wird die inkrementierte aktuelle Mikroprogramm- adresse mit einer solchen Priorität als nächste aktuelle Mikrobefehlsadresse ROMA ausgewählt, die nur noch von der Priorität der Auswahl der Testadresse bei gesetztem Bit TAE übertroffen wird.

Claims: Device having a sequencer (SQ) for providing a microaddress link (ROMA) which addresses in the microinstruction memory (ROM) the following microinstruction (MB) assigned to it, which is then stored in a microinstruction latch (MLATCH), and having a soft decoder (SOFTD) for testing jump conditions (JUMPCTR), the assigned jump address (JUMPADDR) of which is contained in the microinstruction, characterised in that the jump conditions (JUMPCTR) are contained in the microinstruction, in that a map decoder (MAPD) for testing map conditions (MAPCTR), which are likewise contained in the microinstruction, is connected to the sequencer (SQ), and in that when matching map conditions (MAPCTR) occur, a signal (MAPCON) is present at the sequencer (SQ), which signal feeds the microaddress link (ROMA) generated in the map decoder (MAPD) to this sequencer. Device according to Claim 1, characterised by means (TR, TAE) for providing a test address (TMADDR). Device according to Claim 1 or 2, characterised by means (INCR, MUX, URG) for providing a "continue" address (CADDR). Device according to one of Claims 1 to 3, characterised in that the map decoder (MAPD) has a PLA. Method for forming a link address of a microprogram-controlled sequencer (SQ), in which the microaddress link (ROMA) to be provided addresses in the microinstruction memory (ROM) the following microinstruction (MB) assigned to it, which is then stored in a microinstruction latch (MLATCH) using a device having a soft decoder (SOFTD) for testing jump conditions (JUMPCTR), the assigned jump address (JUMPADDR) of which is contained in the microinstruction, characterised in that the jump conditions (JUMPCTR) are contained in the microinstruction, a map decoder (MAPD) for testing map conditions (MAPCTR), which are likewise contained in the microinstruction, being connected to the sequencer (SQ) and a signal (MAPCON) being present at the sequencer (SQ) when matching map conditions (MAPCTR) occur, which signal feeds the microaddress link (ROMA) generated in the map decoder (MAPD) to this sequencer, in that a field with jump conditions (JUMPCTR) in a microinstruction (MB) initiates the testing for fulfilment of such conditions, and if these conditions are fulfilled ensures that a jump address (JUMPADDR), likewise contained in this microinstruction (MB), is provided, in that a field with map control function (MAPCTR) in the microinstruction (MB) controls the formation of a map address (MAPADDR), in that a map decoder (MAPD) autonomously performs checking of the map control function (MAPCTR) on the signals corresponding to this control function and, if necessary, autonomously generates the corresponding map address (MAPADDR), and in that the map decoder (MAPD) autonomously carries out a priority allocation, depending on status and state information, for a group of conditions (the signals corresponding to the map control function (MAPCTR)) which have been addressed by the map control function (MAPCTR), and, depending on the highest valid priority in each case, outputs a map address (MAPADDR) corresponding to this highest valid priority. Method according to Claim 6, characterised in that a test address (TMADDR) is stored in a test register (TR) and is selected by the sequencer (SQ) if a corresponding request (TAE) is present. Method according to one of Claims 5 or 6, characterised in that the selection of the "continue" address (CADDR) is controlled by a control bit (ORG) in the microinstruction (MB). Method according to one of Claims 5 to 7, characterised in that a "continue" address (CADDR) is selected if no jump conditions (JUMPCTR) or other conditions (MAPCTR, TAE) having a higher priority are set or fulfilled. Method according to one of Claims 5 to 8, characterised in that the jump address (JUMPADDR) is selected whenever the jump conditions (JUMPCTR) are fulfilled and other conditions (MAPCTR, TAE) having a higher priority are not set or fulfilled. Method according to one of Claims 5 to 9, characterised in that the map address (MAPADDR) is selected whenever the map conditions (MAPCTR) are fulfilled and conditions (TAE) having a higher priority are not set or fulfilled. Method according to one of Claims 6 to 10, characterised in that the test address (TMADDR) having the highest priority is selected when the corresponding condition (TAE) is set. Method according to one of Claims 5 to 11, characterised in that the map control function (MAPCTR) addresses different groups of conditions to be tested which have been allocated inherently different priority rankings and consequently generate different map addresses (MAPADDR) depending on the highest valid priority. Method according to one of Claims 5 to 12, characterised in that a condition (ROMSPILL) which can be set for test purposes causes a transfer of the incremented microprogram address to an internal microinstruction memory (ROM) with a priority immediately below the priority of the transfer of a test address (TMADDR).

Inventors: SCHOENBERGER, FRANZ, DIPL.-ING., STADLMEIER, HANS, DIPL.-ING., Schönberger, Franz, Dipl.-Ing.
Applicants: SIEMENS AKTIENGESELLSCHAFT
Application year: 1983
Main classification: G06F9
IPC codes: G06F9, G06F13