DE69500748T2 - Elektronischer Schaltkreis und Verfahren für die Verwendung mit einem Koprozessor - Google Patents
Elektronischer Schaltkreis und Verfahren für die Verwendung mit einem KoprozessorInfo
- Publication number
- DE69500748T2 DE69500748T2 DE69500748T DE69500748T DE69500748T2 DE 69500748 T2 DE69500748 T2 DE 69500748T2 DE 69500748 T DE69500748 T DE 69500748T DE 69500748 T DE69500748 T DE 69500748T DE 69500748 T2 DE69500748 T2 DE 69500748T2
- Authority
- DE
- Germany
- Prior art keywords
- instruction
- coprocessor
- processor
- circuit
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
Description
- Die vorliegende Erfindung hat eine elektronische Schaltung, insbesondere eine integrierte Schaltung, sowie eine besondere Verwendung dieser Schaltung, die ermöglicht, einen Prozessor mit einem Coprozessor zu betreiben, zum Gegenstand. Sie ist insbesondere nützlich im Gebiet der digitalen Signalprozessoren, die DSP genannt werden, wovon eine der wesentlichen Besonderheiten die Verarbeitungsgeschwindigkeit ist. Derartige digitale Prozessoren werden insbesondere bei den Übertragungen für die Ausführung von Codierungs- oder Verschlüsselungsoperationen insbesondere in Modems oder für Audioverarbeitungen verwendet.
- Die digitalen Verarbeitungsprozessoren sind bekannt. Sie enthalten eine Gesamtheit von Schaltungen, die die Programmierung einer programmierbaren Verarbeitungsschaltung ermöglichen, um Daten in Abhängigkeit vom programmierten Zustand der Verarbeitungsschaltung zu modifizieren. Die Modifikation des programmierten Zustands der Verarbeitungsschaltung wird erhalten, indem an diese Schaltung digitale Signale angelegt werden, die unter dem Namen Befehle bekannt sind. Die verschiedenen Schaltungen eines Prozessors enthalten insbesondere Befehlsregister und Datenregister, um mit der programmierbaren Verarbeitungsschaltung in Beziehung zu treten, sowie eine Ablaufsteuerschaltung, die die Reihenfolge des Anlegens der verschiedenen Befehle und der verschiedenen Daten an die Verarbeitungsschaltung zeitlich organisiert. Diese Folge von Operationen wird Programm genannt. Normalerweise kann ein solcher Prozessor ab dem Zeitpunkt, zu dem an ihn geeignete Befehle angelegt werden, Operationen beliebigen Typs ausführen.
- Es entsteht jedoch ein Problem, wenn bestimmte spezifische Verarbeitungen, die besonders kompliziert und lang sind, schnell ausgeführt werden sollen. In diesem Fall kann nicht auf einen normalerweise verwendeten Prozessor zurückgegriffen werden, ohne daß die Ausführung der späteren Befehle um eine zu lange Zeitdauer, die von der Komplexität dieser spezifischen Verarbeitungen abhängt, verzögert wird. Beispielsweise kann erwogen werden, daß die Arbeit eines Prozessors mit einem gegebenen Takt synchronisiert werden soll, wobei jede Operation während einer Zykluszeit ausgeführt wird. Es ist möglich, daß während dieser Arbeit eine Operation angetroffen wird, deren Dauer beispielsweise gleich der fünfzigfachen Zykluszeit ist.
- Um dennoch eine solche längere Operation während der Dauer eines Zyklus oder wenigstens sehr schnell auszuführen, wird auf die Technik der Coprozessoren zurückgegriffen. Die Coprozessoren sind in die Praxis spezifische Schaltungen, die Operationen sehr schnell, beispielsweise innerhalb von drei oder vier Zyklen, ausführen können, wenn diese Operationen den normalen Prozessor für fünfzig Zyklen beanspruchen würden. Der Einsatz zum gegebenen Zeitpunkt eines Coprozessors erfordert indessen, daß der Prozessor den Coprozessor konfiguriert und an ihn die Kontrolle übergibt, indem er an ihn die notwendigen Daten überträgt. Der Coprozessor arbeitet dann selbständig, wobei er, sobald er seine Arbeit beendet hat, dem Prozessor meldet, daß die verarbeiteten Daten verfügbar sind.
- Eine solche Arbeitsweise kann jedoch nicht in Betracht gezogen werden, wenn die während einer einzigen Zykluszeit auszuführenden Operationen nicht übermäßig lang sind, weil sie beispielsweise nur fünf Zykluszeiten dauern. Falls nämlich die Konfiguration des Coprozessors eine Dauer von fünf Zyklen erfordert, damit er anschließend während eines Zyklus die Arbeit ausführt, ist gegenüber der Dauer, die bei direkter Ausführung durch den Prozessor, der seiner Natur nach langsam ist, erhalten würde, nichts gewonnen. Es wird gezeigt werden, daß die Erfindung, obwohl sie auch nützlich ist, wenn der Coprozessor sehr lange und komplizierte Verarbeitungen ausführen soll, besonders nützlich ist, um die Probleme bei reduzierter Einsatzdauer des Coprozessors zu lösen.
- Das Dokument WESCON PROCEEDINGS, San Francisco, Ca, 19.- 22. November 1985, Bd. 29, New York, US, Seiten 1-17, Bob BEIMS "The MC68020 32-bit MPU: Opening New Application Doors", sieht bei Erkennung eines vom Coprozessor auszuführenden Befehls durch den Prozessor effektiv einen ersten Buszyklus - einen sogenannten Kommunikationszyklus - vor, um den Coprozessor zu initialisieren. Dies stellt einen Zeitverlust dar.
- Das Dokument HEWLETT-PACKARD JOURNAL, Bd. 43, Nr. 4, August 1992, Seiten 12-22; C. A. Gleason, u. a. "VLSI Circuits for Low-End Midrange PA-RISC Computers" beschreibt integrierte VLSI-Schaltungen, insbesondere eine Zentraleinheit CPU und einen Gleitkomma-Coprozessor FPC. Wie insbesondere auf Seite 15, rechte Spalte, Zeilen 42 bis 46 (siehe auch die Fig. 1 und 5) angegeben ist, ist der Coprozessor mit der CPU und den Cache-Speichern fest verdrahtet (tightly coupled). Der Coprozessor FPC ist direkt an den Befehls-Cache-Speicher (Cache-SRAMs) angeschlossen, was ihm die Decodierung der Befehle ermöglicht, sobald sie gelesen (fetch) werden, anstatt zu warten, daß die CPU ihm anzeigt, welche Operation auszuführen ist.
- Das Dokument ELECTRONIC DESIGN Nr. 2, 18. Januar 1980, Seiten 33-34; D. BURSKY "Z8000 CPUs Expand Processing Power with New Instructions, Special Processors" behandelt Verbesserungen an Prozessoren (CPUs) der Familie Z8000, insbesondere der Coprozessoren (Extended Processing Units EPUs).
- Die Coprozessoren (EPUs) sind, da mehrere von ihnen vorhanden sein können, für die meisten Aktivitäten transparent und überwachen (monitor) die Aktivitäten auf dem Bus des Prozessors CPU; wenn ein vom Prozessor gelesener Befehl ein erweiterter Befehl (extended instruction) ist, nehmen ihn die vorhandenen Coprozessoren (EPUs) auf (latch). Falls ein Befehl von einer gegebenen EPU ausgeführt werden muß, was durch ein Befehlsfeld angegeben wird, führen die CPU und die gewählte EPU diesen Befehl aus (siehe insbesondere Seite 33, linke Spalte, Zeile 42, bis mittlere Spalte, Zeile 7, mit den Fig. 1 und 2). Die Art der Zusammenarbeit zwischen dem Prozessor und dem Coprozessor wird deutlicher auf Seite 33, erste Spalte, Zeilen 24-30, wo gesagt wird, daß der Coprozessor EPU seine Aufgaben an den in den internen Registern resident vorhandenen Daten ausführt, und daß der Hauptprozessor CPU und die Software mit Übertragungen von Informationen an die Register und von den Registern sowie mit der Angabe für den Coprozessor, welche Operation er ausführen soll, belastet sind.
- Derartige Lösungen verbrauchen jedoch auf der integrierten Schaltung erheblichen Raum, außerdem sind sie in den Schaltplan einer vorhandenen integrierten Schaltung nicht einfach zu integrieren.
- So ist im Gegensatz dazu die Erfindung besonders nützlich, wenn nach vorhergehender Definition der allgemeinen Schaltungen eines Prozessors versucht wird, in derselben elektronischen integrierten Schaltung ergänzende Funktionen zu verwirklichen. In diesem Fall wäre es möglich, den Entwurf einer integrierten Schaltung vollkommen umzubilden, weil in der Praxis ein Coprozessor ein spezifische Schaltung ist, die für die Verarbeitung, bestimmter, weniger üblicher, bekannter und komplizierter Operationen vorgesehen ist. Die Entwicklung einer neuen integrierten Schaltung für jeden besonderen Bedarf ist jedoch ein zu komplexer Vorgang, wenn sie zur Folge hat, daß die gesamte Schaltung in Frage gestellt wird.
- Mit dem System der Erfindung ist es möglich, den Kern der Schaltung stets unverändert zu lassen: Der Prozessor wird stets beibehalten. Hingegen wird für gewisse spezifische Operationen, die besonders schnell ausgeführt werden müssen, auf derselben integrierten Schaltung ein spezifischer Coprozessor geschaffen. Der von der Erfindung vorgeschlagene Austauschmodus zwischen dem Prozessor und dem Coprozessor ist dann für eine solche Modifikation besonders günstig. Der Coprozessor enthält vorzugsweise Schaltungen für die Verarbeitung von Daten entsprechend den Befehlen, die auch an ihn übertragen werden.
- Die Besonderheit der Erfindung liegt in der Tatsache, daß für die Steuerung des Coprozessors Befehle verwendet werden, die von einer Ablaufsteuerschaltung des Prozessors geliefert werden. Außerdem sind der Prozessor und der Coprozessor mit demselben Ausgangsbus eines Datenspeichers verbunden und empfangen zugleich die in diesem Datenspeicher gelesenen Befehle. Beide enthalten einen Befehlsdecodierer. Gemäß der Erfindung enthält der Befehlsdecodierer des Prozessors Schaltungen, die erkennen, daß ein Befehl vom Coprozessor ausgeführt werden soll, und ein entsprechendes Erkennungssignal erzeugen. Dieses Erkennungssignal wird dann an den Coprozessor geschickt, um damit dessen Betrieb zu freizugeben. Da in der Erfindung der Prozessor und der Coprozessor parallel vorgesehen sind, wird somit die Decodierung des Befehls durch den Coprozessor, die gleichzeitig zu der Decodierung des flefehls durch den Prozessor erfolgt, in der Weise freigegeben, daß der Coprozessor den Befehl ausführen kann. Vorzugsweise erfolgt die Ausführung des Befehls in einem seiner Decodierung folgenden Zyklus, wobei der Coprozessor sämtliche Befehle ausführen kann, die sein Decodierer in zulässiger Weise decodiert hat.
- In der Erfindung ist die Arbeitszeit des Unterstützungscoprozessors vorzugsweise auf einen Arbeitszeitzyklus des Hauptprozessors begrenzt. Es ist jedoch möglich, den Coprozessor auf Initiative des Prozessors mehrmals nacheinander zu beanspruchen.
- Das in der Erfindung gewählte Decodierungsprinzip für den Einsatz des Coprozessors ist besonders flexibel und an eine quasiparallele Arbeit des Prozessors und des Coprozessors gut angepaßt. Um außerdem die Herstellung des Coprozessors zu vereinfachen, ist vorgesehen worden, daß sämtliche Operationen der Übertragung von Daten von einem Datenspeicher an den Coprozessor auf Initiative des Prozessors erfolgen. Somit wird für einen Befehl, der vom Coprozessor ausgeführt werden soll, der Prozessor mit dem Liefern von zu verarbeitenden Daten am Anfang der Verarbeitung sowie mit dem Abtasten der verarbeiteten Daten am Ende der Verarbeitung belastet.
- Die Erfindung hat daher eine elektronische Schaltung zum Gegenstand, die einen Befehlsspeicher, einen Verarbei tungsspeicher und einen Verarbeitungscoprozessor enthält und in der:
- - der Prozessor und der Coprozessor parallel mit dem Befehlsspeicher wenigstens über bestimmte der Drähte eines Datenausgangsbusses dieses Befehlsspeichers verbunden sind, um gleichzeitig einen von diesem Befehlsspeicher stammenden Befehl zu empfangen; und
- - der Prozessor und der Coprozessor jeweils einen Befehlsdecodierer enthalten,
- wobei die Schaltung dadurch gekennzeichnet ist, daß
- - der Prozessor in seinem Befehlsdecodierer eine Schaltung enthält, um bei der Decodierung dieses Befehls zu erkennen, daß dieser empfangene Befehl wenigstens zum Teil vom Coprozessor ausgeführt werden soll, und um an den Coprozessor während des Zyklus des Prozessors, in dem dieser Befehl decodiert wird, ein entsprechendes Erkennungssignal zu übertragen;
- - der Coprozessor in seinem Befehlsdecodierer eine Schaltung für die Decodierung dieses empfangenen Befehls sowie eine Validierungsschaltung enthält, um bei Empfang des Erkennungssignals die spätere Ausführung dieses empfangenen Befehls zuzulassen, wobei die Decodierung des Befehls und seine Validierung während desselben Zyklus erfolgen.
- Sie hat außerdem ein Verfahren zum Verwenden eines Verarbeitungsprozessors und eines Verarbeitungscoprozessors zum Gegenstand, das die folgenden Schritte enthält:
- - Schicken wenigstens des gleichen Teils eines Befehls wenigstens über bestimmte der Drähte eines Datenausgangsbusses eines Befehlsspeichers gleichzeitig an den Prozessor und an den Coprozessor; und
- - Decodieren des Befehls im selben Zyklus des Prozessors zugleich im Prozessor und im Coprozessor; wobei das Verfahren dadurch gekennzeichnet ist, daß es die folgenden Schritte enthält:
- - während eines gegebenen Zyklus des Prozessors Decodieren des im Prozessor empfangenen Befehls und dort Erzeugen eines Erkennungssignals, das der Tatsache entspricht, daß ein decodierter Befehl vom Coprozessor ausgeführt werden soll, und
- - im selben Zyklus Empfangen dieses Erkennungssignals durch den Coprozessor in seiner Validierungsschaltung und Decodieren des empfangenen Befehls, der somit in einem folgenden Zyklus ausgeführt werden darf, durch den Coprozessor.
- Die Erfindung wird besser verständlich beim Lesen der folgenden Beschreibung und der Untersuchung der sie begleitenden Figuren, die nur beispielhaft und in keiner Weise als Beschränkung der Erfindung gegeben sind. Die Figuren zeigen:
- Fig. 1: eine elektronische Schaltung gemäß der Erfindung;
- Fig. 2: eine bevorzugte Struktur eines Befehlsworts, das in der Vorrichtung und dem Verfahren der Erfindung verwendbar ist;
- Fig. 3a bis 3e: Zeitablaufpläne für die Ausführung der verschiedenen Operationen durch die verschiedenen Teile der Schaltung der Erfindung.
- Fig. 1 zeigt eine elektronische Schaltung gemäß der Erfindung. Diese elektronische Schaltung enthält einen Verarbeitungsprozessor 1 und einen Verarbeitungscoprozessor 2. Der Verarbeitungsprozessor 1 ist beispielsweise ein Prozessor, der dazu vorgesehen ist, sämtliche laufenden Funktionen eines Übertragungsmodems für digitale Daten, insbesondere die Bitkontrolle, die Synchronisation mit den von außen zugewiesenen Rahmen sowie eventuell bestimmte Kompressionsoperationen für zu übertragende Daten zu gewährleisten. Der Coprozessor ist in einem Beispiel dazu vorgesehen, einen Faltungs- und Abgleichalgorithmus des bekannten VITERBI-Typs auszuführen. Dieser Coprozessor muß selbstverständlich in Echtzeit mit dem Takt der Ankunft oder des Abgangs der Daten arbeiten, damit diese ohne Verzögerung übertragen werden. Wegen der Komplexität der in einem solchen VITERBI-Algorithmus auszuführenden Operationen kann nicht in Betracht gezogen werden, sie mit dem Prozessor 1 auszuführen, es sei denn, daß für diesen Prozessor 1 äußerst schnelle (und daher schwer herzustellende und teuere) oder für diese Funktion spezialisierte Schaltungen, die daher große Umdefinitions- und Entwurfsanstrengungen erfordern, um am Ende nur eine bekannte VITERBI-Codierungsfunktion zu allgemeinen Verarbeitungsfunktionen, die ebenfalls bekannt sind, hinzuzufügen, vorgesehen werden. Eines der Merkmale der Erfindung besteht darin, daß der Prozessor 1 und der Coprozessor 2 mit demselben Befehlsspeicher 3 über einen Bus 4 verbunden sind, wovon wenigstens einige Leitungen 5 zum Coprozessor 2 führen. Wie in Fig. 2 gezeigt ist, ist ein Befehlswort in einem Beispiel mit sechzehn Bits codiert, wobei der Speicher 3 sechzehn parallele Ausgänge für den Bus 4 besitzt, um jedes dieser sechzehn Bits zu leiten. Wie später deutlich wird, ist der Bus 5 kein Bus mit sechzehn Bits, sondern ein Bus mit lediglich vier Bits, der vier der sechzehn aus dem Speicher 3 ausgelesenen Bits holt.
- Der Prozessor 1 enthält ein herkömmliches Befehlsregister 6, das am Eingang mit dem Bus 4 und am Ausgang mit einem Befehlsdecodierer 7 verbunden ist. Vom Datenspeicher stammende Daten X oder Y werden bis an ein Dateneingangs/Datenausgangs-Register des Prozessors 1 geleitet. Programmierbare Verarbeitungsschaltungen 9 des Prozessors 1 führen an den im Register 8 gespeicherten Daten Verarbeitungen aus, die programmiert und durch die im Befehlsregister 6 gespeicherten binären Daten parametrisiert sind. Diese Operationen werden im Takt einer Ablaufsteuerschaltung 10 ausgeführt. Am Ende der Verarbeitung sind die Daten in dem Eingangs/Ausgangs-Register 8 verfügbar, um an die verschiedenen Peripheriegeräte verteilt zu werden, mit denen der Prozessor 1 verbunden ist. Die somit beschriebene Architektur ist eine vollkommen herkömmliche Architektur eines Verarbeitungsprozessors. Die Ablaufsteuerschaltung 10 steuert insbesondere die Schaltungen 6 bis 9.
- Eine der Besonderheiten der Erfindung besteht darin, daß der Befehlsdecodierer 7 nicht nur der Erzeugung von Kontrollsignalen dient, die bei der Ausführung des Befehls verwendet werden, sondern außerdem der Erzeugung eines sogenannten VCI-Erkennungssignals dient, das über eine Verbindung 11 (einen oder mehrere Drähte) zum Coprozessor 2 geleitet wird. Das Signal VCI ist ein Signal, das angibt, daß der vom Decodierer 7 decodierte Befehl ein Befehl ist, der vom Coprozessor 2 ausgeführt werden muß.
- Der Coprozessor 2 enthält in gleicher Weise wie der Prozessor 1 ein Befehlsregister 12, einen Befehlsdecodierer 13, ein Dateneingangsregister 14, ein Datenausgangsregister 15 und eine programmierbare Verarbeitungsschaltung 16. Das Register 12 ist mit seinem Eingang an den Bus 5 und mit seinem Ausgang an den Decodierer 13 angeschlossen. Der Decodierer 13 ist mit seinem Ausgang an die Schaltung 16 angeschlossen. Der Coprozessor 2 kann eine Ablaufsteuerschaltung enthalten, falls von ihm die Ausführung verhältnismäßig komplexer Operationen gefordert wird, in denen mehrere Coprozessor-Befehle verknüpft sind.
- Vorzugsweise werden die verschiedenen Elemente des Coprozessors 2 durch die Ablaufsteuerschaltung 10 des Prozessors 1 synchronisiert. Angesichts der Tatsache, daß während einer Zykluszeit des Prozessors 1 vom Coprozessor 2 spezifische Operationen ausgeführt werden sollen, ist diese Steuerung überaus elementar: Sie ist einfach eine Taktsteuerung. Die Verarbeitungsschaltung 16 ist vorzugsweise eine programmierbare, jedoch spezifische Schaltung. Sie ist in dem Sinn programmierbar, daß sie durch eine bestimmte Anzahl von Befehlen, die im Befehlsregister 12 verfügbar sind, parametrisiert werden kann. Beispielsweise ist diese Anzahl von Befehlen in der Erfindung gleich sechzehn. Nur deswegen ist es nützlich, vom Bus 5 vier Bits zu übertragen: 2&sup4; = 16. Obwohl die Verarbeitungsschaltung 16 in geringem Maß programmierbar ist, kann sie eine sehr komplexe spezifische Schaltung sein, die in materieller Hinsicht außerordentlich viele Operationen bei fester Verdrahtung ausführt. Im Gegensatz dazu ist die Verarbeitungsschaltung 9 des Prozessors 1 flexibler und kann allgemeinere Operationen ausführen: Sie kann ungefähr eintausend verschiedene Befehle auszuführen.
- Eine letzte Besonderheit der Erfindung ist, daß der Decodierer 13, das Register 12 und irgendeine der anderen Schaltungen 14 bis 16 einen Validierungseingang enthalten oder enthalten können, um das Signal VCI zu empfangen und um die Ausführung eines Befehls durch die Verarbeitungsschaltung 16 zuzulassen, wenn das Erkennungssignal empfangen worden ist. In Fig. 1 ist nur gezeigt, daß der Befehlsdecodierer 13 oder eventuell (gestrichelt gezeichnet) das Befehlsregister 12 durch das Signal VCI freigegeben werden. Die Freigabeschaltung kann sehr einfach sein: Sie kann ganz einfach einen Ein-/Aus-Schalter (einen Transistor) enthalten, um den Durchgang eines Einschaltsignals des Typs "chip enable" einer elementaren Schaltung zuzulassen oder zu sperren.
- Fig. 2 zeigt in einem Beispiel mit sechzehn Bits den Aufbau eines aus dem Befehlsspeicher 3 entnommenen Befehlsworts. Die elf ersten Bits repräsentieren einen Befehlscode, die fünf letzten Bits entsprechen Datenaustauschbetriebsarten zwischen dem Prozessor 1 oder dem Coprozessor 2 und den Datenspeichern X oder Y. Unter diesen Umständen betrifft das erste Bit 17 dieser fünf letzten Bits den ausgewählten Datenspeicher: den Speicher X oder Y. Das zweite Bit 18 betrifft den Verarbeitungsmodus des Speichers: Schreiben oder Lesen. Das dritte Bit 19 betrifft einen Adressenzeiger in diesem Speicher. Es sind zwei Adressenzeiger möglich. Die zwei letzten Bits 20 und 21 bezeichnen in einem besonderen Anwendungsfall eines von vier möglichen Inkrementen im Datenspeicher x oder Y. Es ist nämlich bekannt, in besonderen Anwendungen Adressierungen des Typs vorzunehmen, bei dem von einer Datenübertragung zur nächsten die abgetasteten oder geschriebenen Daten mit im voraus erstellten Adresseninkrementen adressiert werden.
- Die elf Befehlscode-Bits am Anfang des Worts (obwohl die hier gezeigte Reihenfolge ausschließlich der Erläuterung dient und obwohl die Bits gemischt werden könnten) ermöglichen die Definition von mehr als etwa tausend Befehlen: die etwa tausend Befehle, die vom Prozessor 1 verwendet werden können, und die sechzehn Befehle, die vom Coprozessor 2 verwendet werden können. Die Codes, die den sechzehn vom Coprozessor 2 verwendbaren Befehlen entsprechen, werden stets in einer Zone 22 aus vier Bits des Befehlsworts angeordnet, die den vier Leitungen des Busses 5 entsprechen, die mit dem Register 12 verbunden sind. In den fünf vorhergehenden Bits wird eine besondere Konfiguration dieser fünf Bits verwendet, um anzuzeigen, daß der Coprozessor 2 eingesetzt werden soll.
- In einem besonderen Beispiel, das später erläutert wird, ist der Coprozessor 2 tatsächlich eine etwas komplexere Schaltung in dem Sinn, daß in Erweiterung gesagt werden kann, daß er in zwei Coprozessoren unterteilt ist: einen Coprozessor A und einen Coprozessor B. Diese doppelte Ausdrucksweise ist zum Teil dadurch gerechtfertigt, daß doppelte Datenspeicher X und Y vorhanden sind. Es wird daher in Betracht gezogen, daß für gewisse Befehle die Verarbeitungsschaltung 16 in ihrem Dateneingangsregister 14 Daten empfängt, die vom Datenspeicher X oder vom Datenspeicher Y stammen. Falls es jedoch für bestimmte Verarbeitungen notwendig ist, zugleich Daten vom Speicher X und Daten vom Speicher Y zu verarbeiten, erweist es sich als notwendig, das Dateneingangsregister 14 zu verdoppeln. Gleiches gilt für das Datenausgangsregister 15, das ebenfalls verdoppelt werden muß. In der Praxis wird die Verarbeitungsschaltung 16 durch nicht gezeigte Schaltungen vervollständigt, die zugleich die vom anderen Speicher stammenden Daten berücksichtigen. Im Fall eines Befehls dieser Komplexität kann ein Coprozessor A nämlich die Daten des Datenspeichers X verarbeiten, während der Coprozessor B jene des Datenspeichers Y verarbeiten kann oder umgekehrt. Oder aber eine Verarbeitungsschaltung eines einzelnen Coprozessors kann eine Operation ausführen, die eine Dateneinheit X und eine Dateneinheit Y, die gleichzeitig empfangen werden, betrifft.
- Hingegen ist das Befehlsregister 13 im Prinzip für die beiden Verarbeitungsschaltungen gleich, weil für einen gegebenen Zyklus ein einziger Befehl geladen worden ist. In der Praxis hat dies zur Folge, daß in der verbleibenden Zone 23 aus fünf Bits des Befehlsworts von Fig. 2 eine, zwei oder sogar drei unterschiedliche Identifizierungen definiert werden müssen: eine Identifizierung COP A, die angibt, daß der Coprozessor A betroffen ist, eine Identifizierung COP B für die Angabe, daß der Coprozessor B betroffen ist, oder selbst eine Identifizierung COP AB für die Angabe, daß beide betroffen sind. In der Praxis können diese zwei oder drei Identifizierungen eine besondere Darstellung von fünf ersten Bits des Befehlsworts sein. Es kann durch einen hierzu vorgesehenen Code wie oben angegeben ein Coprozessor ausgewählt oder dessen Betrieb freigegeben werden, indem hierzu in einer Initialisierungsphase in ein internes Statusregister des Coprozessors ein Befehl geschrieben wird. In diesem Fall muß jeder Coprozessor zunächst freigegeben werden, bevor er arbeiten kann, und dann gesperrt werden. Zu einem Zeitpunkt kann ein einziger Coprozessor aktiv sein. Die Ablaufsteuerschaltung 10 kann mit diesen Freigaben/Sperrungen beauftragt sein
- Die Besonderheit der Erfindung besteht darin, im Decodierer 7 das Signal VCI anhand dieser besonderen Darstellungen zu erzeugen. Diese Arbeitsweise ermöglicht am Ende die Definition von 3 x 16 = 48 Befehlen, die vom Coprozessor 2 ausführbar sind. Die Erfassung dieser Darstellungen in einem Decodierer 7 des bekannten Typs weist keine Schwierigkeiten auf, so daß die Erzeugung des oder der entsprechenden Signale VCI einfach ist.
- Die Dateneingangs- und Datenausgangsregister 8 bzw. 14 bzw. 15 stehen mit den Datenspeichern X oder Y über einen Datenbus 24 in Verbindung, dessen Leitungsanzahl von der geforderten Genauigkeit der Daten abhängt: sechzehn Bits oder 32 Bits oder sogar mehr. Der Prozessor 1 enthält außerdem nicht gezeigte Schaltungen für die herkömmliche Adressierung des Befehlsspeichers 3 und der Datenspeicher X und Y.
- Die Fig. 3a bis 3e ermöglichen eine deutlichere Erläuterung der Funktionsweise der Schaltung der Erfindung. Fig. 3a zeigt die Operation, durch die der Prozessor 1 den Befehlsspeicher 3 adressiert, um einen Befehl zu suchen und um die verschiedenen Befehlsregister zu laden. Sie zeigt z. B., daß der Prozessor 1 zunächst einen sogenannten IP1-Befehl sucht, der von der Verarbeitungsschaltung 9 des Prozessors 1 ausführbar ist, dann einen Befehl IC1, der von der Verarbeitungsschaltung 16 des Coprozessors 2 ausführbar ist, dann einen Befehl IP2, der vom Prozessor 1 ausführbar ist, und einen Befehl IC2, der vom Coprozessor ausführbar ist, usw. Die Ablaufsteuerschaltung 10 organisiert das Lesen des Befehlsspeichers 3, um auf die Busse 4 und 5 die gewünschten Befehle auszugeben. Die Befehle werden zugleich in die Register 6 und 12 geladen.
- Fig. 3b zeigt die Decodierung dieser Befehle in einem darauffolgenden Arbeitszyklus sowohl im Befehlsdecodierer 7 als auch im Befehlsdecodierer 13, die parallelgeschaltet sind. Wenn das Signal VCI, das einen Coprozessor- Befehl freigibt, aktiv ist, ist der Betrieb des Decodierers 13 freigegeben. Somit decodieren diese Decodierer die Befehle IP1, IC1, IP2 in den Zyklen, die den Zyklen folgen, in denen diese Befehle in die Register geladen werden. Es wird jedoch festgestellt, daß der Befehl IC2 nicht in dem Zyklus decodiert wird, der demjenigen folgt, in dessen Verlauf der Befehl IP2 decodiert wird. Dies wird später erläutert.
- Die Fig. 3c zeigt die Ausführung von Befehlen, die für den Prozessor 1 bestimmt sind, durch diesen Prozessor 1. Die Fig. 3d zeigt die Ausführung von Befehlen, die für den Coprozessor 2 bestimmt sind, durch ebendiesen Coprozessor 2. Die Fig. 3e zeigt das Signal VCI, das in einem Zyklus der Decodierung der Befehle aktiv ist, der demjenigen ihrer Ausführung vorhergeht. Die Decodierung im Decodierer 7 hat während desselben Zyklus die Decodierung im Decodierer 13 zur Folge. Selbstverständlich führt der Prozessor 1 in dem dritten in Fig. 3c gezeigten Zyklus den Befehl IP1 aus (außerdem wird deutlich, wie die Übertragung entsprechender Daten erfolgt). Im folgenden Zyklus (vierter Zyklus) wird der Arithmetikoperator der Verarbeitungsschaltung des Prozessors 1 in den Ruhezustand versetzt: Er verarbeitet die Daten nicht. Hingegen führt der Coprozessor 2 den Befehl IC1 aus. Der Coprozessor 2 führt den Befehl IC1 aus, weil er vorher das vom Prozessor 1 stammende Signal VCI empfangen hat. Das Signal VCI wird im Decodierer 7 zum Zeitpunkt der Decodierung des Befehls IC1 erzeugt. Das Signal VCI wird nur während eines einzigen Zyklus aktiviert: Während desjenigen, der der Decodierung des Coprozessor-Befehls entspricht und der dessen Ausführung vorhergeht (der im hier betrachteten Fall einen Zyklus dauert). Da die Decodierung eines Befehls nahezu sofort erfolgt, weil ein Befehlsdecodierer nur Logikgatter enthält, die direkt zwischen die Eingangs- und Ausgangsverbindungen geschaltet sind, ist das Signal VCI ab dem Beginn der Decodierung verfügbar. Somit empfängt es der Decodierer 13 auch am Beginn der Decodierung des Befehls IC1. Sobald der Befehl IC1 (zulässig) decodiert worden ist, wird er im folgenden Zyklus durch die Schaltung 16 des Coprozessors ausgeführt. Falls das Signal VCI nicht gesendet worden ist, wird der Decodierer 13 nicht freigegeben und erzeugt am Ausgang keinerlei von der Schaltung 16 interpretierbare Kontrollsignale. Die Freigabeschaltung im Decodierer 13 kann ganz einfach ein zusätzlicher Eingang des Befehlsdecodierers sein. Dieser Eingang spielt die gleiche Rolle wie ein normaler Eingang, bis auf die Tatsache, daß er das Signal VCI und nicht die vom Befehlsspeicher übertragenen Signale empfängt.
- Der Befehl IP2 weist ebenfalls eine Besonderheit auf. Dieser Befehl ist nämlich so beschaffen, daß er ab dem Beginn zwei oder sogar mehr Arbeitszyklen des Prozessors 1 dauert. Der Prozessor 1 sieht daher im Decodierer 7 Mittel vor, die erkennen, daß der Befehl ein Befehl mit zwei Zyklen ist: beispielsweise ist das zehnte Bit der elf Bits des Befehlscodes in diesem Fall stets 1. Wenn der Decodierer 7 diese Situation erkennt, kann er bereits am Ende der Decodierung des Befehls IP2 durch einen Befehl 27 von der Ablaufsteuerschaltung 10 sofort ein kaskadenartiges Lesen (in einer Pipeline) des Befehlsspeichers 3 ausführen (Fig. 3b). In dem der Decodierung des Befehls IP2 folgenden Zyklus wird er von der Verarbeitungsschaltung 9 ausgeführt. Er enthält einen ersten Befehlsteil IP2a und einen zweiten Teil, der in einem folgenden Zyklus IP2b auszuführen ist. Ein solcher Betrieb ist bekannten Typs.
- Mit dem Befehl 27 wird vorzugsweise der Befehl IC2 auf den Bussen 4 und 5 gehalten. Es ist daher wichtig, daß die Decodierung nur am Beginn des letzten Teils des Befehls IP2 zugelassen wird. Hierzu wird daher von der Ablaufsteuerschaltung 10 ein Befehl 28 erzeugt.
- Die Erzeugung des Befehis 28, der schließlich das Ende eines Mehrzyklen-Befehls angibt, der vom Prozessor 1 ausgeführt wird, kann in zwei Weisen erhalten werden. Einerseits zum Zeitpunkt der Decodierung des Befehls IP2 in der in den Fig. 3a bis 3d gezeigten vierten Periode ist es möglich zu wissen, daß es sich um einen Mehrzyklen-Befehl aus 2 oder n Zyklen handelt. Unter diesen Umständen kann ein Aufwärts-/Abwärtszähler mit einem Anfangsabwärtszählwert 2-1 bzw. n-1 usw. eingesetzt werden, damit dieser Aufwärts-/Abwärtszähler den zum gegebenen Zeitpunkt geeigneten Befehl 28 erzeugt.
- Vorzugsweise wird bei der Verarbeitung der Werte der Befehle IP2a oder IP2b, die in das Befehlsregister 6 geladen werden, etwas anders vorgegangen. Es ist nämlich möglich, (in einer an einen Decodierer angeglichenen Schaltung) diese Befehle zu filtern, um ein Signal zu erzeugen, wenn einer dieser Befehle eine besondere Konfiguration besitzt. Es kann beispielsweise bestimmt werden, daß die Bits gegebener Wertigkeit des in das Befehlsregister 6 aufgezeichneten Befehlscodes einen bestimmten Wert haben, um zu melden, daß der geladene elementare Befehl der letzte (oder der vorletzte) ist. Diese Erfassung kann benutzt werden, um den Befehl 28 zum Zeitpunkt des Ladens des betreffenden elementaren Befehls (oder am Ende der Ausführung des vorhergehenden elementaren Befehls) zu erzeugen.
- Vorzugsweise sind der Prozessor 1 und der Coprozessor 2 auf derselben integrierten Schaltung verwirklicht, wovon ein Teil der Fläche dem Prozessor 1 mit all den obenerwähnten Schaltungen gewidmet ist und der andere Teil, der je nach Fall mehr oder weniger groß ist, den spezifischen Verarbeitungen gewidmet ist. Der Prozessor 1 besitzt aufgrund seiner Fähigkeit, etwa 1000 Befehle zu verarbeiten, eine Schaltung 9 mit sehr großer Programmierkomplexität. Hingegen besitzt die programmierbare Schaltung 16 eine weitaus geringere Programmierkomplexität, wobei die Verarbeitungsschaltung 16 ihrerseits kompliziert sein kann. Diese komplizierte Verarbeitungsschaltung 16 kann übrigens in jeder der sechzehn möglichen Konfigurationen, die den sechzehn Befehlen entsprechen, die sie ausführen kann, geprüft werden. Diese Vorgehensweise ist viel einfacher als der Einbau der sechzehn Befehle in den vom Prozessor 1 ausführbaren Befehlssatz.
- Es wird außerdem angemerkt, daß die vorgenommene Wahl des Kaskadenbetriebs wie in den Fig. 3a bis 3e gezeigt und die Lösung, die darin besteht, die Arbeit des Coprozessors 2 nur während eines Befehlszyklus zuzulassen, die Beziehung zwischen dem Prozessor und dem Coprozessor sehr stark vereinfachen und daher den für den Einsatz des Coprozessors 2 erforderlichen Zeitverlust begrenzen. In der Erfindung ist der Zeitverlust praktisch gleich null, so daß der Coprozessor in der folgenden Zykluszeit seinen Betrieb aufnimmt. Es wäre nichtsdestoweniger möglich, Mehrzyklen-Befehle in Betracht zu ziehen, die vom Coprozessor 2 ausgeführt werden, indem in der Ablaufsteuerschaltung 10 und im Decodierer 7 Mittel vorgesehen werden, die Befehle erzeugen, die mit den Befehlen 27 und 28 vergleichbar sind, und die diesmal anstelle des Coprozessors 2 den Prozessor 1 sperren.
- Um gleichermaßen die Funktion des Coprozessors 2 zu vereinfachen, ist in der Erfindung vorgesehen worden, daß die Operationen der Entnahme aus den Datenspeichern X oder Y und des Ladens dieser Datenspeicher vom Prozessor 1 ausgeführt werden. Dies bedeutet, daß unabhängig davon, ob die Verarbeitungsschaltung 9 oder die Verarbeitungsschaltung 16 den Befehl ausführt, die Verwaltung des Datenbusses 24 und der Datenspeicher X oder Y der Initiative des Prozessors 1 überlassen bleibt. Ein solcher Entwurf ist nicht kompliziert, weil dies in jeder Hinsicht dasjenige ist, was ein normaler Prozessor ausführt. Mit anderen Worten, zu jeder Zykluszeit t finden ein Lesen eines Befehls mit Rang t (Fig. 3a), eine Decodierung eines Befehls mit Rang t-1 (Fig. 3b), eine Ausführung eines Befehls mit Rang t-2 im Prozessor 1 oder im Coprozessor 2 (Fig. 3c, 3d), eine Übertragung von auf den Befehl mit Rang t-2 bezogenen Daten, die je nach Fall in den Datenregistern 8 oder 15 verfügbar sind, an die Speicher X oder Y sowie ein Liefern von Daten, die vom Befehl mit Rang t-1 verarbeitet werden, an die Speicher X oder Y oder an die Register 8 und 15 statt. Die Verarbeitung des Befehls durch den Prozessor oder durch den Coprozessor erfolgt somit in Abhängigkeit von der Reihenfolge der empfangenen Befehle VCI, indem auf Initiative des Prozessors 1 die Daten abgetastet werden, die in den Datenausgangsregistern verarbeitet werden, die den betreffenden Speichern entsprechen. Alle diese Operationen werden herkömmlicherweise durch eine integrierte Schaltung mit Mikroprozessor, insbesondere durch die sogenannte ST9-Mikroprozessorschaltung der Anmelderin, ausgeführt.
Claims (9)
1. Elektronische Schaltung, mit einem
Befehlsspeicher, einem Verarbeitungsprozessor (1) und einem
Verarbeitungscoprozessor (2), in der
- der Prozessor und der Coprozessor parallel
mit dem Befehlsspeicher (3) wenigstens über bestimmte (5)
der Drähte eines Datenausgangsbusses (4) dieses
Befehlsspeichers verbunden sind, um gleichzeitig einen von
diesem Befehlsspeicher stammenden Befehl zu empfangen;
und
- der Prozessor und der Coprozessor jeweils
einen Befehlsdecodierer (7, 13) enthalten,
wobei die Schaltung dadurch gekennzeichnet ist,
daß
- der Prozessor in seinem Befehlsdecodierer (7)
eine Schaltung enthält, um bei der Decodierung dieses
Befehls zu erkennen, daß dieser empfangene Befehl
wenigstens zum Teil vom Coprozessor ausgeführt werden soll,
und um an den Coprozessor während des Zyklus des
Prozessors, in dem dieser Befehl decodiert wird, ein
entsprechendes Erkennungssignal (VCI) zu übertragen;
- der Coprozessor in seinem Befehlsdecodierer
eine Schaltung für die Decodierung dieses empfangenen
Befehls sowie eine Validierungsschaltung enthält, um bei
Empfang des Erkennungssignals die spätere Ausführung
dieses empfangenen Befehls zuzulassen, wobei die
Decodierung des Befehls und seine Validierung während desselben
Zyklus erfolgen.
2. Schaltung nach Anspruch 1, dadurch
gekennzeichnet, daß
-
die elektronische Schaltung eine
monolithische integrierte Schaltung ist und
- der Befehlsdecodierer (13) des Coprozessors
mit diesem Ausgangsbus dieses Befehlsspeichers verbunden
ist, und daß der Coprozessor außerdem enthält:
- ein Befehlsregister (12), das mit diesem
Decodierer verbunden ist, um decodierte Befehle zu
speichern und deren Ausführung zu ermöglichen,
- programmierbare Verarbeitungsschaltungen
(16), um Daten in Abhängigkeit von vom Befehlsregister
übertragenen Befehlen zu verarbeiten,
- Dateneingangsregister (14), die mit ihrem
Eingang mit einem Datenbus (24) der integrierten
Schaltung verbunden sind und mit ihrem Ausgang mit der
Verarbeitungsschaltung des Coprozessors verbunden sind,
- Datenausgangsregister (15), die mit ihrem
Eingang mit der Verarbeitungsschaltung (16) des
Coprozessors und mit ihrem Ausgang mit dem Datenbus der
integrierten Schaltung verbunden sind.
3. Schaltung nach einem der Ansprüche 1 und 2,
dadurch gekennzeichnet, daß sie enthält:
- einen weiteren (B) Coprozessor, der zum
Coprozessor parallelgeschaltet ist, um gleichzeitig Daten
zu verarbeiten, die von zwei verschiedenen Datenspeichern
(X, Y) kommen.
4. Schaltung nach einem der Ansprüche 1 bis 3,
dadurch gekennzeichnet, daß der Prozessor (1) eine
Schaltung enthält, um das Senden des Erkennungssignals zu
verzögern, falls der Prozessor momentan einen
Multizyklusbefehl ausführt, der länger als ein Arbeitszyklus
dieses Prozessors dauert.
5. Schaltung nach Anspruch 4, dadurch
gekennzeichnet, daß die Verzögerungsschaltung enthält:
- im Befehlsdecodierer des Prozessors eine
Decodierungsschaltung, um festzustellen, daß ein
Multizyklusbefehl aus mehreren geordneten Elementarbefehlen
gebildet ist, wobei der letzte Elementarbefehl erkennbar
ist, und
- eine Schaltung, die die Übertragung des
Erkennungssignals am Ende des Multizyklusbefehls zuläßt.
6. Schaltung nach Anspruch 4, dadurch
gekennzeichnet, daß die Verzögerungsschaltung enthält:
- im Befehlsdecodierer des Prozessors eine
Decodierungsschaltung zum Feststellen, daß ein
Multizyklusbefehl vorliegt, und
- einen Aufwärts/Abwärtszähler, der in
Abhängigkeit von der Dauer des vom Prozessor auszuführenden
Multizyklusbefehls in einen Anfangszustand versetzt wird
und ein Signal erzeugt, um die Übertragung des
Erkennungssignals am Ende des Multizyklusbefehls zuzulassen.
7. Verfahren zum Verwenden eines
Verarbeitungsprozessors (1) und eines Verarbeitungscoprozessors (2), mit
den folgenden Schritten:
- Schicken wenigstens des gleichen Teils eines
Befehls (17-23) wenigstens über bestimmte (5) der Drähte
eines Datenausgangsbusses eines Befehlsspeichers
gleichzeitig an den Prozessor und an den Coprozessor; und
- Decodieren des Befehls im selben Zyklus des
Prozessors zugleich im Prozessor und im Coprozessor;
wobei das Verfahren dadurch gekennzeichnet ist,
daß es die folgenden Schritte enthält:
- während eines gegebenen Zyklus des Prozessors
Decodieren des im Prozessor empfangenen Befehls und dort
Erzeugen eines Erkennungssignals (VCI), das der Tatsache
entspricht, daß ein decodierter Befehl vom Coprozessor
ausgeführt werden soll, und
- im selben Zyklus Empfangen dieses
Erkennungssignals (VCI) durch den Coprozessor in seiner
Validierungsschaltung und Decodieren des empfangenen Befehls,
der somit in einem folgenden Zyklus ausgeführt werden
darf, durch den Coprozessor.
8. Verfahren nach Anspruch 7, dadurch
gekennzeichnet, daß
- von einer Ablauffolgesteuerung (10) des
Prozessors Befehle, die mit einem Befehlsdecodierer (13)
des Coprozessors synchronisiert sind, an ein
Befehlsregister (12) dieses Coprozessors, an programmierbare
Verarbeitungsschaltungen (16) dieses Coprozessors, an
Dateneingangsregister (14) sowie an Datenausgangsregister (15)
des Coprozessors geschickt werden.
9. Verfahren nach einem der Ansprüche 7 oder 8,
dadurch gekennzeichnet, daß:
- die für den Betrieb des Coprozessors
notwendigen Speicherzugriffe durch den Prozessor verwaltet
werden.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR9405763A FR2719926B1 (fr) | 1994-05-10 | 1994-05-10 | Circuit électronique et procédé d'utilisation d'un coprocesseur. |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE69500748D1 DE69500748D1 (de) | 1997-10-30 |
| DE69500748T2 true DE69500748T2 (de) | 1998-01-15 |
Family
ID=9463090
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE69500748T Expired - Fee Related DE69500748T2 (de) | 1994-05-10 | 1995-05-10 | Elektronischer Schaltkreis und Verfahren für die Verwendung mit einem Koprozessor |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US6003124A (de) |
| EP (1) | EP0684551B1 (de) |
| JP (2) | JPH0869377A (de) |
| DE (1) | DE69500748T2 (de) |
| FR (1) | FR2719926B1 (de) |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5860000A (en) * | 1996-01-31 | 1999-01-12 | Hitachi Micro Systems, Inc. | Floating point unit pipeline synchronized with processor pipeline |
| 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 |
| KR100308618B1 (ko) * | 1999-02-27 | 2001-09-26 | 윤종용 | 단일 칩 상의 마이크로프로세서-코프로세서 시스템을 구비한 파이프라인 데이터 처리 시스템 및 호스트 마이크로프로세서와 코프로세서 사이의 인터페이스 방법 |
| JP2001092663A (ja) * | 1999-09-17 | 2001-04-06 | Sanyo Electric Co Ltd | データ処理装置 |
| JP2001092662A (ja) * | 1999-09-22 | 2001-04-06 | Toshiba Corp | プロセッサコア及びこれを用いたプロセッサ |
| WO2001063434A1 (en) * | 2000-02-24 | 2001-08-30 | Bops, Incorporated | Methods and apparatus for dual-use coprocessing/debug interface |
| US7073048B2 (en) * | 2002-02-04 | 2006-07-04 | Silicon Lease, L.L.C. | Cascaded microcomputer array and method |
| JP4585809B2 (ja) * | 2004-08-02 | 2010-11-24 | 株式会社リコー | 画像処理制御装置 |
| JP5175517B2 (ja) * | 2005-04-12 | 2013-04-03 | パナソニック株式会社 | プロセッサ |
| US20130311753A1 (en) * | 2012-05-19 | 2013-11-21 | Venu Kandadai | Method and device (universal multifunction accelerator) for accelerating computations by parallel computations of middle stratum operations |
| JP6094356B2 (ja) | 2013-04-22 | 2017-03-15 | 富士通株式会社 | 演算処理装置 |
| US9698790B2 (en) * | 2015-06-26 | 2017-07-04 | Advanced Micro Devices, Inc. | Computer architecture using rapidly reconfigurable circuits and high-bandwidth memory interfaces |
| FR3087907B1 (fr) * | 2018-10-24 | 2021-08-06 | St Microelectronics Grenoble 2 | Microcontroleur destine a executer un traitement parametrable |
| US12026555B2 (en) * | 2020-12-15 | 2024-07-02 | International Business Machines Corporation | Adjunct processor command-type filtering |
| US12112163B2 (en) * | 2021-12-03 | 2024-10-08 | Taiwan Semiconductor Manufacturing Company, Ltd. | Memory interface |
| CN116701085B (zh) * | 2023-06-02 | 2024-03-19 | 中国科学院软件研究所 | RISC-V处理器Chisel设计指令集一致性的形式验证方法及装置 |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4715013A (en) * | 1983-04-18 | 1987-12-22 | Motorola, Inc. | Coprocessor instruction format |
| JPS62151971A (ja) * | 1985-12-25 | 1987-07-06 | Nec Corp | マイクロ・プロセツサ装置 |
| JPS62214464A (ja) * | 1986-03-17 | 1987-09-21 | Hitachi Ltd | データ処理システム |
| JPS63143660A (ja) * | 1986-12-08 | 1988-06-15 | Fanuc Ltd | コ・プロセツサを有する演算処理装置 |
| JPH0786868B2 (ja) * | 1987-05-22 | 1995-09-20 | 松下電器産業株式会社 | プロセッサ間通信方法 |
| US4862407A (en) * | 1987-10-05 | 1989-08-29 | Motorola, Inc. | Digital signal processing apparatus |
| JPH0679307B2 (ja) * | 1987-10-22 | 1994-10-05 | 日本電気株式会社 | コプロセッサの並行動作制御方式 |
| JPH01243167A (ja) * | 1988-03-25 | 1989-09-27 | Hitachi Ltd | データ処理装置 |
| JPH0786870B2 (ja) * | 1988-04-15 | 1995-09-20 | 株式会社日立製作所 | コプロセツサのデータ転送制御方法およびその回路 |
| JP2741867B2 (ja) * | 1988-05-27 | 1998-04-22 | 株式会社日立製作所 | 情報処理システムおよびプロセツサ |
| US5093908A (en) * | 1989-04-17 | 1992-03-03 | International Business Machines Corporation | Method and apparatus for executing instructions in a single sequential instruction stream in a main processor and a coprocessor |
| JPH03263127A (ja) * | 1990-03-13 | 1991-11-22 | Nec Corp | 命令実行制御方式 |
| JPH04149735A (ja) * | 1990-10-15 | 1992-05-22 | Fujitsu Ltd | 情報処理装置 |
| US5420989A (en) * | 1991-06-12 | 1995-05-30 | Cyrix Corporation | Coprocessor interface supporting I/O or memory mapped communications |
-
1994
- 1994-05-10 FR FR9405763A patent/FR2719926B1/fr not_active Expired - Fee Related
-
1995
- 1995-05-08 US US08/436,769 patent/US6003124A/en not_active Expired - Fee Related
- 1995-05-10 JP JP7136231A patent/JPH0869377A/ja active Pending
- 1995-05-10 EP EP95401089A patent/EP0684551B1/de not_active Expired - Lifetime
- 1995-05-10 DE DE69500748T patent/DE69500748T2/de not_active Expired - Fee Related
-
1997
- 1997-07-09 JP JP19921397A patent/JP3710262B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| FR2719926B1 (fr) | 1996-06-07 |
| JPH1083303A (ja) | 1998-03-31 |
| EP0684551A1 (de) | 1995-11-29 |
| US6003124A (en) | 1999-12-14 |
| FR2719926A1 (fr) | 1995-11-17 |
| EP0684551B1 (de) | 1997-09-24 |
| JP3710262B2 (ja) | 2005-10-26 |
| DE69500748D1 (de) | 1997-10-30 |
| JPH0869377A (ja) | 1996-03-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE1499722C2 (de) | Einrichtung zur Modifizierung von Informationswörtern | |
| DE69500748T2 (de) | Elektronischer Schaltkreis und Verfahren für die Verwendung mit einem Koprozessor | |
| DE2716369C2 (de) | ||
| DE3751297T2 (de) | Schaltung zur Programmsteuerung. | |
| EP0268285B1 (de) | Verfahren und Schaltungsanordnung zum Urladen eines Zweitrechners | |
| DE69710515T2 (de) | Verfahren und Vorrichtung zur Bestimmung von Wartezuständen auf einer Zyklusbasis in einem Datenverarbeitungssystem | |
| DE68907518T2 (de) | Inhaltsadressierte Speicheranordnung. | |
| DE2457612C3 (de) | Mikroprogrammier-Steuereinrichtung | |
| DE3689595T2 (de) | Datenverarbeitungssystem. | |
| DE2819571A1 (de) | Datenverarbeitungsanlage mit mehreren prozessoren | |
| DE2953861C2 (de) | ||
| DE2234867A1 (de) | Anordnung in datenverarbeitungsanlagen zum steuern der verarbeitung zweier voneinander unabhaengiger programme | |
| DE69705961T2 (de) | Asynchrone datenverarbeitungsvorrichtung | |
| DE3750028T2 (de) | Pipelineprozessor mit schwacher Kopplung. | |
| DE1499203B1 (de) | Schaltungsanordnung zum Speicherschutz bei Datenverarbeitungsanlagen mit Simultanbetrieb | |
| DE2332971C2 (de) | Mikroprogrammsteuereinrichtung | |
| DE69130233T2 (de) | Verfahren und gerät um ein sperrungscache einzusetzen | |
| DE2813080A1 (de) | Einrichtung zur speicheradressierung | |
| DE2951040C2 (de) | ||
| DE69032776T2 (de) | Steuerungsschaltung zum Zugriff auf partiellen Speicher | |
| CH654679A5 (de) | Prozessrechner. | |
| DE2245284A1 (de) | Datenverarbeitungsanlage | |
| DE68926597T2 (de) | Mikrorechner | |
| DE68924082T2 (de) | Datenverarbeitungseinheit mit einem Umgehungsmechanismus. | |
| DE69024576T2 (de) | Betriebsartenwählerschaltung |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition | ||
| 8339 | Ceased/non-payment of the annual fee |