DE2505478A1 - Speicheranordnung - Google Patents

Speicheranordnung

Info

Publication number
DE2505478A1
DE2505478A1 DE19752505478 DE2505478A DE2505478A1 DE 2505478 A1 DE2505478 A1 DE 2505478A1 DE 19752505478 DE19752505478 DE 19752505478 DE 2505478 A DE2505478 A DE 2505478A DE 2505478 A1 DE2505478 A1 DE 2505478A1
Authority
DE
Germany
Prior art keywords
memory
address
line
bits
page
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19752505478
Other languages
English (en)
Other versions
DE2505478C3 (de
DE2505478B2 (de
Inventor
Gerhard Wolf
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority claimed from DE19752505478 external-priority patent/DE2505478C3/de
Priority to DE19752505478 priority Critical patent/DE2505478C3/de
Priority to NL7600816A priority patent/NL7600816A/xx
Priority to CH95676A priority patent/CH604322A5/xx
Priority to US05/654,645 priority patent/US4047160A/en
Priority to IT19863/76A priority patent/IT1055083B/it
Priority to FR7603329A priority patent/FR2300393A1/fr
Priority to GB4913/76A priority patent/GB1533326A/en
Priority to BE164208A priority patent/BE838420A/xx
Publication of DE2505478A1 publication Critical patent/DE2505478A1/de
Publication of DE2505478B2 publication Critical patent/DE2505478B2/de
Publication of DE2505478C3 publication Critical patent/DE2505478C3/de
Application granted granted Critical
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

Die Erfindung bezieht sich auf eine assoziativ bewirtschaftete Speicheranordnung mit einem Hauptspeicher zur Aufnahme der aus einem assoziativen Teil (Assoziationsbegriff) und einem nicht assoziativen Teil bestehenden Daten, mit einer Vergleichereinrichtung zum Vergleich des assoziativen Teils der ausgelesenen Daten mit dem Suchbegriff, mit Adreßwandlern für die Ableitung von Speicheradressen aus dem Assoziationsbegriff oder dem Suchbegriff oder aus Teilen dieser Begriffe and mit einem Erweiterungszähler, dessen Zahlerstand die Adressenableitung beeinflußt und jeweils um 1 erhöht wird, wenn sich ein zunächst adressierter Speicherplatz als anderweitig belegt erweist.
Durch die Dt-OS 2 319 468 ist eine Speichereinrichtung mit mehreren, eine Vielzahl von Speicherplätzen umfassenden Speicherbänken bekannt, die jeweils in einen durch einen Teil (Vorsilbe) des Assoziationsbegriffs adressierbaren assoziativen Abschnitt und in einen nicht assoziativen Abschnitt zur Aufnahme eines beigeordneten Begriffs gegliedert sind, wobei jeder Speicherbank Adreßwandler zugeoi'dnet sind zur Ableitung der Adressen aus dem Assoziationsbegriff in einer von Speicherbank zu Speicherbank unterschiedlichen Weise mit pseudostatistischer Verteilung derart, daß die Vorsilbenlinien, welche die jeweils durch bestimmte Vorsilben adressierbaren Speicherplätze benachbarter Speicherbänke miteinander verbinden, unregelmäßige Linienzüge bilden. Alle auf einer Vorsilbenlinie liegenden Einträge werden gleichzeitig gelesen.
Durch eine zufällige Häufung von Assoziationsbegriffen mit gleicher Vorsilbe kann der Fall eintreten, daß die entlang
9/210/4051a
ORIGINAL INSPECTED
— 2 —
einer Torsilbenlinie verfügbaren Speicherplätze für ihre Eintragung nicht ausreichen. Die Speichereinrichtung weist daher einen Erweiterungszähler auf, dessen jeweiliger Stand für die Bildung der Adressen mitbestimmend ist und jeweils um eins erhöht wird, wenn ein Ifeueintrag eines Begriffs mit einer bestimmten Torsilbe erfolgen soll und alle Speicherplätze entlang der betreffenden Törsilbenlinie bereits belegt sind. Mit Hilfe des Erweiterungszählers werden also zusätzliche Adressierungsebenen geschaffen, die Terlängerungen von Torsilbenlinien aufnehmen können.
Durch die mögliche Übersicht über den Belegungszustand entlang einer Torsilbenlinie wird die Zuteilung freier Speicherplätze für Neueintragungen sehr erleichtert. Bei einer Terwendung von 8 Speicherbänken in der Speichereinrichtung ergibt sich beispielsweise, daß bis zu einem Füllungsgrad des Speichers von etwa 0,7 nur in wenigen Fällen ein zweiter Suchzyklus zum"Nachweis eines freien Ablageplatzes erforderlich ist. Erst bei einem Speicherfüllungsgrad von etwa 0,95 werden durchschnittlich zwei Suchzyklen notwendig..
Bei einer Terringerung der Anzahl der Speicherbänke werden : jedoch die Terhältnisse rasch ungünstiger. Es entfällt mehr und mehr die Übersicht über den Belegungszustand und wegen der Terkürzung der Torsilbenlinien die Auswahl zwischen gleichwertigen Ablageplätzen. Es besteht jedoch der Wunsch, auch einen linear adressierbaren Speicher hoher Kapazität mit nur einer Speicherbank als Assoziativspeicher verwenden zu können. Der Erfindung liegt daher die Aufgabe zugrunde, Maßnahmen anzugeben, die bei Terwendung eines linear adresierbaren Speichers mit einer Speicherbank die Übersicht über den Belegungszustand erlauben und die Zuweisung äquivalenter Speicherplätze für Iieueinträge mit vertretbarem Zeitaufwand und ein rasches Wiederauffinden der Einträge ermöglichen.
TPA 9/210/4051a - 3 -
609834/0826
- 3 - . ' . ■■-.■.-■■
Bei einer Speicheranordnung der eingangs angegebenen Art wird diese Aufgabe durch die im kennzeichnenden Teil des Hauptanspruchs aufgeführten Merkmale ge£5st.
Die Speicheranordnung gemäß der Erfindung hat vor allem den Vorteil, daß der Hauptspeicher wahlweise als konventionell linear adressierter Speicher oder als Assoziativspeicher betrieben werden kann. Beide Betriebsweisen-lassen sich auch gleichzeitig in verschiedenen Teilen eines entsprechend großen Hauptspeichers durchführen. Im folgenden wird die Erfindung anhand eines in der Zeichnung dargestellten Ausführungsbeispiels näher erläutert. Es zeigt.
Pig. 1 eine Übersicht über die Speichereinrichtung gemäß der Erfindung, '
Pig. 2 in schematischer Darstellung die Bereitstellung gleichwertiger Speicherplätze und den Verlauf einer Kettungslinie abhängig vom Stand des Erweiterungszählers, Pig. 3 die Eintragung von Verweiskennzeichen in dem Speicherplatz zugeordneten leider einer Speicherzeile, Pig. 4 die Kennzeichnungen einer Kette, Pig. 5 Verweiskennzeichen einer Kette, die nicht beim Stand O
des Erweiterungszählers beginnt, Pig. 6 ein Ausführungsbeispiel der Einrichtungen für die
Adressenbildung,
Pig. 7 ein weiteres Ausführungsbeispiel der Einrichtungen für die Adressenbildung,
Pig. 8 eine Anordnung zur Vorsilbenverdichtung und Pig. 9 einen Baustein der Anordnung nach Pig. 8. .
Der Hauptspeicher ASP in Pig. 1 ist ein linear adressierbarer Speicher. Er ist aus organisatorischen Gründen in a Abschnitte 0 bis a -1, im folgenden als Seiten bezeichnet, unterteilt. Jede Seite besitzt b Zeilen 0 bis b -1. Die Speicherzeilen, umfassen neben einem Speicherplatz für die aus einem assziativen Teil (Assoziationsbegriff) und einem nicht assoziativen Teil
VPA 9/21O/4O51a . - 4 -
G09834/0826
bestehenden Daten zusätzliche Felder für die Eintragung von Kennzeichnungen, auf die später noch näher eingegangen wird. Der für den assoziativen Vergleich der ausgelesenen Daten mit dem jeweils vorliegenden Suchbegriff notwendige Vergleicher ist in der Fig. 1 nicht dargestellt. Ebenfalls nicht dargestellt sind ein Maskenregister, dessen veränderbarer Inhalt es gestattet, den bei den assoziativen Vergleich berücksichtigten Bereich zu erweitern oder einzuengen, und der zur Auswahl der Speicherplätze bzw. -Zeilen erforderliche Adressendecodierer.
Der für die Zuteilung freier Speicherplätze im Hauptspeicher ASP notwendige Überblick über dessen Belegungszustand wird durch einen kleinen Buchführungsspeicher BSP erreicht. Da der Buchführungsspeicher BSP in a Zeilen mit je b 1-Bit-Zellen eingeteilt ist, kann jeder Zeile im Hauptspeicher ASP eine 1-Bit-Zelle zugeordnet werden, in der ein Markierungsbit gesetzt wird, wenn die betreffende Zeile des Hauptspeichers belegt ist. Die Adresse für eine Seite des Hauptspeichers ASP entspricht somit der Adresse einer Zeile des Buchführungsspeichers BSP und die Adresse einer Zeile des Hauptspeichers innerhalb einer Seite der Adresse einer Bitstelle des Buchführungsspeichers BSP innerhalb einer Zeile. Um Verwechslungen zu vermeiden, wird im folgenden eine Zeile des Buchführungsspeichers BSP als Wort bezeichnet.
Als Buchführungs spei eher BSP wird vorteilhaft ein Bipolar-Halbleiterspeicher verwendet. Er kann ein reservierter Bereich eines für andere Zwecke mitbenutzten Speichers sein. Gegebenenfalls kann dafür aber auch ein Abschnitt des als Hauptspeicher dienenden Speichers Verwendung finden.
Die Adressen für die Seiten und Zeilen des Hauptspeichers werden ähnlich zu der aus der Dt-OS 2 319 468 bekannten Weise aus dem Assoziationsbegriff bzw. Suchbegriff oder einem !Teil dieser Begriffe selbst gewonnen. Die für die Adressenbildung
VPA 9/21O/4O51a - 5 -
6098 3 4/08 2 6
benutzten. Bitstellen der Assoziations- bzw. Suchbegriffe werden als Vorsilbe YS bezeichnet, unabhängig davon, ob dieVorsilbe VS nur die höherwertigen Bitstellen der Begriff oder die ganzen •Begriffe umfaßt,
Für die Ableitung der Seiten- und Zeilenadressen des Hauptspeichers stehen viele Möglichkeiten zur Verfügung, die teilweise unterschiedliche Ablagemodi für Neueinträge von Assoziationsbegriffen in den Hauptspeicher zur 3?dge haben. Stellvertretend für die Ausführungsmöglichkeiten sind in der übersichtsdarstellung nach Pig. 1 der Seitenadreßwandler SAV/ und der Zeilenadreßwandler ZAW vorgesehen, wobei dem Seitenadreßwandler SAW die höherwertigen Bitstellen und dem Zeilenadreßwandler ZAVi die niederwert igen Bits teilen der Vorsilbe VS zugeführt vier den.
Der Seitenadreßwandler SAW zur Bildung der Seitenadresse SA besteht aus einem Verknüpfungsnetzwerk oder einem kleinen Lesespeicher (ROM). Die !Funktion des Zeilenadreßwandlers ZAW beschränkt sich auf eine Bitstellenvertauschung. Im allgemeinen kann jedoch der Zeilenadreßwandler ganz entfallen, so daß die Zeilenadresse ZA (für I EZl = 0, wie später noch näher erläutert wird) identisch mit den niederwertigen Bitstellen der Vorsilbe ist. Das gilt in allen Pällen, in denen auf den Zeilenadreßwandler Bezug genommen wird.
Da in aller Regel die Anzahl der Speicherplätze im Hauptspeicher geringer ist als die Anzahl der Kombinationsmöglichkeiten aller Bitstellen der Assoziationsbegriffe, führen unabhängig von der speziellen Art der Adressenbildung stets mehrere Assoziationsbegriffe zu gleichen Adressen. Es wird daher häufig vorkommen, daß sich ein durch die ursprüngliche Seiten- und Zeilenadresse ausgewählter Speicherplatz im Hauptspeicher schon als besetzt erweist, wenn ein neuer Assoziationsbegriff abgelegt werden soll. Wegen der Abbildung des Belegungszustandes des Hauptspeichers im Buchführungsspeieher ist aber die Zuteilung eines gleichwertigen
VPA 9/21O/4O51a - 6 -
6 0 9 8 3 4/0826
Speicherplatzes für den anstehenden Neueintrag leicht und rasch möglich. Zu diesem Zweck ist ein Erweiterungszähler EZ (Pig. 1) vorgesehen, dessen jeweiliger Zählerstand für die Bildung der Seitenadressen mitbestimmend ist und von Muli ausgehend immer dann um eine Zähleinheit erhöht wird, wenn der vorher adressierte Speicherplatz schon belegt ist. Auf diese Weise wird eine Kette von einander ähnlichen Assoziationsbegriffen aufgebaut, die alle zunächst einmal zu gleichen Adressen des Hauptspeichers führen wurden.
Die linke Seite der Pig. 2 zeigt schematisch den in Seiten unterteilten Hauptspeicher, in dem die schraffierten Zeilen mit Einträgen belegt sind, die eine Kette bilden. Bei Jedem Eintrag ist der Stand /EZ/ (EZ-Stand) des ErweiterungsZählers EZ angegeben, der für die Ableitung der jeweiligen Speicheradresse mitbestimmend war.
Auf der rechten Seite der Pig. 2 sind die der Kette angehörenden Glieder (Adressen) über dem EZ-Stand eingetragen. Die Pfeile, · welche die einzelnen Glieder miteinander verbinden, bilden einen unregelmäßigen Linienzug, der als Kettungslinie bezeichnet wird. Eine und nur eine solche Kettungslinie kann in jeder Zeile des Hauptspeichers beginnen. Es ist jedoch nicht notwendig, daß die Kettungslinie bei jeder Veränderung des EZ-Standes in eine andere Seite des Hauptspeichers übergeht. Perner kann es vorkommen, daß einzelne EZ-Stände übersprungen werden, weil die unter Hitwirkung der übersprungenen EZ-Stände adressierten Hauptspeicherseiten schon vollständig belegt sind.
Es ist vorteilhaft, die vom Zeilenadreßwandler ZAW aus der Vorsilbe abgeleitete Adresse nur beim jeweils ersten Glied, d. h. beim Stand /EZ/ = 0 des Erweiterungszählers EZ zur Adressierung des Speicherplatzes zu verwenden. Pur die Einträge weiterer Glieder (/EZJ> 0)werden freie Speicherplätze innerhalb der ausgewählten Seiten anhand der Markierungen im Buchführungsspeieher
VPA 9/21O/4O51a - 7 -
609834/0826
ermittelt. Hierzu tastet "beispielsweise ein in der Buchführungssteuereinheit Bi1E untergebrachter Abtaster alle Bitstellen des durch die Seitenadresse des Hauptspeichers ausgewählten Wortes der Reihe nach ab und trifft so (zumeist) auf einen freien Speicherplatz mit der jeweils höchsten bzw. niedrigsten Nummer (Priorität).
Wesentlich schneller kann der freie Speicherplatz mit der höchsten (niedrigsten) Priorität innerhalb der ausgewählten Hauptspeicherseite gefunden werden, wenn die "Lesesignale aller Bitstellen des entsprechenden Buchführungsspeicherworts gleichzeitig einem in der Buchführungssteuereinheit BI1E vorhandenen Prioritätsnetzwerk zugeführt werden, welches am Ausgang wegen der festen Adressenzuordnung unmittelbar die Adresse des freien Speicherplatzes innerhalb der ausgewählten Seite liefert.
Pur den systematischen Aufbau einer Kettungslinie und zum Wiederauffinden der' entlang der Kettungslinie eingespeicherten Assoziationsbegriffe ist es notwendig, in die jedem Speicherplatz zugeordneten Felder Verweiskennzeichen einzutragen. Alle Verweiskennzeichen bestehen aus der Angabe eines bestimmten Standes des ErweiterungsZählers EZ und einer Zeilenadresse (innerhalb einer Hauptspeicherseite), Es ist vorteilhaft, as@i Pelder ΡΊ und F2 vorzusehen und in folgender Weise vorzugehen:
Das PeId P1 des Anfangsgliedes einer Kette (Anfangsseile) enthält einen Verweis auf das jeweilige Ende der Kette. In den Peldern P2 aller weiteren Glieder stehen die Angaben, die das jeweils vorausgehende Glied betreffen. Daraus ergibt sich, daß bei der Ablage eines Begriffs, für den unter der von der Vorsilbe abgeleiteten Seiten- und Zeilenadresse sofort ein freier Speicherplatz gefunden wurde, in das zugehörige PeId P1 der Zählerstand /EZ/ = 0 und die betreffende Zeilenadresse ZA eingetragen wird. Das PeId P2 bleibt frei, da ein vorausgehendes Kettenglied nicht existiert (vergl. Pig. 3). Steht nun ein weiterer Begriff mit der
VPA 9/21O/4O51a - 8 -
G0983A/0826
gleichen Vorsilbe zur Einspeicherung an, so wird mit Hilfe des Buchführungsspeichers BSP festgestellt, daß die durch die ursprünglichen Adressen ausgewählte Speicherzeile schon belegt ist. Gleichzeitig wird durch das Lesen des Feldes F1 der EZ-Stand (hier / EZ/ = 0) ermittelt, unter dem die Ablage des vorhergehenden (hier ersten) Kettengliedes erfolgte. Der Erweiterungszähler EZ wird auf einen gegenüber dem soeben ermittelten EZ-Stand um 1 erhöhten Stand (hier JEZl = 1) gebracht. Es wird eine neue Seitenadresse gebildet und mit Hilfe des BuchführungsSpeichers BSP ein freier Speicherplatz gefunden. Der anstehende Begriff kann nun eingespeichert werden. Gleichzeitig werden die Verweiskennzeichen im Feld F1 des ersten Kettenglieds korrigiert und im Feld F2 des gerade eingegebenen (zweiten) Glieds ein Verweis auf das vorhergehende (erste) Kettenglied eingetragen. Die Ablage weiterer Assoziationsbegriffe mit gleicher Vorsilbe geht in analoger Weise vor sich. Die Fig. 4 zeigt die Verweiskennzeichen einer viergliedrigen Kette aus den Begriffen B1 bis B4. Die Kette wird von links nach rechts aufgebaut und - ausgehend vom Feld F1 - auf der linken Seite von rechts nach links gelesen bzw. abgebaut.
Wenn Assoziationsbegriffe im Speicher hinterlegt werden sollen, deren Format die Breite eines Speicherplatzes übersteigt, werden die Begriffe in Abschnitte im Format der Speicherplätze (Grundformat) unterteilt und die einzelnen Abschnitte wie unabhängige Assoziationsbegriffe im Grundformat mit gleichen Vorsilben behandelt. Soll diese Möglichkeit vorgesehen werden, dann ist es zweckmäßig, in jeder Speicherzelle ein drittes Feld F3 (Fig. 3) zur Aufnahme eines Formatkennzeichens FOR bereitzustellen.
Es wurde bereits darauf hingewiesen, daß eine Kettungslinie nun in derjenigen Zeile angefangen werden kann, die sich aus der Vorsilbe und der Adreßwandlerfunktion für /EZ/ =0 ergibt.
VPA 9/21O/4O51a - 9 -
609834/0826
Abhängig von der Adreßwandlerfunktion kann jedoch der Pail eintreten, daß der Ablageplatz dieser Anfangszeile der Kettungslinie A "bereits von einer anderen Kettungslinie C erfaßt und artfremd "belegt wurde. Der arteigene Begriff nruß dann, wie in Pig. 5 dargestellt wurde, an anderer Stelle abgelegt werden. In diesem Pail wird in das noch freie PeId P1 der Anfangszeile unter (EZJ = 0 der Verweis auf das Ende der Kettungslinie A eingetragen (auch wenn die Kette zunächst nur aus einem einzigen Glied besteht), für den Begriff selbst wird dann unter (EZ/:^= 0 ein anderer freier Ablageplatz nachgewiesen. Der Einstieg in eine Kette erfolgt deshalb immer über das PeId P1 der Anfangszeile mit dem Ende-Yerweis.
Das gleiche gilt für die assoziative Suche nach Speicherinhalten. Die Vorsilbe des Suchbegriffs führt zunächst mit /EZ/ = 0 auf die Anfangszeile der betreffenden Kettungslinie. Der Verweis im PeId P1 dieser Zeile gibt Auskunft über das Ende der betreffenden Kettungslinie, direkt durch die Angabe der betreffenden Zeilenadresse, indirekt durch die Angabe des Zählerstandes, bei dem der Eintrag am Schluß der Kettungslinie erfolgte. Der Erweiterungszähler EZ wird dementsprechend eingestellt und die neue Seitenadresse gebildet. Der Inhalt der nunmehr vollständig adressierten Speicherzeile kann gelesen werden. Dabei fällt neben dem Assoziationsbegriff auch der Verweis auf das vorausgehende Glied der Kette an, dessen Seitenadresse wiederum gebildet wird. Alle zu einer Kettungslinie gehörenden Speicherplätze werden daher vom Ende der Kette her abgefragt.
Das Löschen von gespeicherten Begriffen, die nicht einer Kette angehören, oder das Löschen einer ganzen Kette, ist problemlos. Der Begriff wird durch einen assoziativen Suchvorgang lokalisiert. Anschließend wird der Begriff und das zugehörige Markierungs-Bit im Buchführungsspeicher gelöscht.
VPA 9/210/4051a - 10
609834/0826
Etwas komplizierter ist die Löschung von Begriffen, die einer Kette angehören, jedoch nicht ihr letztes Glied "bilden. Hierbei ist es erforderlich, die Kette jeweils um ein Glied zu kürzen und das letzte Glied in die entstandene Lücke einzusetzen. Dabei werden folgende Operationen ausgeführt:
1. Assoziative Suchoperation zur Lokalisierung des Begriffes im Speicher. Yfegen der Kettung sind serielle Leseoperationen erforderlich.
2. Begriff im Speicher löschen, die Zeilenadresse der entstandenen Lücke notieren.
3. Aus dem Feld F1 der Anfangszeile die Adresse des letzten Kettengliedes entnehmen.
4. Das letzte Kettenglied lesen, notieren und löschen. Das zugehörige Markierungs-Bit im Buchführungsspeieher löschen.
5. Den zwischengespeicherten Inhalt des letzten Kettengliedes in die entstandene Lücke eintragen.
6. Den Ende-Verweis im EeId F1 der Anfangszeile korrigieren.
Es wurde bereits darauf hingewiesen, daß die Art der Ableitung der Adressen aus dem Assoziationsbegriff Einfluß auf den Ablagemodus der eingespeicherten Begriffe hat. Der Ablagemodus spielt eine wichtige Rolle, wenn es darum geht, den Speicherinhalt nach bestimmten Gesichtspunkten zu sortieren. Im folgenden sollen daher einige Möglichkeiten für die Adressenbildung anhand der Fig. 6, 7 und 8 einschließlich der sich daraus ergebenden Konsequenzen für die Sortierfähigkeit der eingespeicherten Begriffe näher beschrieben werden. Die hierbei genannten Zahlenangaben sollen nur als Beispiele gelten und beziehen sich auf einen Hauptspeicher mit 2048 Seiten zu je 32 Zeilen.
Ein erstes Ausführungsbeispiel zeigt die Fig. 6. In dem Register REG steht der Assoziationsbegriff oder der Suchbegriff,
YPA 9/210/4051a - 11 -
60983A/0826
je nachdem ein Schreibzyklus oder ein Suchzyklus vorgenommen werden soll. Die 16 höchstwertigen Bit der im Register REG zwischengespeicherten Begriffe werden als Vorsilbe VS zur Adressenbildung benutzt. Der aus den 5 niederwertigen Bit "bestehende Teil VS1 der Vorsilbe VS wird dem " Zeilenadreßwandler ZAW zugeführt, der an seinem Ausgang die Zeilenadresse ZA mit ebenfalls 5 Bit liefert» Der Zeilenadreßwandler ZAV/ bewirkt im allgemeinen eine Ümcodierung ; der Eingangsinformation. Damit wird einer Konzentration von Einträgen mit ähnlichen Vorsilben entgegengewirkt. Fast immer kann der Zeilenadreßwandler jedoch wegfallen, so daß der Teil VS1 der Vorsilbe VS unmittelbar die Zeilenadresse darstellt, wie schon erwähnt wurde.
Der aus den 11 höherwertigen Bit bestehende Teil VS2 der Vorsilbe VS wird zusammen mit den drei Bit des Teils |EZ1j des ErweiterungsZählers EZ durch den Seitenadreßwandler SAW verarbeitet. Zu den 11 Bit am Ausgang des Seitenadreßwandlers SAW wird der Teil /EZ2/ des ErweiterungsZählers EZ im Addierer ADD addiert. Das Additionsergebnis stellt die Seitenadresse SA für den Hauptspeicher dar. Da in dem angegebenen Beispiel für die Bildung der Ausgangsgröße des Seitenadreßwandlers SAW nur die 3 niederwertigsten Bit des Erweiterungszählers EZ berücksichtigt werden, ergibt sich eine Kettungslinie, die nach 8 Gliedern in einen Parallelzweig zu dem ersten Abschnitt übergeht.
Es wurde schon vermerkt, daß die aus der Vorsilbe VS abgeleitete Zeilenadres-se ZA im? zur Adressierung der Anfangszeile einer Vorsilbenlinie, d. h. beim Stand 0 des Erweiterungszählers benutzt wird. Um dies deutlich zu machen, ist in der Fig. 6 ein symbolischer Umschalter AS mit 3 Stellungen dargestellt. Die eingezeichnete Stellung des Schalters AS gilt für den zuletzt erwähnten Fall /EZl = 0. Die beiden anderen Stellungen nimmt der Schalter AS immer dann ein, wenn der Stand des ErweiterungsZählers von 0 verschieden ist
VPA 9/21O/4O51a - 12 -
609834/0826
=-0). Unter dieser Voraussetzung gilt die mittlere Stellung für einen Schrei"bzyklus, "bei dem die Zeilenadresse durch die Buchführungssteuereinheit BFE mit Hilfe des Buchführungsspeichers BSP ermittelt wird. In der rechten Stellung liegt der Schalter AS während eines Suchvorgangs, "bei dem mit dem Lesen der Begriffe entlang einer Kettungslinie auch die in den Verweiskennzeichen enthaltenen Adressen gelesen werden.
Begriffe, für deren Einspeicherung die eben beschriebene Adressenbildung benutzt wurde, können leicht in dual-numerischer oder alpha-numerischer Reihenfolge sortiert werden. Pur die Sortierung in einer dual-numerischen Reihenfolge kann ein Sortierzähler benutzt werden, der alle Kettungslinien in dieser Reihenfolge nacheinander abruft. Die einzelnen, entlang einer Kettungslinie abgelegten, untereinander noch nicht sortierten Inhalte werden in einen assoziativen Registersatz übergeführt und von diesem in der endgültigen Sortierreihenfolge ausgegeben. Diese endgültige Sortierung kann beispielsweise nach einem der in der Patentanmeldung P 2 342 660.0 vorgeschlagenen Sortierverfahren erfolgen. Hierauf soll jedoch nicht näher eingegangen werden.
Da bei dem beschriebenen Ablagemodus Begriffe mit gleicher Vorsilbe auftreten können, muß gelegentlich mit der Entstehung längerer Ketten gerechnet werden. Bei der Sortierung ergeben sich daraus kaum Nachteile, wogegen bei der assoziativen Suche nach einzelnen Begriffen Zeitverluste entstehen. Es ist daher zweckmäßig, diesen Ablagemodus nur dann zu benützen, wenn insbesondere eine dual-numerisch sortierte Ausgabe von Begriffen gewünscht wird.
Der zuletzt angegebene Nachteil wird durch eine "diffuse" Ablage der Begriffe im Hauptspeicher vermieden. Allerdings geht dabei die unmittelbare Sortierfähigkeit des Speicherinhalts verloren. Die diffuse Ablage wird dadurch erreicht,
VPA 9/210/4051a . - 13 -
609834/0826
daß die für die Adressenbildung benutzte Vorsilbe auf wesentlich mehr Bitstellen erweitert wird als für die Adressierung des Hauptspeichers erforderlich sind.
Durch die Erweiterung des Vorsilbenbereiches wird die statistische Verteilung von Begriffen auf verschiedene Kettungslinien so verbessert, daß die Zahl längerer Ketten drastisch reduziert wird. Kettungen mit mehr als vier Gliedern treten dann außerordentlich selten auf. Dementsprechend können assoziative Suchvorgänge schnell abgewickelt werden, weil kaum mehr seriale Suchvorgänge anfallen.
Ein Ausführungsbeispiel für eine Zusatzeinrichtung zur Ableitung der Seiten- und Zeilenadressen SA bzw. ZA für den Hauptspeicher ASP aus der erweiterten Vorsilbe ist in Pig.7 dargestellt. Die Vorsilbe VS mit 64 Bit, die von dem in dem Register HEG- zwischengespeicherten Assoziations- bzw* Suchbegriff abgezweigt wird, wird einem Bitstellenmiseher BVT zugeführt. Am Ausgang des Bitstellenmischers BVT stehen die 64 Bit der Vorsilbe mit unregelmäßig veränderten Stellenwerten wieder zur Verfügung. In einem Reduktions-Wandler " RVi werden die 64 Bit auf 16 Bit komprimiert·. Der Reduktions-Wandler RW enthält ein Verknüpfungsnetzwerk und kann beispielsweise in der in der Mg. 7 angedeuteten Weise aus Verknüpfungsgliedern mit EXKLUSIV-ODER-Funktion aufgebaut sein, oder auch aus "Fur-Lese~Speicher"-(ROM-) Bausteinen bestehen.
Die 16 Bit am Ausgang des Reduktions-Wandlers RW werden nun in der gleichen Weise weiterverarbeitet wie die aus 16 Bit bestehende Vorsilbe nach Fig. 6. Das bedeutet also, daß der Teil mit den 11 höherwertigen Bit dem Seitenadreßwandler SAW und der Teil mit den 5 niederwertigen Bit dem Zeilenadreßwandler zugeführt wird. Der weitere Ablauf der Adressenbildung entspricht somit vollkommen dem anhand der Fig. 6 bereits beschriebenen Verlauf.■
VPA 9/21O/4O51a - 14 -
609834/08 26
Es wurde schon darauf hingewiesen, daß bei einer diffusen Ablage der Begriffe eine Sortierung praktisch, nicht mehr möglich ist. Ein Sortierzähler, der die einzelnen Vorsilben aufruft, müßte bei einer Vorsilbe mit 64 Bit 2 ^ Schritte ausführen. Das ergibt aber einen Zeitaufwand, der nicht mehr hinzunehmen ist. Will man nach einer 'diffusen Ablage doch noch sortieren, so kann man eine Umschichtung in einem sortierfähigen Ablagemodus durchführen.
Bei dem vorher beschriebenen, sortierfähigen Ablagemodus, der sich bei Verwendung der Einrichtung zur Adressenbildung nach Pig. 6 ergibt, enttsteien Häufungen von Begriffen mit gleichen oder ähnlichen Vorsilben vor allem bei einer alpha-nuroerisehen Codierung. Da die gebi'äuchlichen Codes für Buchstaben und Ziffern nur einen kleinen Teil der 256 Höglichkeiten umfassenden Code-Tabelle belegen, treten unerwünscht lange Kettungen auf, andererseits bleiben viele Anfänge möglicher Ketten ungenützt.
Eine wesentliche Verbesserung kann durch einen Verdichtungswandler erzielt werden, der die Bitstellensahl des Codes auf das notwendige Maß reduziert und alle nicht benützten Kombinationen ausscheidet. Die verdichtete Vorsilbe wird dem Seitenadreßwandler SAV/ und dem Zeilenadreßwandler ZAW zugeführt und in der anhand der Pig« 6 beschriebenen Weise weiter verarbeitet.
Ein auf dem EBCDI-Code abgestellter, aus 3 Einzslbausteinen bestehender Code-Verdichter ist in der Pig. 8 schematisch dargestellt. Der Code-Verdichter CV benutzt eine Vorsilbe mit 21 Bit und verdichtet sie auf 16 Bit. Die verdichtete Vorsilbe wird in der bisherigen Weise weiter behandelt.
Ein einzelner Baustein des Code-Verdichters CV ist in der Pig. 9 dargestellt. Er besitzt 8 Eingangsklemmen 0-7 und '
VPA 9/21O/4O51a - 15 -
6 09 834/0826
6 Ausgangsklemmen 0 - 5. Er "besteht aus den UIID-Verknüpfungsgliedern A1 - A7» dem ODER-Verknüpfungsglied OR und dem Inverter IHY. Im übrigen ist sein Aufbau aus der
Zeichnung ohne v/eiteres erkennbar. Ein Vergleich der "beiden Figuren 8 und 9 zeigt, daß in dem Verdichterbaustein auf der rechten Seite jeweils drei Eingangs- und Ausgangsleitungen nicht benutzt sind.
9 Figuren
9 Patentansprüche
YPA 9/21O/4O51a - 16 -
60983 4/0826

Claims (9)

  1. Patentansprüche
    Als Assoziationsspeicher verwendbare Speicheranordnung mit einem Hauptspeicher zur Aufnahme der aus einem assoziativen Teil (Assoziationsbegriff) und einem nicht assoziativen Teil bestehenden Daten, mit einer Vergleichereinrichtung zum Vergleich des assoziativen Teil der ausgelesenen Daten mit dem Suchbegriff, mit Adreßwandlern für die Ableitung von Speicheradressen aus dem Assoziationsbegriff oder dem Suchbegriff oder aus Teilen dieser Begriffe (Vorsilbe) und mit einem Erv/eiterungszähler, dessen Zählerstand die Adressenableitung beeinflußt und jeweils um 1 erhöht wird, wenn sich ein zunächst adressierter Speicherplatz als anderweitig belegt erweist, dadurch gekennzeichnet, daß der Hauptspeicher (ASP) aus einer linear adressierten Speicherbank besteht, die in a Seiten zu je b Zeilen unterteilt ist und jede Zeile einen Speicherplatz zur Aufnahme der Daten sowie Felder (3?1, P2, P3) zur Aufnahme von Verweiskennzeichen enthält, daß für die Bildung der Seiten- und Zeilenadressen (SA bzw. ZA) des Hauptspeichers (ASP) getrennte Adreßwandler (SAW bzw. ZAV/) vorgesehen sind, wobei der Erweiterungszähler (EZ) entsprechend seinem jeweiligen Stand die Ableitung der Seitenadresse (SA) mitbestimmt, daß ein zeilenweise lesbarer Buchführungsspeieher (BSP) mit a Zeilen zu je b Bitstellen vorgesehen ist, wobei jede Zeile des Buchführungsspeichers (BSP) einer Seite des Hauptspeichers (ASP) und jede Bitstelle des Buchführungsspeichers (BSP) einer Zeile des Hauptspeichers (ASP) zugeordnet ist und die Belegung der Bitstellen des Buchführungsspeichers (BSP) Auskunft über die Belegung des Hauptspeichers (ASP) gibt und daß dem Buchführungsspeieher (BSP) eine BuchführungsSteuereinheit (BPE) beigeordnet'ist, die das Setzen und die Abfrage der Markierungen im Buchführungsspeicher (BSP) für belegte Speicherplätze im Hauptspeicher (ASP) und die Auswahl äquivalenter Speicherplätze steuert.
    VPA 9/210/4051 a - .17 -
    60963&/0826
  2. 2. Speicheranordnung nach Anspruch 1, dadurch gekennzeichnet , daß die Buchführungssteuereinheit (Bi1E) "bei einem Neueintrag die Auswahl eines Speicherplatzes bzw. einer Zeile im Hauptspeicher (ASP) durch die aus der Vorsilbe (VS) gebildete Zeilenadresse verhindert, wenn der Stand des ErwexterungsZählers ]ΈΖΐτ^- 0 ist und dem ITeueintrag einen durch Abfrage des Buchführungsspeichers"(BSP) ermittelten freien Speicherplatz innerhalb der adressierten Seite zuweist.
  3. 3.. Speicheranordnung nach Anspruch 2, dadurch gekennzeichnet , daß die BuchführungsSteuereinheit (BPE) ein Prioritätsnetzwerk enthält, das bewirkt, daß die Ablage von Neueinträgen in einer freien Zeile mit der jeweils höchsten Priorität innerhalb der adressierten Seite erfolgt.
  4. 4. Speicheranordnung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß der Zeilenadreßwandler (ZAV/") die der Anzahl η der Bit der Zeilenadresse (ZA) gleiche Anzahl η der niederwertigen Bit einer Bitkombination stellenrichtig oder stellenvertauscht und/oder teilweise invertiert durchschaltet, daß die höherwertigen Bit der Bitkombination, deren Anzahl m gleich der Anzahl m der Bit der Seitenadresse (SA) ist, dem aus einem Verknüpfungsnetzwerk oder einem Lesespeicher bestehenden Seitenadreßwandler (SAV/") zugeführt werden, daß der Seitenadreßwandler ein von den niederwertigen Bit des Inhalts des ErweiterungsZählers (EZ) abhängige Umcodierung der Eingangsinformation bei Erhaltung der Bitzahl m bewirkt, daß ein Addierer (ADD) vorgesehen ist, der die höherwertigen Bit des Inhalts des Erweiterungszählers (EZ) zu den vom Seitenadreßwandler (SAW) gelieferten Bit modulo 2° addiert und daß das Additionsergebnis die Seitenadresse darstellt.
    VPA 9/21O/4O51a - - 18 -
    609834/08
  5. 5. Speicheranordnung nach Anspruch 4, dadurch gekennzeichnet, daß die BitkoraMnation identisch mit der "Vorsirbe aus dem Assoziations- bzw« Suchbegriff ist.
  6. 6. Speicheranordnung nach Anspruch 4, gekennzeichnet durch einen Bitstellenmischer (BYT) zur azyklischen Vertauschung der Stellen von k Bit einer verlängerten Vorsilbe, wobei k ein ganzzahliges Vielfaches von n+m (Seiten- und Zeilenadresse) ist, und durch einen Reduktions-Wandler (RW) mit einem Verknüpfungsnetzwerk oder einem Lesespeicher zur Reduktion der k Bit auf n+m Bit, von denen η Bit dem Zeilenadreßwandler (ZAW) und m Bit dem Seitenadreßwandler (SAW) zugeführt v/erden.
  7. 7. Speicheranordnung nach Anspruch 6, dadurch gekennzeichnet , daß der Reduktions-Wandler (RV/) aus EXKLUSIV-ODER-Gliedem besteht, wobei jeweils die Ausgänge von zwei Gliedern einer ersten Gruppe mit den Eingängen eines Glieds einer zweiten Gruppe verbunden sind.
  8. 8. Speicheranordnung nach Anspruch 6, dadurch gekennzeichnet , daß der Reduktions-Wandler (RW) aus einem Lesespeicher (ROM) besteht.
  9. 9. Speicheranordnung nach Anspruch 4, insbesondere zur Speicherung von Assoziationsbegriffen mit alpha-nuraerischer Codierung, gekennzeichnet durch einen den Adreßwandlern (SAV/, ZAW) vorgeschalteten Code-Verdichter (CV) zur Ausblendung nicht benutzter Codekombinationen und zur Beseitigung redundanter Bit, wobei die Anzahl der Bit der dem Code-Verdichter (CV) zugeführten Vorsilbe die Summe n+m um die Anzahl der redundanten Bit übersteigt.
    VPA 9/210/405ta
    609834/0826
    Leerseite
DE19752505478 1975-02-10 1975-02-10 Speicheranordnung Expired DE2505478C3 (de)

Priority Applications (8)

Application Number Priority Date Filing Date Title
DE19752505478 DE2505478C3 (de) 1975-02-10 Speicheranordnung
NL7600816A NL7600816A (nl) 1975-02-10 1976-01-27 Geheugeninrichting.
CH95676A CH604322A5 (de) 1975-02-10 1976-01-27
US05/654,645 US4047160A (en) 1975-02-10 1976-02-02 Storage arrangement having a device to determine free storage locations
IT19863/76A IT1055083B (it) 1975-02-10 1976-02-04 Dispositivo di memorizzazione per impianti elaboratori di dati
FR7603329A FR2300393A1 (fr) 1975-02-10 1976-02-06 Dispositif de memoire
GB4913/76A GB1533326A (en) 1975-02-10 1976-02-09 Storage arrangements
BE164208A BE838420A (fr) 1975-02-10 1976-02-10 Dispositif de memoire

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19752505478 DE2505478C3 (de) 1975-02-10 Speicheranordnung

Publications (3)

Publication Number Publication Date
DE2505478A1 true DE2505478A1 (de) 1976-08-19
DE2505478B2 DE2505478B2 (de) 1977-02-10
DE2505478C3 DE2505478C3 (de) 1977-09-22

Family

ID=

Also Published As

Publication number Publication date
BE838420A (fr) 1976-08-10
CH604322A5 (de) 1978-09-15
FR2300393B3 (de) 1979-10-12
NL7600816A (nl) 1976-08-12
FR2300393A1 (fr) 1976-09-03
US4047160A (en) 1977-09-06
GB1533326A (en) 1978-11-22
DE2505478B2 (de) 1977-02-10
IT1055083B (it) 1981-12-21

Similar Documents

Publication Publication Date Title
DE3885123T2 (de) Anordnung und Verfahren für Kryptographie mit Anwendung.
DE2139731C2 (de) Anordnung zur Code-Umsetzung
DE1901343C3 (de) Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen
DE2163342C3 (de) Hierarchische binäre Speichervorrichtung
DE2154106A1 (de) Arbeitsspeicherwerk
DE1956604B2 (de) Datenverarbeitungsanlage
DE3618136C2 (de)
DE2758829C2 (de) Datenverarbeitungsanlage mit mehreren Prozessoren
DE2814415A1 (de) Digitale verbindungseinheit fuer eine multiplexanlage mit verschiedenen bitraten
DE1449544A1 (de) Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE1269182B (de) Inhaltsadressierter Informationsspeicher (Katalogspeicher)
DE2505478A1 (de) Speicheranordnung
DE2505478C3 (de) Speicheranordnung
DE19645057C2 (de) Vorrichtung zur Selektion von Adressenwörtern mittels Demultiplex-Decodierung
DE2748859C3 (de) Schaltungsanordnung zum Speichern eines Textes
DE2004934B2 (de) Speicheranordnung mit schaltungen zur fehlererkennung und fehlerkorrektur
DE1808159A1 (de) Einrichtung zur Umwandlung von Dualzahlen in binaer codierte Dezimalzahlen in paralleler Darstellung
DE3105503A1 (de) Assoziativer zugriffsspeicher
DE3633227A1 (de) Anordnung zur umwandlung einer virtuellen adresse in eine physikalische adresse fuer einen in seiten organisierten arbeitsspeicher einer datenverarbeitungsanlage
DE2017879B2 (de) Speicheranordnung mit freiem Zugriff
DE2505477C3 (de) Assoziativspeicher mit getrennt assoziierbaren Bereichen
DE2002369C3 (de) Datenverarbeitungsanlage mit Pufferspeicher
DE2512324C3 (de) Verfahren und Anordnung zum Sortieren von Daten in einem assoziativ bewirtschafteten Speicher
EP0123169A1 (de) Hybrid-Assoziativspeicher, bestehend aus einem nicht assoziativen Basisspeicher und einer assoziativen Oberfläche

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
E77 Valid patent as to the heymanns-index 1977
8339 Ceased/non-payment of the annual fee