DE69023018T2 - Prozessor-Unterbrechungssteuerung. - Google Patents
Prozessor-Unterbrechungssteuerung.Info
- Publication number
- DE69023018T2 DE69023018T2 DE69023018T DE69023018T DE69023018T2 DE 69023018 T2 DE69023018 T2 DE 69023018T2 DE 69023018 T DE69023018 T DE 69023018T DE 69023018 T DE69023018 T DE 69023018T DE 69023018 T2 DE69023018 T2 DE 69023018T2
- Authority
- DE
- Germany
- Prior art keywords
- context
- interrupt
- priority
- active
- processor
- 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 - Lifetime
Links
- 238000012545 processing Methods 0.000 claims description 12
- 238000000034 method Methods 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 4
- 238000010200 validation analysis Methods 0.000 claims 2
- 230000004913 activation Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000001914 calming effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000032683 aging Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- 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/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Description
- Die vorliegende Erfindung betrifft eine Prozessor- Unterbrechungssteuerung, wobei in diesem Zusammenhang der Ausdruck "Prozessor" eine Peripherie-Steuerungseinheit zur Bildung eines größeren Datenverarbeitungskomplexes umfaßt.
- Programmierte Geräte aller Art umfassen bisher interne, externe sowie programmierte Unterbrechungseinrichtungen. Einige der Einrichtungen haben eine feste Priorität der Unterbrechungen, wie zum Beispiel Reigenunterbrechungsprioritäten und ähnliches. Andere Unterbrechungseinrichtungen bieten variable Unterbrechungsprioritäten.
- Peripherie-Steuerungseinheiten verwenden bisher meist eine feste Unterbrechungspriorität, die entweder in die Steuerungseinheit in einer Stecktafel (auch als Schalttafel bezeichnet) eingesteckt wird oder mit den elektronischen Schaltungen verdrahtet wird. Bei solchen Steuerungseinheiten gibt die Position des Anschlusses von Peripheriegeräten die Priorität an, und die Anschlüsse interner Schaltkreise geben deren jeweilige Prioritäten an.
- Thacker zeigt in US-Patent 4.103.330 eine Datenverarbeitungsvorrichtung mit einem Prioritätsunterbrechungskodierer 28. Der Unterbrechungskodierer empfängt Unterbrechungs- oder Weckanforderungen von I/O-Steuerungseinheiten. Dieser Kodierer kodiert die Unterbrechungsanforderungen in eine 4- Bit-Menge, die wiederum in ein Register 36 für die aktuelle Aufgabe gegeben wird. Diese Menge gibt die aktuell ausstehende Anforderung mit der höchsten Priorität an. Diese Priorität wird durch elektronische Schaltkreise des Kodierers 28 fixiert, der in diesem Dokument dargestellt ist. Es soll eine flexiblere und effektivere Auswertung und Verarbeitung von Unterbrechungen bereitgestellt werden.
- Byrns zeigt in dem erloschenen US-Patent 3.599.162 eine Unterbrechungsbehandlungsvorrichtung mit mehreren Unterbrechungstabellen. Jede Tabelle kann mehrere empfangene Unterbrechungsanforderungen speichern, die alle dieselbe Priorität haben; jede Tabelle speichert dabei Unterbrechungen mit unterschiedlichen Prioritäten. Offenbar werden die Unterbrechungsanforderungen in einer gegebenen Tabelle nach dem FIFO-Prinzip behandelt. Als solche ist die FIFO-Auswahl innerhalb einer Tabelle eine Entscheidungsfunktion zwischen Unterbrechungsanforderungen mit derselben Priorität.
- Yokohama zeigt in US-Patent 4.338.662 eine Mikrobefehlsunterbrechungssteuerung, bei der Mikrobefehle, die unterbrochen werden, in einem Stapel gespeichert werden, offenbar entsprechend ihrem Prioritätswert. Die Ausführung der unterbrochenen Mikrobefehle wird jeweils wieder aufgenommen, wenn der unterbrechende Mikrobefehl endet. Dieses Schema arbeitet offenbar auch mit einer festen Priorität.
- Hodge zeigt in US-Patent 4.636.944 eine Mikrobefehls- Steuerungseinheit mit mehrstufiger Priorität. Für jede Unterbrechungsstufe kann jeweils nur ein Unterbrechungssignal aktiv sein. Eine Unterbrechung mir höherer Priorität führt dazu, daß die Steuerungseinheit den derzeit unterbrochenen Befehl stapelt, damit der unterbrochene Befehl wieder aufgenommen werden kann, wenn die Unterbrechung beendet ist. Branigin et al zeigen in US-Patent 4.358.829 einen dynamischen, nach Rang geordneten Planungsmechanismus. Der Mechanismus erlaubt das Einsetzen von Elementen in eine Liste von Positionen, die von dem Rang der Elemente bestimmt werden, und erlaubt die Löschung von Elementen nur vom oberen Ende der Liste. Die Regelung ermöglicht die dynamische Alterung der Prioritäten der Elemente in der Liste.
- Die vorliegende Erfindung stellt eine Datenprozessor- Unterbrechungslogik bereit, die separat eine Aufzeichnung darüber gespeichert hält, welche Prioritäten Prozessorkontexte haben, welche Kontexte aktiv sind, welcher Kontext der aktuell laufende Kontext ist und welche Kontexte die Unterbrechung des aktuellen Kontexts anfordern, und ständig die Priorität des aktuellen Kontexts und die des anfordernden aktiven Kontexts mit der höchsten Priorität vergleicht, wie durch Kombinieren der gespeicherten Aufzeichnungen festgestellt wird, wobei die Unterbrechung gültiggemacht - freigegeben - wird, wenn ihre Priorität die höhere ist.
- Eine solche Regelung ermöglicht eine Unterbrechungssteuerung, bei der das ausführende Befehlsprogramm weder die Priorität des aktuell laufenden Kontexts noch die Priorität irgendeines aktiven Kontexts, der nicht aktuell läuft, kennen muß. Es ist möglich, das Ändern der Priorität der Unterbrechung anhand des Zustands des Kontexts anstatt der Identität des Kontexts freizugeben, also die Unterbrechungssteuerung gemäß dem angegebenen Unterbrechungskontext mit der höchsten Priorität freizugeben.
- Die vorliegende Erfindung bietet zudem einen Prozessor mit einer solchen Regelung (Anspruch 2) und das entsprechende Verfahren der Unterbrechungssteuerung in einem Prozessor (Anspruch 6).
- Wie nachstehend beschrieben wird, werden Unterbrechungssignale analysiert, um festzustellen, ob ein programmierter Prozessor unterbrochen werden soll. Das Gerät etabliert mehrere operationale Kontexte für den programmierten Prozessor gemeinsam mit primären und sekundären Prioritäten von Unterbrechungen für jeden der Kontexte.
- Ein Mittel speichert ein oder mehrere Unterbrechungssignale, die Anforderungen von Unterbrechungen des Prozessorbetriebs zur Veränderung der Befehlsausführung zu einem Kontext anzeigen, der den gespeicherten Unterbrechungssignalen jeweils entspricht.
- Das Gerät unterhält ferner eine Anzeige aller aktiven Kontexte, in denen der programmierte Prozessor derzeit Befehle ausführen kann, aber nicht muß, und eine Identifizierung des aktuellen Kontexts, in dem der programmierte Prozessor Befehle ausführt. Während vorbestimmter Betriebszyklen des programmierten Prozessors vergleichen Mittel alle aktiven Kontexte und gespeicherten Unterbrechungssignale miteinander und stellen dabei jeweils auch deren primäre und sekundäre Prioritäten fest, um den aktiven Kontext oder das Unterbrechungssignal mit der höchsten Priorität anzugeben.
- Die höchste Priorität des angegebenen aktiven Kontexts oder Unterbrechungssignals mit der höchsten Priorität mit dem aktuellen Kontext in primärer wie auch sekundärer Priorität unterbricht den programmierten Prozessor, wenn der angegebene aktive Kontext oder das Unterbrechungssignal mit der höchsten Priorität höher ist als die Priorität des aktuellen Kontexts.
- Keines der oben erörterten Dokumente schlägt ein flexibles, aber effizientes Unterbrechungsverfahren oder eine Vorrichtung vor, die auf einem laufenden Kontext beruht, der das Ruhigstellen eines aktiven Kontexts unabhängig davon ermöglicht, ob dieser gerade läuft oder nicht 81 und zur Entscheidung zwischen Unterbrechungen für Kontexte mit derselben Unterbrechungspriorität dient.
- Die vorliegende Erfindung wird im folgenden exemplarisch anhand eines Ausführungsbeispiels beschrieben, das in den beiliegenden Zeichnungen dargestellt ist, wobei gilt:
- Fig. 1 ist ein vereinfachtes Blockdiagramm eines programmierten Prozessors zur Verwendung in einer Peripherie- Steuerungseinheit, der in einen einzelnen Halbleiterchip integriert ist.
- Fig. 2 illustriert diagrammartig eine Kontext- und Unterbrechungssteuerung oder -verwaltung zur Verwendung in dem in Fig. 1 dargestellten programmierten Prozessor.
- Fig. 3 ist ein vereinfachtes Flußdiagramm, das die Reaktion auf eine gültige Unterbrechung und eine vom Programm inituerte Kontextberuhigung in dem in Fig. 1 dargestellten programmierten Prozessor darstellt.
- Fig. 4 ist ein vereinfachtes Maschinenoperationsdiagramm, das die Operation der in Fig. 2 dargestellten Vorrichtung darstellt.
- Fig. 5 ist ein vereinfachtes Maschinenoperationsdiagramm, das die Kontextberuhigung bei der Verwendung der in Fig. 2 dargestellten Kontextverwaltung zeigt.
- Fig. 6 ist ein vereinfachtes Maschinenoperationsdiagramm, das die Findung des aktiven Kontexts oder des zu einem Unterbrechungssignal gehörenden Kontexts mit der höchsten Priorität durch die in Fig. 2 dargestellte Kontextverwaltung zeigt.
- Im folgenden wird insbesondere auf die beiliegenden Zeichnungen Bezug genommen, wobei gleiche Zahlen in den verschiedenen Figuren gleiche Teile und Strukturmerkmale bezeichnen. Fig. 1 zeigt ein programmiertes Prozessorsystem, das Teil einer Peripherie-Steuerungseinheit ist (nicht dargestellt), integriert in einen einzelnen Halbleiterchip 10. Das System umfaßt einen Chipprozessor 11, der aus Mikroprozessorschaltkreisen mit irgendeinem üblichen Design besteht. Außerhalb des Chips befindet sich ein Befehlsspeicher 12, auf den der Prozessor 11 zugreifen kann, um Befehle zu holen, die ausgeführt werden sollen. Eine Menge von Speicherregistern 13 (bei denen es sich um RAM handeln kann) im Chip 10 werden mit dem Chipprozessor 11 über den In- Chip-Bus 14 verbunden. Der Bus 14 hat die üblichen elektrischen Leiter, von denen bekanntlich einige Datensignale übertragen, während andere Etikett- oder Steuerungssignale übertragen. Eine solche Anordnung kann auch als zwei Busse aufgefaßt werden: ein Datenbus und ein Steuerungsbus. Die Register 13 wirken als lokaler Speicher für den Prozessor 11. In den Registern 13 enthalten ist ein Programmspeicherbereich 15, der, wie weiter unten beschrieben, für Programmspeicherwort-Swaps (PSW-Swaps) verwendet wird. Mehrere Busadapter 16 verbinden operativ den In-Chip-Bus 14 mit mehreren anderen funktionalen Chips (solche Chips, nicht dargestellt, verbinden operativ die jeweiligen Busadapter 16 je nach Bedarf mit anderen funktionierenden Chips, die wiederum mit Hostprozessorkanälen, Peripheriegeräten und ähnlichem verbunden sind) auf einer Platine (nicht dargestellt), mit anderen Platinen (nicht dargestellt) oder anderen Geräten (nicht dargestellt). Die Unterbrechungsschaltkreise 18 werden mit dem In-Chip-Bus 14 zur Kommunikation mit dem Chipprozessor 11 verbunden, um dessen Funktion zu unterbrechen, wie im Fach bekannt ist.
- Die Unterbrechungsschaltkreise 18 empfangen verschiedene Programmausführungsunterbrechungssignale. Eine Unterbrechung der höchsten Priorität, die in dem dargestellten Ausführungsbeispiel festgelegt ist, ist ein Einschalt-Reset (POR, Power On Reset), der über die externe Chipverbindung 20 von einer externen Quelle (nicht dargestellt) empfangen wird und anzeigt, daß die Stromversorgung zurückgesetzt wird. Eine weitere externe Unterbrechung von festgelegter höchster Priorität ist ein Trapsignal, das über die externe Chipverbindung 21 empfangen wird. Die Reaktion des Chipprozessors 11 auf diese zwei Unterbrechungsarten ist bekannt. Eine Menge externer Unterbrechungseingabechipverbindungen 22 verbindet andere Chips, wie sie oben erwähnt wurden und die mit einem oder mehreren Datenbussen 17 verbunden sind, über die das Prozessorsystem auf dem Chip 10 kommuniziert. Eine Menge chipinterner Unterbrechungseingaben 23 fließt auch in die Schaltkreise 18. Der Aspekt des Obengesagten, der für die vorliegende Erfindung wesentlich ist, betrifft die Behandlung aller obengenannten Unterbrechungssignale und die Verwaltung des Kontexts, in dem der Chipprozessor 11 Befehlsströme ausführt.
- Fig. 2 ist eine vereinfachte Darstellung der Unterbrechungsschaltkreise 18. Das Hardware-Unterbrechungsregister 30 ist ein Doppelebenenregister, das asynchron Unterbrechungsanforderungssignale in einer ersten Ebene (nicht dargestellt) empfängt. Das Register 30 ist ein Phasenhalteregister, das seinen Signalinhalt einen Unterbrechungsevaluierungstakt lang hält; das entspricht etwa einem Takt der Maschinenoperation. Die in das Register 30 eingegebenen Unterbrechungsignale können entweder aktiv bleiben, bis die Unterbrechung beachtet wird, oder bei jedem Maschinentakt neu ausgegeben werden, bis die Unterbrechung beachtet wird. Jedesmal, wenn ein Takt des Chipprozessors 11 eine vorbestimmte Ablaufzeit vom Beginn eines Takts erreicht, werden die Anforderungssignale in der ersten Ebene (nicht dargestellt) des Registers 30 in seine zweite Ebene übertragen (nicht dargestellt). Die weiter unten beschriebenen Schaltkreise fragen effektiv die zweite Ebene des Registers 30 ab, um die empfangenen Unterbrechungsanforderungen zu lesen. Eine Bitposition im Register 30 gehört zu einem entsprechenden Kontext, wie noch deutlich werden wird.
- Der Chipprozessor 11 läuft nur in einem von mehreren möglichen Kontexten. Jeder der Kontexte kann von dem Chipprozessor 11 unter der Verwaltung und Steuerung der Unterbrechungsschaltkreise 18 eingerichtet und aufgerufen werden Die Unterbrechungspriorität wird, wie weiter unten beschrieben wird, durch Programm- oder Softwaremittel eingestellt. Eine solche Einstellung während einer Kontextausführung reflektiert den aktuellen Zustand des Kontexts. Ein Designer kann also in die Programmierung oder Software Steuerungen integrieren, die über die vorliegende Beschreibung hinausgehen und die Unterbrechungsprioritäten je nach dem Design verändern. Die Vorrichtung und das System, die in Fig. 2 dargestellt sind, ermöglichen diese Flexibilität. Auch muß das laufende Programm des Chipprozessors 11 nicht wissen, in welchem der Kontexte es gerade läuft oder wie viele und welche Kontexte aktiv sind. (In denjenigen Kontexten, die aktiv sind, ist noch Arbeit zu erledigen.) Diese gesamte Steuerung und Verwaltung wird von den Unterbrechungsschaltkreisen 18 mit minimaler Softwareinteraktion in dem Chipprozessor 11 ausgeführt. Das Register 31 für die aktiven Kontexte speichert Identifikationen aller derzeit aktiven Kontexte. Solche Identifikationen sind Bitpositionen imregister, die zu dem entsprechenden Kontext gehören; ein Bit pro Kontext. Ein gesetztes Bit zeigt an, daß der entsprechende Kontext aktiv ist, während ein zurückgesetztes Bit anzeigt, daß der entsprechende Kontext nicht aktiv, also beruhigt, ist. Dieser Speicher umfaßt den aktuell laufenden aktiven Kontext, und dieser laufende Kontext wird auch dadurch identifiziert, daß ein entsprechendes Bit in dem aktuellen Kontextregister 32 gesetzt wird, wie noch deutlich werden wird. Der Prozessor 11 setzt den Inhalt des Registers 31 für die aktiven Kontexte über den Bus 14 und fragt ihn so auch ab, während weiter unten beschriebene Schaltkreise das Register 32 für den aktuellen Kontext setzen; dieses Register kann von dem Chipprozessor 11 abgefragt oder beschrieben werden. Die weiter unten beschriebene Behandlung gültiger Unterbrechungen und die Behandlung von Beruhigungskontexten bezieht den Chipprozessor 11 insoweit ein, als er den Inhalt des Registers 31 für die aktiven Kontexte aktualisiert. Dies bedeutet nicht, daß die Programmausführung innerhalb eines gegebenen Kontexts Informationen darüber benötigt, welche Kontexte aktiv sind.
- An einem vorbestimmten Punkt in jedem Takt der Operation des Chipprozessors 11 geht ein Taktsignal vom Prozessor 11 über die Leitung 35, um die zweite Ebene des Registers 30 und das Register 31 für die aktiven Kontexte aufzufordern, eine Kopie ihres jeweiligen Inhalts über eine Menge von Logisch-ODER- Schaltkreisen 36 zu übertragen, wobei jeder Logisch-ODER- Schaltkreis gleich positionierte Bits der beiden Register, also logisch zu demselben Kontext gehörende Bitsignale, mischt und die gemischten Bitsignale an den Finde-Höchsten- Schaltkreis 37 weiterleitet, der nachstehend als FH- Schaltkreis 37 bezeichnet wird. Der FH-Schaltkreis 37 übernimmt das gemischte Bitsignal für die weiter unten beschriebene Verarbeitung in ein geeignetes Register (nicht dargestellt). Bei dieser Verarbeitung wird festgestellt, welches der gemischten Bitsignale (aktiver Kontext oder Unterbrechungsanforderung) die höchste gefundene Unterbrechungspriorität aufweist. Nach der Feststellung des aktiven Kontexts oder der empfangenen Anforderung mit der höchsten Priorität gibt der FH-Schaltkreis zum Prioritätsvergleich zwischen der Feststellung der Priorität des Registers 32 für den aktuellen Kontext dem Kodierungsschaltkreis 38 an, welches Bit (d.h. welcher Kontext) die höchste Priorität hat. Zuerst wird das Bit durch den Kodierungsschaltkreis 38 in eine Adreßmenge kodiert, die die Adresse des Speicherbereichs 15 bezeichnet, in dem das PSW für die identifizierte höchste gefundene Priorität gespeichert werden soll. Der Vergleichsschaltkreis 39 empfängt das Bit, das den aktuellen Kontext anzeigt, über den Bus 40 aus dem Register 32. Der Vergleich 32 kodiert das Bit in die Adresse des Speicherbereichs 15 für den aktuellen Kontext. Die Adressen des Speicherbereichs 15 für die PSWS des Kontext werden in einer vorbestimmten Reihenfolge angeordnet. Wenn der Vergleichsschaltkreis 39 feststellt, daß die Adresse aus dem Kodierschaltkreis 38 anders lautet als die Adresse, die von dem Register 32 für den aktuellen Kontext empfangen wurde, und die höchste gefundene Unterbrechung eine höhere Priorität hat als die Priorität des aktuellen Kontexts, wird ein gültiges Unterbrechungssignal erzeugt. Das gültige Unterbrechungssignal wird über die Leitung 41 dem Chipprozessor 11 zugeleitet. Im wesentlichen ebenso wird der Inhalt des Registers 32 für den aktuellen Kontext über UND-Schaltkreise 42 aktualisiert, die durch das gültige Unterbrechungssignal an den zu der höchsten gefundenen Priorität gehörenden Kontext freigegeben werden. Statt dessen kann der Chipprozessor 11 auch den Inhalt des Registers 32 für den aktuellen Kontext aktualisieren, so daß dieses den bevorstehenden PSW-Swap reflektiert. Zudem wird das Adreßregister 44 freigegeben, so daß es die Adresse des neuen Speicherbereichs 15 empfängt, um den Chipprozessor 11 freizugeben, damit er einen bekannten PSW-Swap zwischen den beiden Kontexten - dem unterbrechenden und dem unterbrochenen - veranlaßt. Nun wird das Register 31 für die aktiven Kontexte über den Bus 14 von dem Chipprozessor 11 aktualisiert, so daß es die Beachtung der Unterbrechung reflektiert, die einen beruhigten Kontext aktiviert. Die Bitposition in der zweiten Ebene des Registers 30, die zu dem unterbrechenden Kontext (Kontext mit höchster gefundener Priorität) gehört, wird durch den Ablauf der Phasenhaltezeit zurückgesetzt.
- Die Operation des FH-Schaltkreises 37 kombiniert die Identifizierung der von den Registern 30, 31 empfangenen Kontexte mit zugewiesenen Kontextprioritäten, die in den Kontextprioritätsregistern 45 gespeichert sind. Der Chipprozessor greift vorzugsweise während der Systeminitialisierung (z.B. POR) über den Bus 14 auf die Register 45 zu, um diese einzustellen und so den Kontexten anfangs und dynamisch Prioritäten zuzuweisen. Die dynamische Zuweisung reflektiert den aktuellen Zustand des aktuell laufenden Kontexts. In einigen Fällen verändert unter Umständen der aktuell laufende Kontext nicht dynamisch alle Kontextprioritäten. Einige der Kontextprioritäten können noch den Zustand eines früher gelaufenen Kontexts reflektieren, der entweder beendet ist oder unterbrochen wurde. Jedes der Register 45 hat eine vorbestimmte Anzahl von Bitpositionen, jeweils eine Bitposition pro Kontext. Je niedriger die Nummer der Bitposition in einem Register ist, desto höher ist die Priorität, die diese Position anzeigt. Die Bitpositionen mit der niedrigsten und mit der höchsten Nummer lassen sich nicht einstellen, sondern sind für Traps bzw. für die Hintergrundverarbeitung reserviert. Während eines POR wird der Inhalt der Register gelöscht, wozu der Chipprozessor 11 wieder die anfangs zugewiesenen Prioritäten herstellen muß. Das Bit mit der niedrigsten Nummer, das in den jeweiligen Registern 45 gesetzt ist, gibt die Priorität für den entsprechenden Kontext an. Wenn in einem Register kein Bit gesetzt ist, ist dem zugehörigen Kontext keine Priorität zugewiesen. d.h. wenn keine externe Einheit angeschlossen ist, die mit einem solchen Kontext zusammenarbeiten würde, oder aus irgendeinem Grund, der über die vorliegende Beschreibung hinausgeht, die Unterbrechung durch einen Kontext unterbunden oder maskiert werden soll, dann werden Unterbrechungen, die für diesen Kontext bestimmt sind, effektiv maskiert 81 indem das betreffende Register 45 gelöscht oder nicht gesetzt wird. In verschiedenen Kontextprioritätsregistern dürfen unter Umständen einige Bitpositionen einem solchen Kontext nicht zugewiesen werden. Diese Kontrolle maskiert bestimmte Prioritäten aus einem Kontext; solche Dinge können beim Design nach Wahl festgelegt werden.
- Der FH-Schaltkreis für alle aktiven Kontexte und gespeicherten Unterbrechungsanforderungen, die über Logisch- ODER-Schaltkreise 36 empfangen werden, greifen auf das entsprechende Kontextprioritätsregister 45 zu, um festzustellen, welche Priorität dem Kontext zugewiesen wurde. Die Abfrage der Register 45 offenbart, welche der evaluierten Kontexte die höchste zugewiesene Priorität hat, damit der FH- Schaltkreis 37 das oben beschriebene Signal an den Kodierungsschaltkreis 38 geben kann. Es dürfte klar sein, daß zur Evaluierung der Prioritätsabfrage innerhalb des FH- Schaltkreises 37 verschiedene Designs und Verfahrensweisen eingesetzt werden können. Das Maschinenoperationsdiagramm in Fig. 6 zeigt das Logikdesign des FH-Schaltkreises 37.
- Die Software-Interaktion des Chipprozessors 11 mit der Unterbrechungsverarbeitung ist in Fig. 3 in stark vereinfachter Form dargestellt. Bei der Reaktion auf ein gültiges Unterbrechungssignal auf der Leitung 41 reagiert der Chipprozessor 11 in Schritt 50 auf das Signal an das Leseregister 44 auf der Leitung 41, um sich auf einen PSW- Swap im nächsten Maschinentakt in Schritt 51 vorzubereiten. Für Schritt 51 wird kein Befehl aus dem Befehlsspeicher 12 geholt. Nach Schritt 51 im zweiten Maschinentakt der Unterbrechungsverarbeitung arbeitet der Chipprozessor 11 im unterbrechenden Kontext. Wenn der Chipprozessor 11 die Verarbeitung für einen gegebenen Kontext beendet hat, wird dieser Kontext in Schritt 52 beruhigt. In diesem Schritt liefert der Chipprozessor 11 ein Beruhigungssignal über die Leitung 47 an die Unterbrechungsschaltkreise 18, um das Register 32 für den aktuellen Kontext auf Hintergrundverarbeitung (gelöscht) zu stellen und das entsprechende aktive Bit im Register 31 für die aktiven Kontexte zurückzusetzen, so daß während des Takts der Operation des Schaltkreises 18 jeder aktuelle aktive Kontext mit höchster Priorität oder jede empfangene Unterbrechungsanforderung zum unterbrechenden Kontext werden kann, wie oben beschrieben. Die Leitung 47 überträgt das Beruhigungssignal zum Löschen des Registers 32 für den aktuellen Kontext. Die Leitung 48 stellt das Zurücksetzen des zugehörigen Bits im Register 31 für die aktiven Kontexte dar. Die Software, die im Chipprozessor 11 läuft, löst also mit anderen Worten nur die Beruhigung eines Kontexts aus.
- Die allgemeinen Maschinenoperationen des FH-Schaltkreises 37 sind in Fig. 4 dargestellt. Der Maschinenschritt 60 stellt den asynchronen Empfang von Unterbrechungsanforderungen durch das Register 30 dar. In einem ersten Maschinenzyklus 61 führt der Schaltkreis 18 gleichzeitig mit dem Software-Maschinenschritt 50 die als nächstes beschriebenen Maschinenschritte aus. In Schritt 62 empfangen die Schaltkreise 18 die Ausgaben der Logisch-ODER-Schaltkreise 36 als Eingabesignale aus dem Unterbrechungsregister 30 und dem Register 31 für die aktiven Kontexte. In Schritt 63 stellen die Schaltkreise 18 fest, welcher der Kontexte, wenn überhaupt, die von den empfangenen Eingabesignalen dargestellt werden, die höchste zugewiesene Priorität aufweist. Anschließend wird in dem Entscheidungsschritt 64 (der zur Operation des Vergleichsschaltkreises 39 gehört) gemessen, ob die in Schritt 63 festgestellte höchste zugewiesene Priorität höher ist als die Prioritätsstufe des aktuell laufenden Kontexts. Wenn die aktuelle Prioritätsstufe höher oder ebenso hoch ist wie die gefundene Prioritätsstufe, werden keine Maßnahmen ergriffen, wie durch die Leitung 65 angezeigt wird, d.h. es wird kein gültiges Unterbrechungssignal erzeugt. Wenn die Priorität des aktuellen Kontexts nicht höher oder ebenso hoch ist wie die gefundene Priorität, wird im Maschinenschritt 66 die Bitposition in der zweiten Ebene des Registers 30 zurückgesetzt, und über die Leitung 41 wird ein gültiges Unterbrechungssignal zum "Einstellen des neuen Kontexts" ausgegeben. Anschließend führt in Schritt 52 der Chipprozessor 11 in dem darauffolgenden Maschinentakt 67 den bekannten PSW-Swap durch.
- Fig. 5 ist ein Maschinenoperationsdiagramm, das in vereinfachter Form die Beruhigung eines Kontexts darstellt. Im Maschinenschritt 70 entscheidet der Chipprozessor, einen Kontext zu beenden. Dieser Kontext ist meist der aktuell laufende Kontext, der im Register 32 angegeben ist, womit jedoch keine Beschränkung auf diesen Fall beabsichtigt ist. Von Schritt 70 aus erstreckt sich eine Linie, die das Beruhigungssignal auf der Leitung 47 darstellt. Im nächsten Maschinenschritt 71 setzt das Beruhigungssignal auf der Leitung 47 das Register 32 für den aktuellen Kontext zurück. Im Maschinenschritt 73 wird von dem Beruhigungssignal, das über die Leitung 47 übermittelt wird, das zugehörige aktive Bit im Register 31 für die aktiven Kontexte zurückgesetzt (siehe Linie 48 in Fig. 2). Der Prozessor 11 kann das aktive Bit über den Bus 14 zurücksetzen. Im Maschinenschritt 74 befindet sich der Prozessor 11 im Hintergrundkontext (niedrigste Prioritätsstufe). Im Maschinenschritt 75 dann finden die Unterbrechungsschaltkreise 18 wieder den aktiven Kontext oder die Unterbrechung mit der höchsten Priorität, wie oben beschrieben. Dabei dürfte klar sein, daß der Prozessor 11 das Register 32 während des Schrittes 52 des PSW-Swaps setzen kann, anstatt die Einstellung durch elektronische Schaltkreise vornehmen zu lassen. Zudem könnte der Prozessor 11 während des Maschinenschrittes 70, jedoch bevor irgendwelche Maßnahmen zum Einstellen des Registers 32 für den aktuellen Kontext durch die Schaltkreise 18 ergriffen werden, das Register 32 für den aktuellen Kontext auf die Hintergrundstufe (niedrigste Priorität) einstellen; es wird vorgezogen, den Prozessor 11 von solchen Aktivitäten zu entlasten.
- Die Maschinenoperationen des FH-Schaltkreises 37 werden anschließend unter Bezugnahme auf Fig. 6 beschrieben. Der Beginn der Operationen wird durch die Linie 80 angezeigt. Im Leseschritt 81 werden die Ausgaben der Logisch-ODER- Schaltkreise 36 erfaßt. In Schritt 82 zum Abstimmen von Unterbrechung/Kontext auf die Priorität wird das POR-Trap-Bit beim ersten Durchlauf der Operationen überprüft. Wenn es gesetzt ist, folgen die Maschinenoperationen dein Weg 83, um ein gültiges Unterbrechungssignal einzurichten, indem der Kodierungsschaltkreis 38 und andere Schaltkreise veranlaßt werden, wie oben beschrieben zu operieren. Wenn POR-Trap nicht gesetzt ist, wird die nächste Bitposition des Halteregisters (nicht dargestellt) des FH-Schaltkreises 37 abgefragt. Ist dieses gesetzt, wird das entsprechende Register 45 abgefragt, um die zugehörige Prioritätsstufe festzustellen. Im Maschinenschritt 84 wird die abgefragte Prioritätsstufe mit dem Inhalt eines Ein-Byte-Registers (nicht dargestellt) verglichen, das zum Speichern der höchsten Prioritätsstufe dient, die in diesem Operationszyklus bisher festgestellt wurde. Im ersten Durchlauf ist der Inhalt des Ein-Byte-Registers die höchste Zahl, die die Hintergrundverarbeitung darstellt. Er könnte aber auch auf die Priorität des aktuellen Kontexts gesetzt werden. Der Vergleichsschaltkreis 39 liefert nur dann ein gültiges Unterbrechungssignal, wenn die gefundene höchste Priorität höher als die aktuelle Prioritätsstufe ist. Wenn sich bei dem Vergleich in Schritt 84 ergibt, daß die Priorität des gerade überprüften Kontexts niedriger ist als die in dem Ein-Byte- Register gespeicherte Priorität, erfolgen die weiter unten beschriebenen organisatorischen Operationen. Wenn sich bei dem Vergleich in Schritt 84 ergibt, daß die Priorität des gerade überprüften Kontexts höher ist als die in dem Ein- Byte-Register gespeicherte Priorität, werden in Schritt 86 die Priorität des gerade überprüften Kontexts und die Bezeichnung dieses Kontexts in einem Ein-Byte-Register gespeichert. Wenn bei dem Vergleich in Schritt 84 beide Prioritäten gleich hoch sind, werden im Maschinenschritt 87 die Adresse des Kontextregisters 45 (Kontextnummer, nicht Priorität) und die Adresse im Kontextregister 45 für den in dem Ein-Byte-Register bezeichneten Kontext verglichen. Als Entscheidungsoperation wird festgelegt, daß der Kontext mit der niedrigsten Registeradresse 45 (der niedrigsten Kontextnummer) die höchste Priorität hat und eine feste zweitrangige Evaluierung der Priorität die Zuweisung mehrerer Kontexte zu der gleichen Prioritätsstufe erlaubt. Wenn die Adresse des gerade evaluierten Kontexts höher ist, erfolgen die weiter unten beschriebenen organisatorischen Operationen. Anderenfalls, wenn die Adresse des gerade evaluierten Kontexts niedriger ist (höhere Priorität), werden diese Adresse und diese Prioritätsstufe in Schritt 88 in einem Ein- Byte-Register gespeichert. Die organisatorischen Operationen beginnen bei Schritt 84, 86, 87 oder 88. In Schritt 90 wird festgestellt, ob weitere Kontexte/Aufforderungen, die von den Registern 30, 31 empfangen wurden, überprüft werden müssen. Wenn nicht, gehen die Maschinenoperationen über die Linie 91 zu Schritt 64. Das nächste Bit, in Schritt 92 identifiziert, wird dann in Schritt 81 aus den Eingangssignalen gewonnen, und die Schleife der Operationen wird wiederholt 81 bis festgestellt wird 81 daß alle gesetzten Bits, die von den FH- Schaltkreisen 37 empfangen wurden, überprüft sind. Die höchste gefundene Angabe wird dann durch den FH-Schaltkreis 37 an den Kodierungsschaltkreis 38 übertragen.
Claims (7)
1. Datenprozessor-Unterbrechungslogik (18), die separat
eine Aufzeichnung darüber gespeichert hält, welche
Prioritäten Prozessorkontexte haben, welche Kontexte
aktiv sind, welcher Kontext der aktuell laufende Kontext
ist und welche Kontexte die Unterbrechung des aktuellen
Kontexts anfordern, und ständig die Priorität des
aktuellen Kontexts und die des anfordernden aktiven
Kontexts mit der höchsten Priorität vergleicht, wie
durch Kombinieren der gespeicherten Aufzeichnungen
festgestellt wird, wobei die Unterbrechung
gültiggemacht -freigegeben - wird, wenn ihre Priorität die höhere ist.
2. Ein Datenprozessor mit einer Unterbrechungslogik gemäß
Anspruch 1, der in Kombination umfaßt:
einen Unterbrechungsspeicher (30), der Angaben von
Unterbrechungssignalen speichert;
einen Speicher (31) für die aktiven Kontexte, der
Angaben aller Kontexte speichert, die aktuell für den
Prozessor aktiv sind;
einen Prioritätsspeicher (45), der Kontextprioritäten
speichert;
einen Speicher (32) für den aktuellen Kontext, der eine
Identifizierung des aktuellen Kontexts speichert, in dem
der Prozessor gerade läuft;
eine Findungslogik (37), die operativ mit dem
Unterbrechungsspeicher, dem Speicher für die aktiven Kontexte
und dem Prioritätsspeicher verbunden ist, die
gespeicherten Angaben von ihnen erhält und feststellt,
welcher aktive Kontext, der eine
Unterbrechungsanforderung angibt, die höchste Priorität hat;
eine Logik (41) zum Gültigmachen von Unterbrechungen,
die mit dem Prioritätsspeicher und mit dem Speicher für
den aktuellen Kontext verbunden ist, zum
Prioritätsvergleich zwischen dem Kontext mit der
höchsten Priorität, der von der Findungslogik angegeben
wird, und der Priorität des aktuellen Kontexts, um eine
gültige Unterbrechung anzugeben, wenn die von der
Findungslogik angegebene Priorität höher ist als die
Priorität des aktuellen Kontexts;
eine Logik, die mit der Logik zum Gültigmachen von
Unterbrechungen verbunden ist, zum Reagieren auf die
Angabe der gültigen Unterbrechung, um den programmierten
Prozessor (11) zu unterbrechen, und
eine Aktivierungslogik, die mit allen obengenannten
Logiken verbunden ist, zum Betätigen dieser Logiken, um
festzustellen, ob eine gespeicherte Angabe eines
Unterbrechungssignals eine gültige Unterbrechung darstellt.
3. Ein Prozessor nach Anspruch 2, bei dem der
Prioritätsspeicher (45) ein adressierbares Kontextregister für
jeden der Kontexte aufweist, wobei jede der Adressen des
Kontextregisters eine sekundäre Unterbrechungspriorität
darstellt, jedes der Kontextregister eine primäre
Unterbrechungspriorität des Kontexts speichert und eine
Auflösungslogik in der Findungslogik vorhanden ist, die
darauf reagiert, daß zwei der Kontexte dieselbe
gespeicherte Primärunterbrechungspriorität aufweisen, um
die Adressen der zwei Kontextregister für die zwei
Kontexte zu vergleichen, und ein Kontextregister, das
eine vorbestimmte Adreßbeziehung der zwei
Kontextregister
aufweist, um den Kontext anzugeben, der zu dem
gewählten Kontextregister gehört, als den Kontext mit
der höheren Priorität zwischen den zwei Kontexten mit
identischer Primärunterbrechungspriorität zu wählen.
4. Ein Prozessor nach Anspruch 3, bei dem der Speicher (31)
für die aktiven Kontexte, der Speicher (32) für den
aktuellen Kontext und die Kontextregister des
Prioritätsspeicher (45) durch den Prozessor (11) so
adressierbar sind, daß der Inhalt des Speichers für die
aktiven Kontexte, des Speichers für den aktuellen
Kontext und des Prioritätsspeichers durch eine
Programmierung eingestellt werden können 81 die im
Prozessor ausgeführt wird.
5. Ein Prozessor nach Anspruch 4, der ferner eine
Endkontextlogik umfaßt, die mit dem Speicher (31) für die
aktiven Kontexte und mit der Findungslogik verbunden
ist, um diese zu veranlassen, eine Angabe des aktuellen
Kontexts aus dem Speicher für die aktiven Kontexte zu
löschen, und die Findungslogik (37) zu veranlassen, den
Kontext oder das Unterbrechungssignal mit der höchsten
Priorität zu identifizieren, und mit der Logik zum
Gültigmachen von Unterbrechungen verbunden ist, um den von
der Findungslogik identifizierten Kontext mit der
höchsten Priorität zum neuen aktuellen Kontext zu machen.
6. In einem Datenprozessor ein Verfahren zur Verarbeitung
von Unterbrechungssignalen, um festzustellen, ob eine
Unterbrechung stattfinden soll, wobei das Verfahren
folgende von der Maschine ausgeführten Schritte umfaßt:
Festlegen mehrerer operationaler Kontexte für den
programmierten Prozessor sowie primärer und sekundärer
Unterbrechungsprioritäten für jeden der Kontexte;
Speichern eines oder mehrerer Unterbrechungssignale, die
Anforderungen zur Unterbrechung des Prozessorbetriebs
zur Veränderung der Befehlsausführung zu einem Kontext
anzeigen, der zu den jeweils gespeicherten
Unterbrechungssignalen gehört;
Führen einer Anzeige aller aktiven Kontexte, in denen
der programmierte Prozessor aktuell Befehle ausführen
kann, aber nicht muß, und einer Identifikation des
aktuellen Kontexts, in dem der programmierte Prozessor
Befehle ausführt;
während vorbestimmter Operationszyklen des
programmierten Prozessors Vergleichen aller aktiven Kontexte und
gespeicherter Unterbrechungssignale miteinander mit
Feststellung der jeweiligen Primär- und
Sekundärpriorität zum Angeben des aktiven Kontexts oder des
Unterbrechungssignals mit der höchsten Priorität; und
Vergleichen des aktiven Kontexts oder des
Unterbrechungssignals mit der höchsten Priorität mit dem
aktuellen Kontext sowohl in primärer als auch in
sekundärer Priorität und Unterbrechen des programmierten
Prozessors, wenn der angegebene aktive Kontext oder das
Unterbrechungssignal mit der höchsten Priorität eine
höhere Priorität hat als der aktuelle Kontext.
7. Ein Verfahren nach Anspruch 6, das ferner das Beruhigen
des aktuellen Kontexts und das Auswählen des angegebenen
aktiven Kontexts mit der höchsten Priorität oder des vom
Unterbrechungssignal angegebenen Kontexts als aktuellen
Kontext umfaßt.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/310,409 US5057997A (en) | 1989-02-13 | 1989-02-13 | Interruption systems for externally changing a context of program execution of a programmed processor |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69023018D1 DE69023018D1 (de) | 1995-11-23 |
DE69023018T2 true DE69023018T2 (de) | 1996-05-30 |
Family
ID=23202368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69023018T Expired - Lifetime DE69023018T2 (de) | 1989-02-13 | 1990-02-06 | Prozessor-Unterbrechungssteuerung. |
Country Status (4)
Country | Link |
---|---|
US (1) | US5057997A (de) |
EP (1) | EP0383474B1 (de) |
JP (1) | JPH0612527B2 (de) |
DE (1) | DE69023018T2 (de) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5142677A (en) * | 1989-05-04 | 1992-08-25 | Texas Instruments Incorporated | Context switching devices, systems and methods |
US5504904A (en) * | 1994-02-23 | 1996-04-02 | International Business Machines Corporation | Personal computer having operating system definition file for configuring computer system |
US6601081B1 (en) * | 1995-06-30 | 2003-07-29 | Sun Microsystems, Inc. | Method and apparatus for context maintenance in windows |
US6385645B1 (en) * | 1995-08-04 | 2002-05-07 | Belle Gate Investments B.V. | Data exchange system comprising portable data processing units |
ES2153455T3 (es) | 1995-08-04 | 2001-03-01 | Belle Gate Invest B V | Sistema de intercambio de datos que incluye unidades portatiles de procesamiento de datos. |
US5898864A (en) * | 1995-09-25 | 1999-04-27 | International Business Machines Corporation | Method and system for executing a context-altering instruction without performing a context-synchronization operation within high-performance processors |
US5708808A (en) * | 1996-02-27 | 1998-01-13 | Shoichi; Horio | Method and apparatus for concurrency with critical regions |
US5933627A (en) * | 1996-07-01 | 1999-08-03 | Sun Microsystems | Thread switch on blocked load or store using instruction thread field |
US5835788A (en) * | 1996-09-18 | 1998-11-10 | Electronics For Imaging | System for transferring input/output data independently through an input/output bus interface in response to programmable instructions stored in a program memory |
US6148326A (en) * | 1996-09-30 | 2000-11-14 | Lsi Logic Corporation | Method and structure for independent disk and host transfer in a storage subsystem target device |
US6247040B1 (en) * | 1996-09-30 | 2001-06-12 | Lsi Logic Corporation | Method and structure for automated switching between multiple contexts in a storage subsystem target device |
US6081849A (en) * | 1996-10-01 | 2000-06-27 | Lsi Logic Corporation | Method and structure for switching multiple contexts in storage subsystem target device |
US6098167A (en) * | 1997-03-31 | 2000-08-01 | International Business Machines Corporation | Apparatus and method for fast unified interrupt recovery and branch recovery in processors supporting out-of-order execution |
US5913048A (en) * | 1997-03-31 | 1999-06-15 | International Business Machines Corporation | Dispatching instructions in a processor supporting out-of-order execution |
US5887161A (en) * | 1997-03-31 | 1999-03-23 | International Business Machines Corporation | Issuing instructions in a processor supporting out-of-order execution |
US5870582A (en) * | 1997-03-31 | 1999-02-09 | International Business Machines Corporation | Method and apparatus for completion of non-interruptible instructions before the instruction is dispatched |
US5805849A (en) * | 1997-03-31 | 1998-09-08 | International Business Machines Corporation | Data processing system and method for using an unique identifier to maintain an age relationship between executing instructions |
US6192442B1 (en) * | 1998-04-29 | 2001-02-20 | Intel Corporation | Interrupt controller |
US6499050B1 (en) * | 1998-06-09 | 2002-12-24 | Advanced Micro Devices, Inc. | Means used to allow driver software to select most appropriate execution context dynamically |
CA2345794A1 (en) | 1998-09-29 | 2000-04-06 | Sun Microsystems, Inc. | Superposition of data over voice |
US6633984B2 (en) | 1999-01-22 | 2003-10-14 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier on a small footprint device using an entry point object |
US6823520B1 (en) | 1999-01-22 | 2004-11-23 | Sun Microsystems, Inc. | Techniques for implementing security on a small footprint device using a context barrier |
US7093122B1 (en) | 1999-01-22 | 2006-08-15 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier in a small footprint device using shared object interfaces |
US6922835B1 (en) | 1999-01-22 | 2005-07-26 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier on a small footprint device using run time environment privileges |
US6907608B1 (en) * | 1999-01-22 | 2005-06-14 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier in a small footprint device using global data structures |
WO2000077640A1 (en) * | 1999-06-10 | 2000-12-21 | Belle Gate Investment B.V. | Arrangements storing different versions of a set of data in separate memory areas and method for updating a set of data in a memory |
WO2001040910A1 (en) | 1999-12-06 | 2001-06-07 | De Jong, Eduard, Karel | Computer arrangement using non-refreshed dram |
AU776977B2 (en) | 1999-12-07 | 2004-09-30 | Sun Microsystems, Inc. | Computer-readable medium with microprocessor to control reading and computer arranged to communicate with such medium |
EP1236181B1 (de) * | 1999-12-07 | 2006-08-02 | Sun Microsystems Inc. | Identifizierungsvorrichtung mit gesichertem foto, sowie mittel und verfahren zum authentifizieren dieser identifizierungsvorrichtung |
US6845419B1 (en) * | 2000-01-24 | 2005-01-18 | Freescale Semiconductor, Inc. | Flexible interrupt controller that includes an interrupt force register |
KR100716039B1 (ko) | 2000-07-20 | 2007-05-08 | 벨 게이트 인베스트먼트 비. 브이. | 통신 장치의 방법 및 시스템과 보호된 데이터 전송을 위한장치 |
US6772258B2 (en) | 2000-12-29 | 2004-08-03 | Intel Corporation | Method and apparatus for sharing an interrupt between disk drive interfaces |
US6742060B2 (en) * | 2000-12-29 | 2004-05-25 | Intel Corporation | Look-up table based circuitry for sharing an interrupt between disk drive interfaces |
US6795884B2 (en) | 2000-12-29 | 2004-09-21 | Intel Corporation | Read-only memory based circuitry for sharing an interrupt between disk drive interfaces |
US7031989B2 (en) * | 2001-02-26 | 2006-04-18 | International Business Machines Corporation | Dynamic seamless reconfiguration of executing parallel software |
US6807595B2 (en) | 2001-05-10 | 2004-10-19 | Qualcomm Incorporated | Mobile communication device having a prioritized interrupt controller |
US20030177280A1 (en) * | 2002-03-12 | 2003-09-18 | Webster Steve R. | Imbedded interrupt handler |
US7272664B2 (en) * | 2002-12-05 | 2007-09-18 | International Business Machines Corporation | Cross partition sharing of state information |
US7117319B2 (en) * | 2002-12-05 | 2006-10-03 | International Business Machines Corporation | Managing processor architected state upon an interrupt |
US7493478B2 (en) * | 2002-12-05 | 2009-02-17 | International Business Machines Corporation | Enhanced processor virtualization mechanism via saving and restoring soft processor/system states |
US6981083B2 (en) * | 2002-12-05 | 2005-12-27 | International Business Machines Corporation | Processor virtualization mechanism via an enhanced restoration of hard architected states |
US7065595B2 (en) * | 2003-03-27 | 2006-06-20 | International Business Machines Corporation | Method and apparatus for bus access allocation |
BE1015508A3 (nl) | 2003-05-08 | 2005-05-03 | Svensson Ludvig Bv | Doek bestemd om voorzien te worden van minstens een permanente vouw en werkwijze daarbij toegepast. |
WO2005020065A2 (en) * | 2003-08-25 | 2005-03-03 | Koninklijke Philips Electronics, N.V. | Dynamic retention of hardware register content in a computer system |
US7424620B2 (en) * | 2003-09-25 | 2008-09-09 | Sun Microsystems, Inc. | Interleaved data and instruction streams for application program obfuscation |
US8220058B2 (en) * | 2003-09-25 | 2012-07-10 | Oracle America, Inc. | Rendering and encryption engine for application program obfuscation |
US7353499B2 (en) | 2003-09-25 | 2008-04-01 | Sun Microsystems, Inc. | Multiple instruction dispatch tables for application program obfuscation |
US7415618B2 (en) * | 2003-09-25 | 2008-08-19 | Sun Microsystems, Inc. | Permutation of opcode values for application program obfuscation |
US7363620B2 (en) * | 2003-09-25 | 2008-04-22 | Sun Microsystems, Inc. | Non-linear execution of application program instructions for application program obfuscation |
US20050069138A1 (en) * | 2003-09-25 | 2005-03-31 | Sun Microsystems, Inc., A Delaware Corporation | Application program obfuscation |
TW201237630A (en) * | 2011-03-01 | 2012-09-16 | Wistron Corp | Method and computer system for processing data in a memory |
GB2514126A (en) * | 2013-05-14 | 2014-11-19 | Ibm | Interruption of chip component managing tasks |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3599162A (en) * | 1969-04-22 | 1971-08-10 | Comcet Inc | Priority tabling and processing of interrupts |
US3866181A (en) * | 1972-12-26 | 1975-02-11 | Honeywell Inf Systems | Interrupt sequencing control apparatus |
FR2269150B1 (de) * | 1974-04-25 | 1977-10-28 | Honeywell Bull Soc Ind | |
GB1529581A (en) * | 1974-10-29 | 1978-10-25 | Xerox Corp | Data processing apparatus |
DE2754890C2 (de) * | 1977-12-09 | 1982-10-28 | Ibm Deutschland Gmbh, 7000 Stuttgart | Einrichtung zur Programmunterbrechung |
JPS5530730A (en) * | 1978-08-22 | 1980-03-04 | Nec Corp | Data processor |
US4257096A (en) * | 1978-10-23 | 1981-03-17 | International Business Machines Corporation | Synchronous and conditional inter-program control apparatus for a computer system |
US4286322A (en) * | 1979-07-03 | 1981-08-25 | International Business Machines Corporation | Task handling apparatus |
US4384324A (en) * | 1980-05-06 | 1983-05-17 | Burroughs Corporation | Microprogrammed digital data processing system employing tasking at a microinstruction level |
EP0048767B1 (de) * | 1980-09-27 | 1985-03-20 | Ibm Deutschland Gmbh | Prioritätsstufengesteuerte Unterbrechungseinrichtung |
JPS58115552A (ja) * | 1981-12-28 | 1983-07-09 | Fujitsu Ltd | 割込み制御方式 |
US4636944A (en) * | 1984-01-17 | 1987-01-13 | Concurrent Computer Corporation | Multi-level priority micro-interrupt controller |
US4658351A (en) * | 1984-10-09 | 1987-04-14 | Wang Laboratories, Inc. | Task control means for a multi-tasking data processing system |
US4736318A (en) * | 1985-03-01 | 1988-04-05 | Wang Laboratories, Inc. | Data processing system having tunable operating system means |
US4734882A (en) * | 1985-04-01 | 1988-03-29 | Harris Corp. | Multilevel interrupt handling scheme |
JPH0792782B2 (ja) * | 1985-09-30 | 1995-10-09 | 富士通株式会社 | 処理実行システム |
US4805107A (en) * | 1987-04-15 | 1989-02-14 | Allied-Signal Inc. | Task scheduler for a fault tolerant multiple node processing system |
-
1989
- 1989-02-13 US US07/310,409 patent/US5057997A/en not_active Expired - Fee Related
-
1990
- 1990-02-06 DE DE69023018T patent/DE69023018T2/de not_active Expired - Lifetime
- 1990-02-06 EP EP90301251A patent/EP0383474B1/de not_active Expired - Lifetime
- 1990-02-13 JP JP2029760A patent/JPH0612527B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0383474A2 (de) | 1990-08-22 |
EP0383474A3 (de) | 1991-12-27 |
EP0383474B1 (de) | 1995-10-18 |
DE69023018D1 (de) | 1995-11-23 |
JPH02267634A (ja) | 1990-11-01 |
US5057997A (en) | 1991-10-15 |
JPH0612527B2 (ja) | 1994-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69023018T2 (de) | Prozessor-Unterbrechungssteuerung. | |
DE3751164T2 (de) | Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten. | |
DE3876780T2 (de) | Mikrorechner mit eingebauter chipauswahl und programmierbarer busdehnung. | |
DE3889578T2 (de) | Vorrichtung zur Sicherung und Rückspeicherung einer Registerinformation. | |
DE3854594T2 (de) | Programmierbare Steuerung mit parallelen Prozessoren. | |
DE3685876T2 (de) | Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher. | |
DE3852928T2 (de) | Datenprozessor mit A/D-Umsetzer, um mehrere analoge Eingabekanäle in Digitaldaten umzusetzen. | |
DE69032334T2 (de) | Virtuelles Computersystem mit Ein-/Ausgabeunterbrechungssteuerung | |
DE69906156T2 (de) | Mikroprozessorvorrichtung mit programmierbaren wartezuständen | |
DE69630126T2 (de) | Historische zustandinformation verwendendes entscheidungsprotokoll für zugriff auf ein geteiltes speichergebiet | |
DE69926365T2 (de) | Software-konfigurierbare technik zum priorisieren von unterbrechungen in einem auf einem mikroprozessor basierten system | |
DE69839194T2 (de) | Gerät und verfahren zum initieren hardwarevorrangsmanagement durch softwarekontrollierten registerzugriff | |
EP0014850B1 (de) | Einrichtung zur Erweiterung des Standard-Makroinstruktionssatzes in einer Datenverarbeitungsanlage | |
DE2744531A1 (de) | Elektronische datenverarbeitungsanlage | |
DE2411963B2 (de) | Datenverarbeitungsanlage | |
DE69127771T2 (de) | Datenübertragungssteuerungsvorrichtung | |
DE3502147C2 (de) | ||
DE10296959T5 (de) | System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen | |
DE68924719T2 (de) | Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung. | |
DE2054830C3 (de) | Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge | |
DE69025650T2 (de) | Multiprozessorsystem mit Vektorpipelinen | |
DE68924992T2 (de) | Symmetrische Steuerungsanordnung für Multiverarbeitung. | |
DE69119149T2 (de) | Struktur zur direkten Speicher-zu-Speicher-Übertragung | |
DE3750045T2 (de) | Unterbrechungssteuerungsvorrichtung für eine virtuelle Maschine mit einer Vielzahl von Verarbeitungseinheiten. | |
DE2533737A1 (de) | Datenprozessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8330 | Complete renunciation | ||
8330 | Complete renunciation |