[go: up one dir, main page]

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
Application number
DE69023018T
Other languages
English (en)
Other versions
DE69023018D1 (de
Inventor
Tai-Lin Chang
Paul Wayne Hunter
Donald John Lang
Stephen Gouze Luning
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE69023018D1 publication Critical patent/DE69023018D1/de
Publication of DE69023018T2 publication Critical patent/DE69023018T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling 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.
DE69023018T 1989-02-13 1990-02-06 Prozessor-Unterbrechungssteuerung. Expired - Lifetime DE69023018T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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