DEVICE FOR CONTROLLING THE CHANNEL START OF AN INTEGRATED MICROPROCESSING DEVICE WITH AT LEAST TWO INDEPENDENT CHANNELS FOR THE MANIPULATION OF INFORMATION, AND METHOD FOR ITS OPERATION

Abstract: 1. Device for controlling the channel start of a DMA controller having at least two independent channels for data transfer between data sources and data sinks and a central control unit (CC) which contains a control register (CR), a status register (SR) and a prioritizing unit (PRIO), characterized in that each channel has at its disposal its own microinstruction register (MPIRi; i = 1, 2, ... n), which is connected to a demultiplexer (DEMUX2), via which, given the occurrence of a start request, a microinstruction is entered by the central control unit into the microinstruction register (MPIRi) of the channel to be started.

Description: Vorrichtung zur Steuerung des Xanalstarts bei einer integrierten mikroprogrammierten Vorrichtung mit mindestens zwei unabhängigen Kanälen zum Handhaben von Informationen und Verfahren zu ihrem Betrieb, Die Erfindung betrifft eine Vorrichtung zur Steuerung des Kanalstarts bei einer integrierten mikroprograinmier- ten Vorrichtung mit mindestens zwei unabhängigen Kanä- len zum Handhaben von Informationen nach dem Oberbegriff des Anspruchs 1 und ein Verfahren zu Ihrem Betrieb. Ein integrierter Hochleistungs-DM-Kontroller ADMA (advanced direct memory access) besitzt beispielsweise vier voneinander unabhängige Kanäle, die den Datentransfer zwischen Medien (Peripherie-Geräte, Speicher), d.h. allgemein zwischen Datenquellen und Datensenken, bewerkstelligen. Die Hauptsteuerung der Kanäle übernehmen Mikroprogramme, die in einem Mikroprogramm-Speicher innerhalb des ADMA enthalten sind. Die bedingungsab hängige Folge der Mikrobefehle wird von einem allen vier Kanälen gemeinsamen Sequenzer gesteuert, der die Mikrobe- fehle aus dem gemeinsamen Mikroprogramm-Speicher ROM liest. Fur jeden der vier Kanäle steht ein Mikroprogramm- Instruktionsregister (MPIRi, i = 0,1,2,3) und ein Mikroprogramm-Adressregister (MPARi) bereit. Die Auswahl des zu aktivierenden Kanals und damit die Auswahl des entsprechenden Mikroinstruktionsregisters MPIRi geschieht durch eine Priorisierungseinheit (PRIO), welche ihre Entscheidung aufgrund der folgenden kanal spezifischen Informationen trifft: Zustand des Kanals (gestartet/gestoppt) Typ des im Mikroinstruktionsregister MPIRi stehenden Mikrobefehls (organisatorischer Mikrobefehl ORG/ Da tentransfer-Mikrobefehl DMA) Synchronisationsart Synchronisationsereignis vorgegebene Prioritätsstufung momentane Prioritätsverteilung. Die Bedienung eines Kanals (Start, Stop, Continue, Single Step/Halt) geschieht durch Eintrag eines entsprechenden Steuerwortes in ein sogenanntes Steuerregister (general command register) durch die Zentraleinheit (CPU). Dort wird dieses Stenerwort decodiert und führt zum Anstoss der entsprechenden Aktion. Starten eines Kanals bedeutet, dass der Kanal in die Lage versetzt werden soll, bei zugeteilter Priorität selbstandig mittels 9rganisatorischen Mikrobefehlen (ORG) die für den Datentransfer notige Steuerinformation aus einem Organisationsspeicher zu lesen, um dann bei Vorliegen entsprechender Synchroni sationsbedingungen den Datentransfer vorzunehmen. Dies gilt für die Konfiguration des zu startenden Kanals als Selektorkanal. Ist der zu startende Kanal als Multiplexer-Kanal konfiguriert, so müssen zunächst nach dem Starten dieses Kanals noch die benötigten Subkanäle gestartet werden, was ebenso über organisatorische Mikrobefehle (ORG) von der Zentraleinheit (CPU) angestossen und mit einem speziellen MIkroprogramm abgewickelt wird. Auf die Startanforderung folgt also eine mehr oder weniger ausgedehnte Startaktivität. Beim Starten eines Kanals besteht nun das Problem, den Einsprung in das für die Kanalfiguration richtige Mikroprogramm durch kanalspezifische Bereitstellung des ersten Mikrobefehls des richtigen Mikroprogramms zu ermöglichen. Da die Transferrate von Informationen möglichst hoch und die Reaktionszeit auf Anforderungen an einen Eanal möglichst kurz sein soll, darf aus 'Performance'-Gründen ein bereits aktiver hochpriorer Kanal durch das Starten eines niederprioren Kanals möglichst nicht behindert werden, abgesehen von dem unvermeidlichen Zugriff der Zentraleinheit (CPU! auf den gemeinsamen Systembus, um den Kanal zu starten. Darüber hinaus besteht die Möglichkeit, durch ein einziges Steuerwort von der Zentraleinheit (CPU) die Startanforderung für bis zu vier Kanäle gleichzeitig abzugeben. Dies bedeutet, dass die Umsetzung der Startanforderung eines zum Startzeitpunkt niederprioren Kanals in die ent- sprechende Staftaktivität erst dann erfolgen kann, wenn dieser niederpriore Kanal priorisiert wird, wohingegen der höchstpriore Kanal sofort zum Zuge kommt und vielleicht sogar gleich anschliessend an die Startaktivität einen Datentransfer durchführt. Der vorliegenden Erfindung liegt die Aufgabe zugrunde, eine Vorrichtung der eingangs genannten Art und ein Verfahren zu ihrem Betrieb anzugeben, die beim Starten eines Kanals den Einsprung in das für die Kanalkonfiguration richtige Mikroprogramm durch Bereitstellung des ersten Mikrobefehls ermöglicht, wobei eine gegebene Prioritätsstu fung der verschiedenen Kanäle möglichst ohne Störung gul- tig bleibt, und wobei ein zusätzlicher Steueraufwand möglichst gering gehalten werden soll. Diese Aufgabe wird erfindungsgemäss durch eine Vorrichtung nach dem Anspruch 1 gelöst. Ausgestaltungen und Vorteile der Erfindung sind in den Unteransprüchen, der Beschreibung und der Zeichnung dargestellt. Die Priorisierungseinheit PRIO kann die Verwaltung der Überleitung der Startanforderungen in die Startaktivitäten übernehmen.. Dann muss der Priorisierungseinheit PRIO mitgeteilt werden,. welcher. bzw. welche Kanäle gestartet werden sollen Ein Ausführungsbeispiel der Erfindung ist in der Zeich- nung dargestellt und wird im folgenden näher beschrieben. Die Figur zeigt ein Blockschaltbild eines Ausführungsbei- spiels der Erfindung. Die zentrale Steuereinheit CC enthält ein Steuerregister CR, ein Statusregister SR, eine Priorisierungseinheit PRIO und Mittel CS, welche mit einer Startanforderung (also dem decodierten Startsteuerwort aus dem zentralen Rteuer- register CR)den in den Statusregister SR geführten Status des zu startenden Kanals hariwaremässig auf ! gestartet setzt. Damit nimmt nun der zu startende Kanal entspre chend einer vorgegebenen Prioritätsstufung an der Priori tätsverteilung durch die Priorisierungseinheit PRIO teil. Zusätzlich wird in das kanalspesifische Mikroinstruktions- register MPIRi, i = 0,1,2,3, des zu startenden Kanals ebenso hardwaremässig ein organisatorischer Mikrobefehl ORG über einen Demultiplexer, DEMUI2 eingetragen. Damit wird dieses kanalspezifische Mikroinstruktionsregister MPIRi initialisiert. Bei entsprechender Wahl der Polarität der Befehlsbits dieses organisatorischen Mikrobefehls ORG läuft diese Initialisierung des kanalspezifischen Mikroinstruktionsregisters MPIRi des zu startenden Kanals auf ein Rücksetzen dieses kanalspezifischen Mlkroinstruk- tionsregisters MPIRi hinaus. Die Startanforderung für einen zu startenden Kanal ist somit in die Generierung eines Mikrobefehls umgesetzt worden Dieser organisatorische Mikrobefehl ORG stellt nun Zuteilungsanforderung an die Priorisierungseinheit PRIO, wie dies jeder andere Mikrobefehl auch tut. Da organisatorische Mikrobefehle keiner Synchronisation, also keines externen Triggerereignisses, bedürfen, wird dieser organisatorische Mikrobefehl ORG ausgefuhrt, sobald. kein höherpriorer Kanal mehr Zuteilungsanforderung an die Prio risierungseinheit PRIO stellt. Die Ausführung dieses organisatorischen Mikrobefehls ORG besteht vorteilhafterweise bei entsprechender Wahl der Polarität der BefehlsDits dieses organisatorischen Mikrobefehls ORG ausschliesslich in einem unbedingten Sprung auf die Mikrobefehls-Speicheradresse ROMA mit der Nummer O, wo der erste Mikroprogrammbefehl steht. Durch diesen Sprung auf die Mikrobefehlsadresse ROMA mit der Nummer O im Mikrobefehlsspeicher ROM ist gleichzeitig das kanalspezifische zugehörige Mikroprogramm-Adressregister MPARi initialisiert. Dieses kanalspezifische zugehörige Mikroprogramm-Adressregister MPARi wird mit der Sprungadresse ROMA mit der Nummer 0 geladen. Ebenso ist nunmehr im kanalspezifischen Mikroinstruktionsregister MPIRI des zu startenden Kanals der im Miirobefehlsspeicher ROM unter der Mikrobefehls-Speicheradresse ROMA mit der Nummer 0 enthaltene Mikrobefehl eingetragen. Von jetzt an läuft also die normale Mikroprogramm-Abarbe- tung, die je nach Kanalkoniguration das richtige Startmikroprogramm ausftlhrt. Nach Ausführung des organisatorischen Mikrobefehls ORG könnte jetzt jedoch bereits die erste Unterbrechung der Aktivität des zu startenden Kanals durch einen höherprio- ren Kanal erfolgen, entsprechend der Forderung, dass aus Performance -GrUnden jeder Kanal nach Jeder Ausführung eines Mikrobefehls durch einen anderen Kanal untertrech- bar sein muss Die Kanäle sind insofern unabhängig voneinander, als sie ihre Steuerparameter (z.3. Adressen von Datenquelle und Datensenke, Adress zählrichtung, Byte zahl, Vergleicksbit- muster) aus ihnen zugeordneten Steuerregistern in der zentralen Steuereinheit CC beziehen, welche mit Werten aus Kontrollblöcken von einem sogenannten Organisationsspeicher über einen internen Datenbus IB geladen werden Da für alle Kanäle möglichst viele Resourcen nur einmal aufgebaut sind, können die Kanäle streng genommen nicht gleichzeitig arbeiten, sondern nur im Pipeline-Verfahren Die Hauptsteuerung der Kanäle übernehmen Mikroprogramme, welche beim Starten des Kanals die benötigte Steuerinformation aus dem Organisationsspeicher lesen, interne Verwaltungsaufgaben durchführen, den eigentlichen Datentransfer kontrollieren und schliesslich wieder Steuerin formation, z.B. Statusinformation, im Organisationsspei- cher ablegen. Das in der Zeichnung dargestellte Ausführungsbeispiel der Erfindung enthält vier verschiedene kanalspezifische Mikroprogramm-Adressregister EPARi und vier verschiedene Mikroinstruktionsregister MPIRi, einen Mikrobefehlsspeicher ROM, einen Sequenzer SQ und einen Sequenzer-Zwischen- speicher SLATCH. In jedem Mikroprogramm-Adressregister MPARi steht die Adresse des im zugehörigen Mikroinstruk- tionsregister MPIRi stehenden Mikrobefehls. Die Mikro- instruktionsregister MPIRi stellen dabei die Stufe O des nachgeschalteten Pipelinings der Busfiihrungs steuenmg AS dar. Eine Vorrichtung PIP ermöglicht dabei das PipelLn- ing, Mit Auswahl des zu aktivierenden Kanals (Priorisqerung) werden das zu diesem Kanal gehörige Mikroinstruktionsre- gister MPIRi und das zu diesem Kanal gehörige Mikroprogramm-Adressregister MPARi ausgelesen. Die Auswahl des Kanals wird dabei über das Signal AKN gesteuert, welches die aktuelle Kanalnummer angibt. Zu diesem Zweck stenert das Signal AKN über zwei Steuerleitungen SO, S1 zwei Multiplexer Mull, MUX2 und einen Demultiplexer DEMUI. Am Ausgang des Multiplexers MUX1 erscheint infolge des Signals AKN die zum priorisierten Kanal zugehörige aktuelle Mikrobefehlsadresse ANBA. Am Ausgang des Multiplexers MUX2 erscheint infolge des Signals AKN der zum priorisier ten Kanal zugehörige aktuelle Mikrobefehl AMB. Der Demultiplexer DEMUX verfügt über einen Eingang mit dem Taktsignal C. Mit diesem Taktsignal C werden die zum pripri- sierten Kanal zugehörigen Mikrobefehls-Adressregister MPARi und Mikroinstruktionsregister MPIRi geclockt. Die Ausführung des aktuellen Mikrobefehls AMB wird von einer Ausfuhrungssteuerung AS überwacht. Wahrend der Ausführung dieses aktuellen Mikrobefehls AMB stellt ein Sequenzer SQ aufgrund von Testinformationen TI und Steuerinformationen CI die Mikrobefehlsadresse ROMA des in dem jeweils gerade priorisierten Kanal folgenden Mikrobefehls MB bereit. Diese Mikrobefehladresse ROMA wird in einem Zwischenspeicher SLATCR zwischengespei chert und steuert einen Lesezyklus im Mikrobefehls-Fest- wertspeicher ROM an, welcher dann den neuen kanalspezifischen Mikrobefehl MB liefert Die Steuerinformationen CI und die Testinformationen Ti werden dabei sowohl von der zentralen Steuereinheit CC als auch von der Ausführungssteuerung AS geliefert. Die aktuelle Mikrobefehlsadresse AMBA kann bei Bedarf über einen Inkrementer INCR inkrementiert werden und auf diese Weise die Mikrobefehlsadresse ROMA des kanalspezifisch folgenden neuen Mikrobefehls MB liefern. Der Sequenzer SQ erhält jedoch zusätzliche Adressinformationen AI von der zentralen Steuereinheit CC oder auch von einem aktuellen Mikrobefehl AMB. Eine solche zusätzliche Adressinformation AI kann beispielsweise eine Testadresse TA, eine Mapadresse MA oder eine Sprungadresse (jump adress) JA sein Am Ausfuhrungsende des aktuellen Mikrobefehls AMB werden der kanalspezifisch neu gelesene folgende Mikrobe- fehl MB in das zugehörige kanalspezifische Mikroinstruktionsregister MPIRl und die neue zugehörige folgende Mikrobefehlsadresse ROMA aus dem Zwischenspeicher SLATCH in das kanalspezifische zugehörige Mikroprogramm-Adress- register NPARi des aktuellen Kanals eingetragen. Wird die Auswahl des gerade aktuellen Kanals nun unterbrochen, so steht, wenn dieser Kanal später wieder priorisiert wird, sofort der zu diesem Kanal dazugehörige Mikrobefehl im zugehorigen Mikroinstruktionsregister MPIRi bereit.

Claims: Patentansprüche: 1. Vorrichtung zur Steuerung des Kanalstarts bei einer integrierten mikroprogrammierten Vorrichtung mit mindestens zwei unabhängigen Kanälen zum Handhaben von Informationen, g e k e n n z e I c h n e t durch Mittel (ORG, DEMUX2) zum Eintrag eines Mikrobefehls (ORG) in ein kanalspezifisches Mikroinstruktionsregister (MPIRi, i = 0, 1, 2, 3) eines zu startenden Kanals zur INitialisie- rung dieses Mikroinstruktionsregisters (MPIRi) bei Vorliegen einer Startanforderung. 2 Vorrichtung nach Anspruch 1, g e k e n n z e i c hn e t durch Mittel (CI) zum Setzen des in einem Status Register (SR) geführten Status des zu startenden Kanals auf 'gestartet' nach einer Startanforderung für diesen Kanal in einem Steuerregister (CR). 3. Verfahren zum Betrieb einer Vorrichtung nach Anspruch 1 oder 2, dadurch g e k e n n z e i c h n e t dass mit einer Startanforderung für einen zu startenden Sanal dieser Kanal entsprechend einer vorgegebenen Prio ritätsstufung an der Priorftätsverteilung durch eine Priorisierungseinheit (PRIO) teilnimmt. 4. Verfahren zum Betrieb einer Vorrichtung nach einem der Ansprüche t bis 3, dadurch g e k e n n z e i c h n e t , dass bei Vorliegen einer Startanforderung fur. einen zu startenden Kanal ein Mikrobefehl (ORG) in das kanalspezifische Mikroinstruktionsregister (MPIRi) des zu startenden Kanals eingetragen wird. 5. Verfahren zum Betrieb einer Vorrichtung nach Anspruch 4, dadurch g e k e n n z e i c h n e t , dass der Mikrobefehl (ORG) ein Rücksetzen des betreffenden kanaispezifischen Mikroinstruktionsregisters (MPIRi) bewirkt. 6. Verfahren zum Betrieb einer Vorrichtung nach einem der Ansprüche 1 bis 5, dadurch g e k e n n z e i c h n e t dass der Mikrobefehl (ORG) in dem betreffenden kanalspezifi schen Mikroinstruktionsregister (MPIRi) Zuteilungsanforde- rung an eine Priorisierungseinheit (PRIO) stellt. 7. Verfahren zum Betrieb einer Vorrichtung nach einem der Ansprüche 1 bis 6, dadurch g e k e n n z e i c h n e t dass die Ausführung des Mikrobefehls (ORG) in einem unbe dingten Sprung auf eine bestimmte Adresse (ROMA) im Mikroprogrammspeicher (ROM) besteht

Inventors: STADLMEIER, HANS, DIPL.,-ING.
Applicants: SIEMENS AKTIENGESELLSCHAFT
Application year: 1983
Main classification: G06F13
IPC codes: G06F13