US9798470B2 - Memory system for storing and processing translation information - Google Patents
Memory system for storing and processing translation information Download PDFInfo
- Publication number
- US9798470B2 US9798470B2 US14/850,387 US201514850387A US9798470B2 US 9798470 B2 US9798470 B2 US 9798470B2 US 201514850387 A US201514850387 A US 201514850387A US 9798470 B2 US9798470 B2 US 9798470B2
- Authority
- US
- United States
- Prior art keywords
- memory
- information
- translation information
- translation
- lookup
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Definitions
- Embodiments described herein relate generally to a memory system.
- an SSD Solid State Drive
- a NAND flash memory hereinafter, referred to as a “NAND memory”.
- NAND memory a unit of reading and writing is smaller than a unit of erasing. Before the writing, the erasing needs to be operated.
- the SSD associates a logical address designated as a location where a host performs a read operation with a physical address indicating a physical location of the NAND memory.
- the SSD stores therein a relation between the logical address and the physical address as translation information.
- the SSD loads the translation information from the NAND memory to a RAM, and performs updating or referring to the translation information on the RAM.
- FIG. 1 is a diagram illustrating an exemplary configuration of a memory system of an embodiment
- FIG. 2 is a diagram illustrating an exemplary configuration of each memory chip
- FIG. 3 is a diagram illustrating an exemplary configuration of each physical block
- FIG. 4 is a diagram illustrating an example of a command sequence for a multi-plane read operation
- FIG. 5 is a diagram for describing a scheme of assigning a physical address
- FIG. 6 is a diagram for describing various types of information stored in a NAND memory and a DRAM
- FIG. 7 is a diagram for describing various types of information stored in the NAND memory and the DRAM;
- FIG. 8 is a diagram illustrating an exemplary data structure of a first table and a second table
- FIG. 9 is a diagram illustrating an exemplary data structure of a reverse-lookup first table
- FIG. 10 is a diagram illustrating an exemplary data structure of a second table cache
- FIG. 11 is a diagram illustrating an exemplary data structure of a cache management table
- FIG. 12 is a flowchart for describing a non-volatilization operation of a dirty record
- FIG. 13 is a flowchart for describing background restoration of a first embodiment
- FIG. 14 is a flowchart for describing a process of S 209 in more detail
- FIG. 15 is a flowchart for describing on-demand restoration
- FIG. 16 is a flowchart for describing background restoration of a second embodiment
- FIG. 17 is a flowchart for describing a process of rebuilding the reverse-lookup first table.
- FIG. 18 is a diagram illustrating an example of an installed memory system.
- a memory system includes a non-volatile first memory, a second memory, and a memory controller.
- the memory controller is configured to store a plurality of translation information in the first memory and perform a first process in a case of starting.
- the translation information indicates a relation between a first address designated from the outside and a second address indicating a location in the first memory.
- the first process is a process in which the memory controller acquires the plurality of translation information from the first memory in an order of a storage location of the translation information in the first memory, and stores the plurality of acquired translation information in the second memory.
- FIG. 1 is a diagram illustrating an exemplary configuration of the memory system of an embodiment.
- a memory system 1 is connected to a host 2 via a communication channel 3 .
- the host 2 for example, is a computer.
- the computer includes a personal computer, a portable computer, a portable communication device, or the like.
- the memory system 1 serves as an external storage device of the host 2 . Any standard can be employed as the interface standard of the communication channel 3 .
- the host 2 can issue an access request (a write request and a read request) to the memory system 1 .
- the access request includes a logical address which designates a location of an access destination. Any external apparatus instead of the host 2 may request the access to the memory system 1 using the logical address.
- the logical address is denoted as a host address.
- the host address is assigned to every predetermined unit area. For example, the host address is assigned in a unit of sector.
- the memory system 1 includes a memory controller 10 , a NAND flash memory (a NAND memory) 20 used as a storage, and a DRAM (Dynamic Random Access Memory) 30 .
- a NAND flash memory a NAND memory
- DRAM Dynamic Random Access Memory
- the type of memory used as the storage is not limited only to the NAND flash memory.
- NOR flash memory a NOR flash memory
- ReRAM Resistance Random Access Memory
- MRAM Magnetic Random Access Memory
- the DRAM 30 may be built in the memory controller 10 .
- the memory controller 10 receives the access request from the host 2 . Then, the memory controller 10 performs data transmission between the host 2 and the NAND memory 20 in response to the received access request.
- the NAND memory 20 is composed of one or more memory chips (CHIP) 21 .
- the NAND memory 20 includes four memory chips 21 .
- Each of four memory chips 21 is connected to the memory controller through one of four channels.
- each of four memory chips 21 is connected to a channel different from each other.
- Each channel is composed of a wiring group which includes an I/O signal line and a control signal line.
- the I/O signal line is a signal line through which data, an address, and a command are transmitted and received. Further, a bit width of the I/O signal line is not limited to one.
- the control signal line is a signal line for transmitting and receiving a WE (write enable) signal, a RE (read enable) signal, a CLE (command latch enable) signal, an ALE (address latch enable) signal, a WP (write protect) signal, a Ry/By (ready/busy) signal, and the like.
- the memory controller 10 can individually control the respective channels.
- FIG. 2 is a diagram illustrating an exemplary configuration of each memory chip 21 .
- Each memory chip 21 includes a memory cell array 23 .
- the memory cell array 23 is composed of a plurality of memory cells which are located in a matrix shape.
- the memory cell array 23 is divided into a plurality of areas (planes) 24 .
- the memory cell array 23 is divided into four planes 24 .
- Each plane 24 includes a plurality of physical blocks 25 .
- Each plane 24 includes peripheral circuits (for example, a row decoder, a column decoder, and the like) which are independently of each other, so that each memory chip 21 can perform an erase/program/read operation on a plurality of planes 24 at the same time.
- Four planes 24 in each memory chip 21 are specified using plane numbers (Plane #0 to Plane #3).
- the physical block 25 is a unit of erasing in each plane 24 .
- FIG. 3 is a diagram illustrating an exemplary configuration of each physical block 25 .
- Each physical block 25 is configured to include a plurality of physical pages 26 .
- the physical pages 26 are distinguished from each other by giving page numbers (Page #0 and so on) thereto in an ascending order from the head of the physical block 25 .
- the physical page 26 is simply denoted as a page 26 .
- each memory chip 21 four physical blocks 25 each belonging to different planes 24 are simultaneously accessed.
- the simultaneously accessed four physical blocks 25 are denoted as a block group.
- Each memory chip 21 includes a plurality of block groups 27 .
- Four physical blocks 25 included in the same block group 27 may be erased in parallel at the same timing.
- the program or read operation may be performed on four pages 26 each belonging to four physical blocks 25 included in the same block group 27 in parallel at the same timing.
- the page numbers of four pages 26 on which the program or read operation is performed at the same timing may be the same number between four physical blocks 25 included in the same block group 27 or may be different.
- the program or read operation is performed on four pages 26 of the same page number in four physical blocks 25 included in the same block group 27 at the same timing.
- a combination of four physical blocks 25 included in each block group 27 is statically or dynamically set.
- hatched four physical blocks 25 are included in one block group 27 for example.
- each block group 27 may be composed of a plurality of physical blocks 25 which can be accessed in parallel.
- the memory controller 10 can access to four memory chips 21 in parallel.
- each block group 27 may be composed of 16 physical blocks 25 different in at least one of the channel where the provided memory chip 21 is connected and the plane number where the physical blocks belong.
- each block group 27 may be composed of the plurality of physical blocks 25 different in at least one of the channel where the provided memory chip 21 is connected, a bank number of the provided memory chip 21 , and the plane number where the physical blocks belong.
- a method of performing the read operation in parallel on a plurality of pages 26 of the same block group 27 will be denoted as a “multi-plane read operation”.
- Each memory chip 21 includes four page buffers 22 each corresponding to each plane 24 .
- Each page buffer 22 has the same size as that of at least one page 26 .
- Each page buffer 22 is composed of a register or a small-sized memory.
- Each page buffer 22 for example, is composed of an SRAM (Static Random Access Memory).
- SRAM Static Random Access Memory
- Each page buffer 22 serves as a buffer for the transmission between the memory controller 10 and each plane 24 .
- data having a size of one page 26 may be denoted as page data.
- the memory controller 10 can command each memory chip 21 to perform the multi-plane read operation.
- FIG. 4 is a diagram illustrating an example of a command sequence for the multi-plane read operation.
- the memory controller 10 first continuously transmits address-in commands for the respective planes 24 to the target memory chip 21 .
- the address-in command includes a physical address which specifies the page 26 of the read source.
- the physical address is information which statically and uniquely indicates a location in the storage area of the NAND memory 20 .
- any format can be employed as long as the location (memory cell) in the NAND memory 20 is statically and uniquely indicated at least. “Statically” means “not vary with time”.
- the memory controller 10 transmits a read command to the target memory chip 21 .
- the target memory chip 21 reads the page data from the page 26 indicated by the designated physical address of each plane 24 out to the corresponding page buffer 22 .
- the memory controller 10 detects whether the page data is read out to all the page buffers 22 , for example, by monitoring the Ry/By signal.
- the Ry/By signal is a signal indicating a By state in a period when the target memory chip 21 is performing an internal process including access to the memory cell array 23 , and indicating a Ry state in a period when the target memory chip 21 is not performing the internal process.
- the memory controller 10 transmits an output command to the target memory chip 21 .
- the output command for example, includes the physical address indicating a read start location in four page data read out to four page buffers 22 .
- the target memory chip 21 outputs data having a predetermined size or a designated size from the location designated by the output command in any one of the page buffers 22 to the memory controller 10 in response to receiving the output command.
- the predetermined size for example, is equal to a cluster size.
- the memory controller 10 may designate the size of the read target data by the output command.
- the memory controller 10 may control the size of the data output to the target memory chip 21 by controlling the number of times of toggling in the RE signal.
- the memory controller 10 can transmit the output command plural times.
- the memory controller 10 for example, transmits the output command in a unit of cluster plural times in order to output four page data in a unit of cluster.
- the read operation of the page data from the memory cell array 23 to one page buffer 22 can be simultaneously performed on the plurality of planes 24 . Therefore, the transfer rate of the data from the NAND memory 20 to the memory controller 10 is improved compared to the case where the read operation is sequentially performed on each plane 24 .
- FIG. 5 is a diagram for describing a scheme of assigning the physical address.
- the respective physical addresses are assigned to the respective pages 26 such that a plurality of consecutive physical addresses are distributed into the plurality of planes 24 in the same memory chip 21 .
- the respective physical addresses are assigned to the respective pages 26 such that the respective physical addresses are consecutive in an ascending order in a sequence depicted by arrows of FIG. 5 .
- the physical address assigned to the head on Page #i of Plane #1 follows the physical address assigned to the end on Page #i of Plane #0.
- the physical address assigned to the head on Page #i of Plane #2 follows the physical address assigned to the end on Page #i of Plane #1.
- the physical address assigned to the head on Page #3 of Plane #1 follows the physical address assigned to the end on Page #2 of Plane #0. Since each physical address is assigned to each page 26 as described above, the memory controller 10 can collectively read the respective page data from the plurality of pages 26 out to the respective page buffers 22 through one multi-plane read operation.
- the head on Page #i of Plane #0 may be assigned with a physical address followed by the physical address assigned to the end on Page #i of Plane #3 provided in another memory chip 21 or another block group 27 .
- the head on Page #i of Plane #0 may be assigned with a physical address followed by the physical address assigned to the end on Page #i ⁇ 1 of Plane #3 in the same block group 27 .
- the DRAM 30 serves as a memory in which various types of information are temporarily stored by a CPU 11 .
- Various types of information stored in the DRAM 30 will be described in detail below. Further, any type of memory operated at a higher speed than the NAND memory 20 can be applied instead of the DRAM 30 . Any type of volatile memory can be applied instead of the DRAM 30 .
- various types of information are stored in the DRAM 30 , and appropriately referred or updated on the DRAM 30 .
- the DRAM 30 is a volatile memory, various types of information are not available in a power-off state. Therefore, a part of information which is required again after the power-on among various types of information stored in the DRAM 30 is saved in the NAND memory 20 in a power-off sequence. The information saved in the NAND memory 20 is restored to the DRAM 30 in a power-on sequence. In addition, another part of information among the information stored in the DRAM 30 may be rebuilt based on any other information in the power-on sequence.
- a first table 301 and a reverse-lookup first table 301 both are assumed to be saved in the power-off sequence. Both lookup and reverse-lookup mean concept of direction of acquiring an address.
- lookup means direction from a host address to a physical address.
- Reverse-lookup means direction from a physical address to a host address.
- restoration simply moving the entire data structure at one time or little by little is denoted as restoration.
- rebuilding includes the restoration and the rebuilding. In the concept of the loading, all the operations of generating data based on other information are included.
- FIGS. 6 and 7 are diagrams for describing various types of information stored in the NAND memory 20 and the DRAM 30 .
- FIG. 6 illustrates various types of information stored in various types of memories after the power-off.
- FIG. 7 illustrates various types of information stored in various types of memories after the power-on.
- the memory system 1 in the power-off state, holds a first table 201 , a reverse-lookup first table 202 , and a second table 203 in the NAND memory 20 . In the power-off state, the memory system 1 holds no information in the DRAM 30 .
- the memory system 1 in a power-on state, holds the first table 301 , the reverse-lookup first table 302 , a cache management table 305 , and the second table cache 306 in the DRAM 30 .
- the memory system 1 holds a read pointer 303 and a tail pointer 304 in the DRAM 30 .
- the memory controller 10 performs an erase operation on the NAND memory 20 in a unit of the block group 27 . Therefore, in a case where first data is stored in the NAND memory 20 and in this state the host 2 designates the same host address as the first data to send second data, the memory controller 10 writes the second data in the block group 27 having an empty page 26 and manages the first data as invalid data.
- the “empty” state means a state in which programming is not operated after erasing is operated.
- the expression “data is valid” means that the data is up to date.
- the updated state means a state of the data finally written by the host 2 among the plurality of data.
- the invalid data means data other than the data finally written by the host 2 among the plurality of data.
- the memory controller 10 stores, as translation information, a relation between the host address and the physical address indicating a location where the data from the host 2 is stored.
- the physical address indicating a location where the data from the host 2 is stored is denoted as a data address.
- a relation between the host address and the data address can be recorded in any type of format as long as the data address is detectable at least from the host address.
- the relation between the host address and the data address may be not necessary for containing both the host address and the data address.
- any one of the host address and the data address in the relation may be associated with a recording location of the relation so as to be derivable from the recording location of the relation.
- any one of the host address and the data address in the relation for example, may be described as another data (such as a pointer) associated through the storage location information.
- the memory controller 10 manages the translation information in two stages.
- the first tables 201 and 301 correspond to a first stage among the two stages.
- the second table 203 corresponds to a second stage among the two stages.
- the second table cache 306 is a cache of the second table 203 .
- the reverse-lookup first tables 202 and 302 are tables used for reversely looking up the content managed by the first tables 201 and 301 .
- the memory controller 10 In the power-on state, the memory controller 10 refers or updates the first table 301 and the reverse-lookup first table 302 . In the power-off sequence, the memory controller 10 saves the first table 301 from the DRAM 30 to the NAND memory 20 as the first table 201 , and saves the reverse-lookup first table 302 from the DRAM 30 to the NAND memory 20 as the reverse-lookup first table 202 . In addition, in the power-on sequence, the memory controller 10 restores the first table 201 from the NAND memory 20 to the DRAM 30 as the first table 301 , and restores the reverse-lookup first table 202 from the NAND memory 20 to the DRAM 30 as the reverse-lookup first table 302 .
- the memory controller 10 restores the second table cache 306 based on the reverse-lookup first table 302 and the second table 203 .
- a process of restoring the second table cache 306 as a part of the power-on sequence is denoted as background restoration.
- the read pointer 303 and the tail pointer 304 are pointers used in the background restoration of the second table cache 306 . The details of the read pointer 303 and the tail pointer 304 will be described below.
- there is on-demand restoration which is a process of restoring the second table cache 306 in response to a translation request issued during the operation besides the background restoration.
- the translation request is internally issued by the memory controller 10 in response to the access request (for example, the read request and the write request) from the host 2 .
- the translation request is also internally issued by the memory controller 10 as a part of a garbage collection.
- the garbage collection means a process in which the valid data from one block (the physical block 25 or the block group 27 ) is moved (copied) to another block, and then regards all the data stored in the block of a move source as the invalid data.
- the memory controller 10 performs the erase operation on the block of the move source after the garbage collection, and starts the write operation of the data again on the block after the data is erased.
- the translation request is issued at the time of the determination on whether the data stored in the block of the move source is valid.
- the memory controller 10 stores the designated host address in association with the writing target data when the data from the host 2 is written in the NAND memory 20 .
- the memory controller 10 issues the translation request for translating the host address corresponding to the determination target data into the data address. Then, the memory controller 10 refers a write location of the determination target data and the data address acquired in response to the translation request. In a case where the location and the data address are matched, the memory controller 10 determines that the determination target data is valid. In a case where the location and the data address are not matched, the memory controller 10 determines that the determination target data is invalid.
- first table 301 will be described as a representative of the first tables 201 and 301 .
- reverse-lookup first table 302 will be described as a representative of the reverse-lookup first tables 202 and 302 .
- FIG. 8 is a diagram illustrating an exemplary data structure of the first table 301 and the second table 203 .
- the first table 301 is recorded with a record (a first record 311 ) by a first unit.
- the second table 203 is recorded with a record group (a second record group 213 ) by the first unit.
- the first unit is denoted as a region.
- the region is an area having a size of the first unit on a host address space.
- Each second record group 213 includes a plurality of second records 223 .
- Each second record 223 is recorded with the data address by a second unit.
- the size of the second unit is smaller than that of the first unit.
- a plurality of second records 223 included in each second record group 213 each correspond to a plurality of clusters included in the corresponding region.
- the plurality of second records 223 are arranged in an order of the host address. That is, the host address of the n-th cluster from the head of Region #m is associated with the data address recorded in the n-th second record 223 from the head in the second record group 213 which is associated with Region #m in the first table 301 .
- FIG. 9 is a diagram illustrating an exemplary data structure of the reverse-lookup first table 302 .
- Each record (a reverse-lookup first record 312 ) included in the reverse-lookup first table 302 includes a pointer which points the second record group 213 as an index, and includes the host address in a unit of region as a data item. Therefore, an order of the index of each reverse-lookup first record 312 is matched with an order of the physical address indicating the storage location of each second record group 213 pointed by each reverse-lookup first record 312 .
- FIG. 10 is a diagram illustrating an exemplary data structure of the second table cache 306 .
- the second record group 213 is cached.
- the second record group cached in the second table cache 306 is denoted as the second record group 316 .
- each second record included in a second record group 316 is denoted as the second record 326 .
- the second record group 316 is cached in an order of the host address. That is, the second table cache 306 is retrieved using the host address as the index. Further, the recording of the second record group 316 in the second table cache 306 may be simply denoted as the caching of the region.
- the memory controller 10 updates the relation between the host address and the data address on the second table cache 306 . For example, upon writing data to the NAND memory 20 in response to the write request or upon writing data to the NAND memory 20 in the garbage collection, the memory controller 10 updates the relation. By the updating, the contents of the second record group 316 in the second table cache 306 and the second record group 213 of a cache source (corresponding to the same region number) in the NAND memory 20 becomes different from each other. A state where the contents of the second record group 316 in the second table cache 306 and the second record group 213 of the cache source in the NAND memory 20 are not matched with each other is denoted as “dirty”.
- the memory controller 10 manages the second record group 316 of which the content is not matched with the second record group 213 of the cache source as a dirty record.
- the memory controller 10 adds the dirty record to the end of the second table 203 as a new second record group 213 at a predetermined timing.
- the memory controller 10 performs the updating of the first table 301 and the adding of the new reverse-lookup first record 312 to the reverse-lookup first table 302 .
- FIG. 11 is a diagram illustrating an exemplary data structure of the cache management table 305 .
- the cache management table 305 is information used to manage whether the second record group 213 is cached in the second table cache 306 as the second record group 316 for each region.
- the cache management table 305 is retrieved using the region number as an index. According to the example of FIG. 11 , “Cached” indicating that the second record group 213 is cached or “Not Cached” indicating that the second record group 213 is not cached are recorded in the cache management table 305 for each region. Further, in a case where the second record group 213 is cached, the cache management table 305 may include an address indicating a location on the DRAM 30 at which the second record group 213 is cached.
- the memory controller 10 includes a CPU (Central Processing Unit) 11 , a host interface (host I/F) 12 , a DRAM controller (DRAMC) 13 , a NAND controller (NANDC) 14 , and an SRAM (Static Random Access Memory) 15 .
- the CPU 11 , the host I/F 12 , the DRAMC 13 , the NANDC 14 , and the SRAM 15 are connected to each other through a bus.
- the host I/F 12 performs control on the communication channel 3 .
- the host I/F 12 receives the access request from the host 2 .
- the host I/F 12 performs data transmission between the host 2 and the DRAM 30 .
- the DRAMC 13 is a controller used for the memory controller 10 to have access to the DRAM 30 .
- the CPU 11 serves as a processing unit which performs control on the entire memory controller 10 by executing a firmware program.
- the SRAM 15 is used as a buffer for transmitting the second record group 213 from the NAND memory 20 to the DRAM 30 .
- FIG. 12 is a flowchart for describing the non-volatilization operation of the dirty record.
- the processing unit determines whether a non-volatilization timing has come (S 101 ). In a case where the non-volatilization timing has not come (No in S 101 ), the processing unit performs the determination process of S 101 again.
- the determination on the non-volatilization timing is made by any method. For example, when the amount of dirty records exceeds a predetermined amount, the processing unit determines that the non-volatilization timing has come.
- the processing unit specifies a non-volatilization target region (S 102 ).
- the specifying of the non-volatilization target region means that the second record group 316 is specified as a non-volatilization target among the dirty records. For example, when the state of the second record group 316 transitions from a clean state to a dirty state, the processing unit records the region number corresponding to the second record group 316 in chronological order in a dirty list. The processing unit, for example, selects the earliest-recorded region number in the dirty list, and sets the region indicated by the selected region number as the non-volatilization target.
- the processing unit deletes the region number indicating the non-volatilization target region from the dirty list after the non-volatilization.
- the non-volatilization target region is denoted as a target region.
- the processing unit adds the second record group 316 of the target region to the end of the second table 203 as a new second record group 213 (S 103 ). Then, a pointer recorded in the first record 311 of the target region is overwritten with the pointer which points the new second record group 213 (S 104 ). Further, the second record group 316 of the target region is the second record group 316 which includes the data addresses of all sectors in the target region. In this example, the second record group 316 of the target region includes the region number of the target region as the index and the second record 326 as the second record 326 of the head. In addition, the first record 311 of the target region is the first record 311 which includes the region number of the target region as the index.
- the processing unit adds a new reverse-lookup first record 312 which includes the region number of the target region as the data item to the end of the reverse-lookup first table 302 (S 105 ).
- the index of the new reverse-lookup first record 312 corresponds to a pointer which points the new second record group 213 .
- FIG. 13 is a flowchart for describing the background restoration.
- the processing unit restores the first table 201 and the reverse-lookup first table 202 to the DRAM 30 (S 202 ).
- the processing unit sets the head of the reverse-lookup first table 302 which is the restored reverse-lookup first table 202 to the read pointer 303 (S 203 ).
- the processing unit sets the end of the reverse-lookup first table 302 to the tail pointer 304 (S 204 ).
- the processing unit stores the head location of the reverse-lookup first table 302 as the read pointer 303 in the DRAM 30 .
- the read pointer 303 is moved by the process described below.
- the processing unit stores the end location of the reverse-lookup first table 302 as the tail pointer 304 in the DRAM 30 .
- the tail pointer 304 is fixed while the background restoration is in progress.
- the memory system 1 transmits “READY” to the host 2 (S 205 ). “READY” is a notice which means that the memory system 1 can receive an access request from the host 2 .
- the processing unit determines whether the on-demand restoration is in progress (S 206 ).
- the on-demand restoration in progress means that the processing unit is performing any one of the processes S 402 to S 407 described below.
- the processing unit performs the determination process of S 206 again.
- the processing unit acquires N reverse-lookup first records 312 , each stored in the consecutive locations, from a location indicated by the read pointer 303 in the reverse-lookup first table 302 (S 207 ).
- the processing unit reads N second record groups 213 associated with the acquired N reverse-lookup first records 312 from the NAND memory 20 to the SRAM 15 (S 208 ).
- the processing unit collectively reads the N second record groups 213 in the process of S 207 by one multi-plane read operation.
- the processing unit determines whether each second record group 213 read to the SRAM 15 is valid (S 209 ).
- the validity of the second record group 213 means that the second record group 213 is the latest second record group 213 among one or more second record groups 213 related to the same region stored in the NAND memory 20 .
- the invalidity of the second record group 213 means that the second record group 213 is not valid.
- the reason why the determination on the validity of each second record group 213 is necessary is that the plurality of second record groups 213 related to the same region are likely to be included in the second table 203 by a series of processes illustrated in FIG. 12 .
- the valid second record group 213 is pointed by certain one of the first records 311 .
- the invalid second record group 213 is pointed by none of the first records 311 .
- FIG. 14 is a flowchart for describing the process of S 209 in more detail.
- a process on one second record group 213 (hereinafter, referred to as a subject record group) will be described.
- the processing unit acquires the region number from the index of the reverse-lookup first record 312 in which a pointer (a first pointer) pointing the subject record group is recorded (S 301 ).
- the processing unit acquires a pointer (a second pointer) by retrieving the first table 301 using the acquired region number as a retrieval key (S 302 ).
- the processing unit determines whether the first pointer and the second pointer are matched with each other (S 303 ).
- the processing unit determines that the subject record group is valid (S 304 ), and ends the operation. In a case where the first pointer and the second pointer are not matched with each other (No in S 303 ), the processing unit determines that the subject record group is invalid (S 305 ), and ends the operation.
- the processing unit performs a series of processes described in FIG. 14 on each second record group 213 read out to the SRAM 15 .
- the processing unit determines whether each second record group 213 read to the SRAM 15 is restored (S 210 ).
- the processing unit refers the cache management table 305 using the region number acquired in the process of S 301 as the retrieval key. Then, in a case where “Cached” is acquired, the processing unit determines that the second record group 213 corresponding to the region number is restored. In a case where “Not Cached” is acquired, the processing unit determines that the second record group 213 corresponding to the region number is not restored.
- the processing unit selects one second record group 213 among the N second record groups 213 read to the SRAM 15 (S 211 ).
- the second record group 213 selected through the process of S 211 is denoted as a subject record group.
- the processing unit determines whether the subject record group is valid and not restored (S 212 ). In a case where the subject record group is valid and not restored (Yes in S 212 ), the subject record group is stored into the second table cache 306 (S 213 ). In other words, the processing unit restores the subject record group to the second table cache 306 . Subsequently, the processing unit updates the cache management table 305 (S 214 ).
- the processing unit sets “Cached” to the region of the subject record group in the cache management table 305 .
- the processing unit skips the processes of S 213 and S 214 .
- the processing unit determines whether there is an unselected second record group 213 among the N second record groups 213 read to the SRAM 15 (S 215 ). In a case where there is an unselected second record group 213 (Yes in S 215 ), the processing unit performs the process of S 211 on the unselected second record group 213 again.
- the processing unit determines whether the read pointer 303 and the tail pointer 304 are matched with each other (S 216 ). In a case where the read pointer 303 and the tail pointer 304 are not matched with each other (No in S 216 ), the processing unit advances the read pointer 303 (S 216 ). Specifically, the processing unit updates the value of the read pointer 303 with a value obtained by adding the size of the N reverse-lookup first records 312 to the current value. After the process of S 216 , the processing unit performs the determination of S 206 again.
- the processing unit ends the background restoration.
- FIG. 15 is a flowchart for describing the on-demand restoration.
- the on-demand restoration means the processes from S 402 to S 407 described below.
- the processes from S 402 to S 407 can be executed in other operation (for example, write operation).
- the processing unit determines whether the target region is restored with reference to the cache management table 305 (S 402 ). Further, in the description of FIG. 15 , the region including the host address designated by the read request is denoted as a target region. In addition, “the target region is restored” means that the target region is cached.
- the processing unit acquires a pointer by referring the first table 301 using the region number of the target region as the retrieval key (S 403 ).
- the processing unit reads one second record group 213 from a location indicated by the pointer in the NAND memory 20 to the SRAM 15 (S 404 ).
- the processing unit stores the second record group 213 read to the SRAM 15 into the second table cache 306 (S 405 ).
- the processing unit updates the cache management table 305 according to the process of S 405 (S 406 ). Specifically, the processing unit sets “Cached” to a record having the region number of the target region as its index.
- the processing unit may perform the multi-plane read operation in the process of S 404 .
- the processing unit reads the N second record groups 213 from four pages including the location indicated by the pointer acquired in the process of S 403 to the SRAM 15 .
- the processing unit performs the processes of S 209 to S 215 on the N second record groups 213 read to the SRAM 15 .
- the processing unit may read the N second record groups 213 to each page buffer 22 by the multi-plane read operation. After reading the N second record groups 213 to each page buffer 22 , the processing unit may read only one second record group 213 related to the target region from the NAND memory 20 to the SRAM 15 by the output command. In addition, the processing unit may specify one or more second record groups 213 which are valid and not restored among the N second record groups 213 read to each page buffer 22 , and read only one or more second record groups 213 which are valid and not restored to the SRAM 15 by the output command.
- the processing unit In a case where the target region is restored (Yes in S 402 ) or after the process of S 406 , the processing unit translates the host address designated by the read request into the data address by referring the second table cache 306 (S 407 ). Then, the processing unit performs data transmission from the NAND memory 20 to the host 2 based on the translation result (S 408 ), and ends the on-demand restoration.
- the processing unit reads each second record group 213 stored in the NAND memory 20 in an order according to the storage location in the NAND memory 20 in a case of starting, and restores the second record group 213 to the second table cache 306 . Therefore, since the processing unit is enabled to collectively read the plurality of second record groups 213 of which the storage locations are consecutive from the memory cell array 23 , the background restoration is improved in speed compared to a case where each second record group 213 is read in serial from the memory cell array 23 . Further, the processing unit performs the background restoration in a case of starting.
- the memory system 1 transmits “READY” to the host 2 in response to the completion of restoring the first table 201 and rebuilding the reverse-lookup first table 302 . After transmitting “READY”, the memory system 1 can accept the access request from the host 2 .
- the time of start-up means a period of time taken until at least the power-on sequence is ended after power is supplied to the memory system 1 .
- the description herein will be made on an assumption that the physical address is assigned to each page to make the collective reading of the N second record groups 213 enabled through the multi-plane read operation.
- a method of assigning the physical address is not limited to the above method.
- the processing unit may calculate the storage locations of the plurality of the second record groups 213 which are collectively read and have the consecutive storage locations. Having the consecutive storage locations means a positional relation between two second record groups 213 to make the collective reading of two second record groups 213 enabled.
- a collectively reading method is not limited only to the multi-plane read operation.
- the processing unit may collectively read two or more second record groups 213 stored in one plane 24 to the page buffer 22 (single plane read). That is, the read unit size may be the number of second record groups 213 stored in one plane 24 .
- the processing unit manages the reverse-lookup first table 302 .
- the reverse-lookup first table 302 includes a plurality of reverse-lookup first records 312 .
- Each reverse-lookup first record 312 shows a relation between a pointer pointing a certain second record group 213 and a host address.
- Each reverse-lookup first record 312 is recorded in the reverse-lookup first table 302 in an order of the pointer recorded in each reverse-lookup first record 312 .
- the processing unit reads each second record group 213 based on the order of the recording location of each reverse-lookup first record 312 . Therefore, the processing unit can simply manage the reading of each second record group 213 .
- the processing unit transfers the N second record groups 213 from the NAND memory 20 to the SRAM 15 .
- the processing unit reads the N second record groups 213 from the memory cell array 23 to the respective page buffers 22 by the multi-plane read operation. Then, the processing unit may be configured to acquire a valid second record group 213 from each page buffer 22 , and not acquire an invalid second record group 213 from each page buffer 22 . In addition, the processing unit may be configured to acquire the second record group 213 which is valid and not restored from each page buffer 22 , and not acquire the second record group 213 which is invalid or restored from each page buffer 22 .
- the processing unit performs the on-demand restoration.
- the processing unit determines whether the region including the host address of a translation target is already restored based on the cache management table 305 .
- the processing unit restores the second record group 213 related to the region including the host address of the translation target from the NAND memory 20 to the second table cache 306 . Therefore, it is prevented that a cache content related to the region including the host address of the translation target is overwritten with the content stored in the NAND memory 20 .
- the processing unit performs the on-demand restoration according to the occurrence of the translation request, and suspends the background restoration in a case where the on-demand restoration is in progress. After the on-demand restoration is completed, the processing unit resumes the background restoration. That is, the processing unit performs the on-demand restoration with priority higher than that of the background restoration. Therefore, the processing unit can transmit a response to the read request from the host 2 more speedy compared to a case where the on-demand restoration is not performed with priority higher than that of the background restoration. In addition, before the background restoration is completed, the processing unit can receive the read request from the host 2 to perform a process corresponding to the access request (the read request or the write request) or a process of the garbage collection.
- the processing unit of a second embodiment does not save the reverse-lookup first table 302 in the NAND memory 20 in the power-off sequence.
- the processing unit rebuilds the reverse-lookup first table 302 based on the first table 301 in the power-on sequence.
- FIG. 16 is a flowchart for describing the background restoration of the second embodiment.
- FIG. 17 is a flowchart for describing a process of rebuilding the reverse-lookup first table 302 .
- the processing unit generates the reverse-lookup first table 302 in an initial state (S 601 ).
- the initial state means a state in which an initial value is recorded in the data item of each reverse-lookup first record 312 .
- the initial value is a magic number which does not indicate any location in NAND memory 20 .
- the number of records of the reverse-lookup first table 302 in the initial state for example, is equal to the number of second record groups 213 included in the second table 203 at the time immediately after the process of S 501 (that is, a time after the start-up is made but the non-volatilization is not performed even once).
- the processing unit acquires one first record 311 from the first table 301 (S 602 ). Then, the processing unit overwrites a reverse-lookup first record 312 with a host address (S 603 ).
- the reverse-lookup first record 312 means the reverse-lookup first record 312 includes the pointer recorded in the acquired first record 311 as the index.
- the host address means the host address indicating the index of the first record 311 acquired by the process of S 602 . Then, the processing unit determines whether there is an unacquired first record 311 in the first table 301 (S 604 ).
- the processing unit performs the process of S 602 again.
- the processing unit acquires one first record 311 among one or more first records 311 which are still not acquired.
- the processing unit completes a process of rebuilding the reverse-lookup first table 302 .
- each reverse-lookup first table 302 is a state where the initial value is recorded or a state where the region number is recorded.
- the processing unit sets the head of the reverse-lookup first table 302 to the read pointer 303 (S 504 ).
- the processing unit sets the end of the reverse-lookup first table 302 to the tail pointer 304 (S 505 ).
- the memory system 1 transmits “READY” to the host 2 (S 506 ).
- the processing unit determines whether the on-demand restoration is in progress (S 507 ). In a case where the on-demand restoration is in progress (Yes in S 507 ), the processing unit performs the determination process of S 507 again.
- the processing unit acquires the N reverse-lookup first records 312 of which the storage locations are consecutive from the location indicated by the read pointer 303 in the reverse-lookup first table 302 (S 508 ).
- the processing unit determines whether the initial value is recorded in all the acquired N reverse-lookup first records 312 (S 509 ). In a case where the region number is recorded in at least one of the acquired N reverse-lookup first records 312 (No in S 509 ), the processing unit performs the same processes as those of S 208 to S 215 (S 510 to S 517 ). In a case where the initial value is recorded in all the acquired N reverse-lookup first records 312 (Yes in S 509 ), or in a case where all the N second record groups 213 read to the SRAM 15 had been selected (No in S 517 ), the processing unit determines whether the read pointer 303 and the tail pointer 304 are matched with each other (S 518 ). In a case where the read pointer 303 and the tail pointer 304 are not matched with each other (No in S 518 ), the processing unit advances the read pointer 303 (S 519 ).
- the processing unit After the process of S 519 , the processing unit performs the determination process of S 507 again. In a case where the read pointer 303 and the tail pointer 304 are matched with each other (Yes in S 518 ), the processing unit ends the background restoration.
- the processing unit restores the reverse-lookup first table 302 based on the first table 301 in a case of starting. Therefore, the processing unit can omit processing of the saving the reverse-lookup first table 302 in the power-off sequence.
- the host 2 may notify a forenotice of the power-off to the memory system 1 before the power-off.
- the processing unit starts the power-off sequence when the forenotice is received.
- the power-off may be performed without the forenotice.
- the memory system 1 is mounted with a battery for performing the power-off sequence even in a case where the power-off is performed without the forenotice. According to the second embodiment, since the reverse-lookup first table 302 is not a saving target, the power charged in the battery can be efficiently used compared to a case where the reverse-lookup first table 302 is saved.
- the processing unit first records the initial value to all the reverse-lookup first records 312 . Then, the processing unit records the region number in the reverse-lookup first record 312 using the pointer indicating the relation in one of the first records 311 as an index.
- the processing unit skips the reading of the N second record groups 213 from the NAND memory 20 . Therefore, the processing unit can omit a useless access to the NAND memory 20 .
- the processing unit may acquire the N second record groups 213 into the SRAM 15 even in a case where the initial value is recorded in the reverse-lookup first records 312 corresponding to all the N second record groups 213 in the background restoration.
- the processing unit does not save the first table 301 in the power-off sequence.
- the processing unit rebuilds the first table 301 in the power-on sequence.
- the processing unit stores a pair of the region number of the target region and the pointer pointed to a new second record group 213 added to the end of the second table 203 in the NAND memory 20 as a log.
- the processing unit reads a series of logs stored in the NAND memory 20 in the order in which the series of logs were stored, and sorts and dedupes the pointers included in the read logs in an order of the region number in the DRAM 30 so as to rebuild the first table 301 .
- the processing unit overwrites a pointer read earlier with a pointer read later.
- the processing unit can configure the memory system 1 without saving the first table 301 .
- FIG. 18 is a diagram illustrating an example of the installed memory system 1 .
- the memory system 1 for example, is mounted on a server system 1000 .
- the server system 1000 is configured to connect a disk array 2000 and a rack-mount server 3000 through a communication interface 4000 .
- a standard of the communication interface 4000 any standard can be employed.
- the rack-mount server 3000 is configured such that one or more hosts 2 are mounted on a server rack. A plurality of hosts 2 can have access to the disk array 2000 through the communication interface 4000 .
- the disk array 2000 is configured such that one or more memory systems 1 and one or more hard disk units 4 are mounted on the server rack.
- Each memory system 1 can perform the read command from each host 2 .
- each memory system 1 has the configuration employed from any one of the first to third embodiments.
- each memory system 1 may be used as the cache of one or more hard disk units 4 .
- the disk array 2000 may be configured such that a storage controller unit for building RAID is mounted on one or more hard disk units 4 .
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)
- Memory System (AREA)
Abstract
Description
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/850,387 US9798470B2 (en) | 2015-01-23 | 2015-09-10 | Memory system for storing and processing translation information |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562107022P | 2015-01-23 | 2015-01-23 | |
US14/850,387 US9798470B2 (en) | 2015-01-23 | 2015-09-10 | Memory system for storing and processing translation information |
Publications (2)
Publication Number | Publication Date |
---|---|
US20160216887A1 US20160216887A1 (en) | 2016-07-28 |
US9798470B2 true US9798470B2 (en) | 2017-10-24 |
Family
ID=56433336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/850,387 Active US9798470B2 (en) | 2015-01-23 | 2015-09-10 | Memory system for storing and processing translation information |
Country Status (1)
Country | Link |
---|---|
US (1) | US9798470B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240086107A1 (en) * | 2022-09-12 | 2024-03-14 | Western Digital Technologies, Inc. | Splitting sequential read commands |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170040466A (en) * | 2015-10-05 | 2017-04-13 | 에스케이하이닉스 주식회사 | Data processing system |
CN107797756B (en) * | 2016-09-05 | 2021-01-12 | 上海宝存信息科技有限公司 | Priority writing method of solid state disk system and device using same |
US12334136B2 (en) * | 2021-06-24 | 2025-06-17 | Sk Hynix Nand Product Solutions Corp. | Independent multi-page read operation enhancement technology |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144418A1 (en) * | 2003-12-26 | 2005-06-30 | Kenzo Kita | Memory controller, flash memory system, and method of controlling operation for data exchange between host system and flash memory |
US20060053246A1 (en) * | 2004-08-30 | 2006-03-09 | Lee Schweiray J | Systems and methods for providing nonvolatile memory management in wireless phones |
US20080177937A1 (en) * | 2007-01-23 | 2008-07-24 | Sony Corporation | Storage apparatus, computer system, and method for managing storage apparatus |
US20120002315A1 (en) * | 2010-06-30 | 2012-01-05 | Kabushiki Kaisha Toshiba | Magnetic disk drive and refresh method for the same |
JP2012068986A (en) | 2010-09-24 | 2012-04-05 | Toshiba Corp | Memory system |
US20120084490A1 (en) | 2010-10-04 | 2012-04-05 | Seong Hyeog Choi | Method for changing read parameter for improving read performance and apparatuses using the same |
US20120159058A1 (en) * | 2010-12-17 | 2012-06-21 | Kabushiki Kaisha Toshiba | Memory system and method for writing data into memory system |
US20120221775A1 (en) | 2011-02-28 | 2012-08-30 | Samsung Electronics Co., Ltd. | Non-volatile memory device and read method thereof |
US20120278664A1 (en) * | 2011-04-28 | 2012-11-01 | Kabushiki Kaisha Toshiba | Memory system |
US20130227246A1 (en) * | 2012-02-23 | 2013-08-29 | Kabushiki Kaisha Toshiba | Management information generating method, logical block constructing method, and semiconductor memory device |
US20130246689A1 (en) * | 2012-03-16 | 2013-09-19 | Kabushiki Kaisha Toshiba | Memory system, data management method, and computer |
US20140365711A1 (en) * | 2013-06-10 | 2014-12-11 | Kabushiki Kaisha Toshiba | Memory system |
US20150169465A1 (en) * | 2013-12-17 | 2015-06-18 | Sandisk Technologies Inc. | Method and system for dynamic compression of address tables in a memory |
-
2015
- 2015-09-10 US US14/850,387 patent/US9798470B2/en active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144418A1 (en) * | 2003-12-26 | 2005-06-30 | Kenzo Kita | Memory controller, flash memory system, and method of controlling operation for data exchange between host system and flash memory |
US20060053246A1 (en) * | 2004-08-30 | 2006-03-09 | Lee Schweiray J | Systems and methods for providing nonvolatile memory management in wireless phones |
US20080177937A1 (en) * | 2007-01-23 | 2008-07-24 | Sony Corporation | Storage apparatus, computer system, and method for managing storage apparatus |
US20120002315A1 (en) * | 2010-06-30 | 2012-01-05 | Kabushiki Kaisha Toshiba | Magnetic disk drive and refresh method for the same |
US8832357B2 (en) | 2010-09-24 | 2014-09-09 | Kabushiki Kaisha Toshiba | Memory system having a plurality of writing mode |
JP2012068986A (en) | 2010-09-24 | 2012-04-05 | Toshiba Corp | Memory system |
US20120084490A1 (en) | 2010-10-04 | 2012-04-05 | Seong Hyeog Choi | Method for changing read parameter for improving read performance and apparatuses using the same |
JP2012079403A (en) | 2010-10-04 | 2012-04-19 | Samsung Electronics Co Ltd | Reading method for nonvolatile memory device, operation method for memory controller, and operation method for memory system |
US20120159058A1 (en) * | 2010-12-17 | 2012-06-21 | Kabushiki Kaisha Toshiba | Memory system and method for writing data into memory system |
US9330752B2 (en) * | 2010-12-17 | 2016-05-03 | Kabushiki Kaisha Toshiba | Memory system and method for writing data into memory system |
US20120221775A1 (en) | 2011-02-28 | 2012-08-30 | Samsung Electronics Co., Ltd. | Non-volatile memory device and read method thereof |
JP2012181909A (en) | 2011-02-28 | 2012-09-20 | Samsung Electronics Co Ltd | Nonvolatile memory device, controller for controlling nonvolatile memory device and operation method of controller |
US20120278664A1 (en) * | 2011-04-28 | 2012-11-01 | Kabushiki Kaisha Toshiba | Memory system |
US20130227246A1 (en) * | 2012-02-23 | 2013-08-29 | Kabushiki Kaisha Toshiba | Management information generating method, logical block constructing method, and semiconductor memory device |
US20130246689A1 (en) * | 2012-03-16 | 2013-09-19 | Kabushiki Kaisha Toshiba | Memory system, data management method, and computer |
US20140365711A1 (en) * | 2013-06-10 | 2014-12-11 | Kabushiki Kaisha Toshiba | Memory system |
US20150169465A1 (en) * | 2013-12-17 | 2015-06-18 | Sandisk Technologies Inc. | Method and system for dynamic compression of address tables in a memory |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240086107A1 (en) * | 2022-09-12 | 2024-03-14 | Western Digital Technologies, Inc. | Splitting sequential read commands |
US11989458B2 (en) * | 2022-09-12 | 2024-05-21 | Western Digital Technologies, Inc. | Splitting sequential read commands |
Also Published As
Publication number | Publication date |
---|---|
US20160216887A1 (en) | 2016-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11520697B2 (en) | Method for managing a memory apparatus | |
US11232041B2 (en) | Memory addressing | |
US10915475B2 (en) | Methods and apparatus for variable size logical page management based on hot and cold data | |
US10162759B2 (en) | Methods for caching and reading data to be programmed into a storage unit and apparatuses using the same | |
US9891825B2 (en) | Memory system of increasing and decreasing first user capacity that is smaller than a second physical capacity | |
US9229876B2 (en) | Method and system for dynamic compression of address tables in a memory | |
US10496334B2 (en) | Solid state drive using two-level indirection architecture | |
CN112765006B (en) | Solid state disk log generation method and solid state disk thereof | |
JP6224253B2 (en) | Speculative prefetching of data stored in flash memory | |
US10606760B2 (en) | Nonvolatile memory devices and methods of controlling the same | |
US20100030944A1 (en) | Method and Apparatus for Storing Data in Solid State Memory | |
KR102649131B1 (en) | Apparatus and method for checking valid data in block capable of large volume data in memory system | |
US11520696B2 (en) | Segregating map data among different die sets in a non-volatile memory | |
US10754555B2 (en) | Low overhead mapping for highly sequential data | |
JP2018156131A (en) | Information processing apparatus, storage device and information processing system | |
US10229052B2 (en) | Reverse map logging in physical media | |
US20140223075A1 (en) | Physical-to-logical address map to speed up a recycle operation in a solid state drive | |
US9798470B2 (en) | Memory system for storing and processing translation information | |
KR20210045506A (en) | Cache operation in hybrid dual in-line memory modules | |
US11074178B2 (en) | Memory system and method of controlling nonvolatile memory | |
US20150339069A1 (en) | Memory system and method | |
US11113205B2 (en) | Die addressing using a reduced size translation table entry | |
US9047959B1 (en) | Data storage device, memory control method, and electronic device with data storage device | |
US11461225B2 (en) | Storage device, control method of storage device, and storage medium | |
US11640336B2 (en) | Fast cache with intelligent copyback |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: KABUSHIKI KAISHA TOSHIBA, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:FUKUDA, TOHRU;NAKAZUMI, SHINICHIRO;KOJIMA, YOSHIHISA;REEL/FRAME:036813/0453 Effective date: 20151002 |
|
AS | Assignment |
Owner name: TOSHIBA MEMORY CORPORATION, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KABUSHIKI KAISHA TOSHIBA;REEL/FRAME:043066/0329 Effective date: 20170614 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: K.K. PANGEA, JAPAN Free format text: MERGER;ASSIGNOR:TOSHIBA MEMORY CORPORATION;REEL/FRAME:055659/0471 Effective date: 20180801 Owner name: TOSHIBA MEMORY CORPORATION, JAPAN Free format text: CHANGE OF NAME AND ADDRESS;ASSIGNOR:K.K. PANGEA;REEL/FRAME:055669/0401 Effective date: 20180801 Owner name: KIOXIA CORPORATION, JAPAN Free format text: CHANGE OF NAME AND ADDRESS;ASSIGNOR:TOSHIBA MEMORY CORPORATION;REEL/FRAME:055669/0001 Effective date: 20191001 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |