WO2015136844A1 - 電子制御装置 - Google Patents

電子制御装置 Download PDF

Info

Publication number
WO2015136844A1
WO2015136844A1 PCT/JP2015/000747 JP2015000747W WO2015136844A1 WO 2015136844 A1 WO2015136844 A1 WO 2015136844A1 JP 2015000747 W JP2015000747 W JP 2015000747W WO 2015136844 A1 WO2015136844 A1 WO 2015136844A1
Authority
WO
WIPO (PCT)
Prior art keywords
instruction
stored
unit
executed
address
Prior art date
Application number
PCT/JP2015/000747
Other languages
English (en)
French (fr)
Inventor
克拓 小池
小林 正幸
昌彦 堀口
Original Assignee
株式会社デンソー
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 株式会社デンソー filed Critical 株式会社デンソー
Priority to DE112015001252.4T priority Critical patent/DE112015001252T5/de
Priority to US15/118,783 priority patent/US10521233B2/en
Priority to CN201580013432.9A priority patent/CN106104494B/zh
Publication of WO2015136844A1 publication Critical patent/WO2015136844A1/ja

Links

Images

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
    • G06F9/321Program or instruction counter, e.g. incrementing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering

Definitions

  • the present disclosure relates to an electronic control unit (Electronic Control Unit) that reads and executes instructions stored in a memory.
  • an electronic control unit Electronic Control Unit
  • Patent Document 1 an electronic control device that controls a body system such as a lighting device or a power window provided in an automobile by reading and executing a command stored in a memory is known (see Patent Document 1).
  • This dual lock step type electronic control device is mainly composed of a microcomputer (so-called microcomputer) having two arithmetic devices, and the two arithmetic devices respectively execute the same instruction at the same timing (arithmetic operation). Run). If the calculation results in the arithmetic devices do not match, it is determined that an abnormality has occurred in the electronic control device, and the electronic control device is restarted or notified that an abnormality has occurred.
  • microcomputer microcomputer
  • the dual lock step type electronic control device (microcomputer) is provided with two arithmetic devices, and the two arithmetic devices must execute the same command at the same time. That is, in the dual lock step type electronic control device (microcomputer), it is necessary to always operate two arithmetic devices, and the power consumption increases.
  • This disclosure aims to suppress an increase in power consumption while ensuring functional safety in an electronic control device.
  • an electronic control device that reads and executes instructions stored in a memory includes a program counter, an execution unit, a change unit, and storage control. Unit, an update unit, a comparison unit, and an abnormality determination unit.
  • the program counter indicates the memory address where the next instruction to be executed is stored.
  • the execution unit reads and executes an instruction stored in the storage area of the memory corresponding to the address indicated by the program counter. Then, each time an instruction is executed by the execution unit, the changing unit changes the address of the memory indicated by the program counter to the address of the memory in which the instruction to be executed next is stored.
  • the storage control unit When the storage control unit shifts to an instruction group constituting an important process, the storage control unit stores the memory address stored in the program counter at the transition point in the expected value counter.
  • the instruction group constituting the important process referred to here is a plurality of instructions sequentially executed so as to realize a specific process, and is constituted by a plurality of instructions not including a branch instruction. Further, in the instruction group constituting the important process, each instruction is stored in each storage area of the memory whose address changes by a specified value according to the execution order.
  • the update unit changes the address of the memory stored in the expected value counter by a specified value every time an instruction is executed by the execution unit after the transition to the instruction group constituting the important process.
  • the comparison unit compares the memory address indicated by the program counter with the memory address stored in the expected value counter.
  • the abnormality determination unit determines that an abnormality has occurred. That is, in the electronic control device having the above configuration, when a process (instruction) to be executed by the execution unit is shifted to a group of instructions that constitute an important process, the expected value counter is stored in the program counter at the time of the transition. Stored memory address is stored. The memory address (value) stored in the expected value counter at this time is the address of the memory in which the instruction to be executed first in the instruction group constituting the important process is stored. The memory address (value) stored in the expected value counter is changed by a specified value every time an instruction is executed by the execution unit. By changing the value by the specified value, the content (value) of the expected value counter is updated to the address of the memory storing the instruction to be executed next in the instruction group constituting the important process.
  • the memory address pointed to by the program counter stores the next instruction to be executed each time the instruction is executed, regardless of whether the instruction executed by the execution unit is an instruction group constituting an important process. Changed to the address of the allocated memory.
  • the memory address (value) indicated by the program counter matches the memory address (value) stored in the expected value counter. Furthermore, in the electronic control device, if no abnormality such as a hardware failure has occurred, the memory address (value) indicated by the program counter and the expected value counter are stored at least during the execution of the instruction group constituting the important process. It continues to match the address (value) of the stored memory.
  • the program counter and the expected value counter may not operate normally. In this case, the memory address (value) indicated by the program counter does not match the memory address (value) stored in the expected value counter.
  • the electronic control device having the above-described configuration functional safety is ensured by using only the program counter and the expected value counter as a dual system. For this reason, according to the electronic control device having the above configuration, unlike the conventional technique, the arithmetic circuit (for example, ALU (Arithmetic-Login-Unit)) itself does not need to be a dual system. As a result, according to the electronic control device having the above-described configuration, power consumption can be suppressed as compared with the conventional technology.
  • ALU Arimetic-Login-Unit
  • the present disclosure is also realized as a processing method in the electronic control device, a program product for realizing the processing method, and a computer-readable non-transition storage medium storing the program product. can do.
  • FIG. 1 is a block diagram illustrating a schematic configuration of an electronic control device to which the present disclosure is applied. Explanatory diagram showing instructions stored in ROM The flowchart figure which shows the process sequence of the normal process which CPU performs. The flowchart figure which shows the process sequence of the migration confirmation process which CPU performs The flowchart figure which shows the process sequence of the important process which CPU performs The flowchart figure which shows the process sequence of the return confirmation process which CPU performs
  • An electronic control device 1 shown in FIG. 1 controls an in-vehicle device (so-called load) 60 mounted on an automobile.
  • the electronic control device 1 is referred to as an “ECU (Electronic Control Unit)” 1.
  • the in-vehicle device 60 to be controlled by the ECU 1 a so-called body system such as a lighting device, a power window, and a door lock provided in an automobile can be considered.
  • the in-vehicle device 60 to be controlled by the ECU 1 is not limited to this, and may be, for example, an internal combustion engine, a braking device, a power train mechanism, a navigation device, or various meters.
  • the ECU 1 includes a power supply circuit 4, an input circuit 6, an output circuit 8, and a logic circuit 10.
  • the power supply circuit 4 converts the power supplied from the in-vehicle battery 58 into the power required for the operation of the circuits 6, 8, and 10 constituting the ECU 1, and the circuit 6 , 8 and 10.
  • the input circuit 6 receives an external signal necessary for controlling the in-vehicle device 60 and outputs the received signal to the logic circuit 10.
  • the output circuit 8 is a control signal for controlling the in-vehicle device 60, and outputs the control signal from the logic circuit 10 to the in-vehicle device 60.
  • the logic circuit 10 includes a ROM 22, a RAM 24, an interface (I / F) 26, and a CPU 30.
  • the ROM 22 stores processing programs and data that need to retain stored contents even when the power is turned off.
  • the RAM 24 temporarily stores processing programs and data.
  • the I / F 26 performs information communication with other electronic control devices and in-vehicle devices via the input circuit 6 and the output circuit 8.
  • the CPU 30 is a central processing unit that executes various processes in accordance with processing programs stored in the ROM 22 and the RAM 24.
  • the CPU 30 includes at least an execution unit 32, a register 36, and a comparison circuit 50.
  • the execution unit 32 includes a control circuit 33 and an arithmetic circuit (ALU) 34.
  • the control circuit 33 is a known control device that controls reading of instructions from the ROM 22 and RAM 24 and writing of information to the ROM 22 and RAM 24.
  • the arithmetic circuit 34 is a known arithmetic device that calculates (executes) an instruction read from the ROM 22 or the RAM 24. Note that the control circuit 33 and the arithmetic circuit 34 do not have to be integrally configured as the execution unit 32, and may be configured separately. In the present application, “information” is used not only as a countable noun but also as a countable noun.
  • At least a program counter (PC) 38, an expected value counter 40, a dedicated register 42, an accumulator (ACC) 44, and a general-purpose register 46 are prepared as the registers 36.
  • the program counter 38 is a well-known register indicating the address of a memory in which an instruction to be executed next is stored, and is updated every time the instruction is executed.
  • the expected value counter 40 is a dedicated register for storing an address (value) of a memory storing an instruction to be executed next or an expected value thereof in an important process described later.
  • the dedicated register 42 is a dedicated register for storing a migration destination ID or a return destination ID, which will be described later.
  • the accumulator 44 is a well-known register used for accumulating calculation results.
  • the general-purpose register 46 is a well-known register that realizes various functions according to instructions.
  • the comparison circuit 50 is a comparator that compares the memory address indicated by the program counter 38 (that is, the value of the program counter 38) with the value of the expected value counter 40. Then, if the value of the program counter 38 and the value of the expected value counter 40 do not match, the comparison circuit 50 outputs an interrupt signal so as to execute an abnormal process.
  • the comparison circuit 50 is activated when the process executed by the execution unit 32 shifts to an important process described later, and stops operating when the process shifts from the important process to another process. It is configured. Further, the comparison circuit 50 is configured to perform a comparison between the value of the program counter 38 and the value of the expected value counter 40 before each instruction constituting the important process is executed by the execution unit 32. .
  • ROM 22 of the present embodiment as a processing program executed by the execution unit 32 of the CPU 30, as shown in FIG. 2, at least a processing program for executing normal processing and a processing program for executing migration confirmation processing And a processing program for executing an important process and a processing program for executing a return confirmation process are stored.
  • the normal process is a process for controlling the in-vehicle device 60 as a control target and realizing a specified function.
  • the normal process of this embodiment is a process composed of a plurality of instructions that are sequentially executed (an example of a normal instruction group). This normal processing includes a jump to a subroutine, a conditional branch, etc. as instructions to be executed by the execution unit 32. As one of the jumps (commands), the normal process of this embodiment includes a jump to the transition confirmation process.
  • each command constituting the normal processing in the present embodiment is stored in a specific storage area in the ROM 22.
  • Each of the instructions constituting the normal process is stored in the ROM 22 in order from the smallest address according to the execution order.
  • the important process is a process constituted by a plurality of instructions that are sequentially executed so as to realize a specific function.
  • the “important” mentioned here is also referred to as “priority”. “Important” or “High importance” is equivalent to “High priority”.
  • the “specific function” is a function that affects the operation of normal processing (related to functional safety requirements). For example, various settings required for control of the in-vehicle device can be rewritten in the register 36 and the ROM 22. Includes the ability to write to The number of important processes executed by the execution unit 32 may be one or plural.
  • the important processing of the present embodiment is configured by an instruction that does not include a branch instruction, and is configured such that each of the instructions constituting the important processing is executed in the order stored in the ROM 22.
  • the branch instruction said here is a conditional branch and a jump, for example.
  • each of the instructions constituting the important process is stored in the ROM 22 by a specific storage area (for example, addresses “2000 to 4000” and “4011” shown in FIG.
  • the address is stored in a storage area (for example, an area defined by addresses “1000 to 1050” shown in FIG. 2) away from the defined area.
  • Each instruction constituting the important process is stored in the ROM 22 in each storage area whose address changes by a specified value (for example, “1”) according to the execution order from the smallest address.
  • the migration confirmation process is a process executed in the process of shifting from the normal process to the important process, and is a process for determining whether or not it is possible to normally shift to the instruction group constituting the important process.
  • the instructions constituting the migration confirmation process are stored in the ROM 22 in the preceding stage of the storage area in which the important process is stored (for example, the area defined by the addresses “990 to 999” shown in FIG. 2). ing.
  • the return confirmation process is a process executed in the process of shifting to the normal process after finishing the important process, and is a process for determining whether or not the normal process can be normally transferred.
  • the instructions constituting the return confirmation process are executed in the ROM 22 in the subsequent stage of the storage area in which the important process is stored (for example, the area defined by the address “1060” shown in FIG. 2) and after the return. It is stored in the previous stage of the storage area where the normal process is stored (for example, the area defined by the address “4001” shown in FIG. 2).
  • the normal process is started when, for example, the ignition switch 62 and the switch 64 are turned on.
  • the activation conditions for normal processing are not limited to this, and may be when other conditions are satisfied.
  • each section is expressed as, for example, S110.
  • each section can be divided into a plurality of subsections, while a plurality of sections can be combined into one section.
  • each section can be referred to as a device, a module.
  • each of the above sections or a combination thereof includes not only (i) a section of software combined with a hardware unit (eg, a computer), but also (ii) hardware (eg, an integrated circuit, As a section of (wiring logic circuit), it can be realized with or without the function of related devices.
  • the hardware section can be included inside the microcomputer.
  • the execution unit 32 of the CPU 30 sequentially reads out and executes each instruction stored in the ROM 22.
  • the instruction constituting the normal process is S110
  • the execution unit 32 of the CPU 30 writes the migration destination ID in the dedicated register 42 (S110).
  • the migration destination ID is identification information for identifying an important process that the execution unit 32 of the CPU 30 should migrate (jump) from the normal process.
  • the execution unit 32 of the CPU 30 jumps the process to the storage space preceding the storage space of the ROM 22 where the important process is described (for example, in the example shown in FIG. 2, the space where the migration confirmation process is stored). (S120). Then, the execution unit 32 of the CPU 30 executes the migration confirmation process (S130), and if the migration confirmation process results in a normal transition to the important process, the execution process is executed (S140).
  • the execution unit 32 of the CPU 30 finishes the important process, it executes a return confirmation process (S150). If the result of the return confirmation process is that the normal process can be successfully transferred, each of the normal process is configured. Execute instructions sequentially.
  • the execution unit 32 of the CPU 30 stores the migration destination ID written in the dedicated register 42 in S110 as defined in the ROM 22 when activated in S130 of the normal process as shown in FIG.
  • the confirmation ID read from the area is compared (S210).
  • the confirmation ID is identification information unique to each important process and assigned to each important process.
  • the confirmation ID to be compared in S210 is assigned to the important process scheduled to be transferred.
  • the abnormality process referred to here is a known process for resetting (restarting) the ECU 1 or notifying that an abnormality has occurred via an indicator or a display device.
  • the execution unit 32 of the CPU 30 Deletes the migration destination ID written in the dedicated register 42. Then, the execution unit 32 of the CPU 30 determines that no abnormality has occurred in the CPU 30 or the logic circuit 10 and shifts to an important process.
  • the execution unit 32 of the CPU 30 stores the address of the ROM 22 pointed to by the program counter 38 at the time of shifting to the important process in the expected value counter 40 (S310).
  • the comparison circuit 50 of the CPU 30 compares the address of the ROM 22 indicated by the program counter 38 (that is, the value of the program counter 38) with the value of the expected value counter 40 (S320). If the comparison results in the comparison circuit 50 indicate that they do not match (S320: NO), the execution unit 32 of the CPU 30 executes an abnormality process (S340).
  • the abnormality process referred to here is a known process for resetting (restarting) the ECU 1 or notifying that an abnormality has occurred via an indicator or a display device.
  • the abnormality process in S340 may be realized as a well-known interrupt process.
  • the comparison circuit 50 if the address of the ROM 22 (that is, the value of the program counter 38) indicated by the program counter 38 matches the value of the expected value counter 40 (S320: YES).
  • the execution unit 32 of the CPU 30 reads and executes the instruction stored in the storage area of the ROM 22 corresponding to the address of the ROM 22 indicated by the program counter 38 (S330).
  • the address of the ROM 22 indicated by the program counter 38 is changed to the address of the ROM 22 in which the instruction to be executed next is stored. That is, in S330, the value of the program counter 38 is incremented by one.
  • the address of the ROM 22 stored in the expected value counter 40 is changed by a specified value (ie, “1”). Specifically, in S330, the address of the ROM 22 is increased by a specified value (ie, “1”).
  • the CPU 30 repeats a series of processing steps from S320 to S330 for the number of instructions (N) constituting the important process.
  • the last instruction (S330-N) in the execution order is configured to write the return destination ID to the dedicated register 42.
  • the return destination ID is identification information for identifying a normal process to which the CPU 30 should shift (return) the process.
  • the comparison circuit 50 compares the address of the ROM 22 (that is, the value of the program counter 38) indicated by the program counter 38 with the value of the expected value counter 40,
  • the execution unit 32 executes an abnormal process. On the other hand, if they match, the execution unit 32 executes one of the instructions constituting the important process. As described above, in the present embodiment, the comparison circuit 50 executes the comparison between the address of the ROM 22 indicated by the program counter 38 (that is, the value of the program counter 38) and the value of the expected value counter 40.
  • the execution unit 32 executes a comparison between the value of the program counter 38 and the value of the expected value counter 40 executed by the comparison circuit 50 for the purpose of understanding the operation of the entire logic circuit 10. It is incorporated in the flowchart for explaining the processing procedure of the important processing.
  • the execution unit 32 of the CPU 30 when the execution unit 32 of the CPU 30 is activated, the execution unit 32 is activated in the storage space (eg, in FIG. In the example shown, the process is jumped to a space where the instruction of S420 is stored (S410).
  • the execution unit 32 of the CPU 30 compares the return destination ID written in the dedicated register 42 in the important process with the feedback ID read from the storage area defined in the ROM 22 (S420).
  • the feedback ID is identification information unique to each normal process and assigned to each normal process.
  • the feedback ID to be compared in S420 is assigned to the normal process scheduled for transition (return).
  • the abnormality process referred to here is a known process for resetting (restarting) the ECU 1 or notifying that an abnormality has occurred via an indicator or a display device.
  • the execution unit 32 of the CPU 30 determines that no abnormality has occurred in the CPU 30 itself or the logic circuit 10 and sequentially executes each instruction constituting the normal process.
  • the execution unit 32 of the CPU 30 stores the migration destination ID written in the dedicated register 42 and the storage area defined in the ROM 22.
  • the confirmation ID read out from is compared. As a result of this comparison, if the migration destination ID written in the dedicated register 42 does not match the confirmation ID read from the storage area defined in the ROM 22, the execution unit 32 of the CPU 30 executes the abnormality process.
  • the execution unit 32 of the CPU 30 transfers the migration written in the dedicated register 42. Delete the destination ID. Then, the execution unit 32 of the CPU 30 shifts the process to an important process.
  • the execution unit 32 of the CPU 30 also stores the address of the ROM 22 indicated by the program counter 38 in the expected value counter 40 when the process shifts to the important process. Subsequently, the comparison circuit 50 of the CPU 30 compares the address of the ROM 22 (that is, the value of the program counter 38) indicated by the program counter 38 with the value of the expected value counter 40. As a result of the comparison, if the two do not match, the execution unit 32 of the CPU 30 executes the abnormality process.
  • the execution unit of the CPU 30 32 reads and executes an instruction stored in the storage area of the ROM 22 corresponding to the address of the ROM 22 indicated by the program counter 38. Further, in the important process, the address of the ROM 22 indicated by the program counter 38 is changed to the address of the ROM 22 in which the instruction to be executed next is stored (that is, the program counter is incremented by one). In the important process, the value of the expected value counter 40 is changed (increased) by a specified value (ie, “1”).
  • the address of the ROM 22 that is, the value of the program counter 38 indicated by the program counter 38 and the value of the expected value counter 40 are incremented by one.
  • the execution unit 32 of the CPU 30 causes the ROM 22 pointed to by the program counter 38.
  • the instruction stored in the storage area of the ROM 22 corresponding to the address is read and executed.
  • the execution unit 32 of the CPU 30 shifts the process to the return confirmation process.
  • the execution unit 32 of the CPU 30 executes a return (jump) to the normal process (in FIG. 2, (D)), and the return destination ID written in the dedicated register 42 in the important process is stored in the ROM 22.
  • the execution unit 32 of the CPU 30 executes the abnormality process.
  • the execution unit 32 of the CPU 30 returns the return written in the dedicated register 42. Delete the destination ID. Then, the execution unit 32 of the CPU 30 sequentially executes each instruction constituting the normal process.
  • the expected value counter 40 stores the ROM 22 stored in the program counter 38 at the time of the shift. Stores the address. At this time, the address of the ROM 22 stored in the expected value counter 40 is the address of the ROM 22 in which the instruction to be executed first in the important process is stored.
  • the address of the ROM 22 (that is, the value of the expected value counter 40) stored in the expected value counter 40 is a specified value (that is, “1”) every time an instruction is executed by the execution unit 32 of the CPU 30. Increased. By increasing the specified value, the content of the expected value counter 40 is updated to the address of the ROM 22 where the instruction to be executed next in the important process is stored.
  • the address of the ROM 22 indicated by the program counter 38 is the next instruction to be executed every time the instruction is read regardless of whether the instruction executed by the execution unit 32 of the CPU 30 is an instruction constituting an important process. Is changed to the address of the ROM 22 in which is stored (incremented by one).
  • the address of the ROM 22 that is, the value of the program counter 38 indicated by the program counter 38 and the value of the expected value counter 40 at the time of shifting to the important process are Match. Further, if no abnormality such as a hardware failure has occurred in the logic circuit 10, the address of the ROM 22 (that is, the value of the program counter 38) indicated by the program counter 38 and the expected value counter 40 are displayed during execution of the important process. It continues to match the value.
  • the program counter 38 and the expected value counter 40 may not operate normally. In this case, the address of the ROM 22 indicated by the program counter 38 (that is, the value of the program counter 38) does not match the value of the expected value counter 40.
  • the CPU 30 can detect the occurrence of an abnormality such as a hardware failure at least during execution of the important process. And according to CPU30, when abnormality is detected, by performing abnormality processing, the unreasonable risk caused by falling into a malfunction can be reduced, ie, functional safety can be ensured.
  • an abnormality such as a hardware failure
  • each instruction constituting the important process is read from the ROM 22 and executed. To do.
  • the CPU 30 can execute each instruction constituting the important process when the logic circuit 10 is normal.
  • CPU30 it can be ensured that each command which constitutes an important process is executed according to a predetermined execution order. As a result, the CPU 30 can more reliably reduce the irrational risk caused by the malfunction.
  • the security of functional safety is realized by using only the program counter 38 and the expected value counter 40 as a double system. For this reason, according to the CPU 30, unlike the conventional technique, it is not necessary to provide two execution units themselves. As a result, according to the CPU 30, power consumption can be suppressed as compared with the conventional technology.
  • the CPU 30 executes a migration confirmation process when the process is shifted from the normal process to the important process.
  • this migration confirmation process it can be determined whether or not the process can be successfully migrated to the important process.
  • the CPU 30 executes a return confirmation process when shifting the process from the important process to the normal process.
  • this return confirmation processing it can be determined whether or not the normal processing can be successfully performed.
  • the logic circuit 10 when an abnormality is detected in the transition confirmation process or the return confirmation process, the abnormality process is executed. Therefore, when the transition to the important process or the return to the normal process occurs, Even if a hardware failure occurs, the unreasonable risk caused by the failure can be reduced.
  • the comparison circuit 50 in the CPU 30 operates during a period in which the execution unit 32 is executing an important process. For this reason, it is possible to prevent the value of the program counter 38 from being compared with the value of the expected value counter 40 when the execution unit 32 executes a process other than the important process, and an unnecessary abnormal process is executed. Can be prevented. [Other Embodiments] As mentioned above, although embodiment of this indication was described, this indication is not limited to the above-mentioned embodiment, and can be carried out in various modes in the range which does not deviate from the gist of this indication.
  • the process structure executed by the execution unit 32 of the CPU 30 jumps to the important process in the middle of the normal process, and returns to the normal process by jumping to the normal process after the important process ends.
  • the structure of processing executed by the execution unit 32 of the CPU 30 is not limited to this.
  • the structure of the process executed by the execution unit 32 of the CPU 30 jumps to the important process in the middle of the normal process, and the normal process is performed without executing the return confirmation process after the important process is completed. It is good also as a structure which restarts.
  • the instruction after the important process in the normal process is stored in the ROM 22 immediately after the area in which the instruction constituting the important process is stored (for example, in the example shown in FIG. 2, from the address “1050”). Need to be. Further, in this case, it is necessary to omit writing the return destination ID to the dedicated register 42 as the last instruction in the important process.
  • the process executed by the execution unit 32 of the CPU 30 may be only an important process.
  • the normal process, the migration confirmation process, and the return confirmation process are omitted as the processes executed by the execution unit 32 of the CPU 30.
  • writing of the return destination ID to the dedicated register 42 is omitted as the last instruction in the important process.
  • the process executed by the execution unit 32 of the CPU 30 is structured to include only important processes, and jumps to another important process in the middle of executing one important process, and after the other important processes are finished. It is good also as a structure which returns to the original important process.
  • the return confirmation process may be omitted as a process executed by the execution unit 32 in the CPU 30.
  • the address of the ROM 22 stored in the expected value counter 40 is saved using a general-purpose register or stack, and after returning to the original important process, It is necessary to return the address of the ROM 22 saved in the general-purpose register or stack to the expected value counter 40.
  • the process executed by the execution unit 32 of the CPU 30 has a mixture of a plurality of normal processes and a plurality of important processes.
  • the transition from the normal process to the important process and the shift from the important process to the normal process are jumped.
  • It may be a structure executed by In this case, the migration confirmation process may be executed every time the normal process is shifted to the important process, and the return confirmation process may be performed every time the important process is shifted to the normal process.
  • writing the return destination ID to the dedicated register 42 is executed as an instruction constituting the important process.
  • writing the return destination ID to the dedicated register 42 is not an important process. It may be executed as a return confirmation process, or may be executed as a separate process between the important process and the return confirmation process. Another process in this case may include S410 in the return confirmation process.
  • the comparison circuit 50 compares the address of the ROM 22 indicated by the program counter 38 with the address of the ROM 22 stored in the expected value counter 40. May be implemented by the execution unit 32.
  • the switch 64 was connected to the input circuit 6 of ECU1 of the said embodiment, this switch 64 may be abbreviate
  • ECU electronice control unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

 電子制御装置(Electronic Control Unit)において、重要処理は、逐次実行され分岐命令を含まない複数の命令によって構成されており、命令のそれぞれが、ROMにおいてアドレスが規定値(例えば、「1」)ずつ変化する格納領域のそれぞれに実行順序に従って格納されている。重要処理においては、重要処理へと移行した時点でのプログラムカウンタ(PC)の値を期待値カウンタに格納する(S310)。比較回路での比較の結果、PCの値と期待値カウンタの値とが不一致であれば(S320:NO)、異常処理を実行する(S340-1~S340-N)。一方、比較回路での比較の結果、PCの値と期待値カウンタの値とが一致していれば(S320:YES)、PCが指し示す命令を読み出して実行し、PCの値を変更する。さらに、期待値カウンタの値を規定値分変化(増加)させる。

Description

電子制御装置 関連出願の相互参照
 本開示は、2014年3月14日に出願された日本出願番号2014-51665号に基づくもので、ここにその記載内容を援用する。
 本開示は、メモリに格納された命令を読み出して実行する電子制御装置(Electronic Control Unit)に関する。
 従来、メモリに格納された命令を読み出して実行することで、自動車に設けられた灯火装置やパワーウインドウなどのボデー系を制御する電子制御装置が知られている(特許文献1参照)。
 この種の電子制御装置の中には、当該電子制御装置が機能不全に陥ることで引き起こされる不合理なリスクを低減する(即ち、機能安全を担保する)ために、デュアルロックステップ方式が採用されたものがある。
 このデュアルロックステップ方式の電子制御装置は、2つの演算装置を備えたマイクロコンピュータ(いわゆるマイコン)を中心に構成され、その2つの演算装置がそれぞれ、同一のタイミングで同一の命令を実行する(演算を実行する)。そして、演算装置それぞれにおける演算結果が不一致であれば、電子制御装置に異常が生じたものと判定し、当該電子制御装置を再起動したり、異常が生じた旨を報知したりする。
JP 2006-150999 A
 ところで、デュアルロックステップ方式の電子制御装置(マイコン)は、演算装置を2つ備え、その2つの演算装置にて同時に同一の命令を実行しなければならない。すなわち、デュアルロックステップ方式の電子制御装置(マイコン)では、演算装置を常時2つ動作させる必要があり、消費電力が大きくなる。
 換言すると、従来の技術では、機能安全を担保しつつ、消費電力の増加を抑制することが容易ではない。
 本開示は、電子制御装置において、機能安全を担保しつつ、消費電力の増加を抑制することを目的とする。
 上記目的を達成するためになされた本開示の一つに例によれば、メモリに格納された命令を読み出して実行する電子制御装置は、プログラムカウンタと、実行部と、変更部と、格納制御部と、更新部と、比較部と、異常判定部とを備える。
 プログラムカウンタは、次に実行すべき命令が格納されたメモリのアドレスを指し示す。また、実行部は、プログラムカウンタが指し示すアドレスに対応するメモリの格納領域に格納された命令を読み出して実行する。そして、変更部は、実行部によって命令が実行されるごとに、プログラムカウンタが指し示すメモリのアドレスを、次に実行すべき命令が格納されたメモリのアドレスへと変更する。
 格納制御部は、重要処理を構成する命令群へと移行すると、その移行時点でプログラムカウンタに格納されているメモリのアドレスを期待値カウンタに格納する。ここで言う重要処理を構成する命令群とは、特定の処理を実現するように逐次実行される複数の命令であり、分岐命令を含まない複数の命令によって構成される。さらに、重要処理を構成する命令群は、規定値ずつアドレスが変化するメモリの格納領域のそれぞれに、その実行順序に従って命令のそれぞれが格納される。
 そして、更新部は、重要処理を構成する命令群への移行後に実行部によって命令が実行されるごとに、期待値カウンタに格納されているメモリのアドレスを規定値分変化させる。比較部は、プログラムカウンタが指し示すメモリのアドレスと、期待値カウンタに格納されているメモリのアドレスとを比較する。
 その比較の結果、両者が不一致であれば、異常判定部は、異常が発生したものと判定する。すなわち、上記の構成の電子制御装置では、実行部が実行すべき処理(命令)が重要処理を構成する命令群へと移行されると、期待値カウンタには、その移行時点でプログラムカウンタに格納されているメモリのアドレスが格納される。この時点で期待値カウンタに格納されるメモリのアドレス(値)は、重要処理を構成する命令群において最初に実行されるべき命令が格納されているメモリのアドレスである。そして、この期待値カウンタに格納されているメモリのアドレス(値)は、実行部によって命令が実行されるごとに、規定値分変化させられる。この規定値分変化させられることによって、期待値カウンタの内容(値)は、重要処理を構成する命令群において次に実行されるべき命令が格納されているメモリのアドレスへと更新される。
 一方、プログラムカウンタが指し示すメモリのアドレスは、実行部が実行する命令が重要処理を構成する命令群であるか否かにかかわらず、命令が実行されるごとに、次に実行すべき命令が格納されたメモリのアドレスへと変更される。
 したがって、重要処理を構成する命令群へと移行した時点では、プログラムカウンタが指し示すメモリのアドレス(値)と、期待値カウンタに格納されているメモリのアドレス(値)とは一致している。さらに、電子制御装置において、ハードウェア故障などの異常が生じていなければ、少なくとも、重要処理を構成する命令群の実行中は、プログラムカウンタが指し示すメモリのアドレス(値)と、期待値カウンタに格納されているメモリのアドレス(値)とは一致し続ける。
 ところが、電子制御装置において、ハードウェア故障などの異常が生じた場合には、プログラムカウンタと期待値カウンタとの少なくとも一方が正常に動作しなくなる可能性がある。この場合、プログラムカウンタが指し示すメモリのアドレス(値)と、期待値カウンタに格納されているメモリのアドレス(値)とは不一致となる。
 したがって、上記の構成によれば、少なくとも重要処理を構成する命令群の実行中における異常の発生を検出できる。そして、上記の構成の電子制御装置において、異常が検出された場合に、電子制御装置をリセットしたり、異常が発生した旨を報知したりすれば、機能不全に陥ることで引き起こされる不合理なリスクを低減、即ち、機能安全を担保できる。
 また、上記の構成の電子制御装置によれば、プログラムカウンタと期待値カウンタとだけを二重系とすることで、機能安全の担保を実現している。このため、上記の構成の電子制御装置によれば、従来の技術と異なり、演算回路(例えば、ALU(Arithmetic Login Unit))自体を二重系とする必要が無い。この結果、上記の構成の電子制御装置によれば、従来の技術に比べて、消費電力を抑制できる。
 以上説明したように、上記の構成の電子制御装置によれば、機能安全を担保しつつ、消費電力の増加を抑制することができる。
 また、本開示は、前述した電子制御装置の他、電子制御装置における処理方法、当該処理方法を実現するためのプログラム製品、当該プログラム製品を格納したコンピュータ読取可能な非遷移の記憶媒体としても実現することができる。
 本開示についての上記目的およびその他の目的、特徴や利点は、添付の図面を参照しながら下記の詳細な記述により、より明確になる。
本開示が適用された電子制御装置の概略構成を示すブロック図 ROMに格納された命令を示す説明図 CPUが実行する通常処理の処理手順を示すフローチャート図 CPUが実行する移行確認処理の処理手順を示すフローチャート図 CPUが実行する重要処理の処理手順を示すフローチャート図 CPUが実行する復帰確認処理の処理手順を示すフローチャート図
 以下に本開示の実施形態を図面と共に説明する。
 <電子制御装置>
 図1に示す電子制御装置1は、自動車に搭載された車載装置(いわゆる負荷)60を制御するものである。以下、電子制御装置1を「ECU(Electronic Control Unit)」1と称す。
 また、ECU1が制御対象とする車載装置60として、自動車に設けられた灯火装置やパワーウインドウ、ドアの錠前などのいわゆるボデー系が考えられる。ただし、ECU1が制御対象とする車載装置60は、これに限るものではなく、例えば、内燃機関や、制動装置、パワートレイン機構、ナビゲーション装置、各種メータなどでも良い。
 ECU1は、電源回路4と、入力回路6と、出力回路8と、論理回路10とを備えている。
 電源回路4は、イグニッションスイッチ62がオンされると、車載バッテリー58から供給される電力を、ECU1を構成する各回路6,8,10の動作に必要な電力へと変換して、各回路6,8,10に供給する。入力回路6は、SW64がONされると、車載装置60の制御に必要な外部からの信号を受け付け、その受け付けた信号を論理回路10に出力する。出力回路8は、車載装置60を制御する制御信号であって、論理回路10からの制御信号を車載装置60に出力する。
 そして、論理回路10は、ROM22と、RAM24と、インターフェース(I/F)26と、CPU30とを備えている。
 このうち、ROM22は、電源が切断されても記憶内容を保持する必要がある処理プログラムやデータを格納する。RAM24は、処理プログラムやデータを一時的に格納する。I/F26は、入力回路6及び出力回路8を介して、他の電子制御装置や車載装置との間で情報通信を実行する。
 CPU30は、ROM22やRAM24に記憶された処理プログラムに従って各種処理を実行する中央演算処理装置である。このCPU30は、少なくとも、実行ユニット32と、レジスタ36と、比較回路50とを備えている。
 実行ユニット32は、制御回路33と、演算回路(ALU)34とを備えている。制御回路33は、ROM22やRAM24からの命令の読み込みやROM22やRAM24への情報の書き込みを制御する周知の制御装置である。また、演算回路34は、ROM22やRAM24から読み込まれた命令を演算(実行)する周知の演算装置である。なお、制御回路33と演算回路34とは、実行ユニット32として一体に構成されていなくとも良く、別個に構成されていても良い。尚、本願では、「情報」は不可算名詞のみならず可算名詞としても使用される。
 本実施形態においては、レジスタ36として、少なくとも、プログラムカウンタ(PC)38と、期待値カウンタ40と、専用レジスタ42と、アキュームレータ(ACC)44と、汎用レジスタ46とが用意されている。
 このうち、プログラムカウンタ38は、次に実行すべき命令が格納されたメモリのアドレスを指し示す周知のレジスタであり、命令が実行されるごとに更新される。
 期待値カウンタ40は、後述する重要処理において、次に実行すべき命令が格納されたメモリのアドレス(値)またはその期待値を格納する専用のレジスタである。
 また、専用レジスタ42は、後述する移行先IDまたは復帰先IDが格納される専用のレジスタである。アキュームレータ44は、演算結果の累積に用いる周知のレジスタである。汎用レジスタ46は、命令に従って各種機能を実現する周知のレジスタである。
 比較回路50は、プログラムカウンタ38が指し示すメモリのアドレス(即ち、プログラムカウンタ38の値)と、期待値カウンタ40の値とを比較する比較器である。そして、比較回路50は、プログラムカウンタ38の値と、期待値カウンタ40の値とが不一致であれば、異常処理を実行するように割り込み信号を出力する。
 なお、本実施形態における比較回路50は、実行ユニット32が実行する処理が、後述する重要処理へと移行した場合に起動され、重要処理から他の処理へと移行すると動作が停止されるように構成されている。また、比較回路50は、重要処理を構成する各命令が実行ユニット32によって実行される前に、プログラムカウンタ38の値と、期待値カウンタ40の値との比較を実行するように構成されている。
 <ROMに格納されるプログラム>
 本実施形態のROM22には、CPU30の実行ユニット32が実行する処理プログラムとして、図2に示すように、少なくとも、通常処理を実行するための処理プログラムと、移行確認処理を実行するための処理プログラムと、重要処理を実行するための処理プログラムと、復帰確認処理を実行するための処理プログラムとが格納されている。
 通常処理とは、制御対象としての車載装置60を制御し、規定された機能を実現する処理である。本実施形態の通常処理は、逐次実行される複数の命令によって構成された処理である(通常命令群の一例)。この通常処理は、実行ユニット32が実行すべき命令としてサブルーチンへのジャンプや条件分岐などを含む。そのジャンプ(命令)の1つとして、本実施形態の通常処理は、移行確認処理へのジャンプを含む。
 なお、本実施形態における通常処理を構成する各命令は、ROM22における特定の格納領域に格納されている。この通常処理を構成する命令のそれぞれは、実行順序に従って、アドレスが小さい方から順にROM22に格納されている。
 また、重要処理は、特定の機能を実現するように逐次実行される複数の命令によって構成された処理である。ここで言う「重要」とは「優先度」とも言及される。「重要である」あるいは「重要度が高い」とは、「優先度」が高いと同等である。また、「特定の機能」は、通常処理の動作に影響を及ぼす(機能安全の要求に関わる)機能であり、例えば、車載装置の制御に必要となる各種設定をレジスタ36やROM22の書換可能領域に書き込む機能を含む。なお、実行ユニット32が実行する重要処理の個数は、1つであっても良いし、複数であっても良い。
 本実施形態の重要処理は、分岐命令を含まない命令によって構成されており、当該重要処理を構成する命令それぞれがROM22に格納されている順序で実行されるように構成されている。なお、ここで言う分岐命令とは、例えば、条件分岐やジャンプである。
 また、本実施形態においては、重要処理を構成する命令のそれぞれは、ROM22において、通常処理が格納される特定の格納領域(例えば、図2に示すアドレス「2000~4000」及び「4011」以降によって規定される領域)からアドレスが離れた格納領域(例えば、図2に示すアドレス「1000~1050」によって規定される領域)に格納されている。そして、重要処理を構成する命令のそれぞれは、ROM22において、規定値(例えば、「1」)ずつアドレスが変化する格納領域のそれぞれに、アドレスが小さい方から実行順序に従って格納されている。
 すなわち、本実施形態における通常処理から重要処理への移行は、ジャンプによって実現される。
 次に、移行確認処理は、通常処理から重要処理へと移行する過程で実行される処理であり、重要処理を構成する命令群へと正常に移行可能であるか否かを判定する処理である。本実施形態においては、移行確認処理を構成する命令は、ROM22において、重要処理が格納された格納領域の前段(例えば、図2に示すアドレス「990~999」によって規定される領域)に格納されている。
 また、復帰確認処理は、重要処理を終了した後、通常処理へと移行する過程で実行される処理であり、通常処理へと正常に移行可能であるか否かを判定する処理である。本実施形態においては、復帰確認処理を構成する命令は、ROM22において、重要処理が格納された格納領域の後段(例えば、図2に示すアドレス「1060」によって規定される領域)、及び復帰後の通常処理が格納された格納領域の前段(例えば、図2に示すアドレス「4001」によって規定される領域)に格納されている。
 <通常処理>
 次に、CPU30の実行ユニット32が実行する通常処理について説明する。
 通常処理は、例えば、イグニッションスイッチ62及びスイッチ64がオンされると起動される。なお、通常処理の起動条件は、これに限るものではなく、その他の条件を満たす場合であっても良い。
 ここで、この出願に記載されるフローチャート、あるいは、フローチャートの処理は、複数のセクション(部)(あるいはステップと言及される)を含み、各セクションは、たとえば、S110と表現される。さらに、各セクションは、複数のサブセクションに分割されることができる、一方、複数のセクションが合わさって一つのセクションにすることも可能である。さらに、各セクションは、デバイス、モジュールとして言及されることができる。
また、上記の複数のセクションの各々あるいは組合わさったものは、(i)ハードウエアユニット(例えば、コンピュータ)と組み合わさったソフトウエアのセクションのみならず、(ii)ハードウエア(例えば、集積回路、配線論理回路)のセクションとして、関連する装置の機能を含みあるいは含まずに実現できる。さらに、ハードウエアのセクションは、マイクロコンピュータの内部に含まれることもできる。
 この通常処理が起動されると、図3に示すように、CPU30の実行ユニット32は、ROM22に格納された各命令を逐次読み出して実行する。そして、通常処理を構成する命令がS110となると、CPU30の実行ユニット32は、専用レジスタ42に移行先IDを書き込む(S110)。この移行先IDとは、CPU30の実行ユニット32が通常処理から移行(ジャンプ)させるべき重要処理を識別する識別情報である。
 続いて、CPU30の実行ユニット32は、重要処理が記載されているROM22の格納空間の前段の格納空間(例えば、図2に示す例では、移行確認処理が格納された空間)へと処理をジャンプさせる(S120)。そして、CPU30の実行ユニット32は、移行確認処理を実行し(S130)、その移行確認処理の結果、重要処理へと正常に移行可
能であれば、重要処理を実行する(S140)。
 さらに、CPU30の実行ユニット32は、重要処理を終了すると、復帰確認処理を実行し(S150)、その復帰確認処理の結果、通常処理へと正常に移行可能であれば、通常処理を構成する各命令を逐次実行する。
 <移行確認処理>
 次に、移行確認処理について説明する。
 この移行確認処理では、CPU30の実行ユニット32は、図4に示すように、通常処理のS130で起動されると、S110において専用レジスタ42に書き込まれた移行先IDを、ROM22の規定された格納領域から読み出した確認IDと比較する(S210)。なお、確認IDとは、重要処理ごとに割り当てられる、各重要処理にユニーク(特有)な識別情報である。そして、このS210にて比較の対象とする確認IDは、移行予定の重要処理に割り当てられたものである。
 このS210での比較の結果、専用レジスタ42に書き込まれた移行先IDが、ROM22の規定された格納領域から読み出した確認IDと不一致であれば(S210:NO)、CPU30の実行ユニット32は、CPU30自身または論理回路10に異常が発生したものと判定して異常処理を実行する(S220)。ここで言う異常処理は、ECU1をリセット(再起動)したり、異常が発生した旨をインジケータや表示装置などを介して報知したりする周知の処理である。
 一方、S210での判定の結果、専用レジスタ42に書き込まれた移行先IDが、ROM22の規定された格納領域から読み出した確認IDと一致していれば(S210:YES)、CPU30の実行ユニット32は、専用レジスタ42に書き込まれた移行先IDを消去する。そして、CPU30の実行ユニット32は、CPU30自身または論理回路10に異常が発生していないものと判定して重要処理へと移行する。
 <重要処理>
 次に、重要処理について説明する。
 この重要処理では、CPU30の実行ユニット32は、図5に示すように、重要処理へと移行した時点でプログラムカウンタ38が指し示すROM22のアドレスを、期待値カウンタ40に格納する(S310)。
 続いて、CPU30の比較回路50が、プログラムカウンタ38が指し示すROM22のアドレス(即ち、プログラムカウンタ38の値)と、期待値カウンタ40の値とを比較する(S320)。そして、比較回路50での比較の結果、両者が不一致であれば(S320:NO)、CPU30の実行ユニット32は、異常処理を実行する(S340)。ここで言う異常処理は、ECU1をリセット(再起動)したり、異常が発生した旨をインジケータや表示装置などを介して報知したりする周知の処理である。なお、S340における異常処理は、周知の割り込み処理として実現されれば良い。
 一方、比較回路50での比較の結果、プログラムカウンタ38が指し示すROM22のアドレス(即ち、プログラムカウンタ38の値)と、期待値カウンタ40の値との両者が一致していれば(S320:YES)、CPU30の実行ユニット32は、プログラムカウンタ38が指し示すROM22のアドレスに対応するROM22の格納領域に格納された命令を読み出して実行する(S330)。
 さらに、S330では、プログラムカウンタ38が指し示すROM22のアドレスを、次に実行すべき命令が格納されたROM22のアドレスへと変更する。すなわち、S330では、プログラムカウンタ38の値を1つインクリメントする。
 また、本実施形態のS330では、期待値カウンタ40に格納されているROM22のアドレスを規定値(即ち、「1」)分変化させる。具体的には、S330では、ROM22のアドレスを規定値(即ち、「1」)分増加させる。
 その後、CPU30は、S320~S330までの一連の処理ステップを、重要処理を構成する命令の個数(N個)分繰り返す。
 本実施形態においては、重要処理を構成する全ての命令のうち、実行順序に沿った最後の命令(S330-N)は、専用レジスタ42への復帰先IDの書き込みとして構成されている。この復帰先IDとは、CPU30が処理を移行(復帰)させるべき通常処理を識別する識別情報である。
 つまり、本実施形態においては、プログラムカウンタ38が指し示すROM22のアドレス(即ち、プログラムカウンタ38の値)と、期待値カウンタ40の値とを、比較回路50で比較した結果、両者が不一致であれば、実行ユニット32は異常処理を実行する。一方、両者が一致すれば、実行ユニット32は重要処理を構成する命令の1つを実行する。このように本実施形態においては、プログラムカウンタ38が指し示すROM22のアドレス(即ち、プログラムカウンタ38の値)と、期待値カウンタ40の値との比較は、比較回路50が実行する。
 ただし、図5においては、論理回路10全体の動作を理解することを目的として、比較回路50が実行するプログラムカウンタ38の値と期待値カウンタ40の値との比較を、実行ユニット32が実行する重要処理の処理手順を説明するフローチャートに組み込んでいる。
 <復帰確認処理>
 次に、復帰確認処理について説明する。
 この復帰確認処理では、CPU30の実行ユニット32は、図6に示すように、起動されると、通常処理の復帰先が記載されているROM22の格納空間の前段の格納空間(例えば、図2に示す例では、S420の命令が格納された空間)へと、処理をジャンプさせる(S410)。
 続いて、CPU30の実行ユニット32は、重要処理において専用レジスタ42に書き込まれた復帰先IDを、ROM22の規定された格納領域から読み出した帰還IDと比較する(S420)。なお、帰還IDとは、通常処理ごとに割り当てられる、各通常処理にユニーク(特有)な識別情報である。そして、このS420にて比較の対象とする帰還IDは、移行(復帰)予定の通常処理に割り当てられたものである。
 このS420での比較の結果、専用レジスタ42に書き込まれた復帰先IDが、ROM22の規定された格納領域から読み出した帰還IDと不一致であれば(S420:NO)、CPU30の実行ユニット32は、CPU30自身または論理回路10に異常が発生したものと判定して異常処理を実行する(S430)。ここで言う異常処理は、ECU1をリセット(再起動)したり、異常が発生した旨をインジケータや表示装置などを介して報知したりする周知の処理である。
 一方、S420での判定の結果、専用レジスタ42に書き込まれた復帰先IDが、ROM22の規定された格納領域から読み出した帰還IDと一致していれば(S420:YES)、CPU30の実行ユニット32は、専用レジスタ42に書き込まれた復帰先IDを消去する。
 そして、CPU30の実行ユニット32は、CPU30自身または論理回路10に異常が発生していないものと判定して通常処理を構成する各命令を逐次実行する。
 つまり、CPU30の実行ユニット32は、通常処理において、S110へと到達すると、専用レジスタ42に移行先IDを書き込む。そして、CPU30の実行ユニット32は、重要処理が記載されているROM22の格納空間へと処理をジャンプさせる(図2中:(A))。
 この処理のジャンプにより、移行確認処理が起動されると(図2中:(B))、CPU30の実行ユニット32は、専用レジスタ42に書き込まれた移行先IDと、ROM22の規定された格納領域から読み出した確認IDとを比較する。この比較の結果、専用レジスタ42に書き込まれた移行先IDが、ROM22の規定された格納領域から読み出した確認IDと不一致であれば、CPU30の実行ユニット32は、異常処理を実行する。
 一方、比較の結果、専用レジスタ42に書き込まれた移行先IDが、ROM22の規定された格納領域から読み出した確認IDと一致すれば、CPU30の実行ユニット32は、専用レジスタ42に書き込まれた移行先IDを消去する。そして、CPU30の実行ユニット32は、重要処理へと処理を移行させる。
 その重要処理においては、CPU30の実行ユニット32は、重要処理へと移行した時点でプログラムカウンタ38が指し示すROM22のアドレスを、期待値カウンタ40にも格納する。続いて、CPU30の比較回路50が、プログラムカウンタ38が指し示すROM22のアドレス(即ち、プログラムカウンタ38の値)と、期待値カウンタ40の値とを比較する。この比較の結果、両者が不一致であれば、CPU30の実行ユニット32は、異常処理を実行する。
 一方、比較回路50での比較の結果、プログラムカウンタ38が指し示すROM22のアドレス(即ち、プログラムカウンタ38の値)と、期待値カウンタ40の値との両者が一致していれば、CPU30の実行ユニット32は、プログラムカウンタ38が指し示すROM22のアドレスに対応するROM22の格納領域に格納された命令を読み出して実行する。さらに、重要処理では、プログラムカウンタ38が指し示すROM22のアドレスは、次に実行すべき命令が格納されたROM22のアドレスへと変更される(即ち、プログラムカウンタを1つインクリメントする)。また、重要処理では、期待値カウンタ40の値は、規定値(即ち、「1」)分変化(増加)される。
 すなわち、重要処理においては、命令が実行されるごとに、プログラムカウンタ38が指し示すROM22のアドレス(即ち、プログラムカウンタ38の値)と、期待値カウンタ40の値とを1つインクリメントする。
 そして、プログラムカウンタ38が指し示すROM22のアドレス(即ち、プログラムカウンタ38の値)と、期待値カウンタ40の値との両者が一致していれば、CPU30の実行ユニット32は、プログラムカウンタ38が指し示すROM22のアドレスに対応するROM22の格納領域に格納された命令を読み出して実行する。
 なお、重要処理を構成する命令として、専用レジスタ42への復帰先IDの書き込みを実行すると(図2中:(C))、CPU30の実行ユニット32は、復帰確認処理へと処理を移行させる。その復帰確認処理では、CPU30の実行ユニット32は、通常処理への帰還(ジャンプ)を実行し(図2中:(D))、重要処理において専用レジスタ42に書き込まれた復帰先IDを、ROM22の規定された格納領域から読み出した帰還IDと比較する(図2中:(E))。
 この比較の結果、専用レジスタ42に書き込まれた復帰先IDが、ROM22の規定された格納領域から読み出した帰還IDと不一致であれば、CPU30の実行ユニット32は、異常処理を実行する。一方、比較の結果、専用レジスタ42に書き込まれた復帰先IDが、ROM22の規定された格納領域から読み出した帰還IDと一致すれば、CPU30の実行ユニット32は、専用レジスタ42に書き込まれた復帰先IDを消去する。そして、CPU30の実行ユニット32は、通常処理を構成する各命令を逐次実行する。
[実施形態の効果]
 以上説明したように、CPU30の実行ユニット32が実行すべき処理(命令)が重要処理へと移行されると、期待値カウンタ40には、その移行時点でプログラムカウンタ38に格納されているROM22のアドレスが格納される。この時点で、期待値カウンタ40に格納されるROM22のアドレスは、重要処理において最初に実行されるべき命令が格納されているROM22のアドレスである。
 そして、この期待値カウンタ40に格納されているROM22のアドレス(即ち、期待値カウンタ40の値)は、CPU30の実行ユニット32によって命令が実行されるごとに、規定値(即ち、「1」)増加させられる。この規定値増加させられることによって、期待値カウンタ40の内容は、重要処理において次に実行されるべき命令が格納されているROM22のアドレスへと更新される。
 一方、プログラムカウンタ38が指し示すROM22のアドレスは、CPU30の実行ユニット32が実行する命令が重要処理を構成する命令であるか否かにかかわらず、命令が読み出されるごとに、次に実行すべき命令が格納されたROM22のアドレスへと変更される(1つインクリメントされる)。
 したがって、ハードウェア故障などの異常が生じていなければ、重要処理へと移行した時点では、プログラムカウンタ38が指し示すROM22のアドレス(即ち、プログラムカウンタ38の値)と、期待値カウンタ40の値とは一致している。さらに、論理回路10において、ハードウェア故障などの異常が生じていなければ、重要処理の実行中は、プログラムカウンタ38が指し示すROM22のアドレス(即ち、プログラムカウンタ38の値)と、期待値カウンタ40の値とは一致し続ける。
 ところが、論理回路10において、ハードウェア故障などが生じた場合には、プログラムカウンタ38と期待値カウンタ40との少なくとも一方が正常に動作しなくなる可能性がある。この場合、プログラムカウンタ38が指し示すROM22のアドレス(即ち、プログラムカウンタ38の値)と、期待値カウンタ40の値とは不一致となる。
 したがって、CPU30によれば、少なくとも重要処理の実行中におけるハードウェア故障などの異常の発生を検出できる。そして、CPU30によれば、異常が検出された場合に、異常処理を実行することで、機能不全に陥ることで引き起こされる不合理なリスクを低減、即ち、機能安全を担保できる。
 特に、CPU30では、プログラムカウンタ38が指し示すROM22のアドレス(即ち、プログラムカウンタ38の値)と、期待値カウンタ40の値とが一致した場合に、重要処理を構成する各命令をROM22から読み出して実行する。これにより、CPU30によれば、重要処理を構成する各命令を、論理回路10が正常である場合に実行できる。
 そして、CPU30によれば、重要処理を構成する各命令が、予め規定された実行順序の通りに実行されることを担保できる。この結果、CPU30によれば、機能不全に陥ることで引き起こされる不合理なリスクを、より確実に低減できる。
 また、CPU30によれば、プログラムカウンタ38と期待値カウンタ40とだけを二重系とすることで、機能安全の担保を実現している。このため、CPU30によれば、従来の技術と異なり、実行ユニット自体を2つ備える必要が無い。この結果、CPU30によれば、従来の技術に比べて、消費電力を抑制できる。
 以上説明したように、CPU30によれば、機能安全を担保しつつ、消費電力の増加を抑制することができる。
 また、CPU30では、通常処理から重要処理へと処理を移行させる際に、移行確認処理を実行している。この移行確認処理により、重要処理へと正常に移行可能であるか否かを判定できる。
 さらに、CPU30では、重要処理から通常処理へと処理を移行させる際に、復帰確認処理を実行している。この復帰確認処理により、通常処理へと正常に移行可能であるか否かを判定できる。
 そして、論理回路10によれば、移行確認処理や復帰確認処理において異常が検出された場合、異常処理を実行しているため、重要処理への移行の際や通常処理への復帰の際にハードウェア故障などが生じたとしても、その故障によって引き起こされる不合理なリスクを低減できる。
 なお、CPU30における比較回路50は、実行ユニット32が重要処理を実行している期間中動作する。このため、重要処理以外の処理を実行ユニット32が実行している際に、プログラムカウンタ38の値と、期待値カウンタ40との値とが比較されることを防止でき、不要な異常処理が実行されることを防止できる。
[その他の実施形態]
 以上、本開示の実施形態について説明したが、本開示は上記実施形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において、様々な態様にて実施することが可能である。
 例えば、上記実施形態では、CPU30の実行ユニット32が実行する処理の構造を、通常処理の途中で重要処理へとジャンプし、重要処理の終了後に通常処理へとジャンプすることで通常処理へと復帰する構造としていたが、本開示において、CPU30の実行ユニット32が実行する処理の構造は、これに限るものでは無い。
 すなわち、本開示においては、CPU30の実行ユニット32が実行する処理の構造を、通常処理の途中で重要処理へとジャンプし、重要処理の終了後に、復帰確認処理を実行することなく、そのまま通常処理を再開する構造としても良い。この場合、通常処理における重要処理終了後の命令は、ROM22において、重要処理を構成する命令が格納された領域の直後(例えば、図2に示す例であれば、アドレス「1050」~)に格納されている必要がある。さらに、この場合、重要処理における最後の命令として、専用レジスタ42への復帰先IDの書き込みが省略されている必要がある。
 また、本開示においては、CPU30の実行ユニット32が実行する処理を、重要処理だけとしても良い。この場合、CPU30の実行ユニット32が実行する処理として、通常処理、移行確認処理、及び復帰確認処理が省略される。さらに、この場合、重要処理における最後の命令として、専用レジスタ42への復帰先IDの書き込みが省略される。
 本開示においては、CPU30の実行ユニット32が実行する処理の構造を、重要処理だけからなる構造とし、1つの重要処理の実行途中で他の重要処理へとジャンプし、他の重要処理の終了後に元の重要処理へと復帰する構造としても良い。この場合、CPU30に実行ユニット32が実行する処理として、復帰確認処理が省略されていても良い。ただし、この場合、異なる重要処理へと移行(ジャンプ)するごとに、期待値カウンタ40に格納されるROM22のアドレスを、汎用レジスタやスタックを用いて退避させ、元の重要処理へと復帰後に、汎用レジスタやスタックに退避させたROM22のアドレスを、期待値カウンタ40へと戻すことが必要となる。
 なお、CPU30の実行ユニット32が実行する処理の構造は、複数の通常処理と、複数の重要処理とが混在し、通常処理から重要処理への移行、及び重要処理から通常処理への移行がジャンプによって実行される構造としても良い。この場合、通常処理から重要処理への移行ごとに、移行確認処理を実行し、重要処理から通常処理への移行ごとに、復帰確認処理を実行すれば良い。
 また、上記実施形態においては、専用レジスタ42に復帰先IDを書き込むことを、重要処理を構成する命令として実行していたが、この専用レジスタ42に復帰先IDを書き込むことは、重要処理ではなく、復帰確認処理として実行しても良いし、重要処理と復帰確認処理との間の別の処理として実行しても良い。この場合の別の処理には、復帰確認処理におけるS410が含まれていても良い。
 ところで、上記実施形態のCPU30では、比較回路50が、プログラムカウンタ38が指し示すROM22のアドレスと、期待値カウンタ40に格納されているROM22のアドレスとを比較していたが、この比較は、処理プログラムを実行することで、実行ユニット32が実現しても良い。
 なお、上記実施形態のECU1の入力回路6には、スイッチ64が接続されていたが、このスイッチ64は省略されていても良い。すなわち、図1に示すECU1の入力回路6及び出力回路8に接続される外部の構造は、一例であって、本開示の電子制御装置(ECU)に接続される外部の構造は、どのようなものであっても良い。
 本開示は、実施例に準拠して記述されたが、本開示は当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。

Claims (4)

  1.  メモリ(22,24)に格納された命令を読み出して実行する電子制御装置であって、
     次に実行すべき命令が格納されたメモリのアドレスを指し示すプログラムカウンタ(38)と、
     前記プログラムカウンタが指し示すアドレスに対応するメモリの格納領域に格納された命令を読み出して実行する実行部(30,32,S330-1~S330-N)と、
     前記実行部によって命令が実行されるごとに、前記プログラムカウンタが指し示すメモリのアドレスを、次に実行すべき命令が格納されたメモリのアドレスへと変更する変更部(30,32,S330-1~S330-N)と、
     特定の処理を実現するように逐次実行される複数の命令であり、分岐命令を含まない複数の命令によって構成され、かつ、規定値ずつ前記アドレスが変化するメモリの格納領域のそれぞれに、その実行順序に従って命令のそれぞれが格納された重要処理を構成する命令群へと移行すると、その移行時点で前記プログラムカウンタに格納されているメモリのアドレスを期待値カウンタ(40)に格納する格納制御部(30,32,S310)と、
     前記重要処理を構成する命令群への移行後に前記実行部によって命令が実行されるごとに、前記期待値カウンタに格納されているメモリのアドレスを前記規定値分変化させる更新部(30,32,S330)と、
     前記プログラムカウンタが指し示すメモリのアドレスと、前記期待値カウンタに格納されているメモリのアドレスとを比較する比較部(50,S320-1~S320-N)と、
     前記比較部での比較の結果、両者が不一致であれば、異常が発生したものと判定する異常判定部(30,32,S340-1~S340-N)と
     を備える電子制御装置。
  2.  前記重要処理を構成する命令群には、前記重要処理を構成する命令群ごとにユニークな識別情報である確認IDが割り当てられており、
     前記重要処理を構成する命令群への移行前に、その重要処理を構成する命令群の識別情報である移行先IDをレジスタに書き込む第一書込部(30,32,S110)と、
     前記メモリの規定された格納領域から読み出し当該重要処理を構成する命令群に割り当てられた確認IDと、前記第一書込部によってレジスタに書き込まれた前記移行先IDとが一致するか否かを判定し、その判定の結果、不一致であれば、異常が発生したものとし、判定の結果、一致していれば、前記重要処理を構成する命令群へと移行させる移行確認部(30,32,S120,S130,S210,S220)と
     を備える請求項1に記載の電子制御装置。
  3.  前記重要処理を構成する命令群が終了すると移行し、逐次実行される複数の命令によって構成された通常処理を構成する命令群には、前記通常処理を構成する命令群ごとにユニークな識別情報である帰還IDが割り当てられており、
     前記通常処理を構成する命令群への移行前に、その通常処理を構成する命令群の識別情報である復帰先IDをレジスタに書き込む第二書込部(30,32,S330-N)と、
     前記メモリの規定された格納領域から読み出した当該通常処理を構成する命令群に割り当てられた帰還IDと、前記第二書込部によってレジスタに書き込まれた前記復帰先IDとが一致するか否かを判定し、その判定の結果、不一致であれば、異常が発生したものとし、判定の結果、一致していれば、前記通常処理を構成する命令群へと移行させる帰還確認部(30,32,S150,S410,S420)と
     を備える請求項1または請求項2に記載の電子制御装置。
  4.  前記比較部での比較の結果、両者が一致していれば、前記重要処理を構成する命令の前記実行部による実行を許可する許可部(30,32,50,S320,S330-1~S330-N-1)
     を備える請求項1から請求項3までのいずれか一項に記載の電子制御装置。
PCT/JP2015/000747 2014-03-14 2015-02-18 電子制御装置 WO2015136844A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE112015001252.4T DE112015001252T5 (de) 2014-03-14 2015-02-18 Elektronische Steuereinheit
US15/118,783 US10521233B2 (en) 2014-03-14 2015-02-18 Electronic control unit
CN201580013432.9A CN106104494B (zh) 2014-03-14 2015-02-18 电子控制装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014051665A JP6183251B2 (ja) 2014-03-14 2014-03-14 電子制御装置
JP2014-051665 2014-03-14

Publications (1)

Publication Number Publication Date
WO2015136844A1 true WO2015136844A1 (ja) 2015-09-17

Family

ID=54071307

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/000747 WO2015136844A1 (ja) 2014-03-14 2015-02-18 電子制御装置

Country Status (5)

Country Link
US (1) US10521233B2 (ja)
JP (1) JP6183251B2 (ja)
CN (1) CN106104494B (ja)
DE (1) DE112015001252T5 (ja)
WO (1) WO2015136844A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017146897A (ja) 2016-02-19 2017-08-24 株式会社デンソー マイクロコントローラ及び電子制御装置
JP6443372B2 (ja) * 2016-03-24 2018-12-26 トヨタ自動車株式会社 車両用ソフトウェア割当てシステム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59226946A (ja) * 1983-06-08 1984-12-20 Hitachi Ltd マイクロプログラム動作監視方式
WO2010055562A1 (ja) * 2008-11-13 2010-05-20 富士通マイクロエレクトロニクス株式会社 マイクロコンピュータ

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4398243A (en) * 1980-04-25 1983-08-09 Data General Corporation Data processing system having a unique instruction processor system
US5781753A (en) * 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
JPH052654A (ja) * 1991-06-25 1993-01-08 Nissan Motor Co Ltd マイクロコンピユータの故障検知方法および回路
US5369647A (en) * 1991-12-16 1994-11-29 Intel Corporation Circuitry and method for testing a write state machine
US5664104A (en) * 1992-12-18 1997-09-02 Fujitsu Limited Transfer processor including a plurality of failure display units wherein a transfer process is prohibited if failure is indicated in a failure display unit
US5544342A (en) * 1993-06-30 1996-08-06 International Business Machines Corporation System and method for prefetching information in a processing system
ATE241170T1 (de) * 1995-10-06 2003-06-15 Patriot Scient Corp Architektur für einen risc-mikroprozessor
JPH1091441A (ja) * 1996-09-13 1998-04-10 Sanyo Electric Co Ltd プログラム実行方法およびその方法を利用した装置
US6553290B1 (en) * 2000-02-09 2003-04-22 Oshkosh Truck Corporation Equipment service vehicle having on-board diagnostic system
WO2001069378A2 (en) * 2000-03-10 2001-09-20 Arc International Plc Method and apparatus for enhancing the performance of a pipelined data processor
KR100337149B1 (ko) * 2000-07-05 2002-05-18 권 기 홍 프로그램 테스트 및 디버깅이 용이한 중앙처리장치
FR2816887B1 (fr) * 2000-11-20 2003-03-14 Dufournier Technologies Procede et dispositif detecteur d'usure des pneumatiques ou bandes de roulement et surfaces ou zones d'usure analogues
JP3698123B2 (ja) * 2002-06-25 2005-09-21 セイコーエプソン株式会社 情報処理装置及び電子機器
JP4412905B2 (ja) * 2003-01-28 2010-02-10 パナソニック株式会社 低電力動作制御装置、およびプログラム最適化装置
US20050029869A1 (en) * 2003-08-07 2005-02-10 Ford Global Technologies, Llc Controlled vehicle shutdown system
JP4563707B2 (ja) 2004-03-25 2010-10-13 ルネサスエレクトロニクス株式会社 メモリ保護装置
US7269764B2 (en) * 2004-06-18 2007-09-11 International Business Machines Corporation Monitoring VRM-induced memory errors
US7786895B2 (en) * 2004-08-02 2010-08-31 Jacek Grzegorz Zoladek Multi-user motor vehicle telemetric system and method
JP4446168B2 (ja) 2004-11-25 2010-04-07 株式会社デンソー 自動車用制御装置
US7647458B1 (en) * 2004-12-30 2010-01-12 Azul Systems, Inc. Garbage collection
US7600155B1 (en) * 2005-12-13 2009-10-06 Nvidia Corporation Apparatus and method for monitoring and debugging a graphics processing unit
US7711990B1 (en) * 2005-12-13 2010-05-04 Nvidia Corporation Apparatus and method for debugging a graphics processing unit in response to a debug instruction
US7702888B2 (en) * 2007-02-28 2010-04-20 Globalfoundries Inc. Branch predictor directed prefetch
CN102576318B (zh) * 2010-06-25 2016-03-30 松下知识产权经营株式会社 集成电路、计算机系统、控制方法
US9552206B2 (en) * 2010-11-18 2017-01-24 Texas Instruments Incorporated Integrated circuit with control node circuitry and processing circuitry
KR101337014B1 (ko) * 2011-07-12 2013-12-05 주식회사 팬택 이동 단말기, 이를 이용하는 차량의 ecu 제어 시스템 및 방법
US9547494B2 (en) * 2014-05-30 2017-01-17 International Business Machines Corporation Absolute address branching in a fixed-width reduced instruction set computing architecture
JP2016037283A (ja) * 2014-08-08 2016-03-22 株式会社リコー 情報処理装置、情報処理方法およびプログラム
EP2996034B1 (en) * 2014-09-11 2018-08-15 Nxp B.V. Execution flow protection in microcontrollers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59226946A (ja) * 1983-06-08 1984-12-20 Hitachi Ltd マイクロプログラム動作監視方式
WO2010055562A1 (ja) * 2008-11-13 2010-05-20 富士通マイクロエレクトロニクス株式会社 マイクロコンピュータ

Also Published As

Publication number Publication date
JP2015176284A (ja) 2015-10-05
CN106104494A (zh) 2016-11-09
CN106104494B (zh) 2018-07-06
JP6183251B2 (ja) 2017-08-23
DE112015001252T5 (de) 2016-12-01
US10521233B2 (en) 2019-12-31
US20170052787A1 (en) 2017-02-23

Similar Documents

Publication Publication Date Title
US9690269B2 (en) Controller and process monitoring method including monitoring of process execution sequence
EP3330857A1 (en) Vehicle control device
JP5533789B2 (ja) 車載電子制御装置
WO2015136844A1 (ja) 電子制御装置
JP5518021B2 (ja) 情報処理装置
JP2017102633A (ja) 情報処理装置および半導体集積回路装置
JP2011008702A (ja) 故障処理装置
CN103473153B (zh) 用于检测微控制器中的潜在故障的方法和系统
US10269194B2 (en) Multiprocessor system and vehicle control system
JP5226653B2 (ja) 車載制御装置
JP5978873B2 (ja) 電子制御装置
JP6512087B2 (ja) 車両用制御装置
JP2013061783A (ja) マルチコア・プロセッサ
US10540222B2 (en) Data access device and access error notification method
JP5561241B2 (ja) マイクロコンピュータ
JP2009205528A (ja) 電子制御装置
WO2010109609A1 (ja) 処理装置及び車両用エンジン制御装置
JP6865707B2 (ja) 車両用制御装置
JP2012247849A (ja) マイクロコンピュータ
JP2015121953A (ja) マイクロコンピュータ及び電子制御装置
JP6645467B2 (ja) マイクロコンピュータ
JP2023009818A (ja) 車両用電子制御装置及び車両用電子制御装置による制御方法
JP2024014218A (ja) 書換制御装置、電子制御装置、書換制御システム、及び書換制御方法
JP2012173919A (ja) 情報処理装置、車両用電子制御ユニット、データ記憶方法
JP2021089531A (ja) 電子制御装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15761561

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15118783

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 112015001252

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15761561

Country of ref document: EP

Kind code of ref document: A1