DE2524229A1 - Datenverarbeitungssystem mit pyramidenfoermiger hierarchie des steuerflusses - Google Patents
Datenverarbeitungssystem mit pyramidenfoermiger hierarchie des steuerflussesInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
Description
^f-J-/
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.
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.
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.
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.
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.
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
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)
(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 )
(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
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.
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.
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:
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:
entsprechenden Bit in den Verriegelungen A und B entspricht. Daher ergibt sich:
R-Vektor = (r , ro, r„, r.)
wobei:
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
' 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
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
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.
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
"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.
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
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".
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.
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.
wird nicht mehr blinken.
Führt den Schrei braarkenort weiter zuffl Anfang des
nächsten Segmen tes von 32 Zeichen.
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
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)
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,
(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
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)
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)
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)
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 |
-
1974
- 1974-06-03 US US05/476,030 patent/US3962685A/en not_active Expired - Lifetime
-
1975
- 1975-05-23 GB GB22730/75A patent/GB1500527A/en not_active Expired
- 1975-05-31 DE DE19752524229 patent/DE2524229A1/de not_active Withdrawn
- 1975-06-03 JP JP6611075A patent/JPS5626061B2/ja not_active Expired
Cited By (2)
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 |