WO2020039927A1 - 不揮発性記憶装置、ホスト装置、及びデータ記憶システム - Google Patents
不揮発性記憶装置、ホスト装置、及びデータ記憶システム Download PDFInfo
- Publication number
- WO2020039927A1 WO2020039927A1 PCT/JP2019/031077 JP2019031077W WO2020039927A1 WO 2020039927 A1 WO2020039927 A1 WO 2020039927A1 JP 2019031077 W JP2019031077 W JP 2019031077W WO 2020039927 A1 WO2020039927 A1 WO 2020039927A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- address
- data
- storage device
- candidate
- unit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/08—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers from or to individual record carriers, e.g. punched card, memory card, integrated circuit [IC] card or smart card
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
Definitions
- the present technology relates to a nonvolatile storage device, a host device, and a data storage system applicable to data storage processing.
- Patent Document 1 describes a digital system for storing data.
- data is stored in a non-volatile memory device.
- LBA logical block address
- PBA physical block address
- Data is written to a storage area designated by PBA, and LBA and PBA are stored in a predetermined buffer set in the memory device.
- the host can access the written data by designating the LBA, for example (Page 5, paragraph 33 to page 6, paragraph 37 of Patent Document 1, FIG. 1 and the like).
- an object of the present technology is to provide a nonvolatile storage device, a host device, and a data storage system capable of improving a data writing speed.
- a nonvolatile storage device includes a storage unit and a calculation unit.
- the storage unit includes a plurality of page units each capable of individually writing data, and a plurality of block units capable of collectively erasing data written in the plurality of page units.
- the calculation unit calculates a candidate address that is a candidate for a logical address of data written to the page unit based on information on a writing state of the page unit included in the storage unit.
- each of the plurality of block units has a plurality of page units.
- Each page section can individually write data, and the block section can collectively erase data written to a plurality of page sections. From the information on the writing status of these page parts, candidate addresses that are candidates for logical addresses of data to be written are calculated. By using this candidate address, the data writing speed can be improved.
- the calculation unit may calculate the range of the candidate address. This makes it possible to write data using, for example, consecutive candidate addresses. As a result, the efficiency of the data writing process can be improved.
- the calculation unit may calculate a range of a plurality of candidate addresses. This makes it possible to prepare a range of candidate addresses according to the data size to be written, and it is possible to stably write, for example, a sufficient data size.
- the calculation unit may calculate a start address of the range of the candidate address. As a result, the range of the candidate address can be easily specified, and the efficiency of the data writing process can be improved.
- the calculation unit may calculate a writable data size in the range of the candidate address. This makes it possible to specify the data size when the range of the candidate address is used, and it is possible to stably execute the data writing process.
- the information on the write status may include information of a conversion table for converting a logical address of data written in the page portion into a physical address of the page portion.
- the translation table may include a first address that is a logical address for which the physical address is not specified.
- the calculation unit may calculate the first address as the candidate address.
- an unused logical address can be used as a candidate address, and the data writing speed can be sufficiently improved.
- the calculation unit may calculate the consecutive first addresses as the candidate addresses. As a result, it is possible to prepare continuous candidate addresses that can be written at high speed. As a result, it is possible to improve the efficiency of the writing process while improving the writing speed.
- the physical address may be an address that specifies the block section and the page section.
- the calculation unit may calculate, as the candidate address, a second address that is the logical address converted to the physical address specifying the same block unit. For example, by writing data in accordance with the second address, data written in the same block is invalidated, and the efficiency of processing for generating a free area can be improved.
- the calculation unit may calculate the consecutive second addresses as the candidate addresses. As a result, data written in the same block is invalidated collectively. As a result, it is possible to greatly improve the efficiency of processing for generating an empty area and the like.
- the calculation unit may calculate an index related to a writing speed when writing the data to which the candidate address is added. This makes it possible to improve the efficiency of data write processing, and realize high-speed write processing.
- the calculation unit may calculate an index related to the writing speed according to the presence or absence of the physical address corresponding to the candidate address. This makes it possible to improve the efficiency of data write processing, and realize high-speed write processing.
- the non-volatile storage device may further include a communication unit that performs data communication with a host device that accesses the storage unit.
- the calculation unit may notify the host device of the candidate address via the communication unit.
- the host device can generate write data or the like using the candidate address, and can sufficiently improve the speed of writing to the storage unit.
- the communication unit may receive a data size of write data from the host device.
- the calculation unit may calculate the range of the candidate address based on the received data size. This makes it possible to prepare a range of candidate addresses according to the data size to be written, and to write the write data at high speed and efficiently.
- the calculation unit may generate notification information regarding the range of the candidate address, and notify the generated notification information to the host device. Thereby, for example, the host device can appropriately generate the write data to which the candidate address is added based on the notification information.
- the notification information may include at least one of a head address of the range of the candidate address, a data size writable in the range of the candidate address, and an index related to a writing speed when writing data to which the candidate address is added. Good. Thereby, for example, the host device can easily generate the write data to which the candidate address is added based on the notification information.
- a host device is a host device that can access a nonvolatile storage device, and includes a communication unit and a generation unit.
- the nonvolatile storage device a storage unit having a plurality of page units that can individually write data, a storage unit having a plurality of block units that can collectively erase data written to the plurality of page units,
- a calculating unit configured to calculate a candidate address that is a candidate of a logical address of data written to the page unit based on information on a writing state of the page unit included in the storage unit.
- the communication unit performs data communication for accessing the storage unit of the nonvolatile storage device.
- the generation unit obtains the candidate address from the nonvolatile storage device via the communication unit, and generates write data to which the obtained candidate address is added.
- a data storage system includes a nonvolatile storage device and a host device that can access the nonvolatile storage device.
- the nonvolatile storage device a storage unit having a plurality of page units that can individually write data, a storage unit having a plurality of block units that can collectively erase data written to the plurality of page units,
- a calculating unit configured to calculate a candidate address that is a candidate of a logical address of data written to the page unit based on information on a writing state of the page unit included in the storage unit.
- a communication unit that performs data communication for accessing the storage unit of the nonvolatile storage device, and the host device acquires the candidate address from the nonvolatile storage device via the communication unit;
- a generation unit that generates write data to which a candidate address has been added.
- FIG. 1 is a schematic diagram illustrating a configuration example of a data storage system according to an embodiment of the present technology.
- FIG. 2 is a block diagram illustrating a configuration example of a data storage system illustrated in FIG. 1.
- FIG. 3 is a schematic diagram showing a write unit and an erase unit of a nonvolatile semiconductor memory. It is a schematic diagram which shows an example of a logical-physical conversion table.
- FIG. 9 is a schematic diagram illustrating an example of a data read process.
- FIG. 9 is a schematic diagram illustrating an example of a data writing process. It is a schematic diagram which shows an example of the rewriting process using the same block. It is a schematic diagram which shows an example of the rewriting process using different blocks.
- FIG. 4 is a schematic diagram for describing an example of a first candidate address.
- FIG. 9 is a schematic diagram for describing an example of a second candidate address. It is a table
- surface which shows an example of a candidate list. 4 is a flowchart illustrating an example of an operation of the host device.
- FIG. 1 is a schematic diagram illustrating a configuration example of a data storage system according to an embodiment of the present technology.
- FIG. 2 is a block diagram showing a configuration example of the data storage system 100 shown in FIG.
- the data storage system 100 includes a semiconductor storage device 10 and a host device 30.
- the semiconductor storage device 10 corresponds to a nonvolatile storage device.
- the access includes reading and writing (reading / writing) of data (information) on the semiconductor storage device 10.
- the semiconductor storage device 10 functions as an external storage device (auxiliary storage device) for storing various data.
- the host device 30 is an external device that accesses stored data.
- any device that accesses data stored in the semiconductor memory device 10 can be the host device 30.
- the host device 30 is a PC (Personal Computer), a server, a photographing device (such as a digital camera), a media playback device (such as a music player), a mobile terminal (such as a smartphone or tablet), and various sensor devices.
- the type of the host device 30 is not limited.
- the data stored in the semiconductor storage device 10 is digital data (electronic data) used in an arithmetic unit mounted on the host device 30.
- the type of data is not limited.
- arbitrary data such as voice, image, video, numerical value, text, document, application program, and the like can be stored in the semiconductor storage device 10.
- fragmentary data obtained by dividing a set of data is also included in the data in the present disclosure.
- the semiconductor storage device 10 includes a nonvolatile semiconductor memory 11, a connection unit 12, and a controller 13.
- the nonvolatile semiconductor memory 11, the connection unit 12, and the controller 13 are appropriately connected via wiring (not shown).
- the non-volatile semiconductor memory 11 is typically a NAND flash memory (NAND @ Flash), and is configured to be able to write and read data.
- the capacity (storage capacity) of data that can be stored in the nonvolatile semiconductor memory 11 is not limited, and may be set as appropriate.
- FIG. 3 is a schematic diagram showing a write unit and an erase unit of the nonvolatile semiconductor memory 11.
- the nonvolatile semiconductor memory 11 for example, many cells 20 (memory cells) are formed on a substrate.
- One cell 20 holds a predetermined amount of information by maintaining different voltage levels from each other.
- SLC Single Level Cell
- each cell 20 holds 1 bit (0 or 1) of information (state).
- digital data is recorded by writing 0 or 1 information to each cell 20.
- digital data can be read.
- the method of recording information in the cell 20 is not limited.
- a TLC (Triple Level Cell) system in which each cell 20 holds 3 bits of information, or the like may be used as appropriate.
- the present technology can be applied to any of the methods such as SLC, MLC, and TLC.
- a page 21 as a unit for writing data and a block 22 as a unit for erasing data are set.
- the size (data size) of a page 21 as a unit for writing data and a block 22 as a unit for erasing data are different.
- Page 21 includes a plurality of cells 20.
- data is collectively written to a plurality of cells 20 included in one page 21. Note that data is not individually written to each cell 20.
- the page 21 is the minimum unit (write unit) in which data can be individually written.
- the page 21 corresponds to a page section. In a normal configuration, data is recorded on each cell 20 included in one page 21 in the same manner. Therefore, for example, cells 20 that hold 1-bit, 2-bit, or 3-bit information are assigned to different pages 21 instead of the same page 21.
- the number of cells 20 included in the page 21, that is, the data size recorded in the page 21 may be set as appropriate.
- the page 21 is set to include a data portion of 512 bytes (4096 bits) and a redundant portion of 16 bytes (128 bits).
- 512 bytes of write data and the like are recorded in the data portion.
- management information and the like are recorded in the redundant section.
- the present invention is not limited to this, and the size and configuration of the page 21 may be arbitrarily set.
- the block 22 includes a plurality of pages 21. On the left side of FIG. 3, a plurality of pages 21 included in one block 22 are schematically illustrated. In the nonvolatile semiconductor memory 11, data written in a plurality of pages 21 (cells 20) included in one block 22 is collectively erased. The data written in each page 21 or each cell 20 is not individually erased. As described above, the block 22 is the smallest unit (erasing unit) in which data written in the page 21 can be collectively erased. In the present embodiment, the block 22 corresponds to a block unit.
- the number of pages 21 included in the block 22, that is, the data size of the block 22 may be appropriately set.
- one block 22 includes 32 pages 21.
- the data size of the block is about 16 Kbytes.
- the present invention is not limited to this, and the size and configuration of the block 22 may be arbitrarily set.
- the nonvolatile semiconductor memory 11 is provided with a plurality of blocks 22 as shown on the right side of FIG. That is, the nonvolatile semiconductor memory 11 includes a plurality of pages 21 each of which can individually write data, and a plurality of blocks 22 which can collectively erase data written in the plurality of pages 21. By erasing these blocks 22 appropriately, it is possible to rewrite data, secure a free area, and the like. In the present embodiment, the nonvolatile semiconductor memory 11 corresponds to a storage unit.
- the erasing unit is the block 22, it is not possible to directly rewrite only the data of some pages 21 in the block 22. To execute such a process, for example, a process of once saving the data in the block 22 is required. This will be described later with reference to FIGS.
- connection unit 12 is a connection terminal for connecting to the host device 30, and is configured according to, for example, a connection standard of the semiconductor memory device 10.
- the connection unit 12 is arranged, for example, outside the package of the semiconductor storage device 10 and is connected to a connection unit 31 of the host device 30 described later.
- connection unit 12 including a connection terminal conforming to various standards such as a memory stick, an SD card, a compact flash (registered trademark), a USB (Universal Serial Bus), a PCI (Peripheral Component Interconnect), and a SATA (Serial Advanced Technology Attachment). May be used as appropriate.
- a connection terminal or the like according to an arbitrary standard may be provided.
- the controller 13 controls the operation of the semiconductor storage device 10 (nonvolatile semiconductor memory 11).
- the controller 13 has hardware necessary for the computer, such as a CPU (Central Processing Unit), a RAM (Random Access Memory), and a ROM (Read Only Memory).
- a CPU Central Processing Unit
- RAM Random Access Memory
- ROM Read Only Memory
- an information processing method or the like according to the present technology is executed by the CPU loading a predetermined program recorded in the ROM in advance into the RAM and executing the program.
- the specific configuration of the controller 13 is not limited.
- a device such as a PLD (Programmable Logic Device) such as an FPGA (Field Programmable Gate Array) or other ASIC (Application Specific Integrated Circuit) may be used.
- the controller 13 includes a communication processing unit 24, a table storage unit 15, an access processing unit 16, and an address calculation unit 17.
- the communication processing unit 14 executes a communication process for performing data communication with the host device 30.
- the communication processing unit 14 is appropriately configured so as to enable communication processing according to the above-described standard of the connection unit 12, for example.
- the communication processing unit 14 may be configured using, for example, a dedicated circuit for performing communication processing.
- the communication processing unit 14 receives, via the connection unit 12, various processing commands such as a read command and a write command output from the host device 30, and data for writing.
- the received command or data is output to the access processing unit 16 and the address calculation unit 17 described below.
- the communication processing unit 14 transmits the data read from the nonvolatile semiconductor memory 11, the calculation result of the address calculation unit 17, and the like to the host device 30 via the connection unit 12.
- the connection unit 12 and the communication processing unit 14 constitute the host interface 18 (host I / F) for performing data communication with the host device 30 that accesses the nonvolatile semiconductor memory 11.
- the host interface 18 corresponds to a communication unit of the nonvolatile storage device.
- data communication performed by the communication processing unit 14 via the connection unit 12 may be referred to as data communication performed via the host interface 18.
- the table storage unit 15 stores a table (logical-physical conversion table) in which data write positions are recorded.
- the table storage unit 15 is configured by a storage device such as a RAM provided in the controller 13, for example. Note that the specific configuration of the table storage unit 15 is not limited. For example, the table storage unit 15 may be configured using the nonvolatile semiconductor memory 11 or the like.
- FIG. 4 is a schematic diagram showing an example of the logical-physical conversion table.
- the logical-physical conversion table 40 is a table for converting the logical address 41 of the data written in the page 21 into the physical address 42 of the page 21. For example, by specifying the logical address 41 of the data, the write position (the physical address 42 of the page 21) where the data is actually written is referred to, and the specified data can be referred to.
- the logical-physical conversion table 40 corresponds to a conversion table.
- a virtual address indicating a writing position of the data is added to the data to be written.
- This virtual address is the logical address 41.
- the host device 30 can handle desired data without referring to the write position (physical address 42) or the like.
- the logical address 41 is appropriately added to data to be written (write data) by the host device 30 or the like according to a predetermined method such as LBA (Logical Block Addressing).
- LBA Logical Block Addressing
- the method of adding the logical address 41 is not limited, and any method that can specify a virtual address may be used.
- the logical address 41 for example, an address value of a serial number is used.
- the address value representing the logical address 41 is represented using decimal numbers (0, 1, 2, 3,).
- the address value of the logical address 41 is described as LBA, and the value is expressed in decimal.
- the logical address 41 may be represented using, for example, a hexadecimal number. In any case, the contents described below are applicable.
- the physical address 42 is an address indicating the position of the page 21. More specifically, the physical address is an address that specifies the block 22 and the page 21. In the example illustrated in FIG. 4, the physical address 42 of one page 21 is configured using the number (block position) of the block 22 and the number (page position) of the page 21 in the block 22.
- the method of the physical address 42, the method of expressing the physical address 42, and the like are not limited.
- an arbitrary method or a method that can uniquely specify the page 21 in the nonvolatile semiconductor memory 11 may be used.
- the numbers indicating the positions of the block 22 and the page 21 are indicated by adding “#”.
- a list of logical addresses 41 is recorded in the logical-physical conversion table 40.
- the list of the logical addresses 41 is, for example, a list from the minimum value to the maximum value of the logical address 41 (serial number). In other words, it can be said that a list of logical addresses 41 that may be used by the host device 30 or the like is prepared in the logical-physical conversion table 40.
- the write position (page 21) of each data may be changed.
- the physical address 42 of each data is appropriately rewritten as the page 21 is changed. This allows the host device 30 and the like to properly access desired data even when the write position is changed.
- the logical-physical conversion table 40 includes a blank address 43 which is a logical address 41 for which the physical address 42 is not specified.
- the blank address 43 corresponds to a first address.
- Such a logical address 41 becomes a blank address 43.
- the logical address 41 is the blank address 43
- the semiconductor memory device 10 is in an initial state (immediately after formatting or the like).
- the amount of written data is small, and the ratio of the blank address 43 in the list of the logical addresses 41 increases.
- the physical address 42 may be erased after the data is written, and the data may be invalidated (Trim command or the like). In such a case, the logical address 41 added to the invalidated data becomes the blank address 43.
- the specific configuration of the logical-physical conversion table 40 is not limited.
- the logical-physical conversion table 40 may be appropriately configured so that data written in the nonvolatile semiconductor memory 11 can be appropriately accessed.
- the access processing unit 16 executes various processes for accessing the nonvolatile semiconductor memory 11 in response to a command from the host device 30.
- the command from the host device 30 is, for example, a data read command, a write command, an erase command, or the like.
- the access processing unit 16 performs processing such as reading data from the nonvolatile semiconductor memory 11 and writing and erasing data to and from the nonvolatile semiconductor memory 11 in response to these commands.
- the access processing unit 16 secures a free area for writing data.
- a free area is secured by searching for a new writable area (such as the page 21 or the block 22) or by rewriting data to generate a writable area.
- data can be stably written.
- the access processing unit 16 rewrites the physical address 42 of the logical-physical translation table 40 as needed when executing these processes (see FIG. 6). For example, when data is moved to another page 21, the physical address 42 corresponding to the logical address 41 of the target data is rewritten to the physical address 42 of the destination page 21.
- the address calculation unit 17 calculates a candidate address that is a candidate of the logical address 41 of the data to be written to the page 21 based on the information on the writing state of the page 21 included in the nonvolatile semiconductor memory 11.
- the address calculation unit 17 corresponds to a calculation unit.
- the information on the writing status is, for example, information on which page 21 of the nonvolatile semiconductor memory 11 has been written with which data. This can be said to be information such as which physical address 42 corresponds to which logical address 41. Such information can be easily obtained by using the logical-physical conversion table 40 described with reference to FIG.
- the information in the logical-physical conversion table 40 is used by the address calculation unit 17 as the information on the writing status of the page 21 included in the nonvolatile semiconductor memory 11. That is, the address calculation unit 17 calculates a candidate address based on the information in the logical-physical conversion table 40.
- the candidate address is, for example, a candidate for a logical address 41 to be added to data to be written to the nonvolatile semiconductor memory 11 from now on.
- a logical address 41 is added to data to be written (write data) according to a predetermined method.
- Candidates for the logical address 41 added to the write data are calculated according to the write situation in the nonvolatile semiconductor memory 11.
- the address calculation unit 17 calculates the range of the candidate address.
- the logical address 41 of the serial number is used in the present embodiment. Therefore, the range of candidate addresses is a range of consecutive logical addresses 41.
- the range of the candidate address can be defined by, for example, the start address (the logical address 41 having the smallest address value) and the size of the range.
- the minimum (leading) address and the maximum (tailing) address may be calculated as a range of candidate addresses.
- the range of a plurality of candidate addresses is calculated by the address calculation unit 17. Therefore, for example, a plurality of partial logical address 41 lists including the consecutive logical addresses 41 in the logical address 41 list shown in FIG. 4 are calculated.
- the range of each candidate address (partial list of logical addresses 41) is calculated so that the logical addresses 41 do not overlap each other. As a result, a situation where the candidate address, that is, the logical address 41 of the data to be written from now on, is avoided is avoided.
- the address calculation unit 17 notifies the host device 30 of the candidate address via the host interface 18. For example, at a timing before data is written, a candidate address is calculated and notified to the host device 30. This allows the host device 30 to select an appropriate logical address 41 (candidate address) in accordance with the write situation in the nonvolatile semiconductor memory 11 before writing data.
- the method of calculating the candidate address, information notified to the host device 30, and the like will be described later in detail.
- the host device 30 is configured to be able to access the semiconductor storage device 10. As shown in FIG. 2, the host device 30 includes a connection unit 31 and a processor 32.
- the connection unit 31 is a connection terminal for connecting to the semiconductor memory device 10.
- the connection unit 31 is appropriately configured so that the connection unit 12 of the semiconductor storage device 10 can be connected.
- the present invention is not limited to the case where the connection unit 31 is provided in the main body of the host device 30.
- a connection adapter or the like corresponding to various connection standards such as a card reader may be used.
- the processor 32 has a communication processing unit 33 and a data generation unit 34.
- the communication processing unit 33 executes a communication process for performing data communication with the semiconductor storage device 10.
- the communication processing unit 33 is appropriately configured to enable communication processing according to, for example, the above-described standard of the connection unit 31.
- the communication processing unit 33 transmits various processing commands such as a read command and a write command, write data, and the like to the semiconductor storage device 10 via the connection unit 31.
- the communication processing unit 33 receives, via the connection unit 31, data read from the nonvolatile semiconductor memory 11, candidate addresses calculated by the address calculation unit 17, and the like.
- the reception result is appropriately output to a processing unit (not shown) of the host device 30, the data generation unit 34, and the like.
- connection unit 31 and the communication processing unit 33 configure an external interface 35 (external I / F) for performing data communication for accessing the nonvolatile semiconductor memory 11.
- the external interface 35 corresponds to a communication unit of the host device.
- data communication performed by the communication processing unit 33 via the connection unit 31 may be referred to as data communication performed via the external interface 35.
- the data generator 34 generates write data for writing to the semiconductor storage device 10. Specifically, a logical address 41 for writing to the nonvolatile semiconductor memory 11 is added to a data file to be written according to a predetermined method (for example, an LBA method). The data to which the logical address 41 is added becomes write data.
- a predetermined method for example, an LBA method
- the data generation unit 34 obtains a candidate address from the semiconductor storage device 10 via the external interface 35, and generates write data to which the obtained candidate address is added.
- the data generator 34 corresponds to a generator.
- the data generation unit 34 transmits a request command (a write notification command or the like) for requesting a candidate address to the semiconductor storage device 10 as necessary.
- a request command (a write notification command or the like) for requesting a candidate address to the semiconductor storage device 10 as necessary.
- the address calculating unit 17 calculates a range of a plurality of candidate addresses according to the request command, and notifies the host device 30 of the range.
- the data generation unit 34 selects the range of the logical address 41 to be actually written from the range of each candidate address, and generates the write data using the selected logical address 41 (candidate address).
- the generated write data is transmitted to the semiconductor memory device 10 via the external interface 35 and written to the nonvolatile semiconductor memory 11.
- write data is generated using the logical address 41 (candidate address) designated by the semiconductor memory device 10. Further, data to which a candidate address is added is written in the semiconductor storage device 10 (nonvolatile semiconductor memory 11). This makes it possible to write data in accordance with the write situation.
- FIG. 5 is a schematic diagram showing an example of a data reading process.
- a command 36 (read command) for reading data is output from the host device 30.
- the access processing unit 16 receives a read command via the host interface 18 and executes a process of reading data written in the nonvolatile semiconductor memory 11 (page 21).
- the access processing unit 16 accesses the tenth page 21 of the twentieth block 22, and reads out the data written in the page 21.
- FIG. 6 is a schematic diagram showing an example of a data writing process.
- a command 36 (write command) for writing data is output from the host device 30.
- the access processing unit 16 receives a write command and write data via the host interface 18 and executes a process of writing the received write data to the nonvolatile semiconductor memory 11 (page 21).
- the access processing unit 16 writes, for example, the write data received together with the write command into a previously reserved free area.
- write data for one page 21 is received and written to the twentieth page 21 of the twenty-first block 22.
- the old data written to the physical address (block # 20, page # 10) before the update is not read because information on the logical address 41 of the data is lost. That is, data written at the old write position (the physical address 42 before the update) becomes invalid data.
- the page 21 (block # 20, page # 10) that has become invalid data is schematically illustrated by a gray area.
- the logical-physical conversion table 40 can be said to be a table representing the position on the nonvolatile semiconductor memory 11 of valid data (accessible data) specified by the logical address 41. From another viewpoint, data for which the physical address 42 is not recorded in the logical-physical conversion table 40 is invalid data that is not accessed.
- data that is effective in the logical-physical conversion table 40 includes data that is unnecessary for the host device 30.
- data unnecessary for the host device 30 is stored as valid data until an instruction from the host device 30 is issued. Therefore, it can be said that valid data is data that should be held by the semiconductor storage device 10 in a state where it can be accessed from the host device 30.
- FIG. 7 is a schematic diagram showing an example of a rewriting process using the same block 22.
- data written in a certain block 22 page 21
- page 21 data written in a certain block 22
- page 21 newly written in the same block 22
- nonvolatile semiconductor memory 11 such as a NAND flash memory
- data is erased in units of the block 22. Therefore, a process of rewriting data only for a part of the pages 21 in the block 22 is not executed.
- the data of the page 21 not to be rewritten is stored in the RAM of the controller 13 or another block. It is temporarily evacuated to 22 etc. For example, the data of the page 21 that is not to be rewritten is read, written to another storage area (RAM in the figure) and backed up.
- FIG. 8 is a schematic diagram showing an example of a rewriting process using a different block 22.
- data written in a certain block 22 page 21
- a rewrite target block 22a (block # 15), a writable block 22b including an empty area (block # 24), and a logical-physical conversion table 40 before rewrite are schematically illustrated.
- the access processing unit 16 searches for the block 22b (block # 24) including the writable page 21, and secures a free area for two pages 21. Note that, depending on the size of the data to be rewritten and the writing state of the searched block 22, an empty area may be secured in a plurality of blocks 22.
- garbage collection in which only valid data in the block 22 is copied to the free space before the free space is exhausted, and a new free space is generated, is performed by the access processing unit 16. Be executed.
- FIG. 9 is a schematic diagram showing an example of the garbage collection process.
- the garbage collection is a process of, for example, copying only valid data in a block 22 including invalid data to another block 22 before the empty area is exhausted, and erasing the original block 22.
- FIG. 9 The right side of FIG. 9 schematically illustrates the copy source block 22c and the copy destination block 22d before the garbage collection is executed.
- the copy source block 22c includes a page 21 on which valid data is written and a page 21 on which invalid data is written (gray page 21).
- the copy destination block 22c is a free block 22 to which all pages 21 can be written.
- the garbage collection for example, only valid data included in the copy source block 22c is read by the access processing unit 16 and temporarily stored in the RAM or the like. As shown on the left side of FIG. 9, the read valid data is appropriately written to the copy destination block 22d. The data writing is performed, for example, in order from the page 21 with the smallest number. For this reason, the writable page 21 with a continuous number remains in the copy destination block 22.
- the physical address 42 corresponding to the logical address 41 of the copied data is rewritten, and the logical-physical conversion table 40 is updated.
- the valid data written in the copy source block 22c loses information on its logical address and becomes invalid data.
- the copy source block 22c is the block 22 in which only invalid data is written.
- the access processing unit 16 erases data (invalid data) written in the copy source block 22c. As a result, the copy source block 22c becomes the writable block 22. As a result, in the entire system, a free area equivalent to the data amount of invalid data originally written in the copy source block 22c is generated.
- garbage collection be performed on the block 22 having a large amount of invalid data and a small amount of valid data (copy source block 22). For example, the more invalid data included in the block 22, the more free space increases due to garbage collection. In addition, as the number of valid data included in the block 22 is smaller, the number of times of garbage collection copy is reduced, and it is possible to reduce the influence on performance of other processing.
- an apparatus functioning as a host determines a logical address 41 and writes data irrespective of the internal state of the device (semiconductor storage device 10).
- garbage collection may be required, or the number of occurrences of garbage collection may increase. As a result, writing at a stable speed may be difficult.
- FIG. 10 is a flowchart illustrating an example of a candidate address calculation process.
- the address calculation unit 17 calculates candidate addresses that are candidates for the logical address 41 to be written to the page 21.
- the process shown in FIG. 10 is a process executed by the address calculation unit 17 when the host device 30 writes data.
- a write notification command to write data is output from the host device 30.
- the address calculation unit 17 receives the write notification command via the host interface 18 and starts the process of calculating a candidate address.
- the host device 30 calculates the data size (data capacity) of the write data to be written from now on.
- the calculated data size is output to the semiconductor memory device 10 via the external interface 35 together with the write notification command.
- the host interface 18 receives the data size of the write data from the host device 30. Then, the address calculation unit calculates the range of the candidate address based on the received data size. As described above, in the present embodiment, a range of candidate addresses according to the data size to be written is prepared. Hereinafter, the process of calculating the range of the candidate address will be specifically described with reference to FIG.
- step 101 It is determined whether or not the data size (designated size) of the write data designated by the host device 30 is equal to or smaller than the size of a free area (free size) of the nonvolatile semiconductor memory 11 (step 101).
- the size of the free area of the nonvolatile semiconductor memory 11 is, for example, the total data capacity of the currently writable page 21.
- the size of the free area is appropriately calculated by the access processing unit 16. The method for calculating the size of the free area is not limited.
- a list for recording candidate addresses is generated. That is, a data area, a parameter, and the like for recording the logical address 41 calculated as the candidate address are appropriately set.
- the list of candidate addresses may be simply described as a candidate list.
- the candidate list corresponds to the notification information.
- a first loop process (steps 102 to 104) for calculating a candidate address for writing data in the free area is executed. You.
- the candidate address calculated by the first loop processing may be described as a first candidate address.
- step 102 it is determined whether the size registered in the candidate list is smaller than the designated size.
- the size registered in the candidate list is a data size that can be written using the range of the candidate addresses registered in the candidate list. This will be described later. If the size registered in the candidate list is smaller than the specified size, step 103 is executed to calculate a first candidate address.
- FIG. 11 is a schematic diagram for explaining an example of the first candidate address.
- the address calculation unit 17 calculates the candidate address 44 based on the information in the logical-physical conversion table 40 (the writing status of the nonvolatile semiconductor memory 11).
- FIG. 11 schematically illustrates an example of the logical-physical conversion table 40.
- step 103 the address calculating unit 17 calculates the blank address 43 as the candidate address 44.
- This blank address 43 becomes the first candidate address 44a.
- a blank address 43 which is a logical address 41 for which there is no valid data on the semiconductor memory device 10 (the write position is not registered in the logical-physical conversion table 40) is selected.
- an unused logical address 41 can be used as a candidate address 44.
- the continuous blank addresses 43 are calculated as the candidate addresses 44 by the address calculating unit 17. Specifically, in the logical-physical conversion table 40, a blank range in which the physical address 42 is not registered (the range of the blank address 43) is appropriately selected.
- a blank address 43 may be included.
- the logical address 41 (blank address 43) for which there is no valid data on the nonvolatile semiconductor memory 11 (device)
- invalid data does not increase even if writing is performed. Therefore, the block 22 including invalid data does not occur, and no garbage collection occurs. Therefore, by using the first candidate address 44a, a decrease in the writing speed due to the garbage collection is avoided, and a sufficiently high-speed writing process can be performed. That is, it can be said that the range of the first candidate address 44a is the range of the logical address 41 in which writing can be performed at the most stable speed.
- the start address can indicate, for example, the position of the range of the first candidate address 44a in the logical-physical conversion table 40.
- the writable data size is calculated in the range of the first candidate address 44a.
- the data size that can be written in the range of the candidate address 44 is, for example, the amount of data that can be written when all the logical addresses 41 included in the range of the candidate address 44 are used. As described with reference to FIG. 3 and the like, one logical address 41 is added to data written to one page 21. The data size that can be written to one page 21 is set in advance.
- This data size represents a relative data amount expressed in an arbitrary unit, for example.
- the writable data size is appropriately set according to the setting of the number of cells 20 included in the page 21 and the cell range (data portion) used for data.
- the order of selecting the range of the first candidate address 44a (the range of the blank address 43), the method of calculating the data size, and the like are not limited.
- the range of the first candidate address 44a may be selected in descending order of the writable data size. Further, for example, the range of the first candidate address 44a may be selected in ascending order of the logical address 41.
- the information (the start address, the data size, and the like) regarding the calculated range of the first candidate address 44a is registered in the candidate list.
- the total amount of the data size registered in the candidate list is calculated. For example, the data size in the range of the newly selected first candidate address 44a is added to the total amount of data size registered so far.
- the data size registered in the candidate list 50 is used for the determination in step 102.
- the loop processing ends. That is, when the range of the first candidate address 44a is calculated such that all the write data can be written, the first loop process ends. Thus, in the first loop process, the process of calculating the range of the plurality of first candidate addresses 44a is continued until the designated size is satisfied.
- step 101 if the specified size specified by the host device 30 is larger than the free size of the nonvolatile semiconductor memory 11 (No in step 101), the range of all blank addresses 43 is selected (step 105). .
- the physical address 42 is not registered in the blank address 43 in the logical-physical conversion table 40. Therefore, for example, it is considered that the number of the blank addresses 43 corresponds to the number of the writable pages 21 serving as the empty areas. In other words, a state where there is no blank address 43 can be said to be a state where some valid data has been written to all the pages 21.
- the range of the blank address 43 (the range of the first candidate address 44a), which is the range that can be written at high speed, is registered in the candidate list, and the range of the other candidate addresses 44 is then registered. It is newly calculated.
- step 105 for example, the logical-physical conversion table 40 is referred to, and the head address (head LBA) of all blank ranges and the data size of each range are registered in the candidate list. Therefore, the position of the range of the first candidate addresses 44a currently available and the data size secured using them are registered in the candidate list.
- head LBA head address
- a second loop process (steps 106 to 108) for calculating a candidate address involving data rewriting is executed.
- the candidate address calculated by the second loop processing may be described as a second candidate address.
- step 106 it is determined whether the size registered in the candidate list is smaller than the designated size. If the size registered in the candidate list is smaller than the specified size, step 107 is executed to calculate a second candidate address.
- FIG. 12 is a schematic diagram for explaining an example of the second candidate address.
- FIG. 12 schematically illustrates an example of the logical-physical conversion table 40.
- the address calculator 17 calculates the logical address 41 (hereinafter referred to as the same block designation address 45) of the data written in the same block 22. That is, the address calculation unit 17 calculates, as the candidate address 44, the same block designation address 45 that is the logical address 41 converted to the physical address 42 that designates the same block 22. The same block designation address 45 becomes the second candidate address 44b. In the present embodiment, the same block designation address 45 corresponds to a second address.
- the address calculating unit 17 calculates consecutive identical block designation addresses 45 as the candidate addresses 44. Specifically, in the logical-physical conversion table 40, the range of the logical address 41 in which the data of the continuous logical address 41 is written in the same block 22 (the range of the same block designation address 45) is appropriately selected.
- step 107 an area having the longest continuous LBA written in the same block 22 is selected. That is, the range of the same block designation address 45 is selected in descending order of the range. This makes it possible to prepare a range of the candidate addresses 44 that can correspond to the size of the write data with a small number of loops.
- the order of the pages 21 of each logical address 41 in the block 22 is preferably continuous. Thereby, the rewriting process can be executed smoothly.
- the present invention is not limited to this, and any logical address 41 included in the same block 22 and having continuous address values can be the same block designation address 45.
- new data is to be written using the same block designation address 45.
- new data is written to a writable page 21 which is a free area.
- the write position (new physical address 42) of the page 21 in which the new data is written is registered in the same block designation address 45.
- many invalid data are generated in the block 22 designated by the same block designation address 45.
- all the data in the block 22 may be invalidated by overwriting the continuous logical addresses 41.
- the block 22 in which all data has become invalid can be erased without performing garbage collection. This makes it possible to avoid the occurrence of garbage collection.
- the order in which the range of the second candidate address 44b is selected is not limited to the above example.
- the range of the second candidate address 44b may be selected according to the order of the pages 21 in the block 22 or the like.
- the range of the second candidate address 44b may be selected in ascending order of the logical address 41.
- step 108 of FIG. 10 Information on the calculated range of the second candidate address 44b (head address, data size, etc.) is registered in the candidate list.
- step 108 of FIG. 10 the total amount of data size registered in the candidate list is calculated and used for the determination in step 106.
- the loop processing ends. That is, when the range of the first candidate address 44a and the range of the second candidate address 44b are calculated such that all the write data can be written, the second loop process ends. As described above, in the second loop process, the process of calculating the range of the plurality of second candidate addresses 44b is continued until the data size that is not enough in the range of the first candidate addresses 44a is satisfied. become.
- the created candidate list is transmitted to the host device 30 (Step 109).
- the address calculation unit 17 generates a candidate list regarding the range of the candidate address 44, and notifies the host device 30 of the generated candidate list.
- FIG. 13 is a table showing an example of the candidate list.
- the candidate list 50 includes a start address (start LBA) of the range of the candidate address 44 and a data size (Size) that can be written in the range of the candidate address 44.
- start LBA start address
- Size data size
- the candidate list 50 includes a flag (Flag) for the range of each candidate address 44.
- the flag is appropriately calculated at the timing when the range of each candidate address 44 is registered in the candidate list 50 in, for example, steps 103, 105, and 107.
- the flag is an index relating to the writing speed when writing data to which the candidate address 44 has been added. As described above, when data is written using the first candidate address 44a, garbage collection is not induced, and high-speed writing is possible. When writing data using the second candidate address 44b, there are cases where garbage collection is not induced and cases where garbage collection is induced.
- the first candidate address 44a and the second candidate address 44b have different degrees of stability of the writing speed. Therefore, by adding a flag to the candidate list 50, when notifying the host device 30 of the range of the candidate addresses 44, the host device can distinguish which range is which candidate address 44. This makes it possible to improve the efficiency of data write processing, and realize high-speed write processing.
- the host device 30 can perform a process of sequentially selecting from the range of candidate addresses 44 that can be written at high speed.
- the type and calculation method of the flag are not limited. For example, an arbitrary flag capable of notifying a difference in writing speed when the candidate address 44 is used may be calculated and registered in the candidate list 50. .
- the address calculation unit 17 transmits the candidate list including the start LBA, the size, and the flag regarding the range of the candidate address 44 to the host device 30 via the host interface 18.
- FIG. 14 is a flowchart showing an example of the operation of the host device.
- FIG. 14 illustrates an example of a write process when the host device 30 writes data to the semiconductor storage device 10.
- a writing notification command is transmitted to the semiconductor memory device 10 (Step 201).
- the data generation unit 34 calculates the data size of the data to be written by the host device 30 from now on, and generates a write notification command notifying that the data of the data size is to be written.
- the generated write notification command is transmitted to the semiconductor memory device 10 via the external interface 35.
- the semiconductor memory device 10 executes the calculation process of the candidate address 44 described with reference to FIG. Then, the calculated candidate list 50 regarding the range of the candidate address 44 is transmitted to the host device 30 via the host interface 18.
- the host device 30 receives the candidate list 50 calculated by the semiconductor storage device 10 (address calculation unit 17) (Step 202).
- the data generation unit 34 generates write data based on the candidate list 50 (step 203).
- the data generation unit 34 selects the logical address 41 to be added to the write data from the range of the candidate addresses 44 included in the candidate list 50.
- the logical address 41 included in the range of the first candidate address 44a is a logical address 41 that does not correspond to valid data. That is, for the host device 30, the first candidate address 44a is an unused logical address 41 to which no data is written. Therefore, in the data generation unit 34, for example, the logical address 41 included in the range of the first candidate address 44a is preferentially selected.
- the logical address 41 included in the range of the second candidate address 44b is the logical address 41 of accessible data to which the physical address 42 is associated.
- the data generation unit 34 determines whether the logical address 41 included in the range of the second candidate address 44b is a logical address 41 of data necessary for the host device 30, for example.
- the second candidate address 44b is the logical address 41 of the necessary data, the second candidate address 44b is not selected. In this case, a logical address of data unnecessary for the host device 30 is appropriately selected.
- the data generation unit 34 generates write data to which the logical address 41 selected based on the candidate list 50 is added.
- the write data is transmitted to the semiconductor memory device 10 together with the write command (Step 204). Then, in the semiconductor storage device 10, the write data to which the candidate address 44 has been added is appropriately written to each page 21 by the access processing unit 16.
- the high-speed writable logical address 41 is added by notifying the host of the range of the high-speed writable logical address 41 (the range of the candidate address 44) from the semiconductor memory device.
- Write data is generated.
- the occurrence of garbage collection is suppressed, and a situation in which the performance at the time of writing is reduced is avoided.
- each of the plurality of blocks 22 has the plurality of pages 21.
- Each page 21 can individually write data, and the block 22 can collectively erase data written to a plurality of pages 21.
- a candidate address 44 which is a candidate for the logical address 41 of the data to be written is calculated. By using the candidate address 44, the data writing speed can be improved.
- garbage collection may be required in a state where there are many blocks 22 with few invalid data, depending on how data is written from the host. For example, if a process of randomly rewriting a part of a group of data to which a continuous logical address is added frequently occurs, the number of blocks 22 with less invalid data increases. In such a case, even if the garbage collection of one block 22 is performed, the free area does not increase so much, the garbage collection of a plurality of blocks 22 is required, and there is a possibility that the influence on the performance is increased.
- the range of the logical address 41 (candidate address 44) at which high-speed writing can be performed is calculated according to the writing state of each page 21 in the nonvolatile semiconductor memory 11.
- the host device 30 generates write data using the range of the candidate address 44.
- newly written data uses the logical address 41 that can be written at high speed, and it is possible to sufficiently secure the writing speed and the stability thereof.
- the information in the logical-physical conversion table 40 is used as information on the writing status. This makes it possible to easily calculate an appropriate candidate address 44 without sensing, for example, the writing state in the nonvolatile semiconductor memory 11.
- logical addresses such as a blank address and the same block designation address are calculated as candidate addresses.
- the present invention is not limited to this, and any logical address that can be written at high speed may be calculated as a candidate address.
- the candidate address was calculated using the information of the logical-physical conversion table as the information on the writing state of the page included in the nonvolatile semiconductor memory.
- the present invention is not limited to this, and the candidate address may be calculated using any information that can refer to the writing status of the nonvolatile semiconductor memory.
- the candidate address may be calculated using another table or the like generated based on the logical-physical conversion table.
- a dedicated table for calculating a candidate address may be generated.
- the candidate address can be easily calculated.
- a table in which only logical addresses (blank addresses) not associated with physical addresses are extracted, or a table generated so that valid data and invalid data at each writing position can be discriminated is appropriately used. You may. Further, by sensing the inside of the nonvolatile semiconductor memory, the information on the writing status may be calculated as appropriate.
- the candidate address was calculated according to the request command (write notification command) from the host device.
- the present invention is not limited to this. For example, even when there is no request command, a process of calculating a candidate address may be appropriately executed.
- the start address and the size of the range of candidate addresses that can be written at high speed are automatically calculated at the timing when the write processing or the read processing is not executed.
- the information on the calculated candidate address range is disclosed so as to be accessible from the host device or the like.
- the host device can acquire the information of the logical address that can be written at high speed by appropriately referring to the disclosed information on the range of the candidate address. For example, such a configuration may be adopted.
- the present invention is not limited to this, and the host device and the semiconductor storage device may be connected via wireless communication or the like.
- an interface is appropriately provided according to a standard such as a wireless LAN, Bluetooth (registered trademark), NFC (Near Field Communication), or WUSB (Wireless USB).
- a wireless LAN wireless local area network
- Bluetooth registered trademark
- NFC Near Field Communication
- WUSB Wireless USB
- a storage unit having a plurality of page units each capable of individually writing data and a plurality of block units capable of collectively erasing data written in the plurality of page units;
- a calculating unit that calculates a candidate address that is a candidate of a logical address of data written to the page unit based on information on a writing state of the page unit included in the storage unit.
- the nonvolatile storage device includes a first address that is a logical address for which the physical address is not specified, The non-volatile storage device, wherein the calculation unit calculates the first address as the candidate address.
- the nonvolatile storage device (7), The non-volatile storage device, wherein the calculation unit calculates the consecutive first addresses as the candidate addresses.
- the nonvolatile storage device (8)
- the nonvolatile storage device (7), The non-volatile storage device, wherein the calculation unit calculates the consecutive first addresses as the candidate addresses.
- the nonvolatile storage device is an address that specifies the block section and the page section, The nonvolatile storage device, wherein the calculation unit calculates, as the candidate address, a second address that is the logical address converted to the physical address that specifies the same block unit.
- the nonvolatile storage device according to any one of (1) to (12), further comprising: A communication unit that performs data communication with a host device that accesses the storage unit, The non-volatile storage device, wherein the calculation unit notifies the host device of the candidate address via the communication unit.
- the nonvolatile storage device according to (13), The communication unit receives the data size of the write data from the host device, The nonvolatile storage device, wherein the calculation unit calculates the range of the candidate address based on the received data size.
- the nonvolatile storage device according to (14), The nonvolatile storage device, wherein the calculation unit generates notification information regarding the range of the candidate address, and notifies the host device of the generated notification information.
- the nonvolatile storage device according to (15), The notification information includes at least one of a head address of the range of the candidate address, a data size writable in the range of the candidate address, and an index relating to a writing speed when writing data to which the candidate address is added. Sex storage device.
- a host device capable of accessing a nonvolatile storage device, The non-volatile storage device, A storage unit having a plurality of page units each of which can individually write data, and a plurality of block units which can collectively erase data written to the plurality of page units; A calculating unit that calculates a candidate address that is a candidate for a logical address of data written to the page unit, based on information about a writing status of the page unit included in the storage unit.
- a communication unit that performs data communication for accessing the storage unit of the nonvolatile storage device; And a generation unit that obtains the candidate address from the nonvolatile storage device via the communication unit and generates write data to which the obtained candidate address is added.
- a nonvolatile storage device capable of accessing the nonvolatile storage device, The non-volatile storage device, A storage unit having a plurality of page units each of which can individually write data, and a plurality of block units which can collectively erase data written to the plurality of page units; A calculating unit that calculates a candidate address that is a candidate for a logical address of data written to the page unit, based on information about a writing status of the page unit included in the storage unit.
- the host device includes: A communication unit that performs data communication for accessing the storage unit of the nonvolatile storage device; A generating unit that obtains the candidate address from the nonvolatile storage device via the communication unit and generates write data to which the obtained candidate address is added.
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)
- Microelectronics & Electronic Packaging (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本技術の一形態に係る不揮発性記憶装置は、記憶部と、算出部とを具備する。前記記憶部は、各々が、データを個別に書き込み可能なページ部を複数有し前記複数のページ部に書き込まれたデータを一括して消去可能な複数のブロック部を有する。前記算出部は、前記記憶部に含まれる前記ページ部の書き込み状況に関する情報に基づいて、前記ページ部に書き込まれるデータの論理アドレスの候補となる候補アドレスを算出する。
Description
本技術は、データの記憶処理に適用可能な不揮発性記憶装置、ホスト装置、及びデータ記憶システムに関する。
特許文献1には、データを記憶するためのデジタルシステムが記載されている。デジタルシステムでは、不揮発性のメモリデバイスにデータが記憶される。例えばホストからコントローラにデータとその論理ブロックアドレス(LBA)とが供給される。LBAは、メモリデバイス内の利用可能な記憶領域を指定する物理ブロックアドレス(PBA)に変換される。データは、PBAで指定される記憶領域に書き込まれ、LBA及びPBAは、メモリデバイスに設定された所定のバッファに格納される。ホストは、例えばLBAを指定することで、書き込まれたデータにアクセスすることが可能である(特許文献1の第5頁33段落-第6頁37段落、図1等)。
近年、不揮発性の記憶装置が用いられる機会が増えており、データの書き込み速度を向上することが可能な技術が求められている。
以上のような事情に鑑み、本技術の目的は、データの書き込み速度を向上することが可能な不揮発性記憶装置、ホスト装置、及びデータ記憶システムを提供することにある。
上記目的を達成するため、本技術の一形態に係る不揮発性記憶装置は、記憶部と、算出部とを具備する。
前記記憶部は、各々が、データを個別に書き込み可能なページ部を複数有し前記複数のページ部に書き込まれたデータを一括して消去可能な複数のブロック部を有する。
前記算出部は、前記記憶部に含まれる前記ページ部の書き込み状況に関する情報に基づいて、前記ページ部に書き込まれるデータの論理アドレスの候補となる候補アドレスを算出する。
前記記憶部は、各々が、データを個別に書き込み可能なページ部を複数有し前記複数のページ部に書き込まれたデータを一括して消去可能な複数のブロック部を有する。
前記算出部は、前記記憶部に含まれる前記ページ部の書き込み状況に関する情報に基づいて、前記ページ部に書き込まれるデータの論理アドレスの候補となる候補アドレスを算出する。
この不揮発性記憶装置では、複数のブロック部の各々が複数のページ部を有する。各ページ部は個別にデータ書き込みが可能であり、ブロック部は複数のページ部に書き込まれたデータを一括して消去可能である。これらページ部の書き込み状況に関する情報から、これから書き込まれるデータの論理アドレスの候補となる候補アドレスが算出される。この候補アドレスを用いることで、データの書き込み速度を向上することが可能となる。
前記算出部は、前記候補アドレスの範囲を算出してもよい。
これにより、例えば連続した候補アドレスを用いてデータの書き込みを行うことが可能となる。この結果、データの書き込み処理の効率を向上することが可能となる。
これにより、例えば連続した候補アドレスを用いてデータの書き込みを行うことが可能となる。この結果、データの書き込み処理の効率を向上することが可能となる。
前記算出部は、複数の候補アドレスの範囲を算出してもよい。
これにより、書き込まれるデータサイズに応じた候補アドレスの範囲を用意することが可能となり、例えば十分なデータサイズを安定して書き込むことが可能となる。
これにより、書き込まれるデータサイズに応じた候補アドレスの範囲を用意することが可能となり、例えば十分なデータサイズを安定して書き込むことが可能となる。
前記算出部は、前記候補アドレスの範囲の先頭アドレスを算出してもよい。
これにより、候補アドレスの範囲を容易に指定することが可能となり、データの書き込み処理の効率を向上することが可能となる。
これにより、候補アドレスの範囲を容易に指定することが可能となり、データの書き込み処理の効率を向上することが可能となる。
前記算出部は、前記候補アドレスの範囲で書き込み可能なデータサイズを算出してもよい。
これにより、候補アドレスの範囲を用いた場合のデータサイズを指定することが可能となり、データの書き込み処理を安定して実行することが可能となる。
これにより、候補アドレスの範囲を用いた場合のデータサイズを指定することが可能となり、データの書き込み処理を安定して実行することが可能となる。
前記書き込み状況に関する情報は、前記ページ部に書き込まれたデータの論理アドレスを前記ページ部の物理アドレスに変換する変換テーブルの情報を含んでもよい。
これにより、候補アドレスを容易に算出することが可能となり、データの書き込み処理の効率を十分に向上することが可能となる。
これにより、候補アドレスを容易に算出することが可能となり、データの書き込み処理の効率を十分に向上することが可能となる。
前記変換テーブルは、前記物理アドレスが指定されていない論理アドレスである第1のアドレスを含んでもよい。この場合、前記算出部は、前記第1のアドレスを前記候補アドレスとして算出してもよい。
これにより、例えば使われていない論理アドレスを候補アドレスとして用いることが可能となり、データの書き込み速度を十分に向上することが可能となる。
これにより、例えば使われていない論理アドレスを候補アドレスとして用いることが可能となり、データの書き込み速度を十分に向上することが可能となる。
前記算出部は、連続する前記第1のアドレスを前記候補アドレスとして算出してもよい。
これにより、高速に書き込み可能な連続する候補アドレスを用意することが可能となる。この結果、書き込み速度を向上しつつ書き込み処理の効率を向上することが可能となる。
これにより、高速に書き込み可能な連続する候補アドレスを用意することが可能となる。この結果、書き込み速度を向上しつつ書き込み処理の効率を向上することが可能となる。
前記物理アドレスは、前記ブロック部と前記ページ部とを指定するアドレスであってもよい。この場合、前記算出部は、同一の前記ブロック部を指定する前記物理アドレスに変換される前記論理アドレスである第2のアドレスを前記候補アドレスとして算出してもよい。
例えば第2のアドレスに従ってデータを書き込むことで、同一のブロック部に書き込まれたデータが無効化され、空き領域を生成する処理等の効率を向上することが可能となる。
例えば第2のアドレスに従ってデータを書き込むことで、同一のブロック部に書き込まれたデータが無効化され、空き領域を生成する処理等の効率を向上することが可能となる。
前記算出部は、連続する前記第2のアドレスを前記候補アドレスとして算出してもよい。
これにより、同一のブロック部に書き込まれたデータがまとめて無効化される。この結果空き領域を生成する処理等の効率を大幅に向上することが可能となる。
これにより、同一のブロック部に書き込まれたデータがまとめて無効化される。この結果空き領域を生成する処理等の効率を大幅に向上することが可能となる。
前記算出部は、前記候補アドレスが付加されたデータを書き込む場合の書き込み速度に関する指標を算出してもよい。
これにより、データの書き込み処理の効率を向上することが可能となり、高速な書き込み処理を実現することが可能となる。
これにより、データの書き込み処理の効率を向上することが可能となり、高速な書き込み処理を実現することが可能となる。
前記算出部は、前記候補アドレスに対応する前記物理アドレスの有無に応じて、前記書き込み速度に関する指標を算出してもよい。
これにより、データの書き込み処理の効率を向上することが可能となり、高速な書き込み処理を実現することが可能となる。
これにより、データの書き込み処理の効率を向上することが可能となり、高速な書き込み処理を実現することが可能となる。
前記不揮発性記憶装置は、さらに、前記記憶部にアクセスするホスト装置とのデータ通信を行う通信部を具備してもよい。この場合、前記算出部は、前記通信部を介して前記ホスト装置に前記候補アドレスを通知してもよい。
これにより、ホスト装置は候補アドレスを用いた書き込み用のデータ等を生成することが可能となり、記憶部への書き込み速度を十分に向上することが可能となる。
これにより、ホスト装置は候補アドレスを用いた書き込み用のデータ等を生成することが可能となり、記憶部への書き込み速度を十分に向上することが可能となる。
前記通信部は、前記ホスト装置から書き込み用データのデータサイズを受信してもよい。この場合、前記算出部は、前記受信されたデータサイズに基づいて、前記候補アドレスの範囲を算出してもよい。
これにより、書き込まれるデータサイズに応じた候補アドレスの範囲を用意することが可能となり、書き込み用データを高速かつ効率的に書き込むことが可能となる。
これにより、書き込まれるデータサイズに応じた候補アドレスの範囲を用意することが可能となり、書き込み用データを高速かつ効率的に書き込むことが可能となる。
前記算出部は、前記候補アドレスの範囲に関する通知情報を生成し、生成された前記通知情報を前記ホスト装置に通知してもよい。
これにより、例えばホスト装置は、通知情報に基づいて候補アドレスが付加された書き込み用データを適正に生成することが可能となる。
これにより、例えばホスト装置は、通知情報に基づいて候補アドレスが付加された書き込み用データを適正に生成することが可能となる。
前記通知情報は、前記候補アドレスの範囲の先頭アドレス、前記候補アドレスの範囲で書き込み可能なデータサイズ、及び前記候補アドレスが付加されたデータを書き込む場合の書き込み速度に関する指標の少なくとも1つを含んでもよい。
これにより、例えばホスト装置は、通知情報に基づいて候補アドレスが付加された書き込み用データを用意に生成することが可能となる。
これにより、例えばホスト装置は、通知情報に基づいて候補アドレスが付加された書き込み用データを用意に生成することが可能となる。
本技術の一形態に係るホスト装置は、不揮発性記憶装置にアクセス可能なホスト装置であって、通信部と、生成部とを具備する。
前記不揮発性記憶装置は、各々が、データを個別に書き込み可能なページ部を複数有し前記複数のページ部に書き込まれたデータを一括して消去可能な複数のブロック部を有する記憶部と、前記記憶部に含まれる前記ページ部の書き込み状況に関する情報に基づいて、前記ページ部に書き込まれるデータの論理アドレスの候補となる候補アドレスを算出する算出部とを有する。
前記通信部は、前記不揮発性記憶装置の前記記憶部にアクセスするためのデータ通信を行う。
前記生成部は、前記通信部を介して前記不揮発性記憶装置から前記候補アドレスを取得し、取得された前記候補アドレスが付加された書き込み用データを生成する。
前記不揮発性記憶装置は、各々が、データを個別に書き込み可能なページ部を複数有し前記複数のページ部に書き込まれたデータを一括して消去可能な複数のブロック部を有する記憶部と、前記記憶部に含まれる前記ページ部の書き込み状況に関する情報に基づいて、前記ページ部に書き込まれるデータの論理アドレスの候補となる候補アドレスを算出する算出部とを有する。
前記通信部は、前記不揮発性記憶装置の前記記憶部にアクセスするためのデータ通信を行う。
前記生成部は、前記通信部を介して前記不揮発性記憶装置から前記候補アドレスを取得し、取得された前記候補アドレスが付加された書き込み用データを生成する。
本技術の一形態に係るデータ記憶システムは、不揮発性記憶装置と、前記不揮発性記憶装置にアクセス可能なホスト装置とを具備する。
前記不揮発性記憶装置は、各々が、データを個別に書き込み可能なページ部を複数有し前記複数のページ部に書き込まれたデータを一括して消去可能な複数のブロック部を有する記憶部と、前記記憶部に含まれる前記ページ部の書き込み状況に関する情報に基づいて、前記ページ部に書き込まれるデータの論理アドレスの候補となる候補アドレスを算出する算出部とを有する。
前記ホスト装置は、前記不揮発性記憶装置の前記記憶部にアクセスするためのデータ通信を行う通信部と、前記通信部を介して前記不揮発性記憶装置から前記候補アドレスを取得し、取得された前記候補アドレスが付加された書き込み用データを生成する生成部とを有する。
前記不揮発性記憶装置は、各々が、データを個別に書き込み可能なページ部を複数有し前記複数のページ部に書き込まれたデータを一括して消去可能な複数のブロック部を有する記憶部と、前記記憶部に含まれる前記ページ部の書き込み状況に関する情報に基づいて、前記ページ部に書き込まれるデータの論理アドレスの候補となる候補アドレスを算出する算出部とを有する。
前記ホスト装置は、前記不揮発性記憶装置の前記記憶部にアクセスするためのデータ通信を行う通信部と、前記通信部を介して前記不揮発性記憶装置から前記候補アドレスを取得し、取得された前記候補アドレスが付加された書き込み用データを生成する生成部とを有する。
以上のように、本技術によれば、データの書き込み速度を向上することが可能となる。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
以下、本技術に係る実施形態を、図面を参照しながら説明する。
[データ記憶システムの構成]
図1は、本技術の一実施形態に係るデータ記憶システムの構成例を示す模式図である。図2は、図1に示すデータ記憶システム100の構成例を示すブロック図である。データ記憶システム100は、半導体記憶装置10と、ホスト装置30とを含む。本実施形態では、半導体記憶装置10は、不揮発性記憶装置に相当する。
図1は、本技術の一実施形態に係るデータ記憶システムの構成例を示す模式図である。図2は、図1に示すデータ記憶システム100の構成例を示すブロック図である。データ記憶システム100は、半導体記憶装置10と、ホスト装置30とを含む。本実施形態では、半導体記憶装置10は、不揮発性記憶装置に相当する。
データ記憶システム100では、ホスト装置30が半導体記憶装置10にアクセスすることにより、半導体記憶装置10へのデータの書き込みや、半導体記憶装置10からのデータの読み出しが実行される。なお本開示においてアクセスとは、半導体記憶装置10上のデータ(情報)を読み書き(読み出し/書き込み)することを含む。
従って、ホスト装置30から見て、半導体記憶装置10は、各種のデータを記憶させるための外部記憶装置(補助記憶装置)として機能する。また半導体記憶装置10から見て、ホスト装置30は、記憶されたデータにアクセスする外部装置であり、例えば半導体記憶装置10に記憶されたデータにアクセスする任意の装置がホスト装置30となり得る。例えば、ホスト装置30は、PC(Personal Computer)、サーバ、撮影機器(デジタルカメラ等)、メディア再生機器(音楽プレイヤー等)、携帯端末(スマートフォン、タブレット等)、及び各種のセンサ機器等である。ホスト装置30の種類は限定されない。
半導体記憶装置10に記憶されるデータは、ホスト装置30に搭載された演算装置で用いられるデジタルデータ(電子データ)である。データの種類等は限定されない。例えば音声、画像、映像、数値、テキスト、ドキュメント、アプリケーションプログラム等の任意のデータが半導体記憶装置10に記憶可能である。なお一まとまりのデータが分割された断片的なデータも、本開示におけるデータに含まれる。
図1に示すように、半導体記憶装置10は、不揮発性半導体メモリ11と、接続部12と、コントローラ13とを有する。不揮発性半導体メモリ11、接続部12、及びコントローラ13は、図示しない配線を介して適宜接続される。
不揮発性半導体メモリ11は、典型的にはNAND型のフラッシュメモリ(NAND Flash)であり、データの書き込み及びデータの読み出しが可能なように構成される。不揮発性半導体メモリ11の記憶可能なデータの容量(記憶容量)等は限定されず、適宜設定されてよい。
図3は、不揮発性半導体メモリ11の書き込み単位及び消去単位を示す模式図である。不揮発性半導体メモリ11では、例えば基板上に多数のセル20(メモリセル)が構成される。1つのセル20は、互いに異なる電圧レベルを維持することで、所定量の情報を保持する。例えば、2つの電圧レベルを維持するSLC(Single Level Cell)方式では、各セル20により1bit(0又は1)の情報(状態)が保持される。この場合、各セル20に対して0又は1の情報を書き込むことで、デジタルデータが記録される。また、各セル20に保持された状態を読み出すことで、デジタルデータを読み出すことが可能である。この他、セル20に情報を記録する方式等は限定されない。例えば、各セル20に2bitの情報を保持するMLC(Multiple Level Cell)方式や、各セル20に3bitの情報を保持するTLC(Triple Level Cell)方式等が適宜用いられてよい。これらSLC、MLC、及びTLC等のいずれの方式が用いられる場合であっても、本技術は適用可能である。
NAND型のフラッシュメモリ等を用いた不揮発性半導体メモリ11では、データの書き込み単位となるページ21と、データの消去単位となるブロック22とが設定される。なお図3に示すように、データを書き込む単位であるページ21と、データを消去する単位であるブロック22の大きさ(データサイズ)は異なる。
ページ21は、複数のセル20を含む。不揮発性半導体メモリ11では、1つのページ21に含まれる複数のセル20に対して、一括してデータが書き込まれる。なお、各セル20に対して個別にデータが書き込まれることはない。このように、ページ21は、データを個別に書き込み可能な最小の単位(書き込み単位)である。本実施形態では、ページ21は、ページ部に相当する。なお通常の構成では、1つのページ21に含まれる各セル20に対して、同一の方式でデータが記録される。従って例えば、1bit、2bit、あるいは3bitの情報を保持するセル20は、同じページ21ではなく、異なるページ21に割り当てられることになる。
ページ21に含まれるセル20の個数、すなわちページ21に記録されるデータサイズは、適宜設定されてよい。例えば512byte(4096bit)のデータ部と16byte(128bit)の冗長部を含むようにページ21が設定される。この場合、データ部には512byteの書き込み用データ等が記録される。なお冗長部には管理情報等が記録される。もちろんこれに限定されず、ページ21のサイズ・構成等は任意に設定されてよい。
ブロック22は、複数のページ21を含む。図3の左側には、1つのブロック22に含まれる複数のページ21が模式的に図示されている。不揮発性半導体メモリ11では、1つのブロック22に含まれる複数のページ21(セル20)に書き込まれたデータが一括して消去される。なお、各ページ21あるいは各セル20に書き込まれたデータが個別に消去されることはない。このように、ブロック22は、ページ21に書き込まれたデータを一括して消去可能な最小の単位(消去単位)である。本実施形態では、ブロック22は、ブロック部に相当する。
ブロック22に含まれるページ21の個数、すなわちブロック22のデータサイズは、適宜設定されてよい。例えば1つのブロック22は、32個のページ21で構成される。例えばページ21のデータ部が512byteであった場合、ブロックのデータサイズは約16Kbyteとなる。もちろんこれに限定されず、ブロック22のサイズ・構成等は任意に設定されてよい。
不揮発性半導体メモリ11には、図3の右側に示すように、複数のブロック22が設けられる。すなわち、不揮発性半導体メモリ11は、各々が、データを個別に書き込み可能なページ21を複数有し複数のページ21に書き込まれたデータを一括して消去可能な複数のブロック22を有する。これらのブロック22を適宜消去されることで、データの書き換えや空き領域の確保等が可能となる。本実施形態では、不揮発性半導体メモリ11は、記憶部に相当する。
なお消去単位がブロック22であるため、ブロック22内の一部のページ21のデータのみを直接書き換えることはできない。このような処理を実行するには、例えばブロック22内のデータを一度待避するといった処理等が必要となる。この点については、図7及び図8等を参照して後述する。
図1に戻り、接続部12は、ホスト装置30と接続するための接続端子であり、例えば半導体記憶装置10の接続規格に従って構成される。接続部12は、例えば半導体記憶装置10のパッケージの外側に配置され、後述するホスト装置30の接続部31と接続される。
接続部12の具体的な構成は限定されない。例えば、メモリースティック、SDカード、コンパクトフラッシュ(登録商標)、USB(Universal Serial Bus)、PCI(Peripheral Component Interconnect)、SATA(Serial Advanced Technology Attachment)等の各種の規格に従った接続端子を含む接続部12が適宜用いられてよい。この他、任意の規格に従った接続端子等が設けられてよい。
コントローラ13は、半導体記憶装置10(不揮発性半導体メモリ11)の動作を制御する。コントローラ13は、例えばCPU(Central Processing Unit)、RAM(Random Access Memory)、及びROM(Read Only Memory)等のコンピュータに必要なハードウェアを有する。例えばCPUがROMに予め記録されている所定のプログラムをRAMにロードして実行することにより、本技術に係る情報処理方法等が実行される。
コントローラ13の具体的な構成は限定されず、例えばFPGA(Field Programmable Gate Array)等のPLD(Programmable Logic Device)、その他ASIC(Application Specific Integrated Circuit)等のデバイスが用いられてもよい。
図2に示すように、コントローラ13は、通信処理部24、テーブル記憶部15、アクセス処理部16、及びアドレス算出部17を有する。
通信処理部14は、ホスト装置30とのデータ通信を行うための通信処理を実行する。通信処理部14は、例えば上記した接続部12の規格等に応じた通信処理が可能となるように適宜構成される。通信処理部14は、例えば通信処理を行う専用回路等を用いて構成されてもよい。
通信処理部14は、ホスト装置30から出力された、読み出しコマンドや書き込みコマンド等の各種の処理コマンドや、書き込み用データ等を接続部12を介して受信する。受信されたコマンドやデータは、後述するアクセス処理部16及びアドレス算出部17に出力される。また通信処理部14は、不揮発性半導体メモリ11から読み出されたデータや、アドレス算出部17の算出結果等を接続部12を介してホスト装置30に送信する。
このように半導体記憶装置10では、接続部12及び通信処理部14により、不揮発性半導体メモリ11にアクセスするホスト装置30とのデータ通信を行うホストインタフェース18(ホストI/F)が構成される。本実施形態では、ホストインタフェース18(接続部12及び通信処理部14)は、不揮発性記憶装置の通信部に相当する。以下では、接続部12を介して通信処理部14により実行されるデータ通信を、ホストインタフェース18を介して実行されるデータ通信と記載する場合がある。
テーブル記憶部15は、データの書き込み位置が記録されたテーブル(論物変換テーブル)を記憶する。テーブル記憶部15は、例えばコントローラ13に設けられたRAM等の記憶装置により構成される。なお、テーブル記憶部15の具体的な構成は限定されない。例えば不揮発性半導体メモリ11等を用いてテーブル記憶部15が構成されてもよい。
図4は、論物変換テーブルの一例を示す模式図である。論物変換テーブル40は、ページ21に書き込まれたデータの論理アドレス41をページ21の物理アドレス42に変換するテーブルである。例えばデータの論理アドレス41を指定することで、そのデータが実際に書き込まれた書き込み位置(ページ21の物理アドレス42)が参照され、指定したデータを参照することが可能である。本実施形態では、論物変換テーブル40は、変換テーブルに相当する。
例えば、ホスト装置30が不揮発性半導体メモリ11にデータを書き込む場合、書き込み対象となるデータには、当該データの書き込み位置を表す仮想的なアドレスが付加される。この仮想的なアドレスが論理アドレス41である。ホスト装置30は、論理アドレス41を用いることで、書き込み位置(物理アドレス42)等を参照することなく、所望のデータを取り扱うことが可能となる。
論理アドレス41は、例えばLBA(Logical Block Addressing)等の所定の方式に従って、ホスト装置30等により書き込み対象となるデータ(書き込み用データ)に適宜付加される。論理アドレス41を付加する方法等は限定されず、仮想的なアドレスを指定可能な任意の方式が用いられてよい。
論理アドレス41としては、例えば通し番号のアドレス値が用いられる。図4では、論理アドレス41を表すアドレス値が10進数(0、1、2、3、・・・)を用いて表記されている。以下では、論理アドレス41のアドレス値をLBAと記載し、その値を10進数で表記する。なお実際の処理では、例えば16進数等を用いて論理アドレス41が表される場合がある。いずれの場合であっても、以下に説明する内容は適用可能である。
物理アドレス42は、ページ21の位置を表すアドレスである。より詳しくは、物理アドレスは、ブロック22とページ21とを指定するアドレスである。図4に示す例では、ブロック22の番号(ブロック位置)と、そのブロック22内でのページ21の番号(ページ位置)を用いて、1つのページ21の物理アドレス42が構成される。
物理アドレス42の方式や物理アドレス42を表記する方法等は限定されず、例えば不揮発性半導体メモリ11内でのページ21を一意的に指定可能な任意の方式や表記方法等が用いられてよい。以下では、符号と区別するため、ブロック22及びページ21の位置を表す番号に「#」をつけて記載する。
図4に示すように、論物変換テーブル40には、論理アドレス41のリストが記録される。論理アドレス41のリストは、例えば論理アドレス41(通し番号)の最小値から最大値までのリストである。すなわち、論物変換テーブル40には、ホスト装置30等により用いられる可能性のある論理アドレス41のリストが準備されているとも言える。
例えば、図4に示す例では、アドレス値が0である論理アドレス41(LBA=0)に対応して、「ブロック#10、ページ#0」という物理アドレス42が記録されている。すなわち、論理アドレス41が0であるデータは、10番目のブロック22の0番目のページ21に書き込まれている。同様に、アドレス値が1~5である論理アドレス41(LBA=1~5)についても、各アドレス値が付加されたデータが書き込まれたページ21の位置を表す物理アドレス42がそれぞれ記録されている。
なお、半導体記憶装置10では、各データの書き込み位置(ページ21)が変更される場合がある。この場合、論物変換テーブル40では、各データの物理アドレス42がページ21の変更に伴い適宜書き換えられる。これにより、ホスト装置30等は、書き込み位置が変更された場合であっても、所望のデータに適正にアクセスすることが可能となる。
また論物変換テーブル40には、物理アドレス42が指定されていない論理アドレス41である空白アドレス43が含まれる。本実施形態では、空白アドレス43は第1のアドレスに相当する。例えば図4では、LBA=n~n+2には、対応する物理アドレス42が記録されていない。このような論理アドレス41が、空白アドレス43となる。この場合、論理アドレス41がLBA=n、n+1、n+2であるデータは、不揮発性半導体メモリ11において参照可能なデータとして書き込まれていないことになる。
論理アドレス41が空白アドレス43である場合としては、例えば、LBA=n、n+1、n+2であるようなデータがもともと書き込まれていない場合が考えられる。例えば、半導体記憶装置10が初期状態(フォーマット直後等)であるとする。このような場合、書き込まれているデータ量が少なく、論理アドレス41のリストにおける空白アドレス43の割合が高くなる。また例えば、データが書き込まれた後に物理アドレス42が消去されて、そのデータが無効化されることがあり得る(Trimコマンド等)。このような場合、無効化されたデータに付加されていた論理アドレス41が空白アドレス43となる。
論物変換テーブル40の具体的な構成は限定されない。例えば不揮発性半導体メモリ11に書き込まれたデータに適正にアクセス可能となるように、論物変換テーブル40が適宜構成されてよい。
図2に戻り、アクセス処理部16は、ホスト装置30からのコマンドに応じて、不揮発性半導体メモリ11にアクセスするための各種の処理を実行する。ホスト装置30からのコマンドとは、例えばデータの読み出しコマンド、書き込みコマンド、消去コマンド等である。アクセス処理部16は、これらのコマンドに応じて、不揮発性半導体メモリ11からのデータの読み出しや、不揮発性半導体メモリ11に対するデータの書き込み、消去等の処理を実行する。
またアクセス処理部16は、データを書き込むための空き領域を確保する。例えばデータを新たに書き込み可能な領域(ページ21やブロック22等)を検索する、あるいはデータを書き換えて書き込み可能な領域を生成することで、空き領域が確保される。これにより、データを安定して書き込むことが可能である。空き領域を確保する方法等は限定されない。
なお、アクセス処理部16は、これらの処理を実行する際に、論物変換テーブル40の物理アドレス42を適宜書き換える(図6参照)。例えば、データを他のページ21に移動する場合等には、対象のデータの論理アドレス41に対応する物理アドレス42が、移動先のページ21の物理アドレス42に書き換えられる。
アドレス算出部17は、不揮発性半導体メモリ11に含まれるページ21の書き込み状況に関する情報に基づいて、ページ21に書き込まれるデータの論理アドレス41の候補となる候補アドレスを算出する。本実施形態では、アドレス算出部17は、算出部に相当する。
書き込み状況に関する情報とは、例えば、不揮発性半導体メモリ11のどのページ21にどのデータが書き込まれているかといった情報である。これは、例えばどの物理アドレス42にどの論理アドレス41が対応しているかといった情報であるとも言える。このような情報は、図4を参照して説明した論物変換テーブル40を用いることで、容易に取得することが可能である。
本実施形態では、アドレス算出部17により、不揮発性半導体メモリ11に含まれるページ21の書き込み状況に関する情報として、論物変換テーブル40の情報が用いられる。すなわち、アドレス算出部17は、論物変換テーブル40の情報に基づいて、候補アドレスを算出する。
候補アドレスは、例えばこれから不揮発性半導体メモリ11に書き込まれるデータに付加される論理アドレス41の候補である。例えばホスト装置30では、所定の方式に従って、書き込み対象となるデータ(書き込み用データ)に対して論理アドレス41が付加される。この書き込み用データに付加される論理アドレス41の候補が、不揮発性半導体メモリ11での書き込み状況に応じて算出される。
具体的には、アドレス算出部17により、候補アドレスの範囲が算出される。上記したように、本実施形態では通し番号の論理アドレス41が用いられる。従って候補アドレスの範囲とは、連続する論理アドレス41の範囲である。候補アドレスの範囲は、例えば先頭アドレス(アドレス値が最小の論理アドレス41)と、その範囲のサイズで規定することが可能である。この他にも、例えば最小(先頭)のアドレスと最大(最後尾)のアドレスとが、候補アドレスの範囲として算出されてもよい。
本実施形態では、アドレス算出部17により、複数の候補アドレスの範囲が算出される。従って、例えば図4に示す論理アドレス41のリストのうち、連続した論理アドレス41が含まれる部分的な論理アドレス41のリストが複数算出されることになる。なお、各候補アドレスの範囲(部分的な論理アドレス41のリスト)は、論理アドレス41が互いに重複しないように算出される。これにより、候補アドレス、すなわちこれから書き込まれるデータの論理アドレス41が重複するといった事態が回避される。
またアドレス算出部17は、ホストインタフェース18を介してホスト装置30に候補アドレスを通知する。例えばデータが書き込まれるより前のタイミングで、候補アドレスが算出され、ホスト装置30に向けて通知される。これにより、ホスト装置30は、データを書き込む前に、不揮発性半導体メモリ11での書き込み状況に合わせて、適切な論理アドレス41(候補アドレス)を選択することが可能となる。候補アドレスを算出する方法や、ホスト装置30に通知される情報等については、後に詳しく説明する。
ホスト装置30は、半導体記憶装置10にアクセス可能に構成される。図2に示すように、ホスト装置30は、接続部31と、プロセッサ32とを有する。接続部31は、半導体記憶装置10と接続するための接続端子である。例えば接続部31は、半導体記憶装置10の接続部12が接続可能となるように適宜構成される。なおホスト装置30本体に接続部31が設けられる場合に限定されず、例えばカードリーダ等の各種の接続規格に対応した接続用のアダプタ等が用いられてもよい。
プロセッサ32は、通信処理部33と、データ生成部34とを有する。通信処理部33は、半導体記憶装置10とのデータ通信を行うための通信処理を実行する。通信処理部33は、例えば上記した接続部31の規格等に応じた通信処理が可能となるように適宜構成される。
通信処理部33は、読み出しコマンドや書き込みコマンド等の各種の処理コマンドや、書き込み用データ等を接続部31を介して半導体記憶装置10に送信する。また、通信処理部33は、不揮発性半導体メモリ11から読み出されたデータや、アドレス算出部17により算出された候補アドレス等を接続部31を介して受信する。受信結果は、ホスト装置30の処理ユニット(図示省略)やデータ生成部34等に適宜出力される。
このように半導体記憶装置10では、接続部31及び通信処理部33により、不揮発性半導体メモリ11にアクセスするためのデータ通信を行う外部インタフェース35(外部I/F)が構成される。本実施形態では、外部インタフェース35(接続部31及び通信処理部33)は、ホスト装置の通信部に相当する。以下では、接続部31を介して通信処理部33により実行されるデータ通信を、外部インタフェース35を介して実行されるデータ通信と記載する場合がある。
データ生成部34は、半導体記憶装置10に書き込むための書き込み用データを生成する。具体的には、書き込み対象となるデータファイルに対して、所定の方式(例えばLBA方式等)に従って不揮発性半導体メモリ11に書き込むための論理アドレス41を付加する。この論理アドレス41が付加されたデータが書き込み用データとなる。
本実施形態では、データ生成部34は、外部インタフェース35を介して半導体記憶装置10から候補アドレスを取得し、取得された候補アドレスが付加された書き込み用データを生成する。本実施形態では、データ生成部34は、生成部に相当する。
例えばデータ生成部34は、必要に応じて候補アドレスを要求する要求コマンド(書き込み通知コマンド等)を、半導体記憶装置10に送信する。例えば半導体記憶装置10では、アドレス算出部17により、要求コマンドに応じて複数の候補アドレスの範囲が算出され、ホスト装置30に通知される。
データ生成部34は、各候補アドレスの範囲から、実際に書き込む論理アドレス41の範囲を選択し、選択された論理アドレス41(候補アドレス)を使って、書き込み用データを生成する。生成された書き込み用データは、外部インタフェース35を介して半導体記憶装置10に送信され、不揮発性半導体メモリ11に書き込まれる。
このように、ホスト装置30では、半導体記憶装置10により指定された論理アドレス41(候補アドレス)を用いて書き込み用データが生成される。また半導体記憶装置10(不揮発性半導体メモリ11)には、候補アドレスが付加されたデータが書き込まれる。これにより、書き込み状況に合わせたデータの書き込みを実現することが可能となる。
[データの読み出し・書き込み処理]
以下では、半導体記憶装置10のアクセス処理部16による、データの読み出し処理や、書き込み処理等について、具体的に説明する。
以下では、半導体記憶装置10のアクセス処理部16による、データの読み出し処理や、書き込み処理等について、具体的に説明する。
図5は、データの読み出し処理の一例を示す模式図である。図5では、ホスト装置30からデータを読み出すためのコマンド36(読み出しコマンド)が出力される。アクセス処理部16は、ホストインタフェース18を介して読み出しコマンドを受信し、不揮発性半導体メモリ11(ページ21)に書き込まれたデータの読み出し処理を実行する。
図5に示す例では、読み出しコマンドにより、LBA=2のデータを読み出すように要求される(Read(LBA=2))。アクセス処理部16は、論物変換テーブル40を参照して、LBA=2のデータが書き込まれたページ21の物理アドレス42(ブロック#20、ページ#10)を検索する。すなわち、ホスト装置30からのデータの読み出しコマンドに対して、アクセス処理部16は、論物変換テーブルを用いて有効なデータが記録されている不揮発性半導体メモリ11上の位置へ変換する。
またアクセス処理部16は、20番目のブロック22の、10番目のページ21にアクセスして、そのページ21に書き込まれているデータを読み出す。読み出されたデータは、ホストインタフェース18を介してホスト装置30に送信される。これにより、ホスト装置30は、LBA=2のデータを取得することが可能となる。
図6は、データの書き込み処理の一例を示す模式図である。図6では、ホスト装置30からデータを書き込むためのコマンド36(書き込みコマンド)が出力される。アクセス処理部16は、ホストインタフェース18を介して書き込みコマンド及び書き込み用データを受信し、不揮発性半導体メモリ11(ページ21)に受信した書き込み用データを書き込む処理を実行する。
図6に示す例では、書き込みコマンドにより、LBA=2の書き込み用データを書き込むように要求される(Write(LBA=2))。なお、不揮発性半導体メモリ11には、すでに論理アドレス41のアドレス値が2であるデータ(LBA=2のデータ)が20番目のブロック22の10番目のページ21に書き込まれているとする(図5参照)。
アクセス処理部16は、例えば書き込みコマンドとともに受信した書き込み用データを予め確保されていた空き領域に書き込む。図6では、1ページ21分の書き込み用データが受信され、21番目のブロック22の20番目のページ21に書き込まれる。
またアクセス処理部16は、論物変換テーブル40にアクセスし、書き込み用データに付加された論理アドレス(LBA=2)の物理アドレス42を、新しく書き込みを行ったページ21の物理アドレス42(ブロック#21、ページ#20)に更新する。すなわち、ホスト装置30からのデータの書き込みコマンドに対して、アクセス処理部16は、空き領域へデータを書き込み、コマンドで指定された論理アドレス41の論物変換テーブル40を新しい書き込み位置へ更新する。
これにより、書き込まれたデータの論理アドレス41(LBA=2)の古い書き込み位置を指すテーブルはなくなる。従って例えば、次にLBA=2のデータを読み込む際には、更新後の物理アドレス42(ブロック#21、ページ#20)に書き込まれた新しいデータが読み込まれる。
また更新前の物理アドレス(ブロック#20、ページ#10)に書き込まれている古いデータは、当該データの論理アドレス41に関する情報が失われているため読み込まれなくなる。すなわち、古い書き込み位置(更新前の物理アドレス42)に書かれているデータは無効データとなる。図6では、無効データとなったページ21(ブロック#20、ページ#10)が灰色の領域で模式的に図示されている。
このように、論物変換テーブル40は、論理アドレス41により指定される有効なデータ(アクセス可能なデータ)の不揮発性半導体メモリ11上の位置を表すテーブルであるとも言える。別の観点では、論物変換テーブル40に物理アドレス42が記録されていないデータは、アクセスされることの無い無効データとなる。
なお、ホスト装置30から見て、論物変換テーブル40上の有効なデータの全てが必要なデータであるとは限らない。例えば論物変換テーブル40において有効なデータの中には、ホスト装置30にとって不要なデータも含まれる。半導体記憶装置10では、ホスト装置30にとって不要なデータであっても、ホスト装置30からの指示があるまでは有効なデータとして記憶される。従って、有効なデータとは、ホスト装置30からアクセス可能な状態で半導体記憶装置10が保持するべきデータであるとも言える。
図7は、同一のブロック22を用いた書き換え処理の一例を示す模式図である。図7に示す書き換え処理では、あるブロック22(ページ21)に書き込まれていたデータが更新され、同一のブロック22(ページ21)に新しく書き込まれる。
上記したように、NAND型のフラッシュメモリ等の不揮発性半導体メモリ11では、データの消去は、ブロック22を単位として実行される。このため、ブロック22内の一部のページ21だけデータを書き換えるといった処理は実行されない。
図7の左側に示すように、書き換え対象となるページ21(図中の斜線のページ21)を含む書き換え対象ブロック22aでは、書き換えを行わないページ21のデータがコントローラ13のRAMや、他のブロック22等に一時的に待避される。例えば、書き換えを行わないページ21のデータが読み出され、他の記憶領域(図中ではRAM)に書き込まれバックアップされる。
書き換えを行わないページ21のデータを退避した後、図7の中央に示すように、書き換え対象ブロック22a内のデータが全て消去される。これにより、書き換え対象ブロック22aはデータを書き込むことが可能な状態となる。図7の右側に示すように、他の記憶領域(RAM等)に待避されていたデータが読み出され、書き換え対象ブロック22aの元の書き込み位置(ページ21に)書き込まれる。この時、書き換え対象となるページ21には、新しいデータが書き込まれる。
このように図7に示す書き換え処理では、書き換えを行わないデータが待避され、退避したデータと書き換えを行うデータとが合わせて書き込まれる。この手法ではデータの退避や再書き込みに要する時間が大きくなる。このため、ホスト装置30が安定した速度で読み書きを行うことが難しくなる場合があり得る。
図8は、異なるブロック22を用いた書き換え処理の一例を示す模式図である。図8に示す書き換え処理では、あるブロック22(ページ21)に書き込まれていたデータが更新され、他のブロック22(ページ21)に新しく書き込まれる。
図8の右側には、書き換え対象ブロック22a(ブロック#15)と、空き領域を含む書き込み可能ブロック22b(ブロック#24)と、書き換え前の論物変換テーブル40とが模式的に図示されている。図8では、ブロック#15のページ#1に書き込まれたLBA=5のデータと、同じくブロック#15のページ#5に書き込まれたLBA=4のデータとが書き換えられる。
例えば、ホスト装置30からLBA=4及びLBA=5のデータを書き換えるコマンドが出力される。この場合、アクセス処理部16により、書き込み可能なページ21を含むブロック22b(ブロック#24)が探索され、2ページ21分の空き領域が確保される。なお書き換えるデータのサイズや、探索されたブロック22の書き込み状況によっては、複数のブロック22に分けて空き領域が確保される場合もあり得る。
図8の右側に示すように、アクセス処理部16により、ホスト装置30から受信した新しいデータ(LBA=4及び5のデータ)が書き込み可能なブロック22b(ブロック#24)に書き込まれる。また、論物変換テーブル40に記憶された、書き換え対象となるデータの論理アドレス41に対応する物理アドレス42が書き換えられる。
例えば図8では、LBA=4の物理アドレス42が、(ブロック#15、ページ#5)から(ブロック#24、ページ#0)に書き換えられる。またLBA=4の物理アドレス42が、(ブロック#15、ページ#1)から(ブロック#24、ページ#1)に書き換えられる。この結果、古い物理アドレス42に書き込まれている古いデータは、無効データとなる。
このように、不揮発性半導体メモリ11を使用した半導体記憶装置10では、書き換え時に適当な空き領域にデータを書き込み、各論理アドレス41の書き込み位置を保持する論物変換テーブル40を書き換え、元のデータを無効にすることが多い。この方法では、空き領域があればほとんどパフォーマンスが低下することなくデータの書き換えが可能である。
一方で、図8に示す処理を繰り返した場合、無効なデータが書き込まれたページ21(無効領域)が増加し、空き領域が減少することが考えられる。例えばこのような状態が放置されると、適当な空き領域を確保することが難しくなり、データの書き込みが難しくなる可能性がある。
このように、システム全体で無効データが増えると新たなデータの書き込みができなくなる恐れがある。このため、半導体記憶装置10では、アクセス処理部16により、空き領域がなくなる前にブロック22内の有効なデータのみを空き領域にコピーして、新たな空き領域を生成するガベージコレクションと呼ばれる処理が実行される。
図9は、ガベージコレクション処理の一例を示す模式図である。ガベージコレクションは、例えば、空き領域がなくなる前に無効なデータを含むブロック22内の有効なデータのみを他のブロック22にコピーし、元のブロック22を消去する処理である。
図9の右側には、ガベージコレクションを実行する前のコピー元のブロック22cと、コピー先のブロック22dとが模式的に図示されている。コピー元のブロック22cには、有効なデータが書き込まれたページ21と、無効なデータが書き込まれたページ21(灰色のページ21)とが含まれる。またコピー先のブロック22cは、全てのページ21が書き込み可能な空きブロック22である。
ガベージコレクションでは、例えばアクセス処理部16により、コピー元のブロック22cに含まれる有効なデータのみが読み出され、RAM等に一時的に格納される。図9の左側に示すように、読み出された有効なデータは、コピー先のブロック22dに適宜書き込まれる。なおデータの書き込みは、例えば番号の小さいページ21から順番に実行される。このため、コピー先のブロック22には、番号の連続した書き込み可能なページ21が残る。
有効なデータがコピーされると、コピーされたデータの論理アドレス41に対応する物理アドレス42が書き換えられ、論物変換テーブル40が更新される。これにより、コピー元のブロック22cに書き込まれていた有効なデータは、その論理アドレスに関する情報が失われ無効なデータとなる。この結果、コピー元のブロック22cは、無効なデータのみが書き込まれたブロック22となる。
アクセス処理部16は、コピー元のブロック22cに書き込まれたデータ(無効なデータ)を消去する。これにより、コピー元のブロック22cは、書き込み可能なブロック22となる。この結果、システム全体では、コピー元のブロック22cにもともと書き込まれていた無効なデータのデータ量と同等の空き領域が生成されることになる。
このように、ガベージコレクションでは有効なデータのみがコピーされるため空き領域が増加する。またガベージコレクションは、無効なデータが多く有効なデータが少ないブロック22(コピー元のブロック22)に対して行う方が望ましい。例えばブロック22に含まれる無効なデータが多いほど、ガベージコレクションにより増える空き領域が多くなる。また、ブロック22に含まれる有効なデータが少ないほどガベージコレクションでコピーする回数が減り、他の処理のパフォーマンスへの影響等を小さくすることが可能である。
一方で、コピーを行う有効なデータ量が多いほど、コピー処理等に時間がかかり演算量が増大する。この場合、ガベージコレクションを実行することにより、他の処理等のパフォーマンスが低下するといった影響が生じる可能性がある。
一般に、ホストとして機能する装置は、デバイス(半導体記憶装置10)の内部の状況に関係なく論理アドレス41を決めて、データの書き込みを行う。この場合、書き込みを行う論理アドレス41によっては、ガベージコレクションが必要になることや、ガベージコレクションの発生回数等が増加することがあり得る。この結果、安定した速度での書き込みが困難となる恐れがある。
[候補アドレスの算出処理]
図10は、候補アドレスの算出処理の一例を示すフローチャートである。本実施形態では、アドレス算出部17により、ページ21に書き込まれる論理アドレス41の候補となる候補アドレスが算出される。
図10は、候補アドレスの算出処理の一例を示すフローチャートである。本実施形態では、アドレス算出部17により、ページ21に書き込まれる論理アドレス41の候補となる候補アドレスが算出される。
図10に示す処理は、ホスト装置30がデータを書き込む際にアドレス算出部17により実行される処理である。例えば、ホスト装置30からデータを書き込む旨の書き込み通知コマンドが出力される。アドレス算出部17は、ホストインタフェース18を介して書き込み通知コマンドを受信し、候補アドレスの算出処理を開始する。
具体的には、ホスト装置30により、これから書き込みを行う書き込み用データのデータデータサイズ(データ容量)が算出される。算出されたデータサイズは、書き込み通知コマンドとともに外部インタフェース35を介して半導体記憶装置10に出力される。
半導体記憶装置10では、ホストインタフェース18により、ホスト装置30から書き込み用データのデータサイズが受信される。そしてアドレス算出部により、受信されたデータサイズに基づいて、候補アドレスの範囲が算出される。このように、本実施形態では、書き込まれるデータサイズに応じた候補アドレスの範囲が用意される。以下図9を参照して、候補アドレスの範囲の算出処理について具体的に説明する。
ホスト装置30により指定された書き込み用データのデータサイズ(指定サイズ)が、不揮発性半導体メモリ11の空き領域のサイズ(空きサイズ)以下であるか否かが判定される(ステップ101)。不揮発性半導体メモリ11の空き領域のサイズとは、例えば現在書き込み可能なページ21の総データ容量である。空き領域のサイズは、アクセス処理部16により適宜算出される。空き領域のサイズを算出する方法は限定されない。
なお、ステップ101では、候補アドレスを記録するリストが生成される。すなわち、候補アドレスとして算出される論理アドレス41を記録するためのデータ領域やパラメータ等が適宜設定される。以下では、候補アドレスのリストを、単に候補リストと記載する場合がある。本実施形態では、候補リストは、通知情報に相当する。
書き込み用データのデータサイズが空き領域のサイズよりも小さい場合(ステップ101のYes)、空き領域にデータを書き込むための候補アドレスを算出する第1のループ処理(ステップ102~ステップ104)が実行される。以下では、第1のループ処理により算出される候補アドレスを、第1の候補アドレスと記載する場合がある。
ステップ102では、候補リストに登録されたサイズが指定サイズよりも小さいか否かが判定される。候補リストに登録されたサイズとは、候補リストに登録された候補アドレスの範囲を用いて書き込み可能なデータサイズである。この点については後述する。候補リストに登録されたサイズが指定サイズより小さい場合、ステップ103が実行され第1の候補アドレスが算出される。
図11は、第1の候補アドレスの一例について説明するための模式図である。図2を参照して説明したように、アドレス算出部17は、論物変換テーブル40の情報(不揮発性半導体メモリ11の書き込み状況)に基づいて、候補アドレス44を算出する。図11には、論物変換テーブル40の一例が模式的に図示されている。
ステップ103では、アドレス算出部17により、空白アドレス43が候補アドレス44として算出される。この空白アドレス43が第1の候補アドレス44aとなる。例えば、半導体記憶装置10上に有効なデータがない(論物変換テーブル40に書き込み位置が登録されていない)論理アドレス41である空白アドレス43が選択される。これにより、例えば使われていない論理アドレス41(空白アドレス43)を候補アドレス44として用いることが可能となる。
また本実施形態では、アドレス算出部17により、連続する空白アドレス43が候補アドレス44として算出される。具体的には、論物変換テーブル40において、物理アドレス42が登録されていない空白範囲(空白アドレス43の範囲)が適宜選択される。
例えば図11に示す例では、LBA=200~202は、物理アドレス42が登録されていない空白アドレス43である。またLBA=500~509も、空白アドレス43である。もちろん、これらの他に空白アドレス43が含まれることも考えられる。例えば、アドレス算出部17により、これらの空白アドレス43の範囲(LBA=200~202/LBA=500~509等)から、第1の候補アドレス44aの範囲が適宜選択される。
例えば、空白アドレス43を用いて新しいデータを書き込む場合、そのデータは空き領域である書き込み可能なページ21に書き込まれる。この時、空白アドレス43には新しいデータが書き込まれたページ21の書き込み位置(新しい物理アドレス42)が登録される。なお、空白アドレス43では、古い書き込み位置(古い物理アドレス42)等は登録されていないため、新しいデータが書き込まれても無効データが発生しない。
このように、不揮発性半導体メモリ11(デバイス)上に有効なデータがない論理アドレス41(空白アドレス43)に関しては、書き込みを行っても無効なデータが増えない。このため、無効なデータを含むブロック22等が発生せず、ガベージコレクションの発生を誘発しない。従って、第1の候補アドレス44aを用いることで、ガベージコレクションに伴う書き込み速度の低下が回避され、十分に高速な書き込み処理が可能となる。すなわち、第1の候補アドレス44aの範囲は、最も安定した速度で書き込みができる論理アドレス41の範囲であるとも言える。
第1の候補アドレス44aの範囲が選択されると、第1の候補アドレス44aの範囲の先頭アドレスが算出される。例えば、LBA=200~202が選択された場合、先頭アドレス(先頭LBA)は、200となる。また例えば、LBA=500~509が選択された場合、先頭アドレスは、500となる。この先頭アドレスにより、例えば論物変換テーブル40での、第1の候補アドレス44aの範囲の位置を表すことが可能である。
また、第1の候補アドレス44aの範囲で書き込み可能なデータサイズが算出される。ここで、候補アドレス44の範囲で書き込み可能なデータサイズとは、例えば候補アドレス44の範囲に含まれる論理アドレス41を全て用いた場合に、書き込み可能となるデータのデータ量である。図3等を参照して説明したように、1つの論理アドレス41は、1つのページ21に書き込まれるデータに付加される。また1つのページ21に書き込み可能なデータサイズは予め設定されている。
以下では、説明を簡単にするため1つのページ21に書き込み可能なデータサイズを10とする(Size=10)。このデータサイズは、例えば任意の単位で表される相対的なデータ量を表すものとする。なお実際には、ページ21に含まれるセル20の数や、データ用に用いられるセル範囲(データ部)等の設定に応じて、書き込み可能なデータサイズが適宜設定される。
例えば、LBA=200~202には3個の論理アドレス41が含まれる。このため、LBA200~202の範囲に書き込み可能なデータサイズは、30となる。また例えば、LBA=500~509には10個の論理アドレス41が含まれ、書き込み可能なデータサイズは、100となる。このように、第1の候補アドレス44aの範囲に含まれるアドレスの個数と、ページ21に書き込み可能なデータサイズとの積から、第1の候補アドレス44aの範囲で書き込み可能なデータサイズが算出される。
なお第1の候補アドレス44aの範囲(空白アドレス43の範囲)を選択する順番や、データサイズを算出する方法等は限定されない。例えば、書き込み可能なデータサイズが大きい順に、第1の候補アドレス44aの範囲が選択されてもよい。また例えば、論理アドレス41の小さい順に、第1の候補アドレス44aの範囲が選択されてもよい。
算出された第1の候補アドレス44aの範囲に関する情報(先頭アドレスやデータサイズ等)は、候補リストに登録される。図10のステップ104では、候補リストに登録されたデータサイズの総量が算出される。例えば新しく選択される第1の候補アドレス44aの範囲のデータサイズが、それまでに登録されていたデータサイズの総量に加算される。候補リスト50に登録されたデータサイズは、ステップ102での判定に用いられる。
例えば、候補リストに登録されたサイズが指定サイズ以上である場合、ループ処理が終了する。すなわち、書き込み用データを全て書き込むことが可能となるような、第1の候補アドレス44aの範囲が算出された場合、第1のループ処理が終了する。このように、第1のループ処理では、指定サイズが満たされるまで、複数の第1の候補アドレス44aの範囲を算出する処理が継続されることになる。
ステップ101に戻り、ホスト装置30により指定された指定サイズが、不揮発性半導体メモリ11の空きサイズよりも大きい場合(ステップ101のNo)、全ての空白アドレス43の範囲が選択される(ステップ105)。
上記したように、空白アドレス43には、論物変換テーブル40において、物理アドレス42が登録されていない。従って例えば、空白アドレス43の個数は、空き領域となる書き込み可能なページ21の個数に対応すると考えられる。言い換えれば、空白アドレス43がない状態は、全てのページ21になんらかの有効なデータが書き込まれた状態であると言える。
例えば、指定サイズが空きサイズよりも大きい場合、全ての空白アドレス43を用いても指定サイズのデータを完全に書き込むことはできない。このため、本実施形態では、高速に書き込み可能な範囲である、空白アドレス43の範囲(第1の候補アドレス44aの範囲)を候補リストに登録し、その上で他の候補アドレス44の範囲が新たに算出される。
ステップ105では、例えば論物変換テーブル40が参照され、全ての空白範囲の先頭アドレス(先頭LBA)と、各範囲のデータサイズとが候補リストに登録される。従って、候補リストには、現在利用可能な第1の候補アドレス44aの範囲の位置と、それらを用いて確保されるデータサイズとが登録されることになる。
第1の候補アドレス44aの範囲が全て選択されると、データの書き替えを伴う候補アドレスを算出する第2のループ処理(ステップ106~ステップ108)が実行される。以下では、第2のループ処理により算出される候補アドレスを、第2の候補アドレスと記載する場合がある。
ステップ106では、候補リストに登録されたサイズが指定サイズよりも小さいか否かが判定される。候補リストに登録されたサイズが指定サイズより小さい場合、ステップ107が実行され第2の候補アドレスが算出される。
図12は、第2の候補アドレスの一例について説明するための模式図である。図12には、論物変換テーブル40の一例が模式的に図示されている。
ステップ107では、アドレス算出部17により、同一のブロック22に書き込まれたデータの論理アドレス41(以下同一ブロック指定アドレス45と記載する)が算出される。すなわち、アドレス算出部17は、同一のブロック22を指定する物理アドレス42に変換される論理アドレス41である同一ブロック指定アドレス45を候補アドレス44として算出する。この同一ブロック指定アドレス45が第2の候補アドレス44bとなる。本実施形態では、同一ブロック指定アドレス45は、第2のアドレスに相当する。
また本実施形態では、アドレス算出部17により、連続する同一ブロック指定アドレス45が候補アドレス44として算出される。具体的には、論物変換テーブル40において、連続した論理アドレス41のデータが同じブロック22に書かれている論理アドレス41の範囲(同一ブロック指定アドレス45の範囲)が適宜選択される。
例えば図12に示す例では、LBA=800~819は、ブロック#30に書き込まれたデータの論理アドレス41であり、連続した同一ブロック指定アドレス45である。またLBA=1500~1504は、ブロック#75に書き込まれた、連続した同一ブロック指定アドレス45である。もちろん、これらの他に連続した同一ブロック指定アドレス45が含まれることも考えられる。例えば、アドレス算出部17により、これらの同一ブロック指定アドレス45の範囲(LBA=800~819/LBA=1500~1504等)から、第1の候補アドレス44aの範囲が適宜選択される。
ステップ107では、同一ブロック22に書かれた連続LBAが最も長い領域が選択される。すなわち、同一ブロック指定アドレス45の範囲は、範囲の大きい順に選択されることになる。これにより、少ないループ回数で書き込み用データのサイズに対応可能な候補アドレス44の範囲を用意することが可能となる。
なおブロック22内での各論理アドレス41のページ21の順序は、連続していることが好ましい。これにより、書き換え処理をスムーズに実行可能である。これに限定されず、同一ブロック22に含まれアドレス値が連続する任意の論理アドレス41が同一ブロック指定アドレス45となり得る。
例えば、同一ブロック指定アドレス45を用いて新しいデータを書き込むとする。例えば新しいデータは、空き領域である書き込み可能なページ21に書き込まれる。この時、同一ブロック指定アドレス45には、新しいデータが書き込まれたページ21の書き込み位置(新しい物理アドレス42)が登録される。
この場合、同一ブロック指定アドレス45で指定されていたブロック22では、無効データが多数発生する。例えば、書き込まれるデータのサイズによっては、連続した論理アドレス41の上書きによりブロック22内のすべてのデータが無効になることもあり得る。この場合、全てのデータが無効になったブロック22は、ガベージコレクションをすることなく消去することが可能である。これにより、ガベージコレクションの発生そのものを回避することが可能となる。
また、上書きする範囲が狭いなどの理由ですべてのデータが無効にならない場合でも、無効なデータが多く有効なデータが少ないブロック22が生じることになる。例えば図9等を参照して説明したように、ガベージコレクションは、無効なデータが多いとガベージコレクションにより増える空き領域が多くなる。また有効なデータが少ないとガベージコレクションの処理量そのものを低減することが可能となる。
すなわち、無効データが多数含まれるブロック22を発生させることで、1度のガベージコレクションで効率的に空き領域を増大させるとともに、ガベージコレクションによるパフォーマンスへの影響を十分に抑制することが可能となる。この結果空き領域を生成する処理等の効率を大幅に向上することが可能となる。またガベージコレクションが実行される場合であっても、パフォーマンスを低下させることなく、高速なデータの書き込みを実現することが可能となる。
第2の候補アドレス44bの範囲が選択されると、第2の候補アドレス44bの範囲の先頭アドレス、及び第2の候補アドレス44bの範囲で書き込み可能なデータサイズが算出される。例えば、LBA=800~819が選択された場合、先頭アドレス(先頭LBA)は800となり、そのデータサイズは200(10×20)となる。また例えば、LBA=1500~1502が選択された場合、先頭アドレスは1500となり、そのデータサイズは、50(=10×5)となる。
なお第2の候補アドレス44bの範囲(同一ブロック指定アドレス45の範囲)を選択する順番等は上記した例に限定されない。例えば、ブロック22内のページ21の順番等に応じて第2の候補アドレス44bの範囲が選択されてもよい。あるいは、論理アドレス41の小さい順に、第2の候補アドレス44bの範囲が選択されてもよい。
算出された第2の候補アドレス44bの範囲に関する情報(先頭アドレスやデータサイズ等)は、候補リストに登録される。図10のステップ108では、候補リストに登録されたデータサイズの総量が算出され、ステップ106での判定に用いられる。
例えば、候補リストに登録されたサイズが指定サイズ以上である場合、ループ処理が終了する。すなわち、書き込み用データを全て書き込むことが可能となるような、第1の候補アドレス44aの範囲及び第2の候補アドレス44bの範囲が算出された場合、第2のループ処理が終了する。このように、第2のループ処理では、第1の候補アドレス44aの範囲では足りない分のデータサイズが満たされるまで、複数の第2の候補アドレス44bの範囲を算出する処理が継続されることになる。
第1のループ処理あるいは第2のループ処理が終了すると、作成した候補リストがホスト装置30に送信される(ステップ109)。このように、本実施形態では、アドレス算出部17により、候補アドレス44の範囲に関する候補リストが生成され、生成された候補リストがホスト装置30に通知される。
図13は、候補リストの一例を示す表である。図13には、ホスト装置30により書き込み用データのサイズとしてSize=380が指定された場合の候補リスト50の一例が示されている。なお、図13に示す候補リスト50は、第2のループ処理により生成された候補リスト50である。
図13に示すように、候補リスト50には、候補アドレス44の範囲の先頭アドレス(先頭LBA)と、候補アドレス44の範囲で書き込み可能なデータサイズ(Size)とが含まれる。
図13には、第1の候補アドレス44aの範囲として、図11に示すLBA=500~509の空白アドレス43の範囲(先頭LBA=500、Size=100)と、LBA=200~202の空白アドレス43の範囲(先頭LBA=200、Size=30)とが登録されている。また第2の候補アドレス44bの範囲として、図12に示すLBA=800~819の同一ブロック指定アドレス45の範囲(先頭LBA=800、Size=200)と、LBA=1500~1504の同一ブロック指定アドレス45の範囲(先頭LBA=1500、Size=50)とが登録されている。
これら4つの候補アドレス44の範囲の総データサイズは、ホスト装置30により指定された指定サイズSize=380と同じデータサイズとなる。なお、空白アドレス43や同一ブロック指定アドレス45が連続する範囲の大きさによっては、指定サイズよりも大きいデータサイズ分の候補アドレス44の範囲が算出される場合もあり得る。
また、候補リスト50には、各候補アドレス44の範囲についてのフラグ(Flag)が含まれる。フラグは、例えばステップ103、ステップ105、及びステップ107において、各候補アドレス44の範囲が候補リスト50に登録されるタイミングで適宜算出される。
フラグは、候補アドレス44が付加されたデータを書き込む場合の書き込み速度に関する指標である。上記したように、第1の候補アドレス44aを用いてデータを書き込む場合には、ガベージコレクションが誘発されず、高速な書き込みが可能である。また第2の候補アドレス44bを用いてデータを書き込む場合、ガベージコレクションが誘発されない場合と、誘発される場合がある。
このように、第1の候補アドレス44aと、第2の候補アドレス44bとでは、書き込み速度の安定度合いが互いに異なると言える。従って、候補リスト50にフラグを追加することで、ホスト装置30に対して候補アドレス44の範囲を通知するときに、どの範囲がどちらの候補アドレス44であるのかをホスト装置が区別できるようなる。これにより、データの書き込み処理の効率を向上することが可能となり、高速な書き込み処理を実現することが可能となる。
例えばアドレス算出部17は、候補アドレス44に対応する物理アドレス42の有無に応じて、書き込み速度に関するフラグを算出する。例えば、空白アドレス43のように、論物変換テーブル40において対応する物理アドレス42が無い場合、その候補アドレス44の範囲にはFlag=0が算出される。すなわちFlag=0は、未使用の論理アドレス41への書き込みを示す指標となる。また例えば、同一ブロック指定アドレス45のように、論物変換テーブル40において対応する物理アドレス42が有る場合、その候補アドレス44の範囲にはFlag=1が算出される。すなわちFlag=1は、使用されている論理アドレス41への書き込みを示す指標となる。
例えば図13では、先頭LBA=500及び200である第1の候補アドレス44aの範囲に対して、Flag=0が登録される。また先頭LBA=800及び1500である第2の候補アドレス44bの範囲に対して、Flag=1が登録される。これにより、例えばホスト装置30では、高速に書き込み可能な候補アドレス44の範囲から順番に選択するといった処理が可能となる。なお、フラグの種類や算出方法等は限定されず、例えば候補アドレス44を用いた場合の書き込み速度の違い等を知らせることが可能となる任意のフラグが算出され、候補リスト50に登録されてよい。
このように、本実施形態では、アドレス算出部17により、候補アドレス44の範囲に関する、先頭LBA、サイズ、及びフラグを含む候補リストが、ホストインタフェース18を介して、ホスト装置30に送信される。
図14は、ホスト装置の動作の一例を示すフローチャートである。図14には、ホスト装置30が半導体記憶装置10にデータを書き込む場合の書き込み処理の一例が示されている。
書き込み処理では、書き込み通知コマンドが半導体記憶装置10に向けて送信される(ステップ201)。例えばデータ生成部34により、ホスト装置30がこれから書き込むデータのデータサイズが算出され、そのデータサイズのデータを書き込む旨を通知する書き込み通知コマンドが生成される。生成された書き込み通知コマンドは、外部インタフェース35を介して半導体記憶装置10に送信される。
半導体記憶装置10は、書き込み通知コマンドを受信すると、図10を参照して説明した候補アドレス44の算出処理を実行する。そして算出された候補アドレス44の範囲に関する候補リスト50が、ホストインタフェース18を介してホスト装置30に送信される。
ホスト装置30は、半導体記憶装置10(アドレス算出部17)により算出された候補リスト50を受信する(ステップ202)。ホスト装置30では、データ生成部34により、候補リスト50に基づいて書き込み用データが生成される(ステップ203)。
例えばデータ生成部34は、候補リスト50に含まれる候補アドレス44の範囲から、書き込み用データに付加する論理アドレス41を選択する。例えば第1の候補アドレス44aの範囲に含まれる論理アドレス41は、有効なデータに対応していない論理アドレス41である。すなわち、ホスト装置30にとって、第1の候補アドレス44aは、データが書き込まれていない未使用の論理アドレス41となる。従って、データ生成部34では、例えば第1の候補アドレス44aの範囲に含まれる論理アドレス41が優先的に選択される。
また例えば、第2の候補アドレス44bの範囲に含まれる論理アドレス41は、物理アドレス42が対応づけられたアクセス可能なデータの論理アドレス41である。データ生成部34は、例えば第2の候補アドレス44bの範囲に含まれる論理アドレス41が、ホスト装置30にとって必要なデータの論理アドレス41であるか否かを判定する。
例えば、ホスト装置30の各種の処理に必要なデータの論理アドレス41が第2の候補アドレス44bの範囲に含まれていない場合、第2の候補アドレス44bの範囲が全て選択される。また第2の候補アドレス44bの範囲に、必要なデータの論理アドレス41が含まれている場合、必要なデータの論理アドレス41を除く第2の候補アドレス44bが選択される。従って、第2の候補アドレス44bの範囲から論理アドレス41を選択する場合、第2の候補アドレス44bの範囲の一部が選択されるといった場合もあり得る。
なお、第2の候補アドレス44bの全てが必要なデータの論理アドレス41となっている場合には、第2の候補アドレス44bは選択されない。この場合、ホスト装置30にとって不要なデータの論理アドレスが適宜選択される。
データ生成部34は、候補リスト50に基づいて選択された論理アドレス41が付加された書き込み用データを生成する。書き込み用データが生成されると、書き込みコマンドとともに、書き込み用データが半導体記憶装置10に送信される(ステップ204)。そして半導体記憶装置10では、アクセス処理部16により、候補アドレス44が付加された書き込み用データが各ページ21に適宜書き込まれる。
このように、本実施形態では、高速に書き込み可能な論理アドレス41の範囲(候補アドレス44の範囲)を半導体記憶装置からホストへ通知することにより、高速に書き込み可能な論理アドレス41が付加された書き込み用データが生成される。これにより、例えばガベージコレクションの発生が抑制され、書き込み時のパフォーマンスが低下するといった事態が回避される。この結果、不揮発性半導体メモリ11への書き込み速度や書き込みの安定性を十分に向上することが可能となり、高速かつ安定して書き込みを行うことができる半導体記憶装置を実現することが可能となる。
以上、本実施形態に係る半導体記憶装置10では、複数のブロック22の各々が複数のページ21を有する。各ページ21は個別にデータ書き込みが可能であり、ブロック22は複数のページ21に書き込まれたデータを一括して消去可能である。これらページ21の書き込み状況に関する情報から、これから書き込まれるデータの論理アドレス41の候補となる候補アドレス44が算出される。この候補アドレス44を用いることで、データの書き込み速度を向上することが可能となる。
NAND型のフラッシュメモリにデータを記憶する場合、ホストからのデータの書き込み方によっては、無効データが少ないブロック22が多数存在する状態でガベージコレクションが必要になる可能性がある。例えば連続する論理アドレスが付加されたひとまとまりのデータに対して、その一部をランダムに書き換えるといった処理が頻発すると、無効データが少ないブロック22が増加する。このような場合、1つのブロック22のガベージコレクションを行っても空き領域があまり増えず、複数のブロック22のガベージコレクションが必要となり、パフォーマンスへの影響が大きくなる可能性がある。
本実施形態では、不揮発性半導体メモリ11における各ページ21の書き込み状況に応じて、高速に書き込むことが可能な論理アドレス41(候補アドレス44)の範囲が算出される。またホスト装置30により、この候補アドレス44の範囲を用いて書き込み用データが生成される。これにより、新しく書き込まれるデータは、高速に書き込み可能な論理アドレス41を使用することになり、書き込み速度やその安定性を十分に確保することが可能となる。
また書き込み状況に関する情報として論物変換テーブル40の情報が用いられる。これにより、例えば不揮発性半導体メモリ11内の書き込み状況等をセンシングすることなく、容易に適正な候補アドレス44を算出することが可能である。
また候補アドレス44として、物理アドレス42が指定されていない空白アドレス43や、同一のブロック22に書き込まれたデータの論理アドレス41である同一ブロック指定アドレス45等が算出される。これにより、ガベージコレクションによるパフォーマンス低下を抑え、高速で安定した読み書きが可能となる。
また候補アドレス44を用いることで、ガベージコレクションそのものの発生を十分に抑制することが可能となる。すなわち、ガベージコレクションの実施頻度が抑えられるため、NAND型フラッシュメモリ等の書き換え回数が減り、半導体記憶装置10の寿命を延ばすことが可能となる。これにより、半導体記憶装置10の信頼性を十分に向上することが可能となる。
<その他の実施形態>
本技術は、以上説明した実施形態に限定されず、他の種々の実施形態を実現することができる。
本技術は、以上説明した実施形態に限定されず、他の種々の実施形態を実現することができる。
図10に示す処理では、候補アドレスとして、空白アドレス及び同一ブロック指定アドレスといった論理アドレスが算出された。これに限定されず、高速に書き込み可能となる任意の論理アドレスが候補アドレスとして算出されてよい。
上記では、不揮発性半導体メモリに含まれるページの書き込み状況に関する情報として、論物変換テーブルの情報を用いて候補アドレスが算出された。これに限定されず、不揮発性半導体メモリの書き込み状況を参照可能な任意の情報を用いて候補アドレスが算出されてもよい。
例えば論物変換テーブルに基づいて生成された他のテーブル等を用いて候補アドレスが算出されてもよい。例えば候補アドレスを算出するための専用テーブルが生成されてもよい。例えばこの専用テーブルを適宜更新することで、候補アドレスを容易に算出することが可能である。また例えば物理アドレスが対応付けられていない論理アドレス(空白アドレス)のみが抽出されたテーブルや、各書き込み位置での有効なデータと無効なデータとを判別可能に生成されたテーブル等が適宜用いられてもよい。また不揮発性半導体メモリ内をセンシングすることで、その書き込み状況の情報が適宜算出されてもよい。
上記の実施形態では、ホスト装置からの要求コマンド(書き込み通知コマンド)に応じて候補アドレスが算出された。これに限定されず、例えば要求コマンドがない場合であっても、候補アドレスを算出する処理が適宜実行されてよい。
例えば、高速に書き込み可能な候補アドレスの範囲の先頭アドレスやそのサイズが、書き込み処理や読み込み処理が実行されていないタイミング等に自動的に算出される。そして算出された候補アドレスの範囲に関する情報が、ホスト装置等からアクセス可能なように開示される。例えばホスト装置は、開示された候補アドレスの範囲に関する情報を適宜参照することで、高速に書き込み可能な論理アドレスの情報を取得可能である。例えばこのような構成が採用されてもよい。
上記では、ホスト装置と半導体記憶装置とが各々の接続部を介して直接接続される構成について説明した。これに限定されず、ホスト装置と半導体記憶装置とが、無線通信等を介して接続されてもよい。この場合、例えば無線LAN、Bluetooth(登録商標)、NFC(Near Field Communication)、又は、WUSB(Wireless USB)等の規格に従ってインタフェースが適宜設けられる。このように、ホスト装置と半導体記憶装置との接続形態によらず、本技術は適用可能である。
以上説明した本技術に係る特徴部分のうち、少なくとも2つの特徴部分を組み合わせることも可能である。すなわち各実施形態で説明した種々の特徴部分は、各実施形態の区別なく、任意に組み合わされてもよい。また上記で記載した種々の効果は、あくまで例示であって限定されるものではなく、また他の効果が発揮されてもよい。
なお、本技術は以下のような構成も採ることができる。
(1)各々が、データを個別に書き込み可能なページ部を複数有し前記複数のページ部に書き込まれたデータを一括して消去可能な複数のブロック部を有する記憶部と、
前記記憶部に含まれる前記ページ部の書き込み状況に関する情報に基づいて、前記ページ部に書き込まれるデータの論理アドレスの候補となる候補アドレスを算出する算出部と
を具備する不揮発性記憶装置。
(2)(1)に記載の不揮発性記憶装置であって、
前記算出部は、前記候補アドレスの範囲を算出する
不揮発性記憶装置。
(3)(2)に記載の不揮発性記憶装置であって、
前記算出部は、複数の候補アドレスの範囲を算出する
不揮発性記憶装置。
(4)(2)又は(3)に記載の不揮発性記憶装置であって、
前記算出部は、前記候補アドレスの範囲の先頭アドレスを算出する
不揮発性記憶装置。
(5)(2)から(4)のうちいずれか1つに記載の不揮発性記憶装置であって、
前記算出部は、前記候補アドレスの範囲で書き込み可能なデータサイズを算出する
不揮発性記憶装置。
(6)(1)から(5)のうちいずれか1つに記載の不揮発性記憶装置であって、
前記書き込み状況に関する情報は、前記ページ部に書き込まれたデータの論理アドレスを前記ページ部の物理アドレスに変換する変換テーブルの情報を含む
不揮発性記憶装置。
(7)(6)に記載の不揮発性記憶装置であって、
前記変換テーブルは、前記物理アドレスが指定されていない論理アドレスである第1のアドレスを含み、
前記算出部は、前記第1のアドレスを前記候補アドレスとして算出する
不揮発性記憶装置。
(8)(7)に記載の不揮発性記憶装置であって、
前記算出部は、連続する前記第1のアドレスを前記候補アドレスとして算出する
不揮発性記憶装置。
(9)(6)から(8)のうちいずれか1つに記載の不揮発性記憶装置であって、
前記物理アドレスは、前記ブロック部と前記ページ部とを指定するアドレスであり、
前記算出部は、同一の前記ブロック部を指定する前記物理アドレスに変換される前記論理アドレスである第2のアドレスを前記候補アドレスとして算出する
不揮発性記憶装置。
(10)(9)に記載の不揮発性記憶装置であって、
前記算出部は、連続する前記第2のアドレスを前記候補アドレスとして算出する
不揮発性記憶装置。
(11)(1)から(10)のうちいずれか1つに記載の不揮発性記憶装置であって、
前記算出部は、前記候補アドレスが付加されたデータを書き込む場合の書き込み速度に関する指標を算出する
不揮発性記憶装置。
(12)(11)に記載の不揮発性記憶装置であって、
前記算出部は、前記候補アドレスに対応する前記物理アドレスの有無に応じて、前記書き込み速度に関する指標を算出する
不揮発性記憶装置。
(13)(1)から(12)のうちいずれか1つに記載の不揮発性記憶装置であって、さらに、
前記記憶部にアクセスするホスト装置とのデータ通信を行う通信部を具備し、
前記算出部は、前記通信部を介して前記ホスト装置に前記候補アドレスを通知する
不揮発性記憶装置。
(14)(13)に記載の不揮発性記憶装置であって、
前記通信部は、前記ホスト装置から書き込み用データのデータサイズを受信し、
前記算出部は、前記受信されたデータサイズに基づいて、前記候補アドレスの範囲を算出する
不揮発性記憶装置。
(15)(14)に記載の不揮発性記憶装置であって、
前記算出部は、前記候補アドレスの範囲に関する通知情報を生成し、生成された前記通知情報を前記ホスト装置に通知する
不揮発性記憶装置。
(16)(15)に記載の不揮発性記憶装置であって、
前記通知情報は、前記候補アドレスの範囲の先頭アドレス、前記候補アドレスの範囲で書き込み可能なデータサイズ、及び前記候補アドレスが付加されたデータを書き込む場合の書き込み速度に関する指標の少なくとも1つを含む
不揮発性記憶装置。
(17)不揮発性記憶装置にアクセス可能なホスト装置であって、
前記不揮発性記憶装置は、
各々が、データを個別に書き込み可能なページ部を複数有し前記複数のページ部に書き込まれたデータを一括して消去可能な複数のブロック部を有する記憶部と、
前記記憶部に含まれる前記ページ部の書き込み状況に関する情報に基づいて、前記ページ部に書き込まれるデータの論理アドレスの候補となる候補アドレスを算出する算出部と
を有し、
前記不揮発性記憶装置の前記記憶部にアクセスするためのデータ通信を行う通信部と、
前記通信部を介して前記不揮発性記憶装置から前記候補アドレスを取得し、取得された前記候補アドレスが付加された書き込み用データを生成する生成部と
を具備するホスト装置。
(18)不揮発性記憶装置と、
前記不揮発性記憶装置にアクセス可能なホスト装置と
を具備し、
前記不揮発性記憶装置は、
各々が、データを個別に書き込み可能なページ部を複数有し前記複数のページ部に書き込まれたデータを一括して消去可能な複数のブロック部を有する記憶部と、
前記記憶部に含まれる前記ページ部の書き込み状況に関する情報に基づいて、前記ページ部に書き込まれるデータの論理アドレスの候補となる候補アドレスを算出する算出部と
を有し、
前記ホスト装置は、
前記不揮発性記憶装置の前記記憶部にアクセスするためのデータ通信を行う通信部と、
前記通信部を介して前記不揮発性記憶装置から前記候補アドレスを取得し、取得された前記候補アドレスが付加された書き込み用データを生成する生成部と
を有する
データ記憶システム。
(1)各々が、データを個別に書き込み可能なページ部を複数有し前記複数のページ部に書き込まれたデータを一括して消去可能な複数のブロック部を有する記憶部と、
前記記憶部に含まれる前記ページ部の書き込み状況に関する情報に基づいて、前記ページ部に書き込まれるデータの論理アドレスの候補となる候補アドレスを算出する算出部と
を具備する不揮発性記憶装置。
(2)(1)に記載の不揮発性記憶装置であって、
前記算出部は、前記候補アドレスの範囲を算出する
不揮発性記憶装置。
(3)(2)に記載の不揮発性記憶装置であって、
前記算出部は、複数の候補アドレスの範囲を算出する
不揮発性記憶装置。
(4)(2)又は(3)に記載の不揮発性記憶装置であって、
前記算出部は、前記候補アドレスの範囲の先頭アドレスを算出する
不揮発性記憶装置。
(5)(2)から(4)のうちいずれか1つに記載の不揮発性記憶装置であって、
前記算出部は、前記候補アドレスの範囲で書き込み可能なデータサイズを算出する
不揮発性記憶装置。
(6)(1)から(5)のうちいずれか1つに記載の不揮発性記憶装置であって、
前記書き込み状況に関する情報は、前記ページ部に書き込まれたデータの論理アドレスを前記ページ部の物理アドレスに変換する変換テーブルの情報を含む
不揮発性記憶装置。
(7)(6)に記載の不揮発性記憶装置であって、
前記変換テーブルは、前記物理アドレスが指定されていない論理アドレスである第1のアドレスを含み、
前記算出部は、前記第1のアドレスを前記候補アドレスとして算出する
不揮発性記憶装置。
(8)(7)に記載の不揮発性記憶装置であって、
前記算出部は、連続する前記第1のアドレスを前記候補アドレスとして算出する
不揮発性記憶装置。
(9)(6)から(8)のうちいずれか1つに記載の不揮発性記憶装置であって、
前記物理アドレスは、前記ブロック部と前記ページ部とを指定するアドレスであり、
前記算出部は、同一の前記ブロック部を指定する前記物理アドレスに変換される前記論理アドレスである第2のアドレスを前記候補アドレスとして算出する
不揮発性記憶装置。
(10)(9)に記載の不揮発性記憶装置であって、
前記算出部は、連続する前記第2のアドレスを前記候補アドレスとして算出する
不揮発性記憶装置。
(11)(1)から(10)のうちいずれか1つに記載の不揮発性記憶装置であって、
前記算出部は、前記候補アドレスが付加されたデータを書き込む場合の書き込み速度に関する指標を算出する
不揮発性記憶装置。
(12)(11)に記載の不揮発性記憶装置であって、
前記算出部は、前記候補アドレスに対応する前記物理アドレスの有無に応じて、前記書き込み速度に関する指標を算出する
不揮発性記憶装置。
(13)(1)から(12)のうちいずれか1つに記載の不揮発性記憶装置であって、さらに、
前記記憶部にアクセスするホスト装置とのデータ通信を行う通信部を具備し、
前記算出部は、前記通信部を介して前記ホスト装置に前記候補アドレスを通知する
不揮発性記憶装置。
(14)(13)に記載の不揮発性記憶装置であって、
前記通信部は、前記ホスト装置から書き込み用データのデータサイズを受信し、
前記算出部は、前記受信されたデータサイズに基づいて、前記候補アドレスの範囲を算出する
不揮発性記憶装置。
(15)(14)に記載の不揮発性記憶装置であって、
前記算出部は、前記候補アドレスの範囲に関する通知情報を生成し、生成された前記通知情報を前記ホスト装置に通知する
不揮発性記憶装置。
(16)(15)に記載の不揮発性記憶装置であって、
前記通知情報は、前記候補アドレスの範囲の先頭アドレス、前記候補アドレスの範囲で書き込み可能なデータサイズ、及び前記候補アドレスが付加されたデータを書き込む場合の書き込み速度に関する指標の少なくとも1つを含む
不揮発性記憶装置。
(17)不揮発性記憶装置にアクセス可能なホスト装置であって、
前記不揮発性記憶装置は、
各々が、データを個別に書き込み可能なページ部を複数有し前記複数のページ部に書き込まれたデータを一括して消去可能な複数のブロック部を有する記憶部と、
前記記憶部に含まれる前記ページ部の書き込み状況に関する情報に基づいて、前記ページ部に書き込まれるデータの論理アドレスの候補となる候補アドレスを算出する算出部と
を有し、
前記不揮発性記憶装置の前記記憶部にアクセスするためのデータ通信を行う通信部と、
前記通信部を介して前記不揮発性記憶装置から前記候補アドレスを取得し、取得された前記候補アドレスが付加された書き込み用データを生成する生成部と
を具備するホスト装置。
(18)不揮発性記憶装置と、
前記不揮発性記憶装置にアクセス可能なホスト装置と
を具備し、
前記不揮発性記憶装置は、
各々が、データを個別に書き込み可能なページ部を複数有し前記複数のページ部に書き込まれたデータを一括して消去可能な複数のブロック部を有する記憶部と、
前記記憶部に含まれる前記ページ部の書き込み状況に関する情報に基づいて、前記ページ部に書き込まれるデータの論理アドレスの候補となる候補アドレスを算出する算出部と
を有し、
前記ホスト装置は、
前記不揮発性記憶装置の前記記憶部にアクセスするためのデータ通信を行う通信部と、
前記通信部を介して前記不揮発性記憶装置から前記候補アドレスを取得し、取得された前記候補アドレスが付加された書き込み用データを生成する生成部と
を有する
データ記憶システム。
10…半導体記憶装置
11…不揮発性半導体メモリ
15…テーブル記憶部
17…アドレス算出部
18…ホストインタフェース
21…ページ
22、22a~d…ブロック
30…ホスト装置
34…データ生成部
35…外部インタフェース
40…論物変換テーブル
41…論理アドレス
42…物理アドレス
43…空白アドレス
44…候補アドレス
45…同一ブロック指定アドレス
50…候補リスト
100…データ記憶システム
11…不揮発性半導体メモリ
15…テーブル記憶部
17…アドレス算出部
18…ホストインタフェース
21…ページ
22、22a~d…ブロック
30…ホスト装置
34…データ生成部
35…外部インタフェース
40…論物変換テーブル
41…論理アドレス
42…物理アドレス
43…空白アドレス
44…候補アドレス
45…同一ブロック指定アドレス
50…候補リスト
100…データ記憶システム
Claims (18)
- 各々が、データを個別に書き込み可能なページ部を複数有し前記複数のページ部に書き込まれたデータを一括して消去可能な複数のブロック部を有する記憶部と、
前記記憶部に含まれる前記ページ部の書き込み状況に関する情報に基づいて、前記ページ部に書き込まれるデータの論理アドレスの候補となる候補アドレスを算出する算出部と
を具備する不揮発性記憶装置。 - 請求項1に記載の不揮発性記憶装置であって、
前記算出部は、前記候補アドレスの範囲を算出する
不揮発性記憶装置。 - 請求項2に記載の不揮発性記憶装置であって、
前記算出部は、複数の候補アドレスの範囲を算出する
不揮発性記憶装置。 - 請求項2に記載の不揮発性記憶装置であって、
前記算出部は、前記候補アドレスの範囲の先頭アドレスを算出する
不揮発性記憶装置。 - 請求項2に記載の不揮発性記憶装置であって、
前記算出部は、前記候補アドレスの範囲で書き込み可能なデータサイズを算出する
不揮発性記憶装置。 - 請求項1に記載の不揮発性記憶装置であって、
前記書き込み状況に関する情報は、前記ページ部に書き込まれたデータの論理アドレスを前記ページ部の物理アドレスに変換する変換テーブルの情報を含む
不揮発性記憶装置。 - 請求項6に記載の不揮発性記憶装置であって、
前記変換テーブルは、前記物理アドレスが指定されていない論理アドレスである第1のアドレスを含み、
前記算出部は、前記第1のアドレスを前記候補アドレスとして算出する
不揮発性記憶装置。 - 請求項7に記載の不揮発性記憶装置であって、
前記算出部は、連続する前記第1のアドレスを前記候補アドレスとして算出する
不揮発性記憶装置。 - 請求項6に記載の不揮発性記憶装置であって、
前記物理アドレスは、前記ブロック部と前記ページ部とを指定するアドレスであり、
前記算出部は、同一の前記ブロック部を指定する前記物理アドレスに変換される前記論理アドレスである第2のアドレスを前記候補アドレスとして算出する
不揮発性記憶装置。 - 請求項9に記載の不揮発性記憶装置であって、
前記算出部は、連続する前記第2のアドレスを前記候補アドレスとして算出する
不揮発性記憶装置。 - 請求項1に記載の不揮発性記憶装置であって、
前記算出部は、前記候補アドレスが付加されたデータを書き込む場合の書き込み速度に関する指標を算出する
不揮発性記憶装置。 - 請求項11に記載の不揮発性記憶装置であって、
前記算出部は、前記候補アドレスに対応する前記物理アドレスの有無に応じて、前記書き込み速度に関する指標を算出する
不揮発性記憶装置。 - 請求項1に記載の不揮発性記憶装置であって、さらに、
前記記憶部にアクセスするホスト装置とのデータ通信を行う通信部を具備し、
前記算出部は、前記通信部を介して前記ホスト装置に前記候補アドレスを通知する
不揮発性記憶装置。 - 請求項1に記載の不揮発性記憶装置であって、
前記通信部は、前記ホスト装置から書き込み用データのデータサイズを受信し、
前記算出部は、前記受信されたデータサイズに基づいて、前記候補アドレスの範囲を算出する
不揮発性記憶装置。 - 請求項14に記載の不揮発性記憶装置であって、
前記算出部は、前記候補アドレスの範囲に関する通知情報を生成し、生成された前記通知情報を前記ホスト装置に通知する
不揮発性記憶装置。 - 請求項15に記載の不揮発性記憶装置であって、
前記通知情報は、前記候補アドレスの範囲の先頭アドレス、前記候補アドレスの範囲で書き込み可能なデータサイズ、及び前記候補アドレスが付加されたデータを書き込む場合の書き込み速度に関する指標の少なくとも1つを含む
不揮発性記憶装置。 - 不揮発性記憶装置にアクセス可能なホスト装置であって、
前記不揮発性記憶装置は、
各々が、データを個別に書き込み可能なページ部を複数有し前記複数のページ部に書き込まれたデータを一括して消去可能な複数のブロック部を有する記憶部と、
前記記憶部に含まれる前記ページ部の書き込み状況に関する情報に基づいて、前記ページ部に書き込まれるデータの論理アドレスの候補となる候補アドレスを算出する算出部と
を有し、
前記不揮発性記憶装置の前記記憶部にアクセスするためのデータ通信を行う通信部と、
前記通信部を介して前記不揮発性記憶装置から前記候補アドレスを取得し、取得された前記候補アドレスが付加された書き込み用データを生成する生成部と
を具備するホスト装置。 - 不揮発性記憶装置と、
前記不揮発性記憶装置にアクセス可能なホスト装置と
を具備し、
前記不揮発性記憶装置は、
各々が、データを個別に書き込み可能なページ部を複数有し前記複数のページ部に書き込まれたデータを一括して消去可能な複数のブロック部を有する記憶部と、
前記記憶部に含まれる前記ページ部の書き込み状況に関する情報に基づいて、前記ページ部に書き込まれるデータの論理アドレスの候補となる候補アドレスを算出する算出部と
を有し、
前記ホスト装置は、
前記不揮発性記憶装置の前記記憶部にアクセスするためのデータ通信を行う通信部と、
前記通信部を介して前記不揮発性記憶装置から前記候補アドレスを取得し、取得された前記候補アドレスが付加された書き込み用データを生成する生成部と
を有する
データ記憶システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/250,613 US11615019B2 (en) | 2018-08-21 | 2019-08-07 | Non-volatile storage device, host device, and data storage system to increase data write speed |
CN201980053898.XA CN112567327A (zh) | 2018-08-21 | 2019-08-07 | 非易失性存储装置、主机装置和数据存储*** |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018154547 | 2018-08-21 | ||
JP2018-154547 | 2018-08-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020039927A1 true WO2020039927A1 (ja) | 2020-02-27 |
Family
ID=69592893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/031077 WO2020039927A1 (ja) | 2018-08-21 | 2019-08-07 | 不揮発性記憶装置、ホスト装置、及びデータ記憶システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US11615019B2 (ja) |
CN (1) | CN112567327A (ja) |
WO (1) | WO2020039927A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7417455B2 (ja) * | 2020-03-27 | 2024-01-18 | キヤノン株式会社 | 電子機器及びその制御方法、プログラム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007066326A (ja) * | 2006-10-30 | 2007-03-15 | Sony Corp | 記憶装置、データ処理装置並びにデータ処理方法 |
JP2010026933A (ja) * | 2008-07-23 | 2010-02-04 | Toshiba Corp | メモリシステム、ホスト装置 |
JP2010237907A (ja) * | 2009-03-31 | 2010-10-21 | Nec Corp | ストレージ装置および記録方法 |
US20170315730A1 (en) * | 2015-04-24 | 2017-11-02 | Kabushiki Kaisha Toshiba | Storage device that secures a block for a stream or namespace and system having the storage device |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6076137A (en) | 1997-12-11 | 2000-06-13 | Lexar Media, Inc. | Method and apparatus for storing location identification information within non-volatile memory devices |
USRE42648E1 (en) * | 2002-08-29 | 2011-08-23 | Panasonic Corporation | Semiconductor memory apparatus and method for writing data into the flash memory device |
EP1895418B1 (en) * | 2005-12-09 | 2015-04-01 | Panasonic Corporation | Nonvolatile memory device, method of writing data, and method of reading out data |
JP2008251063A (ja) * | 2007-03-29 | 2008-10-16 | Fujifilm Corp | 記憶装置 |
US20110055297A1 (en) * | 2009-03-13 | 2011-03-03 | Takuji Maeda | Access module, information recording module, controller, and information recording system |
KR101242195B1 (ko) * | 2011-02-25 | 2013-03-11 | 서울대학교산학협력단 | 페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법 |
JP2012221251A (ja) * | 2011-04-08 | 2012-11-12 | Toshiba Corp | メモリシステムの制御方法、情報処理装置、及びプログラム |
JP5740296B2 (ja) * | 2011-12-16 | 2015-06-24 | 株式会社東芝 | 半導体記憶装置、半導体記憶装置の制御方法、制御プログラム |
JP2013142947A (ja) * | 2012-01-10 | 2013-07-22 | Sony Corp | 記憶制御装置、記憶装置および記憶制御装置の制御方法 |
JPWO2015076354A1 (ja) * | 2013-11-22 | 2017-03-16 | 日本電気株式会社 | ストレージ装置と方法並びにプログラム |
US10649661B2 (en) * | 2017-06-26 | 2020-05-12 | Western Digital Technologies, Inc. | Dynamically resizing logical storage blocks |
CN107908571B (zh) * | 2017-10-31 | 2021-04-20 | 成都华为技术有限公司 | 一种数据写入方法、闪存装置及存储设备 |
CN108073363B (zh) * | 2017-12-28 | 2021-10-01 | 深圳市得一微电子有限责任公司 | 数据存储方法、存储设备及计算机可读存储介质 |
-
2019
- 2019-08-07 CN CN201980053898.XA patent/CN112567327A/zh active Pending
- 2019-08-07 US US17/250,613 patent/US11615019B2/en active Active
- 2019-08-07 WO PCT/JP2019/031077 patent/WO2020039927A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007066326A (ja) * | 2006-10-30 | 2007-03-15 | Sony Corp | 記憶装置、データ処理装置並びにデータ処理方法 |
JP2010026933A (ja) * | 2008-07-23 | 2010-02-04 | Toshiba Corp | メモリシステム、ホスト装置 |
JP2010237907A (ja) * | 2009-03-31 | 2010-10-21 | Nec Corp | ストレージ装置および記録方法 |
US20170315730A1 (en) * | 2015-04-24 | 2017-11-02 | Kabushiki Kaisha Toshiba | Storage device that secures a block for a stream or namespace and system having the storage device |
Also Published As
Publication number | Publication date |
---|---|
US11615019B2 (en) | 2023-03-28 |
US20210326251A1 (en) | 2021-10-21 |
CN112567327A (zh) | 2021-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10339046B1 (en) | Data moving method and storage controller | |
US9037782B2 (en) | Method of programming memory cells and reading data, memory controller and memory storage apparatus using the same | |
US8510502B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
TWI592800B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
US9582416B2 (en) | Data erasing method, memory control circuit unit and memory storage apparatus | |
US20140372685A1 (en) | Memory system, data storage device, user device and data management method thereof | |
TWI592865B (zh) | 資料讀取方法、資料寫入方法及使用所述方法的儲存控制器 | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US8825946B2 (en) | Memory system and data writing method | |
US9146691B2 (en) | Method for managing commands in command queue, memory control circuit unit and memory storage apparatus | |
US9021218B2 (en) | Data writing method for writing updated data into rewritable non-volatile memory module, and memory controller, and memory storage apparatus using the same | |
US9058256B2 (en) | Data writing method, memory controller and memory storage apparatus | |
TWI423026B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
JP2008192154A (ja) | メモリマッピング方法およびメモリマッピングシステム | |
CN107590080B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
TW201802680A (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
US9389998B2 (en) | Memory formatting method, memory controller, and memory storage apparatus | |
US11210226B2 (en) | Data storage device and method for first processing core to determine that second processing core has completed loading portion of logical-to-physical mapping table thereof | |
US10235284B2 (en) | Memory system | |
JP4242245B2 (ja) | フラッシュrom制御装置 | |
US11334273B1 (en) | Valid data merging method, memory storage device and memory control circuit unit | |
TWI651650B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
CN113885808A (zh) | 映射信息记录方法以及存储器控制电路单元与存储装置 | |
JP2004326165A (ja) | メモリ制御装置およびメモリ制御方法 | |
US8589620B2 (en) | Data writing method, memory controller, and memory storage apparatus |
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: 19851794 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19851794 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |