DE1221037B - Verfahren zur Speicherung hierarchisch geordneter Datenketten und Anordnung zur Durchfuehrung dieses Verfahrens - Google Patents

Verfahren zur Speicherung hierarchisch geordneter Datenketten und Anordnung zur Durchfuehrung dieses Verfahrens

Info

Publication number
DE1221037B
DE1221037B DEJ25953A DEJ0025953A DE1221037B DE 1221037 B DE1221037 B DE 1221037B DE J25953 A DEJ25953 A DE J25953A DE J0025953 A DEJ0025953 A DE J0025953A DE 1221037 B DE1221037 B DE 1221037B
Authority
DE
Germany
Prior art keywords
search
memory
address
register
level
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
DEJ25953A
Other languages
English (en)
Other versions
DE1221037C2 (de
Inventor
Alvin Paul Mullery
Ralph Floyd Schauer
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE1221037B publication Critical patent/DE1221037B/de
Application granted granted Critical
Publication of DE1221037C2 publication Critical patent/DE1221037C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • 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/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • G06F16/902Indexing; Data structures therefor; Storage structures using directory or table look-up using more than one table in sequence, i.e. systems with three or more layers

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)

Description

BUNDESREPUBLIK DEUTSCHLAND
DEUTSCHES
PATENTAMT
AUSLEGESCHRIFT
Int. Cl.:
G06f
1 . ι „ί
Deutsche Kl.: 42 m -14
Nummer: 1221037 χ
Aktenzeichen: J 25953IX c/42 m
Anmeldetag: 2. Juni 1964
Auslegetag: 14. Juli 1966
Die Hauptpatentanmeldung betrifft ein Verfahren zur Speicherung hierarchisch geordneter Datenketten mit variabler Länge der Datenteile innerhalb der hierarchischen Niveaus und zur Entnahme von Datenteilen eines beliebigen Niveaus, bei welchem in eine zu speichernde Datenkette vor der Eingabe in den Speicher an den Anfang eines jeden hierarchischen Niveaus ein das Niveau markierendes Zeichen eingefügt wird, weiterhin die Eingabesteuerung des Speichers ein einlaufendes Niveauzeichen in einem Hilfsspeicher einträgt und die zugehörigen Daten in einer der Speicherstelle des Hilfsspeichers eindeutig zugeordneten Stelle des Hauptspeichers einträgt und schließlich bei der Suche nach einem Datenteil das zugehörige Niveauzeichen vorgegeben, der Hilfsspeicher nach diesem Zeichen durchsucht und aus der gefundenen HilfsSpeicheradresse die Hauptspeicheradresse ermittelt wird.
Gegenstand der Erfindung ist eine vorteilhafte Weiterbildung des Verfahrens nach der Hauptpatentanmeldung, welche dadurch eine wesentlich höhere Arbeitsgeschwindigkeit einer nach diesem Verfahren arbeitenden Speicheranordnung ermöglicht, daß ein Suchvorgang nach einer Unterbrechung nicht wieder bei der im Suchbefehl angegebenen Anfangsadresse beginnen muß, sondern bei der zuletzt anliegenden Adresse fortgesetzt werden kann. Dies wird bei einem Verfahren der eingangs genannten Art erfindungsgemäß dadurch erreicht, daß am Ende oder während eines Suchvorganges die zuletzt anliegende Speicheradresse an einer der Anfangsadresse einer gespeicherten Datenkette fest zugeordneten Hauptspeicherstelle abgespeichert und zur späteren Fortsetzung des Suchvorganges an dieser Stelle automatisch durch Aufrufen der genannten Anfangsadresse ausgelesen und an deren Stelle zur Adressierung der Datenkette verwendet wird.
Ein weiterer Gegenstand der Erfindung ist eine Anordnung zur Durchführung dieses Verfahrens, bei welcher nur ein geringer zusätzlicher Aufwand an Schaltungselementen erforderlich ist. Dies wird erfindungsgemäß dadurch erreicht, daß unter der Steuerung einer Suchbefehl-Auswerteeinrichtung eine der in einem Suchbefehlsregister enthaltenen Anfangsadressen einer gespeicherten Datenkette fest angeord- nete Hauptspeicherstelle über das Speicherpufferregister am Ende oder während eines Suchvorganges zum Abspeichern der zuletzt anliegenden Speicheradresse mit dem Ausgang und zu Beginn eines Suchvorganges zum Auslesen des dort abgespeicherten Wertes mit dem Eingang des Speicheradreßregisters verbindbar ist.
Verfahren zur Speicherung hierarchisch
geordneter Datenketten und Anordnung zur
Durchführung dieses Verfahrens
Zusatz zur Anmeldung: J 25844IX c/42 m —
Auslegeschrift 1214 906
Anmelder:
International Business Machines Corporation,
Armonk, N. Y. (V. St. A.)
Vertreter:
Dipl.-Ing. H. E. Böhmer, Patentanwalt,
Böblingen, Sindelfinger Str. 49
Als Erfinder benannt:
Alvin Paul Mullery, Chappaqua, N. Y.;
Ralph Floyd Schauer,
Putnam Valley, N. Y. (V. St. A.)
Beanspruchte Priorität:
V. St. v. Amerika vom 3. Juni 1963 (285 443) - -
Im folgenden wird die Erfindung an Hand eines in den Zeichnungen Fig. 1, 2 und 2a bis 2j, 3 und a bis 3 c sowie 4 dargestellten Ausführungsbeispieles näher beschrieben.
Die Verwendung eines hierarchisch organisierten Datenaufbaus und maschinellen Speichersystems mit veränderlicher Feldlänge bildet die Grundlage für eine direkte und logische Maschinensprache, die einen großen Teil der komplizierten Programmierung der heute gebräuchlichen Rechenautomaten vermeidet. Darin sind viele der Vorteile sowohl von Zuordnungspeichern als auch von Speichern mit beliebigem Zugriff kombiniert. Außerdem hat ein solches System den Vorteil, daß es Daten mit veränderlicher Feldlänge speichern und suchen kann. Bekanntlich ermöglicht es ein Zuordnungsspeicher, große Teile eines Speichers parallel auszulesen und auf bestimmte Daten in bestimmten kennzeichnenden Speicherplätzchen der Daten selbst zu prüfen, während es mit Hilfe eines Speichers mit wahlfreiem Zugriff
609 589/270
möglich ist, einzelne Datenabschnitte direkt dort, wo sie im Speicher stehen, zu adressieren, anstatt alle Daten nacheinander auszulesen, bis der gewünschte Teil gefunden ist. Durch die Verwendung eines Systems mit laufender Adressierung, wie es Gegenstand der Erfindung ist, wird eine solche Anordnung insofern noch weiter verbessert, als viele aufeinanderfolgende Suchvorgänge stark vereinfacht und automatisch ausgeführt werden können, wobei nur ein sehr geringer Aufwand an zusätzlichen Bauelementen in der Maschine erforderlich wird.
Die Erfindung bezieht sich im besonderen auf ein Suchbefehlsauslege- und -Steuersystem zur Verwendung in Verbindung mit einem hierarchisch organisierten Datensystem mit veränderlicher Feldlänge, das Kennsymbole für hierarchische Niveaus enthält und einen speziellen Hilfsspeicher verwendet, um das Auftreten dieser Symbole in den Daten zu überwachen. Während hier ein Ausführungsbeispiel eines Speicher- und Suchsystems beschrieben wird, um zu zeigen, wie eine solche Datenspeicheranordnung erlangt werden kann, bilden die Eingabe- und Suchsteuerschaltung an sich keinen Teil der Erfindung.
Um das Verständnis der Erfindung zu erleichtern, wird zunächst der zu verwendende hierarchisch organisierte Sprach- oder Datenaufbau erläutert. Danach folgt eine allgemeine Beschreibung des Suchbefehls, der in Verbindung mit dem System benutzt wird, um die laufende Adressierung von Daten in einem Datensatz zu erleichtern. Auf die allgemeine Beschreibung des Sprach- und Befehlsaufbaus folgt eine Beschreibung der Gesamtanordnung an Hand von Fig. 1. Danach werden dann die bedeutenderen Funktionsteile des Dateneingabe- und -suchsystems von Fig. 2 a bis 2h zusammen mit einem besonderen Beispiel für einen Eingabe- oder Speichervorgang für einen Datensatz beschrieben, um zu zeigen, wie die hierarchisch organisierten Daten in der vorliegenden Anordnung gespeichert werden. Schließlich werden die Einzelheiten der Einheit zum Auslegen von Suchbefehlen, die die vorliegende Erfindung darstellt, an Hand von Fig. 2i, 2j und 4 erläutert. In Verbindung mit dieser Erläuterung wird ein besonderes Beispiel für einen Suchvorgang angeführt, bei dem ein Suchbefehl durch die Steuereinheit zum Auslegen von Suchbefehlen analysiert und durch den Suchteil der Vorrichtung E, F, G, und H ausgeführt wird.
Datenform
Im allgemeinen besteht jede Gruppe von Daten aus Ketten von Symbolen. Eine 3 ■ 3-Matrix z. B. ist eine Kette von neun Symbolen. In diesem Falle sind die Symbole gewöhnlich Zahlen. Aber gewöhnlich ist darüber hinaus noch eine Hierarchie oder Gruppierung übergeordnet. Im Beispiel der Matrix besteht die Gruppierung in Symbolen, die in Zeilen enthalten sind, die ihrerseits in der Matrix enthalten sind. Das ist eine einfache Gruppierung. Die Sprache als hierarchische Ordnung betrachtet kann folgendermaßen gruppiert werden: Symbole (oder Wörter) bilden Sätze, diese Absätze, diese Kapitel, diese Bücher, letztere Büchereien. Das Symbol ist die kleinste bedeutungsvolle Gruppierung; ein Beispiel: der Buchstabe »b« hat keine Bedeutung, aber die Buchstaben »ball« stellen einen Begriff dar und bilden deshalb ein Symbol. Die vier Buchstaben b-a-1-1 sind Symbole für den wirklichen Ball. Eine andere Gruppierung ist die folgende:
Feld,
Aufzeichnung,
Gruppe,
Block,
Band,
Sammlung,
Bücherei.
Im Zusammenhang mit Rechnern werden die Begriffe Gruppierung oder Niveau oft gebraucht an Stellen, wo Feld das unterste oder am wenigsten bedeutungsvolle Glied der Hierarchie sein könnte. Die nachfolgend genannten Begriffe oder Niveaus steigen auf bis zu »Bücherei«, welches das höchste oder umfassendste Glied der Gruppe ist. Wie diese Gruppierungen auch benannt sein mögen, sie bestehen innerhalb der Daten, und sie werden bei der Datenorganisation nach der Erfindung durch besondere Kennmarkierungen bezeichnet. Diese Markierungen treten als besondere Symbole in einer Datenkette auf und bezeichnen das Ende einer Gruppe und den Beginn einer neuen. Es können viele Bezeichnungen für diese Markierungen gewählt werden; dies hängt zum Teil ab von den Namen, die man den Gruppierungen gegeben hat. Um unnötige Verwirrungen zu vermeiden, werden die nachfolgend bezeichneten hierarchischen Niveaus während der ganzen Beschreibung benutzt; man hat sich darüber klar zu sein, daß diese Bezeichnungen keine andere Bedeutung haben als eine bequeme Bezeichnung für die verschiedenen hierarchischen Niveaus.
Merkzeichen Niveaubezeichnung
Φ Symbol
© Begriff
® Satz
© Absatz
Kapitel
Buch
® Bücherei
Wie schon früher festgestellt, werden diese Merkzeichen zur Bezeichnung des Aufbaues einer Kette von Daten oder Befehlen benutzt und unmittelbar in die Kette eingefügt. Das Zeichen φ soll das Ende eines Symbols und den Beginn eines neuen markieren. Diese Merkzeichen bilden eine Hierarchie insofern, als @ auch φ einschließt, eine (D schließt eine © und eine © ein usw. Wenn mehr als ein Merkzeichen ohne trennende Buchstaben nebeneinander stehen, so werden alle außer dem höchsten vernachlässigt und weggelassen.
Wenn Daten dieser Form in die erfindungsgemäße Einrichtung eingegeben werden, so wird das Auftreten der verschiedenen Niveaus oder Merkzeichen (wie ©, ©, ® usw.) in einer zu speichernden Datenkette in besonderen Zeichenebenen des Speichers vermerkt. Jedes verfügbare Maschinenwort des Hauptspeichers hat eine zugehörige Speicherzelle in jeder dieser Ebenen, in denen das Auftreten dieses besonderen Datenniveaus im Maschinenwort durch eine binäre »Eins« bezeichnet wird.
Jeder Kette von Datensymbolen kann ein Name zugeordnet werden, der für die Zwecke der Erfindung als die höchste Niveaubezeichnung in der Datenkette betrachtet wird. Dieser Name kann aus der Kombination einer Anzahl von Buchstaben bestehen, wie etwa die Worte Alpha, Beta oder Gamma (zur Bezeichnung bestimmter Niveaus), und weitere Niveaus der Kette werden rein numerisch bezeichnet. Die einzige Beschränkung für solche Namen ist, daß eine solche Kombination von Buchstaben nicht mehr als eine Bedeutung haben. Diese Namen werden in einer Namentabelle zusammen mit ihren Adressen in einer Abteilung des Speichersystems untergebracht, und der Gebrauch des Namens durch den Programmierer bestimmt selbsttätig die Anfangsadresse für die folgende Kette. Für den Fachmann liegt es nahe, daß auch andere Verfahren zur Bestimmung der Anfangsadresse einer Kette benutzt werden können einschließlich der absoluten Adresse selbst.
Ein Beispiel für einen typischen Maschinenbefehl nach der vorliegenden Erfindung könnte folgendermaßen aussehen:
worin die Teile einfach bedeuten, daß die darauffolgende Zahl das Niveauzeichen vor dem Teil erläutert; so bedeutet φ j- 7 die siebte φ in der Datenkette, deren Name und Adresse A ist. A, B, C und D sind Namen von Datenketten und können, wie früher festgestellt, leicht auf eine Adresse bezogen werden. Der oben angeschriebene Befehl ist alles, was der Programmierer zur Durchführung der bezeichneten mathematischen Operation bei Benutzung des Speicher- und Suchsystems der vorliegenden Erfindung zu tun hat.
Um die Erleichterung im Programmaufbau zu zeigen, ist nachfolgend, wie bei einem bekannten Rechner (IBM 704) für dieselbe Operation erforderliche Programmgestaltung gezeigt:
05600004736
02000004737
04000004735
06010004740
-06000004741
(B -*. MQ)
(MQ-C-^AcC1MQ) (Acc + A -^-Acc) (AcC-^D1) (MQ -+D2)
wo 4735 die Adresse von A, 4736 die Adresse von B, 3737 die Adresse von C, 4740 die Adresse der ersten 36 Bits von D, 4741 die Adresse der letzten 36 Bits von D sind und MQ das Multiplikanden-Quotienten-Register und Acc den Akkumulator bezeichnen.
Die genannte Befehlsfolge stellt ein Minimum dar. Wenn nämlich A, B oder C Datenketten mit mehr als der für ein 704-Maschinenwort erlaubten Höchstzahl von Bits wären, dann wäre eine viel größere Zahl von Befehlen erforderlich.
Die Bedeutung der Gegenüberstellung liegt darin, zu zeigen, daß die absoluten Adressen A, B, C und£> vollständig von der Maschine erzeugt werden, in denen die Daten automatisch gesucht und gefunden werden, nachdem lediglich ihr Name in den Befehl eingefügt wurde. Das vorliegende System ist also eine Abkehr vom bekannten Stand der Technik, wo die Arbeitsweise der Bausteine von sehr strengen Regeln für die Datenform, Datenlänge und sogar deren Inhalt abhängt.
Nach Beschreibung der Datenform soll nun die zugehörige apparative Einrichtung behandelt werden. Eine Speichereinrichtung, die Datenformen der vorgeschriebenen Art verarbeitet, muß für Speicherung und Suche daran angepaßt sein. Das einfache Funktionsdiagramm der Fig. 1 erleichtert das Verständnis der folgenden Ausführungen.
Damit das erfindungsgemäße System arbeitsfähig ist und die einlaufenden Daten in das hierarchisch
ίο organisierte Speichersystem verteilen und unterbringen kann, müssen natürlich diese Daten vorher nach den Wünschen der Bedienungsperson aufgeteilt oder gruppiert worden sein. Das bedeutet, daß die einzelnen, zur Verwendung vorgesehenen Niveauzeichen (die © bis φ und entsprechende Bezeichnung »Symbol—Bücherei«) bei der Zusammenstellung oder Vorbereitung der Daten auf Lochkarten, Lochstreifen oder Magnetbändern eingefügt werden müssen. Wenn die Daten auf Dauerspeicherelemente,
ao wie Karten oder Bänder, aufgebracht werden, so kann diese Einfügung von Hand, z. B. durch Lochen vorgenommen werden. Bei einem solchen manuellen System werden die Niveauzeichen einfach in die Datenkette zwischen den Wörtern eingefügt, wie es vorhin bei einer üblichen 8-Bit-Darstellung gezeigt wurde. Die folgende Liste von aus 8 Bits bestehenden Zeichen soll nur ein Beispiel eines bei der Erfindung verwendbaren Codes sein; es kann selbstverständlich auch jeder andere Code benutzt werden, der mit dem in der Maschine benutzten Verschlüsselungssystem verträglich ist. Es wären dann lediglich die Vergleichseinrichtungen diesen Codes anzupassen.
Diese Niveauzeichen werden also an den richtigen Stellen in die Kette der einlaufenden, aus Zeichen zu 8 Bits bestehenden Daten eingefügt. Die Verwendung eines Schlüssels mit 8 Bits war deshalb erforderlich, weil die Niveauzeichen mit allen Eingabedaten vermischt verwendet werden und in einem vielseitigen Gesamtsystem mehr als zweihundert erkennbare Zeichen (alphanumerische Zeichen, Sonderzeichen und Niveauzeichen eingeschlossen) auftreten.
Bei der Beschreibung des Ausführungsbeispiels der Erfindung werden eine Reihe von Beschränkungen für das in den Speicher einzugebende Format der Daten vorgegeben; dieses bedeutet jedoch keine Einschränkung des Erfindungsgedankens. Die folgenden Daten, enthaltend Personalangaben eines Angestellten, sollen im Hauptspeicher untergebracht werden:
Φ 10100001
© 10100010
<s> 10100011
© 10100100
© 10100101
© 10100110
10100111
© 080964 © JOE " GLOPMEYER © 1956
WEST 4th STREET φ POUGHKEEPSIE,
N. Y. ©.
Im Hauptspeicher wird diese Datenkette so eingegeben, wie es die folgende Tabelle I zeigt.
Tabelle I
© * * P * T E * E Y
* M Φ 4 T © P
© * (D E 1 T N P S N
® * J Y 9 H N O I N
(D © O E 5 S N U E N
φ 0 E R 6 T N G N
8 S
P
N W R N H N N
0 G N E E N K N
9 L S E
6 O
4
N
Sonder- 'S kernebenen &ρ"
Hauptspeicher
Die obere Hälfte der Tabelle, die als Sonderkernebene, 2-D-Speicher bezeichnet ist, zeigt ganz links © bis ®; jeder dieser Kreise bedeutet eine besondere Kernebene. Die untere, mit Hauptspeicher bezeichnete Tabellenhälfte stellt die im Hauptspeicher tatsächlich in Binärform gespeicherte Datenkette dar, bei der natürlich alle alphabetischen Angaben in binärer Verschlüsselung wiedergegeben sein müssen. In der unteren Tabellenhälfte stellt jede vertikale Spalte ein Maschinenwort aus acht Zeichen dar. Für die Darstellung von acht aus je 8 Bits bestehenden Zeichen ist also ein Maschinenwort mit 64 Bitstellen nötig. Die Niveauzeichen φ bis ® treten bei jedem Maschinenwort immer in der ersten Stelle oder in der ersten Zeichenstelle auf und können niemals innerhalb des Wortes erscheinen. Wenn ein Teil der Datenkette zwischen zwei Niveauzeichen aus weniger als acht Zeichen besteht, so wird ein O-Zeichen (dargestellt durch den Buchstaben N) dort eingefügt, und der Suchvorgang oder das Auslesen übergeht selbsttätig diese Stellen und springt bis zur nächsten Stelle, die von 0 verschiedene Informationen enthält. Wenn zwischen zwei Niveauzeichen mehr als acht Zeichen liegen, so braucht die erste Stelle eines Maschinenwortes nicht notwendigerweise ein Niveauzeichen zu sein (s. dafür die Spalte 3, wo P die Fortsetzung des Zunamens [des Angestellten] aus der vorhergehenden Spalte ist und die erste Stelle des neuen Maschinenwortes einnimmt). Auch bei dieser Spalte 3 sind die nicht mit Zeichen besetzten Stellen am Ende des Wortes mit N gefüllt.
Die Sterne in der oberen Hälfte der Tabelle I zeigen an, daß im 2-D-Speicher eine binäre »1« (als Markierung eines Ereignisses) in den Sonderkernebenen an einer Adressenstelle eingetragen wurde, die einem Maschinenwort im Hauptspeicher entspricht und die ein Niveauzeichen enthält. Weiter ist darauf hinzuweisen, daß beim Auftreten einer © oder (D alle folgenden Niveauzeichen, d. h. (D, (D, Φ bzw. ©, in den Sonderkernebenen ebenfalls aufgezeichnet werden, an Stellen, die dem Maschinenwort entsprechen, in dem das höhere Niveauzeichen auftrat.
Allgemeine Beschreibung des Suchbefehls
Bei dem Datenspeichersystem und dem Suchverfahren, das einen HilfsSpeicher verwendet, in den Markierungen aller hierarchischen Niveauzeichen eingespeichert werden, wenn ein solches Symbol in einem Maschinenwort im Hauptspeicher erscheint, ergibt eine Durchsuchung dieses Hilfsspeichers die absoluten Adressen der verschiedenen hierarchischen Teile dieser Daten, wenn eine gewünschte Markierung in diesem Hüfsspeicher festgestellt worden ist. Die Hauptpatentanmeldung zeigt ein Suchsystem für eine solche Datenorganisation, bei dem eine Suche nach einem gegebenen Bit oder Teil der Information in dem Datensatz an der Anfangadresse dieses Datensatzes begonnen und der Anfang des gewünschten Datenteils oder -segments durch das Zählen von Markierungen im HilfsSpeicher von dieser Anfangsadresse ab gefunden wird. In dem vorstehenden Beispiel für einen typischen Maschinenbefehl, der eine solche Datenorganisation verwendet, wurden für verschiedene Informationsbits sehr einfache Adressen gebildet, z. B. wurde ein Datenstück angegeben als A © f ®. In diesem Suchbefehl stellte das A eine Maschinenadresse dar, die der Anfang des Datensatzes mit dem gewünschten Teil der Daten war; φ stellte das Niveau des Hilfsspeichers dar, in dem ein Suchvorgang stattfinden sollte, und die 7 bezeichnete die Anzahl von φ-Markierungen in dem solche Markierungen enthaltenden Teil des Hilfsspeichers, die gezählt werden müssen, bevor der gewünschte Datenteil erreicht ist. Diese Suchbefehle sind normalerweise beträchtlich kompliziert, da sie mehrere Folgen von Suchschriften erfordern, bevor das gewünschte Datenstück oder -segment gefunden wird. Zum Beispiel könnte ein Befehl wie A ® f 7, (D f 2, (D t 5, © f 3 ein typischer Maschinenbefehl sein, bei dem eine Suche in dem Hilfsspeicher abwärts durch vier hierarchische Niveaus hindurch fortzusetzen wäre, bevor das gewünschte Datenstück gefunden werden kann. In der nachstehend bei der Beschreibung der Erfindung zu verwendenden Terminologie bildet der Buchstabe^ (Adresse) den
Operanden, und die Kombination aus einem Kreisoder Niveauzeichen und einer Adressenanzeige, d. h. dem vertikalen Pfeil im vorstehenden Beispiel plus der Zahl, bezeichnet ein Suchadjektiv. In den meisten Fällen umfaßt ein Suchbefehl einen Operanden und ein oder mehrere Adjektive. Der einfache in einem Adjektiv erscheinende Pfeil zeigt an, daß die Suche nach dem betreffenden Niveauzeichen bei der Anfangsadresse des Datensatzes beginnt, wenn es das erste Adjektiv ist, und bedeutet, daß sie bei der Adresse des vorhergehenden Adjektivs beginnt, wenn diese Suchanzeige nicht in der ersten Adjektivposition enthalten ist.
Gemäß der Erfindung werden zwei zusätzliche Suchanzeigen vorgesehen, nämlich eine durch das Symbol $ dargestellte Anzeige für die »laufende Adresse« und eine durch das Symbol f dargestellte Anzeige für die »Adresseneinstellung«. Das Symbol für die »laufende Adresse« bedeutet, daß die Suche nach dem Niveauzeichen des betreffenden Adjektivs an der laufenden Adresse für den Datensatz beginnen soll. Diese Adresse erhält man aus einer speziellen Speicherstelle, die dafür im Hauptspeicher für jeden Datensatz vorgesehen ist. Außerdem sieht die Anzeige vor, daß die gemäß diesem Adjektiv gefundene Adresse automatisch in der Speicherstelle für die laufende Adresse gespeichert wird, wenn der durch das besagte Adjektiv vorgeschriebene Suchvorgang abgeschlossen ist.
Der Suchbefehl »Adresseneinstellung« ($) besagt, daß beim Antreffen dieses Symbols in einem Suchadjektiv der Suchvorgang an der Anfangsadresse des Datensatzes oder an der zuletzt erlangten Adresse aus dem vorherigen Adjektiv in einem Suchbefehl beginnen soll, daß aber beim Auffinden der Adresse für das betreffende Adjektiv diese Adresse in der speziellen Speicherstelle für die laufende Adresse, die in dem System vorgesehen ist, gespeichert werden soll.
Aus der vorstehenden Beschreibung ist zu entnehmen, daß das erste Adjektiv für einen gegebenen Suchbefehl normalerweise entweder die einfache Adressenanzeige, die besagt, daß ein Suchvorgang an der Anfangsadresse eines Datensatzes beginnen soll, oder eine laufende Adressenanzeige, die besagt, daß ein bestimmter Suchvorgang an der Stelle der laufenden Adresse erfolgen soll, enthält. Der Befehl »Adresseneinstellung« ($) kann an jeder beliebigen Stelle in einem Suchbefehl verwendet werden, d. h. an jeder Adjektivstelle, wo eine laufende Adressenstelle für eine nachfolgende Suche eingestellt werden soll. Wenn es also im vorstehenden Beispiel erwünscht wäre, einen Suchvorgang in einem an Adresse .,4 beginnenden Datensatz, aber an der Adresse der zuletzt aufgefundenen Information in diesem Datensatz zu beginnen, würde nach der @ die Anzeige für die laufende Adresse ($) eingesetzt. Die Anzeige für die laufende Adresse veranlaßt weiterhin das Einstellen der neuen laufenden Adresse für dieses Adjektiv in der dafür vorgesehenen Speicherstelle, d. h. der laufenden Adresse, die für diesen Datensatz eingestellt wird, wenn nicht irgendwann später eine Anzeige für die eingestellte Adresse verwendet wird. Wenn es z. B. bekannt ist, daß das zweite hierarchische Niveau, d. h. ©, eine bequeme Stelle zum Markieren der laufenden Adresse ist, lassen sich die nachfolgenden Suchvorgänge leicht in Beziehung zu der laufenden Adresse an dieser Stelle setzen. Hier würde eine Anzeige für die Adresseneinstellung ($) in dem Adressenadjektiv für die ©-Stufe verwendet werden, um die Speicherung der laufenden Adresse für dieses Adjektiv zu bewirken.
Bei Verwendung der oben erläuterten Suchbefehle erreicht man eine sehr vielseitige Suchprogrammierung. Ein Suchvorgang in einem gegebenen Datensatz kann wahlweise am Anfang des Satzes
ίο oder an einer laufenden Adresse beginnen, die irgendwo weiter unten in dem Satz steht; das bleibt der Wahl des Programmierers überlassen. Ebenso kann der Programmierer nach seiner Wahl neue laufende Adressen für gegebene Datensätze in einem bestimmten Niveau oder an einer bestimmten Stelle in dem Suchbefehl vorsehen, indem er die richtige Adressenanzeige mit dem Adjektiv für das betreffende Niveau vorsieht.
Wie bereits beschrieben, muß für jeden Datensatz
ao eine spezielle Speicherstelle für die Speicherung der laufenden Adresse vorgesehen werden. In dem hier beschriebenen Ausführungsbeispiel der Erfindung ist die spezielle Speicherstelle am Beginn des Datensatzes vorgesehen, und es wird angenommen, daß sie sich an der Datensatzadresse befindet. Es versteht sich jedoch, daß es möglich wäre, diese Speicherstelle an jeder beliebigen in bezug auf die Anfangsadresse feststehenden Stelle in einem Datensatz vorzusehen, solange die spezielle Speicherstelle der Suchsteuerschaltung für das Auslesen der laufenden Adresse automatisch zugänglich ist, und zwar einzig und allein auf Grund der Datensatzadresse. Die Wichtigkeit dieses Merkmals wird auch noch deutlich bei der Beschreibung eines anderen Ausführungsbeispiels der Erfindung, bei dem es möglich ist, mehr als eine laufende Adresse für einen gegebenen Datensatz vorzusehen. Eine solche spezielle Speicherstelle umfaßt beispielsweise acht Zeichen oder ein Maschinenwort. Nach Festlegen dieser Speicherstelle in dem Datensatz kann die laufende Adresse in jeden beliebigen Teil davon eingeschrieben werden. Da diese spezielle Speicherstelle für die laufende Adresse kein Niveauzeichen enthält, erscheint auch keine Markierung dafür an der zugeordneten Stelle in den speziellen Kernebenen des Hilfsspeichers; daher kann ein Suchvorgang durch einen Datensatz an der speziellen Speicherstelle beginnen, ohne daß irgendwelche Fehler auftreten oder besondere Bedingungen an die Suchbefehle erforderlieh werden.
In dem hier beschriebenen Ausführungsbeispiel der Erfindung werden in dem aus acht Zeichen bestehenden Maschinenwort die Zeichenstellen fünf und sechs speziell für das Speichern der laufenden Adresse verwendet. Da aber bekanntlich nur vierzehn Bitstellen nötig sind, um eine gegebene binäre X-F-Adresse in einem 128 · 128-3-P-Speicher zu speichern, enthält die zugeteilte Zeichenspeicherstelle für die laufende Adresse zwei unbenutzte Bitstellen, die beim Auslesen oder Einschreiben einer laufenden Adresse im Speicher einfach außer acht gelassen werden.
Gemäß der Erfindung besteht also ein Suchbefehl aus einem Operanden, d. h. einer Adresse, einer Reihe von Adjektiven oder Niveauzählbefehlen mit je einem Niveauzeichen, das das Niveau des Hilfsspeichers, in der der betreffende Suchvorgang durchzuführen ist, angibt, einer Adressenanzeigemarkie-
609 589/270
11 12
rung, d. h. $ oder f, einer Richtungsanzeige dafür, in die richtige Kernebene des 2-D-Speichers, zählt
ob die Suche von der in dem Adjektiv bezeichneten selbsttätig die Zeichen in einem Maschinenwort, so
Adresse aus nach links oder nach rechts erfolgen daß jeweils acht Zeichen in den Hauptspeicher ge-
soll, sowie der Anzahl von Markierungen, die bis langen, und bringt selbsttätig ein Zeichen aus dem
zum Abschluß einer erfolgreichen Suche erreicht 5 Speicherregister in den Hauptspeicher, wenn ein
sein muß. zweites Niveauzeichen auftritt, bevor acht Zeichen
In der von dem vorliegenden Ausführungsbeispiel im Speicherregister eingelaufen sind; schließlich beverwendeten Maschinensprache besteht ein solcher sorgt dieser Teil noch die Einfügung von O-Zeichen Suchbefehl aus einer Reihe von 8-Bit-Zeichen. Dabei in der richtigen Stelle des Speicherregisters für die enthalten die ersten beiden Zeichen jedes Such- io spätere Übertragung zum Hauptspeicher. Die Funkbefehls den Operanden, der automatisch zum Ope- tion des Teils B wird vom Eingabetaktgeber C gerandregister weitergeleitet wird, wie es noch näher steuert,
•erläutert wird. Die Daten werden also aus dem Teil B unmittelbar
Die Adjektivteile des Suchbefehls bestehen aus in das Speicherregister gebracht, das sie, gesteuert einer oder mehreren Gruppierungen zu je fünf 15 vom Taktgeber, zum Hauptspeicher weitergibt. Die Zeichen. Jede 5-Zeichen-Gruppierung ist wie folgt Niveauzeichen werden durch das im Teil B enthaltene angeordnet: Das erste Zeichen gibt das Niveau- und später noch zu beschreibende Zählregister in zeichen und das zweite Zeichen die zu verwendende die richtigen Stellen des 2-D-Speichers eingetragen. Adressierungsart oder Adressenanzeige an, d.h. f, Der HauptspeicherteilD enthält den 2-D-Speicher $ oder $. Das dritte Zeichen ist eine Richtungsanzeige, 20 und den 3-D-Speicher sowie die verschiedenen dabei bedeutet ein Pluszeichen (+), daß ein Such- Register und Taktgeber; er ist in Aufbau und Vorgang nach rechts weiterschreiten soll, und ein Arbeitsweise ohne Besonderheiten; die Beschreibung Minuszeichen (—), daß nach links gesucht werden seiner Einzelheiten ist deshalb entbehrlich. Aus der soll. Die vierte und die fünfte Zeichenstelle des Beschreibung für Fig. 3 wird später hervorgehen, Adjektivs sind die Zählziffern, es kann also bis 99 25 wie die Adressen für die Speicher 2D und 3D abgezählt werden. geleitet werden.
Die in der vorliegenden' Beschreibung benutzten
Anordnung zur Ausführung des Verfahrens Speicher sind Magnetkernspeicher; die Erfindung
könnte natürlich auch mit anderen Speichertypen
F i g. 1 stellt in Form eines Blockdiagramms ein 30 ausgeübt werden. Im Beispiel hat der Speicher 3 D
Speichersystem für einen Rechenautomaten dar, das in Z- und Y-Richtung die 128 Bits und ist 64 Bits
die Prinzipien der Erfindung enthält. Das System tief; er kann also Zeichen zu 8 Bits und Wörter zu
umfaßt eine Einrichtung zur automatischen Eingabe acht Zeichen aufnehmen, wie früher schon fest-
von hierarchisch organisierten Daten mit veränder- gestellt wurde. Die Sonderkernebenen enthalten
licher Feldlänge, die Symbole zum Identifizieren 35 ebenso in X- und Y-Richtung je 128 Bits; sie be-
hierarchischer Niveaus enthalten, wie es oben ange- sitzen also eine Bitstelle für jedes der 64 Maschinen-
deutet ist. Diese Eingabevorrichtung enthält eine Wörter im zugeordneten Hauptspeicher.
Einrichtung, die mittels der Niveauzeichen automa- In Fig. 3 sind die Sonderkernspeicherebeneh
tisch die Daten in die hierarchischen Niveaus aufteilt räumlich unmittelbar über dem 3-D-Speicher ange-
und sie in dem 3-D-Speicher speichert und gleich- 40 ordnet; dieses ist die bequemste Art der Anordnung,
zeitig die nötigen Markierungen in den verschiedenen Natürlich können diese Ebenen auch räumlich vom
Teilen des 2-D-Hilfsspeichers einträgt. Weiterhin ist Hauptspeicher getrennt werden, die Voraussetzung
eine Einrichtung vorgesehen, die einen Suchbefehl ist nur, daß alle Adressen des einen Speichers genau
des oben beschriebenen Typs auswertet und eine einer Adresse des anderen Speichers zugeordnet sind.
Suche nach Daten innerhalb dieser Speicheranord- 45 Die Teile A, B, C und D bewirken die Daten-
nung entsprechend dem Suchbefehl durchführt. eingabe in den Hauptspeicher entsprechend der
Der mit '»Eingabepuffer« bezeichnete Teil A hat hierarchischen Ordnung von Tabelle I. Diese Ein-
die Aufgabe, Daten aus einem mit relativ niedriger gabevorgänge laufen vollkommen selbsttätig ab; die
Geschwindigkeit arbeitenden Eingabesystem zu ent- Bedienungsperson braucht dabei nicht einzugreifen,
nehmen, sie vorübergehend zu speichern und sie mit 50 Die Teile E, F, G und H veranlassen die selbsttätige
der höheren Arbeitsgeschwindigkeit der Maschine in Suche nach den von der Eingabeseite gespeicherten
die Maschine auszugeben. Er funktioniert als vor- Daten. Der Teil D ist bei beiden Vorgängen beteiligt,
übergehender Pufferspeicher und ermöglicht es der Der Teil E enthält eine Reihe von Registern und
eigentlichen Maschine, mit optimaler Leistung zu Kippkreisen, denen vom Programm Information
arbeiten. 55 darüber zugeleitet wird, wonach im Hauptspeicher
Die Daten fließen aus diesem Eingabepuffer- zu suchen ist. Diese Suchinformation beginnt mit
speicher in den »Eingabevergleichs- und -Steuer- einer Anfangsadresse und gibt weiter an, welche
teil« B. Die Eingangsdaten werden aus dem Eingabe- Niveauzeichen von dieser Adresse ausgehend im
pufferspeicher A Zeichen für Zeichen entnommen Hauptspeicher festzustellen sind. Diese in den Teil E
und in die Vergleichs- und Steuerschaltung ein- 60 eingegebene Information wird von dort Schritt für
gebracht. Schritt zum Niveausuchringteil F weitergegeben.
Teil B prüft jedes Zeichen und stellt fest, ob es Dieser enthält außer dem Suchrmg Steuerschaltungeh eines der gewählten Niveauzeichen (© bis ®) ist, zur Durchgabe von Daten aus einer der Sonderkern- und gliedert bejahendenfalls die Datenkette ent- ebenen 2D. Vom TeilF wird die in den Sonderkenb· sprechend den vorher aufgestellten Regeln auf. Ent- 65 ebenen gespeicherte Information abgesucht und gesprechend der Tabelle I setzt dieser Teil selbsttätig zählt, bis ein besonderes Bit in dieser Kernebene das Niveauzeichen in die erste Stelle eines Maschinen- gefunden ist. Dann wird entweder dieses Bit in das Wortes, sorgt für die Eingabe des »Ereignis«-Zeichens Sonderregister (TeilZ?) übertragen oder: aus Teil E
der nächste Suchschritt angefordert, je nachdem wie der Suchbefehl lautet. Die Arbeit der Teile E, F und H wird von dem mit G bezeichneten Suchtaktgeber gesteuert, der sehr ähnlich ausgebildet ist wie Teil C.
Der als »Befehlsauslegeeinheit« bezeichnete Block/ besteht aus den Registern und der Schaltungsanordnung, die nötig sind, um die oben beschriebenen Suchbefehle, wie sie im vorliegenden System verwendet werden, auszulegen. Die Schaltungsanordnung enthält die nötigen Register, Übertragungseinrichtungen, Vergleichsschaltungen und anderen logischen Schaltungen zum Empfangen der Anfangsadresse des Datensatzes, in dem ein Suchvorgang stattfinden soll, oder des Operanden, wie er oben genannt wird, und um nacheinander aus dem Speicher die Suchprogrammschritte auszulesen, die Schritte in ihre aufeinanderfolgenden Segmente zu unterteilen und die erforderlichen Suchoperationen auszuführen, bis ein Suchbefehl abgeschlossen ist. Die Vergleichsschaltung stellt weiter aus jedem Adjektiv fest, in welchem hierarchischen Niveau ein Suchvorgang stattfinden muß, legt den Verbadressen-Anzeigeteil des Adjektivs aus, um festzustellen, an welcher Adresse eine Suchfolge beginnen muß, bestimmt die Richtung des Suchvorgangs und schließlich die Anzahl der Zählvorgänge innerhalb eines gegebenen Niveaus, die festgestellt werden muß, bevor ein erfolgreicher Vergleich von der Vergleichsschaltung vorgenommen werden kann. Außerdem enthält die Einheit eine Steuereinrichtung, die die Speicherstelle der laufenden Adresse im Hauptspeicher auf den neuesten Stand bringt, wenn sie durch den Suchbefehl entsprechend instruiert wird.
Block / besteht aus einer Reihe von monostabilen Multivibratoren, die den Taktgeber für die Befehlseinheit bilden. Sein Aufbau und seine Wirkungsweise entsprechen dem Eingangstaktgeberteil C und dem Suchtaktgeberteil D, die oben beschrieben sind.
Nachdem nun das in F i g. 1 gezeigte Gesamtsystem, das sich in drei Hauptteile aufteilen läßt, nämlich den Eingabeteil, den Suchteil und den die Auslegung von Suchbefehlen betreffenden Teil, allgemein beschrieben worden ist, sei im Zusammenhang mit den Fig. 2a bis 2i die Steuereinrichtung für dieses System näher erläutert. Dabei sind die in den Blockschaltungen enthaltenen und nicht gezeigten Schaltungseinzelheiten von konventioneller Art und bedürfen keiner näheren. Erläuterung. In den Zeichnungen der Fig. 2a bis 2h sind durch punktierte Linien Teile A bis H umgrenzt, die den Teilen A bis H der F i g. 1 entsprechen.
Der Teilet (Fig. 2a) zeigt in Blockform den Eingabepuffer. Er besteht aus einer Vielzahl von Verriegelungsschaltungen, wie sie z. B. in dem Buch »Arithmetic Operations in Digital Computers« von R. K. Richards, D. van Nostrand, Inc., New York, Fig. 2 bis 14 a, gezeigt sind. Der Puffer enthält zwölf Stufen, was bedeutet, daß bis zu zwölf Zeichen darin gespeichert werden können. Die Zahl der Stufen ist zum Teil von dem verwendeten Eingabemedium abhängig (Lochstreifen oder Magnetband). Der Puffer wird von den Eingabe- und Ausgabe-Steuerringen 12 bzw. 11 gesteuert, die bestimmen, welche Stufe beim Eingeben oder Entnehmen von Daten benutzt werden soll.
Die Information gelangt in den Eingabepuffer unter der Steuerung des Eingabemediums, das, wie gesagt, Lochstreifen, Magnetband, Magnettrommel od. dgl. sein kann. Sowie ein Zeichen auf der Eingabeleitung vorliegt, wird auch ein Fortschaltimpuls geliefert, der den Eingabesteuerring um eine Position fortschaltet, so daß die Zeichen in aufeinanderfolgende Stellen des Puffers 10 eingegeben werden. Die Steuerringe sind von üblicher Art, beispielsweise sind sie in dem genannten Buch von Richards in den Fig. 7 bis 13 a gezeigt. Die Zahl der Speicherstellen des
ίο Eingabepuffers 10 kann also geändert werden; die einzige Anforderung ist, daß er groß genug ist, um ein ganzes Speicherwort aufzunehmen, ohne daß auf die Nachlieferung eines Restes gewartet werden muß, und weiter, daß jeweils eine freie Speicherstelle verfügbar ist, so daß die Eingabe nicht durch die Ausgabegeschwindigkeit beeinflußt wird. Praktisch ist die Ausgabe aus dem Puffer 10 soviel schneller wie die übliche Eingabe, daß die zweite Bedingung nie ein Problem bildet.
Der Zähler 14 verhindert eine Ausgabe aus dem Puffer 10, bevor wenigstens acht Zeichen darin gespeichert wurden. Diese Zahl wurde gewählt, weil das Speicherregister und der Hauptspeicher zur Aufnahme von Maschinenwörtern mit acht Zeichen ausgelegt sind und weil die Arbeit des Systems gefördert wird durch die Sicherheit, daß immer wenigstens ein Maschinenwort im Eingabepuffer enthalten ist, ehe Vergleich Ausgabe und Speicherung beginnen. Unter Umständen kann auf die Verwendung dieses Zählers auch ganz verzichtet werden.
Fig. 2b (enthaltend Teilß) zeigt die Niveauvergleicher- und Steuerschaltungen zur Prüfung der Eingangsdaten aus dem Eingabepuffer 10 hinsichtlich der früher gegebenen organisatorischen Regeln.
Teil I? übt im Zusammenwirken mit dem Eingabetaktgeber (TeilC [Fig. 2d]) folgende Funktionen aus.
(a) Bei jedem Zeichen wird festgestellt, ob es ein Niveauzeichen ist;
(b) sobald acht Zeichen im Pufferregister 96 enthalten sind, wird ein Speicherzyklus eingeleitet;
(c) beim Vorfinden eines zweiten Niveauzeichens wird dessen Speicherung im Pufferregister in
der ausschließlich dafür vorgesehenen Stelle veranlaßt;
(d) es wird das Ende einer Datenfolge geprüft, und
(e) die Niveauzeichen werden in den Sonderkernebenen des 2-D-Speichers eingegeben.
Eines der wesentlichen Bestandteile der Teile C und D (F i g. 2 d bzw. 2 c) ist der Niveauvergleicher, in dem jedes einlaufende Zeichen mit den sieben Niveauzeichen parallel verglichen wird. Die Vergleichskippschaltung 64 verhindert den Durchlaß von mehr als einem Niveauzeichen pro Maschinenwort, und ihre Arbeitsweise wird später ausführlicher beschrieben. Der Vergleichszähler 62 bestimmt zusammen mit der Vergleichskippschaltung die Zahl der Niveauzeichen innerhalb einer Datenkette, insofern, als er die Speicherung dieser Zeichen im Speicherregister und ihre Stelle im Maschinenwort beein-
flußt. .
Das Speicherregister 96 (F i g. 2 c) ist ebenfalls ein konventionelles Magnetkernregister. Der Steuerring 102 bestimmt in üblicher Weise, in welche Stelle des
Registers aufeinanderfolgende Binärzeichen einzugeben sind. Die Eingangswerte gelangen aus dem Register 6 (Fig. 2b), und gesteuert von den Vergleichsschaltungen, in das Speicherregister.
Nach einem erfolgreichen Vergleich in der Einrichtung 56 wird eine der Leitungen 77 erregt; durch Einwirkung der Kippschaltung 64 wird dann die Torschaltung 68 durchlässig, und eine Stelle des Niveaurings 58 wird eingestellt. Dieser Niveauring bestimmt die höchste Stelle eines Maschinenwortes, in welche in der Sonderkernebene ein Niveauzeichen geschrieben wird, und steuert die folgende Eingabe solcher Niveauzeichen und bestimmt die Stellen in den Sonderkernebenen niedrigeren Niveaus. Der Ring selbst ist ein Abwärtszähler üblicher Bauart.
■ Der Eingabetaktgeber C (F i g. 2 d) ist eine bekannte Anordnung von monostabilen Kippschaltungen. Die Arbeitsweise der einzelnen Schaltelemente soll später erläutert werden; hier darf festgestellt werden, daß die Stufen 1 bis 5 die Speicherung' aufeinanderfolgender Zeichen im Speicherregister steuern und so eine Schleife bilden, bis ein zweites Niveauzeichen in einer Datenkette gefunden oder bis acht Zeichen im Speicherregister gespeichert sind; im letzteren Falle veranlaßt die Stufe 6 des Taktgebers einen Speicherzyklus. Die Stufen 7 und 8 des Taktgebers steuern die Speicherung von Markierungen in den Sonderkernebenen und veranlassen ■das Fortschalten des Niveaurings 58, sobald eine Marke in einer Ebene eingeschrieben ist und bis alle solche Marken eingeschrieben sind.
Der Teil D läßt sich zunächst am besten in Verbindung mit den Fig. 3a bis 3c beschreiben, die eine Blockdarstellung der in Fig. 2c mit D bezeichneten Einrichtung wiedergibt und dort mit Speichersteuerung und Speicher bezeichnet ist. Dieser Teil enthält den Hauptspeicher 900 (F i g. 3 b) und den Hilfsspeicher 901; letzterer enthält eine Anzahl von zwei D-Speicherebenen, jede zur Aufnahme eines bestimmten Niveauzeichens. Es wurden ■ nur drei solche Ebenen dargestellt und mit den Niveauzeichen ©, φ und (D versehen, die sie aufzunehmen haben. Fig. 3 zeigt außerdem das Speicheradreßregister 300, das für jeden Lese- oder Schreibvorgang beim 3-D- oder beim 2-D-Speicher die Adressen in bekannter Weise liefert. Weiter sind dargestellt die Entschlüsselungsmatrizen und Kerntreiber für die X- und Y-Leitungen im 3-D-Speicher, ebenso die Mittel für die Treiberauswahl und -steuerung des 2-D-Speichers aus dem Speicheradreßregister 300 und die getrennten Einrichtungen zum Schreiben eines einzelnen Bits in den 2-D-Speicher beim Eingabezyklus und für das Lesen einer vollständigen Zeile aus dem 2-£>-Speicher beim Suchzyklus.
Das Speicherregister96 (Fig. 3c) ist identisch mit dem Register gleicher Bezeichnung in Fig. 2c. Dieses Register kann nämlich für den Schreib- und Lesevorgang beim Hauptspeicher 900 benutzt werden. Das Register 312 (128 Bits) empfängt Information aus den 2-D-Speicherebenen 902, 904, 906 usw. (Fig. 3b). Durch einen Befehl kann diese Information zum Register 610 (Fig. 2g) der Suchschaltung übertragen werden.
Um Information in dem System zu speichern, wird zunächst die Adresse für, die Einführung eines Bits in das Speicheradreßregister 300 eingegeben. Diese Adresse wird aus einem Hilfsspeicher 301 (Fig. 3a) gewonnen, der als Verfugbarkeitsliste bezeichnet werden kann und einfach ein Zähler sein mag, der mit der Wortstelle Null des Hauptspeichers beginnt und bis zur vollen Wortzahl von 16784 weiterschaltet, die der Kapazität des Hauptspeichers von 128 · 128 Wörtern entspricht. Diese Art der Speicherplatzwahl ist bekannt.
Es sei angenommen, daß im Register 300 eine Adresse und im Speicherregister 96 ein Maschinenwort bereit zur Speicherung vorliegen; der X-Teil
ίο der Adresse wird dann von den Entschlüsselungsmatrizen 540 und 542 entschlüsselt, durch die Torschaltungen 546 und 544 zum Treiber 548 (8 · 16 Kerne) geleitet und verursacht auf einer ausgewählten X-Leitung des Hauptspeichers einen HaIbwählimpuls. Dasselbe geschieht für den Γ-Teil der Adresse mittels der Entschlüsseier 541 und des Treibers 549. Nachdem dann noch über die Torschaltungen 908 (F i g. 3 c) die Sperrtreiber 910 entsprechend dem im Speicherregister 96 enthaltenen Wort betätigt sind, wird dieses im Hauptspeicher eingetragen. Gleichzeitig mit der Speicherung des Maschinenwortes aus dem Speicherregister 96 in den Hauptspeicher 900 wird ein 1-Bit in die entsprechende Stelle der Niveauzeichenebenen 902, 904, 906 usw.
eingetragen. Dazu wird ein Halbwahümpuls auf die betreffenden X- und F-Treiberleitungen in den gewählten Niveauebenen gegeben. Die Eintragung eines solchen Bits in den 2-D-Teil 901 an einer dem Maschinenwort des Hauptspeichers 900 entsprechenden Adresse geschieht folgendermaßen:
Der X-Teil der Adresse des Adreßregisters 300 wird über die Leitung 912, den Entschlüsseier 919 und das Tor 916 zur Schreibtreibermatrix 918 geleitet. Dadurch gelangt ein Halbwahlimpuls zu einem der Tore 922, 924 und 926 (usw.), die vom Niveauring 58 (Fig. 2b) gesteuert werden. Gleichzeitig mit den Halbwahlimpulsen auf einer der X-Leitungen wird der F-Teil der Adresse im Adreßregister 300 vom Entschlüsseier 310 entschlüsselt und gelangt zur Treibermatrix 552 (Fig. 3c), die auf einer der 128 F-Treiberleitungen einen Halbwahlimpuls erzeugt. Die Auswahl der Ebene erfolgt auch hier wieder durch den Niveauring 58 mittels eines der Tore 928, 930, 932 usw. Da, wie schon gesagt, die Niveauzeichen auch in alle Ebenen niedrigerer Ordnung eingegeben werden, veranlaßt der Niveauring 58 selbsttätig das Öffnen der entsprechenden Tore. Einzelheiten darüber werden noch beschrieben.
Beim Suchvorgang stellt das Lesen einer Informationszeile aus einer bestimmten Niveauebene und die Bildung einer Anfangs- und Endadresse für eine bestimmte Datenkette den erfinderischen TeE des Suchvorgangs dar, da das bloße Lesen eines oder mehrerer Wörter aus dem Hauptspeicher 900 in bekannter Weise erfolgt. Der Erfindungsgedanke des Systems beruht in der Art und Weise, in der die Adresse für die bestimmte, auszulesende Datenkette mit Hilfe der Niveauebenen ermittelt wird. Einzelheiten darüber sollen im Zusammenhang mit der allgemeinen Beschreibung des Teils F (Fig. 2f) und der Beschreibung des Suchvorganges gegeben werden. Das System verlangt, daß die Suche an einer bestimmten Stelle oder Adresse des Speichers beginnt, die vom Suchbefehl festgelegt wird; diese Suchbeginnadresse des Speichers wird zum •Speicheradreßregister 300 geleitet. Es muß dabei die gesamte X-Zeile ausgelesen werden, in der die Anfangsadresse enthalten ist; deshalb wird der X-Teil der
Adresse aus dem Register 300 über die Leitung 912 zum Entschlüsseler 914 gebracht und gelangt hinter diesem jetzt durch das Tor 934 (Fig. 3b) zur Treibermatrix 936. Dieser Treiber 936 liefert (im Gegensatz zum Treiber 918) volle Auswahlimpulse und bedarf also keiner Koinzidenz mit Y-Impulsen. Ein solches Ausleseverfahren ist bekannt. Wie früher beim Schreibvorgang erläutert, gelangt ein solcher Vollimpuls durch eines der Tore 922, 924, 926 zu den nachgeordneten Niveauebenen. Die Auswahl der Torschaltungen geschieht durch das Programm mittels des Registers 528 (Fig. 2e). Wenn der Vollwahlimpuls des Treibers 936 z. B. der Niveauebene 902 für das Niveau φ zugeführt wird, so wird die gesamte gewählte X-Leitung auf die Y-Leitungen der Sammelleitung 938 ausgelesen, welche beim Lesevorgang als Abfühlleitung dient. Alle 128 Leiter der Sammelleitung 938 passieren die Tore 304 und 538, und ihre Signale gelangen zum Abfühlverstärker 940 und weiter zum Register 312. Aus diesem, 128 Bits enthaltenden Register können sie durch das Tor 314 zum Register 610 (Fig. 2g) geleitet werden. Die anderen Sonderkernebenen sind ebenso aufgebaut und einzeln adressierbar.
Die beschriebene Art des 2-D-Teils von Speicher 901 wurde deshalb als Ausführungsbeispiel gewählt, weil sich hierbei besonders leicht zeigen läßt, wie die X- und Y-Adressen aus dem Adreßregister 300 des Hauptspeichers entnommen und unmittelbar zur Auswahl bestimmter Stellen des 2-D-Speichers benutzt werden können, die mit der Stelle korrespondieren, in der im Hauptspeicher ein Maschinenwort gespeichert ist. Es sind jedoch auch andere, kompliziertere Speichersysteme möglich· Voraussetzung ist, daß eine Stelle im HilfsSpeicher wählbar ist, dessen Adresse eindeutig mit einer bestimmten Adresse des Hauptspeichers korrespondiert.
Der Hauptspeicher 900 und seine Steuerschaltungen mit X- und Y-Wicklungen sowie mit Abfühl- und Sperrwicklungen ist in bekannter Weise aufgebaut. Dasselbe gilt für die Adreßregister, Entschlüsselungsmatrizen, Kerntreiber usw., wie sie in den F i g. 2 und 3 der vorliegenden Beschreibung enthalten sind.
Die Steuerung der verschiedenen Operationen eines solchen Speichers wird allgemein durch das Programm bestimmt, welches aussagt, ob Informationen aus einem externen Speicher in den Hauptspeicher einzuspeisen oder ob bestimmte Datensätze an bestimmten Adressen aus dem Speicher zu entnehmen sind. Nach Empfang des Programmbefehls ist ein solches Speichersteuersystem im wesentlichen autonom und führt den Befehl automatisch aus; nach Ausführung eines Befehls ist es bereit, mit dem nächsten Programmschritt fortzufahren. Die hier gezeigten und beschriebenen 2-D- und 3-D-Speicher sind konventionell. Der in F i g. 3 b gezeigte Speichersteuerungstaktgeber 101 empfängt im wesentlichen vier Befehle, und zwar Schreiben 2-D, Lesen 2-D, Schreiben 3-D und Lesen 3-D. Beim Empfang eines dieser Signale sowie Belieferung mit den richtigen Adressen im Speicheradressenregister und Daten im Speicherpufferregister führt der Speicher diese angeforderte Operation automatisch in herkömmlicher Weise aus.
Die Teilet, B, C und D des Speichers und der Speichersteuerungen bilden den Dateneingabeteil des Systems. Es sollen nun die in den Fig. 2e bis 2h enthaltenen Teile E, F, G und H, nämlich die Suchteile, in großen Zügen beschrieben werden. Der TeilE (Fig. 2e) enthält ein Register 516 mit der Anfangsadresse eines Datensatzes, an welcher der Suchvorgang nach den hierarchisch geordneten Daten beginnen soll. Diese Adresse wird auf Befehl zu dem früher beschriebenen Adreßregister 300 des Hauptspeichers durchgelassen; dort wird die zugeordnete y-Leitung des 2-D-Speichers ermittelt, um das Niveauzeichen auf dieser Leitung festzustellen. Das Register 528 speichert dasjenige Niveau, nach dem gesucht werden soll; das Niveau wird wiederum vom Suchprogramm bestimmt. ■ Das Niveauzeichen wird im Entschlüsseler 529 entschlüsselt, der die ganze Y-Leitung aus der gewünschten (z. B. ©) Sonderkernebene des 2-D-Speichers abruft. Dieser Vorgang wurde früher im Zusammenhang mit F i g. 3 beschrieben.
Die Zahl der Niveauzeichen, die bei der Anfangsadresse beginnend gesucht werden sollen, ist im Register 562 enthalten und wird wiederum vom Programm abgerufen. Der Inhalt von 562 wird in die Vergleichsschaltung 638 (Fig. 2g) übertragen und mit dem Ergebnis des Suchringes 614 verglichen. Die Richtung der Suche (nach links oder nach rechts) wird wiederum, und zwar durch Einstellung der Kippschaltung 580 vom Programm bestimmt. Der eigentliche Suchbefehl wird bei 510 (Fig. 2h) vom Programm in die Oder-Schaltung 512 eingegeben und setzt den Suchzyklus in Gang. Zusammengefaßt: Die für eine Suche nötige Eingangsinformation ist der Suchbefehl, die Anfangsadresse, die zu suchenden Niveauzeichen, die Zahl der auf jedem Niveau zu zählenden Markierungen und schließlich die Richtung der Suche.
Der TeilF enthält den Suchring 614 (Fig. 2g) und eine Reihe von Steuerschaltungen und führt tatsächlich die Suche in den Niveauebenen durch, um die Anfangs- und Endadressen der bestimmten Datenkette zu bestimmen.
Wenn die hierarchischen Niveauzeichen in den Sonderebenen 901 (F i g. 3 b) gespeichert sind, so kann ein bestimmter Datenteil gefunden werden, vorausgesetzt, daß seine relative Lage in der Datenkette bekannt ist; zu diesem Zweck wird dann zunächst die der höchsten Klassifikationsordnung zugeordnete Kernebene mit der Anfangsadresse der Datenkette abgetastet, um die Speicheradresse zu finden, an der die höchste Klassifikationsordnung für die gewünschte Information untergebracht ist, anschließend wird zu dem dieser Adresse entsprechenden Kern der nächstniedrigen Ebene übergegangen und die Suche fortgesetzt, bis die geforderte Zahl von Niveauzeichen in dieser Ebene gefunden ist. Dieses Verfahren wird fortgesetzt, bis die gewünschte Adresse ermittelt ist. Ein Suchbefehl könnte also beginnen bei der Adresse A, die erste @, die zweite ®, die fünfte © und die dritte φ aufzusuchen. Die Suche schreitet zwar normalerweise in einer Richtung fort; es ist jedoch möglich, die Suchrichtung während des Suchvorganges zu ändern. Es sei angenommen, daß das vorletzte Feld in der zweiten Aufzeichnung eines bestimmten Datenblocks lokalisiert werden soll. Dann erfolgt die Suche in der ersten Ebene, bis das zweite Markierungszeichen gefunden wird; die Suche schreitet dann in der nächsten Ebene in der anderen Richtung weiter, bis die erste Feldmarkierung gefunden ist.
609 589/270
Die Suchschaltung eines solchen Speichersystems muß also in der Lage sein, die Suche in den Kernen der Niveauebenen (oder in einem anderen Register, in dem die Niveauzeichen gespeichert sind) an jeder gewünschten Stelle zu beginnen und die Suche in jeder Richtung vorzunehmen. Die Schaltung muß auch ein Ausgangssignal liefern können, wenn ein solches Bit gefunden ist, und das Ausgangssignal muß in verschlüsselter Form die zugehörige Speicheradresse enthalten. Die Suehschaltung muß weiter in der Lage sein, die Suche fortzusetzen, wenn die ermittelte Adresse, d. h. das Niveauzeichen, nicht die gesuchte ist.
Die Suehschaltung enthält einen vielstufigen Suchring 614, der mit dem Register 610 verbunden ist, in das die Werte aus aufeinanderfolgenden Zeilen einer ausgewählten Hilfsebene eingetragen werden. Dem Ring ist also der Inhalt des Registers 610 zugänglich. Es sind Mittel vorgesehen, um einer der Anfangsadresse des Suehbefehls entsprechenden Stufe des Rings Abfrageimpulse zuzuführen. FaUs die betreffende Stufe deg Registers 610 ein Bit enthält, wird von der abgefragten Stelle des Rings ein Ausgangssignal geliefert. Normalerweise schreitet die Abfrage von Stufe zu Stufe weiter; wenn jedoch ein Bit in einer- Stufe des Registers vorgefunden wird, tritt eine Unterbrechung in der Abfrageimpulsgabe ein. Falls · nach Feststellung eines Bits in einer Registerstelle die Suche fortgesetzt werden soll, so kann diese Suche in, der einen oder anderen Riehtung wieder aufgenommen werden.
Die 128 Stufen des Registers 610 (Fig. 2g) können jeweils den Zustand 1 oder 0 annehmen. Wenn eine Registerstufe im Zustand 1 ist, so enthält sie (definitionsgemäß) ein Bit. Die Registerstufen können aus üblichen Kippschaltungen bestehen, die im 1-Zustand ein andauerndes Signal abgeben, oder sie können (wie Magnetkerne) einen Ausgangsimpuls liefern, wenn ste von 1 nach Q übergeführt werden.
Die Ausgänge des Registers 610 liegen über ent- 4Q sprechende Leitungen 612 an den Stufen des Suchrings 614 an. Der Suchring kann die Information aus dem Register speichern und nacheinander abfragen, bis ein Bit entdeckt ist, Diese Abfrage kann an jeder Stelle des Rings beginnen und nach beiden Richtungen laufen. Die Ausgänge von den Stufen 0 bis 127 gelangen zur Steuerschaltung, um die nächste Datenzeile aus den Hilfsebenen anzufordern. In diesem Falle wurde das gewünschte Bit nicht gefunden. Dieser Vorgang ist im einzelnen im Suchbeispiel erläutert. Wenn in einer Stufe des Rings ein Bit vorgefunden wird, dann entsteht auf der dieser Stufe entsprechenden Leitung 616 des Rings ein Signal, und die Abtastung wird angehalten. Durch ein Signal auf die der lokalisierten Stufe entsprechende Leitung 618 kann die Suche, beginnend mit der rechts benachbarten Stufe, fortgesetzt werden; durch ein Signal auf die entsprechende Leitung 620 läuft die Suche, beginnend mit der links benachbarten Stufe, weiter. Am Ende eines Suehzyklus, oder falls 6q die gesuchte Markierung im laufenden Suchzyklus nicht vorgefunden wurde, stellt ein Impuls aus der Oder-Schaltung 623 über Leitung 62.2 alle Stufen des Suchrings 614 zurück; der Suchring ist damit für ejn& neue Suche mit neuem Inhalt des Registers 610 6s bereit. . - - ■
Ein Ausgangsimpuls auf einer' der Leitungen 616 des Suchrings 614 gelangt über die gemeinsame Lei-.
tung 626 zum Zähler 628 sowie zum. Versehiüsseler 630, Bei letzterem entsteht ein Ausgangssignal auf sieben der vierzehn Leitungen 632 (auf einer Leitung jedes Paars), die zu sieben Kippschaltungen FFX, FF2, FF 4, FFB, FF16, FF3Z und FFM des Adreßregisters 634 führen. Ein Signal auf der linken Leitung eines Paares geigt das Vorliegen eines Bits in dieser Stelle an und setzt die angeschlossene Kippschaltung in den 1-Zustand; ein Signal auf der rechten Leitung kennzeichnet das Fehlen eines Bits in dieser Stelle und setzt die zugeordnete Kippschaltung in den O-Zustand. Das Register 634 zeigt also an, in welcher der 128 Stufen des Registers 610 das letzte vorgefundene Bit enthalten war. Das Register 634 kann außerdem, noch über die vierzehnadrige, Leitung 558 (diese angeschlossen an die Torschaltung 550 [F i g, 3 a]) eingestellt werden, Damit läßt sich von außen bestimmen, an weicher Stelle der Suehring 614 eine bestimmte Suche anfangen soll,
Der Inhalt des Zählers 628 wird im Vergleicher 638 mit dem dort über Leitung 639 aus dem Suqhprogramm und dem Register 562 eingestellten Wert verglichen. Dieser Wert wird duroh die. relative Lage, der gewünschten Information in der Datenkette bestimmt und ist (in den Niveauebenen) gleich, der Zahl der Niveaubits, die angetroffen werden müssen, ehe die gewünschte Adresse in der abgetasteten Niveauebene angetroffen wird. Bei erfolgreichem Vergleich geht ein Signal über Leitung 640 zu der Steuerschaltung als Zeichen dafür, daß die gewünschte Adresse gefunden ist und veranlaßt unter anderem die. Rückstellung des Suchrings 614. Bei nicht erfolgreichem Vergleich erscheint auf Leitung 642 ein Signal, das die vierzehn Und-Schaltungen 644 veranlaßt, die Ausgänge der Kippschaltungen FFl bit FF 64 des Adreßregisters 634 auf sieben der vierzehn Leitungen 646 durchzulassen. Diese Leitungen bilden einen Teil der Eingangsleitungen des Entschlüsselers 648, dessen andere Eingänge die Leitungen 650 (Rechts-Sucher) und 652 (Links-Sucher) sind. Der Entschlüsseier erregt daraufhin entweder die Leitung 618 oder 620, woraufhin der Suchvorgang in einer von beiden Richtungen fortschreitet. Eine genauere Beschreibung folgt später.
Der Suchtaktgeber G (Fig. 2h) ist dem Eingabetaktgeber sehr ähnlich, so daß eine allgemeine Beschreibung hier nicht nötig ist; Einzelheiten werden bei der Beschreibung des Suchbeispiels gegeben. Teil H (F i g. 2 e, rechte Seite) enthält im wesentlichen zwei Register 764 und 780, worin Suchresultate abgespeichert werden,
Wie schon in Verbindung mit der allgemeinen Beschreibung von Fig. 1 erwähnt, besteht Teil I (Fig. 4) aus der erforderlichen Steuerschaltung, die einen Suchbefehl aufnimmt, ihn auslegt und die nötige Suchinformation in der richtigen, zeitlichen Folge zu den Sucheinheitsteilen F und G überträgt. Die Hauptbestandteile dieser Einheit sind das Befehlsregister 1000 mit dem Ausgabesteuerring 1002, Das Register ist ein mehrstufiges Register, dessen Stufen jede eins der 8-Bit-Zeichen oder -Symbole aufnehmen können, die in den Adjektiven der Suchbefehle verwendet werden. Das Register ist als achtstufiges Register dargestellt worden, da es seine Eingangsinformation gewöhnlich aus dem 3-£>-Speicher empfängt, in dem der Eingangsbefehl in Form von aus acht Zeichen bestehenden Maschinenwörtern ge^. speichert ist; es wird jeweils ein Maschinenwort
21 22
automatisch in das Eingangsregister eingespeichert, Leitung 1010 wird erregt, wenn ein einfacher Such-Der Steuerring gibt aufeinanderfolgende Stufen dieses befehl angezeigt ist (f). Leitung 1012 stellt das Auf-Registers in bekannter Weise aus auf Befehl des treten einer binären Codedarstellung für den Befehl Taktimpulses SSII/, was noch näher erläutert wird. mit laufender Adresse ($) fest. Leitung 1014 stellt Wenn also die nächste Stufe des Ausgangsrings ein- 5 das Auftreten einer binären Codedarstellung für geschaltet wird, steuert sie den Inhalt der zugeord- einen Befehl mit eingestellter Adresse (f) fest. Leineten Stufe des Eingangsregisters 1000 hinaus, wo- tung 1016 stellt eine Rechts-Suchen-Anzeige (+) durch, wie oben erwähnt, ein aus 8 Bits bestehendes und Leitung 1018 eine Links-Suchen-Anzeige (—) binäres Zeichen auf die Ausgangsleitung 1004 dieses fest. Leitung 1020 zeigt an, wenn eine Dezimalzahl 0 Registers gelangt, io bis 9, die dazu dient, den Zählerstand der Auftritts-
Wie schon beschrieben worden ist, bestehen die markierungen in dem Adjektiv anzuzeigen, im Aus-Bafehlsadjektive aus fünf Zeichen; diese beschreiben gang des Registers 1000 auftritt. Der Entschlüsseier erstens die Stufe des HilfsSpeichers, in der der be- 1006 hat also die Funktion, die verschiedenen in den treffende Teil des Suchvorganges ausgeführt wird, Suchadjektiven verwendeten Symbole zu analysieren zweitens die Adresse in bezug auf die Anfangsadresse 15 und festzustellen. Durch den Ausgang dieses Entdes Datensatzes, an der die eigentliche Suchoperation schlüsselers zusammen mit den Markierungen aus beginnen soll, drittens die Richtung, in der ein Such- dem Taktgeberteil I wird in erster Linie der Betrieb Vorgang von der vorhergehenden Adresse aus weiter- der Befehlsauslegeeinheit gesteuert,
gehen soll, · sowie viertens und fünftens eine zwei- Aus der vorstehenden Beschreibung der Teile E1 steUige Zahl in Dezimalform, die darstellt, wie oft 2a F, G und H, bei denen es sich um die eigentliche Niveauzeichenmarkierungen durch die Suchschaltung Sucheinrichtung und die Steuerungen dafür handelt, gezählt werden müssen, bevor die gewünschte geht hervor, daß die einzigen Informationen, die Adresse erreicht wird. Ebenso kann, wie bereits er- direkt aus der Befehlsauslegeeinheit (Teil I) zur wähnt, das zweite Zeichen oder die Adressenanzeige Sucheinheit übertragen werden müssen, die Niveaugemäß der Erfindung eine von drei Formen anneh- 25 zeichen und die Zahl der Markierungen der Niveaumen. Die erste ist ein einfacher Adressenbefehl (j·), zeichen sind. Diese müssen aus dem Befehlseingabedaß der Suchvorgang an der Anfangsadresse des register 1000 zum Niveauzeichenregister 528 bzw. Datensatzes beginnen und in der vorgeschriebenen zum Zählerregister 522 übertragen werden. Das geStufe fortgesetzt werden soll, bis die vorgeschriebene schieht durch die Torschaltungen 1022, 1024 bzw. Zahl gezählt worden ist. Die zweite ist der Befehl 30 1026.
mit eingestellter Adresse ($), der besagt, daß der Das »Operandenregister« 1028 dient zum Spei-Suchvorgang an der Anfangsadresse des Datensatzes ehern der Anfangsadresse oder des Operanden für beginnen ynd fortgesetzt werden soll, bis die ange- jeden Suchbefehl. Diese Anfangsadresse eines gebene Zahl von Markierungen der Niveauzeichen Datenzusatzes ist bei dem vorliegenden System nötig, gezählt ist, an welcher Stelle die dann festgestellte 35 um einen Ausgangspunkt für jeden Suchvorgang anAdresse in die Speicherstelle der laufenden Adresse zugeben. Diese Adresse kann aus einem externen das S-P-Speicherwortes, die für diesen Zweck vorge- 3-D-Speicher oder einer anderen Stelle aus einsehen ist, übertragen wird. Die dritte ist der Befehl gegeben werden und wird durch geeignete Mittel mit laufender Adresse ($), der besagt, daß der Such- (nicht gezeigt) vom Adjektivteil des Suchbefehls, der Vorgang mit der laufenden Adresse oder der Adresse, 40 im Register 1000 gespeichert ist, getrennt. Bei dem die in der nahe dem Anfang jedes Datensatzes züge- im Register 1028 gespeicherten Operanden handelt teilten Spezialspeicherstelle gespeichert ist, beginnen es sich um den Operanden, der auf die Suchadjektiv- und in der vorgeschriebenen Stufe fortgesetzt werden folge zutrifft, die im Register 1000 gespeichert und soll, bis die gewünschte Zahl von Markierungen durch das vorliegende System ausgelegt wird,
festgestellt, die Adresse für diese Stelle im Speicher 45 Die beiden anderen wichtigsten Funktionselemente bestimmt und diese Adresse an die Stelle der vor- der Befehlsauslegeeinheit / sind das »Laufendeherigen laufenden Adresse in der Speicherstelle für Adresse«-Flip-Flop 1030 und das »Erste-Zählstanddie laufende Adresse für den Datensatz übertragen ziffer«-Flip~Flop 1032. Das Flip-Flop 1030 wird worden ist. immer dann in den 1-Zustand gestellt, wenn ein Be-
Das dritte oder Richtung'szeichen des Adjektivs 5o fehl mit eingestellter Adresse ($) oder mit laufender
kann, wie schon erwähnt, entweder eine Rechts- oder Adresse ($) in dem gerade durch die Auslegeeinheit
eine Links-Suchen-Anzeige (+, —) sein. verarbeiteten Adjektiv festgestellt wird, wodurch die
Das vierte und das fünfte Zeichen des Adjektivs Leitung »Laufende Adresse Ein« erregt wird. Das
sind beide Dezimalzahlen, bei denen es sich jeweils Flip-Flop 1030 bewirkt zusammen mit den Und-
um die Zahlen 0 bis 9 handeln kann. 55 Schaltungen 1034 und 1036 die Einspeicherung der
Durch den Entschlüsseier 1006 werden die vor- neuen laufenden Adresse in die spezielle Speicherstehenden Zeichen des Suchadjektivs nacheinander, stelle für die laufende Adresse für den im 3-D-Teil wie sie aus dem Register 1000 hinausgesteuert wer- des Speichers stehenden Datensatz,
den, entschlüsselt. Bei dem Entschlüsseier handelt es Das »Erste-Zählstandziffer«-Flip-Flop 1032 besieh um eine bekannte Vorrichtung. Er besteht aus S0 wirkt die Einspeicherung des Niveauzeichenzähleiner Reihe von Flip-Flops und Und-Schaltungen, Standes aus dem Suchadjektiv in den richtigen Teil die feststellen, ob ein bestimmtes binäres Code- des Zählstandregisters 562. Zum Beispiel würde die zeichen die Erregung einer der sieben Ausgangs- die Zehnerziffer darstellende erste Ziffer in die rechte leitungen 1008 bis 1020 bewirkt. Für die Zwecke der Hälfte des Zählstandregisters 562 und die zweite Beschreibung dieses Ausführungsbeispiels wird an- 6g oder Einerziffer in die linke Hälfte des Registers 562 genommen, daß die Leitung 1008 dann erregt wird, eingespeichert werden. Das Flip-Flop 1032 leitet zuwenn das zu dem Entschlüsseier übertragene Zeichen sammen mit der Und-Schaltung 1038 die Taktimpulsirgendeins der Stufenkennsymbole 1 bis 7 enthält. folge von SS1VIII/ ein und zeigt an, daß das voll-
23 24
ständige Adjektiv ausgelegt und der Suchumlauf be- verschiedenen Teile jedes Adjektivs werden der reit ist. Der Ausgangsimpuls von SSVlHJ leitet also Reihe nach ausgelesen, und der erste Teil des Adjekeinen »Suchen«-Befehl auf Leitung 510 ein und be- tivs, das Niveauzeichen, wird durch die Einheit 1042 ginnt eine tatsächliche Suchfolge im Suchsteuerteil und 1044 festgestellt, das Niveau wird festgestellt, des Systems. 5 und in der Suchschaltung werden entsprechende Der TaktgeberteilI (Fig. 2j) der Befehlsausiege- Steuerungen eingestellt. Dann wird die Adresseneinheit besteht aus neun monostabilen Multivibrato- anzeige entschlüsselt und festgestellt, und der entren 0 bis 8. Ihre Wirkungsweise wird im einzelnen in sprechende Teil des Flip-Flops 1030 wird eingestellt, dem nachstehenden Befehlsauslege- und Suchbeispiel und je nach der Art des Befehls wird die Operandenzusammen mit Tabelle V beschrieben, die die spe- io adresse oder die laufende Adresse aus dem Speicher ziellen aufeinanderfolgenden Funktionen jeder Stufe in das Speicheradreßregister 300 (Fig. 3a) überdieses Taktgebers angibt. Allgemein wird jedoch die tragen. Nun wird die Suchrichtung festgestellt, und erste Stufe SSOJ aus dem Programm heraus einge- schließlich wird der Niveauzeichenzählstand entleitet, welche die Auslegung eines Suchbefehls und schlüsselt und festgestellt, und die entsprechenden eine Suchfolge beginnt. Die Anfangsadresse oder der 15 Steuerungen im Suchteil werden eingestellt. NachOperand, der die Anfangsadresse des zu durch- dem ein vollständiges Adjektiv bewertet und durchsuchenden Datensatzes anzeigt, wird aus dem sucht worden ist, gelangt ein Signal auf die Leitung Operandenregister 1028 in das Anfangsadreßregister mit der Bezeichnung »suche«, die zur Unterseite 516 der Niveausuchsteuerung (Teil F) übertragen, des Blocks mit der Bezeichnung »Modifizierung der und außerdem wird der restliche Teil des Takt- 20 laufenden Adresse« verläuft, und in Abhängigkeit Umlaufs eingeleitet. Der monostabile Multivibrator 1 davon, ob eine Anzeige für laufende Adresse oder (SSlJ) prüft, ob das erste Element einer Adjektiv- eine Anzeige für Adresseneinstellung von der Adresfolge ein Niveauzeichen ist; wenn das nicht der Fall senfeststellschaltung festgestellt worden ist, wird die ist, zeigt er an, daß das Ende einer Suchfolge fest- laufende Adresse für den Datensatz wenn nötig abgestellt ist, und stellt das zweitletzte Flip-Flop 726 25 gewandelt. Nach Abschluß dieses Schrittes beginnt von Teil F entsprechend ein. Die monostabilen die nächste Adjektivbewertung.
Multivibratoren2 und 3 (55117 und SSHlJ) steuern Die vorstehende Beschreibung von Fig. 4 bildet nacheinander das zweite, das dritte, das vierte und nur eine allgemeine Beschreibung der Folge von Vordas fünfte Zeichen des Adjektivs hinaus, bewerten gangen in der Befehlsauslegeeinheit, die den Gegensie entsprechend und stellen die Steuerschaltung ent- 30 stand der Erfindung darstellt. Das weiter unten folsprechend dieser Bewertung ein und leiten alles ein, gende Beispiel für eine Arbeitsfolge zur Auslegung was an weiteren Operationen etwa nötig ist. Der eines Suchbefehls und dessen darauffolgende Ausmonostabile Multivibrator 4 (SS Vl J) liest die lau- führung durch das vorliegende System wird deutlich fende Adresse aus der dafür vorgesehenen speziellen erläutern, wie die verschiedenen in F i g. 2 und 4 ge-Speicherstelle im 3-D-Speicher aus und speichert 35 zeigten Funktionsblöcke arbeiten. Nachfolgend werdiese Adresse im Anfangsadreßregister 516. Der den nun Beschreibungen von Eingabeoperationen Betrieb dieses Teils des Taktgebers, d.h. von SSVlJ, und Suchoperationen mit Einzelheiten der Schaltunwird durch einen Adjektivbefehl eingeleitet, der die gen gegeben,
laufende Adresse ($) verwendet. Die monostabilen
Multivibratoren 5, 6 und 7 (SSVJ, SSVlJ, SSVIlJ) 40
speichern eine neue laufende Adresse in der ent- Eingabebeispiel
sprechenden Speicherstelle im 3-£>-Speicher und wer- _. ti, , ™ ,■,,„·.· π η *·
den beim Auftreten entweder eines Adjektivbefehls . Dl A e nachstehende Tabelle Π ist ein Flußdiagramm mit laufender Adresse (ψ) oder eines solchen mit ein- ** Arbeitsabiaufs »Dateneingabe und -speicherung« gestellter Adresse ($) wirksam. Der monostabile 45 bei der er^dungsgemaßen EinnchtungDie Tjabelle Multivibrator 8 (SSVlIlJ) leitet, wie schon erwähnt, verdeutlicht die Funktionen der Haupt teile der Schaleine Suchfolge nach beendeter Entnahme des fünften ^ng und die zeitliche Aufeinanderfolge der Ereig-Adjektivzeichens unter der Steuerung von SSlU msse.
und SSUlJ ein.
Die vorstehende Beschreibung der Befehlsauslege- 50 Tabelle II
. einheit I und des Taktgeberteils 7 der Auslegeeinheit Eineabe-Steuerschritte
läßt sich an Hand von F i g. 4 noch besser verstehen. . Eingabe Meuerscimtte
Bei dieser Figur handelt es sich um ein Blockdia- ^. ,. -,., £ ■, ^. ■,-,
gramm der Hauptbestandteile von Teil /, und zwar EmgabermS U auf 1 ^Uen.
sind die hauptsächlichen Funktionseinheiten mit bei 55 Speicherregisterring 102 auf 1 stellen,
jedem Block angeführten Bezugsziffern versehen; die Speicherregister auf 0 stellen.
Reihenfolge der Arbeitsvorgänge verläuft in der
Figur von oben nach unten. Wie schon oben bei der Vergleichszähler 62 auf 0 stellen,
allgemeinen Beschreibung des Befehlsaufbaus gesagt Niveauring 58 auf allen Stellen ausschalten,
worden ist, enthält der Befehl einen Operanden oder 60 _7 , . . ,. , ,. ... . _ . „
eine Anfangsadresse für die Speicherstelle eines Vergleichskippschaltung 64 auf 0 stellen.
Datensatzes sowie ein oder mehrere Adjektive, die „. , „. . ..,, *Λ,· ■,+ ..„,,. .
die Speicherstelle eines bestimmten Datenbits im Wenn der Eingabezah er 14 bis acht gezahlt hat, setzt
Verhältnis zum Operanden oder der Anfangsadresse er den Taktgeber (CL) in Gang.
des Datensatzes bezeichnen. Dieser Befehl wird ge- 65
maß der Zeichnung so aufgeteilt, daß der Operand CL-I Zeichen nach sechs durchlassen.
in das Operandenregister 1028 und die Adjektive in Vergleichsschaltungen erregen,
das Befehlsregister 1000 eingespeichert werden. Die zu CL-2 weitergehen.
CL-2 Eingabepuffer rückstellen.
Eingabezähler um 1 vermindern.
Wenn Vergleichszähler auf 1, dann Vergleichs-FF auf 1 stellen,
bei erstem Schritt oder Ungleichheit -> CL-3, wenn zweiter Vergleich und Speicherregister (sp. reg.) nicht in erster Stelle ->■ CL-6,
wenn zweiter Vergleich und sp. reg.-Ring nicht an erster Stelle -> CL-9.
CL-3 Zeichen von sechs nach sp. reg. durchlassen, nach CL-4 gehen.
CL-4 Wenn sp.reg.-Ring in achter Stellung und Vergleichszähler bei 0 oder 1 -> CL-6,
wenn nicht -^ CL-S.
CL-S Ausgabering fortschalten.
sp.reg.-Ring fortschalten,
6 zurückstellen,
nach CL-I gehen.
CL-6 Speicherzyklus einleiten.
Während dieses Speicherzyklus wird der Inhalt des Speicherregisters im 3-D-Speicher untergebracht.
Wenn ein Niveauzeichen angetroffen wurde, so wird dies in der höchsten Ebene abgespeichert.
Der »Speicher-Endimpuls« schaltet den Niveauring abwärts, stellt das Speicherregister auf 0, bringt den Speicherregisterring in seine ' erste Stellung und geht nach CL-7.
CL-7 Wenn Niveauring auf 0 und Vergleichszähler auf 2 -*· CL-9,
wenn Niveauring auf 0 -> CL-8,
wenn Niveauring auf Ö und Vergleichszähler auf 0 oder 1 -=- CL-I.
CL-8 Einleitung eines 2-D-Speicherzyklus,
der »Speicher-Endimpuls« schaltet den Niveauring 58 weiter,
nach CL-7 gehen.
CL-9 Vergleichszähler 62 auf 0 stellen,
Niveauring 58 auf 0 stellen.
Vergleichskippschaltung 64 auf 0 stellen,
nach CL-IO gehen.
CL-IO 6 zu Vergleichsschaltungen durchgeben,
nach CL-Il gehen.
CL-Il Vergleichskippschaltung einstellen, wenn
Vergleichszähler auf 1 ist,
nach CL-3 gehen.
Bei der Beschreibung einer Eingabeoperation wird angenommen, daß die untenstehende Datenkette in den Eingangspuffer zur Speicherung im Hauptspeicher eingetragen werden soll. Bei der Beschreibung der Arbeitsfolge wird die Tabelle II von Nutzen sein.
©ABCDEFGHI©JKLMNOP®.
Diese Datenkette wird im Speicher örtlich so untergebracht, wie es die Tabelle III zeigt.
H © Tabelle III
© I Φ ©
®
©
N © (D
©
2-D-Niveauebenen
(Binärwerte, z.B. »1«)
φ N
N
7
© N K ©
A N L
M
N
B N N N
C
D
O N
N
3-D-Speicher
64 Bits/Maschinenwort
E P N
F N
G N
zo Die Tabelle bedarf keiner weiteren Erläuterung. Der 2-D-Teil jeder Spalte zeigt an, welche Niveauzeichen in jeder Ebene eingetragen wurden, nämlich eine binäre »1« für die Adresse eines gegebenen 3-D-Maschinenwortes. Die O-Zeichen sind Zwischenräume, die übergangen werden. Die Methode zur Einfügung solcher Zeichen ist in der nachfolgenden Beschreibung angegeben.
In der oben geschriebenen Datenkette ist das notwendige Niveauzeichen der abzuspeichernden Datenkette.
Die aus Tabelle II zu entnehmenden Anfangsbedingungen werden mittels des vom Programm gelieferten Impulses »Eingabe« veranlaßt. Die ersten acht Zeichen werden durch einen Fortschaltimpuls in den Eingabepuffer 10 eingegeben. Dieser Fortschaltimpuls schaltet den Eingabering 12 weiter und synchronisiert die Eingangsdaten, die zum Puffer 10 laufen; er wird mit den Daten mitgeliefert. Jedes in den Puffer 10 einlaufende Zeichen wird vom Zähler 14 (Fig. 2a) gezählt. Dieser Zähler kann auf- und abwärts zählen. Der Eingang für das Aufwärtszählen ist nicht gezeigt; das Abwärtszählen (Subtraktion) geschieht durch Impulse auf Leitung 72. Der Zähler liefert ein Ausgangssignal auf Leitung 222, wenn sein Zählerstand von 1 bis 7 beträgt, und ein Signal auf Leitung 32 beim Stande von 8 oder mehr.
Wenn das achte Zeichen in den Puffer 10 eingelaufen ist, wird die Leitung 32 erregt, und über die Oder-Schaltung 34 (F i g. 2 d) erscheint an der Und-Schaltung 36 ein Eingangssignal. Die vom Signal »Eingabe« auf 1 gestellte Kippschaltung 38 liefert das zweite Eingangssignal zur Und-Schaltung 36, deren Ausgang differenziert, 40, und der Oder-Schaltung 42 zugeführt wird. Die dadurch angeworfene monostabile Kippschaltung 44 liefert den Taktimpuls Nummer 1. Gleichartige Kippschaltungen liefern die folgenden Taktimpulse bis zur Nummer 11. Der Taktimpuls Nummer 1 öffnet über Leitung 46 die Und-Schaltung 48 (F i g. 2 a), welche das erste Zeichen aus dem Puffer 10 über den Kanal 50 zum Register 6 (Fig. 2b) durchläßt. Die von 46 gleichzeitig angesprochene Oder-Schaltung 52 öffnet die Und-Schaltung 54, so daß das Zeichen aus Register 6 zum Niveauvergleicher 56 gelangen kann. Es wird jetzt die Leitung Nummer 4 (Niveauzeichen 4) des Niveauvergleichers erregt. Dadurch wird die vierte Stelle des Niveaurings 58 eingestellt und gleichzeitig (über die Oder-Schaltung 60) der Vergleichszähler 62 auf
609 589/270
den Wert 1 gebracht. Da die Vergleichskippschaltung64 durch das Signal »Eingabe« auf 0 gestellt wurde, liegt auf Leitung 66 ein Signal an, das die Torsohaltung 68 für den Durchgang der 4 öffnet.
Nach dem Rückfall des Multivibrators 44 wird über Leitung 70 der monostabile Multivibrator 2 angestoßen; Leitung 72 ist erregt. Dadurch wird der Eingabepuffer (F i g. 2 a) rückgestellt und der Zähler 14 um 1 vermindert. Da der Vergleichszähler 62 infolge der © nun auf 1 steht, wird über die Oder-Schaltung 74 ein Signal durch die Und-Schaltung 76 zur Vergleichskippschaltung 64 lauf en und sie auf 1 einstellen. Dadurch wird verhindert, daß ein zweites Niveauzeichen in einer Kette von acht Zeichen oder weniger zum Niveaiuring 58 gelangen kann. Der Vergleichszähler 62 veranlaßt v/eiter über die Oder-Schaltung 80 und die mit 72. durchlässige Und-Schaltung 82 die Einstellung der Kippschaltung 84 auf den l-Zustandl. Leitung 86 bereitet nun die Und-Schaltung 88 vor. Sobald jetzt der Multivibrator 2 ausschaltet, wird der Multivibrator 3 über die Und-Schaltong 88 und die Oder-Schaltung 90 angestoßen. Die jetzt erregte Leitung92 läßt (Fig. 2b) über die Torschaltung 94 das im Register 6 enthaltene Zeichen in die erste Stelle des Speicherregisters 96 (F ig..2c) einlaufen. Wenn der Multivibrator 3 ausschaltet, wird Nummer 4 angestoßen und erragt Leitung 98.
Die Und-Schaltung 100 (F i g. 2 c) hat als einen Eingang die achte Stelle des Speicherrings 102. Zur Zeit ist dieser Ring jedoch in seiner ersten Stelle, und die Und-Schaltung 100 liefert keine Ausgangsspannung; infolgedessen kann der Inverter 104 zu der Und-Schaltung 106 ein Signal liefern, das zusammen mit dem Signal auf Leitung 98 ein Ausgangssignal auf Leitung 108 zur Und-Schaltung 122 (F i g. 2 d) hervorruft. Wenn die monostabile Kippschaltung 4 aiusschaltet, ist auch der zweite Eingang von 122 vorhanden, und die Kippschaltung 5 wird angestoßen. Das resultierende Signal auf Leitung 124 schaltet den Ausgabering 11 und1 den Speicherring 102 weiter und stellt das Register 6 (Fig. 2b) zurück. Beim Ausschalten der Kippschaltung 5 (F i g. 2 d) wird die Leitung 126 erregt und stößt über die Oder-Schaltung 42 die Kippschaltung 1 an. Die ersten fünf Kippschaltungen, die in F i g. 2 d mit »Zeichenspeicherung im Speicherregister« bezeichnet sind, bilden also eine Schleife, die zur nacheinander erfolgenden Übernahme von Zeichen aus dem Eingabepuffer 10 in das Register 6 wirksam sind. Diese Schleife wird achtmal durchlaufen, außer es wird ein zweites Niveauzeichen angetroffen, oder es wird durch ein »Leerstellen«-Signal das Datenende signalisiert. Einzelheiten darüber werden noch gegeben.
Für das oben angegebene Beispiel einer Datenkette wird die eben beschriebene Programmschleife achtmal durchlaufen, und das Speicherregister enthält dann
©ABCDEFG.
Beim achten Durchlauf der Schleife wird der Speicherring 102 in seiner achten Stelle und die Leitung 128 erregt sein (Fig. 2c). Beim vierten Taktimpuls dieses achten Durchganges liefert also die Leitung 128 ein Eingangssignal zur Und-Schaltung 100; das zweite Eingangssignal nach 100 erscheint von der Oder-Schaltang 80 (Fig. 2b), die von der Stellei des Vergleichszählers 62 aktiviert ist. Da jetzt die Leitung 98 (Taktimpuls Nummer 4) erregt ist, wir die Und-Schaltung 130 durchlässig, so daß über Le rung 132 und die Oder-Schaltung 110 (Fig. 2d) di Und-Schaltung 116 beim Ausschalten der Kippscha tang 4 die Kippschaltung 6 über die Oder-Schaltan 118 in Gang setzen kann. Dadurch wird ein Speiche] zyklus eingeleitet, währenddessen der Inhalt des Spe cherregisters im 3-D-Speicher eingetragen wird. Di © wird in der Niveauebene Nummer 4 gespeicher
ίο Diese beiden Vorgänge laufen folgendermaßen al Da die monostabile Kippschaltung 6 angestoßen im auf Leitung 134 ein Signal erzeugt wurde, findet ei 3-D-Speicherzyklus statt (F i g. 2 c). Da weiter de Niveauzeichen © vorhanden ist, steht der Vergleichs zähler 62 (Fig. 2b) auf 1, und die Leitung78 ii erregt. Das über die Oder-Schaltang 136 und Leiturj 138 zu der Und-Schaltung 140 (Fig. 2c) laufend Signal öffnet in Anwesenheit ernes Signals auf Le: tang 134 die Und-Schaltung, so daß die Oder-SchaJ tang 142 einen Speichervorgang beim 2-D-Speiche einleiten kann.
Am Ende des Speicherzyklüs erscheint auf Lei tang 144 ein Impuls »Gespeichert«, der den Niveai; ring 58 (Fig. 2 b) von der vierten in die dritte Stell fortschaltet. Derselbe Impuls stellt auch das Registe 96 auf 0 und den Speicherring 102 in seine erst Stellung. Schließlich wird noch die Kippschaltung (Fig. 2d) angestoßen. Da der Niveauring58 niet in seiner 0-Stellung ist, liefert die Leitung 148 kei:
Ausgangssignal', und der Inverter 150 bereitet übe die Leitung 152 die Und-Schaltung 156 vor. De Ausgang der Kippschaltang 7 auf Leitung 151 kam also die Und-Schaltung 156 passieren, und die Kipp schaltang 160 wird auf ihren 1-Zustand eingestelli Das daraufhin auf Leitung 162 anstehende Signe kann dann beim Rückkippen der Kippschaltang ' über die Und-Schaltung 164 die Kippschaltung 8 an stoßen. Auf Leitung 166 entsteht nun ein Impuls, de über die Oder-Schaltung 142 (Fig. 2c) einen Spei
cherzyklus des 2-D-Speichers einleitet. Hierbei win die © in der Niveauebene Nummer 3 gespeichert. Da nach tritt wieder das Signal »Gespeichert« auf de Leitung 144 auf, das den Niveaiuring diesmal zi seiner zweiten Stelle fortschaltet, gleichzeitig wird di Kippschaltung 7 des Taktgebers wieder angestoßerj Die beiden Kippschaltungen 7 und 8 stellen also ein weitere Schleife dar, welche zum Eintrag der Niveau zeichen in die untergeordneten· Niveauebenen ver anlaßt. ImFaIIe der © z.B., wird die © während de 3-jD-Speicherzyklus in der Ebene Nummer 4 ge speichert, ein Vorgang, der durch den Taktimpul Nummer 6 veranlaßt wurde. Der Taktimpuls Num mer7 prüft, ob der Niveauring 58 auf 0 oder au einer anderen Stelle steht, und wenn der Ring nich auf 0 steht, stößt er die Kippschaltung 8 an, un einen weiteren 2-D-Speicherzyklus zu veranlassen Danach findet diese Prüfung noch einmal statt urn dauert so lange an, bis der Niveauring auf 0 zu stehei kommt; jetzt wird die Schleife auf folgende Weise vei lassen: Da der Niveauring 58 auf 0 steht, ist die Lei tang 148 erregt. Der Vergleichszähler 62 steht nocl auf 1; die Leitung 226 ist also nicht erregt, und de Inverter 170 liefert an die Und-Schaltung 172 da zweite Eingangssignal. Die Und-Schaltung 174, derei zweiter Eingang von der Kippschaltung 7, Leiten 154 herrührt, kann also die Kippschaltung 176 auf : stellen und die Leitung 178 erregen. Dadurch win die Und-Schaltung 180 (Fig. 2d) vorbereitet, un«
beim Rückkippen der Kippschaltung 7 wird über Leitung 182 die Kippschaltung 38 auf 1 eingestellt.
Da angenommen werden kann, daß die Ausgabe-Operation schneller verläuft als die Eingabe, so ist es sehr wahrscheinlich, daß am Ende dieser Kette von acht Zeichen der Zähler 14 (F i g. 2 a) auf einer Zahl kleiner als 8 steht. Die Leitung 32 wird also nicht erregt sein, und es muß gewartet werden, bis der Inhalt des Zählers 14 den Wert 8 erreicht. Dann wird die Leitung 32 über die Oder-Schaltung 34 (F i g. 2 d) der Und-Schaltung 36 das zweite Eingangssignal liefern (erstes Signal aus 38/ Das Ausgangssignal aus 36 wird in der Differenzierschaltung 40 differenziert und über die Oder-Schaltung 42 zum Anstoß der Kippschaltung 1 des Taktgebers benutzt.
Auf gleiche Weise werden die Zeichen H und / aus dem Eingabepuffer 10 entnommen und in die erste und zweite Stelle des Speicherregisters .eingegeben. Der Vergleichszähler 62 steht noch auf 1, infolge des Einlaufs des ersten Niveauzeichens ®. Das nächste Zeichen nach dem / ist eine ©. Dieses Zeichen wird zum Register 6 (Fig. 2b) und von dort zu den Niveauvergleichsschaltungen 56 gebracht. Die zweite der Ausgangsleitungen wird erregt und der Vergleichszähler 62 über die Oder-Schaltung 60 nach der Stellung 2 weitergeschaltet. Der Niveauring 58 wird nicht angesprochen, da die Leitung 66 das Tor 68 nicht durchlässig werden läßt.
Der gerade beschriebene Vorgang eignet sich während des Taktimpulses Nummer 1. Der Taktimpuls Nummer 2 entdeckt jetzt, daß der Vergleichszähler 62 in seiner zweiten Stellung und das Speicherregister nicht in seiner ersten Stellung sind. Die Prüfung geschieht folgendermaßen: Da das Speicherregister nicht in seiner ersten Stellung ist, wird die Leitung 182 (Fig. 2c) nicht erregt, der Inverter 184 liefert ein Ausgangssignal, das zusammen mit dem Signal 1 auf Leitung 226 vom Vergleichszähler die Und-Schaltung 188 öffnet und über Leitung 190 die Und-Schaltung 192 (Fig. 2b) vorbereitet. Der zweite Taktimpuls auf Leitung 72 kann also die Und-Schaltung 192 passieren und die Kippschaltung 194 auf 1 stellen. Das Signal auf der Leitung 196 gelangt zur Und-Schaltung 198 (F i g. 2 d), und die ausschaltende Kippschaltung 2 schaltet über die Oder-Sohaltung 118 die Kippschaltung 6 ein. Es wird also ein Speicherzyklus in Gang gesetzt, in dessen Verlauf die Zeichen H und /, gefolgt von sechs Nullen, in der 3-D-Abteilung des Speichers untergebracht werden. Während dieser Zeit wird kein Niveauzeichen bearbeitet. Das Signal »Gespeichert« ist jetzt auf den Niveauring 58 unwirksam, da dieser auf 0 steht. Es wird erinnert, daß bei den früheren Speicheroperationen der Niveauring abwärts geschaltet wurde durch die Signale »Gespeichert«, die jeweils nach Durchlaufen der kleinen Schleife aus den Kippschaltungen 7 und 8 auftraten.
Am Ende des Speicherzyklus also, während deren die Zeichen H, I und sechs Nullen gespeichert wurden, rückt der Taktgeber zur Stelle 7 vor. Der Taktimpuls Nummer 7 untersucht, ob der Niveauring in der Nullstelle und der Vergleichszähler auf 2 ist; beides trifft derzeit zu. Beide Eingänge der Und-Schaltung 200 (Fig. 2b) liegen vor. Die nachgeschaltete Und-Schaltung 202 wird ebenfalls durchlässig (Taktimpuls Nummer 7 auf Leitung 154), und die Kippschaltung 204 gelangt zu ihrer 1-Stellung. Die Leitung 206 kann jetzt die Und-Schaltung 208 (Fig. 2d) vorbereiten, und beim Rückkippen der Kippschaltung 7 wird über die Oder-Schaltung 210 die Kippschaltung 9 angestoßen. Während dieses Taktimpulses werden der Vergleichszähler 62, der Niveauring 58 und die Vergleichskippschaltung 64 auf 0 gestellt. Von Kippschaltung 9 wird Kippschaltung 10 unmittelbar angestoßen und über Leitung 212 und die Oder-Schaltung52 (Fig. 2b) die Und-Schaltung 54 vorbereitet. So kann jetzt die ©, die
ίο noch im Register 6 enthalten ist, zu den Niveauvergleichern 56 gelangen; dadurch wird die Stelle 2 des Niveaurings 58 eingestellt und der Vergleichszähler 62 von 0 auf 1 gebracht. Die rückfallende Kippschaltung 10 stößt 11 unmittelbar an; auf Leitung 214
gelangt ein Signal zur Oder-Schaltung74 (Fig. 2b), die Und-Schaltung 76 wird durchlässig und die Vergleichskippschaltung 64 auf 1 gestellt.
Beim Ausschalten der Kippschaltung 11 (F i g. 2 d) wird über Leitung 216 und die Oder-Schaltung 90
ao die Kippschaltung 3 angestoßen. Dadurch gelangt das Zeichen© aus dem Register 6 (Fig. 2b) in die erste Stelle des Speicherregisters 96. Beim folgenden Taktimpuls der Kippschaltung 4 wird geprüft, ob der Speicherring in der achten Stelle ist, und andernfalls die Kippschaltung 5 angestoßen. Diese schaltet den Ausgabering 11 und den Speicherregistersteuerring fort, stellt das Register 6 zurück und stößt die Kippschaltung 1 an.
Es folgen sieben weitere Schritte, während derer die Zeichen J, K, L, M, N, O und P aus dem Eingabepuffer 10 zum Speicherregister 96 übertragen werden. Danach ist der Speicherregistersteuerring 102 in seiner achten Stelle und veranlaßt einen Speicherzyklus, Während dieses Speicherzyklus wird die © in die Ebene Nummer 2 und der Inhalt des Speicherregisters 96 im 3-D-Teil des Speichers untergebracht. Es folgt dann ein zweiter 2-D-Speicherzyklus, währenddessen die © in der ersten Ebene gespeichert wird, und anschließend wird die Kippschaltung 38 (F i g. 2 d) in ihren 1-Zustand gebracht.
Das letzte Zeichen in der zu behandelnden Kette ist eine ©. Wenn dieses Zeichen in den Eingabepuffer 10 gelangt, muß es also in dessen erster Stelle erscheinen. Unmittelbar danach wird die Leitung 18 durch ein Signal »Leer-Eingabe« erregt. Dieses Signal kann die Und-Schaltung 220 passieren, da deren zweiter Eingang (Leitung 222) erregt ist, wenn der Zähler 14 (Fig. 2a) in einer der Stellen 1 bis 7 steht. Jetzt kann auch (über die Oder-Schaltung 34) die Und-Schaltung 36 sich öffnen, so daß über die Differenzierschaltung 40 und die Oder-Schaltung 42 die Kippschaltung 1 angestoßen wird. Der resultierende Impuls läßt die © aus dem Eingabepuffer 10 zum Register 6 und zu den Niveauvergleichern gelangen.
Es entsteht darm auf der Leitung 4 der Niveauvergleicher 56 (Fig. 2b) ein Signal, das über die Oder-Schaltung 60 den Vergleichszähler in seine zweite Stellung rückt. Da die Leitung 66 nicht erregt ist, empfängt der Niveauring 58 jedoch kein Signal. Der nun folgende Taktimpuls Nummer 2 wird die Tatsache entdecken, daß der Vergleichszähler in seiner zweiten Stelle ist und daß der Speicheregistersteuerring in seiner ersten Stellung ist. Letzteres verursacht (über Leitung 182) das Öffnen der Und-Schaltung 224 (Leitung 226 ist erregt), so daß (über Leitung 228) die Und-Schaltung 230 durchlässig wird. Die Kippschaltung 232 wird jetzt auf 1 gestellt, und über Leitung 234 und Oder-Schaltung 210 (F i g. 2 d) wird
die Kippschaltung 9 angestoßen. Diese stellt den Vergleichszähler, den Niveauring und die Vergleichskippschaltung 64 auf 0 und veranlaßt den Taktimpuls Nummer 10. Dieser läßt die © wiederum zu den Vergleichsschaltungen durch, und diesesmal wird der Niveauring 58 auf die vierte Stellung gesetzt, und der Vergleichszähler 62 kommt in seine erste Stellung. EsfolgtderTaktimpulsiNummer 11, der die Vergleichskippschaltung 64 in die 1-Stellung versetzt und den Taktimpuls Nummer 3 hervorruft. Letzterer läßt die © aus dem Register 6 zu der ersten Stelle des Speicherregisters und veranlaßt den Taktimpuls Nummer 4. Es ist nachzutragen, daß der frühere Taktimpuls Nummer 2 anläßlich der Entfernung der © aus dem Eingabepuffer 10 den Zähler 14 (F i g. 2 a) auf 0 setzt. Infolgedessen sind die beiden Leitungen 32 und 222 nicht erregt, und die beiden Inverter 236 und 238 (F i g. 2 d) können über die nachfolgende Und-Schaltung 240 ein Signal über die noch vorbereitete Und-Schaltung 242 und die Oder-Schaltung 110 und weiter über Leitung 112 zur Und-Schaltung 116 geben. Beim Rückkippen der Kippschaltung 4 wird 116 durchlässig und" die Kippschaltung an Nummer 6 angestoßen. Damit beginnt wieder ein Speicherzyklus zur Eingabe der © in die Niveauebene 4 und in den 3-D-Teil des Speichers, dort gefolgt von sieben Nullen. Es folgen drei weitere Arbeitsschritte des Speichers 2-D, während derer die © in der dritten, zweiten und! ersten Niveauebene eingetragen wird. Anschließend wird die Kippschaltung 38 in ihren 1-Zustand zurückversetzt, und die Maschine wartet bis zum Einlauf des nächsten Signals »Eingabe«.
In den F i g. 3, einem Blockdiagramm der Speicheroiiganisation, ist das Speicherregister 96 der Puffer für die Eingabe und Ausgabe zum Hauptspeicher; er nimmt in bekannter Weise ein aus dem Hauptspeicher gelesenes Maschinenwort auf und' kann es auf Befehl wieder dorthin übertragen. Dieses Speicherregister entspricht dem ebenso bezeichneten der Fig. 2. Die Adresse der Speicherstelle, zu der ein Wort übertragen werden soll, ist im Register 300 (F i g. 3 a) enthalten, es wird mit Adreßregister bezeichnet. Die sieben rechten Bits dieses Registers enthalten die F-Adresse, die sieben linken die X-Adresse. Diese Adressen werden entschlüsselt, um die 3-D- und 2-D-Speichervorgänge zu steuern. Das Register 3ÖÖ enthält außerdem noch Schaltungen, die seine Arbeitsweise als Zähler ermöglichen. Wenn z. B. dieses Register ursprünglich auf lauter Nullen eingestellt ist und eine Schreiboperation veranlaßt wird, so gelangt das "zu übertragende Wort in die Stelle 0 des Speichers. Nach der ersten Schreiboperation kann "ein Impuls (z. B. der Impuls »Gespeichert«) diesem Zähler zugeführt werden, um ihn auf OOOOOOOOÖOOOÖl zu stellen. Die nächste Schreiboperation würde also das zweite Wort in die Stelle 1 des Speichers eintragen. Die Adressen, die anfangs in das Register 300 eingetragen und später jeweils um den Betrag 1 erhöht werden, werden durch einen anderen Teil der Maschine bestimmt und sind nicht Gegenstand der Erfindung. Register, die eine Liste verfügbarer Speicherstellen enthalten, sind bekannt.
In den Fig. 3 ist die Niveauebene Nummer 1 allgemein mit dem Bezugszeichen 902 bezeichnet. Dieser Ebene sind zwei Tore zugeordnet (304 und 928 [Fig. 3c]), die von der in Fig. 2c allgemein dargestellten Speichersteuerung beeinflußt werden. Im Speicherzyklus wird also die Torschaltung 304 wäL· rend des Leseteils des Zyklus und die Torschaltun 928 während des Schreibteils durchlässig gemach Bei der früher beschriebenen Speicherung de Niveauzeichen würde der in der Niveauebene Num mer 1 festzuhaltende Impuls über den Kanal zu geführt, der vom Entschlüsseier 310 (F i g. 3 a) ab geht. Eine der 128 Leitungen dieses Kanals wiri vom Entschlüsseier 319 entsprechend dem F-Te: ίο des Speicheradreßregisters 300 ausgewählt; gleich zeitig mit der Speicherung des Wortes im Haupt speicher (3D) wird also an der entsprechende: Stelle der ©-Niveauebene ein 1-Bit eingetragen.
1S Beispiel
für die Auslegung und Ausführung eines Suchbefehl
Die nachstehenden Tabellen IV und V geben dei Ablauf der Operationen für eine Suchbefehlbewer tang bzw. für ein Suchprogramm an. Sie zeigen di relative Zeit der Vorgänge in beiden Teilen der Sy sterne und geben an, wann und wie die verschiede nen Funktionselemente wirksam werden. Auf di Tabelle folgt eine detaillierte Beschreibung de Wirkungsweise des logischen Schaltschemas voi Fig. 2a bis 2j.
Tabelle IV
Flußdiagramm für die Suchbefehl-Auslegeeinheit Startbedingungen werden durch den Befehl »suche hergestellt
Befehlsregister (IR) 1000 mit dem Such adjektiv laden.
IR-Steuerring 1002 rückstellen. Operandenregister 1028 mit dem Operan
den laden.
SSO/ Operand in 1028 zum Anfangs-Adressen register 516 überführen. FF 726 auf »Nicht Letzter« rückstellen. SSI/ einstellen.
SSI/ Wenn kein Niveauzeichen in TR1000:
FF 726 auf »Letzter« einstellen. Sonst: Niveauzeichen nach Register 52! überführen.
»Laufende Adresse« FF auf 0 stellen. SSII/ einstellen.
SSII/ IRlOOO weiterschalten für das nächsti Zeichen des Suchadjektivs. SSIII/ einstellen.
SSIII/ Auswertung des Adjektivs nach drei mög liehen Adreßbefehlen:
(1) »Einfache Adresse« (f): nach SSII. zurückkehren.
(2) »Laufende Adresse« ($): FF1Q30 au 1 stellen., , .
Operandenadresse in 1028 zun Speicheradreßregister überführen SSTVJ einstellen.
(3) »Adresseneinstellung« auf 1 stellen.
SSII/ einstellen.
($): FF103(
Anmerkung: Diese drei Bedingungei werten das zweite Zeichen des Adjektiv:
SSTVJ
ssmj
SSIIIJ
SSYlJ
SSYlIJ
SSYlIlJ
mit der Adreßanzeige aus. Der nächste Halt des SSIII/ wertet das dritte Zeichen (+ oder —) mit dem »Suche-Rechts«- oder dem »Suche-Links«-Befehl aus. Die folgenden zwei Arbeitsabläufe des 55III/ überführen den Zählwert zu dem Zählregister 562. Da 55IV/ auf den ersten Schritt von SSIII/ mit einer $-Adresse folgt:
3-D-Speicher mit Operandenadresse in MAR aufrufen.
Ziffernstelle 5 und 6 in MBR (»Laufende Adresse«) nach Register 516 überführen. 55II/ einstellen.
(Zweiter Ablauf)
(1) Wenn »+«: FF580 auf »Suche
Rechts« einstellen.
55II/ einstellen.
Start-5 bedingungen
10
CL-15
CL-2S
20
(2) Wenn » - «: FF580
Links« einstellen
55II/ einstellen.
auf »Suche
CL-35
(Dritter und Vierter Ablauf)
(1) Bei erster Zählziffer FF1032 auf 1 stellen.
Zählziffer zu einer Hälfte des Zählregisters 562 überführen.
55II/ einstellen.
(2) Bei zweiter Zählziffer FF1032 auf 0 zurückstellen.
Zählziffer zur anderen Hälfte von 562
überführen.
55VIII/ einstellen.
CL-AS
CL-55 CL-65
35
Anmerkung: SSYJ, SSYIJ und 55VII/ steuern das Rückspeichern einer »Laufenden Adresse« in die spezielle Speicherstelle an der Operandenadresse. SSYJ wird durch ein Signal auf der Leitung 740 eingestellt.
Adresse in Register 634 nach Register 516 (Y-Teil) überführen.
55VI/ einstellen.
Adresse von Register 1028 nach MAR überführen.
Spezielles Speicherwort nach MBR auslesen.
SS VII/ einstellen. CL-TS
Adresse in Register 516 in die Ziffernstellen 5 und 6 von MBR überführen.
MBR rückspeichern. CL-85
551/ einstellen.
Durch Signal »Suche« auf die Leitung 510 Suchablauf einleiten.
Anmerkung: Das Signal »Neues Adjektiv« auf Leitung 740 bewirkt das normale Signal »Aus« von 55VIII/. Wenn FF103Q CL-9S »Aus« ist, wird hierdurch 551/ eingestellt und ein neuer Befehlszugriff eingeleitet, wenn FF1030 »Ein« ist, wird SSYJ eingestellt.
Tabelle V
Flußdiagramm für die Suchsteuerung
Anfangsadreßregister 516 laden,
Niveauzeichenregister 528 laden.
Niveauzeichenregister 528 laden.
Zählregister 562 laden.
Richtungs-FF580 laden.
(Diese Operationen unter der Steuerung der Befehls-Auslege-Einheit.)
FF726 auf 0 stellen.
Zähler 628 auf 0 stellen.
Anfangsadresse nach 300 überführen.
FF »Suchende« auf 0 stellen.
Niveauzeichen zur Speichersteuerung überführen. Damit 2-D-Speicherzyklus einleiten und eine Zeile einer Niveauebene nach 312 bringen.
312 nach Register 610 überführen.
Y-Anf angsadresse nach Register 634 überführen.
Zählerstand zum Vergleichsregister 638 überführen.
Register 634 zum Entschlüsseier 648 überführen.
Suchen.
Fünf Vergleiche beim Eintreffen eines Niveauzeichens unter Berücksichtigung des Standes von FF 724 »Suchende«, FF726 »Letzter« und FF582 »Überlauf«:
(1) Bei erstens Gleichheit, zweitens FF 724 auf 0 und drittens FF 726 auf 0: Signal »Anforderung neuer Niveauzeichen« auf Leitung 740 und Suchende beim sechsten Takt.
(2) Bei erstens Gleichheit, zweitens FF 724 auf 0 und FF726 auf 1: nach CL-85 übergehen.
(3) Bei Ungleichheit und FF724 auf 1: nach CL-95 übergehen.
(4) Bei Ungleichheit und FF582 auf 0: nach CL-45 übergehen.
(5) Bei FF582 auf 1: nach CL-75 übergehen.
Anfangsadresse erhöhen oder vermindern.
Nach CL-15 übergehen.
Γ-Teil von Register 34 nach Register 764 oder 780 überführen.
X-Teil von Register 516 nach Register 764 oder 780 überführen.
FF 724 auf 1 stellen. Nach CL-45 übergehen.
Y-Teil von Register 34 nach Register 764 oder 780 überführen.
X-Teil von Register 516 nach Register 764 oder 780 überführen.
Suchende.
609 589/270
Bei dem nachstehenden Beispiel für die Auslegung eines Suchbefehls durch das in Fig. 2 gezeigte System wird angenommen, daß der Programmierer den dritten Begriff des zweiten Satzes im dritten Absatz aus der letzten laufenden Adresse in dem Datenblock, dessen Anfangsadresse oder Operand gleich 503 ist, finden muß und daß er weiter wünscht, eine neue laufende Adresse an der Stelle festzulegen, wo er den zweiten Satz dieses dritten Absatzes gefunden hat. Entsprechend dem oben angegebenen Daten- und Befehlsaufbau würde ein solcher Befehl zunächst wie folgt aussehen:
Dieser Befehl zeigt also an, daß die Anfangsadresse des Datensatzes 503 ist, daß der Suchvorgang auf dem Absatzniveau © nicht bei Adresse 503 beginnen soll, sondern an der laufenden Adresse für diesen Datensatz, wie es durch das hinter dem Niveauzeichen® erscheinende $ dargestellt wird, und daß schließlich eine neue laufende Adresse auf dem Satzniveau φ einzustellen ist, wie es das $ andeutet; Der Befehl, der tatsächlich für diesen symbolischen Befehl in die Maschine eingegeben wird, lautet wie folgt:
00000111110111 ©$ + 03; ® $ + 02; φ f + 03.
Dieser Befehl hat lediglich die Anfangsadresse für den Datensatz 503 in eine aus 14 Bits bestehende binäre Adresse umgewandelt, die automatisch die Wortstelle 503 in dem 128 · 128-Speicher ansteuert, wie es dem Fachmann bekannt ist. Ebenso ist jedes der drei Adjektive in diesem Suchbefehl in das vorher angegebene, aus fünf Zeichen bestehende Adjektiv umgewandelt worden, bei dem die Richtungsanzeige, nämlich (+), und eine zweite Ziffer zusätzlich vor die Zählstandzahlen gestellt worden sind, um den zweistelligen Zählstand richtig auszufüllen, wie es das System erfordert.
Bei Durchführung dieser Suchbefehlsauslegung sowie der eigentlichen Suche wird der Operandenteil des Suchbefehls, d. h. die Operandenadresse in binärer Form, direkt in das Operandenregister 1028 eingegeben. Die Adjektive werden direkt in das Befehlsadjektivregister 1000 eingegeben. Da dieses Register jeweils nur acht Zeichen aufnehmen kann, wird, wenn das System zusätzliche Adjektive erfordert, eine konventionelle Steuerschaltung wirksam, wenn der Ausgangsring in die Position Nr. 8 vorrückt, um automatisch den restlichen Teil des Suchbefehls aus einer externen Speicherquelle in das Befehlsadjektivregister zu übertragen.
Die Operationsfolge zur Auslegung des Suchbefehls und der eigentliche Suchumlauf werden durch einen Impuls auf Leitung 1050 eingeleitet, der den monostabilen Multivibrator 0 (SSOJ) anstößt. Infolge der Erregung dieses Teils des Suchtaktgebers / wird der Operand oder die Anfangsadresse durch die Und-Schaltung 1052 zum Anfangsadressenregister 516 weitergeleitet. Außerdem wird durch die Betätigung von SSOJ über Leitung 1054 und Leitung 727 das »Letzter-NichtletzterÄ-Flip-Flop 726 rückgestellt. Beim Abschalten sendet SSOJ einen Ausgangsimpuls zu der Oder-Schaltung 1056, wodurch die nächste Taktgeberstufe SSIJ angestoßen wird. Dadurch werden das Flip-Flop 1030 sowie das erste Zeichen daraufhin gepürft, ob es ein Niveauzeichen ist, über die Und-Schaltung 1044 rückgestellt, die an die Ausgangsleitung 1008 des Ent schlüsselers 1006 angeschlossen ist. Da in dieser An fangsphase der Folge der Ausgangsring 1002 für da Register 1000 in seiner ersten Position ist, befinde sich das Niveauzeichen© im Entschlüsseier 1006 Daher liegt ein Ausgangssignal auf Leitung 1008 voi Infolge der Koinzidenz dieses Ausgangssignals mi dem Ausgangsimpuls des SSIJ empfängt die Tor schaltung 1022 einen Eingangsimpuls, wodurch da
ίο Niveauzeichen© direkt in das Markierungsregiste 528 im Suchregisterteil E gesteuert wird. Beim Ab schalten sendet 551/ einen Eingangsimpuls zu Oder-Schaltung 1058, wodurch die nächste Takt geberstufe 55II/ angestoßen wird. Diese Schaltung
is erfüllt bei ihrer Betätigung als einzige Funktion, dai sie den Ausgangsring 1002 für das Befehlsregiste: 1000 auf Leitung 1060 weiterschaltet. SSIIJ schick beim Abschalten einen Eingangsimpuls zu der Und Schaltung 1062, deren anderer Eingang von der Umkehrstufe 1064 geliefert wird, die erregt ist, da de: monostabile Multivibrator 55VIII/ abgeschaltet ist Der Ausgangsimpuls der Und-Schaltung 1062 schaltet SSIII/ ein. Dieser erzeugt einen Ausgangsimpuli auf Leitung 1066, der einem der Eingänge der Und-Schaltung 1068 zugeführt wird. Am anderen Eingang empfängt die Und-Schaltung 1068 ein auf de] Leitung 1012 aus dem Entschlüsseier 1006 erscheinendes Signal. Dies beruht darauf, daß jetzt das nächste Zeichen des ersten Adjektivs im Entschlüsseier ist und daß es eine Anzeige für eine laufende Adresse ist, d. h. $. Die Und-Schaltung 1068 erzeugi ein Ausgangssignal auf Leitung 1070 und bewirkt die Erregung der Und-Schaltung 1072 mit dem Oder-Tor 1074. Durch dieses Tor wird der Operand odei die binäre Zahl 503 direkt aus dem Operandenregister 1028 in das Hauptadreßregister 300 gesteuert.
Ein weiterer Ausgangsimpuls der Und-Schaltung 1068 schaltet das Flip-Flop 1030 über das Oder-Toi 1076 in den 1-Zustand. Beim Abschalten sendei SSIII/ einen Eingangsimpuls zur Und-Schaltung 1078, die ihren anderen Eingangsimpuls über Leitung 1012 vom Ausgang des Entschlüsselers empfängt, wodurch 55IV/ angestoßen wird. Dadurch wird ein Leseumlauf im 3-D-Teil des Speichers eingeleitet, in dem das Wort an Speicherstelle 503 ausgelesen wird. Diese Adresse ist im Hauptspeicheradreßregister 300 gespeichert. Da dieses Wort die laufende Adresse in den Zeichenstellen 5 und 6 enthält, steht die laufende Adresse für diesen Datensatz jetzt an dieser Stelle im Speicherpufferregister zui Verfügung. Der Ausgangsimpuls von SSIVJ bildet außerdem einen Eingangsimpuls für die Und-Schaltung 1080. Der andere Eingangsimpuls kommt aus den Hauptspeichersteuerungen, die einen Impuls liefern, wenn das adressierte Wort in das Speicherpufferregister eingelesen ist und die Speichersteuerungen automatisch das Wort wieder in den Hauptspeicher eingespeichert haben, um die Wörter in der bekannten nichtlöschenden Arbeitsweise zu erhalten.
Die so betätigte Und-Schaltung 1080 erzeugt einen Ausgangsimpuls auf Leitung 1082, der die laufende Adresse aus den Stellen 5 und 6 des Speicherpufferregisters zum Anfangsadreßregister 516 der Suchregister in Teil E steuert. Der ursprüngliche im Register516 gespeicherte Operand ist also jetzt durch die laufende Adresse aus dem Speicherpufferregister ersetzt worden. Wenn angenommen'wird, daß die an der speziellen Speicherstelle 503 gespeicherte lau-
!ende Adresse die Zahl 1007 ist, ist die binäre Form iieser Zahl 0001111101111, die dann im Register 516 gespeichert wird. SSlVJ sendet beim Abschalten iinen Eingangsimpuls zum Oder-Tor 1058, wodurch wiederum SSII/ eingeschaltet wird. 5511/ schaltet wieder den Steuerring 1002 weiter und steuert das dritte Zeichen des Befehlsadjektivs zum Entschlüsselet Dieses dritte Zeichen des gerade analysierten Adjektivs ist ein +, das einen Rechts-Suchen-Befehl darstellt und die Leitung 1016 des Entschlüsselers erregt. SSIlJ stößt beim Abschalten wieder 551III/ in der oben beschriebenen Weise an. 55III/ betätigt dieses Mal die Und-Schaltung 1046, da Eingangsimpulse auf Leitung 1066 sowie Leitung 1016 ankommen, wie oben erwähnt worden ist. Das Ausgangssignal dieser Und-Schaltung ist ein Rechts-Suchen-Signal, das über Leitung 1084 das Richtungs-Flip-Flop 580 in die Rechts-Suchen-Stellung schaltet. SSIII/ sendet beim Abschalten einen Eingangsimpuls zu der Und-Schaltung 1086, die ihren anderen Eingangsimpuls über Leitung 1088 aus der Oder-Schaltung 1090 empfängt, deren Eingangssignal das Signal auf Leitung 1016 aus dem Entschlüsseier ist. Das Ausgangssignal der Und-Schaltung 1086 gelangt als Eingangssignal zu dem Oder-Tor 1058 und stößt wieder 55II/ an, wodurch das Befehlsregister zur vierten Zeichenstelle des Suchadjektivs weitergeschaltet wird. Da dieses vierte Zeichen eine Null ist, wird die Leitung 1020 des Entschlüsselers erregt, wodurch ein Eingangsimpuls zum Oder-Tor 1090 und Eingangsimpulse zu den Und-Schaltungen 1038 und 1040 gelangen. Beim Abschalten stößt 55II/ wieder 55III/an, unddasUnd-TorlÖ40 empfängt einenEingangsimpuls. Seinen dritten Eingangsimpuls empfängt dieses Und-Tor vom Erste-Zählstandziffer-Flip-Flop 1032, von dem angenommen wird, daß es bei jedem einleitenden Suchvorgang stets in die O-Stellung rückgestellt ist. Der Ausgangsimpuls der Und-Schaltung 1040 stellt das Flip-Flop 1032 in die 1-Stellung zurück mit einer kurzen zeitlichen Verzögerung und steuert außerdem den Inhalt oder die erste Zählstandziffer aus dem Befehlsadjektivregister 1000 über die Torschaltung 1026 in die erste Hälfte des Zählstandregisters 562. 55III/ sendet beim Abschalten einen Eingangsimpuls zu der Und-Schaltung 1086, deren anderer Eingangsimpuls wieder über Leitung 1088 aus der Oder-Schaltung 1090 kommt, die durch den Ausgangsimpuls auf Leitung 1020 betätigt worden ist; es wird also ein weiterer Umlauf von 55II/ eingeleitet, der das fünfte Zeichen des Suchadjektivs, d.h. die Letzte-Zifier oder die Zahl 3, in den Entschlüsseier 1006 steuert und damit die Leitung 1020 wieder erregt. SSIII/ prüft dieses Zeichen durch Anlegen eines Eingangsimpulses an die Und-Schaltung 1038, deren beide andere Eingangsimpulse über Leitung 1020 aus dem Entschlüsseier und Leitung 1092 aus der 1-Stelle des Registers 1032 geliefert werden. Der Ausgangsimpuls der Und-Schaltung 1038 stellt das Register 1032 in die 0-Stellung zurück und stößt außerdem die Taktgeberstufe SSVIII/ an. 55VIII/ sendet einen Eingangsimpuls zu der Und-Schaltung 1094. Es sei noch gesagt, daß die Leitung 1020 bei ihrer Erregung während des laufenden Umlaufs einen Eingangsimpuls zum Oder-Tor 1090 geschickt hat, wodurch die Und-Schaltung 1086 beim Abschalten der Taktgeberstufe 55III/ ihren erforderlichen Eingangsimpuls erhalten hat. Der Ausgangsimpuls der Und-Schaltung 1086 erregt 55II/ wieder, wodurch das Register 1000 zur ersten Stelle des folgenden Adjektivs weitergeschaltet wird. 5511 / findet beim Abschalten jetzt die Und-Schaltung 1062 offen, da die Umkehrstufe 1064 kein Signal erzeugt, weil jetzt 55III/ eingeschaltet ist. Das Ausgangssignal von 55II/ bildet jedoch das andere Eingangssignal für die Und-Schaltung 1094, die einen Ausgangsimpuls auf Leitung 510 erzeugt und einen Suchumlauf im Suchteil des Speichers einleitet, der noch genauer beschrieben wird.
Es sei hier darauf hingewiesen, daß das Anfangsadreßregister die in der oben beschriebenen Art und Weise erhaltene laufende Adresse enthält. Das Markierungsregister 528 enthält die @, deren Erzeugung ebenfalls oben beschrieben ist, und das Zählstandregister enthält die Ziffern 03. Das Richtungs-Flip-Flop ist auf die Rechts-Suchen-Richtung eingestellt, und das Letzter-Nichtletzter-Flip-Flop ist durch Leitung 727 aus der Taktgeberstufe 550/ in den 0-Zustand gebracht worden. Alle für den Suchvorgang nötigen Informationen sind also im Suchteil des Systems enthalten, und das »Suchen«-Signal ist auf Leitung 510 gebildet worden, um ihn einzuleiten. Weiter sei hier erwähnt, daß, da das Flip-Flop 1030 durch das Auftreten einer Anzeige $ in seine 1-Stellung geschaltet worden ist, die Und-Schaltung 1036 einen Eingangsimpuls empfängt, der der Ausgangsimpuls der 1-Seite dieses Flip-Flops ist. Wenn der Suchumlauf für das erste Adjektiv abgeschlossen und die Adresse für die dritte © oder den dritten Absatz, beginnend mit der laufenden Adresse im Speicher, d. h. 1007, fertig ist, erscheint ein Signal auf Leitung 740, das dem zweiten Eingang der Und-Schaltung 1036 zugeführt wird. Das Ausgangssignal dieser Und-Schaltung stößt die Taktgeberstufe 55V/ an. Diese bewirkt bei ihrer Einschaltung, daß die eben gefundene und jetzt im Register 634 gespeicherte Adresse zum Register 516 gesteuert wird. Beim Abschalten stößt SSVJ die Stufe SSVlJ an. Diese bewirkt wieder die Steuerung der Operandenadresse zum Hauptspeicheradreßregister 300 und leitet einen Leseumlauf an dieser Adresse ein, um wieder die Speicherstelle für die laufende Adresse des laufenden Datensatzes im Speicherpufferregister verfügbar zu machen. SSVlJ stößt beim Abschalten SS VII/ an. Dieser bewirkt die Steuerung der im Register 516 gespeicherten Adresse zu den Zeichenstellen 5 und 6 des Speicherpufferregisters, wodurch die aus dem Adjektiv bestimmte neue laufende Adresse im Speicherpufferregisterwort gespeichert wird. Außerdem veranlaßt 55VII/, daß dieses Wort erneut im Hauptspeicher an der Operanden- oder Anfangsadressenspeicherstelle gespeichert wird. Beim Abschalten liefert 55VII/ einen Eingangsimpuls für die Oder-Schaltung 1056, wodurch 551/ eingeschaltet wird, um einen Suchumlauf für das nächste Adjektiv des Suchbefehls, falls eines vorhanden ist, einzuleiten.
Die Suchbefehlauslegung ist für die nächsten beiden Adjektive dieselbe wie für die ersten Adjektive mit folgenden Ausnahmen: In der Folge von Taktimpulsen 55II/ und 55III/, in der die Adressenanzeigen für das zweite Adjektiv bewertet werden, wo die Anzeige für eine eingestellte Adresse $ gefunden wird, wird die Leitung 1014 erregt und sendet einen Eingangsimpuls zum Oder-Tor 1090 sowie einen Eingangsimpuls zu der Und-
Schaltung 1096. Den anderen Eingangsimpuls empfängt die Und-Schaltung 1096 von SSIII/. Das Ausgangssignal der Und-Schaltung 1096 dient als Eingangssignal zum Oder-Tor 1076, wodurch das Strom-Flip-Flop 1030 wieder in seine 1- oder Strom-Ein-Stellung gebracht wird. Durch die Einstellung dieses Flip-Flops gelangt wieder ein Eingangsimpuls zu der Und-Schaltung 1036, aber sonst wird die Steuerschaltung dadurch nicht betroffen. Beim Abschalten stößt 55111/ jetzt wieder 5SII/ an, um die restlichen drei Zeichen des zweiten Suchadjektivs zu bewerten.
Da die Suchschaltung automatisch mit einem Suchbefehl aus der vorher erlangten Adresse eines früheren Suchadjektivs fortfährt, braucht die Folge von Operationen für das zweite Adjektiv nur die Information des Niveauzeichens, d. h. (D, plus dem Markenzählstand, d. h. 02, zu erzeugen. Eine Betätigung von S5VIII/ nach der Bewertung des fünften Zeichens des zweiten Suchadjektivs bewirkt daher, daß der zweite Suchumlauf fortgesetzt und abgeschlossen wird. Nach Abschluß des zweiten Suchumlaufs wird die Und-Schaltung 1036 wieder veranlaßt, eine Folge von SSVJ und 55VT/ und 55 VII/ einzuleiten, wie sie oben beschrieben ist, um diese neue laufende Adresse in die spezielle Speicherstelle 503 für den betreffenden Datensatz zu steuern, wie es oben erläutert worden ist und wie es die Suchadjektivadresse erfordert, nämlich die Anzeige für eine eingestellte Adresse $.
Im dritten Adjektiv ist das zweite Zeichen eine einfache Adressenanzeige oder das f. Beim Auftreten dieser Adressenanzeige wird die Leitung 1010 erregt, wodurch 55II/ automatisch über die Oder-Schaltung 1090; die Und-Schaltung 1086 und die Oder-Schaltung 1058 in der schon beschriebenen Weise rückgestellt wird. Diese Adressenanzeige beeinflußt die Einstellung des Flip-Flops 1030 nicht, sondern läßt es in seiner 0-Stellung bleiben, in die es durch die Taktimpulsfolge 551/ rückgestellt worden ist. Nachdem der Suchteil das dritte Suchadjektiv abgeschlossen hat, wird durch die Anforderung nach einem neuen Adjektiv, die wieder auf Leitung 740 eintrifft, diesmal die Und-Schaltung 1034 betätigt, da das Flip-Flop 1030 in der 0-Stellung ist und der Ausgangsimpuls der 0-Stellung den zweiten Eingangsimpuls für die Und-Schaltung 1034 bildet.
Da die drei Suchadjektive des vorliegenden Suchbefehls abgeschlossen sind, erscheint nun im Suchbefehl an der ersten Stelle dessen, was normalerweise das nächste Adjektiv gewesen wäre, irgendein anderes Zeichen als ein Niveauzeichen. Dieses Zeichen, das im Entschlüsseier während der Impulsfolge von 551/ auftritt, bewirkt die Erzeugung eines Ausgangsimpulses durch die Und-Schaltung 1042, da diesmal die Leitung 1008 nicht erregt ist und so die Umkehrstufe 1098 ein Signal erzeugt. Da-.mit erhält die Und-Schaltung 1042 die beiden Eingangssignale zusammen mit 551/. Das Ausgangssignal der Und-Schaltung 1042 stellt das Letzter-Nichtletzter-Flip-Flop 726 in die 1- oder Letzter-Stellung, wodurch eine weitere Suchfolge eingeleitet wird, um die Endadresse für das gesuchte Datenstück zu finden.
Das nachstehende Beispiel für eine Suchfolge benutzt das oben angegebene Suchbeispiel nicht, da es lediglich bestimmte Zahlen in die verschiedenen Anfangsbedingungsregister für den Suchvorgang eingeben würde. Die Suchfolge wird vielmehr ganz a gemein beschrieben.
Die Suchoperation wird durch den Befe »Suchen« auf Leitung 510 aus 55VIII/ eingeleit Gemäß Fig. 2h, die den Suchtaktgeber, Teil zeigt, wird dieser Einleitungsimpuls der Leitung 5 zugeführt. Er stößt über die Oder-Schaltung 512 d ersten monostabilen Multivibrator des Suchtal gebers an. Dadurch entsteht ein Ausgangssignal a
ίο Leitung 514, das als Taktimpuls CL-IS bezeichr wird. Der Befehl »Suche« setzt nicht nur den Sue taktgeber in Betrieb, sondern stellt auch die ob aufgeführten Anfangsbedingungen ein. Durch d Ausgangsimpuls auf Leitung 514 wird die im Rej ster516 stehende Anfangsadresse durch das Ode Tor 517 zum Register 300 übertragen, dem Speiche adreßregister des Speichers. Leitung 514 führt : der Und-Schaltung 518, und die in 516 stehen« Adresse wird nach 300 gesteuert. Der erste mon stabile Multivibrator schaltet nun ab und erzeu einen Impuls auf Leitung 520, der den zweiti monostabilen Multivibrator des Taktgebers anstöJi Jetzt wird die Leitung 522 erregt, die zu der Un Schaltung 524 führt, deren Ausgangsimpuls ein« 2-£>-Speicherumlauf in der Speichereinheit einleiti Leitung 522 ist an die Und-Schaltung 526 ang schlossen. Dadurch wird die Markierung im Regist 528 über die Leitungen 530 und die Oder-Schaltui
532 in die Speichersteuerungen übertragen. Die ζ letzt erwähnten Steuerungen, die sich über Leitung!
533 in die Speichersteuereinheit erstrecken, machi Tore, wie z. B. 304, 534 und 536, wirksam. Die Tore werden zum richtigen Zeitpunkt während d Speicherumlaufs erregt, um während des Lesetei des Speicherumlaufs eine Zeile einer Niveauebei auszulesen. Dieser Vorgang wird weiter unten näh erläutert. Außerdem wird das Tor 538 zum richtig« Zeitpunkt durch den Speichertaktgeber erregt, so di ein Lesevorgang ausgeführt und die Reihe von Bi in das Register 312 übertragen werden kann.
Der Speicher wird wie folgt adressiert: D X-Adresse wird durch die Entschlüsseier 914 en schlüsselt und über das Tor 934 einer 8-16-Matr von Vollwählkerntreibern 936, die den Treibern 54 und 549 gleichen, zugeführt. Auf diese Weise wn ein beliebiger Z-Treiber ausgewählt, der gemäß d< Darstellung auf eine der Ebenen des 2-£>-Speiche: einwirkt. Die auszuwählende Ebene wird dadurc bestimmt, welches der Tore, wie z. B. 922, 924 od< 926, durch die erregte Leitung 533 wirksam gemacl wird um eine Reihe von Bits aus der durch d: Markierung im Register 528 ausgewählten Stufei ebene auszulesen. Diese Reihe von 128 Bits wird i das Register 312 eingegeben. Das Tor 538 wird durc den Speichertaktgeber während des Leseteils ds 2-D-Speicherumlaufs erregt. Wenn der »Habi Speicher-benutzt«-Suchimpuls auf Leitung 144' e: scheint, stößt er den dritten monostabilen Multiv brator des Taktgebers an, und die Leitung 556 wir erregt. Leitung 556 verläuft zum Tor 314, und durc sie wird der Inhalt des Registers 312 zum Regist« 610 gesteuert. Die Leitung 556 macht das Tor 55 vwirksam, um die F-Adresse aus dem Register 300 i das Register 634 zu leiten. Die Leitung 556 betätig die Und-Schaltung 560, um den im Register 56 stehenden Zählstand zum Vergleichsregister 638 ζ übertragen. Beim Abschalten erzeugt der dritte monc stabile Multivibrator einen Impuls auf Leitung 56^
der über die Oder-Schaltung 566 den vierten monostabilen Multivibrator des Taktgebers anstößt. Hierdurch wird die Leitung 568 erregt. Sie betätigt die Und-Schaltung 570, um den Inhalt des Registers 634 zum Entschlüsseier 648 zu übertragen. Beim Abschalten bewirkt der vierte Multivibrator die Erregung der Leitung 572, die den fünften Multivibrator anstößt und Leitung 574 erregt. Der Ausgangsimpuls auf Leitung 574 wird den Und-Schaltungen 576 und 578 zugeführt, die ihren anderen Eingangsimpuls vom Richtungs-Flip-Flop 580 empfangen, das im 1-Zustand den Suchvorgang nach links und im O-Zustand den Suchvorgang nach rechts stattfinden läßt. Wenn angenommen wird, daß das Überlauf-Flip-Flop 582 im 1-Zustand ist und daß eine Rechts-Suchen-Operation erforderlich ist, erzeugt die Und-Schaltung 584 einen Ausgangsimpuls, der dem Entschlüsseier 648 zugeführt wird. Die Schaltungen im Entschlüsseier arbeiten in Verbindung mit dem Suchring 614, wie oben erläutert, um den Suchvorgang eine Stelle rechts von der im Entschlüsseier 648 stehenden Y-Adresse einzuleiten. Dieser Suchvorgang geht im Suchring weiter, bis ein Niveauzeichen, wie es im Register 528 spezifiziert ist, angetroffen wird: Beim Antreffen eines Niveauzeichens erscheint ein Ausgangsimpuls auf Leitung 626, durch den der Zähler 628 um 1 weitergeschaltet wird. Die Zahl im Zähler 626 wird mit der Zahl im Register 638 verglichen, und es erscheint ein Ausgangsimpuls auf Leitung 586, wenn sie nicht übereinstimmen, und ein Ausgangsimpuls auf Leitung 640, wenn sie übereinstimmen. Das Vergleichs-Flip-Flop 588 wird auf 0 gestellt, wenn die Zahlen nicht übereinstimmen, und auf 1, wenn sie übereinstimmen. Wenn angenommen wird, daß das erste Resultat des Ausgangsimpulses auf Leitung 574 eine »Nichtübereinstimmung« ist, wird das Flip-Flop 588 auf 0 gestellt. Wie noch erläutert wird, bleibt das »Überlauf «-Flip-Flop 582 im 1-Zustand. Das einzige Resultat des Ausgangsimpulses auf Leitung 574 ist, daß das Vergleichs-Flip-Flop 588 auf 0 gestellt wird. Beim Abschalten des monostabilen Multivibrators 5 wird der monostabile Multivibrator 6 angestoßen, wodurch Leitung 590 erregt wird. Wie aus der Taktimpulstabelle hervorgeht, werden vom Ausgangsimpuls auf Leitung 590 fünf Prüfungen durchgeführt, von denen aber nur eine erfolgreich sein kann. In dem hier gezeigten Beispiel ist es der Ausgang 504 aus der Und-Schaltung 592. Der Impuls auf Leitung 590 wird der Und-Schaltung 594 zugeführt, deren anderer Eingangsimpuls von der 1-Seite des Flip-Flops 582 kommt. Der Ausgangsimpuls der Und-Schaltung 594 wird der einen Seite der Und-Schaltung 592 zugeleitet, deren andere Seite durch den 0-Zustand des Flip-Flops 588 erregt wird. Der Impuls auf Leitung 590 erscheint daher auf Leitung 504. Diese Leitung 504 verläuft zum Flip-Flop 596 und bringt es in den 1-Zustand. Gleichzeitig stellt der Impuls auf Leitung 504 die Flip-Flops 598, 700, 702 und 704 in den 0-Zustand. Die Und-Schaltung 706 erzeugt daher einen Ausgangsimpuls, wenn der sechste monostabile Multivibrator abschaltet, der über Leitung 708 zu der Oder-Schaltung 566 gelangt, deren Ausgangsimpuls den vierten monostabilen Multivibrator anstößt, um Leitung 568 wieder zu erregen. Es sei noch erwähnt, daß in der vorhergehenden Suchoperation die Stelle, in der das Niveauzeichen festgestellt wird, zum Verschlüsseier 630 übertragen und in eine Adresse verschlüsselt wird, die in das Register 634 eingespeichert wird. Durch das Ausgangssignal auf Leitung 568 wird der Inhalt von 634 zum Verschlüsseier 648 übertragen, und wenn der vierte Multivibrator abschaltet, stößt er wieder den fünften Multivibrator an, wodurch die Leitung 574 erregt und der nächste Suchimpuls erzeugt wird.
Die Suchimpulse müssen wiederholt werden, bis der Inhalt des Zählers 628 mit dem Vergleichsregister 638 übereinstimmt. Wenn der zweite Suchimpuls auf Leitung 574 kein Niveauzeichen im Suchring 614 findet, tritt dieser Impuls aus dem rechten Ende des Suchringes auf Leitung 710 heraus und schaltet über die Oder-Schaltung 712 das Uberlauf-Flip-Flop 582 auf 0. In diesem Falle erscheint kein Ausgangsimpuls auf Leitung 626, die den Eingang zum Zähler 628 bildet. Es folgt ein Taktimpuls Nummer 6, der der Impuls auf Leitung 590 ist. Der Zustand, der als Ergebnis des Taktimpulses Num-
ao mer6 abgefühlt wird, ist das Ausgangssignal der Und-Schaltung 714 auf Leitung 506. Leitung 506 verläuft zum Flip-Flop 702 und bringt es in den 1-Zustand; gleichzeitig schaltet sie die Flip-Flops 598, 700, 596 und 704 in den 0-Zustand. Wenn der sechste monostabile Multivibrator abschaltet, stößt er über die Und-Schaltung 716 den siebenten Multivibrator an. Der Ausgangsimpuls auf Leitung 718 wird nun der Und-Schaltung 720 zugeführt, deren anderer Eingang durch die von der »Rechts-Suchen«- Seite von 580 kommenden Rechts-Suchen-Leitung erregt wird. Hierdurch wird die Z-Adresse im Register 516 um Eins erhöht. Beim Abschalten stößt der siebente monostabile Multivibrator den ersten Multivibrator an, wodurch der Taktgeber auf den Taktimpuls Nummer 1 zurückgeschaltet wird. Die Taktimpulse Nummer 1 und 2 werden wiederholt, um eine neue Reihe der ausgewählten Stufenebene in das Register 312 zu bringen und einen neuen Speicherumlauf einzuleiten. Nach dem Speicherumlauf treten die Taktimpulse Nummer 3, 4, 5 und 6 auf, die einen ersten Suchvorgang durch diese neue Bitreihe einleiten. Weil das Flip-Flop 582 im 0-Zustand ist, wird der Ausgangsimpuls der Und-Schaltung 576 zur Leitung 722 geleitet, wodurch der Such-Vorgang am linken Ende des Suchrings begonnen wird. Wenn ein Niveauzeichen festgestellt wird, erscheint ein Impuls auf Leitung 626. Außerdem sei angenommen, daß als Ergebnis dieses Impulses der Zähler 628 mit der Vergleichsschaltung 638 übereinstimmt. In diesem Falle erscheint ein Impuls auf Leitung 640 und bringt das Vergleichs-Flip-Flop 588 in den 1-Zustand. Die Prüfung, die als Ergebnis des Taktimpulses Nummer 6 erfolgreich sein kann, ist die zwischen dem Vergleichs-Flip-Flop 588, dem »Suchvorgang-Ende«-Flip-Flop 724 und dem »Letzter-Nichtletzter«-Flip-Flop 726. Wenn das Flip-Flop 726 auf 0 steht, was bedeutet, daß der eben beendete Suchvorgang nicht die letzte Markierung in dem Datensatz ist, muß ein Signal erzeugt werden, um aus dem Programm das nächste zu suchende Niveauzeichen anzufordern. Das geschieht wie folgt: Das Flip-Flop 724 steht auf 0, was bedeutet, daß die Leitung 728 erregt ist. Daher erzeugt die Und-Schaltung 730 einen Ausgangsimpuls, weil ihr anderer Eingang von der O-Seite des Flip-Flops 726 gespeist wird. Dieser Ausgangsimpuls bildet über Leitung 732 einen Eingangsimpuls der Und-Schaltung 734, die ihren anderen Eingangsimpuls von der
609 589/270
Und-Schaltung 736 erhält. Die Und-Schaltung 736 erzeugt einen Ausgangsimpuls, weil das Flip-Flop 588 auf 1 steht und die andere Seite der Und-Schaltung 736 den Impuls von Leitung 590 empfängt. Der Impuls auf Leitung 590 geht also durch die Und-Schaltungen 736 und 734 hindurch und erscheint auf Leitung 508, um das Flip-Flop 704 in den 1-Zustand zu schalten. Daher erzeugt beim Abschalten des sechsten monostabilen Multivibrators die Und-Schaltung 738 einen Impuls auf Leitung 740, der dem Programm anzeigt, daß es ein neues Niveauzeichen liefern muß.
Letztes Niveauzeichen in einem Datensatz
Das Flip-Flop 726 wird in diesem Falle durch die Anfangsbedingungen auf 1 gestellt, die durch den »Suchen«-Befehl eingestellt werden. Der durch den Taktimpuls CLS S durchgeführte Suchvorgang gleicht dem oben beschriebenen, aber es liegen neue Bedingungen vor, die während des Taktimpulses CL-6S geprüft werden müssen. Wenn der Zähler 628 als Folge des Anlegens eines CL-55-Taktimpulses mit der Vergleichseinheit 638 übereinstimmt, ist die durch CL-6S zu prüfende Bedingung die einer Übereinstimmung, wobei das Flip-Flop 724 auf 0 und das Flip-Flop 726 auf 1 steht. Die Prüfung, die in diesem Falle erfolgreich ist, ist der Ausgang der Und-Schaltung 736, deren einer Eingang die Leitung 590 und deren anderer Eingang das im 1-Zustand befindliche Vergleichs-FIip-Flop 588 sind. Der Ausgangsimpuls der Und-Schaltung gelangt über Leitung 742 zu der Und-Schaltung 744. Der andere Eingangsimpuls der Und-Schaltung 744 kommt von der Und-Schaltung 746, die dadurch betätigt wird, daß das Flip-Flop 726 im 1- und das Flip-Flop 724 im 0-Zustand sind. Es entsteht also ein Ausgangsimpuls auf Leitung 500, der das Flip-Flop 598 auf 1 und gleichzeitig die Flip-Flops 700, 596, 702 und 704 auf 0 schaltet. Daher wird die Und-Schaltung 748 betätigt, wenn der sechste monostabile Multivibrator abschaltet, um den achten Multivibrator anzustoßen. Folglich wird die Leitung 750 erregt. Diese betätigt über die Oder-Schaltung 752 die Und-Schaltung 644 und überträgt den Inhalt des Registers 634 zum Kanal 646. Der Kanal 646 verläuft zu den Und-Schaltungen 754 und 756. Weil im ersten Teil dieser Beschreibung angenommen worden ist, daß eine »Rechts-Suchen«-Operation im Gange sei, wird die Und-Schaltung 758 durch die Leitung 760, die den O-Ausgangsimpuls des Flip-Flops 580 führt, und den Impuls auf Leitung 750 betätigt. Der Ausgangsimpuls der Und-Schaltung 758 geht also durch die Oder-Schaltung 762 und betätigt die Und-Schaltungen754 und 755, die es gestatten, den Inhalt des Registers 634 in den Y-Teil des »Beginn«-Registers 764 einzugeben und den X-Teil der Adresse im Register 516 in den X-Teil des Registers 764 einzuspeichern. Das Flip-Flop 724 wird durch den Impuls auf Leitung 750 in den 1-Zustand umgeschaltet. Wenn der achte monostabile Multivibrator abschaltet, überträgt er einen Impuls über die Leitung 766 und die Oder-Schaltung 566, der den vierten monostabilen Multivibrator anstößt. Die Taktimpulse Nummer 4 und 5 werden wiederholt, und der Taktimpuls CL-6S hat zu prüfen, ob eine Nichtübereinstimmung vorliegt und das Flip-Flop 724 im 1-Zustand ist. Wenn dies der Fall ist, erzeugt die Und-Schaltung 768 einen Ausgangsimpuls, weil ihr eines Eingangssignal der Impuls auf Leitung 590 und itu anderes Eingangssignal der O-Ausgangsimpuls dei Vergleichs-Flip-Flops 588 sind. Der Ausgangsimpuli der Und-Schaltung 768 wird der Und-Schaltung 77« zugeführt, die ihren zweiten Eingangsimpuls von dei 1-Seite des Flip-Flops 724 empfängt. Daher liegt eic Ausgangsimpuls auf Leitung 502 vor, der das Flip-
ίο Flop 700 in den 1-Zustand und die Flip-Flops 59$ 596, 702 und 704 in den 0-Zustand schaltet. Dahei erzeugt die Und-Schaltung 772 einen Ausgangsimpuls, wenn der sechste Multivibrator abschaltet, um den neunten Multivibrator anzustoßen und die Leitung 774 zu erregen. Die Leitung 774 betätigi über die Oder-Schaltung 752 die Und-Schaltungen 644 und 776. Am anderen Eingang der Und-Schaltung 776 liegt der Impuls auf Leitung 760, weil Met eine »Rechts-Suchene-Operation beschrieben wird, Der Ausgangsimpuls der Und-Schaltung 776 betätigi über die Oder-Schaltung 778 die Und-Schaltungen 756 und 757, die es gestatten, den Inhalt des Registers 634 in den Y-Teil des »ENDE«-Registers 780 und den Z-Teil dieser im Register 516 gespeicherten Adresse in den Z-Teil des »ENDE«-Registers 780 einzubringen.
Ein weiteres wichtiges Merkmal der Erfindung besteht darin, daß für die laufende Adresse eines Datensatzes mehrere Speicherstellen vorgesehen sind.
Die Wichtigkeit dieses Merkmales liegt darin, daß hierdurch aufeinanderfolgende Elemente eines Datensatzes automatisch in vorherbestimmter, aber verschiedener Reihenfolge unter Verwendung von Befehlen mit verschiedenen laufenden Adressen und verschiedenen Adjektiven ausgelesen werden können. Vielleicht das einfachste Beispiel für eine solche Aufgabe ist eine Matrizenmultiplikation, bei welcher der Datensatz eine Reihe von Zahlen ist, die jeweils durch ihre eigenen Niveauzeichen gekennzeichnet und daher getrennt ansteuerbar sind. Wenn z. B. die erste, die zweite und die dritte Zahl dieser Reihe mit der ersten, der vierten bzw. der siebenten Zahl dieser Reihe multipliziert werden sollen, kann das in einer solchen Zahlenmatrix mittels der Erfindung wie folgt erreicht werden:
Es sei angenommen, daß am Anfang eines Datensatzes zwei Speicherstellen A und B für die laufende Adresse vorgesehen sind und daß die einzelnen Elemente der Matrix das hierarchische Niveau 2 haben. Ein Befehl der nachstehenden Art liefert dann automatisch die nötigen Informationen, um die Zahlen vor aufeinanderfolgende Multiplikationen nacheinander zu übertragen:
Erster Schritt: Λ
Zweiter Schritt:
Dritter Schritt:
Β©$0
usw.
Aus den vorstehenden Suchbefehlen geht hervor, daß der Suchring eine Mindestanzahl von Schritten ausführen muß, um aufeinanderfolgende Elemente der Matrix für die beschriebene Rechenoperation anzusteuern. Wenn angenommen wird, daß die
ersten sechs Zahlen der Matrix die Zahlen 1 bis 16 sind, würden mit den oben angegebenen Operationen automatisch folgende Zahlen der Matrix angesteuert werden:
(1)1-1; (2)2-4; (3)3-7; (4)4-10.
Durch Anwendung der Prinzipien der Erfindung in der oben angegebenen Art und Weise, d. h. durch das Vorsehen mehrerer Speicherstellen für laufende Adressen, die jedem Maschinenwort zugeordnet sind und die jeweils in einer dem Programmierer bekannten Weise ansteuerbar sind, ist es möglich, ganz einzigartige Operationen in bezug auf bestimmte Arten von Datensätzen durchzuführen, wodurch sowohl die Programmierung stark vereinfacht als auch die zur Ausführung der Suchvorgänge erforderliche Maschinenzeit beträchtlich verringert wird.
Es sei darauf hingewiesen, daß die Speicherstelle für die laufende Adresse nicht unbedingt an der Operanden- oder Anfangsadresse des Datensatzes liegen muß. Dies wurde hier lediglich als Beispiel gewählt. Sie kann an einer beliebigen Stelle des Datensatzes liegen, solange sie aus dessen Anfangsadresse automatisch bestimmt werden kann.
Obwohl sich die Erfindung besonders für ein hierarchisch organisiertes Datenspeicher- und Suchsystem mit veränderlicher Feldlänge eignet, kann sie vorteilhaft auch in einem solchen Speichersystem mit feststehender Feldlänge verwendet werden, um dessen Zugriffszeit zu verringern.
Das beschriebene System stellt lediglich ein Ausführungsbeispiel dar. Es können im Rahmen der Erfindung viele Änderungen vorgenommen werden. So können auch andere wortorientierte Speichertypen verwendet werden, wie z. B. Dünnschicht-Kryotronspeicher. Der Hilfsspeicher könnte z. B. ein Teil des dreidimensionalen Speichers sein, d. h., er könnte mehrere Ebenen des dreidimensionalen Speichers in der nach Wörtern organisierten Richtung umfassen.
Weiter wäre es möglich, mehr als eine Ebene des Hilfsspeichers gleichzeitig anzusteuern. Schließlich könnte die Steuerung der Adjektivauslegung vollständig asynchron sein, mit einem einzigen Eingangsimpuls und einer Vielzahl von Prüfschaltungen.

Claims (2)

Patentansprüche:
1. Verfahren zur Speicherung hierarchisch geordneter Datenketten mit variabler Länge der Datenteile innerhalb der hierarchischen Niveaus und zur Entnahme von Datenteilen eines beliebigen Niveaus, bei welchem nach Patentanmeldung D25844IXc/42m in eine zu speichernde Datenkette vor der Eingabe in den Speicher an den Anfang eines jeden hierarchischen Niveaus ein das Niveau markierendes Zeichen eingefügt wird, weiterhin die Eingabesteuerung des Speichers ein einlaufendes Niveauzeichen in einem Hilfsspeicher einträgt und die zugehörigen Daten in einer der Speicherstelle des Hilfsspeichers eindeutig zugeordneten Stelle des Hauptspeichers einträgt und schließlich bei der Suche nach einem Datenteil das zugehörige Niveauzeichen vorgegeben, der Hilfsspeicher nach diesem Zeichen durchsucht und aus der gefundenen Hilf sspeicheradresse die Hauptspeicheradresse ermittelt wird, dadurch gekennzeichnet, daß am Ende oder während eines Suchvorganges die zuletzt anliegende Speicheradresse an einer der Anfangsadresse einer gespeicherten Datenkette fest zugeordneten Hauptspeicherstelle abgespeichert und zur späteren Fortsetzung des Suchvorganges an dieser Stelle automatisch durch Aufrufen der genannten Anfangsadresse ausgelesen und an deren Stelle zur Adressierung der Datenkette verwendet wird.
2. Anordnung zur Durchführung des Verfahrens nach Anspruch 1, dadurch gekennzeichnet, daß unter der Steuerung einer Suchbefehl-Auswerteeinrichtung (/ in Fig. 2i) eine der in einem Suchbefehlsregister (1000) enthaltenen Anfangsadressen einer gespeicherten Datenkette fest zugeordnete Hauptspeicherstelle über das Speicherpufferregister (96) am Ende oder während eines Suchvorganges zum Abspeichern der zuletzt anliegenden Speicheradresse mit dem Ausgang und zu Beginn eines Suchvorganges zum Auslesen des dort abgespeicherten Wertes mit dem Eingang des Speicheradreßregisters (300) verbindbar ist.
Hierzu 5 Blatt Zeichnungen
609 589/270 7.66 © Bundesdruckerei Berlin
DE1964J0025953 1963-06-03 1964-06-02 Verfahren zur Speicherung hierarchisch geordneter Datenketten und Anordnung zur Durchfuehrung dieses Verfahrens Expired DE1221037C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US285443A US3293615A (en) 1963-06-03 1963-06-03 Current addressing system

Publications (2)

Publication Number Publication Date
DE1221037B true DE1221037B (de) 1966-07-14
DE1221037C2 DE1221037C2 (de) 1973-11-15

Family

ID=23094247

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1964J0025953 Expired DE1221037C2 (de) 1963-06-03 1964-06-02 Verfahren zur Speicherung hierarchisch geordneter Datenketten und Anordnung zur Durchfuehrung dieses Verfahrens

Country Status (3)

Country Link
US (1) US3293615A (de)
DE (1) DE1221037C2 (de)
GB (1) GB1022794A (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE26429E (en) * 1964-12-08 1968-08-06 Information retrieval system and method
US3394354A (en) * 1965-11-30 1968-07-23 Ibm Multiple word random access memory
US3422406A (en) * 1966-05-23 1969-01-14 Gen Precision Inc Internal address generating system
NL6815506A (de) * 1968-10-31 1970-05-04
GB1265006A (de) * 1968-11-08 1972-03-01
US4003029A (en) * 1974-08-09 1977-01-11 Asahi Kogaku Kogyo Kabushiki Kaisha Information search system
GB1497678A (en) * 1975-02-21 1978-01-12 Int Computers Ltd Data processing systems
US4099242A (en) * 1976-11-03 1978-07-04 Houston George B One-pass general associative search processor

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3093814A (en) * 1959-04-29 1963-06-11 Ibm Tag memory

Also Published As

Publication number Publication date
US3293615A (en) 1966-12-20
GB1022794A (en) 1966-03-16
DE1221037C2 (de) 1973-11-15

Similar Documents

Publication Publication Date Title
DE1499193A1 (de) Datenverarbeitungsanlage
DE1282337B (de) Programmgesteuerte elektronische Rechenanlage
DE1168127B (de) Schaltungsanordnung zum Vergleich von Zahlen
DE2318069A1 (de) Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix
DE1424732A1 (de) Elektronische Ziffernrechenmaschine
DE1499182B2 (de) Datenspeichersystem
DE1806535A1 (de) Digitale Rechenanlage
DE1171650B (de) Maschine zur serienmaessigen Verarbeitung von Daten in binaerer Zeichenverschluesselung
DE1221037C2 (de) Verfahren zur Speicherung hierarchisch geordneter Datenketten und Anordnung zur Durchfuehrung dieses Verfahrens
DE2054941C2 (de) Anordnung zur Auswahl von Datensätzen
DE1214906B (de) Verfahren und Anordnung zur Speicherung und Entnahme hierarchisch geordneter Daten
DE2343501C3 (de) Steuerschaltung für zumindest eine Rechenanlage mit mehreren für die Durchführung von Ein-/Ausgabe-Programmen bestimmten Registern
DE1474042C3 (de) Datenspeichersystem zur Ein- und Ausspeicherung von in Ketten zusammengefaßten Daten unterschiedlicher Feldlänge
DE1184122B (de) Addiervorrichtung
DE1955797A1 (de) Verfahren zur Steuerung der Verarbeitung von Eingabedaten und Datenverarbeitungsanlage hierfuer
EP0230994A2 (de) Verfahren zur Steuerung des Programmablaufs bei der Formularbearbeitung in Datenverarbeitungsanlagen
DE2419836C3 (de) Schaltungsanordnung zur Durchführung von Unterprogramm-Sprungbefehlen in Datenverarbeitungsanlagen
DE1449584A1 (de) Anordnung zur UEbertragung von Daten einer Loch- oder Magnetkarte in eine Datenverarbeitungsanlage oder umgekehrt
EP1204917A1 (de) Operandenstapelspeicher und verfahren zum betreiben eines operandenstapelspeichers
DE1181948B (de) Elektronische Datenverarbeitungsmaschine
DE1211005B (de) Vorrichtung zur Ermittlung von Speicheradressen
DE2747195C3 (de) Vorrichtung zum Verarbeiten von Druckdaten
DE1774917A1 (de) Elektronische Rechenanlage
DE2059341C2 (de) Elektronische Datenverarbeitungsanlage
DE1276938C2 (de) Anordnung zum feststellen einer umdrehung des typenrades eines schnelldruckers

Legal Events

Date Code Title Description
E77 Valid patent as to the heymanns-index 1977