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 CPU

Info

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
Application number
DE19807358A
Other languages
English (en)
Other versions
DE19807358C2 (de
Inventor
Youichi Tanaka
Futoshi Nakai
Tatsuo Masuda
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Works Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Works Ltd filed Critical Matsushita Electric Works Ltd
Publication of DE19807358A1 publication Critical patent/DE19807358A1/de
Application granted granted Critical
Publication of DE19807358C2 publication Critical patent/DE19807358C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30069Instruction 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.
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.
DE19807358A 1997-02-26 1998-02-21 Programmierbare Steuervorrichtung mit einem Überspringungsprozessorteil ohne Rückübertragung des Steuerungsrechts an die CPU Expired - Fee Related DE19807358C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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