DE2540975A1 - Multi-mikro-prozessor-einheit - Google Patents

Multi-mikro-prozessor-einheit

Info

Publication number
DE2540975A1
DE2540975A1 DE19752540975 DE2540975A DE2540975A1 DE 2540975 A1 DE2540975 A1 DE 2540975A1 DE 19752540975 DE19752540975 DE 19752540975 DE 2540975 A DE2540975 A DE 2540975A DE 2540975 A1 DE2540975 A1 DE 2540975A1
Authority
DE
Germany
Prior art keywords
register
memory
registers
control
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19752540975
Other languages
English (en)
Other versions
DE2540975C2 (de
Inventor
David Chin-Chung Lee
Bernardo Navarro 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
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 filed Critical Burroughs Corp
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 or 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Multi Processors (AREA)
  • Executing Machine-Instructions (AREA)

Description

BURROUGHS CORPORATION, eine Gesellschaft nach den Gesetzen des Staates Michigan, Burroughs Place Detroit, Michigan 48232, V.St.A.
Multi-Mikro-Prozessor-Einheit
Die Erfindung betrifft ein Mikro-Programm-Mehrprozessor System, das insbesondere auf einem einzigen Halbleiterchip untergebracht ist.
Fortschritte in der Technik der integrierten Schaltungen führten zu einem Anstieg der Anzahl der Transistorgatter innerhalb eines Schaltungschips bis zu mehreren hunderten und gelegentlich sogar mehr als tausend derartigen Gattern. Diese Entwicklungen ermöglichten Überlegungen anzustellen, einen gesamten Klein-Datenprozessor auf einem einzigen IC-Chip unterzubringen. Dadurch ergeben sich Vorteile in der Serienfertigung, wenn einmal die Schaltungsmasken zur Herstellung des Chips entwickelt worden sind. Der gesamte Prozessor kann dann sehr viel billiger automatisch hergestellt werden, als wenn eine Anzahl derartiger Chips zur Schaffung des Prozessors erforderlich wären, wobei die Herstellung sicherlich noch billiger ist gegenüber dem Fall, daß ein Prozessor aus einzelnen Einheiten zusammengesetzt wird. Ein Beispiel eines Klein-Prozessors, der auf einem
HZ/gs
609823/0617
IC-Typ untergebracht ist, ist in der PatentanmeS.ffimg' ^ ' P 2 357 003.8 (B 253) beschrieben.
Kleinere Datenverarbeitungssysterne finden viele Anwendungsfälle, und zwar nicht nur zur Datenkonzentrierung, als Prozeß-Überwacher und dergleichen, sondern auch in vielen Anwendungsfällen aus dem Bereich des Rechnungswesens, Bürowesens und auch der Technik. In manchen Fällen sind die Datenverarbeitungs-Anforderungen· eines speziellen Buchhaltungsproblems eine Mischung aus Aufgaben zur Bildung von Buchungen und Rechnungen sowie von Prozessen, die größere Rechenfähigkeiten erfordern. Zur Anpassung an diese Situation sind hochwertige Terminals geschaffen worden, die nicht nur im Zeitmultiplexbetrieb sich in einen großen Rechner teilen, sondern die auch gewisse spezielle Verarbeitungsroutinen ausführen können. Terminal-Prozessoren können ebenfalls verschiedene Vor-Bearbeitungsaufgaben ausführen, wie beispielsweise die Ausgabe, die Formatbildung der Daten, etc.
Ein spezielles Strukturkonzept, das eine größere Flexibilität der Rechnerauslegung gestattete, insbesondere im Hinblick auf die Entwicklung von Minikomputern und Mikrokomputern, besteht in der Mikroprogrammierung oder in der Verwendung von Mikrobefehlen zur Darstellung oder Interpretierung von Makrobefehlen und Befehlen für Programmiersprachen. Ursprünglich wurden die Mikrobefehle als jene Gruppen von Steuerbits angesehen, die zur Aktivierung verschiedener Gatter in einem Prozessor zur Ausführung von Datenübertragungen von einem Register zu einem anderen sowie durch die Arithmetik-und Logikeinheit des Prozessors erforderlich waren. Diese Bits wurden in einem kleinen Speicher in dem Prozessor an Stellen gespeichert, die durch den Befehlscode eines Makrobefehls adiessiert werden konnten. In diesem Sinne stand das Konzept der Mikroprogrammierung in dem Ersatz eines Makrobefehls-Dekoders durch einen Tabellenspeicher.
60 9823/0617 original inspected
254097b
Wie anfänglich definiert, war der Mikrobefehl eine Gruppe von nicht verpackten Bits, von denen jedes ein Steuersignal repräsentierte, das zur Aktivierung eines Gatters benötigt wurde, wobei die Gruppe von Steuersignalen sämtliche Gatter repräsentierten, deren Aktivierung zur Ausführung der Funktion während einer Taktzeit erforderlich waren, und zwar entsprechend dem Befehlscode des Makrobefehls, der zur Adressierung des Mikro-befehlsspeichers verwendet wurde. Wenn der Befehlscode des Makrobefehls zwei oder mehrere Taktzeiten benötigte, dann konnte der Befehlscode durch einen Zähler weitergestellt werden, so daß auf eine Folge von Mikrobefehlen zugegriffen wurde.
Mit zunehmender Kompliziertheit des Mikroprogrammprozessors wurde die Länge des Mikrobefehls größer in Anpassung an die erforderlichen externen Steuerbits. Das wiederum erforderte, daß die Mikrobefehlsspeicher in dem Prozessor größer zu sein hatte und damit aufwendiger wurde. Zur Reduzierung der Größe des Mikrobefehlsspeichers in komplizierteren Prozessoren wurden die Mikrobefehle codiert im Unterschied zu einer Reihe von nicht verpackten oder uncodierten Bits. Das wiederum erforderte einen Mikrobefehlsdekoder, der weniger kompliziert als der Makrobefehlsdekoder war, der von dem Mikrobefehlsspeicher ersetzt wurde. Somit sind tatsächlich zwei Arten von Mikrobefehlen vorhanden, weil eine Art eine unverpackte Reihe von Bits und die andere Art eine Reihe von verpackten oder kodierten Bits enthält.
Das Mikroprogrammieren machte es möglich, daß der Datenprozessor auf einer sehr grundlegenden Stufe programmiert werden konnte und gestattete auf diese Weise eine größere Flexibilität für die Verwirklichung oder Interpretation vieler höherer Programmspachen. Jedoch war das ursprüngliche Konzept des Mikrogrammierens zur Vereinfachung des konstruktiven Entwurfs und der Herstellung von Datenprozessoren geschaffen worden. Die Entwicklung von Datenprozessoren, spe-
609 82 3/GW-?
Ί tk I, ■-·, .,"j 7 L
zielle für Minikomputer und Mikroprozessoren, zielte darauf ab, den Prozessor in Form weniger oder, wie oben angedeutet, selbst einem MOS-IC-Chip auszuführen, wobei der Prozessor Mikrobefehlsspeicher verwendet. Jedoch ist die Größe des Datenprozessors im Bereich der Minikomputer noch durch die Anzahl der Transistorgatter begrenzt, die auf dem MOS-IC-Chip placiert werden können. Daher müssen Komputer größerer Art noch immer eine gewisse Anzahl Extra-IC-Chips verwenden, was natürlich zu einer Erhöhung der Herstellungskosten des Systems führt, da viele verschiedene Chips entwickelt und hergestellt werden müssen. In einigen Systemen kann ein erhöhter Datendurchsatz erreicht werden, wobei mehrere Klein-Prozessoren, jeder auf einem besonderen Halbleiterehip, zu einem Mehrprogramm-Betrieb miteinander gekoppelt sind. Jedoch selbst dann erfordert die Datenübertragung zwischen den Chips eine Anzahl von Extra-Cyklus-Zeiten und das sich ergebende System ist nicht so schnell, als wenn ein Groß-Prozessor auf einem einzigen Chip hergestellt werden könnte.
Der Erfindung liegt daher die Aufgabe zugrunde, ein verbessertes Datenverarbextungssystem zu schaffen, das auf einem einzigen IC-Chip Platz findet und erhöhte Betriebsleistung bei geringeren Herstellungskosten bringt. Weiter soll das erfindungsgemäße Datenverarbextungssystem mikroprogrammiert sein, wobei mehrere Prozessoren sich in der Verwendung gemeinsamer Elemente des Systems teilen sollen.
Um mehr a2,s einen Prozessor auf einem einzigen MOS-IC-Chip mit einer begrenzten Anzahl von Transistorgattern unterzubringen, befaßt sich die Erfindung mit mehreren Registergruppen, von denen jede einen anderen Prozessor repräsentiert, wobei die Register sich in einer gemeinsamen Logikeinheit, Steuereinheit, und Sammelleitungen teilen. Die Steuereinheit enthält einen Mikroprogrammspeicher, der mit den jeweiligen Gruppen von Prozessor-Registern zusammenarbeitet und die Datenübertragung zwischen den einzelnen Registergruppen sowie
S 0 9 8 2 3 / 0 6-H
?. h 4 C -j 7 b
mit der Logikeinheit steuert. Derartige Datenübertragungen stehen unter Steuerung eines Taktes, wobei auf die jeweiligen Prozessor-Registergruppen in sequentiellen Zeitabschnitten oder im Multiplex-Betrieb zugegriffen wird, und wobei die jeweiligen Registergruppen durch den Takt sukzessiv aktiviert wurden.
Ein spezieller Vorteil der Erfindung mit mehreren gleichlaufenden Mikroprozessoren besteht darin, daß die Prozessoren auf verschiedenen Pegeln miteinander frei in Kommunikation treten können. Ein Kommunikationspegel ist durch die Verbindungen zwischen den Prozessoren in dem IC-Chip gegeben. Eine Kommunikation kann auch über den örtlichen Zwischen— speicher (local scratch pad memory) erreicht werden, der mit den jeweiligen Prozessoren zusammenarbeitet; und schließlich können die jeweiligen Prozessoren über den Hauptspeicher miteinander in Kommunikation treten. Ein weiterer Vorteil ergibt sich dadurch, daß der gleiche Mikroprogrammspeicher für alle Prozessoren zur Verfügung steht.
Ein Merkmal der Erfindung besteht somit in einem Mehr-Mikroprogrammsystem mit mehreren Register*rruppen, von denen jede einen eigenen Prozessor repräsentiert, sowie mit einer gemeinsamen Logikeinheit, einem Mikroprogramm-Steuerspeicher, Sammelleitungen und Zwischenspeicher (scratch pad memory), der für die jeweiligen Prozessor-Registergruppen zur Verfügung steht.
Merkmale, Vorteile und Anliegen der Erfindung gehen aus der nachfolgend wiedergegebenen Beschreibung noch deutlicher hervor, wobei auf die beigefügten Zeichnungen Bezug genommen wird. Im einzelnen zeigen:
Fig. 1 die Darstellung eines Systems mit Mehrprozessoreinheiten gemäß der Erfindung;
Fig. 2 eine funktionale Darstellung der Einheiten
der Mehrprozessor-Einheit gemäß der Erfindung;
809823/0617 original inspected
2 b4,97 b
Fig. 3 ein schematisches Diagramm der Schnittstelle, die zu der Mehrprozessor-Einheit gemäß der Erfindung fahren;
Fig4. 4a und 4b ins einzelne gehende, schematische Schaltungsdiagramme der Erfindung;
Fig. 5a,5b und 5c jeweils die Organisation des A-
Zwischenspeichers und des B-Zwischenspeichers;
Fig. 6 ein schematisches Diagramm der arthimetischen
LogikeinheiL gemäß der Erfindung;
Fig. 7 ein schematisches Diagramm einer Gruppe von Schieberegistern;
Fig. 8 eine Tabelle mit Funktionen, die von den
verschiedenen, im Rahmen der Erfindung verwendeten Mikrobefehlen ausgeführt werden;
Fig. 9 ein schematisches Diagramm der Steuereinheit gemäß der Erfindung; und
Fig. 10 eine Gruppe von Kurvenzügen zur Erläuterung des Zeitmultiplexbetriebes gemeinsamer Elemente mit den verschiedenen Prozessoren gemäß der Erfindung.
Die Organisation des erfindungsgemäßen Systems zeigt Fig. 1, gemäß welcher mehrere MOS-IC-Chips zu einer Konfiguration zusammengekoppelt sind, die ein flexibles Mehrprogrammsystem ergibt. Das System gemäß Fig. 1 weist mehrere Miltiprozessor-Einheiten (MPU) 11 auf, die mit einom Random Access-Speicher (RAM) 13 gekoppelt sind, der für das Speichern von Daten und anderer Informationen vorgesehen ist. Jede MPU 11 ist mikroprgramaiert und dazu mit einem zugehörigen Lesespeicher (ROM) 12 gekoppelt. Wie gemäß Fig. 1 kann eine Vielzahl von Peripheriegeräten von dem System unter Steuerung der verschiedenen MPU1S betrieben werden, wobei zu diesen Geräten ein Plattenspeicher 15, ein Drucker 16, eine Kathodenstrahl-Anzeigeeinheit 17, ein Kassettenantrieb 18 sowie eine Datenkommunikationseinheit 19 gehören können.
Vor Beschreibung der Einzelheiten der Schaltung der MPU wird zunächst eine Beschreibung der funktioneilen Einheiten gegeben,
$0982 3/0617 original inspected
mit denen jeder Prozessor in dem Multiprozessor-System während jener Zeitspanne arbeitet, während der einzelne Prozessor Zugriff zu den gemeinsamen Systemquellen besitzt. Ein funktionales Diagramm des Prozessors mit seinen eigentümlichen und gemeinsamen Quellen zeigt Fig. 2. Die gemeinsamen Hilfsmittel umfassen den B-Zwischenspeicher 31 und den A-Zwischenspeicher 32 (beide sind sogenannte scratch pad memories), die arithmetische Logikeinheit (ALU) 33, die Steuerlogik 40 und das F-Register 41. Die Quellen, mit denen jeder Prozessor individuell versorgt ist, umfassen ein X-Register 35, das Mikroprogramm-Zählerregister (PC) 36, das Seitenregister (PR= page register) 37, das Vorseiten-Register (PPR= prepage register) 38, das I-Register 43, das N-Register 44, das K-Register 34 und das Y-Register 42.
Die Register für den Prozessor werden jetzt im Zusammenhang mit Fig. 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 X-Register 35 ist ein ß-Bit-Befehlsregister und dient dazu, die Mikrobefehle während dt r Befehlsdekodier- und Ausführzeit zu halten. Das PC-Register 36 ist ein 8-Bit-Mikroprogrammzählerregister. Dieses Register hält die Adresse eines Bytes innerhalb einer Seite (byte within-page adress) des nächsten Mikrobefehls, der ausgeführt werden soll. Das PR-Register 37 ist ein 4-Bit-Mikrobefehl-Zähler-Seitenregister (microprogram counter page register). Dieses Register hält die Seitenadresse des nächst ei auszuführenden Mikrobefehls. Das PPR-Register 38 ist ein 4-Bit-VorSeitenregister. Ein Sprung (aus der Seite) 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-Register s wird in das Pr-Register nur dann geladen, wenn der nächste Befehl ein Sprung ist. In allen anderen Fällen benimmt
ORIGINAL INSPECTED 609823/061?
I b 4 . :- 7 b
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 I-Register 43 ist ein 4-Bit-Register zum Adressieren des A-Zwischenspeichers. Das N-Register 44 ist ein 2-Bit-Register zum Adressieren von vier Seiten in dem B-Zwischenregister. Es wird in Verbindung mit einem Teil des Befehls verwendet, mit dem ein Register in dem B-Zwischenregister adressiert wird. Dieses Register dient ebenfalls zum Laden des I-Registers 43.
Das K-Register 34 ist 1-Bit-Register, das nur während der Addier-Befehle gesetzt oder gelöscht wird. Es kann als ein Eingang für das ALU dienen und L.-mn durch einen Sprung-auf-Übertrag-Befehl (jump-on-carry instruction) geprüft werden. Das Y-Register 4 2 ist ein 4-Bit-Maschinen-Status-Register. Dies Register dient zum Speichern des Status jedes Prozessors während der Zeit, während der die anderen drei Prozessoren Befehle ausführen. Dies ist notwendig, weil mehrere Befehe mehr als einen Takt zur Ausführung- erfordern.
Es werden jetzt die gemeinsamen Elemente beschrieben. ALU-33 ist 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 Taktzeitanteils ausgeführt, wobei Byte-Operationen zwei Durchgänge durch das ALU erfordern. Ein Zwischenspeicher (scratch pad memory) 32 enthält 16 Register, von denen jedes 8 Bit breit ist, wobei die Register als Universalregister für spezielle Aufgaben verwendet werden können. Die 16 Register sind in vier Seiten zu je vier Registern unterteilt. Wenn sie zur Erledigung spezieller Zwecke dienen,
6 0 9 8 2 3/0 6-H frb OFMa''NAL inspected
— Q —
werden die A-Register in Verbindr g rc it den B-Registern benutzt. Die speziellen Zwecke, für die die Register verwendet werden können, werden weiter unten erläutert.
Der B-Zwischenspeicher 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-Register 32 als z.b.V. (=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 Steuerlogik 4 0 umfaßt einen zusammengesetzten Lesespeicher und eine Steuerlogik, die die Operationen des Systems auf dem Steuersignalpegel schritt-steuern. Das F-Register 41 ist ein einzelnes Flip-Flop, das als Markierung (flag) beabsich igt ist. Es kann von einem Prozessor benutzt werden oder dazu dienen, eine Kommunikation zwischen den Prozessoren zu ermöglichen.
Fig. 5A zeigt die Organisation der A-Register 32 und Fig.5B zeigt die Organisation der B-Register 31. Jeder Prozessor kann auf jedes der 16 Α-Register oder der 24 B-Register zugreifen. Um jedoch zu verhindern, daß ein Prozessor Daten eines anderen Prozessors zerstör4., ist es notwendig, die A- und B-Register 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
ORIGINAL INSPECTED
609823/061?
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 Zwisc.ienspeicherstellen (scratch pad locations) den Aufgaben und weniger Zugriffe für den Random-Access-Speicher notwendig sind.
Der B-Zwischenspeicher besteht ähnlich wie der A-Zwischenspeicher aus vior Seiten. Allgemein ist jedem Prozessor eine Seite der B-Register zugewiesen. Die Seitennummer, die von einem Prozessor verwendet werden soll, wird in seinem 2-Bit-N-Register gespeichert. Das Adressieren innerhalb einer Seite geschieht auf zwei Weisen: byte-weise und ziffernweise. 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 ist das gleiche Register wie Ziffer Null und Eins; Byte Zwei ist das gleiche Register wie die Ziffern Zwei und Drei; usw. Wie man aus Fig. 5B erkennt, besteht der Adressierraum für den B-Zwischenspeicher aus 32 Bytes oder 64 Ziffern. Aus zwei Gründen jedoch entspricht dies nicht der räumlichen Größe des B-Zwischenspeichers. Es ist nicht genügend Raum auf dem IC-Chip für 32 Bytes vorhanden und Zwischen-Prozessor-Kommunikationen werden durch Teilen räumlicher Register verbessert. Fig. 5B zeigt die Art und Weise, 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-Bit-Regiöter dar.
Unter der Annahme, daß jede der vier Prozessoren einen anderen Wert für N (B scratch pad page = B-Zwischenspeicher-Seite) benutzt, dann ist klar, daß das Byte Null und 14 sämtlichen Prozessoren gemeinsam sind und daß eine Kopie des Byte Zwei-Registers dem Prozessor Null und Eins gemeinsam ist und daß die andere Kopie dem Prozessor Zwei und Drei gemeinsam ist.
AL INSPECTED
609823/0817 ED
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. Man bemerke, daß jeder Prozessor, weil er den Wert seines N-Registers ändern kann, mit den anderen Prozessoren durch eines der A oder B-Registers i'i Kommunikation treten kann. 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 B-Zwischenspeichers auf die Prozessoren kann ein gemeinsames Register nur einem Prozessor zugewiesen werden, es sei denn, es werde für die Kommunikation verwendet.
Wie oben dargestellt, besteht einer der Vorteile der Erfindung darin, daß die ν ier Prozessoren sich in einer einzigen Kopie von Mikrobefehlen teilen können, und zwar entweder Unterroutinen oder vollen Programmen, 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 beschriebene Programme können jedoch keines der gemeinsamen B-Register verwenden.
Die speziellen Zwecke, für die die Elemente der A- und B-Zwischenspeicher verwendet werden können, bestehen darin, 16 Bit-Random-Access-Speicheradressen, Mikroprogramm-Unterroutinen-Adressen und Mikroprogramm-Lesespeicher-Adressen speichern. Die Elemente für beide Zwischenspeicher sind zu diesem Zweck hintereinander verbunden. Beispielsweise können vier Seiten des Α-Zwischenspeichers und vier Seiten des B-Zwischenspeichers 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 Seitengruppen auf gleiche Weise funktionieren.
ORIGINAL INSPECTED 609823/0817
2 5 L 'j 9 7 h
Wie in Fig. 5C gezeigt, hat jede Seitengruppe vier Random-Aceess-Speicher-Lese/Schreib-Adressen-Register. Die ersten drei von diesen sind durch R/WO, R/W1, R/W2 angegeben und enthalten die folgenden Register: B8, und AO, B10 und A1, B12 und A2, so daß sich drei 60-Bit-Random-Access-Speicherregister zum Lesen und Schreiben von Daten in bzw. aus dem Random-Access-Speicher ergeben. In jedem Fall ist das B-Byte der höchststellige Teil der Adresse. Das vierte Adressenregister, mit R/W3 bezeichnet, hängt A3 mit allen Einsen zusammen, so daß sich eine direkte Adressierseite in dem Random-Access-Speicher ergibt, nämlich die oberste Seite.
Die Mikroprogrammspeicher-(ROM) Adressen sind sämtlich 12 Bits lang und werden durch das aneinanderreihen eines 8-Bit-Registers mit den unteren vier Bits eines B-Registers (eine geradzahlige Ziffer-Adresse) erhalten. Drei solcher ROM-Adressenregister sind in jedem Paar von A- und B-Seiten enthalten. Eine davon hängt Ziffer B2 mit A1 zusammen und bildet das ROM-Adressenregister. Diese Kombination dient zur Übersetzung von Daten. Eine Code-Tabelle wird in dem ROM gespeichert und die übersetzung wird einfach dadurch ausgeführt, daß der Eingangscode in B2 und A1 eingesetzt wird und das ROM gelesen wird.
Die beiden anderen 12-Bit. ROM Adressen-Register dienen zum Speichern der Rückkehradressen nach Ausführung eines Mikroprogramm-Unterroutinen-Sprungbefehls. Die Rückkehr-Seitenzahl wird in der B-Ziffer und die Adresse innerhalb einer Seite wird in dem Α-Register in den Kombinationen A2 zusammen mit B4 und A3 zusammen mit B6 gespeichert. Man sieht, daß die zwei Ebenen an Unterroutinen sehr zufriedenstellend bedient werden können.
Eine Beschreibung der Schnittstellen zwischen der Multi-Prozessoreinheit gemäß der Erfindung und der System-Peripherie, innerhalb welcher sie angesiedelt ist, wird jetzt
6D9823/0S4-7 £U
•ORIGINAL INSPECTED
2 b 4 : ■:■}. 7 b
im Bezug auf Fig. 3 mitgeteilt. Wie dargestellt, enthalten die verschiedenen Schnittstellen Daterisamn Ölleitungen 20 von 8-Bit-Breite, eine ivaressen-Sammelleituny 21 und verschiedene Steuerleitungen. Man erinnere sich aus der Beschreibung des Systems in Fig. 2, daß eine 16-Bit-Adresse zum Adressieren des Random-Access-Speichers 13 notwendig ist, während eine 12-Bit-Adresse zum Adressieren des Lesespeichers 12 benötigt wird. Eine 4-Bit-Adresse wird für den Ein/Ausgangsdekoder 14a gebraucht, der seinerseits ein Peripheriegerät entweder mittels der Ausgangslogik 14B oder der Eingangslogik 14C 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 Daten~ammelleitung 20 geschieht durch Übertragungsgatter 28, wenn ein Ein/Ausgangssignal von der Multiprozessor-Einheit übertragen wurde und ein Schreibsignal zur gleichen Zeit nicht vorhanden ist.
Die Übertragung von System-Befehl und von Daten aus dem* Random-Access-Speicher 13 geschieht vermöge der Datensammelleitung 20, wenn kein Schreibsignal, sondern wenn ein Speichersignal und eine 16-Bit-Adresse für den Random Access-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.
Einzelheiten der Erfindung
Eine mehr ins einzelne gehende Beschreibung der Erfindung wird jetzt in Bezug auf Figuren 4A und 4B gegeben, die in der angedeuteten Weise zusammengehören. Die Funktionseinheiten in den Figuren 4A und 4B wurden allgemein im Zusammenhang mit Fig. 2 beschrieben. Man erinnere sich aus der dortigen Erläuterung, daß die Erfindung mehrere Registergruppen umfaßt, von denen jede Gruppe für einen speziellen Prozessor eigentümlich und representativ ist, und daß die Erfindung
609823/0817 original inspected
2 5 4 J 9 7 5
außerdem gemeinsame Elemente umfaßt, die für die einzelnen Registergruppen frei verfügbar sind, und zwar auf Zeit-Multiplex-Basis, so daß zu einer vorgegebenen Taktzeit ein auf solche Weise gebildeter Prozessor imstande ist, eine Funktion auszuführen.
In Fig. 4A umfaßt der B-Zwischenspeicher 31 24 Register, jedes 8 Bits breit, während der A-Zwischenspeicher 32 16 Register von je 8 Bit Breite aufweist. ALU 33 ist eine 4-Bit arithmetische Logikeinheit, während das K-Register 34 ein 4-Bit-Register ist, auf das jeweils bitweise zugegriffen wird. Man erinnere sich, daß das K-Register eines derjenigen Register ist, die jedem Prozessor eigentümlich sind. Somit können bis zu 4 Übertrag-Bits in dem K-Register vorhanden sein und zwar je ein Bit für jeden Prozessor. Das PR-Register 37 weist vier Register von je 4Bits auf. Man erinnere sich wieder, daß es für jeden Prozessor ein eigenes PR-Register gibt.
Das Adressenregister 50 umfaßt 8 Register zu je 4 Bits, die zur Übertragung der oberen 8 Bit-Adressen zum Random-Access-Speicher 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 ist.
Das Register 54 ist ein 8-Bit-Register und führt Daten einem A-Zwischenspeicher 32 zu. Das N-Register 44 weist vier Register zu je 2 Bits auf. Für jeden Prozessor in dem System war ja ein eigenes 2-Bit N-Register vorgesehen.
In Fig. 4B enthalten das X-Register 35 und das PC-Register 36 jeweils vier Register zu je 8 Bits, wobei jedes Register einem eigenen Prozessor zugewiesen ist. In ähnlicher Weise enthalten das I-Register 43 und das Y-Register 42 vier Register von je 4 Bits, wobei jedes Register einem eigenen
98 2 3/061? original inspected
254097b
Prozessor zugewiesen ist.
Das Herz der Steuerlogik 4 0 ist ein zusammengesetzter Lesespeicher, der eine 51 mal 29 MOS Matrix sein kann, welche re-programmiert werden kann, um die Stouersignalgruppen zu verändern, die ihrerseits zur Entschlüsslung der Mikrobefehle verwendet werden, die im X-Regis te .: 35 eines speziellen Prozessors aus dem externen Lesespeicher 12 (vgl. Fig.3) empfangen werden. Das F-Regiyter 41 ist ein 1-Bit Flip-Flop Register, das bereits im Zusammenhang mit Fi<j.2 erörtert wurde.
Man entnimmt weiter der Fig. 4B, daß die für die Speicherzugriffs- und Ein- und Ausgabeoperationen-Signale direkt durch den zusammengesetzten Luaespeicher und den Status des jeweiligen Y-Register.s 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 Logikeinheit und Datentransfers zwischen den Registern auslösen, werden ebenfalls direkt durch den zusammengesetzten Lesespeicher erzeugt.
Fig. 6.ist ein schematisches Diagramm der arithmetischen Logikeinheit (ALU) 33 aus Fig. 2 und 4A. Das ALU ist ein 4-Bit-Addierer, der die Funktionen AND, EXCLUSIVE, OR und ADD ausführt. Wie in Fig. 6 dargestellt ist,wird das ALU aus 4 Studen gebildet, um die ALU-Ausgangssignale SO,S1,S2 und S3 plus einem Übertragsignal KI zu erhalten. Jede Stufe wird durch eine eigene Gruppe von Spannungsquellfen VDD mit elektrischer Energie versorgt. Die Eingangssignale zu dem ALU sind die Datengruppen aO,a1,a2,a3 sowie bO,b1,b2,b3 plus einem Anfangs-Übertragssignal KO. Die Steuersignale ALU1, ALU2, und ALU3 werden aus der Steuerlogik 40 der Fig. 2 und 4B aufgenommen. Das Steuersignal ALU3 läßt das ALU die AND Funktion ausführen. Das Steuersignal ALU2 läßt die ALU die
609823/0617 original inspected
EXCLUSIVE OR -Funktion aufführen. Das Steuersignal ALU3 läßt die ALU die EXCLUSIVE OR -Funktion mit dem Übertragsignal KO und das EXCLUSIVE OR -Produkt der Eingangssignale a und b ausführen. Somit läßt eine Kombination der Steuersignale ALU2 und,ALU3 das ALU die ADD-Funktion an den jeweiligen Eingangssignalen ausführen.
Es wurde bereits mitgeteilt, daß die jeweiligen Register aus Fig.2, 4A und 4B ^Bit-Schieberegister sind, um auf diese Weise ein Vierfaches zeitliches Aufspalten oder einen Zeitmulxtplexbetrieb der gemeinsamen Elemente des Systems zu ermöglichen, d.h. der A U 33, der Steuerlogik 40, usw. wie im Zusammenhang mit Fig. 2 erörtert wurde. Ein Beispiel eines derartigen Schieberegisters zeigt Fig. 7, das ein schematisches Diagramm der Y-Register 42 sowie der K-Register 34 der Fig. 2,4A und 4B ist. Diese Register können als Schieberegister Y0,Y1,Y2 und Y3 (plus dem K-Schieberegister) betrachtet werden, oder sie■}. 3nnen als vier Parallel-Register YT0,YT1,YT3 und YT4 betrachtet werden, durch welche Daten synchron mit der zeitlichen Aufteilung der gemeinsamen Elemente des Systems durch die vier das System bildenden Prozessoren hindurchgeschoben werden.
Jede ßitstelle des jeweiligen Registers wird aus zwei Zellen gebildet, die durch Phasentaktsignale Q1,Q2 sequentiell getrieben werden. Wie Fig. 7 zeigt, wird eine typische Zelle aus FET (Feld-Effekt-Transistor)-Gattern 42a und 42b sowie Umkehrverstärker 4 2c und 42d gebildet, die selbst einzelne Transistoren in den IC-Chips sind. Während der Taktphase Q1 wird das Gatter 42a des Registers YTO (sowie der Register YT1,YT2 und YT3) aktiviert und empfängt ein Eingangssignal YTO. Während der Taktphase Q2, wird das Gatter 42b aktiviert und empfängt ein Signal aus dem Gatter 42a, das dann frei ist, ein neues Eingangssignal während der nächsten Taktphase Q1
ORIGINAL INSPECTED
6Q98 23/0S4-?
zu erhalten.
Fig. 9 ist ein schematisches Diagramm der Steuer-Matrix der Steuerlogik 40 aus Fig. 2 und 4B. Diese Matrix wird zum Dekodieren der jeweiligen Mikrobefehle verwendet, wenn sie in dem X-Register 35 der Fig. 2 und 4B enthalten sind. Diese Matrix kann re-programmiert 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 X-Regrster während der Ausführung enthaltenen Mikrobefehlen wird im einzelnen in Fig. 8 dargestellt. Die Ta eile in Fig. 8 wird im einzelnen nicht erörtert; die dort enthaltenen Funktionen werden jedoch nachfolgend für jeden Mikrobefehl in der ßefehlsgruppe erörtert. In der folgenden Beschreibung zeigen die alphabetischen Buchstaben in dem Mxkrobefehlscode an, daß diese Bits nicht verwendet werden, sondern daß der Befehl ein entsprechendes Register adressiert, d.h. B zeigt, das B-Register 31 der Fig. 2 und 4A wird adressiert, C zeigt, daß ein Ausgangskanal verwendet wird. P repräsentiert eine Seite in dem Zwischen- oder Hilfsspeicher, usw.
MPU-Befehlsliste
I1 Ziffern-Befehle
LDA Der Inhalt des Α-Speichers (adressiert durch das I-Register) wird nach rechts um 4 Bits verschoben und die oberen vier Bits werden mit Inhalt des B-Speichers (adressiert durch dasAneinanderhängen des N-Registers und der B-Befehlsbits) geladen. B(N,XL) , A(I)0-^A(I)
Zeit: 1 Takt-Impuls
Code: 1 1 1 1 B B B B
609823/0617
LDB Der, Inhalt des B-Speichers (adressiert durch das Aneinanderreihen des N-Registers und der B-Befehlsbits) wird mit den oberen 4 Bits (die in dem A-Speicher adressiert durch das IRegisters)enthalten sind, geladen .
Zeit: 1 Taktimpuls
Code: 1 0 11 B B B B
ADD Der Inhalt des Α-Speichers (adressiert durch das I-Register), obere 4 Bits, wird mit der Summe der oberen 4 Bits und dein Inhalt des B-Speichers (adressiert durch die Aneinanderreihung des N-Regiters und der B-Befehlsbits) geladen.
B(N,XL) + A (I)0, A(I)L -*- A(I) Zeit: 1 Taktimpuls
Code:'1 0 0 1 BBBB
XOD Inhalt des Α-Speichers (adressiert durch das I-Register) obere 4 Bits, wird mit dem EXCLUSIVE OR der gleichen 4 Bits und dem Inhalt des B-Spuichers (adressiert durch die Aneinanderreihung des N-Registers und der B-Befehlsbits) geladen.
B(N,X1) φ A(I)0, A(I)1-J-A(I) Zeit: 1 Taktimpuls
Code: 1 1 0 1 B B B B
ORD Inhalt des Α-Speichers (adressiert durch das I-Register) vier oberen Bits wird mit OR der gleichen 4 Bits und dem Inhalt des B-Speichers (adressiert durch die Aneinanderreihung des N-Registers und der B-Befehlsbits) geladen.
B(N,X1) O A(I)0, A(I)L -^
Zeit: 1 Taktimpuls
Code: 1 1 0 0 B B B B
809823/0617 OR1Q1nALINSPECTED
25 4 097
AND Der Inhalt des Α-Speichers (adressiert durch das I-Register) obere vier Bits wird mit dem AND der gleichen 4 Bits und dem Inhalt des B-Speichers (adressiert durch die Aneinanderreihung des N-Registers und der B-Befehlsbits) geladen.
Zeit: 1 Taktimpuls
Code: 1 1 1 0 B B B B
II. Zeichen-Befehle
INC Inhalt des B-Speichers (adressiert durch das Aneinanderreihen des N-Registers und der B-Befehlebits) wird weitergestellt und das Ergebnis wird in den Α-Speicher gesetzt (adressiert durch das I-Register).
B (N7X3J + 1-^A(I)
Zeit: 2 Taktimpulse
Code: 1 0 1 0 B B B 0
ADC Der Inhalt des B-Speic hers (adressiert durch die Aneinanderreihung des N-Registers und der B-Befehlsbits) wird zum Inhalt des Α-Speichers (adressiert durch das I-Register) addiert.
B(N,XL) + A(I)-* A(I)
Zeit: 2 Taktimpulse
Code: 1 0 0 0 B B B 0
LCA Der Inhalt des Α-Speichers (adressiert durch das I-Register) wird mit dem Inhalt des B-Speichers (adressiert durch die Aneinanderreihung des N-Registers und der B-Befehlsbits) geladen.
B(N,XL)-* A(I)
Zeit: 1 Taktimpuls
Code: 1 0 1 0 B B B 1
ORIGINAL INSPECTED
609823/0617
LCB Der Inhalt des B-Speichers (adressiert durch die Aneinanderreihung des N-Registers und der B-Befehlsbits) wird mit dem Inhalt des Α-Speichers (adressiert durch das I-Reyister) geladen.
A(I) -^B(N,XL)
Zeit: 1 Taktimpuls
Code: 1 0 0 OBBB 1
INA Der Inhalt des,Α-Speichers (adressiert durch die Aneinanderreihung des N-Registers und der A-Befehlsbits) wird um eine Einheit weitergestellt.
A(N/XL) + 1 -*A(N,XL)
Zeit: 2 Taktimpulse
Code: 0 0 0 0 0 A A 1
III. Literal-Befehle
LDR Der Inhalt des Α-Speichers (adressiert durch das I-Register) wird nach rechts um 4 Bits verschoben und die obersten 4 Bits werden mit den R-Befehlesbits geladen.
XL, A(I)0** A(I)
Zeit: 1 Takt
Code: 0 0 1 1 R R R R
ADR Der Inhalt des Α-Speichers (adressiert durch das I-Register) vier obersten Bits, wird mit der Summe der gleichen 4 Bits und den R-Befehlsbits geladen.
XL + A(I)n, A(I)L -^ A(I)
Zeit: 1 Taktimpuls
Code: 0 0 0 1 R R R R
IV. Ein/Ausqabe-Befehle
OUT Der Inhalt des Α-Speichers (adressiert durch das I-Register) und die C-Befehlsbits werden ausgegeben
809823/0S-*-? Cf* original inspected
-21-A(I) —P- OUT ; X OUT
JL·
Zeit: 2 Taktsignale
Code: 0 1 1 1 C C C C
IN Der Inhalt des Α-Speichers (adressiert durch das I-Register) wird mit den Eingabedaten geladen. Die C-Eefehlsbits werden ausgegeben.
IN—*A(I); X1. —> OUT
Zeit: 2 Taktimpuls^
Code: 0 1 1 0 C C C 0
SIO Der Inhalt des Α-Speichers (adressiert durch das I-Register) wird nach rechts um ein Bit verschoben und das erste und das vierte Bit werd α ausgegeben und das oberste Bit wird aus dem Eingang geladen. Die C-Befehlsbits werden ausgegeben. Wenn das N-Befehlsbit eine Null ist, dann wird t ,.>r Prozess viermal wiederholt.
A(I)1 j·* OUTPiJT ; X1-^OUT
Zeit: 1 oder 4 Taktimpulse
Code: 0 110 C C 1
V_. Speicher-Befehle
RED Der Inhalt der Speicher A und B (adressiert durch das Aneinanderreihen des N-Registers und der A-Befehlsbits) wird als Speicherartresse ausgegeben. Der Inhalt des Α-Speichers (adressiert durch das I-Register) wird mit den Eingangs-Speicherdaten aus dem rAM geladen. Wenn die A-Bits 11 sind, dann werden die obersten 8 Adressenbits sämtlich durch Einsen ersetzt.
, A /n,Xl^ —HP· A(I) Zeit: 3 Taktimpulse
Code: 0 0 0 0 1 A A 1
609823/061 7 ORIGINAL INSPECTED
254Ü97S
WRT Der Inhalt eier Speicher A und B (adressiert durch das Aneinanderreihen des "!-Registers und der A-Befehlsbits) wird als Speicheradresse ausgegeben. Der Inhalt des Α-Speichers (adressiert durch das I-Register) wird als Ausgangsspeicher Daten zum KAM ausgegeben. Wenn die A-Bits 11 lauten, werden die obersten 8 Adressenbits sämtlich durch Einsen ersetzt.
A(I)-^ DATA |5(N,X ) , A(N,XL)] Zeit: 3 Taktimpu se
Code: 00001AAO
TRN Der Inhalt des Α-Speichers (adressiert durch das I-Register) und des des B-Speichers (adressiert durch das Aneinanderreihen des N-Registers und 0, 0, 1 Bits, werden als Speicheradresse ausgegeben, der Inhalt des Α-Speichers (adressiert durch das I-Register) wird mit dem Eingangsspeicher Daten aus dem ROM geladen.
DATA
Zeit: 3 Taktimpulse
Code: 0 10 10 0 1 1
VI. Spring-Befehle
JUP Der Inhalt des PR (Seiten-)Registers und das nächste ROM-Byte werden in das PC (Programm-Zähler-)Register geladen.
Zeit: 2 Taktimpulse
Code: 0 1 0 1 0 C 0 0
JUK Wenn K gleich Eins ist, dann tue das gleiche wie bei JUP.
Zeit: 2 Taktimpulse
Code: 0 10 10 0 0 1
JF Wenn die F-Markierung Eine eins ist, dann tue das glei che wie in JUP.
Zeit: 2 Taktimpulse
Code: 0 10 10 0 10
608823/0617 original inspected
254ÜJ75
JAR Wenn die AND der A-Befehlrbits und die oberen 4 Bits des Α-Speichers (adressiert durch das I-Register) nicht Null sind, dann tue das gleiche wie in JUP.
Zeit: 2 Taktimpulse
Code: 0 1 0 0 A Λ Λ Α
JNO Wenn NO Eins ist, dann tue das gleiche wie in JUP. Zeit: 2 Taktimpulse
Code: 0 1 0 0 0 0 0 0
CAL Der Inhalt des PR (Seiten-)Registers und des PC (Programm-Zähler-)Registers plus zwei wird in die Speicher A und B (adressiert durch das Aneinanderreihen des N-Registers und der A-Befehlsbits) geladen. Dann tue das gleiche wie unter JUP.
Zeit: 2 Taktimpulse
Code: 000000A 0
RET Lade das PR (Seiten-)Register und das PC (Programm-Zähler-) Register mit dem Inhalt des A und des B Speichers (adressiert durch das Aneinanderreihen des N-Registers und der A-Befehls-Bits). Zeit: 2 Taktimpulse
Code: 0 0 0 0 0 1 A 0
VII. Registermanupulations-Befehle
LPR Lade das PR (Seiten-)Register mit den P-Befehlsbits. Wenn der nächste Befehl keinen Sprung ausführt, dann wird das Seitenregister auf seinen Ursprungswert zurückgestellt.
Zeit: 1 Taktimpuls
Code: 0 0 1 0 P P P P.
ORIGINAL INSPECTED
609823/0617
LDI Lade das I-Register mit N1, NO and Ue I-Befehls-Bits.
Zeit: 1 Taktimpuls
Code: 0 1 0 1 1 0 I I
CF Das Komplement des Zustands der F-Markierung-Zeit: 1 Taktimpuls
Code: 0 10 10 10 1
STR Lade den Α-Speicher (adressiert durch das I-Register) mit dem Inhalt von K (übertrag) , dem N-Register .und dem I-Register.
Zeit: 1 Taktimpuls
Code: 0 10 10 110
LDN Lade das N-Register mit den N-Befehlsbius. Zeit: 1 Taktimpuls
Code: 0 1 0 1 1 1 N ;sr
ADK Wenn der nächste Befehl ein ADD, ADR oder ADC ist, wird der Inhalt des K (Übertrag-)Registers zu dem Ergebnis zugezählt. Wenn der nächste Befehl ein LDR, LDA, LCA, XOD, ORD oder AND ist, dann wird der Inhalt des K (Übertrag-)Registers ein EXCLUSIVE OR mit dem niedrigststelligen Bit sein. Wenn der nächste Befehl ein INC oder INA ist, dann zählt er nur um eine Einheit weiter, wenn der Übertrag gleich Eins ist. 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.
Zeit: 1 Taktimpuls
Code: 0 10 10 111
MOD Die unteren 4 Bits des Α-Speichers (adressiert durch das I-Register) werden zu einer ODER-Verbindung mit den untersten 4 Bits des nächsten Befehls vor seiner Ausführung verknüpft.
609823/0M-7
2 5 4 O 9 7
Zeit: 1 Taktimpuls * ^
Code: 0 1 0 1 0 1 00
Figur 7 zeigt eine Menge von Kurvenzügen zur Erläuterung der zeitlichen Beziehung zwischen den Taktzügen, die jedem einzelnen Prozessor zugeordnet sind. Jedem Prozessor wird den gemeinsamen Elementen des Systems zu jedem Viertel der Taktzeit Zugriff gewährt. Wenn ein spezieller Mikro-Befehl mehr als eine Taktzeit 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 des Systems erhält.
Beim Starten des Systems gemäß Erfindung setzt die Steuerlogik 40 eine Startadresse in den Programmzähler 36 (siehe Fig. 2) und in die Seitenregister 37. Die Seitenregister 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 Programmierer notwendig ist, das N-Register 44, das I-Register 43, und andere notwendigen Register anzustoßen. Da der Wert in Register 44 als Teil des Wertes für das I-Register 43 verwendet wird, muß das N-Register zuerst angeschlossen werden.
EPILOG
Wie vorstehend beschrieben, stellt sich die Erfindung als Multiprozessor-Einheit dar,die auf einem einzigen MOS-IC-Chip untergebracht ist. Dazu verwendet die Erfindung mehrere verschiedene Registergruppen (wobei jede Gruppe einen anderen Prozessor repräsentiert) und gemeinsame Elemente, die den verschiedenen Registergruppen auf Zeit-Mulitplex-Basis gemeinsam zur Verfügung stehen.
Die gemeinsamen Elemente umfassen zwei schnelle Hilfsspeicher (scratch pad memories, Zwischenspeicher) und eine arithmetische
609823/0617 original inspected
2540375
Logikeinheit, wie auch eine Steuereinheit. Die Steuereinheit kann ein zusammengesetzter Lesespeicher in der Form eines Matrix-Dekodierers sein, oder sie kann ein konventioneller Lesespeicher sein, bei welchem die Steuersignale gespeichert sind und die Datenübertragung und arithmetischen Operationen auslösen. Somit benutzt die Erfindung die horizontale Mikroprogrammierung, um einen gewöhnlich gebrauchten Ausdruck zu verwenden. Außerdem ist die Steuereinheit einem Dekodierer für kodierte Mikrobefehle ähnlich, die aus einem Lesespeicher außerhalb der erfindungsgemäßen Einheit gewonnen werden. In diesem Sinne ist die Erfindung geeignet, in Kombination mit einer vertikalen und einer horizontalen Mikroprogrammierung verwendet zu werden, und zwar in dem Sinne, wie-diese Ausdrücke üblicherweise definiert sind.
Die acht z.b.V.-Register, die jedem Mikroprozessor zugeteilt sind, bestehen aus 4-Bit-Schieberegistern, so daß eine vierfache Zeitaufteilung unter den Prozessoren ermöglicht wird. Auf diese Weise kann die erfindungsgemäße Einheit unabhängig gleichlaufende Prozesse bearbeiten.
Einer der Vorteile, der mit den vier gleichlaufenden Mikroprozessoren auf einem einzigen MOS-IC-Chip erreichbar ist, besteht darin, daß diese Prozessoren untereinander freie Kommunikation auf drei verschiedenen Ebenen pflegen können: Durch die eingebaute Schaltung, durch die lokalen Hilfsspeicher (scratch pad memories) sowie durch den Hauptspeicher. Weiter können die Mikroprogramme, die die verschiedenen Prozessoren treiben, von sämtlichen Prozessoren gemeinsam benutzt werden.
Die Erfindung ist natürlich nicht auf Einzelheiten der beschriebenen Ausführungsformen beschränkt. Insgesamt wurde also eine Multimikroprozessor-Einheit beschrieben, die auf einem einzigen MOS-IC-Chip realisiert werden kann und mehrere Registergruppen umfaßt, wobei jede Register-
6 0982 3/0617 original inspected
gruppe einen eigenen Prozessor repräsentiert. Die Einheit weist ferner gemeinsame Elemente auf, die von den verschiedenen Registergruppen auf Zeitmiltiplexer-Basis gemeinsam benutzt werden. Die gemeinsamen Elemente umfassen zwei schnelle Hilfsspeicher, einen arithmetische Logikeinheit, und eine Steuereinheit, die einen zusammengesetzten Lesespeicher umfaßt, aus welchem Steuersignale zum Einleiten von Datentransfers und arithmetischen Operationen geholt werden. Dieser Steuerspeicher wird als Dekodierer für verschlüsselte Mikrobefehle, die von außerhalb bezüglich der Multiprozessor-Einheit geholt werden. In diesem Sinn arbeitet die vorliegende Erfindung sowohl mit vertikaler wie auch mit horizontaler Mikroprogrammxerung gemäß üblicher Definition dieser Ausdrücke. Die verschiedenen Gruppen zugewiesener Register werden aus 4-Bit-Schieberegistern gebildet, so daß sich eine vierfache Zeitaufteilung unter den Prozessoren ermöglichen läßt.
609823/0617

Claims (18)

  1. A η s ρ r ü c h e
    γ. Einrichtung zur Bearbeitung von Daten, dadurch gekennzeichnet, daß mehrere Registergruppen vorgesehen sind, in denen Gruppen von Steuerdaten einschließlich Adressen und Befehlen, vorübergehend gespeichert werden können, wobei jede Gruppe von Steuerdaten einen anderen Prozess steuert.
  2. 2. Einrichtung nach Anspruch 1, gekennzeichnet durch mehrere zweite Register, in denen Daten vorübergehend gespeichert werden können; durch eine mit jeder Registergruppe verbundene Steuereinheit sowie durch eine ein Zeitmaß gebende Einrichtung, die mit den Registergruppen und mit der Steuereinheit gekoppelt ist, derart, daß nacheinander jede Gruppe von Steuerdaten für die Übertragung zu der Steuereinheit und den zweiten Registern übertragen werden kann.
  3. 3. Einrichtung nach Anspruch 2, dadurch gekennzeichnet, daß einige Register zur sequentiellen übertragung der Steuerdatengruppen durch sie hindurch miteinander verbunden sind.
  4. 4. Einrichtung nach Anspruch 3, dadurch gekennzeichnet, daß die miteinander verbundenen Register mehrere parallel geschaltete sequentielle Schieberegister sind.
  5. 5. Einrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, laß eine Logikeinheit mit wenigstens einem Register aus den Registergruppen verbunden ist; daß eine Steuereinheit mit der Logikeinheit zu deren Aktivierung bei Entschlüsseln eines Befehls verbunden ist;
    609823/06-HfaJ,
    und daß eine Adressiereinrichtung an die Register und die Logikeinheit derart angeschlossen ist, daß nacheinander jede Datengruppe zur übertragung zur Logikeinheit bestimmt werden kann.
  6. 6. Einrichtung nach Anspruch 5, dadurch gekennzeichnet, daß die Steuereinheit einen Steuerspeicher zum Steuern von Steuersignalen in der Form horizontaler Mikrobefehle umfaßt.
  7. 7. Einrichtung nach Anspruch 6, dadurch gekennzeichnet, daß der Steuerspeicher ein Lesespeicher ist.
  8. 8. Einrichtung nach Anspruch 6, dadurch gekennzeichnet, daß der Steuerspeieher eine Halbleitermatrix ist.
  9. 9. Einrichtung nach einem der Ansprüche 6-8, dadurch gekennzeichnet, daß ein zweiter Speicher an den Steuerspeicher angeschlossen ist und daß der zweite Speicher vertikale Mikrobefehle zum Adressieren des Steuerspeichers speichert.
  10. 10. Einrichtung nach Anspruch 9, dadurch gekennzeichnet, daß ein dritter Speicher an die Register angeschlossen ist und die zu bearbeitenden Daten speichert.
  11. 11. Einrichtung nach einem der Ansprüche 9 oder 10, dadurch gekennzeichnet, daß der zweite Speicher ein Lesespeicher und der dritte Speicher ein Random-Access-Speicher ist.
  12. 12.Einrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß die Registergruppen eine mit wenigstens einem der Register verbundene Logikeinheit sowie die Jiiit den Registern und der Logikeinheit verbundene Adressiereinrichtung auf einem Halbleiter-Chip untergebracht sind.
    609823/0617
  13. 13. Einrichtung nach Anspruch 12, dadurch gekennzeichnet, daß auf dem Halbleiter-Chip ferner ein Steuerspeicher untergebracht ist, der mit der Logikeinheit über den Registern verbunden ist und Steuersignale in Form horizontaler Mikrobefehle speichert.
  14. 14. Einrichtung nach einem der Ansprüche 12 oder 13, dadurch gekennzeichnet, daß der Halbleiter-Chip in MOS-Technik ausgeführt ist.
  15. 15. Einrichtung nach einem der Ansprüche 12 bis 14, dadurch gekennzeichnet, daß die Register unipolare Feldeffekt-Transistoren sind.
  16. 16. Verfahren zur Bearbeitung von Daten in mehreren Registergruppen sowie mehreren zweiten Registern, einer Logikeinheit und einer Steuereinheit, dadurch gekennzeichnet, daß Gruppen von Steuerdaten einschließlich Adressenbefehle in den Registergruppen gespeichert werden, wobei jede Steuerdatengruppe einen anderen Prozess steuert; daß Datengruppen in dem zweiten Registern gespeichert werden; daß nacheinander eine Gruppe von Steuerdaten zurübertragung zur Steuereinheit und zu den Registergruppen bestimmt werden; und daß nacheinander Datengruppen zur übertragung von den zweiten Registern zur Logikeinheit bestimmt werden.
  17. 17. Verfahren nach Anspruch 16, dadurch gekennzeichnet, daß jede Steuerdatengruppe von einem Register nacheinander zu einem anderen Register vor der Übertragung zur Steuereinheit weitergeleitet wird.
  18. 18. Verfahren nach Anspruch 16 oder 17, dadurch gekennzeichnet, daß die Weiterleitung von einem Register zu anderen ein Verschieben einzelner Bits jeder Datengruppe aus seiner Bitstellung in einem Register in eine entsprechende Bitstellung in einem anderen Register umfaßt.
    609823/0617
    Le.e rs e i te
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 true DE2540975A1 (de) 1976-08-12
DE2540975C2 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
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
US4630193A (en) * 1981-04-27 1986-12-16 Textron, Inc. Time multiplexed 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 パイプライン演算装置テスト方式
US5243698A (en) * 1982-11-26 1993-09-07 Inmos Limited Microcomputer
US4724517A (en) * 1982-11-26 1988-02-09 Inmos Limited Microcomputer with prefixing functions
US6414368B1 (en) 1982-11-26 2002-07-02 Stmicroelectronics Limited Microcomputer with high density RAM on single 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
EP0200569A3 (de) * 1985-05-03 1988-10-05 Advanced Micro Devices, Inc. Monolitisch integriertes Schaltungsbauelement
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
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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1449568A1 (de) * 1962-07-03 1969-03-27 Sperry Rand Corp Datenverarbeitungssystem

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1449568A1 (de) * 1962-07-03 1969-03-27 Sperry Rand Corp Datenverarbeitungssystem

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEEE Transactions on Computers, Vol. C-22, No. 2, Feb. 1973, S. 143-153 *

Also Published As

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

Similar Documents

Publication Publication Date Title
DE2540975A1 (de) Multi-mikro-prozessor-einheit
DE3853613T2 (de) Mikrorechner mit flexiblen anwendungsspezifischen integrierten Schaltungen.
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE2113890C2 (de) Zentrale Verarbeitungseinrichtung für Datenverarbeitungsanlagen
DE3688824T2 (de) Datenverarbeitungssystem.
DE1774296C2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE2318069C2 (de) Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix
DE1549523B2 (de) Datenverarbeitungsanlage
DE2748991A1 (de) Einrichtung zur umsetzung von datenformaten
DE2719635A1 (de) Anordnung fuer eine erweiterung einer mikroprogrammsteuerung einer datenverarbeitungsanlage
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
CH620779A5 (de)
DE2115431A1 (de) Universalmodul zum Verbinden von Einheiten in Patenverarbeitungsanlagen
DE2717658A1 (de) Anordnung zur ansteuerung eines mikroprogrammspeichers
DE1269393B (de) Mikroprogramm-Steuerwerk
DE2452214A1 (de) Mikroprozessor mit unmittelbarer und indirekter adressierung
DE3689006T2 (de) Mikroprogrammsteuersystem.
DE3856139T2 (de) Mikroprozessor
DE2926322A1 (de) Speicher-subsystem
DE2548720C2 (de) Mikroprogramm-Steuerwerk
DE2951040C2 (de)
DE1806535B2 (de) Seriell arbeitende digitale rechenanlage
DE68926597T2 (de) Mikrorechner
DE2747304C3 (de) Einrichtung zur Mikrobefehlssteuerung
DE2245284A1 (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