DE2456710A1 - Einrichtung zum packen von seitenrahmen eines hauptspeichers mit datensegmenten - Google Patents
Einrichtung zum packen von seitenrahmen eines hauptspeichers mit datensegmentenInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User 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«
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
!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
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 :
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).
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
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.
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.
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
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
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.
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-
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)
- PATENTANSPRÜCHEEinrichtung 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 unddurch 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 diesemPO 973 02250^831/0772Kennzeichenfeld ü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 sechsteAusgangssignal 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üfungj "■"'". ■_■■.-■_PO 973 022" 5 0 9 8 31/0772j 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, unddurch 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 022f- Λ rt -~ -* -509831/077 224567 ΊΟ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 022509831 /0772
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)
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)
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 |
-
1973
- 1973-12-03 US US05/421,707 patent/US3942155A/en not_active Expired - Lifetime
-
1974
- 1974-10-09 FR FR7434707A patent/FR2253240B1/fr not_active Expired
- 1974-11-11 GB GB4863374A patent/GB1459827A/en not_active Expired
- 1974-11-14 JP JP13053874A patent/JPS5710500B2/ja not_active Expired
- 1974-11-30 DE DE19742456710 patent/DE2456710A1/de active Pending
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 |