DE2505843A1 - Datenverarbeitungsanlage mit datenstromgesteuerter simultanverarbeitung - Google Patents
Datenverarbeitungsanlage mit datenstromgesteuerter simultanverarbeitungInfo
- Publication number
- DE2505843A1 DE2505843A1 DE19752505843 DE2505843A DE2505843A1 DE 2505843 A1 DE2505843 A1 DE 2505843A1 DE 19752505843 DE19752505843 DE 19752505843 DE 2505843 A DE2505843 A DE 2505843A DE 2505843 A1 DE2505843 A1 DE 2505843A1
- Authority
- DE
- Germany
- Prior art keywords
- unit
- programmable
- data
- units
- data segment
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/076—Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution paradigms, e.g. implementations of programming paradigms data driven
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multi Processors (AREA)
- Information Transfer Systems (AREA)
- Complex Calculations (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
\ NACHGEREÜCHT
EISENFUHR& SPEISER £/7^ Patentanwälte
' DiPL.-lNG. GÜNTHER EIStNF1Ii1WR
DiPL-Ing. DIETER K. SPEISER BREMEN DR RER. NAT. HORST ZINNGREBE
UNS. ZEICHEN : B 305
ANMELDER/INH: BURROUGHS CORPORATION
Aktenzeichen: Neuanmeldung i 24 O S «<(:>. 1 "
Datum: 4. November 197;
BURROUGHS CORPORATION, eine Gesellschaft nach den Gesetzen des Staates Michigan, Burroughs Place, Detroit,
Michigan 48232, V.St.A.
Datenverarbeitungsanlage mit datenstromgesteuerter Simultanverarbeitung
Die' Erfindung beschäftigt sich mit einem datenstromgesteuerten
Netzwerk zur Simultanverarbeitung von Programmen in einer Datenverarbeitungsanlage, und insbesondere beschäftigt
sie sich mit einem Netzwerk» das sowohl verteilte Verarbeitungselemente wie auch verteilte Speicherelemente
aufweist.
Bekannte Datenverarbeitungsanlagen wurden mit einer in erheblichem Umfang zentralisierten Organisation und
Steuerung ausgerüstet, die in Einheiten wie dem Zentralprozessor und den Hauptspeichereinheiten verkörpert sind.
Diese hohe Zentralisierung war eine Folge der für die Schaltung aufzuwendenden Kosten, der Schaltungsgrößen
und der Versuche, die Ausnutzung dieser Komponenten zu optimieren. Weiter wurden System-Gperationsalgorithmen
in zentralisierter Orientierung als Gegenstück zur dezen-
HZ/gs 509836/0 66 8
D 2800 BREMEN 1 EDUARD-GRUMOW-STRASSE 27 - TELEFON ( 0421 ) "7 20
TELEGRAMWEFERROPAT · TELEX 02 44 020 FEPAT · BREMER BANK 100 9072 ■ POSTSCHECK HAMBURG 25 57
tralisierten Steuerung geschaffen und die Algorithmen und Sprachen waren auf die sequentielle Bearbeitung
von Problemen ausgerichtet» In derartig zentralisierten Systemen waren die einzelnen Einrichtungen der Erle-_
digung spezieller Funktionen gewidmet und das Unterteilen des Systems zwischen verschiedenen Programmen oder Verfahren
war bestenfalls unregelmäßig. Große Operations-S'/steme
wurden entwickelt, um die Ausnutzung der verschiedenen Systernkomponenien und -Geräte au optimieren und sie
über eine Anzahl von Programmen und zu erledigenden Aufgaben möglichst nutzbringend zu verteilen« Derartig hochzentralisierte
Systeme sind jedoch nicht imstande, aus den inzwischen stattgefundenen technischen Weiterentwicklungen,
wie sie beispielsweise in der LSI-Technik vorliegt, optimalen Nutzen zu ziehen. Diese LSI-Technik
bezieht sich insbesondere auf die integrierten Modul-Großschaltungen, die in Weiterführung der IC-Technik auf
kleinen Chips untergebracht werden können (LSI=modular
large scale integrated circuit chips).
Um eine größere Flexibilität zur Anpassung an laufende Prozesse, Programme und Bearbeitungen von Aufgaben zu
schaffen, wurden in bekannter Weise zentralisierte Systeme in Mehrprogramm und Simultan-Verarbeitungssysterae welter
entwickelt, die aus Netzwerken und Feldern von Einheiten bestehen, die in gewissem Umfang modul-mäßig aufgebaut
sind« Das bedeutet, daß die Verarbeitungs-Leistungsfähigkeit
durch Hinzufügen zusätzlicher zentraler Verarbeitungseinheiten gespeichert werden kann, daß der Hauptspeicher
durch Hinzufügen zusätzlicher Speichermoduln vergrößert
werden kann und daß die E/A-Leistungsfähigkeiten durch
Hinzufügen weiterer E/A-Kanäle oder -Steuereinheiten erhöht werden kann (E/A = Eingabe/Ausgabe)« Da jedoch
die einzelnen Verarbeitungseinheiten und. E/A-Steuereinheiten noch immer auf die sequentielle Ausführung von
Aufgaben ausgerichtet sind, bleibt die Systemsteuerung
509835/0 668 °*MNal inspected
dennoch relativ zentralisiert und das Unterteilen der
verschiedenen Einheiten in dem System für die Behandlung verschiedener gleichlaufender Ausgaben ist nach wie vor
relativ unregelmäßig.
Weiterentwicklungen in der LSI-Schaltungstechnik haben
einige Einflüsse beseitigen können, die sich aus der stark zentralisierten Steuerung in Datenverarbeitungsanlagen
ergaben. Die LSI-Technologie erfordert Regelmäßigkeit
und eine Nicht—Zuweisung spezialisierter oder komplizierter Algorithmen und Funktionen zu den einzelnen
Schaltungs-Chips. Außerdem sind die IC-Speicher schnitts'tellenkompatibel mit Logikschaltungen und daher kann
die registerorientierte Prozessorstruktur durch Verteilen der IC-Speicher über das gesamte System eliminiert werden.
Ferner haben die Weiterentwicklungen an periodischen Speichergeräten wie beispielsweise Platten, Plattenstapel,
Verzögerungsleitungen und dergleichen zu einer sehr unergiebigen Speicherform geführt. Während die Zugriffszeiten
derartiger periodischer oder dynamischer Speicher relativ langsam verglichen mit den IC-Speichern sind, erlaubt die
Verteilung derartiger periodischer Speicher über das System das Nutzbarmachen einer nahezu unbegrenzten Speicherkapazität,
für die die Zugriffszeit nicht größer ist als die Zugriffszeit für einen einzelnen Speicher. ·
Um die Modulbauweise der in IC-Schaltungen ausgeführten Einheiten zu schaffen, gestattet die Verwendung der Mikro—
Programmiertechnik, daß das System aus einer großen Anzahl ähnlicher Prozessor-Chips aufgebaut werden kann, von denen
jedes einer speziellen Aufgabe durch das in seinem Mikroprogrammspeicher
gespeicherte Mikroprogramm gewidmet ist. So kann eine Anzahl ähnlicher, in IC-Technik ausgeführter
Prozessoren jeweils Aufgaben wie die arithmetischen Operationen, Eingabe/Ausgabe-Operationen, und dergleichen übernehmen.
5098::;;/0^68
Ein spezielles Strukturmerkmal, das die Entwicklung hochzentralisierter
Systeme beeinflußt hat, besteht in der Verwendung von bitparallelen Datenwegen und dem bitparallelen
Zugriff auf den Speicher. Eine derartige parallele Datenübertragung erfordert eine gewisse gleichförmige
Breite der Datensegmente, die ihrerseits sich nicht leicht verschiedenen Benutzeranforderungen anpassen lassen. Jedoch
paßt sich die Verwendung einer bitseriellen oder zeichenseriellen Datenübertragung leicht Datensegmenten
beliebiger Länge an und vermeidet die Forderung, daß die Datenwege, Register und Speicherstellen gleichförmig miteinander
verdrahtet sein müssen.
Das vielleicht bemerkenswerteste Einzelmerkmal bekannter
Systeme, das zur Entwicklung zentralisierter Systemsteuerungen und sequentieller Problemlösungen geführt
hat, besteht wohl darin, daß eine die Befehlsausführung dirigierende Steuerung verwendet wurde. Das bedeutet,
daß' in den meisten bekannten Systemen eine ein Programm oder eine Prozedur in einem Programm repräsentierende
Befehlskette durch das sequentielle Weiterzählen eines Programmzählers aufgerufen wurde, und die für die Befehlskette erforderlichen Operanden so zusammengestellt werden
mußten, daß sie am Prozessor rechtzeitig zur Ausführung der einzelnen Befehle in der Kette zur Verfügung standen.
Da die Anwesenheit der benötigten Operanden nicht derjenige Umstand war, der die Befehlsausführung aufrief,
wurden eine Anzahl ausgeklügelter und umständlicher Verfahren geschaffen, um sicherzustellen, daß die benötigten
Operanden tatsächlich zur Verfügung stehen.
Im Gegensatz zu solchen steuerungsabhängigen Systemen sind die vom Datenstrom gesteuerten Systeme solche, bei
denen die speziellen Befehle in Abhängigkeit von der Ankunft jeweiliger Datensegmente an "einer speziellen Verarbeitungseinheit
'zur Ausführung aufgerufen werden. In
509836/0668
solchen datenstromgesteuerten Systemen ist ein Programm- ■
zähler für die Systemsteuerung nicht notwendig, wie auch nicht länger eine Notwendigkeit für eine zentralisierte Systemsteuerung
besteht. In solchen datenstromgesteuerten Systemen können die ein Programm bildenden verschiedenen
Befehle verschiedenen Prozessoren zugeordnet werden und ihre Ausführung v-ürde in Sequenz stattfinden, wenn· die
jeweiligen Daten von einem Prozessor zum anderen übertragen worden si id. Auf diese Weise kann das System.sehr
leicht so unterteilt werden, daß es sich vollkommen gleichlaufenden
oder nicht zusammenhängenden Prozeduren anpassen kann. Wenn andererseits eine Anzahl von Verarbeitungshandlungen
an ähnlichen Datensegmenten ausgeführt werden sollen, kann der Strom derartiger Datensegmente von einem Prozessor
zu einem anderen weitergeleitet werden und damit eine Art "pipeline"-Effekt schaffen, der nur durch die Übertragungsgeschwindigkeiten von einem Prozessor zu dem anderen begrenzt
ist. .
Der Erfindung liegt daher die Aufgabe zugrunde, ein Informationsverarbeitungssystem
zu schaffen, das eine natürlichere Organisation der Arbeitsabläufe besitzt als diejenige, die in den bekannten steuerungsabhängigen
Systemen angetroffen wird. Weiter soll die Erfindung ein Informationsverarbeitungssystem schaffen, dessen Verteilung
von Funktionseinheiten und Speichereinheiten eine zentralisierte Systemsteuerung überflüssig macht»
Ferner soll das erfindungsgemäß verbesserte Informations-Verarbeitungssystem
dynamisch unterteilbar sein, um gleichlaufenden Prozeduren, Programmen und Aufgabenlösungen
angepaßt werden zu können. Schließlich soll das erfindungsgemäi verbesserte Informationsverarbeitungssystem eine beliebige
Anzahl ähnlicher Funktionseinheiten umfassen, die dann verschiedenen Aufgaben zugewiesen werden können, die
von dem System jeweils zu bearbeiten sind· Schließlich
509836/0668
und endlich soll das erfindungsgemäß verbesserte Informationsverarbeitungssystem
einen verteilten Speicher besitzen, der ohne Beschränkung erweiterungsfähig ist, ohne
daß gleichzeitig die Zugriffszeit zu ihm verlängert wird.
Zur Lösung der genannten Aufgabe schafft die Erfindung ein Netzwerk von Verarbeitungs- oder Funktionsmoduln,
von denen jeder mit seinem eigenen örtlichen Speicher ausgerüstet ist und wobei die Hauptspeicherfunktion von
der Vielheit der verschiedenen örtlichen Speicher erfüllt wird. Die Datenübertragung zwischen verschiedenen
Funktionsmoduln findet asynchron in einer bitseriellen oder zeichenseriellen Weise statt. Die Ausführung durch
jeden Funktionsmodul wird durch die Ankunft sämtlicher Datenposten ausgelöst, die von einem der Knoten eines
Programmnetzwerks (oder Netzes) gebraucht werden und in der lokalen Speichereinheit enthalten sind, die mit dem
Funktionsmodul gekoppelt ist. Die jeweils erforderlichen Datenposten bilden die zugehörigen Datenstrukturen. Eine
dieser Datenstrukturen ist ein Befehls- oder Operator-(Operand)-Knoten
und mehrere solcher Knoten sind in einem oder mehreren örtlichen Speichern gespeichert und bilden
ein Programm-Netzwerk. Die andere Datenstruktur umfaßt
Übergangs-Datenposten, die eine Verbindung zwischen den Knotenpunkten des Programm-Netzes bilden. Die Übergangsdatenposten
enthalten wenigstens einen Operanden (Operator) und eine Adresse, die auf die Stelle in einem örtlichen
Speicher des Befehls-oder Operator-(Operand)-Knotens weist,
der ausgeführt werden soll. Sowohl monadische wie dyadische Operationsknoten werden behandelt. Die Operatorknoten sind
mit einer Bestimmungsadresse versehen, an welche die Operationsergebnisse übertragen werden sollen. Der Funktionsmodul wird dann datenstromgetrieben und es besteht kein
Bedarf für ein umfangreiches Operationssystem, um einen Fahrplan zur Lösung von Aufgaben oder einer Bestimmung von
509836/0668
Unterbrechungsvorrang zu schaffen.
Um eine gleichlaufende Datenübertragung zwischen Funk—
tionsmoduln zu schaffen, sind die Eingangs- und Ausgangsleitungen mehrerer solcher Funktionsmoduln an eine Vermittlung
angeschlossen, und jede Vermittlung kann in einer rekursiven Hierarchie an eine weitere Vermittlung auf
höherer Stufe angeschlossen sein, so daß jede beliebige
Anzahl von Funktionsmoduln und zugehöriger örtlicher Speicher je nach Anforderung bedient werden können. Einige
Funktionsmoduln sind mit verschiedenen Arten von E/ASchnittstellen
ausgerüstet und die jeweiligen Funktionsmoduln sind so mikroprogrammiert, daß verschiedene Funktionsmoduln
speziellen Operationsaufgaben wie beispielsweise E/A-Steuerung u.dgl. zugewiesen werden können.
Ein Merkmal der Erfindung besteht demzufolge in einem Informationsverarbeitungssystem, das aus einem Netzwerk
gebildet wird, welches mehrere Funktionsmoduln und mehrere örtliche Speichereinheiten aufweist, wobei jede Speichereinheit mit einem anderen Funktionsmodul für die Zusammenarbeit
mit diesem verbunden ist. Jeder Funktionsmodul ist mikroprograrnmierbar und die darin ausgeführten Ausführungen
und Handlungen finden in Abhängigkeit von einem Paar zugeordneter Datenstrukturen statt, von denen eine
ein Operator-(Operand)-Knoten ist, der normalerweise in der lokalen Speichereinheit gespeichert ist und von
denen die andere einen Adressenteil und einen Argumententeil aufweist, die Übergangsdatenposten sind, welche
die Knotenpunkte eines Programmnetzes verbinden. Der Adressen teil zeigt auf diejenige Stelle in einer örtlichen Speichereinheit,
an der sich der erforderliche Operator (Operand) befindet.
Ein weiteres Merkmal der Erfindung ist in einem Netzwerk von Funktionsmoduln und örtlichen Speichereinheiten ver—
£09836/0668
25Q5843
körpert und umfaßt mehrere Vermittlungseinheiten, und
zwar eine für jede Gruppe derartiger Funktionseinheiten, wobei jede Vermittlungseinheit in einer Hierarchie
mit einer nächsten Vermittlungseinheit auf höherer Stufe verbunden ist, um jede erforderliche Anzahl von Funktionseinheiten aufnehmen zu können.
Ein weiteres Merkmal der Erfindung besteht in einem Informationsverarbeitungssystem, bei dem die örtlichen
Speichereinheiten zyklisch sind und bei dem die Informationsübertragung
zwischen den Funktionseinheiten asynchron entweder bitseriell oder zeichenseriell stattfindet.
Die Erfindung wird nachstehend anhand der beigefügten Zeichnungen im einzelnen beschrieben. Es zeigen:
Fig. 1 ein schematisches Diagramm des erfindungsgemäßen,
datenstromgesteuerten Netzwerkes;
■Fig. 2 eine Tabelle mit einem Satz von Zeichen, die
von einem erfindungsgemäßen Modul verwendet werden;
Fig. 3a und 3b Darstellungen der in der Erfindung verwendeten Datenstrukturformate;
Fig. 4 ein Diagramm eines Programmnetzes zur Erläuterung der Arbeitsweise des erfindungsgemäßen
Systems;
Fig. 5 ein schematisches Diagramm eines im Rahmen der Erfindung verwendeten Funktionsmoduls;
Fig. 6 eine schematische Darstellung der Eingangsschlange aus Fig. 5;
Fig. 7 eine schematische Darstellung der in Fig.5 dargestellten Logikeinheit;
Fig. 8 eine schematische Darstellung der in Fig.5 angegebenen Ausgangsschlange;
Fig. 9 eine schematische Darstellung des Speicherschnittstellen-Adapters
aus Fig.5;
509836/0668
Fig. 10 ein schematisches Diagramm einer Steuereinheit aus Fig.5; und
Fig. 11 ein schematisches Diagramm einer Vermittlung gemäß Fig. 1.
Das erfindungsgemäße System macht vollen Gebrauch von der
LSI-Technologie und schafft demzufolge ein flexibles System,
das dann entsprechend den verschiedenen gleichlaufenden Anforderungen dynamisch gegliedert werden kann.
Die Erfindung kommt insbesondore ohne den üblichen zentralen
Verarbei 1-ungir» ahmen, oi.ne Hauptspeicher und ohne
E/A-Steuereinheihen aus. Das .".ystem umfaßt ein Netzwerk
von Funktionsmoduln, von denen jeder seine eigene, lokale Speichereinheit besitzt. Die Funktion des üblichen Hauptspeichers
wird von der Summe sämtlicher verschiedenen lokalen Speichereinheiten erfüllt. Gewisse Funktionsmoduln
können E/A-Funktionen durch spezielle, in ihren lokalen Speichereinheiten gespeicherte Befehle und durch Schnittstellenadapter zugewiesen werden, die mit jenen Funktionseinheiten verbunden sind.
Das System wird datenstromgesteuert genannt, womit ausgedrückt sein soll, daß die einzelnen Befehle eines in
den örtlichen Speichereinheiten verschiedener Funktionsmoduln gespeicherten Programms, welche Knoten in einem
Programmnetz bilden, dann aufgerufen werden, wenn die geeigneten Daten an der speziellen Funktionseinheit angekommen
sind. Somit sind die Befehle eines speziellen Programms über eine bestimmte Anzahl von Funktionsmoduln
verteilt, welche Befehle in Abhängigkeit von der Ankunft der zugehörigen Daten ausgeführt werden, statt daß sie
in einer rein sequentiellen Weise unter der Direktion einer Steuerung eines Programmzählers ausgeführt werden,
wie das in bekannten, zentralisierten Systemen der Fall ist.
Ein die Erfindung verkörpendes System zeigt Fig. 1. Dieses
509836/0 6 6 8
System besteht aus einem Feld von Funktionsmoduln 10, bei denen die interne Datenübertragung synchron abläuft.
Jedoch findet die Datenübertragung zwischen den Moduln asynchron statt. Wie nachstehend im einzelnen beschrieben
werden wird, kann die Datenübertragung als bitseriell angesehen werden; da jedoch Zweibit—Zeichensätze verwendet
werden, ist die Datenübertragung tatsächlich zeichenseriell.
Zu jedem Funktionsmodul 10 gehört eine örtliche Speichereinheit 11, wobei jede örtliche Speichereinheit normalerweise
von zyklischer Natur ist, so daß sie sehr leicht an die bitserielle Datenübertragung angepaßt werden kann.
Die verschiedenen örtlichen Speichereinheiten können hinsichtlich der Speicherkapazität und der Zugriffszeit
unterschiedlich sein, so daß sie sich verschiedenen Programmoder Aufgaben-Anforderungen anpassen. So können die örtlichen
Speichereinheiten aus einer Anzahl verschiedener Speicher wie etwa Platten, Stapel, Plattenpackungen, Verzögerungsleitungen,
ladungsgekoppelter Geräte, Blasenspeicher oder dergleichen bestehen. In gewissen Fällen jedoch
können die örtlichen Speichereinheiten 11 Random- . Access-Speicer sein, die aus Kernen oder ICs bestehen
können.
Zur Anpassung an asynchrone Datenübertragung zwischen
Funktionsmoduln weist die Funktionsmodulschni.ttstelle Ausgangsleitungen 10a und Eingangsleitungen 10b auf, die
den jeweiligen Funktionsmoduln 10 mit einer Vermittlung 12 von erster Stufe verbinden. Die Vermittlung 12 ist ein
Schaltsystem, das im einzelnen weiter unten beschrieben wird· Wenn die in einem speziellen System erforderliche
Anzahl von Funktionsmoduln diejenige Anzahl übersteigt, die von einer speziellen Vermittlung übernommen werden
kann, dann können mehrere Vermittlungen 12 von erster Stufe mit einer Vermittlung 16 von zweiter Stufe über eine Vermittlungsschnittstelle
13 verbunden sein, die jeder Vermittlung von erster Stufe zugeordnet ist. Um solche Daten-
509836/0668
übertragung zu puffern, ist die Vermittlungsschnittstelle 13 mit einer Ausgangsschlange 14 und einer Ein-.gangsschlange
15 ausgerüstet. Es ist in Fig. 1 nicht ausdrücklich dargestellt, daß mehrere derartige Vermittlungen
16 von zweiter Stufe mit einer Vermittlung : von einer nächst höheren Stufe verbunden sein können,
und zwar über eine Vermittlunqsschnittstelle 13; dieses System kann natürlich beliebig fortgesetzt werden. So
kann eine belir.l i ge Anzahl v<--·.. Funktionsmoduln von einer
Hierarchie von vernetzten Vermittlungen aufgenommen werden.
Die Vermittlungen IG der ver.1; niedenen Stufen sind ähnlich
zur Vermittlung 12 von der ersten Stufe. Es versteht sich, daß dann, wenn die Anzahl der erforderlichen Funktionsmoduln von zwei Vermittlungen 12 von erster Stufe
bedient werden können, die beiden Vermittlungen über eine einzige Vermittlungsschnittstelle 13 verbunden sein können,
bei welcher dann die Ausgangsschlange 14 für eine Vermittlung die Eingangsschlange 15 für die andere Vermittlung
wird. Wie in Fig. 1 weiter dargestellt, können gewisse
Funktionsmoduln 10 mit einer gemeinsamen Sammelleitung 10c verbunden sein.
Fig. 1 zeigt weiter die Hierarchie der vernetzten Vermittlungen, die von rekursiver Natur ist. Das bedeutet,
jeder Funktionsmodul 10 kann durch eine Vermittlungsschnittstelle 13 und eine Vermittlung 12 ersetzt werden,
die mit mehreren Funktionsmoduln 10 und umgekehrt verbunden ist. Man bemerke in Fig. 1, daß zwei Vermittlungen
12 mit einer Vermittlung 16 über die Vermittlungsschnittstelle
13 verbunden sind, und daß ferner ein Funktionsmodul 10 mit einer Vermittlung 16 über die Sammelleitungen
1Of und 1Oe verbunden ist.
Zur Anpassung der Datenübertragung und anderer Kommunikation mit bezüglich des Systems außen befindlichen Geräten
ist einer oder sin'd mehrere Funktionsmoduln mit einem E/A-
5 098 36/0 66 8
Adapter 17 ausgerüstet, wobei die Datenübertragung unter Steuerung spezieller, in dem örtlichen Speicher des entsprechenden
Funktionsmoduls gespeicherter Befehle stattfindet. Wenn die Peripheriegeräte, die extern zu dem System
sind, ihre eigenen Steuereinheiten enthalten, dann können natürlich jene Geräte direkt mit einer Vermittlung
von erster Stufe in gleicher Weise wie die Funktionsmoduln, die dem E/A-Adapter 17 zugeordnet sind, verbunden werden.
Vor der Beschreibung der Arbeitsweise des Systems und der Knotenform des Programmnetzwerkes wird jetzt das Befehlsformat
erläutert, das einen definierbaren Feldmechanismus umfaßt. D.h., die Datenfelder und Befehle sind von variabler
Länge. Man erinnere sich, daß die Informationsübertragung so betrachtet werden kann, als wäre sie bitseriell und
daß daher keinerlei Beschränkungen für die Länge der Informationssegmente
bestehen, wie sie typischerweise in Maschinen vorliegen, bei denen Datenwege fester Breite
vorliegen. Die Informationsstrukturen werden von einer Rei-he von Zeichen gebildet, die in Fig. 2 dargestellt
sind. Jedes Zeichen umfaßt zwei Bits, das vier verschiedene Zeichen ermöglicht, di.e gemäß Fig. 2 die Zeichen
(,), 0 und 1 sind. Für die weitere Beschreibung werden die Klammern als solche benannt, wobei natürlich Einigkeit
darüber besteht, daß diese beiden Ausdrücke auch vertauscht werden können.
Das Datenstrukturformat, das von diesem Zeichensatz gebildet
wird, wird jetzt im Zusammenhang mit den Fig. 3 und 4 erläutert. Diese Strukturformate definieren eine
Reihe sogenannter Datenzellen. Gewisse Aufbauregeln müssen bei der Interpretation eines derartigen Formats bedacht
werden. Beispielsweise zeigt ein nebeneinander stehendes Paar offener Klammern den Anfang einer Datenstruktur an
und ein nebeneinander stehendes Paar von geschlossenen Klammern zeigt das' Ende der Struktur an. Die verschiedenen
509836/0668
Felder innerhalb der Datenstruktur werden durch Paare
von öffnenden und schließenden Klammern definiert« Somit können die Struktur wie auch.die verschiedenen
Felder innerhalb der Strukturen von beliebiger Länge sein. Definitionsgemäß können Daten zwischen Paaren
gleichartiger Klammern nicht existieren.
Wie die Fig. 3a und 3b zeigen, stellt der Inhalt eines
Paares von Schließklammern Daten dar, während der Außen-Inhalt oder die einem Klammerausdruck vorangehenden Information
ein Zeichen (tag) ist, das die Bedeutung des Innen-Inhalts jenes Ausdrucks definiert. Ein repräsentativer Satz von Zeichen (tags) kann wie folgt definiert
werden: 0 zeigt an, daß der folgende Innen—Inhalt eine
Funktionsmoduladresse bestimmt; 1 zeigt an, daß der folgende Innen-Inhalt eine örtliche Speicheradresse konstituiert;
2 zeigt an, daß der folgende Innen-Inhalt ein Index-Adressen-Kennzeichner ist; 3 zeigt an, daß der folgende Innen-Inhalt ein Namen-Adressen-Kennzeichner ist;
4 zeigt an, daß der folgende Innen-Inhalt ein Operanden-Modifizierer
ist; 5 zeigt an, daß der folgende Innen-Inhalt ein Operator-Code oder ein Zellentyp-Bezeichner ist; 6
zeigt an, daß der folgende Innen-Inhalt eine Bestimmungsadresse ist; und 7 zeigt an, daß der folgende Innen-Inhalt
ein Operandenfeld ist. Ein mehr ins einzelne gehendes Beispiel von Zeichen (tags), das gemäß der vorliegenden
Erfindung verwendet werden kann, wird weiter unten stehend gegeben. Eine ins einzelne gehende Erläuterung der Fig. 3a
und 3b wird ebenfalls noch weiter unten mitgeteilt*
Ein besonderes Merkmal des Zeichensatzes (character set)
gemäß Fig. 2 ist die Paritäts-Prüfung. Man bemerke, daß für jedes Klammerzeichen in einer Struktur oder in einem
Feld ein entgegengesetztes Klammerzeichen existiert, wobei jedes Zeichen ein einziges Eins-Bit Umfaßt· Weiter haben
die Datenzeichen (data chracters) entweder keine Eins-Bits
509836/0668
oder zwei Eins-Bits. Somit besitzen sämtliche Strukturen
oder Felder innerhalb einer Struktur eine geradzahlige Anzahl von Eins-Bits, wenn der Befehl richtig kodiert
wurde. Das ergibt ein geradzahliges Paritäts-Prüfungsschema.
Es wurde bereits oben erwähnt, daß das erfindungsgemäße System datenstromgetrieben ist. Statt durch einen Programmzähler
aufgerufen zu werden, wird ein Operator aufgerufen und ausgeführt nur dann, wenn die geeigneten
Daten an dem Funktionsmodul angekommen sind. Wenn der
Befehl die Kombination zweier Datenposten vorschreibt, d.h. A und B, wird der Befehl nur dann ausgeführt, wenn
beide Datenposten an dem Funktionsmodul angekommen sind, und zwar unabhängig von der Reihenfolge, in welcher sie
empfangen wurden. Der Befehl wird nicht zur Ausführung aufgerufen, ehe beide Datenposten am Funktionsmodul angekommen
sind. Mit einem derartigen datenstrombetriebenen System kann"das Programm dann als ein Programmnetzwerk
dargestellt werden, in welchem die einzelnen Befehle des Programms Knoten in dem Netz bilden. Ein beispielshaftes
Programmnetz zeigt Fig. 4. Das durch dieses Netz .repräsentierte Programm soll die Werte von X,Y und Z entsprechend
der folgenden algebraischen Gleichung berechnen:
X= ((A +B) (C- D))/(E +F) Y = X + G
Z = X . X
Z = X . X
In dem baumartig verzweigten Programmnetz der Fig. 4 stellt der Knoten N0 die Operation A + B dar, der Knoten Nl stellt
die Operation C-D dar, der Knoten N2 stellt die Operation E + F dar, der Knoten N3 stellt die Multiplikation von A + B
und C-D dar, der Knoten 4N stellt die Division jenes Multiplikationsproduktes durch E + F dar, der Knoten N5
stellt die Multiplikation von X mal X und der Knoten N6 stellt die Addition von X und G dar.
509836/0668
Wenn man sie als FORTRAN-statements nimmt, kompilieren
die obigen Gleichungen in 23 bekannte, sequentielle Befehle in Großrechnersprache. Wenn jetzt ein Funktionsmodul des Systems gemäß der Erfindung benutzt wird, um die
erforderlichen Berechnungen auszuführen, und wenn die
Übergangszeit iib«r pinen Knoten als eine Zeiteinheit betrachtet
wird, würde die Ausfuhrungszeit für die obigen
Gleichungen si-1 en Γ iteinheiten betragen. Dabei wird angenommen,
daß r.imtl.iche für die jeweiligen Operationen
erforderlichen ί of ei le, d.h. ;lle säen Knoten des Proi!ramm,s,
in der örtlichem Spz !chereinh· it des Funktionsmodulsn, speichert
sind und daß sämtliche Eingänge zur Verfügu·· stehen.
Man entnimmt weiter dem baumartig strukturierten Progs ■
>ranetz aus Fig. 4, daß die Knoten NO, Nl, und N2 gleichzt itin
oder sequentiell in beliebiger Ordnung und Reihenfolge ausgeführt werden können, so daß sie also im echten Sinne
simultan sind. In ähnlicher Weise sind die Knoten N5 und N6 simultan. Von zwei Aufgaben sagt man, daß sie simultan
(concurrent) seien, dann und nur dann, wenn sie gleichzeitig oder sequentiell in beliebiger Reihenfolge ausgeführt werden können, ohne daß sich das Endergebnis verändert. ·.
Wenn ein Feld von Funktionsmoduln, etwa wie das in Fig.l
dargestellte, zur Berechnung der obigen Ausdrücke verwendet wird, würden drei Funktionsmoduln erforderlich sein,
wobei die die Knoten NO,Nl und N2 repräsentierenden Befehle in verschiedenen Fuhktionsmoduln angesiedelt sind und die
Knoten N5 und N6 in verschiedenen Moduln residieren. Wie man aus dem Programmnetz gemäß Fig. 4 erkennen kann, wäre
die Ausführungszeit für die Berechnung der obigen algebraischen
Gleichungen dann insgesamt vier Zeiteinheiten.
Die Verwendung von mehr als drei Funktionsmoduln würde keinen Einfluß auf die Geschwindigkeit dieses Algorithmus
haben.
BAD
50983 6/0668
Man entnimmt weiter dem Programmnetz aus Fig. 4, daß verschiedene Operationen an A und an B ausgeführt werden,
wenn Daten zum Knoten NO bis zum Knoten N3, zum Knoten N4 usw. laufen. Es ergibt sich somit ein "pipe-line"-Effekt
in dem an den Daten ausgeführten Operationen, wenn die Daten von Knoten zu Knoten oder von Funktionsmodul zu
Funktionsmodul übertragen werden. Das Ausmaß,bis zu welchem der pipe-line-Effekt erreicht wird, hängt natürlich von
der Übertragungsgeschwindigkeit zwischen den Funktionsmoduln ab. Es dürfte deutlich sein, daß das in Fig. 4 dargestellte
Programmnetz so ausgedehnt werden kann, daß es so viele Knoten enthält, wie notwendig, um ein beliebiges
gegebenes Programm oder Gruppen von Programmen darzustellen. D.h. das System kann so ausgedehnt werden, daß es in einfacher
Weise an das Multiprogrammieren anpaßbar ist, das in diesem System zufälligerweise das Mehrfachverarbeiten
umfaßt.
Wie soweit beschrieben, umfaßt das erfindungsgemäße System ein Feld von Funktionsmoduln, die so programmiert werden können, daß sie an einer Anzahl von verschiedenen
Programmnetzwerken angepaßt werden können. Wie oben erläutert, können die verschiedenen örtlichen Speichereinheiten
von Plattenspeichern zu Plattenpaketen usw.reichen. Somit kann das Betriebsverhalten jedes Funktionsmoduls
sich so von dem anderer unterscheiden, wie das" von dem darzustellenden Programm gefordert wird. D.h. es kann
eine Einsparung an Speicherkapazität gegenüber der·Geschwindigkeit
gemacht werden, wie das für viele Anwendungsfälle erforderlich sein kann.
EINZELBESCHREIBUNG DER ERFINDUNG
Nachdem das die Erfindung verkörpende System in seinen Grund.zügen beschrieben wurde, wird jetzt eine genauere
Beschreibung des Funktionsmoduls 10 aus Fig. 1 geboten.
509836/0 668
Diese Funktionsmoduln sind die Bausteine, aus denen das
System gemäß Fig. 1 gebildet wurde. Wie Fig. 5 zeigt,
besteht der Funktionsmodul aus einer Anzahl von funktionalen Einheiten, die zusammenarbeiten und die oben erwähnten
Funktionen ausführen.. Diese Einheiten weisen eine Eingangsschlange 20, eine Lr.qLkeinhei. t 3U, eine Ausgangsschlange
40, einen örtlichen SoeicherScIin i ttstellen-Adapter 50 unrt
eine Steuereinheit 60 auf.
Die Eingangsnchl angr empfängt Daten aus beispie] .sweise
der Vermittlung 12 (r'ig.l) über Ihren entsprechenden Eingangsbus und speichert die Daten, während sie wartet, bis
die Steuereinheit 60 verfügbar wird. - - "_
Wenn eine Datenstruktur den oberen Teil einer Eingangsschlange 20 erreicht, verarbeitet die Steuereinheit 60
die Datenstruktur in Verbindung mit einem Knoten oder einem Befehl in der zugehörigen örtlichen Speichereinheit.
11 (Fig.1). 'Die Steuereinheit 60 kann die Logikeinheit 30-benutzen, um die notwendige Operation auszuführen.
Das Ergebnis der Operation kann dann zur Ausgangsschlange '
40 zusammen mit einer Bestimmungsadresse gesandt werden. Wenn dieses Ergebnis das obere Ende der Ausgangsschlange
40 erreicht, wird es zur gewünschten Bestimmung gesandt, und zwar über die Funktionsmodul-Schnittstelle, die die
AusgangsSammelleitung 10a sowie die Vermittlung 12 von
erster Stufe (Fig.l) umfaßt.
Die Eingangsschlange 20 ist im einzelnen in Fig.6 gezeigt
und weist einen Eingangsschlangenspeicher 22 sowie eine Logik zur Steuerung des Datenübertragung zwischen dem
Funktionsmodul-Schnittstellen-Bus 10b und dem Eingangsschlangenspeicher 22 auf. Die Schnittstellenlogik umfaßt
eine Synchronisationslogik 21, die die ankommenden Daten mit einem Eingangsschlangenspeichertakt synchronisiert·
Eine Einheit 23 zu'r Feststellung von Klammern und ein
ÖAD ORiGtNAt 509836/0668
Klammernzähler 24 führen die Fehlerfeststellung für die
Schnittstelle aus* Man erinnere sich aus der allgemeinen Beschreibung der Datenstrukturformate, die oben gegeben
wurde, daß für jede öffnende Klammer in jener Struktur auch eine schließende Klammer vorhanden sein sollte. Der
Klammernzähler 24 ist ein binärer Auf/Ab-Zähler und wird
für jede öffnende Klammer um einen Schritt weiter gestellt, die von der Klammernfeststelleinheit 23 festgestellt
wurde, und wird um einen Schritt zurückgestellt durch jede schließende Klammer, wenn sie festgestellt
wurde. Somit sollte der Inhalt des Klammernzählers 24 vor und nach dem Empfang eines vollständigen Befehlsformats
Null sein. Wenn nicht, wird von der Synchronisationslogik 21 ein Fehler bemerkt, der seinerseits einen erneuten
Versuch der Übertragung einkommender Daten auslöst.
Die Synchronisationslogik 21 dient zur Übertragung der ankommenden Daten in den Eingangsschlangenspeicher 22
und von' dort zur Steuereinheit 60 gemäß Fig. 5. Der Eingangsschlangenspeicher
22 kann bei Verlangen von der Funktionsmodulschnittstelle 10b durch Schreiben angesteuert
werden und kann von der Funktionsmodul-Steuereinheit 60 (Fig.5) bei Anforderung durch Lesen angesteuert werden.
Bei Empfang einer Schreibaufforderung aktiviert die Speicherzyklus-Steuerung 25 Gatter 29 zur Übertragung einer
Adresse von dem Schreibzeiger 27 zum Eingangsschlangenspeicher 22. Wenneine Leseaufforderung empfangen wurde,
werden die Gatter 29 aktiviert, um eine Adresse vom Lesezeiger 26 zu demEingangsschlangenspeicher 22 zu übertragen.
Die Vergleichseinheit 28 ist vorgesehen, um die Werte des
Schreibzeigers 27 und Lesezeigers 26 zu vergleichen. Wenn die Werte nicht gleich sind, signalisiert eine Vergleichseinheit 28 der Steuereinheit 60, daß Daten in dem Eingangsschlangenspeicher
vorhanden' sind. Wenn die jeweiligen Werte gleich sind,, signalisiert die Vergleichseinheit 28
50 9836/06 68
der Steuereinheit 60,. daß entweder der Eingangsschlangenspeicher 22 voll oder leer ist, je nachdem, ob die letzte
Speicheroperation schreiben oder lesen umfaßte.
Die Logikeinheit 30 nach Fig. 5 ist in weiteren Einzelheiten in Fig. 7 dargestellt. Die Addier- und Logikeinheit
32 führt alle Logikoperationen aus, die von dem Funktionsmodul ausgeführt werden sollen und stellt in
einer bevorzugten Auiiführungsform der Erfindung einen
zwexdimensionalen Tabellenspeicher dar. Der Akkumulator 39 soll bei den arithmetischen Operationen unterstützend
helfen, die, wie man sich erinnert, seriell ausgeführt werden. Die Ausführung der verschiedenen Operationen
wird durch eine MikroSteuerung 31 ausgelöst, die die Operationscodes in dem Operationscode-Register 33 entschlüsselt.
Ein C-Feld-Register 35 liefert die modifizierende Information,ob das Resultat der logischen Operationen
zur Ausgangsschlange übertragen werden soll oder zurück zur lokalen Speichereinheit 11 gemäß Fig. 1 übertragen
werden soll. Die MikroSteuerung 31 weist einen Zähler 31a auf, der jede Vergrößerung oder Verkleinerung
ausführt, die für die Steuerinformation erforderlich sein sollte. Die Operationscodes werden dem Operationscode-Register
33 von der lokalen Speichereinheit 11 (Fig.1)
über Gatter 36 und 37 zugeführt. Die Steuerinformation
wird im C-Feld-Register 35 entweder von der örtlichen Speichereinheit oder von der Eingangsschlange 60 (Fig.5)
über Gatter 36 und 38 zugeführt. Die MikroSteuerung 31 weist weiter ein zweites Register 34 auf, das einen
Zwischenspeicher bildet, der eine Kapazität von 1024 Zei*:
chen besitzt.
Wie man nochmal aus Fig. 5 entnimmt, ist die Ausgangs— schlange
40 im wesentlichen ein Puffer für die Botschaften, die aus einem speziellen Funktionsmodul zu einem anderen
509836/0668
Funktionsmodul gesandt werden. Weiter kann die Ausgangsschlange 40 an die Eingangsschlange 20 vermöge der
Funktionsmodul-Schnittstelle angeschlossen werden, die eine Ausgangssammelleitung 10a, eine Eingangssammelleitung
10b und die Vermittlung 12 umfaßt. Die Ausgangsschlange ist im einzelnen in Fig. 8 dargestellt. Die
Ausgangsschlange besteht aus zwei unabhängigen Schlangen, und zwar eine für die Operanden und eine für die Bestimmungsadressen. Die erstere zeigt Fig. 8 in Form eines Operandenspeichers
42, während die letztere in Fig. 8 als Bestimmungsspeicher 41 zu erkennen ist. Das Lesezeigerregister
45 enthält die Adresse, an welcher der Bestimmungsspeicher 41 zum Ablesen von Operationen angesteuert werden soll,
während das Schreibzeigerregister 46 die Adresse enthält, bei welcher der Bestimmungsspeicher 41für eine Schreiboperation
angesteuert werden soll. In ähnlicher Weise enthalten das Lesezeigerregister 47 und das Schreibzeigerregister
48 die Adressen, bei welchen der Operandenspeicher 42 zum Lesen und Schreiben von Operationen angesteuert
werden soll. Die Eingangssteuereinheit 43 nimmt die Operanden und Bestimmungsadressen aus der Logikeinheit 30
zur Übertragung entweder zum Bestimmungsspeicher 41 oder zum Operandenspeicher 42 auf.
Die Ausgangssteuereinheit 44 empfängt Operanden und Bestimmungsadressen
aus den jeweiligen Speichern und schafft die Datenstruktur, die über die Ausgangssammelleitung 10a
der Funktionsmodulschnittstelle übertragen werden soll. Die Datenübertragung aus der Ausgangsschlange beginnt durch
Einleitung der Übertragung der Bestimmungsadresse. Die
Ausgangsschlan_ge bestimmt dann die geeignete Position in j.ener Datenstruktur, an welcher der Operand eingesetzt
werden soll.
Der Speicherschnittstellenadapter 50 (Fig.5) ist im einzelnen
in Fig. 9 dargestellt. Dieser Adapter empfängt
509836/0668
Adressen und Daten zur Übertragung zur lokalen Speichereinheit. Der in Fig. 9 speziell dargestellte Adapter
liefert parallele Zugriffsmöglichkeit zu einem Randomaccess-Speicher.
Dazu ist das Pufferregister 51 ein 16— Zeichen-Register (16-tag-register), das ein Wort aus solchen
Zeichen (character) parallel von der Speicherschnittstelle 54 zur Übertragung au einem Multiplexer 53 empfangen kann,
wo eine Umwandlung in eine serielle Kette solcher Zeichen (character) stat hfin let. Diese Umwandlung wird durch Auslesen
der verschi edi-.-:.-m Zei chenstellen in dem' Multiplexer
53 bewirkt, und zwar entsprechend den vier niedrigststelligen
Zeichen der örtlichen Speicheradresse im Adressen—
register 56. Für die Datenübertragungen zum Speicher werden die Zeichen seriell von dem D-Multiplexer 52 empfangen, in welchem sie in 16 Zeichenwörter zusammengestellt
werden, und zwar bei Zeichenstellen, die von den niedrigststelligen
vier Zeichen im Adressenregister 56 bestimmt sind. Die.zusammengestellten Wörter von dem D-Multiplexer 52
zum Pufferregister 51 und von dort zur·Speieherschnittstelle
54 übertragen. Die verbleibenden Teile des Adressenregisters 56 werden ebenfalls zur Speicherschnittstelle
54 übertragen und ergeben die Speicheradresse zum Zugriff auf die örtliche Speichereinheit. Die Adapter-Steuereinheit 55 dient zur Einleitung einer Adressenübertragung
vom Adressenregister 56 zur Speicherschnittstelle 54 und
ferner zum Weiterstellen bzw. schrittweisen Vergrößern oder Verkleinern der Adressensteuerung.
Man bemerke, daß bei Verwendung anderer Speicherarten
als periodische oder zyklischer Speicher eine andere Speicherschnittstelle und ein anderer örtlicher Speicheradapter
verwendet werden würden. Jedoch würde die Schnitt-, stelle zwischen dem Adapter und dem Funktionsmodul die
gleiche sein und würde gemäß Fig. 9 enthalten.: eine
zeichenserielle Datenleitung vom Funktionsmodul, eine zeichenserielle Datenleitung zum Funktionsmodul, eine
5 09 83 6/0668 bad original
bitserielle Adressenleitung vom Funktionsmodul, eine bitserielle Adressenleitung zum Funktionsmodul, eine
Lese/Schreibe-Steuerleitung, eine Steuerleitung zum schrittweisen Vergrößern oder Verkleinern der Adresse
sowie eine Steuerleitung zur Übertragung der Adresse.
Wie man nochmal der Fig. 5 entnimmt, dient die Steuereinheit 60 zur Verarbeitung von Markierungen (tags) und
zum Absenden von Daten gemäß Definition durch die Markierungen, zur Logikeinheit 30, wenn jene Daten entweder
ein Operator oder ein Operand sind, oder zur Ausgangsschlange 40, wenn jene Daten eine Bestimmungsadresse sind, und zur örtlichen Speichereinheit 11
(Fig.l), wenn jene Daten ein Operand oder eine Adresse sind, die in dem örtlichen Speicher gespeichert werden
sollen. Sämtliche Datei aus der Eingangsschlange 20 durchlaufen zuerst die Steuereinheit 60. Der Dateneingang wird
entweder von der Eingangsschlange 20 oder der örtlichen Speichereinheit 11 (Fig.l) als jeweilige Quelle aufgenommen.
Die Steuereinheit 60 ist im einzelnen in Fig. 10 dargestellt.
Wie man sieht, werden Daten von der .Eingangsschlange und von der örtlichen Speichereinheit von dem
Klammernzähler 71 für die Eingangsschlange bzw. von dem Klammernzähler 70 für den örtlichen Speicher entnommen.
Die Klammernzählung bestimmt, ob die Daten den inneren oder den äußeren Inhalt der Datenstruktur darstellen.
Wenn die Daten eine innere Struktur sind, stellen sie einen Operator dar oder auch einen Operanden oder auch
eine andere Information undwerden zur Datenpfad-Auswahl-Einheit
72 übertragen entweder über den Innen-Inhalt-Detektor
68 oder den Außen-Inhalt-Detektor 69, je nachdem, ob
die Daten von dem örtlichen Speicher oder der Eingangsschlange empfangen wurde. Wenn die Daten ein äußerer Inhalt
sind, stellen sie eine Markierung dar und werden zu
509836/0868
dem Markierungsregister 67 für den örtlichen Speicher
oder dem Markierungsregister 66 für die Eingangsschlange übertragen,wiederum je nachdem ob sie aus der örtlichen
Speichereinheit oder von der Eingangsschlange kommen. Der Inhalt des Markierungsregisters 66 für die Eingangsschlange und des Markierungsregisters 67 für den örtlichen
Speicher werden durch das Auswahlgatter 65 ausgewählt und zwar zur Übertragung auf einen Markierungs,-rfolge-Verifizierer
6 3, oder sde können in einem Markierungs-Bewahr-Register
b4 aufbewahrt werden, um späterhin annpsprochen
zu werden. Ein Mikrosteuerungs-Schrittzähler C-1
ist ein Tabellen-Such-Lesespeicher (ROM = read only mc·. ι:γ)
und liefert die verschiedenen Sequenzen an Steuersignal n,
die zum Einleiten der jeweiligen Operationen in den andren
Einheiten des Funktionsmoduls unter Steuerung des Markierungssequenz-Verifizierers
6 3 erforderlich sind und liefert andere modifizierende Daten, wie sie von dies. ·.■
anderen Einheiten empfangen werden, wie auch Daten vom Zähler 73 und vom Zustand-Flip-Flop 62, die den speziellen
Maschinenzustand anzeigen,in welcher der Funktionsmodul sich befindet.Die Zustands-Flip-Flops 62 werden von der
MikroSteuerung" entsprechend der jeweiligen Sequenz gesetzt, die von dem Markierungsoperator aufgerufen wurde.
Die jeweiligen Vermittlungen 12 und 16 (Fig.1) sind im
einzelnen in Fig. 11 wiedergegeben. Wie oben erwähnt, enthält jede Datenstruktur, die über eine Schnittstellen-Sammelleitung
übertragen wurde, eine Funktionsmodul-Bezeichnung als das erste Feld oder ersten Datenposten in
jener Datenstruktur. Diese Funktionsmodul-Bestimmung ist eine Adresse, durch welche eine Datenstruktur dem geeigneten
Funktionsmodul durch die Vermittlung zugeführt wird. In Fig. 11 werden Datenstrukturen über die jeweilige Sammelleitung
10a durch einen entsprechenden Adressen-Dekoder 80 empfangen. Jener Adressen-Dekoder entschlüsselt die
509836/0668
Funktionsmodulbezeichnung und die Zustände 1 auf den Übertragungsgattern 81, um die geeignete Sammelleitung
1OB zur Übertragung zum bezeichneten Funktionsmodul auszuwählen und zu ermöglichen.
Die jeweiligen Adress-Kodierer 80 sind durch eine Prioritätsbestimmungs-
und Sperrschaltung (in Fig.11 nicht dargestellt) verbunden, so daß zwei gleichzeitige Daten-Strukturübertragungen
nicht c1» η gleichen Funktionsmodul
angeben können. Die jeweiligen Sammelleitungen 10a sind
mit Wiederholungs-Signalleitungen ausgerüstet, um dem übertragenden Funktionsmodul anzuzeigen, daß die Datenübertragung erneut eingeleitet werden muß.
In derjenigen Situation, wenn zwei oder mehrere Funktioi..
moduln an die gleichen Schnittstellen—Sammelleitungen
angeschlossen sind, wird jeder Funktionsmodul mit seinem eigenen Bezeichnungs-Dekoder versehen sein und die jeweiligen
Bezeichnungs-Dekoder 80 in Fig. 11 würden die gleiche Ausgangssammelleitung 10b in Abhängigkeit von
zwei oder mehreren verschiedenen Funktionsmodulbezeichnungen auswählen. Wenn ein System zwei oder mehrere Vermittlungen
12 von erster Stufe verwendet, die dann an eine Vermittlung 16, zweite Stufe, angeschlossen sind, wird
das Funktionsmodul-Bezeichnungsfeld in seiner Länge gedehnt sein und die jeweiligen Dekoder 80 der Vermittlung
16 können so ausgelegt werden, daß sie nur einen Teil des Bezeichnungsfeldes dekodieren, so daß eine geeignete
Vermittlung 12 von erster Stufe ausgewählt werden kann. Die jeweiligen Dekoder 80 der Vermittlung 12 würden nur
einen zweiten Teil des Bezeichnungsfeldes dekodieren, um den geeigneten Funktionsmodul aufzufinden. Wenn drei
Stufen an Vermittlungen verwendet werden, würde das Bezeichnungsfeld
erneut vergrößert werden usw.
5098 3 6/0668
BETRIEBSVERHALTEN DES FUNKTIONSMODULS
Die Befehlsinterpretation beginnt zunächst durch Analysieren
des Datenpostens der von der Eingangsschlange dargeboten wird. Die Eingangsschlangenanalyse setzt sich
fort, bis ein unr.uf riedengestellter Zustand festgestellt wird, woraufhin eile Analyse de·'. Datenpostens des örtlichen
Speichers beginnt. Die Befehlsinterpretation setzt sich
fort, bis das vollständige Paar an Zellen interpretiert
wurde (Klammereshlung 0) oder ein bedeutungsloser Zustand
festgestellt wurde. Der normale Bcfehlsinterpretationazyklus
geht zuende, wenn die Kl arüuerzählung gleich 0 .i-sf
und aktiviert dann die Interpretation des nächsten Eingangsschlangendatenposten
oder der nächsten Zelle. Die Befehlsinterpretationszyklen-Beendigung wegen der Feststellung eines bedeutungslosen Zustandes führt zu einer
nie:.;chinener zeug ten Unterbrechung. Die tatsächliche Maschinenausführung
wird unter Steuerung der MikromaschiTien-Befehle
ausgeführt, die aus dem Lesespeicher des Mikro-steuerungsschrittmachers
61 (vgl.Fig.10) der Steuereinheit abgeleitet wurden, durch Interpretation durch die
Steuereinheit sowohl des Innen-Inhalts wie auch des Außeninhalts
der Datenzeilpaare, die durch die Eingangsschlange und ein örtliches Speicherfeld angeboten wurden.
Der Funktionsmodul gemäß Fig. 5 führt von einem Paar zugeordneter Datenstrukturen aus aus, und zwar einer
in der Eingangsschlange 20 und einer in der örtlichen Speichereinheit 11 (Fig.l). Jede Struktur in der Eingangsschlange 20 besteht aus einem Adressenteil und einem Argument
enteil . Der Adressenteil zeigt auf die örtliche Speicherstelle und ermöglicht die Zuordnung der zwei Datenstrukturen.
Die Steuerung beginnt mit dem ersten Teil (construct) der Eingangsschlangendatenstruktur und setzt
sich fort, bis ein Teil (construct) angetroffen wird, der kein gültiger Nachfolger des vorhergehenden Teils ist
gemäß Definition durch die Abfolge der gültigen Sequenz.
509836/0668
Der letzte Teil (construct) wird dann aufbewahrt und die Steuerung wird an den nächsten Teil in der örtlichen
Speichereinheit 11 übergeben, die als möglicher gültiger Nachfolger geprüft wird. Wenn sie es nicht ist, dann
• tritt ein Fehler auf. Wenn der nächste Teil (construct) ein gültiger Nachfolger ist, bleibt die Steuerung innerhalb
der örtlichen Speichereinheit und setzt sich fort, bis ein nicht-gültiger Nachfolger angetroffen wird,
zu welchem Zeitpunkt die Steuerung dann zurück zur Eingangsschlange 20 gegeben wird.
Es kann eintreten, daß die Eingangsschlange 20 und der örtliche Speicher 11 gleichzeitig abgetastet werden.
Dies tritt während einer dyadischen Operation auf, wenn beide Operanden in den jeweiligen Einheiten vorhanden
sind. Bei Abschluß des gleichzeitigen Abtastens wird die Steuerung an die örtliche Speichereinheit übertragen.
Dieses Verfahren setzt sich fort, bis das Ende der Eingangsschlangendatenstruktur
festgestellt wird, in welchem Fall dann die Operation abgeschlossen ist.
Da die Prozedur des Abtastens der jeweiligen Strukturen gleichzeitig stattfindet, ist das Prüfen der Gültigkeit
der Datenstruktur durch sich selbst bedeutungslos. Daher sollten die jeweiligen Strukturen als bedeutungsvolle
Paare betrachtet werden. Gültige Strukturen sind Paare von Datenstrukturen, eine Struktur in der Eingangsschlange
und eine in dem örtlichen Speicher, der nach Abtasten in der oben beschriebenen Weise zu einer gültigen Sequenz
von Teilen (constructs) führt. Eine gültige Folge von Teilen (constructs) wird als gültige Sequenz von Markierungen
definiert. Beim Interpretieren der gültigen Sequenz flüsse ist es nicht nowendigerweise die Sequenz des tatsächlichen
Antreffens von Markierungen, die wichtig ist, sondern vielmehr die Sequenz, in welcher sie ausgeführt
werden sollen. Wegen der Abtastregeln und der Natur der
509836/0668
Strukturen, müssen die in die Eingangsschlange eingegebenen Datenstrukturen die Form haben (()0( )!■(.) ).
In jener Struktur zeigen die Klammern vor dem Numeral
.0 den Anfang einer Datenstruktur an, der Inhalt der
Klammern nach dem Numeral 0 repräsentiert eine Funktions—" moduladresse und der inhalt der Klammern nach dem Numeral 1 repräsentiert di.e Adresse in der örtlichen Speichereinheit der zugehörigen Hatenstruktur, die erforderlich ist, um die Co-Routine vollständig zu machen. Die restlichen
Teile (constructs) in jener Datenstruktur können eine
beliebige Sequenz von Teilen (constructs) sein, die eine ausgeglichene Klammernzählung besitzen und die zu einer
gültigen Markierungssequenz führen. In ähnlicher Weise
müssen die in der örtlichen Speichereinheit enthaltenen
Datenstrukturen die Form haben (() ). Während der Datenübertragung von der Eingangsschlange zu anderen Einheiten des Funktionsmoduls, unter Einschluß des örtlichen Speichers, werden die Felder einzeln übertragen, wobei die offene
Klammerstruktur weggenommen ist. Die Klammerstruktur wird dann zu der Datenstruktur wieder hinzugefügt, wenn sie in dem örtlichen Speicher gebildet wird.
.0 den Anfang einer Datenstruktur an, der Inhalt der
Klammern nach dem Numeral 0 repräsentiert eine Funktions—" moduladresse und der inhalt der Klammern nach dem Numeral 1 repräsentiert di.e Adresse in der örtlichen Speichereinheit der zugehörigen Hatenstruktur, die erforderlich ist, um die Co-Routine vollständig zu machen. Die restlichen
Teile (constructs) in jener Datenstruktur können eine
beliebige Sequenz von Teilen (constructs) sein, die eine ausgeglichene Klammernzählung besitzen und die zu einer
gültigen Markierungssequenz führen. In ähnlicher Weise
müssen die in der örtlichen Speichereinheit enthaltenen
Datenstrukturen die Form haben (() ). Während der Datenübertragung von der Eingangsschlange zu anderen Einheiten des Funktionsmoduls, unter Einschluß des örtlichen Speichers, werden die Felder einzeln übertragen, wobei die offene
Klammerstruktur weggenommen ist. Die Klammerstruktur wird dann zu der Datenstruktur wieder hinzugefügt, wenn sie in dem örtlichen Speicher gebildet wird.
Die Datenstrukturen können in beiden Richtungen bearbeitet
werden, von links nach rechts oder von rechts nach links. Die Verarbeitungsrichtung ist bestimmt durch die Anfangsklammer, die in der örtlichen Speichereinheit adressiert
ist. Eine Abtastung von rechts nach links wird als Spiegelbild einer Abtastung von links nach rechts interpretiert.
Während einer links nach rechts Abtastung werden die Datenzeichen beim Abtasten direkt interpretiert und linke sowie
rechte Klammern werden jeweils als linke und rechte Klammern gedeutet. Die Datenstrukturen werden stets mit Beginn
bei einer Klammer adressiert. Die Richtung der Abtastung kann nur durch einen expliziten Befehl geändert werden. ·
Wie soweit beschrieben, werden die Operanden- und Steuerdatensätze, die sich auf einen integralen Maschinenbefehls-
509836/0668
zyklus beziehen, durch die Datenposten geliefert, die
sowohl durch die Eingangsschlange 20 wie auch durch die örtliche Speichereinheit 11 gegeben sind. Der Prozessormodul
wird zu einem Befehlsinterpretationszyklus bei Feststellung des Vorliegens eines Datenpostens am
oberen Ende der Eingangsschlange simuliert. Der durch die Eingangsschlange dargestellte Datenposten geht eine
Adresse voraus, die ihn mit seinem verwandten Datenposten in der örtlichen Speichereinheit des Funktionsmoduls verbindet.
Fig. 3a zeigt ein Beispiel einer Datenstruktur, die nc·- ·
malerweise in der örtlichen Speichereinheit gespeicher' wird, während Fig. 3b eine Datenstruktur darstellt, dit·
normalerweise als Eingangsinformation empfangen wird. Man bemerke aus den Fig. 3a und 3b, daß jede Datenstrii' · ;r
bei einer Abtastung von links nach rechts mit zwei Anf klammern beginnt und von zwei Zu-Klammern gefolgt wir·:.
Das erste Feld, dem das Numeral 5 vorhergeht, ist ein Bedingungsfeld, das als ein N-bahn-Abzweig zu einer der
N-Bestimmungsadressenlisten verwendet wird. Jede Adressenliste kann mehrfache Bestimmungsadressen enthalten, wie
Fig.3a zeigt. Das zweite Feld in der Datenstruktur von Fig.3a
folgt dem Zeichen C, das anzeigt, daß der Inneninhalt der Zelle eine Steuerinformation darstellt. Das dritte Feld
in Fig.3a ist ein Operand, angezeigt durch den Außen-Inhalt
oder die Markierung 7 (tag 7), wie weiter oben allgemein beschrieben ist. Die restlichen Felder sind Bestimmungsadressen.
In Fig. 3b ist das erste Feld nach dem Anfang der Datenstruktur eine Funktionsmodul-Bezeichnung, was aus der vorangehenden
Markierung (tag) 0 oder dem vorangehenden Außen-Inhalt hervorgeht. Das zweite Feld stellt die örtliche
Speichereinheit-Adresse einer zugeordneten Datenstruktur dar, wie Fig. 3a zeigt. In Fig.3b ist diese örtliche Spei-
509836/0668 BAD ORIGINAL
chereinheit-Adresse durch den vorhergehenden Außen-Inhalt
oder die Markierung 1 bezeichnet. Das nächste Feld in der Datenstruktur aus Fig.3b ist ein Adressen-Qualifizierer,
was durch den Außeninhalt oder die Markierung AQ bezeichnet ist. Das letzte Feld in der Datenstruktur der Fig.3b ist
ein Operand.
FELDMARKIFJRUNGEN UND FORM/TE
Die verschiedenen Arten oder Markierungen oder Außen-Inhalte
werden nachstehend beschrieben. Difrse Markierung -ti
umfassen Adressen-Markierungen, Stufen-Markierungen, Adressen-Modifizierer-Markierungen, Operator- und Steuer-Markierungen,
Operanden-Markierungen, Bestimmungsadiöl. -n-Markierungen,
Mikroketten-Operator-Markierungen sowie ' Status—Information.
Die Adressen-Markierungen umfassen die Funktionsmodul Adresse, die örtliche Speicheradresse und die Adressen-Qualifizierer.
Andere Adressen-Markierungen werden jet: '-beschrieben.
Die dyadische Operations-Markierung (Dyadic ops tag) zeigt an, daß der Innen-Inhalt des folgenden
Klammerausdruckes angibt, daß der folgende Operand ein linker oder rechter Operand ist. Die Bedingungsfeld—
Markierung zeigt an, daß einer der folgenden Innen-Inhalte
angibt, ob der begleitende Operand als ein Bool·scher Ausdruck
oder als Operand zu behandeln ist.. Die Kompositions-Feldmarkierung
zeigt an, daß der folgende Innen-Inhalt den Index des Anwesenheitsbits im zugehörigen Operandenfeld
angibt, in welches der Operand eingeschrieben werden soll. Die Zerlegungsfeld-Markierung zeigt an, daß der folgende
Innen-Inhalt die Anzahl von Bits 'angibt, die aus dem Operandenfeld der Eingangsschlange ausgewählt werden soll.
Diese Bits werden als Indexzeiger zur Auswahl einer Mikrokette verwendet. Die Arretierungsfeld-Markierung zeigt an,
daß der folgende I-nnen-Inhalt angibt, ob das von dem Arre-
- SAD 509836/0668
tierungsfeld geschützte Netzwerk arretiert oder freigegeben
werden soll.
Stufen-Markierungen werden durch das alphanumerische
Zeichen L angezeigt und zeigen an, daß der folgende Innen-Inhalt eines Klammerausdruckes eine Stufeninformation bildet,
Diese Information wird vom Funktionsmodul ignoriert.
Die Adressen-Modifizierer-Markierungen sind die Knoten-Index-Markierung,
die Namen-Markierung und die Adressen-Modifizierer-Markierung.
Die Knoten-Index-Markierung wird durch das Numeral 2 (durch die Ziffer 2) angezeigt und
gibt an, daß die örtliche Speicheradresse auf den angezeigten Knoten der laufenden Stufe weitergestellt werden
soll. Nach Abschluß erniedrigt sich die Interpretationsstufe um einen St'ufenwert. Die Namenmarkierung wird durch
das Numeral 3 (durch die Ziffer 3) angezeigt und gibt an, daß die örtliche Speicheradresse dadurch auf den ange-.
zeigten Knoten weitergestellt werden soll, daß die Namen-Markierung mit dem Außen-Inhalt der Adressen-Struktur der
laufenden Stufe verglichen wird. Nach Abschluß erniedrigt sich die Interpretationsstufe um eine Stufe. Die Adressen-Modifizierer-Markierung
wird durch die Zeichen AM repräsentiert und zeigt an, daß der folgende Innen-Inhalt einen
Operatorcode bildet, der als Adressen—Modifizierer für die örtliche Speicheradresse verwendet werden soll.
Die Operator-und Steuer-Markierungen werden jetzt beschrieben. Das Numeral 4 (die Ziffer 4) zeigt an, daß der Innen-Inhalt
des folgenden Klammerausdruckes einen Operanden-Modifizierer-Operatorcode bildet. Das Numeral 5 zeigt an,
daß der- folgende Innen-Inhalt einen dyadischen Operatorcode,
einen monadischen Operatorcode oder eine Zeil-Type bildet. Das Zeichen A zeigt an, daß der folgende Innen-Inhalt
einen Akkumulator-Dyaden-Operatorcode darstellt. Das Zeichen I zeig't an, daß der folgende Innen-Inhalt einen
509836/0668
indizierten dyadischen Operatorcode bildet. Das Zeichen Z zeigt an, daß der folgende Innen-Inhalt einen dyadischen
Operatorcode "zap" bildet. Die Zeichen ZA zeigen an, daß der folgende Innen-Inhalt einen akkumulierten dyadischen
Operatorcode "zap" bildet. Die Zeichen ZI zeigen an, daß der folgende Innen-Inhalt einen Index-Operatorcode "zap"
bildet. Die Zeichen MS zeigen an, daß der folgende Innen-Inhalt einen Mikrokettencode bilden, der bei der Zerlegungsfunktion verwendet wird. Das Zeichen C zeigt an,
daß die folgenden Innen-Inhalte Steuerfunktion darstellen,
und zwar für einen speziellen Operator oder eine spezielle Zelle.
Die Mikrokettenoperator-Markierungen werden jetzt beschrieben.
Das Zeichen " zeigt an, daß der Innen-Inhalt des folgenden Ausdruckes einen Literal (Buchstaben) darstellt,
der zur Ausgangsschlange zu übertragen ist. Das Zeichen E zeigt an, daß der folgende Inneninhalt einen Operanden
ohne Vorzeichen bildet, der den Sprungwert für das örtliche Speicheradressen-Register definiert. Der Sprung ist
der gleiche wie die laufende Richtung. (Der Sprung findet in der Richtung statt, die die gerade gültige ist). Das
Zeichen F zeigt an, daß der folgende Innen-Inhalt einen Operanden ohne Vorzeichen bildet, der einen Sprungwert
für das Eingangsschlangen-Adressenregister definiert. Die Richtung des .Sprunges ist von links nach rechts.
Das Zeichen B zeigt an, daß der folgende Innen-Inhalt einen Operanden bildet, der die Anzahl der von dem Operanden
in der Eingangsschlange zur Ausgangsschlange zu übertragenden Bits angibt. Das Zeichen M zeigt an, daß der
folgende Innen-Inhalt einen Operatorcode bildet, der in
einer Mikrokel.te verwendet werden soll.
Man sieht, daß die folgenden Felder als Operanden betrachtet werden: Die Funktionsmodul-Bezeichnung, die örtliche
Speichereinheiten-Adresse, der Knoten-Index, der Adressen-
50983 6/0668
Modifizierer, die Mikroketten-Operatoren, die oben so definiert sind, als seien sie durch die Zeichen ",E,F und
B bezeichnet, wie auch das Operandenfeld selbst. Die Operanden-Markierung
7 dient auch für Strukturen, die durch die Lese- und Schreiboperatoren behandelt werden.
Die mit Vorzeichen versehenen Operanden haben das Format (S AOAl...An), wobei AO das niedrigstwertige Bit und S
das Vorzeichenbit sind und S=O Positive bedeutet. Nicht mit Vorzeichen versehene Operanden haben das Format
(AOAl...An). Die Länge des Feldes ist variable bis zu einem angegebenen Betrag. Da der Innen-Inhalt eines Feldes
Operanden darstellt, sind Klammern innerhalb des Operandenfeldes nicht erlaubt. Die folgenden Felder besitzen Formate,
die demjenigen der nicht mit Vorzeichen versehenen Operanden gleich sind: Namen-Markierung-Adressen-Modifizierer,
Operanden-Modifizierer-Operatorcode, dyadischer/monadischer Operatorcode oder Zeil-Typ, der Akkumulator-Dyaden-Operatorcode,
der Index-Dyaden-Operatorcode, der "zap"-Dyaden-Operatorcode,
der "zap" akkumulierte dyadische Operatorcode, der "zap"-Index-Operatorcode, die Bestimmungsadressen,
der Adressen-Modifizierer und der Operatorcode, der in einer Mikrokette verwendet werden soll.
Das Steuerfeld kann eine Bedingungs-Zelle, eine Positions-Zelle, eine Arretierungs-Zelle oder einen dyadischen Operator
enthalten. Die Bedingung hat das Format C(R,CO,PB, BO,Bl,...,Bn). R ist ein Rücksetzbit, das, wenn gesetzt
anzeigt, daß der nächste Operand, der sich auf diesen Knoten bezieht, ignoriert werden sollte und daß die einzige
erforderliche Aktion im Rückstellen des Rücksetz-Bits besteht. PB ist ein Bool'sches Anwesenheits-Bit. PO ist
ein Operandenanwesenheitsbit, CO ist ein Operandenkonstantbit, BO...Bn sind Bool'sche Ausdrücke der minimalen Länge
eines Zeichens und der Maximal-Lange von acht Zeichen.
509836/06 6 8
Die Kompositionszelle als ein Steuerfeld besitzt das
Format C (CO,PO,Cl Pl,...,CnPn), wobei das Cn ein Konstantbit
für den nten Operanden und Pn das Anwesenheitsbit für den nten Operanten sind. Die Arretierungszelle besitzt
ein einziges Arretierungsbit und hat das Format C(L). Der dyadische Operator hat das Format C(R,C,PL,PR), wobei
C das Konstant!ih und wenn gleich eins, anzeigt, daß das
P Bit nichl: zurückgesetzt werden soll, PL ist das Anwesenheitsbit
i'.'-c den linken Operanden und PR ist das
Anwesenheitsbit für Jen rechten Operanden.
Die Adressen-Qualifizierer-Felder umfassen eine Kompositions-Zelle,
eine Bedingungs-Zelle, dyadische Operatoren (ops), eine Zerlegungszelle und eine Arretierungs-Zeile.
Die Kompositions-Zelle besitzt das Format AQ(n), wobei η ein Operand ohne Vorzeichen ist, dessen Länge ein Maximum
von acht Bits umfaßt. Die Bedingüngszelle ist eine Ein-Bit-Zelle
des Formats AQ(n), wobei η gleich 0 einen Bool'
sehen Ausdruck und η gleich 1 einen Opranden anzeigt. Dyadische Operatoren (ops) sind vom Format AQ(n), wobei
η = 0 anzeigt, daß ein linker Operand vorliegt und η = 1 einen rechten Operanden anzeigt. Die Zerlegungs-Zelle ist
von dem Format AQ(n), wobei η ein Operand ohne Vorzeichen mit einer maximalen Länge von 10 Bits ist. Die Arretierungs-Zelle
ist eine Ein-Bit-Zelle vom Format AQ(n), wobei η
gleich 0 Arretierung und η gleich 1 Freigabe angibt.
Die Bestiinmungsadresse ist eine Struktur, die das Format
6(()0()l(LS)...) haben muß, wobei die einzige Beschränkung
für die Daten, die einer örtlichen Speicheradresse LS folgen, darin besteht, daß die Daten und der Knoten, auf
den die Bestimmungsadresse gerichtet ist, den Syntax-Anforderungen für die Datenstrukturen genügen müssen. Die
einzige Ausnahme für das oben angegebene Bestimmungsadressen-Format besteht in der Null-Adresse, die das Format 6(O)
hat.
509836/0668
Eine Mikrokette ist eine Struktur, die das Format NS(())...)
haben muß. Die Mikrokette kann nur Markierungen von sechs
für konditionale Zellen enthalten. Für Zerlegungszellen kann die Mikrokette Kombinationen der folgenden Markierungen
enthalten: ",B,E,F,M,AQ,MS, and 6, welche Markierungen
oben definiert worden sind.
ZELLEN UND OPERATOREN
Die Konditionalzelle oder Bedingungszelle wird als N-bahn-Verzweigung
zu einer von N-Bestimmungsadressen-Listen verwendet. Jede Adressenliste kann mehrfache Bestimmungsadressen
enthalten. Die Kompositionszelle dient zum Sammeln und dann zum Aufreihen einer Anzahl von Operandenfeldern.
Das Ergebnis kann aus einem oder mehreren Operanden bestehen. Wenn samtlicheOperanden angekommen
sind, werden die sich ergebenden Operanden zu den Bestimmungen gesandt. Die Zerlegungszelle dient zum Zerlegen
des Operanden, der von der Eingangsschlange angeboten wird, wie das durch die Mikrokette der Zelle bestimmt
wird. Die Arretierungszelle dient zum Arretieren und Freigeben eines Netzes.
Die arithmetischen/logischen monadischen Operatoren werden jetzt beschrieben. ANY I bewirkt die Übertragung
eines Operanden mit einem Wert von "1" zu den geeigneten Bestimmungen, wenn der Operand irgendein Zeichen.mit
einem Wert von 1 enthält. Sonst wird eine Null übertragen. ANY 0 bewirkt die Übertragung eines Operanden mit dem
Wert von eins an die geeigneten Bestimmungen, wenn der Operand irgendein Zeichen mit dem Wert von 0 enthält.
Sonst wird eine Null übertragen. COUNT OF l's bewirkt
die Übertragung eines Operanden zu einer geeigneten Bestimmung mit einem Wert, der gleich der Anzahl von "1"
Zeichen ist, die in dem Operanden vorhanden sind. COUNT OF O1S bewirkt die übertragung eines Operanden zu "einer geeigneten
Bestimmung mit einem Wert, der gleich der Anzahl
509836/0668
der "O" Zeichen ist, die in dem Operanden vorhanden sind.
Es gibt fünf Lese/Schreib-Operatoren, die jetzt beschrieben
werden. READ STRUCTURE bewirkt die Übertragung des Inhalts des adressierten örtlichen Speichers zu geeigneten
Bestimmungen. Worin der adressierte örtliche Speicher-Unterraum eine Struktur enthält, wird die Struktur als Feld
mit der Markierung von 7 überI ragen. DELETE PARENS bewirkt
ein Holen der adressierten Struktur und ein Verwerfen
sämtlicher Kla?> π ern und Außen-Inhalte. Das Ergebnis wird
zu einer geeigneten Bestimmung mit einer Markierung von 7 vertragen. WRITE STRUCTURE bewirkt die Übertragung der
Struktur nach dem Operator vom Anfang der Eingangsschlange in den adressierten Unterraum des Örtlichen Speichers.
Die Klammern-Definition für beide vor und nach der Übertragung
werden auf Gleichheit geprüft. WRITE STRUCTURE TRANSPARENT bewirkt die Übertragung der nächsten.Struktur
vom Anfang der Eingangsschlange in den adressierten UnI-orraum
des örtlichen Speichers. Die Struktur wird in eingeklammerter Form gespeichert. WRITE VECTOR PARSED bewirkt
die Übertragung des nächsten Operanden vom Eingang der Eingangsschlange in den adressierten Unterraum des örtlichen
Speichers. Der ankommende Bit-Vector wird (grammatikalisch)
analysiert (Englischparsed) auf den örtlichen
Speicher, wie das durch die Klammerdefinition des Unterraums des örtlichen Speichers definiert ist. READ CHARACTERS
läßt die Zeichen in dem adressierten Unterraum des örtlichen Speichers in den Zeichensatz oder in die Paare
übersetzen, die in der Tabelle von Fig. 2 angegeben sind. Das Ergebnis wird als Operand zur geeigneten Bestimmung
übertragen. WRITE CHARACTERS bewirkt die Übertragung eines Operanden in der Eingangsschlange aus einer Zeichenpaar-Darstellung
in eine Zeichen-Darstellung. Das Ergebnis wird in den adressierten Unterraum des örtlichen Speichers
eingeschrieben.
509836/066 8
Die 2-Feld-Beschreibungs-Operatoren werden jetzt beschrieben.
MAKE FIELD DESCRIPTION schafft eine Feldbeschreibung vom adressierten Unterraum des örtlichen Speichers, in
dem die Klammern und Außen-lnhalte kopiert und die Innen-Inhalte
der Struktur durch die Zählung ersetzt wird, die die Anzahl der Zeichen des Innen-Inhaltes repräsentiert.
Die sich ergebende Feldbeschreibung wird zur geeigneten Bestimmung übertragen. MAKE STRUCTURE schafft
eine Struktur von dem adressierten Unterraum des örtlichen Speichers, der eine Feldbeschreibung enthält. Die sich
ergebende Struktur wird an die geeignete Bestimmung übertragen. Die anderen monadischen Operatoren sind der MARK-Operator,
der eine Übertragung des Inhalts des örtlichen Speicheradress-Registers zu einer geeigneten Bestimmung
bewirkt; die RESET-Operation, die die Anwesenheits-Bits in dem adressierten Teilbereich des örtlichen Speichers
in irgendeinem der Anwesenheits-Bits oder einer 1 zurückstellt. Sonst wird das Rückstellbit gesetzt; und der
NOOP-Operator, der bewirkt, daß keine Operation eingeleitet,
wird. Es gibt sieben Operanden-Modifizierer-Operatoren, die jeweils das erste Bit des Operanden zu Eins oder Null
setzen, das Komplement des ersten Bits des Operanden, reihen eine Null oder eine Eins an das niedrigststellige Ende
des Operanden ohne Vorzeichen an, lassen das niedrigstwertige Bit des Operanden ohne Vorzeichen weg und das
logische Komplement.
Die dyadischen Operatoren führen die normalen arithmetischen und logischen Operationen aus. Die akkumulierten dyadischen
Operatoren sind eine Variante einiger der normalen dyadischen Operatoren. Der akkumulierte Operator bewirkt, daß
ein Ergebnis zu der geeigneten Bestimmungsadresse und ferner zum Operandenfeld im örtlichen Speicher gesandt
wird. Die index-dyadischen Operatoren sind identisch mit den akkumulierten dyadischen Operatoren mit der Ausnahme,
daß keine Bestimmungsadressen geliefert werden. Die "zap"
&0 9836/066-8
dyadischen Operatoren sind Varianten der normalen dyadischen Operatoren und werden benutzt, wenn an einem anderen
Feld als an einem Operanden eine Operation von dyadischem Typ ausgeführt werden soll.
NACHWORT
Vorstehend wurdf beschrieben, daß das System und das
Verfahren gemäß der Erfindung ein Netzwerk von verarbeitenden oder I- inkt ionsmoduln und lokalen Speichereinheiten
benu? I, ie jedem Funktionsmodul zugeordnet
sind. Die Ausführung durch die Funktionsmoduln wird durch die Anwesenheit sämtlicher erforderlichen Datenstrukturen
ausgelöst, von'denen eine normalerweise in dem örtlichen
Speicher vorhanden ist und einen Operator enthält, während die andere Datenstruktur von dem Funktionsmodul empfangen
wird und ein Argument enthält, sowie eine Adresse, die zu der Stelle des örtlichen Speichers zeigt, bei der die
zugehörige Datenstruktur sich befindet. Auf diese Weise kann eine Reihe von Befehlen, die eine Prozedur, ein Programm oder eine Aufgabe bilden, über das Netzwerk verteilt
werden, damit die Verarbeitungsleistung durch Anpassung an laufende Prozesse verbessert werden kann. Weiter
können die Datenfelder so bearbeitet werden, wie sie von Funktionsmodul zu Funktionsmodul übertragen werden, so daß
sich "pipe-line"Effekt ergibt, der lediglich von der Übertragungsgeschwindigkeit
zwischen den Funktionsmoduln abhängt. Die Datenübertragung findet zeichenseriell statt
und ist synchron innerhalb der Fünktionsrnoduln, jedoch
asynchron zwischen den Funktionsmoduln. Die verschiedenen örtlichen Speichereinheiten können in ihrer Natur, Kapazität
und Zugriffszeit unterschiedlich sein, so daß sie verschiedenen Verarbeitungsanforderungen angepaßt werden
können. Die örtlichen Speichereinheiten sind normalerweise periodischer Natur und können Plattenpackungseinheiten,
Plattenstapel, Ver-zögerungsleitungsspeicher, ladungsgekoppeJ
AU- OnüysiiW'i---
509836/06 6 8
te Geräte sowie Blasenspeicher aufweisen.. Die örtlichen Speichereinheiten können Random-access-Speicher sein,
wenn dies Vorteile bringen sollte.
Das System kann von einem einzigen Funktionsmodul und zugehörigem örtlichem Speicher ausgehend zu einer beliebigen
Anzahl solcher Punktionsmoduln und örtlichen Speichereinheiten ausgedehnt werden, die durch ein vernetztes
Netzwerk von Vermittlungen angepaßt sind. Auf diese Weise kann eine Familie von Systemen geschaffen werden, so daß
sich ein Spektrum von Verarbeitungskapazitäten ergibt, das von einem sehr kleinen System bis zu einem sehr großen
System reicht. Jedoch ist die Grundeinheit, auf der solche Systeme aufgebaut sind, insoweit gleichförmig und einheitlich,
daß verschiedene Schaltungen und Architektur- oder Organisationspläne nicht geschaffen werden müssen.
Insgesamt wurde ein datenstrom-gesteuertes Netzwerk
beschrieben, das aus gleichförmigen Verarbeitungs- oder Funktionsmoduln und örtlichen Speichereinheiten besteht
und recht leicht so unterteilt werden kann, daß es verschiedenen gleichlaufenden Operatoren oder Aufgaben angepaßt
ist. Die Datenübertragung ist spezieller Natur, so daß die Datensegmente beliebige Länge haben können, die Ausführung
durch jeden Funktionsmodul wird durch die Ankunft sämtlicher erforderlichen Datenstrukturen eingeleitet,
von denen eine einen Operator enthält und in der zuge^·
hörigen örtlichen Speichereinheit gespeichert sein kann. Die anderen Datenstrukturen können Operanden und Modifizierer
enthalten. Somit kann die Reihe richtiger Operatoren über das Netzwerk verteilt werden, so daß sich die
Verarbeitungsleistung und der Datendurchsatz erhöhen lassen. Schließlich wurde noch ein spezieller Zeichensatz und ein
spezielles Datenstruktur-Format beschrieben.
509836/0668
Claims (20)
1. Verfahren zur Bearbeitung- von Informationen repräsentierenden
Daten in wenigstens einer programmierbaren Einheit einer Datenverarbeitungsanlage entsprechend Befehlen,
die in wenigstens einem Speicher der Anlage gespeichert sind, dadurch gekennzeichnet, daß ein Datensegment in
einer von mehreren programmierbaren Einheiten aufgenommen wird, wobei jede programmierbare Einheit eine Logik-Einheit
aufweist und einer von mehreren Speichereinheiten zugewiesen ist, daß die zu der das Datensegment empfangenen programmierbaren Einheit gehörende Speichereinheit
bei Empfang des Datensegments angesteuert wird, um einen
Steueroperator aus der Speichereinheit zu holen; und daß die·Logikeinheit in der programmierbaren Einheit zur Ausführung
einer Operation entsprechend dem Operator an dem empfangenen Datensegment veranlaßt wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß ein Datensegment aus einer Quelle für Datensegmente zu
einer der programmierbaren Einheiten zur Ausführung einer Operation an dem batensegment übertragen wird und daß
ein zweites Datensegment zu einer anderen programmierbaren Einheit zur gleichzeitigen Ausführung einer Operation
an dem anderen Datensegment übertragen wird.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß ein Datensegment von einer programmierbaren Einheit
zu einer zweiten programmierbaren Einheit übertragen wird, damit eine zweite Operation an dem Datensegment
ausgeführt werden kann, nachdem die erste Operation an dem Datensegment von der ersten programmierbaren Einheit
ausgeführt wurde.
509836/0668
-4ü-
4. Einrichtung zur Ausführung des Verfahrens nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß
zur datenstromgesteuerten Informationsverarbeitung mehrere
programmierbare Einheiten sowie Kopplungseinheiten vorgesehen sind, welche die programmierbaren Einheiten zur
seriellen übertragung von Datensegmenten unterschiedlicher Längen zwischen den programmierbaren Einheiten verbinden,
wobeil jedem Datensegment zeitlich ein Anfangs signal ..
vorangeht und ein Ende-Signal nachfolgt ; daß jede programmierbare Einheit eine Empfangseinrichtung
aufweist, die mit der Kupplungseinrichtung zum Empfang der Dätensegmente von einer anderen programmierbaren
Einheit verbunden ist und eine Feststelleinrichtung zur Feststelllang des Anfangssignals und eine
Feststelleinrichtung zur Fests teilung des Endsignals enthält, so daß Anfang und Ende der seriellen Übertragung
von unterschiedlichen Datensegmenten feststellbar sind.
5. Einrichtung nach Anspruch 4, dadurch gekennzeichnet, daß die Datensegmente aus einem Vierer-Zeichensatz gebildet
sind und jedes Zeichen aus zwei Binärziffern besteht; daß die Feststelleinrichtung für das Anfangssignal
eine Logikschaltung zur Feststellung einer ersten-Differenz
zwischen einer ersten und einer zweiten Binärziffer eines Zeichens aufweist und daß die Feststelleinrichtung
für das Ende-Signal einer Logikschaltung aufweist, die
eine zweite Differenz zwischen der ersten und zweiten Binärziffer eines Zeichens feststellt.
6. Einrichtung nach Anspruch 5, dadurch gekennzeichnet, daß eine Quelle für Datensegmente an die Kupplungseinrichtung
angeschlossen ist, und Datensegmente zwei programmierbaren Einheiten zur gleichzeitigen Bearbeitung
zuführen kann.
50983 8/0668
7. Einrichtung nach Anspruch 5 oder 6, dadurch gekennzeichnet, daß eine programmierbare Einheit an eine andere
programmierbare Einheit angeschlossen ist und ein Datensegment aufnehmen kann, so daß eine Operation an dem
Datensegment ausgeführt werden kann, nachdem die andere programmierbare Einheit eine Operation an dem gleichen
Datensegment ausgeführt hat.
8. Einrichtung nach einem der Ansprüche 4-7, dadurch
gekennzeichnet, c!iß eine Kupplungseinrichtung für mehrere
programmierbare Einheiten vorgesehen ist und die Datenübertragung
zwischen ihnen ermöglicht; daß mehrere Speichereinheiten vorgesehen sind, von denen die eine Speichereinheit
je einer programmierbaren Einheit zugeordnet ist und jede Speichereinheit eine oder mehrere Steueroperatoren
gespeichert enthält; daß jede programmierbare Einheit
eine Logikeinheit zur Ausführung von Operationen an Datensegmenten, eine an die Logikeinheit angeschlossene
Eingangseinheit zur Aufnahme der Datensegmente zur Übertragung zur Logikeinheit sowie eine Steuereinheit aufweist,
die an die Eingangseinheit, die Logikeinheit und die Speichereinheit
angeschlossen ist und die Speichereinheit zum Holen eines Steueroperators ansteuert in Abhängigkeit
von dem Empfang eines Datensegmentes durch die Eingang'seinheit,
wonach die Steuereinheit die Ausführung der Operation an dem Datensegment einleitet.
9. Einrichtung nach Anspruch 8, dadurch gekennzeichnet,
daß eine Quelle von Datensegmenten an die Kupplungseinrichtung angeschlossen ist und die Lieferung von Datensegmenten
an zwei programmierbare Einheiten zur gleichzeitigen Ausführung von Operationen angeschlossen ist.
10. Einrichtung nach Anspruch 8 oder 9, dadurch gekennzeichnet, daß eine programmierbare Einheit zum Empfang
eines Datensegmentes an eine andere programmierbare Einheit
509836/0668
angeschlossen ist und eine Operation an einem Datensegment
ausführt, nachdem die andere programmierbare Einheit eine Operation an dem Datensegment ausgeführt
hat.
11. Einrichtung nach einem der Ansprüche 8-10, dadurch
gekennzeichnet, daß die Kupplungseinrichtung eine Sammelleitung für serielle Datenübertragung aufweist.
12. Einrichtung nach einem der Ansprüche 8-11,dadurch gekennzeichnet,
daß eine Peripherie-Datenquelle vorgesehen ist, wobei eine der programmierbaren Einheiten an die
Peripherie-Datenquelle angeschlossen ist und die Datenübertragung steuert.
13. Einrichtung nach einem der Ansprüche 8-12, dadurch gekennzeichnet,
daß jede Steuereinheit der programmierbaren Einheit einen Speicher aufweist, in welchem Steuersignale
gespeichert sind.
14. Einrichtung nach_einem der Ansprüche 8-13, dadurch gekennzeichnet,
daß jede programmierbare Einheit eine Ausgangseinrichtung aufweist und eine Vermittlung vorgesehen
ist, die die Ausgangseinheiten einer programmierbaren Einheit mit der Eingangseinrichtung einer beliebigen anderen
programmierbaren Einheit zum Ermöglichen der Datenübertragung verbindet.
15. Einrichtung nach Anspruch 14, dadurch gekennzeichnet, daß zwei serielle Sammelleitungen vorgesehen sind, wobei
eine Sammelleitung die Vermittlung mit der Eingangseinrichtung zweier programmierbarer Einheiten und die andere
Sammelleitung mit der Ausgangseinrichtung der zwei programmierbaren Einheiten verbindet.
50983 6/0668
16. Einrichtung nach Anspruch 14, dadurch gekennzeichnet, daß eine E/A-Steuereinheit eine Eingangseinrichtung und
eine Ausgangseinrichtung aufweist, die an die Vermittlung angeschlossen ist und eine Datenübertragung zu einer programm iorbaren Einheit ermöglicht; und daß ein Peripherie-Gerät
an die E/A-Steuereinheit anqeschlossen ist.
17. Einrichtung nach einem der Ansprüche 4-16, dadurch
gekennzeichnet, daß eine von der Vielzahl der programmierbaren
Einheiten getrennte programmierbare Einheit eine Eingangs- und ei r*j AuSgangseinrict.tung besitzt; daß eine
zweite Vermittlung an die getrennte programmierbare Einheit:
angeschlossen ist und die AusgangseJ nrichtung jener piü'jrammierbaren Einheit an die Eingangseinrichtung wahl,
weise anschließt; und daß die zweite Vermittlung an eine weitere Vermittlung für die Datenübertragung zwischen
der separaten programmierbaren Einheit und einer aus der Vielzahl der.programmierbaren Einheiten angeschlossen ist
18. Einrichtung nach Anspruch 17, dadurch gekennzeichnet,
daß zwischen der weiteren Vermittlung und der zweiten Vermittlung eine Verrnittlungsschnittstellen-Einheit zum
Puffern der Datenübertragung geschaltet is.t.
19. Einrichtung nach einem der Ansprüche 4-18, dadurch gekennzeichnet, daß eine erste Vermittlung die Vielzahl
an programmierbaren Einheiten derart verbindet, daß eine beliebige Alisgangseinrichtung mit einer beliebigen Ein—
gangseinrichtung verbindbar ist; und daß eine zweite Vermittlung mit einer eigenen programmierbaren Einheit derart
verbunden ist, daß die Ausgangseinrichtung der programmierbaren Einheit mit einer beliebigen Eingangseinrichtung
der programmierbaren Einheit verbindbar ist.
509836/0668
20. Einrichtung nach einem der Ansprüche 4-19, dadurch gekennzeichnet, daß eine zweite programmierbare Einheit
gegenüber der Vielzahl der programmierbaren Einheiten abgesetzt ist und eine Eingangseinrichtung und eine Ausgangseinrichtung
aufweist; und daß eine dritte Vermittlung an die zweite, abgetrennte programmierbare Einheit derart
angeschlossen ist, daß die Ausgangseinrichtung der zweiten abgetrennten programmierbaren Einheit mit ihrer
Eingantiseinrichtunci verbindbar ist^ und daß die dritte
Vermittlung mil der zweiten Vermittlung zur Datenübertragung zwischen der zweiten, programmierbaren Einheit
und anderen programmierbaren Einheiten des Systems verbunden ist.
50983B/ÜB68
Leerseite
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/447,040 US3978452A (en) | 1974-02-28 | 1974-02-28 | System and method for concurrent and pipeline processing employing a data driven network |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2505843A1 true DE2505843A1 (de) | 1975-09-04 |
Family
ID=23774763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19752505843 Withdrawn DE2505843A1 (de) | 1974-02-28 | 1975-02-12 | Datenverarbeitungsanlage mit datenstromgesteuerter simultanverarbeitung |
Country Status (16)
Country | Link |
---|---|
US (1) | US3978452A (de) |
JP (1) | JPS50120746A (de) |
AR (1) | AR207238A1 (de) |
BE (1) | BE825391A (de) |
CA (1) | CA1031077A (de) |
DE (1) | DE2505843A1 (de) |
DK (1) | DK664374A (de) |
ES (1) | ES434283A1 (de) |
FR (1) | FR2262833B1 (de) |
GB (1) | GB1481392A (de) |
IE (1) | IE41213B1 (de) |
IT (1) | IT1031728B (de) |
NL (1) | NL7501336A (de) |
NO (1) | NO750339L (de) |
SE (1) | SE410060B (de) |
ZA (1) | ZA75808B (de) |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4153932A (en) * | 1974-03-29 | 1979-05-08 | Massachusetts Institute Of Technology | Data processing apparatus for highly parallel execution of stored programs |
FR2337376A1 (fr) * | 1975-12-31 | 1977-07-29 | Honeywell Bull Soc Ind | Appareil permettant le transfert de blocs de donnees de longueur variable entre deux interfaces de largeur differente |
GB1506972A (en) * | 1976-02-06 | 1978-04-12 | Int Computers Ltd | Data processing systems |
GB1527289A (en) * | 1976-08-17 | 1978-10-04 | Int Computers Ltd | Data processing systems |
US4197589A (en) * | 1977-12-05 | 1980-04-08 | Texas Instruments Incorporated | Operation sequencing mechanism |
US4245299A (en) * | 1978-01-05 | 1981-01-13 | Honeywell Information Systems Inc. | System providing adaptive response in information requesting unit |
US4236206A (en) * | 1978-10-25 | 1980-11-25 | Digital Equipment Corporation | Central processor unit for executing instructions of variable length |
US4251861A (en) * | 1978-10-27 | 1981-02-17 | Mago Gyula A | Cellular network of processors |
JPS5621242A (en) * | 1979-07-28 | 1981-02-27 | Fujitsu Ltd | Pipeline control method for computer operation |
US4390969A (en) * | 1980-04-21 | 1983-06-28 | Burroughs Corporation | Asynchronous data transmission system with state variable memory and handshaking protocol circuits |
US4467409A (en) * | 1980-08-05 | 1984-08-21 | Burroughs Corporation | Flexible computer architecture using arrays of standardized microprocessors customized for pipeline and parallel operations |
JPS588359A (ja) * | 1981-07-07 | 1983-01-18 | バロース コーポレーション | 還元プロセサの同時処理回路網および処理方法 |
JPS58149541A (ja) * | 1982-03-01 | 1983-09-05 | Hitachi Ltd | デ−タ処理装置 |
JPS5936857A (ja) * | 1982-08-25 | 1984-02-29 | Nec Corp | プロセツサユニツト |
US4737907A (en) * | 1982-09-21 | 1988-04-12 | Xerox Corporation | Multiprocessor control synchronization and instruction downloading |
US4475156A (en) * | 1982-09-21 | 1984-10-02 | Xerox Corporation | Virtual machine control |
US4698772A (en) * | 1982-09-21 | 1987-10-06 | Xerox Corporation | Reproduction machine with a chain of sorter modules and a method to perform chaining tasks |
US4532584A (en) * | 1982-09-21 | 1985-07-30 | Xerox Corporation | Race control suspension |
US4870644A (en) * | 1982-09-21 | 1989-09-26 | Xerox Corporation | Control crash diagnostic strategy and RAM display |
US5023779A (en) * | 1982-09-21 | 1991-06-11 | Xerox Corporation | Distributed processing environment fault isolation |
US4550382A (en) * | 1982-09-21 | 1985-10-29 | Xerox Corporation | Filtered inputs |
US4514846A (en) * | 1982-09-21 | 1985-04-30 | Xerox Corporation | Control fault detection for machine recovery and diagnostics prior to malfunction |
US4521847A (en) * | 1982-09-21 | 1985-06-04 | Xerox Corporation | Control system job recovery after a malfunction |
JPS59139455A (ja) * | 1982-12-28 | 1984-08-10 | Fujitsu Ltd | デ−タ処理方式 |
US4689739A (en) * | 1983-03-28 | 1987-08-25 | Xerox Corporation | Method for providing priority interrupts in an electrophotographic machine |
US4509851A (en) * | 1983-03-28 | 1985-04-09 | Xerox Corporation | Communication manager |
US4589093A (en) * | 1983-03-28 | 1986-05-13 | Xerox Corporation | Timer manager |
GB8329509D0 (en) * | 1983-11-04 | 1983-12-07 | Inmos Ltd | Computer |
JPS60101644A (ja) * | 1983-11-07 | 1985-06-05 | Masahiro Sowa | ノイマン型コンピュータプログラムを実行するコントロールフローコンピュータ |
EP0168054B1 (de) * | 1984-07-11 | 1991-10-09 | Hitachi, Ltd. | Datenflussgesteuertes Informationsverarbeitungsverfahren und -system |
US4694416A (en) * | 1985-02-25 | 1987-09-15 | General Electric Company | VLSI programmable digital signal processor |
EP0233866A1 (de) * | 1985-09-03 | 1987-09-02 | FARNUM, Henry Merritt | Universelle konstruktionsvorrichtung für modelle, bühnentechnik, modelle von matrizen und dergleichen |
US5021947A (en) * | 1986-03-31 | 1991-06-04 | Hughes Aircraft Company | Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing |
US4814978A (en) * | 1986-07-15 | 1989-03-21 | Dataflow Computer Corporation | Dataflow processing element, multiprocessor, and processes |
US4811214A (en) * | 1986-11-14 | 1989-03-07 | Princeton University | Multinode reconfigurable pipeline computer |
US5127104A (en) * | 1986-12-29 | 1992-06-30 | Dataflow Computer Corporation | Method and product involving translation and execution of programs by automatic partitioning and data structure allocation |
US4893234A (en) * | 1987-01-15 | 1990-01-09 | United States Department Of Energy | Multi-processor including data flow accelerator module |
US5117489A (en) * | 1987-04-22 | 1992-05-26 | Mitsubishi Denki Kabushiki Kaisha | Data-driven processor having an internal tag-generating system for generating a distinct tagged information and assembling with un-tagged information of an input/output data packet |
US5163142A (en) * | 1988-10-28 | 1992-11-10 | Hewlett-Packard Company | Efficient cache write technique through deferred tag modification |
US5327569A (en) * | 1989-08-28 | 1994-07-05 | Mitsubishi Denki Kabushiki Kaisha | Data driven type processor including a generation management system |
US5175843A (en) * | 1989-10-30 | 1992-12-29 | General Electric Company | Computer-aided design method for restructuring computational networks to minimize shimming delays |
US5028186A (en) * | 1990-01-29 | 1991-07-02 | Mechanical Plastics Corp. | Hollow wall anchor with enhanced holding strength |
US5787432A (en) * | 1990-12-06 | 1998-07-28 | Prime Arithmethics, Inc. | Method and apparatus for the generation, manipulation and display of data structures |
IE920032A1 (en) * | 1991-01-11 | 1992-07-15 | Marconi Gec Ltd | Parallel processing apparatus |
DE69327504T2 (de) * | 1992-10-19 | 2000-08-10 | Koninklijke Philips Electronics N.V., Eindhoven | Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen |
US5701120A (en) * | 1992-12-13 | 1997-12-23 | Siemens Business Communication Systems, Inc. | Partitioned point-to-point communications networks |
JP3182591B2 (ja) * | 1993-01-20 | 2001-07-03 | 株式会社日立製作所 | マイクロプロセッサ |
US5481743A (en) * | 1993-09-30 | 1996-01-02 | Apple Computer, Inc. | Minimal instruction set computer architecture and multiple instruction issue method |
GB2286067A (en) * | 1993-12-23 | 1995-08-02 | Motorola Inc | A processor system |
WO2004010320A2 (en) * | 2002-07-23 | 2004-01-29 | Gatechance Technologies, Inc. | Pipelined reconfigurable dynamic instruciton set processor |
US20040111590A1 (en) * | 2002-07-23 | 2004-06-10 | Klein Robert C. | Self-configuring processing element |
US7895560B2 (en) * | 2006-10-02 | 2011-02-22 | William Stuart Lovell | Continuous flow instant logic binary circuitry actively structured by code-generated pass transistor interconnects |
US9501448B2 (en) | 2008-05-27 | 2016-11-22 | Stillwater Supercomputing, Inc. | Execution engine for executing single assignment programs with affine dependencies |
US8688956B2 (en) * | 2008-05-27 | 2014-04-01 | Stillwater Supercomputing, Inc. | Execution engine for executing single assignment programs with affine dependencies |
US8385971B2 (en) | 2008-08-19 | 2013-02-26 | Digimarc Corporation | Methods and systems for content processing |
US10333696B2 (en) | 2015-01-12 | 2019-06-25 | X-Prime, Inc. | Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3047228A (en) * | 1957-03-30 | 1962-07-31 | Bauer Friedrich Ludwig | Automatic computing machines and method of operation |
US3287703A (en) * | 1962-12-04 | 1966-11-22 | Westinghouse Electric Corp | Computer |
US3308436A (en) * | 1963-08-05 | 1967-03-07 | Westinghouse Electric Corp | Parallel computer system control |
US3383661A (en) * | 1964-09-30 | 1968-05-14 | Bell Telephone Labor Inc | Arrangement for generating permutations |
US3473160A (en) * | 1966-10-10 | 1969-10-14 | Stanford Research Inst | Electronically controlled microelectronic cellular logic array |
GB1281167A (en) * | 1969-01-02 | 1972-07-12 | Plessey Telecomm Res Ltd | Improvements relating to data processing systems |
US3614745A (en) * | 1969-09-15 | 1971-10-19 | Ibm | Apparatus and method in a multiple operand stream computing system for identifying the specification of multitasks situations and controlling the execution thereof |
US3646523A (en) * | 1969-09-24 | 1972-02-29 | Ibm | Computer |
-
1974
- 1974-02-28 US US05/447,040 patent/US3978452A/en not_active Expired - Lifetime
- 1974-12-19 DK DK664374A patent/DK664374A/da not_active Application Discontinuation
-
1975
- 1975-01-01 AR AR257753A patent/AR207238A1/es active
- 1975-01-30 ES ES434283A patent/ES434283A1/es not_active Expired
- 1975-01-31 GB GB4208/75A patent/GB1481392A/en not_active Expired
- 1975-02-03 NO NO750339A patent/NO750339L/no unknown
- 1975-02-03 IE IE214/75A patent/IE41213B1/xx unknown
- 1975-02-04 NL NL7501336A patent/NL7501336A/xx not_active Application Discontinuation
- 1975-02-07 ZA ZA00750808A patent/ZA75808B/xx unknown
- 1975-02-11 BE BE153236A patent/BE825391A/xx unknown
- 1975-02-12 DE DE19752505843 patent/DE2505843A1/de not_active Withdrawn
- 1975-02-12 SE SE7501533A patent/SE410060B/xx unknown
- 1975-02-13 IT IT20256/75A patent/IT1031728B/it active
- 1975-02-13 CA CA219,958A patent/CA1031077A/en not_active Expired
- 1975-02-14 JP JP50019400A patent/JPS50120746A/ja active Pending
- 1975-02-28 FR FR757506400A patent/FR2262833B1/fr not_active Expired
Also Published As
Publication number | Publication date |
---|---|
NL7501336A (nl) | 1975-09-01 |
AU7666774A (en) | 1976-06-24 |
SE410060B (sv) | 1979-09-17 |
IE41213L (en) | 1975-08-28 |
AR207238A1 (es) | 1976-09-22 |
NO750339L (de) | 1975-08-29 |
DK664374A (de) | 1975-10-27 |
FR2262833A1 (de) | 1975-09-26 |
US3978452A (en) | 1976-08-31 |
CA1031077A (en) | 1978-05-09 |
IE41213B1 (en) | 1979-11-07 |
ZA75808B (en) | 1976-01-28 |
IT1031728B (it) | 1979-05-10 |
ES434283A1 (es) | 1977-03-16 |
FR2262833B1 (de) | 1979-02-09 |
BE825391A (fr) | 1975-05-29 |
JPS50120746A (de) | 1975-09-22 |
GB1481392A (en) | 1977-07-27 |
SE7501533L (de) | 1975-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2505843A1 (de) | Datenverarbeitungsanlage mit datenstromgesteuerter simultanverarbeitung | |
DE60010907T2 (de) | Sram-steuerungvorrichtung für parallele prozessorarchitektur mit adressen- und befehlswarteschlange und arbiter | |
DE69102065T2 (de) | Eine arithmetische einheit für strukturarithmetik. | |
DE68927946T2 (de) | Verfahren und Vorrichtung für die Synchronisierung von parallelen Prozessoren unter Verwendung einer unscharf definierten Sperre | |
DE69131956T2 (de) | Verarbeitungsprozessor zur Verbindung von Befehlen für einen Cache-Speicher | |
DE3586603T2 (de) | Datenprozessor fuer interpretierende und kompilierte sprache. | |
DE60011797T2 (de) | Ausführung von mehreren fäden in einem parallelprozessor | |
DE69422780T2 (de) | Superskalare Rechnerarchitektur mit Softwarescheduling | |
DE2317870C2 (de) | Schaltungsanordnung zur Steuerung der Datenübertragung zwischen dem Hauptspeicher und mindestens einem E/A-Gerät in einer digitalen Datenverarbeitungsanlage | |
DE3638572C2 (de) | ||
DE69415126T2 (de) | Gegenflusspipelineprozessor | |
DE102014011332A1 (de) | Priorisieren von anweisungen basierend auf typ | |
DE3851746T2 (de) | Sprungvorhersage. | |
CH650600A5 (de) | Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister. | |
DE1931966C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE2855106A1 (de) | Einrichtung zur durchfuehrung von instruktionsverzweigungen | |
DE2209136B2 (de) | Steuer- und Anpassungsschaltung für Datenverarbeitungsanlagen | |
DE69032394T2 (de) | Minimierung von Pipelineunterbrechungen mittels Software-Ablaufplanungsverfahren während der Kompilation | |
DE1474095B1 (de) | Programmgesteuerte Datenverarbeitungsanlage | |
DE2054835A1 (de) | Prozessor fur ein Informationsver arbeitungssystem und ein Betriebsver fahren fur diesen Prozessor | |
DE2054947A1 (de) | Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystem | |
DE2556617A1 (de) | Datenverarbeiter zum rotierbaren verschieben von bits eines datenwortes | |
DE2426874A1 (de) | Verfahren und schaltungsanordnung zur bestimmung der adressenart eines befehls | |
DE69228498T2 (de) | Einrichtung und Verfahren zum Verwalten mehrerer unabhängiger Warteschlangen in einem gemeinschaftlich und universell nutzbaren Speicherbereich | |
DE2548720C2 (de) | Mikroprogramm-Steuerwerk |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8141 | Disposal/no request for examination |