Nothing Special   »   [go: up one dir, main page]

DE3121742C2 - Mikroprogramm-Steuereinrichtung - Google Patents

Mikroprogramm-Steuereinrichtung

Info

Publication number
DE3121742C2
DE3121742C2 DE3121742A DE3121742A DE3121742C2 DE 3121742 C2 DE3121742 C2 DE 3121742C2 DE 3121742 A DE3121742 A DE 3121742A DE 3121742 A DE3121742 A DE 3121742A DE 3121742 C2 DE3121742 C2 DE 3121742C2
Authority
DE
Germany
Prior art keywords
microinstruction
microprogram
register
instruction
address
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
Application number
DE3121742A
Other languages
English (en)
Other versions
DE3121742A1 (de
Inventor
Koyo Katsura
Hideo Hitachi Maejima
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.)
Hitachi Ltd
Original Assignee
Hitachi 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
Priority claimed from JP7271580A external-priority patent/JPS57753A/ja
Priority claimed from JP55170942A external-priority patent/JPS5794855A/ja
Priority claimed from JP3959381A external-priority patent/JPS57155643A/ja
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3121742A1 publication Critical patent/DE3121742A1/de
Application granted granted Critical
Publication of DE3121742C2 publication Critical patent/DE3121742C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • 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/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
    • 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
    • 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/261Microinstruction address formation
    • 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/264Microinstruction selection based on results of processing
    • G06F9/265Microinstruction selection based on results of processing by address selection on input of storage

Landscapes

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

Abstract

Es wird ein Mikroprogrammsteuersystem beschrieben, durch das die Verarbeitungsgeschwindigkeit eines Mikroprogramms erhöht, die Kapazität eines Mikroprogrammspeichers vermindert und die Fehlerüberwachung erleichtert werden. Ein Decodierer zum Decodieren des Inhalts eines Anweisungsregisters wird zur Erzielung der hohen Geschwindigkeit weggelassen, und die Anweisungsdecodierfunktion ist in den Mikroprogrammspeicher integriert, so daß ein Universalzwecksteuersystem erzielt wird. Es wird eine Kurzwortspeichereinrichtung verwendet, um die Speicherkapazität des Mikroprogrammspeichers zu vermindern. Außerdem ist eine Überwachungsfunktion für Auslesefehler vorgesehen.

Description

  • Die vorliegende Erfindung betrifft eine Mikroprogramm-Steuereinrichtung der im Oberbegriff des Patentanspruchs 1 beschriebenen, aus der DE-OS 28 46 537 bekannten Art.
  • Bei einem Mikroprogrammsteuersystem werden alle Steuergrößen in einem Mikroprogrammspeicher gespeichert. Demgemäß kann der Inhalt des Speichers fortgeschrieben bzw. aktualisiert werden, damit eine unterschiedliche Ausführung ermöglicht wird, die anders als die vorhergehende ist.
  • Andererseits muß, damit ein unterschiedlicher Anweisungssatz ausgeführt wird, auch der Inhalt eines Anweisungsdecodierers modifiziert werden. Da jedoch der Anweisungsdecodierer gewöhnlich so aufgebaut ist, daß er einem speziellen Anweisungssatz entspricht, muß eine Decodierschaltung von genügend großem Umfang bereitgestellt werden, oder es ist eine mühsame Modifizierung des Schaltungsaufbaus erforderlich, um den vollständig unterschiedlichen Anweisungssatz auszuführen.
  • Bei einer Anweisungsabrufmikroroutine wird in bekannter Weise ein Anweisungswort aus einem Hauptspeicher ausgelesen, und ein Anweisungsdecodierer decodiert es, um eine Anfangsadresse einer Mikroroutine zu erzeugen, die dieser Anweisung entspricht. Die erzeugte Anfangsadresse wird durch eine Adressenwähleinrichtung in einem Mikroprogrammadressenregister gespeichert, und es wird ein Mikroanweisungswort, das mittels des Registers spezifiziert worden ist, aus einem Mikroprogrammspeicher ausgelesen. Ein Operationsfeld (Code) der ausgelesenen Mikroanweisung wird in einem Mikroanweisungsregister gespeichert, und ein Adressenfeld (Code) der Mikroanweisung wird zur Adressenwähleinrichtung zurückgeführt. Das Operationsfeld (Code) der Mikroanweisung wird mittels eines Mikroanweisungsdecodierers decodiert, der verschiedene Steuersignale erzeugt. Andererseits wird der Inhalt des Adressenfelds der Mikroanweisung, der zu der Adressenwähleinrichtung zurückgeführt worden ist, zu einem Mikroprogrammadressenregister übertragen, um die Mikroanweisungen aufeinanderfolgend auszulesen und auszuführen. Bei diesem System wird die Zeitdauer von der Decodierung der Anweisung bis zum Erzeugen der Anfangsadresse hauptsächlich durch die Zugriffszeit des Speichers bestimmt, obwohl sie in Abhängigkeit von der Konfiguration und dem Ausmaß des Anweisungsdecodierers variieren kann. In diesem System bestimmt daher die Konfiguration des Anweisungsdecodierers die Operationsgeschwindigkeit des Prozessors.
  • Ein anderes bekanntes System ist ein Abbildungssystem. Es wird in vielen Fällen in einem Rechner mit einem einfachen Anweisungssatz benutzt. In diesem System ist eine Einrichtung zum Erzeugen eines festen Bitmusters vorgesehen, und das Ausgangssignal von der Bitmustererzeugungseinrichtung und der Inhalt eines Anweisungsregisters, das ein Wort speichert, welches aus einem Hauptspeicher ausgelesen worden ist, werden zur Erzeugung einer Anfangsadresse einer Mikroroutine kombiniert. Dieses System kann insofern als ein vereinfachtes System bezeichnet werden, als darin kein Anweisungsdecodierer verwendet wird. Obwohl dieses System eine kürzere Zeit als das vorerwähnte System benötigt, um den Ausgang des Mikroprogrammadressenregisters zu bilden, ist es nicht ein Universalzwecksystem, weil es nicht bei einem komplizierten Anweisungssatz verwendet werden kann, der zwei oder mehr Anweisungscodes hat, da in diesem System eine "Abzweigstelle-zu"-Adresse zu dem Anweisungscode festgelegt ist. Darüber hinaus nimmt dort, wo eine Mehrzahl von Anweisungscodes eine gemeinsame Operation haben, die Kapazität des Mikroprogrammspeichers zu, weil die "Abzweigstelle-zu"- Adressen unterschiedlich sind. In diesem Sinne ist dieses System kein praktisches System.
  • Aus der US-PS 40 08 462 ist ein Steuersystem bekannt, welches das Auslesen der Mikroanweisungen mit der gleichen Geschwindigkeit wie beim Stande der Technik, jedoch mit einem Steuerspeicher niedriger Leistungsfähigkeit ermöglicht. Hierfür ist aber eine Steuerspeicherbank erforderlich, die eine Mehrzahl von Mikroanweisungen mittels einer einzigen Adressenbezeichnung ausliest.
  • Aus der eingangs erwähnten DE-OS 28 46 537 ist ferner eine Mikroprogramm- Steuereinrichtung bekannt, bei der zur Ausführung eines Makrobefehls unter 2 n Makrobefehlen (d. h. 2 n Seiten) der Mikroprozessor Operationen ausführen muß, die durch Mikrobefehle festgelegt sind. Die Anzahl der Mikrobefehle ist dabei nicht größer als 2 m . Jeder Makrobefehl wird somit in eine Folge von Mikrobefehlen zerlegt und durch Abarbeiten dieser Mikrobefehle ausgeführt. Die Adresse eines Mikroprogramms wird durch Kombination von n-Bits, die einen Befelseingang darstellen, mit dem Inhalt eines m-Bit- Registers erhalten, so daß die Mikrobefehle sukzessive ausgelesen und durch Aktualisieren der Inhalte des m-Bit-Registers ausgeführt werden. Obwohl diese bekannte Mikroprogramm-Steuereinrichtung eine hohe Arbeitsgeschwindigkeit ermöglicht, nimmt dort, wo eine Vielzahl von Befehlscodes eine gemeinsame Operation aufweisen, die Kapazität des Mikroprogrammspeichers zu.
  • Es ist somit Aufgabe der Erfindung, die Mikroprogramm-Steuereinrichtung der eingangs und vorstehend erwähnten Art derart weiterzubilden, daß unter Beibehaltung der hohen Arbeitsgeschwindigkeit die Abarbeitung der Mikroprogramme eine geringere Speicherkapazität erfordert.
  • Die Lösung dieser Aufgabe ergibt sich anhand der kennzeichnenden Merkmale des Patentanspruchs 1.
  • Mit Hilfe der Erfindung kann somit die gleiche Ausführungsroutine, die aus einer Vielzahl von Mikrobefehlen auf einer Seite besteht, gemeinsam für mehrere Befehlscodes verwendet werden, die zum gleichen Befehlstyp gehören.
  • Ferner können mehrere Decodierschritte in der Bearbeitungsfolge eines Befehlscodes durchgeführt werden, indem wenigstens ein Seitenregister mit einem Speicher kombiniert wird, der einen Adressendecodierer aufweist, der einen Teil der Speicheradresse decodieren kann. Auf diese Weise erfolgt eine schrittweise Decodierung eines Befehlscodes, indem ein Teilfeld des Befehlscodes berücksichtigt wird. Besteht zum Beispiel jeder Befehlscode aus einem 3 Bit-Teilfeld für die Seitenadresse und einem 5 Bit-Teilfeld für die Mikrobefehlsadresse, so benötigt die Einrichtung gemäß DE-OS 28 46 537 eine Speicherkapazität von 256 (=2&sup8;) Worten für die Decodierung des ersten Befehlscodes, wohingegen die Erfindung unter gleichen Bedingungen lediglich eine Speicherkapazität von 40 (=2³+2&sup5;) Worten benötigt.
  • Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche 2 bis 12.
  • Die Erfindung wird nachfolgend anhand einiger in der Zeichnung gezeigter Ausführungsformen näher erläutert. Es zeigt
  • Fig. 1A eine allgemeine Anordnung eines Systems, das unter Verwendung einer Mikroprogramm-Steuereinrichtung nach der vorliegenden Erfindung aufgebaut ist;
  • Fig. 1B ein Blockschaltbild einer Mikroprogramm-Steuereinrichtung nach dem Stande der Technik;
  • Fig. 2 eine Darstellung der zeitlichen Steuerung (hierfür wird nachstehend allgemein der Begriff "Zeitablaufdarstellung" verwendet) für diese Einrichtung;
  • Fig. 3 und 4 ein Blockschaltbild bzw. eine Zeitablaufdarstellung eines Systems nach dem Stande der Technik, das man als ein Abbildungssystem bezeichnet;
  • Fig. 5 ein Blockschaltbild eines Nanoprogrammsystems nach dem Stande der Technik;
  • Fig. 6 ein Blockschaltbild eines ein Seitenregister aufweisenden Mikroprogrammsteuersystems zur Erläuterung der vorliegenden Erfindung;
  • Fig. 7 ein Beispiel eines Mikroanweisungsformats;
  • Fig. 8 ein Beispiel einer Operationszeitdarstellung des Systems nach Fig. 6;
  • Fig. 9A eine Konfiguration eines Mikroprogrammspeichers in Verbindung mit Seiten;
  • Fig. 9B ein Beispiel eines Formats eines Signals 6 b in Fig. 6;
  • Fig. 10A eine Konfiguration einer UND-Anordnung bzw. -Matrix 91 der Fig. 9A;
  • Fig. 10B einen Vergleich der Kapazität der UND-Gruppierung 91 in Fig. 9A, in der im Gegensatz zur Fig. 1 kein Decodierer vorgesehen, jedoch im Speicher integriert ist;
  • Fig. 10C ein Beispiel, auf das die vorliegende Erfindung angewandt wird;
  • Fig. 11A ein Blockschaltbild einer anderen Ausführungsform der vorliegenden Erfindung, in dem ein Zusatzseitenregister und ein Zusatzanweisungsregister vorgesehen sind;
  • Fig. 11B Setz- und Rücksetzoperationen, die mittels eines Signals 112 a des Zusatzanweisungsregisters ausgeführt werden;
  • Fig. 12 eine Prozeßablaufdarstellung, die sich mittels der Anweisungsformate ergibt, welche in Fig. 11A gezeigt sind;
  • Fig. 13 ein Blockschaltbild einer Einrichtung, in die ein Kurzwortspeichersystem zur Einsparung von Speicherkapazität eingeführt ist;
  • Fig. 14 Kurzwortmikroanweisungen;
  • Fig. 15 Langwortmikroanweisungen zum Vergleich mit den Anweisungen der Fig. 14;
  • Fig. 16 eine Bitmustererzeugungsschaltung der Einrichtung nach Fig. 13;
  • Fig. 17 ein Blockschaltbild eines Mikroprogrammsteuersystems, das eine Fehlerdetektionsschaltung hat;
  • Fig. 18 eine spezifische bzw. bevorzugte Ausführungsform der Fehlerdetektionsschaltung;
  • Fig. 19 eine Zeitablaufdarstellung hierfür;
  • Fig. 20 eine Abwandlung der Schaltung nach Fig. 18; und
  • Fig. 21 eine Zeitablaufdarstellung hierfür.
  • Zur Erleichterung des Verständnisses der vorliegenden Erfindung sei zunächst der technische Sachverhalt näher erläutert, von dem ausgegangen wird.
  • Die Fig. 1A zeigt ein schematisches Blockschaltbild eines Systems, das einen Hauptspeicher aufweist, sowie einen Prozessor oder eine periphere Schaltung, der bzw. die mit einer Busleitung verbunden ist; und Fig. 1B zeigt eine Mikroprogrammsteuereinheit nach dem Stande der Technik, die der Steuereinheit des in Fig. 1A gezeigten Prozessors entspricht. Ein Ausgangssignal eines Mikroanweisungsdecodierers oder ein Steuersignal steuern eine Verarbeitungseinheit (Fig. 1A).
  • Das in Fig. 1B gezeigte Mikroprogrammsteuersystem umfaßt ein Anweisungsregister 11, einen Anweisungsdecodierer 12, eine Adressenwählschaltung 13, ein Mikroprogrammadressenregister 14, einen Mikroprogrammspeicher 15, ein Mikroanweisungsregister 16 und einen Mikroanweisungsdecodierer 17. In einer Anweisungsabrufmikroroutine wird ein Mikroanweisungswort aus dem Hauptspeicher ausgelesen und im Anweisungsregister 11 gespeichert. Der Anweisungsdecodierer 12 decodiert den Inhalt des Anweisungsregisters 11, um eine Anfangsadresse einer Mikroroutine zu erzeugen, die dem Anweisungscode entspricht. Die mittels des Anweisungsdecodierers 12 erzeugte Anweisungsadresse wird durch die Adressenwählschaltung 13 in das Mikroprogrammadressenregister 14 eingegeben, und ein Mikroanweisungswort, das der Adresse entspricht, wird aus dem Mikroprogrammspeicher 15 ausgelesen. Ein Operationsfeld (Code) der ausgelesenen Mikroanweisung wird in das Mikroanweisungsregister 16 eingegeben, während ein Adressenfeld (Code) der Mikroanweisung zur Adressenwählschaltung 13 zurückgeführt wird. Der Inhalt des Mikroanweisungsregisters 16 wird mittels des Mikroanweisungsdecodierers 17 decodiert, welcher verschiedene Steuersignale erzeugt. Andererseits wird der Inhalt des Adressenfelds, der zur Adressenwählschaltung 13 zurückgeführt worden ist, zum Mikroprogrammadressenregister 14 übertragen, so daß die Mikroanweisungen aufeinanderfolgend ausgelesen und ausgeführt werden. Die Fig. 2 zeigt eine Zeitablaufdarstellung hierfür, worin ein Ausgangssignal 1 a des Anweisungsregisters 11, ein Ausgangssignal 1 b des Anweisungsdecodierers 12, ein Ausgangssignal 1 c des Mikroprogrammadressenregisters 14, ein Ausgangssignal 1 d des Mikroprogrammspeichers 15 und ein Ausgangssignal 1 e des Mikroanweisungsregisters 16 zusammen mit einem Grundtakt gezeigt sind. Die schraffierten Bereiche in Fig. 2 stellen Perioden dar, in denen aufgrund von Verzögerungszeiten in der Schaltung keine Signale gebildet werden und die nach einer Zeitdauer von der Bildung des Ausgangssignals 1 a des Anweisungsregisters 11 bis zur Bildung des Ausgangssignals 1 b des Anweisungsdecodierers 12 auftreten, oder mit anderen Worten nach einer Zeitdauer, die vom Decodieren der Anweisung bis zum Erzeugen der Anfangsadresse vergeht und im wesentlichen mit der Zugriffszeit des Speichers vergleichbar ist, obwohl sie in Abhängigkeit von der Konfiguration und dem Ausmaß des Anweisungsdecodierers variieren kann. Die Fig. 2 zeigt, daß ein Mikroanweisungszyklus, der als "Mikrozyklus" bezeichnet wird, als Wartezeit erforderlich ist, bevor mit dem Auslesen des Mikroprogrammspeichers begonnen wird. Wie oben in Verbindung mit dem Stande der Technik erörtert wurde, ist dieses System mit Schwierigkeiten hinsichtlich der Verarbeitungsgeschwindigkeit und der Universalität behaftet.
  • Die Fig. 3 zeigt ein Beispiel eines Abbildungssystems, und die Fig. 4 zeigt eine Zeitablaufdarstellung hierfür. Es wird in einem Rechner mit einem einfachen Anweisungssatz verwendet. Eine Kombination eines Ausgangssignals einer Festbitmustererzeugungsschaltung 31 und des Inhalts des Anweisungsregisters 11 wird als eine Anfangsadresse der Mikroroutine verwendet. In diesem System wird kein Anweisungsdecodierer verwendet, und infolgedessen ist es ein einfaches System.
  • Die Fig. 4 zeigt eine Beziehung zwischen einem Ausgangssignal 3 a des Anweisungsregisters 11, einem Ausgangssignal 3 b des Mikroprogrammadressenregisters 14, einem Ausgangssignal 3 c des Mikroprogrammspeichers 15 und einem Ausgangssignal 3 d des Mikroanweisungsregisters 16. Die Vorteile und die Nachteile dieses Systems sind weiter oben erörtert worden.
  • Der Mikroprogrammspeicher 15 enthält viele Mikroanweisungen, die in ihren Verarbeitungsinhalten miteinander identisch sind, ausgenommen "Abzweigung-zu"-Adresseninformationsfeldern und gewisse Steuerbits der Mikroanweisungen. In dem in Fig. 1B gezeigten Aufbau werden jedoch die Mikroanweisungen selbst dann, wenn die Inhalt der Mikroanweisungen im wesentlichen identisch sind, gesondert gespeichert, wenn die "Abzweigung-zu"-Adresseninformationsfelder oder gewisse Steuerbits unterschiedlich sind. Infolgedessen enthält der Mikroprogrammspeicher 15 eine Mehrzahl von Mikroanweisungen, die in den Hauptteilen ihrer Bitmuster identisch sind. Demgemäß ist die Ausnutzung des Mikroprogrammspeichers schlecht, und die Speicherkapazität muß erhöht werden. Eine Verbesserung gegenüber dem obigen System ist als Nanoprogrammsystem bekannt, das in Fig. 5 gezeigt ist. In diesem System weist die Mikroanweisung ein "Abzweigung-zu"-Adresseninformationsfeld, ein Steuerbitfeld und ein Nanoprogrammadressenfeld auf. In Ansprechung auf das Nanoprogrammadressenfeld einer aus dem Mikroanweisungsregister 50 ausglesenen Mikroanweisung wird ein Nanoprogrammspeicher 51 aktiviert, eine entsprechende Nanoanweisung zum Erzeugen von verschiedenen Steuersignalen auszulesen. Bei diesem Aufbau werden die Wortglieder der Langwortnanoprogramme dadurch vermindert, daß Überlappungen ausgeschaltet werden, und die Wortlängen der Mikroprogramme, die eine Anzahl von Worten enthalten, werden verkürzt, so daß die Gesamtausnutzung des Speichers verbessert wird. Jedoch ist der Hardware-Aufbau dieses Nanoprogrammsystems kompliziert, und die Ausnutzung ist schlecht, sofern nicht die Wortlänge der Nanoanweisung sehr lang ist. Infolgedessen nimmt die Kapazität des Nanoprogramms 51 zu. Darüber hinaus nimmt, da die Auslesezeit des Nanoprogramms zusätzlich erforderlich ist, die Verarbeitungszeit von der Aktivierung des Mikroprogrammspeichers bis zum Erzeugen der Steuersignale zu. Eine andere Schwierigkeit ergibt sich bei der Verbesserung der Zuverlässigkeit des Mikroprogrammsteuersystems.
  • Ein allgemeines Verfahren des Feststellens eines Fehlers im Mikroprogrammspeicher besteht darin, daß man ein Paritätsbit zur Mikroanweisung hinzufügt und überwacht, ob die Gesamtzahl der "1" Bits in der Mikroanweisung gerade oder ungerade ist.
  • Das Verfahren des Hinzufügens des Paritätsbits derart, daß die Gesamtzahl von "1" Bits gleich einer geraden Zahl ist, wird als Geradzahlparitätsverfahren bezeichnet, und das Verfahren des Hinzufügens des Paritätsbits derart, daß die Gesamtzahl gleich einer ungeraden Zahl ist, wird als Ungeradzahlparitätsverfahren bezeichnet.
  • Das Fehlerdetektionssystem, das mittels Hinzufügung des Paritätsbits arbeitet, ist für die Ermittlung eines Fehlers beim Auslesen der Mikroanweisung wirksam, aber es kann keinen Fehler in der Mikroprogrammadresseninformation und keinen Fehler bei der Decodierung einer Adresse des Mikroprogrammspeichers ermitteln.
  • Es ist ein Kontrollendzeitgebersystem als Fehlerdetektionssystem bekannt, das mittels eines "Überlaufens" der Software oder Hardware arbeitet.
  • Ein konventioneller Kontrollendzeitgeber zählt normalerweise Taktgebungssignale zusammen und wird durch eine Softwareanweisung zurückgesetzt. Wenn der Zeitgeberzählwert einen voreingestellten Zählwert überschreitet, bevor der Zeitgeber zurückgesetzt wird, wird ein Systemwiederbeginnsignal erzeugt.
  • Der Ort der Einfügung des Kontrollendzeitgebers und der Voreinstellungszählwert des Zeitgebers werden so gewählt, daß bei einem normalen Betriebszustand der Zeitgeber stets zurückgesetzt wird, bevor der Zeitgeberzählwert den Voreinstellungszählwert erreicht, und wenn der Kontrollendzeitgeber wegen eines Programmüberlaufs bzw. -verlusts bzw. -datenverlusts oder dergleichen nicht rückgesetzt worden ist, dann überschreitet der Zeitgeberzählwert den Voreinstellungszählwert, so daß das Wiederbeginnsignal erzeugt und der abnormale Vorgang unterbrochen wird.
  • Das Kontrollendzeitgebersystem wird dazu verwendet, das Überlaufen bzw. den Datenverlust auf einem Softwareniveau zu verhindern, so daß der Voreinstellungszählwert des Zeitgebers gewöhnlich ein relativ großer Zählwert ist. Demgemäß arbeitet dieses System dahingehend, daß es eine abnormale Folge im Softwareniveau feststellt, aber es ist für die Feststellung einer abnormalen Folge in einem Mikroanweisungsniveau, das ein schnelles Ansprechen erfordert, nicht praktikabel.
  • Unter Berücksichtigung dieser obigen technischen Beschreibung seien nun bevorzugte Ausführungsformen der vorliegenden Erfindung erläutert.
  • Eine Ausführungsform der vorliegenden Erfindung ist in Fig. 6 gezeigt, in der Elemente, die solchen der Fig. 1 und 3 entsprechen, mit den gleichen Bezugszeichen versehen sind. Ein Seitenregister 61 gehört zur vorliegenden Erfindung. Der Inhalt des Mikroanweisungsregisters wird durch die Adressenwählschaltung 13 in das Adressenregister 14 eingegeben. Der Inhalt des Seitenregisters 61 wird mittels eines Mikroprogramms kontrolliert bzw. gesteuert. Eine Kombination 6 b des Inhalts des Seitenregisters 61 und des Inhalts des Adressenregisters 14 wird dazu verwendet, eine Adresse des Mikroprogrammspeichers 15 zum Auslesen eines Mikroanweisungsworts aus dem Mikroprogrammspeicher 15 zu bezeichnen. Die ausgelesene Mikroanweisung umfaßt ein Operationsfeld 6 c 1, das in das Mikroanweisungsregister 16 eingegeben wird, ein Adressenwählbit 6 c 2, das die Adressenwählschaltung 13 steuert, ein Seitenfeld 6 c 3, das zum Seitenregister 61 zurückgeführt wird, und ein Adressenfeld 6 c 4, das zur Adressenwählschaltung 13 zurückgeführt wird. Der Inhalt des Mikroanweisungsregisters 16 wird mittels des Mikroanweisungsdecodierers 17, der verschiedene Steuersignale erzeugt, decodiert. Das Adressenfeld 6 c 4 der Mikroanweisung, das zur Adressenwählschaltung 13 zurückgeführt worden ist, wird in das Mikroprogrammadressenregister 14 eingegeben, und der Inhalt des Seitenregisters 61 sowie der Inhalt des Mikroprogrammadressenregisters 14 werden kombiniert und auf der Basis der Kombination 6 b wird eine Mikroanweisung aus demMikroprogrammspeicher 15 ausgelesen. Auf diese Weise wird eine Reihe von Mikroanweisungen aufeinanderfolgend ausgeführt. Der Adressenraum des Mikroprogrammspeichers 15 ist in Seitenbereiche klassifiziert, von denen jeder eine Mehrzahl von Worten aufweist, die ein gemeinsames Seitenfeld haben. Ein gewisser Seitenbereich des Speichers ist den vorlaufenden Bereichen der Mikroroutinen zugeordnet, die in Abhängigkeit von dem Inhalt des Anweisungsregisters 11 abzweigen, so daß jede gewünschte Abzweigung ermöglicht werden kann. Darüber hinaus kann durch Kontrollieren bzw. Steuern des Inhalts des Seitenregisters 61 eine Mehrzahl von Abzweigungen zu einem gegebenen Anweisungscode ermöglicht werden (zwei Abzweigungen in dem Beispiel der Fig. 9), so daß das System einem komplizierten Anweisungssatz angepaßt werden kann. Die Anpassung auf einen unterschiedlichen Anweisungssatz wird dadurch ermöglicht, daß man lediglich den Inhalt des Mikroprogrammspeichers 15 ändert, und infolgedessen hat das System eine genügende Universalität.
  • Die Fig. 7 zeigt ein Format der Mikroinstruktion. Es umfaßt ein Funktionsfeld F (neun Bits) zur Spezifizierung einer Operationsart, ein Ursprungsregisterfeld RS (sechs Bits) zum Bezeichnen eines Ausleseregisters, ein Bestimmungsregisterfeld RD (sechs Bits) zum Bezeichnen eines Schreibregisters, ein Adressenwählbitfeld S (ein Bit) zum Steuern der Adressenwählschaltung 13, ein Seitenfeld PF (zwei Bits) zum Bezeichnen einer nächsten "Abzweigung-zu"- Seite und ein Adressenfeld ADF (acht Bits) zum Bezeichnen einer nächsten "Abzweigung-zu"-Adresse.
  • Die Fig. 8 zeigt eine Zeitablaufdarstellung für das System der Fig. 6, worin (B) das Ausgangssignal 6 a des Anweisungsregisters 11 repräsentiert, (C) repräsentiert das Ausgangssignal 6 b des Seitenregisters 61 und des Adressenregisters 14, (D) repräsentiert das Ausgangssignal 6 c des Mikroprogrammspeichers 15, und (E) repräsentiert das Ausgangssignal 6 d des Mikroanweisungsregisters 16, und (A) repräsentiert den Grundtakt. Die schraffierten Bereiche repräsentieren die Zugriffsperioden wie in Fig. 2.
  • In dem System der Fig. 6 ist dem Anweisungsregister 11 kein Anweisungsdecodierer nachgeschaltet. Da der Inhalt des Registers 11 direkt in das Adressenregister 14 eingegeben wird, kann die Zeit, die zum Erzeugen der Anfangsadresse der Mikroroutine erforderlich ist, verkürzt werden, wie man aus Fig. 8 ersieht.
  • Es sei nun der Prozeßvorgang in dem System der Fig. 6 erläutert. In dem Anweisungssatz, der in dem dargestellten Beispiel verwendet wird, wird der Anweisungscode durch acht Bits repräsentiert, von denen drei Bits hoher Ordnung eine Adressierungsart definieren, während fünf Bits niedriger Ordnung einen auszuführenden Inhalt definieren.
  • Die Anweisungen werden in Abhängigkeit von ihren Prozeßvorgängen in die folgenden zwei Hauptkategorien unterteilt:
    • (A) Anweisungen, deren auszuführende Operanden in dem Register sind, oder Anweisungen, die keine Operanden benötigen, wie beispielsweise eine Akkumulatoroperationsanweisung oder eine Rückführanweisung von einer Subroutine. Diejenigen Anweisungen, die "000" in den drei Bitpositionen hoher Ordnung haben, werden hierin klassifiziert. Sie werden zu Prozeßroutinen abgezweigt, welche den Anweisungscodus entsprechen, und zwar nach der Vollendung der Anweisungsabrufroutine.
    • (B) Anweisungen, deren Operanden in dem Speicher sind, wie beispielsweise eine Eingabeanweisung vom Speicher zum Akkumulator, eine Operationsanweisung zwischen dem Akkumulator und dem Speicher, und eine Verzweigungs- bzw. Sprunganweisung. Diese Art von Anweisungen haben 001~111 in den drei Bitpositionen hoher Ordnung, wobei die drei Bits hoher Ordnung eine Operandenadressenberechnungsart definieren, während die fünf Bits niedriger Ordnung einen auszuführenden Inhalt definieren. Die Adressierungsart umfaßt eine Direktadressierungsart, eine Indirektadressierungsart und eine Relativadressierungsart. In dieser Art von Instruktionen zweigen die Instruktionen zu den Adressenberechnungsroutinen nach der Beendigung der Anweisungsabrufroutine ab, und sie zweigen zu den Ausführungsroutinen entsprechend den Anweisungen ab, und zwar nach der Beendigung der Adressenberechnung.

  • Zur Ausführung der Instruktion haben das Anweisungsregister 11, das Adressenregister 14 und das Seitenregister 61 in Fig. 6 acht Bits bzw. acht Bits bzw. zwei Bits, und den Seiten der Adressen des Mikroprogrammspeichers 15 sind die folgenden Funktionen zugeordnet:
    • (1) Seiten (00) und (01)
      Sie werden als Arbeitsbereiche verwendet. Zweite und nachfolgende Worte der Anweisungsabrufroutinen und der Prozeßroutinen werden darin gespeichert.
    • (2) Seite (10)
      Sie ist einem ersten Decodierbereich des Anweisungscodes zugeordnet. Erste Worte der Routine der Anweisungen vom Typ (A) und erste Worte der Adressenberechnungsroutinen der Anweisungen vomTyp (B) werden hierin gespeichert.
    • (3) Seite (11)
      Sie ist ein zweiter Decodierbereich der Anweisungen vom Typ (B). Erste Worte der Ausführungsroutinen werden hierin gespeichert. In der Anweisungsabrufmikroroutine wird ein Anweisungswort aus dem Hauptspeicher ausgelesen und in das Anweisungsregister 11 eingegeben. Wenn die Anweisungsabrufroutine beendet ist, wird (10) in das Seitenregister 61 eingegeben, und der Inhalt des Anweisungsregisters 11 wird in das Adressenregister 14 eingegeben, und der Prozeß zweigt zu der Adresse ab, die dem Anweisungscode auf der Seite (10) entspricht. In der Anweisung vom Typ (A) sind die Mikroroutinen, die von der Adresse ausgehen, welche der Seite (10) entspricht, den Anweisungen entsprechende Ausführungsroutinen. Nach der Beendigung des Ausführungsprozesses kehrt der Prozeß zu der Anweisungsabrufroutine zurück. In der Anweisung vom Typ (B) beginnt die Adressenberechnungsroutine von der Adresse aus, die der Seite (10) entspricht. Wenn die Adressenberechnungsroutine beendet ist, wird (11) in das Seitenregister 61 eingegeben, und der Inhalt des Anweisungsregisters (11) wird in das Adressenregister 14 eingegeben, und der Prozeß zweigt zu der der Seite (11) entsprechenden Adresse ab. Die Routinen, deren erste Worte auf der Seite (11) stehen, sind Ausführungsroutinen für die Anweisungen. Wenn die Ausführungsroutine beendet ist, kehrt der Prozeß zur Anweisungsabrufroutine zurück. Da die Adressenberechnungs- und Ausführungsprozesse für Anweisungen des Typs (B) einer Mehrzahl von Anweisungscodes gemeinsam sind, sind die Mikroanweisungen einer Mehrzal von Adressen identisch, wenn der Prozeß zu der Seite (10) und der Seite (11) abzweigt. In dem vorliegenden System ist ein Wort des Speichers der Mehrzahl von Adressen zugeordnet, so daß wesentlich an Speicherkapazität eingespart wird. Die Fig. 9A veranschaulicht die obigen Verhältnisse, und sie zeigt eine Anordnung bzw. Ausbildung des Speichers. Die Symbole x bezeichnen nichtdecodierte Bereiche. Der Speicher umfaßt eine UND-Matrix 91, die ein Adresseneingangssignal decodiert, um ein Signal zu erzeugen, das ein Wort in dem Speicher bezeichnet, oder eine ODER-Matrix 92 zum Erzeugen eines Inhalts des Worts des Speichers, das mittels des Ausgangssignals der UND-Matrix 91 bezeichnet worden ist. Das Ausgangssignal der ODER-Matrix 92 entspricht dem Signal 6 c in Fig. 6. Die Eingangsadressensignale A&sub0;~A&sub9; für die UND-Matrix 91 entsprechen dem Signal 6 b in Fig. 6. Wie in Fig. 9B gezeigt ist, werden sie aus dem Hauptspeicher (A) ausgelesen oder durch die vorherige Mikroanweisung (Abzweigung) (B) bezeichnet; Fig. 10A zeigt einen ins einzelne gehenden Schaltungsaufbau der UND-Matrix 91 der Fig. 9. Die Symbole g&sub0;~g&sub9; bedeuten Torschaltungen. Zur Decodierung der Adresseninformation sind Transistoren TRS mit positiven Logikseiten von Bits "1" des Adresseneingangs bzw. mit negativen Logikseiten von Bits "0" des Adresseneingangs verbunden. Jeder der Transistoren TRS erzeugt ein Ausgangssignal "1" in Ansprechung auf ein daran angelegtes Eingangssignal "1" und eine Gruppe von Transistoren TRS, die zum Decodieren von je einem der Adresseneingangssignale vorgesehen sind, sind mit einem UND-Tor verbunden, so daß infolgedessen ein Ausgangssignal "1" erzeugt wird, wenn alle Transistoren der Gruppe ein Eingangssignal "1" erhalten. Zum Beispiel liegt in Fig. 10A der Ausgang Ti auf "1", wenn sich die positiven Logikseiten der Eingänge A&sub9; und A&sub7; alle auf "1" befinden, und wenn sich die negativen Logikseiten der Eingänge A&sub8;, A&sub6; und A&sub5; ebenfalls alle auf "1" befinden. In einer UND-Matrix eines konventionellen Speichers wird der Adresseneingang vollständig decodiert, um jeder Adresse ein Wort des Speichers zuzuordnen. In dem vorliegenden System ist es in einigen Fällen wirkunsvoll, die Adresse mittels der UND-Matrix 91 teilweise zu decodieren. Genauer gesagt können die mit X markierten Bereiche in Fig. 9A in der Schaltung der Fig. 10A dadurch realisiert werden, daß man die Transistoren TRS entweder auf der positiven Logikseite oder auf der negativen Logikseite wegläßt. Infolgedessen wird eine Zunahme der Kapazität des Mikroprogrammspeichers 15 aufgrund der Notwendigkeit von identischen Mikroanweisungen an unterschiedlichen Adressen vermieden. Wie in den Fig. 10B und 10C gezeigt ist, werden 512 Transistoren, die für die Seiten (10) und (11) erforderlich sind, auf 71 Transistoren vermindert.

  • In der Anweisung vom Typ (B) werden, wenn der Prozeß zu der Adressierungsroutine auf der Seite (10) abzweigt, die fünf Bits niedriger Ordnung der Adresse nicht decodiert, so daß nur ein Wort des Speichers einer Mehrzahl von Adressen zugeordnet wird, die unterschiedliche Bits niedriger Ordnung haben. Die UND-Matrix 91 kann so aufgebaut sein, daß sie die zwei Bits hoher Ordnung oder die Seite, welche das Feld der Adresse auf der Seite (11) bezeichnet, sowie die fünf Bits niedriger Ordnung decodiert. Dieses System ist besonders wirksam, wenn der Mikroprogrammspeicher ein Nur-Lese-Speicher ist, weil der Inhalt des Adressendecodierers und der Inhalt des Speichers gleichzeitig gebildet werden können.
  • Die Fig. 11A zeigt eine andere Ausführungsform der vorliegenden Erfindung. Sie unterscheidet sich von der Ausführungsform der Fig. 6 insofern, als ein Zusatzseitenregister 111, ein Zusatzanweisungsregister 112 und eine Seitenwählschaltung 113 hinzugefügt sind, damit kompliziertere Anweisungssätze leistungsfähig verarbeitet werden können. Die Elemente und ihre Funktionen werden nachstehend beschrieben.
    • (1) Zusatzseitenregister 111
      Es ist ein vier Bit-Register und hält Daten zurück, die dem Seitenregister 61 zugeführt bzw. zugeordnet werden sollen. Mittels des Mikroprogramms kann jeder gewünschte Inhalt voreingestellt werden.
    • (2) Anweisungsregister 11
      Es ist ein acht Bit-Register und hält ein aus dem Hauptspeicher ausgelesenes Anweisungswort fest.
    • (3) Zusatzanweisungsregister 112
      Es ist ein acht Bit-Register und hat eine gleichartige Funktion wie das Anweisungsregister 11. Dadurch, daß zwei Anweisungsregister vorgesehen werden, kann das System einem ziemlich komplizierten Anweisungssatz angepaßt werden. Das Register hat die zusätzliche Funktion des Setzens und Rücksetzens irgendeines Bits mittels einer Mikroanweisung 112 a (siehe Fig. 11B). Das wird weiter unten erläutert.
    • (4) Seitenwählschaltung 113
      Sie wählt die dem Seitenregister 61 einzugebenden Daten aus dem Inhalt des Zusatzseitenregisters 111 und dem Seitenfeld der aus dem Speicher ausgelesenen Mikroanweisung. Sie wird durch ein Wählsignal von der Mikroanweisung aktiviert.
    • (5) Adressenwählschaltung 13
      Sie wählt die dem Adressenregister 14 einzugebenden Daten von (i) dem Ausgang des Anweisungsregisters 11, (ii) dem Ausgang des Zusatzanweisungsregisters 112 und (iii) dem Adressenfeld der Mikroanweisung. Sie wird durch ein Steuersignal von der Mikroanweisung her aktiviert.
    • (6) Seitenregister 61
      Es ist ein vier Bit-Register und hält vier Bits hoher Ordnung der 12 Bit-Adresse des Mikroprogrammspeichers 15 fest.
    • (7) Mikroprogrammadressenregister 14
      Es ist ein acht Bit-Register und hält acht Bits niedriger Ordnung der Speicheradresse fest.
    • (8) UND-Matrix 91
      Sie ist eine Matrix von12 Bits × (Anzahl der Speicherworte). Sie decodiert eine Adresse zur Bezeichnung eines Worts des Speichers. Die Adressenräume werden in Bereiche (Seiten) sortiert, die vier Bits hoher Ordnung der Adressen gemeinsam haben. Die Adresse wird so partiell wie möglich decodiert, damit die Anzahl von Speicherworten vermindert wird.
    • (9) ODER-Matrix 92
      Sie ist ein Nur-Lese-Speicher, der eine Kapazität von (Anzahl der Speicherworte) × 32 Bits zum Speichern von Mikroprogrammen hat.
    • (10) Mikroanweisungsregister 16
      Es hält ein Operationsfeld einer Mikroanweisung fest, die aus dem Mikroprogrammspeicher 15 ausgelesen worden ist.
    • (11) Mikroanweisungsdecodierer 17
      Er decodiert den Inhalt des Mikroanweisungsregisters 16 und erzeugt Steuersignale für Verarbeitungsschaltungen und Torschaltungen.

  • Es sei nun der in Betracht stehende Anweisungssatz erläutert. Die Anweisungen werden in Abhängigkeit von ihren Prozeßarten in die listenmäßig in Tabelle 1 angegebenen fünf Kategorien klassifiziert. Fig. 12 zeigt einen Prozeßverlauf für diese fünf Arten von Anweisungen. Um diese Anweisungen auszuführen, werden die Adressenräume des Mikroprogrammspeichers 15 in der Weise zugeordnet, wie in Tabelle 2 gezeigt. Tabelle 1 Prozesse von Anweisungen &udf53;ta1,6:5,6:37,6&udf54;&udf53;tz5,5&udf54; &udf53;tw,4&udf54;\&udf53;sg8&udf54;Typ der&udf50;Anweisung\ ProzeÅ&udf53;tz5,10&udf54; &udf53;tw,4&udf54;\&udf53;sg9&udf54;(A)\ Zweigt direkt zu einer AusfÝhrungsroutine ab, die einem Anweisungscode entspricht.&udf53;tz5&udf54; \(B)\ Zweigt nach der Operandenadressenberechnung zur entsprechenden AusfÝhrungsroutine ab.&udf50;Ein auf den Anweisungscode n¿chstfolgendes Wort spezifiziert eine aus einer Mehrzahl&udf50;von Adressierungsarten.&udf53;tz5&udf54; \(C)\ Wenn der Anweisungscode des ersten Worts einen speziellen Wert hat, definiert ein&udf50;auf das erste Wort als n¿chstes folgendes zweites Wort eine neue Anweisung.&udf50;Zweigt zu einer AusfÝhrungsroutine ab, die der neuen Anweisung entspricht.&udf53;tz5&udf54; \(D)\ Entspricht (C), erfordert jedoch eine Operandenadressenberechnung.&udf50;Die Adressierungsart ist identisch derjenigen von (B).&udf53;tz5&udf54; \(E)\ Bits eines auf den Anweisungscode n¿chstfolgenden zweiten Worts sind&udf50;Zul¿ssigkeitskennzeichen fÝr den entsprechenden ProzeÅ.&udf53;tz&udf54; &udf53;te&udf54;@0 Tabelle 2 Adressenseitenzuordnung &udf53;ta1,6:5,6:37,6&udf54;&udf53;tz5,5&udf54; &udf53;tw,4&udf54;\&udf53;sg8&udf54;Seite\ Zuordnung von Funktionen von Bereichen&udf53;tz5,10&udf54; &udf53;tw,4&udf54;\&udf53;sg9&udf54;0000&udf50;0001\ Arbeitsbereich.&udf53;tz5&udf54; \0010\ Erster Decodierbereich des Anweisungscodes.&udf53;tz5&udf54; \0011\ Decodierbereich fÝr die Abzweigung zu einer AusfÝhrungsroutine nach Adressenberechnung fÝr&udf50;Anweisung vom Typ (B).&udf53;tz5&udf54; \0100\ Zweiter Decodierbereich des Anweisungscodes fÝr Anweisungen vom Typ (C) und (D).&udf53;tz5&udf54; \0101\ Decodierbereich zur Abzweigung zu einer AusfÝhrungsroutine nach Adressenberechnung fÝr&udf50;Anweisung vom Typ (D).&udf53;tz5&udf54; \0110\ Decodierbereich fÝr AusfÝhrungsroutine von Anweisungen vom Typ (E).&udf53;tz5&udf54; \0111\ Decodierbereich fÝr Adressenberechnung.&udf53;tz5&udf54; \1000&udf50;1111\ Undefinierte Reservebereiche. Werden in dem vorliegenden Anweisungssatz nicht verwendet.&udf53;tz10&udf54; &udf53;te&udf54;@0
  • Es sei nun der Prozeßverlauf unter Bezugnahme auf die Fig. 11A und 12 erläutert.
  • In der Anweisungsabrufmikroroutine wird ein Anweisungswort aus dem Hauptspeicher ausgelesen und in das Anweisungsregister 11 eingegeben. Bei Beendigung der Anweisungsabrufroutine wird "0010" in das Seitenregister 61 eingegeben, und der Inhalt des Anweisungsregisters 11 wird in das Adressenregister 14 eingegeben, und der Prozeß zweigt zu einer Adresse auf der Seite (0010) ab. In der Anweisung vom Typ (A) ist die Seite (0010) der vorlaufende Bereich der Ausführungsroutine, und die Mikroanweisung, die dem ersten Wort der Ausführungsroutine entspricht, wird in der Adresse gespeichert, die dem Anweisungswort entspricht, und zwar auf der Seite (0010). Das zweite und die folgenden Worte der Routinen werden in dem Arbeitsbereich gespeichert. In der Instruktion vom Typ (B) wird die Adresse vor der Ausführungsroutine berechnet. Die Adressenberechnungsroutine ist für die Anweisungen vom Typ (B) und (D) eine gemeinsame, aber die "Abzweigung-zu"-Adressen nach der Adressenberechnung sind unterschiedlich. Zur leistungsfähigen Verarbeitung in der vorstehenden Weise wird das Zusatzseitenregister 111 benutzt. Der Prozeß der Adressenberechnung unterscheidet sich in Abhängigkeit von dem Inhalt des auf den Anweisungscode nächstfolgenden Worts, aber der Inhalt des Anweisungsregisters 11 sollte aufrechterhalten werden, weil er Informationen über die Abzweigung zu der nächstfolgenden Ausführungsroutine umfaßt. Demgemäß wird das Zusatzanweisungsregister 112 zur Adressenberechnung benutzt. Bei der Ausführung der Anweisung vom Typ (B) auf der Seite (0010) wird das auf den Anweisungscode nächstfolgende Wort aus dem Hauptspeicher ausgelesen und in das Zusatzanweisungsregister 112 eingegeben, und die "Abzweigung-zu"- Seite (0011) nach der Adressenberechnung wird in das Zusatzseitenregister 111 eingegeben. Dann wird der Inhalt des Zusatzanweisungsregisters 112 in das Adressenregister 14 eingegeben, und der Prozeß zweigt zu der Adressenberechnungsroutine entsprechend der Adressierungsart auf der Seite (0111) ab. Bei Beendigung der Adressenberechnungsroutine wird der Inhalt des Zusatzseitenregisters 111 in das Seitenregister 61 eingegeben, und der Inhalt des Anweisungsregisters 11 wird in das Adressenregister 14 eingegeben. Auf diese Weise zweigt der Prozeß für die Anweisung vom Typ (B) zu der Ausführungsroutine auf der Seite (0011) und für die Anweisung vom Typ (D) zu der Ausführungsroutine auf der Seite (0101) ab. Für Anweisungen vom Typ (C) und (D) zweigt der Prozeß mittels des Anweisungscodes des zweiten Worts ab. Demgemäß wird, wenn eine Anweisung vom Typ (C) oder (D) für die Seite (0010) decodiert wird, das dem Anweisungscode nächstfolgende zweite Wort des Hauptspeichers ausgelesen und in das Anweisungsregister 11 eingegeben. Dann wird der Inhalt des Anweisungsregisters 11 in das Adressenregister 14 eingegeben, und der Prozeß zweigt zur Seite (0100) ab. Bei einer Anweisung vom Typ (C) ist die Seite (0100) der vorlaufende Bereich der Ausführungsroutinen. Bei einer Anweisung vom Typ (D) wird ein weiteres nächstfolgendes Wort aus dem Hauptspeicher ausgelesen und in das Zusatzanweisungsregister 112 eingegeben. Die "Abzweigung-zu"-Seite (0101) nach der Adressenberechnung wird in das Zusatzseitenregister 111 eingegeben, und der Inhalt des Zusatzadressenregisters 112 wird in das Adressenregister 14 eingegeben, und der Prozeß zweigt zur Adressenberechnungsroutine auf der Seite (0111) ab. Bei einer Anweisung vom Typ (E) kann ein konditioneller Sprung der Mikroanweisung zu den Bits des auf den Anweisungscodes nächstfolgenden zweiten Worts benutzt werden, aber er verlängert die Mikroroutine und vermindert die Schnelligkeit der Prozeßgeschwindigkeit. Um die obige Schwierigkeit zu überwinden, wird die Bit-um-Bit-Setz- und -Rücksetzfunktion des Zusatzanweisungsregisters 112 benutzt (siehe 112 a in Fig. 11B). Bei der Ausführung einer Anweisung vom Typ (E) auf der Seite (0010) wird das dem Anweisungscode nächstfolgende zweite Wort aus dem Hauptspeicher ausgelesen und in das Zusatzanweisungsregister 112 eingegeben. Dann wird der Inhalt des Zusatzanweisungsregisters 112 in das Adressenregister 14 eingegeben, und der Prozeß zweigt zur Seite (0110) ab. Auf der Seite (0110) wird eine Bit-um-Bit-Decodierung mit den jeweiligen Bits gegebenen Prioritäten ausgeführt, und der Prozeß zweigt zu der Ausführungsroutine ab, die dem Bit entspricht. Wenn alle Bits "0" sind, wird kein Prozeß ausgeführt, und der Prozeß kehrt zur Anweisungsabrufroutine zurück. In der dem Bit entsprechenden Ausführungsroutine wird der entsprechende Prozeß ausgeführt, und das entsprechende Bit des Zusatzanweisungsregisters 112 wird rückgesetzt. Dann wird der Inhalt des Zusatzanweisungsregisters 112 erneut in das Adressenregister 14 eingegeben, und der Prozeß zweigt zur Seite (0110) ab. Bei einem auf diese Weise aufgebauten Mikroprogramm werden die Bits in der Ordnung höherer Priorität verarbeitet, bis alle Bits des Zusatzanweisungsregisters 112 zu "0" wechseln, d. h., daß die Prozesse für "1" Bits beendet worden sind. Dementsprechend kann gemäß der vorliegenden Erfindung selbst eine Spezialanweisung, wie es eine Anweisung vom Typ (E) ist, mit hoher Geschwindigkeit und mit einer geringen Anzahl von Speicherworten ausgeführt werden.
  • Gemäß den dargestellten Ausführungsformen wird der Inhalt des Anweisungsregisters ohne Führung zum Anweisungsdecodierer direkt in das Adressenregister eingegeben, so daß die Betriebsgeschwindigkeit erhöht wird. Dadurch, daß das Seitenregister vorgesehen ist, welches mittels der Mikroanweisung kontrolliert bzw. gesteuert wird, ist das System einem komplexen Anweisungssatz angepaßt. Da die Anweisungsdecodierfunktion in dem Speicher integriert ist, sind die Flexibilität und die Universalität des Systems vergrößert. Ein Wort des Speichers kann zu einer Mehrzahl von Adressen verwendet werden, indem die Adresse des Speichers partiell decodiert wird. Dadurch, daß das Zusatzseitenregister vorgesehen ist, kann eine gemeinsame Routine an einer Mehrzahl von Stellen verwendet werden, so daß die Speicherkapazität vermindert werden kann. Da jedes Bit des Zusatzanweisungsregisters mittels der Mikroanweisung gesetzt und zurückgesetzt werden kann, kann eine Spezialanweisung, in welcher die Bits des auf den Anweisungscode nächstfolgenden zweiten Worts Zulässigkeitskennzeichen für die entsprechenden Prozesse sind, mit einer hohen Geschwindigkeit bei einer geringeren Anzahl von Speicherworten verarbeitet werden.
  • Fig. 13 zeigt eine Ausführungsform, durch die die Ausnutzung des Mikroprogrammspeichers in dem Mikroprogrammsteuersystem erhöht wird. Nach Fig. 13 umfaßt der Mikroprogrammspeicher 15 einen Langwortmikroprogrammspeicher 131, einen Kurzwortmikroprogrammspeicher 132, eine Bitmustererzeugungsschaltung 133 und eine Mikroanweisungswählschaltung 134. Das Adressensignal 6 b des Mikroprogramms wird dem Langwort- und Kurzwortmikroprogrammspeicher 131 und 132 zugeführt, und es wird ein der Adresse entsprechendes Mikroanweisungswort ausgelesen. Das Ausgangssignal des Langwortmikroprogrammspeichers 131 wird der Mikroanweisungswählschaltung 134 direkt zugeführt. Ein Teil des Ausgangssignals des Kurzwortmikroprogrammspeichers 131 wird der Bitmustererzeugungsschaltung 133 zugeführt, und ein darin erzeugtes Bitmuster wird der Mikroanweisungswählschaltung 134 zusammen mit dem Restteil 135 zugeführt. Die Mikroanweisungswählschaltung 134 wählt das lange Wort oder das kurze Wort. Die Wahl wird mittels eines Teils der ausgelesenen Mikroanweisung oder mittels eines Teils der Adresseninformation durchgeführt, oder mittels einer verdrahteten ODER-Schaltung ohne spezielle Wählsignale. Nach Fig. 13 wird die Auswahl mittels eines Signals 163 a von einem der beiden Bits hoher Ordnung ausgeführt.
  • Bei dieser Anordnung wird die aus dem Speicher 132 ausgelesene Kurzwortmikroanweisung in eine Langwortmikroanweisung übersetzt und als eine Mikroanweisung decodiert.
  • Die Fig. 14 zeigt drei Arten (I~III) von Kurzwortmikroanweisungen, die eine hohe Gebrauchshäufigkeit haben. Die Wortlänge beträgt 8 bit und S 7 sowie S 6 repräsentieren ein zwei-Bit-Kontrollfeld, und S 5 S 0 repräsentieren ein "sechs-Bit-Abzweigung-zu"-Adressenfeld (ADF). Das Kontrollfeld S 7, S 6 zeigt die Mikroanweisung I an, wenn es (01) ist, die Mikroanweisung II, wenn es (10) ist und die Mikroanweisung III, wenn es (11) ist. Im Kontrollfeld wird (00) nicht verwendet. In der dargestellten Ausführungsform wird nur dann, wenn das Kontrollfeld S 7, S 6 der ausgelesenen Kurzwortmikroanweisung nicht (00) ist, die Kurzwortmikroanweisung gewählt, und wenn es (00) ist, wird die Langwortmikroanweisung gewählt. In Fig. 13 ist das Wählsignal mit 163 a bezeichnet.
  • Wie in Fig. 15 dargestellt, hat die Langwortmikroanweisung eine Länge von 16 bit, wobei L 15~L 6 ein 10-Bit-Kontrollfeld und L 5~L 0 ein "6-Bit-Abzweigungs-zu"-Adressenfeld ist. Die Fig. 15 veranschaulicht die Beschreibung der Langwortmikroanweisungen der drei Arten von Mikroanweisungen. Obwohl es bei den Langwortmikroanweisungen viele andere Muster gibt, als es diese drei Arten sind, werden solche Mikroanweisungen weniger häufig benutzt als die Mikroanweisungen I~III, und sie werden in dem Langwortmikroprogrammspeicher 131 gespeichert.
  • Nach Fig. 13 werden die Mikroanweisungen I~III, die eine hohe Benutzungsfrequenz haben, mit dem in Fig. 14 gezeigten Aufbau in dem Kurzwortmikroprogrammspeicher 132 gespeichert; und wenn die Kurzwortmikroprogrammanweisung ausgelesen wird, dann wird sie mittels der Bitmustererzeugungsschaltung 133 in ein in Fig. 15 gezeigtes Langwortmikroanweisungsmuster umgewandelt.
  • Die Fig. 16 zeigt eine Ausführungsform der Bitmustererzeugungsschaltung zum Umwandeln der in Fig. 14 gezeigten Kurzwortmikroanweisung in die in Fig. 15 gezeigte Langwortmikroanweisung. Die Bits S 5~S 0 der Kurzwortmikroanweisung entsprechen direkt den Bits L 5~L 0 des "Abzweigung-zu"-Adressenfelds. "0" Signale werden zu L 15 und L 9 zugeführt, und "1" Signale werden zu L 12, L 10 und L 6 zugeführt. Die Bits L 14, L 11 und L 8 sind "0" für die Mikroanweisung I und "1" für die Mikroanweisungen II und III. Demgemäß wird das S 7 Ausgangssignal der Kurzwortmikroanweisung direkt zugeführt. Das Bit L 7 ist "1" für die Mikroanweisung I und "0" für die Mikroanweisungen II und III. Demgemäß wird das Bit S 7 direkt durch einen Inverter 161 zugeführt. Da das Bit L 13 für die Mikroanweisung III nur "1" ist, werden die Ausgangssignale S 6 und S 7 über ein UND-Tor 162 zugeführt. Das auf diese Weise bei L 15~L 0 erzeugte 16 Bit Signal wird der Mikroanweisungswählschaltung 134 als das Kurzwortmikroanweisungsausgangssignal zugeführt. Andererseits werden die Bits S 6 und S 7 durch ein ODER-Tor 163 als ein Mikroanweisungswählsignal zugeführt. Die Mikroanweisungswählschaltung 134 wählt das kurze Wort, wenn das Wählsignal "1" ist, und das lange Wort, wenn das Wählsignal "0" ist. Wegen der kurzen Länge des Worts hat der Kurzwortmikroprogrammspeicher 132 eine kürzere Auslesezeit als der Langwortmikroprogrammspeicher 131. Demgemäß beeinträchtigt die Hinzufügung einiger weniger Torschaltungen, wie sie in Fig. 16 gezeigt ist, nicht den Hochgeschwindigkeitsbetrieb des Mikroprogrammsteuersystems. In dem vorliegenden System geht, da nur die spezifizierten Mikroanweisungen von kurzer Wortlänge sind und die Langwortmikroanweisungen auch genauso gut verwendet werden, die Universalität der Mikroanweisungen nicht durch Verkürzung der Wortlänge verloren.
  • Wie oben beschrieben wurde, können gemäß der dargestellten Ausführungsform die Mikroanweisungen, die eine hohe Benutzungsfrequenz haben, durch die Hinzufügung einiger weniger Schaltungskomponenten in Kurzwortlänge gespeichert werden, so daß die Ausnutzung des Speichers vergrößert wird, ohne daß es zu einem Verlust der hohen Geschwindigkeit und der Universalität kommt.
  • Wie vorstehend beschrieben, wird mit der vorliegenden Erfindung ein Mikroprogrammsteuersystem mit einer hohen Speicherausnutzung bzw. -leistungsfähigkeit zur Verfügung gestellt.
  • Es sei nun eine Ausführungsform erläutert, durch die die Zuverlässigkeit des Mikroprogrammsteuersystems vergrößert wird. In Fig. 17 ist mit 171 ein Mikroprogrammanfangsadressengenerator bezeichnet, 301 ist ein Frequenzteiler, und 302 ist eine Phasenfehlerdetektionsschaltung. Zum Feststellen eines Fehlers wird ein zur Mikroanweisung hinzugefügtes Phaseninformationsbit P benutzt.
  • Der Frequenzteiler 301 erzeugt einen Bezugstakt 4 b, der eine Periode hat, die ein Vielfaches derjenigen des Mikroanweisungsausführungstakts 4 a ist. Der Bezugstakt 4 b wird auf den einen Eingang der Phasenfehlerdetektionsschaltung 302 gegeben.
  • Ein Phaseninformationssignal 4 c, das weiter unten beschrieben wird, wird auf den anderen Eingang der Phasenfehlerdetektionsschaltung 302 gegeben. Jede Mikroanweisung wird vorherbestimmungsgemäß bei einer vorbestimmten Phase des Bezugstakts 4 b ausgeführt, und das Phasenbit P der Mikroanweisung beinhaltet die Phaseninformation, welche diese vorbestimmte Phase angibt. Die Phaseninformation des Phasenbits P ist mit 4 c bezeichnet.
  • Die Phasenfehlerdetektionsschaltung 302 überwacht das Zusammenfallen der Phaseninformation 4 c des Phasenbits P der Mikroanweisung mit der Phase des Bezugstakts 4 b, und im Falle eines Nichtzusammenfallens erzeugt sie ein Fehlersignal 4 d.
  • Das Fehlersignal 4 d wird dem Mikroprogrammanfangsadressengenerator 171 zugeführt, der eine vorlaufende Adresse einer Folgefehlerverarbeitungsmikroroutine erzeugt.
  • Die Fig. 18 zeigt jeweils eine spezifische Anordnung bzw. Ausbildung des Frequenzteilers 301 und der Phasenfehlerdetektionsschaltung 302, die in Fig. 17 gezeigt sind. Die Frequenzteilerschaltung 301 umfaßt oder ist ein Flip-Flop vom T-Typ, das den Mikroanweisungsausführungstakt 4 a durch den Faktor 2 teilt, um den Bezugstakt 4 b zu erzeugen. Wie oben beschrieben, wird das Phasenbit P zur Mikroanweisung hinzugefügt, um anzuzeigen, ob diese beim Bezugstakt "1" oder "0" ausgeführt wird. Die Phasenfehlerdetektionsschaltung 302 umfaßt oder ist ein Exklusiv-ODER-Tor, dem die Bezugsphase 4 b und die Phaseninformation 4 c der Mikroanweisung zugeführt wird und das das Fehlersignal 4 d erzeugt. Die Fig. 19 zeigt eine Zeitablaufdarstellung für die Signale der Fig. 18. Sie zeigt die Wellenformen des Mikroanweisungsausführungstakts 4 a, des Bezugstakts 4 b, der Mikroanweisungsphaseninformation 4 c und des Fehlersignals 4 d. In den Mikrozyklen (n-3)~(n-1) ist das Fehlersignal 4 d gleich "0", da der Bezugstakt 4 b in Phase mit der Mikroanweisungsphaseninformation 4 c ist, aber im Mikrozyklus n ist das Fehlersignal 4 d gleich "1", da das Bezugssignal 4 b den Wert "0" hat, während die Mikroanweisungsphaseninformation 4 c gleich "1" ist, wodurch ein Fehler in der Mikroprogrammsteuerfolge angezeigt wird.
  • Gemäß der auf diese Weise aufgebauten Ausführungsform der vorliegenden Erfindung kann ein Fehler in der Mikroprogrammsteuerfolge, der durch einen Fehler in der Adresseninformation oder einen Fehler beim Decodieren der Adresse des Mikroprogrammspeichers 174 verursacht worden ist, festgestellt werden. In der Ausführungsform, in der der Bezugstakt eine Periode hat, die die Hälfte der Länge der Periode des Mikroanweisungsausführungstakts beträgt, können ungefähr die Hälfte von Fehlern in der Mikroprogrammsteuerfolge als die Phasenfehler festgestellt werden. Darüber hinaus kann, da der in der Mikroprogrammsteuerfolge festgestellte Fehler mittels des Mikroprogramms verarbeitet werden kann, ein abnormaler Prozeß, wie beispielsweise ein Wiederbeginnprozeß oder ein Unterbrechungsprozeß, leicht ausgeführt werden.
  • Die Fig. 20 zeigt Anordnungen bzw. Ausbildungen des Frequenzteilers 301 und der Phasenfehlerdetektionsschaltung 302 in einer anderen Ausführungsform der Anordnung nach Fig. 17. Der Frequenzteiler 301 umfaßt zwei Stufen von Flip-Flops vom T-Typ, denen der Mikroanweisungsausführungstakt 4 a zugeführt wird und die einen eins-zu-zwei-frequenzgeteilten Takt 4 b-1 und einen eins-zu-vier-frequenzgeteilten Takt 4 b-2 erzeugen. Zwei Phasenbits werden zu der Mikroanweisung hinzugefügt, und Phasen "00", "01", "10" und "11" werden in der Folge der Ausführung der Mikroanweisungen gespeichert. Die Phasenbits 4 c-1 und 4 c-2 der ausgelesenen Mikroanweisung entsprechen 4 b-1 bzw. 4 b-2 des Bezugstakts, und sie sind in einer normalen Operationsfolge in Phase. Die Phasenfehlerdetektionsschaltung 302 stellt eine Antikoinzidenz bzw. ein Nichtzusammenfallen des Phasenbits und des Bezugstakts fest, und sie umfaßt zwei Exklusiv-ODER- Tore und ein ODER-Tor. Wenn 4 b-1 und 4 c-1 nicht in Phase sind, oder wenn 4 b-2 und 4 c-2 nicht in Phase sind, dann nimmt das Fehlersignal 4 d den Wert "1" an.
  • Die Fig. 21 zeigt eine Zeitablaufdarstellung für die in Fig. 20 gezeigten Signale. Sie veranschaulicht Wellenformen des Mikroanweisungsausführungstakts 4 a, der Bezugstakte 4 b-1 und 4 b-2, der Mikroanweisungsphasenbits 4 c-1 und 4 c-2 sowie des Fehlersignals 4 d. In den Mikrozyklen (n-6) ~(n-1) ist das Fehlersignal 4 d gleich "0", weil die Bezugstakte 4 b-1 und 4 b-2 sowie die Mikroanweisungsphasenbits 4 c-1 und 4 c-2 jeweils in Phase sind, jedoch ist das Fehlersignal 4 d im Mikrozyklus n gleich "1", weil die Bezugstakte 4 b-1 und 4 b-2 jeweils "1" und "1" betragen, während die Mikroanweisungsphasenbits 4 c-1 und 4 c-2 jeweils "0" und "1" sind. Das zeigt, daß in dem Mikrozyklus n ein Fehler in der Mikroprogrammsteuerfolge enthalten war.
  • In der vorliegenden Ausführungsform, in der zwei Phasenbits zur Mikroanweisung hinzugefügt werden und in der der Takt, welcher eine Periode hat, die das Vierfache der Periode des Mikroanweisungsausführungstakts beträgt, als Bezugstakt benutzt wird, können ungefähr 75% der Fehler in der Mikroprogrammsteuerfolge als die Phasenfehler festgestellt werden.

Claims (12)

1. Mikroprogramm-Steuereinrichtung mit einem Seitenregister zur Bestimmung einer Seitenadresse für einen in Seiten unterteilten Mikroprogrammspeicher, wobei der Inhalt des Seitenregisters durch den Inhalt eines vom Mikroprogrammspeicher ausgelesenen Mikrobefehlswortes änderbar ist, und mit einem Mikroprogrammadressenregister, das in der vom Seitenregister festgelegten Seite eine Adresse für den Mikroprogrammspeicher festlegt, wobei entsprechend einem, aus einem Hauptspeicher ausgelesenen oder einem extern zugeführten und in einem Anweisungsregister abgespeicherten Befehl aus dem Mikroprogrammspeicher Mikrobefehle ausgelesen werden und jeder ausgelesene Mikrobefehl zur Steuerung einer Verarbeitungseinheit decodiert wird, dadurch gekennzeichnet, daß wenigstens eine Seite des Mikroprogrammspeichers (15; 91, 92) für die Befehlsdecodierung vorgesehen ist und daß zur Bestimmung der Mikroprogrammadresse das Mikroprogrammadressenregister (14) auf gewöhnliche Abzweigungen hin den Inhalt (6 c 4) des vom Mikroprogrammspeicher (15) ausgelesenen Mikrobefehlswortes (6 c) oder auf die Dekodierung eines Befehls hin den Inhalt des Anweisungsregisters (11) lädt, während das Seitenregister (61) eine Seite zur Befehlsdecodierung bestimmt, so daß der Befehl unter Verwendung mehrerer Seiten des Mikroprogrammspeichers (15) schrittweise decodiert wird.
2. Mikroprogramm-Steuereinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der Mikroprogrammspeicher (15) eine UND-Matrix (91) zum Decodieren eines Eingangsadressensignals und eine ODER-Matrix (92) zum Speichern der Mikrobefehle umfaßt.
3. Mikroprogramm-Steuereinrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die UND-Matrix (91) eine oder mehrere Schaltereinrichtungen nur an Bitpositionen aufweist, an denen eine Decodierung erforderlich ist.
4. Mikroprogramm-Steuereinrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß sie weiter ein drittes Register (111) zur Ergänzung des Seitenregisters (61) aufweist, wobei ein Teil des aus dem Mikroprogrammspeicher (15) ausgelesenen Mikrobefehls in das dritte Register (111) eingegeben wird, und wobei ferner der Inhalt des dritten Registers (111) in das Seitenregister (61) eingegeben wird.
5. Mikroprogramm-Steuereinrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß mehrere Anweisungsregister (11, 112) vorgesehen sind, und daß der Inhalt von einem der Anweisungsregister (11, 112) in das Mikroprogrammadressenregister (14) eingegeben wird.
6. Mikroprogramm-Steuereinrichtung nach einem der vorstehenden Ansprüche, mit einem Mikrobefehle enthaltenden Mikroprogrammspeicher, gekennzeichnet durch:
eine erste Speichereinrichtung (131) zum Speichern von Langwortmikrobefehlen,
eine zweite Speichereinrichtung (132) zum Speichern von Kurzwortmikrobefehlen,
eine Langwortbitmustererzeugungseinrichtung (133), die zur Erzeugung eines Bitmusters eines Langwortmikrobefehls ein Feld des Kurzwortmikrobefehls empfängt,
eine Mikrobefehlswähleinrichtung (134) zur selektiven Ausgabe des in der ersten Speichereinrichtung (131) gespeicherten Langwortmikrobefehls oder des aus dem Kurzwortmikrobefehl umgewandelten Langwortmikrobefehls unter Verwendung des von der Langwortbitmustererzeugungseinrichtung (133) erzeugten Bitmusters.
7. Mikroprogramm-Steuereinrichtung nach Anspruch 6, dadurch gekennzeichnet, daß die Langwortbitmustererzeugungseinrichtung (133) eine Logikschaltung enthält, deren Eingang ein Teil der Bitsignale des Kurzwortmikrobefehls zugeführt wird und die durch Kombination der von der Logikschaltung und vom Kurzwortmikrobefehl erzeugten Ausgangsbits den Langwortmikrobefehl erzeugt.
8. Mikroprogramm-Steuereinrichtung nach Anspruch 6 oder 7, dadurch gekennzeichnet, daß sie weiter eine logische ODER-Schaltung (163) zum Empfang vorbestimmter mehrerer Bits bzw. Mehrfachbits des Kurzwortmikrobefehls umfaßt, wobei ein vorbestimmter Zustand des Ausgangssignals der logischen ODER-Schaltung (163) zur Steuerung der Mikrobefehlswähleinrichtung (134) verwendet wird.
9. Mikroprogramm-Steuereinrichtung nach einem der vorstehenden Ansprüche, in der im Mikroprogrammspeicher gespeicherte Mikrobefehle synchron mit einem Mikrobefehlsausführungstakt ausgelesen werden, gekennzeichnet durch:
eine Bezugstakterzeugungseinrichtung (301) zum Erzeugen eines Bezugstakts, dessen Periode ein Vielfaches einer bzw. der Periode des Mikrobefehlsausführungstakts ist, und
eine Vergleichseinrichtung (302) zum Vergleichen eines Phaseninformationsbitsignals des Mikrobefehls mit dem Bezugstaktsignal zur Feststellung eines Fehlers in der Auslesungsfolge des Mikrobefehls.
10. Mikroprogramm-Steuereinrichtung nach Anspruch 9, dadurch gekennzeichnet, daß die Bezugstakterzeugungseinrichtung (301) einen Frequenzteiler zur Frequenzteilung des Mikrobefehlsausführungstakts umfaßt, oder ein solcher Frequenzteiler ist.
11. Mikroprogramm-Steuereinrichtung nach Anspruch 10, dadurch gekennzeichnet, daß der Frequenzteiler ein Flip-Flop (311) vom T-Typ aufweist oder ist.
12. Mikroprogramm-Steuereinrichtung nach einem der Ansprüche 9 bis 11, dadurch gekennzeichnet, daß die Vergleichseinrichtung (302) ein Exklusiv-ODER-Tor (312) umfaßt, welches das Phaseninformationsbitsignal des Mikrobefehls und ein Ausgangssignal von dem Flip-Flop (311) vom T-Typ, welches ein Mikrozyklustaktsignal erhält.
DE3121742A 1980-06-02 1981-06-01 Mikroprogramm-Steuereinrichtung Expired DE3121742C2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP7271580A JPS57753A (en) 1980-06-02 1980-06-02 Microprogram controller
JP55170942A JPS5794855A (en) 1980-12-05 1980-12-05 Method and device for fault detection of microprogram control sequence
JP3959381A JPS57155643A (en) 1981-03-20 1981-03-20 Microprogram controller

Publications (2)

Publication Number Publication Date
DE3121742A1 DE3121742A1 (de) 1982-02-11
DE3121742C2 true DE3121742C2 (de) 1987-04-23

Family

ID=27290188

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3121742A Expired DE3121742C2 (de) 1980-06-02 1981-06-01 Mikroprogramm-Steuereinrichtung

Country Status (3)

Country Link
US (1) US4446517A (de)
DE (1) DE3121742C2 (de)
GB (1) GB2077010B (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8205076A (nl) * 1982-12-31 1984-07-16 Philips Nv Data processor eenheid voorzien van een stuurgedeelte welk een adresgenerator bevat voor het genereren van adressen welke uit karakteristieke adresdelen zijn samengesteld.
US4819164A (en) * 1983-12-12 1989-04-04 Texas Instruments Incorporated Variable frequency microprocessor clock generator
JPS6224326A (ja) * 1985-07-24 1987-02-02 Hitachi Ltd デ−タ処理装置
JPS62164133A (ja) * 1986-01-16 1987-07-20 Toshiba Corp マイクロプログラム制御装置
US4807124A (en) * 1986-09-26 1989-02-21 Performance Semiconductor Corporation Register addressing system for efficient microroutine sharing and optimization
JP2635057B2 (ja) * 1987-11-04 1997-07-30 株式会社日立製作所 マイクロプロセッサ
US4888727A (en) * 1989-01-10 1989-12-19 Bull Hn Information Systems Inc. Peripheral controller with paged data buffer management
US5651122A (en) * 1991-05-13 1997-07-22 Motorola, Inc. Pipelined data processor that detects an illegal instruction by detecting legal instruction operation codes
US5752066A (en) * 1992-01-06 1998-05-12 International Business Machines Corporation Data processing system utilizing progammable microprogram memory controller
US5548746A (en) * 1993-11-12 1996-08-20 International Business Machines Corporation Non-contiguous mapping of I/O addresses to use page protection of a process
WO2003029960A1 (en) * 2001-10-01 2003-04-10 Benjamin Cooper General purpose fixed instruction set (fis) bit-slice feedback processor unit/computer system
JP3779602B2 (ja) 2001-11-28 2006-05-31 松下電器産業株式会社 Simd演算方法およびsimd演算装置
US20050165837A1 (en) * 2004-01-22 2005-07-28 International Business Machines Corporation System and method for embedded java memory footprint performance improvement
US20050183077A1 (en) * 2004-02-12 2005-08-18 International Business Machines Corporation System and method for JIT memory footprint improvement for embedded java devices
US20090228686A1 (en) * 2007-05-22 2009-09-10 Koenck Steven E Energy efficient processing device
US7693167B2 (en) * 2007-05-22 2010-04-06 Rockwell Collins, Inc. Mobile nodal based communication system, method and apparatus
US20090228693A1 (en) * 2007-05-22 2009-09-10 Koenck Steven E System and method for large microcoded programs
US7843554B2 (en) * 2008-04-25 2010-11-30 Rockwell Collins, Inc. High dynamic range sensor system and method
JP7316613B2 (ja) * 2020-03-27 2023-07-28 パナソニックIpマネジメント株式会社 異常検出方法、異常検出プログラム、異常検出装置、書き換え方法、書き換えプログラム及び書き換え装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4939852B1 (de) * 1969-11-19 1974-10-29
US3839705A (en) * 1972-12-14 1974-10-01 Gen Electric Data processor including microprogram control means
JPS5410219B2 (de) * 1973-12-07 1979-05-02
US3949370A (en) * 1974-06-06 1976-04-06 National Semiconductor Corporation Programmable logic array control section for data processing system
US4021781A (en) * 1974-11-19 1977-05-03 Texas Instruments Incorporated Virtual ground read-only-memory for electronic calculator or digital processor
US3980992A (en) * 1974-11-26 1976-09-14 Burroughs Corporation Multi-microprocessing unit on a single semiconductor chip
US4091446A (en) * 1975-01-24 1978-05-23 Ing. C. Olivetti & C., S.P.A. Desk top electronic computer with a removably mounted ROM
US4099230A (en) * 1975-08-04 1978-07-04 California Institute Of Technology High level control processor
US4323964A (en) * 1976-11-01 1982-04-06 Data General Corporation CPU Employing micro programmable control for use in a data processing system
DE2846537C2 (de) * 1978-10-26 1986-09-18 Standard Elektrik Lorenz Ag, 7000 Stuttgart Mikroprogrammierte Datenverarbeitungseinrichtung
US4224668A (en) * 1979-01-03 1980-09-23 Honeywell Information Systems Inc. Control store address generation logic for a data processing system
DE2951040A1 (de) * 1979-01-16 1980-07-24 Digital Equipment Corp Steuerspeicher in einem steuerabschnitt eines rechners

Also Published As

Publication number Publication date
GB2077010A (en) 1981-12-09
US4446517A (en) 1984-05-01
GB2077010B (en) 1984-10-31
DE3121742A1 (de) 1982-02-11

Similar Documents

Publication Publication Date Title
DE3121742C2 (de) Mikroprogramm-Steuereinrichtung
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE2714805C2 (de)
DE2542740C2 (de) Datenverarbeitungsanlage mit einer Mikroprogrammsteuerung
DE2113890C2 (de) Zentrale Verarbeitungseinrichtung für Datenverarbeitungsanlagen
DE3751297T2 (de) Schaltung zur Programmsteuerung.
DE2813128C2 (de) Steuereinrichtung für Mikroprogrammspeicher
DE3688824T2 (de) Datenverarbeitungssystem.
DE2023354C2 (de) Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher
DE3752017T2 (de) Mikrorechner mit Zugriffsfähigkeit auf einen internen Speicher mit gewünschter variabler Zugriffszeit
DE2611892C2 (de) Mikroprogramm-Steueranordnung
DE2524046C2 (de) Elektronische Datenverarbeitungsanlage
DE2555963A1 (de) Einrichtung zur funktionsmodifizierung
DE2540975A1 (de) Multi-mikro-prozessor-einheit
DE2117936A1 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
DE2928488A1 (de) Speicher-subsystem
DE3128740A1 (de) Dynamisches halbleiter-speichersystem
DE2421130C2 (de)
DE2717658A1 (de) Anordnung zur ansteuerung eines mikroprogrammspeichers
DE3856139T2 (de) Mikroprozessor
DE1197650B (de) Parallel-Addierer
DE1474063A1 (de) Datenverarbeitungsanlage
DE2926322A1 (de) Speicher-subsystem
DE2426874A1 (de) Verfahren und schaltungsanordnung zur bestimmung der adressenart eines befehls
DE68925376T2 (de) In Direktabbildung und in Bankabbildung wirksamer Informationsprozessor und Verfahren zum Schalten der Abbildungsschemas

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8128 New person/name/address of the agent

Representative=s name: VON FUENER, A., DIPL.-CHEM. DR.RER.NAT. EBBINGHAUS

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee