-
Die
Erfindung betrifft einen Pipeline-Betriebsprozessor mit einer Pipeline-Betriebsfunktion
und ein Steuersystem mit einem gemeinsam genutzten Speicher, der
ein Programm, das von dem Pipeline-Betriebsprozessor auszuführen
ist und Betriebsdaten speichert. Genauer gesagt, die Erfindung betrifft
einen Pipeline-Betriebsprozessor, der die Beeinträchtigung
der Betriebseffizienz in dem Fall verringert, in dem ein anderer
Prozessor, der den gemeinsam genutzten Speicher ebenfalls benutzt,
auf den gemeinsam genutzten Speicher zugreift, und ein Steuersystem,
dass den Pipeline-Betriebsprozessor umfasst.
-
Seit
einiger Zeit wird ein Pipeline-Betriebsprozessor mit einer Pipeline-Betriebsfunktion
eingesetzt, um eine Anforderung für Highspeed-Processing
eines Steuersystems zu erfüllen.
-
Bisher
wurde ein System mit der in 11 gezeigten
Konfiguration bei einem Steuersystem für eine Anlage oder ähnliches
verwendet. Das Steuersystem enthält einen Pipeline-Betriebsprozessor 12, der
Daten von einer externen Eingabe/Ausgabe-Einheit (I/O-Einheit) wie
etwa einem Prozesssensor oder einem Aktuator, mit hoher Geschwindigkeit
verarbeitet, General-Purpose-Prozessoren 11a, 11b,
die den Pipeline-Betriebsprozessor 12 zur Ausführung
verschiedener Arbeitsschritte managen, einen externen Eingabe/Ausgabe-Speicher
(I/O-Speicher) 13, der als eine Schnittstelle zum Übertragen
von Eingabe- und Ausgabedaten der externen I/O-Vorrichtung dient,
und einen Betriebspeicher 14, der ein Steuerprogramm 14a speichert,
das von dem Pipeline-Betriebsprozessor 12 auszuführen
ist und von dem Pipeline-Betriebsprozessor 12 und den General-Purpose-Prozessoren 11a, 11b gemeinsam
genutzt wird.
-
Eine
Pipeline-Betriebseinheit 12b enthält eine Befehlshalteeinheit 12b1,
eine Befehlsdekodiereinheit 12b2, eine Befehlsausführungs-
und -adressenerzeugungseinheit 12b3, Speicherzugriffseinheiten 12b4, 12b5 und
eine Schreibeinheit 12b6. Die Pipeline-Betriebseinheit 12b enthält
des Weiteren eine Bypass-Steuerschaltung (nicht gezeigt), die Datenwege
zwischen diesen Einheiten steuert, eine externe I/O-Speicherzugriffseinheit 12b8,
eine Betriebsspeicherzugriffseinheit 12b9 und einen Pipeline-Bus 12b7,
der die Einheiten der Pipeline-Verarbeitungseinheit 12b verbindet.
-
Die
Pipeline-Verarbeitungseinheit 12b teilt einen Befehl in
sechs Grundstufen auf, die jeweils der Befehlshalteeinheit (IF) 12b1,
der Befehlsdekodiereinheit (ID) 12b2, der Befehlsausführeinheit (MAR) 12b3,
der Speicherzugriffseinheit (MADR, MDR) 12b4 und 12b5 und
der Schreibeinheit (WR) 12b6 entsprechen. Diese Befehle
werden in paralleler Art verarbeitet, um den Durchsatz bei der Verarbeitung
zu erhöhen. Wenn eine Änderung bei dem Betrieb
einer geplanten Stufe auftritt, werden die Ausführung der
Stufen teilweise angehalten (oder abgebrochen), vom Beginn an neu
gestartet oder es ist nötig, die Befehlssequenz zu ändern.
-
Datenrisiken
oder -fehler, die aus einem Ladebefehl resultieren, waren ein Grund
für eine solche Änderungen. Ein Verfahren zur
Voraussage einer Adresse des Ladebefehls zur Verhinderung eines Pipeline-Abbruchs
(Pipeline stall) aufgrund von Datenrisiken ist beispielsweise in
der
japanischen Patentanmeldung
Nr. 3435267 offenbart.
-
Die
Prinzipien der Pipeline-Verarbeitung und eine Technik zur Lösung
verschiedener Fehler bei der Ausführung von Pipeline-Verarbeitungen
sind beispielsweise in Kapitel 6, Seite 23 bis 70 von „Computer
Architecture and Design" (Band 2) veröffentlicht,
das von John L. Hennessy und David A. Patterson geschrieben ist,
und von Nikkei Business Publications Inc. am 26. Juni 1996 veröffentlicht
wurde.
-
12A und 12B zeigen
typische Betriebszustände von der Pipeline-Verarbeitung
des Steuersystems einer Anlage oder Ähnlichem, das den
bekannten Pipeline-Betriebsprozessor verwendet, wie er in 11 gezeigt
ist.
-
Beispielweise
wird jeder der Befehle A bis F in 6 Stufen verarbeitet, wie es in 12A gezeigt ist, und der Betrieb jeder Stufe wird
durch ein Taktsignal synchronisiert. Die Ausführung der
jeweiligen Befehle wird um eine Stufe verschoben.
-
Herkömmlicherweise,
wenn ein gemeinsam genutzter Speicher von einem General-Purpose-Prozessor 11a über
eine Speicherzugriffseinheit 12a zugegriffen wird, beispielsweise
im Fall, wenn der Befehl B in einer Stufe der Schreibeinheit WR
ausgeführt wird, sendet die Speicherzugriffseinheit 12a ein Signal
zur Unterbrechung des Betriebs aller Stufen der Pipeline-Verarbeitungseinheit 12b,
wie es in 12B gezeigt ist, und greift
auf den Betriebsspeicher 14 über die Betriebsspeicherzugriffseinheit 12b9 innerhalb
der Haltezeitspanne zu.
-
In
einem solchen Fall unterbricht die Haltezeitspanne die zyklische
Speicherverarbeitung von Befehlen B bis F, die in Verarbeitung sind,
wodurch die Verarbeitungsphasen der Stufen, die von der gestrichelten
Linie in 12B umgeben sind, aus einer Betriebsphase eines
synchronen Speichers geändert werden, und es ist möglich,
dass sie nicht normal ausgeführt werden.
-
Daher
müssen die Befehle B bis F erneut ausgeführt werden,
nachdem die Pipeline-Verarbeitung gelöscht wurde, wie es
in 12B gezeigt ist. Somit wird die Verarbeitungseffizienz
des Pipeline-Betriebsprozessors 12 beachtlich verringert.
Das heißt, die Leistung der Verarbeitung mit dem herkömmlichen
Pipeline-Betriebsprozessor kann aufgrund eines Nachteils beeinträchtigt
sein, dass eine Stufe der Pipeline-Verarbeitung, die teilweise läuft, von
Beginn an neu gestartet wird, wenn eine Änderung in einem
geplanten Betrieb auftritt.
-
Eine
Aufgabe der Erfindung ist es, einen Pipeline-Betriebsprozessor und
ein Steuersystem mit dem Pipeline-Betriebsprozessor bereitzustellen,
die die Pipeline-Verarbeitung fortsetzen können, während
verhindert wird, dass ein Fehler bzw. ein Risiko aufgrund von Synchronisationsfehlausrichtung
von Datenwegen zwischen Befehlen auftritt, wenn auf einen gemeinsam
genutzten Speicher zugegriffen wird, wobei die Beeinträchtigung
der Prozesseffizienz des Pipeline-Be triebsprozessors verringert
und eine Highspeed-Ausführung eines Steuerprogramms ermöglicht
wird.
-
Entsprechend
einer erfindungsgemäßen Ausführungsform
umfasst das Steuersystem:
einen oder mehrere General-Purpose-Prozessoren;
einen
Pipeline-Betriebsprozessor mit einer Pipeline-Betriebsfunktion und
verbunden mit einem Bus des einen oder der mehrerern General-Purpose-Prozessoren;
einen
ersten Speicher, der ausgestaltet ist, um ein Steuerprogramm, welches
von dem Pipeline-Betriebsprozessor ausgeführt wird, und
Betriebsdaten zu speichern, wobei das Steuerprogramm und die Betriebsdaten
von dem einen oder den mehreren General-Purpose-Prozessoren und
dem Pipeline-Betriebsprozessor gemeinsam genutzt werden; und
einen
zweiten Speicher, der ausgestaltet ist, um von dem Pipeline-Betriebsprozessor
zugegriffen zu werden und um als Schnittstelle zum Übertragen
von Daten zu arbeiten, die der Pipeline-Betriebsprozessor eingibt
oder ausgibt;
wobei der Pipeline-Betriebsprozessor umfasst:
eine
Pipeline-Betriebseinheit mit einer Befehlshalteeinheit, einer Befehlsdekodiereinheit,
einer Befehlsausfuhr- und -adressenerzeugungseinheit, einer Speicherzugriffseinheit,
einer Schreibeinheit als Stufen zum Aufteilen eines Befehls und
zum Ausführen der Befehle parallel, und mit einem Pipeline-Bus,
der ausgestaltet ist, um die Stufen zu verbinden, mit einer Befehlszugriffseinheit
und einer Befehlszugriffseinheit; und
einen Befehlseinfügungscontroller,
der ausgestaltet ist, um einen ersten Befehl in die Pipeline-Verarbeitungseinheit
einzufügen, wenn Zugriff auf den ersten Speicher von einem
oder von mehreren General-Purpose-Prozessoren angefordert wird,
und der ausgestaltet ist, um die relative Verschiebung der Steuerinformation
der Stufen zu korrigieren, um Datenwege zwischen den Stufen zu steuern;
wobei
der Befehlseinfügungscontroller einen Nicht-Betriebs-Befehl
von der Befehlsdekodiereinheit anstelle des geplanten darauffolgenden
Befehls des Steuerprogramms einfügt, um die Pipeline-Verarbeitungseinheit
zur Ausführung eines Nicht-Betriebs zu veranlassen, oder
einen Nicht-Betriebs-Befehls, der in dem Steuerprogramm enthalten
ist, durch die Befehlsdekodiereinheit erfasst, um die Pipeline-Verarbeitungseinheit
zur Ausführung eines Nicht-Betriebs zu veranlassen, in
einem Fall, in dem die Befehlshalteeinheit den Befehl von dem ersten
Speicher hält und das Steuerprogramm in Ausführung
ist, wenn ein Zugriffsanforderungsbefehl, der Zugriff auf den ersten
Speicher fordert, von dem einen oder mehreren General-Purpose-Prozessoren
empfangen wird, und
wobei die Pipeline-Verarbeitungseinheit
einen darauffolgenden Befehl ausführt und die Ausführung
der Pipeline-Verarbeitung ohne Unterbrechung der Verarbeitung des
Pipeline-Betriebsprozessors weiter durchführt.
-
Entsprechend
einer weiteren Ausführungsform der Erfindung umfasst der
Pipeline-Betriebsprozessor:
eine Pipeline-Verarbeitungseinheit
mit einer Pipeline-Verarbeitungsfunktion zur parallelen Verarbeitung
eines Steuerprogramms mit einer Befehlshalteeinheit, einer Befehlsdekodiereinheit,
einer Befehlsausführungs- und -adressenerzeugungseinheit,
einer Speicherzugriffseinheit und einer Schreibeinheit als Stufen
zum Aufteilen eines Befehls und zum Ausführen der Befehle
parallel, und mit einem Pipeline-Bus, der ausgestaltet ist, um die
Stufen zu verbinden; und
einen Befehlseinfügungscontroller,
der ausgestaltet ist, um einen Befehl in die Pipeline-Verarbeitungseinheit
einzufügen, wenn Zugriff auf einen ersten Speicher von
einem General-Purpose-Prozessor angefordert wird, und der ausgestaltet
ist, um die relative Verschiebung der Steuerinformation der Stufen
zu korrigieren, um Datenwege zwischen den Stufen zu steuern; und
wobei
der Befehlseinfügungscontroller einen Nicht-Betriebs-Befehl
von der Befehlsdekodiereinheit anstelle des geplanten darauffolgenden
Befehls des Steuerprogramms einfügt, um die Pipeline-Verarbeitungseinheit
zu veranlassen, einen Nicht-Betrieb auszuführen, oder einen
in dem Steuerprogramm enthaltenen Nicht-Betriebs-Befehl durch die
Befehlsdekodier einheit erkennt, um die Pipeline-Verarbeitungseinheit
zu veranlassen, einen Nicht-Betrieb auszuführen, in einem
Fall, in dem die Befehlshalteeinheit den Befehl von dem ersten Speicher
hält und das Steuerprogramm in Ausführung ist,
wenn ein Zugriffsanforderungsbefehl, der einen Zugriff auf den ersten
Speicher anfordert, von dem General-Purpose-Prozessor empfangen
wird, und
wobei die Pipeline-Verarbeitungseinheit den darauffolgenden
Befehl ausführt und mit der Ausführung der Pipeline-Verarbeitung
ohne Unterbrechung der Verarbeitung des Pipeline-Betriebsprozessors
fortschreitet.
-
Zusätzliche
Aufgaben und Vorteile der Erfindung werden in der folgenden Beschreibung
ausgeführt und sind zum Teil offensichtlich angesichts
der Beschreibung, oder können durch Anwenden der Erfindung
erkannt werden. Die Aufgaben und Vorteile der Erfindung können
mittels der Gerätschaften und Kombinationen erzielt werden,
die speziell im Folgenden gezeigt sind.
-
Die
beiliegenden Zeichnungen, die einen Teil der Beschreibung bilden
und in diese aufgenommen sind, zeigen Ausführungsformen
der Erfindung und zusammen mit der allgemeinen Beschreibung, die vorangehend
gegeben wurde, und der detaillieren Beschreibung der Ausführungsformen,
die im Anschluss folgt, dienen sie zur Erläuterung der
Prinzipien der Erfindung. In den Zeichnung darstellt:
-
1 eine
Ansicht, die eine Konfiguration des Steuersystems mit einem Pipeline-Betriebsprozessor
entsprechend einer erfindungsgemäßen Ausführungsform
zeigt;
-
2 eine
Ansicht, die eine Konfiguration eines Pipeline-Betriebsprozessor
entsprechend einer Ausführungsform der Erfindung darstellt;
-
3A und 3B sind
Ansichten, die Beispiele des Pipelinesteuerbetriebs darstellen,
wenn auf einen Betriebsspeicher (gemeinsam genutzter Speicher) zugegriffen
wird;
-
4 eine
Ansicht, die eine Konfiguration eines korrigierten Steuerinformationspuffers
entsprechend einer erfindungsgemäßen Ausführungsform darstellt;
-
5A und 5B Ansichten,
die Beispiele des Pipelinesteuerbetriebs des korrigierten Steuerinformationspuffers
darstellen;
-
6 eine
Ansicht, die ein weiteres Beispiel eines Pipelinesteuerbetriebs
des korrigierten Steuerinformationspuffers zeigt;
-
7 eine
Ansicht, die einen Ausrichtungsfehler darstellt;
-
8 eine
Ansicht, die eine Erkennung des Ausrichtungsfehlers und einem Betrieb
eines Befehlseinfügungscontrollers darstellt;
-
9 eine
Ansicht, die ein Betriebsbeispiel des Befehlseinfügungscontrollers
darstellt, wenn ein Befehl die Ausführung einer Mehrzahl
von Befehlen veranlasst;
-
10 eine
Ansicht, die ein weiteres Betriebsbeispiel des Befehlseinfügungscontrollers
darstellt, wenn ein Befehl die Ausführung einer Mehrzahl von
Befehlen veranlasst;
-
11 eine
Ansicht, die eine Konfiguration eines Steuersystems entsprechend
eines bekannten Pipeline-Betriebsprozessors darstellt; und
-
12A und 12B Ansichten,
die einen Betrieb zum Zugreifen auf einen gemeinsam genutzten Speicher
des Steuersystems mit dem bekannten Pipeline-Betriebsprozessor darstellt.
-
Im
Folgenden werden Ausführungsformen der Erfindung unter
Bezugnahme auf die beiliegenden Zeichnungen beschrieben.
-
Erste Ausführungsform
-
Ein
Steuersystem mit einem Pipeline-Betriebsprozessor entsprechend der
ersten Ausführungsform der Erfindung wird im Folgenden
unter Bezugnahme auf die 1 bis 6 beschrieben.
Eine Konfiguration und ein typischer Betrieb der Erfindung werden
unter der Bezugnahme auf die 1 und 3A beschrieben.
-
Das
Steuersystem mit dem Pipeline-Betriebsprozessor enthält
die General-Purpose-Prozessoren 1a und 1b, einen
Pipe line-Betriebsprozessor 2, der mit den General-Purpose-Prozessoren 1a und 1b über
einen Bus 1c verbunden ist, einen externen Eingabe/Ausgabe-Speicher
(I/O-Speicher) 3, der Eingabe und Ausgabedaten einer Eingabe/Ausgabe-Vorrichtung
(I/O-Vorrichtung) eines Steuerzielprozesses speichert, und einen
Betriebsspeicher 4, der ein Steuerprogramm 4a speichert,
das von dem Pipeline-Betriebsprozessor 2 auszuführen
ist, und Betriebsdaten für dieses speichert.
-
Der
Pipeline-Betriebsprozessor 2 enthält eine Pipeline-Bearbeitungseinheit 2b,
die eine Pipeline-Verarbeitung ausführt, und einen Befehlseinfügungscontroller 2a,
der einen Befehl in die Pipeline-Bearbeitungseinheit 2b mit
einer Mehrzahl von Stufen einfügt, und die Verschiebung
von Steuerinformation in Bezugnahme auf Steuerinformation für Stufen
zur Steuerung von Datenwegen zwischen den Stufen korrigiert.
-
Der
Befehlseinfügungscontroller 2a enthält eine
Speicherzugriffseinheit 2a1, welche eine Zugriffsanfrage
von dem General-Purpose-Prozessor 1a oder 1b auf
den Betriebsspeicher 4 steuert, und einen Befehlseinfüger 2a2,
der einen Nicht-Betriebsbefehl NOP-Befehl in eine Befehlsdekodiereinheit 2b2 (die
im Anschluss beschrieben wird) einfügt, wenn eine Zugriffsanforderung
von dem General-Purpose-Prozessor 1a oder 1b für
den Betriebsspeicher 4 empfangen wird.
-
Der
Befehlseinfügungscontroller 2a enthält einen
korrigierten Steuerinformationspuffer 2a3 und einen Multiplexer 2a4.
Wenn der Befehlseinfüger 2a2 den korrigierten
Steuerinformationspuffer 2a3 informiert, bezüglich
der Einfügung eines NOP-Befehls informiert, oder wenn die
Befehlsdekodiereinheit 2b2 den korrigierten Steuerinformationspuffer 2a3 über den
Befehleinfüger 2a2 bezüglich der Einfügung
eines NDP-Befehls informiert, der vorausgehend in dem Steuerprogramm
eingebunden war, speichert der korrigierte Steuerinformationspuffer 2a3 Steuerinformation
der Stufen der Pipeline-Bearbeitungseinheit 2b zu dem Zeitpunkt
der Einfügung, korrigiert relative Verschiebung zwischen
der gespeicherten Steuerinformation und der Steuerinformation der
Stufen zum Zeitpunkt der Ausführung eines Befehls, nachfolgend
zu dem NOP-Befehl, und gibt die korrigierte Steuerinformation aus.
Wenn der NOP-Befehl erzeugt wird, ändert der Muliplexer 2a4 die
Steuerinformation der Pipeline-Bearbeitungseinheit 2b zu
einem Ausgang des korrigierten Steuerinformationspuffers 2a3 und
rekonfiguriert die Information.
-
Die
Pipeline-Bearbeitungseinheit 2b, welche die Pipeline-Verarbeitung
ausführt, enthält eine Befehlshalteeinheit 2b1,
eine Befehlsdekodiereinheit 2b2, eine Befehlsausführungs-
und -adressenerzeugungseinheit 2b3, eine Speicheradressenzugriffseinheit 2b4,
eine Speicherdatenzugriffseinheit 2b5 und eine Schreibeinheit 2b6 als
Stufen, um einen Befehl in Stufen aufzuteilen und Befehle parallel
auszuführen. Die Pipeline-Verarbeitungseinheit 2b enthält
des Weiteren eine Eingabe/Ausgabe-Speicherzugriffseinheit (I/O-Speicherzugriffseinheit) 2b8,
welche den Zugriff auf den I/O-Speicher 3 steuert, und
eine Betriebsspeicherzugriffseinheit 2b9, welche den Zugriff auf
den Betriebsspeicher 4 steuert, und einen Pipeline-Bus 2b7,
der die Bestandteile der Pipeline-Bearbeitungseinheit 2b verbindet.
-
Darüber
hinaus enthält die Pipeline-Verarbeitungseinheit 2b eine
voreingestellte Steuerinformationseinstelleinheit (nicht gezeigt)
für eine Bypasssteuerung von Datenwegen zwischen den Stufen,
und eine zugehörige Steuerleitung.
-
Bei
der Ausführungsform enthält die Pipeline-Bearbeitungseinheit 2b sechs
Einheiten, von der Informationshalteeinheit 2b1 bis zur
Schreibeinheit 2b6, in Übereinstimmung mit den
sechs Stufen eines Befehls. Jedoch kann die Konfiguration der Pipeline-Verarbeitungseinheit 2b fünf
Stufen oder acht Stufen entsprechen. Von der Pipeline-Verarbeitungseinheit 2b wird
nur gefordert, dass sie eine Pipeline-Verarbeitungsfunktion hat.
Die Anzahl der Stufen ist nicht auf sechs begrenzt.
-
Der
I/O-Speicher 3 arbeitet als eine Schnittstelle zur Übertragung
von Eingabe- und Ausgabedaten, die mit dem Betrieb des Pipeline-Betriebsprozessors 2 verbunden
sind. Die Ausgabedaten werden von der Speicheradressenzugriffseinheit 2b4 über den
Pipeline-Bus 2b7 und die I/O-Speicherzugriffseinheit 2b8 in
den I/O-Speicher 3 bei einem vorgegebenen Grundbuszyklus
des Pipeline-Busses 2b7 beschrieben.
-
Im
Gegenzug werden Eingabedaten aus dem I/O-Speicher 3 gelesen
und zu der Speicherdatenzugriffseinheit 2b5 über
die I/O-Speicherzugriffseinheit 2b8 gesendet.
-
Der
Betriebsspeicher 4 enthält einen Synchron-Speicher
und Daten werden von der Speicheradressenzugriffseinheit 2b4 über
die Betriebsspeicherzugriffseinheit 2b9 in den Betriebsspeicher 4 geschrieben.
-
Im
Gegenzug werden Daten von dem Betriebsspeicher 4 synchron
mit einem Taktsignal des Pipeline-Bus 2b7 gelesen und zu
der Speicherdatenzugriffseinheit 2b5 über die
Betriebsspeicherzugriffseinheit 2b9 gesendet.
-
Als
Nächstes wird ein typischer Steuerbetrieb des Steuersystems,
das wie oben beschrieben aufgebaut ist, für den Fall der
Ausführung einer typischen Pipeline-Verarbeitung beschrieben.
Wie es durch die punktierten Pfeile in 1 angezeigt
ist, führt das Steuerprogramm 4a, das von dem
Pipeline-Betriebsprozessor 2 ausgeführt wird,
dazu, dass die Befehlshalteeinheit 2b1 eine Anfrage für
einen Befehl über den Pipeline-Bus 2b7 durchführt,
wobei die Betriebsspeicherzugriffseinheit 2b9 auf den Betriebsspeicher 4 zugreift,
und wobei der auszuführende Befehl zu der Befehlsdekodiereinheit 2b2 gesendet
wird.
-
Die
Symbole IF bis WR in 3A zeigen jeweils die Stufen
der Pipeline-Verarbeitung, die jeweils den Stufen entsprechen (einschließlich
der Befehlshalteeinheit 2b19 bis zu der Schreibeinheit 2b6). Beispielsweise
werden die Befehle A bis F parallel durchgeführt, wobei
jeder Befehl in sechs Stufen verarbeitet wird, und die Ausführung
der Befehle wird jeweils um eine Stufe verschoben.
-
Als
Nächstes wird eine Erläuterung unter Bezug auf 2 und 3B bezüglich
des Betriebs gegeben, wenn der Zugriff von dem General-Purpose-Prozessor 1a oder 1b auf
den Betriebsspeicher 4 angefordert wird, in dem Fall in
dem der Pipeline-Betriebsprozessor 2 den typischen Steuerbetrieb
durchführt.
-
Wie
es durch die punktierten Linien in 2 angezeigt
ist, wenn Zugriff auf den Betriebsspeicher 4 von dem General-Purpose-Prozessor 1a über
die Speicherzugriffseinheit 2a1 gefordert wird, fügt
der Befehlseinfüger 2a2 einen NOP-Befehl in die
Befehlsdekodiereinheit 2b2 anstelle des Befehls E ein, der
als nächster auszuführender Befehl geplant ist, wie
es 3B gezeigt ist, und die Einheiten der Stufen werden
keine Verarbeitung während einer Zeitspanne des NOP-Befehls
durchführen.
-
Der
Befehlseinfüger 2a2 schreibt oder liest Anfragedaten
zu bzw. von dem Betriebsspeicher 4 über die Betriebsspeicherzugriffseinheit 2b9 innerhalb
der Zeitspanne des NOP-Befehls, wie es durch die Kettenlinien in 2 angezeigt
ist.
-
Der
untere Teil von 3B zeigt einen Betrieb des Pipeline-Betriebsprozessors 2 für
den Fall eines NOP-Befehls, der zwischen den Befehlen D und E eingefügt
ist, in dem Fall, dass der General-Purpose-Prozessor 1a eine
Anfrage für den Zugriff auf den Betriebsspeicher 4 veranlasst.
Für den Zweck des Vergleichs zeigt der obere Abschnitt
der 3B einen herkömmlichen Betrieb, der alle
Stufen der Verarbeitung stoppt.
-
Wie
es gezeigt ist, wenn ein NOP-Befehl eingefügt wird und
die Pipeline-Verarbeitung fortschreitet, müssen die Befehle
B bis F, die in Ausführung sind, nicht vollständig
gestoppt und neu ausgeführt werden, und eine Verzögerung
in der Verarbeitung ist auf eine Stufe beschränkt, die
durch Einfügen des NOP-Befehls verursacht wird, im Gegensatz
zu dem herkömmlichen Fall, in dem alle Stufen gestoppt
werden. Daher ist die Kontinuität der Pipeline-Verarbeitung
sichergestellt und die Verschlechterung der Verarbeitungseffizienz
aufgrund einer Zugriffsanfrage auf den gemeinsam genutzten Speicher
kann verringert werden.
-
Darüber
hinaus kann der Zugriff auf den Betriebsspeicher 4 in dem
Steuerprogramm eingebunden sein, und der Pipeline-Betriebsprozessor 2 kann den
Zugriff ausführen. In einem solchen Fall, wenn die Einfügung
eines NOP-Befehls von dem Befehlseinfüger 2a2 mitgeteilt
wird, erkennt die Befehlsdeko diereinheit 2b2 den NOP-Befehl,
der im Voraus in dem Steuerprogramm eingebunden ist, und weist den
Befehlseinfüger 2a2 an. Der Befehlseinfügunger 2a2 informiert
den korrigierten Steuerinformationspuffer 2a3 bezüglich
der Erzeugung des NOP-Befehls. Nach der Benachrichtigung bezüglich
des NOP-Befehls arbeitet der korrigierte Steuerinformationspuffer 2a3 ähnlich
dem Fall, in dem der General-Purpose-Prozessor 1a eine
Zugriffsanfrage auf den Betriebsspeicher 4 durchführt.
-
Als
Nächstes wird unter Bezug auf 2 und die 4 bis 6 eine
Konfiguration und ein Betrieb des Befehlseinfügungscontrollers 2a detailliert beschrieben.
-
Wenn
der Befehleinfüger 2a2 einen NOP-Befehl von der
ID-Dekodiereinheit 2b2 anstelle des Befehls D einfügt,
der für die Ausführung geplant ist, wird die relative
Position zwischen den Stufen des Befehls, bevor der NOP-Befehl eingefügt
wurde, und den Stufen des Befehls nach der Einfügung geändert,
wie es in 5B gezeigt ist, nämlich
die Phasenbeziehung der Steuerinformation, die eine Abhängigkeitsbeziehung
zwischen den Stufen steuert, wird geändert.
-
Daher,
wenn der Befehl eingefügt wird, ist es für eine
Phase der Steuerinformation, die einen Datenweg zwischen den Stufen
steuert, erforderlich, korrigiert zu werden. Der korrigierte Steuerinformationspuffer 2a3 korrigiert
die Verschiebung der Steuerinformation. Die Details des korrigierten
Steuerinformationspuffers 2a3 werden unter Bezugnahme auf 4 erläutert.
-
Der
korrigierte Steuerinformationspuffer 2a3 enthält
einen Speicherbankselektor 2a31, der eine Bank zum Speichern
der Steuerinformation jedes Mal auswählt, wenn der Befehlseinfügunger 2a2 den NOP-Befehl
in die Befehlsdekodiereinheit 2b2 einfügt, wobei
ein Steuerinformationsspeicher 2a32, der Bänke
mit einer Mehrzahl von Pufferregistern zum Speichern der Steuerinformation
enthält, und ein korrigierter Steuerinformationsselektor 2a33,
der zur Zeit der Ausführung des Befehls nach dem NOP-Befehl
korrigiert, die relative Verschiebung der Steuerinformation zwischen
Stufen, die durch die Einfügung des NOP-Befehls verursacht
wird, korrigiert, und die korrigierte Information aus der entsprechenden
Bank auswählt und sie ausgibt.
-
Der
Speicherbankselektor 2a31 enthält eine Eingabeauswahlringpuffereinheit 2a311 und
eine Gate-Schaltung 2a312. Die Eingabeauswahlringpuffereinheit 2a311 enthält
drei Puffer, die die Anwesenheit oder Abwesenheit von Befehlseinfügung
von dem Befehlseinfügunger 2a2 speichern, die
synchron mit dem Taktsignal Ck der Pipeline rotieren und während
einer Periode stoppen, in der eine Ausgabe von dem Befehlseinfügunger 2a2 existiert,
und wobei Hochpegelausgaben als „wahr” (true)
angesehen werden. Wenn die Eingabeauswahlringpuffereinheit 2a311 „wahr” ausgibt,
empfängt die Gate-Schaltung 2a312 Eingabesteuerinformation
für Stufen der Pipeline-Verarbeitungseinheit 2b und überträgt
eine Ausgabe von jedem der Ringpuffer, der „wahr” ist,
an eine entsprechende Bank.
-
Der
korrigierte Steuerinformationsselektor 2a33 enthält
eine Ausgabeauswahlringpuffereinheit 2a331 und einen Multiplexer 2a332.
Die Ausgabeauswahlringpuffereinheit 2a331 steuert den Steuerinformationsspeicher 2a32 zur
Verzögerung der Ausgabe der Steuerinformation, die in den
Bänken des Steuerinformationsspeichers 2a32 gespeichert ist
für eine Zeitspanne entsprechend der Anzahl von eingefügten
Befehlen, d. h. für eine Zeitspanne entsprechend den angehaltenen
Stufen. Der Multiplexer 2a332 gibt die Steuerinformation
ein, die in einer der drei Bänke (L, M, N) des Steuerinformationsspeichers 2a32 gespeichert
ist, und gibt die Steuerinformation aus, die entsprechend der Ausgabe
der Ausgabeauswahlringpuffereinheit 2a331 ausgewählt wurde.
-
Die
Anzahl von Puffern der Eingabeauswahlringpuffereinheit 2a311,
die Anzahl von Puffern der Ausgabeauswahlringpuffereinheit 2a331 und
die Anzahl von Bänken des Steuerinformationsspeichers 2a32 werden
vorausgehen beruhend auf der Anzahl von Prozessoren bestimmt, die
auf den gemeinsam genutzten Speicher 4 zugreifen, und der
Anzahl von Malen des Zugriffs pro Stufe in einem Befehl der Pipeline-Verarbeitung.
Ein so konfigurierter, synchroner, primärer Speicher ermöglicht
die Korrektur von Steuerinformation mit hohen Geschwin digkeit und synchron
mit dem Taktsignal der Pipeline-Verarbeitung.
-
Als
Nächstes wird ein Steuerbetrieb des korrigierten Steuerinformationspuffers 2a3 mit
der obigen Konfiguration beschrieben.
-
Wenn
beispielsweise ein Betriebsergebnis der Stufe der Speicherdatenzugriffseinheit
(MDR) 2b5 in der Stufe der Befehlsdekodiereinheit 2b2 (ID) verwendet
wird, kann die typische Pipeline-Verarbeitung in einer solchen Art
arbeiten, dass die Steuerinformation der Speicherdatenzugriffseinheit
(MDR) 2b5 entsprechend einem Befehl A von der Stufe der Befehlsdekodiereinheit
(ID) 2b2 in Bezug genommen wird. Wenn jedoch in dem Fall,
in dem eine Anfrage für den Zugriff auf den Betriebsspeicher 4 erzeugt wird,
wenn die Steuerinformation der MDR-Stufe (st1) in Bezug genommen
wird, wie in der ID-Stufe (st3) nach der Einfügung des
NOP-Befehls, wird die geeignete Steuerinformation durch einen im
Anschluss ausgeführten Befehl upgedated, um einen Fehler
zu verursachen, und die geeignete Steuerinformation kann nicht verwendet
werden.
-
Somit
speichert der korrigierte Steuerinformationspuffer 2a3 vorübergehend
die geeignete Steuerinformation, so dass auf die Steuerinformation in
der ID-Stufe Bezug genommen werden kann.
-
Das
heißt, um sequentiell Steuerinformation von aufeinanderfolgenden
Stufen in dem Pipeline-Verarbeitungsbetrieb zu speichern und um
die Steuerinformation referenzierbar zu machen, enthält der
korrigierte Steuerinformationspuffer 2a3, wie es vorangehend
beschrieben wurde, den Steuerinformationsspeicher 2a32 mit
Bänken, die parallel bezüglich der Eingabe der
Steuerinformation ausgestaltet sind, und er enthält den
Speicherbankselektor 2a31 und den korrigierten Steuerinformationsselektor 2a33,
welcher eine Eingabebedingung oder eine Ausgabebedingung der Steuerinformation
auswählt und steuert, beruhend auf der Auswahl von einer
der parallelen Bänke und einer Auswahlbedingung, die synchron
mit dem Taktsignal Ck rotiert. Der korrigierte Steuerinformationspuffer 2a3 korrigiert
die Phasenverschiebung der Steuerin formation zur Zeit der Befehlseinfügung
synchron mit dem Taktsignal, und verursacht, dass auf die korrigierte
Steuerinformation in den Stufen der Pipeline zugegriffen werden
kann, wobei, auch wenn eine Zugriffsanforderung einer Mehrzahl von
Befehlen erzeugt wird, die Steuerinformation normal refenziert werden
kann.
-
Beispielsweise,
wie es in 6 gezeigt ist, in dem Fall,
in dem der Befehl B ein Vergleichsbefehl ist, dessen mnemonische
Notation gleich groß CMP ist, und der Befehl F ein Bedingungsabzweigungsbefehl
ist, der als JMP bezeichnet ist, und der Befehl F auf Steuerinformation
Bezug nimmt, die aus dem Befehl B resultieren, wenn ein NOP-Befehl
zwischen den Befehlen D und E eingefügt wird, und 3 NOP-Befehle
sequentiell zwischen den Befehlen E und F eingefügt werden,
wird Steuerinformation für die Stufe der ID von der Stufe
der MDR abgeleitet, die geeignet in jeder der Stufen (st3) und den
Stufen (st6) bis (st9) gesetzt werden, wie es durch die Pfeile angezeigt
ist, nämlich die Steuerinformation einer geeigneten Phase
entsprechend dem Fall, in dem die NOP-Befehle nicht eingefügt
sind, wird eingestellt, und die Verarbeitung verläuft normal.
-
Zweite Ausführungsform
-
Im
Anschluss wird ein Steuersystem mit einem Pipeline-Betriebsprozessor
entsprechend der zweiten Ausführungsform der Erfindung
unter Bezugnahme auf die 7 und 8 beschrieben.
-
Dieselben
Abschnitte, wie jene der ersten Ausführungsform, werden
durch die gleichen Bezugszeichen angezeigt und ihre detaillierte
Beschreibung wird weggelassen.
-
Bei
der zweiten Ausführungsform wird die Pipeline-Verarbeitung
vereinfacht, indem geregelt wird, dass der Speicherzugriff auf den
Betriebsspeicher 4 einmal in Bezug auf jeden Befehl durchgeführt wird.
-
Im
Allgemeinen, wenn auf eine Adresse in einem Speicher-Map zugegriffen
wird, erfüllt der Prozessor, der eine festge legte festbleibende
Datenmenge handhabt, bei der Ausrichtung entsprechend einem ganzzahligen
Vielfach eines geraden Bytes. Der Prozessor befolgt eine 4-Byte-Ausrichtung
zum Handhaben von 32-Bit-Daten und eine 2-Byte-Ausrichtung zur Handhabung
von 16-Bit-Daten. Des Weiteren wird ein Fehler hierbei als Ausrichtungsfehler bezeichnet.
In einem solchen Fall, wie es in 7 gezeigt
ist, können Ausrichtungsdaten von 4-Byte für jeden
Speicherzugriff geschrieben oder gelesen werden. Wenn jedoch Daten
zu einem Ausrichtungsfehler führen, der einen zweifachen
Speicherzugriff erfordert, ist es erforderlich, dass die gleiche
Befehlseinfügungs- und -steuerinformation gespeichert wird,
um eine Mehrzahl von Malen den Speicherzugriff zu ermöglichen
und die normale Pipeline-Verarbeitung wird ermöglicht,
ohne einen Fehler oder ein Risiko der Steuerinformation aufgrund
der mehrfachen Speicherzugriffe zu verursachen.
-
In
der Folge, wie es in 8 gezeigt ist, entnimmt in der
Befehlsdekodiereinheit 2b2 eine ID-Schaltung 2b12 einen
Befehl zum Zugriff auf den Betriebsspeicher 4 und eine
Speicheradresse und Datengröße des Befehls, und
eine Ausrichtungsdetektionsschaltung 2b13 erkennt einen
Ausrichtungsfehler und überträgt das resultierende
Detektionssignal an den Befehlseinfügungscontroller 2a2.
Somit, mittels des Befehlseinfügungscontrollers 2a kann
der Pipeline-Betriebsprozessor 2 in geeigneter Weise den
Speicherzugriff zweimal für einen Befehl durchführen, ähnlich
der ersten Ausführungsform.
-
Dementsprechend
muss beim Speicherzugriff für Daten, der in einem Ausrichtungsfehler
resultieren kann, nicht verhindert werden, wenn das Steuerprogramm
kompiliert wird, sondern kann von dem Pipeline-Betriebsprozessor
ausgeführt werden. Damit wird es möglich, dass
der Speicherzugriff auch für Daten variabler Länge
mittels des Pipeline-Betriebsprozessors zur Ausführung
eines Befehls festgelegter Länge ausführbar wird,
wodurch die Verarbeitung durch den Pipeline-Betriebsprozessor schneller
wird.
-
Dritte Ausführungsform
-
Im
Folgenden wird ein Steuersystem mit einem Pipeline-Betriebsprozessor
entsprechend der dritten erfindungsgemäßen Ausführungsform
unter Bezugnahme auf die 8 bis 10 beschrieben.
-
Die
gleichen Abschnitte, wie jene der ersten Ausführungsform,
werden mit den gleichen Bezugszeichen angezeigt und ihre detaillierte
Beschreibung wird weggelassen.
-
Bei
der dritten Ausführungsform kann mittels eines Befehls
zur Verbesserung der Betriebseffizienz von dem Pipeline-Betriebsprozessor 2 auf
den I/O-Speicher 3 für eine Mehrzahl von Befehlen
zugegriffen werden.
-
Die
Befehlsdekodiereinheit 2b2 enthält eine Zugriffsbefehlsdetektionsschaltung 2b14,
die in 8 gezeigt ist. Die Zugriffsbefehlsdetektionsschaltung 2b14 detektiert
einen Befehl, der in einer ID-Schaltung 2b12 eingestellt
ist, um auf den I/O-Speicher 3 des Pipeline-Betriebsprozessors 2 mehrfach
zuzugreifen. Bei der Detektion des Befehls für die Zugriffsanfrage
informiert die Zugriffsbefehlsdetektionsschaltung 2b14 den
Befehlseinfüger 2a2 bezüglich des Befehls,
wobei der Befehlseinfüger 2a2 die ID-Schaltung 2b12 bezüglich
der Ausführung des Befehls informiert, und der Speicherzugriff
entsprechend der Mehrzahl von Malen des Einfügungsbefehls
wird über die I/O-Speicherzugriffseinheit 2b8 durchgeführt,
bis der Speicherzugriff vollständig ist.
-
Beispielsweise
ist in 9 ein Befehl D ein Schreibzugriffsbefehl, dessen
mnemonische Notation gleich groß MEM WR ist, und eine Mehrzahl
von Befehlen werden zwischen der Ausführung eines Befehls
D und der Beendigung des Speicherzugriffs ausgeführt.
-
Bei
der Vorbereitung des Falls, in dem Schreibdaten, die von der Ausführung
der Befehle A bis C resultieren, bevor der Befehl D direkt an eine MADR-Stufe übertragen
wird, wird die Einfügung einer Mehrzahl von Befehlen nachfolgend
zu der Ausführung des Befehls D ausgeführt, bis
der Speicherzugriff vollständig ist. Daher erzeugt der
direkte Transfer von Schreibdaten zwischen den Stufen keinen Datenfehler
und der Speicherzugriff des Betriebsspeichers 4 wird ermöglicht.
-
In 10 ist
ein Befehl D ein Lesezugriffsbefehl, dessen mnemonische Notation
gleich groß MEM RD ist, und die Mehrzahl von Befehlen werden nachfolgend
zur Ausführung des Befehls C und zu der Zeit des Beginns
der Ausführung des Befehls D eingefügt. Das Vervollständigen
des Speicherzugriffs verursacht die Ausführung des Befehls
D, das heißt, MEM RD.
-
Bei
der Vorbereitung für den Fall, in dem die Ausführung
der Befehle E bis H, nachfolgend dem Befehl D, Lesedaten verwenden,
die direkt von einer MDR-Stufe übertragen werden, werden
die Mehrzahl von Befehlen von dem Start der Ausführung
der Befehls D bis unmittelbar vor der Beendigung des Speicherzugriffs
eingefügt, und der Befehl D wird anschließend
ausgeführt. Daher wird der direkte Transfer von Lesedaten
zwischen den Stufen keinen Datenfehler erzeugen, und der Speicherzugriff
ist möglich.
-
Gemäß der
dritten Ausführungsform wird der Speicherzugriff von dem
General-Purpose-Prozessor ermöglicht, wobei Effekte der
Pipeline-Steuerung für einen Pipeline-Betriebsprozessor
minimiert werden, und wobei die Betriebsleistung des Pipeline-Betriebsprozessors
verbessert wird.
-
Die
Erfindung ist nicht auf die beschreibenden Ausführungsformen
beschränkt. Der Befehlseinfügungscontroller ist
nur nötig, um einen NOP-Befehl in einen gemeinsam genutzten
Betriebsspeicher einzufügen und um die Verschiebung der
Steuerinformation zu korrigieren (Erzeugung eines Fehlers), die zum
Zeitpunkt der Einfügung erzeugt wird. Eine Stufenkonfiguration
der Pipeline-Verarbeitungseinheit und eine Schaltungskonfiguration
des Betriebsspeichers kann verschiedene Modifikationen haben, ohne
vom Kern der Erfindung abzuweichen.
-
Zusätzliche
Vorteile und Modifikationen werden dem Fachmann ersichtlich sein.
Daher ist die Erfindung in ihren breitesten Aspekten nicht auf spezifische
Details der repräsentativen Ausführungsformen beschränkt,
die hier gezeigt und beschrieben sind. Dementsprechend können
verschieden Abwandlun gen vorgenommen werden, ohne vom Geist oder Rahmen
des allgemeinen erfinderischen Konzeptes abzuweichen, wie es durch
die beiliegenden Ansprüche festgelegt ist, oder von deren Äquivalente.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
-
Zitierte Nicht-Patentliteratur
-
- - Kapitel 6,
Seite 23 bis 70 von „Computer Architecture and Design” (Band
2) veröffentlicht, das von John L. Hennessy und David A.
Patterson geschrieben ist, und von Nikkei Business Publications
Inc. am 26. Juni 1996 [0007]