DE2431379B2 - Datenverarbeitungseinrichtung - Google Patents
DatenverarbeitungseinrichtungInfo
- Publication number
- DE2431379B2 DE2431379B2 DE2431379A DE2431379A DE2431379B2 DE 2431379 B2 DE2431379 B2 DE 2431379B2 DE 2431379 A DE2431379 A DE 2431379A DE 2431379 A DE2431379 A DE 2431379A DE 2431379 B2 DE2431379 B2 DE 2431379B2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- information
- overlay
- block
- stack
- 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
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008707 rearrangement Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012544 monitoring process Methods 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/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Stored Programmes (AREA)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
Die Erfindung bezieht sich auf eine Datenverarbeitungseinrichtung mit einem Hauptspeicher, der Informationsblöcke
zweier unterschiedlicher Kategorien aufnimmt, einem verhältnismäßig kleinen, schnellen
Speicher und einer Vorrichtung, die bei Bedarf Informationsblöcke vom Hauptspeicher zum schneller.
Speicher überträgt
Es ist an sich bekannt, Datenverarbeitungseinrichtungep
mit einem relativ kleinen, jedoch schnellen Speicher zu versehen, der zusätzlich zu dem Hauptspeicher des
Systems vorgesehen ist, sowie eine Einrichtung zu verwenden, um Informationsbiöcke bei Bedarf von dem
Hauptspeicher an den kleineren, schnellen Speicher zu übertragen. Es wird in diesem Zusammenhang beispielsweise
auf den Artikel von D. J. Conti »Concepts for Buffer Storage«, IEEE Computer Group News, März
1969, Seite 9 ff, verwiesen.
Aufgabe der Erfindung ist es, eine Einrichtung zum Übertragen von Informationsblöcken aus dem Hauptspeicher
in den schnellen Speicher zu schaffen, der die unterschiedlichen Infonnationskategorien in getrennten
Bereichen des schnellen Speichers aufnimmt und der den Speücherraum im schnellen Speicher in wirksamer
Weise verwendet, ohne daß Speicherraum verlorengeht.
Diese Aufgabe wird bei einer Datenverarbeitungseinrichtung der gattungsgemäßen Art durch die Kombination
folgender Merkmale gelöst:
a) ein erstes Hinweisregister nimmt die der letzten Adresse eines ersten Informationsstapels im
schne'len Speicher vorhergehende Adresse auf, wobei der erste Informationsstapel an der höchsten
Adresse im schnellen Speicher beginnend angeordnet ist,
b) ein zweites Hinweisregister nimmt die der letzten Adresse eines zweiten Informationsstapels im
schnellen Speicher folgende Adresse auf, wobei der zweite Informationsstapel an der niedrigsten
Adresse im schnellen Speicher beginnend angeordnet ist,
c) eine Subirahierschaitung subtrahiert den Inhalt der
Hinweisregis'ier, so daß die Menge an freiem Speicherraum, die zwischen den beiden Informationsstapeln
zur Verfügung steht, berechnet wird,
d) jeder Informationsblock besitzt einen ihm zugeordneten Code, der angibt, welcher der beiden
Kategorien die Information zugehört, sowie einen weiteren Code, der die Größe des Blocks darstellt,
e) wenn ein Informationsblock von dem Hauptspeicher auf den schnellen Speicher übertragen werden
soll, wird
e 1) falls der Code anzeigt, daß die I nforrr.ation der
ersten Kategorie angehört, und die Subtrahierschaltung anzeigt, daß der freie Raum groß
genug ist, um den Block aufzunehmen, der Block an die Stelle des schnellen Speichers
übertragen, die durch den Inhalt des ersten Hinweisregisters bestimmt ist, und der Inhalt
des ersten Hinweisregisters wird dann um einen Betrag verringert, der der Größe des
übertragenen Blockes entspricht, und
e2) falls der Code anzeigt, daß die Information der zweiten Kategorie zugehört, und die Subtrahierschaltung
anzeigt, daß der freie Raum groß genug ist, um den Block aufzunehmen, der Block an die Stelle des schnellen Speichers
übertragen, die durch den Inhalt des zweiten Hinweisregisters bestimmt ist und der Inhalt
des zweiten Hinweisregisters wird dann um einen Betrag erhöht, der der Größ^ des
übertragenen Blockes entspricht.
Eine derartige Datenverarbeitungseinrichtung eignet sich besonders für eine Anwendung, bei der der
Speicher ein Mikroprogrammspeicher ist und bei der
die Information, die in diesen Speicher eingeschrieben wird. Blöcke eines Mirkoprogramms aufweist, welches
aus einem Hauptspeicher ausgelesen wird.
Ein Ausführungsbeispiel der Erfindung wird im Zusammenhang mit den Figuren näher erläutert Es
zeig;
Fig. 1 ein schematisches Blockschaltbild eines Teiles
einer Datenverarbeitungseinrichtung gemäß einem Ausführungsbeispiel der Erfindung,
F i g. 2 ein schematisches Blockschaltbild eines anderen Teiles der Daienverarbeitungseinrichtung,
Fig.3 —5die Darstellungeines Mikroprogramms für
die Datenverarbeitungseinrichtung, und
F i g. 6 eine Abwandlung der Datenverarbeitungseinrichtung.
Wie in F i g. 1 dargestellt, besitzt die Einrichtung
einen Ha'iptspeicher 10 zum Speichern von Daten- und Programmaterial, einen schnellen Speicher 11 sowie
eine Mikroprogrammsteuereinheit 12. Beim Betrieb der Datenverarbeitungseinrichtung ruft die Steuereinheit 12
Programmbefehle aus dem Hauptspeicher 10 ab und löst für jeden Befehl eine entsprechende Folge von
Mikrobefehlen aus, die aus dem schnellen Speicher 11 stammen, um den Befehl auszuführen. Eine derartige
Mikroprogrammsteuerung einer Datenverarbeitungseinrichtung ist bekannt; die Ausbildung der Mikroprogrammsteuereinheit
12 selbst ist daher nicht Gegenstand vorliegender Erfindung.
Der schnelle Speicher 11 hat im Vergleich zum Hauptspeicher 10 eine verhältnismäßig geringe Größe,
jedoch eine sehr viel kürzere Zugriffszeit, so daß er für die MikiOprogrammeinheit einen praktisch sofortigen
Zugriff zu den Mikrobefehlen ergibt. Ein Bereich 13 des Mikroprogrammspeichers ist reserviert für das Basismikroprogramm,
welches im folgenden als Grundprogramm bezeichnet wird und für die Basissteuerung der
Einrichtung erforderlich ist. Dieses Programmaterial ist ständig im Mikrospeicher gespeichert. Der übrige
Bereich 14 des Mikroprogrammspeichers kann Kopien einer Anzahl von Blöcken zusätzlichen Mikroprogramniaterials
speichern, welche gerade in der Einrichtung benutzt werden. Ein Bereich des Hauptspeichers
10 dient als Ergänzungsspeicher zur Aufnahme von Hauptkopien von allen Mikroprogrammblöcken in der
Einrichtung. Jeder dieser Blöcke kann in dem Mikroprogrammspeicher 11 zur Verwendung durch die Mikroprogrammeinheit
12 übergeführt werden, falls dieser Block abgerufen wird. Der übergeführte Block wird im
allgemeinen einen gewissen Teil der Information, die sich bereits im Mikrospeicher befindet, überdecken, und
im folgenden werden aus diesem Grund die Mikroprogrammblöcke als »Überlagerungen« bezeichnet. In
Fig. 1 ist die Hauptkopie im Hauptspeicher 10 einer derartigen Überlagerung als schraffierte Fläche 15
dargestellt, während die entsprechende Kopie im Mikroprogrammspeicher 11 eine schraffierte Fläche 16
darstellt.
Die Verwendung dieses Ergänzungsspeichers für die Überlagerungen und die Verwendung derartiger Überlagerungen
im Mikroprogrammspeicher ermöglicht, daß der Einrichtung ein sehr umfangreiches Mikroprogramm
zur Verfügung steht, ohne daß es erforderlich ist, einen großen und schnellen Mikroprogrammspeicher
vorzusehen, der sehr teuer wäre.
Bei der vorliegenden Ausführungsform lassen sich die
Mikroprogrammuberlagerungen in zwei Kategorien einteilen:
1. System-Überlagerungen:
Diese System-Überlagerungen sind Mikroprogrammblöcke,
die eigentlich eine Erweiterung des Grundprogramms darstellen und auf diese Weise
den Bereich und die Leistung der Einrichtung erweitern. Beispielsweise können sie Überwachungsfunktionen
ausführen, wie z. B. das Umblättern von Seiten, oder für die Nachbildung einer
anderen Maschine notwendig sein, die einen unterschiedlichen Operationscode und einen unterschiedlichen
Systemaufbau besitzt Derartige Überlagerungen stammen vom Hersteller der Datenverarbeitungseinrichtung.
2. Benutzer-Überlagerungen:
Diese Überlagerungen stellen Mikroprogrammaterialblöcke dar, die spezielle Aufgaben erfüllen,
welche bei bestimmten Anwendungsfällen häufig auftreten, z. B. Quadratwurzelprogramme, im allgemeinen
werden diese Überlagerungen vom Benutzer der Einrichtung erstellt, nicht vom Hersteller der Datenverarbeitungseinrichtung.
Diese Einteilung ist bis zu einem gewissen Grad willkürlich und ledigiich zur Vereinfachung vorgenommen.
Die Übertragung der Überlagerungen zwischen dem Hauptspeicher 10 und dem Mikroprogrammspeicher 11
wird mit Hilfe einer Überlagerungstabelle 17 gesteuert, die ein Teil des Hauptspeichers IO und durch die beiden
folgenden Register definiert ist: Das Basisadressenregister 18 der Überlagerungstabelle, welches die Adresse
VTßA des Beginns der Überlagerungstabelle innerhalb
des Hauptspeichers enthält, und das Längenregister 19 der Überlagerungstabelle, welches die Länge VTL der
Überlagerungstabelle enthält. Die Überlagerungstabelle 17 enthält weiterhin einen Eintrag für jede
Überlagerung in der Einrichtung. Jeder Eintrag enthält:
1. Ein Feld VL, welches die Länge der Überlagerung definiert, d. h. die Anzahl von Mikrobefehlen in der
Überlagerung. In der Regel haben nämlich unterschiedliche Überlagerungen unterschiedliche
Längen.
2. Ein Feld VA, welches die Startadresse der Überlagerung im Mikroprogrammspeicher definiert.
Falls sich die Überlagerung nicht zufällig im Mikroprogrammspeicher befindet, wird dieses Feld
auf Null gesetzt.
3. Ein Feld VSA, welches die Startadresse der Hauptlcopie der Überlagerung im Hauptspeicher
definiert.
Ein derartiger Tabelleneintrag 20 für die Überlagerungskopien 15 und 16 ist in F i g. 1 dargestellt, in der
auch die Beziehung zwischen den Feldern VL, VA und VSA sowie den Überlagerungen 15 und 16 durch Pfeile
angezeigt ist.
Wenn das Programm der Einrichtung die Verwendung einer bestimmten Mikroprogrammüber'lagerung
vorschreibt, sendet es einen Rufbefehl aus, der dazu führt, daß eine (beschreibende) Information in ein
Descriptor-Register 21 eingegeben wird. Dieses Register besitzt
1. ein einziges Bit bzw. eine einzige Binärziffer VT, die den Überlagerungstyp definiert. Die Anzeige
VT=O steht für eine Benutzer-Überlagerung,
während der Wert VT = 1 eine System-Überlagerung anzeigt.
2. Ein Feld VTV, welches die Lage des Eintrags, der sich auf die geforderte Überlagerung bezieht,
innerhalb der Überlagerungstabelle wiedergibt.
Der Inhalt des Feldes VTV wird einer Vergleichseinrichtung
22 zugeführt, die diesen Inhalt mit der vom Register 19 stammenden Länge VTL der Überlagerungstabelle
vergleicht. Falls der Wert VTVgrößer ist als der Wert VTL, steht fest, daß ein Fehler vorliegen muß.
Aus diesem Grunde wird dann ein Unterbrechungssignal
auf der Leitung 23 erzeugt, um einen Zugang zu einem geeigneten Unterbrechungsprogramm im
Grundprogramm 13 zu schaffen. Falls jedoch VTV nicht größer als VTL ist, wird der Wert VTV einem Addierer 24
zugeführt, wo er dem Wert VTBA aus dem Register 18 hinzuaddiert wird, damit die Adresse des Eintrags in der
Tabelle 17 gebildet wird. Das Feld VA des Eintrags wird dann ausgelesen und zur Adressierung des Mikroprogrammspeichers
11 verwendet. Falls eine Kopie der geforderten Überlagerung tatsächlich gerade im Mikroprogramm
enthalten ist, bewirkt dies einen Sprung der Überlagerung im Speicher an die Ausgangsposition.
Falls jedoch die geforderte Überlagerung sich nicht im Mikroprogrammspeicher befindet, wird der Wert von
VA zu Null, so daß der Zugriff zum Mikroprogrammspeicher an seiner »Null-Adressenposition« erfolgt.
Diese Position enthält einen Sprungbefehl, der einen Sprung auf ein spezielles Überlagerungsprogramm
ergibt, welches sich im Grundprogramm 13 befindet, und welches die Übertragung einer Kopie der
geforderten Überlagerung von dem Hauptspeicher 10 in den Mikrospeichcr 11 steuert.
Wie in F i g. 2 dargestellt, gibt das Überlagerungsprogramm
Überlagerungen von dem Hauptspeicher in zwei Stapel 25 und 28 im MikroSpeicher, und zwar
entsprechend der jeweiligen Überlagerungsart. Überlagerungen in der Einrichtung werden in den Stapel 25,
der sich nach oben innerhalb des Mikroprogrammspeichers (d. h. in Richtung wachsender Adressenwerte) von
einer Basisadresse SB erstreckt, gegeben. Normalerweise entspricht diese Basisadresse der ersten freien
Adresse, die auf das Grundprogramm folgt Benutzer-Überlagerungen werden in den Stapel 26 eingebracht,
welcher sich nach unten im Mikroprogrammspeicher von einer Basisadresse UB erstreckt, die die obere
Begrenzung des Speichers sein kann. Werden nun den beiden Stapeln Überlagerungen hinzugefügt, so wachsen
sie aufeinander zu, bis sie sich schließlich treffen. Wenn dies der Fall ist, besitzt der Stapel 25 in der
System-Überlagerung Vorrang und kann den Stapel 26 für die Benutzer-Überlagerungen überschreiben, wie
dies im einzelnen noch beschrieben wird.
Das Überlagerungsprogramm benutzt einen Satz von Registern 27, die beispielsweise in den ersten Positionen
der Überlagerungstabelle 17 angeordnet sein können (F i g. 1). Diese Register enthalten die folgenden Werte:
UB — die Basisadresse des Stapels 26 für die Benutzer-Überlagerungen,
UP — eine Hinweisinformation auf die erste freie Adresse vor dem Stapel der Benutzer-Überlagerung,
SP — eine Hinweisinformation über die erste freie Adresse vor der ersten freien Stelle des Stapels
25 für die System-Überlagerung,
SB — die Basisadresse des Stapels für die System-Überlagerung,
ST — die Gesamtzahl der System-Überlagerungen in dem entsprechenden Stapel.
Die Beziehungen zwischen diesen Registern und den betreffenden Stellen im Mikroprogramtnspeicher sind
durch Pfeile in F i g. 2 angezeigt.
Die Inhalte der Register UP und SP werden in einer
Subtrahierschaltung 28 subtrahiert und um 1 erhöht, damit ein Wert X = UP- SP+ 1 erhalten wird, der ein
Maß für den Speicherraum darstellt, welcher zum Einschreiben weiterer Überlagerungen zwischen den
ersten freien Stellen der beiden Stapel 25 und 26 zur Verfügung steht.
Der erste Schritt des Überlagerungsprogramms besteht darin, den Inhalt des Feldes VT im Register 21
(Fig. 1) zu prüfen,um den Überlagerungstyp festzustellen.
Falls VT = 0, also eine Benutzer-Überlagerung angezeigt wird, wird der Teil des Überlagerungsprogramms,
wie in F i g. 3 gezeigt, durchgeführt, während
bei VT= 1, d.h. bei einer System-Überlagerung, der Teil des Überlagerungsprogramms, der in Fig.4
gezeigt ist, ausgeführt wird.
Wie in Fig.3 dargestellt, wird im Falle einer Benutzer-Überlagerung der Wert von VL des augen-
blicklichen Adresseneintrags in der Überlagerungstabelle 17 mit dem Wert X der Schaltung 28 verglichen
(Kästchen 30), um festzustellen, ob zwischen den ersten freien Stellen der Stapel im Mikroprogrammspeicher
genügend Platz vorhanden ist, um die neue Überlagerung aufzunehmen. Falls der Wert VL kleiner oder
gleich dem Wert X ist, kann die Überlagerung sofort in den Plätzen UP— VL+X bis UP des Mikroprogrammspeichers
gespeichert werden, so daß der Stapel für die Benutzer-Überlagerungen in Abwärtsrichtung zu-
nimmt. Zur gleichen Zeit wird auch die Überlagerungstabelle 17 auf den neusten Stand gebracht, und zwar
dadurch, daß die Startadresse UP— VL+\ der neuen Überlagerung in das Feld VA eingeschrieben wird.
Schließlich wird auch das Register UP durch Subtrahieren des Wertes VL vom Inhalt dieses Registers auf den
neusten Stand gebracht (Kästchen 32). Hierdurch wird das Überlagerungsprogramm für diesen Fall beendet.
Wird nun jedoch festgestellt, daß der Wert VL größer ist als der Wert X, wird die neue Überlagerung keinen
<*5 Platz in dem zur Verfügung stehenden Speicherraum
finden. Um Platz für die neue Überlagerung zu schaffen, werden sämtliche gerade im Stapel 26 befindlichen
Benutzer-Überlagerungen entfernt (Kästchen 33). Bei der Entfernung jeder einzelnen Überlagerung wird der
entsprechende Eintrag in der Tabelle 17 in der Weise auf den neuesten Stand gebracht, daß das Feld VA auf
Null gesetzt wird, um anzuzeigen, daß die Überlagerung nicht mehr im Mikroprogrammspeicher enthalten ist.
Die Hinweisinformation UP wird dann dadurch, daß sie gleich UB gesetzt wird, ebenfalls auf den neuesten Stand
gebracht (Kästchen 34). Anschließend wird der Wert VL nochmals mit dem Wert X verglichen (Kästchen 35).
Falls der Wert VL immer noch zu groß ist, obwohl sämtliche Benutzer-Überlagerungen entfernt wurden,
kann durch das Überlagerungsprogramm nichts mehr unternommen werden, und es wird ein Unterbrechungssignal erzeugt Wenn VL jedoch jetzt kleiner oder gleich
X ist, kann das Überlagerungsprogramm beendet werden, wie dies bereits beschrieben wurde (Kästchen
31 und 32).
Wie in Fig.4 gezeigt, wird im Falle einer
System-Überlagerung der Wert VL wiederum mit dem Wert X (Kästchen 40) verglichen, um festzustellen, ob
genügend Platz für diese Überlagerung vorhanden ist. Fall VL kleiner oder gleich X ist, kann die Überlagerung
augenblicklich in Positionen SP bis SP+ VL-\ des Mikroprogrammspeichers gebracht werden, so daß der
Stapel für die System-Überlagerungen nach oben wächst. Zur gleichen Zeit wird die Tabelle 17 durch
Einschreiben der Startadresse SP der neuen Überlagerung in das Feld VA auf den neuesten Stand gebracht.
Schließlich wird durch Hinzufügen des Wertes VL zu dem Wert des Registers SP auch dieses Register
berichtigt und der Wert S7(die Zahl der System-Überlagerungen im Stapel) wird um 1 vergrößert. Hiermit ist
das Überlagerungsprogramm für diesen Fall beendet.
Ist VL größer als X, paßt die neue System-Überlagerung
nicht in den vorhandenen Raum. Bei der gezeigten Ausführungsform hat jedoch der Stapel für die
System-Überlagerung Vorrang gegenüber dem Stapel für die Benutzer-Oberlagerungen, so daß sämtliche
Benutzer-Überlagerungen im Stapel 26 entfernt werden (Kästchen 34), um Platz für die neue System-Überlagerung
zu schaffen.
Beim Entfernen jeder Überlagerung wird ihr entsprechender Eintrag in der Tabelle 17 dadurch auf
den neuesten Stand gebracht, daß das Feld VA auf Null gesetzt wird. Die Hinweisinformation UP wird dann auf
den neuesten Stand gebracht (Kästchen 44), indem sie gleich t/ß gesetzt wird. Anschließend wird der Wert VL
abermals mit X verglichen (Kästchen 45). Falls VL trotz der Entfernung aller Benutzer-Überlagerungen immer
noch zu groß ist, wird ein Unterbrechungssignal erzeugt. Ist der Wert VL jedoch jetzt kleiner oder gleich X, so
kann das Überlagerungsprogramm wie vorher durchgeführt werden (Kästchen 41 und 42).
Aus vorstehender Beschreibung ergibt sich, daß Benutzer-Überlagerungen automatisch durch das Überlagerungsprogramm
entfernt werden, wenn der von diesen Überlagerungen eingenommene Raum entweder
für neue Benutzer-Überlagerungen oder neue System-Überlagerungen benötigt wird. System-Überlagerungen
können andererseits nur durch einen besonderen Befehl »Lösche System-Überlagerungen« entfernt werden,
wobei dieser Befehl ein entsprechendes Maschinenprogramm im Grundprogramm des Mikroprogramms
einleitet Jede gewünschte Anzahl von System-Überlagerungen kann auf diese Weise entfernt werden, und
zwar auf der Basis »letzte hinein, erste hinaus«, wobei die zu entfernende Zahl R durch den Befehl festgelegt
ist.
Fig. 5 zeigt ein Standard-Mikroprogramm zur Ausführung des Befehls »Lösche System-Überlagerungen«.
Der erste Schritt dieses Programms besteht in einem Vergleich (Kästchen 51) der Werte R (Anzahl der
zu entfernenden System-Überlagerungen) und ST (Anzahl der System-Überlagerungen im Mikroprogrammspeicher).
Falls R größer ist als ST, liegt sicherlich ein Fehler vor, und es wird ein entsprechendes
Unterbrechungssignal erzeugt Sonst besteht der nächste Schritt darin, zu überprüfen, ob R gleich Null ist
(Kästchen 52). Falls R nicht gleich Null ist, wird im
nächsten Schritt (Kästchen 53) eine System-Überlagerung von der ersten freien Stelle des Stapels 25 entfernt
und der entsprechende Eintrag in der Oberlagerungstabelle 17 dadurch berichtigt, daß das Feld VA nach Null
gesetzt wird. Anschließend werden die Register 27 auf den neuesten Stand gebracht (Kästchen 54), indem die
Länge VL der entfernten Überlagerung von SP subtrahiert und der Wert STuin 1 verringert wird. Der
Wert von R wird ebenfalls um 1 verringert Anschließend erfolgt eine Rückführung zum Kästchen 52, um zu
überprüfen, ob R nunmehr Null ist. 1st dies der Fall, ist die erforderliche Anzahl von System-Überlagerungen
entfernt und das Programm ist beendet. Falls R nicht gleich Null ist, wird die Schleife 53, 54, 52 so lange
wiederholt, bis R schließlich den Wert Null erreicht hat.
Es können Vorkehrungen getroffen sein, um die Basisadresse SB zu verändern, und zwar aufgrund eines
geeigneten Befehls, damit ein oder mehrere System-Überlagerungen zeitweise so behandelt werden, als
seien sie Teil des Grundprogramms (z. B. werden sie daran gehindert, daß sie aus dem Stapel entfernt
werden). Wenn die Basisadresse SB geändert wird, muß auch der Wert von S!Tgeändert werden.
In F i g. 6 ist eine Abänderung der vorbeschriebenen
Einrichtung dargestellt, wobei eine dritte Kategorie von
Überlagerungen vorgesehen ist. Diese dritte Kategorie kann beispielsweise Umstellungs-Überlagerungen aufweisen,
die z. B. zur Nachbildung einer anderen Maschine mit unterschiedlichem Befehlscode und
unterschiedlichem Systemaufbau dienen und die vorstehend als Teil der System-Überlagerungen betrachtet
wurden. Bei der in F i g. 6 gezeigten Abwandlung der Erfindung werden diese Überlagerungen in einen
dritten Stapel 61 im Mikroprogrammspeicher eingeschrieben, wobei der Stapel von der Basisadresse EB
ausgeht, die über der Basisadresse UB des Stapels für die Benutzer-Überlagerungen liegt, und nach unten
gegen die anderen beiden Stapel zunimmt. Vorzugsweise besitzt der Stapel 61 gegenüber dem Stapel 26 und
auch gegenüber dem Stapel 25 Vorrang, so daß er die beiden anderen Stapel überschreiben kann. Es wird
jedoch nicht zugelassen, daß der Stapel 61 das Grundprogramm oder aber System-Überlagerungen,
die vorübergehend wie zum Grundprogramm gehörig behandelt werden, unterhalb der Adresse SB überschreiben
kann.
Im Satz 27 sind zwei zusätzliche Register vorgesehen,
um die Basisadresse EB des Stapels 61 sowie eine Hinweisadresse EP auf der ersten freien Stelle des
Stapels 61 zu halten. Der Descriptor im Register 21 (Fig. 1) muß bei dieser Ausführungsform ein Feld VT
mit zwei Binärstellen haben, um drei unterschiedliche Überlagerungstypen identifizieren zu können, wobei
das Überlagerungsprogramm so erweitert werden muß, daß es das Füllen des dritten Stapels mit den
Umstellungsüberlagerungen ausführen kann. Weiterhin muß ein Löschprogramm ähnlich dem nach Fig.5
vorgesehen werden, um die dem Stapel 61 zugeordneten Umstellungs-Überlagerungen zu löschen.
Bei einer weiteren Abwandlung der vorbeschriebenen Einrichtung sind zwei getrennte Datenverarbeitungseinheiten
mit einem gemeinsamen Mikroprogrammspeicher 11 vorhanden, wobei jede Datenverarbeitungseinheit
einem bestimmten Bereich des Mikroprogrammspeichers zugeordnet ist, in welchem das
Mikroprogramm für diese Einheit gespeichert wird. Beide Datenverarbeitungseinheiten haben auch den
Hauptspeicher gemeinsam. In diesem Fall ist die Überlagerungstabelle 17 erweitert, so daß jeder Eintrag
nunmehr einen Satz von Feldern VL, VA, VSA für eine Überlagerung, die sich auf die eine Datenverarbeitungseinheit bezieht, und außerdem einen gleichartigen Satz
von Feldern für eine Oberlagerung, die sich auf die andere Datenverarbeitungseinheit bezieht, enthält
Weiterhin müssen zwei Sätze von Registern 27 vorgesehen werden, und zwar jeweils ein Satz für jede
Datenverarbeitungseinheit
Obwohl vorliegende Erfindung im Zusammenhang mit der Überlagerung von Mikroprogrammen in einem
Mikroprogrammspeicher beschrieben wurde, ist sie allgemein überall dort anwendbar, wo Informationen
zweier oder mehrerer Kategorien in einen Speicher eingeschrieben werden.
Hierzu 3 Blatt Zeichnungen
Claims (1)
- Patentanspruch:Datenverarbeitungseinrichtung mit einem Hauptspeicher, der Informationsblöcke zweier unterschiedlicher Kategorien aufnimmt, einem verhältnismäßig kleinen, schnellen Speicher und einer Vorrichtung, die bei Bedarf Informationsblöcke vom Hauptspeicher zum schnellen Speicher überträgt, gekennzeichnet durch die Kombination folgender Merkmale:a) ein erstes Hinweisregister (UP) nimmt die der letzten Adresse eines ersten Informationsstapels (26) im schnellen Speicher (11) vorhergehende Adresse auf, wobei der erste Informationsstapel an der höchsten Adresse im schnellen Speicher beginnend angeordnet ist,b) ein zweites Hinweisregister (SP) nimmt die der letzten Adresse eines zweiten Informationsstapels (25) im schnellen Speicher (11) folgende Adresse auf, wobei der zweite Informationsstapel an der niedrigsten Adresse im schnellen Speicher beginnend angeordnet ist,c) eine Subtrahierschaltung (28) subtrahieit den Inhalt der Hinweisregister (UP, SP), so daß die Menge an freiem Speicherraum (X), die zwischen den beiden Informationsstapeln (25, 26) zur Verfügung steht, berechnet wird,d) jeder Informationsblock besitzt einen ihm zugeordneten Code (VT), der angibt, welcher der beiden Kategorien die Information zugehört, sowie einen weiteren Code (VL), der die Größe des Blocks darstellt,e) wenn ein Informationsblock von dem Hauptspeicher (10) auf den schnellen Speicher (11) übertragen werden soll, wirdel) falls der Code (VT) anzeigt, daß die Information der ersten Kategorie angehört, und die Subtrahierschaltung (28) anzeigt, daß der freie Raum (X) groß genug ist, um den Block aufzunehmen, der Block an die Stelle des schnellen Speichers (11) übertragen, die durch den Inhalt des ersten Hinweisregisters (UP) bestimmt ist, und der Inhalt des ersten Hinweisregisters (UP) wird dann um einen Betrag verringert, der der Größe (VL) des übertragenen Blockes entspricht, unde2) falls der Code (VT) anzeigt, daß die Information der zweiten Kategorie zugehört, und die Subtrahierschaltung (28) anzeigt, daß der freie Raum (X) groß genug ist, um den Block aufzunehmen, der Block an die Stelle des schnellen Speichers übertragen, die durch den Inhalt des zweiten Hinweisregisters (SP) bestimmt ist und der Inhalt des zweiten Hinweisregisters (SP) wird dann um einen Betrag erhöht, der άιτ Größe (VL) des übertragenen Blockes entspricht.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB3421573A GB1441816A (en) | 1973-07-18 | 1973-07-18 | Electronic digital data processing systems |
Publications (3)
Publication Number | Publication Date |
---|---|
DE2431379A1 DE2431379A1 (de) | 1975-02-06 |
DE2431379B2 true DE2431379B2 (de) | 1980-02-14 |
DE2431379C3 DE2431379C3 (de) | 1980-10-09 |
Family
ID=10362830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2431379A Expired DE2431379C3 (de) | 1973-07-18 | 1974-06-29 | Datenverarbeitungseinrichtung |
Country Status (7)
Country | Link |
---|---|
US (1) | US3924245A (de) |
JP (1) | JPS5612902B2 (de) |
DE (1) | DE2431379C3 (de) |
FR (1) | FR2238188B1 (de) |
GB (1) | GB1441816A (de) |
IN (1) | IN140930B (de) |
PL (1) | PL115020B1 (de) |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4369494A (en) * | 1974-12-09 | 1983-01-18 | Compagnie Honeywell Bull | Apparatus and method for providing synchronization between processes and events occurring at different times in a data processing system |
SE414087B (sv) * | 1977-02-28 | 1980-07-07 | Ellemtel Utvecklings Ab | Anordning i ett datorsystem vid utsendning av signaler fran en processor till en eller flera andra processorer varvid prioriterade signaler sends direkt utan tidsfordrojning och oprioriterade signalers ordningsfoljd ... |
US4251861A (en) * | 1978-10-27 | 1981-02-17 | Mago Gyula A | Cellular network of processors |
US4358862A (en) * | 1979-01-22 | 1982-11-16 | Thermasol, Ltd. | Connector assembly for whirlpool system |
US4445170A (en) * | 1981-03-19 | 1984-04-24 | Zilog, Inc. | Computer segmented memory management technique wherein two expandable memory portions are contained within a single segment |
US4872109A (en) * | 1983-09-29 | 1989-10-03 | Tandem Computers Incorporated | Enhanced CPU return address stack |
US4852127A (en) * | 1985-03-22 | 1989-07-25 | American Telephone And Telegraph Company, At&T Bell Laboratories | Universal protocol data receiver |
CA1270338A (en) * | 1985-09-11 | 1990-06-12 | Akihiko Hoshino | Data processing system for processing units having different throughputs |
JPS6394337A (ja) * | 1986-10-09 | 1988-04-25 | Hitachi Ltd | 論理型デ−タ処理装置 |
US4914653A (en) * | 1986-12-22 | 1990-04-03 | American Telephone And Telegraph Company | Inter-processor communication protocol |
US4899307A (en) * | 1987-04-10 | 1990-02-06 | Tandem Computers Incorporated | Stack with unary encoded stack pointer |
US4807111A (en) * | 1987-06-19 | 1989-02-21 | International Business Machines Corporation | Dynamic queueing method |
US5327542A (en) * | 1987-09-30 | 1994-07-05 | Mitsubishi Denki Kabushiki Kaisha | Data processor implementing a two's complement addressing technique |
JPH0769812B2 (ja) * | 1987-12-29 | 1995-07-31 | 富士通株式会社 | データ処理装置 |
JPH01197895A (ja) * | 1988-02-03 | 1989-08-09 | Toshiba Corp | 携帯可能電子装置のメモリ登録方式 |
US5027330A (en) * | 1988-12-30 | 1991-06-25 | At&T Bell Laboratories | FIFO memory arrangement including a memory location fill indication |
US5440749A (en) * | 1989-08-03 | 1995-08-08 | Nanotronics Corporation | High performance, low cost microprocessor architecture |
US5414826A (en) * | 1990-01-31 | 1995-05-09 | Hewlett-Packard Company | System and method for memory management in microcomputer |
JP2703417B2 (ja) * | 1991-04-05 | 1998-01-26 | 富士通株式会社 | 受信バッファ |
US5857088A (en) * | 1991-10-24 | 1999-01-05 | Intel Corporation | System for configuring memory space for storing single decoder table, reconfiguring same space for storing plurality of decoder tables, and selecting one configuration based on encoding scheme |
EP0572696A1 (de) * | 1992-06-03 | 1993-12-08 | International Business Machines Corporation | Speicherplatzverwaltung für eine Vielzahl von Speicherplatzanforderungen in einem Arbeitsspeicher eines Computers |
US5381528A (en) * | 1992-10-15 | 1995-01-10 | Maxtor Corporation | Demand allocation of read/write buffer partitions favoring sequential read cache |
US5566321A (en) * | 1993-12-13 | 1996-10-15 | Cray Research, Inc. | Method of managing distributed memory within a massively parallel processing system |
JPH07175698A (ja) * | 1993-12-17 | 1995-07-14 | Fujitsu Ltd | ファイルシステム |
US5588126A (en) * | 1993-12-30 | 1996-12-24 | Intel Corporation | Methods and apparatus for fordwarding buffered store data on an out-of-order execution computer system |
US5673396A (en) * | 1994-12-16 | 1997-09-30 | Motorola, Inc. | Adjustable depth/width FIFO buffer for variable width data transfers |
GB2297399B (en) * | 1995-01-18 | 1999-11-03 | Nokia Mobile Phones Ltd | Electronic data storage |
US5805930A (en) * | 1995-05-15 | 1998-09-08 | Nvidia Corporation | System for FIFO informing the availability of stages to store commands which include data and virtual address sent directly from application programs |
US6112019A (en) * | 1995-06-12 | 2000-08-29 | Georgia Tech Research Corp. | Distributed instruction queue |
JP2850808B2 (ja) * | 1995-10-31 | 1999-01-27 | 日本電気株式会社 | データ処理装置およびデータ処理方法 |
US6038643A (en) * | 1996-01-24 | 2000-03-14 | Sun Microsystems, Inc. | Stack management unit and method for a processor having a stack |
KR100584964B1 (ko) * | 1996-01-24 | 2006-05-29 | 선 마이크로시스템즈 인코퍼레이티드 | 스택 메모리 구조에서의 캐싱 장치 |
US5907717A (en) * | 1996-02-23 | 1999-05-25 | Lsi Logic Corporation | Cross-connected memory system for allocating pool buffers in each frame buffer and providing addresses thereof |
US6167488A (en) * | 1997-03-31 | 2000-12-26 | Sun Microsystems, Inc. | Stack caching circuit with overflow/underflow unit |
US6289418B1 (en) | 1997-03-31 | 2001-09-11 | Sun Microsystems, Inc. | Address pipelined stack caching method |
US6131144A (en) * | 1997-04-01 | 2000-10-10 | Sun Microsystems, Inc. | Stack caching method with overflow/underflow control using pointers |
US5903899A (en) * | 1997-04-23 | 1999-05-11 | Sun Microsystems, Inc. | System and method for assisting exact Garbage collection by segregating the contents of a stack into sub stacks |
US6092152A (en) * | 1997-06-23 | 2000-07-18 | Sun Microsystems, Inc. | Method for stack-caching method frames |
US6138210A (en) * | 1997-06-23 | 2000-10-24 | Sun Microsystems, Inc. | Multi-stack memory architecture |
US6067602A (en) * | 1997-06-23 | 2000-05-23 | Sun Microsystems, Inc. | Multi-stack-caching memory architecture |
US6058457A (en) * | 1997-06-23 | 2000-05-02 | Sun Microsystems, Inc. | Method for storing method frames in multiple stacks |
US6237086B1 (en) | 1998-04-22 | 2001-05-22 | Sun Microsystems, Inc. | 1 Method to prevent pipeline stalls in superscalar stack based computing systems |
US6170050B1 (en) | 1998-04-22 | 2001-01-02 | Sun Microsystems, Inc. | Length decoder for variable length data |
US6275903B1 (en) | 1998-04-22 | 2001-08-14 | Sun Microsystems, Inc. | Stack cache miss handling |
US6108768A (en) * | 1998-04-22 | 2000-08-22 | Sun Microsystems, Inc. | Reissue logic for individually reissuing instructions trapped in a multiissue stack based computing system |
US6374314B1 (en) * | 1998-09-28 | 2002-04-16 | Raytheon Company | Method for managing storage of data by storing buffer pointers of data comprising a sequence of frames in a memory location different from a memory location for pointers of data not comprising a sequence of frames |
US6266702B1 (en) | 1998-09-28 | 2001-07-24 | Raytheon Company | Method and apparatus to insert and extract data from a plurality of slots of data frames by using access table to identify network nodes and their slots for insertion and extraction data |
US6381647B1 (en) | 1998-09-28 | 2002-04-30 | Raytheon Company | Method and system for scheduling network communication |
US6317415B1 (en) | 1998-09-28 | 2001-11-13 | Raytheon Company | Method and system for communicating information in a network |
US6912716B1 (en) * | 1999-11-05 | 2005-06-28 | Agere Systems Inc. | Maximized data space in shared memory between processors |
FR2818770A1 (fr) * | 2000-12-21 | 2002-06-28 | Bull Cp8 | Procede de gestion optimisee de l'allocation de memoire d'un systeme embarque et systeme embarque correspondant |
US7363475B2 (en) * | 2004-04-19 | 2008-04-22 | Via Technologies, Inc. | Managing registers in a processor to emulate a portion of a stack |
JP2006113648A (ja) * | 2004-10-12 | 2006-04-27 | Hitachi Ltd | ディスクアレイ装置 |
US7797505B2 (en) * | 2005-04-25 | 2010-09-14 | Hewlett-Packard Development Company, L.P. | Program stack handling |
JP4808016B2 (ja) * | 2005-12-20 | 2011-11-02 | 日立オートモティブシステムズ株式会社 | マイクロコンピュータの初期化装置および車載用制御装置 |
US8209526B2 (en) * | 2008-09-30 | 2012-06-26 | General Electric Company | Method and systems for restarting a flight control system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3461434A (en) * | 1967-10-02 | 1969-08-12 | Burroughs Corp | Stack mechanism having multiple display registers |
BE758027R (fr) * | 1970-02-16 | 1971-04-26 | Burroughs Corp | Circuit de manipulation d'adresses pour un calculateur |
US3868644A (en) * | 1973-06-26 | 1975-02-25 | Ibm | Stack mechanism for a data processor |
-
1973
- 1973-07-18 GB GB3421573A patent/GB1441816A/en not_active Expired
-
1974
- 1974-06-29 DE DE2431379A patent/DE2431379C3/de not_active Expired
- 1974-07-15 IN IN1574/CAL/74A patent/IN140930B/en unknown
- 1974-07-16 FR FR7424736A patent/FR2238188B1/fr not_active Expired
- 1974-07-16 PL PL1974172789A patent/PL115020B1/pl unknown
- 1974-07-16 US US488907A patent/US3924245A/en not_active Expired - Lifetime
- 1974-07-17 JP JP8210474A patent/JPS5612902B2/ja not_active Expired
Also Published As
Publication number | Publication date |
---|---|
US3924245A (en) | 1975-12-02 |
JPS5612902B2 (de) | 1981-03-25 |
FR2238188B1 (de) | 1982-11-26 |
JPS5043844A (de) | 1975-04-19 |
GB1441816A (en) | 1976-07-07 |
DE2431379A1 (de) | 1975-02-06 |
DE2431379C3 (de) | 1980-10-09 |
PL115020B1 (en) | 1981-03-31 |
IN140930B (de) | 1977-01-01 |
FR2238188A1 (de) | 1975-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2431379B2 (de) | Datenverarbeitungseinrichtung | |
DE2656123C3 (de) | Eingabeeinrichtung zum Zufuhren einer Vielzahl von Zeichen, die ein Datenfeld bilden | |
DE1499182C3 (de) | Datenspeichersystem | |
DE3780208T2 (de) | Textverarbeitungsapparat zur verarbeitung von texten gemaess verschiedenen ausgewaehlten textformaten. | |
DE2331589A1 (de) | Datenverarbeitungsanordnung | |
DE1181461B (de) | Adressenaddierwerk einer programm-gesteuerten Rechenmaschine | |
DE3802706A1 (de) | Drucksteuervorrichtung zum steuern des benutzungszustandes von mehrfachen formatbloecken | |
DE2410491A1 (de) | Datenverarbeitungsanlage | |
DE1774870C3 (de) | Einrichtung zur Adressierung einer Speicherzelle eines Speichers in einer Datenverarbeitungsanlage | |
DE2718110A1 (de) | Datenverarbeitungseinheit | |
DE2149200C3 (de) | Einrichtung zur Auswahl von im Verlauf einer Programmbearbeitung am häufigsten benötigten Daten | |
DE2458286A1 (de) | Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen | |
DE2233193C3 (de) | Stapel-Speichersystem | |
DE3789912T2 (de) | System und Verfahren zur Bildverarbeitung. | |
DE2558417A1 (de) | Datenverarbeitungssystem | |
EP0360135A1 (de) | Verfahren zur Interruptverarbeitung in einer Datentverarbeitungsanlage | |
DE1267886B (de) | Datenbearbeitungsanlage | |
DE1774421B1 (de) | Mehrprogramm datenverarbeitungsanlage | |
EP1204917B1 (de) | Operandenstapelspeicher und verfahren zum betreiben eines operandenstapelspeichers | |
DE1222289B (de) | Datenverarbeitungseinrichtung | |
DE2331394B1 (de) | Datenverarbeitungsanlage mit virtueller adressierung | |
DE2717244C2 (de) | ||
DE2642251A1 (de) | Steuerungseinrichtung und betriebsverfahren fuer eine rechnergefuehrte steuerung bei einer numerisch gesteuerten maschine, beispielsweise einer werkzeugmaschine | |
WO1998049622A1 (de) | Chipkarte mit speicherzugriffsmaximierung und protokollierung | |
DE3016952C2 (de) | Schaltungsanordnung zum Erweitern des Adressbereichs eines rechnergesteuerten Vermittlungssystems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
8339 | Ceased/non-payment of the annual fee |