DE19807358A1 - 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
- DE19807358A1 DE19807358A1 DE19807358A DE19807358A DE19807358A1 DE 19807358 A1 DE19807358 A1 DE 19807358A1 DE 19807358 A DE19807358 A DE 19807358A DE 19807358 A DE19807358 A DE 19807358A DE 19807358 A1 DE19807358 A1 DE 19807358A1
- Authority
- DE
- Germany
- Prior art keywords
- evaluation data
- class
- memory
- command
- address
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 10
- 238000011156 evaluation Methods 0.000 claims description 75
- 238000013500 data storage Methods 0.000 claims description 30
- OCUSNPIJIZCRSZ-ZTZWCFDHSA-N (2s)-2-amino-3-methylbutanoic acid;(2s)-2-amino-4-methylpentanoic acid;(2s,3s)-2-amino-3-methylpentanoic acid Chemical compound CC(C)[C@H](N)C(O)=O.CC[C@H](C)[C@H](N)C(O)=O.CC(C)C[C@H](N)C(O)=O OCUSNPIJIZCRSZ-ZTZWCFDHSA-N 0.000 description 69
- 238000000034 method Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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
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 verwendet. Im folgenden wird auf die programmierbare
Steuervorrichtung in Fig. 10 Bezug genommen, wobei eine Bitverarbeitungseinheit (im folgen
den 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üh
rung 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ön
nen, wenn der vorhergehende Befehl ein Befehl erster Klasse ist und eine gewisse Übersprung
bedingung 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ührungsergeb
nis 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 Steue
rungsrechtes behindert.
Grundlegende Aufgabe der vorliegenden Erfindung ist es daher, eine programmierbare Steuer
vorrichtung vorzusehen, die schnelle Ausführungen ermöglicht. Eine speziellere Aufgabe der
vorliegenden Erfindung ist es, eine programmierbare Steuervorrichtung vorzusehen, die die
schnelle Ausführung überspringbarer Befehle ermöglicht.
Die Aufgaben der vorliegenden Erfindung werden durch die Merkmale von Anspruch 1 erfüllt.
Zur Lösung der oben genannten Aufgaben ist nach einem Aspekt der vorliegenden Erfindung
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 auf
weist, 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 Übersprungbedin
gung 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 vorbestimm
ten Länge ausgeführt werden, wie zum Beispiel Wörter, Doppelwörter und ähnliches. Die pro
grammierbare Steuervorrichtung weist einen Bewertungsdaten-Speicherbereich, der Bewer
tungsdaten 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. Wenn die Bewertung ergibt, daß das Ausfüh
rungsergebnis den Überspringungszustand rechtfertigt, dann stellt der Übersprungsdurchführbe
reich 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 über
springbarer Befehl ist, dann überspringt der Übersprungsdurchführbereich den aktuellen Befehl,
ohne das Steuerungsrecht an die CPU zu übertragen.
Der Bewertungsdaten-Speicherbereich speichert die Bewertungsdaten, mit denen der Über
sprungsdurchfü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 Bewer
tungsdaten-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 Be
wertungsdaten-Speicherbereich vorgesehen ist. Bei einer weiteren Variante kann ein freier Spei
cherbereich 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 über
springbarer Befehl ist oder nicht.
Der Übersprungsdurchführbereich stellt auf der Grundlage der Bewertungsdaten und des Aus
führungsergebnisses fest, ob ein Befehl ein überspringbarer Befehl ist oder nicht und ob der Be
fehl tatsächlich übersprungen werden kann oder nicht. Wenn der Übersprungsdurchführbereich
feststellt, daß ein Befehl tatsächlich übersprungen werden kann, dann überspringt der Über
sprungsdurchfü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.
Diese und weitere Aufgaben und Ziele 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 HEI9-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 da
her 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
fehlist.
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 ver
bunden 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 (11)
1. Programmierbare Steuervorrichtung mit:
einer Befehle erster Klasse ausführenden BPU (2);
einer Befehle zweiter Klasse ausführenden CPU (3);
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, die übersprungen wer den können, wenn ein Ausführungsergebnis eines vorhergehenden Befehls der Befehle erster Klasse eine vorbestimmte Übersprungbedingung erfüllt;
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; und
einem Übersprungsdurchführbereich (2c), der auf der Grundlage der Bewertungsdaten fest stellt, ob das Verarbeitungsergebnis die Übersprungbedingung erfüllt oder nicht, und der feststellt, ob der aktuelle Befehl ein überspringbarer Befehl ist, wobei der Übersprungsdurch führbereich (2c) den aktuellen Befehl überspringt, ohne das Steuerungsrecht zurück an die CPU zu übertragen, wenn festgestellt wird, daß das Ausführungsergebnis die Übersprungbe dingung erfüllt und daß der aktuelle Befehl ein überspringbarer Befehl ist.
einer Befehle erster Klasse ausführenden BPU (2);
einer Befehle zweiter Klasse ausführenden CPU (3);
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, die übersprungen wer den können, wenn ein Ausführungsergebnis eines vorhergehenden Befehls der Befehle erster Klasse eine vorbestimmte Übersprungbedingung erfüllt;
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; und
einem Übersprungsdurchführbereich (2c), der auf der Grundlage der Bewertungsdaten fest stellt, ob das Verarbeitungsergebnis die Übersprungbedingung erfüllt oder nicht, und der feststellt, ob der aktuelle Befehl ein überspringbarer Befehl ist, wobei der Übersprungsdurch führbereich (2c) den aktuellen Befehl überspringt, ohne das Steuerungsrecht zurück an die CPU zu übertragen, wenn festgestellt wird, daß das Ausführungsergebnis die Übersprungbe dingung erfüllt und daß der aktuelle Befehl ein überspringbarer Befehl ist.
2. Programmierbare Steuervorrichtung nach Anspruch 1, wobei der Übersprungsdurchführbe
reich (2c) in der BPU (2) vorgesehen ist.
3. Programmierbare Steuervorrichtung nach Anspruch 2, wobei der Bewertungsdaten-
Speicherbereich (2a, 1b) in der BPU (2) vorgesehen ist.
4. Programmierbare Steuervorrichtung nach Anspruch 3, wobei 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.
5. Programmierbare Steuervorrichtung nach Anspruch 2, wobei der Bewertungsdaten-
Speicherbereich (2a, 1b) in einem zweiten Speicher (6) vorgesehen ist, der mit der BPU (2)
verbunden ist und von dieser gelesen wird.
6. Programmierbare Steuervorrichtung nach Anspruch 5, wobei der zweite Speicher (6) eine
Länge von 1 Bit aufweist.
7. Programmierbare Steuervorrichtung nach Anspruch 5, wobei der zweite Speicher (6) alle
Bewertungsdaten an einer Adresse speichert, die einer Adresse entspricht, an der einer der
Befehle zweiter Klasse in dem Speicher gespeichert ist.
8. Programmierbare Steuervorrichtung nach Anspruch 6, wobei der zweite Speicher (6) alle
Bewertungsdaten an einer Adresse speichert, die der Adresse entspricht, an der jeder der Be
fehle zweiter Klasse in dem Speicher gespeichert ist.
9. Programmierbare Steuervorrichtung nach Anspruch 2, wobei der Bewertungsdaten-
Speicherbereich (2a, 1b) in dem Speicher (1) vorgesehen ist.
10. Programmierbare Steuervorrichtung nach Anspruch 9, wobei der Speicher (I) alle Bewer
tungsdaten an einer Adresse speichert, die aus einer Adresse berechnet ist, an der einer der
Befehle zweiter Klasse in dem Speicher (1) gespeichert ist.
11. Programmierbare Steuervorrichtung nach Anspruch 9 oder 10, wobei der Speicher (I) meh
rere Daten der Bewertungsdaten an einer einzelnen Adresse speichert.
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 true DE19807358A1 (de) | 1998-09-03 |
DE19807358C2 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 | パナソニック株式会社 | 命令実行制御方法、命令フォーマット、及びプロセッサ |
US9830153B2 (en) * | 2014-06-20 | 2017-11-28 | Netronome Systems, Inc. | Skip instruction to skip a number of instructions on a predicate |
US9519482B2 (en) * | 2014-06-20 | 2016-12-13 | Netronome Systems, Inc. | Efficient conditional instruction having companion load predicate bits instruction |
US11663001B2 (en) * | 2018-11-19 | 2023-05-30 | Advanced Micro Devices, Inc. | Family of lossy sparse load SIMD instructions |
Family Cites Families (7)
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 |
JPH03237502A (ja) * | 1990-02-14 | 1991-10-23 | Yokogawa Electric Corp | プログラマブル・コントローラ |
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 |
US5517436A (en) * | 1994-06-07 | 1996-05-14 | Andreas; David C. | Digital signal processor for audio applications |
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 IP Right Cessation
- 1998-02-26 CN CN98105374A patent/CN1096026C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1096026C (zh) | 2002-12-11 |
CN1193142A (zh) | 1998-09-16 |
ITTO980144A1 (it) | 1999-08-25 |
DE19807358C2 (de) | 2001-07-12 |
US6094718A (en) | 2000-07-25 |
KR19980071707A (ko) | 1998-10-26 |
KR100280124B1 (ko) | 2001-02-01 |
JPH10240522A (ja) | 1998-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1330685B1 (de) | Prüfverfahren und prüfvorrichtung zur inbetriebnahme von mittels einer programmlogik gesteuerten systemen | |
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 | |
DE3732808A1 (de) | Verfahren und vorrichtung zum erzeugen und bearbeiten von unterbrechungspunkten in einem monitorprogramm | |
DE19855806A1 (de) | Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen | |
DE2753062A1 (de) | Einrichtung zur durchfuehrung programmierter befehle | |
DE4305442A1 (de) | Vorrichtung zum Testen eines elektronischen Gerätes | |
DE2713253A1 (de) | Programmlader fuer ein steuergeraet | |
DE2936915A1 (de) | Verfahren und vorrichtung zur steuerung einer ablaufanzeige | |
WO1995010803A1 (de) | Prozessor für zeichenketten variabler länge | |
DE19807358C2 (de) | Programmierbare Steuervorrichtung mit einem Überspringungsprozessorteil ohne Rückübertragung des Steuerungsrechts an die CPU | |
DE3507584C2 (de) | ||
DE102016006202B4 (de) | Numerische Steuervorrichtung zum Verwalten von Bearbeitungsdaten und Bearbeitungsergebnissen | |
DE4135347A1 (de) | Verfahren und system zum aufrufen eines verfahrens in objektorientierter sprache | |
DE60217729T2 (de) | Verfahren zum erkennen eines elektronischen geräts in einem mehrfachsteuersystem | |
DE2725614C2 (de) | ||
DE2245284A1 (de) | Datenverarbeitungsanlage | |
DE10148109B4 (de) | Verfahren zum Speichern oder Weiterleiten von Daten | |
EP0990964A1 (de) | Verfahren zum Betrieb eines Automatisierungssystems | |
EP0010135B1 (de) | Mikroprogrammgesteuerte Ein-/Ausgabeeinrichtung und Verfahren zum Durchführen von Ein-/Ausgabeoperationen | |
DE2264184C3 (de) | Elektrischer Tischrechner | |
DE3242631C2 (de) | ||
WO2000038049A1 (de) | Verfahren und anordnung zur erzeugung und ausführung von komprimierten programmen eines vliw-prozessors | |
DE10065498A1 (de) | Verfahren und Vorrichtung zur Rekonstruktion des Prozessablaufs eines Steuerprogramms | |
DE2622140C3 (de) | Einrichtung zur Steuerung manueller Operationen |
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 |