DE2505477C3 - Assoziativspeicher mit getrennt assoziierbaren Bereichen - Google Patents
Assoziativspeicher mit getrennt assoziierbaren BereichenInfo
- Publication number
- DE2505477C3 DE2505477C3 DE19752505477 DE2505477A DE2505477C3 DE 2505477 C3 DE2505477 C3 DE 2505477C3 DE 19752505477 DE19752505477 DE 19752505477 DE 2505477 A DE2505477 A DE 2505477A DE 2505477 C3 DE2505477 C3 DE 2505477C3
- Authority
- DE
- Germany
- Prior art keywords
- memory
- associative
- association
- lines
- prefix
- 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.)
- Expired
Links
- 230000015654 memory Effects 0.000 title claims description 129
- 239000012634 fragment Substances 0.000 claims description 21
- 230000015572 biosynthetic process Effects 0.000 claims description 8
- 238000009795 derivation Methods 0.000 claims description 6
- 230000001788 irregular Effects 0.000 claims description 3
- CVKBYFCJQSPBOI-UHFFFAOYSA-N methyl 3-[(4-methylphenyl)sulfonylamino]benzoate Chemical compound COC(=O)C1=CC=CC(NS(=O)(=O)C=2C=CC(C)=CC=2)=C1 CVKBYFCJQSPBOI-UHFFFAOYSA-N 0.000 claims description 3
- 102100021277 Beta-secretase 2 Human genes 0.000 claims 1
- 101710150190 Beta-secretase 2 Proteins 0.000 claims 1
- 238000009825 accumulation Methods 0.000 claims 1
- 238000004904 shortening Methods 0.000 claims 1
- 210000003462 vein Anatomy 0.000 claims 1
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 235000000434 Melocanna baccifera Nutrition 0.000 description 1
- 241001497770 Melocanna baccifera Species 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000005405 multipole Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Description
Hauptspeichers wird ein rascher Überblick über den jeweiligen Belegungszusiand des Hauptspeichers erreicht.
Die Adressen für die Seiten und Zeilen des Hauptspeichers werden aus den Associations- bzw
Suchbegriffen oder aus Teilen dieser Begriffe gewonnen. Die für die Adressenbildung benutzten Bitstellen
der Assoziations- bzw. Suchbegriffe werden als Vors.lbe bezeichnet, unabhängig davon, ob die Vorsilbe nur die
höherwertjgen Bitstellen dieser Begriffe 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 zur Folge haben. Allen Ausführungsbeispielen,
die später noch näher behandelt werden, ist ein Seitenadreßwandler gemeinsam, der aus einem Verknüpfungsnetzwerk
oder einem kleinen L^sespeicher besieht. Er gibt an seinem Ausgang ebenso viele Bit
parallel ab, als an seinem Eingang anliegen. Auf einen besonderen Zeilenadreßwandler kann im allgemeinen
verzichtet werden.
Für manche Anwendungsfälle ist es vorteilhaft, eine Vorsilbe mit mehr Bit zu verwenden, als für die
Adressierung erforderlich sind. Die Vorsilbe wird dann durch Verknüpfungsnetzwerke oder Lesespeicher verdichtet.
Da in der Regel die Anzahl der Speicherplätze im Hauptspeicher geringer ist als die Anzahl dar
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ührungsspeicher ist aber die Zuteilung eines gleichwertigen Speicherplatzes für den anstehenden
Neueintrag leicht und rasch möglich. Zu diesem Zweck ist ein Erweiterungszähler vorgesehen, dessen
jeweiliger Zählerstand für die Bildung der Seitenadressen mitbestimmend ist und von 0 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 würden.
Bei der Bildung solcher Kettungen ist es vorteilhaft, die Übersetzungsfunktion des Seitenadreßwandlers
durch wenige (z. B. 3 oder 4) niederwertige Bit des jeweiligen Standes des Erweiterungszählers zu steuern.
Die höherwertigen Bit aus dem Erweiterungszähler werden zu den Bit am Ausgang des Seitenadreßwandlers
addiert, ohne die Stellenzahl zu vergrößern. Das Additionsergebnis stellt die Seitenadresse dar.
Speicherinhalte bestehen oft aus mehreren unabhängigen Datengruppen, wobei die Daten innerhalb der
einzelnen Gruppen in einem organisatorischen Zusammenhang stehen. Solche Datengruppen können beispielsweise
Übersetzungstabellen, Entscheidungstabellen, Programme und Programmteile und vieles andere
sein. Sie werden im folgenden als unabhängige Tabellen
bezeichnet Die Bearbeitung solcher Tabellen in großen Assoziativspeichern mit einer Vielzahl unabhängiger
Tabellen wird in vielen Fällen sehr vereinfacht, wenn den einzelnen Tabellen getrennt assoziierbare Speicher
bereiche zugewiesen werden. Es sei hier nur auf da Sortieren von Tabelleninhalten hingewiesen, bei den
anderenfalls der ganze Speicher systematisch durch sucht werden müßte.
Eine Unterteilung des Speichers in feste physikalisch; Bereiche birgt jedoch die Gefahr in sich, daß Bereichi
nicht ausgenützt werden oder sich als zu knapf bemessen erweisen. Es ist daher die Aufgabe dei
Erfindung, Maßnahmen anzugeben, weiche die Unter teilung des Assoziativspeichers in getrennt assoziierba
re Bereiche gestatten, deren Kapazität den jeweiliger Erfordernissen jederzeit angepaßt werden kann. E·.
versteht sich von selbst, daß dies nur so weit gelten kann als die Gesamtkapazität des Speichers nicht überschritten
wird.
Gemäß der Erfindung wird diese Aufgabe bei einen' Assoziativspeicher der eingangs genannten Art durch
die im kennzeichnenden Teil des Hauptanspruchs aufgeführten Merkmale gelöst.
Zu beachten ist hierbei, daß die durch die Erfindung geschaffene Unterteilung des Speichers in getrennt
assoziierbare Bereiche nur in organisatorischer Hinsicht besteht. Über die tatsächliche räumliche Lage dieser
Bereiche im physikalischen Speicher kann in allgemeiner Form nichts ausgesagt werden. Vielmehr können
sich die Bereiche gegenseitig durchdringen. Nachstehend wird die Erfindung anhand von Ausführungsbeispielen
unter Zuhilfenahme der Zeichnung näher erläutert. Es zeigt darin
Fig. 1 eine Übersicht über einen Assoziativspeicher
mit einem Hauptspeicher mit einer Speicherbank und mit Zusatzeinrichtungen,
Fig.2 den Verlauf von Kettungslinien in Abhängigkeit
vom Stand des Erweiterungszählers,
Fig.3 die Eintragung von Verweiskennzeichen in
den Speicherplätzen zugeordnete Felder,
Fig.4 eine Anordnung zur Ableitung von Adressen
für den Hauptspeicher aus den Assoziations- bzw. Suchbegriffen,
F i g. 5 ein Ausführungsbeispiel für einen Adreßwandler,
Fig.6 eine Anordnung zur Ergänzung der Anordnung
nach F i g. 4 (Code-Verdichter),
F i g. 7 einen Baustein der Anordnung nach F i g. 6 und
Fig.8 eine Übersicht über einen Assoziativspeicher
mit einem Hauptspeicher mit mehreren Speicherbänken und mit Zusatzeinrichtungen.
Die Fig. 1 zeigt andeutungsweise den Hauptspeicher ASPi, der in a Seiten zu je b Zeilen unterteilt ist. Jede
Speicherzeile besteht aus dem eigentlichen Speicherplatz zur Aufnahme des abzulegenden Assoziationsbegriffs
und gegebenenfalls eines nicht assoziativen Datenteils und aus zwei zusätzlichen Feldern Fl und
F2 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 Suchbegrift notwendige Vergleiche»
ist in der F i g. 1 nicht dargestellt. Ebenfalls nicht dargestellt sind ein Maskenregister, dessen veränderbarer
Inhalt es gestattet, den bei dem assoziativen Vergleich berücksichtigten Bereich zu erweitern oder
einzuengen und der zur Anwahl der Speicherplätze notwendige Adressendecodierer.
Dem Hauptspeicher ASPi ist der wortweise lesbare
Buchführungsspeicher BSP zugeordnet. Der Buchführungsspeicher BSP besitzt so viele Wörter, als der
Hauptspeicher ASPi Seiten besitzt, jedes Wort im
Buchführungsspeicher BSP besteht aus so vielen Bitstellen, als jede Seite des Hauptspeichers Zeilen
aufweist. In eine Bilstelle des Buchführungsspeichers BSP wird ein Markierungsbit gesetzt (in der Zeichnung
durch einen Punkt angedeutet), wenn die betreffende Zeile des Hauptspeichers durch einen Eintrag belegt ist.
Als Buchführungsspeicher BSP wird vorteilhaft ein schneller 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.
Dem Buchführungsspeicher BSP ist eine Buchführungssteuereinheit
BFEbeigegeben, die Hilfsfunktionen
ausführt. Beispielsweise liest sie das durch die Seitenadresse SA des Hauptspeichers ASPi ausgewählte
Wort im Bu^hführungsspeicher BSP und wählt mit Hilfe eines Prioritä.netzwerks den freien Speicherplatz
mit der höchsten Priorität innerhalb der ausgewählten Seite des Hauptspeichers ASPl aus,
wenn ein durch die ursprüngliche Zeilenadresse ZAo ausgewählter Speicherplatz bereits belegt ist. Die
Buchführungssteuereinheit BFEsetzt auch die Kennzeichen
in die Felder Fl und F2 des Hauptspeichers ASPi und wertet die aus diesen Feldern gelesenen
Kennzeichen aus. Ferner steuert sie den Erweiterungszähler EZ.
Es wurde schon darauf hingewiesen, daß der Erweiterungszähler EZaIs Hilfsmittel für die Zuweisung
äquivalenter Speicherplätze für Neueinträge vorgesehen ist. Sein jeweiliger Zählerstand ist für die Bildung
der Seitenadressen mitbestimmend und wird von 0 ausgehend immer dann um eine Zähleinheit erhöht,
wenn der vorher adressierte Speicherplatz schon belegt ist. Die auf diese Weise aufgebaute Kette von ähnlichen
Assoziationsbegriffen, die alle zunächst einmal zu gleichen Adressen führen wurden, ist in der Fig. 2 in
Abhängigkeit vom Stand \EZ\ des Erweiterungszählers EZ (£Z-Stand) aufgetragen. Der durch die Pfeile, welche
die einzelnen Glieder miteinander verbinden, entstehende unregelmäßige Linienzug wird als Kettungslinie
bezeichnet. 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 Standes \EZ\ des Erweiterungszählcrs
EZ in eine andere Seite des Hauptspeichers übergeht. Ferner kann es vorkommen, daß einzelne EZ-Stände
übersprungen werden, weil die unter Mitwirkung der übersprungenen EZ-Stftnde adressierten Hauptspeichcrscitcn
schon vollständig belegt sind.
F.s ist vorteilhaft, die vom Zcilcnndrcßwancllcr aus dem Asso/.ialionsbcgriff abgeleitete Adresse ZAo nur
beim jeweils ersten Glied, d. h. beim Stand \EZ\ =0 des
F.rweiterungsziihlcrs EZzur Adressierung des Speicherplatzes
zu verwenden. Für die Einträge weiterer Kcttungsgliedcr (|EZ|>0) werden freie Speicherplätze
innerhalb der ausgewählten Seiten mit Hilfe des Huchfühningsspcichers ermittelt.
Für den systematischen Aufbau einer Kettungslinie und zum Wiederauffinden der entlang der Kettungslinie
eingespeicherten Assoziationsbegriffe ist es notwendig, in die jedem Speicherplatz zugeordneten Felder
Vcrwciskcnnzcichcn einzutragen. Alle Vcrweiskcnnzeichen bestehen aus der Angabe eines bestimmten
Standes des F.rweiterungszilhlers I-Z und einer Zcilcnadressc
(innerhalb einer Hauptspeichcrscitc). Hs ist vorteilhaft, zwei Felder Fl und F2 vorzusehen und in
folgender Weise vorzugehen:
Das Feld Fl des Anfangsgliedes einer Kette (Anfangszeile) enthält einen Verweis auf das jeweilige
Ende der Kette. In den Feldern F2 aller weiteren Glieder stehen die Angaben, die das jeweils vorausgehende
Glied betreffen. Die Fig.3 zeigt die Verweiskennzeichen
einer viergliedrigen Kette aus den Begriffen Bi bis B4. Die Kette wird von links nach
rechts aufgebaut und — ausgehend vom Feld Fl auf der
linken Seite — von rechts nach links gelesen bzw. aufgebaut.
Die bisher nicht erwähnten Einrichtungen der Anordnung nach Fig. 1 dienen zur Ableitung der
Speicheradressen aus den in dem Register REG stehenden Assoziations- bzw. Suchbegriffen. Auf die
Rolle des Erweiterungszählers in Verbindung mit der Adressenbildung wurde bereits hingewiesen. Die verschiedenen
Möglichkeiten für die Ableitung der Speicheradressen lassen sich in drei Hauptgruppen
einteilen, die unterschiedliche Ablagemodi zur Folge haben. Es ist zweckmäßig, wie in F i g. 1 dargestellt, den
drei Gruppen entsprechende Ausführungen gleichzeitig vorzusehen, die dann nach den jeweiligen Erfordernissen
wahlweise benützt werden können. Zur Auswahl zwischen den verschiedenen Arten der Adressenableitung
dieni: eine vielpolige Umschaltevorrichtung, die durch den Schalter MOD symbolisiert ist. Abhängig von
dessen Stellung wird auch die Maske MASK verändert.
In allen Stellungen des Schalters MOD wird eine
Bit-Kombination mit gleichbleibender Bitstellenzahl, das Fragment FRAG, durchgeschaltet. Die Bitstellenzahl
entspricht der Summe der Bit in Seiten- und Zeilenadresse. In der mittleren Stellung m2 des
Schalters MOD ist das Fragment FRAG identisch mit der durch entsprechendes Setzen der Maske MASK aus
dem Assoziationsbegriff (bzw. Suchbegriff) ausgeblendeten Vorsilbe VS.
Die weitere Verarbeitung des Fragments, insbesondere mit dem Ziel, eine Unterteilung des Speichers in
getrennt assoziierbarc Bereiche zu erreichen, ist der Darstellung in Fig. 1 nur andeutungsweise zu entnehmen.
Sie wird im folgenden anhand der Fig.4 ausführlich beschrieben. Ein Register RB liefert auf
Abruf (per Programm) eine Steuerinformation BGR zur Bereichsabgrenzung und eine Bereichsadresse BAD.
Die Stcuerinformation BGR dient zur Steuerung eines
Schräganbieters, der in der F i g. 4 durch eine verschiebbare Maske MSAB mit gleichbleibender Blendenöffnung
und durch ein Feld SAßdargcstcllt ist (vgl. DT-AS
19 16 377). Die öffnung der Maske MSAB wird unter
dem Einfluß der Stcuerinformation BGR so verschoben daß mehr oder weniger der höhcrwcrtigcn Bit des
Fragments FRAG abgegriffen und in das Feld SAl: übergeführt werden. Maximal wird das gesamte
Fragment FRAG in das Feld SAB übergeben. Im übrigen werden so viele nicdcrwcrtigc Bit der
Bcrcichsatlrcsse BAD, erfaßt als nicdcrwertigc Bit des
Fragments FRAG ausgeschlossen werden. Die 1 nicdcrwcrtigcn Bit der in Feld SAB stehender
Bit-Kombination werden unmittelbar als Zcilenadrcssi
für den Hauptschalter benutzt. Die restlichen η höhcrwcrtigcn BiI der Bit-Kombination werden einen
ScitcniulrclJwnndlcr zugeführt, der aus einem Vcrknüp
fungsnct/wcrk oder einem l.cscspcichcr besteht. Dci
aus wenigen (z. B. drei oder vier) nicdcrwcrtigcn Bi bestehende Anteil |EZ1| des Inhalts des Erweitcrungs
zählcrs EZ steuert die Übcrsctzimgsfunklion de
ScitcnndrcBwandlcrs SA W. Der die höhcrwcrtigcn Bi
enthaltende Anteil |F/2| vom Inhalt des Erweitcrungs
Zählers wird in einem Addierer ADD zu dem vom
Seitenadreßwandler SA W gelieferten Bit modulo 2m
addiert. Das Additionsergebnis stellt die Seitenadresse SA für den Hauptspeicher dar.
Ein Ausführungsbeispiel für den Seitenadreßwandler SA W zur Verarbeitung von 16 Bit aus handelsüblichen
Lesespeicher-Bausteinen zeigt die F i g. 5. Jeder Lcsespeicher-Baustein ROM übernimmt eine Gruppe von 4
Bit vom Schräganbicter SAB und die 4 niedrigstwertigen Bit des Erweiterungszählcrs EZ als Adresse, wobei
letztere allen vier Lesespeicher-Bausteinen ROM gleichermaßen zugeführt werden. Die aufgerufenen
Speicherinhalte der Lesespeicher-Bausteine ROM werden über jeweils 4 Ausgangslcitungen abgenommen.
Es wurde schon vermerkt, daß die aus dem Fragment FRAG bzw. aus dem Assoziationsbegriff abgeleitete
Zeilenadrcsse ZAo nur zur Adressierung der Anfangszeile
zeile einer Vorsilbcnlinie, el. h. nur beim Stand 0 des Erweiterungszählcrs benutzt wird. Um dies deutlich zu
machen, ist in der F i g. 4 ein symbolischer Schalter AS mit drei Stellungen dargestellt. Die eingezeichnete
(rechte) Stellung des Schalters AS gilt für den Fall IEZ]=O. Die beiden anderen Stellungen nimmt der
Schalter AS immer dann ein, wenn der Stand des Erweiterungszählcrs von 0 verschieden ist (|£Z|>0).
Unter dieser Voraussetzung gilt die mittlere Stellung für einen Schrcibzyklus, bei dem die Zcilcnadressc durch
die Buchführung;Steuereinheit 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 Kcttungslinic auch die in den Verweiskennzeichen
enthaltenen Zeilenadrcssen der zur Kette gehörenden Glieder gelesen werden.
Die durch die Funktion des Schräganbiclers erzeugten getrennt assoziierbaren Bereiche sind nur für
primäre Einträge (HZ=O) durch das Fragment FRAG. die Bereichsadresse BAD und die Stcucrinformation
BGR festgelegt. Im übrigen verhalten sie sich wie elastische Blasen, deren Große unabhängig von dieser
Eingangsöffnung beliebig erweitert oder reduziert werden kann. Selbstverständlich kann dabei der
gesamte verfügbare Spcichcrrauni nicht überschritten werden. Reicht der für primäre Ablagen zur Verfügung
stehende Bereich nicht aus, so werden als Erweiterung beliebig viele sekundäre Ablageplätze zur Verfügung
gestellt. Dabei werden auf ilen mich F i g. 2 definierten
Kettungslinicn Kettungen gebildet. Die Ablage erfolgt hierbei, dank der Möglichkeit, freie Speicherplätze mit
Hilfe des Buclifühnmgsspeichers BSP zuzuteilen, ohne
nennenswerte Hemmungen. Überschneidungen von Kettungslinicn treten nicht auf.
Die in der mittleren Stellung in 2 des Schalters MOD
(F i g. 4) sich ergebende, bereits näher beschriebene Art der Adressenableitimg bewirkt einen sortierfiihigcn
Ablagemodus der eingespeicherten Assozialionsbcgriffe.
Er eignet sich besonders für eine Sortierung der Begriffe nach einer dualnuinerischen Ordnung. Zu
diesem Zweck kann ein Sortierzlihler benutzt werden, der alle Kettungslinien in dieser Reihenfolge nacheinander
abruft. Die einzelnen, entlang einer Kcttungslinie abgelegten, untereinander noch nicht sorlierlcn Inhalte
weiden in einen assoziativen Rcgislersalz übergeführt und von diesem in der endgültigen Sortierreihenfolge
ausgegeben. 6S
Bei dem genannten Abliigcmoclus muli jedoch
gelegentlich mit der Entstehung längerer Kellen errechnet werden. Für dir 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 dualnumerisch
sortierte Ausgabe von Begriffen erwünscht wird.
Der zuletzt angegebene Nachteil wird durch eine »diffuse« Ablage der Begriffe im Hauptspeicher
vermieden. Allerdings geht dabei die unmittelbare Sortierfähigkeit des Speichcrinhalts praktisch verloren,
weil die Sortierung diffus abgelegter Begriffe einen zu hohen Zeitaufwand bedingen würde. Soll trotzdem
sortiert werden, dann ist eine vorhergehende Umschichtung in einen sortierfähigen Ablagemodus zu empfehlen.
Die diffuse Ablage wird dadurch erreicht, daß die für die Adressenbildung benutzte Vorsilbe VS durch
entsprechende Steuerung der Maske MASK auf wesentlich mehr Bitstellen erweitert wird, als für die
Adressierung des Hauptspeichers eigentlich erforderlich sind. Die notwendige Reduktion der vierteiligen
Vorsilbe auf das eine geringere Bitstcllenzahl aufweisende Fragment FRAG wird durch einen Reduktionswandlcr
REW erreicht, der in der Stellung m 1 des Schalters MOD in Funktion tritt. Der Reduktionswandler
WEWbesleht vorzugsweise aus einem Lesespeicher,
der durch die Vorsilbe VS adressiert wird und an seinem Ausgang die verschiedenen Bitkombinationen des
Fragments FRAG abgibt. Naturgemäß liefern dabei auch unterschiedliche Vorsilben VS gleiche Fragmente
FRAG.
Durch die Erweiterung des Vorsilbenbereiches wird die statistische Verteilung von Begriffen auf verschiedene
Kettungslinicn 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 serielle Suchvorgänge anfallen.
In der dritten Stellung /h3 des Schalters MOD wird
eine Adressenbildung durchgeführt, die ebenfalls zu einem sortierfähigen Ablagemodus führt. Er ist für die
spätere Sortierung der Begriffe in alpha-numcrischer Reihenfolge geeignet.
In der Stellung /u3 des Schalters MOD wird das
Fragment FRAG mit Hilfe eines Code-Verdichters CV aus der Vorsilbe VS(vgl. Fig. I) gewonnen. Da nämlich
die gebräuchlichen Codes für Buchstaben und Ziffern nur einen kleinen fei! der 256 gebotenen Kombinationsmöglichkeitcn
belegen, können ohne die Anwendung zusätzlicher Maßnahmen unerwünscht lange Kettungen
auftreten. Der Code-Verdichter CV reduziert die Bitsiellenzahl des Codes auf das notwendige Mall und
scheidet alle nicht benutzten Kombinationen von vorneherein aus.
Ein auf den EBCDI-Codc abgestellter, aus drei
Einzelbausteinen bestehender Code-Verdichter ist in der Fig. b schematised dargestellt. Der Code-Verdichter
(V benutzt eine Vorsilbe KS' mil 21 Bit und verdichtet sie auf ein Fragment i RAGmW Ib Bit. Einen
einzelnen Baustein des Code-Verdichters CV mit 8 Eingangsklemnien 0--7 und b Ausgangsklemmen 0 — 5
zeigt die F i g. 7. Er besteht aus den UND-Verknüpfungsgliedern
Al-A 7,dem ODER-Verknüpfungsglied
OH und dem Inverter INV. Sein Aufbau ist aus der
Zeichnung ohne weiteres erkennbar. Ein Vergleich der beiden Fig.b und 7 zeigt, daß in dem Code-Verdichter
CVauf der rechten Seite jeweils drei Eingangs und drei
Ausgangsleittingen nicht benutzt sind.
Die Unterteilung eines assoziativ bcwirisihnftclcn
Speichers in getrennt assoziierbare Bereiche in der beschriebenen Weise läßt sich nicht nur in Verbindung
mit einem Hauptspeicher mit einer Speicherbank, sondern auch bei einer aus mehreren gleichberechtigten
Speicherbänken bestehenden Speicheranordnung erreichen.
In der Übersichtsdarstellung der Fig. 8 ist ein Ausführungsbeispiel einer an sich durch die schon
erwähnte DT-OS 23 19 468 bekannten Speichereinrichtung durch die Zusatzeinrichtung zur Aufteilung des
Speichers in getrennt assoziierbare Bereiche gemäß der Erfindung ergänzt. Der eigentliche Speicher ASPB
besteht aus 6 (vorzugsweise 8) Speicherbänken SSO bis
SB 5, die jeweils eine Vielzahl von Speicherplätzen PO bis Pk aufweisen. Zur Adressierung der Speicherplätze
ist jeder Speicherbank ein Adreßwandler ADWO bis ADW5 zugeordnet. Jeder Adreßwandler besitzt eine
andere Übersetzungsfunktion, derart, daß ein an den Eingängen der Adreßwandler anliegendes Fragment
FRAG für jede Speicherbank eine andere Adresse liefert. Werden alle Ablageplätze, die durch ein
bestimmtes Fragment FRAG adressiert werden, verbunden, dann ergibt sich eine unregelmäßig verlaufende
Kettungslinie. Durch Hochzählen des Erweiterungszählers EZ immer dann, wenn alle Ablageplätze entlang
einer Kettungslinic bereits belegt sind, und durch die Addition seines Inhalts zu den Ausgangsgrößen dei
Adreßwandler werden Verlängerungen der Kettungslinien geschaffen.
Die Bitkombination am Eingang der AdrcBwandlci
wird durch einen Schräganbieter geliefert, der in dei schon beschriebenen Weise die höherwertigen Bit eine?
Fragments FRAG und die niederwertigen Bit einei
Bereichsadresse BAD abgreift. Die Verschiebung de·
ίο Schräganbieters wird durch die Steuerinformation BGF
zur Bereichsabgrenzung gesteuert. Die Herleitung de« Fragments FRAG aus dem Assoziationsbegriff kann ir
jeder aus der DT-OS 23 19 468 bekannten Weist erfolgen. Da bei der Speicheranordnung mit mehrerer
Speicherbänken auch bei der Unterteilung in getrenn assoziierbare Bereiche Überschneidungen von Ket
tungslinien auftreten können, wird zu jedem eingegebe nen Assoziationsbegriff auch die gesamte Bereichs
adresse BAD, die bei der Ableitung seiner Adresst
;io (teilweise) mitbestimmend war, für die eindeutigt
Identifizierung des Begriffs abgelegt. Als Überschnei dung von Kettungslinien wird der Fall bezeichnet, dal
ein Speicherplatz von zwei oder mehreren Kettungsli nien erfaßt wird.
Hierzu 5 Blatt. Zeichnungen
Claims (4)
1. Atüoziativspeicher mit getrennt assoziierbaren
Bereichen, mit einem linear adressierbaren Hauptspeicher zum Ein- und Auslesen von aus einem
assoziativen Teil (Assoziationsbegriff) und einem nicht assoziativen Teil bestehenden Daten, mit einer
Vergieichereinrichtung zum Vergleich der ausgelesenen Assoziationsbegriffe mit dem Suchbegriff, mit
einer Adreßwandler enthaltenden Einrichtung zur Ableitung der Adressen aus dem Assoziationsbegriff
bzw. Suchbegriff od-jr aus den höherwertigen Bit
dieser Begriffe und mit einem Erweiterungszähler, dessen Zählerstand die Ableitung der Adressen
beeinflußt und jeweils um 1 erhöht wird, wenn sich ein zunächst adressierter Speicherplatz als anderweitig
belegt erweist, dadurch gekennzeichnet,
daß eine Reservierungseinheit (RES) vorgesehen ist, mit einem Schräganbieter (SAB), der
unter dem Einfluß einer Steuerinl'ormaüon (BGR)
zur Bereichsabgrenzung eine sekundäre Bitgruppe mit der Breite / der vollständigen Adressen aus
einem wählbaren Teil der niederwertigen Bit einer Bereichsadresse und aus einem wählbaren Teil der
höherwertigen Bit einer primären, aus dem Assoziations- bzw. Suchbegriff abgeleiteten Bitgruppe
(Fragment FRAG)mit der Breite /abgreift und der Adreßwandler enthaltenden Einrichtung zum vom
Stand des Erweiterungszählers (EZ) abhängigen Bildung der Speicheradresse zuführt.
2. Assoziativspeicher nach Anspruch 1, dadurch gekennzeichnet, daß die Reservierungseinheit (RES)
ein Register mit einem Feld zur Aufnahme der Steuerinformation (BGR) zur Bereichsabgrenzung,
einem Feld zur Aufnahme der Bereichsadresse (BAD) und einem Feld zur Aufnahme des Fragments
(FRAG) sowie eine verschiebbare Maske (MSAB) mit konstanter Öffnungsbreite enthält.
3. Assoziativspeicher nach Anspruch 2, dadurch gekennzeichnet, daß der Hauptspeicher (ASP1) aus
einer linear adressierbaren Speicherbank mit a Seiten (a = 2m) zu je b Zeilen (b=2n) besteht, mit
einem wortweise lesbaren Buchführungsspeicher (BSP),dessen Wörterden Seiten des Hauptspeichers
(ASPX) entsprechen und dessen Bitstellen innerhalb
der Wörter den Zeilen innerhalb der Seiten des Hauptspeichers (ASPt) zugeordnet sind und bei
Belegung der Zeile bzw. des Speicherplatzes markiert werden und mit einer dem Buchführungsspeicher (BSP) zugeordneten Buchführungssteuereinheit
(BFE), die das Setzen bzw. Rücksetzen und die Abfrage der Markierungen im Buchführungsspeicher (BSP) für belegte Speicherplätze im
Hauptspeicher (,4SPl) und die Auswahl äquivalenter
Speicherplätze steuert.
4. Assoziativspeicher nach Anspruch 2, dadurch gekennzeichnet, daß der Hauptspeicher (ASPB) aus
mehreren, eine Vielzahl von Speicherplätzen (PO bis Pk) umfassenden Speicherbänken (SBO bis SB 5)
besteht und daß jeder Speicherbank Adreßwandler (ADWO bis ADWS) zur Ableitung der Adressen für
die Speicherplätze (PO bis Pk) aus der von dem
Schräganbieter (SAB) gelieferten Bitkombination unter dem Einfluß des jeweiligen Standes des
Erweiterungszählers (EZ) in einer vein Speicherbank
zu Speicherbar.k unterschiedlichen Weise zugeordnet sind.
Die Erfindung bezieht sich auf einen Assoziativspeicher mit getrennt assoziierbaren Bereichen, mit einem
linear adressierbaren Hauptspeicher zi>m Ein- und
Auslesen von aus einem assoziativen Teil (Assoziationsbegriff) und einem nicht assoziativen Teil bestehenden
Daten, mit einer Vergleichseinrichtung zum Vergleich der ausgelesenen Assoziationsbegriffe mit dem Suchbegriff,
mit einer Adreßwandler enthaltenden Einrichtung zur Ableitung der Adressen aus dem Assoziations- bzw.
ίο Suchbegriff oder aus den höherwertigen Bit dieser Begriffe und mit einem Erweiterungszähler, dessen
Zählerstand die Ableitung der Adressen beeinflußt und jeweils um 1 erhöht wird, wenn sich ein zunächst
adressierter Speicherplatz als anderweitig belegt erweist.
Durch die DT-OS 23 19 468 ist eine Speichereinrichtung mit mehrerer, eir:e Vielzahl von Speicherplätzen
umfassenden Speicherbänken bekannt, die jeweils in einen durch einen Teil (Vorsilbe) des Assoziations- bzw.
ίο Suchbegriffs adressierbaren assoziativen Abschnitt und
in einen nicht assoziativen Abschnitt zur Aufnahme eines beigeordneten Begriffs gegliedert sind, wobei
jeder Speicherbank Adreßwandler zugeordnet sind zur Ableitung der Adressen aus dem Assoziations- bzw.
Suchbegriff 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 einer Vorsilbenlinie verfügbaren Speicherplätze für ihre Eintragung nicht ausreichen. Die Speichereinrichtung
weist daher einen Erweiierungszähler auf, dessen jeweiliger Stand für die Bildung der Adressen
mitbestimmend ist und jeweils um 1 erhöht wird, wenn ein Neueintrag eines Begriffs mit einer bestimmten
Vorsilbe erfolgen soll und alle Speicherplätze entlang der betreffenden Vorsilbenlinie bereits belegt sind. Mit
Hilfe des Erweiterungszählers werden also zusätzliche Adressierungsebenen geschaffen, die Verlängerungen
von Vorsilbenlinien aufnehmen können.
Durch die mögliche Übersicht über den Belegungszustand entlang einer Vorsilbenlinie wird die Zuteilung
freier Speicherplätze für Neueintragungen sehr erleichtert. So sind durchschnittlich zwei Suchzyklen für das
Auffinden freier Speicherplätze erst bei einem Speicherfüllungsgrad von etwa 95% und mehr notwendig.
Bei einer Verringerung der Anzahl der Speicherbänke werden jedoch die Verhältnisse rasch ungünstiger.
Es entfällt mehr und mehr die Übersicht über den Belegungszustand und wegen der Verkürzung der
Vorsilbenlinien die Auswahl zwischen gleichwertigen Ablageplätzen.
Durch die Anwendung geeigneter Maßnahmen gelingt es jedoch, auch einen linear adressierbaren, in
Seiten und Zeilen unterteilten Hauptspeicher mit nur einer Speicherbank vorteilhaft als Assoziativspeicher
verwenden zu können. Von wesentlicher Bedeutung ist hierbei die Bereitstellung eines Buchführungsspeichers,
bei dem die Zeilen (Wörter) den Seiten des Hauptspeichers und die Bitstellen innerhalb der Wörter den Zeilen
innerhalb der Seiten des Hauptspeichers zugeordnet sind. Durch Setzen von Markierungen in den Bitstellen
des Buchführungsspeichers für die belegten Zeilen des
Priority Applications (9)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE19752505477 DE2505477C3 (de) | 1975-02-10 | Assoziativspeicher mit getrennt assoziierbaren Bereichen | |
| AT42576A AT354159B (de) | 1975-02-10 | 1976-01-22 | Assoziativspeicher mit getrennt assoziierbaren bereichen |
| CH106476A CH607235A5 (de) | 1975-02-10 | 1976-01-28 | |
| NL7600921A NL7600921A (nl) | 1975-02-10 | 1976-01-29 | Associatief geheugen met gescheiden associeerba- re blokken. |
| US05/654,615 US4044338A (en) | 1975-02-10 | 1976-02-02 | Associative memory having separately associable zones |
| IT19865/76A IT1055085B (it) | 1975-02-10 | 1976-02-04 | Memeoria associativa con zone associabili separatamente |
| FR7603330A FR2300394A1 (fr) | 1975-02-10 | 1976-02-06 | Memoire associative comportant des zones pouvant etre associees separement |
| GB4912/76A GB1533325A (en) | 1975-02-10 | 1976-02-09 | Storage arrangements |
| BE164209A BE838421A (fr) | 1975-02-10 | 1976-02-10 | Memoire associative comportant des zones pouvant etre associees separement |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE19752505477 DE2505477C3 (de) | 1975-02-10 | Assoziativspeicher mit getrennt assoziierbaren Bereichen |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| DE2505477A1 DE2505477A1 (de) | 1976-08-19 |
| DE2505477B2 DE2505477B2 (de) | 1977-02-10 |
| DE2505477C3 true DE2505477C3 (de) | 1977-09-22 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE2457312C3 (de) | Anordnung zur Durchführung arithmetischer oder logischer Operationen an ausgewählten Gruppen aufeinanderfolgender Bits in einer Datenverarbeitungsanordnung | |
| DE2347387A1 (de) | Permutationsschaltung | |
| DE1181461B (de) | Adressenaddierwerk einer programm-gesteuerten Rechenmaschine | |
| DE1269393B (de) | Mikroprogramm-Steuerwerk | |
| DE2758829C2 (de) | Datenverarbeitungsanlage mit mehreren Prozessoren | |
| DE2165765C3 (de) | Informationsspeicher mit Schieberegistern | |
| DE1262641B (de) | Mikroprogrammsteuerwerk | |
| DE2063199B2 (de) | Einrichtung zur Ausführung logischer Funktionen | |
| DE2846054C2 (de) | Schaltungsanordnung zur Erweiterung des Adressierungsvolumens einer Zentraleinheit, insbesondere eines Mikroprozessors | |
| DE2900586A1 (de) | Anordnung zum decodieren von codewoertern variabler laenge | |
| DE2054941C2 (de) | Anordnung zur Auswahl von Datensätzen | |
| DE1269182B (de) | Inhaltsadressierter Informationsspeicher (Katalogspeicher) | |
| DE2505477C3 (de) | Assoziativspeicher mit getrennt assoziierbaren Bereichen | |
| DE1449795B2 (de) | Assoziativspeicher | |
| DE102014007567A1 (de) | System und verfahren zum speichern von daten in einem anpassbar unterteilbaren speicherfeld | |
| DE2235883C3 (de) | Datenverarbeitungseinrichtung | |
| CH495584A (de) | Datenverarbeitungsanlage | |
| DE2505477B2 (de) | Assoziativspeicher mit getrennt assoziierbaren bereichen | |
| DE1499284B2 (de) | Datenverarbeitungsanlage | |
| DE2511673C2 (de) | Schaltung zur Übertragung eines Feldes zwischen zwei Registern unter Mitwirkung einer Schiebeschaltung | |
| DE1808159B2 (de) | Einrichtung zur umsetzung von dualzahlen in binaer codierte dezimalzahlen in paralleler darstellung | |
| EP0035787B1 (de) | Hybrid-Assoziativspeicher und dessen Anwendungen, insbesondere zum Sortieren von gespeicherten Daten | |
| DE2748859B2 (de) | ||
| DE2735874C2 (de) | ||
| DE2505478C3 (de) | Speicheranordnung |