DE69810064T2 - Verfahren und Anordnung zur Veränderung der Durchführung eines Nachfolgebefehls in einem Dataprozessor - Google Patents

Verfahren und Anordnung zur Veränderung der Durchführung eines Nachfolgebefehls in einem Dataprozessor

Info

Publication number
DE69810064T2
DE69810064T2 DE69810064T DE69810064T DE69810064T2 DE 69810064 T2 DE69810064 T2 DE 69810064T2 DE 69810064 T DE69810064 T DE 69810064T DE 69810064 T DE69810064 T DE 69810064T DE 69810064 T2 DE69810064 T2 DE 69810064T2
Authority
DE
Germany
Prior art keywords
instruction
data processor
instructions
interrupt
processing
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 - Fee Related
Application number
DE69810064T
Other languages
English (en)
Other versions
DE69810064D1 (de
Inventor
William C. Moyer
Jeffrey W. Scott
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.)
NXP USA Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Application granted granted Critical
Publication of DE69810064D1 publication Critical patent/DE69810064D1/de
Publication of DE69810064T2 publication Critical patent/DE69810064T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30094Condition code generation, e.g. Carry, Zero flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30079Pipeline control instructions, e.g. multicycle NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Description

    Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf Datenprozessoren und insbesondere auf die Beeinflussung der Abarbeitung von Folgebefehlen in einem Datenprozessor.
  • Hintergrund der Erfindung
  • Da Datenprozessoren mehr und mehr Anwendung in Echtzeit-Steuerungssystemen finden, sind neue Techniken erforderlich, die eine effiziente Nutzung von Systemressourcen sicherstellen. In vielen Multitasking-Systemen beispielsweise gibt es verschiedene Tasks, die sich einige derselben Systemressourcen zu teilen versuchen, wie etwa Speicherplatz, einen Drucker, einen Anschluss oder eine Anzeige. Es ist in solchen Multitasking-Systemen entscheidend, dass die Systemressourcen so effizient wie möglich genutzt werden. Wenn sich beispielsweise mehrere Tasks eine Ressource teilen, muss es eine Möglichkeit geben, festzustellen, welche Task augenblicklich die Ressource nutzt und ob diese Task eine Funktion erfüllt, die nicht gestört werden darf. In vielen Multitasking-Systemen werden hierfür Semaphoren benutzt.
  • Semaphoren sind eine Art Flags oder Zustandsanzeiger, die den momentanen Zustand einer Systemressource widerspiegeln. Üblicherweise zeigt die Zustandsinformation eines Semaphors an, ob eine Systemressource momentan benutzt wird oder nicht. Bei manchen Multitasking-Systemen kann der Semaphor auch Informationen darüber enthalten, welche Task die Ressource augenblicklich nutzt und möglicherweise sogar über den Funktionstyp, der mit der Ressource ausgeführt wird.
  • Beispielsweise kann ein spezieller Speicherplatz als Ort des Semaphors für eine gemeinsame Variable (shared variable) X bestimmt sein. Wenn ein Task die gemeinsame Variable X nutzen will, muss dies Task den Semaphor für die gemeinsame Variable X lesen, indem sie jenen speziellen Speicherplatz ausliest. Der Semaphor der Variablen X umfasst Informationen zu dem Zustand der Variablen X, wie etwa, ob die Variable X derzeit für den exklusiven Zugriff einer besonderen Task reserviert ist. Zeigt der Semaphor der Variablen X an, dass diese derzeit reserviert und daher belegt ist, muss die neue Task warten, Die neue Task kann damit fortfahren, den Semaphor der Variablen X abzufragen, indem sie den Semaphor der Variablen X periodisch ausliest und nachsieht, ob die Variable X noch immer in Benutzung ist oder ob sie zugänglich geworden ist.
  • Zeigt der Semaphor der Variablen X an, dass die Variable X nicht mehr reserviert und daher zugänglich ist, schreibt die wartende Task den Semaphor der Variablen X um, sodass dieser seinen Zustand in "besetzt" oder "nicht zugänglich" ändert. Die wartende Task hat somit die Variable X in effizienter Weise zur Eigenbenutzung blockiert. Keine andere Task kann die Variable X benutzten, solange der Semaphor der Variable X anzeigt, dass die Variable X in Benutzung ist. Sobald die wartende Task ihre Benutzung der Variablen X beendet hat, schreibt sie an den Ort des Semaphors der Variablen X einen neuen Wert, um den Semaphor der Variablen X dahingehend zu ändern, dass er anzeigt, dass die Variable X wieder zugänglich ist.
  • Es gibt ein wesentliches Problem, das bei Systemen entsteht, die Semaphoren für die Zuweisung gemeinsamer Systemressourcen benutzen. Das Problem entsteht, wenn mehr als eine Task den Semaphor der gemeinsamen Ressource abfragen und nachsehen, ob die Ressource schon zugänglich geworden ist. Es sei bespielsweise angenommen, dass Task #1 und Task #2 beide den Semaphor der Variablen X abfragen. Task #1 sei die erste, die den Semaphor der Variablen X ausliest, nachdem dieser so geändert wurde, dass er die Variable X als zugänglich anzeigt. Task #2 liest nun den Semaphor der Variablen X aus und erfährt ebenfalls, dass die Variable X zugänglich ist. Weder Task #1 noch Task #2 ist sich darüber im Klaren, dass mit ihr eine andere Task um die Benutzung der Variablen X konkurriert. Wenn Task #1 einen Interrupt empfängt, muss Task #1 zunächst eine Interrupt-Routine abarbeiten, bevor sie wieder dort ansetzen kann, wo sie aufgehört hat. Inzwischen schreibt Task #2 dem Semaphor der Variablen X einen Wert zu, der anzeigt, dass die Variable X nun belegt ist. Task #2 fährt dann damit fort, die Variable X zu benutzen. Task #1 beendet ihre Interrupt-Routine und setzt dort wieder an, wo sie ihr Software-Programm verlassen hatte. Task #1 hat angehalten in dem Wissen, dass die Variable X zugänglich ist. Task #1 schreibt dem Semaphor der Variablen X also einen Wert zu, der anzeigt, dass die Variable X nun belegt ist und fährt dann damit fort, zu versuchen, die Variable X zu benutzen. Die Variable X wird aber bereits von Task #2 benutzt. Es ergibt sich eine Kollision. In der Folge kann die Variable X verfälscht werden und die Tasks erhalten einen falschen Wert der Variablen X. Es ist daher ein Ansatz von Nöten, der es gestattet, dass mehrere Tasks gemeinsame Ressourcen effektiv und effizient nutzen.
  • Ein Artikel mit dem Titel "Practical considerations for non-blocking concurrent objects" in Proceedings of the International Conference on Distributed Computing Systems, US Los Alamitos, IEEE Comp. Soc. Press, Vol CONF. 13, Seiten 264-273, lehrt Compare-And-Swap-Operationen, einschließlich der Benutzung von Test-And-Set und Atomic- Exchange-Grundelementen im Zusammenhang mit zeitgemäßen Shared-Memory-Multiprozessoren. Die Referenz "Implementing atomic sequences on uniprocessors using rollforward", Software Practice and Experience, GB, John Wiley & Sons Ltd., Chichester Vol. 26, Nr. 1, Seiten 1-23, lehrt eine nur auf Software gestützte Lösung des Synchronisationsproblems für Uniprozessoren, wobei atomare Sequenzen ohne jeglichen Hardwareschutz durchgeführt werden können und lehrt in dem seltenen Fall des Vorgreifens das Vorspulen einer Sequenz bis zum Ende, wobei die atomare Eigenschaft erhalten bleibt.
  • Kurze Beschreibung der Zeichnungen
  • Fig. 1 illustriert in Form eines Blockdiagramms einen Datenprozessor 10 gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Fig. 2 illustriert in Form eines Blockdiagramms einen Teil der zentralen Berechnungseinheit (CPU: Central Processing Unit) 12 in Fig. 1 gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Fig. 3 illustriert in Tabellenform ein Ausführungsbeispiel eines Befehls zur Verzögerung der Erkennung von Interrupts gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Fig. 4 illustriert in Tabellenform ein Ausführungsbeispiel einer Folge von Befehlen zur Ausführung einer Test- And-Set-Funktion gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Fig. 5 illustriert in Tabellenform ein Ausführungsbeispiel eines Befehls zur Ausführung einer Exchange-Memory- Operand-Funktion gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Fig. 6 illustriert in Tabellenform ein Ausführungsbeispiel eines Befehls zur Ausführung einer Funktion zur Erhöhung eines speicherbasierten Zählers gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Beschreibung einer bevorzugten Ausführungsform
  • Fig. 1 illustriert einen Datenprozessor 10. In einer Ausführungsform schließt der Datenprozessor 10 eine zentrale Berechnungseinheit (CPU: Central Processing Unit) 12, einen Speicher 14, ein Bus-Schnittstellenmodul 16 und andere Module 18 ein, die alle über den Bus 20 bidirektional miteinander verbunden sind. Das Bus-Schnittstellenmodul 16 kann über einen externen Bus 26 extern mit dem Datenprozessor 10 verbunden sein. Die Sonstigen Module 18 können optional durch ein oder mehrere integrierte Schaltkreisterminals 28 extern mit dem Datenprozessor 10 verbunden sein. Der Speicher 14 kann optional über einen oder mehrere integrierte Schaltkreisterminals 24 extern mit dem Datenprozessor 10 verbunden sein. Die zentrale Berechnungseinheit kann optional über einen oder mehrere integrierte Schaltkreisterminals 22 extern mit dem Datenprozessor 10 verbünden sein.
  • Unter weiterer Bezugnahme auf Fig. 1 können alternative Ausführungsformen der vorliegenden Erfindung jede Art von Struktur eines Datenprozessors 10 verwenden. Außerdem kann der Datenprozessor eine breite Vielfalt von Funktionen durchführen können. Beispielsweise kann der Datenprozessor 10 eine RISC-Architektur (Reduced Instruction Set Computer) oder eine Harvard-Architektur verwenden, ein Vektor- Prozessor oder ein SIMD-Prozessor (Single Instruction Multiple Data) sein, Fließkomma-Arithmetik oder digitale Signalverarbeitungsberechnungen durchführen usw.
  • Fig. 2 illustriert einen Teil der CPU 12 von Fig. 1. In einer Ausführungsform enthält die CPU 12 eine Befehls- Pipe-Schaltung 30, eine Befehlsdekodierungsschaltung 32, Register 34, eine arithmetische Logikeinheit (ALU: Arithmetic Logic Unit) 40 und eine CPU-Steuerschaltung 42. Die CPU-Steuerschaltung 42 steht über Steuer-/Zustandssignale 58 bidirektional mit der Befehls-Pipe 30, der Befehlsdekodierung 32, dem Register 34 und der ALU 40 in Verbindung, um Steuerinformationen zu liefern und Zustandsinformationen zu empfangen. Die Befehls-Pipe 30 erhält Anweisungen über den Bus 20. Die Befehls-Pipe 30 kann eine oder mehrere Befehle, die abgearbeitet werden sollen, speichern. Die Befehls-Pipe 30 liefert über die Leiterbahnen 54 Befehle an die Befehlsdekodierungsschaltung 32. Die Befehlsdekodierungsschaltung 32 dekodiert die Befehle, die sie von der Befehls-Pipe 30 empfängt und liefert die Ausgabesignale über die Leiterbahnen 56 an die CPU-Steuerschaltung 42. Die CPU-Steuerschaltung 42 enthält eine Ausnahme-Steuerschaltung 44, eine Interrupt-Steuerschaltung 46 und eine Zähler- /Zeitgeberschaltung 48.
  • Bei einer Ausführungsform der vorliegenden Erfindung ist die Interrupt-Steuerschaltung 46 bidirektional mit der Zähler-/Zeitgeberschaltung 48 verbunden. Die CPU- Steuerschaltung 42 empfängt von dem Bus 20 durch Interruptsignale 50 ein oder mehrerer Interruptanfrage-Signale. Weitere Module (siehe Fig. 1) oder (nicht dargestellte) Schaltungen die an den externen Bus 26 angeschlossen sind, können der Ursprung der einen oder mehreren Interruptanfragen sein, die die CPU-Steuerschaltung 42 durch die Interruptsignale 50 erhält. Die CPU-Steuerschaltung 42 kann durch Interruptsignale 50 dem Bus 20 eine oder mehrere Interrupfbestätigungen oder andere Interrupt-bezogenen Signale liefern. Die CPU-Steuerschaltung 42 kann optional durch Ausnahmesignale 52 ein oder mehrere "Ausnahme-aufgetreten"- Signale empfangen. Bei einigen Ausführungsformen der vorliegenden Erfindung kann die CPU-Steuerschaltung 42 dem Bus 20 eine oder mehrer Ausnahmebestätigungen oder andere Ausnahme-Zustandssignale liefern.
  • Es wird weiter auf Fig. 2 Bezug genommen. Bei einer Ausführungsform der vorliegenden Erfindung ist die Ausnahme-Steuerschaltung 44 mit Ausnahmesignalen 52 und die Interrupt-Steuerschaltung 46 mit Interruptsignalen 50 verbunden. Die Ausnahme-Steuerschaltung 44 und die Interrupt- Steuerschaltung 46 sind beide mit Leiterbahnen 56 und Steuer-/Zustandssignalen 58 verbunden. Die Interrupt- Steuerschaltung 46 kann optional eine Programmeingriffsschaltung 47 enthalten. Bei alternativen Ausführungsformen der vorliegenden Erfindung kann die Programmeingriffsschaltung 47 an anderer Stelle in der CPU-Steuerschaltung 42 angeordnet sein. Die CPU-Steuerschaltung 42 kann optional über integrierte Schaltkreisterminals 22 extern mit dem Datenprozessor 10 verbunden sein. Die Register 34 sind bidirektional mit dem Bus 20 verbunden, um Datenwerte zu liefern und zu empfangen. Die Register 34 enthalten ein Register 36. Das Register 36 enthält ein Bedingungsbit 38. Die Register 34 sind mit der ALU 40 über Leiterbahnen 60 und Leiterbahnen 62 verbunden, um Werte zu liefern. Der Ausgang der ALU 40 ist über Leiterbahnen 64 mit den Registern 34 verbunden, um Ausgabewerte von der ALU 40 zu liefern.
  • Fig. 3 illustriert eine Ausführungsform eines Befehls zur Verzögerung der Erkennung von Interrupts, die von der CPU in Fig. 2 ausgeführt werden kann.
  • Fig. 4 illustriert eine Ausführungsform einer Befehlsfolge, die verwendet werden kann, um eine Test-And-Set- Funktion unter Verwendung des Befehls zur Verzögerung der Erkennung von Interrupts gemäß Fig. 3 durchgeführt werden kann.
  • Fig. 5 illustriert eine Ausführungsform einer Befehlsfolge, die verwendet werden kann, um eine Speicheroperanden-Austausschfunktion ("Exchange-Memory-Operand"-Funktion) unter Verwendung des Befehls zur Verzögerung der Erkennung von Interrupts gemäß Fig. 3 durchzuführen.
  • Fig. 6 illustriert eine Ausführungsform einer Befehlsfolge, die verwendet werden kann, um eine Funktion zu Erhöhung eines speicherbasierten Zählers ("Increment-Memory- Based-Counter"-Funktion) unter Verwendung des Befehls zur Verzögerung der Erkennung von Interrupts gemäß Fig. 3 durchzuführen.
  • Arbeitsweise der bevorzugten Ausführungsformen
  • Die Arbeitsweise der bevorzugten Ausführungsformen soll nun beschrieben werden. Bei einer Ausführungsform stellt die vorliegende Erfindung ein effizientes Verfahren und eine Vorrichtung zur Verzögerung der Erkennung von Interrupts während eines kontrollierten Intervalls zur Verfügung, sei es für eine vorgegebene Zeitspanne oder für eine vorgegebene Anzahl von Befehlen, sodass eine Schreibe/Modifiziere/Lies-Folge von Befehlen ohne besondere Befehle, die die Modifikationsoperation beschreiben, durchgeführt werden kann.
  • Der Ausdruck "Bus" wird hier benutzt für eine Vielzahl von Signalen, oder Leiterbahnen, die benutzt werden können, um eine oder mehrere Arten von Information zu übertragen, wie etwa Daten, Adressen, Steuerbefehle oder Zustände. Die Ausdrücke "auf Ja setzen" und "auf Nein setzen" werden benutzt, wenn auf eine Veränderung eines Signals, eines Zustandsbits, oder einer ähnlichen Einrichtung in einen logisch wahren bzw. einen logisch falschen Zustand Bezug genommen wird. Wenn ein logisch wahrer Zustand die logische Stufe eins hat, dann hat ein logisch falscher Zustand die logische Stufe null. Und wenn ein logisch wahrer Zustand die logische Stufe null hat, dann hat ein logisch falscher Zustand die logische Stufe eins.
  • Es wird auf Fig. 3 Bezug genommen. Bei einer Ausführungsform der vorliegenden Erfindung kann ein Befehl zur Erkennung einer Verzögerung von Interrupts (zum Beispiel IDLY4) benutzt werden, um die Erkennung von Interrupts für eine vorgegebene Anzahl von Befehlen in einem Prozessor zu verzögern, der eine Laden/Speichern-Architektur verwendet, wie etwa der in den Fig. 1 und 2 dargestellte Datenprozessor 10.
  • Bei einer Ausführungsform der vorliegenden Erfindung kann eine vorbestimmte Anzahl von unmittelbar aufeinanderfolgenden Befehlen, während derer die Erkennung von Interrupts aufgeschoben wird, ein fester Wert sein (zum Beispiel vier Befehle). Alternative Ausführungsformen der vorliegenden Erfindung können die vorbestimmte Anzahl von Befehlen auf jede positive ganze Zahl festsetzen. Eine Ausführungsform der vorliegenden Erfindung, die in Fig. 3 dargestellt ist, schiebt die Erkennung von Interrupts für vier Befehle, die unmittelbar nach Ausführung des Befehls zur Verzögerung der Erkennung von Interrupts (IDLY4) ausgeführt werden, auf. Daher wird der Befehl zur Verzögerung der Erkennung von Interrupts ausgeführt, während der folgenden vier Befehle werden dann keine Interrupts erkannt und die Erkennung von Interrupts startet wieder mit Beginn der Ausführung des fünften Befehls, der auf den IDLY4-Befehl folgt.
  • Man beachte, dass manche Ausführungsformen der vorliegenden Erfindung, die als Teil der Abarbeitung von Ausnahmen ausgeführten Befehle als Teil der vorbestimmten Anzahl aufeinanderfolgender Befehle zählen können, während andere Ausführungsformen der vorliegenden Erfindung, die als Teil der Ausnahmebearbeitung ausgeführten Befehle nicht als Teil der vorbestimmten Anzahl aufeinanderfolgender Befehle zählen.
  • Bei einer ersten Ausführungsform der vorliegenden Erfindung wird die Erkennung von Interrupts während einer vorbestimmten Anzahl von Befehlen nach Ausführung des Befehls zur Verzögerung der Erkennung von Interrupts unterbunden oder verzögert. Diese vorbestimmte Anzahl von Befehlen, während derer die Erkennung von Interrupts unterbunden oder verzögert ist, kann auf eine Vielzahl von Weisen festgelegt werden. Beispielsweise kann der Befehl zur Verzögerung der Erkennung von Interrupts selbst ein Feld aufweisen, das die Anzahl von Befehlen definiert, während derer die Erkennung von Interrupts aufgeschoben wird (siehe zum Beispiel das optionale Bestimmungsfeld 70 in Fig. 3). Bei alternativen Ausführungsformen kann ein Steuerregister (zum · Beispiel eines der Register 34 in Fig. 2), das vom Benutzer programmierbar ist, einen Wert enthalten, der die vorbestimmte Anzahl an Befehlen bestimmt, während derer die Erkennung von Interrupts aufgeschoben wird. Alternative Ausführungsformen der vorliegenden Erfindung können jede Art von Verfahren zu Auswahl der vorbestimmten Anzahl von Befehlen anwenden, wie etwa beispielsweise das Liefern einer Befehlszahl über die integrierten Schaltkreisterminals oder über eine maskenprogrammierbare Speichervorrichtung.
  • Bei einer Ausführungsform der vorliegenden Erfindung arbeitet die in Fig. 2 illustrierte Schaltung, wenn der Befehl zur Verzögerung der Erkennung von Interrupts die Erkennung von Interrupts für eine vorbestimmte Anzahl aufeinanderfolgender Befehle aufschiebt, folgender Maßen: Der Befehl zu Verzögerung der Erkennung von Interrupts wird durch die Befehls-Pipe 30 von dem Bus 20 empfangen. Die Befehls- Pipe 30 liefert diesen Befehl dann zu gegebener Zeit an die Befehlsdekodierungsschaltung 32. Die Befehlsdekodierungsschaltung 32 liefert dann ein angemessen dekodiertes Signal für den Befehl zu Verzögerung der Erkennung von Interrupts über die Leiterbahnen 56 an die CPU-Steuerschaltung 42. Die CPU-Steuerschaltung 42 benutzt dann die Interrupt- Steuerschaltung 46, um die Erkennung der über Interruptsignale 50 empfangenen Interruptanfragen zu verzögern. Die CPU-Steuerschaltung 42 schiebt die Erkennung von Interruptanfragen für eine vorbestimmte Anzahl von Befehlen auf. Die CPU-Steuerschaltung 42 kann den Zähler/Zeitgeber 48 sowie Informationen, die sie über Signale 58 von der Befehls- Pipe 30 und der Befehlsdekodierungsschaltung 32 erhält, benützen, um zu bestimmen, wie viele Befehle unmittelbar auf die Ausführung des Befehls zur Verzögerung der Erkennung von Interrupts folgend ausgeführt wurden.
  • Bei einigen Ausführungsformen der vorliegenden Erfindung, insbesondere bei denjenigen, die eine Pipeline- Prozessorarchitektur verwenden, zählt die CPU- Steuerschaltung 42 nur die Folgebefehle, deren Ausführung vollendet ist oder sie kann jegliche Folgebefehle zählen, für die eine vorbestimmte Stufe während des Einlese-, Dekodierungs- oder Ausführungszyklusses jedes Befehls erreicht ist.
  • Anstelle der Verzögerung der Erkennung von Interrupts während einer vorbestimmte Anzahl von Folgebefehlen, können alternative Ausführungsformen der vorliegenden Erfindung eine vorbestimmte Zeitspanne definieren, während derer die Erkennung von Interrupts aufgeschoben wird. Bei diesen alternativen Ausführungsformen, kann ein Zähler oder Zeitgeber (zum Beispiel der Zähler/Zeitgeber 48 in Fig. 2) benutzt werden, um eine vorbestimmte Anzahl von Zeitgeberzyklen zu zählen oder eine vorbestimmte Anzahl von Nanosekunden zu zählen, während derer die Erkennung von Interrupts verzögert wird.
  • Bei einer Ausführungsform der vorliegenden Erfindung, benutzt die in Fig. 2 illustrierte CPU-Steuerschaltung 42 den Zähler/Zeitgeber 48, um Nanosekunden oder Zeitgeberzyklen an Stelle der Anzahl von ausgeführten Befehlen zu zählen, wenn der Befehl zu Verzögerung der Erkennung von Interrupts die Erkennung von Interrupts während der Ausführung einer vorbestimmten Anzahl von aufeinander folgenden Zeitgeberzyklen oder Nanosekunden aufschiebt. Auch hier können ein vom Benutzer programmierbarer Mechanismus, wie etwa der Befehl selbst (zum Beispiel durch das optionale Bestimmungsfeld 70 in Fig. 3), ein Registerwert oder ein anderes programmierbares Verfahren benutzt werden, um dem Zähler/Zeitgeber 48 die Anzahl der Nanosekunden oder Zeitgeberzyklen zur Bestimmung der Länge des Intervalls zu liefern, während dessen Interrupts nach der Ausführung des Befehls zur Verzögerung der Erkennung von Interrupts nicht erkannt werden.
  • Bei einer Ausführungsform der vorliegenden Erfindung, beginnt die CPU-Steuerschaltung 42 damit, das Intervall der Nichterkennung von Interrupts zu zählen, nachdem der Befehl zur Verzögerung der Erkennung von Interrupts ausgeführt wurde. Bei anderen Ausführungsformen der vorliegenden Erfindung jedoch kann die CPU-Steuerschaltung 42 zu jedem Zeitpunkt nach Beginn der Dekodierung des Befehls zur Verzögerung der Erkennung von Interrupts mit dem Zählen des Intervalls der Nichterkennung von Interrupts beginnen.
  • Bei einigen Ausführungsformen der vorliegenden Erfindung kann dem Befehl zur Verzögerung der Erkennung von Interrupts jede Art von Befehl folgen. In manchen Situationen kann jedoch die Ausgabe eines Befehls, der eine erhebliche Anzahl von Zyklen benötigt, wie etwa ein Divisionsbefehl, im Rahmen der Befehlsfolge, die auf einen Befehl zu Verzögerung der Erkennung von Interrupts folgt, zu einer allzu langen Interruptlatenz führen. Um diesem Problem zu begegnen, beschränken einige Ausführungsformen der vorliegenden Erfindung die Art der Befehle, die unmittelbar auf einen Befehl zu Verzögerung der Erkennung von Interrupts folgen dürfen. Unter Bezugnahme auf Fig. 3 können beispielsweise die vier Befehle, die unmittelbar auf den Befehl zu Verzögerung der Erkennung von Interrupts folgen, auf arithmetische oder logische Einzelzyklusbefehle, Verzweigungsbefehle sowie Lade- oder Speicherbefehle beschränkt werden. Der Zweck der Beschränkung der Befehle, während derer die Erkennung von Interrupts verzögert wird, ist es, die maximale Latenzzeit für Interrupts zu reduzieren. Alternative Ausführungsformen der vorliegenden Erfindung können die Befehlsarten, während derer die Erkennung von Interrupts verzögert wird, limitieren oder dies unterlassen und damit die Befehlsarten, die einem Befehl zu Verzögerung der Erkennung von Interrupts folgen können, beschränken oder nicht. Der spezielle Satz von Befehlen, die einem Befehl zu Verzögerung der Erkennung von Interrupts folgen dürfen, kann für unterschiedliche Prozessoren 10 variieren und in einigen Ausführungsformen vom Benutzer programmierbar sein.
  • Alternative Ausführungsformen der vorliegenden Erfindung können von einer Ausnahmenbehandlung in unterschiedlicher Weise beeinflusst werden. Bei der in Fig. 3 illustrierten Ausführungsform der vorliegenden Erfindung werden Ausnahmen auch noch während des Intervalls detektiert, in dem Interrupts nicht erkannt werden. Alternative Ausführungsformen der vorliegenden Erfindung können jedoch Ausnahmen, die während des Intervalls, in dem die Erkennung von Interrupts aufgeschoben ist, zwar detektieren, jedoch nicht abarbeiten. Bei wieder anderen Ausführungsformen können Ausnahmen während des Intervalls, in dem die Erkennung von Interrupts aufgeschoben ist, nicht einmal detektiert und daher auch nicht abgearbeitet werden. Außerdem können bei alternativen Ausführungsformen der vorliegenden Erfindung unterschiedliche Arten von Ausnahmen auch unterschiedlich behandelt werden. Beispielsweise erlaubt der in Fig. 3 illustrierte Befehl zu Verzögerung der Erkennung von Interrupts während des Intervalls, in dem die Erkennung von Interrupts (IDLY4) aufgeschoben ist, das Auftreten von "non- trace"- und "non-breakpoint"-Ausnahmen, um das Bedingungsbit 38 zurück zu setzen (siehe Fig. 2), während "trace"- und "breakpoint"-Ausnahmen das Bedingungsbit 38 nicht beeinflussen.
  • Bei einigen Ausführungsformen der vorliegenden Erfindung kann ein Mechanismus zur erneuten Zulassung von Interrupts während des der Ausführung eines Befehl zu Verzögerung der Erkennung von Interrupts folgenden Intervalls der Nichterkennung von Interrupts benutzt werden. Beispielsweise kann der Zähler/Zeitgeber 48 benutzt werden, um zu registrieren, dass ein Interrupt einer bestimmten Stufe seit einer vorgegebenen Zeit während des Intervalls in Wartestellung ist und daher erkannt werden muss, bevor das Intervall der Nichterkennung von Interrupts abgelaufen ist. Bei einigen Ausführungsformen der vorliegenden Erfindung können daher Interrupts unter Verwendung der Programmeingriffsschaltung 47 erneut zugelassen werden, während die Abarbeitung noch immer in dem Intervall der Nichterkennung von Interrupts verharrt (das heißt wie durch die vorbestimmte Anzahl von Befehlen, Zeitgeberzyklen oder Nanosekunden definiert). Wird die Erkennung von Interrupts erneut zugelassen, kann der aktuelle Befehl mittendrin unterbrochen oder die Fortsetzung und Vollendung seiner Abarbeitung gestattet werden, bevor Interrupts wieder erkannt werden.
  • Einige Ausführungsformen der vorliegenden Erfindung können die Erkennung aller Interrupts verzögern, während andere Ausführungsformen der vorliegenden Erfindung nur die Erkennung solcher Interrupts verzögern, die unterhalb einer vorgegebenen Interruptstufe liegen. Die vorgegebene Interruptstufe kann auf jede beliebige Weise bestimmt werden. Beispielsweise kann die vorgegebene Interruptstufe spezifiziert werden als Teil des Formats des Befehls zu Verzögerung der Erkennung von Interrupts selbst, durch Speichern eines Wertes in einem vom Benutzer programmierbaren Register, durch Lieferung eines Wertes durch integrierte Schaltungsterminals oder durch Speichern eines Wertes in einer maskenprogrammierbaren Speicherschaltung.
  • Bei einer alternativen Ausführungsform gestattet es die vorliegende Erfindung einem ersten Befehl, die Art und Weise zu ändern, in der ein nachfolgender Befehl eine Zustands-Flag beeinflusst. Bei einer Ausführungsform der vorliegenden Erfindung kann der in Fig. 3 illustrierte Befehl zu Verzögerung der Erkennung von Interrupts (IDLY4) die Art und Weise ändern, in der ein oder mehrere Folgebefehle das Bedingungsbit 38 in Fig. 2 beeinflussen. Bezug nehmend auf Fig. 4-6 setzt beispielsweise der IDLY4-Befehl das Bedingungsbit 38 auf Ja. Wenn dann eine Ausnahme während irgend eines der vier Folgebefehle auftritt, setzt derjenige Befehl, der gerade abgearbeitet wird, wenn die Ausnahme auftritt, das Bedingungsbit 38 auf "Nein". Daher kann nun ein Befehl der normalerweise so definiert ist, dass er das Bedingungsbit 38 niemals zurück oder auf Nein setzt (zum Beispiel ein Ladebefehl), das Bedingungsbit 38 zurück setzen, falls eine Ausnahme während der Abarbeitung des Ladebefehls auftritt, wenn der Ladebefehl einer der vier Folgebefehle nach dem IDLY4-Befehl ist. Der IDLY4-Befehl kann daher die Art und Weise beeinflussen, in der ein Folgebefehl (zum Beispiel ein Ladebefehl) das Bedingungsbit 38 beeinflusst. Ein Zweck, zu dem das Bedingungsbit 38 auf diese Weise verwendet werden kann, ist um anzuzeigen, dass die vier Folgebefehle nicht in einer unteilbaren Weise abgearbeitet wurden und dass eine Ausnahmen-Abarbeitung eine gemeinsame Ressource beeinflusst haben könnte.
  • Man beachte, dass die in Fig. 4-6 illustrierten Befehlsfolgen alle eine Prüfung des Bedingungsbits 38 enthalten, um zu bestimmen, ob während der vier Befehle der Nichtbearbeitung von Ausnahmen nach dem IDLY4-Befehl (zum Beispiel Verzweigung nach SEQUENCE_FAILED, falls das Bedingungsbit 38 gleich null ist) eine Ausnahme empfangen und abgearbeitet wurde. Wurde nach dem IDLY4-Befehl eine Ausnahme empfangen und abgearbeitet, folgt der "BF"-Befehl der Verzweigung zu einer Subroutine von Befehlen, die mit SEQUENCE_FAILED bezeichnet ist und benutzt werden kann, um anzuzeigen, dass die vier Befehle nach dem IDLY4-Befehl nicht in einer unteilbaren Weise abgearbeitet wurden und dass die Abarbeitung der Ausnahme eine gemeinsame Ressource, wie etwa einen Semaphor beeinflusst haben könnte.
  • Fig. 4 illustriert eine Serie von Befehlen, die den in Fig. 3 illustrierten Befehl zu Verzögerung der Erkennung von Interrupts (IDLY4) benutzen, um eine Test-And-Set- Funktion durchzuführen. Die in Fig. 4 illustrierte Test- And-Set-Funktion testet einen Speicheroperanden, um festzustellen, ob der aktuelle Wert des Speicheroperanden überall null ist und ändert den Wert des Speicheroperanden überall auf eins (das heißt alle Bits des Speicheroperanden werden gesetzt). Daher kann die in Fig. 4 illustrierte Serie von Befehlen benutzt werden, um eine Test-And-Set-Funktion auf einem im Speicher gespeicherten Semaphorwert durchzuführen. Der Befehl zu Verzögerung der Erkennung von Interrupts (ID- LY4) kann benutzt werden, um sicherzustellen, dass die Test-And-Set-Funktion in ungeteilter Weise durchgeführt wird, sodass der Semaphorwert nicht von einer anderen Task verfälscht wird, die die in Fig. 4 illustrierte Softwareroutine zwischen der Test-Operation und der Set-Operation unterbricht.
  • Man beachte, dass die in Fig. 4 illustrierte Befehlsfolge tatsächlich die Set-Operation vor Durchführung der Test-Operation durchführt. Dies ist möglich, weil der ID- LY4-Befehl benutzt werden kann, um sicherzustellen, dass sowohl die Set- als auch die Test-Operation vollständig ausgeführt werden, bevor es einem anderen Task gestattet wird, zu unterbrechen und weil der Semaphorwert in diesem Fall nur zwei mögliche Werte annehmen kann, nämlich überall null oder überall eins. Wenn daher der Semaphorwert ursprünglich überall eins war, ändert der Schritt des Setzens des Semaphors den Semaphorwert nicht. Man beachte, dass alternative Befehlsfolgen, die eine Test-And-Set-Funktion durchführen, statt dessen die Test-Operation vor der Set- Operation durchführen können.
  • Fig. 5 illustriert eine Serie von Befehlen, die den in Fig. 3 illustrierten Befehl zu Verzögerung der Erkennung von Interrupts (IDLY4) benutzen, um eine "exchange-memoryoperand-with-register-operand"-Funktion, also eine Funktion zum Austausch eines Speicheroperanden durch einen Registeroperanden, durchzuführen. Die in Fig. 5 illustrierte Funktion zum Austausch eines Speicheroperanden durch einen Registeroperanden bewegt effektiv mit einen "EXCHANGE VALUE" bezeichneten Wert von seiner ursprünglichen Position im Speicher in das Register R1 und dann an die Position des Semaphorwertes. Man beachte, dass auf die Position des Semaphorwertes ein mit "SEMAPHOR" bezeichneter Pointer zeigt. Der Semaphorwert wird von seiner ursprünglichen Position im Speicher in das Register R3 bewegt. In der speziellen, in Fig. 5 illustrierten Befehlsfolge führt die abschließende "OR"-Anweisung keine andere nützliche Operation durch, als die Folge von vier Befehlen nach dem IDLY4-Befehl abzuschließen und so den Aufschub der Erkennung von Interrupts zu unterbrechen. Daher hat die abschließende "OR"-Funktion denselben Effekt, wie ein "no-operation"-Befehl (NOP) und kann durch verschiedene Befehle ersetzt werden.
  • Fig. 6 illustriert eine Serie von Befehlen, die den in Fig. 3 illustrierten Befehl zu Verzögerung der Erkennung von Interrupts (IDLY4) benutzt, um eine "increment-memorybased-counter"-Funktion, also eine Funktion zur Erhöhung eines speicherbasierten Zählers, durchzuführen. Die in Fig. 6 illustrierte Funktion zur Erhöhung eines speicherbasierten Zählers bewegt effektiv den Semaphorwert von seiner ursprünglichen Position im Speicher in das Register R3 und erhöht dann den Semaphorwert durch Addition von eins. Man beachte, dass auf die Position des Semaphorwertes ein mit "SEMAPHOR" bezeichneter Pointer zeigt. Der erhöhte Semaphorwert wird dann von dem Register R3 zurück an die ursprüngliche Position im Speicher bewegt.
  • Während die vorliegende Erfindung unter Bezugnahme auf spezielle Ausführungsformen illustriert und beschrieben wurde, sind für den Fachmann weitere Modifikationen und Verbesserungen ersichtlich. Es versteht sich daher, dass diese Erfindung nicht auf die im Besonderen dargestellten Formen beschränkt ist.

Claims (10)

1. Verfahren zur Beeinflussung der Abarbeitung von Folgebefehlen in einem Datenprozessor (10), umfassend die Verfahrensschritte:
Empfangen eines vorgegebenen Befehls; und
Dekodieren des vorgegebenen Befehls, wobei das Verfahren weiter gekennzeichnet ist durch die Schritte:
als Antwort auf die Dekodierung ein Verzögern der Abarbeitung einer Ausnahme durch den Datenprozessor, die der Datenprozessor entweder während einer vorgegebene Anzahl von Befehlen im Anschluss an die Dekodierung des vorgegebenen Befehls oder während eines vorgegebenen Zeitintervalls im Anschluss an die Dekodierung des vorgegebenen Befehls antrifft; und
Ausführen des vorgegebenen Befehls vor der Verzögerung der Abarbeitung der Ausnahme.
2. Verfahren nach Anspruch 1, wobei der vorgegebene Befehl mit IDLY4 bezeichnet ist.
3. Verfahren nach Anspruch 1 oder 2, wobei der Schritt des Verzögerns der Abarbeitung einer Ausnahme weiter den folgenden Schritt umfasst:
Verzögern der Abarbeitung einer Ausnahme bis zur Vollendung der Abarbeitung von vier Folgebefehlen, die von dem Datenprozessor im Anschluss an die Dekodierung des vorgegebenen Befehls ausgeführt werden.
4. Verfahren nach Anspruch 1, wobei der Schritt des Verzögerns der Abarbeitung einer Ausnahme weiter den Schritt umfasst:
Verwendung eines Zählers als Zeitgeber (48) zur Bestimmung des vorgegebenen Zeitintervalls im Anschluss an die Dekodierung des vorgegebenen Befehls.
5. Verfahren nach Anspruch 1, 2, 3 oder 4, wobei der Schritt der Verzögerung der Abarbeitung einer Ausnahme durch den Datenprozessor weiter den Schritt der Verzögerung der Abarbeitung als Antwort lediglich auf Interruptbedingungs-Ausnahmen umfasst.
6. Datenprozessor (10), umfassend: eine Befehlsausführungsschaltung (12), die einen vorgegebenen Satz von Befehlen ausführt und weiter dadurch gekennzeichnet ist, dass der vorgegebene Satz von Befehlen wenigstens einen Befehl enthält, der, wenn er von der Befehlsausführungsschaltung ausgeführt wird, den Datenprozessor veranlasst, die Erkennung von Interruptbedingungen, die mit dem Betrieb des Datenprozessors zusammenhängen, während einer vorgegebenen Anzahl von Folgebefehlen im Anschluss an die Ausführung des wenigstens einen Befehls verzögert.
7. Datenprozessor nach Anspruch 6, wobei die vorgegebene Anzahl von Folgebefehlen, während derer der Datenprozessor die Erkennung einer Interruptbedingung verzögert, von einem Benutzer des Datenprozessor programmierbar ist.
8. Datenprozessor nach Anspruch 6 oder 7, wobei die vorbestimmte Anzahl von Folgebefehlen vier ist.
9. Datenprozessor nach Anspruch 6, 7 oder 8, wobei die Befehlsausführungsschaltung ein Registerbit (38) umfasst, das durch die Ausführung des wenigstens einen Befehls gesetzt wird.
10. Datenprozessor nach Anspruch 6, 7, 8 oder 9, wobei der wenigstens eine Befehl mit IDLY4 bezeichnet ist.
DE69810064T 1997-11-03 1998-10-26 Verfahren und Anordnung zur Veränderung der Durchführung eines Nachfolgebefehls in einem Dataprozessor Expired - Fee Related DE69810064T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/963,321 US6000029A (en) 1997-11-03 1997-11-03 Method and apparatus for affecting subsequent instruction processing in a data processor

Publications (2)

Publication Number Publication Date
DE69810064D1 DE69810064D1 (de) 2003-01-23
DE69810064T2 true DE69810064T2 (de) 2003-04-17

Family

ID=25507071

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69810064T Expired - Fee Related DE69810064T2 (de) 1997-11-03 1998-10-26 Verfahren und Anordnung zur Veränderung der Durchführung eines Nachfolgebefehls in einem Dataprozessor

Country Status (9)

Country Link
US (2) US6000029A (de)
EP (1) EP0913767B1 (de)
JP (2) JP4883824B2 (de)
KR (1) KR100588790B1 (de)
CN (1) CN1098487C (de)
DE (1) DE69810064T2 (de)
HK (1) HK1020218A1 (de)
SG (2) SG71861A1 (de)
TW (1) TW494363B (de)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7805724B1 (en) * 1998-05-27 2010-09-28 Arc International I.P., Inc. Apparatus, method and computer program for dynamic slip control in real-time scheduling
JP2000330785A (ja) * 1999-05-18 2000-11-30 Sharp Corp 実時間プロセッサおよび命令実行方法
US6618800B1 (en) * 2000-01-18 2003-09-09 Systemonic Ag Procedure and processor arrangement for parallel data processing
GB2369464B (en) 2000-11-27 2005-01-05 Advanced Risc Mach Ltd A data processing apparatus and method for saving return state
US6857036B2 (en) * 2001-07-17 2005-02-15 Hewlett Packard Development Company, L.P. Hardware method for implementing atomic semaphore operations using code macros
US20030154347A1 (en) * 2002-02-12 2003-08-14 Wei Ma Methods and apparatus for reducing processor power consumption
US7539876B2 (en) 2003-04-18 2009-05-26 Via Technologies, Inc. Apparatus and method for generating a cryptographic key schedule in a microprocessor
US7532722B2 (en) 2003-04-18 2009-05-12 Ip-First, Llc Apparatus and method for performing transparent block cipher cryptographic functions
US7844053B2 (en) 2003-04-18 2010-11-30 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7529367B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent cipher feedback mode cryptographic functions
US7502943B2 (en) 2003-04-18 2009-03-10 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
US7925891B2 (en) 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US7542566B2 (en) 2003-04-18 2009-06-02 Ip-First, Llc Apparatus and method for performing transparent cipher block chaining mode cryptographic functions
US7529368B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent output feedback mode cryptographic functions
US7321910B2 (en) 2003-04-18 2008-01-22 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7519833B2 (en) 2003-04-18 2009-04-14 Via Technologies, Inc. Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine
US7392400B2 (en) 2003-04-18 2008-06-24 Via Technologies, Inc. Microprocessor apparatus and method for optimizing block cipher cryptographic functions
US7900055B2 (en) 2003-04-18 2011-03-01 Via Technologies, Inc. Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
US7536560B2 (en) 2003-04-18 2009-05-19 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic key size
CN100495324C (zh) * 2006-07-27 2009-06-03 中国科学院计算技术研究所 复杂指令集体系结构中的深度优先异常处理方法
US9367323B2 (en) 2012-06-15 2016-06-14 International Business Machines Corporation Processor assist facility
US9436477B2 (en) 2012-06-15 2016-09-06 International Business Machines Corporation Transaction abort instruction
US9348642B2 (en) 2012-06-15 2016-05-24 International Business Machines Corporation Transaction begin/end instructions
US9336046B2 (en) 2012-06-15 2016-05-10 International Business Machines Corporation Transaction abort processing
US9317460B2 (en) 2012-06-15 2016-04-19 International Business Machines Corporation Program event recording within a transactional environment
US20130339680A1 (en) 2012-06-15 2013-12-19 International Business Machines Corporation Nontransactional store instruction
US8688661B2 (en) 2012-06-15 2014-04-01 International Business Machines Corporation Transactional processing
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US9442737B2 (en) 2012-06-15 2016-09-13 International Business Machines Corporation Restricting processing within a processor to facilitate transaction completion
US8966324B2 (en) 2012-06-15 2015-02-24 International Business Machines Corporation Transactional execution branch indications
US9384004B2 (en) 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US8880959B2 (en) 2012-06-15 2014-11-04 International Business Machines Corporation Transaction diagnostic block
US8682877B2 (en) 2012-06-15 2014-03-25 International Business Machines Corporation Constrained transaction execution
US9361115B2 (en) 2012-06-15 2016-06-07 International Business Machines Corporation Saving/restoring selected registers in transactional processing
US9448796B2 (en) 2012-06-15 2016-09-20 International Business Machines Corporation Restricted instructions in transactional execution
US9772854B2 (en) 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
CN110535790B (zh) * 2019-08-23 2022-03-18 天津芯海创科技有限公司 基于semaphore的交换芯片异常报文处理方法
US12039363B2 (en) * 2022-06-29 2024-07-16 Red Hat, Inc. Synchronizing concurrent tasks using interrupt deferral instructions

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5440049A (en) * 1977-09-06 1979-03-28 Toshiba Corp Information process system
US4236204A (en) 1978-03-13 1980-11-25 Motorola, Inc. Instruction set modifier register
US4435766A (en) * 1981-06-16 1984-03-06 International Business Machines Corporation Nested resource control using locking and unlocking routines with use counter for plural processes
CN1004234B (zh) * 1985-04-01 1989-05-17 坦德姆计算机有限公司 增强的中央处理器(cpu)微转移结构
US4764893A (en) * 1985-04-26 1988-08-16 International Business Machines Corporation Noise-immune interrupt level sharing
CN1009399B (zh) * 1987-06-02 1990-08-29 德国Itt工业股份公司 中央处理器
US5499356A (en) * 1989-12-29 1996-03-12 Cray Research, Inc. Method and apparatus for a multiprocessor resource lockout instruction
JPH03210649A (ja) * 1990-01-12 1991-09-13 Fujitsu Ltd マイクロコンピュータおよびそのバスサイクル制御方法
JP2665813B2 (ja) * 1990-02-23 1997-10-22 三菱電機株式会社 記憶制御装置
JPH05508496A (ja) * 1990-06-11 1993-11-25 クレイ、リサーチ、インコーポレーテッド 命令をロードおよびフラグする方法および装置
JPH0467229A (ja) * 1990-07-06 1992-03-03 Hitachi Ltd マイクロプロセッサおよびメモリシステム
JPH0474229A (ja) * 1990-07-17 1992-03-09 Toshiba Corp 情報処理装置
JPH04306735A (ja) * 1991-04-04 1992-10-29 Toshiba Corp 非同期割込み禁止機構
US5301312A (en) * 1991-08-21 1994-04-05 International Business Machines Corporation Method and system for utilizing benign fault occurrence to measure interrupt-blocking times
US5283870A (en) * 1991-10-04 1994-02-01 Bull Hn Information Systems Inc. Method and apparatus for avoiding processor deadly embrace in a multiprocessor system
JPH05143322A (ja) * 1991-11-15 1993-06-11 Sanyo Electric Co Ltd マイクロコンピユータ
DE69326705T2 (de) * 1992-02-14 2000-04-27 Motorola, Inc. Verfahren und Anordnung zur Feststellung der Befehlsablauffolge in einem Datenverarbeitungssystem
US5590380A (en) * 1992-04-22 1996-12-31 Kabushiki Kaisha Toshiba Multiprocessor system with processor arbitration and priority level setting by the selected processor
JPH06110846A (ja) * 1992-09-25 1994-04-22 Fujitsu Ltd 排他制御方式
US5768619A (en) * 1996-02-16 1998-06-16 Advanced Micro Devices, Inc. Method and system for enabling and disabling functions in a peripheral device for a processor system

Also Published As

Publication number Publication date
KR100588790B1 (ko) 2006-10-04
JP4750865B2 (ja) 2011-08-17
JP4883824B2 (ja) 2012-02-22
EP0913767B1 (de) 2002-12-11
SG71861A1 (en) 2000-04-18
JP2009104675A (ja) 2009-05-14
TW494363B (en) 2002-07-11
US6237089B1 (en) 2001-05-22
SG101487A1 (en) 2004-01-30
KR19990044957A (ko) 1999-06-25
EP0913767A3 (de) 2000-01-26
US6000029A (en) 1999-12-07
DE69810064D1 (de) 2003-01-23
CN1098487C (zh) 2003-01-08
EP0913767A2 (de) 1999-05-06
JPH11219302A (ja) 1999-08-10
CN1216375A (zh) 1999-05-12
HK1020218A1 (en) 2000-03-31

Similar Documents

Publication Publication Date Title
DE69810064T2 (de) Verfahren und Anordnung zur Veränderung der Durchführung eines Nachfolgebefehls in einem Dataprozessor
DE68927218T2 (de) Verfahren und Vorrichtung für Zustandskode in einem Zentralprozessor
DE68927911T2 (de) Datenverarbeitungssystem
DE3689394T2 (de) Informationsverarbeitungsanlage mit einem Allzweckprozessor und einem Sonderzweckprozessor.
DE3650413T2 (de) Verfahren und Vorrichtung zur Annulierung eines Befehls.
DE69701141T2 (de) Multithreaded mikroprozessor ausgestaltet zur ausführung von unterbrechungsverarbeitungsroutinen als threads
DE69129565T2 (de) Hochleistungsfähiger Emulator mit Pipelining
DE3686789T2 (de) Vektorverarbeitungsgeraet.
DE3751164T2 (de) Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten.
DE3851033T2 (de) Datenprozessor mit Entwicklungsunterstützungsmerkmalen.
DE3750306T2 (de) System zum Gewährleisten der logischen Unversehrtheit von Daten.
DE3789345T2 (de) Erweiterte Gleitkommaoperationen zur Unterstützung der Emulation von Quellbefehlsausführungen.
DE69308548T2 (de) Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor.
DE69636861T2 (de) Mikroprozessor mit Lade-/Speicheroperation zu/von mehreren Registern
DE69115344T2 (de) Vorverarbeitungsprozessor zur Verbindung von Befehlen für einen Cache-Speicher
DE69027471T2 (de) Fehlersuchperipherie für Mikrorechner, Mikroprozessoren und Kernprozessor beinhaltende integrierte Schaltungen und Vorrichtung die diese Fehlersuchperipherie verwendet
DE69032635T2 (de) Verfahren und Vorrichtung zur Erkennung von Betriebsmittelkonflikten in einer Pipeline-Verarbeitungseinheit
DE69028138T2 (de) Mechanismus zur präzisen Behandlung von Ausnahmebedingungen in einem Prozessor mit gepaarten Befehlen
DE60217157T2 (de) Verfahren und vorrichtung zum binden von shadow-registern an vektorisierte interrupts
DE69621405T2 (de) Verarbeitungssystem, prozessor, befehlsstromspeicher und kompilierer
DE69322283T2 (de) Hoch schnelligkeit speicher programmierbar steuerung
DE69033131T2 (de) Logikvorrichtung und Verfahren zur Verwaltung einer Befehlseinheit in einer Pipeline-Verarbeitungseinheit
DE69130757T2 (de) Ausführungsvorrichtung für bedingte Verzweigungsbefehle
DE69414592T2 (de) Ausführung von datenverarbeitungsbefehlen
DE10297597T5 (de) Suspendieren der Ausführung eines Threads in einem Mehrfach-Thread-Prozessor

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: FREESCALE SEMICONDUCTOR, INC., AUSTIN, TEX., US

8339 Ceased/non-payment of the annual fee