DE69619885T2 - Datenverarbeitungsanordnung mit Koprozessor - Google Patents
Datenverarbeitungsanordnung mit KoprozessorInfo
- Publication number
- DE69619885T2 DE69619885T2 DE69619885T DE69619885T DE69619885T2 DE 69619885 T2 DE69619885 T2 DE 69619885T2 DE 69619885 T DE69619885 T DE 69619885T DE 69619885 T DE69619885 T DE 69619885T DE 69619885 T2 DE69619885 T2 DE 69619885T2
- Authority
- DE
- Germany
- Prior art keywords
- coprocessor
- instruction
- data
- main processor
- bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000012545 processing Methods 0.000 title claims description 432
- 239000000872 buffer Substances 0.000 claims description 229
- 238000012546 transfer Methods 0.000 claims description 99
- 238000004364 calculation method Methods 0.000 claims description 69
- 230000010365 information processing Effects 0.000 claims description 69
- 238000007726 management method Methods 0.000 claims description 44
- 238000001514 detection method Methods 0.000 claims description 35
- 238000000034 method Methods 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 22
- 238000013500 data storage Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 description 22
- 101150099000 EXPA1 gene Proteins 0.000 description 21
- 102100029095 Exportin-1 Human genes 0.000 description 21
- 101100119348 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) EXP1 gene Proteins 0.000 description 21
- 101100269618 Streptococcus pneumoniae serotype 4 (strain ATCC BAA-334 / TIGR4) aliA gene Proteins 0.000 description 21
- 108700002148 exportin 1 Proteins 0.000 description 21
- 238000010586 diagram Methods 0.000 description 11
- 102100029091 Exportin-2 Human genes 0.000 description 7
- 101710147878 Exportin-2 Proteins 0.000 description 7
- 230000004044 response Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 101150047683 ESC1 gene Proteins 0.000 description 1
- 101000573401 Homo sapiens NFATC2-interacting protein Proteins 0.000 description 1
- 102100026380 NFATC2-interacting protein Human genes 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Advance Control (AREA)
- Image Processing (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf eine Informationsverarbeitungsvorrichtung, die aus einer Hauptdatenverarbeitungsvorrichtung (Hauptprozessor) und einer Untererweiterungsverarbeitungsvorrichtung (Coprozessor) zum Verarbeiten von Daten gemäß Befehlen, gespeichert in einem Speicher, aufgebaut ist.
- In den vergangenen Jahren sind umfangreiche Verbesserungen in der Verarbeitungsleistung durch Ausrüsten von Datenverarbeitungsvorrichtungen (nachfolgend "Prozessoren") mit Erweiterungsberechnugnsvorrichtungen (nachfolgend "Coprozessoren"), die, gemäß der Notwendigkeit, spezielle Berechnungen unter einer hohen Geschwindigkeit ausführen, vorgenommen worden sind.
- Die herkömmlichen Hauptverfahren zum Vorsehen solcher Coprozessoren bestehen aus der Installation des Coprozessors innerhalb des Hauptprozessors und der Verbindung eines Coprozessors mit dem Hauptprozessor, wie dies notwendig ist. Dabei besitzt das frühere Installationsverfahren die Nachteile einer Erhöhung der Kosten und des Energieverbrauchs, wenn der Coprozessor nicht verwendet wird, so dass ein Verfahren zum Verbinden eines Coprozessors, was gleich zu der Funktionsweise eines installierten Coprozessors ist, erwünscht ist.
- Herkömmliche Informationsverarbeitungsvorrichtungen, die einen Coprozessor umfassen, verbunden mit dem Hauptprozessor, arbeiten so, dass Berechnungen des Coprozessors mit Prozessor-Decodierbefehlen für den Coprozessor durchgeführt werden und dann der Coprozessor über die decodierten Befehle informiert wird. Dieses Verfahren besitzt einen Nachteil dahingehend, dass die Übertragung von Befehlen von dem Prozessor beträchtliches Overhead erzeugt, was die Verarbeitungszeit, die durch den Coprozessor beansprucht wird, zu lang gestaltet.
- In Bezug auf dieses Problem offenbart die japanische, offengelegte Patentanmeldung 1- 240932 eine Informationsverarbeitungsvorrichtung, die, indem ein Coprozessor herangezogen wird und derselbe Befehl zu derselben Zeit wie ein Prozessor decodiert wird, der eine Fließband- bzw. Fließbandverarbeitung ausführt, eine Verringerung in der Zeit erreichen kann, die für eine Befehlsübertragung und -decodierung benötigt wird.
- Allerdings müssen, wenn Coprozessoren in solchen herkömmlichen Informationsverarbeitungsvorrichtungen eine Verarbeitung unter Verwendung von Daten, gehalten in den allgemeinen Registern des Hauptprozessors, ausführen, oder wenn Daten, verarbeitet durch den Coprozessor in den allgemeinen Registern in dem Hauptprozessor gespeichert werden, die Daten zuerst temporär in dem Speicher gespeichert werden, wobei diese Übertragung von Daten zu dem Speicher die Ausführungszeit erhöht und dadurch die Funktionsweise des Systems verringert.
- Ähnlich müssen, wenn Coprozessoren in solchen herkömmlichen Informationsverarbeitungsvorrichtungen eine Verarbeitung unter Verwendung der Flag-Informationen, die in den Flag-Speicherregistern in dem Hauptprozessor gehalten sind, ausführen, die Flag- Informationen zuerst temporär in dem Speicher gespeichert werden, wobei diese Übertragung der Flag-Informationen zu dem Speicher die Ausführungszeit erhöht und dadurch die Funktionsweise des Systems verringert.
- Auch ist es, wenn Daten, verarbeitet durch den Coprozessor, und Flag-Informationen, verarbeitet durch den Coprozessor, in den Flag-Speicher-Registern und den allgemeinen Registern in dem Hauptprozessor gespeichert werden, notwendig für den Hauptprozessor, eine Pipeline- bzw. Fließbandverarbeitung zu verriegeln, bis die Speicherung der Daten und der Flag-Informationen in den allgemeinen Registern oder in den Flag-Speicher- Registern abgeschlossen ist, was die Ausführungszeit erhöht und dadurch die Funktionsweise des Systems verringert.
- Ähnlich wird es, wenn ein Unterbrechungsvorgang während der Verarbeitung des Coprozessors entsteht, da die Daten, die momentan verarbeitet werden, nicht gespeichert werden können, notwendig für den Coprozessor, erneut die Verarbeitung der Daten auszuführen, nachdem der Unterbrechungsvorgang abgeschlossen worden ist. Dies erhöht eine Ausführungszeit und reduziert dadurch die Funktionsweise des Systems.
- Schließlich wird es, wenn ein Aufgabenumschaltvorgang während der Verarbeitung des Coprozessors entsteht, da die Daten, die momentan verarbeitet werden, nicht gespeichert werden können, notwendig für den Coprozessor, die Verarbeitung der Aufgaben- Verarbeitung, ausgeführt vor dem Aufgaben-Umschalten, erneut auszuführen. Dies erhöht die Ausführungszeit und setzt dadurch die Funktionsweise des Systems herab.
- Zusätzlich offenbart die EP-A-0,526,911, die die Grundlage für den Oberbegriff des Anspruchs 1 der vorliegenden Erfindung bildet, ein System zum schnittstellenmäßigen Verbinden eines Prozessors mit einem Coprozessor unter Verwendung von Standard-Bus- Zyklen. Der Prozessor wird, unter Auftreffen auf seine Befehlsfolge eines Befehls, der ein bestimmtes Operationswortformat besitzt, ein Befehlswort, dem Operationswort folgend, zu einem bestimmten Coprozessor, der durch ein Coprozessor-Identitätsfeld in dem Operationswort bezeichnet ist, übertragen. Unter Decodieren des Befehlsworts wird der Coprozessor mit irgendeinem Satz von Antwort-Grundstrukturen antworten, die Funktionen definieren, die der Coprozessor zu dem Prozessor fordert, um sie beim Unterstützen des Befehls durch den Coprozessor durchzuführen. Die Schnittstelle dient für alle Funktionen, die der Coprozessor erfordern kann, einschließlich einer selektiven Vektorbildung zu geeigneten Ausnahme-Handhabungseinrichtungen.
- Auch offenbart die US-A-4,648,034 eine 32-Bit-Zentralverarbeitungseinheit (CPA), die eine Sechs-Stufen-Fließband-Architektur mit einem Befehls- und Daten-Cache-Speicher und Speicher-Management-Einheiten besitzt, alle gebildet als ein einzelner, integrierter Schaltungs- (IC) Chip und unter Verwendung eines bidirektionalen Datenbus. Die CPU enthält auch eine Einrichtung zum Kontrollieren der Betriebsweise eines separaten IC-Chip- Coprozessors, der dazu vorgesehen ist, spezifische Funktionen unter einer sehr hohen Geschwindigkeitsrate durchzuführen, herkömmlich bezeichnet als eine erweiterte Verarbeitungseinheit (Extended Processing Unit - EPU). Die EPU ist mit Schnittstellenschaltungen versehen, die Steuersignale erzeugen und sie zu der steuernden CPU kommunizieren.
- Die erste Aufgabe der vorliegenden Erfindung ist es, eine Informationsverarbeitungsvorrichtung zu schaffen, die, wenn Coprozessor-Befehle unter Verwendung von Daten in den allgemeinen Registern des Hauptprozessors ausgeführt werden oder wenn Daten, verarbeitet durch den Coprozessor, in den allgemeinen Registern des Hauptprozessors verarbeitet sind, keine Erhöhung der Ausführungszeit bewirkt.
- Die zweite Aufgabe der vorliegenden Erfindung ist es, eine Informationsverarbeitungsvorrichtung zu schaffen, für die eine Mehrzahl von Coprozessoren für unterschiedliche Arten einer Berechnung leicht entsprechend dem Erfordernis hinzugefügt oder entfernt werden kann.
- Die dritte Aufgabe der vorliegenden Erfindung ist es, eine Informationsverarbeitungsvorrichtung zu schaffen, die, wenn Coprozessor-Befehle unter Verwendung von Daten in den allgemeinen Registern des Hauptprozessors ausgeführt werden oder wenn Daten, verarbeitet durch den Coprozessor in den allgemeinen Registern des Hauptprozessors, gespeichert werden, eine Verarbeitung unter einer hohen Geschwindigkeit ohne eine Steuerung der Fließband Verarbeitung des Hauptprozessors ausführen kann.
- Die vierte Aufgabe der vorliegenden Erfindung ist diejenige, eine Informationsverarbeitungsvorrichtung zu schaffen, die, wenn der Coprozessor Befehle unter Verwendung von Flag-Informationen in den Flag-Speicherregistern des Hauptprozessors ausführt oder wenn Flag-Informationen, verarbeitet durch den Coprozessor, in dem allgemeinen Register des Hauptprozessors gespeichert werden, keine Erhöhung in der Ausführungszeit und keinen Abfall in der Funktionsweise verursacht.
- Die fünfte Aufgabe der vorliegenden Erfindung ist diejenige, eine Informationsverarbeitungsvorrichtung zu schaffen, die eine Erhöhung in den Kosten aufgrund einer erhöhten Schaltkreisgröße oder einer Erhöhung indem Energieverbrauch unterdrücken kann, wenn ein Coprozessor eine Verarbeitung unter Verwendung einer Mehrzahl von Operanden ausführt.
- Die sechste Aufgabe der vorliegenden Erfindung ist es, eine Informationsverarbeitungsvorrichtung zu schaffen, die eine Erhöhung in der Ausführungszeit und einen Abfall in der Funktionsweise unterdrücken kann, wenn ein Unterbrechungsvorgang auftritt, während der Coprozessor verarbeitet.
- Die siebte Aufgabe der vorliegenden Erfindung ist diejenige, eine Informationsverarbeitungsvorrichtung zu schaffen, die eine Erhöhung in der Ausführungszeit und einen Abfall in der Funktionsweise unterdrücken kann, wenn ein Aufgabenumschaltvorgang auftritt, während der Coprozessor verarbeitet.
- Die vorliegende Erfindung schafft eine Informationsverarbeitungsvorrichtung, die einen Hauptprozessor und einen Coprozessor enthält, die Daten entsprechend einem in einem Speicher gespeicherten Befehl verarbeiten, wobei die Informationsverarbeitungsvorrichtung umfasst:
- einen Befehlsbus, der dazu dient, den Befehl von dem Speicher zu dem Hauptprozessor und dem Coprozessor zu übertragen;
- eine Befehlserfassungseinrichtung, die in dem Hauptprozessor installiert ist, um einen Coprozessor-Berechnungsbefehl, bei dem es sich um einen Befehl handelt, der von dem Coprozessor ausgeführt werden sollte, aus allen von dem Speicher über den Befehlsbus empfangenen Befehlen zu erfassen;
- eine Operanden-Identifizierungseinrichtung, die in dem Hauptprozessor installiert ist und Quellenregister und Zielregister identifiziert, die durch Operanden in dem von der Befehlserfassungseinrichtung erfassten Befehl angegeben werden;
- eine Coprozessor-Befehlserfassungseinrichtung, die in dem Coprozessor installiert ist und parallel zu der Befehlserfassungseinrichtung in dem Hauptprozessor den Coprozessor- Berechnungsbefehl aus allen von dem Speicher über den Befehlsbus empfangenen Befehlen erfasst; und
- eine Coprozessor-Befehlsausführungseinrichtung, die in dem Coprozessor installiert ist und den von der Coprozessor-Befehlserfassungseinrichtung erfassten Coprozessor- Berechnungsbefehl unter Verwendung der von dem ersten Bus zugeführten Daten ausführt und das Berechnungsergebnis auf dem zweiten Bus zuführt,
- dadurch gekennzeichnet, dass die Vorrichtung weiterhin aufweist:
- einen ersten Bus, der dazu dient, Daten von dem Hauptprozessor zu dem Coprozessor zu. übertragen;
- einen zweiten Bus, der Daten von dem Coprozessor zu dem Hauptprozessor überträgt;
- einen Registersatz, der mit dem ersten Bus und dem zweiten Bus verbunden ist und eine Vielzahl von Registern enthält;
- eine Datenzuführeinrichtung, die in dem Hauptprozessor installiert ist und dem Coprozessor über den ersten Bus Daten von den identifizierten Quellenregistern zuführt; und
- eine Datenspeichereinrichtung, die in dem Hauptprozessor installiert ist und ein Berechnungsergebnis, das von dem Coprozessor über den zweiten Bus zugeführt wird, in dem identifizierten Zielregister speichert;
- wobei die Coprozessor-Befehlserfassungseinrichtung parallel zu der Befehlserfassungseinrichtung in dem Hauptprozessor arbeitet; und
- die Coprozessor-Befehlsausführungseinrichtung mit der Ausführung des Coprozessor- Berechnungsbefehls in einem Zyklus beginnt, der unmittelbar auf einen Zyklus folgt, in dem die Operanden-Identifizierungseinrichtung die Quellen- und Zielregister identifiziert.
- Mittels des vorstehenden Aufbaus ist es nicht länger notwendig, eine Datenübertragung über den Speicher auszuführen, wenn der Coprozessor Berechnungen unter Verwendung der Daten in der Datenspeichereinheit des Hauptprozessors vornimmt, oder wenn das Berechnungsergebnis des Coprozessors in der Datenspeichereinheit gespeichert wird, da die Daten direkt unter Verwendung des ersten und des zweiten Bus übertragen werden können, die zwischen dem Prozessor und dem Coprozessor vorgesehen sind. Dieser Aufbau ermöglicht die Realisierung einer Informationsverarbeitungsvorrichtung mit einer hohen Verarbeitungsleistung.
- Auch kann die Informationsverarbeitungsvorrichtung weiterhin aufweisen:
- eine Mehrzahl von Coprozessoren, wobei ein Coprozessor-Berechnungsbefehl, ausgeführt durch jeden Coprozessor, für einen unterschiedlichen Typ einer Berechnung dient, wobei der Befehlsbus dazu verwendet werden kann, einen Befehl, genommen von dem Speicher, zu der Coprozessor-Befehlserfassungseinheit in jedem Coprozessor zu übertragen, wobei der erste Bus dazu verwendet werden kann, Daten, zugeführt zu der Datenzuführeinheit, zu der Coprozessor-Befehlsausführungseinheit in jedem Coprozessor zu übertragen, wobei der zweite Bus dazu verwendet werden kann, ein Berechnungsergebnis. % der Coprozessor-Befehlsausführungseinheit in einem Coprozessor, der den Coprozessor- Berechnungsbefehl ausführt, zu der Datenspeichereinheit zu übertragen, und wobei die Befehlserfassungseeinheit Coprozessor-Befehle für jeden Coprozessor erfassen kann. Der vorstehende Aufbau ermöglicht die Realisierung der zweiten Aufgabe der vorliegenden Erfindung. Dies bedeutet, dass, durch simultanes Verbinden einer Mehrzahl von Coprozessoren, ein Programm, das eine Vielfalt von Coprozessor-Befehlen enthält, unter einer hohen Geschwindigkeit ausgeführt werden kann. Auch kann ein Verbinden oder Entfernen von Coprozessoren leicht entsprechend dem Erfordernis ausgeführt werden. In diesem Fall ist keine Änderung in der elektrischen Belastung der inneren Verdrahtung des Hauptprozessors ungeachtet der Anzahl von Coprozessoren vorhanden, so dass unterschiedliche Konfigurationen von Coprozessoren frei ausgewählt werden können. Insbesondere macht es dies sehr einfach, die Informationsverarbeitungsvorrichtung so auszulegen, dass sie durch einen Chip realisiert werden kann.
- Auch kann die Informationsverarbeitungsvorrichtung weiterhin aufweisen: eine Hauptprozessorstufen-Statusverwaltungseinrichtung, die eine Anzahl von Zyklen in einer Befehlsausführungsstufe des Hauptprozessors so verwaltet, dass sie einer Anzahl von Ausführungszyklen der Coprozessor-Befehlsausführungseinrichtung entspricht, wobei der Hauptprozessor eine Fließbandverarbeitung ausführen kann, die wenigstens eine Befehlsabrufstufe, eine Befehlsdecodierstufe und die Befehlsausführungsstufe einschließt, und der Coprozessor synchron zu dem Hauptprozessor arbeiten kann.
- Der vorstehende Aufbau ermöglicht die Realisierung der dritten Aufgabe der vorliegenden Erfindung. Dies bedeutet, dass durch Verwalten des Hauptprozessors und des Coprozessors so, dass die Anzahl von Zyklen in deren Ausführungstufen gleich sind, eine Störung in der Fließbandverarbeitung des Hauptprozessors vermieden werden kann. Dementsprechend kann ein nahtloser Übergang zwischen einer Ausführung von Coprozessor- Befehlen und einer Befehlsausführung durch den Hauptprozessor erreicht werden.
- Auch kann die Coprozessor-Befehlsausführungseinheit beim Erreichen eines abschließenden Zyklus während einer Ausführung des Coprozessor-Befehls die Hauptprozessorstufen-Statusverwaltungseinrichtung über ein Ende der Coprozessor-Befehlsausführung informieren und die Hauptprozessorstufen-Statusverwaltungseinrichtung beim Empfangen einer Benachrichtigung über das Ende der Coprozessor Befehlsausführung die Befehlsausführungsstufe während eines Ausführungszyklus beenden, indem die Benachrichtigung empfangen wird.
- Mittels des vorstehenden Aufbaus ermöglicht die Vorsehung einer Signalleitung zum Übertragen des Ausführungsabschluss-Signals die Vermeidung einer Störung in der Fließbandverarbeitung und das Erreichen einer übergangslosen Übertragung zu einer Coprozessor-Befehlsausführung mittels eines einfachen Aufbaus.
- Auch kann die Informationsverarbeitungsvorrichtung des Weiteren eine Hauptprozessor- Bestimmungseinrichtung umfassen, die eine Anzahl von Zyklen in der Ausführungsstufe eines Hauptprozessors entsprechend einer Art des Coprozessor-Berechnungsbefehls bestimmt, der von der Befehlserfassungseinrichtung erfasst wird, wobei die Hauptprozessorstufen-Statusverwaltungseinrichtung die Befehlsausführungsstufe über die Anzahl von Zyklen fortsetzen lässt, die durch die Hauptprozessor-Bestimmungseinrichtung bestimmt wird.
- Mittels des vorstehenden Aufbaus wird es nicht länger notwendig, eine Signalleitung zwischen dem Hauptprozessor und dem Coprozessor für das Abgeben eines Hinweises über das Ende einer Coprozessor-Befehlsausführung vorzusehen, so dass ein Verbindungsverfahren, das bevorzugt für die Verbindung einer Mehrzahl von Coprozessoren ist, erreicht werden kann.
- Auch kann die Informationsverarbeitungsvorrichtung weiterhin aufweisen: ein Hauptprozessor-Flag-Register, das eine Vielzahl von Flags speichert, die Zustände eines Berechnungsergebnisses anzeigen; einen ersten Flag-Bus, der dazu dient, von der Datenzuführeinrichtung zugeführte Flags zu der Coprozessor-Befehlsausführungseinrichtung zu übertragen; und einen zweiten Flag-Bus, der dazu dient, neue Flags von der Coprozessor- Befehlsverarbeitungseinrichtung zu dem Hauptprozessor-Flag-Register zu übertragen, wobei die Datenzuführeinrichtung Flags in dem Hauptprozessor-Flag-Register dem Coprozessor zusammen mit den Daten in den Quellenregistern zuführt, die Datenspeichereinrichtung die neuen Flags, die von dem Coprozessor übertragen werden, in dem Hauptprozessor-Flag-Register beim Speichern des Berechnungsergebnisses in den Zielregistern speichert und die Coprozessor-Befehlsausführungseinrichtung den Coprozessor- Berechnungsbefehl unter Verwendung von Flags und Daten ausführt, die durch die Datenzuführeinrichtung zugeführt werden, bevor ein neues Flag, das einen Zustand eines. Berechnungsergebnisses anzeigt, an die Datenspeichereinrichtung ausgegeben wird.
- Der vorstehende Aufbau ermöglicht die Realisierung der vierten Aufgabe der vorliegenden Erfindung. Dies bedeutet, dass, indem Flag-Informationen für eine Vielzahl von Flags direkt zwischen dem Hauptprozessor und dem Coprozessor über den ersten und den zweiten Flag-Bus in derselben Art und Weise wie die Operanden-Daten übertragen werden, eine Informationsverarbeitungsvorrichtung mit einer hohen Verarbeitungsleistung erreicht werden kann.
- Auch kann der Coprozessor einen Eingangs-Zwischenspeicher zum temporären Speichern der Daten, die auf dem ersten Bus geschickt sind, umfassen, und die Befehlserfassungseinrichtung kann einen ersten Übertragungsbefehl erfassen, der eine Datenübertragung von dem Hauptprozessor zu dem Coprozessor anzeigt, und die Operanden- Identifizierungseinrichtung kann Quellenregister, spezifiziert durch Operanden des erfassten, ersten Übertragungsbefehls, identifizieren, wobei die Datenzuführeinheit Daten in dem identifizierten Quellenregister für den ersten Übertragungsbefehl auf dem ersten Bus ausgeben kann, die Coprozessor-Befehlserfassungseinheit, beim Erfassen des ersten Übertragungsbefehls, die Daten auf dem ersten Bus in dem Eingangs-Zwischenspeicher speichern kann und die Coprozessor-Befehlsausführungseinheit die Daten in dem Eingangs-Zwischenspeicher beim Ausführen von Coprozessor-BerechnungsBefehlen verwenden kann, die mindestens drei Operanden erfordern.
- Der vorstehende Aufbau ermöglicht die Realisierung der fünften Aufgabe der vorliegenden Erfindung. Dies bedeutet, dass eine Informationsverarbeitungsvorrichtung, die zum Ausführen von Coprozessor-Befehlen bevorzugt ist, die drei oder mehr Operanden erfordert, realisiert werden kann. Auch können, wenn mit einer Vorrichtung verglichen wird, bei der eine Vielzahl von Teilen von Operanden-Daten unter Verwendung von Bussen, vorgesehen für diesen Zweck, zugeführt werden, Erhöhungen in den Kosten, aufgrund einer erhöhten Schaltkreisgröße und Erhöhung in dem Energieverbrauch, unterdrückt werden. Auch kann die Informationsverarbeitungsvorrichtung weiterhin aufweisen: einen Sicherungs-Zwischenspeicher, der einen Bereich zum Speichern von Daten aufweist; eine Sicherungs-Einrichtung, die in dem Coprozessor installiert ist und beim Empfangen eines Unterbrechungssignals die Daten in dem Eingangs-Zwischenspeicher und in dem Ausgangs-Zwischenspeicher in den Sicherungs-Zwischenspeicher hinein sichert; eine Rückführeinrichtung, die in dem Coprozessor installiert ist und beim Erfassen eines Befehls für eine Rückkehr von einer Unterbrechung die Daten in dem Sicherungs- Zwischenspeicher zu dem Eingangs-Zwischenspeicher und dem Ausgangs- Zwischenspeicher zurückführt; wobei der Hauptprozessor beim Empfangen einer Unterbrechungsanforderung ein Unterbrechungssignal an die Sicherungseinrichtung ausgibt und die Coprozessor-Befehlserfassungseinrichtung die Rückführeinrichtung beim Erfassen eines Befehls für die Rückkehr von einer Unterbrechung benachrichtigen kann.
- Der vorstehende Aufbau ermöglicht die Realisierung der sechsten Aufgabe der vorliegenden Erfindung. Dies bedeutet, dass dann, wenn ein Unterbrechungsvorgang auftritt, während der Coprozessor verarbeitet, Erhöhungen in der Ausführungszeit und ein Abfall in der Leistung unterdrückt werden können, so dass die vorliegende Informationsverarbeitungsvorrichtung schnell zu dem Unterbrechungsvorgang übergehen kann.
- Auch kann die Coprozessor-Befehlserfassungseinrichtung einen Befehl erfassen, um eine Aufgabenumschaltung entsprechend einer Aufgabennummer, die eine Aufgabe identifiziert, durchführen, wobei der Eingangs-Zwischenspeicher und der Ausgangs- Zwischenspeicher eine Vielzahl von Paaren von Speicherbereichen enthalten können, und wobei der Coprozessor des Weiteren eine Aufgabenverwaltungseinrichtung enthält, die eine Dateneingabe und -ausgabe für ein Paar von Speicherbereichen, die der Aufgabennummer in dem erfassten Aufgabenumschaltungsbefehl entspricht, zulässt und eine Dateneingabe und -ausgabe für alle anderen Paare von Speicherbereichen verbietet.
- Der vorstehende Aufbau ermöglicht die Realisierung der siebten Aufgabe der vorliegenden Erfindung. Dies bedeutet, dass dann, wenn eine Mehrzahl von Aufgaben durchgeführt wird, der vorstehende Aufbau ein Paar von Speicherbereichen in dem Eingangs- Zwischenspeicher und dem Eingangs-Zwischenspeicher und dem Ausgangs- Zwischenspeicher entsprechend jeder Aufgabe verwendet, so dass dann, wenn ein Aufgabenumschaltvorgang auftritt, Erhöhungen in der Ausführungszeit und ein Abfall in der Leistung bzw. Funktionsweise so unterdrückt werden können, das eine Hochgeschwindigkeitsaufgabenumschaltung durchgeführt werden kann.
- Diese und andere Aufgaben, Vorteile und Merkmale der Erfindung werden aus der nachfolgenden Beschreibung ersichtlich werden, die in Verbindung mit den beigefügten Zeichnungen vorgenommen wird, die eine spezifische Ausführungsform der Erfindung darstellen. In den Zeichnungen:
- Fig. 1 zeigt ein Blockdiagramm, das den Aufbau der Informationsverarbeitungsvorrichtung der ersten Ausführungsform der vorliegenden Erfindung darstellt;
- Fig. 2 zeigt eine Darstellung, die Beispiele von Coprozessor-Befehlen für einen Coprozessor 102 in derselben Ausführungsform darstellt;
- Fig. 3 zeigt ein Zeitdiagramm, das die Zustände einer Fließbandverarbeitung für die Informationsverarbeitungsvorrichtung derselben Ausführungsform darstellt;
- Fig. 4 zeigt ein Blockdiagramm, das den Aufbau der Informationsverarbeitungsvorrichtung der zweiten Ausführungsform der vorliegenden Erfindung darstellt;
- Fig. 5 zeigt ein Zeitdiagram, das die Zustände einer Fließbandverarbeitung eines Coprozessors 202 darstellt, wenn der Operand, gehalten durch das allgemeine Register 106, in den Datenverarbeitungseinheit-Eingangs-Zwischenspeicher 230 für die Informationsverarbeitungsvorrichtung derselben Ausführungsform geschrieben wird;
- Fig. 6 zeigt ein Zeitdiagramm, das die Zustände einer Fließbandverarbeitung des Ausführungsbefehls einer Coprozessor-Verarbeitungseinheit 211 darstellt, wenn ein Ausgangsergebnis in ein allgemeines Register 106 des Hauptprozessors und in einen Datenverarbeitungseinheit-Ausgangs-Zwischenspeicher 231 geschrieben wird, unter Verwendung des Operanden, gespeichert in dem allgemeinen Register 106 des Hauptprozessors und dem Operanden, gespeichert in dem Datenverarbeitungseinheit-Eingangs-Zwischenspeicher 230, für die Informationsverarbeitungsvorrichtung derselben Ausführungsform;
- Fig. 7 zeigt ein Zeitdiagramm, das die Zustände einer Fließbandverarbeitung für den Befehl darstellt, der die Daten, gespeichert in dem Datenverarbeitungseinheit-Ausgangs- Zwischenspeicher 231, in ein allgemeines Register 106 des Hauptprozessors schreibt, für die Informationsverarbeitungsvorrichtung derselben Ausführungsform;
- Fig. 8 zeigt ein Zeitdiagramm, das das Auftreten einer Unterbrechung zu dem Hauptprozessor 201 und die Operation, die die Daten in dem Datenverarbeitungs-Einheit-Eingangs- Zwischenspeicher 230 des Coprozessors die Daten in dem Zwischenspeicher 232 für eine Datenspeicherung für die Informationsverarbeitungsvorrichtung der zweiten Ausführungsform der vorliegenden Erfindung sichert;
- Fig. 9 zeigt ein Zeitdiagramm, das die Zustände der Fließbandverarbeitung des Unterbrechungsrückführbefehls für die Informationsverarbeitungsvorrichtung der zweiten Ausführungsform der vorliegenden Erfindung darstellt;
- Fig. 10 zeigt ein Blockdiagramm, das den Aufbau der Informationsverarbeitungsvorrichtung der dritten Ausführungsform der vorliegenden Erfindung darstellt; und
- Fig. 11 zeigt eine Figur, die ein Beispiel eines LSI-Layouts für die Informationsverarbeitungsvorrichtung der vorliegenden Erfindung darstellt.
- Fig. 1 zeigt ein Blockdiagramm, das den Aufbau der Informationsverarbeitungsvorrichtung der ersten Ausführungsform der vorliegenden Erfindung darstellt. Die Informationsverarbeitungsvorrichtung kann dahingehend angesehen werden, dass sie aus einem Prozessor 101, einem Coprozessor 102 und einem Speicher 103 aufgebaut ist, wobei, wie in der Figur dargestellt ist, diese Elemente durch den Datenverarbeitungseinheit- Eingangsbus 124, einen Datenverarbeitungseinheit-Ausgangsbus 125, einen Befehlszuführbus 126, einen Datenbus 127, einen Datenbus 128, einen Flag-Datenbus 130 und einen Flag-Datenbus 131 verbunden sind.
- Der Prozessor 101 ist aus einem Decodierer 104, einer Steuerschaltung 105, einem allgemeinen Register 106, einem Flag-Speicherregister 108, einem Befehlsregister 112, einem Mikrobefehlsregister 1131 einer Datenverriegelung 114, einem Registerschreib- Zwischenspeicher 116, einem Speicherschreib-Zwischenspeicher 117, einer Coprozessor- Datenverriegelung 118, einer Statusmangementeinheit 129, einer Fließbandverriegelung 143, Treibern 121-123 und 132-135, einer ersten Datenverarbeitungseinheit 140 und einer zweiten Datenverarbeitungseinheit 141 aufgebaut. Der Prozessor 101 verarbeitet die Befehle in dem Speicher 103 mittels eines fünfstufigen Fließbandvorgangs, aufgebaut aus einer Befehlsabrufstufe, einer Befehlsdecodierstufe, einer ersten Ausführungsstufe, einer zweiten Ausführungsstufe und einer Schreibstufe. Die Befehle in dem Speicher 103 umfassen die Befehle für den Prozessor 101 (nachfolgend bezeichnet als "Prozessor- Befehle") und Befehle für den Coprozessor 102 (nachfolgend bezeichnet als "Coprozessor-Befehle"). Wenn der Prozessor 101 einen Coprozessor-Befehl in der Befehlsdecodierstufe decodiert, empfängt er die Quellendaten, spezifiziert durch die Operanden in dem Befehl, von dem allgemeinen Register 106, und führt diese Daten zu dem Coprozessor 102 zu, wobei der Coprozessor 102 seine Berechnungsergebnisse in dem allgemeinen Register 106 speichert. Hierbei wird der Prozessor 101 als ein 32-Bit-Prozessor eingestellt, und dort, wo es nicht deutlich ansonsten angegeben ist, wird die Busbreite auf 32 Bits eingestellt.
- Der Coprozessor 102 ist aus einem Decodierer 109, einer Steuerschaltung 110, einem Befehlsregister 119, einem Mikrobefehlsregister 120, einer ersten bis dritten Fließbandverriegelung 160-162, einer ersten bis vierten Coprozessor-Verarbeitungseinheit 150-153 und einer ersten bis dritten Fließbandverriegelung 160-162 aufgebaut. Der Coprozessor 102 ist einer einer Mehrzahl von Coprozessoren, die Coprozessor-Vorgänge, wie beispielsweise Multiplikationen, Divisionen, Summenbildung von Produkten, Bitfeld-Berechnungen, Folge- Berechnungen, Warteschlangen-Operationen, Contextumschaltvorgänge und Filtervorgänge ausführt und der andere Coprozessoren umfasst, die, in Abhängigkeit von der Verwendung, die Arten von Berechnungen, die angefordert sind, unterstützen können. In der vorliegenden Ausführungsform ist die ewünschte Art einer Berechnung als Multiplikation eingestellt, wobei sie mittels eines Fließbandvorgangs ausgeführt wird, der aus einer Befehlsdecodierstufe und einer Ersten-Vierten-Ausführungsstufen aufgebaut ist. Hierzu sind Beispiele von Coprozessor-Befehlen, die eine Multiplikation anzeigen, in Fig. 2 dargestellt. In Fig. 2 zeigt "MULQ Dm, Dn" an, dass die Multiplikation des Quellenregisters Dm (eine 32-Bit ganze Zahl mit hinzugefügtem Code) und des Quellenregisters Dn (eine 32-Bit ganze Zahl mit hinzugefügtem Code), wobei die unteren 32-Bits des Ergebnisses (eine 64- Bit-Figur) in dem Bestimmungsregister Dn gespeichert werden und wobei die oberen 32- Bits des Ergebnisses (eine 64-Bit Figur) in dem Multiplikationsregister MR in dem allgemeinen Register 106 gespeichert werden. In derselben Figur zeigt "MULQ imm8, Dn" die Multiplikation eines 32-Bit Werts "Dn" an, gegeben durch die Erweiterung von 8-Bit unmittelbaren Daten, auf die ein Code angewandt wird, und das Quellenregister Dn (eine 32-Bit ganze Zahl mit hinzugefügtem Code), wobei das Ergebnis in dem Dn und MR gespeichert wird. Hierbei sind auch nMULQ imm16, Dn" und nMULQ imm32, Dn" dieselben.
- Der Speicher 103 speichert ein Programm, das aus Prozessor-Befehlen und Coprozessor- Befehlen und den Daten, verwendet durch den Prozessor 101 und den Coprozessor 102, aufgebaut ist.
- Der Decodierer 104 in der Befehlsdecodierstufe decodiert die Prozessor-Befehle und die Coprozessor-Befehle, abgerufen von dem Speicher 103, über den Befehlszuführbus 126 und das Befehlsregister 112, und gibt Mikrobefehle zur Realisierung des abgerufenen Befehls aus. Genauer gesagt gibt, beim Decodieren eines Coprozessor-Befehls (zum Beispiel in Fig. 2, wenn die oberen vier Bits des Befehlscodes "FH" sind), der Decodierer 104 (1) einen Mikrobefehl, der das Quellenregister liest, angegeben durch den Operanden in dem Coprozessor-Befehl, (2) einen Mikrobefehl, der die Daten, gelesen von dem Quellenregister, in der Coprozessor-Datenverriegelung 118 verriegelt, (3) einen Mikrobefehl, der die Flag-Daten in dem Flag-Speicherregister 108 besitzt, ausgegeben über den Treiber 134 zu dem Flag-Datenbus 130, (4) einen Mikrobefehl, der NOP (keine Operation) zu der ersten Datenverarbeitungseinheit 114 und der zweiten Datenverarbeitungseinheit 141 hin anzeigt, (5) einen Mikrobefehl, der ein Berechnungsergebnis des Coprozessors 102 in dem Bestimmungsregister, angezeigt durch einen Operanden, speichert, und (6) einen Mikrobefehl, der Flag-Daten von dem Coprozessor 102 in dem Flag-Speicherregister 108 über den Treiber 135 speichert, aus. Von diesen werden die ersteren drei Mikrobefehle direkt zu der Steuerschaltung 105 ausgegeben und führen nicht zu dem Mikrobefehlsregister 113, während die verbleibenden Mikrobefehle zu der Steuerschaltung 105 über das Mikrobefehlsregister 113 ausgegeben werden. Dementsprechend werden die ersten drei Mikrobefehle zuerst während der Befehlsdecodierstufe ausgeführt. Es sollte hier angemerkt werden, dass diese Mikrobefehle so eingestellt werden können, wie dies in (1) bis (6) vorstehend dargestellt ist, oder alternativ können sie so eingestellt werden, dass ein Mikrobefehl aus einer Mehrzahl von Mikrobefehlen aufgebaut ist.
- Der Decodierer 104 stellt auch eine Fortführungszahl entsprechend dem Typ eines Coprozessor-Befehls ein und gibt die Fortführungszahl zu einer Status-Verwaltungseinheit 129 aus. Hierbei drückt eine Fortführungszahl die Differenz zwischen der Zahl von Ausführungsstufen für den Prozessor 101 und der Zahl von Ausführungsstufen für den Coprozessor 102 aus. Dementsprechend zeigt dies die Zahl von Ausführungsstufen des Leerlaufzustands (NOP) an, die zu dem Prozessor 101 während einer Befehlsausführung durch den Coprozessor hinzugefügt werden sollte. In der vorliegenden Ausführungsform sind die Zahl von Ausführungsstufen für den Coprozessor 102 und die Zahl für die Ausführungsstufen für den Prozessor 102 jeweils 4 und 2, so dass dann, wenn der Decodierer 104 ein Decodierergebnis dahingehend findet, dass der Coprozessor-Befehl ein Multiplikationsbefehl ist (zum Beispiel in Fig. 2, wenn die oberen 8 Bits in dem Befehlscode F6H, F9H und FBH sind), der Decodierer 104 die Fortführungszahl auf 2 einstellt.
- Die Steuerschaltung 105 in dem Prozessor 101 wandelt die Mikrobefehle, eingegeben entweder direkt von dem Decodierer 104 oder indirekt von dem Decodierer 104 über das Mikrobefehlsregister 113, in verschiedene Arten von Steuersignalen um, ebenso wie dies die Schaltung ist, die die Fließbandverarbeitung steuert. Wenn die vorstehenden Befehle (1), (2) und (3), die das Decodierergebnis eines Coprozessor-Befehls sind, eingegeben werden, gibt die Steuerschaltung 105 ein Lesesignal für das angezeigte Register in dem allgemeinen Register 106, ein Steuersignal zum Öffnen des Treibers 122, ein Steuersignal, damit die Coprozessor-Datenverriegelung 118 eine Verriegelung durchführt, und ein Steuersignal zum Öffnen des Treibers 134 in der Decodierstufe, die der Ausführungsstufe des abgerufenen Befehls vorausgeht, aus. In derselben Art und Weise gibt, wenn die Befehle (5) und (6) eingegeben werden, die Steuerschaltung 105 ein Steuersignal, damit das allgemeine Register 106 eine Verriegelung durchführt, ein Schreibsignal für ein Register, spezifiziert durch das allgemeine Register 106 und ein Steuersignal zum Öffnen des Treibers 135, aus.
- Das allgemeine Register 106 ist aus Registern D0-D3, die jeweils 32-Bit-Daten erhalten, und ein Multiplikationsregister MR, das die oberen 32 Bits eines Multiplikationsergebnisses hält, aufgebaut.
- Das Befehlsregister 112 wird durch eine Steuerschaltung 105 so gesteuert, um einen Befehl, abgerufen von dem Speicher 103, über den Befehlszufuhrbus 126 zu dem Decodierer 104 auszugeben. Zu jedem Zeitpunkt, zu dem eine Umschaltung der Befehlsabrufstufe zu der Befehlsdecodierstufe vorhanden ist, schaltet dieser Ausgang zu dem folgenden Befehl um.
- Das Flag-Speicherregister 108 speichert verschiedene Arten von Flags, die einen Prozessorstatus darstellen, wobei das Flag, erzeugt durch die zweite Datenverarbeitungseinheit 141 des Prozessors 101, und das Flag, erzeugt durch die vierte Coprozessorverarbeitungseinheit 153 des Coprozessors 102, beide durch die Steuerung, ausgeführt durch die Steuerschaltung 105 reflektiert werden.
- Das Mikrobefehlsregister 113 gibt Mikrobefehle von dem Dekodierer 104 zu der Steuerschaltung 105 entsprechend einer Steuerung durch die Steuerschaltung 105 aus. Zu jedem Zeitpunkt, zu dem eine Umschaltung von der Befehlsdecodierstufe zu der ersten Ausführungsstufe erfolgt, schaltet dieser Ausgang zu einem folgenden Befehl (oder einem Satz von Befehlen) um.
- Die Datenverriegelung 114 gibt Operanden-Daten, gelesen von dem allgemeinen Register 106, über den Datenverarbeitungseinheit-Eingangsbus 124 zu der ersten Datenverarbeitungseinheit 140 gemäß einer Steuerung durch die Steuerschaltung 105 aus. Zu jedem Zeitpunkt, zu dem eine Umschaltung von der Befehlsdecodierstufe zu der ersten Ausführungsstufe erfolgt, schaltet dieser Ausgang zu einem folgenden Befehl um.
- Der Registerschreib-Zwischenspeicher 116 gibt Daten von dem Datenverarbeitungseinheit-Ausgangsbus 125 zu dem allgemeinen Register 106 nach dem Abschluss der zweiten Ausführungsstufe, gemäß einer Steuerung durch die Steuerschaltung 105, aus.
- Der Speicherschreib-Zwischenspeicher 117 gibt Daten auf den Datenbus 128 von dem Datenverarbeitungseinheit-Ausgangsbus 125 nach dem Abschluss der zweiten Ausführungsstufe, gemäß einer Steuerung durch die Steuerschaltung 105, aus.
- Die Coprozessor-Datenverriegelung 118 gibt Registerdaten zu dem Coprozessor 102 über den Datenverarbeitungseinheit-Eingangsbus 124 entsprechend einer Steuerung durch die Steuerschaltung 105 aus, wenn dort eine Umschaltung von der Befehlsdecodierstufe zu der ersten Ausführungsstufe vorhanden ist.
- Der Treiber 121 besitzt ein Gatter, das entsprechend einer Steuerung durch die Steuerschaltung 105 geöffnet wird, und ist ein Treiber zum Übertragen der Daten in dem Speicher 103 auf dem Datenverarbeitungseinheit-Eingangsbus 124 über den Datenbus 127.
- Der Treiber 122 besitzt ein Gatter, das entsprechend einer Steuerung durch die Steuerschaltung 105 geöffnet wird, und ist ein Treiber zum Übertragen der Daten von dem allgemeinen Register 106 auf dem Datenverarbeitungseinheit-Eingangsbus 124.
- Der Treiber 123 besitzt ein Gatter, das entsprechend einer Steuerung durch die Steuerschaltung 105 geöffnet wird, und ist ein Treiber zum Übertragen der Daten von der zweiten Datenverarbeitungseinheit 141 auf dem Datenverarbeitungseinheit-Ausgangsbus 125.
- Der Datenverarbeitungseinheit-Eingangsbus 124 wird dazu verwendet, Daten von dem allgemeinen Register 106 innerhalb des Prozessors 101 und von dem Speicher 103 zu der ersten Datenverarbeitungseinheit 140 und zu der Coprozessor-Datenverriegelung 118 zu übertragen, ebenso wie Daten von der Coprozessor-Datenverriegelung 118 zu der ersten Coprozessor-Verarbeitungseinheit 150 in dem Coprozessor 102 zu übertragen. Es sollte insbesondere hier angemerkt werden, dass der Datenverarbeitungseinheit-Eingangsbus 124 die Daten in dem allgemeinen Register 106 des Prozessors 101 zu der ersten Coprozessor-Verarbeitungseinheit 150 in dem Coprozessor 102 über die Coprozessor- Datenverriegelung 118 überträgt. In der vorliegenden Ausführungsform besitzt dieser Bus zwei 32-Bit-Breiten. Der Datenverarbeitungseinheit-Ausgangsbus 125 wird dazu verwendet, die Ausführungergebnisse von der zweiten Datenverarbeitungseinheit 141 in dem Prozessor 101 und von der vierten Coprozessor-Verarbeitungseinheit 153 in dem Coprozessor 102 zu dem Register Schreib-Zwischenspeicher 116 und dem Speicherschreib- Zwischenspeicher 117 in dem Prozessor 101 zu übertragen. Es ist hier anzumerken, dass der Datenverarbeitungseinheit-Ausgangsbus 125 ein Bus zum Übertragen von Daten, verarbeitet durch die zweite Datenverarbeitungseinheit 141 des Prozessors 101 und die vierte Coprozessor-Verarbeitungseinheit 153 des Coprozessors 102 zu dem allgemeinen Register 106 und dem Speicher 103 ist. In der vorliegenden Ausführungsform besitzt dieser Bus zwei 32-Bit-Breiten. Der Befehlszuführungsbus 126 ist ein Bus zum Übertragen von Befehlen, gespeichert in dem Speicher 103, zu dem Befehlsregister 112 in dem Prozessor 101 und dem Befehlsregister 119 in dem Coprozessor 102.
- Der Datenbus 127 überträgt Daten, gespeichert in dem Speicher 103, auf dem Datenverarbeitungseinheit-Eingangsbus 124 über den Treiber 121.
- Der Datenbus 128 überträgt Daten von dem Datenverarbeitungseinheit-Ausgangsbus 125 zu dem Speicher 103 über den Speicherschreibzwischenspeicher 117.
- Die Status-Verwaltungseinheit 129 verwaltet alle Zustände der Fließbandstufen des Prozessors 101 und managt, ob zu einem nachfolgendem Prozess in einem Zyklus fortzuschreiten ist, der einer momentanen Stufe folgt, oder ob mit der momentanen Stufe fortzufahren ist. Genauer gesagt speichert die Status-Verwaltungseinheit 129 Flag- Informationen, die einen Zustand einer Fließbandstufe darstellen. Diese Flag- Informationen stellen entweder "Ausführungszustand der nächsten Stufe", was ein Fortschreiten zu einem folgenden Prozess in dem Zyklus anzeigt, der einer momentanen Stufe folgt, oder "Fortführungszustand der momentanen Stufe", was eine Fortführung einer momentanen Stufe in einem folgenden Zyklus anzeigt, dar. Wenn ein Prozessor-Befehl durch den Decodierer 104 decodiert wird, stellen die Flag-Informationen "Ausführungszustand der nächsten Stufe", wobei eine Befehlsausführung in zwei Stufen abgeschlossen wird, die aus einer ersten Ausführungsstufe und einer zweiten Ausführungsstufe aufgebaut sind, dar. Wenn ein CoProzessor-Befehl durch den Decodierer 104 decodiert wird, informiert der Decodierer 104 die Statusverwaltungseinheit 129 über die Folgezahl, wobei, in der zweiten, nächsten Ausführungsstufe, die Flag-Informationen "Fortführungszustand der momentanen Stufe" für eine Zahl von Stufen gleich zu dieser Folgezahl darstellen. Zum Beispiel stellen, wenn über die Folgezahl 2 informiert ist, die Flag-Informationen "Ausführungszustand der nächsten Stufe" in der ersten Ausführungsstufe dar, bevor "Fortführungszustand der momentanen Stufe" dargestellt wird, dann "Fortführungszustand der momentanen Stufe", dann "Ausführungszustand der nächsten Stufe" in der zweiten Ausführungsstufe, dargestellt wird. In dem dies so vorgenommen wird, verwaltet die Statusverwaltungseinheit 129 die Zahl von Ausführungsstufen des Prozessors 101, so dass sie mit der Zahl von Ausführungsstufen des Coprozessors 102 übereinstimmt.
- Der Flag-Datenbus 130 ist ein Bus zum Übertragen der Flag-Daten in dem Flag- Speicherregister 108 zu dem Coprozessor 102. Die Bit-Breite dieses Bus kann entsprechend der Zahl von Flags eingestellt werden.
- Der Flag-Datenbus 131 ist ein Bus zum Übertragen von Flag-Daten, verarbeitet durch die vierte Coprozessor-Verarbeitungseinheit 153, zu dem Flag-Speicherregister 108 in dem Prozessor 101. Die Bit-Breite dieses Bus kann entsprechend der Zahl von Flags eingestellt werden.
- Der Treiber 132 besitzt ein Gatter, das entsprechend einer Steuerung durch die Steuerschaltung 105 geöffnet wird, und ist ein Treiber zum Übertragen von Flag-Daten von dem Flag-Speicherregister 108 zu der ersten Datenverarbeitungseinheit 140.
- Der Treiber 133 besitzt ein Gatter, das entsprechend einer Steuerung durch die Steuerschaltung 105 geöffent wird, und ist ein Treiber zum Übertragen von Flag-Daten von der zweiten Datenverarbeitungseinheit 141 zu dem Flag-Speicherregister 108.
- Der Treiber 134 besitzt ein Gatter, das entsprechend einer Steuerung durch die Steuerschaltung 105 geöffnet wird, und ist ein Treiber zum Übertragen von Flag-Daten von dem Flag-Speicherregister 108 zu dem Coprozessor 102.
- Der Treiber 135 besitzt ein Gatter, das entsprechend einer Steuerung durch die Steuerschaltung 105 geöffnet wird, und ist ein Treiber zum Übertragen von Flag-Daten von dem Coprozessor 102 zu dem Flag-Speicherregister 108.
- Die erste Datenverarbeitungseinheit 140 führt eine Datenverarbeitung während der ersten Ausführungsstufe in dem Prozessor 101 gemäß einer Steuerung durch die Steuerschaltung 105 aus. Wenn ein Coprozessor-Befehl durch den Decodierer 104 decodiert wird, wird zuerst die Datenverarbeitungseinheit 140 auf einen Leerlaufzustand (NOP) gemäß einer Steuerung durch die Steuerschaltung 105 eingestellt.
- Die zweite Datenverarbeitungseinheit 141 führt eine Datenverarbeitung während der zweiten Ausführungsstufe für den Prozessor 101 aus. Wenn ein Coprozessor-Befehl durch den Decodierer 104 decodiert wird, wird die zweite Datenverarbeitungseinheit 141 auf einen Leerlaufzustand (NOP) gemäß einer Steuerung durch die Steuerschaltung 105 eingestellt.
- Die Fließband-Verriegelung 143 öffnet ihre Verriegelung, wenn eine Umschaltung von der ersten Ausführungsstufe zu der zweiten Ausführungsstufe vorhanden ist, und überträgt von der ersten Datenverarbeitungseinheit 140 zu der zweiten Datenverarbeitungseinheit 141 gemäß einer Steuerung durch die Steuerschaltung 105 beim Ausführen einer Fließbandsteuerung.
- Wie für den Coprozessor 102 in Fig. 1 decodiert, während der Befehlsdecodierstufe, der Decodierer 109 Befehle, abgerufen von dem Speicher 103 über den Befehlszuführungsbus 126 und das Befehlsregister 112. Wenn das Decodierergebnis ein Coprozessor- Befehl ist, gibt der Decodierer 109 einen Mikrobefehl zum Realisieren des Berechnungsinhalts, dargestellt durch den OP-Code des Coprozessor-Befehls, aus. Es sollte hier angemerkt werden, dass es nicht notwendig ist, einen Mikrobefehl auszugeben, der die Register anzeigt, die für das Lesen und Schreiben von Operanden-Daten in dem Coprozessor- Befehl verwendet werden sollen. Dies kommt daher, dass die Lese- und Schreiboperationen der Operanden-Register durch den Prozessor 101 ausgeführt werden. Die Steuerschaltung 110 in dem Prozessor wandelt die Mikrobefehle, eingegeben von dem Decodierer 109, über das Mikro-Befehls-Register 120, in verschiedene Arten von Steuersignale um, ebenso wie dies die Schaltung ist, die eine Fließbandverarbeitung für den Coprozessor 102 steuert.
- Das Befehlsregister 119 gibt einen Befehl, abgerufen von dem Speicher 103, über den Befehlszuführungsbus 126 zu dem Decodierer 109 aus. Zu jedem Zeitpunkt, zu dem eine Umschaltung von der Befehlsabrufstufe zu der Befehlsdecodierstufe vorhanden ist, schaltet dieser Ausgang zu einem folgenden Befehl um.
- Das Mikrobefehlsregister 120 gibt Mikrobefehle von dem Decodierer 109 zu der Steuerschaltung 110 aus, wenn dort eine Umschaltung von der Befehlsdecodierstufe zu der ersten Ausführungsstufe vorhanden ist, und zwar gemäß einer Steuerung durch die Steuerschaltung 110 beim Ausführen einer Fließband-Steuerung. Zu jedem Zeitpunkt, zu dem eine Umschaltung von der Befehlsdecodierstufe zu der ersten Ausführungsstufe vorhanden ist, schaltet dieser Ausgang zu einem folgenden Befehl (oder einem Satz von Befehlen) um.
- Die erste Coprozessor-Verarbeitungseinheit 150 führt eine Datenverarbeitung in der ersten Ausführungsstufe des Coprozessors 102 durch.
- Die zweite Coprozessor-Verarbeitungseinheit 151 führt eine Datenverarbeitung in der zweiten Ausführungsstufe des Coprozessors 102 durch.
- Die dritte Coprozessor-Verarbeitungseinheit 152 führt eine Datenverarbeitung in der dritten Ausführungsstufe des Coprozessors 102 durch.
- Die vierte Coprozessor-Verarbeitungseinheit 153 führt eine Datenverarbeitung in der vierten Ausführungsstufe des Coprozessors 102 durch.
- Die erste Fließbandverriegelung 160 öffnet deren Verriegelung, wenn dort eine Umschaltung von der ersten Ausführungsstufe zu der zweiten Ausführungsstufe vorhanden ist, und überträgt von der ersten Coprozessor-Verarbeitungseinheit 150 zu der zweiten Coprozessor-Verarbeitungseinheit 151 gemäß einer Steuerung durch die Steuerschaltung 110 beim Ausführen einer Fließbandsteuerung.
- Die zweite Fließbandverriegelung 161 öffnet deren Verriegelung, wenn dort eine Umschaltung von der zweiten Ausführungsstufe zu der dritten Ausführungsstufe vorhanden ist, und überträgt von der zweiten Coprozessor-Verarbeitungseinheit 151 zu der dritten Coprozessor-Verarbeitungseinheit 152 gemäß einer Steuerung durch die Steuerschaltung 110 beim Ausführen einer Fließbandsteuerung.
- Die dritte Fließbandverriegelung 162 öffnet deren Verriegelung, wenn dort eine Umschaltung von der dritten Ausführungsstufe zu der vierten Ausführungsstufe vorhanden ist, und überträgt von der dritten Coprozessor-Verarbeitungseinheit 152 zu der vierten Coprozessor-Verarbeitungseinheit 153 gemäß einer Steuerung durch die Steuerschaltung 110 beim Ausführen einer Fließbandsteuerung.
- Das Folgende ist eine Erläuterung der Informationsverarbeitungsvorrichtung der ersten Ausführungsform der vorliegenden Erfindung, die so aufgebaut ist, wie dies vorstehend beschrieben ist.
- Fig. 3 zeigt ein Zeitdiagramm, das die Zustände einer Fließbandverarbeitung darstellt, wenn, für den Coprozessor 102, eine Operation, die Daten von dem allgemeinen Register 106 und von dem Flag-Speicherregister 108 des Prozessors 101 verarbeitet und dann die Daten speichert, die das Verarbeitungsergebnis in dem allgemeinen Register 106 in dem Flag-Speicherregister 108 sind, ausgeführt wird.
- In dieser Fig. 1 ist "IF1" eine Stufe, bei der ein Coprozessor-Befehl durch den Prozessor 101 aufgesucht wird. "DP1" ist eine Stufe, bei der ein Coprozessor-Befehl durch den Prozessor 101 decodiert wird. "EXP1" und "EXP2" sind jeweils die erste und die zweite Ausführungsstufe (oder NOP) für einen Coprozessor-Befehl in dem Prozessor 101. "WB1" ist eine Stufe, wo ein Berechnungsergebnis des Coprozessor 102 durch den Prozessor 101 geschrieben wird. "DE1" ist eine Stufe, wo eine Coprozessor-Befehl durch den Coprozessor 102 decodiert wird. "EXE1", "EXE2", "EXE3" und "EXE4" sind jeweils die erste, die zweite, die dritte und die vierte Ausführungsstufe für einen Coprozessor-Befehl in dem Coprozessor 102. "NXT-IF" ist eine Stufe, wo ein Befehl, der nach dem Befehl kommt, der durch "IF1" abgerufen ist, durch den Prozessor 101 abgerufen wird. "NXT-DP" ist eine Stufe, wo ein nächster Befehl durch den Prozessor 101 decodiert wird. "NXT-EXP1" und "NXT-EXP2" sind jeweils die erste und die zweite Ausführungsstufe für einen nächsten Befehl in dem Prozessor 101.
- In der Zeitperiode 1 gibt der Speicher 103 einen Befehl auf den Befehlszuführungsbus 126 aus, der zu dem Prozessor 101 und dem Coprozessor 102 in der Befehlsabrufstufe (IF1) des Prozessors 101 führt.
- Beim Umschalten von einer Zeitperiode 1 zu einer Zeitperiode 2 schreitet die Steuerschaltung 105 in dem Prozessor 101 von (IF1) zu (DP1) fort und öffnet entsprechend das Befehlsregister 112 des Prozessors 101. In derselben Art und Weise schreitet die Steuerschaltung 110 in dem Coprozessor 102 von (IF1) zu (DE1) fort, und öffnet dementsprechend das Befehlsregister 119 des Coprozessors 102.
- In der Zeitperiode 2 gibt der Speicher 103 den nächsten Befehl auf den Befehlszuführungsbus 126 aus, der zu dem Prozessor 101 und dem Coprozessor 102 in der Befehlsabrufstufe führt (NXT-IF1).
- In der Befehlsdecodierstufe (DP1) empfängt der Decodierer 104 in dem Prozessor 101 den Befehl, nachdem das Befehlsregister 112 geöffnet ist, und decodiert dann den Befehl.
- Dann verwendet die Steuerschaltung 105 die Mikrobefehle, ausgegeben durch den Decodierer 104, öffnet den Treiber 122 so, dass die Daten in dem allgemeinen Register 106 auf dem Datenverarbeitungseinheit-Eingangsbus 124 plaziert werden, und öffnet den Treiber 134, so dass die Flag-Informationen in dem Flag-Speicherregister 108 auf dem Flag- Datenbus 130 plaziert werden.
- In der Befehlsdecodierstufe (DE1) des Coprozessors 102 empfängt der Decodierer 109 in dem Coprozessor 102 den Befehl, nachdem das Befehlsregister 119 geöffnet ist, und decodiert dann den Befehl.
- Beim Umschalten von der Zeitperiode 2 zu der Zeitperiode 3 schreitet die Steuerschaltung 105 in dem Prozessor 101 von (NXT-IF) zu (NXT-DP) fort und öffnet dementsprechend das Befehlsregister 112.
- Die Steuerschaltung 105 in dem Prozessor 101 öffnet, beim Fortschreiten von der Fließbandstufe (DPI) zu (EXP1), das Mikrobefehlsregister 113, die Datenverriegelung 114 und die Coprozessor-Datenverriegelung 118. Ähnlich öffnet die Steuerschaltung 110 in dem Coprozessor 102, beim Fortschreiten von der Fließbandstufe (DE1) zu (EXE1), das Mikrobefehlsregister 120. Wenn einmal das Mikrobefehlsregister 113 geöffnet worden ist, empfängt die Steuerschaltung 105 in dem Prozessor 101 die Mikrobefehle, decodiert durch den Decodierer 104 in der Befehlsdecodierstufe (DPI). Ähnlich empfängt, wenn einmal das Mikrobefehlsregister 120 geöffnet worden ist, die Steuerschaltung 110 in dem Coprozessor 102 die Mikrobefehle, decodiert durch den Decodierer 109 des Coprozessors 102 in der Befehlsdecodierstufe (DE1).
- In der Zeitperiode 3 empfängt der Decodierer 104 in dem Prozessor 101 den Befehl, nachdem das Befehlsregister 112 geöffnet ist, und decodiert dann den Befehl in der Befehlsdecodierstufe (NXT-DP) des Prozessors 101.
- In der ersten Ausführungsstufe (EXP1) des Prozessors 101 führt die erste Datenverarbeitungseinheit 140 in dem Prozessor 101 keine Datenverarbeitung aus (NOP).
- In der ersten Ausführungsstufe (EXE1) des Coprozessors 102 führt die erste Coprozessor- Verarbeitungseinheit 150 in dem Coprozessor 102 eine Datenverarbeitung aus.
- Beim Umschalten von der Zeitperiode 3 zu der Zeitperiode 4 öffnet die Steuerschaltung 105 des Prozessors 101, beim Umschalten der Fließbandstufen von (NXT-DP) zu (NXT- EXP), das Mikrobefehlsregister 113. Nachdem das Mikrobefehlsregister 113 geöffnet worden ist, empfängt die Steuerschaltung 105 des Prozessors 101 dann die Mikrobefehle, decodiert durch den Decodierer 104, in der (NXT-DP) Befehlsdecodierstufe.
- Beim Umschalten der Fließbandstufen von (EXP1) zu (EXP2) öffnet die Steuerschaltung 105 des Prozessors 101 eine Fließband-Verriegelung 143 des Prozessors 101.
- Beim Umschalten der Fließbandstufen von (EXE1) zu (EXE2) öffnet die Steuerschaltung 110 des Coprozessors 102 die erste Fließband-Verriegelung 160 des Coprozessors 102.
- In der Zeitperiode 4 führt die erste Datenverarbeitungseinheit 140 in dem Prozessor 101 eine erste Datenverarbeitung eines nächsten Befehls in der ersten Befehlsausführungsstufe (NXT-EXP1) des Prozessors 101 aus.
- In der zweiten Befehlsausführungsstufe (EXP2) des Prozessors 101 führt die zweite Datenverarbeitungseinheit 141 keine Datenverarbeitung aus (NOP).
- Die Statusverwaltungseinheit 129 ändert von der Ausführungsstufe für die nächste Stufe zu der Fortführungsstufe für die momentane Stufe und überträgt ein Fortführungssignal für die momentane Stufe zu der Steuerschaltung 105.
- In der zweiten Befehlsausführungsstufe (EXE2) des Coprozessors 102 führt die zweite Coprozessor-Verarbeitungseinheit 151 des Coprozessors 102 eine Datenverarbeitung aus.
- Beim Umschalten von der Zeitperiode 4 zu der Zeitperiode 5 öffnet die Steuerschaltung 105 in dem Prozessor 102 nicht eine Fließbandverriegelung 143, da das Fortführungssignal für die momentane Stufe von der Statusverwaltungseinheit 129 ausgeschickt wurde.
- Dementsprechend wird der Zustand der momentanen Stufe fürdie nächste Stufe fortgeführt.
- Als nächstes öffnet die Steuerschaltung 110 in dem Coprozessor 102 die zweite Fließbandverriegelung 161 beim Umschalten der Fließbandstufe von (EXE2) zu (EXE3).
- In der Zeitperiode 5 fährt die erste Befehlsausführungsstufe (NXT-EXP1) für den Prozessor 101 fort, so dass die erste Datenverarbeitungseinheit 140 in dem Prozessor 101 mit der ersten Datenverarbeitung des nächsten Befehls fortfährt, wie dies vorstehend beschrieben ist.
- Da die Stufe in der zweiten Befehlsausführungsstufe (EXP2) des Prozessors 101 fortgeführt wird, führt die zweite Datenverarbeitungseinheit 141 in dem Prozessor 101 keine Datenverarbeitung aus (NOP).
- In der dritten Befehlsausführungsstufe (EXE3) des Coprozessors 102 führt die dritte Coprozessor-Verarbeitungseinheit 152 des Coprozessors 102 eine Datenverarbeitung aus. Beim Umschalten von der Zeitperiode 5 zu der Zeitperiode 6 öffnet die Steuerschaltung 105 in dem Prozessor 101 nicht eine Fließbandverriegelung 143, da das Fortführungssignal der momentanen Stufe von der Statusverwaltungseinheit 129 geschickt wurde (NOP).
- Als nächstes öffnet, in dem Coprozessor 102, die Steuerschaltung 110 die dritte Fließbandverriegelung 162 beim Umschalten der Fließbandstufe von (EXE3) zu (EXE4).
- In der Zeitperiode 6 fährt die erste Befehlsausführungsstufe (NXT-EXP1) für den Prozessor 101 fort, so dass die erste Datenverarbeitungseinheit 140 in dem Prozessor 101 mit der ersten Datenverarbeitung des Ausführungsbefehls für den nächsten Befehl fortfährt, wie dies vorstehend beschrieben ist.
- Da die Stufe in der zweiten Befehlsausführungsstufe (EXP2) des Prozesses 101 fortgeführt wird, führt die zweite Datenverarbeitungseinheit 141 in dem Prozessor 101 keine Datenverarbeitung aus (NOP).
- Indem die (EXP2) Stufe durch die zweite Datenverarbeitungseinheit 141 für 3 Stufen durchgeführt wurde (mit anderen Worten durch Erweiterung dieser Stufe um 2 Stufen), besitzt die Statusverwaltungseinheit 129 die Stufe des Prozesses 101 für eine Zeitperiode fortgeführt, die gleich zu der Fortführungszahl ist, und zwar vor einem Umschalten von "Fortführungsstufe für die momentane Stufe" zu "Ausführungszustand der nächsten Stufe" und Beenden der Übertragung des Fortführungssignals der momentanen Stufe zu der Steuerschaltung 105 des Prozessors 101. In der vierten Befehlsausführungsstufe (EXE4) des Coprozessors 102 führt die vierte Coprozessor-Verarbeitungseinheit 153 des Coprozessors 102 eine Datenverarbeitung aus und gibt so Ergebnisdaten auf den Datenverarbeitungseinheit-Ausgangsbus 125 und Flag-Informationen auf dem Flag-Datenbus 131 aus. Die Steuerschaltung 110 in dem Coprozessor 102 öffnet dann den Treiber 154 in dem Coprozessor 102, so dass die Daten, verarbeitet durch die vierte Coprozessor- Verarbeitungseinheit 153, auf dem Datenverarbeitungseinheit-Ausgangsbus 125 ausgegeben werden.
- Beim Umschalten von der Zeitperiode 6 zu der Zeitperiode 7 öffnet die Steuerschaltung 105 in dem Prozessor 101 eine Fließbandverriegelung 143 in dem Prozessor 101 beim Umschalten der Fließbandstufen von (NXT-EXP1) zu (NXT-EXP2).
- Die Steuerschaltung 105 in dem Prozessor 101 öffnet den Treiber 135 beim Umschalten der Fließbandstufen von (EXP2) zu (WB1), so dass die Flag-Informationen von dem Flag- Datenbus 131 zu dem Flag-Speicherregister 108 übertragen werden.
- In der Zeitperiode 7 führt, in der zweiten Befehlsausführungsstufe (NXT-EXP2) des Prozessors 101, die zweite Datenverarbeitungseinheit 141 die zweite Datenverarbeitung der nächsten Befehlsausführung aus.
- In der Schreibstufe (WB1) des Prozessors 101 empfängt das allgemeine Register 106 Daten von dem Datenverarbeitungseinheit-Ausgangsbus 125 und speichert diese Daten. Ähnlich empfängt das Flag-Speicherregister 108 Flag-Informationen, die von dem Coprozessor 102 zu dem Prozessor 101 geschickt sind, auf dem Flag-Datenbus 131 und speichert die Flag-Informationen.
- Auf diese Art und Weise kann der Coprozessor 102 direkt die Daten in dem allgemeinen Register 106 bei der Berechnung verwenden, so dass der Vorgang bis zu dem Zeitpunkt geschwindigkeitsmäßig erhöht werden kann, der von der Übertragung der Daten über den Speicher angenommen wird, der nicht länger notwendig für diese Technik ist. Hierbei kann, unter Bezugnahme auf die Flags in dem Flag-Speicherregister 108 des Prozessors 101, die Geschwindigkeit in derselben Art und Weise erhöht werden. Zusätzlich wird die Ausführungszeit aufgrund der Vermeidung von Daten-Ungleichmäßigkeiten während einer Übertragung und aufgrund des Vermeidens einer Störung in der Fließbandverarbeitung des Prozessors 101 und des Coprozessors 102 verringert.
- Hierbei können, wenn der Coprozessor 102 nicht benötigt wird, der Datenverarbeitungseinheit-Eingangsbus 124 und der Datenverarbeitungseinheit-Ausgangsbus 125, die zum Verbinden des Prozessors 101 und des Coprozessors 102 verwendet werden, ein Teil des Befehlszuführungsbus 126, der für die Verbindung des Speichers 103 mit dem Coprozessor 102 verwendet wird, des Flag-Datenbus 130, der für eine Verbindung des Prozessors 101 mit dem Coprozessor 102 verwendet wird, und des Flag-Datenbus 131, der für eine Verbindung des Coprozessors 102 mit dem Prozessor 101 verwendet wird, alle getrennt bzw. unterbrochen werden.
- Auch ist es, verglichen mit dem Beispiel nach dem Stand der Technik, nicht länger notwendig, dass der Coprozessor Daten verarbeitet, um die Daten, die verarbeitet werden sollen, zu dem Coprozessor über den Speicher zu übertragen, was bedeutet, dass die Ausführungszeit verringert werden kann.
- Weiterhin bestimmt, in dieser ersten Ausführungsform, der Decodierer 104 in dem Prozessor 101 eine fortlaufende Zahl gemäß einem Typ eines Coprozessor-Befehls, allerdings ist es auch für den Prozessor 101 möglich, mit irgendeiner der Datenverarbeitungseinheiten des Coprozessors 102 über eine Berechnungsbeendigungs-Signalleitung verbunden zu werden, was, durch Übertragen eines Berechnungsbeendigungssignals, die Zustandsfortführung durch die Statusverwaltungseinheit 129 beenden kann. Alternativ kann der CoProzessor-Befehl selbst so eingestellt werden, um Informationen zu umfassen, die eine Differenz in Fließbandstufen in den Prozessor 101 und dem Coprozessor 102 darstellen, so dass der Decodierer 104 die Statusmangementeinheit 129 über die Zustandsfortführungszahl von dieser Information informiert.
- Es sollte hier angemerkt werden, dass die vorstehende Erläuterung den Fall beschrieben hat, bei dem der Prozessor 101 mit nur einem Coprozessor 102 verbunden ist, obwohl das System so aufgebaut werden kann, dass der Prozessor 101 mit einer Mehrzahl von unterschiedlichen Typen von Coprozessoren 102 verbunden wird. Zum Beispiel können dort, wo der Prozessor 101 mit einem Coprozessor zum Ausführen einer Multiplikation mit einem Coprozessor zum Ausführen einer Summe von Produkten und mit einem Coprozessor zum Ausführen einer Division verbunden ist, dann fünf Busse, aufgebaut aus dem Befehlszuführungsbus 126, dem Datenverarbeitungseinheit-Eingangsbus 124, dem Datenverarbeitungseinheit-Ausgangsbus 125, dem Flag-Datenbus 130 und dem Flag- Datenbus 131, zwischen dem Prozessor 101 und jedem Coprozessor vorgesehen werden.
- In diesem Fall ist es für das Bit-Muster in dem Befehlscode der Coprozessor-Befehle notwendig, dass sie einem einzigartigen Muster für jeden der Coprozessoren zugeordnet werden. Der Prozessor 101 kann dann die Zuführung und Speicherung von Registerdaten und Flags auf derselben Art und Weise wie bei der vorliegenden Ausführungsform für irgendeinen der Coprozessoren, unter Verwendung der vorstehend erwähnten Busse, ausführen. Hierbei sind diese Coprozessoren so ausgelegt, um Coprozessor-Befehle in derselben Art und Weise auszuführen, wie der Coprozessor 102 in der vorliegenden Ausführungsform, nur dann, wenn das Decodierergebnis einen Coprozessor-Befehl für diesen bestimmten Coprozessor anzeigt.
- Auch beschrieb die vorliegende Ausführungsform den Fall, bei dem der Prozessor 101 eine zweistufige Fließbandverarbeitung ausführt und der Coprozessor 102 einen vierstufigen Fließbandvorgang ausführt, obwohl der vorliegende Aufbau nicht auf solche Werte beschränkt ist. Wenn der Coprozessor 102 einen b-Stufen-(1≤b)-Fließbandvorgang ausführt und der Prozessor 101 einen c-Stufen-(1 ≤ c ≤ b)-Fließbandvorgang ausführt, kann eine Zustandsverwaltungseinheit an der c-th-Stufe vorgesehen werden, wobei diese Stufenverwaltungseinheit über die Fortführungszahl b-c durch den Decodierer informiert wird und die c-th Stufenfortführungsausführung für eine Zahl von Stufen gleich zu der Fortführungszahl besitzt. Hierbei kann, wenn die Zahl von Ausführungsstufen des Prozessors größer als die Zahl für den Coprozessor ist (was bedeutet c > b), die Fortführungszahl auf Null gesetzt werden. In diesem Fall nimmt, an dem Punkt, wo eine Zahl c von Ausführungsstufen abgeschlossen worden ist, der Prozessor das Berechnungsergebnis von dem Coprozessor, wobei der Coprozessor das Berechnungsergebnis von dem punkt ausgiebt, wo eine Zahl b von Ausführungsstufen abgeschlossen worden ist, bis der Prozessor eine Zahl c von Ausführungsstufen abschließt und so das Ausführungsergebnis erhält.
- Weiterhin wurde ein Befehlszuführbus 126 dahingehend beschrieben, dass er mit der Eingangsseite eines Befehlsregisters 112 des Prozessors 101 und mit der Eingangsseite eines Befehlsregisters 119 des Coprozessors 102 verbunden ist, obwohl es auch möglich ist, einen Befehlszuführbus vorzusehen, der nur die Eingangsseite des Befehlsregisters 112 des Prozessors 101 mit dem Speicher 103 verbindet, wobei ein anderer Bus dazu verwendet wird, die Ausgangsseite des Befehlsregisters 112 des Prozessors 101 mit der Eingangsseite des Decodierers 109 des Coprozessors 102 zu verbinden. Auf diese Art und Weise kann das Befehlsregister 119 weggelassen werden und die elektrische Belastung des Befehlszuführbus kann verringert werden.
- Hierbei kann, wenn die vorliegende Informationsverarbeitungsvorrichtung aus einem LSI aufgebaut ist, dann, wie in Fig. 11 dargestellt ist, das Layout des Prozessors 101 in eine Steuermoduleinheit, zusammengesetzt aus einem Decodierer 104 und einer Steuerschaltung 105, und einer Datenpfadeinheit, zusammengesetzt aus einer ersten Datenverarbeitungseinheit 140, einer zweiten Datenverarbeitungseinheit 141, einem Datenbus (Datenverarbeitungseinheit-Eingangsbus 124, einem Datenverarbeitungseinheitausgangsbus 125, einen Befehlszuführbus 126), und dergleichen, klassifiziert werden. Das Layout des Coprozessors 102 kann dann in eine Steuermoduleinheit, zusammengesetzt aus einem Decodierer 109 und einer Steuerschaltung 110, und eine Datenpfadeinheit, zusammengesetzt aus ersten bis vierten Coprozessor-Verarbeitungseinheiten 150-153, einem Datenbus und dergleichen, klassifiziert werden. In diesem Layout wird immer eine Abhängigkeit für die Bit-Unterteilung (Bit-Breite) des Datenbus in einer Seite des Layouts der Datenpfadeinheiten vorhanden sein, so dass, da der Datenbus gemeinsam zwischen dem Prozessor und zwischen dem Coprozessor in der vorliegenden Informationsverarbeitungsvorrichtung geteilt wird, neue Coprozessoren für unterschiedliche Typen einer Berechnung leicht hinzugefügt werden können, ungeachtet davon, ob der Coprozessor 102 bereits vorhanden ist oder nicht. Auf diese Art und Weise kann eine Informationsverarbeitungsvorrichtung mit einer Mehrzahl von Coprozessoren, die jeweils unterschiedliche Funktionen haben, leicht auf einem Chip erzielt werden.
- Fig. 4 zeigt ein Blockdiagramm, das den Aufbau der Informationsverarbeitungsvorrichtung der zweiten Ausführungsform der vorliegenden Erfindung darstellt. Es kann gesehen werden, dass die Informationsverarbeitungsvorrichtung aus einem Prozessor 201, einem Coprozessor 202, einem Speicher 203, einem Zwischenspeicher 232 für gesicherte Daten und einem Treiber 259 aufgebaut ist. Es ist hier anzumerken, dass die Aufbauelemente, die dieselben wie solche in der ersten Ausführungsform sind, mit denselben Bezugszeichen bezeichnet sind, und deren Erläuterung ist weggelassen worden, so dass sich die nachfolgende Erläuterung auf die Unterschiede zu der ersten Ausführungsform konzentrieren wird.
- In Fig. 4 ist der Prozessor 201 so eingestellt, dass er einen 4-stufigen Fließbandvorgang ausführt, der aus einer Befehlsabrufstufe, einer Befehlsdecodierstufe, einer Befehlsausführungsstufe und einer Schreibstufe ausgeführt ist, wobei die Ausführungsstufe zur einfacheren Erläuterung dahingehend angesehen wird, dass sie nur aus einer Stufe aufgebaut ist. Die Hauptunterschiede zu der ersten Ausführungsform liegen in dem Punkt, der sich auf die Ausführung eines Übertragungsbefehls zum Übertragen von Daten in dem allgemeinen Register 106 zwischen dem Prozessor 201 und dem Coprozessor 202 bezieht, und in dem Punkt, der sich auf einer Verzweigung zu einem Unterbrechungsvorgang nach Einrichten einer Antwort einem Hinweis zu dem Coprozessor 202 bei dem Beginn eines Unterbrechungsvorgangs bezieht. Als Folge umfasst der Aufbau weiterhin eine Unterbrechungsanforderungssignalleitung 240, eine Unterbrechungssignalleitung 241 und eine Abschluss-Signalleitung 242. In dieser Ausführungsform kann der Datenverarbeitungseinheit- Ausgangsbus 125, der aus zwei 32-Bit-Bussen in der ersten Ausführungsform aufgebaut ist, aus nur einem 32-Bit-Bus aufgebaut sein. Der Coprozessor 202 ist so eingestellt, dass er einen 4-stufigen Fließbandvorgang ausführt, aufgebaut aus einer Befehlsabrufstufe, einer Befehlsdecodierstufe, einer Befehlsausführungsstufe und einer Schreibstufe, wobei die Ausführungsstufe zur einfacheren Erläuterung dahingehend angesehen wird, dass sie nur eine einzelne Stufe ist. Die Hauptunterschiede zu der ersten Ausführungsform liegen in dem Punkt, der sich auf die Ausführung von Coprozessor-Übertragungsbefehlen bezieht, und in dem Punkt, der sich auf die Aufnahme eines Hinweises über den Start eines Unterbrechungsvorgangs von dem Prozessor 201, dem Halten des Coprozessor-Befehls, der eine Mitten-Ausführung ist und Daten sichert, und die Übertragung einer Antwort zu dem Prozessor 201, einen Bereitschaftszustand zeigend, bezieht. Als Folge umfasst der Aufbau zusätzlich einen Datenverarbeitungseinheit-Eingangszwischenspeicher 230, einen Datenverarbeitungseinheit-Ausgangszwischenspeicher 231, einen Zwischenspeicher 232 für gesicherte Daten und Treiber 250, 251 und 253-259 um diese herum, wobei diese durch den Datenverarbeitungseinheit-Eingangszwischenspeicher-Sicherungsbus 243 und den Datenverarbeitungseinheit-Ausgangszwischenspeicher-Rückführbus 245 verbunden sind.
- Hierbei bestehen die Coprozessor-Übertragungsbefehle in der vorliegenden Ausführungsform aus Befehlen für eine Datenübertragung von dem allgemeinen Register 106 innerhalb des Prozessors 201 zu dem Datenverarbeitungseinheit- Eingangszwischenspeicher 230 innerhalb des Coprozessors 202 und auf Befehl für eine Datenübertragung von dem Datenverarbeitungseinheit-Ausgangszwischenspeicher 231 zu dem allgemeinen Register 106 innerhalb des Prozessors 201. Diese sind in einem Format ausgedrückt, wie beispielsweise dasjenige, das nachfolgend gezeigt ist, das die Quelle und die Bestimmung des Übertragungsbefehls ("MOVE" Befehl) spezifiziert, wie beispielsweise der Datenverarbeitungseinheit-Eingangszwischenspeicher 230 (abgekürzt ex_inBUF) und der Datenverarbeitungseinheit-Ausgangszwischenspeicher 231 (abgekürzt ex_outBUF).
- MOV Dn, ex_inbuf: Datenübertragung von dem Register Dn zu ex_inBUF
- MOV ex_outBUF, Dn: Datenübertragung von ex_outBUF zu Register Dn.
- In der vorliegenden Ausführungsform ist der Coprozessor 202 als Prozessor eingestellt, der Coprozessor-Befehle ausführt, die Berechnungen spezifizieren, die 3 oder mehr Teile von Operanden-Daten umfassen, wie beispielsweise die Berechnung aus 3 Elementen Dn*Dm+D1. Indem dies so vorgenommen wird, werden die Coprozessor- Übertragungsbefehle dazu verwendet, einen Teil der Operanden-Daten D1 für die Berechnung mit 3-Elementen zu dem Coprozessor 202 zuvor zu übertragen. In derselben Art und Weise werden, wenn sich das berechnete Ergebnis der Berechnung aus 3-Elementen auf eine mehrfache Wortlänge erhöht, Übertragungsbefehle dazu verwendet, einen Teil des berechneten Ergebnisses zu dem Prozessor 201 zu übertragen.
- Die Unterbrechungsanforderungssignalleitung 240 in dem Prozessor 201 überträgt Unterbrechungsanforderungen von außerhalb des Prozessors 201 zu der Steuerschaltung 205 des Prozessors 201.
- Die Unterbrechungsanforderung-Signalleitung 241 überträgt Unterbrechungsanforderungen von der Steuerschaltung 205 des Prozessors 201 zu der Steuerschaltung 210 des Coprozessors 202.
- Die Abschluss-Signalleitung 242 überträgt Abschluss-Signale für die Verarbeitung während einer Unterbrechungsanforderung und der Verarbeitung für den Abschluss einer Unterbrechungsverarbeitung von der Steuerschaltung 210 des Coprozessors 202 zu der Steuerschaltung 205 des Prozessors 201.
- Der Decodierer 204 ist mit den Funktionen eines Decodierers 104 in der ersten Ausführungsform ausgestattet, unterscheidet sich allerdings darin, dass er eine Funktion zum Decodieren von Coprozessor-Übertragungsbefehlen besitzt. Genauer gesagt gibt, wenn, als ein Ergebnis eines Decodierens, das allgemeine Register 106 als die Quelle eines Übertragungsbefehls (MOV Dn, ex_inBUF) spezifiziert wird und der Datenverarbeitungseinheit Eingangszwischenspeicher 230 als die Bestimmung spezifiziert wird, der Decodierer 204 die folgenden Mikrobefehle aus:
- (P1.1) Lese Daten von dem Register Dn.
- (P1.2) Öffne den Treiber 122, verriegele Daten, gelesen von dem Quellenregister, unter Verwendung der Coprozessor-Datenverriegelung 118.
- Wenn das Ergebnis eines Decodierens (MOV ex_outBUF, Dn) ist, gibt der Decodierer 204 die folgenden Mikrobefehle aus:
- (P2.9) Verriegele Daten von dem Datenverarbeitungseinheit-Ausgangsbus 125 unter Verwendung des Registerschreibzwischenspeichers 116.
- (P2.2) Schreibe Daten in den Registerschreibzwischenspeicher 116 in dem Zwischenspeicher Dn.
- Wenn das Ergebnis eines Decodierens eine Rückkehr von einem Unterbrechungsvorgang ist (abgekürzt als (rti Befehl)), gibt der Decodierer 204 den folgenden Mikrobefehl aus:
- (P3.1) Führe den Vorgang zurück (eine Rückführung zu einer Rückführadresse).
- Die Steuerschaltung 205 ist mit den Funktionen der Steuerschaltung 105 in der ersten Ausführungsform ausgestattet, unterscheidet sich allerdings darin, dass sie eine Funktion besitzt, dass dann, wenn eine Unterbrechungsanforderung von außerhalb des Prozessors 201 über die Überbrechungsanforderungssignalleitung 240 empfangen wird, die Steuerschaltung 210 des Coprozessors 202 über die Unterbrechungssignalleitung 241 und zum Kontrollieren einer Verzweigung zu einem Unterbrechungsvorgang beim Empfangen einer Antwort von dem Coprozessor 202 über die Abschluss-Signalleitung 242 informiert wird, was anzeigt, dass die Vorbereitung abgeschlossen worden ist. Sie gibt auch Steuersignale entsprechend zu jeder der Mikrobefehle, die vorstehend als (P1.1), (P1.2), (P2.1), (P2.1) und (P3.1) angegeben sind, aus.
- Die Datenverarbeitungseinheit 207 führt die Verarbeitung in der Ausführungsstufe des Prozessors 201 durch.
- Der Decodierer 209 in dem Coprozessor 202 ist mit Funktionen eines Decodierers 109 in der ersten Ausführungsform ausgestattet, unterscheidet sich allerdings dahingehend, dass er eine Funktion zum Decodieren von Coprozessor-Übertragungsbefehlen und Unterbrechungsrückführprogrammen besitzt. Genauer gesagt gibt, wenn das Decodierergebnis (MOV Dn, ex_inBUF) ist, der Decodierer die folgenden Mikrobefehle aus:
- (E1.1) Öffne den Treiber 251, gebe die Daten von dem Datenverarbeitungseinheit- Eingangsbus 124 zu dem Datenverarbeitungseinheit-Eingangszwischenspeicher 230 aus.
- (E1.2) Verriegele Daten, übertragen von dem Datenverarbeitungseinheit-Eingangsbus 124 über den Treiber 251 in dem Datenverarbeitungseinheit-Eingangszwischenspeicher 230.
- Wenn das Decodierergebnis nun (MOV ex outBUF, Dn) ist, gibt der Decodierer die folgenden Mikrobefehle aus:
- (E2.1) Öffne den Treiber 257, gebe Daten in dem Datenverarbeitungseinheit- Ausgangszwischenspeicher 231 zu dem Datenverarbeitungseinheit-Ausgangsbus 125 aus.
- (E2.2) Schreibe Daten von dem Registerschreib-Zwischenspeicher 116 in das Register Dn.
- Wenn das Decodier-Ergebnis ein Rückführbefehl von einem Unterbrechungsvorgang (rti Befehl) ist, gibt der Decodierer die folgenden Mikrobefehle aus:
- (E4.1) Schreibe gesicherte Daten in den Zwischenspeicher 232 für gesicherte Daten und öffne den Treiber 259.
- (E4.2) Öffne den Treiber 251, schreibe in den Datenverarbeitungseinheit- Eingangszwischenspeicher 230.
- (E4.3) Schreibe andere, gespeicherte Daten in den Zwischenspeicher 232 für gesicherte Daten und öffne den Treiber 259.
- (E4.4) Öffne den Treiber 256, schreibe in den Datenverarbeitungseinheit- Ausgangszwischenspeicher 231.
- (E4.5) Gebe eine Ausgabe an der Abschluss-Signalleitung 242 an.
- Die Steuerschaltung 210 in dem Coprozessor 202 ist mit den Funktionen einer Steuerschaltung 210 in der ersten Ausführungsform ausgestattet, unterscheidet sich allerdings darin, dass sie auch eine Funktion zum Ausführen eines Sicherungsvorgangs in den Zwischenspeicher 232 für gesicherte Daten hinein bei dem Beginn eines Unterbrechungsvorgangs besitzt. Genauer gesagt führt, wenn ein Unterbrechungssignal über die Ünterbrechungssignalleitung 241 empfangen wird, die Steuerschaltung 210 die folgenden Steuervorgänge aus:
- (E3.1) Öffne den Treiber 258, führe eine Datenausgabe von dem Datenverarbeitungseinheit-Eingangszwischenspeicher 230 zu dem Datenverarbeitungseinheit-Ausgangsbus 125 zu.
- (E3.2) Lasse Daten auf den Datenverarbeitungseinheit-Ausgangsbus 125 in den Zwischenspeicher 232 für gesicherte Daten schreiben.
- (E3.3) Öffne den Treiber 257, lasse Daten in dem Datenverarbeitungseinheit- Ausgangszwischenspeicher 231 zu dem Datenverarbeitungseinheit-Ausgangsbus 125 ausgeben.
- (E3.4) Lasse Daten auf dem Datenverarbeitungseinheit-Ausgangsbus 125 in den Zwischenspeicher 232 für gesicherte Daten schreiben.
- (E3.5) Lasse ein Signal auf der Abschluss-Signalleitung 242 ausgeben.
- Die Steuerschaltung 210 gibt auch verschiedene Arten von Steuersignalen aus, die den vorstehenden während Befehlen (E1.1), (E1.2), (E2.1), (E2.2), (E1.1), (E4.1), (E4.1), (E4.3) und (E4.5) entsprechen.
- Die Coprozessor-Verarbeitungseinheit 211 führt die Coprozessor-Befehle in der Ausführungsstufe des Coprozessors 202 aus.
- Der Datenveracbeitungseinheit-Eingangszwischenspeicher 230 ist ein Zwischenspeicher, der, damit die Coprozessor-Verarbeitungseinheit 211 unter Verwendung einer Mehrzahl von Operanden verarbeitet, die Operanden, die von dem Prozessor 201 oder dem Coprozessor 202 über den Datenverarbeitungseinheit-Eingangsbus 124 übertragen werden sollen, speichert.
- Der Datenverarbeitungseinheit-Ausgangszwischenspeicher 231 ist ein Zwischenspeicher, der, damit eine Mehrzahl von Teilen von Daten durch die Coprozessor- Verarbeitungseinheit 211 verarbeitet wird und dann ausgegeben wird, die Operanden speichert, die zu dem Prozessor 201 oder dem Coprozessor 202 über den Datenverarbeitungseinheit-Ausgangsbus 125 übertragen werden sollen.
- Der Zwischenspeicher 232 für gesicherte Daten ist ein Zwischenspeicher zum Sichern der Daten in dem Datenverarbeitungseinheit-Eingangszwischenspeicher 230 und dem Datenverarbeitungseinheit-Ausgangszwischenspeicher 231 des Coprozessors 202, und ist, in dieser Ausführungsform, aus einem FIFO (zuerst eingegeben, zuerst ausgegeben) Speicher, der eine Kapazität für zwei 32-Bit-Teile an Daten besitzt, aufgebaut. Der Zwischenspeicher 232 für gesicherte Daten ist so dargestellt, dass er extern zu sowohl dem Prozessor 201 als auch dem Coprozessor 202 vorhanden ist, obwohl er innerhalb entweder des Prozessors 201 oder des Coprozessors 202 vorgesehen sein kann. Ähnlich ist der Zwischenspeicher 232 für gesicherte Daten so dargestellt, das er mit sowohl dem Prozessor 201 als auch dem Coprozessor 202 über den Datenverarbeitungseinheit-Ausgangsbus 125 verbunden ist, obwohl er mit entweder dem Datenverarbeitungseinheit-Eingangsbus 124, dem Datenbus 127 von dem Speicher 103 zu dem Prozessor 201 oder dem Datenbus 128 von dem Prozessor 201 zu dem Speicher 103 verbunden sein kann.
- Der Datenverarbeitungseinheit-Eingangszwischenspeicher-Sicherungsbus 243 ist ein Bus zum Sichern der Daten von dem Datenverarbeitungseinheit-Eingangszwischenspeicher 230 des Coprozessors 202 in den Zwischenspeicher 232 für gesicherte Daten, wo eine Unterbrechungsanforderung vorhanden ist.
- Der Datenverarbeitungseinheit-Eingangszwischenspeicher-Rückführbus 244 ist ein Bus zum Rückführen der Daten, gespeichert in dem Zwischenspeicher 232 für gesicherte Daten, zu dem Datenverarbeitungseinheit-Eingangszwischenspeicher 230 des Coprozessors 202, wenn der Unterbrechungsvorgang abgeschlossen ist. Der Datenverarbeitungseinheit- Ausgangszwischenspeicher-Rückführbus 245 ist ein Bus zum Rückführen der Daten, gespeichert in dem Zwischenspeicher 232 für gesicherte Daten, zu dem Datenverarbeitungseinheit-Ausgangszwischenspeicher 231 des Coprozessors 202, wenn der Unterbrechungsvorgang abgeschlossen ist.
- Der Treiber 250 wird entsprechend einem Steuersignal von der Steuerschaltung 205 geöffnet und überträgt Daten von dem Datenverarbeitungseinheit-Eingangsbus 124 zu der Coprozessor-Verarbeitungseinheit 211.
- Der Treiber 251 wird entsprechend einem Steuersignal von der Steuerschaltung 205 geöffnet und überträgt Daten von dem Datenverarbeitungseinheit-Eingangsbus 124 zu dem Datenverarbeitungseinheit-Eingangszwischenspeicher 230.
- Der Treiber 253 wird entsprechend einem Steuersignal von der Steuerschaltung 205 geöffnet und überträgt Daten von dem Datenverarbeitungseinheit-Eingangszwischenspeicher 230 zu der Coprozessor-Verarbeitungseinheit 211.
- Der Treiber 254 wird entsprechend einem Steuersignal von der Steuerschaltung 205 geöffnet und überträgt Daten von der Coprozessor-Verarbeitungseinheit 211 zu dem Datenverarbeitungseinheit-Ausgangsbus 125.
- Der Treiber 255 wird entsprechend einem Steuersignal von der Steuerschaltung 205 geöffnet und Daten von der Coprozessor-Verarbeitungseinheit 211 zu dem Datenverarbeitungseinheit-Ausgangszwischenspeicher 231.
- Der Treiber 256 wird entsprechend einem Steuersignal von der Steuerschaltung 205 geöffnet und überträgt Daten von dem Datenverarbeitungseinheit-Eingangsbus 124 zu dem Datenverarbeitungseinheit-Ausgangszwischenspeicher 231.
- Der Treiber 257 wird entsprechend einem Steuersignal von der Steuerschaltung 205 geöffnet und überträgt Daten von dem Datenverarbeitungseinheit- Ausgangszwischenspeicher 231 zu dem Datenverarbeitungseinheit-Ausgangsbus 125.
- Der Treiber 258 wird entsprechend einem Steuersignal von der Steuerschaltung 205 geöffnet und überträgt Daten von dem Datenverarbeitungseinheit-Eingangszwischenspeicher 230 auf dem Datenverarbeitungseinheit-Ausgangsbus 125.
- Der Treiber 259 wird geöffnet, wenn die gesicherten Daten, gespeichert in dem Zwischenspeicher 232 für gesicherte Daten, zurückgeführt werden, und überträgt Daten von dem Zwischenspeicher 232 für gesicherte Daten auf dem Datenverarbeitungseinheit- Eingangsbus 124.
- Nachfolgend ist eine Erläuterung der Betriebsweise der Informationsverarbeitungsvorrichtung der zweiten Ausführungsform der vorliegenden Erfindung, die so aufgebaut ist, wie dies vorstehend beschrieben ist, wobei die Erläuterung unterteilt ist in (2.1) die Verarbeitung eines Coprozessor-Übertragungsbefehls von dem allgemeinen Register 106 zu dem Datenverarbeitungseinheit-Eingangszwischenspeicher 230, (2.2) eine Verarbeitung eines Coprozessor-Befehls unter Verwendung von Operanden-Daten in den Datenverarbeitungseinheit-Eingangszwischenspeicher 230, (2.3) eine Verarbeitung eines Coprozessor- Übertragungsbefehls von dem Datenverarbeitungseinheit-Ausgangszwischenspeicher 231 zu dem allgemeinen Register 106, (2.4) ein Datensichern von Daten in den Datenverarbeitungseinheit-Eingangszwischenspeicher 230 und dem Datenverarbeitungseinheit- Ausgangszwischenspeicher 231 bei dem Beginn eines Unterbrechungsvorgangs, und (2.5) eine Rückführung von Daten zu dem Datenverarbeitungseinheit- Eingangszwischenspeicher 230 und dem Datenverarbeitungseinheit- Ausgangszwischenspeicher 231, wenn ein Unterbrechungsvorgang abgeschlossen ist.
- Fig. 5 zeigt ein Zeitdiagramm, das die Zustände in einer Fließbandverarbeitung darstellt, wenn ein Coprozessor-Übertragungsbefehl ausgeführt wird, der Daten besitzt, die in einem allgemeinen Register 106 in dem Prozessor 201 gespeichert sind, geschrieben in den Datenverarbeitungseinheit-Eingangszwischenspeicher 230 hinein.
- In dieser Figur ist "IF1" eine Stufe, wo ein Coprozessor-Übertragungsbefehl durch den Prozessor 201 auch gesucht wird. "DP1" ist eine Stufe, wo ein Coprozessor- Übertragungsbefehl durch den Prozessor 201 decodiert wird. "EXP1" ist die erste Befehlsausführungsstufe eines Coprozessor-Übertragungsbefehls in dem Prozessor 201, in der eine Datenverarbeitung nicht tatsächlich ausgeführt wird (NOP). "WB1" ist eine Stufe, wo ein Berechnungsergebnis des Coprozessor-Übertragungsbefehls durch den Prozessor 201 geschrieben wird. "DE1" ist eine Stufe, wo ein Coprozessor-Übertragungsbefehl durch den Coprozessor 202 decodiert wird. "EXE1" ist eine Ausführungsstufe für einen Ausführungsbefehl im Coprozessor 202. Hierbei zeigt "Eingabespeicher-Operand" die "Theorem" -Zeitabstimmung zum Speichern der Daten, die in den Datenverarbeitungseinheit- Eingangszwischenspeicher 230 hineingeschrieben sind.
- In der Zeitperiode 1 gibt der Speicher 103 den Befehl auf den Befehlzuführbus 126 aus, der zu dem Prozessor 201 und dem Coprozessor 202 führt, und zwar in der Befehlsabrufstufe des Prozessors 201.
- Beim Umschalten von der Zeitperiode 1 zu der Zeitperiode 2 schreitet die Steuerschaltung 205 in dem Prozessor 201 von (IF1) zu (DPI) fort und öffnet entsprechend das Befehlsregister 112 des Prozessors 201. In derselben Art und Weise schreitet die Steuerschaltung 210 indem Coprozessor 202 von (IF1) zu (DE1) fort und öffnet entsprechend das Befehlsregister 119 des Coprozessors 202.
- In der Zeitperiode 2 empfängt, in der Befehlsdecodierstufe (DP1) des Prozessors 201, der Decodierer 204 in dem Prozessor 201 den abgerufenen Befehl, nachdem das Befehlsregister 112 geöffnet ist, und decodiert dann den Befehl. Dann verwendet die Steuerschaltung 205 die Mikrobefehle, ausgegeben durch den Decodierer 204, und besitzt, durch Öffnen des Treibers 122, den Operanden in dem allgemeinen Register 106, plaziert auf dem Datenverarbeitungseinheit-Eingangsbus 124.
- In der Befehlsdecodierstufe (DE1) des Coprozessors 202, empfängt der Decodierer 209 in dem Coprozessor 202 den Befehl, nachdem das Befehlsregister 119 geöffnet ist, und decodiert dann den Befehl.
- Beim Umschalten von der Zeitperiode 2 zu der Zeitperiode 3, öffnet die Steuerschaltung 205 in dem Prozessor 101, beim Fortschreiten von der Fließbandstufe (DP1) zu (EXP1), das Mikrobefehlsregister 113 und die Datenverriegelung 114. Als Folge werden die Mikrobefehle von dem Decodierer 204 zu der Steuerschaltung 205 übertragen, so dass, mittels der Steuerschaltung 205 in dem Prozessor 201, die Fließbandverarbeitung ausführend, Operanden zu der Datenverarbeitungseinheit 207 in dem Prozessor 201 von dem Datenverarbeitungseinheit-Eingangsbus 124 übertragen werden. Hierbei wird die Coprozessor- Datenverriegelung 118 geöffnet, so dass Operanden zu dem Coprozessor 202 von dem Datenverarbeitungseinheit-Eingangsbus 124 übertragen werden. Ähnlich öffnet die Steuerschaltung 210 in dem Coprozessor 202, beim Fortschreiten von der Fließbandstufe (DE1) zu (EXE1), das Mikrobefehlsregister 120. Wenn einmal das Mikrobefehlsregister 113 in dem Prozessor 201 geöffnet worden ist, empfängt die Steuerschaltung 205 in dem Prozessor 201 die Mikrobefehle, decodiert durch den Decodierer 204, in der Befehlsdecodierstufe (DPi). Ähnlich empfängt, wenn einmal das Mikrobefehlsregister 120 geöffnet worden ist, die Steuerschaltung 210 in den Coprozessor 202 die Mikrobefehle, decodiert durch den Decodierer 209, in der Befehlsdecodierstufe (DE1).
- In der Zeitperiode 3 führt, in der Ausführungsstufe (EXP1) des Prozessors 201, die Datenverarbeitungseinheit 207 in dem Prozessor 201 keine Datenverarbeitung aus (NOP).
- In der Befehlsausführungsstufe (EXE1) des Coprozessors 202 öffnet die Steuerschaltung 210 in dem Coprozessor 202 einen Treiber 251, der einen 32-Bit-Operanden auf den Datenverarbeitungseinheit-Eingangsbus 124 zu den Datenverarbeitungseinheit- Eingangszwischenspeicher 230 in dem Coprozessor 202 überträgt. Dieser Operand wird dann in dem Datenverarbeitungseinheit-Eingangszwischenspeicher 230 gespeichert.
- Fig. 6 zeigt ein Zeitdiagramm, das die Zustände einer Fließbandverarbeitung des Coprozessors 202 darstellt, wenn er einen 3-Element-Berechnungsbefehl ausführt, der die Daten verwendet, die in dem allgemeinen Register 106 des Hauptprozessors gespeichert sind, und die Daten, die indem Datenverarbeitungseinheit-Eingangszwischenspeicher 230 gespeichert sind, der einen Teil eines Berechnungsergebnisses zu dem allgemeinen Register 106 des Prozessors 202 überträgt und der einen anderen Teil des Berechnungsergebnisses in den Datenverarbeitungseinheit-Ausgangszwischenspeicher 231 einschreibt.
- In dieser Figur zeigt die Legende "Ausgangsspeicherdaten" die Zeitabstimmung der Speicherung der Daten in dem Datenverarbeitungseinheit-Ausgangszwischenspeicher 231.
- In der Zeitperiode 1 gibt der Speicher 103 den Befehl auf dem Befehlszuführbus 126 aus, der zu dem Prozessor 201 und dem Coprozessor 202 führt, in der Befehlsabrufstufe (IF1) des Prozessors 201.
- Beim Umschalten von der Zeitperiode 1 zu der Zeitperiode 2 schreitet die Steuerschaltung 205 in dem Prozessor 201 von (IF1) zu (DP1) fort und öffnet entsprechend das Befehlsregister 112 des Prozessors 201. In derselben Art und Weise schreitet die Steuerschaltung 210 in dem Coprozessor 202 von (IF1) zu (DE1) fort und öffnet entsprechend das Befehlsregister 119 des Coprozessors 202.
- In der Zeitperiode 2 empfängt, in der Befehlsdecodierstufe (DP1), der Decodierer 204 in dem Prozessor 201 den Befehl, nach dem das Befehlsregister 112 geöffnet ist, und decodiert dann den Befehl. Dann verwendet die Steuerschaltung 205 die Mikrobefehle, ausgegeben durch den Decodierer 204, und besitzt, durch Öffnen des Treibers 122, die Daten in dem allgemeinen Register 106, plaziert auf dem Datenverarbeitungseinheit-Eingangsbus 124.
- In der Befehlsdecodierstufe (DE1) des Coprozessors 202 empfängt der Decodierer 209 in dem Coprozessor 202 den Befehl, nachdem das Befehlsregister 119 geöffnet äst, und decodiert dann den Befehl.
- Beim Umschalten von der Zeitperiode 2 zu der Zeitperiode 3 öffnet sich die Steuerschaltung 205 in dem Prozessor 201, beim Fortschreiten von der Fließbandstufe (DP1) zu (EXP1), das Mikrobefehlsregister 113 und die Datenverriegelung 114. Als Folge werden Mikrobefehle über das geöffnete Mikrobefehlsregister 113 von dem Decodierer 204 zu der Steuerschaltung 205 übertragen, so dass mittels der Steuerschaltung 205 in dem Prozessor 201, die Fließbandverarbeitung ausführend, Operanden zu der Datenverarbeitungseinheit 207 in dem Prozessor 201 von dem Datenverarbeitungseinheit-Eingangsbus 124 übertragen werden. Hierbei wird die Coprozessor-Datenverriegelung 118 geöffnet, so dass Operanden zu dem Coprozessor 202 von dem Datenverarbeitungseinheit-Eingansgbus 124 übertragen werden. Ähnlich öffnet die Steuerschaltung 210 in dem Coprozessor 202, beim Fortschreiten von der Fließbandstufe (DE1) zu (EXE1), das Mikrobefehlsregister 120. Wenn das Mikrobefehlsregister 113 in dem Prozessor 201 geöffnet worden ist, empfängt die Steuerschaltung 205 in dem Prozessor 201 die Mikrobefehle, decodiert durch den Decodierer 204 in der Befehlsdecodierstufe (DP1). Ähnlich empfängt, wenn einmal das Mikrobefehlsregister 120 geöffnet worden ist, die Steuerschaltung 210 in dem Coprozessor 202 die Mikrobefehle, decodiert durch den Decodierer 209, in der Befehlsdecodierstufe (DE1).
- In der Zeitperiode 3 führt, in der Ausführungsstufe (EXP1) des Prozessors 201, die Datenverarbeitungseinheit 207 in dem Prozessor 201 keine Datenverarbeitung aus (NOP).
- In der Befehlsausführungsstufe (EXE1) des Coprozessors 202 öffnet die Steuerschaltung 210 in dem Coprozessor 202 den Treiber 250, so dass ein 32-Bit-Operand auf dem Datenverarbeitungseinheit-Eingangsbus 124 zu der Coprozessor-Verarbeitungseinheit 211 in dem Coprozessor 202 übertragen wird, und öffnet den Treiber 253, so dass ein Operand in dem Datenverarbeitungseinheit-Eingangszwischenspeicher 230 zu der Coprozessor- Verarbeitungseinheit 211 übertragen wird. Die Coprozessor-Verarbeitungseinheit 211 führt dann eine Verarbeitung zur Verwendung des Operanden von dem Datenverarbeitungseinheit-Eingangsbus 124 und des Operanden von dem Datenverarbeitungseinheit- Eingangszwischenspeicher 230 durch und gibt zwei Teile von Daten als dessen Verarbeitungsergebnis aus. Die Steuerschaltung 210 in dem Coprozessor 202 öffnet dann den Treiber 254 in dem Coprozessor 202 und besitzt eines der Verarbeitungsergebnisse der Coprozessor-Verarbeitungseinheit 211 auf den Datenverarbeitungseinheit-Ausgangsbus 125 übertragen, der das Verarbeitungsergebnis zu dem Prozessor 201 überträgt. Die Steuerschaltung 210 in dem Coprozessor 202 öffnet auch den Treiber 255 in dem Coprozessor 202 und besitzt ein anderes Verarbeitungsergebnis der Coprozessor- Verarbeitungseinheit 211 zu dem Datenverarbeitungseinheit-Ausgangszwischenspeicher 231 übertragen, wo das Verarbeitungsergebnis gespeichert wird.
- Beim Umschalten von der Zeitperiode 3 zu der Zeitperiode 4 öffnet die Steuerschaltung 205 in dem Prozessor 201 den Registerschreib-Zwischenspeicher 116 beim Umschalten von Fließbandprozessen von (EXP1) zu (WB1) und, als Folge, wird eines der Verarbeitungsergebnisse von dem Datenverarbeitungseinheit-Ausgangsbus 125 zu dem allgemeinen Register 106 in dem Prozessor 201 über den geöffneten Registerschreib- Zwischenspeicher 116 übertragen.
- In der Zeitperiode 4 speichert das allgemeine Register 106 in dem Prozessor 201 einen Teil der Verarbeitungsergebnisdaten.
- Fig. 7 zeigt ein Zeitdiagramm, das die Zustände einer Fließbandverarbeitung der Operation darstellt, die die Daten, gespeichert in dem Datenverarbeitungseinheit- Ausgangszwischenspeicher 231, in das allgemeine Register 106 des Prozessors 201 einschreibt.
- In der Zeitperiode 1 gibt der Speicher 103 den Befehl auf dem Befehlszuführbus 126 aus, der zu dem Prozessor 201 und dem Coprozessor 202 führt, in der Befehlsabrufstufe (IF1) des Prozessors 201.
- Beim Umschalten von der Zeiterperiode 1 zu der Zeitperiode 2 schreitet die Steuerschaltung 205 in dem Prozessor 201 von (IF1) zu (DP1) fort und öffnet entsprechend das Befehlsregister 112 des Prozessors 201. In derselben Art und Weise schreitet die Steuerschaltung 210 in dem Coprozessor 202 von (IF1) zu (DE1) fort und öffnet entsprechend das Befehlsregister 119 des Coprozessors 202.
- In der Zeitperiode 2 empfängt, in der Befehlsdecodierstufe (DP1), der Decodierer 204 in dem Prozessor 201 den Befehl, nachdem das Befehlsregister 112 geöffnet ist, und decodiert dann den Befehl.
- In der Befehlsdecodierstufe (DE1) des Coprozessors 202 empfängt der Decodierer 209 in dem Coprozessor 202 den Befehl, nachdem das Befehlsregister 119 geöffnet ist, und decodiert dann den Befehl.
- Beim Umschalten von der Zeitperiode 2 zu der Zeitperiode 3 öffnet die Steuerschaltung 205 in dem Prozessor 201, beim Fortschreiten von der Fließbandstufe (DP1) zu (EXP1), das Mikrobefehlsregister 113, und die Datenverriegelung 114. Als Folge werden Mikrobefehle über das geöffnete Mikrobefehlsregister 113 von dem Decodierer 204 zu der Steuerschaltung 205 übertragen, so dass mittels der Steuerschaltung 205 in dem Prozessor 201, die Fließbandverarbeitung ausführend, die Datenverriegelung 114 geöffnet wird, so dass Operanden zu der Datenverarbeitungseinheit 207 in dem Prozessor 201 von dem Datenverarbeitungseinheit-Eingangsbus 124 übertragen werden. Ähnlich öffnet die Steuerschaltung 210 in dem Coprozessor 202, beim Fortschreiten von der Fließbandstufe (DE1) zu (EXE1), das Mikrobefehlsregister 120. Wenn einmal das Mikrobefehlsregister 113 in dem Prozessor 201 geöffnet worden ist, empfängt die Steuerschaltung 205 in dem Prozessor 201 die Mikrobefehle, decodiert durch den Decodierer 204 in der Befehlsdecodierstufe (DP1). Ähnlich empfängt, wenn einmal das Mikrobefehlsregister 120 geöffnet worden ist, die Steuerschaltung 210 in dem Coprozessor 202 die Mikrobefehle, decodiert durch den Decodierer 209 in der Befehlsdecodierstufe (DE1).
- In der Zeitperiode 3 führt, in der Ausführungsstufe (EXP1) des Prozessors 201, die Datenverarbeitungseinheit 207 in dem Prozessor 201 keine Datenverarbeitung aus (NOP). In der Befehlsausführungsstufe (EXE1) des Coprozessors 202 öffnet die Steuerschaltung 210 in dem Coprozessor 202 den Treiber 257, so dass die Verarbeitungsergebnisdaten, gespeichert in dem Datenverarbeitungseinheit-Ausgangszwischenspeicher 231, auf dem Datenverarbeitungseinheit-Ausgangsbus 125 übertragen werden.
- Beim Umschalten von der Zeitperiode 3 zu der Zeitperiode 4, öffnet die Steuerschaltung 205 in dem Prozessor 201 den Registerschreib-Zwischenspeicher 116 in den Umschaltfließbandverarbeitungen von (EXP1) zu (WB1), und, als Folge, wird das Verarbeitungsergebnis von dem Datenverarbeitungseinheit-Ausgangsbus 125 zu dem allgemeinen Register 106 in dem Prozessor 201 über den Operanden-Registerschreibzwischenspeicher 116 übertragen.
- In der Zeitperiode 4 speichert das allgemeine Register 106 in dem Prozessor 201 einen Teil der Verarbeitungsergebnis-Daten.
- Durch Ausstatten des Coprozessors 202 mit diesen Arten von Zwischenspeichern kann der Coprozessor so gestaltet werden, um eine Mehrzahl von Operanden ohne Erhöhung des Energieverbrauchs oder der Kosten aufgrund einer erhöhten Chip-Größe zu verarbeiten.
- Fig. 8 zeigt ein Zeitdiagramm, dass das Auftreten einer Unterbrechung zu dem Prozessor 201 und den Vorgang, der die Daten in dem Datenverarbeitungseinheit- Eingangszwischenspeicher 230 des Coprozessors 202 und die Daten in dem Datenverarbeitungseinheit-Ausgangszwischenspeicher 231 des Coprozessors 202 in dem Zwischenspeicher 232 für gesicherte Daten sichert. In diesem Zeitdiagramm zeigt die Legende (ESC1) die Ausführung des Befehls, der die Daten in dem Datenverarbeitungseinheit- Eingangszwischenspeicher 230 des Coprozessors 202 sichert, und die Legende "ESC2" zeigt die Ausführung des Befehls, der die Daten in dem Datenverarbeitungseinheit- Ausgangszwischenspeicher 231 des Coprozessors 202 sichert.
- In der Zeitperiode 1 empfängt der Prozessor 201 ein Unterbrechungsanforderungssignal von außerhalb der Vorrichtung auf der Unterbrechungsanforderungssignalleitung 240. In der Zeitperiode 2 überträgt die Steuerschaltung 205 in dem Prozessor 201 ein Unterbrechungssignal auf der Unterbrechungssignalleitung 241 zu dem Coprozessor 202. Die Steuerschaltung 210 in dem Coprozessor 202 empfängt dann dieses Signal, dass auf der Unterbrechungssignalleitung 241 geschickt ist.
- In der Zeitperiode 3 öffnet die Steuerschaltung 210 in dem Coprozessor 202 den Treiber 258 und hat so das Verarbeitungsergebnis in dem Datenverarbeitungseinheit- Eingangszwischenspeicher 230 auf dem Datenverarbeitungseinheit-Ausgangsbus 125 übertragen. Der Zwischenspeicher 232 für gesicherte Daten empfängt dann diese Daten auf dem Datenverarbeitungseinheit-Ausgangsbus 125 und erneuert seinen gespeicherten Inhalt.
- In der Zeitperiode 3 öffnet die Steuerschaltung 210 in dem Coprozessor 202 den Treiber 257 und hat so das Verarbeitungsergebnis in dem Datenverarbeitungseinheit- Ausgangszwischenspeicher 231 auf dem Datenverarbeitungseinheit-Ausgangsbus 125 übertragen. Der Zwischenspeicher 232 für gesicherte Daten empfängt dann diese Daten auf dem Datenverarbeitungseinheit Ausgangsbus 125 und speichert sie.
- In der Zeitperiode 5 überträgt die Steuerschaltung 210 in dem Coprozessor 202 ein Unterbrechungsvorbereitungsabschluss-Signal zu dem Prozessor 201 über die Abschluss- Signalleitung 242, um dadurch dem Prozessor 201 die Erlaubnis zu erteilen, den Unterbrechungsvorgang zu beginnen.
- Fig. 9 zeigt ein Zeitdiagramm, das die Zustände der Fließbandverarbeitung des Unterbrechungsrückführbefehls darstellt. In diesem Zeitdiagramm zeigt die Legende "RTI1" den Datenrückführvorgang durch den Prozessor 201 und den Coprozessor 202 für den Datenverarbeitungseinheit-Eingangszwischenspeicher 230, während die Legende "RTI2" den Datenrückführvorgang durch den Prozessor 201 und den Coprozessor 202 für den Datenverarbeitungseinheit-Ausgangszwischenspeicher 231 darstellt.
- Das Nachfolgende ist eine Erläuterung der Betriebsweise durch den Coprozessor 202 für einen Unterbrechungsrückführbefehl unter Bezugnahme auf das Zeitdiagramm in Fig. 9, das die Zustände der Fließbandverarbeitung des Unterbrechungsrückführbefehls darstellt.
- In der Zeitperiode 1 gibt der Speicher 103 den Unterbrechungsrückführbefehl auf den Befehlszuführbus 126 aus, der zu dem Prozessor 201 und dem Coprozessor 202 führt, in der Befehlsabrufstufe des Prozessors 201.
- Beim Umschalten von der Zeitperiode 1 zu der Zeitperiode 2 schreitet die Steuerschaltung 205 in dem Prozessor 201 von (IF1) zu (DP1) fort und öffnet dementsprechend das Befehlsregister 112 des Prozessors 201. In derselben Art und Weise schreitet die Steuerschaltung 210 in dem Coprozessor 202 von (IF1) zu (DE1) fort und öffnet dementsprechend das Befehlsregister 119 des Coprozessors 202.
- In der Zeitperiode 2 empfängt, in der Befehlsdecodierstufe (DP1) des Prozessors 201, der Decodierer 204 in dem Prozessor 201 den abgerufenen Unterbrechungsrückführbefehl, nachdem das Befehlsregister 112 geöffnet ist, und decodiert dann den Befehl. Ähnlich empfängt, in der Befehlsdecodierstufe (DE1) des Coprozessors 202, der Decodierer 209 in dem Coprozessor 202 den Unterbrechungsrückführbefehl, nachdem das Befehlsregister 119 geöffnet ist, und decodiert dann den Befehl.
- Beim Umschalten von der Zeitperiode 2 zu der Zeitperiode 3 öffnet die Steuerschaltung 205 in dem Prozessor 201 in dem (RTI1) Prozess, das Mikrobefehlsregister 113 und die Datenverriegelung 114. Als Folge werden die Unterbrechungsrückführ-Mikrobefehle über das geöffnete Mikrobefehlsregister 113 von dem Decodierer 204 zu der Steuerschaltung 205 übertragen. Ähnlich öffnet die Steuerschaltung 210 in dem Coprozessor 202, beim Fortschreiten zu der Fließbandstufe (RT1), das Mikrobefehlsregister 120. Wenn einmal das Mikrobefehlsregister 113 in dem Prozessor 201 geöffnet worden ist, empfängt die Steuerschaltung 205 in dem Prozessor 201 die Mikrobefehle, decodiert von dem (RTI1) Befehl durch den Decodierer 204 in der Befehlsdecodierstufe (DP1). Ähnlich empfängt, wenn einmal das Mikrobefehlsregister 120 geöffnet worden ist, die Steuerschaltung 210 in dem Coprozessor 202 die Mikrobefehle, decodiert von dem (RTI1) Befehl durch den Decodierer 209 in der Befehlsdecodierstufe (DE1).
- In der Zeitperiode 3 werden, in der Befehlsdecodierstufe (RTI2) des Prozessors 201, Unterbrechungsrückführ-Mikrobefehle wiederholt ausgegeben.
- In der Befehlsausführungsstufe (RT11) des Prozessors 201 führt der Prozessor 201 einen Rückführvorgang aus.
- In der Befehlsdecodierstufe (RTI2) des Coprozessors 202 werden Unterbrechungsrückführ-Mikrobefehle wiederholt ausgegeben.
- In der Befehlsausführungsstufe (RTI2) des Coprozessors 202 wird der Treiber 259 geöffnet und der Zwischenspeicher 232 für gesicherte Daten plaziert seine Daten auf dem Datenverarbeitungseinheit-Eingangsbus 124, der zu dem Prozessor 201 und zu dem Coprozessor 202 führt. Die Steuerschaltung 210 in dem Coprozessor 202 öffnet dann den Treiber 256 in dem Coprozessor 202, der die Daten auf dem Datenverarbeitungseinheit- Eingangsbus 124 zu dem Datenverarbeitungseinheit-Eingangszwischenspeicher 230 in dem Coprozessor 202 schickt. Der Datenverarbeitungseinheit-Eingangszwischenspeicher 230 speichert dann die Daten, empfangen von dem Datenverarbeitungseinheit- Eingangsbus 124.
- In der Zeitperiode 4 werden Unterbrechungsrückführ-Mikrobefehle wiederholt als die Befehlsdecodierstufe (RTI3) des Prozessors 201 ausgegeben.
- In der Befehlsausführungsstufe (RTI2) des Prozessors 201 führt der Prozessor 201 einen Rückführvorgang aus.
- In der Befehlsausführungsstufe (RTI2) des Coprozessors 202 wird der Treiber 259 geöffnet und der Zwischenspeicher 232 für gesicherte Daten plaziert seine Daten auf dem Datenverarbeitungseinheit-Eingangsbus 124, der zu dem Prozessor 201 und dem Coprozessor 202 führt. Die Steuerschaltung 210 in dem Coprozessor 202 öffnet dann den Treiber 256 in dem Coprozessor 202, der die Daten auf dem Datenverarbeitungseinheit- Eingangsbus 124 zu dem Datenverarbeitungseinheit-Ausgangszwischenspeicher 231 in dem Coprozessor 202 schickt. Der Datenverarbeitungseinheit-Ausgangszwischenspeicher 231 speichert dann die Daten, empfangen von dem Datenverarbeitungseinheit- Eingangsbus 124.
- Fig. 10 zeigt ein Blockdiagramm, das den Aufgbau der Informationsverarbeitungsvorrichtung der dritten Ausführungsform der vorliegenden Erfindung darstellt. Diese Informationsverarbeitungsvorrichtung kann dahingehend angesehen werden, dass sie aus einem Prozessor 301, einem Coprozessor 302 und einem Speicher 303 aufgebaut ist. Es ist hier anzumerken, dass Aufbauelemente, die dieselben wie solche in der zweiten Ausführungsform, dargestellt in Fig. 4, sind, mit denselben Bezugszeichen bezeichnet worden sind, und deren Erläuterung ist weggelassen worden, so dass die folgende Erläuterung auf die Unterschiede zu der zweiten Ausführungsform konzentrieren wird.
- In der vorliegenden Ausführungsform ist der Prozessor 301 mit den Funktionen des Prozessors 201 in der zweiten Ausführungsform ausgestattet, unterscheidet sich allerdings darin, dass er eine Funktion zum Umschalten von Aufgaben besitzt. Hierbei bezieht sich eine Aufgabenumschaltung für den Prozessor 301 auf die Ausführung eines Aufgabenumschaltvorgangs, der durch Ausführen eines Aufgabenumschaltbefehls erreicht wird. Diese Aufgabenumschaltung durch den Prozessor 301 kann entsprechend einer üblichen Technik erzielt werden. Auch kann, in der vorliegenden Ausführungsform, der Datenverarbeitungseinheit-Ausgangsbus 125 in derselben Art und Weise wie in der zweiten Ausführungsform für einen 32-Bit-Bus aufgebaut sein.
- Der Coprozessor 302 umfasst Datenverarbeitungseinheit-Eingangszwischenspeicher 330 und 331, Datenverarbeitungseinheit-Ausgangszwischenspeicher 332 und 333 und die umgebenden Treiber anstelle des Datenverarbeitungseinheit-Eingangszwischenspeichers 230, des Datenverarbeitungseinheit-Ausgangszwischenspeichers 231 und den umgebenden Treibern der zweiten Ausführungsform, ebenso wie er zusätzlich eine Aufgabenverwaltungs-Einheit 361 umfasst.
- Der Decodierer 304 in dem Prozessor 301 ist mit Funktionen des Decodierers 204 in der zweiten Ausführungsform ausgestattet, unterscheidet sich allerdings dahingehend, dass er eine Funktion zum Decodieren von Aufgabenumschaltbefehlen und zum Ausgeben von Mikrobefehlen für Umschaltaufgaben besitzt, wie dies durch den Befehl spezifiziert ist. Die Steuerschaltung 305 in dem Prozessor 301 ist mit den Funktionen der Steuerschaltung 205 in der zweiten Ausführungsform ausgestattet, unterscheidet sich allerdings darin, dass sie eine Funktion zum Ausgeben einer Vielzahl von Steuersignalen entsprechend den empfangenen Mikrobefehlen zum Realisieren einer Umschaltung der Aufgaben besitzt.
- Der Decodierer 309 in dem Coprozessor 302 ist mit den Funktionen des Decodierers 209 in der zweiten Ausführungsform ausgestattet, unterscheidet sich allerdings darin, dass er eine Funktion zum Decodieren von Aufgabenumschaltbefehlen besitzt. Genauer gesagt, gibt, wenn das Decodier-Ergebnis zeigt, dass ein Befehl ein Aufgabenumschaltbefehl ist, der Decodierer 309 einen Mikrobefehl aus, der eine Aufgabenzahl speichert, angezeigt durch den decodierten Befehl, in die Aufgabenverwaltungs-Einheit 360 hinein.
- Die Datenverarbeitungseinheit 207 des Prozessors 301 führt die Hauptdatenverarbeitung für den Prozessor 301 aus.
- Die Steuerschaltung 310 in dem Coprozessor 302 ist mit den Funktionen der Steuerschaltung 210 in der zweiten Ausführungsform ausgestattet, unterscheidet sich allerdings dahingehend, dass sie eine Funktion zum Ausgeben von Steuersignalen, beim Empfangen von Mikrobefehlen, die das Decodier-Ergebnis eines Aufgabenumschaltbefehls sind, zum Speichern einer Aufgabenzahl, spezifiziert durch den Befehl, in die Aufgabenmanagemenet-Einheit 361 hinein, besitzt. Auch verwendet, beim Empfangen von Mikrobefehlen, die das Decodier-Ergebnis eines Coprozessor-Übertragungsbefehls sind, wie dies in der zweiten Ausführungsform erläutert ist, die Steuerschaltung 310 selektiv entweder den Datenverarbeitungseinheit-Eingangszwischenspeicher 330 oder den Datenverarbeitungseinheit-Eingangszwischenspeicher 331 entsprechend der Aufgabenzahl, gespeichert in der Aufgabenverwaltungs-Einheit 361. Zum Beispiel führt, wenn die Aufgabenzahl, gespeichert in der Aufgabenverwaltungs-Einheit 361 den Wert 1 hat, die Steuerschaltung 310 eine Steuerung so aus, dass der Datenverarbeitungseinheit- Eingangszwischenspeicher 331 und der Datenverarbeitungseinheit- Ausgangszwischenspeicher 332 verwendet werden, während dann, wenn die Aufgabenzahl eine 2 ist, die Steuerschaltung 310 eine Steuerung so ausführt, dass der Datenverarbeitungseinheit-Eingangszwischenspeicher 331 und der Datenverarbeitungseinheit- Ausgangszwischenspeicher 333 verwendet werden. Als ein anderes Beispiel werden, wenn ein Coprozessor-Befehl zur Ausführung einer 3-Element-Berechnung dient, der Datenverarbeitungseinheit-Eingangszwischenspeicher 330 und der Datenverarbeitungseinheit-Eingangszwischenspeicher 331 selektiv verwendet, wobei dann, wenn die Ausführung des Coprozessor-Befehls eine Mehrzahl von Teilen von Daten als ein Berechnungsergebnis erzeugt, der Datenverarbeitungseinheit-Ausgangszwischenspeicher 332 und der Datenveranbeitungseinheit-Ausgangszwischenspeicher 333 selektiv gemäß der Aufgabenzahl verwendet werden.
- Der Datenverarbeitungseinheit-Eingangszwischenspeicher 330 und der Datenverarbeitungseinheit-Eingangszwischenspeicher 331 sind Zwischenspeicher zum Speichern von Daten, die auf dem Datenverarbeitungseinheit-Eingangsbus 124 geschickt werden, wenn die Coprozessor-Verarbeitungseinheit 211 eine Verarbeitung unter Verwendung einer Mehrzahl von Operanden ausführt. Hierbei werden der Datenverarbeitungseinheit- Eingangszwischenspeicher 330 und der Datenverarbeitungseinheit- Eingangszwischenspeicher 331 gemäß der Aufgabenzahl in der Aufgabenverwaltungs- Einheit 361 ausgewählt.
- Der Datenverarbeitungseinheit-Ausgangszwischenspeicher 332 und der Datenverarbeitungseinheit-Ausgangszwischenspeicher 333 sind Zwischenspeicher zum Speichern der Daten, die auf dem Datenverarbeitungseinheit-Ausgangsbus 125 geschickt werden, wenn eine Zahl von Teilen von Daten als das Berechnungsergebnis der Coprozessor- Verarbeitungseinheit 211 erzeugt werden. Hierbei werden der Datenverarbeitungseinheit- Ausgangszwischenspeicher 332 und der Datenverarbeitungseinheit- Ausgangszwischenspeicher 333 entsprechend der Aufgabenzahl in der Aufgabenverwaltungseinheit 361 ausgewählt.
- Der Treiber 350 ist ein Treiber, der gemäß einer Steuerung durch die Steuerschaltung 305 geöffnet wird und der dazu verwendet wird, Daten von dem Datenverarbeitungseinheit- Eingangsbus 124 zu der Coprozessor-Verarbeitungseinheit 211 zu übertragen.
- Der Treiber 351 ist ein Treiber, der gemäß einer Steuerung durch die Steuerschaltung 305 geöffnet wird und der dazu verwendet wird, Daten von dem Datenverarbeitungseinheit- Eingangsbus 124 zu dem Datenverarbeitungseinheit-Eingangszwischenspeicher 330 zu übertragen.
- Der Treiber 352 ist ein Treiber, der gemäß einer Steuerung durch die Steuerschaltung 305 geöffnet wird und der dazu verwendet wird, Daten von dem Datenverarbeitungseinheit- Eingangsbus 124 zu dem Datenverarbeitungseinheit-Eingangszwischenspeicher 331 zu übertragen.
- Der Treiber 354 ist ein Treiber, der gemäß einer Steuerung durch die Steuerschaltung 305 geöffnet wird und der dazu verwendet wird, Daten von der Coprozessor- Verarbeitungseinheit 211 auf den Datenverarbeitungseinheit-Ausgangsbus 125 zu übertragen.
- Der Treiber 355 ist ein Treiber, der gemäß einer Steuerung durch die Steuerschaltung 305 geöffnet wird und der dazu verwendet wird, Daten von der Coprozessor- Verarbeitungseinheit 211 zu dem Datenverarbeitungseinheit-Ausgangszwischenspeicher 332 zu übertragen.
- Der Treiber 356 ist ein Treiber, der gemäß einer Steuerung durch die Steuerschaltung 305 geöffnet wird und der dazu verwendet wird, Daten der Coprozessor-Verarbeitungseinheit 211 zu dem Datenverarbeitungseinheit-Ausgangszwischenspeicher 333 zu übertragen.
- Der Treiber 357 ist ein Treiber, der gemäß einer Steuerung durch die Steuerschaltung 305 geöffnet wird und der dazu verwendet wird, Daten von dem Datenverarbeitungseinheit- Ausgangszwischenspeicher 332 auf dem Datenverarbeitungseinheit-Ausgangsbus 125 zu übertragen.
- Der Treiber 358 ist ein Treiber, der gemäß einer Steuerung durch die Steuerschaltung 305 geöffnet wird, und Daten von dem Datenverarbeitungseinheit-Ausgangszwischenspeicher 333 auf dem Datenverarbeitungseinheit-Ausgangsbus 125 überträgt.
- Der Selektor 360 wird durch die Steuerschaltung 305 so gesteuert, um den Datenverarbeitungseinheit-Eingangszwischenspeicher 330 oder den Datenverarbeitungseinheit- Eingangszwischenspeicher 331 auszuwählen.
- Die Aufgabenverwaltungs-Einheit 331 wird durch die Steuerschaltung 305 so gesteuert, um eine Aufgabenzahl zu speichern und diese Aufgabenzahl zu der Steuerschaltung 305 zu übertragen. Die Aufgabenzahl, gespeichert durch die Aufgabenverwaltungs-Einheit 361, wird dann bei Aufgabe 1 oder Aufgabe 2 eingestellt, wobei dann, wenn die Aufgabenzahl die Aufgabe 1 ist, der Datenverarbeitungseinheit Eingangszwischenspeicher 330 und der Datenverarbeitungseinheit-Ausgangszwischenspeicher 332 ausgewählt werden, und wenn die Aufgabenzahl Aufgabe 2 ist, werden der Datenverarbeitungseinheit- Eingangszwischenspeicher 331 und der Datenverarbeitungseinheit- Ausgangszwischenspeicher 333 ausgewählt.
- Das Nachfolgende ist eine Erläuterung der Betriebsweise der Informationsverarbeitungsvorrichtung der dritten Ausführungsform der vorliegenden Erfindung, die so aufgebaut ist, wie dies vorstehend beschrieben ist, wobei die Erläuterung unterteilt wird in (3.1) die Ausführungsoperation eines Aufgabenumschaltvorgangs, (3.2) die Operation für einen Coprozessor-Übertragungsbefehl, wobei die Daten, gespeichert in dem allgemeinen Register 106, in einen Datenverarbeitungseinheit-Eingangszwischenspeicher des Coprozessors 302 hineingeschrieben werden, (3.3) die Operation eines Coprozessor-Befehls, der eine Berechnung unter Verwendung der Daten in dem allgemeinen Register 106 des Prozessors 301 und der Daten in einem Datenverarbeitungseinheit-Eingangszwischenspeicher verwendet, vor einem Schreiben des Ausgangsergebnisses in ein allgemeines Register 106 und in einen Datenverarbeitungseinheit-Ausgangszwischenspeicher, und (3.4) eine Operation für einen Coprozessor-Übertragungsbefehl, der Daten in einen Datenverarbeitungseinheit-Ausgangszwischenspeicher des Coprozessors 302 in das allgemeine Register 106 des Prozessors 301 hinein schreibt.
- Während der Befehlsabrufstufe plaziert der Speicher 103 einen Aufgabenumschaltbefehl auf dem Befehlszuführbus 126. In der Befehlsdecodierstufe öffnet die Steuerschaltung 310 das Befehlsregister 119. Wenn einmal das Befehlsregister 119 geöffnet worden ist, decodiert der Decodierer 309 den Aufgabenumschaltbefehl. Beim Umschalten zwischen Fließbandstufen öffnet die Steuerschaltung 310 in dem Coprozessor 302 das Mikrobefehlsregister 120. Wenn einmal das Mikrobefehlsregister 120 geöffnet worden ist, empfängt die Steuerschaltung 310 den Mikrobefehl, decodiert durch den Decodierer 309, und speichert, zusammen mit einer Ausführungssteuerung der Aufgabenumschaltung, die Aufgabenzahl, spezifiziert durch den Original-Befehl in der Aufgabenverwaltungs-Einheit 361. Wenn der Coprozessor Befehle überträgt und Coprozessor-Befehle, die Berechnungen sind, unter Verwendung von drei oder mehr Elementen, ausgeführt werden, werden der Datenverarbeitungseinheit-Eingangszwischenspeicher 330 und der Datenverarbeitungseinheit- Ausgangszwischenspeicher 332 ausgewählt, wenn die Aufgabennummer die Aufgabe 1 ist, während der Datenverarbeitungseinheit-Eingangszwischenspeicher 331 und der Datenverarbeitungseinheit-Ausgangszwischenspeicher 333 ausgewählt werden, wenn die Aufgabennummer die Aufgabe 2 ist.
- Das Folgende ist eine Erläuterung der Operation innerhalb des Coprozessors 302, wenn die Aufgabennummer Aufgabe 1 in der Aufgabenverwaltungs-Einheit 361 gespeichert ist, und Daten, gespeichert in dem allgemeinen Register 106, in den Datenverarbeitungseinheit-Eingangszwischenspeicher 330 hineingeschrieben werden. Die vorliegende Operation verwendet dieselbe Zeitabstimmung wie die Zustände in dem Zeitdiagramm für eine Fließbandverarbeitung, dargestellt in Fig. 5, so dass die folgende Erläuterung sich auch auf Fig. 5 beziehen wird.
- In der Zeitperiode 1 gibt der Speicher 103 den Befehl auf den Befehlszufuhrbus 106 aus, der zu dem Prozessor 301 und dem Coprozessor 302 in der Befehlsabrufstufe des Prozessors 301 führt.
- Beim Umschalten von der Zeitperiode 1 zu der Zeitperiode 2, schreitet die Steuerschaltung 305 in dem Prozessor 301 von (IF1) zu (DP1) fort und öffnet entsprechend das Befehlsregister 112 des Prozessors 301. In derselben Art und Weise schreitet die Steuerschaltung 310 in dem Coprozessor 302 von (IF1) zu (DE1) fort und öffnet entsprechend das Befehlsregister 119 des Coprozessors 202.
- In der Zeitperiode 2 empfängt, in der Befehlsdecodierstufe (DP1) des Prozessors 301, der Decodierer 304 in dem Prozessor 301 den abgerufenen Befehl, nachdem das Befehlsregister 112 geöffnet ist, und decodiert dann den Befehl. Dann verwendet die Steuerschaltung 305 die Mikrobefehle, ausgegeben durch den Decodierer 304, und besitzt, durch Öffnen des Treibers 122, den Operanden in dem allgemeinen Register 106 plaziert auf dem Datenverarbeitungseinheit-Eingangsbus 124.
- In der Befehlsdecodierstufe (DE1) des Coprozessors 302 empfängt der Decodierer 309 in dem Coprozessor 302 den Befehl, nachdem das Befehlsregister 119 geöffnet ist, und decodiert dann den Befehl.
- Beim Umschalten von der Zeitperiode 2 zu der Zeitperiode 3 öffnet die Steuerschaltung 305 in dem Prozessor 301, beim Fortschreiten von der Fließbandstufe (DP1) zu (EXP1), das Mikrobefehlsregister 113, die Datenverriegelung 114 und die Coprozessor- Datenverriegelung 118. Als Folge werden Mikrobefehle von dem Decodierer 304 zu der Steuerschaltung 305 übertragen, so dass mittels der Steuerschaltung 305 in dem Prozessor 301, die Fließband-Verarbeitung ausgeführt werden, Operanden zu der Datenverarbeitungseinheit 207 in dem Prozessor 301 von dem Datenverarbeitungseinheit- Eingangsbus 124 übertragen werden, wobei die Operanden dann zu dem Coprozessor 302 von dem Datenverarbeitungseinheit-Eingangsbus 124 übertragen werden. Ähnlich öffnet die Steuerschaltung 310 in dem Coprozessor 302 beim Fortschreiten von der Fließbandstufe (DE1) zu (EXE1) das Mikrobefehlsregister 120. Wenn einmal das Mikrobefehlsregister 113 in dem Prozessor 301 geöffnet worden ist, empfängt die Steuerschaltung 305 in dem Prozessor 301 die Mikrobefehle, decodiert durch den Decodierer 304 in der Befehlsdecodierstufe (DP1). Ähnlich empfängt, wenn einmal das Mikrobefehlsregister 120 geöffnet worden ist, die Steuerschaltung 310 in dem Coprozessor 302 die Mikrobefehle, decodiert durch den Decodierer 309, in der Befehlsdecodierstufe (DE1).
- In der Zeitperiode 3 führt, in der Ausführungsstufe (EXP1) des Prozessors 301, die Datenverarbeitungseinheit 207 in dem Prozessor 301 keine Datenverarbeitung (NOP) aus.
- In der Befehlsausführungsstufe (EXE1) des Coprozessors 302 öffnet die Steuerschaltung 310 in dem Coprozessor 302 den Treiber 351, der einen 32-Bit-Operanden auf dem Datenverarbeitungseinheit-Eingangsbus 124 zu dem Datenverarbeitungseinheit- Eingangszwischenspeicher 330 des Coprozessors 302 überträgt. Dieser Operand wird dann in dem Datenverarbeitungseinheit-Eingangszwischenspeicher 330 gespeichert.
- Das Folgende ist eine Erläuterung davon, wenn Aufgabe 1 durch die Aufgabenverwaltungs-Einheit 361 in dem Coprozessor 302 gespeichert wird, so dass die Daten, gespeichert in dem allgemeinen Register 106 des Prozessors 301 und Daten, gespeichert in dem Datenverarbeitungseinheit-Eingangszwischenspeicher 330, bei der Berechnung verwendet werden und die Berechnungsergebnisse in das allgemeine Register 106 und den Datenverarbeitungseinheit-Ausgangszwischenspeicher 332 geschrieben werden. Die vorliegende Operation verwendet dieselbe Zeitabstimmung wie die Zustände in dem Zeitdiagramm für eine Fließbandverarbeitung, dargestellt in Fig. 6, so dass sich die folgende Erläuterung auch auf Fig. 6 beziehen wird.
- In der Zeitperiode 1 gibt der Speicher 103 den Befehl auf den Befehlzuführbus 126 aus, der zu dem Prozessor 301 und dem Coprozessor 302 in der Befehlsabrufstufe (IF1) des Prozessors 301 führt.
- Beim Umschalten von der Zeitperiode 1 zu der Zeitperiode 2 schreitet die Steuerschaltung 305 in dem Prozessor 301 von (IF1) zu (DP1) fort und öffnet dementsprechend das Befehlsregister 112 des Prozessors 301. In derselben Art und Weise schreitet die Steuerschaltung 310 in dem Coprozessor 302 von (LF1) zu (DE1) fort und öffnet entsprechend das Befehlsregister 119 des Coprozessors 302.
- In der Zeitperiode 2 empfängt, in der Befehlsdecodierstufe (DP1), der Decodierer 304 in dem Prozessor 301 den Befehl, nachdem das Befehlsregister 112 geöffnet ist, und decodiert dann den Befehl. Dann verwendet die Steuerschaltung 305 die Mikrobefehle, ausgegeben durch den Decodierer 304, und besitzt, durch Öffnen des Treibers 122, die Daten in dem allgemeinen Register 106 plaziert auf dem Datenverarbeitungseinheit-Eingangsbus 124.
- In der Befehlsdecodierstufe (DE1) des Coprozessors 302 empfängt der Decodierer 309 in dem Coprozessor 302 den Befehl, nachdem das Befehlsregister 119 geöffnet ist, und decodiert dann den Befehl.
- Beim Umschalten von der Zeitperiode 2 zu der Zeitperiode 3 öffnet die Steuerschaltung 305 in dem Prozessor 301, beim Fortschreiten von der Fließbandstufe (DP1) zu (EXP1), das Mikrobefehlsregister 113, die Datenverriegelung 114 und die Coprozessor- Datenverriegelung 118. Als Folge werden Mikrobefehle über das Mikrobefehlsregister 113 von dem Decodierer 304 zu der Steuerschaltung 305 übertragen, so dass mittels der Steuerschaltung 305 in dem Prozessor 301, der die Fließbandverarbeitung ausführt, Operanden zu der Datenverarbeitungseinheit 207 in dem Prozessor 301 von dem Datenverarbeitungseinheit-Eingangsbus 124 übertragen werden und Operanden zu dem Coprozessor 302 von dem Datenverarbeitungseinheit-Eingangsbus 140 übertragen werden. Ähnlich öffnet die Steuerschaltung 310 in dem Coprozessor 302 beim Fortschreiten von der Fließband-Stufe (DE1) zu (EXE1) das Mikrobefehlsregister 120. Wenn einmal das Mikrobefehlsregister 113 in dem Prozessor 301 geöffnet worden ist, empfängt die Steuerschaltung 305 in dem Prozessor 301 die Mikrobefehle, decodiert durch den Decodierer 304 in der Befehlsdecodierstufe (DP1). Ähnlich empfängt, wenn einmal das Mikrobefehlsregister 120 geöffnet worden ist, die Steuerschaltung 310 in dem Coprozessor 302 die Mikrobefehle, decodiert durch den Decodierer 309 in der Befehlsdecodierstufe (DE1).
- In der Zeitperiode 3 führt in der Ausführungsstufe (EXP1) des Prozessors 301 die Datenverarbeitungseinheit 207 in dem Prozessor 301 keine Datenverarbeitung aus (NOP). In der Befehlsausführungsstufe (EXE1) des Coprozessors 301 wird "Aufgabe 1", gespeichert als Aufgabeninformation in der Aufgabenverwaltungs-Einheit 361, zu der Steuerschaltung 310 des Coprozessors 302 ausgegeben.
- Die Steuerschaltung 310 in dem Coprozessor 302 öffnet den Treiber 350, so dass ein Operand auf dem Datenverarbeitungseinheit-Eingangsbus 124 zu der Coprozessor- Verarbeitungseinheit 211 in dem Coprozessor 302 übertragen wird, wobei der Selektor 360 in dem Coprozessor 302 den Datenverarbeitungseinheit-Eingangszwischenspeicher 330 entsprechend den Aufgabeninformationen "Aufgabe 1 ", ausgegeben durch die Aufgabenverwaltungseinheit 361, ausgibt, so dass ein Operand von dem Datenverarbeitungseinheit-Eingangszwischenspeicher 330 zu der Coprozessor-Verarbeitungseinheit 211 übertragen wird. Die Coprozessor-Verarbeitungseinheit 211 führt dann eine Verarbeitung unter Verwendung der Operanden von dem Datenverarbeitungseinheit-Eingangsbus 124 und der Operanden von Daten von dem Datenverarbeitungseinheit- Eingangszwischenspeicher 330 durch und gibt zwei Teile von Daten als dessen Verarbeitungsergebnis aus. Die Steuerschaltung 310 in dem Coprozessor 302 öffnet dann den Treiber 354 in dem Coprozessor 302 und besitzt eines der Teile der Verarbeitungsergebnisdaten der Coprozessor-Verarbeitungseinheit 211 auf dem Datenverarbeitungseinheit- Ausgangsbus 125 zu dem Prozessor 301 übertragen. Die Steuerschaltung 310 in dem Coprozessor 302 Öffnet auch den Treiber 255 in dem Coprozessor 302 entsprechend den Aufgabeninformationen "Aufgabe 1" und hat so den anderen Teil der Verarbeitungsergebnisdaten der Coprozessor-Verarbeitungseinheit 211 zu dem Datenverarbeitungseinheit- Ausgangszwischenspeicher 332 übertragen, wo das Verarbeitungsergebnis dann gespeichert wird.
- Beim Umschalten von der Zeitperiode 3 zu der Zeitperiode 4 öffnet die Steuerschaltung 305 in dem Prozessor 301 den Registerschreib-Zwischenspeicher 116 beim Umschalten der Fließbandverarbeitungen von (EXP1) zu (WB1) und besitzt, als Folge, eines der Verarbeitungsergebnisse von dem Datenverarbeitungseinheit-Ausgangsbus 125 zu dem allgemeinen Register 106 in dem Prozessor 301 über den geöffneten Registerschreib- Zwischenspeicher 116 übertragen.
- In der Zeitperiode 4 speichert das allgemeine Register 106 in dem Prozessor 201 einen Teil der Verarbeitungsergebnisdaten.
- Das Nachfolgende ist eine Erläuterung der Betriebsweise für einen Coprozessor- Übertragungsbefehl, der Daten, gespeichert in dem Datenverarbeitungseinheit- Ausgangszwischenspeicher 333, in das allgemeine Register 106 des Prozessors 301 hineinschreibt, wenn die Aufgabenverwaltungseinheit 361 die Aufgabeninformationen "Aufgabe 2" speichert. Die vorliegende Operation verwendet dieselbe Zeitabstimmung wie die Zustände in dem Zeitdiagramm für eine Fließband-Verarbeitung, dargestellt in Fig. 7, so dass sich die nachfolgende Erläuterung auch auf Fig. 7 beziehen wird.
- In der Zeitperiode 1 gibt der Speicher 103 den Befehl auf den Befehlszufuhrbus 126 aus, der zu dem Prozessor 301 und dem Coprozessor 302 in der Befehlsabrufstufe (IF1) des Prozessors 301 führt.
- Beim Umschalten von der Zeitperiode 1 zu der Zeitperiode 2 schreitet die Steuerschaltung 305 in dem Prozessor 301 von (IF1) zu (DP1) fort und öffnet dementsprechend das Befehlsregister 112 des Prozessors 301. In derselben Art und Weise schreitet die Steuerschaltung 310 in dem Coprozessor 302 von (IF1) zu (DE1) fort und öffnet entsprechend das Befehlsregister 119 des Coprozessors 302.
- In der Zeitperiode 2 empfängt, in der Befehlsdecodierstufe (DP1), der Decodierer 304 in dem Prozessor 301 den Befehl, nachdem das Befehlsregister 112 geöffnet ist, und decodiert dann den Befehl.
- In der Befehlsdecodierstufe (DE1) des Coprozessors 302 empfängt der Decodierer 309 in dem Coprozessor 302 den Befehl, nachdem das Befehlsregister 119 geöffnet ist, und decodiert dann den Befehl.
- Beim Umschalten von der Zeitperiode 2 zu der Zeitperiode 3, öffnet die Steuerschaltung 305 in dem Prozessor 301, beim Fortschreiten von der Fließbandstufe (DP1) zu (EXP1), das Mikrobefehlsregister 113 und die Datenverriegelung 114. Als Folge werden Mikrobefehle über das geöffnete Mikrobefehlsregister 113 von dem Decodierer 304 zu der Steuerschaltung 305 übertragen, so dass mittels der Steuerschaltung 305 in dem Prozessor 301, die Fließbandverarbeitung ausführend, die Datenverriegelung 114 geöffnet wird und Operanden zu der Datenverarbeitungseinheit 207 in dem Prozessor 301 von dem Datenverarbeitungseinheit-Eingangsbus 124 übertragen werden. Ähnlich öffnet die Steuerschaltung 310 in dem Coprozessor 302, beim Fortschreiten von der Fließbandstufe (DE1) zu (EXE1), das Mikrobefehlsregister 120. Wenn einmal das Mikrobefehlsregister 113 in dem Prozessor 301 geöffnet worden ist, empfängt die Steuerschaltung 305 in dem Prozessor 301 die Mikrobefehle, decodiert durch den Decodierer 304, in der Befehlsdecodierstufe (DP1). Ähnlich empfängt, wenn einmal das Mikrobefehlsregister 120 geöffnet worden ist, die Steuerschaltung 310 in dem Coprozessor 302 die Mikrobefehle, decodiert durch den Decodierer 309, in der Befehlsdecodierstufe (DE1).
- In der Zeitperiode 3 führt, in der Ausführungsstufe (EXP1) des Prozessors 301, die Datenverarbeitungseinheit 207 in dem Prozessor 301 keine Datenverarbeitung aus (NOP).
- In der Befehlsausführungsstufe (EXE1) des Coprozessors 302 wird "Aufgabe 2", gespeichert als Aufgabeninformation in der Aufgabenverwaltungseinheit 361, zu der Steuerschaltung 310 des Coprozessors 302 ausgegeben.
- Die Steuerschaltung 310 in dem Coprozessor 302 öffnet den Treiber 258 entsprechend der "Aufgabe 2", ausgegeben durch den Aufgabenverwaltungseinheit 361, so dass die Verarbeitungsergebnisdaten, gespeichert in dem Datenverarbeitungseinheit- Ausgangszwischenspeicher 333, auf den Datenverarbeitungseinheit-Ausgangsbus 125 übertragen werden.
- Beim Umschalten von der Zeitperiode 3 zu der Zeitperiode 4 öffnet die Steuerschaltung 305 in dem Prozessor 301 den Registerschreib-Zwischenspeicher 116 in den Umschaltfließbandprozessen von (EXP1) zu (WB1), und, als folge, wird das Verarbeitungsergebnis von dem Datenverarbeitungseinheit-Ausgangsbus 125 zu dem allgemeinen Register 106 in dem Prozessor 301 über den geöffneten Registerschreib-Zwischenspeicher 116 übertragen. In der Zeitperiode 4 speichert das allgemeine Register 106 in dem Prozessor 201 ein Teil der Verarbeitungsergebnisdaten.
- Es sollte hier angemerkt werden, dass, obwohl die Steuerschaltung 310 die Umschaltung von Aufgaben durch die Aufgabenverwaltungseinheit 361 in der vorliegenden Ausführungsform steuert, es auch möglich ist, dass eine Aufgabenumschaltung durch Ausstatten der Vorrichtung mit einer Aufgabenumschalt-Signalleitung von außerhalb der Vorrichtung durchgeführt werden kann, so dass eine Aufgabenumschaltung von außerhalb mittels eines Aufgabenumschaltsignals gesteuert werden kann.
- Ähnlich kann, während die ersten bis dritten Ausführungsformen einen Fall beschreiben, bei dem Register als Operanden-Daten für Coprozessor-Befehle spezifiziert sind, dieselbe Operation erreicht wenden, wenn Speicherstellen als Operanden-Daten spezifiziert werden. In einem solchen Fall muß der Prozessor einen Speicherzugriff durchführen, was bedeutet, dass die Ausführungsgeschwindigkeit nicht besser als herkömmliche Techniken ist, obwohl es nicht länger notwendig wird, den Coprozessor mit einer Schaltung zum Steuern eines Speicherzugangs auszustatten, so dass die Skalierung der Schaltung, und deshalb die Kosten, kleiner als herkömmliche Schaltungen ist.
Claims (22)
1. Informationsverarbeitungsvorrichtung, die die einen Hauptprozessor (101) und einen
Coprozessor (102) enthält, die Daten entsprechend einem in einem Speicher (103)
gespeicherten Befehl verarbeiten, wobei die Informationsverarbeitungsvorrichtung
umfasst:
einen Befehlsbus (126), der dazu dient, den Befehl von dem Speicher zu dem
Hauptprozessor und dem Coprozessor zu übertragen;
eine Befehlserfassungseinrichtung (112, 104), die in dem Hauptprozessor
installiert ist, um einen Coprozessor-Berechnungsbefehl, bei dem es sich um einen
Befehl handelt, der von dem Coprozessor ausgeführt werden sollte, aus allen von
dem Speicher über den Befehlsbus empfangenen Befehlen zu erfassen;
eine Operanden-Identifizierungseinrichtung (105), die in dem Hauptprozessor
installiert ist und Quellenregister und Zielregister identifiziert, die durch Operanden in
dem von der Befehlserfassungseinrichtung erfassten Befehl angegeben werden;
eine Coprozessor-Befehlserfassungseinrichtung (119, 109), die in dem
Coprozessor installiert ist und parallel zu der Befehlserfassungseinrichtung (112, 104) in
dem Hauptprozessor den Coprozessor-Berechnungsbefehl aus allen von dem
Speicher (103) über den Befehlsbus empfangenen Befehlen erfasst; und
eine Coprozessor-Befehlsausführungseinrichtung (110), die in dem Coprozessor
installiert ist und den von der Coprozessor-Befehlserfassungseinrichtung erfassten
Coprozessor-Berechnungsbefehl unter Verwendung der von einem Datenbus
zugeführten Daten ausführt und das Berechnungsergebnis auf dem Datenbus
zuführt,
dadurch gekennzeichnet, dass der Datenbus umfasst:
einen ersten Bus (124), der dazu dient, Daten von dem Hauptprozessor zu dem
Coprozessor zu übertragen;
einen zweiten Bus (125), der Daten von dem Coprozessor zu dem Hauptprozessor
überträgt;
und weiterhin dadurch gekennzeichnet, dass die Vorrichtung des Weiteren
umfasst:
einen Registersatz (106), der mit dem ersten Bus und dem zweiten Bus verbunden
ist und eine Vielzahl von Registern enthält;
eine Datenzuführeinrichtung (118), die in dem Hauptprozessor installiert ist und
dem Coprozessor über den ersten Bus Daten von den identifzierten
Quellenregistern zuführt; und
eine Datenspeichereinrichtung (116, 117), die in dem Hauptprozessor installiert ist
und ein Berechnungsergebnis, das von dem Coprozessor über den zweiten Bus
zugeführt wird, in dem identifizierten Zielregister speichert;
wobei die Coprozessor Befehlserfassungseinrichtung parallel zu der
Befehlserfassungseinrichtung in dem Hauptprozessor arbeitet; und
die Coprozessor-Befehlsausführungseinrichtung mit der Ausführung des
Coprozessor-Berechnungsbefehls in einem Zyklus beginnt, der unmittelbar auf einen
Zyklus folgt, in dem die Operanden-Identifizierungseinrichtung die Quellen- und
Zielregister identifiziert.
2. Informationsverarbeitungsvorrichtung nach Anspruch 1, wobei:
der Coprozessor einen Eingangs-Pufferspeicher enthält der die auf dem ersten
Bus gesendeten Date vorübergehend speichert, und die Befehlserfassungseinrichtung
einen ersten Übertragungsbefehl erfasst, der Datenübertragung von dem
Hauptprozessor zu dem Coprozessor anzeigt;
die Operanden-Identifizierungseinrichtung Quellenregister identifiziert, die durch
Operanden des erfassten ersten Übertragungsbefehls angegeben werden;
die Datenzuführeinrichtung Daten in dem identifizierten Quellenregister für den
ersten Übertragungsbefehl auf dem ersten Bus ausgibt;
die Coprozessor-Befehlserfassungseinrichtung beim Erfassen des ersten
Übertragungsbefehls die Daten auf dem ersten Bus in dem Eingangs-Pufferspeicher
speichert; und
die Coprozessor-Befehlsausführungseinrichtung die Daten in dem Eingangs-
Pufferspeicher beim Ausführen von Coprozessor-Berechnungsbefehlen nutzt, für
die wenigstens drei Operanden benötigt werden.
3. Informationsverarbeitungsvorrichtung nach Anspruch 2, die des Weiteren umfasst:
einen Sicherungs-Pufferspeicher, der einen Bereich zum Speichern von Daten
aufweist;
eine Sicherungseinrichtung, die in dem Coprozessor installiert ist und beim
Empfangen eines Unterbrechungssignals die Daten in dem Eingangs-Pufferspeicher in
dem Sicherungs-Pufferspeicher speichert; und
eine Rückführeinrichtung, die in dem Coprozessor installiert ist und beim Erfassen
eines Befehls für eine Rückkehr von einer Unterbrechung die Daten in dem
Sicherungs-Pufferspeicher zu dem Eingangs-Pufferspeicher zurückführt,
wobei der Hauptprozessor beim Empfangen einer Unterbrechungsanforderung ein
Unterbrechungssignal an die Sicherungseinrichtung ausgibt und die Coprozessor-
Befehlserfassungseinrichtung beim Erfassen eines Befehls für die Rückkehr von
einer Unterbrechung die Rückführeinrichtung benachrichtigt.
4. Informationsverarbeitungsvorrichtung nach Anspruch 2, wobei:
der Coprozessor des Weiteren einen Ausgangs-Pufferspeicher enthält, der einen
Teil des Berechnungsergebnisses der Coprozessor-
Befehlsausführungseinrichtung speichert, bei dem es sich um die Daten auf dem
zweiten Bus handelt,
die Coprozessor-Befehlserfassungseinrichtung beim Erfassen eines zweiten
Übertragungsbefehls, der Datenübertragung von dem Coprozessor zu dem
Hauptprozessor anzeigt, Daten in dem Ausgangs-Pufferspeicher, bei denen es sich um
einen Teil des Berechnungsergebnisses der Coprozessor-
Befehlsausführungseinrichtung handelt, auf dem zweiten Bus ausgeben lässt,
die Befehlserfassungseinrichtung den zweiten Übertragungsbefehl erfasst, die
Operanden-Identifizierungseinrichtung Register identifiziert, die als Ziele in
Operanden des zweiten Übertragungsbefehls angegeben sind, und die
Datenspeichereinrichtung Daten von dem zweiten Bus in den identifizierten Registern speichert.
5. Informationsverarbeitungsvorrichtung nach Anspruch 4, die des Weiteren umfasst:
einen Sicherungs-Pufferspeicher, der einen Bereich zum Speichern von Daten
aufweist;
eine Sicherungseinrichtung, die in dem Coprozessor installiert ist und beim
Empfangen eines Unterbrechungssignals die Daten in dem Eingangs-Pufferspeicher
und in dem Ausgangs-Pufferspeicher in dem Sicherungs-Pufferspeicher speichert;
eine Rückführeinrichtung, die in dem Coprozessor installiert ist und beim Erfassen
eines Befehls für eine Rückkehr von einer Unterbrechung die Daten in dem
Sicherungs-Pufferspeicher zu dem Eingangs-Pufferspeicher und dem
Ausgangs-Pufferspeicher zurückführt,
wobei der Hauptprozessor beim Empfangen einer Unterbrechungsanforderung ein
Unterbrechungssignal an die Sicherungseinrichtung ausgibt und die Coprozessor-
Befehlserfassungseinrichtung beim Erfassen eines Befehls für die Rückkehr von
einer Unterbrechung die Rückführeinrichtung benachrichtigt.
6. Informationsverarbeitungsvorrichtung nach Anspruch 4, wobei:
die Coprozessor-Befehlserfassungseinrichtung einen Befehl zum Ausführen von
Aufgabenumschaltung entsprechend einer Aufgabennummer erfasst die eine
Aufgabe identifiziert,
der Eingangs-Pufferspeicher und der Ausgangs-Pufferspeicher eine Vielzahl von
Paaren von Speicherbereichen enthalten, und
der Coprozessor des Weiteren eine Aufgabenverwaltungseinrichtung enthält, die
Dateneingabe und -ausgabe für ein Paar von Speicherbereichen, das der
Aufgabennummer in dem erfassten Aufgabenumschaltungsbefehl entspricht, zulässt und
die Dateneingabe und -ausgabe für alle anderen Paare von Speicherbereichen
verbietet.
7. Informationsverarbeitungsvorrichtung nach Anspruch 1, die des Weiteren umfasst:
eine Hauptprozessorstufen-Statusverwaltungseinrichtung, die eine Anzahl von
Zyklen in einer Befehlsausführungsstufe des Hauptprozessors so verwaltet, dass
sie einer Anzahl von Ausführungszyklen der Coprozessor-
Befehlsausführungseinrichtung entspricht, wobei:
der Hauptprozessor Fließbandverarbeitung ausführt, die wenigstens eine
Befehlsabrufstufe, eine Befehlsdecodierstufe und die Befehlsausführungsstufe einschließt,
und der Coprozessor synchron zu dem Hauptprozessor arbeitet.
8. Informationsverarbeitungsvorrichtung nach Anspruch 7, wobei die Coprozessor-
Befehlsausführungseinrichtung beim Erreichen eines abschließenden Zyklus
während einer Ausführung des Coprozessor-Befehls die Hautprozessorstufen-Statusverwaltungseinrichtung
über ein Ende der Coprozessor-Befehlsausführung
informiert und die Hauptprozessorstufen-Statusverwaltungseinrichtung beim
Empfangen einer Benachrichtigung über das Ende der Coprozessor-Befehlsausführung
die Befehlsausführungsstufe während eines Ausführungszyklus beendet, in dem
die Benachrichtigung empfangen wird.
9. Informationsverarbeitungsvorrichtung nach Anspruch 7, die des Weiteren eine
Hauptprozessor-Bestimmungseinrichtung umfasst, die eine Anzahl von Zyklen in
der Ausführungsstufe eines Hauptprozessors entsprechend einer Art des
Coprozessor-Berechnungsbefehls bestimmt, der von der Befehlserfassungseinrichtung
erfasst wird, wobei die Hauptprozessorstufen-Statusverwaltungseinrichtung die
Befehlsausführungsstufe über die Anzahl von Zyklen fortsetzen lässt, die durch die
Hauptprozessor-Bestimmungseinrichtung bestimmt wird.
10. Informationsverarbeitungsvorrichtung nach Anspruch 7, wobei:
der Coprozessor einen Eingangs-Pufferspeicher enthält, der die auf dem ersten
Bus gesendeten Daten vorübergehend speichert, und die
Befehlserfassungseinrichtung einen ersten Übertragungsbefehl erfasst, der Datenübertragung von dem
Hauptprozessor zu dem Coprozessor anzeigt;
die Operanden-Identifizierungseinrrichtung Quellenregister identifiziert, die durch
Operanden des erfassten ersten Übertragungsbefehls angegeben werden,
die Datenzuführeinrichtung Daten in dem identifzierten Quellenregister für den
ersten Übertragungsbefehl auf dem ersten Bus ausgibt,
die Coprozessor-Befehlserfassungseinrichtung beim Erfassen des ersten
Übertragungsbefehls die Daten auf dem ersten Bus in dem Eingangs-Pufferspeicher
speichert, und
die Coprozessor-Befehlsausführungseinrichtung, die Daten in dem Eingangs-
Pufferspeicher beim Ausführen von Coprozessor-Berechnungsbefehlen nutzt, für
die wenigsten drei Operanden benötigt werden.
11. Informationsverarbeitungsvorrichtung nach Anspruch 10, die des Weiteren
umfasst:
einen Sicherungs-Pufferspeicher, der einen Bereich zum Speichern von Daten
aufweist;
eine Sicherungseinrichtung, die in dem Pufferspeicher installiert ist und beim
Empfangen eines Unterbrechungssignals die Daten in dem
Eingangs-Pufferspeicher in dem Sicherungs-Pufferspeicher speichert; und
eine Rückführeinrichtung, die in dem Coprozessor installiert ist und beim Erfassen
eines Befehls für eine Rückkehr von einer Unterbrechung die Daten in dem
Sicherungs-Pufferspeicher zu dem Eingangs-Pufferspeicher zurückführt,
wobei der Hauptprozessor beim Empfangen einer Unterbrechungsanforderung ein
Unterbrechungssignal an die Sicherungseinrichtung ausgibt und die Coprozessor-
Befehlserfassungseinrichtung beim Erfassen eines Befehls für die Rückkehr von
einer Unterbrechung die Rückführeinrichtung benachrichtigt.
12. Informationsverarbeitungsvorrichtung nach Anspruch 10, wobei:
der Coprozessor des Weiteren einen Ausgangs-Pufferspeicher enthält, der einen
Teil des Berechnungsergebnisses der
Coprozessor-Befehlsausführungseinrichtung speichert, bei dem es sich um die Daten auf dem zweiten Bus handelt,
die Coprozessor-Befehlserfassungseinrichtung beim Erfassen eines zweiten
Übertragungsbefehls, der Datenübertragung von dem Coprozessor zu dem
Hauptprozessor anzeigt, Daten in dem Ausgangs-Pufferspeicher, bei denen es sich um
einen Teil des Berechnungsergebnisses der Coprozessor-
Befehlsausführungseinrichtung handelt, auf dem zweiten Bus ausgeben lässt,
die Befehlserfassungseinrichtung den zweiten Übertragungsbefehl erfasst, die
Operanden-Identifizierungseinrichtung Register identifiziert, die als Ziele in Operanden
des zweiten Übertragungsbefehls angegeben sind, und die
Datenspeichereinrichtung Daten von dem zweiten Bus in den identifizierten Registern speichert.
13. Informationsverarbeitungsvorrichtung nach Anspruch 12, die des Weiteren
umfasst:
einen Sicherungs-Pufferspeicher, der einen Bereich zum Speichern von Daten
aufweist;
eine Sicherungs-Einrichtung, die in dem Coprozessor installiert ist und beim
Empfangen eines Unterbrechungssignals die Daten in dem Eingangs-Pufferspeicher
und in dem Ausgangs-Pufferspeicher in dem Sicherungs-Pufferspeicher sichert;
eine Rückführeinrichtung, die in dem Coprozessor installiert ist und beim Erfassen
eines Befehls für eine Rückkehr von einer Unterbrechung die Daten in dem
Sicherungs-Pufferspeicher zu dem Eingangs-Pufferspeicher und dem Ausgangs-
Pufferspeicher zurückführt,
wobei der Hauptprozessor beim Empfangen einer Unterbrechungsanforderung ein
Unterbrechungssignal an die Sicherungseinrichtung ausgibt und die Coprozessor-
Befehlserfassungseinrichtung die Rückführeinrichtung beim Erfassen eines
Befehls für die Rückkehr von einer Unterbrechung benachrichtigt.
14. Informationsverarbeitungsvorrichtung nach Anspruch 12, wobei:
die Coprozessor-Befehlserfassungseinrichtung einen Befehl zum Ausführen von
Aufgabenumschaltung entsprechend einer Aufgabennummer erfasst, die eine
Aufgabe identifiziert,
der Eingangs-Pufferspeicher und der Ausgangs-Pufferspeicher eine Vielzahl von
Paaren von Speicherbereichen enthalten, und
der Coprozessor des Weiteren eine Aufgabenverwaltungseinrichtung enthält, die
Dateneingabe und -ausgabe für ein Paar von Speicherbereichen, die der Aufgabennummer
in dem erfassten Aufgabenumschaltungsbefehl entsprechen, zulässt
und Dateneingabe und -ausgabe für alle anderen Paare von Speicherbereichen
verbietet.
15. Informationsverarbeitungsvorrichtung nach Anspruch 1, die des Weiteren umfasst:
ein Hauptprozessor-Flag-Register, das eine Vielzahl von Flags speichert, die
Zustände eines Berechnungsergebnisses anzeigen;
einen ersten Flag-Bus, der dazu dient, von der Datenzuführeinrichtung zugeführte
Flags zu der Coprozessor-Befehlsausführungseinrichtung zu übertragen; und
einen zweiten Flag-Bus, der dazu dient, neue Flags von der Coprozessor-
Befehlsverarbeitungseinrichtung zu dem Hauptprozessor-Flag-Register zu
übertragen,
wobei die Datenzuführeinrichtung Flags in dem Hauptprozessor-Flag-Register
dem Coprozessor zusammen mit den Daten in den Quellenregistern zuführt, die
Datenspeichereinrichtung die neuen Flags, die von dem Coprozessor übertragen
werden, in dem Hauptprozessor-Flag-Register beim Speichern des
Berechnungsergebnisses in den Zielregistern speichert und die
Coprozessor-Befehlsausführungseinrichtung den Coprozessor-Berechnungsbefehl unter Verwendung von
Flags und Daten ausführt, die durch die Datenzuführeinrichtung zugeführt werden,
bevor ein neues Flag, das einen Zustand eines Berechnungsergebnisses anzeigt,
an die Datenspeichereinrichtung ausgegeben wird.
16. Informationsverarbeitungsvorrichtung nach Anspruch 15, die des Weiteren
umfasst:
eine Hauptprozessorstufen-Statusverwaltungseinrichtung, die eine Anzahl von
Zyklen in einer Befehlsausführungsstufe des Hauptprozessors so verwaltet, dass
sie einer Anzahl von Ausführungszyklen der
Coprozessor-Befehlsausführungseinrichtung entspricht, wobei;
der Hauptprozessor Fließbandverarbeitung ausführt, die wenigstens eine
Befehlsabrufstufe, eine Befehlsdecodierstufe und die Befehlsausführungsstufe einschießt,
und der Coprozessor synchron zu dem Hauptprozessor arbeitet.
17. Informationsverarbeitungsvorrichtung nach Anspruch 16, wobei die Coprozessor-
Befehlsausführungseinrichtung beim Erreichen eines abschließenden Zyklus
während einer Ausführung des Coprozessor Befehls die
Hauptprozessorstufen-Statusverwaltungseinrichtung über ein Ende der Coprozessor-Befehlsausführung
benachrichtigt und die Hauptprozessorstufen-Statusverwaltungseinrichtung beim
Empfangen einer Benachrichtigung über das Ende der
Coprozessor-Befehlsausführung die Befehlsausführungsstufe während eines Ausführungszyklus
abschließt, in dem die Benachrichtigung empfangen wird.
18. Informationsverarbeitungsvorrichtung nach Anspruch 16, die des Weiteren eine
Hauptprozessor-Bestimmungseinrichtung umfasst, die eine Anzahl von Zyklen in
der Ausführungsstufe eines Hauptprozessors entsprechend einer Art des
Coprozessor Berechnungsbefehl bestimmt, der von der Befehlserfassungseinrichtung
erfasst wird, wobei die Hauptprozessorstufen-Statusverwaltungseinrichtung die
Befehlsausführungsstufe über die Anzahl von Zyklen fortsetzen lässt, die durch die
Hauptprozessor-Bestimmungseinrichtung bestimmt wird.
19. Informationsverarbeitungsvorrichtung nach Anspruch 1, die des Weiteren umfasst:
wenigstens einen Coprozessor mit einem Coprozessor-Berechnungsbefehl, der
von jedem Coprozessor ausgeführt wird und für einen unterschiedlichen Typ von
Berechnung bestimmt ist,
wobei der Befehlsbus dazu dient, einen aus dem Speicher entnommenen Befehl
zu der Coprozessor-Befehlserfassungseinrichtung in jedem Coprozessor zu
übertragen, der erste Bus dazu dient, von der Datenzuführeinrichtung zugeführte Daten
zu der Coprozessor-Befehlsausführungseinrichtung in jedem Coprozessor zu
übertragen, der zweite Bus dazu dient, ein Berechnungsergebnis der
Coprozessor-Befehlsausführungseinrichtung in einem Coprozessor, der den Coprozessor-
Berechnungsbefehl ausgeführt hat, zu der Datenspeichereinrichtung zu übertragen,
und die Befehlserfassungseinrichtung Coprozessor-Befehle für jeden
Coprozessor erfasst.
20. Informationsverarbeitungsvorrichtung nach Anspruch 19, die des Weiteren
umfasst:
eine Hauptprozessorstufen-Statusverwaltungseinrichtung, die eine Anzahl von
Zyklen in einer Befehlsausführungsstufe des Hauptprozessors so verwaltet, dass
sie einer Anzahl von Ausführungszyklen der
Coprozessor-Befehlsausführungseinrichtung eines Coprozessors entspricht, der einen Coprozessor-Befehl ausführt,
wobei:
der Hauptprozessor Fließbandverarbeitung ausführt, die wenigstens eine
Befehlsabrufstufe, eine Befehlsdecodierstufe und die Befehlsausführungsstufe einschließt,
und jeder Coprozessor synchron zu dem Hauptprozessor arbeitet.
21. Informationsverarbeitungsvorrichtung nach Anspruch 20, wobei die Coprozessor-
Befehlsausführungseinrichtung in einem Coprozessor, der den Coprozessor-
Befehl ausführt, beim Erreichen eines abschließenden Zyklus während einer
Ausführung des Coprozessor-Befehls die
Hauptprozessorstufen-Statusverwaltungseinrichtung über ein Ende der Coprozessor-Befehlsausführung benachrichtigt und
die Hauptprozessorstufen-Statusverwaltungseinrichtung beim Empfangen einer
Benachrichtigung über das Ende der Coprozessor-Befehlsausführung die
Befehlsausführungsstufe während eines Ausführungszyklus beendet, in dem die
Benachrichtigung empfangen wird.
22. Informationsverarbeitungsvorrichtung nach Anspruch 20, die des Weiteren eine
Hauptprozessor-Bestimmungseinrichtung umfasst, die eine Anzahl von Zyklen in
der Ausführungsstufe eines Hauptprozessors entsprechend einer Art des
Coprozessor-Berechnungsbefehls bestimmt, der von der Befehlserfassungseinrichtung
erfasst wird, wobei die Hauptprozessorstufen-Statusverwaltungseinrichtung die
Befehlsausführungsstufe über die Anzahl von Zyklen fortsetzen lässt, die durch die
Hauptprozessor-Bestimmungseinrichtung bestimmt wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7106624A JP2987308B2 (ja) | 1995-04-28 | 1995-04-28 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69619885D1 DE69619885D1 (de) | 2002-04-25 |
DE69619885T2 true DE69619885T2 (de) | 2002-07-18 |
Family
ID=14438271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69619885T Expired - Lifetime DE69619885T2 (de) | 1995-04-28 | 1996-04-25 | Datenverarbeitungsanordnung mit Koprozessor |
Country Status (7)
Country | Link |
---|---|
US (1) | US5909565A (de) |
EP (1) | EP0740249B1 (de) |
JP (1) | JP2987308B2 (de) |
KR (1) | KR100235397B1 (de) |
CN (1) | CN1153155C (de) |
DE (1) | DE69619885T2 (de) |
TW (1) | TW310409B (de) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6505290B1 (en) * | 1997-09-05 | 2003-01-07 | Motorola, Inc. | Method and apparatus for interfacing a processor to a coprocessor |
US5864703A (en) * | 1997-10-09 | 1999-01-26 | Mips Technologies, Inc. | Method for providing extended precision in SIMD vector arithmetic operations |
US6052771A (en) * | 1998-01-20 | 2000-04-18 | International Business Machines Corporation | Microprocessor with pipeline synchronization |
US6434689B2 (en) * | 1998-11-09 | 2002-08-13 | Infineon Technologies North America Corp. | Data processing unit with interface for sharing registers by a processor and a coprocessor |
AU782238B2 (en) * | 1999-08-30 | 2005-07-14 | Ip Flex Inc. | Control program product and data processing system |
JP2001092662A (ja) * | 1999-09-22 | 2001-04-06 | Toshiba Corp | プロセッサコア及びこれを用いたプロセッサ |
WO2001069372A2 (en) * | 2000-03-10 | 2001-09-20 | Koninklijke Philips Electronics N.V. | Method for compiling a program |
US7376820B2 (en) | 2000-03-16 | 2008-05-20 | Fujitsu Limited | Information processing unit, and exception processing method for specific application-purpose operation instruction |
JP3957948B2 (ja) | 2000-04-12 | 2007-08-15 | 富士通株式会社 | 演算処理装置 |
US20060095723A1 (en) * | 2001-11-05 | 2006-05-04 | Moyer William C | Method and apparatus for interfacing a processor to a coprocessor |
US7007101B1 (en) * | 2001-11-09 | 2006-02-28 | Radisys Microware Communications Software Division, Inc. | Routing and forwarding table management for network processor architectures |
US7073048B2 (en) * | 2002-02-04 | 2006-07-04 | Silicon Lease, L.L.C. | Cascaded microcomputer array and method |
US7028167B2 (en) * | 2002-03-04 | 2006-04-11 | Hewlett-Packard Development Company, L.P. | Core parallel execution with different optimization characteristics to decrease dynamic execution path |
ATE472134T1 (de) | 2002-04-18 | 2010-07-15 | Nxp Bv | Prozessor mit mehrfachbefehlsausgabe |
AU2003287319B2 (en) * | 2002-10-31 | 2010-06-24 | Lockheed Martin Corporation | Pipeline coprocessor |
US7386704B2 (en) * | 2002-10-31 | 2008-06-10 | Lockheed Martin Corporation | Pipeline accelerator including pipeline circuits in communication via a bus, and related system and method |
US20040103269A1 (en) * | 2002-11-27 | 2004-05-27 | Intel Corporation | Processor context register mapping |
US7254696B2 (en) * | 2002-12-12 | 2007-08-07 | Alacritech, Inc. | Functional-level instruction-set computer architecture for processing application-layer content-service requests such as file-access requests |
US7430652B2 (en) * | 2003-03-28 | 2008-09-30 | Tarari, Inc. | Devices for performing multiple independent hardware acceleration operations and methods for performing same |
US7293159B2 (en) * | 2004-01-15 | 2007-11-06 | International Business Machines Corporation | Coupling GP processor with reserved instruction interface via coprocessor port with operation data flow to application specific ISA processor with translation pre-decoder |
US7765334B2 (en) * | 2004-05-12 | 2010-07-27 | Canon Kabushiki Kaisha | Electronic apparatus for use with removable storage medium, control method therefor, and program for implementing the method |
US7441106B2 (en) | 2004-07-02 | 2008-10-21 | Seagate Technology Llc | Distributed processing in a multiple processing unit environment |
US7395410B2 (en) * | 2004-07-06 | 2008-07-01 | Matsushita Electric Industrial Co., Ltd. | Processor system with an improved instruction decode control unit that controls data transfer between processor and coprocessor |
FR2875982B1 (fr) * | 2004-09-28 | 2006-12-22 | Commissariat Energie Atomique | Architecture de communication semi-automatique noc pour applications "flots de donnees" |
US7619541B2 (en) * | 2004-10-01 | 2009-11-17 | Lockheed Martin Corporation | Remote sensor processing system and method |
US7818724B2 (en) * | 2005-02-08 | 2010-10-19 | Sony Computer Entertainment Inc. | Methods and apparatus for instruction set emulation |
JP4211751B2 (ja) * | 2005-03-25 | 2009-01-21 | セイコーエプソン株式会社 | 集積回路装置 |
US8145882B1 (en) * | 2006-05-25 | 2012-03-27 | Mips Technologies, Inc. | Apparatus and method for processing template based user defined instructions |
US8032734B2 (en) * | 2006-09-06 | 2011-10-04 | Mips Technologies, Inc. | Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor |
US7647475B2 (en) * | 2006-09-06 | 2010-01-12 | Mips Technologies, Inc. | System for synchronizing an in-order co-processor with an out-of-order processor using a co-processor interface store data queue |
US7594079B2 (en) | 2006-09-29 | 2009-09-22 | Mips Technologies, Inc. | Data cache virtual hint way prediction, and applications thereof |
US20080082793A1 (en) * | 2006-09-29 | 2008-04-03 | Mips Technologies, Inc. | Detection and prevention of write-after-write hazards, and applications thereof |
US9946547B2 (en) | 2006-09-29 | 2018-04-17 | Arm Finance Overseas Limited | Load/store unit for a processor, and applications thereof |
JP2008310693A (ja) * | 2007-06-15 | 2008-12-25 | Panasonic Corp | 情報処理装置 |
US7930519B2 (en) * | 2008-12-17 | 2011-04-19 | Advanced Micro Devices, Inc. | Processor with coprocessor interfacing functional unit for forwarding result from coprocessor to retirement unit |
FR2942556B1 (fr) * | 2009-02-24 | 2011-03-25 | Commissariat Energie Atomique | Unite d'allocation et de controle |
JP2011138308A (ja) * | 2009-12-28 | 2011-07-14 | Sony Corp | プロセッサ、コプロセッサ、情報処理システムおよびそれらにおける制御方法 |
CN101895743B (zh) * | 2010-03-11 | 2013-11-13 | 宇龙计算机通信科技(深圳)有限公司 | 一种处理器间编解码数据的传输方法、系统及可视电话 |
CN103064655A (zh) * | 2011-10-20 | 2013-04-24 | 知惠科技股份有限公司 | 模块化程序处理装置 |
CN106406810B (zh) * | 2014-07-02 | 2019-08-06 | 上海兆芯集成电路有限公司 | 微处理器及其方法 |
US11132203B2 (en) * | 2014-08-14 | 2021-09-28 | Texas Instruments Incorporated | System and method for synchronizing instruction execution between a central processor and a coprocessor |
CN107451090B (zh) * | 2016-06-01 | 2020-09-11 | 华为技术有限公司 | 数据处理系统和数据处理方法 |
CN106371807B (zh) * | 2016-08-30 | 2019-03-19 | 华为技术有限公司 | 一种扩展处理器指令集的方法及装置 |
CN106598059A (zh) * | 2017-01-25 | 2017-04-26 | 桂林航天工业学院 | 基于fpga的多旋翼无人机系统 |
WO2019169582A1 (zh) * | 2018-03-07 | 2019-09-12 | 华为技术有限公司 | 处理中断的方法和装置 |
US11030075B2 (en) * | 2018-11-14 | 2021-06-08 | Microsoft Technology Licensing, Llc | Efficient register breakpoints |
GB2579617B (en) * | 2018-12-06 | 2021-01-27 | Advanced Risc Mach Ltd | An apparatus and method for handling exception causing events |
CN110502278B (zh) * | 2019-07-24 | 2021-07-16 | 瑞芯微电子股份有限公司 | 基于RiscV扩展指令的神经网络协处理器及其协处理方法 |
US11263014B2 (en) * | 2019-08-05 | 2022-03-01 | Arm Limited | Sharing instruction encoding space between a coprocessor and auxiliary execution circuitry |
CN113254070B (zh) * | 2020-02-07 | 2024-01-02 | 阿里巴巴集团控股有限公司 | 加速单元、片上系统、服务器、数据中心和相关方法 |
CN113157636B (zh) * | 2021-04-01 | 2023-07-18 | 西安邮电大学 | 协处理器、近数据处理装置和方法 |
CN117667220B (zh) * | 2024-01-30 | 2024-05-17 | 芯来智融半导体科技(上海)有限公司 | 指令处理方法、装置、计算机设备和存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4547849A (en) * | 1981-12-09 | 1985-10-15 | Glenn Louie | Interface between a microprocessor and a coprocessor |
US4758950A (en) * | 1983-04-18 | 1988-07-19 | Motorola, Inc. | Method and apparatus for selectively delaying an interrupt of a coprocessor |
DE3486465D1 (de) * | 1983-04-18 | 1998-04-02 | Motorola Inc | Verfahren und Vorrichtung zum Koordinieren einer Instruktionsausführung durch eine Zusatzdatenverarbeitungseinheit |
JPS62151971A (ja) * | 1985-12-25 | 1987-07-06 | Nec Corp | マイクロ・プロセツサ装置 |
JPH0679307B2 (ja) * | 1987-10-22 | 1994-10-05 | 日本電気株式会社 | コプロセッサの並行動作制御方式 |
JPH01147656A (ja) * | 1987-12-03 | 1989-06-09 | Nec Corp | マイクロプロセッサ |
JP2667864B2 (ja) * | 1988-03-23 | 1997-10-27 | 株式会社日立製作所 | データ処理装置 |
JPH01243167A (ja) * | 1988-03-25 | 1989-09-27 | Hitachi Ltd | データ処理装置 |
JP2741867B2 (ja) * | 1988-05-27 | 1998-04-22 | 株式会社日立製作所 | 情報処理システムおよびプロセツサ |
JP2946952B2 (ja) * | 1992-07-31 | 1999-09-13 | ティーディーケイ株式会社 | 複合型薄膜磁気ヘッド |
US5655131A (en) * | 1992-12-18 | 1997-08-05 | Xerox Corporation | SIMD architecture for connection to host processor's bus |
-
1995
- 1995-04-28 JP JP7106624A patent/JP2987308B2/ja not_active Expired - Lifetime
-
1996
- 1996-03-29 US US08/625,627 patent/US5909565A/en not_active Expired - Lifetime
- 1996-04-10 TW TW085104225A patent/TW310409B/zh not_active IP Right Cessation
- 1996-04-25 EP EP96302880A patent/EP0740249B1/de not_active Expired - Lifetime
- 1996-04-25 DE DE69619885T patent/DE69619885T2/de not_active Expired - Lifetime
- 1996-04-26 CN CNB961056444A patent/CN1153155C/zh not_active Expired - Lifetime
- 1996-04-27 KR KR1019960013275A patent/KR100235397B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US5909565A (en) | 1999-06-01 |
JPH08305568A (ja) | 1996-11-22 |
TW310409B (de) | 1997-07-11 |
EP0740249B1 (de) | 2002-03-20 |
JP2987308B2 (ja) | 1999-12-06 |
DE69619885D1 (de) | 2002-04-25 |
CN1140857A (zh) | 1997-01-22 |
CN1153155C (zh) | 2004-06-09 |
KR100235397B1 (ko) | 1999-12-15 |
EP0740249A1 (de) | 1996-10-30 |
KR960038572A (ko) | 1996-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69619885T2 (de) | Datenverarbeitungsanordnung mit Koprozessor | |
DE3689394T2 (de) | Informationsverarbeitungsanlage mit einem Allzweckprozessor und einem Sonderzweckprozessor. | |
DE19914210B4 (de) | Verfahren und Prozessor für eine gestaffelte Ausführung einer Anweisung | |
DE69724771T2 (de) | Zentralprozessoreinheit mit x86 und dsp kern und einem dsp funktions-dekoder zum abbilden von x 86-befehlen auf dsp-befehle | |
DE3853529T2 (de) | Dynamische Mehrbefehle-Mehrdaten-Mehrpipeline-Gleitpunkteinheit. | |
DE69308548T2 (de) | Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor. | |
DE69017178T2 (de) | Datenverarbeitungssystem mit Vorrichtung zur Befehlskennzeichnung. | |
DE69329364T2 (de) | Zentralprozessoreinheit mit verminderter Leistungsaufnahme | |
DE69129565T2 (de) | Hochleistungsfähiger Emulator mit Pipelining | |
DE68927492T2 (de) | Verfahren und Vorrichtung zur gleichzeitigen Verteilung von Befehlen an mehrere funktionelle Einheiten | |
DE69810064T2 (de) | Verfahren und Anordnung zur Veränderung der Durchführung eines Nachfolgebefehls in einem Dataprozessor | |
DE68927911T2 (de) | Datenverarbeitungssystem | |
DE69636416T2 (de) | Mikroprozessor ausgelegt zum erkennen eines unterprogramm-aufrufs einer dsp-routine und zum ansteuern eines dsp, diese routine auszuführen | |
DE69701141T2 (de) | Multithreaded mikroprozessor ausgestaltet zur ausführung von unterbrechungsverarbeitungsroutinen als threads | |
DE69636861T2 (de) | Mikroprozessor mit Lade-/Speicheroperation zu/von mehreren Registern | |
DE3751164T2 (de) | Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten. | |
DE69523395T2 (de) | Datenprozessor mit gesteuertem Stoss-Speicherzugriff und Vorrichtung dafür | |
DE69130858T2 (de) | Überlappende Serienverarbeitung | |
DE69418146T2 (de) | Temporärer Registersatz für einen superpipeline-superskalaren Prozessor | |
DE69130757T2 (de) | Ausführungsvorrichtung für bedingte Verzweigungsbefehle | |
DE4335475A1 (de) | Datenverarbeitungseinrichtung mit Cache-Speicher | |
DE4207148A1 (de) | Superscalar-prozessor | |
DE60034526T2 (de) | System zur Reduzierung von Energieverbrauch | |
DE69419036T2 (de) | Datenverarbeitungssystem und betriebsverfahren | |
DE69416485T2 (de) | Datenverarbeitungsgerät zum Behandeln von mehreren, geteilten Unterbrechungen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: PANASONIC CORP., KADOMA, OSAKA, JP |