CN110532195B - 存储器系统的工作负荷分簇及执行其的方法 - Google Patents
存储器系统的工作负荷分簇及执行其的方法 Download PDFInfo
- Publication number
- CN110532195B CN110532195B CN201910436505.5A CN201910436505A CN110532195B CN 110532195 B CN110532195 B CN 110532195B CN 201910436505 A CN201910436505 A CN 201910436505A CN 110532195 B CN110532195 B CN 110532195B
- Authority
- CN
- China
- Prior art keywords
- workload
- item
- cluster
- candidate cluster
- items
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
- G06F12/1018—Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及对工作负荷项目执行分簇的存储器系统及其部件。这种存储器系统包括:存储器装置,从该存储器装置读取数据和将数据写入该存储器装置;以及存储器控制器,从主机接收工作负荷序列中的工作负荷项目,每个工作负荷项目由至少起始逻辑块地址(LBA)和长度限定。存储器控制器合并工作负荷序列中的顺序工作负荷项目以构成单个工作负荷项目;识别候选簇的起始工作负荷项目;将起始工作负荷项目的LBA和命中计数存储在存储器控制器的哈希表中;识别候选簇的结束工作负荷项目;确定在工作负荷序列中发现候选簇是否多于阈值次数;以及如果是则接受候选簇。
Description
相关申请的交叉引用
本申请要求于2018年5月23日提交的申请号为62/675,338的美国临时申请的权益,该申请的全部内容通过引用结合于此。
技术领域
本公开的实施例涉及用于对存储器系统特别是基于闪存的存储器系统中的工作负荷项目进行分簇的方案,以及执行这种方案的方法。
背景技术
计算机环境范例已经转变成能够随时随地使用的普适计算系统。因此,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有存储器装置的存储器系统,也就是数据存储装置。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
使用存储器装置的数据存储装置由于不具有移动部件,因此提供了出色的稳定性、耐用性、高信息存取速度和低功耗。具有这种优点的数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、以及固态硬盘(SSD)。
SSD可包括闪存存储器部件和控制器,控制器包括将闪存存储器部件桥接至SSD输入/输出(I/O)接口的电子器件。SSD控制器可包括运行诸如固件的功能部件的嵌入式处理器。SSD功能部件通常为装置特定的,并且在大多数情况下能够更新。
两种主要类型的闪存存储器被称为NAND和NOR逻辑门。各个闪存存储器单元呈现与其对应的门的内部特性相似的内部特性。NAND型闪速存储器可在通常比整个存储器空间小得多的块(或页面)中写入或从这些块(或页面)中读取。NOR型闪存允许将单个机器字(字节)单独地写入擦除位置或单独地读取单个机器字(字节)。NAND型闪存存储器主要在存储器卡、USB闪存驱动装置、固态硬盘(SSD)和类似的产品中操作,用于一般的数据存储和传输。
例如NAND型闪存存储器系统的基于闪存的存储装置包括为固件的闪存转换层(FTL),闪存转换层的一个作用是执行存储器装置的逻辑地址和物理地址之间的地址转换,即逻辑-物理(L2P)映射,也称为逻辑块寻址。FTL也执行诸如垃圾收集和磨损均衡的其它操作。
文件系统经常将文件存储为片段的序列,即,逻辑块地址(LBA)的区间。然而,片段化使NAND闪存存储装置中的读取性能劣化,因为要分别读取每个片段而不是执行顺序读取。另一方面,如果有足够的历史信息,则LBA区间可合并成单个簇(cluster),即以相同次序一起读取或写入的片段的序列。然而,NAND闪存存储装置没有足够的存储和处理资源来存储整个命令历史且执行针对这些目的的昂贵计算。
在这种背景下,提出了本发明的实施例。
发明内容
本发明的方面包括存储器系统,特别是基于闪存的NAND型存储器系统及其部件。根据一个方面,存储器系统包括:存储器装置,从该存储器装置读取数据并将数据写入该存储器装置;以及存储器控制器,被配置成控制存储器装置并且从主机接收工作负荷序列中的工作负荷项目,每个工作负荷项目由至少起始逻辑块地址(LBA)和长度限定。存储器控制器包括哈希表。另外,存储器控制器进一步被配置成:合并工作负荷序列中的顺序工作负荷项目以构成针对顺序工作负荷项目中的每组顺序工作负荷项目的单个工作负荷项目;识别工作负荷项目之中的候选簇的起始工作负荷项目;将起始工作负荷项目的LBA和命中计数存储在哈希表中;识别工作负荷项目之中的候选簇的结束工作负荷项目;确定在工作负荷序列中发现候选簇是否多于阈值次数;当确定在工作负荷序列中发现候选簇多于阈值次数时接受候选簇。
本发明的另一方面包括对这种存储器系统中的工作负荷项目进行分簇的方法,该方法可由存储器系统的一个或更多个部件执行。在这一点上,本发明的另一方面包括对存储器系统中的特定类型的工作负荷项目进行分簇的方法。该方法包括:接收工作负荷序列中的工作负荷项目,每个工作负荷项目由至少起始逻辑块地址(LBA)和长度限定;合并工作负荷序列中的顺序工作负荷项目以构成针对顺序工作负荷项目中的每组顺序工作负荷项目的单个工作负荷项目;识别工作负荷项目之中的候选簇的起始工作负荷项目;将起始工作负荷项目LBA和命中计数存储在存储器系统的哈希表中;识别工作负荷项目之中的候选簇的结束工作负荷项目;确定在工作负荷序列中发现候选簇是否多于阈值次数;以及当确定在工作负荷序列中发现候选簇多于阈值次数时接受候选簇。
本发明的其它方面将从下面的描述中变得显而易见。
附图说明
图1是示出了根据本发明的实施例的存储器系统的示图。
图2是示出了根据本发明的实施例的存储器系统的框图。
图3是示出了根据本发明的实施例的存储器系统的存储器装置的存储块的电路图。
图4是示出了根据本发明的实施例的合并命令的示图。
图5是示出了根据本发明的实施例的选择工作负荷项目作为簇的起始的流程图。
图6是示出了根据本发明的实施例的在被认为是候选簇的起始的命令已经添加到哈希表之后的工作负荷序列和哈希表的状态的示图。
图7是示出了根据本发明的实施例的在候选命令变成候选簇的第一命令之后的工作负荷序列和哈希表的状态的示图。
图8是示出了根据本发明的实施例的在命令被跳过并且候选簇的最后命令被添加之后的工作负荷序列和哈希表的状态的示图。
图9是示出了根据本发明的实施例的跳过没有在当前候选簇中并且具有较低概率被添加到任何候选簇的某些命令的示图。
图10是示出了根据本发明的实施例的候选簇和被拒绝候选的工作项目序列和该状态下的哈希表的示图。
图11是示出了根据本发明的实施例的在其中在序列中再次发现第一命令并且随后的命令被认为是候选簇的工作负荷序列和该状态下的哈希表的示图。
图12是示出了根据本发明的实施例的工作负荷序列的进一步处理的示图。
图13是示出了根据本发明的另一实施例的工作负荷序列的进一步处理的示图。
图14是示出了根据本发明的实施例的对工作负荷项目即命令进行分簇的进程的流程图。
具体实施方式
下面将参照附图更详细地描述各种实施例。然而,本发明可以不同的形式实施,因此不应被解释为限于本文中阐述的实施例。相反,提供这些实施例使得本公开是充分和完整的,并且将本发明的范围完全传达给本领域的技术人员。此外,本文中对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种用语的参考不一定针对相同的实施例。在整个公开中,相同的参考标号在本发明的附图和实施例中表示相同的部件。
本发明可以多种方式实现,包括作为:进程;设备;系统;事项的组合;在计算机可读存储介质中实施的计算机程序产品;和/或处理器,诸如适于执行在联接至处理器的存储器上存储的和/或由该存储器提供的指令的处理器。在本说明书中,这些实现方式或本发明可采用的任何其它形式可被称为技术。总体上,公开的进程的步骤的次序可在本发明的范围内改变。除非另有说明,诸如被描述为适于执行任务的处理器或存储器的部件可被实施为临时配置成在给定时间执行该任务的通用部件或被制造成执行该任务的专用部件。如本文中使用的,术语“处理器”等表示适于处理诸如计算机程序指令的数据的一个或更多个装置、电路和/或处理内核。
将在下文与示出本发明的方面的附图一起提供本发明的实施例的详细描述。本发明结合这些实施例描述,但是本发明不限于任何实施例。本发明的范围仅由权利要求限定。本发明包含在权利要求的范围内的多种替换、修改和等同方案。在随后的描述中阐述了许多具体细节以便提供对本发明的充分理解。这些细节针对示例的目的提供;可根据权利要求在没有一些或全部这些具体细节的情况下实现本发明。为了清楚,没有详细描述本技术领域中已知的与本发明相关的技术材料,以免不必要地模糊本发明。
图1是示意性地示出了根据本发明的实施例的存储器系统的框图。
参照图1,存储器系统10可包括存储器控制器100和半导体存储器装置200,其可表示多于一个这种装置。半导体存储器装置200优选地是闪存存储器装置,特别是NAND型存储器装置。
存储器控制器100可控制半导体存储器装置200的全部操作。
半导体存储器装置200可在存储器控制器100的控制下执行一个或更多个擦除操作、编程操作和读取操作。半导体存储器装置200可通过输入/输出(I/O)线接收命令CMD、地址ADDR和数据DATA。半导体存储器装置200可通过电力线接收电力PWR并通过控制线接收控制信号CTRL。控制信号CTRL可包括命令锁存使能(CLE)信号、地址锁存使能(ALE)信号、芯片使能(CE)信号、写入使能(WE)信号、读取使能(RE)信号等。
存储器控制器100和半导体存储器装置200可集成在诸如固态硬盘(SSD)的单个半导体装置中。SSD可包括用于在其中存储数据的存储装置。当半导体存储器系统10用在SSD中时,联接至存储器系统10的主机(未示出)的操作速度可显著提高。
存储器控制器100和半导体存储器装置200可集成在诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可被集成为配置:个人计算机存储卡国际协会(PCMCIA)的PC卡、紧凑型闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)、小型多媒体卡(RS-MMC)、微型版本MMC(微型MMC)、安全数字(SD)卡、小型安全数字(迷你SD)卡、微型安全数字(微型SD)卡、高容量安全数字(SDHC)和/或通用闪存存储装置(UFS)。
在另一实施例中,存储器系统10可提供为诸如下列的电子装置中的各种部件中的一种:计算机、超移动PC(UMPC)、工作站、上网本电脑、个人数字助理(PDA)、便携式计算机、网络平板电脑、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图像记录器、数字图像播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境中接收和发送信息的装置、无线射频识别(RFID)装置、以及家庭网络的各种电子装置中的一个、计算机网络的各种电子装置中的一个、远程通信网络的电子装置中的一个或计算系统的各种部件中的一个。
图2是示出了根据本发明的实施例的存储器系统的详细框图。例如,图2的存储器系统可描绘图1中示出的存储器系统10。
参照图2,存储器系统10可包括存储器控制器100和半导体存储器装置200。存储器系统10可响应于来自主机装置的请求操作,特别地,存储待由主机装置访问的数据。
主机装置可利用各种电子装置中的任一种实现。在一些实施例中,主机装置可包括诸如下列的电子装置:台式计算机、工作站、三维(3D)电视、智能电视、数字音频记录器、数字音频版播放器、数字图像记录器、数字图像播放器和/或数字视频记录器和数字视频播放器。在一些实施例中,主机装置可包括便携式电子装置,诸如移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和/或便携式游戏机。
存储器装置200可存储待由主机装置访问的数据。
存储器装置200可利用诸如动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)的易失性存储器装置或诸如只读存储器(ROM)、掩膜ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)和/或电阻RAM(RRAM)的非易失性存储器装置实现。
控制器100可控制存储器装置200中的数据存储。例如,控制器100可响应于来自主机装置的请求控制存储器装置200。控制器100可将从存储器装置200读取的数据提供至主机装置,并且可将从主机装置提供的数据存储至存储器装置200中。
控制器100可包括存储装置110、可实现为诸如中央处理单元(CPU)的处理器的控制部件120、错误校正码(ECC)部件130、主机接口(I/F)140和存储器接口(I/F)150,这些部件通过总线160联接。
存储装置110可用作存储器系统10和控制器100的工作存储器,并且存储用于驱动存储器系统10和控制器100的数据。当控制器100控制存储器装置200的操作时,存储装置110可存储由控制器100和存储器装置200使用的数据,以用于诸如读取操作、写入操作、编程操作和擦除操作的操作。
存储装置110可利用诸如静态随机存储器(SRAM)或动态随机存取存储器(DRAM)的易失性存储器实现。如上所述,存储装置110可将由主机装置使用的数据存储在存储器装置200中以用于读取操作和写入操作。为了存储数据,存储装置110可包括编程存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。存储装置110可包括哈希表115。
控制部件120可控制存储器系统10的一般操作,并且响应于来自主机装置的写入请求或读取请求控制对存储器装置200的写入操作或读取操作。控制部件120可驱动被称为闪存转换层(FTL)125的固件来控制存储器系统10的一般操作。例如,FTL125可执行诸如逻辑-物理(L2P)映射、损耗均衡、垃圾收集(GC)和/或坏块处理的操作。FTL125可实现为控制器100中的固件,更特别地,实现为控制部件120中的固件。L2P映射已知为逻辑块寻址。
ECC部件130可检测并校正在读取操作期间从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC部件130可不校正错误位,而是可输出指示校正错误位失败的错误校正失败信号。
ECC部件130可基于诸如下列的编码调制执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德斯-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、turbo码、turbo乘积码(TPC)、里德-所罗门(RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、或块编码调制(BCM)。ECC部件130可包括用于合适的错误校正操作的任何和全部电路、系统或装置。
主机接口140可通过诸如下列的各种接口协议中的一种或更多种与主机装置通信:通用穿行总线(USB)、多媒体卡(MMC)、外围组件高速互联(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强小型磁盘接口(ESDI)和集成电子驱动装置(IDE)。
存储器接口150可提供控制器100和存储器装置200之间的接口,以允许控制器100响应于来自主机装置的请求控制存储器装置200。存储器接口150可生成针对存储器装置200的控制信号并且在控制部件(或CPU)120的控制下处理数据。当存储器装置200是诸如NAND闪存存储器的闪存存储器时,存储器接口150可生成针对存储器的控制信号并且在CPU120的控制下处理数据。
存储器装置200可包括存储器单元阵列210、控制电路220、电压生成电路230、行解码器240、可为页面缓冲器阵列的形式的页面缓冲器(阵列)250、列解码器260、输入/输出电路270。存储器单元阵列210可包括可存储数据的多个存储块211。存储块的子集可被分组成用于特定操作的相应超级块(SB)。下面将详细描述SB及其在本发明的实施例的背景下的使用。
电压生成电路230、行解码器240、页面缓冲器(阵列)250、列解码器260和输入/输出电路270可形成用于存储器单元阵列210的外围电路。外围电路可执行存储器单元阵列210的编程操作、读取操作或擦除操作。控制电路220可控制外围电路。
电压生成电路230可生成各种电平的工作电压。例如,在擦除操作中,电压生成电路230可生成诸如擦除电压和通过电压的各种电平的工作电压。
行解码器240可与电压生成电路230和多个存储块211电通信。行解码器240可响应于由控制电路220生成的行地址RADD在多个存储块211之中选择至少一个存储块,并且将从电压生成电路230提供的工作电压传送至选择的存储块。
页面缓冲器(阵列)250可通过位线BL(图3中示出)与存储器单元阵列210电通信。页面缓冲器(阵列)250可响应于由控制电路220生成的页面缓冲器控制信号利用正电压对位线BL预充电,在编程操作和读取操作中将数据传送至选择的存储块并从选择的存储块接收数据,或者临时存储传送的数据。
列解码器260可将数据传送至页面缓冲器(阵列)250并从页面缓冲器(阵列)250接收数据,并且还可与输入/输出电路270交换数据。
输入/输出电路270可通过输入/输出电路270将从外部装置(例如,存储器控制器100)接收的命令和地址传送至控制电路220,将来自外部装置的数据传送至列解码器260,或者将数据从列解码器260输出至外部装置。
控制电路220可响应于命令和地址控制外围电路。
图3是示出根据本发明的实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可以是图2中示出的存储器单元阵列200的存储块211中的任一个。
参照图3,示例性的存储块211可包括联接至行解码器240的多个字线WL0至WLn-1、漏极选择线DSL和源极选择线SSL。这些线可与多个字线平行地布置在DSL和SSL之间。
示例性存储块211可进一步包括分别联接至位线BL0至BLm-1的多个单元串221。每个列的单元串可包括一个或更多个漏极选择晶体管DST和一个或更多个源极选择晶体管SST。在示出的实施例中,每个单元串具有一个DST和一个SST。在单元串中,多个存储器单元或存储器单元晶体管MC0至MCn-1可串联联接在选择晶体管DST和SST之间。每个存储器单元可形成为存储多位数据的信息的多层单元(MLC)。
每个单元串中的SST的源极可联接至公共源极线CSL,每个DST的漏极可联接至对应的位线。单元串中的SST的栅极可联接至SSL,单元串中的DST的栅极可联接至DSL。跨越单元串的存储器单元的栅极可联接至相应的字线。也就是,存储器单元MC0的栅极联接至对应的字线WL0,存储器单元MC1的栅极联接至对应的字线WL1等。联接至特定字线的一组存储器单元可称为物理页面。因此,存储块211中的物理页面的数量可对应于字线的数量。
如前文指出的,页面缓冲器(阵列)250可为包括联接至位线BL0至BLm-1的多个页面缓冲器251的页面缓冲器阵列的形式。页面缓冲器251可响应于页面缓冲器控制信号操作。例如,页面缓冲器251可在读取或验证操作期间临时存储通过位线BL0至BLm-1接收的数据或感测位线的电压或电流。
在一些实施例中,存储块211可包括NAND型闪存存储器单元。然而,存储块211不限于这种单元类型,而是可包括NOR型闪存存储器单元。存储器单元阵列210可实现为其中组合了两种或更多种类型的存储器单元的混合闪存存储器,或控制器嵌入存储器芯片内的1-NAND闪存存储器。
本发明的实施例提供了对存储器系统,特别是具有有限的CPU和RAM资源的存储器系统中的工作负荷项目进行分簇的技术。存储器系统10可配置有这种有限的资源。在实施例中,分簇操作可通过配置为NAND闪存存储器系统的存储器系统10执行,存储器系统10包括配置为NAND闪存存储器装置的存储器装置200。针对分簇所考虑的工作负荷项目可以是特定类型的命令,例如写入命令或读取命令。
在实施例中,工作负荷可定义为NAND闪存存储器装置、例如存储器装置200在一段时间、例如存储器装置200的寿命期间从主机接收的命令的序列。通常,命令被处理以将顺序命令分组选择为候选簇,其中每个命令由命令类型、逻辑块地址(LBA)和命令长度限定。将候选簇的起始命令的LBA和命中计数以及候选簇的结束命令的LBA和命中计数存储在哈希表115中,哈希表115可配置在存储装置110的SRM或DRAM中。然后基于哈希表115中的条目形成簇。描述每个簇的信息允许存储器系统10执行片段整理,这使得读取性能提高。
簇技术、算法或方法通常包括三部分:预处理命令、训练和形成簇。虽然本发明可应用于任何类型的命令,例如写入、读取、丢弃,但是下面将在写入命令的背景下描述簇技术。本领域的技术人员将理解如何将这种教导延伸至其它类型的命令。
每个命令可由三个变量识别:命令类型(cmd_type)、起始地址(LBA)和命令长度(长度),例如(写入,100,5)。簇可限定为工作负荷序列中以相同次序一起出现多于一次的一组命令。例如,如果命令的序列,例如(写入,315,10)、(写入,1,20)、(写入,200,5)、(写入,1000,12)以这样的次序出现多于一次,则这组命令被认为是一簇。该技术搜索具有特定长度(CLUSTER_LENGTH)的簇。在实施例中,CLUSTER_LENGTH可表示特定数量的命令。在实施例中,CLUSTER_LENGTH为固定数量。
预处理命令包括合并特定命令。两个或更多个顺序命令可被认为是单个命令。例如,顺序写入命令(100,10)、(110,20)、(130,15)、(145,15)等同于一个写入命令(100,60),如图4中所示。为了简洁,每个写入命令仅以其起始地址和长度呈现。下面的命令使用相同的缩略格式。可假设该命令是写入命令,但本发明不限于该类型的命令。
当已经执行了预处理时,忽略比X LBA短且比Y LBA长的命令。因此,仅使用长度为Z(X<Z<Y)LBA的命令形成簇。参数X和Y可由开发者设定以优化算法准确性。因为处理比YLBA长的命令要求显著更多的存储器资源,所以可通过另外的高速缓存算法(例如,最近最少使用(LRU)算法、最少使用频率(LFU)算法)更高效地进行这种处理。
下面描述训练部分。为了优化存储器资源,将描述每个簇的信息存储在哈希表115中。
每个工作负荷项目、例如命令可以被认为是具有特定概率Pth的簇的起始。因此,为了将命令添加至哈希表115,算法可生成在区间[0,1]中的数字R,其被比作阈值概率Pth。在这个实施例中,如果R大于Pth并且哈希表115的第i单元(i=hash(LBA))为空,则将命令添加至哈希表115;否则,该命令被跳过,即不添加至哈希表115。哈希函数在最简单的情况下可实现为取模运算或者利用更复杂的算法例如多项式或通用哈希函数实现。
图5的流程图中示出了选择命令作为簇的起始的进程的实施例。在步骤501,命令到达工作负荷预测器,工作负荷预测器可被配置为控制部件120的部分。在步骤502,确定该命令的LBA是否在哈希表115中,这指示之前在工作负荷序列中是否遇到过该命令。如果是,则在哈希表115内处理LBA(步骤503)。如果否(步骤502处为否),则在步骤504处生成在区间[0,1]中的随机数字R。在步骤505,确定是否R<Pth。
如果在步骤505处为“是”,则将接收的命令的LBA添加至哈希表115并且将该命令认为是新簇的第一命令(步骤506)。如果在步骤505处为“否”,则跳过该LBA,即不添加至哈希表115(步骤507)。在步骤506或步骤507后,进程结束。
当命令被添加至哈希表115,该命令被认为是候选簇的一部分。例如,如图6中所示,将工作负荷序列中的起始LBA为128且长度(Len)为16的第一命令添加至哈希表,作为选择的候选簇的第一命令。将该命令的LBA(128)及其命中计数,在此为1,添加至哈希表115的单元。因此,图6示出了已经选择且具有第一命令的候选簇之后的哈希表115的状态。要注意的是,下一个CLUSTER_LENGTH命令(在这个示例中为两个命令,即(256,16)和(400,16))不被认为是簇的起始。CLUSTER_LENGTH是整数,在这个示例中为3。
当存储命令LBA时,单元可处于三种可能状态中的一种:未知、拒绝和接受。未知可指示工作负荷中的经处理的命令的数量小于K或第一命令的LBA出现次数少于D1。K是整数,其表示将簇的状态变成拒绝所需的经处理的命令的最小数量。D1是整数,其表示在工作负荷中遇到候选簇的起始的最小次数。拒绝可指示候选簇中的命令的数量大于K并且簇的起始和簇的结束的出现次数少于D2(同时簇的起始的出现次数可大于D1)。D2是整数,其表示在工作负荷中遇到候选簇的起始和候选簇的结束的最小次数。否则,指示接受。在并且仅在簇之前被拒绝并且簇的起始和簇的结束出现次数都少于D2时,簇被接受。例如,假设将新命令添加至哈希表115并且hash(LBA)=j。如果哈希表115的第j单元不是空的并且处于拒绝状态,则其应该被清除。否则,应该跳过新命令。当具有与已经在哈希表115中的另一命令LBA相同的哈希值的新命令LBA被认为是候选时,检验存在的LBA条目的状态。如果存在的LBA的状态是未知或接受,则不将新的LBA添加至哈希表115,即使其概率R在阈值Pth之上。
参数K、D1和D2是调整参数,其可在存储器系统10的约束内由开发者确定并调整以优化分簇算法的准确性。较大的K表示在进行判定前可分析较大的工作负荷。然而,K的区间的上限受到存储器系统10的限制的约束。D1和D2适于算法的准确性。较大的D1和D2值指示候选为实际簇的较大的确定性。然而,对K的约束也约束D1和D2。如果D1和D2增加的太多,则会难以检测簇,因为命中计数不会达到K个命令以内的那些值。
除了状态和LBA,哈希表115的每个单元可包含在训练阶段期间已经遇到或发现存储的命令的次数(命中_计数)以及在存储的命令(命中_第一_次数)之前经处理的LBA的数量。可将这些信息项目存储在每个单元中的阵列中。在已经处理簇长度命令之后将命令添加至该阵列。
为了避免将随机写入命令认为是簇的结束,该阵列应具有多于一个的可能结束命令。并且,阵列中的可能结束命令应相对于其命中计数值以降序存储。因此,将可能结束命令以其作为结束命令(阵列_结束_簇)的概率的降序存储为阵列。随着新命令被添加至阵列,可将最小可能性的结束命令移除。
下面描述各种示例。
参照图7,将工作负荷序列中的LBA为128且长度为16的命令认为是候选簇的第一命令。将该命令的LBA连同已经发现命令的次数,在此示例中为1,添加至哈希表115。
接下来,如图8中所示,在工作负荷序列中遇到更多的两个命令:第二命令(256,16)和随后的第三命令(400,16)。将关于第三命令的信息添加至哈希表115作为候选簇的最后命令(簇的结束)。在此,该最后命令的击中计数为1。候选簇包含三个命令,即(128,16)、(256,16)、(400,16);将簇的起始(128,16)和簇的结束(400,16)存储在哈希表115中。
在接下来的步骤中,如图9中所示,在工作负荷序列中接收更多的两个命令(500,20)和(700,50)。这些命令被拒绝,即,没有被添加至哈希表115,因为其既不属于任何存在的簇也不具有低于阈值概率即Pth的被添加的概率。因此,在五个命令的工作负荷序列之后,第一候选簇仍然由第一命令(128,16)和最后命令(400,16)限定,关于第一命令和最后命令的信息包括在哈希表115中。
该进程继续,如图10中所示。在工作负荷序列中接收更多的三个命令,其中命令(320,10)被选择为第二候选簇的第一命令。随后的两个命令(350,16)(簇的起始)和(370,8)(簇的结束)被认为属于第二簇,其中两个命令中的后者限定该候选簇的最后命令。因此,将第一命令(320,10)和最后命令(370,8)的信息添加至哈希表115作为第二候选簇,如图10中所示。
现在参照图11,在工作负荷序列中接收命令(450,15),然后第一候选簇中的三个相同的命令在工作负荷序列中被再次遇到。命令(450,15)被拒绝作为候选,因为算法生成的针对该命令的概率R小于Pth。然而,工作负荷序列中的最后三个命令被认为是候选簇。因此,在哈希表115中更新命令(128,16)和(400,16)中的每一个的命中计数,如图11中所示。
进程继续进行到工作负荷序列包括21个命令的点,如图12中所示。针对最后K个命令,从命令(128,16)开始的簇被遇到的次数小于D2,并且具有相同哈希值的LBA被选择为新的候选簇。因此,哈希表115的保持第一候选簇的信息的单元变成拒绝。针对每K个命令,检验每个候选的命中计数。如果给定候选的命中计数小于D2,则将其状态设置成拒绝。在接下来的K个命令期间,如果具有相同哈希值的新命令被认为是新候选,则用新候选替代之前被拒绝的候选。在所示的示例中,D2是3,因为对(128,16)(簇的起始)和(400,16)(簇的结束)被遇到三次,该次数不大于D2。因此,候选簇(128,16)、(400,16)被拒绝。
图7至图11和图13示出了另一示例。该示例的步骤1至5与上面分别结合图7至图11描述的第一示例的步骤相同。
进程继续进行到工作负荷序列包括21个命令的点,如图13中所示。与第一示例不同,在这个示例中,从命令(128,16)开始的候选簇被遇到4次,这个次数大于D2,其中D2是3。因此,接受这个簇,并相应地更新哈希表115。
簇形成阶段恰好在哈希表115中的单元中的至少一个进入接受状态之后开始。在簇形成阶段期间,算法分析每个命令,如果命令在哈希表115中被发现并且对应的单元处于接受状态,则这个命令和随后的CLUSTER_LENGTH命令将被存储在由FTL提供的阵列中。然后,将存储为结束_簇_的_阵列的第一元件的簇的假设结束的LBA与第(CLUSTER_LENGTH+1)命令的LBA进行比较。如果如比较指示的,LBA具有相同的值,则可将检测到簇的通知发送到FTL。否则,可忽略累积的数据并且第(CLUSTER_LENGTH+1)命令的LBA应如结合训练阶段描述的被处理。
图14是描述根据本发明的实施例的用于对工作负荷项目进行分簇的进程中的步骤的流程图。流程图1400中示出的步骤是示例性的。本领域的技术人员将理解可执行附加的和/或替换的步骤,或者可改变步骤的顺序,以在不背离本文中公开的发明概念的情况下实现本发明的方面。
在步骤1401,在工作负荷序列中接收工作负荷项目,例如相同类型的命令。为了进一步改进分簇算法的效率,在步骤1402处合并工作负荷序列中的顺序命令以构成一个或更多个单个命令。也就是,可针对顺序命令中的每组顺序命令执行这种合并操作。
在步骤1403,在工作负荷序列中的命令之中,识别候选簇的起始命令。这种识别可经受之前说明的概率条件。一旦识别了候选簇的起始命令,在步骤1404将该命令的LBA和命中计数存储在哈希表中,例如哈希表115。
在一个或更多个其它命令被接收并添加至候选簇之后,在步骤1405识别候选簇的结束命令。随着在工作负荷序列中接收了更多命令,在步骤1406中进行检查以确定候选簇在工作负荷序列中出现是否多于阈值次数。如果是,则在步骤1407处接受候选簇。然后,可处理接受的簇。
可对上述的处理进行各种修改。例如,CLUSTER_LENGTH可以是不固定的,而是可依据测试工作负荷而灵活改变。在另一实施例中,CLUSTER_LENGTH可以LBA的数量来测量,而不是命令的数量。在另一实施例中,在训练阶段期间聚集的簇可合并成更大的簇以节省存储器资源。在另一实施例中,当使用主机命令流时,除了命令的LBA和长度之外还可使用流标识(ID)。
如前文表明的,本发明的实施例提供了用来检测被传送至存储装置的主机工作负荷中的工作负荷项目例如命令的簇的技术。由此,本发明的实施例能够实现片段式的文件组块的片段整理,以有利地将随机读取存取转换成顺序读取存取。因此,提高了读取性能。
尽管为了清楚和理解的目的已经示出并描述了前述实施例的一些细节,本发明不限于提供的这些细节。如本领域技术人员根据前述公开内容将理解的,存在实现本发明的许多替换方式。公开的实施例因此是说明性的,而不是限制性的。
Claims (16)
1.一种存储器系统,包括:
存储器装置,从所述存储器装置读取数据并且将数据写入所述存储器装置;以及
存储器控制器,控制所述存储器装置并且从主机接收工作负荷序列中的多个工作负荷项目,每个工作负荷项目由至少起始逻辑块地址即LBA和长度限定;
其中,所述存储器控制器进一步:
识别所述工作负荷序列中的候选簇的起始工作负荷项目和结束工作负荷项目,所述候选簇包括与设置簇长度相对应的多个工作负荷项目,所述起始工作负荷项目是所述多个工作负荷项目之中的第一工作负荷项目,所述结束工作负荷项目是所述多个工作负荷项目之中的最后工作负荷项目并且基于所述第一工作负荷项目和所述设置簇长度来确定;
确定所述结束工作负荷项目之后并且具有设置簇长度的其它工作负荷项目是否与所述候选簇相同;
当确定所述其它工作负荷项目与所述候选簇相同时,对指示所述候选簇在所述工作负荷序列中被找到的次数进行计数;
确定所计数的次数是否多于阈值次数;以及
当确定所计数的次数多于所述阈值次数时接受所述候选簇,其中,所述存储器控制器将阈值概率分配到所述候选簇的起始工作负荷项目,生成设置范围内的随机数,并且当所述随机数大于所述阈值概率时将所述第一工作负荷项目作为所述候选簇的起始工作负荷项目。
2.根据权利要求1所述的存储器系统,其中所述存储器控制器:
其中所述结束工作负荷项目之后并且具有设置簇长度的其它工作负荷项目是否与所述候选簇相同的确定以及指示所述候选簇在所述工作负荷序列中被找到的次数的计数针对除所述工作负荷序列中的其它工作负荷项目之外的剩余工作负荷项目而反复执行。
3.根据权利要求2所述的存储器系统,其中所述存储器控制器进一步:当确定所述其它工作负荷项目与所述候选簇不同时,将所述其它工作负荷项目确定为附加候选簇;
确定所述附加候选簇是否在所述工作负荷序列中被找到超过阈值次数;以及
当确定所述附加候选簇在所述工作负荷序列中被找到超过阈值次数时,接受所述附加候选簇。
4.根据权利要求1所述的存储器系统,其中所述存储器控制器在表格中存储所述候选簇中的所述起始工作负荷项目和结束工作负荷项目的起始LBA;以及
在所述表格中存储计数的次数,使得所述存储器控制器确定所述候选簇是否在所述工作负荷序列中被找到超过阈值次数。
5.根据权利要求1所述的存储器系统,其中所述存储器控制器进一步当确定其它工作负荷项目具有比所述设置簇长度短的长度时,拒绝所述其它工作负荷项目作为候选簇。
6.根据权利要求1所述的存储器系统,其中每个工作负荷项目是写入命令。
7.根据权利要求1所述的存储器系统,其中所述存储器控制器进一步处理被接受的候选簇中的命令。
8.根据权利要求1所述的存储器系统,其中所述存储器系统是基于闪存的存储器系统。
9.一种对存储器系统中的特定类型的工作负荷项目进行分簇的方法,所述方法包括:
接收工作负荷序列中的多个工作负荷项目,每个工作负荷项目由至少起始逻辑块地址即LBA和长度限定;
识别所述工作负荷序列中的候选簇的起始工作负荷项目和结束工作负荷项目,所述候选簇包括与设置簇长度相对应的多个工作负荷项目,所述起始工作负荷项目是所述多个工作负荷项目之中的第一工作负荷项目,所述结束工作负荷项目是所述多个工作负荷项目之中的最后工作负荷项目并且基于所述第一工作负荷项目和所述设置簇长度来确定;
确定所述结束工作负荷项目之后并且具有设置簇长度的其它工作负荷项目是否与所述候选簇相同;
当确定所述其它工作负荷项目与所述候选簇相同时,对指示所述候选簇在所述工作负荷序列中被找到的次数进行计数;
确定所计数的次数是否多于阈值次数;以及
当确定所计数的次数多于所述阈值次数时接受所述候选簇,
其中,阈值概率被分配到所述候选簇的起始工作负荷项目,当设置范围内生成的随机数大于所述阈值概率时将所述第一工作负荷项目作为所述候选簇的起始工作负荷项目。
10.根据权利要求9所述的方法,
其中所述结束工作负荷项目之后并且具有设置簇长度的其它工作负荷项目是否与所述候选簇相同的确定以及指示所述候选簇在所述工作负荷序列中被找到的次数的计数针对除所述工作负荷序列中的其它工作负荷项目之外的剩余工作负荷项目而反复执行。
11.根据权利要求10所述的方法,进一步包括:
当确定所述其它工作负荷项目与所述候选簇不同并且属于所述候选簇时,将所述其它工作负荷项目确定为附加候选簇;
确定所述附加候选簇是否在所述工作负荷序列中被找到超过阈值次数;以及
当确定所述附加候选簇在所述工作负荷序列中被找到超过阈值次数时,接受所述附加候选簇。
12.根据权利要求9所述的方法,进一步包括:
在表格中存储所述候选簇中的所述起始工作负荷项目和结束工作负荷项目的起始LBA;以及
在所述表格中存储计数的次数,使得所述存储器控制器确定所述候选簇是否在所述工作负荷序列中被找到超过阈值次数。
13.根据权利要求9所述的方法,进一步包括当确定其它工作负荷项目具有比所述设置簇长度短的长度时,拒绝所述其它工作负荷项目作为候选簇。
14.根据权利要求9所述的方法,其中每个工作负荷项目是写入命令。
15.根据权利要求9所述的方法,进一步包括:
处理被接受的候选簇中的命令。
16.根据权利要求9所述的方法,其中所述存储器系统是基于闪存的存储器系统。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862675338P | 2018-05-23 | 2018-05-23 | |
US62/675,338 | 2018-05-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110532195A CN110532195A (zh) | 2019-12-03 |
CN110532195B true CN110532195B (zh) | 2023-04-07 |
Family
ID=68615235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910436505.5A Active CN110532195B (zh) | 2018-05-23 | 2019-05-23 | 存储器系统的工作负荷分簇及执行其的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11163489B2 (zh) |
CN (1) | CN110532195B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102593757B1 (ko) * | 2018-09-10 | 2023-10-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR20210055875A (ko) * | 2019-11-08 | 2021-05-18 | 삼성전자주식회사 | 저장 장치와 저장 장치 시스템 그리고 그 동작 방법 |
CN112597733B (zh) * | 2020-12-30 | 2022-07-15 | 北京华大九天科技股份有限公司 | 一种存储单元的识别方法、设备及计算机可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105474184A (zh) * | 2013-09-28 | 2016-04-06 | 英特尔公司 | 用来管理高容量储存器装置的设备和方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6038651A (en) * | 1998-03-23 | 2000-03-14 | International Business Machines Corporation | SMP clusters with remote resource managers for distributing work to other clusters while reducing bus traffic to a minimum |
JP2012531674A (ja) * | 2009-06-26 | 2012-12-10 | シンプリヴィティ・コーポレーション | ノンユニフォームアクセスメモリにおけるスケーラブルなインデックス付け |
US8566317B1 (en) * | 2010-01-06 | 2013-10-22 | Trend Micro Incorporated | Apparatus and methods for scalable object clustering |
TWI544487B (zh) | 2015-01-22 | 2016-08-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
US9977623B2 (en) | 2015-10-15 | 2018-05-22 | Sandisk Technologies Llc | Detection of a sequential command stream |
US10296264B2 (en) * | 2016-02-09 | 2019-05-21 | Samsung Electronics Co., Ltd. | Automatic I/O stream selection for storage devices |
KR102593362B1 (ko) * | 2016-04-27 | 2023-10-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
-
2019
- 2019-05-23 CN CN201910436505.5A patent/CN110532195B/zh active Active
- 2019-05-23 US US16/420,746 patent/US11163489B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105474184A (zh) * | 2013-09-28 | 2016-04-06 | 英特尔公司 | 用来管理高容量储存器装置的设备和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110532195A (zh) | 2019-12-03 |
US20190361628A1 (en) | 2019-11-28 |
US11163489B2 (en) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109800180B (zh) | 用于地址映射的方法和存储器系统 | |
CN106169308B (zh) | 存储器控制器及其操作方法 | |
US10108472B2 (en) | Adaptive read disturb reclaim policy | |
US10296452B2 (en) | Data separation by delaying hot block garbage collection | |
US10943669B2 (en) | Memory system and method for optimizing read threshold | |
CN106257594B (zh) | 读取干扰收回策略 | |
CN109428606B (zh) | 具有ldpc解码器的存储器系统及其操作方法 | |
CN110442529B (zh) | 可配置的存储器系统及配置和使用该存储器系统的方法 | |
US20190155546A1 (en) | Memory system with soft-read suspend scheme and method of operating such memory system | |
US10802761B2 (en) | Workload prediction in memory system and method thereof | |
CN107977283B (zh) | 具有ldpc解码器的存储器系统及其操作方法 | |
CN110532195B (zh) | 存储器系统的工作负荷分簇及执行其的方法 | |
US10896125B2 (en) | Garbage collection methods and memory systems for hybrid address mapping | |
CN110277124B (zh) | 具有混合解码方案的存储器系统及其操作方法 | |
US11538547B2 (en) | Systems and methods for read error recovery | |
US11335417B1 (en) | Read threshold optimization systems and methods using model-less regression | |
US11036579B2 (en) | Decoder for memory system and method thereof | |
US11467938B2 (en) | Read retry threshold optimization systems and methods conditioned on previous reads | |
US11356123B2 (en) | Memory system with low-complexity decoding and method of operating such memory system | |
US11210008B2 (en) | Memory system for multi-clustering read thresholds and method thereof | |
US11087846B1 (en) | Memory system with single decoder, multiple memory sets and method for decoding multiple codewords from memory sets using the single decoder | |
US11650795B2 (en) | Raw read based physically unclonable function for flash memory | |
CN110275844B (zh) | 利用自适应阈值解码的存储器系统及其操作方法 | |
CN110047554B (zh) | 具有超级芯片删除恢复的存储器系统及其操作方法 | |
CN112068983A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |