DE2339741A1 - Anordnung zur bildung einer relativen adresse fuer einen speicher - Google Patents
Anordnung zur bildung einer relativen adresse fuer einen speicherInfo
- Publication number
- DE2339741A1 DE2339741A1 DE19732339741 DE2339741A DE2339741A1 DE 2339741 A1 DE2339741 A1 DE 2339741A1 DE 19732339741 DE19732339741 DE 19732339741 DE 2339741 A DE2339741 A DE 2339741A DE 2339741 A1 DE2339741 A1 DE 2339741A1
- Authority
- DE
- Germany
- Prior art keywords
- address
- devices
- addresses
- signal
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
Description
Dipl.-Ing. Heinz Bardehle
Mto» 22. EotA 15. Tel. 292555 2339741
München, den 6. AU& 1973
Mein Zeichen: P I691
Anmelder: Honeywell Information Systems Inc.
200 Smith Street
Waltham, Massachusetts, V. St. A.
Anordnung zur Bildung einer relativen Adresse für einen Speicher
Die Erfindung bezieht sich generell auf Datenverarbeitungssysteme und insbesondere auf Adressenbildungsverfahren, bei
denen inhaltsadressierbare Speicher verwendet werden.
Um die stets steigenden Anforderungen nach größerer Speicherkapazität
im Haupt- bzw. Arbeitsspeicher zu mildern, ist die Verfahrensweise des virtuellen Speichers für Mehrprogramm-Datenverarbeitungssysteme
entwickelt worden. Bei einem virtuellen Speicher handelt es sich um ein Konzept, welches
die Speicherkapazität scheinbar grenzenlos macht, indem der am wenigsten benutzte Speicherinhalt in einer Großspeichereinrichtung,
wie einer Trommel oder Plattendatei, gespeichert wird. Wird von dem ausgeführten Programm eine Information
benötigt, die in der Großspeiehereinrichtung enthalten ist,
409810/0836
so wird der gewünschte Inhalt in den Haupt- bzw. Arbeitsspeicher gebracht. Durch Anwendung eines virtuellen Speichers
dürfte einzusehen sein,/die Adressenspeicherplätze des in dem
Hauptspeicher gespeicherten Informationsinhalts konstant verändert werden. Mithin müssen Einrichtungen vorgesehen werden,
um die tatsächlich vorhandene Adresse der Information zu bestimmen.
Mit der relativen Adressierung steht eine Einrichtung
zur Verfügung, die die Speicherplätze des veränderten Inhalts des Hauptspeichers feststellt. Die relative Adressierung bezieht
die Adresse des Befehls auf einen Anfangspunkt, so daß der genaue vorliegende Speicherplatz bestimmt werden kann.
Mit der Ausnutzung der relativen Adressierung ist jedoch eine Forderung nach einer Einrichtung verbunden, die jede relative
Adresse in eine absolute bzw. tatsächliche Adresse transformiert, so daß ein Zugriff zu dem in Frage kommenden Wort erhalten
wird. In einem Speicher großer Kapazität sind mehrere Schritte erforderlich, um die relative Adresse in eine absolute
bzw. tatsächliche Adresse zu überführen. Jeder Schritt umfaßt die Bezugnahme auf einen Code mittels in einem Speicher
enthaltener Tabellen. Diese Codes liefern, wenn sie mit bestimmten
Teilen der relativen Adresse kombiniert werden, die tatsächliche Adresse. Es dürfte ersichtlich sein, daß wertvolle
Rechnerzeit durch Lieferung bzw. Entwicklung der absoluten Adresse mittels der Vielzahl von Tabellen verbraucht
wird.
Die relative Adressierung ist nur eine Teillösung hinsichtlich der dynamischen Verteilung des Speicherplatzes. Auf
Grund der eine Zufallsgröße besitzenden Programme ist bisher ein System benutzt worden, welches einen Speicher in Segmenten
variabler Größe bereitstellt und welches die Eigenschaft be-
409810/0838
sitzt, die Speicherverteilung im Zuge eines Programmdurchlaufs
neu zu gestalten. Dieses mit Segmentieren bezeichnete System ermöglicht jedem Vorgang einen Zugriff zu seinen eigenen
oder mit ihm in Beziehung stehenden Speichersegmenten mittels eines Schemas, und zwar unter Verwendung von Segmentnummern
und Segmentdeskriptoren. Eine Segmentnummer leitet den Zugriff zu einem bestimmten, in dem Speicher enthaltenen Segment,
während die Segmentdeskriptoren die tatsächliche Startadresse und die Größe der Speichersegmente enthalten. Die Segmentnummern
bzw. -zahlen und die Segmentdeskriptoren sind jeweils
in dem Hauptspeicher enthalten; sie werden durch das Betriebssystem aufrechterhalten. Die Anwendung des Segmentierens im
Bereich einer relativen Adressierung führt zu einer weiteren Komplizierung in der Bestimmung der tatsächlichen Adresse.
Um im Bereich einer relativen Adressierung eine bestimmte Geschwindigkeit zu erzielen, sind inhaltsadressierbare Speicher
hinsichtlich der Adressenlieferung bzw. -entwicklung verwendet worden. Sämtliche in einem inhaltsadressierbaren Speicher enthaltenen
Worte werden gleichzeitig abgefragt, und zwar zur Feststellung einer Übereinstimmung mit einem Kennwort. Somit
ist die Adressierung durch einen Adressenspeicherplatz bei einem inhaltsadressierbaren Speicher nicht existent. Wird
kein Feststellsignal bei der Suche in einem inhaltsadressierbaren Speicher erzeugt, so ist das Kennwort bzw. Schlüsselwort
nicht in diesem Speicher enthalten; das betreffende Kennwort muß vielmehr zu dem Hauptspeicher für eine Entwicklung in
normalerweise übertragen werden. Die Ausnutzung -der inhaltsadressierbaren
Speicher ist auf Grund ihrer hohen Kosten begrenzt. Werden inhaltsadressierbare Speicher im Bereich
des Segmentierens und relativen Adressierens benutzt, so
409810/0836
werden ihre Kosten unerträglich, da eine zusätzliche .Schaltung für die Lieferung der tatsächlichen Adresse
benötigt wird.
Der Erfindung liegt nun die Aufgabe zu Grunde, eine Anordnung zu schaffen, die bei einem Minimum an Bauelementen und damit
unter niedrigen Kosten schnell eine Adresse zu liefern imstande
ist. Die neu zu schaffende Anordnung soll dabei einen inhaltsadressierbaren
Speicher für die Entwicklung bzw. Lieferung einer tatsächlichen Adresse an Hand einer relativen Adresse
ausnutzen, die während der Ausführung eines Programms abge-" geben wird. Ferner soll die neu zu schaffende Anordnung bei
der Adressenbildung verwendet werden und dabei automatisch die gerade erst benutzten Adressen feststellen bzw. festlegen.
Gelöst wird die vorstehend aufgezeigte Aufgabe durch die im Patentanspruch 1 angegebene Erfindung.
Gemäß einer Ausführungsform der Erfindung und gemäß einer Betriebsart der Erfindung ist ein inhaltsadressierbarer
Speicher in einem Datenverarbeitungssystem vorgesehen, in
welchem ein Zugriff auf einer gmejinssnieji&Lsis erfolgt, wobei
eine relative Adresse (Augenblicksadresse) von einer Datenverarbeitungseinrichtung
während der Ausführung eines Programms durch das System abgegeben wird. Der Inhalt eines
assoziativen Speichers, der eine Vielzahl von gerade benutzten Adressen speichert, wird mit der Augenblicksadresse
verglichen. Dabei wird ein Signal erzeugt, welches anzeigt, ob die Augenblicksadresse in dem assoziativen Speicher enthalten
ist oder nicht. Ferner sind Vergleicher-Leitungen vorgesehen, die in dem Fall ein Signal führen, daß eine Anzeige
409810/083S
darüber auftritt, daß die Augenblicksadresse in dem assoziativen Speicher enthalten ist. Die Vergleicher-Leitungen
geben einen Codierer frei, um aus einem Pufferspeicher die der Augenblicksadresse oder relativen Adresse
entsprechende tatsächliche Adresse auszulesen. Ist ein Signal aufgetreten, welches keinen Übereinstimmungs- bzw. Vergleichszustand
anzeigt, so wird ein Hauptspeicher adressiert. Ferner sind ein Ersatzalgorithmus und eine Auswahllogik vorgesehen,
die die nicht in dem assoziativen Speicher enthaltene Adresse in den nächsten zur Verfügung stehenden Speicherplatz des
assoziativen Speichers überträgt.
An Hand von Zeichnungen wird die Erfindung nachstehend näher erläutert.
Fig. 1 zeigt in einem .Blockdiagramm die Gesamtorganisation
der Erfindung.
Fig. 2 zeigt in einem Schaltplan einen Ersatzalgorithmus, der in Fig. 1 in Blockform dargestellt ist.
Fig. 3 zeigt in einem Schaltplan eine Auswahllogik, die in Fig. 1 in Blockform dargestellt ist.
Die bevorzugte Ausführungsform der Erfindung, wie sie in Fig. 1 dargestellt ist, bildet einen Teil eines großen
Datenverarbeitungssystems, welches extrem schnell zu arbeiten imstande ist. Die bevorzugte Ausführungsform der Erfindung
ist in Funktion bzw. funktionsfähig, wenn axe Zenxraleinheit
(CPU), die hier nicht dargestellt ist, einen 3efehl erzeugt. Bei einem Befehl handelt es sich um ein Wort, welches
einen diskreten Schritt in der Datenverarbeitungsoperation leitet. Das betreffende Wort sollte dabei von einem
Datenwort unterschieden werden, auf das hin Verknüpfungs- oder
4098 1Q/0836
- 6 - . 2 3 3 9 7 A 1
Rechenoperationen ausgeführt werden. Ein Befehlswort enthält normalerweise einen Befehlsteil und einen Adressenteil.
Der Befehlsteil charakterisiert die Eigenschaft des auszuführenden Schrittes. Bei der vorliegenden Ausführungsform
zeigt der Befehlsteil z.B. an, daß ein Zugriff zu einem im Hauptspeicher enthaltenen Wort zu erfolgen hat. Der Adressenteil
kennzeichnet einen Speicherwortplatz in einem Hauptspeicher einer Vielzahl von verschachtelten Hauptspeichern,
aus welchem ein Datenwort für eine Verarbeitung herauszusuchen ist oder in welchem ein verarbeitetes Datenwort zu
speichern ist. Bei der vorliegenden Ausführungsform wird durch den Adressenteil jedoch nicht ein tatsächlicher Speicherwortplatz
identifiziert; vielmehr wire durch den Adressenteil lediglich die Lage eines tatsächlichen Speicherwortplatzes
in einem der Hauptspeicher relativ zu einer Bezugsstelle
Charakter j siert. Demgemäß wird die durch ein Befehlswort
abgegebene Adresse als "relative" Adresse bezeichnet. Eine relative Adresse wird in eine tatsächliche bzw. absolute
Adresse einer bestimmten Zelle in einem bestimmten Speicher der Hauptspeicher durch eine Reihe aufeinanderfolgender
Schritte transformiert, die die relative^Adresse ableiten
oder in eine tatsächliche bzw. absolute Adresse eines Hauptspeichers der Vielzahl von Hauptspeichern umsetzen. Die
Kombination dieser aufeinanderfolgenden Schritte zur Erzielung eines tatsächlichen Adressenspeicherplatzes wird
als Adressenbildung bezeichnet.
Bezugnehmend auf Fig. 1 sei bemerkt, daß in dem Fall, daß ein Befehl durch die Zentraleinheit (nicht gezeigt) erzeugt
wird, sowohl der Befehlsteil als auch der Adressenteil untersucht werden. Wenn der Befehlsteil anzeigt, daß ein Zugriff
409810/0836
zu dem Hauptspeicher zu erfolgen 1st , wertet ein Mikroprogramm diesen Befehl als Betriebscode des inhaltsadressierbaren
Speichers aus. Der Adressenteil wird an einen Verarbeitungssteuerblock bzw. Prozesssteuerblock 12 abgegeben,
der eine Segmentnummer und eine Verschiebung liefert. Dabei sind diesem System mehrere Prozesssteuerblöcke 12 zugeordnet;
zum Zwecke der Erläuterung wird jedoch lediglich ein derartiger Steuerblock beschrieben werden.
Der Prozesssteuerblock 12 speichert die gesamte erforderliche Steuerinformation, die für die Verarbeitung eines Programms
erforderlich ist. Für die Zwecke dieser bevorzugten Ausführungsform ist der Prozesssteuerblock 12 jedoch auf die
Lieferung einer Segmentzahl bzw. -nummer und einer .Verschiebung
beschränkt. Eine Segmentnummer leitet einen Zugriff zu einem bestimmten Segment in einem der Hauptspeicher.
Bei der bevorzugten Ausführungsform kann die Zentraleinheit über 2 000 eindeutige Segmente enthalten, die jeweils von
variabler Größe sind. Die Segmentnummer , die z.B. 12 Bits betragen kann, identifiziert ein Segment. Auf Grund der
dynamischen Verteilung bzw. Zuteilung der in der Vielzahl
von Hauptspeichern enthaltenen Segmente ist es nicht bekannt, wo ein gekennzeichnetes Segment gerade liegt. Um
diese Information bereitzustellen, wird ein Segmentdeskriptor von dem Betriebssystem der Zentraleinheit festgehalten.
Ein Segmentdeskriptor liefert die tatsächliche Grund- bzw. Basisadresse des jeweiligen eindeutigen Segments. Darüber
hinaus ist jedes Segment durch einen anderen Segmentdeskriptor beschrieben. Wird ein Segment in der Vielzahl von Speichern
durch das Betriebssystem hindurchgeleitet, so ändert sich entsprechend die in dem Segmentdeskriptor enthaltene Information.
Die durch den Prozesssteuerblock 12 bewirkte
409810/0836
Verschiebung führt zu einem Zugriff zu einem bestimmten Platz innerhalb des Segments. Nachdem das Segment bestimmt
worden ist und nachdem die laufende Startadresse des Segments identifiziert worden ist, zeigt die Verschiebung den
tatsächlichen geforderten Platz des Wortes an.
An Hand der Segmentnummer wird der Segmentdeskriptor gebildet, und zwar durch aufeinanderfolgenden Zugriff zu
mehreren Tabellen, die ebenfalls durch das Betriebssystem aufrechterhalten werden. Für Zwecke der Erfindung ist jedoch
keine Erläuterung dieser Tabellen erforderlich, da die vorliegende Ausführungsform die Forderung nach Bezugnahme
auf diese Tabellen vermeidet.
Der Prozeßsteuerblock 12 überträgt die Segmentnummer in ein Kurzspeicherregister 14, welches nachstehend als Segmentregister
bezeichnet werden wird. Das Segmentregister 14 kann 16 Bit-Speicherplätze enthalten; im Rahmen der vorliegenden
Beschreibung werden jedoch lediglich 14 Bit-Speicherplätze erläutert werden. Von den 14 Speicherplätzen, die in
dem Segmentregister 14 enthalten sind, können entweder die ersten sechs oder zwölf Speicherplätze für die Bildung des
Segmentdeskriptors von Bedeutung sein. Diese Festlegung erfolgt durch das erste Bit in dem Segmentregister 14. Dieses
Bit zeigt an, ob ein Zugriff zu einem großen Segment oder zu einem kleinen Segment zu erfolgen hat. Bei Zugriff zu einem
großen Segment ist das Bit ein Null-Bit; in diesem Fall werden lediglich die ersten sechs Bits benötigt. Ist das Segment
ein kleines Segment, so ist das Bit ein 1-Bit; in diesem Fall werden die ersten zwölf Bits benötigt. Dies erfibt
sich daraus, daß mehr kleine Segmente als große Segmente vorhanden sind. Um die kleinen Segmente richtig zu beschrei-
Λ09810/0836
ben bzw. darzustellen, sind mehr Bits erforderlich. Werden lediglich die ersten sechs Bits benötigt, so werden die hinsichtlich
der Wertigkeit letzten sechs Bits unwirksam gemacht. Das Segmentregister 14 steuert die Adressierung eines assoziativen
Speichers 16. Ein Beispiel für ein Segmentregister 14 ist in der Druckschrift "TTL Integrated Circuit Catalog" von
Texas Instruments, -1.8.69, angegeben. Als Schaltung kann z.B. eine solche des Typs SN5475 verwendet werden, wie sie auf
Seite 6-1 der genannten Druckschrift gezeigt ist.
Das Segmentregister 14 ist an .dem assoziativen Speicher 16
angeschlossen. Der assoziative Speicher 16 enthält eine Schaltung, die assoziative Speicherzellen, Bit-Leseverstärker
und Bit-Treiber sowie Wort-Leseverstärker und -Treiber umfaßt. Bei der bevorzugten Ausführungsform enthält
der Speicher 16 sechzehn Worte, deren jedes sechzahn Bits enthält. Der Speicher 16 kaiin z.B. aus einer Vielzahl inhafcsadressierbarer
Speicherchips des Typs Fairchild 93402 bestehen. Wie an sich bekannt, enthalten diese Speicherchips
eine Logik, die Sperr- und Vergleichsvoränge zusammen mit einer entsprechenden Verknüpfung auszuführen vermag und die
verschiedene Operationen bereitstellt bzw. ausführt, die unter Zugrundelegung ihres Inhalts auszuführen sind. Ein
Wort oder irgendein Teil eines in dem Speicher 16 enthaltenen Wortes kann gelesen, mit einem anderen Viort unter
Lieferung eines Vergleichs- oder das Fehlen.eines Vergleichs
anzeigenden Signals verglichen oder geschrieben werden, und zwar entweder vollständig oder in einem ausgewählten Teil.
Alle diese typischen Operationen werden bei der vorliegenden Erfindung ausgenutzt.
Der assoziative Speicher 16 ist über Verknüpfungsglieder 15,
409810/0836
bei denen es sich um UND-Glieder handeln kann, mit einer
Vergleicher-Leitung 18 verbunden. Jedes Verknüpfungsglied ist mit seinem anderen Eingang an einer ein Abfragesignal
führenden Leitung angeschlossen. Das betreffende Abfragesignal wird von der Zentraleinheit bzw. der zentralen Verarbeitungseinheit
erzeugt. Wird ein Äbfragesignal den Verknüpfungsgliedern
15 zugeführt, so wird als Folge dieser Maßnahme der Vergleich zwischen dem Inhalt des Segmentregisters 14 und des assoziativen Speichers 16 durchgeführt.
Zeigt sich eine Übereinstimmung zwischen einem in dem assoziativen Speicher 16 enthaltenen Wort und dem Inhalt
des Segmentregisters 14, so wird an Hand dieses Wortes ein Signal auf einer der Vergleicher-Leitungen 18 erzeugt.
Das Vergleichersignal wird einem Codierer 20 zugeführt. Die Funktion des Codierers 20 besteht darin, das auf einer
der sechzehn Vergleicherleitungen auftretende Signal in eine 4-Bit-Adresse umzusetzen. Der Codierer 20 gibt diese 4-3it-Adresse
über Leitungen 22 an einen Pufferspeicher 24 ab, wodurch die in einem bestimmten Speicherplatz des Pufferspeichers
24 enthaltene Information ausgewählt wird. Der Pufferspeicher 24 1st zum Zwecke der Darstellung ein sechzehn
Wörter mit jeweils 64 Bits umfassender Speicher. Der Speicher kann z.B. aus billigen Festkörper-Speicherchips bestehen, die
intern so ausgebildet sind, daß sie die sechzehn Wörter speichern. Das in dem Pufferspeicher 24 enthaltene Wort
kennzeichnet den tatsächlichen Startadressenplatz für das relativ adressierte Wort; das betreffende Wort ist als
Segmentdeskriptor bekannt. Zwischen, den in dem Speicher enthaltenen Wörtern und den in dem assoziativen Speicher
enthaltenen Wörtern besteht eine 1-zu-1-Übereinstimmung.
409810/0836
Wird ein Speicherplatz in dem Pufferspeicher 24 ausgewählt,
so wird das Wort, das in diesem Speicherplatz enthalten ist, in ein Ausgaberegister 25 eingelesen, in welchem es in auf
dem vorliegenden Gebiet bekannterweise verarbeitet bzw. ausgenutzt wird.
Stimmt eine in dem Segmentregister 14 enthaltene Segmentnummer mit einem in dem Speicher 16 enthaltenen Wort überein,
so wird der der Segmentnummer entsprechende Segmentdeskriptor in dem Speicher 24 bereitgestellt. Da jede Segmentnummer einen
Zugriff zu einem bestimmten Segment in einem der Vielzahl von Hauptspeichern leitet und da jeder Segmentdeskriptor die gerade
vorliegende tatsächliche Startadresse des Segments kennzeichnet, ist die Identifizierung des Segments bekannt. Die
durch den Prozeßsteuerblock 12 bewirkte Verschiebung bezeichnet den bestimmten Adressenplatz bzw. -Speicherplatz
innerhalb des Segments. Damit liefert die vorliegende Erfindung die erforderliche Information zur Bildung einer relativen
Adresse innerhalb einer äußerst kurzen Zeitspanne. Wäre eine normale Adressenbildung erforderlich, so würde die Segmentnummer
durch das Betriebssystem gesteuert auf aufeinanderfolgende Tabellen zu beziehen sein. Diese Tabellen, die fortlaufend
durch das Betriebssystem aktualisiert werden, bilden den Segmentdfiskriptor. Durch die vorliegende Erfindung wird
diesem Aktualisierungsvorgang entgegengewirkt.
Ein über die Vergleicher-Leitungen 18 geleitetes Signal wird ferner der Auswahllogik 28 zugeführt. Die Auswahllogik 28,
die in Fig. 3 im einzelnen dargestellt ist, kennzeichnet, wie nachstehend noch beschrieben werden wird, den Segmentnummern-Speicherplatz
in dem Speicher 16, in welchem der
409810/0836
Vergleichszustand aufgetreten ist.
In dem Fall, daß ein Fehlerzustand auftritt und daß unterschiedliche Segmentnummern in dem Speicher 16 als
die abgefragte Information des Segmentregisters 14 enthaltend signalisiert werden, d.h. in dem Fall, daß verschiedene
Vergleichersignale bereitgestellt werden, wird eine sogenannte Mehrfach-Trefferlogik 26 freigegeben. Die
Mehrfach-Trefferlogik 26 legt eine Fehlerablauffolge fest,
so daß die gesamte in den Speicherplätzen des assoziativen Speichers 16 enthaltene Information durch nicht näher dargestellte
Einrichtungen gelöscht wird. Somit dürften keine mehrfach übereinstimmenden Signale wieder auftreten. Die
Mehrfach-Trefferlogik 26 kann irgendeine Auswahllogik sein, die durch zwei oder mehrere gleichzeitig auftretende Signale
freigegeben wird.
Führt keine der Vergleicher-Leitungen 18 ein Signal, so wird die Kein-Vergleich-Logik 30 freigegeben, woraufhin an die
Leitung 32 ein Signal abgegeben wird. Die Kein-Vergleich-Logik 30, die durch ein NOR-Glied gebildet sein kann, gibt
das Auftreten verschiedener Operationen frei.
Wenn ein Kein-Vergleichs-Zustand vorhanden ist, wird der
Austausch- bzw. Brsatzalgorithmus 34 aktualisiert. Der
Ersatzalgorithmus, der in Fig. 2 im einzelnen veranschaulicht ist, wird durch einen 4-Bit-Binärzähler gebildet, der über
seine Ausgangsleitung 36 den nächsten Speicherplatz in dem
assoziativen Speicher 16 anzeigt, zu dem ein Zugriff zu
erfolgen hat. Der Ersatzalgorithmus 34 basiert auf der Theorie, daß bezüglich der erst kürzlich benutzten Adresse
409810/0836
die höchste Wahrscheinlichkeit existiert, daß zu dieser Adresse wieder ein Zugriff erfolgt. Durch nacheinander
erfolgende Einstellung auf die 16 Speicherplätze in dem assoziativen Speicher 16 gewährleistet der Ersatzalgorithmus
34, daß die sechzehn, erst kürzlich benutzten Segmentnummerη
schnell benutzt bzw. verwertet werden können.
Liegt kein Vergleichszustand vor, so erfolgt die Adressenbildung durch den normalen zeitverbrauchenden Vorgang. Damit
wird die relative Adresse solange übertragen, bis der tatsächliche Speicherplatz in einem der Hauptspeicher bekannt ist.
Während dieses Vorgangs erhält das Betriebssystem 38 den Segmentdeskriptor. Dieser Segmentdeskriptor wird an einen Speicherplatz
in dem Speicher 24 abgegeben, und zwar an denjenigen Speicherplatz, der durch den Codierer 20 angezeigt wird. Das
Betriebssystem 38 liefert einen Segmentdeskriptor insbesondere über Leitungen 40 an ein Segmentdeskriptorregister
Bei dem Segmentdeskriptorregister 42 kann es sich um ein Kurzzeitspeicherregister
handeln. Der in dem Register 42 enthaltene Segmentdeskriptor wird dann in einem Speicherplatz
des Speichers 24 eingeschrieben; der betreffende Speicherplatz soll dabei durch die Signale auf den Codiererausgangsleitungen
22 angezeigt werden. Da die Adresse des Codierers durch den assoziativen Speicher 16 festgelegt wird, ist eine
Verbindung zwischen der Segmentnummer und dem Segmentdeskriptor hergestellt.
Das Segmentregister 14 enthält neben den zwölf Bits der Segmentnummer noch zwei weitere Bits. Ein Bit, das als
Gültigkeitsbit bezeichnet werden mag, wird dazu herangezogen, eine gerade gültige Segmentnummer in dem Speicher 16
£09810/0836
" 14 " 23397Λ 1
zu bezeichnen. Dieses Bit wird automatisch unter Mikroprogrammsteuerung
für ,die jeweilige Segmentnummer geschrieben. Für Zwecke der Erläuterung sei angenommen, daß das
Gültigkeitsbit in dem dreizehnten Speicherplatz des Segmentregisters 14 untergebracht ist. Bevor ein Vergleich des Inhalts
des Segmentregisters 14 und des assoziativen Speichers erfolgt, wird eine binäre 1, die kennzeichnend ist für einen
1-Zustand, in dem Gültigkeitsbitspeicherplatz des Segmentregisters
14 eingeschrieben. Solange die verglichene Segmer.tnummer eine binäre 1 an der dreizehnten Stelle enthält, kann
kein möglicher Vergleich vorgenommen werden. Damit stellt, wie nachstehend noch beschrieben werden wird, das Gültigkeitsbit sicher, daß ein Zugriff nur zu der gegenwärtig vorhandenen
Information erfolgt.
Das zweite zusätzliche Bit, das nachstehend als Prozedurbit bezeichnet wird, wird dazu herangezogen, eine Prozedursegmentnummer
zu bezeichnen. Wenn ein Programm abläuft, bezeichnet die Segmentnummer mit einem daran angehängten Prozedurbit
die gerade benutzte aktive Prozedur. Zu irgendeinem vorgegebenen Zeitpunkt kann lediglich ein Prozedurbit in dem
assoziativen Speicher 16 enthalten sein. Wird eine neue Prozedur eingeführt, so wird das alte Prozedurbit durch
die Auswahllogik 2Θ freigegeben. Der neuen Segmentnummer, die die gerade benutzte aktive Prozedur bezeichnet, wird
das Prozedurbit angehängt, wenn eine Speicherung in dem Speicher 16 durch die Auswahllogik 28 erfolgt. Zum Zwecke
der Erläuterung sei angenonmen, daß das Prozedurbit an der vierzehnten Stelle des Segmentregisters 14 untergebracht ist.
409810/0836
in dem assoziativen Speicher 16 ersetzt. Bei der vorliegenden Ausführungsform ist die für eine Ersetzung vorgesehene
Segmentnummer die älteste vorhandene Segmentnummer. Unter derartigen Voraussetzungen kann diese Segmentnummer jedoch
die Segmentnummer der gerade benutzten aktiven Prozedur sein. Um einen Ersatz einer aktiven Prozedursegmentnummer zu verhindern,
ist eine Bit-Prüflogik 44 vorgesehen. Die Bit-Prüflogik 44 bestimmt, ob ein Prozedurbit der Segmentnummer angehängt
ist oder nicht. Liegt dieser Zustand vor, so gibt die Bit-Prüflogik ein Signal über die Leitung 46 an den mit
Ersatzalgorithmus bezeichneten Algorithmus-Schaltungsteil ab. Der Ersatzalgorithmus gibt seinerseits die Auswahllogik
für die Auswahl einer weiteren Segmentnummer in dem Speicher zum Zwecke des Ersatzes frei. Somit wird die Segmentnummer,
der ein Prozedurbit angehängt ist, niemals ersetzt.
In Fig. 2 ist die verknüpfungsmäßige Realisierung bzw.
Logik des Ersatzalgorithmus 34 gezeigt. Der Ersatzalgorithmus 34 besteht aus einem 4-Bit-Zähler 50 und aus zwei
UND-Gliedern 52, 54, die an einer gemeinsamen Leitung 56 angeschlossen sind. Der 4-Bit-Zähler 50, der ggfs. ein
Schieberegister sein kann, wird hinsichtlich seiner Zählerstellung jeweils dann erhöht, wenn ein Signal über die Leitung
56 abgegeben wird, d.h. jedesmal dann, wenn das UND-Glied 52 oder das UND-Glied 54 freigegeben bzw. übertragungsfähig
ist. Das Verknüpfungsglied 52 ist dann freigegeben, wenn ein Kein-Vergleich-Signal 32 von dem assoziativen Speicher
über die Kein-Vergleich-Logik 30 abgegeben wird und wenn das
an die Verknüpfungsglieder 15 abgegebene Abfragesignal noch vorhanden ist. Das Verknüpfungsglied 54 ist dann freigegeben,
wenn ein Kein-Vergleich-Signal 32 von dem Speicher 16 über die Logik 30 erzeugt wird und wenn die Bit-Prüflogik 44 an-
409810/0836
zeigt, daß ein Prozedurbit in der aus dem Speicher 16
gelesenen Segmentnummer festgestellt worden ist. Durch Erhöhen der Zählerstellung des Zählers 50, derart, daß
der nächste Speicherplatz in dem Speicher 16 angezeigt ist,
stellt das Verknüpfungsglied 54 sicher, daß die Segmentnummer mit einem aktiven Prozedurbit in dem assoziativen
Speicher 16 niemals ersetzt wird.
In Fig. 3 ist eine bevorzugte Ausführungsform der Auswahllogik 28 gezeigt. Die Auswahllogik 28 enthält fünf Verknüpfungsglieder
70, 72, 74, 76, 78, die für jeweils sech- · zehn Segmentnummernplätze in dem assoziativen Speicher 16
in gleicher Weise vorgesehen sind. Wenn irgendeines der fünf Verknüpfungsglieder freigegeben, d.h. übertragungsfähig
ist, werden ein oder mehrere Speicherplätze des Speichers über die Auswahllogik 28 adressiert.
Das Verknüpfungsglied 70 wird freigegeben, wenn ein Vergleichssignal
von dem assoziativen Speicher 16 erzeugt wird und wenn ein mikroprogrammiertes Eingangssignal geliefert
wird, da ein Prozedurbit in den Speicher 16 einzuschreiben
ist. Die Funktion des Verknüpfungsgliedes 70 besteht darin, ein Prozedurbit, d.h. ein 1-Bit, in den vierzehnten
Speicherplatz bzw. an die vierzehnte Stelle bezüglich der Segmentnummer einzuschreiben, die die gerade benutzte
aktive Prozedur kennzeichnet. Die Mikroprogrammsteuerung nimmt automatisch Kenntnis von sämtlichen neu eingeführten
Verfahren bzw. Prozeduren.
Das Verknüpfungsglied 72 wird bei Vorliegen von drei Zuständen freigegeben. Zum ersten existiert ein Kein-Vergleichs-
409810/0836
Zustand; zum zweiten wird ein Signal auf der Leitung 36 von dem Ersatzalgorithmus 34 erzeugt; zum dritten wird
ein mikroprogrammiertes Eingangssignal für das Lesen des
Inhalts der Auswahllogik abgegeben. Dieser Fall tritt dann auf, wenn es erforderlich ist, zu bestimmen, ob der vorliegende
Speicherplatz in dem Speicher 16 ein Prozedurbit enthält oder nicht. Das Ausgangssignal des Speichers 16 wird
zu der Bit-Prüflogik 44 hin ausgelesen. Wird ein Prozedurbit
ermittelt, so wird der Ersatzalgorithmus 34 ein zweitesmal vergrößert, und die nächste Adressenstelle wird freigegeben.
Das Verknüpfungsglied 74 wird freigegeben, wenn drei Zustände vorhanden sind. Diese Zustände sind: Ein Kein-Vergleichs-Signal
wird von der Kein-Vergleichs-Logik 34 erzeugt; ein Signal wird von dem Ersatzalgorithmus 34 über die Leitung
abgegeben, und ein mikroprogrammiertes Eingangssignal wird in dem Fall abgegeben, daß der Inhalt des Segmentregisters
in den Speicher 16 einzuschreiben ist. Die Funktion des Verknüpfungsgliedes 74 besteht darin, die in dem Segmentregister 14 enthaltene augenblickliche, ungleiche Segmentnummer
in den nächstfolgenden Speicherplatz des Speichers einzuschreiben. Dies erfolgt deshalb, weil die augenblickliche
Segmentnummer theoretisch diejenige Nummer ist, bezüglich der die höchste Wahrscheinlichkeit existiert, daß
sie in unmittelbarer Zukunft auftritt.
Die Verknüpfungsglieder 76 und 78 weisen Mikrooperationssteuerleitungen
auf. Das Verknüpfungsglied 76 wird freigegeben, wenn ein neuer Prozeßsteuerblock 12 eingeführt wird.
Ein neuer Prozeßsteuerblock 12 kann eingeführt werden, wenn ein neues Programm bzw. eine neue Routine oder ein neues
Unterprogramm durch die Zentraleinheit ausgeführt wird.
409810/0836
Nachdem ein neuer Prozeßsteuerblock 12 eingeführt ist, wird ein Signal an sämtliche sechzehn Verknüpfungsglieder 76
ausgesendet, und die Gültigkeitsbits, das sind die Bits an der Stelle 13 bzw. dem Speicherplatz 13, werden sämtlich
freigegeben, was zu einer binären Null führt. Nachdem die Gültigkeitsbits freigegeben worden sind, kann ein Vergleichszustand
bzw. Gleichheitszustand nicht auftreten, da das Gültigkeitsbit als Teil der jeweiligen Segmentnummer abgefragt
wird.
Das Verknüpfungsglied 78 wird ebenfalls über eine Mikro- .
Operationssteuerleitung freigegeben. Wird eine neue Prozedur in denselben Prozeßsteuerblock 12 eingeführt oder wird
ein neuer Prozeßsteuerblock 12 eingegeben, so führt die Leitung ein Signal, welches sämtliche Prozedurbits an der Bitstelle 14 freigibt.
Der inhaltsadressierbare Speicher 10 arbeitet wie folgt. Wird ein neuer Prozeßsteuerblock 12 eingegeben, so werden
die Gültigkeits- und Prozedurbitstellen, das sind die Bitstellen 13 und 14, durch die Auswahllogik 28 über die Verknüpfungsglieder 76 und 78 freigegeben. Ferner wird eine
relative Adresse aus der Zentraleinheit in den Prozeßsteuerblock 12 gelesen, der seinerseits eine Segmentnummer
liefert. Diese Segmentnummer wird dann in das Segmentregister 14 eingetastet, und ein Gültigkeitsbit wird angehängt. Sodann wird ein Vergleich zwischen den Inhalten der
Segmentregister 14 und dem Inhalt des assoziativen Speichers 16 durchgeführt. Dieser Vergleich legt fest, ob die Segmentnummer in dem Segmentregister 14 in dem assoziativen Speicher
16 enthalten ist. Bezüglich dieser Anfangseintragung liegt kein Vergleichszustand vor, da die Gültigkeitsbits in dem
409810/0836
Speicher 16 freigegeben worden sind und an den betreffenden Stellen ein Null-Zustand vorliegt. Durch Abgabe eines Abfragesignals
an das Verknüpfungsglied 15 werden die Ergebnisse des Vergleichs festgestellt. Da keine Übereinstinunung zwischen dem
Segmentregister 14 und dem Speicher 16 vorhanden ist, gibt die Kein-Vergleichs-Logik 30 ein Signal über die Leitung 32 ab.
Dieses keine Übereinstimmung anzeigende Signal wird an den Ersatzalgorithmus 34 abgegeben. Das betreffende Signal tritt
mit dem Abfragesignal auf. Das Verknüpfungsglied 52 wird freigegeben,
wodurch es den Ersatzalgorithmus 34 auf seine nächste Stelle erhöht. Das von dem Ersatzalgorithmus 34 gelieferte
Signal gibt sodann die Auswahllogik 28 über das Verknüpfungsglied 72 frei, welche einen Speicherplatz in dem assoziativen
Speicher 16 adressiert. Während die Adressenbildung abläuft, wird der Inhalt des durch die Auswahllogik 28 freigegebenen
Speicherplatzes des Speichers 16 in die Bit-Prüflogik 44 gelesen.
In dieser Logik erfolgt dann eine Überprüfung zum Zwecke öer Feststellung, ob die aus dem Speicher 16 gelesene
Segmentjsummer ein Prozedurbit enthält. Da das Prozedurbit
auf einen neuen eingegebenen Prozeßsteuerblock 12 hin freigegeben worden ist, stellt die Bit-Prüflogik 44 kein Prozedurbit
fest und liefert somit kein Signal an den Ersatzalgorithmus 34. ·
Nachdem dieser Zustand festgestellt worden ist, wird ein Schreibbefehl durch die Mikroprogrammsteuerung ausgelöst.
Dabei wird insbesondere das Verknüpfungsglied 44 der Auswahllogik 28 freigegeben. Die Segmentnummer in dem Segmentregister 14 wird dann zusammen mit dem Gültigkeitsbit in
einen Speicherplatz des assoziativen Speichers 16 eingeschrieben.
409810/0836
Während die obigen Operationen auftreten, wird der die tatsächliche Adresse festlegende Segmentdeskriptor gebildet.
Dieser Segmentdeskriptor wird in dem Segmentdeskriptorregister 42 gespeichert,
Anschließend wird der Speicher 16 wieder durch das Segmentregister 14 abgefragt, welches dieselbe Segmentnummer enthält.
Unter diesen Bedingungen wird ein Vergleichssignal auf der Vergleicher-Leitung 18 erzeugt. Das betreffende
Vergleichssignal gibt den Codierer 20 frei, der daraufhin denjenigen Speicherplatz in dem Pufferspeicher 24 anzeigt.,
der der freigegebenen Vergleicher-Leitung entspricht. Der in dem Register 42 befindliche Segmentdeskriptor wird dann in
diesen Speicherplatz des Pufferspeichers 24 eingeschrieben. Da dem Mikroprogramm bekannt ist, daß diese bestimmte Segmentnummer
die gerade benutzte aktive Prozedur kennzeichnet, gibt das die Übereinstimmung anzeigende Vergleichssignal auch die
Auswahllogik 28 frei. Dabei wird insbesondere das Verknüpfungsglied 70 freigegeben, und außerdem wird ein Prozedurbit der
in dem assoziativen Speicher 16 gespeicherten Segmentnummer angehängt.
Die nächste an den Prozeßsteuerblock 12 abgegebene relative Adresse wird verarbeitet, und eine Segmentnummer wird an das
Segmentregister 14 abgegeben. Diese Segnentnummer betrifft wahrscheinlich keine weitere aktive Prozedur, da eine Prozedur
gewöhnlich zumindest mehrere Maßnahmen auszuführen erforderlich macht. Nachdem die Segmentnummer in das Segmentregister 14 geladen
ist, wird ein Gültigkeitsbit hinzugefügt. Ferner wird ein Vergleich der Inhalte des Segmentregisters 14 und des
assoziativen Speichers 16 vorgenommen, und ein Abfragesignal
409810/0836
wird dem Verknüpfungsglied 15 zugeführt. Führen die Vergleicher-Leitungen
18 kein Signal, so ist die Kein-Vergleichs-Logik 30 freigegeben. Diese Logik 30 gibt sodann
ein Signal über die Leitung 32 an den Ersatzalgorithmus 34 ab. Das Verknüpfungsglied 52 des Ersatzalgorithmus wird freigegeben
und der 4-Bit-Zähler 50 wird hinsichtlich seiner Zählerstellung erhöht. Die Auswahllogik 28 erhält ein Signal
von dem Ersatzalgorithmus 34 über die Leitung 36. Da kein
Vergleichszustand existiert, wird ein Lesesignal von dem Mikroprogramm geliefert, und das Verknüpfungsglied 72 wird
freigegeben. Die gespeicherte Segmentnummer des Speichers wird sodann in die Bit-Prüflogik 44 gelesen, in welcher festgestellt
wird, ob der Segmentnummer ein Prozedurbit angehängt ist. Ist dies nicht der Fall, so wird die Bit-Prüflogik 44
nicht freigegeben. Wenn die Bit-Prüflogik feststellt, daß die Segmentnummer ein Prozedurbit aufweist, so wird das
Verknüpfungsglied 54 des Ersatzalgorithmus 34 freigegeben. Auf diese Weise wird die Zählerstellung des Zählers 50 erhöht,
der seinerseits ein Signal über die Leitung 36 abgibt. Im Anschluß an den Lesebefehl liefert das Mikroprogramm einen
Schreibbefehl. Auf dieses Signal hin wird das Verknüpfungsglied 74 freigegeben, und ferner wird der Inhalt des Segmentregisters 14 in denjenigen Speicherplatz eingeschrieben, der
durch die Auswahllogik 28 adressiert.ist. Es wird kein Lesebefehl benötigt, da lediglich ein Prozedurbit in dem assoziativen
Speicher 16 enthalten sein kann. Da die vorhergehende Stelle dieses Signal enthielt, kann die nächste Stelle nicht
möglicherweise eines enthalten. Somit ist die Forderung nach einem zweiten Lesebefehl vermieden.
Wenn eine Segmentnummer in dem Segmentregister 14 in dem
409810/0836
assoziativen Speicher 16 enthalten ist, wird ein Vergleichssignal
auf den Leitungen 18 erzeugt. Die Forderung nach Bezugnahme auf den Hauptspeicher ist in diesem Fall
vermieden, wodurch eine beachtliche Zeitersparnis erzielt ist. Das Vergleichssignal auf den Leitungen 18 gibt den
Codierer 20 frei, der denjenigen Speicherplatz in dem Pufferspeicher 24 auswählt, zu dem ein Zugriff zu erfolgen
hat. Der Segmentdeskriptor wird somit aus dem Speicher 24 ausgelesen und in das Ausgaberegister 25 eingeführt. Damit
ist die tatsächliche Adresse bekannt.
Wird eine neue Prozedur eingeführt bzw. aufgenommen, so gibt die Mikroprogrammsteuerung das Verknüpfungsglied 78
frei, und zwar zum Zwecke der Freigabe sämtlicher Prozedurbitstellen. Da lediglich ein Prozedurbit in dem Speicher 16
enthalten ist, wird tatsächlich lediglich ein BitSpeicherplatz freigegeben. Es ist jedoch wesentlich leichter, sämtliche
Speicherplätze freizugeben als zu bestimmen, welcher Speicherplatz das Prozedurbit enthält. Der Prozeßsteuerblock
liefert die Segmentnummer an das Segmentregister 14, und ferner wird ein Gültigkeitsbit angehängt, nicht aber ein
Prozedurbit. Ferner wird ein Vergleich der Inhalte des Segmentregisters 14 und des assoziativen Speichers 16 durchgeführt,
und sodann wird ein Abfragesignal erzeugt. Stimmen die Inhalte überein, so gibt eine der Vergleicher-Leitungen 18,
die der Segmentnummer in dem Speicher 16 zugeordnet ist, ein Signal an den Codierer 20 ab. Auf den Segmentdeskriptor in
dem Pufferspeicher 24 wird über die Leitung 22 hingewiesen, und der Segmentdeskriptor, der die tatsächliche Adresse
aufweist, wird gelesen. In diesem Fall wird außerdem das Verknüpfungsglied 70 der Auswahllogik 28 freigegeben, und
409810/0836
ferner wird ein Mikroprogrammbefehl ausgeführt, um ein
Prozedurbit in den der Vergleicher-Leitung entsprechenden Speicherplatz einzuschreiben. Wenn somit die neue Prozedur
eingeführt wird, gibt das Vergleicher-Signal sowohl den Codierer 20 als auch das Verknüpfungsglied 70 frei, so daß
die tatsächliche Adresse in den Speicher 24 gelesen wird. Außerdem wird das Prozedurbit der in dem Speicher 16 gespeicherten
Segraentnummer angehängt. Liegt kein Vergleichszustand vor, so wird die Kein-Vergleichs-Logik 30 freigegeben,
woraufhin ein Signal über die Leitung 32 abgegeben wird. Der Ersatzalgorithmus 34 wird über das Verknüpfungsglied 52 freigegeben;
er zeigt auf den nächstfolgenden Speicherplatz bzw. auch die nächstfolgende Stelle hin. Die Auswahllogik 28 erhält
das Signal von dem Ersatzalgorithmus 34 über die Leitung 36. Dabei wird insbesondere das Verknüpfungsglied 72
der Auswahllogik 28 freigegeben. Die durch die Auswahllogik adressierte Segmentnunmer wird zu der Bit-Prüflogik 44 hin
ausgeben. Dabei wird kein Prozedurbit ermittelt, da sämtliche Bits freigegeben worden -Ind. Die Bit-Prüflogik. 44 wird
nicht freigegeben. Sodann wird der Schreibbefehl freigegeben, und die Segmentnuamer wird in denjenigen Speicherplatz eingeschrieben,
der durch die Auswahllogik 28 adressiert ist. Während dieser Zeitspanne sind die Hauptspeicher abgesucht
worden und das Betriebssystem 28 hat den Segaentdeskriptor in dem Segaentdeskriptorregister 42 gespeichert. Auf eine
erneute Abfrage hin tritt ein Vergleichssignal auf. Der Codierer 20 gibt den Pufferspeicher 24 frei, und der Segmentdeskriptor
in dem Register 42 wird in den adressierten Speicherplatz des Speichers 24 eingeschrieben. Das Vergleichssignal
gibt ferner die Auswahllogik 28 frei. Da dem Mikroprogramm bekannt- ist, daß dies die zu benutzende aktive Prozedur darstellt,
wird das Verknüpfungsglied 70 freigegeben, und ferner
409810/0836
wird ein Prozedurbit an die Segmentnummer angehängt, die
in dem assoziativen Speicher 16 gespeichert ist.
Nachdem 16,das Fehlen eines Vergleichs anzeigende Zustände
bezüglich derselben Prozedur bzw. Verfahrensweise aufgetreten sind, ist der Ersatzalgorithmus 34 auf denjenigen Speicherplatz
in dem Speicher 16 zurückgekehrt, in welchem die Segmentnummer enthalten ist, die die aktive Prozedur bzw. Ver- .
fahrensweise darstellt. Tritt ein weiterer Kein-Vergleichs-Zustand
auf, so gibt die Kein-Vergleichs-Logik 30 ein Signal
an den Ersatzalgorithmus 34 ab. Der Ersatzalgorithmus wird durch ein Signal von dem Verknüpfungsglied 52 vergrößert und
gibt das Verknüpfungsglied 72 der Auswahllogik 28 frei. Die Segmentnummer in dem Speicher 16 wird zu der Bit-Prüflogik 44
hin ausgelesen. Die Bit-Prüflogik 44 stellt fest, daß der Segmentnummer ein Prozedurbit angehängt ist; sie gibt ferner
über die Leitung 46 ein Signal an den Ersatzalgorithmus 34 ab. Das Verknüpfungsglied 54 wird durch den hinsichtlich
seiner Zählerstellung sich erhöhenden Zähler 50 freigegeben,
und über die Leitung 36 wird ein Signal abgegeben. Der nächste Speicherplatz des Speichers 16 ist nunmehr adressiert, und
der Schreibbefehl wird freigegeben. Wie ersichtlich sein dürfte, ist die die aktive Prozedur kennzeichnende Segmentnummer
nicht zerstört. Das in dem Segmentregister 14 enthaltene Wort wird sodann in diesen Speicherplatz eingeschrieben.
Auf eine erneute Abfrage hin wird ein Vergleichssignal auf der Leitung 18 erzeugt. Dieses Vergleichssignal
gibt den Codierer 20 frei, so daß der in dem Register 42 enthaltene Segmentdeskriptor in den Speicher 24 eingeschrieben
wird.
409810/0836
Wenn zwei oder mehr Vergleicher-Leitungen 18 auf Grund des Vergleichs des Inhalts des assoziativen Speichers 16
mit dem Inhalt des Segmentregisters 14 freigegeben sind, d.h. ein Signal führen, ist die als Mehrfach-Trefferlogik
bezeichnete Logik 28 freigegeben, die eine Fehlerfolge auftreten läßt. Die Fehlerfolge führt zur Freigabe sämtlicher
Speicherplätze in dem Speicher 16, während andererseits eine Bedienperson von diesem Zustand informiert wird. Die be- .
treffende Folge ermöglicht die Ausführung von Abhilfsschritten. Im Unterschied dazu kann die Mehrfach-Trefferlogik 28
das Verknüpfungsglied 76 der Auswahllogik 28 freigeben, wodurch
sämtliche Gültigkeitsbits freigegeben werden. Auf diese Weise ist sichergestellt, daß die Vielzahl von Vergleichszuständen
.nicht mehr auftritt.
/,09810/0836
Claims (10)
- 7339741PatentansprücheT) Anordnung zur Bildung einer relativen Adresse für einen Speicher mit Segmenten variabler Größe, dadurch gekennzeichnet, daß Speichereinrichtungen (16) vorgesehen sind, die eine Vielzahl erster Adressen speichern, daß Vergleichereinrichtuhgen (15) vorgesehen sind, die eine zweite Adresse mit der Vielzahl erster Adressen vergleichen, daß eine Codierereinrichtung (20) vorgesehen ist, die durch die Vergleichereinrichtungen (15) gesteuert eine dritte Adresse in dem Fall zu liefern imstande ist, daß die zweite Adresse als mit einer Adresse der Vielzahl erster Adressen übereinstimmend ermittelt worden ist, und daß Speichereinrichtungen (24) vorgesehen sind, die eine Vielzahl von vierten Adressen speichern und die durch die dritte Adresse von der Codierereinrichtung (20) freigebbar sind und eine der Vielzahl von vierten Adressen abzugeben vermögen, die jeweils die Adresse eines Segments in dem segmentierten Speicher kennzeichnen.
- 2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß eine bei fehlendem Vergleich durch die Vergleichereinrichtungen (15) ansprechende Einrichtung (30) vorgesehen ist, die in dem Fall ein Signal abgibt, daß bezüglich der zweiten Adresse eine Übereinstimmung mit einer Adresse der Vielzahl von ersten Adressen ermittelt wird, und daß zur Adressierung der Speichereinrichtungen (16) Auswahleinrichtungen (28,34) vorgesehen sind, die durch die Vergleichereinrichtungen (15) gesteuert eine Adresse der Vielzahl erster Adressen in den Speichereinrichtungen (16) kennzeichnen.409810/08367339741
- 3. Anordnung nach Anspruch 2, dadurch gekennzeichnet, daß die Auswahleinrichtungen (28, 34) einen Ersatzalgorithmus (34) enthalten, der die älteste vorhandene Adresse der Vielzahl erster Adressen kennzeichnet und der durch die bei fehlendem Vergleich ansprechenden Einrichtungen (30) gesteuert wird, und daß eine Logikeinrichtung (28) vorgesehen ist, die die Vielzahl erster Adressen adressiert und die sowohl durch den Ersatzalgorithmus (34) als auch durch die Vergleichereinrichtungen (15) in dem Fall angesteuert wird, daß die zweite Adresse mit einer der Vielzahl erster Adressen übereinstimmt .
- 4. Anordnung nach Anspruch 3, dadurch gekennzeichnet, daß Einrichtungen (52, 54) vorgesehen sind, die den Ersatzalgorithmus (34) in dem Fall zu ändern gestatten, daß von den bei fehlendem Vergleich ansprechenden Einrichtungen (30) ein Signal aufgenommen worden ist, daß der Ersatzalgorithmus (34) 3ine Einrichtung (50) enthält, die der Logikeinrichtung (28) die älteste vorliegende Adresse innerhalb der Vielzahl erster Adressen angibt, und daß die Logikeinrichtung (28) eine Einrichtung enthält, die die älteste vorliegende Adresse innerhalb der Vielzahl erster Adressen in dem Fall adressiert, daß die Vergleichereinrichtungen (15) keine Übereinstimmung zwischen der zweiten Adresse und der Vielzahl erster Adressen anzeigen.
- 5. Anordnung zur Bildung einer relativen Adresse für einen Speicher mit Segmenten variabler Größe, insbesondere nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet,409810/0836? 3 3 9 7 A 1daß eine Aufnahmeeinrichtung vorgesehen ist, die eine erste Adresse aufnimmt, welche einen Zugriff zu einem Segment in dem Segmente enthaltenden Speicher leitet, daß erste Einrichtungen vorgesehen sind, die an eine Adresse ein erstes Identifizierungssignal anhängen, welches eine gültige Adresse kennzeichnet, daß Einrichtungen vorgesehen sind, die das erste Identifizierungssignal an die Aufnahmeeinrichtung abgeben, derart, daß das erste Identifizierungssignal an die erste Adresse angehängt wird, daß Speichereinrichtungen vorgesehen sind, die eine Vielzahl zweiter Adressen speichern, deren Jede ggfs. das erste Identifizierungssignal einer gültigen Adresse enthält, daß Vergleichereinrichtungen vorgesehen sind, die die erste Adresse und das erste Identifizierungssignal einer gültigen Adresse mit der Vielzahl zweiter Adressen vergleichen, daß durch die Vergleichereinrichtungen gesteuerte Einrichtungen (18) vorgesehen sind, die in dem Fall ein erstes Signal führen, daß die erste Adresse und das erste Identifizierungssignal einer gültigen Adresse in der Vielzahl zweiter Adressen enthalten sind, und daß Einrichtungen vorgesehen sind, die die Startadresse desjenigen Segments kennzeichnen, welche durch die erste Adresse zur Verfügung gestellt ist, wobei diese Einrichtungen eine Vielzahl dritter Adressen umfassen, deren jede einer der Vielzahl zweiter Adressen entspricht, und wobei die betreffenden Einrichtungen auf das erste Signal hin eine Adresse aus der Vielzahl dritter Adressen auswählen.
- 6. Anordnung nach Anspruch 5, dadurch gekennzeichnet, daß auf das erste Signal ansprechende Auswahleinrichtungen zur Adressierung der Vielzahl von zweiten Adressen vorgesehen sind und daß eine bei fehlendem Vergleich durch4098 10/08367339741die Vergleichereinrichtung (15) ansprechende Einrichtung (30) vorgesehen ist, die in dem Fall ein zweites Signal erzeugt, daß die erste Adresse und das erste Identifizierungssignal einer gültigen Adresse nicht in der Vielzahl der zweiten Adressen enthalten sind, wobei das zweite Signal auch den Auswahleinrichtungen (28, 34) zugeführt wird.
- 7. Anordnung nach Anspruch 6, dadurch gekennzeichnet, daß zweite Einrichtungen vorgesehen sind, die an eine Adresse ein zweites Identifizierungssignal anzuhängen vermögen, welches eine aktive Prozedur kennzeichnet, daß die Speichereinrichtungen das zweite Identifizierungssignal einer aktiven Prozedur unter der Vielzahl zweiter Adressen enthalten, und daß Prüfeinrichtungen (44) vorgesehen sind, die das zweite Identifizierungssignal einer aktiven Prozedur aus den Speichereinrichtungen überprüfen und die ein drittes Signal an die Auswahleinrichtungen (28,34) in dem Fall abgeben, daß das zweite Identifizierungssignal einer aktiven Prozedur ermittelt ist, wobei die Auswahleinrichtungen (28, 34) sicherstellen, daß die Adresse des zweiten Identifizierun_gssignals einer aktiven Prozedur innerhalb der Vielzahl von zweiten Adressen nicht zerstört wird.
- 8. Anordnung nach Anspruch 7, dadurch gekennzeichnet, daß Ersatzalgorithmuseinrichtungen (34) vorgesehen sind, die durch das zweite Signal und das dritte Signal gesteuert eine Adresse aus der Vielzahl von ar eiten Adressen kennzeichnen, wobei das zweite Signal und das dritte Signal die Ersatzalgorithmuseinrichtungen (34) zu verndern gestatten, und daß eine Vielzahl von Logikeinrichtungen (70, 72,74,76,78) vorgesehen ist, durch deren jede eine Adresse409810/08367 33 9 741aus der Vielzahl von zweiten Adressen adressierbar ist.
- 9. Anordnung nach Anspruch 8, dadurch gekennzeichnet, daß die Verknüpfungseinrichtungen (70, 72, 74, 76, 78) die zweiten Einrichtungen enthalten, die das zweite Identifizierungssignal einer aktiven Prozedur an eine Adresse der Vielzahl zweiter Adressen anhängen und die auf das erste Signal und auf einen einer aktiven Prozedur entsprechenden Schreib-Mikrobefehl ansprechen, daß ferner Leseeinrichtungen vorgesehen sind, die eine Adresse aus der Vielzahl von zweiten Adressen lesen und die durch das dritte Signal, durch den Ersatzalgorithmus und durch einen Lese-Mikrobefehl gesteuert werden, daß ferner Schreibeinrichtungen vorgesehen sind, die die erste Adresse in die Speichereinrichtungen schreiben, welche auf das dritte Signal, auf den Ersatzalgorithmus und auf einen Schreib-Mikrobefehl hin ansprechen, daß ferner erste Einrichtungen vorgesehen sind, die das erste Identifizierungssignal einer gültigen Adresse freizugeben vermögen, und daß zweite Einrichtungen vorgesehen sind, die das zweite Identifizierungssignal einer aktiven Prozedur freizugeben gestatten.
- 10. Anordnung nach Anspruch 9, dadurch gekennzeichnet, daß die eine Kennzeichnung vornehmenden Einrichtungen eine Codierereinrichtung (20) enthalten, welche ein viertes Signal abzugeben vermag und welche auf das erste Signal anspricht, und daß Speichereinrichtungen vorgesehen sind, die die Vielzahl von dritten Adressen speichern und die auf das vierte Signal hin derart ansprechen, daß eine Adresse der Vielzahl von dritten Adressen abgegeben wird, wobei die betreffende eine Adresse der Vielzahl von dritten409810/0836Adressen die Startadresse des Segments kennzeichnet, welche durch die erste Adresse festgelegt ist.A09810/0836
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US00283617A US3800286A (en) | 1972-08-24 | 1972-08-24 | Address development technique utilizing a content addressable memory |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2339741A1 true DE2339741A1 (de) | 1974-03-07 |
Family
ID=23086856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19732339741 Ceased DE2339741A1 (de) | 1972-08-24 | 1973-08-06 | Anordnung zur bildung einer relativen adresse fuer einen speicher |
Country Status (9)
Country | Link |
---|---|
US (1) | US3800286A (de) |
JP (1) | JPS4960640A (de) |
AU (1) | AU476122B2 (de) |
CA (1) | CA987408A (de) |
DE (1) | DE2339741A1 (de) |
FR (1) | FR2197484A5 (de) |
GB (1) | GB1428503A (de) |
IT (1) | IT990273B (de) |
NL (1) | NL7311553A (de) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR122199A (de) * | 1973-12-17 | |||
US3979726A (en) * | 1974-04-10 | 1976-09-07 | Honeywell Information Systems, Inc. | Apparatus for selectively clearing a cache store in a processor having segmentation and paging |
JPS5172203A (en) * | 1974-12-20 | 1976-06-22 | Nippon Shisutemu Kogyo Kk | Deetadenso niokeru sochishogaikenshutsuhoshiki |
US4084226A (en) * | 1976-09-24 | 1978-04-11 | Sperry Rand Corporation | Virtual address translator |
US4096568A (en) * | 1976-09-24 | 1978-06-20 | Sperry Rand Corporation | Virtual address translator |
US4058851A (en) * | 1976-10-18 | 1977-11-15 | Sperry Rand Corporation | Conditional bypass of error correction for dual memory access time selection |
US4366551A (en) * | 1977-06-24 | 1982-12-28 | Holtz Klaus E | Associative memory search system |
CH631951A5 (de) * | 1978-08-23 | 1982-09-15 | Bbc Brown Boveri & Cie | Vorrichtung zur aufbereitung von verunreinigtem wasser und verfahren zum betrieb einer derartigen vorrichtung. |
US4280177A (en) * | 1979-06-29 | 1981-07-21 | International Business Machines Corporation | Implicit address structure and method for accessing an associative memory device |
DE3107632A1 (de) * | 1981-02-27 | 1982-09-16 | Siemens AG, 1000 Berlin und 8000 München | Verfahren und schaltungsanordnung zur adressierung von adressumsetzungsspeichern |
US4538241A (en) * | 1983-07-14 | 1985-08-27 | Burroughs Corporation | Address translation buffer |
US4680760A (en) * | 1985-08-05 | 1987-07-14 | Motorola, Inc. | Accelerated test apparatus and support logic for a content addressable memory |
JPH0614324B2 (ja) * | 1986-05-02 | 1994-02-23 | エムアイピ−エス コンピユ−タ− システムズ、インコ−ポレイテイド | コンピユ−タシステム |
US5237671A (en) * | 1986-05-02 | 1993-08-17 | Silicon Graphics, Inc. | Translation lookaside buffer shutdown scheme |
US4813002A (en) * | 1986-07-21 | 1989-03-14 | Honeywell Bull Inc. | High speed high density dynamic address translator |
US5053951A (en) * | 1986-12-23 | 1991-10-01 | Bull Hn Information Systems Inc. | Segment descriptor unit for performing static and dynamic address translation operations |
US5201040A (en) * | 1987-06-22 | 1993-04-06 | Hitachi, Ltd. | Multiprocessor system having subsystems which are loosely coupled through a random access storage and which each include a tightly coupled multiprocessor |
US4959836A (en) * | 1987-12-09 | 1990-09-25 | Siemens Transmission Systems, Inc. | Register robustness improvement circuit and method |
US4870400A (en) * | 1988-01-26 | 1989-09-26 | Yale Security Inc. | Electronic door lock key re-sequencing function |
EP0400820B1 (de) * | 1989-05-31 | 1997-08-27 | STMicroelectronics, Inc. | Inhaltsadressierbarer Speicher |
US5107501A (en) * | 1990-04-02 | 1992-04-21 | At&T Bell Laboratories | Built-in self-test technique for content-addressable memories |
GB2260629B (en) * | 1991-10-16 | 1995-07-26 | Intel Corp | A segment descriptor cache for a microprocessor |
US5454094A (en) * | 1993-06-24 | 1995-09-26 | Hal Computer Systems, Inc. | Method and apparatus for detecting multiple matches in a content addressable memory |
US5680566A (en) * | 1995-03-03 | 1997-10-21 | Hal Computer Systems, Inc. | Lookaside buffer for inputting multiple address translations in a computer system |
US6199140B1 (en) * | 1997-10-30 | 2001-03-06 | Netlogic Microsystems, Inc. | Multiport content addressable memory device and timing signals |
US6219748B1 (en) | 1998-05-11 | 2001-04-17 | Netlogic Microsystems, Inc. | Method and apparatus for implementing a learn instruction in a content addressable memory device |
US6240485B1 (en) | 1998-05-11 | 2001-05-29 | Netlogic Microsystems, Inc. | Method and apparatus for implementing a learn instruction in a depth cascaded content addressable memory system |
AU3864499A (en) * | 1998-05-11 | 1999-11-29 | Netlogic Microsystems, Inc. | Method and apparatus for implementing a learn instruction in a content addressable memory device |
JP3719897B2 (ja) * | 2000-02-29 | 2005-11-24 | 富士通株式会社 | データ転送装置、データ転送方法及び記録媒体 |
US9954557B2 (en) * | 2014-04-30 | 2018-04-24 | Microsoft Technology Licensing, Llc | Variable width error correction |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3241123A (en) * | 1961-07-25 | 1966-03-15 | Gen Electric | Data addressed memory |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3387272A (en) * | 1964-12-23 | 1968-06-04 | Ibm | Content addressable memory system using address transformation circuits |
US3508220A (en) * | 1967-07-31 | 1970-04-21 | Burroughs Corp | Fast access content-organized destructive readout memory |
GB1218406A (en) * | 1968-07-04 | 1971-01-06 | Ibm | An electronic data processing system |
NL6815506A (de) * | 1968-10-31 | 1970-05-04 | ||
GB1266579A (de) * | 1969-08-26 | 1972-03-15 | ||
GB1229717A (de) * | 1969-11-27 | 1971-04-28 | ||
US3685020A (en) * | 1970-05-25 | 1972-08-15 | Cogar Corp | Compound and multilevel memories |
US3662348A (en) * | 1970-06-30 | 1972-05-09 | Ibm | Message assembly and response system |
US3699533A (en) * | 1970-10-29 | 1972-10-17 | Rca Corp | Memory system including buffer memories |
US3701984A (en) * | 1971-03-05 | 1972-10-31 | Rca Corp | Memory subsystem array |
-
1972
- 1972-08-24 US US00283617A patent/US3800286A/en not_active Expired - Lifetime
-
1973
- 1973-05-25 JP JP48057888A patent/JPS4960640A/ja active Pending
- 1973-06-13 CA CA173,955A patent/CA987408A/en not_active Expired
- 1973-06-22 AU AU57231/73A patent/AU476122B2/en not_active Expired
- 1973-08-06 DE DE19732339741 patent/DE2339741A1/de not_active Ceased
- 1973-08-08 GB GB3768573A patent/GB1428503A/en not_active Expired
- 1973-08-17 IT IT52056/73A patent/IT990273B/it active
- 1973-08-22 NL NL7311553A patent/NL7311553A/xx unknown
- 1973-08-23 FR FR7330625A patent/FR2197484A5/fr not_active Expired
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3241123A (en) * | 1961-07-25 | 1966-03-15 | Gen Electric | Data addressed memory |
Non-Patent Citations (3)
Title |
---|
DE-Z.: "Elektronik Informationen", H. 10, 1970, Rückseite des Titelblattes * |
DE-Z.: Zeitschrift für Schwingungs- u. Schwach- stromtechnik, März 1966, S. 69-82 * |
US-AFIPS Proceedings of the Spring Joint Computer Conference 1966, S. 65-69 * |
Also Published As
Publication number | Publication date |
---|---|
AU476122B2 (en) | 1976-09-09 |
IT990273B (it) | 1975-06-20 |
CA987408A (en) | 1976-04-13 |
NL7311553A (de) | 1974-02-26 |
FR2197484A5 (de) | 1974-03-22 |
AU5723173A (en) | 1975-01-09 |
JPS4960640A (de) | 1974-06-12 |
GB1428503A (en) | 1976-03-17 |
US3800286A (en) | 1974-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2339741A1 (de) | Anordnung zur bildung einer relativen adresse fuer einen speicher | |
DE2725718C2 (de) | Datenverarbeitungsanordnung zum Übersetzen von virtuellen Adressen | |
DE3151745C2 (de) | ||
DE69738101T2 (de) | Verwaltung des Zugangs zu Objekten mit Hilfe von Referenzen mit drei Zuständen | |
DE3805107A1 (de) | Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers | |
DE1499182C3 (de) | Datenspeichersystem | |
DE2235841A1 (de) | Anordnung zur speichersteuerung mit logischer und echter adressierung | |
DE2750721A1 (de) | Ein/ausgabe-system | |
DE2441754A1 (de) | Prozessor-datenuebertragungssteueranordnung sowie verfahren zur steuerung der datenuebertragung eines prozessors | |
DE1499193A1 (de) | Datenverarbeitungsanlage | |
DE3833933A1 (de) | Informationsverarbeitungseinrichtung mit einer adressenerweiterungsfunktion | |
DE2055784A1 (de) | Datenverarbeitungssystem | |
DE2556661A1 (de) | Steuerschaltung mit adressenerweiterung | |
DE10002120A1 (de) | Logikstruktur eines Adressumsetzpuffers | |
EP0010186B1 (de) | Vorrichtung zum Bearbeiten bezeichneter Hinweise | |
DE2400064A1 (de) | Speicherpruefanordnung und diese verwendendes endgeraetsystem in einem datenverarbeitungssystem | |
DE2737353A1 (de) | Verfahren zum testen der adressbildung in einem dv-system und vorrichtung zur durchfuehrung des verfahrens | |
DE3911182C2 (de) | ||
DE2054830A1 (de) | Informationsverarbeitungssystem mit wortstrukturiertem Speicher und Verfahren fur einen Zugriff zu einem derar tigen Speicher | |
DE3518818C2 (de) | ||
DE2221442A1 (de) | Assoziativspeicher | |
DE10392127T5 (de) | Verwendung eines Kontextidentifizierers in einem Zwischenspeicher | |
DE2710477A1 (de) | Anordnung zur kohaerenten leitung des informationsaustauschs zwischen zwei aneinanderstossenden niveaus einer speicherhierarchie | |
DE2723706A1 (de) | Einrichtung zum adressenvergleich | |
CH495584A (de) | Datenverarbeitungsanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
8131 | Rejection |