CN114691535A - 存储装置及其操作方法和存储器控制器的操作方法 - Google Patents

存储装置及其操作方法和存储器控制器的操作方法 Download PDF

Info

Publication number
CN114691535A
CN114691535A CN202111357422.0A CN202111357422A CN114691535A CN 114691535 A CN114691535 A CN 114691535A CN 202111357422 A CN202111357422 A CN 202111357422A CN 114691535 A CN114691535 A CN 114691535A
Authority
CN
China
Prior art keywords
memory
data
page
fragmentation
valid page
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.)
Pending
Application number
CN202111357422.0A
Other languages
English (en)
Inventor
申东殷
金钟华
陈英黄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN114691535A publication Critical patent/CN114691535A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

Abstract

提供了存储装置及其操作方法和存储器控制器的操作方法,存储器控制器被配置为控制包括多个存储器块的存储器装置,每个存储器块用于存储多个页。所述操作方法包括:基于来自主机的写入请求将编程命令传送到存储器装置;基于从存储器装置接收的有效页信息来更新有效页位图,有效页位图表示多个页的有效性;基于有效页位图来计算碎片率,碎片率表示存储器块的至少一个有效页与至少一个无效页之间的分段度;以碎片率的升序确定所述多个存储器块之中的源块;以及对源块执行垃圾收集。

Description

存储装置及其操作方法和存储器控制器的操作方法
本申请基于并要求于2020年12月28日在韩国知识产权局提交的第10-2020-0185208号韩国专利申请的优先权,所述韩国专利申请的公开通过引用全部包含于此。
技术领域
本公开总体上涉及存储装置(storage device)的操作方法,更具体地,涉及用于在存储装置的操作期间高效去除/覆写(overwrite)不必要的数据(“垃圾收集”,garbagecollection)的技术。
背景技术
存储装置(诸如,固态驱动器(SSD)、非易失性存储器快速(NVMe)、嵌入式多媒体卡(eMMC)和使用非易失性存储器装置的通用闪存(UFS))在当今的电子装置中广泛地被使用。
当数据经由程序连续地被写入闪存中时,有效数据(例如,仍然与程序相关并且尚未被覆写的数据)可以以诸如页的单位被分布在整个闪存中。存储器块可各自存储多个页。同时,其数据被新页覆写的旧页可能不一定立即被擦除并由相同的存储器位置中的新页替换。相反,新页可被存储在不同的存储器块中。
空闲存储器块是完全空闲(例如,当前没有存储数据)以能够写入一个或多个数据单元(诸如,页)的存储区域。当第一存储器块处于已经存储了有效页和无效页的非空闲状态时,第一存储器块可通过将有效页“移动”到第二存储器块而被转换为空闲存储器块。这可通过将有效页复制到第二存储器块随后擦除第一存储器块中的无效页和有效页来完成。这个处理被称为垃圾收集。
用于垃圾收集的当前方法使用针对可被选择成为空闲存储器块的存储器块的有效页计数。如果候选存储器块的有效页计数(存储在存储器块中的有效页的数量)超过阈值,则候选存储器块可被选择用于转换为空闲存储器块。虽然这个方法可提高垃圾收集的效率,但是对于高速的输入/输出(I/O)数据处理,需要具有相对更高的数据I/O效率的垃圾收集方法。
发明内容
发明构思的实施例提供了一种存储器控制器的操作方法,存储器控制器通过以下操作来高效地执行垃圾收集:基于对候选存储器块中的有效页进行分组来确定“碎片率”,每个“碎片率”表示候选存储器块的分段度;以及基于碎片率在多个候选块之中选择源块。实施例包括存储装置及其操作方法,存储装置基于这样的碎片率高效地执行垃圾收集。
根据发明构思的方面,提供一种存储器控制器的操作方法,存储器控制器被配置为控制包括多个存储器块的存储器装置,每个存储器块用于存储多个页,所述操作方法包括:基于来自主机的写入请求将编程命令传送到存储器装置;基于从存储器装置接收的有效页信息来更新有效页位图,有效页位图表示所述多个存储器块的多个页的有效性;基于有效页位图来计算碎片率,碎片率表示所述多个存储器块之中的存储器块的至少一个有效页与至少一个无效页之间的分段度;以碎片率的升序确定所述多个存储器块之中的源块;以及对源块执行垃圾收集。
根据发明构思的另一方面,提供一种存储装置的操作方法,存储装置包括存储器装置和存储器控制器,存储器装置包括均用于存储多个页的多个存储器块,存储器控制器被配置为控制存储器装置,所述操作方法包括:由存储器控制器执行操作,所述操作包括:从主机接收数据和写入请求,将编程命令传送到存储器装置。存储器装置可将数据写入存储器空间中,并且生成有效页信息,有效页信息表示与数据被写入其中的存储器空间对应的页是否有效。存储器控制器还可执行以下操作:基于从存储器装置接收的有效页信息来更新有效页位图,有效页位图表示所述多个页的有效性;基于有效页位图来计算碎片率,碎片率表示有效页与无效页之间的分段度;以及基于碎片率来执行垃圾收集。
根据发明构思的另一方面,提供一种存储装置,所述存储装置包括:存储器装置,包括均用于存储多个页的多个存储器块,存储器装置被配置为提供关于所述多个存储器块的有效页信息;以及存储器控制器,被配置为:基于有效页信息来计算碎片率,并且在垃圾收集处理中基于碎片率来重新布置和擦除所述多个存储器块内的数据,碎片率表示存储器块的至少一个有效页与至少一个无效页之间的分段度。
根据发明构思的另一方面,提供一种存储器控制器的操作方法,存储器控制器被配置为控制包括多个存储器块的存储器装置,每个存储器块用于存储多个页。所述操作方法包含:基于来自主机的写入请求将编程命令传送到存储器装置;基于从存储器装置接收的有效页信息来更新有效页位图,有效页位图表示多个页的有效性;以及基于有效页位图来计算碎片率(FR)。每个FR表示所述多个存储器块之中的相应存储器块的分段度。每个分段度等于相应存储器块的有效页组的数量。每个有效页组是存储器块内的一组相邻的有效页,其中,有效页组的第一页和有效页组的最后页中的每个分别与相应存储器块的前一有效页和后一有效页不相邻。将所述多个存储器块之中的源块确定为具有比其它存储器块的碎片率低的碎片率的块。对源块执行垃圾收集。
附图说明
从下面的结合附图的详细描述,将更清楚地理解发明构思的实施例,其中:
图1是示出根据实施例的存储装置的框图;
图2是示出根据实施例的存储器控制器的框图;
图3是示出根据实施例的存储装置的框图;
图4是示出根据实施例的存储器装置(memory device)的框图;
图5是示出根据实施例的存储装置的框图;
图6是描述根据实施例的存储器控制器的操作方法的流程图;
图7是示出根据实施例的存储在存储器装置中的数据的结构的概念图;
图8是描述根据实施例的在存储器装置中执行的垃圾收集的概念图;
图9是描述根据实施例的在存储器控制器中计算的碎片率(fragmentationratio)的概念图;
图10是描述根据实施例的存储器控制器的操作方法的流程图;
图11是描述根据实施例的有效页位图(valid page bitmap)的概念图;
图12是描述根据实施例的在存储器控制器中计算的碎片率的概念图;
图13是描述根据实施例的存储器控制器的操作方法的流程图;
图14是描述根据实施例的在存储器控制器中计算的碎片度(fragmentationdegree)的概念图;
图15是描述根据实施例的通过使用碎片率和碎片度执行的垃圾收集的概念图;
图16是描述根据实施例的存储装置的操作方法的流程图;
图17是示出根据实施例的存储器系统的框图;
图18是示出应用了根据实施例的存储装置的存储系统的框图;
图19是示出根据实施例的存储器系统的框图;
图20是描述根据实施例的通用闪存(UFS)系统的框图;
图21是根据实施例的适用于存储装置的存储器装置的结构的剖视图;以及
图22是示出应用了根据实施例的存储装置的数据中心的框图。
具体实施方式
在下文中,将参照附图详细描述实施例。
图1是示出根据实施例的存储装置10的框图。存储装置10可将数据存储在存储区域中。在此,术语“存储区域”可用于表示存储装置10的内部逻辑存储区域或物理存储区域(诸如,扇区、页或块)。因此,诸如“将数据存储在页中”的短语被理解为表示以页为单位的数据被存储在物理存储区域中。
根据实施例,存储装置10可基于存储数据的页的有效性(validity)来计算碎片率(fragmentation ratio),并且可基于碎片率来执行数据重新对齐(realignment)。在此,诸如“基于数据单元的有效性”的短语被理解为表示“基于数据单元是有效的还是无效的”。
在此,当页与程序相关时,该页是有效页。例如,当程序期望通过存储替换旧数据的新数据(覆写)旧数据)来覆写数据时,包含新数据的页是有效页。在这个处理中将被覆写的页是无效页。如前所述,重新定位有效页和擦除无效页的方法可被称为垃圾收集。垃圾收集处理可涉及释放包含有效页和无效页两者的存储器的整个第一存储器块。这可通过将第一存储器块的有效页复制到第二存储器块随后擦除第一存储器块内的所有页来完成。新的有效页随后可被存储在释放的(第一)存储器块中。
在一个实施例中,存储装置10可包括存储系统或嵌入到存储器系统中的嵌入式存储器。在一个实施例中,存储装置10可包括嵌入式多媒体卡(eMMC)或嵌入式通用闪存(UFS)存储器。在一个实施例中,存储装置10可包括可附接在存储系统上/可从存储系统拆卸的外部存储器。例如,存储装置10可包括UFS存储卡、紧凑型闪存(CF)、安全数字(SD)、微型安全数字(Micro-SD)、迷你安全数字(Mini-SD)、极限数字(xD)或记忆棒,但不限于此。
存储装置10可包括存储器控制器100和存储器装置200。存储器控制器100可包括碎片率(FR)计算器(或FR计算器)330,存储器装置200可包括多个存储器块BLK 210。
存储器控制器100可整体控制存储装置10。响应于来自主机的读取请求或写入请求,存储器控制器100可读取存储在存储器装置200中的数据,或者可控制存储器装置200对存储器装置200中的数据进行编程。在一个实施例中,存储器控制器100可向存储器装置200提供地址、命令和控制信号,因此可控制对存储器装置200的编程操作、读取操作和擦除操作。此外,基于主机的请求并将被编程在存储器装置200中的数据和读取的数据可在存储器控制器100与存储器装置200之间被传送和接收。
FR计算器330可基于存储数据的页的有效性来计算FR。根据实施例,碎片率FR可表示数据的分段度(segmentation degree)。更详细地,碎片率FR可表示存储器块的至少一个有效页和至少一个无效页的分段度。根据实施例,碎片率FR可对应于在将数据传送到存储器装置200的页缓冲器(未示出)的一系列处理中执行的直接存储器访问(DMA)操作的次数。
在一个实施例中,每个FR可表示多个存储器块BLK之中的相应存储器块的分段度。每个分段度可等于相应存储器块的有效页组的数量。每个有效页组可以是存储器块内的一组相邻的有效页,其中,有效页组的第一页和有效页组的最后页中的每个分别与相应存储器块的前一有效页和后一有效页不相邻。例如,暂时参照图9,示出了FR的一些示例。对于存储特定数量的页的存储器块,当存在相对更多组的有效页时,FR以及因此存储器块的分段度相对更高。这将在之后详细解释。注意,有效页组可具有少至单个有效页。
根据实施例,碎片率FR可基于有效页位图而被计算。在一个实施例中,有效页位图可表示多个页中的每个页的有效性。根据实施例,有效性可被表示为“0”或“1”。例如,有效页可被表示为有效页位图中的位“1”,无效页可被表示为有效页位图中的位“0”,反之亦然。
根据实施例,存储器块的碎片率FR可等于存储器块的有效页组的数量。(这将在以下参照图9的示例进行示出。)
根据实施例,FR计算器330可计算“碎片度(fragmentation degree)”(FD)。以下将结合图14的示例进一步解释碎片度。根据实施例,碎片度可对应于彼此相邻并且具有“相同有效性条件”的有效页组和无效页组的总数量。具有相同有效性条件的两个或更多个页组全部是有效的或者全部是无效的。例如,FR计算器330可检测有效页位图中的一个存储器块的顺序位,对顺序位进行分组,并且计算具有相同有效性条件的组的数量,从而计算碎片度。
存储装置10可基于FR和FD执行数据重新对齐。在一个实施例中,当一组存储器块内的候选存储器块(用于选择源存储器块)的FR相同时,存储装置10可基于碎片度FD执行数据重新对齐。
以下将参照图5和图9详细描述通过使用FR计算器330计算FR的处理。
存储器装置200可包括非易失性存储器装置。在一个实施例中,存储器装置200可包括应用各种类型的存储器(诸如,NAND型闪存、磁RAM(MRAM)、自旋转移力矩MRAM、导电桥接RAM(CBRAM)、铁电RAM(FeRAM)、相变RAM(PRAM)、电阻式RAM(RRAM)、纳米管RAM、聚合物RAM(PoRAM)、纳米浮栅存储器(NFGM)、全息存储器、分子电子存储器以及绝缘电阻变化存储器)的装置。
在一个实施例中,存储器装置200可包括闪存,并且闪存可包括二维(2D)NAND存储器阵列或三维(3D)(或垂直)NAND(VNAND)存储器阵列。3D存储器阵列可以是包括存储器单元的阵列的电路,存储器单元的阵列包括设置在硅基底上并与每个存储器单元的操作相关联的有源区域,并且3D存储器阵列可在设置在基底上或基底中的电路的至少一个物理层级上以单片类型(monolithic type)被配置。术语“单片类型”可表示配置阵列的层级的层仅被堆叠在阵列的较低层级的层上。在一个实施例中,3D存储器阵列可包括多个垂直NAND串,垂直NAND串在垂直方向上被布置以允许至少一个存储器单元设置在另一存储器单元上。至少一个存储器单元可包括电荷捕获层。第7,679,133号、第8,553,466号、第8,654,587号和第8,559,235号美国专利公开以及第2011/0233648号美国专利申请公开了3D存储器单元阵列的适当元件,3D存储器单元阵列包括多个层级并且其中字线和/或位线在多个层级之间被共享。
存储器装置200可包括多个存储器块BLK 210。多个存储器块中的每个可包括至少一个页,并且至少一个页中的每个可包括连接到多条字线的多个存储器单元。在一个实施例中,存储器装置200可包括包含多个存储器块BLK210的多个面(plane),特别地,可包括分别包含多个面的多个存储器裸片。根据实施例,存储器装置200可以以页为单位执行写入操作或读取操作,并且可以以块为单位执行擦除操作。
根据实施例,存储器装置200可基于存储器控制器100的请求而存储数据,并且可向存储器控制器100提供表示存储数据的页的有效性的有效页信息。根据实施例,存储器装置200可在每一特定时段、每次数据写入结束时或者基于存储器控制器100的请求,检查存储数据的页的有效性,生成有效页信息,并且将有效页信息提供给存储器控制器100。
存储器装置200可包括存储1位数据的单层单元(SLC)和存储多位数据(例如,2位或更多位)的多层单元(MLC)。例如,存储器装置200可包括用于存储3位数据的三层单元(TLC)或用于存储4位数据的四层单元(QLC),或者可包括用于存储5位或更多位数据的存储器单元。
在一个实施例中,主机可将命令提供给存储装置10并且可传送或接收数据。在一个实施例中,主机可将写入命令和写入数据提供给存储装置10。在一个实施例中,主机可将读取命令传送到存储装置10,并且可被提供有来自存储装置10的读取数据。从主机提供的数据可具有各种特性。
主机可包括一个或多个处理器核,或者可被实现为片上系统(SoC)。例如,主机可包括通用处理器和专用处理器。主机可以是处理器,或者可对应于包括处理器的电子装置或系统。在一个实施例中,主机可对应于中央处理器(CPU)、处理器、微处理器或应用处理器(AP)。
主机和存储器装置200可基于预定协议发送和接收(即,接口连接(interface))数据。用于存储器装置200与主机之间的通信的接口可使用各种接口方案(诸如,高级技术附件(ATA)、串行ATA(SATA)、小型计算机小型接口(SCSI)、串行附接SCSI(SAS)、并行高级技术附件(PATA)、外围组件互连(PCI)、PCI快速(PCI-E)、IEEE 1394、通用串行总线(USB)、安全数字(SD)卡、多媒体卡(MMC)、嵌入式多媒体卡(eMMC)、紧凑型闪存(CF)卡接口、增强型小磁盘接口(ESDI)、集成驱动电子设备(IDE)以及移动工业处理器接口(MIPI)),但是发明构思不限于此。
存储器控制器100和存储器装置200可通过一或多个通道发送/接收命令、地址和数据。从主机传送的将通过特定通道在存储器装置的特定存储区域中被执行的命令可由从主机传送的逻辑地址或逻辑块地址(LBA)定义。
图2是示出根据实施例的存储器控制器100的框图。
结合图1来参照图2。存储器控制器100可接收从主机提供的请求,并且可响应于该请求而访问存储器装置(图1的200)。更详细地,存储器控制器100可响应于从主机输入的请求来控制存储器装置200的读取操作、编程操作或擦除操作。该请求可包括读取请求、写入请求和擦除请求。基于主机的写入请求,存储器控制器100可执行控制以直接地将数据编程到存储器装置200中,或者可执行控制以在编程的数据被擦除之后执行编程。
存储器控制器100可包括主机接口(主机I/F)110、处理器120、随机存取存储器(RAM)130、只读存储器(ROM)140、电源管理电路(PMIC)150以及NAND接口(NAND I/F)160。主机接口110、处理器120、RAM 130、ROM 140、电源管理电路150以及NAND接口160可通过总线170彼此电连接。总线170可表示用于在存储器控制器100的元件之间传送信息的传送路径。除了所列元件之外,存储器控制器100还可包括用于存储器操作的其它元件。
主机接口110可包括主机与存储器控制器100之间的数据交换协议。因此,作为主机,各种装置可访问主机接口110。在一个实施例中,主机接口110可基于主机的总线格式提供与存储器控制器100的接口连接。主机接口110可包括作为主机的总线(总线格式)的USB、SCSI、PCIe、ATA、PATA、SATA和SAS。在一个实施例中,主机接口110可包括安装在主机装置中的非易失性存储器快速(NVMe)协议,非易失性存储器快速(NVMe)协议基于PICe交换数据。
处理器120可控制存储装置(图1的10)的整体操作。例如,处理器120可控制存储装置10来对从主机接收的请求进行解码并基于解码的结果执行操作。
响应于读取请求,处理器120可在执行读取操作时将读取命令和地址提供给存储器装置(图1的200),并且响应于写入请求,处理器120可在执行写入操作时向存储器装置200提供写入命令、地址和写入数据。
处理器120可通过使用存储在存储器控制器100中的元数据来执行将从主机接收的逻辑地址转换为物理页地址的操作。这里,元数据可被理解为由存储装置(图1的10)生成以便管理存储器装置(图1的200)的管理信息。元数据可包括用于将逻辑地址转换为闪存310至330中的每个的物理页地址的映射表信息,此外,可包括用于管理存储器装置(图1的200)的存储区域的多条信息。
更详细地,处理器120可执行将与读取/写入请求一起从主机接收的逻辑地址转换为物理地址的操作,以用于存储器装置200的读取/写入操作。将逻辑地址转换为物理地址的操作可在闪存转换层(FTL)300中被执行。处理器120可执行加载到ROM 140的固件,因此,用于管理存储器装置200的地址映射、耗损均衡(wear leveling)或垃圾收集可在FTL 300中被执行。
RAM 130可临时存储从主机传送的数据、由处理器120生成的数据和/或从存储器装置(图1的200)读取的数据。用于存储装置的操作的固件或软件可从ROM 140被加载到RAM130。此外,从存储器装置(图1的200)读取的元数据可被存储在RAM 130中。RAM 130可被实现为动态RAM(DRAM)、静态RAM(SRAM)等。
RAM 130可包括闪存转换层300。闪存转换层300可以是用于在文件系统与存储器装置之间映射每个地址的元件。在一个实施例中,闪存转换层300可将主机的逻辑块地址(LBA)转换为存储器装置200的物理块地址(PBA)。以下将参照图5详细描述闪存转换层300。
ROM 140可以是存储由处理器120执行的程序的读取专用存储器。ROM 140可存储用于实现存储器控制器100的操作方法的程序或其中记录有程序的固件。
电源管理电路150可向存储装置10的每个元件供应电力或存储装置10的每个元件所需的时钟。NAND接口160可被配置为控制用于驱动存储器装置(图1的200)的信号,并且基于处理器120的控制来访问存储器装置(图1的200)。NAND接口160可被配置为通过至少一个通道选择性地执行软件和硬件交织操作(interleaving operation)。
尽管未示出,但是还可设置用于存储装置10的高效操作的各种元件。例如,存储装置10还可包括机器学习知识产权(IP)块(未示出)。机器学习IP块可包括用于加速由神经网络的模型执行的算术运算的一个或多个处理器,此外,还可包括用于存储与神经网络的模型对应的程序的单独的存储器。例如,包括在机器学习IP块中的处理器可对应于神经网络处理器(NPU),并且可包括用于执行卷积层的固定功能引擎和用于执行非卷积层的可编程层。作为另一示例,包括在机器学习IP块中的处理器可被实现为用于高速并行处理的图形处理器(GPU)和用于对向量运算或矩阵运算执行并行处理的基于专用集成电路(ASIC)的张量处理器(TPU)中的至少一个。根据各种实施例,机器学习IP块可被称为包括神经网络处理装置、神经网络集成电路、神经形态计算单元或深度学习装置的各种术语。机器学习可使用各种类型的网络模型(诸如,
Figure BDA0003357815170000101
卷积神经网络(CNN)(诸如,VGG网络)、区域卷积神经网络(R-CNN)、区域生成网络(RPN)、循环神经网络(RNN)、基于堆叠的深度神经网络(S-DNN)、状态空间动态神经网络(S-SDNN)、解卷积网络、深度信念网络(DBN)、受限玻尔兹曼机(RBM)、全卷积网络、长短期记忆(LSTM)网络、分类网络、深度Q网络(DQN)、双DQN、对抗DQN(dueling DQN)、分布强化学习、多步学习、优先经验重放(PER)、噪声DQN、分类DQN、融合DQN(rainbow DQN)、分散策略网络(DPN)、深度分散策略网络(DDPN)、基于模型的学习、蒙特卡罗(Monte Carlo)、SARSA、策略搜索、参与者-评价者(Actor-Critic)以及A3C,但不限于此)。
图3是示出根据实施例的存储装置10的框图。存储装置10可包括存储器控制器100和存储器装置200。图3的存储器控制器100和存储器装置200可执行与图1的存储器控制器100和存储器装置200的功能相同的功能,因此发明构思的范围内的重复描述被省略。存储装置10可支持多个通道CH1至CHm(这里,m是正整数),存储器装置200可通过多个通道CH1至CHm连接到存储器控制器100。例如,存储装置10可被实现为诸如SSD的存储装置。
存储器装置200可包括多个NVM装置NVM11至NVMmn(这里,n是正整数)。NVM装置NVM11至NVMmn中的每个可通过与其对应的路(way)连接到多个通道CH1至CHm中的一个。例如,NVM装置NVM11至NVM1n可通过路W11至W1n连接到第一通道CH1,NVM装置NVM21至NVM2n可通过路W21至W2n连接到第二通道CH2。在一个示例实施例中,NVM装置NVM11至NVMmn中的每个可被实现为可根据来自存储器控制器100的单独命令进行操作的任意存储器单元。例如,NVM装置NVM11至NVMmn中的每个可被实现为芯片或裸片,但是发明构思不限于此。
存储器控制器100可通过多个通道CH1至CHm将信号发送到存储器装置200以及从存储器装置200接收信号。例如,存储器控制器100可通过通道CH1至CHm将命令CMDa至CMDm、地址ADDRa至ADDRm和数据DATAa至DATAm发送到存储器装置200,或者从存储器装置200接收数据DATAa至DATAm。
存储器控制器100可通过使用通道CH1至CHm中的对应的一个来选择连接到通道CH1至CHm中的每个的NVM装置NVM11至NVMmn中的一个NVM装置,并且将信号发送到选择的NVM装置和从选择的NVM装置接收信号。例如,存储器控制器100可从连接到第一通道CH1的NVM装置NVM11至NVM1n选择NVM装置NVM11。存储器控制器100可通过第一通道CH1将命令CMDa、地址ADDRa和数据DATAa发送到选择的NVM装置NVM11,或者从选择的NVM装置NVM11接收数据DATAa。
存储器控制器100可通过不同的通道并行地将信号发送到存储器装置200和从存储器装置200接收信号。例如,存储器控制器100可在通过第一通道CH1将命令CMDa发送到存储器装置200的同时,通过第二通道CH2将命令CMDb发送到存储器装置200。例如,存储器控制器100可在通过第一通道CH1从存储器装置200接收数据DATAa的同时,通过第二通道CH2从存储器装置200接收数据DATAb。
存储器控制器100可控制存储器装置200的所有操作。存储器控制器100可将信号发送到通道CH1至CHm,并且控制连接到通道CH1至CHm的NVM装置NVM11至NVMmn中的每个。例如,存储器控制器100可将命令CMDa和地址ADDRa发送到第一通道CH1,并且控制从NVM装置NVM11至NVM1n选择的一个NVM装置。
NVM装置NVM11至NVMmn中的每个可经由存储器控制器100的控制进行操作。例如,NVM装置NVM11可基于提供给第一通道CH1的命令CMDa、地址ADDRa和提数据DATAa来对数据DATAa进行编程。例如,NVM装置NVM21可基于提供给第二通道CH2的命令CMDb和地址ADDb来读取数据DATAb,并且将读取的数据DATAb发送到存储器控制器100。
尽管图3示出了存储器装置200通过m个通道与存储器控制器100进行通信并且包括与每个通道对应的n个NVM装置的示例,但是通道的数量和连接到一个通道的NVM装置的数量可不同地被改变。
图4是示出根据实施例的存储器装置200的框图。
参照图4并且参照图2,存储器装置200可包括控制逻辑230、存储器单元阵列220、页缓冲器240、电压生成器250以及行解码器260。尽管图4中未示出,但是存储器装置200还可包括图4中示出的存储器接口电路。另外,存储器装置200还可包括列逻辑、预解码器、温度传感器、命令解码器和/或地址解码器。
控制逻辑230可控制存储器装置200的所有各种操作。控制逻辑230可响应于来自存储器接口电路的命令CMD和/或地址ADDR而输出各种控制信号。例如,控制逻辑230可输出电压控制信号CTRL_vol、行地址X-ADDR和列地址Y-ADDR。
存储器单元阵列220可包括多个存储器块BLK1至BLKz(这里,z是正整数),每个存储器块可包括多个存储器单元。存储器单元阵列220可通过位线BL连接到页缓冲器240,并且通过字线WL、串选择线SSL和地选择线GSL连接到行解码器260。
在一个示例实施例中,存储器单元阵列220可包括3D存储器单元阵列,3D存储器单元阵列包括多个NAND串。每个NAND串可包括分别连接到垂直堆叠在基底上的字线的存储器单元。第7,679,133号、第8,553,466号、第8,654,587号、第8,559,235号美国专利以及第2011/0233648号美国专利公开的公开通过引用包含于此。在一个示例实施例中,存储器单元阵列220可包括2D存储器单元阵列,2D存储器单元阵列包括在行方向和列方向上布置的多个NAND串。
页缓冲器240可包括多个页缓冲器PB1至PBn(这里,n是大于或等于3的整数),多个页缓冲器PB1至PBn可通过多条位线BL分别连接到存储器单元。页缓冲器240可响应于列地址Y-ADDR而多条选择位线BL中的至少一条。页缓冲器240可根据操作模式来作为写入驱动器或感测放大器进行操作。例如,在编程操作期间,页缓冲器240可将与将被编程的数据对应的位线电压施加到选择的位线。在读取操作期间,页缓冲器240可感测选择的位线BL的电流或电压,并且感测存储在存储器单元中的数据。
电压生成器250可基于电压控制信号CTRL_vol生成用于编程操作、读取操作和擦除操作的各种电压。例如,电压生成器250可生成编程电压、读取电压、编程验证电压和擦除电压作为字线电压VWL。
行解码器260可响应于行地址X-ADDR而选择多条字线WL中的一条,并且选择多条串选择线SSL中的一条。例如,行解码器260可在编程操作期间将编程电压和编程验证电压施加到选择的字线WL,并且在读取操作期间将读取电压施加到选择的字线WL。
图5是示出根据实施例的存储装置10的框图。图5的存储装置10可执行与图1和图2的存储装置10的功能相同的功能,因此,在发明构思的范围内的重复描述被省略。在下文中,将描述存储器装置200是闪存装置(即,非易失性存储器(NVM))的示例。存储器控制器100可包括如上所述的闪存转换层300。
在一个实施例中,闪存转换层300可在主机的文件系统与存储器装置200之间提供用于隐藏存储器装置200的擦除操作的接口。通过使用闪存转换层300,可解决存储器装置200的写前擦除和擦除单元与写入单元之间的不匹配的问题以及闪存的最大擦除计数的问题。通过使用处理器(图2的120)执行闪存转换层300的至少一部分,下面的操作可由闪存转换层300执行。
在闪存转换层300中,用于将通过文件系统生成的逻辑地址LBA分配为存储器装置200的物理地址PBA的映射可被执行。闪存转换层300可对存储器装置200的每个块的写入计数进行计数,并且可执行用于执行分布的耗损均衡,使得多个块之间的写入程度是均匀的。此外,闪存转换层300可执行重新对齐数据的垃圾收集,以便解决由在存储区域中重复的数据的写入或删除引起的无效区域(即,垃圾)的增加。
根据实施例,存储器控制器100可基于与存储区域对应并被写入存储器装置200中的页信息来计算碎片率FR,并且可基于碎片率FR对存储器装置200执行垃圾收集,从而将存储区域的无效区域转换为有效区域。
闪存转换层300可包括输入/输出(I/O)接口(I/O I/F)310、FR计算器330和垃圾收集(GC)管理器350。
I/O接口310可响应于主机的写入请求而接收将被写入的数据DATA(在下文中,仅由“DATA”指示)和DATA的逻辑地址LBA,并且可基于存储在RAM(图2的130)或ROM(图2的140)中的映射表而向存储器装置200提供与逻辑地址LBA对应的物理地址PBA。根据实施例,I/O接口310可将物理地址PBA提供给控制逻辑230,并且可将DATA提供给页缓冲器240。
存储器装置200可基于从I/O接口310接收的物理地址PBA执行将DATA写入存储器装置200的存储区域(例如,多个非易失性存储器NVM1至NVMn(其中,n是2或更大的自然数))中的写入操作。
根据实施例,控制逻辑230可接收物理地址PBA,并且可输出存储器单元阵列(图4的220)的行地址(图4的X-ADDR)和列地址(图4的Y-ADDR),使得DATA被写入与物理地址PBA对应的存储区域中。
根据实施例,DATA可被写入存储器单元阵列220中。能够被一次传送的数据的传送带宽可被限制,因此,DATA可被缓冲在页缓冲器240中,并且随后可响应于从控制逻辑230输出的列地址Y-ADDR的信号而被顺序地存储在多个存储器块210之中的特定存储区域(例如,页)中。
根据实施例,当DATA被写入存储区域中时,包括在存储器装置200的多个存储器块210中的每个中的页的有效性可在DATA被写入页中之前变化。随着数据被重复地写入页中并且包括页的块被擦除时,存储器装置200的一些页可被改变为不能存储数据的无效页。根据实施例,控制逻辑230可向闪存转换层300提供有效页信息VI,有效页信息VI是关于包括在多个存储器块210中的页的有效性的信息。
FR计算器330可接收有效页信息VI,并且可基于有效页信息VI计算碎片率FR。根据实施例,碎片率FR可表示有效页和无效页的分段度。根据实施例,FR计算器330可基于有效性对构成(configure)一个存储器块的多个页进行分类(分组),并且可计算与有效页组和无效页组之中的有效页组的数量对应的碎片率FR。
根据实施例,FR计算器330可基于有效页位图来计算碎片率FR。在一个实施例中,有效页位图可以是表示多个页中的每个页的有效性的位图。
有效页位图可具有包括在存储器装置200中的存储器块的数量作为列大小,并且可具有包括在一个存储器块BLK中的页的数量作为行大小,但不限于此。
如前所述,包括在一个存储器块中的多个页中的每个页的有效性可被表示为位“0”或位“1”。例如,有效页可被表示为有效页位图中的位“1”,无效页可被表示为有效页位图中的位“0”,反之亦然。
根据实施例,FR计算器330可计算碎片度。根据实施例,碎片度可对应于彼此相邻的有效页组和无效页组的总数量,多个有效页组具有相同有效性条件,并且多个无效页组具有相同有效性条件。例如,FR计算器330可检测有效页位图中的一个存储器块的顺序位,对顺序位进行分组,并且计算具有相同有效性条件的组的数量,从而计算碎片度FD(如图14中所示)。FR计算器330可向GC管理器350提供碎片率FR或碎片率FR和碎片度FD。
GC管理器350可将存储在多个存储器块210之中的用于垃圾收集的源块BLK_S 211的有效页中的数据复制到目的地块BLK_D 213的空闲页,并且可擦除源块BLK_S 211。
随着数据连续地被写入存储器装置200中或者从存储器装置200擦除,存储区域的部分区域可被无效。为了确保与作为能够写入数据的存储区域的有效区域对应的空闲存储器块,期望至少一个存储器块的有效页“移动”到另一存储器块(通过将数据复制到另一存储器块),并且对对应的存储器块执行擦除操作的垃圾收集GC被执行。根据实施例,GC管理器350可基于碎片率FR执行垃圾收集GC,以更高效地选择源块211。
基于有效页计数VPC的垃圾收集可被使用,但是可能不是选择源块BLK_S 211的最佳方法。根据实施例,GC管理器350可被提供有基于页有效性信息VI(其是关于与存储DATA的存储区域对应的页的有效性信息)的碎片率FR,选择具有最低碎片率FR的块作为源块BLK_S 211,并且以碎片率FR的升序执行垃圾收集GC。因此,根据实施例的存储装置10可对最佳的源块BLK_S 211执行垃圾收集GC,从而最大化I/O效率。此外,根据实施例的存储装置10可从具有低碎片率的存储器块顺序地执行垃圾收集,因此,可确保存储装置10的顺序读取,并且可基于顺序读取来增强I/O效率。此外,根据实施例的存储装置10可减少垃圾收集被执行的次数。根据实施例,垃圾收集性能可被提高,因此,写入放大因子(WAF)可被减小。因此,包括存储装置200的存储装置10的寿命或性能可被提高。此外,存储装置10的写入操作的性能可被增强,并且存储装置10的寿命可被延长。在一个实施例中,WAF可基于由主机请求的数据与实际写入存储器装置200中的数据的比而被计算。
在一个实施例中,可认为用于增强存储装置10的I/O效率的方法通过基于碎片率FR执行垃圾收集而被实现,但是发明构思不限于此。根据实施例,存储装置10的I/O效率可基于通过存储器控制器100传送到存储器装置200的多个命令、主机的状态、主机的请求历史以及存储器控制器100的命令发出历史之间的依赖性(dependency)。存储装置10可基于多个命令、主机的状态、主机的请求历史以及存储器控制器100的命令发出历史之间的依赖性而执行垃圾收集,从而提高I/O效率。
图6是描述根据实施例的存储器控制器的操作方法的流程图。结合图5来参照图6。
在操作S110中,存储器控制器100可从主机接收数据写入请求。主机可向存储器控制器100提供数据DATA和DATA的逻辑地址LBA。根据实施例,存储器控制器100的I/O接口(图5的310)可处理与写入请求对应的操作。例如,I/O接口310可将逻辑地址LBA转换为物理地址PBA,并且可将物理地址PBA提供给存储器装置200。
在操作S120中,存储器控制器100可发出将数据DATA编程到存储器装置200中的命令。根据实施例,存储器控制器100可发出写入命令,并且可将写入命令提供给存储器装置200,从而命令存储器装置200执行写入操作。存储器装置200的控制逻辑(图5的230)可被提供有物理地址PBA,并且页缓冲器(图5的250)可缓冲DATA。缓冲后的数据可被顺序地写入多个存储器块(图5的210)之中的有效页中。
在操作S130中,存储器控制器100可更新有效页位图。根据实施例,控制逻辑230可向存储器控制器100提供页有效性信息VI,页有效性信息VI是关于DATA被写入的页的有效性的信息,并且存储器控制器100可基于页有效性信息VI来更新有效页位图。在一个示例中,有效页信息可表示与数据被写入其中的存储器空间对应的页是否有效。有效页位图可以是表示多个页中的每个页的有效性的位图,并且有效性可被表示为位“0”或“1”。
在操作S140中,存储器控制器100可计算碎片率FR。根据实施例,可基于页有效性对构成一个存储器块的多个页进行分类(分组),并且碎片率FR可对应于有效页组和无效页组之中的有效页组的数量。(参见例如图9中示出的FR的示例)。根据实施例,碎片率FR可对应于在将数据传送到存储器装置200的页缓冲器(未示出)的一系列处理中执行的直接存储器访问(DMA)的次数。
在操作S150中,存储器控制器100可基于碎片率FR执行垃圾收集GC。根据实施例,存储器控制器100可从具有低碎片率FR的存储器块顺序地选择源块BLK_S,因此,顺序读取可被确保,从而包括存储器控制器100的存储装置10的I/O效率可被增强。
图7是示出根据实施例的存储在存储器装置中的数据的结构的概念图。结合图5来参照图7。
存储器装置(图5的200)可包括多个存储器块BLK 210。多个存储器块BLK 210中的每个可包括至少一个页,并且每个页可包括连接到多条字线的多个存储器单元。每个存储器单元可包括至少一个晶体管,并且晶体管可捕获电子以存储数据。
存储器装置200可包括至少一个存储器块BLK。例如,存储器装置200可包括M个块BLK 0至BLK M-1(其中,M是存储器块(第一存储器块至第M存储器块)的自然数量)。在存储装置(图5的10)中,读取操作和写入操作可以以页(或扇区)为单位被执行,并且擦除操作可以以块为单位被执行。
一个存储器块BLK可包括N个页(第一页至第N页)PAGE0至PAGE N-1。写入存储装置(图5的10)中的DATA可被存储在位于存储器装置200的一个或多个块BLK中的一个中的有效页或空闲页中。
一个页可被划分为存储数据的数据区域和不存储数据的备用区域(spare area)。在一个实施例中,2KB(千字节)可被分配给数据区域,64B(字节)可被分配给备用区域,但是发明构思不限于此。
图8是描述根据实施例的在存储器装置200中执行的垃圾收集的概念图。
为了便于描述,可假设在存储器装置(图5的200)的存储区域的第一存储器块BLK1至第三存储器块BLK3中的每个中存在四个页PAGE0至PAGE3。图8的第一存储器块BLK1至第三存储器块BLK3可以是图7的第一存储器块BLK0至第M存储器块BLK(M-1)中的一些。
第一存储器块BLK1的第一页PAGE0可以是能够有效地写入数据的有效区域,第一存储器块BLK1的第二页PAGE1可以是空闲区域,第一存储器块BLK1的第三页PAGE2和第四页PAGE3可各自是基于数据的重复写入/擦除的无效区域。
同样地,第二存储器块BLK2的第一页PAGE0可以是有效区域,第二存储器块BLK2的第二页PAGE1至第四页PAGE3可均是无效区域。第三存储器块BLK3的第一页PAGE0和第二页PAGE1可以是空闲区域,第三存储器块BLK3的第三页PAGE2和第四页PAGE3可各自是有效区域。
响应于指示垃圾收集GC的信号,垃圾收集可在存储器装置(图5的200)中被执行,并且存储在存储器块BLK中的数据可被重新对齐。根据实施例,其中设置有多个无效区域的第二存储器块BLK2可被确定为源块BLK_S,并且其中设置有多个空闲区域的第三存储器块BLK3可被确定为目的地块BLK_D。
根据实施例,存储在第二存储器块BLK2的第一页PAGE0中的数据可被复制到第三存储器块BLK3的第二页PAGE1,并且作为复制的结果,存储在第二存储器块BLK2中的多条数据可能不重要。因此,存储装置(图5的10)可擦除第二存储器块BLK2,因此,第二存储器块BLK2的全部可再次被置于可写入状态。换句话说,垃圾收集可被执行。
图9是描述根据实施例的在存储器装置中计算的碎片率的概念图。结合图5来参照图9。
在图9中,可假设五个页PAGE0至PAGE4在一个存储器块中。然而,发明构思不限于描述的页的数量。
如上所述,可基于有效性对构成一个存储器块的多个页进行分类(分组),并且碎片率FR可对应于有效页组和无效页组之中的有效页组的数量。
在构成一个存储器块的五个页(例如,第一页至第五页)PAGE0至PAGE4中的所有页都有效的情况下,彼此相邻并且具有相同有效性条件的第一页至第五页PAGE0至PAGE4可被分组成一个有效页组。在这种情况下,有效页组的数量可以是1,因此,碎片率FR可以是1。
当构成一个存储器块的五个页PAGE0至PAGE4中的至少一个页无效时,两个或更多个有效页组可被生成。因为应确保顺序读取,所以无效页的出现可能导致碎片率FR的增大。
根据实施例,当第一页PAGE0和第三页PAGE2至第五页PAGE4是有效的但是第二页PAGE1是无效的时,有效页组的数量可以是2。也就是说,碎片率FR可以是2。
类似地,当第一页PAGE0、第四页PAGE3和第五页PAGE4是有效的但是第二页PAGE1和第三页PAGE2是无效的时,有效页组的数量可以是2,并且碎片率FR可以是2。类似地,当第一页PAGE0和第五页PAGE4是有效的但是第二页PAGE1至第四页PAGE3是无效的时,有效页组的数量可以是2,并且碎片率FR可以是2。
根据实施例,当第一页PAGE0、第三页PAGE2和第五页PAGE4是有效的但是第二页PAGE1和第四页PAGE3是无效的时,有效页组的数量可以是3。也就是说,碎片率FR可以是3。
根据实施例,存储器的碎片率FR可对应于该存储器块的有效页组的数量。
图10是描述根据实施例的存储器控制器100的操作方法的流程图。图10是更详细地描述图6的操作S130的流程图。结合图5来参照图10。
在执行操作S120之后的操作S131中,存储器控制器100可从存储器装置200接收有效页信息VI。有效页信息VI可以是关于包括在多个存储器块210中的页的有效性的信息。
在操作S132中,存储器控制器100可基于有效页信息VI将有效页设置为位“1”,并且将无效页(无效页是无效的)设置为位“0”。根据实施例,有效页信息VI可表示页的有效性,并且存储器控制器100可使用位图来示意性地表示页的有效性。
在操作S133中,存储器控制器100可基于有效页信息VI来更新有效页位图。根据实施例,存储器控制器100可将与有效页信息VI对应的位值(或数据)写入有效页位图中。根据实施例,可在与数据被写入的存储区域对应的位图的位置处更新位。例如,可在与DATA被写入的页和存储器块对应的位图的特定位置处更新表示页的有效性的位。
随后,可执行操作S140。
图11是描述根据实施例的有效页位图的概念图。结合图10来参照图11。
参照图11,第一存储器块BLK1至第四存储器块BLK4可均包括四个页(例如,第一页至第四页)PAGE0至PAGE3。
根据实施例,第一存储器块BLK1的第一页PAGE0、第三页PAGE2和第四页PAGE3可以是有效的,但是第一存储器块BLK1的第二页PAGE1可以是无效的。根据实施例,第二存储器块BLK2的第一页PAGE0至第四页PAGE3可以全部是有效的。根据实施例,第三存储器块BLK3的第一页PAGE0和第四页PAGE3可以是有效的,但是第三存储器块BLK3的第二页PAGE1和第三页PAGE2可以是无效的。根据实施例,第四存储器块BLK4的第一页PAGE0可以是有效的,但是第四存储器块BLK4的第二页PAGE1至第四页PAGE3可以是无效的。
根据实施例,一个存储器块可对应于有效页位图的一个列。根据实施例,有效页可被分配为位“1”,无效页可被分配为位“0”,反之亦然。
根据实施例,与第一存储器块BLK1对应的有效页位图的第一列可包括位“1、0、1和1”,与第二存储器块BLK2对应的有效页位图的第二列可包括位“1、1、1和1”,与第三存储器块BLK3对应的有效页位图的第三列可包括位“1、0、0和1”,与第四存储器块BLK4对应的有效页位图的第四列可包括位“1、0、0和0”。
图12是描述根据实施例的在存储器控制器100中计算的碎片率的概念图。结合图5和图11来参照图12。
FR计算器330可检测有效页位图中的一个存储器块的顺序位,并且可对顺序位进行分组。在图12中确定或更新的有效页位图可用于通过使用FR计算器330来计算碎片率FR。
当从有效页位图的最上行顺序地执行读取时,有效页位图的第一列可包括位“1、0、1和1”。这里,顺序位的数量可以是一个1、一个0和两个1。有效位图组的数量可以是2,因此,碎片率FR可以是2。
类似地,有效页位图的第二列可包括位“1、1、1、和1”,顺序位的数量可以是四个1,因此,有效位图组的数量可以是1,碎片率FR可以是1。
类似地,有效页位图的第三列可包括位“1、0、0和1”,顺序位的数量可以是一个1、两个0和一个1。这里,有效位图组的数量可以是2,碎片率FR可以是2。
类似地,有效页位图的第四列可包括位“1、0、0和0”,顺序位的数量可以是一个1和三个0,有效位图组的数量可以是1,但是与第二列不同,可不具有相同的有效性条件。因此,碎片率FR可以是2。换句话说,当一个存储器块中的有效页组的数量为1,并且该存储器块中存在至少一个无效页时,碎片率FR可以是2。
图13是描述根据实施例的存储器控制器100的操作方法的流程图。图13是更详细地描述图6的操作S140的流程图。结合图5来参照图13。
在执行操作S130之后的操作S141中,存储器控制器100可分析作为有效页位图的分段度的碎片率FR。
在操作S142中,存储器控制器100可检查包括在存储器装置200中的多个存储器块(图5的210)之中是否存在具有最小碎片率的任何存储器块,并且可检查是否仅存在一个具有最小碎片率的存储器块。
在操作S143中,当仅存在一个具有最小碎片率的存储器块时,存储器控制器100可选择该存储器块作为源块BLK_S 211。(这个源块可以是垃圾收集过程中的第一源块,在垃圾收集过程中以碎片率的升序来确定源块。)
在操作S144中,当存在不止一个具有最小碎片率的存储器块时,存储器控制器100可选择具有相对低的碎片度的存储器块(以下讨论)作为源块(图5的211)。根据实施例,碎片度可与彼此相邻的有效页组和无效页组的总数量对应。例如,可根据在有效页位图中的一个存储器块的顺序位之中具有相同有效性条件的组的数量来计算碎片度。以下将参照图14描述碎片度。
随后,可执行操作S150。
图14是描述根据实施例的在存储器控制器100中计算的碎片度的概念图。
根据实施例,碎片度FD可对应于彼此相邻的有效页组和无效页组的总数量。例如,可根据通过对有效页位图中的一个存储器块的顺序位进行分组而获得的多个页组之中的具有相同有效性条件的组的数量来计算碎片度FD。
在图14的示例中,有效页位图的第一列、第三列和第四列中的每列的碎片率FR是2。如示出的,有效页位图的第一列可包括总共三个页组(例如,两个有效页组和一个无效页组),因此,碎片度FD可以是3。类似地,有效页位图的第三列可包括总共三个页组(例如,两个有效页组和一个无效页组),因此,碎片度FD可以是3。类似地,有效页位图的第四列可包括总共两个页组(例如,一个有效页组和一个无效页组),因此,碎片度FD可以是2。
图15是描述根据实施例的通过使用碎片率FR和碎片度FD执行的垃圾收集的概念图。结合图5来参照图15。
根据实施例,GC管理器350可将具有最低碎片率FR的第二存储器块BLK2确定为源块BLK_S(图5的211)。GC管理器350可对源块BLK_S执行第一垃圾收集,因此,第二存储器块BLK2可被擦除。
随后,可能需要第二垃圾收集。第一存储器块BLK1、第三存储器块BLK3和第四存储器块BLK4可具有相同的碎片率FR(=2)。
根据实施例,第四存储器块BLK4可以是碎片率FR为2并且可具有比第一存储器块BLK1或第三存储器块BLK3的碎片度FD相对更低的碎片度FD的块,并且可被选择作为用于第二垃圾收集的源块BLK_S。在一个示例中,可以以碎片度FD的升序在具有相同碎片率的多个存储器块之中依次确定源块。
图16是描述根据实施例的存储装置10的操作方法的流程图。结合图5来参照图16。
在操作S210中,存储器控制器100可从主机接收写入请求和与写入请求对应的数据DATA。
在操作S220中,存储器控制器100可发出编程命令,并且可将编程命令传送到存储器装置200。
在操作S230中,存储器装置200可响应于编程命令将DATA写入存储器块的空闲页中。根据实施例,数据DATA可由页缓冲器(图5的250)缓冲,并且可被提供。
在操作S240中,存储器装置200可提供存储器块的状态。根据实施例,存储器块的状态可包括作为存储DATA的页的有效性的有效页信息VI。
在操作S250中,存储器控制器100可更新有效页位图。根据实施例,存储器控制器100可接收关于数据被写入的页的有效性信息,并且可更新关于改变的页的信息。
在操作S260中,存储器控制器100可基于有效页信息VI计算碎片率FR。根据实施例,碎片率FR可基于有效页位图的位连续性而被计算,并且可对应于包括彼此相邻并且具有相同有效性条件的位的多个组之中的有效页组。
在操作S270中,存储器控制器100可将具有低碎片率FR的存储器块确定为源块BLK_S(图5的211)。根据实施例,存储器控制器100可以以大小的升序对齐碎片率FR,并且可从具有低碎片率FR的存储器块顺序地选择存储器块作为源块BLK_S 211。
在操作S280中,存储器控制器100可命令存储器装置200执行垃圾收集。根据实施例,存储器控制器100可选择具有低碎片率FR的存储器块作为源块BLK_S 211,并且可对源块BLK_S 211执行垃圾收集,从而提高I/O效率。
在操作S290中,存储器装置200可将源块BLK_S 211复制到目的地块BLK_D以执行垃圾收集。根据实施例,存储器装置200可将源块BLK_S 211的有效页复制到目的地块BLK_D(图5的213)的空闲页。
图17是示出根据实施例的存储器系统1的框图。图17中示出的存储系统500可在功能上类似于图5的存储装置10,因此,重复描述被省略。
主机系统400和存储系统500可构成存储器系统1。在一个实施例中,存储器系统1可配置计算机、超移动个人计算机(PC)(UMPC)、工作站、上网本计算机、个人数字助理(PDA)、便携式计算机、网络平板、平板计算机、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航装置、黑匣子、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器。数字视频记录器、数字视频播放器、配置数据中心的存储设备、用于在无线环境中发送或接收信息的装置、配置家庭网络的各种电子装置之一、配置计算机网络的各种电子装置之一、配置远程信息处理网络的各种电子装置之一、射频识别(RFID)装置或配置计算系统的各种电子装置之一。
主机系统400可包括至少一个操作系统(OS)410,OS 410可整体管理和控制主机的功能和操作,并且可提供主机与使用存储器系统1的用户之间的相互操作。
这里,OS 410可支持与用户的使用目的和可用性对应的功能和操作,例如,OS 410可基于主机装置200的移动性被分类为通用OS和移动OS。OS 410中的通用OS可被分类为个人OS和企业OS。例如,个人OS可以是专用于支持针对普通用户提供功能的服务的系统,并且可包括Windows和Chrome,企业OS可以是专用于确保和支持高性能的系统,并且可包括Windows server、Linux和Unix。
OS 410中的移动OS可以是专用于支持向用户提供移动服务的功能和系统的省电功能的系统,并且可包括android、iOS和Windows mobile。在一个实施例中,主机可包括多个OS,并且还可执行用于使用存储器系统1执行与用户请求对应的操作的OS。这里,主机可将与用户请求对应的多个命令传送到存储器系统1,因此,存储器系统1可执行与指令对应的操作(即,与用户请求对应的操作)。
主机系统400的读取请求和写入请求可通过文件单元执行。也就是说,基于文件读取请求READ_F和文件写入请求WRITE_F,数据可通过主机系统400被存储在存储系统500中,或者存储在存储系统500中的数据可通过主机系统400被读取。
存储系统500可用例如个人计算机(PC)、数据服务器、网络附接存储设备(NAS)、物联网(IoT)装置或便携式电子装置来实现。便携式电子装置的示例可包括膝上型计算机、移动电话、智能电话、平板PC、个人数字助理(PDA)、企业数字助理(EDA)、数字相机、数字视频相机、音频装置、便携式多媒体播放器(PMP)、个人导航装置(PND)、MP3播放器、手持游戏机、电子书以及可穿戴装置。
存储系统500可包括主机接口层510、闪存转换层520、闪存接口层530和非易失性存储器540。
主机接口层510可以是执行主机系统400与存储系统500之间的接口连接的逻辑区域。
闪存转换层520可被理解为图5的闪存转换层300的另一类型,I/O接口521可提供与图5的I/O接口310的功能相同的功能,FR计算器522可提供与图5的FR计算器330的功能相同的功能,GC管理器523可提供与图5的GC管理器350的功能相同的功能。因此,重复描述被省略。
主机接口层510和闪存转换层520可以以扇区为单位写入数据或者读取数据。也就是说,基于主机系统的读取/写入请求,主机接口层510可从闪存转换层520请求读取请求READ_S/写入请求WRITE_S。
闪存接口层530可提供闪存转换层520与非易失性存储器540之间的接口。根据实施例,数据的读取READ_P和数据的写入WRITE_P可以以页为单位被执行,但是数据的擦除ERASE_B可以以块为单位被执行。
非易失性存储器540可被理解为图5的存储器装置200,因此,重复描述被省略。
可通过使用各种类型的封装来安装根据实施例的存储器系统1。例如,根据实施例的存储器系统1可被安装为诸如层叠封装(PoP)、球栅阵列(BGA)、芯片级封装(CSP)、塑料引线芯片载体(PLCC)、塑料双列直插式封装(PDIP)、华夫裸片封装(die in waffle pack)、晶片形式的裸片(die in wafer form)、板上芯片(COB)、陶瓷双列直插式封装(CERDIP)、塑料公制四方扁平封装(MQFP)、薄型四方扁平封装(TQFP)、小外形集成电路(SOIC)、收缩小外形封装(SSOP)、薄小外形封装(TSOP)、系统级封装(SIP)以及多芯片封装。
图18是示出根据实施例的存储系统1000的框图。
图18是示出应用了根据实施例的存储装置(例如,图5的10)的存储系统1000的框图。图18是根据实施例的应用了存储装置的存储系统1000的示图。图18的存储系统1000基本上可以是移动系统(诸如,便携式通信终端(例如,移动电话)、智能电话、平板个人计算机(PC)、可穿戴装置、医疗保健装置或物联网(IOT)装置)。然而,图18的存储系统1000不一定限于移动系统,并且可以是PC、膝上型计算机、服务器、媒体播放器或汽车装置(例如,导航装置)。
参照图18,存储系统1000可包括主处理器1100、存储器(例如,1200a和1200b)和存储装置(例如,1300a和1300b)。另外,存储系统1000可包括图像拍摄装置1410、用户输入装置1420、传感器1430、通信装置1440、显示器1450、扬声器1460、电源装置1470以及连接接口1480中的至少一个。
主处理器1100可控制存储系统1000的所有操作,更具体地,包括在存储系统1000中的其它组件的操作。主处理器1100可被实现为通用处理器、专用处理器或应用处理器。
主处理器1100可包括至少一个CPU核1110,并且还包括被配置为控制存储器1200a和1200b和/或存储装置1300a和1300b的控制器1120。在一些实施例中,主处理器1100还可包括加速器1130,加速器1130是用于高速数据操作(诸如,人工智能(AI)数据操作)的专用电路。加速器1130可包括图形处理器(GPU)、神经处理器(NPU)和/或数据处理器(DPU),并且可被实现为与主处理器1100的其它组件物理上分开的芯片。
存储器1200a和1200b可用作存储系统1000的主存储器装置。尽管存储器1200a和1200b中的每个可包括易失性存储器(诸如,静态随机存取存储器(SRAM)和/或动态RAM(DRAM)),但是存储器1200a和1200b中的每个可包括非易失性存储器(诸如,闪存、相变RAM(PRAM)和/或电阻式RAM(RRAM))。存储器1200a和1200b可在与主处理器1100相同的封装件中被实现。
存储装置1300a和1300b可用作非易失性存储装置,非易失性存储装置被配置为无论是否被供电都存储数据,并且具有比存储器1200a和1200b更大的存储容量。存储装置1300a和1300b可分别包括存储控制器(STRG CTRL)1310a和1310b以及被配置为经由存储控制器1310a和1310b的控制来存储数据的NVM(非易失性存储器)1320a和1320b。尽管NVM1320a和1320b可包括具有二维(2D)结构或三维(3D)结构的V-NAND闪存,但是NVM 1320a和1320b可包括其它类型的NVM(诸如,PRAM和/或RRAM)。
存储装置1300a和1300b可与主处理器1100物理上分开并且被包括在存储系统1000中,或者在与主处理器1100相同的封装件中被实现。另外,存储装置1300a和1300b可具有各种类型的固态装置(SSD)或存储器卡,并且可通过接口(诸如,以下将描述的连接接口1480)与系统1000的其它组件可移除地组合。存储装置1300a和1300b可以是应用了标准协议(诸如,通用闪存(UFS)、嵌入式多媒体卡(eMMC)或NVM快速(NVMe))的装置,但不限于此。
图像拍摄装置1410可拍摄静止图像或运动图像。图像拍摄装置1410可包括相机、摄像机和/或网络摄像头。
用户输入装置1420可接收由存储系统1000的用户输入的各种类型的数据,并且包括触摸板、小键盘、键盘、鼠标和麦克风。
传感器1430可检测可从存储系统1000的外部获得的各种类型的物理量,并且将检测到的物理量转换为电信号。传感器1430可包括温度传感器、压力传感器、照度传感器、位置传感器、加速度传感器、生物传感器和/或陀螺仪传感器。
通信装置1440可根据各种通信协议在存储系统1000外部的其它装置之间发送信号和接收信号。通信装置1440可包括天线、收发器或调制解调器。
显示器1450和扬声器1460可用作被配置为分别向存储系统1000的用户输出视觉信息和听觉信息的输出装置。
电源装置1470可适当地转换从嵌入在存储系统1000中的电池(未示出)和/或外部电源供应的电力,并且将转换后的电力供应给存储系统1000的每个组件。
连接接口1480可提供存储系统1000与外部装置之间的连接,该外部装置连接到存储系统1000并且能够将数据发送到存储系统1000和从存储系统1000接收数据。连接接口1480可通过使用各种接口方案(诸如,高级技术附件(ATA)、串行ATA(SATA)、外部SATA(e-SATA)、小型计算机小型接口(SCSI)、串行附接SCSI(SAS)、外围组件互连(PCI)、PCI快速(PCIe)、NVMe、IEEE 1394、通用串行总线(USB)接口、安全数字(SD)卡接口、多媒体卡(MMC)接口、eMMC接口、UFS接口、嵌入式UFS(eUFS)接口和紧凑型闪存(CF)卡接口)来实现。
图19是示出根据实施例的存储器系统10的框图。
图19是根据实施例的存储器系统10的框图。参照图19,存储器系统10可包括存储器装置200和存储器控制器100。存储器装置200可对应于NVM装置NVM11至NVMmn中的基于图3的多个通道CH1至CHm中的一个与存储器控制器200进行通信的一个NVM装置。存储器控制器100可对应于图3的存储器控制器100。
存储器装置200可包括第一引脚P11至第八引脚P18、存储器接口电路270、控制逻辑电路230和存储器单元阵列220。
存储器接口电路270可通过第一引脚P11从存储器控制器100接收芯片使能信号nCE。存储器接口电路270可响应于芯片使能信号nCE而通过第二引脚P12至第八引脚P18将信号发送到存储器控制器100和从存储器控制器100接收信号。例如,当芯片使能信号nCE处于启用状态(例如,低电平)时,存储器接口电路270可通过第二引脚P12至第八引脚P18将信号发送到存储器控制器100和从存储器控制器100接收信号。
存储器接口电路270可通过第二引脚P12至第四引脚P14从存储器控制器100接收命令锁存使能信号CLE、地址锁存使能信号ALE和写入使能信号nWE。存储器接口电路系统270可通过第七引脚P17从存储器控制器100接收数据信号DQ或者将数据信号DQ发送到存储器控制器100。命令CMD、地址ADDR和数据可经由数据信号DQ被发送。例如,数据信号DQ可通过多条数据信号线被发送。在这种情况下,第七引脚P17可包括分别与多个数据信号DQ对应的多个引脚。
存储器接口电路270可基于写入使能信号nWE的切换(toggle)时间点从在命令锁存使能信号CLE的启用区间(例如,高电平状态)中被接收的数据信号DQ获得命令CMD。存储器接口电路270可基于写入使能信号nWE的切换时间点从在地址锁存使能信号ALE的启用区间(例如,高电平状态)中被接收的数据信号DQ获得地址ADDR。
在一个示例实施例中,写入使能信号nWE可被保持在静态状态(例如,高电平或低电平),并且在高电平与低电平之间切换。例如,写入使能信号nWE可在其中命令CMD或地址ADDR被发送的区间中切换。因此,存储器接口电路270可基于写入使能信号nWE的切换时间点获得命令CMD或地址ADDR。
存储器接口电路270可通过第五引脚P15从存储器控制器100接收读取使能信号nRE。存储器接口电路270可通过第六引脚P16从存储器控制器100接收数据选通信号DQS或者将数据选通信号DQS发送到存储器控制器100。
在存储器装置200的数据(DATA)输出操作中,存储器接口电路270可在输出DATA之前接收读取使能信号nRE,读取使能信号nRE通过第五引脚P15切换。存储器接口电路270可生成数据选通信号DQS,数据选通信号DQS基于读取使能信号nRE的切换而切换。例如,存储器接口电路270可基于读取使能信号nRE的切换开始时间生成数据选通信号DQS,数据选通信号DQS在预定延迟(例如,tDQSRE)之后开始切换。存储器接口电路270可基于数据选通信号DQS的切换时间点来发送包括DATA的数据信号DQ。因此,DATA可与数据选通信号DQS的切换时间点对齐,并且被发送到存储器控制器100。
在存储器装置200的DATA输入操作中,当包括DATA的数据信号DQ从存储器控制器100被接收到时,存储器接口电路270可接收数据选通信号DQS,数据选通信号DQS与来自存储器控制器100的DATA一起切换。存储器接口电路270可基于数据选通信号DQS的切换时间点从数据信号DQ获得DATA。例如,存储器接口电路270可在数据选通信号DQS的上升沿和下降沿处对数据信号DQ进行采样,并且获得DATA。
存储器接口电路270可通过第八引脚P18将就绪/忙碌输出信号nR/B发送到存储器控制器100。存储器接口电路270可通过就绪/忙碌输出信号nR/B将存储器装置200的状态信息发送到存储器控制器100。当存储器装置200处于忙碌状态时(即,当操作正在存储器装置200中被执行时),存储器接口电路270可将指示忙碌状态的就绪/忙碌输出信号nR/B发送到存储器控制器100。当存储器装置200处于就绪状态时(即,当操作在存储器装置200中未被执行或已完成时),存储器接口电路270可将指示就绪状态的就绪/忙碌输出信号nR/B发送到存储器控制器100。例如,当存储器装置200响应于页读取命令而正在从存储器单元阵列220读取DATA时,存储器接口电路270可将指示忙碌状态(例如,低电平)的就绪/忙碌输出信号nR/B发送到存储器控制器100。例如,当存储器装置200响应于编程命令而正在将DATA编程到存储器单元阵列220时,存储器接口电路270可将指示忙碌状态的就绪/忙碌输出信号nR/B发送到存储器控制器100。
控制逻辑电路230可控制存储器装置200的所有操作。控制逻辑电路230可接收从存储器接口电路270获得的命令CMD/地址ADDR。控制逻辑电路230可响应于接收的命令CMD/地址ADDR来生成用于控制存储器装置200的其它组件的控制信号。例如,控制逻辑电路230可生成用于将DATA编程到存储器单元阵列220或者从存储器单元阵列220读取DATA的各种控制信号。
存储器单元阵列220可经由控制逻辑电路230的控制来存储从存储器接口电路270获得的DATA。存储器单元阵列220可经由控制逻辑电路230的控制将存储的DATA输出到存储器接口电路270。
存储器单元阵列220可包括多个存储器单元。例如,多个存储器单元可以是闪存单元。然而,发明构思不限于此,并且存储器单元可以是RRAM单元、FRAM单元、PRAM单元、晶闸管RAM(TRAM)单元或MRAM单元。在下文中,将主要描述存储器单元是NAND闪存单元的实施例。
存储器控制器100可包括第一引脚P21至第八引脚P28和NAND接口电路160。第一引脚P21至第八引脚P28可分别对应于存储器装置200的第一引脚P11至第八引脚P18。
NAND接口电路160可通过第一引脚P21将芯片使能信号nCE发送到存储器装置200。NAND接口电路160可通过第二引脚P22至第八引脚P28将由芯片使能信号nCE选择的信号发送到存储器装置200和从存储器装置200接收信号。
NAND接口电路160可通过第二引脚P22至第四引脚P24将命令锁存使能信号CLE、地址锁存使能信号ALE和写入使能信号nWE发送到存储器装置200。NAND接口电路160可通过第七引脚P27将数据信号DQ发送到存储器装置200或者从存储器装置200接收数据信号DQ。
NAND接口电路160可将包括命令CMD或地址ADDR的数据信号DQ连同切换的写入使能信号一起发送到存储器装置200。NAND接口电路160可通过发送具有启用状态的命令锁存使能信号CLE来将包括命令CMD的数据信号DQ发送到存储器装置200。此外,NAND接口电路160可通过发送具有启用状态的地址锁存使能信号ALE来将包括地址ADDR的数据信号DQ发送到存储器装置200。
NAND接口电路160可通过第五引脚P25将读使能信号nRE发送到存储器装置200。NAND接口电路160可通过第六引脚P26从存储器装置200接收数据选通信号DQS或者将数据选通信号DQS发送到存储器装置200。
在存储器装置200的DATA输出操作中,NAND接口电路160可生成切换的读取使能信号nRE,并且将读取使能信号nRE发送到存储器装置200。例如,在输出DATA之前,NAND接口电路160可生成读取使能信号nRE,读取使能信号nRE从静态(例如,高电平或低电平)被改变为切换状态。因此,存储器装置200可基于读取使能信号nRE生成切换的数据选通信号DQS。NAND接口电路160可从存储器装置200接收包括DATA的数据信号DQ以及切换的数据选通信号DQS。NAND接口电路160可基于数据选通信号DQS的切换时间点从数据信号DQ获得数据DATA。
在存储器装置200的数据(DATA)输入操作中,NAND接口电路160可生成切换的数据选通信号DQS。例如,在发送数据DATA之前,NAND接口电路160可生成数据选通信号DQS,数据选通信号DQS从静态(例如,高电平或低电平)被改变为切换状态。NAND接口电路160可基于数据选通信号DQS的切换时间点将包括数据DATA的数据信号DQ发送到存储器装置200。
NAND接口电路160可通过第八引脚P28从存储器装置200接收就绪/忙碌输出信号nR/B。NAND接口电路160可基于就绪/忙碌输出信号nR/B来确定存储器装置200的状态信息。
图20是描述根据实施例的通用闪存(UFS)系统2000的框图。
UFS系统2000可以是符合由电子装置工程联合委员会(JEDEC)宣布的UFS标准的系统,并且包括UFS主机2100、UFS装置2200和UFS接口2300。以上对图18的存储系统1000的描述也可在与对图20的下面的描述不冲突的范围内被应用于图20的UFS系统2000。
参照图20,UFS主机2100可通过UFS接口2300连接到UFS装置2200。当图18的主处理器1100是AP时,UFS主机2100可被实现为AP的一部分。UFS主机控制器2110和主机存储器2140可分别对应于图18的主处理器1100的控制器1120和存储器1200a和1200b。UFS装置2200可对应于图18的存储装置1300a和1300b,UFS装置控制器2210和NVM 2220可分别对应于图18的存储控制器1310a和1310b以及NVM 1320a和1320b。
UFS主机2100可包括UFS主机控制器2110、应用2120、UFS驱动器2130、主机存储器2140和UFS互连(UIC)层2150。UFS装置2200可包括UFS装置控制器2210、NVM 2220、存储接口2230、装置存储器2240、UIC层2250和调节器2260。NVM 2220可包括多个存储器单元2221。尽管存储器单元2221中的每个可包括具有2D结构或3D结构的V-NAND闪存,但是存储器单元2221中的每个可包括另一种类的NVM(诸如,PRAM和/或RRAM)。UFS装置控制器2210可通过存储接口2230连接到NVM 2220。存储接口2230可被配置为符合标准协议(诸如,Toggle或ONFI)。
应用2120可表示想要与UFS装置2200进行通信来使用UFS装置2200的功能的程序。应用2120可将输入-输出请求(IOR)发送到UFS驱动器2130,以用于对UFS装置2200的输入/输出(I/O)操作。IOR可表示数据读取请求、数据存储(或写入)请求和/或数据擦除(或丢弃)请求,但不限于此。
UFS驱动器2130可通过UFS主机控制器接口(UFS-HCI)来管理UFS主机控制器2110。UFS驱动器2130可将通过应用2120生成的IOR转换为通过UFS标准定义的UFS命令,并且将UFS命令发送到UFS主机控制器2110。一个IOR可被转换为多个UFS命令。尽管UFS命令可基本上通过SCSI标准定义,但是UFS命令可以是专用于UFS标准的命令。
UFS主机控制器2110可通过UIC层2150和UFS接口2300,将由UFS驱动器2130转换的UFS命令发送到UFS装置2200的UIC层。在UFS命令的发送期间,UFS主机控制器2110的UFS主机寄存器2111可用作命令队列(CQ)。
UFS主机2100侧的UIC层2150可包括移动行业处理器接口(MIPI)M-PHY 2151和MIPI UniPro 2152,UFS装置2200侧的UIC层2250也可包括MIPI M-PHY 2251和MIPI UniPro2252。
UFS接口2300可包括被配置为发送参考时钟信号REF_CLK的线、被配置为发送用于UFS装置2200的硬件复位信号RESET_n的线、被配置为发送一对差分输入信号DIN_T和DIN_C的一对线、以及被配置为发送一对差分输出信号DOUT_T和DOUT_C的一对线。
从UFS主机2100提供给UFS装置2200的参考时钟信号REF_CLK的频率可以是19.2MHz、26MHz、38.4MHz和52MHz中的一者,但不限于此。UFS主机2100可在操作期间(也就是说,在UFS主机2100与UFS装置2200之间的数据发送/接收操作期间)改变参考时钟信号REF_CLK的频率。UFS装置2200可通过使用锁相环(PLL),根据从UFS主机2100提供的参考时钟信号REF_CLK来生成具有各种频率的时钟信号。此外,UFS主机2100可通过使用参考时钟信号REF_CLK的频率来设置UFS主机2100与UFS装置2200之间的数据速率。也就是说,数据速率可根据参考时钟信号REF_CLK的频率而被确定。
UFS接口2300可支持多个通路,每个通路可被实现为一对差分线。例如,UFS接口2300可包括至少一个接收通路和至少一个发送通路。在图20中,被配置为发送一对差分输入信号DIN_T和DIN_C的一对线可构成接收通路,被配置为发送一对差分输出信号DOUT_T和DOUT_C的一对线可构成发送通路。尽管在图20中示出了一个发送通路和一个接收通路,但是发送通路的数量和接收通路的数量可被改变。
接收通路和发送通路可基于串行通信方案来发送数据。由于其中接收通路与发送通路分开的结构,UFS主机2100与UFS装置2200之间的全双工通信可被启用。也就是说,在通过接收通路从UFS主机2100接收数据时,UFS装置2200可通过发送通路将数据发送到UFS主机2100。另外,从UFS主机2100到UFS装置2200的控制数据(例如,命令)以及将由UFS主机2100存储在UFS装置2200的NVM 2220中或者从UFS装置2200的NVM 2220读取的用户数据可通过相同的通路而被发送。因此,在UFS主机2100与UFS装置2200之间,除了一对接收通路和一对发送通路之外,可能不需要进一步提供用于数据传输的单独通路。
UFS装置2200的UFS装置控制器2210可控制UFS装置2200的所有操作。UFS装置控制器2210可通过使用作为逻辑数据存储单元的逻辑单元(LU)2211来管理NVM 2220。LU 2211的数量可以是8,但不限于此。UFS装置控制器2210可包括FTL,并且通过使用FTL的地址映射信息将从UFS主机2100接收的逻辑数据地址(例如,逻辑块地址(LBA))转换为物理数据地址(例如,物理块地址(PBA))。被配置为将用户数据存储在UFS系统2000中的逻辑块可具有预定范围内的大小。例如,逻辑块的最小大小可被设置为4K字节。
当来自UFS主机2100的命令通过UIC层2250被施加到UFS装置2200时,UFS装置控制器2210可响应于该命令来执行操作,并且当操作被完成时,将完成响应发送到UFS主机2100。
作为示例,当UFS主机2100打算将用户数据存储在UFS装置2200中时,UFS主机2100可将数据存储命令发送到UFS装置2200。当从UFS装置2200接收到指示UFS主机2100准备好接收用户数据(准备好传送)的响应(“准备好传送”响应)时,UFS主机2100可将用户数据发送到UFS装置2200。UFS装置控制器2210可将接收到的用户数据临时存储在装置存储器2240中,并且基于FTL的地址映射信息将临时存储在装置存储器2240中的用户数据存储在NVM2220的选择位置处。
作为另一示例,当UFS主机2100打算读取存储在UFS装置2200中的用户数据时,UFS主机2100可将数据读取命令发送到UFS装置2200。已经接收到命令的UFS装置控制器2210可基于数据读取命令来从NVM 2220读取用户数据,并且将读取的用户数据临时存储在装置存储器2240中。在读取操作期间,UFS装置控制器2210可通过使用嵌入在UFS装置控制器2210中的ECC引擎(未示出)来检测和纠正读取的用户数据中的错误。更具体地,ECC引擎可针对将被写入NVM 2220的写入数据生成奇偶校验位,并且生成的奇偶校验位可以与写入数据一起被存储在NVM 2220中。在从NVM 2220读取数据期间,ECC引擎可通过使用与读取数据一起从NVM 2220读取的奇偶校验位来纠正读取数据中的错误,并且输出纠错后的读取数据。
另外,UFS装置控制器2210可将临时存储在装置存储器2240中的用户数据发送到UFS主机2100。另外,UFS装置控制器2210还可包括AES引擎(未示出)。AES引擎可通过使用对称密钥算法来对发送到UFS装置控制器2210的数据执行加密操作和解密操作中的至少一者。
UFS主机2100可将要发送到UFS装置2200的命令顺序地存储在UFS主机寄存器2111中,并且将该命令顺序地发送到UFS装置2200,主机寄存器2111可用作公用队列。在这种情况下,即使先前发送的命令仍在由UFS装置2200处理(也就是说,即使在接收到先前发送的命令已被UFS装置2200处理的通知之前),UFS主机2100也可将在CQ中处于待机(standby)的下一命令发送到UFS装置2200。因此,UFS装置2200还可在先前发送的命令的处理期间从UFS主机2100接收下一命令。可被存储在CQ中的命令的最大数量(或队列深度)可以是例如32。此外,CQ可被实现为其中存储在队列中的命令行的起点和终点由头指针和尾指针指示的循环队列。
多个存储器单元2221中的每个可包括存储器单元阵列(未示出)和被配置为控制存储器单元阵列的操作的控制电路(未示出)。存储器单元阵列可包括2D存储器单元阵列或3D存储器单元阵列。存储器单元阵列可包括多个存储器单元。尽管每个存储器单元是被配置为存储1位信息的单层单元(SLC),但是每个存储器单元可以是被配置为存储2位或更多位的信息的单元(诸如,多层单元(MLC)、三层单元(TLC)和四层单元(QLC))。3D存储器单元阵列可包括垂直NAND串,垂直NAND串中至少一个存储器单元被垂直定向并且位于另一存储器单元上。
电压VCC、VCCQ1和VCCQ2可作为电源电压被施加给UFS装置2200。电压VCC可以是UFS装置2200的主电源电压,并且在2.4V至3.6V的范围内。电压VCCQ1可以是用于主要向UFS装置控制器2210供应低电压的电源电压,并且在1.14V至1.26V的范围内。电压VCCQ2可以是用于主要向I/O接口(诸如,MIPI M-PHY 2251)供应低于电压VCC并且高于电压VCCQ1的电压的电源电压,并且在1.7V至1.95V的范围内。可通过调节器2260向UFS装置2200的相应组件供应电源电压。调节器2260可被实现为分别连接到以上描述的电源电压中的不同电源电压的一组单位调节器。
图21是根据实施例的适用于存储装置10的存储器装置的结构的剖视图。
参照图21,存储器装置600可具有芯片对芯片(chip to chip,C2C)结构。C2C结构可表示通过在第一晶片上制造包括单元区域CELL的上部芯片、在与第一晶片分开的第二晶片上制造包括外围电路区域PERI的下部芯片、随后将上部芯片和下部芯片彼此键合(bonding)而形成的结构。这里,键合处理可包括将形成在上部芯片的最下层金属层上的键合金属与形成在下部芯片的最上层金属层上的键合金属电连接。例如,键合金属可包括使用铜(Cu)对Cu键合的Cu。其它实施方式也是可行的。例如,键合金属还可由铝(Al)或钨(W)形成。
存储器装置600的外围电路区域PERI和单元区域CELL中的每个可包括外部垫(pad)键合区域PA、字线键合区域WLBA和位线键合区域BLBA。
外围电路区域PERI可包括第一基底710、层间绝缘层715、形成在第一基底710上的多个电路元件720a、720b和720c、分别连接到多个电路元件720a、720b和720c的第一金属层730a、730b和730c、以及形成在第一金属层730a、730b和730c上的第二金属层740a、740b和740c。在一些实施例中,第一金属层730a、730b和730c可由具有相对高电阻率的钨形成,第二金属层740a、740b和740c可由具有相对低电阻率的铜形成。
在图21中示出的示例实施例中,尽管仅示出和描述了第一金属层730a、730b和730c以及第二金属层740a、740b和740c,但是示例实施例不限于此,并且一个或多个附加的金属层可进一步被形成在第二金属层740a、740b和740c上。形成在第二金属层740a、740b和740c上的一个或多个附加的金属层中的至少一部分可由具有比形成第二金属层740a、740b和740c的铜的电阻率的高的电阻率的铝等形成。
层间绝缘层715可设置在第一基底710上,并且覆盖多个电路元件720a、720b和720c、第一金属层730a、730b和730c以及第二金属层740a、740b和740c。层间绝缘层715可包括绝缘材料(诸如,氧化硅、氮化硅等)。
下部键合金属771b和772b可形成在字线键合区域WLBA中的第二金属层740b上。在字线键合区域WLBA中,外围电路区域PERI中的下部键合金属771b和772b可电键合到单元区域CELL的上部键合金属871b和872b。下部键合金属771b和772b以及上部键合金属871b和872b可由铝、铜、钨等形成。此外,单元区域CELL中的上部键合金属871b和872b可被称为第一金属垫,外围电路区域PERI中的下部键合金属771b和772b可被称为第二金属垫。
单元区域CELL可包括至少一个存储器块。单元区域CELL可包括第二基底810和共源极线820。在第二基底810上,多条字线831至838(即,多条字线830)可在与第二基底810的上表面垂直的方向(Z轴方向)上被堆叠。至少一条串选择线和至少一条地选择线可分别布置在多条字线830的上方和下方,多条字线830可设置在至少一条串选择线与至少一条地选择线之间。
在位线键合区域BLBA中,沟道结构CH可在与第二基底810的上表面垂直的方向(Z轴方向)上延伸,并且可穿过多条字线830、至少一条串选择线和至少一条地选择线。沟道结构CH可包括数据存储层、沟道层、掩埋绝缘层等,沟道层可电连接到第一金属层850c和第二金属层860c。例如,第一金属层850c可以是位线接触件,第二金属层860c可以是位线。在一个示例实施例中,位线860c可在与第二基底810的上表面平行的第一方向(Y轴方向)上延伸。
在图21中示出的示例实施例中,设置有沟道结构CH和位线860c等的区域可被定义为位线键合区域BLBA。在位线键合区域BLBA中,位线860c可电连接到在外围电路区域PERI中设置页缓冲器893的电路元件720c。位线860c可连接到单元区域CELL中的上部键合金属871c和872c,上部键合金属871c和872c可连接到下部键合金属771c和772c,下部键合金属771c和772c连接到页缓冲器893的电路元件720c。在一个示例实施例中,当页单元的写入数据被存储在页缓冲器893中时,编程操作可基于页单元而被执行,并且当子页单元的读取数据被存储在页缓冲器893中时,读取操作可基于子页单元而被执行。此外,在编程操作和读取操作中,通过位线发送的数据的单元可彼此不同。
在字线键合区域WLBA中,多条字线830可与第二基底810的上表面平行并与第一方向垂直的第二方向(X轴方向)上延伸,并且可连接到多个单元接触插塞841至847(即,840)。多条字线830和多个单元接触插塞840可在由在第二方向上以不同长度延伸的多条字线830的至少一部分提供的垫中彼此连接。第一金属层850b和第二金属层860b可顺序地连接到与多条字线830连接的多个单元接触插塞840的上部。多个单元接触插塞840可在字线键合区域WLBA中通过单元区域CELL的上部键合金属871b和872b以及外围电路区域PERI的下部键合金属771b和772b连接到外围电路区域PERI。
多个单元接触插塞840可电连接到在外围电路区域PERI中形成行解码器894的电路元件720b。在一个示例实施例中,形成行解码器894的电路元件720b的操作电压可不同于形成页缓冲器893的电路元件720c的操作电压。例如,形成页缓冲器893的电路元件720c的操作电压可大于形成行解码器894的电路元件720b的操作电压。
共源极线接触插塞880可设置在外部垫键合区域PA中。共源极线接触插塞880可由导电材料(诸如,金属、金属化合物、多晶硅等)形成,并且可电连接到共源极线820。第一金属层850a和第二金属层860a可顺序地被堆叠在共源极线接触插塞880上方,并且连接到上部键合金属871a。例如,设置有共源极线接触插塞880、第一金属层850a和第二金属层860a的区域可被定义为外部垫键合区域PA。
第一输入-输出垫705和第二输入-输出垫805可设置在外部垫键合区域PA中。参照图21,覆盖第一基底710的下表面的下部绝缘膜701可形成在第一基底710下方,第一输入-输出垫705可形成在下部绝缘膜701上。第一输入-输出垫705可通过第一输入-输出接触插塞703连接到设置在外围电路区域PERI中的多个电路元件720a、720b和720c中的至少一个,并且可通过下部绝缘膜701与第一基底710分开。另外,侧面绝缘膜可设置在第一输入-输出接触插塞703与第一基底710之间,以将第一输入-输出接触插塞703与第一基底710电分离。
参照图21,覆盖第二基底810的上表面的上部绝缘膜801可形成在第二基底810上,第二输入-输出垫805可设置在上部绝缘膜801上。第二输入-输出垫805可通过第二输入-输出接触插塞803、下部键合金属772a和771a连接到设置在外围电路区域PERI中的多个电路元件720a、720b和720c中的至少一个。在一个示例实施例中,第二输入-输出垫805电连接到电路元件720a。
根据实施例,第二基底810和共源极线820可不设置在设置有第二输入-输出接触插塞803的区域中。此外,第二输入-输出垫805可在第三方向(Z轴方向)上不与多条字线830叠置。参照图21,第二输入-输出接触插塞803可在与第二基底810的上表面平行的方向上与第二基底810分开,并且可穿过单元区域CELL的层间绝缘层815来连接到第二输入-输出垫805。
根据实施例,可选择性地形成第一输入-输出垫705和第二输入-输出垫805。例如,存储器装置600可仅包括设置在第一基底710上方的第一输入-输出垫705或设置在第二基底810上方的第二输入-输出垫805。可选地,存储器装置600可包括第一输入-输出垫705以及第二输入-输出垫805二者。
在分别包括在单元区域CELL和外围电路区域PERI中的外部垫键合区域PA和位线键合区域BLBA中的每个中,最上金属层上设置的金属图案可作为虚设图案被设置,或者最上金属层可为空。
在外部垫键合区域PA中,存储器装置600可在外围电路区域PERI的最上层金属层中包括下部金属图案773a,下部金属图案773a与形成在单元区域CELL的最上层金属层中的上部金属图案872a对应,并且具有与单元区域CELL的上部金属图案872a的横截面形状相同的横截面形状,以便彼此连接。在外围电路区域PERI中,形成在外围电路区域PERI的最上层金属层中的下部金属图案773a可不连接到接触件。类似地,在外部垫键合区域PA中,上部金属图案872a可在单元区域CELL的最上层金属层中被形成,上部金属图案872a与形成在外围电路区域PERI的最上层金属层中的下部金属图案773a对应,并且具有与外围电路区域PERI的下部金属图案773a的形状相同的形状。
下部键合金属771b和772b可形成在字线键合区域WLBA中的第二金属层740b上。在字线键合区域WLBA中,外围电路区域PERI的下部键合金属771b和772b可通过Cu对Cu键合电连接到单元区域CELL的上部键合金属871b和872b。
此外,在位线键合区域BLBA中,可在单元区域CELL的最上层金属层中形成上部金属图案892,上部金属图案892与形成在外围电路区域PERI的最上层金属层中的下部金属图案752对应,并且具有与外围电路区域PERI的下部金属图案752的横截面形状相同的横截面形状。下部金属图案752可通过下部键合金属751连接到电路元件720c。可不在形成在单元区域单元的最上层金属层中的上部金属图案892上形成接触件。
在一个示例实施例中,对应于形成在单元区域CELL和外围电路区域PERI中的一个中的最上层金属层中的金属图案,可在单元区域CELL和外围电路区域PERI中的另一个中的最上层金属层中形成具有与该金属图案的横截面形状相同的横截面形状的增强金属图案。可不在增强金属图案上形成接触件。
图22是示出应用了根据实施例的存储装置10的数据中心3000的框图。
参照图22,数据中心3000可以是收集各种类型的数据并提供服务的设施,并且被称为数据存储中心。数据中心3000可以是用于操作搜索引擎和数据库的系统,并且可以是由公司(诸如,银行)或政府机构使用的计算系统。数据中心3000可包括应用服务器3100至3100n和存储服务器3200至3200m。应用服务器3100至3100n的数量和存储服务器3200至3200m的数量可根据实施例被不同地选择。应用服务器3100至3100n的数量可与存储服务器3200至3200m的数量不同。
应用服务器3100或存储服务器3200可包括处理器3110和3210中的至少一个以及存储器3120和3220中的至少一个。存储服务器3200现在将作为示例被描述。处理器3210可控制存储服务器3200的所有操作,访问存储器3220,并且执行加载在存储器3220中的指令和/或数据。存储器3220可以是双倍数据速率同步DRAM(DDR SDRAM)、高带宽存储器(HBM)、混合存储器立方体(HMC)、双列直插存储器模块(DIMM)、傲腾DIMM(Optane DIMM)或非易失性DIMM(NVMDIMM)。在一些实施例中,可不同地选择包括在存储服务器3200中的处理器3210和存储器3220的数量。在一个实施例中,处理器3210和存储器3220可提供处理器-存储器对。在一个实施例中,处理器3210的数量可与存储器3220的数量不同。处理器3210可包括单核处理器或多核处理器。存储服务器3200的以上描述可类似地被应用于应用服务器3100。在一些实施例中,应用服务器3100可不包括存储装置3150。存储服务器3200可包括至少一个存储装置3250。可根据实施例不同地选择包括在存储服务器3200中的存储装置3250的数量。
应用服务器3100至3100n可通过网络3300与存储服务器3200至3200m进行通信。网络3300可通过使用光纤通道(FC)或以太网来实现。在这种情况下,FC可以是用于相对高速的数据传输的介质,并且可使用具有高性能和高可用性的光开关。根据网络3300的访问方法,存储服务器3200至3200m可被提供为文件存储设备、块存储设备或对象存储设备。
在一个实施例中,网络3300可以是存储专用网络(诸如,存储区域网络(SAN))。例如,SAN可以是使用FC网络并且根据FC协议(FCP)来实现的FC-SAN。作为另一示例,SAN可以是互联网协议(IP)-SAN,互联网协议(IP)-SAN使用传输控制协议(TCP)/IP网络并且根据TCP/IP上的SCSI或互联网SCSI(iSCSI)协议来实现。在另一实施例中,网络3300可以是通用网络(诸如,TCP/IP网络)。例如,网络3300可根据诸如以太网上的FC(FCoE)、网络附加存储(NAS)和通过网络的NVMe(NVMe-oF)的协议来实现。
在下文中,将主要描述应用服务器3100和存储服务器3200。应用服务器3100的描述也可被应用于另一应用服务器3100n,存储服务器3200的描述也可被应用于另一存储服务器3200m。
应用服务器3100可通过网络3300将用户或客户端请求的将被存储的数据存储在存储服务器3200至3200m之一中。此外,应用服务器3100可通过网络3300从存储服务器3200至3200m之一获得用户或客户端请求的将被读取的数据。例如,应用服务器3100可被实现为网络服务器或数据库管理系统(DBMS)。
应用服务器3100可通过网络3300访问包括在另一应用服务器3100n中的存储器3120n或存储装置3150n。可选地,应用服务器3100可通过网络3300访问包括在存储服务器3200至3200m中的存储器3220至3220m或存储装置3250至3250m。因此,应用服务器3100可对存储在应用服务器3100至3100n和/或存储服务器3200至3200m中的数据执行各种操作。例如,应用服务器3100可执行用于在应用服务器3100至3100n和/或存储服务器3200至3200m之间移动或复制数据的指令。在这种情况下,数据可直接或通过存储服务器3200至3200m的存储器3220至3220m从存储服务器3200至3200m的存储装置3250至3250m移动到应用服务器3100至3100n的存储器3120至3120n。通过网络3300移动的数据可以是为了安全或隐私而加密的数据。
存储服务器3200现在将作为示例被描述。接口(IF)3254可提供处理器3210与控制器(CTRL)3251之间的物理连接以及网络接口卡(NIC)3240与控制器3251之间的物理连接。例如,接口3254可使用其中用专用电缆直接进行存储装置3250的连接的直接附加存储(DAS)方式来实现。例如,接口3254可通过使用各种接口方式(诸如,ATA、SATA、e-SATA、SCSI、SAS、PCI、PCIe、NVMe、IEEE 1394、USB接口、SD卡接口、MMC接口、eMMC接口、UFS接口、eUFS接口、CF卡接口)来实现。
存储服务器3200还可包括开关3230和NIC(网络互连)3240。开关3230可经由处理器3210的控制选择性地将处理器3210连接到存储装置3250,或者选择性地将NIC 3240连接到存储装置3250。应用服务器3100还可包括开关3130和NIC 3140。开关3130可经由处理器3110的控制选择性地将处理器3110连接到存储装置3150或者选择性地将NIC 3140连接到存储装置3150。
在一个实施例中,NIC 3240可包括网络接口卡和网络适配器。NIC 3240可通过有线接口、无线接口、蓝牙接口或光学接口连接到网络3300。NIC 3240可包括内部存储器、数字信号处理器(DSP)和主机总线接口,并且可通过主机总线接口连接到处理器3210和/或开关3230。主机总线接口可被实现为接口3254的以上描述的示例之一。在一个实施例中,NIC3240可与处理器3210、开关3230和存储装置3250中的至少一个集成。
在存储服务器3200至3200m或应用服务器3100至3100n中,处理器可将命令发送到存储装置3150至3150n和3250至3250m、或存储器3120至3120n和3220至3220m,并且编程或读取数据。在这种情况下,数据可以是由ECC引擎纠正的数据。数据可以是执行了数据总线倒置(DBI)或数据掩码(DM)的数据,并且数据可包括循环冗余码(CRC)信息。数据可以是为了安全或隐私而加密的数据。
存储装置3150至3150n或3250至3250m可响应于从处理器接收的读取命令而将控制信号和命令/地址信号发送到NAND闪存装置(NVM)3252至3252m。因此,当从NAND闪存装置3252至3252m读取数据时,读取使能(RE)信号可作为数据输出控制信号被输入,因此,数据被输出到DQ总线。可使用RE信号来生成数据选通信号DQS。可根据写入使能(WE)信号的上升沿或下降沿将命令和地址信号锁存在页缓冲器中。
控制器3251可控制存储装置3250的所有操作。在一个实施例中,控制器3251可包括SRAM。控制器3251可响应于写入命令而将数据写入NAND闪存装置3252,或者可响应于读取命令而从NAND闪存装置3252读取数据。例如,写入命令和/或读取命令可从存储服务器3200中的处理器3210、另一存储服务器3200m中的处理器3210m或应用服务器3100和3100n中的处理器3110和3110n提供。DRAM(BUF)3253可临时存储(或缓冲)将被写入NAND闪存装置3252或从NAND闪存装置3252读取的数据。此外,DRAM 3253可存储元数据。这里,元数据可以是用户数据或由控制器3251生成的用于管理NAND闪存装置3252的数据。存储装置3250可包括用于安全或隐私的安全元件(SE)。
虽然已经参照发明构思的实施例具体示出并描述了发明构思,但是将理解,在不脱离所附权利要求及其等同物的精神和范围的情况下,可在其中做出形式上和细节上的各种改变。

Claims (20)

1.一种存储器控制器的操作方法,存储器控制器被配置为控制包括多个存储器块的存储器装置,每个存储器块用于存储多个页,所述操作方法包括:
基于来自主机的写入请求将编程命令传送到存储器装置;
基于从存储器装置接收的有效页信息来更新有效页位图,有效页位图表示所述多个存储器块的多个页的有效性;
基于有效页位图来计算碎片率,碎片率表示所述多个存储器块之中的存储器块的至少一个有效页与至少一个无效页之间的分段度;
以碎片率的升序确定所述多个存储器块之中的源块;以及
对源块执行垃圾收集。
2.根据权利要求1所述的操作方法,其中,计算碎片率的步骤包括:将彼此相邻并且具有相同有效性条件的多个页分为一组。
3.根据权利要求2所述的操作方法,其中,碎片率基于有效页位图的分组后的多个页之中的有效页组的数量而被计算。
4.根据权利要求1所述的操作方法,其中,在有效页位图中,所述多个页中的有效页被表示为位“1”,所述多个页中的无效页被表示为位“0”,反之亦然。
5.根据权利要求1至权利要求4中的任意一项所述的操作方法,其中,确定所述多个源块的步骤包括:
当存储器块集之中的特定存储器块是具有最小碎片率的唯一存储器块时,选择特定存储器块作为所述多个源块中的第一源块。
6.根据权利要求1至权利要求4中的任意一项所述的操作方法,其中,确定所述多个源块的步骤包括:
检查在存储器块集之中是否仅存在一个具有最小碎片率的存储器块;以及
如果存在不止一个具有最小碎片率的存储器块,则选择碎片度最低的存储器块作为所述多个源块中的第一源块,碎片度基于有效页位图的一个存储器块的位连续性而被计算。
7.根据权利要求6所述的操作方法,其中,碎片度与彼此相邻的无效页组和有效页组的总数量对应,多个无效页组具有相同的有效性条件,并且多个有效页组具有相同的有效性条件。
8.根据权利要求1所述的操作方法,其中,更新有效页位图的步骤包括:
接收有效页信息,有效页信息表示与数据被写入其中的存储器空间对应的页是否有效;以及
基于有效页信息更新有效页位图。
9.一种存储装置的操作方法,存储装置包括存储器装置和存储器控制器,存储器装置包括均用于存储多个页的多个存储器块,存储器控制器被配置为控制存储器装置,所述操作方法包括:
由存储器控制器执行操作,所述操作包括:
从主机接收数据和写入请求,以及
将编程命令传送到存储器装置;
通过使用存储器装置将数据写入存储器空间中,并且生成有效页信息,有效页信息表示与数据被写入其中的存储器空间对应的页是否有效;以及
由存储器控制器进一步执行操作,所述操作包括:基于从存储器装置接收的有效页信息来更新有效页位图,有效页位图表示所述多个页的有效性;基于有效页位图来计算碎片率,碎片率表示所述多个存储器块之中的存储器块的至少一个有效页与至少一个无效页之间的分段度;以及基于碎片率来执行垃圾收集。
10.根据权利要求9所述的操作方法,其中,计算碎片率的步骤包括:将彼此相邻并且具有相同有效性条件的多个页分为一组。
11.根据权利要求9所述的操作方法,其中,碎片率基于有效页位图的分组后的多个页之中的有效页组的数量而被计算。
12.根据权利要求9至权利要求11中的任意一项所述的操作方法,其中,执行垃圾收集的步骤包括:
以大小的升序对碎片率进行对齐;以及
以碎片率的升序确定源块。
13.根据权利要求9至权利要求11中的任意一项所述的操作方法,其中,执行垃圾收集的步骤包括:
将具有最低碎片率的存储器块设置为源块;
将存储在源块中的数据复制到目的地块;以及
擦除源块。
14.根据权利要求9至权利要求11中的任意一项所述的操作方法,其中,执行垃圾收集的步骤包括:
检测具有最低碎片率的特定存储器块;以及
检查具有最低碎片率的特定存储器块是否是存储器块集之中具有最低碎片率的唯一一个存储器块。
15.根据权利要求14所述的操作方法,还包括:当特定存储器块是所述存储器块集之中具有最低碎片率的唯一一个存储器块时,选择具有最低碎片率的特定存储器块作为源块。
16.根据权利要求14所述的操作方法,还包括:当存在不止一个具有最小碎片率的存储器块时,选择碎片度最低的存储器块作为源块,碎片度基于有效页位图的一个存储器块的位连续性而被计算。
17.根据权利要求16所述的操作方法,其中,碎片度与彼此相邻的无效页组和有效页组的总数量对应,多个无效页组具有相同的有效性条件,并且多个有效页组具有相同的有效性条件。
18.根据权利要求17所述的操作方法,其中,有效页组是页的有效性被表示为“1”并且彼此相邻的页的集合,并且
无效页组是页的有效性被表示为“0”并且彼此相邻的页的集合。
19.一种存储装置,包括:
存储器装置,包括均用于存储多个页的多个存储器块,存储器装置被配置为提供关于所述多个存储器块的有效页信息;以及
存储器控制器,被配置为:基于有效页信息来计算碎片率,并且在垃圾收集处理中基于碎片率来重新布置和擦除所述多个存储器块内的数据,碎片率表示所述多个存储器块中的存储器块的至少一个有效页与至少一个无效页之间的分段度。
20.根据权利要求19所述的存储装置,其中,存储器控制器被配置为:当存储器块集之中存在碎片率相同的多个存储器块时,基于有效页组和无效页组的总数量来执行垃圾收集。
CN202111357422.0A 2020-12-28 2021-11-16 存储装置及其操作方法和存储器控制器的操作方法 Pending CN114691535A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0185208 2020-12-28
KR1020200185208A KR20220093982A (ko) 2020-12-28 2020-12-28 파편화율을 이용하는 메모리 컨트롤러, 및 스토리지 장치 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
CN114691535A true CN114691535A (zh) 2022-07-01

Family

ID=81972513

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111357422.0A Pending CN114691535A (zh) 2020-12-28 2021-11-16 存储装置及其操作方法和存储器控制器的操作方法

Country Status (4)

Country Link
US (2) US11698855B2 (zh)
KR (1) KR20220093982A (zh)
CN (1) CN114691535A (zh)
DE (1) DE102021130730A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116049021A (zh) * 2022-08-29 2023-05-02 荣耀终端有限公司 存储空间管理方法、电子设备及计算机可读存储介质
CN117093515A (zh) * 2023-10-09 2023-11-21 荣耀终端有限公司 存储器、终端设备及存储系统
TWI828602B (zh) * 2022-07-26 2024-01-01 慧榮科技股份有限公司 用來在預定通訊架構中藉助碎化資訊偵測進行記憶裝置的資料碎化降低控制的方法及設備、以及相關電腦可讀媒體

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
US8799561B2 (en) 2012-07-27 2014-08-05 International Business Machines Corporation Valid page threshold based garbage collection for solid state drive
US9501393B2 (en) * 2014-01-27 2016-11-22 Western Digital Technologies, Inc. Data storage system garbage collection based on at least one attribute
KR102317599B1 (ko) 2014-05-26 2021-10-26 삼성전자 주식회사 전자 장치 및 전자 장치의 단편화 분석 방법
KR101501717B1 (ko) 2014-10-29 2015-03-12 삼성전자주식회사 메모리 장치 및 메모리 장치의 관리 방법
EP3203377A1 (en) 2016-02-08 2017-08-09 Wipro Limited Method and system for optimized garbage collection in a storage device
KR102570367B1 (ko) * 2016-04-21 2023-08-28 삼성전자주식회사 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치를 액세스하는 액세스 방법
US10621084B2 (en) 2018-03-05 2020-04-14 International Business Machines Corporation Efficient garbage collection in the presence of block dependencies
US10678687B2 (en) 2018-07-11 2020-06-09 SK Hynix Inc. Memory system and operating method thereof
KR20200033459A (ko) * 2018-09-20 2020-03-30 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US10838859B2 (en) 2018-09-25 2020-11-17 Western Digital Technologies, Inc. Recency based victim block selection for garbage collection in a solid state device (SSD)
KR102645142B1 (ko) 2018-10-25 2024-03-07 삼성전자주식회사 예측된 유효 페이지들을 이용하여 가비지 콜렉션을 수행하는 스토리지 장치들, 방법들 및 불휘발성 메모리 장치들
KR20210092988A (ko) * 2020-01-17 2021-07-27 에스케이하이닉스 주식회사 가비지 콜렉션 동작을 위한 메모리 시스템 및 메모리 시스템의 동작방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI828602B (zh) * 2022-07-26 2024-01-01 慧榮科技股份有限公司 用來在預定通訊架構中藉助碎化資訊偵測進行記憶裝置的資料碎化降低控制的方法及設備、以及相關電腦可讀媒體
CN116049021A (zh) * 2022-08-29 2023-05-02 荣耀终端有限公司 存储空间管理方法、电子设备及计算机可读存储介质
CN116049021B (zh) * 2022-08-29 2023-10-20 荣耀终端有限公司 存储空间管理方法、电子设备及计算机可读存储介质
CN117093515A (zh) * 2023-10-09 2023-11-21 荣耀终端有限公司 存储器、终端设备及存储系统

Also Published As

Publication number Publication date
DE102021130730A1 (de) 2022-06-30
US11698855B2 (en) 2023-07-11
US20230333979A1 (en) 2023-10-19
US20220206938A1 (en) 2022-06-30
KR20220093982A (ko) 2022-07-05

Similar Documents

Publication Publication Date Title
CN107193486B (zh) 数据存储设备和包括该数据存储设备的数据处理系统
CN110083545B (zh) 数据存储装置及其操作方法
CN111414312B (zh) 数据存储装置及其操作方法
US11249897B2 (en) Data storage device and operating method thereof
US11698855B2 (en) Method, memory controller and storage device to perform garbage collection based on fragmentation ratio of blocks
CN111414313B (zh) 数据存储装置及数据存储装置的操作方法
US10789003B1 (en) Selective deduplication based on data storage device controller status and media characteristics
CN110928805A (zh) 存储器系统及其操作方法
US11782638B2 (en) Storage device with improved read latency and operating method thereof
CN113806241A (zh) 存储装置及其操作方法
US20220197510A1 (en) Storage device for executing processing code and operating method of the storage device
US20230036616A1 (en) Storage devices and operating methods of storage controllers
EP3955102B1 (en) Storage system performing overwrite, host system controlling storage system, and operating method for storage system
CN115291796A (zh) 存储数据的方法和装置
US11281590B2 (en) Controller, operating method thereof and storage device including the same
EP4174663A1 (en) Storage device and operation method thereof
US20230393741A1 (en) Storage device and electronic system
US11733875B2 (en) Method of writing data in nonvolatile memory device and nonvolatile memory device performing the same
KR102583244B1 (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
US20230195333A1 (en) Storage device and operation method of electronic system
US20230154529A1 (en) Storage controller and storage device including the same
TW202321926A (zh) 儲存裝置及其操作方法、以及控制器的操作方法
KR20240057337A (ko) 쓰기 데이터를 복수의 메모리 영역에 분산 저장하는 장치 및 방법
CN117931055A (zh) 在多个存储器区域中分配和存储写入数据的设备和方法
CN116107799A (zh) 存储设备

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