DE2431379B2 - Datenverarbeitungseinrichtung - Google Patents

Datenverarbeitungseinrichtung

Info

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
Application number
DE2431379A
Other languages
English (en)
Other versions
DE2431379A1 (de
DE2431379C3 (de
Inventor
Philip Ronald Brady
John Richard Eaton
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Services Ltd
Original Assignee
Fujitsu Services Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Services Ltd filed Critical Fujitsu Services Ltd
Publication of DE2431379A1 publication Critical patent/DE2431379A1/de
Publication of DE2431379B2 publication Critical patent/DE2431379B2/de
Application granted granted Critical
Publication of DE2431379C3 publication Critical patent/DE2431379C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User 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)

  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, wird
    el) 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, und
    e2) 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.
DE2431379A 1973-07-18 1974-06-29 Datenverarbeitungseinrichtung Expired DE2431379C3 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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