DE3750284T2 - Mikroprozessorsystem. - Google Patents

Mikroprozessorsystem.

Info

Publication number
DE3750284T2
DE3750284T2 DE3750284T DE3750284T DE3750284T2 DE 3750284 T2 DE3750284 T2 DE 3750284T2 DE 3750284 T DE3750284 T DE 3750284T DE 3750284 T DE3750284 T DE 3750284T DE 3750284 T2 DE3750284 T2 DE 3750284T2
Authority
DE
Germany
Prior art keywords
coprocessor
data transfer
main processor
data
instruction
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 - Fee Related
Application number
DE3750284T
Other languages
English (en)
Other versions
DE3750284D1 (de
Inventor
Atsushi Hasegawa
Kouzi Hashimoto
Kazuhiko Iwasaki
Ikuya Kawasaki
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Microcomputer System Ltd
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Microcomputer System Ltd, Hitachi Ltd filed Critical Hitachi Microcomputer System Ltd
Publication of DE3750284D1 publication Critical patent/DE3750284D1/de
Application granted granted Critical
Publication of DE3750284T2 publication Critical patent/DE3750284T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)

Description

  • Die Erfindung betrifft ein Mikroprozessorsystem, insbesondere Technologie zur Datenübertragungssteuerung in einem solchen, z. B. eine Technologie, die wirkungsvoll auf Datenübertragungssteuerung bei der Datenübertragung zwischen mehreren in einem Coprozessor enthaltenen Registern und einer externen Speichereinrichtung anwendbar ist.
  • Ein Coprozessor ist mit einem Hauptprozessor wie einem Universal-Datenprozessor verbunden, um es zu ermöglichen, den Registersatz und den Anweisungssatz zu erweitern, um dadurch neues Verarbeitungsvermögen zum Prozessor hinzuzufügen.
  • Es existiert ein Verfahren zur Schnittstellenbildung zwischen einem Hauptprozessor und einem Coprozessor, bei dem der Coprozessor den Ausführungszustand einer Anweisung durch den Hauptprozessor unter Verwendung eines Statussignals überwacht. Wenn eine Anweisung für den Coprozessor erkannt wird, wird veranlaßt, daß dieser Befehl vom Coprozessor ausgeführt wird, und wenn beim Ausführen der Anweisung ein Buszugriff erforderlich ist, arbeitet der Coprozessor als Master für den lokalen Bus anstelle des Hauptprozessors, um einen Buszugriffszyklus zu erzeugen. Darüber hinaus dient, gemäß einem anderen Verfahren zur Schnittstellenbildung zwischen einem Hauptprozessor und einem Coprozessor, der Hauptprozessor dazu, eine Anweisung für den Coprozessor zu erkennen und alle Buszyklen zur Übertragung eines Befehls für den Coprozessor und für eine Übertragung von Daten zwischen dem Speicher und dem Coprozessor auszuführen. Zu veröffentlichten Literaturstellen, bei denen ein Coprozessor beschrieben ist, gehört "LSI Handbook", OHM-Sha, Ltd., 30. November 1984, S. 558-559 und "Microcomputer Handbook", OHM-Sha, Ltd., 25. Dezember 1986, S. 680-681.
  • Aus US-A-4 338 675 sind ein System und ein Verfahren bekannt, wie sie in den Oberbegriffen von Anspruch 1 bzw. Anspruch 8 beschrieben sind. Dieses bekannte System beinhaltet einen Prozessor und einen Coprozessor, die beide an einen gemeinsamen Bus angekoppelt sind. Der Coprozessor ist eine Einheit, die nur einen speziellen Anweisungstyp verarbeitet. Wenn eine solche spezielle Anweisung erkannt wird, übernimmt der Coprozessor die Steuerung des gemeinsamen Busses und führt alle erforderlichen Speicherlese- oder -schreibzyklen aus. Der Hauptprozessor berechnet alle Absolutadressen und führt einen Blindlesevorgang aus, während der Coprozessor zunächst die Adressen und dann die Daten erfaßt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Erfinder haben einen Fall erörtert, bei dem der Coprozessor die Übertragung mehrerer Einzeldaten zum Hauptprozessor und dem Speicher sowie von diesen in einem System, wie es vorstehend beschrieben wurde, überträgt, bei dem der Hauptprozessor den Buszugriffszyklus für den Coprozessor ausführt, z. B. mit einem Vorgang zum Aussenden eines Adreßsignals an den Speicher. Als Schlußfolgerung der Erörterung hat sich herausgestellt, da das System über die Eigenschaft verfügt, daß der Hauptprozessor den Buszugriffszyklus erzeugt und steuert und der Coprozessor dagegen die Übertragung tatsächlicher Daten vornimmt, ein Befehl an den Coprozessor für jede Datenübertragung ausgegeben werden muß, wenn nur der Hauptprozessor die Folge von Datenübertragungen erkennt und steuert, und daß der Wirkungsgrad einer Folge von Datenübertragungsvorgängen während der Zunahme der ausgegebenen Befehle verringert ist. Aus demselben Grund kann der Hauptprozessor, wenn nur er eine Folge von Datenübertragungen erkennt und steuert, nicht selbst den Zustand erkennen, ob der erforderliche Übertragungszyklus abgeschlossen wurde oder nicht, und demgemäß muß der Hauptprozessor vom Coprozessor eine Information erhalten, die das Ende einer Folge von Datenübertragungszyklen anzeigt. Für diese Situation haben sich die folgenden Schwierigkeiten dahingehend herausgestellt, daß die Übertragung von Information in einer lokalen Signalleitung und einem Daten-Eingabe/Ausgabe-Puffer unerwünscht verzögert ist, daß das Auslösen des nach der Folge von Datenübertragungen auszuführenden Vorgangs verzögert ist, und daß der Betriebswirkungsgrad für das Gesamtsystem demgemäß verringert ist.
  • Es ist daher eine Aufgabe der Erfindung, ein System in einem Computersystem zu schaffen, in dem ein Hauptprozessor den Buszugriffszyklus für einen Coprozessor steuert, um den Wirkungsgrad einer Datenübertragung in Verbindung mit dem Prozessor zu verbessern.
  • Die obige und andere Aufgaben und neue Merkmale der Erfindung gehen aus der detaillierten Beschreibung in Verbindung mit den beigefügten Zeichnungen hervor.
  • Es wird nun kurz ein Überblick über die repräsentativen Merkmale der in dieser Beschreibung offenbarten Erfindung gegeben.
  • Genauer gesagt, wird, wenn der Coprozessor eine Folge von Übertragungen für mehrere Einzeldaten zum Hauptprozessor und dem Speicher und von diesen gemäß dem vom Hauptprozessor ausgelösten Buszugriffszyklus ausführt, der vorhandene Coprozessor mit einer Information versorgt, die einen Datenspeicherort anzeigt, der eine Datenübertragungsquelle oder ein Datenübertragungsziel ist; ferner überwachen der Hauptprozessor und der Coprozessor unabhängig voneinander die Übertragungsvorgänge, um das Ende der Folge von Datenübertragungsvorgängen zu erkennen. Bei dieser Verarbeitung kann die Information, wie sie für den vom Hauptprozessor ausgelösten Buszugriffszyklus erforderlich ist, in einer Datenübertragungsanweisung enthalten sein; darüber hinaus kann die in der Datenübertragungsanweisung enthaltene Information dem Coprozessor als Datenübertragungsbefehl zugeführt werden. In diesem Fall kann das Ende der Folge von Datenübertragungsvorgängen, wie es vom Hauptprozessor und vom Coprozessor unabhängig voneinander überwacht wird, abhängig von Feldinformation erkannt werden, die mehrere Datenspeicherorte im Coprozessor anzeigt, wobei die Feldinformation in der Datenübertragungsanweisung und im Datenübertragungsbefehl enthalten ist.
  • Daher muß der Coprozessor, wenn eine Folge aus mehreren Datenübertragungsvorgängen ausgeführt wird, nicht jedesmal vom Hauptprozessor einen Befehl erhalten, wenn ein Datenwert übertragen wird; darüber hinaus muß der Coprozessor den Hauptprozessor nicht über das Ende der Folge von Datenübertragungszyklen informieren. Demgemäß erreicht es das System, wenn der Coprozessor einerseits den Buszugriffszyklus erzeugt und steuert und er andererseits die tatsächliche Datenübertragung bewirkt, daß der Zustand verhindert ist, der zur Minimierung des Wirkungsgrads bei der Datenübertragung aufgrund einer Zunahme der Ausgabe von Befehlen führt, was auftreten kann, wenn nur der Hauptprozessor die Folge von Datenübertragungen erkennt und steuert. Darüber hinaus bewirkt es das System ferner, daß die Situation verhindert ist, gemäß der die Zuführung der Endanzeige für die Folge von Datenübertragungszyklen an den Hauptprozessor unerwünscht verzögert ist, was erfolgen kann, wenn nur der Coprozessor die Folge von Datenübertragungen erkennt und steuert. Infolgedessen wird eine Verbesserung des Wirkungsgrades der Folge von Datenübertragungen erzielt; ferner kann der nächste, nach dem Datenübertragungsvorgang auszuführende Vorgang unmittelbar ausgelöst werden, wodurch eine Verbesserung des Betriebswirkungsgrades des Gesamtsystems erzielt wird.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Erfindung geht aus der folgenden detaillierten Beschreibung in Verbindung mit den beigefügten Zeichnungen hervor, in denen:
  • Fig. 1 ein schematisches Blockdiagramm ist, das ein Ausführungsbeispiel eines erfindungsgemäßen Mikroprozessorsystems veranschaulicht;
  • Fig. 2 ein schematisches Diagramm ist, das ein Beispiel für die im Hauptprozessor enthaltene Ausführungseinheit veranschaulicht;
  • Fig. 3 ein schematisches Diagramm ist, das ein Beispiel für die im Hauptprozessor enthaltene Ausführungseinheit zeigt;
  • Fig. 4 ein schematisches Diagramm ist, das ein Beispiel des Formats einer Datenübertragungsanweisung zeigt, wie sie vom Hauptprozessor im wesentlichen für den Coprozessor abzurufen ist;
  • Fig. 5 ein schematisches Diagramm ist, das ein Beispiel des Formats eines Befehls zeigt, wie er vom Hauptprozessor für den Coprozessor zu erzeugen ist;
  • Fig. 6 ein Flußdiagramm ist, das zum Erläutern der Funktionen des Hauptprozessors für Datenübertragung von Nutzen ist; und
  • Fig. 7 ein Flußdiagramm ist, das zum Erläutern der Funktionen des Coprozessors bei der Datenübertragung von Nutzen ist.
  • BESCHREIBUNG DES BEVORZUGTEN AUSFÜHRUNGSBEISPIELS
  • Das Mikroprozessorsystem von Fig. 1 weist, obwohl hierauf keine Beschränkung besteht, einen Hauptprozessor 1, wie einen Universalprozessor, und einen Coprozessor 2 auf, der mit diesem über einen lokalen Bus 3 eng verbunden ist, wobei der Coprozessor 2 Funktionen aufweist, zu denen eine Gleitfunktion, eine Funktion mit mehrfacher Genauigkeit bei einer transzendenten Funktion usw. gehören. Der lokale Bus 3 ist über ein Systeminterface 4 mit einem Systembus 5 verbunden. In Fig. 1 ist das System zur Veranschaulichung mit einem Speicher 6 verbunden, der einen Direktzugriffsspeicher (RAM) enthält, wobei jedoch keine Beschränkung hierauf besteht.
  • Vom Hauptprozessor 1 wird eine Makroanweisung wie eine Anweisung in Maschinensprache, die systemseitig geliefert wird, abgerufen. Wenn die abgerufene Anweisung eine Coprozessoranweisung ist, trennt der Hauptprozessor 1, obwohl hierauf keine Beschränkung besteht, aus dieser Felder ab, wie sie für den Coprozessor 2 erforderlich sind, um einen Befehl zu erzeugen, und dann gibt er den Befehl an den Coprozessor 2 aus. Der Hauptprozessor 1 steuert bei der Übertragung eines Befehls an den Coprozessor 2 einer Datenübertragung zwischen dem Speicher 6 und dem Coprozessor 2 usw. alle Buszyklen.
  • Der Hauptprozessor 1 ist mit einem Mikro-ROM 7 versehen, in dem Mikroprogramme abgespeichert sind. Auf den Mikro-ROM 7 wird von einem Mikro-Adressendecodierer 8 zugegriffen, der bewirkt, daß Mikroprogramme bildende Mikroanweisungen der Reihe nach gelesen werden.
  • In Fig. 1 bezeichnet die Bezugszahl 9 eine Anweisungszugriffseinheit mit einem (nicht dargestellten) FIFO-Register, das dazu verwendet wird, vorab gemäß einer Pipeline-Verarbeitung oder einer Anweisungs-Vorababrufssteuerung eine Makroanweisung abzurufen. Der Mikro-Adressendecodierer 8 wird mit einem Adressensignal versorgt, das dadurch erhalten wird, daß in einem Anweisungsdecodierer 10 ein Ausführungscode für die Makroanweisung decodiert wird, wie sie in die Anweisungszugriffseinheit 9 geladen wurde. Der Mikro-Adressendecodierer 8 decodiert das Adressensignal, um aus dem Mikro-ROM 7 die erste Anweisung unter einer Folge von Mikroanweisungen auszulesen, um die Makroanweisung auszuführen. Die so gelesene Mikroanweisung wird einem Mikro-Anweisungsdecodierer 11 zugeführt und in diesem decodiert. Im Ergebnis liefert der Mikro-Anweisungsdecodierer 11 Steuersignale, wie sie zur Ausführung der Anweisung erforderlich sind, an die Ausführungseinheit 12.
  • Die zweite und alle folgenden Mikroanweisungen in der Reihe von Mikroanweisungen, die der Makroanweisung entsprechen, wird angezeigt, wenn der Code des Nächste-Adresse-Feldes der zuvor gelesenen Mikroanweisung an den Anweisungsdecodierer 10 geliefert wird. Der Anweisungsdecodierer 10 beinhaltet einen (nicht dargestellten) Multiplexer, der mit seinem Ausgangssignal für eine Auswahl zwischen einer Makroanweisung und dem Code des in einer Mikroanweisung enthaltenen Nächste-Adresse-Felds sorgt. Demgemäß wird auf Grundlage des Codes des so der Reihe nach vom Multiplexer ausgewählten Nächste-Adresse-Felds anschließend eine Mikroanweisung aus dem Mikro-ROM 7 ausgelesen. Die Betriebsvorgänge der Ausführungseinheit 12 und dergleichen werden abhängig von einer vorgegebenen Reihenfolge auf Grundlage der so gelesenen Mikroanweisung und der dieser entsprechenden Steuersignale gesteuert.
  • Durch die vorstehenden Betriebsvorgänge wird eine Makroanweisung wie eine Übertragungsanweisung oder eine arithmetische Anweisung ausgeführt. Der Hauptprozessor 1 ist über eine Eingabe/Ausgabe-Einheit 13 mit dem lokalen Bus verbunden.
  • Der Coprozessor 2 ist über eine Eingabe/Ausgabe-Einheit 14 mit dem lokalen Bus 3 verbunden. Der Coprozessor 2 ist mit einem Mikro-ROM 15 versehen, in dem Mikroprogramme abgespeichert sind. Auf den Mikro-ROM 15 wird von einem Mikro-Adressendecodierer 16 zugegriffen, der bewirkt, daß Mikroprogramme bildende Mikroanweisungen der Reihe nach gelesen werden.
  • In Fig. 1 kennzeichnet die Bezugszahl 17 eine Befehlszugriffseinheit zum Zugreifen auf einen vom Hauptprozessor 1 erzeugten Befehl. Der Mikro-Adressendecodierer 16 wird mit einem Adreßsignal versorgt, das dadurch erhalten wird, daß in einem Befehlsdecodierer 18 der Ausführungscode des Befehls decodiert wird, der in die Befehlszugriffseinheit 17 geladen wurde. Der Mikro-Adressendecodierer 16 decodiert das Adreßsignal, um aus dem Mikro-ROM 15 die erste Anweisung unter einer Reihe von Mikroanweisungen zum Ausführen des Befehls auszulesen. Die so gelesene Mikroanweisung wird dem Mikro-Anweisungsdecodierer 19 zugeführt und dann in diesem decodiert. Im Ergebnis liefert der Mikro-Anweisungsdecodierer 19 die Steuersignale an die Ausführungseinheit 20 und dergleichen, die zum Ausführen der Mikroanweisung erforderlich sind.
  • Die zweite Mikroanweisung und alle folgenden in der Reihe von der Makroanweisung entsprechenden Mikroanweisungen wird angezeigt, wenn der Code des Nächste-Adresse-Felds aus der zuvor gelesenen Mikroanweisung dem Befehlsdecodierer 18 zugeführt wird. Der Befehlsdecodierer 18 beinhaltet einen (nicht dargestellten) Multiplexer, dessen Ausgangssignal eine Auswahl zwischen einer Makroanweisung und dem Code des Nächste-Adresse-Feldes in einer Mikroanweisung sorgt. Demgemäß wird auf Grundlage des Codes des so sequentiell vom Multiplexer ausgewählten Nächste-Adresse-Feldes eine Mikroanweisung sequentiell aus dem Mikro-ROM 15 ausgelesen. Die Betriebsvorgänge der Ausführungseinheit 20 und dergleichen werden abhängig von einer vorgegebenen Reihenfolge auf Grundlage der so gelesenen Mikroanweisung und der dieser entsprechenden Steuersignale gesteuert.
  • Gemäß den vorstehenden Betriebsabläufen führt der Coprozessor 2 einen Befehl wie eine Datenübertragung oder eine arithmetische Operation, wie vom Hauptprozessor 1 geliefert, aus. Der Hauptprozessor 1 führt die Steuerung des Buszugriffszyklus aus, wie sie für den Vorgang erforderlich ist.
  • Die im Hauptprozessor 1 enthaltene Ausführungseinheit 12 ist z. B. so aufgebaut, wie dies in Fig. 2 dargestellt ist. Genauer gesagt, sind vier interne Busse, die mit einem Dateneingangsregister 21 und einem Datenausgangsregister 22 die an die Eingabeeinheit 13 angeschlossen sind, verbunden sind, mit einer ersten Funktionseinheit, einer zweiten Funktionseinheit 24, die dazu vorgesehen ist, zur Berechnung von Adressen verwendet zu werden, einem Umlaufschieberegister 25, einer Gruppe Universalregister 26 mit solchen Universalregistern wie mehreren Auffangregistern und einer Gruppe von Spezialregistern 27 verbunden, zu denen ein Programmzähler, ein Statusregister und ein Stapelzeiger gehören.
  • Die Gruppe von Universalregistern 26 unterliegt einer Registerspezifizierung durch eine Registerspezifizierschaltung 28. Die Registerspezifizierschaltung 28 führt zwei Arten von Registerspezifizierungen aus. Das erste Spezifizierverfahren wird auf Grundlage einer Information ausgeführt, die in einem Registerspezifizierfeld innerhalb einer Anweisung enthalten ist, wohingegen das zweite Spezifizierverfahren auf Grundlage des Ausgangssignals einer Schaltung 29 zum Auffinden der ersten Eins bewerkstelligt wird, die eine Registerliste decodiert, die Information zum Spezifizieren mehrerer Universalregister enthält. Was die Registerliste und die Schaltung 29 zum Finden der ersten Eins betrifft, werden später Einzelheiten beschrieben.
  • In Fig. 2 steht die Bezugszahl 20 für eine Anweisungsfeld- Unterteilungseinheit. Wenn eine in die Anweisungszugriffseinheit geladene Anweisung eine solche für den Coprozessor 2 ist, trennt die Anweisungsfeld-Abtrenneinheit 30 vorgegebene Felder aus der einschlägigen Anweisung ab, um einen Befehl für den Coprozessor 2 zu erzeugen. Darüber hinaus, werden die unmittelbare Daten- und Speicheradressespezifizier- Information innerhalb der Anweisung sowie die Registerliste abgetrennt und der ersten Funktionseinheit 23, der zweiten Funktionseinheit 24, der Schaltung 29 zum Finden der ersten Eins usw. zugeführt. Darüber hinaus wird Information über den Umfang zu übertragender Daten, oder die dem Vorgang zu unterziehen sind, sowie Information über den Daten-Lese/ Schreib-Vorgang über den Anweisungsdecodierer 10 geliefert.
  • Die im Coprozessor 2 enthaltene Ausführungseinheit 20 weist z. B. einen Aufbau auf, wie er in Fig. 3 dargestellt ist. Genauer gesagt, sind die drei mit der Eingabe/Ausgabe-Einheit 14 verbundenen Busse mit einer Gruppe von Universalregistern 32 verbunden, zu denen Universalregister wie mehrere Auffangregister gehören. Die Registerspezifizierung für die Gruppe der Universalregister 32 wird durch eine Registerspezifizierschaltung 33 bewirkt. Zu den Registerspezifizierverfahren in der Registerspezifizierschaltung 33 gehören zwei Verfahren, nämlich eine Spezifizierung auf Grundlage einer Information des Registerspezifizierfelds, wie es in einem Befehl enthalten ist, der vom Hauptprozessor zugeführt wird, und eine Spezifizierung auf Grundlage des Ausgangssignals der Schaltung 34 zum Finden der ersten Eins, die die Registerliste decodiert, die Information zum Spezifizieren mehrerer Register darstellt. Einzelheiten über die Schaltung 34 zum Finden der ersten Eins werden ebenfalls später beschrieben. Übrigens ist auch die Ausführungseinheit 20, obwohl dies nicht dargestellt ist, mit einer Abtrenneinheit versehen, um ein Befehlsfeld, verschiedene Steuerregister und dergleich abzutrennen.
  • Der Hauptprozessor 1 bewirkt eine Funktionsauswahl für den Coprozessor 2 abhängig von einem ausgewählten Signal, wie es von einem Adressendecodierer 35 (Fig. 3) ausgegeben wird, der ein dem Coprozessor 2 zugeordnetes Adreßsignal empfängt, das vom Hauptprozessor 1 geliefert wird, wenn der Hauptprozessor 1 eine Anweisung für den Coprozessor 2 abruft. Wenn die Funktion ausgewählt ist, greift der Coprozessor auf einen vom Hauptprozessor 1 gelieferten Befehl zu und wird in einem Zustand gesteuert, in dem der einschlägige Befehl ausgeführt werden kann.
  • Es erfolgt nun eine Beschreibung für den Datenübertragungsaufbau, mit dem der Coprozessor 2 Eingabe/Ausgabe-Vorgänge abhängig vom Buszugriffszyklus ausführt, wie er vom Hauptprozessor 1 aktiviert wurde.
  • Obwohl keine spezielle Beschränkung auf das Folgende besteht, beinhaltet die Datenübertragungskonfiguration die fünffolgenden Schritte:
  • (1) Der Coprozessor 2 empfängt einen Befehl und eine Anweisungsadresse vom Hauptprozessor 1.
  • (2) Der Coprozessor 2 empfängt andere Daten neben dem Befehl und der Anweisungsadresse vom Hauptprozessor 1.
  • (3) Der Coprozessor 2 überträgt Daten an den Hauptprozessor 1.
  • (4) Der Coprozessor 2 schreibt Daten in den Speicher 6.
  • (5) Der Coprozessor 2 empfängt Daten vom Speicher 6.
  • Was die Datenübertragung in jedem vorstehend genannten Schritt betrifft, werden, wie dies in Fig. 1 dargestellt ist, ein Adreßsignal ADRS, ein Adressenabtastsignal AS, das die Ausgabeermittlung für das Adressensignal ADRS anzeigt, und ein Lese/Schreib-Signal R/W, das die Richtung der Datenübertragung anzeigt, vom Hauptprozessor 1 ausgegeben. D.h., daß der Hauptprozessor 1 bei verschiedenen Datenübertragungen den Buszugriffszyklus aktiviert und steuert. Wenn der Hauptprozessor 1 einen Buszugriffszyklus auslöst, gibt er ein Zugriffstypsignal AT aus, um eine Identifizierung zu ermöglichen, daß der Übertragungsgegenstand des zugehörigen Vorgangs ein Befehl, eine Anweisungsadresse oder ein anderer Datenwert ist. Der Datenwert DATEN als Übertragungsgegenstand wird zwischen dem Hauptprozessor 1, dem Coprozessor 2 und dem Speicher 6 abhängig vom Ausführungsinhalt der Anweisung und dem Befehl im Hauptprozessor 1 und im Coprozessor 2 übertragen. Übrigens ist die vorstehend angegebene Anweisungsadresse eine Adresse einer Makroanweisung, die einem Befehl entspricht, wie er vom Coprozessor auszuführen ist. Da Pipeline-Verarbeitung ausgeführt wird, kann der Hauptprozessor 1 die Anweisungsadresse nicht selbst entsprechend dem an den Coprozessor 2 ausgegebenen Befehl aufrechterhalten. Da es jedoch vorgesehen ist, daß der Coprozessor 2 die Anweisungsadresse aufrechterhält, können Nachverarbeitung und Ausnahmeverarbeitung, wie sie beim Auftreten eines Fehlers während einer Befehlsausführung erforderlich sind, ohne Schwierigkeiten ausgeführt werden.
  • Für eine Datenübertragung wird, wie dies in Fig. 1 dargestellt ist, ein Bestätigungssignal ACK, das anzeigt, daß die Datenübertragung abgeschlossen ist, übertragen. Das Bestätigungssignal ACK wird, obwohl hierauf keine spezielle Beschränkung besteht, vom Coprozessor in den oben genannten Übertragungsschritten (1)-(3) ausgegeben, und es wird vom Hauptprozessor 1 erkannt. Wenn der Hauptprozessor 1 ein Bestätigungssignal ACK auf hohem Pegel erkennt (Pegel, der den Abschluß einer Übertragung anzeigt), beendet er den aktuellen Datenübertragungszyklus. Darüber hinaus gibt der Speicher 6 in den oben genannten Datenübertragungsschritten (4)- (5) ein Bestätigungssignal ACK aus, das dann sowohl vom Hauptprozessor 1 als auch vom Coprozessor 2 erkannt wird. In diesem Fall beendet der Hauptprozessor 1 beim Erkennen eines Bestätigungssignals ACK auf hohem Pegel zu einem vorgegebenen Zeitpunkt den Buszugriffszyklus für den Datenübertragungszyklus. Darüber hinaus beendet der Coprozessor 2 beim Empfangen eines Bestätigungssignals ACK auf hohem Pegel zu einem vorgegebenen Zeitpunkt den Betriebsablauf für den Datenübertragungszyklus. Insbesondere greift der Coprozessor 2 im Fall des oben genannten Datenübertragungsschritts (5) dann, wenn ein Bestätigungssignal ACK auf hohem Pegel erkannt wird, auf die aus dem Speicher 6 gelesenen Daten zu.
  • Obwohl keine spezielle Beschränkung auf das Folgende besteht, sind der Hauptprozessor 1 und der Coprozessor 2 so ausgebildet, daß sie synchron mit demselben Taktsignal arbeiten. Bei synchronem Betrieb muß berücksichtigt werden, daß dafür gesorgt wird, daß der Coprozessor die erforderlichen Daten zu einem Zeitpunkt ausgeben kann, der dem vom Hauptprozessor 1 gesteuerten Buszugriffszyklus zugeordnet ist; anders gesagt, kann der Coprozessor 2 im Schreibzyklus, in dem der Coprozessor 2 die Datenübertragungsquelle ist, die erforderlichen Daten zum selben Zeitpunkt ausgeben, der mit dem Schreibzyklus übereinstimmt, zu dem der Hauptprozessor 1 die Datenübertragungsquelle ist. D.h., daß der Hauptprozessor 1, wie dies in Fig. 1 dargestellt ist, an den Coprozessor 2 ein Coprozessor-Datenfreigabesignal CDE ausgibt, um dadurch den Startpunkt für den Schreibzyklus anzuzeigen, in dem der Coprozessor 2 die Datenübertragungsquelle ist. Wenn der Coprozessor 2 den Startpunkt unter Verwendung des Adressenabtastsignals AS und des Lese/Schreib-Signals R/W erkennt, kann er im wesentlichen einen Vorgang zum Ermitteln auslösen, ob der Zyklus ein Schreibzyklus ist oder nicht, und zwar nachdem die auf dem Bus vorhandene Übertragungszieladresse ermittelt wurde, was den Ausgabezeitpunkt für die erforderlichen Daten verzögert.
  • Die Statusschnittstelle zwischen dem Hauptprozessor 1 und dem Coprozessor 2 ist mit einem Coprozessorstatus CPST versehen. Der Coprozessorstatus CPST zeigt vier Statusarten an, ohne daß hierauf eine Beschränkung besteht, nämlich eine Befehlsannahme, die Befehlsannahme durch den Coprozessor 2 bedeutet, belegt, was anzeigt, daß im Coprozessor 2 ein Befehl ausgeführt wird, Daten fertig, was bedeutet, daß die Datengröße und der Typ zu übertragender Daten im Coprozessor 2 vollständig umgewandelt wurden, und Fehler auftreten, was anzeigt, daß ein Fehler wie ein Datenüberlauf während einer Befehlsausführung auftrat.
  • Obwohl das Coprozessorsystem bei diesem Ausführungsbeispiel verschiedene Anweisungen wie eine Datenübertragungsanweisung, eine Arithmetikanweisung und eine Verzweigungsanweisung ausführt, beschreiben die folgenden Absätze Anweisungen, die der Registerliste zugeordnet sind, die direkt mit der Erfindung in Beziehung steht.
  • Das in Fig. 4 dargestellte Anweisungsformat ist ein Beispiel für das Format einer Datenübertragungsanweisung, die im wesentlichen vom Coprozessor 2 auszuführen ist. Diese Anweisung ist eine solche Anweisung, die es anzeigt, daß Datenübertragung zwischen mehreren Universalregistern im Coprozessor 2, wie sie von der Registerliste spezifiziert werden, und dem Speicher 6 ausgeführt wird. Die aktuelle Anweisung beinhaltet ein Anweisungszugehörigkeits-Spezifizierfeld BDF für die Anweisung, ein Spezifizierfeld OP für den Ausführungscode, für das ein den Inhalt des Vorgangs anzeigender Ausführungscode spezifiziert ist, ein Größespezifizierfeld SZ zum Spezifizieren der Datengröße des Quellenoperanden, ein Richtungsfeld DF zum Spezifizieren eines Lese- oder eines Schreibvorgangs, ein Adreßspezifizierfeld EA zum Spezifizieren der ersten Adresse des Speichers, der als Quelle oder Ziel zu verwenden ist, und eine Registerliste RL zum Spezifizieren mehrerer Universalregister, die bei der Datenübertragung mit dem Speicher zu verwenden sind.
  • Die Registerliste RL umfaßt, obwohl hierauf keine spezielle Beschränkung besteht, ein 1-Byte-Feld, dessen Bits jeweils 16 Universalregistern zugeordnet sind, die in der Gruppe der Universalregister enthalten sind, und wenn ein vorgegebenes Bit im Feld "1" ist,-zeigt dies an, daß das diesem Bit entsprechende Universalregister spezifiziert ist.
  • Wenn die in Fig. 4 dargestellte Anweisung vom Hauptprozessor 1 abgerufen wird und es sich auf Grundlage des Decodierergebnisses des Anweisungszugehörigkeits-Spezifizierfeldes BDF ergibt, daß es sich um eine Datenübertragungsanweisung handelt, die im wesentlichen vom Coprozessor 2 auszuführen ist, trennt die Anweisungsfeld-Abtrenneinheit 30 ein vorgegebenes, in Fig. 4 dargestelltes, Anweisungsfeld ab, um einen Befehl für den Coprozessor 2 zu erzeugen. Dieser Befehl verfügt, ohne daß hierauf eine spezielle Beschränkung besteht, über das in Fig. 5 dargestellte Format, und er weist das Ausführungscode-Spezifizierfeld OP, das Größenspezifizierfeld SZ und die Registerliste RL auf.
  • Im Hauptprozessor 1 wird die aus der Anweisung von Fig. 4 ausgeschnittene Registerliste RL in die Schaltung 29 zum Finden der ersten Eins eingeschrieben. Darüber hinaus wird die in dem in Fig. 5 dargestellten, an den Coprozessor 2 zu übertragenden Befehl enthaltene Registerliste RL im Coprozessor 2 herausgetrennt und in die Schaltung 34 zum Finden der ersten Eins eingeschrieben.
  • Die Schaltungen 29 und 34 zum Finden der ersten Eins versorgen die Registerspezifizierschaltungen 28 und 33 sequentiell mit Daten, die den Registernummern entsprechen, wie sie jeweils von den jeweiligen Registerlisten RL für jeden Datenübertragungszyklus spezifiziert werden, um die Registerspezifiziervorgänge zu steuern, und um ferner die Anzahl von Folgen von Datenübertragungen an alle Universalregister, wie sie durch die jeweiligen Registerlisten RL spezifiziert werden, oder den Abschluß einer Folge von Datenübertragungsvorgängen zu überwachen. Genauer gesagt, wird die Position des höchsten Bits in den Registerlisten RL, das auf "1" gesetzt wurde, erfaßt, und Information, die der Registernummer entspricht, die der Nummer des der erfaßten Position zugeordneten Registers entspricht, wird jeweils an die Registerspezifizierschaltungen 28 und 33 ausgegeben. Ferner werden zu einem Zeitpunkt nach der Ausführung des Eingabe/Ausgabe- Vorgangs für die Daten die Registerlisten RL dadurch aktualisiert, daß das zuvor erkannte Bit "1" auf "0" geändert wird. Dies ermöglicht es, das Universalregister zu spezifizieren, das der folgenden Datenübertragung zu unterziehen ist. Darüber hinaus wird, um die Anzahl von Folgen von Datenübertragungen an alle Universalregister, wie sie durch die jeweiligen Registerlisten RL spezifiziert werden, oder den Abschluß einer Folge von Datenübertragungsvorgängen zu überwachen, ermittelt, ob alle die Registerlisten RL bildenden Bits "0" sind. Wenn von den Schaltungen 29 und 34 zum Finden der ersten Eins der Zustand erkannt wird, daß alle Bits der Registerlisten "0" sind, werden nicht dargestellte Flagregister gesetzt, was bewirkt, daß der Hauptprozessor 1 und der Coprozessor 2 unabhängig voneinander die Folge von Datenübertragungsanweisungen und Befehlsausführungen beenden. D.h., daß der Hauptprozessor 1 auf Grundlage des Ausgangssignals der in ihm enthaltenen Schaltung 29 zum Finden der ersten Eins die Aktualisierungsverarbeitung für eine Folge von Operandenadressen für den Coprozessor 2 unterbricht und dadurch die Verarbeitung beendet, um den Buszugriffszyklus zu aktivieren. Der Coprozessor 2 versorgt auf Grundlage der in ihm enthaltenen Schaltung 34 zum Finden der ersten Eins den Hauptprozessor 1 über den Coprozessorstatus CPST mit einer Statusangabe, die anzeigt, daß der Befehl ausgeführt werden kann.
  • Nachfolgend erfolgt unter Bezugnahme auf die Fig. 6-7 eine detaillierte Beschreibung für die Betriebsablauffolgen für den Hauptprozessor 1 und den Coprozessor 2, um eine Verarbeitung zu bewirken, wie sie auf Grundlage der Anweisung von Fig. 4 und des Befehls von Fig. 5 in die Datenübertragungsschritte (4) und (5) eingeteilt ist. Fig. 6 zeigt die Betriebsablauffolge für den Hauptprozessor 1, wohingegen Fig. 7 die Betriebsablauffolge für den Coprozessor 2 zeigt.
  • Wenn die in Fig. 4 dargestellte Datenübertragungsanweisung vom Hauptprozessor abgerufen wird (Schritt Sm1), decodiert dieser Hauptprozessor 1 die Information des Anweisungzugehörigkeits-Bezeichnungsfelds und des Ausführungscodes, wie sie im Anweisungscode enthalten sind (Schritt Sm2). Im Ergebnis erkennt der Hauptprozessor 1, daß die aktuelle Anweisung eine solche ist, die im wesentlichen vom Coprozessor 2 auszuführen ist, und anschließend liest er die Mikroanweisungen aus dem Mikro-ROM 7 aus, um die Funktionsfolge gemäß dem Ausführungscode auszuführen.
  • D.h., daß zunächst auf Grundlage der Information im Adreßspezifizierfeld EA in der Datenübertragungsanweisung die erste Operandenadresse (Adresse im Speicher 6) für die Datenübertragung berechnet wird, und daß die Anweisungsfeld- Abtrenneinheit 30 einen Befehl für den Coprozessor 2 erzeugt (Schritt Sm3). Dieser Befehl ist ein solcher mit dem in Fig. 5 dargestellten Format.
  • Dann wird der Befehl an den Coprozessor übertragen (Schritt Sm4) und die von der Anweisungsfeld-Abtrenneinheit 30 abgetrennte Registerliste RL wird in die Schaltung 29 zum Finden der ersten Eins eingeschrieben (Schritt Sm5); danach wird das Übertragungsergebnis für den Befehl unter Verwendung des Belegtflags und dergleichen im Coprozessorstatus beurteilt (Schritt Sm6), und dann werden die Schritte Sm4, Sm5 und Sm6 wiederholt ausgeführt, bis der Empfang des Befehls abgeschlossen ist. Wenn im Schritt Sm6 der Abschluß des Befehlsempfangs durch den Coprozessor 2 festgestellt wird, wird die Adresse des aktuellen Befehls vom Hauptprozessor 1 an den Coprozessor 2 übertragen (Schritt Sm7).
  • Wenn im Coprozessor 2 der im Schritt Sm4 des Hauptprozessors 1 übertragene Befehl von der Befehlszugriffseinheit 17 synchron mit dem Übertragungszeitpunkt empfangen wird (Schritt Sc1), decodiert der Coprozessor durch den Befehlsdecodierer 18 den im Befehl enthaltenen Ausführungscode (Schritt Sc2). Dies bewirkt, daß der Coprozessor 2 sequentiell die Mikroanweisungen aus dem Mikro-ROM 15 ausliest und dann die Funktionsfolge abhängig vom Ausführungscode ausführt. Zunächst wird die im Schritt Sm7 des Hauptprozessors 1 übertragene Anweisungsadresse vom Coprozessor 2 synchron mit der Übertragungszeitsteuerung empfangen, und dann wird die vom Befehl im Coprozessor 2 abgetrennte Registerliste RL in die Schaltung 34 zum Finden der ersten Eins eingeschrieben (Schritt Sc3).
  • Nach dem vorstehend angegebenen Ablauf beurteilt der Hauptprozessor 1, ob alle Bits der in die Schaltung 29 zum Finden der ersten Eins eingeschriebenen Registerliste RL "0" sind (Schritt Sm8). Wenn dies nicht der Fall ist, wird ein Buszugriffszyklus erzeugt und hinsichtlich der Operandenübertragung durch den Coprozessor 2 überwacht, und dann wird die Registerliste RL in der Schaltung 29 zum Finden der ersten Eins aktualisiert (Schritt Sm9). Die Erzeugung und Steuerung des Buszugriffszyklus für die Operandenübertragung durch den Coprozessor 2 beinhaltet hierbei solche Vorgänge wie die Ausgabe der im Schritt Sm3 berechneten Operandenadresse, die Ausgabe des Adressenabtastsignals AS, das der Erkennung des aktuellen Adreßsignals auf dem Bus entspricht, und die Ausgabe des Lese/Schreib-Signals R/W. Die im Hauptprozessor 1 enthaltene Schaltung 29 zum Finden der ersten Eins überwacht gemäß ihrer Aufgabe, ob alle Bits in der Registerliste RL "0" sind, d. h., ob eine Folge von Datenübertragungen folgend auf die aktuelle Anweisung vollständig ausgeführt wurde oder nicht. Diese Schaltung 29 zum Finden der ersten Eins beeinflußt den Steuerablauf zum Spezifizieren von Universalregistern nicht. Das Decodierergebnis der Schaltung 29 zum Finden der ersten Eins wird der Registerspezifizierschaltung 28 nicht zugeführt.
  • In dieser Situation beurteilt der Coprozessor 2, wie der Hauptprozessor 1, ob alle Bits in der in die Schaltung 24 zum Finden der ersten Eins eingeschriebenen Registerliste RL "0" sind oder nicht (Schritt Sc4). Wenn dies nicht der Fall ist, wird die Eingangs/Ausgangs-Steuerung des Operanden abhängig von dem vom Hauptprozessor 1 aktivierten Buszugriffszyklus erzielt; danach wird die Registerliste RL in der Schaltung 34 zum Finden der ersten Eins aktualisiert (Schritt Scs). Während der Eingangs/Ausgangs-Steuerung des Operanden durch den Coprozessor 2 ermittelt die Schaltung 34 zum Finden der ersten Eins die Position des höchsten Bits im Register RL, das auf "1" gesetzt ist, und dann versorgt sie die Spezifizierschaltung 33 mit einer Information entsprechend der Nummer des Registers, das der erkannten Position zugeordnet ist, wodurch der Betriebsablauf des Coprozessors 2 so gesteuert wird, daß Register zum Ausgeben oder Eingeben des Operanden spezifiziert werden. In diesem Fall wird, wenn der Operandenübertragungsvorgang ein Schreibvorgang ist, anders gesagt, wenn der Coprozessor 2 Daten in den Speicher einschreibt, die Datenausgabe-Zeitsteuerung für den Coprozessor 2 über ein Coprozessor-Datenfreigabesignal CDE geliefert, das vom Hauptprozessor 1 ausgegeben wird.
  • Der Hauptprozessor 1 beurteilt, nachdem er den Buszugriffszyklus erzeugt hat, ob der Datenübertragungsvorgang im aktuellen Zyklus abgeschlossen wurde, und zwar auf Grundlage des Bestätigungssignals ACK (was bedeutet, daß Daten aus dem Speicher 6 ausgelesen oder in diesen eingeschrieben wurden), wie es vom Speicher 6 ausgegeben wird (Schritt Sm10). Wenn die Beendigung des Datenübertragungsvorgangs erkannt wird, wird die Datengröße zur Operandenadresse hinzugefügt (Schritt Sm11), um die nächste Aktivierung eines Buszugriffszyklus vorzubereiten. Andererseits beurteilt der Coprozessor 2 auf ähnliche Weise auf Grundlage des vom Speicher 6 ausgegebenen Bestätigungssignals ACK, ob der Datenübertragungsvorgang im aktuellen Datenzyklus abgeschlossen wurde oder nicht (Schritt Sc6). Übrigens wird, wenn der Coprozessor 2 auf den vom Speicher 6 übertragenen Datenwert zugreift (für einen Datenschreibvorgang), der aktuelle Übertragungsdatenwert auf Grundlage des Bestätigungssignals ACK in dasjenige vorgegebene Universalregister eingeschrieben, das von der Schaltung 34 zum Finden der ersten Eins spezifiziert wird.
  • Der Hauptprozessor 1 kehrt vom Schritt Sm11 zum Schritt Sm8 zurück, um zu beurteilen, ob alle Bits in der aktualisierten Registerliste RL "0" sind. Anders gesagt, beurteilt der Hauptprozessor 1, ob Datenübertragungselemente für den Coprozessor 2 zurückbleiben, genauer gesagt, ob es weiterhin erforderlich ist, einen Buszugriffszyklus für den Coprozessor 2 zu aktivieren oder nicht. Der Coprozessor 2 kehrt vom Schritt Sc6 zum Schritt Sc4 zurück, um zu beurteilen, ob alle Bits der aktualisierten Registerliste RL "0" sind oder nicht. Wenn dies nicht der Fall ist, wird die Registerliste RL dazu verwendet, Universalregister für die nächste Datenübertragung zu spezifizieren.
  • Wie vorstehend beschrieben, beurteilen der Hauptprozessor 1 und der Coprozessor 2 unabhängig voneinander die restlichen Einzeldaten unter den Datenübertragungselementen. Wenn erkannt wurde, daß eine weitere Datenübertragung erforderlich ist, aktiviert der Hauptprozessor 1 den Buszugriffszyklus in der oben beschriebenen Weise, und der Coprozessor 2 führt eine Datenkommunikation gemäß dem so aktivierten Buszugriffszyklus aus.
  • Wenn sowohl vom Hauptprozessor 1 als auch vom Coprozessor 2 erkannt wurde, daß alle Bits der jeweiligen Registerlisten RL "0" sind, wird die Ausführung der Anweisung und des Befehls beendet, ohne daß dazwischen ein wechselseitiger Informationsaustausch erfolgt.
  • Gemäß der vorstehenden Beschreibung können die folgenden Wirkungen erzielt werden.
  • (1) Wenn der Coprozessor eine Folge aus mehreren Einzeldaten mit dem Hauptprozessor aus dem Speicher gemäß dem vom Hauptprozessor aktivierten Buszugriffszyklus austauscht, wird der Coprozessor mit einer Information versorgt, die die Datenspeicherposition als Datenübertragungsquelle oder Datenübertragungsziel kennzeichnet; ferner überwachen der Hauptprozessor und der Coprozessor unabhängig voneinander die Anzahl der Folge von Datenübertragungen oder den Abschluß der Folge von Datenübertragungen oder den Abschluß der Folge von Datenübertragungsvorgängen. Demgemäß ist es, wenn der Coprozessor eine Folge mit mehreren Datenübertragungsvorgängen ausführt, für den Coprozessor nicht erforderlich, daß er vom Hauptprozessor jedesmal dann einen Befehl erhält, wenn ein Einzeldatenwert übertragen wird; demgemäß wird, wenn einerseits der Hauptprozessor den Buszugriffszyklus erzeugt und überwacht und andererseits der Coprozessor die tatsächliche Datenübertragung ausführt, die Wirkung erzielt, daß eine Verringerung des Wirkungsgrads der Datenübertragung aufgrund einer Zunahme ausgegebener Befehle verhindert ist, was auftreten würde, wenn die Anzahl innerhalb der Folge von Datenübertragungen nur von dem mit deren Steuerung beschäftigten Hauptprozessor erkannt würde.
  • (2) Ferner wird im obigen Fall, da der Coprozessor dem Hauptprozessor nicht das Ende der Folge von Datenübertragungszyklen anzeigen muß, das Signal, das dem Hauptprozessor das Ende der Folge der Datenübertragungszyklen anzeigt, nicht unerwünscht verzögert, was erfolgen könnte, wenn nur der Coprozessor die Anzahl in der Folge von Datenübertragungen erkennt und steuert; demgemäß wird die Wirkung erzielt, daß der nächste Vorgang, der nach der Folge der Datenübertragungsvorgänge gestartet werden muß, sofort ausgeführt werden kann.
  • (3) Gemäß den vorstehenden Wirkungen unter (1) und (2), wird die Wirkung erzielt, daß der Betriebswirkungsgrad des gesamten Coprozessorsystems verbessert sein kann.
  • Obwohl die vom Erfinder getätigte Erfindung auf Grundlage des Ausführungsbeispiels konkret beschrieben wurde, ist sie durch das Ausführungsbeispiel nicht beschränkt, und es ist erkennbar, daß verschiedene Änderungen und Modifizierungen derselben möglich sind, ohne den Schutzbereich und Geist der Erfindung zu verlassen.
  • Z.B. können, obwohl die Schaltungen 29 und 34 zum Finden der ersten Eins, die auch die Steuerung der Registerspezifizierschaltung vornehmen, als Einrichtungen zum Überwachen der Anzahl von Datenübertragungen oder der Beendigung der Folge von Datenübertragungsvorgängen verwendet wurden, derartige Einrichtungen so abgeändert werden, daß sie eine Konfiguration aufweisen, bei der die Anzahl von Datenübertragungen gezählt wird, und der Zustand erfaßt wird, in dem der Zählwert einen vorgegebenen Wert erreicht. Darüber hinaus kann die Einrichtung auch die Steuerung der Registerspezifizierschaltung ausüben.
  • Darüber hinaus ist die Information, die mehrere Datenübertragungsquellen und -ziele anzeigt, nicht auf die Registerliste in der in Verbindung mit dem Ausführungsbeispiel beschriebenen Form beschränkt, was heißt, daß die Information in einer Form vorliegen kann, in der direkt mehrere Registernummern spezifiziert werden. In diesem Fall ist ein Datenwert, der die Nummer erforderlicher Datenübertragungen anzeigt, getrennt erforderlich; jedoch kann ein solcher Datenwert als Operand übertragen werden, der die Daten in einer Anweisung oder einem Befehl nicht enthält.
  • Ferner ist die Erfindung, obwohl bei der obigen Ausführungsform eine Beschreibung für eine Datenübertragungsanweisung zwischen dem Speicher und dem Coprozessor erfolgte, auch auf den Fall einer Übertragung eines Befehls und anderer Daten zwischen dem Hauptprozessor und dem Coprozessor anwendbar, und ferner auf die Ausführung einer arithmetischen Anweisung, die im wesentlichen die Übertragung eines Operanden benötigt.
  • Obwohl die vorstehende Beschreibung für einen Fall erfolgt, in dem die in erster Linie von den Erfindern getätigte Erfindung auf Datenübertragungssteuerung zwischen mehreren Universalregistern im Coprozessor und im Speicher angewandt ist, was das Anwendungsgebiet gemäß dem Hintergrund der Erfindung ist, ist die Erfindung nicht auf diesen Fall beschränkt, sondern sie kann in weitem Umfang auf Datenübertragungssteuerung in Fällen angewandt werden, in denen andere Datenspeichereinrichtungen wie Peripheriegeräte außer einem Speicher und Steuerregistern im Coprozessor verwendet werden. Kurz gesagt, kann die Erfindung unter der Bedingung angewandt werden, daß mindestens ein Hauptprozessor und ein Coprozessor vorhanden sind.
  • Während die Erfindung unter Bezugnahme auf das spezielle, veranschaulichende Ausführungsbeispiel beschrieben wurde, ist sie nicht durch das Ausführungsbeispiel sondern durch die beigefügten Ansprüche beschränkt.

Claims (13)

1. Mikroprozessorsystem, umfassend
einen Bus (3),
einen an den Bus angekoppelten Coprozessor (2),
einen an den Bus angekoppelten Hauptprozessor (1), und
ein an den Bus angekoppeltes externes Gerät (6),
wobei der Hauptprozessor (1) aufweist:
eine Übertragungseinrichtung (9) zum Übertragen eines Befehls an den Coprozessor, wobei der Befehl auf einer Instruktion beruht, die von einer Aufrufeinrichtung (9) für den Coprozessor aufgerufen wird, und
eine Recheneinrichtung (12) zur Ausführung der Berechnung einer Adresse des externen Gerätes für den Datenübertragungsvorgang, dadurch gekennzeichnet, daß der Hauptprozessor (1) den Bus-Zugriffszyklus für den Coprozessor ausführt,
daß der Hauptprozessor (1) eine mit einer Datenübertragungsnummer (1) gesetzte erste Setzeinrichtung (29) umfaßt,
wobei die Datenübertragungsnummer in dem Befehl enthalten ist und die zwischen dem Coprozessor (2) und dem externen Gerät (6) durchzuführenden Datenübertragungsvorgänge bezeichnet, und wobei der Hauptprozessor eine Einrichtung aufweist, die gemäß der gesetzten Datenübertragungsnummer der ersten Setzeinrichtung das Ende des Datenübertragungsvorgangs unabhängig vom Coprozessor feststellt, und
daß der Coprozessor (2) eine mit der Datenübertragungsnummer gesetzte zweite Setzeinrichtung (34) umfaßt, wobei die Datenübertragungsnummer in dem für den Hauptprozessor vorgesehenen Befehl enthalten ist, und wobei der Coprozessor eine Einrichtung aufweist, die gemäß der gesetzten Datenübertragungsnummer der zweiten Setzeinrichtung das Ende des zwischen einem internen Abschnitt (32) des Coprozessors und dem externen Gerät (6) durchgeführten Datenübertragungsvorgangs feststellt,
wobei der Datenübertragungsvorgang zwischen dem Coprozessor und dem externen Gerät über den Bus ausgeführt wird, ohne den Hauptprozessor zu durchlaufen.
2. Mikroprozessorsystem nach Anspruch 1,
wobei sowohl die erste als auch die zweite Setzeinrichtung eine das erste gesetzte Bit ermittelnde Schaltung (29, 34) ist, und
wobei die das erste gesetzte Bit ermittelnde Schaltung eine Einrichtung umfaßt, die für jeden Datenübertragungsvorgang eine Code-Invertierung an einem vorgegebenen Codebit vornimmt, das in einer Mehrzahl von Bitsätzen enthalten sind, die in die das erste gesetzte Bit ermittelnde Schaltung gesetzt sind, um die Mehrzahl von Bitsätzen aufzufrischen, sowie eine Einrichtung, die ein Ende der Folge von Datenübertragungsvorgängen aufgrund der Bedingung feststellt, daß keiner der aufgefrischten Bitsätze das vorgegebene Codebit enthält.
3. Mikroprozessorsystem nach Anspruch 2, wobei der interne Abschnitt des Coprozessors mehrere Datenspeichereinrichtungen (32) zur Datenspeicherung umfaßt, und wobei die Mehrzahl von Bitsätzen einen vorgegebenen der Mehrzahl von Datenspeichereinrichtungen bezeichnen.
4. Mikroprozessorsystem nach Anspruch 3, wobei jede der das erste gesetzte Bit ermittelnden Schaltungen (29, 34) eine Einrichtung zum Decodieren der Mehrzahl von Bitsätzen umfaßt, um eine der Datenspeichereinrichtungen (32) des Coprozessors zu bezeichnen.
5. Mikroprozessorsystem nach Anspruch 2, wobei der Hauptprozessor (1) eine Einrichtung zur Bildung des dem Coprozessor zuzuführenden Befehls aufgrund der von dem Hauptprozessor aufgerufenen Instruktion umfaßt, wobei der Befehl mehrere Bitsätze enthält, die in die das erste gesetzte Bit ermittelnde Schaltung (34) des Coprozessors (2) zu setzen sind.
6. Mikroprozessorsystem nach Anspruch 3, wobei die Mehrzahl von internen Datenspeichereinrichtungen mehrere Allzweckregister (32) umfaßt.
7. Mikroprozessorsystem nach Anspruch 1, wobei das externe Gerät eine Speichereinrichtung (6) zur Datenspeicherung ist.
8. Verfahren in einem Mikroprozessorsystem, das einen Bus (3)' einen an den Bus angekoppelten Hauptprozessor (1), einen an den Bus angekoppelten Coprozessor (2) und ein an den Bus angekoppeltes externes Gerät (6) aufweist, zur Ausführung einer Folge von Datenübertragungsvorgängen zwischen dem externen Gerät und mehreren in dem Coprozessor enthaltenen Datenspeichereinrichtungen (32), wobei das Verfahren folgende Schritte umfaßt
(a) Aufrufen einer vorgegebenen Instruktion für den Coprozessor (2),
(b) Erzeugen eines Befehls für den Coprozessor (2) aufgrund des in dem Aufrufschritt (a) durch den Hauptprozessor (1) aufgerufenen Befehls, und
(c) Zuführen des in dem Befehlsschritt (2) erzeugten Befehls an den Coprozessor, wobei das Verfahren dadurch gekennzeichnet ist, daß die Bus-Zugriffszyklen von dem Hauptprozessor (1) aktiviert werden, und daß das Verfahren ferner folgende Schritte umfaßt:
(d) Überwachen eines Endes der Folge von Datenübertragungsvorgängen durch den Hauptprozessor (1) aufgrund einer in dem Befehl enthaltenen Datenübertragungsnummer für den Coprozessor (2), und
(e) Überwachen eines Endes der Folge von Datenübertragungsvorgängen durch den Coprozessor (2) aufgrund einer in dem Befehl enthaltenen Datenübertragungsnummer unabhängig von der durch den Hauptprozessor ausgeführten Überwachung, wobei die Datenübertragungsvorgänge zwischen dem Coprozessor und dem externen Gerät durch den Bus ausgeführt werden, ohne den Hauptprozessor zu durchlaufen.
9. Verfahren nach Anspruch 8, wobei die durch den Hauptprozessor (1) auszuführende Überwachung einen Schritt umfaßt, bei dem nach Erfassung eines Endes der Folge von Datenübertragungsvorgängen eine Aktivierung eines weiteren Bus-Zugriffszyklus gestoppt wird.
10. Verfahren nach Anspruch 8, wobei die Überwachung durch den Coprozessor (2) einen Schritt umfaßt, bei dem nach Erfassung eines Endes der Folge von Datenübertragungsvorgängen eine Aktivierung eines weiteren Bus-Zugriffszyklus gestoppt wird.
11. Verfahren nach Anspruch 8, ferner umfassend einen Schritt, der funktionsmäßig auf den in dem Befehl enthaltenen Daten beruht, um für jeden Datenübertragungszyklus die als Datenübertragungsquelle oder -ziel für den Coprozessor verwendete Datenspeichereinrichtung zu beurteilen und festzustellen.
12. Verfahren nach Anspruch 11, wobei der Schritt der Feststellung und der Bezeichnung der Datenspeichereinrichtung für jeden Datenübertragungszyklus umfaßt für jeden Datenübertragungsvorgang wird eine Code-Inversion an einem in den Daten enthaltenen vorbestimmten Codebit bewirkt, und für jeden Datenübertragungsvorgang wird aufgrund der Bedingung, daß die Daten das vorgegebene Codebit nicht enthalten, ein Ende der Vorgänge feststellt.
13. Verfahren nach Anspruch 12, wobei die in den Daten enthaltene Mehrzahl von Bits aufgrund einer Kombination jedes Bitcodes eine vorgegebene der in dem Coprozessor (2) enthaltenen Datenspeichereinrichtungen bezeichnet.
DE3750284T 1986-09-24 1987-09-24 Mikroprozessorsystem. Expired - Fee Related DE3750284T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61223587A JPH079643B2 (ja) 1986-09-24 1986-09-24 コプロセツサデ−タ転送制御方式

Publications (2)

Publication Number Publication Date
DE3750284D1 DE3750284D1 (de) 1994-09-01
DE3750284T2 true DE3750284T2 (de) 1994-11-17

Family

ID=16800502

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3750284T Expired - Fee Related DE3750284T2 (de) 1986-09-24 1987-09-24 Mikroprozessorsystem.

Country Status (4)

Country Link
EP (1) EP0261685B1 (de)
JP (1) JPH079643B2 (de)
KR (1) KR950008225B1 (de)
DE (1) DE3750284T2 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0389175A3 (de) * 1989-03-15 1992-11-19 Fujitsu Limited Datenvorausladesystem
US6505290B1 (en) * 1997-09-05 2003-01-07 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2422205A1 (fr) * 1978-04-05 1979-11-02 Renault Operateur de calcul universel microprogrammable
US4270167A (en) * 1978-06-30 1981-05-26 Intel Corporation Apparatus and method for cooperative and concurrent coprocessing of digital information
JPS5840214B2 (ja) * 1979-06-26 1983-09-03 株式会社東芝 計算機システム
US4338675A (en) * 1980-02-13 1982-07-06 Intel Corporation Numeric data processor
JPS6097458A (ja) * 1983-10-18 1985-05-31 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション デ−タ転送装置
JPS60195661A (ja) * 1984-03-19 1985-10-04 Hitachi Ltd デ−タ処理システム

Also Published As

Publication number Publication date
DE3750284D1 (de) 1994-09-01
KR950008225B1 (ko) 1995-07-26
KR880004383A (ko) 1988-06-07
EP0261685B1 (de) 1994-07-27
JPH079643B2 (ja) 1995-02-01
JPS6379162A (ja) 1988-04-09
EP0261685A2 (de) 1988-03-30
EP0261685A3 (de) 1991-04-24

Similar Documents

Publication Publication Date Title
DE2714805C2 (de)
DE3689394T2 (de) Informationsverarbeitungsanlage mit einem Allzweckprozessor und einem Sonderzweckprozessor.
DE3587213T2 (de) Verarbeitungseinheit mit der faehigkeit ein oder mehrere programme auszufuehren mit einer mehrzahl von funktionseinheiten.
DE68927492T2 (de) Verfahren und Vorrichtung zur gleichzeitigen Verteilung von Befehlen an mehrere funktionelle Einheiten
DE3750935T2 (de) Verfahren und System zum Erleichtern der Befehlsausführung in einem digitalen Rechner.
DE2306115C2 (de) Datenprozessor mit Mikroprogrammspeicherüberlagerung
DE3210816C2 (de)
DE2839726C2 (de) Multiprozessoranlage mit verteilter Steuerarchitektur
DE2846495C2 (de) Zentraleinheit
EP0010194B1 (de) Wartungsschnittstelleneinrichtung für eine datenverarbeitende Anlage mit einer zentralen Verarbeitungseinheit und mit einem Dienstprozessor und Verfahren zu ihrem Betrieb
DE3789604T2 (de) Datenprozessor zur parallelen Ausführung von miteinander im Konflikt stehenden Befehlen.
DE3852928T2 (de) Datenprozessor mit A/D-Umsetzer, um mehrere analoge Eingabekanäle in Digitaldaten umzusetzen.
DE3851746T2 (de) Sprungvorhersage.
DE3638572C2 (de)
DE3725343A1 (de) Vielzweck-kanalsteuersystem
DE2036729A1 (de) Digital Datenverarbeiter
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
CH522921A (de) Rechneranlage
DE2411963B2 (de) Datenverarbeitungsanlage
DE2317417A1 (de) Takt- und steuerlogikschaltung
DE68924719T2 (de) Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung.
DE2715073A1 (de) Mikroprogrammierte rechner-steuervorrichtung
DE3424962A1 (de) Datenverarbeitungsverfahren und vorrichtung zur durchfuehrung desselben
DE68917647T2 (de) Multiprozessorsteuerungssystem.
DE3852056T2 (de) Koprozessor und Verfahren zu dessen Steuerung.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee