DE3121742A1 - Mikroprogrammsteuerverfahren und -einrichtung zu dessen durchfuehrung - Google Patents

Mikroprogrammsteuerverfahren und -einrichtung zu dessen durchfuehrung

Info

Publication number
DE3121742A1
DE3121742A1 DE19813121742 DE3121742A DE3121742A1 DE 3121742 A1 DE3121742 A1 DE 3121742A1 DE 19813121742 DE19813121742 DE 19813121742 DE 3121742 A DE3121742 A DE 3121742A DE 3121742 A1 DE3121742 A1 DE 3121742A1
Authority
DE
Germany
Prior art keywords
instruction
microprogram
register
microinstruction
memory
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.)
Granted
Application number
DE19813121742
Other languages
English (en)
Other versions
DE3121742C2 (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
Granted 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)

Description

Beschreibung
·- ι ■)■ · . Die vorliegende Erfindung betrifft ein Mikroprogrammsteuerverfahren und eine Einrichtung hierfür, die einen Mikroprogrammspeicher mit einer Anwexsungsdecodierfunktion hat, worin der Mikroprogranunspeicher insbesondere so angeordnet und ausgebildet ist, daß er Kurzwortlängen-Mikroanweisungen speichert und eine abnormale Mikroprogrammfolge feststellt. '
In dem Mikroprogrammsteuersystem werden alle Steuergrößen in dem Mikroprogrammspeicher gespeichert. Demgemäß kann der Inhalt des Speichers fortgeschrieben bzw. aktualisiert .15 werden, damit eine unterschiedliche Ausführung ermöglicht wird, die anders als die alte ist.
Andererseits muß, damit ein unterschiedlicher Anweisungssatz ausgeführt wird, auch der Inhalt eines Anweisungsde- codierers 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.
Die vorliegende Erfindung ermöglicht eine Flexibilität der unterschiedlichen Anweisungssätze, ohne daß die Universalität verlorengeht, so daß das Mikroprogrammsteuersystem für universelle bzw. allgemeine Zwecke verwendet werden kann, während die Speicherkapazität zum Speichern des Mikroprogramms vermindert werden kann, und es hat außerdem die Funktion, eine abnormale Mikroprogrammfolge festzustellen.
130066/0806
In.einer Anweisungsabrufmikroroutine wird 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 äusgelesenen 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 auszu-
2o. führen. Das Vorstehende ist ein Beispiel eines Systems nach dem Stande der Technik.
in dem System wird die Zeitdauer von der Decodierung der Anweisung bis zum Erzeugen der Anfangsadresse hauptsächlieh 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
130066/0808
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. Die obigen beiden Systeme nach dem Stande der Technik werden weiter unten weiterhin erörtert.
Ein Verfahren zum Lesen eines Mikroprogramms.ist in der US-Patentschrift 4 008 462 mit dem Titel "Vielfachsteuerspeichersystem mit mehrfacher Mikroanweisungsauslesung" beschrieben. Diese Patentschrift beschreibt ein Steuersystem, welches das Auslesen der Mikroanweisungen mit der gleichen Geschwindigkeit ermöglicht,wie es die des Mikroanweisungsauslesens in einem System nach dem Stande der Technik ist, und zwar sogar mit einem Steuerspeicher niedriger Leistungsfähigkeit. Jedoch ist dieses Verfahren nur bei einem System anwendbar, das eine Steuerspeicherbank hat, die eine Mehrzahl von Mikroanweisungen mittels einer einzigen Adressenbezeichnung ausliest.
130066/0806
-π -
Grundsätzlich soll mit der vorliegenden Erfindung ein Mikroprograiransteuersystem zur Verfügung gestellt werden, in dem ein Änweisungsdecodierer, der sonst einem Anweisungsregister unmittelbar nachgeschaltet vorgesehen sein müßte, weggelassen werden kann, so daß die Verarbeitungsgeschwindigkeit erhöht und die Anweisungsdecodierfunktion in, einen Mikroprogrammspeicher integriert wird, wodurch allgemein dessen Flexibilität erhöht wird.
Weiterhin wird mit der vorliegenden Erfindung ein Mikroprogrammsteuersystem zur Verfügung gestellt, das eine verbesserte Mikroprogrammspeicherleistungsfähigkeit hat,, worin Mikroprogramme, die eine hohe Benutzungsfrequenz haben, in Kurzlängenworten be- bzw. eingeschrieben sind.
Außerdem wird mit der vorliegenden Erfindung ein Mikroprogrammsteuersystem zur Verfügung gestellt, das eine Einrichtung zum schnellen Feststellen einer abnormalen Mikroprogrammsteuerfolge, die durch einen Fehler beim Decodieren einer Adresse in einem Mikroprogrammspeicher verursacht worden ist, hat.
Um die obigen Vorteile' zu erzielen, ist als ein Hauptmerkmal der vorliegenden Erfindung vorgesehen, den Mikroprogrammspeicher in Mehrwortseiten zu unterteilen und ein von dem Mikroprogramm gesteuertes Seitenzuordnungsregister vorzusehen, sowie ein Adressen-in-der-Seite-Zuordnungsregister, das direkt in dem Inhalt des Anweisungsregisters lesen kann, so daß jede gewünschte Seite als ein Anweisungsdecodierbereich benutzt werden kann» Ein weiteres Merkmal der vorliegenden Erfindung besteht darin„ daß der Mikroprogrammspeicher aus einem ersten Mikroprogrammspeicher zum Speichern von Langwortmikroanweisungen, die zur allgemeinen Darstellung fähig sind, aufgebaut ist, und aus einem zweiten Mikroprogrammspeicher zum Speichern von Kurz-
130086/0806
wortmikroanweisungen, die eine hohe Benutzungsfrequenz haben und beschränkte Prozesse repräsentieren. Wenn eine Kurzwortmikroanweisung ausgelesen wird, wird sie mittels einer Bitinustererzeugungsschaltung zu einer ursprünglichen Langwortmikroanweisung rekonstruiert.
Außerdem besteht ein Merkmal der vorliegenden Erfindung darin, daß in jeder Mikroanweisung eine Phaseninformation über einen Bezugstakt enthalten.ist, der eine Periode hat, die ein Vielfaches der Mikroanweisungsausführungstaktperiode beträgt und wenn eine Mikroanweisung ausgelesen wird, dann wird gemäß der Erfindung jede abnormale Mikroanweisungssteuerfolge dadurch, festgestellt, daß überwacht wird, ob die Phaseninformation eine vorbestimmte Beziehung zu der Phase des Bezugstakts hat.
Die vorstehenden sowie weitere Vorteile und Merkmale der vorliegenden Erfindung seien nachfolgend anhand einiger, in den Fig. 1 bis 21 der Zeichnung gezeigter Ausführungsformen näher erläutert; es zeigen:
Fig. 1A eine allgemeine Anordnung eines Systems,, das unter Verwendung eines Mikroprogrammsteuereinheit nach der vorliegenden Erfindung aufgebaut ist;
Fig. 1B ein Blockschaltbild einer Mikroprogrammsteuereinheit nach dem Stande der Technik;
Fig. 2 eine Darstellung der zeitlichen Steuerung (hierfür wird nachstehend allgemein.der Begriff "Zeitablauf dar st ellung" verwendet) für diese Einheit;
Fig. 3 und 4 ein Blockschaltbild bzw. eine Zeitablaufdarstellung eines Systems nach dem Stande der Tech-
130066/0806
312174
nik, das man als ein Abbildungssystem bezeichnet;
Pig. 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;
Pig· 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 6b in Fig. 6; .
Pig» 1oA eine Konfiguration einer UND-Anordnung bzw. -Matrix 91 der Fig. 9A; .
Fig. 1oB einen Vergleich der Kapazität der üND~Gruppierung 91 in Fig. 9A, in der im Gegensatz zur
Fig„ 1 kein Decodierer vorgesehen, jedoch im Speicher integriert ist;
Fig. 1oC ein Beispiel, auf das die vorliegende Erfindung angewandt wird;
Fig» 11A ein Blockschaltbild einer anderen Äusführungsform der vorliegenden Erfindung, in dem ein Eusatzseitenregister und ein Zusatzanweisungsregister vorgesehen sind;
- VA - .-■
Fig. 11B Setz- und Rücksetzoperationen, die mittels eines Signals 112a 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 Bitmustererzeügungsschaltung der Einrich
tung nach Fig. 13;
' 2o . .
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. 2o eine Abwandlung der Schaltung nach Fig. 18; und 3o
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.
130066/0806
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 Mikroan-Weisungsregister 16 und einen Mikroanweisungsdecodierer 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 Anfangsädresse einer Mikroroutine zu erzeugen, die dem Anweisungscode entspricht. Die mittels des Anweisungsdecodierers. 12 erzeugte Anweisungsadresse wird durch die Adressenwählschaltung 13 in das Mikroprogrammadressenregister 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 decodiertwelcher 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 1a des Anweisungsregisters 11, ein Ausgangssignal 1b des Anweisungsdecodierers 12, ein Ausgangssignal 1c des Mikroprogrammadressenregisters 14, ein Ausgangssignal 1d des Mikroprogrammspeichers 15 und ein Ausgangssignal 1e 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" 1a des Anweisungsregisters 11 bis zur Bildung des Ausgangssignals 1b des Anweisungsdecodierers 12 auftreten, oder mit ande-" ren 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 ο I η TiI
130066/0806
Die Pig. 4 zeigt eine Beziehung zwischen einem Ausgangssignal 3a des Anweisungsregisters 11, einem Äusgangssignal 3b des Mikroprogrammadressenregisters 14„ einem Ausgangssignal 3c des Mikroprogrammspeiehers 15-und einem Ausgangssignal 3d des Mikroanweisungsregisters 16» Die Vorteile und die Nachteile dieses Systems sind weiter oben erörtert worden.
Der Mikroprogrammspeieher 15 enthält viele gen, die in ihren VerarbeitungsInhalten miteinander identisch -sind, ausgenommen"Äbzweigung=3u "-Adresseninformationsfeidern und gewisse Steuerbits der Mikroanweisungen,, In dem in Fig, IB gezeigten Aufbau werden jedoch die Mikroanweisungen selbst dann, wenn die Inhalt der Mikroanxtfeisungen im wesentlichen identisch sind, gesondert gespeichert , wenn die "Abzweigung-zu "-Ateesseninformatioasf elder ■ oder gewisse Steuerbits unterschiedlich sind=' Infolgedessen enthält der Mikroprograiranspeicher 15 eiae 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» S gezeigt ist. In diesem System weist die Mikroanweisimgein"Äbzweigung-zu'I-la2iesseninformationsf©ld5ein Steuer·= bitfeld und ein Nanoprogrammadressenfeld aufο In Ansprechung auf das Nanoprogrammadressenfeld einer aus dem Mi= kroanweisungsregister 5o ausgelesenen 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 ver-
bessert 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 Nano-Programms 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.
13006.6/0806
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, äann überschreitet der Zeitgeberzählwert den Voreinstellungs zä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 Äusführungsform der vorliegenden Erfindung ist in Fig. 6 gezeigt, in der Elemente, die solchen der Fig= 1 und 3 entsprechen, mit den gleichen Bezugszeichen verse-
13.0066/0806'
hen 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 6b 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
1ο 15 zu bezeichnen. Die ausgelesene Mikroanweisung umfaßt ein Operationsfeld 6c1, das in das Mikroanweisungsregister 16 eingegeben wird, ein Adressenwählbit 6c2, das die Adressenwählschaltung 13 steuert, ein Seitenfeld 6c3, das zum Seitenregister 61 zurückgeführt wird, und ein Adressenfeld 6c4, das zur Adressenwählschaltung 13 zurückgeführt wird. Der Inhalt des Mikroanweisungsregisters 16 wird mit-. tels des Mikroanweisungsdecodierers 17, der verschiedene Steuersignale erzeugt, decodiert. Das Adressenfeld 6c4 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 6b wird eine Mikroanweisung aus dem Mikroprogrammspeicher 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 Abzwei-
130066/0806
312174
gungen 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 6a des Anweisungsregisters 11 repräsentiert, (C) repräsentiert das Äusgangssignal 6b des Seitenregisters 61 und des Adressenregisters 14, (D) repräsentiert das Äusgangssignal 6c des Mikroprogrammspeichers 15, und (E) repräsentiert das Äusgangssignal 6d des Mikroanweisüngsregxsters 16? und (A) repräsentiert den Grundtakt. Die schraffierten Bereiche repräsentieren die Zugriffsperioden wie in Fig. 2.
In dem System der Fig. β 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 f verkürzt wer- den, 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 Anweisungscodes 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 Verzweigungsbzw. 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 ReIativadressierungsart. In dieser Art von Instruktionen zweigen die Instruktionen zu den Adressenberechnungsroutinen nach der Beendigung der Anweisungsabrufrou-
130066/0806
tine 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 Mxkroprogranunspeichers 15 sind die folgenden Funktionen zugeordnet:
(1) Seiten (00) und (01)
Sie werden als Arbeitsbereiche verwendet« Zweite und nachfolgende Worte der Anweisurigsabrufroutinen und der Prozeßroutinen werden darin gespeichert» 15
Sie ist einem ersten Decodierbereich des Anweisungscodes zugeordnet. Erste Worte der Routine der Anweisungen vom Typ (A) und erste Worte der Adressenberechnungsroutinen der Anweisungen vom Typ CB) werden hierin gespeichert.
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 Anweisungsabruf routine beendet XSt5. wird (10) in das Seitenregister 61 eingegeben, und der Inhalt des Anweisungsregisters 11 wird in das Adressenregxster 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
1300S6/080S .
Seite (10) entspricht, den Anweisungen entsprechende Ausführungsroutinen. Nach der Beendigung des Ausführungsprozesses kehrt der Prozeß zu der Anweisungsäbrufroutine 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
1ö 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 Mehrzahl 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 6c in Fig. 6. Die Eingangsadressensignale • Ao"^A9 für die UND-Matrix 91 entsprechen dem Signal 6b in Fig. 6. Wie in Fig. 9B gezeigt ist, werden sie aus
130066/0806
~25~ 312174.
dem Hauptspeicher (A) ausgelesen oder durch die vorherige Mikroanweisung '(Abzweigung) (B) bezeichnet; Fig„ 1oä zeigt einen ins einzelne gehenden Schaltungsaufbau äer UND-Ma-■ tr ix 91 der Fig. 9. Die Symbole ^Q^Sg bedeuten Torschaltungen= Zur Decodierung der Adresseninformation sind Transistoren TRS mit positiven Logikseiten von Bits "Ί" des Adresseneingangs bzw. mit negativen Logikseiten von Bits "0" des Adresseneingangs verbunden» Jeder der Transistoren TRS erzeugt ein Ausgangssignal "I" in Ansprechung auf ein
-jo daran angelegtes Eingangssignal "1" und eine Gruppe von Transistoren TRS/ die zum Decodieren von je einem der Adresseneingangssignale vorgesehen sind 0 sind mit einem UND-Tor verbunden? so. daß infolgedessen ein Äusgangssignal "1" erzeugt wird? wenn alle Transistoren der Gruppe ein Eingangssignal "1" erhalten. Zum Beispiel liegt in Pig= loA der Ausgang Ti -auf n1'\ wenn sich die positiven Logikseiten der Eingänge Ag und A7 alle auf "1" befinden/und wenn sich die negativen Logikseiten der Eingänge &«p Ag und Ag ebenfalls alle auf ."1" befinden» In einer UMD-Matrix eines konventionellen Speichers wird der Adresseneingang vollständig decodiertj. wn jeder Adresse ein Wort des Speichers zu2uordnen<. In dem vorliegenden System ist es in einigen Fällen wirkungsvoll, die Adresse mittels der ÜHD-Matriss 91 teilweise zu decodieren.. Genauer gesagt können die mit X markierten Bereiche in Fig = SA in der Schaltung der Figo loA dadurch realisiert werdendaß man die Transistoren TRS entlader auf der positiven Logikseite oder auf der negativen Logikseite wegläßt» Infolgedessen wird eine Zu- ' nähme der Kapazität des Mikroprogrammspeichers 15 aufgrund der Notwendigkeit von identischen Mikroanweisungen an unterschiedlichen Adressen vermieden«,■ Wie in den Fig„ I0B . und I0C gezeigt ist, werden 512 Transistoren o die für 4ie Seiten (10) und (11). erforderlich sind, auf 71 Transistoren vermindert=
130ΘΘ8/080
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
35. Es ist ein acht Bit-Register und hat eine gleichartige
130066/0806
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 112a (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 (üi) 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 Mikroprog^ammspeichers 15 fest.
(7) Mikroprogrammadressenregister 14
Es ist ein acht Bit-Register und hält acht Bits niedriger Ordnung der Speicheradresse fest.
(8) ÜWD-Matrix 91 · · ■ . Sie ist eine Matrix von 12 Bits χ (Anzahl der Speicher-Worte). Sie decodiert eine Adresse zur Bezeichnung eines
130088/0808
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.
130066/0806
12174.
TABELLE
Prozesse von Anweisungen
Typ der An
weisung
Proseß
(A) Zweigt direkt zu einer Äusführungsroutine ab,
die einem Anweisungscode entspricht
(B) Zweigt nach der Operanäenadressenberechnung
zur entsprechenden Äusführungsroutine ab= Ein
auf den Anweisungscode nächstfolgendes Wort
spezifiziert eine aus einer Mehrzahl von Adres
sierungsarten* ·
(C) Wenn der Anweisungscode des ersten Worts einen
speziellen Wert hat, definiert ein auf das er
ste Wort als nächstes folgendes zweites Wort
eine neue Anweisung ο Zweigt su einer Äusfüh
rungsroutine ab? die der neuen Anweisung ent™
spri.ch.to
(D) Entspricht (C) 0 erfordert jedoch ein® Qperan-
denadressenberechnungο Die Ädressiertmgsart
ist identisch derjenigen .von (B) .
(E) Bits eines'auf den Anweisungscoäe nächstfol
genden zweite« Worts sind Zulässigkeifcskenn-
zeichen für. den. entsprechenden- Prozeß „
130086/0806
- 3ο -
TABELLE 2
Adressenseitenzuordnung
0000 0001
0010 0011
0100
0101
0110
.0.1.1.1.
1000 .11.11
Zuordnung von Funktionen von Bereichen
Arbeitsbereich
Erster Decodierbereich des Anweisungscodes
Decodierbereich für die Abzweigung zu einer Ausführungsroutine nach Adressenberechnung für Anweisung vom Typ (B)
Zweiter Decodierbereich des Anweisungscodes für Anweisungen vom Typ (C) und (D).
Decodierbereich zur Abzweigung zu einer Ausführungsroutine nach Adressenberechnung für Anweisung vom Typ (D)
Decodierbereich für Ausführungsroutine von Anweisungen vom Typ (E)
Decodierbereich für. Adress.exiberechnung.
Undefinierte Reservebereiche. Werden in dem vorliegenden Anweisungssatz nicht verwendet.
130066/08Ö6
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 Anweisungsregi- ■ ster 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
To 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 Ädressenberechnung unterscheidet sich in Abhängigkeit von dem Inhalt des auf den Anweisungscode nächstfolgenden Worts; aber der Inhalt des Anweisungsregisters 11 sollte aufrechterhalten werden s 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
1300SS/0806
des Zusatzanweisungsregisters 112 in das Ädressenregister 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 Änweisungsregisters 11 in das Adressenregister 14 eingegeben, und der Prozeß zweigt zur Seite (0100) ab. Bei einer An-Weisung vom Typ (C) ist die Seite (010O) der vorlaufende" Bereich der Ausführungsroutinen. Bei einer Anweisung vom Typ (°) 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 kondltioneller 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 be-
130066/0806
nutzt {siehe 112a in tfig. 11B). Bei der Ausführung einer Anweisung vom Typ (E) auf der Seite (OO1O) 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
■jo 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
•35 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öhe·*· rer 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 Ge·=· schwindigkeit und mit einer geringen Anzahl von Speicher- ' Worten ausgeführt werden.
Gemäß den dargestellten Ausfuhrungsformen 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
130066/0806
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 6b 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
130066/0806
Fig. 13 wird die Auswahl mittels eines Signals 163a von einem der beiden Bits hoher Ordnung ausgeführt.
Bei dieser Anordnung wird die aus dem Speieher 132 ausgelesene Kurzwortmikroanweisung in eine Langwortmikroanweisung übersetzt und als eine Mikroanweisung decodiert.
Die Fig. 14 zeigt drei Arten (I~III) von Kurzwortmikro-. anweisungen, die eine hohe Gebrauchshäufigkeit haben. Die Wortlänge beträgt 8 bit und S7 sowie S6 repräsentieren ein zwei-Bit-Kontrollfeld, und S5 SO repräsentieren ein "sechs—Bit-Abzweigung-zu"-Adressenfeld (ADF). Das Kontrollfeld S7, S6 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 S7, S6 der ausgelesenen Kurzwortmikroanweisung nicht (00) ist, die Kurzwortmikroanweisung gewählt, und .wenn es (00) ist, wird die Lang-" wortmikroanweisung gewählt. In Fig. 13 ist das Wählsignal mit 163a bezeichnet.
Wie in Fig. 15 dargestellt, hat die Langwortmikroanweisung eine Länge von 16 bit, wobei LiS^Lö ein 1o-Bit-Kontrollfeld und L5~L0 ein"6-Bit-Abzweigung-zu'LAdressenfeld 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 gezeig-
130066/0806
ten 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 SS*^ SO der Kurzwortmikroanweisung entsprechen direkt den Bits L5 •~> LO des" Abzweigung-zu-Adressenfelds. "0"· Signale werden zu L15 und L9 zugeführt/ und "1" Signale werden zuL12, L1o und L6 zugeführt. Die Bits L14, L11 und L8 sind "0" für die Mikro-■ anweisung I und "1" für die Mikroanweisungen II und III. Demgemäß wird das S7 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 S7 direkt durch einen Inverter 161 zugeführt. Da das Bit L13 für die Mikroanweisung III nur "1" ist, werden die Ausgangssignale S6 und S7 über ein UND-Tor 162 zμgeführt. Das auf diese Weise bei Ιι15"-ΊιΟ erzeugte 16 Bit Signal" wird der Mikroanweisungswählschaltung 134 als das Kurzwortmikroanweisungsausgangssignal zugeführt. Andererseits werden die Bits S6 und S7 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. gezeigt ist, nicht den Hochgeschwindigkeitsbetrieb des Mikroprogrammsteuersystems. In dem vorliegenden System geht,
130066/0806
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, 3o1 ist ein Frequenzteiler, und 3o2 ist eine Phasenfehlerdetektionsschaltung. Zum Feststellen eines Fehlers wird ein zur Mikroanweisung hin-' zugefügtes Phaseninformationsbit P benutzt.
Der Frequenzteiler 3o1 erzeugt einen Bezugstakt 4b, der eine-Periode hat, die ein Vielfaches derjenigen des Mikroanweisungsausführungstakts 4a ist. Der Bezugstakt 4b wird. 3d auf den einen Eingang der Phasenfehlerdetektionsschaltung 3o2 gegeben.
Ein Phaseninformationssignal 4c, das weiter unten beschrieben wird, wird auf den anderen Eingang der Phasenfehlerdetektionsschaltung 3o2 gegeben. Jede Mikroanweisung
130068/0806
wird vorherbestimmungsgeraäß bei einer vorbestimmten Phase des Bezugstakts 4b ausgeführt, und das Phasenbit P der Mikroanweisung beinhaltet die Phaseninformation, welche diese vorbestimmte Phase angibt. Die Phaseninformation des Phasenbits P ist mit 4c bezeichnet.
Die Phasenfehlerdetektionsschaltung 3o2 überwacht das Zusammenfallen der Phaseninformation 4c des Phasenbits P der Mikroanweisung mit der Phase des Bezugstakts 4b, und im Falle eines Nichtzusammenfaliens erzeugt sie ein Fehlersignal 4d.
Das Fehlersignal 4d 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 3o1 und der Phasenfehlerdetektions schaltung 3o2, die in Fig. 17 gezeigt sind. Die Frequenzteilerschaltung 3o1 umfaßt oder ist ein Flip-Flop vom T-Typ, das den Mikroanweisungsausführungstakt 4a durch den Faktor 2 teilt, um den Bezugstakt 4b 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 3o2 umfaßt oder ist ein Exklusiv-ODER-Tor, dem die Bezugsphase 4b und die Phaseninformation 4c der Mikroanweisung zugeführt wird und das das Fehlersignal 4d erzeugt. Die Fig. 19 zeigt eine Zeitablaufdarstellung für die Signale der Fig. 18. Sie zeigt die Wellenformen des Mikroanweisungsausführungstakts 4a, des Bezugstakts 4b, der Mikroanweisungsphaseninformation 4c und des Fehlersignals 4d. In den Mikrozyklen (n-3)~.(n-1) ist das Fehlersignal 4d gleich "0", da der Bezugstakt 4b in Phase mit der Mikroanweisungsphaseninformation 4c ist, aber im Mikrozyklus
130066/0806
η ist das Fehlersignal 4d gleich "1", da das Bezugssignal 4b den Wert "O" hat, während die Mikroanweisungsphaseninformation 4c 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. 2o zeigt Anordnungen bzw. Ausbildungen des Frequenzteilers 3o1 und der Phasenfehlerdetektionsschaltung 3o2 in einer anderen Ausführungsform der Anordnung nach Fig. 17. Der Frequenzteiler 3o1 umfaßt zwei Stufen von Flip-Flops vom T-Typ, denen der Mikroanweisungsausführungstakt 4a zugeführt wird und die einen eins-zu-zwei-frequenzgeteilten Takt 4b-1 und einen eins-zu-vier-frequenzgeteilten Takt 4b-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 4c-1 und 4c-2- der'ausgelesenen Mikroanweisung entsprechen 4b-1 bzw. 4b-2 des Bezugstakts, und sie sind in einer normalen Operationsfolge in Phase. Die Phasenfehlerdetektionsschaltung 3o2 stellt eine
1300 6 6/0806
Antikoinzidenz bzw. ein Nichtzusammenfallen des Phasenbits und des Bezugstakts fest, und sie umfaßt zwei Exklusiv-ODER-, Tore und ein ODER-Tor. Wenn 4b-1 und 4c-1 nicht in Phase sind, oder wenn 4b-2 und 4c-2 nicht in Phase sind, dann nimmt das Fehlersignal 4d den Wert "1" an.
Die Fig. 21 zeigt eine Zeitablaufdarstellung für die in Fig. 2o gezeigten Signale. Sie veranschaulicht Wellenformen des Mikroanweisungsausführungstakts 4a, der Bezugstakte 4b-1 und 4b-2, der Mikroanweisungsphasenbits 4c-1 und 4c-2 sowie des Fehlersignals 4d. In den Mikrozyklen (n-6) '«(n-D ist das Fehlersignal 4d gleich "0", weil die Bezugstakte 4b-1 und 4b-2 sowie die Mikroanweisungsphasenbits 4c-1 und 4c-2 jeweils in Phase sind, jedoch ist das Fehlersignal 4d im Mikrozyklus η gleich "1", weil die Bezugstakte 4b-1 und 4b-2 jeweils "1" und "1" betragen, während die Mikroanweisungsphasenbits 4c-1 und 4c-2 jeweils "0" und "1" sind. Das zeigt, daß in dem Mikrozyklus η ein Fehler in der Mikroprogrammsteuerfolge enthalten war. 2o
In der vorliegenden Ausfuhrungsform, 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.
130066/0806
e^ r ©

Claims (1)

  1. ' . PATENTANWÄLTE" ".. ' .;.
    SCHIFF ν. FÜNER STREHL SCHÜBEL-HOPF EBBINGHAUS FINCK
    MARIAHILFPLATZ 2 Λ 3, MÖNCHEN 9O POSTADRESSE: POSTFACH 95 01 6O1 D-SOOO MÜNCHEN 98
    ALSO PROPB3SIONAL REPRESENTATIVES QCFORS THK EUROPEAN PATeNT OPPICO
    • KARL LUOWIQ SOHIFP (1034-1078)
    DIPL. CHBM. DR. ALCXANDSR V. FONER
    DIPL. ING. PtETBR STREHL
    DIPL. CHEM. DR. URSULA ^qHOsSL- HOPF
    DIPL. IN«. DIKTISR (BBINQHAUS
    DR. INQ. DIBTBR FINCK
    TELEFON (OOO) 4βαθ 04
    tblex 6-33 868 auro o
    auromarcpat München
    HITACHI, LTD. DEA-14919 SP/BR
    1, Juni 1981
    Mikroprogrammsteuerverfahren und -einrichtung zu dessen Durchführung
    Patentansprüche
    Mikroprogrammsteuerverfahren in einem System, in dem eine Mikroanweisung von einer entsprechenden Adresse eines Mikroprogrammspeichers entsprechend einer von einem Hauptspeicher ausgelesenen oder extern sugeführten Anweisung ausgelesen und sum Erzeugen eines Betriebs- bzw. Operationssteuersignals zum Steuern einer
    to Datenverarbeitungs- bzw= Verarbeitungseinheit decodiert wird, dadurch gekennzeichn e t , daß das Verfahren die folgenden Verfahrensschritt umfaßt;
    Festlegen einer Adresse in dem Mikroprogrammspeicher .
    (15) aufgrund eines Signals von einem Anweisungsregister (11), das die ausgelesene oder extern zugeführte Anweisung speichert, und eines Seitenbezeichnnngs-·
    130088/0808
    ■ signals in dem Mikroprograinmspeicher bzw. eines eine Seite in dem Mikroprogrammspeicher (15) festlegenden Seitenbezeichnungssignals;
    Decodieren der festgelegten Adresse in einem De'cödierbereich in dem Mikroprograinmspeicher (15); Wählen eines Worts aus dem Mikroprograinmspeicher (15) aufgrund des decodierten Signals; und Zuführen des gewählten Worts als das Steuersignal zu der Datenverarbeitungs- bzw. Verarbeitungseinheit.
    2. Mikroprogrammsteuerverfahren, insbesondere nach Anspruch 1, für einen Mikroprogrammspeicher/ der Mikroanweisungen enthält, "dadurch gekennzeichnet , daß es die folgenden Verfahrensschritte umfaßt:
    Speichern der Mikroanweisungen in einer Langwortmikroanweisungsgruppe und einer Kurzwortmikroanweisungs-. gruppe; und Umwandeln einer aus der Kurzwortmikroanweisungsgruppe ausgelesenen Kurzwortmikroanweisung in eine Langwortmikroanweisung mittels einer Logik (133) gemäß einem Feld der Kurzwortmikroanweisung und einem vorbestimmten Bitsighal', so daß ein Ausgangssignal des Mikroprogrammspeichers (15) erzeugt wird.
    3. Mikroprogrammsteuerverfahren nach Anspruch 2, dadurch gekennzeichnet, daß das Kurzwortmikroanweisungsausgangssignal oder das Langwortmikroanweisungsausgangssignal mittels eines Logiksignals von einem vorbestimmten Bitsignal von der Kurzwortmikro-
    3q . anweisung ausgewählt wird.
    ' 4. Mikroprogrammsteuerverfahren, insbesondere nach einem der Ansprüche 1 bis 3, in einem System, in dem Mikroanweisungen, die in einem Mikroprograinmspeicher gespeichert sind, synchron mit einem Mikroanweisungsaus-
    13006 6/0806
    führungstakt zur Kontrolle des Systems aufeinanderfolgend ausgelesen werden, gekennzeichnet durch die folgenden Verfahrensschritte: Zuordnen eines Phasensignals eines' Bezugstakt's·,1 'der eine Periode hat, die ein Mehrfaches einer bzw. der Periode des Mikroanweisungsausführungstakts ist, zu einem bestimmten Bit der Mikröanweisung; überprüfen beim Auslesen der Mikröanweisung, ob das . der Phaseninformation zugeordnete Bitsignal in einer vorbestimmten logischen Beziehung zu dem Bezugstaktsignal steht; und
    Bestimmen eines Fehlers, wenn die vorbestimmte logische Beziehung nicht erfüllt ist, und Ausführen einer Fehlerverarbeitung. ;
    ■ .
    5. Mikroprogrammsteuereinrichtung, insbesondere zur Durchführung des Mikroprogrammsteuerverfahrens nach einem der Ansprüche 1 bis 4, in einem System, in dem eine ' Mikröanweisung von einer entsprechenden Adresse eines Mikroprogrammspeichers entsprechend einer von einem Hauptspeicher ausgelesenen oder extern zugeführten Anweisung ausgelesen und zum Erzeugen eines Betriebs- bzw Operationssteuersignals zum Steuern einer Datenverarbeitungs- bzw. Verarbeitungseinheit decodiert wird, dadurch gekennzeichnet, daß die Einrichtung folgendes umfaßt!
    einen Mikroprogrammspeicher (15), der in Seiten unterteilt ist; .
    ein erstes Register (61)' zum Festlegen einer Seite des Mikroprogrammspeichers (15), wobei dieses erste Register (61) mittels eines Mikroprogramms steuerbar ist? und - ■
    ein zweites Register (14) zum Festlegen einer Adresse auf der Seite, wobei'dieses zweite Register (14) einen Inhalt eines Anweisungsregisters (11) , in dem die von
    30086/08 0
    dem Hauptspeicher ausgelesene oder die extern zugeführte Anweisung gespeichert ist, direkt auslesen kann; und wobei ferner ein Zugriff zu dem Mikroprogrammspeicher (IS) mittels des Inhalts des ersten Registers (61) und des zweiten Registers (14) erfolgt/ so daß ein entsprechendes Mikroanweisungswort ausgelesen wird.
    6. Mikroprogrammsteuereinrichtung nach Anspruch 5, dadurch gekennzeichnet, daß das erste
    1ο Register (61) ein Mehrbitregister ist.
    7. Mikroprogrammsteuereinrichtung nach Anspruch 5 oder 6, dadurch gekennzeichnet, daß der Mikroprogrammspeicher (15) eine UND-Matrix (91) zum Decodieren eines Eingangsadressensignals und eine ODER-Matrix (92) zum Speichern der Mikroanweisungen umfaßt.
    8.' Mikroprogrammsteuereinrichtung nach Anspruch 7, dadurch gekennzeichnet, daß die UND-Matrix (91) eine oder mehrere Schaltereinrichtungen nur an Bitpositionen aufweist, an denen eine Decodierung erforderlich ist.
    9. Mikroprogrammsteuereinrichtung nach einem der Ansprüche 5 bis 8, dadurch gekennzeichnet, daß das erste Register (61) so betreibbar ist/ daß es einen Teil der aus dem Mikroprogrammspeicher (15) ausgelesenen Mikroanweisung zum Fortschreiben bzw. Aktualisieren der Seitenfestlegung erhält.
    1o. Mikroprogrammsteuereinrichtung nach einem der Ansprüche 5 bis 9, dadurch gekennzeichnet, daß sie weiter ein drittes Register (111) zur Ergänzung des ersten Registers (61) aufweist, wobei ein Teil der aus dem Mikroprogrammspeicher (15) ausgelesenen Mikro-
    130066/0806
    anweisung in das dritte Register (111) eingegeben wird, und wobei ferner der Inhalt des dritten Registers (111) in das erste Register (61) eingegeben wird.
    .11. Mikroprogrammsteuereinrichtung nach einem der Ansprüche 5 bis. 1o, dadurch gekennzeichnet., daß eine Mehrzahl der Anweisungsregister (11, 112) vorgesehen ist, und daß ein Inhalt von einem aus der Mehrzahl der Anweisungsregister (11, 112) in das zweite Refo gister (14) eingegeben wird.
    12. Mikroprogrammsteuereinrichtungj. insbesondere nach einem der Ansprüche 5 bis 11,. in einem Mikroanweisungen enthaltenden Mikroprogrammspeicher/ gekennzeich-
    ■]5 net durch:
    eine erste Speichereinrichtung (131) zum Speichern von . Langwortmikroanweisungen;
    eine zweite Speichereinrichtung (132) zum Speichern von Kurzwortmikroanweisungen;
    eine Langwortbitmustererseugungseinriehtung (133), die
    ' ein Feld der bzw«, einer Kurzwortmikroanweisung erhält?
    und .
    eine Mikroanweisungswähleinrichtung (134) zum Auswählen von entweder der Langwortmikroanweisung oder des Aus-
    gangssignals der Langwortbitmustererzeugungseinrichtung (133), wobei die Langwortbitmustererzeugungseinrichtung (133) die Kurzwortmikroaiweisung in die Langwortmikroanweisung(en) umwandelt ο '
    13. Mikroprogrammsteuereinrichtung nach Anspruch 12, d a -
    . durch gek. ennzeiehnetj, daß die Langwortbitmustererzeugungseinrichtung (133) eine Logikschaltung für die Kurzwortmikroanweisung, einen. Teil
    von Bitsignalen der Kurzwortmikroanweisungen und Bitsignale, die durch die Art der Mikroanweisung bestimmt sind, aufweist.
    14. Mikroprogrammsteuereinrichtung nach Anspruch 12 oder 13, dadurch gekennzeichnet, daß sie weiter eine logische ODER-Schaltung (163) zum Empfang vorbestiinmter mehrerer Bits bzw. Mehrfachb'i'ts der Kurzwortmikroanweisung umfaßt, wobei ein vorbestiinmter Zustand des Ausgangssignals der logischen ODER-Schaltung (163) zur .Steuerung der Mikroanweisungswähleinrichtung (134) verwendet wird.
    ■\o 15. Mikroprogrammsteuereinrichtung, insbesondere nach einem der Ansprüche 5 bis 14, in der Mikroanweisungen, die in einem Mikroprogrammspeicher gespeichert sind, zur Kontrolle der Einrichtung synchron mit einem Mikroanweisungsausführungstakt ausgelesen werden, g e k e η η zeichnet durch:
    eine Bezugstakterzeugüngseinrichtung (3o1) zum Erzeugen eines Bezugstakts, der eine Periode hat, die ein Vielfaches einer bzw. der Periode des Mikroanweisungsausr führungstakts ist; und
    eine Vergleichseinrichtung (3o2) zum Vergleichen eines Phaseninformationsbitsignals der Mikroanweisung mit dem Bezugstaktsignal zur Feststellung eines Fehlers in der Auslesung bzw. beim Auslesen der Mikroanweisung.
    16. Mikroprogrammsteuereinrichtung nach Anspruch 15, dadurch gekennzeichnet, daß die Bezugstakterzeugungseinrichtung (3o1) einen Frequenzteiler zur Frequenzteilung des Mikroanweisungsausführungstakts umfaßt oder ein solcher Frequenzteiler ist.
    17. Mikroprogrammsteuereinrichtung nach Anspruch 16, dadurch gekennzeichnet, daß der Frequenzteiler ein Flip-Flop (311) vom T-Typ aufweist oder ist.
    130066/0806
    18. Mikroprogrammsteuereinrichtung nach einem der Ansprüche 15 bis 17, dadurch gekennzeichnet, daß die Vergleichseinrichtung (3o2) ein Exklusiv-ODER-Tor (312) umfaßt, welches das Phasenirif'ormationsbitsignal der Mikroanweisung erhält, und ein Ausgangssignal von einem Flip-Flop (311) vom T-Typ, welches ein Mikrozyklustaktsignal erhält.
    130068/0806
DE19813121742 1980-06-02 1981-06-01 Mikroprogrammsteuerverfahren und -einrichtung zu dessen durchfuehrung Granted DE3121742A1 (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 true DE3121742A1 (de) 1982-02-11
DE3121742C2 DE3121742C2 (de) 1987-04-23

Family

ID=27290188

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19813121742 Granted DE3121742A1 (de) 1980-06-02 1981-06-01 Mikroprogrammsteuerverfahren und -einrichtung zu dessen durchfuehrung

Country Status (3)

Country Link
US (1) US4446517A (de)
DE (1) DE3121742A1 (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
EP1442359A4 (de) * 2001-10-01 2007-12-26 Benjamin Cooper Vielzweck-prozessoreinheit/-computersystem mit bitslice-rückmeldung und festem anweisungssatz (fis)
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
US7693167B2 (en) * 2007-05-22 2010-04-06 Rockwell Collins, Inc. Mobile nodal based communication system, method and apparatus
US20090228686A1 (en) * 2007-05-22 2009-09-10 Koenck Steven E Energy efficient processing device
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マネジメント株式会社 異常検出方法、異常検出プログラム、異常検出装置、書き換え方法、書き換えプログラム及び書き換え装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3707703A (en) * 1969-11-19 1972-12-26 Hitachi Ltd Microprogram-controlled data processing system capable of checking internal condition thereof
DE2355993B2 (de) * 1972-12-14 1978-02-09 General Electric Co., Schenectady, N.Y. (V.StA.) Programmierbare datenverarbeitungsanlage
DE2846537A1 (de) * 1978-10-26 1980-05-08 Standard Elektrik Lorenz Ag Mikroprozessorsystem
DE2951040A1 (de) * 1979-01-16 1980-07-24 Digital Equipment Corp Steuerspeicher in einem steuerabschnitt eines rechners

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US4224668A (en) * 1979-01-03 1980-09-23 Honeywell Information Systems Inc. Control store address generation logic for a data processing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3707703A (en) * 1969-11-19 1972-12-26 Hitachi Ltd Microprogram-controlled data processing system capable of checking internal condition thereof
DE2355993B2 (de) * 1972-12-14 1978-02-09 General Electric Co., Schenectady, N.Y. (V.StA.) Programmierbare datenverarbeitungsanlage
DE2846537A1 (de) * 1978-10-26 1980-05-08 Standard Elektrik Lorenz Ag Mikroprozessorsystem
DE2951040A1 (de) * 1979-01-16 1980-07-24 Digital Equipment Corp Steuerspeicher in einem steuerabschnitt eines rechners

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DE-Buch: Klar, Wichmann Mikroprogrammierung Vorlesungsskripten Band 8, Nr. 3, Erlangen, Juni 1975, S. 49 - 51 *
US-Firmenschrift: IBM Technical Disclosure Bulletin, Vol. 21, Nr. 11, April 1979, S. 4553-4554 *

Also Published As

Publication number Publication date
GB2077010A (en) 1981-12-09
GB2077010B (en) 1984-10-31
DE3121742C2 (de) 1987-04-23
US4446517A (en) 1984-05-01

Similar Documents

Publication Publication Date Title
DE3121742A1 (de) Mikroprogrammsteuerverfahren und -einrichtung zu dessen durchfuehrung
DE2555963C2 (de) Einrichtung zur Funktionsmodifizierung
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE2117936C3 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
DE2646162C3 (de) Schaltungsanordnung zum Ersetzen fehlerhafter Informationen in Speicherplätzen eines nicht veränderbaren Speichers
EP0764899B1 (de) Verfahren zum Konvertieren sich unterscheidender Datenformate
DE2542740C2 (de) Datenverarbeitungsanlage mit einer Mikroprogrammsteuerung
DE2756890C2 (de) Schaltungungsanordnung zur Steuerung der Datenübertragung zwischen einer zentralen Verarbeitungseinheit und einer Mehrzahl peripherer Einheiten
DE2635592A1 (de) Multiprozessor-abrufsystem
DE2813128A1 (de) Mikroprogrammspeicher
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE2717658A1 (de) Anordnung zur ansteuerung eines mikroprogrammspeichers
DE2928488A1 (de) Speicher-subsystem
DE3424962A1 (de) Datenverarbeitungsverfahren und vorrichtung zur durchfuehrung desselben
DE2536622C2 (de) Verzweigungssteuerung mit flexibler Auswahl von Steuerworten
DE2524046A1 (de) Elektronische datenverarbeitungsanlage
DE2318069A1 (de) Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix
DE2725396C3 (de)
DE2421130C2 (de)
DE3400723A1 (de) Vektorprozessor
DE2426874A1 (de) Verfahren und schaltungsanordnung zur bestimmung der adressenart eines befehls
DE2458286A1 (de) Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen
DE2739525C2 (de) Rechner
DE2245284A1 (de) Datenverarbeitungsanlage
DE2759120A1 (de) Prozessor fuer datenverarbeitungssysteme

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