WO2014147906A1 - データ記憶装置、データの記憶方法および車載用制御装置 - Google Patents

データ記憶装置、データの記憶方法および車載用制御装置 Download PDF

Info

Publication number
WO2014147906A1
WO2014147906A1 PCT/JP2013/083393 JP2013083393W WO2014147906A1 WO 2014147906 A1 WO2014147906 A1 WO 2014147906A1 JP 2013083393 W JP2013083393 W JP 2013083393W WO 2014147906 A1 WO2014147906 A1 WO 2014147906A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
block
storage
management data
storage block
Prior art date
Application number
PCT/JP2013/083393
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 EP13878987.0A priority Critical patent/EP2977907B1/en
Priority to CN201380074421.2A priority patent/CN105009096B/zh
Priority to US14/774,541 priority patent/US9792070B2/en
Publication of WO2014147906A1 publication Critical patent/WO2014147906A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Definitions

  • the present invention relates to a data storage device, a data storage method, and a vehicle-mounted control device.
  • the flash memory is divided into a plurality of storage blocks. Data can be written for each storage unit (for example, record) in the storage block, or data can be erased for each storage block. If this occurs, abnormal termination of data writing or erasing may occur, which may lead to data loss.
  • An object of the present invention is to provide a possible data storage device, a data storage method, and a vehicle-mounted control device.
  • the present invention has a plurality of storage blocks, and data cannot be overwritten / updated. When erasing data, it is erased in units of the storage blocks.
  • a data storage device that performs data storage control on a memory that needs to be performed, and includes a memory having a plurality of storage blocks provided with actual data areas for storing actual data, and writing and reading to and from the memory And a memory control unit that performs at least one control.
  • a management data area for storing management data for management is provided in the memory, and the management data area includes management data in writing indicating start of writing of actual data, effective management data indicating completion of writing of actual data, and The management data before erasure indicating that the stored actual data can be erased can be stored.
  • the memory control unit determines the storage block storing the latest data based on the storage state of the management data in the management data area.
  • the present invention it is possible to determine a storage block having the latest data with higher accuracy and to provide a highly reliable data storage device even after a power interruption, etc., even when a power interruption occurs.
  • FIG. 1 is a block diagram illustrating an outline of a microcomputer including a data storage device according to the embodiment.
  • FIG. 2 is a block diagram showing an outline of a flash memory as a data storage device according to the embodiment.
  • FIG. 3 is a block diagram illustrating an outline of a storage block according to the embodiment.
  • FIG. 4 is an explanatory diagram showing a series of data update processing according to the embodiment.
  • FIG. 5 is an explanatory diagram illustrating a change in the state of the storage block accompanying the execution of the data update process according to the embodiment.
  • FIG. 6 is an explanatory diagram illustrating an example of a valid block determination process according to the embodiment.
  • FIG. 7 is an explanatory diagram illustrating an example of a valid block determination process according to the embodiment.
  • FIG. 1 is a block diagram illustrating an outline of a microcomputer including a data storage device according to the embodiment.
  • FIG. 2 is a block diagram showing an outline of a flash memory as a data storage device according to the embodiment
  • FIG. 8 is an explanatory diagram illustrating an example of a valid block determination process according to the embodiment.
  • FIG. 9 is an explanatory diagram illustrating an example of a valid block determination process according to the embodiment.
  • FIG. 10 is an explanatory diagram showing a change in the state of the storage block accompanying the execution of the data update process according to the modification.
  • FIG. 11 is an explanatory diagram illustrating a relationship between data update processing and instantaneous interruption timing according to the modification.
  • FIG. 12 is an explanatory diagram illustrating an example of a flow of a writing process according to the embodiment.
  • FIG. 13 is an explanatory diagram illustrating an example of a flow of a reading process according to the embodiment.
  • a flash memory is taken as an example of a storage medium of a data storage device, and the flash memory is described as being provided in a microcomputer.
  • the present invention is not limited to the following embodiments.
  • FIG. 1 is a block diagram showing an outline of a microcomputer 10 having a flash memory 4 as a data storage medium
  • FIG. 2 is a block diagram showing an outline of the flash memory 4.
  • the microcomputer 10 is an example of a data storage device, and is provided in an electronic control unit (ECU) that controls an automobile engine.
  • the electronic control unit (ECU) is an example of a vehicle-mounted control device.
  • the microcomputer 10 that is a data storage device includes a CPU 1, a RAM 2, an R0M 3, and a flash memory 4, which are examples of a memory control unit, and each is connected via an internal bus 9. is doing.
  • the RAM 2 has an area for storing target data and an area for storing the same data as the data stored in the management data area 81 set in the storage block 8 (FIG. 2) of the flash memory 4.
  • the ROM 3 stores flash memory control software 31 and application software 32.
  • the flash memory control software 31 is firmware for the flash memory 4, and is software for performing control such as writing and erasing data in the flash memory 4.
  • the application software 32 is function control software that performs control processing of an electronic device or the like mounted on the automobile, and is software that controls the engine, for example.
  • the flash memory 4 is a non-volatile memory that can perform additional storage of data but cannot overwrite and update data, if there is no unwritten area in the storage block 8 being written, After writing some necessary data (for example, the latest data) in the data stored in the original storage block 8 to another unwritten storage block 8, the original storage block 8 is erased collectively. It is configured.
  • the flash memory 4 can rewrite “1” to “0” for each storage unit (for example, record) smaller than the storage block unit, but “0” is changed to “1”. Rewriting can be performed only in block units (units for batch erasure).
  • the flash memory 4 manages and controls a storage area 6 provided with a plurality of storage blocks 8,... (FIG. 2), an update operation for the storage area 6, and the like. And a management unit 5.
  • the flash memory 4 here includes not only the storage medium but also a memory control function for performing control such as simple writing and reading with respect to the storage medium based on an instruction from the outside. That is, the management unit 5 can be an example of a memory control unit.
  • the management unit 5 performs data writing, data reading, and data writing to a plurality of storage blocks 8 set in the storage area 6 in accordance with a data write request, a data read request, a data erase request, and the like from the CPU 1. Delete data.
  • FIG. 3 is a block diagram illustrating an outline of a storage block according to the embodiment.
  • the storage block 8 is divided into a management data area 81 and an actual data area 82.
  • the actual data area 82 for example, driving history data stored in the RAM 2, various learning values of control data, abnormal value data (diagnostic data, freeze frame data) detected by various sensors, etc. It is stored at a predetermined timing.
  • the management data area 81 is further divided into four small areas as divided areas, and the following four types of management data are stored in correspondence with each small area on a one-to-one basis. That is, the following data is stored from the left side in the four small areas of the management data area 81 in FIG. (1) Effective management data indicating completion of writing of actual data. (2) Management data being written indicating that actual data is being written (write start). (3) Pre-erase management data indicating the start of erasure of the storage block (during erasure) and indicating that the stored data is ready to be erased. (4) Erased management data indicating completion of erasure of the storage block.
  • the actual data in the above (1) and (2) is the data to be written to the new storage block 8 (new storage block) when the storage block 8 to be written is changed (some necessary data in the above existing data). Or new data).
  • the pre-erase management data (3) may not be erased immediately after the actual data (2) is written. Therefore, even if the stored actual data is erased, It can be said that the management data indicates that the state is good (the preparation for erasure has been completed).
  • management data is not overwritten, but is written and stored in order in the four small areas.
  • the storage block 8 of the latest data that can be used after the power is restored. Can be determined. Also, it can be determined whether or not defective data is generated due to an instantaneous power interruption.
  • the flash memory 4 becomes highly reliable, and there is no risk of overwriting the storage block 8 by mistake, thereby shortening the life of the storage block 8 and thus the life of the flash memory 4.
  • FIG. 4 is an explanatory diagram illustrating a series of data update processing according to the embodiment
  • FIG. 5 is an explanatory diagram illustrating a change in the state of the storage block accompanying execution of the data update processing according to the embodiment.
  • the storage block 8 repeats five statuses while storing the management data.
  • the CPU 1 uses the flash memory control software 31 stored in the ROM 3 to obtain the management data stored in the management data area 81 via the management unit 5 and determine the state of the storage block 8. Can do.
  • the state of a certain storage block 8 is the state of an erased block in which all data in the actual data area 82 has been erased.
  • the management data area 81 has the erased management data (“erasure” in the fourth (rightmost) small area as shown in FIG. Only “done”) is stored.
  • the in-writing management data is stored in the management data area 81 of the storage block 8 and the new data for the actual data area 82 is stored in the storage block 8 which is an erased block.
  • the block is being written.
  • the storage block 8 newly stores the management data being written (“being written”) in the second small area of the management data area 81. As a result, “writing” and “erased” are stored.
  • the effective management data is stored in the management data area 81 of the storage block 8 as shown in FIG. To do. That is, as shown in FIG. 5C, in the normal state, the management data area 81 of the storage block 8 is newly added to the first (leftmost) small area of the management data area 81 with the effective management data ( “Valid”) is stored, and “valid”, “writing”, and “erased” are stored. Basically, the latest data is stored in this effective block.
  • management data before erasure is stored in the management data area 81 of the old storage block 8 and batch erasure is performed on the storage block 8 (management data area 81 and actual data area 82).
  • the memory block 8 is set as a pre-erase block.
  • the pre-erase management data (“before erase”) is stored in the third small area of the management data area 81 of the storage block 8, and the four small areas are All are buried.
  • the storage block 8 When the batch erasure is performed on the storage block 8, but the storage block 8 is not yet in a state where the process of making all the storage states “1” stored in the initial state (“0xFF”) is not performed. As shown in FIG. 4E, the storage block 8 is an indefinite block. As shown in FIG. 5E, no management data is stored in the management data area 81 of the storage block 8, and both the management data area 81 and the actual data area 82 are in an indefinite state.
  • the data erasure process takes a relatively long processing time in a series of data update processes, and at this time, an instantaneous power interruption is likely to occur.
  • the four small areas of the management data area 81 are sequentially displayed from the left side as “valid”, “during writing”, “before erasure”, and All the management data “erased” is stored (see FIG. 5D).
  • the power supply interruption etc. for example, only “valid” and “before erasure” are stored, and there may be an indefinite state in which management data is lost. Including such a case, as shown in FIG.
  • the data area 81 of the storage block 8 from which this data has been deleted is deleted.
  • the storage block 8 is made an erased block. That is, the actual data area 82 is in a state where data is erased and all “1” s are stored, and the management data area 81 is also erased in all four small areas, and is newly added to the fourth (one)
  • the deleted management data is stored in the small area on the rightmost side (see FIG. 5A).
  • 6 to 9 are explanatory diagrams illustrating an example of the effective block determination process according to the embodiment.
  • the storage block 8 having “valid” in the management data area 81 is picked up from the beginning to the end of the storage block 8 included in the flash memory 4 and stored as the latest data candidate.
  • the storage area may be a storage area provided appropriately in the flash memory 4 or a work area of the RAM 2.
  • the effective management data (“effective”) is stored in the first (leftmost) small area of the management data area 81, and the management data If there is a valid block that is a storage block 8 (see FIG. 5C) in which “valid”, “during writing”, and “erased” are stored, the storage block 8 is stored with the latest data. Block 8 can be determined.
  • the management data before erasure (“ “Effective” is also stored in the management data area 81 in the pre-erase block (see FIG. 5D), which is the storage block 8 in the pre-erase state where all the four small areas are filled. It is a storage block 8 that exists.
  • the write target block In such a case, the actual data may not be written correctly as shown in FIG. 8 in this case.
  • the storage block 8 (the block before erasure) in the state before the erasure in which all the four small areas of the management data area 81 are filled, not the new storage block 8 but the old storage block 8 before the change is regarded as the latest data. Can do.
  • management data (“valid”, “write” indicating that the status is valid)
  • the storage block 8 storing “medium” and “erased” when it is determined that there are two or more valid blocks), it can be treated as an error. In this case, it is desirable to be configured to notify an abnormal state.
  • the flash memory 4 divides the storage block 8 into the management data area 81 and the actual data area 82, and includes writing, reading, and erasing of data with respect to the storage block 8.
  • the configuration includes a management unit 5 that performs various types of management.
  • the management unit 5 stores, in the management data area 81 of the storage block 8, management data that is being written before starting to write the actual data, effective management data that is stored after the writing of the actual data is completed,
  • the management data before erasure stored before starting the erasing process of the block 8 and the erased management data stored after the erasing process of the storage block is completed are stored as management data, respectively.
  • a storage block storing the latest actual data among normal data is searched based on each management data.
  • the storage block 8 with the latest data or the storage block 8 with defective data can be determined after the power is restored. Can increase the sex.
  • FIG. 10 is an explanatory diagram showing changes in the state of the storage block 8 accompanying the execution of processing performed in parallel with respect to the plurality of storage blocks 8, and the first storage block 8a storing old data and The second storage block 8b to be newly used is processed as a pair at the time of writing, particularly when the write target is changed, and by using these management data, depending on whether or not there is a combination of management data that is not possible, The storage block 8 with new data or the storage block 8 with defective data is determined.
  • first storage block 8a data that has already been stored
  • second storage block 8b data that is written with new data
  • FIG. 10A in the state immediately before the start of writing, since the actual data has already been written in the first storage block 8a, in the management data area 81 in order from the left small area, “ The management data of “valid”, “writing”, and “erased” are stored. At this time, “erased” (erased management data) is stored in the fourth (rightmost) small area of the management data area 81 in the second storage block 8b to be written.
  • the first storage block 8a does not change, but the second storage block 8b has the actual data area 82 in which writing is being performed. Indefinite state. At this time, there is no change in the management data area 81, and “writing” is stored in the second small area from the left, and “erased” is stored in the rightmost small area.
  • the data stored in the first storage block 8a is invalidated. That is, as shown in the figure, in the management data area 81 of the first storage block 8a, the management data “before erasure” is stored in the third small area from the left. That is, management data is stored in all four small areas.
  • the second storage block 8b in which new data is stored is validated. That is, as shown in FIG. 10E, “valid” is stored in the first (leftmost) small area in the management data area 81. At this time, the second storage block 8b has “valid”, “write” in the management data area 81 in order from the left small area, like the first storage block 8a shown in FIGS. In the meantime, the management data of “erased” is stored.
  • the old data stored in the first storage block 8a is erased. That is, as shown in FIG. 10F, in the first storage block 8a, both the management data area 81 and the actual data area 82 are undefined. On the other hand, there is no change in the second storage block 8b.
  • the storage state of the first storage block 8a is changed to the state where all the initial states “1” are stored (“0xFF”), and the actual data is erased. “Erased” is stored in the fourth (rightmost) small area of the management data area 81 in one storage block 8a. Also at this time, there is no change in the second storage block 8b.
  • FIGS. 10F and 10G may be performed after the processes in FIGS. 10B to 10E, or at a different timing from those in FIGS. 10B to 10E. You may make it perform.
  • the first storage block 8a and the second storage block 8b are processed as a pair, and depending on the combination of storage states of the management data area 81 of these storage blocks 8, It is possible to determine whether data that can be used in a controllable manner is stored.
  • FIG. 11 is an explanatory diagram showing the relationship between the processing described in FIG. 10 and the instantaneous interruption timing.
  • (1) in the column indicating the block state indicates the first storage block 8a
  • the processing state is before writing, as the block state, the latest data at the present time is stored as valid data in the first storage block 8a, and from the data in the management data area 81, the first storage is performed. It is determined that the block 8a is a valid block and the second storage block 8b is an erased block (see FIG. 10A). If a power interruption occurs at this time, the storage block 8 to be read after the power is restored is the first storage block 8a which is a valid block. In this state, there is no storage block 8 to be erased.
  • the block state is determined from the data in the management data area 81, the first storage block 8a being a valid block, the second The storage block 8b is determined to be a writing block (see FIG. 10B). If a power interruption occurs at this time, the storage block 8 to be read is the first storage block 8a which is an effective block, and the storage block 8 to be erased has an instantaneous interruption during the writing process. The second storage block 8b is obtained.
  • the block status indicates that the first storage block 8a is a valid block and the second storage block 8b is a write from the data in the management data area 81.
  • the medium block is determined (see FIG. 10C). If a power interruption occurs at this time, the storage block 8 to be read is the first storage block 8a which is an effective block, and the storage block 8 to be erased has an instantaneous interruption during the writing process. The second storage block 8b is obtained.
  • the block status includes the management data From the data in the area 81, it is determined that the first storage block 8a is a pre-erase block and the second storage block 8b is a block being written (see FIG. 10C). If a power interruption occurs at this time, there is no valid block, so the storage block 8 to be read is the first storage block 8a that is the pre-erase block, and the storage block 8 to be erased is the write process. Becomes the second storage block 8b in which a momentary interruption occurs in the middle.
  • the first storage block 8a is a pre-erase block from the data in the management data area 81 as a block state.
  • the second storage block 8b is determined as a valid block (see FIG. 10 (e)). If a power interruption occurs at this time, the storage block 8 to be read is the second storage block 8b which is a valid block, and the storage block 8 to be erased stores the latest data in the second storage block 8b. Thus, the first storage block 8a is stored which stores old data that has been used.
  • the first storage block 8a is an undefined block from the data in the management data area 81.
  • the two storage blocks 8b are determined to be valid blocks (see FIG. 10F). If a power interruption occurs at this time, the storage block 8 to be read is the second storage block 8b which is an effective block, and the storage block 8 to be erased is the first storage block in which an instantaneous interruption occurred during the erasing process. One storage block 8a is obtained.
  • the old data erasure process of the first storage block 8a is completed, it is determined from the data in the management data area 81 that the first storage block 8a is an erased block and the second storage block 8b is a valid block ( (See FIG. 10 (g)). If a power interruption occurs at this time, the storage block 8 to be read is the second storage block 8b which is a valid block, but the storage block 8 to be erased does not exist in this state.
  • the storage block 8 As a method of switching the storage block 8 to be written, it is possible to alternately switch between the two storage blocks 8, or to write between the three or more storage blocks 8 according to a predetermined rule.
  • the storage block 8 can be changed.
  • a method of providing a plurality of groups of a plurality of storage blocks 8 for switching the write target is also conceivable. In that case, the order of writing can be set as appropriate.
  • FIGS. 12 and 13 are explanatory diagrams illustrating an example of the flow of the writing process and the reading process.
  • the first storage block 8a in which old data is stored is an effective block
  • the second storage block 8b to be newly used is a write block.
  • the writing process and the reading process with respect to the flash memory 4 are described to be controlled mainly by the CPU 1, but the management unit 5 in the flash memory 4 is controlled mainly. You may do it.
  • the writing process will be described with reference to FIG.
  • the CPU 1 first determines a write area as shown in FIG. 12 (step S10).
  • a write area as shown in FIG. 12
  • the area where the writing area is provided is set to a predetermined set value.
  • step 20 a valid block search process is performed (step 20).
  • This valid block search process is the same as the contents of the process at the time of reading described later, and will be described in detail in the explanation of FIG. 13 which is an example of the flow of the reading process.
  • the CPU 1 determines whether or not the effective block determination is normal (OK) in the effective block search process performed in step S20 (step S30).
  • the valid block determination is abnormal (step S30: No)
  • the storage block 8 as a writing block is determined according to a predetermined setting (step S40).
  • the storage block 8 with the youngest address among the plurality of storage blocks 8 may be selected, or the storage block 8 with the smallest number of times of writing may be selected.
  • step S50 the block next to the valid block is set as a write block target (step S50). That is, as a write block target, if the nth is a valid block among the plurality of storage blocks 8, the (n + 1) th storage block 8 is a write block.
  • step S60 it is determined whether or not the write block has been erased.
  • step S60: No the CPU 1 erases the writing block.
  • the erased management data is stored in the management data area 81 of the writing block (step S80).
  • step S60 when the writing block has been erased (step S60: Yes), the CPU 1 stores the management data being written in the management data area 81 of the writing block (step S90), and then writes the latest data to the writing block (step S90). Step S100).
  • the CPU 1 stores the management data before erasure in the management data area 81 of the effective block (Step S110), while storing the management data in the management data area 81 of the writing block (Step S120).
  • the management unit erases the actual data of the valid block (step S130) and stores the erased management data in the management data area 81 of the erased valid block (step S140).
  • the CPU 1 notifies the writing source of the application software or the like that writing has been completed (step S150), and ends this processing.
  • the configuration is such that each time a write process occurs, the data is stored in a different storage block 8, but the capacity of data that needs to be stored in one write process is less than that of the storage block 8. If the capacity is small, additional recording is performed in the same storage block 8 until there is no more space in the storage block 8 to be written. It may be configured to change to the next block.
  • step S200 the reading process will be described with reference to FIG. 13 (step S200).
  • the write area determination process is a process at the time of reading, and thus the description thereof is omitted.
  • step S210 After performing the writing area determination (step S200), the CPU 1 determines whether there is a valid block in the writing area (step S210). If there are valid blocks (step S210: Yes), it is determined whether there are two or more valid blocks (step S220).
  • step S210 when there is no valid block in the writing area (step S210: No), the CPU 1 determines whether or not there is a writing block and a pre-erase block in the writing area (step S230).
  • step S220 if there are two or more valid blocks (step S220: Yes), the valid block storing the latest data cannot be determined. It is determined that the state is abnormal (step S240). On the other hand, when there are not two or more valid blocks (step S220: No), it is determined as normal and data is read from the valid block (step S250).
  • step S230: Yes If there is a block being written and a block before erasure in step S230 (step S230: Yes), the CPU 1 determines that the block is in a normal state even if there is no valid block, and stores data from the storage block 8 that is the block before erasure. Read (step S260). On the other hand, if there is no writing block and no erasing block in step S230 (step S230: No), the CPU 1 determines that the valid block is “absent” and is in an abnormal state (step S270).
  • the CPU 1 notifies the generation source of the write command such as application software based on the states of step S240, step 250, step S260, and step S270, and ends this processing.
  • processing content surrounded by the dotted line in FIG. 13 corresponds to the effective block search processing of step S20 in FIG.
  • the existing data is left in the storage block 8 storing the existing data to be updated.
  • the flash memory 4 according to the present embodiment, in which data corresponding to the existing data is written to another storage block and the existing data is erased after the writing is completed, the storage block 8 is replaced with the management data area 81.
  • the data is divided into actual data areas 82.
  • the control unit that performs writing or reading processing on the flash memory 4 such as the CPU 1 stores the effective management data indicating the completion of the actual data writing in the management data area 81 of the storage block 8.
  • In-writing management data indicating that writing is in progress (starting writing), indicating that the storage block has been erased (being erased), and that the stored data is ready to be erased (invalid) The management data before erasure and the erased management data indicating the completion of erasure of the storage block are stored as management data in association with the four divided small areas.
  • the management unit 5 searches the storage block 8 storing the latest actual data based on each management data at the next writing time or reading time.
  • the storage block 8 having the latest data after the power is restored, or the storage block 8 in which such defective data exists even if defective data occurs due to the instantaneous interruption. Can be easily determined.
  • the effective management data in the storage block 8 in which the latest data is written is updated when the actual data is written, the plurality of storage blocks 8 as described in the above prior art are used. Even if a configuration in which data is written in an irregular order to a plurality of storage blocks 8 is used instead of a configuration in which data is sequentially written in the order of numbers, any storage after a power supply interruption during data update occurs. It is possible to accurately determine whether the data in the block is the latest usable data.
  • the configuration in which data is written in an irregular order with respect to the plurality of storage blocks 8 is a case where the number of writes of each storage block 8 is actively managed and controlled (the number of writes is averaged or biased), or This is used when the present invention is applied to a system in which write requests from a plurality of tasks are generated (a system in which a plurality of types of latest data exist and the generation timing of write requests varies depending on the task).
  • the data storage device is the microcomputer 10 provided in the electronic control unit (ECU) which is an example of the vehicle-mounted control device.
  • ECU electronice control unit
  • the present invention is not limited to this embodiment.
  • the nonvolatile memory is configured to erase the original memory block at once after writing data to another unwritten memory block. That's fine. And what kind of thing may be sufficient also about the control apparatus carrying this.
  • the management data area 81 is provided in the same storage block 8 as the actual data area 82.
  • the present invention is not limited to this embodiment.
  • the management data area 81 may be provided in a storage block 8 different from the storage block 8 in which the actual data area 82 is provided, or the management data area 81 for storing data for a plurality of actual data areas 82 may be provided. You may comprise so that it may provide in one storage block 8 collectively.

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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Read Only Memory (AREA)

Abstract

 複数の記憶ブロックを有するメモリとメモリ制御部とを備え、記憶ブロックを、管理データ領域と実データ領域とに区分する。管理データ領域は、実データの書き込み開始を示す書込中管理データと、実データの書き込み完了を示す有効管理データと、記憶された実データを消去してもよい状態になったことを示す消去前管理データとを記憶する。メモリ制御部は、管理データの記憶状態に基づいて、最新のデータが記憶された記憶ブロックを判別する。

Description

データ記憶装置、データの記憶方法および車載用制御装置
 本発明は、データ記憶装置、データの記憶方法および車載用制御装置に関する。
 近年、コストパフォーマンスの高いフラッシュメモリが不揮発性メモリとし広く用いられてきている。
 フラッシュメモリは、複数の記憶ブロックに分割されており、記憶ブロック内の記憶単位(例えば、レコード)毎のデータの書き込みや、記憶ブロック単位毎のデータの消去などが可能であるが、電源瞬断が発生した場合、データの書き込みや消去の異常終了が発生し、データ損失を招くおそれがある。
 そのため、フラッシュメモリでは、新しいデータを書き込んだ後、旧いデータを消去するようにしている。かかるフラッシュメモリの制御では、各記憶ブロックの状態を示すフラグ情報として、書き込み対象の記憶ブロックを変更する際に、古い記憶ブロックに対して、変更する処理の開始と終了を記憶する「更新開始」、「更新終了」のフラグや、消去する記憶ブロックに対して、消去が終了したことを記憶する「消去終了」のフラグなどの管理情報を記憶し、かかる管理情報に基づいて、メモリの更新、書き込み、消去などを行うものがある(例えば、特許文献1を参照)。
特開2011-175361号公報
 しかしながら、上記従来の技術は、電源瞬断が発生するタイミングや、書き込み処理の行い方といった適用するシステムによっては、電源復帰後に、どの記憶ブロックのデータが使用可能な最新データなのかが分からない状況が生じる可能性がある。
 本発明は、上述した従来技術による問題点を解消するためになされたものであって、電源瞬断などが発生しても、電源復帰後に、より精度高く、最新データのある記憶ブロックの判定が可能なデータ記憶装置、データの記憶方法および車載用制御装置を提供することを目的とする。
 上述した課題を解決し、目的を達成するため、本発明は、複数の記憶ブロックを有し、データの上書き更新を行うことができず、データの消去を行う際には前記記憶ブロック単位で消去を行う必要があるメモリに対する、データの記憶制御を行うデータ記憶装置であって、実データを記憶する実データ領域が設けられた複数の記憶ブロックを有するメモリと、前記メモリに対する、書き込みと読み出しの少なくとも一方の制御を行うメモリ制御部とを備える。前記メモリには管理用の管理データを記憶する管理データ領域が設けられ、前記管理データ領域は、実データの書き込み開始を示す書込中管理データと、実データの書き込み完了を示す有効管理データと、記憶された実データを消去してもよい状態になったことを示す消去前管理データとが記憶できるように構成される。前記メモリ制御部は、前記管理データ領域の管理データの記憶状態に基づいて、最新のデータが記憶された前記記憶ブロックを判別する。
 本発明によれば、電源瞬断などが発生しても、電源復帰後に、より精度高く、最新データのある記憶ブロックの判定が可能となり、信頼性の高いデータ記憶装置の提供が可能となる。
図1は、実施形態に係るデータ記憶装置を備えるマイコンの概要を示すブロック図である。 図2は、実施形態に係るデータ記憶装置としてのフラッシュメモリの概要を示すブロック図である。 図3は、実施形態に係る記憶ブロックの概要を示すブロック図である。 図4は、実施形態に係るデータ更新処理の一連の流れを示す説明図である。 図5は、実施形態に係るデータ更新処理の実行に伴う記憶ブロックの状態の変化を示す説明図である。 図6は、実施形態に係る有効ブロック判定処理の一例を示す説明図である。 図7は、実施形態に係る有効ブロック判定処理の一例を示す説明図である。 図8は、実施形態に係る有効ブロック判定処理の一例を示す説明図である。 図9は、実施形態に係る有効ブロック判定処理の一例を示す説明図である。 図10は、変形例に係るデータ更新処理の実行に伴う記憶ブロックの状態の変化を示す説明図である。 図11は、変形例に係るデータ更新処理と瞬断タイミングとの関連を示す説明図である。 図12は、実施形態に係る書込処理の流れの一例を示す説明図である。 図13は、実施形態に係る読出処理の流れの一例を示す説明図である。
 以下、添付図面を参照して、本実施形態に係るデータ記憶装置、データの記憶方法および車載用制御装置について具体的に説明する。なお、以下では、データ記憶装置の記憶媒体としてフラッシュメモリを例にとるとともに、このフラッシュメモリを、マイコンに設けたものとして説明する。しかし、以下の実施形態によってこの発明が限定されるものではない。
 まず、実施形態に係るデータ記憶装置について、図1および図2を用いて説明する。図1は、データ記憶媒体であるフラッシュメモリ4を備えるマイコン10の概要を示すブロック図、図2は、フラッシュメモリ4の概要を示すブロック図である。
 なお、本実施形態におけるマイコン10は、データ記憶装置の一例であり、自動車のエンジンを制御する電子制御ユニット(ECU:Electronic Control Unit)に設けられたものとする。なお、電子制御ユニット(ECU)は、車載用制御装置の一例である。
 図1に示すように、データ記憶装置であるマイコン10は、メモリ制御部の一例となるCPU1と、RAM2と、R0M3と、フラッシュメモリ4とを備えており、それぞれ、内部バス9を介して接続している。
 RAM2は、対象となるデータを記憶する領域や、フラッシュメモリ4の記憶ブロック8(図2)に設定された管理データ領域81に記憶したデータと同じデータを記憶しておく領域を有する。また、ROM3は、フラッシュメモリ制御ソフトウェア31やアプリケーションソフトウェア32を記憶している。フラッシュメモリ制御ソフトウェア31は、フラッシュメモリ4のファームウェアであり、フラッシュメモリ4に対するデータの書き込みや消去といった制御を行うためのソフトウェアである。また、アプリケーションソフトウェア32は、自動車に搭載された電子機器などの制御処理を担う機能制御用ソフトウェアであり、例えば、エンジンの制御を行うソフトウェアである。
 フラッシュメモリ4は、データの追加記憶を行うことはできるが、データの上書き更新ができない不揮発性メモリであるため、書込中の記憶ブロック8に未書込領域がなくなると、必要に応じて、別の未書込の記憶ブロック8に、元の記憶ブロック8に記憶されたデータにおける一部の必要なデータ(例えば、最新のデータ)を書き込んだ後、元の記憶ブロック8を一括消去するように構成している。
 詳細には、フラッシュメモリ4は、“1”を“0”に書き替えることは、記憶ブロック単位よりも小さな記憶単位(例えばレコード)毎に行うことができるが、“0”を“1”に書き替えることは、ブロック単位(一括消去を行う単位)でしかできないようになっている。
 図1および図2に示すように、フラッシュメモリ4は、複数の記憶ブロック8,・・・(図2)が設けられた記憶領域6と、この記憶領域6に対する更新作業などを管理・制御する管理部5とを有する。なお、ここでいうフラッシュメモリ4は、記憶媒体のみでなく、外部からの指示に基づいて、記憶媒体に対する単純な書き込みや読み出しといった制御を行うメモリ制御機能も含んでいる。つまり、管理部5もメモリ制御部の一例となりうる。
 すなわち、管理部5は、CPU1からのデータ書込要求、データ読出要求、データ消去要求などに従い、記憶領域6内に設定された複数の記憶ブロック8に対して、データの書き込み、データの読み出しおよびデータの消去などを行う。
 書き込み要求があった場合や、書込中の記憶ブロック8に未書込領域がなくなったことにより、書き込みを行う記憶ブロック8を変更する場合、書き込み対象であったが未書込領域がなくなった記憶ブロック8(古いデータを記憶した記憶ブロック8)内の、過去に書き込んでいた既存データは残したまま、他の記憶ブロック8に前記既存データにおける一部の必要なデータや、新たなデータを書き込み、書き込み終了後、未書込領域がなくなっていた記憶ブロック8(古いデータを記憶した記憶ブロック8)のデータを消去する。
 ここで、図3を参照して、フラッシュメモリ4が備える記憶ブロック8の内部構成について説明する。図3は、実施形態に係る記憶ブロックの概要を示すブロック図である。
 図3に示すように、記憶ブロック8は、管理データ領域81と実データ領域82とに区分されている。実データ領域82には、例えば、RAM2に記憶されていた自動車の運転履歴のデータや、制御データの各種学習値、各種センサが検出した異常値データ(ダイアグデータや、フリーズフレームデータ)などが、所定のタイミングにて記憶される。
 一方、管理データ領域81は、区画領域として4つの小領域にさらに区画されており、以下の4種類の管理データを各小領域に1対1で対応させて記憶させるようにしている。すなわち、図3における管理データ領域81の4つの小領域について、左側から以下のようなデータが記憶される。
(1)実データの書込み完了を示す有効管理データ。
(2)実データの書き込み中(書き込み開始)を示す書込中管理データ。
(3)記憶ブロックの消去開始(消去中)を示し、また記憶されているデータを消去してもよい状態になったことを示す消去前管理データ。
(4)記憶ブロックの消去完了を示す消去済管理データ。
 なお、上記(1)、(2)における実データとは、書き込みを行う記憶ブロック8の変更時に、新しい記憶ブロック8(新記憶ブロック)に書き込むデータ(上記した既存データにおける一部の必要なデータや、新たなデータ等)を示す。なお、上記(3)の消去前管理データは、上記(2)の実データの書き込み後、すぐに消去処理を行わないケースも考えられるので、記憶された実データを消去する処理を行ってもよい状態になった(消去準備段階になった)ことを示す管理データであるともいえる。
 このように、管理データは、上書きされるのではなく、4つの小領域に順番に書き込まれて記憶されることになる。
 かかる管理データを記憶ブロック8にそれぞれ記憶させることで、たとえば、更新作業中などに電源瞬断(瞬間的な電源遮断)があった場合でも、電源復帰後に、使用可能な最新データの記憶ブロック8を判定することができる。また、電源瞬断によって不良データが生じているかどうかの判断も行える。
 したがって、信頼性の高いフラッシュメモリ4となるとともに、誤って記憶ブロック8に上書きなどをして、記憶ブロック8の寿命、ひいてはフラッシュメモリ4の寿命を短くするおそれもない。
 図4は、実施形態に係るデータ更新処理の一連の流れを示す説明図、図5は、実施形態に係るデータ更新処理の実行に伴う記憶ブロックの状態の変化を示す説明図である。図示するように、記憶ブロック8は、上記管理データを記憶しながら、5つのステータスを繰り返す。こうして、CPU1は、ROM3に記憶されたフラッシュメモリ制御ソフトウェア31を用いることにより、管理部5を介して、管理データ領域81に記憶された管理データを取得して記憶ブロック8の状態を判断することができる。
 たとえば、図4(a)に示すように、ある記憶ブロック8の状態が、実データ領域82のデータが全て消去されている状態にある消去済みブロックの状態であるとする。かかる消去済みブロックとなる記憶ブロック8には、正常時には、図5(a)に示すように、管理データ領域81には、4番目(一番右側)の小領域に消去済管理データ(「消去済」)のみが記憶されている。
 次いで、消去済みブロックである記憶ブロック8に対して、図4(b)に示すように、この記憶ブロック8の管理データ領域81に書込中管理データを記憶させるとともに、実データ領域82に対する新しいデータの書き込みを開始することで、書込中ブロックとする。このとき、正常時には、図5(b)に示すように、記憶ブロック8には、新たに、管理データ領域81の2番目の小領域に書込中管理データ(「書込中」)が記憶され、「書込中」と「消去済」が記憶されている状態になる。
 実データ領域82に対する新しいデータの書き込みが完了すると、図4(c)に示すように、この記憶ブロック8の管理データ領域81に有効管理データを記憶させることで、この記憶ブロック8を有効ブロックとする。すなわち、図5(c)に示すように、正常時には、この記憶ブロック8の管理データ領域81には、新たに、管理データ領域81の1番目(一番左側)の小領域に有効管理データ(「有効」)が記憶され、「有効」と「書込中」と「消去済」が記憶されている状態になる。なお、基本的には、この有効ブロックに、最新データが記憶されている。
 その後、書込中の記憶ブロック8に未書込領域がなくなった場合などでは、新しい記憶ブロック8に書き込みを行うブロックを変更する処理を行うが、その際に、新しい記憶ブロック8が有効ブロックになると、古い記憶ブロック8(旧記憶ブロック)に記憶されたデータを無効化する(消去してもよい状態にする)必要がある。そこで、図4(d)に示すように、この古い記憶ブロック8の管理データ領域81に消去前管理データを記憶させるとともに、この記憶ブロック8(管理データ領域81と実データ領域82)に対する一括消去を開始することで、この記憶ブロック8を消去前ブロックとする。
 このとき、図5(d)に示すように、正常時には、記憶ブロック8の管理データ領域81の3番目の小領域に消去前管理データ(「消去前」)が記憶され、4つの小領域が全て埋まっている状態になる。
 記憶ブロック8に対する一括消去を行ったが、まだ、記憶ブロック8の記憶状態を初期状態である全て“1”が記憶された状態(“0xFF”)にする処理を行っていない状態にあるときには、図4(e)に示すように、この記憶ブロック8は不定なブロックとされる。この記憶ブロック8の管理データ領域81は、図5(e)に示すように、何も管理データが記憶されておらず、管理データ領域81も実データ領域82も不定状態となっている。
 すなわち、データ消去処理は、一連のデータ更新処理の中でも比較的に処理時間がかかるものであり、確率的には、このときに電源瞬断なども発生しやすい。その場合、本来であれば、データ消去処理を実行する際の状態では、管理データ領域81の4つの小領域には、左側から順に、「有効」、「書込中」、「消去前」および「消去済」の全ての管理データが記憶されていることになる(図5(d)参照)。しかし、電源瞬断などの影響によって、例えば、「有効」と「消去前」とかしか記憶されていないなど、管理データの抜けが生じたりする不定状態となることがある。そのような場合も含め、図5(e)に示すように、不定状態と扱われる。
 そして、データ消去処理が完了して、記憶ブロック8の記憶状態を初期状態である全て“1”が記憶された状態にする処理が完了すると、このデータが消去された記憶ブロック8のデータ領域81に消去済管理データを記憶させることで、この記憶ブロック8を消去済みブロックとする。すなわち、実データ領域82はデータが消去されて全て“1”が記憶された状態であり、管理データ領域81は4つの小領域とも全て消去され、新たに、管理データ領域81の4番目(一番右側)の小領域に消去済管理データが記憶される(図5(a)参照)。
 ここで、瞬断復帰後等の起動時に、有効ブロックを判定する処理について説明する。図6~図9は、実施形態に係る有効ブロック判定処理の一例を示す説明図である。起動時には、図6に示すように、フラッシュメモリ4が備える記憶ブロック8の先頭から末尾まで、管理データ領域81に「有効」が存在する記憶ブロック8をピックアップして最新データ候補として記憶する。記憶させる領域としては、フラッシュメモリ4内に適宜設けた記憶領域でもよいし、RAM2の作業領域でもよい。
 そして、管理データ領域81に有効管理データが記憶された記憶ブロック8のうち、管理データ領域81の1番目(一番左側)の小領域に有効管理データ(「有効」)が記憶され、管理データとして「有効」、「書込中」、「消去済」が記憶された記憶ブロック8(図5(c)を参照)である有効ブロックがあると、この記憶ブロック8を、最新データを有する記憶ブロック8と判定することができる。
 また、このように「有効」、「書込中」、「消去済」が記憶された記憶ブロック8の他にも、たとえば、管理データ領域81の3番目の小領域に消去前管理データ(「消去前」)が記憶されて4つの小領域が全て埋まった消去前の状態にある記憶ブロック8である消去前ブロック(図5(d)を参照)も、管理データ領域81に「有効」が存在する記憶ブロック8である。
 通常は、図7に示すように、管理データ領域81に「有効」、「書込中」、「消去済」が記憶され、ステータスとして有効状態である記憶ブロック8(有効ブロック)を、最新データを有する記憶ブロック8と判定するが、かかる状態の記憶ブロック8が存在しない場合には、消去前管理データを有する記憶ブロック8(消去前ブロック)の実データを更新すべき最新データとみなすこともできる。
 例えば、フラッシュメモリ4内の全ての記憶ブロック8を検索しても、ステータスとして有効状態である記憶ブロック8(有効ブロック)が存在せず、最新データ候補としてピックアップするものがない場合、書き込み対象ブロックの変更処理中に電源の瞬断が発生した可能性があるので、このような場合には、図8に示すように、実データの書き込みが正常に行われていない可能性がある変更後の新しい記憶ブロック8ではなく、変更前の古い記憶ブロック8である、管理データ領域81の4つの小領域が全て埋まった消去前の状態にある記憶ブロック8(消去前ブロック)を最新データと見なすことができる。
 さらに、例えば、図9に示すように、最新データ候補(有効ブロック)が既に存在しているにもかかわらず、さらに、ステータスとして有効状態であることを示す管理データ(「有効」、「書込中」、「消去済」)が記憶された記憶ブロック8が検出された場合(有効ブロックが2つ以上あると判定された場合)は、エラーとして扱うことができる。この場合、異常状態を通知するように構成することが望ましい。
 このように、本実施形態に係るフラッシュメモリ4は、記憶ブロック8を、管理データ領域81と実データ領域82とに区分するとともに、記憶ブロック8に対し、データの書き込み、読み出し、および消去を含む各種管理を行う管理部5を備える構成としている。
 また、この管理部5は、記憶ブロック8の管理データ領域81に、実データの書き込みを開始する前に記憶する書込中管理データ、実データの書き込みが完了した後に記憶する有効管理データ、記憶ブロック8の消去処理を開始する前に記憶する消去前管理データ、および、記憶ブロックの消去処理が完了した後に記憶する消去済管理データを、それぞれ管理データとして記憶させ、装置の起動時等、次回更新や読み出しをする場合、各管理データに基づいて、正常なデータのうちで最新の実データを記憶している記憶ブロックを検索するようにしている。
 したがって、本実施形態に係るフラッシュメモリ4では、電源瞬断などが発生しても、電源復帰後に、最新データのある記憶ブロック8や、不良データが存在する記憶ブロック8の判定が可能となり、信頼性を高めることができる。
 上述してきた説明では、基本的に、ある一つの記憶ブロック8についての各処理による状態の変化を主眼として説明したが、書き込み対象の変更時には、複数の記憶ブロック8に対する処理が並行して行われる。図10は、この複数の記憶ブロック8に対して並行して行われる処理の実行に伴う記憶ブロック8の状態の変化を示す説明図であり、旧データが記憶されている第1記憶ブロック8aと、新たに使用する第2記憶ブロック8bとを、書き込み時、特に書き込み対象の変更時にはペアとして処理し、これらの管理データを利用し、本来有り得ない管理データの組み合わせが存在するか否かによって、新データのある記憶ブロック8や、不良データが存在する記憶ブロック8の判定を行うようにしている。
 図10(a)~(g)に示すように、既にデータが記憶されているものを第1記憶ブロック8aとし、新たなデータを書き込むものを第2記憶ブロック8bとする。図10(a)に示すように、書き込み開始直前の状態では、第1記憶ブロック8aには既に実データが書き込まれているため、管理データ領域81には、左の小領域意から順に、「有効」、「書込中」、ひとつおいて、「消去済」の各管理データが記憶されている。このとき、これから書き込みされる第2記憶ブロック8bには、管理データ領域81の4番目(一番右側)の小領域に「消去済」(消去済管理データ)が記憶されている。
 書き込み開始の時点では、図10(b)に示すように、第1記憶ブロック8aに変化はないが、第2記憶ブロック8bには、管理データ領域81の左から2番目の小領域に「書込中」(書込中管理データ)が記憶される。すなわち、左から2番目の小領域に「書込中」、一番右側の小領域に「消去済」が記憶されている。
 第2記憶ブロック8bへの書き込み中は、図10(c)に示すように、第1記憶ブロック8aに変化はないが、第2記憶ブロック8bは、書き込みが行われている実データ領域82は不定状態となっている。このとき、管理データ領域81には変化はなく、左から2番目の小領域に「書込中」、一番右側の小領域に「消去済」が記憶されたままである。
 図10(d)に示すように、新しいデータが新しい第2記憶ブロック8bに書き込まれると、第1記憶ブロック8aに記憶されていたデータは無効化される。すなわち、図示するように、第1記憶ブロック8aの管理データ領域81において、空いていた左から3番目の小領域に「消去前」の管理データが記憶される。すなわち、4つの小領域全てに管理データが記憶される。
 次いで、新しいデータが記憶された第2記憶ブロック8bの有効化が行われる。すなわち、図10(e)に示すように、管理データ領域81における、1番目(一番左側)の小領域に「有効」が記憶される。このときの第2記憶ブロック8bは、図10(a)~(c)に示す第1記憶ブロック8aのように、管理データ領域81には、左の小領域から順に、「有効」、「書込中」、ひとつおいて、「消去済」の各管理データが記憶されることになる。
 この後、第1記憶ブロック8aに記憶されていた旧データは消去される。すなわち、図10(f)に示すように、第1記憶ブロック8aは、管理データ領域81も実データ領域82も不定状態とされる。他方、第2記憶ブロック8bに変化はない。
 そして、図10(g)に示すように、第1記憶ブロック8aの記憶状態を初期状態である全て“1”が記憶された状態(“0xFF”)にするとともに、実データが消去された第1記憶ブロック8aにおける管理データ領域81の4番目(一番右側)の小領域に「消去済」を記憶させる。このときも、第2記憶ブロック8bに変化はない。
 なお、図10(f)(g)の処理は、図10(b)から(e)の処理の後に続けて行ってもよいし、図10(b)から(e)とは別のタイミングで行うようにしてもよい。
 このように、書き込み時、特に書き込み対象の変更時には、第1記憶ブロック8aと第2記憶ブロック8bをペアとして処理を行い、これらの記憶ブロック8の管理データ領域81の記憶状態の組み合わせによって、どちらに制御的に使用可能なデータが記憶されているのかを判定できるようにしている。
 また、書き込み処理や書き込み対象の変更処理中に電源瞬断が発生した場合、いずれの記憶ブロック8を読み出すか、また、いずれの記憶ブロック8のデータを消去する必要があるかについて、上述してきたような第1記憶ブロック8aと第2記憶ブロック8bをペアとして処理した場合を例にとって説明する。
 図11は、図10で説明した処理と瞬断タイミングとの関連を示す説明図である。なお、図中、ブロック状態を示す欄内における(1)は第1記憶ブロック8aを、(2)は第2記憶ブロック8bを示す。
 書き込み処理の要求を受け付けた直後(書き込み対象の変更要求を受けた場合や、書き込み要求を受けて書き込みを行おうとした際に、書き込み対象の記憶ブロックに空き領域がなかった場合を含む)であって、処理状態が書込前である場合、ブロック状態としては、第1記憶ブロック8aには現時点での最新データが有効データとして記憶されており、管理データ領域81のデータからは、第1記憶ブロック8aは有効ブロック、第2記憶ブロック8bは消去済みブロックと判断される(図10(a)を参照)。このときに電源瞬断が発生した場合、電源復帰後に読み出す対象となる記憶ブロック8は有効ブロックである第1記憶ブロック8aであり、この状態では、消去対象となる記憶ブロック8は存在しない。
 次に、第2記憶ブロック8bに対する書き込みが開始されて処理状態が書込中となった場合、ブロック状態としては、管理データ領域81のデータからは、第1記憶ブロック8aは有効ブロック、第2記憶ブロック8bは書込中ブロックと判断される(図10(b)を参照)。このときに電源瞬断が発生した場合、読み出す対象となる記憶ブロック8は有効ブロックである第1記憶ブロック8aであり、消去対象となる記憶ブロック8は、書込み処理の途中で瞬断が発生した第2記憶ブロック8bとなる。
 次に、第2記憶ブロック8bに対する実データの書き込み中となった場合、ブロック状態としては、管理データ領域81のデータからは、第1記憶ブロック8aは有効ブロック、第2記憶ブロック8bは書込中ブロックと判断される(図10(c)を参照)。このときに電源瞬断が発生した場合、読み出す対象となる記憶ブロック8は有効ブロックである第1記憶ブロック8aであり、消去対象となる記憶ブロック8は、書込み処理の途中で瞬断が発生した第2記憶ブロック8bとなる。
 次に、第2記憶ブロック8bに対する実データの書き込みが完了して、第1記憶ブロック8aに対する旧有効データの無効化(“消去前”の書き込み)を行った場合、ブロック状態としては、管理データ領域81のデータからは、第1記憶ブロック8aは消去前ブロック、第2記憶ブロック8bは書込中ブロックと判断される(図10(c)を参照)。このときに電源瞬断が発生した場合、有効ブロックが存在しないので、読み出す対象となる記憶ブロック8は消去前ブロックである第1記憶ブロック8aであり、消去対象となる記憶ブロック8は、書込み処理の途中で瞬断が発生した第2記憶ブロック8bとなる。
 次に、第2記憶ブロック8bに対する書き込みデータの有効化(“有効”の書き込み)を行った場合、ブロック状態としては、管理データ領域81のデータからは、第1記憶ブロック8aは消去前ブロック、第2記憶ブロック8bは有効ブロックと判断される(図10(e)を参照)。このときに電源瞬断が発生した場合、読み出す対象となる記憶ブロック8は有効ブロックである第2記憶ブロック8bであり、消去対象となる記憶ブロック8は、第2記憶ブロック8bに最新データが記憶されたため用済みとなった旧データを記憶している第1記憶ブロック8aとなる。
 次に、処理状態が、第1記憶ブロック8aの旧データを消去している消去中の場合、ブロック状態としては、管理データ領域81のデータからは、第1記憶ブロック8aは不定なブロック、第2記憶ブロック8bは有効ブロックと判断される(図10(f)を参照)。このときに電源瞬断が発生した場合、読み出す対象となる記憶ブロック8は有効ブロックである第2記憶ブロック8bであり、消去対象となる記憶ブロック8は、消去処理中に瞬断が発生した第1記憶ブロック8aとなる。
 そして、第1記憶ブロック8aの旧データの消去処理が完了した場合、管理データ領域81のデータからは、第1記憶ブロック8aは消去済みブロック、第2記憶ブロック8bは有効ブロックと判断される(図10(g)を参照)。このときに電源瞬断が発生した場合、読み出す対象となる記憶ブロック8は有効ブロックである第2記憶ブロック8bであるが、消去対象となる記憶ブロック8は、この状態では存在しない。
 なお、書き込み対象の記憶ブロック8の切り替えの行い方として、2個の記憶ブロック8間で交互に切り替えていくこともできるし、3個以上の記憶ブロック8の間で、所定のルールに従って書き込み対象とする記憶ブロック8を変更していくようにすることもできる。また、書き込み対象を切り替えていく複数個の記憶ブロック8のグループを複数グループ設けるなどの方法も考えられる。その場合、書き込む順番などは適宜設定することができる。
 ここで、図12および図13を用いて、フラッシュメモリ4に対する書き込み処理と読み出し処理について説明する。図12および図13は、書き込み処理と読み出し処理の流れの一例を示す説明図である。ここでは、旧データが記憶されている第1記憶ブロック8aを有効ブロック、新たに使用する第2記憶ブロック8bを書込みブロックとしている。
 なお、以下の説明では、このフラッシュメモリ4に対する書き込み処理と読み出し処理を、CPU1が主体となって制御するように記載しているが、フラッシュメモリ4内の管理部5が主体となって制御するようにしてもよい。
 まず、図12に基づいて、書き込み処理について説明する。フラッシュメモリ制御ソフトウェア31に基づき、CPU1はアプリケーションソフトウェア等の処理によって書き込み指令が発生すると、図12に示すように、まず、書込み領域の確定を行う(ステップS10)。ここでは、記憶ブロック8が設けられた領域である書込み領域が、フラッシュメモリ4の記憶領域6における、どの領域に設けられているかを判断している。なお、書込み領域が設けられる領域は、あらかじめ定められた設定値としている。
 次いで、有効ブロック検索処理を行う(ステップ20)。なお、この有効ブロック検索処理は、後述する読み出し時の処理の内容と同じであるので、読み出し処理の流れの一例である図13の説明において詳述する。
 次いで、CPU1は、ステップS20で行った有効ブロック検索処理において、有効ブロック判定が正常であったか(OKか)否かを判定する(ステップS30)。有効ブロック判定が異常であった場合(ステップS30:No)、有効ブロックは無しとして、予め定めた設定に従い、書込みブロックとしての記憶ブロック8を決める(ステップS40)。ここでは、例えば、複数の記憶ブロック8のうち、一番若いアドレスの記憶ブロック8を選択するようにしてもよいし、最も書き込み回数が少ない記憶ブロック8を選択するようにしてもよい。
 一方、有効ブロック判定が正常であった場合(ステップS30:Yes)、有効ブロックの次のブロックを書込みブロック対象とする(ステップS50)。すなわち、書込みブロック対象としては、複数の記憶ブロック8のうち、n番目が有効ブロックであれば、n+1番目の記憶ブロック8が書込みブロックとなる。
 次いで、書込みブロックは消去済みか否かを判定する(ステップS60)。書込みブロックが消去済みではない場合(ステップS60:No)、CPU1は、書込みブロックを消去する。そして、書込みブロックの管理データ領域81に消去済管理データを記憶させる(ステップS80)。
 一方、書込みブロックが消去済みの場合(ステップS60:Yes)、CPU1は、書込みブロックの管理データ領域81に書込中管理データを記憶させ(ステップS90)、次いで、書込みブロックに最新データを書き込む(ステップS100)。
 次に、CPU1は、有効ブロックの管理データ領域81に消去前管理データを記憶させる(ステップS110)一方、書込みブロックの管理データ領域81には有効管理データを記憶させる(ステップS120)。
 その後、管理部は、有効ブロックの実データを消去するとともに(ステップS130)、消去した有効ブロックの管理データ領域81に消去済管理データを記憶させる(ステップS140)。
 最後に、CPU1は、書き込みが完了したことをアプリケーションソフトウェア等の書き込み指令の発生元へ通知して(ステップS150)、この処理を終える。
 なお、上述した例では、書き込み処理が発生する毎に異なる記憶ブロック8に記憶していく構成をとっているが、1度の書き込み処理で記憶する必要があるデータの容量が、記憶ブロック8の容量に対して少ないような場合には、書き込み対象としている記憶ブロック8の容量に空きがなくなるまで、同じ記憶ブロック8に追加記録を行い、容量に空きがなくなった場合に、書き込み対象のブロックを次のブロックに変更するように構成してもよい。
 次に、図13に基づいて、読み出し処理について説明する。フラッシュメモリ制御ソフトウェア31に基づき、CPU1はアプリケーションソフトウェア等の処理によって書き込み指令が発生すると、図13に示すように、まず、書込み領域の確定を行う(ステップS200)。なお、この書込み領域確定の処理は、読み出し時の処理におけるものであるので、説明は省略する。
 書込み領域確定(ステップS200)を行った後、CPU1は、書込領域内に有効ブロックがあるか否かを判定する(ステップS210)。有効ブロックがある場合(ステップS210:Yes)、その有効ブロックが2個以上あるか否かを判定する(ステップS220)。
 一方、書込領域内に有効ブロックがない場合(ステップS210:No)、CPU1は、書込領域内に書込中ブロックと消去前ブロックがあるか否かを判定する(ステップS230)。
 ステップS220に戻り、有効ブロックが2個以上ある場合(ステップS220:Yes)、最新のデータを記憶した有効ブロックを判定することができない状態であるので、実質的な有効ブロックは「無し」として、異常状態であると判定する(ステップS240)。一方、有効ブロックが2個以上は無い場合(ステップS220:No)、正常状態と判定し、有効ブロックからデータを読み出す(ステップS250)。
 また、ステップS230で、書込中ブロックと消去前ブロックがある場合(ステップS230:Yes)、CPU1は、有効ブロックがなくとも、正常状態と判定し、消去前ブロックである記憶ブロック8からデータを読み出す(ステップS260)。一方、ステップS230で、書込中ブロックと消去前ブロックが無い場合(ステップS230:No)、CPU1は、有効ブロックは「無し」として、異常状態であると判定する(ステップS270)。
 そして、CPU1は、ステップS240、ステップ250、ステップS260およびステップS270の各状態に基づき、正常または異常であることをアプリケーションソフトウェア等の書き込み指令の発生元に通知して、この処理を終える。
 なお、図13における点線で囲まれた処理内容(ステップS210からステップS270までの処理内容)が、図12におけるステップS20の有効ブロック検索処理に該当する。
 以上、説明してきたように、複数の記憶ブロック8を有し、各記憶ブロック8のデータを更新する場合、更新対象となる既存データを記憶している記憶ブロック8内に当該既存データを残したまま、他の記憶ブロックに前記既存データに相当するデータを書き込み、書き込み終了後、前記既存データを消去するようにした本実施形態にかかるフラッシュメモリ4は、記憶ブロック8を、管理データ領域81と実データ領域82とに区分して構成されている。
 そして、CPU1等のフラッシュメモリ4に対する書き込みや読み出し処理を行う制御部は、実データを更新する場合、記憶ブロック8の管理データ領域81に、実データの書込み完了を示す有効管理データ、実データの書き込み中(書き込み開始)を示す書込中管理データ、記憶ブロックの消去開始(消去中)を示し、また記憶されているデータが消去してもよい状態になった(無効である)ことを示す消去前管理データ、および、記憶ブロックの消去完了を示す消去済管理データをそれぞれ管理データとして、区画された4つの小領域にそれぞれ対応付けて記憶させる。そして、管理部5は、次回書き込み時や読み出し時に、各管理データに基づいて、最新の実データを記憶している記憶ブロック8を検索するようにしている。
 したがって、データ更新中のいかなるタイミングで電源瞬断などが発生しても、電源復帰後に、最新データのある記憶ブロック8や、瞬断によって不良データが生じてもかかる不良データの存在する記憶ブロック8の判定を簡便に行うことができる。
 また、実データの書き込みを行った際に、最新のデータを書き込んだ記憶ブロック8における有効管理データを更新する構成にしているので、上記従来技術で記載したような、複数の記憶ブロック8に対して番号順で順次書き込んでいく構成ではなく、複数の記憶ブロック8に対して不規則な順番で書き込んでいく構成をとった場合であっても、データ更新中の電源瞬断発生後に、どの記憶ブロックのデータが使用可能な最新データなのかを正確に判別することが可能になる。
 なお、複数の記憶ブロック8に対して不規則な順番で書き込んでいく構成は、各記憶ブロック8の書き込み回数を積極的に管理制御する(書き込み回数を平均化したり偏らせたりする)場合や、複数のタスクからの書き込み要求が発生するようなシステム(複数種類の最新データが存在し、また、書き込み要求の発生タイミングもタスクによって異なるシステム)に適用する場合等に用いられる。
 また、本実施形態では、データ記憶装置として、車載用制御装置の一例である電子制御ユニット(ECU)に設けられたマイコン10としたが、かかる実施形態に限定されるものではない。たとえば、書込中の記憶ブロックに未書込領域がなくなると、別の未書込の記憶ブロックにデータを書き込んだ後、元の記憶ブロックを一括消去するように構成された不揮発性メモリであればよい。そして、これを搭載する制御装置についてもいかなるものであっても構わない。
 また、本実施形態では、管理データ領域81を実データ領域82と同じ記憶ブロック8内にそれぞれ設ける構成としているが、かかる実施形態に限定されるものではない。たとえば、管理データ領域81を実データ領域82が設けられた記憶ブロック8とは異なる記憶ブロック8に設ける構成にしてもよいし、複数の実データ領域82についてのデータを記憶する管理データ領域81を1つの記憶ブロック8にまとめて設けるように構成してもよい。
 また、さらなる効果やその他の変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。
 1  CPU
 4  フラッシュメモリ
 5  管理部
 6  記憶領域
 8  記憶ブロック
 10  マイコン(データ記憶装置)
 81  管理データ領域
 82  実データ領域

Claims (9)

  1.  複数の記憶ブロックを有し、データの上書き更新を行うことができず、データの消去を行う際には前記記憶ブロック単位で消去を行う必要があるメモリに対する、データの記憶制御を行うデータ記憶装置であって、
     実データを記憶する実データ領域が設けられた複数の記憶ブロックを有するメモリと、
     前記メモリに対する、書き込みと読み出しの少なくとも一方の制御を行うメモリ制御部とを備え、
     前記メモリには管理用の管理データを記憶する管理データ領域が設けられ、
     前記管理データ領域は、実データの書き込み開始を示す書込中管理データと、実データの書き込み完了を示す有効管理データと、記憶された実データを消去してもよい状態になったことを示す消去前管理データとが記憶できるように構成されており、
     前記メモリ制御部は、前記管理データ領域の管理データの記憶状態に基づいて、最新のデータが記憶された前記記憶ブロックを判別する
     ことを特徴とするデータ記憶装置。
  2.  前記メモリ制御部は、新たな前記記憶ブロックである新記憶ブロックに実データの記憶を行う場合に、
     前記新記憶ブロックについての前記管理データ領域に書込中管理データを記憶した後に、前記新記憶ブロックに対して実データの書き込みを行い、実データの書き込みが完了した後に、以前に実データの記憶を行っていた前記記憶ブロックである旧記憶ブロックについての前記管理データ領域に消去前管理データを記憶し、その後、前記新記憶ブロックについての前記管理データ領域に有効管理データを記憶する
     ことを特徴とする請求項1に記載のデータ記憶装置。
  3.  前記メモリ制御部は、前記管理データ領域に、有効管理データが記憶され、かつ、消去前管理データが記憶されていない有効ブロックを、最新のデータが記憶された記憶ブロックであると判断する
     ことを特徴とする請求項2に記載のデータ記憶装置。
  4.  前記メモリ制御部は、前記有効ブロックが存在しないと判断した場合には、前記管理データ領域に有効管理データと消去前管理データとが記憶された消去前ブロックを、最新のデータが記憶された記憶ブロックであると判断する
     ことを特徴とする請求項3に記載のデータ記憶装置。
  5.  前記メモリ制御部は、前記有効ブロックが存在せず、かつ、前記管理データ領域に有効管理データと消去前管理データとが記憶された消去前ブロックと、前記管理データ領域に書込中管理データが記憶されているが有効管理データが記憶されていない書込中記憶ブロックとがともに存在すると判断した場合に、前記消去前ブロックを最新データが記憶された記憶ブロックであると判断する
     ことを特徴とする請求項3に記載のデータ記憶装置。
  6.  前記メモリ制御部は、
     前記複数の記憶ブロックのなかに、有効管理データを有する記憶ブロックが複数存在する場合、異常状態にあることを通知すること
     を特徴とする請求項1~5のいずれか1つに記載のデータ記憶装置。
  7.  前記メモリ制御部は、
     あらかじめ1組として設定された複数の前記記憶ブロックの各管理データに基づいて、前記更新すべき最新データを有する記憶ブロックと、不良データが残された記憶ブロックとを判別する
     ことを特徴とする請求項1~5のいずれか1つに記載のデータ記憶装置。
  8.  複数の記憶ブロックを有し、データの上書き更新を行うことができず、データの消去を行う際には前記記憶ブロック単位で消去を行う必要があるメモリに対するデータの記憶方法であって、
     実データを記憶する実データ領域が設けられた複数の記憶ブロックを有するメモリに、管理用の管理データを記憶する管理データ領域を設けるとともに、前記管理データ領域には、実データの書き込み開始を示す書込中管理データと、実データの書き込み完了を示す有効管理データと、記憶された実データを消去してもよい状態になったことを示す消去前管理データとを記憶できるように構成し、
     前記メモリに対する、書き込みと読み出しの少なくとも一方の制御を行うメモリ制御部は、
     新たな前記記憶ブロックである新記憶ブロックに実データの記憶を行う場合、
     前記新記憶ブロックについての前記管理データ領域に書込中管理データを記憶した後に、前記新記憶ブロックに対して実データの書き込みを行い、実データの書き込みが完了した後に、以前に実データの記憶を行っていた前記記憶ブロックである旧記憶ブロックについての前記管理データ領域に消去前管理データを記憶し、その後、前記新記憶ブロックについての前記管理データ記憶領域に有効管理データを記憶する
     ことを特徴とするデータの記憶方法。
  9.  請求項1~5のいずれか1つに記載のデータ記憶装置を備えることを特徴とする車載用制御装置。
PCT/JP2013/083393 2013-03-18 2013-12-12 データ記憶装置、データの記憶方法および車載用制御装置 WO2014147906A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP13878987.0A EP2977907B1 (en) 2013-03-18 2013-12-12 Data storage device, method for storing data, and onboard control device
CN201380074421.2A CN105009096B (zh) 2013-03-18 2013-12-12 数据存储装置、数据的存储方法以及车载用控制装置
US14/774,541 US9792070B2 (en) 2013-03-18 2013-12-12 Data storage device, method of storing data, and on-vehicle control apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013054879A JP5695112B2 (ja) 2013-03-18 2013-03-18 データ記憶装置、データの記憶方法および車載用制御装置
JP2013-054879 2013-03-18

Publications (1)

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

Family

ID=51579617

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/083393 WO2014147906A1 (ja) 2013-03-18 2013-12-12 データ記憶装置、データの記憶方法および車載用制御装置

Country Status (5)

Country Link
US (1) US9792070B2 (ja)
EP (1) EP2977907B1 (ja)
JP (1) JP5695112B2 (ja)
CN (1) CN105009096B (ja)
WO (1) WO2014147906A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6241373B2 (ja) * 2014-06-19 2017-12-06 株式会社デンソー 記憶装置、フラッシュメモリ制御装置、及びプログラム
JP6327994B2 (ja) * 2014-07-28 2018-05-23 ルネサスエレクトロニクス株式会社 制御システムおよび半導体装置
US10692335B2 (en) 2014-08-11 2020-06-23 Seagate Technology Llc Green drive with status indicator
US10133486B2 (en) * 2014-08-11 2018-11-20 Seagate Technology Llc Status indicator on a data storage device
US10658045B1 (en) * 2019-05-15 2020-05-19 Western Digital Technologies, Inc. Enhanced solid-state drive write performance with background erase

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11120085A (ja) * 1997-10-15 1999-04-30 Matsushita Electric Works Ltd 制御システム
JP2009223435A (ja) * 2008-03-13 2009-10-01 Denso Corp データ記憶方法及び装置、並びにプログラム
JP2011175361A (ja) 2010-02-23 2011-09-08 Autonetworks Technologies Ltd データ記憶装置及びデータ記憶方法
JP2013003869A (ja) * 2011-06-17 2013-01-07 Denso Corp 不揮発性半導体記憶装置およびメモリ管理方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6834331B1 (en) * 2000-10-24 2004-12-21 Starfish Software, Inc. System and method for improving flash memory data integrity
US6801994B2 (en) * 2000-12-20 2004-10-05 Microsoft Corporation Software management systems and methods for automotive computing devices
JP3912355B2 (ja) * 2003-10-14 2007-05-09 ソニー株式会社 データ管理装置、データ管理方法、不揮発性メモリ、不揮発性メモリを有する記憶装置及びデータ処理システム
JP4701618B2 (ja) * 2004-02-23 2011-06-15 ソニー株式会社 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
WO2006067923A1 (ja) * 2004-12-22 2006-06-29 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
JP4577075B2 (ja) 2005-04-22 2010-11-10 株式会社デンソー 自動車用制御ユニット
US7275140B2 (en) * 2005-05-12 2007-09-25 Sandisk Il Ltd. Flash memory management method that is resistant to data corruption by power loss
US7797479B2 (en) * 2005-06-30 2010-09-14 Intel Corporation Technique to write to a non-volatile memory
CN101288056A (zh) * 2006-03-13 2008-10-15 松下电器产业株式会社 闪速存储器用的存储控制器
JP5137413B2 (ja) 2006-11-28 2013-02-06 株式会社日立製作所 半導体記憶装置
JP4536785B2 (ja) * 2008-02-01 2010-09-01 富士通株式会社 情報処理装置、該情報処理装置で行われるデータ記憶を制御する制御部およびデータ記憶の制御方法
JP2012181577A (ja) 2011-02-28 2012-09-20 Aiphone Co Ltd 不揮発性メモリ管理用のファイルシステム
US9478271B2 (en) * 2013-03-14 2016-10-25 Seagate Technology Llc Nonvolatile memory data recovery after power failure

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11120085A (ja) * 1997-10-15 1999-04-30 Matsushita Electric Works Ltd 制御システム
JP2009223435A (ja) * 2008-03-13 2009-10-01 Denso Corp データ記憶方法及び装置、並びにプログラム
JP2011175361A (ja) 2010-02-23 2011-09-08 Autonetworks Technologies Ltd データ記憶装置及びデータ記憶方法
JP2013003869A (ja) * 2011-06-17 2013-01-07 Denso Corp 不揮発性半導体記憶装置およびメモリ管理方法

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
CN105009096A (zh) 2015-10-28
EP2977907A4 (en) 2016-03-30
US20160034226A1 (en) 2016-02-04
EP2977907A1 (en) 2016-01-27
EP2977907B1 (en) 2017-05-10
CN105009096B (zh) 2017-11-14
JP2014182438A (ja) 2014-09-29
JP5695112B2 (ja) 2015-04-01
US9792070B2 (en) 2017-10-17

Similar Documents

Publication Publication Date Title
US8055859B2 (en) Apparatus and method for providing atomicity with respect to request of write operation for successive sector
JP5695112B2 (ja) データ記憶装置、データの記憶方法および車載用制御装置
US8327064B2 (en) Data processor with flash memory, and method for accessing flash memory
JP6447469B2 (ja) 書換システム
JP6009290B2 (ja) 車両の電子制御装置
JP5660521B2 (ja) 不揮発性半導体記憶装置およびメモリ管理方法
KR101826778B1 (ko) 플래쉬 라이프 사이클 및 성능 개선을 고려한 eeprom 에뮬레이션 구현 방법
JP4794530B2 (ja) 半導体装置および携帯電話
JP5983512B2 (ja) 書き込み装置
JP2019008693A (ja) 自動車用制御装置
JP2009223435A (ja) データ記憶方法及び装置、並びにプログラム
JP5158883B2 (ja) ファームウェア更新方法及びファームウェア更新装置
JP6241373B2 (ja) 記憶装置、フラッシュメモリ制御装置、及びプログラム
JP5787095B2 (ja) 不揮発性メモリへのデータ記憶方法
JP2014112419A (ja) 携帯端末装置、ソフトウェア更新方法、動作制御方法及びプログラム
JP2019160080A (ja) 制御装置および異常検出方法
JP2017097404A (ja) マイクロコンピュータ
JP6568826B2 (ja) 電子制御装置
JP6263068B2 (ja) 半導体記憶装置
JP2014071535A (ja) メモリ管理装置、マイクロコントローラ及びメモリ管理方法
JP6317653B2 (ja) 自動車用電子制御装置及びデータ記憶方法
JP5754316B2 (ja) 電子制御装置
JP2016012213A (ja) 電子制御装置
JP5643708B2 (ja) 電子制御装置
JP2012027971A (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: 13878987

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14774541

Country of ref document: US

REEP Request for entry into the european phase

Ref document number: 2013878987

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2013878987

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE