DE102018220851A1 - control unit - Google Patents

control unit Download PDF

Info

Publication number
DE102018220851A1
DE102018220851A1 DE102018220851.4A DE102018220851A DE102018220851A1 DE 102018220851 A1 DE102018220851 A1 DE 102018220851A1 DE 102018220851 A DE102018220851 A DE 102018220851A DE 102018220851 A1 DE102018220851 A1 DE 102018220851A1
Authority
DE
Germany
Prior art keywords
instruction
calculation
determined
division
multiplication
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.)
Pending
Application number
DE102018220851.4A
Other languages
German (de)
Inventor
Eiji Matsuoka
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.)
Denso Corp
Original Assignee
Denso Corp
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 Denso Corp filed Critical Denso Corp
Publication of DE102018220851A1 publication Critical patent/DE102018220851A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4873Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

Eine Steuereinheit (20A, 20B) beinhaltet einen Berechnungsbestimmungsabschnitt (S120, S220) und einen Anweisungsausführungsabschnitt (S130, S150, S200, S250, S260, S310). Der Berechnungsbestimmungsabschnitt ist dazu konfiguriert, ein Vorhandensein oder Fehlen einer als eine Berechnungsanweisung definierten bestimmten Divisionsanweisung zu bestimmen, die eine Division durchführt, die mittels einer eine Gleitkomma-Berechnung 0 durch 0 durch teilt. Der Anweisungsausführungsabschnitt ist dazu konfiguriert, dann, wenn das Vorhandensein der bestimmten Divisionsanweisung ermittelt wird, eine als eine Berechnungsanweisung definierte bestimmte Multiplikationsanweisung zu erzeugen, die eine Multiplikation durchführt, die 0 und 0 miteinander multipliziert, während sie ein Vorzeichen jedes Werts berücksichtigt, der in der bestimmten Divisionsanweisung enthalten ist, und die bestimmte Multiplikationsanweisung anstelle der bestimmten Divisionsanweisung auszuführen.

Figure DE102018220851A1_0000
A control unit (20A, 20B) includes a calculation determination section (S120, S220) and an instruction execution section (S130, S150, S200, S250, S260, S310). The calculation determination section is configured to determine a presence or absence of a specific division instruction defined as a calculation instruction, which performs division that divides by 0 a floating point calculation 0. The instruction execution section is configured to, when the presence of the particular division instruction is detected, generate a certain multiplication instruction defined as a calculation instruction, which performs multiplication that multiplies 0 and 0 with each other while taking into account a sign of each value included in the calculation certain division instruction is included, and execute the specific multiplication instruction instead of the specific division instruction.
Figure DE102018220851A1_0000

Description

TECHNISCHES GEBIETTECHNICAL AREA

Die Erfindung betrifft eine Steuereinheit, die an einem Fahrzeug montiert ist und Gleitkomma-Berechnungen ausführen kann.The invention relates to a control unit which is mounted on a vehicle and can perform floating-point calculations.

STAND DER TECHNIKSTATE OF THE ART

Eine Patentliteratur 1 schlägt eine Technik in einer Steuereinheit vor, die eine Gleitkomma-Berechnung durchführt; die Technik besteht darin, Daten steuerblockweise zu initialisieren, um die Ausbreitung eines NaN (Not a Number) zu unterdrücken, falls ein solches NaN durch die Gleitkomma-Berechnung erzeugt wird.Patent Literature 1 proposes a technique in a control unit which performs a floating-point calculation; the technique is to initialize data in a block-by-block manner to suppress the propagation of a NaN (Not a Number), if such a NaN is generated by floating point computation.

Patentliteratur 1: JP 5379712 B2 Patent Literature 1: JP 5379712 B2

KURZBESCHREIBUNGSUMMARY

Der Erfinder, der die obige Technik im Einzelnen untersucht hat, hat jedoch das folgende Problem festgestellt. Das heißt, die Konfiguration, die Daten steuerblockweise initialisiert, initialisiert auch Daten, die nicht initialisiert werden müssen, und führt eine Neuberechnung durch. Die Verarbeitungsleistung kann beeinträchtigt werden, z.B. durch eine Verzögerung der Verarbeitung.However, the inventor who studied the above technique in detail has found the following problem. That is, the configuration that initializes data block-by-block also initializes data that does not need to be initialized and recalculates. The processing power may be impaired, e.g. by delaying the processing.

Der Erfindung liegt als eine Aufgabe zugrunde, eine Technik zur Unterdrückung einer Verschlechterung der Verarbeitungsleistung bereitzustellen, wenn ein NaN (Not a Number) in einer Steuereinheit erzeugt wird, die an einem Fahrzeug montiert ist und eine Gleitkomma-Berechnung ausführen kann.It is an object of the invention to provide a technique for suppressing deterioration of processing performance when a NaN (Not a Number) is generated in a control unit mounted on a vehicle and capable of performing a floating point calculation.

In Übereinstimmung mit einem Beispiel der Erfindung wird eine Steuereinheit bereitgestellt, die einen Berechnungsbestimmungsabschnitt und einen Anweisungsausführungsabschnitt beinhaltet. Der Berechnungsbestimmungsabschnitt ist dazu konfiguriert, ein Vorhandensein oder Fehlen einer bestimmten Divisionsanweisung zu bestimmen, die eine Berechnungsanweisung zum Teilen von 0 (Null) durch 0 (Null) mittels einer Gleitkomma-Berechnung ist.In accordance with an example of the invention, a control unit including a calculation determination section and an instruction execution section is provided. The calculation determining section is configured to determine a presence or absence of a specific division instruction that is a calculation instruction for dividing 0 (zero) by 0 (zero) by a floating point calculation.

Wenn das Vorhandensein der Divisionsanweisung bestimmt bzw. ermittelt wird, ist der Anweisungsausführungsabschnitt dazu konfiguriert, eine bestimmte Multiplikationsanweisung zu erzeugen, die eine Berechnungsanweisung ist, 0 (Null) und 0 (Null) miteinander zu multiplizieren, wobei das Vorzeichen jedes Werts, der in der bestimmten Divisionsanweisung enthalten ist, berücksichtigt wird, und dazu konfiguriert ist, die bestimmte Multiplikationsanweisung anstelle der bestimmten Divisionsanweisung auszuführen.When the presence of the division instruction is determined, the instruction execution section is configured to generate a certain multiplication instruction that is a computation instruction to multiply 0 (zero) and 0 (zero) with each other, the sign of each value included in the certain division instruction is taken into account and configured to execute the determined multiplication instruction instead of the particular division instruction.

Eine solche Konfiguration kann anstelle einer Divisionsanweisung, die eine Berechnungsanweisung zum Teilen von 0 durch 0 ist, eine Multiplikationsanweisung unter Berücksichtigung des Vorzeichens ausführen. Dieses kann die Ausbreitung eines NaN unterdrücken und gleichzeitig die Verschlechterung der Verarbeitungsleistung unterdrücken, die auftreten kann, wenn eine Berechnung unter Verwendung eines vorbestimmten Werts als ein Substitut für das NaN durchgeführt wird.Such a configuration may execute a multiplication instruction in consideration of the sign instead of a division instruction which is a calculation instruction for dividing 0 by 0. This can suppress the propagation of a NaN while suppressing the deterioration of the processing performance that can occur when a calculation is performed using a predetermined value as a substitute for the NaN.

Es wird angemerkt, dass die in Klammern in „ANSPRÜCHEN“ wiedergegebenen Bezugszeichen lediglich die Entsprechung mit den spezifischen Bestandteil bildenden Elementen anzeigen, die in dem/den Ausführungsbeispiel(en) beschrieben sind. Das heißt, die Bezugszeichen schränken den technischen Schutzumfang der Erfindung nicht notwendigerweise ein.It is noted that the reference numerals shown in parentheses in "CLAIMS" merely indicate the correspondence with the specific constituent elements described in the embodiment (s). That is, the reference numerals do not necessarily limit the technical scope of the invention.

Figurenlistelist of figures

Die vorstehenden sowie andere Ziele, Merkmale und Vorteile der Erfindung werden aus der folgenden detaillierten Beschreibung unter Bezugnahme auf die beigefügten Zeichnungen besser ersichtlich. Es zeigen:

  • 1 ein Blockdiagramm, das eine Konfiguration eines elektronischen Steuerungssystems zeigt;
  • 2 ein schematisches Diagramm, das ein Konfigurationsbeispiel einer Registergruppe und eines RAM zeigt;
  • 3 ein Ablaufdiagramm eines Anweisungsausführungsprozesses, der von einem Berechnungsteil ausgeführt wird;
  • 4 ein Ablaufdiagramm, das einen Ausnahmeprozess in einem Anweisungsausführungsprozess zeigt;
  • 5 ein schematisches Diagramm, das ein Beispiel einer Anweisung zeigt, die in einem Anweisungsausführungsprozess erhalten wurde;
  • 6 ein erklärendes Diagramm, das ein Beispiel eines erzeugten Unterprogramms zeigt; und
  • 7 ein Diagramm einer Tabelle, das Eingangs- und Ausgangsbeispiele mittels einer ungültigen Berechnung zeigt.
The foregoing and other objects, features and advantages of the invention will become more apparent from the following detailed description made with reference to the accompanying drawings. Show it:
  • 1 a block diagram showing a configuration of an electronic control system;
  • 2 a schematic diagram showing a configuration example of a register group and a RAM;
  • 3 a flowchart of an instruction execution process, which is executed by a calculation part;
  • 4 Fig. 10 is a flowchart showing an exception process in an instruction execution process;
  • 5 Fig. 10 is a schematic diagram showing an example of an instruction obtained in an instruction execution process;
  • 6 an explanatory diagram showing an example of a generated subroutine; and
  • 7 a diagram of a table showing input and output examples by means of an invalid calculation.

DETAILLIERTE BESCHREIBUNGDETAILED DESCRIPTION

Nachstehend werden Ausführungsbeispiele der Erfindung unter Bezugnahme auf die Zeichnungen beschrieben.Hereinafter, embodiments of the invention will be described with reference to the drawings.

[Erstes Ausführungsbeispiel] [First Embodiment]

[Konfiguration][Configuration]

1 ist ein Blockdiagramm, das eine Konfiguration eines elektronischen Steuerungssystems 1 zeigt, auf das die vorliegende Erfindung angewendet wird. Das elektronische Steuerungssystem 1 beinhaltet eine elektronische Steuereinheit 5. Das elektronische Steuerungssystem 1 kann einen Kurbelwinkelsensor 31 und einen Injektor 32 beinhalten. 1 FIG. 10 is a block diagram showing a configuration of an electronic control system. FIG 1 shows, to which the present invention is applied. The electronic control system 1 includes an electronic control unit 5 , The electronic control system 1 can be a crank angle sensor 31 and an injector 32 include.

Die elektronische Steuereinheit 5 beinhaltet einen Mikrocomputer 10 und eine Eingangs- und Ausgangsschaltung 7. Der Mikrocomputer 10 beinhaltet eine Vielzahl von Berechnungsteilen 20A und 20B, ein ROM 12, ein RAM 13 und einen Schnittstellenteil 15. Das ROM 12 und das RAM 13, die gut bekannte Speicher sind, sind beispielsweise als Halbleiterspeicher konfiguriert. Es wird angemerkt, dass die Eingangs- und Ausgangsschaltung 7, die eine gut bekannte Schnittstellenschaltung zum Austauschen von Daten zwischen der elektronischen Steuereinheit 5 und einer externen Einheit ist, Daten zwischen der Außenseite und der Innenseite des Mikrocomputers 10 über einen gut bekannten Schnittstellenteil 15, der in der Zeichnung als I/F bezeichnet ist, austauscht. Ferner stellt das vorliegende Ausführungsbeispiel ein Beispiel mit zwei Berechnungsteilen 20A und 20B bereit; die Anzahl von Berechnungsteilen kann jedoch ein oder drei oder mehr anstelle von zwei sein.The electronic control unit 5 includes a microcomputer 10 and an input and output circuit 7 , The microcomputer 10 includes a variety of calculation parts 20A and 20B , a ROM 12 , a ram 13 and an interface part 15 , The ROM 12 and the RAM 13 , which are well-known memory, are configured, for example, as a semiconductor memory. It is noted that the input and output circuit 7 , which is a well-known interface circuit for exchanging data between the electronic control unit 5 and an external unit, data between the outside and the inside of the microcomputer 10 over a well known interface part 15 , which is referred to as I / F in the drawing, exchanges. Further, the present embodiment provides an example with two calculation parts 20A and 20B ready; however, the number of calculation parts may be one or three or more instead of two.

Die Berechnungsteile 20A und 20B haben identische Hardwarekonfigurationen und beinhalten CPUs 21A und 21B, FPUs (Floating Point Units) 22A und 22B sowie Registergruppen 23A und 23B. Die Funktionen der Berechnungsteile 20A und 20B werden von den CPUs 21A und 21B und den FPUs 22A und 22B realisiert, die die in nichtflüchtigen Speichern gespeicherten Programme ausführen. In diesem Beispiel entsprechen das ROM 12 und das RAM 13 jeweils einem nichtflüchtigen Speicher, der ein Programm speichert. Darüber hinaus wird ein solches Programm ausgeführt, um dadurch ein dem Programm entsprechendes Verfahren auszuführen. Ferner kann die elektronische Steuereinheit 5 einen Mikrocomputer oder eine Vielzahl von Mikrocomputern beinhalten.The calculation parts 20A and 20B have identical hardware configurations and include CPUs 21A and 21B , FPUs (Floating Point Units) 22A and 22B as well as register groups 23A and 23B , The functions of the calculation parts 20A and 20B be from the CPUs 21A and 21B and the FPUs 22A and 22B realized executing the programs stored in nonvolatile memories. In this example, this corresponds to the ROM 12 and the RAM 13 each non-volatile memory storing a program. Moreover, such a program is executed to thereby execute a procedure corresponding to the program. Furthermore, the electronic control unit 5 include a microcomputer or a plurality of microcomputers.

Die CPUs 21A und 21B haben jeweils eine gut bekannte Konfiguration zum Ausführen eines vorgegebenen Programms in Übereinstimmung mit einer vorbestimmten Berechnungsreihenfolge und können eine Unterbrechung bzw. einen Interrupt verarbeiten. Die CPUs 21A und 21B haben beispielsweise jeweils eine Funktion des Ausführens eines Anweisungsausführungsprozesses, der später als Teil der Funktion durch Ausführen des Programms beschrieben wird.The CPUs 21A and 21B Each has a well-known configuration for executing a predetermined program in accordance with a predetermined calculation order and can process an interrupt. The CPUs 21A and 21B For example, each has a function of executing an instruction execution process that will be described later as part of the function by executing the program.

Die Technik des Realisierens der Funktionen der jeweiligen Abschnitte, die in der CPU 21A und 21B enthalten sind, ist nicht auf Software beschränkt, und ein Teil oder alle der Funktionen derselben können mittels Hardware realisiert sein, wie beispielsweise unter Verwendung eines oder mehrerer Hardwareabschnitte oder Schaltungen. Beispielsweise kann eine elektronische Schaltung, die die Funktion auf Hardwarebasis realisiert, als eine digitale Schaltung, eine analoge Schaltung oder eine Kombination derselben bereitgestellt sein.The technique of realizing the functions of the respective sections in the CPU 21A and 21B are not limited to software, and some or all of their functions may be implemented by hardware, such as using one or more pieces of hardware or circuitry. For example, an electronic circuit that realizes the hardware-based function may be provided as a digital circuit, an analog circuit, or a combination thereof.

Die Registergruppen 23A und 23B zeichnen die Berechnungsergebnisse und dergleichen durch die CPUs 21A und 21B temporär auf. Wie in 2 beispielhaft gezeigt ist, weisen die Registergruppen 23A und 23B jeweils Datenaufzeichnungsbereiche von R0 bis R31 zum Aufzeichnen von Berechnungsergebnissen vorbestimmter Variablen auf. Die Datenaufzeichnungsbereiche sichern jeweils einen Speicherbereich für Gleitkomma-Daten.The register groups 23A and 23B draw the calculation results and the like by the CPUs 21A and 21B temporarily on. As in 2 is shown by way of example, have the register groups 23A and 23B each data recording areas of R0 to R31 for recording calculation results of predetermined variables. The data recording areas each save a storage area for floating point data.

Der Kurbelwinkelsensor 31 ist ein gut bekannter Sensor zum Erfassen des Kurbelwinkels in einem Verbrennungsmotor eines Fahrzeugs. Ferner ist der Injektor 32 eine gut bekannte Kraftstoffeinspritzvorrichtung in einem Verbrennungsmotor eines Fahrzeugs. Der Injektor 32 wird hauptsächlich von den CPUs 21A und 21B gesteuert.The crank angle sensor 31 is a well-known sensor for detecting the crank angle in an internal combustion engine of a vehicle. Further, the injector 32 a well-known fuel injection device in an internal combustion engine of a vehicle. The injector 32 is mainly from the CPUs 21A and 21B controlled.

Die FPUs 22A und 22B führen jeweils eine Gleitkomma-Berechnung zwischen programmbasierten Berechnungen durch. Die Gleitkomma-Berechnung ist eine Berechnung mit Gleitkomma-Daten. Das Bereitstellen der FPUs 22A und 22B ermöglicht eine Berechnung unter Verwendung von Gleitkomma-Daten; somit kann das Berechnungsergebnis mit höherer Genauigkeit erfasst werden als mit Festkomma-Daten. Die aus der Berechnung resultierenden Gleitkomma-Daten werden in den Registergruppen 23A und 23B aufgezeichnet. Die FPU 22A und 22B stellen jeweils Gleitkomma-Daten in einem Datenformat dar, das beispielsweise dem IEEE 754-Standard entspricht.The FPUs 22A and 22B each perform a floating-point calculation between program-based calculations. The floating-point calculation is a calculation with floating-point data. Deploying the FPUs 22A and 22B allows computation using floating-point data; Thus, the calculation result can be detected with higher accuracy than with fixed-point data. The floating-point data resulting from the calculation is stored in the register groups 23A and 23B recorded. The FPU 22A and 22B each represents floating point data in a data format that conforms to the IEEE 754 standard, for example.

Mit anderen Worten besteht ein einzelnes Gleitkomma-Datum einfacher Genauigkeit entsprechend dem IEEE 754-Standard aus einem 1-Bit-Codeabschnitt, einem 8-Bit-Exponentenabschnitt und einem 23-Bit-Mantissenabschnitt. Ein solches Gleitkomma-Datum dieser Norm kann, als „NaN (Not a Number)“, ein Berechnungsergebnis repräsentieren, das nicht als Zahlenwert dargestellt werden kann.In other words, a single floating point date according to the IEEE 754 standard consists of a 1-bit code section, an 8-bit exponent section, and a 23-bit mantissa section. Such a floating-point date of this standard, as "NaN (Not a Number)", can represent a calculation result that can not be represented as a numerical value.

Es sei ein NaN angenommen, das in einer Berechnung unter Verwendung von Gleitkomma-Daten auftritt. In einem solchen Fall werden alle Berechnungsergebnisse, die dieses NaN verwenden, zu NaN(s). Wenn ein NaN auftritt, ist es notwendig, das NaN auf einen normalen Wert umzuschreiben, der kein NaN ist. Ein Berechnungsergebnis wie beispielsweise eine Berechnung der Division durch 0 (Null) oder eine Berechnung unter Verwendung von ∞ (unendlich) kann als ein Beispiel eines Berechnungsergebnisses genannt werden, das nicht als Zahlenwert ausgedrückt werden kann.Assume a NaN that occurs in a calculation using floating point data. In such a case, all calculation results using this NaN become NaN (s). When a NaN occurs, it is necessary to rewrite the NaN to a normal value that is not NaN. A calculation result such as a calculation of the division by 0 (zero) or a calculation using ∞ (infinity) may be cited as an example of a calculation result that can not be expressed as a numerical value.

Beispielsweise repräsentieren in diesem Standard dann, wenn alle 8 Bits des Exponentenabschnitts jeweils „1“ sind, d.h. der Exponentenabschnitt „255“ in dezimaler Schreibweise ist und der Mantissenabschnitt von „0“ verschieden ist, diese Gleitkomma-Daten ein „NaN“. Standardgemäß repräsentieren dann, wenn alle 8 Bits des Exponentenabschnitts jeweils „1“ und der Mantissenabschnitt „0“ sind, diese Gleitkomma-Daten „Unendlichkeit“. In der folgenden Beschreibung wird eine Berechnung, die in einem Berechnungsergebnis resultiert, das nicht als Zahlenwert dargestellt werden kann, wie beispielsweise eine Berechnung, die durch 0 dividiert, oder eine Berechnung, die Unendlichkeit verwendet, als eine ungültige Berechnung bezeichnet; eine Anweisung, die in einer ungültigen Berechnung enthalten ist, wird als eine ungültige Anweisung bezeichnet.For example, in this standard, when all 8 bits of the exponent portion are each "1", ie, the exponent portion " 255 Is in decimal notation and the mantissa portion is different from "0", this floating point data is a "NaN". By default, if all 8 bits of the exponent portion are each "1" and the mantissa portion is "0", then that floating point data represents "infinity". In the following description, a calculation resulting in a calculation result that can not be represented as a numerical value, such as a calculation that divides by 0 or a calculation that uses infinity, is referred to as an invalid calculation; a statement contained in an invalid calculation is called an invalid statement.

Die CPUs 21A und 21B führen die Festkomma-Berechnung unter den auf den Programmen basierenden Berechnungen durch und lassen die FPUs 22A und 22B die Gleitkomma-Berechnung durchführen. Wie vorstehend beschrieben wurde, können die CPUs 21A und 21B Unterbrechungen bzw. Interrupts behandeln. Es wird angemerkt, dass Interrupts einen Hardware-Interrupt basierend auf einer Anforderung von einer gut bekannten Interrupt-Steuervorrichtung und dergleichen und einen Software-Interrupt basierend auf einer Anweisungsausführung durch die CPUs 21A und 21 B selbst beinhalten. In dem vorliegenden Ausführungsbeispiel behandeln die CPUs 21A und 21B einen Hardware-Interrupt. Die CPUs 21A und 21B können jedoch mit einem Software-Interrupt oder mit beidem umgehen.The CPUs 21A and 21B perform the fixed-point calculation among the program-based calculations and leave the FPUs 22A and 22B perform the floating-point calculation. As described above, the CPUs 21A and 21B Treat interruptions or interrupts. It is noted that interrupts include a hardware interrupt based on a request from a well-known interrupt controller and the like, and a software interrupt based on an instruction execution by the CPUs 21A and 21 B Include yourself. In the present embodiment, the CPUs handle 21A and 21B a hardware interrupt. The CPUs 21A and 21B however, can handle a software interrupt or both.

Die CPUs 21A und 21B führen Prozesse aus, die nachstehend auf der Grundlage der Programme beschrieben werden. Darüber hinaus führen die CPUs 21A und 21B auch einen gut bekannten Fahrzeugsteuerungsprozess zum Steuern des Betriebs des Injektors 32 und dergleichen basierend auf dem Erfassungsergebnis und dergleichen durch den Kurbelwinkelsensor 31 aus.The CPUs 21A and 21B execute processes described below based on the programs. In addition, the CPUs perform 21A and 21B also a well-known vehicle control process for controlling the operation of the injector 32 and the like based on the detection result and the like by the crank angle sensor 31 out.

Wenn ein Interrupt auftritt, führen die CPUs 21A und 21B einen CPU-Prozess zur Interrupt-Zeit aus, der ein Prozess zum Zeitpunkt des Interrupts ist. Genauer unterbrechen dann, wenn ein CPU-Interrupt-Anforderungssignal zugeführt wird, die CPUs 21A und 21B die gerade ausgeführte Verarbeitung und sichern bzw. speichern (d.h. stapeln) Verarbeitungsinformationen, die für die Wiederaufnahme der Verarbeitung notwendig sind, in den Registergruppen 23A und 23B. Insbesondere werden in dem vorliegenden Ausführungsbeispiel, wie in 2 gezeigt ist, die Verarbeitungsinformationen aus den Registergruppen 23A und 23B in einem Bereich mit dem Referenzregister 23D gespeichert.If an interrupt occurs, the CPUs will run 21A and 21B a CPU process at interrupt time, which is a process at the time of the interrupt. More specifically, when a CPU interrupt request signal is supplied, the CPUs interrupt 21A and 21B the processing being performed and storing (ie, stacking) processing information necessary for the resumption of processing in the register groups 23A and 23B , In particular, in the present embodiment, as in FIG 2 is shown, the processing information from the register groups 23A and 23B in an area with the reference register 23D saved.

Es wird angemerkt, dass das Referenzregister 23D ein Register bezeichnet, das die Referenzadresse 13D zum Zeitpunkt eines relativen Adresszugriffs beschreibt. Dieser relative Adresszugriff repräsentiert ein Verfahren des Spezifizierens eines Aufzeichnungsbereichs in dem RAM 13 durch einen relativen Pfad von der in dem RAM 13 festgelegten Referenzadresse 13D.It is noted that the reference register 23D a register designates the reference address 13D at the time of relative address access. This relative address access represents a method of specifying a recording area in the RAM 13 by a relative path from that in the RAM 13 fixed reference address 13D ,

Das heißt, dass dann, wenn auf das RAM 13 zugegriffen wird, die CPUs 21A und 21B auf die in dem Referenzregister 23D hinterlegte Referenzadresse 13D Bezug nehmen, um dadurch die Referenzadresse 13D zu erkennen und den Bereich in dem RAM 13 mit dem relativen Pfad von der Referenzadresse 13D zu spezifizieren.That is, then when on the RAM 13 is accessed, the CPUs 21A and 21B to those in the reference register 23D stored reference address 13D Make reference to thereby the reference address 13D to recognize and the area in the RAM 13 with the relative path from the reference address 13D to specify.

Darüber hinaus sind die Verarbeitungsinformationen z.B. die Informationen, die einen Verarbeitungszustand anzeigen, wie beispielsweise ein Kennzeichen bzw. Flag. In dem vorliegenden Ausführungsbeispiel beinhalten die Verarbeitungsinformationen auch die Informationen, die den Inhalt einer sogenannten lokalen Variablen anzeigen, die in dem unterbrochenen Programm verwendet wird. Basierend auf den Interruptinformationen, die erhalten werden, wenn ein CPU-Interruptanforderungssignals erfasst wird, spezifizieren die CPUs 21A und 21 B einen auszuführenden Interruptprozess, z.B. einen noch zu beschreibenden Ausnahmeprozess.Moreover, the processing information is, for example, the information indicating a processing state such as a flag. In the present embodiment, the processing information also includes the information indicating the content of a so-called local variable used in the interrupted program. Based on the interrupt information obtained when a CPU interrupt request signal is detected, the CPUs specify 21A and 21 B an interrupt process to be executed, eg an exception process to be described later.

Die CPUs 21A und 21B führen beispielsweise einen Ausnahmeprozess aus, der später als ein in dieser Weise spezifizierter Unterbrechungsprozess beschrieben wird, lesen nach Abschluss des Unterbrechungsprozesses die gespeicherten Informationen aus dem Bereich mit dem Referenzregister 23D und starten die zuvor unterbrochene Verarbeitung auf der Grundlage der gelesenen gespeicherten Informationen neu. In der folgenden Beschreibung wird der Prozess des Speicherns der Verarbeitungsinformationen auf das Gebiet mit dem Referenzregister 23D als ein Speicherprozess (oder ein Evakuierungsprozess) bezeichnet, und wird der Prozess des Lesens der gespeicherten Informationen aus dem Gebiet mit dem Referenzregister 23D als ein Rückkehrprozess bezeichnet.The CPUs 21A and 21B For example, if an exception process, which will be described later as an interrupt process specified in this manner, will read the stored information from the reference register area upon completion of the interrupt process 23D and restart the previously suspended processing based on the read stored information. In the following description, the process of storing the processing information on the area with the reference register will be described 23D is referred to as a storage process (or an evacuation process), and the process of reading the stored information from the area with the reference register 23D referred to as a return process.

[Prozess][Process]

Als Nächstes wird der von den Berechnungsteilen 20A und 20B ausgeführte Anweisungsausführungsprozess unter Bezugnahme auf das Ablaufdiagramm von 3 beschrieben. Der Anweisungsausführungsprozess ist ein Prozess, der begonnen wird, wenn die Berechnungsteile 20A und 20B eine Gleitkomma-Berechnung ausführen, und ist ein Prozess, der wiederholt ausgeführt wird, bis die Gleitkomma-Berechnung abgeschlossen ist. Nachstehend wird exemplarisch eine Konfiguration beschrieben, in der der Berechnungsteil 20A einen Anweisungsausführungsprozess ausführt; der Berechnungsteil 20B kann jedoch einen Anweisungsausführungsprozess ausführen, oder die Berechnungsteile 20A und 20B können einen Anweisungsprozess kooperativ ausführen.Next is the one of the calculation parts 20A and 20B executed statement execution process with reference to the Flowchart of 3 described. The instruction execution process is a process started when the calculation parts 20A and 20B perform a floating-point calculation, and is a process that is repeatedly executed until the floating-point calculation is completed. The following is a description of a configuration in which the calculation part 20A execute an instruction execution process; the calculation part 20B however, can execute an instruction execution process, or the calculation parts 20A and 20B can cooperatively execute an instruction process.

In dem Anweisungsausführungsprozess wählt zunächst in S110 der Berechnungsteil 20A eine Berechnung mit einer Anweisung aus. Obwohl die Berechnungsform beliebig ist, kann z.B. eine Zeile des Programms als eine Berechnung ausgewählt werden. Darauffolgend bestimmt in S120 der Berechnungsteil 20A, ob eine ungültige Anweisung in der ausgewählten Berechnung enthalten ist oder nicht. In dem Fall, in dem bestimmt wird, dass die ungültige Anweisung in S120 enthalten ist, schreitet der Berechnungsteil 20A zu S130 fort, um zu bestimmen, ob die Ausnahmeeinstellung gültig oder ungültig ist. Die Ausnahmeeinstellung, die eine Einstellung ist zum Ermitteln, ob ein Interruptprozess wie beispielsweise ein Ausnahmeprozess auszuführen ist oder nicht, wird z.B. durch Register der FPU 22A und 22B verwaltet. Insbesondere wird die Ausnahmeeinstellung für jede Einheit zur Steuerung bzw. Steuereinheit eingestellt bzw. festgelegt. Die Steuereinheit repräsentiert jedes gesteuerte Ziel, wie beispielsweise eine Klimaanlage, eine Kraftstoffeinspritzung oder dergleichen, oder eine Berechnung zum Steuern des gesteuerten Ziels.In the statement execution process, first select in S110 the calculation part 20A a calculation with an instruction. Although the calculation form is arbitrary, for example, a line of the program can be selected as a calculation. Subsequently determined in S120 the calculation part 20A whether or not an invalid statement is included in the selected calculation. In the case where it is determined that the invalid instruction is in S120 is included, the calculation part proceeds 20A to S130 to determine if the exception setting is valid or invalid. The exception setting, which is a setting for determining whether an interrupt process such as an exception process is to be executed or not, is made by registers of the FPU, for example 22A and 22B managed. In particular, the exception setting is set for each unit to the controller. The control unit represents each controlled target, such as an air conditioner, a fuel injection, or the like, or a calculation for controlling the controlled target.

Wenn bestimmt wird, dass die Ausnahmeeinstellung in S130 gültig ist, schreitet der Berechnungsteil 20A zu S140 fort, führt einen noch zu beschreibenden Ausnahmeprozess aus und beendet dann den Anweisungsausführungsprozess in 3. Demgegenüber schreitet dann, wenn bestimmt wird, dass die Ausnahmeeinstellung in S130 nicht gültig ist, der Berechnungsteil 20A zu S150 fort, gibt anstelle einer ungültigen Anweisung einen Standardwert aus und beendet dann den Prozess der Anweisungsausführung in 3. Das heißt, wenn die Ausnahmeeinstellung ungültig ist und eine vorbestimmte ungültige Anweisung mit eine Divisionsanweisung beinhaltet, ersetzt der Berechnungsteil 20A das Berechnungsergebnis der ungültigen Anweisung durch einen Standardwert, der ein vorbestimmter Wert ist, und gibt ihn aus.If it is determined that the exception setting is in S130 is valid, the calculation part proceeds 20A to S140 continues, executes an exception process to be described, and then terminates the instruction execution process in 3 , On the other hand, if it is determined that the exception setting in S130 is not valid, the calculation part 20A to S150 , returns a default value instead of an invalid instruction, and then ends the instruction execution process 3 , That is, if the exception setting is invalid and includes a predetermined invalid instruction with a division instruction, the calculation part replaces 20A the calculation result of the invalid instruction by a standard value which is a predetermined value and outputs it.

Wenn bestimmt wird, dass eine ungültige Anweisung nicht in der in S120 ausgewählten Berechnung enthalten ist, schreitet der Berechnungsteil 20A zu S160 fort, führt eine Berechnung mit einer gültigen Anweisung aus, die keine ungültige Anweisung ist, und beendet danach den Prozess der Anweisungsausführung in 3.If it is determined that an invalid statement is not in the S120 selected calculation, the calculation part proceeds 20A to S160 continues, performs a calculation with a valid instruction that is not an invalid instruction, and then ends the instruction execution process 3 ,

Im Folgenden wird der Ausnahmeprozess, der von dem Berechnungsteil 20A ausgeführt wird, unter Bezugnahme auf das Ablaufdiagramm in 4 beschrieben. Zunächst wird in S200 ein Speicherprozess ausgeführt. In dem Speicherprozess werden, wie vorstehend beschrieben wurde, die Verarbeitungsinformationen in den Bereich mit dem Referenzregister 23D gespeichert bzw. gesichert (d.h. evakuiert). In diesem Fall können die Verarbeitungsinformationen unter Verwendung nur des Referenzregisters 23D gespeichert werden. Wenn der Berechnungsteil 20A die Verarbeitungsinformationen unter Verwendung nur des Referenzregisters 23D speichert, wird das Referenzregister 23D, das in der normalen Verarbeitung nicht verwendet wird, nur durch den Speicherprozess neu beschrieben. Die durch den Ausnahmeprozess in die Registergruppen 23A und 23B geschriebenen Daten können somit daran gehindert werden, die gespeicherten Verarbeitungsinformationen zu beeinflussen.The following is the exception process performed by the calculation part 20A is executed with reference to the flowchart in 4 described. First, in S200 a storage process is executed. In the storage process, as described above, the processing information becomes in the area of the reference register 23D stored or saved (ie evacuated). In this case, the processing information can be obtained using only the reference register 23D get saved. If the calculation part 20A the processing information using only the reference register 23D stores, becomes the reference register 23D that is not used in normal processing, only rewritten by the storage process. The through the exception process in the register groups 23A and 23B written data can thus be prevented from affecting the stored processing information.

Darauffolgend erfasst in S210 der Berechnungsteil 20A die ungültige Anweisung und die Rückkehradresse. Die Rückkehradresse bezeichnet eine Position in dem ROM 12, an die eine Berechnung mit einer ungültigen Anweisung geschrieben wurde, und ist eine Position, die als eine Markierung dient, wenn das Programm in dem ROM 12 erneut gelesen wird, nachdem der Ausnahmevorgang abgeschlossen ist.Subsequently captured in S210 the calculation part 20A the invalid instruction and the return address. The return address denotes a position in the ROM 12 to which a calculation with an invalid instruction has been written, and is a position serving as a mark when the program is in the ROM 12 is read again after the exception operation is completed.

Anschließend bestimmt der Berechnungsteil 20A in S220, ob eine Division in der ungültigen Anweisung enthalten ist. Wenn in S220 bestimmt wird, dass die ungültige Anweisung eine Division beinhaltet, schreitet der Berechnungsteil 20A zu S230 fort und erfasst die Registernummern des Zählers RA und des Nenners RB, die in der Division mit dieser Anweisung verwendet werden, aus den Registergruppen 23A und 23B. Wie in 5 dargestellt ist, wird die Anweisung hier beispielsweise durch 32 Bit dargestellt und beinhaltet den Code „1011“, der eine Division angibt. Darüber hinaus wird bei dieser Verarbeitung auch ein Vorzeichen erfasst, das angibt, ob jeder des Zählers RA und des Nenners RB eine positive Zahl oder eine negative Zahl ist.Subsequently, the calculation part determines 20A in S220 whether a division is included in the invalid statement. When in S220 it is determined that the invalid instruction includes a division, the calculation part proceeds 20A to S230 and acquires the register numbers of the counter RA and the denominator RB used in the division with this instruction from the register groups 23A and 23B , As in 5 is shown here, the instruction is represented here by 32 bits, for example, and includes the code "1011" indicating a division. Moreover, this processing also detects a sign indicating whether each of the counter RA and the denominator RB is a positive number or a negative number.

Anschließend bestimmt der Berechnungsteil 20A in S240, ob RA = 0 und gleichzeitig RB = 0 ist oder nicht. Hierbei repräsentiert 0 entweder + 0 (Null mit einem positivem Vorzeichen) oder -0 (Null mit einem negativem Vorzeichen). In dieser Verarbeitung bestimmt der Berechnungsteil 20A das Vorhandensein oder Fehlen einer Divisionsanweisung. Es wird angemerkt, dass die vorstehende Divisionsanweisung, die eine Berechnungsanweisung repräsentiert, um zu bewirken, dass durch die Gleitkomma-Berechnung 0 (Null) durch 0 (Null) dividiert wird, während der Zähler RA und der Nenner RB jeweils entweder ein positives oder ein negatives Vorzeichen haben, auch als eine bestimmte Divisionsanweisung bezeichnet werden kann.Subsequently, the calculation part determines 20A in S240 whether RA = 0 and at the same time RB = 0 or not. Here, 0 represents either + 0 (zero with a positive sign) or -0 (zero with a negative sign). In this processing, the calculation part determines 20A the presence or absence of a divisional statement. It is noted that the above division instruction, which represents a calculation instruction, to cause by the Floating-point calculation 0 (Zero) is divided by 0 (zero), while the counter RA and the denominator RB each have either a positive or a negative sign, may also be referred to as a particular division instruction.

Wenn der Berechnungsteil 20A in S240 bestimmt, dass RA = 0 und gleichzeitig RB = 0 ist, schreitet der Berechnungsteil 20A zu S250 fort und erzeugt eine Multiplikationsanweisung, in der die in der Divisionsanweisung enthaltene Division in eine Multiplikation umgewandelt wird. Zu diesem Zeitpunkt übernimmt der Berechnungsteil 20A die Registernummern des Zählers RA und des Nenners RB, die für die Berechnung mit dieser Anweisung verwendet werden, so wie sie sind. Außerdem wird beispielsweise, wie in 5 dargestellt ist, der Code „1011“, der die Division angibt, durch den Code „1010“, der die Multiplikation angibt, ersetzt. Das heißt, unter Berücksichtigung oder Verwendung der jeweiligen Vorzeichen des Zählers RA und des Nenners RB wird eine Multiplikationsanweisung erzeugt, die 0 (Null) und 0 (Null) miteinander multipliziert. Diese Multiplikationsanweisung, die eine Berechnungsanweisung zum bewirken, dass 0 (Null) und 0 (Null) unter Berücksichtigung (oder Verwendung) der Vorzeichen des Zählers RA und des Nenners RB der zu ersetzenden Divisionsanweisung mit der Gleitkomma-Berechnung multipliziert werden, repräsentiert, kann als eine bestimmte Multiplikationsanweisung bezeichnet werden. Die Multiplikationsanweisung wird anstelle der Divisionsanweisung in einem noch zu beschreibenden S280 ausgeführt.If the calculation part 20A in S240 determines that RA = 0 and at the same time RB = 0, the calculation part proceeds 20A to S250 and generates a multiplication instruction in which the division contained in the division instruction is converted into a multiplication. At this time, the calculation part takes over 20A the register numbers of the counter RA and the denominator RB used for the calculation with this instruction as they are. Also, for example, as in 5 is shown, the code "1011" indicating the division is replaced by the code "1010" indicating the multiplication. That is, taking into account or using the respective signs of the counter RA and the denominator RB, a multiplication instruction is generated which multiplies 0 (zero) and 0 (zero) with each other. This multiplication instruction, which represents a computation instruction for causing 0 (zero) and 0 (zero) to be multiplied by the floating point computation in consideration of (or use of) the signs of the counter RA and the denominator RB of the divisional instruction to be replaced, may be referred to as a specific multiplication statement will be designated. The multiplication instruction will be described in place of the division instruction in a later S280 executed.

Anschließend erzeugt der Berechnungsteil 20A in S260 ein Unterprogramm mit einer Multiplikationsanweisung in dem RAM 13. Das durch diese Verarbeitung erzeugte Unterprogramm enthält Daten, wie sie z.B. in 6 gezeigt sind. Das heißt, das Unterprogramm beinhaltet eine Anweisung, die von der FPU ausgeführt wird, und eine Anweisung, aus dem Unterprogramm zurückzukehren.Subsequently, the calculation part generates 20A in S260 a subroutine with a multiplication instruction in the RAM 13 , The subprogram generated by this processing contains data as described, for example, in US Pat 6 are shown. That is, the subroutine includes an instruction executed by the FPU and an instruction to return from the subroutine.

Insbesondere beinhaltet der Inhalt der Verarbeitung eine von der FPU ausgeführte Anweisung und eine Anweisung zur Rückkehr aus dem Unterprogramm. Eine Anweisung zur Rückkehr aus dem Unterprogramm ist eine Anweisung zum Zurückführen der Verarbeitung zu der Hauptroutine nach Beendigung des Unterprogramms. In dem Unterprogramm wird zur Vorbereitung der Parallelverarbeitung durch die Vielzahl der Berechnungsteile 20A und 20B der Inhalt der Verarbeitung für jeden der Berechnungsteile, die die Verarbeitung durchführen, beschrieben.In particular, the content of the processing includes an instruction executed by the FPU and an instruction to return from the subroutine. An instruction to return from the subroutine is an instruction to return the processing to the main routine upon completion of the subroutine. In the subroutine, preparation for the parallel processing by the plurality of calculation parts 20A and 20B the content of the processing for each of the calculation parts performing the processing is described.

Nebenbei bemerkt wird die Verarbeitung in S260 zum Erzeugen eines Unterprogramms auch dann ausgeführt, wenn entweder (i) der Berechnungsteil 20A bestimmt, dass eine Division in der ungültigen Anweisung in S220 nicht enthalten ist, oder (ii) wenn der Berechnungsteil 20A in S240 nicht bestimmt, dass RA = 0 und gleichzeitig RB = 0. Dieser Fall erzeugt ein Unterprogramm zum Ausgeben des Lösungs-RD auf der Grundlage der in der Berechnung enthaltenen ungültigen Anweisung als einen Standardwert, der in Übereinstimmung mit der in 7 gezeigten Tabelle bestimmt wird.By the way, the processing is in S260 for generating a subroutine even if either (i) the calculation part 20A determines that a division in the invalid statement in S220 is not included, or (ii) if the calculation part 20A in S240 does not determine that RA = 0 and RB = 0 at the same time. This case generates a subroutine for outputting the solution RD on the basis of the invalid instruction included in the calculation as a default value to be set in accordance with the 7 shown table is determined.

Beispielsweise beschreiben die oberen beiden Zeilen der in 7 gezeigten Tabelle Beispiele, bei denen dann, wenn der Zähler RA „+ NORM“ oder „- NORM“ ist, welches kein NaN ist, und der Nenner RB 0 ist, die Lösungen RD gemäß den Kombinationen der Vorzeichen der Werte des Nenners RB und des Zählers RA bestimmt werden. Das heißt, in dieser Verarbeitung ist das exklusive ODER der Vorzeichen des Zählers RA und des Nenners RB ein Vorzeichen der Lösung RD, und wird ein Absolutwert der Lösung RD auf einen Maximalwert „MAX“ gesetzt. Der Maximalwert „MAX“ kann hier derselbe Wert sein wie die oben genannte „Unendlichkeit“, jedoch ist zu bevorzugen, dass er ein im Voraus als ein Maximalwert ausschließlich der „Unendlichkeit“ definierter Wert ist.For example, the top two lines describe the in 7 For example, if the counter RA is "+ NORM" or "- NORM" which is not NaN and the denominator RB is 0, then the solutions RD are calculated according to the combinations of the signs of the denominator RB and the denominator RB Counter RA can be determined. That is, in this processing, the exclusive OR of the sign of the counter RA and the denominator RB is a sign of the solution RD, and an absolute value of the solution RD is set to a maximum value "MAX". The maximum value "MAX" may here be the same value as the above-mentioned "infinity", but it is preferable that it is a value defined in advance as a maximum value excluding "infinity".

Die beiden unteren Zeilen der in 7 gezeigten Tabelle beschreiben Beispiele von Berechnungsergebnissen in den Fällen, in denen der Zähler RA und der Nenner RB beide 0 (Null) sind. Durch Ausführen Verarbeitung des Ersetzens der Divisionsanweisung durch die Multiplikationsanweisung wie vorstehend beschrieben kann die Lösung RD mit dem hinzugefügten Vorzeichen erhalten werden.The two lower lines of the in 7 The tables shown below illustrate examples of calculation results in cases where the counter RA and the denominator RB are both 0 (zero). By executing processing of replacing the division instruction with the multiplying instruction as described above, the solution RD can be obtained with the sign added.

Anschließend setzt in S270 der Berechnungsteil 20A die Ausnahmeeinstellung auf ungültig (d.h. mach die Ausnahmeeinstellung ungültig). Wenn die Ausnahmeeinstellung auf ungültig gesetzt ist, wird das Auftreten der Ausnahme aufgrund einer anderen ungültigen Anweisung in einer Dauer unterdrückt, in der die Ausnahmeeinstellung auf ungültig gesetzt ist. Das heißt, ein anderes Unterprogramm oder dergleichen, das von einer anderen Verarbeitung erzeugt wird, kann am Überschreiben gehindert werden.Then put in S270 the calculation part 20A the exception setting is invalid (ie invalidate the exception setting). If the exception setting is set to invalid, the occurrence of the exception is suppressed because of another invalid instruction in a duration in which the exception setting is set to invalid. That is, another subroutine or the like generated by other processing can be prevented from being overwritten.

Anschließend führt in S280 der Berechnungsteil 20A ein Unterprogramm durch die FPU 22A und 22B aus. Anschließend setzt dann, wenn die Ausführung des Unterprogramms abgeschlossen ist, der Berechnungsteil 20A die Ausnahmeeinstellung in S290 auf gültig (d.h. die Ausnahmeeinstellung wird validiert bzw. gültig gemacht). Durch erneutes Validieren der Ausnahmeeinstellung dann, wenn eine als Nächstes auszuwählende Anweisung eine ungültige Anweisung enthält, kann der Ausnahmevorgang ausgeführt werden.Subsequently leads in S280 the calculation part 20A a subprogram by the FPU 22A and 22B out. Then, when the execution of the subroutine is completed, the calculation part sets 20A the exception setting in S290 to valid (ie the exception setting is validated). By revalidating the exception setting, if a next-to-select statement contains an invalid statement, the exception can be executed.

Anschließend inkrementiert in S300 der Berechnungsteil 20A die Rückkehradresse. Diese Verarbeitung dient dazu, die erneute Ausführung derselben Berechnung zu unterdrücken. Anschließend führt in S310 der Berechnungsteil 20A den vorstehend beschriebenen Rückkehrprozess aus. Zu diesem Zeitpunkt wird die Referenzadresse 13D in das Referenzregister 23D geschrieben. Es wird angemerkt, dass die Referenzadresse 13D im Voraus in einen bestimmten Bereich in dem ROM 12 geschrieben wurde und so festgelegt ist, dass die Referenzadresse 13D durch Bezugnahme auf diesen Bereich bestimmt werden kann.Then incremented in S300 the calculation part 20A the return address. These Processing serves to suppress the re-execution of the same calculation. Subsequently leads in S310 the calculation part 20A the return process described above. At this time, the reference address becomes 13D in the reference register 23D written. It is noted that the reference address 13D in advance in a specific area in the ROM 12 was written and set so that the reference address 13D can be determined by reference to this area.

Nach dieser Verarbeitung wird der Ausnahmeprozess von 4 beendet.After this processing, the exception process of 4 completed.

(Wirkungen)(Effects)

Das vorstehend beschriebene erste Ausführungsbeispiel kann die folgenden Wirkungen bereitstellen.The first embodiment described above can provide the following effects.

(1a) In dem vorstehend beschriebenen elektronischen Steuerungssystem 1 sind die Berechnungsteile 20A und 20B dazu konfiguriert, das Vorhandensein oder Fehlen einer Divisionsanweisung zu bestimmen, die eine Berechnungsanweisung zum Teilen von 0 (Null) durch 0 (Null) durch die Gleitkomma-Berechnung anzeigt. Eine solche Divisionsanweisung kann auch als eine bestimmte Divisionsanweisung bezeichnet werden. In dem Fall, in dem die Divisionsanweisung vorhanden ist, erzeugen die Berechnungsteile 20A und 20B eine Multiplikationsanweisung, die 0 (Null) und 0 (Null) miteinander multipliziert (eine solche Multiplikationsanweisung kann auch als eine bestimmte Multiplikationsanweisung bezeichnet werden), unter Berücksichtigung des Vorzeichens jedes in der Divisionsanweisung enthaltenen Werts, indem die Divisionsanweisung durch die Multiplikationsanweisung ersetzt wird.(1a) In the above-described electronic control system 1 are the calculation parts 20A and 20B configured to determine the presence or absence of a division instruction indicating a calculation instruction for dividing 0 (zero) by 0 (zero) by the floating-point calculation. Such a division instruction may also be referred to as a particular division instruction. In the case where the division instruction exists, the calculation parts generate 20A and 20B a multiplication instruction which multiplies 0 (zero) and 0 (zero) with each other (such a multiplication instruction may also be referred to as a certain multiplication instruction) taking into account the sign of each value contained in the division instruction by replacing the division instruction with the multiplication instruction.

Eine solche Konfiguration ersetzt eine Divisionsanweisung, die eine Rechenanweisung ist, die 0 durch 0 teilt, durch eine Multiplikationsanweisung, die die Vorzeichen (d.h. ein positives Vorzeichen und ein negatives Vorzeichen) der in der Divisionsanweisung enthaltenen Werte (d.h. jedes eines Zählers und eines Nenners) berücksichtigt und dadurch die Multiplikationsanweisung ausführt. Diese Konfiguration unterdrückt die Ausbreitung eines NaN (Not a Number), während sie eine mögliche Verschlechterung der Verarbeitungsleistung unterdrückt, die auftreten kann, wenn eine Berechnung durchgeführt wird, indem sie einen NaN durch einen vorbestimmten Wert (d.h. einen Standardwert) ersetzt.Such a configuration replaces a division instruction, which is a calculation instruction dividing 0 by 0, by a multiplication instruction including the signs (ie, a positive sign and a negative sign) of the values included in the division instruction (ie, each of a numerator and a denominator). takes into account and thereby executes the multiplication instruction. This configuration suppresses the propagation of a NaN (Not a Number) while suppressing a possible degradation of the processing power that may occur when a calculation is performed by replacing a NaN with a predetermined value (i.e., a default value).

Beispielsweise in dem Fall des Dividierens von 0 durch 0 erfordert das einfache Ersetzen dieses Berechnungsergebnisses durch 0 einen Klassifizierungsprozess zum Bestimmen des Vorzeichens jedes des Nenners und des Zählers. Mit anderen Worten ist es notwendig, ein Exklusiv-ODER zu 0 durch Kombinationen von + - Vorzeichen des Nenners und des Zählers hinzuzufügen, was zu einer Verschlechterung der Verarbeitungsleistung wie beispielsweise einer Verzögerung der Verarbeitung führen kann. In der Konfiguration der Erfindung wird anstelle einer Divisionsanweisung, die 0 durch 0 teilt, eine Multiplikationsanweisung, die die Vorzeichen berücksichtigt, ausgeführt, so dass es möglich ist, eine Verschlechterung der Verarbeitungsleistung bei Auftreten eines NaN zu unterdrücken.For example, in the case of dividing 0 by 0, simply replacing this calculation result with 0 requires a classification process for determining the sign of each of the denominator and the counter. In other words, it is necessary to add an XOR to 0 by combinations of + signs of the denominator and the counter, which may result in deterioration of processing performance such as delay of processing. In the configuration of the invention, instead of a division instruction dividing 0 by 0, a multiplying instruction taking into account the signs is executed, so that it is possible to suppress deterioration of the processing performance upon occurrence of NaN.

(1b) In dem elektronischen Steuerungssystem 1 sind die Berechnungsteile 20A und 20B dazu konfiguriert, ein Unterprogramm mit einer Multiplikationsanweisung auf einem vorbestimmten RAM zu erzeugen und das Unterprogramm auszuführen.(1b) In the electronic control system 1 are the calculation parts 20A and 20B configured to generate a subroutine with a multiply instruction on a predetermined RAM and execute the subroutine.

In Übereinstimmung mit einer solchen Konfiguration kann, da das Unterprogramm mit dem Multiplikationsanweisung im RAM erzeugt wird, der Bereich des ROMs gegenüber einer Konfiguration, bei der ein Unterprogramm mit dem Multiplikationsanweisung im Voraus im ROM vorbereitet wird, reduziert bzw. verkleinert werden.According to such a configuration, since the subroutine having the multiplication instruction is generated in the RAM, the area of the ROM can be reduced or reduced from a configuration in which a subroutine having the multiplication instruction is prepared in advance in the ROM.

(1c) Bei dem elektronischen Steuerungssystem 1 sind die Berechnungsteile 20A und 20B dazu konfiguriert, eine Multiplikationsanweisung zu erzeugen, wenn eine im Voraus vorbereitete Ausnahmeeinstellung gültig ist und gleichzeitig eine Divisionsanweisung vorliegt. Darüber hinaus sind in Fällen, in denen es eine vorbestimmte ungültige Anweisung mit einer Divisionsanweisung gibt, wenn die Ausnahmeeinstellung ungültig ist, die Berechnungsteile dazu konfiguriert, einen Standardwert anstelle einer ungültigen Anweisung auszugeben. Ferner sind dann, wenn die Multiplikationsanweisung basierend auf dem Unterprogramm ausgeführt wird, die Berechnungsteile 20A und 20B dazu konfiguriert, die Ausnahmeeinstellung zu ungültig zu machen bzw. zu invalidieren. Nach Ausführung der Multiplikationsanweisung sind die Berechnungsteile 20A und 20B dazu konfiguriert, die Ausnahmeeinstellung gültig zu machen bzw. zu validieren.(1c) In the electronic control system 1 are the calculation parts 20A and 20B configured to generate a multiply instruction if a pre-prepared exception setting is valid and a divisional instruction is present at the same time. Moreover, in cases where there is a predetermined invalid instruction with a division instruction, if the exception setting is invalid, the calculation parts are configured to output a standard value instead of an invalid instruction. Further, when the multiplication instruction is executed based on the subroutine, the calculation parts are 20A and 20B configured to invalidate or invalidate the exception setting. After execution of the multiplication instruction, the calculation parts are 20A and 20B configured to validate or validate the exception setting.

Eine solche Konfiguration invalidiert die Ausnahmeeinstellung vorübergehend bis zum Abschluss des Unterprogramms, so dass verhindert werden kann, dass ein erzeugtes Unterprogramm durch eine andere Verarbeitung überschrieben wird oder dergleichen.Such a configuration temporarily invalidates the exception setting until completion of the subroutine, so that a generated subroutine can be prevented from being overwritten by other processing or the like.

(1d) Das elektronische Steuerungssystem 1 beinhaltet ferner Registergruppen 23A und 23B mit einer Vielzahl von Registern, die dazu konfiguriert sind, die durch Berechnung erfassten Daten zu halten. Ein Referenzregister 23D ist als ein Register definiert, das eine Referenzadresse 13D zum Zeitpunkt eines relativen Adresszugriffs unter den Registergruppen 23A und 23B beschreibt. Die Berechnungsteile 20A und 20B sind dazu konfiguriert, ein Register mit dem Referenzregister 23D als einen Datensicherungsbereich bzw. Datenspeicherbereich zu verwenden, wenn eine Multiplikationsanweisung erzeugt und die Multiplikationsanweisung ausgeführt wird.(1d) The electronic control system 1 also includes register groups 23A and 23B with a plurality of registers configured to hold the computed data. A reference register 23D is defined as a register which is a reference address 13D at the time of relative address access among the register groups 23A and 23B describes. The calculation parts 20A and 20B are configured to register with the reference register 23D to use as a data storage area when generating a multiply instruction and executing the multiply instruction.

Eine solche Konfiguration sichert oder evakuiert die Daten unter Verwendung des Referenzregisters 23D, das zum Zeitpunkt der normalen Steuerung nicht verwendet wird, wodurch negative Einflüsse wie ein Umschreiben von Daten durch eine andere Steuerung unterdrückt werden können.Such a configuration saves or evacuates the data using the reference register 23D which is not used at the time of normal control, whereby negative influences such as rewriting of data by another controller can be suppressed.

(1e) Das elektronische Steuerungssystem 1 ist dazu konfiguriert, festzulegen, ob die für jede Steuereinheit vorbereitete Ausnahmeeinstellung in Bezug auf die von den Berechnungsteilen 20A und 20B ausgeführte Verarbeitung zu validieren oder zu invalidieren ist. Die Berechnungsteile 20A und 20B sind dazu konfiguriert, in Fällen, in denen die Ausnahmeeinstellung für den auszuführenden Prozess gültig ist und gleichzeitig eine Divisionsanweisung vorhanden ist, eine Multiplikationsanweisung zu erzeugen. Ferner sind die Berechnungsteile 20A und 20B dazu konfiguriert, in Fällen, in denen es eine vorbestimmte ungültige Anweisung mit einer Divisionsanweisung gibt, einen Standardwert anstelle einer ungültigen Anweisung auszugeben, wenn die Ausnahmeeinstellung für einen auszuführenden Prozess ungültig ist.(1e) The electronic control system 1 is configured to determine whether the exception setting prepared for each control unit is in relation to that of the calculation parts 20A and 20B to validate or invalidate executed processing. The calculation parts 20A and 20B are configured to generate a multiply instruction in cases where the exception setting for the process to be performed is valid and a divide instruction is present at the same time. Further, the calculation parts 20A and 20B configured to issue a default value instead of an invalid instruction in cases where there is a predetermined invalid instruction with a division instruction if the exception setting for a process to be performed is invalid.

Eine solche Konfiguration kann festlegen bzw. einstellen, ob eine Multiplikationsanweisung anstelle einer Divisionsanweisung auszuführen oder ein Standardwert für jede Steuereinheit zur Steuerung auszugeben ist.Such a configuration may determine whether to execute a multiplication instruction instead of a division instruction or to output a default value for each control unit for control.

[Andere Ausführungsbeispiele]Other Embodiments

Obwohl das Ausführungsbeispiel der Erfindung vorstehend beschrieben wurde, ist die Erfindung nicht darauf beschränkt und kann verschiedene Modifikationen bereitstellen.Although the embodiment of the invention has been described above, the invention is not limited thereto and can provide various modifications.

(2a) Das vorstehend beschriebene Ausführungsbeispiel beschreibt ein Beispiel, in welchem der Kurbelwinkelsensor 31 und der Injektor 32 mit dem elektronischen Steuerungssystem 1 verbunden sind und die Berechnungsteile 20A und 20B die Steuerung des Verbrennungsmotors ausführen; es besteht jedoch keine Notwendigkeit einer Beschränkung darauf. Beispielsweise kann anstelle des Kurbelwinkelsensors 31 und des Injektors 32 ein beliebiger Sensor und ein Stellglied bereitgestellt sein, und kann das Stellglied in Übereinstimmung mit dem Erfassungsergebnis des Sensors und dem Berechnungsergebnis des Berechnungsteils gesteuert werden.(2a) The above-described embodiment describes an example in which the crank angle sensor 31 and the injector 32 with the electronic control system 1 connected and the calculation parts 20A and 20B perform the control of the internal combustion engine; however, there is no need to limit it. For example, instead of the crank angle sensor 31 and the injector 32 an arbitrary sensor and an actuator may be provided, and the actuator may be controlled in accordance with the detection result of the sensor and the calculation result of the calculation part.

(2b) Eine Vielzahl von Funktionen eines Bestandteil bildenden Elements in dem vorstehenden Ausführungsbeispiel kann durch eine Vielzahl von Bestandteil bildenden Elementen realisiert werden; alternativ kann eine Funktion eines Bestandteil bildenden Elements durch eine Vielzahl von Bestandteil bildenden Elementen realisiert werden. Darüber hinaus kann eine Vielzahl von Funktionen einer Vielzahl von Bestandteil bildenden Elementen durch ein Bestandteil bildendes Element realisiert werden; alternativ kann eine durch eine Vielzahl von Bestandteil bildenden Elementen realisierte Funktion durch ein Bestandteil bildendes Element realisiert werden. Ferner kann ein Teil der Konfiguration des vorstehenden Ausführungsbeispiels entfallen. Darüber hinaus kann zumindest ein Teil der Konfiguration des vorstehenden Ausführungsbeispiels zu der Konfiguration eines anderen Ausführungsbeispiels hinzugefügt oder durch die Konfiguration eines anderen Ausführungsbeispiels ersetzt werden. Es wird angemerkt, dass alle Aspekte, die in dem in den ANSPRÜCHEN definierten technischen Konzept enthalten sind, Ausführungsbeispiele der Erfindung sind.(2b) A variety of functions of a constituent element in the above embodiment can be realized by a plurality of constituent elements; alternatively, a function of a constituent element may be realized by a plurality of constituent elements. In addition, a plurality of functions of a plurality of constituent elements can be realized by a constituent element; Alternatively, a function realized by a plurality of constituent elements may be realized by a constituent element. Furthermore, part of the configuration of the above embodiment may be omitted. Moreover, at least part of the configuration of the above embodiment may be added to the configuration of another embodiment or replaced by the configuration of another embodiment. It is noted that all aspects contained in the technical concept defined in the CLAIMS are embodiments of the invention.

(2c) Zusätzlich zu dem vorstehend beschriebenen elektronischen Steuerungssystem 1 kann die Erfindung als verschiedene Konfigurationen realisiert werden, wie beispielsweise als eine Steuereinheit, die als ein Bestandteil bildendes Element des elektronischen Steuerungssystems 1 dient, ein Programm zum Veranlassen eines Computers, als elektronisches Steuerungssystem 1 zu arbeiten, ein nichtflüchtiges dinghaftes Aufzeichnungsmedium und ein Steuerungsverfahren, das eine Gleitkomma-Berechnung beinhaltet.(2c) In addition to the electronic control system described above 1 For example, the invention may be embodied as various configurations, such as a control unit functioning as a constituent element of the electronic control system 1 serves, a program for starting a computer, as an electronic control system 1 to work, a nonvolatile persistent recording medium and a control method involving floating point calculation.

[Beziehung zwischen der Konfiguration des Ausführungsbeispiels und der Konfiguration der Erfindung].[Relationship between the configuration of the embodiment and the configuration of the invention].

In dem vorstehenden Ausführungsbeispiel entsprechen die Berechnungsteile 20A und 20B jeweils einer erfindungsgemäßen Steuereinheit. Unter der von den Berechnungsteilen 20A und 20B ausgeführten Verarbeitung entspricht die Verarbeitung in S120 und S220 einem erfindungsgemäßen Berechnungsbestimmungsabschnitt; entspricht die Verarbeitung in S130, S150, S200, S250, S260, S310 einem erfindungsgemäßen Anweisungsausführungsabschnitt; und entspricht die Verarbeitung in S270 und S290 einem erfindungsgemäßen Einstellungsänderungsabschnitt.In the above embodiment, the calculation parts correspond 20A and 20B each of a control unit according to the invention. Below that of the calculation parts 20A and 20B Processing performed corresponds to the processing in S120 and S220 a calculation determination section according to the invention; corresponds to the processing in S130 . S150 . S200 . S250 . S260 . S310 an instruction execution section according to the invention; and corresponds to the processing in S270 and S290 an adjustment change section according to the invention.

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • JP 5379712 B2 [0003]JP 5379712 B2 [0003]

Claims (5)

Steuereinheit, die an einem Fahrzeug montiert ist und eine Gleitkomma-Berechnung durchführen kann, wobei die Steuereinheit umfasst: einen Berechnungsbestimmungsabschnitt (S120, S220), der dazu konfiguriert ist, ein Vorhandensein oder ein Fehlen einer als eine Berechnungsanweisung definierten bestimmten Divisionsanweisung zu bestimmen, die eine Division, die 0 durch 0 teilt, mittels einer Gleitkomma-Berechnung durchführt; und einen Anweisungsausführungsabschnitt (S130, S150, S200, S250, S260, S310), der dazu konfiguriert ist, dann, wenn das Vorhandensein der bestimmten Divisionsanweisung ermittelt wird, eine als eine Berechnungsanweisung definierte bestimmte Multiplikationsanweisung zu erzeugen, die eine Multiplikation, die 0 und 0 miteinander multipliziert, durchführt, während sie ein Vorzeichen jedes in der bestimmten Divisionsanweisung enthaltenen Werts berücksichtigt, und die bestimmte Multiplikationsanweisung anstelle der bestimmten Divisionsanweisung auszuführen.A control unit mounted on a vehicle and capable of performing a floating point calculation, the control unit comprising: a calculation determination section (S120, S220) configured to determine a presence or absence of a specific division instruction defined as a calculation instruction, which performs a division dividing 0 by 0 by a floating point calculation; and an instruction execution section (S130, S150, S200, S250, S260, S310) configured to then, when the presence of the determined division instruction is determined to generate a specific multiplication instruction defined as a calculation instruction, which performs a multiplication that multiplies 0 and 0 with each other while considering a sign of each value included in the determined division instruction, and to execute the particular multiplication instruction instead of the particular division instruction. Steuereinheit nach Anspruch 1, bei der der Anweisungsausführungsabschnitt ferner dazu konfiguriert ist, ein Unterprogramm zu erzeugen, das die bestimmte Multiplikationsanweisung auf einem vorbestimmten RAM beinhaltet, und das Unterprogramm auszuführen.Control unit after Claim 1 wherein the instruction execution section is further configured to generate a subroutine that includes the determined multiplication instruction on a predetermined RAM and execute the subroutine. Steuereinheit nach Anspruch 2, ferner umfassend: einen Einstellungsänderungsabschnitt (S270, S290), der dazu konfiguriert ist, eine vorgegebene Ausnahmeeinstellung aufzuheben, wenn die Ausführung der bestimmten Multiplikationsanweisung von dem Anweisungsausführungsabschnitt basierend auf dem Unterprogramm begonnen wird, und die Ausnahmeeinstellung zu validieren, wenn die Ausführung der bestimmten Multiplikationsanweisung abgeschlossen ist, wobei: der Anweisungsausführungsabschnitt ferner dazu konfiguriert ist, in Fällen, in denen die Ausnahmeeinstellung gültig ist und gleichzeitig das Vorhandensein der bestimmten Divisionsanweisung ermittelt wird, die bestimmte Multiplikationsanweisung zu erzeugen; und der Anweisungsausführungsabschnitt ferner dazu konfiguriert ist, in Fällen, in denen ein Vorhandensein der ungültigen Anweisung einschließlich der bestimmten Divisionsanweisung ermittelt wird, einen Standardwert anstelle einer vorbestimmten ungültigen Anweisung, die die bestimmte Divisionsanweisung enthält, auszugeben, wenn die Ausführungseinstellung ungültig ist.Control unit after Claim 2 , further comprising: a setting change section (S270, S290) configured to cancel a predetermined exception setting when the execution of the determined multiplication instruction is started from the instruction execution section based on the subroutine, and to validate the exception setting when the execution of the determined multiplication instruction is completed, wherein: the instruction execution section is further configured to generate the determined multiplication instruction in cases where the exception setting is valid while detecting the presence of the particular division instruction; and the instruction execution section is further configured to output a default value in lieu of a predetermined invalid instruction including the particular division instruction in cases where existence of the invalid instruction including the determined division instruction is determined, if the execution setting is invalid. Steuereinheit nach einem der Ansprüche 1 bis 3, ferner umfassend: eine Registergruppe (23A, 23B) mit einer Vielzahl von Registern, die dazu konfiguriert sind, durch Berechnung erfasste Daten zu speichern, wobei: die Registergruppe ein Referenzregister (23D) beinhaltet, das eine Referenzadresse (13D) für einen relativen Adresszugriff beschreibt; und der Anweisungsausführungsabschnitt ferner dazu konfiguriert ist, ein Register zu verwenden, das das Referenzregister als einen Datenspeicherbereich enthält, wenn die bestimmte Multiplikationsanweisung erzeugt und die bestimmte Multiplikationsanweisung ausgeführt wird.Control unit according to one of Claims 1 to 3 , further comprising: a register group (23A, 23B) having a plurality of registers configured to store computed data, wherein: the register group includes a reference register (23D) having a reference address (13D) for relative address access describes; and the instruction execution section is further configured to use a register containing the reference register as a data storage area when the determined multiplication instruction is generated and the determined multiplication instruction is executed. Steuereinheit nach einem der Ansprüche 1 bis 4, bei der: eine Ausnahmeeinstellung, die in Bezug auf jede Einheit zur Steuerung vorbereitet wurde, für einen Prozess, der von dem Anweisungsausführungsabschnitt ausgeführt wird, validiert oder invalidiert werden kann; der Anweisungsausführungsabschnitt ferner dazu konfiguriert ist, die bestimmte Multiplikationsanweisung in Fällen zu erzeugen, in denen eine Ausnahmeeinstellung für einen auszuführenden Prozess gültig ist und gleichzeitig das Vorhandensein der bestimmten Divisionsanweisung ermittelt wird; und der Anweisungsausführungsabschnitt ferner dazu konfiguriert ist, in Fällen, in denen ein Vorhandensein der ungültigen Anweisung mit der bestimmten Divisionsanweisung ermittelt, wird einen Standardwert anstelle einer vorbestimmten ungültigen Anweisung auszugeben, der die bestimmte Divisionsanweisung beinhaltet, wenn die Ausführungseinstellung für einen auszuführenden Prozess ungültig ist.Control unit according to one of Claims 1 to 4 wherein: an exception setting prepared for each unit for control can be validated or invalidated for a process executed by the instruction execution section; the instruction execution section is further configured to generate the determined multiplication instruction in cases where an exception setting for a process to be executed is valid and at the same time the existence of the determined division instruction is detected; and the instruction execution section is further configured to issue, in cases where existence of the invalid instruction with the determined division instruction, a default value instead of a predetermined invalid instruction including the determined division instruction, if the execution setting for a process to be executed is invalid.
DE102018220851.4A 2017-12-07 2018-12-03 control unit Pending DE102018220851A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-235099 2017-12-07
JP2017235099A JP7027857B2 (en) 2017-12-07 2017-12-07 Control device

Publications (1)

Publication Number Publication Date
DE102018220851A1 true DE102018220851A1 (en) 2019-06-13

Family

ID=66629448

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018220851.4A Pending DE102018220851A1 (en) 2017-12-07 2018-12-03 control unit

Country Status (2)

Country Link
JP (1) JP7027857B2 (en)
DE (1) DE102018220851A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7273317B2 (en) * 2020-01-28 2023-05-15 サミー株式会社 reel-type game machine
JP7273316B2 (en) * 2020-01-28 2023-05-15 サミー株式会社 reel-type game machine

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5379712B2 (en) 2010-02-08 2013-12-25 日立オートモティブシステムズ株式会社 In-vehicle control device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0769783B2 (en) * 1987-11-16 1995-07-31 日本電気株式会社 Exception handling method
JP4329332B2 (en) * 2002-01-15 2009-09-09 株式会社デンソー Electronic control device and control program
JP2015180983A (en) * 2014-03-02 2015-10-15 裕 道脇 Zero-division arithmetic processing program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5379712B2 (en) 2010-02-08 2013-12-25 日立オートモティブシステムズ株式会社 In-vehicle control device

Also Published As

Publication number Publication date
JP2019101962A (en) 2019-06-24
JP7027857B2 (en) 2022-03-02

Similar Documents

Publication Publication Date Title
DE69017178T2 (en) Data processing system with device for command marking.
DE112005001277B4 (en) Method and device for vectoring multiple input commands
DE19540102C2 (en) Method and floating point arithmetic unit with logic for a quadruple precision arithmetic
DE3851746T2 (en) Jump prediction.
DE2524046C2 (en) Electronic data processing system
DE112011103196T5 (en) Function unit for a multiply ADD instruction for integer vectors
DE112013005416T5 (en) A method, apparatus, instructions and logic for providing vector address conflict detection functionality
DE112010004963T5 (en) Synchronizing SIMD vectors
DE3131204A1 (en) ADDRESS CONVERSION AND GENERATOR ARRANGEMENT
DE102018001229A1 (en) Variable length accelerator circuit for a neural network
DE112011103195T5 (en) Function unit for calculating leading zeros of vectors, trailing zeros of vectors, the number of ones of vector operands and the vector parity
DE102018125805A1 (en) SYSTEMS, METHODS, AND DEVICES FOR SCALARPRODUCT OPERATIONS
DE102018220851A1 (en) control unit
DE3709675A1 (en) ARITHMETIC LOGIC UNIT
DE69233282T2 (en) Data processing device
DE102014002510A1 (en) Precise Exception Signaling for Multiple Data Architecture
DE3900246C2 (en)
DE102014003659A1 (en) SYSTEMS, DEVICES AND METHODS FOR DETERMINING A FOLLOWING LOWEST MASKING BITS OF A TYPE TOY REGISTER
DE2702722C2 (en) Device for processing instructions that cannot be directly executed
DE102018129273A1 (en) DEVICE AND METHOD FOR VECTOR MULTIPLYING; AND ACCUMULATING UNSIGNED DOUBLE WORDS
DE112015006952T5 (en) HARDWARE MECHANISM FOR EXECUTING ATOMIC ACTIONS IN REMOTE PROCESSORS
DE68927691T2 (en) Data processor for executing the division of sign numbers in just a few program steps
DE3852209T2 (en) Cancellation of a software command in micro-programmed systems.
DE102019112186A1 (en) Double load command
DE102018129291A1 (en) Apparatus and method for adding with rotation and halving of packed data elements

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R084 Declaration of willingness to licence