DE2744531C2 - Anordnung zur Auswahl von Unterbrechnungsprogrammen in einer Datenverarbeitungsanlage - Google Patents
Anordnung zur Auswahl von Unterbrechnungsprogrammen in einer DatenverarbeitungsanlageInfo
- Publication number
- DE2744531C2 DE2744531C2 DE2744531A DE2744531A DE2744531C2 DE 2744531 C2 DE2744531 C2 DE 2744531C2 DE 2744531 A DE2744531 A DE 2744531A DE 2744531 A DE2744531 A DE 2744531A DE 2744531 C2 DE2744531 C2 DE 2744531C2
- Authority
- DE
- Germany
- Prior art keywords
- interrupt
- dma
- cycle
- signal
- priority
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
- G06F13/34—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer with priority control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Bus Control (AREA)
Description
dadurch gekennzeichnet, daß
j) eine Schaltungsanordnung (112, 116) vorgesehen ist, die durch das Unterbrechungsantwortsi- to
gnal (INT CYCLE) gesteuert ist und mittels eines Ausgangssignals (DMA-IN REQ) die Einrichtung zum direkten Speicherzugriff veranlaßt, einen auf den laufenden Unterbrechungszykius unmittelbar folgenden DMA-Zyklus zu es
beginnen, und daß
k) die Ausgangsschaltung (18a, 186,...; 19,...) zusätzlich durch das Anlegen des DMA-Antwort
signals (DMA CYCLE) angesteuert werden, so daß das während des DMA-Zyklus der Datenschieneneinrichtung (110) zugeführte Binärwort
im Arbeitsspeicher zur Identifizierung desjenigen Speicherplatzes gespeichert wird, an welchem der Anfang des Unterbrechungsprogramms zur Bedienung der einen anfordernden
peripheren Einrichtung (Ei, El. ...) gespeichert ist, die höchste Priorität hat.
2. Anordnung nach Anspruch 1, die eine Taktschaltung enthält, welche zu Ende der Zyklen Taktsignale erzeugt gekennzeichnet durch eine durch die
Taktsignale (TPB), das DMA-Antwortsignal (DMACYCLE) und das erzeugte Prioritätsausgangssignal gesteuerte Rückstellanordnung (UND-Glieder 1Oe, 106 ...) cam Zurücksetzen derjenigen
Halteschaltung (11), die dem aktivierten Prioritätsausgangssignal entspricht.
3. Anordnung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß jede Ausgangsschaltung
eine Freigabeschaltung (UND-Glieder 18a, 186...),
die durch das erzeugte Prioritätsausgangssignal sowie das DMA-Antwortsignal (DMACYCLE) gesteuert ist und ein Freigabesignal erzeugt, und
eine Schaltvorrichtung (19) enthält, die unter Steuerung durch das Freigabesignal ein vorgegebenes Binärwort auf die Datenschieneneinrichtung (110)
koppelt.
4. Anordnung nach Anspruch 3, dadurch gekennzeichnet daß das vorgegebene Binärwort wahlweise
einstellbar ist.
5. Anordnung nach Anspruch 1, 2, 3 oder 4, gekennzeichnet durch eine Schaltungsanordnung (21,
22, 23, 24, 212), die durch das DMA-Antwortsignal (DMA CYCLE) steuerbar ist und einen zweiten
DMA-Zyklus einleitet; eine Schaltungsanordnung (211), die ein zweites DMA-Antwortsignal liefert;
und eine Ausgangsschaltung (28ö, 296/ die durch
dieses zweite DMA-Antwortsignal und durch das aktivierte Prioritätsausgangssignal gesteuert ist und
ein zweites vorbestimmtes Binärwort der Datenschieneneinrichtung (110) zuführt.
Die Erfindung betrifft eine Anordnung gemäß dem Oberbegriff des Anspruchs 1. Derartige Anordnungen
sind bekannt aus »IEEE Spectrum«, Bd. 11 September
1974, Seiten 59 bis 67 sowie »Der Elektroniker«, Nr. 10,
1975. S. EL 12 bis EL 23.
Periphere Einrichtungen, die in Verbindung z. B. mit einem Mikroprozessor zur Datenspeicherung verwendet werden, arbeiten viel langsamer als der Prozessor.
Durch Unterbrechung der normalen Durchführung der aufeinanderfolgenden Befehle seines Programms kann
der Prozessor als Antwort auf ein äußeres Signal eine periphere Einrichtung bedienen oder eine Verzweigung
durchführen und auf eine bestimmte Stelle in der Befehlsfolge umschalten und Befehle ausführen, während
er auf die Bedienung der peripheren Einrichtungen wartet, d. h. Daten liefert oder empfängt oder den Betrieb
der Einrichtung beendet. Durch Unterbrechungen kann man ferner Programme anpassungsfähiger machen und
ganz allgemein angeben, auf welche von mehreren möglichen Verzweigungen in Abhängigkeit von irgendwelchen äußeren Kriterien bei der Durchführung des Pro-
gramms übergangen werden soil. Dies erfolgt manchmal
durch Schalterglieder (sog. Unterbrechungsstellen), die mit Hilfe spezieller Befehle abgefragt werden.
Normalerweise gibt es für den Prozessor nur ein einziges Unterbrechungssignal. Wenn mehrere Einrichtungen
eine Unterbrechung bewirken können, werden ihre Unterbrechungs-Anforderungssignale durch eine
ODER-Verknüpfung zu dem einen Unterbrechungssignal zusammengefaßt. Das Auftreten des Unierbrechungssignals
veranlaßt den Prozessor, auf ein erstes Unterprogramm umzuschalten, durch das festgestellt
wird, welche Einrichtung das Unterbrechungssignal verursachi hat und welches Unterprogramm als nächstes
ausgeführt werden soll. Ein Verfahren zur Identifizierung der unterbrechenden Einrichtung besteht im Abfragen
(polling), bei dem externe Meldeleilungen zur Identifizierung der betreffenden Einrichtung verwendet
werden oder die Einrichtungen der Reihe nach durch einen speziellen Befehl abgefragt werden, bis die aktive
Einrichtung gefunden ist.
Bei Anlagen, in denen manche Einrichtungen schneller bedient werden müssen als andere, verwendet man
ein Unterbrechungssystem mit Priorität. Beispielsweise muß ein schnelles Magnetbandlesegerät häufiger bedient
werden als ein Lochstreifenleser, da es mit einer höheren Zeichenrate arbeitet und die zulässige Pufferzeil
wegen der höheren Daienflußgeschwindigkeit kürzer ist. In diesem Falle muß man dann nicht nur feststellen,
welche Einrichtung eine Unterbrechung angefordert hat, sondern auch, welche von mehreren ur.ierbrechenden
Einrichtungen die höchste Priorität hat und daher zuerst bedient werden muß.
Bei der Bedienung mehrerer Peripheriegeräte kann man mit »gezielter« (vectored) Unterbrechung arbeiten,
d. h. mit mehreren Antworten auf das Unterbrechungssignal. Manchmal werden mehrere Unterbrechungsleitungen
vorgesehen. Im Falle einer einzigen Unlerbrechungslcitung werden die möglichen Quellen für die
Unterbrechung abgetastet oder abgefragt, und auf Grund der Ergebnisse wird bestimmt, welches Unterprogramm
oder welche Programmverzweigung durchzuführen ist. Bisher waren für die gezielten Unterbrechungen
viel Programmaufwand und Pro/cssorzeit erforderlich,
insbesondere wenn Unterbrechungsprioriiätcn
gefordert werden. Im besonderen Maße gilt dies für Mikroprozessoren, bei denen die Befehle im allgemeinen
einfache: sind als in größeren Anlagen.
Ferner besteht bei Daten-Vcrarbeitungsanlagen die
Möglichkeit eines direkten Speicherzugrifl's (DMA) zur Übertragung von Daten von äußeren Quellen in den
Speicher oder zur direkten Entnahme von Daten aus dem Speicher ohne Störung der Durchführung dei; laufenden
Programms. Zu diesem Zweck werden gewöhnlich in einem speziellen DMA-Zyklus ein Register, das
als »Zeiger« (pointer) bekannt ist, mit dem Speicheradressenbus gekoppelt und Daten an der adressierten
Stelle gespeichert oder gelesen. Da die Programmdurchführung gewisse Zyklen erfordert, setzt ein DMA-Zyklus
den Ablauf der normalen Programmausführung nur für eine Zyklusdauer aus.
Systeme mit »ge/ielter« (vectored) Prioritätsunterbrcchung
und der Möglichkeit von DMA-Zyklen sind iius den beiden eingangs erwähnten Druckschriften bckiinni.
Sie beschreiben auch, wie eine Unterbrechungsanlorderung
von einem der Peripheriegeräte zustande koinmi, wie die Unterbrechungsanforderung zur Einleitung
einer Unterbreehungsroulinc im Prozessor vcrwendcl
wird, und wie die von den anfordernden Peripheriegeräten
erzeugten Flag-Signale L· eine Anfangsadresse des Speichers Für eine Unterbrechungs-Subroutine
umgewandelt werden, die besonders für die Bedienung des Peripheriegerätes höchster Priorität geeignet
ist Bei den bekannten Systemen können während der Unterbrechungs-Subroutine zwischen dem anfordernden
Peripheriegerät und dem Speicher des Prozessors Informationen ausgetauscht werden. Ferner besteht die
Möglichkeit, nach Zusammenstellung eines bestimmten »Blockes« von zu oder von einem gegebenen Peripheriegerät
zu übertragenden Informationen einen DMA-Zyklus auszuführen (vgl. »IEEE Spectrum«). Während
jedes DMA-Zyklus wird ein Speicherplatz zu dem Zweck adressiert, ohne Unterbrechung des Prozessorbetriebes
Informationen zum oder vom Prozessorspeicher zu bewegen, die somit zwischen dem Prozessorspeicher
und einem gesonderten Speicher wie z. B. einem Plattenspeicher übertragen werden können. Hierbei
wird im bekannten Fall unterschieden zwischen Informationsübertragung
zwischen entsprechenden Peripheriegeräten und dem Prozessorspeicher durch Unterbrechungs-Subroutinen
und der übertragung von Informationen, die zur Verwendung durch ein besonderes
Peripheriegerät (z. B. Plattenspeicher) zusammengestellt wurden, zwischen dem Prozessorspeicher und einem
besonderen Peripheriegerät durch DMA-Zyklen. Es war bisher nicht bekannt, DMA-Zyklen zur Auswahl
der Unterbrechungs-Subroutinen zu verwenden.
Der Erfindung liegt die Aufgabe zugrunde, eine An-Ordnung der eingangs genannten Art zu schaffen, welche
unter Verwendung an sich bekannter, in der Datenverarbeitungsanlage bereits vorhandener Mittel einfacher
als bisher und in kürzerer Zeit eine »gezielte« Unterbrechung zur Bedienung der jeweils prioritätshöchsten
peripheren Einrichtung ermöglicht.
Diese Aufgabe wird durch die im Anspruch 1 gekennzeichnete Anordnung gelöst.
Durch die Erfindung wird v. a. eine Abkürzung beim Start einer Unterbrechungs-Subroutine erreicht, die
speziell den Bedürfnissen der jeweils mit höchster Priorität zu bedienenden peripheren Einrichtung entspricht,
und zwar ohne wesentlichen zusätzlichen Schaltungsaufwand.
Ausführungsbeispiele der Erfindung werden anhand der Zeichnung näher erläutert. Es zeigt
Fig. 1 eine Ausführungsform der Erfindung, die sich für ein System eignet, bei welchem für die Spezifizierung
einer Unterprogrammadresse nur ein einziges Datenwort erforderlich ist;
so F i g. 2 eine Abwandlung der Schaltungsanordnung gemäß F i g. 1 für ein System, bei dem für eine Unterprogrammadresse
zwei Datenwörter benötigt werden, und
F i g. 3 ein Blockschaltbild einer Abwandlung eines Teiles der Anordnung gemäß F i g. 1.
Bei einem bevorzugten Ausführungsbeispiel der Erfindung wird ein Übergang auf ein Unterprogramm, das
der unterbrechenden Einrichtung höchster Priorität zugeordnet ist, unter Verwendung der DMA-Möglichkeit
bo des zugeordneten Prozessors bewerkstelligt, bei dem es
sich um einen COSMAC-Mikroprozessor handeln kann. Der COSMAC-Mikroprozessor kann je nach Art des
auszuführenden Zyklus mehrere interne Zustände annehmen. Zum Beispiel führt der Prozessor in einem inb1)
ternen Zustand einen Abruf-Zyklus durch, um den nächsten Befehl, der auszuführen ist. aus dem zugehörigen
Speicher zu entnehmen. In einem anderen internen Zustand führt der Prozessor einen Ausführungszyklus
durch, bei dem der während des vorangegangenen Abruf-Zyklus gelesene Befehl durchgeführt wird. Die meisten
COSMAC- Befehle erfordern nur einen einzigen Ausführungszyklus; es gibt jedoch einige wenige Befehle,
für deren Ausführung zwei solcher Zyklen nötig sind. In wieder einem anderen internen Zustand führt der
Prozessor einen Unterbrecherzyklus durch, während dessen a) die Inhalte des Programmzählers für das laufende
Programm und der Operanden-Hinweisadresse (Zeiger) in einem speziellen Register gespeichert werden
und b) bestimmte Register in der Registeranordnung als Programmzähler für das neue Programm und
als »Zeiger« für den neuen Operanden bestimmt werden. Der Unterbrechungszyklus wird als Antwort auf
ein Unterbrechungs-Anforderungssignal begonnen; es setzt das laufende Programm aus und bewirkt eine Verzweigung
auf ein anderes Programm, das durch den Inhalt des Programmzähler adressiert wird.
In wieder einem anderen internen Zustand führt der Prozessor einen DMA-Zyklus durch. Ein solcher DMA-Zyklus
wird durch ein von außen eingegebenes DMA-Anforderungssignal eingeleitet Es gibt zwei DMA-Anforderungssignale,
ein DMA-EIN-Signal und ein DMA-AUS-Signal,
je nachdem, ob eine Speicherung im Speicher oder ein Lesen aus dem Speicher erfolgen soll. Ein
spezielles Register enthält die entsprechende DMA-Hinweisadresse und wird nach jedem DMA-Zyklus automatisch
um eine Einheit erhöht.
Während jedes Zyklus liefert der COSMAC-Mikroprozessor zwei Taktimpulse. Der eine Impuls (TPA) tritt
in der Nähe des Anfangs des Zyklus auf. Der andere Impuls (TPB) tritt in der Nähe des Endes des Zyklus auf.
Die Taktimpulse und die internen Zustände des Mikroprozessors stehen an äußeren Anschlüssen zur Verfügung,
wobei die Art des Zyklus durch Zustandscodesignale angezeigt wird, die für jeden internen Zustand
eine eindeutige Kombination enthalten.
Bei der Verwendung der hier beschriebenen Anordnung wird die DMA-Hinweisadresse (Zeiger) des Prozessors
anfänglich auf die Adresse des Adressenteiles eines Verzwcigungsbefehles eingestellt, der durch die
Unterbrechungs-Hinweisadressr adressiert wird. Da einer Unterbrechungsanforderur.f eine DMA-EIN-Anforderung
folgt, ist bei Adresse, auf welche der anfängliche Verzweigungsbefehl des Unterbrechungsprogrammes
übergeht, der Platz, der durch das Wort auf der Datenschiene während des DMA-Zyklus angegeben
wird. Ein kurzer Verzweigungsbefehl erfordert nur eine Adresse aus einem einzigen Byte (acht Bits) und veranlaßt
einen Übergang auf einen Platz auf derselben »Seite« wie der Verzweigungsbefehl (eine Seite ist eine
Gruppe von Speicherplätzen, die die gleichen höherstelligen Adressenbits haben). Ein langer Verzweigungsbefehl
erfordert eine Adresse von zwei Bytes und bewirkt einen Übergang auf einen beliebigen Platz im Speicher.
Bei der Schaltungsanordnung gemäß F i g. 1 setzen die Bedienungsanforderungssignale von verschiedenen
Einrichtungen Ei. E2 ... En jeweils ein eigenes Flip-Flop einer Gruppe von Flip-Flops oder Halteschaltungen
11. Die Bedienungsanforderungssignale werden den entsprechenden Halteschaltungen über UND-Glieder
12 zugeführt, welche durch das Ausgangssignal von einem Inverter 14 durchlaßbereit gemacht werden, wenn
kein Unterbrechungsanforderungssignal INT REQ vorliegt Das Unterbrechungsanforderungssignal wird
durch ein ODER-Glied 15 erzeugt, das das letzte in einer Gruppe von hintereinander geschalteten ODER-Gliedern,
wie den ODER-Gliedern 16a und 16& ist Die hintereinander geschalteten ODER-Glieder haben die
Aufgabe, ein Unterbrechungsanforderungssignal an der Ausgangsklemme des ODER-Gliedes 15 zu erzeugen,
wenn mindestens eine der Halteschaltungen 11 durch ein Bedienungsanforderungssignal gesetzt ist
Es sei angenommen, daß die Einrichtung I- I die höchste
Priorität, die Einrichtung £2 die nächst niedrigere Priorität usw. habe, bis zur Einrichtung En, die die niedrigste
Priorität hat Wenn mehrere Unterbrcehungsanforderungssignale
gleichzeitig auftreten, ist eins der
höchsten Priorität bestimmend, wie aus der folgenden Erläuterung ersichtlich ist Wenn die Einrichtung E 1 ein
Bedienungsanforderungssignal erzeugt, während kein Unterbrechungsanforderungssignal vorhanden ist.
macht das Setzausgangssignal von der zugehörigen Halteschaltung ein UND-Glied i8<? durchiaBbereii. tastet
ein ODER-Glied 166 auf und sperrt ein NOR-Glied 17a. Das Ausgangssignal des ODER-Gliedes 166 sperrt
ein NOR-Glied i7b und tastet das ODER-Glied 16a auf. In entsprechender Weise werden durch das Setzausgangssignal
von der der Einrichtung E1 zugeordneten Halteschaltung alle NOR-Glieder 17a bis 17cgesperrt.
Wenn die Einrichtung E2 die Einrichtung höchster
Priorität wäre, die eine Bedienung anfordert, würde die zugehörige Halteschaltung das NOR-Glied 17a mit dem
Rücksetzausgangssignal ansprechbereit machen, und da die der Einrichtung Ei zugeordnete Halteschaltung
nicht gesetzt ist, würde das NOR-Glied 17a ansprechen und ein Ausgangssignal liefern, das ein UND-Glied ISb
ansprechbereit macht. Die nachgeordneten NOR-Glieder werden durch das Setzausgangssignal von der Einrichtung
E2 zugeordneten Halteschaltung über die ODER-Glieder i6b. 16a usw. gesperrt Wenn irgendeines
der ODER-Glieder 16a usw. aufgetastet wird. spricht auch das ODER-Glied 15 an und erzeugt ein
Unterbrechungsanforderungssignal.
Die Ausgangs-Verkniipfungsschaltungen. wie die UND-Glieder 18a und 18i>, liefern ein Freigabcsignal an
eine Adressenausgangseinrichtung, wie eine Schaltvorrichtung 19. Die Schaltvorrichtung 19 enthält eine Anzahl
von Torschaltungen 191 bis 193, die das Ausgangssignal von einem zugeordneten Schalter auf eine entsprechende
Leitung einer Datenschieneneinrichtung 110 koppeln. Die Schalter können so eingestellt werden,
daß sie eine logische Eins oder Null auf die entsprechende Datenschinenleitung geben, wenn die Torschaltungen
19 bis 193 durch das Ausgangssignal vom UND-Glied 18a aufgetastet werden.
Im Mikroprozessor wird als Antwort auf das Untcrbrechungsanforderungssignal
INT REQ ein Unterbrechungsantwortsignal INTCYCLE erzeugt, welches ein
UND-Glied 112 ansprechbereit macht, das während dieses Zyklus durch das Taktsignal TPA aufgetastet
wird. Das Ausgangssignal des UND-Gliedes 12 taktet ein Flip-Flop 116 vom D-Typ in den gesetzten Zustand,
da die Datenklemme mit einem Signal (+V? entsprechend einer logischen Eins gekoppelt ist Das Setzausgangssignal
vom Flip-Flop 116 liefert das DMA-ElN-Anforderungssignal,
d.h. das Ausgangssignal DMA-IN REQ. (Die COSMAC-Organisation ist so ausgelegt, daß einem DMA-Zyklus Priorität nach einem Unterbrechungszyklus
gegeben wird.) Im Anschluß an den Unterbrechungszyklus tastet das DMA-Antwortsignal
DMA CYCLE eines der UND-Glieder 18a, 18Z) auf, das durch das Prioritätssignal ansprechbereit gemacht worden
war. Das ansprechende UND-Glied tastet die zugehörige Torschaltung auf. so daß die voreingestellte
Adresse aus acht Bits auf die Datenschieneneinrichtung
110 gekoppelt wird.
Das DMA-CYCLE-Signal macht ferner ein UND-Glied 117 ansprechbereit, das während des Taktsignals
TPA des Zyklus das Flip-Flop 116 zurücksetzt und das Ausgangssignal DMA-IN REQ abschaltet. Das DMA-CYCLE-Signal
macht ferner eine Gruppe von UND-Gliedern 10a bis 10c/ansprechbereit. Die UND-Glieder
10a bis 10c/werden außerdem durch das Aktivierungssignal
von der Einrichtung der höchsten Priorität ansprechbereit gemacht. Das Taktsignal TPB, das während
des DMA-Zyklus auftritt, tastet nun eines der UND-Glieder 10a bis 10c/auf. um die Halteschaltung
zurückzusetzen, die den vorangegangenen Unterbrechungszyklus eingeleitet hatten. Bei dem vorliegenden
Beispiel hatte das NOR-Giied I7a angesprochen und das UND-Glied 10b ansprechbereit gemacht, so daß
dieses UND-Glied aufgelastet wird und die Halteschaltung 11 der Einrichtung £2 zurücksetzt. Wenn irgendwelche
Halteschaltungen 11 niedrigerer Prioritäten gesetzt sind, bleiben sie jedoch gesetzt, da die ihnen zugeordneten
NOR-Glieder 17 gesperrt sind. In diesem Falle
bleibt das Unterbrechungsanforderungssignal INT REQ bestehen, und es wiederholt den oben geschilderten
Operationszyklus (nachdem das Unterbrechungsprogramm für die Einrichtung höherer Priorität
beendet ist).
Die oben geschilderte Operationsfolge setzt sich fort, bis alle Flip-Flops oder Halteschaltungen 11 zurückgesetzt
sind. Hierdurch werden die UND-Glieder 12 für den Empfang der nächsten Bedienungsanforderungssignale
ansprechbereit gemacht. (Die UND-Glieder 12 verhindern, daß eine Halteschaltung höherer Priorität
zurückgesetzt wird, wenn eine Halteschaltung höherer Priorität gerade in dem Augenblick gesetzt wird, in dem
das Rücksetzsignal von einer Einrichtung niedriger Priorität auftritt. Dies würde bewirken, daß die Einrichtung
niedriger Priorität eine neue Unterbrechung bewirkt, da die ihr zugehörige Halteschaltung nicht zurückgesetzt
wurde und die Einrichtung höherer Priorität nicht bedient wurde. Alternativ könnten die UND-Glieder
12 während des DMA-Zyklus gesperrt werden, was Bedienungsanforderungen hoher Priorität ermöglichen
würde, die zugehörigen Halteschaltungen zu setzen, bevor die Einrichtungen niedrigerer Priorität bedient
werden.)
Nach jedem Unterbrechungszyklus und dem folgenden DMA-Zyklus wird das geeignete Unterprogramm
ausgeführt. Wenn eine Unterbrechung aktiviert wird, verhindert der Prozessor weitere Unterbrechungen, bis
das zugeordnete Unterprogramm vollendet ist. (Man beachte, daß das Unterbrechungs-unterprogramm einen
Schritt enthält, bei dem die DMA-Hinweisadresse des Prozessors zurückgeschaltet wird, so daß die Hinweisadresse
wieder den Speicherplatz des Prozessors adressiert, der auch durch die Unterbrechungs-Hinweisadresse
adressiert wird.)
Fig.2 zeigt ein Schaltwerk zur Abwandlung der Schaltungsanordnung gemäß F i g. 1 für den Fall, daß
eine Verzweigungsadres.se aus zwei Bytes zu speichern ist. Für jede Unterbrechiingseinrichtung sind zwei
Schaltvorrichtungen erforderlich, und es müssen zwei aufeinanderfolgende DMA-Zyklen erzeugt werden. Das
Flip-Flop 116 und das UND-Glied 112 des Schaltwerkes
gemäß F i g. 2 arbeiten in der gleichen Weise wie bei der Schaltungsanordnung gemäß Fig. 1. Während eines
Taktsignals TPA des ersten der beiden DMA-Zyklen wird ein UND-Glied 21 erregt das ein Flip-Flop 22 vom
RS-Typ setzt. Das Setzausgangssignal vom Flip-Flop 22 und das Rücksetzausgangssignal von einem Flip-Flop 24
tasten ein UND-Glied 210 auf, dessen Ausgangssignal ein UND-Glied 28a eines Paares von UND-Gliedern
28a, 2%b ansprechbereit macht. Den anderen Eingängen
ι der UND-Glieder 28a, 28i>
wird ein Prioritätsdecodierer-Ausgangssignal von der Halteschaltung hoher Priorität
oder einen der NOR-Glieder 17a bis 17c zugeführt. Wenn das UND-Glied 28a aufgetastet wird, erregt es
eine Schaltvorrichtung 29a für das erste Adressenwort, welche das erste Byte der aus zwei Bytes bestehenden
Adresse auf die Datenschieneneinrichtung gibt. Beim folgenden Taktsignal TPB wird das Flip-Flop 24 über
ein UND-Glied 23 gesetzt. Das Taktsignal, das während
des zweiten der beiden DMA-Zyklen auftritt, läßt ein
n UND-Glied 212 ansprechen, das durch das Setzausgangssignal
vom Flip-Flop 24 ansprechbereit gemacht ist und das Flip-Flop 22 zurücksetzt. Das Rücksetzausgangssignal
vom Flip-Flop 24 sperrt das UND-Glied 21, so daß dem Flip-Flop 22 während des zweiten DMA-Zyklus
kein Setzsignal zugeführt wird. Das Setzausgangssignal vom Flip-Flop 24 und das Rücksetzausgangssignal
vom Flip-Flop 22 lassen ein UND-Glied 211 ansprechen, dessen Ausgangssignal das zweite UND-Glied
28i» der aktivierten unterbrechenden Einrichtung ansprechbereit macht, um die zugehörige zweite Schaltvorrichtung
296 zu erregen, die das zweite Byte der aus zwei Bytes bestehenden Adresse an die Datenschiene
legt.
Das Taktsignal TPB, das während des zweiten DMA-Signals auftritt, läßt ein UND-Glied 213 ansprechen,
welches das Flip-Flop 24 zurücksetzt. Das UND-Glied 213 liefert ferner ein Freigabesignal an das Rücksetz-UND-Glied
20c/der zugehörigen Halteschaltungen. Das Schaltwerk gemäß F i g. 2 erzeugt zwei aufeinanderfolgende
DMA-EIN-Zyklen, durch die zwei aufeinanderfolgende Bytes gespeichert werden, welche die Adresse
darstellen, auf die das Unterbrechungs-Unterprogramm übergehen soll. Man beachte, daß das Unterbrechungs-Unterprogramm
in diesem Falle zwei Zurückschaltungsschritte für die DMA-Hinweisadresse des Prozessors
enthält, so daß die DMA-Hinweisadresse am Ende des Unterprogramms wieder den Speicherplatz adressiert,
der auch durch die Unterbrechungs-Hinweisadresse adressiert wird. Im übrigen arbeitet das Schaltwerk
gemäß F i g. 2 in der oben beschriebenen Weise.
F i g. 3 zeigt eine alternative Schaltvorrichtung, die anstelle der Schaltvorrichtung 19 verwendet werden
kann. Die Schaltvorrichtung gemäß F i g. 3 enthält einen Festwertspeicher 31, der an die Datenschiene Daten-Wörter,
die durch die Zustandssignale von der unterbrechenden Einrichtung gewähii werden, liefert, wenn er
durch das Ausgangssignal vom UND-Glied 18 in der oben beschriebenen Weise freigegeben wird. Diese im
Festwertspeicher 31 ausgewählte und der Datenschiene zugeführte Unterprogrammadresse hängt von dem
Grund (Zustand) der Unterbrechung ab und stellt eine apparative Lösung dar, die ein eigenes Entscheidungsunterprogramm überflüssig macht.
Der oben erläuterte Erfindungsgedanke läßt sich selbstverständlich auch bei anderen Mikroprozessoren und programmgesteuerten Digitalrechnern anwenden. Taktimpulse wie die Taktsignale TPA und TPB können aus dem Haupttakt der Anlage durch Decodierung erzeugt werden, wenn der zugehörige Prozessor sie nicht liefert
Der oben erläuterte Erfindungsgedanke läßt sich selbstverständlich auch bei anderen Mikroprozessoren und programmgesteuerten Digitalrechnern anwenden. Taktimpulse wie die Taktsignale TPA und TPB können aus dem Haupttakt der Anlage durch Decodierung erzeugt werden, wenn der zugehörige Prozessor sie nicht liefert
Hierzu 2 Blatt Zeichnungen
Claims (1)
1. Anordnung zur Auswahl von Unterbrechungsprogrammen in einer zyklisch arbeitenden elektroni-
sehen Datenverarbeitungsanlage mit
a) einer Datenschieneneinnchtung.
b) einem Arbeitsspeicher,
c) einer Einrichtung zum direkten Speicherzugriff, welche den Zyklus des direkten Speicherzugriffs (DMA-Zyklus) einleitet und eine Einheit
zur Abgabe eines DMA-Antworeignals enthält,
das das Vorliegen des DMA-Zyklus anzeigt
d) einer Unterbrechungseinrichtung zum Einleiten is
eines von mehreren Unterbrechungsprogrammen, weiche Befehle enthalten, die an versshiedenen Speicherplatzen des Arbeitsspeichers gespeichert sind, wobei die Unterbrechungseinrichtung eine Vorrichtung zum Erzeugen eines
Unterbrechungsantwortsignals aufweist und das Unterbrechuogsantwortsignal das Vorliegen eines Unterbrechungszyklus anzeigt,
e) mehreren peripheren Einrichtungen, die asynchron mit der Datenverarbeitungsanlage zu-
sammenarbeiten und jeweils ein Bedienungsanforderungssignal zu erzeugen vermögen,
f) einer Anzahl von Halteschaltungen, die jeweils auf ein Bedienungsanforderungssignal einer der
peripheren Einrichtungen ansprechen und dieses Bedienungsanforderungssignal speichern,
g) einem Schaltwerk, das durch die ein Bedienungsanforderungssignal speichernden Halteschaltungen steuerbar iii und ein Unterbrechungsanforderungssignal an die Unterbre-
chungseinrichtung liefert,
h) einer Prioritätseinrichtung, welche durch die ein Bedienungsanforderungssignal speichernden
Halteschaltungen gesteuert ist und ein entsprechendes von mehreren Prioritätsausgangssi-
gnalen erzeugt, welches die Identität derjenigen peripheren Einrichtung angibt, die von eine Bedienung anfordernden peripheren Einrichtungen die höchste Priorität hat, und
i) mehreren Ausgangsschaltungen zum Empfang der Prioritätsausgangssignale, die jeweils einer
peripheren Einrichtung zugeordnet sind und abhängig von dem erzeugten Prioritätsausgangssignal angesteuert werden, um der Datenschieneneinrichtung ein vorbestimmtes Binär-
wort zur Identifizierung desjenigen Speicherplatzes zuzuführen, welcher den Anfang des
Unterbrechungsprogramms zur Bedienung der einen anfordernden peripheren Einrichtung, die
höchste Priorität hat, speichert, w
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/729,348 US4090238A (en) | 1976-10-04 | 1976-10-04 | Priority vectored interrupt using direct memory access |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2744531A1 DE2744531A1 (de) | 1978-04-06 |
DE2744531C2 true DE2744531C2 (de) | 1985-02-07 |
Family
ID=24930639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2744531A Expired DE2744531C2 (de) | 1976-10-04 | 1977-10-04 | Anordnung zur Auswahl von Unterbrechnungsprogrammen in einer Datenverarbeitungsanlage |
Country Status (6)
Country | Link |
---|---|
US (1) | US4090238A (de) |
JP (1) | JPS5355924A (de) |
DE (1) | DE2744531C2 (de) |
FR (1) | FR2366627A1 (de) |
GB (1) | GB1588929A (de) |
IT (1) | IT1087551B (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3715291A1 (de) * | 1987-05-08 | 1988-11-24 | Telefonbau & Normalzeit Gmbh | Schaltungsanordnung zur erweiterung der anschlussmoeglichkeiten fuer mit einer zentralen steuereinrichtung zusammenarbeitende periphere einheiten |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4271466A (en) * | 1975-02-20 | 1981-06-02 | Panafacom Limited | Direct memory access control system with byte/word control of data bus |
IT1192603B (it) * | 1977-12-30 | 1988-04-20 | Rca Corp | Apparato di interruzione di un programma,su base prioritaria,dotato di mezzi per l'alimentazione diretta dell'indirizzo di salto |
US4315314A (en) * | 1977-12-30 | 1982-02-09 | Rca Corporation | Priority vectored interrupt having means to supply branch address directly |
US4403282A (en) * | 1978-01-23 | 1983-09-06 | Data General Corporation | Data processing system using a high speed data channel for providing direct memory access for block data transfers |
US4200912A (en) * | 1978-07-31 | 1980-04-29 | Motorola, Inc. | Processor interrupt system |
GB2038517B (en) * | 1978-12-26 | 1983-05-11 | Honeywell Inf Systems | Interrupt system |
US4240140A (en) * | 1978-12-26 | 1980-12-16 | Honeywell Information Systems Inc. | CRT display terminal priority interrupt apparatus for generating vectored addresses |
US4237535A (en) * | 1979-04-11 | 1980-12-02 | Sperry Rand Corporation | Apparatus and method for receiving and servicing request signals from peripheral devices in a data processing system |
US4310880A (en) * | 1979-09-10 | 1982-01-12 | Nixdorf Computer Corporation | High-speed synchronous computer using pipelined registers and a two-level fixed priority circuit |
FR2465269B1 (fr) * | 1979-09-12 | 1985-12-27 | Cii Honeywell Bull | Selecteur de demandes asynchrones dans un systeme de traitement de l'information |
DE3003340C2 (de) * | 1980-01-30 | 1985-08-22 | Siemens AG, 1000 Berlin und 8000 München | Verfahren und Schaltungsanordnung zur Übertragung von binären Signalen zwischen über ein zentrales Busleitungssystem miteinander verbundenen Anschlußgeräten |
IT1145730B (it) * | 1981-11-13 | 1986-11-05 | Olivetti & Co Spa | Sistema di elaborazione di dati con dispositivo di controllo delle interruzioni di programma |
DE3233542A1 (de) * | 1982-09-10 | 1984-03-15 | Philips Kommunikations Industrie AG, 8500 Nürnberg | Verfahren und schaltungsanordnung zur abgabe von unterbrechungs-anforderungssignalen |
US4523277A (en) * | 1982-09-30 | 1985-06-11 | Ncr Corporation | Priority interrupt system for microcomputer |
US4807117A (en) * | 1983-07-19 | 1989-02-21 | Nec Corporation | Interruption control apparatus |
US4627018A (en) * | 1983-09-08 | 1986-12-02 | Sperry Corporation | Priority requestor accelerator |
US4631670A (en) * | 1984-07-11 | 1986-12-23 | Ibm Corporation | Interrupt level sharing |
US4964034A (en) * | 1984-10-30 | 1990-10-16 | Raytheon Company | Synchronized processing system with bus arbiter which samples and stores bus request signals and synchronizes bus grant signals according to clock signals |
US4908749A (en) * | 1985-11-15 | 1990-03-13 | Data General Corporation | System for controlling access to computer bus having address phase and data phase by prolonging the generation of request signal |
JPS62226257A (ja) * | 1986-03-27 | 1987-10-05 | Toshiba Corp | 演算処理装置 |
US4961067A (en) * | 1986-07-28 | 1990-10-02 | Motorola, Inc. | Pattern driven interrupt in a digital data processor |
US5241661A (en) * | 1987-03-27 | 1993-08-31 | International Business Machines Corporation | DMA access arbitration device in which CPU can arbitrate on behalf of attachment having no arbiter |
US4901234A (en) * | 1987-03-27 | 1990-02-13 | International Business Machines Corporation | Computer system having programmable DMA control |
US5179696A (en) * | 1987-07-24 | 1993-01-12 | Nec Corporation | Generator detecting internal and external ready signals for generating a bus cycle end signal for microprocessor debugging operation |
JPH01180626A (ja) * | 1988-01-12 | 1989-07-18 | Mitsubishi Electric Corp | 優先順位分解器 |
JPH02224140A (ja) * | 1989-02-27 | 1990-09-06 | Nippon Motoroola Kk | 割込試験装置 |
US5276818A (en) * | 1989-04-24 | 1994-01-04 | Hitachi, Ltd. | Bus system for information processing system and method of controlling the same |
EP0464237A1 (de) * | 1990-07-03 | 1992-01-08 | International Business Machines Corporation | Busarbitrierungsschema |
CA2145553C (en) * | 1994-03-30 | 1999-12-21 | Yuuki Date | Multi-processor system including priority arbitrator for arbitrating request issued from processors |
US6189049B1 (en) * | 1998-08-10 | 2001-02-13 | Micron Technology | Method for operating processor with internal register for peripheral status |
US6374320B1 (en) | 1998-08-10 | 2002-04-16 | Micron Technology, Inc | Method for operating core logic unit with internal register for peripheral status |
US6219720B1 (en) | 1998-08-10 | 2001-04-17 | Micron Technology, Inc. | Core logic unit with internal register for peripheral status |
US6233627B1 (en) | 1998-08-10 | 2001-05-15 | Micron Technology, Inc. | Processor with internal register for peripheral status |
DE69937985T2 (de) * | 1998-10-27 | 2008-12-24 | Canon K.K. | Bildverarbeitungsvorrichtung und -Verfahren |
US20080209089A1 (en) * | 2007-02-27 | 2008-08-28 | Integrated Device Technology, Inc. | Packet-Based Parallel Interface Protocol For A Serial Buffer Having A Parallel Processor Port |
US8094677B2 (en) * | 2007-02-27 | 2012-01-10 | Integrated Device Technology, Inc. | Multi-bus structure for optimizing system performance of a serial buffer |
US8516163B2 (en) * | 2007-02-27 | 2013-08-20 | Integrated Device Technology, Inc. | Hardware-based concurrent direct memory access (DMA) engines on serial rapid input/output SRIO interface |
US7870313B2 (en) * | 2007-02-27 | 2011-01-11 | Integrated Device Technology, Inc. | Method and structure to support system resource access of a serial device implementating a lite-weight protocol |
US7617346B2 (en) * | 2007-02-27 | 2009-11-10 | Integrated Device Technology, Inc. | Rapid input/output doorbell coalescing to minimize CPU utilization and reduce system interrupt latency |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR1232587A (fr) * | 1959-06-24 | 1960-10-10 | Bull Sa Machines | Perfectionnements aux dispositifs d'organisation interne et de coordination des transferts d'informations dans une machine calculatrice électronique |
US3665415A (en) * | 1970-04-29 | 1972-05-23 | Honeywell Inf Systems | Data processing system with program interrupt priority apparatus utilizing working store for multiplexing interrupt requests |
GB1397438A (en) * | 1971-10-27 | 1975-06-11 | Ibm | Data processing system |
US3800287A (en) * | 1972-06-27 | 1974-03-26 | Honeywell Inf Systems | Data processing system having automatic interrupt identification technique |
JPS5242498B2 (de) * | 1972-08-19 | 1977-10-25 | ||
US3766526A (en) * | 1972-10-10 | 1973-10-16 | Atomic Energy Commission | Multi-microprogrammed input-output processor |
US3833888A (en) * | 1973-02-05 | 1974-09-03 | Honeywell Inf Systems | General purpose digital processor for terminal devices |
US3815105A (en) * | 1973-09-26 | 1974-06-04 | Corning Glass Works | Priority interrupt system |
US3944985A (en) * | 1973-10-19 | 1976-03-16 | Texas Instruments Incorporated | Workspace addressing system |
US3943495A (en) * | 1973-12-26 | 1976-03-09 | Xerox Corporation | Microprocessor with immediate and indirect addressing |
JPS50106541A (de) * | 1974-01-29 | 1975-08-22 |
-
1976
- 1976-10-04 US US05/729,348 patent/US4090238A/en not_active Expired - Lifetime
-
1977
- 1977-09-29 GB GB40495/77A patent/GB1588929A/en not_active Expired
- 1977-10-03 IT IT28226/77A patent/IT1087551B/it active
- 1977-10-03 JP JP11940977A patent/JPS5355924A/ja active Granted
- 1977-10-04 DE DE2744531A patent/DE2744531C2/de not_active Expired
- 1977-10-04 FR FR7729837A patent/FR2366627A1/fr active Granted
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3715291A1 (de) * | 1987-05-08 | 1988-11-24 | Telefonbau & Normalzeit Gmbh | Schaltungsanordnung zur erweiterung der anschlussmoeglichkeiten fuer mit einer zentralen steuereinrichtung zusammenarbeitende periphere einheiten |
Also Published As
Publication number | Publication date |
---|---|
FR2366627A1 (fr) | 1978-04-28 |
FR2366627B1 (de) | 1981-12-04 |
JPS5732817B2 (de) | 1982-07-13 |
US4090238A (en) | 1978-05-16 |
GB1588929A (en) | 1981-04-29 |
JPS5355924A (en) | 1978-05-20 |
IT1087551B (it) | 1985-06-04 |
DE2744531A1 (de) | 1978-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2744531C2 (de) | Anordnung zur Auswahl von Unterbrechnungsprogrammen in einer Datenverarbeitungsanlage | |
DE2322674C3 (de) | Mikroprogramm-Steuereinrichtung | |
DE3751164T2 (de) | Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten. | |
DE2635592A1 (de) | Multiprozessor-abrufsystem | |
DE2523372A1 (de) | Eingabe/ausgabe-anschlussteuereinrichtung | |
DE2702090A1 (de) | Geraet zur verarbeitung von unterbrechungen in mikroverarbeitungssystemen | |
DE1774296B2 (de) | Restruktuierbare Steuereinheit für elektronische Digitalrechner | |
DE2556624C2 (de) | Verfahren und Schaltungsanordnung zur asynchronen Datenübertragung | |
EP0048767A1 (de) | Prioritätsstufengesteuerte Unterbrechungseinrichtung | |
DE2219918A1 (de) | Programmierbares Steuergerät | |
DE1275800B (de) | Steuerwerk fuer datenverarbeitende Maschinen | |
EP0006164A1 (de) | Multiprozessorsystem mit gemeinsam benutzbaren Speichern | |
DE2164793A1 (de) | Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/ Ausgabe-Einheiten mittels eine Zentraleinheit | |
DE2363846C2 (de) | Datenverarbeitungsanlage mit einer Schaltungsanordnung zur Steuerung des Datentransfers zwischen dem Hauptspeicher und mehreren peripheren Geräten | |
DE2801563A1 (de) | Dialogprozessor | |
DE1474063A1 (de) | Datenverarbeitungsanlage | |
DE2813080A1 (de) | Einrichtung zur speicheradressierung | |
EP0062141B1 (de) | Schaltungsanordnung zur Eingabe von Steuerbefehlen in ein Mikrocomputersystem | |
DE2218630B2 (de) | Schaltungsanordnung zur Steuerung von Unterbrechungssignalen in Datenverarbeitungsanlagen | |
DE1499191B2 (de) | Elektronische einrichtung fuer eine datenverarbeitungsanlage | |
DE4328909C2 (de) | Informationsverarbeitungssystem, Informationsprozessor in einem Informationsverarbeitungssystem und Interrupt-Controller in einem Informationsverarbeitungssystem | |
DE2745204A1 (de) | Mikroprogramm-leitwerk fuer eine datenverarbeitungsanlage | |
EP0409330B1 (de) | Schaltungsanordnung zum Steuern des Zugriffs auf einen Speicher | |
DE2759120A1 (de) | Prozessor fuer datenverarbeitungssysteme | |
DE3435741C2 (de) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OAP | Request for examination filed | ||
OD | Request for examination | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |