[go: up one dir, main page]

DE2948442C2 - Digitalrechenanlage - Google Patents

Digitalrechenanlage

Info

Publication number
DE2948442C2
DE2948442C2 DE2948442A DE2948442A DE2948442C2 DE 2948442 C2 DE2948442 C2 DE 2948442C2 DE 2948442 A DE2948442 A DE 2948442A DE 2948442 A DE2948442 A DE 2948442A DE 2948442 C2 DE2948442 C2 DE 2948442C2
Authority
DE
Germany
Prior art keywords
microinstruction
memory
bus
microinstructions
sections
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
DE2948442A
Other languages
English (en)
Other versions
DE2948442A1 (de
Inventor
Charles Thomas Framingham Mass. Retter
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.)
EMC Corp
Original Assignee
Data General Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Data General Corp filed Critical Data General Corp
Publication of DE2948442A1 publication Critical patent/DE2948442A1/de
Application granted granted Critical
Publication of DE2948442C2 publication Critical patent/DE2948442C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)
  • Complex Calculations (AREA)

Description

  • Die Erfindung betrifft eine Digitalrechenanlage mit einem Prozessor zum Verarbeiten von Digitaldatensignalen, einem Speicher zum Speichern von Makrobefehlen, die vom Prozessor bei der Steuerung der Anlage verwendet werden, einem Mikrobefehlspeicher zum Speichern von Mikrobefehlen, wobei jedem Makrobefehl eine aus mehreren Mikrobefehlen bestehende Mikrobefehlsequenz zugeordnet ist, mit einer Mikrobefehllogik zum Steuern des Prozessors, und mit einer Einrichtung zum Speichern des aus dem Mikrobefehlspeicher jeweils ausgelesenen Mikrobefehls und zum Liefern von dem Mikrobefehl entsprechenden Steuersignalen, wobei jeder Mikrobefehl in mehrere Abschnitte unterteilt ist.
  • Bei einer derartigen, aus der US-PS 41 18 773 bekannten Anlage werden Mikrobefehle, die nicht in kleinere Abschnitte unterteilt werden können, in verschiedenen ROMs oder Speicherbänken gespeichert. Mehrere dort als Mikroworte bezeichnete Mikrobefehle bilden in herkömmlicher Weise ein Mikroprogramm. Die einzelnen Mikrobefehle bestehen aus verschiedenen Steuerbits, die zu unterschiedlichen Untersystemen gelangen, wo sie Steuerfunktionen auslösen.
  • Durch die US-PS 37 60 369 ist eine Anlage bekannt, bei der ebenfalls nur vollständige Mikrobefehle aus dem Mikroprogrammspeicher abgerufen werden können.
  • Die Grundelemente für einen Digitalrechner umfassen einen Prozessor zum Verarbeiten von digitalen Daten in Maschinensprache und einen Speicher. Im allgemeinen sind Befehle in Maschinensprache zum Steuern der Arbeitsoperationen des Prozessors im Speicher gespeichert. Der Speicher kann auch mindestens Teile von zu verarbeitenden Daten enthalten. Befehle und Daten werden zwischen dem Prozessor und dem Speicher durch Prozessorausgabe- und Speicherausgabebusse übertragen. Häufig verwendete Befehlssequenzen, die als Mikrobefehlssequenzen bezeichnet werden, sind in einem getrennten Mikrobefehlspeicher gespeichert. Bestimmte Befehle, die als Makrobefehle bezeichnet werden, veranlassen den Mikrobefehlspeicher zur Lieferung einer entsprechenden Sequenz von Mikrobefehlen an den Prozessor. Eine Digitalrechenanlage weist weiterhin Eingabe/Ausgabe-(E/A)-Module zum Übertragen von Befehlen und Daten zwischen dem Rechner und externen Geräten auf. Die externen Geräte können beispielsweise eine Steuerkonsole oder ein Bandspeichergerät aufweisen.
  • Die Fähigkeit einer Digitalrechenanlage und die Leistungsfähigkeit der Maschinenausrüstung oder Hardware sind in verschiedenen Gebieten besonders wichtig, zu denen der Mikrobefehlspeicher und die Schaltung zum Auswählen von aufeinanderfolgenden Mikrobefehlen oder Mikrobefehlfolgen gehören.
  • Der von dem Mikrobefehlspeicher einer Digitalrechenanlage körperlich eingenommene Raum ist durch seine Leistungsfähigkeit zur Speicherung von Mikrobefehlen bestimmt. Die Mikrobefehlorganisation wird durch den Arbeitsablauf des Rechners bestimmt, während der körperliche Aufbau des Mikrobefehlspeichers durch die z. Z. verfügbaren Bauelemente bestimmt ist. Zum Beispiel mag ein Mikrobefehlssatz zwei oder mehr getrennte Seiten von Mikrobefehlen aufweisen, wobei jede Seite 256 Mikrobefehle mit 48 Bit enthält. Zur Zeit verfügbare Lesespeicher (ROMs) zum Speichern von Mikrobefehlen mögen aufgebaut sein als Speicher mit einer Länge von 512 Wörtern und einer Breite von 8 Bit. Eine einzelne Seite von Mikrobefehlen kann mit sechs Lesespeichern für 512 Wörter mal 8 Bit verwirklicht werden. Der Speicherwirkungsgrad würde jedoch nur 50% betragen; der Mikrobefehlspeicher würde zweimal den Raum benötigen, der erforderlich ist, um eine äquivalente Anzahl von Bits zu speichern.
  • Eine weitere Begrenzung für die Leistungsfähigkeit einer Digitalrechenanlage liegt in der Zeit, die zur Auswahl von aufeinanderfolgenden Mikrobefehlen einer Sequenz benötigt wird. Die für eine solche Auswahl erforderliche Schaltung sollte daher zu ihrer Verwirklichung ein Minimum an Maschinenausrüstung und Zeitverzögerung benötigen, um eine möglichst große Geschwindigkeit für die Auswahl zu erzielen.
  • Ausgehend von der eingangs beschriebenen bekannten Anlage liegt der Erfindung die Aufgabe zugrunde, eine solche Datenverarbeitungsanlage zu schaffen, die eine bessere räumliche Ausnutzung des Mikrobefehlspeichers ermöglicht, ohne daß hierbei die Komplexität der Anlage zu sehr ansteigt.
  • Diese Aufgabe wird dadurch gelöst, daß der Mikrobefehlspeicher eine Mehrzahl von getrennt auswählbaren Speicherstellen aufweist, deren jede einen Abschnitt eines Mikrobefehls speichert, daß eine auf jeden Makrobefehl ansprechende Auswahleinrichtung zum aufeinanderfolgenden Auswählen der Abschnitte eines Mikrobefehls vorgesehen ist, und daß eine Einrichtung zum aufeinanderfolgenden Empfangen und zum Speichern der Abschnitte des Mikrobefehls in der Einrichtung zum Speichern des Mikrobefehls vorgesehen ist, derart, daß nach dem Auslesen der Abschnitte des Mikrobefehls der vollständige Mikrobefehl in der Einrichtung zum Speichern steht.
  • Ein Vorteil der Erfindung liegt darin, daß eine wirkungsvolle Ausnützung des verfügbaren Mikrobefehlspeicherraumes möglich wird. Dadurch wird die Leistungsfähigkeit und der Wirkungsgrad des Mikrobefehlspeichers und der Digitalrechenanlage vergrößert.
  • Ausführungsformen der Erfindung ermöglichen es, aufeinanderfolgende Mikrobefehle einer Sequenz schnell auszuwählen und ermöglichen daher auch die schnelle Ausführung der Mikrobefehle.
  • Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von bevorzugten Ausführungsbeispielen anhand der Zeichnung.
  • Fig. 1 ist ein ausführliches Blockschaltbild eines die Erfindung enthaltenden Rechners;
  • Fig. 2 ist eine schematische Darstellung eines Mikrobefehlspeichers des Rechners;
  • Fig. 2A ist eine schematische Darstellung einer Mikrobefehllogik des Rechners, die eine Sequenzsteuerschaltung enthält;
  • Fig. 2B ist eine schematische Darstellung einer Schaltung zur Erzeugung von Taktsignalen zur Benutzung durch den Mikrobefehlspeicher und die Logikschaltung gemäß den Fig. 2 und 2A.
  • Die folgende Beschreibung stellt die Architektur und die Arbeitsweise eines Rechners dar, der die vorliegende Erfindung enthält. Die Architektur und Arbeitsweise des Rechners wird zuerst auf der Ebene eines Blockdiagramms beschrieben. Als nächstes werden ausgewählte Teile des vorliegenden Rechners, z. B. die Schaltung für den Mikrobefehlspeicher, im einzelnen beschrieben. Schließlich werden bestimmte Merkmale der vorliegenden Erfindung zusammengefaßt.
  • Aus Gründen der Deutlichkeit der Darstellung werden in der folgenden Diskussion gewisse Vereinbarungen benutzt. Wo in zwei oder mehr Figuren miteinander zusammenhängende Schaltungen gezeigt sind, haben die Figuren eine gemeinsame Figuren-Nummer mit einer Unterscheidung durch einen Buchstaben, beispielsweise Fig. 2, 2A. Gemeinsame elektrische Anschlüsse zwischen solchen Schaltungen werden durch eine Klammer angezeigt, die eine Leitung zu einem solchen Anschluß einschließt, und eine Bezeichnung "A-b"; "A" zeigt andere Figuren an, die denselben gemeinsamen Anschluß haben, und "b" ist eine einem speziellen gemeinsamen elektrischen Anschlußpunkt zugeordnete Buchstabenbezeichnung. Bezugszeichen enthalten eine Zahl mit zwei Ziffern (00-99), der die Zahl der Figur, in der sie erscheinen, vorausgeht, beispielsweise 100 bis 199 in Fig. 1. Wenn miteinander in Verbindung stehende Schaltungen in zwei oder mehr Figuren gezeigt sind, wird die verwendete Figuren-Nummer diejenige der ersten Figur der miteinander in Verbindung stehenden Gruppe sein. Bezugszeichen werden in der miteinander in Verbindung stehenden Gruppe von Figuren aufeinanderfolgend zugewiesen.
  • Einzelheiten der Struktur und Arbeitsweise der dargestellten Schaltung werden in der vorliegenden Anmeldung nur beschrieben, wo dies erforderlich ist, um die Arbeitsweise darzulegen. Es sind durchweg übliche Schaltungssymbole verwendet, und die Struktur und Arbeitsweise der Schaltung ist für den Fachmann verständlich. Es werden lediglich diejenigen Komponenten mit einem Bezugszeichen versehen, die erforderlich sind, um die Arbeitsweise der Schaltung zu erläutern. Alle in derselben Weise wie die mit Bezugszeichen versehenen Bauteile gezeichneten Bauteile sollen als mit diesen identisch und in derselben Weise wie diese arbeitend angesehen werden.
  • 1. Rechnerarchitektur und Arbeitsweise (Fig. 1) A. Struktur
  • In Fig. 1 ist ein ausführliches Blockschaltbild eines Rechners 110 gezeigt, dessen Architektur die vorliegende Erfindung enthält. Die Hauptteile des Rechners 110 sind eine Zentraleinheit (CPU) 114, die eine Mikrobefehllogik 144, einen Speicher 124 und eine Eingabe/Ausgabe-(E/A)- Schnittstellenschaltung 130 einschließt.
  • Der Ausgang einer arithmetischen und logischen Einheit (ALU) 112 in der Zentraleinheit 114 ist mit einem Ausgabebus (ALUOUT) 116 der ALU verbunden. Der ALUOUT-Bus 116 ist mit dem Dateneingang eines Zwischenregisters (SPMEM) 118 in der Zentraleinheit 114 verbunden, und mit Eingängen eines Datenregisters (DREG) 120 und eines Adreßregisters (AREG) 122 des Speichers 124. Der ALUOUT-Bus 116 ist mit Eingängen eines Universellen-asynchronen-Empfängers/Senders (UART) 126 und mit einem Dateneingabe/Ausgabe-(DI/O)- Puffer 128 A in der E/A-Schnittstellenschaltung 130 verbunden.
  • Der Ausgang des Adreßregisters 122 ist mit Adresseneingängen des Zwischenregisters 118 und eines Konsolenlesespeichers (ROM) 132 in der Zentraleinheit 114 verbunden und mit einem Eingang eines Speichermultiplexers (MEMMUX) 134. Ausgänge des Datenregisters 120 und des Speichermultiplexers 134 sind mit Daten- bzw. Adreßeingängen des Speichers 124 verbunden. Der Ausgang des Speichers 124 ist mit dem Speicherausgabe-(MEMOUT)-Bus 136 verbunden. Der Ausgang des Konsolen-ROM 132 ist auch mit dem MEMOUT-Bus 136 verbunden. Der MEMOUT-Bus 136 ist mit Eingängen eines MEMOUT-Registers (MEMREG) 138 und eines Befehlsregisters (IR) 140 in der Zentraleinheit 114 verbunden. Der MEMOUT-Bus 136 ist auch mit einer Startadressengeneratorschaltung (SAGE) 142 in der Mikrobefehllogik 144 der Zentraleinheit 114 verbunden.
  • Ein erster Ausgang des Befehlsregisters 140 ist mit dem MEMOUT-Bus 136 und mit einem Adresseneingang eines Decodier-ROM 146 in der Mikrobefehllogik 144 verbunden. Ein zweiter Ausgang des Befehlsregisters 140 ist mit einem Mikrobefehlspeicherausgabe-(µMEMOUT)-Bus 148 in der Mikrobefehllogik 144 verbunden. Ein dritter Ausgang ist mit einem Eingang eines Befehlsmultiplexers (INSTMUX) 150 in der Zentraleinheit 114 verbunden. Ausgänge des Befehlsmultiplexers 150, des MEMREG 138 und des Zwischenregisters 118 sind mit einem ALU-Eingabe-(ALUIN)- Bus 152 verbunden. Der ALUIN-Bus 152 wiederum ist mit dem Eingang der ALU 112 verbunden.
  • In der Mikrobefehllogik 144 sind Ausgänge des SAGE 142, des Decodier-ROM 146 und eines Mikrobefehl-Sprung-(µINSTJ)- Puffers 154 mit einem Mikrobefehl-Speicher-Eingabe-(µMEMIN)- Bus 156 verbunden. Der µMEMIN-Bus 156 ist mit einem Eingang eines Mikrobefehlszähler-(µPC)-Registers 158 verbunden. Der Ausgang des Mikrobefehlszählers 158 ist mit einem Adresseneingang eines Mikrobefehlsspeichers 160verbunden, und der Ausgang des Mikrobefehlspeichers 160 ist mit dem µMEMOUT-Bus 148 verbunden. Der µMEMOUT-Bus ist mit Eingängen eines Mikrobefehlsregisters A (µIRA) 162, eines Mikrobefehlsregisters B (µIRB) 164 und des µINSTJ-Puffers 154 verbunden. Der Ausgang des µIRB 164 ist mit einem Eingang einer Sequenzsteuerung (SEQCNTL) 166 verbunden. Ausgänge der Sequenzsteuerung 166 sind mit Steuereingängen des SAGE 142, mit dem Decodier- ROM 146, dem µINSTJ-Puffer 154 und dem Mikrobefehlzähler 158 verbunden. Der Ausgang des µIRA 162 ist mit einem anderen Eingang des Befehlsmultiplexers 150 verbunden.
  • In der E/A-Schnittstellenschaltung 130 ist ein ASCII- E/A-Kanal 168 zwischen ein (aus Gründen der Deutlichkeit der Darstellung nicht dargestelltes) ASCII- Schnittstellen-Gerät und den UART 126 eingeschaltet. Der Datenausgang des UART 126 ist mit dem ALUIN-Bus 152 verbunden. Wie oben angegeben, ist der Dateneingang des UART 126 mit dem ALUOUT-Bus 116 verbunden. In ähnlicher Weise ist ein Daten-E/A-Bus 170 mit einer externen Datenquelle verbunden (aus Gründen der Deutlichkeit der Darstellung nicht gezeigt) und mit einem Eingang eines Daten-E/A-(DI/O)-Puffers 128 B verbunden. Der Ausgang des DI/O-Puffers 128 B ist mit dem ALUIN- Bus 152 verbunden. Wie oben angegeben, ist der Eingang des DI/O-Puffers 128 A mit dem ALUOUT-Bus 116 verbunden; der Ausgang des DI/O-Puffers 128 A ist mit einem Daten- E/A-Bus 170 verbunden.
  • B. Arbeitsweise
  • Es wird wieder auf Fig. 1 Bezug genommen. Ein Benutzerprogramm, z. B. Daten und Mikrobefehle, werden im Speicher 124 gespeichert und auf Anforderung durch die Zentraleinheit 114 über den MEMOUT-Bus 136 zur Zentraleinheit 114 übertragen. Die Übertragung von Daten und Makrobefehlen aus dem Speicher 124 heraus und ihr Einschreiben in den Speicher 124 werden über den ALUOUT- Bus 116 vorgenommen. Die Lese- und Schreibadressen des Speichers 124 werden von der ALU 112 über den ALUOUT- Bus 116 geliefert und im Adreßregister 122 gespeichert. Daten/Makrobefehle, die in den Speicher 124 geschrieben werden sollen, werden gleichfalls durch die ALU 112 geliefert und im Datenregister 120 gespeichert. Daten/ Makrobefehle werden zum Speicher 124 direkt vom Datenregister 120 geliefert. Lese/Schreibadressen vom Adreßregister 122 werden durch den Speichermultiplexer 124 in Zeilen- und Spaltenadressen des Speichers 124 umgewandelt und an den Speicher 124 geliefert.
  • Auf dem MEMOUT-Bus 136 erscheinende Daten/Makrobefehle können durch das MEMOUT-Register 138 auf den ALUIN-Bus 152 zur Benutzung durch die ALU 112 übertragen werden. Im allgemeinen werden auf dem MEMOUT-Bus 136 erscheinende Makrobefehle in das Befehlsregister 140 übertragen. Bestimmte Makrobefehle können dann vom Befehlsregister 140 zur ALU 112 durch den Befehlsmultiplexer 150 und den ALUIN-Bus 152 übertragen werden.
  • Häufig benutzte Sequenzen von Befehlen, die als Mikrobefehle bezeichnet werden, werden in der Mikrobefehllogik 144 gespeichert, die unten besprochen wird. Ein einer solchen Sequenz von Mikrobefehlen entsprechender Makrobefehl weist in einem Teil eine Anweisung an die Mikrobefehllogik 144 auf. Die Mikrobefehllogik 144 antwortet auf einen solchen im Befehlsregister 140 erscheinenden Makrobefehl durch Lieferung der entsprechenden Sequenz von Mikrobefehlen auf dem µMEMOUT-Bus 148.
  • Gewisse Teile der Mikrobefehle können, wie unten diskutiert wird, in das µIRA 162 und zum ALUIN-Bus 152 über den Befehlsmultiplexer 150 übertragen werden.
  • Der Rechner 110 weist eine Schaltung zum Liefern von Auffrischadressen an den Speicher 124 auf, um darin gespeicherte Daten/Makrobefehle aufzufrischen. Die Auffrischschaltung besteht teilweise aus der ALU 112, dem Adreßregister 122 und dem Speichermultiplexer 134. Die Zentraleinheit 114 weist eine Schaltung zum Bereitstellen von Befehlen auf. Diese Schaltung zum Bereitstellen von Befehlen gestattet es, daß der nächste durch die Zentraleinheit 114 auszuführende Befehl vom Speicher 124 abgerufen wird, während ein laufender Befehl sich in der Ausführung befindet.
  • Das Zwischenregister 118 sorgt für eine zeitweilige Speicherung, z. B. für den Inhalt der ALU 112 während einer Unterbrechungsoperation (Interrupt). Im Zwischenregister 118 zu speichernde Daten werden durch den ALUOUT-Bus 116 zum Dateneingang des Zwischenregisters 118geliefert. Die Lese/Schreib-Adressen des Zwischenregisters 118 werden von der ALU 112 über das Adreßregister 122 geliefert. Die aus dem Zwischenregister 118 ausgelesenen Daten erscheinen auf dem ALUIN-Bus 152, wo sie zur Benutzung durch die ALU 112 verfügbar sind.
  • Der Verkehr zwischen externen Geräten und der Zentraleinheit 114 oder dem Speicher 124 wird durch die E/A- Schnittstellenschaltung 130 bewirkt. Durch den Daten- E/A-Bus 170 können parallele digitale Wörter übertragen werden. Die DI/O-Puffer 128 A und 128 B gestatten es, daß Daten/Makrobefehle zwischen dem ALUOUT-Bus 116 bzw. dem ALUIN-Bus 152 und dem Daten-E/A-Bus 170 übertragen werden. Die Übertragung von Daten/Makrobefehlen zwischen dem Daten-E/A-Bus 170 und dem Speicher 124 wird über die ALU 112 vorgenommen.
  • Serielle alphanumerische Zeichen, zum Beispiel im ASCII-Code, werden zwischen der Zentraleinheit 114 und einem externen Gerät (aus Gründen der Deutlichkeit der Darstellung nicht gezeigt) über den ASCII-E/A-Bus 178 und den UART 126 übertragen. Wie in der Patentanmeldung P 29 44 419.7 gelehrt wird, ist das Konsolen-ROM 132 ein Schnittstellengerät, das es gestattet, daß irgendein externes Gerät mit beispielsweise einer ASCII-Schnittstelle als Steuerkonsole des Rechners arbeitet. Das Konsolen-ROM 132 ersetzt einen großen Teil der Schalter und Lampen eines normalerweise zum Steuern des Rechners 110 verwendeten Konsolengeräts; der Rechner 110 benötigt daher nur ein kleines Konsolengerät. Das Konsolen-ROM 132 enthält Makrobefehle für ein Konsolenprogramm für den Konsolenbetrieb des Rechners 110. Diese beinhalten Prüfung und Modifikation von laufenden Inhalten des Rechners 110, das Urladen von Programmen, und die Ausführung von Testprogrammen. Im Betrieb werden vorbestimmte Sequenzen von extern gelieferten alphanumerischen Zeichen durch die Zentraleinheit 114 über den UART 126 empfangen. Die empfangenen Sequenzen werden dann als Adreßeingangssignale zum Konsolen-ROM 132 über den ALUOUT-Bus 116 und das Adreßregister 122 geliefert. Entsprechende Makrobefehls-Ausgangssignale des Konsolen-ROM 132 erscheinen dann auf dem MEMOUT- Bus 136 in der gleichen Weise wie vom Speicher 124 gelieferte Makrobefehle.
  • Nach der Beschreibung der Struktur und Arbeitsweise des Rechners 110 auf der Ebene eines Blockschaltbildes wird als nächstes die Struktur und Arbeitsweise der Mikrobefehllogik 144 im einzelnen beschrieben.
  • 2. Mikrobefehllogik 144 (Fig. 1, 2, 2A und 2B)
  • Wie oben beschrieben wurde, speichert die Mikrobefehllogik 144 häufig verwendete Sequenzen von Mikrobefehlen. Ein einer solchen Sequenz von Mikrobefehlen entsprechender Makrobefehl arbeitet teilweise als eine Anweisung an die Mikrobefehllogik 144. Die Mikrobefehllogik 144 antwortet dadurch, daß sie jeden Mikrobefehl der entsprechenden Sequenz aufeinanderfolgend liefert. Die Mikrobefehle erscheinen auf dem µMEMOUT-Bus 148, und zum Teil werden sie in das µIRA 162 übertragen, um an die ALU 112 über den Befehlsmultiplexer 150 übertragen zu werden. Andere Teile der Mikrobefehle liefern direkte Steuersignale für die Zentraleinheit 114 und die Mikrobefehllogik 144.
  • Die Struktur der Mikrobefehllogik 144 wurde oben bei der Beschreibung des Rechners 110 auf der Ebene eines Blockdiagramms beschrieben. Die folgende Besprechung beginnt mit einer Beschreibung der Arbeitsweise der Mikrobefehllogik auf der Basis eines Blockdiagramms. Die beim vorliegenden Ausführungsbeispiel der Mikrobefehllogik 144 verwendete Schaltung wird dann dargestellt.
  • A. Mikrobefehllogik 144, Arbeitsweise (Fig. 1)
  • Es wird wieder auf Fig. 1 Bezug genommen. Der Mikrobefehlspeicher 116 speichert Sequenzen von Mikrobefehlen. Jede solche Sequenz entspricht einem einzigen oder mehr z. B. im Speicher 124 gespeicherten Makrobefehlen. Der Speicher 160 mag sich der Zentraleinheit 114 so darstellen, daß er einen Speicher mit 512 Wörtern mit einer Breite von 48 Bit bildet, wobei er bis zu 512 Mikrobefehle mit 48 Bit enthält. Der Speicher 160 mag intern als zweiseitiger Speicher organisiert sein, wobei jede Seite als ein Speicher mit 512 Wörtern mit einer Breite von 24 Bit organisiert sein mag. Eine Seite des Speichers 160 hat daher eine ausreichende Bitkapazität zur Speicherung der Hälfte der im Speicher 160 enthaltenen Mikrobefehle. Jede Seite des Speichers 160 mag 24 Bit breit sein, das ist die Hälfte eines Mikrobefehls. Jede Seite mag dann 512 Wörter lang sein, das ist das Doppelte der Anzahl von in ihr zu speichernden Mikrobefehlen. Jeder Mikrobefehl mag in einen ersten und einen zweiten Abschnitt unterteilt sein; der Abschnitt weist 24 Bit auf. Der erste und der zweite Abschnitt eines einzelnen Mikrobefehls mögen in aufeinanderfolgenden Wort-Speicherplätzen des Speichers 160 gespeichert sein, z. B. der erste Abschnitt des Mikrobefehls 24 im Speicherplatz 48 des Speichers 160 und der zweite Abschnitt im Speicherplatz 49 des Speichers 160. Ein einzelner Mikrobefehl kann dann aus dem Speicher 160 in zwei aufeinanderfolgenden Schritten abgerufen werden. Die Zugriffszeit des Speichers 160 ist vorzugsweise nicht größer als die Hälfte einer Zyklusperiode der Zentraleinheit 114 (z. B. 0,2 µs). Ein einzelner Mikrobefehl kann daher aus dem Speicher 160 innerhalb eines einzigen Zyklus der Zentraleinheit 114 ausgelesen werden. Der erste Abschnitt eines Mikrobefehls wird in das µIRA 162 übertragen und mag für die Zentraleinheit 114 Befehlsbits und Steuersignale liefern. Der zweite Abschnitt eines Mikrobefehls mag in das µIRB 164 übertragen werden, um Steuersignale für die Auswahl von aufeinanderfolgenden Mikrobefehlen einer Mikrobefehlssequenz zu liefern. Es wird darauf hingewiesen, daß andere Arten der Organisation des Speichers 116, der µIRA 162 und µIRB 164 verwendet werden können. Beispielsweise kann eine Seite des Speichers 160 die Breite von einem Viertel eines Mikrobefehls haben und sie kann viermal so viele Wörter enthalten, wie Mikrobefehle in ihr gespeichert werden sollen. In diesem Falle würde ein einzelner Mikrobefehl vier Abschnitte aufweisen, die in vier Speicherplätzen des Speichers 160 gespeichert wären. Es würde vier Mikrobefehlsregister geben. Die vier Abschnitte eines Mikrobefehls würden in die entsprechenden Mikrobefehlsregister während eines einzelnen Zyklus der Zentraleinheit 114 übertragen; die Zugriffszeit des Speichers 160 würde kleiner sein als ein Viertel der Zyklusdauer der Zentraleinheit 114. Weiterhin müßten einzelne Teile eines Mikrobefehls nicht in aufeinanderfolgenden Speicherplätzen des Speichers 160 gespeichert sein, sondern sie können beispielsweise überlappend gespeichert sein. Auch kann der Speicher 160 als Speicher mit einer einzelnen Seite oder mit einer Vielzahl von Seiten organisiert sein.
  • Im Betrieb erscheint ein einer bestimmten Mikrobefehlssequenz entsprechender Makrobefehl auf dem MEMOUT-Bus 136 und wird in das Befehlsregister 140 übertragen. Im allgemeinen wird ein Makrobefehl im Befehlsregister 140 durch das Decodier-ROM 146 decodiert, das eine Adresse des ersten Mikrobefehls der entsprechenden Sequenz für den Speicher 160 liefert. Wie in der Patentanmeldung P 29 44 419.7 beschrieben, mag der SAGE 142 bestimmte Makrobefehle direkt decodieren, um direkt die Adresse des ersten Mikrobefehls für den Speicher 160 zu liefern. Der SAGE 142 beseitigt dabei die durch das Befehlsregister 140 und das Decodier-ROM 146 bewirkte Zeitverzögerung und verringert die Zeit, die benötigt wird, um die Ausführung von bestimmten Sequenzen zu veranlassen. Das dem Decodier-ROM 146 zugeführte Ausgangssignal des Befehlsregisters 140 wird vom MEMOUT-Bus 136 auch dem Eingang des SAGE 142 zugeführt. Beispielsweise im Fall einer Unterbrechungsoperation kann ein laufender Makrobefehl im Befehlsregister 140 gespeichert werden. Am Ende der Unterbrechung kann der gespeicherte Makrobefehl vom Befehlsregister 140 zum MEMOUT-Bus 136 und zum Eingang des SAGE 142 übertragen werden, um die entsprechende Mikrobefehlssequenz erneut zu beginnen. Dies ermöglicht es, daß eine Mikrobefehlssequenz nach einer Unterbrechung erneut begonnen wird, ohne daß ein neuer Lesezyklus des Speichers 124 benötigt wird.
  • Die erste Mikrobefehladresse für den Mikrobefehlspeicher 160 erscheint auf dem µMEMIN-Bus 156 und wird in den Mikrobefehlszähler 158 übertragen. Die erste Adresse wird dann zum Adreßeingang des Mikrobefehlspeichers 160 geliefert. Diese Adresse und alle nachfolgenden Adressen wählen zwei Speicherplätze des Mikrobefehlspeichers 160 aus, die den ersten und zweiten Abschnitt des entsprechenden Mikrobefehls enthalten. Ein getrenntes Adresseneingangssignal, das unten beschrieben wird, liefert ein zusätzliches Adreß-Bit zur Auswahl zwischen der ersten und der zweiten Speicherstelle, d. h. zwischen dem ersten und zweiten Abschnitt. Der erste Abschnitt wird zuerst ausgewählt und durch den µMEMOUT-Bus 148 zum µIRA 162 übertragen. Der zweite Abschnitt wird dann ausgewählt und durch den µMEMOUT-Bus 148 zum µIRB 164 übertragen. Im Hinblick auf die Arbeit der Zentraleinheit 114 scheint daher der Mikrobefehlspeicher 160 einen Mikrobefehl mit 48 Bit innerhalb eines einzigen Zyklus der Zentraleinheit 114 zu liefern und somit ein Speicher mit einer Länge von 512 Wörtern zu 48 Bit zu sein.
  • Bestimmte Bits des ersten Mikrobefehlsabschnitts im µIRA 162 können durch den Befehlsmultiplexer 150 zur ALU 112 als Befehlswort geliefert werden. Andere Bits des ersten Abschnitts des Mikrobefehls mögen direkte Steuersignale für die ALU 112 bilden. Das zum µMEMOUT- Bus 148 gelieferte Ausgangssignal des Befehlsregisters 140 ermöglicht es, bestimmte Makrobefehls-Bits zum Modifizieren eines ersten (oder zweiten) Abschnitts eines Mikrobefehls zu verwenden. In einem solchen Fall sind besimmte Mikrobefehls-Bits "Leerstellen" (z. B. eine fehlende logische 1) und diese Bits (z. B. logische Nullen) werden vom Befehlsregister 140 geliefert. Der zweite Mikrobefehlabschnitt im µIRB 164 kann im allgemeinen verwendet werden, um die Auswahl von nachfolgenden Mikrobefehlen der Sequenz zu steuern. Im Hinblick hierauf können bestimmte Bits des zweiten Mikrobefehlabschnitts eine durch jenen Mikrobefehl zu prüfende Bedingung angeben. Bestimmte andere zur Sequenzsteuerung gelieferte Bits können die in Abhängigkeit von den Prüfungsergebnissen vorzunehmenden Maßnahmen angeben. Man mag vier derartige möglicherweise vorzunehmende Maßnahmen vorsehen. Die erste ist, zu einem durch eine vom SAGE 142 gelieferte Adresse des Mikrobefehlspeichers 160 bezeichneten Mikrobefehl zu gehen. Die zweite ist, zu einem durch eine vom Decodier-ROM 146 gelieferte Adresse für den Mikrobefehlspeicher 160 angegebenen Mikrobefehl zu gehen. Die dritte ist, zu einem vom µINSTJ- Puffer 154 gelieferte Adresse für den Mikrobefehlspeicher 160 bezeichneten Mikrobefehl zu springen. Die vierte ist, mit der nächsten folgenden Adresse des Mikroprogrammspeichers 160 fortzufahren. Die erste und zweite Maßnahme mögen beispielsweise bei einer Mikrobefehlssequenzverzweigung unternommen werden oder um eine neue Mikrobefehlssequenz zu beginnen. Es kann wiederum der SAGE 142 verwendet werden, wo es wünschenswert ist, einen nächsten Mikrobefehl schnell zu beginnen. Die dritte Maßnahme ist eine übliche Sprungoperation. In diesem Fall kann eine Adresse des Mikrobefehlspeichers 160, zu der gesprungen werden soll, durch Bits des zweiten Segments eines folgenden Mikrobefehls bezeichnet werden, die über den µINSTJ-Puffer 154 auf den µMEMIN- Bus 156 übertragen werden. Es werden daher zur Ausführung eines Sprungs zwei aufeinanderfolgende Mikrobefehle benötigt. Die zu prüfende Bedingung ist im zweiten Abschnitt eines ersten Mikrobefehls angegeben. Die anzuspringende Adresse ist im zweiten Abschnitt eines zweiten Mikrobefehls angegeben. Der Sprung findet dann beim Beginn eines dritten folgenden Mikrobefehls statt. Die vierte Maßnahme findet statt, wenn aufeinanderfolgende Mikrobefehle in entsprechenden aufeinanderfolgenden Stellen des Mikrobefehlspeichers 160 gespeichert werden. In diesem Falle betätigt das Mikrobefehlszählerregister 158 einen Zähler, und eine darin befindliche Adresse wird bei der Ausführung jedes einzelnen Mikrobefehls inkrementiert.
  • Zusammenfassend wählt die Adresse des Mikrobefehlszählers 158 aufeinanderfolgende Paare von Speicherstellen im Mikrobefehlspeicher 160 aus, die die ersten und zweiten Abschnitte von Mikrobefehlen enthalten. Die Auswahl von nachfolgenden Mikrobefehlen wird durch die Sequenzsteuerung 166 ausgeführt, die bestimmte Bits eines zweiten Mikrobefehlsabschnitts aus dem µIRB 164 decodiert. Die Sequenzsteuerung 166 liefert Aktivierungsausgangssignale an den SAGE 142, das Decodier-ROM 146, den µINSTJ-Puffer 154 und das Mikrobefehlszählerregister 158.
  • Nach der Beschreibung der Arbeitsweise der Mikrobefehllogik 144 auf der Ebene eines Blockdiagramms wird die beim augenblicklich bevorzugten Ausführungsbeispiel der Mikrobefehllogik 144 verwendete Schaltung als nächstes beschrieben.
  • B. Mikrobefehllogik 144, Schaltung (Fig. 2, 2A, 2B)
  • Eine schematische Darstellung der bei einer bevorzugten Ausführungsform der Mikrobefehllogik 144 verwendeten Schaltung ist in den Fig. 2 bis 2B dargestellt und mit der Blockdarstellung der Fig. 1 in Beziehung gesetzt.
  • In Fig. 2 sind der Mikrobefehlszähler 158 und der Mikrobefehlspeicher 163 gezeigt. Der Mikrobefehlszähler 158 weist 4-Bit-Zähler 200 und 202 auf, und der Mikrobefehlspeicher 160 weist Lesespeicher (ROM) 204 bis 214 auf.
  • Die Dateneingänge der Zähler 200 bis 202 sind mit dem µMEMIN-Bus 256 verbunden, und die Datenausgänge der Zähler 200 und 202 sind mit Adresseneingängen der ROMs 204 und 214 verbunden. Den Parallelzählaktiviereingängen der Zähler 200 und 202 wird ein Aktiviersignal °K&udf53;lu,4,1,100,5,1&udf54;CONTINUE °k&udf53;lu&udf54; von der Sequenzsteuerung 166 zugeführt, das unten beschrieben wird.
  • Eine auf dem µMEMIN-Bus 156 erscheinende Adresse wird in die Zähler 200 und 202 durch ein Taktsignal BCLK geladen, wenn °K&udf53;lu,4,1,100,5,1&udf54;CONTINUE °k&udf53;lu&udf54; logisch 0 ist. Wenn °K&udf53;lu,4,1,100,5,1&udf54;CONTINUE °k&udf53;lu&udf54; logisch 1 ist, arbeiten die Zähler 200 und 202 als serielle Binärzähler, und eine in ihnen gespeicherte Adresse wird aufeinanderfolgend durch BCLK inkrementiert. Wie weiter unten beschrieben ist, ist BCLK ein Taktsignal mit Rechteckwellenform, das mit der Zyklusfrequenz der Zentraleinheit 114 erscheint (z. B. 5 MHz). Den Rücksetzeingängen der Zähler 200 und 202 wird ein Rücksetzsignal °K&udf53;lu,4,1,100,5,1&udf54;RYSNC °k&udf53;lu&udf54; zugeführt, das es gestattet, den Inhalt der Zähler 200 und 202 auf 0 zurückzusetzen.
  • Beim Mikrobefehlspeicher 160 bilden die ROMs 204, 208 und 212 die Seite 1 des Speichers 160, während die ROMs 206, 210 und 214 die Seite 2 bilden. Die ROMs 204 und 206 enthalten die Bits 0 bis 7 und die Bits 24 bis 31 des ersten bzw. zweiten Mikrobefehlabschnitts. In ähnlicher Weise enthalten die ROMs 208 und 210 die Bits 8 bis 15 und 32 bis 39, während die ROMs 212 und 214 die Bits 16 bis 23 und 40 bis 47 enthalten. Die Datenausgänge der ROMs 204 und 206 (µMEMOUT 0/24 bis 7/31) sind durch eine verdrahtete ODER-Schaltung verknüpft und mit dem µMEMOUT-Bus 148 verbunden. In ähnlicher Weise sind die Datenausgänge der ROMs 208 und 210 (µMEMOUT 8/32 bis 15/39) und die ROMs 212 und 214 (µMEMOUT 16/40 bis 23/47) durch eine verdrahtete ODER-Schaltung verbunden und mit dem µMEMOUT-Bus 148 verbunden. Die Auswahl zwischen den Seiten 1 und 2 des Mikrobefehlspeichers 160 wird durch ein Signal PAGE SELECT vom µIRB 164 erzielt, das weiter unten beschrieben wird. PAGE SELECT wird direkt den Aktiviereingängen der ROMs 206, 210 und 214 zugeführt. PAGE SELECT wird durch ein Verknüpfungsglied 216 invertiert, und das Signal °K&udf53;lu,4,,100,5,1&udf54;PAGE¤SELECT&udf53;lu&udf54;°k wird den Aktiviereingängen der ROMs 204, 208 und 212 zugeführt.
  • Bei der Seite 1 (ROMs 204, 208 und 212) des Mikrobefehlspeichers 160 bildet jeder ROM einen Speicher mit 512 Wörtern und einer Breite von 8 Bit. Die ROMs 204, 208 und 212 bilden daher einen Speicher mit einer Breite von 24 Bit und einer Länge von 512 Wörtern. Die Seite 2 ist ähnlich der Seite 1. Jeder Mikrobefehl ist in zwei Abschnitte mit 24 Bit unterteilt, die in aufeinanderfolgenden Speicherstellen der Seite 1 gespeichert werden, d. h., in einer geraden Adresse und einer ungeraden Adresse. Beispielsweise wird der erste Abschnitt des Mikrobefehls 24 in der Speicherstelle 24 gespeichert und der zweite Abschnitt in der Speicherstelle 25. Die Auswahl einer einzelnen Adresse der Seite 1 erfordert neun Adreßbits (2&sup9;=512). Die Adreßausgänge des Mikrobefehlszählers 158 bilden acht höchstwertige Bits der Adresse des Mikroprogrammspeichers 160. Das Adressenausgangssignal des Mikrobefehlszählers 158 ist daher in der Lage, jedes einzelne aufeinanderfolgende Paar von Adreßstellen auszuwählen, das heißt, ein Paar von Speicherstellen des Mikrobefehlspeichers 160, das einen einzelnen Mikrobefehl enthält. Das niedrigstwertige Adreßbit des Mikrobefehlspeichers 160 wird durch ein Taktsignal ACLK geliefert. ACLK trifft eine Auswahl zwischen aufeinanderfolgenden Speicherstellen des Mikrobefehlspeichers 160, d. h. zwischen dem ersten und zweiten Abschnitt eines Mikrobefehls. Wie weiter unten beschrieben wird, ist ACLK ein Taktsignal mit Rechteckwellenform mit derselben Frequenz wie BCLK, aber es ist gegenüber BCLK invertiert. Während der ersten Hälfte der BCLK-Periode ist ACLK logisch 0, und während der zweiten Hälfte der BCLK-Periode ist ACLK logisch 1. Während einer einzelnen BCLK-Periode wählt daher ACLK zuerst die Speicherstelle mit der geraden Adresse des Mikrobefehlspeichers 160, die den ersten Abschnitt (Bits 0-23) des Mikrobefehls enthält. Anschließend wählt ACLK die Speicherstelle mit der ungeraden Adresse des Mikrobefehlspeichers 160aus, die den zweiten Abschnitt (Bits 24-47) des Mikrobefehls enthält. Die ersten und zweiten auf diese Weise gewählten Abschnitte des Mikrobefehls werden dabei nacheinander vom Mikrobefehlspeicher 160 zum µMEMOUT-Bus 148 während eines einzelnen BCLK-Zyklus übertragen.
  • In Fig. 2A ist µIRA 162, µIRB 164, die Sequenzsteuerung 166, der µINSTJ-Puffer 154, der Decodier-ROM 146 und der SAGE 142 gezeigt. Der µIRA 162 weist 6-Bit-Register 218 bis 224 auf, deren Dateneingänge mit dem µMEMOUT-Bus 148 (µMEMOUT 0/24-23/47) verbunden sind. Den Takteingängen der Register 218 bis 224 wird das Signal ACLK zugeführt. Das µIRB 164 weist 6-Bit-Register 226 bis 230 auf, deren Dateneingänge ebenfalls mit dem µMEMOUT-Bus 148 (µMEMOUT 0/24-13/37, 22/46, 23/47) verbunden sind. Den Takteingängen der Register 226 bis 230 wird das Signal BCLK zugeführt. Ein erster auf dem µMEMOUT-Bus 148 erscheinender Abschnitt (µMEMOUT 0-23) eines Mikrobefehls wird daher durch ACLK in das µIRA 162 geladen. Die Bits 1-8 des ersten Abschnitts (µIRA 1-8) des Mikrobefehls werden von den Registern 222 und 224 zum Befehlsmultiplexer 150 und zur ALU 112 als Befehlsbits geliefert. Das Bit 0 (µIRA 0) vom Register 224 wird zum Befehlsmultiplexer 150 als Aktivierungssignal geliefert, das anzeigt, daß µIRA 1-8 durch den Befehlsmultiplexer 150 zum ALUIN- Bus 152 übertragen werden müssen. Die Bits 9-23 des ersten Abschnitts (µIRA 9-23) des Mikrobefehls werden der ALU 112 als direkte (Random) Steuersignale zugeführt. Den Rücksetzeingängen der Register 218 bis 224 wird ein Rücksetzsignal ≙ zugeführt, das es ermöglicht, den Inhalt des µIRA 162 auf 0 zurückzusetzen.
  • Der zweite Abschnitt (µMEMOUT 24-47) des Mikrobefehls erscheint auf dem µMEMOUT-Bus 148 nach dem ersten Abschnitt des Mikrobefehls und wird durch BCLK in das µIRB 164 übertragen. Den Rücksetzeingängen der Register 226-230 wird ein Signal °K&udf53;lu,4,1,100,5,1&udf54;RYSCN°k &udf53;lu&udf54;zugeführt, das es gestattet, daß der Inhalt des µIRB 164 auf 0 zurückgesetzt wird.
  • Die Bits µIRB 24-28 und 33-27 des zweiten Abschnitts des Mikrobefehls werden als direkte Steuersignale verwendet. Teilweise definieren diese Bits Prüfbedingungen, die oben erwähnt wurden, um die sequenzielle Auswahl der Mikrobefehle zu steuern. Die Bits µIRB 29-32 werden Verknüpfungsgliedern 232 und 234 der Sequenzsteuerung 166 zugeführt. Diese Bits wählen in Abhängigkeit von Prüfergebnissen aus, welche Maßnahme von den oben beschriebenen vier möglichen Maßnahmen zu treffen ist. Eingangssignale TEST und °K&udf53;lu,4,1,100,5,1&udf54;TEST°k &udf53;lu&udf54;der Verknüpfungsglieder 232 und 234 sind Aktivierungssignale, die Prüfergebnisse repräsentieren. Die Ausgangssignale der Verknüpfungsglieder 232 und 234 werden Eingängen eines Decodierers 236 zugeführt. Der Decodierer 236 decodiert die Ausgangssignale der Verknüpfungsglieder 232 und 234 und liefert vier Aktivierungssignale als Ausgangssignale. Wie oben beschrieben, wird °K&udf53;lu,4,1,100,5,1&udf54;CONTINUE°k &udf53;lu&udf54; an die Zähler 200 und 202 des Mikrobefehlszählers 158 geliefert. °K&udf53;lu,4,1,100,5,1&udf54;CONTINUE°k &udf53;lu&udf54; bestimmt, ob die Zähler 200 und 202 parallel mit einer Adresse vom µMEMIN-Bus 156 geladen werden, oder ob eine in ihnen gespeicherte Adresse inkrementiert werden muß. Ein Signal °K&udf53;lu,4,1,100,5,1&udf54;ENBJMP°k &udf53;lu&udf54;wird dem µINSTJ-Puffer 154 zugeführt. °K&udf53;lu,4,1,100,5,1&udf54;ENBJMP °k&udf53;lu&udf54;aktiviert die Puffer 238 und 240 zur Übertragung der Bits µMEMOUT 38-45 des zweiten Segments des nächsten Mikrobefehls zum µMEMIN-Bus 156.
  • Die Bits 38-45 des zweiten Segments des nächsten Mikrobefehls stellen eine Adresse des Mikrobefehlspeichers 160 dar, die einen Mikrobefehl enthält, auf den gesprungen werden soll. °K&udf53;lu,4,1,100,5,1&udf54;ENBSAGE°k &udf53;lu&udf54; und °K&udf53;lu,4,1,100,5,1&udf54;ENBDECODE°k &udf53;lu&udf54;aktivieren den SAGE 142 bzw. den Decodier- ROM 146.
  • Wie oben festgestellt wurde, wird das Bit µIRB 46 des zweiten Abschnitts des Mikrobefehls zum Mikrobefehlspeicher 160 als Auswahlsignal PAGE SELECT geliefert. Jeder Mikrobefehl enthält daher eine Information, die angibt, ob der nächste anschließende Mikrobefehl auf der Seite 1 oder Seite 2 des Mikrobefehlspeichers 160 angeordnet ist.
  • In Fig. 2B ist die Schaltung zum Erzeugen der Signale ACLK und BCLK gezeigt. Flipflops 242 bis 246 bilden einen durch acht teilenden Zähler, der durch 40 CLK, ein Taktsignal mit 40 MHz getaktet wird. Die Ausgangssignale der Ausgänge Q und ≙ des Flipflops 246 werden durch Verknüpfungsglieder 248 und 250 invertiert, die symmetrische und invertierte Rechteckwellensignale BCLK und ACLK liefern. Wie oben festgestellt wurde, ist die BCLK-Periode die Zyklusperiode der Zentraleinheit 114 (5 MHz). ACLK ist während der ersten Hälfte der BCLK-Periode logisch 0 und während der zweiten Hälfte der BCLK-Periode logisch 1. Ein den Setzeingängen der Flipflops 242-246 zugeführtes Signal ≙ (Preset) gestattet es, daß die anfängliche Startbedingung der Flipflops 242-246 gesetzt wird.
  • 3. Zusammenfassung von Merkmalen des Rechners 110
  • Bestimmte Merkmale des Rechners 110, die neben anderen oben beschrieben wurden, sind:
  • Erstens, die Unterteilung von Mikrobefehlen in Mikrobefehlabschnitte, die Speicherung dieser Abschnitte in dem Mikrobefehlspeicher 160, die Anordnung eines getrennten Mikrobefehlsregisters für jeden solchen Abschnitt eines Mikrobefehls, und die sequentielle Übertragung von Mikrobefehlabschnitten in Mikrobefehlsregister, um einen vollständigen Mikrobefehl wirksam zusammenzusetzen. Die Mikrobefehle können daher in leistungsfähiger Weise in der körperlichen Struktur des Mikrobefehlspeichers 160 untergebracht werden, indem der körperlichen Adressenraum des Speichers 160 im Zeitmultiplex erfaßt wird. Dabei wird die Mikrobefehlorganisation so zugeschnitten, daß sie sich an die körperliche Struktur des Speichers 160 anpaßt. Im allgemeinen kann jeder Befehl in eine ganze Anzahl N von Mikrobefehlabschnitten unterteilt werden. Die Breite von jedem Abschnitt ist gleich oder geringer als die Breite einer einzelnen Speicherstelle des Speichers 160. Die Länge des Speichers 160 ist vorzugsweise mindestens N-mal die Anzahl von in ihm zu speichernden Mikrobefehlen. Die Mikrobefehlabschnitte werden vorzugsweise im Speicher 160 in einer vorbestimmten Ordnung gespeichert, um das Adressieren zu vereinfachen. Es kann ein getrenntes Mikrobefehlregister für jeden Abschnitt eines Mikrobefehls existieren. Einzelne Abschnitte, die einen Mikrobefehl bilden, werden zeitlich sequentiell vom Speicher 160 zu den Mikrobefehlsregistern in einer vorbestimmten Reihenfolge übertragen. Die Übertragung von Mikrobefehlsabschnitten kann vorzugsweise innerhalb eines einzelnen Zyklus der Zentraleinheit ausgeführt werden; die Zugriffszeit des Speichers 160 ist daher vorzugsweise geringer als 1/N der Zyklusperiode der Zentraleinheit.
  • Zweitens, die Verwendung von bestimmten Mikrobefehlsabschnitten, um Steuersignale zum Auswählen nachfolgender Mikrobefehle aus einer Mikrobefehlssequenz zu erhalten. Dies vereinfacht die zur Auswahl von aufeinanderfolgenden Mikrobefehlen erforderliche Schaltung. Dadurch wird die zum Auswählen aufeinanderfolgender Mikrobefehle benötigte Zeit verringert. Dies ermöglicht eine größere Flexibilität bei der Organisation des Speichers 160 und der Mikrobefehle, wie oben beschrieben wurde, und vergrößert die Geschwindigkeit der Ausführung eines Mikrobefehls.
  • Hiermit ist die Beschreibung einer bevorzugten Ausführungsform der vorliegenden Erfindung beendet. Die Erfindung kann in noch anderen speziellen Ausführungsformen verwirklicht sein, ohne vom Kern oder den wesentlichen Eigenschaften der Erfindung abzuweichen. Zum Beispiel kann der Mikrobefehlspeicher 160 in seiner Länge und Breite variieren und er kann andere Arten der internen Organisation haben. Beispielsweise kann der Speicher 160 eine Breite von 12 Bits und eine Länge von 1024 Wörtern haben und als ein Speicher mit einer einzigen Seite organisiert sein. In ähnlicher Weise kann jeder Mikrobefehl beispielsweise 56 oder 16 Bits enthalten und kann in unterschiedlicher Weise in Abschnitte unterteilt sein. Die Abschnitte eines einzelnen Befehls müssen nicht in aufeinanderfolgenden Speicherstellen des Speichers 160 gespeichert sein, sondern sie können beispielsweise in diesem überlappt gespeichert sein. In gleicher Weise kann der Speicher 124 eine abweichende Kapazität haben, und er kann in unterschiedlicher Weise organisiert und adressiert werden. Der Speicher 124 kann Steuersignale und Sequenzen verwenden, die von den hier gezeigten abweichen, und es können andere Anordnungen des Speicheradreßregisters 122 verwendet sein.
  • Soweit die Art der in der Zeichnung gezeigten Verknüpfungsglieder (z. B. ODER-Glied) in der Beschreibung nicht angegeben ist, kann sie der Zeichnung entnommen werden.

Claims (5)

1. Digitalrechenanlage mit einem Prozessor zum Verarbeiten von Digitaldatensignalen, einem Speicher zum Speichern von Makrobefehlen, die vom Prozessor bei der Steuerung der Anlage verwendet werden, einem Mikrobefehlspeicher zum Speichern von Mikrobefehlen, wobei jedem Makrobefehl eine aus mehreren Mikrobefehlen bestehende Mikrobefehlsequenz zugeordnet ist, mit einer Mikrobefehllogik zum Steuern des Prozessors, und mit einer Einrichtung zum Speichern des aus dem Mikrobefehlspeicher jeweils ausgelesenen Mikrobefehls und zum Liefern von dem Mikrobefehl entsprechenden Steuersignalen, wobei jeder Mikrobefehl in mehrere Abschnitte unterteilt ist,
dadurch gekennzeichnet,
daß der Mikrobefehlspeicher (160, 204 bis 214) eine Mehrzahl von getrennt auswählbaren Speicherstellen aufweist, deren jede einen Abschnitt eines Mikrobefehls speichert,
daß eine auf jeden Makrobefehl ansprechende Auswahleinrichtung zum aufeinanderfolgenden Auswählen der Abschnitte eines Mikrobefehls vorgesehen ist, und
daß eine Einrichtung zum aufeinanderfolgenden Empfangen und zum Speichern der Abschnitte des Mikrobefehls in der Einrichtung zum Speichern des Mikrobefehls vorgesehen ist, derart, daß nach dem Auslesen der Abschnitte des Mikrobefehls der vollständige Mikrobefehl in der Einrichtung zum Speichern steht.
2. Digitalrechenanlage nach Anspruch 1, dadurch gekennzeichnet, daß jeder Mikrobefehl N Abschnitte aufweist, und daß jeder Abschnitt N Binärbits einer Information enthält.
3. Digitalrechenanlage nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Auswahleinrichtung einen Startadressengenerator (SAGE 142) aufweist, um besondere Makrobefehle zu empfangen und um in Abhängigkeit davon jeden ersten Mikrobefehl innerhalb einer Sequenz auszuwählen.
4. Digitalrechenanlage nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet,
daß ein bestimmter Abschnitt jedes Mikrobefehls eine Information zur Auswahl des jeweils folgenden Mikrobefehls der Sequenz repräsentiert, und
daß die Auswahleinrichtung eine Einrichtung einschließt, die in Abhängigkeit von dem bestimmten Abschnitt den jeweils nachfolgenden Mikrobefehl auswählt.
5. Digitalrechenanlage nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Einrichtung zum aufeinanderfolgenden Empfangen und Speichern der Abschnitte des Mikrobefehls mit dem Mikrobefehlspeicher verbunden ist und auf die Tätigkeit der Auswahleinrichtung anspricht.
DE2948442A 1978-12-06 1979-12-01 Digitalrechenanlage Expired DE2948442C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/967,041 US4330823A (en) 1978-12-06 1978-12-06 High speed compact digital computer system with segmentally stored microinstructions

Publications (2)

Publication Number Publication Date
DE2948442A1 DE2948442A1 (de) 1980-06-26
DE2948442C2 true DE2948442C2 (de) 1987-01-15

Family

ID=25512228

Family Applications (3)

Application Number Title Priority Date Filing Date
DE19792954438 Pending DE2954438A1 (de) 1978-12-06 1979-12-01
DE19792954439 Pending DE2954439A1 (de) 1978-12-06 1979-12-01
DE2948442A Expired DE2948442C2 (de) 1978-12-06 1979-12-01 Digitalrechenanlage

Family Applications Before (2)

Application Number Title Priority Date Filing Date
DE19792954438 Pending DE2954438A1 (de) 1978-12-06 1979-12-01
DE19792954439 Pending DE2954439A1 (de) 1978-12-06 1979-12-01

Country Status (8)

Country Link
US (1) US4330823A (de)
JP (2) JPS5582355A (de)
AU (1) AU538812B2 (de)
CA (1) CA1140678A (de)
DE (3) DE2954438A1 (de)
FR (1) FR2443721B1 (de)
GB (1) GB2037035B (de)
NL (1) NL7908666A (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4493020A (en) * 1980-05-06 1985-01-08 Burroughs Corporation Microprogrammed digital data processor employing microinstruction tasking and dynamic register allocation
AU3359584A (en) * 1983-09-29 1985-04-04 Tandem Computers Inc. Multi level pipeline control store for cpu microsequencing
US4766533A (en) * 1984-03-09 1988-08-23 The United States Of America As Represented By The United States National Aeronautics And Space Administration Nanosequencer digital logic controller
US4754393A (en) * 1984-12-21 1988-06-28 Advanced Micro Devices, Inc. Single-chip programmable controller
US5062036A (en) * 1985-06-10 1991-10-29 Wang Laboratories, Inc. Instruction prefetcher
US5179716A (en) * 1986-07-02 1993-01-12 Advanced Micro Devices, Inc. Programmable expandable controller with flexible I/O
US4972317A (en) * 1986-10-06 1990-11-20 International Business Machines Corp. Microprocessor implemented data processing system capable of emulating execution of special instructions not within the established microprocessor instruction set by switching access from a main store portion of a memory
DE68927783T2 (de) * 1988-05-03 1997-09-25 Wang Laboratories Mikroprozessor mit äusserem steuerungsspeicher
JP3063006B2 (ja) * 1989-02-08 2000-07-12 インテル・コーポレーション マイクロプログラムされるコンピュータ装置及びマイクロコードシーケンスメモリをアドレツシングする方法
US6327640B1 (en) * 1997-03-07 2001-12-04 Advanced Micro Devices, Inc. Overlapping peripheral chip select space with DRAM on a microcontroller with an integrated DRAM controller
GB2345989A (en) * 1999-01-23 2000-07-26 Ibm Executing defined sequences of prolog instructions.

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR1308583A (fr) * 1960-06-30 1962-11-09 Ibm Montage permettant le fonctionnement de plusieurs calculateurs en multiplex
DE1167569B (de) * 1960-12-28 1964-04-09 Zuse K G Programmgesteuerte digitale Rechenmaschine
GB1246130A (en) * 1967-12-14 1971-09-15 Olivetti & Co Spa Stored programme electronic computer
US3599176A (en) * 1968-01-02 1971-08-10 Ibm Microprogrammed data processing system utilizing improved storage addressing means
CH485277A (de) * 1968-01-25 1970-01-31 Siemens Ag Programmablaufsteuerwerk für eine Datenverarbeitungsanlage
US3634883A (en) * 1969-11-12 1972-01-11 Honeywell Inc Microinstruction address modification and branch system
US3778775A (en) * 1971-05-10 1973-12-11 Computek Inc Microprogrammed terminal
US3753236A (en) * 1972-03-31 1973-08-14 Honeywell Inf Systems Microprogrammable peripheral controller
US3760369A (en) * 1972-06-02 1973-09-18 Ibm Distributed microprogram control in an information handling system
JPS5325226B2 (de) * 1972-07-20 1978-07-25
US3868649A (en) * 1972-06-28 1975-02-25 Fujitsu Ltd Microprogram control system
JPS549639B2 (de) * 1973-04-12 1979-04-26
JPS5013460U (de) * 1973-05-29 1975-02-12
GB1426748A (en) * 1973-06-05 1976-03-03 Burroughs Corp Small micro-programme data processing system employing multi- syllable micro instructions
US3958221A (en) * 1973-06-07 1976-05-18 Bunker Ramo Corporation Method and apparatus for locating effective operand of an instruction
IT995721B (it) * 1973-10-10 1975-11-20 Honeywell Inf Systems Italia Apparato per l interpretazione di codici di funzione in calcolatori microprogrammati e per l indirizza mento indipendente di fasi inter pretative ed esecutive di micro programma
DE2364254B2 (de) 1973-12-22 1976-03-18 Schaltungsanordnung fuer datenverarbeitende geraete
US4050058A (en) * 1973-12-26 1977-09-20 Xerox Corporation Microprocessor with parallel operation
US3990054A (en) * 1974-11-05 1976-11-02 Honeywell Inc. Microprogram organization techniques
US4037202A (en) * 1975-04-21 1977-07-19 Raytheon Company Microprogram controlled digital processor having addressable flip/flop section
US4005395A (en) * 1975-05-08 1977-01-25 Sperry Rand Corporation Compatible standby power driver for a dynamic semiconductor
JPS5230352A (en) * 1975-09-04 1977-03-08 Nippon Telegr & Teleph Corp <Ntt> Micro program control method
US4075687A (en) * 1976-03-01 1978-02-21 Raytheon Company Microprogram controlled digital computer
JPS538034A (en) * 1976-06-30 1978-01-25 Toshiba Corp Electronic computer
US4118773A (en) * 1977-04-01 1978-10-03 Honeywell Information Systems Inc. Microprogram memory bank addressing system

Also Published As

Publication number Publication date
AU538812B2 (en) 1984-08-30
JPS6373333A (ja) 1988-04-02
FR2443721B1 (fr) 1985-06-21
GB2037035B (en) 1983-06-15
FR2443721A1 (fr) 1980-07-04
NL7908666A (nl) 1980-06-10
JPS5582355A (en) 1980-06-21
US4330823A (en) 1982-05-18
CA1140678A (en) 1983-02-01
DE2954438A1 (de) 1985-03-21
JPH0115896B2 (de) 1989-03-22
DE2948442A1 (de) 1980-06-26
AU5227379A (en) 1980-06-12
DE2954439A1 (de) 1985-05-15
GB2037035A (en) 1980-07-02

Similar Documents

Publication Publication Date Title
DE69729974T2 (de) Datenverarbeitungsschaltung, Mikrocomputer und elektronische Einrichtung
DE3750935T2 (de) Verfahren und System zum Erleichtern der Befehlsausführung in einem digitalen Rechner.
DE3486399T2 (de) Zentrale Verarbeitungseinheit mit der Fähigkeit, Befehle mit variablen Längen zu unterstützen.
DE3688824T2 (de) Datenverarbeitungssystem.
DE1931966C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE2949375C2 (de) Datenbussystem für eine Datenverabeitungsanlage mit einer Gleitkommaeinheit in Pipeline-Struktur
DE2339636C2 (de) Einrichtung zur Adressierung eines schreibbaren Mikroprogrammspeichers
DE2714805A1 (de) Datenverarbeitungssystem
DE2719635A1 (de) Anordnung fuer eine erweiterung einer mikroprogrammsteuerung einer datenverarbeitungsanlage
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE1774296B2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE69027932T2 (de) Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen
DE2813128A1 (de) Mikroprogrammspeicher
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE2302074A1 (de) Speicherschutzanordnung in einem multiprozessorsystem
DE2540975A1 (de) Multi-mikro-prozessor-einheit
DE68924719T2 (de) Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung.
DE2948442C2 (de) Digitalrechenanlage
DE2524046A1 (de) Elektronische datenverarbeitungsanlage
DE3121742C2 (de) Mikroprogramm-Steuereinrichtung
DE2421130C2 (de)
DE3856139T2 (de) Mikroprozessor
DE2164793A1 (de) Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/ Ausgabe-Einheiten mittels eine Zentraleinheit
DE2746505A1 (de) Dv-system mit einer einrichtung zum adressieren in einem festwertspeicher abgelegter mikroprogramme
DE2440628A1 (de) Datenverarbeitungsanlage mit mikroprogrammierung

Legal Events

Date Code Title Description
OD Request for examination
8172 Supplementary division/partition in:

Ref country code: DE

Ref document number: 2954438

Format of ref document f/p: P

Q171 Divided out to:

Ref country code: DE

Ref document number: 2954438

8172 Supplementary division/partition in:

Ref country code: DE

Ref document number: 2954439

Format of ref document f/p: P

Q171 Divided out to:

Ref country code: DE

Ref document number: 2954439

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