WO2014148208A1 - 電子制御装置及びデータ書換え方法 - Google Patents

電子制御装置及びデータ書換え方法 Download PDF

Info

Publication number
WO2014148208A1
WO2014148208A1 PCT/JP2014/054484 JP2014054484W WO2014148208A1 WO 2014148208 A1 WO2014148208 A1 WO 2014148208A1 JP 2014054484 W JP2014054484 W JP 2014054484W WO 2014148208 A1 WO2014148208 A1 WO 2014148208A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
processor
nonvolatile memory
written
tool
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2014/054484
Other languages
English (en)
French (fr)
Inventor
俊史 三宅
雄介 阿部
康司 湯浅
新井 敏央
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Astemo Ltd
Original Assignee
Hitachi Automotive Systems Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Priority to CN201480016490.2A priority Critical patent/CN105144299B/zh
Priority to GB1516785.1A priority patent/GB2526992B/en
Priority to US14/778,896 priority patent/US9996296B2/en
Priority to MX2015012412A priority patent/MX361290B/es
Publication of WO2014148208A1 publication Critical patent/WO2014148208A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • G—PHYSICS
    • G11—INFORMATION STORAGE
    • G11C—STATIC STORES
    • G11C16/00—Erasable programmable read-only memories
    • G11C16/02—Erasable programmable read-only memories electrically programmable
    • G11C16/06—Auxiliary circuits, e.g. for writing into memory
    • G11C16/10—Programming or data input circuits
    • G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • G—PHYSICS
    • G05—CONTROLLING; REGULATING
    • G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00—Systems controlled by a computer
    • G05B15/02—Systems controlled by a computer electric
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00—Accessing, addressing or allocating within memory systems or architectures
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00—Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02—Addressing or allocation; Relocation
    • G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023—Free address space management
    • G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601—Interfaces specially adapted for storage systems
    • G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061—Improving I/O performance
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601—Interfaces specially adapted for storage systems
    • G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638—Organizing or formatting or addressing of data
    • G06F3/064—Management of blocks
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601—Interfaces specially adapted for storage systems
    • G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671—In-line storage system
    • G06F3/0673—Single storage device
    • G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • G—PHYSICS
    • G11—INFORMATION STORAGE
    • G11C—STATIC STORES
    • G11C16/00—Erasable programmable read-only memories
    • G11C16/02—Erasable programmable read-only memories electrically programmable
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10—Providing a specific technical effect
    • G06F2212/1016—Performance improvement
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72—Details relating to flash memory management
    • G06F2212/7201—Logical to physical mapping or translation of blocks or pages
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72—Details relating to flash memory management
    • G06F2212/7202—Allocation control and policies

Definitions

  • the present invention relates to a technique for rewriting data of an electronic control device.
  • Patent Document 1 Japanese Patent Laid-Open No. 9-128229
  • an object of the present invention is to provide an electronic control device and a data rewriting method capable of reducing the time required for rewriting data in a nonvolatile memory such as a flash ROM.
  • the electronic control unit has a nonvolatile memory that can erase data in units of erase blocks and can write data in units of write blocks smaller than the erase block, and a processor. Then, in response to an external data rewrite request, the processor of the electronic control unit erases a part of the data in the nonvolatile memory in units of erase blocks and stores the data in a part of the nonvolatile memory in units of write blocks. Write.
  • the time required for rewriting data in a nonvolatile memory such as a flash ROM can be shortened.
  • FIG. 1 shows an example of a data rewriting system for rewriting data of an electronic control unit (ECU) mounted on an automobile.
  • ECU electronice control unit
  • the ECU 100 to be rewritten is detachably connected to a tool 300 in which an operator performs data rewriting work of the ECU 100 via a network cable 200 such as CAN (ControllerCAArea Network), serial communication, FlexRay (registered trademark) or the like. Is done.
  • a network cable 200 such as CAN (ControllerCAArea Network), serial communication, FlexRay (registered trademark) or the like. Is done.
  • the ECU 100 and the tool 300 are not limited to being wired using the network cable 200 but may be connected to each other wirelessly using a wireless transceiver.
  • the ECU 100 is an electronic device that controls various devices mounted on an automobile, such as a fuel injection valve, a transmission, an electric brake system, an ABS (Antilock Brake System), a variable valve timing mechanism, a brushless motor, and the like.
  • the ECU 100 includes a processor 110 such as a CPU (Central Processing Unit), a communication circuit 120 for connecting to a network, a flash ROM 130 as an example of a nonvolatile memory, RAM (Random Access Memory) 140 as an example of a volatile memory, and a bus 150 that connects the processor 110, the communication circuit 120, the flash ROM 130, and the RAM 140 to each other.
  • the communication circuit 120 includes a connector (not shown) that detachably connects the network cable 200.
  • the flash ROM 130 has a plurality of erase blocks 1 to n having a predetermined size (for example, 32 Kbytes, 64 Kbytes, etc.) and a plurality of writes having a predetermined size (for example, 256 bytes) for each erase block. It is divided into blocks 1 to m.
  • the erase block defines the minimum unit for erasing data
  • the write block is a concept for defining the minimum unit for writing data, and has the characteristic that the erase block is larger than the write block.
  • the tool 300 is an electronic device in which an operator performs data rewriting work of the ECU 100, and includes, for example, a computer such as a personal computer.
  • the tool 300 includes a processor 310 such as a CPU, a communication circuit 320 for connecting to a network, a storage 330 such as a hard disk device and an SSD (Solid State Drive), and a work
  • An input / output device 340 serving as an interface to a person.
  • the communication circuit 320 includes a connector (not shown) that removably connects the network cable 200.
  • the input / output device 340 includes a display such as an LCD (Liquid Crystal Display), a keyboard, and a pointing device such as a mouse.
  • the storage 330 may be, for example, a NAS (Network Attached Storage) connected to a network (not shown), a server storage, or the like.
  • the storage 330 stores rewrite data for rewriting the flash ROM 130 of the ECU 100.
  • the rewrite data includes, for example, a control program for controlling various devices mounted on the automobile, constants used in the control program, control parameters such as maps, and the like.
  • FIG. 5 shows an example of the first embodiment of the data rewriting process for rewriting data in the flash ROM 130 of the ECU 100.
  • the operator designates rewriting data and rewritten data and performs a predetermined operation on the tool 300. Executed. Note that the data rewriting process shown in FIG. 5 is executed for each erase block of rewritten data (the same applies to the second embodiment).
  • the ECU 100 is started by being supplied with electric power when connected to the tool 300 via the network cable 200.
  • the ECU 100 may be started by connecting another power cable.
  • the memory map of the flash ROM 130 in the ECU 100 represents the erase block as “EBn” and the write block as “WBm” (m, n: natural numbers). I will do it.
  • step 100 the processor 310 of the tool 300 calculates a hash value of the erase block EBx (x: natural number 1 to n). That is, the processor 310 calculates the hash value of the data of the erase block EBx in the rewritten data using a known hash function such as SHA (Secure Hash Algorithm), MD5 (Message Digest Algorithm 5).
  • SHA Secure Hash Algorithm
  • MD5 Message Digest Algorithm 5
  • the hash value is an example of identification information for easily determining the identity of the data, and a similar value is used even for similar data.
  • the processor 310 temporarily stores the hash value calculated from the data of the erase block EBx in a storage medium such as a RAM (not shown).
  • step 101 the processor 310 of the tool 300 requests the hash value of the data of the erase block EBx in the rewritten data written in the flash ROM 130, for example, by designating the address of the erase block EBx to the ECU 100. To do.
  • step 200 in response to the hash value request from the tool 300, the processor 110 of the ECU 100 calculates the hash value of the data in the erase block EBx starting from the designated address of the rewritten data written in the flash ROM 130.
  • the processor 110 calculates a hash value by using the same hash function as that of the tool 300 so that the tool 300 can compare hash values. Then, the processor 110 returns the hash value calculated from the erase block EBx to the tool 300.
  • step 102 the processor 310 of the tool 300 determines whether there is a difference between the two hash values by comparing the hash value stored in the storage medium with the hash value returned from the ECU 100. That is, the processor 310 determines whether or not there is a difference in the data of the corresponding erase block between the rewritten data and the rewritten data, in other words, whether or not there is identity. If it is determined that there is a difference between the two hash values, the processor 310 proceeds to step 103 (Yes), and if it is determined that there is no difference between the two hash values, the processing of the erase block EBx is terminated. (No).
  • step 103 the processor 310 of the tool 300 requests the ECU 100 to erase the data in the erase block EBx in the flash ROM 130. That is, since there is a difference in the corresponding erase block data between the rewritten data and the rewritten data, the processor 310 erases the erase block EBx from the ECU 100 in order to enable data rewrite of the erase block. Request.
  • step 201 in response to the erase request from the tool 300, the processor 110 of the ECU 100 erases the data, for example, by writing predetermined data in the erase block EBx in the flash ROM 130.
  • step 202 the processor 110 of the ECU 100 notifies the tool 300 that data erasure of the erase block EBx in the flash ROM 130 has been completed. Such notification is performed to synchronize between the ECU 100 and the tool 300 (the same applies hereinafter).
  • step 104 in response to the notification from the ECU 100, the processor 310 of the tool 300 sequentially extracts data of the write block WBy (y: natural number 1 to m) belonging to the erase block EBx from the rewrite data, and this is extracted from the ECU 100. Send to. That is, the processor 310 sequentially transmits to the ECU 100 data to be written in the area where the data has been erased in the storage area of the flash ROM 130 of the ECU 100.
  • step 203 the processor 110 of the ECU 100 writes the data received from the tool 300 into the write block WBy of the flash ROM 130.
  • step 204 the processor 110 of the ECU 100 notifies the tool 300 that the data writing to the writing block WBy of the flash ROM 130 has been completed.
  • step 105 in response to the notification from the ECU 100, the processor 310 of the tool 300 has completed writing of data to the erase block EBx through, for example, whether or not the processing has been completed up to the write block WBm. Determine whether or not. Then, the processor 310 terminates the process of the erase block EBx if it is determined that the data writing is completed (Yes), and returns the process to step 104 if it is determined that the data writing is not completed (No).
  • the tool 300 transmits a data erase request for the erase block having the difference to the ECU 100, and Data for writing to the write block belonging to the erase block is sequentially transmitted.
  • ECU 100 erases the data in the erase block and writes the data sequentially transmitted from tool 300 into the write block.
  • the flash ROM 130 of the ECU 100 is rewritten with the rewritten data in which only a part of the rewritten data is changed, such as the change of the control parameter, the data erasure and data transfer of the flash ROM 130 are performed for the erase block including the changed portion. For this reason, the total amount of information transferred from the tool 300 to the ECU 100 is reduced, and the time required for data rewriting of the flash ROM 130 can be shortened. Note that the time required for rewriting data in the flash ROM 130 occupies a majority of the data transfer time from the tool 300 to the ECU 100, and thus it can be said that the effect of reducing the data transfer amount is great.
  • the time required for data rewriting of the flash ROM 130 can be shortened by reducing the amount of communication by performing data erasure and data transfer only for the erase block having a difference between the rewritten data and the rewritten data. .
  • FIG. 7 shows an example of the second embodiment of the data rewriting process for rewriting data in the flash ROM 130 of the ECU 100.
  • the operator designates rewriting data and rewritten data and performs a predetermined operation on the tool 300. Executed.
  • processes that are the same as those in the first embodiment are simplified from the viewpoint of eliminating redundant description (the same applies hereinafter).
  • step 300 the processor 310 of the tool 300 requests the ECU 100 to erase the data in the erase block EBx in the flash ROM 130.
  • step 400 in response to the erase request from the tool 300, the processor 110 of the ECU 100 saves the data of the write block WBy written in the erase block EBx of the flash ROM 130 in the RAM 140 as shown in FIG. make a copy.
  • step 401 the processor 110 of the ECU 100 erases the data of the erase block EBx in the flash ROM 130.
  • the processor 110 of the ECU 100 notifies the tool 300 that data erasure of the erase block EBx in the flash ROM 130 has been completed.
  • step 301 the processor 310 of the tool 300 sequentially calculates the hash value of the data of each write block WBy belonging to the erasure block EBx of the rewrite data using a known hash function. Then, the processor 310 temporarily stores the hash value calculated from the data of the writing block WBy in the storage medium.
  • step 302 the processor 310 of the tool 300 designates, for example, the address of the writing block WBy to the ECU 100, so that the hash value of the data of the writing block WBy in the rewritten data written in the flash ROM 130 is obtained. Request.
  • step 403 in response to the hash value request from the tool 300, the processor 110 of the ECU 100 calculates the hash value of the data in the writing block WBy starting from the designated address of the rewritten data written in the flash ROM 130. .
  • the processor 110 calculates a hash value by using the same hash function as that of the tool 300 so that the tool 300 can compare hash values. Then, the processor 110 returns the hash value calculated from the writing block WBy to the tool 300.
  • step 303 the processor 310 of the tool 300 determines whether there is a difference between the two hash values by comparing the hash value stored in the storage medium with the hash value returned from the ECU 100. That is, the processor 310 determines whether or not there is a difference in the data of the corresponding writing block between the rewritten data and the rewritten data, in other words, whether or not there is identity. If the processor 310 determines that there is a difference between the two hash values, the process proceeds to step 304 (Yes). If the processor 310 determines that there is no difference between the two hash values, the process proceeds to step 305 ( No).
  • step 304 the processor 310 of the tool 300 sequentially extracts the data of the writing block WBy from the rewritten data and transmits it to the ECU 100.
  • step 404 the processor 110 of the ECU 100 writes the data received from the tool 300 into the write block WBy of the flash ROM 130. Thereafter, the processor 110 advances the process to step 406.
  • step 305 the processor 310 of the tool 300 requests the ECU 100 to write the data of the write block WBy to the write block WBy of the flash ROM 130 for the erase block EBx data saved in the RAM 140.
  • step 405 in response to the write request from the tool 300, the processor 110 of the ECU 100 writes the data of the write block WBy into the write block WBy of the flash ROM 130 for the erase block EBx data saved in the RAM 140. .
  • step 406 the processor 110 of the ECU 100 notifies the tool 300 that the writing of the data in the writing block WBy has been completed.
  • step 306 in response to the notification from the ECU 100, for example, whether or not the data writing to the erasure block EBx is completed through whether or not the processing up to the writing block WBm is performed by the processor 310 of the tool 300. judge. Then, the processor 310 terminates the processing of the erase block EBx if it is determined that the data writing is completed (Yes), and returns the processing to step 301 if it is determined that the data writing is not completed (No).
  • the ECU 100 in response to the erase request from the tool 300, erases the data of the erase block EBx after saving the data of the erase block EBx of the flash ROM 300 to the RAM 140. To do. Thereafter, it is determined whether or not there is a difference between the writing block WBy of the rewritten data and the writing block WBy of the rewritten data, using a hash value that can evaluate the identity of the data. If there is a difference between the rewritten data and the rewritten data, the data of the writing block WBy transmitted from the tool 300 to the ECU 100 is written in the flash ROM 130. On the other hand, if there is no difference between the rewritten data and the rewritten data, the data of the writing block WBy saved in the RAM 140 is written in the flash ROM 130.
  • the data transmitted / received between the tool 300 and the ECU 100 is only the write data WBy that is different between the rewritten data and the rewritten data except for various requests and responses. For this reason, compared to the first embodiment, the total amount of data transmitted from the tool 300 to the ECU 100 is further reduced, and the time required for data rewriting of the flash ROM 130 is further shortened by further shortening the data transfer time. be able to.
  • the sum of the time required to save data from flash ROM 130 to RAM 140 and the time required to write data in RAM 140 to flash ROM 130 is the time required to transmit data of the same size from tool 300 to ECU 100. Shorter than. This is because the data transfer speed inside the ECU 100 is faster than the data transfer speed from the tool 300 to the ECU 100. For this reason, even if requests and responses transmitted / received between the tool 300 and the ECU 100 increase somewhat, the data transmitted from the tool 300 to the ECU 100 decreases, so that the flash ROM 130 is compared with the first embodiment. The time required for data rewriting becomes shorter.
  • FIG. 9 shows an example of the third embodiment of the data rewriting process for rewriting data in the flash ROM 130 of the ECU 100.
  • the operator designates rewriting data and rewritten data and performs a predetermined operation on the tool 300. Executed.
  • the storage 330 of the tool 300 stores a record for specifying whether or not there is a difference between the rewritten data and the rewritten data for each erase block EBx.
  • Database has been built.
  • a record for specifying whether or not there is a difference between the rewritten data and the rewritten data may be stored for each writing block WBy.
  • step 500 the processor 310 of the tool 300 requests the ECU 100 for data identification information for identifying rewritten data.
  • the processor 110 of the ECU 100 reads data identification information from the rewritten data written in the flash ROM 130, for example, and returns it to the tool 300.
  • step 501 the processor 310 of the tool 300 identifies rewritten data written in the flash ROM 130 of the ECU 100 based on the data identification information returned from the ECU 100.
  • the processor 310 of the tool 300 refers to the database of the storage 330 and calculates difference information between the rewritten data and the rewritten data, that is, information for specifying which erase block EBx is different. . Specifically, the processor 310 refers to the database and searches for a record specified by the data identification information of the rewritten data and the identification information of the rewritten data. Then, the processor 310 reads the contents of the record and compares the erase block EBx corresponding to the rewritten data and the rewritten data, thereby generating difference information.
  • step 503 the processor 310 of the tool 300 sequentially requests the ECU 100 to erase the data of the erase block EBx of the flash ROM 130 for the erase block EBx having a difference between the rewritten data and the rewritten data.
  • step 601 the processor 110 of the ECU 100 erases the data in the erase block EBx of the flash ROM 130 in response to the erase request from the tool 300.
  • step 602 the processor 110 of the ECU 100 notifies the tool 300 that data erasure of the erase block EBx of the flash ROM 130 has been completed.
  • step 504 in response to the notification from the ECU 100, the processor 310 of the tool 300 sequentially extracts the data of the write block WBy belonging to the erase block EBx from the write data, and transmits this to the ECU 100.
  • step 603 the processor 110 of the ECU 100 writes the data received from the tool 300 into the writing block WBy of the flash ROM 130.
  • step 604 the processor 110 of the ECU 100 notifies the tool 300 that the data writing to the writing block WBy of the flash ROM 130 has been completed.
  • step 505 in response to the notification from the ECU 100, the processor 310 of the tool 300 determines whether or not the writing of data to the erase block EBx is completed. If the processor 310 determines that the data writing has been completed, the process proceeds to step 506 (Yes), whereas if the processor 310 determines that the data writing has not ended, the process returns to step 504 (No).
  • step 506 whether or not writing of all the differences is completed through whether or not the processor 310 of the tool 300 has processed all the erase blocks EBx that are different between the rewritten data and the rewritten data. Determine whether. If the processor 310 determines that all the differences have been written, the processor 310 ends the data rewriting process (Yes), while if it determines that all the differences have not been written, the processor 310 returns the processing to step 503. (No).
  • the tool 300 refers to the database of the storage 330 and calculates difference information between the rewritten data and the rewritten data.
  • the erase block EBx specified by the difference information and having a difference between the rewritten data and the rewritten data the data erase of the erase block EBx of the flash ROM 130 and the write block WBy from the tool 300 to the ECU 100 Data transfer is performed. Therefore, unlike the first and second embodiments, it is not necessary to calculate a hash value in order to evaluate the identity between the rewritten data and the rewritten data, and the flash ROM 130 is more than the second embodiment. The time required for rewriting data can be shortened.
  • the data of the erase block EBx is saved in the RAM 140 as in the second embodiment, and there is a difference between the tool 300 and the ECU 100. Only the data of the embedded block WBy may be transmitted to rewrite the data of the flash ROM 130. In this case, it is necessary to store in the database of the storage 330 of the tool 300 a record for specifying whether or not there is a difference between the rewritten data and the rewritten data for each writing block WBy. There is.
  • the data rewriting process is mainly performed by the tool 300, but the ECU 100 may be mainly performed. Specific examples thereof will be described below.
  • FIG. 10 and FIG. 11 show an example of the first applied embodiment of the data rewriting process in which the technical ideas of the first embodiment and the second embodiment are combined.
  • the tool 300 is the main data rewriting process.
  • step 700 the processor 310 of the tool 300 calculates the hash value of the data of the erase block EBx in the rewritten data.
  • step 701 the processor 310 of the tool 300 requests the ECU 100 for a hash value of the data of the erase block EBx in the rewritten data.
  • step 800 the processor 110 of the ECU 100 calculates the hash value of the data of the erase block EBx in the rewritten data in response to the request for the hash value from the tool 300. Then, the processor 110 returns the hash value calculated from the erase block EBx to the tool 300.
  • step 702 the processor 310 of the tool 300 determines whether or not there is a difference between the hash value of the rewritten data and the hash value of the rewritten data for the corresponding erase block EBx. If it is determined that there is a difference between the two hash values, the processor 310 advances the process to step 703 (Yes). If it is determined that there is no difference between the two hash values, the processor 310 ends the process of the erase block EBx. (No).
  • step 703 the processor 310 of the tool 300 requests the ECU 100 to erase the data in the erase block EBx in the flash ROM 130.
  • step 801 the processor 110 of the ECU 100 saves the data written in the erase block EBx of the flash ROM 130 in the RAM 140 in response to the erase request from the tool 300.
  • step 802 the processor 110 of the ECU 100 erases the data of the erase block EBx in the flash ROM 130.
  • the processor 110 of the ECU 100 notifies the tool 300 that data erasure of the erase block EBx in the flash ROM 130 has been completed.
  • step 704 the processor 310 of the tool 300 sequentially calculates the hash value of the data of each write block WBy belonging to the erasure block EBx of the rewrite data using a known hash function.
  • step 705 the processor 310 of the tool 300 requests the ECU 100 for a hash value of the data of the writing block WBy in the rewritten data.
  • step 804 in response to the hash value request from the tool 300, the processor 110 of the ECU 100 calculates the hash value of the data of the writing block WBy in the rewritten data. Then, the processor 110 returns the hash value calculated from the writing block WBy to the tool 300.
  • step 706 the processor 310 of the tool 300 determines whether or not there is a difference between the hash value of the rewritten data and the hash value of the rewritten data for the corresponding writing block WBy. If the processor 310 determines that there is a difference between the two hash values, the process proceeds to step 707 (Yes). If the processor 310 determines that there is no difference between the two hash values, the process proceeds to step 708 (step 708). No).
  • step 707 the processor 310 of the tool 300 sequentially extracts the data of the writing block WBy from the rewritten data and transmits it to the ECU 100.
  • step 805 the processor 110 of the ECU 100 writes the data received from the tool 300 into the writing block WBy of the flash ROM 130. Thereafter, the processor 110 advances the processing to step 807.
  • step 708 the processor 310 of the tool 300 requests the ECU 100 to write the data of the write block WBy to the write block WBy of the flash ROM 130 with respect to the data of the erase block EBx saved in the ROM 140.
  • step 806 in response to the write request from the tool 300, the processor 110 of the ECU 100 writes the data of the write block WBy to the write block WBy of the flash ROM 130 for the erase block EBx data saved in the RAM 140. .
  • step 807 the processor 110 of the ECU 100 notifies the tool 300 that the writing of the data in the writing block WBy has been completed.
  • step 709 in response to the notification from the ECU 100, the processor 310 of the tool 300 determines whether or not data writing to the erase block EBx is completed. Then, the processor 310 terminates the processing of the erase block EBx if it is determined that the data writing has been completed (Yes), and returns the processing to step 704 if it determines that the data writing has not been completed (No).
  • the identity of each writing block is evaluated with respect to the erase block having a difference between the rewriting data and the rewritten data. If the corresponding writing block is identical, the data saved in the RAM 140 is written in the flash ROM 130. If the corresponding writing block is not identical, the data transmitted from the tool 300 to the ECU 100 is flashed. It is written in the ROM 130.
  • the total amount of data transmitted from the tool 300 to the ECU 100 is further reduced, and the time required for writing data in the flash ROM 130 can be shortened.
  • FIG. 12 and FIG. 13 show an example of a second applied embodiment of the data rewriting process that combines the technical ideas of the first embodiment and the second embodiment.
  • the main body of the data rewriting process is the ECU 100.
  • step 900 the processor 310 of the tool 300 calculates the hash value of the data of the erase block EBx in the rewritten data.
  • step 901 the processor 310 of the tool 300 requests the ECU 100 to erase the erase block EBx in the rewritten data, and transmits the hash value calculated in step 900.
  • step 1000 the processor 110 of the ECU 100 calculates the hash value of the data of the erase block EBx in the rewritten data in response to the erase request from the tool 300.
  • step 1001 the processor 110 of the ECU 100 compares the hash value received from the tool 300 with the hash value calculated in step 1000 to determine whether there is a difference between the two hash values. If it is determined that there is a difference between the two hash values, the processor 110 proceeds to step 1002 (Yes), and if it is determined that there is no difference between the two hash values, the processing of the erase block EBx is terminated. (No).
  • step 1002 the processor 110 of the ECU 100 saves the data written in the erase block EBx of the flash ROM 130 in the RAM 140.
  • step 1003 the processor 110 of the ECU 100 erases the data of the erase block EBx in the flash ROM 130.
  • step 1004 the processor 110 of the ECU 100 sequentially calculates the hash value of the data of the write block WBy from the data of the erase block EBx saved in the RAM 140.
  • step 1005 the processor 110 of the ECU 100 requests the hash value of the data of the write block WBy belonging to the erasure block EBx of the rewrite data to the tool 300.
  • step 902 the processor 310 of the tool 300 calculates the hash value of the data of the writing block WBy in the rewritten data in response to the hash value request from the ECU 100. Then, the processor 310 returns the hash value calculated from the writing block WBy to the ECU 100.
  • step 1006 the processor 110 of the ECU 100 determines whether or not there is a difference between the hash value of the rewritten data and the hash value of the rewritten data for the corresponding writing block WBy. If the processor 110 determines that there is a difference between the two hash values, the process proceeds to step 1007 (Yes). If the processor 110 determines that there is no difference between the two hash values, the process proceeds to step 1009 ( No).
  • step 1007 the processor 110 of the ECU 100 requests the data of the writing block WBy in the rewriting data from the tool 300.
  • step 903 in response to a request from the ECU 100, the processor 310 of the tool 300 sequentially extracts the data of the writing block WBy from the rewritten data, and transmits this to the ECU 100.
  • step 1008 the processor 110 of the ECU 100 writes the data received from the tool 300 into the writing block WBy of the flash ROM 130. After that, the processor 110 advances the process to step 1010.
  • step 1009 the processor 110 of the ECU 100 writes the data of the write block WBy into the write block WBy of the flash ROM 130 with respect to the data of the erase block EBx saved in the RAM 140.
  • step 1010 the processor 110 of the ECU 100 determines whether or not the data writing to the erase block EBx is completed. If the processor 110 determines that the data writing has been completed, the processor 110 terminates the processing of the erase block EBx (Yes), and if it determines that the data writing has not ended, returns the processing to step 1004 (No).
  • the data writing process is performed in the ECU 100 except for the basic erase request of the erase block EBx, the return of the hash value of the write block WBy, and the transmission of the write block WBy. .
  • the processing in the tool 300 also needs to be changed. Since there is little influence, the change part can be decreased. Since the tool 300 is commonly used for various ECUs 100, such an effect is useful. Since other operations and effects are the same as those of the first applied embodiment, refer to the description if necessary.
  • a data rewriting system can be constructed.
  • hash values of the data of the erase block EBx and the write block WBy are calculated in advance and stored in association with the rewrite data and the rewritten data. Good. In this way, when the data in the flash ROM 130 is rewritten, the process of calculating the hash value is not necessary, and the load on the tool 300 and the ECU 100 can be reduced.
  • the data writing process of the ECU 100 to the flash ROM 130 may be performed while the ECU 100 is mounted on the vehicle. In this way, for example, even if the control program is changed due to function expansion or the like, the data of the ECU 100 mounted on the vehicle can be rewritten.
  • ECU 110 processor 120 communication circuit 130 flash ROM (nonvolatile memory) 140 RAM (volatile memory) 200 Network cable 300 Tool 310 Processor 320 Communication circuit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

 電子制御装置は、消去ブロック単位でデータを消去可能であると共に、消去ブロック単位よりも小さい書込ブロック単位でデータを書込み可能な不揮発性メモリと、プロセッサと、を有する。電子制御装置のプロセッサは、外部からのデータ書換え要求に応答して、不揮発性メモリの一部のデータを消去ブロック単位で消去し、不揮発性メモリの一部に書込ブロック単位でデータを書き込む。そして、外部から電子制御装置へと送信されるデータ量を削減し、不揮発性メモリのデータ書換えに要する時間を短縮する。

Description

電子制御装置及びデータ書換え方法
 本発明は、電子制御装置のデータを書き換える技術に関する。
 電子制御装置においては、フラッシュROM(Read Only Memory)などの不揮発性メモリに書き込まれたデータを書き換える場合、特開平9-128229号公報(特許文献1)に記載されるような方法が採用されていた。即ち、電子制御装置に接続されたツールからの指示に応答して、不揮発性メモリのデータ書換え領域を消去してから、ツールから順次送信されるデータを不揮発性メモリに書き込んでいた。
特開平9-128229号公報
 しかしながら、不揮発性メモリに書き込まれたデータと一部分のみが異なるデータを書き換える場合にも、データ書換え領域のすべてのデータを消去し、ツールから電子制御装置へとすべてのデータを転送しなければならなかった。このため、データ転送速度が低いことと相俟って、不揮発性メモリのデータ書換えに長時間を要していた。
 そこで、本発明は、フラッシュROMなどの不揮発性メモリのデータ書換えに要する時間を短縮可能な、電子制御装置及びデータ書換え方法を提供することを目的とする。
 電子制御装置は、消去ブロック単位でデータを消去可能であると共に、消去ブロックよりも小さい書込ブロック単位でデータを書込み可能な不揮発性メモリと、プロセッサと、を有する。そして、電子制御装置のプロセッサが、外部からのデータ書換え要求に応答して、不揮発性メモリの一部のデータを消去ブロック単位で消去し、不揮発性メモリの一部に書込ブロック単位でデータを書き込む。
 本発明によれば、フラッシュROMなどの不揮発性メモリのデータ書換えに要する時間を短縮することができる。
データ書換えシステムの一例を示す概要図である。 電子制御装置の一例を示す内部構造図である。 フラッシュROMのメモリマップの一例を示す説明図である。 ツールの一例を示す内部構造図である。 データ書換え処理の第1実施形態の一例を示すフローチャートである。 フラッシュROMのメモリマップを簡略標記する方法の説明図である。 データ書換え処理の第2実施形態の一例を示すフローチャートである。 フラッシュROMのデータをRAMに退避した状態を示す説明図である。 データ書換え処理の第3実施形態の一例を示すフローチャートである。 データ書換え処理の第1実施形態及び第2実施形態を組み合わせた、第1応用実施形態の一例を示すフローチャートである。 データ書換え処理の第1実施形態及び第2実施形態を組み合わせた、第1応用実施形態の一例を示すフローチャートである。 データ書換え処理の第1実施形態及び第2実施形態を組み合わせた、第2応用実施形態の一例を示すフローチャートである。 データ書換え処理の第1実施形態及び第2実施形態を組み合わせた、第2応用実施形態の一例を示すフローチャートである。
 以下、添付された図面を参照し、本発明を実施するための実施形態について詳述する。
 図1は、自動車に搭載される電子制御装置(ECU:Electronic Control Unit)のデータを書き換える、データ書換えシステムの一例を示す。
 データ書換え対象となるECU100は、CAN(Controller Area Network),シリアル通信,FlexRay(登録商標)などのネットワークケーブル200を介して、作業者がECU100のデータ書換え作業を行う、ツール300に着脱可能に接続される。なお、ECU100とツール300とは、ネットワークケーブル200を使用した有線に限らず、無線送受信機を使用した無線によって相互に接続されるようにしてもよい。
 ECU100は、自動車に搭載された各種機器、例えば、燃料噴射弁,変速機,電動ブレーキシステム,ABS(Antilock Brake System),可変バルブタイミング機構,ブラシレスモータなどを制御する電子機器であって、マイクロコンピュータを内蔵している。具体的には、ECU100は、図2に示すように、CPU(Central Processing Unit)などのプロセッサ110と、ネットワークに接続するための通信回路120と、不揮発性メモリの一例としてのフラッシュROM130と、揮発性メモリの一例としてのRAM(Random Access Memory)140と、プロセッサ110,通信回路120,フラッシュROM130及びRAM140を相互に接続するバス150と、を有している。ここで、通信回路120は、ネットワークケーブル200を着脱可能に接続するコネクタ(図示せず)を含む。
 フラッシュROM130は、図3に示すように、所定サイズ(例えば、32Kバイト,64Kバイトなど)の複数の消去ブロック1~nと、消去ブロックごとに所定サイズ(例えば、256バイト)の複数の書込ブロック1~mと、に区画されている。ここで、消去ブロックは、データを消去する最小単位を規定し、書込ブロックは、データを書き込む最小単位を規定する概念であり、消去ブロックが書込ブロックより大きいという特性を有している。そして、ある書込ブロックのデータを書き換える場合、その書込ブロックが属する消去ブロックのデータをすべて消去した後、データを消去した消去ブロックに属するすべての書込ブロックにデータを書き込む、という手順を経るようになっている。これは、フラッシュROM130のデータを書き換える場合の保障を確保するためである。なお、フラッシュROM130における消去ブロックのサイズが同一でない場合には、各消去ブロックに属する書込ブロックの数は異なっていてもよい。
 ツール300は、作業者がECU100のデータ書換え作業を行う電子機器であって、例えば、パーソナルコンピュータなどのコンピュータから構成される。具体的には、ツール300は、図4に示すように、CPUなどのプロセッサ310と、ネットワークに接続するための通信回路320と、ハードディスク装置,SSD(Solid State Drive)などのストレージ330と、作業者へのインターフェースとなる入出力装置340と、を有している。ここで、通信回路320は、ネットワークケーブル200を着脱可能に接続するコネクタ(図示せず)を含む。また、入出力装置340は、LCD(Liquid Crystal Display)などのディスプレイと、キーボードと、マウスなどのポインティングデバイスと、を含む。なお、ストレージ330は、例えば、図示しないネットワークに接続されたNAS(Network Attached Storage),サーバのストレージなどであってもよい。
 ストレージ330には、ECU100のフラッシュROM130を書き換えるための書換えデータが格納されている。書換えデータは、例えば、自動車に搭載された各種機器を制御する制御プログラム、その制御プログラムで使用される定数,マップなどの制御パラメータなどを含む。
 図5は、ECU100のフラッシュROM130のデータを書き換える、データ書換え処理の第1実施形態の一例を示す。データ書換え処理は、作業者がネットワークケーブル200を介してECU100とツール300とを接続した後、ツール300において、作業者が書換えデータ及び被書換えデータを指定して、所定の操作を行ったときに実行される。なお、図5に示すデータ書換え処理は、書換えデータの消去ブロックごとに実行される(第2実施形態でも同様)。
 ここでは、ECU100は、ネットワークケーブル200を介してツール300と接続されたときに、電力が供給されて起動することを前提とするが、別の電源ケーブルの接続により起動する形態もあり得る。また、以下の説明では、説明の便宜上、ECU100におけるフラッシュROM130のメモリマップは、図6に示すように、消去ブロックを「EBn」、書込ブロックを「WBm」(m,n:自然数)で表すこととする。
 ステップ100(図では「S100」と略記する。以下同様。)では、ツール300のプロセッサ310は、消去ブロックEBx(x:自然数1~n)のハッシュ値を算出する。即ち、プロセッサ310は、SHA(Secure Hash Algorithm),MD5(Message Digest Algorithm 5)などの公知のハッシュ関数を使用して、書換えデータにおける消去ブロックEBxのデータのハッシュ値を算出する。ここで、ハッシュ値は、データの同一性を容易に判定するための識別情報の一例であって、類似するデータでも大きく異なる値をとるものを採用する。そして、プロセッサ310は、消去ブロックEBxのデータから算出したハッシュ値を、図示しないRAMなどの記憶媒体に一時的に記憶させておく。
 ステップ101では、ツール300のプロセッサ310が、ECU100に対して、例えば、消去ブロックEBxのアドレスを指定することで、フラッシュROM130に書き込まれている被書換えデータにおける消去ブロックEBxのデータのハッシュ値を要求する。
 ステップ200では、ECU100のプロセッサ110が、ツール300からのハッシュ値の要求に応答して、フラッシュROM130に書き込まれている被書換えデータの指定アドレスから始まる消去ブロックEBxのデータのハッシュ値を算出する。ここで、プロセッサ110は、ツール300においてハッシュ値の比較が可能となるように、ツール300と同一のハッシュ関数を使用してハッシュ値を算出する。そして、プロセッサ110は、消去ブロックEBxから算出したハッシュ値をツール300に返送する。
 ステップ102では、ツール300のプロセッサ310が、記憶媒体に記憶されているハッシュ値とECU100から返送されたハッシュ値とを比較することで、2つのハッシュ値に差異があるか否かを判定する。即ち、プロセッサ310は、書換えデータと被書換えデータとの間で、対応する消去ブロックのデータに違いがあるか否か、要するに、同一性があるか否かを判定する。そして、プロセッサ310は、2つのハッシュ値に差異があると判定すれば処理をステップ103へと進める一方(Yes)、2つのハッシュ値に差異がないと判定すれば消去ブロックEBxの処理を終了させる(No)。
 ステップ103では、ツール300のプロセッサ310が、ECU100に対して、フラッシュROM130における消去ブロックEBxのデータ消去を要求する。即ち、書換えデータと被書換えデータとの間で対応する消去ブロックのデータに差異があったため、消去ブロックのデータ書換えを可能にすべく、プロセッサ310は、ECU100に対して消去ブロックEBxのデータ消去を要求する。
 ステップ201では、ECU100のプロセッサ110が、ツール300からの消去要求に応答して、例えば、フラッシュROM130における消去ブロックEBxに所定データを書き込むことで、そのデータを消去する。
 ステップ202では、ECU100のプロセッサ110が、ツール300に対して、フラッシュROM130における消去ブロックEBxのデータ消去が終了したことを通知する。なお、このような通知は、ECU100とツール300との間で同期をとるために行われる(以下同様)。
 ステップ104では、ツール300のプロセッサ310が、ECU100からの通知に応答して、書換えデータから消去ブロックEBxに属する書込ブロックWBy(y:自然数1~m)のデータを順次抽出し、これをECU100に対して送信する。即ち、プロセッサ310は、ECU100のフラッシュROM130の記憶領域のうち、データを消去した領域に書き込むデータをECU100に順次送信する。
 ステップ203では、ECU100のプロセッサ110が、ツール300から受信したデータをフラッシュROM130の書込ブロックWByに書き込む。
 ステップ204では、ECU100のプロセッサ110が、ツール300に対して、フラッシュROM130の書込ブロックWByへのデータ書き込みが終了したことを通知する。
 ステップ105では、ツール300のプロセッサ310が、ECU100からの通知に応答して、例えば、書込ブロックWBmまで処理が終了したか否かを介して、消去ブロックEBxへのデータの書込みが終了したか否かを判定する。そして、プロセッサ310は、データ書込みが終了したと判定すれば消去ブロックEBxの処理を終了させる一方(Yes)、データ書込みが終了していないと判定すれば処理をステップ104へと戻す(No)。
 かかるデータ書換え処理の第1実施形態によれば、データの同一性を評価可能なハッシュ値を使用して、消去ブロックごとに、書換えデータと被書換えデータとの間に差異があるか否かが判定される。そして、書換えデータと被書換えデータとの間で対応する消去ブロックのデータに差異がある場合には、ツール300からECU100に対して、差異がある消去ブロックのデータ消去要求が送信されると共に、その消去ブロックに属する書込ブロックを書き込むためのデータが順次送信される。ECU100においては、ツール300からのデータ消去要求に応答して、消去ブロックのデータを消去すると共に、ツール300から順次送信されたデータを書込ブロックに書き込む。
 一方、書換えデータと被書換えデータとの間で対応する消去ブロックのデータに差異がない場合には、ツール300からECU100へのデータ消去要求及びデータ通信を行わず、次の消去ブロックの処理へと移行する。
 従って、制御パラメータの変更など、被書換えデータの一部分のみが変更された書換えデータでECU100のフラッシュROM130を書き換える場合、変更箇所を含む消去ブロックについて、フラッシュROM130のデータ消去及びデータ転送が行われる。このため、ツール300からECU100へと転送する情報の総量が減り、フラッシュROM130のデータ書換えに要する時間を短縮することができる。なお、フラッシュROM130のデータ書換えに要する時間は、ツール300からECU100へのデータ転送時間が過半数を占めるため、データ転送量の低減による効果は大であるといえる。
 要するに、書換えデータと被書換えデータとの間で差異がある消去ブロックについてのみ、データ消去及びデータ転送を行うことで、通信量の削減を通して、フラッシュROM130のデータ書換えに要する時間を短縮することができる。
 図7は、ECU100のフラッシュROM130のデータを書き換える、データ書換え処理の第2実施形態の一例を示す。データ書換え処理は、作業者がネットワークケーブル200を介してECU100とツール300とを接続した後、ツール300において、作業者が書換えデータ及び被書換えデータを指定して、所定の操作を行ったときに実行される。なお、以下の説明では、先の第1実施形態と共通する処理については、重複説明を排除する観点から、簡略化することとする(以下同様)。
 ステップ300では、ツール300のプロセッサ310が、ECU100に対して、フラッシュROM130における消去ブロックEBxのデータ消去を要求する。
 ステップ400では、ECU100のプロセッサ110が、ツール300からの消去要求に応答して、図8に示すように、フラッシュROM130の消去ブロックEBxに書き込まれている書込ブロックWByのデータをRAM140に退避(コピー)する。
 ステップ401では、ECU100のプロセッサ110が、フラッシュROM130における消去ブロックEBxのデータを消去する。
 ステップ402では、ECU100のプロセッサ110が、ツール300に対して、フラッシュROM130における消去ブロックEBxのデータ消去が終了したことを通知する。
 ステップ301では、ツール300のプロセッサ310が、公知のハッシュ関数を使用して、書換えデータの消去ブロックEBxに属する各書込ブロックWByのデータのハッシュ値を順次算出する。そして、プロセッサ310は、書込ブロックWByのデータから算出したハッシュ値を記憶媒体に一時的に記憶させておく。
 ステップ302では、ツール300のプロセッサ310が、ECU100に対して、例えば、書込ブロックWByのアドレスを指定することで、フラッシュROM130に書き込まれている被書換えデータにおける書込ブロックWByのデータのハッシュ値を要求する。
 ステップ403では、ECU100のプロセッサ110が、ツール300からのハッシュ値の要求に応答して、フラッシュROM130に書き込まれている被書換えデータの指定アドレスから始まる書込ブロックWByのデータのハッシュ値を算出する。ここで、プロセッサ110は、ツール300においてハッシュ値の比較が可能となるように、ツール300と同一のハッシュ関数を使用してハッシュ値を算出する。そして、プロセッサ110は、書込ブロックWByから算出したハッシュ値をツール300に返送する。
 ステップ303では、ツール300のプロセッサ310が、記憶媒体に記憶されているハッシュ値とECU100から返送されたハッシュ値とを比較することで、2つのハッシュ値に差異があるか否かを判定する。即ち、プロセッサ310は、書換えデータと被書換えデータとの間で、対応する書込ブロックのデータに違いがあるか否か、要するに、同一性があるか否かを判定する。そして、プロセッサ310は、2つのハッシュ値に差異があると判定すれば処理をステップ304へと進める一方(Yes)、2つのハッシュ値に差異がないと判定すれば処理をステップ305へと進める(No)。
 ステップ304では、ツール300のプロセッサ310が、書換えデータから書込ブロックWByのデータを順次抽出し、これをECU100に対して送信する。
 ステップ404では、ECU100のプロセッサ110が、ツール300から受信したデータをフラッシュROM130の書込ブロックWByに書き込む。その後、プロセッサ110は、処理をステップ406へと進める。
 ステップ305では、ツール300のプロセッサ310が、ECU100に対して、RAM140に退避してある消去ブロックEBxのデータについて、書込ブロックWByのデータをフラッシュROM130の書込ブロックWByに書き込むことを要求する。
 ステップ405では、ECU100のプロセッサ110が、ツール300からの書込み要求に応答して、RAM140に退避してある消去ブロックEBxのデータについて、書込ブロックWByのデータをフラッシュROM130の書込ブロックWByに書き込む。
 ステップ406では、ECU100のプロセッサ110が、ツール300に対して、書込ブロックWByのデータの書き込みが終了したことを通知する。
 ステップ306では、ツール300のプロセッサ310が、ECU100からの通知に応答して、例えば、書込ブロックWBmまで処理したか否かを介して、消去ブロックEBxへのデータ書込みが終了したか否かを判定する。そして、プロセッサ310は、データ書込みが終了したと判定すれば消去ブロックEBxの処理を終了させる一方(Yes)、データ書込みが終了していないと判定すれば処理をステップ301へと戻す(No)。
 かかるデータ書換え処理の第2実施形態によれば、ECU100は、ツール300からの消去要求に応答して、フラッシュROM300の消去ブロックEBxのデータをRAM140に退避させてから、消去ブロックEBxのデータを消去する。その後、データの同一性を評価可能なハッシュ値を使用して、書換えデータの書込ブロックWByと被書換えデータの書込ブロックWByとの間に差異があるか否かが判定される。そして、書換えデータと被書換えデータとの間に差異がある場合には、ツール300からECU100へと送信された書込ブロックWByのデータがフラッシュROM130に書き込まれる。一方、書換えデータと被書換えデータとの間に差異がない場合には、RAM140に退避させてある書込ブロックWByのデータがフラッシュROM130に書き込まれる。
 従って、ツール300とECU100との間で送受信されるデータは、各種の要求及び応答を除き、書換えデータと被書換えデータとの間で差異がある書込データWByのみとなる。このため、先の第1実施形態と比べて、ツール300からECU100へと送信されるデータの総量が更に減り、データ転送時間の更なる短縮により、フラッシュROM130のデータ書換えに要する時間をより短縮することができる。
 ECU100において、フラッシュROM130からRAM140へのデータ退避に要する時間と、RAM140のデータをフラッシュROM130に書き込むのに要する時間との和は、同一サイズのデータをツール300からECU100へと送信するのに要する時間よりも短い。なぜならば、ECU100の内部でのデータ転送速度は、ツール300からECU100へのデータ転送速度よりも速いためである。このため、ツール300とECU100との間で送受信される要求及び応答が多少増えても、ツール300からECU100へと送信されるデータが減るため、先の第1実施形態と比較して、フラッシュROM130のデータ書換えに要する時間が短くなる。
 図9は、ECU100のフラッシュROM130のデータを書き換える、データ書換え処理の第3実施形態の一例を示す。データ書換え処理は、作業者がネットワークケーブル200を介してECU100とツール300とを接続した後、ツール300において、作業者が書換えデータ及び被書換えデータを指定して、所定の操作を行ったときに実行される。
 データ書換え処理の第3実施形態の前提として、ツール300のストレージ330には、消去ブロックEBxごとに、書換えデータと被書換えデータとの間に差異があるか否かを特定するためのレコードが格納されたデータベースが構築されている。なお、データベースにおいては、書込ブロックWByごとに、書換えデータと被書換えデータとの間に差異があるか否かを特定するためのレコードを格納しておいてもよい。
 ステップ500では、ツール300のプロセッサ310が、ECU100に対して、被書換えデータを識別するためのデータ識別情報を要求する。
 ステップ600では、ECU100のプロセッサ110が、例えば、フラッシュROM130に書き込まれている被書換えデータからデータ識別情報を読み出し、これをツール300へと返送する。
 ステップ501では、ツール300のプロセッサ310が、ECU100から返送されたデータ識別情報に基づいて、ECU100のフラッシュROM130に書き込まれている被書換えデータを特定する。
 ステップ502では、ツール300のプロセッサ310が、ストレージ330のデータベースを参照し、書換えデータと被書換えデータとの差分情報、即ち、どの消去ブロックEBxに差異があるかを特定するための情報を算出する。具体的には、プロセッサ310は、データベースを参照し、書換えデータのデータ識別情報及び被書換えデータの識別情報により特定されるレコードを検索する。そして、プロセッサ310は、そのレコードの内容を読み出し、書換えデータ及び被書換えデータの対応する消去ブロックEBxを比較することで、差分情報を生成する。
 ステップ503では、ツール300のプロセッサ310が、書換えデータと被書換えデータとの間で差異がある消去ブロックEBxについて、ECU100に対してフラッシュROM130の消去ブロックEBxのデータ消去を順次要求する。
 ステップ601では、ECU100のプロセッサ110が、ツール300からの消去要求に応答して、フラッシュROM130の消去ブロックEBxのデータを消去する。
 ステップ602では、ECU100のプロセッサ110が、ツール300に対して、フラッシュROM130の消去ブロックEBxのデータ消去が終了したことを通知する。
 ステップ504では、ツール300のプロセッサ310が、ECU100からの通知に応答して、書込みデータから消去ブロックEBxに属する書込ブロックWByのデータを順次抽出し、これをECU100に対して送信する。
 ステップ603では、ECU100のプロセッサ110が、ツール300から受信したデータをフラッシュROM130の書込ブロックWByに書き込む。
 ステップ604では、ECU100のプロセッサ110が、ツール300に対して、フラッシュROM130の書込ブロックWByへのデータ書き込みが終了したことを通知する。
 ステップ505では、ツール300のプロセッサ310が、ECU100からの通知に応答して、消去ブロックEBxへのデータの書込みが終了したか否かを判定する。そして、プロセッサ310は、データ書込みが終了したと判定すれば処理をステップ506へと進める一方(Yes)、データ書込みが終了していないと判定すれば処理をステップ504へと戻す(No)。
 ステップ506では、ツール300のプロセッサ310が、書換えデータと被書換えデータとの間で差異があるすべての消去ブロックEBxについて処理をしたか否かを介して、すべての差分の書込みが終了したか否かを判定する。そして、プロセッサ310は、すべての差分の書込みが終了したと判定すればデータ書換え処理を終了させる一方(Yes)、すべての差分の書込みが終了していないと判定すれば処理をステップ503へと戻す(No)。
 かかるデータ書換え処理の第3実施形態によれば、ツール300において、ストレージ330のデータベースが参照され、書換えデータと被書換えデータとの間の差分情報が算出される。そして、差分情報により特定される、書換えデータと被書換えデータとの間で差異がある消去ブロックEBxについて、フラッシュROM130の消去ブロックEBxのデータ消去、及び、ツール300からECU100への書込ブロックWByのデータ転送が行われる。従って、先の第1実施形態及び第2実施形態とは異なり、書換えデータと被書換えデータとの同一性を評価するためにハッシュ値を算出する必要がなく、第2実施形態よりも、フラッシュROM130のデータ書換えに要する時間を短縮することができる。
 書換えデータと被書換えデータとの間で差異がある消去ブロックEBxを書き換えるとき、先の第2実施形態のように、消去ブロックEBxのデータをRAM140に退避し、ツール300からECU100に差異がある書込ブロックWByのデータのみを送信して、フラッシュROM130のデータを書き換えるようにしてもよい。この場合には、ツール300のストレージ330のデータベースには、書込ブロックWByごとに、書換えデータと被書換えデータとの間に差異があるか否かを特定するためのレコードを格納しておく必要がある。
 ここで、データ書換え処理の第1実施形態~第3実施形態に関し、技術的に矛盾がないことを条件として、各実施形態の技術的思想を適宜組み合わせたり、また、各実施形態の技術的思想を適宜入れ替えたりしてもよい。また、データ書換え処理の第1実施形態~第3実施形態においては、データ書換え処理はツール300が主体となっていたが、ECU100が主体となっていてもよい。以下、その具体例について説明する。
 図10及び図11は、第1実施形態及び第2実施形態の技術的思想を組み合わせた、データ書換え処理の第1応用実施形態の一例を示す。なお、第1応用実施形態は、データ書換え処理の主体をツール300にしたものである。
 ステップ700では、ツール300のプロセッサ310が、書換えデータにおける消去ブロックEBxのデータのハッシュ値を算出する。
 ステップ701では、ツール300のプロセッサ310が、ECU100に対して、被書換えデータにおける消去ブロックEBxのデータのハッシュ値を要求する。
 ステップ800では、ECU100のプロセッサ110が、ツール300からのハッシュ値の要求に応答して、被書換えデータにおける消去ブロックEBxのデータのハッシュ値を算出する。そして、プロセッサ110は、消去ブロックEBxから算出したハッシュ値をツール300に返送する。
 ステップ702では、ツール300のプロセッサ310が、対応する消去ブロックEBxについて、書換えデータのハッシュ値と被書換えデータのハッシュ値との間に差異があるか否かを判定する。そして、プロセッサ310は、2つのハッシュ値に差異があると判定すれば処理をステップ703へと進める一方(Yes)、2つのハッシュ値に差異がないと判定すれば消去ブロックEBxの処理を終了させる(No)。
 ステップ703では、ツール300のプロセッサ310が、ECU100に対して、フラッシュROM130における消去ブロックEBxのデータ消去を要求する。
 ステップ801では、ECU100のプロセッサ110が、ツール300からの消去要求に応答して、フラッシュROM130の消去ブロックEBxに書き込まれているデータをRAM140に退避する。
 ステップ802では、ECU100のプロセッサ110が、フラッシュROM130における消去ブロックEBxのデータを消去する。
 ステップ803では、ECU100のプロセッサ110が、ツール300に対して、フラッシュROM130における消去ブロックEBxのデータ消去が終了したことを通知する。
 ステップ704では、ツール300のプロセッサ310が、公知のハッシュ関数を使用して、書換えデータの消去ブロックEBxに属する各書込ブロックWByのデータのハッシュ値を順次算出する。
 ステップ705では、ツール300のプロセッサ310が、ECU100に対して、被書換えデータにおける書込ブロックWByのデータのハッシュ値を要求する。
 ステップ804では、ECU100のプロセッサ110が、ツール300からのハッシュ値の要求に応答して、被書換えデータにおける書込ブロックWByのデータのハッシュ値を算出する。そして、プロセッサ110は、書込ブロックWByから算出したハッシュ値をツール300に返送する。
 ステップ706では、ツール300のプロセッサ310が、対応する書込ブロックWByについて、書換えデータのハッシュ値と被書換えデータのハッシュ値との間に差異があるか否かを判定する。そして、プロセッサ310は、2つのハッシュ値に差異があると判定すれば処理をステップ707へと進める一方(Yes)、2つのハッシュ値に差異がないと判定すれば処理をステップ708へと進める(No)。
 ステップ707では、ツール300のプロセッサ310が、書換えデータから書込ブロックWByのデータを順次抽出し、これをECU100に対して送信する。
 ステップ805では、ECU100のプロセッサ110が、ツール300から受信したデータをフラッシュROM130の書込ブロックWByに書き込む。その後、プロセッサ110は、処理をステップ807へと進める。
 ステップ708では、ツール300のプロセッサ310が、ECU100に対して、ROM140に退避してある消去ブロックEBxのデータについて、書込ブロックWByのデータをフラッシュROM130の書込ブロックWByに書き込むことを要求する。
 ステップ806では、ECU100のプロセッサ110が、ツール300からの書込み要求に応答して、RAM140に退避してある消去ブロックEBxのデータについて、書込ブロックWByのデータをフラッシュROM130の書込ブロックWByに書き込む。
 ステップ807では、ECU100のプロセッサ110が、ツール300に対して、書込ブロックWByのデータの書き込みが終了したことを通知する。
 ステップ709では、ツール300のプロセッサ310が、ECU100からの通知に応答して、消去ブロックEBxへのデータ書込みが終了したか否かを判定する。そして、プロセッサ310は、データ書込みが終了したと判定すれば消去ブロックEBxの処理を終了させる一方(Yes)、データ書込みが終了していないと判定すれば処理をステップ704へと戻す(No)。
 かかるデータ書換え処理の第1応用実施形態によれば、書換えデータと被書換えデータとの間で差異がある消去ブロックについて、各書込ブロックの同一性が評価される。そして、対応する書込ブロックに同一性があれば、RAM140に退避されたデータがフラッシュROM130に書き込まれ、対応する書込ブロックに同一性がなければ、ツール300からECU100に送信されたデータがフラッシュROM130に書き込まれる。
 従って、先の第1実施形態及び第2実施形態と比べて、ツール300からECU100へと送信されるデータの総量が更に減り、フラッシュROM130のデータ書込みに要する時間を短縮することができる。
 図12及び図13は、第1実施形態及び第2実施形態の技術的思想を組み合わせた、データ書換え処理の第2応用実施形態の一例を示す。なお、第2応用実施形態は、データ書換え処理の主体をECU100にしたものである。
 ステップ900では、ツール300のプロセッサ310が、書換えデータにおける消去ブロックEBxのデータのハッシュ値を算出する。
 ステップ901では、ツール300のプロセッサ310が、ECU100に対して、被書換えデータにおける消去ブロックEBxのデータ消去を要求すると共に、ステップ900で算出したハッシュ値を送信する。
 ステップ1000では、ECU100のプロセッサ110が、ツール300からの消去要求に応答して、被書換えデータにおける消去ブロックEBxのデータのハッシュ値を算出する。
 ステップ1001では、ECU100のプロセッサ110が、ツール300から受信したハッシュ値とステップ1000で算出したハッシュ値とを比較することで、2つのハッシュ値に差異があるか否かを判定する。そして、プロセッサ110は、2つのハッシュ値に差異があると判定すれば処理をステップ1002へと進める一方(Yes)、2つのハッシュ値に差異がないと判定すれば消去ブロックEBxの処理を終了させる(No)。
 ステップ1002では、ECU100のプロセッサ110が、フラッシュROM130の消去ブロックEBxに書き込まれているデータをRAM140に退避する。
 ステップ1003では、ECU100のプロセッサ110が、フラッシュROM130における消去ブロックEBxのデータを消去する。
 ステップ1004では、ECU100のプロセッサ110が、RAM140に退避してある消去ブロックEBxのデータから、書込ブロックWByのデータのハッシュ値を順次算出する。
 ステップ1005では、ECU100のプロセッサ110が、ツール300に対して、書換えデータの消去ブロックEBxに属する書込ブロックWByのデータのハッシュ値を要求する。
 ステップ902では、ツール300のプロセッサ310が、ECU100からのハッシュ値の要求に応答して、書換えデータにおける書込ブロックWByのデータのハッシュ値を算出する。そして、プロセッサ310は、書込ブロックWByから算出したハッシュ値をECU100に返送する。
 ステップ1006では、ECU100のプロセッサ110が、対応する書込ブロックWByについて、書換えデータのハッシュ値と被書換えデータのハッシュ値との間に差異があるか否かを判定する。そして、プロセッサ110は、2つのハッシュ値に差異があると判定すれば処理をステップ1007へと進める一方(Yes)、2つのハッシュ値に差異がないと判定すれば処理をステップ1009へと進める(No)。
 ステップ1007では、ECU100のプロセッサ110が、ツール300に対して、書換えデータにおける書込ブロックWByのデータを要求する。
 ステップ903では、ツール300のプロセッサ310が、ECU100からの要求に応答して、書換えデータから書込ブロックWByのデータを順次抽出し、これをECU100に対して送信する。
 ステップ1008では、ECU100のプロセッサ110が、ツール300から受信したデータをフラッシュROM130の書込ブロックWByに書き込む。その後、プロセッサ110は、処理をステップ1010へと進める。
 ステップ1009では、ECU100のプロセッサ110が、RAM140に退避してある消去ブロックEBxのデータについて、書込ブロックWByのデータをフラッシュROM130の書込ブロックWByに書き込む。
 ステップ1010では、ECU100のプロセッサ110が、消去ブロックEBxへのデータ書込みが終了したか否かを判定する。そして、プロセッサ110は、データ書込みが終了したと判定すれば消去ブロックEBxの処理を終了させる一方(Yes)、データ書込みが終了していないと判定すれば処理をステップ1004へと戻す(No)。
 かかるデータ書換え処理の第2応用実施形態によれば、データ書込み処理は、基本的な消去ブロックEBxの消去要求,書込みブロックWByのハッシュ値の返送及び書込みブロックWByの送信を除き、ECU100において行われる。このため、例えば、機能追加などによりデータ書込み処理を変更しても、ツール300における処理の変更を要しない。但し、例えば、書換えデータにおける消去ブロックEBx,書込ブロックWByのデータのハッシュ値を算出するハッシュ関数を変更する場合には、ツール300における処理も変更する必要があるが、基本的な処理には影響が少ないため、その変更箇所を少なくすることができる。ツール300は、多様なECU100に対して共通して使用されるため、このような効果は有用である。なお、他の作用及び効果は、先の第1応用実施形態と同様であるので、必要があればその説明を参照されたい。
 このように、データ書換え処理の第1実施形態~第3実施形態の技術的思想を適宜組み合わせたり、また、各実施形態の技術的思想を適宜入れ替えたりすることで、多様な作用及び効果を奏する、データ書換えシステムを構築することができる。
 なお、第1実施形態及び第2実施形態において、消去ブロックEBx及び書込ブロックWByのデータのハッシュ値を前もって算出しておき、これを書換えデータ及び被書換えデータに関連付けて記憶させておいてもよい。このようにすれば、フラッシュROM130のデータを書き換えるとき、ハッシュ値を算出する処理が不要となるため、ツール300及びECU100の負荷を低減することができる。
 また、ECU100のフラッシュROM130へのデータ書込み処理は、ECU100が車両に搭載された状態で行うようにしてもよい。このようにすれば、例えば、機能拡張などにより制御プログラムなどが変更されても、車両に搭載されたECU100のデータを書き換えることができる。
  100 ECU
  110 プロセッサ
  120 通信回路
  130 フラッシュROM(不揮発性メモリ)
  140 RAM(揮発性メモリ)
  200 ネットワークケーブル
  300 ツール
  310 プロセッサ
  320 通信回路

Claims (14)

  1.  消去ブロック単位でデータを消去可能であると共に、前記消去ブロックよりも小さい書込ブロック単位でデータを書込み可能な不揮発性メモリと、プロセッサと、を有する電子制御装置であって、
     前記プロセッサが、外部からのデータ書換え要求に応答して、前記不揮発性メモリの一部のデータを消去ブロック単位で消去し、前記不揮発性メモリの一部に書込ブロック単位でデータを書き込むように構成された、
     ことを特徴とする電子制御装置。
  2.  前記プロセッサが、前記消去ブロック単位で、前記不揮発性メモリに書き込むデータの識別情報と、前記不揮発性メモリに書き込まれているデータの識別情報と、の同一性を判定し、前記同一性がないと判定された消去ブロックについて、データの消去及び書込みを実行するように構成された、
     ことを特徴とする請求項1に記載の電子制御装置。
  3.  前記データの識別情報は、ハッシュ値である、
     ことを特徴とする請求項2に記載の電子制御装置。
  4.  前記プロセッサが、
     前記消去ブロック単位で、前記不揮発性メモリに書き込まれているデータを揮発性メモリに退避してから消去し、
     前記書込ブロック単位で、前記不揮発性メモリに書き込むデータの識別情報と、前記揮発性メモリに退避されたデータの識別情報と、の同一性を判定し、
     前記同一性がある場合、前記揮発性メモリに退避されたデータを前記不揮発性メモリに書き込む一方、前記同一性がない場合、外部からのデータを前記不揮発性メモリに書き込むように構成された、
     ことを特徴とする請求項1に記載の電子制御装置。
  5.  前記データの識別情報は、ハッシュ値である、
     ことを特徴とする請求項4に記載の電子制御装置。
  6.  前記電子制御装置に対して接続され、プロセッサを有するツールを更に含み、
     前記ツールのプロセッサは、前記不揮発性メモリに書き込むデータと前記不揮発性メモリに書き込まれているデータとの差分情報に基づいて、前記電子制御装置にデータ書換え要求を送信するように構成された、
     ことを特徴とする請求項1に記載の電子制御装置。
  7.  前記ツールのプロセッサは、前記不揮発性メモリに書き込むデータと前記不揮発性メモリに書き込まれているデータとの間で同一性がない消去ブロック単位のデータについて、前記電子制御装置にデータ書換え要求を送信するように構成された、
     ことを特徴とする請求項6に記載の電子制御装置。
  8.  前記ツールのプロセッサは、前記不揮発性メモリに書き込むデータと前記不揮発性メモリに書き込まれているデータとの差分情報が格納されたデータベースを参照し、前記電子制御装置から送信されたデータの識別情報に応じた差分情報を求めるように構成された、
     ことを特徴とする請求項6に記載の電子制御装置。
  9.  消去ブロック単位でデータを消去可能であると共に、前記消去ブロックよりも小さい書込ブロック単位でデータを書込み可能な不揮発性メモリを有する電子制御装置のプロセッサが、
     外部からのデータ書換え要求に応答して、前記不揮発性メモリの一部のデータを消去ブロック単位で消去し、
     前記不揮発性メモリの一部に書込ブロック単位でデータを書き込む、
     ことを特徴とするデータ書換え方法。
  10.  前記電子制御装置のプロセッサが、
     前記消去ブロック単位で、前記不揮発性メモリに書き込むデータの識別情報と、前記不揮発性メモリに書き込まれているデータの識別情報と、の同一性を判定し、
     前記同一性がないと判定した消去ブロックについて、データの消去及び書き込みを実行する、
     ことを特徴とする請求項9に記載のデータ書換え方法。
  11.  前記電子制御装置のプロセッサが、
     前記消去ブロック単位で、前記不揮発性メモリに書き込まれているデータを揮発性メモリに退避してから消去し、
     前記書込ブロック単位で、前記不揮発性メモリに書き込むデータの識別情報と、前記揮発性メモリに退避されたデータの識別情報と、の同一性を判定し、
     前記同一性がある場合、前記揮発性メモリに退避されたデータを前記不揮発性メモリに書き込む一方、前記同一性がない場合、外部からのデータを前記不揮発性メモリに書き込む、
     ことを特徴とする請求項9に記載のデータ書換え方法。
  12.  前記電子制御装置に対して接続されるツールのプロセッサが、
     前記不揮発性メモリに書き込むデータと前記不揮発性メモリに書き込まれているデータとの差分情報に基づいて、前記電子制御装置にデータ書換え要求を送信する、
     ことを特徴とする請求項9に記載のデータ書換え方法。
  13.  前記ツールのプロセッサが、
     前記不揮発性メモリに書き込むデータと前記不揮発性メモリに書き込まれているデータとの間で同一性がない消去ブロック単位のデータについて、前記電子制御装置にデータ書換え要求を送信する、
     ことを特徴とする請求項12に記載のデータ書換え方法。
  14.  前記ツールのプロセッサが、
     前記不揮発性メモリに書き込むデータと前記不揮発性メモリに書き込まれているデータとの差分情報が格納されたデータベースを参照し、前記電子制御装置から送信されたデータの識別情報に応じた差分情報を求める、
     ことを特徴とする請求項12に記載のデータ書換え方法。
PCT/JP2014/054484 2013-03-21 2014-02-25 電子制御装置及びデータ書換え方法 Ceased WO2014148208A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201480016490.2A CN105144299B (zh) 2013-03-21 2014-02-25 电子控制装置以及数据改写方法
GB1516785.1A GB2526992B (en) 2013-03-21 2014-02-25 Electronic control unit and method for rewriting data
US14/778,896 US9996296B2 (en) 2013-03-21 2014-02-25 Electronic control unit and method for rewriting data
MX2015012412A MX361290B (es) 2013-03-21 2014-02-25 Unidad de control electrónico y método para reescribir datos.

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013-058175 2013-03-21
JP2013058175A JP6030485B2 (ja) 2013-03-21 2013-03-21 電子制御装置

Publications (1)

Publication Number Publication Date
WO2014148208A1 true WO2014148208A1 (ja) 2014-09-25

Family

ID=51579900

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/054484 Ceased WO2014148208A1 (ja) 2013-03-21 2014-02-25 電子制御装置及びデータ書換え方法

Country Status (6)

Country Link
US (1) US9996296B2 (ja)
JP (1) JP6030485B2 (ja)
CN (1) CN105144299B (ja)
GB (1) GB2526992B (ja)
MX (1) MX361290B (ja)
WO (1) WO2014148208A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6308074B2 (ja) * 2014-08-27 2018-04-11 株式会社デンソー マイクロコンピュータ
JP6699324B2 (ja) 2016-04-26 2020-05-27 株式会社デンソー 電子制御装置及びデータ書換えシステム
JP6913621B2 (ja) * 2017-12-19 2021-08-04 日立Astemo株式会社 自動車用電子制御装置
JP2021043843A (ja) * 2019-09-13 2021-03-18 日立オートモティブシステムズ株式会社 転送装置、電子制御装置及びこれを製造する方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06162786A (ja) * 1992-11-18 1994-06-10 Hitachi Ltd フラッシュメモリを用いた情報処理装置
JPH08202626A (ja) * 1995-01-31 1996-08-09 Isuzu Motors Ltd メモリ制御装置
JP2003131898A (ja) * 2001-10-24 2003-05-09 Sharp Corp 電子機器、及びフラッシュメモリの書き換えシステム
JP2009252294A (ja) * 2008-04-07 2009-10-29 Spansion Llc メモリコントローラ、メモリシステム、及びメモリデバイスへのデータの書込方法
JP2010009164A (ja) * 2008-06-25 2010-01-14 Kyocera Mita Corp 記録装置、画像形成装置、及びオプション装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08315596A (ja) * 1995-05-12 1996-11-29 Nec Corp 半導体記憶装置
JPH09128229A (ja) 1995-11-06 1997-05-16 Denso Corp 電子制御装置
JPH11141391A (ja) * 1997-11-06 1999-05-25 Hitachi Ltd 自動車用制御装置
JP2000192844A (ja) * 1998-12-25 2000-07-11 Hitachi Ltd エンジン制御装置
JP2002014833A (ja) * 2000-06-30 2002-01-18 Konica Corp フラッシュメモリの書き換え方式、制御装置、画像形成装置及びプログラム更新方式
JP2003272389A (ja) * 2002-03-20 2003-09-26 Sony Corp データ記憶回路及び同データ記憶回路におけるデータ書込み方法及びデータ記憶装置
US20080132204A1 (en) * 2006-12-04 2008-06-05 Motorola, Inc. System and method for updating at least one attribute stored at a mobile station
US8219781B2 (en) * 2008-11-06 2012-07-10 Silicon Motion Inc. Method for managing a memory apparatus, and associated memory apparatus thereof
US8769188B2 (en) * 2009-11-18 2014-07-01 Mediatek Inc. Nonvolatile memory controller and method for writing data to nonvolatile memory
US8406059B2 (en) * 2009-12-24 2013-03-26 Samsung Electronics Co., Ltd. Nonvolatile semiconductor memory devices, data updating methods thereof, and nonvolatile semiconductor memory systems
EP2653970A4 (en) * 2010-12-15 2014-01-29 Fujitsu Ltd DATA TRANSFER PROGRAM, COMPUTERS AND DATA TRANSMISSION PROCEDURES
US9032137B2 (en) * 2012-11-21 2015-05-12 Intel Corporation Flexible wear management for non-volatile memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06162786A (ja) * 1992-11-18 1994-06-10 Hitachi Ltd フラッシュメモリを用いた情報処理装置
JPH08202626A (ja) * 1995-01-31 1996-08-09 Isuzu Motors Ltd メモリ制御装置
JP2003131898A (ja) * 2001-10-24 2003-05-09 Sharp Corp 電子機器、及びフラッシュメモリの書き換えシステム
JP2009252294A (ja) * 2008-04-07 2009-10-29 Spansion Llc メモリコントローラ、メモリシステム、及びメモリデバイスへのデータの書込方法
JP2010009164A (ja) * 2008-06-25 2010-01-14 Kyocera Mita Corp 記録装置、画像形成装置、及びオプション装置

Also Published As

Publication number Publication date
CN105144299B (zh) 2021-01-12
GB2526992A (en) 2015-12-09
CN105144299A (zh) 2015-12-09
GB201516785D0 (en) 2015-11-04
MX361290B (es) 2018-12-03
JP2014182859A (ja) 2014-09-29
MX2015012412A (es) 2016-07-15
GB2526992B (en) 2020-05-06
US20160048336A1 (en) 2016-02-18
US9996296B2 (en) 2018-06-12
JP6030485B2 (ja) 2016-11-24

Similar Documents

Publication Publication Date Title
KR102567097B1 (ko) 임베디드 시스템의 부트 롬 업데이트 방법 및 부팅 방법
US9858008B2 (en) Method to reduce flash memory IOs with host maintained address mapping table
US11681463B2 (en) Offload defrag operation for host-managed storage
US20190391761A1 (en) Storage device with a callback response
CN105701021A (zh) 数据储存装置及其数据写入方法
US11360698B2 (en) Electronic control unit for vehicle and method of writing data
JP6030485B2 (ja) 電子制御装置
JP6913621B2 (ja) 自動車用電子制御装置
CN103890731A (zh) 汽车用电子控制装置以及数据通信方法
JP2011175632A (ja) 半導体記憶装置及び半導体記憶装置の制御方法
KR20170139730A (ko) 데이터 저장 장치 및 그것의 동작 방법
JP2016170471A (ja) 電子制御装置
US20140219041A1 (en) Storage device and data processing method thereof
US20170220252A1 (en) Flash emulated eeprom wrapper
US20170200503A1 (en) Storage apparatus, flash memory control apparatus, and program
JP2012027806A (ja) メモリ管理装置およびメモリ管理方法
US20250190337A1 (en) Electronic control device and write control method
JP4973844B2 (ja) オブジェクト指向型車両用制御装置
JP5180726B2 (ja) 記憶装置およびデータ書き込み制御方法
JP5787095B2 (ja) 不揮発性メモリへのデータ記憶方法
US11698732B2 (en) Storage provisioning in a data storage device
JP5332800B2 (ja) 記憶装置
CN103942504B (zh) 可携式储存装置及其数据安全控制方法
CN115658155A (zh) 一种新能源汽车整车控制器双系统切换的方法及系统
CN121900780A (zh) 一种车辆的软件刷写方法、终端设备、车辆及存储介质

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201480016490.2

Country of ref document: CN

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

Ref document number: 14768514

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
WWE Wipo information: entry into national phase

Ref document number: MX/A/2015/012412

Country of ref document: MX

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 14778896

Country of ref document: US

ENP Entry into the national phase

Ref document number: 1516785

Country of ref document: GB

Kind code of ref document: A

Free format text: PCT FILING DATE = 20140225

WWE Wipo information: entry into national phase

Ref document number: 1516785.1

Country of ref document: GB

122 Ep: pct application non-entry in european phase

Ref document number: 14768514

Country of ref document: EP

Kind code of ref document: A1