DE3751287T2 - Während einer Instruktionsausführung eine Unterbrechungsanforderung empfangender Mikroprogrammkontrolleur. - Google Patents

Während einer Instruktionsausführung eine Unterbrechungsanforderung empfangender Mikroprogrammkontrolleur.

Info

Publication number
DE3751287T2
DE3751287T2 DE3751287T DE3751287T DE3751287T2 DE 3751287 T2 DE3751287 T2 DE 3751287T2 DE 3751287 T DE3751287 T DE 3751287T DE 3751287 T DE3751287 T DE 3751287T DE 3751287 T2 DE3751287 T2 DE 3751287T2
Authority
DE
Germany
Prior art keywords
instruction
branch
interrupt request
signal
gate
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
DE3751287T
Other languages
English (en)
Other versions
DE3751287D1 (de
Inventor
Yasuhiko Komoto
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.)
NEC Corp
Original Assignee
NEC Corp
Nippon Electric Co Ltd
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 NEC Corp, Nippon Electric Co Ltd filed Critical NEC Corp
Publication of DE3751287D1 publication Critical patent/DE3751287D1/de
Application granted granted Critical
Publication of DE3751287T2 publication Critical patent/DE3751287T2/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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

    HINTERGRUND DER ERFINDUNG
  • Die Erfindung betrifft einen Mikroprozessor in einem Informationsverarbeitungssystem und insbesondere eine zentrale Verarbeitungseinheit vom mikroprogrammgesteuerten Typ (im folgenden "Mikroprogrammkontroller" genannt).
  • Bei einem Mikroprogrammkontroller werden durch eine Bedienungsperson programmierte Befehle in einem Programmspeicher als ein Makrobefehl gespeichert. Jeder Makrobefehl umfaßt Adreßinformationen, die eine Startadresse oder eine Folge von Mikrobefehlen zur Ausführung des Makrobefehls bezeichnen. Die Folge der Mikrobefehle für die entsprechenden Makrobefehle sind in einem Mikrobefehlsspeicher gespeichert. Wenn ein Makrobefehl aus dem Programmspeicher gelesen wird, wird die Folge der Mikrobefehle für diesen Makrobefehl aus dem Mikrobefehlsspeicher gelesen. Der Kontroller führt die Folge der Mikrobefehle aus. Auf diese Weise wird der Makrobefehl ausgeführt.
  • Wenn eine Unterbrechungsanforderung während der Befehlsausführung auftritt, wird im allgemeinen die Unterbrechungsverarbeitung nicht direkt ausgeführt, und sie wird nach der Befehlsausführung vorgenommen. Mit anderen Worten umfaßt die Folge von Mikrobefehlen für jeden Makrobefehl an ihrem Ende einen bedingten Unterbrechungszweigbefehl. Wenn jedoch eine Befehlsausführungszeit lang ist, wie bei einem STRING- Befehl zum Übertragen einer Zeichenfolge oder einer Bitfolge, ist es für eine Echtzeitverarbeitung vorteilhaft, eine Unterbrechungsanforderung während der Befehlsausführung zu erhalten. Bei der Ausführung des STRING-Befehls wird eine Schleife von Mikrobefehlen zum Übertragen einer Dateneinheit der Zeichenfolge oder der Bitfolge in einer Anzahl wiederholt, die durch die Länge der Zeichenfolge oder Bitfolge bestimmt ist. Dementsprechend wird der bedingte Unterbrechungszweigbefehl in die Schleife der Mikrobefehle eingefügt. Wenn die Übertragung einer Dateneinheit eine vorgegebene Anzahl von Malen durchgeführt ist, wird ein Endsignal erzeugt, um die Ausführung des STRING-Befehls zu beenden. Somit erfordert die Schleife der Mikrobefehle einen weiteren bedingten Zweigbefehl zum Entscheiden, ob das Datenübertragungs-Endsignal erzeugt wird oder nicht.
  • Auf diese Weise kann eine Unterbrechungsanforderung während der Ausführung des STRING-Befehls empfangen werden. Die Schleife der Mikrobefehle umfaßt jedoch zwei bedingte Zweigbefehle. Insbesondere wird der bedingte Zweigbefehl zweimal durchgeführt, jedesmal, wenn eine Dateneinheit der Zeichenfolge oder der Bitfolge übertragen wird. Als Ergebnis ist die Ausführungszeit des STRING-Befehls verlängert.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Dementsprechend ist es eine Aufgabe der Erfindung, einen Mikroprozessor zu schaffen, der eine Unterbrechungsanforderung während der Befehlsausführung ohne eine Verlängerung der Befehlsausführungszeit erhält.
  • Eine weitere Aufgabe der Erfindung liegt in der Schaffung eines Mikroprogrammkontrollers, der ein Unterbrechungsanforderungssignal empfangen kann, das zeitweilig während der Ausführung eines Befehls zugeführt wird.
  • Ein erfindungsgemäßer Prozessor umfaßt Mittel zum Speichern einer Folge von Mikrobefehlen für jeden Makrobefehl, Mittel, die auf den auszuführenden Makrobefehl ansprechen, zum Lesen der zugeordneten Folge von Mikrobefehlen aus den Speichermitteln, Mittel zum Ausführen der Folge von Mikrobefehlen, die aus den Speichermitteln ausgelesen sind, ein ODER-Tor, dem ein Unterbrechungsanforderungssignal und ein Befehlendesignal zugeführt wird, Mittel zur Erfassung des Pegels eines Ausgangssignals des ODER-Tores, wenn der aus den Speichermitteln ausgelesene Mikrobefehl eine zusammengesetzte bedingte Zweigbefehlinformation enthält, um ein Detektorsignal auszugeben, wenn das Ausgangssignal des ODER-Tores einen aktiven Pegel einnimmt, und Mittel, die auf das Detektorsignal ansprechen, zur Bezeichnung einer Zweigadresse der Speichermittel zum Lesen eines Mikrobefehls, der in der Zweigadresse gespeichert ist.
  • Dementsprechend sind bei der Ausführung des STRING-Befehls nicht zwei bedingte Zweigbefehle in einer Schleife von Mikrobefehlen zum Übertragen einer Dateneinheit einer Zeichenfolge oder einer Bitfolge erforderlich. Nur ein bedingter Zweigbefehl ist in der Schleife der Mikrobefehle erforderlich. Wenn der bedingte Zweigbefehl aus den Speichermitteln ausgelesen und dann ausgeführt wird, wird der Ausgangspegel des ODER-Tores erfaßt. Wenn sowohl das Unterbrechungsanforderungssignal als auch das Befehlsendesignal nicht erzeugt werden, nimmt der Ausgang des ODER-Tores einen inaktiven Pegel ein. Das Detektorsignal wird nicht erzeugt. Die Übertragung einer Dateneinheit der Zeichenfolge oder der Bitfolge wird somit wiederholt. Wenn zumindest eines, das Unterbrechungsanforderungssignal oder das Befehlendesignal, erzeugt werden, wird das Detektorsignal durch Ausführung des bedingten Zweigbefehls erzeugt. Die Zweigadresse wird dadurch bezeichnet, und eine Zweigverarbeitung wird durchgeführt. Bei der Zweigbearbeitung wird ein Befehl zum Entscheiden, welches der Signale, das Unterbrechungsanforderungssignal oder das Befehlendesignal, zugeführt wurde, zunächst ausgeführt. Falls entscheiden wird, daß das Unterbrechungsanforderungssignal zugeführt wird, wird der Inhalt eines Programmzählers, der die Adresse eines Programmspeichers, der die Makrobefehle speichert, und der Inhalt eines Programmstatuswortes in Zwischenspeicherbereiche gespeichert, und eine Unterbrechungsverarbeitung wird dann ausgeführt. Für den Fall des Bestimmens, daß das Befehlendesignal zugeführt wird, wird ein dem STRING-Befehl nächstes Makroprogramm aus dem Programmspeicher ausgelesen, und eine Folge von Mikrobefehlen für das nächste Makroprogramm wird ausgeführt. Auf diese Weise kann der erfindungsgemäße Prozessor eine Unterbrechungsanforderung während der Ausführung des STRING-Befehls ohne Verlängerung der Ausführungszeit für den STRING-Befehl empfangen.
  • Das Unterbrechungsanforderungssignal wird häufig zeitweilig zugeführt, und in diesem Fall könnte es vor der Zweigverarbeitung verschwinden. Auf diese Weise tritt ein Fehlbetrieb des Prozessors auf. Um diesen Nachteil zu vermeiden, umfaßt ein erfindungsgemäßer Prozessor ferner Mittel zum Halten eines Unterbrechungsanforderungssignals. Selbst wenn das Unterbrechungsanforderungs signal vor der Zweigverarbeitung verschwindet, wird festgestellt, daß die Verzweigungsbedingung durch die Unterbrechungsanforderung bewirkt ist. Ein Fehlbetrieb des Prozessors tritt somit nicht auf.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die obigen und andere Aufgaben, Vorteile und Merkmale der Erfindung werden aus der folgenden Beschreibung in Verbindung mit den beigefügten Zeichnungen deutlich. Es zeigen:
  • Fig. 1 ein Blockdiagramm eines Ausführungsbeispiels der Erfindung,
  • Fig. 2 ein Ablaufdiagramm zur Erläuterung des Betriebs eines in Fig. 1 dargestellten Kontrollers,
  • Fig. 3 ein Blockdiagramm eines weiteren Ausführungsbeispiels der Erfindung, und
  • Fig. 4 ein Flußdiagramm zur Erläuterung des Betriebs des in Fig. 3 dargestellten Kontrollers.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
  • Bezugnehmend auf Fig. 1 umfaßt ein Mikroprogrammkontroller gemäß einem Ausführungsbeispiel der Erfindung ein Mikrobefehls-ROM (Nur-Lese-Speicher) 1, der eine Folge von Mikrobefehlen für Makrobefehle speichert, die ihrerseits in einem Programm-ROM (nicht dargestellt) gespeichert und durch eine Bedienungsperson programmiert sind. Jeder der Makrobefehle umfaßt eine Adreßinformation, die eine Startadresse der zugeordneten Folge von Mikrobefehlen bezeichnet. Dementsprechend wird die Adreßinformation des auszuführenden Makrobefehls einem Mikroadreßregister 2 als Startadresse zugeführt. Auf diese Weise wird ein Start-Mikrobefehl der Folge von Mikrobefehlen für den auszuführenden Makrobefehl ausgelesen und einem Dekoder 3 zugeführt. Der Dekoder 3 dekodiert den ausgelesenen Mikrobefehl und erzeugt Daten- und/oder Steuersignale 301, die ihrerseits einem Ausführungsteil 4 einschließlich einer arithmetischen und logischen Einheit (nicht dargestellt) zugeführt werden, zur Ausführung einer arithmetischen und/oder logischen Operation und zur Steuerung eines Datenspeichers und verschiedener I/O-Einheiten (alle nicht dargestellt) über einen interen Bus 401. Der Dekoder 3 erzeugt weiterhin Zweigadresseninformationen 303 und Verzweigungssteuersignale 302, wenn der aus dem ROM 1 ausgelesene Mikrobefehl ein Zweigbefehl ist. Die Zweigadresseninformation 303 wird einem ersten Satz Eingangsanschlüsse eines Multiplexers 6 zugeführt, wobei ein zweiter Satz Eingangsanschlüsse mit Adreßinformationen versorgt wird, die durch Inkrementieren des Inhalts des Mikroadreßregisters 2 um 1 durch einen Inkrementer 5 erhalten werden. Der Multiplexer 6 wählt die Adreßinformation des Dekoders 3, wenn ein seinem Steueranschluß 601 zugeführtes Steuersignal einen hohen Pegel einnimmt, und das von dem Inkrementer 5, wenn das Steuersignal einen niedrigen Pegel einnimmt, wodurch die ausgewählte Adreßinformation dem Mikroadreßregister 2 zugeführt wird. Die Zweigsteuerbefehle 302 von dem Dekoder 3 werden einer Verzweigungssteuereinheit 7 zugeführt. Wenn der Dekoder 3 einen unbedingten Zweigbefehl dekodiert, erzeugt die Zweigsteuereinheit 7 ein Hochpegel-Ausgangssignal 704 ohne Beurteilung des Pegels seiner Eingangsanschlüsse 701 bis 703, wobei das Hochpegel-Ausgangssignal 704 seinerseits dem Multiplexer 601 als Steuersignal zugeführt wird. Wenn andererseits ein bedingter Zweigbefehl dekodiert wird, beurteilt die Verzweigungssteuereinheit 7 den Pegel an jedem ihrer Anschlüsse 701 bis 703 entsprechend dem Inhalt des bedingten Zweigbefehls und erzeugt das Hochpegel-Ausgangssignal 704, wenn der beurteilte Anschluß 701, 702 oder 703 einen aktiven Pegel einnimmt. Bei diesem Ausführungsbeispiel wird ein Unterbrechungsanforderungssignal INT dem ersten Anschluß 701 der Einheit 7 über ein ODER-Tor 10 zugeführt. Wie vorstehend beschrieben, wird bei der Ausführung des STRING-Befehls zur Übertragung einer Zeichenfolge oder einer Bitfolge eine Schleife von Mikrobefehlen zum Übertragen einer Dateneinheit der Befehlsfolge oder der Bit folge in einer vorgegebenen Anzahl von Malen wiederholt. Diese Anzahl von Malen ist in einem Schleifenzähler 9 gespeichert, der seinerseits den darin gespeicherten Wert jedesmal dann um 1 vermindert, wenn eine Dateneinheit der Befehlsfolge oder der Bitfolge übertragen ist, und erzeugt schließlich ein Hochpegel-Ausgangssignal als STRING-Befehlsendesignal, wenn der Wert zu 0 wird Das Ausgangssignal des Schleifenzählers 9 wird dem zweiten Anschluß 702 der Einheit 7 zugeführt.
  • Um eine Unterbrechungsanforderung während der Ausführung des STRING-Befehls ohne Verlängerung seiner Ausführungszeit zu empfangen, ist ein ODER-Tor 8 vorgesehen, und ein bedingter Zweigbefehl ist in dem Mikrobefehls-ROM 1 entsprechend der vorliegenden Erfindung vorgesehen. Dem ODER-Tor 8 wird das Unterbrechungsanforderungssignal INT an seinem einen Anschluß und das Ausgangssignal des Schleifenzählers 9 an seinem anderen Eingangsanschluß zugeführt, und der Ausgangsanschluß des ODER-Tores 8 ist mit dem dritten Anschluß 703 der Einheit 1 verbunden. Der bedingte Zweigbefehl wird verwendet, um den Pegel des Anschlusses 703, d.h. den Ausgangspegel des ODER-Tores 8, zu erfassen.
  • Eine detaillierte Beschreibung des Ausführungsvorganges des STRING-Befehls wird im folgenden mit Bezug auf Fig. 2 durchgeführt. Wenn der STRING-Befehl als auszuführender Makrobefehl ausgelesen wird, wird eine Startadresse einer Folge von Mikrobefehlen für den STRING-Befehl in dem Mikroadreßregister 2 eingestellt, wodurch das Lesen der Folge von Mikrobefehlen aus dem Mikrobefehls-ROM 1 beginnt. Durch Ausführung einiger Mikrobefehle in der Folge von Makrobefehlen wird eine Voroperation des STRING-Befehls ausgeführt, wie durch den Schritt 100 in Fig. 2 dargestellt ist. Bei der Voroperation des STRING-Befehls werden die Zuweisung einer Startadresse der zu übertragenden Zeichenfolge oder Bitfolge, die Bezeichnung einer Bestimmungsadresse, eine arithmetische Operation zum Erhalten der Anzahl von Datenübertragungszeiteinheiten etc. durch den Ausführungsteil 4 unter Steuerung des Dekoders 3 durchgeführt. Ein nächster Mikrobefehl wird anschließend aus dem ROM 1 ausgelesen und durch den Ausführungsteil 4 ausgeführt, um in dem Schleifenzähler 9 einen Zählwert, der der Anzahl von Dateneinheitsübertragungen entspricht, zu speichern, wie in Fig. 2 durch den Schritt 101 angegeben ist. Anschließend wird der bedingte Zweigbefehl (im Folgenden als "JSTRT"-Befehl bezeichnet) erfindungsgemäß aus dem Mikrobefehls-ROM 1 ausgelesen. Als Ergebnis des Dekodierens des JSTRT-Befehls erzeugt der Dekoder 3 eine Zweigadresseninformation 303 und veranlaßt die Verzweigungssteuereinheit 7, den Eingangspegel des dritten Anschlusses 703, d.h. den Ausgangspegel des ODER-Tores 8, zu beurteilen, durch die Steuersignale 302. Wenn weder das Unterbrechungsanforderungssignal INT als auch das Hochpegel-Ausgangssignal des Schleifenzählers 9 nicht zugeführt werden, d.h. wenn eine Unterbrechungsanforderung nicht auftritt und der Inhalt des Schleifenzählers 9 nicht 0 ist, nimmt der Ausgang des ODER-Tores 8 einen niedrigen Pegel (inaktiven Pegel) ein. Das Tiefpegel-Steuersignal 704 wird somit von der Einheit 7 erzeugt, so daß der Multiplexer 6 die Adreßinformation von dem Inkrementer 5 auswählt und sie dem Mikroadreßregister 2 zuführt. Auf diese Weise wird die der Adresse, bei der der JSTRT-Befehl gespeichert ist, nächste Adresse bezeichnet. Der in der bezeichneten Adresse gespeicherte Mikrobefehl umfaßt eine Datenübertragungsinformation. Dementsprechend wird eine Dateneinheit der Zeichenfolge oder der Bit folge durch den Ausführungsteil 4 in die Bestimmungsadresse übertragen, wie durch den Schritt 103 in Fig. 2 dargestellt ist. Als Ergebnis der Datenübertragung inkrementiert der Ausführungsteil 4 die Adresse der zu übertragenden Zeichenfolge oder Bitfolge um 1, und der Schleifenzähler 9 dekrementiert den darin gespeicherten Zählwert um 1. Falls gewünscht, können die in Fig. 2 dargestellten Schritte 102 und 103 ausgetauscht werden. Ein unbedingter Zweigbefehl wird als nächster Mikrobefehl durchgeführt. Dementsprechend erzeugt der Dekoder 3 die Zweigadresseninformation, die die Adresse bezeichnet, an der der JSTRT-Befehl gespeichert ist, und die Verzweigungssteuereinheit 7 erzeugt das Hochpegel-Ausgangssignal 704. In dem Mikroadreßregister 2 wird dadurch die Adresse gespeichert, an der der JSTRT-Befehl gespeichert ist. Somit werden Dateneinheiten der Zeichenfolge oder der Bitfolge nacheinander übertragen.
  • Wenn eine Unterbrechungsanforderung auftritt und/oder der Inhalt des Schleifenzählers 9 zu 0 wird, erfaßt die Verzweigungssteuereinheit 7 den hohen Pegel (aktiven Pegel) des Ausgangs des ODER-Tores 8 durch Ausführung des JSTRT- Befehls und erzeugt das Hochpegelsignal 704, das seinerseits dem Multiplexer 6 zugeführt wird. Die Zweigadresseninformation des Dekoders 3 wird somit dem Mikroadreßregister 2 zugeführt. Auf diese Weise wird eine Verzweigungsverarbeitung ausgeführt.
  • Bei der Verzweigungsverarbeitung wird ein bedingter Unterbrechungszweigbefehl (im folgenden "JINTR-Befehl" bezeichnet) oder ein bedingter Nullzweigbefehl (im folgenden als "JZLC-Befehl" bezeichnet) zuerst ausgeführt. Bei diesem Ausführungsbeispiel wird der JINTR-Befehl durchgeführt, wie durch den Schritt 104 in Fig. 2 angegeben ist. Dementsprechend erfaßt die Verzweigungssteuereinheit 7 den Pegel am ersten Anschluß 701. Falls das Unterbrechungsanforderungssignal INT zugeführt wird, nimmt der Pegel am ersten Anschluß 701 den hohen Pegel an. Aufgrunddessen führt die Einheit 7 das Hochpegelsignal 704 dem Multiplexer 6 zu, so daß die zweite Zweigadresseninformation des Dekoders 3 dem Mikroadreßregister 2 zugeführt wird. Eine Unterbrechungsfreigabeoperation wird auf diese Weise durchgeführt, wie im Schritt 105 in Fig. 2 dargestellt ist. Bei der Unterbrechungsfreigabeoperation werden das Zwischenspeichern der Inhalte eines Programmzählers und eines Programmstatuswortes (nicht dargestellt), das Lesen einer durch die Startadresse bezeichneten Makrobefehls für eine Unterbrechungsverarbeitung und das Einstellen einer Startadresse für eine Folge von Mikrobefehlen für den auszuführenden Makrobefehl durch Verwendung des Ausführungsteils 4 durchgeführt. Wenn die Unterbrechungsverarbeitung beendet ist, wird der STRING-Befehl erneut ausgeführt, um die verbleibenden Daten der Befehlsfolge oder der Bitfolge zu übertragen. Wenn andererseits der erste Anschluß 702 den niedrigen Pegel aufweist, erzeugt die Verzweigungssteuereinheit 7 das Tiefpegel-Ausgangssignal 704. Dies bedeutet, daß der Inhalt des Schleifenzählers 9 zu 0 wird. Dementsprechend wird die Adreßinformation vom Inkrementer 5 dem Mikroprogrammregister 2 zugeführt, und eine STRING-Befehlendeoperation wird ausgeführt, wie durch den Schritt 106 in Fig. 2 angegeben ist. Bei dieser Operation wird der Inhalt eines Programmzählers (nicht dargestellt) um 1 erhöht, um einen nächsten Makrobefehl auszulesen und eine Startadresse einer Folge von Mikrobefehlen zur Ausführung des nächsten Makrobefehls in dem Mikroadreßregister 2 unter Steuerung der Ausführungseinheit 4 zu speichern.
  • Wenn der JZLC-Befehl bei der Verzweigungsverarbeitung als erstes ausgeführt wird, wird der in Fig. 2 dargestellte Schritt 104 durch den JZLC-Befehl ersetzt, und die Schritte 105 bzw. 106 werden ausgeführt, wenn der zweite Anschluß 702 den niedrigen Pegel bzw. den hohen Pegel einnimmt.
  • Da nur ein bedingter Zweigbefehl (d.h. der JSTRT-Befehl) während der Datenübertragung ausgeführt wird, ist die Ausführungszeit für den STRING-Befehl nicht verlängert. Wenn eine Unterbrechungsanforderung während der Ausführung des STRING-Befehls auftritt, wird eine Unterbrechungsverarbeitung ohne Abwarten des Endes des STRING-Befehls ausgeführt.
  • Das Unterbrechungsanforderungssignal INT wird häufig zeitweilig zugeführt. In diesem Fall kann das zeitweilige Unterbrechungsanforderungssignal INT vor der Ausführung des JINTR-Befehls in der Verzweigungsverarbeitung verschwinden, so daß der Schritt 106, der in Fig. 2 dargestellt ist, ausgeführt wird, um den STRING-Befehl zu beenden. Dadurch tritt ein Fehlbetrieb auf.
  • Um diesen Nachteil zu vermeiden, sind ein ODER-Tor 10, eine S-R-Flipflop-Schaltung 11 (im folgenden "F/F-Schaltung" bezeichnet), ein UND-Tor 12 und eine Verzögerungsschaltung 13 erfindungsgemäß vorgesehen. Dem ODER-Tor 10 wird das zeitweilige Unterbrechungsanforderungssignal INT und das Q-Ausgangssignal der F/F-Schaltung 11 zugeführt, und sein Ausgangsanschluß ist mit dem Anschluß 701 der Einheit 7 und dem Eingang des ODER-Tores 8 verbunden. Das zeitweilig auftretende Unterbrechungsanforderungssignal INT wird weiterhin über eine Verzögerungsschaltung 13 einem Anschluß des UND-Tores 12 zugeführt, dessen anderer Anschluß das Ausgangssignal 704 der Verzweigungssteuereinheit 7 erhält. Der Ausgang des UND-Tores 12 ist mit einem Set-Anschluß S der F/F-Schaltung 11 verbunden, dessen Anschluß R mit einem Rückstellsignal 401 von dem Ausführungsteil 4 versorgt wird. Die Verzögerungsschaltung 13 verzögert das zeitweilige Auftreten des Unterbrechungsanforderungssignals INT um eine Verzögerungszeit, die etwa gleich der Zeitspanne von einem Zeitpunkt, zu dem der JSTRT-Befehl ausgeführt wird, zu einem Zeitpunkt, bei dem die Verzweigungssteuereinheit 7 das Hochpegel-Ausgangssignal 704 erzeugt, ist. Wenn das Hochpegel-Ausgangssignal 704 aufgrund der Ausführung des JSTRT-Befehls erzeugt wird, erzeugt dementsprechend das UND-Tor das Hochpegel-Ausgangssignal zum Einstellen der F/F-Schaltung 11, deren Q-Ausgang dadurch auf den hohen Pegel geändert wird und diesen hält. Insbesondere wird das temporäre Unterbrechungsanforderungssignal INT durch die F/F-Schaltung 11 gehalten. Wenn der JINTR-Befehl durch die Verzweigungsverarbeitung ausgeführt wird, wird der hohe Pegel des ersten Anschlusses 701 der Einheit 7 erfaßt, so daß die Unterbrechungsfreigabeoperation ausgeführt wird. Kein Fehlbetrieb tritt auf. Bei dem Unterbrechungsfreigabevorgang erzeugt der Ausführungsteil 4 ein Rückstellsignal 401 zum Rückstellen der F/F-Schaltung 11. Der Q-Ausgang wird dadurch auf den niedrigen Pegel geändert. Wenn andererseits das Hochpegel-Ausgangssignal 704 als Ergebnis der Tatsache erzeugt wird, daß der Inhalt des Schleifenzählers 9 zu 0 wird, wird die F/F-Schaltung 11 nicht eingestellt. Die STRING-Befehlendeoperation wird dadurch ausgeführt.
  • Wenn die Adresse der zu übertragenden Dateneinheit und/oder die Bestimmungsadresse eine bestimmte Grenze des Speicherumfanges überschreitet, muß der STRING-Befehl beendet werden. Ein Aufbau für diesen Zweck ist in Fig. 3 als weiteres Ausführungsbeispiel der Erfindung dargestellt, bei dem dieselben Bestandteile wie in Fig. 1 mit denselben Bezugsziffern versehen sind, um ihre weitere Beschreibung zu unterlassen. In Fig. 3 ist ein ODER-Tor mit drei Eingangsanschlüssen verwendet, deren erster und zweiter Eingangsanschluß mit dem Unterbrechungsanforderungssignal INT bzw. dem Ausgangssignal des Schleifenzählers 9 versorgt werden und deren dritter Eingangsanschluß mit einem Steuersignal 402 von dem Ausführungsteil 4 versorgt wird. Das Signal 402 wird weiterhin einem vierten Eingangsanschluß 705 der Verzweigungssteuereinheit 7 zugeführt. Die Ausführungseinheit 4 erzeugt ein Hochpegelsignal 402, wenn die Adresse der zu übertragenden Dateneinheit und/oder die Bestimmungsadresse die spezielle Grenze eines Speicherbereichs überschreitet.
  • Ein Flußdiagramm zur Erläuterung des Betriebs dieses Prozessors ist in Fig. 4 dargestellt. Wenn irgendeines der Signale, d.h. das Unterbrechungsanforderungssignal INT, das Hochpegel-Ausgangssignal des Schleifenzählers 9 oder das Mochpegel-Steuersignal 402, zugeführt werden, nimmt der Ausgang des ODER-Tores 80 den hohen Pegel ein, so daß die Verzweigungsverarbeitung nach der Ausführung des JSTRT-Befehls durchgeführt wird. Angenommen, das ODER-Tor nimmt aufgrund der Tatsache, daß das Hochpegel-Steuersignal 402 ihm zugeführt wird, den hohen Pegel ein, erzeugt die Verzweigungssteuereinheit 7 kein Hochpegel-Ausgangssignal 704, selbst wenn die JINTR- und JZLC-Befehle ausgeführt werden.
  • Auf diese Weise wird eine Grenzüberschrittsoperation, die in Fig. 4 durch den Schritt 108 bezeichnet ist, ausgeführt. Bei dieser Operation wird die Ausführung des STRING-Befehls beendet, und eine den Grenzüberschritt angebende Nachricht wird ausgeführt. In diesem Ausführungsbeispiel sind ebenfalls eine Halteschaltung aus der F/F-Schaltung 11, dem UND-Tor 12 und der Verzögerungsschaltung 13 vorgesehen, um ein zeitweilig auftretendes Unterbrechungsanforderungssignal INT zu halten.

Claims (3)

1. Prozessor mit Speichermitteln (1) zum Speichern einer ersten Befehlsfolge einschließlich eines bedingten Verzweigungsbefehls und einer zweiten Befehlsfolge, Mitteln (3) zum Auslesen der ersten Befehlsfolge aus den Speichermitteln, Mitteln (4) zur Ausführung der ersten Befehlsfolge, Mitteln (9) zur Erzeugung eines Steuersignals, wenn die erste Befehlsfolge eine vorgegebene Anzahl von Malen ausgeführt wurde, einem Anschluß, der mit einem Unterbrechungs-Anforderungssignal versorgt wird, einem ODER-Tor (8), das mit den Erzeugungsmitteln und dem Anschluß verbunden ist und das Steuersignal und das Unterbrechungs-Anforderungssignal erhält, Dekodermitteln (3) zur Dekodierung des ausgelesenen Befehls zur Erfassung, ob es ein Verzweigungsbefehl ist, wobei die Dekodermittel (3) Verzweigüngsadresseninformationen erzeugen, und Verzweigungs-Steuermitteln (7) zum Beurteilen eines Pegels einer Ausgabe des ODER-Tors, wenn die Dekodermittel einen bedingten Verzweigungsbefehl dekodieren, und zur Erzeugung eines Verzweigungssignals, wenn die Ausgabe des ODER-Tores (8) einen aktiven Pegel einnimmt, und Mitteln, die auf das Verzweigungssignal ansprechen, zur Zuführung der Verzweigungsadressinformation an die Speichermittel zum Auslesen der zweiten Befehlsfolge aus den Speichermitteln, wobei die Ausführungsmittel die zweite Befehlsfolge ausführen.
2. Prozessor nach Anspruch 1, mit ferner Mitteln (10-13), die zwischen den Anschluß und das ODER-Tor (8) geschaltet sind, zum Halten des Unterbrechungsanforderungssignals.
3. Prozessor nach Anspruch 1, wobei die Haltemittel eine Flip-Flop-Schaltung (11) aufweisen, die durch das Unterbrechungsanforderungssignal gesetzt wird, wobei die Flip-Flop-Schaltung (11) durch die Ausführungsmittel (4) zurückgestellt wird, wenn die Ausführungsmittel die zweite Befehlsfolge ausführen.
DE3751287T 1986-12-01 1987-12-01 Während einer Instruktionsausführung eine Unterbrechungsanforderung empfangender Mikroprogrammkontrolleur. Expired - Fee Related DE3751287T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28693686 1986-12-01

Publications (2)

Publication Number Publication Date
DE3751287D1 DE3751287D1 (de) 1995-06-14
DE3751287T2 true DE3751287T2 (de) 1995-11-16

Family

ID=17710873

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3751287T Expired - Fee Related DE3751287T2 (de) 1986-12-01 1987-12-01 Während einer Instruktionsausführung eine Unterbrechungsanforderung empfangender Mikroprogrammkontrolleur.

Country Status (3)

Country Link
US (1) US4885682A (de)
EP (1) EP0270081B1 (de)
DE (1) DE3751287T2 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5060150A (en) * 1987-01-05 1991-10-22 Motorola, Inc. Process creation and termination monitors for use in a distributed message-based operating system
US5117498A (en) * 1988-08-19 1992-05-26 Motorola, Inc. Processer with flexible return from subroutine
US5781753A (en) 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
JPH02224140A (ja) * 1989-02-27 1990-09-06 Nippon Motoroola Kk 割込試験装置
JPH06105432B2 (ja) * 1989-06-01 1994-12-21 三菱電機株式会社 マイクロプロセッサ
JP2552738B2 (ja) * 1989-09-19 1996-11-13 富士通株式会社 データ処理装置
JPH0749790A (ja) * 1993-06-01 1995-02-21 Matsushita Electric Ind Co Ltd プロセッサにおける割り込み制御方法及び割り込み制御回路
US5889973A (en) * 1995-03-31 1999-03-30 Motorola, Inc. Method and apparatus for selectively controlling interrupt latency in a data processing system
US5774711A (en) * 1996-03-29 1998-06-30 Integrated Device Technology, Inc. Apparatus and method for processing exceptions during execution of string instructions
US6931517B1 (en) * 2001-10-23 2005-08-16 Ip-First, Llc Pop-compare micro instruction for repeat string operations
US7802078B2 (en) * 2008-09-09 2010-09-21 Via Technologies, Inc. REP MOVE string instruction execution by selecting loop microinstruction sequence or unrolled sequence based on flag state indicative of low count repeat
WO2011065145A1 (ja) * 2009-11-24 2011-06-03 日本電気株式会社 プロセッサ、プロセッサによるループ回数制御方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3570006A (en) * 1968-01-02 1971-03-09 Honeywell Inc Multiple branch technique
JPS5530730A (en) * 1978-08-22 1980-03-04 Nec Corp Data processor
US4398244A (en) * 1980-05-07 1983-08-09 Fairchild Camera & Instrument Corporation Interruptible microprogram sequencing unit and microprogrammed apparatus utilizing same
IT1149809B (it) * 1980-06-12 1986-12-10 Honeywell Inf Systems Sequenziatore per unita' di controllo microprogrammata
IT1153668B (it) * 1982-11-24 1987-01-14 Honeywell Inf Systems Organizzazione di memoria di controllo
US4719565A (en) * 1984-11-01 1988-01-12 Advanced Micro Devices, Inc. Interrupt and trap handling in microprogram sequencer
GB2189912A (en) * 1986-04-30 1987-11-04 Philips Electronic Associated Data processing system; A.C. motor control

Also Published As

Publication number Publication date
EP0270081A2 (de) 1988-06-08
US4885682A (en) 1989-12-05
EP0270081B1 (de) 1995-05-10
EP0270081A3 (de) 1991-11-27
DE3751287D1 (de) 1995-06-14

Similar Documents

Publication Publication Date Title
DE2400010C2 (de) Schaltungsanordnung zum Testen eines ein Mikroprogramm enthaltenden Steuerspeichers
DE2555963C2 (de) Einrichtung zur Funktionsmodifizierung
DE2714805C2 (de)
DE3751297T2 (de) Schaltung zur Programmsteuerung.
DE3852928T2 (de) Datenprozessor mit A/D-Umsetzer, um mehrere analoge Eingabekanäle in Digitaldaten umzusetzen.
DE3587213T2 (de) Verarbeitungseinheit mit der faehigkeit ein oder mehrere programme auszufuehren mit einer mehrzahl von funktionseinheiten.
DE3751287T2 (de) Während einer Instruktionsausführung eine Unterbrechungsanforderung empfangender Mikroprogrammkontrolleur.
DE2953861C2 (de)
DE2411963B2 (de) Datenverarbeitungsanlage
DE4302495A1 (de)
DE2317417A1 (de) Takt- und steuerlogikschaltung
DE3650165T2 (de) Buszustandssteuerungsschaltung.
DE2715073A1 (de) Mikroprogrammierte rechner-steuervorrichtung
DE2755616A1 (de) Asymmetrischer multiprozessor
DE3228405A1 (de) Emulator zur erzeugung einer folge von steuersignalen
DE68917647T2 (de) Multiprozessorsteuerungssystem.
DE2747633A1 (de) Dv-system mit einer unterbrechungseinrichtung
DE2721623A1 (de) System zur bearbeitung eines zielsystemprogrammes
DE3854853T2 (de) Datenprozessor mit erweiterten Operationsfunktionen
DE68927292T2 (de) Mikrorechner, geeignet zur Schnellverarbeitung eines Verzweigungsbefehlskodes
DE19957594B4 (de) Verfahren zum Synchronisieren von threads eines Computerprogramms
DE3853985T2 (de) Datenverarbeitungsanlage, geeignet für Hochgeschwindigkeitsverarbeitung.
DE4434529A1 (de) Verfahren zum Verarbeiten eines Befehls mit Einsatzbedingung und Vorrichtung dazu
DE19652290C2 (de) Mikrocomputer
DE2611975A1 (de) Dv-system mit einer einrichtung zur zuordnung von prozessen zu einem prozessor auf einer prioritaetsbasis

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee