DE2540975C2 - Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender Prozesse - Google Patents
Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender ProzesseInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 62
- 238000000034 method Methods 0.000 title claims description 16
- 230000008569 process Effects 0.000 title claims description 14
- 230000015654 memory Effects 0.000 claims description 62
- 238000004891 communication Methods 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 8
- 238000012432 intermediate storage Methods 0.000 claims description 7
- 239000011159 matrix material Substances 0.000 claims description 6
- 230000002093 peripheral effect Effects 0.000 claims description 5
- 239000004065 semiconductor Substances 0.000 claims description 3
- 230000005669 field effect Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 239000002131 composite material Substances 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241001233037 catfish Species 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures 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
-
- 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 or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Multi Processors (AREA)
- Executing Machine-Instructions (AREA)
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
und auf einem Halbleiter-Chip untergebracht zu abrufen, und daß ein weiteres Register vorgesehen 1st,
werden. das von einer einzelnen Datenverarbeitungseinheit
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-
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
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-
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-
gruppen auf, die gruppenweise die zur Entnahme und Flg. 3 eine Darstellung der zu einer der Datenverar-
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;
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
ten unabhängig Voneinander zeitgleich ablaufende Steuereinheit und
nung und Komir>unlkatlon zwischen den einzelnen so betriebes der verschiedenen mikroprogrammierbaren
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
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.
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
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
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
durch das /-Register) vier obersten Bits, wird
mit der Summe der gleichen 4 Bits und den R-
XL +A(I)11, A(I)L-* A(I)
Code: 0 0 0 1 R R R R
durch das /-Register) und die C-Befehlsbits
werden ausgegeben.
Code: 0 1 1 1 C C C C
durch das /-Register) wird mit den Eingabedaten
geladen. Die C-Befehlsbits werden ausgegeben.
IN - A(I); XL -. OUT
Code: 0 1 1 0 C C C 0
durch das /-Register) wird nach rechts um ein
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.
Code: 0 1 1 0 N C C 1
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
nächste ΛΟΛί-Byte werden In das PC,
(Programm-Zähler-)Reglster geladen.
Code: 0 10 10 0 0 0
J(JK Wenn K gleich Eins 1st, dann tue das gleiche
wie bei JUP.
Code: 0 10 10 0 0 1
JF Wenn die F-Marklerung eine Eins 1st, dann tue
das gleiche wie In JUP.
Code: 0 10 10 0 10
j AR Wenn die AND der A -Befehlsbits und die oberen
4 Bits des Λ-Speichers (adressiert durch das /-
wie in JUP.
Code: 0 1 0 0 A A A A
JNO Wenn NO Eins 1st, dann tue das gleiche wie In
JUP.
Code: 0 10 0 0 0 0 0
CAL Der Inhalt des Pfl-(Selten-)Reglsters und des
in die Speicherregister A und B (adressiert durch
das Aneinanderreihen des -V-Registers und der
unter JUV.
Code: 000000A0
RET Lade das PR -(Seiten-)Reglster und das PC-
(Programm-Zähler-)Register mit dem Inhalt des
das Aneinanderreihen des JV-Reglsters und der
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.
10
15
20
25
35
40
45
50
55
60
Claims (10)
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.
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)
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 |
JPS57753A (en) * | 1980-06-02 | 1982-01-05 | Hitachi Ltd | Microprogram controller |
GB2077010B (en) * | 1980-06-02 | 1984-10-31 | Hitachi Ltd | Microprogramme control method and apparatus therefor |
EP0054187B1 (de) * | 1980-12-15 | 1988-09-07 | Texas Instruments Incorporated | Mehrfaches Digital-Prozessor-System |
US4446514A (en) * | 1980-12-17 | 1984-05-01 | Texas Instruments Incorporated | Multiple register digital processor system with shared and independent input and output interface |
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 |
US4724517A (en) * | 1982-11-26 | 1988-02-09 | Inmos Limited | Microcomputer with prefixing functions |
US5243698A (en) * | 1982-11-26 | 1993-09-07 | Inmos Limited | Microcomputer |
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 |
US6006321A (en) * | 1997-06-13 | 1999-12-21 | Malleable Technologies, Inc. | Programmable logic datapath that may be used in a field programmable device |
US6150836A (en) * | 1997-06-13 | 2000-11-21 | Malleable Technologies, Inc. | Multilevel logic field programmable device |
US6212544B1 (en) | 1997-10-23 | 2001-04-03 | International Business Machines Corporation | Altering thread priorities in a multithreaded processor |
US6076157A (en) * | 1997-10-23 | 2000-06-13 | International Business Machines Corporation | Method and apparatus to force a thread switch in a multithreaded processor |
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 |
US6567839B1 (en) | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
US6697935B1 (en) | 1997-10-23 | 2004-02-24 | International Business Machines Corporation | Method and apparatus for selecting thread switch events in a multithreaded processor |
DE19910451C2 (de) * | 1998-05-02 | 2003-08-14 | Ibm | Multiprozessor |
WO2000004484A2 (en) * | 1998-07-17 | 2000-01-27 | Intergraph Corporation | 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)
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 |
US3641511A (en) * | 1970-02-06 | 1972-02-08 | Westinghouse Electric Corp | Complementary mosfet integrated circuit 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 |
-
1974
- 1974-11-26 US US05/527,358 patent/US3980992A/en not_active Expired - Lifetime
-
1975
- 1975-08-20 FR FR7525780A patent/FR2293009A1/fr active Granted
- 1975-09-09 CA CA235,105A patent/CA1045247A/en not_active Expired
- 1975-09-11 GB GB37353/75A patent/GB1498145A/en not_active Expired
- 1975-09-13 DE DE2540975A patent/DE2540975C2/de not_active Expired
- 1975-09-30 JP JP50119333A patent/JPS5858705B2/ja not_active Expired
- 1975-10-01 BE BE160586A patent/BE834070A/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US3980992A (en) | 1976-09-14 |
CA1045247A (en) | 1978-12-26 |
DE2540975A1 (de) | 1976-08-12 |
JPS5858705B2 (ja) | 1983-12-27 |
FR2293009B1 (de) | 1980-07-18 |
BE834070A (fr) | 1976-02-02 |
GB1498145A (en) | 1978-01-18 |
FR2293009A1 (fr) | 1976-06-25 |
JPS5162953A (de) | 1976-05-31 |
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 | |
DE1499730A1 (de) | Einrichtung zur Speicherauswahl | |
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 |