WO2018198616A1 - 電子制御装置、論理回路の制御方法 - Google Patents

電子制御装置、論理回路の制御方法 Download PDF

Info

Publication number
WO2018198616A1
WO2018198616A1 PCT/JP2018/011517 JP2018011517W WO2018198616A1 WO 2018198616 A1 WO2018198616 A1 WO 2018198616A1 JP 2018011517 W JP2018011517 W JP 2018011517W WO 2018198616 A1 WO2018198616 A1 WO 2018198616A1
Authority
WO
WIPO (PCT)
Prior art keywords
calculation
data
unit
circuit
logic circuit
Prior art date
Application number
PCT/JP2018/011517
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 US16/606,830 priority Critical patent/US11132329B2/en
Priority to DE112018001595.5T priority patent/DE112018001595T5/de
Priority to CN201880025847.1A priority patent/CN110520855B/zh
Publication of WO2018198616A1 publication Critical patent/WO2018198616A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • G06F15/7882Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS for self reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours

Definitions

  • the present invention relates to an electronic control device and a logic circuit control method.
  • Patent Document 1 includes a programmable logic circuit unit that includes a circuit element and a configuration memory connected to the circuit element, and a circuit is configured based on circuit information written in the configuration memory.
  • the circuit information input control means for writing circuit information input from the outside into the configuration memory and the circuit configured based on the circuit information written in the configuration memory are processed.
  • Data cache means for temporarily holding data, and a circuit configured based on circuit information written in the configuration memory, either one of data from the data cache means and input data To supply switching control signal from the outside
  • the input data switching means for switching control at the same time, and whether the output data of the circuit configured based on the circuit information written in the configuration memory is supplied to the data cache means or is derived as output data
  • a programmable logic circuit device comprising output data switching means for performing switching control according to an external switching control signal.
  • the electronic control device is partially reconfigurable including a calculation unit that is reconfigured to execute a calculation, and a storage unit that stores calculation target data to be calculated by the calculation unit.
  • the processing control unit is configured to perform the calculation after the reconfiguration is completed.
  • a logic circuit control method comprising: a calculation unit that is reconfigured using transmitted circuit data and executes a calculation; and a storage that stores calculation target data to be calculated by the calculation unit Part reconfigurable logic circuit control method in which the next computation target data that is the computation target data for the next computation unit that is the computation unit after completion of the reconfiguration is obtained, Regardless of whether or not the reconfiguration of the next calculation unit has been completed, the transmission of the next calculation target data to the storage unit is started, and when the next calculation unit completes the reconfiguration, the next calculation target Performing an operation using data.
  • the processing time can be shortened when discontinuous data is processed in the reconfigured logic circuit.
  • FIG. 1 is a system configuration diagram of an in-vehicle system 1 including an autonomous traveling control device 2.
  • the in-vehicle system 1 is mounted on a vehicle 100 and includes a camera information acquisition unit 101 that recognizes the external environment of the vehicle 100 with a camera, a radar information acquisition unit 102 that recognizes the external environment of the vehicle 100 with a radar, a satellite navigation system, And a host vehicle position information acquisition unit 103 that detects the position of the vehicle 100 using a GPS receiver.
  • the in-vehicle system 1 further includes an automatic driving setting unit 104 for setting automatic driving of the vehicle 100 and a wireless communication unit 105 for updating information of the in-vehicle system 1 by OTA (Over-The-Air).
  • OTA Over-The-Air
  • the in-vehicle system 1 further includes an autonomous traveling control device 2, an auxiliary control unit 106, a brake control unit 107, an engine control unit 108, and a power steering control unit 109.
  • the autonomous traveling control device 2, the auxiliary control unit 106, the brake control unit 107, the engine control unit 108, and the power steering control unit 109 are, for example, ECUs (Electronic Control Units).
  • the power steering control unit 109 and the power steering control unit 109 are connected to each other through a CAN (Controller Area Network) in-vehicle network so that they can communicate with each other.
  • CAN Controller Area Network
  • the camera information acquisition unit 101, the radar information acquisition unit 102, and the own vehicle position information acquisition unit 103 each transmit information received from a sensor or the like to the autonomous traveling control device 2.
  • the automatic driving setting unit 104 transmits setting information such as a destination, a route, and a traveling speed during automatic driving to the autonomous traveling control device 2. However, part of the information transmitted by the automatic operation setting unit 104 may be received from the outside such as the server device 110 via the wireless communication unit 105.
  • the autonomous traveling control device 2 performs processing for automatic driving control and outputs a control command to the brake control unit 107, the engine control unit 108, and the power steering control unit 109 based on the processing result.
  • the auxiliary control unit 106 performs the same control as the autonomous traveling control device 2 as an auxiliary.
  • the brake control unit 107 controls the braking force of the vehicle 100.
  • the engine control unit 108 controls the driving force of the vehicle 100.
  • the power steering control unit 109 controls the steering of the vehicle 100.
  • the autonomous driving control device 2 When the autonomous driving control device 2 receives an automatic driving setting request from the automatic driving setting unit 104, the autonomous driving control device 2 is based on external information from the camera information acquisition unit 101, the radar information acquisition unit 102, the own vehicle position information acquisition unit 103, and the like. The trajectory along which the vehicle 100 moves is calculated. Then, the autonomous traveling control device 2 sends a control command such as braking force, driving force, steering, etc., to the vehicle 100 in accordance with the calculated track, the brake control unit 107, the engine control unit 108, and the power steering control unit 109. Output to.
  • the brake control unit 107, the engine control unit 108, and the power steering control unit 109 receive control commands from the autonomous traveling control device 2 and output operation signals to actuators that are not illustrated, respectively.
  • FIG. 2 is a hardware configuration diagram of the autonomous traveling control device 2.
  • the autonomous traveling control device 2 includes a CPU 251, a ROM 252, a RAM 253, a flash memory 254, a logic circuit 255, and a communication interface 256.
  • the CPU 251 realizes functions to be described later by expanding and executing a program stored in the ROM 252 in the RAM 253.
  • the flash memory 254 is a non-volatile storage area.
  • the CPU 251 may be a processor having a plurality of cores adopting a lockstep method.
  • the logic circuit 255 is a reconfigurable logic circuit using a PLD (Programmable Logic Device) such as an FPGA (Field Programmable Gate Array).
  • the logic circuit 255 is a so-called partially reconfigurable logic circuit that can reconfigure only a part thereof.
  • the communication interface 256 is an interface that communicates with a predetermined protocol such as CAN.
  • the autonomous traveling control device 2 is connected to another device via the communication interface 256, and transmits and receives data.
  • the communication interface 256 may include two communication ports connected to an external device, or may include only one communication port.
  • FIG. 3 is a functional configuration diagram of the autonomous traveling control device 2.
  • the autonomous traveling control device 2 includes a first communication interface 201A, a second communication interface 201B, a processing control unit 202, a reconfiguration circuit 203, a reconfiguration management unit 204, a database management unit (hereinafter referred to as DB management unit) 205, and a calculation unit 206.
  • a processing information database hereinafter referred to as processing information DB
  • calculation DB hereinafter referred to as calculation DB
  • test DB result database
  • circuit DB circuit database
  • the communication interface 201 is realized by the communication interface 256 of FIG.
  • the processing information DB 3 and the circuit DB 6 are realized by the flash memory 254.
  • the reconfiguration circuit 203 is realized by the logic circuit 255.
  • the reconfiguration management unit 204, the DB management unit 205, the calculation unit 206, the calculation DB 4, and the result DB 5 are configured in the reconfiguration circuit 203.
  • the reconfiguration circuit 203 does not reconfigure the reconfiguration manager 204, the DB manager 205, the operation DB 4, and the result DB 5, but reconfigures only the operation unit 206.
  • the reconfiguration circuit 203 can be partially reconfigured, and reconfigures a circuit corresponding to the operation unit 206 while maintaining a circuit such as the operation DB 4.
  • the autonomous traveling control device 2 is connected to the camera information acquisition unit 101, the radar information acquisition unit 102, the vehicle position information acquisition unit 103, the automatic driving setting unit 104, and the wireless communication unit 105 of FIG. 1 via the first communication interface 201A.
  • the autonomous traveling control apparatus 2 includes two logical communication interfaces, the first communication interface 201A and the second communication interface 201B, but includes only one logical communication interface having both functions. Also good.
  • the process control unit 202 is realized by a program executed by the CPU 251.
  • the process control unit 202 has state management information 213, and the process control unit 202 repeatedly executes a process described later at a predetermined process cycle T while referring to and editing the state management information 213.
  • the state management information 213 is realized by the RAM 253 or the flash memory 254.
  • the process control unit 202 periodically collects sensor information from the camera information acquisition unit 101, the radar information acquisition unit 102, and the own vehicle position information acquisition unit 103, and automatic driving setting information from the automatic driving setting unit 104.
  • the process control unit 202 refers to the process information DB 3 to determine the number of processes to be performed on the collected sensor information, automatic operation setting information, and process information.
  • the process control unit 202 stores state management information 213.
  • the processing control unit 202 determines the presence / absence of the arithmetic processing performed by the processing control unit 202 and the presence / absence of the arithmetic processing performed by the arithmetic unit 206 based on the processing count determined by the processing information DB 3 and the processing information.
  • the processing control unit 202 causes the calculation unit 206 to execute calculation processing
  • the processing control unit 202 transmits the reconfiguration instruction 21 including circuit data to the reconfiguration circuit 203, and sets the logic circuit of the calculation unit 206 via the reconfiguration management unit 204. Reconfigure.
  • the processing control unit 202 transmits the calculation data 23 to the reconfiguration circuit 203, and transmits data necessary for calculation processing of the calculation unit 206 via the DB management unit 205. Store in the calculation DB4.
  • the processing control unit 202 manages the reconfiguration state of the circuit area of the calculation unit 206, the writing / reading state of the calculation DB 4, and the writing / reading state of the result DB 5, and the calculation processing performed by the processing control unit 202 Or, the timing of the arithmetic processing performed by the arithmetic unit 206 is adjusted.
  • the processing control unit 202 outputs a control command such as a braking force and a driving force from the communication interface 201B based on the result of the arithmetic processing performed by the processing control unit 202 itself and the result data 24 acquired from the DB management unit 205. .
  • the reconfiguration management unit 204 receives the reconfiguration instruction 21 including the processing circuit data from the processing control unit 202, and changes the logic circuit of the operation unit 206 in the circuit area in the reconfiguration circuit 203. When the change of the logic circuit is completed, the reconfiguration management unit 204 notifies the processing control unit 202 of the reconfiguration completion notification 22.
  • the DB management unit 205 provides the processing control unit 202 and the calculation unit 206 with access to the calculation DB 4 and the result DB 5. For example, when the DB management unit 205 receives the calculation data 23 from the processing control unit 202, the DB management unit 205 stores the calculation data 23 in the calculation DB 4 and provides the data to the calculation unit 206. The DB management unit 205 stores the calculation result output from the calculation unit 206 in the result DB 5 and notifies the processing control unit 202 that the storage has started.
  • the DB management unit 205 has result DB management information 212 and calculation DB management information 211, and executes processing while referring to and editing them. Details will be described later.
  • the result DB management information 212 and the operation DB management information 211 are storage areas configured in the reconfiguration circuit 203.
  • the calculation DB 4 and the test DB 5 are storage areas configured in the reconfiguration circuit 203. Since the calculation DB 4 and the test DB 5 are configured in the same reconfiguration circuit 203 as the calculation unit 206, high-speed data input / output is possible between them as compared with the processing control unit 202 existing outside the reconfiguration circuit 203. is there. For example, when the calculation unit 206 reads the same data, it takes less time to read the calculation unit 206 than to read from the calculation DB 4 than to read from the processing control unit 202. Note that when the calculation unit 206 reads data from the calculation DB 4, it is necessary to read data from the processing control unit 202 to the calculation DB 4, but the timing is devised as described later. When the calculation unit 206 writes the same data, the calculation unit 206 takes less time to write to the result DB 5 than to write to the processing control unit 202.
  • the circuit DB 6 stores a plurality of processing circuit data. These processing circuit data are written in a circuit area in the reconfiguration circuit 203 to form a logic circuit such as the arithmetic unit 206.
  • the calculation unit 206 is reconfigured by the reconfiguration management unit 204, and executes a predetermined process when the reconfiguration is completed.
  • the predetermined processing executed by the arithmetic unit 206 is determined by the reconfigured circuit, in other words, the processing circuit data received from the processing control unit 202 by the reconfiguration management unit 204.
  • the calculation unit 206 requests the DB management unit 205 to read the calculation data 23 stored in the calculation DB 4 and executes a predetermined process using the acquired data. Further, the calculation unit 206 requests the DB management unit 205 to write so that the execution result of the predetermined process is stored in the result DB 5.
  • the DB management unit 205 When the DB management unit 205 receives a write request from the calculation unit 206, the DB management unit 205 stores the execution result in the result DB 5. Details of the result DB management information 212 of the DB management unit 205 will be described later with reference to FIG.
  • the process control unit 202 acquires the execution result stored in the result DB 5 as the result data 24.
  • FIG. 4 is a diagram illustrating an example of the processing information DB 3.
  • the processing information DB 3 is a database that is referred to by the processing control unit 202 and stores processing information to be performed on collected sensor information and automatic driving setting information.
  • the processing information DB 3 has fields for a processing count 301 and processing information 302.
  • the number of times of processing 301 stores the sum of the number of times that the computing unit 206 performs computation and the number of times that the processing control unit 202 performs processing.
  • the processing information 302 includes a plurality of processing information, for example, processing information 1 to processing information 5, and stores the name of the processing and the name of the circuit of the arithmetic unit 206 corresponding to each processing. However, when the process is executed in the process control unit 202, “circuit: none” is stored.
  • processing information 1 to processing information 5 indicated by reference numerals 302-1 to 302-5 is as follows.
  • Processing information 1 indicated by reference numeral 302-1 indicates that the processing unit 206 is reconfigured using the processing circuit data corresponding to the logic circuit A in the circuit DB6, and the processing P1 is performed.
  • Processing information 2 indicated by reference numeral 302-2 indicates that the processing control unit performs the arithmetic processing P2.
  • Processing information 3 denoted by reference numeral 302-3 indicates that the processing unit 206 is reconfigured using the processing circuit data corresponding to the logic circuit B in the circuit DB6, and the processing P3 is performed.
  • Processing information 4 indicated by reference numeral 302-4 indicates that the processing control unit performs the arithmetic processing P4.
  • Processing information 5 indicated by reference numeral 302-5 indicates that the processing unit 206 is reconfigured using processing circuit data corresponding to the logic circuit C in the circuit DB6, and the processing P5 is performed.
  • the processing information DB 3 shown in FIG. 4 is an example, and the number of processing information constituting the processing information 302 may be other than three. That is, the processing information 302 may be composed of two pieces of processing information, or may be composed of four or more pieces of processing information.
  • each calculation process acquires the execution result of a predetermined process based on the execution result of the immediately preceding calculation process. For example, in the calculation process P1, calculation is performed based on the collected sensor information and automatic operation setting information to obtain an execution result, and the calculation process P2 executes a predetermined process based on the execution result of the calculation process P1.
  • Each of the arithmetic processes P3 to P5 executes a predetermined process based on the execution results of the arithmetic processes P2 to P4.
  • each of the calculation processes P2 to P4 may be calculated using information other than the execution result of the previous calculation process.
  • FIG. 5 is a diagram illustrating an example of the calculation DB management information 211.
  • the operation DB management information 211 includes fields of a circuit type 401, a total operation data number 402, an operation data size 403, a write data number 404, and a read data number 405.
  • the circuit type 401 field stores type information of a logic circuit that causes the arithmetic unit 206 to perform processing.
  • the total calculation data number field 402 stores the total number of calculation data necessary for a predetermined process executed by the calculation unit 206.
  • the field of one calculation data size 403 stores the data size used for one calculation when the calculation unit 206 performs a plurality of calculations.
  • the number of write data 404 the number of data written in the calculation DB 4 is stored.
  • the read data number 405 field the number of data read from the calculation DB 4 is stored.
  • Information on the total number of calculation data stored in the field of the total calculation data number 402 may be transmitted together with the calculation data 23 by the processing control unit 202, or when the transmission of the calculation data 23 from the processing control unit 202 is completed.
  • the field value of the number of write data 404 may be used.
  • the DB management unit 205 stores the calculation data 23 in the calculation DB 4 and writes the number of the calculation data 23 received in the field of the number of write data 404.
  • the DB management unit 205 writes the number of calculation data 23 transmitted in the field of read data number 405.
  • a match between the value stored in the field of the number of write data 404 and the value stored in the field of the total number of operation data 402 indicates that all the operation data necessary for the processing of the operation unit 206 has been stored.
  • the match between the value stored in the field of read data number 405 and the value stored in the field of total operation data number 402 indicates that all operation data has been read.
  • the number of write data 404 and the number of read data 405 are management pointers for the address of the operation DB 4.
  • the total calculation data number 402 field stores the total number of calculation data necessary for the calculation process P1, for example, “1024”.
  • the field of one calculation data size 403 stores the size of one calculation data of the calculation process P1, for example, “8 bytes”.
  • the field value of the write data number 404 is “512”
  • it is indicated that 512 of 1024 of the total operation data number 402 is written.
  • the value of the field of the number of read data 405 is “0”, it is indicated that no calculation data is read by the calculation unit 206.
  • FIG. 6 is a diagram illustrating an example of the result DB management information 212.
  • the result DB management information 212 includes fields for circuit type 501, total result data number 502, result data size 503, write data number 504, and read data number 505.
  • the circuit type 501 field stores the type information of the logic circuit of the arithmetic unit 206 that acquired the execution result.
  • the total result data count 502 field stores the total number of result data of the arithmetic unit 206 that has executed a predetermined process.
  • the field of one result data size 503 stores the size of a storage area necessary for storing one calculation result when a plurality of calculation results are acquired from the calculation unit 206.
  • the number of data written in the result DB 5 is stored.
  • the number of data read from the result DB 5 is stored in the read data number 505 field.
  • the value of the field of the total result data number 502 may be transferred from the field of the total operation data number 402 of the operation DB management information 211 or may be separately transmitted from the processing control unit 202.
  • the DB management unit 205 stores the result data 24 in the result DB 5 and writes the number of the received result data 24 in the field of the number of write data 504.
  • the DB management unit 205 writes the number of the result data 24 transmitted in the field of the read data number 505.
  • the coincidence between the value stored in the field of the number of write data 504 and the value stored in the field of the total calculation data number 502 indicates that the processing of the calculation unit 206 is completed and all the calculation results are stored. Similarly, a match between the value stored in the field of the read data number 505 and the value stored in the field of the total calculated data number 502 indicates that all the calculated data has been read.
  • the number of write data 504 and the number of read data 505 are management pointers of the addresses of the result DB 5.
  • the total calculation data number 502 field stores the total number of calculation data necessary for the calculation process P3, for example, “1024”.
  • the size of one calculation result of the calculation process P3, for example, “4 bytes” is stored.
  • the value of the field of the number of write data 404 is “1024”, it is indicated that all the result data is written.
  • the value of the field of the read data number 505 is “128”, it is indicated that a part of the result data is read.
  • FIG. 7 is a diagram illustrating an example of the state management information 213.
  • the state management information 213 indicates the states of the calculation unit 206, the calculation DB 4, and the result DB 5.
  • the state management information 213 includes a field of the circuit type 601 and the reconfiguration state 602 indicating the state of the arithmetic unit 206, a field of the operation type 603 and state of the operation DB state 604 indicating the state of the operation DB4, and a result type 605 indicating the state of the result DB5. And a result DB state 606 field.
  • the circuit type 601 field stores logic circuit type information of the arithmetic unit 206. In the field of the reconfiguration state 602, the reconfiguration state of the computing unit 206, that is, “completed” indicating completion of reconfiguration or “under reconfiguration” indicating that reconfiguration is in progress is stored.
  • type information of a logic circuit that processes the operation data 23 stored in the operation DB 4 is stored.
  • the field of the operation DB state 604 stores a value indicating the storage status of the operation data 23 processed by the logic circuit specified by the value of the field of the operation type 603 in the operation DB 4.
  • the value is “stored” indicating that the storage is completed, or “storing” indicating that storage is in progress or storage has not started.
  • type information of the logic circuit that outputs the execution result stored in the result DB 5 is stored.
  • the field of the result DB state 606 stores a value indicating the acquisition status from the result DB 5 of the execution result processed by the logic circuit specified by the value of the field of the result type 605.
  • the value is “acquired” indicating that the process control unit 202 has acquired all the result data 24 from the result DB 5, or “stored” indicating that there is result data 24 that has not been acquired.
  • the fact that the arithmetic unit 206 has been reconfigured into the logic circuit C is represented by the field value “C” of the circuit type 601 and the field value “complete” of the reconfiguration state 602. Yes.
  • the field values of the operation type 603 and the operation DB state 604 indicate that the operation data of the circuit type “C” is “stored” in the operation DB 4.
  • the field values of the result type 605 and the result DB state 606 indicate that all the calculation results of the circuit type “B” are “acquired” by the processing control unit 202.
  • FIG. 8 is a flowchart showing the operation of the process control unit 202.
  • the execution subject of each step described below is the CPU 251 of the autonomous traveling control device 2.
  • the process control unit 202 executes an operation shown in the following flowchart for each predetermined process cycle T.
  • step S601 the process control unit 202 assigns “1” to the process ID that is a loop counter.
  • step S602 the process control unit 202 refers to the process information DB 3 and determines whether or not the process of the process information indicated by the process ID uses a logic circuit. If it is determined that the logic circuit is to be used, the process proceeds to step S603. If it is determined that the logic circuit is not to be used, the process proceeds to step S621. For example, when the process information DB 3 is shown in FIG. 4 and the process ID is “1”, the process control unit 202 refers to the process information 1 indicated by reference numeral 302-1. The processing control unit 202 determines that the logic circuit is used because “circuit: A” is described.
  • step S603 transfer of circuit data to the reconfiguration management unit 204 is started based on the description in the processing information DB3. In this step, only the start of the circuit data transfer is defined, and the process proceeds to the next step S604 as soon as the circuit data transfer is started without confirming the end of the transfer.
  • the reconfiguration management unit 204 immediately starts reconfiguration of the arithmetic unit 206 when circuit data is received.
  • the calculation unit 206 acquires calculation data from the calculation DB 4, executes the calculation, and writes the result data 24 in the result DB 5.
  • step S604 it is determined whether or not calculation data is available, in other words, whether or not the immediately preceding process has been completed. If it is determined that it is available, the process proceeds to step S605. If it is determined that it is not yet available, after waiting for a predetermined time in step S631, step S604 is executed again. In subsequent step S605, the operation data is transferred to the DB management unit 205.
  • step S606 it is determined whether or not there is a write in the result DB 5, in other words, whether or not the output of the result data 24 from the calculation unit 206 has been started. If it is determined that there is writing, the process proceeds to step S607. If it is determined that there is no writing yet, the process waits for a predetermined time in step S632 and then executes step S606 again. In step S607, reading of the result data 24 from the result DB 5 is started via the DB management unit 205. In a succeeding step S608, it is determined whether or not all the result data are stored in the result DB 5.
  • this determination can be made based on whether or not the field value of the total result data number 502 of the result DB management information 212 matches the field value of the read data number 505. If it is determined that all the result data 24 has been stored in the result DB 5, the process proceeds to step S609. If it is determined that there is unstored result data 24, the process waits for a predetermined time in step S633 and then executes step S608 again. .
  • step S609 it is determined whether or not the process ID is equal to or greater than a specified value, that is, the value of the process count field in the process information DB3. If it is determined that the process ID is equal to or greater than that value, all the processes shown in the process information DB 3 have been completed, and the operation shown in FIG. If it is determined that the process ID is less than the value, the process proceeds to step S634, the process ID is incremented, and the process returns to step S602.
  • a specified value that is, the value of the process count field in the process information DB3.
  • step S621 that is executed when a negative determination is made in step S602, it is unnecessary to read the result data 24 from the result DB 5 in order to execute the process indicated by the process ID with reference to the process information DB3. Determine whether. For example, when the process in the process control unit 202 is continuous, or when the process ID is “1”, this step is affirmed. If a positive determination is made, the process proceeds to step S624, and if a negative determination is made, the process proceeds to step S622. In step S622, it is determined whether or not the reading of the result data 24 from the result DB 5 has been completed. If it is determined that the reading is completed, the process proceeds to step S624. If it is determined that the reading is not completed, the process waits for a predetermined time in step S623, and then executes step S622 again. Note that the reading process waiting for completion in this step is started in step S607.
  • step S624 the process control unit 202 executes the process indicated by the process ID, and proceeds to step S609.
  • FIG. 9 is a flowchart showing the operation of the reconfiguration circuit 203.
  • the reconfiguration circuit 203 operates by the cooperative operation of the reconfiguration management unit 204, the DB management unit 205, and the calculation unit 206. Each time the reconfiguration circuit 203 receives circuit data from the processing control unit 202, the reconfiguration circuit 203 performs an operation shown in the following flowchart.
  • step S800 the reconfiguration management unit 204 starts writing the received circuit data to the reconfiguration circuit 203, that is, reconfiguration of the arithmetic unit 206.
  • step S801 the reconfiguration management unit 204 determines whether or not the reconfiguration of the calculation unit 206 to the reconfiguration circuit 203 has been completed. If it is determined that the process has been completed, the process proceeds to step S802. If it is determined that the process has not been completed, the process returns to step S801. In step S802, the reconfiguration management unit 204 notifies the processing control unit 202 that the reconfiguration has been completed.
  • step S803 the DB management unit 205 determines whether calculation data is stored in the calculation DB 4. If it is determined that the calculation data is stored, the process proceeds to step S804. If it is determined that the calculation data is not stored, step S803 is executed again. In step S804, the calculation unit 206 acquires calculation data from the calculation DB 4, executes the process, and stores the processing result in the result DB 5. The process ends here.
  • FIG. 10 is a timing chart showing an operation in a certain processing cycle T of the autonomous traveling control device 2.
  • the process control unit 202 operates with reference to the process information DB 3 illustrated in FIG.
  • time elapses from the left to the right in the figure.
  • FIG. 10 shows from the top the operation state of the processing control unit 202, the values of fields 601 to 606 of the state management information 213, the transmission state of the reconfiguration instruction 21, and the reconfiguration completion notification.
  • 22 shows the transmission state of the calculation data 23, the input / output of the calculation DB 4, the operation of the calculation unit 206, the input / output of the result DB 5, and the transmission state of the result data 24.
  • the process control unit 202 starts the periodic process at time t0, and interprets the process count 301 and the process information 302 with reference to the process information DB3.
  • FIG. 10 shows only one period of time T, but these processes are repeatedly executed.
  • the processing control unit 202 reconfigures the processing circuit data of the processing information 1 indicated by reference numeral 302-1 in FIG. 4, that is, the reconfiguration instruction 21 to the logic circuit A and the arithmetic unit 206. To the unit 204. As a result, the calculation unit 206 is being reconfigured. Further, the process control unit 202 writes the calculation data 23 necessary for the calculation process P1 into the calculation DB4. By writing the calculation data 23 to the calculation DB 4 during the reconfiguration, the execution of the calculation process P1 after completion of the reconfiguration is prepared. At this time, the processing control unit 202 sets “A” as the circuit type 601 of the state management information 213 described in FIG. 7, “Reconfiguring” as the reconfiguration state 602, “A” as the operation type 603, and the operation DB state 604. Store “in storage”.
  • the process control unit 202 changes the calculation DB state 604 to “set”.
  • the reconfiguration management unit 204 transmits a reconfiguration completion notification 22 to the process control unit 202. Further, the process control unit 202 changes the reconfiguration state 602 to “completed”.
  • the computation unit 206 that has been reconfigured confirms that the data necessary for the computation process P1 is stored in the computation DB 4, and reads the data from the computation DB 4 via the DB management unit 205 while performing the computation process P1. Start running. Reading of data from the calculation DB 4 to the calculation unit 206 is performed on the same reconfiguration circuit 203 and can be performed in a short time.
  • the calculation unit 206 executing the calculation process P1 starts storing the execution result in the result DB 5 via the DB management unit 205.
  • the process control unit 202 changes the result type 605 to “A” and the result DB state 606 to “stored”.
  • the process control unit 202 starts reading the result DB 5 via the DB management unit 205 and acquires the result data 24 of the calculation process P1. Writing data from the arithmetic unit 206 to the result DB 5 is completed in a short time because it is configured on the same reconfiguration circuit 203.
  • the writing of the result data to the result DB 5 of the arithmetic unit 206 is completed. That is, since the processing of the arithmetic unit 206 is completed, the processing control unit 202 performs the next circuit data, that is, the processing circuit data of the processing information 3 indicated by reference numeral 302-3 in FIG. 3, that is, the circuit data of the logic circuit B. Start sending. Further, the processing control unit 202 transmits a reconfiguration instruction 21 to the calculation unit 206 to the reconfiguration management unit 204. Thereby, the arithmetic unit 206 is being reconfigured again. At this time, the process control unit 202 changes the circuit type 601 to “B” and the reconfiguration state 602 to “reconfiguring”.
  • the process control unit 202 completes reading of the result data 24 of the operation process P1 from the result DB 5, and the result DB state 606 is changed to “acquired”. Then, the process control unit 202 starts executing the calculation process P2.
  • the reconfiguration management unit 204 transmits a reconfiguration completion notification 22 to the process control unit 202. Then, the reconfiguration state 602 is changed to “complete”. However, the operation data to be processed by the logic circuit B has not yet been processed in the operation unit 206 because the processing information 2 is not yet being executed.
  • the process control unit 202 When the process control unit 202 completes the execution of the calculation process P2 at time t8, the process control unit 202 writes the calculation data 23 necessary for the calculation process P3 into the calculation DB4. At this time, the process control unit 202 changes the calculation type 603 to “B” and the calculation DB state 604 to “stored”. Further, since the reconfiguration of the arithmetic unit 206 to the logic circuit B is completed at time t7, the arithmetic unit 206 confirms that data necessary for the arithmetic processing P3 is stored in the arithmetic DB 4, and the DB management unit The execution of the calculation process P3 is started while reading data from the calculation DB 4 via 205.
  • the processing control unit 202 changes the calculation DB state 604 to “set”. Note that reading of data from the calculation DB 4 to the calculation unit 206 can be performed in a short time, and thus the reading is completed at the same time t9.
  • the calculation unit 206 executing the calculation process P3 starts storing the execution result in the result DB 5 via the DB management unit 205.
  • reading of the result data 24 from the result DB 5 by the processing control unit 202 is also started.
  • the process control unit 202 changes the result type 605 to “B” and the result DB state 606 to “stored”.
  • the processing control unit 202 sends the circuit data of the logic circuit C and the reconfiguration instruction 21 to the reconfiguration management unit 204 in order to configure the next operation unit 206. Send.
  • writing to the result DB 5 is completed in the period from time t10 to time t11, since the processing control unit 202 exists outside the reconstruction circuit 203, reading from the result DB 5 is not completed at time t11. .
  • the process control unit 202 changes the circuit type 601 to “C” and the reconfiguration state 602 to “reconfiguring”.
  • the process control unit 202 completes reading the result data 24 of the operation process P3 from the result DB 5, and changes the result DB state 606 to “acquired”. Then, the process control unit 202 starts executing the calculation process P4.
  • the process control unit 202 completes the execution of the calculation process P4, the calculation data 23 necessary for the next calculation process P5 is written in the calculation DB 4.
  • the arithmetic unit 206 continues the reconfiguration, and writes the operation data 23 to the operation DB 4 in parallel with this reconfiguration to prepare for the start of execution of the arithmetic processing P5 after the completion of the reconfiguration.
  • the process control unit 202 changes the calculation type 603 to “C” and the calculation DB state 604 to “stored”.
  • the reconfiguration management unit 204 transmits a reconfiguration completion notification 22 to the process control unit 202.
  • the process control unit 202 changes the reconfiguration state 602 to complete.
  • the calculation unit 206 confirms that data necessary for the calculation process P5 is stored in the calculation DB 4, and starts executing the calculation process P5 while reading data from the calculation DB 4 via the DB management unit 205. To do.
  • the processing control unit 202 changes the calculation DB state 604 to “set”. Note that data can be read from the calculation DB 4 to the calculation unit 206 in a short time, so that the reading is completed at the same time t15.
  • the calculation unit 206 executing the calculation process P5 starts storing the execution result in the result DB 5 via the DB management unit 205.
  • reading of the result data 24 from the result DB 5 by the processing control unit 202 is also started.
  • the process control unit 202 changes the result type 605 to “C” and the result DB state 606 to “stored”.
  • the process control unit 202 completes reading the result data 24 of the operation process P5 from the result DB 5, and changes the result DB state 606 to “acquired”. Further, the process control unit 202 outputs a control command based on the result data 24 of the calculation process P5. At time t19, the output of the control command is completed, and the process control unit 202 ends the process for one period of time T.
  • FIG. 11 is a timing chart showing a comparison between the autonomous traveling control device 2 in the first embodiment and a conventional autonomous traveling control device (hereinafter referred to as a conventional autonomous traveling control device).
  • the conventional autonomous traveling control device does not include the calculation DB 4 and the result DB 5, and the conventional calculation unit directly receives calculation data from the conventional process control unit and directly outputs the result data.
  • FIG. 11 is divided into an upper half and a lower half by the time information described slightly below the middle of the drawing. In the upper half of FIG. 11, some elements shown in FIG. 10 are shown as they are. The lower half of FIG.
  • FIG. 11 shows operation timings of a conventional process control unit (hereinafter, a conventional process control unit) and a conventional calculation unit (conventional calculation unit) in the conventional autonomous traveling control device.
  • a conventional process control unit hereinafter, a conventional process control unit
  • a conventional calculation unit conventional calculation unit
  • the conventional calculation unit interprets the processing count 301 and the processing information 302 with reference to the processing information DB 3 in the same manner as the processing control unit 202 from time t0 to time t1.
  • the conventional arithmetic unit performs reconfiguration from time t1 to time t3. Then, the conventional calculation unit starts the calculation of P1 at time t3 when the reconstruction is completed. After time t3, the conventional calculation unit receives calculation data from the conventional processing control unit and performs calculation. Then, the conventional calculation unit outputs the result data obtained by the calculation to the conventional processing control unit.
  • the conventional calculation unit receives the calculation data from the processing control unit outside the reconfiguration circuit 203, it takes a longer time to read the calculation data from the calculation DB 4 by the calculation unit 206. The same applies to the output of the result data of the conventional arithmetic unit. For this reason, the calculation unit 206 and the conventional calculation unit perform the same processing, but the time required for input / output differs, so the required time differs. Specifically, the time t6A at which the conventional calculation unit finishes outputting the calculation data of the calculation process P1 is later than the time t6 at which the process control unit 202 finishes reading all data from the result DB 5.
  • the conventional process control unit starts the calculation process P2 from time t6A.
  • the time required for this process is the same as the time required by the process control unit 202 for the calculation process P2.
  • the conventional calculation unit starts reconfiguration for the next calculation process P3.
  • the time t8A is later than the time t8 when the calculation unit 206 starts the calculation process P3.
  • the reconfiguration of the conventional calculation unit is completed, and the conventional calculation unit starts the calculation process P3.
  • the conventional calculation unit performs calculation while acquiring calculation data from the conventional process control unit in the same manner as the calculation process P1, and outputs the result data to the conventional process control unit. Therefore, the time required for the calculation process P3 by the conventional calculation unit is longer than the time required for the calculation process P3 by the calculation unit 206.
  • the calculation unit 206 is equivalent to a state in which the bandwidth that can be used for input / output is wide compared to the conventional calculation unit, even when the same processing is performed, the calculation unit 206 is completed in a short time. Also, since the calculation unit 206 starts reconfiguration for the next process as soon as the processing of the immediately preceding calculation unit 206 is completed, it takes time until the calculation unit 206 starts operating after the previous calculation is completed. short.
  • the autonomous traveling control device 2 includes a reconfigurable reconfigurable circuit that includes a calculation unit 206 that is reconfigured and executes a calculation, and a calculation DB 4 that stores calculation data to be calculated by the calculation unit 206 203, circuit data for reconfiguring the arithmetic unit 206, and a processing control unit 202 that transmits the arithmetic data to the arithmetic DB 4 of the reconfiguration circuit 203.
  • the process control unit 202 starts transmission of calculation data to the calculation DB 4 regardless of whether or not the reconfiguration of the calculation unit 206 is completed.
  • the calculation unit 206 performs calculation using calculation data stored in the calculation DB 4.
  • the transfer of calculation data from the calculation DB 4 to the calculation unit 206 is more than the direct data transfer from the processing control unit 202 to the calculation unit 206.
  • the processing control unit 202 starts transmission of calculation data to the calculation DB 4 prior to completion of the reconfiguration of the calculation unit 206
  • the calculation unit 206 reads the calculation data from the calculation DB 4 to obtain the time required for reading calculation data.
  • the processing control unit 202 executes S603 earlier than S605 in FIG. Transmit to the configuration circuit 203.
  • the calculation of the calculation unit 206 can be started without storing all of the calculation data in the calculation DB 4.
  • the calculation of the calculation unit 206 can be started only after all the circuit data has been transmitted to the reconfiguration circuit 203. Therefore, the circuit data can be given priority over the operation data and transmitted to the reconfiguration circuit 203, and the operation of the operation unit 206 can be started early.
  • the case where the circuit data can be transmitted to the reconstruction circuit 203 is a case where the calculation in the calculation unit 206 is completed.
  • the case where the calculation target data can be transmitted to the reconfiguration circuit 203 is a case where all the calculation data is read from the calculation DB 4 and the next calculation target data is obtained.
  • the reconfiguration circuit 203 includes a result DB 5 that stores the calculation result of the calculation unit 206.
  • the processing control unit 202 transmits circuit data for reconfiguration of the calculation unit 206. Since the result DB 5 is configured in the same reconfiguration circuit 203 as the calculation unit 206, the data transfer from the calculation unit 206 to the result DB 5 is completed in a shorter time than the data transfer from the result DB 5 to the processing control unit 202. . Therefore, the reconfiguration of the calculation unit 206 can be started earlier than when the result data is transferred from the calculation unit 206 to the processing control unit 202.
  • the process control unit 202 determines the availability of the operation data when the transfer of the circuit data is started in step S803 in FIG. 8, and immediately starts the transfer of the operation data when it is available.
  • the transfer of calculation data is started immediately after the transfer of circuit data is started.
  • the operation data transfer may be started on the condition that a predetermined time has elapsed from the start of the circuit data transfer.
  • FIG. 12 is a flowchart showing the operation of the processing control unit 202 in this modification instead of FIG. 8 in the above-described embodiment.
  • FIG. 12 mainly describes the differences from FIG. 8, and the omitted parts are the same as the operations in FIG. Further, the same step numbers are assigned to steps that perform the same processing as in FIG.
  • step S602 If an affirmative determination is made in step S602, the process control unit 202 starts the processes in steps S603A and S604A in parallel. In step S603A, the processing control unit 202 starts transferring circuit data. In step S604A, when the process control unit 202 makes an affirmative determination, the process control unit 202 performs the process of step S605A. The process control unit 202 starts the process of step S606 when the processes of both step S603A and step S605A are completed. According to the second modification, the transmission of circuit data and the transmission of calculation data can be started almost simultaneously, and the transfer of calculation data to the calculation DB 4 can be completed as soon as possible.
  • FIG. 13 is a flowchart showing the operation of the processing control unit 202 in this modification instead of FIG. 8 in the above-described embodiment.
  • FIG. 13 mainly describes differences from FIG. 8, and the omitted parts are the same as the operations of FIG. 8. Further, the same step numbers are assigned to steps that perform the same processing as in FIG.
  • step S604B the process control unit 202 determines whether or not calculation data is available. If the determination is affirmative, the process proceeds to step S641, and if the determination is negative, the process proceeds to step S603C.
  • step S641 the processing control unit 202 determines whether the time from the start of transfer of circuit data to the reconfiguration management unit 204 to the completion of reconfiguration of the calculation unit 206 is shorter than the time required to transfer calculation data to the calculation DB 4 Judge whether or not. If it is determined that the former time is shorter than the latter time, the process proceeds to step S605B. If the opposite time is determined, the process proceeds to step S603D.
  • step S605B calculation data transfer is started, and in the subsequent step S643, a predetermined time is waited.
  • the standby time in step S643 is, for example, the difference between the time from the start of transfer of circuit data to the reconfiguration management unit 204 to the completion of reconfiguration of the operation unit 206 and the time required to transfer operation data to the operation DB 4.
  • step S603B transfer of circuit data is started, and the process proceeds to step S606.
  • step S603C which is executed when a negative determination is made in step S604B
  • the process control unit 202 starts transferring circuit data and proceeds to step S604A.
  • step S603D which is executed when a negative determination is made in step S641
  • transfer of circuit data is started, and the process proceeds to step S642.
  • step S642 the process waits for a predetermined time and proceeds to step S604A.
  • the standby time in step S643 is, for example, the difference between the time from the start of transfer of circuit data to the reconfiguration management unit 204 to the completion of reconfiguration of the operation unit 206 and the time required to transfer operation data to the operation DB 4. That is, in this case, the completion of the reconfiguration of the arithmetic unit 206 and the completion of the transfer of the arithmetic data are almost simultaneous.
  • step S604A the process control unit 202 determines again whether or not the calculation data is available. If the determination is negative, the process control unit 202 waits in step S631A and then executes step S604A again. When an affirmative determination is made in step S604A, the process proceeds to step S605C. In step S605C, calculation data transfer is started, and the process proceeds to step S606. Since the process after step S606 is the same as that of the first embodiment, the description thereof is omitted.
  • step S641 and S642 instead of the time from the start of transfer of circuit data to the reconfiguration management unit 204 to the completion of reconfiguration of the arithmetic unit 206, the time required for transfer of circuit data to the reconfiguration management unit 204 May be evaluated.
  • step S643 the standby time may be determined so that the completion of the transfer of the operation data is completed earlier than the completion of the reconstruction of the operation unit 206. Further, in step S643, the standby time may be determined so that the transmission of the subsequent data is started at the timing when the transfer of the data that has been transmitted first is completed.
  • the processing control unit 202 determines the circuit based on the time required to transmit the circuit data and the time required to transmit the operation target data. Decide whether to give priority to transmission of data or calculation target data. Therefore, data requiring a long transfer time can be transmitted first, and the time from the completion of the reconfiguration of the calculation unit 206 to the start of calculation can be reduced.
  • the processing control unit 202 sets either the circuit data or the calculation target data as the first transmission data to be transmitted first, and the other as the subsequent transmission data. Decide whether to use transmission data, determine the post-transmission standby time based on the difference between the time required to transmit the circuit data and the time required to transmit the calculation target data, and after transmitting the pre-transmission data, the post-transmission standby time Only after waiting to send the transmission data. Therefore, circuit data and calculation data can be transmitted efficiently.
  • the process control unit 202 determines the post-transmission waiting time so that the completion of the reconfiguration of the calculation unit 206 and the completion of the transfer of calculation data to the calculation DB 4 are simultaneously performed. Therefore, it is possible to shorten the time until the calculation starts after the reconstruction of the calculation unit 206 is completed.
  • FIG. 14 is a flowchart showing the operation of the processing control unit 202 in this modification instead of FIG. 8 in the above-described embodiment. Further, the same step numbers are assigned to steps that perform the same processing as in FIG.
  • step S601 and step S602 are the same as in FIG. If an affirmative determination is made in step S602, the process control unit 202 executes step S608A and step S651 in parallel. Note that the processing in the case where a negative determination is made in step S602 is the same as that in the first embodiment, and a description thereof will be omitted.
  • step S608A the process control unit 202 determines whether all the result data is stored in the result DB 5, that is, whether the calculation of the calculation unit 206 is completed. If it is determined that the calculation of the calculation unit 206 is completed, the process proceeds to step S603E. If it is determined that the calculation of the calculation unit 206 is not completed, step S608A is executed again. However, a predetermined time may be waited before executing step S608A. If the process ID is “1”, an affirmative determination is made in step S608A. In step S603E, the process control unit 202 starts transferring circuit data.
  • step S651 the process control unit 202 determines whether or not the calculation data has been read from the calculation DB 4. It can be determined whether or not the calculation data has been read out based on whether or not the field value of the total calculation data number 402 in the calculation DB management information 211 matches the field value of the read data number 405. If an affirmative determination is made in step S651, the process proceeds to step S604B. If a negative determination is made in step S651, step S651 is executed again. However, a predetermined time may be waited before executing step S651. If the process ID is “1”, an affirmative determination is made in step S651. In step S604B, it is determined whether calculation data used by the calculation process indicated by the process ID is available. If it is determined that the data can be obtained, the process proceeds to step S605E to start transferring the calculation data. If it is determined that the calculation data is not yet available, step S604B is executed again.
  • step S606 executes step S606.
  • step S609 Since the process in step S609 and the process in step S634 executed when a negative determination is made in step S609 are the same as those in the first embodiment, description thereof will be omitted.
  • Modification 5 When processing is continuously performed in the calculation unit 206, the result data stored in the result DB 5 may be input to the next configured calculation unit 206 without being transferred to the process control unit 202. In that case, the operation DB 4 and the result DB 5 can be dealt with by temporarily switching roles. For example, the case where arithmetic processing Q1 and arithmetic processing Q2 are processed in the arithmetic unit 206 will be described as an example.
  • the calculation unit 206 stores the calculation result of the calculation process Q1 in the result DB5. When all the calculation results for the calculation process Q1 are stored in the result DB 5, the calculation unit 206 starts reconfiguration to execute the calculation process Q2.
  • the calculation unit 206 reads the result data of the calculation process Q1 from the result DB 5, that is, the calculation data of the calculation process Q2, and starts the process. And the calculating part 206 outputs the calculation result of the calculation process Q2 to calculation DB4.
  • data is cached in the reconfiguration circuit 203 when processing is continuously performed in the arithmetic unit 206, so that part of reading and writing by the processing control unit 202 can be omitted, and processing can be speeded up.
  • the processing control unit mainly includes an internal processing management unit that manages arithmetic processing in the processing control unit 202 and an external processing management unit that manages arithmetic processing in the reconfiguration circuit. Different from the first embodiment.
  • FIG. 15 is a functional configuration diagram of the autonomous traveling control device 2 according to the second embodiment.
  • the process control unit 202 further includes an internal process management unit 230 and an external process management unit 240.
  • the internal process management unit 230 and the external process management unit 240 are realized by the CPU 251 executing a program stored in the ROM 252.
  • the internal process management unit 230 and the external process management unit 240 share the process ID information, and if one of them changes the value of the process ID, the value of the process ID is also changed on the other side.
  • FIG. 16 is a flowchart showing the operation of the internal processing management unit 230.
  • the internal process management unit 230 executes an operation shown in the following flowchart for each predetermined process cycle T. Also, the same step numbers are assigned to steps that perform the same processing as in FIG. In the following, differences from FIG. 8 will be mainly described.
  • the execution subject of the steps described in the flowchart described below is the CPU 251. Just before starting the flowchart shown in FIG. 16, “1” is assigned to the process ID by the process control unit 202.
  • step S702 the internal process management unit 230 refers to the process information DB 3, and determines whether or not the process in the process information indicated by the process ID is executed in the process control unit 202. This determination is affirmative if the circuit is set to “None” in the processing information indicated by the processing ID, and negative if it is set to anything else. If an affirmative determination is made, the internal processing management unit 230 proceeds to step S621, and if a negative determination is made, the internal processing management unit 230 executes step S702 again. If a negative determination is made in step S702, the external process management unit 240 waits for the process ID to be updated.
  • step S621 Processing after step S621 is the same as that in the first embodiment. If it is determined in step S609 that the process ID is equal to or greater than the specified value, that is, the value of the process count field in the process information DB 3, the operation illustrated in FIG.
  • FIG. 17 is a flowchart showing the operation of the external processing management unit 240.
  • the external process management unit 240 executes an operation shown in the following flowchart for each predetermined process cycle T. Also, the same step numbers are assigned to steps that perform the same processing as in FIG. In the following, differences from FIG. 8 will be mainly described.
  • the execution subject of the steps described in the flowchart described below is the CPU 251. Immediately before starting the flowchart shown in FIG. 17, “1” is assigned to the process ID by the process control unit 202.
  • step S752 the external process management unit 240 refers to the process information DB 3 and identifies the calculation to be executed by the calculation unit 206 first in the process after the process ID value. For example, when the process ID is “2” and the process information DB 3 is the example shown in FIG. 4, “P3” is specified. Since the processing information 2 is recorded as “Circuit: None”, the calculation P2 is not executed by the calculation unit 206, and the next calculation P3 of the processing information 3 is recorded as “Circuit: B”. This is because it is executed.
  • the external process management unit 240 executes the process of step S603F and the process of step S604F in parallel.
  • step S603F the external processing management unit 240 starts transferring circuit data corresponding to the calculation specified in step S752.
  • step S604F the external processing management unit 240 determines whether calculation data used in the calculation specified in step S752 is available. If it is determined that it is available, the process proceeds to step S605F. If it is determined that it is not yet available, step S604F is executed again. If a negative determination is made in step S604F, the process waits for the calculation of the internal processing management unit 230 to be completed. In step S605F, the external processing management unit 240 starts transferring the calculation data used in the calculation specified in step S752 to the calculation DB 4.
  • step S606 executes step S606 when the execution of both step S603F and step S605F is completed. Since the processing from step S606 to step S609 is the same as that of the first embodiment, description thereof is omitted. If a negative determination is made in step S609, the process ID is incremented, that is, “1” is increased, and the process returns to step S752.
  • the process control unit 202 includes an internal process management unit 230 and an external process management unit 240.
  • the internal process management unit 230 and the external process management unit 240 execute processes in parallel.
  • the external process management unit 240 identifies a calculation that is first executed by the calculation unit 206 after the current process ID. Then, the external processing management unit 240 starts the transfer of circuit data, determines whether the calculation data to be calculated next is available in the calculation unit 206, and transfers the calculation data if it is available. Start.
  • the program executed by the autonomous traveling control device 2 is stored in the ROM 252, the program may be stored in the flash memory 254.
  • the autonomous traveling control device 2 may include an input / output interface (not shown), and a program may be read from another device via an input / output interface and a medium that can be used by the ECU 1 when necessary.
  • the medium refers to, for example, a storage medium that can be attached to and detached from the input / output interface, or a communication medium, that is, a wired, wireless, or optical network, or a carrier wave or digital signal that propagates through the network.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Logic Circuits (AREA)
  • Stored Programmes (AREA)

Abstract

電子制御装置は、再構成されて演算を実行する演算部、および演算部が演算対象とする演算対象データを格納する格納部が構成される部分再構成可能な論理回路と、演算部を再構成させるための回路データ、および演算対象データを論理回路に送信する処理制御部とを備え、処理制御部は、再構成の完了後の演算部である次回演算部にかかる演算対象データである次回演算対象データが得られると、次回演算部の再構成が完了しているか否かにかかわらず、格納部への次回演算対象データの送信を開始し、再構成が完了した次回演算部は次回演算対象データを用いて演算を行う。

Description

電子制御装置、論理回路の制御方法
 本発明は、電子制御装置、および論理回路の制御方法に関する。
 車両の自動運転を目指した技術開発が進められている。自動運転は運転者に代わり周囲の認識、車両の制御を行う必要があり、膨大な情報処理が必要になる。増大する情報処理に対応するため、CPUに加え、ハードウェアチップを用いる検討が進められている。その中でも、論理回路を再構成可能なFPGA(Field Programmable Gate Array)等のPLD(Programmable Logic Device)を用いて複数の処理を1つの論理回路上で実現することが期待されている。論理回路を用いて演算を行う場合は、論理回路の再構成に要する時間を考慮した適切な処理が求められる。
 特許文献1には、回路素子と、この回路素子に接続されるコンフィギュレーションメモリとを備え、前記コンフィギュレーションメモリに書き込まれる回路情報に基づいて回路が構成されるプログラマブル論理回路部と、外部からの制御信号を受けて、前記コンフィギュレーションメモリに外部から入力される回路情報を書き込むための回路情報入力制御手段と、前記コンフィギュレーションメモリに書き込まれた回路情報に基づいて構成された回路で処理されるデータを一時的に保持するデータキャッシュ手段と、前記コンフィギュレーションメモリに書き込まれた回路情報に基づいて構成される回路に対して、前記データキャッシュ手段からのデータと、入力データとのいずれか一方を供給するように、外部からの切り替え制御信号に応じて切替制御する入力データ切替手段と、前記コンフィギュレーションメモリに書き込まれた回路情報に基づいて構成される回路の出力データを、前記データキャッシュ手段に供給するか、あるいは出力データとして導出するかを、外部からの切り替え制御信号に応じて切替制御する出力データ切替手段と、を備えることを特徴とするプログラマブル論理回路装置が開示されている。
日本国特開2006-333496号公報
 特許文献1に記載されている発明では、再構成される論理回路において非連続なデータを処理する場合には処理時間を短縮することができない。
 本発明の第1の態様による電子制御装置は、再構成されて演算を実行する演算部、および前記演算部が演算対象とする演算対象データを格納する格納部が構成される部分再構成可能な論理回路と、前記演算部を再構成させるための回路データ、および前記演算対象データを前記論理回路に送信する処理制御部とを備え、前記処理制御部は、再構成の完了後の前記演算部である次回演算部にかかる前記演算対象データである次回演算対象データが得られると、前記次回演算部の再構成が完了しているか否かにかかわらず、前記格納部への前記次回演算対象データの送信を開始し、再構成が完了した前記次回演算部は前記次回演算対象データを用いて演算を行う。
 本発明の第2の態様による論理回路の制御方法は、送信される回路データを用いて再構成されて演算を実行する演算部、および前記演算部が演算対象とする演算対象データを格納する格納部が構成される部分再構成可能な論理回路の制御方法であって、再構成の完了後の前記演算部である次回演算部にかかる前記演算対象データである次回演算対象データが得られると、前記次回演算部の再構成が完了しているか否かにかかわらず、前記格納部への前記次回演算対象データの送信を開始することと、前記次回演算部は再構成が完了すると前記次回演算対象データを用いて演算を行うこととを含む。
 本発明によれば、再構成される論理回路において非連続なデータを処理する場合に処理時間を短縮することができる。
車載システム1のシステム構成図 自律走行制御装置2のハードウエア構成図 第1の実施の形態における自律走行制御装置2の機能構成図 処理情報DB3の一例を示す図 演算DB管理情報211の一例を示す図 結果DB管理情報212の一例を示す図 状態管理情報213の一例を示す図 第1の実施の形態における処理制御部202の動作を示すフローチャート 再構成回路203の動作を示すフローチャート 自律走行制御装置2の動作を示すタイミングチャート 従来技術との比較を示すタイミングチャート 変形例2における処理制御部202の動作を表すフローチャート 変形例3における処理制御部202の動作を表すフローチャート 変形例4における処理制御部202の動作を表すフローチャート 第2の実施の形態における自律走行制御装置2の機能構成図 内部処理管理部230の動作を示すフローチャート 外部処理管理部240の動作を示すフローチャート
―第1の実施の形態―
 以下、図1~図11を参照して、本発明にかかる電子制御装置である自律走行制御装置の第1の実施の形態を説明する。
 <システム構成>
 図1は、自律走行制御装置2を含む車載システム1のシステム構成図である。車載システム1は、車両100に搭載され、車両100の外界状況をカメラにより認識するカメラ情報取得部101と、車両100の外界状況をレーダにより認識するレーダ情報取得部102と、衛星航法システム、たとえばGPSの受信機を用いて車両100の位置を検出する自車位置情報取得部103とを備える。車載システム1はさらに、車両100の自動運転を設定するための自動運転設定部104と、OTA(Over-The-Air)により車載システム1の情報を更新するための無線通信部105を備える。
 車載システム1はさらに、自律走行制御装置2と、補助制御部106と、ブレーキ制御部107と、エンジン制御部108と、パワーステアリング制御部109とを備える。自律走行制御装置2、補助制御部106、ブレーキ制御部107、エンジン制御部108、およびパワーステアリング制御部109は、たとえばECU(Electronic Control Unit)である。
 カメラ情報取得部101、レーダ情報取得部102、自車位置情報取得部103、自動運転設定部104、無線通信部105、自律走行制御装置2、補助制御部106、ブレーキ制御部107、エンジン制御部108、およびパワーステアリング制御部109は、CAN(Controller Area Network)の車載ネットワークによって相互に通信可能に接続される。
 カメラ情報取得部101、レーダ情報取得部102、および自車位置情報取得部103は、それぞれがセンサなどから受信した情報を自律走行制御装置2に送信する。自動運転設定部104は、自動運転時の目的地、ルート、走行速度等の設定情報を自律走行制御装置2に送信する。ただし自動運転設定部104が送信する情報の一部が無線通信部105を介してサーバ装置110など外部から受信したものであってもよい。
 自律走行制御装置2は、自動運転制御のための処理を行い処理結果に基づいて制御指令を、ブレーキ制御部107、エンジン制御部108、およびパワーステアリング制御部109へ出力する。補助制御部106は、自律走行制御装置2と同様の制御を補助として行う。ブレーキ制御部107は、車両100の制動力を制御する。エンジン制御部108は、車両100の駆動力を制御する。パワーステアリング制御部109は、車両100のステアリングを制御する。
 自律走行制御装置2は、自動運転設定部104により自動運転の設定要求を受け付けると、カメラ情報取得部101、レーダ情報取得部102、自車位置情報取得部103等からの外界の情報を基に車両100が移動する軌道を算出する。そして、自律走行制御装置2は、算出した軌道に従って車両100を移動させるように、制動力、駆動力、操舵などの制御指令を、ブレーキ制御部107、エンジン制御部108、およびパワーステアリング制御部109に出力する。ブレーキ制御部107、エンジン制御部108、およびパワーステアリング制御部109は、自律走行制御装置2から制御指令を受けて、それぞれ不図示の制御対象であるアクチュエータに操作信号を出力する。
 図2は、自律走行制御装置2のハードウエア構成図である。自律走行制御装置2は、CPU251と、ROM252と、RAM253と、フラッシュメモリ254と、論理回路255と、通信インタフェース256とを備える。CPU251は、ROM252に格納されたプログラムをRAM253に展開して実行することで後述する機能を実現する。フラッシュメモリ254は不揮発性の記憶領域である。なおCPU251は、ロックステップ方式を採用した複数のコアを持つプロセッサであってもよい。
 論理回路255は、FPGA(Field Programmable Gate Array)などのPLD(Programmable Logic Device)を用いた再構成可能な論理回路である。論理回路255はその一部のみを再構成することが可能な、いわゆる部分再構成可能な論理回路である。通信インタフェース256は、CAN等の所定のプロトコルで通信するインタフェースである。自律走行制御装置2は、通信インタフェース256を介して他の装置に接続され、データを送受信する。ただし通信インタフェース256は、外部の機器と接続される2つの通信ポートを備えてもよいし、通信ポートを1つのみ備えてもよい。
 <自律走行制御装置の機能構成>
 図3は、自律走行制御装置2の機能構成図である。自律走行制御装置2は、第1通信インタフェース201A、第2通信インタフェース201B、処理制御部202、再構成回路203、再構成管理部204、データベース管理部(以下、DB管理部)205、演算部206、処理情報データベース(以下、処理情報DB)3、演算データベース(以下、演算DB)4、結果データベース(以下、試験DB)5、および回路データベース(以下、回路DB)6を有する。以下では、第1通信インタフェース201A、第2通信インタフェース201Bをまとめて、「通信インタフェース201」と呼ぶ。通信インタフェース201は、図2の通信インタフェース256により実現される。処理情報DB3および回路DB6は、フラッシュメモリ254により実現される。
 再構成回路203は、論理回路255により実現される。再構成管理部204、DB管理部205、演算部206、演算DB4、および結果DB5は、再構成回路203に構成される。本実施の形態では、再構成回路203には再構成管理部204、DB管理部205、演算DB4、および結果DB5は再構成されず、演算部206のみが再構成される。換言すると、再構成回路203は部分的に再構成が可能であり、演算DB4などの回路を維持したまま演算部206に相当する回路を再構成する。
 自律走行制御装置2は、第1通信インタフェース201Aを介して、図1のカメラ情報取得部101、レーダ情報取得部102、自車位置情報取得部103、自動運転設定部104、および無線通信部105と接続され、第2通信インタフェース201Bを介して補助制御部106、ブレーキ制御部107、エンジン制御部108、およびパワーステアリング制御部109と接続される。なお図3では、自律走行制御装置2は第1通信インタフェース201Aおよび第2通信インタフェース201Bの論理的な2つの通信インタフェースを備えるが、両者の機能を併せ持つ1つの論理的な通信インタフェースのみを備えてもよい。
 処理制御部202は、CPU251により実行されるプログラムにより実現される。処理制御部202は状態管理情報213を有し、処理制御部202は状態管理情報213を参照および編集しながら所定の処理周期Tで後述する処理を繰り返し実行する。なお状態管理情報213は、RAM253またはフラッシュメモリ254により実現される。処理制御部202は、カメラ情報取得部101、レーダ情報取得部102、および自車位置情報取得部103からのセンサ情報や、自動運転設定部104からの自動運転設定情報を周期的に収集する。処理制御部202は、処理情報DB3を参照し、収集したセンサ情報や、自動運転設定情報に対して実施する処理回数、および処理情報を判定する。処理制御部202は、状態管理情報213を記憶する。
 処理制御部202は、処理情報DB3で判定した処理回数、および処理情報に基づき、処理制御部202で実施する演算処理の有無や、演算部206で実施する演算処理の有無を判断する。処理制御部202は、演算部206に演算処理を実行させる場合は、回路データを含む再構成指示21を再構成回路203に送信し、再構成管理部204を介して演算部206の論理回路を再構成する。また処理制御部202は、演算部206で演算処理を実施させる場合は、演算データ23を再構成回路203に送信し、DB管理部205を経由して演算部206の演算処理に必要なデータを演算DB4に格納する。
 処理制御部202は、演算部206の回路領域の再構成の状態、演算DB4の書き込みや読み出しの状態、および、結果DB5の書き込みや読み出しの状態を管理し、処理制御部202で実施する演算処理や、演算部206で実施する演算処理のタイミングを調整する。処理制御部202は、処理制御部202自身で実施した演算処理の結果や、DB管理部205から取得した結果データ24を基に、制動力や駆動力などの制御指令を通信インタフェース201Bから出力する。
 再構成管理部204は、処理制御部202から処理回路データを含む再構成指示21を受信し、再構成回路203内の回路領域の演算部206の論理回路を変更する。再構成管理部204は、論理回路の変更が完了すると、再構成完了通知22を処理制御部202に通知する。
 DB管理部205は、処理制御部202および演算部206に演算DB4および結果DB5へのアクセスを提供する。たとえばDB管理部205は、処理制御部202から演算データ23を受信すると演算DB4に格納し、そのデータを演算部206に提供する。またDB管理部205は、演算部206が出力する演算結果を結果DB5に格納し、格納が開始されたことを処理制御部202に通知する。DB管理部205は結果DB管理情報212および演算DB管理情報211を有し、これらを参照および編集しながら処理を実行する。詳しくは後述する。結果DB管理情報212および演算DB管理情報211は、再構成回路203に構成される記憶領域である。
 演算DB4および試験DB5は、再構成回路203に構成される記憶領域である。演算DB4および試験DB5は演算部206と同じ再構成回路203に構成されるので、それらの間では再構成回路203の外部に存在する処理制御部202に比べて高速なデータの入出力が可能である。たとえば同一のデータを演算部206が読み込む場合に、処理制御部202から読み込むよりも演算DB4から読み込む方が演算部206の読み込みに要する時間が短い。なお演算部206が演算DB4からデータを読み込む場合には、処理制御部202から演算DB4へのデータの読み込みが別途必要となるが、後述するようにそのタイミングを工夫している。また同一のデータを演算部206が書き込む場合に、処理制御部202に書き込むよりも、結果DB5に書き込む方が、演算部206の書き込みに要する時間が短い。
 回路DB6には、複数の処理回路データが格納される。これらの処理回路データは、再構成回路203内の回路領域に書き込まれて演算部206等の論理回路を形成する。
 演算部206は、再構成管理部204により再構成され、再構成が完了すると所定の処理を実行する。演算部206が実行する所定の処理とは再構成された回路、換言すると再構成管理部204が処理制御部202から受信した処理回路データにより定まるものである。演算部206は、DB管理部205に演算DB4内に格納した演算データ23の読み出しを要求し、取得したデータを用いて所定の処理を実行する。さらに、演算部206は、所定の処理の実行結果を結果DB5内に格納するようにDB管理部205に書き込みを要求する。
 DB管理部205は、演算部206から書き込み要求を受信すると、実行結果を結果DB5に格納する。DB管理部205の結果DB管理情報212の詳細は図6を参照して後述する。処理制御部202は、結果DB5に格納された実行結果を結果データ24として取得する。
 <処理情報データベースの構成例>
 図4は、処理情報DB3の一例を示す図である。処理情報DB3は、処理制御部202によって参照され、収集したセンサ情報や、自動運転設定情報に対して実施する処理内容が格納されるデータベースである。処理情報DB3は、処理回数301、および処理情報302のフィールドを有する。処理回数301には、演算部206が演算を行う回数および処理制御部202が処理を行う回数の和が格納される。処理情報302には、複数の処理情報、たとえば処理情報1~処理情報5から構成され、処理の名称およびそれぞれの処理に対応する演算部206の回路の名称が格納される。ただし、処理が処理制御部202において実行される場合は「回路:無」が格納される。
 たとえば図4に示す例では、回数301のフィールドに「5」が格納されているので、演算部206による処理と処理制御部202における処理の回数の和が5回であることが示されている。符号302-1~符号302-5で示す処理情報1~処理情報5のフィールドに格納されている情報は以下のとおりである。符号302-1で示す処理情報1は、回路DB6内の論理回路Aに対応する処理回路データを用いて演算部206を再構成し、演算処理P1を実施することを示している。符号302-2で示す処理情報2は、処理制御部が演算処理P2を実施することを示している。符号302-3で示す処理情報3は、回路DB6内の論理回路Bに対応する処理回路データを用いて演算部206を再構成し、演算処理P3を実施することを示している。符号302-4で示す処理情報4は、処理制御部が演算処理P4を実施することを示している。符号302-5で示す処理情報5は、回路DB6内の論理回路Cに対応する処理回路データを用いて演算部206を再構成し、演算処理P5を実施することを示している。なお図4に示す処理情報DB3は一例であり、処理情報302を構成する処理情報の数は3以外でもよい。すなわち処理情報302が2つの処理情報から構成されてもよいし、4以上の処理情報から構成されてもよい。
 本実施の形態では、それぞれの演算処理は直前の演算処理の実行結果を元に所定の処理の実行結果を取得することとする。たとえば演算処理P1では、収集したセンサ情報や、自動運転設定情報に基づき演算を行い実行結果を取得し、演算処理P2は、演算処理P1の実行結果に基づき所定の処理を実行する。演算処理P3~P5のそれぞれは、演算処理P2~P4のそれぞれの実行結果に基づき所定の処理を実行する。ただし演算処理P2~P4のそれぞれは、直前の演算処理の実行結果以外の情報も用いて演算を行ってもよい。
 <演算データベース管理情報>
 図5は、演算DB管理情報211の一例を示す図である。演算DB管理情報211は、回路種別401、総演算データ数402、1演算データサイズ403、書込データ数404、および読出データ数405のフィールドを有する。回路種別401のフィールドには、演算部206に処理を実施させる論理回路の種別情報が格納される。総演算データ数402のフィールドには、演算部206に実施させる所定の処理に必要な演算データの総数が格納される。1演算データサイズ403のフィールドには、演算部206に複数の演算を実施させる場合において、1つの演算に使用するデータサイズが格納される。書込データ数404のフィールドには、演算DB4に書き込まれたデータ数が格納される。読出データ数405のフィールドには、演算DB4から読み出されたデータ数が格納される。
 総演算データ数402のフィールドに格納される演算データの総数の情報は、処理制御部202が演算データ23とともに送信されてもよいし、処理制御部202から演算データ23の送信が完了した際の書込データ数404のフィールドの値を用いてもよい。DB管理部205は、処理制御部202から演算データ23を受信すると演算DB4に格納するとともに、書込データ数404のフィールドに受信した演算データ23の数を書き込む。DB管理部205は、演算DB4から演算部206に演算データ23を送信すると、読出データ数405のフィールドに送信した演算データ23の数を書き込む。
 書込データ数404のフィールドに格納される値と、総演算データ数402のフィールドに格納される値との一致は、演算部206の処理に必要な演算データが全て格納されたことを示す。これと同様に、読込データ数405のフィールドに格納される値と、総演算データ数402のフィールドに格納される値との一致は、演算データが全て読み出されたことを示す。詳細な説明は省略するが、書込データ数404および読出データ数405は、演算DB4のアドレスの管理ポインタである。
 たとえば、処理制御部202が図4に符号302-1で示す処理情報1を実行する場合は、演算部206が論理回路Aに構成されるので回路種別401のフィールドには「A」が格納される。総演算データ数402のフィールドには、演算処理P1に必要な演算データの総数、たとえば「1024」が格納される。1演算データサイズ403のフィールドには、演算処理P1の1つの演算データのサイズ、たとえば「8Byte」が格納される。また図5に示す例では、書込データ数404のフィールドの値が「512」なので、総演算データ数402の1024のうち512が書き込まれていることが示されている。さらに、読出データ数405のフィールドの値が「0」なので、演算データが演算部206に1つも読み出されていないことが示されている。
 <結果データベース管理情報>
 図6は、結果DB管理情報212の一例を示す図である。結果DB管理情報212は、回路種別501、総結果データ数502、1結果データサイズ503、書込データ数504、および読出データ数505のフィールドを備える。回路種別501のフィールドには、実行結果を取得した演算部206の論理回路の種別情報が格納される。総結果データ数502のフィールドには、所定の処理を実行した演算部206の結果データの総数が格納される。1結果データサイズ503のフィールドには、演算部206から複数の演算結果を取得する場合において、1つの演算結果を格納するために必要な記憶領域のサイズが格納される。書込データ数504のフィールドには、結果DB5に書き込まれたデータ数が格納される。読出データ数505のフィールドには、結果DB5から読み出されたデータ数が格納される。
 総結果データ数502のフィールドの値は、演算DB管理情報211の総演算データ数402のフィールドから転記してもよいし、処理制御部202から別途伝達されてもよい。DB管理部205は、演算部206から結果データ24を受信すると結果DB5に格納するとともに書込データ数504のフィールドに受信した結果データ24の数を書き込む。DB管理部205は、処理制御部202に結果データ24を送信すると、読出データ数505のフィールドに送信した結果データ24の数を書き込む。
 書込データ数504のフィールドに格納される値と、総演算データ数502のフィールドに格納される値との一致は、演算部206の処理が完了し演算結果が全て格納されたことを示す。これと同様に、読込データ数505のフィールドに格納される値と、総演算データ数502のフィールドに格納される値との一致は、演算データが全て読み出されたことを示す。詳細な説明は省略するが、書込データ数504および読出データ数505は、結果DB5のアドレスの管理ポインタである。
 たとえば、処理制御部202が図4に符号302-3で示す処理情報3を実行する場合は、演算部206が論理回路Bに構成されるので回路種別501のフィールドには「B」が格納される。総演算データ数502のフィールドには、演算処理P3に必要な演算データの総数、たとえば「1024」が格納される。1演算データサイズ503のフィールドには、演算処理P3の1つの演算結果のサイズ、たとえば「4Byte」が格納される。また図6に示す例では、書込データ数404のフィールドの値が「1024」なので、全ての結果データが書き込まれていることが示されている。さらに、読出データ数505のフィールドの値が「128」なので、結果データの一部が読み出されていることが示されている。
 <状態管理情報>
 図7は、状態管理情報213の一例を示す図である。状態管理情報213は、演算部206、演算DB4、および結果DB5の状態を示す。状態管理情報213は、演算部206の状態を示す回路種別601と再構成状態602のフィールド、演算DB4の状態を示す演算種別603と演算DB状態604のフィールド、結果DB5の状態を示す結果種別605と結果DB状態606のフィールドを備える。回路種別601のフィールドには、演算部206の論理回路の種別情報が格納される。再構成状態602のフィールドには、演算部206の再構成の状態、すなわち再構成の完了を示す「完了」または再構成中であることを示す「再構成中」が格納される。
 演算種別603のフィールドには、演算DB4に格納される演算データ23を処理する論理回路の種別情報が格納される。演算DB状態604のフィールドには、演算種別603のフィールドの値で特定される論理回路が処理する演算データ23の演算DB4への格納状況を示す値が格納される。その値は、格納が完了していることを示す「格納済み」、または格納中または格納を開始していないことを示す「格納中」である。結果種別605のフィールドには、結果DB5に格納された実行結果を出力した論理回路の種別情報が格納される。結果DB状態606のフィールドには、結果種別605のフィールドの値で特定される論理回路で処理された実行結果の結果DB5からの取得状況を示す値が格納される。その値は、処理制御部202が結果DB5から全ての結果データ24を取得したことを示す「取得済」、または取得していない結果データ24が存在することを示す「格納有」である。
 たとえば、図7に示す例では演算部206が論理回路Cに再構成されていることを、回路種別601のフィールドの値「C」、および再構成状態602のフィールドの値「完了」により表している。また演算種別603および演算DB状態604のフィールドの値は、回路種別「C」の演算データが演算DB4に「格納中」であることを示している。さらに結果種別605および結果DB状態606のフィールドの値は、回路種別「B」の演算結果を処理制御部202がすべて「取得済」であることを示している。
<処理制御部のフローチャート>
 図8は、処理制御部202の動作を示すフローチャートである。以下に説明する各ステップの実行主体は、自律走行制御装置2のCPU251である。処理制御部202は、所定の処理周期Tごとに以下のフローチャートで示される動作を実行する。
 ステップS601では、処理制御部202はループカウンタである処理IDに「1」を代入する。続くステップS602では、処理制御部202は、処理情報DB3を参照し、処理IDで示される処理情報の処理は、論理回路を使用するか否かを判断する。論理回路を使用すると判断する場合はステップS603に進み、論理回路を使用しないと判断する場合はステップS621に進む。たとえば処理情報DB3が図4に示すものであり処理IDが「1」の場合は、処理制御部202は符号302-1で示される処理情報1を参照する。そして処理制御部202は、「回路:A」と記載されているので論理回路を使用すると判断する。
 ステップS603では、処理情報DB3の記載に基づき再構成管理部204に回路データの転送を開始する。本ステップでは回路データの転送の開始のみを規定しており、転送の終了を確認することなく、換言すると回路データの転送を開始するとすぐに次のステップS604に進む。なお本フローチャートには記載していないが、再構成管理部204は回路データを受信すると演算部206の再構成を直ちに開始する。そして再構成が完了すると、演算部206は演算DB4から演算データを取得して演算を実行し、結果DB5に結果データ24を書き込む。
 続くステップS604では演算データが入手可能であるか否か、換言すると直前の処理が完了しているか否かを判断する。入手可能であると判断するとステップS605に進み、まだ入手できないと判断するとステップS631で一定時間待機した後に再度ステップS604を実行する。続くステップS605では演算データをDB管理部205に転送する。
 続くステップS606では、結果DB5に書き込みがあるか否か、換言すると演算部206から結果データ24の出力が開始されたか否かを判断する。書き込みがあると判断する場合はステップS607に進み、まだ書き込みがないと判断する場合はステップS632で一定時間待機した後に再度ステップS606を実行する。ステップS607では、DB管理部205を介して結果DB5から結果データ24の読み出しを開始する。続くステップS608では、全ての結果データが結果DB5に格納されたか否かを判断する。前述のとおりこの判断は、結果DB管理情報212の総結果データ数502のフィールドの値と読出データ数505のフィールドの値が一致するか否かにより判断できる。全ての結果データ24が結果DB5に格納されたかと判断する場合はステップS609に進み、格納されていない結果データ24が存在すると判断する場合はステップS633で一定時間待機した後に再度ステップS608を実行する。
 ステップS609では、処理IDが規定値、すなわち処理情報DB3の処理回数のフィールドの値以上であるか否かを判断する。処理IDがその値以上であると判断する場合は、処理情報DB3に示す全ての処理が完了しているので図8に示す動作を終了する。処理IDがその値未満であると判断する場合は、ステップS634に進んで処理IDをインクリメントし、ステップS602に戻る。
 ステップS602において否定判断されると実行されるステップS621では、処理情報DB3を参照して、処理IDで示される処理の実行のために、結果DB5からの結果データ24の読み出しが不要であるか否かを判断する。たとえば、処理制御部202における処理が連続している場合や、処理IDが「1」の場合は本ステップが肯定判断される。肯定判断する場合はステップS624に進み、否定判断する場合はステップS622に進む。ステップS622では、結果DB5からの結果データ24の読み出しが完了したか否かを判断する。読み出しが完了したと判断する場合はステップS624に進み、読み出しが完了していないと判断する場合はステップS623で一定時間待機した後に再度ステップS622を実行する。なお本ステップにおいて完了を待っている読み出し処理は、ステップS607において開始されたものである。
 ステップS624では、処理制御部202は処理IDで示された処理を実行してステップS609に進む。
<再構成管理部のフローチャート>
 図9は、再構成回路203の動作を示すフローチャートである。以下に説明するように再構成回路203は、再構成管理部204、DB管理部205、および演算部206の協調動作により動作する。再構成回路203は、処理制御部202から回路データを受信するたびに以下のフローチャートで示される動作を実行する。
 ステップS800では、再構成管理部204は、再構成回路203への受信した回路データの書き込み、すなわち演算部206の再構成を開始する。続くステップS801では、再構成管理部204は再構成回路203への演算部206の再構成が完了したか否かを判断する。完了したと判断する場合はステップS802に進み、完了していないと判断する場合はステップS801に戻る。ステップS802では、再構成管理部204は再構成が完了した旨を処理制御部202に通知する。続くステップS803では、DB管理部205が演算DB4に演算データが格納されているか否かを判断する。演算データが格納されていると判断する場合はステップS804に進み、演算データが格納されていないと判断する場合はステップS803を再度実行する。ステップS804では、演算部206は演算DB4から演算データを取得して処理を実行し、処理結果を結果DB5に格納する。以上で処理を終了する。
<タイミングチャート>
 図10は、自律走行制御装置2のある処理周期Tにおける動作を示すタイミングチャートである。図10に示す例では、処理制御部202は図4に記載した処理情報DB3を参照して動作する。図10は図示左から右に向かって時間が経過している。図10の左端に示すように、図10には上から処理制御部202の動作状態、状態管理情報213の符号601~606の各フィールドの値、再構成指示21の送信状態、再構成完了通知22の送信状態、演算データ23の送信状態、演算DB4の入出力、演算部206の動作、結果DB5の入出力、および結果データ24の送信状態を示している。
 処理制御部202は、時刻t0で周期処理を開始し、処理情報DB3を参照して処理回数301および処理情報302を解釈する。図10では時間Tの1周期分のみを示しているが、これらの処理は繰り返し実行される。
 解釈が完了した時刻t1において、処理制御部202は、図4で符号302-1で示す処理情報1の処理回路データ、すなわち論理回路A、および演算部206への再構成指示21を再構成管理部204に送信する。これにより演算部206は再構成中となる。また処理制御部202は、演算処理P1に必要な演算データ23を演算DB4に書き込む。再構成中に演算データ23を演算DB4に書き込むことで、再構成完了後の演算処理P1の実行開始に備える。このとき処理制御部202は、図7に記載した状態管理情報213の回路種別601に「A」、再構成状態602に「再構成中」、演算種別603に「A」、演算DB状態604に「格納中」をそれぞれ格納する。
 時刻t2において演算データ23の演算DB4への書き込みが完了すると、処理制御部202は、演算DB状態604を「設定済」に変更する。
 時刻t3で論理回路Aの回路データの送信が終了し演算部206の再構成が完了すると、再構成管理部204は再構成完了通知22を処理制御部202に送信する。また処理制御部202は、再構成状態602を「完了」に変更する。また、再構成が完了した演算部206は、演算DB4に演算処理P1に必要なデータが格納されていることを確認し、DB管理部205経由で演算DB4からデータの読み出しつつ、演算処理P1を実行開始する。演算DB4から演算部206へのデータの読み出しは、同じ再構成回路203上に構成されているため、短時間で実施することができる。
 時刻t4において、演算処理P1を実行している演算部206は、DB管理部205経由で結果DB5への実行結果の格納を開始する。処理制御部202は、結果種別605を「A」、結果DB状態606を「格納有」に変更する。処理制御部202は、DB管理部205経由で結果DB5の読み出しを開始し、演算処理P1の結果データ24を取得する。演算部206から結果DB5へのデータの書き込みは、同じ再構成回路203上に構成されているため、短時間で完了する。
 時刻t5において演算部206の結果DB5への結果データの書き込みが完了する。すなわち演算部206の処理が完了しているため、処理制御部202は、次の回路データ、すなわち図3において符号302-3で示される処理情報3の処理回路データ、すなわち論理回路Bの回路データの送信を開始する。処理制御部202はさらに、演算部206への再構成指示21を再構成管理部204に送信する。これにより、演算部206は再び再構成中となる。またこのとき処理制御部202は、回路種別601を「B」、再構成状態602を「再構成中」に変更する。
 時刻t6において、処理制御部202は、結果DB5から演算処理P1の結果データ24の読み出しが完了し、結果DB状態606が「取得済」に変更される。そして、処理制御部202は、演算処理P2の実行を開始する。
 時刻t7において、論理回路Bの回路データの送信が終わり、演算部206の再構成が完了すると、再構成管理部204は、再構成完了通知22を処理制御部202に送信する。そして再構成状態602が「完了」に変更される。ただし論理回路Bが処理対象とする演算データは、処理情報2がまだ実行中で得られないため演算部206における演算はまだ開始されない。
 時刻t8において処理制御部202が演算処理P2の実行を完了すると、処理制御部202は演算処理P3に必要な演算データ23を演算DB4に書き込む。このとき処理制御部202は、演算種別603を「B」、演算DB状態604を「格納中」に変更する。また時刻t7で演算部206の論理回路Bへの再構成が完了しているため、演算部206は、演算DB4に演算処理P3に必要なデータが格納されていることを確認し、DB管理部205経由で演算DB4からデータの読み出しつつ、演算処理P3の実行を開始する。
 時刻t9において演算データ23の演算DB4への書き込みが完了すると、処理制御部202は演算DB状態604を「設定済」に変更する。なお、演算DB4から演算部206へのデータの読み出しは短時間で実施することができるため、同じ時刻t9で読み出しを完了としている。
 時刻t10において、演算処理P3を実行している演算部206は、DB管理部205経由で結果DB5への実行結果の格納を開始する。このとき処理制御部202による結果DB5からの結果データ24の読み出しも開始される。処理制御部202は、結果種別605を「B」、結果DB状態606を「格納有」に変更する。
 時刻t11において実行結果の結果DB5への書き込みが完了すると、処理制御部202は、次の演算部206を構成するために論理回路Cの回路データ、および再構成指示21を再構成管理部204に送信する。なお時刻t10~時刻t11の期間で結果DB5への書き込みは完了するが、処理制御部202は再構成回路203の外部に存在するため結果DB5からの読み出しは時刻t11では完了せず継続している。処理制御部202は、回路種別601を「C」、再構成状態602を「再構成中」に変更する。
 時刻t12において、処理制御部202は結果DB5から演算処理P3の結果データ24の読み出しを完了し、結果DB状態606を「取得済」に変更する。そして処理制御部202は、演算処理P4の実行を開始する。
 時刻t13において、処理制御部202は演算処理P4の実行を完了すると、次の演算処理P5に必要な演算データ23を演算DB4に書き込む。このとき演算部206は再構成を継続しており、この再構成に並行して演算データ23を演算DB4に書き込むことで、再構成完了後の演算処理P5の実行開始に備える。またこのとき処理制御部202は、演算種別603を「C」、演算DB状態604を「格納中」に変更する。
 時刻t14において論理回路Cの回路データの送信、および演算部206の再構成が完了すると、再構成管理部204は、再構成完了通知22を処理制御部202に送信する。処理制御部202は、再構成状態602を完了に変更する。再構成が完了した演算部206は、演算DB4に演算処理P5に必要なデータが格納されていることを確認し、DB管理部205経由で演算DB4からデータの読み出しつつ、演算処理P5を実行開始する。
 時刻t15において演算データ23の演算DB4への書き込みが完了すると、処理制御部202は、演算DB状態604を「設定済」に変更する。なお、演算DB4から演算部206へのデータの読み出しは短時間で実施することができるため、同じ時刻t15で読み出しが完了する。
 時刻t16において、演算処理P5を実行している演算部206は、DB管理部205経由で結果DB5への実行結果の格納を開始する。このとき処理制御部202による結果DB5からの結果データ24の読み出しも開始される。処理制御部202は、結果種別605を「C」、結果DB状態606を「格納有」に変更する。
 時刻t17において、実行結果の結果DB5への書き込みが完了する。なお結果DB5からの読み出しは時刻t17では完了せず継続している。
 時刻t18において、処理制御部202は結果DB5から演算処理P5の結果データ24の読み出しを完了し、結果DB状態606を「取得済」に変更する。また処理制御部202は、演算処理P5の結果データ24に基づき制御指令を出力する。時刻t19において制御指令の出力を完了し、処理制御部202は、時間Tの1周期分の処理を終了する。
<従来技術との比較>
 図11は、第1の実施の形態における自律走行制御装置2と、従来の自律走行制御装置(以下、従来自律走行制御装置)の比較を示すタイミングチャートである。従来自律走行制御装置は、演算DB4および結果DB5を備えず、従来演算部は従来処理制御部から演算データを直接受信し、結果データを直接出力する。図11は図示中ほどよりも少し下の記載した時刻情報により上半分と下半分に分断される。図11の上半分には、図10に示すいくつかの要素をそのまま示している。図11の下半分には、従来自律走行制御装置における従来の処理制御部(以下、従来処理制御部)および従来の演算部(従来演算部)の動作タイミングを示す。ただしここでは、従来自律走行制御装置も図4に示した処理情報DB3の記述に従って動作することとする。
 従来演算部は、時刻t0から時刻t1において処理制御部202と同様に処理情報DB3を参照して処理回数301および処理情報302を解釈する。従来演算部は、時刻t1から時刻t3において再構成を行う。そして従来演算部は、再構成が完了した時刻t3にP1の演算を開始する。時刻t3以降、従来演算部は従来処理制御部から演算データを受信して演算を行う。そして従来演算部は、演算により得られた結果データを従来処理制御部に出力する。
 従来演算部は、再構成回路203の外部にある処理制御部から演算データを受信するので、演算部206が演算DB4から演算データを読み込む時間よりも長い時間をその読み込みに要する。従来演算部の結果データの出力についても同様である。そのため演算部206と従来演算部は同じ処理を行っているが、入出力に要する時間が異なるので所要時間が異なる。具体的には従来演算部が演算処理P1の演算データの出力を終了する時刻t6Aは、処理制御部202が結果DB5から全てのデータを読み出し終える時刻t6よりも遅い。
 従来処理制御部は、時刻t6Aから演算処理P2を開始する。この処理に要する時間は、処理制御部202が演算処理P2に要する時間と同一である。時刻t8Aにおいて、従来処理制御部が演算処理P2を完了したので、従来演算部は次の演算処理P3のために再構成を開始する。なおこの時刻t8Aは、演算部206が演算処理P3を開始する時刻t8よりも遅い。時刻t10Aにおいて、従来演算部の再構成が完了し、従来演算部は演算処理P3を開始する。従来演算部は、演算処理P1と同様に演算データを従来処理制御部から取得しつつ演算を行い、その結果データを従来処理制御部に出力する。そのため従来演算部が演算処理P3に要する時間は、演算部206が演算処理P3に要する時間よりも長い。
 このように演算部206は、従来演算部に比していわば入出力に使用できる帯域が広い状態と等価なので、同一の処理を行う場合でも短時間で完了する。また演算部206は直前の演算部206の処理が完了するとすぐに次の処理のために再構成を開始するので、直前の演算が完了してから演算部206が動作を開始するまでに時間が短い。
 上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)自律走行制御装置2は、再構成されて演算を実行する演算部206、および演算部206が演算対象とする演算データを格納する演算DB4が構成される部分再構成可能な再構成回路203と、演算部206を再構成させるための回路データ、および演算データを再構成回路203の演算DB4に送信する処理制御部202とを備える。処理制御部202は、たとえば演算処理P1にかかる演算データが得られると、演算部206の再構成が完了しているか否かにかかわらず、演算DB4への演算データの送信を開始する。演算部206は、演算DB4に格納される演算データを用いて演算を行う。
 演算DB4は演算部206と同一の再構成回路203に構成されているので、演算DB4から演算部206への演算データの転送は、処理制御部202から演算部206への直接のデータ転送よりも短時間で完了する。処理制御部202は演算部206の再構成の完了に先駆けて演算DB4への演算データの送信を開始するので、演算部206は演算DB4から演算データを読み込むことにより演算データの読み込みに要する時間を短縮できる。すなわち、自律走行制御装置2は上記構成を有するので処理制御部202と演算部206が交互に処理を行うような非連続にデータを処理する場合に処理時間を短縮することができる。また図11に示す従来例との比較からわかるように、自律走行制御装置2は再構成回路203の利用効率を向上させている。
(2)演算部206が次に演算対象とするデータが処理制御部202のたとえば演算処理P2により生成される場合は、処理制御部202は処理制御部202における演算処理P2が完了すると、演算部206が次に演算対象とするデータが得られると判断する。
(3)処理制御部202は、回路データおよび演算データの両方を再構成回路203に送信可能な場合は、図8においてS605よりもS603が先に実行されるので、回路データを優先して再構成回路203に送信する。図10のt8に示すように演算データの全てを演算DB4に格納しなくても演算部206の演算を開始できる。しかし回路データの全てを再構成回路203に送信完了した後でなければ、演算部206の演算を開始できない。そのため演算データよりも回路データを優先して再構成回路203に送信し、演算部206の演算を早期に開始させることができる。
(4)回路データを再構成回路203に送信可能な場合とは、演算部206における演算が完了している場合である。演算対象データを再構成回路203に送信可能な場合とは、演算DB4から演算データがすべて読みだされ、かつ次回演算対象データが得られる場合である。
(5)再構成回路203には、演算部206の演算結果を格納する結果DB5が構成される。処理制御部202は、結果DB5に演算部206の演算結果が格納されると、演算部206の再構成のための回路データを送信する。結果DB5は演算部206と同一の再構成回路203に構成されているので、演算部206から結果DB5へのデータ転送は、結果DB5から処理制御部202へのデータ転送よりも短時間で完了する。そのため、演算部206から処理制御部202へ結果データを転送する場合に比べて、早期に演算部206の再構成を開始することができる。
(変形例1)
 処理制御部202は、図8のステップS803において回路データの転送を開始すると演算データの入手可能性を判断し、入手できる場合はすぐに演算データの転送を開始した。すなわち上述した実施の形態では、回路データの転送を開始した直後に演算データの転送が開始される場合があった。しかし、演算データの転送は回路データの転送開始からあらかじめ定めた時間が経過したことを条件として演算データの転送を開始してもよい。
(変形例2)
 処理制御部202は、回路データの送信と演算データの送信とを略同時に開始してもよい。
 図12は、上述した実施の形態における図8に代わって本変形例における処理制御部202の動作を表すフローチャートである。ただし図12では主に図8との相違点を記載しており、省略している部分は図8の動作と同様である。また図8と同一の処理を行うステップには、同一のステップ番号を付している。
 ステップS602において肯定判断をすると、処理制御部202はステップS603AとステップS604Aの処理を並列して開始する。ステップS603Aにおいて、処理制御部202は回路データの転送を開始する。ステップS604Aにおいて、処理制御部202は肯定判定をするとステップS605Aの処理を行う。処理制御部202は、ステップS603AおよびステップS605Aの両方の処理が完了すると、ステップS606の処理を開始する。
 この変形例2によれば、回路データの送信と演算データの送信とを略同時に開始し、演算データの演算DB4への転送を少しでも早く完了させることができる。
(変形例3)
 処理制御部202は、回路データと演算データの両方を送信可能な場合に、後続する処理に要する時間に基づき回路データおよび演算対象データのどちらの送信を優先するかを決定してもよい。
 図13は、上述した実施の形態における図8に代わって本変形例における処理制御部202の動作を表すフローチャートである。ただし図13では主に図8との相違点を記載しており、省略している部分は図8の動作と同様である。また図8と同一の処理を行うステップには、同一のステップ番号を付している。
 ステップS602において肯定判断をすると、処理制御部202はステップS604Bに進む。ステップS604Bにおいて、処理制御部202は、演算データが入手可能であるか否かを判断し、肯定判断する場合はステップS641に進み、否定判断する場合はステップS603Cに進む。ステップS641において、処理制御部202は、回路データの再構成管理部204への転送開始から演算部206の再構成完了までの時間が、演算データの演算DB4への転送に要する時間よりも短いか否かを判断する。前者の時間が後者の時間よりも短いと判断する場合はステップS605Bに進み、逆の判断をする場合はステップS603Dに進む。ステップS605Bでは演算データの転送を開始し、続くステップS643では所定の時間待機する。ステップS643における待機時間はたとえば、回路データの再構成管理部204への転送開始から演算部206の再構成完了までの時間と、演算データの演算DB4への転送に要する時間との差である。続くステップS603Bでは回路データの転送を開始し、ステップS606に進む。
 ステップS604Bにおいて否定判断されると実行されるステップS603Cでは、処理制御部202は回路データの転送を開始してステップS604Aに進む。ステップS641において否定判断されると実行されるステップS603Dでは、回路データの転送を開始してステップS642に進む。ステップS642では、所定の時間待機してステップS604Aに進む。ステップS643における待機時間はたとえば、回路データの再構成管理部204への転送開始から演算部206の再構成完了までの時間と、演算データの演算DB4への転送に要する時間との差である。すなわちこの場合は、演算部206の再構成完了と演算データの転送の完了が略同時となる。
 ステップS604Aでは、処理制御部202は演算データが入手可能であるか否かを改めて判断し、否定判断する場合はステップS631Aにおいて待機したのちに再度ステップS604Aを実行する。ステップS604Aにおいて肯定判断する場合はステップS605Cに進む。ステップS605Cでは演算データの転送を開始し、ステップS606に進む。ステップS606以降の処理は第1の実施の形態と同様なので説明を省略する。
 なお演算部206の再構成が回路データ等の転送に比して短時間で完了する場合や、図10のタイミングチャートに示したように回路データの転送と演算部206の再構成を同時に実行できる場合は、上述したフローチャートを以下のように変形してもよい。すなわち、ステップS641およびステップS642において、回路データの再構成管理部204への転送開始から演算部206の再構成完了までの時間の代わりに、回路データの再構成管理部204への転送に要する時間を評価してもよい。またステップS643において、演算データの転送の完了が演算部206の再構成完了よりも早く完了するように待機時間を決定してもよい。またステップS643において、先に送信を開始したデータの転送が完了するタイミングで後のデータの送信が開始されるように待機時間を決定してもよい。
 この変形例3によれば、第1の実施の形態における作用効果に加えて次の作用効果が得られる。
(1)処理制御部202は、回路データおよび演算対象データの両方を再構成回路203に送信可能な場合は、回路データの送信に要する時間、および演算対象データの送信に要する時間に基づき、回路データおよび演算対象データのどちらの送信を優先するかを決定する。そのため長い転送時間を要するデータを先に送信し、演算部206の再構成完了後の演算開始までの時間を短縮することができる。
(2)処理制御部202は、回路データの送信に要する時間と演算対象データの送信に要する時間とに基づき、回路データおよび演算対象データのいずれを先に送信する先送信データとし、他方を後送信データとするかを決定し、回路データの送信に要する時間と演算対象データの送信に要する時間との差に基づき後送信待機時間を決定し、先送信データを送信した後に、後送信待機時間だけ待機した後に後送信データを送信する。そのため回路データおよび演算データを効率よく送信することができる。
(3)処理制御部202は、演算部206の再構成の完了と、演算データの演算DB4への転送の完了が同時になるように後送信待機時間を決定する。そのため演算部206の再構成完了後の演算開始までの時間を短くすることができる。
(変形例4)
 処理制御部202は、回路データと演算データの両方を送信可能な場合に、後続する処理に要する時間に基づき演算データを優先して送信してもよい。
 図14は、上述した実施の形態における図8に代わって本変形例における処理制御部202の動作を表すフローチャートである。また図8と同一の処理を行うステップには、同一のステップ番号を付している。
 ステップS601およびステップS602の処理は図8と同様なので説明を省略する。ステップS602において肯定判断すると、処理制御部202はステップS608AおよびステップS651を並行して実行する。なおステップS602において否定判断された場合の処理は第1の実施の形態と同様なので説明を省略する。
 ステップS608Aでは、処理制御部202は結果DB5に全ての結果データが格納されたか否か、すなわち演算部206の演算が完了したか否かを判断する。演算部206の演算が完了したと判断する場合はステップS603Eに進み、演算部206の演算が完了していないと判断する場合はステップS608Aを再度実行する。ただしステップS608Aを実行する前に所定の時間待機してもよい。なお処理IDが「1」の場合はステップS608Aでは肯定判断がされる。ステップS603Eでは、処理制御部202は回路データの転送を開始する。
 ステップS651では、処理制御部202は演算DB4からの演算データの読み出しが完了したか否かを判断する。演算データの読み出しが完了したか否かの判断は、演算DB管理情報211における総演算データ数402のフィールドの値と読出データ数405のフィールドの値が一致するか否かにより可能である。ステップS651において肯定判断する場合はステップS604Bに進み、ステップS651において否定判断する場合はステップS651を再度実行する。ただしステップS651を実行する前に所定の時間待機してもよい。処理IDが「1」の場合はステップS651では肯定判断がされる。ステップS604Bでは、処理IDが示す演算処理が使用する演算データが入手可能であるか否かを判断する。入手可能と判断する場合はステップS605Eに進んで演算データの転送を開始し、演算データがまだ入手できないと判断する場合はステップS604Bを再度実行する。
 ステップS603EおよびステップS605Eの両方が実行されると、処理制御部202はステップS606を実行する。処理制御部202は、ステップS606およびステップS607を実行するとステップS609を実行する。ステップS609の処理および、ステップS609において否定判断された場合に実行されるステップS634の処理は第1の実施の形態と同様なので説明を省略する。
(変形例5)
 演算部206において連続して処理が行われる場合は、結果DB5に格納された結果データを処理制御部202に転送することなく、次に構成された演算部206への入力としてもよい。その場合は、演算DB4と結果DB5とが一時的に役割を入れ替えることで対応が可能である。たとえば演算処理Q1と演算処理Q2を演算部206において続けて処理する場合を例に説明する。演算部206は、演算処理Q1の演算結果を結果DB5に格納する。演算処理Q1について全ての演算結果を結果DB5に格納すると、演算部206は演算処理Q2を実行するために再構成を開始する。この再構成が完了すると、演算部206は結果DB5から演算処理Q1の結果データ、すなわち演算処理Q2の演算データを読み取り処理を開始する。そして演算部206は、演算処理Q2の演算結果を演算DB4に出力する。本変形例によれば、演算部206において連続して処理が行われる場合に再構成回路203においてデータをキャッシュするので処理制御部202による読み書きを一部省略し、処理を高速化できる。
-第2の実施の形態-
 図15~図17を参照して、本発明にかかる電子制御装置である自律走行制御装置の第2の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、処理制御部が、処理制御部202における演算処理を管理する内部処理管理部と、再構成回路における演算処理を管理する外部処理管理部とを備える点で、第1の実施の形態と異なる。
 <自律走行制御装置の機能構成>
 図15は、第2の実施の形態における自律走行制御装置2の機能構成図である。第1の実施の形態との違いは、処理制御部202が内部処理管理部230と外部処理管理部240とをさらに備える点である。内部処理管理部230および外部処理管理部240は、CPU251がROM252に格納されたプログラムを実行することにより実現される。内部処理管理部230および外部処理管理部240は、処理IDの情報を共有しており、いずれか一方が処理IDの値を変更すると他方でも処理IDの値が変更される。
<内部処理管理部のフローチャート>
 図16は、内部処理管理部230の動作を示すフローチャートである。内部処理管理部230は、所定の処理周期Tごとに以下のフローチャートで示される動作を実行する。また図8と同一の処理を行うステップには、同一のステップ番号を付す。以下では主に図8と異なる点を説明する。以下に説明するフローチャートの書くステップの実施主体はCPU251である。図16に示すフローチャートを開始する直前に、処理制御部202により処理IDには「1」が代入されている。
 ステップS702では、内部処理管理部230は処理情報DB3を参照し、処理IDが示す処理情報における処理は、処理制御部202において実行されるか否かを判断する。この判断は、処理IDが示す処理情報において、回路が「無」に設定されていれば肯定判断され、それ以外に設定されていれば否定判断される。内部処理管理部230は、肯定判断する場合はステップS621に進み、否定判断する場合はステップS702を再度実行する。なおステップS702において否定判断された場合は、外部処理管理部240により処理IDが更新されることを待つこととなる。
 ステップS621以下の処理は第1の実施の形態と同様である。ステップS609において処理IDが規定値、すなわち処理情報DB3の処理回数のフィールドの値以上であると判断すると図16に示す動作を終了する。
<外部処理管理部のフローチャート>
 図17は、外部処理管理部240の動作を示すフローチャートである。外部処理管理部240は、所定の処理周期Tごとに以下のフローチャートで示される動作を実行する。また図8と同一の処理を行うステップには、同一のステップ番号を付す。以下では主に図8と異なる点を説明する。以下に説明するフローチャートの書くステップの実施主体はCPU251である。図17に示すフローチャートを開始する直前に、処理制御部202により処理IDには「1」が代入されている。
 ステップS752では、外部処理管理部240は処理情報DB3を参照し、処理IDの値以降の処理で最初に演算部206で実行する演算を特定する。たとえば処理IDが「2」であり処理情報DB3が図4に示す例の場合は、「P3」が特定される。処理情報2は「回路:無」と記録されているので演算P2は演算部206では実行されず、その次の処理情報3の演算P3は「回路:B」と記録されており演算部206で実行されるからである。ステップS752の処理が完了すると、外部処理管理部240はステップS603Fの処理とステップS604Fの処理を並列に実行する。
 ステップS603Fでは、外部処理管理部240はステップS752において特定した演算に対応する回路データの転送を開始する。ステップS604Fでは、外部処理管理部240はステップS752において特定した演算において使用される演算データが入手可能であるか否かを判断する。入手可能であると判断する場合はステップS605Fに進み、まだ入手できないと判断する場合は再度ステップS604Fを実行する。なおステップS604Fにおいて否定判断された場合は、内部処理管理部230の演算が完了することを待つこととなる。ステップS605Fでは、外部処理管理部240はステップS752において特定した演算において使用される演算データの演算DB4への転送を開始する。
 外部処理管理部240は、ステップS603FおよびステップS605Fの両方の実行が完了すると、ステップS606を実行する。ステップS606からステップS609までの処理は第1の実施の形態と同様なので説明を省略する。ステップS609において否定判断されると、処理IDをインクリメント、すなわち「1」増加させてステップS752に戻る。
 上述した第2の実施の形態によれば、次の作用効果が得られる。
(1)処理制御部202は、内部処理管理部230と外部処理管理部240とを備える。内部処理管理部230および外部処理管理部240は並列に処理を実行する。外部処理管理部240は現在の処理ID以降で最初に演算部206で実行される演算を特定する。そして外部処理管理部240は、回路データの転送を開始するとともに、演算部206において次に演算対象とする演算データが入手可能であるかを判断して入手可能な場合には演算データの転送を開始する。
 そのため演算部206における処理の後に、処理制御部202における処理が2回以上している場合であっても、演算部206における処理が完了すると演算部206の再構成のための回路データの送信を開始することができる。
 自律走行制御装置2が実行するプログラムはROM252に格納されるとしたが、プログラムはフラッシュメモリ254に格納されていてもよい。また、自律走行制御装置2が不図示の入出力インタフェースを備え、必要なときに入出力インタフェースとECU1が利用可能な媒体を介して、他の装置からプログラムが読み込まれてもよい。ここで媒体とは、たとえば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。
 上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
 次の優先権基礎出願の開示内容は引用文としてここに組み込まれる。
 日本国特許出願2017年第085365号(2017年4月24日出願)
1…車載システム
2…自律走行制御装置
3…処理情報データベース
4…演算データベース
5…結果データベース
6…回路データベース
21…再構成指示
22…再構成完了通知
23…演算データ
24…結果データ
202…処理制御部
203…再構成回路
204…再構成管理部
205…データベース管理部
206…演算部
211…演算データベース管理情報
212…結果データベース管理情報
213…状態管理情報
212…管理情報
213…状態管理情報
230…内部処理管理部
240…外部処理管理部

Claims (15)

  1.  再構成されて演算を実行する演算部、および前記演算部が演算対象とする演算対象データを格納する格納部が構成される部分再構成可能な論理回路と、
     前記演算部を再構成させるための回路データ、および前記演算対象データを前記論理回路に送信する処理制御部とを備え、
     前記処理制御部は、再構成の完了後の前記演算部である次回演算部にかかる前記演算対象データである次回演算対象データが得られると、前記次回演算部の再構成が完了しているか否かにかかわらず、前記格納部への前記次回演算対象データの送信を開始し、
     再構成が完了した前記次回演算部は前記次回演算対象データを用いて演算を行う電子制御装置。
  2.  請求項1に記載の電子制御装置において、
     前記次回演算対象データが前記演算部以外の処理により生成される場合は、前記処理制御部は前記処理が完了すると前記次回演算対象データが得られると判断する電子制御装置。
  3.  請求項1に記載の電子制御装置において、
     前記処理制御部は、前記回路データおよび前記演算対象データの両方を前記論理回路に送信可能な場合は、前記回路データを優先して前記論理回路に送信する電子制御装置。
  4.  請求項1に記載の電子制御装置において、
     前記処理制御部は、前記回路データおよび前記演算対象データの両方を前記論理回路に送信可能な場合は、前記回路データの前記論理回路への送信に要する時間である回路データ転送時間、および前記演算対象データの前記論理回路への送信に要する時間である演算データ転送時間に基づき、前記回路データおよび前記演算対象データのいずれを先に送信する先送信データとし、他方を後に送信する後送信データとするかを決定する電子制御装置。
  5.  請求項4に記載の電子制御装置において、
     前記処理制御部は、前記回路データ転送時間と前記演算データ転送時間との差に基づき後送信待機時間を決定し、
     前記処理制御部は、前記先送信データを送信した後に、前記後送信待機時間だけ待機した後に前記後送信データを送信する電子制御装置。
  6.  請求項5に記載の電子制御装置において、
     前記処理制御部は、前記回路データの送信の完了と前記演算対象データの送信の完了が同時になるように前記後送信待機時間を決定する電子制御装置。
  7.  請求項3または請求項4に記載の電子制御装置において、
     前記回路データを前記論理回路に送信可能な場合とは、前記演算部における前記演算が完了している場合であり、
     前記演算対象データを前記論理回路に送信可能な場合とは、前記格納部から前記演算対象データがすべて読みだされ、かつ前記次回演算対象データが得られる場合である、電子制御装置。
  8.  請求項1に記載の電子制御装置において、
     前記論理回路には、前記演算部の演算結果を格納する結果格納部がさらに構成され、
     前記処理制御部は、前記結果格納部に前記演算部の演算結果が格納されると、前記演算部の再構成のための前記回路データの送信を開始する電子制御装置。
  9.  送信される回路データを用いて再構成されて演算を実行する演算部、および前記演算部が演算対象とする演算対象データを格納する格納部が構成される部分再構成可能な論理回路の制御方法であって、
     再構成の完了後の前記演算部である次回演算部にかかる前記演算対象データである次回演算対象データが得られると、前記次回演算部の再構成が完了しているか否かにかかわらず、前記格納部への前記次回演算対象データの送信を開始することと、
     前記次回演算部は再構成が完了すると前記次回演算対象データを用いて演算を行うこととを含む論理回路の制御方法。
  10.  請求項9に記載の論理回路の制御方法において、
     前記次回演算対象データが前記演算部以外の処理により生成される場合は、前記処理が完了すると前記次回演算対象データが得られると判断する論理回路の制御方法。
  11.  請求項9に記載の論理回路の制御方法において、
     前記回路データおよび前記演算対象データの両方を前記論理回路に送信可能な場合は、前記回路データを優先して前記論理回路に送信する論理回路の制御方法。
  12.  請求項9に記載の論理回路の制御方法において、
     前記回路データおよび前記演算対象データの両方を前記論理回路に送信可能な場合は、前記回路データの前記論理回路への送信に要する時間である回路データ転送時間、および前記演算対象データの前記論理回路への送信に要する時間である演算データ転送時間に基づき、前記回路データおよび前記演算対象データのいずれを先に送信する先送信データとし、他方を後に送信する後送信データとするかを決定する論理回路の制御方法。
  13.  請求項12に記載の論理回路の制御方法において、
     前記回路データ転送時間と前記演算データ転送時間との差に基づき後送信待機時間を決定し、
     前記先送信データを送信した後に、前記後送信待機時間だけ待機した後に前記後送信データを送信する論理回路の制御方法。
  14.  請求項11または請求項12に記載の論理回路の制御方法において、
     前記回路データを前記論理回路に送信可能な場合とは、前記演算部における前記演算が完了している場合であり、
     前記演算対象データを前記論理回路に送信可能な場合とは、前記格納部から前記演算対象データがすべて読みだされ、かつ前記次回演算対象データが得られる場合である、論理回路の制御方法。
  15.  請求項9に記載の論理回路の制御方法において、
     前記論理回路には、前記演算部の演算結果を格納する結果格納部がさらに構成され、
     前記結果格納部に前記演算部の演算結果が格納されると、前記演算部の再構成のための前記回路データを送信する論理回路の制御方法。
     
PCT/JP2018/011517 2017-04-24 2018-03-22 電子制御装置、論理回路の制御方法 WO2018198616A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US16/606,830 US11132329B2 (en) 2017-04-24 2018-03-22 Electronic control device and method of controlling logic circuit
DE112018001595.5T DE112018001595T5 (de) 2017-04-24 2018-03-22 Elektronische Steuervorrichtung und Verfahren zum Steuern einer logischen Schaltung
CN201880025847.1A CN110520855B (zh) 2017-04-24 2018-03-22 电子控制装置、逻辑电路的控制方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017085365A JP6810651B2 (ja) 2017-04-24 2017-04-24 電子制御装置、論理回路の制御方法
JP2017-085365 2017-04-24

Publications (1)

Publication Number Publication Date
WO2018198616A1 true WO2018198616A1 (ja) 2018-11-01

Family

ID=63918915

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/011517 WO2018198616A1 (ja) 2017-04-24 2018-03-22 電子制御装置、論理回路の制御方法

Country Status (5)

Country Link
US (1) US11132329B2 (ja)
JP (1) JP6810651B2 (ja)
CN (1) CN110520855B (ja)
DE (1) DE112018001595T5 (ja)
WO (1) WO2018198616A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002215603A (ja) * 2001-01-19 2002-08-02 Sony Corp 演算装置および並列演算装置
JP2007228052A (ja) * 2006-02-21 2007-09-06 Nec Engineering Ltd 再構成データ制御回路および再構成データ制御方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7020673B2 (en) 2001-01-19 2006-03-28 Sony Corporation Reconfigurable arithmetic device and arithmetic system including that arithmetic device and address generation device and interleave device applicable to arithmetic system
WO2004072796A2 (en) * 2003-02-05 2004-08-26 Arizona Board Of Regents Reconfigurable processing
JP4720436B2 (ja) * 2005-11-01 2011-07-13 株式会社日立製作所 リコンフィギュラブルプロセッサまたは装置
US20100174884A1 (en) * 2005-12-27 2010-07-08 Matsushita Electric Industrial Co., Ltd. Processor having reconfigurable arithmetic element
JP3877002B2 (ja) * 2006-01-05 2007-02-07 富士ゼロックス株式会社 情報処理システムおよび情報処理方法
JP2006333496A (ja) * 2006-06-22 2006-12-07 Fuji Xerox Co Ltd プログラマブル論理回路装置および情報処理システム
WO2009060567A1 (ja) * 2007-11-09 2009-05-14 Panasonic Corporation データ転送制御装置、データ転送装置、データ転送制御方法及び再構成回路を用いた半導体集積回路
CN102057575A (zh) * 2008-06-05 2011-05-11 松下电器产业株式会社 信号处理装置、信号处理方法、信号处理用集成电路及电视接收机
CN102567281B (zh) * 2011-12-16 2014-10-15 北京大学深圳研究生院 可重构调度算子阵列结构、集成电路阵列结构及控制模块
JP5994679B2 (ja) * 2013-02-26 2016-09-21 株式会社ソシオネクスト 処理装置、及び処理装置の制御方法
CN105659287B (zh) * 2013-08-28 2018-08-17 株式会社理光 图像处理装置、图像处理方法和成像系统
US20160025497A1 (en) * 2014-07-24 2016-01-28 Harman International Industries, Incorporated Pre-caching of navigation content based on cellular network coverage
JP6685694B2 (ja) 2015-10-28 2020-04-22 キヤノン株式会社 画像形成装置、情報処理装置及びその制御方法並びにコンピュータプログラム、記録媒体
JP6713410B2 (ja) * 2016-11-21 2020-06-24 日立オートモティブシステムズ株式会社 電子制御装置
US11334263B2 (en) * 2018-01-11 2022-05-17 Intel Corporation Configuration or data caching for programmable logic device
FR3086412B1 (fr) * 2018-09-20 2020-10-30 Amadeus Sas Recalcul des resultats de recherche precalcules

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002215603A (ja) * 2001-01-19 2002-08-02 Sony Corp 演算装置および並列演算装置
JP2007228052A (ja) * 2006-02-21 2007-09-06 Nec Engineering Ltd 再構成データ制御回路および再構成データ制御方法

Also Published As

Publication number Publication date
DE112018001595T5 (de) 2020-01-02
US11132329B2 (en) 2021-09-28
CN110520855A (zh) 2019-11-29
CN110520855B (zh) 2023-01-20
US20200050580A1 (en) 2020-02-13
JP2018186332A (ja) 2018-11-22
JP6810651B2 (ja) 2021-01-06

Similar Documents

Publication Publication Date Title
US9829962B2 (en) Hardware and software enabled implementation of power profile management instructions in system on chip
US10698842B1 (en) Domain assist processor-peer for coherent acceleration
US11550500B2 (en) Computational storage and networked based system
CN110618971B (zh) 信息交互方法和电子设备
US11318929B2 (en) Electronic control apparatus, electronic control system, and electronic control method
JP2011040912A (ja) 車載ネットワーク装置
US20240152380A1 (en) Service-oriented data architecture for a vehicle
US20240134675A1 (en) Display apparatus for vehicle
WO2018198616A1 (ja) 電子制御装置、論理回路の制御方法
CN105980982B (zh) 信息装置
US20220300445A1 (en) Electronic Control Unit, Vehicle Comprising the Electronic Control Unit and Computer-Implemented Method
JP2003271574A (ja) 共有メモリ型マルチプロセッサシステムにおけるデータ通信方法
US11878704B2 (en) Electronic control device and control method
CN110915138B (zh) 电子控制装置和电路的重构方法
US11789730B2 (en) Electronic control device and control method
WO2020059347A1 (ja) 電子制御装置
JP6781089B2 (ja) 電子制御装置、電子制御システム、電子制御装置の制御方法
US12001370B2 (en) Multi-node memory address space for PCIe devices
US20230134744A1 (en) Execution State Management
JP7201381B2 (ja) 電子制御装置、並列処理方法
US20230214345A1 (en) Multi-node memory address space for pcie devices
US20230409370A1 (en) Signal processing device and display apparatus for vehicles including the same
US20230353663A1 (en) Electronic control device, data communication method, and non-transitory computer readable storage medium
CN117916715A (zh) 用于将计算功能块的执行从车辆转移到个人设备的装置、方法和计算机程序
JP2023161698A (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: 18789881

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 18789881

Country of ref document: EP

Kind code of ref document: A1