WO2019009068A1 - 車両制御装置用の検証装置及び車両制御装置 - Google Patents

車両制御装置用の検証装置及び車両制御装置 Download PDF

Info

Publication number
WO2019009068A1
WO2019009068A1 PCT/JP2018/023394 JP2018023394W WO2019009068A1 WO 2019009068 A1 WO2019009068 A1 WO 2019009068A1 JP 2018023394 W JP2018023394 W JP 2018023394W WO 2019009068 A1 WO2019009068 A1 WO 2019009068A1
Authority
WO
WIPO (PCT)
Prior art keywords
timing
synchronization
unit
information
cores
Prior art date
Application number
PCT/JP2018/023394
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 EP18827708.1A priority Critical patent/EP3637262B1/en
Publication of WO2019009068A1 publication Critical patent/WO2019009068A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3404Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4825Interrupt from clock, e.g. time of day
    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing

Definitions

  • the present invention relates to a verification device for a vehicle control device and a vehicle control device.
  • Patent Document 1 discloses a system that synchronizes processing at a plurality of nodes.
  • the system of Patent Document 1 designates in advance the processes to be executed simultaneously. Then, the system has a function of temporarily suspending execution of the process, and synchronizes the start point of the process among a plurality of nodes.
  • the system of Patent Document 1 only synchronizes the start points of the processes, and can not sufficiently test when executing a plurality of processes in parallel. For example, as described above, testing in the case of parallelizing a program for a single core system can not be performed sufficiently.
  • the system of Patent Document 1 when a program after parallelization is executed by a plurality of nodes, the influence of a plurality of processes can not be confirmed by synchronizing at a specific timing during processing.
  • the present disclosure provides a technique for solving the above problems, and when executing a program after parallelization by a plurality of cores, processing of the plurality of cores is performed in the program before parallelization.
  • composition indicated in a claim is adopted.
  • the present application includes a plurality of means for solving the above-mentioned problems, and an example thereof is a verification device for a vehicle control device having a plurality of cores, which is a synchronization timing indicating timings to synchronize the plurality of cores.
  • a verification device is provided based on which it is determined whether each core is synchronized at the timing to be synchronized.
  • FIG. 1 is a schematic configuration diagram of a system of a vehicle in a first embodiment.
  • FIG. 2 is a diagram showing an H / W (Hardware) configuration of the vehicle control device in Embodiment 1.
  • FIG. 6 is a diagram showing the H / W configuration of the ECU in the first embodiment.
  • FIG. 6 is a diagram showing a software module configuration executed in the core of the ECU in the first embodiment.
  • FIG. 6 is a diagram showing the relationship between an ECU and a simulator in the first embodiment.
  • FIG. 2 is a diagram showing a software module configuration of a simulator in the first embodiment.
  • FIG. 6 is a diagram showing software module configurations of a control unit and a communication supervision unit of the core of the ECU in the first embodiment.
  • FIG. 6 is a diagram showing an example of control instruction information in the first embodiment.
  • FIG. 6 is a diagram showing an example of control instruction information in the first embodiment.
  • FIG. 7 is a diagram showing an example of a synchronization table in the first embodiment.
  • FIG. 7 is a diagram showing an example of a synchronization table in the first embodiment.
  • FIG. 7 is a diagram showing an example of log information in the first embodiment.
  • 5 is a flowchart showing processing executed by the simulator and the ECU in the first embodiment.
  • FIG. 7 is a diagram showing a software module configuration executed in the core of the ECU in the second embodiment.
  • FIG. 16 is a diagram showing a software module configuration executed in the ECU in the third embodiment.
  • FIG. 18 is a diagram showing an example of a synchronization table in the fourth embodiment.
  • FIG. 18 is a diagram showing an example of control instruction information in the fourth embodiment.
  • Example of the vehicle control apparatus in a vehicle is described as a suitable example. However, the following embodiments do not prevent the application to other than the vehicle control device.
  • FIG. 1 is a schematic configuration diagram of a system of a vehicle in a first embodiment.
  • Reference numeral 1 denotes a vehicle (such as a car) having a vehicle control device inside.
  • a vehicle control device 2 includes, for example, an in-vehicle network (CAN: Controller Area Network, CANFD: CAN with Flexible Data-rate, Ethernet (registered trademark), etc.) and a controller (ECU: Electronic Control Unit, etc.).
  • CAN Controller Area Network
  • CANFD Controller Area Network
  • Ethernet registered trademark
  • ECU Electronic Control Unit, etc.
  • 3 performs wireless communication (for example, communication using a mobile phone, communication using a wireless LAN, WAN, etc.
  • OBD diagnostic terminal
  • An Ethernet terminal an external recording medium (for example, USB memory, SD card, etc.) terminal, etc.
  • 4 is a vehicle control device configured by a network using a protocol different from or the same as 2.
  • Reference numeral 5 denotes a drive device (actuator or the like) for driving a mechanical and electrical device (for example, an engine, a transmission, a wheel, a brake, a steering device, etc.) for controlling vehicle motion under control of the vehicle control device 2.
  • 6 acquires information input from the outside world and generates outside world recognition information, recognizes an outside world sensor such as a camera, radar, LIDAR, ultrasonic sensor, etc., and recognizes the state (motion state, position information, etc.) of the vehicle 1 Is a recognition system configured by dynamic system sensors (acceleration, wheel speed, GPS: Global Positioning System).
  • Reference numeral 8 denotes an input device, such as a steering wheel, a pedal, a button, a lever, and a touch panel, for generating an input signal for the user to input an operation intention and an instruction to the vehicle control device 2.
  • a notification device such as a lamp, an LED, or a speaker 9 is used by the vehicle 1 to notify the outside world of the state of the vehicle 1 and the like.
  • the vehicle control device 2 is connected to the vehicle control device 4, the communication device 3, the drive device 5, the recognition device 6, the output device 7, the input device 8, the notification device 9 and the like, and transmits and receives information with each other. .
  • FIG. 2 is a diagram showing the H / W (Hardware) configuration of the vehicle control device 2 in the first embodiment.
  • Reference numeral 201 denotes a network link connected to the on-vehicle network system, and is, for example, a network link such as a CAN bus.
  • An ECU (Electronic Control Unit) 202 is connected to the network link 201 and a network link (including a dedicated line) other than the network link 201.
  • the ECU 202 controls the drive device 5 and the recognition device 6 via the network, and transmits and receives information to and from the drive device 5 and the recognition device 6.
  • Reference numeral 203 denotes a gateway (hereinafter referred to as “GW”) which connects a plurality of network links 201 and transmits / receives data with each network link.
  • GW gateway
  • the network topology of FIG. 2 is a bus type in which a plurality of ECUs 202 are connected to two buses.
  • the network topology is a star type in which a plurality of ECUs are directly connected to the GW, a link type in which the ECUs are connected in a ring shape to a series of links, or a mixture of respective types and a plurality of networks It may be a mixed type or the like.
  • an ECU having a GW function or a GW having a function of the ECU may be adopted other than the example of FIG.
  • the ECU 202 outputs the control signal to the drive device 5, acquires the information from the recognition device 6, outputs the control signal and information to the network, changes the internal state, etc. based on the data received via the network. Control processing of
  • FIG. 3 is a diagram showing the H / W configuration of the ECU 202 in the first embodiment.
  • the ECU 202 has a plurality of cores and performs parallel control using the plurality of cores.
  • Reference numeral 301 denotes a core such as a CPU (processor) that has a storage element such as a cache or a register and executes control.
  • the ECU 202 has a plurality of cores 301-1 to 301-N.
  • Reference numeral 302 denotes a random access memory (RAM) that stores volatile data accessible only to a specific core.
  • the cores 301-1 to 301-N respectively include corresponding Local RAMs 302-1 to 302-N.
  • a timer 303 manages time and time using a clock or the like (not shown).
  • Reference numeral 304 denotes a ROM (Read Only Memory) that stores a program and nonvolatile data.
  • Reference numeral 305 denotes a global random access memory (RAM) that stores volatile data accessible to unspecified cores.
  • An I / O (Input / Output) 306 transmits / receives data to / from the drive device 5 and / or the recognition device 6 connected by a network such as the network link 201 or a dedicated line.
  • An internal bus 307 is used for communication in the ECU 202.
  • Reference numeral 308 denotes an external memory capable of holding data even after power-off, such as EEPROM, SolidStateDrive, or HardDiscDrive.
  • FIG. 4 is a diagram showing a software module configuration executed in the cores 301-1 to 301-N in the first embodiment.
  • a control unit 401 analyzes data acquired from a communication I / F (Interface) (not shown) and controls the entire software module.
  • a communication management unit 402 manages the operation and state of the communication I / F, and instructs the communication I / F via the internal bus 307.
  • a time management unit 403 manages the timer 303 and acquires and controls information related to time.
  • a buffer 404 temporarily secures data.
  • the operation concept on the core 301 is shown.
  • the core 301 appropriately acquires information necessary at the time of operation from the ROM 304 and the RAM 305, or appropriately writes the information to the ROM 304 and the RAM 305.
  • FIG. 5 is a diagram showing the relationship between the ECU 202 and the simulator 501 in the first embodiment.
  • the simulator 501 is a verification device for the vehicle control device 2.
  • the simulator 501 is a computer connected to the network of the vehicle 1, and the function of the simulator 501 is implemented by a program executed on the computer.
  • the simulator 501 is not limited to a computer outside the vehicle, and may be mounted in the ECU 202 mounted on the vehicle.
  • the ECU 202 and the simulator 501 are connected by a communication path 601.
  • the simulator 501 transmits control instruction information 701 to the ECU 202 via the communication unit 511.
  • the ECU 202 receives the control instruction information 701 via the I / O 306, and transmits the control instruction information 701 to the core 301.
  • the core 301 executes processing in accordance with the control instruction information 701, and transmits log information (execution result) 801 to the I / O 306 via the communication I / F. Do.
  • the ECU 202 transmits the log information 801 to the simulator 501 via the I / O 306.
  • the simulator 501 receives the log information 801 via the communication unit 511.
  • the simulator 501 calculates the next control instruction information 701 based on the received log information 801.
  • the communication path 601 is a path connecting the ECU 202 and the simulator 501.
  • the communication route 601 may be a vehicle-mounted network such as CAN, any of communication methods such as Ethernet and wireless WiFi, or a route combining the above communication methods via GateWay or another ECU or computer.
  • the direct communication between the ECU 202 and the simulator 501 is not limited, and another device may be interposed between the ECU 202 and the simulator 501.
  • FIG. 6 is a diagram showing a software module configuration of the simulator 501 in the first embodiment.
  • the simulator 501 may be realized, for example, using a general-purpose computer.
  • Each processing unit of the simulator 501 may be realized as a function of a program executed on a computer.
  • the computer includes a processor such as a central processing unit (CPU), a storage unit such as a memory, and an auxiliary storage device such as a hard disk.
  • the processing of the simulator 501 may be realized by the program code corresponding to each processing unit being stored in the memory and the processor executing each program code.
  • the simulator 501 includes a communication unit 511, a timing synchronization unit 512, a control instruction unit 513, and a storage unit 514.
  • the communication unit 511 includes an input unit 521 and an output unit 522.
  • the input unit 521 receives the log information 801 from the ECU 202.
  • the timing synchronization unit 512 executes processing to be described later based on the synchronization table 901.
  • the timing synchronization unit 512 acquires synchronization timing information 515 from the synchronization table 901 and outputs the synchronization timing information 515 to the control instruction unit 513.
  • Control instruction unit 513 calculates control instruction information 701 from synchronization timing information 515, and outputs control instruction information 701 to output unit 522.
  • the output unit 522 transmits the control instruction information 701 to the ECU 202.
  • the storage unit 514 stores a synchronization table 901.
  • the storage unit 514 also stores log information 801 received from the ECU 202.
  • the simulator 501 may be connected to a display unit 502 such as a display.
  • the display unit 502 displays the synchronization table 901, control instruction information 701, and log information 801. From the synchronization table 901 and the log information 801 displayed on the display unit 502, the user can confirm which part of the process before parallelization corresponds to after parallelization. In addition, the user can check whether the plurality of cores 301 are synchronized at the synchronization timing designated by the synchronization table 901 by referring to the log information 801.
  • FIG. 7 is a diagram showing software module configurations of the control unit 401 and the communication management unit 402 of the cores 301-1 to 301-N of the ECU 202 in the first embodiment. Although the configuration of the core 301-1 will be described here, the cores 301-2 to 301 -N also have the same configuration.
  • the control unit 401 includes a processing unit 411 and a timing monitoring unit 412. Also, the communication management unit 402 includes an input unit 421 and an output unit 422.
  • the input unit 421 receives control instruction information 701 from the simulator 501.
  • the input unit 421 transfers the received control instruction information 701 to the processing unit 411.
  • the processing unit 411 operates an application and / or basic software and the like included in the ECU 202 in the processing unit 411 in accordance with the received control instruction information 701.
  • the timing monitoring unit 412 monitors the operation of the processing unit 411 and acquires operation result information 431. Alternatively, the processing unit 411 outputs the operation result information 431 to the timing monitoring unit 412.
  • the timing monitoring unit 412 calculates log information 801 from the operation result information 431 and passes the log information 801 to the output unit 522.
  • the output unit 522 transmits the received log information 801 to the simulator 501.
  • FIG. 8A is a diagram showing an example of control instruction information 701 in the first embodiment.
  • the control instruction information 701 includes a synchronization ID 711, an instruction target 712, and an instruction timing 713 as configuration items.
  • the synchronization ID 711 is a value composed of numbers, alphabets, symbols, etc.
  • the content is not particularly limited, and the relationship of the program execution order may be set as an identifiable value.
  • the pointing target 712 is a value that can uniquely identify the pointing target and is configured of a character string, a number, a symbol, and the like.
  • the instruction target 712 includes information of the ECU and the core to be instructed.
  • the instruction target 712 may be described in units for processing software such as an ECU, a core, and a processor, or information such as a vehicle, a server, or another control device may be described.
  • a processing unit in software such as a task and a process name may be designated as the instruction target 712.
  • the simulator 501 directly transmits the control instruction information 701 to the instruction target, the column of the instruction target 712 can be omitted.
  • the instruction timing 713 is information on timing for synchronizing the instruction target. For example, in the instruction timing 713, information indicating the order of numbers, alphabets, etc. (for example, processing step number), information on the processing name such as character strings or numbers, etc. Is described. In the example of FIG. 8A, the instruction timing 713 includes information on synchronization timing regarding the core to be instructed. The instruction timing 713 includes information on the processing step number. The core of the instruction target executes up to the process step number described in the instruction timing 713 and stops the process. In addition, the instruction timing 713 may include information on the pre-processing name. After executing the pre-processing described in the instruction timing 713, the core of the instruction target stops the processing. The instruction timing 713 may include at least one of the above-described process step number and information on the pre-processing. As another example, the instruction timing 713 may be time information such as real time or calculation time calculated by the instruction target.
  • FIG. 8B is a diagram showing an example of control instruction information 701 in the first embodiment.
  • the control instruction information 701 may further include post-stage processing content 714.
  • the post-stage processing content 714 includes the following processing and label information.
  • the post-stage processing content 714 information on the next processing content to be executed after synchronization at the instruction timing 713 is described.
  • the post-stage processing content 714 includes the following processing name and label information.
  • the label describes information such as variables, arrays, and structures used in the subsequent processing. Values such as numbers, strings, and bit strings may be used as label information.
  • the label may include information of values after processing of these values and / or values before processing.
  • Control instruction information 701 may include an instruction and a value for operating a program other than the above contents.
  • FIG. 9A is a diagram showing an example of the synchronization table 901 in the first embodiment.
  • the control instruction information 701 of FIG. 8A is created.
  • the synchronization table 901 includes a synchronization ID 911, a comparison target group 912, a comparison target 913, and comparison information 914 as configuration items.
  • the synchronization ID 911 is a value including numbers, alphabets, symbols, and the like, and the content is not particularly limited, and the relationship of the program execution order may be set to an identifiable value.
  • a plurality of rows share the same synchronization ID, and rows having the same synchronization ID represent a combination of processes to be synchronized.
  • the comparison target group 912 is a value composed of numbers, alphabets, symbols, and the like, and may be a value that can uniquely identify the comparison target group. Rows in which comparison target groups 912 are set to the same value are treated as one set.
  • the execution results of the program are compared between “object 1” and “object 2”.
  • the “target 1” is a group that executes the parallelized program.
  • the “target 2” is a group that executes the program before parallelization.
  • the comparison target 913 is a value including numbers, alphabets, symbols, and the like, and may be a value that can uniquely identify the comparison target.
  • the comparison target 913 may be described in a unit for processing software such as an ECU, a core, and a processor, or information such as a vehicle, a server, or another control device may be described.
  • a processing unit in software such as a task and a process name may be designated as the comparison target 913.
  • the core 1 of the ECU 1 and the core 2 of the ECU 1 are designated as “target 1” for executing the program after parallelization.
  • the core 1 of the ECU 2 is designated as "target 2" for executing the program before parallelization.
  • the comparison information 914 includes information on timing for synchronizing the comparison targets.
  • the comparison information 914 includes information that can identify the order of numbers, alphabets and the like (for example, processing step numbers), and information on the former / post-stage processing names etc. Is described.
  • the comparison information 914 includes information on the process step number as the synchronization timing.
  • the comparison information 914 may be time information such as actual time or calculation time calculated by the instruction target.
  • the comparison information 914 may include information of processing content.
  • the process content may include a value that can uniquely identify the process name, and is configured of a character string, a number, a symbol, and the like.
  • the processing content may include label information.
  • the label includes information such as variables, arrays, structures, etc. used in the process. Values such as numbers, strings, and bit strings may be used as label information.
  • the label may include information on the value after the process execution and / or the value before the process execution.
  • the synchronization table 901 is not limited to the configuration described in the present embodiment, and may include the same information as the above information.
  • FIG. 9B is a diagram showing an example of the synchronization table 901 in the first embodiment.
  • the control instruction information 701 of FIG. 8B is created.
  • the synchronization table 901 may further include post-stage processing content 915.
  • the post-stage processing content 915 is the same as the post-stage processing content 714 in FIG. 8B, and thus the description thereof is omitted.
  • the synchronization table 901 can be created in advance using the following first method and second method.
  • a method of searching for processing to be synchronized from each source code of programs to be compared (a program before parallelization and a program after parallelization).
  • the use location of the library function (standard input / output function etc.) provided in the programming language. Therefore, as a method of specifying the process and place to be synchronized described in the synchronization table 901, the use place of the library function may be used. For example, in a plurality of source codes to be compared, a part using the same library function may be picked up, and the picked up part may be used as timing to be synchronized.
  • a second method is a method of embedding processing to be synchronized with each source code of a program to be compared.
  • the synchronization point may be described in each source code by a tool or hand code. This makes it possible to identify the synchronization point. For example, when specifying a place to be synchronized before and after parallelization of source code, a place that can be a synchronized point, such as a start point of loop processing or a start point of a function, is traced. Then, the processing for synchronization is embedded in the corresponding part by the hand of the tool or the designer (for example, it is possible to embed a function, pipeline processing, etc.).
  • the contents described in the synchronization table 901 are not limited to the above processing, and may be edited by the designer.
  • FIG. 10 is a diagram showing an example of the log information 801 in the first embodiment.
  • the log information 801 includes a synchronization ID 811, a comparison target 812, a timing 813, and a processing content 814 as configuration items.
  • the synchronization ID 811 and the comparison target 812 respectively have the same contents as the synchronization ID 711 and the indication target 712 of the control instruction information 701 (or the synchronization ID 911 and the comparison target 913 of the synchronization table 901), and thus the description is omitted.
  • the timing 813 is information indicating how far the comparison target 812 has actually executed.
  • the timing 813 is the processing step number in the source code, and represents that the comparison target 812 has been executed up to the processing step number.
  • the timing 813 may have the same content as that designated as the comparison information 914 of the synchronization table 901.
  • the timing 813 may be processing step numbers, pre / post processing names, or time information such as real time or calculation time.
  • the process content 814 is information on the process content actually executed by the comparison target 812.
  • the processing content 814 is the same content as that designated as the processing content of the comparison information 914 of the synchronization table 901, and may include information of processing name, label, and the like.
  • the label contains information such as variables, arrays, structures, etc. used in the processing actually executed. Values such as numbers, strings, and bit strings may be used as label information.
  • the label may include information on the value after the process execution and / or the value before the process execution.
  • the log information 801 is represented by a table of two or more lines having the same synchronization ID 811.
  • the log information 801 is not limited to this configuration, and the format of the table is not limited as long as the contents are equivalent to the above described contents.
  • FIG. 11 is a flowchart showing processing executed by the simulator 501 and the ECU 202 in the first embodiment.
  • the simulator 501 and the ECU 202 repeatedly execute S1101 to S1108 until the processing of the program ends.
  • the timing synchronization unit 512 reads the first line of the synchronization table 901, and executes the following synchronization timing information generation processing.
  • the timing synchronization unit 512 selects, from the synchronization table 901, a row of the same synchronization ID 911 as the read first row. After selecting all the rows of the same synchronization ID 911, the timing synchronization unit 512 outputs all the selected rows as the synchronization timing information 515 to the control instruction unit 513.
  • the timing synchronization unit 512 determines the next process to be synchronized based on the log information 801.
  • the timing synchronization unit 512 compares the log information 801 received from the ECU 202 with the synchronization table 901, and determines whether the cores are synchronized at the timing to be synchronized. If the cores are synchronized at the timing to be synchronized, the timing synchronization unit 512 determines the next process to be synchronized. That is, the timing synchronization unit 512 selects the next synchronization ID 911 row from the synchronization table 901. The timing synchronization unit 512 selects the first line of the synchronization ID 911 next to the previously selected synchronization ID 911. Next, the timing synchronization unit 512 selects, from the synchronization table 901, a row of the same synchronization ID 911 as the read first row.
  • the timing synchronization unit 512 After selecting all the rows of the same synchronization ID 911, the timing synchronization unit 512 outputs all the selected rows as the synchronization timing information 515 to the control instruction unit 513.
  • the processing of the plurality of cores is synchronized at a specific timing in the program before parallelization, and the synchronization result is sequentially While checking, it is possible to check the effects of processing in multiple cores.
  • the timing synchronization unit 512 causes the control instruction unit 513 to retransmit the same control instruction information 701 as the previous one. You may instruct.
  • the timing synchronization unit 512 may display the log information 801 and the information of the synchronization table 901 on the display unit 502 to notify the user.
  • the timing synchronization unit 512 may output a plurality of sets (sets of different synchronization IDs) as the synchronization timing information 515 to the control instruction unit 513.
  • the control instruction unit 513 generates control instruction information 701 including a plurality of timings to be synchronized in S1102 in the latter stage.
  • the timing synchronization unit 512 may select a synchronization ID based on the log information 801 by adding 1 to the value of the synchronization ID 811 in the log information 801 received this time. In this step, the same row of the synchronization ID 911 may be selected, and the present invention is not limited to the processing described above.
  • the control instruction unit 513 creates control instruction information 701 based on the received synchronization timing information 515. For example, the control instruction unit 513 stores the content of the comparison target 913 in the instruction target 712 of the control instruction information 701, and stores the content of the comparison information 914 in the instruction timing 713 of the control instruction information 701.
  • the control instruction unit 513 creates the control instruction information 701 of FIG. 8A.
  • the control instruction unit 513 creates the control instruction information 701 of FIG. 8B. Control instructing unit 513 outputs the generated control instruction information 701 to output unit 522.
  • control instruction unit 513 may create the instruction information for each line of the control instruction information 701. Further, the control instruction unit 513 may add, to the control instruction information 701, a line of operation instructions such as stopping or resuming the operation of the instruction target. The control instruction unit 513 may indicate the timing of synchronization to the instruction target to be synchronized, and the control instruction information 701 may be changed as appropriate.
  • the output unit 522 transmits the received control instruction information 701 to the ECU 202.
  • the input unit 421 of the core of the ECU 202 receives the control instruction information 701.
  • the core 1 (301-1) of the ECU 1 receives the control instruction information 701 of FIG. 8A
  • the input unit 421 transfers the control instruction information 701 to the processing unit 411.
  • the processing unit 411 executes the program until the timing designated at the instruction timing 713 according to the control instruction information 701.
  • the processing unit 411 selects a line (the line of the core 1 of the ECU 1) for which the instruction target 712 of the control instruction information 701 is designated.
  • the processing unit 411 executes the program until an instruction timing 713 (processing step number: 10002) of the selected row. For example, the processing unit 411 resumes the process starting or interrupting the process, and stops the process after the process step number (10002) has passed.
  • the pre-stage process is designated at the instruction timing 713, the processing unit 411 resumes the process in which the process is started or suspended, and stops the process after the designated pre-stage process is completed.
  • the processing unit 411 stops at the instruction timing which first arrived. Then, once the log information 801 is created, the processing unit 411 stops at the next instruction timing.
  • the processing unit 411 can use the information of the post-stage processing content 714 to determine whether or not the processing has been performed until the instruction timing 713.
  • the post-stage processing content 714 indicates the next processing content when stopping at the instruction timing 713 as described above. Therefore, after stopping the processing, the processing unit 411 compares the processing to be performed next with the post-stage processing content 714 and determines whether they match.
  • the processing unit 411 resumes the process and refers to the instruction timing 713 again to stop the process.
  • the processing unit 411 continues to execute processing until the processing to be executed next matches the post-stage processing content 714. Further, the processing unit 411 stops the process after the start and stop of the process have been attempted a prescribed number of times.
  • the processing unit 411 compares the label (variable etc.) being executed at the time of stopping the process with the label of the post-process content 714, The process may be executed until the two match.
  • the timing monitoring unit 412 monitors the processing content of the processing unit 411, and creates log information 801.
  • the timing monitoring unit 412 acquires information of the synchronization ID 811, the comparison target 812, the timing 813 and the processing content 814 from the control instruction information 701 and the operation result information 531 when the processing unit 411 stops the operation.
  • Create The timing monitoring unit 412 outputs the created log information 801 to the output unit 422.
  • the timing monitoring unit 412 may output the log information 801 individually for each synchronization ID 811, or may store log information 801 related to a plurality of synchronization IDs 811 and output the accumulated log information 801 together.
  • the timing monitoring unit 412 may create the log information 801 at regular intervals.
  • the output unit 422 transmits the received log information 801 to the simulator 501.
  • the input unit 521 of the simulator 501 receives the log information 801, and stores the log information 801 in the storage unit 514. At this time, the timing synchronization unit 512 may display the received log information 801 and the synchronization table 901 on the display unit 502.
  • the simulator 501 includes a timing synchronization unit 512 that determines the next process to be synchronized, and a control instruction unit 513 that generates control instruction information 701 based on the information from the timing synchronization unit 512.
  • the cores 301-1 to 301-N include a timing monitoring unit 412 that monitors the operation timing of the processing unit 411. Since the log information 801 created by the timing monitoring unit 412 is fed back to the simulator 501 side, the simulator 501 determines the next process to be synchronized based on the log information 801 that is the execution result. According to this configuration, it is possible to gradually execute the program while synchronizing the plurality of cores 301-1 to 301-N at some specific timing, and to confirm the influence of the plurality of processes.
  • this embodiment it is possible to monitor the process while synchronizing the process among the plurality of ECUs and the plurality of cores.
  • it is necessary to confirm the influence of another process operating at a specific timing during execution of a certain process but in this embodiment, parallelized processes are performed at a specific timing.
  • synchronizing it is possible to confirm the effects of multiple processes.
  • the user confirms from the synchronization table 901 and the log information 801 displayed on the display unit 502 which part of the process before parallelization corresponds to after parallelization. Can.
  • the user can check whether or not a plurality of cores are synchronized at the synchronization timing designated in the synchronization table 901 by referring to the log information 801.
  • FIG. 12 is a diagram showing a software module configuration executed in the cores 301-1 to 301-N of the ECU 202 in the second embodiment.
  • the ECU 202 has a core dedicated to one or more timing monitoring units. There is no need for each core to store the log information 801 in the local RAM 302 because the core dedicated to the timing monitoring unit is responsible for storing the log information 801, and the processing unit 411 of each core performs only the control processing. Is possible. According to this configuration, the synchronization log information can be acquired without applying a load to the vehicle control.
  • the core 301-N is a core dedicated to the timing monitoring unit.
  • the core 301-N includes a monitoring timing aggregation unit 450.
  • the timing monitoring unit 412 of each core transmits the log information 801 to the monitoring timing aggregation unit 450.
  • the operation of the monitoring timing aggregation unit 450 will be described.
  • the monitoring timing aggregation unit 450 collects and aggregates log information 801 from a plurality of cores.
  • the monitoring timing aggregation unit 450 arranges the log information 801 for each synchronization ID.
  • the monitoring timing aggregation unit 450 stores the log information 801 in the external memory 308 at regular intervals, or during ignition (IGN) OFF processing, during IGN ON, or in accordance with an instruction from the processing unit 411.
  • IGN ignition
  • the monitoring timing aggregation unit 450 transmits the log information 801 of the external memory 308 to the simulator 501 at predetermined intervals, during IGN OFF processing, during IGN ON, or in accordance with an instruction from the processing unit 411.
  • the specific core takes charge of the process of organizing and storing the log information 801, and it becomes possible to collect the log information 801 without applying a load to the control process. That is, optimization of allocation to each of the cores 301-1 to 301-N can be realized while preventing an increase in execution load.
  • FIG. 13 is a diagram showing a software module configuration executed in the ECU 202 in the third embodiment.
  • the function of the simulator 501 may be mounted on the vehicle 1. According to this configuration, the parallelized program can be verified without connecting another computer to the network of the vehicle 1.
  • each processing unit of the simulator 501 is mounted on one of the plurality of ECUs 202 (ECU N).
  • each processing unit of the simulator 501 may be mounted on a specific core among a plurality of cores in the ECU 202.
  • FIG. 14 is a diagram showing an example of the synchronization table 901 in the fourth embodiment.
  • the synchronization table 901 includes information on label names (variable names) and the order of their values.
  • the synchronization table 901 includes No. 921, a label name 922, and a value 923 as configuration items.
  • No. 921 is a value such as a number, an alphabet, etc., and is a value by which the order relation of each row can be grasped.
  • the label name 922 is a value that can uniquely identify a variable name, which is composed of a character string, a number, a symbol, and the like.
  • the value 923 is a specific value of the label name 922 at the timing of synchronization.
  • FIG. 15 is a diagram showing an example of control instruction information 701 in the fourth embodiment.
  • the control instruction unit 513 creates control instruction information 701 based on the information of the synchronization table 901.
  • the control instruction unit 513 describes all ECUs and cores in the instruction target 712. Further, the control instruction unit 513 describes information of the label name 922 and the value 923 at the instruction timing 713.
  • the processing unit 411 of each core executes processing based on the control instruction information 701.
  • the processing unit 411 executes processing until the label name reaches the designated value. Note that the processing unit 411 does not execute the program in the core that does not execute the process related to the specified label name.
  • the processing step number is described at the timing 813, and the label name and the value thereof are described in the processing content 814.
  • the synchronization table 901 of the present embodiment at least one process of the program may be known, and the cores can be synchronized by the change history of the value.
  • the present invention is not limited to the embodiments described above, but includes various modifications.
  • the above embodiments are described in detail in order to explain the present invention in an easy-to-understand manner, and are not necessarily limited to those having all the configurations described.
  • part of the configuration of one embodiment can be replaced with the configuration of another embodiment.
  • the configuration of another embodiment can be added to the configuration of one embodiment.
  • another configuration can be added, deleted, or replaced.
  • the above functions and the like may be realized by software by a processor interpreting and executing programs that realize the respective functions.
  • Information such as programs and files for realizing each function can be stored in a memory, a hard disk, a recording device such as a solid state drive (SSD), or a recording medium such as an IC card, an SD card, or a DVD.
  • SSD solid state drive
  • the above functions and the like may be realized by hardware by designing part or all of them, for example, by an integrated circuit.
  • control lines and the information lines indicate what is considered necessary for the description, and not all the control lines and the information lines in the product are necessarily shown. All configurations may be connected to each other.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本発明は、並列化後のプログラムを複数のコアで実行させるときに、複数のコアの処理を、並列化前のプログラム内のある特定のタイミングに対応させて同期させることが可能な技術を提供する。複数のコアを有する車両制御装置用の検証装置は、前記複数のコアの同期させるタイミングを示す同期タイミング情報を取得するタイミング同期部と、前記同期タイミング情報に基づいて、前記複数のコアに対する制御指示情報を作成する制御指示部と、を備える。

Description

車両制御装置用の検証装置及び車両制御装置
 本発明は、車両制御装置用の検証装置及び車両制御装置に関する。
 従来より、複数のコア(又はノード)を有する並列計算装置が提案されている。
WO2011/001519
 上記の並列計算装置において、各処理単位(コア)によって実行される処理が、意図したタイミングで動作しているかを把握することは困難である。特に並列化を前提として設計されたプログラムとは異なる、旧来のシングルコアシステム用のプログラムを並列化した場合、並列化前のある処理が、並列化後のどの部分に対応するかを把握することは難しい。したがって、このような場合では、プログラムを並列化した前後で等価性を保証することが難しい。
 特許文献1は、複数のノードで処理を同期させるシステムを開示する。特許文献1のシステムは、複数の処理を複数のノードにおいて同期させるために、同時実行する処理を事前に指定する。そして、当該システムは、処理の実行を一時的に保留させる機能を備え、複数のノード間で処理の開始点を同期させる。
 しかし、特許文献1のシステムは、処理の開始点を同期させるだけであり、複数の処理を並列に実行するときのテストが十分に行えない。例えば、上述のようにシングルコアシステム用のプログラムを並列化した場合におけるテストを十分に行うことができない。特許文献1のシステムでは、並列化後のプログラムを複数のノードで実行させるときに、処理中の特定のタイミングで同期させて、複数の処理の影響を確認することができない。
 そこで、本開示は、上記課題を解決するための技術を提供するものであり、並列化後のプログラムを複数のコアで実行させるときに、複数のコアの処理を、並列化前のプログラム内のある特定のタイミングに対応させて同期させることが可能な技術を提供する。
 例えば、上記課題を解決するために、特許請求の範囲に記載の構成を採用する。本願は上記課題を解決する手段を複数含んでいるが、その一例をあげるならば、複数のコアを有する車両制御装置用の検証装置であって、前記複数のコアの同期させるタイミングを示す同期タイミング情報を取得するタイミング同期部と、前記同期タイミング情報に基づいて、前記複数のコアに対する制御指示情報を作成する制御指示部と、を備え、前記タイミング同期部は、前記複数のコアの実行結果に基づいて、同期させるべきタイミングで各コアが同期されたかを判定する、検証装置が提供される。
 本発明によれば、並列化後のプログラムを複数のコアで実行させるときに、複数のコアの処理を、並列化前のプログラム内のある特定のタイミングに対応させて同期させることができる。本発明に関連する更なる特徴は、本明細書の記述、添付図面から明らかになるものである。また、上記した以外の、課題、構成及び効果は、以下の実施例の説明により明らかにされる。
実施例1における車両のシステムの概略構成図である。 実施例1における車両制御装置のH/W(Hardware)構成を示した図である。 実施例1におけるECUのH/W構成を示した図である。 実施例1におけるECUのコアにおいて実行されるソフトウェアモジュール構成を示した図である。 実施例1におけるECUとシミュレータの関連を示した図である。 実施例1におけるシミュレータのソフトウェアモジュール構成を示した図である。 実施例1におけるECUのコアの制御部及び通信監理部のソフトウェアモジュール構成を示した図である。 実施例1における制御指示情報の一例を示した図である。 実施例1における制御指示情報の一例を示した図である。 実施例1における同期テーブルの一例を示した図である。 実施例1における同期テーブルの一例を示した図である。 実施例1におけるログ情報の一例を示した図である。 実施例1におけるシミュレータ及びECUで実行される処理を示すフローチャートである。 実施例2におけるECUのコアにおいて実行されるソフトウェアモジュール構成を示した図である。 実施例3におけるECUにおいて実行されるソフトウェアモジュール構成を示した図である。 実施例4における同期テーブルの一例を示した図である。 実施例4における制御指示情報の一例を示した図である。
 以下、添付図面を参照して本発明の実施例について説明する。添付図面は本発明の原理に則った具体的な実施例を示しているが、これらは本発明の理解のためのものであり、決して本発明を限定的に解釈するために用いられるものではない。
 以下では、好適な例として車両における車両制御装置の実施例について説明する。しかし、以下の実施例は、車両制御装置以外への適用を妨げるものではない。
 [実施例1]
  図1は、実施例1における車両のシステムの概略構成図である。1は、内部に車両制御装置を有する車両(自動車等)である。2は、例えば車載ネットワーク(CAN:Controller Area Network、CANFD:CAN with Flexible Data-rate、Ethernet(登録商標)等)とコントローラ(ECU:Electronic Control Unit等)により構成される車両制御装置である。3は、車両1と外部の装置との間の無線通信(例えば携帯電話の通信、無線LAN、WAN等のプロトコルを使用した通信)を行い、外界(インフラ、他車)の情報あるいは自車に関する情報を取得及び送信する通信装置、又は、診断端子(OBD)やEthernet端子、外部記録媒体(例えばUSBメモリ、SDカード等)端子等を有し、有線接続を行い車両制御装置2と有線通信を実施する通信装置である。4は、例えば2と異なる、又は同一のプロトコルを用いたネットワークにより構成される車両制御装置である。
 5は、車両制御装置2の制御に従い、車両運動を制御する機械及び電気装置(例えばエンジン、トランスミッション、ホイール、ブレーキ、操舵装置等)の駆動を行う駆動装置(アクチュエータ等)である。6は、外界から入力される情報を取得し、外界認識情報を生成する、カメラ、レーダ、LIDAR、超音波センサ等の外界センサ、及び、車両1の状態(運動状態、位置情報等)を認識する力学系センサ(加速度、車輪速度、GPS:Global Positioning System)により構成される認識装置である。
 7は、図示省略のネットワークシステムに有線又は無線で接続され、ネットワークシステムから送出されるデータを受信し、メッセージ情報(例えば映像、音)等の必要な情報を表示又は出力する、液晶ディスプレイ、警告灯、及び、スピーカ等の出力装置である。
8は、ユーザが車両制御装置2に対して、操作の意図や指示を入力する入力信号を生成するための、例えばステアリング、ペダル、ボタン、レバー、タッチパネル等の入力装置である。9は、車両1が外界に対して車両1の状態等を通知するための、ランプ、LED、スピーカ等の通知装置である。
 車両制御装置2は、車両制御装置4、通信装置3、駆動装置5、認識装置6、出力装置7、入力装置8、及び、通知装置9等に接続されており、それぞれと情報の送受信を行う。
 図2は、実施例1における車両制御装置2のH/W(Hardware)構成を示した図である。201は、車載のネットワークシステムに接続するネットワークリンクであり、例えばCANバス等のネットワークリンクである。202は、ネットワークリンク201、及び、ネットワークリンク201以外のネットワークリンク(専用線含む)に接続されているECU(Electronic Control Unit:電子制御ユニット)である。ECU202は、ネットワークを介して駆動装置5及び認識装置6の制御を行い、駆動装置5及び認識装置6と情報の送受信を行う。203は、複数のネットワークリンク201を接続し、それぞれのネットワークリンクとデータの送受信を行うゲートウェイ(以下GW)である。
 図2のネットワークトポロジは、2つのバスに複数のECU202が接続されているバス型である。他の例として、ネットワークトポロジは、複数のECUが直接GWに接続されるスター型、ECUが一連のリンクにリング状に接続されているリンク型、又は、それぞれの型が混在し複数のネットワークにより構成される混在型等であってもよい。ECU202及びGW203については、図2の例以外に、GW機能を有するECU、又はECUの機能を有するGW等が採用されてもよい。
 ECU202は、ネットワークを介して受信したデータに基づいて、駆動装置5への制御信号の出力、認識装置6からの情報の取得、ネットワークへの制御信号及び情報の出力、及び、内部状態の変更等の制御処理を行う。
 図3は、実施例1におけるECU202のH/W構成を示した図である。ECU202は、複数のコアを有し、複数のコアを用いて並列制御を行う。
 301は、キャッシュ又はレジスタ等の記憶素子を有し、制御を実行するCPU(プロセッサ)等のコアである。図3の例では、ECU202は、複数のコア301-1~301-Nを有する。302は、特定のコアだけがアクセス可能な揮発性のデータを保存するRAM(Random Access Memory)である。図3の例では、コア301-1~301-Nが、それぞれ、対応するLocal RAM302-1~302-Nを備える。303は、図示省略のクロック等を使用し、時間及び時刻の管理を行うタイマである。304は、プログラム及び不揮発性のデータを保存するROM(Read Only Memory)である。305は、不特定のコアがアクセス可能な揮発性のデータを保存するGlobal RAM(Random Access Memory)である。
 306は、ネットワークリンク201等のネットワークや専用線で接続された駆動装置5及び/又は認識装置6に対してデータの送受信を行うI/O(Input/Output)である。307は、ECU202の内部での通信に用いられる内部バスである。308は、電源遮断後もデータを保持可能な外部メモリであり、EEPROM、SolidStateDrive、又はHardDiscDrive等である。
 図4は、実施例1におけるコア301-1~301-Nにおいて実行されるソフトウェアモジュール構成を示した図である。401は、図示省略の通信I/F(Interface)から取得したデータの解析、及び、ソフトウェアモジュール全体の制御を行う制御部である。402は、通信I/Fの動作及び状態を管理し、内部バス307を介して通信I/Fに指示を行う通信管理部である。403は、タイマ303を管理し、時間に関する情報の取得及び制御を行う時間管理部である。404は、一時的にデータを確保するバッファである。
 図4では、コア301上の動作概念が示されている。実際には、コア301は、動作時に必要な情報をROM304及びRAM305から適宜取得し、又は、ROM304及びRAM305に適宜書き込む。
 図5は、実施例1におけるECU202とシミュレータ501の関連を示した図である。シミュレータ501は、車両制御装置2用の検証装置である。この例では、シミュレータ501は、車両1のネットワークに接続するコンピュータであり、シミュレータ501の機能はコンピュータ上で実行されるプログラムで実装される。なお、シミュレータ501は、車両外部のコンピュータに限定されず、車両に搭載されたECU202において実装されてもよい。
 ECU202とシミュレータ501とは、通信経路601で接続されている。シミュレータ501は、通信部511を介して制御指示情報701をECU202へ送信する。ECU202は、I/O306を介して制御指示情報701を受信し、制御指示情報701をコア301へ送信する。コア301の通信I/Fが制御指示情報701を受信すると、コア301は、制御指示情報701に従って処理を実行し、ログ情報(実行結果)801を通信I/Fを介してI/O306に送信する。ECU202は、I/O306を介してログ情報801をシミュレータ501へ送信する。シミュレータ501は、通信部511を介してログ情報801を受信する。シミュレータ501は、受信したログ情報801に基づいて次の制御指示情報701を計算する。
 通信経路601は、ECU202とシミュレータ501とを接続する経路である。通信経路601は、CANをはじめとする車載用ネットワークや、Ethernet、無線WiFiのような通信方式のどれか、又は、GateWayや他のECUやコンピュータを経由して前記通信方式を組み合わせた経路でもよい。なお、ECU202とシミュレータ501との直接通信に制限されず、ECU202とシミュレータ501との間に他の装置が介在してもよい。
 図6は、実施例1におけるシミュレータ501のソフトウェアモジュール構成を示した図である。上述したように、シミュレータ501は、例えば、汎用のコンピュータを用いて実現されてもよい。シミュレータ501の各処理部は、コンピュータ上で実行されるプログラムの機能として実現されてもよい。コンピュータは、CPU(Central Processing Unit)等のプロセッサと、メモリ等の記憶部と、ハードディスク等の補助記憶装置を備える。シミュレータ501の処理は、各処理部に対応するプログラムコードがメモリに格納され、プロセッサが各プログラムコードを実行することによって実現されてもよい。
 シミュレータ501は、通信部511と、タイミング同期部512と、制御指示部513と、記憶部514とを備える。
 通信部511は、入力部521と出力部522とを備える。入力部521は、ログ情報801をECU202から受け取る。タイミング同期部512は、同期テーブル901に基づいて後述する処理を実行する。タイミング同期部512は、同期テーブル901から同期タイミング情報515を取得し、同期タイミング情報515を制御指示部513に出力する。制御指示部513は、同期タイミング情報515から制御指示情報701を計算し、制御指示情報701を出力部522に出力する。出力部522は、制御指示情報701をECU202に送信する。
 記憶部514は、同期テーブル901を格納している。また、記憶部514は、ECU202から受け取ったログ情報801を蓄積する。
 シミュレータ501は、ディスプレイ等の表示部502に接続されてよい。表示部502は、同期テーブル901、制御指示情報701、及び、ログ情報801を表示する。ユーザは、表示部502に表示された同期テーブル901及びログ情報801から、並列化前のある処理が、並列化後のどの部分に対応するかを確認することができる。また、ユーザは、ログ情報801を参照することにより、同期テーブル901で指定した同期タイミングで複数のコア301が同期されているかを確認することができる。
 図7は、実施例1におけるECU202のコア301-1~301-Nの制御部401及び通信管理部402のソフトウェアモジュール構成を示した図である。ここでは、コア301-1の構成について説明するが、コア301-2~301-Nについても同様の構成を備える。
 制御部401は、処理部411とタイミング監視部412とを備える。また、通信管理部402は、入力部421と出力部422とを備える。
 入力部421は、シミュレータ501から制御指示情報701を受信する。入力部421は、受信した制御指示情報701を処理部411へと受け渡す。処理部411は、受け取った制御指示情報701に従って、処理部411内でECU202が備えるアプリケーション及び/又は基盤ソフトウェア等を動作させる。タイミング監視部412は、処理部411の動作を監視し、動作結果情報431を取得する。あるいは、処理部411は、動作結果情報431をタイミング監視部412に出力する。
 タイミング監視部412は、動作結果情報431からログ情報801を計算し、ログ情報801を出力部522へと受け渡す。出力部522は、受け取ったログ情報801をシミュレータ501へ送信する。
 以降では、本実施例で用いられる各種情報について説明する。図8Aは、実施例1における制御指示情報701の一例を示した図である。制御指示情報701は、同期ID711と、指示対象712と、指示タイミング713とを構成項目として有する。
 同期ID711は、数字、アルファベット、記号等で構成される値であり、内容は特に制限されず、プログラムの実行順序の関係が識別可能な値で設定されればよい。
 指示対象712は、指示対象を一意に識別できる、文字列、数字、記号等で構成される値である。図8Aの例では、指示対象712は、指示対象となるECU及びコアの情報を含む。指示対象712は、ECU、コア、プロセッサ等のソフトウェアを処理する単位で記載されてもよいし、車両、サーバ又はその他の制御装置等の情報が記載されてもよい。
また、指示対象712として、タスク、プロセス名等のソフトウェア内の処理単位が指定されてもよい。なお、シミュレータ501が、指示対象に対して制御指示情報701を直接送信する場合、指示対象712の列を省略することができる。
 指示タイミング713は、指示対象を同期させるタイミングの情報である。例えば、指示タイミング713には、数字やアルファベット等の順序が識別できる情報(例えば、処理ステップ番号)や、文字列や数字等の処理名が一意にわかる情報で記載される前段/後段処理名等が記載される。図8Aの例では、指示タイミング713は、指示対象となるコアに関する同期タイミングの情報を含む。指示タイミング713は、処理ステップ番号の情報を含む。指示対象のコアは、指示タイミング713に記載された処理ステップ番号まで実行して処理を停止する。また、指示タイミング713は、前段処理名の情報を含んでもよい。指示対象のコアは、指示タイミング713に記載された前段処理を実行した後に処理を停止する。指示タイミング713は、上述の処理ステップ番号及び前段処理の情報の少なくとも一方を含んでよい。なお、その他の例として、指示タイミング713は、現実時間や、指示対象が計算する計算時間といった時間情報であってもよい。
 図8Bは、実施例1における制御指示情報701の一例を示した図である。制御指示情報701は、後段処理内容714をさらに含んでもよい。後段処理内容714は、次の処理及びラベルの情報を含む。後段処理内容714には、指示タイミング713で同期させた後に実行される次の処理内容の情報が記載される。図8Bの例では、後段処理内容714は、次の処理名及びラベルの情報を含む。次の処理名には、処理名を一意に識別できる、文字列、数字、記号等で構成される値が記載される。ラベルには、当該次の処理で使用される変数、配列、構造体等の情報が記載される。ラベルの情報として、数字、文字列、ビット列等の値が使用され得る。ラベルには、これらの値の処理実行後の値及び/又は処理実行前の値の情報が含まれてもよい。
 なお、制御指示情報701は、上記内容以外にもプログラムを動作させる指示及び値を含んでもよい。
 図9Aは、実施例1における同期テーブル901の一例を示した図である。図9Aの同期テーブル901の場合、図8Aの制御指示情報701が作成される。同期テーブル901は、同期ID911と、比較対象グループ912と、比較対象913と、比較情報914とを構成項目として含む。
 同期ID911は、数字、アルファベット、記号等で構成される値であり、内容は特に制限されず、プログラムの実行順序の関係が識別可能な値で設定されればよい。複数の行で同じ同期IDを共有し、同じ同期IDを持つ行は同期すべき処理の組み合わせを表す。
 比較対象グループ912は、数字、アルファベット、記号等で構成される値であり、比較対象のグループを一意に識別できる値であればよい。比較対象グループ912が同じ値に設定されている行は一セットとして扱われる。図9Aの例では、プログラムの実行結果が「対象1」と「対象2」との間で比較される。「対象1」は、並列化後のプログラムを実行するグループである。「対象2」は、並列化前のプログラムを実行するグループである。
 比較対象913は、数字、アルファベット、記号等で構成される値であり、比較対象を一意に識別できる値であればよい。比較対象913は、ECU、コア、プロセッサ等のソフトウェアを処理する単位で記載されてもよいし、車両、サーバ又はその他の制御装置等の情報が記載されてもよい。また、比較対象913として、タスク、プロセス名等のソフトウェア内の処理単位が指定されてもよい。図9Aの例では、ECU1のコア1とECU1のコア2が、並列化後のプログラムを実行する「対象1」として指定されている。また、ECU2のコア1が、並列化前のプログラムを実行する「対象2」として指定されている。
 比較情報914は、比較対象を同期させるタイミングの情報を含む。例えば、比較情報914には、数字やアルファベット等の順序が識別できる情報(例えば、処理ステップ番号)や、文字列や数字等の処理名が一意にわかる情報で記載される前段/後段処理名等が記載される。図9Aの例では、比較情報914は、同期させるタイミングとして、処理ステップ番号の情報を含む。なお、その他の例として、比較情報914は、現実時間や指示対象が計算する計算時間といった時間情報であってもよい。
 比較情報914は、処理内容の情報を含んでもよい。処理内容は、処理名を一意に識別できる、文字列、数字、記号等で構成される値を含んでもよい。また、処理内容は、ラベルの情報を含んでもよい。ラベルには、当該処理で使用される変数、配列、構造体等の情報が含まれる。ラベルの情報として、数字、文字列、ビット列等の値が使用され得る。また、ラベルには、処理実行後の値及び/又は処理実行前の値の情報が含まれてもよい。
 なお、同期テーブル901の1つの同期ID911に対して、少なくとも2種類以上の比較対象グループ912が含まれる必要がある。同期テーブル901は、本実施例に記載の構成に限らず、上記情報と同様のものを含めばよい。
 図9Bは、実施例1における同期テーブル901の一例を示した図である。図9Bの同期テーブル901の場合、図8Bの制御指示情報701が作成される。同期テーブル901は、後段処理内容915をさらに含んでもよい。後段処理内容915は、図8Bの後段処理内容714と同様の内容であるため、説明を省略する。
 次に、同期テーブル901の比較情報914に記載される処理の特定方法について説明する。例えば、以下の第1の方法及び第2の方法を用いて、同期テーブル901を予め作成することができる。
 第1の方法として、比較対象となるプログラム(並列化前のプログラム及び並列化後のプログラム)の各ソースコードから同期すべき処理を探し出す方法がある。比較対象となる複数のソースコードにおいて、プログラミング言語に備えられたライブラリ関数(標準入出力関数等)の使用箇所から、同期すべき箇所の推測が可能となる。そこで、同期テーブル901に記載される同期すべき処理と箇所を特定する方法として、ライブラリ関数の使用箇所が用いられてもよい。例えば、比較対象となる複数のソースコードにおいて、同じライブラリ関数を使用している箇所をピックアップし、ピックアップされた箇所を同期すべきタイミングとしてもよい。
 第2の方法として、比較対象となるプログラムの各ソースコードに対して同期すべき処理を埋め込む手法である。ツール又はハンドコードで同期ポイントを各ソースコード内に記載しておいてもよい。これにより、同期箇所の特定が可能となる。例えば、ソースコードの並列化前後で同期すべき箇所を特定する場合、ループ処理の開始箇所や関数の開始箇所等、同期するポイントとなり得る箇所をトレースする。そして、ツール又は設計者の手で同期用の処理を当該箇所に埋め込む(例えば、関数やパイプライン処理等を埋め込むことが可能である)。
 同期テーブル901に記載される内容は、上記処理に限定されるものではなく、設計者が編集してもよい。
 図10は、実施例1におけるログ情報801の一例を示した図である。ログ情報801は、同期ID811と、比較対象812と、タイミング813と、処理内容814とを構成項目として含む。
 同期ID811及び比較対象812は、それぞれ、制御指示情報701の同期ID711及び指示対象712(あるいは、同期テーブル901の同期ID911及び比較対象913)と同じ内容であるため、説明を省略する。
 タイミング813は、比較対象812が実際にどこまで実行したかを示す情報である。
図10の例では、タイミング813は、ソースコード内の処理ステップ番号であり、比較対象812が処理ステップ番号まで実行したことを表す。なお、タイミング813は、同期テーブル901の比較情報914として指定されたものと同様の内容であればよい。タイミング813は、処理ステップ番号、前段/後段処理名、又は、現実時間や計算時間といった時間情報等であってもよい。
 処理内容814は、比較対象812が実際に実行した処理内容の情報である。処理内容814は、同期テーブル901の比較情報914の処理内容として指定されたものと同様の内容であり、処理名やラベルの情報等を含んでもよい。ラベルには、実際に実行した処理内で使用された変数、配列、構造体等の情報が含まれる。ラベルの情報として、数字、文字列、ビット列等の値が使用され得る。また、ラベルには、処理実行後の値及び/又は処理実行前の値の情報が含まれてもよい。
 ログ情報801は、同じ同期ID811を持つ2行以上の表で表現される。ログ情報801は、本構成に制限されるものではなく、上記記載内容と同等の内容であれば表の形式は問わない。
 図11は、実施例1におけるシミュレータ501及びECU202で実行される処理を示すフローチャートである。シミュレータ501及びECU202は、S1101~S1108をプログラムの処理が終了するまで繰り返し実行する。
(S1101) 初回動作時、タイミング同期部512は、同期テーブル901の1行目を読み込み、以下の同期タイミング情報生成処理を実行する。タイミング同期部512は、同期テーブル901において、読み込んだ1行目と同じ同期ID911の行を選択する。タイミング同期部512は、同じ同期ID911の全ての行を選択し終えた後、これら選択した全ての行を同期タイミング情報515として制御指示部513に出力する。
  2回目以降の動作時、タイミング同期部512は、ログ情報801に基づいて、同期させるべき次の処理を決定する。例えば、タイミング同期部512は、ECU202から受信したログ情報801と同期テーブル901とを比較し、同期させるべきタイミングで各コアが同期されたかを判定する。同期させるべきタイミングで各コアが同期されていた場合、タイミング同期部512は、同期させるべき次の処理を決定する。すわなち、タイミング同期部512は、同期テーブル901から次の同期ID911の行を選択する。タイミング同期部512は、前回選択した同期ID911の次の同期ID911の1行目を選択する。次に、タイミング同期部512は、同期テーブル901において、読み込んだ1行目と同じ同期ID911の行を選択する。タイミング同期部512は、同じ同期ID911の全ての行を選択し終えた後、これら選択した全ての行を同期タイミング情報515として制御指示部513に出力する。このような構成によれば、並列化後のプログラムを複数のコアで実行させるときに、複数のコアの処理を、並列化前のプログラム内のある特定のタイミングで同期させ、その同期結果を逐次確認しながら、複数のコアでの処理の影響を確認することができる。
  なお、2回目以降の動作時、同期させるべきタイミングで各コアが同期されていなかった場合、タイミング同期部512は、制御指示部513に対して、前回と同じ制御指示情報701を再送信するよう指示してもよい。この場合、タイミング同期部512は、表示部502にログ情報801及び同期テーブル901の情報を表示し、ユーザに通知してもよい。
  変形例として、タイミング同期部512は、複数のセット(異なる同期IDのセット)を同期タイミング情報515として制御指示部513に出力してもよい。この場合、後段のS1102において、制御指示部513が、同期させる複数のタイミングを含む制御指示情報701を作成する。
 また、2回目以降の動作時、タイミング同期部512は、ログ情報801に基づいて、今回受信したログ情報801の同期ID811の値に1加えた同期IDを選択するようにしてもよい。本ステップでは、同じ同期ID911の行が選択されればよく、上述した処理に限定されない。
(S1102) 制御指示部513は、受け取った同期タイミング情報515に基づいて、制御指示情報701を作成する。例えば、制御指示部513は、比較対象913の内容を制御指示情報701の指示対象712に格納し、比較情報914の内容を制御指示情報701の指示タイミング713に格納する。同期テーブル901が図9Aの例の場合、制御指示部513は、図8Aの制御指示情報701を作成する。同期テーブル901が図9Bの例の場合、制御指示部513は、図8Bの制御指示情報701を作成する。制御指示部513は、作成した制御指示情報701を出力部522へ出力する。
 なお、指示対象に指示情報を直接送信する場合には、制御指示部513は、制御指示情報701の各行ごとに指示情報を作成してもよい。
 また、制御指示部513は、指示対象の動作を停止させる又は再開させる等の動作指示の行を制御指示情報701に追加してもよい。制御指示部513は、同期させるべき指示対象に同期のタイミングを指示できればよく、制御指示情報701は適宜変更されてもよい。
(S1103) 出力部522は、受け取った制御指示情報701をECU202に送信する。
(S1104) ECU202のコアの入力部421は、制御指示情報701を受信する。以下では、ECU1のコア1(301-1)が図8Aの制御指示情報701を受信した例で説明する。
入力部421は、処理部411に制御指示情報701へと受け渡す。
(S1105) 処理部411は、制御指示情報701に従って、指示タイミング713に指定されたタイミングまでプログラムを実行する。処理部411は、制御指示情報701の指示対象712に自身が指定されている行(ECU1のコア1の行)を選択する。処理部411は、当該選択した行の指示タイミング713(処理ステップ番号:10002)までプログラムを実行する。例えば、処理部411は、処理を開始又は中断している処理を再開し、処理ステップ番号(10002)を経過した後、処理を停止する。
 指示タイミング713に前段処理が指定されている場合、処理部411は、処理を開始又は中断している処理を再開し、指定された前段処理を終了した後に処理を停止する。
 なお、指示タイミング713に複数のタイミングが指定されていた場合、処理部411は、最初に到達した指示タイミングで停止する。そして、一旦ログ情報801が作成された後、処理部411は、次の指示タイミングで停止する。
 図8Bの制御指示情報701の場合、処理部411は、後段処理内容714の情報を用いて指示タイミング713まで実行したかを判定することができる。後段処理内容714は、上述したように、指示タイミング713で停止した際の次の処理内容を示す。したがって、処理部411は、処理を停止した後、次に実行する処理と後段処理内容714とを比較し、一致するかを判定する。一致しない場合、処理部411は、処理を再開し、再度指示タイミング713を参照して処理を停止させる。処理部411は、次に実行する処理と後段処理内容714とが一致するまで処理を実行し続ける。また、処理部411は、処理の開始と停止を規定回数試行した後に処理を停止する。なお、後段処理内容714にラベルの情報が指定されている場合、処理部411は、処理を停止した時点で実行中のラベル(変数等)と、後段処理内容714のラベルとを比較し、これらが一致するまで処理を実行してもよい。
(S1106) タイミング監視部412は、処理部411の処理内容を監視し、ログ情報801を作成する。タイミング監視部412は、処理部411が動作を停止した際に、制御指示情報701及び動作結果情報531から、同期ID811、比較対象812、タイミング813及び処理内容814の情報を取得し、ログ情報801を作成する。タイミング監視部412は、作成したログ情報801を出力部422に出力する。
 タイミング監視部412は、同期ID811ごとに個別にログ情報801を出力してもいし、複数の同期ID811に関するログ情報801を蓄積しておき、蓄積したログ情報801をまとめて出力してもよい。
 なお、別の例として、タイミング監視部412は、一定周期ごとにログ情報801を作成してもよい。
(S1107) 出力部422は、受け取ったログ情報801をシミュレータ501に送信する。
(S1108) シミュレータ501の入力部521は、ログ情報801を受信し、記憶部514にログ情報801を格納する。このとき、タイミング同期部512は、受信したログ情報801と同期テーブル901とを表示部502上に表示してもよい。
 本実施例では、シミュレータ501が、同期させるべき次の処理を決めるタイミング同期部512と、タイミング同期部512からの情報をもとに、制御指示情報701を生成する制御指示部513を備える。また、コア301-1~301-Nが、処理部411の動作タイミングを監視するタイミング監視部412を備える。シミュレータ501側に、タイミング監視部412で作成されたログ情報801がフィードバックされるため、シミュレータ501が、実行結果であるログ情報801をもとに同期させるべき次の処理を決定する。この構成によれば、複数のコア301-1~301-Nをいくつかの特定のタイミングで同期させながらプログラムを徐々に実行して、複数の処理の影響を確認することができる。
 本実施例によれば、複数のECUや複数のコア間で処理を同期させながら処理を監視することが可能となる。特に、リアルタイム性の強い制御においては、ある処理の実行中の特定のタイミングで動作する別の処理の影響を確認する必要があるが、本実施例では、並列化された処理を特定のタイミングで同期させることで、複数の処理の影響を確認することができる。
 また、本実施例によれば、ユーザは、表示部502に表示された同期テーブル901及びログ情報801から、並列化前のある処理が、並列化後のどの部分に対応するかを確認することができる。また、ユーザは、ログ情報801を参照することにより、同期テーブル901で指定した同期タイミングで複数のコアが同期されているかを確認することができる。
 [実施例2]
  図12は、実施例2におけるECU202のコア301-1~301-Nにおいて実行されるソフトウェアモジュール構成を示した図である。本実施例では、ECU202が、1つ又は2つ以上のタイミング監視部専用のコアを有する。タイミング監視部専用コアが、ログ情報801を保存する処理を担うため、各コアがローカルのRAM302にログ情報801を保存する必要がなく、各コアの処理部411は、制御処理のみを実施することが可能となる。この構成によれば、車両制御に負荷をかけずに同期ログ情報を取得することができる。
 図12の例では、コア301-Nが、タイミング監視部専用のコアである。コア301-Nが、監視タイミング集約部450を備える。本実施例では、各コアのタイミング監視部412が、ログ情報801を監視タイミング集約部450へ送信する。
 監視タイミング集約部450の動作を説明する。監視タイミング集約部450は、複数のコアからのログ情報801を収集し、集約する。監視タイミング集約部450は、同期IDごとにログ情報801を整理する。監視タイミング集約部450は、一定周期ごと、又は、イグニション(IGN) OFF処理中、又は、IGN ON中、又は、処理部411からの指示によって、ログ情報801を外部メモリ308へと保存する。
 また、監視タイミング集約部450は、一定周期ごと、又は、IGN OFF処理中、又は、IGN ON中、又は、処理部411からの指示によって、外部メモリ308のログ情報801をシミュレータ501へ送信する。
 車両制御装置2では、限られたた通信帯域や処理性能の中で大量のログデータを計算し保存することは大きな問題となる。そこで、本実施例の構成を用いることで、特定のコアがログ情報801の整理及び保存の処理を担当することで、制御処理に負荷をかけずにログ情報801の収集が可能となる。すなわち、各コア301-1~301-Nに対する割り当ての最適化を、実行負荷増大を防止しながら実現することができる。
 [実施例3]
  図13は、実施例3におけるECU202において実行されるソフトウェアモジュール構成を示した図である。シミュレータ501の機能は、車両1に搭載されてもよい。この構成によれば、他のコンピュータを車両1のネットワークに接続することなく、並列化されたプログラムの検証が可能となる。図13の例では、シミュレータ501の各処理部が、複数のECU202のうちの1つ(ECU N)に実装されている。別の例として、シミュレータ501の各処理部が、ECU202内の複数のコアのうちの特定のコアに実装されてもよい。
 [実施例4]
  図14は、実施例4における同期テーブル901の一例を示した図である。本実施例では、同期テーブル901は、ラベル名(変数名)とその値の順序の情報を含む。同期テーブル901は、No921と、ラベル名922と、値923とを構成項目として含む。
 No921は、数字、アルファベット等の値であり、各行の順序関係を把握できる値である。ラベル名922は、文字列、数字、記号等で構成される、変数名を一意に識別できる値である。値923は、同期させるタイミングでのラベル名922の具体的な値である。図14のNo=1の行は、変数名INT_Aが「1000」になった時点で各コアの処理を停止させて同期させることを示す。本構成によれば、変数の値の変化で各コアを同期させることができる。各コアに対して同期したい処理を特定することなく、コア間のログ情報801を得ることが可能となる。
 図15は、実施例4における制御指示情報701の一例を示した図である。制御指示部513は、同期テーブル901の情報をもとに制御指示情報701を作成する。制御指示部513は、指示対象712に、全てのECU及びコアを記載する。また、制御指示部513は、指示タイミング713に、ラベル名922及び値923の情報を記載する。
 各コアの処理部411は、制御指示情報701をもとに処理を実行する。処理部411は、ラベル名が指定された値になるまで処理を実行する。なお、指定されたラベル名に関する処理を実行しないコアにおいて、処理部411は、プログラムを実行しない。
 図14の同期テーブル901を用いた場合、各コアの処理部411は、ラベル名(INT_A)が「1000」になった時点で処理を一時停止する。このタイミングが同期ID=1の指示タイミングであり、タイミング監視部412は、この時点までのログ情報801を作成する。次に、各コアの処理部411は、ラベル名(INT_A)が「2000」になった時点で処理を一時停止する。このタイミングが同期ID=2の指示タイミングであり、タイミング監視部412は、この時点までのログ情報801を作成する。ログ情報801では、タイミング813に処理ステップ番号が記載され、処理内容814にラベル名とその値が記載される。
 複数の企業で作成された複数のプログラムを統合する場合では、同期しなければならない処理が特定できないことがある。この場合、実施例1のような同期テーブルの生成は困難である。本実施例の同期テーブル901では、プログラムの内の少なくとも1つの処理が判明していれば良く、値の変更履歴で各コアを同期させることができる。
 本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。上記実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることもできる。また、ある実施例の構成に他の実施例の構成を加えることもできる。また、各実施例の構成の一部について、他の構成を追加・削除・置換することもできる。
 上記機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。また、上記の機能等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。
 上述の実施例において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
1     …車両
2     …車両制御装置
3     …通信装置
4     …車両制御装置
5     …駆動装置
6     …認識装置
7     …出力装置
8     …入力装置
9     …通知装置
201   …ネットワークリンク
202   …ECU
202   …GW
301   …コア
302   …RAM
303   …タイマ
304   …ROM
305   …GlobalRAM
306   …I/O
307   …内部バス
308   …外部メモリ
401   …制御部
402   …通信管理部
411   …処理部
412   …タイミング監視部
421   …入力部
422   …出力部
450   …監視タイミング集約部
501   …シミュレータ
502   …表示部
511   …通信部
512   …タイミング同期部
513   …制御指示部
514   …記憶部
521   …入力部
522   …出力部
601   …通信経路
701   …制御指示情報
801   …ログ情報(実行結果)
901   …同期テーブル

Claims (9)

  1.  複数のコアを有する車両制御装置用の検証装置であって、
     前記複数のコアの同期させるタイミングを示す同期タイミング情報を取得するタイミング同期部と、
     前記同期タイミング情報に基づいて、前記複数のコアに対する制御指示情報を作成する制御指示部と、を備え、
     前記タイミング同期部は、前記複数のコアの実行結果に基づいて、同期させるべきタイミングで各コアが同期されたかを判定する、検証装置。
  2.  請求項1に記載の検証装置において、
     前記タイミング同期部は、同期させるべきタイミングで各コアが同期されていた場合、次の同期タイミング情報を取得し、
     前記制御指示部は、前記次の同期タイミング情報に基づいて、前記複数のコアに対する制御指示情報を作成することを特徴とする検証装置。
  3.  請求項1に記載の検証装置において、
     前記複数のコアのうちの指示対象と、前記指示対象を同期させる指示タイミングとを構成項目として含む同期テーブルを格納する記憶部をさらに備え、
     前記タイミング同期部は、前記同期テーブルを用いて前記同期タイミング情報を取得することを特徴とする検証装置。
  4.  請求項1に記載の検証装置において、
     前記タイミング同期部は、同期させるべきタイミングで各コアが同期されなかった場合、前記制御指示部に対して、前回と同じ前記制御指示情報を各コアに送信するように指示することを特徴とする検証装置。
  5.  請求項3に記載の検証装置において、
     前記同期テーブルが、前記指示タイミングの次に実行される処理内容の情報をさらに含み、
     前記制御指示部が、前記次に実行される処理内容を含む前記制御指示情報を作成することを特徴とする検証装置。
  6.  請求項3に記載の検証装置において、
     前記同期テーブルが、変数名と、前記変数名の値とを含むことを特徴とする車両制御装置用の検証装置。
  7.  請求項1に記載の検証装置において、
     前記検証装置が車両に搭載されていることを特徴とする検証装置。
  8.  請求項1に記載の検証装置によって検証される車両制御装置であって、
     前記複数のコアは、
     前記制御指示情報に従って処理を実行する処理部と、
     前記処理部の処理内容を監視し、前記実行結果を作成するタイミング監視部と、を備えることを特徴とする車両制御装置。
  9.  請求項8に記載の車両制御装置において、
     前記複数のコアのうち少なくとも1つが、各コアから前記実行結果を収集する監視タイミング集約部を備えることを特徴とする車両制御装置。
PCT/JP2018/023394 2017-07-03 2018-06-20 車両制御装置用の検証装置及び車両制御装置 WO2019009068A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP18827708.1A EP3637262B1 (en) 2017-07-03 2018-06-20 Verification device for vehicle control device and vehicle control device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-130694 2017-07-03
JP2017130694A JP6770935B2 (ja) 2017-07-03 2017-07-03 車両制御装置用の検証装置

Publications (1)

Publication Number Publication Date
WO2019009068A1 true WO2019009068A1 (ja) 2019-01-10

Family

ID=64949929

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/023394 WO2019009068A1 (ja) 2017-07-03 2018-06-20 車両制御装置用の検証装置及び車両制御装置

Country Status (3)

Country Link
EP (1) EP3637262B1 (ja)
JP (1) JP6770935B2 (ja)
WO (1) WO2019009068A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107170660A (zh) * 2017-05-02 2017-09-15 惠科股份有限公司 干蚀刻设备及干蚀刻设备的电极

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010191758A (ja) * 2009-02-19 2010-09-02 Fujitsu Semiconductor Ltd 検証支援プログラム、検証支援装置および検証支援方法
WO2011001519A1 (ja) 2009-06-30 2011-01-06 富士通株式会社 計算装置、並列計算機システムおよび同期プログラム
JP2011028458A (ja) * 2009-07-23 2011-02-10 Panasonic Corp 実行状態監視装置および実行状態監視方法
JP2013045154A (ja) * 2011-08-22 2013-03-04 Nec Corp 情報処理装置、情報処理システム、情報処理装置の異常兆候検出方法、及び異常兆候検出プログラム
JP2014191655A (ja) * 2013-03-27 2014-10-06 Toyota Motor Corp マルチプロセッサ、電子制御装置、プログラム
JP2015095061A (ja) * 2013-11-12 2015-05-18 日立オートモティブシステムズ株式会社 車載用制御装置のロギングシステム
JP2015179465A (ja) * 2014-03-19 2015-10-08 日立オートモティブシステムズ株式会社 自動車用電子制御装置及びその検証方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102341787B (zh) * 2009-03-12 2015-06-17 国际商业机器公司 模拟方法、系统
DE112010004037T5 (de) * 2009-10-16 2013-01-03 International Business Machines Corporation Simulationsverfahren, -system und -programm
CN103098032B (zh) * 2010-08-20 2015-10-14 国际商业机器公司 仿真方法和系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010191758A (ja) * 2009-02-19 2010-09-02 Fujitsu Semiconductor Ltd 検証支援プログラム、検証支援装置および検証支援方法
WO2011001519A1 (ja) 2009-06-30 2011-01-06 富士通株式会社 計算装置、並列計算機システムおよび同期プログラム
JP2011028458A (ja) * 2009-07-23 2011-02-10 Panasonic Corp 実行状態監視装置および実行状態監視方法
JP2013045154A (ja) * 2011-08-22 2013-03-04 Nec Corp 情報処理装置、情報処理システム、情報処理装置の異常兆候検出方法、及び異常兆候検出プログラム
JP2014191655A (ja) * 2013-03-27 2014-10-06 Toyota Motor Corp マルチプロセッサ、電子制御装置、プログラム
JP2015095061A (ja) * 2013-11-12 2015-05-18 日立オートモティブシステムズ株式会社 車載用制御装置のロギングシステム
JP2015179465A (ja) * 2014-03-19 2015-10-08 日立オートモティブシステムズ株式会社 自動車用電子制御装置及びその検証方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3637262A4

Also Published As

Publication number Publication date
EP3637262B1 (en) 2021-12-01
JP6770935B2 (ja) 2020-10-21
JP2019016021A (ja) 2019-01-31
EP3637262A4 (en) 2021-01-27
EP3637262A1 (en) 2020-04-15

Similar Documents

Publication Publication Date Title
US11360762B2 (en) Information update apparatus and information update method
CN103098032B (zh) 仿真方法和系统
US11989535B2 (en) Simulation method and recording medium
KR101855753B1 (ko) 차량 진단 게이트웨이 장치 및 이를 포함하는 시스템
CN102713858B (zh) 信息处理装置的联机调试系统及联机调试方法
US9380001B2 (en) Deploying and modifying a service-oriented architecture deployment environment model
US20060195732A1 (en) Method and system for executing test cases for a device under verification
KR102154279B1 (ko) 차량용 디버깅 시스템의 동작 방법
JP2013137658A (ja) 協調シミュレーション用計算機システム、組込みシステムの検証方法及びプログラム
JP2019125066A (ja) 車両検査装置及び車両検査方法
WO2019009068A1 (ja) 車両制御装置用の検証装置及び車両制御装置
CN106027582A (zh) 一种内容相关的并行下载方法和装置
US20130159677A1 (en) Instruction generation
Lee et al. Collecting big data from automotive ECUs beyond the CAN bandwidth for fault visualization
US20210141710A1 (en) Development support device
Kampmann et al. Agile latency estimation for a real-time service-oriented software architecture
JP2003345638A5 (ja)
CN113220317A (zh) 车辆控制器并行刷新方法、装置、计算机设备和存储介质
EP4095689A1 (en) Monitoring a time schedule of a first thread running on a control unit
EP4155926A1 (en) Method and device for sequence monitoring of multiple threads
WO2024109535A1 (zh) 通信交互方法、装置、设备及存储介质
JP2013043530A (ja) 列車情報管理装置の検証装置及び検証方法
WO2020129531A1 (ja) 車両用電子制御装置、異常信号生成方法、異常信号生成プログラム
CN108108178A (zh) 一种基于dsp的flash程序自更新方法
JP2010073113A (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: 18827708

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2018827708

Country of ref document: EP

Effective date: 20191206

NENP Non-entry into the national phase

Ref country code: DE