DE1803767A1 - Elektronisches Datenverarbeitungssystem - Google Patents

Elektronisches Datenverarbeitungssystem

Info

Publication number
DE1803767A1
DE1803767A1 DE19681803767 DE1803767A DE1803767A1 DE 1803767 A1 DE1803767 A1 DE 1803767A1 DE 19681803767 DE19681803767 DE 19681803767 DE 1803767 A DE1803767 A DE 1803767A DE 1803767 A1 DE1803767 A1 DE 1803767A1
Authority
DE
Germany
Prior art keywords
address
operand
signal
page
memory
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.)
Pending
Application number
DE19681803767
Other languages
English (en)
Inventor
Mcclurg Robert Arthur
Johnson Ellsworth Lowell
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE1803767A1 publication Critical patent/DE1803767A1/de
Pending 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
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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
    • 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/655Same page detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

IBM Deutschland Internationale Büro-Maschinen Gesellschaft mbH
Böblingen, 16. Oktober 1968 jo-hn
Anmelder in:
International Business Machines Corporation, Armonk, N. Y. 10 504
Amtliches Aktenzeichen:
Ne uanme ldung
Aktenzeichen der Anmelderin: Docket KI 9-66-009
Elektronisehes Datenverarbeitungssystem
Die Erfindung betrifft ein elektronisches Datenverarbeitungs system mit einem informationsgruppen-orientierten (seitenorientierten) virtuellen Speicher und einem dynamischen Adressübersetzer zur Adressierung der Operanden in dem Speicher.
Datenverarbeitungssysteme, die mit virtuellen Speichern arbeiten, sind bereits bekannt. Ein derartiges System ist beispielsweise in dem Aufsatz "The Virtual Memory in the Stretch Computer1'von John Cocke und Harwood G. Kolsky in Proceedings of the Eastern Joint Computer. Conference, Dezember 1-3, 1959, beschrieben. Ferner ist durch die US-Patentschrift 3 318 898/tias Prinzip der dynamischen Adressübersetzung bekannt geworden. Ferner befindet sich eine allgemeinere Beschreibung eines virtuellen Speicher-Rechnersystems und einer Adressübersetzungseinheit in dem Artikel "Machine Organization for Multiprogramming" von Peter W. Regner, Proceedings of the 22nd National Conference, Association for Computing Machinery A. CM. Publication, August 1967, Seiten 135 bis 150.
909834/1207
Besonders in einem Datenverarbeitungs system mit einem virtuellen Speicher, in dem mehrere Programme gleichzeitig verarbeitet werden, kann der Fall eintreten, daß alle von einer Instruktion zu verarbeitenden Daten (Operanden) nicht verfügbar sind. Das kann sich besonders aus der Verwendung der. herkömmlichen Organisation für Daten in Seiten genannten Informationsgruppen in einem virtuellen Speichersystem ergeben. In einem derartigen System ist eine Seite die Grundeinheit für die Datenübertragung, wobei jede Seite von einem oder mehreren Programmen benutzt und/oder z.B. vom Hauptspeicher auf einen Sekundärspeicher übertragen wi rd , da sie durch eine Seite höherer Priorität ersetzt wird. Somit steht zu jedem Zeitpunkt nur eine bestimmte Anzahl von Seiten zur Verfügung, die von der Kapazität des Systems abhängt. Da jedes Programm sein eigenes Adressierschema verwendet, läßt sich die tatsächliche Verfügbarkeit der erforderlichen Seiten weder vorhersagen, noch soll die Programmierung mit solchen Problemen belastet werden.
Wenn sich also die von einer Instruktion zu verarbeitenden Daten über mehr als eine Seite erstrecken (was im allgemeinen im Rahmen einer größeren Speicherwirksamkeit und einer größeren Flexibilität zugelassen wird), so kann zwar die erste benötigte Seite zur Verfügung stehen, die zweite jedoch möglicherweise nicht. Somit kann in einem herkömmlichen virtuellen Speichersystem der Fall eintreten, daß eine Instruktion ihre Ausführung beginnt und Operanden von einer ersten Seite über die dynamische Adressübersetzungseinheit adressiert, bis die erste Seite fertig ist und dann Operandendaten von der zweiten Seite, benötigt werden. Wenn in diesem Falle die zweite Seite nicht zur Verfügung steht, kann die Instruktion nicht zu Ende geführt werden. Bei bekannten Systemen läßt sich dieser Fall nur dadurch lösen, daß die Ausführung dieser Instruktion unterbrochen wird. Dabei muß der laufende Zustand (Status) aller beteiligten Register so lange zwischengespeichert werden, bis die benötigte Seite verfügbar wird, woraufhin die Instruktion dann vom Unterbrechungspunkt aus zu Ende geführt wird. Der Nachteil dieser Lösung bei der Ausführung von Instruktionen,
909834/1207
KI 9-66-009 ■
deren Operanden nicht vollständig zum Zeitpunkt der Verarbeitung vorliegen, besteht darin, daß für die Zwischenspeicherung bestimmter Daten ein beträchtlicher zusätzlicher Speicher raum benötigt wird.
Eine andere Lösung dieses Problems, die ohne zusätzlichen Spei eher raum auskommt, besteht in der Unterbrechung der Ausführung der Instruktion, bis die Seite zur Verfügung steht, auf der sich das Ende des gewünschten Operanden befindet. In diesem Fall wird der augenblickliche Zustand der beteiligten Register nicht gespeichert, sondern die Ausführung der Instruktion beginnt wieder von vorne. Die Schwierigkeit bei dieser Lösung liegt Λ darin, daß die teilweise Ausführung der Instruktion die Operandendaten auf der Anfangsseite verändert haben kann, so daß bei Wiederholung der Instruktion die Operandendaten auf der Anfangs seite beim zweitenmal falsch ausgeführt werden. Hier könnte eine zusätzliche Routine abhelfen, in der alle veränderten Operandendaten wieder in die Ursprungsform gebracht werden, bevor die Ausführung der Instruktion wiederholt wird. Der sich hieraus ergebende Nachteil liegt darin, daß relativ komplexe Routinen und zusätzliche Bauelemente notwendig sind.
Eine weitere Möglichkeit zur Lösung dieses Problemes liegt in der Beschränkung eines Operanden auf eaie Seite oder in einer anderen Reduzierung der für jedes Programm verfügbaren virtuellen Speicherkapazität, so daß es unwahrscheinlich ist, daß bei Ausführung einer Instruktion eine Seite nicht zur Verfügung steht.
Eine weitere Lösung besteht darin, daß der Programmierer dieses Problem beispielsweise durch ein Signal für eine ungültige Adresse löst, woraufhin er dann sein Programm vom Warnzeichen an verändern muß.
Derartige Lösungen sind jedoch insofern unerwünscht, als sie von den Grundvorteilen eines virtuellen Speicher Systems wegführen.
909834/1207
Es ist daher die Aufgabe der Erfindung, ein elektronisches Datenverarbeitungssystem anzugeben, bei dem das dynamische Adressübersetzungs-System automatisch verhindert, daß Instruktionen nur teilweise ausgeführt werden, weil die benötigten Operanden nicht oder nur teilweise zur Verfügung stehen.
Für ein elektronisches Datenverarbeitungs system mit einem informationsgruppen-orientierten (seitenorientierten) virtuellen Speicher und einem dynamischen Adressübersetzer zur Adressierung der Operanden in dem Speicher besteht die Erfindung darin, daß in dem dynamischen Adressüberset- ^ zer eine Einrichtung, zur Adressenvoraüsschau vorgesehen ist, die feststellt, ob die Länge eines Operanden größer als eine Informations gruppe (Seite) ist und ob in diesem Fall alle Informations gruppen (Seiten) zur Adressierung im Speicher vorhanden sind und daß in dem dynamischen Adressübersetzer eine Steuereinrichtung, enthalten ist, welche die Adressierung eines Operanden nur dann freigibt, wenn alle Informationsgruppen, über die sich ein Operand erstreckt, im Speicher vorhanden sind.
Weitere Merkmale und vorteilhafte Ausgestaltungen des Gegenstandes der Erfindung sind den Unteransprüchen zu entnehmen.
Das elektronische Datenverarbeitungs system entsprechend der Erfindung besitzt gegenüber den bekannt gewordenen Systemen eine. Reihe von Vorteilen. Diese Vorteile liegen einmal darin, daß auf Grund der speziell angewandten Adressenvorschau Instruktionen jeweils vollständig ausgeführt werden können. Ferner gestattet die Erfindung eine vollautomatische Behandlung des Problems, so daß nicht durch externe Programmierung ein größerer Programmierungsaufwand getrieben werden muß. Ferner bringt die Lösung der Erfindung eine Reihe von Einsparungen mit sich, die eine starke ökonomische Verbesserung bei Systemen mit virtuellen Speichern mit sich bringen. Erwähnt seien hier Einsparungen an zusätzlicher Speicherkapazität oder zusätzlichen Bauelementen.
90983Ä/1207
- 5 - ' " ■■■"■■'-■
Im folgenden wird die Erfindung anhand von Ausführungsbeispielen und den zugehörigen Zeichnungen näher erläutert. Es zeigen:
Fig. 1: ein Blockdiagramm eines Datenverarbeitungs systems nach
der Erfindung,
Fig. 2: die Anordnung der Fig. 2A und 2B,
Fig. 2A, 2B: elektrische Blockschaltbilder der Anordnung nach Fig. 1 mit der dynamischen Adressübersetzungseinheit,
Fig. 3: ein Schaltbild des Taktgebers für die Verwendung in der in
den Fig. 2A und 2B gezeigten dynamischen Adressübersetzungseinheit und
Fig. 4: -eine Tabelle der Funktionsschritte, die beim Betrieb des
Systemes ausgeführt werden.
Das Blockdiagramm in Fig. 1 zeigt ein Datenverarbeitungs system mit einer Verarbeitungseinheit 10 und einem Hauptspeicher 15, der mit mehreren Sekundärspeichern S1 bis S,- und einer dynamischen Adressübersetzungseinheit 20 zusammenarbeitet. Die Blöcke in Fig. 1 stellen nicht " unbedingt die mechanische Anordnung des Systems dar, Sondern dienen in erster Linie der Darstellung der wichtigsten Komponenten des Systems in herkömmlicher Funktionsgruppierung, wodurch die Erfindung besser erläutert werden kann. Die tatsächliche physikalische Anordnung des Systems kann eine oder mehrere der in Fig. 1 gezeigten Einheiten oder deren Teile umfassen. In den Fig. 1, 2A und 2B stellt eine dicke Linie, z.B. 1OA, mehrere zugehörige Leitungen zur Übertragung mehrerer Signale dar, während eine dünne Leitung, wie z. B. 20B, eine einzelne Leitung zur Übertragung eines Signals darstellt. Die dicken Leitungen sind der Einfachheit halber für mehrere zugehörige Leitungen gezeichnet,
909834/1207
die als Gruppe behandelt werden können.
Der in Fig. 1 gezeigte entsprechend ausgewählte Hauptspeicher 15 kann ein Hochgeschwindigkeits-Kernspeicher mit wahlfreiem Zugriff sein. Er ist seitenorientiert und arbeitet mit der Verarbeitungseinheit 10 über die Leitungen 12 zusammen, über welche Informationen zwischen dem Hauptspeicher 15 und den Sekundäreinheiten S1 bis S übertragen werden, wobei eine Seite als Grundeinheit für die übertragung dient. Beim Betrieb des Systemes werden laufend Seiten zwischen dem Haupt- und den Sekundärspeichern übertragen, wie esY"die Ausführung der Operationen erforderlich ist, für die das System programmiert ist.
Die Verarbeitungseinheit 10 in Fig. 1 kann entweder mehrere Verarbeitungseinheiten darstellen, von denen jede ihr eigenes Programm hat, oder eine einzige Verarbeitungseinheit, die mit mehreren Programmen arbeitet. Diese Programme teilen sich den Hauptspeicher 15 durch einen virtuellen Spei eher zugriff, indem jedes Programm sein eigenes Adressierschema verwendet, woraus sich eine Gesamtspeicherkapazität ergibt, die wesentlich größer ist, als die gesamte physikalische Speicherkapazität des Hauptspeichers 15. Der gesamte virtuelle Speicher kann somit sehr viel größer sein als die tatsächliche physikalische Speicherkapazität des Hauptspeichers 15. Er ist als Gesamtadressierkapazität aller Programme im System definiert. Daten in diesem virtuellen Speicher werden durch logische Adressen adressiert, wobei jedes Programm seinen eigenen Satz logischer Adressen hat.
Im Betrieb des Systemes adressiert die Verarbeitungseinheit 10 die Daten im Speicher durch Abgabe ihrer logischen Adresse über die Leitungen 1OA auf die dynamische Adressübersetzungseinheit 20 zusammen mit den zugehörigen Instruktionsdaten, die über die Leitungen 1OB übertragen werden. Die dynamische Adressübersetzungseinheit 20 übersetzt automatisch jede logische Adresse in die tatsächliche physikalische Adresse der Daten,
909834/1207
die dann über die Leitungen 2OA auf den Hauptspeicher 15 gegeben wird.
Der gesamte virtuelle Speicher des Systems kann z.B. in 16 Segmente unterteilt werden, wobei jedes Segment beispielsweise 256 Seiten und jede Seite 2096 Bytes umfaßt*- Ein Byte aus z.B. acht Bits ist die kleinste adressierbare Datengröße im Hauptspeicher 15. Der Hauptspeicher 15 ist außerdem mit Segmenttabellen und Seitentabellen ausgerüstet, deren Eintragungen laufend durch die Verarbeitungseinheit 10 über die Leitungen 12 auf dem neuesten Stand gehalten werden. Die dynamische Adress-Übersetzungseinheit 20 kann ausgewählte Eintragungen in diesen beiden Tabellen über die Leitungen 2OA adressieren, wenn dieses zur Übersetzung Λ einer logischen Adresse in die tatsächliche physikalische Adresse der Daten im Hauptspeicher 15 erforderlich ist. Die aus diesen Segment- und Seitentabellen ausgewählten Eintragungen stellen die erforderlichen Übersetzungsdaten dar und werden über die Leitungen 15A auf die dynamische Adressübersetzungseinheit 20 übertragen. Die dynamische Adressübersetzungseinheit 20 informiert den Hauptspeicher 15 durch ein Anfragesignal für gespeicherte Daten R über die Leitung 2OB davon, daß sie eine physikalische Adresse oder eine Adresse der Segment- oder Seitentabelle sendet. Umgekehrt gibt der Hauptspeicher 15 ein Vorlauf signal M ab, um die dynamische Adressübersetsungseinheit darüber zu informieren, daß er die angefragten gespeicherten Daten sendet, und zwar über die Leitungen 15A an die Adressiibersetzungseinheit 20, wenn Übersetzungsdaten angefor- ' dert wurden oder andernfalls über die Leitungen 12 an die Verarbeitungseinheit 10.
Wie bereits oben gesagt, hat ein derartiges System große Vorteile, da jedes Programm sein eigenes Adressierechema mit einer Adressierkapazität verwenden kann, die -wesentlich größer ist als die Gesamtkapazität des Hauptspeichers 15, auch wenn viele andere Programme im System laufen. Vorhandensein und Verfügbarkeit im Hauptspeicher 15 eines solchen Sy-
909834/1207
ORiOINAL INSPECTED
1803787.
stems werden durch ein Üherwachungsprogramm gesteuert, das, basierend auf Anwendungs- und Prioritätsüberlegungen, die Verarbeitungseinheit 10 zur Übertragung vorbestimmter Seiten zwischen dem Hauptspeicher 15 und den Sekundär Speichereinheiten S. bis S je nach den Erfordernissen des gesamten Systembetriebes veranlaßt.
Es kann daher · vorkommen, daß eine auf die dynamische Adressübersetzungseinheit 20 in Fig. 1 gegebene logische Adresse Daten von einer Seite fordert, die entweder nicht im Hauptspeicher 15 steht oder aus irgendeinem Grund nicht verfügbar ist, weil sie z.B. in einem anderen Programm benutzt wird. Die herkömmliche Behandlungsart einer solchen Situation besteht darin, daß die dynamische Adressübersetzungseinheit 20 der zentralen Verarbeitungseinheit 10 ein entsprechendes Signal gibt, z.B. ein über die Leitungen 13 gegebenes Signal J_T, welches anzeigt, daß die von der logischen Adresse geforderten Datenauf einer nichtverfügbaren Seite stehen. Wenn die logische Adresse dem ersten Byte eines Operanden entspricht, stoppt die zentrale Verarbeitungseinheit 10 die Ausführung der Instruktion, bis die erforderliche Seite mit dem geforderten Byte in den Hauptspeicher 15 geholt und/oder verfügbar gemacht werden kann, woraufhin mit der Ausführung der Instruktion begonnen werden kann. "Wie jedoch bereits am Anfang ausgeführt, kann trotz Verfügbarkeit der ersten Seite des Operanden das Problem einer teilweise ausgeführten Instruktion entstehen, wenn der .Operand eine Seitengrenze Überschreitet, da die zweite Seite, auf die der Operand sich auch noch erstreckt, nicht verfügbar/st. Es entsteht eine Unterbrechung, um diese zweite Seite zu holen, die, wenn der Operandenzugriff einmal begonnen hat, ungewöhnliche Komplexitäten in der Ausrüstung und/oder der Programmierung erfordern kanns je nachdem, welche der verschiedenen allgemein bekannten Lösungsmöglichkeiten ange-' wandt werden. Im folgenden wird beschrieben, wie die Erfindung dieses Problem vorteilhaft löst, wobei weiter auf das in Fig. 2A, 2B und 3 gezeigte Ausführungsbeispiel der dynamischen Adressübersetzungseinheit sowie auf die Tabelle in Fig. 4 Bezug genommen wird.
909834/1207
In den Fig. 2A und 2B bedeutet ein Punkt an der Verbindungsstelle von zwei oder mehreren dicken Linien, daß dieselbe Liniengruppe, die durch eine erste dicke Linie dargestellt ist, parallel mit verschiedenen Schaltungen verbunden wird, wie es z.B. an der Verbindungsstelle 16A in der Fig. EA über der Und-Schaltung 46 gezeigt ist. Weiterhin bedeutet ein Punkt, daß mehrere Gruppen parallel zu einer gemeinsamen Gruppe zusammengefaßt werden, wie es an den Verbindungsstellen 16B über den Eingängen 5OA und 5OB des Addierers 50 dargestellt ist.
Wenn nicht alle Leitungen einer durch eine dicke Linie in den Fig. 1, 2A ^
und 2B dargestellten Leitungsgruppe an eine bestimmte Schaltung gehen, so zweigen die dünnen oder dicken Linien von der dicken Linie in einem schrägen Winkel ab, wie es bei 17 in Fig. 2A für die Eingangsleitungen 1OB gezeigt ist. Die der schrägen Trennung folgende dicke Linie stellt nur die übrigen Leitungen der Gruppe dar, kann aber auch Leitungen enthalten, die einex oder mehreren der getrennten Leitungen entsprechen.
Und- und Oder-Schaltungen sind in den Fig. 2A, 2B und 3 in der herkömmlichen Art dargestellt. Wenn eine durch eine dicke Linie dargestellte Gruppe von Leitungen durch ein gemeinsames Steuersignal zusammengeleitet werden soll, ist die Gruppe von dafür erforderlicher: Und-Schal- | tungen durch ein kleines Rechteck mit einem G darinnen dargestellt, wie bei Nr. 47 in Fig. 2A am Ausgang des Addierers 50. Während die Gruppe der zu steuernden Leitungen senkrecht auf den Block trifft, kommt das Steuersignal auf der waagerechten Leitung an.
Vpn dem in Fig. 3 gezeigten Taktgeber 60 werden unter anderem die für die vorliegende Erfindung wichtigen Takteignale CQ bis C7 erzeugt. Von diesen Signalen wird vom Taktgeber 60 nur eine» *u je einem Zeitpunkt erzeugt und bleibt bis zur Er Beugung eines neuen Taktsignales bestehen. Die über dem Taktgeber 60 in Fig. 3 gezeigten logischen Signale und die Schaltungen bezeichnen die Bedingungen, die zur Erzeugung je eines Takt-
909834/1207
signales führen. Bestimmte Taktsignale werden auf die in den Fig. 2A und 2B gezeigten Einheiten, nämlich eine Assoziativschaltung 30, einen Assoziativ-Schaltungsvergleicher 35, ein Summenregister 40, ein Segmentregister 45, einen Addierer 50 und einen Tabellenlängen-Vergleicher 55 sowie ein Seitenregister 65 gegeben, die in allgemein bekannter Art arbeiten.
Die von der zentralen Verarbeitungseinheit gelieferte logische Adresse umfaßt einen Segmentteil, einen Seitenteil und einen Byteteil, die zusammen ein bestimmtes Byte einer gewählten Seite bestimmen. Das System ist so organisiert, daß bei Verfügbarkeit der gewählten Seite im Hauptspeicher die dynamische Adressübersetzungseinheit den Segmentteil und den Seitenteil der logischen Adresse in die physikalische Adresse der gewählten Seite im Hauptspeicher übersetzt. Der Byteteil der logischen Adresse wird nicht übersetzt sondern mit der physikalischen Seitenadresse kombiniert. Er liefert die vollständige physikalische Adresse, wodurch das gewählte Byte in der gewählten Seite des Hauptspeichers 15 adressiert werden kann.
Die im System verwendeten Operanden stellen die zu verarbeitenden Daten dar. Im System der vorliegenden Erfindung kann jeder Operand mehrere Bytes umfassen und sich über mehr als eine Seite erstrecken. Üblicherweise werden Operanden durch Instrukionen verarbeitet. Eine typische Instruktion bezeichnet die auszuführende Art der Operation, den oder die Operanden, an denen die bezeichnete Operation auszuführen ist und die Anzahl der von jedem Operanden umfaßten Bytes. Da der Programmierer damit nicht belastet werden soll, zeigt die Instruktion von selbst nicfö an, ob der Operand eine Seitengrenze überschreitet. Um die Erfindung in Verbindung mit Fig. 4 zu beschreiben, wird angenommen, daß dia Instruktion nur einen Operanden enthält und daß weitere Operanden in ©teer Instruktion ähnlich verarbeitet werden können. Weiterhin wird fü? diese Beschreibung angenommen, daß sich ein Operand über mehr ale swei Saite» erstreckt.
909834/1201
.Cr
8AD ORIGINAL
Die Bytes eines Operanden werden zur Ausführung der von der Instruktion geforderten Operationen in diesem Ausführungsbeispiel folgendermaßen adressiert. Die zentrale Recheneinheit liefert zuerst die logische Anfangsadresse eines Operanden, die dem ersten Byte des Operanden entspricht. Nachdem das erste Byte erfolgreich vom Hauptspeicher adressiert wurde, liefert der Rechner die logische Adresse des zweiten Byte des Operanden usw., bis das letzte Operandenbyte adressiert wurde. Wie bereits gesagt, entsteht das Problem einer teilweise ausgeführten Instruktion, wenn die Operandenadresse die Grenze einer nicht verfügbaren Seite überschreitet. Wie dieses Problem erfindungsgemäß gelöst wird, geht aus der genaueren ä Beschreibung der Fig. 2A, 2B und 3 und 4 hervor. Das vom Taktgeber 60 erzeugte und in Fig. 3 gezeigte Taktsignal ist links oben neben jedem Block in Fig. 4 genauso angegeben, wie die Signale in den Fig. 2A und 2B neben der Ja-Nein-Anzeige, wenn die Verarbeitung in einem oder dem anderen der beiden Blocks in Fig. 4 weiterläuft.
Die genaue Beschreibung der Erfindung beginnt mit der Übertragung eines Startsignales S, in Block 99 in Fig. 4 angedeutet, über eine der Leitungen 13 von der zentralen Recheneinheit 10 in Fig. 1 auf die dynamische Adressübersetzungseinheit 20. Zu diesem Zeitpunkt wird auch die logische Anfangadresse des Operanden über die Leitungen 10a zusammen mit ent- I
sprechenden Instruktionsdaten über die Leitungen 1OB gesendet. Dieses Startsignal S wird über die in Fig. 3 gezeigte Oder-Schaltung 59 auf den Taktgeber 60 gegeben (der das Signal C0 erzeugt, während er das Startsignal S erwartet), damit er als nächstes das Signal C1 erzeugt und damit den Assoziativspeicher 30, auch als Assoziativschaltung bezeichnet, sowie den Assoziativspeicher-Vergleicher 35, auch als Assoziativ-Schaltungs-Vergleicher benannt, in Fig. 2a einschaltet.
Der Assoziativspeicher 30 in Fig. 2A ermöglicht der Adressübersetzungseinheit zur schnellen Adressübersetzung die Speicherung der physikalischen Seitenadressen, die einer relativ kleinen Anzahl von logischen Adressen
909834/1207
entsprechen. Diese logischen Adressen können nach jedem gewünschten Prioritätssystem über Leitungen 13 von der zentralen Verarbeitungseinheit empfangen oder auf diese gegeben werden. Das Prioritäts system ist bo aufgebaut, dall die Anwesenheit dieser physikalischen Seitenadreesen im Assoziativspeicher 30 eine Anzeige dafür ist, daß die entsprechenden Seiten im Hauptspeicher für die Adressierung zur Verfügung stehen. Der Assoziativspeicher 30 kann typischerweise acht Register enthalten, von denen jedes den Segment- und den Seitenteil einer zuletzt übersetzten logischen Adresse und die dieser Adresse entsprechende physikalische Seiten- £ adresse im Hauptspeicher enthält.
Da der Assoziativspeicher 30 während der Zeit C, zusammen mit dem Assoziativspeicher-Vergleicher 35 eingeschaltet ist, werden die Segment- und Seitenteile der acht logischen Adressen, die in jedem der acht Register des Assoziativspeichers 30 gespeichert sind, auf den Eingang 35 des Assoziativspeicher-Vergleicher s 35 zum parallelen Vergleich mit den Segment- und Seitenteilen der logischen Adressen gegeben, die von der zentralen Verarbeitungseinheit über die Und-Schaltungen 32 auf den Eingang 35 des Assoziativspeicher-Vergleichere 40 geliefert werden. Diese Operationen werden durch die Blocks 100 und 101 in Fig. 4 dargestellt, denen ^ der Block 99 vorausgeht. Für die vorliegende Beschreibung wird ein erfolgreicher Vergleich angenommen, woraufhin der Assoziativspeicher-Vergleicher 35 ein echtes Ausgangs signal A- liefert, so daß als-nächstes die Funktionen im Block 102 in Fig. 4 ablaufen.
Block 102 stellt die Durchführung einer Prüfung während des Signalee C dar, um festzustellen, ob die vorliegende Instruktion eine I -Instruktion ist, was zu dem oben beschriebenen Problem einer teilweise auegeführten Instruktion führt, wenn der Operand die Seitengrenze überschreitet. Eine I -Instruktion wird durch die Stellung der Kippschaltung LI in Fig. 2B angezeigt, die durch ein Signal I eingeschaltet wurde, das über eine der
909834/1207
entsprechenden Instruktionsleitungen 1OB in Fig. 2A angelegt wurde. Wenn die Kippschaltung LI nicht eingeschaltet ist und dadurch angezeigt wird, daß die Instruktion nicht nur teilweise ausgeführt wird (weil der Operand notwendigerweise auf nur einer Seite steht), sind keine Sonder schritte erforderlich und der Taktgeber 60 in Fig. 3 erzeugt als nächstes das Signal C_, so daß der Funktionsablauf in den Block 103 in Fig. 4 übergeht und die Übersetzung auf der logischen Anfangsadresse fertigstellt. Das Signal C erzeugt die Anfrage für das gespeicherte Datensignal R über die
U 'S
in Fig. 2A gezeigte Oder-Schaltung 43, öffnet Und-Schaltungen 46 und läßt a
über eine Aus gangs leitung 3OC aus dem Assoziativspeicher 30 die physikalische Anfangsadresse auslesen, die dem Segment- und Seitenteil der logischen Anfangsadresse entspricht, die über die Und-Schaltungen 46 gegeben wurde. Diese physikalische Anfangs Seitenadresse wird mit dem Byteteil der logische.n Anfangsadresse kombiniert und so die physikalische Adresse des ersten Operandenbyte erzeugt, die auf den in Fig. 1 gezeigten Hauptspeicher Γ5 über die Leitungen 2OA zusammen mit der Anforderung für das gespeicherte Datensignal Rc gegeben wird, um das erste Operan-
denbyte zu adressieren. Aus Fig. 3 geht hervor, daß das Signal C_ als nächstes Zeitsteuersignal vom Taktgeber 60 erzeugt wird, wenn die Kippschaltung LI1 nicht durch ein I -Signal eingeschaltet wird, da der Ausgang
1 . X J
I1 1 der Kippschaltung LI1 falsch ist, wenn der Ausgang A0 des Assoziativ- ^
1 1 ο
speicher-Vergleichers 32 richtig ist, wodurch die Und-Schaltung 61 ein richtiges Aus gange signal über die Oder-Schaltung 62 abgibt und den Taktgeber 60 zur Erzeugung des nächsten Signales C» veranlaßt.
Wenn auf der anderen Seite eine Instruktion nur teilweise ausgeführt werden kann, weil der Operand eine Seitengrenze überschreitet, dann wird von der zentralen Verarbeitungseinheit das I -Signal abgegeben, um so die Kippschaltung LI- einzuschalten, die dann das Aus gange signal Ij abgibt. Infolgedessen laufen die im Block 104 in Fig. 4 während der Zeit des Signales C. angegebenen Funktionen ab. Block 104 zeigt die Durchführung
909834/1207
ϊ 8.0 3 7 67
- 14 -
einer Prüfung während der Zeit des Signales C , um festzustellen, ob die notwendigen Adressendoperationen ausgeführt wurden oder nicht, die die teilweise Ausführung einer Instruktion in dem Fall verhindern sollen,wenn der Operand eine Seitengrenze überschreitet. Nach Beendigung derartiger Operationen wird die Kippschaltung LI_ in Fig. 2B eingeschaltet, die ein Signal I abgibt, wenn das Signal Ä erscheint, wodurch der Taktgeber 60 in Fig. 3 als nächstes das Signal C- auf Grund eines Signales erzeugt,
Ca
das er über die Und-Schaltung 68 und eine Oder-Schaltung 62 empfing. Die Funktionen laufen dann im Block 103, wie vorher weiter.
Wenn die erforderlichen Endadressoperationen bei einer I -Instruktion nicht ausgeführt würden, wird die Kippschaltung LI7 in Fig. 2B nicht ein-
Lt
geschaltet, so daß das Ausgangs signal I ' zusammen mit dem Ausgangssignal I1 erscheint, wenn das Signal A_ auftaucht, wodurch die Und-Schaltung 64 in Fig. 3 ein Signal erzeugt, durch welches der Itktgeber 60 als nächstes das Signal C- anstelle des Signales C erzeugt. Nun geht der Funktionsablauf in Fig. 4 nicht zum Blick 103, sondern zu den Blocks 105 und 106 über, wo bestimmt wird, ob der Operand eine Seitengrenze überschreitet, indem die Endadresse der Operanden errechnet und weiter ge prüft wird, ob sie auf einer anderen Seite steht als die logische Anfangsadresse»· Diese Prüfung erfolgt dadurch, daß das Signal C den Addierer 50 und das Summenregister 40 in Fig. 2A einschaltet und die Und-Schaltungen 49, 51 und 52 öffnet. Infolgedessen wird ein Teil der auf den entsprechenden Leitungen 1OA enthaltenen logischen Adresse zu einem entsprechenden Teil der Instruktionsdaten addiert, die auf entsprechenden Leitungen 1OB. enthalten sind. Die Summe, die die Segment- und Seitenteile der logischen Endadresse darstellt, wird auf das Summenragister 40 gegeben, während ein eventuell auftretender Übertrag die Kippschaltung LK einschaltet. Außerdem wird während des Signales C_ die Kippschaltung LI_ in Fig. 2B über die Und-Schaltung 41 eingeschaltet um anzuzeigen, daß die erforderlichen Endadress operationen ausgeführt wurden.
909834/120?
Entsprechend der Adressorganisation des betrachteten Ausführungebeispiels zeigt ein Übertrag am Ausgang des Addierers 50 während der Zeit des Signalee C an, daß die Anfangs- und die Endadresse des Operanden auf verschiedenen Selten stehen, d.h. die ersten und letzten Bytes des Operanden stehen auf verschiedenen Seiten. Wenn umgekehrt kein Übertrag erfolgt, stehen die ersten und letzten Bytes des Operanden auf derselben Seite, der Inhalt des Summenregisters 40 kann dann ignoriert werden und der Taktgeber 60 in Fig. 4 erzeugt als nächstes hinter dem Signal C das Signal C_, so daß der Funktionsablauf in Fig. 4 dann vom Block 106 zum Block 103 weiterlaufen kann, in welchem die physikalische Adresse ausge- (J
lesen und, wie vorher, auf den Hauptspeicher gegeben wird. Dementsprechend erzeugt der Taktgeber 60 als nächstes ein Signal C- auf Grund eines Signales K', das auf eine Und-Schaltung 66 gegeben wurde zusammen mit dem Signal C_, das über eine Verzögerung 66A geleitet wird, die so gewählt ist, daß das verzögerte C -Signal an der Und-Schaltung 66 erst nach dem Zeitraum ankommt, durch den die Kippschaltung LK in Fig. 2A durch einen Übertrag eingeschaltet wurde. Wenn· also kein Übertrag entsteht, erscheint das Signal K1, wenn das verzögerte C -Signal an der Und-Schaltung 66 ankommt. Daher führt ein Auegangssignal über die Oder-Schaltung 62 an den Taktgeber 60, der ale nächstes nach einem C -Signal, ein C--Signal erzeugt. I
Wenn die physikalische Seitenadresse im Assoziativspeicher 30 steht, die der logischen Anfangsadresse entspricht, und wenn das erste und das letzte Byte des Operanden einer I -Instruktion auf derselben Seite stehen, können alle nachfolgenden Bytes des Operanden jetzt direkt durch die dynamische Adresse übersetzt werden, da die physikalische Seitenädresse für alle gleich ist. Während der Adressierung des Operanden bleiben die Kippschaltungen LI. und LI- eingeschaltet, so daß für jede nach der logischen Anfangsadresse gegebene logische Adresse die Funktionen die Blocks 100 bis 103 in Fig. 4 durchlaufen. Nach Adressierung des letzten Bytes im Operanden, sendet die zentrale Verarbeitungseinheit ein Endsignal E
909834/1207
8AD QRtOtNAL
über eine der Leitungen 13 in Fig. 1, das die Kippschaltungen LI1 und LI, in Fig. 2B über die Oder-Schaltung 44 und den Taktgeber 60 in Fig. 3 über die Oder-Schaltung 39 auf die Anfangs Stellungen zurückschaltet, so daß dieser wieder sein Anfangssignal C erzeugt,
Im'folgenden wird angenommen, daß die Kippschaltung LK in Fig. 2A auf Grund eines durch den Addierer 50 während eines C,-Signales erzeugten Übertrags eingeschaltet wird und dadurch anzeigt, daß das erste und das letzte Byte auf verschiedenen Seiten stehen, woraufhin die Instruktion nur teilweise ausgeführt wird, wenn die zweite Seite nicht verfügbar ist. Um
P dieses zu verhindern, müssen beide Seiten zur Verfügung gestellt werden,
bevor der Operand von der Hauptspeichereinheit adressiert wird. Die Verfügbarkeit der Seite mit dem ersten Byte des Operanden wurde bereits während des C1 -Signales festgestellt, da die physikalische Seitenadresse, die der logischen Anfangsadresse entspricht, im Assoziativspeicher 30 steht. Um die Verfügbarkeit der Seite mit dem letzten Byte des Operanden zu ermitteln, läßt man die Operationen vom Block 106 in Fig. 4 auf die Blocks 100 und 101 weiterlaufen, um zu prüfen, ob die physikalische Seitenadresse, die der logischen Endadresse des Operanden entspricht, im Assoziativspeicher 30 steht. Zu diesem Zweck läßt man den Taktgeber 60 in Fig. 3 wieder ein Signal C1 erzeugen, und zwar nach einem Signal
P C,, das auf Grund des Ausgangssignales der Und-Schaltung 66 über eine
Oder-Schaltung 59 auftritt als Ergebnis des Ausgangs signale s K der Kippschaltung LK während des Signales C- auf Grund eines Übertrages.
Da während dieses zweiten Auftretens des Signales C1 das Signal K richtig bedeutet, während das Signal K1 falsch bedeutet, werden der Segmentteil und der Seitenteil der logischen Endadresse, die während des Signales C- in das Summenregister 40 gesetzt wurden, jetzt über eine Und-Schaltung 76 auf den Assoziativspeicher-Vergleicher 40 gegeben, damit sie mit Segment- und Seitenteil der im Assoziativspeicher 30 gespeicherten logischen Adressen verglichen werden. Für die vorliegende Beschrei-
90983471207
SAD ORJGiNAL
bung wird angenommen, daß dieser Vergleich erfolgreich verläuft. Somit wird angezeigt, daß die zweite Seite, auf die sich der Operand erstreckt, zur sofortigen Übersetzung zur Verfügung steht. In diesem Fall laufen die Funktionen wieder wie in Block 102 in Fig. 4 weiter. Da die Kippschaltung LI während des Signales C, eingeschaltet wurde und damit die Durchführung der erforderlichen Endadressoperationen anzeigte, wird jetzt auf Grund des Signales I die Und-Schaltung 63 in Fig. 3 gültig, wenn der Assoziativspeicher-Vergleicher 35 ein Ausgangs signal A auf Grund eines
erfolgreichen Vergleiches erzeugt. Somit wird über die Oder-Schaltung 62 ein gültiges Signal auf den Taktgeber 60 gegeben, der als nächstes das f
Signal C abgibt, das die Kippschaltung LK über die Oder-Schaltung 77 zurückschaltet. Die Operationen laufen dann auf Block 103 in Fig. 4 weiter und geben die ph/sikalieche Anfangsadresse wie vorher auf den Hauptspeicher.
Wenn beide Seiten, auf die sich der Operand erstreckt, im Assoziativspeicher 30 stehen, kann das Problem einer teilweise ausgeführten Instruktion nicht auftreten, obwohl der Operand eine Seitengrenze überschreitet. Außerdem können die Bytes des Operanden auf beiden Seiten sofort durch die Adressübersetzungseinheit übersetzt werden, da die für jede aufgegebene logische Adresse sich ergebende erforderliche physikalische Adresse durch f
Kombination ihres Byteteiles mit der entsprechenden aus dem Assoziativspeicher 30 ausgelesenen physiakli sehen Seitenadresse zu erhalten ist, die je nach Lage entweder die physikalische Seitenanfange- oder -endadresse ist.
Bis jetzt wurde angenommen, daß die physikalische Anfangs- und Endadresse eines sich über zwei Seiten erstreckenden Operanden bereits im Assoziativspeicher 30 steht. Da dessen Speicherkapazität jedoch begrenzt ist, können eine der beiden Adressen oder auch beide im Hauptspeicher stehen. In diesem Fall laufen die Funktionen in den Blocke 108 bis 113, dargestellt in Fig. 4 ab, die im folgenden genauer beschrieben werden. Während des vom Taktgeber 60 in Fig. 3 erzeugten ersten Signales C^
909834/1207
laufen die Operationen in den Blocks 100 und 101 in Fig. 4 ab und die Segment- und, Seitenteile der logischen Anfangsadresse werden mit den Segment- und Seitenteilen der im Assoziativspeicher 30 gespeicherten logischen Adressen verglichen.
Da im vorliegenden Fall angenommen wird, daß die physikalische Seitenadresse der logischen Anfangsadresse nicht im Assoziativspeicher 30 steht erzeugt der Assoziativspeicher-Vergleicher 35 in Fig. 2B ein Signal A ,
welches einen fehlerhaften Vergleich anzeigt, so daß der Taktgeber 60 in Fig. 3 als nächstes das Signal C., nach dem Signal C1, erzeugt und nicht das Signal C- oder C , wie vorher. Somit laufen die Operationen in den Blocks 108 bis 113 in Fig. 4b ab, in denen die Segment- und Seitenteile der logischen Adresse dazu verwendet werden, die Lage der benötigten physikalischen Seitenadresse im Hauptspeicher zu ermitteln und, soweit verfügbar oder zur Verfügung gestellt, zu adressieren und zusammen mit der angelegten logischen Anfangsadresse in den Assoziativspeicher 30 zu laden. Wenn die physikalische Seitenadresse nicht im Assoziativspeicher 30 steht, wird die Einstellung der Kippschaltung LJL in Fig. 1 während der Operationen ungeachtet der Möglichkeit ausgeführt werden, daß die Instruktion eventuell nur teilweise ausgeführt wird. In jedem Fall muß die ™ entsprechende physikalische Seitenadresse in den Assoziativspeicher 30 gebracht werden. Zu diesem Zweck müssen die Segment- und Seitenteile der angelegten logischen Anfangsadresse dazu verwendet werden, die Lage der physikalischen Seitenadresse im Hauptspeicher abzuleiten. Wie bereits erwähnt, erfolgt dies durch Ubersetzungsdaten, die in den Segment- und Seitentabellen enthalten sind, die im Hauptspeicher «tarch die zentrale Recheneinheit unter Steuerung eines Überwachungsprogrammes erhalten werden.
Wenn die logische Anfangtadresse eines Operanden auf die dynamischen Adressübersetzungsleitungen über die . Leitungen 1OA gegeben wird, lädt ein entsprechender Teil der gleichzeitig über die Leitungen 1OB übertragenen Instruktionsdaten das Segmentregister 45 in Fig« EB mit einer Information,,
909834/1207
BADORiGiNAL
die die UrSprungsadresse und Länge einer Segmenttabelle im Hauptspeicher bezeichnet. Jede Segmenttabelle enthält mehrere Eintragungen, von denen jede wiederum Ursprung und Länge einer Seitentabelle bezeichnet, wobei die Länge der Segmenttabelle durch die Anzahl der darin enthaltenen Eintragungen bestimmt wird. Der Segmentteil der angelegten logischen Anfangsadresse enthält eine Segmenteintragungsnummer, die eine bestimmte Eintragung in der durch das Segmentregister 45 bestimmten Segmenttabelle bezeichnet. Wenn diese Segmenteintragungsnummer größer als die durch das Segmentregister 45 angegebene Länge der Segmenttabelle ist, heißt das, daß momentan keine Seitentabelle im Hauptspeicher für die phy- ^ alkalische Seite steht, die der angelegten logischen Anfangsadresse entspricht. In diesem Fall steht die geforderte Seite nicht zur Verfügung, weil sie z. B. im Sekundärspeicher steht.
Somit muß zuerst bestimmt werden, ob die durch den Segmentteil der logischen Anfangsadresse angegebene Segmenttabellen-Eintragungsnummer größer als die Länge der jeweiligen Segmenttabelle ist, deren Ursprung und Länge durch die Instruktionsdaten in das Segmentregister 45 in Fig. 2B geladen wurden. Diese Operation ist in Block 108 in Fig. 4 dargestellt und wird durch das Signal C. ausgeführt, das den in Fig. 2B gezeigten Tabellenlängenvergleicher 55 einschaltet und die Und-Schaltungen 42 und 96 öffnet, um so einen Vergleich der in das Segmentregister 45 I
durch die Instruktionsdaten geladenen Segmenttabellenlänge mit der durch den Segmentteil der logischen Anfangsadresse angegebenen Segmenteintragungsnummer zu ermöglichen. Wenn im Augenblick angenommen wird, daß die Segmenteintragungsnummer größer ifet, dann zeigt das Aus gangs signal J des Tabelle nlängenver gleiche rs 55 an, daß die Segmenttabelleneintragung nicht zur Verfügung steht. Dann erzeugt der in Fig. 3 gezeigte Taktgeber 60 als nächstes das Signal Cn nach dem Signal C., wodurch die dynamische Übersetzungseinheit in die Anfangs stellung zurückkehrt und geeignete Schritte- von der zentralen Verarbeitungseinheit auf Grund des während des Signales C4 über Leitungen 13 erhaltenen Signales J1Q erwar-
909834/1207
BAO ORIGINAL
tet. Die Zentraleinheit kann entweder sofort die geforferte Eintragung in die Segmenttabelle setzen oder die Instruktion erst nach der Ausführung anderer Instruktionen ausführen, so daß dann die dynamische Adressübersetzungseinheit Operandenadressen anderer Instruktionen übersetzen kann, da sie ja nach dem G. -Signal in die Anfangs stellung zurückgebracht wurde.
Wenn die zentrale Recheneinheit die erforderliche Eintragung in der durch die Instruktion aufgerufenen Segmenttabelle zur Verfügung gestellt hat und zur Ausführung der auf Grund der fehlenden Eintragung vorher nicht durchführbaren Instruktion bereit ist, überträgt sie das Anfangs signal S wieder zusammen mit der logischen Anfangeadresse und den zugehörigen Instruktionsdaten. Die dynamische Adressübersetzungseinheit fängt dadurch wieder mit den Operationen im Block 99 in. Fig. 4 an. Wenn die Operationen im Block 108 angelangt sind, stellt der Tabellenlängenvergleicher 55 auf Grund der Erzeugung des Signales C. nach dem Signal C1 fest, daß die durch den Segmentteil der logischen Anfangsadresse angegebene Se gme nt-Eintragung szahl nicht größer als die durch das Segmentregister 45 angegebene Segmenttabellenlänge ist, da die zentrale Recheneinheit die vorher fehlende Eintragung zur Segmenttabelle hinzuaddiert hat. Nun erzeugt der Tabellenlängenvergleicher 55 ein Aus gangs signal J , das über die Und-Schaltung
A.
fe in Fig. 3 auf den Taktgeber 60 läuft, der als nächstes das Signal C_ er-
zeugt, so daß jetzt die Operationen in den Blocks 109 und 110 in Fig. 4 weiterlaufen. In diesen Blocks wird die Adresse der durch den Segmentteil der. logischen Anfangsadresse aufgerufenen bestimmten Segmenttabelleneintragung abgeleitet und über die Leitungen 2OC auf den Hauptspeicher gegeben, indem das Signal C_ den Addierer 50 einschaltet und die Und-Schaltungen 47, 53 und 54 öffnet. Infolgedessen wird der Segmentteil der logischen Anfangeadresse zu der vom Segmentregister 45 gelieferten Ursprungsadresse der Segmenttabeilen hiizuaddiert'und die, die Eintragungs- . adresse in der Segmenttabelle darstellende Summe über Leitungen 2OC zusammen mit dem durch das Signal G> über die Oder-Schaltung 43 erzeug -
909834/1207
ten Anfrage signal für gespeicherte Daten R auf den Hauptspeicher über-
tragen.
Die dynamische Adressübersetzungseinheit erwartet dann den Empfang des Vörschaltsignals M (Fig. 1) vom Hauptspeicher 15, das anzeigt, daß die aufgerufene Segmenttabelleneintragung über die Leitungen 12A gesendet und in das Seitenregister 65 in Fig. 2B geleitet wurde. Das während des Signales C auftretende Signal M wird auf die in Fig. 3 gezeigte Und-Schaltung 68 gegeben und läßt den Taktgeber 60 als nächstes das Signal C, erzeugen, woraufhin die Operationen im Block 111 in Fig. 4 ablaufen. %
In Block 111 laufen grundsätzlich dieselben Operationen während des Signales Cy ab, wie im Block 108 während des Signales C ., mit der Ausnahme, daß der in Fig. 2B gezeigte Tabellenlängenvergleicher 55 jetzt die in das Seitenregister 65 geladene Seitentabellenlänge mit der durch den Seitenteil der angelegten logischen Anfangsadresse angegebenen ,Seiteneintragungszahl vergleicht. Der Vergleich kommt zustande, weil das Signal C, den Tabellenlängenvergleicher 55 einschaltet und die Und-Schaltungen 56 und 57 in Fig. 2B öffnet, so daß die im Seitenteil der Iogrschen Anfangs adresse enthaltene Seiteneintragungsnummer gleichzeitig mit der vom Seitenregister 65 kommenden Seitentabellenlänge auf den Vergleicher 55 ge- f geben wird, ' __ .'
Wenn der Tabellenlängenvergleicher 55 in Fig. 2B feststellt, daß die Tabellenseitenzahl größer ist, wird das Signal J erzeugt und es laufen dieselben Operationen ab, wie sie bei der Erzeugung des Signales J im Block 108 während des Signales Q, beschrieben wurde. Wenn die zentrale Recheneinheit die geforderte Seitentabelleneintragung zur Seitentabelle hinzuaddiert hat und zur Ausführung der Instruktion bereit ist, sendet sie das Startsignal S und es laufen dann wieder die Operationen im Block 99 in Fig. 4 ab.
9098 34/120 7
Wenn der Tabellenlängenvergleicher 55 in Fig. 2B feststellt, Qäß die durch' den Seitenteil der logischen Anfangsadresse angegebene Seiterieinäragungszahl nicht größer als die durch das Seitenregister 65 angegebene S'eiteritä-5 bellenlänge ist, erzeugt der Vergleicher das Ausgangs signal J., das die Und-Schaltung 69 in Fig. 3 einschaltet und den Taktgeber 60 als nächstes' nach dem Signal C, das Signal C_ erzeugen läßt, woraufhin die Operationen in den Blöcken 112 und 113 in Fig. 4 ablaufen. "
In diesen während des Signales C ablaufenden Operationen der Blöcke 112 und 113 wird die Adresse der durch den Seitenteil der logischen Anfangs adresse aufgerufenen Seitentabelleneintragung abgeleitet und über die Leitungen 2OC auf den Hauptspeicher übertragen, und zwar durch das Signal· C , das den Addierer 50 einschaltet und die Und-S Haltungen 47, 78 und 79 öffnet. Dadurch wird der Seitenteil der logischen Anfangsadresse zuder durch das Seiten register 65 gelieferten Ursprungsadresse der Seitentabelle hinzuaddiert und die, die Eintraglingsadresse der SeitentabeJle darstellende j Summe über die Leitung 2OC zusammen mit dem Anfrage signal für gespeicherte Daten R_, das durch das Signal C über die Oder-Schaltung 43" erzeugt wurde, auf den Hauptspeicher gegeben.
Die dynamische Adressübersetzungseinheit erwartet darin den Empfang des Vorschaltsignals M (Fig. 1) vom Hauptspeicher 15, welches anzeigt, daß die angeforderte Seitentabelleneintragung über die Leitungen ISA auf die dynamische Adressübersetzungseinheit übertragen und Jn den In Fig. ZA gezeigten Assoziativspeicher 30 geladen wurde, zusammen mit den entsprechenden Segment- und Seitenteilen der Anfangsadresse. Diese Ladung erfolgt durch das Signal C_, das die Und-Schaltungen 46 und ti öffnet und den Assoziativspeicher 30 so schaltet, daß die vom Hauptspeicher empfangene physikalische Seitenadresse und die Segment- und Seitenteile der Aiii fangsadresse im entsprechenden Register des Assoziativsp^xcherä 30^^- ^ speichert werden. Wenn alle Register voll sind, wird dasjenige Registe'ir : gelöscht, das seine Daten ana längsten gehalten hat und mit neuen Dateri -
909834/1207 s >
gefüllt. Der Empfang des M -Signales während des Signales C7 nach dieser Speicherung im Assoziativspeicher 30 führt dazu, daß ein Signal über die Und-Schaltung 73 und eine Oder-Schaltung 59 auf den Taktgeber 60 in Fig. 3 gegeben wird, der dann wieder das Signal C. erzeugt, woraufhin die Operationen in den Blöcken 100 und 101 in Fig. 4 weiterlaufen.
Da die der angelegten logischen Anfangsadresse entsprechende physikalische Seitenadresse während der Operationen in den Blöcken 108 bis 113 in den Assoziativspeicher 30 gesetzt wurde, führen die Operationen in den Blöcken 100 und 101 zu einem erfolgreichen Vergleich, wie in dem angenommenen Fall, in dem die physikalische Seitenadresse von Anfang an im Assoziativspeicher 30 stand.
Zuvor wurde angenommen, daß die physikalische Seitenadresse im Assoziativspeicher 30 stand, die der logischen Bndadresse entsprach. Im folgenden wird angenommen, daß die der logischen Endadresse entsprechende physikalische Seitenadresse nicht im Assoziativspeicher 30 steht. Demzufolge beginnen die Operationen in den Blöcken 108 bis 113 und verlaufen genauso mit den Segment- und Seitenteilen, der logischen Endadresse, wie bei der nicht im Assoziativspeicher 30 stehenden logischen Anfangsadresse. Diese Operationen folgen aus den Ausgangssignalen K und K1 durch entsprechende Stellung der Kippschaltung LK» so daß die Und-Schaltungen 76 ™ geöffnet" sind, während die Und-Schaltungen 32 geschlossen sind, wodurch die logische Endadresse im Summenregister 40 jetzt, während der Operationen in den Blöcken 108 bis 113, anstelle der logischen Anfangsadresse verwendet wird. Das Segmentregister 45 in Fig. 2B braucht für diese Operationen nicht neu geladen zu werden, da das System so organisiert ist, daß beizeiten derselben Segmenttabelle entsprechen, obwohl der Operand auf zwei verschiedenen Seiten stehen kann. In diesem'Fall gelten Ursprungsadresse und Segmenttabellenlänge, die am Beginn der Operationen in das Segmentregister 45 geladen wurde, während der Operationen 108 bis 113, sowohl fttr die Anfangs- als auch für die logische Endadresse.
90983Λ/1207
Da die dynamische Adressübersetzungseinheit für die Segment- und Seitenteile der logischen Endadresse während der Operationen der Blöcke 108 bis 113 in Fig. 4 genauso arbeitet, wie sie für die logische Anfangs adresse beschrieben wurden, wird die Beschreibung nicht wiederholt.. Wenn die im Block 113 angegebenen Operationen für die logische Endadresse beendet sindi ist die entsprechende physikalische Seitenadresse, zusammen mit den entsprechenden Segment- und Seitenteilen der logischen Endadresse, in den Assoziativspeicher 30 geladen. Die Operationsfolge kehrt dann zu den Blöcken 100 und 101 zurück, die diesesmal feststellen, daß die der logischen Endadresse entsprechende physikalische Seitenadresse im Assoziativspeicher 30 steht, woraufhin die Operation der Blöcke 102 und 103 ablaufen und den Operanden, wie oben beschrieben, adressieren.
909834/1207

Claims (3)

- 25 - Böblingen, 17. Oktober 1968 jo-hn • PATENTANSPRÜCHE
1. Elektronisches Datenverarbeitungssystem mit einem inf ormations-
: gruppen-orientierten (seitenorientierten) virtuellen Speicher und einem dynamischen Adressübersetzer zur Adressierung der Operanden in dem Speicher, dadurch gekennzeichnet, daß in dem. dynamischen Adressübersetzer (20; Fig. 1) eine Einrichtung zur Adressenvoraussch.au vorgesehen ist, die feststellt, ob die Länge eines Operanden größer als eine Informationsgruppe (Seite) ist Λ
und ob in diesem Fall alle Informationsgruppen zur Adressierung im Speicher (15) vorhanden sind, und daß in dem dynamischen Adressenübersetzer eine Steuereinrichtung (Fig. 2A, 2B und 3) enthalten ist, welche die Adressierung eines Operanden nur dann freigibt, wenn alle Inf ormations gruppen, über die sich ein Operand erstreckt, im Speicher vorhanden sind.
2. Elektronisches Datenverarbeitungs system nach Anspruch 1, dadurch gekennzeichnet, daß der dynamische Adressübersetzer (20; Fig. 1) eine assoziative Schaltung (30; Fig. 2A) enthält, welche vor der Operandenadressierung im Speicher (15; Fig. 1) die Übersetzungs- « daten für alle Informationsgruppen (Seiten) des Operanden speicher^ so daß die logischen Adressen unmittelbar nach dem Einleiten der Operandenadressierung als echte Adressen zur Verfügung stehen.
3. Elektronisches Datenverarbeitungs system nach den Ansprüchen 1 und 2, dadurch gekennzeichnet, daß die assoziative Schaltung (30; Fig. 2A) eine bestimmte Anzahl logischer Adressen und die zugehörigen echten Adressen speichert, daß ein Vergleicher (35) vorgesehen ist, der mindestens eine bestimmte logische Adresse einer Instruktion mit den in der assoziativen Schaltung vom System vorliegenden Adressen vergleicht und daß eine Vergleichsschaltung
909834/1207
(55; Fig. 2B) vorgesehen ist, die mit zusätzlichen Adressenregistern (45, 65), die Angaben über zu vergleichende Operandenadressen enthalten und die mit Leitungen (Ϊ0Α, SPELA; Tig. EA)
verbunden ist, die Angaben über die logische Anfangs- und Endadresse eines Operanden enthalten verbunden ist und diese Angaben vergleicht und Steuersignale (J , J) erzeugt, die den Ope-
A U
randenabruf starten oder verhindern, .je nachdem, ob im Speicher (15) ein vollständiger Operand verfügbar ist oder nicht.
909834/120
Γ Lee rs β i te
DE19681803767 1967-10-19 1968-10-18 Elektronisches Datenverarbeitungssystem Pending DE1803767A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US67815267A 1967-10-19 1967-10-19

Publications (1)

Publication Number Publication Date
DE1803767A1 true DE1803767A1 (de) 1969-08-21

Family

ID=24721609

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19681803767 Pending DE1803767A1 (de) 1967-10-19 1968-10-18 Elektronisches Datenverarbeitungssystem

Country Status (3)

Country Link
US (1) US3533075A (de)
DE (1) DE1803767A1 (de)
GB (1) GB1184006A (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL6806735A (de) * 1968-05-11 1969-11-13
JPS514381B1 (de) * 1969-11-24 1976-02-10
US3829837A (en) * 1971-06-24 1974-08-13 Honeywell Inf Systems Controller for rotational storage device having linked information organization
US3786427A (en) * 1971-06-29 1974-01-15 Ibm Dynamic address translation reversed
US3761881A (en) * 1971-06-30 1973-09-25 Ibm Translation storage scheme for virtual memory system
BE789583A (fr) * 1971-10-01 1973-02-01 Sanders Associates Inc Appareil de controle de programme pour machine de traitement del'information
US3764996A (en) * 1971-12-23 1973-10-09 Ibm Storage control and address translation
US3891972A (en) * 1972-06-09 1975-06-24 Hewlett Packard Co Synchronous sequential controller for logic outputs
US3902164A (en) * 1972-07-21 1975-08-26 Ibm Method and means for reducing the amount of address translation in a virtual memory data processing system
US3854126A (en) * 1972-10-10 1974-12-10 Digital Equipment Corp Circuit for converting virtual addresses into physical addresses
US3839704A (en) * 1972-12-06 1974-10-01 Ibm Control for channel access to storage hierarchy system
US3786436A (en) * 1973-03-14 1974-01-15 Gte Automatic Electric Lab Inc Memory expansion arrangement in a central processor
US3825904A (en) * 1973-06-08 1974-07-23 Ibm Virtual memory system
FR130806A (de) * 1973-11-21
US3938100A (en) * 1974-06-07 1976-02-10 Control Data Corporation Virtual addressing apparatus for addressing the memory of a computer utilizing associative addressing techniques
US3958222A (en) * 1974-06-27 1976-05-18 Ibm Corporation Reconfigurable decoding scheme for memory address signals that uses an associative memory table
FR119649A (de) * 1975-03-24
US3990051A (en) * 1975-03-26 1976-11-02 Honeywell Information Systems, Inc. Memory steering in a data processing system
US4025901A (en) * 1975-06-19 1977-05-24 Honeywell Information Systems, Inc. Database instruction find owner
GB1515376A (en) * 1975-07-09 1978-06-21 Int Computers Ltd Data storage systems
US4050094A (en) * 1976-04-30 1977-09-20 International Business Machines Corporation Translator lookahead controls
US4084226A (en) * 1976-09-24 1978-04-11 Sperry Rand Corporation Virtual address translator
US4084225A (en) * 1976-09-24 1978-04-11 Sperry Rand Corporation Virtual address translator
FR2437300A1 (fr) * 1978-09-26 1980-04-25 Cii Honeywell Bull Procede de detection anticipee de franchissement de limite de page et dispositif comportant application de ce procede
US4432053A (en) * 1981-06-29 1984-02-14 Burroughs Corporation Address generating apparatus and method
JPH0656594B2 (ja) * 1985-05-07 1994-07-27 株式会社日立製作所 ベクトルプロセツサ
US5072372A (en) * 1989-03-03 1991-12-10 Sanders Associates Indirect literal expansion for computer instruction sets
US5282274A (en) * 1990-05-24 1994-01-25 International Business Machines Corporation Translation of multiple virtual pages upon a TLB miss
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

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB979632A (en) * 1960-04-20 1965-01-06 Nat Res Dev Improvements in or relating to electronic digital computing machines
US3230513A (en) * 1960-12-30 1966-01-18 Ibm Memory addressing system
US3292151A (en) * 1962-06-04 1966-12-13 Ibm Memory expansion
DE1218761B (de) * 1963-07-19 1966-06-08 International Business Machines Corporation, Armonk, N. Y. (V. St. A.) Datenspeidbereinrichtung
US3317902A (en) * 1964-04-06 1967-05-02 Ibm Address selection control apparatus
US3432810A (en) * 1966-05-31 1969-03-11 Ibm Addressing system for a computer employing a plurality of local storage units in addition to a main memory

Also Published As

Publication number Publication date
GB1184006A (en) 1970-03-11
US3533075A (en) 1970-10-06

Similar Documents

Publication Publication Date Title
DE1803767A1 (de) Elektronisches Datenverarbeitungssystem
DE2716369C2 (de)
DE2231146C3 (de) Datenverarbeitungsanlage mit virtueller Adressierung
DE2350884C2 (de) Adreßumsetzungseinheit
DE2117936C3 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
DE1499722C2 (de) Einrichtung zur Modifizierung von Informationswörtern
DE2346525B2 (de) Virtuelle Speichereinrichtung
DE2523414A1 (de) Hierarchische speicheranordnung
DE1956604B2 (de) Datenverarbeitungsanlage
DE2063197A1 (de) Anordnung zur numerischen Steuerung von Werkzeugmaschinen
DE1774296B2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE1549523B2 (de) Datenverarbeitungsanlage
DE3113195A1 (de) "speicheradressiervorrichtung"
DE2234867A1 (de) Anordnung in datenverarbeitungsanlagen zum steuern der verarbeitung zweier voneinander unabhaengiger programme
DE19822776A1 (de) Datenverarbeitungsvorrichtung
DE2019444A1 (de) Datenverarbeitungsanlage
DE2230987A1 (de) Datenspeichervorrichtung vom drehtyp
DE2556624A1 (de) Schaltungsanordnung zur asynchronen datenuebertragung
DE2547488A1 (de) Mikroprogrammierte datenverarbeitungsanlage
DE2755611A1 (de) Steuereinheit fuer datenverarbeitungsanlagen
DE1499730A1 (de) Einrichtung zur Speicherauswahl
DE1115488B (de) Datenverarbeitungssystem
DE2245284A1 (de) Datenverarbeitungsanlage
DE2530599A1 (de) Steuerung von ein/ausgabe-geraeten
DE2537360A1 (de) Elektronische datenverarbeitungsanlage