DE2540975C2 - Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender Prozesse - Google Patents

Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender Prozesse

Info

Publication number
DE2540975C2
DE2540975C2 DE2540975A DE2540975A DE2540975C2 DE 2540975 C2 DE2540975 C2 DE 2540975C2 DE 2540975 A DE2540975 A DE 2540975A DE 2540975 A DE2540975 A DE 2540975A DE 2540975 C2 DE2540975 C2 DE 2540975C2
Authority
DE
Germany
Prior art keywords
register
data processing
processing device
registers
memory
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.)
Expired
Application number
DE2540975A
Other languages
English (en)
Other versions
DE2540975A1 (de
Inventor
David Chin-Chung San Diego Calif. Lee
Bernardo Navarro Ann Arbor Mich. Levy
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Burroughs Corp NDGes Des Staates Michigan Detroit Mich
Burroughs Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Burroughs Corp NDGes Des Staates Michigan Detroit Mich, Burroughs Corp filed Critical Burroughs Corp NDGes Des Staates Michigan Detroit Mich
Publication of DE2540975A1 publication Critical patent/DE2540975A1/de
Application granted granted Critical
Publication of DE2540975C2 publication Critical patent/DE2540975C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Description

Gegenstand der Erfindung 1st eine Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender Prozesse mit einer oder mehreren auf einem hochintegrierten Schaltkreis angeordneten als mikroprogrammierbare Prozessoren arbeitenden Datenverarbeitungseinheiten, die sich mehrere Systemelemente einschließlich eines Direktzugriffsspeichers teilen und die über Eingabe/Ausgabe-Steuereinheiten mit peripheren Einrichtungen verbunden sind, wobei die Datenverarbeitungseinrichtung mindestens eine arithmetische Logikeinheit und Register zum vorübergehenden Speichern von Steuerdaten einschließlich Adressen und kodierten (vertikalen) Mikrobefehlen enthält.
Eine Datenverarbeitungseinrichtung der eingangs genannten Art ist aus der Literaturstelle »IEEE Transactions on Computers«, vol. C/22, No. 2, Feb. 1973, Seiten 143 bis 153 bekannt, bei der einem Multiprozessorsystem mehrere Prozessoreinheiten derselben Befehlsfolge zugeordnet sind, so daß die Verfügbarkeit des Systems bei Ausfall einer oder mehrerer Prozessoreinheiten erhöht und eine leichte Erweiterung des Systems gegeben ist. Die mikroprogrammierbaren Prozessoreinheiten sind mit einem gemeinsamen Hauptspeicher und einem gemeinsamen Steuerspeicher verbunden, von dem sie Mikrobefehle einholen. Zusätzlich sind bei der bekannten Datenverarbeitungsanlage die Prozessoreinheiten mit einem weiteren gemeinsamen schnellen Speicher und Fllp-Flops verbunden, so daß die Prozessoreinheiten logisch unabhängig voneinander sind. Sie sind über Elngabe/Ausgabe-Schnlttstel-len mit verschiedenen, voneinander getrennten peripheren Einheiten verbunden, so daß die bekannte Daten
3 4
Verarbeitungsanlage geeignet 1st, platzsparend aufgebaut oder zu der Steuereinheit Obertragen werden, sequentiell
und auf einem Halbleiter-Chip untergebracht zu abrufen, und daß ein weiteres Register vorgesehen 1st,
werden. das von einer einzelnen Datenverarbeitungseinheit
Die bekannte Datenverarbeltungselnr'chtung wendet benutzt wird oder eine Kommunikation zwischen den
bei der Mikro-Mehrfachdatenverarbeitung die söge- 5 mehreren Datenverarbeitungseinheiten ermöglicht,
nannte »Bocksprung-Technik« bzw. die sogenannte wobei die Steuereinheit, die arithmetische Logikeinheit
»Pipeline-Annäherung« an, wobei bei der erstgenannten und die Zwischenspeicherregister von den Datenverar-
Technlk jeder Prozessor des Systems einen vollständi- beltungselnhelten gemeinsam genutzt werden,
gen Befehl zum Einholen der Befehlsfolge bis zur Voll- Die erfindungsgemäße Lösung ermöglicht es, daß die
endung der betreffenden Operation durchführt und io Datenverarbeitungseinheiten unabhängig voneinander
nach Beendigung eines Befehls den nächsten auszufüh- zeitgleich ablaufende Prozesse bearbeiten können und
renden Befehl einholt, wenn nicht eine Unterbrechung eine freie Zuordnung und Kommunikation zwischen
vorgegeben ist. Bei der Technik der »Plpellne-Annähe- den einzelnen Datenverarbeitungsetnheiten möglich 1st.
rung« ist jedem Prozessor eine bestimmte Funktion Die jedem der mikroprogrammierbaren Prozessoren
zugewiesen und jeder Befehl einer Befehlsfolge wird der is zugeteilten Mehrblt-Schlebereglster ermöglichen eine
Reihe nach von einem oder mehreren Prozessoren bear- vielfache Zeltauftsllung unter den Prozessoren, so daß
beltet. So kann beispielsweise ein Prozessor die Befehle die Datenverarbeitungseinrichtung unabhängig voneln-
einholen und ein weiterer die Befehle ausführen. Bei ander gleichlaufende Prozesse bearbeiten kann. Die
beiden Techniken Ist jedoch keine freie Zuordnung der Prozessoren können untereinander auf drei verschlede-
einzelnen Prozessoren zueinander möglich, die mitein- 20 nen Ebenen frei miteinander kommunizieren und die
ander auf zwei verschiedenen Ebenen kommunizieren für die verschiedenen Prozessoren vorgesehenen
und Infolge einer geeigneten Zeltaufteilung unabhängig Mikroprogramme von sämtlichen Prozessoren gemein-
voneinander zeitgleich ablaufende Prozesse bearbeiten sam benutzt werden,
können. Anhand eines In der Zeichnung dargestellten Ausfuh-
Aus der DE-OS 14 49 568 ist eine durch Befehle 25 rungsbeisplels soll der der Erfindung zugrundeliegende
gesteuerte Datenverarbeitungseinrichtung bekannt, bei Gedanke erläutert werden. Es zeigt
der die Befehle sequentiell abgerufen und ausgeführt Fig. 1 ein Blockschaltbild einer Datenverarbeitungs-
werden und in mehreren abgespeicherten Programmen einrichtung mit vier Datenverarbeitungseinheiten;
zusammengefaßt sind. Die bekannte Mehrprogramm- F1 g. 2 ein Blockschaltbild einer Datenverarbeitungs-
Datenverarbeitungseinrichtung weist mehrere Register- 30 einheit gemäß Flg. 1;
gruppen auf, die gruppenweise die zur Entnahme und Flg. 3 eine Darstellung der zu einer der Datenverar-
Ausführung der In den jeweiligen Programmen enthal- beltungselnhelten führenden Schnittstelle;
tenen Befehlen erforderlichen Informationen aufneh- Flg.4a und 4b eine detaillierte Darstellung der
men. Ein Auswahl-Schaltkreis bestimmt dabei, welche Datenverarbeitungseinheit gemäß F i g. 2;
der Funktionsregistergruppen aktiviert wird. Die 35 Flg. Sa, Sb und Sc eine schematische Darstellung der
bekannte Datenverarbeitungseinrichtung weist jedoch Organisation des Λ-Zwlschenspelcherregisters und des
keine mikroprogrammierbaren Prozessoren auf, die so ß-Zwischenspelcherreglsters;
zusammengefaßt sind, daß sich mehrere Prozessoren Fig. 6 den schaltungstechnischen Aufbau der arlth-
gemeinsame Speicher- und Logikeinrichtungen teilen metischen Logikeinheit einer Datenverarbeitungseinheit
können. Es handelt sich somit bei der bekannten 40 gemäß Flg. 2;
Datenverarbeitungseinrichtung um eine Mehrpro- Fig. 7 eine detaillierte Darstellung mehrerer In der
gramm-Datenverarbeltungselnheit, die nicht dazu geelg- Datenverarbeitungseinheit gemäß Flg. 2 verwendeter
net ist, platzsparend auf einem Halbleiter-Chip unterge- Schieberegister;
bracht zu werden. Flg. 8 eine Tabelle der verschiedenen, von den
Aufgabe der vorliegenden Erfindung ist es, eine 45 Mikrobefehlen ausgeführten Funktionen; Datenverarbeitungseinrichtung der eingangs genannten Flg. 9 eine schematische Darstellung der in der Art zu schaffen, bsi der die Datenverarbeltungselnhet- Datenverarbeitungseinheit gemäß Fig. 2 verwendeten
ten unabhängig Voneinander zeitgleich ablaufende Steuereinheit und
Prozesse bearbeiten können, wobei eine freie Zuord- Flg. 10 eine zeltliche Darstellung des Zeitmultiplex -
nung und Komir>unlkatlon zwischen den einzelnen so betriebes der verschiedenen mikroprogrammierbaren
Datenverarbeltung#<iinheiten möglich sein soll. Prozessoren.
Diese Aufgabe νΊτά erfindungsgemäß dadurch gelöst, Die In Flg. 1 dargestellte Datenverarbeltungselnrichdaß die Datenverarbeitungseinrichtung mindestens zwei tung weist mehrere Datenverarbeitungseinheiten (MPU) miteinander verbundene Zwlschenspelcherrftgister (B- 11 auf, die mit einem Direktzugriffsspeicher (RAM) 13 Register, /!-Register) enthält, die entsprechend den 55 gekoppelt sind, der für das Speichern von Daten und verschiedenen Profcessen Adressen des Direktzugriffs- anderer Informationen vorgesehen ist. Jede MPU 11 1st Speichers und Mikrobefehlsadressen vorübergehend mikroprogrammlert und dazu mit einem zugehörigen speichern und von denen wenigstens eines mit einer Lesespeicher (ROM) 12 gekoppelt. Mit der Datenverararlthmetlschen Logikeinheit verbunden 1st, daß eine beitungselnrichtung gemäß Fig. 1 kann eine Vielzahl Steuereinheit vorgesehen 1st, die einen nlcht-kodierte &o von Peripheriegeräten unter Steuerung der verschiede-(horizontale) Mikrobefehle speichernden Steuerspeicher nen MPUs betrieben werden, wobei zu diesen Geräten und eine Steuerlogik enthält und die die vorübergehend ein Plattenspeicher 15, ein Drucker 16, eine Kathodengespeicherten Mikrobefehlsadressen und/oder die strahl-Anzelgeelnhelt 17, ein Kassettenantrieb 18 sowie kodierten (vertikalen) Mikrobefehle empfängt, Steuer- eine Datenkommunikationseinheit 19 gehören können, signale erzeugt und die Steuersignale an die arlthmetl- 65 Vor Beschreibung der Einzelheiten der Schaltung der sehe Logikeinheit überträgt, daß mehrere Adressenregl- MPU wird zunächst eine Beschreibung der funktionelster vorgesehen sind, die aus den Zwtschenspelcherregl- len Einheiten gegeben, mit denen jeder mlkroprogramstern Daten, die zu der arithmetischen Logikeinheit mierbare Prozessor während jener Zeltspanne arbeitet.
während der der einzelne Prozessor Zugriff zu den gemeinsamen Systemquellen besitzt. Ein funktionales Diagramm des Prozessors mit seinen ihm eigenen und den gemeinsamen Quellen zeigt Fig. 2. Die gemeinsamen Hilfsmittel umfassen das ß-Zwischenspelcherreglster 31 und das A -Zwischenspeicherregister 32, die arithmetische Logikeinheit (ALU) 33, die Steuereinheit 40 und das /"-Register 41. Die Quellen, mit denen jeder Prozessor individuell versorgt ist, umfassen ein X-Register 35, das Mikroprogramm-Zählerregister (PC) 36, das Mikrobefehls-Zähler-Seitenregister (PR) 37, das Vorseiten-Register (PPR) 38, das /-Adressenregister 43, das N-Adressenregister 44, das ^-Register 34 und das K-Register 42.
Die Register für den mikroprogranirnierbaren Prozes- is sor werden jetzt im Zusammenhang mit F1 g. 2 beschrieben. Damit diese speziellen Zwecken zugewiesenen Register dem jeweiligen Prozessor gewidmet werden können, bestehen sie aus 4-Bit-Schieberegistern, so daß unter den Prozessoren eine vierfache Zeitteilung möglich ist.
Das A'-Register 35 ist ein 8-Bit-Befehlsregister und dient dazu, die Mikrobefehle während der Befehlskodier- und Ausführzelt zu halten. Das PC-Register 36 ist ein 8-Bit-Mlkroprogrammzählerreglster. Dieses Register hält die Adresse eines Bytes innerhalb einer Seite des nächsten Mikrobefehls, der ausgeführt werden soll. Das PR-Register 37 Ist ein 4-Blt-Mlkrobefehl-Zähler-Seltenregister. Dieses Register hält die Seltenadresse des nächsten auszuführenden Mikrobefehls. Das /WJ-Reglster 38 ist ein 4-Blt-Vorseitenregister. Ein Sprung erfordert zwei Befehle: Einen Befehl zum Laden des Seitenregisters und einen Sprungbefehl. Das PPR-Register 38 dient dazu, die neue Seitenzahl zu halten, während der Sprungbefehl geholt wird. Der Inhalt des PPR -Registers wird in das PR-Register nur dann geladen, wenn der nächste Befehl ein Sprung ist. In allen anderen Fällen benimmt sich der Befehl zum Laden des Seitenregisters so, als fände keine Operation statt. Damit bleibt eine bedingte Sprungoperation »aus der Seite« innerhalb der gleichen Seite, wenn die Bedingung nicht erfüllt ist.
Das /-Register 43 ist ein 4-Blt-Register zum Adressleren des A -Zwischenspeicherregisters. Das N-Register 44 ist ein 2-Blt-Register zum Adressieren von vier Seiten In dem ß-Zwischenspeicherregister. Es wird in Verbindung mit einem Teil des Befehls verwendet, mit dem ein Register In dem ß-Zwischenspeicherregister adressiert wird. Dieses Register dient ebenfalls zum Laden des /-Registers 43.
Das K-Register 34 1st 1-Bit-Register, das nur während der Addier-Befehle gesetzi oder gelöscht wird. Es kann als ein Eingang für die ALU dienen und kann durch einen Sprung-auf-Übertrag-Befehl geprüft werden. Das K-Register 42 1st ein 4-Blt-Maschinen-Status-Register. Dies Register dient zum Speichern des Status jedes Prozessors während der Zelt, während der die anderen drei Prozessoren Befehle ausführen. Dies ist notwendig, weil mehrere Befehle mehr als einen Takt zur Ausführung erfordern.
Es werden jetzt die gemeinsamen Elemente beschrieben. ALU-ZZ 1st eine 4-Bit-Arithmetik- und Logik-Einheit, die binäre Addition, eine bitweise logische AND, OR und EXLUSIVE OR -Operation ausführen kann. Jede Operation wird während eines Taktzeltantells ausgeführt, wobei Byte-Operationen zwei Durchgänge durch die ALU erfordern. Das A -Zwischenspeicherregister 32 enthält 16 Register, von denen jedes 8 Bit breit ist, wobei die Register als Universalregister für spez'elle Aufgaben verwendet werden können. Die 16 Register sind in vier Selten zu je vier Registern unterteilt. Wenn sie zur Erledigung spezieller Zwecke dienen, werden die /!-Register in Verbindung mit den ß-Registern benutzt. Die speziellen Zwecke, für die die Register verwendet werden können, werden weiter unten erläutert.
Der ß-Zwlschenspelcherreglster 31 enthält 24 Register für je acht Bits, oder kann als 48 Register zu je vier Bits betrachtet werden, wobei die Register als universelle Speicherregister, oder in Verbindung mit dem A-Reglster 32 als »Zur besonderen Verwendung«-Register verwendet werden können. Die Spezialaufgaben, für die diese Register verwendet werden können, werden weiter unten erläutert.
Die Steuereinheit 40 umfaßt einen zusammengesetzten Lesespeicher und eine Steuerlogik, die die Operationen des Systems auf dem Steuersignalpegel schrittsteuern. Das /"-Register 41 Ist ein einzelnes Flip-Flop, das zur Markierung dient. Es kann von einem Prozessor benutzt werden oder dazu dienen, eine Kommunikation zwischen den Prozessoren zu ermöglichen.
FI g. 5A zeigt die Organisation der A -Register 32 und Flg. 5B zeigt die Organisation der ß-Register 31. Jeder Prozessor kann auf jedes der 16 A -Register oder der 24 ß-Reglster zugreifen. Um jedoch zu verhindern, daß ein Prozessor Daten eines anderen Prozessors zerstört, Ist es notwendig, die A- und ß-Reglster so zu unterteilen, daß jeder Prozessor seine eigene Gruppe zugewiesen erhält. Diese Unterteilung sollte ausgeführt werden, ehe jeder Prozessor mikroprogrammiert wird.
Wie die Unterteilung tatsächlich stattfinden soll, das hängt von den Aufgaben ab, die jeder Prozessor ausführen soll. Allgemein kann die Unterteilung der Zuweisung einer Seite pro Prozessor die Kodierung reduzieren, wenn die vier Prozessoren ähnliche Aufgaben ausführen sollen. In Fällen, in denen ein oder zwei Prozessoren kompliziertere Aufgaben als die anderen Prozessoren ausführen sollen, kann es erwünscht sein, eine ungleichmäßige Unterteilung der Register für die komplizierteren Aufgaben zu schaffen. Dies gilt besonders dann, wenn durch die Zuweisung mehr Zwischenspeicherstellen den Aufgaben und weniger Zugriffe für den Direktzugriffsspeicher notwendig sind.
Das ß-Zwischenspeicherregister besteht ähnlich wie das A -Zwischenspeicherregister aus vier Seiten. Allgemein ist jedem Prozessor eine Seite der ß-Reglster zugewiesen. Die Seltennumer, die von einem Prozessor verwendet werden soll, wird in seinem 2-BIt-Af-ReSiStCr gespeichert. Das Adressieren innerhalb einer Seite geschieht auf zwei Weisen: byte-weise und ziffernweisc. Byte-Adressen sind die geradzahligen Zahlen Null bis 14. Ziffernadressen sind die Zahlen Null bis 15.' Diese Adressen greifen auf die gleichen Daten zu: Byte Null 1st das gleiche Register wie Ziffer Null und Eins; Byte Zwei ist das gleiche Register wie die Ziffern Zwei und Drei; usw. Wie man aus Flg.5B erkennt, besteht der Adressierraum für das ß-Zwischenspeicherregister aus 32 Bytes oder 64 Ziffern. Aus zwei Gründen jedoch entspricht dies nicht der räumlichen Größe des B-Zwischenspeicherreglsters. Es ist nicht genügend Raum auf dem /C-Chip für 32 Bytes vorhanden und Zwlschen-Prozessor-Kommunikatlonen werden durch Teilen räumlicher Register verbessert. Flg. 5B zeigt die Art und Welse, In welcher die Register geteilt, d.h. gemeinsam betrieben werden. Wie dargestellt, stellt jedes Rechteck unabhängig von seiner Größe ein räumliches 8-Blt-Register dar.
Unter der Annahme, daß jede der vier Prozessoren einen anderen Wert für N (ß-Zwlschenspelcherreglster-Selte) benutzt, so sind das Byte Null und 14 sämtlichen Prozessoren und eine Kopie des Byte Zwel-Reglsters dem Prozessor Null und Eins und die andere Kopie dem Prozessor Zwei und Drei gemeinsam. Durch diese gemeinschaftliche Aufteilung wird es möglich, daß die Daten zwischen den Prozessoren laufen können, ohne daß eine Änderung in dem Wert von N erforderlich wäre. Da jeder Prozessor den Wert seines N-Registers ändern kann, kann er mit den anderen Prozessoren durch eines der A- oder ß-Reglster in Kommunikation treten. Durch Verwendung der gemeinsamen Register (byte Null, Zwei und 14) wird die Kommunikation ohne die Notwendigkeit verwirklicht, zeitweise die Einstellung von N zu ändern. Durch die Unterteilung des ß-Zwlschenspelcherregisters auf die Prozessoren kann ein gemeinsames Register nur einem Prozessor zugewiesen werden, es sei denn, es wird für die Kommunikation verwendet.
Wie oben dargestellt, besteht einer der Vorteile darin, daß die vier Prozessoren sich eine einzige Kopie von Mikrobefehlen teilen können, und zwar entweder Unterroutinen oder volle Programme und daß sie gleichzeitig laufen können. Dies wird dadurch erreicht, daß zunächst die verschiedenen Werte In die N-Register für jeden der Prozessoren eingesetzt werden, und daß dann jeder Prozessor veranlaßt wird, In die gleiche Stelle in den Lesespeicher zu springen. Auf diese Weise geschriebene Programme können jedoch keines der gemeinsamen ß-Register verwenden.
Die speziellen Zwecke, für die die Elemente der A- und 5-ZwiichenspeicherregIster verwendet werden können, bestehen darin, 16 Bit-Direktzugriff-Spelcheradressen, Mikroprogramm-Unterroutinen-Adressen und Mlkroprogramm-Lesespeicher-Adressen zu speichern. Die Elemente für beide Zwischenspeicherregister sind zu diesem Zweck hintereinander geschaltet. Beispielsweise können vier Selten des A -Zwlschenspeicherreglsters und vier Seiten des ß-Zwlschenspeicherreglsters zu einer Gruppe zusammengefaßt werden, ähnlich Seite Null von A mit Seite Null von B, Seite Eins von A mit Seite Eins von B, usw. Die Seitengruppen sind in Fig. 5C nur für eine derartige Gruppe eingetragen, da die anderen Seltengruppen auf gleiche Welse funktionieren.
Wie in Flg. 5C gezeigt, hat jede Seltengruppe vier Direktzugriff-Speicher-Lese/Schreib-Adressen-Register. Die ersten drei von diesen sind durch R/WO, RlWU, RIWl angegeben und enthalten die folgenden Register: 58, und AO, BIO und Al, B12 und Al, so daß sich drei öO-Blt-Dlrektzugriff-Speicherregister zum Lesen und Schreiben von Daten in bzw. aus dem Direktzugriff-Speicher ergeben. In jedem Fall ist das Ä-Byte der höchststellige Teil der Adresse. Das vierte Adressenregister, mit Rl W3 bezeichnet, hängt A3 mit allen Einsen zusammen, so daß sich eine direkte Adressierseite in dem Direktzugriff-Speicher ergibt, nämlich die oberste Seite.
Die Mlkroprogrammspelcher-(ROM) Adressen sind sämtlich 12 Bits lang und werden durch das Aneinanderreihen eines 8-Bit-Registers mit den unteren vier, Bits eines ß-Registers (eine geradzahlige Ziffer-Adresse) erhalten. Drei solcher ROM-Adressenregister sind in jedem Paar von A- und ß-Selten enthalten. Eine davon fügt Ziffer Bl und Al zusammen und bildet das ROM-. Adressenregister. Diese Kombination dient zur Obersetzung von Daten. Eine Code-Tabelle wird in dem ROM gespeichert und die Übersetzung wird einfach dadurch ausgeführt, daß der Eingangscode In Bl und A1 eingesetzt wird und das ROM gelesen wird.
Die beiden anderen 12-ΒΚ-Λ0Λ/-Adressenregister dienen zum Speichern der Rückkehradressen nach Ausführung eines Mlkroprogramm-Unterroutlnen-Sprungbefehls. Die Rückkehr-Seltenzahl wird In der B-Ziffer und die Adresse Innerhalb einer Seite wird In dem A-Register In den Kombinationen Al zusammen
ίο mit BA und A3 zusammen mit B6 gespeichert. Dadurch können zwei Ebenen an Unterroutinen bedient werden.
Eine Beschreibung der Schnittstellen zwischen der Datenverarbeitungseinheit und der System-Peripherie, innerhalb welcher sie angeordnet 1st, wird jetzt mit Bezug auf Fig. 3 erläutert. Wie dargestellt, enthalten die verschiedenen Schnittstellen Datensammelleitungen 20 von 8-Blt-Brelte eine Adressen-Sammelleitung 21 und verschiedene Steuerleitungen. Man erinnert sich aus der Beschreibung des Systems in Fig. 2, daß eine 16-Blt-Adresse zum Adressleren des Dlrektzugriff-Speichers 13 notwendig ist, während eine 12-Blt-Adresse zum Adressleren des Lesespeichers 12 benötigt wird. Eine 4-Blt-Adresse wird für den Ein/Ausgangsdekoder 14a gebraucht, der seinerseits ein Peripheriegerät entweder mittels der Ausgangslogik IAB oder der Eingangslogik IAC auswählt, je nachdem ob die Datenübertragung zur Peripherie in Form einer Ausgangsübertragung oder einer Eingangsübertragung aufgerufen wurde. Die Eingangsübertragung zur Datensammelleitung 20 geschieht durch Übertragungsgatter 28, wenn ein Ein/Ausgangssignal von der Multlprozessor-Einheit übertragen wurde und ein Schreibsignal zur gleichen Zelt nicht vorhanden 1st.
Die Übertragung von System-Befehl und von Daten aus dem Direktzugriff-Speicher 13 geschieht mittels der Datensammelleitung 20, wenn kein Schreibsignal, sondern wenn ein Speichersignal und eine 16-Blt-Adresse für den Direktzugriff-Speicher 13 vorhanden ist. Eine Mikrobefehlsübertragung aus dem Lesespeicher 12 tritt auf, wenn kein Speichersignal vorhanden ist, wenn kein Ein/Ausgangssignal vorhanden ist und wenn die 12-Bit-Adresse dem Lesespeicher 12 zugeführt wurde.
Eine mehr ins einzelne gehende Beschreibung der Datenverarbeitungseinheit wird jetzt mit Bezug auf die Flg. 4A und 4B gegeben, die in der angedeuteten Weise zusammengehören. Die Funktionseinheiten in den Fig. 4A und 4B wurden allgemein im Zusammenhang mit Fig. 2 beschrieben. Man erinnere sich aus der dortigen Erläuterung, daß die Datenverarbeitungseinrichtung mehrere Registergruppen umfaßt, von denen jede Gruppe einem speziellen Prozessor zugeordnet ist und daß die Datenverarbeitungseinrichtung außerdem gemeinsame Elemente umfaßt, die für die einzelnen Registergruppen frei verfügbar sind, und zwar auf ZeIt-Multlplex-Basis, so daß zu einer vorgegebenen Taktzeit ein auf solche Weise gebildeter Prozessor Imstande 1st, eine Funktion auszufahren.
in Fig.4A umfaßt das fi-Zwlschenspeicherregister 31 24 Register, jedes 8 Bits breit, während das A-Zwlschenspeicherreglster 32 16 Register von je 8 Bit Breite aufweist. ALU 33 1st eine 4-Bit arithmetische Logikeinheit, während das tf-Register 34 ein 4-Blt-
Register ist, auf das jeweils bitweise zugegriffen wird. Das tf-Register 34 Ist eines derjenigen Register, die jedem Prozessor eigen sind. Somit können bis zu 4 Übertrag-Bits In dem AT-Register 34 vorhanden sein,
ίο
und zwar je ein Bit für jeden Prozessor. Das PR -Register 37 weist vier Register von je 4 Bits auf und 1st jeweils einem Prozessor zugeordnet.
Das Adressenregister 50 umfaßt 8 Register zu je 4 Bits, die zur Übertragung der oberen 8 Bit-Adressen zum Dlrektzugrlff-Spelcher verwendet werden. Der Grund für diese Organisation des Adressenregisters 50 besteht darin, daß die Datenpfade zu und von dem Adressenregister 50 zwei Sammelleitungen umfassen, von denen jede 4 Bits breit 1st.
Das Register 54 1st ein 8-BU-Reglster und führt Daten dem A -Zwischenspeicherregister 32 zu. Das N-Reglster 44 weist vier Register zu je 2 Bits auf. Für jeden Prozessor In dem System ist ein eigenes 2-BIt-A/-Register vorgesehen.
Gemäß Fig. 4B enthalten das A'-Reglster 35 und das PC-Register 36 jeweils vier Register zu je 8 Bits, wobei jedes Register einem eigenen Prozessor zugewiesen 1st. In ähnlicher Weise enthalten das /-Register 43 und das K-Register 42 vier Register von je 4 Bits, wobei jedes Register einem eigenen Prozessor zugewiesen ist.
Das Herz der Steuereinheit 40 1st ein zusammengesetzter Lesespeicher, der eine 51 mal 29 Λ/05-Matrix sein kann, welche wiederholt programmiert werden kann, um die Steuersignalgruppen zu verandern, die ihrerseits zur Entschlüsselung der Mikrobefehle verwendet werden, die Im A'-Reglster 35 eines speziellen Prozessors aus dem externen Lesespeicher 12 (vgl. Fig. 3) empfangen werden. Das ^-Register 41 ist ein 1-BIt Fllp-Flop-Register, das bereits Im Zusammenhang mit Flg. 2 erörtert wurde.
Man entnimmt welter der Flg. 4B, daß die für die Speicherzugriffs- und Ein- und Ausgabeoperationen-Signale direkt durch den zusammengesetzten Lesespeicher und den Status des jeweiligen ^-Registers 42 erzeugt werden, der den Zustand jedes Prozessors während der Zeit speichert, während der die anderen Prozessoren In der Ausführung begriffen sind. Die Signale, die eine Funktion der arithmetischen Loglkeinhett und Datentransfers zwischen den Registern auslösen, werden ebenfalls direkt durch den Lesespeicher erzeugt.
Fig. 6 ist ein schematlsches Diagramm der arithmetischen Logikeinheit (ALU) 33 aus FIg. 2 und 4A. Die ALU ist ein 4-Bit-Addierer, der die Funktionen AND. EXCLUSIVE, OR und ADD ausführt. Wie in Fig.6 dargestellt 1st, wird die ALU aus 4 Stufen gebildet, um die AL{/-Ausgangssignale 50, Sl, 52 und 53 plus einem Übertragssignal Kl zu erhalten. Jede Stufe wird durch eine eigene Gruppe von Spannungsquellen VDD mli elektrischer Energie versorgt. Die Eingangssignale zu der ALU sind die Datengruppen aO, al, al, aZ sowie 60, Al, bl, A3 plus einem Anfangs-Übertragssignal AO. Die Steuersignale ALUX, ALUl, und ALUZ werden aus der Steuereinheit 40 gemäß Flg. 2 und 4B aufgenommen. Das Steuersignal ALUi läßt die ALU die ^M>-Funktion ausführen. Das Steuersignal ALUl läßt die ALU die EXCLUSIVE OR -Funktion ausführen. Das Steuersignal ALUZ läßt die ALU die EXCLUSIVE OR-Funktion mit dem Übertragsignal ATO und das EXCLUSIVE OR -Produkt der Eingangssignale α und A ausführen. Somit läßt eine Kombination der Steuersignale ALUl und ALUZ das ALU die /«»-Funktion an den jeweiligen Eingangssignalen ausführen.
Es wurde bereits mitgeteilt, daß die jeweiligen Register aus Flg. 2, 4A und 4B 4-Blt-Schiebereglster sind, um auf diese Weise ein Vierfaches zeitliches Aufspalten oder einen Zeitmultiplexbetrieb der gemeinsamen Elemente der Einrichtung zu ermöglichen, d. h. der ALU 33, der Steuereinheit 40, usw., wie Im Zusammenhang mit Flg. 2 erörtert wurde. Ein Beispiel eines derartigen Schieberegisters zeigt Fig. 7, das ein schema tlsches Diagramm der K-Register 42 sowie der K-Regi ster 34 der Flg. 2, 4A und 4B Ist. Diese Reclster können als Schieberegister KO, Kl, K2 und K3 (plus dem K -Schieberegister) betrachtet werden, oder sie können als vier Parallel-Register Κ7Ό, YTl, YTZ und
ίο ΚΓ4 betrachtet werden, durch welche Daten synchron mit der zeltlichen Aufteilung der gemeinsamen Elemente der Einrichtung durch die vier die Datenverarbeitungseinrichtung biiüenurii Prozessoren hindurchgeschoben werden.
is Jede Bitstelle des jeweiligen Registers wird aus zwei Zellen gebildet, die durch Phasentaktslgnale Ql, Ql sequentiell angesteuert werden. Wie F1 g. 7 zeigt, wird eine typische Zelle aus FET (Feld-Effekt-Translstor)-Gattern 42a und 42A sowie Umkehrverstärker 42c und AId gebildet, die selbst einzelne Transistoren in den /C-Chlps sind. Während der Taktphase Ql wird das Gatter 42a des Registers YTO (sowie der Register YTl, YTX und YTZ) aktiviert und empfängt ein Eingangssignal YTO. Während der Taktphase Ql wird das Gatter 42A aktiviert und empfängt ein Signal aus dem Gatter 42", das dann frei ist, ein neues Eingangssignal während der nächsten Taktphase öl zu erhalten.
F1 g. 9 ist ein schematlsches Diagramm der Steuer-Matrix der Steuereinheit 40 aus Fig. 2 und 4B. Diese Matrix wird zum Dekodieren der jeweiligen Mikrobefehle verwendet, wenn sie In dem Jf-Register 35 der Flg. 2 und 4B enthalten sind. Diese Matrix kann umprogrammiert werden, indem die verschiedenen Knoten der Matrix verbunden und gelöst werden, so daß sie einem Steuerspeicher äquivalent ist und durch einen solchen ersetzt werden könnte.
Die Beziehung zwischen den jeweiligen zu erzeugenden Steuersignalen und den jeweiligen in dem A'-Register während der Ausführung enthaltenen Mlkrobefeh- len wird im einzelnen in Flg. 8 dargestellt. Die Tabelle In Flg. 8 wird im einzelnen nicht erörtert; die dort enthaltenen Funktionen werden jedoch nachfolgend für jeden Mikrobefehl in der Befehlsgruppe erörtert. In der folgenden Beschreibung zeigen die Buchstaben in dem Mikrobefehlscode an, daß diese Bits nicht verwendet werden, sondern daß der Befehl ein entsprechendes Register adressiert, d. h. B zeigt, das ß-Register 31 der Flg. 2 und 4A wird adressiert, C zeigt, daß ein Ausgangskanal verwendet wird. P repräsentiert eine
Seite In dem Zwischen- oder Hilfsspeicher, usw.
MW-Befehlsllste I. Ziffern-Befehle
- LDA Der Inhalt des A -Speichers (adressiert durch das /-Register) wird nach rechts um 4 Bits verschoben und die oberen vier Bits werden mit Inhalt des ^-Speichers (adressiert durch das Anelnan derhängen des JV-Registers und der S-Befehls- bits) geladen. A(MX1), A(Dv - A(I) Zeit: 1 Taktimpuls Code: 1 1 1 1 B B B B
LDB Der Inhalt des B -Zwischenspeicherregisters (adressiert durch das Aneinanderreihen des ZV-Registers und der ß-Befehlsbits) wird mit den oberen 4 Bits (die In dem A -Speicherregister
ADD
XOD
ORD
AND
INC
ADC
LCA
adressiert durch das /-Register) enthalten sind, geladen.
Zeit: 1 Taktimpuls
Code: 1 0 1 1 B B B B Der Inhalt des A -Speicherregisters (adressiert durch das /-Register), obere 4 Bits, wird mit der Summe der oberen 4 Bits und dem Inhalt des B- INA Speicherregisters (adressiert durch die Aneinanderreihung des //-Registers und der ß-Befehls- bits) geladen.
Β(Ν,Χ,) + A(I)1J, A(I)t -+Λ{1) Zelt: 1 Taktimpuls Code: 1 0 0 1 B B B B
Inhalt des A-Speicherregisters (adressiert durch is das /-Register) obere 4 Bits, wird mit dem EXCLUSIVE OR der gleichen 4 Bits und dem Inhalt des ß-Speicherreglsters (adressiert durch LDR die Aneinanderreihung des /V-Reglsters und der B -Befehlsbits) geladen.
B(N,XL) β A(I)1J, A(I)L ^ A(I) Zelt: 1 Taktimpuls Code: 1 1 0 1 B B B B
Inhalt des A -Speicherregisters (adressiert durch das /-Register) vier obere Bits wird mit OR der 25 Af)R gleichen 4 Bits und dem Inhalt des ß-Spelcherregisters (adressiert durch die Aneinanderreihung des /V-Registers und der ß-Befehlsbits) geladen. Β(Ν,Χ,) w A(I)1J, A(I)L -. A(I) Zelt: 1 Taktimpuls Code: 1 1 0 0 B B B B
Der Inhalt des A -Speicherregisters (adressiert durch das /-Register) obere vier Bits wird mit dem AND der gleichen 4 Bits und dem Inhalt des ß-Spelcherreglsters (adressiert durch die 35 OUT Aneinanderreihung des N-Registers und der B-Befehlsbits) geladen. Β(Ν,Χ,) ·λ A(I)1J, A(DL - A(I) Zelt: 1 Taktimpuls Code: 1 1 1 0 B B B B
II. Zeichen-Befehle
Inhalt des ß-Speicherreglsters (adressiert durch das Aneinanderreihen des N -Registers und der ß-Befehlsbits) wird weitergestellt und das Ergebnis wird in den A -Speicherregister gesetzt (adressiert durch das /-Register). B(KX1)+I ^AV) Zelt: 2 Taktimpulse Code: 1 0 1 0 B B B 0
Der Inhalt des ß-Speicherregisters (adressiert durch die Aneinanderreihung des ^-Registers und der Ä-Befehlsblts) wird zum Inhalt des A-Speicherregtsters (adressiert durch das /-Register) addiert
LCB
so
55
A(T)
Zeit 2 Taktimpulse Code: 1 000BBB0
Der Inhalt des Λ-Speicherregisters (adressiert «> RED durch das /-Register) wird mit dem Inhalt des ß-Speicherreglsters (adressiert durch die Aneinanderreihung des /V-Registers und der ß-Befehlsbits) geladen.
B(N1X1) ■-* A(T) Zelt 1 Taktimpuls Code: 101 OB BB Γ Der Inhalt des ß-Spelcherreglsters (adressiert
durch die Aneinanderreihung des JV-Reglsters und der ß-Befehlsblts) wird mit dem Inhalt des A -Speicherregisters (adressiert durch das /-Register) geladen. A(I) - B(N,XJ Zelt: 1 Taktimpuls Code: 1 0 0 0 B B B 1
Der Inhalt des A -Speicherregisters (adressiert durch die Aneinanderreihung des W-Registers und der A -Befehlsbits) wird um eine Einheit weitergestellt. A(N,XL)+l - A(N1X1) Zelt: 2 Taktimpulse Code: 0 0 0 0 0 A A 1
III. Literal-Befehle Der Inhalt des A -Speicherregisters (adressiert
durch das /-Register) wird nach rechts um 4 Bits verschoben und die obersten 4 Bits werden mit den R -Befehlsbits geladen.
XL, A(I)1J -^A(T)
Zeit: 1 Takt
Code: 0 0 1 1 R R R R
Der Inhalt des A -Speicherregisters (adressiert
durch das /-Register) vier obersten Bits, wird mit der Summe der gleichen 4 Bits und den R-
Befehlsblts geladen.
XL +A(I)11, A(I)L-* A(I)
Zeit: 1 Taktimpuls
Code: 0 0 0 1 R R R R
IV. Ein/Ausgabe-Befehle Der Inhalt des A -Speicherregisters (adressiert
durch das /-Register) und die C-Befehlsbits werden ausgegeben.
A(I) - OUT; XL -. OUT Zeit: 2 Taktsignale
Code: 0 1 1 1 C C C C
Der Inhalt des A -Speicherregisters (adressiert
durch das /-Register) wird mit den Eingabedaten geladen. Die C-Befehlsbits werden ausgegeben.
IN - A(I); XL -. OUT
Zelt: 2 Taktimpulse
Code: 0 1 1 0 C C C 0
Der Inhalt des A -Speicherregisters (adressiert
durch das /-Register) wird nach rechts um ein
Bit verschoben und das erste und das vierte Bit
werden ausgegeben und das oberste Bit wird aus dem Eingang geladen. Die C-Befehlsbits werden ausgegeben. Wenn das /V-Befehlsbit eine Null 1st, dann wird der Prozeß viermal wiederholt.
A(DlA - OUTPUT; X1 - OUT Zeit: Ί oder 4 Taktimpulse
Code: 0 1 1 0 N C C 1
V. Speicher-Befehle
Der Inhalt der Speicherregister A und ß (adressiert durch das Aneinanderreihen des ^-Registers und der Λ-Befehlsbits) wird als Speicheradresse ausgegeben. Der Inhalt des Λ-Speicherregisters (adressiert durch das /-Register) wird mit den Elngangs-Spelcherdaten aus dem RAM geladen. Wenn die A -Bits 11 sind, dann werden die obersten 8 Adressenbits sämtlich durch Einsen ersetzt.
DATA[B(NJ1), A{N,XJi - A(I) Zelt: 3 Taktimpulse Code 0 0 0 0 1 A A 1
WRT Der Inhalt der Speicherregister A und 8 (adressiert durch das Aneinanderreihen des TV-Registers und der Λ-Befehlsbits) wird als Speicheradresse ausgegeben. Der Inhalt des Λ-Speicherregisters (adressiert durch das /-Register) wird als Ausgangsspeicher Daten zum RAM ausgegeben. Wenn die A -Bits 11 lauten, werden die obersten 8 Adressenbits samtlich durch Einsen ersetzt. A(I) - DATA IB(NJi1), A(N1X1)] Zeit: 3 Taktimpulse Code: 0 0 0 0 1 A A 0
TRN Der Inhalt des A -Speicherregisters (adressiert durch das /-Register) und des des 8-Spelcherregisters (adressiert durch das Aneinanderreihen des yV-Registers und 0, 0, 1 Bits), werden als Speicheradresse ausgegeben. Der Inhalt des A-Spelcherreglsters (adressiert durch das /-Register) wird mit dem Eingangsspeicher Daten aus dem ROM geladen.
DATA [B(N1X1), A(I)] - A(D Zelt: 3 Taktimpulse Code: 0 10 10 0 11
VI. Sprlng-Befehle JUP Der Inhalt des PÄ-(Selten-)Reglsters und das
nächste ΛΟΛί-Byte werden In das PC, (Programm-Zähler-)Reglster geladen.
Zeit: 2 Taktimpulse
Code: 0 10 10 0 0 0 J(JK Wenn K gleich Eins 1st, dann tue das gleiche wie bei JUP.
Zelt: 2 Taktimpulse
Code: 0 10 10 0 0 1 JF Wenn die F-Marklerung eine Eins 1st, dann tue das gleiche wie In JUP.
Zelt: 2 Taktimpulse
Code: 0 10 10 0 10 j AR Wenn die AND der A -Befehlsbits und die oberen 4 Bits des Λ-Speichers (adressiert durch das /-
Register) nicht Null sind, dann tue das gleiche
wie in JUP.
Zeit: 2 Taktimpulse
Code: 0 1 0 0 A A A A JNO Wenn NO Eins 1st, dann tue das gleiche wie In JUP.
Zelt: 2 Taktimpulse
Code: 0 10 0 0 0 0 0 CAL Der Inhalt des Pfl-(Selten-)Reglsters und des
PC-(Programm-Zähier-)Reglsters plus zwei wird
in die Speicherregister A und B (adressiert durch das Aneinanderreihen des -V-Registers und der
A -Befehlsbits) geladen. Dann tue das gleiche wie
unter JUV.
Zeit: 2 Taktimpulse
Code: 000000A0 RET Lade das PR -(Seiten-)Reglster und das PC- (Programm-Zähler-)Register mit dem Inhalt des
A- und des B-Speicherregisters (adressiert durch
das Aneinanderreihen des JV-Reglsters und der
A -Befehls-Blts). Zelt: 2 Taktimpulse
Code: 0 0 0 0 0 1 A 0
LPR
LDl
CF
LDN
ADK
VII. Reglstermanipulatlons-Befehle Lade das PÄ-(Selten-)Reglster mit den P-Befehlsblts. Wenn der nächste Befehl keinen Sprung ausfuhrt, dann wird das Seltenregister auf seinen Ursprungswert zurückgestellt. Zelt: 1 Taktimpuls Code: 0 0 1 0 P P P P
Lade das /-Register mit Nl, NZ und die /-Befehls-Blts. Zeit: 1 Taktimpuls Code: 0 1 0 1 1 0 11
Das Komplement des Zustands der /"-Markierung
Zeit: 1 Taktimpuls Code: 0 10 10 10 1
STR Lade den A -Speicher (adressiert durch das I-Register) mit dem Inhalt von K (Übertrag), dem TV-Register und dem /-Register. Zeit: 1 Taktimpuls Code: 0 10 10 110
Lade dis Λ'-Register mit den /V-Befehlsblts. Zeit: 1 Taktimpuls Code: O 1 ti 1 1 1 N N
Wenn der nächste Befehl ein ADD, ADR oder ADC ist, wird der Inhalt des K-(Übertrag-)Reglsters zu dem Ergebnis zugezählt. Wenn der nächste Befehl ein LDR, LDA, LCA, XOD, ORD oder AND 1st, dann wird der Inhalt des K-(UbCT-trags-)Registers ein EXCLUSIVE OR mit dem nledrigststelligen Bit sein. Wenn der nächste Befehl ein INC oder INA ist, dann zählt er nur um eine Einheit welter, wenn der Übertrag gleich Eins 1st. Wenn der nächste Befehl ein
·» JAR ist, dann wird er die untersten 4 Bits
prüfen. Wenn der nächste Befehl Irgendetwas anderes Ist, dann wird ADK ignoriert. Zelt: 1 Taktimpuls Code: 0 10 10 111
MOD Die unteren 4 Bits des A -Speicherregisters (adressiert durch das /-Register) werden zu einer ODER-Verblndung mit den untersten 4 Bits des nächsten Befehls vor seiner Ausführung verknüpft.
« Zelt: 1 Taktimpuls
Code: 0 10 10 10 0
Flg. 7 zeigt mehrere Kurvenzüge zur Erläuterung der zeitlichen Beziehung zwischen den Taktzügen, die jedem einzelnen Prozessor zugeordnet sind. Jedem Prozessor wird den gemeinsamen Elementen der Datenverarbeitungseinrichtung zu jedem Viertel der Taktzelt Zugriff gewährt. Wenn ein spezieller Mikro-Befehl mehr als eine Taktzelt oder einen Zyklus benötigt, dann wird die Vervollständigung dieses Befehls verzögert werden müssen, bis der entsprechende Prozessor erneut Zugriff zu den gemeinsamen Elementen der Einrichtung erhält. Beim Starten der Datenverarbeitungseinrichtung setzt die Steuereinheit 40 eine Startadresse in den Programmzfihler 36 (siehe Fig. 2) und in die Seltenregister 37. Die Seltenregister werden auf 0, 1, 2 und 3 gesetzt für die Prozessoren 0, 1, 2 und 3. Die für die Prozessoren geschriebenen Mikroprogramme müssen an diesen Stellen beginnen. Keine anderen Register werden voreingestellt, so daß es für den Programmlerer notwendig lsi, das JV-Register 44, dps /-Register 43, und andere notwendigen Register anzustoßen. Da der
15 16
Wert in Register 44 als Teil des Weites fyr das /-Register 43 verwendet wird, muß das W-OReglster zuerst angeschlossen werden.
Hierzu 10 Blatt Zeichnungen
10
15
20
25
35
40
45
50
55
60

Claims (10)

Patentansprüche:
1. Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender Prozesse mit einer oder mehreren auf einem hochintegrierten Schaltkreis angeordneten als mlkioprogrammlerbare Prozessoren arbeitenden Datenverarbeitungseinheiten, die sich mehrere Systemelemente einschließlich eines Direktzugriffsspeichers teilen und die über Eingabe/ Ausgabe-Steuereinheiten mit peripheren Einrichtungen verbunden sind, wobei die Datenverarbeitungseinrichtung mindestens eine arithmetische Logikeinheit und Register zum vorübergehenden Speichern von Steuerdaten einschließlich Adressen und kodierten (vertikalen) Mikrobefehlen enthält, dadurch gekennzeichnet, daß die Datenverarbeitungseinrichtung mindestens zwei miteinander verbundene Zwischenspeicherregister (5-Register 31, A -Register 32) enthält, die entsprechend den verschiedenen Prozessen Adressen des Direktzugriffsspeichers (13) und Mikrobefehlsadressen vorübergehend speichern und von denen wenigstens eines mit einer arithmetischen Logikeinheit (33) verbunden ist, daß eine Steuereinheit (40) vorgesehen ist, die einen nicht-kodierte (horizontale) Mikrobefehle speichernden Steuerspeicher und eine Steuerlogik enthält und die die vorübergehend gespeicherten Mikrobefehlsadressen und/oder die kodierten (vertikalen) Mikrobefehle empfängt, Steuersignale erzeugt und die Steuersignale an die arithmetische Logikeinheit (33) überträgt, daß mehrere Adressenregister (43, 44) vorgesehen sind, die aus den Zwischenspeicherregistern (31, 32) Daten, die zu der arithmetischen Logikeinheit (33) oder zu der Steuereinheit (40) übertragen werden, sequentiell abrufen, und daß ein weiteres Register (F-Register 41) vorgesehen ist, das von einer einzelnen Datenverarbeitungseinheit (11) benutzt w!rd oder eine Kommunikation zwischen den mehreren Datenverarbeltungs- einheiten (11) ermöglicht, wobei die Steuereinheit (40), die arithmetische Logikeinheit (33) und die Zwischenspeicherregister (31, 32) von den Datenverarbeitungseinheiten (11) gemeinsam genutzt werden.
2. Datenverarbeitungseinrichtung nach An-Spruch 1, dadurch gekennzeichnet, daß für jede der Datenverarbeitungseinheiten (11) ein Mlkrobefehls-Zähler-Seltenreglster (37), das die Seltenadresse des jeweils nächsten, auszuführenden Mikrobefehls enthält, und ein ^-Register (34) vorgesehen ist, das so während Addier-Befehlen jeweils von der arithmetischen Logikeinheit (33) gesetzt oder gelöscht wird und als Eingang für die arithmetische Logikeinheit (33) dient.
3. Datenverarbeitungseinrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß ein /V-Reglster (44) zum Adressleren von vier Seiten in dem B-Zwlschenspelcherreglster (31) vorgesehen 1st, das verschiedene Werte für jede der Datenverarbeitungseinheiten (11) speichert.
4. Datenverarbeitungseinrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß das fl-Zwlschenspelcherreglster (31) als universelles Speicherregister oder In Verbindung mit dem Λ -Zwischenspeicherregister (32) für Spezlalaufgaben verwendet wird.
5. Datenverarbeitungseinrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß der Steuerspeicher als Nur-Lesespelcher ausgebildet 1st
6. Datenverarbeitungseinrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß der Steuerspeicher eine Halbleiterschaltmatrix enthält
7. Datenverarbeitungseinrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß der hochintegrierte Schaltkreis als MOS-Chlp ausgebildet ist
8. Datenverarbeitungseinrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß die auf dem hochintegrieiten Schaltkreis ausgebildeten Register als unipolare Feldeffekttransistoren ausgebildet sind.
9. Datenverarbeitu-agseinrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß die von den Datenverarbeitungseinheiten (11) gemeinsam genutzten Einrichtungen (31, 32, 33, 40) den Datenverarbeitungseinheiten (11) auf ZeItmultlplexbasis zur Verfugung stehen.
10. Datenverarbeitungseinrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß jeder der Datenverarbeitungseinheiten (11) ein Teil der A- und ß-Zwischenspelcherregister (31, 32) zugewiesen und der jeder Datenverarbeitungseinheit (11) zugewiesene Adreßteil In dem dem A- und B-Zwirchenspeicherregister (31, 32) jeweils zugeordneten Adressenregister (43, 44) gespeichert Ist, wobei Teile des A- und fl-Zwischenspelcherregisters (31, 32) für besondere Anwendungsfälle zu Gruppen zusammenfaßbar sind.
DE2540975A 1974-11-26 1975-09-13 Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender Prozesse Expired DE2540975C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/527,358 US3980992A (en) 1974-11-26 1974-11-26 Multi-microprocessing unit on a single semiconductor chip

Publications (2)

Publication Number Publication Date
DE2540975A1 DE2540975A1 (de) 1976-08-12
DE2540975C2 true DE2540975C2 (de) 1985-09-12

Family

ID=24101148

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2540975A Expired DE2540975C2 (de) 1974-11-26 1975-09-13 Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender Prozesse

Country Status (7)

Country Link
US (1) US3980992A (de)
JP (1) JPS5858705B2 (de)
BE (1) BE834070A (de)
CA (1) CA1045247A (de)
DE (1) DE2540975C2 (de)
FR (1) FR2293009A1 (de)
GB (1) GB1498145A (de)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4371923A (en) * 1970-12-28 1983-02-01 Hyatt Gilbert P Computer system architecture
US4296930A (en) * 1975-11-26 1981-10-27 Bally Manufacturing Corporation TV Game apparatus
US4093982A (en) * 1976-05-03 1978-06-06 International Business Machines Corporation Microprocessor system
US4104720A (en) * 1976-11-29 1978-08-01 Data General Corporation CPU/Parallel processor interface with microcode extension
US4079455A (en) * 1976-12-13 1978-03-14 Rca Corporation Microprocessor architecture
US4174536A (en) * 1977-01-21 1979-11-13 Massachusetts Institute Of Technology Digital communications controller with firmware control
JPS53132245A (en) * 1977-04-25 1978-11-17 Hitachi Ltd Subminiature computer
US4199811A (en) * 1977-09-02 1980-04-22 Sperry Corporation Microprogrammable computer utilizing concurrently operating processors
US4475172A (en) * 1978-05-30 1984-10-02 Bally Manufacturing Corporation Audio/visual home computer and game apparatus
US4197579A (en) * 1978-06-06 1980-04-08 Xebec Systems Incorporated Multi-processor for simultaneously executing a plurality of programs in a time-interlaced manner
US4218741A (en) * 1978-06-23 1980-08-19 International Business Machines Corporation Paging mechanism
US4446533A (en) * 1978-09-07 1984-05-01 National Research Development Corporation Stored program digital data processor
US4244028A (en) * 1979-03-08 1981-01-06 National Semiconductor Corporation Digital microprocessor having a time-shared adder
US4471456A (en) * 1980-04-14 1984-09-11 Sperry Corporation Multifunction network
US4383296A (en) * 1980-05-16 1983-05-10 Apple Computer, Inc. Computer with a memory system for remapping a memory having two memory output buses for high resolution display with scrolling of the displayed characters
GB2077010B (en) * 1980-06-02 1984-10-31 Hitachi Ltd Microprogramme control method and apparatus therefor
JPS57753A (en) * 1980-06-02 1982-01-05 Hitachi Ltd Microprogram controller
US4446514A (en) * 1980-12-17 1984-05-01 Texas Instruments Incorporated Multiple register digital processor system with shared and independent input and output interface
EP0054187B1 (de) * 1980-12-15 1988-09-07 Texas Instruments Incorporated Mehrfaches Digital-Prozessor-System
WO1982003931A1 (en) * 1981-04-27 1982-11-11 Kris Bryan Multi-master processor bus
US4450525A (en) * 1981-12-07 1984-05-22 Ibm Corporation Control unit for a functional processor
JPS58207152A (ja) * 1982-05-28 1983-12-02 Nec Corp パイプライン演算装置テスト方式
US6414368B1 (en) 1982-11-26 2002-07-02 Stmicroelectronics Limited Microcomputer with high density RAM on single chip
US5243698A (en) * 1982-11-26 1993-09-07 Inmos Limited Microcomputer
US4680698A (en) * 1982-11-26 1987-07-14 Inmos Limited High density ROM in separate isolation well on single with chip
JPS59223875A (ja) * 1983-06-01 1984-12-15 Nec Corp 衛星搭載用デ−タ・ハンドリング・システム
US4766533A (en) * 1984-03-09 1988-08-23 The United States Of America As Represented By The United States National Aeronautics And Space Administration Nanosequencer digital logic controller
US4761755A (en) * 1984-07-11 1988-08-02 Prime Computer, Inc. Data processing system and method having an improved arithmetic unit
JPS61110256A (ja) * 1984-11-02 1986-05-28 Hitachi Ltd 複数の演算部を有するプロセツサ
CA1253912A (en) * 1984-11-08 1989-05-09 Masao Hosaka System for controlling image formation
AU588865B2 (en) * 1985-04-11 1989-09-28 Honeywell Information Systems Inc. Multiprocessors on a single semiconductor chip
JPS61264470A (ja) * 1985-05-03 1986-11-22 アドバンスト・マイクロ・デイバイシズ・インコ−ポレ−テツド モノリシツク集積回路装置
JP2564805B2 (ja) * 1985-08-08 1996-12-18 日本電気株式会社 情報処理装置
JPS62295168A (ja) * 1986-06-13 1987-12-22 Canon Inc 機器制御装置
US4829422A (en) * 1987-04-02 1989-05-09 Stellar Computer, Inc. Control of multiple processors executing in parallel regions
US5142677A (en) * 1989-05-04 1992-08-25 Texas Instruments Incorporated Context switching devices, systems and methods
US4939638A (en) * 1988-02-23 1990-07-03 Stellar Computer Inc. Time sliced vector processing
US5499376A (en) * 1993-12-06 1996-03-12 Cpu Technology, Inc. High speed mask and logical combination operations for parallel processor units
US6643765B1 (en) 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US5974498A (en) * 1996-09-24 1999-10-26 Texas Instruments Incorporated Loading page register with page value in branch instruction for as fast access to memory extension as in-page access
US6150836A (en) * 1997-06-13 2000-11-21 Malleable Technologies, Inc. Multilevel logic field programmable device
US6006321A (en) * 1997-06-13 1999-12-21 Malleable Technologies, Inc. Programmable logic datapath that may be used in a field programmable device
US6076157A (en) * 1997-10-23 2000-06-13 International Business Machines Corporation Method and apparatus to force a thread switch in a multithreaded processor
US6697935B1 (en) 1997-10-23 2004-02-24 International Business Machines Corporation Method and apparatus for selecting thread switch events in a multithreaded processor
US6212544B1 (en) 1997-10-23 2001-04-03 International Business Machines Corporation Altering thread priorities in a multithreaded processor
US6567839B1 (en) 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
US6105051A (en) * 1997-10-23 2000-08-15 International Business Machines Corporation Apparatus and method to guarantee forward progress in execution of threads in a multithreaded processor
DE19910451C2 (de) * 1998-05-02 2003-08-14 Ibm Multiprozessor
US6577316B2 (en) 1998-07-17 2003-06-10 3Dlabs, Inc., Ltd Wide instruction word graphics processor
US6438569B1 (en) 1999-09-20 2002-08-20 Pmc-Sierra, Inc. Sums of production datapath
US20060161755A1 (en) * 2005-01-20 2006-07-20 Toshiba America Electronic Components Systems and methods for evaluation and re-allocation of local memory space

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE634161A (de) * 1962-07-03
GB1215216A (en) * 1968-05-17 1970-12-09 Venner Ltd Improvements relating to integrated circuit chips
US3601629A (en) * 1970-02-06 1971-08-24 Westinghouse Electric Corp Bidirectional data line driver circuit for a mosfet memory
US3758761A (en) * 1971-08-17 1973-09-11 Texas Instruments Inc Self-interconnecting/self-repairable electronic systems on a slice
US3757306A (en) * 1971-08-31 1973-09-04 Texas Instruments Inc Computing systems cpu
US3786436A (en) * 1973-03-14 1974-01-15 Gte Automatic Electric Lab Inc Memory expansion arrangement in a central processor

Also Published As

Publication number Publication date
BE834070A (fr) 1976-02-02
GB1498145A (en) 1978-01-18
FR2293009A1 (fr) 1976-06-25
FR2293009B1 (de) 1980-07-18
JPS5162953A (de) 1976-05-31
DE2540975A1 (de) 1976-08-12
JPS5858705B2 (ja) 1983-12-27
CA1045247A (en) 1978-12-26
US3980992A (en) 1976-09-14

Similar Documents

Publication Publication Date Title
DE2540975C2 (de) Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender Prozesse
DE2230102C2 (de) Mikroprogrammierter Prozessor mit bitparalleler Datenübertragung
DE2357003C2 (de) Prozessor für eine Mehrprogramm-Datenverarbeitungsanlage
DE2716369C2 (de)
DE1774296C2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE2912287C3 (de) Datenverarbeitungsanlage
DE2224537C2 (de) Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor
DE2714805C2 (de)
DE2411963B2 (de) Datenverarbeitungsanlage
DE1549523B2 (de) Datenverarbeitungsanlage
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.
DE2115431A1 (de) Universalmodul zum Verbinden von Einheiten in Patenverarbeitungsanlagen
DE1900141B2 (de) Hilfssteuerwerk fur eine Datenver arbeitungsanlage
DE1269393B (de) Mikroprogramm-Steuerwerk
DE2318069A1 (de) Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix
DE1774870C3 (de) Einrichtung zur Adressierung einer Speicherzelle eines Speichers in einer Datenverarbeitungsanlage
DE2332971C2 (de) Mikroprogrammsteuereinrichtung
DE1115488B (de) Datenverarbeitungssystem
DE2951040C2 (de)
DE2747304C3 (de) Einrichtung zur Mikrobefehlssteuerung
DE2108157A1 (de) Datenverarbeitungsanlage mit über lagertem Speicherverkehr
DE1285218B (de) Datenverarbeitungsanlage
DE3344340C2 (de) Datenverarbeitungsanordnung zum Durchführen von Mikrobefehlen
EP0265636A1 (de) Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher
DE1277598C2 (de) Datenverarbeitungsanlage

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8128 New person/name/address of the agent

Representative=s name: EISENFUEHR, G., DIPL.-ING. SPEISER, D., DIPL.-ING.

8125 Change of the main classification

Ipc: G06F 9/46

8126 Change of the secondary classification

Ipc: G06F 15/16

D2 Grant after examination
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: SAMSUNG ELECTRONICS CO., LTD., SEOUL/SOUL, KR

8328 Change in the person/name/address of the agent

Free format text: EISENFUEHR, G., DIPL.-ING. SPEISER, D., DIPL.-ING. RABUS, W., DR.-ING. BRUEGGE, J., DIPL.-ING. KLINGHARDT, J., DIPL.-ING., PAT.-ANWAELTE, 2800 BREMEN