DE2948442A1 - Digitalrechnersystem - Google Patents

Digitalrechnersystem

Info

Publication number
DE2948442A1
DE2948442A1 DE19792948442 DE2948442A DE2948442A1 DE 2948442 A1 DE2948442 A1 DE 2948442A1 DE 19792948442 DE19792948442 DE 19792948442 DE 2948442 A DE2948442 A DE 2948442A DE 2948442 A1 DE2948442 A1 DE 2948442A1
Authority
DE
Germany
Prior art keywords
memory
microinstruction
command
register
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19792948442
Other languages
English (en)
Other versions
DE2948442C2 (de
Inventor
Spaeter Genannt Werden Wird
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
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • 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/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • 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)
  • Memory System (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Description

2948U2
Anmelderin; Stuttgart, den 2.7. Nov. 1979
Data General Corporation P 3783 R/Bn
Westboro, Massachusetts
V.St.A.
Vertreter:
Kohler-Schwindling-Späth
Patentanwälte
Hohentwielstr. 41
7000 Stuttgart - 1
Digitalre chnersystem
Die Erfindung befaßt sich mit der Architektur für ein schnelles kompaktes Digitalrechnersystem und mehr im einzelnen mit den bei diesem verwendeten Schaltungen zur Steigerung der Arbeitsgeschwindigkeit und der
Leistungsfähigkeit eines solchen Systems.
Die Erfindung ist teilweise verwandt mit der älteren Patentanmeldung P 29 kk 419·7 und der entsprechenden US-Patentanmeldung 958 Ο38 vom 8. November 1978; der gesamte Inhalt dieser älteren Anmeldungen wird durch diese Bezugnahme zum Inhalt der vorliegenden Anmeldung gemacht«
G30026/0644
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· Ein Rechner 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 Tauglichkeit eines solchen Digitalrechners wird durch seine Geschwindigkeit und sein Leistungsvermögen bei der Verarbeitung von Daten und bei der Ausführung von Befehlen bestimmt und begrenzt« Im allgemeinen ist eine wirksame Ausnutzung des von der Rechenmaschine körperlich eingenommenen Raums erforderlich, um die maximale Leistungsfähigkeit des Rechners zu erzielen· Die Fähigkeiten des Rechnersystems und die Leistungsfähigkeit der Maschinenausrüstung oder Hardware sind in verschiedenen Gebieten besonders wichtig· Zu diesen Gebieten gehören der Mikrobefehlspeicher, die Schaltung zum Auswählen von aufeinanderfolgenden Mikrobefehlen der Mikrobefehlfolgen, die
030026/0644
Schaltung zum periodischen Auffrischen des Rechnerspeichers, und eine Befehls-Bereitstellschaltung zum Abrufen des nächsten auszuführenden Befehls aus dem Rechnerspeicher, während ein laufender Befehl sich gerade in der Ausführung befindet.
Der von dem Mikrobefehlspeicher 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.Zt, verfügbaren Bauelemente bestimmt ist. Z.B. mag ein Mikrobefehlssatz zwei oder mehr getrennte Seiten von Mikrobefehlen aufweisen, wobei jede Seite 256 Mikrobefehle mit 48 Bit enthält. Z.Zt. 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 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 eines Rechners 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 grofte Geschwindigkeit für die Auswahl zu erzielen.
030026/0644
/ 2948U2
ΛΟ
Eine weitere Begrenzung der Leistungsfähigkeit eines Rechners liegt in der Schaltung, die benötigt wird, um den Rechnerspeicher während der Arbeit im Batteriehilfsbetrieb aufzufrischen· Obwohl dies eine entscheidende Funktion ist, trägt diese Schaltung nicht unmittelbar zur Leistungsfähigkeit des Rechners bei und sollte daher mit dem kleinstmöglichen Aufwand an Maschinentechnik verwirklicht werden.
Die Arbeitsgeschwindigkeit des Rechners kann durch die Verwendung einer Bereitstellschaltung vergrößert werden, die einen nächsten auszuführenden Befehl aus dem Speicher abruft, während ein laufender Befehl sich noch in der Ausführung befindet· Auch diese Schaltung sollte wieder mit möglichst geringem Aufwand an MaschinenausrUstung verwirklicht werden, jedoch die gewünschte Funktion erfüllen·
Die vorliegende Erfindung schafft bei einem Rechnersystem Verbesserungen, die sich auf die oben genannten Faktoren von Brauchbarkeit /Maschinenausrüstungsleistungsvermögen beziehen, und sie verbessert somit die Geschwindigkeit und die Leistungsfähigkeit der Arbeit des Systems und schafft auch eine Lösung für die oben erwähnten Probleme und Beschränkungen beim Stand der Technik, wie unten im einzelnen diskutiert wird·
Die vorliegende Erfindung befaßt sich mit der Architektur eines Rechnersysteme und schafft ein erhöhtes Leistungsvermögen des Rechners und eine erhöhte Wirksamkeit der MaschinenausrUstung· Die Architektur weist einen Prozessor zum Verarbeiten von Daten in Maschinensprache auf, einen Speicher zum Speichern mindestens von Maschinensprachebefehlen
030026/0644
2948U2
zur Benutzung durch den Prozessor, eine Mikrobefehllogik zum Speichern und Liefern von Sequenzen von häufig benötigten Befehlen, und Busse zum übertragen mindestens der Befehle zwischen dem Prozessor und dem Speicher, Die Architektur weist Schaltungen zur Erhöhung der Leistungsfähigkeit und des Wirkungsgrads des Rechnersystems auf. Zu diesen gehören ein Mikrobefehlspeicher, der eine wirkungsvolle Ausnützung des verfügbaren Mikrobefehlspeicherraums ermöglicht. Ein weiteres Merkmal ist eine Schaltung zur Auswahl von Mikrobefehlen, um aufeinanderfolgende Mikrobefehle einer Sequenz schnell auszuwählen. Wieder ein anderes Merkmal ist eine Speichersteuerschaltung, die während des Batteriehilfsbetriebs für ein Auffrischen des Speichers sorgt. Ein weiteres Merkmal ist eine Schaltung zum Bereitstellen von Befehlen, die es gestattet, daß ein nächster auezuführender Befehl vom Speicher abgerufen wird, während ein laufender Befehl sich in der Ausführung befindet.
Es ist daher vorteilhaft, die vorliegende Erfindung in einem Rechnersystem zu verwirklichen, weil das Arbeitsvermögen und die Wirksamkeit des Systems vergrößert wird. Die vorliegende Erfindung ist weiterhin vorteilhaft, weil Mikrobefehle mit größerem Wirkungsgrad im Mikrobefehlspeicher gespeichert werden. Zusätzlich steigert die vorliegende Erfindung die Geschwindigkeit, mit der aufeinanderfolgende Mikrobefehle ausgewählt und ausgeführt werden können. Weiterhin erlaubt die vorliegende Erfindung eine wirkungsvolle Ausnutzung des verfügbaren Raums der Maschinenausrüstung bei der Schaffung einer Auffrischung dee Sechnerspeichers. Die vorliegende Erfindung ist weiterhin vorteilhaft, weil eine
030026/0644
-/- 2948U2 12*
Bereitstellung von Befehlen mit einem minimalen Aufwand an Maschinentechnik ausgeführt werden kann·
Es ist somit ein Vorteil der vorliegenden Erfindung, daß sie ein verbessertes Rechnersystem liefert·
Ein weiterer Vorteil der vorliegenden Erfindung liegt darin, daß sie einen verbesserten Mikrobefehlspeicher eines Rechners liefert, der in der Lage ist, Mikrobefehle wirkungsvoll zu speichern·
Ein weiterer Vorteil der vorliegenden Erfindung liegt darin, daß sie eine Mikrobefehlauswahlschaltung schafft, die die Geschwindigkeit erhöht, mit der aufeinanderfolgende Mikrobefehle ausgewählt und ausgeführt werden·
Ein weiterer Vorteil der Erfindung liegt darin, daß eine verbesserte Speichersteuerschaltung geschaffen wird.
Wieder ein anderer Vorteil der Erfindung liegt darin, daß eine verbesserte Bereitstellschaltung geschaffen wird, um einen nächsten Befehl vom Speicher abzurufen, während ein laufender Befehl noch ausgeführt wird«
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;
030026/0644
-/- 29Α8ΑΛ2 /3
Fig» 2 A ist eine schematische Darstellung einer Mikrobefehllogik des Rechners, die eine Sequenzsteuerschaltung enthält;
Fig. 2 B ist eine schematische Darstellung einer Schaltung zur Erzeugung von Taktsignalen zur Benutzung durch den Mikrobefehlspeicher und die Logikschaltung gemäß den Fig. 2 und 2 A;
Fig. 3 ist eine schematische Darstellung einer Speicheradressierschaltung des Rechners;
Fig. 3 A ist eine schematische Darstellung des Rechnerspeichers ;
Fig. 3 B ist eine schematische Darstellung einer Speichersteuerschaltung des Rechners;
Fig. k ist ein teilweises Blockschaltbild eines Teils des Prozessors des Rechners; und
Fig. k A ist eine schematische Darstellung einer Befehlsbereit stellungs-Adressierschaltung.
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 Mikrobefehlspeichor, für die Speicherauffrischung und für das Bereitstellen von Befehlen im einzelnen in dieser Reihenfolge beschrieben werden. Schließlich werden bestimmte
030026/0644
2948U2
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, oder JfOO-if99 in Fig. 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 Arbeltsweise 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
030026/G644
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« Rechner&xc.hit§kt\Ly Ufld. 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) 111+, die eine Mikrobefehllogik 1Mt, einen Speicher 121+, und eine Eingabe/Ausgabe (E/A)-Schnittstellenschaltung 130 einschließt.
Der Ausgang einer arithmetischen und logischen Einheit (ALU) 112 in der Zetraleinheit 11 If ist mit einem Ausgabebus (ALUOUT) 116 der ALU verbunden· Der ALUOUT-Bus 116 ist mit dem Dateneingang eines Zwischenregisters (SPMEM) 118 in der Zentraleinheit 111+ verbunden, und mit Eingängen eines Datenregisters (DREG) 120 und eines Adressregisters (AREG) 122 des Speichers 121t. Der ALUOUT-Bus 116 ist mit Eingängen eines Universellen-asynchronen-Empfängers/Sendera (UART) 126 und mit einem Dateneingabe/Ausgabe-(DI/O)-Puffer 128 A in der E/A-Schnittstellenschaltung 130 ver· bundeη»
Der Ausgang des Adressregisters 122 ist mit Adresseneingängen des Zwischenregisters 118 und eines Konsolenlesespeichers (ROM) 132 in der Zentraleinheit 111+ verbunden und mit einem Eingang eines Speichermultiplexers
030026/0644
- 2948U2 1b
(MEMMUX) 13/f· Ausgänge des Datenregisters 120 und des Speichermultiplexers 13if sind mit Daten- bzw· Adresseingängen des Speichers 12if verbunden· Der Ausgang des Speichers 12if ist mit dem Speicherausgabe-(MEMOUT)-Bus 136 verbunden· Der Ausgang des Konsolen-ROM 132 ist auch mit dem MEMOUT-Bus I36 verbunden· Der MEMOUT-Bus I36 ist mit Eingängen eines MEMOUT-Registers (MEMREG) 138 und eines Befehlsregisters (IR) lifO in der Zentraleinheit 114 verbunden· Der MEMOUT-Bus 136 ist auch mit einer Startadressengeneratorschaltung (SAGE) 1if2 in der Mikrobefehllogik 1 if if der Zentraleinheit 11 if verbunden·
Ein erster Ausgang des Befehlsregisters lifO ist mit dem MEMOUT-Bus 136 und mit einem Adresseneingang eines Decodier-ROM 1 if6 in der Mikrobefehllogik 144 verbunden· Ein zweiter Ausgang des Befehlsregisters lifO 1st mit einem Mikrobefehlspeicherausgabe-(^iMEMOUT)-Bus 1 if8 in der Mikrobefehllogik 1 if if verbunden. Ein dritter Ausgang ist mit einem Eingang eines Befehlsmultiplexers (INSTMUX) 130 in der Zentraleinheit 11 if verbunden· Ausgänge des Befehlsmultiplexers 130, des MEMREG I38 und des Zwischenregisters 118 sind mit einem ALU-Eingabe-(ALUIN)-Bus 132 verbunden« Der ALUIN-Bus 132 wiederum ist mit dem Eingang der ALU 112 verbunden·
In der Mikrobefehllogik lifif sind Ausgänge des SAGE 1if2, des Decodier-ROM 1if6 und eines Mikrobefehl-Sprung-(uINSTJ)-Puffers 154 mit einem Mikrobefehl-Speicher-Eingabe-(uMEMIN)-Bus 136 verbunden* Der μΜΕΜΙΝ-Bus 136 1st mit einem Eingang eines Mikrobefehlszähler-(uPC)-Reglsters 158 verbunden· Der Ausgang des Mikrobefehlszählers I38 ist mit einem Adresseneingang eines Mikrobefehlsspeichers 160
030026/0644
29A8AA2
verbunden, und der Ausgang des Mikrobefehlspeichers ist mit dem μΜΕΜΟϋΤ-Bus 1 if8 verbunden. Der uMEMOUT-Bus ist mit Eingängen eines Mikrobefehlsregisters A (^iIRA) 162, eines Mikrobefehlsregisters B (>iIRB) I6*f und des jiINSTJ-Puffers 15*f verbunden· Der Ausgang des >iIRB T 6^tist mit einem Eingang einer Sequenzsteuerung (SEQCNTL) 166 verbunden· Ausgänge der Sequenzsteuerung 166 sind mit Steuereingängen des SAGE 1^2, mit dem Decodier-ROM Ut6, dem jalNSTJ-Puffer 15Zf 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 I30 ist ein ASCII-E/A-Kanal 168 zwischen ein (aus Gründen der Deutlichkeit der Darstellung nicht dargestelltes) ASCII-Schnittstellen-Gerät und den IART 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 Dl/O-Puffers 128 B ist mit dem ALUIN-Bus 152 verbunden· Wie oben angegeben, ist der Eingang des DI/0-Puffers 128 A mit dem ALUOUT-Bus 116 verbunden; der Ausgang des Dl/O-Puffers 128 A ist mit einem Daten-E/A-Bus 170 verbunden·
Der Rechner 110 weist ferner eine Hauptstromversorgung und eine Hilfsbatteriestromversorgung auf, von denen aus
030026/0644
2948Λ42
Gründen der Deutlichkeit der Darstellung keine gezeigt ist.
B. Arbeitsweise
Es wird wieder auf Fig. 1 Bezug genommen· Ein Benutzer-Programm, ζ·Β· Daten und Mikrobefehle, werden im Speicher 124 gespeichert und auf Anforderung durch die Zentraleinheit 11 if über den MEMOUT-Bus 136 zur Zentraleinheit 114 übertragen· Die übertragung von Daten und Makrobefehlen aus den Speicher 124 heraus und ihr Einschreiben in den Speicher 124 werden über den ALUOUT-Bus 116 vorgenommen. Die Lese- und Schreibadressai des Speichers 124 werden von der ALU 112 über den ALUOUT-Bus 116 geliefert und im Adressregister 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 zua Speicher 124 direkt vom Datenregister 120 geliefert« Lese/Schreibadressen vom Adressregister 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-Hegister 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, z.B. Daten, können dann vom Befehlsregister 140 zur ALU 112 durch den Befehlsmultiple xer 130 und den ALUIN-Bus 152 übertragen werden.
030026/0644
-yS-
2948U2
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 I44 auf. Die Mikrobefehllogik 144 antwortet auf einen solchen im Befehlsregister I40 erscheinenden Makrobefehl durch Lieferung der entsprechenden Sequenz von Mikrobefehlen auf dem^uMEMOUT-Bus I48·
Gewisse Teile der Mikrobefehle können, wie unten diskutiert wird, in das jiIRA 162 und zum ALUIN-Bus 152 über den Befehlsmultiplexer 150 übertragen werden.
Der Rechner 110 weist, wie unten diskutiert wird, 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 Adressregister 122 und dem Speichermultiplexer 134· Wie ebenfalls unten diskutiert wird, weist die Zentraleinheit II4 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 II8 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
030026/0644
2948U2 10
geliefert» Die Lese/Schreib-Adressen des Zwischenregisters 118 werden von der ALU 112 über das Adressregister 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 11 /f oder dem Speicher 12^ wird durch die E/A-Schnittstellenschaltung 130 bewirkt« Durch den Daten-E/A-Bus 170 können parallele digitale Wörter übertragen werden. Die Dl/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 17O übertragen werden· Die übertragung von Daten/Makrobefehlen zwischen dem .Daten-E/A-Bus 170 und dem Speicher 12Jf wird über die ALU 112 vorgenommen·
Serielle alphanumerische Zeichen, zum Beispiel im ASCII-Cod, 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 Mf JfI9*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
030026/0644
- 2948U2 U
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 11 4 über den UART 126 empfangen. Die empfangenen Sequenzen werden dann als Adresseingangssignale zum Konsolen-ROM 132 über den ALUOUT-Bus 116 und das Adressregister geliefert. Entsprechende Makrobefehls-Ausgangssignale des Konsolen-ROM 132 erscheinen dann auf dem MEMOUT-Bus 136 in der gleichen Weise wie vom Speicher 12i| 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 1/fZf. im einzelnen beschrieben.
2. Mikrobefehllogik M^. (Fig. 1, 2, 2 A und 2B)
Wie oben beschrieben wurde, speichert die Mikrobefehllogik 1 i+if 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 I44 antwortet dadurch, daß sie jeden Mikrobefehl der entsprechenden Sequenz aufeinanderfolgend liefert. Die Mikrobefehle erscheinen auf dem uMEMOUT-Bus 148, und zum Teil werden sie in das uIRA 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 II4 und die Mikrobefehllogik ι ZfZ4..
030026/0644
.μ. 2948U2
Die Struktur der Mikrobefehllogik 144 wurden 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 AusfUhrungsbeispiel der Mikrobefehllogik I44 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 II4 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, d.i. das Doppelte der Anzahl von in ihr zu speichernden MikrobefAlen. Jeder Mikrobefehl mag in einen ersten und einen zweiten Abschnitt unterteilt sein; der Abschnitt *eist 24 Bit auf. Der erste und der zweite Abschnitt eines einzelnen Mikrobefehls mögen in aufeinanderfolgenden Wort-Speicherplätzen des Speichers I60 gespeichert sein, z.B. der erste Abschnitt
030026/0644
des Mikrobefehls Zk im Speicherplatz i+8 des Speichers 160, und der zweite Abschnitt im Speicherplatz 49 dee 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 IH (z.B. 0,2 us). Ein einzelner Mikrobefehl kann daher aus dem Speicher 160 innerhalb eines einzigen Zyklus der Zentraleinheit 11^ ausgelesen werden. Der erste Abschnitt eines Mikrobefehls wird in das ^uIRA 162 übertragen und mag für die Zentraleinheit 111+ Befehlsbits und Steuersignale liefern. Der zweite Abschnitt eines Mikrobefehls mag in das uIRB I6if übertragen werden, um Steuersignale für die Auswahl von aufeinanderfolgenden Mikrobefehlen einer Mikrobefehlesequenz zu liefern. Es wird darauf hingewiesen, daß andere Arten der Organisation des Speichers 116, der jiIRA 162 und jiIRB "\6k 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 11^ übertragen» die Zugriffszeit des Speichers 160 würde kleiner sein als ein Viertel der Zyklusdauer der Zentraleinheit 11 Weiterhin müßten einzelne Teile eines Mikrobefehls nicht in aufeinanderfolgenden Speicherplätzen des Speichers 160 gespeichert sein, sondern sie können
030026/0644
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 11+0 übertragen· Im allgemeinen wird ein Makrobefehl im Befehlsregister lifO durch das Decodier-ROM ii+6 decodiert, das eine Adresse des ersten Mikrobefehls der entsprechenden Sequenz für den Speicher 160 liefert· Wie in der Patentanmeldung P 29 Kk if!9.7 beschrieben, mag der SAGE 11+2 bestimmte Makrobefehle direkt decodieren, um direkt die Adresse des ersten Mikrobefehls für den Speicher 160 zu liefern· Der SAQE 1if2 beseitigt dabei die durch das Befehlsregister 1 i+0 und das Decodier-ROM 11+6 bewirkte Zeitverzögerung und verringert die Zelt, die benötigt wird, um die Ausführung von bestimmten Sequenzen zu veranlassen· Das dem Decodier-ROM 1 lf6 zugeführte Ausgangssignal des Befehlsregisters Ii(O wird vom MEMOUT-Bus I36 auch dem Eingang des SAQE 1 if2 zugeführt· Beispielsweise im Fall einer Unterbrechungeoperation kann ein laufender Makrobefehl im Befehleregister 11+0 gespeichert werden· Am Ende der Unterbrechung kann der gespeicherte Makrobefehl vom Befehlsregister 1IfO zum MEMOUT-Bus 136 und zum Eingang dee SAQE 11(2 übertragen werden, um die entsprechende Mikrobefehlsequenz erneut zu beginnen· Dies ermöglicht es, daß eine Mikrobefehlesequenz nach einer Unterbrechung erneut begonnen wird, ohne daß ein neuer Lesezyklue dee Speichers 121+ benötigt wird.
030026/0644
Die erste Mikrobefehladresse für den Mikrobefehlspeicher 160 erscheint auf dem jiMEMIN-Bus 156 und wird in den Mikrobefehlszähler 158 übertrggn. Die erste Adresse wird dann zum Adresseingang des Mikrobefehlspeichers 160 geliefert. Diese Adresse und alle nachfolgenden Adressen wählen zwei Speicherplätze des Mikrobefehlspeichers aus, die den ersten und zweiten Abschnitt des entsprechenden Mikrobefehls enthalten. Ein getrenntes Adresseneingangssignal, das unten beschrieben wird, liefert ein zusätzliches Adress-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 <uMEMOUT-Bus M\8 zum uIRA 162 übertragen. Der zweite Abschnitt wird dann ausgewählt und durch den ^iMEMOUT-Bus 1/+8 zum uIRB übertragen. Im Hinblick auf die Arbeit der Zentraleinheit 11/+. scheint daher der Mikrobefehlspeicher einen Mikrobefehl mit 1+8 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 uIRA 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 jiMEMOUT-Bus 1 ^f8 gelieferte Ausgangssignal des Befehlsregisters 1^0 ermöglicht es, bestimmte Makrobefehls-Bits zum Modifizieren eines ersten (oder zweiten) Abschnitte eines Mikrobefehls zu verwenden. In einem solchen Fall sind bestimmte Mikrobefehls-Bits "Leerstellen" (z.B.
030026/06A4
eine fehlende logische 1) und diese Bits (z.B. logische Nullen) werden vom Befehlsregister I40 geliefert· Der zweite Mikrobefehlabschnitt im uIRB I6if kann im allgemeinen verwendet werden, um die Auswahl von nachfolgenden Mikrobefehlen der Sequenz zu steuern· Im Hinblick hierauf können bestimmte Bits des zweiten Mikrobefehl abschnitts 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 MaBnahmen angeben. Man mag vier derartige möglicherweise vorzunehmende Maßnahmen vorsehen· Die erste ist, zu einem durch eine vom SAOE 1/f2 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 jiINSTJ-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 Mikrobefehle bezeichnet werden, die über den jiINSTJ-Puffer 154 auf den jiMEMIN-Bus 156 übertragen werden· Es werden daher zur Ausführung
030026/0644
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 Mikrobefehlsspeicher 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 uIRB 16^ decodiert. Die Sequenzsteuerung 166 liefert Aktivierungsausgangssignale an den SAGE 1/+2, das Decodier-ROM 1 if6, den pINSTJ-Puffer \3k und das Mikrobefehlszählerregister 158.
Nach der Beschreibung der Arbeitsweise der Mikrobefehllogik 1i+/f auf der Ebene eines Blockdiagramms wird die beim augenblicklich bevorzugten Ausführungsbeispiel der Mikrobefehllogik 1/+/f verwendete Schaltung als nächstes beschrieben.
030026/0644
B. Mikrobefehllogik \kk. Schaltung (Fig. 2, 2A. 2B)
Eine schematische Darstellung der bei einer bevoiaigten AusfUhrungsform der Mikrobefehllogik 1if^ verwendeten Schaltung ist in den Fign· 2 bis 2 B dargestellt und mit der Blockdarstellung der Fig. 1 in Beziehung gesetzt«
In Fig· 2 sind der Mirobefehlszähler 158 und der Mikrobefehlspeicher 163 gezeigt. Der Mikrobefehlszähler weist if-Bit-Zähler 200 und 202 auf, und der Mikrobefehlspeicher 160 weist Lesepeicher (ROM) 20*f bis 21 If auf.
Die Dateneingänge der Zähler 200 und 202 sind mit dem uMEMIN-Bus 256 verbunden, und die Datenausgänge der Zähler 200 und 202 sind mit Adresseneingängen der ROMs 20if und 21 if verbunden. Den Parallelzählaktiviereingängen der Zähler 200 und 202 wird ein Aktiviersignal CONTINUE von der Sequenzsteuerung 166 zugeführt, das unten beschrieben wird.
Eine auf dem /iMEMIN-Bus 156 erscheinende Adresse wird in die Zähler 200 und 202 durch ein Taktsignal BCLK geladen, wenn CONTINUE logisch 0 ist. Wenn 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 11 if erscheint (z.B. 5 MHz)· Den Rücksetzeingängen der Zähler 200 und 202 wird ein Rücksetzsignal RYSNC zugeführt, das es gestattet, den
030026/0644
Inhalt der Zähler 200 und 202 auf 0 zurückzusetzen.
Beim Mikrobefehlspeicher 160 bilden die ROMs 20/+, und 212 die Seite 1 des Speichers 160, während die ROMs 206, 210 und 2Ii+ die Seite 2 bilden. Die ROMs 2Oi+ und 206 enthalten die Bits O bis 7 und die Bits 2/+ 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 21/+ die Bits 16 bis 23 und /+O bis /+7 enthalten. Die Datenausgänge der ROMs 20/+ und 206 (uMEMOUT 0/2/+ bis 7/31) sind durch eine verdrahtete ODER-Schaltung verknüpft und mit dem uMEMOUT-Bus 1/+8 verbunden. In ähnlicher Weise sind die Datenausgänge der ROMs 208 und 210 (uMEMOUT 8/32 bis 15/39) und die ROMs 212 und 21/+ (uMEMOUT 16//+O bis 23//+7) durch eine verdrahtete ODER-Schaltung verbunden und mit dem jiMEMOUT-Bus 1/+8 verbunden. Die Auswahl zwischen den Seiten 1 und 2 des Mikrobefehlspeichers 160 wird durch ein Signal PAGE SELECT vom JiIRB 16/+ erzielt, das weiter unten beschrieben wird. PAGE SELECT wird direkt den Aktiviereingängen der ROMs 206, 210 und 21/+ zugeführt. PAGE SELECT wird durch ein Verknüpfungsglied 216 invertiert, und das Signal PAGk SELECT wird den Aktiviereingängen der ROMs 20/+, 208 und 212 zugeführt.
Bei der Seile 1 (ROMs 2Oi+, 208 und 212) des Mikrobefehlspeichers 160 bildet jeder ROM einen Speicher mit 512 Wörtern und einer Breite von 8 Bit. Die ROMs 20/+, 208 und 212 bilden daher einen Speicher mit einer Breite von 2/+ Bit und einer Länge von 512 Wörtern. Die Seil, e ?. 1st ähnlich der Seite 1. Jeder
030026/0644
Mikrobefehl ist in zwei Abschnitte mit Zk 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 2/f in der Speicherstelle Zl\ gespeichert und der zweite Abschnitt in der Speicherstelle 25· Die Auswahl einer einzelnen Adresse der Seite 1 erfordert neun Adressbits (2^=512)· Die Adressausgä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 Adressstellen auszuwählen, das heißt, ein Paar von Speicherstellen des Mikrobefehlspeichers 160, das einen einzelnen Mikrobefehl enthält« Das niedrigstwertige Adressbit 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 - 2J>) des Mikrobefehls enthält« Anschließend wählt ACLK die Speicherstelle mit der ungeraden Adresse des Mikrobefehlspeichers
030026/0644
aus, 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 16O zum )iMEMOUT-Bus I48 während eines einzelnen BCLK-Zyklus übertragen.
In Fig. 2A ist uIRA 162, uIRB 164, die Sequenzsteuerung 166, der jiINSTJ-Puffer 154, der Decodier-ROM 146 und der SAGE 142 gezeigt. Der ^uIRA 162 weist 6-Bit-Register 218 bis 224 auf, deren Dateneingäng mit dem fiMEMOUT-Bus 148 (uMEMOUT 0/24 - 23/47) verbunden sind. Den Takteingängen der Register 218 bis 224 wird das Signal ACLK zugeführt. Das /iIRB 164 weist 6-Bit-Register 226 bis 230 auf, deren Dateneingänge ebenfalls mit dem )iMEMOUT-Bus I48 (μΜΕΜΟϋΤ 0/24 - 13/371 22/46, 23/47) verbunden sind. Den Takteingängen der Register 226 bis 230 wird das Signal BCLK zugeführt. Ein erster auf dem ^iMEMOUT-Bus I48 erscheinender Abschnitt (/1MEMOUT 0 - 23) eines Mikrobefehls wird daher durch ACLK in das jiIRA 162 geladen. Die Bits 1 - 8 des ersten Abschnitts QiIRA 1-8) des Mikrobefehls werden von den Registern 222 und 224 zum Befehlsmultiplexer 150 und zur ALU 112 als Befehlsbits geliefert. Das Bit 0 (uIRA 0) vom Register 224 wird zum Befehlsmultiplexer I50 als Aktivierungssignal geliefert, das anzeigt, daß μΠ?Α 1 - 8 durch den Befehlsmultiplexer 150 zum ALUIN-Bus 152 übertragen werden müssen. Die Bits 9-23 des ersten Abschnitts (;iIRA 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 R" zugeführt, das es ermöglicht,
030026/0644
2948U2
den Inhalt des uIRA 162 auf O zurückzusetzen.
Der zweite Abschnitt (jiMEMOUT 24 - 47) des Mikrobefehls erscheint auf dem uMEMOUT-Bus I48 nach dem ersten Abschnitt des Mikrobefehls und wird durch BCLK in das JiIRB I64 übertragen· Den Rücksetzeingängen der Register 226 - 230 wird ein Signal RYSCN zugeführt, das es gestattet, daß der Inhalt des JiIRB 164 auf 0 zurückgesetzt wird.
Die Bits jiIRB 24 - 28 und 33 - 2? 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 jiIRB 29 - 32 werden Verknüpfungsgliedern 232 und 234 der Sequenzsteuerung 166 zugeführt. Diese Bits wählen in Abhang j&eit von Prüfergebnissen aus, welche Maßnahme von den oben beschriebenen vier möglichen Maßnahmen zu treffen ist. Eingangssignale TEST und 1HEST 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 23k und liefert vier Aktivierungssignale als Ausgangssignale. Wie oben beschrieben, wird CONTINUE an die Zähler 200 und 202 des Mikrobefehlszählers I58 geliefert. CONTINUE bestimmt, ob die Zähler 200 und 202 parallel mit einer Adresse vom jiMEMIN-Bus I56 geladen werden, oder ob eine in ihnen gespeicherte Adresse inkrementiert werden muß. Ein Signal BNBdMP wird dem jiINSTJ-Puffer 154 zugeführt.
030026/0644
ENBJMP aktiviert die Puffer 238 und Ζψ zur Übertragung der Bits iiMEMOUT 38 - Wb des zweiten Segments des nächsten Mikrobefehls zum jiMEMIN-Bus 156.
Die Bits 38 - Wb des zweiten Segments des nächsten Mikrobefehls stellen eine Adresse des Mikrobefehlspeichers 160 dar, die einen Mikrobefehl enthält, auf den gesprungen werden soll. ENBSAGS und ? aktivieren den SAGE 1*f2 bzw. den Decodier-
Wie oben festgestellt wurde, wird das Bit jiIRB Wo 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. 2 B Ä die Schaltung zum Erzeugen der Signale ACLK und BCLK gezeigt. Flipflops 2.1g. bis 2i+6 bilden einen durch acht teilenden Zähler, der durch /fOCLK, ein Taktsignal mit /fOMHz getaktet wird. Die Ausgangssignale der Ausgänge Q und φ des Flipflops ZWo werden durch Verknüpfungsglieder ZL\S 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 (5MHz). 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 ZWZ - 2^6 zugeführte Signal F (Preset) gestattet es, daß die anfängliche Startbedingung der Flipflops ZWZ - ZWo gesetzt wird.
030026/0644
Nach der Beschreibung der Struktur und Arbeitweise der Mikrobefehllogik 144 wird als nächstes die Schaltung zum Auffrischen des Speichers 124 beschrieben.
3. Speicher 124, Auffrischschaltung (Flg. 1.3. 3A und 5B) A. Speicher 124, Arbeitsweise (Fig. 1)
Die Arbeitsweise des Speichers 124 wird zunächst auf der Ebene eines Blockschaltbilds beschrieben. Anschließend wird die Arbeitsweise des Speichers 124 unter Zuhilfenahme von schematischen Darstellungen beschrieben, die ein augenblicklich bevorzugtes Ausführungsbeispiel des Speichers 124, des Adressregisters (AREG) 122, des Speichermultiplexers 134 und der Steuerschaltung für den Speicher der Zentraleinheit 114zeigen.
In Fig. 1 mag der Speicher 124 einen Speicher mit 32 K Wörtern (K = 1024) mal 16 Bit bilden. Der Speicher 124 mag intern in zwei Seiten organisiert sein, wobei jede Seite 128 Zeilen von Wörtern mal 128 Spalten von Wörtern enthält. Eine Lese-, Schreib- oder Auffrischzyklusperiode des Speichers 124 mag 4OO ns betragen. Es wird vorausgesetzt, daß andere Architekturen, Parameter und Perioden des Speichers 124 verwendet werden können. Beispielsweise kann der Speicher 124 eine Breite von 24 oder 32 Bit haben oder eine abweichende interne Organisation (256 Spalten mal 128 Zeilen). In ähnlicher Weise mag das Adressformat des Speichers 124 von dem hier gezeigten abweichen.
Wie früher beschrieben, liefert die ALU während der normalen Tätigkeit Auffrischadressen an den Speicher 124.
030026/0644
Jeder Auffrischzyklus frischt eine ganze Zeile beider Seiten des Speichers 124 auf. Die Auffrischadresse kann in einem Register der ALU 112 gespeichert sein, und sie wird in vorbestimmten Auffrischintervallen (z.B. 12,8 μβ) inkrementiert und zum Speicher 124 geliefert. Bei einem Ausfall der Hauptstromversorgung des Rechners 110 liefert die Batteriehilfsstromversorgung Strom zum Speicher 124 und zur Steuerschaltung des Speichers der Zentraleinheit 11 if, die unten beschrieben wird. Die Batteriehilfsstromversorgung verhindert dadurch den Verlust des Benutzerprogramms und der im Speicher 124 gespeicherten Daten. Beim Auftreten eines Ausfalls der Hauptstromversorgung wird die Auffrischadresse vom Register der ALU 112 zum Adressregister 122 übertragen und dort gespeichert. Die Steuerschaltung des Speichers der Zentraleinheit 114 steuert weiterhin das Auffrischen des Speichers 124. Die Auffrischadresse im Adressregister wird bei jedem Auffrischintervall lnkrementiart und zum Speicher 124 geliefert, um aufeinanderfolgende Zeilen des Speichers 124 aufzufrischen.
B. Speicher 124. Schaltung (Fig.3. 5A und 3B)
Schematische Darstellungen der in einer bevorzugten Ausführungsform des Speichers 124, des Adressregisters und des Speichermultiplexers 124 verwendeten Schaltung und eine Speichersteuerschaltung sind in den Figuren 3 A, 3 bzw. 3 B gezeigt und werden in dieser Reihenfolge diskutiert.
In Fig. 3A weist der Speicher 124 zwei ähnliche Bänke 300 und 302 aus dynamischen MOS-RAMs (Speicher mit wahlfreiem Zugriff, Schreib/Lese-Speicher) auf. Jede Bank
3 0026/0644
2948U2
enthält eine Hälfte der Speicherkapazität des Speichers 124. Die Bank 300 weist 16 identische RAMs 301 auf. Jeder RAM 301 enthält ein einzelnes Bit jedes in der Bank 300 gespeicherten Worts und ist intern als ein Feld mit 128 Zeilen mal 128 Spalten organisiert·
.Wie in der Patentanmeldung P 29 44 419·7 beschrieben ist, werden Speicher-Lese- und Schreibzyklen dadurch ausgeführt, daß aufeinanderfolgende Zeilen- und Spaltenadressen an die RAMs der Bank 300 geliefert werden· Bei einem Lesezyklus wird zuerst eine Zeilenadresse mit 7 Bit zu den Adresseingängen (A0-A6) der RAMs 301 der Bank 300 geliefert, begleitet von einem Zeilenadresseinblendsignal (RAS). Es wird dann eine Spaltenadresse mit 7 Bit zu den Adresseingängen der RAMs 301 der Bank 300 geliefert, begleitet von einem Spaltenadresseinblendsignal (CAS), 16 Informationsbits, die das adressierte Wort darstellen, erscheinen dann auf den Ausgängen(dO0 - DOI5) der RAMs 301 der Bank 300. Das adressierte Wort wird durch einen Puffer 304 hindurch zum MEMOÜT-Bus 136 mittels eines den Puffer 304 aktivierenden Eingangssignals ENBM übertragen. Bei einem Schreibzyklus wird ein in den Speicher 124 einzuschreibendes Wort zu den Daten-Eingängen der RAMs 301 der Bank 3OO von dem Datenregister 120 (DATAIN 0 - DATAIN 15) geliefert. Die Eingangssignale DATAIN 0 - DATAIN 15 werden von einem Schreibaktivier signal (W) an die Schreibaktiviereingänge der RAMs 301 der Bank 3OO begleitet.
Lese- und Schreibzyklen der Bank 302 werden in der gleichen Weise wie bei der Bank 300 ausgeführt. Die
030026/0644
2948U2
Auswahl zwischen den Bänken 300 und 302 wird durch Lieferung von RAS entweder zur Bank 3OO oder Bank 302 erreicht. RAS wird mit einem Bit der Speicheradresse des Speichers 12/+ vom Adressregister 122 selektiv durchgeschaltet. Die Bänke 3OO und 302 empfangen daher identische Zeilen- und Spaltenadresseingangssignale und CAS-Eingangesignale. Es wird jedoch nur eine der Bänke 300 und 302 das Eingangssignal RAS empfangen.
Eine Auffrischzyklus ist einem Lesezyklus ähnlich, mit der Ausnahme, daß lediglich die Zeilenadresse und RAS zu den RAMs 3OI der Bank 300 geliefert werden. Das Auffrischen wird daher durch Ausführen einer teilweisen Leseoperation erreicht. Beide Bänke 3OO und 302 empfangen bei der Ausführung eines Auffrischzyklus Eingangssignale RAS, so daß die Zeilen beider Bänke 300 und 302 gleichzeitig aufgefrischt werden. In Fig. 3 sind das Adressregister (AREG) 122 und der Speichermultiplexer 13*f gezeigt. Das Adressregister 122 weist Zähler 306, 308, ein Register 110 und ein Flipflop 312 auf. Die Dateneingänge der Zähler 306 und 3O8, dos Registers 310 und des Flipflops 312 sind mit dem ALUOUT-Bus 116 verbunden. Die Adressbits ALUOUT 9 - ALUOUT 15 vom ALUOUT-Bus II6 bilden Zeilenadressbits. Die Bits ALUOUT 2 - ALUOUT 8 bilden Spaltenadressbits, Das Adressbit ALUOUT 1 ist ein Bankauswahlbit zur Auswahl entweder der Bank 300 oder der Bank 302.
Die Zähler 3O6 und 3O8 enthalten jeweils ein einzelnes Flipflop (A) und eine Gruppe von 3 Flipflops (B, C und D), die als 3-Bit-Zähler angeordnet sind. Das Flipflop A ist mit dem Dateneingang A verbunden, liefert ein
030026/0644
2948U2
Ausgangssginal QI und wird durch ein Takteingangssignal CLKI getaktet. Die Flipflops B, C und D sind mit den Dateneingangen B, C bzw. D verbunden, liefern Ausgangssignale Q2, Q3 bzw. Q4 und werden durch ein Eingangssignal CLK2 getafcet. Die Flipflops A-D des Zählers und die Flipflops B-D des Zählers 308 sind als ein 7-Bit-Zähler geschaltet, der durch ein Signal PFSTART (Stromversorgung Fehler Start) getaktet wird. Diese sieben Flipflops empfangen die Zeilenadressbits ALU0UT9 -15 und liefern Zeilenadressausgangssignale ADR9 - 15· Das Flipflop A des Zählers 308 und das 6-Bit-Register 310 bilden ein 7-Bit-Register zum Empfangen der Spaltenadressbits ALU0UT2 - 8 und zum Liefern der Spaltenadressausgangssignale ADR2 - 8. Das Flipflop 312 empfängt das Adressbit ALUOUTI und liefert Ausgangssignale ADRI und SEHT, um das Signal R"5S" für die Bank 300 oder für die Bank 302 selektiv zu aktivieren. Den Rücksetzeingängen der Zähler 306 und 308 und des Registers 310 werden Rücksetzsignale TESTRESET bzw. R~ zugeführt. Diese Rücksetzeingangssignale erlauben das Rücksetzen der Zeilen- und Spaltenadressbits auf 0.
Beim normalen Betrieb wird eine Lese-, Schreib- oder Auffrischadresse von der ALU 112 in das Adressregister 122 durch ein Ladeaktiviersignal ENBMAD(Aktivieren Speicheradresse) übertragen. Die Zeilenadressbits ADR9 - 15 von den Zählern 306 und 308 werden Eingängen der Zeilenadress- Verknüpfungsglieder 31 /f im Speichermultiplexer 13*f zugeführt. In gleicher Weise werden die Spaltenadressbits ADR2 - 8 den Eingängen von Spaltenadressverknüpfungsgliedern 316 zugeführt. Das Bankauswahlbit ADR1 und ADRI werden den Eingängen von Verknüpfungsgliedern 318 bzw. 320 zugeführt. Ein Zeilenaktiviereingangssignal ROW der Verknüpfungsglieder 31k
030026/0644
2948U2
wird zuerst aktiv, um die Zeilenadressbits ADR9 - 15 durch die Verknüpfungsglieder 31h (R0-R6) und ODER-Glieder 322 (AO-A6) hindurch zu den Adresseingängen der RAMs der Bänke 3OO und 302 zu übertragen· Es tritt dann das Signal RAS bei den Verknüpfungsgliedern 318 und 320 auf. Es empfängt entweder die Bank 3OO oder die Bank 302 das Eingangssignal RAS, wie dies durch die Aktiviereingangssignale ADRI und ADRI der Verknüpfungsglieder 3l8 und 320 bestimmt wird. Nach dem Auftreten von RAS endet ROW, und ein Spaltenaktiviereingangssignal COL des Verkripfungsglieds 316 wird aktiv. Die Spaltenadressbits ADR2 - 8 werden durch die Verknüpfungsglieder 316 (C0-C6) und 322 (A0-A6) hindurch zu den Adresseingängen der RAMs der Bänke 3OO und 302 übertragen · Es tritt dann das Verknüpfungsgliedern 32i* und 326 zugeführte Signal CAS auf, und die Bänke 3OO und 302 empfangen Eingangssignale CAS. Die Verknüpfungsglieder 32*f und 326 liefern getrennte Eingangs signale ÜI5" für die Bank 3OO bzw. 302, um die Belastung dieser Verknüpfungsglieder zu verringern. Nach dem Auftreten von CAS wird COL beendet, und der Zyklus des Speichers 124 1st abgeschlossen. WE wird den Bänken 300 und 302 durch Verknüpfungsglieder 328 und 330 während eines Schreibzyklus in der gleichen Weise wie CAS zugeführt.
Wie oben beschrieben, bildet ein Auffrischzyklus beim normalen Betrieb einen teilweisen Lesezyklus. Die in einem Register der ALU 112 gespeicherte Auffrischadresse wird auf den ALUOUT-Bus 116 übertragen. Die Auffrischadresse enthält jedoch nur 7 Bits der Zeilenadressinformation, nämlich ALU0UT9 - 15. ALUOUT 9-15 werden in die Zähler 3O6 und 308 übertragen, um als ADR9 - 15
030026/0644
2948U2
zu erscheinen· Gleichzeitig empfängt ein Verknüpfungsglied 332 ein Eingangssignal REFRESH und liefert ein Signal ICAS (Blockieren Speicheradresseinblendung)· ICAS blockiert die Verknüpfungsglieder 32-k, 326, 328 und 330, und blockiert dadurch die Lieferung von CAS und WE an die Bänke 300 und 302 des Speichers 124· ICAS wird zu den Setz- und Rücksetzeingängen des Flipflops 312 geliefert und bringt dadurch die Signale ADRl und ADRl auf logisch 1· Das Eingangssignal ROW für die Verknüpfungsglieder 314 überträgt dann die Zeilenadressbits ADR9 - 15 durch die Verknüpfungsglieder 31k (R0-R6) und 322 (A0-A6) hindurch zu den Adresseingängen der Bänke 300 und 302, Das den Verknüpfungsgliedern 318 und 320 zugeführte Eingangssignal RAS liefert dann gemäß der Aktivierung durch AURI und ADRl das Signal ESS" an beide Bänke 3OO und 302, Nach dem Auftreten von RAS wird ROW beendet· Es mag zulässig sein, daß dann COL erscheint, aber, wie soeben beschrieben, blocktet ICAS und die Eingangssignale CIS" der Bänke 300 und 302· Der Auffrischzyklus ist dann vollständig und eine einzelne Zelle der Bänke 300 und 302 ist durch Ausführung eines teilweisen Lesezyklus aufgefrischt worden·
Der Auffrischzyklus des Speichers 12Zf wärend des Batteriehilfsbetriebe ist dem soeben beschriebenen ähnlich, mit der Ausnahme, daß die Auffrischadresse nicht von der ALU 112 geliefert wird· Die Speichersteuerschaltung, die unten beschrieben wird, stellt einen drohenden Ausfall des Stroms von der HauptstromVersorgung des Rechners 110 fest· Die Auffrischadresse wird vom Register der ALU 112 zu den Zählern 306 und 308 durch das Signal ENBMAD übertragen« Das dem Verknüpfungsglied 332 zugeführte Eingangssignal FWROFF
030026/0644
(Strom aus) erzeugt ICAS, um CAS und WE zu blockieren, und um ADRI und ADRI auf logisch 1 zu bringen, dies alles während der Dauer des Ausfalls der Hauptstromversorgung des Rechners 110. Danach liefert die Speichersteuerschaltung das Signal PFSTART an die Zähler 306 und während jedes Auffrischzyklus (d.h. für ifOOns alle 12,8 ys). Bei dieser Betriebsart arbeiten die Zähler 306 und 308 als Zähler und nicht als Register, und die Auffrischadresse wird daher durch PFSTART am Ende jedes Auffrischzyklus inkrementiert. Während des Signals PFSTART werden die Signale ROW und RAS den Bänken 3OO und 302 zugeführt, wie oben beschrieben, dies gilt auch für die Auffrischadressbits ADR9 - 15. CAS und WE werden wiederum blockiert. Dadurch werden aufeinanderfolgende Reihen des Speichers 12^ während PFSTART bei jedem aufeinanderfolgenden Auffrischintervall aufgefrischt.
Das den Verknüpfungsgliedern 316 zugeführte Eingangssignal COL wird vorzugsweise auf logisch 1 gebracht, und das Eingangssignal ROW für die Verknüpfungsglieder 314 auf logisch 0, ausgenommen bei Ausführung eines Auffrischzyklus. Das die Spaltenadressinformation enthaltende Register 310 wird vorzugsweise mit Strom von der Hauptstromversorgung des Rechners 110 versorgt. Somit wird das Register 310 während des Batteriehilfsbetriebs abgeschaltet. Widerstände 33^ liefern dann Spaltenadressbits ADR2 - 7 mit dem Wert logisch 1 an die Verknüpfungsglieder 316 während des Batteriehilfsbetriebs. Ausgenommen während Auffrischzyklen sind daher die Ausgangssignale der Verknüpfungsglieder 31 ^f logisch 1, die Ausgangssignale der Verknüpfungsglieder
030026/0644
2948U2
sind logisch 0, und die Ausgangssignale der Verknüpfungsglieder 322 sind logisch 1· Dies verringert den Energieverbrauch des Speichers 124, des Speichermultiple xers 134 und des Adressregisters 122 während des Batteriehilfsbetriebs, wenn nicht gerade Auffrischzyklen ausgeführt werden·
Beim Ende des Batteriehilfsbetriebs nimmt der Rechner 110 seinen normalen Betrieb wieder auf· Der Rechner führt dann vorzugsweise eine Burstauffrischsubroutine aus, wobei alle Zeilen des Speichers 124 nacheinander aufgefrischt werden· Der Rechner HO geht dann wieder
auf das normale Auffrischen des Speichers 124, wie es oben beschrieben wurde , über.
In Fig· 3B ist die Speichersteuerschaltung gezeigt, Flipflops 336 bis 344 bilden ein 5-Bit-Schieberegister, das Speichersteuersignale ROW, RAS, COL und CAS liefert·
Verknüpfungsglieder 346, 348 und 350 liefern eine logische 1 an den J-Eingang des Flipflops 336, wenn ein Speicherlese-, Schreib- oder Auffrischzyklus ausgeführt werden muß· Insbesondere liefert das Verknüpfungsglied 346 eine logische 1, wenn ein Eingangssignal INSTSAGEALC (Befehl, SAGE, arithmetische und logische Klasse) vom SAGE 142 anzeigt, das ein Befehl auf dem MEMOUT-Bus 136 eine Speicherlese- oder Schreiboperation anfordert. Das Verknüpfungsglied 348 liefert eine logische 1, wenn ein Eingangssignal jiIRB27 vom JiIRB 164 einen einen Speicherlese- oder Schreibzyklus anfordernden Mikrobefehl anzeigt. Ein Eingangssignal TSTAKT (Test Start),das zum Verknüpfungsglied 350 gelangt,
030026/0644
29Α8ΛΑ2
zeigt Lese- und Schreibzyklen des Speichers 12^+ während Testsequenzen des Rechners 110 an. Beim normalen Betrieb werden Speicherauffrischzyklen als Unterbrechungsoperation begonnen. Ein Zähler (aus Gründen der Deutlichkeit der Darstellung nicht gezeigt), liefert alle 12,8 jxs ein Auffrischunterbrechungssignal (Auffrisch-Interrupt-Signal). Eine entsprechende Mikrobefehlsequenz liefert ein entsprechendes Eingangssignal jiIRB27, um einen Auffrischzyklus des Speichers 12/+ zu veranlassen, wie oben beschrieben.
Beim Start eines Speicherzyklus ist ROW logisch 1 und COL, RAS und CAS sind logisch 0. Der J-Eingang des Flipflops 336 wird durch das Takteingangssignal (5 MHz-Takt) abgetastet, so daß die Ausgänge Q und des Flipflops 336 beim Start jedes Speicherzyklus Impulse MEMSTART und MEMSTART (Speicher-Start) von 200 ns liefern. Die Schieberegisterflipflops 338 werden durch i+OCLK (i+O MHz-Takt) getaktet und tasten das Ausgangssignal MEMSTART des Flipflops336 ab. Das Erscheinen von MEMSTART bewirkt daher, daß eine logische 1 vom Flipflop yj>& zum Flipi'lop 3kk wandert. Daher wird RAS logisch 1 beim ersten Ai-OCLK-Impuls und bleibt in diesem Zustand, bis MEMSTAIiT nach logisch 0 zurückkehrt. Zwei AfOCLK-Takt impulse später wird COL logisch 1 und ROW wird logisch 0. CAS wird logisch 1 eine ifOCLK-Periode, nachdem COL logisch 1 wird. MEMSTART endet dann beim nächsten 5CLK-Impuls. Das Ende von MEMSTART wird durch ein Verknüpfungsglied 352 festgestellt. Das Eingangssignal 10CLK (10 MHz-Takt) des Verknüpfungsglieds 352 tastet das Eingangssignal MEMSTART des Verknüpfungsgliedes 352 ab.
030026/0644
Das Verknüpfungsglied 352 liefert Signale zu den K-Eingängen der Flipflops 338, 3*fO und 3/^2, um sicherzustellen, daß die Flipflops 338, 3¥> und 3*t2 am Ende von MEMSTART zurückgesetzt werden (d«h·, die Ausgänge Q sind logisch 0). 10CLK tastet in gleicher Weise das Eingangssignal EMDMEM (Ende Speicherzyklus) eines Verknüpfungsglieds 35*4- ab, das das Eingangssignal für den K-Eingang des Flipflops 3kk liefert, ENDMEM zeigt das Ende eines Speicherzyklus an und stellt sicher, daß der Q-Ausgang des Flipflops 3hk am Ende eines Speicherzyklus auf logisch 0 zurückgesetzt wiri« Die Signale F (Preset, Voreinstellung) und TESTRESET, die dem Setz- und Rücksetzeingang der Flipflops 336 - 3¥), 3bk, 356 und 360 (unten diskutiert) zugeführt werden, erlauben ein Setzen und Zurücksetzen der Steuerschaltung für den Speicher \2.k (ζ·Β· beim Ingangsetzen des Rechners 110),
Ein Flipflop 356 und ein Verknüpfungsglied 358 bilden eine Schaltung, die einen bevorstehenden Ausfall des von der Hauptstromversorgung zum Rechner 110 gelieferten Strom anzeigt« Ein dem Dateneingang des Flipflop 356 zugeführtes Sj£nal PWROK (Strom OK) von der Hauptstromversorgung des Rechners 110 zeigt das bevorstehende Auftreten eines solchen Ausfalls an· PWROK wird durch das Takteingangssignal REFRESH des Flipflops 356 abgetastet· ÖEFRESH tritt beim Start jedes Auffrischzyklus im normalen Betrieb auf und wird von der Auffrisch-Mikrobefehlssequenz die oben beschrieben wurde, geliefert· Daher tastet das Flipflop 356 während jedes Auffrischzyklus im normalen Betrieb den Zustand der Hauptstromversorgung des Rechners 110 ab· Wenn PWROK anzeigt, daß ein Ausfall der Hauptstromversorgung
030026/0644
2948U2
unmittelbar bevorsteht, liefert der IJ-Ausgang des Flipflops 356 ein Signal PWROFF (Strom aus), das einen bevorstehenden Ausfall anzeigt, PWROFF wird durch das Verknüpfungsglied 358 invertiert, das PWROFF liefert. PWROFF und PWRÖFF werden zum Verknüpfungsglied 3/f6 bzw. geleitet, um INSTSAGEALC und uIRB27 zu blockieren.
verhindert daher ein falsches Triggern von Speicherzyklen während des Batteriehilfsbetriebs.
Die Erzeugung der Speichersteuersignale ROW, RAS, COL und CAS während des Batteriehilfsbetriebs wird durch ein Flipflop 360 gesteuert. Das Flipflop 360 liefert Ausgangssignale PFSTART und PFSTART. Während des normalen Betriebs hält das durch das ODER-Glied 362 dem Rücksetzeingang des Flipflops 360 zugeführte Signal PWROFF das Signal PFSTAHT auf logisch 1 und PFSTART auf logisch 0. Während des Batteriehilfsbetriebs wird das dem Dateneingang des Flipflops 36Ο zugeführte Signal MEMHIGH (Speicher hoch, eine logische 1) durch das Takteingangssignal REFRQ (Auffrischanforderung) des Flipflops 360 abgetastet. REFREQ wird von einer aus Gründen der Deutlichkeit der Darstellung nicht gezeigten Zeitgeberschaltung geliefert und tritt mit den Intervallen der Auffrischung des Speichers \2.l\ (12,8 }xs) auf. Jedes Signal REFRQ bewirkt, daß PFSTART logisch 1 wird und PFSTART logisch 0 wird. PFSTART wird, wie oben beschrieben, dem Takteingang des Zählers 306 des Adressregisters 122 zugeführt. PFSTART wird einem Eingang des Verknüpfungsglieds350 zugeführt, um die Erzeugung der Speichersteuersignale ROW und RAS während eines Auffrischzyklus zu veranlassen, MEMSTART und ROW werden Eingängen eines Verknüpfungsglieds
030026/0644
29A8U2
zugeführt, das über das Verknüpfungsglied 362 ein Rückset zeingangssignal für das Flipflop 360 liefert. Das Rücksetzsignal des Verknüpfungsgliedes 36*t beendet das Signal PFSTART, wenn ROW während eines Auffrischzyklus logisch 0 wirdj das Flipflop 360 wird dadurch zur Vorbereitung des nächsten Auffrischzyklus zurückgesetzt. PFSTART wird auch einem Eingang eines Verknüpfungsglieds 366 zugeführt, dessen Ausgang mit dem Setzeingang des Flipflops 3*+2 verbunden ist. Während des normalen Betriebs zwingt ein dem Verknüpfungsglied 366 zugeführtes Signal PWROFF das Ausgangssignal des Verkripfungsglieds 366 auf logisch 1. Das Flipflop 3^2 kann daher in der oben beschriebenen Weise arbeiten, um während des normalen Betriebs Speichersteuersignale zu erzeugen» Beim Batteriehilfsbetrieb zwingt das Signal PFSTART das Ausgangssignal des Verknüpfungsgliedes 366 auf logisch 0, ausgenommen während der Auffrischzyklen· Das Flipflop 3^2. wird daher in den gesetzten Zustand gezwungen, wobei COL logisch 1 und ROW logisch 0 ist. Wie oben beschrieben, zwingt dies den Speichermultiplexer 13*t und den Speicher 12/+ in einen Zustand mit verringerter Leistungsaufnahme, wenn nicht gerade Auffrischzyklen ausgeführt werden. Das Setzeingangssignal des Flipflops 3l\2. wird beim Start eines Batteriehilfsbetriebs-Auffrischzyklus durch PFoTART ausgeschaltot . Das Flipflop 3^2 wird dann zurückgesetzt durch ein vom Verknüpfungsglied 352 dem Eingang K zugeführtes Signal, so daß COL logisch 0 und ROW logisch ist, wie dies beim Start eines Auffrischzyklus erforderlich ist.
Hiermit ist die Beschreibung der Struktur und Arbeitsweise des Speichers 12^ und der Steuerschaltung für den
030026/0644
2948U2
Speicher 124 beendet, und die Bereitstellachaltung des Rechners 110 wird als nächstes beschrieben·
4« Bereitstellschaltung des Rechners T10 (Fign. 1, 4 und
Unter Bezugnahme auf Fig. 1 wird, wie oben diskuitert wurde, eine Folge von Makrobefehlen, die ein Benutzerprogramm bilden, im allgemeinen im Speicher 124 gespeichert. Die Zentraleinheit 114 verfolgt, wie unten näher beschrieben wird, die Programmausführung durch Speichern der Adresse des Speichers 124 des gerade in der Ausführung durch die Zentraleinheit 11/+ befindlichen Befehls. Diese Adresse wird als augeitiicklicher Befehlszählerstand (CPC) bezeichnet. CPC wird inkrementiert, während aufeinanderfolgende Makrobefehle aus dem Speicher 124 abgerufen und ausgeführt werden. CPC kann während der laufenden Ausführung eines Befehls verwendet werden, um beispielsweiseeine dem CPC entsprechende Adresse für den Speicher zu erzeugen· Die Bereitstellschaltung für den Rechner 110 ermöglicht es, daß der nächste durch die Zentraleinheit 11 if auszuführende Befehl aus dem Speicher 124 abgerufen wird, während ein laufender Befehl gerade ausgeführt wird· Um dies zu erreichen, erzeugt und liefert die ALU 112 einen nächsten Befehlszählerstand (NPC), der die Adresse des Speichers 124 des nächsten durch die Zentraleinheit 114 auszuführenden Befehls repräsentiert.
In Fig. 4 ist ein teilweises Blockschaltbild eines Bit-slice400 der ALU 112 gezeigt. Jedes Bit-slice400 mag in der Lage sein, acht arithmetische und logische Operationen mit einer Information von vier Binärbits auszuführen. Die ALU 112 mag vier solche parallelgeschaltete
030026/064
¥2 -J?- 2948U2
Bit-slicesZfOO enthalten. Jedes Bit-sliceJjOO enthält einen Speicher mit wahlfreiem Zugriff (RAM) 402, der 16 getrennt adressierbare Register aufweist. Adresseneingänge AO - A3 und BO - B3 gestatten die Auswahl von irgendwelchen zwei der sechzehn Register als Α-Register bzw. B-Register. Die Inhalte der auf diese V/eise ausgewählten A- und B-Rgister erscheinen an den Datenausgängen A bzw. B. Ein Quellenwähler 404 kann dann die Datenausgänge A und B des RAM 402 oder irgendeine von drei anderen Datenquellen wählen, die mit Dateneingängen R und S einer arithmetischen und logischen Einheit 406 verbunden werden sollen. Zu den anderen Datenquellen gehören ein externer Dateneingang DO - D3, eine "Logische 0" 407, und der Ausgang eines Registers 408. Die ALU 406 kann jede von acht möglichen arithmetischen und logischen Operationen mit den Eingangsdaten R und S ausführen und liefert ein Ausgangssignal F. Ein Ausgabewähler 410 kann dann entweder das Ausgangssignal F der ALU 406 oder die Ausgangsdaten A des RAM-Felds 402 auswählen, so daß diese als Ausgangssignal YO - Y3 des Bit-slice 400 erscheinen. Das Ausgangssignal F der ALU 406 kann durch ein RAM-Schieberegister 412 hindurch in ein Register des RAM 402 übertragen werden, oder in das Register 408. Diß Bits des Ausgangssignals des Registers 408 können durch ein Schieberegister 416 verschoben werden und zurück in den Eingang des Registers 408 übertragen werden. Vier Bit-slices 4OO der ALU 112 ermöglichen es daher der ALU 112 jede von acht arithmetischen und logischen Operationen mit einer Information von 16 Binärbits auszuführen. Die ALU 112 enthält daher 16 16-Bit-Register.
Zwei Register der ALU 112 sind zum Speichern von CPC
030026/0644
und NPC bestimmt. Im Betrieb kann unter der Annahme, daß CPC im ersten Register und NPC im zweiten Register gespeichert ist, das zweite Register als Register A ausgewählt werden, NPC erscheint dann auf dem ALUOUT-Bus 116· NPC kann dann verwendet werden, um den Speicher 12/+ zu adressieren, damit der nächste Makrobefehl auf dem MEMOUT-Bus 136 erscheint. Der nächste Makrobefehl wird dann in das Befehlsregister 1^0 übertragen. Beim Start der Ausführung des nächsten Makrobefehls wird NPC der Wert CPC dieses nächsten Makrobefehls und ein neuer Wert NPC muß erzeugt werden. Der alte Wert NPC bleibt im zweiten Register und wird der neue Wert CPC, und er wird auch aus dem zweiten Register durch den Quellenwähler i+0^ in die ALU gelesen. Der alte Wert NPC wird dann zur Erzeugung des neuen NPC inkrementiert, der vom Ausgang F der ALU ^06 zum ersten Register übertragen wird und den neuen Wert NPC bildet.
Das erste und zweite Register enthält daher abwechselnd NPC und CPC bei jedem aufeinanderfolgenden Makrobefehl. In jedem Fall wird der alte Wert NPC der neue Wert CPC. Der Betrag, um den der alte Wert NPC zur Bildung des neuen Werts NPC inkrementiert werden muß, wird durch die Adresse des Speichers 12^ für den nächsten Makrobefehl bestimmt. Wenn die Makrobefehle von aufeinanderfolgenden Speicheradressen des Speichers 12if abgerufen werden, wird jeder alte Wert NPC um 1 zur Erzeugung des neuen Wert NPC inkrementiert. Es ist möglich, daß der alte Wert NPC um mehr als 1 inkrementiert wird, beispielsweise da, wo die neue Adresse des Speichers 124 durch einen Skip oder
030026/0644
-ft.
2948U2
Sprung bestimmt wird, oder wo sie eine indirekte Adresse ist.
In Fig. JfA ist eine Schaltung zum Erzeugen der Adress-Eingangssignale AO - A3 und BO - B 3 für die Bit-slices 400 der ALU 112 gezeigt. Die ersten und zweiten Register werden vorzugsweise so ausgewählt, daß ihre Adressen sich nur in einem einzigen Bit unterscheiden. Beispielsweise mag das erste Register die binäradresse 1011 und das zwei.;.* Register die Binäradresse 1111 haben; ihre Adressen unterscheiden sich dann nur im Bit 2. Dadurch wird die Schaltung zum Auswählen entweder des ersten oder zv/eiten Registers vereinfacht. Die Adressbits AO, BO, A1, B1, A3 und B3 des RAM /fO2 sind keine Funktion davon, welches der ersten und zweiten Register NPC oder CPC enthält. Diese Adresseingangssignale des RAM ifO2 werden daher durch eine fest verdrahtete Logik geliefert, die Multiplexer 418 und l\2.0 und Verknüpfungsglieder /f22 und Zf2/f aufweist. Diese Logik wird gesteuert durch spezifische Bits vom Befehlsregister UfO, vom JiIRA 162 und juIRB l6^f, die zum Adressieren der RAMs /fO2 der ALU 112 verwendet werden. Diese Logik ist daher eine spezifische Funktion eines speziellen Mikrobefehlssatzes und wird nicht weiter beschrieben4 der Entwurf einer solchen Logik ist dem Fachmann gut bekannt. Verlaiüpfungsglieder Zf26 bis if32 erzeugen die Adressbits A2 und B2 des RAM ifOO und sind in ähnlxher Weise eine funktion des spezifischen Mikrobefehlssatzes. Die Verlaiüpfungsglieder k2G und /f28 erhalten jedoch das Eingangssignal SELPC (Auswahl PC), das anzeigt, ob NPC im ersten oder zweiten Register ist. Wie oben beschrieben, kann entweder das erste oder zweite Register
030026/0644
ORIGINAL INSPECTED
54 2948U2
- 1*5 -
als Register A oder Register B ausgewählt werden. Wenn das erste oder zweite Register auf diese Weise ausgewählt ist, bestimmt SELPC, ob das Adressbit 2 des Registers 1 oder 0 ist. SELPC wird vom Q-Ausgang eines Flipflops 1+34 geliefert. Der Ausgang φ des Flipflops 43/+ ist mit dem Dateneingang des Flipflops k~5h verbunden, so daß SELPC abwechselnd 1 und 0 ist, während das Flipflop 1+34 durch das Eingangssignal CLKIR (Takt-Befehlsregister) getaktet wird. CLKIR ist ein dem Befehlsregister 11+0 zugeführtes Taktsignal, um Makrobefehle vom MEMOUT-Bus I36 ins Befehlsregister I/4O zu laden. Daher wechselt SELPC zwischen logisch 1 und logisch 0, während aufeinanderfolgende Makrobefehle ins Befehlsregister 11+0 geladen werden. SELPC zeigt dann an, ob NPC, das abwechselns im ersten und zweiten Register vorhanden ist, sich im ersten oder zweiten Register befindet.
Hiermit ist die Besprechung der Struktur und Arbeitsweise der Bereitstellschaltung des Rechners 110 beendet. Nach der Beschreibung der Struktur und Arbeitsweise der Mikrobefehlslogik 11+1+, des Speichers 121+ und der Steuerschaltung des Schalters 12/+, und der Bereitstellschaltung des Rechners 110 werden als nächstes bestimmte Merkmale des Rechners 110 zusammengefaßt.
5« Zusammenfassung von Merkmalen des Rechners 110
Bestimmte Merkmale des Rechners 110, die neben anderen oben beschrieben wurden, sind:
Erstens, die Unterteilung von Mikrobefohlen in Mikrobefehlabschnitte, die Speicherung dieser Abschnitte in
030026/0644
2948U2
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 16O 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 werdenf 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
030026/0644
2948U2
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.
Drittens, die Verwendung von Speichervorrichtungen mit zv/ei Betriebsarten (Zähler/Register) im Adressregister (AlffiG) 122. Die Erzeugung der Auffrischadressen des Speichers 12if kann dadurch von der ALU 112 auf das Adressregister 122 übertragen werden, wenn der Rechner 110 in den Batteriehilfsbetrieb eintritt. Dies vereinfacht die zum Aufrechterhalten der Auffrischung des Speichers 12^ während des Batteriehilfsbetriebs erforderliche Schaltung»
Ein viertes Merkmal ist die Verwendung von doppelten Registern de.· ALU 112 zum gleichzeitigen Speichern eines laufenden Befehlszählerstandes (CPC) und eines nächsten Befehlssählorstands (UPC). Uin nächster auszuführender Befehl kann daher aus dem Speicher \Zi\ durch HPC abgerufen werden, während CPC bei einer Ausführung eines laufenden Befehls verwendet v/erden kann. Die zum Ausführen von aufeinanderfolgendeu Befehlen benötigte Zeit wird dadurch verringert, und die zur Ausführung der Bereitstellung des Befehls erforderliche Schaltung wird vereinfacht.
030026/06A4
29A8U2
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* Z.B. 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 unterschiedliche 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 Speicheradressregisters 122 verwendet sein. Weiterhin können die Bereitstellregister zum Speichern des laufenden und neuen Befehlszählerstands, anstatt einen Teil der ALU 112 zu bilden, von dieser getrennt sein· In gleicher Weise kann das Inkrementieren von NPC und CPC durch eine andere Schaltung durchgeführt werden als die Bit-slices 400 der ALU 112· Somit sollen die vorliegenden Ausführungsbeispiele in jeder Hinsicht nur als Erläuterung, jedoch nicht als Beschränkung aufgefaßt werden.
030026/0644
29Α8Α42
Es wurde die Architektur eines schnellen kompakten Rechnersystems beschrieben. Die Systemarchitektur weist einen Prozessor zum Verarbeiten von Daten in Maschinensprache auf, einen Speicher zum Speichern mindestens von Befehlen in Maschinensprache zur Benutzung durch den Prozessor, eine Mikrobefehllogik zum Speichern und Liefern von Sequenzen häufig verwendeter Befehle, und Busse zum Übertragen mindestens von Befehlen zwischen dem Prozessor und dem Speicher« Es wurde eine Mikrobefehlspeicherschaltung beschrieben zum wirkungsvollen Speichern von Mikrobefehlen in einem verfügbaren Mikrobefehlspeicherraum. Ebenfalls beschrieben wurde eine Mikrobefehlauswahlschaltung zum schnellen Auswählen von aufeinanderfolgenden Mikrobefehlen einer Sequenz, Eine Speichcr-Gtouerschaltung wurde beschrieben, um den Speicher wahrend des Batteriehilfsbetriebs aufzufrischen. Es wurde eine Befehlbereitstellschaltung beschrieben, um aus dem Speicher einen nächsten auszuführenden Befehl abzurufen, während ein laufender Befehl gerade ausgeführt wird.
Soweit die Art der in der Zeichnung gezeigten Verknüpfungsglieder (z.B. ODEJR-Glied) in der Beschreibung nicht angegeben ist, kann sie der Zeichnung entnommen werden.
030026/0644
Leerseite

Claims (1)

  1. Patentansprüche
    Digitalrechnersystem mit einem Prozessor zum Verarbeiten von Digitaldatensignalen, einem Speicher zum Speichern mindestens von Befehlen, die vom Prozessor bei der Steuerung des Systems verwendet werden, einer Mikrobefehllogik zum Steuern des Prozessors, dadurch gekennzeichnet, daß vorgesehen sind:
    Ein Mikrobefehlspeicher (160, 201J bis 211J) zum Speichern von Abschnitten von Mikrobefeh]en, wobei bestimmten Befehlen jeweils mindestens eine Mikrobefehlsequenz zugeordnet ist, und
    eine auf jeden bestimmten Befehl ansprechende Einrichtung zum aufeinanderfolgenden Auswählen jedes Abschnitts jedes der dem bestimmten Befehl zugeordneten Mikrobefehle, und
    eine Einrichtung zum aufeinanderfolgenden Empfangen und zum gleichzeitigen Speichern der Abschnitte eines der Mikrobefehle, und zum Liefern von entsprechenden Steuersignalen zum Steuern des Prozessors.
    030026/0644
    ORIGINAL INSPECTED
    2948U2
    2. Rechnersystem nach Anspruch 1, dadurch gekennzeichnet, daß jeder Mikrobefehl N Abschnitte aufweist, wobei N größer als 1 ist, und daß jeder Abschnitt N Binärbits einer Information enthält, und
    daß der die Abschnitte speichernde Mikrobefehlspeicher eine Mehrzahl von getrennt auswählbaren Speicherstellen aufweist, deren jede mindestens N Binärbit der Information speichern kann.
    3. Rechnersystem nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Auswahleinrichtung einen Startadressengenerator (SAGE 142) aufweist, um besondere Befehle der bestimmten Befehle zu empfangen und um in Abhängigkeit davon jeden ersten Mikrobefehl innerhalb einer Sequenz auszuwählen, die dem jeweiligen besonderen Befehl entspricht.
    U. Rechnersystem nach einem der vorgehenden 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.
    030026/0644
    5. Rechnersystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Einrichtung zum aufeinanderfolgenden Empfangen und Speichern der Abschnitte des Mikrobefehls mit dem Mikrobefehlsspeicher verbunden ist und auf die Tätigkeit der Auswahleinrichtung anspricht.
    6. Digitalrechnersystem mit einem Speicher zum Speichern mindestens von Befehlen zum Steuern des Systems, einer Hauptstromversorgung zum Liefern des elektrischen Stroms für den Speicher, einer HilfsStromversorgung zum Liefern von Strom bei einem Stromausfall in der Hauptstromversorgung mindestens zum Speicher, insbesondere nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß eine Speicherauffrischeinrichtung vorgesehen ist, die aufweist:
    Eine Einrichtung zum Messen von aufeinanderfolgenden Auffrisch-Ze it Intervallen;
    eine auf die Tätigkeit der Hauptstromversorgung und der Meßeinrichtung ansprechende Einrichtung zum Anzeigen der Zeitintervalle, in denen der Stromausfall aufgetreten ist; und
    eine auf die Tätigkeit der Meßeinrichtung ansprechende Einrichtung zum Liefern von bestimmten Speichereingangssignalen, die bestimmte Speicherstellen oder Auffrischadressen repräsentieren; eine auf die Tätigkeit der Meßeinrichtung und der Anzeigeeinrichtung ansprechende Speicheradressiereinrichtung, um
    1) während jedes Zeitintervalls, in dem kein Stromausfall eintritt, die bestimmten Speichereingangssignale zu empfangen und an den Speicher zu liefern, und
    030026/0644
    2948U2
    2) während der Folge der bestimmten Zeitintervalle, in denen ein Stromausfall aufgetreten ist, eine Darstellung der bestimmten Speichereingangssignale, die während des ersten bestimmten Zeitintervalls auftreten, zu empfangen und zu speichern, aufeinanderfolgend die gespeicherte Darstellung während aufeinanderfolgender bestimmter Zeitintervalle zu inkrementieren, und um die gespeicherte und inkrementierte Darstellung der bestimmten Speichereingangssignale zum Speicher zu liefern.
    7. Rechnersystem nach Anspruch 6, dadurch gekennzeichnet, daß mindestens eines der bestimmten Speichereingangssignale während jedes Zeitintervalls auftritt.
    8. Rechnersystem nach Anspruch 6 oder 7, dadurch gekennzeichnet, daß die Speicheradressiereinrichtung während jedes Zeitintervalls, in dem kein Stromausfall auftritt, die gespeicherten Darstellungen der bestimmten Speichereingangssignale zum Speicher liefert, um die entsprechenden Speicherstellen aufzufrischen.
    9. Digitalrechnersystem mit einem Prozessor zum Verarbeiten digitaler Datensignale und einem Speicher zum Speichern mindestens von Befehlen, die vom Prozessor zum Steuern des Systems verwendet sind, insbesondere nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß eine Befehlsbereitstelleinrichtung vorgesehen ist, und daß das System aufweist:
    030026/0644
    2948U2
    Ein erstes und ein zweites Register(402) zum Empfangen und Speichern eines laufenden Befehlszäh]erstands (CPC), der eine erste Speicherste:lle darstellt, die einen ersten gerade in der Ausführung durch den Prozessor befindlichen Befehl enthalt, und eines nächsten Befehlszählerstands (MPC), der eine zweite Speichersteile repräsentiert, die einen zweiten als nächstes vom Prozessor zu verwendenden Eefehl enthält, daß eine Einrichtung zum Liefern von Speichereingangssignalen entsprechend dem nächsten Eefehlszählerstand zur Anforderung des zweiten Befehls aus den Speicher (124) während der Verarbeitung des ersten Befehls vorgesehen ist, und
    daß eine Einrichtung zum Liefern eines neuen laufenden Befehlszählerstands und eines neuen nächsten Befehlsz'Jhlerstands nach der Ausführung des ersten Befehls vorgesehen ist.
    10. Hechnersysten nach Anspruch 9, dadurch gekennzeichnet, daß die Einrichtung zum Liefern eines neuen laufenden und eines neuen nächsten Pefehlszählerstands diese neuen Befehlszählerstände dem ersten und zweiten Register zuführt, und daß der neue laufende Befehlszählerstand der frühere "nächste Befehlszählerstand" ist.
    11. Rechnersystem nach Anspruch 9 oder 10, dadurch gekennzeichnet, daß die Einrichtung zum Liefern des neuen laufenden und des neuen nächsten Befehlszählerstands aufweist:
    030026/0644
    ORIGINAL INSPECTED
    Eine auf die Tätigkeit des Prozessors ansprechende Einrichtung zum abwechselnden Auswählen 1) des ersten oder zweiten Registers zum Speichern des laufenden Befehlszählerstands und 2) des jeweils anderen Registers zum Speichern des nächsten Befehlszählerstands, und
    eine auf die Tätigkeit des Prozessors und der Auswahleinrichtung ansprechende Einrichtung, um den nächsten Befehlszählerstand zu empfangen, ihn zu inkrementieren, und den inkrementierten nächsten Befehlszählerstand dem zum Speichern des neuen nächsten Befehlszählerstands ausgewählten ersten beziehungsweise zweiten Register zuzuführen, wobei der nächste Befehlszählerstand in dem zum Speichern des nächsten Befehlszählerstands ausgewählten ersten beziehungsweise zweiten Register verbleibt und der neue laufende Befehlszählerstand wird.
    030026/0644
DE19792948442 1978-12-06 1979-12-01 Digitalrechnersystem Granted DE2948442A1 (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 true DE2948442A1 (de) 1980-06-26
DE2948442C2 DE2948442C2 (de) 1987-01-15

Family

ID=25512228

Family Applications (3)

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

Family Applications Before (2)

Application Number Title Priority Date Filing Date
DE19792954439 Pending DE2954439A1 (de) 1978-12-06 1979-12-01
DE19792954438 Pending DE2954438A1 (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) DE2954439A1 (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
EP0414811B1 (de) * 1988-05-03 1997-02-19 Wang Laboratories, Inc. 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.

Citations (5)

* 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
US3760369A (en) * 1972-06-02 1973-09-18 Ibm Distributed microprogram control in an information handling system
US3975714A (en) 1973-12-22 1976-08-17 Olympia Werke Ag Data processing system including an LSI chip containing a memory and its own address register
US4118773A (en) * 1977-04-01 1978-10-03 Honeywell Information Systems Inc. Microprogram memory bank addressing system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1246129A (en) * 1967-12-14 1971-09-15 Olivetti & Co Spa Stored program 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
US3868649A (en) * 1972-06-28 1975-02-25 Fujitsu Ltd Microprogram control system
JPS5325226B2 (de) * 1972-07-20 1978-07-25
IT1004203B (it) * 1973-04-12 1976-07-10 Wacker Gmbh Leganti a base di alchilsilicati per materiali inorganici
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
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

Patent Citations (5)

* 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
US3760369A (en) * 1972-06-02 1973-09-18 Ibm Distributed microprogram control in an information handling system
US3975714A (en) 1973-12-22 1976-08-17 Olympia Werke Ag Data processing system including an LSI chip containing a memory and its own address register
US4118773A (en) * 1977-04-01 1978-10-03 Honeywell Information Systems Inc. Microprogram memory bank addressing system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DE-Buch Speiser: "Digitale Rechenanlagen", Springer-Verlag 1967, S. 410, 411 *
US-Z: Computer, Heft 11, 1974, S. 24-38

Also Published As

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

Similar Documents

Publication Publication Date Title
DE3588009T2 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung.
DE2716369C2 (de)
DE68914172T2 (de) Datenverarbeitungssystem und Videoverarbeitungssystem mit einem derartigen Datenverarbeitungssystem.
DE2542740C2 (de) Datenverarbeitungsanlage mit einer Mikroprogrammsteuerung
DE68918754T2 (de) Datenverarbeitungsgerät mit selektivem Befehlsvorausholen.
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE2322674C3 (de) Mikroprogramm-Steuereinrichtung
DE2944419C2 (de)
DE2417795C2 (de) Datenverarbeitungsanlage
DE2719635A1 (de) Anordnung fuer eine erweiterung einer mikroprogrammsteuerung einer datenverarbeitungsanlage
DE68924719T2 (de) Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung.
DE1774296B2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE2714805A1 (de) Datenverarbeitungssystem
DE2813128A1 (de) Mikroprogrammspeicher
DE2355993A1 (de) Datenverarbeitungseinheit einschliesslich mikroprogramm-steuereinrichtung
DE2536622C2 (de) Verzweigungssteuerung mit flexibler Auswahl von Steuerworten
DE2452214A1 (de) Mikroprozessor mit unmittelbarer und indirekter adressierung
DE2339636A1 (de) Programmsteuereinrichtung
DE2725396C3 (de)
DE3114921C2 (de) Mikroprogramm-Speicheranordnung
DE2524046A1 (de) Elektronische datenverarbeitungsanlage
DE2948442A1 (de) Digitalrechnersystem
DE2440628A1 (de) Datenverarbeitungsanlage mit mikroprogrammierung
DE2426874A1 (de) Verfahren und schaltungsanordnung zur bestimmung der adressenart eines befehls
DE3121742A1 (de) Mikroprogrammsteuerverfahren und -einrichtung zu dessen durchfuehrung

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