DE69322566T2 - Datenprozessor - Google Patents

Datenprozessor

Info

Publication number
DE69322566T2
DE69322566T2 DE1993622566 DE69322566T DE69322566T2 DE 69322566 T2 DE69322566 T2 DE 69322566T2 DE 1993622566 DE1993622566 DE 1993622566 DE 69322566 T DE69322566 T DE 69322566T DE 69322566 T2 DE69322566 T2 DE 69322566T2
Authority
DE
Germany
Prior art keywords
registers
alu
parallel
register
instructions
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
DE1993622566
Other languages
English (en)
Other versions
DE69322566D1 (de
Inventor
Takeshi Setagaya-Ku Tokyo Hoshina
Yoshio Taito-Ku Tokyo Iida
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.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp filed Critical Toyota Motor Corp
Application granted granted Critical
Publication of DE69322566D1 publication Critical patent/DE69322566D1/de
Publication of DE69322566T2 publication Critical patent/DE69322566T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • 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/3885Concurrent 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)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

    HINTERGRUND DER ERFINDUNG 1. Gebiet der Erfindung
  • Diese Erfindung betrifft einen Datenprozessor und insbesondere einen Datenprozessor, der parallele Operationen durchführen kann.
  • 2. Beschreibung des relevanten Standes der Technik
  • In den vergangenen Jahren hat sich die Digitaltechnik stark entwickelt, und es werden Daten verschiedener Arten mit hoher Geschwindigkeit unter Verwendung der Digitaltechnik verarbeitet. Allerdings erfordert eine komplizierte Verarbeitung mit hoher Geschwindigkeit eine Datenverarbeitung bei höherer Geschwindigkeit. Zur Erfüllung dieses Erfordernisses wurden verschiedene Technologien für einen Hochgeschwindigkeitsbetrieb entwickelt und vorgeschlagen.
  • Eine der herkömmlichen typischen Technologien für einen Hochgeschwindigkeitsbetrieb ist die Pipeline-Verarbeitung. Fig. 4 zeigt einen typischen Verarbeitungsablauf für die Pipelineverarbeitung. Wie es in Fig. 4 gezeigt ist, ist bei der Datenverarbeitung durch die Pipelineverarbeitung ein Prozessor 8 in eine Anzahl von Verarbeitungsstufen eingeteilt, wie eine Befehlsabrufstufe 10, eine Befehlsdekodierstufe 12, eine Operandenabrufstufe 14, eine Operationsausführungsstufe 16 und eine Ergebnisspeicherungsstufe 18. Der Prozessor 8 kann eine gleichzeitige Verarbeitung von fünf Befehlen durch Abwicklung einer Folge separater Befehle oder Daten auf verschiedenen Stufen durchführen. In jedem Zyklus des Arbeitstakts wird die dem Befehl dem Befehl entsprechende Operation in jeder Stufe durchgeführt.
  • Werden die Ausgaben des Prozessors 8 überwacht, wird ein Befehl in einem Zyklus wie bei herkömmlichen Prozessoren abgewickelt. Ein Zyklus des herkömmlichen Prozessors ist aber auf die Zeit eingestellt, die zur vollständigen Abwicklung eines Befehls erforderlich ist, während in dem Prozessor 8, bei dem eine Pipelineverarbeitung angewendet wird, ein Zyklus auf die Zeit eingestellt ist, die zur Durchführung der Operation an jeder Stufe erforderlich ist. Infolgedessen kann der Arbeitstakt des Prozessors 8, bei dem eine Pipelineverarbeitung angewendet wird, verglichen mit dem herkömmlichen Prozessor kurz eingestellt werden, oder wenn beide den gleichen Arbeitstakt aufweisen, kann der Prozessor 8, bei dem eine Pipelineverarbeitung angewendet wird, kompliziertere Operationen bezüglich der Befehle durchführen.
  • Somit wird durch die Aufteilung des Prozessors in eine Vielzahl von Verarbeitungsstufen die Arbeitsgeschwindigkeit in der Theorie im wesentlichen proportional zur Anzahl der Stufen verbessert. Tatsächlich werden bei Sprungbefehlen, usw. in die Pipeline bereits eingelesene Befehle ungültig gemacht, und ein neuer Befehl wird von dem Sprungziel gelesen. Daher wird bei der Durchführung von Sprungbefehlen, usw. der Pipelinestrom abgeschnitten. Eine zu lange Pipeline verursacht eine Verlangsamung der Programmausführungsgeschwindigkeit. Infolgedessen wird im allgemeinen oft eine Pipeline von ungefähr vier bis sechs Stufen verwendet. Ein Supercomputer oder dergleichen ist mit einer Anzahl von Pipelines für einen Superskalierer ("super scaler"), usw. versehen.
  • Eine andere herkömmliche Technologie für einen Hochgeschwindigkeitsbetrieb ist die Mehrprozessortechnologie. Anders als die vorstehend beschriebene Pipelmetechnologie verwendet die Mehrprozessortechnologie eine Vielzahl von Prozessoren. Fig. 5 zeigt die Mehrprozessortechnologie. Wie es in Fig. 5 gezeigt ist, ist eine Anzahl von Prozessoren 32 mit gemeinsamen Registern 30 verbunden. Im allgemeinen wird den Prozessoren 32 der gleiche Befehl zugeführt, die dann eine Datenverarbeitung für verschiedene Daten in den gemeinsamen Registern 30 durchführen. Somit kann die Arbeitsgeschwindigkeit proportional zur Anzahl der Prozessoren ausgebildet werden, und es kann eine Verbesserung der Datenverarbeitungsgeschwindigkeit erwartet werden.
  • Ein in Informationsverarbeitungssystem, bei dem die vorstehend beschriebene Pipelmetechnologie angewendet wird, ist beispielsweise in der japanischen Patentoffenlegungsschrift Nr. Hei 2-29825 beschrieben. Ein Beispiel der Mehrprozessortechnologie unter Verwendung eines zentralen Prozessors und von Koprozessoren ist in der japanischen Patentoffenlegungsschrift Nr. Hei 2-32452 beschrieben. Die hierin beschriebene Mehrprozessortechnologie ermöglicht es dem zentralen Prozessor, die Ausführung der Koprozessoren zu überwachen.
  • Ein Parallelverarbeitungssystem mit einem Aufbau zum Umschalten zwischen einer Parallelverarbeitung und Seriellverarbeitung ist beispielsweise in der japanischen Patentoffenlegungsschrift Nr. Hei 3-129433 beschrieben.
  • Eine andere Technologie zum Hochgeschwindigkeitsbetrieb liefert einen Rechner mit reduzierten Befehlsvorrat (RISC). Ein Beispiel eines derartigen RISC ist beispielsweise in der japanischen Patentoffenlegungsschrift Nr. Sho 63-49843 beschrieben.
  • Die herkömmlichen Datenprozessoren sind wie vorstehend beschrieben konfiguriert. Demnach wird zur Beschleunigung einer Parallelverarbeitung des Superskalierers, usw. durch weitere Verwendung der Pipelmetechnologie die Architektur der Pipe line, usw. äußerst kompliziert, wodurch Entwicklungsarbeiten erhöht und die erzielte Produktion verschlechtert wird.
  • Andererseits muß bei der Softwareentwicklung der Betrieb der Pipeline im Einzelnen zur Herstellung von Software verstanden werden, die genau gesteuert werden kann.
  • Des weiteren erfordert eine Parallelverarbeitung in dem vorstehend beschriebenen Mehrprozessorsystem die gleichen (gemeinsamen) Betriebsmittel, auf die durch die Prozessoren zugegriffen werden kann (bei dem vorstehend angeführten Beispiel sind dies die gemeinsamen Register). Es ist auch eine Kommunikation zwischen den Prozessoren erforderlich, um gleichzeitige Zugriffe auf die gleichen Betriebsmittel durch die Prozessoren oder einen Konflikt zwischen den Prozessoren zu vermeiden. Somit muß bei einem System mit Hochgeschwindigkeitsbetrieb unter Verwendung der Mehrprozessortechnologie der Zwischenprozessor-Kommunikationszustand ausreichend erfaßt sein, bevor eine Prozessorsteuerungssoftware entworfen wird.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Der Erfindung liegt daher die Aufgabe zugrunde, einen Datenprozessor auszugestalten, der parallele und serielle Operationen umschalten kann, und eine Architektur aufweist, die bezüglich der Herstellung und Entwicklung einfach ist, und auch die Softwareentwicklung erleichtert.
  • Diese Aufgabe wird gemäß einem Ausführungsbeispiel der Erfindung durch einen Datenprozessor gemäß Patentanspruch 1 gelöst.
  • Daher kann bei seriellen Operationen die Hauptoperationseinheit Daten von/in alle Register lesen/schreiben, und bei parallelen Operationen kann sie Daten von/in die dafür dedi zierten Register und die gemeinsamen Register lesen/schreiben.
  • Wird ein serieller Operationsbefehl eingegeben, veranlaßt der Steuerabschnitt lediglich die Hauptbetriebseinheit zur Durchführung einer gegebenen Operation. Wird ein paralleler Operationsbefehl eingegeben, veranlaßt er nicht nur die Hauptoperationseinheit sondern auch andere Operationseinheiten zur Durchführung einer gegebenen Operation.
  • Werden parallele Operationsbefehle ausgeführt, wird auf die dedizierten Register nur durch die entsprechenden Operationseinheiten zum Lesen/Schreiben von Daten zugegriffen. Werden serielle Operationsbefehle ausgeführt, kann auf alle dedizierten Register nur durch die Hauptoperationseinheit zum Lesen/Schreiben von Daten zugegriffen werden.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • Fig. 1 und 2 zeigen Blockschaltbilder eines Prozessors gemäß einem bevorzugten Ausführungsbeispiel der Erfindung.
  • Fig. 3 zeigt eine Darstellung darüber, auf welche ALU- Register in parallelen und seriellen Modi des Prozessors gemäß dem bevorzugten Ausführungsbeispiel zugegriffen wird.
  • Fig. 4 zeigt eine Darstellung eines typischen Prozessoroperationsablaufs bei der herkömmlichen Pipelmetechnologie.
  • Fig. 5 zeigt ein Blockschaltbild der herkömmlichen Mehrprozessortechnologie.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
  • In der beiliegenden Zeichnung ist ein bevorzugtes Ausführungsbeispiel der Erfindung gezeigt.
  • Die Fig. 1 und 2 zeigen Blockschaltbilder eines Datenprozessors gemäß einem Ausführungsbeispiel der Erfindung. Wie es in Fig. 1 gezeigt ist, ist der Datenprozessor gemäß dem Ausführungsbeispiel eine Zentralverarbeitungseinheit (CPU) mit einer ersten Arithmetik- und Logikeinheit (ALU) 40 und einer zweiten ALU 42. Er umfaßt auch 12 Register 44-0 bis 44-11. Ein Steuerabschnitt 46 steuert die erste und die zweite ALU 40 und 42 und die 12 Register 44-0 bis 44-11. Gemäß dem Ausführungsbeispiel in die CPU eingegebene Befehle werden in serielle und parallele Operationsbefehle eingeteilt.
  • Das Ausführungsbeispiel ist durch die Tatsache charakterisiert, daß die seriellen Operationsbefehle nur durch die erste ALU 40 ausgeführt werden, wobei zu dieser Zeit die zweite ALU 42 angehalten ist. Andererseits werden die parallelen Operationsbefehle durch die erste und die zweite ALU 40 und 42 parallel zur gleichen Zeit ausgeführt. Ob der eingegebene Befehl ein serieller oder paralleler Operationsbefehl ist, wird durch den Steuerabschnitt 46 bestimmt. Der Steuerabschnitt 46 bestimmt, ob der eingegebene Befehl ein serieller oder paralleler Operationsbefehl ist und steuert die Operationen der ersten und der zweiten ALU im Ansprechen auf das bestimmte Ergebnis.
  • In Fig. 1 ist ein Verarbeitungsschema bei der Ausführung paralleler Operationsbefehle gezeigt (nachstehend wird dieser Zustand als paralleler Modus bezeichnet). Wie es in Fig. 1 gezeigt ist, sind im parallelen Modus die Register 44-0 bis 44-3 mit der ersten und der zweiten ALU 40 und 42 verbunden. Register 44-4 bis 44-7 sind nur mit der ersten ALU 40 verbunden. Register 44-8 bis 44-11 sind nur mit der zweiten ALU 42 verbunden.
  • Das Ausführungsbeispiel ist durch die Tatsache charakterisiert, daß zwei Arten von Registergruppen in dem parallelen Modus vorgesehen sind: eine sowohl mit der ersten als auch der zweiten ALU verbundene gemeinsame Registergruppe und eine nur mit einer der ALUs verbundene dedizierte Registergruppe. Wie es in Fig. 1 gezeigt ist, sind in dem Ausführungsbeispiel die Register 44-0 bis 44-3 gemeinsame Register, die Register 44-4 bis 44-7 sind für die erste ALU 40 dedizierte Register und die Register 44-8 bis 44-11 sind für die zweite ALU 42 dedizierte Register. Im parallelen Modus wird auf die für die zweite ALU dedizierten Register 44-8 bis 44-11 mit den gleichen Nummern wie auf die Register 44-11 bis 44-7 bezug genommen, die für die erste ALU dediziert sind. Zum Zeitpunkt der Operation wird der gleiche Befehl der ersten und der zweiten ALU 40 und 42 zugeführt, wodurch beispielsweise auf das Register 44-8 immer zur gleichen Zeit wie auf das Register 44-4 bezug genommen wird, wie es nachstehend beschrieben ist.
  • In Fig. 2 ist ein Betriebsschema für die Ausführung serieller Operationsbefehle gezeigt (nachstehend wird dieser Zustand als serieller Modus bezeichnet).
  • Wie es in Fig. 2 gezeigt ist, sind in dem seriellen Modus alle Register 44-0 bis 44-11 nur mit der ersten ALU 40 verbunden, und die zweite ALU 42 ist abgetrennt. Fig. 3 zeigt, welche ALU in den beiden Modi auf die Register zugreifen kann.
  • Nachstehend sind ausführliche Operationen beschrieben, in denen die Werte einer Matrix A mit den Werten einer Matrix B zur Erzeugung einer Matrix C multipliziert werden. Es wird angenommen, daß die Matrix B von einem Eingangs- /Ausgangsanschluß (I/O-Anschluß) eingegeben wird, und daß die Matrix C des Berechnungsergebnisses auch zu dem I/O-Anschluß ausgegeben wird. Die Matrizen A, B und C sind wie folgt gegeben:
  • Cx = {ax + by}
  • Cy = {cx + dy}
  • Ein Beispielprogramm zur Durchführung derartiger Multiplikationen sieht folgendermaßen aus:
  • Die Ausführung dieses Programms wird zuerst im seriellen Modus gestartet. Die Befehle in den Schritten (1) bis (4) laden a in das Register 44-4 (R4), b in das Register 44-S (R5), c in das Register 44-8 (R8) und d in das Register 44-9 (R9). In der folgenden Beschreibung werden die Register 44 als R0 bis R11 dargestellt. Der ldi-Befehl, der "Load immediate" darstellt, ist ein serieller Operationsbefehl, der einen gegebenen Wert direkt in ein gegebenes Register lädt. Schritt (5) ist eine Marke, die den Beginn einer Schleife der Operationssequenz darstellt, wie es nachstehend beschrieben ist.
  • Die Befehle in den Schritten (6) und (7) erhalten die Werte der Matrix A von dem I/O-Anschluß und speichern sie in den Registern R0 und R1. Die get-Befehle sind Eingabe- /Ausgabebefehle zum Erhalten der Werte von dem I/O-Anschluß.
  • Somit werden a und b in den Registern gespeichert, die für die erste ALU reserviert bzw. dediziert sind (R4 und R5), und c und d werden in den Registern gespeichert, die für die zweite ALU (R8 und R9) dediziert sind, und des weiteren werden x und y der Matrix B in den gemeinsamen Registern R0 und R1 gespeichert.
  • Dann werden tatsächliche Multiplikationen durchgeführt: ax und by werden durch die erste ALU und cx und dy durch die zweite ALU parallel ausgeführt.
  • Die Schritte (8) bis (10) stellen den Kern der Multiplikationsoperation dar. Befehle, an die ein Index ".p" angehängt ist, wie die in diesen drei Schritten verwendeten Befehle, sind parallele Operationsbefehle. In den Schritten 1 bis 7 werden die Befehle durch die erste ALU ausgeführt. In den Schritten 8 bis 11 werden die Befehle sowohl durch die erste als auch die zweite ALU 40 und 42 ausgeführt.
  • In Schritt (8) multipliziert die erste ALU 40 den Wert des Registers R0 und den Wert des Registers R4 und speichert das Ergebnis im Register R6. Andererseits sind bei der zweiten ALU 42 die Register R4 und R6 Register R8 und R10 im seriellen Modus, wie es vorstehend beschrieben ist. Daher multipliziert die zweite ALU 42 die Werte der Register R0 und R8 und speichert das Ergebnis im Register R10. Somit führt die erste ALU 40 a * x und die zweite ALU 42 c * x aus, und die Ergebnisse werden jeweils in Registern R6 und R10 gespeichert. Fmpy, das "Floating Multiply" darstellt, ist ein Gleitpunkt- Multiplikationsbefehl.
  • Der Befehl in Schritt (9) ist auch ein paralleler Operationsbefehl gleich dem in Schritt (8). Die erste ALU 40 multipli ziert den Wert des Registers R1 und den Wert des Registers R5 und speichert das Ergebnis im Register R7. Andererseits sind bei der zweiten ALU 42 die Register R5 und R7 die Register R9 und R11 im seriellen Modus, wie es vorstehend beschrieben ist. Daher multipliziert die zweite ALU 42 die Werte der Register R1 und R9 und speichert das Ergebnis im Register R11. Somit führt die erste ALU 40 b * y und die zweite ALU 42 d * y aus und die Ergebnisse werden jeweils in den Registern R7 und R11 gespeichert.
  • Nun sind a * x in dem Register R6, c * x im Register R10, b * y im Register R7 und d * y im Register R11 gespeichert.
  • In Schritt 10 werden Additionen durchgeführt. Die erste und die zweite ALU 40 und 42 führen die Addition parallel durch den Paralleloperationsbefehl Fadd.p durch. Die erste ALU 40 addiert den Wert des Registers R7 und den Wert des Registers R6 und speichert das Ergebnis im Register R4. In der zweiten ALU 42 sind die Register R6, R7 und R4 in dem seriellen Modus jeweils die Register R10, R11 und R8. Daher multipliziert die zweite ALU 42 die Werte der Register R11 und R10 und speichert das Ergebnis im Register R8. Somit führt die erste ALU 40 (a * x) + (b * y) und die zweite ALU 42 (c * x) + (d * y) aus, und die Ergebnisse werden jeweils in den Registern R4 und R8 gespeichert. Der Paralleloperationsbefehl Fadd.p, der "Floating Addition" darstellt, ist ein Gleitpunktadditionsbefehl.
  • Somit sind die Elemente der Matrix C, Cx und Cy, die die Multiplikationsergebnisse der Matrizen A und B darstellen, in den Registern R4 und R8 gespeichert.
  • Die durch Durchführung der Operationen erhaltenen Ergebnisse werden in den Schritten 11 und 12 zu dem I/O-Anschluß ausgegeben. Der Wert des Registers R4, d. h. Cx (= (a * x) + (b * y)) wird in Schritt (11) und der Wert des Registers R8, d. h. Cy (= (c * x) + (d * y)) in Schritt (12) ausgegeben. Die put- Befehle sind im seriellen Modus ausgeführte Befehle zur Ausgabe der Registerwerte zu dem I/O-Anschluß.
  • Der Befehl in Schritt (13) ist schließlich ein Sprungbefehl zum Sprung zur Marke LOOP und zur Wiederholung der vorstehend beschriebenen Operationsfolge.
  • Herkömmlicherweise erforderten parallele Operationen die Ausbildung verschiedener Programme für jede Prozessoreinheit und die Zufuhr von dedizierten Befehlen zu den Prozessoreinheiten. Gemäß dem Ausführungsbeispiel ist allerdings eine Prozessoreinheit mit einer Vielzahl von ALUs versehen, von denen jede mit dedizierten Registern versehen ist, wodurch Operationen bei verschiedenen Daten durchgeführt werden, während den ALUs gemeinsame Befehle zugeführt werden. Daher sind die Operationen in den Schritten (8) bis (10) äquivalent zu folgenden Programmen für die erste und die zweite ALU 40 und 42:
  • Programm für erste ALU
  • Fmpy R6, R4, R0
  • Fmpy R7, R5, R1
  • Fadd R4, R6, R7
  • Programm für zweite ALU
  • Fmpy R10, R8, R0
  • Fmpy R11, R9, R1
  • Fadd R8, R10, R11
  • Somit würde das herkömmliche Mehrprozessorsystem die Ausbildung separater Programme erfordern, jedoch werden gemäß dem Ausführungsbeispiel parallele Operationen einfach durch die Bereitstellung eines Programms ermöglicht.
  • Wie es vorstehend beschrieben ist, ist eine CPU gemäß dem Ausführungsbeispiel vorgesehen, die die Modi einfach durch Zufuhr paralleler und serieller Operationsbefehle automatisch umschalten kann. Da jede ALU des weiteren mit dedizierten Registern versehen ist, können die ALUs separate Operationen bei verschiedenen Daten im parallelen Modus durchführen. Daher kann die Kommunikationssteuerung zur Vermeidung eines gleichzeitigen Zugriffs auf gemeinsame Register (Konflikt) wie bei der herkömmlichen Mehrprozessortechnologie sehr vereinfacht werden, und die Struktur der CPU wird einfach. Aus diesen Gründen kann die CPU gemäß dem Ausführungsbeispiel effiziente parallele Operationen durchführen und die Programmentwicklung erleichtern.
  • Wie es vorstehend beschrieben ist, können gemäß dem Datenprozessor der Erfindung effiziente parallele Operationen und herkömmliche serielle Operationen sehr leicht umgeschaltet werden, indem die dem Datenprozessor zugeführten Befehle umgeschaltet werden. Da die parallelen Operationsbefehle die Operationseinheiten zur Durchführung der gleichen Operationen veranlassen, ermöglicht ein Programm die Durchführung paralleler Operationen, wodurch parallele Operationen sehr leicht ausgeführt werden.
  • Daher kann die CPU parallele Operationen sehr leicht ohne die herkömmlich erforderliche komplizierte Entwicklung durchführen.
  • Obwohl das Ausführungsbeispiel ein Beispiel darstellt, bei dem die Erfindung bei der CPU angewendet wird, kann auch die Anwendung der Erfindung bei einem DSP (digitalen Signalprozessor) ähnliche Funktionen und Effekte erzeugen.
  • Obwohl die ALUs als Operationseinheiten gezeigt sind, wird auch die Verwendung von Addierern als Operationseinheiten für Anwendungen bevorzugt, bei denen lediglich Additionsoperationen durchgeführt werden.

Claims (3)

1. Datenprozessor mit
einer Vielzahl von Operationseinheiten (40, 42) mit einer Hauptoperationseinheit (40),
dedizierten Registern (44-4 bis 44-7, 44-8 bis 44-11) für jede Operationseinheit, auf die durch die jeweilige Operationseinheit zum Lesen/Schreiben von Daten zugegriffen werden kann,
gemeinsamen Registern (44-0 bis 44-3) für die Vielzahl der Operationseinheiten, auf die durch jede der Vielzahl der Operationseinheiten zum Lesen/Schreiben von Daten zugegriffen werden kann, und
einem Steuerabschnitt, der die Vielzahl der Operationseinheiten steuert,
wobei der Steuerabschnitt bei der Eingabe eines parallelen Operationsbefehls bewirkt, daß die Vielzahl der Operationseinheiten die gleiche Operation durchführt und auf ihre dedizierten Register zugreift, und wobei der Steuerabschnitt bei der Eingabe eines seriellen Operationsbefehls bewirkt, daß lediglich die Hauptoperationseinheit eine gegebene Operation durchführt und Daten aus/in ihre dedizierten Register und die dedizierten Register anderer Operationseinheiten liest/schreibt.
2. Datenprozessor nach Anspruch 1, wobei die Operationseinheiten ALUs (Arithmetik-Logik-Einheiten) sind.
3. Datenprozessor nach Anspruch 1, wobei die Operationseinheiten Addierer sind.
DE1993622566 1992-09-18 1993-09-16 Datenprozessor Expired - Fee Related DE69322566T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24996992A JPH06103068A (ja) 1992-09-18 1992-09-18 データ処理装置

Publications (2)

Publication Number Publication Date
DE69322566D1 DE69322566D1 (de) 1999-01-28
DE69322566T2 true DE69322566T2 (de) 1999-06-17

Family

ID=17200889

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1993622566 Expired - Fee Related DE69322566T2 (de) 1992-09-18 1993-09-16 Datenprozessor

Country Status (3)

Country Link
EP (1) EP0588341B1 (de)
JP (1) JPH06103068A (de)
DE (1) DE69322566T2 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0594240B1 (de) * 1992-10-19 2000-01-05 Koninklijke Philips Electronics N.V. Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen
CN1523491A (zh) * 1998-03-18 2004-08-25 �����ɷ� 数字信号处理器
US6301653B1 (en) 1998-10-14 2001-10-09 Conexant Systems, Inc. Processor containing data path units with forwarding paths between two data path units and a unique configuration or register blocks
US6212604B1 (en) * 1998-12-03 2001-04-03 Sun Microsystems, Inc. Shared instruction cache for multiple processors
US7117342B2 (en) 1998-12-03 2006-10-03 Sun Microsystems, Inc. Implicitly derived register specifiers in a processor
US7114056B2 (en) 1998-12-03 2006-09-26 Sun Microsystems, Inc. Local and global register partitioning in a VLIW processor
US7526630B2 (en) 1999-04-09 2009-04-28 Clearspeed Technology, Plc Parallel data processing apparatus
US7506136B2 (en) 1999-04-09 2009-03-17 Clearspeed Technology Plc Parallel data processing apparatus
US7627736B2 (en) 1999-04-09 2009-12-01 Clearspeed Technology Plc Thread manager to control an array of processing elements
GB2391093B (en) * 1999-04-09 2004-04-07 Clearspeed Technology Ltd Parallel data processing systems
JP2002149402A (ja) * 2000-11-14 2002-05-24 Pacific Design Kk データ処理装置およびその制御方法
WO2002048871A1 (en) 2000-12-11 2002-06-20 Koninklijke Philips Electronics N.V. Signal processing device and method for supplying a signal processing result to a plurality of registers
JP4783527B2 (ja) 2001-01-31 2011-09-28 株式会社ガイア・システム・ソリューション データ処理システム、データ処理装置およびその制御方法
JP4865960B2 (ja) 2001-06-25 2012-02-01 株式会社ガイア・システム・ソリューション データ処理装置およびその制御方法
US6993674B2 (en) 2001-12-27 2006-01-31 Pacific Design, Inc. System LSI architecture and method for controlling the clock of a data processing system through the use of instructions
JP4528993B2 (ja) * 2006-10-23 2010-08-25 株式会社トプスシステムズ マルチバンクレジスタを有するプロセッサおよびプロセッサの制御方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58134357A (ja) * 1982-02-03 1983-08-10 Hitachi Ltd ベクトルプロセッサ
JPS60134974A (ja) * 1983-12-23 1985-07-18 Hitachi Ltd ベクトル処理装置
JP2602240B2 (ja) * 1987-08-28 1997-04-23 株式会社日立製作所 マルチプロセツサシステム
US5019968A (en) * 1988-03-29 1991-05-28 Yulan Wang Three-dimensional vector processor
JPH077388B2 (ja) * 1988-09-13 1995-01-30 富士通株式会社 ベクトル演算処理装置
EP0594240B1 (de) * 1992-10-19 2000-01-05 Koninklijke Philips Electronics N.V. Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen

Also Published As

Publication number Publication date
EP0588341B1 (de) 1998-12-16
EP0588341A2 (de) 1994-03-23
EP0588341A3 (en) 1995-10-18
DE69322566D1 (de) 1999-01-28
JPH06103068A (ja) 1994-04-15

Similar Documents

Publication Publication Date Title
DE69322566T2 (de) Datenprozessor
DE3856220T2 (de) Digitaler Signalprozessor der bedingte Mehrpunkt-Sprungbefehle im Pipelinemodus bearbeitet
DE68927371T2 (de) Verfahren und Vorrichtung zur Verarbeitung von mehreren Zustandscodes wie für einen Parallel-Pipeline-Rechner
DE3587277T2 (de) System fuer die umgehungssteuerung beim pipelinebetrieb eines computers.
DE3751503T2 (de) Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen.
DE3751164T2 (de) Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten.
DE69033065T2 (de) Mehrfachbefehlsdecoder
DE68929215T2 (de) Datenprozessor
DE3116100C2 (de) Datenverarbeitungseinheit
DE3689394T2 (de) Informationsverarbeitungsanlage mit einem Allzweckprozessor und einem Sonderzweckprozessor.
DE68927911T2 (de) Datenverarbeitungssystem
DE2714805C2 (de)
DE3401995C2 (de)
DE69228360T2 (de) Registerlesekontrolle
DE3587213T2 (de) Verarbeitungseinheit mit der faehigkeit ein oder mehrere programme auszufuehren mit einer mehrzahl von funktionseinheiten.
DE69636861T2 (de) Mikroprozessor mit Lade-/Speicheroperation zu/von mehreren Registern
DE69027932T2 (de) Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen
DE69130757T2 (de) Ausführungsvorrichtung für bedingte Verzweigungsbefehle
DE69133571T2 (de) Datenprozessor mit der Fähigkeit, zwei Befehle gleichzeitig auszuführen
DE69324730T2 (de) Multiplizier-Akkumulator
DE69230626T2 (de) Informationsverarbeitungssystem mit der Fähigkeit zum Betreiben von mehreren Vektorpipelines in zwei unterscheidlichen Wirkungsweisen
DE2715073A1 (de) Mikroprogrammierte rechner-steuervorrichtung
DE69229771T2 (de) Datenverarbeitungsverfahren und -vorrichtung
DE3855524T2 (de) Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator
DE3688806T2 (de) Instruktionsprozessor.

Legal Events

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