DE2339741A1 - Anordnung zur bildung einer relativen adresse fuer einen speicher - Google Patents

Anordnung zur bildung einer relativen adresse fuer einen speicher

Info

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
Application number
DE19732339741
Other languages
English (en)
Inventor
James L Brown
Richard P Wilder
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull HN Information Systems Italia SpA
Original Assignee
Honeywell Information Systems Italia SpA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell Information Systems Italia SpA filed Critical Honeywell Information Systems Italia SpA
Publication of DE2339741A1 publication Critical patent/DE2339741A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address 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
Patentanwalt
Mto» 22. EotA 15. Tel. 292555 2339741
Postanschritt München 26, Postfach 4
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.
Liegt kein Vergleichszustand vor, so wird eine Segmentnummer
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)

  1. 7339741
    Patentansprüche
    T) 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. 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/0836
    7339741
  3. 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. 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. 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 1
    daß 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. 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 durch
    4098 10/0836
    7339741
    die 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. 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. 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 Adresse
    409810/0836
    7 33 9 741
    aus der Vielzahl von zweiten Adressen adressierbar ist.
  9. 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. 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 dritten
    409810/0836
    Adressen die Startadresse des Segments kennzeichnet, welche durch die erste Adresse festgelegt ist.
    A09810/0836
DE19732339741 1972-08-24 1973-08-06 Anordnung zur bildung einer relativen adresse fuer einen speicher Ceased DE2339741A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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