DE2350884C2 - Adreßumsetzungseinheit - Google Patents
AdreßumsetzungseinheitInfo
- 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
Links
Classifications
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/652—Page 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)
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.
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)
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)
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 |
-
1972
- 1972-10-10 US US00296026A patent/US3854126A/en not_active Expired - Lifetime
-
1973
- 1973-10-09 CA CA182,900A patent/CA995822A/en not_active Expired
- 1973-10-10 IE IE1815/73A patent/IE38700B1/xx unknown
- 1973-10-10 DE DE2350884A patent/DE2350884C2/de not_active Expired
- 1973-10-10 GB GB4734773A patent/GB1413739A/en not_active Expired
- 1973-10-11 JP JP48114324A patent/JPS4994240A/ja active Pending
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 |