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 VerfahrensInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 62
- 230000008569 process Effects 0.000 title claims description 48
- 230000015654 memory Effects 0.000 claims description 259
- 238000011156 evaluation Methods 0.000 claims description 4
- 238000012546 transfer Methods 0.000 description 26
- 230000001960 triggered effect Effects 0.000 description 16
- 239000011159 matrix material Substances 0.000 description 12
- 101000642832 Solanum tuberosum Soluble starch synthase 3, chloroplastic/amyloplastic Proteins 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 101100043635 Solanum tuberosum SS2 gene Proteins 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 239000003550 marker Substances 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 101000642823 Solanum tuberosum Granule-bound starch synthase 2, chloroplastic/amyloplastic Proteins 0.000 description 3
- 101100043638 Solanum tuberosum SS3 gene Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013479 data entry Methods 0.000 description 2
- 230000005284 excitation Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000004804 winding Methods 0.000 description 2
- GSDSWSVVBLHKDQ-UHFFFAOYSA-N 9-fluoro-3-methyl-10-(4-methylpiperazin-1-yl)-7-oxo-2,3-dihydro-7H-[1,4]oxazino[2,3,4-ij]quinoline-6-carboxylic acid Chemical compound FC1=CC(C(C(C(O)=O)=C2)=O)=C3N2C(C)COC3=C1N1CCN(C)CC1 GSDSWSVVBLHKDQ-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
- G06F16/902—Indexing; 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
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
geordneter Datenketten und Anordnung zur
Durchführung dieses Verfahrens
Zusatz zur Anmeldung: J 25844IX c/42 m —
Auslegeschrift 1214 906
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
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.
© | * | * | 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
•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 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
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.
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-
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-
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
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.
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
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.
wenn nicht -^ CL-S.
CL-S Ausgabering fortschalten.
sp.reg.-Ring fortschalten,
6 zurückstellen,
nach CL-I gehen.
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.
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.
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.
Niveauring 58 auf 0 stellen.
Vergleichskippschaltung 64 auf 0 stellen,
nach CL-IO gehen.
CL-IO 6 zu Vergleichsschaltungen durchgeben,
nach CL-Il gehen.
nach CL-Il gehen.
CL-Il Vergleichskippschaltung einstellen, wenn
Vergleichszähler auf 1 ist,
nach CL-3 gehen.
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.
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.
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.
»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.
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.
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.
55VI/ einstellen.
Adresse von Register 1028 nach MAR überführen.
Spezielles Speicherwort nach MBR auslesen.
SS VII/ einstellen. CL-TS
SS VII/ einstellen. CL-TS
Adresse in Register 516 in die Ziffernstellen 5 und 6 von MBR überführen.
MBR rückspeichern. CL-85
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
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.
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.
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.
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.
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.
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:
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)
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
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3093814A (en) * | 1959-04-29 | 1963-06-11 | Ibm | Tag memory |
-
1963
- 1963-06-03 US US285443A patent/US3293615A/en not_active Expired - Lifetime
-
1964
- 1964-05-26 GB GB21794/64A patent/GB1022794A/en not_active Expired
- 1964-06-02 DE DE1964J0025953 patent/DE1221037C2/de not_active Expired
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 |