US11645197B2 - Memory controller and method of operating the same - Google Patents
Memory controller and method of operating the same Download PDFInfo
- Publication number
- US11645197B2 US11645197B2 US17/091,101 US202017091101A US11645197B2 US 11645197 B2 US11645197 B2 US 11645197B2 US 202017091101 A US202017091101 A US 202017091101A US 11645197 B2 US11645197 B2 US 11645197B2
- Authority
- US
- United States
- Prior art keywords
- address
- logical address
- logical
- criterion
- memory
- 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, expires
Links
Images
Classifications
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1048—Data bus control circuits, e.g. precharging, presetting, equalising
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- 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/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/0837—Cache consistency protocols with software control, e.g. non-cacheable data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/12—Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/08—Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Definitions
- the embodiments of the disclosed technology generally relate to an electronic device, and more particularly, to a memory controller and a method of operating the memory controller.
- a data storage device is used to temporarily or permanently store data under the control of a host device such as a computer or a smartphone.
- the data storage device may include a memory device or memory medium configured to store data, and a memory controller configured to control the memory device.
- Memory devices may be classified into volatile memory devices and nonvolatile memory devices.
- a volatile memory device only retains its data while the device is powered and loses its data when power is lost. Examples of a volatile memory device include a static random access memory (SRAM), and a dynamic random access memory (DRAM).
- SRAM static random access memory
- DRAM dynamic random access memory
- a nonvolatile memory device can retain stored data even in the absence of power supply and thus does not lose its data when power is lost.
- Examples of a nonvolatile memory device include a read-only memory (ROM), a programmable ROM (PROM), an electrically programmable ROM (EPROM), an electrically erasable programmable ROM (EEPROM), and a flash memory.
- the embodiments of the disclosed technology relate to a memory controller with improved wear-leveling performance, and a method of operating the memory controller.
- a memory controller configured to control a first memory area and a second memory area may include a first software layer configured to control the first memory area based on first logical addresses, a second software layer configured to control the second memory area based on second logical addresses, and a logical address manager configured to compare a logical address received from a host with a reference address selected from among a plurality of logical addresses to be used by the host, and transmit the logical address received from the host to the first software layer or the second software layer according to a criterion selected from between a first criterion and a second criterion based on the comparison.
- a memory controller configured to control a first memory area and a second memory area may include a first flash translation layer configured to control the first memory area based on a logical address included in a first logical address group, a second flash translation layer configured to control the second memory area based on a logical address included in a second logical address group, and a logical address manager configured to determine logical addresses to be included in the first logical address group and the second logical address group, based on a result of comparison between a reference address and the plurality of logical addresses.
- the reference address is selected from a host address group including a group of logical addresses to be used by the host.
- a method of operating a memory controller that includes a first flash translation layer configured to control a first memory area and a second flash translation layer configured to control a second memory area may include comparing a logical address received from a host with a reference address selected from among a plurality of logical addresses to be used by the host, selecting one of a first criterion and a second criterion based on a comparison between the logical address received from the host and the reference address, and transmitting the logical address to one of the first flash translation layer and the second flash translation layer according to the selected criterion.
- the logical address is transmitted to different flash translation layers depending on which of the first criterion and the second criterion is selected.
- a memory controller configured to control a first memory area and a second memory area may include a first software layer configured to control the first memory area based on first logical addresses, a second software layer configured to control the second memory area based on second logical addresses, and a logical address manager configured to compare a logical address received from a host with a reference address selected from among a plurality of logical addresses received from the host, and transmit the logical address received from the host to a software layer selected from the first software layer or the second software layer based on the comparison.
- a memory controller configured to control a first memory area and a second memory area may include a first flash translation layer configured to control the first memory area based on a logical address included in a first logical address group, a second flash translation layer configured to control the second memory area based on a logical address included in a second logical address group, and a logical address manager configured to determine logical addresses to be included in the first logical address group and the second logical address group, based on a result of comparison between a reference address, selected from a host address group including a group of logical addresses received from the host, and the plurality of logical addresses.
- a method of operating a memory controller that includes a first flash translation layer configured to control a first memory area and a second flash translation layer configured to control a second memory area may include determining whether to use a first criterion or a second criterion by comparing a logical address received from a host with a reference address selected from among a plurality of logical addresses to be used by the host, wherein the reference address is updated based on change basis information configured to be used as a basis for determining the change to the reference address, determine, based on the determined criterion, whether to select the first software layer or the second software layer for the logical address received from the host, and transmitting the logical address to the first flash translation layer or the second flash translation layer selected according to the criterion selected between the first criterion and the second criterion.
- the logical address is transmitted to different flash translation layers depending on which of the first criterion and the second criterion is selected.
- An embodiment of the disclosed technology may provide for a memory controller configured to control a first memory area and a second memory area.
- the memory controller may include: a first flash translation layer (FTL) configured to control the first memory area based on first logical addresses; a second FTL configured to control the second memory area based on second logical addresses; and a logical address manager configured to compare a logical address received from a host with a reference address selected from among a plurality of logical addresses capable of being received from the host, and transmit the logical address received from the host to the first FTL or the second FTL based on a criterion selected from between a first criterion and a second criterion depending on a result of the comparison.
- the logical address received from the host may be transmitted to different FTLs based on the first criterion and the second criterion.
- An embodiment of the disclosed technology may provide for a memory controller configured to control a first memory area and a second memory area.
- the memory controller may include: a first flash translation layer (FTL) configured to control the first memory area based on a logical address included in a first logical address group; a second FTL configured to control the second memory area based on a logical address included in a second logical address group; and a logical address manager configured to determine logical addresses to be included in the first logical address group and the second logical address group, based on a result of comparison between a reference address selected from a host address group that is a group of logical addresses received from the a host and the plurality of logical addresses.
- FTL flash translation layer
- An embodiment of the disclosed technology may provide for a method of operating a memory controller including a first flash translation layer (FTL) configured to control a first memory area, and a second FTL configured to control a second memory area.
- the method may include: comparing a logical address received from a host with a reference address selected from among a plurality of logical addresses capable of being received from the host and being changed based on change basis information; and transmitting the logical address to the first FTL or the second FTL according to a criterion selected from between a first criterion and a second criterion depending on a result of the comparison of the logical address with the reference address.
- the logical address may be transmitted to different FTLs based on the first criterion and the second criterion.
- FIG. 1 is a block diagram illustrating an example of a data storage device.
- FIG. 2 illustrates an example of a memory area.
- FIG. 3 illustrates an example of a memory block BLKi of FIG. 2 .
- FIG. 4 illustrates an example of address information stored in an address information storage.
- FIG. 5 illustrates another example of the address information.
- FIG. 6 illustrates variations in wear levels that may occur in a data storage device.
- FIG. 7 illustrates an example of a logical address manager based on an embodiment of the disclosed technology.
- FIG. 8 illustrates an example of an address information manager.
- FIG. 9 illustrates an example of an address management method based on an embodiment of the disclosed technology.
- FIG. 10 illustrates an example of an address management method based on an embodiment of the disclosed technology.
- FIG. 11 illustrates an example of an address management method based on an embodiment of the disclosed technology.
- FIG. 12 illustrates an example of an address information management method based on an embodiment of the disclosed technology.
- FIG. 13 illustrates an example process of swapping data.
- FIG. 14 illustrates an example of a logical address transmission method of a memory controller based on an embodiment of the disclosed technology.
- FIG. 15 is a flowchart showing an example of an address information management method of the memory controller based on an embodiment of the disclosed technology.
- FIG. 16 is a block diagram illustrating an example of a memory card system that includes a data storage device implemented based on an embodiment of the disclosed technology.
- FIG. 17 is a block diagram illustrating an example of a solid state drive (SSD) system that includes a data storage device implemented based on an embodiment of the disclosed technology.
- SSD solid state drive
- FIG. 18 is a block diagram illustrating an example of a user system that includes a data storage device implemented based on an embodiment of the disclosed technology.
- FIG. 1 is a block diagram illustrating an example of a data storage device.
- the data storage device 50 may include a memory device 100 and a memory controller 200 configured to control the operation of the memory device 100 .
- the data storage device 50 may be a device configured to store data under control of a host 300 such as a cellular phone, a smartphone, an MP3 player, a laptop computer, a desktop computer, a game machine, a TV, a tablet PC, or an in-vehicle infotainment system.
- a host 300 such as a cellular phone, a smartphone, an MP3 player, a laptop computer, a desktop computer, a game machine, a TV, a tablet PC, or an in-vehicle infotainment system.
- the data storage device 50 may be implemented in any one of various kinds of data storage devices that is compatible to a host interface in communication with the host 300 .
- Examples of the data storage device 50 may include an SSD, MMC, eMMC, RS-MMC, or micro-MMC type multimedia card, an SD, mini-SD, micro-SD type secure digital card, a universal serial bus (USB) data storage device, a universal flash storage (UFS) device, a personal computer memory card international association (PCMCIA) card type data storage device, a peripheral component interconnection (PCI) card type data storage device, a PCI-express (PCI-E) card type data storage device, a compact flash (CF) card, a smart media card, and a memory stick.
- USB universal serial bus
- UFS universal flash storage
- PCMCIA personal computer memory card international association
- PCI peripheral component interconnection
- PCI-E PCI-express
- CF compact flash
- smart media card a smart media card
- the package types for the data storage device 50 include a package on package (POP) type, a system in package (SIP) type, a system on chip (SOC) type, a multi-chip package (MCP) type, a chip on board (COB) type, a wafer-level fabricated package (WFP) type, and a wafer-level stack package (WSP) type.
- POP package on package
- SIP system in package
- SOC system on chip
- MCP multi-chip package
- COB chip on board
- WFP wafer-level fabricated package
- WSP wafer-level stack package
- the memory device 100 may store data therein.
- the memory device 100 may operate under control of the memory controller 200 .
- the data storage device 50 may include a flash translation layer (FTL) that manages the operations of the memory device 100 .
- FTL flash translation layer
- the FTL performs logical to physical address mapping, garbage collection, wear-leveling, error detection/correction, and bad block management.
- the data storage device 50 may include a plurality of FTLs and a plurality of hardware and/or software components that interacts with each other to construct the FTL.
- the FTL may be referred to as a software layer.
- each FTL can be assigned one or more memory locations to manage memory operations of the one or more memory locations.
- the FTLs operate independently of each other to manage operations of different memory locations in parallel.
- the memory device 100 may include a first memory area 110 and a second memory area 120 .
- the first memory area 110 may operate under control of a first flash translation layer (FTL) 210 .
- the second memory area 120 may operate under control of a second FTL 220 .
- FTL flash translation layer
- the memory device 100 may include three or more memory areas.
- the plurality of memory areas may operate independently of each other under control of different FTLs such that each FTL can manage operations of one or more memory areas.
- the memory device 100 may include first to fourth memory areas.
- the first to fourth memory areas may operate under control of the first to fourth FTLs, respectively.
- first FTL 210 and the second FTL 220 of the first to fourth FTLs and only the first memory area 110 and the second memory area 120 of the first to fourth memory areas will be discussed.
- the number of FTLs included in the memory controller 200 and the number of memory areas included in the memory device 100 are not limited to the present example.
- the first memory area 110 and the second memory area 120 each may include a memory cell array.
- the memory cell array may include a plurality of memory cells configured to store data.
- the first memory area 110 and the second memory area 120 each may include a peripheral circuit and a control logic.
- the first memory area 110 and the second memory area 120 may be controlled by different processors. In detail, the first memory area 110 may be controlled by the first FTL 210 .
- the second memory area 120 may be controlled by the second FTL 220 .
- the memory cells may include a single level cell (SLC) capable of storing a single data bit per cell, a multi-level cell (MLC) capable of storing two data bits per cell, a triple-level cell (TLC) capable of storing three data bits per cell, or a quad-level cell (QLC) capable of storing four data bits per cell.
- SLC single level cell
- MLC multi-level cell
- TLC triple-level cell
- QLC quad-level cell
- the memory cell array may include a plurality of memory blocks. Each memory block may include a plurality of memory cells. Each memory block may include a plurality of pages, each of which includes a plurality of memory cells. In an embodiment, the page may be the smallest unit that can be programmed (or written to) or read. The memory block may be the smallest unit that can be erased.
- the memory device 100 may be a double data rate synchronous dynamic random access memory (DDR SDRAM), a low power double data rate4 (LPDDR4) SDRAM, a graphics double data rate (GDDR) SDRAM, a low power DDR (LPDDR), a rambus dynamic random access memory (RDRAM), a NAND flash memory, a vertical NAND flash memory, a NOR flash memory device, a resistive random access memory (RRAM), a phase-change memory (PRAM), a magnetoresistive random access memory (MRAM), a ferroelectric random access memory (FRAM), or a spin transfer torque random access memory (SU-RAM).
- DDR SDRAM double data rate synchronous dynamic random access memory
- LPDDR4 SDRAM low power double data rate4 SDRAM
- GDDR graphics double data rate SDRAM
- LPDDR low power DDR
- RDRAM rambus dynamic random access memory
- NAND flash memory a NAND flash memory
- vertical NAND flash memory a vertical NAND flash memory
- the memory controller 200 can access the memory device 100 by providing commands and addresses.
- the memory controller 200 may access an area of the memory cell array in the memory device 100 that is selected by the address to perform an operation corresponding to the command on the selected area of the memory cell array in the memory device 100 .
- the memory device 100 may perform a write (program) operation, a read operation, and an erase operation.
- the memory device 100 may write data to an area selected by an address.
- a read operation the memory device 100 may read data from an area selected by an address.
- an erase operation the memory device 100 may erase data from an area selected by an address.
- the first memory area 110 may receive a command and an address from the first FTL 210 .
- the second memory area 120 may receive a command and an address from the second FTL 220 .
- the memory device 100 may include a plurality of memory areas. The plurality of memory areas may receive commands and addresses from different FTLs, respectively.
- the memory device 100 may include first to fourth memory areas. The first to fourth memory areas may receive commands and addresses from the first to fourth FTLs, respectively.
- the memory controller 200 may execute firmware (FW) operations to manage the memory device 100 .
- the firmware FW may include a host interface layer (HIL) configured to receive a request input from the host 300 or output a response to the host 300 , a flash translation layer (FTL) configured to manage an operation between an interface of the host 300 and an interface of the memory device 100 , and a flash interface layer (FIL) configured to provide a command to the memory device 100 or receive a response from the memory device 100 .
- HIL host interface layer
- FTL flash translation layer
- FIL flash interface layer
- the HIL may include a logical address (LA) manager 230 .
- the LA manager 230 may receive a logical address (LA) from the host 300 and transmit the LA to the first FTL 210 and the second FTL 220 .
- the LA manager 230 may transmit the LA received from the host 300 to the first FTL 210 and the second FTL 220 through a modular operation.
- the LA manager 230 may transmit, to the first FTL 210 , an LA having 0 as the remainder when the LA is divided by 2 among the LAs received from the host 300 .
- the logical address manager 230 may transmit an even logical address (even LA) to the first FTL 210 .
- the LA manager 230 may transmit an odd logical address (odd LA) to the second FTL 220 .
- a plurality of LAs that the LA manager 230 can receive from the host 300 may be a host address group.
- a plurality of LAs that the first FTL 210 receives from the LA manager 230 may be a first LA group.
- a plurality of LAs that the second FTL 220 receives from the LA manager 230 may be a second LA group.
- the LA manager 230 may transmit the LA received from the host 300 to a plurality of FTLs through a modular operation.
- the first to fourth FTLs may receive different LAs depending on the remainders when the LAs are divided by 4 among the LAs received from the host 300 .
- the first FTL may receive an LA having 0 as the remainder when the LA is divided by 4 among the LAs received from the host 300 .
- the second FTL may receive an LA having 1 as the remainder when the LA is divided by 4 among the LAs received from the host 300 .
- the third FTL may receive an LA having 2 as the remainder when the LA is divided by 4 among the LAs received from the host 300 .
- the fourth FTL may receive an LA having 3 as the remainder when the LA is divided by 4 among the LAs received from the host 300 .
- Each of the plurality of FTLs may translate the received LA into a physical address and transmit the physical address to a corresponding memory area that is controlled by the FTL.
- the memory controller 200 may include an address information storage 240 .
- the address information storage 240 may include address information about a host address group, a first LA group, and a second LA group.
- the LA manager 230 may transmit an LA received from the host 300 to the first FTL 210 or the second FTL 220 , based on the address information stored in the address information storage 240 .
- the memory controller 200 may receive data and an LA from the host 300 , and translate the LA into a physical address (PA) indicating an Lo address of a memory cell to which data is to be stored, the memory cell being included in the memory device 100 .
- the LA may be a logical block address (LBA).
- the physical address may be a physical block address (PBA).
- the first FTL 210 may receive a first LA included in the first LA group from the LA manager 230 , and translate the first LA into a PA indicating a storage area included in the first memory area 110 .
- the second FTL 220 may receive a second LA included in the second LA group from the LA manager 230 , and translate the second LA into a PA indicating a storage area included in the second memory area 120 .
- each of the plurality of FTLs may translate an LA received from the LA manager 230 into a PA indicating a storage area included in a corresponding memory area.
- each of the first to fourth FTLs may translate an LA received from the LA manager 230 into a PA indicating a storage area included in a corresponding one of the first to fourth memory areas.
- the memory controller 200 may control the memory device 100 to perform a program operation, a read operation, or an erase operation in response to a request from the host 300 .
- the memory controller 200 may provide a program command, a PBA, and data to the memory device 100 .
- the memory controller 200 may provide a read command and a PBA to the memory device 100 .
- the memory controller 200 may provide an erase command and a PBA to the memory device 100 .
- the first FTL 210 may control the first memory area 110 to perform a program operation, a read operation, or an erase operation in response to a request from the host 300 .
- the memory controller 200 may receive, from the host 300 , an LA along with the request from the host 300 .
- the LA manager 230 included in the memory controller 200 may transmit the LA received from the host 300 to the first FTL 210 .
- the first FTL 210 may control the first memory area 110 to perform an operation corresponding to the LA received from the LA manager 230 .
- the operation corresponding to the LA may be determined in response to a request received from the host 300 .
- the second FTL 220 may control the second memory area 120 to perform a program operation, a read operation, or an erase operation in response to a request from the host 300 .
- the memory controller 200 may receive, from the host 300 , an LA along with the request from the host 300 .
- the LA manager 230 included in the memory controller 200 may transmit the LA received from the host 300 to the second FTL 220 .
- the second FTL 220 may control the second memory area 120 to perform an operation corresponding to the LA received from the LA manager 230 .
- the operation corresponding to the LA may be determined in response to a request received from the host 300 .
- each of the plurality of FTLs may control a corresponding memory area based on an LA received from the LA manager 230 to perform a program operation, a read operation, or an erase operation in response to a request from the host 300 .
- each of the first to fourth FTLs may control a corresponding one of the first to fourth memory areas to perform a program operation, a read operation, or an erase operation in response to a request from the host 300 .
- the memory controller 200 may autonomously control the memory device 100 to perform a program operation, a read operation, or an erase operation regardless of a request from the host 300 .
- the memory controller 200 may control the memory device 100 to perform a program operation, a read operation, or an erase operation which is used to perform background operations such as a wear leveling operation, a garbage collection operation, and a read reclaim operation.
- the host 300 may communicate with the data storage device 50 using at least one of various communication methods such as universal serial bus (USB), serial AT attachment (SATA), serial attached SCSI (SAS), high speed interchip (HSIC), small computer system interface (SCSI), peripheral component interconnection (PCI), PCI express (PCIe), nonvolatile memory express (NVMe), universal flash storage (UFS), secure digital (SD), multimedia card (MMC), embedded MMC (eMMC), dual in-line memory module (DIMM), registered DIMM (RDIMM), and load reduced DIMM (LRDIMM) communication methods.
- USB universal serial bus
- SATA serial AT attachment
- SAS serial attached SCSI
- HSIC high speed interchip
- SCSI small computer system interface
- PCI peripheral component interconnection
- PCIe PCI express
- NVMe nonvolatile memory express
- UFS universal flash storage
- SD Secure digital
- MMC multimedia card
- eMMC embedded MMC
- DIMM dual in-line memory module
- RDIMM registered DIMM
- FIG. 2 illustrates an example of a memory area.
- a first memory area 110 may include a memory cell array 1110 , a peripheral circuit 1120 , and a control logic 1130 .
- the second memory area 120 may have the same structure as that of the first memory area 110 .
- the memory device 100 may include a plurality of memory areas. Each of the plurality of memory areas may have the same structure as that of the first memory area 110 .
- the memory cell array 1110 may include a plurality of memory blocks BLK 1 to BLKz.
- the plurality of memory blocks BLK 1 to BLKz are coupled to a row decoder 1121 through row lines RL.
- the plurality of memory blocks BLK 1 to BLKz may be coupled to a page buffer group 1123 through bit lines BL 1 to BLn.
- Each of the memory blocks BLK 1 to BLKz may include a plurality of memory cells.
- the plurality of memory cells may be nonvolatile memory cells. Memory cells coupled to the same word line may be defined as one page. Hence, each memory block may include a plurality of pages.
- the row lines RL may include at least one source select line, a plurality of word lines, and at least one drain select line.
- Each of the memory cells included in the memory cell array 1110 may be formed of a single-level cell (SLC) capable of storing a single data bit per cell, a multi-level cell (MLC) capable of storing two data bits per cell, a triple-level cell (TLC) capable of storing three data bits per cell, or a quad-level cell (QLC) capable of storing four data bits per cell.
- SLC single-level cell
- MLC multi-level cell
- TLC triple-level cell
- QLC quad-level cell
- the peripheral circuit 1120 may perform a program operation, a read operation, or an erase operation on a selected area of the memory cell array 1110 under control of the control logic 1130 .
- the peripheral circuit 1120 may perform operations associated with the memory cell array 1110 .
- the peripheral circuit 1120 may apply various operating voltages to the row liens RL and the bit lines BL 1 to BLn or discharge the applied voltages, under control of the control logic 1130 .
- the peripheral circuit 1120 may include the row decoder 1121 , a voltage generator 1122 , the page buffer group 1123 , a column decoder 1124 , an input/output circuit 1125 , and a sensing circuit 1126 .
- the row decoder 1121 is coupled to the memory cell array 1110 through the row lines RL.
- the row lines RL may include at least one source select line, a plurality of word lines, and at least one drain select line.
- the word lines may include normal word lines and dummy word lines.
- the row lines RL may further include a pipe select line.
- the row decoder 1121 may operate under control of the control logic 1130 .
- the row decoder 1121 may receive a row address RADD from the control logic 1130 .
- the row decoder 1121 may decode the row address RADD.
- the row decoder 1121 may select at least one memory block of the memory blocks BLK 1 to BLKz in response to the decoded address.
- the row decoder 1121 may select at least one word line WL of the selected memory block in response to the decoded address so that voltages generated from the voltage generator 1122 are applied to the at least one word line WL.
- the row decoder 1121 may apply a program voltage to a selected word line and apply a program pass voltage having a level lower than that of the program voltage to unselected word lines.
- the row decoder 1121 may apply a verify voltage to a selected word line and apply a verify pass voltage higher than the verify voltage to unselected word lines.
- the row decoder 1121 may apply a read voltage to a selected word line and apply a read pass voltage higher than the read voltage to unselected word lines.
- the erase operation of the memory cell array 1110 may be performed on a memory block basis.
- the row decoder 1121 may select one memory block in response to a decoded address.
- the row decoder 1121 may apply a ground voltage to word lines coupled to the selected memory block.
- the voltage generator 1122 may operate under control of the control logic 1130 .
- the voltage generator 1122 may generate a plurality of voltages using an external supply voltage supplied to the memory device 100 .
- the voltage generator 1122 may generate various operating voltages Vop to be used for a program operation, a read operation, and an erase operation in response to an operating signal OPSIG.
- the voltage generator 1122 may generate a program voltage, a verify voltage, a pass voltage, a read voltage, an erase voltage, and so forth under control of the control logic 1130 .
- the voltage generator 1122 may generate an internal supply voltage by regulating the external supply voltage.
- the internal supply voltage generated by the voltage generator 1122 is used as an operating voltage for the memory cell array 1110 .
- the voltage generator 1122 may generate a plurality of voltages using an external power supply voltage or an internal power supply voltage.
- the voltage generator 1122 may include a plurality of pumping capacitors for receiving the internal supply voltage and generate a plurality of voltages by selectively activating the plurality of pumping capacitors under control of the control logic 1130 .
- the generated voltages may be supplied to the memory cell array 1110 by the row decoder 1121 .
- the page buffer group 1123 may include first to n-th page buffers PB 1 to PBn.
- the first to n-th page buffers PB 1 to PBn are coupled to the memory cell array 1110 through the first to n-th bit lines BL 1 to BLn, respectively.
- the first to n-th page buffers PB 1 to PBn may operate under control of the control logic 1130 .
- the first to n-th page buffers PB 1 to PBn may operate in response to page buffer control signals PBSIGNALS.
- the first to n-th page buffers PB 1 to PBn may temporarily store data received through the first to n-th bit lines BL 1 to BLn, or sense voltages or currents of the first to n-th bit lines BL 1 to BLn during a read operation or a verify operation.
- the first to n-th page buffers PB 1 to PBn may transmit data DATA received through the input/output circuit 1125 to selected memory cells through the first to n-th bit lines BL 1 to BLn when a program pulse is applied to a selected word line.
- the memory cells in the selected page are programmed based on the transmitted data DATA.
- a memory cell coupled to a bit line to which a program enable voltage (e.g. a ground voltage) is applied may have an increased threshold voltage.
- the threshold voltage of a memory cell coupled to a bit line to which a program inhibit voltage (for example, a supply voltage) is applied may be retained.
- the first to n-th page buffers PB 1 to PBn may read page data from selected memory cells through the first to n-th bit lines BL 1 to BLn.
- the first to n-th page buffers PB 1 to PBn may read data DATA from memory cells of a selected page through the first to n-th bit lines BL 1 to BLn, and output the read data DATA to the input/output circuit 1125 under control of the column decoder 1124 .
- the first to n-th page buffers PB 1 to PBn may float the first to n-th bit lines BL 1 to BLn.
- the column decoder 1124 may transmit data between the input/output circuit 1125 and the page buffer group 1123 in response to a column address CADD. For example, the column decoder 1124 may exchange data with the first to n-th page buffers PB 1 to PBn through data lines DL or exchange data with the input/output circuit 1125 through column lines CL.
- the input/output circuit 1125 may transmit, to the control logic 1130 , a command CMD or an address ADDR received from the memory controller 200 described with reference to FIG. 1 , or may exchange data DATA with the column decoder 1124 .
- the sensing circuit 1126 may generate a reference current in response to an enable bit signal VRYBIT, and may compare a sensing voltage VPB received from the page buffer group 1123 with a reference voltage generated by the reference current and output a pass signal PASS or a fail signal FAIL.
- the control logic 1130 may output an operating signal OPSIG, a row address RADD, page buffer control signals PBSIGNALS, and an enable bit signal VRYBIT in response to a command CMD and an address ADD, and thus control the peripheral circuit 1120 .
- the control logic 1130 may determine whether a target memory cell has passed a verification during a verify operation in response to a pass signal PASS or a fail signal FAIL.
- FIG. 3 illustrates an example of a memory block BLKi of FIG. 2 .
- a plurality of word lines extending in a common direction may be arranged between a first select line and a second select line.
- Each of the plurality of word lines is coupled to a plurality of memory cells.
- the first select line may be a source select line SSL
- the second select line may be a drain select line DSL.
- the memory block BLKi may include a plurality of strings ST coupled between the bit lines BL 1 to BLn and the source line SL.
- Each of the plurality of strings ST includes a plurality of memory cells coupled in series to each other.
- the bit lines BL 1 to BLn may be respectively coupled to the strings ST, and the source lines SL may be coupled in common to the strings ST.
- the strings ST may have the same configuration; therefore, the string ST that is coupled to the first bit line BL 1 will be described in detail by way of example.
- the string ST may include a source select transistor SST, a plurality of memory cells MC 1 to MC 16 , and a drain select transistor DST which are coupled in series to each other between the source line SL and the first bit line BL 1 . At least one source select transistor SST and at least one drain select transistor DST may be included in each string ST, and a larger number of memory cells than the number of memory cells MC 1 to MC 16 shown in the drawing may be included in each string ST.
- a source of the source select transistor SST may be coupled to the source line SL, and a drain of the drain select transistor DST may be coupled to the first bit line BL 1 .
- the memory cells MC 1 to MC 16 may be coupled in series between the source select transistor SST and the drain select transistor DST. Gates of the source select transistors SST included in different strings ST may be coupled to the source select line SSL, gates of the drain select transistors DST may be coupled to the drain select line DSL, and gates of the memory cells MC 1 to MC 16 may be coupled to the plurality of word lines WL 1 to WL 16 .
- a group of memory cells coupled to each word line may be referred to as a physical page PG. Therefore, the number of physical pages PG included in the memory block BLKi may correspond to the number of word lines WL 1 to WL 16 .
- Each memory cell may store 1-bit data. This memory cell is typically called a single level cell (SLC). In this case, each physical page PG is mapped to one logical page (LPG) of data. One logical page (LPG) of data may include data bits corresponding to the number of cells included in a single physical page PG.
- SLC single level cell
- LPG logical page
- One logical page (LPG) of data may include data bits corresponding to the number of cells included in a single physical page PG.
- each memory cell may store 2- or more-bit data.
- each physical page PG may store two or more LPGs of data.
- FIG. 4 illustrates an example of address information stored in an address information storage.
- the address information may include host address group information 310 , first LA group information 320 , and second LA group information 330 .
- the host address group information 310 may indicate a group of LAs that are available to be used by the host. In other words, the host address group information 310 may include a group of logical addresses that the host may possibly transmit to the FTLs to access the corresponding memory locations.
- the first LA group information 320 may indicate a group of LAs that can possibly be transmitted to the first FTL 210 , among LAs included in the host address group information 310 .
- the second LA group information 330 may indicate a group of LAs that can possibly be transmitted to the second FTL 220 among LAs included in the host address group information 310 .
- the first LA group information 320 and the second LA group information 330 may be generated based on a first criterion.
- the first LA group information 320 and the second LA group information 330 may be used to determine whether a certain logical address belongs to a first LA group or a second LA group based on a first criterion.
- a plurality of LAs included in the host address group may be determined to belong to the first LA group, or the second LA group, or both the first and second LA groups, based on the first criterion. For example, according to the first criterion, LAs having 0 as the remainder when the LAs are divided by 2, among the plurality of LAs included in the host address group, may be included in the first LA group.
- the LAs included in the first LA group information 320 may be even Las (even-numbered logical addresses).
- LAs having 1 as the remainder when the LAs are divided by 2, among the plurality of LAs included in the host address group may be included in the second LA group.
- the LAs included in the second LA group information 330 may be odd Las (odd-numbered logical addresses).
- even LAs may be transmitted to the first FTL 210
- odd LAs may be transmitted to the second FTL 220 .
- the LA manager 230 may receive an LA from the host 300 and transmit the LA to the first FTL 210 and the second FTL 220 with reference to the address information. For example, in the case where the LA manager 230 receives an even LA from the host 300 , the LA manager 230 may transmit the even LA to the first FTL 210 with reference to the address information. In the case where the LA manager 230 receives an odd LA from the host 300 , the LA manager 230 may transmit the odd LA to the second FTL 220 with reference to the address information.
- FIG. 5 illustrates another example of the address information.
- the address information may include host address group information 310 , first LA group information 420 , second LA group information 430 , third LA group information 440 , and fourth LA group Lo information 450 .
- the host address group information 310 may indicate a group of LAs that are available to be used by the host.
- the host address group information 310 may include a group of logical addresses that the host may possibly transmit to the FTLs to access the corresponding memory locations.
- the first to fourth LA group information 420 to 450 may include information about LAs to be transmitted to the first to fourth FTLs, respectively.
- the first to fourth LA group information 420 to 450 may include logical addresses (Las) to be transmitted to the first to fourth FTLs.
- the first to fourth FTLs may respectively control first to fourth memory areas.
- the first to fourth LA group information 420 to 450 may be generated based on the first criterion.
- the first to fourth LA group information 420 to 450 may be used to determine whether a certain logical address belongs to a first LA group, a second LA group, a third LA group or a fourth LA group based on the first criterion.
- a plurality of LAs included in the host address group may be divided into the first to fourth LA groups based on the first criterion. According to the first criterion, LAs having 0 as the remainder when the LAs are divided by 4, among the plurality of LAs included in the host address group, may be included in the first LA group.
- LAs having 1 as the remainder when the LAs are divided by 4, among the LAs included in the host address group may be included in the second LA group.
- LAs having 2 as the remainder when the LAs are divided by 4, among the LAs included in the host address group may be included in the third LA group.
- LAs having 3 as the remainder when the LAs are divided by 4, among the LAs included in the host address group may be included in the fourth LA group.
- the LA manager 230 may receive an LA from the host 300 and transmit the LA to the first to fourth FTLs by determining which of the first to fourth FTLs will take the LA based on the address information. For example, in the case where the LA manager 230 receives LA 0 from the host 300 , the LA manager 230 may transmit LA 0 to the first FTL based on the address information. In the case where the LA manager 230 receives LA 1 from the host 300 , the LA manager 230 may transmit LA 1 to the second FTL based on the address information. In the case where the LA manager 230 receives LA 2 from the host 300 , the LA manager 230 may transmit LA 2 to the third FTL based on the address information. In the case where the LA manager 230 receives LA 3 from the host 300 , the LA manager 230 may transmit LA 3 to the fourth FTL based on the address information.
- FIG. 5 illustrates the LA manager 230 that generates four logical address groups
- the number of LA groups is not limited thereto.
- the LA address manager 230 configured to generate two LA groups will be discussed below with reference to FIG. 6 as an example.
- FIG. 6 illustrates variations in wear levels that may occur in a data storage device.
- an erase/write cycle (E/W) count of the first memory area 110 exceed a threshold count, and an E/W count of the second memory area 120 be less than the threshold count.
- E/W count of the first memory area 110 may increase.
- the E/W count of the second memory area 120 may increase. Therefore, when as illustrated in FIG.
- an LA received from the host 300 is transmitted to the first FTL 210 or the second FTL 220 based on the preset first criterion, there can be variations in wear levels (the E/W count of the first memory area 110 has reached the threshold count while the E/W count of the second memory area 120 is far below the threshold count).
- the E/W count of the first memory area 110 exceeds the threshold count, it can be determined that the memory device 100 has reached its end of life.
- the E/W count of the first memory area 110 exceeds the threshold count, not only the first memory area 110 but also the second memory area 120 cannot be used.
- Once a memory device has reached its end of life data cannot be written to the memory device 100 , and data cannot be read from the memory device 100 .
- Physical addresses of the memory device mapped to logical addresses can be unevenly accessed if odd numbered LAs are more frequently accessed than even numbered LAs, or vice versa. For example, if even LAs are more frequently received from the host 300 , the number of LAs to be transmitted to the first memory area 110 based on the first criterion may be increased. Furthermore, the E/W count of the first memory area 110 may greatly increase compared to the E/W count of the second memory area 120 . Therefore, there can occur variations in wear levels between odd numbered logical addresses and even numbered logical addresses if the first criterion is the only basis for the distribution among logical addresses.
- FIG. 7 illustrates an example of the LA manager 230 based on an embodiment of the disclosed technology.
- the LA manager 230 may include an address information manager 231 and an LA transmitter 232 .
- the address information manager 231 may manage address information stored in the address information storage 240 .
- the address information manager 231 may generate first LA group information 320 and second LA group information 330 based on the first criterion.
- the address information manager 231 may include, in the first LA group information 320 or the second LA group information 330 based on the first criterion, a plurality of LAs included in the host address group information 310 .
- LAs having 0 as the remainder when the LAs are divided by 2 among the plurality of LAs included in the host address group may be included in the first LA group.
- LAs having 1 as the remainder when the LAs are divided by 2 among the plurality of LAs included in the host address group may be included in the second LA group.
- the Lo address information manager 231 may include even LAs in the first LA group information 320 and include odd LAs in the second LA group information 330 .
- LA 0 , LA 2 , etc. which are even LAs, among LA 0 to LA 47 included in the host address group information 310 , may be included in the first LA group information 320 .
- LA 1 , LA 3 , etc., which are odd LAs, among LA 0 to LA 47 included in the host address group information 310 may be included in the second LA group information 330 .
- the address information manager 231 may update or make a change to the first LA group information 310 and the second LA group information 320 upon determination that LAs are in a swap area according to a second criterion in addition to or instead of the first criterion.
- the determination can be made based on a reference address. In determining whether an LA is supposed to follow the first criterion or the second criterion, it can be determined first whether the LA is in a first LA group determined by the first criterion or a second LA group determined by the second criterion, which is different from the first LA group.
- an LA having 0 as the remainder when the LA is divided by 2 may be determined to be included in the first LA group information 310 based on the first criterion and may be determined to be included in the second LA group information 320 based on the second criterion.
- the reference address may be changed or updated based on a swap timing and a swap offset.
- the reference address may be changed by the swap offset at the swap timing.
- the swap timing and the swap offset may be set based on change basis information.
- the change basis information may be information that is basis for the reference address changes/updates and related to an internal operation to be performed in the memory device 100 .
- the change basis information may include information about the size of data received from the host 300 .
- the swap timing may be set such that the reference address is changed each time a preset size of data is received from the host 300 . As the size of data received from the host 300 increases, the swap offset may increase.
- the change basis information may include information about the number of requests received from the host 300 .
- the swap timing may be set such that the reference address is changed each time a preset number of requests is received from the host 300 . As the number of requests received from the host 300 increases, the swap offset may increase.
- the change basis information may include timer information which is initialized when the reference address is updated. For example, the swap timing may be set such that the reference address is changed at each preset time.
- the LA transmitter 232 may transmit an LA received from the host 300 to the first FTL 210 or the second FTL 220 based on the address information.
- FIG. 8 illustrates an example of the address information manager 231 .
- the address information manager 231 may include a reference address changer 231 a and an address information changer 231 b.
- the reference address changer 231 a may change the reference address based on a swap timing and a swap offset.
- the reference address may be selected from among the LAs included in the host address group information 310 .
- the reference address may be LA 7 .
- the reference address changer 231 a may receive change basis information from the host 300 and set the swap timing and the swap offset based on the change basis information.
- the change basis information may be information related to an internal operation to be performed in the memory device 100 .
- the change basis information may include information associated with at least one of the following: the size of data received from the host 300 ; the number of requests received from the host 300 ; or timer information which is initialized each time the reference address is changed.
- the swap timing may be set such that the reference address is changed each time a preset size of data is received from the host 300 . As the size of data received from the host 300 increases, the swap offset may increase.
- the change basis information may also include information about the number of requests received from the host 300 .
- the swap timing may be set such that the reference address is changed each time a preset number of requests is received from the host 300 . As the number of requests received from the host 300 increases, the swap offset may increase.
- the change basis information may include timer information which is initialized when the reference address is changed.
- the swap timing may be set such that the reference address is changed at each preset time.
- the reference address changer 231 a may change the reference address by the swap offset.
- the reference address may be changed within the LAs included in the host address group information 310 .
- the swap offset may be n, where n is a natural number. For example, when the swap offset is 8, the value of the LA corresponding to the reference address may increase by 8.
- the address information changer 231 b may change address information stored in the address information storage 240 .
- the address information changer 231 b may change the criterion applied to the LAs included in the swap area, which is determined based on the reference address, and determine whether the LAs included in the swap area will be the first LA group or the second LA group according to the changed criterion.
- the address information may be changed such that the LA group the LAs is assigned to according to the second criterion can be different from the previous assignment of the LA group.
- the LA group assignment of the LAs included in the swap area becomes different from the existing group.
- LAs included in the first LA group information 320 and the second LA group information 330 are changed based on the reference address, operations may be evenly distributed among the first memory area 110 and the second memory area 120 even if the same LA is repeatedly received from the host 300 . In this way, the uniformity of wear leveling is achieved between the first memory area 110 and the second memory area 120 .
- FIG. 9 illustrates an example of an address management method based on an embodiment of the disclosed technology.
- the address information changer 231 b may change the first LA group information 320 and the second LA group information 330 based on the reference address.
- the reference address may be selected from among the LAs included in the host address group information 310 .
- the reference address may be LA 7 .
- the swap area may include LAs each having an address value equal to or lower than the reference address among the LAs included in the host address group.
- the address information changer 231 b may include the LAs included in the swap area in the first LA group and the second LA group based on the second criterion.
- LAs having 1 as the remainder when the LAs are divided by 2 among the LAs included in the swap area may be included in the first LA group.
- LA 1 , LA 3 , LA 5 , and LA 7 may be included in the first LA group.
- LAs having 0 as the remainder when the LAs are divided by 2 among the LAs included in the swap area may be included in the second LA group.
- LA 0 , LA 2 , LA 4 , and LA 6 may be included in the second LA group.
- the LAs included in the swap area may be included in the first LA group information 320 and the second LA group information 330 according to the second criterion rather than the first criterion.
- odd-numbered LAs among the LAs included in the swap area may be included in the first LA group information 320
- even-numbered LAs may be included in the second LA group information 330 .
- the LA transmitter 232 may transmit LA 2 , which is an even LA, to the second FTL 220 according to the second criterion.
- the LA transmitter 232 may transmit LA 8 , which is an even LA, to the first FTL 210 according to the first criterion.
- the reference address may be changed based on a swap timing and a swap offset.
- the reference address may be changed by the swap offset at the swap timing.
- the swap timing and the swap offset may be set based on change basis information.
- the change basis information may be information related to an internal operation to be performed in the memory device 100 .
- the change basis information may include information about the size of data received from the host 300 .
- the swap timing may be set such that the reference address is changed each time a preset size of data is received from the host 300 . As the size of data received from the host 300 increases, the swap offset may increase.
- the change basis information may include information about the number of requests received from the host 300 .
- the swap timing may be set such that the reference address is changed each time a preset number of requests is received from the host 300 . As the number of requests received from the host 300 increases, the swap offset may increase.
- the change basis information may include timer information which is initialized when the reference address is changed.
- the swap timing may be set such that the reference address is changed at each preset time.
- the reference address may be changed by the swap offset.
- the reference address may be changed within the LAs included in the host address group information 310 .
- the swap offset may be n (here, n is a natural number of 1 or more). For example, when the swap offset is 8, the value of the LA corresponding to the reference address may increase by 8. In detail, the reference address may increase from LA 7 to LA 15 .
- the first LA group information 320 illustrated in FIG. 9 may include both the even-numbered LAs and odd-numbered LAs.
- the second LA group information 330 illustrated in FIG. 9 may include both the even-numbered LAs and odd-numbered LAs.
- FIG. 10 illustrates an example of an address management method based on an embodiment of the disclosed technology.
- the reference address changer 231 a may change the reference address from LA 7 to LA 15 .
- the address information changer 231 b may change the first LA group information 320 and the second LA group information 330 based on the reference address.
- the address information changer 231 b may change the criterion to be applied to LA 8 to LA 15 , other than LAs the criterion of which has been already changed, among LAs each having an address value equal to or less than LA 15 , which is the reference address in this example. In other words, the address information changer 231 b may apply the second criterion, instead of the first criterion, to LA 8 to LA 15 .
- the address information changer 231 b may change the first LA group and the second LA group based on the second criterion. Hence, LA 9 , LA 11 , LA 13 , and LA 15 having 1 as the remainder when divided by 2 may be included in the first LA group. Hence, LA 8 , LA 10 , LA 12 , and LA 14 having 0 as the remainder when divided by 2 may be included in the second LA group.
- the address information changer 231 b may determine a swap area based on the reference addresses before and after the change.
- the swap area may include LAs that fall between a first reference address (before being changed) and a second reference address (after being changed).
- the swap area may include the logical addresses LA 8 to LA 15 .
- LAs that otherwise would have been transmitted to the first FTL 210 may be transmitted to the second FTL 220 . Therefore, even if LAs received from the host 300 are unevenly distributed between odd-numbered LAs and even-numbered LAs, variations in wear levels (E/W counts) between odd numbered logical addresses and even numbered logical addresses (between the E/W count of the first memory area 110 and the E/W count of the second memory area 120 ) may be minimized or reduced.
- E/W counts wear levels
- FIG. 11 illustrates an example of an address management method based on an embodiment of the disclosed technology.
- the reference address may be gradually changed to an LA having the largest value among the LAs included in the host address group information 310 .
- the reference address may be thereafter changed to LA 47 .
- the reference address may be sequentially changed to LA 7 , LA 15 , LA 23 , LA 31 , LA 39 , and LA 47 according to the swap timing.
- LA 16 to LA 47 may be included in the first LA group information 320 and the second LA group information 330 based on the second criterion according to the method described with reference to FIG. 10 .
- the reference address may return to LA 0 and increase again. A detailed method will be described with reference to FIG. 12 .
- FIG. 12 illustrates an example of an address information management method based on an embodiment of the disclosed technology.
- the reference address may become LA 7 .
- the reference address may increase again from LA 0 .
- a subsequent reference address may be LA 3 if the largest address value is 47, the current reference address is LA 45 , and the swap offset is 6.
- the E/W count of the first memory area 110 may become greater than the E/W count of the second memory area 120 because LAs received from the host 300 have more odd-numbered LAs than even-numbered LAs. Furthermore, if the E/W count of the first memory area 110 exceeds the threshold count, the second memory area 120 may not be used regardless of its own life cycle.
- Some embodiments of the disclosed technology can distribute the plurality of LAs included in the host address group information 310 evenly between the first and second memory areas, regardless of the distribution of odd-numbered LAs and the even-numbered LAs. In this way, the uniformity of wear leveling (E/W count) is achieved between the first memory area 110 and the second memory area 120 .
- FIG. 13 illustrates an example of a process of swapping data.
- a data swapper (not illustrated) may swap first data corresponding to a first LA and second data corresponding to a second LA.
- the first data may have been stored in a first memory area 110
- the second data may have been stored in a second memory area 120 .
- the second FTL 220 may receive the first LA
- the first FTL 210 may receive the second LA. Therefore, when the host 300 requests a read operation corresponding to the first LA to the memory controller 200 , the first data is required to move to the second memory area 120 so that the memory controller 200 can transmit the first data to the host 300 . Likewise, the second data is required to move to the first memory area 110 . Therefore, if the first LA and the second LA are swapped with each other, the first data and the second data may be swapped with each other.
- FIG. 14 illustrates an example of a logical address transmission method of a memory controller based on an embodiment of the disclosed technology.
- the memory controller 200 may receive an LA from the host 300 .
- a group of LAs capable of being received from the host 300 may correspond to the host LA group information 310 .
- the memory controller 200 may compare the LA received from the host 300 with the reference address.
- the reference address may be selected from among the LAs included in the host address group information 310 .
- the reference address may be changed based on a swap timing and a swap offset.
- the reference address may be changed by the swap offset at the swap timing.
- the swap timing and the swap offset may be set based on change basis information.
- the change basis information may be information related to an internal operation to be performed in the memory device 100 .
- the change basis information may include information about the size of data received from the host 300 .
- the swap timing may be set such that the reference address is changed each time a preset size of data is received from the host 300 .
- the change basis information may include information about the number of requests received from the host 300 .
- the swap timing may be set such that the reference address is changed each time a preset number of requests is received from the host 300 .
- the swap offset may increase.
- the change basis information may include timer information which is initialized when the reference address is changed.
- the swap timing may be set such that the reference address is changed at each preset time. If the LA received from the host 300 is greater than the reference address, the process may proceed to step S 1407 . If the LA received from the host 300 is equal to or less than the reference address, the process may proceed to step S 1207 .
- the LA manager 230 included in the memory controller 200 may transmit the received LA to the first FTL 210 or the second FTL 220 according to the first criterion.
- the first criterion may be a criterion according to which the LA is transmitted to the first FTL 210 if the LA is an even LA, and the LA is transmitted to the second FTL 220 if the LA is an odd LA.
- the LA manager 230 may transmit the received LA to the first FTL 210 or the second FTL 220 according to the second criterion.
- the second criterion may be a criterion according to which the LA is transmitted to the second FTL 220 if the LA is an even LA, and the LA is transmitted to the first FTL 210 if the LA is an odd LA.
- the second criterion may be used when the LA received from the host 300 is equal to or less than the reference address
- the first reference may be used when the LA received from the host 300 is greater than the reference address
- the second criterion may be used when the LA received from the host 300 is equal to or less than the reference address, and the first criterion may be used when the LA received from the host 300 is greater than the reference address.
- FIG. 15 showing an example of an address information management method of the memory controller based on an embodiment of the disclosed technology.
- the memory controller 200 may generate first LA group information 320 and second LA group information 330 based on the first criterion.
- the first LA group information 320 may be a group of LAs to be transmitted to the first FTL 210 .
- the second LA group information 330 may be a group of LAs to be transmitted to the second FTL 220 .
- the first criterion may be a criterion according to which even LAs are included in the first LA group information 320 , and odd LAs are included in the second LA group information 330 .
- the memory controller 200 may check whether the memory device 100 has reached its end of life (e.g., whether the memory device 100 has reached a predetermined maximum erase/write cycle count (end-of-life state).
- the end-of-life state may refer to a state in which data cannot be written to the memory device 100 .
- the end-of-life state may also refer to a state in which data cannot be read from the memory device 100 . If the memory device 100 is in the end-of-life state, the address information management may be finished. If the memory device 100 is not in the end-of-life state, the process may proceed to step S 1505 .
- the memory controller 200 may set a swap area based on the reference address.
- the reference address may be selected from among a plurality of LAs capable of being received from the host 300 .
- the reference address may be changed based on a swap timing and a swap offset.
- the swap timing and the swap offset may be set based on change basis information.
- the memory controller 200 may perform an operation of setting the swap area according to the method described with reference to FIGS. 9 to 12 .
- the memory controller 200 may change the first LA group information 320 and the second LA group information 330 such that LAs included in the swap area are included in the first LA group information 320 and the second LA group information 330 according to the second criterion.
- the first LA group information 320 and the second LA group information 330 may be changed such that even LAs included in the swap area are included in the second LA group information 330 and odd LAs included in the swap area are included in the first LA group information 320 .
- the access of the host 300 to the memory areas may be evenly distributed among different memory areas. Consequently, variations in wear levels (E/W counts) between odd numbered logical addresses and even numbered logical addresses (between the E/W count of the first memory area 110 and the E/W count of the second memory area 120 ) may be minimized or reduced.
- FIG. 16 is a block diagram illustrating an example of a memory card system 2000 that include a data storage device implemented based on an embodiment of the disclosed technology.
- the memory card system 2000 may include a memory controller 2100 , a memory device 2200 , and a connector 2300 .
- the memory controller 2100 is coupled to the memory device 2200 .
- the memory controller 2100 may access the memory device 2200 .
- the memory controller 2100 may control a read operation, a write operation, an erase operation, and a background operation of the memory device 2200 .
- the memory controller 2100 may provide an interface between the memory device 2200 and the host.
- the memory controller 2100 may perform firmware operations for controlling the memory device 2200 .
- the memory controller 2100 may include components such as a random access memory (RAM), a processing unit, a host interface, a memory interface, and an ECC circuit.
- RAM random access memory
- processing unit a processing unit
- host interface a host interface
- memory interface a memory interface
- ECC circuit an ECC circuit
- the memory controller 2100 may communicate with an external device through the connector 2300 .
- the memory controller 2100 may communicate with an external device (e.g., a host) based on a specific communication protocol.
- the memory controller 2100 may communicate with the external device through at least one of various communication protocols such as universal serial bus (USB), multimedia card (MMC), embedded MMC (eMMC), peripheral component interconnection (PCI), PCI-express (PCI-E), advanced technology attachment (ATA), serial-ATA (SATA), parallel-ATA (PATA), small computer system interface (SCSI), enhanced small disk interface (ESDI), integrated drive electronics (IDE), Firewire, universal flash storage (UFS), Wi-Fi, Bluetooth, and nonvolatile memory express (NVMe) protocols.
- the connector 2300 may be defined by at least one of the above-described various communication protocols.
- the memory device 2200 may be implemented as any of various nonvolatile memory devices, such as an electrically erasable and programmable ROM (EEPROM), a NAND flash memory, a NOR flash memory, a phase-change RAM (PRAM), a resistive RAM (ReRAM), a ferroelectric RAM (FRAM), and a spin-torque magnetic RAM (STT-MRAM).
- EEPROM electrically erasable and programmable ROM
- NAND flash memory a NAND flash memory
- NOR flash memory a phase-change RAM (PRAM), a resistive RAM (ReRAM), a ferroelectric RAM (FRAM), and a spin-torque magnetic RAM (STT-MRAM).
- PRAM phase-change RAM
- ReRAM resistive RAM
- FRAM ferroelectric RAM
- STT-MRAM spin-torque magnetic RAM
- the memory controller 2100 and the memory device 2200 may be integrated into a single semiconductor device to form a memory card.
- the memory controller 2100 and the memory device 2200 may be integrated into a single semiconductor device to form a memory card such as a personal computer memory card international association (PCMCIA), a compact flash card (CF), a smart media card (SM or SMC), a memory stick, a multimedia card (MMC, RS-MMC, or MMCmicro), a SD card (SD, miniSD, microSD, or SDHC), or a universal flash storage (UFS).
- PCMCIA personal computer memory card international association
- CF compact flash card
- SM or SMC smart media card
- MMC multimedia card
- MMCmicro multimedia card
- SD card SD, miniSD, microSD, or SDHC
- UFS universal flash storage
- FIG. 17 is a block diagram illustrating an example of a solid state drive (SSD) system 3000 that includes a data storage device implemented based on an embodiment of the disclosed technology.
- SSD solid state drive
- the SSD system 3000 may include a host 3100 and an SSD 3200 .
- the SSD 3200 may exchange signals SIG with the host 3100 through a signal connector 3001 and may receive power PWR through a power connector 3002 .
- the SSD 3200 may include an SSD controller 3210 , a plurality of flash memories 3221 to 322 n , an auxiliary power supply 3230 , and a buffer memory 3240 .
- the SSD controller 3210 may perform the function of the memory controller 200 , described above with reference to FIG. 1 .
- the SSD controller 3210 may control the plurality of flash memories 3221 to 322 n in response to the signals SIG received from the host 3100 .
- the signals SIG may be signals based on an interface between the host 3100 and the SSD 3200 .
- the signals SIG may be signals defined by at least one of various interfaces such as universal serial bus (USB), multimedia card (MMC), embedded MMC (eMMC), peripheral component interconnection (PCI), PCI-express (PCI-E), advanced technology attachment (ATA), serial-ATA (SATA), parallel-ATA (PATA), small computer system interface (SCSI), enhanced small disk interface (ESDI), integrated drive electronics (IDE), Firewire, universal flash storage (UFS), Wi-Fi, Bluetooth, and nonvolatile memory express (NVMe) interfaces.
- USB universal serial bus
- MMC multimedia card
- eMMC embedded MMC
- PCI-express PCI-express
- ATA advanced technology attachment
- serial-ATA serial-ATA
- PATA parallel-ATA
- SCSI
- the auxiliary power supply 3230 may be coupled to the host 3100 through the power connector 3002 .
- the auxiliary power supply 3230 may be supplied with power PWR from the host 3100 , and may be charged by the power PWR.
- the auxiliary power supply 3230 may supply the power of the SSD 3200 when the supply of power from the host 3100 is not smoothly performed.
- the auxiliary power supply 3230 may be positioned inside the SSD 3200 or positioned outside the SSD 3200 .
- the auxiliary power supply 3230 may be disposed in a main board and may supply auxiliary power to the SSD 3200 .
- the buffer memory 3240 functions as a buffer memory of the SSD 3200 .
- the buffer memory 3240 may temporarily store data received from the host 3100 or data received from the plurality of flash memories 3221 to 322 n or may temporarily store metadata (e.g., a mapping table) of the flash memories 3221 to 322 n .
- the buffer memory 3240 may include volatile memories such as DRAM, SDRAM, DDR SDRAM, LPDDR SDRAM, and GRAM or nonvolatile memories such as FRAM, ReRAM, STT-MRAM, and PRAM.
- FIG. 18 is a block diagram illustrating an example of a user system 4000 that includes a data storage device implemented based on an embodiment of the disclosed technology.
- the user system 4000 may include an application processor 4100 , a memory module 4200 , a network module 4300 , a storage module 4400 , and a user interface 4500 .
- the application processor 4100 may run components included in the user system 4000 , an operating system (OS) or a user program.
- the application processor 4100 may include controllers, interfaces, graphic engines, etc. for controlling the components included in the user system 4000 .
- the application processor 4100 may be provided as a system-on-chip (SoC).
- the memory module 4200 may function as a main memory, a working memory, a buffer memory, or a cache memory of the user system 4000 .
- the memory module 4200 may include a volatile RAM such as a DRAM, an SDRAM, a DDR SDRAM, a DDR2 SDRAM, a DDR3 SDRAM, an LPDDR SDRAM, and an LPDDR3 SDRAM, or a nonvolatile RAM such as a PRAM, a ReRAM, an MRAM, and an FRAM.
- the application processor 4100 and the memory module 4200 may be packaged based on package-on-package (POP) and may then be provided as a single semiconductor package.
- POP package-on-package
- the network module 4300 may communicate with external devices.
- the network module 4300 may support wireless communication, such as code division multiple access (CDMA), global system for mobile communication (GSM), wideband CDMA (WCDMA), CDMA-2000, time division multiple access (TDMA), long term evolution (LTE), WiMAX, WLAN, UWB, Bluetooth, or Wi-Fi communication.
- CDMA code division multiple access
- GSM global system for mobile communication
- WCDMA wideband CDMA
- CDMA-2000 CDMA-2000
- TDMA time division multiple access
- LTE long term evolution
- WiMAX Wireless Fidelity
- the storage module 4400 may store data therein.
- the storage module 4400 may store data received from the application processor 4100 .
- the storage module 4400 may transmit the data stored in the storage module 4400 to the application processor 4100 .
- the storage module 4400 may be implemented as a nonvolatile semiconductor memory device, such as a phase-change RAM (PRAM), a magnetic RAM (MRAM), a resistive RAM (RRAM), a NAND flash memory, a NOR flash memory, or a NAND flash memory having a three-dimensional (3D) structure.
- the storage module 4400 may be provided as a removable storage medium (i.e., removable drive), such as a memory card or an external drive of the user system 4000 .
- the storage module 4400 may include a plurality of nonvolatile memory devices, and each of the plurality of nonvolatile memory devices may be operated in the same manner as that of the memory device 100 described above with reference to FIGS. 10 to 13 .
- the storage module 4400 may be operated in the same manner as that of the data storage device 50 described above with reference to FIG. 1 .
- the user interface 4500 may include interfaces for inputting data or instructions to the application processor 4100 or outputting data to an external device.
- the user interface 4500 may include user input interfaces such as a keyboard, a keypad, a button, a touch panel, a touch screen, a touch pad, a touch ball, a camera, a microphone, a gyroscope sensor, a vibration sensor, and a piezoelectric device.
- the user interface 4500 may further include user output interfaces such as an a Liquid Crystal Display (LCD), an Organic Light Emitting Diode (OLED) display device, an Active Matrix OLED (AMOLED) display device, an LED, a speaker, a monitor, and so on.
- LCD Liquid Crystal Display
- OLED Organic Light Emitting Diode
- AMOLED Active Matrix OLED
- a memory device and a method of operating the memory device based on an embodiment of the disclosed technology may provide improved wear-leveling performance.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
Claims (21)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020200059353A KR20210142477A (en) | 2020-05-18 | 2020-05-18 | Memory controller and operating method thereof |
| KR10-2020-0059353 | 2020-05-18 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20210357318A1 US20210357318A1 (en) | 2021-11-18 |
| US11645197B2 true US11645197B2 (en) | 2023-05-09 |
Family
ID=78512342
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/091,101 Active 2041-03-31 US11645197B2 (en) | 2020-05-18 | 2020-11-06 | Memory controller and method of operating the same |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11645197B2 (en) |
| KR (1) | KR20210142477A (en) |
| CN (1) | CN113689898A (en) |
Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140223089A1 (en) * | 2011-09-23 | 2014-08-07 | Industry-University Cooperation Foundation Hanyang University | Method and device for storing data in a flash memory using address mapping for supporting various block sizes |
| KR20160150451A (en) | 2015-06-22 | 2016-12-30 | 삼성전자주식회사 | Data storage device and data processing system having the same |
| US20170235488A1 (en) * | 2016-02-11 | 2017-08-17 | SK Hynix Inc. | Window based mapping |
| US20170293553A1 (en) * | 2016-04-06 | 2017-10-12 | Sandisk Technologies Inc. | Memory erase management |
| US20190087327A1 (en) * | 2017-09-21 | 2019-03-21 | Toshiba Memory Corporation | Memory system and method for controlling nonvolatile memory |
| US20200142744A1 (en) * | 2018-11-06 | 2020-05-07 | SK Hynix Inc. | Logical address distribution in multicore memory system |
| KR20200095103A (en) | 2019-01-31 | 2020-08-10 | 에스케이하이닉스 주식회사 | Data storage device and operating method thereof |
| US10747679B1 (en) * | 2017-12-11 | 2020-08-18 | Amazon Technologies, Inc. | Indexing a memory region |
| KR20210115954A (en) | 2020-03-17 | 2021-09-27 | 에스케이하이닉스 주식회사 | Controller and memory system |
| US11138126B2 (en) * | 2018-07-23 | 2021-10-05 | Arm Limited | Testing hierarchical address translation with context switching and overwritten table definition data |
-
2020
- 2020-05-18 KR KR1020200059353A patent/KR20210142477A/en active Pending
- 2020-11-06 US US17/091,101 patent/US11645197B2/en active Active
-
2021
- 2021-02-24 CN CN202110207024.4A patent/CN113689898A/en not_active Withdrawn
Patent Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140223089A1 (en) * | 2011-09-23 | 2014-08-07 | Industry-University Cooperation Foundation Hanyang University | Method and device for storing data in a flash memory using address mapping for supporting various block sizes |
| KR20160150451A (en) | 2015-06-22 | 2016-12-30 | 삼성전자주식회사 | Data storage device and data processing system having the same |
| US20170235488A1 (en) * | 2016-02-11 | 2017-08-17 | SK Hynix Inc. | Window based mapping |
| US20170293553A1 (en) * | 2016-04-06 | 2017-10-12 | Sandisk Technologies Inc. | Memory erase management |
| US20190087327A1 (en) * | 2017-09-21 | 2019-03-21 | Toshiba Memory Corporation | Memory system and method for controlling nonvolatile memory |
| US10747679B1 (en) * | 2017-12-11 | 2020-08-18 | Amazon Technologies, Inc. | Indexing a memory region |
| US11138126B2 (en) * | 2018-07-23 | 2021-10-05 | Arm Limited | Testing hierarchical address translation with context switching and overwritten table definition data |
| US20200142744A1 (en) * | 2018-11-06 | 2020-05-07 | SK Hynix Inc. | Logical address distribution in multicore memory system |
| KR20200095103A (en) | 2019-01-31 | 2020-08-10 | 에스케이하이닉스 주식회사 | Data storage device and operating method thereof |
| KR20210115954A (en) | 2020-03-17 | 2021-09-27 | 에스케이하이닉스 주식회사 | Controller and memory system |
Also Published As
| Publication number | Publication date |
|---|---|
| US20210357318A1 (en) | 2021-11-18 |
| CN113689898A (en) | 2021-11-23 |
| KR20210142477A (en) | 2021-11-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11194736B2 (en) | Memory controller having improved map data access performance and method of operating the same | |
| US12189526B2 (en) | Memory system performing garbage collection operation by exchanging information related to garbage collection with host and method of operating the memory system | |
| US11726706B2 (en) | Storage device and method of operating the same | |
| US10922223B2 (en) | Storage device, computing system including storage device, and method of operating the same | |
| US11467768B2 (en) | Data storage device for storing boot partition data read from memory device in buffer memory and method of operating the same | |
| US11543986B2 (en) | Electronic system including host, memory controller and memory device and method of operating the same | |
| US11036632B2 (en) | Memory controller and operating method thereof | |
| US11360707B2 (en) | Memory controller for replacing bad blocks with reserved blocks and operating method thereof | |
| US11734178B2 (en) | Storage device performing cache read operation using page buffer and operating method thereof | |
| US11360886B2 (en) | Storage device and operating method thereof | |
| US11249849B2 (en) | Memory controller and method of operating the same | |
| US20220100419A1 (en) | Storage device and method of operating the same | |
| US11599275B2 (en) | Memory controller for controlling power loss recovery and method of operating the same | |
| US20240311041A1 (en) | Memory controller performing booting operation and method of operating the same | |
| US11841795B2 (en) | Storage device for setting a flag in a mapping table according to a sequence number and operating method thereof | |
| US20230040560A1 (en) | Memory device and method of operating the memory device | |
| US11836370B2 (en) | Storage device and operating method thereof | |
| US11726694B2 (en) | Storage device and operating method thereof | |
| US11500768B2 (en) | Storage device performing garbage collection and method of operating the same | |
| US11748265B2 (en) | Memory controller and method of operating the same | |
| US11960733B2 (en) | Memory controller and method of operating the same | |
| US11645197B2 (en) | Memory controller and method of operating the same | |
| US20240094945A1 (en) | Memory controller and memory system including the same | |
| US12141471B2 (en) | Storage device and operating method utilizing a buffer when a write failure occurs |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: SK HYNIX INC., KOREA, REPUBLIC OF Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SEO, DONG YOUNG;REEL/FRAME:054294/0706 Effective date: 20201012 |
|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| AS | Assignment |
Owner name: MIMIRIP LLC, TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SK HYNIX INC.;REEL/FRAME:067335/0246 Effective date: 20240311 Owner name: MIMIRIP LLC, TEXAS Free format text: ASSIGNMENT OF ASSIGNOR'S INTEREST;ASSIGNOR:SK HYNIX INC.;REEL/FRAME:067335/0246 Effective date: 20240311 |