DE2350884C2 - Adreßumsetzungseinheit - Google Patents

Adreßumsetzungseinheit

Info

Publication number
DE2350884C2
DE2350884C2 DE2350884A DE2350884A DE2350884C2 DE 2350884 C2 DE2350884 C2 DE 2350884C2 DE 2350884 A DE2350884 A DE 2350884A DE 2350884 A DE2350884 A DE 2350884A DE 2350884 C2 DE2350884 C2 DE 2350884C2
Authority
DE
Germany
Prior art keywords
address
page
virtual
physical
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE2350884A
Other languages
English (en)
Other versions
DE2350884A1 (de
Inventor
Robert C. Cambridge Mass. Gray
H.A. Wilnes Van de Goor
Larry P. Acton Mass. Wade
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of DE2350884A1 publication Critical patent/DE2350884A1/de
Priority to CH1314174A priority Critical patent/CH583406A5/de
Application granted granted Critical
Publication of DE2350884C2 publication Critical patent/DE2350884C2/de
Expired legal-status Critical Current

Links

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/652Page size control

Description

Die Erfindung betrifft eine Adreßumsetzungseinheit entsprechend dem Oberbegriff des Patentanspruchs 1.
Speicher mit wahlfreiem Zugriff speichern Befehle und Daten die Programmen einer zentralen Recheneinheit zugeordnet sind. Die zentrale Recheneinheit führt Befehle der Reihe nach durch und benutzt die Daten, um andere Daten zu erzeugen, die sie dann In dem Speicher speichern kann. Jeder Speicherplatz in dem Speicher !st gekennzeichnet durch eine eindeutige physikalische Adresse, welche vorgesehen sein muß, um Daten oder Befehle aus dem Speicher zu erhalten oder um Daten oder Befehle In dem Speicher zu speichern.
In Standard-Datenverarbeitungssystemen erzeugt die zentrale Recheneinheit eine Zahl, welche die physikalische Adresse lsi. Diese Zahl kann eine bestimmte oder Implizit physikalisch vorhandene Adresse sein. Implizitvorhandene physikalische Adressen werden durch bekannte Indexlcrungs-, direkte oder vcrziiycrte Adrcsslerungsverfahren erzeugt.
Moderne Datenver.irbeitungssysteme sind oft für eine Anzahl von Benutzern zugänglich und in derartigen Fällen arbeiten sie in einem Betrieb mit Vielfachprogrammierung. Um eine maximale Erleichterung zu schaffe», hat jeder Benutzer eine »virtuelle« Maschine. Die einzelnen Programmierer schreiben ihr Programm so, als ob es für sich durchlaufen würde; das Programm kann folglich alle Systemhilfsquellen verwenden. Dat System ermöglicht den Service, der notwendig ist» um das Programm zu unterstützen und es im Betrieb mit anderen Programmen zu koordinieren. Diese physikalisch vorhandene Hardware in dem System wird mit einem Organisationsprogramm verknüpft, um eine leistungsfähigere Hardware-Einrichtung zu simulieren, für welche die Programme geschrieben sind. Mit dieser Art von Vielfachpfogrammverarbeitung hat jeder Benutzer in jeder Hinsicht sein eigenes, ihm zur Verfügung gestelltes Rechnersystem.
Moderne Datenverarbeitungssysteme verarbeiten auch im sogenannten Teilnehmer-Verfahren zwei oder mehr Programme. Obwohl Befehle in jedem Programm nacheinander tatsächlich ausgeführt werden, bestimmt ein Organisationssteuerprogramm, wieviel von einem einzelnen Programm zu einer bestimmten Zeit ausgeführt wird. Die zentrale Recheneinheit scheint dann auf mehreren Programmen gleichzeitig zu arbeiten. Das Teilnehmer-Verfahren enthält somit auch die Vielfachprogrammverarbeitung.
Die Vielfachprogrammverarbeitung führt zu einer Adressierungsschwierigkeit. Der Programmierer oder das Organisationsprogramm müssen sicher sein, daß Adressen In einem Programm nicht in Widerspruch stehen zu physikalischen Adressen in einem anderen Programm. Herkömmliche, physikalische Adresslerbegriffe sind daher schwierig auszuführen.
Datenverarbeitungssysteme mit Vieifachprogrammverarbeitung verwenden daher eine »virtuelle Adressierung«. Bei einer virtuellen Adresi.';<-ung schreibt ein Programmlerer sein Programm, als ob das Programm für sich selbst in einer eigenen oder einer virtuellen Maschine durchläuft. Verschiedene Programme können sich daher auf dieselbe virtuelle Adresse beziehen, dies sind aber verschiedene physikalische Adressen.
In höher entwickelten Systemen werden Programme auch in Hilfs- oder Ergänzungsspeichereinrichtungen gespeichert. Wenn das Organisationsprogramm einen Bedarf an einem speziellen, besonderen Programm feststellt, geht es in den Speicher an einen ersten Satz oder eine erste Gruppe von physikalischen Daten. Danach kehrt das Programm wieder zu der HlIFs- bzw. Ergänz'ingsspelcherelnhelt zurück. Zu einem späteren Zeltpunkt kann es abgerufen, aber in einer anderen Gruppe von physikalischen Adressen gespeichert werden. Die virtuellen Programmadressen ändern sich jedoch nicht.
Eine zentrale Recheneinheit muß daher virtuelle Adressen in physikalische Adressen umsetzen. Hierbei 1st es äußerst wichtig und in der Praxis unerläßlich, daß die zentrale Recheneinheit verschiedene Einrichtungen enthält, um sicherzustellen, daß die Umsetzungen richtig durchgeführt werden, so daß eine virtuelle Adresse in einem Programm sich nur auf Ihre entsprechende physikalische Adresse und nicht auf irgendeine andere physikalische Adresse bezieht, welche derselben virtuellen Adresse in einem anderen Programm entspricht.
Um den Transfer von Programmen und Daten zwischen Speichern zu vereinfachen, weisen bekannte üalcnverarbellungssyslcmc Einrichtungen auf, um entweder den Dirckt/.ugrHTspcleher oder derartige Hilfs-
bzw. Ergänzungsspeicher In. Form von Magnetplattenoder Magnettrommelspeichern zu segmentieren. Grundsätzlich unterteilen diese Systeme eine Speichereinheit beliebig in sogenannte »Seiten«. Jede Seite hat eine feste Länge; d. h., die Anzahl Speicherstellen In einer Seite ändert sich nicht von Seite zu Seite. Da die Platzausnutzung in einem Speicher ein wichtiger Gesichtspunkt ist, muß die Seitenlange in einem Sy.u-m mit seitenfester Länge sorgfältig ausgewählt wenden. Wenn die Seiten zu lang sind, befindet sich ein kurzes Programm an nur wenigen Stellen, so daß die restlichen Stellen nicht verwendet werden. Andererseits beeinflussen die Transferzeiten zwischen den Hilfs- und Hauptspeichern ganz wesentlich die Zeit, ate zur Durchführung eines Programms erforderlich ist. Wenn kurze Seitenlangen verwendet werden, um die Speicherausnutzung zu erhöhen, dann kann ein einziges Programm verschiedene Seiten belegen und verschiedene Übertragungen erfordern, wodurch die Arbeitsgeschwindigkeit verlangsamt wird.
Bei -bekannten DatenverarbeUungssystemen ist die Speicherplatzausnutzung in Hilfs- bzw. Ergärt'.ungsspeicherefnrichtungen, die Magnetplatten- und Magnettrommeleinheiien, aber nicht in einem Hauptspeicher bis zum äußersten ausgenutzt. Bei einer solchen Ausführungsform ist die Hilfsspeichereinrichtung in eine Anzahl sehr kleiner Seiten aufgeteilt, und es kann ein einziges Programm auf einer Anzahl aufeinanderfolgender Seiten gespeichert werden. Wenn die zentrale Recheneinheit das Programm braucht, überträgt sie es in eine erste Seite. Die Seitengröße ist so gewählt, daß die zentrale Recheneinheit alle Befehle auf der Seite ausführen kann, bevor die nächste Seite ffir einen Transfer zur Verfügung steht. Die zentrale Recheneinheit kann dann entweder die nachfolgenden Seiten ausführen oder umgehen. In diesem System wirkt ein Organisationsprogramm, wenn eine Seite nicht hintereinander gerufen wird, auf ein anderes Programm zurück, indem die zentrale Recheneinheit Hilfsquellen verschiebt. Bei dieser Ausführungsform wird i.'jcT für die Übertragungen viel Betriebszeit verbraucht, da jede kurze Seite einen gesonderten Transfer erfordert.
Bei bekannten, mit virtueller Adressierung arbeitenden Speicheranlagen (IBM-Systems Journal 1966, S. 78-101) sind Übersetzungstabellen vorgesehen, die die virtueile Adresse in die physikalische Adresse umsetzen. Dabei ist die virtuelle Adresse in zwei Teile unterteilt, nämlich in eine virtuelle Blockadresse. und eine Adresse innerhalb des Blocks. Die virtuelle Blockadresse dient zur Identifizierung eines Blocks in üem Speicher, und das System so bestimmt eine physikalische Blockadresse, die der virtuellen Bloci.adresse zugeoranet werden soll. Die Adresse innerhalb des Blocks wird dann mit der physikalischen Blockadresse verkettet, um die physikalische Adresse zu bilden. Bei diesem System wird noch als nachteilig angesehen, daß für jede Bezugsangabe eine Übersetzungslabelle erforderlich Ist. Dafür wird Zeit benötigt, weil die Tabelle In dem Speicher beibehalten wird. Deshalb sind auch allein zum Übersetzen der Adresse Speicher-Referenzen erforderlich. F-'erner ist es erforderlich, daß eine lungere virtuelle Adresse in eine kürzere physikalische Adresse umgewandelt wird.
Hs ist deshalb Aufgabe der Erfindung, eine Adreßumscizungscinheit der eingangs genannten Art zum Umsetzen von virtuellen Adressen in physikalische Adressen derart zu verbessern, daß die bei einer Durchführung von Programmen in einem 'Jatenverarbeitungssystem mit Viclfuchprogrammierung erforderliche Zeit verringert werden kann, und daß eine verbesserte Raumausnutzung für die in dem Speicher gespeicherten Programme möglich iat.
Diese Aufgabe wird bei einer Adreßumsetzungseinheit der eingangs genannten Art erfindungsgemäß durch die kennzeichnenden Merkmale des Patentanspruchs 1 gelöst. Vorteilhafte Weiterbildungen der Erfindung sind Gegenstand der Unteransprüche.
Wenn die zentrale Recheneinheit ein vorgegebenes Programm ausführt, setzt sie die virtuellen Adressen in dem Programm in die entsprechenden physikalischen Adressen um. Auch ordnet sie Blöcke oder Speicherseiten zur Speicherung des Programmes zu und bestimmt im einzelnen die Länge der Seite, so daß jede Seitenlänge für das Programm, das sie enthält, optimal ausgelegt ist. Auf diese Weise kann das Datenverarbeitungssystem arbeiten, so daß jede Seitenlänge für das Programm, das sie enthält, optimal ausgelegt ist. Auf diese Weise kann das Datenverarbeitungssystem auch arbeiten, indem es eine volle Seite während einer einzigen Transferoperation überträgt. Die Transferzeiten könn«. auf diese Weise erheblich vermindert werden. Andererseits ist die Anzahl der nicht benutzten Speicherstellen auf einer vorgegebenen Seite auf ein Minimum zurückgeführt, so daß die Speicherplatzausnutzung verbessert ist.
Anhand der Zeichnung soll die Erfindung näher erläutert werden. Es zeigt
Fig. 1 ein Blockschaltbild eines Datenverarbeitungssystems;
Fig. 2 ein Blockschallbild der in Fig. i enthaltenen Einheit zur Umwandlung virtueller Adressen in physikalische Adressen;
Fig. 3 eine grafische Darstellung eines Seitenadressenregisters und eines Seiten-Deskriptorregisters, die in der in Fig. 2 dargestellten Schältung verwendet sind;
Fig.4 ein Ablaufdiagramm, in welchem die Schritte einer Adressenumsetzung dargestellt sind; und
Flg. 5 ein Ablaufdiagramm, in welchem der zeitliche Ablauf in der in Fig. 2 dargestellten Schaltung wiedergegeben ist.
In Fig. I sind eine zentrale Recheneinheit 10, ein Magnetkernspeicher 11, ein Magnetplattenspeicher 12 und andere periphere Einrichtungen 13 parallel an eine Busleitung 14 geschaltet. Der Magnetkernspeicher 11 ist ein Arbeitsspeicher für die zentrale Recheneinheit 10.
Die zentrale Recheneinheit 10 kann unter Steuerung eines Organisationsprogramms zwei oder mehr In der Speichereinheit 11 gespeicherte Anwenderprogramme ausführen und ferner erforderlichenfalls Programme zwischen dem Magnetkernspeicher 11 und dem Magnetplattenspeicher 12 verschieben, um eine wirksame Verarbeitung der verschiedenen Anwenderprogramme üu fördern. Jedes Programm kann für seine Ausführung erforderlichenfalls irgendeine Systemhilfsquelle benutzen. Eine Einheit 15 zur Umwandlung vlrfjelier Adressen in physikalische Adressen Ist an die zentrafe Recheneinheit 10 und an Adressenleiter in der Busleitung 14 angeschlossen ist.
Die Einheit 15 erhält von einem Bus-Adressen-Multlplexer in der zentralen Recheneinheit 10 eine virtuelle Adresse über einer. Virtuell-Adressen-Bus J 7. Eine Busleitung 20 erhält Daten von einem iniernen BR-Reglster 21, welches Daten von mehreren Quellen In der zentralen Recheneinheit 10 erhalten kann. Eine weitere Busleitung 22 schaff, einen Datenweg von der Einheit 15 zu einem internen Datenregister (INTD) 23. Steuersignale gelangen von einer Steuereinheil 24 in der zentralen Recheneinheit 10 über eine Steuerleitung 25 zu der
Einheit 15.
Die Zahl der Speichersiellen, welche die zentrale Recheneinheit 10 unmittelbar adressieren kann, wird von der Biianzahl in einer Adresse gesteuert. Wenn beispielsweise eine Adresse 16 Bits enthält, können nur 216 Worte direkt adressiert werden. Bei einer Vielfachprogammlerung kann jedoch die Speichereinheit 2" Speicherstellen und mehr erfordern. Die Einheit 15 übersetzt die virtuelle Adresse In eine physikalische Adresse und expandiert diese: d. h. sie übersetzt eine virtuelle 16-Bit- to Adresse in eine eindeutige physikalische 18-Blt-Adresse In dem Magnetkernspeicher 11. Die zur Adressenübersetzung dienende Einheit 15 steuert und optimiert die Seitenblldup.g, um umgenutzten Kernspeicherraum für nicht benutzte Seitenteile und die Anzahl von Speicher-Übertragungen auf ein Minimum herabzusetzen.
In Flg. 2 ist die Einheit 15 Im einzelnen dargestellt. Diese Einheit kann In einer zentralen Recheneinheit iO verwendet werden, welche Im Betriebssystem-, Kern-, Überwachungs- und Anwendermodus arbeiten kann. Es erfolgt eine entsprechende Programmuntertellung in Kern-, Überwachungs- und Anwenderprogramme. Im Ergebnis stellen die Kern- und Überwachungsprogramme ein gesamtes Organisationsprogramm dar. Das Grund-Kernprogramm ermöglicht es. Operationen durchzuführen, während das Überwachungsprogramm bestimmte privillgierte Operationen nicht durchführen kann, aber verschiedene Service-Bedürfnisse erfüllen kann, die in dem Organisationsprogramm oder in dem Anwenderprogramm verwendbar sind. Ein weiterer Schutz gegen eine Abwandlung des Überwachungsprogramms durch das Anwenderprogramm oder des Kernprogramms entweder durch das Überwaehungsprogramm oder durch Anwenderprogramme resultiert aus der Speicherung von Programmen in gesonderten Adressenabschnitten. D. h., der physikalische Kernspeicher 11 ist unterteilt in Bereiche, die Kern-, Überwachungs- und Benutzerprogrammen zugewiesen sind.
Die in Fig. 2 dargestellte Einheit 15 arbeitet In einem Datenverarbeitungssystem in Verbindung mit einer zentralen Recheneinheit, welche im Kern-, Überwachungs- und Anwenderbetrieb betreibbar ist. Sobald eine virtuelle Adresse auf dem Adressenbus 17 auftrifft, werden Teile der Adresse in einem Adressenpuffer 30, einem physikalischen Adressenmultiplexer 31 und einer Adressentreiberschaltung 32 gespeichert, welche gegebenenfalls die physikalische Adresse auf den Bus 26, welcher an die Adressenleiter in dem Bus 14 angeschlossen ist. überträgt.
Um eine physikalische Adresse zu erzeugen, benötigt die Einheit 15 zusätzliche Daten. Diese Daten sind in einer Reihe von Seiten-Adressenregistern 34. 35, 36 gespeichert, welche in Gruppen unterteilt sind, die jeder Betriebsart entsprechen. Die Seitenadresse 34 sind folglich Kernregister, während 35 und 36 Überwachungs- und Anwenderregister sind.
Die Seitenadressenregister sind unterteilt in Befehlsund Datenabschnitte. In der folgenden Beschreibung ist mit dem Bezugszeichen 34/ ein Befehls-Seitenadressenregister und mit dem Bezugszeichen 34£> ein entsprechendes Daten-Seitenadressenregister bezeichnet.
Eine Eingabeleitung 40 führt Adressenbits zu. um ein spezielles Seitenadressenregister in jeder Gruppe zu identifizieren, unct föhn einen Tail der virtuellen Adresse mit höherwertigen Bits zu. beispielsweise wird mit den drei Bits mit hohen Stellenwert in der virtuellen Adresse eines von acht Registern in jedem der Register 34-36 ausgewählt. Der ausgewählte Registerinhalt wird an eine Seltenadressenregister-Busleltung 41 abgegeben. Wenn Adressenbits In Daten auf der Elngabcleltung 40 auftreten, werden diese Daten jeweils auf der Busleitung 41 erhalten. Eine Einschreibleitung 42 führt ebenfalls Adressen und erzeugt eine Schreiboperation, wodurch Daten auf den Bus 20 In eines der ausgewählten Register eingelesen werden.
Eine zweite Gruppe von Seiteninformationsregistern ist den Seltenadressenreglstern 34-36 zugeordnet. Diese Register sind Seltendeskrlpiorreglster 43 bis 45. die ebenfalls In Daten-fDJ- und Befchls-W-Abschnluc unterteilt sind. Der Inhalt jedes Seltendeskriptorreglsters erscheint gleichzeitig mit dem Inhalt des zugeordneten Seitcnadressenreglsters auf einer Busleitung 47. Der Inhalt der Seitendeskriptorregister kann auch durch Anliegen der richtigen Adresse auf der Einschrelbleltung 42 und von Daten auf der Busleitung 20 geändert werden.
!n Fig. 3 !st die Organisation eines .Seiienadresscn- und eines Seitendeskriptorregisters dargestellt. Das Seltenadressenreglsier enthält die physikalische Basisadresse einer Seite in dem RAM-Speicher 11 In Form eines 12-Blt Seltenadressenfeldes. Seine Benutzung wird später Im einzelnen beschrieben. Das In Fig. 3 dargestellte Seltendeskriptorregister weist mehrere verschiedene Felder auf, welche eine Seitencxpanslon, Seitenlange und Zugriffssteuerung betreffen. Das Feld ACI' für die ZuiiMlTssteuerung kennzeichnet die Art und Welse. In welcher eine Seite für einen Zugriff zugänglich Ist. Wenn das Feld ACFeinen nichtresidenten Zugriff kennzeichnet, erzeugt eine Abbruch- und Fang-Decodlercinheit 48 (Flg. 2) ein entsprechendes Fehlersignal. Wenn das Feld ACF »nur lesen und Falle« oder »nur lesen« beinhaltet, bewirkt eine Steuereinheit 56 In der Einheit 15. daß irgendwelche weiteren Operationen abzubrechen sind, die Decodiereinheit 43 erzeugt dann ein entsprechendes Fehlersignal.
Wenn das Feld ACF »nur lesen und Falle« kennzeichnet, hält dies die zentrale Recheneinheit 10 an einer bestimmten Stelle im Kernraum In der Magnelspeichereinheit 11 fest. Eine Lese-Schreib- und -Fangeinstellung für das Zugriffssteuerfeld bewirkt, daß die Einheit eine Programm-Unterbrechung an einer Stelle in dem Kernspeicher bei Abschluß entweder einer Lese- oder einer Schreib-Operation durchmacht, während eine Lese-Schreib- und Fang-Operation für eine Lesecinstellung nur den Sprung bei Beendigung einer Schreiboperation bewirkt. Wenn eine Lese-Schreibeinstellung durch den Inhalt des Zugriffssteuerfelds ACF bestimmt wird, dann treten Lese- oder Schreib-Operationen ohne irgendwelche Sprung- oder Abbruchsignale von der Fang und Abbruch-Decodiereinheit 48 auf.
Das nächste höchstwertige Bit (das Bit 3) ist ein D-Bit, welches die Richtung bestimmt, in welcher sich eine Seite in dem Magnetkernspeicher 11 expandiert. Beispielsweise bezeichnet D = ! eine Seite, welche sich nach unten expandiert (d. h. aufeinanderfolgende Speicherstellen werden durch Verringern einer Adresse erhalten), während D = O eine Aufwärtsexpansion anzeigt.
Ein Bit 6 (das W-BIt) wird jedesmal dann gesetzt (d. h. W=I). wenn der Inhalt einer Seite geändert wird. Die Steuereinheit 56 und die Organisationsprogramme überwachen den Zeitpunkt einer Tauschoperation. Wenn das W-BIt gesetzt wird, dann muß die Seite wieder in den Magnetplatten-Speicherplalz eingeschrieben werden, um dadurch den Inhalt an diesem Speicherplatz auf den neuesten Stand zu bringen. Im übrigen ist kein weiterer Rücktransfer erforderlich, und es wird eine einzige Transferoperation vorgenommen.
IJn BIl 7 (das Λ-Bit) bestimmt, ob irgendein Spelcher-/ugrlff einen Speichcrmanagement-Sprung erzeugt hat. Dies ist für eine Spelchermanagemenl-Statlstik vorteilhall. Das letzte Feld des Seltendeskriptorregisters weist die lilts S bis 14 auf. Es Ist ein Seilenliingenfeld und gibt die Länge einer Seile In einer Anzahl vorbestimmter CirölJenblocks an. Deshalb spezifiziert dieses KeId eine Arunhl aufeinanderfolgender Adressenstellen In einer Seile an, welche das Seltenadressenreglster Identifiziert. Im folgenden kann nunmehr erläutert werden, wie eine virtuelle Adresse zum Identifizieren einer eindeutigen physikalischen Adresse verwendet werden kann. Die grafische Darstellung dieses Vorgangs Ist aus Fig. 4, welche sich auf Flg. 2 bezieht, zu ersehen. Die Erläuterung Ist wieder aul eine virtuelle 16-Blt-Adresse In einem System beschränkt, das eine physikalische IS-Bit-Adresse erfordert.
Wenn eine virtuelle Adresse erhallen wird, wird sie in eine Adresse für ein Seitenfeid (die BUs Ί3 bis i5). eine Blockzahl (die Bits 6 bis 12) und eine Wortzahl (die Bits 3 bis 5) unterteilt. Wenn gerade numerierte virtuelle Adressen aufeinanderfolgende Wortspeicherplätze kennzeichnen, dann läuft die Wonzahl in einem Modul von 32 Worten zyklisch um. Wenn daher die virtuelle Adresse um 32 Worte zunimmt, erhöht sich die Blockzahl um eins.
Die drei Bits mit hohem Stellenwert werden an die In Fig. 2 dargestellte Eingabeleitung 40 angekoppelt, um ein Scitcnadressenreglster und ein entsprechendes Seitendcskriptorregister auszuwählen. Die sich ergebenden Daten werden an einen PAR/PDR Lese-Multiplexer 49 und an einen Eingang eines Addierers 46 angekoppelt. Der Adressenpuffer 30 koppelt die Blockzahl der virtuellen Adresse an einen anderen Eingang des Addierers 46 in einer Weise an, dall die Blockzahl und das Seitenadresscnjeld richtig ausgerichtet sind. Die sich ergebende Adresse wird dann über den Multiplexer 3! an die höherwertigen Bits der Adressentreiberschaltung 32 angeordnet, wo sie neben die Wortzahl der virtuellen Adresse gestellt wird, welche die niedrigstwertigen Bitstellen einnimmt. Wie In Fig. 4 dargestellt, enthält daher die physikalische Adresse 18 Bits. Sechs Bits sind die ursprüngliche Wortzahl und die übrigen 12 Bits werden durch Hin/uaddiercn der Blockzahl und der Basisadresse für eine Seite gebildet, welche aus dem Seitenadressenregistcr erhalten wird, das durch die drei Bits mit hohem Stellenwert in der virtuellen Adresse gekennzeichnet Ist.
Vor der Erläuterung des Flulldiagramms der Fig. 5, welches die zeitliche Aufeinanderfolge für die Einheit 15 (in Fig. I) festlegt, dürfte es zweckmäßig sein, die weitercn Elemente zu erläutern, welche die Einheit (Fig. 2) enthält. Ein SRO-Reglster 50 (5R bedeutet jeweils Statusregister Im folgenden Text) weist drei mit dem Bezugszcichen 50o. 50b und 50c bezeichnete Grundabschnitte auf. Dieses Register enthält Abbruch-Fehlerkennzeichen, Speichermanagement-Freigabe und Falle-Kennzeichen und speichert weitere wesentliche Informationen, die von dem Organisationsprogramm gefordert werden, um einen Abbruch abzufangen oder um einen Service für eine Speichermanagement-Falle durchzuführcn.
Ein SRI-Register 51 zeichnet jede Information hinsichtlich der automatischen Erhöhungs- oder Verminderungsoperationen auf. Diese Informationen werden dann beim Abfangen einer Abbrach-Operation verwendel.
Ein SR2-Register 52 speichert die virtuelle Adresse am Anfang jedes Befehls oder die Adresse eines Unterbrechungsprogramnis zu Beginn einer Unterbrcchungsoperatlon. Dieses Regisier weist einen virtuellen Adressenprogrammzahlcr auf.
Das SR3-Register 53 speichert Befehl- oder Daten-Zwischenraum-Sieucrlnformatlonen. Für jeden Modus ist eine Bitposition in dem SR3-Reglster 53 vorhanden. Wenn ein Zwischenraum in dem Modusbit nicht gesetzt ist, dann wird die Auswahl der Register 34. 35 oder 36 auf den Belehlsabschnitt 1 beschränkt.
Das SR3-Reglster 53 kann Daten für die Busleitung 22 auf deren Leiter für Bits mit niedrigem Stellenwert verschieben. Signale von jeder der übrigen SR-Reglster 50, 51 und 52 sind über einen Internen Busdaten-Multiplexer 54 an die Busleitung 22 angekoppelt. Der interne Multiplexer 54 erhält auch Daten von dem Multiplexer 49.
In Fig. 5A ist die zeitliche Aufeinanderfolge der einzelnen Schritte für die Einheit 15 (Fig. I) dargestellt, wenn die zeiiüiilc Recheneinheit !0 eine viriücllc Adresse erzeugt. Zuerst liegt eine Adresse an der Busleitung 17 an, wie im Schritt 60 dargestellt ist. Beim Schritt 61 bestimmt die Steuereinheit 56, ob die Einheit 15 für eine Umwandlung aktiviert wird. Dies erfolgt durch Prüfen einer bestimmten Bitstelle in dem SRO-Register 50. Wenn die Einheit 15 nicht aktiviert Ist, dann findet keine Umwandlung statt und die virtuelle Adresse ist die physikalische Adresse.
Bei dem Schritt 62 bestimmt die Steuereinheit 56 den Belriebsmodus für die zentrale Recheneinheit 10, der In Abhängigkeit von dem Modus zu einer folgenden Operation führt. Eine Verzweigung In dem Kernmodus (kernel mode) verursacht, daß die Steuereinheit 56 aus dem Inhalt des »zwel«-Blt in dem SR3-Register 53 bestimmt, ob die virtuelle Adresse in einem Datenteil liegt (Schritt 64). Mit dem Schritt 64« wird ein Seitenadressenreglster und ein Seitendeskriptorregister aus dem Register 34D aufgrund der virtuellen Adresse ausgewählt. Die drei höchstwertigen Bits in der virtuellen Adresse identifizieren eines der acht Seitenadressen- und Seitendeskriptorregister.
Analoge Operationen werden durchgeführt, wenn bei dem Schritt 62 zu einem Programm 66 zur Auswahl eines Überwachungsregisters oder beim Schritt 67 zur Auswahl eines Anwenderregisters umgelenkt wird. Der Grundunterschied besteht darin, daß in dem Schritt 63 analogen Schritten die Steuereinheit Bits in dem SR3-Register 53 prüft, die der Überwachungs- bzw. der Anwenderbetriebsart entsprechen.
Nachdem eine Seite gewählt ist, wird beim Schritt 70 das Zugriffssteuerfeld (die Bits 0 bis 3) in dem ausgewählten Seitendeskriptorregister im Hinblick auf die geforderte Operation geprüft. Wenn während des Schritts
71 festgestellt wird, daß die Steuereinheit 44 weitere Adressieroperationen abbrechen sollte, wird beim Schritt
72 eine Abbruch-Folge durchgeführt. Diese Folge kommt beispielsweise vor, wenn ein Versuch gemacht wird, in einen Speicherplatz etwas einzuschreiben, wenn das Zugriffssteuerfeld Λ CT des Seitendesdkriptorregisters für »nur lesen« gesetzt ist.
Wenn dagegen die Folge nicht abgebrochen werden muß, dann wird im Schritt 73 von dem Zugriffssteuerfeld ACF des Seitendeskriptorregisters aus bestimmt, ob im Schritt 74 ein Trap-Fehler-Kennzeichen in dem SRO-Register 50 gesetzt werden sollte. Im Schritt 75 wird mittels der Steuereinheit 56 bestimmt, ob das Adressenfeld nach oben oder unten zu erweitern ist. Dies wird auf der Basis des D-Bits in dem Seitendeskriptorregister durchgeführt. Wenn das D-Bit gesetzt ist, wird von dem
Schritt 75 zu dem Schritt 76 umgelenkt, wo die Blockzahl In der virtuellen Adresse und die Zahl In dem Seltenlängenfeld verglichen werden. Wenn die Blockzahl kleiner als die Zahl In dem Seitenlängenfeld Ist, liegt eine ungültige Adresse vor und mittels der Steuereinheit 56 wird Im Schritt 77 ein Abbruch durchgeführt, damit die Einheit 15 dir ungültige Adresse nicht überträgt.
Wenn die A\dresse nach oben zu erweitern Ist, wird beim Schritt 75 zum Schritt 80 umgeleitet, in welchem die Blockzahl der virtuellen Adresse mit dem Seltenlängenfeld verglichen wird. In diesem Fall bewirkt eine größere Blockzahl ein Umlenken vom Schritt 80 zum Schritt 77; Im übrigen wird vom Schritt 80 zu dem Schritt 81 umgelenkt, wonach die Steuereinheit 56 die physikalische Adresse an die Busleitung 26 übertragt. Diese Adresse wird, wie oben gezeigt, durch Verknüpfen der virtuellen Adresse und des Inhalts des Seitenadressenreglsters erhalten.
Die Schaltung in Flg. 2 setzt daher automatisch durch Verwendung der Seltenadressen- und Seltendeskriptorregister eine virtuelle Adresse In eine physikalische Adresse um. Dies wird durchgeführt, ohne daß die Möglichkeit besteht, daß ein Programm unrichtig In den physikalischen Adressenstellen arbeitet, welche ein anderes Programm verwendet.
Wie aus den Schritten 76 und 80 zu ersehen Ist, prüft die Steuereinheit 56 fortwährend, um zu bestimmen, ob eine Adresse als außerhalb eines gegebenen Feldes liegend angegeben wird. Wenn dies der Fall ist, kann das Organisationsprogramm das Feld allein dadurch ändern, daß aus einem Speicherplan von ungenutzten Spelcherplatzen ein physikalischer Speicherbereich gefunden wird, der eine erweiterte Platzmenge aufnehmen kann. Das Organisationsprogramm bringt dann das entsprechende Seitenadressenregister durch Einspeichern einer neuen Seitenadresse und das Seitendeskrlptorregister durch Ändern des Seiteniängenfeius auf den neuesten Stand oder ändert es. Wenn das Seitenlängenfeld durch eine bestimmte Blockzahl erhöht wird (d. h. 32-Wortblöcke In dem besonderen Ausführungsbeispiel), kann eine Seltenlänge auf ein spezielles Programm zugeschnitten werden, um die Speicherausnutzung maximal zu erhöhen. Fernerhin werden die Transferzeiten auf ein Minimum herabgesetzt, da eine einzige Transferoperation eine ganze Seite bewegt. Infolgedessen schafft die in Fig. 1 und in Fig. 2 im einzelnen dargestellte Einheit 15 eine Umgebung für die Vielfachprogrammierung und für das Teilnehmer-Verfahren (time-sharing), so daß die zentrale Recheneinheit sehr wirksam arbeiten kann.
50
Hierzu 6 Blatt Zeichnungen
55
60

Claims (3)

Patentansprüche:
1. Adreßumsetzungseinheit zum Umsetzen von virtuellen Adressen in physikalische Adressen in einem Datenverarbeitungssystem mit einem Speicher mit wahlfreiem Zugriff und einer Vielzahl von Speicherstellen, welche durch die physikalischen Adressen identifizierbar sind, und mit einer zentralen Recheneinheit zur Verarbeitung von Befehlen, welche die virtuellen Adressen mit Hilfe von Adressendaten identifizieren, wobei die virtuellen Adressen auf einen Adressenbereich begrenzt sind, der kleiner als die Anzahl der physikalischen Speicherstellen in dem Speicher ist, dadurch gekennzeichnet, daß die virtuellen Adressen ein Seitenadressenfeld (APF in Fig. 4), ein Blockzahlfeld und ein Wortzshlfeld enthalten, daß die Adreßumsetzungseinheit (IS) eine Anzahl vert jeweils durch das Seitenadressenfeld (AfF) der virtuellen Adresse identifizierfaaren Seiteninformationsregistern (43, 44, 45) und Seitenadressenregistern (34, 35, 36) enthält, wobei letztere jeweils eine physikalische Basisseitenadresse speichern, daß eine Einrichtung (46) zum Bilden der Summe aus dem Blockzahlfehl der virtuellen Adresse und dem Inhalt des Seltenadressenreglsters (34, 35, 36) vorgesehen ist, und daß eine Einrichtung (31, 32) zum Verketten der Summe mit dem Wortzahlfeld der virtuellen Adresse vorgesehen ist, um die physikalische Adresse tu bilden. 3ö
2. Adreßumsetzungseinheit nach Anspruch 1, dadurch gekennzeichnet, daß ale Seiteninformauonsregister (43, 44, 45) informationen speichern, welche die Länge der zugeordneter Seite Identifizieren, und daß eine Einrichtung (56) vorgesehen ist, welche die virtuelle Adresse und die Seitenlänge vergleicht, die in den Seiteninformationsregistern gespeichert ist, um zu bestimmen, ob die virtuelle Adresse außerhalb der zugeordneten Seite Hegt und um eine Bezugnahme auf den Speicher (11) zu verhindern, wenn die virtuelle Adresse außerhalb der zugeordneten Seite liegt.
3. Adreßumsetzungseinheit nach Anspruch 2, dadurch gekennzeichnet, daß die Busleitungen (20, 42) zur selektiven Änderung des Seitenlängenfelds in den Seiteninformationsregistern (43, 44, 45) aufweist.
DE2350884A 1972-10-10 1973-10-10 Adreßumsetzungseinheit Expired DE2350884C2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CH1314174A CH583406A5 (en) 1973-10-10 1974-09-30 Cannon with target-seeking appts. - fitted beneath horizontal plane beneath cannon's horizontal pivot axis

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US00296026A US3854126A (en) 1972-10-10 1972-10-10 Circuit for converting virtual addresses into physical addresses

Publications (2)

Publication Number Publication Date
DE2350884A1 DE2350884A1 (de) 1974-04-18
DE2350884C2 true DE2350884C2 (de) 1986-05-15

Family

ID=23140281

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2350884A Expired DE2350884C2 (de) 1972-10-10 1973-10-10 Adreßumsetzungseinheit

Country Status (6)

Country Link
US (1) US3854126A (de)
JP (1) JPS4994240A (de)
CA (1) CA995822A (de)
DE (1) DE2350884C2 (de)
GB (1) GB1413739A (de)
IE (1) IE38700B1 (de)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4010451A (en) * 1972-10-03 1977-03-01 National Research Development Corporation Data structure processor
FR129151A (de) * 1974-02-09
US3956739A (en) * 1974-03-06 1976-05-11 Ontel Corporation Data transfer system
FR2269150B1 (de) * 1974-04-25 1977-10-28 Honeywell Bull Soc Ind
JPS5615066B2 (de) * 1974-06-13 1981-04-08
US3990051A (en) * 1975-03-26 1976-11-02 Honeywell Information Systems, Inc. Memory steering in a data processing system
US3976978A (en) * 1975-03-26 1976-08-24 Honeywell Information Systems, Inc. Method of generating addresses to a paged memory
US4037214A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
US4037215A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key controlled address relocation translation system
JPS533029A (en) * 1976-06-30 1978-01-12 Toshiba Corp Electronic computer
GB1601955A (en) * 1977-10-21 1981-11-04 Marconi Co Ltd Data processing systems
US4285040A (en) * 1977-11-04 1981-08-18 Sperry Corporation Dual mode virtual-to-real address translation mechanism
US4241401A (en) * 1977-12-19 1980-12-23 Sperry Corporation Virtual address translator utilizing interrupt level code
US4218743A (en) * 1978-07-17 1980-08-19 International Business Machines Corporation Address translation apparatus
US4388685A (en) * 1978-08-04 1983-06-14 Digital Equipment Corporation Central processor with apparatus for extended virtual addressing
US4277826A (en) * 1978-10-23 1981-07-07 Collins Robert W Synchronizing mechanism for page replacement control
US4254463A (en) * 1978-12-14 1981-03-03 Rockwell International Corporation Data processing system with address translation
JPS55105763A (en) * 1979-02-05 1980-08-13 Fanuc Ltd Address instruction system
US4295192A (en) * 1979-04-13 1981-10-13 Sperry Rand Corporation Row address memory map overlap
BE876025A (nl) * 1979-05-04 1979-11-05 Bell Telephone Mfg Signaleringsstelsel
GB2062912B (en) * 1979-09-29 1983-09-14 Plessey Co Ltd Data processing system including internal register addressing arrangements
US4507781A (en) * 1980-03-14 1985-03-26 Ibm Corporation Time domain multiple access broadcasting, multipoint, and conferencing communication apparatus and method
US4393443A (en) * 1980-05-20 1983-07-12 Tektronix, Inc. Memory mapping system
JPS5734251A (en) * 1980-08-07 1982-02-24 Toshiba Corp Address conversion and generating system
US4574349A (en) * 1981-03-30 1986-03-04 International Business Machines Corp. Apparatus for addressing a larger number of instruction addressable central processor registers than can be identified by a program instruction
US4509115A (en) * 1982-04-21 1985-04-02 Digital Equipment Corporation Two-port memory controller
US4550368A (en) * 1982-07-02 1985-10-29 Sun Microsystems, Inc. High-speed memory and memory management system
US4926316A (en) * 1982-09-29 1990-05-15 Apple Computer, Inc. Memory management unit with overlapping control for accessing main memory of a digital computer
US4710868A (en) * 1984-06-29 1987-12-01 International Business Machines Corporation Interconnect scheme for shared memory local networks
JPS61190638A (ja) * 1985-02-20 1986-08-25 Hitachi Ltd 仮想計算機のフアイル制御方式
US4868738A (en) * 1985-08-15 1989-09-19 Lanier Business Products, Inc. Operating system independent virtual memory computer system
US4694395A (en) * 1985-11-25 1987-09-15 Ncr Corporation System for performing virtual look-ahead memory operations
US4891752A (en) * 1987-03-03 1990-01-02 Tandon Corporation Multimode expanded memory space addressing system using independently generated DMA channel selection and DMA page address signals
US5101339A (en) * 1987-08-10 1992-03-31 Tandon Corporation Computer address modification system using writable mapping and page stores
JPS6488661A (en) * 1987-09-29 1989-04-03 Toshiba Corp Virtual memory control and management system
JP2507756B2 (ja) * 1987-10-05 1996-06-19 株式会社日立製作所 情報処理装置
NL8800858A (nl) * 1988-04-05 1989-11-01 Philips Nv Rekenmachinesysteem voorzien van een hoofdbus en een tussen processor en geheugen direkt verbonden extra kommunikatielijn.
US5072372A (en) * 1989-03-03 1991-12-10 Sanders Associates Indirect literal expansion for computer instruction sets
US5317706A (en) * 1989-11-15 1994-05-31 Ncr Corporation Memory expansion method and apparatus in a virtual memory system
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
DE10033673B4 (de) * 1999-08-17 2005-10-20 Ibm Verfahren zum Archivieren und Ausliefern von Dokumenten unter Verwendung eines Zentralarchivsystems
US6662289B1 (en) 2001-05-15 2003-12-09 Hewlett-Packard Development Company, Lp. Method and apparatus for direct conveyance of physical addresses from user level code to peripheral devices in virtual memory systems
US7404064B2 (en) * 2004-04-07 2008-07-22 Stmicroelectronics S.A. Method and device for calculating addresses of a segmented program memory
US7386700B2 (en) * 2004-07-30 2008-06-10 Sandisk Il Ltd Virtual-to-physical address translation in a flash file system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1218761B (de) * 1963-07-19 1966-06-08 International Business Machines Corporation, Armonk, N. Y. (V. St. A.) Datenspeidbereinrichtung
US3412382A (en) * 1965-11-26 1968-11-19 Massachusetts Inst Technology Shared-access data processing system
US3533075A (en) * 1967-10-19 1970-10-06 Ibm Dynamic address translation unit with look-ahead
NL6815506A (de) * 1968-10-31 1970-05-04
FR10582E (fr) * 1970-06-29 1909-07-30 Paul Alexis Victor Lerolle Jeu de serrures avec passe-partout

Also Published As

Publication number Publication date
JPS4994240A (de) 1974-09-06
IE38700L (en) 1974-04-10
CA995822A (en) 1976-08-24
IE38700B1 (en) 1978-05-10
US3854126A (en) 1974-12-10
GB1413739A (en) 1975-11-12
DE2350884A1 (de) 1974-04-18

Similar Documents

Publication Publication Date Title
DE2350884C2 (de) Adreßumsetzungseinheit
DE2716051C2 (de) Datenverarbeitungsanlage mit einem oder mehreren Prozessoren mit mindestem einem Ein-/Ausgabekanal mit mehreren Unterkanälen und mit einer Speicheranordnung, bei der zum Speicherzugriff Schlüssel verwendet werden
DE1774296C2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE2725718C2 (de) Datenverarbeitungsanordnung zum Übersetzen von virtuellen Adressen
DE69730276T2 (de) Vorrichtung und Verfahren zur Erleichterung der Vermeidung von exzeptionellen bestimmten Zuständen während des Ablaufs eines Programmes
DE2637054C3 (de) Steuervorrichtung für einen Pufferspeicher
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE2926589A1 (de) Anordnung zur verlaengerung einer logischen computeradresse
DE3508291A1 (de) Realzeit-datenverarbeitungssystem
DE1956604A1 (de) Datenverarbeitungsanlage mit einem Speichersystem
DE2130299A1 (de) Eingabe/Ausgabe-Kanal fuer Datenverarbeitungsanlagen
CH634939A5 (de) Kanaldatenpufferanordnung in einer datenverarbeitungsanlage.
DE2209282B2 (de) Datenverarbeitungsanlage
DE2657848A1 (de) Steuereinheit fuer ein datenverarbeitungssystem
DE2432608C3 (de) Speicheranordnung fur eine Datenverarbeitungseinrichtung
DE2054830C3 (de) Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge
DE2117581C3 (de) Einrichtung zur Adressenprüfung
DE2458286A1 (de) Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen
DE2912073A1 (de) Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystem
DE2558417C3 (de) Datenverarbeitungssystem
CH495584A (de) Datenverarbeitungsanlage
EP0265636A1 (de) Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher
DE1774421B1 (de) Mehrprogramm datenverarbeitungsanlage
DE2726679A1 (de) Kanalsteuerung fuer datenverarbeitungsanlagen und verfahren zu ihrem betrieb
DE2717700C2 (de) Speicherzugriffsanordnung

Legal Events

Date Code Title Description
OD Request for examination
8125 Change of the main classification

Ipc: G06F 12/10

D2 Grant after examination
8364 No opposition during term of opposition