DE2456710A1 - Einrichtung zum packen von seitenrahmen eines hauptspeichers mit datensegmenten - Google Patents

Einrichtung zum packen von seitenrahmen eines hauptspeichers mit datensegmenten

Info

Publication number
DE2456710A1
DE2456710A1 DE19742456710 DE2456710A DE2456710A1 DE 2456710 A1 DE2456710 A1 DE 2456710A1 DE 19742456710 DE19742456710 DE 19742456710 DE 2456710 A DE2456710 A DE 2456710A DE 2456710 A1 DE2456710 A1 DE 2456710A1
Authority
DE
Germany
Prior art keywords
segment
register
address
page frame
page
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
DE19742456710
Other languages
English (en)
Inventor
Francis Daniel Lawlor
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 DE2456710A1 publication Critical patent/DE2456710A1/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)

Description

3öblingen, den 26. November 1974
Anmelderin: International Business Machines
Corporation, Armonk, N.Y. 10504
Amtliches Aktenzeichen: Neuanmeldung Aktenzeichen der Anmelderin: PO 973 022
Einrichtung zum Packen von Seitenrahmen eines Hauptspeichers mit Daten-Segmenten -
Diese Erfindung betrifft eine Einrichtung zum Packen mehrerer Segmente in einen Seitenrahmen in einem Gomputerhauptspeicher. :Der Computerspeicher umfaßt einen Hauptspeicher und außerhalb dieses Hauptspeichers Einrichtungen, die Eingabe/Ausgäbe oder Quelle und Abnehmer genannt werden können. Der Computerspeicher ist in eine große Anzahl von gleichen Teilen unterteilt, die man Seitenrahmen nennt· (z.B. 2048 oder 4069 Bytes groß).
Ein Segment ist eine Einheit, die einen zusammenhängenden Adressierbereich umfaßt, der von der Maschinenausrüstung eines 'Computersystems zur Lokalisierung von Daten im Systemspeicher benutzt .wird..
Segmente können in unterschiedlichen Größen erzeugt werden, während die Größe der Seitenrahmen festliegt. Beide Größen . kann man in Bytes messen. Segmente, die ihre Größe nach der Erzeugung nicht verändern können, werden Festsegmente genannt, die Größe der veränderlichen Segmente kann nach der Erzeugung verändert werden. Die Segmentgröße kann von einem kleinen Bruchteil eines Seitenrahmens bis zu einer sehr großen Anzahl von
• 24 Seitenrahmen schwanken, z.B. von 0 bis 2 Bytes.
50 9 831/077 2
Ein kleines Segment kann als ein Segment definiert werden, welches kleiner ist als ein vorbestimmter Teil eines Seitenrahmens und ein großes Segment als ein Segment, welches größer ist als der vorbestimmte Teil eines Seitenrahmens.
Grundsätzlich ist der große Bereich der Segmentgrößen unverträglich {mit der"festen Seitengröße. Segmente oder Segmentteile müssen ijedoch in Seitenrahmen gesetzt werden, bevor sie durch Ausfühirungs programme benutzt werden können. Aus dieser Unverträglichkeit kann sich eine große Vergeudung von Speicherplatz im Hauptspeicher ergeben, da ein Segment nur einen kleinen Teil eines !Seitenrahmens belegen kann und der größte Teil daher unbenutzt bleibt.
tfenn das Segment groß ist, kann es eine große Anzahl von Seitenrahmen belegen und in diesem Fall in eine Anzahl von Seiten zer-'legt werden, wobei jede dieser Seiten in eine Seitenrahmen-Maschineneinheit im Hauptspeicher übertragbar ist. Großsegmente sind daher relativ mit den Seitenrahmen verträglich, weil nur die· letzte Seite eines Segmentes ungenutzten Raum in einem Rahmen lassen kann und somit große Segmente zu einer geringen Vergeudung [führen.
per Erfindung liegt daher die Aufgabe zugrunde, den Ausnutzungsgrad jdes Hauptspeichers bei Verwendung von Segmenten variabler Länge jzu verbessern.
Diese Aufgabe wird durch die im Kennzeichen des Hauptanspruches beschriebene Einrichtung gelöst.
Die Erfindung ist primär auf die Reduzierung der Größenunverträglichkeit zwischen Seitenrahmen und kleinen Segmenten gerichtet, obwohl sie gleichzeitig alle Segmentgrößen fester und veränderlicher Art behandelt. Die Erfindung tut dies durch Unterstützung der Packung mehrerer Segmente in einen Seitenrahmen. Zum Packen feines Seitenrahmens gehört, daß nur mehrere kleine Segmente mit
i
PO>73OM 609831/0772
fester Länge oder mehrere kleine Segmente mit fester Länge und ein ganzes oder ein Teil eines Segmentes mit veränderlicher Länge oder ein Teil eines großen Segmentes in einen Seitenrahmen gesetzt werden.
Die Erfindung kann den Wirkungsgrad bei der Speiehernutzung im System wesentlich verbessern durch eine breite Lösung der grundlegenden Unverträglichkext zwischen kleinen Segmenten fester Länge und der Seitenrahmengröße des Hauptspeichers.
Die Erfindung unterstützt auch die Adressierung von Daten in j einem Segment, die an einer von mehreren in einem Seitenrahmen vorgesehenen Unterteilungen beginnen kann. Die Erfindung wird an ein segmentiertes virtuelles Adreßsystem angeschlossen in einer Art, die Zugriff zu einem Byte in einem Segment in einer konsistenten Weise gestattet, ungeachtet dessen, ob der Zugriff zu gepackten oder nicht gepackten Seitenrahmen erfolgt.
Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und werden anschließend näher beschrieben..
Es zeigen:
Fign. 1A, 1B, Geräte zur Erzeugung gepackter und nicht gepäck-1C, ID und 1E ter Segmente/ ·
Fign. 2A, 2B einfache Beispiele für das Packen von Segmenten
in einem Seitenrahmen, I
Fig. 3 die Arbeitsweise der in den Fign. 1A bis 1C, i
gezeigten Geräte, " i
Fign. 4A und 4B ein Gerät zum Prüfen von Adressen vor dem Abschluß eines Zugriffes eines Operanden von einem gepackten Segment in einem Seitenrahmen, '
PO 973 022
B0983 1/07.7 2
5 die 24567 ΓΘ Seitenrahmenzuordnungsregister,
Fig. 6A die Form einer Segmentadresse und
Fig. 6B die Form einer Hauptspeicheradresse,
Fig.
Fign. 7A, 7B verschiedene Ädreßformen, die von dem in den 7C und 7C Fign. 1A bis 1C und 4A bis 4B gezeigten Gerät
benutzt werden,
Fig. 7E die Pack- und Ausrichtbeziehungen zwischen
Segmentseiten und virtuellen Seitenrahmen,
Fig. 8 die Seitenrahmenunterteilungen, die in den
Ausführungsbeispielen der Erfindung benutzt werden und
Fig. 9 die Arbeitsweise der in den Fign. 4A und 4B
gezeigten Gerät.
Zum besseren Verständnis des Ausführungsbeispieles sollen hier die Prinzipien der segmentierten Adressierung erläutert werden.
,Die segmentierte Adressierung arbeitet konventionellerweise mit dem in Fig. 6A gezeigten Adreßformat, um ein Byte in einem Segment zu lokalisieren, obwohl das Adreßformat in Fig. 6A die Anwendung
: dieser Erfindung ausschließt. Die Fig. 6A zeigt eine Segmentadres- !se, die ein SID-FeId (Segmentbezeichnungsfeld) enthält, welches jein Segment bezeichnet, ein Seitenfeld zur Lokalisierung einer !Seite im Segment, ein Displacement-Feld (DISP), welches die iByteverschiebung zur Lokalisierung eines Byte innerhalb der !Seite angibt. Das Seitenfeld und das Displacement-Feld bilden !zusammen eine Byteverschiebung im Segment auf ein adressiertes [Byte. Jedesmal wenn ein Byte in einem Segment mit dieser Segmentiadresse zu adressieren ist, übernimmt eine dynamische Adreßübersetzungseinrichtung (DATM) in der zentralen Verarbeitungsein-
po 973 022 5 0 9 8 31/0772
j hext (ZE) die Aufgäbe der Zuordnung eines Seitenrahmens zum j Empfang der Seite des dieses Byte enthaltenden. Segmentes. Dieser iZuordnungsprozeß ordnet einen verfügbaren Seitenrahmen im Haupt-]speicher dem Segmentbezeichnungs- und dem Seitenfeld in der Segimentadresse zu zur Bildung des zugehörigen Seitenrahmenfeldes in der in Fig. 6B gezeigten Hauptspeicheradresse. Danach wird der zugeordnete Seitenrahmen durch die DATM für das Segmentbezeichnungs- und Seitenfeld eingesetzt zur.Ersteilung der Hauptspeicheradresse des Byte, gemäß Darstellung in Fig. 6B. Die DATM setzt dasselbe Displacement-Feld in die Hauptspeicheradresse, das in der Segmentadresse angegeben ist.
Wenn die in den Fign. 6A und 6B gezeigte Adressierung benutzt wird, kann nur ein Element vom System einem Seitenrahmen im Hauptspeicher zugeordnet werden, was dazu führen kann, daß der j größte Teil des Platzes in einem Seitenrahmen vergeudet wird, wenn das Segment klein ist. Ein nur einige 100 Bytes großes Segment kann beispielsweise das einzige Segment im Seitenrahmen !sein, der 4096 Bytes groß ist, was dazu führt, daß ein Speicherplatz von mehr als 3000 Bytes in der Maschine ungenutzt ist, iwas einen niedrigen Wirkungsgrad bedeutet. Der Benutzter kann !natürlich seine Daten in Teile von Segmenten anstatt in separa- !te Segmente setzen, dadurch wird· die Last der Segmentverwaltung ,jedoch auf den Benutzer übertragen, der diese Last oft nicht
übernehmen kann. Setzt man mehrere kleine Datenobjekte in Teile eines einzelnen Segmentes, welches einen oder mehrere Seitenrahmen belegt, erübrigen sich dadurch kleine Segmente, der Benutzer muß jedoch sein eigenes Nebenverzeichnis für .diese gepackten Datenbbjekte erstellen, um sie in jedem Segment zu lokalisieren und"die ganze Speicherzuordnung und die Verwaltung vorsehen, die dieses Verzeichnisschema mit sich bringt. Das Ergebnis belastet den Benutzer, indem das System, noch schwieriger zu benutzen ist. Um die Systembenutzung zu vereinfachen, würde der Benutzer normalerweise nicht νβΓβμσΙιεη, unzusammenhängende kleine Datenobjekte in demselben Segment.zu kombinieren und würde einfach jedes von ihnen in ein anderes
PO 973 022 ~ηΛ
509831/0772
" 6 " 24567IQ
Segment setzen, um die automatischen Speicherzuordnungsein- ;richtungen und die automatischen Segmentschutzeinrichtungen benutzen zu können, die im System vorgesehen sind.
■Hält man die Größe der Seite kleiner, um sie der Größe der
[kleinsten Segmente anzunähern, so ist das„ebenfalls eine uner-Iwünschte Konstruktionslösung, da kleine Seitenrahmen die Systemmaschinenleistung ernsthaft beeinträchtigen, weil die Systemverwaltung für die Seitenbehandlung mit abnehmernder Seitengröße schnell zunimmt. Grundätzlich erhöht sich der Verwaltungsaufwand jedes Mal um die Potenz 2, wenn die Anzahl der Seitenrahmen verdoppelt wird. Dieses Dilemma kann man als das Problem der kleinen Segmente bezeichnen.
j Fig. 7Ä zeigt eine packbare Segmentadresse, die von dem Gerät in einem beschriebenen Ausführungsbeispiel benutzt wird. Die Form der Adresse in Fig. 7A hat eine große Ähnlichkeit mit der in Fig. 6A gezeigten. In Fig. 7A bilden ein Pack-Verschiebungsfeld (PO) und ein SGI-Feld zusammen ein SID-FeId der in Fig. 6A gezeigten Art. Das PO-FeId lokalisiert einen Teil in einem Seitenjrahmen der in Fig. 8 gezeigten Art. Ein Teil oder· eine ünterteillung kann ein durch ein SID bezeichnetes Segment enthalten.·
i ' ■■■■■-■-...■■
Fig. 7C zeigt die Metamorphose der Veränderung der Form einer packbaren Segmentadresse zur Form einer virtuellen Adresse durch das Gerät im Ausführungsbeispiel. Die PO-Bits werden mit den bei·- den werthöchsten Bits im Segment-Displacementfeld summiert und. die resultierenden Seiten- und Displacementfelder werden zum Inhalt eines Indexregisters summiert, wenn dieses vorgesehen ist. Das Endergebnis ist die virtuelle Adresse (VA), die.ein virtuelles Seitenrahmenfeld (V.P.F.) und ein virtuelles Displacementfeld (V.DISP.) enthält. Der virtuelle Seitenrahmen hat Grenzen, die auf die zuordnungsfähigen Seitenrahmen im Hauptspeicher ausgerichtet sind. Das V.DISP.rFeld lokalisiert jedes Byte im virtuellen Seitenrahmen. Beim Packen sind die virtuellen Seitenrahmen auf die Segmentseiten.ausgerichtet und
po 973 O22 509831/0772
ihre Ausrichtung ist aus dem in Fig. 7E gezeigten Beispiel zu ersehen. Die virtuelle Adresse wird durch eine dynamische Adreßübersetzungseinrichtung (DATM) zu der in Fig. 7D gezeigten Hauptspeicheradresse verändert, wobei ein Seitenrahmen dem SGI und dem virtuellen Seitenrahmenfeld zugeordnet wird, welches durch die virtuelle Adresse vorgesehen ist. Das Seitenrahmen-Displa-.cementfeld in Fig. 7D ist dasselbe, wie das virtuelle Displacementfeld in Fig. 7C. Der zugeordnete Seitenrahmen und das P.F. Displacement können dann im Hauptspeicher angesprochen werden. Die DATM kann eine konventionelle Anlage sein und bildet keinen Teil der Erfindung. Ein Beispiel ist beschrieben in der US-Patentanmeldung 36 70 309.
Fig. 8 zeigt die verschiedenen vom beschriebenen Ausführungsbeispiel benutzten Unterteilungen in einem Seitenrahmen, in dem ein Segment stehen kann, wenn ein PO-FeId von zwei Bits benutzt ■wird.
Die Fign. 1A bis 1C zeigen eine Maschinenausrüstung, die in eine zentrale Verarbeitungseinheit oder eine SpeicherSteuereinheit eingebaut werden kann, um die Erzeugung von Segmenten durch ein Datenverarbeitungssystem zu unterstützen. Die Maschinenanlage kann betätigt werden, wenn die ZE ein Segmenterzeugungskömmando ausführt, wie es in Fig, 1D gezeigt ist, welches Operanden hat, die die Eingabewerte für das in.den Fign. 1A bis TC gezeigte Ausführungsbeispiel enthalten. Die Operanden sind folgende:
N: Bezeichnet ein Zeigeregister, in dem ein Zeiger erzeugt wird, der den Adressierbarkeitsbereich für das neue erzeugte Segment angibt.
Z: Bezeichnet ein Register, welches die Größe des zu erzeugenden Segmentes in Bytes enthält. Die Segmentgröße
O A
kann zwischen O und 2-1 Bytes liegen.
F/V: Kennzeichen für feste/veränderliche Länge gibt an, ob das Segment eine feste oder eine veränderliche Länge haben soll (veränderliche Segmente können ihre Größe verändern).
Ar Bezeichnet ein Zeigerregister, welches die vorgeschriebene
PO 973 022 -
609831/0-772
245B71U
Segmentbezeichnung eines benachbarten Segmentes enthält, welches ein vorher erzeugtes Segment ist, mit dem das neue zu erzeugende Segment soweit möglich in denselben Seitenrahmen gepackt werden soll. Der Α-Operand ist ein wahlfreier Zusatz und auf 0 gesetzt, wenn keine Affinität vorgeschrieben ist. In diesem Fall ist das neue Segment das einzige in einen Seitenrahmen gesetzte Segment.
Das in den Fign. 1A, 1B und 1C gezeigte Ausführungsbeispiel kann bis zu vier Segmente in einem Seitenrahmen packen, in dem die letzte Unterteilung ein ganzes Segment mit veränderlicher Länge oder einen Teil davon oder den Anfangsteil eines großen Segmentes empfangen kann, d.h., in diesem Ausführungsbeispiel imuß ein gepacktes großes Segment oder ein Segment mit veränderilicher Größe in der letzten Unterteilung des Seitenrahmens beiginnen, ungeachtet dessen, ob ein, zwei oder drei kleine ι Segmente ebenfalls in die anderen Unterteilungen des Rahmens j gepackt sind. Nicht gepackte Segmente werden in der ersten Unterteilung begonnen.
iEin Segment wird abgegrenzt durch einen Zeiger, der außer einer |den Anfang des Segmentes bezeichnenden Adresse auch ein Z-FeId !hat, welches das Ende des Segmentes anzeigt, wie es in den jFign. 2A, B und C dargestellt ist. Die in den Fign. 7A oder |7C gezeigten Segmentadressen haben dieselbe Form wie der Zeiiger in Fig. 7B, jedoch haben sie kein Z-FeId und somit können Zeigerregister auch Segmentadressen aufnehmen. Die virtuelle Adresse wird in einer Hauptspeicheradresse auf konventionelle 'Weise übersetzt, um ein Byte eines Segmentes in einem Seitenrahmen zu adressieren. Die SID- und Seitenfelder in einer gepackten Segmentadresse setzen ein Segment ζμ einem Seitenrahmen 'im Hauptspeicher in Beziehung und alle in denselben Seitenrahmen gepackten Segmente haben dasselbe SID-FeId, jedoch unterschiedliche PO-Felder, wie es in Fig. 2C gezeigt ist. Die Kombination der PO- und SGI-Felder ergibt SID, wodurch jedes in den Seitenrahmen gepackte Segment eindeutig bezeichnet wird.
509831/0772
Der Betrieb der Fign. TA bis 1C beginnt, wenn ein Segmenterzeugungsbefehl der in Fig. ID gezeigten Art während der Ausführung ; eines Programmes decodiert wird. Die Register N, Z und A wurden \ vorher durch konventionelle Ladebefehle geladen. Wenn der Segment-j [erzeugungsbefehl die Ausführung beginnt, wird von der ZE auf !konventionelle Weise ein Startsignal erzeugt und auf die Start's ignalleitungen gegeben, die den Taktimpuls CP 20 in Fig. 1A !liefern.
;Der Betrieb der in den Fign. 1A bis 1C gezeigten Maschinenausirüstung läßt sich leichter anhand· des Betriebsdiagrammes in !Fig. 3 verfolgen, welches beim Schritt 10 beginnt, der Decodierung eines Segmenterzeugungsbefehles durch die ZE.
!Schritt 20 in Fig. 3 wird durch die in Fig. 1A gezeigte Maschinen·^ ausrüstung aufgrund des Empfanges eines Startsignales ausgeführt, !welches einen Taktimpuls GP 20 liefert. CP 20 leitet das SIG- !FeId im Affinitätsregister 14 an den L-Eingang eines Vergleichers 16 und ein Null-Signal in den R-Eingang des Vergleichers 16. ;Das Register 14 ist ein Zeigerregister, weiches den Zeiger für iein Affinitätssegment enthält, wenn eine Affinität vorgeschrieben ist. Wenn keine Affinität vorgeschrieben ist, enthält es eine Null-Einstellung.
Die Terminologie O und 1 wird hier benutzt zur Darstellung von izwei der verschiedener Spannungs/Strompegel. Wo als Eingang zu einer Leitung ein 0-Eingang oder 1-Eingang gezeigt ist, stellen sie eine Spannungs/Stromquelle dar, die die entsprechende von dieser Leitung benötigte Sparinungs/Stromquelle bildet. In gleicher Weise bedeutet ein 0-Ausgang oder 1-Ausgang auf einer Leitung, daß der entsprechende Spannnungs/Strompegel geliefert wird.
In Reaktion auf den CP 20 in Fig. TA liefert der Vergleicher 16 einen Ausgangsimpuls auf eine seiner beiden Ausgangsleitungen 16A oder 16B je nach dem, ob das SIG-FeId Ό ist oder nicht. Wenn es 0 ist, ist kein Affinitätssegment vorgeschrieben, was durch einen Taktimpuls 90 signalisiert wird, der durch ein UND-PO 973 022 >.ΛΛή a - , ftH*vy
Glied 29 und eine Verzögerungsschaltung 24 geliefert wird. Wenn ein Affinitätssegment jedoch im Register 14 vorgeschrieben ist/ wird durch Betätigung des UND-Gliedes 19 und der Verzögerungsschaltung 23 ein anderer Taktimpuls CP 40 geliefert. Der Betrieb der Schaltung läuft weiter, abhängig davon, ob CP 40 oder CP 90 geliefert wird.
Da das SIG-FeId nach der Konstruktion nur 0 oder positiv sein kann, kann die Vergleicherleitung 16C kein Ausgangssignal führen
j und erzeugt einen iehlerausgang durch das UND-Glied 22, wenn sie j während CP 20 erregt wird.
CP 40 betätigt die Schaltung, die das Seitenrahmenüberschriftsfeld desjenigen Seitenrahmens adressiert, der das Affinitätssegment enthält, während der Taktimpuls 90 das neue Segment zum ! ersten und vielleicht einzigen Segment in einem Sei'tenrahiuen macht.
So leitet in Fig. TC der Taktimpuls CP 40 das SIG-FeId aus dem 'Affinitätsregister 14 in ein Arbeitsregister 76, wenn CP 40 durch das ODER-Glied 104 läuft. Die anderen Felder im Register ! 76 werden durch CP 40 auf 0 gesetzt. Nachdem CP 40 in der Schaltung 105 verzögert wurde, um das Einleiten in das Register 76 zu ermöglichen, wird sein Inhalt durch CP 45 in eine dynamische Adreßübersetzungseinrichtung DATM 106 geleitet, die ein Segmentfindesignal CP 46 liefert, wenn sie einen Seitenrahmen gibt, ; der dem SIG-FeId und dem O-Seitenfeld entspricht. Die DATM gibt die Seitenrahmenadresse mit einem Seitenrahirendisplaceiuent 0 in ein Speicheradreßregister (SAR) 111 aus. Diese Adresse adressiert das Überschriftsfeld des Seitenrahmens 117, das die erste virtuelle Seite des Affinitätssegmentes enthält. Das Affinitätssegment kann ein kleines Segment sein, das einen Teil im Seitenrahmen 117 belegt (siehe Fig. 8) oder es kann es Segment mit veränderlicher Länge oder ein großes Segment sein, dessen erster Teil die letzte Abteilung des Seitenrahmens 117 belegt.
Wenn die DATM das Segment nicht findet, welches durch das Äff LnL-PO 973 022
509831/0772
tätsregister 14 bezeichnet war, gibt sie ein Signal "Segment nicht gefunden", welches ein CP-90-Signal ist, welches ein neues SIG für das erzeugte Segment erzeugt. Dieses neue Segment ist das erste in seinen Seitenrahmen zu packende Segment.
Mit dem Überschriftsfeld arbeiten die Schaltungen in den Fign. 1A bis 1C. In diesem Ausführungsbeispiel wird die Überschrift nur an den Anfang des ersten Teiles eines Seitenrahmens gesetzt, der dann die erste virtuelle Seite eines Segmentes enthält. Die Unterteilungen eines gepackten Seitenrahmens können nur die
' ersten virtuellen Seiten ihrer entsprechenden Segmente enthalten. Andere Information kann zusätzlich zu den ersten überschrifts-
■ bits als Überschrift erscheinen, die von diesem Ausführungsbeispiel in das Arbeitsregister 71 übertragen wird. Weitere Überschriftsinformation hat mit der vorliegenden Erfindung nur insofern zu tun, als sie die Größe des erzeugten Segmentes beeinflussen kann.
Das Überschriftswort wird in das Speicherdatenregister SDR 118 übertragen und dann in das Arbeitsregister 71 in Fig.-.1C durch CP 46 eingeleitet, nachdem es durch die Schaltung 131 verzögert wurde, damit der Speicher· 116 und das SDR Zeit haben zur Behandlung des Überschriftsfeldes. ~ >
In Fig. Ic ist der Taktimpuls CP 50 von den Verzögerungsschaltungen 131 und 133 vorgesehen, nachdem sie den Taktimpuls CP empfangen. In Fig. 1B prüft CP 50 den Zustand des P Bit vom Überschriftswort im Arbeitsregsiter 71. CP 50 leitet das P Bit in einen Eingang des UND-Gliedes 57, welches ein Ausgangssignal (t) gibt, wenn das P Bit auf 1 steht und damit anzeigt, daß ; ein Packen erlaubt ist. Der komplementäre Ausgang (c) wird statt dessen gegeben, wenn kein Packen durch das P Bit gezeigt ist und CP 90 vom UND-Glied 66 und der Verzögerung 67 wird geliefert. Wenn kein Packen angezeigt ist, kann das zu erzeugende Segment nicht mit dem Affinitätssegment gepackt werden und das neue Segment wird in einen anderen Seitenrahmen gesetzt, was sich aus CP 90 ergibt.
po 973 022 5098317 07 7 2 ·
Wenn das P Bit auf 1 steht und anzeigt, daß das Packen gestattet ist, dann liefert die T-Ausgabe des UND-Gliedes 57 Taktimpulse CP 55, weil CP 50 das UND-Glied 63 und die Verzögerung 6 4 betätigte.
;Wenn CP 55 gegeben wird und anzeigt, daß Packung erforderlich
j ■ ;
jist, wird das V/F-Register 51 in Fig. 1B geprüft, um festzustel- { ilen, ob das neue Segment eine veränderliche oder feste Größe ' !hat. Dieser Vorgang wird eingeleitet, wenn CP 55 durch das ODER-
iGlied 52 läuft und den Inhalt des Register 51 an das UND-Glied j
i !57 ausleitet, dessen anderer Eingang einen 1-Strompegel empfängt. ; Wenn Register 51 eine Einereinstellung enthält und eine veränder- ( liehe Größe damit anzeigt, dann wird der echte t-Ausgang des i !UND-Gliedes 57 erregt und dadurch der Taktimpuls CP 62 vom ;
I . j
■UND-Glied 56 und der Verzögerungsschaltung 53 erzeugt. Wenn j ein Segment mit fester Größe durch den O-Inhalt des Registers ! j51 vorgeschrieben ist, wird der komplementäre Ausgang vom UND-jGlied 57 geliefert und dadurch das UND-Glied 61 und die Verzö- ;gerungsschaltung 62 zur Abgabe des Taktimpulses CP 60 veranlaßt.
;CP 62 erregt eine Schaltung, die feststellt, ob das Segment mit !veränderlicher Größe gepackt werden kann, während der Impuls ICP 60 feststellt, ob das Segment mit fester Größe in eine Unteriteilung paßt.
;in Fig. 1A erregt CP 60 eine Schaltung, die feststellt, ob das !neue Segment in eine Unterteilung eines Seitenrahmens paßt, in dem die werthohen Bits im Größenregister C in Fig. 1A auf lauter [Nullen geprüft werden. Diese werthohen Bits werden nur durch eine Segmentgröße gesetzt, die kleiner oder genau so groß ist wie eine einzelne Unterteilung. Der Taktimpuls 60 leitet somit die Bitpositionen 0 bis 14 im Z-rRegister an den L-Eingang des jVergleichers 16, während dessen R-Eingang alle Nullen in den entsprechenden Positionen empfängt. Wenn diese werthohen Bits alle 0 sind, wird ein Impuls auf die Leitung 16B gegeben, der durch das UND-Glied 40 und das ODER-Glied 44 läuft und 00 in KX-Register 43 leitet, welches bei der Erzeugung der PO-Bits PO 973 022 50983 1/077 2
für die Zeiger und die virtuelle Adresse des neuen Segmentes
benutzt wird«
Die Leitung 16B läuft auch durch das UND-Glied 31 und die Ver- { zögerung 32 und liefert CP 70. Wenn die werthohen Bits nicht j !alle 0 sind, ist die für das neue Segment im Register Z angege- !
bene Größe größer als eine Unterteilung und es wird statt dessen
!auf die Leitung 16A ein Signal gegeben, welches anzeigt, daß die
jGröße des neuen Segmentes nicht in eine Unterteilung paßt. Wenn ' jdas der Fall ist, wird von der Leitung 16A durch das UND-Glied ! ;47 und die Verzögerungsschaltung 46 ein Impuls CP 62 erzeugt. j
"ι I
Wenn der Impuls CP. 62 gegeben wird und anzeigt, daß das neue j ,Segment nicht nur eine Unterteilung belegt, betätigt er eine i
Schaltung, die feststellt, ob das neue Segment in der letzten
Unterteilung des Seitenrahmens beginnend gepackt werden kann. J "Ein großes Segment oder ein Segment mit veränderlicher Größe ; kann nur gepackt werden, wenn seine benötigte Größe nicht mehr j als 3/4 eines Seitenrahmens abzüglich der Maximalgröße für ein j
' ' 24 ■''"'■
Segment ausmacht. Wenn die maximale Segmentgröße z.B. 2 Bytes j ■ist, ist das maximal packbare Segment 3/4 eines Seitenrahmens I
24 ι
abzüglich 2 Bytes. Diese 3/4-Beschränkung soll einen überlauf ! am Ende eines gepackten Segmentes maximaler Größe in eine nicht
adressierbare Seite verhindern, der auftreten könnte, wenn ein i gepackter Seitenrahmen über seine packbare Obergröße (MPS) hinaus
!erweitert würde. Diese packbare Obergröße ist in dem Maxpackregister 11 in Fig. 1A enthalten. CP 62 leitet somit die Größe
des neuen Segmentes im Z-Register 10 in den L-Eingang des Ver- \ gleichers 16 und leitet den Inhalt des Maxpackregisters 11 in :
24 i
"den R-Eingang des Vergleichers 16 (zulässiges Segment 2 abzüglich 3072 Bytes, wo 3/4 einer Seitenrahmengröße von 4096 Bytes
gleich ist 3072).
Wenn das Segment größer ist als der maximal packbare Betrag,
kann es nicht gepackt werden und die durch das UND-Glied 21 und
die Verzögerung 24 laufende Leitung 16A gibt einen P 90, der
PO 973 022
• 509831/0772
eine Folge von Vorgängen einleitet, durch die dieses Segment in einem anderen Seitenrahmen beginnt.
Wenn der Vergleicher 16 ein Signal für einen gleichen oder kleineren Ausgang auf die Leitungen 16B und 16C gibt, ist das große Segment packbar. Diese Signale werden durch das ODER-Glieä 33 und das UND-Glied 42 sowie das ODER-Glied 45 geführt und leiten eine 11 in das XX-Register 43. Die letzte Unterteilung iiu ι
Affinitätsseitenrahmen 117 wird somit einem großen packbaren !Segment zugeordnet, wenn die letzte Unterteilung zur Verfügung steht, d.h. nicht bereits einem anderen Segment zugeordnet ist. Die Ausgabe des ODER-Gliedes 33 erregt das UND-Glied 34 und die Verzögerungsschaltung 35 zur Abgabe des Taktimpulses CP 70, der eine Schaltung betätigt, die feststellt, ob die durch den laufenden Inhalt des XX-Registers angegebene Unterteilung im Segment zugeordnet werden kann. CP 70 ist für Fig. 1B vorgesehen.
CP 70 leitet den Inhalt des XX-Registers durch das Schaltglied 91 in den Zähler 88 und an die UND-Glieder 81 bis 84 und betätigt so dasjenige Schaltglied, welches seinen anderen Eingang gleich dem Inhalt des XX-Registers empfängt. Das gewählte UND-Glied der UND-Glieder 81 bis 84 leitet ein Verfügbarkeitskennzeichenbit (AF) in das im Arbeitsregister 71 für die durch die PO-Bits im iXX-Register 43 ,dargestellte Unterteilung gefundene Überschriftsifeld. Das XX-Register wurde bekanntlich durch CP 60 auf OO ge-'setzt, um die erste Unterteilung darzustellen, wenn das neue 'Segment als in eine Unterteilung passend befunden wurde. Wenn das neue Segment größer als eine Unterteilung war, wurde das XX-Register bekanntlich durch CP 62 auf 11 zur Darstellung der letzten Unterteilung gesetzt. Das geleitete AF-Bit wird somit geprüft um festzustellen, ob die im XX-Register dargestellte Unterteilung im Seitenrahmen 117 zum Empfang des neuen Segmentes verfügbar ist. Wenn das AF-Bit 0 ist, steht die Unterteilung zur Verfügung, wenn es 1 ist, nicht. Der Zustand dieses AF-Bit wird [dadurch geprüft, daß es an das UND-Glied 73 geleitet wird, welches
'seinen t-Ausgang erregt, wenn die entsprechende Unterteilung zur
PO 973 022
509 8 31/0772
Verfügung steht, d.h., das AF-Bit O ist. Der t-Ausgang liefert CP 80 an Fig. 1C um anzuzeigen, daß das neue Segment in diejenige Unterteilung gepackt werden kann, die durch das XX-Register desselben Seitenrahmens wie des Affinitätssegment bezeichnet ist.
Wenn andererseits durch das UND-Glied 73 der c-Ausgang erregt wird, steht die Unterteilung nicht zur Verfügung und der Inhalt des XX-Registers wird daraufhin überprüft, ob er die letzte Unterteilung darstellt, d.h. XX = 11 ist, indem der Inhalt des Zählers 88 (der mit dem Inhalt des XX-Registers durch CP 70 eingeleitet wurde) in den 1-Eingang und ein 11-Signal in den r-Eingang des Vergleichers 16 geleitet wird. Dieser führt die Operation 74 in Fig. 3 aus. Wenn XX 11 ist, dann wird CP 90 erzeugt, wenn die Leitung 16B1 den Ausgang des UND-Gliedes 91 erregt.
Wenn XX jedoch von 11 verschieden ist, dann wird der Inhalt des Zählers 88 durch das UND-Glied 9 2 erhöht und nach der Verzögerung 86 wird der Zählerinhalt in das XX-Register geleitet. Nachdem das Leitsignal durch die Verzögerung 87 verzögert ist, ist der j Zyklus komplett und die Schaltung zur Prüfung des nächsten AF-Bit bereit. Die Verfügbarkeit einer jeden folgenden Unterteilung wird geprüft, bis sich eine verfügbare findet oder alle Schaltungen1
ι als nicht verfügbar befunden werden.
Wenn die nächste Unterteilung nicht zur Verfügung steht, wird die Erhöhung des Zählerinhaltes und das Setzen des XX-Registers 43 wiederholt, bis sich eine nachfolgende verfügbare Unterteilung findet oder der Zähler und das X-Register auf 11 stehen, was angezeigt wird, CP 90 von der Leitung 16 dabei erzeugtwird. CP 90 erregt die Schaltung zur Lokalisierung des neuen Segmentes in einem von dem Seitenrahmen des AffinitätsSegmentes verschiedenen Seitenrahmen.
Wenn ein AF-Bit ausgeschaltet befunden wurde, dann wird diese Unterteilung für das neue Segment vorgesehen* Das erfolgt in
PO 973 022
509 831 /0772
Pig. 1C dadurch, daß die durch CP 80 erregte Schaltung, die den ;Zeiger für das neue Segment erzeugt, das Gültigkeitsbits der Überschrift und das Verfügbarkeitsbit für die XX-ünterteilung auf gültig und nicht verfügbar setzt. (Vorher hatte CP 40 das Affinitätssegment SGI in das Arbeitsregister 76 vom Affinitätsregister 72 übertragen und in das virtuelle Seitenfeld und das virtuelle Displacementfeld im Register 76 Nullen gesetzt.)
Zur Erzeugung des Zeigers im Register 108 leitet CP 80 in das JN-Register 108 das PO-FeId im XX-Register 43, das SIG und das Seiten- und Displacement-Feld im Register 76 und den Inhalt des Z-Registers. Das Register 108 ist das durch den.in Fig. 1D gezeigten Segmenterzeugungsbefehl genannte N-Register, welches dem Benutzer die Bezeichnung und den Bereich der Adressierbarkeit für das neue Segment liefert.
CP 80 leitete auch den Inhalt des XX-Registers aus, um eines der UND-Glieder 121 bis 124 zu betätigen, dessen andere Eingabe entsprechend dem PO-Wert erfolgte und dadurch die entsprechenden AF- und FV-Bitpositionen im Register 71 wählte, worin diejenigen Bits auf 1 gesetzt werden, die anzeigen, daß die entsprechende Unterteilung gültig und nicht länger verfügbar ist. CP 990 wird von der Verzogerungsschaltung 127 gegeben, nachdem sie CP 80 empfängt. CP 990 leitet den Inhalt des Register 76 an die DATM aus, um die Überschrift im Hauptspeicher zu adressieren und es wird der neueste Inhalt des tlberschriftswortes im Arbeitsregister 71 ausgeleitet in das SDR, welches dann die neueste Überschrift in die Anfangsstelle in einem Seitenrahmen 117 setzt, ider durch die DATM im Hauptspeicher 116 vorgesehen ist, während 'die DATM die virtuelle Adresse im Register 76 empfängt. Die Operation ist beendet, wenn CP 999 von der Verzögerungsschaltung 1128 aufgrund eines Impulses von 990 gegeben wird.
Die zugeordnete Unterteilung steht zum Empfang eines Datenobjektes von nicht mehr als der Größe einer Unterteilung zur Verfügung, welche für dieses Segment vorgeaehen ist, damit dieses Daten-
PO973022 509831/0772
objekt hinterher mit Hilfe des im N-Registers erzeugten Zeigers angezogen werden kann durch Bezugnahme auf Seite O des durch diesen Zeiger bezeichneten Segmentes. Wenn es ein großes Segment ist, können irgend welche darin befindlichen Daten angezogen !werden durch Angabe der Segmentseite, die die erforderlichen !Daten enthalten.
CP 90 wird erzeugt, so bald das neue Segment in einen Seitenrahmen gesetzt werden muß, der von dem angegebenen Affinitätssegment verschieden ist oder wo kein Affinitätssegment angegeben ist. Somit erzeugt CP 90 ein neues SIG für das neue Segment. CP 90 wird unter vier Umständen erzeugt: (1) Wenn während CP 20 das Affinitätsregister einen O-Inhalt enthält und anzeigt, daß keine Affinität besteht, (2) wenn während CP 50 das P-Bit in den nicht gepackten Zustand geschaltet vorgefunden wird, (3) wenn während CP 62 die Segmentgröße im Register Z die maximal packbare Segmentgröße übersteigt, (4) wenn während CP 70 keine Unterteilung im Affinitätsseitenrahmen für das neue Segment zur Verfügung steht.
In Fig. 1C erhöht CP 90 somit die SGI-Zählerschaltung zur Erzeugung eines-neuen SGI, wodurch ein neuer virtueller Seitenrahmen !dargestellt wird, in den das erzeugte Segment zu setzen ist. ;CP 90 erhöht eine Zählerschaltung 101, die alle SGIs im System !erzeugt. Die Zählerschaltung 101 kann eine konventionelle binäre ^Zählerschaltung sein. In demselben Datenverarbeitungssystem gibt es keine andere Quelle für SGIs, ausgenommen möglicherweise ande- -re ähnliche Zähler, die genau mit dem Zähler 101 synchronisiert ■sind.
Wenn das Datenverarbeitungssystem installiert wird, wird der SGI-Zähler auf seinen Anfangswert gesetzt, d.h., auf 0. Der SGI-Zähler erzeugt einen eindeutigen SGI-Inhalt jedesmal, wenn 'er erhöht wird.
JNachdem CP 90 in der Verzögerungsschaltung 102 etwas verzögert
PO 973 022 . ■ " "
509831/0772
!wird, leitet er den neuen SGI vom Zähler 101 in das Arbeitsregister 76, während Nullen in das virtuelle Seitenfeld und !das virtuelle Displacementfeld im Arbeitsregister 76 eingeleitet werden. Der Inhalt des Arbeitsregisters 76 bildet somit die Anfangsstufen bei der Erzeugung eines neuen Zeigers für das neue, erzeugte Segment.
Ein Taktimpuls CP 100 wird vom CP 90 gebildet, der durch die Schaltungen 102 und 103 verzögert wird. In Fig. 1B inizialisiert CP 100 ein Überschriftswort im Arbeitsregister 71 für den neuen virtuellen Seitenrahmen, in dem eine 1 in das Packbit P und eine 0 in alle AF-Bits und FV-Bits gesetzt wird. Durch CP 100 wird das neue Überschriftswort so inizialisiert, daß es anzeigt, daß der neue Seitenrahmen packbar ist und daß alle Unterteilungen zur Verfügung stehen und ungültig sind. CP 110 wird erzeugt, nachdem CP 100 in einer Verzögerungsschaltung verzögert wird.
Es kann erwünscht sein, ein neues Segment packbar zu machen, wenn es das erste Segment ist, das in einen Seitenrahmen zu setzen ist. Das kann explizit erfolgen, wenn bekannt ist, daß der Seitenrahmen kein anderes Segment enthält oder implizit, wenn keine verfügbare Unterteilung im Seitenrahmen mit einem angegebenen Affinitätssegment existierte. Das explizite Packen des ersten Segmentes kann erfolgen, indem man zuerst das Affinitätsregister 14 mit einem Zeiger auf ein nicht existierendes Segment oder auf ein bekanntlich unpackbares Segment oder auf lein in einen gefüllten Rahmen bekanntlich gepacktes Segment Hädt; zu diesem Zweck kann ein Phantom-Segmentzeiger verfügbar gehalten werden. Das implizite Packen des ersten Segmentes erfolgt, wenn der Seitenrahmen des Affinitätssegmentes keine Unterteilung zum Empfang des Segmentes verfügbar hat, d.h., keine zum Empfang eines kleinen Segmentes mit fester Größe verfügbare Unterteilung oder die letzte verfügbare Unterteilung zum Empfang eines Segmentes mit veränderlicher Länge oder eines (langen Segmentes vorgesehen hat. In all diesen Fällen wird die idurch CP 100 vorgenommene Einstellung des P-Bit, die die Packbar-
PO 973 022
5 0-9 831/0772
keit anzeigt, nicht verändert.
Das Packen wird also vorgeschrieben durch eine von O verschiedene Einstellung des Registers 14 und die Ausgangsleitung 16A wird erregt, wodurch CP 120 durch das UND-Glied 49 und eine Verzögerungsschaltung erzeugt wird und anzeigt, daß der neue Seitenirahmen packbar sein sollte.
Wenn durch den O-Inhalt des Affinitätsregisters 14 keine Affiniität vorgeschrieben wurde, wird das P-Bit auf O gesetzt und zeigt :an, daß der neue Seitenrahmen nicht packbar ist. Das erfolgt in
Fig. 1A, wenn CP 110 eine Affinitätsanforderung genau so und imit denselben Schaltungen prüft, wie es vorher für CP 20 beschrieben wurde, d.h. durch Prüfen des O-Zustandes des SGI-Feldes im Affinitätsregister 14. Wenn keine Affinität vorgeschrieben wurde, wird CP 121 vom UND-Glied 15 und der Verzögerungsschaltung 16 erzeugt, wenn der Vergleicher 16 ein Signal auf seine Ausgabeleitung 16B gibt.
CP 121 erregt dann die Ausgangsleitung 47 in Fig. 1A, die in Fig. 1B eine 0 in die P-Bitposition des Registers 71 leitet, !so daß danach für den neuen Seitenrahmen eine nicht packbare iBedingung angezeigt wird. Außerdem läuft die Leitung 47 in Fig.iA durch das ODER-Glied 44 und leitet 00 in das XX-Register 43, so daß dieses anzeigt, daß das neue Segment in die erste Unterteilung des neuen Seitenrahmens zu setzen ist.
Wenn in Fig. 1A Affinität vorgeschrieben wurde, leitet der Taktimpuls CP 120 eine Schaltung, die feststellt, ob das neue Segment zum Packen zu groß ist, und in diesem Fall wird der neue Seitenrahmen unpackbar gemacht, auch wenn Affinität vorgeschrieben war. Das erfolgt dadurch, daß CP 120 die vorgeschriebene Größe des neues Segmentes im Z-Register auf den L-Eingang des Vergleichers 16 und die größte packbare Größe im Maxmpackregister 11 in den R-Eingang des Vergleichers 16 leitet. Wenn das Segment größer ist als die maximal packbare Größe, erregt die Leitung 16A das
PO 973 022 -
509831/0772
" 20 " 245671Q
UND-Glied 38 und die Leitung 47 zum Setzen einer O in das P-Bit im Überschriftsfeld, das im Arbeitsregister 71 der Fig. 1B gebildet wird und leitet in Fig. 1A OO in das XX-Register, genau so, wie es vorher für CP 121 beschrieben wurde. Dadurch wird die IOperationsfolge ausgeführt, die in Fig. 3 als Ja-Ausgang vom ι Schritt 110, Nein-Ausgang des Schrittes 120, als Schritt 121 und |122 dargestellt ist. In Fig. 1A läuft das elektrische Signal auf
der Leitung 47 durch das ODER-Glied 56 und eine Verzögerungsschaltung zur Erzeugung von CP 80, wodurch die in Fig. 1C gezeigte Schaltung betätigt wird, wie es oben für CP 80 beschrieben wurde, um die Bildung des neuen Segmentzeigers im N-Register 108 j und die resultierende Speicherung im Seitenrahmen 117 der überjschrift im Register 71 zu veranlassen, so daß die Daten im neuen j Segment in der zugeordneten Unterteilung unter Steuerung des neuen 1 Zeigers gespeichert werden können.
Wenn das neue Segment jedoch kleiner ist als die maximal packbare Größe, kann es in den neuen Seitenrahmen gepackt werden. Um jedoch festzustellen, wie das neue Segment gepackt wird, d.h. in die !erste Unterteilung 00 oder in die letzte Unterteilung 11, müssen ;noch andere Bedingungen berücksichtigt werden. Die Packungsart !hängt unter anderem davon ab, ob das neue Segment ein kleines Segment mit fester Größe ist, welches in die erste Unterteilung des Seitenrahmens gepackt wird, oder ob es ein großes Segment oder ein Segment mit veränderlicher Größe ist, welches nur in die letzte Unterteilung des Seitenrahmens gepackt wird. Diese Operationsfolge ist in Fig. 3 vom Ja-Ausgang des Schrittes 120 ;an dargestellt. Diese Operationen werden durch die Erzeugung des Taktimpulses CP 125 in Fig. 1A ausgelöst, wenn das ODER-Glied 26 erregt wird, entweder durch die Leitung 16B oder die Leitung 16C, während das UND-Glied 27 durch CP 120 eingeschaltet ist, um CP vom Ausgang der Verζögerungsschaltung 2 8 zu liefern.
CP 125 betätigt die Schaltung in Fig. 1B, die feststellt, ob die Größe des neuen Segmentes fest oder veränderlich angegeben ist.
PO 973 O~22
509831/077 2
245 67 Ί Ο
Das erfolgt, wenn CP 125 durch das ODER-Glied 52 läuft, um den Inhalt des V/F-Registers 51 an das UND-Glied 57 auszuleiten. Die (t)-Ausgabe des UND-Gliedes 57 wird erregt, wenn das Register 51 ein Einerbit enthält, welches anzeigt, daß das Segment in der Größe veränderlich ist. Das UND-Glied 54 gibt dann ein Ausgangssignal auf die Leitung 48. Die Leitung 48 in Fig. 1 liefert dieses Signal durch das ODER-Glied 45 zum Einleiten eines Elfer- ;signales in das XX-Register 43, welches PO für die letzte Unter- '. teilung ist. Außerdem leitet die Leitung 48 ein Signal durch das ODER-Glied 56 und eine Verzögerungsschaltung zur Erzeugung von CP 80, wodurch die oben in Fig. 1C beschriebenen Operationen ', ausgelöst werden, um das neue Segment in die letzte Unterteilung j(PO-Wert von 11) in dem neuen Segment zu setzen.
Wenn andererseits in Fig. 1B das V/F-Register ein festes Segment ;bezeichnet, veranlaßt seine Nulleinstellung das UND-Glied 57 zum !Erregen seines (c)-Ausganges, wodurch CP 130 durch das UND-Glied i j 68 und die Verzögerungsschaltung 69 geleitet wird. CP 130 zeigt j !an, daß das Segment nicht in den ersten Teil des neuen Seiten- ! :rahmens gesetzt werden sollte, wenn es ein kleines Segment ist. |
ι .
Die für diesen Vorgang vorgesehene Schaltung wird durch CP 130 in Fig. 1A erregt. CP 130 läuft durch das ODER-Glied 12 und leitet die werthohen Bits des Größenregisters Z aus, um auf :die Art, die bereits für CP 60 beschrieben wurde, festzustellen, ob es lauter Nullen sind. Dazu vergleicht der Vergleicher 16 diese Bits mit einem an seinen R-Eingang angelegten Nullenfeld. Wenn der Vergleicher feststellt, daß die werthohen Z-Bits lauter Nullen sind, erregt er seine Leitung 16B, anderenfalls die Leitung Ί6Α.
Wenn die Leitung 16A erregt wird, handelt es sich bei dem neuen Segment nicht um ein kleines Segment und es wird in die letzte Unterteilung gepackt. Das erfolgt, wenn das UND-Glied 39 durch die Leitung 16A betätigt wird und CP 130 erzeugt ein Signal; welches durch das ODER-Glied 45 läuft, das 11 in das XX-Register
PO 973 022
50983 1/0772
43 leitet. Leitung 16A erregt auch das ODER-Glied 56 zur Erzeugung eines Taktimpulses 80, der dann in der oben beschriebenen Art arbeitet und die Operationen abschließt.
Wenn es sich bei dem festen Segment jedoch um ein kleines Segment handelt, wird es in die erste Unterteilung im neuen Seitenrahmen gesetzt mit einem PO-Wert von 00. Das erfolgt, wenn das UND-Glied 41 durch ein Signal auf der Leitung 16B erregt wird und CP 130 liefert ein Signal durch das ODER-Glied 44, wodurch 00 in das Register 43 geleitet und auch CP 80 durch das ODER-Glied 56 gemäß obiger Erklärung erzeugt wird, um den Abschluß der Operationen zu beginnen, die in der Packung des neuen Segmentes in die !erste Unterteilung des Seitenrahmens resultieren.
Die Fign. 2A, 2B und 2C zeigen Beispiele der Seitenrahnienpackung derart, die man durch die Operation der in den Figri. 1A, 1B und 1C gezeigten Schaltung erhalten kann. In Fig. 2A ist ein Segment S1 gezeigt, welches die erste Unterteilung mit dem PO-Wert 00 belegt und ein Überschriftsfeld für alle Segmente enthält, !die in diesen Seitenrahmen 117 gepackt sind und auch gemeinsam dasselbe SGI-Feld haben. Das überschriftsfeld enthält jetzt die laufende Überschrift, die anzeigt, daß die erste Unterteilung nicht verfügbar und gültig ist. Das Segment S1 ist bezeichnet durch den S1-Zeiger, der die Segmentbezeichnung (SID) enthält, die das PO-FeId 00 und das SGI-Feld umfaßt. Das Displacementfeld und das Z-FeId zeigen den Anfang und das Ende des Segmentes an. Der durch diese Felder angegebene Anfang bzw. das Ende des Segmentes im Zeiger sind nicht notwenigerweise der Anfang und das Ende einer Seitenrahmenunterteilung. Die anfangs vorgeschriebene Segmentgröße im Register Z gibt such die letzte Adresse des Segmentes in Fig. 2B an, ein zweites kleines Segment mit fester Größe wird in die zweite Unterteilung desselben in Fig. 2Λ gezeigten Seitenrahmens gesetzt. Die eindeutige SID im Zeiger des Segmentes S2 hat den PO-Wert 01 und dasselbe SGI-Feld wie der S1-Zeiger.
PO 973 022 ^ _ .
5 098 3 1 /077 2
Fig. 2C zeigt weiter das Einsetzen eines langen Segmentes/ dessen
Größe eine Unterteilung übersteigt. Der Anfangsteil von S4 wird
der letzten Unterteilung im Seitenrahmen mit dem PO-Wert 11 zugeordnet. Der S4-"Zeiger enthält diese PO und dasselbe SGI-Feld
wie die Zeiger S1 und S2. Das S4-Segment ist ein langes Segment
und somit paßt es nur teilweise in die letzte Unterteilung, die
!seinen durch das Displacementfeld in seinem Zeiger bezeichneten
Anfang enthält. Das Segment muß in einen oder mehrere andere
BiIdrahmen überlaufen und das Ende des Segmentes wird durch
das Z-FeId angegeben, welches die letzte Seite und das Displacement des Segmentes angibt. Segmentseiten sind nicht auf die
'Hauptspeicher-Seitenrahmen ausgerichtet.
Die Felder P, AF und VF in der Überschrift in den Fign. 2A,
2B und 2C werden in jedem Falle auf den neuesten Stand gebracht ι und spiegeln den Zustand der Unterteilungen wieder.
Wenn das S4-Segment veränderlich angegeben wurde, wird es j
nur in die letzte Unterteilung gepackt, ungeachtet dessen, ob j
es ein kleines oder großes Segment ist. Die Veränderlichkeit |
!des Segmentes wird dadurch berücksichtigt, daß man die letzte ;
Z-Adresse im Zeiger verändert, nachdem sie erzeugt ist, wodurch j
das Packen nicht gestört wird, weil alle Segmente mit veränder- j
licher Länge in der letzten Unterteilung eines gepackten Seiten- ι
rahmens stehen und nur in einen anderen Seitenrahmen überlaufen ; können. . .
Die Gültigkeitsbits können zu irgend einem späteren Zeitpunkt j ,bei der Entfernung eines gepackten Segmentes aus dem Seitenrahmen j benutzt werden. In einem solchen Fall wird sein Gültigkeitsbit
in den ungültigen Zustand zurückversetzt. Diese Manipulation der
VF-Bits bildet nur insofern einen Teil der vorliegenden Erfindung, | als diese die Bits bei der Verwaltung des Segmentes verwendet. i
Nachdem die Segmente erzeugt und gepackt oder ungepackt in Sei- j
tenrahmen gesetzt sind, kann die Information in einem Segment
PO 973 022
B09831/0772
durch ein mit einem Zeiger auf dieses Segment versehenes Programm adressiert werden. Die Adressierbarkeit nur eines Teiles eines !Segmentes ist möglich, indem man das Seitenfeld, das Displacementield und das Z-FeId so setzt, daß sie einen Bereich abgrenzen, öer kleiner ist als die volle Segmentgröße.
!Fig. 4A zeigt eine Schaltung zur Erzeugung der Adressen für !Information in einem Segment und die Prüfung der Adressen, um i
!sicherzustellen, daß keine Adresse über eine Unterteilungsgrenze in die nächstfolgende Unterteilung mit einem anderen Segment |in demselben Seitenrahmen hinausstreut. Diese Schaltung erzeugt ein Adressierfehler-Unterbrechungssignal, wenn eine durch einen Befehl vorgesehene Adresse versuchen sollte, im nächsten Segment in dem Seitenrahmen zu adressieren. Die Ä.<3.i?essiöiff etvlAU?— bnterbrechungsschaltung 221 ist in Fig. 4B gezeigt.
(Die Operationen durch die in den Pign. 4A und 4B gezeigte Schaltung können mit Hilfe des Operationsdiagrammes in Fig. 9 (verfolgt werden.
Ein Zeiger (der die gepackte Segmentadresse enthält), wie er in Fig. 7B gezeigt ist, wird am Anfang durch einen Operanden in einem Maschinenbefehl spezifiziert. Der Zeiger wird in ein Register 201 in Fig. 4A gesetzt. Der Zeiger kann durch den Inhalt eines Indexregisters 202 verändert werden, um bequemer Paten in ein Segment au Sefesen. Der Addierer 203 leitet Ausgänge Svom Zeigerregister 201 und vom Indexregister 202 ein aufgrund eines Speicherzugriff-Startsignales zur Erzeugung einer virtuellen Adresse (VA) des in Fig. 7C gezeigten Typs. Der Addierer 203 tut dies durch Einleiten der PO-Bits in Bitpositionen, die den werthohen Bitpositionen in Segmentdisplacement, gemäß Darstellung in Fig. 7C entsprechen. Er leitet auch den Inhalt OSS XnäeüfSJUTegA^t^*" 2Ο2 in diejenigen Bitpositionen f die dem Segmentseitenfeld und dem Segmentdisplacementfeld gemäß Dar-
PO 973 022
B09831 /0772
,ι;.. ?pr:;'. .■■:■-
2455710
stellung in Fig. 7A entsprechen. Die Addiererausgäbe ist eine virtuelle Adresse, die in ein Arbeitsregister 204 gesetzt wird, welches dasselbe Register sein kann wie das Register 76 in Fig. 1C. Das Register 204 empfängt dasselbe SGI-Feld, das sich im Register 201 fand, das Seiten- und das Displacement-Feld sind ;jedoch durch die PO-Bits und die Indexbits, wenn überhaupt, verändert. Wenn kein Indexregister durch einen laufenden Befehl angegeben ist, werden Nullen in den Indexeingang des Addierers 203 geleitet. . .
sDie virtuelle Adresse im Register 204 wird in die dynamische AdreßüberSetzungseinrichtung (DATM) 106, dargestellt in Fig. 4A, .eingeleitet, weil CP 240 auftritt, nachdem das Startsignal an jdie Verzögerungsschaltung 211 angelegt ist. Der zugeordnete Seitenrahmen und das Displacement liefern eine Hauptspeicheradresse der in Fig. 6B gezeigten Form, die"eine konventionelle Form jeiner Adresse ist, die sich in kommerziellen virtuellen Adressiersystemen findet.
In Fig. 4A ordnet die DATM einen maschinellen Seitenrahmen im Hauptspeicher 116 dem SGI-FeId und dem virtuellen Seitenfeld in der virtuellen Adresse im Register 204 zu. Die DATM gibt
die Hauptspeicheradresse an das SAR 111 aus. Die Hauptspeicher- j
adresse umfaßt den zugeordneten Seitenrahnien und ein Displace- [
ment, welches dasselbe ist, wie das virtuelle Displacementfeld -!
im Register 204. Die Zuordnung eines Seitenrahmens erfolgt j
dadurch, daß die DATM ein Register in der Gruppe der Register i
300 in Fig. 5 wählt, welches dasselbe SGI-Feld und virtuelle I
Seitenfeld hat, das sich im Register 204 findet. Der Index ''
dieses Registers in der Gruppe bestimmt den zugeordneten i
Seitenrahmen im Hauptspeicher 116. Wenn kein Register gefunden j
wird, welches das SGI-Feld und das virtuelle Seitenfeld enthält, i dann wird irgend ein nicht zugeordnetes Register gegriffen durch
Zuordnung eines Registers, dessen Verfügbarkeitsbit (AB) auf 0 j gesetzt ist und damit die Verfügbarkeit anzeigt, und indem dieses
PO 973 022
509831/077 2
2 4 5 6 7 Ί ü
in das SGI-Feld und das virtuelle Seitenfeld vom Register übertragen und das AB-Bit auf 1 gesetzt wird.
Die Hauptspeicheradresse wird an das Speicheradreßregister SAR !111 und den Decodierer 112 gegeben, um den Seitenrahmen 117 in !konventioneller Weise zu adressieren. Die Operation 204 in Fig. 9 wird dadurch ausgeführt.
|Die Erfindung sieht eine Unterteilungsgrenzen-Prüfoperation als vorläufigen Teil eines jeden Operandenzugriffs im Hauptspeicher 116 vor. Ein Anfangsprüfsignal sorgt dafür, daß ein jO-Displacement kurzzeitig durch den Decodierer 1f2 vorgesehen Wird, so daß das Überschriftenfeld im Seitenrahruen 117 adresisiert wird, so daß sein Packbit und Gültigkeitskennzeichenbit geprüft werden können, bevor Zugriff zur Adresse im SAR 111 gewährt wird.
Eine Verzögerungsschaltung 212 wird durch CP 240 erregt und liefert CP 241 als Anfangsprüfsignal, welches eine Prüfsteuerjverriegelung 215 verriegelt. Diese Verriegelung liefert dem !verriegelten Zustand ein Ausgangssignal, das ein O-Displacementsignal in den Decodierer 112 leitet, welches die gegenwärtig im SAR 11 von der DATM empfangene Displacementadresse übersteuert, die Seitenrahmenadresse im SAR 11 wird jedoch durch den Decodierer 112 geleitet, so daß das Überschriftsfeld am Anfang des Seitenrahmens 117 adressiert, aufgegriffen und in das SDR 118 gesetzt wird. Das Anfangsprüfsignal bildet auch einen Eingang zu einer Verzögerungsschaltung 231, die CP ausgibt, welches in Fig. 4B die Überschrift vom SDR 118 in das Arbeitsregister 71 ausleitet. Dadurch wird die Operation '245 in Fig. 9 ausgeführt.
In Fig. 4A stellt CP 242 auch die Verriegelung 215 zurück, so
daß der erforderte Zugriff begonnen werden kann und die von den Schaltungen in Fig. 4B ausgeführten Prufoperationen überlappt.
PO 973 022
1 509831/077 2
Δ I — .
' 24567 ΊΟ
Die,adressierte Information steht erst zur Verfügung, wenn die Überprüfung abgeschlossen ist, diese kann jedoch abgeschlossen werden, bevor der Informationszugriff in .das SDR 118 fertig ist.
Um die Operation 260 in Fig. 9 auszuführen, wird CP 242 auch über die Leitung 217 an die Verzögerungsschaltung 233 in Fig. 4B angelegt, die CP 250 abgibt, wodurch die Schaltung betätigt ;wird, die den Zustand des P-Bit- und des Gültigkeitsbitfeldes 'in der Überschrift im Register 71 prüft. CP 250 leitet das PO- ;Feld in das Zeigerregister 201 aus, wobei der in Fig. 4B gezeigte PO-Teil derselbe ist wie der PO-Teil des Zeigerregisters 201 !in Fig. 4A. Das ausgeleitete PO-FeId schaltet eines der UND-•Glieder 81 bis 84 ein, dessen anderer Eingang gleich dem PO-JFeld ist, so daß die FV-Bitposition im Register 71 für die durch ;das PO-FeId dargestellte Unterteilung ausgeleitet und geprüft !wird über das UND-Glied 73. Wenn dieses Gültigkeitskennzeichenjbit auf 1 steht, heißt das, daß das Segment in dieser Unterteilung gültig ist. Wenn es auf 0 steht, wird der Zugriff unterdrückt und eine Fehlerbedingung durch ein Signal auf der (c)-Ausgangsleitung vom UND-Glied 73 an die Unterbrechereinrichtung 221 erzeugt.
Wenn also die Unterteilung gültig ist, liefert der (t)-Ausgang des UND-Gliedes 73 CP 260, wodurch das P-Bit der Überschrift im Register 71 ausgeleitet wird zum Prüfen durch ein UND-Glied 206 und CP 260 leitet auch das PO-FeId im Register 201 durch ■ein anderes UND-Glied 207 zum Prüfen aus. Das UND-Glied 206 gibt ein Ausgangssignal, wenn das P-Bit auf 0 steht und dadurch keine Packung anzeigt. Das UND-Glied 207 liefert ein Ausgangssignal, wenn das PO-FeId anzeigt, daß das benötigte Segment in der letzten Unterteilung des Seitenrahmens steht. Die Ausgänge der UND-Glieder 206 und 207 sind beide für ein ODER-Glied 234 vorgesehen, welches einen echten (t)-Ausgang und einen komplementären (c)-Ausgang hat.
Die Unterteilungsgrenzen-Prüfoperation wird umgangen, wenn ent-PO 973 022 .
ΒΌ983 1 /0772
I .
i -28- 2458710"
weder keine Packung oder die letzte Unterteilung durch den Ausgang der UND-Glieder 206 oder 207 angezeigt wird. Die letzte Unterteilung wird nicht geprüft, weil eine Adressierung über diese hinaus nicht in eine andere Unterteilung hineinläuft, sondern einfach außerhalb des Seitenrahmens liegt und zu einem Seitenfehler führt, der durch eine andere in konventionellen Systemen vorhandene Einrichtung geprüft wird. Durch eine dieser Bedingungen wird der t-Ausgang des ODER-Gliedes 234 erregt. Der t-Ausgang läuft durch das UND-Glied 235, nachdem er durch einen verzögerten CP-Impuls 260 geleitet wurde und CP 261 liefert. CP 261 schaltet das ODER-Glied 240 zur Abgabe von CP 299, der in Fig. 4A das Ausleiten der Daten aus dem SAR 111 gestattet, nachdem sie von der Displacementadresse im Seitenrahmen 117 adressiert sind.
Wenn jedoch durch das P-Bit eine Packung angezeigt wird und PO eine der ersten drei Unterteilungen bezeichnet, die ein gültiges Segment hat, führt die Adreßprüfschaltung die Operation 270 in Fig. 9 aus. Dann wird in Fig. 4B der c-Ausgang vom ODER-Glied 234 gegeben. Die Zählleitung läuft zu einem UND-Glied 236, j das den verzögerten CP-Impuls 260 empfängt und ein erregtes !Ausgangssignal CP 270 gibt, wodurch die Adresse auf die Unterteilung hin geprüft wird um festzustellen, ob sie das Ende der durch das PO-FeId in der Segmentadresse bezeichneten Unterteilung unterschreitet. (Es wird angenommen, daß das System keine nejgative Indexierung liefert, so daß der Benutzer nicht eine !vorhergehende Unterteilung über dem Anfang des entsprechenden
[Segmentes adressieren kann.)
[Nur ein Teil der virtuellen Adresse im Register 204 braucht j bei der Prüfung daraufhin benutzt zu werden, ob der Zugriff die j JEndgrenze der betreffenden Unterteilung überschritten hat. Die Schaltung in Fig. 4B prüft die durch das PO-FeId im Zeigerregister] 201 definierte Unterteilung gegenüber einem Feld im Arbeitsre-
PO 973 022
609831/0772
■ ■."""■■ 24567IQ
,gister 204, welches ein virtuelles Adreßfeld und die zwei ·.
iwerthöchsten Bits im virtuellen Displacementfeld enthält. Das
'virtuelle Seitenfeld wird 0 für jedes kleine gepackte Segment, !welches zu prüfen ist, da alle kleinen Segmente eine Seite nicht überschreiten können. Die beiden werthöchsten Bits im virtuellen Displacementfeld umfassen die PO-Einstellung zum Displacementfeld in der Segmentadresse.
Gemäß Fig. 4B überträgt CP 270 das virtuelle Seitenfeld mit den beiden werthöchsten Bits des Displacementfeldes im Register 204 in den R-Eingang des Vergleichers 16 und leitet in die wertniederen Bitpositionen des L-Einganges des Vergleichers 16 die beiden PO-Bits aus dem Register 201 und in die werthohen Bitpositionen des L-Einganges eine 0 in einer Anzahl von Bits, die der Anzahl von Bits im virtuellen Seitenfeld entsprechen. Die eingeleiteten L- und R-Felder sollten gleich sein, wenn die virtuelle Adresse im Register 201 innerhalb der durch das PO-FeId im Register 201 angegebenen Unterteilung liegt.
Wenn die Vergleichereingänge gleich sind, wird die Leitung 16B-I erregt und wenn das UND-Glied 238 den verzögerten Impuls CP 270 iempfängt, wird vom ODER-Glied 240 CP 299 gegeben und an die
ι ■ . . - ■
j SDR-Ausleitung in Fig. 4A angelegt, um den Zugriff der Daten von der richtigen Unterteilung vorzubereiten.
!Wenn die Vergleichereingänge verschieden sind, liegt die Adres-
fsierung außerhalb der vorgeschriebenen Unterteilung und es tritt eine Fehlerbedingung auf, durch die die Adressierfehler-Unter-ίbrechungseinrichtung 221 betätigt wird. Das UND-Glied 238 wird· ebenfalls nicht durch ein Signal auf der Leitung 16B vorbereitet und daher wird kein Signal CP 299 gegeben, um den Zugriff von j Daten aus dem.SDR 118 vorzubereiten, so daß der Zugriff nicht ■ erfolgen kann. Andere Bedingungen können ebenfalls das Ausleiten von Daten aus dem SDR 118 steuern.-
i f
!Schließlich soll noch darauf hingewiesen werden, daß die PO 973 022
609831/0772
245671Q
iStartprüfung des Kennzeichenbits auch mit Hilfe des Registers 300 anstelle des Kopffeldes erfolgen kann. Es ist auch möglich, lange Segmente und Segmente variabler Länge in jedem Teilabschnitt eines Seitenrahmens und nicht nur im letzten zu speichern. Das beschriebene Ausführungsbeispiel gestattet jedoch die Speicherung in allen Teilabschnitten, wenn die Packungseinrichtung nicht im Betrieb ist. Ferner können Segmente, die kleiner sind als ein Seitenrahmen, aber größer als ein Teilabschnitt in benachbarten Teilabschnitten gespeichert werden.
Zusammenfassung der Erfindung
Die Erfindung sieht eine Einrichtung vor, die das automatische Packen von Segmenten in Seitenrahmen unterstützt. Kleine und große Segmente können gepackt werden. Kleine Segmente mit fester Größe werden gepackt, indem man mehr als ein Segment in einen Seitenrahmen setzt. Ein großes Segment wird gepackt, wenn ein Anfangsteil des großen Segmentes in einen Seitenrahmen gesetzt wird, der eines oder mehrere kleine Segmente mit fester jLänge enthält oder aufnehmen kann. Ein Segment mit veränderlicher jGröße wird ungeachtet dessen, ob es groß oder klein ist, gepackt, wenn es in einen Seitenrahmen gesetzt wird, der eines i
oder mehrere kleine Segmente mit fester Größe aufnehmen kann oder enthält. Die Einrichtung enthält eine eindeutige Adressieranlage, die gepackte und ungepackte Seitenrahmen in der gleichen WEise unterstützt. Der Umfang eines Seitenrahmens !kann infolge dessen relativ groß und doch noch mit kleinen Segmenten verträglich gehalten werden, um sowohl die Vergeudung vom Hauptspeicherplatz möglichst klein zu halten als auch die Seitenverwaltungsarbeit des Systems niedrig zu halten, indem man mehrere Segmente in einen Seitenrahmen packt. Durch diese !Lösung braucht man erstens keine speziellen Nebenverzeichnisse und die zugehörige Verwaltung für die Verarbeitung der gepackten Seiten, zweitens keine vom Benutzer vorgesehenen Segmentspeicher-Zuordnungseinrichtungen und drittens keine vom Be-
PO 973 022
509831/0772
nutzer vorgesehenen Schutzeinrichtungen für Datenobjekte in Segmenten. Die Erfindung ermöglicht die automatische Erreichung jdieser Ziele durch das System mit den Zusatzeinrichtungen, wodurch der Benutzer die Vorteile wahrnehmen kann, ohne sich dajrum kümmern zu brauchen.
PO 973 022
509831 /07 7 2

Claims (1)

  1. PATENTANSPRÜCHE
    Einrichtung zum Packen mehrerer Datensegmente in einen Seitenraahmen eines Hauptspeichers, gekennzeichnet durch ein erstes Register (14) zum Speichern eines Affinitätssignales zur Angabe eines bestehenden Datensegmentes, mit dem ein neues Segment in einen Seitenrahmen gepackt werden soll,
    durch ein Kennzeichenfeld für einen Affinitäts-Seitenrahmen, der die erste Seite des durch das erste Register angegebene Segment enthält,
    durch ein zweites Register (Z) zur Angabe eines Größensignales für das neue Segment,
    durch einen mit dem ersten Register und dem zweiten Register verbundenen Vergleicher (16) zur Angabe, ob das neue Segment größer als ein Teilabschnitt eines Seitenrahmens, oder kleiner als ein maximal packbares Segment ist,
    durch ein Packungsbit (P) und ein Verfügbarkeitsbit (A) in dem Kennzeichenfeld zur Angabe, ob der Affinitäts-Seitenrahmen packbar ist und welcher Teilabschnitt in dem Seitenrahmen verfügbar ist und
    durch ein Zeigerregister (108) zum Lokalisieren des neuen Segmentes in dem verfügbaren Teilabschnitt des Seitenrahmens des bestehenden Datensegmentes.
    Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß das erste Register (14) einen Affinitäts-Seitenrahmen, das ist ein bestehender Seitenrahmen, der in einem Teilabschnitt den ersten Seitenrahmen eines bestehenden Segments enthält, angibt,
    daß ein Kehnzeichenfeld für diesen vom ersten Register gefundenen Seitenrahmen in ein lokales Register (71) gebracht wird,
    daß ein Packungsbit und ein Verfügbarkeitsbit in diesem
    PO 973 022
    50^831/0772
    Kennzeichenfeld überprüft wird und festgestellt wird, ob dieser Seitenrahmen packbar ist, und ,daß der Vergleicher (16) angibt, ob das neue Segment in einem Teilabschnitt des Seitenrahmens Platz hat und ob das neue Segment ein packbares Großsegment ist.
    Einrichtung nach Anspruch 2, gekennzeichnet durch ein drittes Register (F/V) zur Anzeige, ob das neue Segment eine variable oder feste Größe hat, durch ein Verschiebungsregister (DISP), welches mit dem Vergleicher und dem dritten Register verbunden ist und das einen verfügbaren Teilabschnitt im bestehenden Seitenrahmen anzeigt, wenn vom Vergleicher das vierte Ausgangssignal und vom dritten Register das Festgrößensignal geliefert wird, das jedoch den letzten Teilabschnitt-(84) anzeigt, wenn das fünfte Ausgangssignal vom Vergleicher geliefert wird, durch einen Zähler (88), der vom vierten Ausgangssignal des Vergleichers und das Festgrößensignal erhöht wird und jedes aufeinanderfolgende Verfügbarkeits-Kennzeichenbit überprüft, wobei der Zähler angehalten wird, wenn j ein Verfügbarkeitsbit überprüft wird, das einem verfügbaren Teilabschnitt entspricht und wobei der Zählerstand - "-- ■
    in das Verschiebungsregister nach jeder Erhöhung übertra-" . - ■
    gen wird.
    ;4. Einrichtung nach Anspruch 3, dadurch gekennzeichnet, daß der letzte Teilabschnitt eines Seitenrahrnens gewählt ; wird, wenn das fünfte Ausgangssignal oder das sechste
    Ausgangssignal des Vergleichers anzeigt, daß das neue · Segment ein Großsegment oder ein Segment variabler Länge [ ist.
    i5. Einrichtung nach Anspruch 4, dadurch gekennzeichnet,
    ■: daß bei Nxchtverfügbarkeit eines Teilabschnittes oder
    ! , Nichtpackbarkeit eines Segmentes ein Identifikations-
    ; signal einer neuen Gruppe von Segmenten zur Prüfung
    j "■"'". ■_■■.-■_
    PO 973 022
    " 5 0 9 8 31/0772
    j herangezogen wird,
    ! daß in diesem Fall ein überschriftenfeld in einem neuen Seitenrahmen von einem Überschriftenfeld-Register aus gespeichert wird, daß in diesem Register das Packtingsbit gesetzt und das Verfügbarkeitsfeld zurückgestellt wird,
    und daß ein Verschiebungsregister auf die Adresse des ersten Teilabschnittes dieses Seitenrahmens gesetzt wird, wenn festgestellt wird, daß die Größe des neuen Segmentes kleiner oder gleich der Größe eines Teilabschnittes ist und daß das neue Segment eine feste Größe hat,
    daß jedoch das Verschiebungsregister auf die Adresse des letzten Teilabschnittes gesetzt wird, wenn das neue Segment ein Großsegment oder ein Segment variabler Länge ist.
    Einrichtung nach Anspruch 1, gekennzeichnet durch ein Zeigerregister (201), das eine Segmentadresse, eine Teilabschnitt-Verschiebungsadresse, eine Segment-Seitenadresse und eine Segment-Verschiebungsadresse speichert, durch einen Addierer (203) mit drei Eingängen, dem die Segment-Seitenadresse und die Segment--Vers chiebungs adresse zusammen zugeführt werden, dem ferner die Teilabschnitts-Vers chiebungs adresse, ausgerichtet mit dem hochrangigen Teil der Segment-Verschiebungsadresse zugeführt wird, und
    durch ein virtuell Adressenregister (204), das mit dem Ausgang des Addierers verbunden ist und den Seiten- und Verschiebungsteil einer virtuellen Adresse zur Angabe des Segments im Seitenrahmen erhält, wobei das Virtuell-Adressenregister einen virtuellen Seitenrahmenteil und ; einen virtuellen Verschiebungsteil zur Aufnahme des ; Seiten- und Verschiebungsteiles aufweist.
    [7. Einrichtung nach Anspruch 6, dadurch gekennzeichnet, daß vom Zeigerregister außerdem ein Segmentgruppen-PO 973 022
    f- Λ rt -~ -* -
    509831/077 2
    24567 ΊΟ
    Identifizierer (SGI) im Virtuell-Adressenregister gespeichert wird. ·
    j8. ' Einrichtung nach Anspruch 7, gekennzeichnet durch ein : Indexregister (202) zum Modifizieren einer Segmentadresse/ • zum Feststellen eines inneren Teil des Segmentes, wobei der Ausgang des Indexregisters mit einem Eingang des Addierers verbunden ist, derart, daß das Virtuell-Adressenregister die virtuelle Adresse des inneren Teiles dieses Segmentes aufnimmt.
    Einrichtung nach Anspruch 8, dadurch gekennzeichnet, daß die virtuelle Adresse in bezug auf die Grenzadresse des Teilabschnittes überprüft wird, daß die Teilabschnittverschiebung von Zeigerregister zu einer Vergleichseinrichtung gebracht wird, daß der virtuelle Seitenrahmenteil und ein hochrangiger Teil der virtuellen Verschiebungsadresse des Virtuell-Adreßregisters zu einem Vergleicher gebracht werden, wobei der hochrangige Teil dieselbe Anzahl von Bits aufweist, als die Verschiebungsadresse,
    daß bei Gleichheit die gewünschte Information vom Hauptspeicher (116) über ein Speicherdatenregister (118) ausgelesen werden, und daß bei Ungleichheit ein Signal zu einer Programmunterbrechungs-Einrichtung (221) gesendet wird. . .
    PO 973 022
    509831 /0772
DE19742456710 1973-12-03 1974-11-30 Einrichtung zum packen von seitenrahmen eines hauptspeichers mit datensegmenten Pending DE2456710A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/421,707 US3942155A (en) 1973-12-03 1973-12-03 System for packing page frames with segments

Publications (1)

Publication Number Publication Date
DE2456710A1 true DE2456710A1 (de) 1975-07-31

Family

ID=23671699

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19742456710 Pending DE2456710A1 (de) 1973-12-03 1974-11-30 Einrichtung zum packen von seitenrahmen eines hauptspeichers mit datensegmenten

Country Status (5)

Country Link
US (1) US3942155A (de)
JP (1) JPS5710500B2 (de)
DE (1) DE2456710A1 (de)
FR (1) FR2253240B1 (de)
GB (1) GB1459827A (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4128875A (en) * 1976-12-16 1978-12-05 Sperry Rand Corporation Optional virtual memory system
US4189781A (en) * 1977-01-25 1980-02-19 International Business Machines Corporation Segmented storage logging and controlling
US4388685A (en) * 1978-08-04 1983-06-14 Digital Equipment Corporation Central processor with apparatus for extended virtual addressing
JPS5734251A (en) * 1980-08-07 1982-02-24 Toshiba Corp Address conversion and generating system
US4638426A (en) * 1982-12-30 1987-01-20 International Business Machines Corporation Virtual memory address translation mechanism with controlled data persistence
US4805097A (en) * 1984-08-03 1989-02-14 Motorola Computer Systems, Inc. Memory management unit with dynamic page allocation
JPS61245256A (ja) * 1985-04-23 1986-10-31 Mitsubishi Electric Corp 情報格納方式
US5539899A (en) * 1992-04-03 1996-07-23 International Business Machines Corporation System and method for handling a segmented program in a memory for a multitasking data processing system utilizing paged virtual storage
JP3314438B2 (ja) * 1993-02-22 2002-08-12 株式会社日立製作所 データ通信装置
US5440710A (en) * 1994-03-08 1995-08-08 Exponential Technology, Inc. Emulation of segment bounds checking using paging with sub-page validity
US5652872A (en) * 1994-03-08 1997-07-29 Exponential Technology, Inc. Translator having segment bounds encoding for storage in a TLB
JPH1097431A (ja) * 1996-07-31 1998-04-14 Fujitsu Ltd シミュレーション装置及びシミュレーション方法並びにコンピュータ読取可能な記録媒体
US7242682B1 (en) 2002-10-09 2007-07-10 Storage Technology Corporation Hardware frame modifier apparatus and method for storage virtualization

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3412382A (en) * 1965-11-26 1968-11-19 Massachusetts Inst Technology Shared-access data processing system
US3425039A (en) * 1966-06-27 1969-01-28 Gen Electric Data processing system employing indirect character addressing capability
US3510847A (en) * 1967-09-25 1970-05-05 Burroughs Corp Address manipulation circuitry for a digital computer
NL6815506A (de) * 1968-10-31 1970-05-04
US3764996A (en) * 1971-12-23 1973-10-09 Ibm Storage control and address translation

Also Published As

Publication number Publication date
JPS5710500B2 (de) 1982-02-26
FR2253240A1 (de) 1975-06-27
JPS5087250A (de) 1975-07-14
US3942155A (en) 1976-03-02
FR2253240B1 (de) 1976-12-31
GB1459827A (en) 1976-12-31

Similar Documents

Publication Publication Date Title
DE2645537C2 (de)
DE2346525A1 (de) Virtuelle speichereinrichtung
DE2131066C3 (de) Anordnung zum Adressieren eines Tabellenspeichers
DE2224537C2 (de) Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor
DE3588009T2 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung.
DE2417795C2 (de) Datenverarbeitungsanlage
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
CH657218A5 (de) Mehrbenuetzer-datenverarbeitungsmaschine mit virtuellem speicher.
DE2725718A1 (de) Verarbeitungssystem mit mehreren virtuellen adressenraeumen
DE2456710A1 (de) Einrichtung zum packen von seitenrahmen eines hauptspeichers mit datensegmenten
DE2117936B2 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
DE2506733A1 (de) Datenspeicher ohne feste zuordnung zwischen adressen und speicherplaetzen
DE1803767A1 (de) Elektronisches Datenverarbeitungssystem
DE2350884A1 (de) Datenverarbeitungssystem
DE3833933A1 (de) Informationsverarbeitungseinrichtung mit einer adressenerweiterungsfunktion
DE2556661A1 (de) Steuerschaltung mit adressenerweiterung
DE2360303C2 (de) Datenverarbeitungsanlage mit Adreßübersetzung für Ein-/Ausgabekanäle
DE2339636A1 (de) Programmsteuereinrichtung
DE2441754A1 (de) Prozessor-datenuebertragungssteueranordnung sowie verfahren zur steuerung der datenuebertragung eines prozessors
DE2801611A1 (de) Verfahren und anordnung zum adressieren und speichern von daten in speichern mit wahlfreiem zugriff
DE1499182B2 (de) Datenspeichersystem
DE3689217T2 (de) Datenverarbeitungseinrichtung mit einer Schaltung zur Prüfung der Adressgrenzen in einem virtuellen Speicher.
DE2720864A1 (de) Verfahren und anordnung zum lueckenfreien einspeichern einer anzahl von datenblocks unbestimmter laenge
DE2436932A1 (de) Anordnung zur messung der effektivitaet einer datenverarbeitungsanlage mit virtuellem speicher
DE69020438T2 (de) Verfahren und Vorrichtung zum Prüfen von Aussagelogiktheoremen in der Systemanalyse.

Legal Events

Date Code Title Description
OHJ Non-payment of the annual fee