WO2015194100A1 - 記憶装置、フラッシュメモリ制御装置、及びプログラム - Google Patents

記憶装置、フラッシュメモリ制御装置、及びプログラム Download PDF

Info

Publication number
WO2015194100A1
WO2015194100A1 PCT/JP2015/002719 JP2015002719W WO2015194100A1 WO 2015194100 A1 WO2015194100 A1 WO 2015194100A1 JP 2015002719 W JP2015002719 W JP 2015002719W WO 2015194100 A1 WO2015194100 A1 WO 2015194100A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
write
data
written
flag
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/JP2015/002719
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.)
Denso Corp
Original Assignee
Denso Corp
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 Denso Corp filed Critical Denso Corp
Priority to CN201580032181.9A priority Critical patent/CN106415505B/zh
Priority to US15/314,573 priority patent/US9773562B2/en
Priority to DE112015002881.1T priority patent/DE112015002881B4/de
Publication of WO2015194100A1 publication Critical patent/WO2015194100A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits

Definitions

  • the present disclosure relates to a storage device including a flash memory.
  • flash memory has been used in various fields of equipment such as communication equipment and AV equipment.
  • data is erased in units of blocks, which are a set of a plurality of memory cells, and therefore the size of the writing unit and the size of the erasing unit may differ. For example, writing is performed in units of several bytes (bytes) and erasing is performed in blocks of several tens of bytes to several kilobytes.
  • data may be managed by write-once, which writes data sequentially into blocks.
  • write-once which writes data sequentially into blocks.
  • the data of any block other than the full block is erased to create an empty block, and valid data is copied.
  • Adopted hereinafter, this process is referred to as a reorganization process.
  • the block data erasure process and the copy process are concentrated. As a result, the processing load of the entire storage system including the flash memory increases. As a result, access to data is likely to be hindered during the reorganization process. End up.
  • An object of the present disclosure is to provide a storage device, a flash memory control device, and a program that can suppress an increase in processing load.
  • a storage device is configured to have a flash memory including a plurality of blocks in which data is erased in units of blocks and data is written in units smaller than the blocks, and the blocks are written to the blocks. And a controller that executes reading of the data and writing of the data to the block.
  • At least one block set including n blocks (n is an integer of 2 or more) blocks BR 1 to BR n is set.
  • write data and a write flag can be written in each block BR i (i is an integer of 1 to n) that is a component of the block set.
  • the write data is data that is written in response to a request from the host device.
  • the write flag, the target block BR j (j is associated beforehand block to block BR i of the components of the block set is an integer other than following i 1 or n, different for each value of i (Integer) is a flag indicating that the write data has been written.
  • the control unit selects a block BR k (k is 1 or more and n or less) from among the constituent elements of the block set for which the last write data has been written.
  • the storage device When the storage device configured in this way receives a write request from the host device, it erases the data written in the block with the oldest write timing in the block set and writes new write data in that block.
  • the copy process performed in the reorganization process becomes unnecessary, and an increase in processing load associated with the reorganization process, that is, generation of so-called overhead can be suppressed. As a result, it is possible to suppress the performance degradation of the entire system and the data access response degradation caused by the overhead.
  • the flash memory control device writes data to the block in the flash memory including a plurality of blocks in which data is erased in units of blocks and data is written in units smaller than the blocks.
  • a control unit that executes reading of the inserted data and writing of data to the block, and a plurality of blocks provided in the flash memory, n (n is an integer of 2 or more) blocks BR 1 to BR n And a setting unit for setting at least one block set as a component.
  • the control unit writes data in response to a request from the host device for each block BR i (i is an integer of 1 to n) that is a component of the block set.
  • the target block BR j (j is 1 or more and n or less) that is a block previously associated with the block BR i among the constituent elements of the block set with respect to the block BR i and the first write processing for writing the write data that is And a second write process for writing a write flag indicating that the writing of the write data has been executed at an integer other than i, which is an integer different for each value of i).
  • the control unit selects blocks BR k (where k is 1 or more and n or less) from among the constituent elements of the block set.
  • the copy processing performed in the reorganization processing is not necessary, and an increase in processing load accompanying the reorganization processing, that is, generation of so-called overhead can be suppressed, and the entire system associated therewith Performance degradation and data access response degradation can be suppressed.
  • a program for causing a computer to function as a control unit and a setting unit of a flash memory control device is provided.
  • the computer can function as a flash memory control device.
  • FIG. 1 is a block diagram showing the overall configuration of the storage device
  • FIG. 2 is a schematic diagram for explaining a method for controlling writing to the flash memory.
  • FIG. 3 is a diagram schematically showing the storage area of the block.
  • FIG. 4 is a flowchart for explaining the processing procedure of the data writing process.
  • FIG. 5 is a schematic diagram for explaining the procedure of writing data to the block set.
  • FIG. 6 is a schematic diagram for explaining the procedure of writing data to the block set.
  • FIG. 7 is a flowchart for explaining the processing procedure of data recovery processing.
  • FIG. 8A is a schematic diagram illustrating a data recovery procedure in a block set.
  • FIG. 8B is a schematic diagram for explaining a data recovery procedure in the block set.
  • FIG. 9 is a diagram showing a combination of the states of each block in the data recovery process and the action content. It is a schematic diagram explaining the procedure of the data writing to the block set in a modification.
  • FIG. 1 is a block diagram showing the overall configuration of a storage device 1 on which a flash memory is mounted.
  • the storage device 1 includes a CPU 11, a RAM 13, a ROM 15, a flash controller 17, an input / output interface (I / O) 19, and a flash memory 21, and transmits and receives data via an internal bus 23. Further, power is supplied to each part from the power supply 25.
  • the storage device 1 is a device that constitutes a part of an information processing system mounted and used in a vehicle.
  • a vehicle door ECU that is an example of the host device 3
  • Data indicating the number of times of opening and closing the door is acquired from the door ECU and written.
  • the host device 3 various ECUs of the vehicle can be adopted.
  • the storage device 1 does not have to be used by being mounted on a vehicle, and various information processing devices other than the in-vehicle device can be the host device 3.
  • the CPU 11 controls the storage device 1 according to a plurality of programs 15a (Flash driver software and a plurality of application software) stored in the ROM 15, and responds to an access request from the host device 3 to the flash memory 21. Thus, writing and reading of data to and from the flash memory 21 are controlled.
  • programs 15a Flash driver software and a plurality of application software
  • the data written to the flash memory 21 in response to a request from the host device 3 is described as write data for convenience.
  • the write data is also data read in response to a request from the host device 3. Note that the host device that requests writing and the host device that requests reading do not have to be the same device.
  • the RAM 13 is a work area used by the CPU 11.
  • the RAM 13 functions as a buffer that temporarily holds write data read from the flash memory 21 and write data to be written to the flash memory 21.
  • the flash controller 17 executes processing such as writing processing, reading processing, and erasing processing on the flash memory 21 based on a command given from the CPU 11.
  • the flash memory 21 has 1024 blocks 31 which are the minimum erase unit.
  • Block 31 is a relatively small block with a capacity of 32 bytes per block, and the minimum unit of data storage by additional writing is 2 bytes. Since the number of blocks is 1024, the total storage area is 32 kilobytes. Note that the storage capacity of the block 31, the size of writing, and the number provided in the flash memory 21 are not limited to those described above.
  • a plurality of block sets 37 having three blocks 31 (BR 1 to BR 3 ) as constituent elements are set in the flash memory 21.
  • Blocks BR 1 to BR 3 are codes for identifying each block 31 in the block set 37, and each of the plurality of block sets 37 includes blocks BR 1 to BR 3 .
  • Each block BR i (i is an integer of 1 to 3) that is a constituent element of the block set 37 writes the data section 33 that is a storage area in which the above-described write data can be written, a write flag, and an erasing flag. And a flag section 35 which is a possible storage area.
  • the write flag is a target block BR j (j is an integer obtained by adding 1 to the remainder when i is divided by 3), which is a block previously associated with the block BR i among the components of the block set 37. This flag indicates that writing of write data has been executed.
  • the erasing flag is a flag indicating that processing for erasing data written in the target block BR j (hereinafter also simply referred to as the target block) has started.
  • the write flag and the erasing flag are collectively referred to as a management flag.
  • j is an integer other than i that is greater than or equal to 1 and less than or equal to n, and is an integer that differs for each value of i. This indicates that any block is associated as a target block.
  • variable j can be an integer obtained by adding 1 to the remainder when i + a is divided by n.
  • a is an integer of 0 to n-2.
  • the relationship between the blocks is described using variables such as i, j, k, l, m, p, and q.
  • variables such as i, j, k, l, m, p, and q.
  • the numerical values themselves are used for explanation, and each block is substantially used. As long as the relationship described using the above variables is satisfied.
  • Block BR i management flag indicating information about a different subject block BR j each are writable, they are adapted to circulate in rotation in order.
  • the block 31 is provided with a data area in which a write flag (F) and an erasing flag (M) are written as a flag section 35. Information on the write data of the target block is indicated by a combination of these flags. Since the block 31 has a feature that cannot be overwritten, only the flag cannot be updated. Since each block is the minimum erase unit, the flag is erased by erasing the data stored in the block.
  • F write flag
  • M erasing flag
  • the information indicated by the management flag includes the initial state in which the management flag is not written (hereinafter referred to as “-”) and the state before the write data write is completed after the target block erase process is started. There are three types of “erasing” and “written” which is a state where writing of write data to the target block is completed.
  • the management flag can be indicated by a total of 4 bytes (2 bytes + 2 bytes) for each writing unit of M and F at least.
  • Each block set 37 is given an ID, and three blocks 31 that are components of the block set 37 are linked to the ID.
  • the host device 3 treats one block set 37 as a storage area in which write data having the same capacity as that of one block 31 can be written.
  • the CPU 11 identifies the block set 37 based on the ID information included in the write or read request from the host device 3 and executes writing or reading of the write data for any block 31 in the block set 37 To do.
  • the relationship between the identification information of each block 31 (ID information of the block set 37 to which each block 31 belongs and information for identifying the block within the block set) and the physical address of each block 31 is not shown. It is stored in the conversion table. Note that the relationship between the identification information and the physical address may be configured to be changeable according to the state of the block, for example.
  • the CPU 11 determines whether an update request has occurred. Specifically, when a command for requesting data writing is received from the host device 3, it is determined that an update request has occurred when there is a so-called write access.
  • the CPU 11 searches for the block set 37 associated with the ID (for example, IDx) of the update request generated in S1.
  • the data write request command from the host device 3 includes ID information, and the CPU 11 searches the block set 37 of the ID.
  • the above command does not include ID information, and the CPU 11 searches for a block set of IDs determined in advance according to the type of write request (the type of host device or the type of write data). Also good.
  • the oldest updated block 31 in the block set 37 searched in S2 is specified.
  • the oldest update block that is, the block with the oldest write data write timing can be specified.
  • FIGS. 5 and 6 shows a normal state in which no update request is generated. Also, (ii) to (vi) show changes with the passage of time of (i) above. Figures with the same numbers (i) to (vi) in FIG. 5 and FIG. 6 show the same state. In the figure, a halftone dot in the block indicates that there is data, and a white background indicates that there is no data.
  • the management flag written in the block BR 1 and the block BR 2 indicates “written”, and the management flag written in the block BR 3 indicates “ ⁇ ”.
  • the block in which the management flag indicates “ ⁇ ” is the latest updated block, that is, the block at which the write data is written latest, and the next block BR 1 according to the rotation of the updated latest block BR 3 is among update the oldest block (i.e., blocks that are set as a block to perform the writing of the next write data block BR 3) of the block set 37 is. The reason for this determination will be described later.
  • Block BR 1 as described above (iii) management flag by the data is erased in the initial state - a ".” Therefore, it can be determined that the block in which the management flag indicates “ ⁇ ” is the block in which data is most recently written.
  • the determination and writing order is block BR 1, block BR 2, block BR 3, since the rotation and blocks BR 1 ⁇ ⁇ ⁇ , a block block BR 2 is oldest update when block BR 1 is the latest it can.
  • the block BR 2 is a data write target, and after execution of the process, the state shown in (vi) is obtained.
  • the process of changing the management flag in S7 to “already written”, that is, the completion of the writing of the write flag (F), is important for normal data management. Therefore, it is conceivable to have a holding unit that holds the voltage during the write time to the write flag (F). Although a capacitor may be used as an example of the holding unit, the voltage may be held by another device.
  • the management flag does not exist in any block 31 of the block set 37, for example, after the flash memory 21 is initialized, the data in any block 31 is erased and the write data is written, A management flag indicating “already written” is written in another block 31. As a result, only the block 31 in which the write data is written becomes a block indicating “ ⁇ ” as the management flag, so that the above-described write processing can be executed from the next write request.
  • the CPU 11 checks each management flag of each block 31 in the block set 37 corresponding to all IDs.
  • a management flag indicating “erasing” exists as a result of the confirmation in S11.
  • the case where it is determined in S12 that the management flag indicating “deleting” exists is not limited to the case shown in FIGS. 8A and 8B, but the case of the table shown in FIG. 9 can be considered.
  • F is a state indicating “written” in which both the write flag (F) and the erasing flag (M) are written.
  • This is a state indicating “erasing” in which only the erasing flag (M) is written.
  • the host device 3 here is assumed to be a computer system that acquires vehicle information from the storage device 1, for example. That is, the host device 3 that makes a write request for write data to the storage device 1 and the host device 3 that makes a read request for write data written to the flash memory 21 of the storage device 1 are the same device. There is no need, and a different device may be used.
  • the storage device 1 includes a flash memory 21 including a plurality of blocks 31 in which data is erased in units of blocks and data is written in units smaller than the blocks. (Corresponding to an example of a control unit) controls the flash controller 17 to execute reading of data written to the block 31 and writing of data to the block 31.
  • each block BR i (i is an integer of 1 to n) that is a component of the block set 37, write data that is data written in response to a request from the host device 3 and a target block BR j ( A write flag indicating that write data has been written can be written with j being an integer obtained by adding 1 to the remainder when i is divided by n.
  • the CPU 11 changes the block 31 in which the write data has been written last among the constituent elements of the block set 37 to the block BR k (k is 1 or more and n).
  • the following data is written in the block BR l (l is an integer between 1 and n) set as a block for executing the writing of the write data after the block BR k.
  • erasing processing for erasing data including data and write flag (S5), the first writing process to write new write data in the block BR l and (S6), the block BR l is associated as the target block block A second write process (S7) for writing a write flag to BR m is executed.
  • variable l of the block BR l is more specifically an integer obtained by adding 1 to the remainder when k is divided by n.
  • the block BR m is a block whose target block is the above-mentioned “block to be written next”.
  • the storage device 1 of the present embodiment configured as described above erases data written in the block 31 with the oldest write timing in the block set 37 when writing new write data to the block set 37. To write new write data.
  • the copy process that is executed in the reorganization process becomes unnecessary, and thus an increase in processing load associated with the reorganization process, It is possible to suppress the occurrence of so-called overhead, and to suppress the occurrence of the overall system performance degradation and the data access response degradation.
  • the block next to the block in which the management flag is not written in the rotation order is the target of erasure and writing.
  • the CPU 11 executes a read process for reading the write data written in the block BR k where the write data was written last, so that the latest data is stored.
  • the data can be output to the host device 3.
  • an erasing flag indicating that the above-described erasing process has started for the target block BR j can be written to each block BR i that is a component of the block set 37. It is.
  • the CPU 11 executes a third write process (S4) in which an erasure flag is written in the block BR m when the erase process is started in the block BR 1 in response to a write request for new write data from the host device 3. and, the erasing process to the block BR l after the third write process running (S5), the first write processing (S6) executed block BR l after the erasing process, block after the first writing process
  • the second write process (S7) is performed on BR m .
  • the storage device 1 of the present embodiment can grasp the progress of processing for a write request from the host device by checking the erase flag and the write flag. Specifically, if only the erasing flag is written, it can be determined that the writing process is in progress, and if both the erasing flag and the writing flag are described, it is determined that the writing process is completed. it can.
  • the writing process may not be completed correctly. By detecting such a block, there is a possibility that the writing process is not normal. You can know the existence of certain data.
  • the CPU 11 (corresponding to an example of the detection unit) does not have the write flag written and the erasing flag written when the power is turned on again.
  • Block 31 (corresponding to an example of an erasing suggestion block) is detected (S11, S12).
  • the CPU 11 sets the detected block as the block BR p (p is an integer of 1 to 3), and the target of the block BR p A process (S13) of erasing the data including the write data, the write flag, and the erasure flag written in the block BR q which is a block is executed, and after the process, the block BR q is excluded from the block set.
  • Write data written in any of the blocks is written to the block BR q (S14), and then the second write process (S15) is executed on the block BR p .
  • the write data written in the suggestion block during erasure that is, the newest write data is written in the block BR q .
  • the storage device 1 of the present embodiment determines whether or not there is a block whose management flag indicates “erasing” when the power is turned on again. If such a block exists, the write data written in the block in which the management flag indicating “erasing” is written is replaced with the target block. As a result, even if the writing process is interrupted due to, for example, power loss, it is possible to suppress the loss of the writing data itself, although it is not possible to obtain new writing data that has been written in the interrupted writing process.
  • the S14 may be configured to write the write data written to one of the block other than the block BR q (in erase suggested block) to block BR q.
  • the newly written data can be restored to BR q .
  • the block set 37 is configured by the three blocks 31 , but the block set is not limited to three as long as it is configured by two or more blocks.
  • the management flag of the block BR k is updated to “erasing” in S4 of FIG. 4, when the processing is interrupted due to power loss or the like during the execution of the erasing processing of the target block BR l in S5, the block BR l There is a possibility that only the write flag (F) is erased and the erasing flag (M) remains without being erased. In this case, the management flag written in the block BR 1 indicates “being erased”.
  • the block 31 constituting the block set 37 is two, both of one of the difficulties in determining the management flag written in the block is also data which block for the "erasing" is normal Obviously
  • a block whose management flag has changed from “written” to “erasing” when the blocks are checked in order according to the rotation can be determined as a block in which the latest data before the interrupted writing process is stored.
  • each block BR i that is a component of the block set 37 has a target flag BR j (j is an integer obtained by adding 1 to the remainder when i is divided by n) as a write flag.
  • a target flag BR j (j is an integer obtained by adding 1 to the remainder when i is divided by n) as a write flag.
  • the target block BR j is not limited to the above-described rule, and j may be an integer other than i that is 1 or more and n or less, and may be a different integer for each value of i. If configured in this way, each block in the block set is associated with any other block in the block set as a target block. As a result, the write state of each block can be grasped.
  • the target block BR j described above can be an integer obtained by adding 1 to the remainder when j is divided by i + a and n, for example.
  • a plurality of block sets 37a having five blocks 31a (BR 1 to BR 5 ) as constituent elements are set in the flash memory.
  • Each block has a data portion 33a and a flag portion 35a.
  • the management flag written in the block BR 3 and the block BR 4 indicates “ ⁇ ”.
  • the next data write target is the block BR 5
  • the block having the block BR 5 as the target block is the block BR 3
  • the latest write is performed.
  • We block is a block BR 4.
  • the management flag written in the block BR 3 is updated to “being erased”.
  • the data stored in the block BR 5 that is the target block of the management flag written in the block BR 3 as in (iii) is erased.
  • new write data is written.
  • the management flag is “ ⁇ ” because it has not been written yet.
  • the management flag written in the block BR 3 is updated to “written”.
  • the data writing process for the block set is completed.
  • the next data write target is the block BR 1
  • the block having the block BR 1 as the target block is the block BR 4
  • the latest write block is the block BR 5 . is there.
  • the completion of data writing is determined using the erasing flag and the write flag, and the data recovery process is performed when the flag is not completed.
  • a configuration in which recovery processing is not performed may be used. In that case, either the timing of writing the write data to the block BR 1 or the timing of writing the write flag to the block BR m may be first.
  • the CPU 11 has exemplified the configuration for determining the presence / absence of a block whose management flag indicates “erasing” at the timing when the power is turned on again.
  • the timing is not limited to when the power is turned on again. The above determination can be made at the timing. Note that, during the period from the start of the third write process (S4) to the end of the second write process (S7), a management flag “erasing” occurs even if the write process is not interrupted. It can be considered that the period is excluded.
  • the number n of blocks constituting the block set 37 may be different for each block set 37.
  • the relationship such as BR i , BR j , BR k and the like need not be common for each block set, and may have different relationships for each block set.
  • the host device 3 does not need to be a device existing outside the storage device 1, and may be a device included in the storage device 1.
  • the storage device 1 itself may function as a host device.
  • the CPU 11 executes processing irrelevant to the control of the flash memory 21 to acquire or generate write data, and writes the write data to the flash memory 21 or reads the write data written by the CPU 11
  • the CPU 11 may be used for another process.
  • each function provided in the storage device 1 described above can be realized by a flash memory control device including the CPU 11, RAM 13, ROM 15, flash controller 17, I / O 19, and the like.
  • each function provided in the storage device 1 described above can be realized by a computer by a program.
  • the program consists of an ordered sequence of instructions suitable for processing by a computer, stored in a ROM or RAM incorporated in the computer, and may be loaded and used from there. It may be loaded into a computer and used via various recording media and communication lines.
  • an optical disk such as a CD-ROM or a DVD-ROM, a magnetic disk, a semiconductor memory, and the like can be given.
  • each step is expressed as, for example, S1. Further, each step can be divided into a plurality of sub-steps, while a plurality of steps can be combined into one step.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

 記憶装置は、ブロック単位でデータの消去が行われ、該ブロックよりも小さい単位でデータの書込みが行われるブロック(31)を複数備えるフラッシュメモリ(21)と、ブロックに書込まれたデータの読出しと、ブロックへのデータの書込みと、を実行する制御部(11)と、を備える。フラッシュメモリは、ブロック集合(37)を少なくとも1つ備える。ブロック集合の構成要素である各ブロックBRには、書込みデータと書込みフラグと、が書込み可能である。制御部は、ブロックBRに書込まれていた書込みデータ及び書込みフラグを含むデータを消去する消去処理(S5)と、ブロックBRに新たな書込みデータを書込む第1書込み処理(S6)と、ブロックBRに書込みフラグを書込む第2書込み処理(S7)と、を実行する。

Description

記憶装置、フラッシュメモリ制御装置、及びプログラム 関連出願の相互参照
 本出願は、2014年6月19日に出願された日本国特許出願2014-126658号に基づくものであり、ここにその記載内容を参照により援用する。
 本開示は、フラッシュメモリを備える記憶装置に関する。
 近年、通信機器やAV機器をはじめとする様々な分野の機器においてフラッシュメモリが用いられている。フラッシュメモリは、複数のメモリセルの集合であるブロックを単位としてデータ消去が行われるため、書込み単位のサイズと消去単位のサイズとが異なる場合がある。例えば書込みは数バイト(byte)単位、消去は数十バイト~数キロバイト単位のブロックごとに実施される。
 フラッシュメモリは上書きができない特性上、データをブロック内に順次書込む追記書込みによりデータを管理する場合がある。それにより、例えば、1つのブロック内に追記を繰り返しブロックが満杯になると、満杯になったブロック以外のいずれかのブロックのデータを消去して空きブロックを作成し、有効なデータをコピーする手法が採用される(以降、この処理を再編処理と記載する)。
 再編処理の実行時には、ブロックのデータ消去処理とコピー処理が集中するため、フラッシュメモリを備える記憶システム全体としての処理負荷が増大する結果、再編処理の間はデータへのアクセスに支障が生じやすくなってしまう。
 従来、アクセスがない待機時に再編処理を実行し、再編処理中にデータへアクセスがあった場合、再編処理を中断し、アクセス完了後に再開することで、再編時におけるデータへのアクセスの支障抑制を図るように構成された記憶装置が提案されている(特許文献1参照)。
 本願発明者らは、下記を見出した。上記特許文献1の装置は、再編処理自体は必要となるため、再編処理によって処理負荷が増大する期間が長くなるとシステム全体としてのパフォーマンスが低下するおそれがある。
日本国特許公報第5162846号
 本開示の目的は、処理負荷の増大を抑制できる記憶装置、フラッシュメモリ制御装置、及びプログラムを提供することである。
 本開示の一態様によれば、記憶装置は、ブロック単位でデータの消去が行われ、該ブロックよりも小さい単位でデータの書込みが行われるブロックを複数備えるフラッシュメモリと、上記ブロックに書込まれたデータの読出しと、上記ブロックへのデータの書込みと、を実行する制御部と、を備える。
 この記憶装置における上記フラッシュメモリには、n個(nは2以上の整数)のブロックBR~BRを構成要素とするブロック集合が少なくとも1つ設定されている。
 またブロック集合の構成要素である各ブロックBR(iは1以上n以下の各整数)には、書込みデータと、書込みフラグと、が書込み可能である。書込みデータとは、ホスト装置からの要求に応じて書込まれるデータである。書込みフラグとは、ブロック集合の構成要素のうちブロックBRに予め対応付けられたブロックである対象ブロックBR(jは1以上n以下のi以外の整数であって、iの値ごとに異なる整数)にて上記書込みデータの書込みが実行されたことを示すフラグである。
 そして上記制御部は、ホスト装置からの新たな書込みデータの書込み要求に応じて、ブロック集合の構成要素のうち最後に書込みデータの書込みが実行されたブロックをブロックBR(kは1以上n以下の整数)としたときに、該ブロックBRの次に前記書込みデータの書込みを実行するブロックとして設定されているブロックBR(lは1以上n以下の整数)に書込まれていた書込みデータ及び書込みフラグを含むデータを消去する消去処理と、ブロックBRに新たな書込みデータを書込む第1書込み処理と、対象ブロックとしてブロックBRが対応付けされているブロックBRに上記書込みフラグを書込む第2書込み処理と、を実行する。
 このように構成された記憶装置は、ホスト装置から書込み要求を受けるとブロック集合内において最も書込みタイミングの古いブロックに書込まれたデータを消去してそのブロックに新しい書込みデータを書込む。
 ここで、消去及び書込みを実行すべきブロックがどのブロックであるかは、ブロック集合の構成要素である各ブロックの書込みフラグをチェックすることで確認が可能である。最後に書込まれたブロックがどのブロックであるかによって、当該ブロック集合における書込みフラグの書込まれた状況が変化するためである。
 よって上記記憶装置では、再編処理にて行われるコピー処理が不要になり、再編処理に伴う処理負荷の増大、いわゆるオーバーヘッドの発生を抑制できる。それにより、オーバーヘッドの発生に伴うシステム全体のパフォーマンス低下やデータアクセスのレスポンス低下の発生を抑制できる。
 本開示の別の態様によれば、フラッシュメモリ制御装置は、ブロック単位でデータの消去が行われ、該ブロックよりも小さい単位でデータの書込みが行われるブロックを複数備えるフラッシュメモリにおける上記ブロックに書込まれたデータの読出しと、上記ブロックへのデータの書込みと、を実行する制御部と、フラッシュメモリの備える複数のブロックを、n個(nは2以上の整数)のブロックBR~BRを構成要素とするブロック集合として少なくとも1つ設定する設定部と、を備える。
 このフラッシュメモリ制御装置において、上記制御部は、上記ブロック集合の構成要素である各ブロックBR(iは1以上n以下の各整数)に対してホスト装置からの要求に応じて書込まれるデータである書込みデータを書込む第1書込み処理と、ブロックBRに対して、ブロック集合の構成要素のうちブロックBRに予め対応付けられたブロックである対象ブロックBR(jは1以上n以下のi以外の整数であって、iの値ごとに異なる整数)にて上記書込みデータの書込みが実行されたことを示す書込みフラグを書込む第2書込み処理と、が実行可能である。
 また上記制御部は、ホスト装置からの新たな書込みデータの書込み要求に応じて、ブロック集合の構成要素のうち最後に書込みデータの書込みが実行されたブロックをブロックBR(kは1以上n以下の整数)としたときに、該ブロックBRの次に前記書込みデータの書込みを実行するブロックとして設定されているブロックBR(lは1以上n以下の整数)に書込まれていた書込みデータ及び書込みフラグを含むデータを消去する消去処理と、ブロックBRに対する上記第1書込み処理と、対象ブロックとしてブロックBRが対応付けされているブロックBRに対する上記第2書込み処理と、を実行する。
 フラッシュメモリ制御装置によれば、上述した記憶装置と同様に、再編処理にて行われるコピー処理が不要になり、再編処理に伴う処理負荷の増大、いわゆるオーバーヘッドの発生を抑制でき、それに伴うシステム全体のパフォーマンス低下やデータアクセスのレスポンス低下の発生を抑制できる。
 本開示の別の一態様によれば、フラッシュメモリ制御装置の制御部及び設定部としてコンピュータを機能させるためのプログラムが提供される。
 プログラムによれば、コンピュータをフラッシュメモリ制御装置として機能させることができる。
 本開示についての上記および他の目的、特徴や利点は、添付の図面を参照した下記の詳細な説明から、より明確になる。添付図面において
図1は、記憶装置の全体構成を示すブロック図であり、 図2は、フラッシュメモリへの書込み制御の方法を説明する模式図であり、 図3は、ブロックの記憶領域を模式的に示す図であり、 図4は、データ書込み処理の処理手順を説明するフローチャートであり、 図5は、ブロック集合へのデータ書込みの手順を説明する模式図であり、 図6は、ブロック集合へのデータ書込みの手順を説明する模式図であり、 図7は、データ復旧処理の処理手順を説明するフローチャートであり、 図8Aは、ブロック集合におけるデータ復旧の手順を説明する模式図であり、 図8Bは、ブロック集合におけるデータ復旧の手順を説明する模式図であり、 図9は、データ復旧処理における各ブロックの状態の組み合わせと処置内容を示す図であり、 変形例におけるブロック集合へのデータ書込みの手順を説明する模式図である。
 以下に実施形態を図面と共に説明する。
 [実施形態]
 (1)全体構成
 図1は、フラッシュメモリを搭載してなる記憶装置1の全体構成を示すブロック図である。記憶装置1は、CPU11、RAM13、ROM15、フラッシュ(Flash)コントローラ17、入出力インターフェース(I/O)19、フラッシュメモリ21を備え、内部バス23を介してデータの送受信を行う。また電源25より各部に電力が供給される。
 記憶装置1は車両に搭載されて用いられる情報処理システムの一部を構成する装置であり、ホスト装置3の一例である車両のドアECUからのアクセス(データの書込み又は読出し)要求に応じて、ドアの開閉回数を示すデータをドアECUから取得して書込む。なおホスト装置3としては車両の様々なECUを採用できる。もちろん記憶装置1が車両に搭載されて用いられる装置である必要はなく、車載機器以外でも様々な情報処理装置がホスト装置3となりうる。
 CPU11は、ROM15に記憶されている複数のプログラム15a(Flashドライバソフト及び複数のアプリケーションソフト)に従って、記憶装置1を統括制御するものであり、ホスト装置3からのフラッシュメモリ21へのアクセス要求に応じて、フラッシュメモリ21に対するデータの書込み及び読出しを制御する。
 ホスト装置3からの要求に応じてフラッシュメモリ21に書込まれるデータを、便宜上、書込みデータと記載する。書込みデータはホスト装置3からの要求に応じて読み出されるデータでもある。なお書込みを要求するホスト装置と読出しを要求するホスト装置は同一の装置でなくともよい。
 RAM13はCPU11により使用される作業領域である。またRAM13はフラッシュメモリ21から読み出された書込みデータ及びフラッシュメモリ21に書込むべき書込みデータを一時的に保持するバッファとして機能する。
 フラッシュコントローラ17は、CPU11から与えられる指令に基づいてフラッシュメモリ21に対する書込み処理、読出し処理、消去処理等の処理を実行する。
 フラッシュメモリ21は、最小消去単位であるブロック31を1024個有している。
 ブロック31は、1ブロックあたりの容量が32バイトである比較的小さいブロックであり、追記書込みによるデータの記憶の最小単位は2バイトである。またブロックの個数が1024であるため総記憶領域は32キロバイトとなる。なお、ブロック31の記憶容量、書込みのサイズ及びフラッシュメモリ21に設けられる個数は上述したものに限定されない。
 本実施形態におけるフラッシュメモリ21への書込み制御の方法を、ブロック31を模式的に示す図2を用いて説明する。
 フラッシュメモリ21には、3つのブロック31(BR~BR)を構成要素とするブロック集合37が複数設定されている。なおブロックBR~BRはブロック集合37内の各ブロック31を識別する符号であり、複数のブロック集合37それぞれにブロックBR~BRが含まれる。
 ブロック集合37の構成要素である各ブロックBR(iは1以上3以下の各整数)は、上述した書込みデータを書込み可能な記憶領域であるデータ部33と、書込みフラグ及び消去中フラグを書込み可能な記憶領域であるフラグ部35と、を有している。
 書込みフラグとは、ブロック集合37の構成要素のうちブロックBRに予め対応付けられたブロックである対象ブロックBR(jはiを3で除算したときの剰余に1を加算した整数)にて書込みデータの書込みが実行されたことを示すフラグである。また消去中フラグとは、対象ブロックBR(以降、単に対象ブロックとも記載する)に書込まれたデータを消去する処理が開始されたことを示すフラグである。以降、書込みフラグ及び消去中フラグを合せて管理フラグと記載する。
 上述した対象ブロックBRについて、jは1以上n以下のi以外の整数であって、iの値ごとに異なる整数であるが、これは即ち、ブロック集合の各ブロックは、ブロック集合における他のいずれかのブロックに対象ブロックとして対応付けられているということを表わす。
 対象ブロックのより具体的な例としては、変数jはi+aをnで除算したときの剰余に1を加算した整数とすることができる。aとは0以上n-2以下の整数である。
 実施形態においてブロックの関係はi,j,k,l,m,p,qなどの変数を用いて説明されるが、数値自体は説明のために用いているものであり、各ブロックが実質的に上記変数を用いて説明される関係を満たしていればよい。
 次に、ブロックBRに書込まれた管理フラグが示す対象ブロックBRの情報について説明する。
 図2に示すIDxのブロック集合37において矢印で示すように、ブロックBRのフラグ部35に書込まれる管理フラグは対象ブロックBRに関する情報を示している(対象ブロックBRの状態を監視している)。ブロックBRはそれぞれ異なる対象ブロックBRに関する情報を示す管理フラグが書込み可能であり、それらが順番にローテーションして循環するようになっている。
 ブロック31には、図3に示すように、フラグ部35として書込みフラグ(F)及び消去中フラグ(M)を書込むデータ領域が設けられている。対象ブロックの書込みデータの情報はこれらのフラグの組み合わせにより示される。なおブロック31は上書きすることができない特徴を有しているため、フラグのみを更新することはできない。各ブロックが最小消去単位であるため、ブロックに記憶されたデータを消去することでフラグも消去される。
 管理フラグにより示される情報は、管理フラグが書込まれていない初期状態(以降「-」と記載する)と、対象ブロックの消去処理が開始されてから書込みデータの書込みが完了する前の状態である「消去中」と、対象ブロックへの書込みデータの書込みが完了した状態である「書込み済」と、の3つである。
 具体的には、M=blank,F=blank(blankは、フラッシュコントローラ17によりブロックの消去が実行された状態の初期値)のときは「-」であり、消去中フラグ(M)のみが書込まれた状態、即ちM=非blank,F=blankのときは「消去中」である。
 また、消去中フラグ(M)と書込みフラグ(F)の両方が書込まれた状態、即ちM=非blank,F=非blankのときは「書込み済」である。なお、少なくともM,Fそれぞれの1書込み単位分の合計4バイト(2バイト+2バイト)で管理フラグを示すことができる。
 説明を図2に戻る。各ブロック集合37にはIDが与えられており、ブロック集合37の構成要素である3つのブロック31がそのIDに紐付けられている。例えば図2では、ID1~IDxまでのブロック集合37が存在しており、各ブロック集合37は3つのブロック31により構成される。
 1つのブロック集合37には3つのブロック31が存在するため、データ部33も3つ存在する。ホスト装置3は、1つのブロック集合37を1つのブロック31と同じ容量の書込みデータが書込み可能である記憶領域として扱う。CPU11は、ホスト装置3からの書込み又は読出しの要求に含まれるID情報に基づいてブロック集合37を特定し、そのブロック集合37のいずれかのブロック31を対象とした書込みデータの書込み又は読出しを実行する。
 なお、各ブロック31の識別情報(各ブロック31の属するブロック集合37のID情報及びブロック集合内で該ブロックを識別するための情報)と、各ブロック31の物理アドレスと、の関係は、図示しない変換テーブルに記憶されている。なお識別情報と物理アドレスの関係は例えばブロックの状態に応じて変更可能に構成されていてもよい。
 (2)CPU11による処理
 (2.1)データ書込み処理
 図4に示すフローチャートに基づいて、CPU11によるブロック集合37へのデータ書込み処理の処理手順を説明する。
 まずS1では、CPU11は更新要求が発生したか否かを判断する。具体的には、ホスト装置3からデータの書込みを要求するコマンドを受信したとき、いわゆる書込みのアクセスがあったときに更新要求が発生したと判断する。
 次のS2では、CPU11はS1にて発生した更新要求のID(例えばIDx)と紐づくブロック集合37を検索する。ホスト装置3からのデータ書込み要求のコマンドにはID情報が含まれており、CPU11はそのIDのブロック集合37を検索する。なお上記コマンドにはID情報は含まれておらず、CPU11は書込み要求の種類(ホスト装置の種類、又は書込みデータの種類)に応じて予め定められたIDのブロック集合を検索する構成であってもよい。
 次のS3では、S2で検索したブロック集合37内の更新最古のブロック31を特定する。ブロック集合37内の全てのブロック31に書込まれた管理フラグをチェックすることで、更新最古のブロック、即ち書込みデータが書込まれたタイミングが最も古いブロックを特定することができる。
 図5及び図6における(i)は更新要求が発生していない状態である通常状態を示している。また(ii)~(vi)は上記(i)の時間経過に伴う変化を示している。図5と図6とで同一の番号(i)~(vi)が付いている図は同一の状態を示している。なお、図において、ブロック中の網点はデータ有りを表し、白地はデータなしを表す。
 図5の(i)において、ブロックBR,ブロックBRに書込まれた管理フラグは「書込み済」を示しており、ブロックBRに書込まれた管理フラグは「-」を示している。管理フラグが「-」を示しているブロックが更新最新のブロック、即ち書込みデータが書込まれたタイミングが最も新しいブロックであり、更新最新のブロックBRのローテーションに従った次のブロックBRがブロック集合37のうち更新最古のブロック(即ち、ブロックBRの次に書込みデータの書込みを実行するブロックとして設定されているブロック)である。このように判断できる理由は後述する。
 以下の処理については、説明の便宜上、図5及び図6に示す状態を例として説明する。
 次のS4では、図5における(ii)のように、ブロックBRに書込まれた管理フラグが「消去中」に更新される。具体的には図6の(ii)のように消去中フラグ(M)が書込まれてM=非blankとなる。
 次のS5では、図5及び図6における(iii)のようにブロックBRに書込まれた管理フラグの対象ブロックであるブロックBRに記憶されたデータが消去される。ブロックBRには書込みデータ及び管理フラグが記憶されているため、これらが削除される。
 次のS6では、ブロックBRにデータ書込みが行われる。具体的には、図5及び図6における(iv)のように、新たな書込みデータが書込まれる。管理フラグは未だ書込まれていないため「-」となる。
 次のS7では、図5の(v)に示すように、ブロックBRに書込まれた管理フラグが「書込み済」に更新される。具体的には図6の(v)のように書込みフラグ(F)が書込まれてF=非blankとなる。
 以上の手順によりIDxのブロック集合に対するデータの書込み処理が終了する。上述したようにブロックBRは(iii)にてデータが消去されることで管理フラグが初期状態「-」となる。よって、管理フラグが「-」を示すブロックが最も新しくデータが書込まれたブロックであると判断できる。また書込みの順番はブロックBR,ブロックBR,ブロックBR,ブロックBR・・・とローテーションすることから、ブロックBRが最新であるときにはブロックBRが更新最古のブロックであると判断できる。
 次回のデータ書込み処理においてはブロックBRがデータ書込みの対象となり、処理実行後は(vi)に示す状態となる。
 なお、上記S7における管理フラグを「書込み済」へ変更する処理、即ち書込みフラグ(F)の書込みが正常に完了することは、データを正常に管理する上で重要である。従って、書込みフラグ(F)への書込み時間中の電圧保持を行う保持部を有することが考えられる。保持部の一例としてコンデンサを用いることが考えられるが、他の装置により電圧保持がなされてもよい。
 ところで、例えばフラッシュメモリ21を初期化した後など、ブロック集合37のいずれのブロック31にも管理フラグが存在しない場合には、いずれかのブロック31のデータを消去して書込みデータを書込むと共に、他のブロック31に「書込み済」を示す管理フラグを書込む。それにより、書込みデータを書込んだブロック31のみが管理フラグとして「-」を示すブロックとなるため、次回の書込み要求が発生したときから上述した書込み処理を実行できる。
 (2.2)データ復旧処理
 図7に示すフローチャートに基づいて、CPU11によるデータ復旧処理の処理手順を説明する。本処理は、電源喪失から復帰したタイミング、つまり電源が再投入されて装置が起動し、CPU11が本処理を実行できるようになったタイミングで開始される。
 まずS11では、CPU11は全てのIDに対応するブロック集合37内の各ブロック31の各管理フラグを確認する。
 次のS12では、S11の確認の結果「消去中」を示す管理フラグが存在するか否かを判断する。上述したように、管理フラグが「消去中」を示すのは、消去中フラグ(M)=非blank,かつ書込みフラグ(F)=blankのときである。即ちS12では書込みフラグが書込まれておらず消去中フラグが書込まれているブロック(消去中示唆ブロック)を検出する。このような管理フラグが無ければ(S12:NO)、即ち消去中示唆ブロックが検出されなければ、全てのブロック集合37は通常状態であると考えられるため、特別な処理を行わず本処理を終了する。
 一方、S12にて「消去中」を示す管理フラグが存在する場合(S12:YES)、即ち消去中示唆ブロックが検出された場合、例えば図8Aの(vii)~(ix)の状態のときには、データ書込み処理の中断があったと考えられるため、続くS13以降の処理を行う。なお図8Aの(vii)~(ix)は図5の(ii)~(iv)とそれぞれ同じ管理フラグの状態である。
 以下の処理については、説明の便宜上、図8Aと図8Bに示す状態を例として説明する。
 S13では、図8Bの(x)に示すように、「消去中」を示すブロックBRに書込まれた管理フラグが監視する対象ブロックBRのデータを消去する。
 そして次のS14において、図8Bの(xi)に示すように、S13にてデータを消去した対象ブロックBRに当該ブロック集合37における最新データを書込むことにより、データを復旧する。最新データとは、「消去中」を示す管理フラグが書込まれたブロックBRに書込まれた書込みデータである。
 次のS15では、図8Bの(xii)に示すように、ブロックBRに書込まれた管理フラグが「書込み済」に更新される。具体的にはブロックBRに書込みフラグ(F)を書込む。その後、本処理を終了する。
 ところで、S12において「消去中」を示す管理フラグが存在すると判断される場合は図8Aと図8Bに示す場合に限られず、図9に示す表の場合が考えられる。図9の表に示される状態の組み合わせの項目において、Fとは書込みフラグ(F)及び消去中フラグ(M)の両方が書込まれている「書込み済」を示す状態であり、Mとは消去中フラグ(M)のみが書込まれている「消去中」を示す状態である。
 状態番号1,5,9のときは、通常状態であるため、データ復旧処理を行うことはない。一方その他の状態番号のとき、つまり状態にMが存在するときは、上記S13~S15の処理を実行して書込みデータを復旧させる。
 ここで、状態番号3,7,11ではMが2つ存在する。図5及び図6に示すように、「消去中」を示す管理フラグが2つ存在する状態は想定されるシーケンスからは起こり得ないが、ブロック31の消去処理中に電源が遮断された場合にはデータが不安定になり、例えば書込みフラグ(F)のみが削除されることで偶然にMの状態となる可能性ある。従って、Mが2つ存在する状態も表中に示される。
 (2.3)データ読出し処理
 CPU11は、ホスト装置3からデータの読出しを要求するコマンドを受信したとき、いわゆる読出しのアクセスがあったときに、読出しを要求されたブロック集合37内の全てのブロック31に書込まれた管理フラグをチェックして、書込みフラグが書込まれておらず、管理フラグが「-」を示しているブロックを検出する。そして、当該ブロックに書込まれた書込みデータを読み出し、ホスト装置3に出力する。
 なおここでいうホスト装置3とは、例えば記憶装置1から車両情報を取得するコンピュータシステムが想定される。つまり、記憶装置1に対して書込みデータの書込み要求を行うホスト装置3と、記憶装置1のフラッシュメモリ21に書込まれた書込みデータの読出し要求を行うホスト装置3と、は同一の装置である必要はなく、異なる装置であってもよい。
 (3)効果
 本実施形態の記憶装置1は、ブロック単位でデータの消去が行われ、該ブロックよりも小さい単位でデータの書込みが行われるブロック31を複数備えるフラッシュメモリ21を備えており、CPU11(制御部の一例に相当する)がフラッシュコントローラ17を制御して、ブロック31に書込まれたデータの読出しと、ブロック31へのデータの書込みと、を実行する。
 フラッシュメモリ21には、n個(本実施形態においてはn=3)のブロックBR~BRを構成要素とするブロック集合37が少なくとも1つ設定されている。より具体的には、CPU11(設定部の一例に相当する)が各ブロック31を、各ブロック31の識別情報と各ブロック31の物理アドレスとの関係を示す変換テーブルに基づいてブロック集合37として設定する。
 ブロック集合37の構成要素である各ブロックBR(iは1以上n以下の各整数)には、ホスト装置3からの要求に応じて書込まれるデータである書込みデータと、対象ブロックBR(jはiをnで除算したときの剰余に1を加算した整数)にて書込みデータの書込みが実行されたことを示す書込みフラグと、が書込み可能である。
 そしてCPU11は、ホスト装置3からの新たな書込みデータの書込み要求に応じて、ブロック集合37の構成要素のうち最後に書込みデータの書込みが実行されたブロック31をブロックBR(kは1以上n以下の整数)としたときに、該ブロックBRの次に前記書込みデータの書込みを実行するブロックとして設定されているブロックBR(lは1以上n以下の整数)に書込まれていた書込みデータ及び書込みフラグを含むデータを消去する消去処理(S5)と、ブロックBRに新たな書込みデータを書込む第1書込み処理(S6)と、対象ブロックとしてブロックBRが対応付けされているブロックBRに書込みフラグを書込む第2書込み処理(S7)と、を実行する。
 なお本実施形態において、ブロックBRの変数lはより詳細にはkをnで除算したときの剰余に1を加算した整数である。
 またブロックBRは、上述した“次に書込みを行うブロック”を対象ブロックとするブロックである。
 このように構成された本実施形態の記憶装置1は、ブロック集合37に対して新たな書込みデータを書込むときには、ブロック集合37内において最も書込みタイミングの古いブロック31に書込まれたデータを消去して新しい書込みデータを書込む。
 よって、他のブロックへのデータのコピー処理を伴う再編処理を実行する従来の記憶装置と比較すると、再編処理にて実行されるコピー処理が不要となるため、再編処理に伴う処理負荷の増大、いわゆるオーバーヘッドの発生を抑制でき、それに伴うシステム全体のパフォーマンス低下やデータアクセスのレスポンス低下の発生を抑制できる。
 なお、消去及び書込みを実行するブロックがどのブロックであるかは、ブロック集合37を構成する各ブロックの管理フラグをチェックすることで確認が可能である。上記実施形態では、ローテーション順序により管理フラグに書込みがないブロックの次のブロックが消去及び書込みの対象となる。
 またCPU11は、ホスト装置3からのデータ読出し要求に応じて、最後に書込みデータの書込みが実行されたブロックBRに書込まれていた書込みデータを読み出す読出し処理を実行するので、最新のデータをホスト装置3に出力することができる。
 また本実施形態の記憶装置1では、ブロック集合37の構成要素である各ブロックBRには、上記対象ブロックBRに対して上述した消去処理が開始されたことを示す消去中フラグが書込み可能である。
 CPU11は、ホスト装置3からの新たな書込みデータの書込み要求に応じてブロックBRに消去処理が開始されたときに、ブロックBRに消去中フラグを書込む第3書込み処理(S4)を実行し、該第3書込み処理の後にブロックBRに消去処理(S5)を実行し、該消去処理の後にブロックBRに第1書込み処理(S6)を実行し、該第1書込み処理の後にブロックBRに第2書込み処理(S7)を実行する。
 即ち本実施形態の記憶装置1は、消去フラグと書込みフラグとをチェックすることでホスト装置からの書込み要求に対する処理の経過を把握することができる。具体的には、消去中フラグのみが書込まれていれば書込み処理の途中であると判断でき、消去中フラグと書込みフラグとの両方が記載されていれば書込み処理が完了していると判断できる。
 そして、書込み処理の実行中でないときに書込み処理の途中であると判断されたとすると、書込み処理が正しく完了していない可能性があり、そのようなブロックを検出することで、正常でない可能性のあるデータの存在を知ることができる。
 また本実施形態の記憶装置1において、CPU11(検出部の一例に相当する)は、電源を再投入されたときに、書込みフラグが書込まれておらず、かつ消去中フラグが書込まれているブロック31(消去中示唆ブロックの一例に相当する)を検出する(S11、S12)。
 そしてCPU11は、上述した消去中示唆ブロックであるブロック31が検出されたときには、該検出されたブロックをブロックBR(pは1以上3以下の整数)としたときに、該ブロックBRの対象ブロックであるブロックBRに書込まれていた書込みデータ、書込みフラグ、及び消去中フラグを含むデータを消去する処理(S13)を実行し、該処理の後に、ブロック集合のうちブロックBRを除くいずれかのブロックに書込まれている書込みデータをブロックBRに書込み(S14)、その後にブロックBRに第2書込み処理(S15)を実行する。本実施形態では、S14において、消去中示唆ブロックに書込まれた書込みデータ、即ち最も新しい書込みデータをブロックBRに書込む。
 即ち本実施形態の記憶装置1は、電源が再投入されたときに管理フラグが「消去中」を示すブロックの有無を判定する。そしてそのようなブロックが存在する場合には、上記「消去中」を示す管理フラグが書込まれたブロックに書込まれている書込みデータを、対象ブロックに置き換える。これにより、書込み処理が例えば電源喪失により中断したとしても、中断した書込み処理にて書込みを実行していた新しい書込みデータを得ることはできないものの、書込みデータ自体を損失してしまうことを抑制できる。
 また、電源再投入をトリガに上述した処理を行うことから、正常でないデータが利用される可能性が低く、都合がよい。
 なお、S14においては、ブロックBR(消去中示唆ブロック)以外のいずれかのブロックに書込まれている書込みデータをブロックBRに書込む構成としてもよい。但し、上述したようにブロックBRに書込まれている書込みデータを用いることで、より新しく書込まれた書込みデータをBRに復旧させることができる。
 [その他の実施形態]
 以上実施形態について説明したが、本開示は、上記実施形態に何ら限定されることはなく、本開示の技術的範囲に属する限り種々の形態をとり得ることはいうまでもない。
 例えば、上記実施形態においては3つのブロック31からブロック集合37がなる構成を例示したが、ブロック集合は2つ以上のブロックによって構成されていればよく、3つに限定されることはない。
 なお、2つのブロック31によりブロック集合37を構成する場合には、3つ以上のブロック31によりブロック集合37を構成する場合と比較して書込み処理が中断したことの検出の精度が低下する。その理由を以下に説明する。
 図4のS4にてブロックBRの管理フラグを「消去中」に更新した後、S5にて対象ブロックBRの消去処理の実行中に電源喪失等により処理が中断した場合において、ブロックBRの書込みフラグ(F)のみが消去され消去中フラグ(M)が消去されずに残る可能性がある。その場合、ブロックBRに書込まれた管理フラグは「消去中」を示すこととなる。
 ここで、ブロック集合37を構成するブロック31が2つであると、いずれものブロックに書込まれた管理フラグも「消去中」となるためどのブロックのデータが正常であるかの判断が困難になる。
 一方、ブロック集合37を構成するブロック31が3つ以上あれば、少なくとも1つは管理フラグが「書込み済」となるブロック31が存在することとなる。そしてローテーションに従ってブロックを順番にチェックしたときに管理フラグが「書込み済」から「消去中」に変化したブロックが、中断された書込み処理を行う以前の最新のデータが記憶されたブロックと判断できる。
 また上記実施形態においては、ブロック集合37の構成要素である各ブロックBRには、書込みフラグとして、対象ブロックBR(jはiをnで除算したときの剰余に1を加算した整数)にて書込みデータの書込みが実行されたことを示すフラグを書込む構成を例示した。
 しかしながら、対象ブロックBRは上述した規則に限られず、jが1以上n以下のi以外の整数であって、iの値ごとに異なる整数であれよい。このように構成されていれば、ブロック集合の各ブロックは、ブロック集合における他のいずれかのブロックに対象ブロックとして対応付けられているということになる。その結果、各ブロックの書込み状態を把握することができる。
 上述した対象ブロックBRは、例えば、jをi+aをnで除算したときの剰余に1を加算した整数とすることができる。aとは0以上n-2以下の整数であり、上記実施形態においては、a=0となる。また、a=1とした場合のフラッシュメモリへの書込み制御の方法を、図10を用いて説明する。
 フラッシュメモリには、5つのブロック31a(BR~BR)を構成要素とするブロック集合37aが複数設定されている。各ブロックはデータ部33aとフラグ部35aとを有している。
 図10の(i)において、ブロックBR,ブロックBRに書込まれた管理フラグは「-」を示している。次のデータ書込みを行う対象はブロックBRであり、ブロックBRを対象ブロックとするブロック(ブロックBRを監視する管理フラグが書込まれるブロック)はブロックBRであり、最新の書込みが行われたブロックはブロックBRである。
 書込みを行うときには、まず(ii)のように、ブロックBRに書込まれた管理フラグが「消去中」に更新される。次に、(iii)のようにブロックBRに書込まれた管理フラグの対象ブロックであるブロックBRに記憶されたデータが消去される。次に、(iv)のように、新たな書込みデータが書込まれる。管理フラグは未だ書込まれていないため「-」となる。
 そして、(v)に示すように、ブロックBRに書込まれた管理フラグが「書込み済」に更新される。以上の手順によりブロック集合に対するデータの書込み処理が終了する。上記(v)のとき、次のデータ書込みを行う対象はブロックBRであり、ブロックBRを対象ブロックとするブロックはブロックBRであり、最新の書込みが行われたブロックはブロックBRである。
 このように、対象ブロックBRを、jがi+aをnで除算したときの剰余に1を加算した整数とするブロックとすることで、ブロック集合内のブロックに順番に書込みを実現することができる。
 また上記実施形態においては消去中フラグと書込みフラグとを用いてデータ書込みの完了を判断し、完了していない場合にはデータ復旧処理を行う構成を例示したが、消去中フラグを用いず、データ復旧処理を行わない構成であってもよい。その場合には、書込みデータをブロックBRに書込むタイミングとブロックBRに書込みフラグを書込むタイミングとはどちらが先であってもよい。
 また上記実施形態においては、CPU11は電源を再投入したタイミングで管理フラグが「消去中」を示すブロックの有無を判定する構成を例示したが、そのタイミングは電源再投入時に限定されず、様々なタイミングにおいて上記判定を行うことが可能である。なお、第3書込み処理(S4)を開始してから第2書込み処理(S7)を終了するまでの期間は、書込み処理が中断されていなくても「消去中」という管理フラグが発生するため、その期間は除くタイミングとすることが考えられる。
 また上記実施形態においては、ブロック集合37を構成するブロックの数nは、ブロック集合37ごとに異なっていてもよい。例えば、ID1に紐付けられたブロック集合37はn=3、ID2に紐付けられたブロック集合はn=5とする構成であってもよい。
 また、ブロック集合ごとにBR,BR,BRなどの関係性が共通である必要はなく、ブロック集合ごとに異なる関係性を有していてもよい。例えば、ID1及びID2に紐付けられたブロック集合37はいずれもn=5であり、ID1に紐付けられたブロック集合37は図10のように変数a=1として書込み制御され、ID2に紐付けられたブロック集合37は変数a=0として書込み制御されるように構成されていてもよい。
 またホスト装置3は記憶装置1の外部に存在する装置である必要はなく、記憶装置1に含まれている装置であってもよい。また記憶装置1自身がホスト装置として機能する構成であってもよい。つまり、CPU11がフラッシュメモリ21の制御とは無関係の処理を実行して書込みデータを取得または生成し、その書込みデータをフラッシュメモリ21へ書込む構成や、CPU11が書込まれた書込みデータを読み出して、CPU11が別の処理に利用する構成であってもよい。
 ところで、上述した記憶装置1が備える各機能は、CPU11、RAM13、ROM15、フラッシュコントローラ17、I/O19等を有するフラッシュメモリ制御装置によって実現することができる。
 また、上述した記憶装置1が備える各機能は、プログラムによりコンピュータに実現させることができる。
 上記プログラムは、コンピュータによる処理に適した命令の順番付けられた列からなるものであって、コンピュータに組み込まれるROMやRAMなどに記憶され、これらからコンピュータにロードされて用いられてもよいし、各種記録媒体や通信回線を介してコンピュータにロードされ用いられるものであってもよい。
 コンピュータにプログラムをロードするための上述した記録媒体としては、CD-ROMやDVD-ROM等の光ディスク、磁気ディスク、半導体製メモリ等が挙げられる。
 なお、フローチャート、あるいは、フローチャートの処理は、複数のステップ(あるいはセクションと言及される)から構成され、各ステップは、たとえば、S1と表現される。さらに、各ステップは、複数のサブステップに分割されることができる、一方、複数のステップが合わさって一つのステップにすることも可能である。
 以上、記憶装置、フラッシュメモリ制御装置、及びプログラムの実施形態、構成、態様を例示したが、記憶装置、フラッシュメモリ制御装置、及びプログラムに係わる実施形態、構成、態様は、上述した各実施形態、各構成、各態様に限定されるものではない。例えば、異なる実施形態、構成、態様にそれぞれ開示された技術的部を適宜組み合わせて得られる実施形態、構成、態様についても本開示に係わる実施形態、構成、態様の範囲に含まれる。

 

Claims (7)

  1.  ブロック単位でデータの消去が行われ、該ブロックよりも小さい単位でデータの書込みが行われるブロック(31)を複数備えるフラッシュメモリ(21)と、
     前記ブロックに書込まれたデータの読出しと、前記ブロックへのデータの書込みと、を実行する制御部(11)と、を備え、
     前記フラッシュメモリは、n個(nは2以上の整数)の前記ブロックBR~BRを構成要素とするブロック集合(37)を少なくとも1つ備え、
     前記ブロック集合の構成要素である各ブロックBR(iは1以上n以下の各整数)には、ホスト装置(3)からの要求に応じて書込まれる書込みデータと、前記ブロック集合の構成要素のうちブロックBRに予め対応付けられた対象ブロックBR(jは1以上n以下のi以外の整数であって、iの値ごとに異なる整数)にて前記書込みデータの書込みが実行されたことを示す書込みフラグと、が書込み可能であり、
     前記制御部は、前記ホスト装置からの新たな書込みデータの書込み要求に応じて、前記ブロック集合の構成要素のうち最後に前記書込みデータの書込みが実行されたブロックをブロックBR(kは1以上n以下の整数)としたときに、該ブロックBRの次に前記書込みデータの書込みを実行するブロックとして設定されているブロックBR(lは1以上n以下の整数)に書込まれていた前記書込みデータ及び前記書込みフラグを含むデータを消去する消去処理(S5)と、前記ブロックBRに前記新たな書込みデータを書込む第1書込み処理(S6)と、前記対象ブロックとして前記ブロックBRが対応付けされているブロックBRに前記書込みフラグを書込む第2書込み処理(S7)と、を実行する記憶装置。
  2.  前記制御部は、前記ホスト装置からのデータ読出し要求に応じて、前記ブロック集合の構成要素のうち最後に前記書込みデータの書込みが実行されたブロックに書込まれていた前記書込みデータを読み出す請求項1に記載の記憶装置。
  3.  前記ブロック集合の構成要素である各ブロックBRには、前記対象ブロックBRに対して前記消去処理が開始されたことを示す消去中フラグが書込み可能であり、
     前記制御部は、前記ホスト装置からの新たな書込みデータの書込み要求に応じて前記ブロックBRに前記消去処理が開始されたときに、前記ブロックBRに前記消去中フラグを書込む第3書込み処理(S4)を実行し、該第3書込み処理の後に前記ブロックBRに前記消去処理を実行し、該消去処理の後に前記ブロックBRに前記第1書込み処理を実行し、該第1書込み処理の後に前記ブロックBRに前記第2書込み処理を実行する
     請求項1又は請求項2に記載の記憶装置。
  4.  前記制御部が前記第3書込み処理を開始してから前記第2書込み処理を終了するまでの期間を除く所定のタイミングにおいて、前記書込みフラグが書込まれておらず、かつ前記消去中フラグが書込まれている前記ブロックである消去中示唆ブロックを検出する検出部(11)をさらに備え、
     前記制御部は、前記検出部により前記ブロックが検出されたときには、該検出されたブロックをブロックBR(pは1以上n以下の整数)としたときに、該ブロックBRの前記対象ブロックであるブロックBRに書込まれていた前記書込みデータ及び前記書込みフラグを含むデータを消去し、該データの消去の後に前記ブロック集合の構成要素である各ブロックのうち前記ブロックBRを除く前記ブロックのいずれかに書込まれている前記書込みデータを前記ブロックBRに書込み、前記ブロックBRに前記書込みフラグを書込む
     請求項3に記載の記憶装置。
  5.  ブロック単位でデータの消去が行われ、該ブロックよりも小さい単位でデータの書込みが行われるブロック(31)を複数備えるフラッシュメモリ(21)における前記ブロックに書込まれたデータの読出しと、前記ブロックへのデータの書込みと、を実行する制御部(11)と、
     前記フラッシュメモリの備える前記複数のブロックを、n個(nは2以上の整数)の前記ブロックBR~BRを構成要素とするブロック集合を少なくとも1つ有する設定部(11)と、を備え、
     前記制御部は、前記ブロック集合の構成要素である各ブロックBR(iは1以上n以下の各整数)に対してホスト装置からの要求に応じて書込まれるデータである書込みデータを書込む第1書込み処理(S6)と、前記ブロックBRに対して、前記ブロック集合の構成要素のうちブロックBRに予め対応付けられたブロックである対象ブロックBR(jは1以上n以下のi以外の整数であって、iの値ごとに異なる整数)にて前記書込みデータの書込みが実行されたことを示す書込みフラグを書込む第2書込み処理(S7)と、が実行可能であり、
     前記制御部は、前記ホスト装置からの新たな書込みデータの書込み要求に応じて、前記ブロック集合の構成要素のうち最後に前記書込みデータの書込みが実行されたブロックをブロックBR(kは1以上n以下の整数)としたときに、該ブロックBRの次に前記書込みデータの書込みを実行するブロックとして設定されているブロックBR(lは1以上n以下の整数)に書込まれていた前記書込みデータ及び前記書込みフラグを含むデータを消去する消去処理(S5)と、前記ブロックBRに対する前記第1書込み処理と、前記対象ブロックとして前記ブロックBRが対応付けされているブロックBRに対する前記第2書込み処理と、を実行するフラッシュメモリ制御装置。
  6.  請求項5に記載のフラッシュメモリ制御装置の前記制御部及び前記設定部としてコンピュータを機能させるためのプログラム。
  7.  請求項6に記載のプログラムを記憶する、コンピュータ読み取り可能な非一時的な記憶媒体。

     
PCT/JP2015/002719 2014-06-19 2015-05-29 記憶装置、フラッシュメモリ制御装置、及びプログラム Ceased WO2015194100A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201580032181.9A CN106415505B (zh) 2014-06-19 2015-05-29 存储装置和闪存存储器控制装置
US15/314,573 US9773562B2 (en) 2014-06-19 2015-05-29 Storage apparatus, flash memory control apparatus, and program
DE112015002881.1T DE112015002881B4 (de) 2014-06-19 2015-05-29 Speichervorrichtung, Flash-Speicher-Steuervorrichtung und Programm

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014126658A JP6241373B2 (ja) 2014-06-19 2014-06-19 記憶装置、フラッシュメモリ制御装置、及びプログラム
JP2014-126658 2014-06-19

Publications (1)

Publication Number Publication Date
WO2015194100A1 true WO2015194100A1 (ja) 2015-12-23

Family

ID=54935114

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/002719 Ceased WO2015194100A1 (ja) 2014-06-19 2015-05-29 記憶装置、フラッシュメモリ制御装置、及びプログラム

Country Status (5)

Country Link
US (1) US9773562B2 (ja)
JP (1) JP6241373B2 (ja)
CN (1) CN106415505B (ja)
DE (1) DE112015002881B4 (ja)
WO (1) WO2015194100A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6645225B2 (ja) * 2016-02-04 2020-02-14 株式会社デンソー データ保全装置
CN115145617A (zh) * 2022-06-20 2022-10-04 潍柴动力股份有限公司 Ecu程序的刷写方法、刷写装置、处理器与车辆
CN119883944A (zh) * 2024-11-18 2025-04-25 天翼云科技有限公司 存储数据垃圾回收方法、写数据方法、装置及存储系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004118937A (ja) * 2002-09-26 2004-04-15 Renesas Technology Corp 不揮発性メモリおよびこれを有したデータ記憶装置
JP2005222202A (ja) * 2004-02-04 2005-08-18 Matsushita Electric Ind Co Ltd 不揮発性記憶装置のデータ保護方法
JP2010108436A (ja) * 2008-10-31 2010-05-13 Hochiki Corp フラッシュメモリを備えた制御装置及びフラッシュメモリへのデータ書込み方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0398545A1 (en) * 1989-05-19 1990-11-22 Delco Electronics Corporation Method and apparatus for storing data in a non-volatile memory
US5848026A (en) * 1997-12-08 1998-12-08 Atmel Corporation Integrated circuit with flag register for block selection of nonvolatile cells for bulk operations
JP4037605B2 (ja) * 2000-12-04 2008-01-23 株式会社東芝 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法
JP4133166B2 (ja) * 2002-09-25 2008-08-13 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
JP2005258851A (ja) * 2004-03-12 2005-09-22 Renesas Technology Corp メモリカード
WO2006011186A1 (ja) * 2004-07-23 2006-02-02 Spansion Llc コントローラ、データ記憶システム、データ書き換え方法及びコンピュータプログラムプロダクト
JP4584044B2 (ja) * 2005-06-20 2010-11-17 ルネサスエレクトロニクス株式会社 半導体装置
JP5162846B2 (ja) 2005-07-29 2013-03-13 ソニー株式会社 記憶装置、コンピュータシステム、および記憶システム
JP4734110B2 (ja) * 2005-12-14 2011-07-27 株式会社東芝 不揮発性半導体記憶装置
KR100849221B1 (ko) * 2006-10-19 2008-07-31 삼성전자주식회사 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치
JP2008123473A (ja) * 2006-10-20 2008-05-29 Toshiba Corp 記憶装置及びその制御方法
CN100476758C (zh) * 2007-08-14 2009-04-08 北京佳讯飞鸿电气股份有限公司 一种基于nor flash芯片的数据存储实现方法
CN100555246C (zh) * 2007-09-24 2009-10-28 中兴通讯股份有限公司 一种在闪存上存取数据的系统及方法
US8566505B2 (en) * 2008-04-15 2013-10-22 SMART Storage Systems, Inc. Flash management using sequential techniques
JP2013061799A (ja) * 2011-09-13 2013-04-04 Toshiba Corp 記憶装置、記憶装置の制御方法およびコントローラ
JP2014126658A (ja) 2012-12-26 2014-07-07 Brother Ind Ltd プロセスカートリッジおよび画像形成装置
JP5695112B2 (ja) * 2013-03-18 2015-04-01 富士通テン株式会社 データ記憶装置、データの記憶方法および車載用制御装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004118937A (ja) * 2002-09-26 2004-04-15 Renesas Technology Corp 不揮発性メモリおよびこれを有したデータ記憶装置
JP2005222202A (ja) * 2004-02-04 2005-08-18 Matsushita Electric Ind Co Ltd 不揮発性記憶装置のデータ保護方法
JP2010108436A (ja) * 2008-10-31 2010-05-13 Hochiki Corp フラッシュメモリを備えた制御装置及びフラッシュメモリへのデータ書込み方法

Also Published As

Publication number Publication date
US9773562B2 (en) 2017-09-26
JP2016004558A (ja) 2016-01-12
DE112015002881B4 (de) 2022-02-03
JP6241373B2 (ja) 2017-12-06
US20170200503A1 (en) 2017-07-13
DE112015002881T5 (de) 2017-03-09
CN106415505A (zh) 2017-02-15
CN106415505B (zh) 2019-06-18

Similar Documents

Publication Publication Date Title
US20220269572A1 (en) Storage device and method for operating storage device
JP5983019B2 (ja) 制御装置、記憶装置、記憶制御方法
US8397017B2 (en) Controller and data storage device
CN110018989B (zh) 一种快照比对的方法和装置
JP5874525B2 (ja) 制御装置、記憶装置、記憶制御方法
US20170075614A1 (en) Memory system and host apparatus
US10942811B2 (en) Data processing method for solid state drive
US9009430B2 (en) Restoration of data from a backup storage volume
CN114237984B (zh) 异常掉电下Trim数据的恢复方法、系统及固态硬盘
CN107957852B (zh) 一种提升固态硬盘性能一致性的方法
CN102298543A (zh) 一种存储器管理方法和装置
US8478933B2 (en) Systems and methods for performing deduplicated data processing on tape
KR20150111937A (ko) 비휘발성 메모리 기록 메커니즘
CN114063901A (zh) Plp备份失败之后的ssd支持只读模式
CN119248197A (zh) 一种数据处理方法、装置、设备及介质
JP6241373B2 (ja) 記憶装置、フラッシュメモリ制御装置、及びプログラム
TWI519951B (zh) 資料儲存裝置以及快閃記憶體控制方法
US20130262804A1 (en) Data duplication system, data duplication method, and program thereof
KR101676175B1 (ko) 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법
JP5949122B2 (ja) 制御装置、記憶装置、記憶制御方法
TWI544335B (zh) 資料儲存裝置以及快閃記憶體控制方法
US20170039110A1 (en) Computer
KR102053406B1 (ko) 데이터 저장 장치 및 그 동작 방법
CN107749307B (zh) 存储系统写盘失败时的重写方法、装置、设备和存储介质
JP3313576B2 (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: 15809177

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15314573

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 112015002881

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15809177

Country of ref document: EP

Kind code of ref document: A1