DE3233360A1 - Prozessoreinheit eines rechners - Google Patents

Prozessoreinheit eines rechners

Info

Publication number
DE3233360A1
DE3233360A1 DE19823233360 DE3233360A DE3233360A1 DE 3233360 A1 DE3233360 A1 DE 3233360A1 DE 19823233360 DE19823233360 DE 19823233360 DE 3233360 A DE3233360 A DE 3233360A DE 3233360 A1 DE3233360 A1 DE 3233360A1
Authority
DE
Germany
Prior art keywords
microprocessor
processor unit
bus
unit according
microprogram
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE19823233360
Other languages
English (en)
Inventor
Richard Dipl.-Ing. 8261 Ampfing Breintner
Petro Dipl.-Math 8026 Ebenhausen Istavrinos
Rudolf Dipl.-Ing. 8024 Oberhaching Kober
Stefan Dipl.-Ing. 8028 Taufkirchen Tomann
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE19823233360 priority Critical patent/DE3233360A1/de
Priority to CH359683A priority patent/CH660427A5/de
Publication of DE3233360A1 publication Critical patent/DE3233360A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
    • 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/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)

Description

  • Prozessoreinheit eines Rechners
  • Die Erfindung bezieht sich auf eine Prozessoreinheit eines Rechners, die zur Ausführung von nicht zum eigenen Befehlsvorrat gehörenden Befehlen geeignet ist und bei der jeder Befehl in einer Folge von Einzelschritten ausgeführt wird.
  • Die für einen bestimmten Rechner entwickelten Programme können auf einem anderen Rechner nur dann laufen, wenn die beiden Rechner hinsichtlich ihrer Befehle kompatibel sind.
  • Ist dies nicht der Fall, dann müssen z.B. Emulatoren zur Hilfe genommen werden. Ein solcher Emulator gestattet es, auf einem Rechner Programme eines anderen Rechnertyps auszuführen. Dabei ahmt der eingesetzte Rechner alle Eigenschaften des anderen nach.
  • Technisch ist die Emulation einfach zu verwirklichen, wenn der zur Emulation verwendete Rechner mit Mikrobefehlen, die über einen Festspeicher aufgerufen werden, arbeitet.
  • Durch Erweiterung oder Abänderung dieses Festspeichers lassen sich Kombinationen von Mikrobefehlen vorsehen, die in ihrer Ausführung den Befehlen des zu emulierenden Programms entsprechen (Lexikon der Datenverarbeitung, 8 Auflage 1982, Verlag Moderne Industrie, München Stichwort Emulator).
  • Bisher wurden für die Emulation von Befehlen vorwiegend diskret aufgebaute Schaltungen verwendet. Diese Lösung ist aufwendig. Eine andere Möglichkeit besteht darin, hochintegrierte, kundenspezifische Bausteine zu entwickeln. Wegen der relativ niedrigen Stückzahlen, die von diesen Bausteinen gefertigt werden, sind diese verhältnismäßig teuer.
  • Außerdem mußten für jede neue Technologie Bausteine neu entwicklet werden.
  • Die der Erfindung zugrundeliegende Aufgabe besteht darin, eine Prozessoreinheit eines Rechners anzugeben, bei der handelsübliche Mikroprozessorbausteine verwendet werden und die trotzdem nicht zu deren Befehlsvorrat gehörende Befehle ausführen kann. Diese Aufgabe wird bei einer Prozessoreinheit der eingangs angegebenen Art dadurch gelöst, daß mindestens zwei bipolare Mikroprozessoren vorgesehen sind, die parallel zueinander betreibbar sind, daß den Mikroprozessoren ein gemeinsamer Mikroprogrammspeicher zugeordnet ist, und daß in dem Mikroprogrammspeicher den Befehlen zugeordnete Mikroprogramme aus Mikroprogrammworten abgespeichert sind, wobei die Mikroprogrammworte Mikrobefehle enthalten, die die einzelnen Schritte bei der Ausführung eines Befehls den Mikroprozessoren entsprechend deren Funktionsumfang zuordnen.
  • Die Mikroprozessoren können taktsynchron arbeiten. Die Mikrobefehle für die Mikroprozessoren stehen in Mikroprogrammworten im Mikroprogrammspeicher. Damit ergibt sich eine starre Kopplung zwischen den Mikroprozessoren, wodurch der sonst notwendige Synchronisationsaufwand vermieden wird.
  • Zugriffskonflikte an einem gemeinsamen Speicher, z.B. Arbeitsspeicher oder Zwischenspeicher,treten während der Bearbeitung nicht auf, da die Zugriffsrechte bereits durch die Mikroprogrammierung festgelegt werden.
  • Die Mikroprozessoren können derart aufgebaut sein, daß der eine Datenworte größerer Breite verarbeiten kann als der andere. Beispielsweise kann der erste Mikroprozessor Datenworte von 32 bit Breite, der zweite Mikroprozessor Datenworte von 16 bit Breite verarbeiten. Damit ergibt sich ein unterschiedlicher Funktionsumfang dieser Mikroprozessoren. Bei der Ausführung eines Befehls, die schrittweise erfolgt, werden den beiden Mikroprozessoren jeweils die Schritte zugeordnet, die sie entsprechend ihrem Funktions- umfang ausführen können, d.h. wenn in einem Schritt ein Datenwort von z.B. 32 bit Breite verarbeitet werden muß, wird der erste Mikroprozessor dies tun, wenn dagegen in einem Schritt nur ein Datenwort von 16 bit Breite oder weniger zu verarbeiten ist, kann dies mit Hilfe des zweiten Mikroprozessors durchgeführt werden. Die einzelnen Schritte werden also nach funktionellen Gesichtspunkten auf die beiden Mikroprozessoren verteilt und weitgehend parallel abgearbeitet.
  • Um die Mikroprozessoren bei der Ausführung der Befehle weiter zu entlasten, können zusätzliche Baueinheiten vorgesehen werden, die parallel zu den Mikroprozessoren einzelne Schritte ausführen. So sind z.B. Vergleichsschaltungen vorgesehen, deren Aufgabe darin besteht, bei der Bearbeitung von Operanden in dezimaler Darstellung, die in den Mikroprozessoren erfolgt, Operanden mit falsch codierter Dezimalziffer und ~ ein falsches Vorzeichen festzustellen. Damit entfällt eine sonst notwendige und zeitaufwendige Überprüfung der Operanden in einem der Prozessoren.
  • Andere Weiterbildungen der Erfindung ergeben sich aus den Unteransprüchen.
  • Anhand eines Ausführungsbeispiels, das in den Figuren dargestellt ist, wird die Erfindung weiter erläutert.
  • Es zeigen Fig. 1 ein Blockschaltbild des Rechners, Fig. 2 ein Blockschaltbild der Prozessoreinheit, Fig. 3 bis 8 die Realisierungen des einzelnen Blöcke des Blockschaltbildes nach Fig. 2, Fig. 9 ein Ablaufdiagramm, in dem der Befehl1 Laden Wort' in einzelnen Schritten dargestellt ist.
  • In Fig. 1 ist die Prozessoreinheit mit PE bezeichnet, die an einem Systembus SB angeschlossen ist. An dem Systembus SB können weitere Einheiten, z.B. ein Arbeitsspeicher ASP und ein oder mehrere Ein-Ausgabeeinheiten EOP angeschlossen werden.
  • Die Prozessoreinheit PE besteht aus einem ersten bipolaren Mikroprozessor Pl, einem zweiten bipolaren Mikroprozessor P2, einem Mikroprogrammspeicher MPS, einem Sequencer SE und einem Zwischenspeicher SCP.
  • Im Ausführungsbeispiel enthält die Prozessoreinheit PE nur zwei bipolare Mikroprozessoren. Es ist jedoch möglich, mehr als zwei Mikroprozessoren zu verwenden, die dann alle an einem Mikroprogrammspeicher MPS angeschlossen sind.
  • Aus Fig. 2 ergibt sich der genauere Aufbau der Prozessoreinheit. Der erste Mikroprozessor P1 ist mit einem ersten Bus Y32 verbunden, an dem auch ein Register REG angeschlossen ist. Dieses Register REG ist weiterhin mit einem Datenbus DB verbunden, der zum Systembus SB führt und von dort z.B. zum Arbeitsspeicher ASP.
  • Der erste Bus Y32 ist weiterhin mit einem Multiplexer MUX verbunden, von dem ein zweiter Bus Y16 zum zweiten Mikroprozessor P2 führt. Der erste Bus Y32 ist weiterhin an eine erste Vergleichsschaltung VGL1 angeschlossen, an einen konstanten Speicher K02 und einen Zuordnungsspeicher MAP.
  • Der zweite Bus Y16 ist weiterhin mit einer zweiten Vergleichsschaltung VGL2 und einem Decoder DEC2 verbunden.
  • Die Mikroprozessoren P1 und P2 sind an einen Mikroprogrammspeicher MPS angeschlossen, der mit Hilfe eines SequencersSE adressiert wird. Der Mikroprogrammspeicher MPS enthält die Mikroprogramme, die den einzelnen auszuführenden Befehlen zugeordnet sind. Die einzelnen Mikroprogrammworte dieser Mikroprogramme enthalten die Mikrobefehle, durch die die beiden Mikroprozessoren P1 und P2 gesteuert werden. Mit dem Mikroprogrammspeicher MPS ist weiterhin ein Konstantenspeicher KOl verbunden, der seinerseits an den ersten Mikroprozessor P1 angeschlossen ist.
  • Weiterhin ist der Mikroprogrammspeicher MPS mit einer Treiberschaltung TR verbunden, die an einen Adressenbus AB angeschlossen ist. An dem Adressenbus AB liegen weiterhin der zweite Decoder DEC 2 und ein erster Decoder DEC1, der mit dem ersten Mikroprozessor P1 verbunden ist.
  • Der Datenbus DB und der Adressbus AB sind mit einem Zwischenspeicher SCP verbunden und weiterhin mit dem Systembus SB. Zur Synchronisation des Arbeitsablaufs ist eine Taktschaltung TK vorgesehen, von der Taktimpulse CP an die einzelnen Baueinheiten geliefert werden.
  • Im Ausführungsbeispiel kann der erste Mikroprozessor Pl Datenworte von 32 bit Breite verarbeiten, entsprechend breit ist auch der erste Bus Y32. Der zweite Mikroprozessor P2 kann dagegen nur Datenworte mit 16 bit Breite verarbeiten, entsprechend breit ist auch der zweite Bus Y16. Der zweite Mikroprozessor kann z.B. als Single Chip Mikroprozessor ausgeführt sein, während der erste Mikroprozessor Pl aus vier jeweils 4 bit breiten Mikroprozessor-Slices besteht. Als Mikroprozessor-Slices für den Mikroprozessor P1 kann z.B. ein AM 29203 von Advanced Mikro Devices verwendet werden, als Mikroprozessor P2 ein AM 29116 von Advanced Mikro Devices benutzt werden.
  • Das Zusammenwirken der einzelnen Baueinheiten der Prozessoreinheit PE wird in Verbindung mit der Ausführung eines Befehles, der nicht zum Befehlsvorrat der Mikro- prozessoren P1 und P2 gehört, erläutert. Dieser Befehl soll z.B. 1laden Wort' sein. Mit diesem Befehl wird ein Operand aus dem Arbeitsspeicher ASP in den Zwischenspeicher SCP geladen. Aus Fig. 9 ergibt sich der Aufbau dieses Befehls. Er hat 32 bit Breite und und besteht aus einem 0P Operationsoode, und Bestandteilen R1, X2, B2, D2. Aus dem Bestandteil R1 wird die Adresse im Zwischenspeicher SCP berechnet, an dem der-Operand abgespeichert wird. Aus den Bestandteilen X2, B2 und D2 wird die Adresse des Operanden im Arbeitsspeicher ASP berechnet.
  • Wenn der Befehl 1Laden Wort' ausgeführt werden soll, muß nach Fig. 9 in einem ersten Schritt S1 überprüft werden, ob interrupt flags im Zwischenspeicher SCP besetzt sind. Ist dies der Fall, dann liegt eine Unterbrechnung vor, die bearbeitet werden muß. Dies geschieht im Schritt S2. Ist dies dagegen nicht der Fall, kann in einem Schritt S3 die Befehlsadresse des im Arbeitsspeicher ASP stehenden Befehls überprüft werden. Z.B. ist es möglich, festzustellen, ob die Befehlsadresse auf Halbwortadresse liegt. Ist dies nicht der Fall, dann liegt ein Fehler vor und eine Fehlerbehandlungsroutine wird eingeleit.(Schritt S12) Steht dagegen die Befehlsadresse auf Halbwortadresse im Arbeitsspeicher dann wird im nächsten Schritt S4 der Befehl geholt und im Schritt S5 dessen Operationscode OP decodiert. Im nächsten Schritt S6 wird der Adresszähler mit der Adresse des nächst auszuführenden Befehls im Arbeitsspeicher ASP geladen und z.B.
  • die Länge des Befehlswortes angegeben. Im Schritt S7 wird die Operandenadresse, unter der der Operand im Arbeitsspeicher ASP abgespeichert ist, berechnet. Im Schritt S8 wird überprüft, ob die Adresse des Operanden im Arbeitsspeicher ASP auf Wortgrenze liegt, und wenn dies der Fall ist, im Schritt S9 der Operand aus dem Arbeitsspeicher ASP geholt. Im Schritt S10 wird die Adresse des Zwischenspeichers SCP festgelegt, unter der der Operand im Zwischenspeicher SCP abzuspeichern ist. Im Schritt S11 wird dann der Operand in den Zwischenspeicher SCP eingespeichert.
  • Damit ist die Ausführung des Befehls'Laden Wort#eendet.
  • Im folgenden wird ge>schildert,wie die einzelnen Schritte bei der Ausführung des Befehls 1Laden Wort' in der Prozessoreinheit nach Fig. 2 ausgeführt werden. Die Ausführung eines Befehls unterteilt sich dabei in zwei Abschnitte, die Befehlsvorbereitung und die Befehlsdurchführung. Bei der Befehlsvorbereitung erzeugt der Sequencer SE zunächst die Adresse des ersten Mikroprogrammwortes im Mikroprogrammspeicher MPS, durch das den Mikroprozessoren P1 und P2 die zur Befehlsvorbereitung erforderlichen Mikrobefehle zugeführt werden. Dabei ist das Mikroprogrammwort derart aufgebaut, daß der Mikroprozessor P2 aus den Zwischenspeicher SCP ein 16 bit breites Datenwort in seinen internen Akkumulator lädt. Die Adresse dieses Datenwortes wird durch das Mikroprogramm festgelegt. Der Mikroprogrammspeicher MPS gibt über die Treiberschaltung TR, den Adressbus AB die Adresse an das Zwischenregister SCP. Von dort wird das Datenwort über den Datenbus DB dem Register REG zugeführt und gelangt dort über den ersten Bus Y32, den Multiplexer MUX, den Y16 Bus zum Mikropro#essor P2. Der Mikroprozessor P2 kann nun das Datenwort überprüfen, das die interrupt flagienthält. Somit wär der erste Schritt S1 nach Fig. 9 vom Mikroprozessor P2 ausgeführt.
  • Während der Mikroprozessor P2 das Datenwort daraufhin überprüft, ob interrupt flss gesetzt sind, legt der Mikroprozessor P1 die Adresse des nächsten auszuführenden Befehls über den Decoder DEC1, den Adressbus AB an den Arbeitsspeicher ASP. Der gelesene Befehl wird vom Arbeitsspeicher ASP in das Register REG übertragen. Während dessen testet der Mikroprozessor P2, ob in dem Datenwort interrupt flts gesetzt sind oder nicht. Ist ein interrupt flag gesetzt, wird in die Unterbrechungsroutine des Mikro- programms verzweigt.
  • Anschließend liest der Mikroprozessor P1 aus dem Register REG den abzuarbeitenden Befehl in sein Befehlsregister ein. Gleichzeitig testet der Mikroprozessor P2 das niederwertigste Bit der Befehlsadresse des gerade abzuarbeitenden Befehls. Die niederwertigsten Bits der Befehlsadresse sind im Mikroprozessor P2 gespeichert. Ist das niederwertigste Bit der Befehlsadresse logisch 1, dann ist die Befehlsadresse ungerade und fehlerhaft und durch das Mikroprogramm wird in eine Fehlerbehandlungsroutine verzweigt.
  • Sonst läuft die Ausführung des Befehls normal weiter. Da der Befehl vom Register REG in den Mikroprozessor P1 übertragen worden ist, wurde der Operationscode OP des Befehls dem Umwandlungsspeicher MAP zugeführt. Dieser erzeugt aus dem Operationscode des Befehls eine Adresse für den Sequencer SE, der diesem die Ansteuerung des richtigen Mikroprogramms im Mikroprogrammspe#icher MPS ermöglicht. Damit ist auch der Schritt S5 des Ablaufdiagramms ausgeführt.
  • Der Mikroprozessor P1berechnet nunmehr die Adresse des nächsten Befehls. Dazu erhöherz.B. die Adresse des gerade auszuführenden Befehls um die Länge des Befehls und übergibt die neue Befehlsadresse an das Register REG über den ersten Bus Y32. Dabei übernimmt der Mikroprozessor P2 parallel dazu die niederwertigen 16 bit der nächsten Befehlsadresse in seinen internen Speicher.
  • Durch den Mikroprogrammspeicher MPS wird über die Treiberschaltung TR das Zwischenregister SCR adressiert, um unter dieser Adresse den Inhalt des Registers, die Adresse des nächsten auszuführenden Befehls,im Zwischenspeicher SCP abspeichern zu können. Der Mikroprozessor P1 rechnet gleichzeitig die Länge des gerade zu bearbeitenden Befehls in Halbworten und gibt diese Länge an das Register REG aus.
  • Während der Inhalt des Registers REG, also die Länge des abzuarbeitenden Befehls in Halbworten,in denZwischenspeicher SCP geschrieben wird, und zwar unter der Adresse, die der Mikroprogrammspeicher MPS über die Treiberschaltung TR an den Zwischenspeicher anlegt, entnimmt der Mikroprozessor P1 aus dem 4 bit breiten Befehl die Registernummer B2 und bietet sie über den ersten BusY32, den Multiplexer MUX und den zweiten Bus Y16 dem zweiten Mikroprozessor P2 an. Dieser übernimmt diese Nummer auf den niederwertigen 16 bit in seinen internen Akkumulator.
  • Der Mikroprozessor Pl nimmt aus dem Befehl den Abschnitt D2 und speichert diesen intern z.B. unter der symbolischen Adresse OPAD ab. Parallel dazu setzt der zweite Mikroprozessor P2 die Registernummer B2 in die zugehörige Registeradresse um.
  • Der Mikroprozessor P2 errechnet aus dieser Registeradresse und dem Prozessorzustand, der im Zwischenspeicher SCP abgespeichert ist, die zugehörige Adresse des Zwischenspeichers und adressiert diesen über den Decoder DEC und den Adressbus AB. Der Inhalt des Zwischenspeichers SCP unter dieser Adresse wird in das Register REG zwischengespeichert.
  • Der erste Mikroprozessor P1 übernimmt den Inhalt des Regilt'er REG und addiert diesen zu dem Bestandteil D2 und speichert die Summe wiederum intern ab. Wenn der Mikroprozessor P2 dagegen bei der Überprüfung des Bestandteils B2 des Befehls festgestellt hätte, daß dieser gleich 0 ist, hätte er die Zwischenschritte auslassen können und bei Befehlsausführung wäre mit dem ren worden.
  • In diesem entnimmt der Mikroprozessor P1 aus dem Befehl die Registernummer X2 und bietet sie über den ersten Bus Y32 den zweiten Mikroprozessor P2 an. Dieser übernimmt die Nummer auf den höherwertigen 16 bit über den Multiplexer MUX und den zweiten Bus Y16 in seinen internen Akkumulator. Ist X2 gleich 0, dann können die nächsten Schritte übersprungen werden. Ist dies dagegen nicht der Fall, dann setzt der Mikroprozessor P2 die Registernummer X2 in die zugehörige Registeradresse um. Er errechnet weiterhin aus dieser Registeradresse und dem Prozessorzustand die zugehörige Adresse im Zwischenspeicher SCP und adressiert diesen über denzweiten Decoder DEC2. Der Inhalt des Zwischenspeichers SCP unter dieser Adresse wird in dem Register REG zwischengespeichert.
  • Der erste Mikroprozessor-P1 übernimmt den Inhalt des Register REG über den ersten Bus Y32 und addiert ihn zur Summe bestehend aus dem Bestandteil D2 deS Befehls und des dem Bestandteil B2 zugeordneten Inhalts des Zwischenspeioher#C#inzu. Die Summe wird wiederum im Mikroprozessor P1 intern abgespeichert. War dagegen X2 im Befehl gleich 0, dann sind die vorhergehenden Schritte nicht erforderlich gewesen und die Prozessoreinheit konnte gleich mit dem nächsten Schritt weitergehen.
  • Der erste Mikroprozessor P1 bietet die mit Hilfe der Bestandteile D2, B2 und X2 im Befehl errechnete Operandenadresse (entspricht Schritt S7 im Ablaufdiagramm) über den ersten Bus Y32, den Multiplexer MUX und den zweiten,Bus Y16 dem zweiten Mikroprozessor P2 an. Dieser übernimmt den niederwertigen Teil in seinen Akkumulator. Der Mikroprozessor P2 überprüft die Operandenadresse daraufhin, ob sie zulässig ist, ob also an der Wortgrenze liegt. Liegt die Adresse nicht an der Wortgrenze, dann wird in eine Fehlerbehandlungsroutine verzweigt.(Schritt S13) Der Mikroprozessor P2 führt somit Schritt S8 des Ablaufdiagramms durch.
  • Liegt die Adresse des Operanden im Arbeitsspeicher an der Wortgrenze, dann adressiert der erste Mikroprozessor P1 mit der Operandenadresse über den Decoder DEC1 den Arbeitsspeicher ASP. Das gelesene Datenwort wird im Register REG zwischengespeichert.
  • Der erste Mikroprozessor P1 entnimmt aus dem 4 byte breiten Befehl die Registernummer R1 und bietet sie über den ersten Bus Y32 den zweiten Mikroprozessor P2 an. Dieser übernimmt die Nummer auf den höherwertigen 16 bit über den Multi -plexer MUX und den zweiten Bus Y16 in seinen internen Akkumulator. Der zweite Mikroprozessor P2 setzt dann die Registernummer R1 in die zugehörige Registeradresse um und errechnet aus dieser Registeradresse und dem Pr-ozessorzustand die zugehörige Adresse des Zwischenspeichers SCP, unter der der Operand abgespeichert werden soll. Der Mikroprozessor P2 adressiert über den zweiten Decoder DEC 2 den Zwischenspeicher SCP. Der Inhalt des Registers REG wird dann unter dieser Adresse in den Zwischenspeicher SCP geschrieben. Die Schritte S10 und S11 des Ablaufdiagramms nach Fig. 9 sind damit ebenfalls ausgeführt.
  • Damit ist das dem abzuarbeitenden Befehl zugeordnete Mikroprogramm beendet und es kann der nächste Befehl ausgeführt werden. Dieser beginnt wiederum mit der Befehlsvorbereitung, bei dem die oben geschilderten Schritte identisch wieder ausgeführt werden. Zunächst wird also überprüft, ob die interrupt flags gesetzt sind oder nicht, dann die Adresse des zu bearbeitenden Befehls vom Mikroprozessor P1 an den Arbeitsspeicher ASP gegeben und vom Mikroprozessor P2 die Befehlsadresse überprüft. Vom Mikroprozessor P1 wird der Befehl geholt und damit dem Sequencer SE über den Umwandlungsspeicher MAP die Möglichkeit gegeben, das dem Operationscode des Befehls zugeordnete Mikroprogramm im Mikroprogrammspeicher MPS zu adressieren.
  • Das dann folgende Mikroprogramm ist vom Operationscode des auszuführenden Befehls abhängig.
  • Somit adressiert bei der Befehlsdurchführung zunächst der Sequencer SE das entsprechende Mikroprogramm zur Befehlsvorbereitung im Mikroprogrammspeicher MPS und dann anschließend das durch den Operationscode des auszuführenden Befehls festgelegte Mikroprogramm im Mikroprogrammspeicher MPS.
  • Die Bearbeitung von Befehlen mit Operanden in dezimaler Darstellung schließt immer die Überprüfung der Gültigkeit der einzelnen Ziffern und die des Vorzeichens mit ein. Dazu werden die beiden Vergleichs schaltungen VGL1 und VGL2 verwendet. Die Operanden werden über den ersten Bus Y32 in den ersten Mikroprozessor- Pl übertragen und sogleich mit den in der Vergleichsschaltung VGL1 gespeicherten gültigen Ziffern verglichen. Ist eine der Ziffern ungültig, dann wird über die Steuerleitung von der Vergleichseinrichtung VGL1 zum Sequencer SE dieser veranlaßt, in eine Fehlerbehandlungsroutine zu verzweigen. Die Vorzeichen werden im zweiten Mikroprozessor P2 verarbeitet. Deren Gültigkeit wird mit Hilfe der zweiten Vergleichseinrichtung VGL2 überprüft. Auch diese gibt im Fehlerfall ein Signal an den Sequencer SE, der in eine Fehlerroutine verzweigt.
  • Im Konstantenspeicher ~ K02, der an den ersten Bus Y32 angeschlossen ist, können dem erstem Mikroprozessor P1 Konstanten zugeführt werden, die diesen z.B. ermöglichen, festzustellen, ob ein Überlauf aufgetreten ist oder nicht.
  • Die Ausführung der einzelnen in Fig. 2 dargestellten Blöcke ist in den Fig. 3 bis 8 gezeigt. Die Fig. 3 zeigt die Realisierung des ersten Mikroprozessors Pl, der Vergleichseinrichtung VGL1, des ersten und zweiten Konstanten s,peichers K01 und K02. Der erste Mikroprozessor P1 ist aus bit slices BSL, z.B. der oben angegebenen Art, aufgebaut. Weiterhin ist eine Anordnung AN zur Übertragsvorhersage vorgesehen. Schließlich enthält der Prozessor P1 noch eine Zustandssteuereinheit ZS. Die Anordnungen zur übertragungsvorhersage können z.B. Bausteine AM 2902, die Zustandssteuereinheit ZS der Baustein AM 29014 von kdvanced Micro Vevices sein. Auf diese Bausteine sind auch die Bezeichnungen in der Fig. 3 bezogen.
  • Die Constantenspeicher K01 und K02 bestehen aus PROM-bausteinen, wie z.B.auA : Bausteinen AM 27319 von Qdvanced Micro Devices. Die Vergleichseinrichtung VGL1 ist ebenfalls aus PROM-#bausteinen aufgebaut, z.B. aus den Bausteinen IM 5600 von Intersil.
  • Aus Fig. 14 ergibt sich der Aufbau des zweiten Mikroprozessors P2, der zweiten Vergleichseinrichtung VGL2, des Multiplexers MUX, des Umwandlungsspeichers MAP und des Registers REG. Dem bereits obengenannten Beispiel eines Bausteins für den Prozessor P2 ist wiederum eine Zustandssteuereinheit ZS beigefügt. Die zweite Vergleichseinrichtung VGL2 ist entsprechend der ersten Vergleichseinrichtung VGL1 aufgebaut. Der Multiplexer MUX besteht aus Treiberbausteinen, z.B. dem Baustein 74LS640. Zur Realisierung des Umwandlungsspeichers MAP werden PR°Mbausteine verwendet, z.B. die Bausteine AM 27S29 von Advanced Micro Devices. Das Register REG besteht schließlich aus Registerbausteinen, z.B. AM 2950 von Advanced Mikro Devices.
  • Fig. 5 zeigt die Zusammenschaltung des Sequencers SE mit dem Mikroprogrammspeicher MPS. Der Sequencer SE kann z.B.
  • aus dem Sequencer-Baustein AM 2910, einem Multiplexer AM 2922 und einem Register-Baustein 7148175 bestehen. Der Mikroprogrammspeicher MPS kann aus PRO#bausteinen, z.B.
  • AM 27335 aufgebaut sein. Die vom Mikroprogrammspeicher MPS zu den anderen Baueinheiten führenden Leitungen bzw. die zum Mikroprogrammspeicher MPS von anderen Baueinheiten führenden Leitungen sind in Fig. 5 dargestellt und mit den entsprechenden Baueinheiten bezeichnet.
  • Aus Fig. 6 ergibt sich der Aufbau der Treiberschaltung TR.
  • Diese kann aus Treiberbausteinen z.B. 74LS274 aufgebaut sein.
  • Aus Fig. 7 ergibt sich die Realisierung der Decoderschaltungen DEC1 und DEC2. Diese bestehen aus Treiberbausteinen, z.B. 74LS244 und jeweils einem PRO#baustein, z.B. IM5600.
  • Aus Fig. 8 kann schließlich noch der Aufbau des Zwischenspeichers SCP entnommen werden. Dieser besteht aus Registerbausteinen, z.B. PD 21149 von NEC und Treiberbausteinen, z.B. 714LS2144, die mit dem Adressenbus AB verbunden sind und anderen Treiberbausteinen, z.B. 714LS2145, die mit dem Datenbus DB verbunden sind. In die Registerbausteine können Daten eingeschrieben bzw. entnommen werden. Die Speicherstellen,in die Daten eingeschrieben bzw.
  • entnommen werden, werden durch die Adresse festgelegt, die auf dem Adressenbus AB anliegt. Diese wird über die Treiberbausteine den einzelnen Registerbausteinen zugeführt. Mit Hilfe eines PROMbausteines, z.B. des Bausteines IM 5603 von Intersil wird festgelegt, ob Daten in den Zwischenspeicher eingeschrieben werden oder ausgelesen werden.
  • 12 Patentansprüche 9 Figuren Leerseite

Claims (12)

  1. Patentansprüche Prozessoreinheit eines Rechners, die zur Ausführung von nicht zum eigenen Befehlsvorrat gehörenden Befehlen geeignet ist und bei der jeder Befehl in einer Folge von Einzelschritten ausgeführt wird, dadurch g e k e n n z e i c h n e t , daß mindestens zwei bipolare Mikroprozessoren (P1,P2) vorgesehen sind, die parallel zueinander betreibbar sind, daß den Mikroprozessoren ein gemeinsamer Mikroprogrammspeicher (MPS) zugeordnet ist, und daß in dem Mikroprorammspeicher den Befehlen zugeordnete Mikroprogramme aus Mikroprogrammworten abgespeichert sind, wobei die Mikroprogrammworte Mikrobefehle enthalten, die die einzelnen Schritte bei der Ausführung des Befehls den Mikroprozessoren (P1,P2) entsprechend deren Funktionsumfang zuordnen.
  2. 2. Prozessoreinheit nach Anspruch 1, dadurch g e -k e n n z e i c h n e t , daß die Mikroprozessoren (P1, P2) taktsynchron arbeiten.
  3. 3. Prozessoreinheit nach Anspruch 1 oder 2, dadurch g e k e n n z e i c h n e t , daß der eine Mikroprozessor (P1) derart aufgebaut ist, daß er erste Datenworte größerer Breite verarbeiten kann als der andere Mikroprozessor (P2).
  4. 4. Prozessoreinheit nach Anspruch 3, dadurch g e -k e n n z e i c h n e t , daß der eine Mikroprozessor (P1) erste Datenworte von 32 bit Breite, der andere Mikroprozessor (P2) zweite Datenworte von 16 bit Breite verarbeiten kann.
  5. 5. Prozessoreinheit nach einem der vorhergehenden Ansprüche, dadurch g e k e n n z e i c h ne t , daß mindestens der eine Mikroprozessor (Pl) aus bit slices aufgebaut ist.
  6. 6. Prozessoreinheit nach einem der vorhergehenden Ansprüche, dadurch g e k e n n z e i c h n e t , daß ein der Breite der ersten Datenworte entsprechender erster Bus (Y32) an die Ein/Ausgänge des einen Mikroprozessors (P1) angeschlossen ist, daß über einen Multiplexer (MUX) der erste Bus mit einem zweiten Bus (Y16) verbindbar ist, der an die Ein/Ausgänge des anderen Mikroprozessors (P2) angeschlossen ist und daß an den ersten Bus ein Register (REG) angeschlossen ist, das mit einem Datenbus (DB) verbunden ist, an dem ein Zwischenspeicher (SCP) und ein Arbeitsspeicher (ASP) angeschlossen ist.
  7. 7. Prozessoreinheit nach Anspruch 6,. dadurch g e -k e n n z e i c h n e t , daß die Mikroprozessoren (P1, P2) jeweils über einen Decoder (DEC1, DEC2) mit einem Adressbus (AB) verbunden sind, der an den Arbeitsspeicher (ASP) und den Zwischenspeicher (SCP) angeschlossen ist.
  8. 8. Prozessoreinheit nach Anspruch 7, dadurch g e -k e n n z e i c h n e t , daß der Mikroprogrammspeicher (MPS) über eine Treiberschaltung (TR) an den Adressbus (AB) angeschlossen ist.
  9. 9. Prozessoreinheit nach Anspruch 8, dadurch g e -k e n n z e i c h n e t , daß ein Sequencer (SE) vorgesehen ist, der die auszuführenden Mikroprogrammworte im Mikroprogrammspeicher (MPS) adressiert, und daß der Sequencer über einen Umwandlungsspeicher (MAP) mit dem ersten Bus (Y32) verbunden ist.
  10. 10. Prozessoreinheit nach Anspruch 9, dadurch g e -k e n n z e i c h n e t , daß an den ersten Bus (Y32) eine erste Vergleichseinrichtung (VGL1) angeschlossen ist, die Operanden in dezimaler Darstellung überprüft und bei Auftreten eines Fehlers ein Signal an den Sequencer (SE) gibt.
  11. 11. Prozessoreinheit nach Anspruch 9 oder 10, dadurch g e k e n n z e i c h n e t , daß an den zweiten Bus (Y16) eine zweite Vergleichseinrichtung (VGL2) angeschlossen ist, die bei Operanden in dezimaler Darstellung das Vorzeichen überprüft und bei Auftreten eines Fehlers ein Signal an den Sequencer (SE) abgibt.
  12. 12. Prozessoreinheit nach einem der vorhergehenden Ansprüche, dadurch g e k e n n z e i c h n e t , daß Konstantenspeicher (K01, K02) vorgesehen sind, durch die dem ersten Mikroprozessor (P1) Konstanten zuführbar sind.
DE19823233360 1982-09-08 1982-09-08 Prozessoreinheit eines rechners Withdrawn DE3233360A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE19823233360 DE3233360A1 (de) 1982-09-08 1982-09-08 Prozessoreinheit eines rechners
CH359683A CH660427A5 (de) 1982-09-08 1983-06-30 Prozessoreinheit eines rechners.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19823233360 DE3233360A1 (de) 1982-09-08 1982-09-08 Prozessoreinheit eines rechners

Publications (1)

Publication Number Publication Date
DE3233360A1 true DE3233360A1 (de) 1984-03-08

Family

ID=6172737

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19823233360 Withdrawn DE3233360A1 (de) 1982-09-08 1982-09-08 Prozessoreinheit eines rechners

Country Status (2)

Country Link
CH (1) CH660427A5 (de)
DE (1) DE3233360A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0207506A2 (de) * 1985-07-03 1987-01-07 Hitachi, Ltd. Vektorverarbeitungsgerät

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3662401A (en) * 1970-09-23 1972-05-09 Collins Radio Co Method of program execution
AT335202B (de) * 1973-08-13 1977-02-25 Ibm Oesterreich Datenverarbeitungsanlage zur parallelen ausfuhrung von verarbeitungsoperationen

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3662401A (en) * 1970-09-23 1972-05-09 Collins Radio Co Method of program execution
AT335202B (de) * 1973-08-13 1977-02-25 Ibm Oesterreich Datenverarbeitungsanlage zur parallelen ausfuhrung von verarbeitungsoperationen

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DE-Z: Siemens Forschungs- und Entwicklungs- Berichte, Bd.7, 1978, Nr.6, S.363-367 *
US-Z: IBM Journal of Research and Development, Vol.26, No.4, July 1982, S.401-412 *
US-Z: IEEE Transactions on Computers, Vol. SC-22, No.2, February 1973, S.143-153 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0207506A2 (de) * 1985-07-03 1987-01-07 Hitachi, Ltd. Vektorverarbeitungsgerät
EP0207506A3 (en) * 1985-07-03 1989-01-18 Hitachi, Ltd. Vector processing apparatus

Also Published As

Publication number Publication date
CH660427A5 (de) 1987-04-15

Similar Documents

Publication Publication Date Title
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE3151745C2 (de)
DE69129565T2 (de) Hochleistungsfähiger Emulator mit Pipelining
DE3588009T2 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung.
DE3688824T2 (de) Datenverarbeitungssystem.
EP0048767A1 (de) Prioritätsstufengesteuerte Unterbrechungseinrichtung
DE1549523B2 (de) Datenverarbeitungsanlage
DE69027806T2 (de) Multifunktionskoppler zwischen einer zentralen Verarbeitungseinheit eines Rechners und verschiedenen Peripheriegeräten dieses Rechners
DE2524046A1 (de) Elektronische datenverarbeitungsanlage
EP0010185A1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE2746505A1 (de) Dv-system mit einer einrichtung zum adressieren in einem festwertspeicher abgelegter mikroprogramme
DE3856139T2 (de) Mikroprozessor
DE3854853T2 (de) Datenprozessor mit erweiterten Operationsfunktionen
DE2533737A1 (de) Datenprozessor
DE69034165T2 (de) Mikroprozessor mit einer Vielzahl von Buskonfigurationen
DE2747304C3 (de) Einrichtung zur Mikrobefehlssteuerung
DE2835110A1 (de) Schneller echtzeit-rechneremulator
DE2336676B2 (de) Einrichtung zur Modifizierung von Mikroprogrammbefehlen
DE2658950A1 (de) Mikroprogrammierte verarbeitungseinheit sowie verfahren zur organisation derselben
EP0075893B1 (de) Schaltungsanordnung zum Ausrichten von Speicheroperanden für dezimale und logische Befehle
DE69031960T2 (de) Mikroprozessor, der mit einem Coprozessor zusammenarbeitet
EP0111161B1 (de) Vorrichtung zur Mikrobefehls-Bereitstellung für mindestens zwei unabhängig arbeitende Funktionseinheiten in einem integrierten, mikroprogrammierten elektronischen Baustein und Verfahren zu ihrem Betrieb
DE3233360A1 (de) Prozessoreinheit eines rechners
DE3750014T2 (de) Datenprozessor mit der Fähigkeit, die Verzweigungsadresse sofort zu berechnen in einer Relativadressenverzweigung.
DE3104903C2 (de) Anordnung zum Datenaustausch zwischen parallel arbeitenden Mikrorechnern

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
8141 Disposal/no request for examination