CN111752856A - 存储器控制器及其操作方法 - Google Patents
存储器控制器及其操作方法 Download PDFInfo
- Publication number
- CN111752856A CN111752856A CN201911037905.5A CN201911037905A CN111752856A CN 111752856 A CN111752856 A CN 111752856A CN 201911037905 A CN201911037905 A CN 201911037905A CN 111752856 A CN111752856 A CN 111752856A
- Authority
- CN
- China
- Prior art keywords
- memory
- blocks
- garbage collection
- bad
- block
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/88—Masking faults in memories by using spares or by reconfiguring with partially good memories
- G11C29/883—Masking faults in memories by using spares or by reconfiguring with partially good memories using a single defective memory device with reduced capacity, e.g. half capacity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
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)
- Read Only Memory (AREA)
Abstract
本申请涉及存储器控制器及其操作方法。存储器控制器控制包括存储器块的存储器器件。存储器控制器包括:垃圾收集状态确定器,其与主机设备通信,并且被配置为从主机设备接收垃圾收集状态请求并确定存储器器件是否处于需要垃圾收集的状态;以及块信息存储单元,其与垃圾收集状态确定器通信,并且被配置为从存储器器件接收坏块生成信息并存储块信息,所述坏块生成信息包括存储器器件中所包括的不能存储数据的坏块的数量,所述块信息包括存储器块的总数、坏块的数量和在存储器器件中包括的被分配用于垃圾收集的空闲块的数量,并且其中,垃圾收集状态确定器基于坏块的数量和空闲块的数量确定存储器器件是否处于需要垃圾收集的状态。
Description
相关申请的交叉引用
本专利文件要求于2019年3月27日提交的韩国专利申请10-2019-0035041的优先权,其全部内容通过引用并入本文。
技术领域
示例性实施例总体上涉及电子器件,并且更具体地涉及存储器控制器及其操作方法。
背景技术
存储器件是被配置为在诸如计算机、智能电话或智能平板的主机设备的控制下存储数据的器件。所述存储器件包括被配置为将数据存储在磁盘上的器件,如硬盘驱动器(HDD),以及被配置为将数据存储在半导体存储器即非易失性存储器上的器件,如固态驱动器(SSD)或存储器卡。
存储器件可以包括被配置为存储数据的存储器器件和被配置为控制该存储器器件的存储器控制器。存储器器件分为易失性存储器器件和非易失性存储器器件。非易失性存储器器件包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除和可编程ROM(EEPROM)、闪存存储器、相变RAM(PRAM)、磁RAM(MRAM)、电阻RAM(RRAM)、铁电RAM(FRAM)等。
发明内容
实施例提供了存储器控制器和该存储器控制器的操作方法,该存储器控制器被配置为基于存储器器件的状态来执行“垃圾收集”操作。
根据本公开的一个方面,提供一种存储器控制器,该存储器控制器用于控制包括存储器块的存储器器件,该存储器控制器包括:垃圾收集状态确定器,垃圾收集状态确定器与主机设备通信,并且被配置为从主机设备接收垃圾收集状态请求,并确定存储器器件是否处于需要垃圾收集的状态;以及块信息存储单元,块信息存储单元与垃圾收集状态确定器通信,并且被配置为从所述存储器器件接收坏块生成信息并存储块信息,坏块生成信息包括在存储器器件中包括的不能存储数据的坏块的数量,块信息包括存储器块的总数、坏块的数量和在存储器器件中包括的被分配用于垃圾收集的空闲块的数量,并且其中,垃圾收集状态确定器基于坏块的数量和空闲块的数量确定存储器器件是否处于需要垃圾收集的状态。
根据本公开的另一方面,提供一种用于操作存储器控制器的方法,该存储器控制器与包括存储器块的存储器器件通信,所述方法包括:向存储器器件发送对坏块生成信息的请求,坏块生成信息包括坏块的数量,坏块表示存储器器件中的不能存储数据的存储器块;从存储器器件接收坏块生成信息;基于坏块生成信息来存储块信息,块信息包括存储器块的总数、坏块的数量和空闲块的数量,空闲块表示存储器器件中的可用于垃圾收集的存储器块;以及基于块信息,确定存储器器件是否处于需要垃圾收集的状态;并且其中,所述确定还包括确定空闲块的数量是否等于或大于存储器块的总数与坏块的数量之差。
附图说明
现在将在下文中参考附图描述示例实施例;然而,所公开的技术可以以不同的形式体现,并且不应被解释为限于本文阐述的实施例。
图1是示出基于所公开技术的一个实施方式的存储器件的框图示例。
图2是示出在图1中所示的存储器器件的结构的框图示例。
图3是示出在图2中所示的存储器单元阵列的实施例的示例图。
图4是示出在图3中所示的存储器块中的任意一个存储器块的电路图示例。
图5是示出在图3中所示的存储器块中的一个存储器块的另一实施例的电路图示例。
图6是示出在图1中所示的存储器控制器的配置的示例图。
图7A示出在基于所公开技术的一个实施方式的存储器器件中包括的存储器块的示例图。
图7B示出基于所公开技术的一个实施方式的存储在块信息存储单元中的块信息的示例图。
图8A示出基于所公开技术的一个实施方式的包括在存储器器件中的存储器块的示例图。
图8B示出基于所公开技术的一个实施方式的存储在块信息存储单元中的块信息的示例图。
图9是示出存储在块信息存储单元中的坏块表的示例图。
图10A示出基于所公开技术的一个实施方式的包括在存储器器件中的存储器块的示例图。
图10B示出基于所公开技术的一个实施方式的存储在块信息存储单元中的块信息的示例图。
图11是示出根据所公开技术的实施例的存储器控制器的操作的示例图。
图12是示出根据所公开技术的实施例的主机的操作的示例图。
图13是示出根据所公开技术的实施例的存储器控制器的操作的示例图。
图14是示出根据所公开技术的实施例的存储器控制器的操作的示例图。
图15是示出在图1中所示的存储器控制器的另一实施例的示例图。
图16是示出向其应用了根据所公开技术的实施例的存储器件的存储器卡系统的框图示例。
图17是示出向其应用了根据所公开技术的实施例的存储器件的固态驱动器(SSD)系统的框图示例。
图18是示出向其应用了根据所公开技术的实施例的存储器件的用户系统的框图示例。
具体实施方式
本文所公开的特定结构或功能描述仅是说明性的,以用于描述根据所公开技术概念的实施例。根据所公开技术概念的实施例可以以各种形式实现,并且不能被解释为限于这里阐述的实施例。
可以以各种方式修改根据所公开技术的实施例。因此,在附图中示出了实施例,并且旨在本文详细描述实施例。然而,根据所公开技术概念的实施例不被解释为限于指定的公开内容,而是包括不脱离所公开技术的精神和技术范围的所有改变、等同或替代。
在下文中,将参照附图详细描述所公开技术的示例性实施例。
图1是示出存储器件的框图示例。
参照图1,存储器件50可以包括存储器器件100和存储器控制器200。
存储器件50可以是用于在主机300的控制下存储数据的器件,主机例如移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视、平板PC或车载信息娱乐。
存储器件50可以是在根据作为与主机300的通信方案的主机接口的控制下存储数据的各种类型的存储器件中的任何一种。在一些实施方式中,主机300可以包括主机设备,主机设备包括主机接口。在一些实施方式中,可以用多种类型的存储器件中的任何一种来实现存储器件50,诸如固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、减小尺寸MMC(RS-MMC)、微型MMC(micro-MMC)、安全数字(SD)卡、迷你SD卡、微型SD卡、通用串行总线(USB)存储器件、通用闪存存储(UFS)器件、紧凑型闪存(CF)卡、智能媒体卡(SMC)、存储棒等。
存储器件50可以是或具有各种封装类型中的任何一种。例如,存储器件50可以被制造为各种类型的封装类型中的任何一种,如封装上封装(POP)、封装内系统(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶片级制造封装(WFP)或晶片级堆叠封装(WSP)。
存储器控制器200可以控制存储器件50的整体操作。
当对存储器件50供电时,存储器控制器200可以执行固件(FW)。当存储器器件100是闪存存储器器件时,存储器控制器200可以执行用于控制主机300与存储器器件100之间通信的FW,如闪存转换层(FTL)。
存储器控制器200可以包括垃圾收集状态确定器210。这里使用的术语“垃圾收集”可以指存储器管理的一种形式,其中垃圾收集器试图回收被不再使用的对象占用的(垃圾)存储器。存储器控制器200可以执行用于垃圾收集(GC)的操作,而不需要来自主机300的任何请求。在所公开的技术中,垃圾收集状态确定器210可以响应于来自主机300的请求来确定存储器器件100是否处于需要垃圾收集的状态。存储器控制器200可以基于垃圾收集状态确定器210的确定结果来执行垃圾收集。在所公开的技术的一些实施方式中,垃圾收集状态确定器210可以基于从块信息存储单元220接收的块信息BLK_INF来确定存储器器件100是否处于需要垃圾收集的状态。
垃圾收集状态确定器210可以与垃圾收集状态确定器210通信,并且输出响应于来自主机300的请求的标志信息FLAG_INF。因此,垃圾收集状态确定器210可以向主机300输出表示存储器器件100是否处于需要垃圾收集的状态的标志信息FLAG_INF。标志信息FLAG_INF可以包括标志(FLAG),该标志(FLAG)表示存储器器件100是否处于需要垃圾收集的状态。主机300可以接收标志信息FLAG_INF,并且基于标志(标志信息FLAG_INF中包括的FLAG)来确定存储器器件100是否处于需要垃圾收集的状态。
在实施例中,当标志信息FLAG_INF中包括的标志(FLAG)为0时,存储器器件100可以处于不需要垃圾收集的状态。相反,当包括在标志信息FLAG_INF中的标志(FLAG)为1时,存储器器件100可以处于需要垃圾收集的状态。在一些实施方式中,标志(FLAG)在需要垃圾收集时指示0,并且在不需要垃圾收集时指示1。
主机300可以基于从垃圾收集状态确定器210接收到的标志信息FLAG_INF,输出用于执行垃圾收集的垃圾收集请求GC_REQ。
存储器控制器200可以包括块信息存储单元220。块信息存储单元220可以存储关于包括在存储器器件100中的多个存储器块的信息。关于多个存储器块的信息可以包括至少关于总块数、保留块的数量、空闲块的数量、开放块的数量或坏块的数数量的信息。坏块的数量是通过累加运行时坏块RTBB的数量和制造商坏块MBB的数量而获得的。运行时坏块RTBB是指基于运行时错误被确定为不可靠的块,而制造商坏块MBB是指基于制造错误被确定为不可靠的块。运行时坏块RTBB和制造商坏块MBB可以不被用于存储数据。
在实施例中,保留块的数量可以指包括在存储器器件100中但不被用于存储数据的存储器块的数量。某些保留块可以被设置为空闲块。空闲块可以是或可以包括保留块中的被分配用于执行垃圾收集的存储器块。空闲块可以是或可以包括当存储器控制器200执行垃圾收集时有效页面被复制到的存储器块。存储在块信息存储单元220中的信息可以包括除上述信息以外的关于多个存储器块的其他各种信息。
块信息存储单元220可向存储器器件100请求坏块生成信息BBG_INF。坏块生成信息BBG_INF可以包括关于包括在存储器器件100中并且被视为坏块的一个或多个存储器块的信息。响应于该请求,块信息存储单元220可以从存储器器件接收坏块生成信息BBG_INF。块信息存储单元220可以基于坏块生成信息BBG_INF来更新坏块的数量。块信息存储单元220可以存储更新的坏块的数量。
块信息存储单元220可以输出存储在其中的块信息BLK_INF。块信息BLK_INF可以是或可以包括关于多个存储器块的信息。块信息BLK_INF可以包括用于设置用于执行垃圾收集的阈值的信息。块信息存储单元220可以将块信息BLK_INF输出到垃圾收集状态确定器210。
存储器控制器200可以包括垃圾收集执行单元230。垃圾收集执行单元230可以从主机300接收垃圾收集请求GC_REQ。垃圾收集执行单元230可以基于从主机300接收到的垃圾收集请求GC_REQ执行用于执行垃圾收集的操作。用于执行垃圾收集的操作可以包括编程操作和擦除操作。垃圾收集执行单元230可以向存储器器件100提供命令、地址和数据以执行垃圾收集。
存储器器件100可以与存储器控制器200通信并存储数据。存储器器件100在存储器控制器200的控制下操作。存储器器件100可以包括存储器单元阵列,该存储器单元阵列包括用于存储数据的多个存储器单元。存储器单元阵列可以包括多个存储器块。每个存储器块可以包括多个存储器单元。一个存储器块可以包括多个页面。在实施例中,页面可以是用于将数据存储在存储器器件100中或读取存储在存储器器件100中的数据的单元。在一些实施方式中,存储器块可以是用于擦除数据的单元。
在实施例中,存储器器件100可以是或可以包括双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SRAM、低功耗DDR(LPDDR)、存储器总线(Rambus)动态随机存取存储器(RDRAM),NAND闪存存储器、垂直NAND闪存存储器、NOR闪存存储器、电阻随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、自旋转移扭矩随机存取存储器(STT-RAM)等。在本说明书中,为了便于描述并且仅作为示例目的,假设并描述了存储器器件100是NAND闪存存储器的情况。
在实施例中,可以以三维阵列结构来实现存储器器件100。所公开的技术不仅可以应用于其中电荷存储层配置有浮栅(FG)的闪存存储器,而且还可以应用于其中电荷存储层配置有绝缘层的电荷陷阱闪存(CTF)。
在实施例中,存储器器件100中包括的每个存储器单元可以被配置为用于存储一个数据比特的单级单元(SLC)。在一些实施方式中,存储器器件100中包括的每个存储器单元可以被配置为用于存储两个数据比特的多级单元(MLC)、用于存储三个数据比特的三级单元(TLC)或用于存储四个数据比特的四级单元(QLC)。
存储器器件100被配置为从存储器控制器200接收命令和地址,并访问存储器单元阵列中的由地址选择的区域。因此,存储器器件100可以在由地址选择的区域上执行与命令相对应的操作。例如,存储器器件100可以执行写入(编程)操作、读取操作和擦除操作。在编程操作中,存储器器件100可以在由地址选择的区域中对数据进行编程。在读取操作中,存储器器件100可以从由地址选择的区域读取数据。在擦除操作中,存储器器件100可以擦除在由地址选择的区域中存储的数据。
存储器器件100可以在存储器控制器200的控制下通过使用操作电压来执行编程操作或擦除操作。操作电压可以被预先设置。
在实施例中,存储器控制器200可以从主机300接收数据和逻辑块地址(LBA),并且将LBA转换成物理块地址(PBA),该PBA表示包括在存储器器件100中的存储器单元的地址,在该存储器单元中要存储数据。在一些实施方式中,存储器控制器200可以在缓冲器存储器220中存储建立LBA和PBA之间的映射关系的逻辑-物理地址映射信息。
存储器控制器200可以响应于来自主机300的请求来控制存储器器件100,以执行编程操作、读取操作、擦除操作等。在编程操作中,存储器控制器200可以将编程命令、PBA和数据提供给存储器器件100。在读取操作中,存储器控制器200可以将读取命令和PBA提供给存储器器件100。在擦除操作中,存储器控制器200可以将擦除命令和PBA提供到存储器器件100。
在实施例中,存储器控制器200可以在没有来自主机300的任何请求的情况下自主地生成程序命令、地址和数据,并且将程序命令、地址和数据发送到存储器器件100。例如,存储器控制器200可以将命令、地址和数据提供给存储器器件100以执行后台操作,如用于耗损均衡的程序操作和用于垃圾回收的程序操作。
在实施例中,存储器控制器200可以控制至少两个存储器器件100。存储器控制器200可以根据交织方案来控制存储器器件,从而提高操作性能。
主机300可以使用各种通信方式中的至少一种与存储器件50通信,诸如通用串行总线(USB)、串行AT附连(SATA)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、火线、外围组件互连(PCI)、PCI快速(PCIe)、非易失性存储器快速(NVMe)、通用闪存存储(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、带寄存器(registered)的DIMM(RDIMM)或低负载DIMM(LRDIMM)。
图2是示出在图1中所示的存储器器件的结构的框图示例。
参照图2,存储器器件100包括存储器单元阵列110和外围电路120,外围电路120包括控制逻辑125。
存储器单元阵列110可以包括多个存储器块BLK1至BLKz。多个存储器块BLK1至BLKz通过行线RL耦合至地址解码器121,并且通过位线BL1至BLm耦合至读取/写入电路123。多个存储器块BLK1至BLKz中的每一个包括多个存储器单元。在实施例中,多个存储器单元是非易失性存储器单元。
包括在存储器单元阵列中的多个存储器单元可以基于其使用被划分为多个块。可以将系统信息存储在多个块中,系统信息包括控制存储器器件100所需的各种设置信息。
第一存储器块BLK1至第z存储器块BLKz中的每一个包括多个单元串。第一单元串至第m单元串分别耦合至第一位线BL1至第m位线BLm。第一单元串至第m单元串中的每一个包括漏极选择晶体管、串联耦合的多个存储器单元以及源极选择晶体管。漏极选择晶体管耦合到漏极选择线。第一存储器单元至第n存储器单元耦合至第一字线至第n字线。源极选择晶体管耦合到源极选择线。漏极选择晶体管的漏极侧耦合到对应的位线。第一单元串至第m单元串的漏极选择晶体管分别耦合至第一位线BL1至第m位线BLm。源极选择晶体管的源极侧耦合到公共源极线。在实施例中,公共源极线可以共同耦合到第一存储器块BLK1至第z存储器块BLKz。在行线RL中包括漏极选择线DSL、第一字线至第n字线以及源极选择线。漏极选择线DSL、第一字线至第n字线和源极选择线由地址解码器121控制。公共源极线由控制逻辑125控制。第一位线BL1至第m位线BLm由读取/写入电路123控制。
外围电路120包括地址解码器121、电压生成器122、读取/写入电路123、数据输入/输出电路124和控制逻辑125。
地址解码器121通过行线RL耦合到存储器单元阵列110。地址解码器121被配置为在控制逻辑125的控制下操作。地址解码器121通过控制逻辑125接收地址ADDR。
在实施例中,以页面为单位执行存储器器件100的编程操作和读取操作。
在编程操作和读取操作中,由控制逻辑125接收的地址ADDR可以包括块地址和行地址。地址解码器121被配置为对接收到的地址ADDR中的块地址进行解码。地址解码器121根据解码的块地址在存储器块BLK1至BLKz中选择一个存储器块。
地址解码器121被配置为对接收到的地址ADDR中的行地址进行解码。地址解码器121通过根据解码的行地址将从电压生成器122提供的电压施加到行线RL,来选择所选择的存储器块的一条字线。
在擦除操作中,地址ADDR包括块地址。地址解码器121对块地址进行解码,并根据解码的块地址来选择一个存储器块。可以在该一个存储器块的全部或一部分上执行擦除操作。
在部分擦除操作中,地址ADDR可以包括块地址和行地址。地址解码器121根据块地址在存储器块BLK1至BLKz中选择一个存储器块。
地址解码器121被配置为对接收到的地址ADDR中的行地址进行解码。地址解码器121通过根据解码的行地址将从电压生成器122提供的电压施加到行线RL,来选择所选择的存储器块的至少一条字线。
在实施例中,地址解码器121可以包括块解码器、字线解码器、地址缓冲器等。
电压生成器122使用被供给到存储器器件100的外部电源电压来生成多个电压。电压生成器122在控制逻辑125的控制下操作。
在实施例中,电压生成器122可以通过调节外部电源电压来生成内部电源电压。由电压生成器122生成的内部电源电压被用作存储器器件100的操作电压。
在实施例中,电压生成器122可使用外部电源电压或内部电源电压来生成多个电压。
例如,电压生成器122可以包括用于接收内部电源电压的多个泵浦电容器,并且可以在控制逻辑130的控制下通过选择性地激活多个泵浦电容器来生成多个电压。生成的多个电压被施加到由地址解码器121选择的字线。
在编程操作中,电压生成器122可以生成高压编程脉冲和低于编程脉冲的通过(pass)脉冲。在读取操作中,电压生成器122可生成读取电压和高于读取电压的通过电压。在擦除操作中,电压生成器122可以生成擦除电压。
读取/写入电路123包括第一页面缓冲器PB1至第m页面缓冲器PBm。第一页面缓冲器PB1至第m页面缓冲器PBm分别通过第一位线BL1至第m位线BLm耦合到存储器单元阵列110。第一页面缓冲器PB1至第m页面缓冲器PBm在控制逻辑125的控制下操作。
第一页面缓冲器PB1至第m页面缓冲器PBm与数据输入/输出电路124进行数据通信。在编程操作中,第一页面缓冲器PB1至第m页面缓冲器PBm通过数据输入/输出电路124和数据线DL接收要存储的数据DATA。
在编程操作中,当将编程脉冲施加到所选择的字线时,第一页面缓冲器PB1至第m页面缓冲器PBm可以通过位线BL1至BLm将通过数据输入/输出电路124接收的数据DATA传送到所选择的存储器单元。根据传送的数据DATA对所选择的页面的存储器单元进行编程。与被施加有编程允许电压(例如,接地电压)的位线耦合的存储器单元可以具有增加的阈值电压。可以维持与被施加有编程禁止电压(例如,电源电压)的位线耦合的存储器单元的阈值电压。在编程验证操作中,第一页面缓冲器PB1至第m页面缓冲器PBm通过位线BL1至BLm从所选择的存储器单元读取页面数据。
在读取操作中,读取/写入电路123通过位线BL从所选择的页面的存储器单元读取数据DATA,并将读取的数据DATA输出到数据输入/输出电路124。在擦除操作中,读取/写入电路123可以使位线BL浮置。
在实施例中,读取/写入电路123可以包括列选择电路。
数据输入/输出电路124通过数据线DL耦合到第一页面缓冲器PB1至第m页面缓冲器PBm。数据输入/输出电路124在控制逻辑125的控制下操作。在编程操作中,数据输入/输出电路124从外部控制器(未示出)接收要存储的数据DATA。
控制逻辑125耦合到地址解码器121、电压生成器122,读取/写入电路123和数据输入/输出电路124。控制逻辑125可以控制存储器器件100的整体操作。控制逻辑125接收命令CMD和地址ADDR。控制逻辑125响应于命令CMD来控制地址解码器121、电压生成器122、读取/写入电路123和数据输入/输出电路124。
图3是示出在图2中所示的存储器单元阵列的实施例的示例图。
参照图3,存储器单元阵列110可以包括多个存储器块BLK1至BLKz。每个存储器块可以具有三维结构。每个存储器块可以包括堆叠在衬底(未示出)上的多个存储器单元。多个存储器单元可以沿着+X、+Y和+Z方向布置。将参照图4和图5更详细地描述每个存储器块的结构。
图4是示出在图3中所示的存储器块BLK1至BLKz中的任意一个存储器块BLKa的电路图示例。
参照图4,存储器块BLKa可以包括多个单元串CS11至CS1m和CS21至CS2m。在实施例中,多个单元串CS11至CS1m和CS21至CS2m中的每个都可以形成为“U”形。在存储器块BLKa中,m个单元串沿行方向(即,+X方向)布置。图4示出了沿列方向(即,+Y方向)布置的两个单元串。然而,这是为了便于描述,并且将理解,可以在列方向上布置三个单元串。
多个单元串CS11至CS1m和CS21至CS2m中的每个都可以包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn、管道(pipe)晶体管PT和至少一个漏极选择晶体管DST。
选择晶体管SST和DST以及存储器单元MC1至MCn可以具有彼此相似的结构。在实施例中,选择晶体管SST和DST以及存储器单元MC1至MCn中的每个都可以包括沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层。在实施例中,可以在每个单元串中提供用于提供沟道层的柱。在实施例中,可以在每个单元串中提供用于提供沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层中的至少一个的柱。
每个单元串的源极选择晶体管SST耦合在公共源极线CSL与存储器单元MC1至MCp之间。
在实施例中,布置在同一行上的单元串的源极选择晶体管耦合到在行方向上延伸的源极选择线,并且布置在不同行上的单元串的源极选择晶体管耦合到不同的源极选择线。在图4中,第一行上的单元串CS11至CS1m的源极选择晶体管耦合至第一源极选择线SSL1。第二行上的单元串CS21至CS2m的源极选择晶体管耦合到第二源极选择线SSL2。
在另一实施例中,单元串CS11至CS1m和CS21至CS2m的源极选择晶体管可以共同耦合至一条源极选择线。
每个单元串的第一存储器单元MC1至第n存储器单元MCn耦合在源极选择晶体管SST和漏极选择晶体管DST之间。
第一存储器单元MC1至第n存储器单元MCn可以被划分为第一存储器单元MC1至第p存储器单元MCp以及第(p+1)存储器单元MCp+1至第n存储器单元MCn。第一存储器单元MC1至第p存储器单元MCp在+Z方向的相反方向上顺序布置,并且串联耦合在源极选择晶体管SST和管道晶体管PT之间。第(p+1)存储器单元MCp+1至第n存储器单元MCn在+Z方向上顺序布置,并且串联耦合在管道晶体管PT和漏极选择晶体管DST之间。第一存储器单元MC1至第p存储器单元MCp和第(p+1)存储器单元MCp+1至第n存储器单元MCn通过管道晶体管PT耦合。每个单元串的第一存储器单元MC1至第n存储器单元MCn的栅极电极分别耦合至第一字线WL1至第n字线WLn。
每个单元串的管道晶体管PT的栅极耦合至管道线PL。
每个单元串的漏极选择晶体管DST耦合在对应的位线与存储器单元MCp+1至MCn之间。在行方向上布置的单元串耦合到在行方向上延伸的漏极选择线。第一行上的单元串CS11至CS1m的漏极选择晶体管耦合到第一漏极选择线DSL1。第二行上的单元串CS21至CS2m的漏极选择晶体管耦合到第二漏极选择线DSL2。
在列方向上布置的单元串被耦合到在列方向上延伸的位线。在图4中,第一列上的单元串CS11和CS21耦合到第一位线BL1。第m列上的单元串CS1m和CS2m耦合到第m位线BLm。
在行方向上布置的单元串中的被耦合到同一字线的存储器单元构成一个页面。例如,在第一行的单元串CS11至CS1m中的与第一字线WL1耦合的存储器单元构成一个页面。在第二行的单元串CS21至CS2m中的与第一字线WL1耦合的存储器单元构成另一个页面。当选择漏极选择线DSL1和DSL2中的任意一条时,可以选择在一个行方向上布置的单元串。当选择字线WL1至WLn中的任意一条时,可以在所选择的单元串中选择一个页面。
在另一实施例中,可以提供偶数位线和奇数位线代替第一位线BLl至第m位线BLm。另外,可以将在行方向上布置的单元串CS11至CS1m或CS21至CS2m中的偶数编号的单元串分别耦合至偶数位线,并且将在行方向上布置的单元串CS11至CS1m或CS21至CS2m中的奇数编号的单元串分别耦合至奇数位线。
在实施例中,第一存储器单元MC1至第n存储器单元MCn中的至少一个可以被用作虚拟存储器单元。例如,可以提供至少一个虚拟存储器单元以减小源极选择晶体管SST与存储器单元MC1至MCp之间的电场。备选地,可以提供至少一个虚拟存储器单元以减小漏极选择晶体管DST与存储器单元MCp+1至MCn之间的电场。当虚拟存储器单元的数量增加时,存储器块BLKa的操作的可靠性提高。另一方面,存储器块BLKa的尺寸增加。当虚拟存储器单元的数量减少时,存储器块BLKa的尺寸减小。另一方面,存储器块BLKa的操作的可靠性可能劣化。
为了有效地控制至少一个虚拟存储器单元,虚拟存储器单元可以具有所需的阈值电压。在存储器块BLKa的擦除操作之前或之后,可以对全部或一些虚拟存储器单元执行编程操作。当在执行编程操作之后执行擦除操作时,虚拟存储器单元的阈值电压控制被施加到与各个虚拟存储器单元耦合的虚拟字线的电压,使得虚拟存储器单元可以具有所需的阈值电压。
图5是示出在图3中所示的存储器块BLK1至BLKz中的一个存储器块BLKb的另一实施例的电路图示例。
参照图5,存储器块BLKb可以包括多个单元串CS11'至CS1m'和CS21'至CS2m'。多个单元串CS11'至CS1m'和CS21'至CS2m'中的每一个均沿+Z方向延伸。多个单元串CS11'至CS1m'和CS21'至CS2m'中的每一个都包括至少一个源极选择晶体管SST、第一存储器单元MC1至第n存储器单元MCn以及至少一个漏极选择晶体管DST,它们堆叠在存储器块BLKb下方的衬底(未示出)上。
每个单元串的源极选择晶体管SST耦合在公共源极线CSL与存储器单元MC1至MCn之间。布置在同一行上的单元串的源极选择晶体管耦合到同一源极选择线。布置在第一行上的单元串CS11′至CS1m′的源极选择晶体管耦合到第一源极选择线SSL1。布置在第二行上的单元串CS21'至CS2m'的源极选择晶体管耦合到第二源极选择线SSL2。在另一实施例中,单元串CS11'至CS1m'和CS21'至CS2m'的源极选择晶体管可以共同耦合至一条源极选择线。
每个单元串的第一存储器单元MC1至第n存储器单元MCn串联耦合在源极选择晶体管SST和漏极选择晶体管DST之间。第一存储器单元MC1至第n存储器单元MCn的栅极电极分别耦合至第一字线WL1至第n字线WLn。
每个单元串的漏极选择晶体管DST耦合在对应的位线与存储器单元MC1至MCn之间。布置在行方向上的单元串的漏极选择晶体管耦合到在行方向上延伸的漏极选择线。第一行上的单元串CS11′至CS1m′的漏极选择晶体管耦合到第一漏极选择线DSL1。第二行上的单元串CS21'至CS2m'的漏极选择晶体管耦合到第二漏极选择线DSL2。
因此,图5的存储器块BLKb具有类似于图4的存储器块BLKa的电路,除了从图5中的每个单元串中排除了管道晶体管PT之外。
在另一个实施例中,可以提供偶数位线和奇数位线来代替第一位线BLl至第m位线BLm。另外,布置在行方向上的单元串CS11'至CS1m'或CS21'至CS2m'中的偶数编号的单元串可以分别耦合到偶数位线,并且布置在行方向上的单元串CS11'至CS1m'或CS21'至CS2m'中的奇数编号的单元串可以分别耦合到奇数位线。
在实施例中,第一存储器单元MCl至第n存储器单元MCn中的至少一个可以被用作虚拟存储器单元。例如,可以提供至少一个虚拟存储器单元以减小源极选择晶体管SST与存储器单元MC1至MCp之间的电场。备选地,可以提供至少一个虚拟存储器单元以减小漏极选择晶体管DST与存储器单元MCp+1至MCn之间的电场。当虚拟存储器单元的数量增加时,存储器块BLKb的操作的可靠性得到提高。另一方面,存储器块BLKb的尺寸增加。当虚拟存储器单元的数量减少时,存储器块BLKb的尺寸减小。另一方面,存储器块BLKb的操作的可靠性可能劣化。
为了有效地控制至少一个虚拟存储器单元,虚拟存储器单元可以具有所需的阈值电压。在存储器块BLKb的擦除操作之前或之后,可以对全部或一些虚拟存储器单元执行编程操作。当在执行编程操作之后执行擦除操作时,虚拟存储器单元的阈值电压控制被施加到与各个虚拟存储器单元耦合的虚拟字线的电压,使得虚拟存储器单元可以具有所需的阈值电压。
图6是示出在图1中所示的存储器控制器的配置的示例图。
参照图6,存储器控制器200可以包括垃圾收集状态确定器210、块信息存储单元220和垃圾收集执行单元230。
垃圾收集状态确定器210可以从主机300接收垃圾收集状态请求GCS_REQ。主机300可以输出垃圾收集状态请求GCS_REQ以确定在存储器器件100中是否需要垃圾收集GC。当垃圾收集状态确定器210从主机300接收到垃圾收集状态请求GCS_REQ时,垃圾收集状态确定器210可以确定存储器器件100是否处于需要垃圾收集的状态。
传统上而言,由存储器控制器自主地(即,独立于主机)确定是否需要垃圾收集,然后基于存储器控制器的自主确定来执行用于垃圾收集的操作。在所公开技术的一些实施方式中,存储器控制器200可以响应于来自主机300的请求,来执行用于确定在存储器器件中是否需要垃圾收集的操作。在一些实施方式中,存储器控制器200可以确定在来自主机300的请求中是否需要垃圾收集,而存储器控制器200还可以在没有来自主机300的请求的情况下自主地确定是否需要垃圾收集。
当垃圾收集状态确定器210从主机300接收到垃圾收集状态请求GCS_REQ时,垃圾收集状态确定器210可以将块信息请求BI_REQ输出到块信息存储单元220。因此,可以输出块信息请求BI_REQ以确定在存储器器件100中是否需要垃圾收集。在一些实施方式中,响应于块信息请求BI_REQ,垃圾收集状态确定器210可以接收关于包括在存储器器件100中的多个存储器块的信息。
垃圾收集状态确定器210可以向块信息存储单元220请求块信息BLK_INF。垃圾收集状态确定器210可以从块信息存储单元220接收与块信息请求BI_REQ相对应的块信息BLK_INF。垃圾收集状态确定器210可以基于块信息BLK_INF来确定存储器器件100是否处于需要垃圾收集的状态。
已经关于图1讨论了包括在块信息BLK_INF中的信息。例如,垃圾收集状态确定器210可以基于块信息BLK_INF来输出表示存储器器件100是否处于需要垃圾收集的状态的标志信息FLAG_INF。即,垃圾收集状态确定器210可以输出响应于垃圾收集状态请求GCS_REQ的标志信息FLAG_INF。可以基于多个存储器块中的坏块的数量和空闲块的数量来确定标志信息FLAG_INF。
在实施例中,当包括在标志信息FLAG_INF中的标志FLAG被设置为0时,存储器器件100可以处于不需要垃圾收集的状态。相反,当标志FLAG被设置为1时,存储器器件100可以处于需要垃圾收集的状态。其他实施方式也是可能的,使得标志FLAG在需要垃圾收集时指示0,而在不需要垃圾收集时指示1。
块信息存储单元220可以向存储器器件100请求坏块生成信息BBG_INF。坏块生成信息BBG_INF可以包括关于存储器器件100中包括的多个存储器块之中被视为坏块的存储器块的信息。块信息存储单元220可以从存储器器件100接收与请求相对应的坏块生成信息BBG_INF。
块信息存储单元220可以存储关于包括在存储器器件100中的多个存储器块的块信息BLK_INF。块信息BLK_INF可以包括关于总块数、保留块的数量、空闲块的数量、开放块的数量和坏块的数量的信息。坏块的数量是通过将运行时坏块RTBB的数量和制造商坏块MBB的数量相加而获得的。坏块可以指示多个存储器块中的不能存储任何数据的块。
在实施例中,保留块的数量可以指包括在存储器器件100中但不被用于存储数据的存储器块的数量。空闲块的数量是被分配用于执行垃圾收集的保留块的数量。空闲块可以是或可以包括当存储器控制器200执行垃圾收集时有效页面被复制到的存储器块。当存储器器件被初始化时,可以预先设置多个存储器块中的保留块的数量和空闲块的数量。
在实施例中,开放块的数量可以指多个存储器块中的存储数据的存储器块的数量。当数据被存储在包括在开放块中的所有页面中时,该开放块可以被称为闭合块。
在实施例中,当存储器器件100被初始化时,块信息存储单元220可以接收存储在存储器器件100中的制造商坏块MBB的数量。制造商坏块MBB可以是在生产存储器器件100时生成的坏块。
当存储器器件100被初始化时,块信息存储单元220可以将制造商坏块MMB的数量存储为坏块的数量。随后,当在执行存储器器件的操作时生成运行时坏块RTBB时,块信息存储单元220可以将运行时坏块RTBB的数量与制造商坏块MBB的数量相加而获得的数量存储为坏块的数量。
在一些实施方式中,块信息存储单元220可以从存储器器件100接收坏块生成信息BBG_INF。坏块生成信息BBG_INF可以包括:关于包括在存储器器件100中的多个存储器块中的被处理为坏块的存储器块的信息。即,坏块生成信息BBG_INF可以包括关于在存储器器件100的操作期间生成的运行时坏块RTBB的数量的信息。因此,块信息存储单元220可以基于坏块生成信息BBG_INF来确定坏块的数量。因此,块信息存储单元220可以将通过基于坏块生成信息BBG_INF确定的运行时坏块RTBB的数量和制造商坏块MBB的数量相加而获得的存储器块的数量存储为坏块的数量。
在一些实施方式中,当块信息存储单元220从存储器器件100接收到坏块生成信息BBG_INF时,块信息存储单元220可以更新坏块的数量。例如,当块信息存储单元220从存储器器件100接收坏块生成信息BBG_INF时,块信息存储单元220可以更新运行时坏块RTBB的数量。因此,可以基于更新的运行时坏块的数量来更新坏块的数量。当块信息存储单元220接收到坏块生成信息BBG_INF时,块信息存储单元220可以存储更新的坏块的数量。
当块信息存储单元220从垃圾收集状态确定器210接收到块信息请求BI_REQ时,块信息存储单元220可以输出存储在其中的块信息BLK_INF。块信息BLK_INF可以包括关于总块数、保留块的数量、空闲块的数量、开放块的数量以及坏块的数量的信息。
垃圾收集状态确定器210可基于块信息BLK_INF确定存储器器件100是否处于需要垃圾收集的状态。垃圾收集状态确定器210可以基于通过确定存储器器件100是否处于需要垃圾收集的状态而获得的确定结果,来将标志信息FLAG_INF输出到主机300。标志信息FLAG_INF可以表示存储器器件100是否处于需要垃圾收集的状态。可以将包括在标志信息FLAG_INF中的标志FLAG设置为0或1。可以基于多个存储器块中的坏块的数量和空闲块的数量来设置标志FLAG。
在一些实施方式中,垃圾收集状态确定器210可以接收块信息BLK_INF,并基于包括在块信息BLK_INF中的存储器块的数量与坏块的数量之差以及空闲块的数量来设置标志FLAG。在一些实施方式中,当块信息BLK_INF被更新时,垃圾收集状态确定器210可以基于包括在更新的块信息BLK_INF中的坏块的数量来设置标志FLAG。因此,垃圾收集状态确定器210可以接收包括更新的坏块的数量的块信息BLK_INF,并且基于存储器块的数量与更新的坏块的数量之差以及空闲块的数量来设置标志FLAG。
在实施例中,当空闲块的数量大于或等于存储器块的数量与更新的坏块的数量之差时,垃圾收集状态确定器210可以确定存储器器件100处于不需要垃圾收集的状态。垃圾收集状态确定器210可以响应于从主机300接收的垃圾收集状态请求GCS_REQ,来输出包括被设置为表示不需要垃圾收集的标志FLAG的标志信息FLAG_INF。作为示例,当不需要垃圾收集时,标志FLAG可以被设置为0。
在另一个实施例中,当空闲块的数量小于存储器块的数量与更新的坏块的数量之差时,垃圾收集状态确定器210可以确定存储器器件100处于需要垃圾收集的状态。垃圾收集状态确定器210可以响应于从主机300接收的垃圾收集状态请求GCS_REQ,来输出包括被设置为表示需要垃圾收集的标志FLAG的标志信息FLAG_INF。作为示例,当需要垃圾收集时,标志FLAG可以被设置为1。
主机300可以从垃圾收集状态确定器210接收包括在标志信息FLAG_INF中的标志FLAG。标志FLAG可以被设置为0或1。当主机300接收到表示不需要垃圾收集的被设置为0的标志FLAG时,主机300可以不向存储器控制器200输出垃圾收集请求GC_REQ。另一方面,当主机300接收到表示需要垃圾收集的被设置为1的标志FLAG时,主机300可以向存储器控制器200输出垃圾收集请求GC_REQ。
垃圾收集执行单元230可以从主机300接收垃圾收集请求GC_REQ。垃圾收集执行单元230可以执行与垃圾收集请求GC_REQ相对应的操作。垃圾收集执行单元230可以向存储器器件100提供命令、地址和数据以执行垃圾收集。当垃圾收集状态确定器210确定存储器器件100处于需要垃圾收集的状态时,垃圾收集执行单元230可以执行用于执行垃圾收集的操作。
图7A和图7B是示出其中执行垃圾收集的实施例的示例图。
参考图7A,图7A是示出在存储器器件100中包括的多个存储器块的示例图。图7B是示出存储在块信息存储单元220中的块信息BLK_INF的示例图。块信息BLK_INF可以包括关于图7A所示的存储器块的信息。
在图7A和图7B中,假设存储器器件100包括第零存储器块BLK0至第四十七存储器块BLK47的情况。因此,总块数可以是48。图7A和图7B中使用的数量仅是示例,并且其他实施方式也是可能的。在另一实施例中,存储器器件100可以包括更多数量的存储器块。
存储器器件100中包括的多个存储器块中的第零存储器块BLK0至第十五存储器块BLK15可以是保留块。保留块可以是或可以包括被包括在存储器器件100中但不被用于存储数据的存储器块。当存储器器件100被初始化时,可以预先设置保留块。因此,在存储器器件100的初始化时,可以将第零存储器块BLK0至第十五存储器块BLK15设置为保留块。虽然图7A示出了16个保留块,但其他实施方式也是可能的。因此,可以在各种实施方式中设置各种数量的保留块。
在实施例中,一些保留块可以被设置为空闲块。空闲块可以是或者可以包括当执行垃圾收集时有效页面的数据被复制到的存储器块,该有效页面包括在被选择为牺牲块的存储器块中。因此,可确保足够数量的空闲块,使得存储器控制器200执行垃圾收集。在图7A的示例中,保留块中的第零存储器块BLK0至第七存储器块BLK7被设置为空闲块。
存储器器件100中包括的多个存储器块中的第十六存储器块BLK16至第四十七存储器块BLK47可以是开放块。开放块可以是或可以包括以下存储器块:其中数据被存储在该存储器块中包括的多个页面中的一些页面中。当数据被存储在开放块中包括的所有页面中时,该开放块可以被称为闭合块。当在存储数据的过程中发生编程失败时,开放块可以被处理为坏块。当开放块被处理为坏块时,被处理为坏块的存储器块可以是运行时坏块。
在图7A中,第十六存储器块BLK16至第四十七存储器块BLK47是开放块,并且因此开放块的数量是32。
图7B是示出基于图7A所示状态的存储在块信息存储单元中的块信息BLK_INF的示例图。在图7A的实施例中,存储器器件100中包括的总块数为48。即,存储器器件100中可以包括从第零存储器块至第四十七存储器块BLK47的48个存储器块。
当初始化存储器器件100时,可以将16个存储器块设置为多个存储器块中的保留块,并且可以将8个存储器块设置为多个存储器块中的空闲块。在其中存储数据的存储器块(即,第十六存储器块BLK16至第四十七存储器块BLK47)是开放块,并且因此开放块的数量是32。因此,块信息存储单元220可以存储关于总块数、保留块的数量、空闲块的数量、开放块的数量和坏块的数量的信息。
传统上而言,存储器控制器自主地确定存储器器件200是否处于需要垃圾收集的状态,并且基于该确定结果执行垃圾收集。
例如,如果空闲块的数量(空闲块#)小于特定值并且如果保留块的数量(保留块#)大于特定的值,则传统存储器控制器执行垃圾收集。存储器器件100可以通过垃圾收集来确保空闲块。由于在保留块的数量大于特定值的情况下传统存储器控制器执行垃圾收集,因此当被分配为保留块的存储器块的数量不大于该特定值时,传统技术中不能执行垃圾收集。
作为示例,假设在传统技术中,当空闲块的数量(空闲块#)小于9且保留块的数量(保留块#)大于15时,执行垃圾收集。当存储器器件被初始化使得保留块的数量被设置为16且空闲块的数量为8时,传统存储器控制器可以执行垃圾收集。
然而,在传统技术中,当存储器器件被初始化时,保留块的数量被确定为固定值。因此,一旦因为满足空闲块的数量小于特定值的条件而执行垃圾收集,垃圾收集就会被无限地执行。因此,传统存储器控制器频繁执行垃圾收集,这导致由存储器控制器执行的操作被延迟。
认识到上述问题,所公开技术的一些实施方式建议设置一种条件,在该条件下与传统方式不同地执行垃圾收集。在一些实施方式中,当基于存储器器件100中包括的多个存储器块中的坏块的数量和总块数之差确定阈值时,执行垃圾收集的条件可以基于空闲块的数量是否等于或小于该阈值来确定。坏块可以包括运行时坏块RTBB和制造商坏块MBB。即,阈值可以具有根据时间改变的值而不是固定值。因此,存储器控制器200可以基于关于存储器器件100中包括的多个存储器块的信息来设置执行垃圾收集的条件。
图8A和图8B是示出在其中执行垃圾收集的另一实施例的示例图。
参考图8A,图8A是示出包括在图1所示的存储器器件100中的多个存储器块的示例图。图8B是示出存储在块信息存储单元220中的块信息BLK_INF的示例图。块信息BLK_INF可以包括关于图8A中所示的存储器块的信息。与图7A和图7B所示的块信息BLK_INF不同,在图8B中示出的块信息BLK_INF可以进一步包括关于多个运行时坏块RTBB和多个制造商坏块MBB的信息。
在图8A和图8B中,假设存储器器件100包括第零存储器块BLK0至第四十七存储器块BLK47的情况。因此,总块数可以是48。图8A和图8B中使用的数量仅是示例,并且其他实施方式也是可能的。在另一实施例中,存储器器件100可以包括更多数量的存储器块。
当存储器器件100被初始化时,可以设置多个存储器块中的保留块的数量和空闲块的数量。在实施例中,存储器器件100中包括的多个存储器块之中的第零存储器块BLK0至第十五存储器块BLK15可以是保留块。保留块中的第零存储器块BLK0至第七存储器块BLK7可以是空闲块。
存储器器件100中包括的多个存储器块之中的第十六存储器块BLK16至第四十七存储器块BLK47可以是开放块。开放块可以是其中数据被存储在存储器块中包括的多个页面中的一些页面中的存储器块。
在此实施方式中,存储器器件100可进一步包含坏块。坏块可以包括在生产存储器器件时生成的制造商坏块MBB和在存储器器件100执行操作时生成的运行时坏块RTBB。坏块可以指无法在其中存储任何数据的存储器块。
当存储器器件100在执行操作时在其中存储了无效数据的存储器块可以是运行时坏块RTBB。在实施例中,第三十二存储器块BLK32至第四十五存储器块BLK45可以是在存储器器件100执行操作时生成的坏块,即,运行时坏块RTBB。第四十六存储器块BLK46和第四十七存储器块BLK47可以是制造商坏块MBB。制造商坏块MBB可以是在生产存储器器件100时生成的坏块。
图8B是示出基于图8A所示的状态被存储在块信息存储单元220中的块信息BLK_INF的示例图。在图8A的实施例中,存储器器件100中包括的总块数为48。即,从第零存储器块至第四十七存储器块BLK47的48个存储器块可以被包括在存储器器件100中。在存储器器件100被初始化时,在多个存储器块中的被设置为保留块的存储器块的数量可以是16,并且在多个存储器块中的被设置为空闲块的存储器块的数量可以是8。其中存储数据的存储器块(即第十六存储器块BLK16至第四十七存储器块BLK47)是开放块,并且因此开放块的数量为32。由于16个坏块包括在存储器器件100执行操作时生成的运行时坏块RTBB和在生产存储器器件100时生成的制造商坏块MBB,所以开放块的数量变为16。
与图7B不同,在图8B中,块信息存储单元220可以存储关于坏块的数量的信息。坏块的数量可以通过将运行时坏块RTBB的数量和制造商坏块MBB的数量相加而获得。因此,块信息存储单元220可以存储关于总块数、保留块的数量、空闲块的数量、开放块的数量和坏块的数量的信息。
已经讨论了在传统技术中执行垃圾收集的条件是基于保留块的数量(保留块#)和空闲块的数量(空闲块#)。与传统技术不同,在所公开技术的实施方式中,执行垃圾收集的条件可以基于阈值、而不是保留块的数量(保留块#)和空闲块的数量(空闲块#)来确定。可以基于总块数(总块#)和坏块的数量来确定阈值。在实施例中,可以基于总块数(总块#)和坏块的数量之差来确定阈值。坏块的数量可以通过将制造商坏块MBB的数量和运行时坏块RTBB的数量相加而获得。
因此,在所公开的技术中,当空闲块的数量(空闲块#)小于阈值时,存储器控制器200可以执行垃圾收集。在图8A和图8B中,可以将阈值确定为值32,该值32是通过从总共48个存储器块中减去包括2个制造商坏块MBB和14个运行时坏块RTBB的坏块的总数而获得的。在图8A和图8B中,空闲块的数量(空闲块#)是8。因此,满足了空闲块的数量(空闲块#)小于阈值的条件,并且因此,存储器控制器200可以执行垃圾收集。
在所公开技术的实施方式中,例如,每当存储器器件100的状态改变时,可以基于存储器器件100的状态来更新阈值。在实施例中,块信息存储单元220可以通过从存储器器件100接收坏块生成信息BBG_INF来更新块信息BLK_INF,并输出更新的块信息BLK_INF到垃圾收集状态确定器210。在接收到更新的块信息BLK_INF时,垃圾收集状态确定器210可通过基于更新的块信息BLK_INF计算阈值来确定存储器器件100是否处于需要垃圾收集的状态。
在实施例中,每当垃圾收集状态确定器210从存储器器件100接收到坏块生成信息BBG_INF时,垃圾收集状态确定器210可以更新阈值。当阈值被更新时,存储器控制器200基于更新的阈值确定存储器器件100是否需要垃圾收集,并且基于确定结果执行垃圾收集。
图9是示出存储在块信息存储单元中的坏块表的示例图。
参照图8和图9,图9是示出从存储器器件100接收到坏块生成信息BBG_INF之后的坏块表的图。在图9中,假设这样的情况,其中第三十二存储器块BLK32至第四十五存储器块BLK45是运行时坏块RTBB,而第四十六存储器块BLK46和第四十七存储器块BLK47是制造商坏块MBB。
坏块表可以具有与每个存储器块相对应的值。对应于每个存储器块的值可以是0或1。当对应于存储器块的值是0时,该存储器块可以不是坏块。当对应于存储器块的值为1时,该存储器块可以是坏块。在一些实施方式中,可以使用值0和1,使得值0指示存储器块可以是坏块,而值1指示存储器块可以不是坏块。块信息存储单元220可以从存储器器件100接收坏块生成信息BBG_INF,并且更新与每个存储器块相对应的坏块表。
当存储器器件100被初始化时,块信息存储单元220可以接收关于制造商坏块MBB的信息。块信息存储单元220可以接收关于制造商坏块MBB的信息,并且将与制造商坏块MBB相对应的值从0改变为1。在实施例中,由于假设了以下情况:其中第四十六存储器块BLK46和第四十七存储器块BLK47是制造商坏块MBB,块信息存储单元220可以接收关于制造商坏块的信息,并且将与第四十六存储器块BLK46和第四十七存储器块BLK47中的每一个相对应的值从0改变为1。
当执行存储器器件100的操作时,包括在存储器器件100中的多个存储器块中的一些可以被处理为坏块。当存储器块在存储器器件100执行操作时被处理为坏块时,相应的存储器块可以对应于运行时坏块RTBB。当生成运行时坏块RTBB时,存储器器件100可以将包括关于运行时坏块RTBB的信息的坏块生成信息BBG_INF输出到块信息存储单元220。块信息存储单元220可以通过接收坏块生成信息BBG_INF来更新坏块表。
在其中第三十二存储器块BLK32至第四十五存储器块BLK45被假设是运行时坏块RTBB的实施例中,块信息存储单元220可以接收坏块生成信息BBG_INF,并将与第三十二存储器块BLK32至第四十五存储器块BLK45中的每一个相对应的值从0改变到1。
块信息存储单元220可以存储基于更新的坏块表来计算的坏块的数量。在图9中,由于制造商坏块MBB的数量是2,并且运行时坏块RTBB的数量是14,所以坏块的数量是16。因此,坏块的数量可以在块信息存储单元220中被存储为16。
块信息存储单元220可以将更新的块信息BLK_INF输出到垃圾收集状态确定器210。垃圾收集状态确定器210可以基于更新的块信息BLK_INF来更新用于确定是否执行垃圾收集的阈值。垃圾收集状态确定器210可以基于更新的阈值来确定是否要执行垃圾收集。
图10A和图10B是示出其中不执行垃圾收集的实施例的示例图。
参考图10A和图10B,图10A是示出包括在图1中所示的存储器器件100中的多个存储器块的示例图。图10B是示出存储在块信息存储单元220中的块信息BLK_INF的示例图。块信息BLK_INF可以包括关于图10A所示的存储器块的信息。与图7B所示的块信息BLK_INF不同,图10B所示的块信息BLK_INF可以进一步包括运行时坏块RTBB的数量和制造商坏块MBB的数量。
在图10A和图10B中,假设存储器器件100包括第零存储器块BLK0至第四十七存储器块BLK47的情况。因此,总块数为48。在另一实施例中,存储器器件100可以包括更多数量的存储器块。
当存储器器件100被初始化时,可以设置多个存储器块中的保留块的数量和空闲块的数量。在实施例中,存储器器件100中包括的多个存储器块中的第零存储器块BLK0至第七存储器块BLK7可以是保留块。保留块中的第零存储器块BLK0至第七存储器块BLK7可以是空闲块。因此,所有保留的存储器块可以被设置为空闲块。
在实施例中,当数据存储在存储器器件100中时,可以生成运行时坏块RTBB。在该示例中,在生成运行时坏块RTBB之前,第八存储器块BLK8至第四十五个存储器块BLK45是开放块。当执行存储器器件100的操作时,这种操作导致坏块的生成,因此第八存储器块BLK8至第四十五存储器块BLK45成为坏块。另外,第四十六存储器块BLK46和第四十七存储器块BLK47是在制造存储器器件100时生成的制造商坏块MBB,并且可以在存储器器件100初始化时被处理为坏块。
图10B是示出反应图10A所示状态的、存储在块信息存储单元220中的块信息BLK_INF的图。在实施例中,存储器器件100中包括的总块数为48。即,从第零存储器块到第四十七存储器块BLK47的48个存储器块可以被包括在存储器器件100中。当存储器器件100被初始化时,在多个存储器块中被设置为保留块的存储器块的数量可以是8,并且在多个存储器块中被设置为空闲块的存储器块的数量可以是8。
与图7A和图7B不同,在图10B中,块信息存储单元220可以存储关于坏块的数量的信息。坏块的数量可以是通过将运行时坏块RTBB的数量和制造商坏块MBB的数量相加而获得的数量。因此,块信息存储单元220可以存储关于总块数、保留块的数量、空闲块的数量、开放块的数量和坏块的数量的信息。
参照图10A和图10B,在所公开的技术中,垃圾收集状态确定器210可设置用于执行垃圾收集的阈值。即,可以将阈值确定为通过从存储器块总数48中减去数量40(通过将2个制造商坏块MBB和38个运行时坏块RTBB相加而获得)而获得的值8。因此,在图10B中,空闲块的数量(空闲块#)是8。因此,空闲块的数量(空闲块#)等于作为阈值的8,并且因此存储器控制器200可以执行垃圾收集。
随着存储器器件100的操作的进行,存储器器件100中包括的多个存储器块中的坏块的数量增加。当空闲块的数量等于或小于阈值的条件不被满足时,存储器器件100可以不执行垃圾收集。在一些实施方式中,当随着坏块的数量增加而在存储器块中不存在空闲块时,该条件不会被满足。因此,与无限执行垃圾收集的传统存储器控制器不同,本存储器控制器可以停止垃圾收集。这是因为所公开技术的实施方式提出了基于阈值(其基于存储器器件100的状态而确定)来确定是否执行垃圾收集的条件。所提出的使用阈值确定是否执行垃圾收集的存储器控制器允许防止垃圾收集被无限执行。
在所公开技术的实施方式中,基于存储器器件100的状态确定用于确定是否执行垃圾收集的阈值。因此,阈值可以基于随时间变化的存储器器件100的状态来设置。因此,可以基于存储器器件100的状态来执行垃圾收集。
图11是示出根据所公开技术的实施例的存储器控制器的操作的图。
参照图11,在步骤S1101中,垃圾收集状态确定器210可以从主机300接收垃圾收集状态请求GCS_REQ。垃圾收集状态请求GCS_REQ可以是用于确定存储器器件100中是否需要垃圾收集GC的请求。传统上而言,存储器控制器200自主地确定是否需要垃圾收集。然而,在所公开的技术中,可以响应于来自主机300的请求来确定是否需要垃圾收集。
在步骤S1103中,垃圾收集状态确定器210可以输出块信息请求BI_REQ。在一些实施方式中,当垃圾收集状态确定器210从主机300接收垃圾收集状态请求GCS_REQ时,垃圾收集状态确定器210可以输出块信息请求BI_REQ到块信息存储单元220。当垃圾收集状态确定器210从主机300接收到垃圾收集状态请求GCS_REQ时,垃圾收集状态确定器210可以基于从块信息存储单元220接收到的块信息BLK_INF来确定存储器器件100是否处于需要垃圾收集的状态。
在步骤S1105中,垃圾收集状态确定器210可以确定坏块的数量。坏块的数量是通过将运行时坏块RTBB的数量和制造商坏块MBB的数量相加而获得的数量。坏块可以是多个存储器块中的不能存储数据的块。
在实施例中,垃圾收集状态确定器210可以从块信息存储单元220接收与块信息请求BI_REQ相对应的块信息BLK_INF。块信息BLK_INF可以包括关于总块数、保留块的数量、空闲块的数量、开放块的数量和坏块的数量的信息。因此,垃圾收集状态确定器210可以通过将包括在块信息BLK_INF中的运行时坏块RTBB的数量和制造商坏块MBB的数量相加来确定坏块的数量。
在步骤S1107中,垃圾收集状态确定器210可以设置用于确定是否需要垃圾收集的标志FLAG。在一些实施方式中,当垃圾收集状态确定器210确定坏块的数量时,可以基于坏块的数量来确定用于确定执行垃圾收集的阈值。在一些实施方式中,可以通过从存储器块总数中减去坏块的数量来获得阈值。
在实施例中,当空闲块的数量大于或等于阈值时,垃圾收集状态确定器210可以确定存储器器件100处于不需要垃圾收集的状态,并且将标志FLAG设置为0。当空闲块的数量小于阈值时,垃圾收集状态确定器210可以确定存储器器件100处于需要垃圾收集的状态,并且将标志FLAG设置为1。在其他一些实施方式中,可以将标志的值设置为0以指示需要垃圾收集时的状态,可以将标志的值设置为0以指示不需要垃圾收集时的状态。
在步骤S1109中,垃圾收集状态确定器210可以将设置的标志FLAG输出到主机300。标志FLAG可以被设置为0或1。主机300可以根据从垃圾收集状态确定器210接收的标志FLAG的值来输出垃圾收集请求GC_REQ。在实施例中,当主机300接收到被设置为0的标志FLAG时,主机300可以不向存储器控制器200输出垃圾收集请求GC_REQ。当主机300接收到被设置为1的标志FLAG时,主机300可以将垃圾收集请求GC_REQ输出到存储器控制器200。
图12是示出根据所公开技术的实施例的主机的操作的示例图。
参照图12,在步骤S1201中,主机300可以从存储器控制器200接收标志FLAG。标志FLAG可以被包括在标志信息FLAG_INF中。可以基于多个存储器块中的坏块的数量和空闲块的数量来确定标志信息FLAG_INF。
在一些实施方式中,主机300可以从垃圾收集状态确定器210接收被设置为0或1的标志FLAG。标志FLAG可以表示在存储器器件100中是否需要垃圾收集。在实施例中,当标志FLAG被设置为0时,则存储器器件100处于不需要垃圾收集的状态。当标志FLAG被设置为1时,存储器器件100处于需要垃圾收集的状态。在一些实施方式中,可以使用值0和1,使得值0指示存储器块可以是坏块,并且值1指示存储器块可以不是坏块。
在步骤S1203中,主机300可以检查接收到的标志FLAG是否被设置为1。当标志FLAG被设置为1时,表示存储器器件100处于需要垃圾收集的状态。当标志FLAG被设置为1时,操作进行到步骤S1205。
在步骤S1205中,主机300可以输出垃圾收集请求GC_REQ。当主机300接收到被设置为1的标志FLAG时,主机300可以向垃圾收集执行单元230输出垃圾收集请求GC_REQ。垃圾收集执行单元230可以执行对应于垃圾收集请求GC_REQ的操作。垃圾收集执行单元230可以向存储器器件100提供命令、地址和数据,以执行垃圾收集。
图13是示出根据所公开技术的实施例的存储器控制器的操作的图。
参照图13,图13示出了用于确定执行垃圾收集的条件的传统方法。
在步骤S1301中,垃圾收集状态确定器210可以从块信息存储单元220接收块信息BLK_INF。
垃圾收集状态确定器210可以向块信息存储单元220输出块信息请求BI_REQ,以确定在存储器器件100是否需要垃圾收集。垃圾收集状态确定器210可以接收与块信息请求BI_REQ对应的块信息BLK_INF。
在实施例中,块信息BLK_INF可以包括关于总块数、保留块的数量、空闲块的数量和开放块的数量的信息。
在步骤S1303中,垃圾收集状态确定器210可以确定空闲块的数量是否等于或小于第一值。当存储器器件100被初始化时可以设置第一值。当空闲块的数量小于特定值时,可以确定在存储器器件100中需要垃圾收集。当包括在块信息BLK_INF中的空闲块的数量等于或小于第一值时,操作进行到步骤S1305。当空闲块的数量大于第一值时,操作进行到步骤S1307。
在步骤S1305中,垃圾收集状态确定器210可确定保留块的数量是否等于或大于第二值。当存储器器件100被初始化时可以设置第二值。当保留块的数量大于特定值时,认为保留块的数量足够确保在存储器器件100中执行垃圾收集。因此,当保留块的数量等于或大于第二值时,可以在存储器器件100中执行垃圾收集。
当保留块的数量等于或大于第二值时,操作进行到步骤S1309。当保留块的数量小于第二值时,操作进行到步骤S1307。
在步骤S1307中,垃圾收集状态确定器210可以将标志FLAG设置为0。当标志FLAG被设置为0时,它指示存储器器件100可以处于不需要垃圾收集的状态。在实施例中,由于在存储器器件100中包括的多个存储器块中的空闲块的数量被确保时不需要执行垃圾收集,因此可以将标志FLAG设置为0。在一些实施方式中,由于在存储器器件100中包括的多个存储器块中的保留块的数量没有被确保时不能执行垃圾收集,因此可以将标志FLAG设置为0。
在步骤S1309中,垃圾收集状态确定器210可以将标志FLAG设置为1。当将标志FLAG设置为1时,存储器器件100可以处于需要垃圾收集的状态。在实施例中,当假设在存储器器件100初始化时多个存储器块中的保留块的数量被设置为等于或大于特定值时,如果空闲块的数量等于或小于特定值,则存储器控制器200可以执行用于执行垃圾收集的操作。
在步骤S1311中,垃圾收集状态确定器210可以将被设置为0或1的标志FLAG输出到主机300。主机300可以基于标志FLAG被设置的值来确定是否要输出垃圾收集请求GC_REQ。当存储器控制器200从主机300接收到垃圾收集请求GC_REQ时,存储器控制器200可以执行用于执行垃圾收集的操作。
图14是示出根据所公开技术的实施例的存储器控制器的操作的图。
参照图14,图14示出了在所公开的技术中用于确定执行垃圾收集的条件的方法。
在步骤S1401中,垃圾收集状态确定器210可以从块信息存储单元220接收块信息BLK_INF。
具体地,垃圾收集状态确定器210可以将块信息请求BI_REQ输出到块信息存储单元220,以确定存储器器件100中是否需要垃圾收集。垃圾收集状态确定器210可以接收与块信息请求BI_REQ对应的块信息。
在实施例中,块信息BLK_INF可以包括关于总数块、保留块的数量、空闲块的数量以及开放块的数量的信息。坏块的数量是通过将运行时坏块RTBB的数量和制造商坏块MBB的数量相加而获得的数量。坏块可以被包括在多个存储器块中并且不被用于存储任何数据。
在步骤S1403中,垃圾收集状态确定器210可以基于块信息BLK_INF确定空闲块的数量。空闲块可以是保留块中的被分配用于执行垃圾收集的存储器块。空闲块可以是或可以包括当存储器控制器200执行垃圾收集时有效页面被复制到的存储器块。可以基于空闲块的数量来确定执行垃圾收集的条件。
在步骤S1405中,垃圾收集状态确定器210可以基于块信息BLK_INF检查坏块的数量。坏块的数量是通过将运行时坏块RTBB的数量和制造商坏块MBB的数量相加而获得的数量。当块信息存储单元从存储器器件100接收坏块生成信息BBG_INF时,可以基于坏块生成信息BBG_INF来更新坏块的数量。垃圾收集状态确定器210可以基于更新的坏块的数量来检查坏块的数量。
在步骤S1407中,垃圾收集状态确定器210可以检查第三值,该第三值是总块数与坏块的数量之差。第三值可以被称为阈值。阈值可以通过从总块数减去坏块总数来确定,坏块总数是制造商坏块MBB的数量和运行时坏块RTBB的数量的和。当阈值被确定时,垃圾收集状态确定器210可以使用该阈值来确定在存储器器件中100是否需要垃圾收集。
在步骤S1409中,可以确定空闲块的数量是否小于阈值。在所公开技术的实现方式中,垃圾收集状态确定器210可以确定执行垃圾收集的条件。因此,垃圾收集状态确定器210可以通过将空闲块的数量与阈值进行比较来确定是否要执行垃圾收集。当空闲块的数量小于阈值时,操作进行到步骤S1411。当空闲块的数量等于或大于阈值时,操作进入步骤S1415。
在步骤S1411中,当空闲块的数量小于阈值时,垃圾收集状态确定器210可以确定存储器器件100处于需要垃圾收集的状态。垃圾收集状态确定器210可以将标志FLAG设置为1以表示需要垃圾收集。
在步骤S1413中,垃圾收集状态确定器210可以将被设置为0或1的标志FLAG输出到主机300。主机300可以基于标志FLAG被设置的值来确定是否要输出垃圾收集请求GC_REQ。当存储器控制器200从主机300接收到垃圾收集请求GC_REQ时,存储器控制器200可以执行用于执行垃圾收集的操作。
在步骤S1415中,当空闲块的数量等于或大于阈值时,垃圾收集状态确定器210可以确定存储器器件100处于不需要垃圾收集的状态。垃圾收集状态确定器210可以将标志FLAG设置为0以表示不需要垃圾收集。
图15是示出图1所示的存储器控制器的另一实施例的图。
参考图15,存储器控制器1000耦合到主机和存储器器件。存储器控制器1000被配置为响应于从主机接收的请求来访问存储器器件。例如,存储器控制器1000被配置为控制存储器器件的读取、编程、擦除和后台操作。存储器控制器1000被配置为提供存储器器件和主机之间的接口。存储器控制器1000被配置为驱动用于控制存储器器件的固件。
存储器控制器1000可以包括处理器1010、存储器缓冲器1020、纠错码(ECC)电路1030、主机接口1040、缓冲器控制电路1050、存储器接口1060和总线1070。
总线1070可以被配置为提供在存储器控制器1000的组件之间的通道。
处理器1010可以控制存储器控制器1000的整体操作,并且可以执行逻辑操作。处理器1010可以通过主机接口1040与外部主机通信,并且通过存储器接口1060与存储器器件通信。此外,处理器1010可以通过缓冲器控制电路1050与存储器缓冲器1020通信。处理器1010可以通过使用作为工作存储器、高速缓冲存储器或缓冲器存储器的存储器缓冲器1020来控制存储器件的操作。
处理器1010可以执行闪存转换层(FTL)的功能。处理器1010可以将由主机提供的逻辑块地址(LBA)通过FTL转换为物理块地址(PBA)。FTL可以使用映射表接收LBA以转换为PBA。根据映射单位,存在FTL的若干地址映射方法。代表性地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器1010被配置为使从主机接收的数据随机化。例如,处理器1010可以使用随机化种子来使从主机接收的数据随机化。经随机化的数据可以作为要存储的数据提供给存储器器件,以被编程在存储器单元阵列中。
在读取操作中,处理器1010被配置为使从存储器器件接收的数据去随机化。例如,处理器1010可以使用去随机化种子对从存储器器件接收的数据进行去随机化。可以将经去随机化的数据输出到主机。
在实施例中,处理器1010可以通过驱动软件或固件来执行随机化和去随机化。
存储器缓冲器1020可以用作处理器1010的工作存储器、高速缓冲存储器或缓冲器存储器。存储器缓冲器1020可以存储由处理器1010执行的代码和命令。存储器缓冲器1020可以包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC电路1030可以执行ECC操作。ECC电路1030可以对通过存储器接口1060被写入到存储器器件中的数据执行ECC编码。经ECC编码的数据可以通过存储器接口1060被传送到存储器器件。ECC电路1030可以对通过存储器接口1060从存储器器件接收的数据执行ECC解码。在示例中,ECC电路1030可以作为存储器接口1060的组件被包括在存储器接口1060中。
主机接口1040可以在处理器1010的控制下与外部主机通信。主机接口1040可以使用各种通信方法中的至少一种来与主机通信,例如通用串行总线(USB)、串行AT附连(SATA)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、火线、外围组件互连(PCI)、PCI快速(PCIe)、非易失性存储器快速(NVMe)、通用闪存存储(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、带寄存器的DIMM(RDIMM)和低负载DIMM(LRDIMM)。
缓冲器控制电路1050被配置为在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060被配置为在处理器1010的控制下与存储器器件通信。存储器接口1060可以通过信道与存储器器件通信命令、地址和数据。
在一个示例中,存储器控制器1000可以不包括存储器缓冲器1020和缓冲器控制电路1050。
在一个示例中,处理器1010可以使用代码来控制存储器控制器1000的操作。处理器1010可以从存储器控制器1000中提供的非易失性存储器器件(例如,只读存储器(ROM))加载代码。在另一个示例中,处理器1010可以通过存储器接口1060从存储器器件加载代码。
在一个示例中,存储器控制器1000的总线1070可以被划分为控制总线和数据总线。数据总线可以被配置为在存储器控制器1000中传输数据,并且控制总线可以被配置为在存储器控制器1000中传输诸如命令和地址之类的控制信息。数据总线和控制总线彼此分离,并且可以不相互干扰或影响。数据总线可以耦合到主机接口1040、缓冲器控制电路1050、ECC电路1030和存储器接口1060。控制总线可以耦合到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。
图16是示出向其应用了根据所公开技术的实施例的存储器件的存储器卡系统的框图。
参照图16,存储器卡系统2000包括存储器控制器2100、存储器器件2200和连接器2300。
存储器控制器2100耦合到存储器器件2200。存储器控制器2100被配置为访问存储器器件2200。例如,存储器控制器2100被配置为控制存储器器件2200的读取、写入、擦除和后台操作。存储器控制器2100被配置为提供存储器器件2200和主机之间的接口。存储器控制器2100被配置为驱动用于控制存储器器件2200的固件。存储器控制器2100可以以与上面参考图2描述的存储器控制器100相同的方式实现。
在一个示例中,存储器控制器2100可以包括诸如随机访问存储器(RAM)、处理单元、主机接口、存储器接口和ECC电路的组件。
存储器控制器2100可以通过连接器2300与外部设备通信。存储器控制器2100可以基于特定通信协议与外部设备(例如,主机)通信。在一个示例中,存储器控制器2100可以通过各种通信协议中的至少一种与外部设备通信,例如通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、PCI快速(PCIe)、高级技术附连(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小磁盘接口(ESDI)、集成驱动电子设备(IDE)、火线、通用闪存存储(UFS)、Wi-Fi、蓝牙和NVMe。
在一个示例中,存储器器件2200可以实现为各种非易失性存储器器件,例如电可擦除和可编程ROM(EEPROM)、NAND闪存存储器、NOR闪存存储器、相变RAM(PRAM)、电阻RAM(ReRAM)、铁电RAM(FRAM)和自旋转移扭矩磁RAM(STT-MRAM)。
存储器控制器2100和存储器器件2200可以集成到单个半导体器件中以构成存储器卡。例如,存储器控制器2100和存储器器件2200可以构成以下存储器卡,如PC卡(个人计算机存储器卡国际协会(PCMCIA))、紧凑型闪存(CF)卡、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC、MMCmicro和eMMC)、SD卡(SD、迷你SD、微型SD和SDHC)和通用闪存存储(UFS)。
图17是示出向其应用了根据所公开技术的实施例的存储器件的固态驱动器(SSD)系统的框图。
参考图17,SSD系统3000包括主机3100和SSD 3200。SSD 3200通过信号连接器3001与主机3100交换信号SIG,并且通过电源连接器3002接收电源PWR。SSD 3200包括SSD控制器3210、多个闪存存储器3221至322n、辅助电源3230和缓冲器存储器3240。
在实施例中,SSD控制器3210可以用作上面参考图1描述的存储器控制器200。
SSD控制器3210可以响应于从主机3100接收的信号SIG来控制多个闪存存储器3221至322n。在一个示例中,信号SIG可以是基于主机3100和SSD 3200之间的接口的信号。例如,信号SIG可以是由各种接口中的至少一个定义的信号,例如通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、PCI快速(PCI-E)、高级技术附连(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小磁盘接口(ESDI)、集成驱动电子设备(IDE)、火线、通用闪存存储(UFS)、Wi-Fi、蓝牙和NVMe。
辅助电源3230通过电源连接器3002耦合到主机3100。当来自主机3100的电力供应不平稳时,辅助电源3230可以提供SSD 3200的电力。在一个示例中,辅助电源3230可以位于SSD 3200内部或位于SSD 3200外部。例如,辅助电源3230可以位于主板上,并且向SSD 3200提供辅助电力。
缓冲器存储器3240用作SSD 3200的缓冲器存储器。例如,缓冲器存储器3240可以临时存储从主机3100接收的数据或从多个闪存存储器3221至322n接收的数据,或者可以临时存储闪存存储器3221至322n的元数据(例如,映射表)。缓冲器存储器3240可以包括各种易失性存储器(例如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM)或者非易失性存储器(例如FRAM、ReRAM、STT-MRAM和PRAM)。
图18是示出向其应用了根据所公开技术的实施例的存储器件的用户系统的框图。
参考图18,用户系统4000包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以驱动包括在用户系统4000、操作系统(OS)、用户程序等中的组件。在一个示例中,应用处理器4100可以包括用于控制包括在用户系统4000中的组件的控制器、接口、图形引擎等。应用处理器4100可以被提供为片上系统(SoC)。
存储器模块4200可以作为用户系统4000的主存储器、工作存储器、缓冲器存储器或高速缓冲存储器而操作。存储器模块4200可以包括易失性随机访问存储器,例如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM,或可以包括非易失性随机访问存储器,例如PRAM、ReRAM、MRAM和FRAM。在一个示例中,应用处理器4100和存储器模块4200可以通过基于封装上封装(POP)被封装而提供为一个半导体封装。
网络模块4300可以与外部设备通信。在一个示例中,网络模块4300可以支持无线通信,例如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、WiMAX、WLAN、UWB、蓝牙或Wi-Fi。在一个示例中,网络模块4300可以被包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。备选地,存储模块4400可以将存储在其中的数据传输到应用处理器4100。在一个示例中,存储模块4400可以实现为非易失性半导体存储器器件,例如相变RAM(PRAM)、磁RAM(MRAM)、电阻RAM(RRAM)、NAND闪存、NOR闪存或具有三维结构的NAND闪存。在一个示例中,存储模块4400可以被提供为可移动驱动器,诸如用户系统4000的存储器卡或外部驱动器。
在一个示例中,存储模块4400可以包括多个非易失性存储器器件,并且所述多个非易失性存储器器件可以以与上面参考图2至图5描述的存储器器件100相同的方式操作。存储模块4400可以以与上面参考图1描述的存储设备50相同的方式操作。
用户接口4500可以包括将数据或命令输入到应用处理器4100或将数据输出到外部设备的接口。在一个示例中,用户接口4500可以包括用户输入接口,诸如键盘、小键盘、按钮、触摸板、触摸屏、触板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电元件。用户接口4500可以包括用户输出接口,诸如液晶显示器(LCD)、有机发光二极管(OLED)显示设备、有源矩阵OLED(AMOLED)显示设备、LED、扬声器和监视器。
根据所公开的技术,可以提供存储器控制器及存储器控制器的操作方法,所述存储器控制器被配置为根据坏块的数量来设置执行垃圾收集的条件。
虽然已经参考所公开技术的具体示例实施例示出和描述了所公开的技术,但是本领域技术人员将理解,在不脱离由所附权利要求和权利要求的等同物限定的本公开技术的范围和精神的情况下,可以进行各种形式和细节上的修改。因此,本公开技术的范围不应限定于前面描述的示例实施例,而应由所附权利要求和权利要求的等同物确定。
在上面讨论的实施例中,可以选择性地执行所有步骤,或可以跳过部分步骤。在每个实施例中,步骤不必按照描述的顺序执行,而是可以重新安排。此外,本说明书和附图中公开的实施例仅仅是帮助理解本公开技术的示例,而本公开技术不限于此。换句话说,本领域普通技术人员显然可以基于本公开技术的技术范围进行各种修改。
同时,已经在附图和说明书中描述了所公开技术的示例性实施例。尽管这里使用特定术语,但是这些仅是为了解释所公开技术的实施例。因此,所公开的技术不限于上述实施例,并且在所公开技术的精神和范围内许多变型是可能的。对于本领域技术人员显而易见的是,除了本文公开的实施例之外,还可以基于所公开技术的技术范围进行各种修改。
Claims (21)
1.一种存储器控制器,用于控制包括存储器块的存储器器件,所述存储器控制器包括:
垃圾收集状态确定器,所述垃圾收集状态确定器与主机设备通信,并且被配置为从所述主机设备接收垃圾收集状态请求,并确定所述存储器器件是否处于需要垃圾收集的状态;以及
块信息存储单元,所述块信息存储单元与所述垃圾收集状态确定器通信,并且被配置为从所述存储器器件接收坏块生成信息并存储块信息,所述坏块生成信息包括在所述存储器器件中包括的不能存储数据的坏块的数量,所述块信息包括所述存储器块的总数、所述坏块的数量、以及在所述存储器器件中包括的被分配用于垃圾收集的空闲块的数量,并且
其中,所述垃圾收集状态确定器基于所述坏块的数量和所述空闲块的数量,来确定所述存储器器件是否处于需要所述垃圾收集的状态。
2.根据权利要求1所述的存储器控制器,其中,所述坏块包括由于在所述存储器器件的操作期间引起的操作错误而被视为不可靠的运行时坏块。
3.根据权利要求1所述的存储器控制器,其中,所述坏块包括由于制造误差被视为不可靠的制造商坏块。
4.根据权利要求1所述的存储器控制器,其中,所述块信息存储单元被配置为在额外坏块的生成时从所述存储器器件接收额外坏块生成信息,并且基于接收的所述额外坏块生成信息来更新所述坏块的数量。
5.根据权利要求4所述的存储器控制器,其中,所述垃圾收集状态确定器被配置为从所述块信息存储单元接收更新的坏块的数量,并且基于所述更新的坏块的数量来提供状态信息。
6.根据权利要求1所述的存储器控制器,其中,所述垃圾收集状态确定器被配置为确定所述空闲块的数量是否等于或大于所述存储器块的总数和所述坏块的数量之差,并且输出指示不需要所述垃圾收集的标志。
7.根据权利要求1所述的存储器控制器,其中,所述垃圾收集状态确定器被配置为在确定所述空闲块的数量等于或大于所述存储器块的总数和所述坏块的数量之差时,确定需要所述垃圾收集,并且所述垃圾收集状态确定器被配置为在确定所述空闲块的数量小于所述存储器块的总数和所述坏块的数量之差时,确定不需要所述垃圾收集。
8.根据权利要求1所述的存储器控制器,还包括垃圾收集执行单元,所述垃圾收集执行单元与所述主机设备通信,并且被配置为在从所述主机设备接收到垃圾收集请求时执行所述垃圾收集。
9.根据权利要求8所述的存储器控制器,其中,在接收到所述垃圾收集状态请求时,所述垃圾收集状态确定器被配置为产生向所述块信息存储单元请求所述块信息的块信息请求。
10.根据权利要求9所述的存储器控制器,其中,在接收到所述块信息请求时,所述块信息存储单元被配置为将所述块信息提供给所述垃圾收集状态确定器。
11.根据权利要求1所述的存储器控制器,其中,所述垃圾收集状态确定器被配置为基于所述确定向所述主机设备提供状态信息,所述状态信息表示所述存储器器件是否处于需要垃圾收集的状态。
12.根据权利要求11所述的存储器控制器,其中所述状态信息包括比特值,所述比特值指示所述存储器器件是否处于需要垃圾收集的状态。
13.一种用于操作存储器控制器的方法,所述存储器控制器与包括存储器块的存储器器件通信,所述方法包括:
向所述存储器器件发送对坏块生成信息的请求,所述坏块输出信息包括坏块的数量,所述坏块表示所述存储器器件中的不能存储数据的存储器块;
从所述存储器器件接收所述坏块生成信息;
基于所述坏块生成信息来存储块信息,所述块信息包括所述存储器块的总数、所述坏块的数量和空闲块的数量,所述空闲块表示所述存储器器件中的可用于垃圾收集的存储器块;以及
基于所述块信息,确定所述存储器器件是否处于需要垃圾收集的状态;并且
其中,所述确定还包括:确定所述空闲块的数量是否等于或大于所述存储器块的总数与所述坏块的数量之差。
14.根据权利要求13所述的方法,其中,所述坏块生成信息包括关于运行时坏块的信息,所述运行时坏块是由于在所述存储器器件的操作期间引起的操作错误而被视为不可靠,并且所述坏块的数量被计数为包括运行时坏块的数量。
15.根据权利要求13所述的方法,其中,所述坏块生成信息包括关于制造商坏块的信息,所述制造商坏块是由于在所述存储器器件的制造期间引起的制造错误而被视为不可靠,并且所述坏块的数量被计数为包括制造商坏块的数量。
16.根据权利要求13所述的方法,还包括:在额外坏块的生成时从所述存储器器件接收到额外坏块生成信息时,更新所述坏块的数量。
17.根据权利要求13所述的方法,还包括:基于所述确定,向与所述存储器控制器通信的主机设备输出状态信息,所述状态信息表示是否需要所述垃圾收集。
18.根据权利要求16所述的方法,其中,在确定所述空闲块的数量等于或大于所述存储器块的总数和更新的坏块的数量之差时,确定所述存储器器件处于需要垃圾收集的状态。
19.根据权利要求13所述的方法,其中,在确定所述空闲块的数量小于多个存储器块的数量和更新的坏块的数量之差时,确定所述存储器器件处于不需要垃圾收集的状态。
20.根据权利要求13所述的方法,还包括:
从主机设备接收用于执行所述垃圾收集的垃圾收集请求;以及
响应于接收到所述垃圾收集请求来执行所述垃圾收集。
21.根据权利要求13所述的方法,还包括:在所述发送之前,从与所述存储器控制器通信的主机设备接收垃圾收集状态请求,其中,所述请求的发送是响应于所述垃圾收集状态请求的接收而进行的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190035041A KR20200114009A (ko) | 2019-03-27 | 2019-03-27 | 메모리 컨트롤러 및 그 동작 방법 |
KR10-2019-0035041 | 2019-03-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111752856A true CN111752856A (zh) | 2020-10-09 |
Family
ID=72605994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911037905.5A Withdrawn CN111752856A (zh) | 2019-03-27 | 2019-10-29 | 存储器控制器及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11194712B2 (zh) |
KR (1) | KR20200114009A (zh) |
CN (1) | CN111752856A (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200085513A (ko) * | 2019-01-07 | 2020-07-15 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
KR20220020008A (ko) * | 2020-08-11 | 2022-02-18 | 삼성전자주식회사 | 비휘발성 메모리를 포함하는 메모리 저장 장치 및 전자 장치 |
US11899577B2 (en) * | 2020-11-24 | 2024-02-13 | Micron Technology, Inc. | Selective garbage collection |
EP4283473A4 (en) | 2021-08-02 | 2024-09-04 | Samsung Electronics Co Ltd | APPARATUS AND METHOD FOR REDUCING MEMORY CLEANING OPERATIONS |
KR20230019629A (ko) * | 2021-08-02 | 2023-02-09 | 삼성전자주식회사 | 가비지 컬렉션의 동작 회피를 위한 장치 및 방법 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130173954A1 (en) * | 2012-01-02 | 2013-07-04 | Samsung Electronics Co., Ltd. | Method of managing bad storage region of memory device and storage device using the method |
US20160179399A1 (en) * | 2014-12-23 | 2016-06-23 | Sandisk Technologies Inc. | System and Method for Selecting Blocks for Garbage Collection Based on Block Health |
CN106297898A (zh) * | 2015-06-03 | 2017-01-04 | 杭州海康威视数字技术股份有限公司 | 一种NAND Flash存储器的寿命预警方法及装置 |
US20170123726A1 (en) * | 2015-10-30 | 2017-05-04 | Sandisk Technologies Inc. | System and method for rescheduling host and maintenance operations in a non-volatile memory |
US20170286286A1 (en) * | 2016-03-29 | 2017-10-05 | Micron Technology, Inc. | Memory devices including dynamic superblocks, and related methods and electronic systems |
CN107632777A (zh) * | 2016-07-18 | 2018-01-26 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN108108810A (zh) * | 2016-11-24 | 2018-06-01 | 三星电子株式会社 | 包括非易失性存储器件的存储装置及访问方法 |
US20180349243A1 (en) * | 2017-05-30 | 2018-12-06 | SK Hynix Inc. | Storage device and method of operating the same |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8397014B2 (en) * | 2008-02-04 | 2013-03-12 | Apple Inc. | Memory mapping restore and garbage collection operations |
US8327066B2 (en) * | 2008-09-30 | 2012-12-04 | Samsung Electronics Co., Ltd. | Method of managing a solid state drive, associated systems and implementations |
KR101997572B1 (ko) * | 2012-06-01 | 2019-07-09 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 쓰기 방법 |
KR20140142035A (ko) * | 2013-06-03 | 2014-12-11 | 삼성전자주식회사 | 메모리 컨트롤러 및 상기 메모리 컨트롤러의 동작방법 |
US9383926B2 (en) | 2014-05-27 | 2016-07-05 | Kabushiki Kaisha Toshiba | Host-controlled garbage collection |
KR102365269B1 (ko) * | 2015-04-13 | 2022-02-22 | 삼성전자주식회사 | 데이터 스토리지 및 그것의 동작 방법 |
JP6697410B2 (ja) * | 2017-03-21 | 2020-05-20 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US10866741B2 (en) * | 2017-08-02 | 2020-12-15 | Toshiba Memory Corporation | Extending SSD longevity |
KR102620255B1 (ko) * | 2018-05-18 | 2024-01-04 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US10795604B2 (en) * | 2018-07-23 | 2020-10-06 | Western Digital Technologies, Inc. | Reporting available physical storage space of non-volatile memory array |
KR20200085513A (ko) | 2019-01-07 | 2020-07-15 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
-
2019
- 2019-03-27 KR KR1020190035041A patent/KR20200114009A/ko active Search and Examination
- 2019-10-08 US US16/596,606 patent/US11194712B2/en active Active
- 2019-10-29 CN CN201911037905.5A patent/CN111752856A/zh not_active Withdrawn
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130173954A1 (en) * | 2012-01-02 | 2013-07-04 | Samsung Electronics Co., Ltd. | Method of managing bad storage region of memory device and storage device using the method |
US20160179399A1 (en) * | 2014-12-23 | 2016-06-23 | Sandisk Technologies Inc. | System and Method for Selecting Blocks for Garbage Collection Based on Block Health |
CN106297898A (zh) * | 2015-06-03 | 2017-01-04 | 杭州海康威视数字技术股份有限公司 | 一种NAND Flash存储器的寿命预警方法及装置 |
US20170123726A1 (en) * | 2015-10-30 | 2017-05-04 | Sandisk Technologies Inc. | System and method for rescheduling host and maintenance operations in a non-volatile memory |
US20170286286A1 (en) * | 2016-03-29 | 2017-10-05 | Micron Technology, Inc. | Memory devices including dynamic superblocks, and related methods and electronic systems |
CN107632777A (zh) * | 2016-07-18 | 2018-01-26 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN108108810A (zh) * | 2016-11-24 | 2018-06-01 | 三星电子株式会社 | 包括非易失性存储器件的存储装置及访问方法 |
US20180349243A1 (en) * | 2017-05-30 | 2018-12-06 | SK Hynix Inc. | Storage device and method of operating the same |
Non-Patent Citations (1)
Title |
---|
胡萍;: "NAND闪存垃圾回收策略改进", 铜仁学院学报, no. 04, pages 141 - 143 * |
Also Published As
Publication number | Publication date |
---|---|
US20200310966A1 (en) | 2020-10-01 |
US11194712B2 (en) | 2021-12-07 |
KR20200114009A (ko) | 2020-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111105832B (zh) | 存储装置和操作存储装置的方法 | |
US11194712B2 (en) | Memory controller and operating method for performing garbage collection operation in memory devices | |
KR20210142981A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
CN111352855B (zh) | 具有提高的映射更新速度的存储装置及其操作方法 | |
KR20190123544A (ko) | 저장 장치 및 그 동작 방법 | |
US11119950B2 (en) | Storage device and method of operating the same | |
CN111580744B (zh) | 存储器控制器及其操作方法 | |
CN112988049A (zh) | 存储装置及其操作方法 | |
CN112463664A (zh) | 存储装置及其操作方法 | |
CN111435333B (zh) | 存储装置及其操作方法 | |
CN111338978B (zh) | 存储装置以及操作存储装置的方法 | |
CN110827873B (zh) | 存储器控制器 | |
CN111258931A (zh) | 存储器控制器及操作该存储器控制器的方法 | |
CN110619912A (zh) | 存储装置以及该存储装置的操作方法 | |
CN111506515B (zh) | 存储器控制器及其操作方法 | |
CN112309446A (zh) | 存储设备和操作存储设备的方法 | |
CN111210862A (zh) | 存储器控制器及操作该存储器控制器的方法 | |
CN110648698A (zh) | 储存装置、存储器件及操作该存储器件的方法 | |
US11551762B2 (en) | Memory device and method of operating the same | |
CN113342708B (zh) | 存储器控制器及其操作方法 | |
CN112445420B (zh) | 存储控制器、存储装置以及操作该存储装置的方法 | |
CN112015588B (zh) | 存储控制器以及操作该存储控制器的方法 | |
CN112199037A (zh) | 存储器控制器及其操作方法 | |
US11500768B2 (en) | Storage device performing garbage collection and method of operating the same | |
US20220328101A1 (en) | Memory device and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201009 |
|
WW01 | Invention patent application withdrawn after publication |