DE2948442A1 - Digitalrechnersystem - Google Patents
DigitalrechnersystemInfo
- 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
Links
- 230000015654 memory Effects 0.000 claims description 247
- 238000012545 processing Methods 0.000 claims description 21
- 230000000694 effects Effects 0.000 claims description 6
- 235000002020 sage Nutrition 0.000 claims 1
- 239000000872 buffer Substances 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 230000004913 activation Effects 0.000 description 11
- 238000012360 testing method Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000000050 ionisation spectroscopy Methods 0.000 description 5
- 230000008520 organization Effects 0.000 description 4
- 101100087530 Caenorhabditis elegans rom-1 gene Proteins 0.000 description 2
- 101100305983 Mus musculus Rom1 gene Proteins 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 101150022075 ADR1 gene Proteins 0.000 description 1
- 240000006409 Acacia auriculiformis Species 0.000 description 1
- 101100490566 Arabidopsis thaliana ADR2 gene Proteins 0.000 description 1
- 102100040844 Dual specificity protein kinase CLK2 Human genes 0.000 description 1
- 101000749291 Homo sapiens Dual specificity protein kinase CLK2 Proteins 0.000 description 1
- 101100269260 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ADH2 gene Proteins 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/268—Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/406—Management or control of the refreshing or charge-regeneration cycles
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
- Complex Calculations (AREA)
Description
2948U2
Anmelderin; Stuttgart, den 2.7. Nov. 1979
Data General Corporation P 3783 R/Bn
Westboro, Massachusetts
V.St.A.
Westboro, Massachusetts
V.St.A.
Vertreter:
Kohler-Schwindling-Späth
Patentanwälte
Hohentwielstr. 41
7000 Stuttgart - 1
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.
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
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. k· 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.
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.
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 11k·
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.
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
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)
- PatentansprücheDigitalrechnersystem 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, undeine auf jeden bestimmten Befehl ansprechende Einrichtung zum aufeinanderfolgenden Auswählen jedes Abschnitts jedes der dem bestimmten Befehl zugeordneten Mikrobefehle, undeine Einrichtung zum aufeinanderfolgenden Empfangen und zum gleichzeitigen Speichern der Abschnitte eines der Mikrobefehle, und zum Liefern von entsprechenden Steuersignalen zum Steuern des Prozessors.030026/0644ORIGINAL INSPECTED2948U22. 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, unddaß 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, unddaß die Auswahleinrichtung eine Einrichtung einschließt, die in Abhängigkeit von dem bestimmten Abschnitt den jeweils nachfolgenden Mikrobefehl auswählt.030026/06445. 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; undeine 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, um1) während jedes Zeitintervalls, in dem kein Stromausfall eintritt, die bestimmten Speichereingangssignale zu empfangen und an den Speicher zu liefern, und030026/06442948U22) 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/06442948U2Ein 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, unddaß 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 INSPECTEDEine 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, undeine 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
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 |
---|---|---|---|
DE19792954438 Pending DE2954438A1 (de) | 1978-12-06 | 1979-12-01 | |
DE19792954439 Pending DE2954439A1 (de) | 1978-12-06 | 1979-12-01 | |
DE2948442A Expired DE2948442C2 (de) | 1978-12-06 | 1979-12-01 | Digitalrechenanlage |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19792954438 Pending DE2954438A1 (de) | 1978-12-06 | 1979-12-01 | |
DE19792954439 Pending DE2954439A1 (de) | 1978-12-06 | 1979-12-01 |
Country Status (8)
Country | Link |
---|---|
US (1) | US4330823A (de) |
JP (2) | JPS5582355A (de) |
AU (1) | AU538812B2 (de) |
CA (1) | CA1140678A (de) |
DE (3) | DE2954438A1 (de) |
FR (1) | FR2443721B1 (de) |
GB (1) | GB2037035B (de) |
NL (1) | NL7908666A (de) |
Families Citing this family (11)
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 |
AU632493B2 (en) * | 1988-05-03 | 1993-01-07 | Lg Electronics Inc. | Microprocessor having external control store |
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)
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)
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 | ||
NL7404914A (de) * | 1973-04-12 | 1974-10-15 | ||
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 |
-
1978
- 1978-12-06 US US05/967,041 patent/US4330823A/en not_active Expired - Lifetime
-
1979
- 1979-10-29 AU AU52273/79A patent/AU538812B2/en not_active Ceased
- 1979-10-31 GB GB7937726A patent/GB2037035B/en not_active Expired
- 1979-11-27 CA CA000340691A patent/CA1140678A/en not_active Expired
- 1979-11-29 NL NL7908666A patent/NL7908666A/nl not_active Application Discontinuation
- 1979-12-01 DE DE19792954438 patent/DE2954438A1/de active Pending
- 1979-12-01 DE DE19792954439 patent/DE2954439A1/de active Pending
- 1979-12-01 DE DE2948442A patent/DE2948442C2/de not_active Expired
- 1979-12-05 FR FR7930273A patent/FR2443721B1/fr not_active Expired
- 1979-12-06 JP JP15868779A patent/JPS5582355A/ja active Pending
-
1987
- 1987-09-03 JP JP62221184A patent/JPS6373333A/ja active Granted
Patent Citations (5)
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)
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 |
---|---|
JPS6373333A (ja) | 1988-04-02 |
DE2948442C2 (de) | 1987-01-15 |
JPH0115896B2 (de) | 1989-03-22 |
DE2954438A1 (de) | 1985-03-21 |
CA1140678A (en) | 1983-02-01 |
DE2954439A1 (de) | 1985-05-15 |
GB2037035A (en) | 1980-07-02 |
FR2443721A1 (fr) | 1980-07-04 |
AU538812B2 (en) | 1984-08-30 |
NL7908666A (nl) | 1980-06-10 |
FR2443721B1 (fr) | 1985-06-21 |
GB2037035B (en) | 1983-06-15 |
AU5227379A (en) | 1980-06-12 |
US4330823A (en) | 1982-05-18 |
JPS5582355A (en) | 1980-06-21 |
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 | |
DE69131917T2 (de) | Cache-Speicher mit rekonfigurierbarer Blocklänge und Verfahren dafür | |
DE2452214A1 (de) | Mikroprozessor mit unmittelbarer und indirekter adressierung | |
DE2339636A1 (de) | Programmsteuereinrichtung | |
DE2725396C3 (de) | ||
DE3114921C2 (de) | Mikroprogramm-Speicheranordnung | |
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 | |
DE19526008A1 (de) | Vertikal partitionierter, primärer Befehls-Cache-Speicher | |
DE3650642T2 (de) | Speichermittel mit Mehrwortauslesen und Schreiben |
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 |