DE19807358C2 - Programmierbare Steuervorrichtung mit einem Überspringungsprozessorteil ohne Rückübertragung des Steuerungsrechts an die CPU - Google Patents
Programmierbare Steuervorrichtung mit einem Überspringungsprozessorteil ohne Rückübertragung des Steuerungsrechts an die CPUInfo
- Publication number
- DE19807358C2 DE19807358C2 DE19807358A DE19807358A DE19807358C2 DE 19807358 C2 DE19807358 C2 DE 19807358C2 DE 19807358 A DE19807358 A DE 19807358A DE 19807358 A DE19807358 A DE 19807358A DE 19807358 C2 DE19807358 C2 DE 19807358C2
- Authority
- DE
- Germany
- Prior art keywords
- command
- evaluation data
- class
- memory
- bpu
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30069—Instruction skipping instructions, e.g. SKIP
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Programmable Controllers (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
Die vorliegende Erfindung betrifft programmierbare Steuervorrichtungen und insbesondere eine
Beschleunigung programmierbarer Steuervorrichtungen unter Verwendung von Multi-Prozessor-
Technologie.
Bisher wurden programmierbare Steuervorrichtungen mit Multi-Prozessor-Technologie in einer in
Fig. 10 dargestellten Anordnung gemäß JP-7-319692 A verwendet. Im folgenden wird auf die
programmierbare Steuervorrichtung in Fig. 10 Bezug genommen, wobei eine
Bitverarbeitungseinheit (im folgenden als BPU bezeichnet) B und eine Zentraleinheit (im
folgenden als CPU bezeichnet) C einen gemeinsamen Speicher M, einen gemeinsamen Adreßbus
und einen gemeinsamen Datenbus aufweisen. Ein in dem Speicher M gespeichertes Programm
wird als Kombination von Befehlen einer ersten Klasse, die durch die BPU B durchgeführt werden,
und von Befehlen einer zweiten Klasse, die durch die CPU C ausgeführt werden, gebildet. Zuerst
hat die BPU B bei der Ausführung des Programms ein Steuerungsrecht, und sie überträgt das
Steuerungsrecht an die CPU C, wenn ein Befehl der zweiten Klasse ausgeführt werden soll. Dann
führt die CPU C den Befehl zweiter Klasse aus. Die zweite Befehlsklasse weist Befehle auf, die
übersprungen werden können, wenn der vorhergehende Befehl ein Befehl erster Klasse ist und eine
gewisse Übersprungbedingung
beim Ausführungsergebnis des vorhergehenden Befehls erster Klasse erfüllt ist. Wenn
die CPU C das Steuerungsrecht zusammen mit einem Befehl zweiter Klasse erhält, und wenn der
Befehl ein überspringbarer Befehl ist, wird die CPU C auf das Ausführungsergebnis des
vorhergehenden Befehls verwiesen, um zu bestimmen, ob das Ausführungsergebnis die
Übersprungbedingung erfüllt oder nicht. Wenn die CPU C feststellt, daß das Ausführungsergebnis
die Übersprungbedingung erfüllt, und wenn der nächste Befehl zu der ersten Klasse gehört,
überträgt die CPU C das Steuerungsrecht wieder zurück an die BPU B.
Wie oben beschrieben, erhält die CPU C das Steuerungsrecht immer bedingungslos, wenn der
aktuelle Befehl zu der zweiten Klasse gehört. Ein Programm besteht aus verschiedenen Befehlen
sowohl der ersten als auch der zweiten Klasse und enthält im allgemeinen viele überspringbare
Befehle. Daher wurde eine Ausführungsbeschleunigung durch häufige Übertragung des
Steuerungsrechtes behindert.
Aus der US 5,517,436 und der JP 3-237502 A sind programmierbare Steuervorrichtungen bekannt,
bei denen ein überspringbarer Befehl übersprungen wird, wenn eine Übersprungbedingung erfüllt
ist. Allerdings sieht die JP-3-237502 A vor, dass das Steuerungsrecht von der BPU auf die CPU
übertragen wird, wann immer die CPU einen Befehl liest. Insbesondere wird das Steuerungrecht
auf die CPU selbst dann übertragen, wenn der Befehl ein überspringbarer Befehl ist und die
Übersprungbedingung erfüllt ist. Das Steuerungsrecht wird immer auf die CPU übertragen, wenn
diese einen Befehl liest.
Es ist die Aufgabe der vorliegenden Erfindung, eine programmierbare Steuervorrichtung
vorzusehen, die die schnelle Ausführung überspringbarer Befehle ermöglicht.
Die Aufgabe der vorliegenden Erfindung wird durch die Merkmale des Anspruchs 1 gelöst.
Zur Lösung der oben genannten Aufgaben ist eine programmierbare Steuervorrichtung vorgesehen,
die eine BPU, die die Befehle der ersten Klasse ausführt, eine CPU, die die Befehle der zweiten
Klasse ausführt, und einen Speicher aufweist, der der BPU und der CPU gemeinsam ist und der ein
Programm speichert, das aus einer Kombination von Befehlen erster Klasse und Befehlen zweiter
Klasse besteht. Die Befehle zweiter Klasse umfassen überspringbare Befehle, die übersprungen
werden können, wenn die Ausführung eines vorhergehenden Befehls erster Klasse eine
vorbestimmte Übersprungbedingung erfüllt. Die Befehle erster Klasse betreffen hauptsächlich
Vorgänge im Bitbereich, während die Befehle zweiter Klasse hauptsächlich Vorgänge im
Bytebereich betreffen. Die Vorgänge im Bytebereich können jedoch durch Vorgänge ersetzt
werden, die in Einheiten einer vorbestimmten Länge ausgeführt werden, wie zum Beispiel Wörter,
Doppelwörter und ähnliches. Die programmierbare Steuervorrichtung weist einen
Bewertungsdaten-Speicherbereich, der Bewertungsdaten speichert, mit denen festgestellt werden
kann, ob ein aktueller Befehl der zweiten Klasse ein überspringbarer Befehl ist oder nicht, und
einen Übersprungsdurchführbereich auf, der feststellt, ob das Ausführungsergebnis eines
vorhergehenden Befehls erster Klasse einen Überspringungszustand rechtfertigt oder nicht.
Die BPU weist einen Bit-Akkumulator BACC auf, der ein aus der Ausführung des Befehls erster
Klasse durch die BPU erhaltenes Ausführungsergebnis des Befehls erster Klasse erhält.
Wenn die Bewertung ergibt, daß das Ausführungsergebnis den Überspringungszustand rechtfertigt,
dann stellt der Übersprungsdurchführbereich auf der Grundlage der oben genannten
Bewertungsdaten fest, ob der aktuelle Befehl der zweiten Klasse ein überspringbarer Befehl ist oder
nicht. Wenn die Bewertung ergibt, daß das Ausführungsergebnis die Übersprungbedingung erfüllt
und daß der aktuelle Befehl ein überspringbarer Befehl ist, dann überspringt der
Übersprungsdurchführbereich den aktuellen Befehl, ohne das Steuerungsrecht an die CPU zu
übertragen.
Die BPU kann einen Befehl überspringen, ohne das Steuerungsrecht an die CPU zu übertragen,
wenn ein überspringbarer Befehl vorliegt und die Übersprungbedingung erfüllt ist. Auf diese Weise
führt die BPU den Übersprungvorgang selbst aus, da sie einen Bit-Akkumulator und einen
Übersprungdurchführbereich aufweist und somit selbst über eine Entscheidungsfunktion für das
Überspringen eines überspringbaren Befehls zweiter Klasse verfügt.
Der Bewertungsdaten-Speicherbereich speichert die Bewertungsdaten, mit denen der
Übersprungsdurchführbereich auf Grundlage der Adresse, an der der Befehl gespeichert ist,
feststellen kann, ob ein Befehl zweiter Klasse ein überspringbarer Befehl ist oder nicht. Dieser
Bewertungsdaten-Speicherbereich kann in der BPU vorgesehen sein. Als Alternative kann ein von
der BPU separater zweiter Speicher, auf den die BPU Zugriff hat, vorgesehen sein, in dem der
Bewertungsdaten-Speicherbereich vorgesehen ist. Bei einer weiteren Variante kann ein freier
Speicherbereich des Speichers verwendet werden, in dem Programme gespeichert sind.
Die Bewertungsdaten können Adressen aufweisen, die den Adressen der Befehle zweiter Klasse
eins zu eins entsprechen, aber diese Entsprechung ist nicht immer erforderlich. Es reicht aus, daß
die Bewertungsdaten eine Datenstruktur aufweisen, die es dem Übersprungsdurchführbereich
ermöglicht, auf der Grundlage der Adresse des Befehls festzustellen, ob ein Befehl ein
überspringbarer Befehl ist oder nicht.
Der Übersprungsdurchführbereich stellt auf der Grundlage der Bewertungsdaten und des
Ausführungsergebnisses fest, ob ein Befehl ein überspringbarer Befehl ist oder nicht und ob der
Befehl tatsächlich übersprungen werden kann oder nicht. Wenn der Übersprungsdurchführbereich
feststellt, daß ein Befehl tatsächlich übersprungen werden kann, dann überspringt der
Übersprungsdurchführbereich den Befehl, ohne das Steuerungsrecht zur Ausführung des nächsten
Befehls an die CPU zu übertragen. Der Übersprungsdurchführbereich kann aus einem in der BPU
vorgesehenen Programm bestehen, kann aber auch in der BPU als Hardware eingebaut sein.
Gemäß der vorliegenden Erfindung wird, wenn ein überspringbarer Befehl tatsächlich über
sprungen werden kann, der Befehl ohne Übertragung des Steuerungsrechts an die CPU über
sprungen. So wird die Durchführung einer Überspringung beschleunigt, und die Zeit zur Ausfüh
rung eines Programms wird deutlich verkürzt.
Weitere Einzelheiten der vorliegenden Erfindung werden in der folgenden Be
schreibung unter Bezug auf die bevorzugten Ausführungsformen der Erfindung und die beilie
genden Zeichnungen verdeutlicht, wobei gleiche Teile durch gleiche Bezugszeichen bezeichnet
sind, und wobei:
Fig. 1 ein Blockdiagramm einer ersten Ausführungsform gemäß der vorliegenden Erfindung
zeigt;
Fig. 2 ein Flußdiagramm zeigt, das die durch die BPU der ersten Ausführungsform ausgeführten
Vorgänge darstellt;
Fig. 3 das Überspringen eines Befehls bei der ersten Ausführungsform darstellt;
Fig. 4 ein Blockdiagramm einer zweiten Ausführungsform gemäß der vorliegenden Erfindung
zeigt;
Fig. 5 ein Flußdiagramm zeigt, das die durch die BPU der zweiten Ausführungsform ausgeführ
ten Vorgänge darstellt;
Fig. 6 einen Speicherzustand von Bewertungsdaten in dem zweiten Speicher der zweiten Aus
führungsform darstellt;
Fig. 7 ein Flußdiagramm zeigt, das die durch die BPU der dritten Ausführungsform ausgeführten
Vorgänge darstellt;
Fig. 8 den Bewertungsdatenspeicherbereich in dem Speicher der dritten Ausführungsform zeigt;
Fig. 9a eine in hexadezimaler Darstellung gezeigte Adresse zeigt, die in binärer Darstellung an
gegeben wird, wenn die Bewertungsdaten für jeden Befehl entnommen werden;
Fig. 9b einen in hexadezimaler Darstellung gezeigten Verschiebungswert zeigt, der in binärer
Darstellung gezeigt wird, wenn die Bewertungsdaten für jeden Befehl entnommen werden;
Fig. 9c eine weitere Adresse zeigt, die der Adresse aus Fig. 9a entspricht;
Fig. 9d den Inhalt an der Adresse von Fig. 9c zeigt; und
Fig. 10 ein Blockdiagramm einer programmierbaren Steuervorrichtung nach dem Stand der
Technik zeigt.
Diese, Anmeldung beruht auf der in Japan eingereichten Patentanmeldung HEI 9-41909, deren
Inhalt hier durch Bezug enthalten ist.
Die erste Ausführungsform gemäß der vorliegenden Erfindung wird unten im Zusammenhang
mit den Fig. 1, 2 und 3 beschrieben. Im folgenden wird auf Fig. 1 Bezug genommen, wobei
eine programmierbare Steuervorrichtung einen Speicher 1, eine BPU (Bitverarbeitungseinheit) 2
und eine CPU (Zentraleinheit) 3 aufweist.
Der Speicher 1 speichert ein Programm, das aus einer Kombination von in irgendeiner Weise
angeordneten Befehlen erster Klasse und Befehlen zweiter Klasse besteht. Die Befehle erster
Klasse werden durch die BPU 2 verarbeitet und befehlen der BPU 2 relativ einfache grundlegen
de Vorgänge, hauptsächlich Vorgänge im Bitbereich. Befehle zweiter Klasse werden durch die
CPU 3 verarbeitet und befehlen der CPU 3 relativ komplexe Anwendungsvorgänge, etwa Vor
gänge im Bytebereich, Datenkonversionen und Datenübertragungen. Ferner weisen die Befehle
zweiter Klasse überspringbare Befehle auf, deren Ausführung übersprungen werden kann, wenn
das Ausführungsergebnis eines vorhergehenden Befehls erster Klasse eine vorbestimmte Über
sprungbedingung erfüllt.
Die BPU 2 ist ein Prozessor, der einen Vorgang im Bitbereich ausführt und über einen Datenbus
4 und einen Adreßbus 5 mit dem Speicher 1 verbunden ist. Die BPU 2 führt den Vorgang eines
in dem Speicher 1 gespeicherten Befehls erster Klasse aus, wenn sie das Steuerungsrecht erhält,
das zwischen der BPU 2 und der CPU 3 übertragen wird. Die BPU 2 weist einen Bewertungsda
ten-Speicherbereich 2a, einen BACC (Bitakkumulator) 2b und einen Übersprungsdurchführbe
reich 2c auf. Der Bewertungsdaten-Speicherbereich 2a ist eine Tabelle, die Bewertungsdaten
speichert, nach denen festgestellt wird, ob ein Befehl zweiter Klasse, der der Ausführung eines
Befehls erster Klasse folgt, ein überspringbarer Befehl ist oder nicht, indem er auf die Adresse
verweist, an der der Befehl zweiter Klasse gespeichert ist. Der BACC 2b speichert das durch die
Ausführung des Befehls erster Klasse durch die BPU 2 erhaltene Ausführungsergebnis R. Der
Übersprungsdurchführbereich 2c stellt fest, ob das Ausführungsergebnis R des Befehls erster
Klasse die vorbestimmte Übersprungbedingung erfüllt oder nicht. Wenn die Bewertung ergibt,
daß das Ausführungsergebnis R die Übersprungbedingung erfüllt, stellt der Übersprungsdurch
führbereich 2c auf der Grundlage der Bewertungsdaten ferner fest, ob der Befehl zweiter Klasse
ein überspringbarer Befehl ist oder nicht. Wenn der Befehl zweiter Klasse ein überspringbarer
Befehl ist, dann führt der Übersprungsdurchführbereich 2c die Verarbeitung einer Überspringung
des Befehls zweiter Klasse durch, ohne das Steuerungsrecht an die CPU 3 zu übertragen.
Die CPU 3 ist über den Datenbus 4 und den Adreßbus 5 mit dem Speicher 1 verbunden. Wenn
sie das Steuerungsrecht erhält, führt die CPU 3 einen in dem Speicher 1 gespeicherten Befehl
zweiter Klasse aus.
Als nächstes wird der Betrieb der BPU 2 selbst und des darin vorgesehenen Übersprungsdurch
führbereichs 2c unter Bezug auf Fig. 2 beschrieben. Die BPU 2 liest einen in dem Speicher 1
gespeicherten Befehl zusammen mit der Adresse aus, an der dieser Befehl gespeichert ist (Schritt
S101). Dann stellt die BPU 2 fest, ob der Befehl ein Grundbefehl der ersten Klasse oder ein An
wendungsbefehl der zweiten Klasse ist (Schritt S102). Wenn der Befehl ein Grundbefehl ist,
führt die BPU 2 den Vorgang des Befehls aus (Schritt S103). Wenn der Befehl ein Anwen
dungsbefehl ist, stellt der Übersprungsdurchführbereich 2c je nach dem Binärwert des in dem
BACC 2b gespeicherten Ausführungsergebnisses R fest, ob der Befehl ausgeführt werden sollte,
d. h., ob er die Übersprungbedingung erfüllt oder nicht (Schritt S104). Der Wert 0 des Ausfüh
rungsergebnisses R zeigt an, daß der Befehl zweiter Klasse übersprungen werden kann, wenn es
sich um einen überspringbaren Befehl handelt, d. h., wenn die Übersprungbedingung erfüllt ist.
Der Wert 1 des Ausführungsergebnisses R zeigt an, daß der Befehl zweiter Klasse nicht über
sprungen werden kann, auch, wenn es sich um einen überspringbaren Befehl handelt. Wenn daher
das in BACC 2b gespeicherte Ausführungsergebnis R den Wert 1 aufweist, stellt der Verar
beitungsbereich 2c fest, daß der Anwendungsbefehl ausgeführt werden sollte, und die BPU 2
übermittelt das Steuerungsrecht an die CPU 3 (Schritt S105). Die CPU 3 führt dann den Vorgang
des Anwendungsbefehls (Schritt S106) aus und überträgt das Steuerungsrecht zurück an die BPU
2 (Schritt S107).
Wenn andererseits das in BACC 2b gespeicherte Ausführungsergebnis R den Wert 0 aufweist,
dann stellt der Verarbeitungsbereich 2c fest, daß der Anwendungsbefehl übersprungen werden
kann, ohne ausgeführt zu werden, d. h., die Übersprungbedingung ist erfüllt, und er stellt auf der
Grundlage der in dem Bewertungsdaten-Speicherbereich 2a gespeicherten Daten fest, ob der
Anwendungsbefehl ein überspringbarer Befehl ist oder nicht (Schritt S108). Hier ist die Adresse,
an der der Befehl in dem Speicher 1 gespeichert ist, dieselbe wie die Adresse in dem Bewer
tungsdaten-Speicherbereich 2a, an der die Bewertungsdaten für den Befehl gespeichert sind, so
daß der Übersprungsdurchführbereich 2c lediglich auf die an der Adresse gespeicherten Bewer
tungsdaten verweisen muß.
Wenn der Übersprungsdurchführbereich 2c in Schritt S108 feststellt, daß der Anwendungsbefehl
kein überspringbarer Befehl ist, dann überträgt die BPU 2 das Steuerungsrecht an die CPU 3
(Schritt S105). In diesem Fall führt die CPU 3 dann den Vorgang des Anwendungsbefehls aus
(Schritt S106) und überträgt das Steuerungsrecht zurück an die BPU 2 (Schritt S107). Wenn der
Übersprungsdurchführbereich 2c in Schritt S108 feststellt, daß der Anwendungsbefehl ein über
springbarer Befehl ist, wird der Befehl übersprungen (Schritt S109).
Fig. 3 zeigt ein Beispiel, bei dem Befehle ab Adresse 100 gespeichert werden. Im folgenden wird
auf Fig. 3 Bezug genommen, wobei die BPU 2 den an der Adresse 105 gespeicherten Anwen
dungsbefehl überspringt, nachdem der Vorgang des an der Adresse 104 gespeicherten Grundbe
fehls ausgeführt wurde.
Bei einer derartigen oben beschriebenen Steuervorrichtung wird durch die BPU 2 auf der
Grundlage der in dem Bewertungsdaten-Speicherbereich 2a gespeicherten Bewertungsdaten
festgestellt, ob ein Befehl zweiter Klasse, der einem Befehl erster Klasse folgt, ein überspringba
rer Befehl ist oder nicht. Wenn ferner festgestellt wird, daß der Befehl zweiter Klasse ein über
springbarer Befehl ist, wird das Steuerungsrecht weder von der BPU 2 zu der CPU 3 noch von
der CPU 3 zurück zu der BPU 2 übertragen. Daher wird die sonst zur Übertragung des Steue
rungsrechts verwendete Zeit gespart und die Ausführung eines Programmes beschleunigt.
Der Bewertungsdaten-Speicherbereich 2a ist auch in der BPU 2 vorgesehen. Daher ist ein spezi
eller Speicher zum Vorsehen eines Bewertungsdaten-Speicherbereichs 2a nicht erforderlich.
Im folgenden wird als nächstes die zweite Ausführungsform gemäß der vorliegenden Erfindung
im Zusammenhang mit Fig. 4, 5 und 6 beschrieben. Bauteile, die im wesentlichen in gleicher
Weise wie bei der ersten Ausführungsform funktionieren, werden durch dieselben Bezugszei
chen bezeichnet, und lediglich Teile, die sich von der ersten Ausführungsform unterscheiden,
werden beschrieben. Während der Bewertungsdaten-Speicherbereich 2a bei der ersten Ausfüh
rungsform in der BPU 2 vorgesehen ist, ist der Bewertungsdaten-Speicherbereich 2a der vorlie
genden Erfindung in einem zweiten Speicher 6 vorgesehen, der über einen 1-Bit-Datenbus 6a
mit der BPU 2 und der CPU 3 verbunden ist, so daß die Bewertungsdaten ausgelesen werden
können.
Insbesondere ist der zweite Speicher 6 ein Speicher von 1 Bit Länge, der die Bewertungsdaten an
denselben Adressen speichert, an denen die entsprechenden Befehle in dem Speicher 1 gespei
chert werden. Der Wert 0 bei den Bewertungsdaten an einer Adresse zeigt an, daß der entspre
chende Anwendungsbefehl ein überspringbarer Befehl ist; Der Wert 1 bei den Bewertungsdaten
an einer Adresse zeigt an, daß der entsprechende Anwendungsbefehl kein überspringbarer Be
fehl ist.
Als nächstes wird der Betrieb der BPU 2 unter Bezug auf Fig. 5 beschrieben. Auf der Grundlage
von in dem Bewertungsdaten-Speicherbereich 2a, dem zweiten Speicher 6, gespeicherten Be
wertungsdaten stellt der Übersprungsdurchführbereich 2c in der BPU 2 fest, ob ein aktueller
Anwendungsbefehl ein überspringbarer Befehl ist oder nicht (Schritt S110). Der andere Teil des
Flußdiagramms in Fig. 5 entspricht dem Flußdiagramm der in Fig. 2 gezeigten ersten Ausfüh
rungsform.
Bei einer solchen oben beschriebenen programmierbaren Steuervorrichtung wird die Ausführung
eines Programms wie bei der ersten Ausführungsform beschleunigt. Außerdem ist ein Bewer
tungsdaten-Speicherbereich 2a in dem zweiten Speicher 6 vorgesehen, der mit der BPU 2 verbunden
ist und von dieser gelesen wird. Daher können die Bewertungsdaten ohne eine Ein
schränkung durch eine bestehende Anordnung gespeichert werden. Ferner kann die program
mierbare Steuervorrichtung kompakter aufgebaut sein, da der zweite Speicher 6 lediglich eine
Länge von 1 Bit aufweist.
Im folgenden wird als nächstes die dritte Ausführungsform gemäß der vorliegenden Erfindung
unter Bezug auf Fig. 7, 8 und 9a-9d beschrieben. Bauteile, die im wesentlichen in gleicher Wei
se wie bei der ersten Ausführungsform funktionieren, werden durch dieselben Bezugszeichen
bezeichnet, und lediglich Teile, die sich von der ersten Ausführungsform unterscheiden, werden
beschrieben. Während der Bewertungsdaten-Speicherbereich 2a bei der ersten Ausführungsform
in der BPU 2 vorgesehen ist, ist der Bewertungsdaten-Speicherbereich 2a bei der vorliegenden
Ausführungsform in dem Speicher 1 vorgesehen.
Insbesondere weist der Speicher 1 einen Befehlsspeicherbereich 1a, in dem Befehle erster und
zweiter Klasse gespeichert sind, und einen Bewertungsdaten-Speicherbereich 1b auf, in dem
Bewertungsdaten gespeichert sind. Der Bewertungsdaten-Speicherbereich 1b ist ein Adreßbe
reich, der größer als der unten beschriebene Verschiebungswert ist. Bewertungsdaten für jeden
Befehl werden ab der Adresse berechnet, an der der Befehl gespeichert ist.
Als nächstes wird ein Verfahren zur Entnahme von Bewertungsdaten für jeden Befehl unter Be
zug auf Fig. 8 und 9a-9d beschrieben. Als erstes entnimmt der Übersprungsdurchführbereich 2c
die oberen 12 Bits der Adresse, an der der Befehl gespeichert ist, und berechnet eine entspre
chende Adresse, indem er den Verschiebungswert addiert (Schritt S111). Wenn zum Beispiel,
wie in Fig. 9a gezeigt, ein Anwendungsbefehl an der Adresse 014Dh gespeichert ist, dann führt
die Addition des Verschiebungswerts 0500h zu den oberen 12 Bits der Adresse, wie in Fig. 9c
dargestellt, zu der entsprechenden Adresse 0514h.
Als nächstes liest der Übersprungsdurchführbereich 2c den Inhalt der entsprechenden Adresse
aus (Schritt S112) und entnimmt die Bewertungsdaten aus dem Inhalt auf der Grundlage des
Werts der unteren 4 Bits der Adresse des Anwendungsbefehls (Schritt S113). Bei dem oben be
schriebenen Beispiel beträgt der Wert der unteren 4 Bits der Adresse des Anwendungsbefehls Dh
= 1101b = 13d, wie in Fig. 9a gezeigt. Daher werden die Bewertungsdaten für den Anwendungs
befehl an der 13. Bitstelle an der berechneten entsprechenden Adresse 0514h gespeichert. Wenn
zum Beispiel der Inhalt an der entsprechenden Adresse 0514h, wie in Fig. 9d gezeigt,
0011000000000001b ist, dann ist das 13. Bit 1 das Bewertungsbit für den Befehl. Es wird darauf
hingewiesen, daß die Bitstellen, von der niedrigsten bis zur höchsten Stelle, an der 0. Stelle be
ginnen und an der 15. Stelle enden. In diesem Fall weisen die Bewertungsdaten für den Anwen
dungsbefehl den Wert 1 auf, so daß der bei 014Dh gespeicherte Anwendungsbefehl kein über
springbarer Befehl ist. Es ist klar, daß trotz dem Wert 1 an der 13. Bitstelle 16 Bewertungsda
tenwerte an derselben entsprechenden Adresse 0514h gespeichert werden.
Als nächstes wird der Betrieb der BPU 2 selbst und der darin vorgesehenen Übersprungsdurch
führbereich 2c unter Bezug auf Fig. 7 beschrieben. Die BPU 2 funktioniert in derselben Weise
wie bei der ersten Ausführungsform, außer, daß der Übersprungsdurchführbereich 2c die ent
sprechende Adresse berechnet, an der Bewertungsdaten für einen Befehl zweiter Klasse gespei
chert sind, wie oben beschrieben (Schritt S111), und auf der Grundlage der Bewertungsdaten, die
in dem Bewertungsdatenspeicherbereich 2a gespeichert sind, der in dem Speicher 1 vorgesehen
ist, feststellt, ob ein Anwendungsbefehl ein überspringbarer Befehl ist oder nicht (Schritte S112,
S113 und S114).
Bei einer derartigen oben beschriebenen programmierbaren Steuervorrichtung wird die Ausfüh
rung eines Programms wie bei der ersten Ausführungsform beschleunigt. Außerdem ist der Be
wertungsdatenspeicherbereich 2a in dem Ausgangsspeicher 1 vorgesehen, so daß zum Installie
ren des Bewertungsdatenspeicherbereichs 2a kein zusätzlicher Speicher vorgesehen werden muß.
Ferner sind Bewertungsdaten an entsprechenden Adressen gespeichert, die aus den Adressen
berechnet werden, an denen Befehle gespeichert sind, so daß der Speicherbereich flexibel be
stimmt werden kann. Ferner werden Bewertungsdaten für mehrere Befehle an einer Einzeladres
se gespeichert, so daß der Speicher 1 nicht groß sein muß.
Bei der ersten Ausführungsform ist der Bewertungsdatenspeicherbereich 2a eine Tabelle, die
Bewertungsdaten auflistet, die Adressen entsprechen, an denen Befehle gespeichert sind, und es
wird auf die Tabelle verwiesen, um festzustellen, ob ein Befehl zweiter Klasse nach einem Be
fehl erster Klasse ein überspringbarer Befehl ist. Verfahren zum Speichern der Bewertungsdaten
sind nicht auf die bei der ersten Ausführungsform beschriebenen beschränkt. Es ist ausreichend,
wenn es möglich ist, festzustellen, ob ein Befehl zweiter Klasse ein überspringbarer Befehl ist
oder nicht. Eine Tabelle, die die Klassen aller überspringbaren Befehlscodewörter auflistet, kann
in dem Bewertungsdaten-Speicherbereich 2a installiert sein. In diesem Fall stellt die BPU 2 fest,
ob ein auszuführender Befehl zweiter Klasse überspringbar ist oder nicht, indem in der Tabelle
nach dem Befehlscodewort gesucht wird.
Bei der zweiten Ausführungsform ist ein zweiter Speicher 6 sowohl mit der BPU 2 als auch mit
der CPU 3 verbunden, um durch diese ausgelesen zu werden. Der zweite Speicher 6 kann jedoch
auch nur mit der BPU 2 verbunden sein, um durch diese ausgelesen zu werden. Bei der zweiten
Ausführungsform entspricht der Bewertungsdatenspeicherbereich 2a außerdem dem zweiten
Speicher 6, er kann jedoch auch als Teil hiervon darin vorgesehen sein. Ferner weist bei der
zweiten Ausführungsform der zweite Speicher 2 eine Länge von 1 Bit auf, er kann jedoch auch
mehr als eine Länge von 1 Bit aufweisen, wenn der zweite Speicher 2 nicht zu groß ist.
Bei der dritten Ausführungsform sind die Bewertungsdaten an aus Adressen in dem Speicher 1
errechneten entsprechenden Adressen gespeichert, aber die Bewertungsdaten können auch an
unabhängigen Adressen gespeichert sein. Bei der dritten Ausführungsform sind außerdem Be
wertungsdaten für mehrere Befehle an einer einzelnen Adresse gespeichert, aber Bewertungsda
ten für verschiedene Befehle können auch an verschiedenen Adressen gespeichert werden, wenn
der Speicher 1 nicht zu groß ist.
Obwohl die vorliegende Erfindung zusammen mit ihren bevorzugten Ausführungsformen und
den beiliegenden Zeichnungen umfassend beschrieben wurde, wird darauf hingewiesen, daß für
Experten auf dem Gebiet verschiedene Änderungen und Modifikationen offenkundig sind. Der
artige Änderungen und Modifikationen sind im Schutzumfang der vorliegenden Erfindung ent
halten, wie er durch die beiliegenden Ansprüche definiert ist, es sei denn, sie weichen von diesen
ab.
Claims (10)
1. Programmierbare Steuervorrichtung mit:
einer Befehle erster Klasse ausführenden BPU (2), wenn ein Steuerungsrecht besteht,
einer Befehle zweiter Klasse ausführenden CPU (3), wenn ein Steuerungsrecht von der BPU (2) übertragen ist,
einem der BPU (2) und der CPU (3) gemeinsamen Speicher (1), der ein Programm speichert, das aus einer Kombination der Befehle erster Klasse und der Befehle zweiter Klasse besteht, wobei die Befehle zweiter Klasse überspringbare Befehle umfassen;
einem Bewertungsdaten-Speicherbereich (2a, 1b), der Bewertungsdaten speichert, um festzu stellen, ob ein aktueller Befehl der Befehle zweiter Klasse ein überspringbarer Befehl ist oder nicht; wobei die BPU (2)
einer Befehle erster Klasse ausführenden BPU (2), wenn ein Steuerungsrecht besteht,
einer Befehle zweiter Klasse ausführenden CPU (3), wenn ein Steuerungsrecht von der BPU (2) übertragen ist,
einem der BPU (2) und der CPU (3) gemeinsamen Speicher (1), der ein Programm speichert, das aus einer Kombination der Befehle erster Klasse und der Befehle zweiter Klasse besteht, wobei die Befehle zweiter Klasse überspringbare Befehle umfassen;
einem Bewertungsdaten-Speicherbereich (2a, 1b), der Bewertungsdaten speichert, um festzu stellen, ob ein aktueller Befehl der Befehle zweiter Klasse ein überspringbarer Befehl ist oder nicht; wobei die BPU (2)
- - einen Bit-Accumulator BACC aufweist, der ein aus der Ausführung des Befehls erster Klasse durch die BPU (2) erhaltenes Ausführungsergebnis des Befehls erster Klasse hält, sowie
- - einen Übersprungdurchführbereich (2c) aufweist, der auf der Grundlage der Bewertungs daten feststellt, ob das Ausführungsergebnis die Übersprungbedingung erfüllt oder nicht, und der feststellt, ob der aktuelle Befehl ein überspringbarer Befehl ist, wobei der Über sprungdurchführbereich (2c) den aktuellen Befehl überspringt, ohne das Steuerungsrecht zurück an die CPU zu übertragen, wenn festgestellt wird, daß das Ausführungsergebnis die Übersprungbedingung erfüllt und daß der aktuelle Befehl ein überspringbarer Befehl ist.
2. Programmierbare Steuervorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass der Be
wertungsdaten-Speicherbereich (2a, 1b) in der BPU (2) vorgesehen ist.
3. Programmierbare Steuervorrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der
Bewertungsdaten-Speicherbereich (2a, 1b) alle Bewertungsdaten an einer Adresse speichert, die
einer Adresse entspricht, an der einer der Befehle zweiter Klasse in dem Speicher (1) gespeichert
ist.
4. Programmierbare Steuervorrichtung nach einem der Ansprüche 1 bis 3, dadurch gekennzeich
net dass der Bewertungsdaten-Speicherbereich (2a, 1b) in einem zweiten Speicher (6) vorgese
hen ist, der mit der BPU (2) verbunden ist und von dieser gelesen wird.
5. Programmierbare Steuervorrichtung nach Anspruch 4, dadurch gekennzeichnet, dass der zweite
Speicher (6) eine Länge von einem Bit aufweist.
6. Programmierbare Steuervorrichtung nach Anspruch 4 oder 5, dadurch gekennzeichnet, dass der
zweite Speicher (6) alle Bewertungsdaten an einer Adresse speichert, die einer Adresse ent
spricht, an der einer der Befehle zweiter Klasse in dem Speicher gespeichert ist.
7. Programmierbare Steuervorrichtung nach Anspruch 4 oder 5, dadurch gekennzeichnet, dass der
zweite Speicher (6) alle Bewertungsdaten an einer Adresse speichert, die der Adresse ent
spricht, an der jeder der Befehle zweiter Klasse in dem Speicher gespeichert ist.
8. Programmierbare Steuervorrichtung nach einem der Ansprüche 1 bis 7, dadurch gekennzeich
net, dass der Bewertungsdaten-Speicherbereich (2a, 1b) in dem Speicher (1) vorgesehen ist.
9. Programmierbare Steuervorrichtung nach einem der Ansprüche 1 bis 8, dadurch gekennzeich
net, dass der Speicher (1) alle Bewertungsdaten an einer Adresse speichert, die aus einer Adres
se berechnet ist, an der einer der Befehle zweiter Klasse in dem Speicher (1) gespeichert ist.
10. Programmierbare Steuervorrichtung nach einem der Ansprüche 1 bis 9, dadurch gekennzeich
net, dass der Speicher (1) mehrere Daten der Bewertungsdaten an einer einzelnen Adresse spei
chert.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9041909A JPH10240522A (ja) | 1997-02-26 | 1997-02-26 | 演算装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE19807358A1 DE19807358A1 (de) | 1998-09-03 |
| DE19807358C2 true DE19807358C2 (de) | 2001-07-12 |
Family
ID=12621418
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE19807358A Expired - Fee Related DE19807358C2 (de) | 1997-02-26 | 1998-02-21 | Programmierbare Steuervorrichtung mit einem Überspringungsprozessorteil ohne Rückübertragung des Steuerungsrechts an die CPU |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US6094718A (de) |
| JP (1) | JPH10240522A (de) |
| KR (1) | KR100280124B1 (de) |
| CN (1) | CN1096026C (de) |
| DE (1) | DE19807358C2 (de) |
| IT (1) | ITTO980144A1 (de) |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE10156394A1 (de) * | 2001-11-16 | 2003-06-12 | Giesecke & Devrient Gmbh | Kontrollierte Programmausführung durch einen tragbaren Datenträger |
| US7278122B2 (en) * | 2004-06-24 | 2007-10-02 | Ftl Systems, Inc. | Hardware/software design tool and language specification mechanism enabling efficient technology retargeting and optimization |
| US7272453B2 (en) | 2004-11-30 | 2007-09-18 | Air Products And Chemicals, Inc. | Method and apparatus for utilizing a sequence interpreter approach to control logic of a programmable logic controller |
| JPWO2009119021A1 (ja) * | 2008-03-28 | 2011-07-21 | パナソニック株式会社 | 命令実行制御方法、命令フォーマット、及びプロセッサ |
| US9519482B2 (en) * | 2014-06-20 | 2016-12-13 | Netronome Systems, Inc. | Efficient conditional instruction having companion load predicate bits instruction |
| US9830153B2 (en) * | 2014-06-20 | 2017-11-28 | Netronome Systems, Inc. | Skip instruction to skip a number of instructions on a predicate |
| US11663001B2 (en) * | 2018-11-19 | 2023-05-30 | Advanced Micro Devices, Inc. | Family of lossy sparse load SIMD instructions |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH03237502A (ja) * | 1990-02-14 | 1991-10-23 | Yokogawa Electric Corp | プログラマブル・コントローラ |
| US5517436A (en) * | 1994-06-07 | 1996-05-14 | Andreas; David C. | Digital signal processor for audio applications |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3577190A (en) * | 1968-06-26 | 1971-05-04 | Ibm | Apparatus in a digital computer for allowing the skipping of predetermined instructions in a sequence of instructions, in response to the occurrence of certain conditions |
| GB2232514B (en) * | 1989-04-24 | 1993-09-01 | Yokogawa Electric Corp | Programmable controller |
| GB2244828B (en) * | 1989-04-24 | 1993-09-01 | Yokogawa Electric Corp | Programmable controller |
| US5440724A (en) * | 1993-06-17 | 1995-08-08 | Bull Hn Information Systems Inc. | Central processing unit using dual basic processing units and combined result bus and incorporating means for obtaining access to internal BPU test signals |
| US5704052A (en) * | 1994-11-06 | 1997-12-30 | Unisys Corporation | Bit processing unit for performing complex logical operations within a single clock cycle |
-
1997
- 1997-02-26 JP JP9041909A patent/JPH10240522A/ja active Pending
-
1998
- 1998-02-19 US US09/026,341 patent/US6094718A/en not_active Expired - Fee Related
- 1998-02-21 DE DE19807358A patent/DE19807358C2/de not_active Expired - Fee Related
- 1998-02-25 IT IT98TO000144A patent/ITTO980144A1/it unknown
- 1998-02-25 KR KR1019980005962A patent/KR100280124B1/ko not_active Expired - Fee Related
- 1998-02-26 CN CN98105374A patent/CN1096026C/zh not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH03237502A (ja) * | 1990-02-14 | 1991-10-23 | Yokogawa Electric Corp | プログラマブル・コントローラ |
| US5517436A (en) * | 1994-06-07 | 1996-05-14 | Andreas; David C. | Digital signal processor for audio applications |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH10240522A (ja) | 1998-09-11 |
| KR100280124B1 (ko) | 2001-02-01 |
| US6094718A (en) | 2000-07-25 |
| CN1193142A (zh) | 1998-09-16 |
| CN1096026C (zh) | 2002-12-11 |
| ITTO980144A1 (it) | 1999-08-25 |
| KR19980071707A (ko) | 1998-10-26 |
| DE19807358A1 (de) | 1998-09-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE3587034T2 (de) | Verfahren und einrichtung zur steuerung automatischer geraete. | |
| DE2839726C2 (de) | Multiprozessoranlage mit verteilter Steuerarchitektur | |
| DE69738188T2 (de) | Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor | |
| DE3911465C2 (de) | Verfahren zur automatischen Konfiguration technischer Systeme aus Komponenten | |
| DE69331292T2 (de) | Elektronisches Gerät und Verfahren zur festen Informationsmodifikation | |
| DE3732808A1 (de) | Verfahren und vorrichtung zum erzeugen und bearbeiten von unterbrechungspunkten in einem monitorprogramm | |
| DE69119930T2 (de) | Vorrichtung zur Programmierung einer speicherprogrammierbaren Steuerung und Verfahren zum Gebrauch der Ablaufplantechnik | |
| DE2713253A1 (de) | Programmlader fuer ein steuergeraet | |
| DE69908446T2 (de) | Programmfehlerbeseitigung | |
| DE4334294C1 (de) | Prozessor für Zeichenketten variabler Länge | |
| DE3850444T2 (de) | Progammverwaltungsverfahren für verteilte Verarbeitungssysteme und angepasste Vorrichtung. | |
| DE2936915A1 (de) | Verfahren und vorrichtung zur steuerung einer ablaufanzeige | |
| DE19807358C2 (de) | Programmierbare Steuervorrichtung mit einem Überspringungsprozessorteil ohne Rückübertragung des Steuerungsrechts an die CPU | |
| DE19957594B4 (de) | Verfahren zum Synchronisieren von threads eines Computerprogramms | |
| DE2935101C2 (de) | ||
| DE60217729T2 (de) | Verfahren zum erkennen eines elektronischen geräts in einem mehrfachsteuersystem | |
| DE69712687T2 (de) | Sprachbearbeitende Einheit und Verfahren zur Übersetzung eines Quellprogrammes in einer Objektmoduldatei | |
| DE2245284A1 (de) | Datenverarbeitungsanlage | |
| EP0010135B1 (de) | Mikroprogrammgesteuerte Ein-/Ausgabeeinrichtung und Verfahren zum Durchführen von Ein-/Ausgabeoperationen | |
| EP0990964A1 (de) | Verfahren zum Betrieb eines Automatisierungssystems | |
| DE3587056T2 (de) | Vorrichtung mit modularer bauweise. | |
| EP0760502B1 (de) | Ordnungsverfahren für Zugehörigkeitsfunktionswerte linguistischer Eingangswerte in einem Fuzzy-Logic-Prozessor und Anordnung zu deren Durchführung | |
| DE3751566T2 (de) | Anzeigeverfahren in einem Unterstützungssystem zur Software-Entwicklung. | |
| DE2932394A1 (de) | Intelligente, programmierbare prozessteueranordnung | |
| DE3242631C2 (de) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| OP8 | Request for examination as to paragraph 44 patent law | ||
| D2 | Grant after examination | ||
| 8364 | No opposition during term of opposition | ||
| 8320 | Willingness to grant licences declared (paragraph 23) | ||
| R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |
Effective date: 20120901 |