CN110750380B - 具有奇偶校验高速缓存方案的存储器系统以及操作方法 - Google Patents

具有奇偶校验高速缓存方案的存储器系统以及操作方法 Download PDF

Info

Publication number
CN110750380B
CN110750380B CN201910667001.4A CN201910667001A CN110750380B CN 110750380 B CN110750380 B CN 110750380B CN 201910667001 A CN201910667001 A CN 201910667001A CN 110750380 B CN110750380 B CN 110750380B
Authority
CN
China
Prior art keywords
open block
open
commands
memory
queues
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
Application number
CN201910667001.4A
Other languages
English (en)
Other versions
CN110750380A (zh
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.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN110750380A publication Critical patent/CN110750380A/zh
Application granted granted Critical
Publication of CN110750380B publication Critical patent/CN110750380B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • 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
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供一种存储器系统,在该存储器系统内,用于处理奇偶校验高速缓存方案中的命令的架构和操作支持考虑成本和性能的更多开放块。动态随机存取存储器空间保持所有开放块的奇偶校验缓冲器,并且与高速缓存和高速缓存控制器通信。开放块队列(OBQ)在每个开放块的单独队列中累积命令以提高缓存命中率。开放块计数器跟踪每个OBQ的命令的数量以便于仲裁。针对每个开放块给定唯一标识(ID)。

Description

具有奇偶校验高速缓存方案的存储器系统以及操作方法
相关申请的交叉引用
本申请要求2018年7月23日提交的申请号为62/702,090的美国临时申请的权益,该美国临时申请的全部内容通过引用并入本文。
技术领域
本公开的实施例涉及具有用于实施改进的奇偶校验高速缓存方案的架构的存储器系统,以及这种存储器系统的操作方法。
背景技术
计算机环境范例已经转变成可随时随地使用的普适计算系统。因此,诸如移动电话、数码相机和笔记本计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有存储器装置的存储器系统即数据存储装置。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
由于使用存储器装置的数据存储装置不具有移动部件,因此它们提供优异的稳定性、耐用性、高信息访问速度和低功耗。具有这些优点的数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
SSD可以包括闪速存储器组件和控制器,该控制器包括将闪速存储器组件桥接至SSD输入/输出(I/O)接口的电子器件。SSD控制器可以包括运行诸如固件的功能组件的嵌入式处理器。SSD功能组件通常是特定于装置的,并且在大多数情况下可被更新。
两种主要类型的闪速存储器以NAND逻辑门和NOR逻辑门命名。各个闪速存储器单元表现出与其相应栅极的内部特性类似的内部特性。NAND型闪速存储器可以通常远小于整个存储器空间的块(或页面)而被写入和读取。NAND型闪速存储器主要在存储卡、USB闪存驱动器、固态驱动器(SSD)和类似产品中操作,以用于一般的数据存储和传输。
例如NAND型的闪速存储器可以应用各种错误校正技术中的任意一种来校正数据中的错误。可以应用于独立磁盘冗余阵列(RAID)系统的一种这样的技术是RAID奇偶校验例如芯片猎杀。当存储装置变得损坏时,这种技术用于恢复数据。RAID奇偶校验是通过以固定单位诸如8KB对存储器的开放块中的所有数据进行异或(XOR)而生成。在这种情况下的开放块包括来自不同NAND管芯的NAND块。相同NAND块内的所有数据由于NAND装置的特性而必须同时被擦除。
在此背景下出现了本发明的实施例。
发明内容
本发明的实施例提供用于可以在奇偶校验方案例如RAID奇偶校验方案中采用的改进的奇偶校验高速缓存方案特别是RAID奇偶校验高速缓存方案的架构和操作。
本发明的一方面包括存储器系统。这种存储系统包括:存储器装置,包括开放块,每个开放块具有唯一标识符;以及存储器控制器。存储器控制器包括动态随机存取存储器(DRAM),具有奇偶校验缓冲器,该DRAM的大小被设计成容纳所有开放块的所有数据;高速缓存和高速缓存控制器,与DRAM通信;开放块队列,分别与开放块对应,每个开放块队列累积针对相应开放块的命令;开放块计数器,一个开放块计数器与开放块中的每一个相关联,每个开放块计数器保持对来自被转发用于处理的相应开放块的命令的数量的持续计数;管芯队列,分别与开放块队列对应;以及仲裁器,被配置成关于开放块队列进行仲裁以确定待被处理的命令的顺序。
在另一方面,存在一种命令处理系统,该命令处理系统包括仲裁器,以关于开放块队列进行仲裁,开放块队列中的每一个保持一组命令,以基于从用于处理的开放块队列中的每一个转发的命令的数量的当前计数选择开放块队列中的一个;管芯队列,一个管芯队列与开放块队列中的每一个相关联以接收从各个开放块队列转发的命令;以及命令处理器,用于处理来自管芯队列的命令。
本发明的另外方面包括处理存储器系统中的命令的方法,存储器系统包括多个开放块。这种方法包括:将由存储器系统接收的多个命令中的每一个发送至多个开放块队列中的一个,每个命令包含标识开放块中的特定开放块的标签;在开放块队列之中进行仲裁以基于被选择性地应用以增加高速缓存命中率的一组规则来选择一个开放块队列;转发所选择的开放块队列中的命令以用于处理;使针对所选择的开放块队列转发的命令的总数量的计数增加在转发操作中转发的命令的数量;以及使在处理来自所选择的开放块队列的命令之后的计数减少与在增加操作中增加的计数相同的数量。
从以下描述,本发明的其它方面将变得显而易见。
附图说明
图1是示出根据本发明的实施例的存储器系统的框图。
图2是示出根据本发明的实施例的存储器系统的框图。
图3是示出根据本发明的实施例的存储器系统的存储器装置的存储块的电路图。
图4是示出根据本发明的实施例的存储器系统的示图。
图5示出SSD控制器的示例。
图6示出根据本发明的实施例的奇偶校验高速缓存方案的组件和处理流程。
图7是示出根据本发明的实施例的用于处理奇偶校验高速缓存方案中的命令的步骤的流程图。
具体实施方式
下面参照附图更详细地描述各个实施例。然而,本发明可以不同的形式实施并且因此不应被解释为限于本文阐述的实施例。而是,提供这些实施例使得本公开彻底且完整,并且向本领域技术人员充分传达本发明的范围。此外,本文对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任意这种短语的不同参考不一定针对相同的实施例。在整个公开中,相同的附图标记在本发明的附图和实施例中表示相同的部件。
本发明可以包括如下列的多种方式来实施:进程;设备;系统;物质的组成;在计算机可读存储介质上实现的计算机程序产品;和/或处理器,诸如适于执行存储在联接至处理器的存储器上和/或由联接至处理器的存储器提供的指令的处理器。在本说明书中,这些实施方式或本发明可以采用的任意其它形式可以被称为技术方案。通常,可以在本发明的范围内改变所公开的进程的步骤的顺序。除非另有说明,否则被描述为适于执行任务的、诸如处理器或存储器的组件可以被实施为临时配置为在给定时间执行该任务的通用组件或者被制造为执行该任务的专用组件。如本文所使用的,术语“处理器”等是指适于处理诸如计算机程序指令的数据的一个或多个装置、电路和/或处理内核。
以下与示出本发明的方面的附图一起提供本发明的实施例的详细描述。结合这些实施例来描述本发明,但是本发明不限于任意实施例。本发明的范围仅由权利要求限定。本发明涵盖在权利要求范围内的许多替换方案、修改方案和等同方案。在以下描述中阐述了许多具体细节,以便提供对本发明的透彻理解。提供这些细节是为了示例的目的;本发明可以根据权利要求在没有一些或全部这些具体细节的情况下实践。为清楚起见,没有详细描述与本发明相关的技术领域中已知的技术材料,以免不必要地模糊本发明。
图1是示意性地示出根据本发明的实施例的存储器系统的框图。
参照图1,存储器系统10可以包括存储器控制器100和半导体存储器装置200,半导体存储器装置200可表示一个以上这种装置。半导体存储器装置200可以是闪速存储器装置,特别是NAND型闪速存储器装置。为方便起见,半导体存储器装置200有时被简称为存储器装置200。
存储器控制器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)、便携式计算机、网络平板PC、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(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可以包括通过总线160联接的存储装置110、控制组件120、错误校正码(ECC)组件130、主机接口(I/F)140和存储器接口(I/F)150,其中控制组件120可被实施为处理器例如中央处理单元(CPU)。
存储装置110可以用作存储器系统10和控制器100的工作存储器,并且存储用于驱动存储器系统10和控制器100的数据。当控制器100控制存储器装置200的操作时,存储装置110可以存储控制器100和存储器装置200用于诸如读取操作、写入操作、编程操作和擦除操作的操作的数据。
存储装置110可以利用诸如静态随机存取存储器(SRAM)和/或动态随机存取存储器(DRAM)的易失性存储器来实施。
如上所述,存储装置110可以将主机装置使用的数据存储在存储器装置200中以用于读取操作和写入操作。为了存储数据,存储装置110可以包括程序存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。
控制组件120可以控制存储器系统10的一般操作,并且响应于来自主机装置的写入请求或读取请求,控制对存储器装置200的写入操作或读取操作。控制组件120可以驱动被称为闪存转换层(FTL)125的固件,以控制存储器系统10的一般操作。例如,FTL可以执行诸如逻辑至物理(L2P)映射、损耗均衡、垃圾收集和/或坏块处理的操作。L2P映射被称为逻辑块寻址(LBA)。FTL 125还涉及如下面更详细描述的改进的奇偶校验高速缓存方案。
在读取操作期间,ECC组件130可以检测并校正从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC组件130可以不校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。
ECC组件130可以基于诸如下列的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、turbo码、turbo乘积码(TPC)、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、分组编码调制(BCM)。
主机接口140可以通过诸如下列的各种接口协议中的一种或多种与主机装置通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)。
存储器接口150可以提供控制器100和存储器装置200之间的接口,以允许控制器100响应于来自主机装置的请求来控制存储器装置200。存储器接口150可以在控制组件或CPU 120的控制下生成用于存储器装置200的控制信号并且处理数据。当存储器装置200是诸如NAND闪速存储器的闪速存储器时,存储器接口150可以在CPU 120的控制下生成用于存储器的控制信号并且处理数据。
存储器装置200可以包括存储器单元阵列210、控制电路220、电压生成电路230、行解码器240、可以是页面缓冲器阵列形式的页面缓冲器250、列解码器260和输入/输出电路270。存储器单元阵列210可以包括可存储数据的多个存储块211。电压生成电路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中所示的存储器单元阵列210的存储块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可以被实施为组合两种或更多种类型的存储器单元的混合闪速存储器,或者控制器嵌入在存储器芯片内的One-NAND闪速存储器。
参照图4,示意性地示出了存储器系统40的一般示例。存储器系统40可以包括易失性存储器400(例如DRAM)、非易失性存储器(NVM)402(例如NAND)、诸如本文所述的控制组件或控制逻辑404、诸如本文所述的错误校正码(ECC)模块406以及总线408,存储器系统40的这些组件通过总线408通信。易失性存储器400可以包括用于映射位的物理到逻辑地址的逻辑位地址(LBA)表410。NVM 402可以包括多个存储块以及用于主机写入的开放块430和用于垃圾收集(GC)的开放块440。下面在本发明的各方面的背景中更详细地描述开放块。
这些组件可用于执行如下所述的奇偶校验高速缓存方案例如RAID奇偶校验高速缓存方案的各方面。根据本公开,本领域技术人员将理解可以与存储器系统一起使用以实现本发明的额外/替代组件。
如前所述,RAID奇偶校验例如芯片猎杀用于在存储装置变得损坏时恢复数据。RAID奇偶校验是通过以固定单位诸如8KB对存储器的开放块中的所有数据进行异或而生成。在这种情况下的开放块由来自不同NAND管芯的NAND块组成。相同NAND块内的所有数据由于NAND装置的特性而必须同时被擦除。
通常,固件累积与开放块中数据的性质具有相似性质的数据,因为这样的数据具有较高的同时被擦除的机会。这将来可以减少垃圾收集期间的数据移动并且降低写入放大因子(WAF)。当累积的数据达到特定大小时,固件通常发出针对开放块中的数据的NAND编程命令,该特定大小小于整个开放块的大小。当处理编程命令时,同时计算其关联的RAID奇偶校验。操作需要读取(先前XOR结果)、XOR(当前编程的数据)和写入(当前XOR结果)。
当主机期望更多开放块来对数据进行分类时,需要更多的RAID奇偶校验缓冲器。如果RAID奇偶校验缓冲器存储在DRAM中,则可用存储区域相对较小。然而,由于DRAM通常是性能的瓶颈,并且RAID操作消耗大量DRAM带宽,因此性能将受到显著影响。如果RAID奇偶校验缓冲器存储在SRAM中,则对性能影响很小或没有影响,但成本非常高。如发明人所发现的,可以使用RAID高速缓存来找到存储区域和性能之间的平衡。高速缓存方案有两个主要考虑因素。第一个是高速缓存缓冲器(SRAM)的数量。高速缓存缓冲器越多,不仅高速缓存命中率越高,而且成本也越高。第二个是用于提高高速缓存命中率的算法。
图5示出SSD控制器50的示例,该SSD控制器50的两个主要组件是主机控制器(HCT)51和闪存控制器(FCT)52。HCT 51和FCT 52可以如图5所示是分开的或者可以是图2的控制组件120的不同功能单元。HCT 51处置主机协议并且在主机存储器和SSD控制器50的内部DRAM 53之间传送数据。FCT 52控制FTL,该FTL在内部DRAM 53和NAND存储器例如被配置为NAND的存储器装置200之间传送数据。当主机将写入命令发送至HCT 51时,数据由HCT 51被传送到DRAM 53,在DRAM 53累积这样的数据。DRAM 53必须具有用于保存开放块的所有主机数据的足够缓冲器。当已经累积了足够的数据时,处置FTL例如FTL 125的FCT CPU(FCPU)54触发通道处理器(CH-CPU)55以启动NAND编程进程。组件51至55可以通过总线58联接。
当前,FCPU 54首先通过管芯队列将写入命令发送至CH-CPU 55。然后,CH-CPU 55对管芯队列运行服务质量(QoS)仲裁,并且确定首先处理哪个命令。一旦选择了命令,则FCT数据路径被触发以将数据从DRAM 53传送至NAND。数据路径使用RAID奇偶校验高速缓存以在传送数据的同时计算RAID奇偶校验。由于FCT 52目前仅支持几个开放块,因此RAID高速缓存被设计成保持所有开放块的RAID奇偶校验缓冲器。虽然DRAM带宽不受RAID操作影响,但是当开放块的数量增加时,该架构是昂贵的。
根据本发明的实施例,提供了一种新架构以在可接受的成本和性能范围内支持更多的开放块。为此,图6示出根据本发明的实施例的组件的布置和配置以及奇偶校验高速缓存方案的背景下的处理流程。
在结构上,SSD控制器60包括配置有数据缓冲器62和奇偶校验缓冲器即RAID奇偶校验缓冲器63的DRAM 61。SSD控制器60还包括高速缓存即RAID高速缓存64和高速缓存控制器即RAID高速缓存控制器65。数据通过FCT数据路径66从SSD控制器60传送至包括开放块81的NAND存储器装置80。
DRAM 61的大小被设计成保存足够数量的RAID奇偶校验缓冲器63以容纳所有开放块81。RAID奇偶校验缓冲器63的数量可以等于开放块81的数量。
RAID高速缓存64的大小基于DRAM 61的大小来设计。RAID高速缓存控制器65被配置为高速缓存错失(cache-miss)情况(高速缓存逐出和加载)。
SSD控制器60还包括FTL 67,命令从该FTL 67流动并且该FTL 67可以类似于图2的FTL 125以其它方式操作。开放块队列(Open-Block Queue)68配置有多个队列,针对每个开放块配置一个队列。针对给定开放块的队列累积那个块的命令。这种布置有助于提高高速缓存命中率。
该架构还包括开放块计数器(OBC)69,一个OBC与开放块队列68的开放块中的每一个相关联。对应计数器69跟踪其相关的开放块的进行中的命令的数量。这有助于促进由可以对应于CH-CPU 55的开放块队列(OBQ)仲裁器71执行的仲裁进程。
改进的布置的另一特征是每个开放块都有唯一ID(OBID)。
通过这些修改,FCPU 54通过OBQ 68将写入命令发送至CH-CPU 55。写入命令包含相关开放块的OBID。CH-CPU 55在OBQ 68之中运行仲裁。一旦选择了特定的OBQ 68,则所选择的OBQ 68内的写入命令被转发到管芯队列(Die Queue)72。更特别地,管芯队列72包括多个队列,一个队列针对OBQ 68的队列中的每一个。因此,所选择的OBQ 68中的写入命令被转发到对应管芯队列72。然后,所选择的OBQ 68的OBC 69基于已被转发的命令的数量而增大。在由CMD处理块73表示的,完全处理转发的命令之后,所选择的OBQ 68的OBC 69减小相应量。在数据路径中,OBID用于管理RAID高速缓存64。
高速缓存命中率确定性能。反过来,高速缓存命中率取决于RAID高速缓存64的大小和OBQ仲裁。RAID高速缓存大小取决于RAID奇偶校验缓冲器63的数量和缓冲器大小。缓冲器大小由RAID的保护级别诸如管芯级别、平面级别或页面级别来确定。RAID奇偶校验缓冲器63的最小数量由待同时被编程到NAND的开放块81的数量(最坏情况)确定,以便满足顺序写入要求。
以下等式示出了计算。RAID奇偶校验缓冲器的最小数量63=1+Ceil(Tprog*TPch/Psize),其中Tprog是NAND 80的平均编程时间;TPch是满足顺序写入吞吐量所需的最小NAND通道吞吐量,并且Psize是最大芯片编程操作(多个平面)的数据大小。“Ceil”表示ceiling函数。
注意的是,该计算不考虑垃圾收集(GC)。因此,针对GC,可以添加再一个RAID奇偶校验缓冲器,从而GC对写入性能没有影响。
例如,通过OBQ仲裁器71或CH-CPU 55执行OBQ仲裁,以增加高速缓存命中率。OBQ仲裁中可以使用以下规则或条件。
紧急优先级条件:两个或更多个开放块队列具有未决(pending)命令,并且每个队列中的这些命令的数量达到指定阈值(可以由固件设置或确定);选择具有最大数量的命令的队列。
高优先级条件:多个开放块队列中的每一个具有非零OBC;选择具有较高OBC的开放块队列。
低优先级条件:多个开放块队列中的每一个具有至少一个未决命令;选择具有更多未决命令的开放块队列。
如果正在应用紧急优先级条件并且多个开放块在该条件方面相等,则应该使用高优先级条件来判定。如果正在应用高优先级条件并且多个开放块在该条件方面相等,则应使用低优先级条件来判定。如果多个开放区块在所有三个条件方面都相同,则应采用轮询程序。
一旦选择了OBQ 68中的特定一个,则该队列中的所有未决命令应该被处理,即转发到相应管芯队列72,在相应管芯队列72中这些命令等待命令处理73。
因为可能存在高度依赖于规则/条件的其它算法,所以规则或条件可以在固件中实施以保持灵活性。
图7是示出描述根据本发明的实施例的处理存储器系统中的命令的步骤的流程图。流程图700中示出的步骤是示例性的。本领域技术人员将理解的是,可以执行额外和/或替代步骤,或者可以在不脱离本文公开的发明构思的情况下改变步骤的顺序以实施本发明的各方面。参照其它附图特别是图6描述图7。
参照图7,在步骤701中,命令(例如,写入命令)由主机传输并由存储器系统接收。在步骤702中,所接收的命令被收集在多个开放块队列(OBQ)中。优选地,针对每个开放存储块提供一个OBQ,并且来自给定块的命令被累积在相应OBQ中。
然后,在步骤703中对OBQ执行仲裁进程。仲裁进程包括应用特定规则来选择OBQ中的一个。在步骤704中,基于所应用的特定规则,所选择的OBQ中的命令被转发以用于处理。然后是步骤705,在该步骤705中,表示针对所选择的OBQ转发的命令的总数量的所选择的OBQ的开放块计数器(OBC)增加步骤704中从所选择的OBQ转发的命令的数量。
在步骤704中转发的命令被完全处理之后,在步骤706中,所选择的OBQ的OBC的计数减少步骤704中转发的命令的数量。当在该OBC中的所有命令在特定转发操作中被转发时,这涉及重置相应OBC。
如前所述,本发明的实施例提供了用于可以在RAID奇偶校验或芯片猎杀方案中采用的改进的RAID奇偶校验高速缓存方案的改进的架构和操作。
虽然出于清楚和理解的目的,已经在一些细节上描述了前述实施例,但是本发明不限于所提供的细节。如本领域技术人员根据前述公开内容将理解的是,存在许多实施本发明的替代方式。因此,所公开的实施例是说明性的而非限制性的。

Claims (17)

1.一种存储器系统,包括:
存储器装置,包括多个开放块,每个开放块具有唯一标识符;以及
存储器控制器,包括:
动态随机存取存储器即DRAM,具有多个奇偶校验缓冲器,所述DRAM的大小被设计成容纳所有开放块的所有数据,
高速缓存和高速缓存控制器,与所述DRAM通信,
多个开放块队列,分别与所述多个开放块对应,每个开放块队列累积针对相应开放块的命令;
多个开放块计数器,一个开放块计数器与所述多个开放块中的每一个相关联,每个开放块计数器保持对来自被转发进行处理的相应开放块的命令的数量的持续计数;
多个管芯队列,分别与所述多个开放块队列对应;以及
仲裁器,关于开放块队列进行仲裁以确定待被处理的所述多个开放块队列中的命令的顺序。
2.根据权利要求1所述的存储器系统,其中所述多个奇偶校验缓冲器包括独立磁盘冗余阵列即RAID奇偶校验缓冲器,并且所述高速缓存包括RAID高速缓存。
3.根据权利要求1所述的存储器系统,其中所述多个开放块计数器中的每一个包含在相关联的开放块队列中。
4.根据权利要求1所述的存储器系统,其中所述存储器控制器从主机接收所述命令,所述命令中的每一个在被所述存储器控制器接收时具有标识所述多个开放块中的特定开放块的标签。
5.根据权利要求1所述的存储器系统,其中所述高速缓存具有基于所述奇偶校验缓冲器的数量和大小而设置的大小。
6.根据权利要求5所述的存储器系统,其中所述奇偶校验缓冲器的数量基于同时被编程以保持顺序写入要求的开放块的数量。
7.根据权利要求6所述的存储器系统,其中所述奇偶校验缓冲器的数量增加1以容纳后台操作。
8.一种命令处理系统,包括:
仲裁器,关于开放块队列进行仲裁,所述开放块队列中的每一个保持一组命令,以基于从进行处理的所述开放块队列中的每一个转发的命令的数量的当前计数选择所述开放块队列中的一个;
管芯队列,一个管芯队列与所述开放块队列中的每一个相关联以接收从各个开放块队列转发的命令;以及
命令处理器,处理来自所述管芯队列的命令。
9.根据权利要求8所述的命令处理系统,进一步包括:
动态随机存取存储器即DRAM,具有奇偶校验缓冲器,所述DRAM的大小被设计成容纳所有开放块的所有数据;以及
高速缓存和高速缓存控制器,与所述DRAM通信。
10.根据权利要求8所述的命令处理系统,其中所述命令处理系统包含在存储器系统中。
11.一种处理存储器系统中的命令的方法,所述存储器系统包括多个开放块,所述方法包括:
将由所述存储器系统接收的多个命令中的每一个发送至多个开放块队列中的一个,每个命令包含标识所述多个开放块中的特定开放块的标签;
在所述多个开放块队列之中进行仲裁以基于被选择性地应用以增加高速缓存命中率的一组规则来选择所述开放块队列中的一个;
转发所选择的开放块队列中的命令进行处理;
使针对所选择的开放块队列转发的命令的总数量的计数增加在转发操作中转发的命令的数量;以及
使在处理来自所选择的开放块队列的命令之后的计数减少与在增加操作中增加的计数相同的数量。
12.根据权利要求11所述的方法,其中所述规则定义不同级别的优先级条件。
13.根据权利要求12所述的方法,其中所述规则包括当两个或更多个开放块队列中的每一个保持数量大于阈值的未决命令时应用的紧急优先级条件,这种情况下,仲裁器选择使用最多未决命令的所述开放块队列。
14.根据权利要求12所述的方法,其中所述规则包括当两个或更多个开放块队列中的每一个具有非零开放块计数时应用的高优先级条件,在这种情况下,仲裁器选择具有较高开放块计数的所述开放块队列。
15.根据权利要求12所述的方法,其中所述规则包括当两个或更多个开放块队列中的每一个具有至少一个未决命令时应用的低优先级条件,在这种情况下,仲裁器选择具有较高数量的未决命令的所述开放块队列。
16.根据权利要求12所述的方法,其中当多个开放块队列满足特定优先级条件时,应用下一较低级别优先级条件。
17.根据权利要求16所述的方法,其中当多个开放块队列满足所有优先级条件时,应用轮询规则。
CN201910667001.4A 2018-07-23 2019-07-23 具有奇偶校验高速缓存方案的存储器系统以及操作方法 Active CN110750380B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862702090P 2018-07-23 2018-07-23
US62/702,090 2018-07-23

Publications (2)

Publication Number Publication Date
CN110750380A CN110750380A (zh) 2020-02-04
CN110750380B true CN110750380B (zh) 2023-03-10

Family

ID=69161902

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910667001.4A Active CN110750380B (zh) 2018-07-23 2019-07-23 具有奇偶校验高速缓存方案的存储器系统以及操作方法

Country Status (2)

Country Link
US (1) US10866764B2 (zh)
CN (1) CN110750380B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102520412B1 (ko) * 2018-09-19 2023-04-12 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR20210108107A (ko) * 2020-02-25 2021-09-02 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR20220139410A (ko) * 2020-03-10 2022-10-14 마이크론 테크놀로지, 인크 메모리 서브시스템에 대한 대기열 유지
US20240103762A1 (en) * 2022-09-23 2024-03-28 Western Digital Technologies, Inc. Automated Fast Path Processing

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5006982A (en) * 1988-10-21 1991-04-09 Siemens Ak. Method of increasing the bandwidth of a packet bus by reordering reply packets
JP2003263401A (ja) * 2002-03-07 2003-09-19 Seiko Epson Corp 調停回路及び調停方法
US7287111B2 (en) * 2004-09-23 2007-10-23 International Business Machines Corporation Method and system for creating and dynamically selecting an arbiter design in a data processing system
US7272692B2 (en) * 2004-11-12 2007-09-18 International Business Machines Corporation Arbitration scheme for memory command selectors
WO2013048451A1 (en) * 2011-09-30 2013-04-04 Intel Corporation Presentation of direct accessed storage under a logical drive model
CN106021147B (zh) * 2011-09-30 2020-04-28 英特尔公司 在逻辑驱动器模型下呈现直接存取的存储设备
KR101445025B1 (ko) 2012-02-09 2014-09-26 서울시립대학교 산학협력단 신뢰성 있는 ssd를 위한 효율적인 raid 기법
US9134919B2 (en) * 2012-03-29 2015-09-15 Samsung Electronics Co., Ltd. Memory device including priority information and method of operating the same
US9189433B2 (en) * 2012-12-18 2015-11-17 International Business Machines Corporation Tracking a relative arrival order of events being stored in multiple queues using a counter
US8832324B1 (en) * 2013-03-15 2014-09-09 International Business Machines Corporation First-in-first-out queue-based command spreading
CN105556480B (zh) 2013-09-16 2017-06-30 上海宝存信息科技有限公司 在基于闪存的存储系统中构建raid的方法及系统
KR102370733B1 (ko) * 2015-04-13 2022-03-08 에스케이하이닉스 주식회사 출력 커맨드들을 전송하는 컨트롤러 및 그것의 동작 방법
US20170075572A1 (en) * 2015-09-11 2017-03-16 Sandisk Technologies Inc. Extending hardware queues with software queues
US9977623B2 (en) * 2015-10-15 2018-05-22 Sandisk Technologies Llc Detection of a sequential command stream
US9996285B2 (en) * 2016-11-08 2018-06-12 SK Hynix Inc. Cyclically interleaved XOR array for error recovery
JP7013294B2 (ja) * 2018-03-19 2022-01-31 キオクシア株式会社 メモリシステム

Also Published As

Publication number Publication date
US10866764B2 (en) 2020-12-15
CN110750380A (zh) 2020-02-04
US20200026472A1 (en) 2020-01-23

Similar Documents

Publication Publication Date Title
US10318414B2 (en) Memory system and memory management method thereof
US10180805B2 (en) Memory system and operating method thereof
CN109616148B (zh) 具有解码器的存储器系统、其操作方法和解码器
US10847231B2 (en) Memory system with adaptive read-threshold scheme and method of operating such memory system
US10102146B2 (en) Memory system and operating method for improving rebuild efficiency
US10482038B2 (en) Programmable protocol independent bar memory for SSD controller
US10901656B2 (en) Memory system with soft-read suspend scheme and method of operating such memory system
US10296452B2 (en) Data separation by delaying hot block garbage collection
CN110750380B (zh) 具有奇偶校验高速缓存方案的存储器系统以及操作方法
CN109428606B (zh) 具有ldpc解码器的存储器系统及其操作方法
US10552048B2 (en) Reduction of maximum latency using dynamic self-tuning for redundant array of independent disks
US10089255B2 (en) High performance host queue monitor for PCIE SSD controller
CN109800178B (zh) 垃圾收集方法以及用于混合地址映射的存储器系统
CN110277124B (zh) 具有混合解码方案的存储器系统及其操作方法
CN112687323B (zh) 具有用于解码的错误减少方案的存储器系统及其操作方法
CN109739681B (zh) 具有共享缓冲器架构的存储器系统及其操作方法
CN109918315B (zh) 存储器系统及存储器系统的操作方法
CN112416298A (zh) 闪速存储器的基于原始读取的物理不可克隆功能
US11531605B2 (en) Memory system for handling program error and method thereof
US20210223987A1 (en) Controller with smart scheduling and method of operating the controller
US11356123B2 (en) Memory system with low-complexity decoding and method of operating such memory system
US11204839B2 (en) Memory system with low-latency read recovery and method of operating the memory system
US11354188B2 (en) Data processing system including host with reliability management of memory systems and method for the same
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