DE1214906B - Verfahren und Anordnung zur Speicherung und Entnahme hierarchisch geordneter Daten - Google Patents

Verfahren und Anordnung zur Speicherung und Entnahme hierarchisch geordneter Daten

Info

Publication number
DE1214906B
DE1214906B DEJ25844A DEJ0025844A DE1214906B DE 1214906 B DE1214906 B DE 1214906B DE J25844 A DEJ25844 A DE J25844A DE J0025844 A DEJ0025844 A DE J0025844A DE 1214906 B DE1214906 B DE 1214906B
Authority
DE
Germany
Prior art keywords
level
memory
register
circuit
data
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.)
Pending
Application number
DEJ25844A
Other languages
English (en)
Inventor
Rex Rice
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE1214906B publication Critical patent/DE1214906B/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • G06F16/902Indexing; Data structures therefor; Storage structures using directory or table look-up using more than one table in sequence, i.e. systems with three or more layers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)

Description

BUNDESREPUBLIK DEUTSCHLAND
DEUTSCHES
PATENTAMT
AUSLEGESCHRIFT
Int. CL:
Nummer:
Aktenzeichen:
Anmeldetag:
Auslegetag:
G06f
Deutsche KL: 42 m-14
n, 3. @/
1214 906 ■■ v;-_,,ή
J 25844IX c/42 m
15. Mai 1964
21. April 1966
Die Erfindung betrifft ein Verfahren, Datenketten aus Teilen unterschiedlicher Länge so in Speicher einzutragen, daß danach die Entnahme gewünschter Teile der Daten ohne Kenntnis der absoluten Adresse des Speicherplatzes möglich ist.
Ein Digitalrechner kann allgemein als ein datenverarbeitendes System betrachtet werden, das Daten in einer Form aufnimmt und sie nach Durchführung einiger Operationen wieder abgibt; diese Operationen werden nach Vorschriften durchgeführt, die von der Bedienungsperson angegeben- werden. Diese Vorschriften und die Daten müssen in einer dem Rechner verständlichen Form angegeben werden. Nicht alle -bestehenden Rechner »verstehen« jedoch dieselbe Sprache; es war deshalb bisher die Aufgabe des Programmierers, die Übersetzung in die betreffende Sprache durchzuführen. Um diese mühsame Arbeit zu erleichtern, wurde automatisches Programmieren entwickelt, wobei die Maschine selbst diese Übersetzungsarbeit übernimmt. Zu diesem Zweck wurden sogenannte problemorientierte Sprachen FORTRAN, ALGOL oder COBOL geschaffen. Mit wachsender1 Maschinengröße wurden diese Programmierungshilfen ebenfalls umfangreicher und komplizierter. Weiter ist es bei dem bisherigen Verfahren nötig, für neue Anwendungsgebiete und für neu geschaffene Maschinentypen jeweils neue Programmierungshilfen zu entwerfen.
Bei einer gegebenen Rechnertype läßt sich die selbsttätige Programmierung durch zusätzliche Einrichtungen vereinfachen; diese Einrichtungen sind jedoch jeweils auf ein bestimmtes Problem, etwa ein wissenschaftliches oder kommerzielles, zugeschnitten. Wirtschaftlicher wäre es, statt der problemorientierten Programmierungshilfen ein an die Eigenart der zu verarbeitenden Daten angepaßtes Verfahren zu finden und die dazu nötigen Einrichtungen zu schaffen, die jedoch von der Eigenart der benutzten Maschine unabhängig sein sollten.
Die meisten zu verarbeitenden Daten haben nicht die von dem Rechner unmittelbar akzeptable Form; sie liegen nicht in der Form einer fortlaufenden Kette von Daten fester Länge vor. Vielmehr müssen sie umgeformt werden, um in die auf feste Längen eingerichteten Speichersysteme zu passen. Die Daten besitzen nämlich im allgemeinen variable Feldlänge und veränderliches Format. Die Sprache — als Eingabedaten betrachtet — läßt sich unterteilen in Symbole, Begriffe, Sätze, Absätze, Kapitel, Bücher und Bücherei. Wie man auch diese Unterteilung nennt, die Daten haben eine solche Unterteilung.
Weiterhin sind die Datenfolgen nicht notwendiger-Verfahren und Anordnung zur Speicherung und
Entnahme hierarchisch geordneter Daten
Anmelder:
5
International Business Machines Corporation,
Armonk, N. Y. (V. St. A.)
Vertreter:
ίο Dipl.-Ing. H. E. Böhmer, Patentanwalt,
Böblingen (Würtl), Sindelfinger Str. 49
Als Erfinder benannt:
Rex Rice, Los Altos, Calif. (V. St. A.)
Beanspruchte Priorität:
V. St. v. Amerika vom 23. Mai 1963 (282 807) - -
weise zusammenhängend. Wenn ein weiteres Symbol in die Kette einzufügen ist, ist es gewöhnlich nötig, das Symbol an einer Stelle zu speichern und eine
a5 Verbindung zu dem Begriff herzustellen, in dem es normalerweise auftritt. Eine solche Technik ist vorzuziehen gegenüber dem Verfahren, das die gesamte Datenkette verschiebt, um Platz für die Einfügungen zu schaffen.
Die Erfindung macht es sich zur Aufgabe, eine Erleichterung_jfe_PjOj£att^
und Entnahme hierarchisch geordneter Daten zu erzielen. Dies geschieht dadurch, daß die Rechenmaschine bei der Eingabe der hierarchisch geordnoten Daten selbsttätig die Aufteilung der Daten entsprechend ihrer Ordnung vornimmt, die Zuteilung von Speicherstellen überwacht und registriert und die selbsttätige Suche nach Teilen der Daten ermöglicht. Gegenstand der Erfindung ist 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, mit dem Merkmal, daß 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, daß 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 daß bei der Suche nach einem Datenteil
609 559/351
das zugehörige Niveauzeichen vorgegeben, der Hilfsspeicher nach diesem Zeichen durchsucht und aus der gefundenen HilfsSpeicheradresse die Hauptspeicheradresse ermittelt wird.
Weitere Einzelheiten der Erfindung gehen aus den Unteransprüchen hervor. Das nachfolgend beschriebene Ausführungsbeispiel wird durch Zeichnungen erläutert.
F i g. 1 ist ein Funktionsdiagramm in Blockform der erfindungsgemäßen Speicher- und Sucheinrichtung;
Fig. 2 zeigt die Zusammensetzung der Fig. 2a bis 2 h;
Fig. 2a bis 2h zeigen die Schaltung eines bevorzugten Ausführungsbeispiels;
F i g. 3 a bis 3 c sind eine Blockdarstellung von Einzelheiten der Speichersteuerung;
F i g. 4 zeigt schematisch eine Stufe des Eingabepuffers;
F i g. 5 und 5 a zeigen Vergleichsschaltungen, und Fig. 6 ist das Zeitdiagramm eines Speicherzyklus.
In der folgenden Beschreibung werden die Bezeichnungen 2D und 3D benutzt, um zwei- bzw. dreidimensionale Speicherorganisationen zu bezeichnen.
Das Ziel der vorliegenden Erfindung wird erreicht durch ein besonderes System der Datenspeicherung und durch eine Anordnung der Daten derart, daß die Daten hierarchisch in Niveaus angeordnet sind und daß die Daten eines Niveaus Identifizierungszeichen für dieses Niveau enthalten. Das Speichersystem macht von HilfsSpeichern Gebrauch, die viele dem Hauptspeicher zugeordnete Abteilungen enthalten, in denen »Niveauzeichen« jeweils gespeichert werden, wenn Daten des betreffenden, zugehörigen Niveaus entdeckt und im Hauptspeicher untergebracht werden. Jede Abteilung des Hilfsspeichers dient zur Markierung des Auftretens nur eines hierarchischen Niveaus von Daten, und die Stelle oder Adresse des Niveauzeichens im Hilfsspeicher gibt die Adresse des zugehörigen Datenniveaus im Hauptspeicher. Das System enthält weiter Suchsteuerschaltungen, die selbsttätig den Hilfsspeicher absuchen, um die absolute Adresse von bestimmten Datenteilen innerhalb einer langen Kette von Daten festzustellen, wenn nur die Anfangsadresse der gesamten Kette und die relative Lage des gewünschten Teiles in der Hierarchie vorgegeben sind.
Damit ist die Grundlage für eine Maschinensprache gegeben, die logisch und unmittelbarer arbeitet und viel von der Programmierungsarbeit gegenwärtig· bekannter Rechner vermeidet. Es werden dabei die Vorteile der raschen Suche von »assoziativen Speichern« erzielt und gleichzeitig der zusätzliche Vorteil gewonnen, Daten variabler Länge zu behändem; die Suche ist weiterhin nicht beschränkt auf ein bekanntes Feld einer vorgegebenen Datenform, wie es beim assoziativen Speicher notwendigerweise der Fall ist.
Zur Erleichterung des Verständnisses der Erfindung soll diese zunächst unter Berücksichtigung der hierarchischen Ordnung der Daten beschrieben werden. Dann folgt eine allgemeine Beschreibung des Systemaufbaues an Hand des Blockschemas der Fig. 1. Daran anschließend wird jeder einzelne Block unter Benutzung der Fig. 2 ausführlich beschrieben. Schließlich folgt die Darstellung einer vollständigen Eingabe- und Suchoperation.
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 ist. 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.
30
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 konnte. 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 Bedeutungen haben als eine bequeme Bezeichnung für die verschiedenen hierarchischen Niveaus.
55 Merkzeichen Niveaubezeichnung
Φ Symbol
Φ Begriff
60 © 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 ® 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 ©, ©, (D 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 »1« 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 hat. 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 Anfängsadresse 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:
A®\
5©f 2©f 6-C©f
4],
worin die Teile einfach bedeuten, daß die darauffolgende Zahl das Niveauzeichen vor dem Teil erläutert; so bedeutet φ f 7 die siebte φ in der Datenkette, deren Name und Adresse A ist. A, B, C und D sind Namen von Datenketten und können, wie früher festgestellt, leicht auf eine Adresse bezogen werden. Der oben angeschriebene Befehl ist alles, was der Programmierer zur Durchführung der bezeichneten mathematischen Operation bei Benutzung des Speicher- und Suchsystems der vorliegenden Erfindung zu tun hat.
Um die Erleichterung im Programmaufbau zu zeigen, ist nachfolgend, wie bei einem bekannten Rechner (IBM 704) für dieselbe Operation erforderliche Programmgestaltung gezeigt:
05600004736
02000004737
04000004735
06010004740
-06000004741
(B
(MQ ■ C
(Acc + A
MQ)
-Acc, MQ) Acc)
(1)
(MQ^D2)
wo: 4735 die Adresse von A, 4736 die Adresse von B, 4737 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 D 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 Speichersysteme 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, 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 Vergleichsemrichtungen diesen Codes anzupassen.
60
Φ 10100001
© 10100010
® 10100011
© 10100100
10100101
© 10100110
® 10100111
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 wird eine Reihe von Beschränkungen für das an 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:
© 080964, © JOE* GLOPMEYER,
ίο φ 1956 WEST 4th STREET,
φ POUGHKEEPSIE, N. Y. ©.
Im Hauptspeicher wird diese Datenkette so eingegeben, wie es die folgende Tabelle I zeigt.
Tabelle I
© * * P * T E * E Y * <u . Haupt
15) * * M © 4 T © P ' * .Sonder- ·§ speicher
* © E 1 Γ N P S N © kern- jg
(4) © 7 Y 9 ff N O I N ebenen q
(3) O O E 5 S N U E N (N
(7) 8 E R 6 T " N G N
(T) O S
P
N R N H JV N
9 G N £ E N K N
6 L 5 E
4 O
2V
Die obere Hälfte der Tabelle, die als Sonderkernebenen, 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 acht 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 Nullzeichen (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 Null 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 © alle folgenden Niveauzeichen, d. h. ®, ©, φ bzw. ©, in den Sonderkernebenen ebenfalls aufgezeichnet werden, an Stellen, die dem Maschinenwort entsprechen, in dem das höhere Niveauzeichen auftrat.
Das im Blockdiagramm der F i g. 1 dargestellte System kann selbsttätig eine einlaufende Datenkette der gezeigten Art prüfen und sie selbsttätig im Hauptspeicher nach den von Tabelle I dargestellten Regeln unterbringen. Der mit Eingabepuffer bezeichnete Teil A hat die Aufgabe, die Daten aus einem verhältnismäßig langsamen Eingabesystem zu übernehmen, sie vorübergehend zu speichern und mit der möglichen. Maschinengeschwindigkeit in die Maschine einzugeben. Sie arbeitet lediglich als Pufferspeicher und gestattet der Maschine, mit höchster Wirksamkeit zu arbeiten. Von hier fließen die Daten in den allgemein als Eingabevergleich und -steuerung genannten Teil B.
Die Daten gelangen vom Teil A zeichenweise zum Teil B. Letzterer prüft jedes Zeichen und stellt fest, ob es eines der gewählten Niveauzeichen [© bis @] ist und gliedert bejahendenfalls die Datenkette entsprechend den vorher aufgestellten Regeln auf. Ent-
sprechend der Tabelle I setzt dieser Teil selbsttätig das Niveauzeichen in die erste Stelle eines Maschinenwortes, sorgt für die Eingabe des »Ereignisse-Zeichens in die richtige Kernebene des 2 D-Speichers, zählt selbsttätig die Zeichen in einem Maschinenwort, so daß jeweils acht Zeichen in den Hauptspeicher gelangen, und bringt selbsttätig ein Zeichen aus dem Speicherregister in den Hauptspeicher, wenn ein zweites Niveauzeichen auftritt, bevor acht Zeichen im Speicherregister eingelaufen sind; schließlich be- ίο sorgt dieser Teil noch die Einfügung von Null-Zeichen in der richtigen Stelle des Speicherregisters für die spätere Übertragung zum Hauptspeicher. Die Funktion des Teils B wird vom Eingabetaktgeber C gesteuert.
Die Daten werden also aus dem Teil B unmittelbar in das Speicherregister gebracht, das sie, gesteuert vom Taktgeber, zum Hauptspeicher weitergibt. Die Niveauzeichen werden durch das in Teil B enthaltene und später noch zu beschreibende Zählregister in die richtigen Stellen des 2 D-Speichers eingetragen.
Der Hauptspeicherteil D enthält den 2 D-Speicher und den 3 D-Speicher sowie die verschiedenen Register und Taktgeber; er ist in Aufbau und Arbeitsweise ohne Besonderheiten; die Beschreibung seiner Einzelheiten ist deshalb entbehrlich. Aus der Beschreibung für F i g. 3 wird später hervorgehen, wie die Adressen für die Speicher 2D und 3D abgeleitet werden.
Die in der vorliegenden Beschreibung benutzten Speicher sind Magnetkernspeicher; die Erfindung könnte natürlich auch mit anderen Speichertypen ausgeübt werden. Im Beispiel hat der Speicher 3 D in X- und Y-Richtung die 128 Bits und ist 64 Bits tief; er kann also Zeichen zu 8 Bits und Wörter zu acht Zeichen aufnehmen, wie früher schon festgestellt wurde. Die Sonderkernebenen enthalten ebenso in X- und Y-Richtung je 128 Bits; sie besitzen also eine Bitstelle für jedes der 64 Maschinenwörter im zugeordneten Hauptspeicher.
In F i g. 3 sind die Sonderkernspeicherebenen räumlich unmittelbar über dem 3 D-Speicher angeordnet; dieses ist die bequemste Art der Anordnung. Natürlich können diese Ebenen auch räumlich vom Hauptspeicher getrennt werden, die Voraussetzung ist nur, daß alle Adressen des einen Speichers genau einer Adresse des anderen Speichers zugeordnet sind.
Die Teilet, B, C und D bewirken die Dateneingabe in den Hauptspeicher entsprechend der hierarchischen Ordnung von Tabelle I. Diese Einjabevorgänge laufen vollkommen selbsttätig ab; die Bedienungsperson braucht dabei nicht einzugreifen. Die Teile E, F, G und H veranlassen die selbsttätige suche nach den von der Eingabeseite gespeicherten Daten. Der Teil D ist bei beiden Vorgängen beteiligt,
Der Teil E enthält eine Reihe von Registern und Sippkreisen, denen vom Programm Informationen larüber zugeleitet wird, wonach im Hauptspeicher zu wehen ist. Diese Suchinformation beginnt mit einer Vnfangsadresse und gibt weiter an, welche Niveau- öo :eichen von dieser Adresse ausgehend im Hauptpeicher festzustellen sind. Diese in den Teil E einge- ;ebene Information wird von dort Schritt für Schritt um Niveausuchringteil F weitergegeben. Dieser ent-Lält außer dem Suchring Steuerschaltungen zur )urchgabe von Daten aus einer der Sonderkernbenen 2 D. Vom Teil F wird die in den Sonderkernbenen gespeicherte Information abgesucht und gezählt, bis ein besonderes Bit in dieser Kernebene gefunden ist. Dann wird entweder dieses Bit in das Sonderregister (Teili?) ü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.
Im Zusammenhang mit den Fig. 2a bis 2h wird nun die Steuereinrichtung für das vorstehend allgemein beschriebene System dargestellt. 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 Teilet-H umgrenzt, die den TeilenA-H der F i g. 1 entsprechen.
Der Teil A (Fi g. 2 a) zeigt in Blockform den Eingabepuffer. Er besteht aus einer Vielzahl von Verriegelungsschaltungen, wie sie z. B. in dem Buch »Arithmetic Operations in Digital Computers« by R. K. Richards, D. van Nostrand, Inc. New York, F i g. 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 Ausgabesteuerringen 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 F i g. 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 als 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.
Es soll hier unter Benutzung der F i g. 4 eine kurze Beschreibung der Arbeitsweise des Eingabepuffers gegeben werden. In dieser Figur ist eine einzige Stufe des Puffers dargestellt. Eine solche Stufe enthält acht Kippschaltungen 10«; es sind acht erforder-
609 559/351
11 12
lieh, weil ein 8-Bit-Code benutzt wird. Daten laufen welche in der Sonderkernebene ein Niveauzeichen
auf dem aus acht Leitungen bestehenden Eingangs- geschrieben wird, und steuert die folgende Eingabe
leiter 10 & ein. Ein Impuls vom Eingabesteuerring solcher Niveauzeichen und bestimmt die Stellen in
öffnet die Torschaltungen 10 c und läßt die Eingangs- den Sonderkernebenen niedrigeren Niveaus. Der
daten zur Einstellung der Kippschaltungen in Über- 5 Ring selbst ist ein Abwärtszähler üblicher Bauart,
einsrimmung mit dem Eingangssignal passieren. Die- Der Eingabetaktgeber C (Fig. 2d) ist eine be-
jenigen Kippschaltungen, für die kein »1«-Signal ein- kannte Anordnung von monostabilen Kippschaltun-
geht, bleiben in ihrem Null-Zustand. Vorher muß gen. Die Arbeitsweise der einzelnen Schaltelemente
natürlich eine Rückstellung vorgenommen worden soll später erläutert werden; hier darf festgestellt
sein, die über die Torschaltungen 10 d durch das Zu- io werden, daß die Stufen 1 bis 5 die Speicherung auf-
sammenwirken des Rückstellsignals und eines Signals einanderfolgender Zeichen im Speicherregister steu-
vom Ausgabesteuerring vorgenommen wird. Zur ern und so eine Schleife bilden, bis ein zweites
Weitergabe der in den Kippschaltungen enthaltenen Niveauzeichen in einer Datenkette gefunden oder
Werte dienen die Torschaltungen 10 e, die von einem bis acht Zeichen im Speicherregister gespeichert
Signal des Ausgabesteuerrings geöffnet werden. Die 15 sind; im letzteren Falle veranlaßt die Stufe 6 des
Daten verlassen den Puffer über die sechszehnadrige Taktgebers einen Speicherzyklus. Die Stufen 7 und 8
Leitung 50, auf der für jede Bitstelle Eins- oder Null- des Taktgebers steuern die Speicherung von Markie-
werte erscheinen. Die Ausgabe auf sechzehn Lei- rungen in den Sonderkernebenen und veranlassen
tungen wird vorgezogen, weil sie für die Vergleichs- das Fortschalten des Niveauringes 58, sobald eine
schaltungen der später zu besprechenden für F i g. 5 ao Marke in einer Ebene eingeschrieben ist und bis alle
besonders geeignet ist. solche Marken eingeschrieben sind.
Fig. 2b (enthaltend TeilZ?) zeigt die Niveau-Ver- Wegen des Niveauvergleichers 56 wird auf Fig. 5
gleicher- und Steuerschaltungen zur Prüfung der Ein- verwiesen, die weitere Einzelheiten zeigt. Dort ist
gangsdaten aus dem Eingabepuffer 10 hinsichtlich ersichtlich, daß eine Und-Schaltung mit acht Eingän-
der früher gegebenen organisatorischen Regeln. 25 gen für jedes Niveauzeichen vorgesehen ist; ein Ein-
TeilZ? übt, im Zusammenwirken mit dem Eingabe- gang von den 0- und 1-Leitungen des sechzehn-
taktgeber (TeilC in Fig. 2d), folgende Funktionen adrigen Eingangskabels aus Register 6 ist mit ent-
aus. sprechenden Eingängen der Und-Schaltungen je
nach dem zu prüfenden Zeichen verbunden. Jedes-
(a) Bei jedem Zeichen wird festgestellt, ob es ein 30 mai; wenn alle acht Eingänge einer Und-Schaltung Niveauzeichen ist; erregt sind, erscheint auf dem einzigen Ausgang dei
(b) sobald acht Zeichen im Pufferregister 96 ent- betreffenden Und-Schaltung ein »Gleich«-Signal. Die halten snid, wird ein Speicherzyklus eingeleitet; sieben in Fig. 5 gezeigten Ausgänge entsprecher
,*,.,.„, . . -»τ. . , den Ausgangsleitungen 57 an der Unterseite des
(c) beim Vorfinden eines zweiten Niveauzeichens Niveauvergleichers 56 (Fig. 2b). Fig. 5a zeigt Einwird dessen Speicherung im Pufferregister in der zelheiten der in F i g. 5 als große Blocks dargestellausschließlich dafür vorgesehenen Stelle veran- ten ^.Schaltungen. Die in Fig.5a gezeichnete laßt; Rückstelleitung führt natürlich zu allen Und-Schal·
d) es wird das Ende einer Datenfolge geprüft, und tungen der F i g. 5.
(e) die Niveauzeichen werden in den Sonderkern- 4° u &« Teil D läßt sich zunächst am besten in Verebenen des 2 D-Speichers eingegeben. bPdunS Ψ* den, F1 g· 3 a bis 3 c beschreiben, du
eine Blockdarstellung der in Fig. 2c mit D bezeicb neten Einrichtung wiedergibt und dort mit Speicher
Eines der wesentlichen Bestandteile der Teile C steuerung und Speicher bezeichnet ist. Dieser Tei
und D (Fig. 2d bzw. 2c) ist der Niveauausgleicher, 45 enthält den Hauptspeicher 900 (Fig. 3b) und dei
in dem jedes einlaufende Zeichen mit den sieben Hilfsspeicher 901; letzterer enthält eine Anzahl voi
Niveauzeichen parallel verglichen wird. Die Ver- zwei .D-Speicherebenen, jede zur Aufnahme eine
gleichskippschaltung 64 verhindert den Durchlaß von bestimmten Niveauzeichens. Es wurden nur dre
mehr als einem Niveauzeichen pro Maschinenwort, solche Ebenen dargestellt und mit den Niveauzei
und ihre Arbeitsweise wird später ausführlicher be- 50 chen ©, © und (D versehen, die sie aufzunehmei
schrieben. Der Vergleichszähler 62 bestimmt zusam- haben. F i g. 3 zeigt außerdem das Speicheradreß
men mit der Vergleichskippschaltung die Zahl der register, das für jeden Lese- oder Schreibvorganj
Niveauzeichen innerhalb einer Datenkette, insofern, beim 3D- oder beim 2 D-Speicher die Adressen ii
als er die Speicherung dieser Zeichen im Speicher- bekannter Weise liefert. Weiter sind dargestellt dl·
register und ihre Stelle im Maschinenwort beeinflußt. 55 Entschlüsselungsmatrizen und Kerntreiber für die X
Das Speicherregister 96 (Fig. 2c) ist ebenfalls ein und y-Leitungen im 3D-Speicher, ebenso die Mitte
konventionelles Magnetkernregister. Der Steuerring für die Treiberauswahl und -steuerung des 2D-Spei 102 bestimmt in üblicher Weise, in welche Stelle des. chers aus dem Speicheradreßregister 300 und di
Registers aufeinanderfolgende Binärzeichen einzu- getrennten Einrichtungen zum Schreiben eines ein
geben sind. Die Eingangswerte gelangen aus dem 60 zelnen Bits in den 2 D-Speicher beim Eingabezyklu
Register 6 (Fig. 2b) und, gesteuert von den Ver- und für das Lesen einer vollständigen Zeile aus der
gleichsschaltungen, in das Speicherregister. 2D-Speicher beim Suchzyklus.
Nach einem erfolgreichen Vergleich in der Ein- Das Speicherregister 96 (F i g. 3 c) ist identisch m:
richtung 56 wird eine der Leitungen 77 erregt; durch dem Register gleicher Bezeichnung in F i g. 2. Diese
Einwirkung der Kippschaltung 64 wird dann die Tor- 65 Register kann nämlich für den Schreib- und Lese
schaltung 68 durchlässig, und eine Stelle des Niveau- Vorgang beim Hauptspeicher 900 benutzt werdei ringes 58 wird eingestellt. Dieser Niveauring be- Das Register 312 (hundertachtundzwanzig Bits) emp stimmt die höchste Stelle eines Maschinenwortes, in fängt Information aus den 2D-Speicherebenen 9Oi
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 Verfügbarkeitsliste bezeichnet werden kann und einfach ein Zähler sein mag, der mit der Wortstelle 0 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 Jf-Leitung des Hauptspeichers einen Halbwahlimpuls. Dasselbe geschieht für den Y-Teil der Adresse mittels der Entschlüsseier 541 und des Treibers 549. Nachdem dann noch über die Torschaltungen 908 (Fig. 3c) 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 Halbwahlimpuls auf die betreffenden X- und Y-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 .Xf-Teil der Adresse des Adressenregisters 300 wird über Leitung 912, den Entschlüsseier 914 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. 2) gesteuert werden. Gleichzeitig mit den Halbwahlimpulsen auf einer der Z-Leitungen wird der Y-Teil der Adresse im Adressenregister 300 vom Entschlüsseier 310 entschlüsselt und gelangt zur Freibermatrix552 (Fig. 3c), die auf einer der hunüertachtundzwanzig Y-Treiberleitungen einen HaIbwahlimpuls erzeugt. Die Auswahl der Ebene erfolgt luch hier wieder durch den Niveauring 58 mittels iines der Tore 928, 930, 932 usw. Da, wie schon gesagt, die Niveauzeichen auch in alle Ebenen niedigerer Ordnung eingegeben werden, veranlaßt der •fiveauring 58 selbsttätig das Öffnen der entspre- :henden Tore. Einzelheiten darüber werden noch jeschrieben.
Beim Suchvorgang stellt das Lesen einer Informaionszeile aus einer bestimmten Niveauebene und die Slidung einer Anfangs- und Endadresse für eine betimmte Datenkette den erfinderischen Teil des Suchorgangs dar, da das bloße Lesen eines oder mehrere Vörter aus dem Hauptspeicher 900 in bekannter Veise erfolgt. Der Erfindungsgedanke des Systems eruht in der Art und Weise, in der die Adresse für ie bestimmte, auszulesende Datenkette mit Hilfe er Niveauebenen ermittelt wird. Einzelheiten darber sollen im Zusammenhang mit der allgemeinen Beschreibung des Teilst (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üsseier 914 gebracht und gelangt hinter diesem jetzt durch das Tor 934 (F i g. 3 b) 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 hundertachtundzwanzig 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 hundertachtundzwanzig 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.
Der Hauptspeicher besteht aus vierundsechzig Kernebenen, jede aus 128 · 128 Kernen zusammengesetzt. Ein Maschinenwort enthält also vierundsechzig Bitstellen oder acht Zeichen zu je acht Bits; das Wort enthält also vierundsechzig binäre Einsen oder Nullen. Jede der hundertachtundzwanzig X-Leitungen durchsetzt die Kerne gleicher Zeilen jeder Ebene. Jede der hundertachtundzwanzig senkrechter zu verlaufenden Y-Leitungen durchsetzt alle Kerne gleicher Spalten jeder Ebene. Es sind vierundsechzig Abfühlleitungen vorgesehen; jede durchsetzt alle Spalten einer Ebene, führt zu einem Abfühlverstärker und zu der entsprechenden Bitstelle des Eingabe-Ausgabe-Registers 96. Jede Ebene enthält weiterhin eine Z-Windung, die alle Kerne dieser.
Ebene durchsetzt und je nach dem in diese Bitstelle einzutragenden Bitwert bei Erregung die Herstellung des vollen Magnetisierungsstromes verhindern kann.
Jedem Wort des. Speichers ist eine Adresse zugeordnet. Die 16384 Wörter des vorliegenden Haupt-Speichers können durch die Zahlen 0 bis 16383 bezeichnet werden. Beim Lesen eines Wortes werden alle seine Kerne in den 0-Zustand versetzt; Kerne, die dabei ummagnetisiert wurden, liefern ein Ausgangssignal zum Ausgaberegister. Es kann eine Regenerierung des Speicherwertes erfolgen, indem der nunmehr im Ausgangsregister stehende Wert zurückgeschrieben wird. Vor dem Einschreiben eines neuen Wortes sind alle Kerne dieses Wortes vorher auf 0 gesetzt. Der neue Speicherwert gelangt aus dem Register 96 (Fig. 3c) über die Z-Wicklungen zu den Speicherkernen.
Zum Betrieb des bezeichneten Speichers ist eine Adresse aus η Bits erforderlich (n gleich 14 für eine dreidimensionale Speichermatrix mit 16 384 Wörtern), die im Speicheradreßregister enthalten ist und entschlüsselt werden muß. Im vorliegenden Falle sind zwei Entschlüsseier für je sieben Bits erforder-
Ίη
lieh, die zwei Sätze von -y Ausgängen haben und die Spalten und Zeilen des Speichers erregen. Für die Z- und Y-Leitungen werden positive und negative Impulse zum Lesen bzw. zum Schreiben benötigt, für die Z-Windungen nur Strome einer Richtung.
Die Adressierschaltung für einen solchen Speicher muß natürlich eines der 16 384 Wörter auswählen können. Dieseem Zweck dient ein 14stelliges Speicheradreßregister (300 in Fig. 3a). Dieses Register kann 16 384 Kombinationen einstellen; diese Einstellungen können durch Entschlüsselungsmatrizen ausgewertet werden. Sieben der vierzehn Bits dienen zur Bestimmung der Z-Adresse, sieben für die Y-Adresse. Gewöhnlich ist mit einem solchen Adreßregister ein auf- oder abwärts schaltender Zähler verbunden, der nach Einstellung auf eine Anfangsadresse das Register jeweils um eine Stelle erhöht (oder vermindert). Das setzt, wie üblich, voraus, daß einem gegebenen Problem ein bestimmter Teil des Speichers zugeordnet ist. In diesem Falle wird die erste Stelle des verfügbaren Speicherteils in dem Adreßregister festgelegt, und die folgenden Maschinenwörter werden selbsttätig unter der Einwirkung des sich selbst erhöhenden oder vermindernden Adreßregisters in benachbarte Stellen eingegeben. Analog verläuft in solchem Falle auch der Lesevorgang.
Der Magnetisierungsstrom für die Speicherkerne wird im Ausführungsbeispiel durch Kerntreiber geliefert, die wegen der Einfachheit der Ansteuerung ebenfalls in Matrixform angeordnet sein können und von den eventuell verstärkten Signalen der Entschlüsseier erregt werden. Die Treibermatrix hat im Beispiel 8 · 16 Kerne und vierundzwanzig Erregerleitungen. Die Achterseite der Treibermatrix (F i g. 3 a) wird aus den ersten drei Bits der Z- oder Y-Adresse, die Sechzehnerseite aus den folgenden vier Bits abgeleitet. Um dies darstellen zu können, sind die beiden Entschlüsseier 540 und 541 in zwei Blöcken dargestellt.
Die Auswahl der Speicherstelle eines bestimmten Wortes geht also folgendermaßen vor sich: Die Adresse des einzuschreibenden oder zu lesenden Wortes wird in das Adreßregister gebracht, die Adresse wird in den X- und Y-Entschlüsselern anal siert, der Ausgang der Entschlüsseier steuert (na Verstärkung) die Z- und Y-Treiber, und diese t zeugen auf den gewählten X- und Y-Leitungen d Hauptspeichers koinzidente Wahlimpulse. Jeder d vierundsechzig Kerne dieser Adresse, der ummagE tisiert wird, liefert ein Ausgangssignal, das im Spi cherregister 96 zwischengespeichert wird.
Einige Bemerkungen sollen noch über das Tal ίο gebersystem gemacht werden. Einrichtungen c vorliegenden Art arbeiten meist asynchron; sie vera lassen selbst die Entstehung der Taktsignale. Je Speicheroperation wird von einem Startsignal ei geleitet. Die Zeitschaltungen selbst machen gewöt lieh von monostabilen Kippschaltungen und Verzöj rungseinrichtungen Gebrauch. Die in den Fig.! und 2 h und C und G gezeigten Taktgeberschaltt gen könnten in ähnlicher Weise für die Taktgabe c Speicher benutzt werden. Die wesentlichen Ze ao punkte im Speichersystem sind aus der Fig. 6 entnehmen, deren erste Zeile die Lese- und Schre impulse auf den X- und Y-Leitungen zeigt. Aul den auf beiden Erregerleitungen auftretenden, h positiven Lese- und negativen Schreibimpulsen ist; Ende der ersten Zeile noch ein Hilfsmittel gezei dieser schafft einen gewissen Ausgleich für das A wandern des Arbeitspunktes infolge mangeln« Rechteckigkeit der verfügbaren Kernmateriali Seine Verwendung ist bekannt. . Die zweite, mit Leseschalter bezeichnete Zeile g die Zeitdauer an, während deren die Impulse ι ■ Lesetreiber auf die X- und Y-Leitungen durchgel sen werden. Die beiden folgenden, mit Sperrscha] und Schreibschalter bezeichneten Zeilen geben entsprechenden Zeiten für die Sperr- und Schre impulse an. Auf der mit Ausblendung bezeichne folgenden Zeile ist die Zeitdauer markiert, wähn deren die Leseverstärker geöffnet sind. Der auf letzten Zeile markierte Zeitraum kann entweder Vermehrung des Adreßregisterinhaltes (bei Ad] sierung fortlaufender Speicherstellen) oder zur Rü stellung des Adreßregister (im Falle neuer Adres: rung) benutzt werden. Zum gleichen Zeitpunkt Vi auch das Eingabe-Ausgabe-Register 96 gelöscht. Die Steuerung der verschiedenen Speicherope tionen wird durch das Programm festgelegt, welc bestimmt, ob Information aus Eingabegeräten in ι Speicher gelangen soll oder ob bestimmte Da1 ketten aus bestimmten Adressen des Speichers < nommen werden sollen. Das Speichersteuersysteir nach Erhalt der Befehlsfolge im wesentlichen uo hängig und führt Eingabe- oder Entnahmesch] selbsttätig durch und ist nach Erledigung eines fehls bereit, zum nächsten Programmschritt übej gehen.
Es sollen.nun die in den Fig. 2e bis 2h enthE nen_Teile E, F, G und H, nämlich die Suchteili großen Zügen beschrieben werden. Der Te: (Fig. 2e) enthält ein Register516 mit den Anfai adressen einer Datenkette, an welcher die Sv nach den hierarchisch geordneten Daten begin soll. Diese Adresse wird auf Befehl zu dem fri beschriebenen Adreßregister 300 des Hauptspeic durchgelassen; dort wird die zugeordnete Y-Leii des 2 D-Speichers ermittelt, um das Mveauzek auf dieser Leitung festzustellen. Das Register speichert dasjenige Niveau, nach dem gesucht ^ den soll; das Niveau wird wiederum vom Such
gramm bestimmt. Das Niveauzeichen wird im Entschlüsseier 529 entschlüsselt, der die ganze Y-Leitung aus der gewünschten [z.B. ©] Sonderkernebene des 2 D-Speichers abruft. Dieser Vorgang wurde 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 Suchring614 (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 (Fig. 3b) 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.
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 Suchschaltung muß weiter in der Lage sein, die Suche fortzusetzen, wenn die ermittelte Adresse, d. h. das Niveauzeichen, nicht die gesuchte ist.
Die Suchschaltung 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 Suchbefehls entsprechenden Stufe des Rings Abfrageimpulse zuzuführen. Falls die betreffende Stufe des 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 Richtung wiederaufgenommen werden.
Die hundertachtundzwanzig 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 abas geben, oder sie können (wie Magnetkerne) einen Ausgangsimpuls liefern, wenn sie von 1 nach 0 übergeführt werden.
Die Ausgänge des Registers 610 liegen über entsprechende 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 Datentzeile aus den Hilfsebenen anzufordern. In diesem Falle wurde das gewünschte Bit nicht gefunden. Dieser Vorgang ist in 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 Suchzyklus, oder falls die gesuchte Markierung im laufenden Suchzyklus nicht vorgefunden wurde, stellt ein Impuls aus der Oder-Schaltung 623 über Leitung 622 alle Stufen des Suchringes 614 zurück; der Suchring ist damit für eine neue Suche mit neuem Inhalt des Registers 610 bereit.
Ein Ausgangsimpuls auf einer der Leitungen 616 des Suchringes 614 gelangt über die gemeinsame Leitung 626 zum Zähler 628 sowie zum Verschlüsseier 630. Bei letzterem entsteht ein Ausgangssignal auf sieben der vierzehn Leitungen 632 (auf einer Leitung jedes Paares), die zu sieben Kippschaltungen FFl; FFl, FF 4, FFS, FFU, FF 32 und FF 64 des Adreßregisters 634 führen. Ein Signal auf der linken Leitung eines Paares zeigt 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 0-Zustand. Das Register 634 zeigt also an, in welche der hundertachtundzwanzig Stufen des
609 559/351
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 [Fig. 3a]) eingestellt werden. Damit läßt sich von außen bestimmen, an welcher Stelle der Suchring 614 eine bestimmte Suche anfangen soll.
Der Inhalt des Zählers 628 wird im Vergleicher 638 mit dem dort über Leitung 639 aus dem Suchprogramm und dem Register 562 eingestellten Wert verglichen. Dieser Wert wird durch 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 Suchringes 614. Bei nicht erfolgrei- ao chem Vergleich erscheint auf der Leitung 642 ein Signal, das die vierzehn Und-Schaltungen 644 veranlaßt, die Ausgänge der Kippschaltungen FFl bis FF 64 des Adreßregisters 634 auf sieben der vierzehn Leitungen 646 durchzulassen. Diese Leitungen bilden einen Teil der Eingangsleitungen des Entschlüsselet 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 (Teil G in Fig.'2h) ist dem Eingabetaktgeber sehr ähnlieh, so daß eine allgemeine Beschreibung hier nicht nötig ist; Einzelheiten 3S werden bei der Beschreibung des Suchbeispiels gegeben. TeilH (Fig. 2e, rechte Seite) enthält im wesentlichen zwei Register 764 und 780, worin Suchresultate abgespeichert werden.
Nachfolgend werden nun Beschreibungen von Ein- ^0 gabeoperationen und Suchoperationen mit Einzelheiten der Schaltungen gegeben.
Eingabebeispiel
Die folgende Tabelle II ist ein Flußdiagramm des Arbeitsablaufs »Dateneingabe- und -speicherung« bei der erfindungsgemäßen Einrichtung. Die Tabelle zeigt klar die Funktionen der Hauptteile und die zeitliche Aufeinanderfolge der Ereignisse.
Tabelle Π
Eingabe-Steuerschritte
Eingabering 11 auf 1 stellen.
Speicherregisterring 102 auf 1 stellen.
Speicherregister auf 0 stellen.
Vergleichszähler 62 auf 0 stellen.
Niveauring 58 auf allen Stellen ausschalten.
Vergleichs-Kippschaltung 64 auf 0 stellen.
Wenn der Eingabezähler 14 bis 8 gezählt hat, setzt er den Taktgeber (CL) in Gang.
CL-I Zeichen nach 6 durchlassen,
Vergleichsschaltungen erregen,
zu CL-2 weitergehen.
45
55
Tabelle Π (Fortsetzung)
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 6 nach sp. reg. durchlassen.
Nach CL-4 gehen.
CL-4 Wenn spÄ-Ring in achter Stellung und Vergleichszähler bei 0 oder 1 ->· CL-6,
wenn nicht ->■ CL-5.
CL-5 Ausgabering fortschalten,
sp2?-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 denNiveauring 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 0 und Vergleichszähler auf 0 oder 1 -> CL-I.
CL-8 Einleitung eines 2 D-Speicherzyklus,
der »Speicher-Endimpuls« schaltet denNiveauring 58 weiter,
nach CL-7 gehen.
CL-9 Vergleichszähler 62 auf 0 stellen,
Niveauring 58 auf 0 stellen,
Vergleichs-Kippschaltung 64.auf 0 stellen,
nach CL-10 gehen.
CL-10 6 zu Vergleichsschaltungen durchgeben,
nach CL-Il gehen.
CL-Il Vergleichs-Kippschaltung einstellen, wenn Vergleichszähler auf 1 ist,
nach CL-3 gehen.
Bei der Beschreibung einer Eingabeoperation wird angenommen, daß die unten stehende Datenkette in den Eingangspuffer zur Speicherung im Hauptspeicher eingetragen werden soll. Bei der Beschreibung der Arbeitsfolge wird die Tabelle II von Nutzen sein.
© AB CD EFGHI® JKLMNOP®
Diese Datenkette wird im Speicher örtlich so untergebracht, wie es die Tabelle III zeigt.
Tabelle III
©
Ή I
N N N N N N
©
N N N N N N N
2 D-Niveau-Ebenen (Binärwerte,
z.B. »1«)
10
3 D-Speicher
64 Bits/Masch.-Wort
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 ΙΓ 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 (Fig. 2d) 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 1. Gleichartige Kippschaltungen liefern die folgenden Taktimpulse bis zur Nummer 11. Der Taktimpuls Nummer 1 öffnet über Leitung 46 die Und-Schaltung 48 (Fig. 2a), welche das erste Zeichen aus dem Puffer 10 über den Kanal SO 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 Niveauringes 58 eingestellt und gleichzeitig (über die Oder-Schaltung 60) der Vergleichszähler 62 auf den Wert 1 gebracht. Da die Vergleichskippschaltung 64 durch das Signal »Eingabe« auf 0 gestellt wurde, liegt auf Leitung 66 ein Signal an, das die Torschaltung 68 für den Durchgang 4 öffnet.
Nach dem Rückfall des Multivibrators 44 wird über Leitung 70 der monostabile Multivibrator Nummer 2 angestoßen; Leitung 72 ist erregt. Dadurch der Eingabepuffer (Fig. 2a) 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 laufen und sie auf 1 einstellen. Dadurch wird verhindert, daß ein zweite Niveauzeichen in einer Kette von acht Zeichen oder weniger zum Niveauring 58 gelangen kann. Der Vergleichszähler 62 veranlaßt weiter über die Oder-Schaltung 80 und die mit 72 durchlässige Und-Schaltung 82 die Einstellung der Kippschaltung 84 auf den 1-Zustand. Leitung 86 bereitet nun die Und-Schaltung 88 vor. -Sobald jetzt der Multivibrator Nummer 2 ausschaltet, wird der Multivibrator Nummer 3 über die Und-Schaltung 88 und die Oder-Schaltung 90 angestoßen. Die jetzt erregte Leitung92 läßt (Fig. 2b) über die Torschaltung 94 in das Register 6 enthaltene Zeichen in die erste Stelle des Speicherregisters 96 (Fig. 2c) einlaufen. Wenn der Multivibrator Nummer 3 ausschaltet, wird Nummer 4 angestoßen und erregt Leitung 98.
Die Und-Schaltung 100 (Fig. 2c) hat als einen Eingang die achte Stelle des Speicherringes 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 (Fig. 2d) hervorruft. Wenn die monostabile Kippschaltung Nummer 4 ausschaltet, ist auch der- zweite Eingang von 122 vorhanden, und die Kippschaltung Nummer 5 wird angestoßen. Das resultierende Signal auf Leitung 124 schaltet den Ausgabering 11 und den Speicherring 102 weiter und stellt das Register 6 (Fig. 2b) zurück. Beim Ausschalten der Kippschaltung Nummer 5 (Fig. 2d) wird die Leitung 126 erregt und stößt über die Oder-Schaltung 42 die Kippschaltung Nummer 1 an. Die ersten fünf Kippschaltungen, die in Fig. 2d mit »Zeichenspeicherung im Speieherregister« 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-Schaltung80 (Fig. 2b), die von der Stelle 1 des Vergleichszählers 62 aktiviert ist. Da jetzt die Leitung 98 (Taktimpuls Nummer 4) erregt ist, wird die Und-Schaltung 130 durchlässig, so daß über Leitung 132 und die Oder-Schaltung 110 (Fig. 2d) die Und-Schaltung 116 beim Ausschalten der Kippschaltung Nummer 4 die Kippschaltung Nummer 6 über die Oder-Schaltung 118 in Gang setzen kann. Dadurch wird ein Speicherzyklus eingeleitet, währenddessen der Inhalt des Speicherregisters im 3 D-Speicher eingetragen wird. Die © wird in der Niveauebene Nummer 4 gespeichert. Diese beiden Vorgänge kufen folgendermaßen ab: Da die monostabile Kippschaltung Nummer 6 angestoßen und auf Leitung 134 ein Signal erzeugt wurde, findet ein 3 D-Speicher-Zyklus statt (Fig. 2c). Da weiter das Niveauzeichen © vorhanden ist, steht der Vergleichszähler 62 (Fig. 2b) auf 1, und die Leitung 78 ist erregt. Das über die Oder-Schaltung 136 und Leitung 138 zu der Und-Schaltung 140 (Fig. 2c) laufende Signal öffnet in Anwesenheit eines Signals auf Leitung 134 die Und-Schaltung, so daß die Oder-Schaltung 142 einen Speichervorgang beim 2 D-Speicher einleiten kann. Am Ende des Speicherzyklus erscheint auf Leitung 144 ein Impuls »Gespeichert«, der den Niveauring 58 (Fig. 2b) von der vierten in die dritte Stelle fortschaltet. Derselbe Impuls stellt auch das Register 96 auf 0 und den Speicherring 102 in seine erste Stellung. Schließlich wird noch die Kippschaltung Nummer 7 (Fig. 2d) angestoßen. Da der Niveauring 58 nicht in seiner 0-Stellung ist, liefert die Leitung 148 kein Ausgangssignal, und der Inverter 150 bereitet über die Leitung 152 die Und-Schaltung 156 vor. Der Ausgang der Kippschaltung 7 auf Leitung 151 kann also die Und-Schaltung 156 passieren, und die Kippschaltung 160 wird auf ihren 1-Zustand eingestellt. Das daraufhin auf Leitung 162 anstehende Signal kann dann beim Rückkippen der Kippschaltung Nummer 7 über die Und-Schaltung 164 die Kippschaltung Nummer 8 anstoßen. Auf Leitung 166 entsteht nun ein Impuls, der über die Oder-Schaltung 142 (Fig. 2c) einen Speicherzyklus des 2 D-Speichers einleitet. Hierbei wird die © in der Niveauebene Nummer 3 gespeichert. Danach tritt wieder das Signal »Gespeichert« auf der Leitung 144 auf, das den Niveauring diesmal zu seiner zweiten Stelle fortschaltet, gleichzeitig wird die Kippschaltung Nummer 7 des Taktgebers wieder angestoßen. Die beiden Kippschaltungen 7 und 8 stellen also eine weitere Schleife dar, welche zum Eintrag der Niveauzeichen in die untergeordneten Niveauebenen veranlaßt. Im Falle der © z. B. wird die © während des 3 D-Speicherzyklus in der Ebene Nummer 4 gespeichert, ein Vorgang, der durch den Taktimpuls 6 veranlaßt wurde. Der Taktimpuls? prüft, ob der Niveauring 58 auf 0 oder auf einer anderen Stelle steht, und wenn der Ring nicht auf 0 steht, stößt er die Kippschaltung Nummer 8 an, um einen weiteren 2 D-Speicherzyklus zu veranlassen. Danach findet diese Prüfung noch einmal statt und dauert so lange an, bis der Niveauring auf 0 zu stehen kam; jetzt wird die Schleife auf folgende Weise verlassen: Da der Niveauring 58 auf 0 steht, ist die Leitung 148 erregt. Der Vergleichszähler 62 steht noch auf 1; die Leitung 226 ist also nicht erregt, und der Inverter 170 liefert an die Und-Schaltung 172 das zweite Eingangssignal. Die Und-Schaltung 174, deren zweiter Eingang von der Kippschaltung Nummer Ί, Leitung 154 herrührt, kann also die Kippschaltung 176 auf 1 stellen und die Leitung 178 erregen.
Dadurch wird die Und-Schaltung 180 (Fig. 2d) vorbereitet, und beim Rückkippen der Kippschaltung Nummer 7 wird über Leitung 182 die Kippschaltung
ίο 38 auf 1 eingestellt.
Da angenommen werden kann, daß die Ausgabeoperation 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 (Fig. 2d) der Und-Schaltung36 das zweite Ein-
ao gangssignal 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 Nummer 1 des Taktgebers benutzt.
Auf gleiche Weise werden die Zeichen H und I 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 (F i g. 2 b) 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 ereignet sich während des Taktimpulses Nummer 1. Der Taktimpuls Nummer! entdeckt jetzt, daß der Vergleichszähler 62 in einer 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 auf Leitung 226 vom Vergleichszähler die Und-Schaltung 188 öffnet und über Leitung 190 die Und-Schaltung 192 (Fig. 2b) vorbereitet. Dei 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 (Fig. 2d), und die ausschaltende Kippschaltung Nummer 2 schaltei über die Oder-Schaltung 118 die Kippschaltung Nummer 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 diese] Zeit wird kein Niveauzeichen bearbeitet. Das Signa »Gespeichert« ist jetzt auf den Niveauring 58 unwirksam, da dieser auf 0 steht. Es wird erinnert, dal; bei den früheren Speicheroperationen der Niveaurinj abwärts geschaltet wurde durch die Signale »Gespei· chert«, die jeweils nach Durchlaufen der kleiner Schleife aus den Kippschaltungen 7 und 8 auftraten Am Ende des Speicherzyklus also, während derei
die Zeichen H, I und sechs Nullen gespeichert wur
25 26
den, rückt der Taktgeber zur Stelle 7 vor. Der Takt- über die Oder-Schaltung 60 den Vergleichszähler in impuls 7 untersucht, ob der Niveauring in der Null- seine zweite Stellung rückt. Da die Leitung 66 nicht stelle und der Vergleichszähler auf 2 ist; beides trifft erregt ist, empfängt der Niveauring 58 jedoch kein derzeit zu. Beide Eingänge der Und-Schaltung200 Signal. Der nun folgende Taktimpuls Nummer! (Fig. 2b) liegen vor. Die nachgeschaltete Und- 5 wird die Tatsache entdecken, daß der Vergleichs-Schaltung 202 wird ebenfalls durchlässig (Taktim- zähler in seiner zweiten Stelle ist und daß der Speipuls Nummer 7 auf Leitung 154), und die Kippschal- cherregistersteuerring in seiner ersten Stellung ist. rung 204 gelangt zu ihrer 1-Stellung. Die Leitung 206 Letzteres verursacht (über Leitung 182) das Öffnen kann jetzt die Und-Schaltung208 (Fig. 2d) vorbe- der Und-Schaltung 224 (Leitung 226 ist erregt), so reiten, und beim Rückkippen der Kippschaltung 10 daß (über Leitung 228) die Und-Schaltung 230 Nummer 7 wird über die Oder-Schaltung 210 die durchlässig wird. Die Kippschaltung 232 wird jetzt Kippschaltung Nummer 9 angestoßen. Während auf 1 gestellt, und über Leitung 234 und Oder-Schaldieses Taktimpulses wird der Vergleichszähler 62, tung210 (Fig. 2d) wird die Kippschaltung Numder Niveauring 58 und die Vergleichskippschaltung mer9 angestoßen. Diese stellt den Vergleichszähler, 64 auf 0 gestellt. Von Kippschaltung 9 wird Kipp- 15 den Niveauring und die Vergleichskippschaltung 64 schaltung Nummer 10 unmittelbar angestoßen und auf 0 und veranlaßt den Taktimpuls 10. Dieser läßt über Leitung 212 und die Oder-Schaltung 52 die © wiederum zu den Vergleichsschaltungen (F i g. 2 b) die Und-Schaltung 54 vorbereitet. So kann durch, und diesesmal wird der Niveauring 58 auf die jetzt die ©, die noch im Register 6 enthalten ist, zu vierte Stellung gesetzt, und der Vergleichszähler 62 den Niveauvergleichern 56 gelangen; dadurch wird 2o kommt in seine erste Stellung. Es folgt der Taktdie Stelle 2 des Niveauringes 58 eingestellt und der impuls Nummer 11, der die Vergleichs-Kippschal-Vergleichszähler 62 von 0 auf 1 gebracht. Die tung 64 in die 1-Stellung versetzt und den Taktimrückfallende Kippschaltung Nummer 10 stößt Num- puls Nummer 3 hervorruft. Letzterer läßt die © aus mer 11 unmittelbar an; auf Leitung 214 gelangt ein dem Register 6 zu der ersten Stelle des Speicher-Signal zur Oder-Schaltung74 (Fig. 2b), die Und- 25 registers und verlaßt den Taktimpuls Nummer 4. Es Schaltung 76 wird durchlässig und die Vergleichs- jst nachzutragen, daß der frühere Taktimpuls Numkippschaltung 64 auf 1 gestellt. mer 2 anläßlich der Entfernung der © aus dem Ein-
Beim Ausschalten der Kippschaltung Nummer 11 gabepuffer 10 den Zähler 14 (F i g. 2 a) auf 0 setzt. (Fig. 2d) wird über Leitung 216 und die Oder- Infolgedessen sind die beiden Leitungen 32 und 222 Schaltung 90 die Kippschaltung Nummer 3 ange- 30 nicht erregt, und die beiden Inverter 236 und 238 stoßen. Dadurch gelangt das Zeichen © aus dem Re- (Fig. 2d) können über die nachfolgende Und-Schalgister 6 (Fig. 2b) in die erste Stelle des Speicher- tung 240 ein Signal über die noch vorbereitete Undregisters 96. Beim folgenden Taktimpuls der Kipp- Schaltung 242 und die Oder-Schaltung 110 und weischaltung Nummer 4 wird geprüft, ob der Speicher- ter über Leitung 112 zur Und-Schaltung 116 geben, ring in der achten Stelle ist und andernfalls die 35 Beim Rückkippen der Kippschaltung Nummer 4 Kippschaltung Nummer 5 angestoßen. Diese schaltet wird 116 durchlässig und die Kippschaltung an den Ausgabering 11 und den Speicherregistersteuer- Nummer 6 angestoßen. Damit beginnt wieder ein ring fort, stellt das Register 6 zurück und stößt die Speicherzyklus zur Eingabe der © in die Niveau-Kippschaltung Nummer 1 an. ebene 4 und in den 3 D-Teil des Speichers, dort ge-
Es folgen sieben weitere Schritte, während deren 40 folgt von sieben Nullen. Es folgen drei weitere die Zeichen JKLMNO und P aus dem Eingabe- Arbeitsschritte des Speichers2D, während deren puffer 10 zum Speicherregister 96 übertragen werden. die © in der dritten, zweiten und ersten Niveau-Danach ist der Speicherregistersteuerring 102 in ebene eingetragen wird. Anschließend wird die Kippseiner achten Stelle und veranlaßt einen Speicher- schaltung 38 in ihren 1-Zustand zurückversetzt, und zyklus. Während dieses Speicherzyklus wird die © in 45 die Maschine wartet bis zum Einlauf des nächsten die Ebene Nummer 2 und der Inhalt des Speicher- Signals »Eingabe«.
registers 96 im 3 D-Teil des Speichers untergebracht. In der F i g. 3, einem Blockdiagramm der Spei-
Es folgt dann ein zweiter 2 D-Speicherzyldus, cherorganisation, ist das Speicherregister 96 der
währenddessen die © in der ersten Ebene gespei- Puffer für die Eingabe und Ausgabe zum Haupt-
chert wird, und anschließend wird die Kippschaltung 50 speicher; er nimmt in bekannter Weise ein aus dem
38 (Fig. 2d) in ihren 1-Zustand gebracht. Hauptspeicher gelesenes Maschinenwort auf und
Das letzte Zeichen in der zu behandelnden Kette kann es auf Befehl wieder dorthin übertragen, ist eine ©. Wenn dieses Zeichen in den Eingabe- Dieses Speicherregister entspricht dem ebenso bepuffer 10 gelangt, muß es also in dessen erster Stelle zeichneten der F i g. 2. Die Adresse der Speichererscheinen. Unmittelbar danach wird die Leitung 18 55 stelle, zu der ein Wort übertragen werden soll, ist durch ein Signal »Leer-Eingabe« erregt. Dieses im Register 300 (F i g. 3 a) enthalten, es wird mit Signal kann die Und-Schaltung 220 passieren, da Adreßregister bezeichnet. Die sieben rechten Bits deren zweiter Eingang (Leitung 222) erregt ist, wenn dieses Registers enthalten die Γ-Aresse, die sieben der Zähler 14 (Fig. 2a) in einer der Stellen 1 bis 7 linken die X-Adresse. Diese Adressen werden entsteht. 60 schlüsselt, um die 3 D- und 2 D-Speichervorgänge
Jetzt kann auch (über die Oder-Schaltung 34) die zu steuern. Das Register 300 enthält außerdem noch Und-Schaltung 36 sich öffnen, so daß über die Schaltungen, die seine Arbeitsweise als Zähler er-Differenzierschaltung 40 und die Oder-Schaltung 42 möglichen. Wenn z. B. dieses Register ursprünglich die Kippschaltung Nummer 1 angestoßen wird. Der auf lauter Nullen eingestellt ist und eine Schreibresultierende Impuls läßt die © aus dem Eingabe- 65 operation veranlaßt wird, so gelangt das zu Überpuffer 10 zum Register 6 und zu den Niveauverglei- tragende Wort in die Stelle 0 des Speichers. Nach ehern gelangen. Es entsteht dann auf der Leitung 4 der ersten Schreiboperation kann ein Impuls (z. B. der Niveauvergleicher 56 (Fig. 2b) ein Signal, das der Impuls »Gespeichert«) diesem Zähler zugeführt
27 28
werden, um ihn auf 00000000000001 zu stellen. Die CL-SS Suchvorgang,
nächste Schreiboperation würde also das zweite Wort
in die Stelle 1 des Speichers eintragen. Die Adres- CL-6S In diesem Takt finden fünf Vergleiche beim
sen, die anfangs in das Register 300 eingetragen und Antreffen eines Niveauzeichens statt,
später jeweils um den Betrag 1 erhöht werden, wer- 5
den durch einen anderen Teil der Maschine bestimmt Bei Gleichheit (!.Bed.) und Kippschaltung724 auf und sind nicht Gegenstand der Erfindung. Register, »o« (2.Bed.) und Kippschaltung 726 auf »0« (3.Bed.) die eine Liste verfügbarer Speicherstellen enthalten, entsteht Signal auf Leitung 740 »Anforderung neuer sind bekannt. Niveauzeichen«. In diesem Falle stoppt die Suche In den Fig. 3 ist die Niveauebene Nummer 1 all- 15 beim sechsten Takt. Bei Gleichheit (l.Bed.) und gemein mit dem Bezugszeichen 902 bezeichnet. Kippschaltung 724 auf »0« (2. Bed.) und Kippschal-Dieser Ebene sind zwei Tore zugeordnet (304 und tung726 auf »1« (3.Bed.) Übergang nach CL-8S. Bei 928 in Fig. 3 c), die von der in Fig. 2 c allgemein Ungleichheit und Kippschaltung 724 auf »U-+CL-9 S. dargestellten Speichersteuerung beeinflußt werden. Bei Ungleichheit und Kippschaltung 582 auf »0« Im Speicherzyklus wird also die Torschaltung 304 10 _=,. CL-4S. Wenn 582 auf 1-y CL-IS.
während des Leseteils des Zyklus und die Torschaltung 928 während des Schreibteiles durchlässig ge- _r __ „, . , ,.., , . , vvt_
macht. Bei der früher beschriebenen Speicherung der CL"75 Startadre.se erhohen oder vermindern, über-Niveauzeichen würde der in der Niveauebene Num- §an£nacu " ·
mer 1 festzuhaltende Impuls über den Kanal züge- 2O CL_8S 34 nach r_Teil von Re^ster 764 oder 780
fuhrt, der vom Entschlüsseier 310 (Fig. 3a) ab- bringen
geht. Eine der hundertachtundzwanzig Leitungen . ' Λ£. , , , , .
dieses Kanals wird vom Entschlüsseier 310 ent- *"? ,T, I μI %t 1\ I ^
sprechend dem Γ-Teil des Speicheradreßregisters 724 auf 1 stellen. Nach CL-4 5 gehen.
300 ausgewählt; gleichzeitig mit der Speicherung des 25 CL_9S 34nachl64 oder 780 bringen.
Wortes im Hauptspeicher (3 D) wird also an der ,, _ ., M. , _,.. , _ΟΛ , .
entsprechenden Stelle der φ-Nrveauebene ein 1-Bit i™ von 516 na^ 76I °der 7^ brmSen·
eingetragen ^er ^P11^ aus Kippschaltung Nummer 9
zeigt das Suchende an.
Suchbeispiel 30
Die Suchoperation wird durch den Befehl »Suche«
Die folgende Tabelle IV, die ein Fhißdiagramm aus dem Programm eingeleitet. Dieser Befehl wird der Suchvorgänge, die Funktion der Hauptbestand- als Impuls der Leitung 510 (Fig. 2h) dem Suchteile des Systems und den zeitlichen Ablauf angibt, taktgeber (Teil C) zugeleitet. Dadurch wird über die kann das Verständnis der danach folgenden Be- 35 Oder-Schaltung 512 die erste der neun Kippschalschreibung erleichtern. tungen des Suchtaktgebers angestoßen. Außerdem
stellt der Befehl »Suche« die oben aufgezählten Anfangsbedingungen her. Das auf Leitung 514 ent-
Tabelle IV stehende Ausgangssignal (Taktimpuls CL-15) läßi
Startbedingungen 4° die Startadresse aus dem Register 516 (F i g. 2 e) übei
die Und-Schaltung 518 und die Oder-Schaltung 5Π
Diese werden durch den Befehl »Suche« herge- (F i g. 3 a) in das Adreßregister 300 gelangen. Beim stellt. Rückkippen der ersten wird die zweite Kippschal-
^. , „ , „ . .^ tung angestoßen, und sie erregt die Leitung 522. Da-
Eintrag der Startadresse ins Register 516. 45 d]Brdl wird (Fig_ 2c) über die Und.Schaltung 524
Eintrag der Niveauzeichen ins Register 528. ein 2 D-Speicher-Zyklus angeregt. Außerdem wire
Zählregister 562 einstellen. ^e Und-Schaltung 526 (F i g. 2 e) geöffnet, so daC
die Niveauzeichen aus dem Register 528 zu der
Kippschaltung 580 einstellen. Oder-Schaltungen 532 (Fig. 2b) gelangen können
Kippschaltung 726 auf 0 stellen. 5o Die Ausgänge dieser Schaltungen (Leitungen 533]
_.., „o ' führen zu der Speichersteuerung und bereiten dor
Zahler 628 auf 0 stellen. Torschaltungen vor wie die Torschaltungen 304, 534
CL-IS Startadresse zu 300 leiten. und 536 (P i 8- 3 cDiese Tore werden während de:
■ν λ~ i^ ouj £ η ^ Ii Leseteiles des Speicherzyklus rechtzeitig erregt, un
Kippschaltung »Suchende« auf 0 stellen. 55 eine zdle aug Jn Nivea 3 uebenen auszufesen, |inzei.
CL-IS Niveauzeichen zur Speichersteuerung durch- heiten darüber werden noch gegeben. Die Torschal· lassen tung 538 (ebenfalls F i g. 3 c) wird vom Taktgeber s(
20-Speicherzyklus einleiten (dadurch gelangt SS&^JS^^^
eine Zeile einer Niveauebene nach 312). c ^ster^ umlauten können.
' 60 Die Speicheradressierung geschieht folgender
CL-3S 312 nach Register 610 übertragen. maßen: Die Z-Adresse wird von dem Entschlüsse
Y-Anfangsadresse nach Register 634 durch- ler 914 (Fig. 3a) über die Torschaltung 93'
lassen. (Fig· 3b) einer 8 · 16-Anordnung von Kerntreiberi
Vergleichsvorgang für Register 638 veran- 936 zugeführt, die ähnlich den Treibern 548 und 54!
lassen. 65 aufgebaut sind. Die Wahl der anzusteuernden Ebene)
geschieht durch die Torschaltungen 922, 924 um
CL-4S Inhalt von Register 634 zum Entschlüsseier 926, jeweils durch eine der Leitungen 533. Die au
648 weitergeben. einer der Ebenen 901 ausgelesene Zeile von Niveau
zeichen (enthaltend hundertachtundzwanzig Bits) gelangt in das Register312 (Fig. 3c) durch die Torschaltungen 538. Nachdem aus der Speichersteuerung (Fig. 2c) das Signal »Gesucht« auf Leitung 144' gegeben worden ist, wird die Kippschaltung Nummer 3 (Fig. 2h) angestoßen und die Leitung 556 zur Vorbereitung der Torschaltung 556 (F i g. 3 c) gegeben. Der Inhalt des Registers 12 gelangt nun in das Register 610 (Fig. 2g). Weiter wird die Torschaltung 550 (F i g. 3 a) geöffnet, und diese läßt die Y-Adresse aus dem Register 300 in das Register 634 (Fig. 2g) eintreten. Schließlich wird noch die Und-Schaltung 560 (F i g. 2 e) geöffnet, um den Zählerstand des Registers 562 zum Vergleichsregister 638 zu überführen. Beim Rückfall der Kippschaltung Nummer 3 des Taktgebers wird über Leitung 564 und die Oder-Schaltung 566 die Kippschaltung Nummer 4 angeworfen. Durch die angeschlossene Leitung 568 wird die Und-Schaltung570 (Fig. 2g) geöffnet und der Inhalt des Registers 634 zum Entschlüsseier 648 übertragen. Die rückfallende Kippschaltung Nummer 4 erregt die Kippschaltung Nummer 5 und damit die Leitung 574 zur Vorbereitung der Und-Schaltungen 576 und 578 (Fig. 2f), Die anderen Eingänge dieser Und^Schaltungen kommen von der Kippschaltung 580, die bei 1-Stellung die Links-Suche und bei 0-Stellung die Rechts-Suche bewirkt. Unter der Annahme, daß die Kippschaltung 582 (Überlauf) im 1-Zustand ist und eine Rechts-Suche erwünscht wäre, dann liefert die Und-Schaltung 584 ein Ausgangssignal, das über Leitung 650 den Entschlüsseier 648 (F i g. 2 g) anspricht. Dieser arbeitet mit dem Suchring 614 in der früher beschriebenen Weise zusammen, um die Suche eine Stelle rechts neben der Y-Adresse des Entschlüsselet 648 zu beginnen. Diese Suche geht im Suchring so lange vor sich, bis ein Niveauzeichen der im Register 528 (Fig. 2e) vorgegebenen Art gefunden wird. Dann erscheint auf Leitung 626 ein Ausgangssignal, das den Zähler 628 um 1 weiterschalten kann. Die Zahl 628 wird verglichen mit der Zahl im Register 638, und auf Leitung 586 erscheint bei Ungleichheit ein Signal; bei Gleichheit erscheint auf 640 ein Signal. Bei Ungleichheit wird also die Kippschaltung 588 auf 0, im anderen Falle auf 1 gestellt. Wenn die Kippschaltung Nummer 5 des Taktgebers zurückfällt, so wird die Kippschaltung Nummer 6 angestoßen und erregt Leitung 590, von welcher fünf Prüfungen angeregt werden (s. Tabelle IV). Nur eine davon kann Erfolg haben, nämlich im Beispiel das Öffnen des Tores 592 zur Erregung der Leitung 504; dies geschieht über die Und-Schaltung 594, die von der Kippschaltung 582 vorbereitet wird. Die Leitung 504 stellt die Kippschaltung 596 (Fig. 2h) auf 1 und gleichzeitig über Oder-Schaltungen die Kippschaltungen 598,700,702 und 704 auf 0. Wenn die Kippschaltung Nummer 6 des Taktgebers zurückkippt, wird also die Und-Schaltung 706 einen Ausgangsimpuls liefern, der über die Oder-Schaltung 566 wiederum die Kippschaltung Nummer 4 anwirft. Es muß festgehalten werden, daß bei den früheren Suchoperationen die bestimmte Stelle, in der ein Niveauzeichen angetroffen wurde, zu dem Verschlüsseier 630 übertragen und in eine Adresse verwandelt wurde, die in das Register 634 singetragen wird. Die Ausgangsspannung auf der Leitung 568 läßt wiederum den Inhalt von 634 in Jen Entschlüsseier 648 einlaufen und stößt beim Rückkippen der Kippschaltung Nummer 4 wiederum die Kippschaltung Nummer 5 an, erregt die Leitung 574 und verursacht den neuen Suchimpuls. Um das Beispiel fortzusetzen: Suchimpulse müssen so oft auftreten, bis der Inhalt des Zählers 628 mit dem Vergleichsregister 638 übereinstimmt. Unter der Annahme, daß der zweite Suchimpuls auf Leitung 574 im Suchring 614 kein Niveauzeichen findet, wird dieser Impuls aus der rechten Seite des Suchringes auf Leitung 710 austreten und über die Oder-Schaltung 712 die Kippschaltung 582 (Überlauf) auf 0 stellen. In diesem Falle entsteht auf den Leitungen 626 (Eingang zum Zähler 628) kein Signal. Es folgt ein Taktimpuls Nummer 6 auf Leitung 590. Diesmal wird dadurch die Und-Schaltung 714 geöffnet, die Leitung 506 erregt und die Kippschaltung 702 auf 1 gestellt. Gleichzeitig werden wieder die Kippschaltungen 598, 700, 596 und 704 zum 0-Zustand gebracht. Wenn die Kippschaltung Nummer 6 nun abschaltet, stößt' sie über die Und-Schaltung 716 die Kippschaltung Nummer 7 an. Der resultierende Taktimpuls auf Leitung 718 öffnet nun die Und-Schaltung 720, da die Leitung 760 durch die Kippschaltung 580 erregt ist. Die X-Adresse im Register 516 wird jetzt um 1 erhöht. Die ausschaltende Kippschaltung Nummer 7 stößt die Kippschaltung Nummer 1 an. Die Taktimpulse 1 und 2 werden jetzt wiederholt, um eine neue Zeile aus der gewählten Niveauebene zum Register 312 zu bringen und einen neuen Speicherzyklus einzuleiten. Danach veranlassen die Taktimpulse 3, 4, 5 und 6 eine erste Suche in dieser neuen Bitzeile. Die Kippschaltung 582 ist jetzt auf 0, so daß der Ausgang der Und-Schaltung 576 nun auf der Leitung 722 erscheint und die Suche am linken Ende des Suchringes 614 (Fig. 2g) beginnen läßt. Es sei nun angenommen, daß ein Niveauzeichen gefunden ist; dann erscheint auf Leitung 626 ein Signal. Der Zählerstand von 628 möge auch mit 638 übereinstimmen. Dann erscheint auf Leitung 640 ein Impuls, der die Kippschaltung588 (Fig. 2f) in den 1-Zustand versetzt. Die mit dem Taktimpuls Nummer 6 stattfindende Prüfung betrifft nun die Kippschaltungen 588 (Vergleich), 724 (Suchende) und 726 (Letzter oder Nicht-Letzter). Wenn die Kippschaltung 726 auf 0 steht, so bedeutet dies, daß die gerade beendete Suche sich nicht auf das letzte Niveauzeichen der Kette bezog, und es muß ein Signal entstehen, das vom Programm das folgende Niveauzeichen anfordert. Das geschieht folgendermaßen: Die Kippschaltung 724 ist auf 0, d. h., die Leitung 728 ist erregt. Die Und-Schaltung 730 liefert ein Ausgangssignal, da ihr anderer Eingang von der O-Seite der Kippschaltung 726 gespeist wird. Dieses Ausgangssignal gelangt über Leitung 732 zur Und-Schaltung 734, deren anderer Eingang durch die Und-Schaltung 736 geliefert wird (diese ist wegen 590 und 588 durchlässig). Hinter der Und-Schaltung 734 erscheint also auf Leitung 508 ein Signal, das die Kippschaltung 704 auf 1 stellt und die Und-Schaltung 738 vorbereitet. Das Rückkippen der Kippschaltung Nummer 6 des Taktgebers verursacht also auf der Leitung 740 ein Signal, welches eine Anforderung eines neuen Niveauzeichens aus dem Programm veranlaßt.
Letztes Niveauzeichen in einer Kette
Die Kippschaltung 726 ist in diesem Falle durch die Anfangsbedingungen auf 1 gestellt. Die vom Takt-
impuls CL-S S erledigten Operationen sind dieselben wie früher beschrieben, aber während des Taktimpulses CL-6S bestehen neue Bedingungen. Wenn der Inhalt des Zählers 628 mit dem Vergleicher 638 während des Taktimpulses CL-SS übereinstimmt, so hat der Taktimpuls CL-6S die Lage der Kippschaltungen 588, 724 und 726 zu prüfen. Die Prüfung ist erfolgreich, wenn 588 auf 1, 724 auf 0 und 726 auf 1 eingestellt ist. In diesem Falle wird die Und-Schaltung 736 durchlässig (Taktimpuls und 588), und die Und-Schaltung 744 ist vorbereitet. Die Und-Schaltung 746 gibt ebenfalls ein Ausgangssignal ab (726 und 724), so daß am Ausgang der Und-Schaltung 744 auf Leitung500 ein Signal vorliegt, das (Fig. 2h) die Kippschaltung 598 auf 1 und gleichzeitig die Kippschaltungen 700, 596, 702 und 704 auf 0 stellt. Beim Rückkippen der Kippschaltung Nummer 6 des .Taktgebers gibt also die Und-Schaltung 748 einen Anstoß zur Kippschaltung Nummer 8 des Taktgebers. Über die Leitung750 wird jetzt (Fig. 2g) über die Oder-Schaltung 752 und die Und-Schaltungen 644 der Inhalt des Registers 634 zum Kanal 646 gegeben und den Und-Schaltungen754 und 756 (Fig. 2e) zugeleitet. Da (wie früher angegeben) eine Rechts-Suche im Gang ist, können die Leitungen 760 und 750 die Und-Schaltungen 758 öffnen und über die Oder-Schaltung 762 die Und-Schaltungen 754 und 755 durchlässig machen. Der Inhalt des Registers 634 gelangt also in den Γ-Teil des Anfangsregisters 764, und der X-Teil der Adresse aus dem Register 516 gelangt in den X-Teil des Registers 764. Durch den Impuls auf Leitung 750 wird außerdem die Kippschaltung 724 (Fig. 2f) in den 1-Zustand gebracht. Beim Rückkippen der Kippschaltung Nummer 8 des Taktgebers wird über Leitung766 und die Oder-Schaltung 566 (Fig. 2h) die Kippschaltung Nummer 4 angestoßen; die Taktimpulse 4 und 5. werden wiederholt, und beim Taktimpuls CL-6S wird Ungleichheit und Stellung der Kippschaltung 724 im 1-Zustand festgestellt. Jetzt hat die Und-Schaltung 768 (Fig. 2f) ein Ausgangssignal, das auch die Und-Schaltung 770 passieren und auf die Leitung 502 einen Einstellimpuls zur Kippschaltung700 (Fig. 2h) übertragen kann. Der resultierende Ausgangsimpuls der Und-Schaltung 772 stößt die Kippschaltung Nummer 9 des Taktgebers an und verursacht ein Signal auf Leitung 774, Es werden die Und-Schaltungen 644 (Fig. 2g) und 776 (Fig. 2e) angesprochen. 776 öffnet nun die Und-Schaltungen 756 und 757, so daß nunmehr der Inhalt des Registers 634 in den F-Teil des End-Registers 780 und der X-Teil der Adresse aus dem Register 516 in den X-Teil von 780 übertragen wird.
Bei dem oben gegebenen Suchbeispiel wurden keine bestimmten Zahlen benutzt, da dies nicht nötig schien. Wenn es erwünscht wäre (s. allgemeine Beschreibung von TeilF in Fig. 2f und 2g), die dritte Silbe des zweiten Satzes im dritten Abschnitt des mit »Personalangaben« bezeichneten Blocks zu lokalisieren, so möge die Anfangsadresse dieses Datenblocks irgendeine Zahl, z. B. 1007 sein. Die Adresse 1007 in Binärform, nämlich 00001111101111, werdenin das Anfangsadreßregister 516 (Fig. 2e) eingegeben und das Niveauzeichen für den Abschnitt, die ©, werden in das Niveauregister 528 gespeichert; die Zahl 3 kommt in das Register 562. Da die Suche mit der Anfangsadresse beginnt, wird die Kippschaltung 580 (F i g. 2 f) auf »Suche rechts« eingestellt. Die Suche verläuft dann in der vorstehend beschriebenen Weise, bis die dritte © gefunden wurde; die nächsten beider Schritte der Suchroutine sind dann erstens Aufsuchen der zweiten ® und zweitens Aufsuchen dej dritten ©. Schließlich wird die Adresse des Anfangs und des Endes dieses Datenteiles in den Register: und 780 eingetragen.
Das vorstehend beschriebene Datenverarbeitungs system ist besonders für kommerzielle Probleme ge
ίο eignet, wo ungewöhnlich lange Datenketten abge speichert und verarbeitet werden müssen, und be sonders, wo einzelne Teile dieser Datenketten voi unterschiedlicher Länge sind. Das erfindungsgemäßi System übertrifft die üblichen wortorganisiertei
is 3 D-Speicher insofern, als es den Zugriff über neu artige Sucheinrichtungen und Suchverfahren erlaub und dabei ein Minimum von Programmierung be nötigt. Es braucht nur die Startadresse einer bestimm ten Datenkette und die relative Lage eines gewünsch
ao ten Teiles der Information innerhalb der Kette be kaniit zu sein; demgegenüber ist bei bekannten Ein richtungen die absolute Adresse des bestimmte] Datenteiles erforderlich. Wie schon erläutert, könnei auch andere Speicherarten außer dem im Beispiel ge wählten Kernspeicher sowie andere Schreib- um Lesesteuerungen in gleicher Weise benutzt werden Statt der beschriebenen serienweisen Behandlun wäre auch parallele Entnahme bei entsprechende Modifikation der Schaltung möglich.

Claims (4)

Patentansprüche:
1. Verfahren zur Speicherung hierarchisch g€ geordneter Datenketten mit variabler Länge de Datenteile innerhalb der hierarchischen Niveau und zur Entnahme von Datenteilen eines belieb: gen Niveaus, dadurch gekennzeichnei daß in eine zu speichernde Datenkette vor de Eingabe in den Speicher an den Anfang eine jeden hierarchischen Niveaus ein das Nivea markierendes Zeichen eingefügt wird, daß di Eingabesteuerung des Speichers ein einlaufende Niveauzeichen in einem HilfsSpeicher eintraf und die zugehörigen Daten in einer der Speichel stelle des Hilfsspeichers eindeutig zugeordnete Stelle des Hauptspeichers einträgt und daß bi der Suche nach einem Datenteil das zugehörig Niveauzeichen vorgegeben, der Hilfsspeiche nach diesem Zeichen durchsucht und aus der gs fundenen HilfsSpeicheradresse die Hauptspeiche: adresse ermittelt wird.
2. Anordnung zur Durchführung des Verfal rens nach Anspruch 1, dadurch gekennzeichne daß eine der Anzahl der hierarchischen Niveai der Daten entsprechende Anzahl von Hilfsspe cherebenen (901) vorgesehen ist, daß gleiche Bitstellen dieser Ebenen ein Wort des Haup Speichers (900) zugeordnet ist und daß ein in eil Ebene des Hilfsspeichers eingetragenes Bit selbs tätig an gleichen Stellen aller Ebenen niedrigere Niveaus eingetragen wird.
3. Anordnung nach Anspruch 2, dadurch g kennzeichnet, daß eine Ringschaltung (58) d Eintragung eines Niveauzeichens verhindert, el die einer Wortlänge des Hauptspeichers er sprechende Zeichenzahl eingelaufen ist.
4. Anordnung nach den Ansprüchen 2 und dadurch gekennzeichnet, daß bei der Suche nai
einem durch Vorgabe (516,528,562) von mehreren Niveauzeichen identifizierten Datenteil die Hilfsspeicherebenen (901), beginnend bei der höchsten, zeilenweise ausgelesen werden (312), daß die Adresse eines gefundenen Niveauzeichens festgehalten wird (634), daß die Suche in der
durch die Vorgabe festgelegten Richtung (710) für weitere Niveauzeichen in den Ebenen niedrigerer Ordnung fortgesetzt und daß die Stelle des niedrigsten vorgegebenen Niveauzeichens (764,780) zur Adressierung des gesuchten Datenteiles benutzt wird.
Hierzu 5 Blatt Zeichnungen
DEJ25844A 1963-05-23 1964-05-15 Verfahren und Anordnung zur Speicherung und Entnahme hierarchisch geordneter Daten Pending DE1214906B (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US282807A US3289175A (en) 1963-05-23 1963-05-23 Computer data storage system

Publications (1)

Publication Number Publication Date
DE1214906B true DE1214906B (de) 1966-04-21

Family

ID=23083199

Family Applications (1)

Application Number Title Priority Date Filing Date
DEJ25844A Pending DE1214906B (de) 1963-05-23 1964-05-15 Verfahren und Anordnung zur Speicherung und Entnahme hierarchisch geordneter Daten

Country Status (4)

Country Link
US (1) US3289175A (de)
CH (1) CH420273A (de)
DE (1) DE1214906B (de)
GB (1) GB1018915A (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3350693A (en) * 1964-06-26 1967-10-31 Ibm Multiple section transfer system
US3343134A (en) * 1964-06-26 1967-09-19 Ibm Multiple section retrieval system
US3344402A (en) * 1964-06-26 1967-09-26 Ibm Multiple section search operation
US3422404A (en) * 1966-02-23 1969-01-14 David E Ferguson Apparatus and method for decoding operation codes in digital computers
US3469241A (en) * 1966-05-02 1969-09-23 Gen Electric Data processing apparatus providing contiguous addressing for noncontiguous storage
US3568155A (en) * 1967-04-10 1971-03-02 Ibm Method of storing and retrieving records
US3653001A (en) * 1967-11-13 1972-03-28 Bell Telephone Labor Inc Time-shared computer graphics system having data processing means at display terminals
DE1814000A1 (de) * 1967-12-19 1969-08-28 Ericsson Telefon Ab L M Verfahren zum UEbertragen von veraenderlichen Daten aus einer ersten Adresse in einem ersten Bezirk eines ersten Speicherfeldes zu einer zweiten Adresse in einem zweiten Bezirk eines zweiten Speicherfeldes im Datenspeicher eines Computers
JPS6182232A (ja) * 1984-09-29 1986-04-25 Olympus Optical Co Ltd 情報登録検索方式

Also Published As

Publication number Publication date
CH420273A (de) 1966-09-15
GB1018915A (en) 1966-02-02
US3289175A (en) 1966-11-29

Similar Documents

Publication Publication Date Title
DE1449765C3 (de) Einrichtung zur Abfrage eines assoziativen Speichers
DE2331589A1 (de) Datenverarbeitungsanordnung
DE1282337B (de) Programmgesteuerte elektronische Rechenanlage
DE1499193A1 (de) Datenverarbeitungsanlage
DE1424732A1 (de) Elektronische Ziffernrechenmaschine
DE1774052B1 (de) Rechner
DE1449544A1 (de) Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk
DE1214906B (de) Verfahren und Anordnung zur Speicherung und Entnahme hierarchisch geordneter Daten
DE3005376C2 (de)
DE1806535A1 (de) Digitale Rechenanlage
DE1221037C2 (de) Verfahren zur Speicherung hierarchisch geordneter Datenketten und Anordnung zur Durchfuehrung dieses Verfahrens
DE1474042C3 (de) Datenspeichersystem zur Ein- und Ausspeicherung von in Ketten zusammengefaßten Daten unterschiedlicher Feldlänge
DE1099225B (de) Anordnung zum UEbertragen von Angaben zwischen Speichern einer datenverarbeitenden Anlage
DE1474376A1 (de) Verfahren und Anordnung zum schnellen Zugriff bei grossen seriellen Speichern
DE1069910B (de) Kommandowerk mit Indexregister
DE1250489B (de) I Schaltungsanordnung zur Einspei cherung von Leerstellen-Kennworten in einen assoziativen Speicher
DE1549422B2 (de) Datenverarbeitungsanlage mit variabel vorwaehlbarer wortlaenge
DE1474017C3 (de) Datenverarbeitungsanlage
DE2419836C3 (de) Schaltungsanordnung zur Durchführung von Unterprogramm-Sprungbefehlen in Datenverarbeitungsanlagen
DE1774917A1 (de) Elektronische Rechenanlage
DE1275801B (de) Schaltungsanordnung zur Auswahl derjenigen von mehreren dem gleichen Informationsband zugeordneten Lese-Schreib-Kopfsaetzen, welche von einem gewuenschten Speicherplatz am schnellsten erreicht wird
DE1524211A1 (de) Datenverarbeitungsanlage
DE1214027B (de) Anordnung zur Steuerung der blockweisen UEbertragung von Rechenprogrammen oder derenersten Teilprogrammen
DE1774866C3 (de) Schaltung zur Bestimmung der Adresse einer in einem Speicher einer Datenverarbeitungsanlage enthaltenen, gesuchten Information
DE1499191C3 (de) Elektronische Einrichtung für eine Datenverarbeitungsanlage