DE2524229A1 - Datenverarbeitungssystem mit pyramidenfoermiger hierarchie des steuerflusses - Google Patents

Datenverarbeitungssystem mit pyramidenfoermiger hierarchie des steuerflusses

Info

Publication number
DE2524229A1
DE2524229A1 DE19752524229 DE2524229A DE2524229A1 DE 2524229 A1 DE2524229 A1 DE 2524229A1 DE 19752524229 DE19752524229 DE 19752524229 DE 2524229 A DE2524229 A DE 2524229A DE 2524229 A1 DE2524229 A1 DE 2524229A1
Authority
DE
Germany
Prior art keywords
command
bus
level
processing units
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE19752524229
Other languages
English (en)
Inventor
Albert Pierre Belle Isle
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
General Electric Co
Original Assignee
General Electric Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by General Electric Co filed Critical General Electric Co
Publication of DE2524229A1 publication Critical patent/DE2524229A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead

Description

^f-J-/
NACHQEREJOHT
Dr. rer. nat. Horst Schüler 6 Frankfurt/Main ι, 30. Mai 1975
r:rer
252 4 229 Telex: 04-10759 mapatd
Postscheck-Konto: 282420-602 Frankfurt/M.
Bankkonto: 225/0389
Deutsche Bank AG, Frankfurt/M.
3573-21-DSA-2377
GENERAL ELECTRIC COMPANY
1 River Road Schenectady, N.Y., U.S.A.
Datenverarbeitungssystem mit pyramidenförmiger Hierarchie des Steuerflusaes.
Die vorliegende Erfindung betrifft allgemein Datenverarbeitungssysteme und insbesondere eine neuartige Basisstruktur oder "Architektur" von programmierbaren digitalen Datenverarbeitungssystemen .
Ein programmierbares digitales Datenverarbeitungssystem kann definiert werden als eine Zusammenstellung von (stofflichen) Baueinheiten zur Informationsverarbeitung und -speicherung, die auch als "Hardware" bezeichnet werden, untereinander verbunden sind und bezüglich des Betriebsablaufs der Basissteuerung durch eine intern gespeicherte Sequenz von Instruktionen unterliegen, die auch als "Software" bezeichnet wird. Die gleiche Hardware kann bei Ausstattung oder "Programmierung"
509851/0988
mit einer anderen Software dazu verwendet werden, einen sehr breiten Bereich von erwünschten komplizierten Aufgabenstellungen der digitalen Datenverarbeitung auszuführen. Die Wahl der einzelnen Funktionen der Informationsverarbeitung, die durch jedes Bauteil der Hardware aviszuführen sind, die Anzahl solcher Bauteile oder Bauelemente und ihre Zusammenstellung zu einer untereinander verbundenen Struktur, die einen geordneten Austausch von Daten {data communication) zwischen den Elementen unter Steuerung durch eine gespeicherte Sequenz von Instruktionen oder durch ein Programm ergibt, wobei diese Instruktionen als von den Bauteilen der Hardware zu verarbeitende oder zu modifizierende Daten behandelt werden können, kann auch als die "Architektur" eines solchen Systems definiert werden.
In der nachstehenden ausführlichen Beschreibung werden drei im Stand der· Technik bekannte grundlegende Architekturen beschrieben. Diese Architekturen sind so beschaffen, dass die Kosten und das Ausmass der Kompliziertheit der für ihre Programmierung benötigten Software zur Erzielung gewünschter Operationen der Informationsverarbeitung in vielen Anwendungsbereichen übermässig hoch sind, beispielsweise bei Automationssystemen, die komplizierte digitale Datenverarbeitungsfunktionen mit "Realzeit" erfordern. Dies gilt auch für die meisten Datenverarbeitungssysteme des üblicherweise als Universalrechner bezeichneten Typs.
Es ist daher eine Hauptaufgabe der vorliegenden Erfindung, ein neuartiges und verbessertes Datenverarbeitungssystem zu schaffen. Es ist weiterhin eine Aufgabe der Erfindung, ein Datenverarbeitungssystem mit einer neuartigen Architektur zu schaffen, welche die Einstellung eines Steuerflusses in einer ordnungsgemässen Weise erleichtert, so dass eine geringere Menge an Software benötigt wird, als dies bisher durch die direkte Ausführung von Instruktionen mit grösserer Kompliziertheit möglich war. Eine weitere Aufgabe besteht darin, eine neue Architektur für programmierbare digitale Datenver-
509851/0986
arbeitungssysteme zu schaffen, bei denen in verschiedenen Teilmengen (Untergruppen) Befehls- oder Instruktionsgruppen dieses Systems der spezifischen Verantwortlichkeit von verschiedenen einzelnen und in sich abgeschlossenen Teilen der Hardware des Systems unterliegen.
Es ist eine weitere Aufgabe, ein Datenverarbeitungssystem zu schaffen, in dem bestimmte Bofehlsworte der eindeutigen Verantwortlichkeit definierter Teile der Hardware des Systems unterliegen, um ein Gesamtsystem zu schaffen, das in hohem Masse modular (Modulform aufgebaut) und äusserst flexibel ist.
Wie noch aus der nachfolgenden Beschreibung ersichtlich, werden die vorstehenden und weitere Aufgaben erfindungsgemäss durch die Verwendung einer Vielzahl von zwei Arten von Untersystemen oder Datenverarbeitungseinheiten in einer verteilten pyramidenförmigen Hierarchie mit mehreren Ebenen erreicht, wobei die beiden Untersysteme als Ausführungs-Verarbeitungs-Einheiten (EPU) (execution processing units) und als Übersetzer-Verarbeitungs-Einheit (TPU) (translator processing units) bezeichnet werden. Eine Ausführungs-Verarbeitungs-Einheit ist eine Einheit, die eine endgültige Systemfunktion ausführt. Eine Übersetzer-Verarbeitungs-Einheit führt die Leitweglenkung aus und führt den Verarbeitungseinheiten auf den unteren Ebenen die Befehle (Instruktionen) in Sequenz zu.
In dem System gemäss der Erfindung löst ein Steuergerät (controller) auf einer ersten Ebene die Basissequenzbildung des Systems dadurch aus, dass er Befehlsworte aus einem Speicher in Sequenz zurückholt (abruft) und diese Worte auf einen Befehls-Bus (Befehlssammelleitung) leitet, der eine Schnittstellenverbindung des Steuergerätes mit der nächst niedrigeren Ebene des Systems herstellt. Es sind mindestens zwei Ebenen vorgesehen, die jeweils eine Vielzahl von Verarbeitungseinheiten enthalten, von denen mindestens eine Einheit eine Übersetzereinheit ist. Zwischen benachbarten Ebenen ist eine
SQ9851 /0988
Befehlssammelleitung (-Bus) vorgesehen, die eine geeignete Schnittstellenverbindung zwischen den beiden Ebenen bildet. Daher ergibt das System eine pyramidenförmige Hierarchie mit mindestens zwei Hauptzweigen. Jeder dieser Hauptzweige und Verzweigungen derselben endet in einer oder mehreren Ausfiihrungs-Verarbeitungs-Einheiten zur Ausführung der Endfunktion des Systems, beispielsweise eine Berechnung oder eine Kommunikation (Datenübermittlung) mit einer Anlage ausserhalb des Systems.
Jedes Befehlswort enthalt einen Operationscodeteil und ein Operandenfeld, das eine oder mehrere Operanden enthält. Jede Verarbeitungseinheit enthält noch eine Erkennungselektronik (recognition circuitry), die auf den Operationscodeteil eines Befehlsworts anspricht, das an einer Schnittstellensammelleitung (interface bus) an seinem Eingang angeboten wird. Durch die Erkennungselektronik wird die Einheit nur ein bestimmtes Wort oder bestimmte Worte annehmen. Wenn die annehmende Einheit eine Äusführungs-Veraröeitangs-Einheit ist, dann wird das Befehlswort dazu verwendet{ die Ausführung einer Funktion anzuweisen oder zu leiten. Wenn die annehmende Einheit eine Übersetzereinheit ist, dann ergibt sich eine von zwei Betriebsarten. Die erste Betriebsart ist eine Leitweglenkung» bei der die übersetzereinheit das Wort lediglich zu dem nächst niedrigeren Schnittstellen-Bus weitergibt. Die zweite Betriebsart führt dazUj dass die Übersetzereinheit den Zugriff zu einem zugeordneten Speicher herstellt, um weitere Befehls— worte zu erhalten und diese an den Befehlswort-Bus an ihrem Ausgang abzugeben. Die auf diese Weise eingegebenen Befeiils— worte sind für die Verwendung in Verarbeitungseinheiten der niedrigeren Ebene gedacht, und zwar entweder für eine Äusführungs-Verarbeitungs-Einheit oder eine Übersetzer-Einheit.
Zur förderung des ordnungsgemässen Steuerflusses und zur Verhinderung eines Informationsverlustes sind weiterhin Einrichtungen vorgesehen, durch welche die Einheiten der niedrigeren Ebene den Einheiten auf höteer Ebene oder dem Steuergerät ihre
509851/0986
Bereitschaft zur Annahme eines Befehlswortes anzeigen. Auf diese Weise wird die Änderung eines vorhandenen Befehlswortes verhindert, wenn die nächstfolgende Einheit im Fliesschema
,es
nicht bereit ist / anzunehmen.
Ein besseres Verständnis der Erfindung ergibt sich aus der nachstehenden Beschreibung im Zusammenhang mit den Abbildungen.
Die Figuren 1,2 und 3 sind Blockschaltbilder und zeigen vor-
bekannte Architekturen von Datenverarbeitunssystemen, deren Verständnis zu einem Verständnis der vorliegenden Erfindung beiträgt.
Figur 4 ist ein Blockschaltbild und veranschaulicht die Konzeption der vorliegenden Erfindung.
Die Figur 5 ist ein Blockschaltbild ähnlich der Figur 4; es zeigt jedoch weitere Einzelheiten einer möglichen Ausführungsform eines Datenverarbeitungssystems gemäss der Erfindung.
Die Figur 6 ist ein Blockschaltbild einer beispielhaften Ausführungsform einer Verarbeitungsei'nheit zur Verwendung als Übersetzereinheit in der vorliegenden Erfindung.
Die Figur 7 zeigt die Taktgabe des Systems durch Taktsignale, die von einem Systemtakt-Generator zur Verwendung durch die Verarbeituugseinheiten erzeugt werden.
Die Figuren 8, 9 und 10 sind Taktimpuls- oder Zeitdiagramme zur Erleichterung des Verständnisses der Arbeitsweise der Verarbeitungseinheiten nach Figur 8.
Die Figur 11 ist ein Blockschaltbild einer zweiten Ausführungsform einer Verarbeitungseinheit zur Verwendung in dem System der vorliegenden Erfindung für die Ausführung von Befehlsworten zur Durchführung logischer Berechnungen.
509851/0986
Die Figur HA zeigt die Taktgabe für die Verarbeitungseinheit nach Figur 11 zum besseren Verständnis der Arbeitsweise dieser Einheit.
Die Figuren 12 und 13 zeigen logische Strukturen für Boole'sehe Logik-Schaltungen für die Verarbeitungseinheit nach Figur 11 zum besseren Verständnis der Arbeitsweise der logischen Rechengänge, die von der Verarbeitungseinheit ausgeführt werden.
Die Figur 14 ist eine beschreibende Tabelle der Instruktionen (Befehle) zur Verwendung durch die Verarbeitunjgs'einheit der Figur 11.
Die Figuren 15 und 16 enthalten eine Liste von Verteilungsniustern (Anordnungen) für die Steuerbit und die Zweckbestimmung dieser Bit für die Ausführung von S teuer funkt ionen ztsr Steuerung der Arbeitsweise der Verartoeitungseinheit nach Figur 11, wie sie durch die Operationscod« in den dieser Einheit zugeführten Befehlen angegeben sind,
Die Figur 17 ist ein Speicheraufteilungssenema (memory map), das die Aufteilung von Daten in einem Speicher zur Verwendung in einer zweiten Art einer Verarbeitungseinheit des Typs nach den Figuren 18, 19 und 20 bildlich darstellt.
Figur 18 ist ein Blockschaltbild des Speichers nach den Figuren 18j 19 und'2O und zeigt in weiteren Einzelheiten, wie dieser Speicher unterteilt ist zur Verarbeitung von Daten gemäss der Anordnung (Organisation) der Daten nach der ^bfoildving der Figur 17,
Die Figur 19 ist ein Hauptbloekschaltbild einer zweiten Art von Verarbeitungseiniieit ge«äss der Abbildung in Figur 20 und zeigt die gegenseitige Verbindung von Signalleitungen zwischen <3em Speicher und einem Steaeraöseimitt dieser Einheit.
Die Figur 20 ist ein ausführliebes Blockschaltbild einer zwei-
509851/0986
ten Bauart einer Verarbeitungseinheit zur Verwendung in der
vorliegenden Erfindung zur Ausführung von Instruktionen, welche derselben von einer Verarbeitungseinheit des Typs nach
Figur 6 geliefert werden.
Die Figuren 21 und 22 zeigen Taktimpuls-Diagramme (Zeitablaufdiagramme) zum besseren Verständnis der Arbeitsweise der Verarbeitungseinheit gemfiss Figur 20 und ihres Speichers.
Die Figur 23 ist ein Strich-Schaubild (pictoral bar chart)
und zeigt die Erzeugung der Instruktionssequenzen in einer
zeitlichen Sequenz durch die Verarbeitungseinheiten nach der Erfindung zur Ausführung einer einzigen Instruktion einer
höheren Ebene, welche durch die Verarbeitungseinheit ausgegeben wurde, die in der pyramidenförmigen Architektur am höchsten steht.
Die Figur 24 ist ein Hauptblockschaltbild einer dritten Bauform einer Verarbeitungseinheit und zeigt, wie ein handelsmässig erhältliches Bauelement in das System gemäss der vorliegenden Erfindung durch Benutzung einer Adaptereinheit mit diesem "Bauelement eingefügt werden kann.
Die Figur 25 ist ähnlich der Figur 24; sie definiert jedoch
im einzelnen die Zwischenverbindungsleitungen (interface lines)
zwischen der Adaptereinheit und dem handeIsmail ig erhältlichen Bauelement.
Die Figur 26 ist ein ausführliches Bio« kschaltbild der Adaptereinheit einer Verarbeitungseinheit gemäss den Figuren 24
und 25.
Die Figuren 27 und 28 sind Taktimpuls-Diagramme zum besseren Verständnis der Arbeitsweise der Adaptereinheit nach Figur
26 und der Arbeitsweise der Zwischenverbindung dieser Adaptereinheit mit einem handelsmässig erhältlichen Bauelement, das hier als Anzeigegerät gezeigt ist.
509851/0986
Wie bereits vorstehend erwähnt, wird vor einer ausführlichen Beschreibung der vorliegenden Erfindung zum besseren Verständnis der Erfindung die Architektur von vorbekannten Datenverarbeitungssystemen gemäss den Figuren 1, 2 und 3 kurz erläutert. In dieser Erläuterung und auch in der Beschreibung der vorliegenden Erfindung wird besonders Nachdruck auf den Fluss der Steuerinformation des Systems im Unterschied zum Datenfluss gelegt.
Figur 1 zeigt einen typischen grundlegenden Universalrechner. Für die vorliegende Erläuterung wird dieses System mit drei Teilsystemen dargestellt: Ein Programmspeicher-Teilsystem 10, in dem Befehlsworte des Systems gespeichert sind, ein Steuerab chnitt-Teilsystem 12, das einzelne Befehlsworte oder Instruktionen vom Programmspeicher in der richtigen Sequenz zugänglich macht, und einem Ausführungs-Hardware-Teilsystem 14, das aus allen Datenverarbeitung^- und Speicher-Bauelementen besteht, die zur Ausführung der Instruktionen erforderlich sind, die von dem Sequenzsteuergerät abgegeben werden. Für den Fachmann ist es selbstverständlich ersichtlich, dass die obige Beschreibung (ebenso wie die nachstehenden Beschreibungen anderer bekannter Geräte) nicht umfassend sein soll, sondern lediglich auf den Fluss der Steuerinformation gerichtet ist» Der Speicher könnte beispielsweise in einem voll arbeitsfähigen System auch andere Worte als Befehlsworte enthalten, d„h„ Batenworte. In ähnlicher Weise würde der Steuerabschnitt normalerweise die Äusführungs-Hardware anweisen, andere Funktionen auszufahren, beispielsweise die Modifikation von B*"*f ehlsworten, neben den arithmetischen Berechnungen usw., wie dies bei bekannten Datenverarbeitungsgeräten der Fall ist. Es ist jedoch nicht erforderlich, diese Einzelheiten hier zu erörtern.
Unter Bezugnahme auf Figur 1 werden zwei Abwandlungen dieser "standardinässigen11 Architektur beschrieben, die in einem sehr beschränkten Mass einige der Vorteile der vorliegenden Erfindung zeigen. Die Figur 2 zeigt den Fluss der Steuerinformation
509851/0988
in einem digitalen Datenverarbeitungssystera mit Mikroprogramm, wie es in dem Werk "The Best Way to Design an Automatic Calculating Machine" ("Die beste Methode zur Konstruktion eines automatischen Rechners") Manchester Univ. Computer Inaugural Conf. vom Juli 1951, Verfasser M.V.Wilkes, Verlag Ferranti Ltd., London, beschrieben ist. Dieses System enthält, ähnlich wie das System der Figur 1, die Teilsysteme für den Speicher, die Steuerung und das Ausführungs-Teilsystem (sie sind auch hier mit den Bezugsziffern 10 bzw. 12 bzw. 14 bezeichnet") und unterscheidet sich in seiner Konzeption von dem standardmässigen Universalrechner der Figur 1 durch das Vorhandensein eines Übersetzers 16 und eines zugeordneten Speichers 18 (Festwertspeicher) (ROM) (read-only memory, ROM), der zwischen dem Steuerabschnitt 12, der Befehlsworte vom Programmspeicher abgibt, und der Ausführungs-Hardware 14 angeordnet ist, die lediglich einfache Befehle ausführen kann, die auch als Mikrobefehle ("micro instructions") bezeichnet werden. Es ist zu beachten, dass diese Übersetzerfunktion nicht immer von einem abgegrenzten und von dem Steuerabschnitt getrennten Teilsystem der Hardware ausgeführt wird; dieses Teil wird in Figur 2 jedoch zur Veranschaulichung gesondert dargestellt. Es ist weiterhin zu beachten, dass auch andere Formen eines Speichers verwendet werden können, beispielsweise Lese-Schreib-Kernspeicher oderjRegister.
Der ROM-Übersetzer (Festspeicher-Übersetzer) ist eine Konzeption fur die Konstruktion von Hardware, die analog ist dem Konzept eines Unterprogramms oder Teilprogramms (Subroutine) für die Software. Jede von dem Programmspeicher über den Steuerabschnitt erhaltene und in Maschinensprache formulierte Instruktion wird von dem Übersetzer in einer solchen Weise angenommen, dass er dem Steuerabschnitt als Ausführungs-Hardware der Maschine erscheint. Für jede in Maschinensprache abgefasste Instruktion dieser Art gibt der Übersetzer 16 eme Sequenz von Mikroinstruktionen (Mikrobefehlen), die in dem ROM 18 gespeichert sind, an die Ausführungs-Hardware in einer solchen Weise ab, dass für diese die Mikroinstruktionen
509851/0986
- 10 - 7R24229
scheinbar Software von einem Programmspeicher darstellen. Diese \rt der Architektur einer Maschine mit Mikroprogramm ergibt eine Möglichkeit zum Aufbau einer Vielfalt von programmierbaren digitalen Datenverarbeitungnsystemen, welche die gleiche einfache Ausführungs-Hardware benutzen und doch fähig sind, in Maschinensprache abgefasste Instruktionen von verschiedenen Maschinen-Programmiersprachen direkt auszuführen. Zu einem gewissen Masse ist es möglich, durch Verwendung einer solchen Architektur Systeme mit anwendungsorientierten Programmiersprachen aufzubauen. Es wird jedoch eine grosse Menge an ROM-Hardware benötigt und die erforderliche Hardware mit sehr schneller Ausführung (diese wird benötigt, um die langen Sequenzen von Makroinstruktionen in einer vernünftigen Zeit auszuführen) begrenzt die Leistungsfähigkeit der Sprachen, welche von Systemen dieser \rchitektur direkt ausgeführt werden können, auf einen viel niedrigeren Wert als die Leistungsfähigkeit, welche in praktischer Weise mit der vorliegenden Erfindung erreicht werden kann.
Die Figur 3 zeigt den Fluss der Steuerinformation in einer "direkten Funktions-Verarbeitungs-Einheit" ("direct function processor") des Typs, wie er in der US-Patentschrift Nr. 3 631 401 beschrieben wird. In der Konzeption unterscheidet sich diese Direkt-Funktions-Verarbeitungs-Einheit der Figur von dem Universalrechner in Standardausführung nach Figur 1 in der Verwendung getrennter Blöcke der Ausführungs-Hardware 14a, 14b und 14c für die verschiedenen Instruktionen des Systems. Die einzelnen Blöcke der Ausführungs-Hardware sind mit Hilfe einer Instruktionssammelleitung (-Bus) 15 mit dem Steuerabschnitt 12 verbunden. Wenn ein Befehlswort aus dem Programmspeicher 10 durch den Steuerabschnitt 12 entnommen wird, dann wird es auf den Befehls-Bus abgegeben und der Block der Ausführungs-Hardware, der für diese \rt von Befehl zuständig ist, übernimmt den Befehl und führt ihn aus.
Der Lösungsweg einer Architektur dieser "Direkt-Funktions-Verarbeitungs-Einheit" ergibt eine Möglichkeit zum Aufbau von
509851/0986
programmierbaren digitalen Datenverarbeitungssystemen, wobei die Ausführung verschiedener Maschinensprachen-Befehle zur Verantwoi't lichkeit verschiedener einzelner Bereiche der Hardware des Systems gehört. Dieser Lösungsweg ergibt einen gewissen Grad der Modularität (Modulationsfähigkeit) zwecks Flexibilität zur Veränderung und eine Verbesserung der Möglichkeit zur Diagnose von Fehlern; jedoch nicht zu dem Grade, wie dies neben der umfassenden Möglichkeit zur Ausführung von Maschinensprachen mit der vorliegenden Erfindung möglich ist.
Es wird nunmehr Bezug genommen auf die Figur 4, die ein Hauptblockschaltbild eines digitalen Datenverarbeitungssystems geniäss der vorliegenden Erfindung zeigt. Dieses ist in Form einer pyramidenförmigen Hierarchie von mehreren Ebenen von Datenverarbeitungseinheiten aufgebaut, die jeweils Übersetzer-Verarbeitu ngs-Einheiten (TPU) 20 und Ausführungs-Verarbeitungs-Einheiten (EPU) 22 besitzen. Jeder TPU besitzt einen zugeordneten Speicher 21. Die verschiedenen Ebenen sind durch entsprechende Befehlssammelleitungen (Befehls-Bus) 24 miteinander verbunden oder mit Zwischenverbindungen (Tinterface) ausgestattet. Eine beliebige Zahl der Verarbeitungseinheiten TPU's und EPU's oder irgendeine Kombination dieser Verarbeitungseinheiten kann an irgendeinen Befehls-Bus im System angeschlossen sein mit der Einschränkung, dass mindestens ein TPU in jeder Zwischenebene vorhanden sein muss und dass die niedrigste Ebene normalerweise vollständig aus EPU besteht.
Der Steuerabschnitt oder die Sequenzsteuereinheit 12 besitzt einen zugeordneten Programmspeicher 10. Der Programmspeicher enthält die üblichen Binärworte in Form von Befehlen, die verschiedene Parameter definieren (d.h. die Adressenfelder und die Hinweismarkenfelder), die zur Identifizierung von Quellen und Bestimmungsorten von Operanden und Resultatdaten benutzt werden und sie enthalten weiterhin ein Bitfeld, welches die auszuführende Operation angibt. Dieses letztere Feld wird normalerweise das Operationscodefeld, oder einfacher, der Op-Code genannt. Der Op-Code ist eine Γinärzahl zwischen
5 0 9 8 5 1/0986
O und 2 (für ein Datenverarbeitungssystem mit Verwendung eines Operationscodefeldes mit N-Bit). Das Befehlswort enthält weiterhin ein Operandenfeld, das eine oder mehrere Operanden enthält, die jeweils normalerweise eine Speicheradresse einer niedrigeren Ebene (direkt oder indirekt) für die Speicherung, die Rückgewinnung oder die Übertragung von Informationen bezeichnen.
In der vorliegenden Erfindung können der Steuerabschnitt 12 und der Programmspeicher 10 aus irgendeiner der üblichen Kombinationen von digitalen logischen und Speicherbauteilen bestehen, wie man sie in den bekannten programmierbaren digitalen Datenverarbeitungssystemen findet. Der Programmspeicher kann ein Ferritkernspeicher oder ein Speicher mit einem Metalloxydhalbleiter (MOS), ein Magnetdrahtspeicher oder ein anderes ähnliches Speichersystem sein. Der Steuerabschnitt enthält weiterhin einen Programmspeicher-Adressenzähler, verschiedene allgemeine Speicher-Register, Takt-Logik und Gatterlogik usw., wie man sie üblicherweise in Datenverarbeitungssystemen findet. Ein typisches Datenverarbeitungsgerät, das im Steuerabschnitt 12 und im Programmspeicher 10 verwendet werden kann, ist der Datenverarbeitungsrechner 425 (425 Data Processing Computer) der General Electric Company. Das einzige Erfordernis bei der Einfügung eines bekannten Datenverarbeitungsgerätes in die Architektur nach Figur 4 besteht darin, dass die Batenverartoeitungseinheit einen Steuer-Scimittstellenteil zwischen dem Steueraösehnitt und dem übrigen Systeis (TPUs und EPUs) besitzt, welcher die folgenden Kriterien erfüllt:
1. ) Ein auszuführendes Befehlswort ^»ird im ein Befehlsregister in den Verbindungsteil (Schnittstelle) des Steuerabschnittes geladen.
2.) Die Inhalte des Befehlsregisters werden mit dem Befehls-Bus 24 der oberen Ebene gemäss Figur 4 verbunden.
509851/0986
3.) In dem vorliegenden System ist jede der Verarbeitungseinheiten TPU und EPU in der Lage, bestimmte Befehle auszuführen, die durch einen Bereich von Operationscodezahlen festgelegt (definiert) sind, wobei jeder Verarbeitungseinheit ein bestimmter Bereich oder Block von Operationscodezahlen zugeteilt wird. Um eine ordnungsgemässe Ausführung von nacheinander abgerufenen (zurückgeholten) Befehlsworten zu gewährleisten, wird das Operationscodefeld eines Wortes im Befehlsregister mit einer Decodierungs-Erkennungslogik verbunden, die in der Lage ist festzustellen, in welchem der verschiedenen Blöcke oder Zahlen, in die der Gesamtbereich der Operationscodezahlen aufgeteilt ist, ein bestimmter Operationscode liegt. Diese Bestimmung wird mit der Anzeige von Verarbeitungseinheiten auf einer niedrigeren Stufe verglichen, um festzustellen, ob diejenige Einheit, welche das gerade im Befehlsregister gehaltene Wort erhält, fähig ist, das Wort zu diesem Zeitpunkt zu übernehmen.
4.) Wenn ein im Befehlsregister gehaltenes Wort an eine Verarbeitungseinheit weitergegeben werden soll, welche dann nicht in der Lage ist, dieses Wort wegen eines "Besetzt-Zu Standes" zu übernehmen, dann wird eine geeignete Steuerlogik in dem Zwischenverbindungsteil den weiteren Zugriff zu Worten aus dem Programmspeicher so lange verhindern, bis diese Einheit das gerade gehaltene Wort übernimmt.
Nachstehend werden die beiden anderen Arten von Verarbeitungseinheiten (TPUs und EPUs) beschrieben. In dem System nach der vorliegenden Erfindung können in dem Programmspeicher Befehle mit Operationscode gespeichert werden, welche einen beliebigen Grad der Kompliziertheit der Ausführung beinhalten, oder sie können in dem zugeordneten Speicher irgendeines TPU in dem System zurückgehalten werden. Im normalen Verlauf werden jedoch Anweisungen, die auszuführende Operationen einer höheren Ebene definieren, in dem Programmspeicher gespeichert und solche Anweisungen, die Operationen mit einem geringerem Grad
509851/0986
der Kompliziertheit definieren, werden in den Speichern angeordnet, welche den Verarbeitungseinheiten auf den entsprechenden Ebenen in der pyramidenförmigen Architektur zugeordnet sind. Schliesslich sind die EPU gewöhnlich nur in der Lage, Anweisungen mit einem relativ niedrigen Grad der Kompliziertheit auszuführen im Vergleich mit den Anweisungen, die sich normalerweise im Programmspeicher befinden.
Jede Verarbeitungseinheit, TPU und EPU, enthält eine Decoderlogik, die mit den Leitungen für die Bit des Operationscodefeldes in ihrem Eingangs-Befehls-Bus verbunden sind, wodurch die Logik feststellt, ob ein bestimmter Operationscode innerhalb des besonderen Blocks von Ooerationseode liegt oder nicht, der dieser Verarbeitungseinheit zugeteiIt ist. Jede Verarbeitungseinheit enthält auch noch die Möglichkeit t der Einheit in dem Stettexf luesweg auf der nächst höheren Stufe durch eis "Besetzt-Zeichen" (busy signal) anzuzeigen, ob die Einheit in der Lage ist, ein Befehlswort zu übernehmen oder nicht.Jeder TPU enthält eine Erkennungslogik ähnlich derjenigen, wie sie kurz für den Steuerabschnitt 12 beschrieben wurde, welche die Eingabe von neuen Befehlen in ein Befehlsregister im TPU beherrscht.
In dem Block von Operationscodezahlen, die einem TPU zugeteilt sind, liegen zwei grundlegende Arten von Operationscode^ die bewirken, dass diese Einheit in einer von zwei Betriebsarten arbeitet. Die erste Art des Operationscode setzt einen TPU in einen Sequenzbetrieb. Bei dieser Betriebsart erzeugt der TPU eine Sequenz von einen oder mehreren Befehlen, die yon EPUs ausführbar sind oder von TPUs benutzt werden, die mit dem Äusgangsbefehls-Bus dieses Übersetzerteils Vv-x'bunden sind. Die normale Funktion dieser Sequenz besteht in der Transformation von Befehlsworten einer höheren Ebene zu Befehlsworten einer niedrigeren Ebene zur Benutzung durch eine Verarbeitunseinheit der niedrigeren Ebene. Diese Transformation wird dadurch erreicht, dass dem TPU noch ein Speicher zugeordnet ist, der eine Sequenz oder Sequenzen von Befehls-
S09851/098S
worten enthält, die während des Sequenzbetriebs ausgegeben werden.
Durch die Speicherung von verschiedenen Sequenzen können in der gesamten Architektur des Systems TPU mit gleichartiger Struktur verwendet werden. In einigen Fällen besteht der einzige Unterschied zwischen TPUs in dem Inhalt (Vorrat) ihrer jeweiligen Speicher und in dem ihnen zugeteilten Block von Operationscode. Ein typisches Beispiel für die Art und Weise, in der verschiedene Befehle höhrer Ebene in einer Sequenz durch eine Reihe von iibersetzerteilen geleitet werden, wird noch nachstehend beschrieben.
In der bevorzugten Ausfiihrungsform der vorliegenden Erfindung ist der jedem der TPU zugeordnete Speicher ein Festwertspeicher (Festspeicher) (ROM). Es können jedoch auch andere Speicher verwendet werden, beispielsweise Random-Lese-Schreib-Speicher (Lese-Schreib-Speicher mit willkürlichem Zugriff) mit Halbleitern (RAM), Koinzidenzkernspeicher, Drahtspeicher usw.
Der zweite Typ eines Operationscodes, auf welchen jeder der TPUs ansprechen kann, ist ein Direkt-Operationscode, der in dem Block der Verantwortlichkeit einer Verarbeitungseinheit liegt, die mit dem ausgangsseitigen Befehls-Bus des TPU verbunden ist und den TPU in einen Direktbetrieb setzt. In dieser Betriebsart wird der Befehl unmittelbar von dem eingangsseitigen Befehls-Bus des TPU über den ausgangsseitigen Bus des TPU an eine niedrigere Verarbeitungseinheit weitergegeben. Dieser Direkt-Operationscode wird auf dem ausgangsseitigen Befehls-Bus so lange gehalten, bis die empfangende Verarbeitungseinheit den Befehl annimmt. Die Mittel, mit denen dieses erreicht wird, sind im wesentlichen die gleichen wie im Zusammenhang mit dem Steuerabschnitt beschrieben, und sie werden noch nachstehend mit weiteren Einzelheiten erläutert. Wenn der Operationscode von der empfangenden Verarbeitungseinheit angenommen wird, dann überwacht der TPU den mit
509851/0 9 86
seinem Eingang verbundenen Befehls-Bus in Erwartung des nächsten Befehls mit einem Operationscode, der in dem Block von Operationscode liegt, für welchen diese Einheit verantwortlich ist.
Wie bereits zuvor beschrieben, liefern die TPU die Programmierungssprache der oberen Ebene, die in der Struktur nach Figur 5 in dem Verarbeitungsteil inhärent ist. Die EPU ergäben die tatsächliche Verarbeitungsfähigkeit, wie man sie normalerweise in Datenverarbeitungssystemen findet. Jeder EPU ist eine vollständig in sich abgeschlossene funktionelle Einheit, die in der Lage ist, Befehle auszuführen. Alle den EPU dargebotenen Befehle werden durch die auszuführenden Operationen (operationscode) definiert, wobei Daten verwendet werden (gewöhnlich als Ergebnis zuvor ausgeführter Befehle), die schon in Speicherelementen (in Registern oder anderen Speichern) innerhalb jedes EPU vorhanden sind. Jeder EPU enthält alle logischen und Speicherelemente, die zur Ausführung aller ihm zugeteilten Funktionen erforderlich sind (Ausführung der Befehle), die in seinem Block der Verantwortlichkeit liegen, wie er durch die Operationscode bezeichnet ist.
Es wird nunmehr Bezug genommen auf die Figur 5, die mit weiteren Einzelheiten als Blockschaltbild eine Ausführungsform der Architektur eines Systems gesiäss der Erfindung zeigt. Wie ersichtlich, ist die Architektur nach Figur 5 sehr ähnlich derjenigen nach Figur 4, Sie enthält jedoch bestimmtere Definitionen oder Bezeichnungen für die einzelnen Verarbeitungseinheiten (Übersetzer-Verarbeitungs-Einheiten und Ausführungs-Verarbeitungs-Einheiten). Der Steuerabschnitt 12 und sein zugeordneter Programmspeicher 10 sind in der gleichen Weise gezeigt, wie zuvor in Figur 4 beschrieben. Die Befehle werden von dem Steuerabschnitt 12 einem Bus (Sammelleitung) des Steuerahsefanittes (CSBUSi 26 zugeführt und gleichzeitig den TPU dargeboten, die mit diese« Bus verbunden sind* Zwei TPU, ein Makrobefehl-Steuergerät <MIC) 2B {ssaerc—instruction controller) mit zugeordnetem Speicher 30 und ein Steuergerät für
509851/0986
Zeichenverarbeitung (CPC) 32 (character processor controller) und sein zugeordneter Speicher 34 sind mit dem Bus 26 verbunden. In der Darstellung nach Figur 5 werden alle auf den CS-Bus 26 gesetzten Befehlsworte entweder von dem MIC 28 oder dem CPC 32 erkannt. (Es ist hier zu beachten, dass die in einem bestimmten System "verwendeten Operationscode nicht unbedingt fortlaufend sein müssen und die durch das vorliegende System ermöglichte Flexibilität das Auslassen von Blocks von Operationscodezahlen gestattet, so dass das System zu irgendeinem späteren Zeitpunkt leicht erweitert werden kann·)
Es wird zunächst angenommen, dass das Befehlswort ein Wort ist, das gemäss der Art des Befehls auf dem Bus von dem MIC erkannt wird. Gemäss der Art des Befehls auf dem Bus, d.h. ob ein Sequenzoperationscode oder ein Direkt-Operationscode vorliegt, wird der MIC 28 bei einem Direkt-Operationscodewort den Befehl entweder unmittelbar von dem CS-Bus .(5 auf einen MIC-Bus 36 weitergeben oder diese Instruktion als einen Befehl der Sequenzbetriebsart erkennen. Im letzteren Falle wird der MIC 28 von seinem zugeordneten Speicher 30 eine Sequenz oder Abfolge von Befehlsworten abrufen, die Operationscode und/oder Operanden enthalten, und sie dem MIC-Bus 36 anbieten. In jedem Falle wird der nunmehr auf dem MIC-Bus 36 vorhandene Befehl gleichzeitig allen Verarbeitungseinheiten dargeboten, die mit diesem Bus verbunden sind. In Figur 5 sind die weiteren Verarbeitungseinheiten als zwei zusätzliche Übersetzereinheiten dargestellt, die als Befehlssteuereinheit (-Leitwerk) für Ereignisverarbeitung 38 (EPIC) (events processor instruction controller) und als Datenspeichersteuerung (DMC) 40 (data memory controller) bezeichnet sind. Da hier die Verarbeitungseinheiten TPU sind, besitzen sie jeweils einen Speicher 40 bzw. 44.
Der EPIC 38 und der DMC 42 werden jeweils den Operationscode des Befehlsworts auf dem Bus 36 abfragen, um festzustellen, ob dieses Wort in dem zugeteilten Block dieser Einheit liegt. Auch hier wird der Befehl unmittelbar durch den erkennenden
509851/0986
TPU durchgeleitet und entweder einem EPIC-Bus oder einem Datenspeicher (DMU) 48 (data memory unit) dargeboten, wenn der Operationscode des Befehls auf dem MIC -Bus 36 ein Operationscode für Direktfunktion ist. Andererseits wird der für den Befehl verantwortliche TPU beginnen, eine Sequenz von aus seinem Speicher entnommenen Befehlsworten auf seine \usgangsleitungen in der gleichen Weise wie beim MIC 28 setzen, wenn das Befehlswort einen Sequenzbetrieb bestimmt (d.h. ein Befehl mit Sequenzoperationscode). Die Befehle, welche dem EPIC-Bus 46 und dem DMU 48 dargeboten werden, sind auf der niedrigsten Ebene in der Sprache des Systems gemäss der Erfindung. Diese Befehlsworte sind Befehlsworte eines Typs, welcher die EPU veranlasst, die Anweisung auszuführen, die
durch den Operationscode dieses Befehls bestimmt ist.
In Figur 5 sind mit dem EPIC-Bus ein Realzeit-Taktgeber 50 (RTC) (real-time clock) und eine Boole'sehe Logik-Einheit (BLU) 52 (Boolean Logic unit) verbunden. Der Realzeit-Taktgeber kann eine Bauform besitzen, wie man sie normalerweise in Datenverarbeitungssystemen findet, programmierbar sein und ein Ausgangssignal abgeben, das dazu benutzt werden kann, Taktfunktionen auszuführen, die Datenverarbeitung zu steuern und für bestimmte Funktionen eine Zeitausgabe zu erhalten, Der BLU 52 enthält alle notwendige Hardware (Register, Speicher T Steuerung, und Decodierungslogik usw.) zur Ausführung der Booleschen Funktionen. Eine ausführliche Beschreibung des BLU und seiner Beziehung zum übrigen System als Beispiel der Funktionsweise eines EPU in dem System wird noch später in dieser Beschreibung gegeben.
Der DMU 48 ist in Figur 5 der einzige Empfänger von Befehlsworten vom DMC 42 und ist mit demselben über einen DMC-Bus verbunden. Der DMU 48 dient als zeitweiliger Speicher für Systemdaten und auch noch als primäre Steuereinheit für die Zwischenverbindung oder als EPU zur Steuerung der Ubertri; .ung (Transfer) von Daten zwischen dem System gemäss der vorliegenden Erfindung und einer äusseren Anlage, die hier durch einen
509851/0986
Block 56 angedeutet ist. Wie dargestellt, besteht der DMU 48 aus zwei Speichern, einem virtuellen Speicher 58 für diskrete Ereignisse (VDEM, virtual discrete event memory) und einem Random-Speicher 60 (RAM, random access memory).
Eine ausführliche Beschreibung des DMU 48 und seiner Arbeitsweise wird noch nachstehend gegeben. Zusammengefasst, erhält der DMU 48 unter Programmsteuerung über einen Bus (Sammelleitung) 64 von den Messfühlerausgängen 62 der Anlage 56 Eingangssignale und ein DMU liefert Ausgangssteuersignale über einen Bus 68 zu Steuereingängen 66 der Anlage. Typischerweise sind in einem bystem der in der Figur 5 dargestellten Art die an den Messfühlerausgängen 62 und an den Steuereingängen 66 der Anlage 56 vorhandenen Signale repräsentativ für diskrete Ereignisse und jedes Signal wird gleichzeitig auf einer einzigen digitalen Signalleitung dargeboten. Ein solches Signal wird als eine Boole'sehe Variable bezeichnet, die durch Tibergangswerte zwischen einer logischen Eins zu einer logischen Null unterschieden ist und eine Information darstellt, die für den Betrieb der Prozessanlage notwendig ist. (Offensichtlich können aus mehreren Bits bestehende digitale Worte, welche die Ausgangssignale von Analog-Digital-Konverter und/oder die Eingangssignale von Digital-Analog-Konvertern darstellen in ähnlicher Weise behandelt werden). Diese Art einer digitalen Information ist typisch für viele gewerbliche und militärische Anwendungsfälle, bei denen eine Datenverarbeitungseinheit zur Steuerung für oder zur Steuerung durch eine Anlage auf der Basis von Befehlen und Bestätigungsmeldungen (Rückmeldungen) benötigt wird. Bestimmte Beispiele von Bauteilen innerhalb der Prozessanlage, die entsprechend ihrem Betriebsverhalten auf diese Form digitaler Signale ansprechen, sind Motoren (Motor Ein-, Motor Aus, ist der Motor eingeschaltet) Magnetspulen, Steuerventile für Flüssigkeiten und Gase und die Betätigung verschiedener Steuerstufen zu verschiedenen Zeitpunkten in einem chemischen Verfahren. Da das System gemäss der vorliegenden Erfindung die Fähigkeit besitzt, solche Prozcdsanlagen zu steuern, besitzt die Daten-
509851/0986
Verarbeitungseinheit die Fähigkeit zur Steuerung durch solche Einrichtungen. Beispielsweise könnte die Prozessanlage sehr gut ein für Trainingszwecke verwendeter Simulator sein, wodurch der Simulator Steuerschalter und Anzeigeeinrichtungen für einen Bedienungsmann besitzen kann zur Eingabe von Informationen an den Rechner, um Personen im Betrieb eines bestimmten Systems auszubilden, beispielsweise eines Raketenabschusssystems.
Der zweite Hauptzweig der Abbildung nach Figur 5 kann als eine Zeichen-Datenverarbeitungseinheit (character data Processor) bezeichnet werden zur Handhabung der Verbindungsstelle zwischen Mensch und Maschine, die mit dem zuvor erwähnten Steuerteil für die Zeichenverarbeitung (CPC) 32 beginnt. Der CPC 32 liefert ausgangsseitige Befehlsworte an einen CPC-Bus (Sammelleitung) 70 in der gleichen Weise wie die übrigen TPUs. Vier Verarbeitungseinheiten, ein TPU und drei EPUs, sind hier mit dem CPC-Bus 70 verbunden. Die EPU enthalten eine Daten-Verknüpfungseinheit 72 (Datenübertragung) (DLU, data link unit), eine Zeichenpuffereinheit 74 (CBU, character buffer unit) und eine alphanumerische Anzeigeeinheit 76 (ANDU) (alpha numeric display unit) mit einer geeigneten Zwischenverbindungslogik 78 (interface logic). Der TPU in diesem Zweig der Anordnung nach Figur 5 ist als eine Bandsteuerung 80 (TCU, tape control unit) bezeichnet und besitzt einen zugeordneten Speicher 82. Mit dem TPU ist ein EPU verbunden und erhält von ihm seine Befehlsworte* Gemäss der hier verwendeten Terminologie besteht streng genommen dieser EPU n«r aus einer Band-Zwischenverbindung 84 <TIU) (tape interface unit), die Signale mit einer Band-Kasetten-Einheit 86 (tape casette unit) austauscht, die ausserhalb der Datenverarbeitungseinheit wie die Verfahrensanlage 56 angeordnet ist. Für die Erläuterung ist es jedoch manchmal zweckmässig, die TIU 84 und die Band-Kassetten-Einheit 86 kollektiv als einen EPU aufzufassen, wie dies durch den Kasten 88 mit gestrichelter Umrandung angedeutet ist« Unter Programmsteuerung durch den Steuerabschnitt 12 über den CPC 32 ist die Band-Kassetten-
509851/0986
Einheit in der Lage, Informationen oder Programme in die Systemstruktur nach Figur 5 einzulesen und Informationen von dem TCU 80 über den TIU 84 zur Speicherung auf der Band-Kassetten-Einheit aufzunehmen.
Die alphanumerische Anzeigeeinheit 76 (ANDU) ist durch ihre Zwischenverbindungs-Logik 78 in der Lage, verschiedene Informationen unter Programmsteuerung durch den CPC 32 anzuzeigen. Nachstehend wird noch eine ausführliche Beschreibung handelsmässig erhältlicher alphanumerischer Anzeigegeräte gegeben und darüber, wie diese Anzeige mit ihrer Zwischenverbindungs-Logik an die Architektur des vorliegenden Systems angepasst werden kann.
Die Datenübertragung 72 (DLU) bildet eine Kommunikationsverbindung mit Anlagen ausserhalb des vorliegenden .Systems, d.h. einem Tastaturfeld eines ASCII-Gerätes (ASCII, American Standard Code for Information Interchange). Ein solches Tastaturfeld ist eine Möglichkeit zur Einspeisung von Daten in das System zur weiteren Behandlung, beispielsweise zur Speicherung auf der Band-Kassetten-Einheit SG oder zur Anzeige auf dem ANDU 76. Der DLU kann auch eine Möglichkeit zum Informationsaustausch mit einem weiteren Datenverarbeitungssystem schaffen.
Die Zeichen-Puffereinheit 74 (CBU) wird als ein zeitweiliger Speicher verwendet und kann beispielsweise dazu verwendet werden, Daten mit der Band-Kassetten-Einheit 86 auszutauschen. Ein üblicherer Verwendungszweck für eine CBU liegt in der Speicherung von Zeichen eines ASCII-Tastenfeldes, das in Verbindung mit dem ANDU 76 für die Handhabung der Anzeige verwendet wird (Versch ebung, Zeilenschaltung usw.).
Die Figur 6 zeigt mit weiteren Einzelheiten die Konzeption der Struktur einschliesslich des grundlegenden inneren Flusses der Steuerinformation eines typischen TPU, wie er allgemein in den Figuren 4 und 5 beschrieben wurde. Die in Figur 6 in
509851/0986
Klammer gesetzten Bezugsziffern deuten die Anzahl der Bit an, die von den parallelen Informationssteuerleitungen zwischen den verschiedenen Bauteilen des TPU übertragen werden. Die Anordnung nach Figur 6 enthält einen oberen Befehls-Bus VO, der Eingangssignale zum TPU liefert. Wenn beispielsweise der TPU durch den MIC 28 der Figur 5 gebildet wird, dann entspricht der Bus 90 dem CS-Bus 26. Der Bus 00 enthält sowohl Operationscode als auch Operanden, wie dies durch die in Klammern gesetzten Bit für den Operationscode und die 24 Bit für den Operanden gezeigt ist. In der nachstehenden Beschreibung werden Sammelleitungen (Bus) für Onerationscode und Sammelleitungen für Operanden erörtert. Es ist jedoch zu beachten, dass sie zusammengenommen eine Befehlssammelleitung (Befehls-Bus) bilden, die eine Anzahl von Bit gleich der Summe der Anzahl von Bit auf dem Bus für O^erationscode und dem Bus für Operanden enthält»
Es sei der erste Fall eines direkten Operationscode betrachtet, d.h. des Typs eines Operationscode, der dazu führt, dass ein Befehlswort ohne Modifikation unmittelbar durch den TPU hindurchgeleitet wird. Das Taktimpuls-Diagramm (Zeitdiagramm) für die Taktgabe des Direktcodes des TPU nach Figur 6 ist in Figur 7 gezeigt. Vor der Erläuterung der ausführlichen Taktfolge wird jedoch zunächst der Fluss des Operationscodes durch den TPU nach Figur 6 beschrieben.
In der gezeigten Form enthält das System nach der Erfindung ein Taktsystem, das durch den Block 105 dargestellt ist (Systemtakt-Generator), der den Basistakt für das System liefert. Der Generator 105 kann aus einem freilaufenden gesteuert en Oszillator zur Erzeugung einer Folge von periodischen Impulsen auf einer Leitung 107 bestehen« Der Generator liefert auch noch zusätzliche Taktsignale T_ bis T3 und Taktphasensignale 0. - 0.. Die Beziehungen der verschiedenen aus dem Generator 1Ο5 erhaltenen Signale sind in Figur 7 gezeigt. Die Signale T bis T~ und 0^ bis <5. werden aus dem ebenfalls in Figur 7 gezeigten Basis-Taktsignal durch an sieh bekannte
S098S1/0986
Logikanordnungen mit Gatter und Flip-Flop abgeleitet.
Es wird erneut Bezug genommen auf Figur 6. Alle Befehlsworte, die auf dem oberen Bus 90 erscheinen, verweilen mindestens zeitweise in einem Befehlsregister 96, wobei sich der Operationscode und der oder die Operanden in den Teilen 92 bzw. 94 befinden. Der Operationscode des Befehls wird über einen Bus 100 einer geeigneten Decoder-Logik 102 zugeleitet. Die Decoder-Logik 102 liefert drei Ausgangssignale - "Sequenzcode", "Direktcode" und "Im TPU-Block". Diese Signale werden durch die nachstehenden Gleichungen definiert:
Sequenz-Code = N. < OP-Code <N„
Direkt-Code = N0 ■<- OP-Code< N0 Ίη TPU-Block = (Sequenz-Code)+(Direkt-Code) = N1 <z OP-Code
Darin bedeuten N-, N2 und N3 üie Grenzzahlen der Operationscode, welche dem fraglichen TPU zugeteilt sind.
Es sei angenommen, dass der Befehl im Register 96 in den vor geschriebenen Bereichsgrenzen der Verantwortlichkeit des TPU liegt. Dann wird das Signal "Im TPU-Block" erzeugt und einem Takt- und Steuerlogik-Block 104 zugeführt. Der Block 104 besteht aus geeigneten Gattern, die so miteinander verbunden sind, dass sie richtige Signale erzeugen, wie diet· noch beschrieben wird und wie sie durch die verschiedenen Boole1 sehen Gleichungen definiert sind, die in der nachstehenden Tabelle 1 angege jn sind.
509851 /0988
Tabelle
SET "TPU-BESETZT"
BEFEHLSREGISTER VERRIEGELN
RESET "TPU BESETZT"
STOP
IM TPU BLOCK.ZU . GRUNDTAKT "TPU BESETZT"
= (STOP .
. RÜCKMELDUNG "UNTERER TPU BESETZT")
(DIREKTCODE . RÜCKMELDUNG "UNTERER TPU/EPU BESETZT" . 02)
ROM IN SEQUENZ AUF LETZTEN BEFEHL IN DER SEQUENZ (KENNZEICHENBIT) (FLAG BIT)
Z AHLER-INKREMENT
PUFFER-VERRIEGELUNG LADEN
ZÄHLER LADEN DIREKl'-CODE . T3 .
DIREKT-CODE . T2 . 02
"TPU BESETZT" .
(ADRESSE = O )
SET SCHALTER FREIGABE FLIP-FLOP
RESET SCHALTER FREIGABE FLIP-FLOP
PUFFER-VERRIEGELUNG + (DIREKT CODE . T1
BÜCKMELDUNG "UNTERE TPU/EPU BESETZT"
SCHALTERWAHL = SEQUENZ - CODE
RÜCKMELDUNG "UNTERER TPÜ/EPU BESETZT"
= y SIGNAL "UNTERE EINHEIT
1 ' 2
BESETZT" WAR NIEDRIG, IST JETZT HOCH
Bei Vorhandensein des Signals "Im TPU-Bloek" liefert der
Block 1O4 ein Signal «SET" TPÜ-BESETZT" <TPU BUSY), das
einen Flip-Flop für die Anzeige "TPU Besetzt" in den durchgeschalteten Zustand (SET) setzt, so dass er auf der Leitung !OS ein Signal "TPU Besetzt" liefert. Dieses Signal wird den Inhalt des Befehlsregisters 96 verriegeln und wird ebenfalls
503851/0988
noch einem TPU auf einer höheren Ebene oder dem Steuerabschnitt zugeleitet, um die Annahme des Befehls anzuzeigen.
In dem vorliegenden Beispiel wird zunächst angenommen, dass der Operationscode im Register 96 ein DirektOperationscode ist. Dabei wird dann der gesamte Befehl von dem Befehlsregister 96 über den Schalter 110 unmittelbar an die nächst niedrigere Sammelleitung 98 (Bus) abgegeben. Der Schalter 110 wird durch ein Signal "Freigabe des Schalters" von einem Flip-Flop 112 freigegeben (befähigt), dessen Zustand durch die in Tabelle 1 angegebenen Gleichungen bestimmt wird.
Die Figur 8 zeigt die Beziehung zwischen den Signalen in der relativen Reihenfolge des Auftretens der verschiedenen Signale, die bei Ausführung eines Befehls mit Direkt-Operationscode durch den TPU benutzt werden. Wenn ein Operationscode auf dem oberen Befehls-Bus 90 erscheint und der TPU nicht "Besetzt" ist, ("TPU Besetzt"-Signal = 0), dann erkennt die Decoder-Logik, dass der Operationscode innerhalb des Blocks von Operationscode des TPU liegt und dass dies ein Direkt-Operationscode ist. Diese Erkennung löst das Signal "TPU Besetzt" aus, welches das Befehlswort im Register 96 verriegelt. Sobald dieses Signal "TPU Besetzt" entsteht, wird der Befehl von dem oberen Bus 90 durch den TPU oder den Steuerabschnitt weggenommen, welcher diesen oberen Bus steuert. Der BefehlTüurch die Freigabe (enabling) des Schalters 110 (Figur 6) auf den unteren Bus 98 gt etzt. Dies geschieht durch Erzeugung eines Signals "Schalterwahl" von dem Logikblock 104, das dem Schalter 110 über eine Leitung 126 zugeführt wird. Wie in Figur 8 gezeigt, ist das Signal "Schalterwahl" auf dem logischen Wert 0 und gestattet die Überführung des Operationscode vom Register 96 auf den unteren Bus 98. Das Befehlswort wird nun auf dem unteren Bus so lange gehalten, bis der EPU oder TPU, welcher für den Block von Operationscode verantwortlich ist, in dem dieser Operationscode liegt, den Operationscode aufnimmt und seinerseits sein Signal "Besetzt" erzeugt.
509851 /0986
Sobald das entsprechende "Besetzt"-Signal von einer unteren Ebene (wie dies durch die Decoder-Logik 114 für den Operationscode bestimmt und durch den Schalter MPX gewählt wird) erzeugt wird und der TPU-Taktsteuerlogik 104 dargeboten wird, kann der TPU das vorhandene Befehlswort von dem unteren Bus dadurch wegnehmen, dass der Schalter 110 gesperrt wird, da die Erzeugung des "Besetzt -Signals" andeutet, dass das Befehlswort von dem richtigen EPU oder TPU verriegelt oder festgehalten wurde, der durch Erzeugen seines "Besetzt-Signals" angesprochen hat.
Da dies ein direkter Operationscode ist, ist der Vorgang im TPU gemäss der Gleichung "Reset (Rückstellung) "TPU Besetzt" der Tabelle 2 abgeschlossen und das Signal "TPU Besetzt" wird aufgehoben. Zum gleichen Zeitpunkt, in dem das Signal "TPU Besetzt" aufgehoben wird, werden die beiden Decodierungssignale ("Im TPU-Block" und "Direktcode") ebenfalls aufgehoben.
Figur 8 zeigt den zeitlichen Verlauf für die Weitergabe eines Befehlswortes mit Direkt-Operationscode durch einen TPU zu einer Verarbeitungseinheit (EPU oder TPU), die nicht besetzt war. Wenn die Verarbeitungsexnheit besetzt war, als der Schalter freigegeben wurde, dann wurden der Operationscode und der Operand auf dem unteren Bus so lange gehalten, bis die Verarbeitungsexnheit in der Lage war, den Operationscode und den Operanden zu übernehmen und dies durch sein Signal "Besetzt" anzuzeigen.
Der Fluss der Steuerinformation in einem TPU während der Ausführung eines Befehls mit Sequenzoperationscode wird ebenfalls unter Bezugnahme auf Figur 6 und das Taktimpuls-Diagramm der Figur 9 erläutert, das ähnlich ist dem Diagramm nach Figur 8, Das Befehlswort wird im Befehlsregister 96 in der gleichen Weise verriegelt wie dies vorstehend für den Fall eines Befehls mit Direkt-Operationseode beschrieben wurde. Bei der Decodierung des Operationscodes des Befehls im
509851/0386
Register 96 als Sequenzbefehl gibt die Logik 104 ein Signal "Schalterwahl" entsprechend einer binären 1 auf einer Leitung 126 ab und bewirkt, dass der Schalter 110 den Inhalt einer Pufferverriegelung (Register) 124 auf den unteren Bus 98 weitergibt.
Wie aus den logischen Gleichungen für die Steuerung des TPU aus Tabelle 1 ersichtlich, wird ein Signal "Zähler Laden" erzeugt, um eine voreingestellte Adresse von einem voreingestellten Speicher 120 durch Gattersteuerung in einen Zähler 118 zu laden (überführen) (load).Der Speicher 120 enthält ein Wort für jeden Sequenz-OperationscoUe, für den der TPU verantwortlich ist, das dazu benutzt wird, den Zähler 118 auf die Startadresse tuner vorgeschriebenen Sequenz von Befehlsworten einzustellen, die in einem Sequenzspeicher 122 gespeichert sind. Bei Vorhandensein der Zähleradresse liefert der Speicher 122 den Inhalt der adressierten Stelle an eine Puffer-Verriegelung 124. Die Puifer-Verriegelung wird durch ein Signal "Puffer-Verriegelung Laden" geladen, das über eine Leitung 128 von der Takt- und Steuerlogik 104 geliefert wird. Zu diesem Zeitpunkt wird das erste Befehlswort der Sequenz auf den unteren Bus 98 überführt. Die Puffer-Verriegelung 124 ist nicht unbedingt erforderlich für die Konstruktion eines TPU. Sie ist jedoch sehr brauchbar für die Steigerung des Durchsatzes des TPU. D.h. ein Befehlswort kann in der Puffer-Verriegelung gehalten werden, während ein nachfolgender Befehl aus dem Sequenzspeicher 122 abgerufen wird. Wie aus dem Taktimpuls-Diagramm des Sequenzcodes (Figur 9) und aus sn logischen Gleichungen für die Taktsteuerung des TPU (Tubelle 1) ersichtlich ist, wird der Zähler um 1 weitergeführt (incremented), sobald der Operationscode des ersten Befehlswortes der Sequenz von Befehlen in der Puff« Verriegelung 124 gespeichert ist, um auf diese Weise an den Sequenzspeicher die Adresse für das nächste Befehlswort in der Sequenz zu liefern. Wie durch die Gleichungen nach Tabelle 1 gezeigt, wird das Signal "Zähler inkrement" (?ur Weiterführung des Zählers um 1) bei Vorhandensein eines
509851 /Π986
Signals "Direktcode" und T3 und 03 erzeugt. Wenn keine Puffer-Verriegelung benutzt würde, dann würde der Zähler erst dann weitergeschaltet, wenn der Befehl auf dem unteren Bus durch die Verarbeitungseinheit (TPU oder EPU) angenommen wird, die für den Operationscode dieses Befehls verantwortlich ist.
Da jeder Operationscode (Befehl) in Sequenz aus dem Sequenzspeicher 122 ausgelesen und von der mit dem unteren Bus 08 verbundenen Verarbeitungseinheiten angenommen wird, wird der Zähler 118 um 1 aufwärts gezählt und der nächste Operationscode in der Sequenz von Operationscode wird in der Verriegelungseinheit gespeichert. Wenn das Signal "Schalter Freigabe" auftritt, dann wird der Inhalt der Puffer-Verriegelung 124 auf den unteren Bus 98 gesetzt.
Wenn der letzte Befehl in einer Sequenz aus dem Seqtienzspeicher 122 ausgelesen wird, dann bewirkt ein Kennzeichenbit (flag bit) in diesem Befehl ein «Stop^-Signal auf einer Leitung 130 zur Takt- und Steuerlogik 104. Wie durch die Gleichung "Reset TPU-Besetzt" in Tabelle 1 gezeigt, stellt das "Stop"-Signal im Zusammenwirken mit einer Anzeige "Unterer TPU/EPTJ Besetzt" den Flip-Flop 1O6 für das Signal "TPU Besetzt" mit dem Auftreten des Signal 0„ zurück. Der TPU nach Figur 6 ist jetzt in einem Zustand zur Annahme des nächsten Befehlswortes, das auf dem oberen Bus 90 vorhanden ist.
Es wurden vorstehend häufig "Besetzf'-Signale erwähnt, die aus Verarbeitungseinheiten (TPU und EPU) auf einer niedrigeren Ebene empfangen werden, und es wurde weiterhin die Rolle dieser Signale beim Betrieb eines TPU erwähnt, Grundsätzlich kennzeichnen die Zustände dieser "Besetzf-Signale die Fähigkeit einer Verarbeitungseinheit, ein Befehlswort anzunehmen. Man wird sich aus der Beschreibung der Figur 6 erinnern, dass der Operationscode in der Logik 114 decodiert wurde und dass diese Decodierung diejenige niedrigere Ein-
509851/0986
heit bezeichnet, für die ein Befehlswort bestimmt ist. Diese Identifizierung wird angedeutet durch die Darstellung mehrfacher Leitungen zwischen der Decoderlogik 114 für den Operationscode und den MPX-Schalter 116. Soweit die Signale "BESETZT" von den unteren Ebenen auf einzeln bezeichneten Leitungen nach oben geführt werden, ergibt eine einfache Anwahl von Leitungen durch den Ausgang der Logik 114 im wesentlichen die Fähigkeit der Einheiten der niedrigeren Ebene zur Annahme eines Befehlswortes.
In der praktischen Ausführung wird ein hochentwickelteres System verwendet. Dieses System erfasst eine Änderung des richtigen Signals von einer niedrigeren Ebene von einem Zustand "Nicht Besetzt" zu einem Zustand "Besetzt", um eine positivere Anzeige dafür zu erhalten, dass die Einheit der unteren Ebene ihren Befehl erhalten hat. Wie vorstehend angedeutet, führt der Empfang dieser Kombination von Signalen zur Erzeugung eines Signals "Unterer TPU/EPU Besetzt", das seinerseits die Änderung des Befehlswortes gestattet, das von dem TPU auf seinen Ausgangs-Bus gesetzt wird.
Aus der Figur 6 ist ersichtlich, in welcher Weise dies bei der dargestellten bevorzugten Ausführungsform der Erfindung erreicht wird. Wie dort gezeigt, ist der Ausgang des Schalters 116 über die Leitung 136 mit einem ersten Flip-Flop des D-Typs verbunden. (Ein Flip-Flop des Typs D ist ein Flip-Flop, der seinen Schaltzustand bei Impulssteuerung durch ein Trigger-Signal so ändert, dass er dem Zustand an seinem Eingang nachfolgt). Das Ausgangssignal des D-Flip-Flop 132 stellt den Ausdruck 11Y1" in den Gleichungen der Tabelle 1 dar und bildet auch noch das Eingangssignal eines zweiten Flip-Flop 134 des D-Typs. Der Ausgang des Flip-Flop 134 ist der Ausdruck "Y2" ("Y2") der Gleichung. Das Trigger-Signal für jeden der Flip-Flop ist das Grundtaktsignal von dem Takt-Generator 106 des Systems.
Das Ausgangssignal "Unteres gewähltes Besetzt" des Schal-
509851/0986
ters 116, welches das Eingangssignal zum Flip-Flop 132 bildet, ist das Ergebnis eines Wahlvorganges als Folge des Ausgangssignals der Decoderlogik 114 (dieses wurde aus dem Operationscode des Befehls erhalten, der nunmehr auf dem unteren Bus 98 vorhanden ist) und es wird ein Signal auf der Leitung 136 geliefert, das dem Zustand "Besetzt" der Verarbeitungseinheit entspricht, die für den jetzt auf der Sammelleitung 98 befindlichen Befehl verantwortlich ist. Diese verantwortliche Einheit wäre "Nicht Besetzt" gewesen, wenn der derzeitige Befehl auf dem Bus 98 vorhanden sein soll. Daher führt die Leitung 136 eine binäre 0 und die Flip-Flop 132 und 134 werden zurückgestellt (reset) (Y1 = 0 und Y9 = 1). Wenn die verantwortliche Einheit das Befehlswort von dem Bus 98 annimmt, dann wird der Zustand ihres Signals "Besetzt" auf eine binäre 1 geändert und dies führt zu einer Änderung des Signals auf der Leitung 136 und bewirkt ein Durchschalten (set) des Flip-Flop 132 mit dem Auftreten eines Basis-Taktimpulses (Y1 = 1). Die Gleichung (Tabelle 1) für das Signal "Unterer TPU'EPU Besetzt" wird jetzt durch das Vorhandensein der Signale Y- und Y2 am Eingang der Takt- und Steuerlogik 104 erfüllt. Zum Zeitpunkt des nächsten Basis-Taktsignals wird der Flip-Flop 134 durchschalten (set) (Y2 = 0) und dadurch das Signal "Rückmeldung Unterer TPU/EPU Besetzt" sperren.
Wenn das Signal "Unterer TPU/EPU Besetzt" aufgetreten ist, dann werden die beiden Signale "Reset Schalterfreigabe Flip-Flop" und "Reset TPU Besetzt" gemäss den Gleichungen der Tabelle 1 erzeugt. Das nächste Befehlswort wird auf den unteren Bus 98 gesetzt.
Figur 10 zeigt ein Taktimpuls-Diagramm für die vorstehenden Arbeitsschritte.
In der bevorzugten Ausführungsform der vorliegenden Erfindung wird die Schaltung vorzugsweise aus integrierten Schaltkreisen aufgebaut. Diese integrierten Schaltungen sind samt-
809851/0986
lieh handelsmässig erhältliche Einrichtungen von bekannten Herstellern. Die Arten von Bauelementen, ihre Menge und die Hersteller der Bauelemente werden im Anhang A für die Hauptbestandteile des TPU in Figur 6 gegeben. Nicht aufgeführt sind die einzelnen Flip-Flop 106 und 112, 132 und 134, der Schalter 116 und die Decoderlogik 114, die alle an sich bekannte Bauelemente darstellen.
Die Vorteile der vorliegenden Erfindung hinsichtlich der Software und des Systems werden möglich gemacht durch die Verwendung von TPU, die ähnlich sind dem im Zusammenhang mit Figur 6 beschriebenen TPU, in Verbindung mit einer Vielzahl von Ausführungsverarbeitungseinheiten (EPU), die mit diesen TPU in Verbindung stehen. Unter Bezugnahme auf Figur 5 wird eine beispielhafte Ausführungsform eines EPU anhand der Boole'sehen Logikeinheit 52 (BLU) beschrieben. Der BLU arbeitet gemäss Befehlen, die ihm von einem Befehlssteuerteil für das Ereignis-Verarbeitungsgerät (EPIC) 38 über einen EPIC-Bus 46 zugeführt werden. Der EPIC ist ein typischer TPU, wie er vorstehend in Verbindung mit Figur 6 beschrieben wurde.
Der BLU ist in Figur 11 in Form eines Blockschaltbildes gezeigt. In der nachstehenden Beschreibung der Arbeitsweise von zwei Arithmetik-Logik-Einheiten ALU 1 und ALU 2 (arithmetic Logic units) in dem BLU der Figur 11 wird noch auf die Figuren 12 und 13 Bezug genommen. Weiterhin zeigt die Figur 14 Bitmuster für eine Vielzahl von Steuerworten, die in einem Mikro-Code-Generator (ROM) (Festspeicher) in Figur 11 gespeichert sind. Diese Steuerworte werden aus dem Mikro-Code-Generator als Ausgangssteuersignale zur Steuerung der Arbeitsweise des BLU gemäss den Operationscode nach Figur 14 ausgelesen. Die Figuren 15 und 16 geben eine Aufstellung der 32 Bit, die in jedem der Worte des Mikro-Code-Generators (ROM) enthalten sein können, zusammen mit einer Beschreibung dieser Bit und der von ihnen ausgeführten Funktionen. Die Figur 17 enthält eine Liste der Operationscode (40 bis 77), f · welche der BLU verantwortlich ist. Diese Operationscode werden zur Adressierung des ROM (Festspeicher) des Mikro-
5098S1 /0986
- 32 Code-Generators verwendet.
Die Figur IS zeigt ein Grundtaktdiagramm und die Beziehungen zwischen den Hauptsignalen, die während der Ausführung verschiedener Befehle durch den BLU erzeugt werden. Der BLU enthält auch noch eine Steuer- und Takt logik und eine Code-Gültig-Detektor-Logik (Detektorlogik für die Feststellung der Gültigkeit des Code), deren Struktur durch die Gleichungen der nachstehenden Tabelle 2 definiert ist, die noch mit dem weiteren Fortgang dieser Beschreibung iss einzelnen näher definiert werden.
Tabelle 2
Steuer- 8ε Takt-Logik SET BLU BESETZT - CODE GÜLTIG * BASIS TAKT * TQ
SET BLU BESETZT = BASIS TART . T3
SCHREIBEN = T, + T0
AUSFÜHREN - T3 · BASIS TAKT
CODE GÜLTIG Detektor
CODE GÜLTIG = OP-Code ^ N1 - OP-Code > N-
— 4 — 5
Jeder AnwendungsfallT für den ein EPU ausgelegt ist, ergibt sich aus der Erkenntnis der Aufgaben, die zur Erzielung einer bestimmten Funktion durchgeführt werden raüssen» In dem Falle des BLU ergab sich die Konstruktion aus der Erkenntnis, dass der Hauptteil der Aufgaben einer diskreten Informationsverarbeitung, welche bei Realzeit-Steuersystemen des zuvor ±m gusaasenfaang ait den ¥erfahressanlagen nach Figur S beschriebenen Typs auftreten, Sequenzen von Transformationen der
509851/0386
Booleschen Algebra an willkürlichen Zahlen von Binärgrössen beinhalten, die verschiedene Ereignisse darstellen.
Obwohl diese binären Grossen gewöhnlich zur Speicherung in Worte mit mehreren Bits gefasst werden, werden sie in der Regel nur einzeln nacheinander verarbeitet mit Hilfe von Anweisungen für die Bit-Manipulation in der Datenverarbeitungseinheit, beispielsweise für eine Maskierung, Verschiebung nach rechts, Verschiebung nach links usw. Durch Definition einer Befehlsgruppe, die Gruppen dieser binären Grossen als einzelne Variable behandelt, wird der Datendurchsatz an Datenverarbeitungseinheiten erhöht durch die Parallelität des Informationsflusses. Weiterhin werden die Kosten und die Kompliziertheit der Software dadurch verringert, dass die Datenverarbeitungssprache der Datenverarbeitungseinheit auf eine höhere Ebene angehoben wird.
Die Entwicklung eines Satzes von Instruktionen oder Befehlen für den BLU beruht auf dem Konzept, Worte mit N-Bits als N-dimensionale Vektoren zu behai, -In, die in einem "Galoisfeld", Modulo 2, definiert sind. Dieser Satz von Befehlen ergibt eine universal programmierbare Einrichtung zur Erzeugung jeder beliebigen Funktion der' Booleschen Algebra (f^ - f ) mit einer beliebigen Anzahl von Variablen. Der erste Befehl kann wie folgt geschrieben werden, wobei "+" das logische "ODER" und "." das logische "UND" (AND) bezeichnet und weiterhin der bearbeitete Vektor mit Jb bezeichnet wird und Komponenten b..-b„ besitzt:
fl Ql» m1,m2,...mN) = (nij · b.j) + (m2 . b2) + ...
Die Parameter m- - m„ bilden eine Maske auf b in einer solchen Weise, das b. in der Funktion enthalten ist, wenn m. eine logische 1 ist, und b. keine Auswirkung auf die Funktion besitzt, wenn m. eine logische 0 ist. Daher erzeugt die Funktion f- (.) die logische Summe (ODER-Bildung von Bit) von
509351/0986
irgendeiner beliebigen Zahl von willkürlichen Komponenten von l>. Der zweite Befehl ist "dual" zum ersten Befehl und wird wie folgt definiert:
ra
In diesem letzteren Befehl trägt b. zum Ausgangssignal bei, wenn m. eine logische 0 ist und b. trägt nichts zum Ausgangssignal bei, wenn n^ eine logische 1 ist. Der dritte Befehl ist lediglich die Summe Modulo 2 (d.h. die Bildung der Funktion Exklusives ODER (EXODER) des Vektors b_ mit dem Parametervektor M Bit um Bit gemäss folgender Beziehung:
f 3 = b © M =
Dabei bedeutet das Zeichen © das Exklusive ODER (EXODER). Aus dem obigen ist ersichtlich, dass die komplementäre Grosse zu b^ gebildet wird, wenn m^ eine logische I ist, und b^ unverändert bleibt, wenn m^ eine logische 0 ist. Wenn das Ergebnis aus <i«n Funktionen f^ und fo in irgendeiner der N-KQisponenten eines Ausgangsvektors gespeichert werden kann, dann bilden entweder f^ oder i„ und f„ eine vollständige Algebra für Vektorräume variabler Dimension, die über einem Galois'sehen FnId1 Modulo 2, definiert sind.
Es wird nunmehr auf die Figur 11 Bezug genommen. Die beiden zuvor erwähnten ALU sind bei 138 und 140 gezeigt. Die ALU (AlJJ 1 und ALO 2) lcönnen als eine Vielzahl von logischen Zel len gemäss Figur 12 aufgebaut werden, um zwei Anordnungen von miteinander verbundenen logischen Zellen gemäss Figur zu bilden. Die in Figur 12 gezeigte logische Zelle kann durch die folgende Boole1sche Gleichung beschrieben
50985 1/0936
fi -
Aus der obigen Gleichung ist ersichtlich, dass die in Figur 12 gezeigte Zelle die drei gewünschten Funktionen der Eingangsgrössen a. und b. als Funktion von zwei Steuersignalen c- und Cp erzeugen wird, die an den Eingängen der Zelle zugeführt werden.
Eine Anordnung von N-Zellen nach Figur 12, welche für die Bearbeitung von Vektoren mit N-Bits geeignet öind, kann mit N/2 Vierfach-zwei-Eingangs-NAND-Gattern N/4 Vierfach-Exklusives-ODER-Gattern und N/3 Dreifach-drei-Eingangs-NAND-Gattern ("NAND = NICHT UND") aufgebaut werden. Wenn zwei solche Anordnungen gemäss der Darstellung in Figur 13 verbunden werden, dann wird die skalare Ausgangsgrösse G durch die folgende Gleichung definiert:
. m.
D»rin erzeugen Steuervariablen q- ui d q2 Steuereingänge C1 und C2I wie dies im Zusammenhang mit Figur 12 beschrieben
ist.
Der Ausgangsvektor W (W1 bis W„) von der Anordnung 138 der
Figur 13 besitzt die folgende Form:
Wl rol hl
W2 m2 b2
*
>- "1N btJ
m, © b.
"I+ bl 11^+ bN
509851 /0988
Die Dimension der in dem beispielhaften BLU nach Figur 11 zu beschreibenden Boole'sehen Vektoren ist 4 (N = 4). Aus Figur 11 ist ersichtlich, dass eine Operationscodeverriegelung 144 (latch), eine R-Verriegelung 146 und eine Y-Verriegelung 148 jeweils Eingangssignale, die aus einer Anzahl von Bit bestehen, wie sie durch die in Klammern gesetzten Ziffern angezeigt sind, von dem EPIC-Bus 46 von der Befehlssteuereinheit für Ereignisverarbeitung (EPIC) 38 (siehe Figur 5) erhalten. Die O^erationscode-Verriegelung 144 erhält die Oi-erationscodesigna Ie, die einem Mikro-Code-Generator 150 dargeboten werden, um Plätze in diesem Generator in einem dort enihaltenen Realspeicher (Arbeitsspeicher) zu adressieren zur Erzeugung der bestimmten "Freigabe"-Ausgangssignale zur Ausführung der im BLU gemäss dem Operationscode vorhandenen Instruktion. Weiterhin werden Operatic* scodesignale von dem EPIC-Bus an einen Code-Gültig-Detektor 152 geliefert, der feststellt, ob dieser Operationscode in dem Block von Operationscode enthalten ist, welcher für den BLU reserviert ist. Der Code-Gültig-Detektor 152 gibt ein Signal "Code Gültig" über eine Leitung 154 an eine Steuer- und Taktschaltung 155, die verschiedene innere Steuersignale erzeugt, die von dem BLU verwendet werden.
In der Figur 11 wird auch noch ein Block 156 gezeigt, der 16 durch 4 Bits adressierbare R-Register enthält, die eine Speicherung von 16 Ereignisvektoren mit 4 Bits innerhalb des BLU ermöglichen. Weiterhin sind zwei Verriegelungsschaltungen vorhanden, die mit Λ-Verriegelung 158 und B-Verriegelung 160 bezeichnet sind und als Eingangsregister für die beiden ALU und insbesondt re für ALU-I dienen. Eine "wahre Komplementierschaltung" (T7C) 162 (true complementer circuit) ergibt die Möglichkeit zur Komplementbildung zur skalaren Ausgangsgrösse von ALU-2 an einen T/C-Flip-Flop 164, der ein Eingangssignal für eine adressierbare F-Verriegelung 166 abgibt, die ihre Adressierung aus einem Bit-Adressen-Decoder 168 erhält.
509851 /0986
Der Operand der Instruktion oder des Befehlswortes wird dem BIiU von dem EPIC-Bus und der R-Verriegelung 146 und der Y-Verriegelung 148 zugeführt. Die Ausgangssignale dieser Verriegelungen werden dem Schaltereingang (MPXB) des R-Registers 156 zugeführt. Die handelsmässig verfügbaren logischen Bauelemente in Form von integrierten Schaltungen, die zum Aufbau des BLU nach Figur 11 verwendet werden können, sind in dem Anhang B gezeigt, der einen Teil dieser Beschreibung bildet.
Der BLU nach Figur 11 führt die folgenden logischen Operationen aus (Boole'sehe Berechnungen) unter Verwendung der beiden arithmetischen Logik-Einheiten (ALU-I und ALU-2) :
1. ) Vektor-OL^R
2.) Vektor-UND
3.) Vektor Exclusives ODER (EXODER) 4.) Boole'sches inneres Produkt (BIP) 5.) Boole'sches Dualprodukt (BDP)
Daten in der Form von Eingangsworten (mit einer Länge von 4 Bit) zur Ausführung der obigen Operationen entstehen in den R-Registern 156, der Y-Verriegelung 148 oder sie bestehen aus Daten, welche dem BLU über Leiter 170 aus der Datenspeichereinheit (DMU) 48 nach Figur 5 zugeführt werden. Die Daten von der Y-Verriegelung werden über den MPXB-Schalter so gattergesteuert in die R-Register eingespeist, dass die Daten später zur anschliessenden Berechnung aus den R-Registern ausgelesen werden können. Die vom DMU kommenden Daten können selektiv über den MPXB-Schalter den R-Registern zugeführt oder über einen Schalter MPXE selektiv in die A- und B-Verriegelungen gesetzt werden.
Bei der grundlegenden Arbeitsweise des BLU, bei der eine Instruktion mit einem Operationscode an dem EPIC-Bus (Figur 5) zugeführt wird, für den der BLlJ verantwortlich ist, wird der Operationscode dieser Instruktion durch den Code-Gültig-
509851 /0988
Detektor 152 decodiert, der ein Signal "Code Gültig" abgibt, das dem Steuer- und Taktblock 155 zugeführt wird. Wie aus den Gleichungen der Tabelle 2 ersichtlich, wird das Signal "Code Gültig" erzeugt, wenn der Operationscode gleich oder kleiner ist als N, und gleich oder grosser ist als Nr, wenn die Grossen N. und N^ den Block von Onerationscode definieren, für welchen der BLU verantwortlich ist. Die Figur 14 zeigt eine typische Aufstellung für Onerationscode, die ein BLU gemäss diesem Beispiel ausführen kann. Zum Zweck der Veranschaulichung wurden die Oktalzahlen 77 bis 40 für den Bereich N4 - N5 verwendet.
Wie ebenfalls in Tabelle 2 gezeigt, wird die Steuer- und Takt logik 155 gesteuert durch die Gleichungen für Steuerung und Taktgäbe das Signal "BLU Besetzt" auf der Leitung 172 erzeugen, wenn das Signal "Code Gültig" (Leitung 154) das Grundtaktsignal (Basistaktsignal) und das Signal TQ vorhanden sind. Der Basistakt für den BLU ist in Figur HA dargestellt und zeigt, dass das Signal "BLU Besetzt" etwa eine Taktperiode nach dem Empfang des Operationscode durch den BLU aktiv wird. Die Gleichungen zur Erzeugung der beiden Signale "Schreiben" und "Ausführen" von der Steuer- und Takt logik 155 sind auch noch in Tabelle 2 gezeigt. Das Signal "Schreiben" wird zum Zeitpunkt T^ oder T2 erzeugt und damit erhält das Signal "Schreiben" für das R-Register eine Impulsbreite von zwei Taktpe.rioden. Das Signal "Ausführen" wird bei Vorhandensein des Signals T„ und des Basis-Taktsignals gemäss Figur HA erzeugt und löst die erforderliche Berechnung aus, wie sie durch den dem BLU dargebotenen Operationscode bestimmt wird, beispielsweise "Laden" der A-Verriegelung, "Laden" der B-Verriegelung usw. (siehe Anhang B).
Wenn das Signal "BLU Besetzt" auf einen hohen Wert übergeht, dann wird die Instruktion in der Operationscode-Verriegelung 144, der R-Verriegelung 145 und der Y-Verriegelung 148 festgehalten. Die Operationscode-Bit werden dann an den Mikro-Code-Generator 150 geliefert. Der Mikro-Code-Generator
509851 /0986
150 ist in der bevorzugten Ausfuhrungsform ein Festspeicher (ROM) mit 32 Worten mit 32 Bit, die einzeln durch einen Operationscode von der Operationscode-Verriegelung 144 adressierbar sind. Jodes der Worte im Generator 150 enthält ein vorbestimmtes Bit-Verteilungsmuster zur Steuerung der Erzeugung verschiedener Freigabe-Signale durch den Generator, um die richtige Ausführung der vom Operationscode bestimmten Instruktion zu bewirken. Die Figur 15 zeigt die Bit-Verteilung jedes der Worte im Mikro-Code-Generator 150. Die linken Ziffern in der Figur 15 entsprechen den Operationscode nach Figur 14. Die Ziffern oben in der Figur 15 entsprechen 32 Ausgangs-Freigabeleitungen 174 vom Mikro-Code-Generator 150. Der Zweck der einzelnen Signale auf diesen Freigabeleitungen wird noch weiter in der Figur 16 erläutert.
Die Operationen, die in dem BLU während der Ausführung irgendeiner bestimmten Instruktion ablaufen,sind unmittelbar abhängig von dem V'rteilungsmuster der aus dem Mikro-Code-Generator 150 als ^itwort auf den Operationscode ausgelesenen Bit. Wenn beispielsweise die Instruktion fordert, dass Daten von der Y-Verriegelung in eines der R-Register gemäss der Adressierung durch die Inhalte der R-Verriegelung eingespeist werden, dann wird der Mikro-Code-Generator ein Ausgangssignal erzeugen, das dem MPXB-Schalter zugeführt wird und bewirkt, dass die Daten durch den Schalter in das adressierte R-Register überführt werden. In ähnlicher Weise wird in dem Fall, in dem die Instruktion eine überführung von Daten aus der Datenspeichereinheit in die \ oder B-Verriege-1 ig fordert, der Mikro-Code-Generator ein Freigabesignal erzeugen, das eine Überführung der Daten vom DMU (Figur 5) durch den MPXE-Schalter gemäss der Adressierung durch das vom Mikro-Code-Generator kommende Signal bewirkt. Die Daten werden daher in die ausgewählte A- oder B-Verriegelung gesetzt. Manche Instruktionen fordern, dass Daten in die R-Register 156 vom Ausgang des ALU-I eingeschrieben oder von den R-Registern 156 ausgelesen werden. In diesem besonderen Falle würde der Operationscode der Instruktion bewirken, dass
5098 5 1/0988
der Mikro-Code-Generator die richtigen Signale erzeugt, um den MPXF-Sohalter mit einer Adressierung freizugeben, welche die Daten vom ALU-I durch den MPXF-Schalter in den RAM (156) leitet. Zu diesem Zeitpunkt würde auch der MPXB-Schalter freigegeben und bewirken, dass die Daten gemäss der Adressierung durch den Inhalt der R-Verriegelung durch den MPXB in das R-Register weitergeleitet werden, d.h. gemäss der Adressierung durch die Inhalte des Operandenfeldes der Instruktion. Andere dem BLU dargebotene Befehle können die Überführung von Daten aus dem T'C-Flip-Flop 162 in die F-Verriegelung 166 anweisen. In diesem letzteren Falle wäre dies ein Datensignal mit einem Bit. Wie gezeigt, besteht die F-Verriegelung 166 aus vier Bits, die jeweils selektiv von einem Bit-Adreu.sendecoder 168 adressierbar sind. Der Bit-Adressendecoder erhält zwei Eingangssignale von der R-Verriegelung, die decodiert werden um festzustellen, in welche Bit-Stelle der F-Verriegelung das Ausgangssignal des T'C-Flip-Flop gesetzt werden soll. Wenn daher eine Instruktion durch den Mikro-Code-Generator zur Ausführung dieser Art einer Funktion decodiert wird, dann wird der F-Verriegelung ein Signal zugeführt zur Freigabe der Gatter-Einspeisung dieses Bit in die richtige Bit-Stelie in der F-Verrie; lung. Es ist noch zu beachten, dass die F-Verriegelung ein Eingangssignal von der Realzeit-Takteinheit 50 der Figur 5 auf einer Leitung erhält, die mit "RTCU-Vergleich" bezeichnet ist. Die F-Verriegelung kann dazu benutzt werden, um Eingangssignale von einer Realzeit-Takteinheit zu erhalten, und dies gestattet die Einführung von binären Werten in die Boole'sehe Gleichung, die von dem BLU ausgeführt wird. Die F-Verriegelung kann auch Eingangssignale von den adressierbaren R-Registern auf einem Bus 176 für vier Bit erhalten (Figur 11). Während einer Vektoroperation ist es möglich, von den R-Registern Vektoren in die F-Verriegelung einzuspeisen. In einer ähnlichen Weise können Vektoren aus der F-Verriegelung auf einem Bus 178 für vier Bit in den MPXF-Schalter ausgelesen werden. In der vorstehend beschriebenen W^ise kann der Vektor in einem adressierten R-Register gemäss dem Inhalt der
S09851 /0986
R-Verriegelung und den Anweisungen bestimmter Freigabe-Signale vom Generator 150 gespeichert werden.
Es wird weiterhin Bezug genommen auf die Figur 11. In dem
T/C-Flip-Flop 164 wird ein Ausgangssignal "BLU-Zustand"
(BLU Condition) gezeigt". Der "BLU Zustand" ist ein Ausgangssignal, das in den Steuerabschnitt 12 nach Figur 5 eingespeist waslen kann und hierdurch kann dieser Zustand von dem Steuerabschnitt zur Ausführung von Zweigprüfanweisungen benutzt werden. Dieses Beispiel zeigt, wie die verschiedenen Verarbeitungseinheiten in der Architektur des Systems Signale an den Steuerabschnitt zurückliefern können, wodurch der Steuerabschnitt dann Befehle zur Programmausführung ausführen kann, die auf den Zuständen der verschiedenen Verarbeitungseinheiten im System beruhen.
Um die grundlegende \rbeitsweise des BLU gemäss den dieser Einheit dargebotenen logischen Instruktionen zu veranschaulichen, seien die Bit in den Verriegelungen Λ und B wie
folgt bezeichnet:
A-Voktor = (^1I ^2, a3, a4)
B-Vektor = (b1, b2, b3, b4).
Die Vektor-ODER-Operation führt zu einem R-Vektor mit vier Bit (aus dem ALU 1), wobei jedes Bit der ODER-Bildung der
entsprechenden Bit in den Verriegelungen A und B entspricht. Daher ergibt sich:
R-Vektor = (r , ro, r„, r.)
wobei:
r2 = a2 + b2
r3 = a3 + b3
r4 = a4 + b4
509851 /0988
7524229
In ähnlicher Weise führt die Vektor-UND-Operation zu einem R-Vektc-r mit vier Bit, von dem jedes Bit durch die Ausführung der UND-Operation an entsprechenden Bit in den Vektoren A und B erhalten wird. Man erhält daher:
, T2, V3, r4)
R-Vektor wobei: rl = ai = (
r2 = a2
r3 = a3 ' bl
r4 = a4 b2
' bJ
' b4
Dia Operation Exklusives ODER führt ebenfalls zu einem 4-Bit-Vektor, bei dem jedes Bit aus der Ausführung der Operation Exklusives ODER am entsprechenden Bit in den Vektoren A und B entsteht. Das Exklusive ODER kann durch die Operationen UND und ODER wie folgt definiert werden:
rl " Vbl + al'Bl
' r2 = a2'b2 + a2'b2
^4 = Vb4 + a4'b4
Hierin bezeichnet die Ül>erstreichung die komplementäre logi sche Grösse (oder die NICHT-Funktion). Die Operation Exklusives ODER ist sehr gut geeignet in dem BLU, wenn man die Komplementärgrösse zu ausgewählten Bits in einem Vektor bil den will. Wenn beispielsweise der Α-Vektor a = (0100) und der B-Vektor: b = (Olli) ist, dann erhält man als A Exklusi ves ODER Br= (0011).
Es ist ersichtlich, dass nur am zweiten Bit des Vektors B die Komplementärgrösse entsprechend der logischen 1 in der Bit-Stelle 2 des Vektors Λ gebildet wurde.
509851 /0988
Das Boole'sche innere Produkt (BIP) und das Boole'sche Dual-Produkt (BDP) ergeben eine Antwort mit einem Bit vom ALU 2 der Figur 11.
Diese Operationen sind durch die folgenden Gleichungen definiert :
r = Λ BDP B = (a^bj) · (a2+b2) · (a,}+b3) r = Λ BIP B = (a1-b1) + Ca3-Ij3) + Ca3^b3)
Diese Antwort (r) mit einem Bit wird in die Funktionsverriegelung (F-Verriegelung) gesetzt und kann dann in eines der Bit in den R-Registern gesetzt werden, wie dies vorstehend beschrieben wurde.
Ein weiteres Beispiel für die Auslegung eines EPU zur Verarbeitung eines Blocks von funktionell verwandten Operationscode ist die Daten-Speichereinheit (DMU) 48, die zuvor in Verbindung mit Figur 5 erwähnt wurde. Der DMU liefert in seiner Anwendung im System gemäss der vorliegenden Erfindung eine Speicherung für diskrete Ereignisse, die von der soeben erörterten Boole'schen Logikeinheit (BLU) verarbeitet werden sollen. Eine Konzeption des Aufbaus, welche in dem DMU enthalten ist, besteht in dem Konzept einer virtuellen Speicherung von diskreten Informationen. Die Rechtfertigung für die .Aufnahme dieser Konzeption in dem System wird nachstehend erörtert und ausführliche Erläuterung der bestimmten Hardware und ihrer lietriebsweise, die für das Konzept der virtuellen Speicherung diskreter Information und seine Anwendung benutzt wird.
In vorbekannten Daten-Verarbeitungssystemen wurden Anlagen, die sich ausserhalb der Datenverarbeitungsanlage befinden, normalerweise als Peripheriegeräte oder Anschlussgeräte behandelt und die gesamte Datenübermittlung und Wechselwirkung mit dieser äusseren \nlage erfolgte durch wenige Eingangs-
5098 5 1/0986
und Ausgangsinstruktionen, die häufig zu unangenehmen und komplizierten Problemen bezüglich der Software führen können, obwohl sie universal sind.
Diese Art der Kommunikation oder Datenübertragung steht im Gegensatz zu der Kommunikation gemäss der vorliegenden Erfindung, die eine Schnittstelle oder Zwischenverbindung (interface) mit der äusseren Anlage vorsieht, wie dies vorstehend in Verbindung mit der Figur 5 beschrieben wurde, mit dem Ergebnis, dass die Anlage ein Teil einer Daten-Speichereinheit ist (DMU). Wegen dieser integralen Struktur müssen in dem System gemäss der Erfindung keine Eingangs- und Ausgangsinstruktionen vorhanden sein und daher umgeht das erfindungsgemässe System die zusätzliche Software und die Verzögerungen, die bei Anlagen nach dem Stand der Technik bei Problemen auftraten, die ähnlich den durch das System dc-r vorliegenden Erfindung gehandhabten Problemen sind.
Bezüglich der Kommunikation oder Datenübermittlung von einer Datenverarbeitungsanlage zu einer äusseren Anlage kann ein besonders zu lösendes Problem wie folgt definiert werden. Die vorliegende Datenverarbeitungsanlage muss mit einem Satz von äusseren Anlagen in Wechselwirkung stehen, von denen jede N-Ausgangssignale zu der Datenverarbeitungseinheit als Funktion von M-Eingangssignalen erzeugen kann, die von der Datenverarbeitungseinheit empfangen wurden. In dieser Problemformulierung bezeichnen die Grossen N und M eine bestimmte Anzahl von Signalen, die ziffernmässig Hunderte oder Tausende von Signalen umfassen können. Die Anzahl der Anlagen wird mit "L" bezeichnet. Jedes der Signale auf den äusseren Sammelleitungen (Bus) 64 und 68 (Figur 5) wird gleichzeitig mit allen anderen Signalen verfügbar sein, (d.h. man lässt lediglich eine kurze Zeitverzögerung in der Grössenordnung von Millisekunden zur Unterscheidung zwischen den Signalen zu). Weiterhin wird jedes Signals als ein Signal des Typs für ein diskretes Ereignis betrachtet. Dieser Signaltyp ist ähnlich einem digitalen Einleiter-Signal, das auch als
5098S1/0986
Boole'sche Variable bezeichnet wird; es unterscheidet sich jedoch dahingehend, dass die Übergänge (Zwischenwerte) (transitions) zwischen der logischen 0 und der logischen 1 hier die eigentliche Information des Signals beinhalten. Wie zuvor erwähnt, ist dieser Typ einer Struktur der Zwischenverbindung oder Sammelleitung (Bus) typisch für viele kommerzielle und militärische Anwendungsfalle, in denen eine Datenverarbeitungsanlage äussere Anlagen steuern soll oder von diesen gesteuert werden sollen auf der Grundlage der Erteilung und Bestätigung von Instruktionen. Im praktischen Gebrauch kann das Datenverarbeitungssystem eine bestimmte Anzahl L von Anlagen ansteuern, w^uei N die Anzahl von Signalen bedeutet, die normalerweise verschiedenste Ventile und Magnetspulen betätigen und M die Anzahl der Rückmeldesignale von den Verfahrensanlagen ist, welche anzeigen, dass der gewünschte Vorgang ausgeführt wurde.
Die Wechselwirkung zwischen den Steuereingängen 66 und den Messfühlerausgängen 62 (Figur 5) besteht in der Lösung von Boole'sehen Gleichungen, die Zeitverzögerungen zwischen einem eingangsseitigen diskreten Ereignis und der Erzeugung eines entsprechenden ausgangsseitigen diskreten Ereignisses
beinhalten. Daher sind die Erfordernisse an die Verarbeitung in höchstem Masse angepasst an die vorstehend beschriebene Boole'sche Logik-Einheit BLU, die nicht nur vollständige Gleichungen berechnet, sondern auch tatsächlich einen Vektor oder eine Gruppe von Boole'sehen Variablen zu einem Zeitpunkt berechnen kann.
Für die Schnittstelle oder Zwischenverbindung zwischen der Verfahrensanlage und ähnlichen Einrichtungen ist ein Speicher erwünscht, der ähnlich ist einem Speicher mit den folgenden Kennzeichen: (1) Ein Programmierteil der Datenverarbeitungsanlage gemäss der vorliegenden Erfindung kann einen Datenvektor zwecks Berechnung in den BLU einlesen, wobei der Vektor aus Signalen von der Verarbeitungsanlage und möglicherweise aus den Ergebnissen vorhergehender Berechnun-
509851/0986
gen besteht; und (2) der Programmierteil kann einen Datenvektor in den Speicher des DMU einlesen, von dem einige Bit für die Verwendung in späteren Rechnungsgängen gespeichert werden und andere Bit benutzt werden zur Speisung diskreter (einzelner) Leitungen zu der Verfahrensanlage. Die Methode der Verwendung eines Programmierteils zur Auslesung und zum Einschreiben von solchen Daten, die Daten ausserhalb der Datenverarbeitungsanlage darstellen in einer solchen Weise, als ob diese tatsächlich innerhalb der Datenverarbeitungsanlage vorhanden seien, wird als ein virtuell* Speicher bezeichnet» IiJ diesem Fall« sind Daten eines diskreten Ereignisses und die Kombination eines reellen und virtuellen Speichers zugelassen und der Speicher wird daher als ein virtueller diskreter Ereignisspeicher (VDEM) bezeichnet, wie dies*in den Figuren 5, 17, 18, 19 und 20 gezeigt ist. Der VDEM wird als ein Teil der vollständigen Datenspeichereinheit <DMU) benutzt. Ein VDEM ist in Figur 17 in seiner Anordnung in dem DMU dargestellt, Grundsätzlich besitzt der VDEM die Fähigkeit, zu einem bestimmten Zeitpunkt eine Boole'sehe Variable einzuschreiben und eine Boole'sehe Variable zu einem bestimmten Zeitpunkt auszulesen« In einem BMU können eine oder mehrere VDEM-Einheiten benutzt werden, um seine Aufgabe der Einschreibung eines vollständigen Vektors von Boole'sehen Variablen oder der Äusiesung eines vollständigen Vektors von Boole*schen Variablen zu erfüllen. Wenn in einej» ΒΜΪΪ mehr als ein VDEM benutzt wird, dann wird dies als "Seitenspeicher" (page of memory) bezeichnet. In dem zu beschreibenden Beispiel ist Jede fiussere Anlage mit einer getrennten Seite (YDEM) verbunden {interfacedK Für eine Zahl von L äusseren Anlagen sind daher in der Architektur eine Zahl von L Einheiten VDlM enthalten. Der folgende ^Jischnitt beschreibt die Einzelheiten der mechanischen lusfüöryng eines beispielhaften VDlM,
In dem beispielhaften VDEM nach Figur 17 besitzt der Speicher einen Gesasstspeieherraum f«r 4OO Basis 8 {oder 256 Basis 10) Worte mit 1 Bit (jedes Wort stellt eine Boole*sehe
509851/098S
Variable dar). Jedes Wort in dem Speicher ist eindeutig definiert durch eine Speicheradresse, welche den Bereich von Oktal (octal) 000 (Adresse des ersten Wortes) bis zu Oktal 377 (Adresse des letzten Wortes) umfasst, wobei Zwischenvariablen innerhalb dieses Bereiches in Sequenzweise bezeichnet sind. Von diesen 256 (Basis 10) Plätzen sind 48 (Basis 10) Plätze (die Adressen 300 - 357, oktal) vorbestimmt zum Empfang von Eingangssignalen von der äusseren Anlage und sind virtuell adressierbare Speicherplätze. Weiterhin sind 48 (Basis 10) Plätze (sie umfassen, den Adressenbereich von oktal 200 bis oktal 257) vorbestimmt und reserviert zur Erzeugung von Ausgangssignalen an die äussere Anlage und diese Plötze können ebenfalls als virtuelle Speicher adressiert werden. Die Speicherplätze im Adressenbereich 000 - 177 (Basis 8) sind vorbestimmt oder reserviert für Realspeicherung von Information (keine Zwischenverbindung mit äusseren Anlagen). Es ist zu beachten, dass eine Üh «rlappung der Zuordnung der Plätze 200 - 257 zwischen der adressierbaren virtuellen \usgangsspeicherung und der adressierbaren realen Speicherung vorhanden ist. Das Einschreiben von Information in einen dieser Plätze in dem Überlappungsbereich führt zum Einschreiben der Information in den Realspeichor und den virtuellen \usgangsspeicher. Das Schreiben von Informationen in diese Speicherplätze gestattet ein Auslesen der vorher zu der äusseren Anlage weitergegebenen Ausgangsvariablen.
Die tatsächliche Ausführung der VDEM-Seite durch Hardware ist in Figur 18 gezeigt. In dem beispielhaften System enthält' die Zwischenverbindung oder äussere Sammelleitung (Bus) mit der äusseren Anlage, die mit der Datenverarbeitungseinheit verbunden ist, 48 gleichzeitig vorhandene Eingang^signale auf den Leitungen 64, die zu einem Eingangsschalter oder Multiplexer 180 für 48 Bit von der äusseren Anlage führen. Es ist zu beachten, dass der Eingangs-Multiplexer ein Signal "Wahl des virtuellen Eingangs" auf einer Leitung 182 von einem Adressenbereichsdetektor 184 erhält. Der Eingangs-
509851 /G986
multiplexer 180 ist äquivalent dem zuvor bezüglich des virtuellen Eingangsteils des Speichers der Figur 17 beschriebenen Eingangsteil. Weiterhin sind 48 gleichzeitig vorhandene Ausgangssignale auf Leitungen 68 enthalten, welche der äusseren Anlage von einem Ausgangsschalter oder Demultiplexer 186 geliefert werden, welcher dem virtuellen Speicherausgangsteil nach Figur 17 entspricht. Schnittstellen oder Zwischenverbindungssignale zur Steuerung des VDEM werden von einem DMU-Steuerabschnitt 188 gemäss Figur 19 geliefert. Ein S^itenwahlsignal über eine Leitung 190 wird jedem VDEM zugeführt und bewirkt die Freigabe des VDEM zur Operation des Auslesens oder Einschreibens, wenn dieses Signal eine logische 0 ist. Acht Speicheradressenleitungen 192 identifizieren eine Stelle für die Auslesung oder Einschreibung in den VDEM, Ein Signal "Daten Schreiben" auf einer Leitung 194 liefert ein Datenbit zur Einschreibung in einen Speicherplatz. Diese D*tenleitung ist nicht verwendbar für eine \usleseoperation. Ein Signal "Schreiben-Freigabe" auf einer Leitung 196 erzwingt das Einschreiben von Daten mit N-Bits in die bezeichnete Stelle, wenn dieses Signal "Schreiben-Freigabe" eine logische O ist. Wenn das Signal "Schreiben-Freigabe" eine logische 1 ist, dann werden die Daten aus dem Random- oder Realspeicher 198 ausgelesen und über Gatter zu dem ausgangsseitigen Serien-Paralie!-Konverter (SPC) 3OO über eine Ausgangsgatter logik 2O2 durchgesteuert geaiäss der Darstellung in Figur 18.
Es wird erneut Bozug genommen auf Figur 18. Ein Adressenbereichs-Detektor 184 überwacht die Speieneradresse, die von dem DMU-Steuerabschnitt 188 (Figur 19) auf den Leitungen geliefert wird und legt fest, ob an dem Random—Speicher 198 eine Äuslesefunktion oder Einschreibfunktion ausgeführt werden soll oder an dem EingangsisuItiplexer—Speicher 18O des virtuellen Speichers oder an des ausgangsseitig^n virtuellen Desiultiplexer-Speieher 186. Die Ausgangs gatter logik 202 wählt entweder eine reelle oder virtuelle Singangsspeicheruag entsprechend den beiden Signalen "virtuelle Puten wählen" und
509851 /0986
"Realdaten (RAM) wählen" auf den Leitungen 204 und 206 vom Bereichsdetektor 184, um auf diese Weise das Datensignal (Leitung 170) zur Übertragung zum BLU zu erhalten.
Die folgenden Logik-Bauelemente, die zur Ausführung des VDEM benutzt werden können, sind handelsmässig erhältlich:
Adressen-Bereich-Detektor 184
Fairchild Halbleiter, Typ 9301, "Eins aus 10 Decoder"
("o—ne of IO decoder")
Random-Speicher 198 (Speicher mit wahlfreiem Zugriff) Speicher Typ 5503 für 256 Worte, Firma Monolithic
Memories
Eingang-Multiplexer 180
7 Typ 9312 der Fairchild Semiconductor Corporation, acht Eingang-Multiplexer
Ausgang-Demultiplexer 186
7 Typ 9334 der Fairchild Semiconductor Corporation, acht Ausgang-Demultiplexer, mit Speicher
Ausgang-Gatter 202
1 Gatter von Texas Instruments Corp., Typ 7400 Vierfach-2-Eingang-NAND-Gatter (Quad 2 input)
Der VDEM arbeitet vollständig unter Benutzung der Kombinationslogik und erfordert keinen äusseren Taktgeber für .seinen Betrieb. Die erfolgreiche Benutzung des VDEM beruht auf der Fähigkeit der Einheit, so schnell zu arbeiten wie vergleichbare Realdaten-Speicherelemente. Die Figur 21 zeigt die grundlegende Taktgabe für einen VDEM und veranschaulicht die Verzögerungen im VDEM, die sich aus den Verzögerungen der Gatter (physical gate) ergeben. Die angedeuteten Zeiträume liegen innerhalb der normalen Speicherzyklenzeiten, beispielsweise bei Kornspeichern,und sind vergleichbar zu verfügbaren Halbleitereinrichtungen, beispielsweise dem
5098S1 /0986
vorstehend genannten Bauelement des Typs 5503.
Es wird nunmehr Bezug genommen auf die Figur 19, welche den praktischen Aufbau einer Vielzahl von VjEM zeigt, welche durch die Zwischenverbindung mit dem DMU-Steuerabschnitt arbeiten. Der DMU kann als DMU-Steuerabschnitt 188 betrachtet werden, der eine \nzahl von L VDFM-Seiten 58a, 58b und 58c ansteuert. Die allgemeinen Operationen des DMU-Steuerabschnittes sind die folgenden: (1) Er ergibt die gewünschte Datenverarbeitungs-Zwischenverbindung mit einem TPU einer höheren Ebene, (2) er empfängt zu speichernde parallele Eingangsdatenworte von einer anderen Verarbeitungseinheit, beispielsweise dem in Figur 19 gezeigten BLU, (3) er setzt für einen Schreibvorgang das zu speichernde parallele Datenwort um .in einen Reihensequenzstrom von Datenbit von dem DMU-Steuerabschnitt in die gewählten VDEM, (4) er zieht bei einem Auslesevorgang einen Serienstrom von Datenbit aus ausgewählten VDEM ab und (5) er setzt den Serienstrom von Datenbit zu einem Parallelwort zusammen zur Ausgabe an eine andere Verarbeitungseinheit, beispielsweise den BLU. Weiterhin ist es erwünscht, dass der DMU-Steuerabschnitt 188 eine Funktion der Datenabbildung bei seiner Umwandlung von Paralleldaten in Reihendaten und von Reihenform in Parallelform ausführt. D.h. anstelle der Speicherung von acht parallelen Bit für einen Auslesevorgang in acht Sequenzplätze in einer VDEM-Seite können die acht parallelen Bit in acht nicht in Sequenz liegenden VDEM-Plätzen gespeichert werden und die Definition der Zuordnung eines Bit in dem eingangsseitigen parallelen Wort zu einem bestimmten Bit-Platz in einem VDEM unterliegt der Steuerung durch den Programmierteil. Als Ergebnis dieser Abbildungsfunkt ion kann das Ergebnis der Berechnung im BLU als Kombination von realen und/oder virtuellen Speicherplätzen in einem VDEM gespeichert werden. In ähnlicher Weise kann der Programmteil der Datenverarbeitung eine Abbildung von VDEM-Plätzen vorgeben zur Bildung des parallelen Datenausgangswortes und die Daten für die Berechnungen im BLU können aus einer Kombination von virtuellen
509851 /0986
Eingangsdaten und reellen Speicherdaten bestehen.
In der Figur 1«J sind din Speicheradressen, die Signale "Schreiben Freigabe", "oaten Schreiben" und "Daten Lesen" allen VDEM-Seiten geraeinsam. ·
Ein richtiges Seilonwahlsignal (Leitungen 190) vom DMU-Steuerabschnitt 188 wird zur Auswahl der Seite einer VDEM-Seite benutzt. Daher kann zu einem gegebenen Zeitpunkt nur eine Seite angesprochen werden. Der DMU-Steuerabschnitt besitzt noch die weitere Fähigkeit der Definition der Anzahl von Bit in einem Datenwort bis zu einer bestimmten Maximalzahl (in diesem Beispiel nominell 8) durch einen Teil des Befehlswortes für den TPU, an denen eine Lese- oder Schreib-Operation auszuführen ist. D.h. ein paralleles Eingangsoder \usgangswort des DMU-Steuerabschnittes kann zwischen 1 und 8 Bits enthalten.
Es wird Bezug genommen auf die Figur 20, welche in Form eines ausfuhrlichen Blockschaltbildes den DMU-Steuerabschnitt zeigt. Zur Vereinfachung der Erläuterung wird nur eine VDEM-Seite 58 gezeigt. Die Befehle zum DMU der Figur werden von dem TPU der höheren Ebene geliefert (im vorliegenden Beispiel DMC), wobei diese Befehle aus vier Feldern bestehen, die wie folgt definiert sind:
1.) Operationscode feld (8 Bit) - definiert die bestimmte auszuführende Operation. Diese Bits werden in eine Operationscode-Verriegelung 208 geladen.
2.) N-Bit-Feld (3 Bit) - bestimmt die Anzahl von Parallolbit, welche in der Operation des "Lesen" oder "Schreiben" verwendet werden sollen. Die Bit in diesem Feld werden in eine Bit-Verriegelung 210 geladen.
3.) Seiten-Feld (1 Bit) - bestimmt die VDEM-Seite, zu der die Operation geleitet wird. Die Bit in diesem Feld werden in eine Seitenverriegelung 212 geladen.
50985 1/0986
4.) Vektor-Adressenfeld (ß Bit) - bestimmt den bestimmten vorgegebenen Vektor der Bit für die Datenabbildung (data marcing) zwischen den Paralleldaten und den VDEM-Seriendaten, welche in der Operation verwendet werden soll. Die Vektor-Adressenbit von diesem Feld werden in eine Vektoradressen-Verriegelung 214 geladen.
Die Funktion der verschiedenen dargestellten Logik-Blocke in Figur 20 wird nachstehend erläutert. Die Operationscode-Verriegelung 208, die Bit-Verriegelung 210, die Seitenverriegelung 212 und die Vektor-Verriegelung 214 ergeben eine zeitweilige Speicherung des Befehls, welcher dem DMU von dem nächst höheren TPU in dem hierarchischen System geliefert wird (beispielsweise von DMC).
Ein Code-Gültig-Detektor 216 wird dazu benutzt, ein Signal "Code Gültig" (Leitung 218) zu erzeugen, wenn der Operationscode des dem DMU zugeführten Befehls ein Code ist, für den diese Einheit verantwortlich ist. Die Erzeugung des Signals "Code Gültig" im DMU der Figur 20 wird in der gleichen Weise ausgeführt * wie dies vorstehend für den BLU beschrieben wurde, siit der Ausnahme, dass die vom Code-Gültig-Detektor erkannten Operationskode verschieden sind von uem vom BLU erkannten Code, Der DMU nach Figur 20 enthält wie der BLU einen Mikro-Code—Generator 22O, der Freigabe-SignaIe für die Ausführung der Funktionen einzelner Logik-Blöcke erzeugt (beispielsweise die Weiterfuhrung eines Zählers um eine Einheit oder das J1Z3fcler 1ώkremest , die Erzewgvmg des Schreibbefehls usw.). Eine Takt- und Steuerlogik 222 wird in ähnlicher Weise wie in dem BLU verwendet zur Erzeugung des Signals "DMU Besetzt" auf der Leitung 224 zum Datenspeicher-Steuerteil (DMC) und auch noch zur Erzeugung der Taktimpulse für diti Funktionen des einzelnen Logik-Blocte.
Beim Betrieb des DMU wird zunächst ein Bit-Zähler 22ß mit einer Zahl geladen, die repräsentativ ist für die Zahl der umzusetzenden Bit, Der Bit-Zähler wird nach Auslesung oder
509851/0988
Einschreibung jedes nachfolgenden Bit in den VDEM um eine Einheit abwärts gezahlt (decremented). Wenn der Inhalt des Bit-Zählers 0 ist, zeigt dies an, dass alle Bit umgesetzt wurden und die Umsetzung beendet ist. Ein Seitenregister wird aus der Seitenverriegelung 212 geladen und enthält die Nummer der gerade benutzten VDEM-Seite. Ein Adressenzähler 230 wird aus der Vektor-Adressenverriegelung 214 geladen. Der Adressenzähler enthält die Zahl, welche repräsentativ ist für die Vielzahl von Adressen zur Adressierung eines Vektoradressen-Übersetzers 232. Der Vektoradressen-Übersetzer ist in der bevorzugten Ausführungsform ein Festwertspeicher. Er kann jedoch aus irgendeinem anderen Speichertyp bestehen. Jeder Platz in dem Vektoradressen-Übersetzerspeicher identifiziert gemäss der Vorbestimmung durch den Datenverarbeitungs-Programmierteil eine bestimmte Adresse (reell oder virtuell) für jedes Bit in dem Parallelwort, das vom VDEM ausgelesen oder in ihn eingeschrieben werden soll. Beispielsweise gibt der Adressenzähier zur Auslesung von acht Bit acht aufeinanderfolgende Plätze in dem Vektoradressen-Übersetzer an, und jeder dieser Plätze enthält die VDEM-Speicheradresse des geforderten Bit.
Ein Parallel-Serien-Konverter (PSC) 234 für die Eingangsdaten wird zunächst mit einem parallelen Eingangswort von einem anderen EPU (BLU im vorliegenden Beispiel) geladen und für jede Zählzahl des Bit-Zählers zieht er unter Steuerung durch den Bit-Zähler 226 ein Datenbit zum Schreiben in den VDEM heraus. Ein Seitenzähler 236 wird zunächst mit vorbestimmten Seitenzahlen aus dem Seitenregister 228 beladen. Der Seitenzähler erhält auch noch die Speicherbitadresseneingänge von dem Adressenzähler 230 über Leiter 238. Wenn die Anweisung zum Lesen oder Schreiben des Vektors die Bereichsgrenzen der gegenwärtig vom Seitenzähler adressierten VDEM-Seite übersteigt (in dem vorliegenden Beispiel entspricht dies einer \dresse, die grosser ist als die Oktalzahl 377), dann wird der Seitenzähler um eine Einheit weitergezählt und die anschliessenden Operationen des Le-
509851 /0986
sens oder Schreibens von Bit werden an der nächst höheren adressierbaren VDFM-Seite ausgeführt. Ein Seitendecoder steht in Verbindung mit dem Seitenzähler und dem VDEJi und" dient als Decodereinheit, welche das richtige Signal "Seitenwahl" für eine VDEM-Seite erzeugt, welche der /iah I zahl des S^itenzählers entspricht. Ein \usgang-Serien-nar:i 1 Ie 1-Konverter (SPC) 212 bildet ein paralleles Wort aus den Ferienbit, die aus der VDEM-Seite ausgelesen wurden, die zur Überführung auf einen anderen FPU ausgewählt ist (im vorliegenden Beispiel ein BLU).
Im Anhang C sind die verschiedenen Logik-Bauteile oder Bauelemente aufgeführt, welche für die praktische \usf.hrung aller Logik-Blöcke in dem DMU-Steuerabschnitt benötigt werden.
Nachstehend wird oine typische Ausführung von drei relevanten Befehlen durch die Ba ten-Speichereinheit (DMIi) beschrieben. Der erste zu beschreibende Befehl enthält eine Operationscodezahl 100, die als DMU-Leerbef eh 1 -Opera tionseotle (DMU no Operation code) bezeichnet ist. Es sei angenommen, dass ,der DMU zunächst nicht "Besetzt" (beschäftigt) ist. Dann wird der Operationscode durch die Operationscode-Verriegelung 2OB zum Code-Gültig-Detektor 21β übertragen. Das Signal des Code-G.ltig-Detekiors bewirkt die Freigabe der Takt- und Steuerlogik 220 zur Erzeugung des Signals "DMU Besetzt" auf dem" nächsten an der Takt- und Steuerlogik eintreffenden Basistakt. Da der Mikro-Code-Generator 220 kein Freigabe-Signal fi.r eine ausführbare Operation gegeben hat, wird das Signal "Besetzt" aufgehoben.
Der nächste zu beschreibende Befehl ist die Operationscodezahl 103, welche den DMU für die Übertragung von Daten mit 4 Bit vorbereitet (bereitstellt). Der Operationszyklus ist der gleiche wie er vorstehend für den Code "Leerbefehl" beschrieben wurde mit der lusnähme, dass der ROM-Festwertspeichergenerator oder Mikro-Code-Generator 220 den Bitzäh-
509851 /0986
- Π 5 -
ler 220 freigibt zu einer Beladung mit dem Feld für N-BiIs und den 'Ulressenz-ih ler 2)0 in die Ausgangs lage zum Beginn der Adressierung des Vektors unter Benutzung des Vektor- \dressenfeldes bringt. Dieser Befehl wird fur die Vorbereitung des DMU zum Auslesen und-zum Einschreiben von Vektoren benutzt.
l>».r letzte Befehl ti r den DMU besteht in einer Onerationscodezahl 112, welche das \uslesen des von dem Befehl Operationscode 103 definierten Vektors ermöglicht. Die Taktgabe Mr diesen letzteren Befehl ist in Figur 22 abgebildet. Wenn der DMU in den Zustand "Besetzt" geht, d.h. das Signal "DMU Besetzt" auf eine binäre I geht, wird die laufende Adresse dem Vektor-Adressensibersetzer 232 zugeleitet, der seinerseits die Bitadresse fur das erste Bit erzeugt. Nach einem ausreichenden Zeitintervall f.r das Lesen der Daten aus dem VDEM wird das Bit im \ut*gang-SPC 242 durch einen Impuls gespeichert, der dort über eine Leitung 244 vom Bitzähler zugeführt wird, der Bitzähler -ird um eine Einheit abwärts gezählt (decremented) und der Adressenzähler 2'ΪΟ wird um eine Einheit aufwärts gezählt durch einen Zählimpuls auf einer Leitung 24β vom Bitzähler. Wenn zu diesem Zeitpunkt der Bitzähler nicht auf 0 ist, dann wird der Vorgang wie oben angeführt wiederholt und weiter so lange wiederholt, bis der Zähler 0 wird. W nn der Bitzähler 0 wird, dann wird das "B^setzt-Zoichen" abfallen oder aufgehoben und der DMU erwartet den Empfang eines weiteren Befehls von dem DMC oder führt einen Befell 1 aus, welcher auf den Operationscode-Bus gesetzt wurde, während er besetzt war. Das Einschreiben eines Parallelworts am DMU wird in ähnlicher Weise ausgeführt ,.,it der Ausnahme, dass der eingangsseitige Daten-PSC 234 zunächst beladen wird und für jeden 0 erationszyklus ein Bit zum Einschreiben in den VDEM erzeugt. Weiterhin wird das Freigabe-Signal HSohreiben~Freigabe" während jedes Zyklus1 erzeugt, um die Speicherung des Serienbits freizugeben, welches dem VDEM vorn Eingang-Daten-PSC geliefert wird.
5098 5 1/0 986
Auf der Grundlage der vorstehenden Beschreibung des BLU, des DMU und des TPU wird jetzt eine Beschreibung des Betriebs für die Weitergabe eines Befehls von dem Steuerabschnitt 12 (Figur 5) über eine Reihe von TPU zur letztendlichen Ausführung dieses Befehls der oberen Ebene durch den DMU und BLU EPU gegeben.
Der hier im einzelnen erörterte bestimmte Befehl der höheren Ebene ist ein im Programmspeicher 10 (Figur 5) enthaltener Befehl, welcher die Kombination von vier Informationsbit anweist (diskrete Ereignisse), welche in der Datenverarbeitungseinheit nach Figur 5 gespeichert sind, mit vier Bit einer Information, die durch diskrete Ereignisse ausserhalb des Datenverarbeitungssystems bestimmt werden. Diese beiden Gruppen von jeweils vier Informationsbit werden als zwei Vektoren mit je vier Bit definiert. Die an den beiden 4-Bit-Vektoren auszuführende Operation ist das Boole'sehe innere Produkt (BIP), das die beiden mit A = (a., a„, a„, a ) und B = (b^j'bg, bo, b.) bezeichneten Vektoren kombiniert, die jeweils vier Bit einer diskreten Information umfassen. Das Boole'sche innere Produkt bildet das skalare Resultat r = Ca1 0 b.^ + (a2 Q b2) + U3 Q bß) + Ca4 Q b4). In der nachstehenden Beschreibung wird bei entsprechender Gelegenheit jeweils auf die Figuren 5, β, 11 und 20 Bezug genommen. Weiterhin enthalten die nachstehend aufgeführten Tabellen 3, 4 und 5 eine Zusammenstellung der Operationscode oder Befehle, die aus den verschiedenen TPU als Antwort auf den Befehl der oberen Ebene ausgelesen werden, welcher aus dem Steuerabschnitt zurückgeholt wird.
S098S1/0986
- 57 Tabelle 3
SEQUENZ DER AUS DEM CODE RESULTIERENDEN CODE
OP-CODE BESCHREIBUNG ZU DMU VE R A NTWORT LICHE
VERARBEITUNGSEIN
HEIT
121 DATEN VON VDEM LEERBEFEHL) DMC
100 DMU NO-OP (DMU AUS DEM DMU DMC
52 BLU REGISTER A
LADEN
EPIC
BOOLE'SCHES INNERES PRODUKT
EPIC
Tabelle 4 DMC SEQUENZ FÜR OP CODE
OP-CODE BESCHREIBUNG VERANTWORTLICHE
VERARBEITUNGSEIN-
HEIT
103 TRANSFER VORBEREITEN, DMU
111 DATEN TRANSFER DMU
100 NO-OP (LEERBEFEHL) DMU
OP-CODE
Tabelle 5 EPIC SEQUENZ FÜR OP-CODE
BESCHREIBUNG
(R1) IN BLU-3 VERRIEGELUNG LADEN
REGISTER R2 ZUR VERRIEGELUNG
VERANTWORTLICHE VERARBEITUNGSEIN-HEIT
BLU BLU
ERZEUGE BIP (4LU-1 "UND" AUSFÜH- BLU REN) (ALU-2 "ODER" AUSFÜHREN)
109851/0988
60 T/C-FLIP-FLOP \UF FXT BLU
41 F zum REGISTER R3 BLU
Es sei zunächst angenommen, dass ein Befehl einer oberen Ebene als Sequen.codebefehl definiert ist, einen Operationscode 270 (Oktal) gemäss Tabelle 3 besitzt, durch den Steuerabschnitt 12 aus dem Programmspeicher 10 abgerufen und auf den CS-Bus 26 gemäss der Abbildung in Figur 5 gesetzt wird. Dieser Operationscode 270 liegt im Bereich der Operationscode, für welche der MIC-28 verantwortlich ist. Weiterhin enthalten die Operandenfelder dieses Befehls der höheren Ebene die Adresse des Speicherregisters (R-Register) im BLU 52, die Adresse der Sequenz von diskreten Ereignissen, welche in dem DMU 48 erfolgen soll, und die Adresse eines zweiten Speicherregisters (R-Register) im BLU, in die das Resultat (das skalare Resultat r^ gesetzt werden soll.
Da der Befehl auf dem CS-Bus ein Operationscode 270 ist, wird der MIC diesen Befehl annehmen und den Operationscode 27O als einen Sequenzcode übersetzen^ D,tu es liegt ein Code des Typs vor, der eine übersetzung erfordert, tmd der MIC beginnt daher nsit der Erzeugung einer Sequent von Gperatiönscode anstelle des Operationscode 270. Die auf dem EPIC-Bus 46 weitergegebene oder erzeugte Sequenz von Operationscode ist in Tabelle 3 gezeigt, Tabelle 3 zeigt ebenfalls eine Spalte, welche diejenigen Verarbeitungseinheiten angibt, die für den Empfang der verschiedene» Operatioascode verantwortlich sind. Weiterhin gibt die Tabelle 3 eiae Beschreibung zur Definition der Operationen, die von diesen verantwortlichen Einheiten nach Massgabe des ihnen dargebotenen Operationscode ausgeführt -werden. Die vom MIC ausgelesene« Operationscod*. #erden nacheinander auf den MIC-Bus 36 gesetzt zusammen mit den Operanden, die im MIC-Befehlsregister bei der \nnalune des Befehls mit dein Operations-
509851/0986
5ί) _ 252Α229
code 270 gespeichert wurden. Es wird Bezug genommen auf Figur 6 und daran erinnert, dass ein Befehl von dem Bus (Vielfachleitung) (Sammelleitung) von der nächst höheren Ebene bei Zuführung zu einem TPU in dem Befehlsregister gespeichert wird. Weiterhin wird daran erinnert, dass der Inhalt der Operand-Verriegelung des Befehlsregisters unmittelbar auf den unteren Befehls-Bus des TPU weitergegeben wird.
Die auf diese Weise auf den MIC-Bus 36 gesetzten Befehle umfassen einen Operationscode(einen der Sequerizcode aus Tabelle 3) und den Satz von Operanden, der im MIC 28 bei der Annahme des Operationscode 270 vom Steuerabschnitt gespeichert wurde. Zwei der von dem MIC ausgegebenen Befehle erfordern eine weitere Übersetzung. Der Operationscodebefehl 121 nach Tabelle 3 wird von dem TPU als Sequenzcode behandelt, welcher hier als Datenspeicher-Steuerung (DMC) 42 gezeigt ist und der Operationscodebefehl 170 wird von dem TPU EPIC 38 als Sequenzcode behandelt. Die Tabellen 4 und 5 zeigen die Sequenz der Befehle, welche der DMC bzw. der EPIC als Antwort auf die Operationscode 121 bzw. 170 ausgeben. Die Tabellen 4 und 5 zeigen wie die Tabelle auch noch die Einheiten, die für den Empfang jeder dieser Operationscode verantwortlich sind. Wenn der MIC den Befehl mit dem Operationscode 121 auf den MIC-Bus setzt, dann erkennt der DMC diesen Befehl als einen Befehl, der mit einem Operationscode in dem Block von Operationscode,für den er verantwortlich ist. Der DMC antwortet hierauf durch Speicherung des Operationscode 121 und des Operandenfeldes dieses Befehls in den Verriegelungsteilen des DMC für den Operationscode und für Operanden (Befehlsregister des TPU) und erzeugt dann das Signal "DMC Besetzt". Im vorliegenden Fall ist das Signal "DMC Besetzt" äquivalent dem Signal "TPU Besetzt", das von der SteuerlogLk erzeugt wird, wie dies vorstehend im Zusammenhang mit Figur 6 beschrieben wurde. Der vom DMC gespeicherte Operand ist der gleiche Operand, der ursprünglich von dem Steuerabschnitt 12 mit
509851 /0986
- GO -
dem Befehl ausgegeben wurde, der mit dem Operationscode 270 bezeichnet ist. Der MIC bestätigt das Signal "DMC Besetzt", indem er den Befehi-Operationscode 121 vom MIC-Bus wegnimmt und den nächsten Befehl in der Sequenz der Operationscode 270 darauf setzt. Dieser Code ist in Tabelle 3 als Operationscode 100 gezeigt. Wie aus der Tabelle 3 ersichtlich, ist der DMC fir den Befehl-Operationscode 100 verantwortlich. Der DMC wird daher diesen Operationscode 100 als direkten Operationscode annehmen und ihn unmittelbar (es wird keine Übersetzung benötigt) auf den DMC-Bus 54 setzen. Der DMC kann jedoch den Befehl-Operationscode 100 erst dann annehmen, wenn er die durch den Operationscode 121 angewiesene Sequenz beendet, da dieser Operationscode vorher angenommen wurde und ein EPU einen Operationscode nicht annehmen kann, wenn diese Einheit besetzt ist. Mit der Ausgabe der Sequenz von Operationscode (103, 111} 100) gemäss der Aufstellung in Tabelle 4 wird der DMU diese Onerationscode zusammen mit dem Operanden annehmen, welcher durch den MIC und den DMC vom Steuerabschnitt durchgegeben wurde.
Es wird nunmehr Bezug genommen auf das DMU-Blockschaltbild der Figur 20. Dor DMU 48 wird denjenigen Teil des Operanden speichern, welcher die Adresse der Sequenz von diskreten Ereignissen enthält, wie sie in dem ursprünglichen Befehl (Operationscode 270) festgelegt waren, der aus dem Steuerabschnitt 12 der Figur 5 ausgelesen wurde. Die Adresse der Sequenz von diskreten Ereignissen in dem VDEM wird diejenigen diskreten Ereignisse festlegen, welche vom DMU dem BLU in Form eines aus vier Bit bestehenden Vektors für diskrete Ereignisse iibermittel werden. In Figur 20 wird der Operationscode 103 in die Operationscode-Verriegelung 208 geladen oder eingegeben, wobei das Ausgangssignal dieser Einheit durch den Mikro-Code—Generator 220 decodiert wird. Der Mikro-Code-Generator wird nunmehr die angegebeaea AusgangesiguaIe erzeugen, die bewirken, dass der Operand in die Seitenverriegelung 212 und die Vektoradressen-Verriegelung 214 geladen <Ioad) wird. Wie aus Tabelle 4
S098S1/0988
ersichtlich, gibt der Operationscode 103 das Einstellen (Vorbereiten) einer Übertragungsfunktion an (set up transfer function), welche von dem DMU auszuführen ist. Der Operand, der in die Seitenverriegelung und die Vektoradressen-Verriegelung geladen wird, gibt die VDEM-Seite an, die adressiert werden soll. Der in die Vektoradressen-Verriegelung geladene Operand wird an den Adressenzähler 230 weitergegeben, der zu Beginn eine Adresse für einen Platz in dem Vektoradressen-Übersetzer 232 enthält. Es wird unter Verweis auf die vorstehende Beschreibung des DMU daran erinnert, dass jeder adressierbare Platz in dem Vektoradressen-Übersetzer ein Wort mit einer Adresse enthält, welches dem VDEM dargeboten wird und einem Abruf in Sequenz oder wahlfrei für Vektor-Bits aus diesem Speicher gemäss dem Inhalt des Wortes bewirkt, das vom Vektor-Adressenübersetzer gelesen wurde. Der DMU kann nunmehr den nächsten Befehl vom DMC annehmen.
Wie aus Tabelle 4 ersichtlich, werden bei Annahme des nächsten Befehls mit dem Operationscode 111 durch den DMU die Operationen durch Decodierung des Inhaltes der Operationscode-Verriegelung durch den Mikro-Code-Generator begonnen, um die Übertragung eines 4-Bit-Vektors vom VDEM zum BLU zu bewirken. Dies wird dadurch erreicht, dass der Mikro-Code-Generator die richtigen Ausgangssteuersignale erzeugt, um eine ^bwärtszählung des Bitzählers 226 um eine Einheit (decrement) für jedes aus dem VDEM ausgelesene Bit zu bewirken. Diese Signale bewirken weiterhin das Aufwärtszählen des Adressenzählers 230 um eine Einheit jedesmal dann, wenn eine Vektoradresse von dem Vektor-Adressenübersetzer abgegeben wird zur Adressierung des VDEM zum Ablesen der Bit in dem Vektor aus jedem Platz in dem VDEM. Mit dem Auslesen jedes Bit des Ereignisvektors mit vier Bit aus dem VDEM wird es in den Ausgangs-SPC 242 geladen zur anschliessenden Überführung auf den BLU. Wenn der Bitzähler 226 auf die Nullstellung abwärts zählt, dann wurde der Ereignisvektor mit vier Bit vollständig in den Ausgangs-SPC geladen.
509851/0986
Hieraus ist ersichtlich, wie man aus der Übersetzung eines einzigen zuvor in die Seitenverriegelung und die Vektoradressen-Verriegelung gesetzten Operanden einen Ereignisvektor mit vier Bit erhält. Dieser Ereignisvektor mit vier Bit umfasst sowohl reelle Daten (diese waren im Datenspeicher des Systems gespeichert) als auch virtuelle Daten (diese waren in dem virtuellen Speicher für äussere Ereignisse gespeichert).
Der Ereignisvektor mit vier Bit ist nunmehr in dem Ausgangs-SPC enthalten und steht dem BLU zur Verfügung zur überführung in diese Einheit. Der DMU kann nunmehr den Befehl mit dem Operationscode 100 vom DMC annehmen. In Tabelle 4 ist ersichtlich, dass der Operationscode 100 einen Leerbefehl oder Überspringbefehl (no operation instruction) anweist. Dieser Befehl wird in die Operationscode-Verriegelung des DMU nach Figur 20 eingegeben, wodurch dieser Befehl in dem Code-Gültig-Detektor 216 als gültiger Operationscode decodiert wird und weiterhin durch den Mikro-Code-Generator 220 decodiert wird, der einen Leerbefehl (keine Operation) im DMU bewirkt. Nachdem der Befehl-Operationscode 100 üecodiert ist, wird die Takt- und Steuereinheit 222 der DMU das Signal "DMU Besetzt" zum DMC wegnehmen. Hierdurch wird dem DMC angezeigt, dass der DMU seine Operationen beendet hat. Weiterhin enthält die Auslesung des Befehls "Keine Operation" (Leerbefehl) am DMC das zuvor genannte "Stop"-Bit, das von allen TPUs benutzt wird, um zu veranlassen,, dass der DMC den "Besetzt-Zustand" verlässt. Sobald der DMC den "Besetzt-Zustand" verlässt, wird der Operationscode 100 vom MIC, der jetzt am Eingang des DMC vorhanden ist, durch den DMC unmittelbar zum DMU weitergegeben, in dem der Befehl in der gleichen Weise ausgeführt wirdj wie dies vorstehend bei dem Auslesen des Befehls-Operationseode 100 aus dem DMC beschrieben wurde. Der Zweck der Aufnahme von Leerbefehlen in den Sequenzen von Operationscode j die von dea verschiedenen TPOs ausgelesen werden, wie dies vorstehend far den MIC und DMC beschrieben
SQ98S1/09B6
wurde, besteht darin, eine Methode zur Einfügung von Verzögerungen in das System zu erhalten, um zu gewährleisten, dass ein EPU, der Daten an einen anderen EPU liefern soll, vor der Übertragung dieser Daten an den letzteren EPU alle ihm zugeteilten Funktionen beendet hat.
Nachdem der letzte Befehl-Operationscode 100 nach Ausgabe durch den DMC von dem DMU angenommen und ausgeführt wurde, werden die letzten beiden Operationscode nach Tabelle 3 aus der MIC-Sequenz (Operationscode 52 und 170) in Sequenz auf den MIC-Bus 36 gesetzt zusammen mit dem Operanden aus dem ursprünglichen Befehl-Operationscode 270 und einzeln nacheinander durch den EPIC 38 angenommen. Der erste Befehl (Operationscode 52) wird an den EPIC geliefert und ist ein Richtungsbefehl. Daher gibt der EPIC 38 den Befehl direkt an den ^LU weiter. Es wird Bezug genommen auf die Figur 22 und das Blockschaltbild des BLU. Unter der Annahme,dass zu diesem Zeitpunkt der BLU nicht besetzt ist, wird der Befehl Operationscode 52 in der 0<erationscode-Verriegelung des BLU gespeichert. In diesem bestimmten Falle speichert der BLU den Operanden des Befehls; er verwendet jedoch den Operanden nicht. Der Operationscode bewirkt nach Decodierung durch den Mikro-Code-Generator 150, dass der 4-Bit-Vektor vom Ausgangs-SPC 242 des DMU (Figur 20) in die A-Verriegelung 158 des BLUs (Figur 11) über den Leiter 170 und den MPXE-Schalter eingegeben wird.
Der MIC liefert nun den Befehl Operationscode 170 gemäss der Definition in Tabelle 3 als \nweisung für die Bildung eines Boole'schen inneren Produktes an den EPIC. Dieser Befehl wird vom EPIC als Sequenzbefehl erkannt. Als Antwort auf den Operationscode 170 wird der EPIC beginnen, in Sequenz die in Tabelle 5aufgeführten Operationscode zu erzeugen. Jeder dieser Operationscode (55, 57, 62, 60 und 41) wird in Sequenz dem BLU nach Figur 11 geliefert. Der erste Befehl ist der Operationscode 55 und bewirkt das Laden des Inhaltes des Registers R1 in den R-Registern 156 in die
509851 /0986
B-Verriegelung (BLU-Verriegelung) 160. Dies wird durch den Operanden bewirkt, wie er durch den ursprünglich erhaltenen Befehl Operationscode 270 angegeben ist, der nunmehr
in den R- und Y-Verriegelungen nach Figur 11 enthalten ist. Die Y-Verriegelung 148 ist eine Verriegelung für acht Bit, die zwei 4-Bit-Adressen enthält, von denen eine ein Register R., und die andere ein Register R0 in den R-Registern
1 ώ
156 adressiert. Das Register R, enthält ein vorbestimmtes Verteilungsmuster von binären Bit, die zuvor berechnet oder in dieses Register durch den Programmteil gesetzt wurden. Dieses Verteilungsmuster wird als eine Maske zur Erzeugung eines Vektor-Ergebnisses benutzt. Die Y-Verriegelung, die nunmehr die Adresse für das Register R1 enthält, wird über Leitungen 248 dem MPXB-Schalter zugeführt. Der Operationscode 57 ist jetzt in der Operationscode-Verriegelung 144
enthalten und wird zur Adressierung des Mikro-Code-Generators 150 benutzt, der nunmehr ein Ausgangs-Freigabesignal erzeugt, welches an den MPXB-Schalter geliefert wird, um
die Adresse von der Y-Verriegelung in die R-Rogister durchzusteuern. Daher wird das Register R^ adressiert und sein Inhalt wird auf Leiter 250 gesetzt und als ein Eingangssignal dem MPXE-Schalter zugeführt. Der MPXE-Schalter erhält zu diesem Zeitpunkt auch noch am Eingang ein Freigabesignal und ein Eingangssteuersignal von dem Mikro-Code-Generator 150, durch das die Inhalte des Registers R1 in
die B-Verriegelung 160 durchgesteuert (gat-d) werden. Die B-Verriegelung erhält wie die vorstehend beschriebenen
Verriegelungen ein Verriegelungs-Eingangssignal, das als
Ergebnis eines der Freigabesignale von dem Mikro-Code-Generator 150 erzeugt wird und den Durchgang des Inhaltes des Registers R- durch den MPXE-Schalter zur Durchschleussung oder Durchsteuerung in die Verriegelung gestattet. Da die B-Verriegelung nunmehr beladen ist, bewirkt die Steuer-
und Taktlogik 155, dass das Signal "BLU Besetzt" inaktiv
(aufgehoben) wird. Das Aufheben des Signals "BLU Besetzt" gestattet nunmehr dem EPIC die Erzeugung oder Ausgabe des nächsten Operationscode 57 an den BLU. Wie in Tabelle 5
509851/0986
gezeigt, gibt dieser Befehl an, dass die Inhalte des Registers R2 in den R-Registern 156 des BLU in die F-Verriegelung 166 überfuhrt werden sollen. Nach Erhalt des Operationscode geht der BLU sofort in den "Besetzt-Zustand" und der MikroCode-Generator erzeugt die richtigen \usgangssignale, die bewirken, dass das Register Rg in den R-Registern adressiert wird. Das Register R2 wird nunmehr von einem zweiten Teil der Y-Verriegelung adressiert, der die Adresse auf den Leitern zum MPXB-Schalter liefert, wobei diese Adresse nunmehr zu den R-Registern durchgesteuert wird zur Adressierung des Registers R9. Der Ausgang des Registers R2 wird nunmehr auf den Leitern 176 dargeboten, welche den Inhalt des Registers R„ als ein Eingangssignal der F-Verriegelung 166 zuführen. Der Inhalt de. Registers R2 wird nunmehr in die F-Verriegelung durch ein Freigabesignal durchgesteuert, das vom Mikro-Code-Generator erzeugt und der F-Verriegelung zugeführt wird. Die F-Verriegelung enthält nunmehr einen 4-Bit-Vektor, der zuvor im Register R2 gespeichert war.
Die Steuer- und Takt logik 155 für den BLU hebt nunmehr das Signal "BLU Besetzt" auf und gestattet damit dem EPIC mit der Ausgabe des nächsten Operationscode (Operationscode 62) zu antworten. Der Operationscode 62 wird an den BLU geliefert und erzeugt unmittelbar nach einer Decodierung d^s Operationscode durch den Detektor 150 das Signal "BLU Besetzt" zum EPIC. Wie in Tabelle 5 gezeigt, gibt der Operationscode 62 an, dass das Boole'sehe innere Produkt (BPI) dadurch erzeugt wird, dass die UND-Funktion an jedem der nunmehr in den A- und B-Verriegelungen (158 und 160) gespeicherten Vektoren durch den ALU 1 ausgeführt wird. Der vom ALU 1 erzeugte resultierende Vektor wird dann dem Eingang des ALU 2 zugeführt, das nunmehr ein Ausgangssignal liefert, das repräsentativ ist für die ODER-Bildung an allen Bit des vorgenannten Vektors. Das 1-Bit-Ausgangssignal vom ALU 2 wird der T/C-Schaltung 162 zugeführt. Die T/C-Schaltung 162 lässt in diesem bestimmten Falle das Bit direkt durch zum Eingang des T/C-Flip-Flop 164. Die vorstehend beschriebenen 0 erationen der UND-Funktion und ODER-
509851/0986
Funktion fur den ALU 1 und den ALU 2 stellen eine einfache Kombinationslogik dar, bei der alle Signale ohne Gattersteuerung direkt durch die beiden Einheiten und auch noch durch die T/C-Schaltung durchlaufen. Das an den T/C-Flip-Flop gelieferte 1-Bit wird jedoch in diesen Flip-Flop durch ein Freigabe-Signal durchgesteuert, das von dem Mikro-Code-Generator 150 erzeugt wird, im Zusammenwirken mit einem Taktsignal, das von der Steuer- und Taktlogik 155 geliefert wird. Der BLU wird nunmehr sein "Besetzt-Zeichen" aufheben und den EPIC anweisen, als Antwort seinen nächsten Operationscode auszugeben (Operationscode 60). Wie aus Tabelle 5 ersichtlich, gibt der Operationscode 60 an, dass die Inhalte des T/C-Flip-Flop durch Gatter in den Platz F„ der F-Verriegelung 166 durchgesteuert werden, wie es durch die beiden in der R-Verriegelung 146 enthaltenen und von dem Bit-Adressendecodierer 168 decodierten Bit festgelegt ist. F gibt eines der vier Bit in dem Vektor an, der nunmehr in der F-Verriegelung nach vorheriger Eingabe aus dem Register R2 enthalten ist. Nach Beendigung der Ausführung des Operationscode 60 ist das Ergebnis die Modifikation des Bit F„ des ursprünglich im Register R0 gespeicherten Vektors. Bei Empfang des Operationscode 60 wird der BLU wie vorstehend beschrieben in den "Besetztzustand" gehen und der Mikro-Code—Generator 150 wird ein Freigabesigual erzeugen, das der F-Verriegelung zugeführt wird, um das Bit aus dem T/C-Flip-Flop in das Bit F„ der Verriegelung 166 mit Gatter durchzusteuern.
De- BLU wird nunmehr in den Zustand "Nicht Besetzt" gehen. Der EPIC wird erneut ansprechen durch Erzeugung oder Ausgeben des Operationscode, der wie bereits erwähnt in die Operationscode-Verriegelung 144 des BLU geladen wird. Wie in Tabelle 5 gezeigt, weist der Operationscode 41 den BLU an, den Inhalt der F-Verriegelung in das Register R„ zu setzen. Dies wird dadurch erreicht, dass der Mikro-Code-Generator 150 die richtigen ausgangsseitigen Freigabesignale an die Schalter MPXF und MPXB liefert, so dass die Inhalte der F-Verriegelung durch den MPXF-Sohalter mit Gatter in das Register R9 durchgesteuert
509851/0986
werden können, gemäss der Bestimmung durch die R9 Registeradresse, die jetzt in der Y-Verriegelung 148 enthalten ist. Bei der Auslesung des Operationscode 41 aus dem EPIC enthielt dieser Befehl ein Bif'Stop", das von dem EPIC dazu benutzt wird, diese Einheit in den Zustand "Nicht Besetzt" zu bringen, sobald der BLU den Operationscode 41 angenommen hat. Da der EPIC nunmehr "Nicht Besetzt" ist, steht er zur Verfugung zum Empfang eines weiteren Befehls, obwohl der BLU seine letzte angewiesene Operation noch nicht beendet hat. Sobald der auf den neuesten Stand gebrachte Vektor in das Register R3 eingegeben ist, geht der BLU erneut in den Zustand "Nicht Besetzt" und steht zur Verfügung zum Empfang nachfolgender Operationscode.
Die Figur 23 zeigt eine Hierarchie von Sequenz-Operationscode und die resultierenden Operationscode der unteren Ebene zur Veranschaulichung der \rbeitsweise, in der ein Befehl einer höheren Ebene (Operationscode 270) in eine Kombination von 2 Sequenz-Operationscode (121, 170) und zwei Direktoperationscode (100, 52) aufgefächert wird. In Figur 22 werden auch noch die zehn resultierenden Operationsc: de gezeigt, die von den EPUs, DMU und BLU ausgeführt werden. Wie gezeigt, werden vier Operationscode von dem DMU ausgeführt und sechs Operationscode werden von dem BLU ausgeführt als Folge der in dem MIC, dem DMC und dem EPIC gespeicherten Sequenzen.
Es wird erneut Bfzug genommen auf die Figur 5. Eine der gezeigten EPUs ist die Zwischenverbindungs-Logik 78 (interface Logik) und die alphanumerische Anzeige 76. Die folgende Information beschreibt wie handelsmässig erhältliche Einrichtungen, beispielsweise Zeilendrucker, Kartenleser, Magnetbandeinheiten und Scheibenmasken-Speichereinrichtungen usw., welche nicht die Steuerstruktur wie die vorstehend beschriebenen Verarbeitungseinheiten besitzen, in ein System gemäss der vorliegenden Erfindung eingefügt werden können. 1Ur die Zwecke dieser Beschreibung wird eine beispielhafte Form eines solchen Gerätes aus den verschiedensten handelsmässig erhältlichen Geräten
509851/0986
ausgewählt, das als EPU ein Anzeige-Teilsystem Modell BDS 40832 - 200 des Typs "Self-Scan" (Warenzeichen) der Burroughs Corporation verwendet in Verbindung mit einer Zwischenverbindungs-Logik zur Verbindung dieses Anzeige-Teilsystems mit dem TPU der nnchst höheren Ebene. Dieser TPU der nächst höheren Ebene ist hier als ein Zeichenverarbeitungsleitwerk (CPC 32) (character processor controller) gezeigt, das über den CPC-Bus 70 mit der Zwischenverbindungs-Logik 78 der alphanumerischen Anzeige 7ß verbunden ist. Eine Beschreibung und Spezifikation des Teilsystems von Burroughs ist zu finden in Burroughs Corporation Bulletin Nr. 1172C vom Januar 1972, Wie in diesem Bulletin beschrieben, gestattet das Anzeige-Teilsystem die Anzeige von bis zu 256 alphanumerischen Zeichen (diese sind nominell in Gruppen geordnet zur Bildung einer sinnvollen Nachricht). Wie von Burroughs angegeben, erfordert das Anzeige-Toilsystem die Aktivierung einzelner gesteuerter Eingangs leitungen, um die Grundfunktionen der Änderung eines Zeichens auf der Anzeige usw. auszuführen. Zu diesem Zwecke besitzen die einzelnen Befehle, welche dem Anzeige-Teilsystem von einem TPU einer höheren Ebene geliefert werden, Operationscode, welche diese Befehle als Direktbefehle kennzeichnen. D.h. für jeden dem Anzeige-Teilsystem über seine Zwischenverbindungs-Logik dargebotenen Befehl wird eine Funktion ausgeführt, beispielsweise Löschen der Anzeige usw.
Es wird nunmehr Bezug genommen auf die Figur 24 in Verbindung mit Figur 5. Die Figur 24 zeigt in Blockform, wie ein handels- «ässig erhältliches Produkt als ΕΡϋ is die Architektur des Systems eingeffigt werden kann unter Verwendung eines Nahtstellenadapters oder einer Nahtstellenlogik (Zwischenverbindungsadapter, Interface-Adapter). In Figur 24 werden über eine Befehls-Saaunelleitung oder Bus 254 Befehle mit Operationscode geliefert, für welche der EPU verantwortlich ist, wie dies in der gleichen Weise vorstehend für das übrige System beschrieben wurde, und die Befehle werden einem Zwisenenverbindungsadapter (interface adapter) 256 zugeführt. Im wesentlichen umfasst der Zwisehenverbindungsadapter der Figur 24 die Steuer-
509851/0986
struktur ähnlich der vorstehend für die anderen EPU beschriebenen Steuerstruktur, beispielsweise fur den DMU und den BLU, zur Ausführung der richtigen Umsetzungen, die zur Herstellung einer Zwischenverbindung zwischen einem handelsmässigen Gerät und der Architektur des Systems gemäss der vorliegenden Erfindung erforderlich sind. "
Wie alle Verarbeitungseinheiten in dem System wird dem Anzeige-Teilsystem EPU ein Block von Operationscode zugeteilt, der Befehle zur Steuerung der Arbeitsweise des Anzeigegerätes definiert. Die nachstehende Tabelle 6 enthält eine Vielzahl von Befehlen mit Direktoperationscode, welche zur Erläuterung der Anzeige in der vorliegenden Ausfihrungsform zugeteilt wurden. Diese Operationscode können jedoch willkürlich für einen besti .imten Anwendungsfall umnumeriert werden. Der Anwendungsfall ist dabei abhängig von dem Typ des handelsmässig erhältlichen Gerätes, das in das System eingefügt wird. Die mittlere Spalte in Tabelle 6 enthält noch eine Beschreibung der in dem
Zwischenverbindungsadapter für jeden dargebotenen Operationscode ausgeführten Operation. In der rechten Spalte gibt die
Tabelle 6 weiterhin noch eine Beschreibung der Operation,
welche in dem Anzeigegerät erfolgt.
609851/0986
DIREKT OPCODE No.
- 70 Tabelle β
IM ZWISCHENVERBINDUNGSADAPTER AUSGEFÜHRTE OPERATION (INTERFACE)
OPERATION IN DER ANZEIGEEINHEIT'
SSIU-LEERBEFEHL
"Besetzt-Signal" erzeugt, dann aufgehoben, keine anderen Funktionen ausgeführt Keine Operation ausgeführt
"SCHREIBMARKE AUF WARTESTELLUNG" (HOME CURSOR) Erzeugung des diskreten Signals "Schreibmarke auf Wartestellung" f'ir die ^nzeigeeinheit (Self Scan Unit) Stellt die Pchreibmarke (vom derzeitigen Anzeigeort) auf die obere linke Ecke der Anzeige
SPRUNG SCJIREIBMARKE (CURSOR)
(Laufwagen)
Puffern des Operandteils des
Befehls zur Anzeigeeinheit;
dann erzeuge das Einzelsignal
{Diskretes Signal) "Schreib-
nrarke vorladen" {"Cursor
Pre loa d*f ) wa r t e das Ru c krae 1 -
designal "Daten angenommen"
("Data Taken") ab, dann "Be-
setzisignal" aufheben.
Schreibmarkenzahl auf die Werte einstellen, die auf den Eingangsleitungen vorhanden sind.
Schreiljmarke AUSLESEIi (READ CURSOH)
Puffere die Leitungen "Schrei binar ken-Adresse-Ausgabe* zu der SSIU-\usgabe-Verriegelung
Keine deration
503851/0986
Fortsetzung Tabelle
'JCIIRFIBK ZEIClIIiN AUF ANZEIGT: Puffere Operandenteil des Befehls zu den Leitungen "Daten Eingabe" an der Anzeige-Einheit ("Self Scan"), dann'erwarte das Signal "Daten "Angenommen" Ersetze das Zeichen auf derzeitigem Ort der
Sehreibinarke durch neuen Zeichencode, dann schalte Sehreibmnrke um 1 weiter.
Frei
Hehreibmarke HOCH (CURSOR UP) Aktiviere die Einzelsteuer-Leit ims "Schreibmarke Hoch" Vermindere den derzeitigen
S'.?hr eibmar kenplatz um 32.
SCIIREIBM\RKE UNTEN (CURSOR DOWN)
Aktiviere die Einzelsteuer-Leitung "S-'hreibmarke unten" der Anzeige Erhöhe den derzeitigen Schreibmarkenplatz um 32.
SCUREIBMXRKE LINKS ("CURSOR LEFT") Aktiviere die Einzelsteuer-L^itung "Schreibmarke Links" der Anzeige Vermindere den derzeitigen Schreibmarkenplatz um 1
SCIiItEIBM\RKE RECHTS ("CURSOR RIGHT") Aktiviere die Einzelsteuer-Leitung "Schreibmarke nach rechts" der Anzeige Erhöhe den derzeitigen Schreibmarkenplatz um 1
509851 /0988
Fortsetzung der Tabelle 6
SCHitEIBMARKE SICHTANZEIGE EIN (CURSOR VISUAL ON)
Flip-Flop "Sichtanzeige Ein" Setzen (Set) aktiviere die Einzelsteuerleitung "Schreibmarken-Sichtanzeige Ein", die aktiviert bLeibt; nachdem die Einheit nicht "Besetzt" ist
Derzeitiger Ort der Schreibmarke
wird sichtbar abgebildet durch
vollständig ausgefülltes Zeichen.
SCHREIBMARKE SICHTANZEIGE AUS (CURSOR VISUAL OFF)
Deaktiviere den Flip-Flop SICHTANZEIGE EIN; sperrte die Einzelsteuerleitung "Schreibmarken Sichtanzeige Ein".
Sichtbare \bbildung des Schreibmarkenortes wird deaktiviert.
SCHREIBMARKEN BLINKEN EIN (CURSOR BLINK ON)
Setze (Set) Flip-Flop "Blinken" Freigabe der Einzelsteuerleitung "Schreihsaarke Blinken** zu der Anzeigeeinheit
Visuelle Schreibma rkenanzeige
blinkt Ein, dann Aus; blinkt dann mit einer festen Frequenz.
SCHREIBMARKEN BLINKEN AUS (CURSOR BLINK OFF)
Deaktiviere den Flip-Flop "Blinken"; hierdurch wird die Eützelsteuerleitung "Schreibmarke Blinken" gesperrt ,
WAGENRÜCKLAUF (CARRIAGE RETURN) Aktiviere die Einzelsteuerleitung "Wagenrücklauf",
Visuelle Schreibinarkenanzeige
wird nicht mehr blinken.
Führt den Schrei braarkenort weiter zuffl Anfang des
nächsten Segmen tes von 32 Zeichen.
509851/09ß6
Fortsetzung der Tabelle 6
037 ANZEIGE LOSCHEN (CLEAR DISPLAY) Setze alle Zei-Deaktiviere die Flip-Flop-Elemente chen der Anzeige "ANZEIGE EIN" und "BLINKEN", auf Austastung Aktiviere die Einz^elsteuer leitung (Löschen) (Blank); "LÖSCHEN". setze die Schreib-
marke auf 0.
Die Figur 25 zeigt ein Hauptblockschaltbild des Anzeige-EPU, das den Zwischenverbindungsadapter 256 für das Anzeigegerät und eine Anzeigeeinheit 258 enthält. Der Anzeige-EPU erhält Operationscode und Operandendaten von dem CPC-32 über den CPC-Bus 70 als Eingangssignale zum Adapter der Anzeige. Die Eingänge sind mit "Datenoperanden ein" und "Direktoperationscode" bezeichnet. In der Figur 25 sind auch noch Zwischenverbindungssteuerleitungen und Datenleitungen gezeigt und durch geeignete Benennungen gekennzeichnet, welche den Zwischenverbindungsadapter für die Anzeige mit der Anzeigeeinheit verbinden. Es ist zu beachten, dass die mit einer in Klammern gesetzten Zahl versehenen Leitungen (Linien) die Anzahl der Drähte angeben, die in der stofflichen Ausführung zwischen dem Zwischenverbindungsadapter und der Anzeigeeinheit verwendet werden. Beispielsweise besteht die Vielfachleitung oder Bus "Daten Ein" aus sechs Leitungen um sechs Datenbit aus dem Zwischenverbindungsadapter zur Anzeigeeinheit zu liefern. Alle Leitungen (Linien), bei denen nur eine einzelne Loitung angedeutet ist, beispielsweise die Leitung "Schreiben", sind einzelne Drähte, die zur Lieferung von Steuersignalen an die Anzeigeeinheit benutzt werden, um diese Einheit zur Ausführung einer durch die Leitung bezeichneten Funktion zu veranlassen. Es sind zwei einzelne Leitungen vorhanden, die Signale von der \nzeigeeinheit zurück zum Zwischenverbindungsadapter der Anzeige liefern, welche von dem letzteren zur
509851/0986
Kennzeichnung von einem von zwei Z.; stunde η benutzt werden. Der erste Zustand ist der Zustand der .Vi t tei lung an den Zwischenverbindungsadapter für die Anzeige, dass die Anzeigeeinheit zum Empfang von Daten bereit ist. Der zweite dieser Zustande ist ein Signal "Daten ^genommen'1, das dem Zwischenverbindungsadapter von der Anzeigeeinheit geliefert wird, und dem Adapter anzeigt, dass die letzten der Anzeigeeinheit dargebotenen Daten empfangen oder angenommen worden sind.
Es wird Bezug genommen auf die Figur 20, aus der ersichtlich ist, dass eine starke Ähnlichkeit d\?r Anordnung nach diesem Blockschaltbild im Vergleich zu den zuvor geschriebenen Et1U besteht. D.h. der Zwischenverbindungsadapter '2> enthält eine Operationscode-Verriegelung 200 und eine Daten-Eingabeverriegelung 262 zum Empfang von Daten in dei {!eichen Wei^e wie in den zuvor beschriebenen EPU. Weiterhin enthält der Zwischenverbindungsadapter 256 auch noch einen Code-Giiltig-Detoktor 264 zur Erzeugung eines Sir>..als "Code Gültig" auf einer Leitung 266 bei Vorhandensein eines Operationscode in ch-c Operationscode-Verriegnlung, f'ir den dieser EPU verantwortlich ist. Das Signal "Code Gültig" wird einem Besetzt 'Takt Generator 268 .geführt , der zur Erzeugung eines Signais " unseigi? Besetzt" zum CPC benutzt wn'd, um den letzteren in der vorstehend beschriebenen Weise zn steuern, D< r Desel ι Takt-Generator 268 erzeugt auch noch bestimmte Aus,,angstaktsigna Io zui· Steuerung der Gatterung von information durch die verschiedenen Blocks des Zwischt. /erbindungsadapters und zur Zeitgabe der Information und ihrer Weit., rgaue an die Anzeigoeinheit geliefert wird. Es ist zu beachten, dass der Besetzt Takt-Generator das Signal "Anzeige Besetzt'' einem Generator 27O fi'ir diskrete Steuersignale zufnhrt, tier noch nachstehet, beschriften ^wird. Der ZwiscHenveri)indumi*>>i<U*«t*ir 'iCrl enthalt auch noch einen Operationscode-DecuJer 272, ti«"· in der bevorzugten Ausführungsform bus einem programmiei-baren Festwertspeicher besteht, wobei 12 l'orte mit 21 Bit nro fortin diesem Speicher unmittelbar durch die Operationsc«jde-Verriegelung adressierbar sind, ujh nuügiijQgssei tigf Steuersignale
S098S1/0988
SAD
zu dem Generator 270 für Einzelsteuersignale über Leitungen 274 zu liefern, die von dem letzteren zur Lieferung von Steuersignalen an die Anzeigeeinheit gemäss dem am Zwischenverbindungsadapter vorhandenen Operationscode decodiert werden.
Die Daten-Eingabe-Verriegelung liefert Daten direkt an die Anzeigeeinheit iber Leitungen 27(5. In Figur 2ß umfassen diese Daten zwei Sätze von Signalen, die als S -hreibmarken-Adresse oder "Daten Ein" bezeichnet sind. Diese beiden Sätze von Signalen werden aus dem gemeinsamen Bus 276 erhalten. In \bhängigkeit vom Operationscode sind die dargebotenen Daten entweder eine Schreibmarken-Adresse oder Dateneingabe zur \nzeige.
Der Anhang D gibt eine vollständige Aufstellung der verschiedenen logischen Bauelemente und zeigt die Typenbezeichnung des Bauelementes, die Zahl der verwendeten Bauelemente, den Hersteller und die von ,jedem dieser Bauelemente beim Aufbau der Logik-Blöcke im Adapter 25β der Figur 2ß ausgeführten Funktionen. Der Fachmann kann anhand dieser Hinweise und Bauelemente ohne weiteres eine Einrichtung aufbauen, welche die Funktionen und die beschriebenen Operationen ausführt.
Zur Beschreibung der Arbeitsweise des Anzeige-EPU werden nicht alle in Tabelle G aufgeführten Befehle beschrieben, da zwei typische Beispiele für den Fachmann ausreichend sind zum Verständnis der \rbeitsweise der Erfindung und zur Einfügung der Logischen Bauelemente in die Zwischenverbindungsadapterlogik in richtiger Weise um die nicht im einzelnen beschriebenen Befehle auszuführen.
Nachstehend wird die Arbeitsweise des Anzeige EPU bei der Ausführung des Befehls "Anzeige Löschen" ("Display Clear") (Operationscode Ί7) beschrieben. Wie aus der Tabelle β ersichtlich, wird der Operationscode 37 dazu benutzt, alle Zeichen auf der ^izeige zu löschen (auszutasten) (blank), d.h. jegliche auf der Anzeige augenblicklich vorhandene Infor-
5098 5 1/0988
mation zu löschen und eine Schreibmarke auf 0 zu setzen. Die Schreibmarke (Cursor) ist eine elektronische Einrichtung in der Anzeigeeinheit, die auf eine gegebene Position gebracht wird, um eine Stelle auf der Anzeigeeinheit zur Anzeige von Datenzeichen zu lokalisieren. In der hier erläuterten Anzeigeeinheit bewirkt die Einstellung der Schreibmarke auf Null die Einstellung derselben auf eine hohe Position, welche der oberen linken Ecke der Anzeige (Bildschirm) (display) und damit der Startstellung für die Schreibmarke entspricht.
Es wird Bezug genommen auf die Figuren 26 und 27 und angenommen, dass der Zwischenverbindungsadapter 256 nicht besetzt ist. Daher ist das Signal "Anzeige Besetzt" zum CPC eine binäre O und bewirkt die Freigabe des CPC zur Eingabe des Operationscode 37 auf den CPC-Bus zwecks Eingabe zur Operationscode-Verriegelung 260 und zur Dateneingabe-Verriegelung 262 der Figur 26. Wenn sich der Operationscode 37 in der Operationscode-Verriegelung befindet, dann erzeugt der Code-Gültig-Detektor 264 ein Ausgangssignal "Code Gültig" zur Eingabe zum Besetzt/Takt-Generator 268. Die zeitlichen Verhältnisse, das Basistaktsignal des Systems, das Vorhandensein des Operationscodes auf dem Bus und die Erzeugung des Signals "Code Gültig" sind in Figur 27 gezeigt. Sobald der Besetzt/Tikt-Generator das Signal "Code Gültig" erhalt, geht der Zwisehenverbindungsadapter in den Besetztzustand beim nächsten Basistaktsignal. Mit der Freigabe des "Besetzt"-3ignals benachrichtigt das Besetzt-Signal nunmehr den CPC, dass der Anzeige-EPU besetzt ist und zu diesem Zeitpunkt keine Daten empfangen kann.
Gleichzeitig mit der Decodierung des Operationscodes durch den Code-Gültig-Detektor 264 wird der Operationsdecoder 272 an einem durch den Operationscode bestimmten Platz adressiert, D^r Inhalt des vom Goerationseode 37 adressierten Platzes wird ausgelesen und liefert eine bestimmte Bit-Anordnung an den Generator 27ö. ±'·>γ Einzel-Steuersignale. In diesem besonderen Fall wird über eine der 24 Steuerleitungen vom Opera-
509851/0988
tionsdecoder 272 ein Signal an den Einzel-SteuersignaI-Generator 270 geliefert, das als "Vizeige Löschen" bezeichnet ist (nicht abgebildet). Wie aus dem Taktimpuls-Diagramm der Figur 27 ersichtlich, geht der Zwischenverbindungsadapter nun so lange in einen Wartezustand, bis ein Bereitschaftssignal von der Anzeige an den Einzel-Steuersignal-Generator 270 geliefert wird. Wenn das Bereitschaftssignal dem Einzel-Steuersignal-Generator als binäre 1 geliefert wird, dann erzeugt der Generator ein Ausgangssignal "Löschen" an die Anzeigeeinheit. Die Kombination des Bereitschaftssignals, des Signals "Freigabe Besetzt" und des Decodierungssignals "Anzeige Löschen" von dem Operationsdecoder, welche dem Einzel-Steuersignal-Generator zugeführt werden, bewirkt die Erzeugung des Lösch-Signais für die \nzeigeeinheit. Wie in Figur 27 gezeigt, hebt die Anzeige nunmehr das Bereitschaftssignal auf, und der Adapter wartet darauf, dass das Bereitschaftssignal erneut als logische 1 von der Anzeigeeinheit erscheint, bevor er weitere Operationen ausfährt. Woηη das Bereitschaftssignal von dem Einzel-Steuersignal-Generator empfangen wird, dann wird das Signal "Besetzt" mit dem Eintreffen des nächsten Takt-Signals auf eine logische 0 zurückgesetzt. Dies wird gemäss der Darstellung in Figur 2G dadurch erreicht, dass ein Signal "Bewendet" an dem Leiter 278 dem Bosetzt/Takt-Generator 228 zum Zeitpunkt des Empfangs des Bereitschaftssignals durch den Einzel-Steuersignal-Generator zugeführt wird. Der Anzeige-EPU wartet nunmehr einen weiteren Ojerationscode ab oder beginnt mit der Ausführung eines Operationscodes, der auf den CPC-Bus gesetzt wurde, während diese Einheit mit der Ausfuhrung des Operationscode Löschen" (Operationscode 37) beschäftigt war.
Der zeitliche >blauf zur \usführung aller weiteren in Tabelle 6 aufgeführten Befehle durch den Anzeige-EPU ist in Figur 28 gezeigt. Figur 2F betrifft grundsätzlich alle Befehle für Positionswahl (Schreibmarke') und Anzeige. Es ist jedoch zu beachten, dass die Kurve "S-hreibmarke Hoc! " ("Cursor Up") nur Befehle zur Einstellung der Schreibmarke betrifft und
509851/0988
2574229
die mit "Daten angenommen" ("Data Taken") bezeichnete Kurve nur für die Anzeigebefehle zutrifft.
Die Ausführung des Befehls "Schreibmarke Hoch" (Operationscode 26) bewirkt, d:; ss der Zwi.schenverbindungsadapter 25Π eine Steuerleitung für das Hochsetzen der Schreibmarke vom Einzel-Steuersignal-Generator der Figur 2fi zur \nzeigeeinheit aktiviert. In der Anzeigeeinheit bewirkt dieses Steuersignal, dass der derzeitige Platz der Schreibmarke um Vl vermindert wird und hierdurch die Schreibmarkenstellung um 32 Punkte gegenüber ihrer gegenwärtigen Stellung auf der \nzeige hochgesetzt wird. Der \nfangsteil der Ausführung dieses Befehls durch den Anzeige-EPU ist der gleiche wie vorstehend für den Befehl "Anzeige Löschen" beschrieben, wobei uas "B<?setzt-SignaI" erzeugt wird, nachdem das Signal "Code Gültig" durch den Code-Gültig-Detektor freigegeben wird. W->nn der Operationscode von der Operationscode-Vorriegelung einen Platz in dem Operations-Decoder 272 adressiert, dann wird ein Decodierungswort aus dem Decoder ausgelesen, das ein Steuerbit enthält, das den Einzel-Steuersignal-Generator 270 anweist, das Signal "Schrei binar ke Hoch" zu erzeugen. Wie in Figur 2> gezeigt., wird ein Flip-Flop 2 (nicht gezeigt) i« den Einzel-Steuersignal-Generator gesetzt (set 1 oder durchgeschaltet während einer Taktoeriode «ach der Aktivierung eines "Befsetzf-Signals", Das Einstellen oder Durchschalten des Flip-Flop 2 wird bewirkt durch die Kombination des "Besetzt-Signa Is", des "Takt-Signa Is" und des Decodierungsstiijer—Si ,jüi Is vqjb Operationsdecoder, Beim nächsten Takt wird ein Flip-Flop 4 (nicht gezeigt) in dem Einzel-Steuersigna1-Genorator gesetzt oder durchgeschaltet und der Flip-Flop 2 wird zurückgesetzt (reset). Wenn der Flip-Flop 4 durchschaltet, dann wird das Signal "Sehreihaarke Hoch" zur \nzeige übertragen und bewirkt, dass die \nzeige die angegebene Funktion ausführt.
Beim nächsten Takt-Signal werden das "Besetzt-SignaI" und das Signal "Schreibsmrke Hoch" beide auf eine logische i gebracht und auf diese Weise wird die Ausführung des Befehls dadurch
8851/0988
79 - 2574229
beendet, dass der Einzel-Steuersigna 1-Gonerator das Signal "Beendet" zum Besetzt-Takt-Generator erzeugt. Es ist darauf hinzuweisen, dass in dem Taktimpuls-Diagramm der Figur 28 der Befehl "Schreibmarke Hoch" und alle Befehle ähnlicher \rt keine Überwachung des Signals "Daten Angenommen" von der Anzeigeeinheit durch den Einzel-Steuersignal-Generator erfordern. Das Signal "Daten Angenommen" wird von der Anzeigeeinheit stets dann erzeugt, wenn die Anzeige angewiesen wird, die Schreibmarkeneinstellung zu betätigen (die Schreibmarke wird um einen Betrag verschoben, wie er durch die Adresse in der Dateneingabe-Verriegelung bestimmt ist1) oder wenn die Anzeige angewiesen wird, ein \nzeigezeichen auf der Anzeige gemnss den Daten zu schreiben, die zur Anzeige über die Dateneingangsleitungen von der Dateneingangs-Verriegelung übertragen werden. Die Befehle, welche die Verwendung des Signals "Daten Angenommen " erfordern, sind in Tabelle ß aufgeführt. Wie in ixgur 28 gezeigt, erfoLgt die Taktgabe gemäss der Darstellung, wenn ein Befehl bezüglich der Schreibmarke oder des Schreibens eines Anzeigezeichens von dem Anzeige-EPU ausgeführt wird, mit der \usnahme, dass das Signal "Daten Angenommen" von der Anzeigeeinheit dem Einzel-Steuersignal-Generator nach Figur 2β zugeführt wird, nachdem die Anzeigeeinheit die Daten empfangen hat. Das Signal "Daten Angenommen" wird von dem Einzel-Steuersignal-Generator benutzt zur Erzeugung des Signals "Beendet" zum Besetzt/Takt-Generator, der seinerseits ein Signal "Nicht Besetzt" beim ersten nach dem Signal "Daten Angenommen" folgenden Takt erzeugt. Es ist zu beachten, dass das Besetzt-Signal auf eine logische 0 beim ersten Taktsignal nach dem Übergang des Signals "Daten Angenommen" auf eine logische 1 übergeht, wenn das Signal "Daten \ngenommen" zu irgendeiner Zeit nach der Rückstellung des Flip-Flop 1 ansteigt. Daher ist es denkbar, dass das Besetzt-Signal sich um eine Taktperiode über die im Taktimpuls-Diagramm der Figur 2P gezeigte Stellung hinaus erstrecken kann.
Der Anhang E zeigt eine auf einem Rechner ausgedruckte Liste von Befehlen, die in einem gemäss der vorliegenden Erfindung
509851/098 8
aufgebauten arbeitsfähigen System erhalten sind. Diese Liste entspricht allgemein den hier verwendeten Bezeichnungen der Symbole mit Ausnahme der Tatsache, dass der Ausdruck "MPC" dem Steuerabschnitt 12, der \usdruck "SSU" dem ANDU 7<3-7fi und DEM dem DMU 48 entspricht. Zusammengefasst, ist festzustellen, dass vorstehend die Architektur eines Rechnersystems gemäss der Erfindung offenbart wird, die es dem Konstrukteur ermöglicht, Baublöcke zur Schaffung eines Rechnersystems zu benutzen unter maximaler Verwendung gegenwärtig vorhandener und erwarteter Fortschritte von mittleren und grossen integrierten Schaltkreisen (MSI/LSI) (medium and largescale integration) zur Verringerung des Ausmasses der Software-Probleme eines Rechners, wie sie bei der derzeitigen Generation von Rechnersystemen vorhanden sind,
Im wesentlichen gestattet die vorliegende Erfindung es dem System-Ingenieur, zusätzliche Mengen von kapitalintensiver Hardware (MSI/LSI-Hardware) anstelle grosser Mengen von arbeitsintensiver Grössen (Software) einzusetzen und hierdurch mit verringerten Kosten leistungsfähigere Datenverarbeitungs-Systeme zu schaffen. Eine hierbei erhaltene Datenverarbeitungsanlage gemäss der Offenbarung der dargestellten Ausführungsform gestattet dem Konstrukteur die Konstruktion eines Systems in Form eines programmierbaren Rechners, d r eine problemorientierte Maschinensprache auf hoher Ebene verwendet, die viele Software-rSchritte dadurch umgeht, dass die von der Maschinensprache definierten Befehle unmittelbar ausgeführt werden. Die Architektur des Systems gemäss der Erfindung gestattet den Ersatz von vielen Schritten oder Befehlen, die getrennt auf einem Universal-Digitalrechner zur Erzielung des gleichen Ergebnisses programmiert werden müssten, durch einen einzigen Schritt oder Befehl. Die von der vorliegenden Erfindung erreichten Vorteile bezüglich der Kosten des Systems beruhen auf der Architektur, die leistungsfähiger ist als ein Rechner mit standardmässigem Mikroprogramm, und zwar bezüglich der Menge der Festwertspeicher, die für einen gegebenen übergeordneten Befehl, beispielsweise
509851/0986
einen Makro-Befehl, erforderlich sind. Dies ergibt eine Maschinensprache, die für einen vorgegebenen Kostenaufwand der Festwertspeicher bedeutend leistungsfähiger gemacht werden kann.
Vorstehend wurden die Grundzüge der Erfindung in einer Ausfiihrungsform zur Veranschäulichung erläutert. Für den Fachmann ist jedoch verständlich, dass die verschiedensten \bwnndlungen der Struktur, der Anordnung, der einzelnen Elemente, der Materialien und Bauteile vorgenommen werden können, insbesondere im Hinblick auf bestimmte Umgebungsbedingungen und Anforderungen an den Betrieb, ohne den Umfang der Lehre der Erfindung zu überschreiten.
609851/0986

Claims (22)

Patentansprüche
1.) Datenverarbeitungssystem auf der Basis einer pyramidenförmigen Hierarchie von mindestens drei Ebenen mit einer Vielfach-Loitung (Bus) zur Zwischenverbindung benachbarter Ebenen derselben, dadurch gekennzeichnet , dass sie umfasst:
(A) eine erste Ebene, welche enthält:
(1) einen ersten Speicher (10) mit einer Vielzahl von adressierbaren Plätzen jeweils zur \ufnahme eines Befehlswortes, welches einen Operationscodeteil zur Festlegung einer auszuführenden Operation definiert,
(2) eine Sequenzsteuerung (12) zur Adressierung des
* Speichers (10) zum selektiven Zurückholen von Befehlsworten aus demselben und zur Eingabe dieser Worte auf den Bus (24) zur Zwischenverbindung der ersten und zweiten Ebene,
(B) zweite und dritte Ebenen, die jeweils eine Vielzahl von Veraroeitungseinheiten (TPU, EPU) enthalten, die parallel mit dem Bus zur Zwischenverbindung der entsprechenden Ebene mit der nächst höheren Ebene verbunden sind,
(1) jede der Verarbeitungseinheiten enthält eine Erkennungseinrichtung, welche auf den Operationscodeteil des Befehls«wöTtes auf dem Bus anspricht, mit dein sie mit der nrsehst höheren Ebene verbunden ist j unter ^nnahroe nur derjenigen Worte, welche bestimmte Operationscodeteile enthalten,
(2) wobei jede der zweiten und dritten Ebenen Ausführungs-Verarbeitungseinheiten (22) (EPU) und Übersetzer-Verarbeitungseinheiten (20) (TPU) besitzen kann und jede mindestens eine tibersetzer-Yerarbeitungseinheit <2O) (TPU) enthält,
(a) durch jede der Ausführungs-Verarbeitungseinheiten (22) (EPU) auf ein von ihr erlcanntes Befehlswort die von dem Befehlswort bestimmte
Operation ausführbar ist,
(b) jede der Ubersetzer-Vorarbeitungseinheiten (20) (TPU) Einrichtungen zur Unterscheidung zwischen ersten und zweiten Arten der von ihr erkannten Befehlsworte enthält, welche umfassen:
(i) Einrichtungen, durch welche dem ersten dieser beiden Arten von Befehlsworten das Befehlswort ohne Abänderung zum nächst niedrigeren Zwischenverbindungs-Bus übertragbar ist, und
(ii) Einrichtungen, durch welche bei Vorhandensein der zweiten Art von Befehlswort ein Vorgang gemäss einer gespeicherten Gruppe von zusätzlichen Befehlsworten ausführbar ist, welche zusammengefasst eine auszuführende Operation definieren, einschliesslich Einrichtungen zur Adressierung eines Speichers (21), welcher diese zusätzlichen Befehlsworte enthält, und
(c) adressierbare Kpeichereinrichtungen (21), die jeder der TJhersetzer-Verarbeitungseinheiten (20) zur Speicherung der zusätzlichen Befehlsworte zugeordnet sind.
2.) Datenverarbeitungssystem nach Anspruch 1 , dadurch gekennzeichnet, dass die adressierbare Speichereinrichtung (21) einen Festwertspeicher enthält.
3.) Datenverarbeitungssystem nach Anspruch 1 , dadurch gekennzeichnet, dass das Datenverarbeitungssystem mindestens vier Ebenen besitzt, wobei die unterste Ebene vollständig aus Ausführungsverarbeitungseinheiten (22) (EPU) besteht.
609851/0988
4.) Datenverarbeitungssystem nach Anspruch 1 , dadurch gekennzeichnet, dass die in den Verarbeitungseinheiten (TPU, EPU) enthaltene Erkennungseinrichtung eine Decodierungseinrichtung (102) (114) enthält.
5.) Datenverarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, dass die zweite Ebene mindestens zwei Übersetzer-Verarbeitungseinheiten (TPU) enthält, die jeweils den Beginn eines Hauptzweiges der Hierarchie bilden.
6.) Datenverarbeitungssystem nach Anspruch 5 , dadurch gekennzeichnet, dass jeder der Zweige in einer oder mehreren Ausfiihrungsverarbeitungseinheiten (EPU) endet.
7.) Datenverarbeitungssystem nach Anspruch 1 , gekennzeichnet durch:
(A) Jede der Verarbeitungseinheiten enthält Einrichtungen (106) zur Erzeugung eines Zustand-Signals, welches seine Fähigkeit zur Annahme eines Befehlswortes der Übersetzer-Verarbeitungseinheit (20) oder der Sequenzsteuerung (12) anzeigt, aus der sie ihre Befehlsworte erhält, und
(B) jede der Übersetzer-Verarbeitungseinheiten (20) und die Sequenzsteuerung (12) enthält:
(1) Einrichtungen (116) zum Empfang der Zustand-Signale von den Verarbeitungseinheiten der nächst niedrigeren Ebene, mit denen sie verbunden ist, und zur Verwendung als Anzeige-Signal für den Zustand dieses Zustand-Signals,
(2) Abfrageeinrichtungen zur Abfrage des Operationscodeteils eines zurückgeholten Befehlswortes zur Feststellung, an welche Verarbeitungseinheit der nächst niedrigeres Ebene dieses Befehlswort adressiert ist,
809851/0386
(3") Einrichtungen zur Festlegung des Zeitpunktes zur Änderung des auf dem nächst niedrigeren Bus verfügbaren Befehlswortes gemäss der Bestimmung der Abfrageeinheit und des passenden Zustand-Signals.
8.) Datenverarbeitungssystem nach Anspruch 7 , dadurch gekennzeichnet, dass durch die Einrichtung, welche auf die Bestimmung des
anspricht, Abfragevorgangs und das richtige Status-Signals/bei einer vorgeschriebenen änderung des Zustandes des Zustand-Signals das Befehlswort auf dem nächst niedrigeren Bus veränderbar ist.
9.) Datenverarbeitungssystem nach Anspruch 8 , dadurch gekennzeichnet, dass die vorgeschriebene Veränderung eine Veränderung einer Anzeige "Nicht Besetzt" für die niedrigere Verarbeitungseinheit zu einem "Besetzt"-Signal für diese Einheit ist.
10.) Datenverarbeitungssystem auf der Grundlage einer pyramidenförmigen Hierarchie von mindestens drei Ebenen mit einer Zwischenverbindung durch einen Bus benachbarter Ebenen derselben, dadurch gekennzeichnet , dass sie umfasst: (A) eine erste Ebene, die enthält:
(1) einen ersten Speicher (10) mit einer Vielzahl von adressierbaren Plätzen jeweils zur Aufnahme eines Befehlsworts, das einen Operationscode zur Bestimmung einer auszuführenden Operation enthält, und
(2) eine Sequenzsteuerung (12) zur Adressierung des Speichers (10) zur selektiven Zurückholung von Befehlsworten aus demselben und zur Eingabe dieser Worte auf den Bus (24)
609861/0986
— Bn —
zur Zwischenverbindung der ersten und zweiten Ebene,
(B) zweite und dritte Ebenen, die jeweils eine Vielzahl von V'Tarbeitungseinheiten (TPU, EPU) (20, 22) enthalten, die parallel mit dem Bus (24) zur Zwischenverbindung der jeweiligen Ebene mit der nächst höheren Ebene verbunden sind,
(1) wobei jede der Verarbeitungseinheiten eine Erkennungseinrichtung enthält, die auf den Operationscodeteil des Befehlswortes auf seinem Bus (24) zur Zwischenverbindung mit der nächst höheren Ebene anspricht zur Annahme nur derjenigen Worte, welche bestimmte Operationscodeteile enthalten,
(2) wobei jede der zweiten und dritten Ebene Ausführungs-Verarbeitungseinheiten (22) (EPU) und Übersetzer-Verarbeitungseinheiten (20) (TPU) enthalten kann und mindestens eine Übersetzer-Verarbeitungseinheit enthält,
(a) wobei durch jede Ausführungs-Verarbeitungseinheit gemäss einem von ihr erkannten Befehlswort die angewiesene Operation ausführbar ist, und
(b) jede der Übersetzer-Verarbeitungseinheiten enthält:
(i) einen adressierbaren Speicher (21) (12o) zur Speicherung weiterer Befehlsworte, von denen identifizierbare Gruppen bestimmte auszuführende Operationen definieren,
(ii) Einrichtungen (102) zur Erkennung
eines ersten Typs eines Befehlswortes und zur Weiterleitung dieser Worte an den nächst niedrigeren Zwischenverbindungs-Bus ohne derung,
S038S1/09SS
(iii) Einrichtungen zur Erkennung eines zweiten Typs von Befehlsworten zur Identifizierung einer Gruppe von weiteren Befehlsworten in dem adressierbaren Speicher (21,120), und
(iiii) Einrichtungen, durch welche gemäss der Erkennung des zweiten Typs von Befehlsworten die identifizierte Gruppe von Befehlsworten selektiv aus dem adressierbaren Speicher zurückholbar ist und die durch die zurückgeholten zusätzlichen Befehlsworte angewiesene Operation ausführbar ist.
11.) Datenverarbeitungssystem nach Anspruch 10, dadurch gekennzeichnet, dass der adressierbare Speicher einen Festwertspeicher enthält.
12.) Datenverarbeitungssystem nach Anspruch 10, dadurch gekennzeichnet, dass das Datenverarbeitungssystem mindestens vier Ebenen enthält, von denen die niedrigste .bene völlig aus Ausführungsverarbeitungseinheiten (22) (EPU) besteht .
13.) Datenverarbeitungssystem nach Anspruch 10, dadurch gekennzeichnet, dass die Erkennungseinrichtung in den Verarbeitungseinrichtungen eine Decodierungseinrichtung (102) enthält.
14.) Datenverarbeitungssystem nach Anspruch 10, dadurch gekennzeichnet, dass die vorgenannte zweite Ebene mindestens zwei Übersetzer-Verarbeitungseinheiten (20) (TPU) (28, 32) enthält,
509851/0988
die jeweils den Anfang eines Hauptzweiges der Hierarchie bilden.
15.) Datenverarbeitungssystem nach \nspruch 14 , dadurch gekennzeichnet, dass jeder Zweig in einer oder mehreren Ausführungs-Verarbeitungseinheiten endet.
16.) Datenverarbeitungssystem nach Anspruch 10 , gekennzeichnet durch:
(A) Jede der Verarbeitungseinheiten enthält Einrichtungen (106) zur Erzeugung eines Zustand-Signals, welches die Fähigkeit der Einrichtung zur Annahme eines Befehlswortes der Üoersetzer-Verarbeitungseinheit oder Sequenzsteuerung (12) anzeigt, von der sie ihre B^fehlsworte erhält, und
(B) wobei jede Ühersetzer-Verarbeitungseinheit (20) und die Requenzsteuerung (12) enthält:
(1) Einrichtungen zum Empfang der Zustand-Signa-
Ie von denjenigen Vorarbeitungscinheiten
Jen.
der nächst niedrige Ebene, mit der sie verbunden ist, und zur Verwendung des Zustandes dieses Zustand-Signals als Anzeige-Signal,
(2) Einrichtungen zur Abfragung des Operationscodeteils des zurückgeholten Befehlswortes zur Bestimmung darüber, an welche Verarbeitungseinheit der nächst niedrigeren Stufe dieses Befehlswort zu adressieren ist,
(3)auf die Bestimmung, durch die Abfrageeinheit und das richtige Zustand-Signal ansprechende Einrichtungen zur Festlegung des Zeitpunktes der Änderung des Befehlswortes, das auf dem nächst niedrigeren Bus (24) vorhanden ist.
5098S1/0986
17.) Datenverarbeitungssystem nach Anspruch Iß , dadurch gekennzeichnet, dass durch die auf die Bestimmung der Abfrageeinheit und das entsprechende Zustand-Signal ansprechende Einheit bei Vorhandensein einer vorgeschriebenen Veränderung des Zustandes des Zustand-Signals eine vnderung des Befehlswortes auf dem nächst niedrigeren Bus durchführbar ist.
18.) Datenverarbeitungssystem nach \nspruch 17 , dadurch gekennzeichnet, dass die vorgeschriebene änderung ein Wechsel von einer Anzeige "Nicht Besetzt" der niedrigeren Verarbeitungseinheit zu einer Anzeige "Besetzt" far diese Einheit ist.
19.) Datenverarbeitungssystem mit pyramidenförmiger Architektur von mindestens drei Ebenen mit einem Bus (Sammelleitungί zur Zwischenverbindung benachbarter Ebenen derselben, dadurch gekennzeichnet , dass sie umfasst:
(A) eine erste Ebene mit einer Sequenzsteuerung (12) zur selektiven Eingabe erster Befehlsworte auf den Bus (24) zur Verbindung der ersten und zweiten Ebene, wobei jedes dieser Befehlsworte einen Operationscodeteil zur Festlegung des auszuführenden Vorgangs und einen Operandenteil mit Festlegung mindestens einer Quelle für die zu bearbeitenden Daten enthält, und
(B) zweite und dritte Ebenen, die jeweils enthalten: (1) eine Vielzahl von Verarbeitungseinheiten
(20, 22) (EPU, TPU) eines ersten und zweiten Typs, die mit dem Bus ^ur Zwischenverbindung der jeweiligen Ebene mit der nächst höheren Ebene parallel verbunden sind, wo.,--i mindestens eine dieser Einheiten eine Einheit des
5098S1/0986
ersten Typs ist, und jede der Einheiten Einrichtungen zur \bfragung eines Befehlswortes auf dem sie mit der nächst höheren Ebene verbindenden Bus und zur Annahme lediglich solcher Befehlsworte besitzt, welche die vorgeschriebenen Operationscodeteile enthalten,
(2) jede der Verarbeilungseinheiten des ersten Typs enthält Einrichtungen (120) zur Speicherung zweiter Befehlsworte, die jeweils auszuführende Orerationen definieren, und enthält weiterhin Wahleinrichtungen (102, 104) zur selektiven Eingabe der ersten und zweiten Befehlsworte auf den Bus (VS) der nächst niedrigeren Ebene gemäss dem Operationscodeteil des ihr von dem Bus (v-0) der nächst höheren Ebene zngeführten Befehls,
(3) jede Verarbeitungseinheit des zweiten Typs enthält Einrichtungen zur Ausführung des Befehlswortes nach Erhalt eines von ihr angenommenen Befehlswortes gemäss der Anweisung durch den Operationscodeteil dieses Befehlswortes durch selektive Ausführung einer Operation, wodurch die gewählte Operation an Daten ausführbar ist, welche durch den Operandenteil eines ersten Befehls definiert sind, wenn dies durch den Operationscodeteil des ausgeführten Befehls angewiesen ist.
20.) Datenverarbeitungssystem mit pyramidenförmiger Architektur und mindestens drei Ebenen, wobei jede obere Ebene eine Sammelleitung zur Zwischenverbinding mit der nächst niedrigeren Ebene besitzt, dadurch gekennzeichnet, dass sie umfasst:
509851/0986
- 31 -
(Ό Eine erste Ebene, welche enthält:
(1) eine Sequenzsteuerung (12) zur Eingabe
eines Befehlswortes, das die höchstmögliche Ebene der Sprache aller Bofehlsworte in deiT' System darstellt, auf den Bus (24)(Sammelleitung) zur Zwischenverbindung der ersten und zweiten Ebene, wobei jedes dieser Befehlsworte einen Operationscodeteil zur Festlegung mindestens einer auszuführenden Operation und einen Operandent.eil einschliesslich eines Feldes enthält, der mindestens eine Quelle von Daten definiert, an denen Operationen auszuführen sind, und (B) zweite und dritte Ebenen, die jeweils enthalten:
(i) eine Vielzahl von Verarbeitungseinheiten (20, 22) (EPU, TPU)eines ersten und zweiten Typs, die parallel mit dem Bus zur Zwischenverbindung der jeweiligen Ebene mit der nrichst höheren Ebene verbunden sind, wobei mindestens eine der Einheiten eine Einheit des ersten Typs ist und jede der Vorarbeitungseinheiten in der Lage ist, nur ein solches Befehlswort anzunehmen, das einen Operationscodeteil mit vorgeschriebenem Inhalt enthält,
(a) wobei jede der Verarbeitungseinheiten des ersten Typs eine Einrichtung (21) (120) zur Speicherung von Befehlsworten eines zweiten Typs in einer Sprache einer niedrigeren Ebene als die Befehlsworte des ersten Typs enthält, wobei jedes der Befehlsworte des zweiten Typs einen Operationscodeteil zur Definition der auszuführenden Operation enthält und die Verarbeitungseinheit des ersten Typs weiterhin Er-
509851/0986
kennungs-Wahleinrichtungen (102) enthält zur selektiven Eingabe eines Befehlswortes auf den Bus (98) der nächst niedrigeren Ebene gemäss dem Operationscodeteil des ihr von dem Bus (90) der nächst höheren Ebene übermittelten Befehls, (b) wobei durch jede der Verarbeitungseinheiten des zweiten Typs gemäss den von ihr angenommenen Befehlsworten des ersten und zweiten Typs ein Befehl ausführbar ist, wie er durch den Operationscodeteil des Befehlswortes festgelegt ist, durch selektive Ausführung einer Operation, wodurch die ausgewählte Operation an den Daten ausführbar ist, wie sie durch das Feld des Operandenteils eines Befehls des ersten Typs gemäss der Anweisung durch den Operationscodeteil des ausgeführten Be fehls festgelegt sind.
21.) Datenverarbeitungssystem nach Anspruch 20 , dadurch gekennzeichnet, dass das Feld des Operandenteils des Befehlsworts des ersten Typs eine Vielzahl von Quellen von Daten zur Verarbeitung definiert und durch die Verarbeitungseinheiten des zweiten Typs Operationen ausführbar sind, welche mindestens durch eine der Vielzahl von Quellen definiert sind.
22.) Datenverarbeitungssystem mit pyramidenförmiger Architektur und mindestens drei Ebenen, welche ein System von einer höchsten zu einer niedrigsten Ebene bilden, wobei jede Ebene einen Befehls-Bus für die Zwischenverbindung benachbarter Ebenen derselben besitzt, dadurch gekennzeichnet } dass sie umfasst;
609851/0386
(A) eine Sequenzsteuerung (12) mit einem Speicher (lo), wobei die Steuerung Einrichtungen zur Zurückholung eines in dem Speicher festgehaltenen Befehlswortes und zur Eingabe des zurückgeholten Wortes auf den Bus (26) der höchsten Ebene besitzt, der die erste und zweite Ebene miteinander verbindet, wobei das Befehlswort einen Operationscodeteil zur Festlegung einer auszuführenden Operation und einen Operandenteil zur Festlegung der zu bearbeitenden Daten enthält,
(B) eine erste Vielzahl von Verarbeitungseinheiten (20, 22) (EPU, TPU), die parallel zwischen den Bus (26) (.36) der ersten und zweiten Ebenen geschaltet sind, und eine zweite Vielzahl von Verarbeitungseinheiten (20, 22), die parallel mit mindestens einem Bus (46) der dritten Ebene verbunden sind, wobei jede Verarbeitungseinheit eine Zwischenverbindung mit dem Bus der nächst höheren Ebene besitzt und zwei Arten von Verarbeitungseinheiten vorhanden ^ind, und zwar Ausführungs-Verarbeitungseinheiten (22) (EPU) und Übersetzer-Vnrarbeitungseinheiten (20) (TPU), und mindestens eine der mit dem Bus (26) (36) (70) der ersten und zweiten Ebenen verbundene Veraxbeitungseinheit eine Übersetzer-Verarbeitungseinheit ist,
(1) wobei jede der Verarbeitungseinheiten Speichereinrichtungen (21, 30,34) zur zeitweiligen Speicherung eines ihr von dem Bus zur Zwischenverbindung mit der nächst höheren Ebene gelieferten Befehlswortes enthält,
(2) jede der Verarbeitungseinheiten Erkennungseinrichtungen (102) enthält, durch welche gemäss dem Operationscodeteil des in der Speichereinrichtung gespeicherten Befehls-
509851/0986
Wortes nur solche Befehlsworte annehmbar sind, welche vorgeschriebene Operationscode enthalten,
(3) wobei jede der Übersetzer-Verarbeitungseinheiten enthalt:
(a) einen adressierbaren Speicher (21, 'JO, 34) zur Speicherung mindestens einer Gruppe von weiteren Befehlsworten, die jeweils eine auszuführende Operation definieren, wobei der adressierbare Speicher durch den Operationscodeteil des Befehlswortes in der Speichereinrichtung der Übersetzer-\/erarbeitungseinheit an einem Platz adressierbar ist, in dem das erste Befehlswort einer Gruppe von Worten enthalten ist,
(b) Einrichtungen, durch welche gemäss des Operationscodeteils des in der Speichereinrichtung der Übersetzer-Verarbeitungseinheit enthaltenen Befehlswortes eine identifizierte Gruppe aus diesem adressierbaren Speicher in Sequenz zurückholbar ist zur Eingabe des zurückgeholten Befehlswortes in Sequenz auf den Bus der nächst niedrigeren Ebene zur Auslösung einer Operation ui mindestens einer Verarbeitungseinheit auf einer niedrigeren Ebene, welche für jedes der zurückgeholten Befehlsworte verantwortlich ist, tmd
(4) wobei durch jede der Vnsführvmgs-Vernrbeitungseinheiten gemäss einem von einer Übersetzer-Verarbeitungseinht.it der nächst höheren Ebene zurückgeholten und erkannten Befehlswort die durch dieses Befehlswort angegebne Operation an Daten ausführbar ist,
509851/0986
\)Ϊ3
die durch den Operandenteil des von der Sequenzsteuereinheit (12) zurückgeholten Befehlswortes definiert sind.
509851 /0986
DE19752524229 1974-06-03 1975-05-31 Datenverarbeitungssystem mit pyramidenfoermiger hierarchie des steuerflusses Withdrawn DE2524229A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/476,030 US3962685A (en) 1974-06-03 1974-06-03 Data processing system having pyramidal hierarchy control flow

Publications (1)

Publication Number Publication Date
DE2524229A1 true DE2524229A1 (de) 1975-12-18

Family

ID=23890208

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19752524229 Withdrawn DE2524229A1 (de) 1974-06-03 1975-05-31 Datenverarbeitungssystem mit pyramidenfoermiger hierarchie des steuerflusses

Country Status (4)

Country Link
US (1) US3962685A (de)
JP (1) JPS5626061B2 (de)
DE (1) DE2524229A1 (de)
GB (1) GB1500527A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0108233A2 (de) * 1982-11-09 1984-05-16 International Business Machines Corporation Elektronisches Dokumentenverteilnetzwerk mit dynamischer Dokumentenaustausch-Protokollgenerierung

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9405914D0 (en) * 1994-03-24 1994-05-11 Discovision Ass Video decompression
FR2296221A1 (fr) * 1974-12-27 1976-07-23 Ibm France Systeme de traitement du signal
US4149243A (en) * 1977-10-20 1979-04-10 International Business Machines Corporation Distributed control architecture with post and wait logic
US4276594A (en) * 1978-01-27 1981-06-30 Gould Inc. Modicon Division Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same
DE3069249D1 (en) * 1979-02-13 1984-10-31 Secr Defence Brit Data processing unit and data processing system comprising a plurality of such data processing units
SE430106B (sv) 1979-06-18 1983-10-17 Ibm Svenska Ab Hierarkiskt datorsystem
US4445171A (en) * 1981-04-01 1984-04-24 Teradata Corporation Data processing systems and methods
US4475156A (en) * 1982-09-21 1984-10-02 Xerox Corporation Virtual machine control
US4532588A (en) * 1982-11-09 1985-07-30 International Business Machines Corporation Electronic document distribution network with uniform data stream
US4543626A (en) * 1982-12-06 1985-09-24 Digital Equipment Corporation Apparatus and method for controlling digital data processing system employing multiple processors
US4901225A (en) * 1984-04-09 1990-02-13 Kabushiki Kaisha Toshiba Processing apparatus with hierarchical structure for implementing a machine instruction
US4648034A (en) * 1984-08-27 1987-03-03 Zilog, Inc. Busy signal interface between master and slave processors in a computer system
JPS6185314U (de) * 1984-11-06 1986-06-05
US5036453A (en) * 1985-12-12 1991-07-30 Texas Instruments Incorporated Master/slave sequencing processor
US4797848A (en) * 1986-04-18 1989-01-10 Hughes Aircraft Company Pipelined bit-serial Galois Field multiplier
US4819149A (en) * 1986-05-02 1989-04-04 Owens-Corning Fiberglas Corporation Distributed control system
US5025369A (en) * 1988-08-25 1991-06-18 David Schwartz Enterprises, Inc. Computer system
US5420981A (en) * 1989-09-29 1995-05-30 At&T Corp. Arrangement for establishing a data pipeline in a data processing system employing multiple processors
US5574869A (en) * 1992-03-30 1996-11-12 Intel Corporation Bus bridge circuit having configuration space enable register for controlling transition between various modes by writing the bridge identifier into CSE register
US6112017A (en) * 1992-06-30 2000-08-29 Discovision Associates Pipeline processing machine having a plurality of reconfigurable processing stages interconnected by a two-wire interface bus
US5809270A (en) * 1992-06-30 1998-09-15 Discovision Associates Inverse quantizer
US5768561A (en) * 1992-06-30 1998-06-16 Discovision Associates Tokens-based adaptive video processing arrangement
US5603012A (en) * 1992-06-30 1997-02-11 Discovision Associates Start code detector
US5835740A (en) * 1992-06-30 1998-11-10 Discovision Associates Data pipeline system and data encoding method
US6330665B1 (en) 1992-06-30 2001-12-11 Discovision Associates Video parser
US6067417A (en) * 1992-06-30 2000-05-23 Discovision Associates Picture start token
US6079009A (en) * 1992-06-30 2000-06-20 Discovision Associates Coding standard token in a system compromising a plurality of pipeline stages
US6047112A (en) * 1992-06-30 2000-04-04 Discovision Associates Technique for initiating processing of a data stream of encoded video information
DE69229338T2 (de) * 1992-06-30 1999-12-16 Discovision Ass Datenpipelinesystem
US7095783B1 (en) 1992-06-30 2006-08-22 Discovision Associates Multistandard video decoder and decompression system for processing encoded bit streams including start codes and methods relating thereto
US5805914A (en) * 1993-06-24 1998-09-08 Discovision Associates Data pipeline system and data encoding method
US5699544A (en) * 1993-06-24 1997-12-16 Discovision Associates Method and apparatus for using a fixed width word for addressing variable width data
US5861894A (en) * 1993-06-24 1999-01-19 Discovision Associates Buffer manager
CA2145363C (en) * 1994-03-24 1999-07-13 Anthony Mark Jones Ram interface
CA2145365C (en) * 1994-03-24 1999-04-27 Anthony M. Jones Method for accessing banks of dram
CA2145379C (en) * 1994-03-24 1999-06-08 William P. Robbins Method and apparatus for addressing memory
US5703793A (en) * 1994-07-29 1997-12-30 Discovision Associates Video decompression
GB9417138D0 (en) * 1994-08-23 1994-10-12 Discovision Ass Data rate conversion
US5874939A (en) * 1996-12-10 1999-02-23 Motorola, Inc. Keyboard apparatus and method with voice recognition
US6332212B1 (en) * 1997-10-02 2001-12-18 Ltx Corporation Capturing and displaying computer program execution timing
US7552077B1 (en) * 2002-06-26 2009-06-23 Trading Technologies International, Inc. System and method for coalescing market data at a network device
US7783558B1 (en) 2004-12-28 2010-08-24 Trading Technologies International, Inc. System and method for providing market updates in an electronic trading environment
JP5079342B2 (ja) 2007-01-22 2012-11-21 ルネサスエレクトロニクス株式会社 マルチプロセッサ装置
US11138525B2 (en) 2012-12-10 2021-10-05 Trading Technologies International, Inc. Distribution of market data based on price level transitions
US10664548B2 (en) 2013-07-12 2020-05-26 Trading Technologies International, Inc. Tailored messaging
US9524178B2 (en) * 2013-12-30 2016-12-20 Unisys Corporation Defining an instruction path to be compiled by a just-in-time (JIT) compiler
US10831965B1 (en) 2019-07-23 2020-11-10 International Business Machines Corporation Placement of vectorized latches in hierarchical integrated circuit development
US11599360B2 (en) * 2020-12-14 2023-03-07 Cognitive Science & Solutions, Inc. AI synaptic coprocessor

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3541516A (en) * 1965-06-30 1970-11-17 Ibm Vector arithmetic multiprocessor computing system
US3702462A (en) * 1967-10-26 1972-11-07 Delaware Sds Inc Computer input-output system
US3537074A (en) * 1967-12-20 1970-10-27 Burroughs Corp Parallel operating array computer
US3544973A (en) * 1968-03-13 1970-12-01 Westinghouse Electric Corp Variable structure computer
US3566363A (en) * 1968-07-11 1971-02-23 Ibm Processor to processor communication in a multiprocessor computer system
BE755621A (fr) * 1969-09-02 1971-03-02 Siemens Ag Systeme de central automatique pour donnees a commande par programme
US3701976A (en) * 1970-07-13 1972-10-31 Bell Telephone Labor Inc Floating point arithmetic unit for a parallel processing computer

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0108233A2 (de) * 1982-11-09 1984-05-16 International Business Machines Corporation Elektronisches Dokumentenverteilnetzwerk mit dynamischer Dokumentenaustausch-Protokollgenerierung
EP0108233A3 (en) * 1982-11-09 1987-03-25 International Business Machines Corporation Electronic document distribution network with dynamic document interchange protocol generation

Also Published As

Publication number Publication date
GB1500527A (en) 1978-02-08
JPS5626061B2 (de) 1981-06-16
JPS515932A (de) 1976-01-19
US3962685A (en) 1976-06-08

Similar Documents

Publication Publication Date Title
DE2524229A1 (de) Datenverarbeitungssystem mit pyramidenfoermiger hierarchie des steuerflusses
DE2113890C2 (de) Zentrale Verarbeitungseinrichtung für Datenverarbeitungsanlagen
DE1915818C3 (de) Steuerschaltung für ein elektronisches Datenverarbeitungssystem
DE2357003C2 (de) Prozessor für eine Mehrprogramm-Datenverarbeitungsanlage
DE2714805C2 (de)
DE2023354C2 (de) Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher
DE2410491C2 (de)
DE4342250A1 (de) Rechnerarchitektur und Verfahren zum Betreiben eines Parallelrechners
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE2748991A1 (de) Einrichtung zur umsetzung von datenformaten
DE1302494B (de)
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE2555963A1 (de) Einrichtung zur funktionsmodifizierung
DE2540975A1 (de) Multi-mikro-prozessor-einheit
DE2161886A1 (de) Befehlsausführungssystem in einer elektronischen Datenverarbeitungsanlage
DE1928202B2 (de) Einrichtung zur Erstellung statistischer Daten über den Operationsablauf programmgesteuerter Datenverarbeitungsanlagen
CH634939A5 (de) Kanaldatenpufferanordnung in einer datenverarbeitungsanlage.
DE2318069A1 (de) Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix
DE1275800B (de) Steuerwerk fuer datenverarbeitende Maschinen
DE1269393B (de) Mikroprogramm-Steuerwerk
DE1549474B2 (de) Anordnung in einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls
DE2854400A1 (de) Anordnung zum wechsel zwischen verzahnt zu verarbeitenden programmen
DE2245284A1 (de) Datenverarbeitungsanlage
DE1956460C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE1194605B (de) Verbesserung an Geraeten zur Verarbeitung von Angaben, Informationen od. dgl.

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8125 Change of the main classification
8130 Withdrawal