CN110941567B - 存储器控制器及其操作方法 - Google Patents
存储器控制器及其操作方法 Download PDFInfo
- Publication number
- CN110941567B CN110941567B CN201910893328.3A CN201910893328A CN110941567B CN 110941567 B CN110941567 B CN 110941567B CN 201910893328 A CN201910893328 A CN 201910893328A CN 110941567 B CN110941567 B CN 110941567B
- Authority
- CN
- China
- Prior art keywords
- parity value
- dpp
- parity
- lba
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- 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)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种用于存储装置中数据模式的数据路径保护奇偶校验值确定并且提出更高效地计算数据路径保护(DPP)奇偶校验值的技术。根据主机数据的类型,固件有利地用于这种计算,而有限调用或不调用DPP引擎。这些技术使用该类型的主机数据的线性码属性,以使固件能够比使用DPP引擎进行所有计算更快地计算DPP奇偶校验值。
Description
相关申请的交叉引用
本申请要求于2018年9月21日提交的申请号为62/734,654的美国临时申请的优先权,该美国临时申请的全部内容通过引用并入本文。
技术领域
本公开的实施例涉及一种计算所定义数据的数据路径保护(DPP)奇偶校验值的装置和方法。
背景技术
计算机环境范例已经转变成可以随时随地使用的普适计算系统。因此,诸如移动电话、数码相机和笔记本计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有存储器装置的存储器系统,即数据存储装置。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
由于使用存储器装置的数据存储装置不具有移动部件,因此它们提供优异的稳定性、耐用性、高信息访问速度和低功耗。具有这些优点的数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
SSD可以包括闪速存储器组件和控制器,该控制器包括将闪速存储器组件桥接至SSD输入/输出(I/O)接口的电子器件。SSD控制器可以包括运行诸如固件的功能组件的嵌入式微处理器。SSD功能组件通常是特定于装置的,并且在大多数情况下可被更新。
两种主要类型的闪速存储器以NAND逻辑门和NOR逻辑门命名。单独的闪速存储器单元表现出与其相应门的内部特性类似的内部特性。NAND型闪速存储器可以以块(或页面)被写入和读取,其中该块(或页面)通常远小于整个存储器空间。NOR型闪速存储器允许单个机器字(字节)独立地被写入到擦除位置或被读取。NAND型闪速存储器主要在存储卡、USB闪存驱动器、SSD和类似产品中操作,以用于一般的数据存储和传输。
基于闪存的存储装置通常包括可被嵌入的或设置在外部的一个或多个闪存芯片、微处理器、易失性随机存取存储器(RAM)以及在微处理器上运行的固件。基于闪存的存储装置的一个功能是提供标准块接口,以用于该装置中的闪存芯片与主机通信。在处理主机读取/写入操作期间,固件不仅将RAM资源用作其内部数据的存储装置,还将该RAM资源用作从主机接收的数据的临时存储装置。DPP机制用于保护主机数据在RAM中免受损坏。
在此背景下,提出了本发明的实施例。
发明内容
本发明的实施例涉及一种计算数据路径保护(DPP)奇偶校验值的更快速高效的技术。
因此,本发明的一方面包括一种操作存储器控制器以计算数据路径保护(DPP)奇偶校验值的方法。这种方法通常包括接收主机数据的第一段;计算第一段和相关联的第一逻辑块地址(LBA)的第一奇偶校验值;接收主机数据的第二段;并且对第一奇偶校验值和基本奇偶校验值阵列执行逻辑运算以计算第二段和关联的第二LBA的第二奇偶校验值,基本奇偶校验值阵列部分地基于第一和第二段而被存储器控制器所知。
本发明的另一方面涉及一种存储器控制器,其包括:处理器,被配置成运行固件;DPP引擎,与固件通信;以及主机接口,被配置成接收定义类型的主机数据,主机数据包括多个段,多个段包括第一段和第二段。DPP引擎计算主机数据的第一段和相关联的第一LBA的第一奇偶校验值,而固件基于所定义类型的主机数据的属性来计算第二段和相关联的第二LBA的第二奇偶校验值,该属性在计算第一奇偶校验值之后被固件所知。
在本发明的另一方面中,一种操作存储器控制器以计算DPP奇偶校验值的方法。该方法包括:处理特定主机数据;确定是否已经针对特定主机数据的所有LBA计算了DPP奇偶校验值;获得尚未计算DPP奇偶校验值的下一LBA;当下一LBA是第一LBA时,调用存储器控制器的DPP引擎来计算下一LBA和相关联的特定主机数据条的DPP奇偶校验值;当下一LBA不是第一LBA时,执行在存储器控制器的处理器上运行的固件来计算下一LBA和相关联的特定主机数据条的DPP奇偶校验值。为了计算下一LBA和相关联的特定主机数据条的DPP奇偶校验值,所述固件计算下一LBA与紧接在前处理的LBA之间的异或(XOR)差。
从以下描述,本发明的其它方面将变得显而易见。
附图说明
图1是示出根据本发明的实施例的存储器系统的示图。
图2是示出根据本发明的实施例的存储器系统的框图。
图3是示出根据本发明的实施例的存储器系统的存储器装置的存储块的电路图。
图4是示出根据本发明的实施例的基于闪存的存储装置的逻辑图。
图5是示出根据本发明的实施例的在处理写入相同命令(WSC)期间的DPP奇偶校验值计算的流程图。
图6是示出根据本发明的实施例的计算DPP奇偶校验值的进程的流程图。
具体实施方式
下面参照附图更详细地描述各个实施例。然而,本发明可以以不同的形式实现并且因此不应被解释为限于本文阐述的实施例。而是,提供这些实施例使得本公开彻底且完整,并且向本领域技术人员充分传达本发明的范围。此外,本文对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任意这种短语的不同参考不一定针对相同的实施例。在整个公开中,相同的附图标记在本发明的附图和实施例中表示相同的部件。
本发明可以以包括如下列的多种方式来实施:进程;设备;系统;物质的组成;在计算机可读存储介质上实现的计算机程序产品;和/或处理器,诸如适于运行存储在联接至处理器的存储器上和/或由联接至处理器的存储器提供的指令的处理器。在本说明书中,这些实施方式或本发明可以采用的任意其它形式可以被称为技术方案。通常,可以在本发明的范围内改变所公开的进程的步骤的顺序。除非另有说明,否则被描述为适于执行任务的、诸如处理器或存储器的组件可以被实施为临时配置为在给定时间执行该任务的通用组件或者被制造为执行该任务的专用组件。如本文所使用的,术语“处理器”等是指适于处理诸如计算机程序指令的数据的一个或多个装置、电路和/或处理内核。
以下与示出本发明的方面的附图一起提供本发明的实施例的详细描述。结合这些实施例来描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求限定。本发明涵盖在权利要求范围内的许多替换方案、修改方案和等同方案。在以下描述中阐述了许多具体细节,以便提供对本发明的透彻理解。提供这些细节是为了示例的目的;本发明可以在没有一些或全部这些具体细节的情况下根据权利要求来实践。为清楚起见,没有详细描述与本发明相关的技术领域中已知的技术材料,以免不必要地模糊本发明。
图1是示意性地示出根据本发明的实施例的存储器系统的框图。
参照图1,存储器系统10可以包括存储器控制器100和半导体存储器装置200,半导体存储器装置200可以表示不止一个这种装置。半导体存储器装置200优选为闪速存储器装置,特别是NAND型闪速存储器装置。
存储器控制器100可以控制半导体存储器装置200的全部操作。为简单起见,存储器控制器100和半导体存储器装置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 125可以执行诸如逻辑至物理(L2P)映射、损耗均衡、垃圾收集(GC)和/或坏块处理的操作。FTL 125可以作为固件而被实施在控制器100中,更具体地,被实施在控制组件120中。L2P映射被称为逻辑块寻址。
在读取操作期间,ECC组件130可以检测并校正从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC组件130可以不校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。
ECC组件130可以基于诸如下列的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、trubo码、trubo乘积码(TPC)、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)或分组编码调制(BCM)。ECC组件130可以包括适于错误校正操作的任意和所有电路、系统或装置。
主机接口140可以通过诸如下列的各种接口协议中的一种或多种与主机装置通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、高速非易失性存储器(NVMe)、增强型小型磁盘接口(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与存储器单元阵列210电通信(图3中示出)。页面缓冲器(阵列)250可以响应于由控制电路220生成的页面缓冲器控制信号,利用正电压对位线BL预充电,在编程操作中将数据传送至所选择的存储块并且在读取操作中从所选择的存储块接收数据,或临时存储传送的数据。
列解码器260可以将数据传送至页面缓冲器(阵列)250并且从页面缓冲器(阵列)250接收数据,并且还可以与输入/输出电路270交换数据。
输入/输出电路270可以将从外部装置(例如,存储器控制器100)接收的命令和地址传送至控制电路220,并且通过输入/输出电路270将来自外部装置的数据传送至列解码器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闪速存储器。
如前所述,存储器控制器100和半导体存储器装置200可以集成到诸如SSD或其它基于闪存的存储装置的单个装置中。参照图4,示出了示例性的基于闪存的存储装置40。此处示出了可以是存储器系统10的另一实施例的基于闪存的装置40,该基于闪存的装置40具有有些不同的布局以突出本发明的特征和方面。基于闪存的装置40可以包括控制器41(控制HW)和存储装置42,其中控制器41(控制HW)和存储装置42通常分别对应于图2的存储器控制器100和半导体存储器装置200。存储装置42可以包括由42a共同标识的多个闪存芯片。
控制器41可以包括片上系统(SoC)43,在SoC上或SoC中嵌入了下面描述的各种组件。控制器41还可以包括随机存取存储器(RAM)44,诸如包括在存储装置110中的随机存取存储器(RAM)44。
SoC 43包括可以是嵌入式微处理器(μP)45的处理器和与微处理器45通信的DPP引擎46。固件45a在微处理器45上运行,微处理器45与RAM 44通信。SoC 43进一步包括与微处理器45通信并且还与主机系统50通信的主机接口逻辑47。SoC 43上的闪存接口逻辑48提供SoC 43和存储装置42之间的通信。
如前所述,在基于闪存的存储装置中,数据路径保护(DPP)机制用于保护主机数据在RAM中免受损坏。这种机制涉及根据原始主机数据来计算奇偶校验值以进一步进行数据检测和纠正。通常,线性码,例如循环冗余校验(CRC)被用于DPP奇偶校验值计算。为了更好的性能,将硬件(HW)引擎用于DPP奇偶校验值校验和计算。
本发明的实施例提供了更高效地计算某些定义的主机数据的DPP奇偶校验值的技术。本发明的技术使用线性码的属性,该属性允许比HW引擎更快地计算DPP奇偶校验值。
定义为G的线性码具有以下属性:
假设FW 45a接收一条原始主机数据a并且调用DPP引擎46以计算DPP奇偶校验值G(a)。然后,FW 45a接收另一条原始主机数据b。然而同时,FW 45a可以获得某些信息。也就是说,FW 45a从以下关系b=a⊕Δ知道被表示为△的某些信息,并且还知道G(Δ)。在这种情况下,FW 45a可以在不调用DPP引擎46的情况下,使用上面线性码的以下属性来容易地计算b的DPP奇偶校验值:
DPP奇偶校验值是根据LBA值和与LBA相关的主机数据计算的。然而存在对于某些范围的LBA,主机数据相同的若干情况,例如写入零命令(WZC)、写入相同命令(WSC)等。没有任何优化的情况下,FW 45a必须调用DPP引擎46以计算每个LBA和相关主机数据的DPP奇偶校验值。这尤其是在LBA范围很大时显著降低了性能。而且,在处理这样的命令期间,DPP引擎46不可用于其它任务,诸如从NAND加载的数据的奇偶校验验证。
为了示出在处理某些范围的LBA的WSC期间如何避免性能下降,假设FW 45a接收LBA 0和LBA 1的WSC(其中LBA的大小是4字节)。表示为BasicParities的、以下预先计算的DPP奇偶校验值的阵列应该可用于FW 45a并且被定义为如下:(1)阵列具有32个元素;(2)阵列的第i元素是G(xi),其中除了第i位,xi的所有位等于零。
考虑到这一点,将LBA 0和主机数据定义为a,将LBA 1和主机数据定义为b。对于LBA 0和主机数据,FW 45a调用DPP引擎46以计算奇偶校验值并且定义为G(a)。考虑到两个LBA的主机数据相同并且LBA 0和LBA 1仅在位置0处以一位不同,可以由FW 45a自身根据G(a)来计算DPP奇偶校验值:
图5是示出根据本发明的实施例的在由FW 45a处理WSC期间的DPP奇偶校验值计算的流程图500。
在步骤501中,在WSC的处理期间开始DPP奇偶校验值计算。在步骤502中,确定是否已经对WSC主机数据的所有LBA计算了DPP奇偶校验值。这个步骤在处理开始时有些不重要,但随着处理迭代的增加而变得更加重要。
当存在至少一个尚未计算DPP奇偶校验值的LBA(步骤502中为否)时,在步骤503中确定当前LBA(在LBA序列中)是否是第一LBA,第一LBA被以与第二LBA和后续的LBA不同的方式处理。如果下一LBA是第一LBA(在步骤503中为是),则进程移至步骤504,在该步骤中,调用DPP引擎46以计算第一LBA和相关主机数据的DPP奇偶校验值。在该计算之后,在步骤505中,将DPP奇偶校验值存储在例如RAM44中。
在存储第一LBA的DPP奇偶校验值之后,该进程返回到步骤502。如果存在待计算DPP奇偶校验值的第二(或另一)LBA,则流程通过步骤502和503的“否”分支到步骤506。
在步骤506中,固件45a用于进行计算。更具体地,在步骤506中,固件45a计算当前LBA与已经处理的、紧接在前的LBA之间的XOR差。在步骤507中,将处理变量i设置为0。
在步骤508中,确定当前LBA中的位数量是否等于i。本质上,该步骤用作处理当前LBA中的位的计数器。最初,步骤508中的确定为“否”,并且在每次通过时它继续为“否”,流程移至步骤509,在步骤509中确定XOR差的第i位是否为1。如果为否,则在步骤510中递增i,之后再次进行在步骤508中的确定。继续步骤508、509和510的这种循环,直到在步骤509中确定了XOR差的第i位为1。
当发生这种情况(步骤509中为是)时,在步骤511中执行进一步的计算。对先前计算的DPP奇偶校验值和BasicParities的第i元素执行XOR运算。之后,递增i并且进程返回到步骤508。在由步骤508-511定义的循环内继续进程,直到最终确定了i等于当前LBA中的位的数量。当发生这种情况(步骤508中为是)时,在步骤505中存储在步骤511中进行的DPP奇偶校验值计算结果。这种计算结果可以存储在RAM 44中。
在发生每个DPP奇偶校验值存储之后(步骤505),进程返回到步骤502,再次考虑是否已经对所有LBA计算了DPP奇偶校验值。如果为否,则如前所述地继续进程。如果为是(步骤502中为是),则DPP奇偶校验值计算进程结束(步骤512)。
图6是描述根据本发明的实施例的在DPP奇偶校验值计算进程中的步骤的流程图600。流程图600中示出的步骤是示例性的。本领域技术人员将理解的是,可以执行额外的和/或替代的步骤,或者可以在不脱离本文公开的发明构思的情况下改变步骤的顺序以实行本发明的各方面。
在步骤601中,存储器系统,例如基于闪存的装置40,接收主机数据的第一段。在步骤602中,计算第一段及其相关联的第一LBA的第一DPP奇偶校验值。对于某些主机数据,例如WSC,调用DPP引擎46以计算第一DPP奇偶校验值。在计算之后,在步骤603中,将第一DPP奇偶校验值存储在存储器(例如RAM 44)中。
在步骤604中,基于闪存的装置40接收主机数据的第二段。对于该段和所有后续段,在步骤605中,运行固件45a以通过对紧接在前的第一DPP奇偶校验值和基本奇偶校验值阵列执行逻辑运算,例如XOR运算来计算第二DPP奇偶校验值。更一般地,固件45a通过对紧接在前计算的DPP奇偶校验值和基本奇偶校验值阵列执行逻辑运算,例如XOR运算来计算主机数据的第二段和后续段中的每一个的DPP奇偶校验值。
在步骤606中,将第二奇偶校验值存储在存储器中。更一般地,第二奇偶校验值和后续奇偶校验值中的每一个在被计算之后存储在存储器中。
如前所述,本发明的实施例提供了更高效地计算DPP奇偶校验值的技术。根据主机数据的类型,将固件有利地用于这种计算,而有限调用或不调用DPP引擎。
虽然出于清楚和理解的目的,已经在一些细节上说明并描述了前述实施例,但是本发明不限于所提供的细节。如本领域技术人员根据前述公开内容将理解的是,存在许多实施本发明的替代方式。因此,所公开的实施例是说明性的,而非限制性的。
Claims (20)
1.一种操作存储器控制器以计算数据路径保护奇偶校验值即DPP奇偶校验值的方法,所述方法包括:
接收主机数据的第一段;
计算所述第一段和相关联的第一逻辑块地址即第一LBA的第一奇偶校验值;
接收主机数据的第二段;以及
对所述第一奇偶校验值和基本奇偶校验值阵列执行逻辑运算以计算所述第二段及相关联的第二LBA的第二奇偶校验值,所述基本奇偶校验值阵列部分地基于所述第一段和所述第二段而被所述存储器控制器所知,
其中所述基本奇偶校验值阵列包括多个元素,所述多个元素中的一个元素包括多个位的函数,所述多个元素中除所述一个元素之外的所有元素是相同的逻辑值。
2.根据权利要求1所述的方法,其中所述逻辑运算是异或运算即XOR运算。
3.根据权利要求1所述的方法,其中所述基本奇偶校验值阵列表示预先计算的DPP奇偶校验值。
4.根据权利要求1所述的方法,其中所述基本奇偶校验值阵列的所述多个元素包括所述多个元素中的第i元素,所述第i元素由输入由多个位表示的函数来表示,所述第i元素的所述多个位中除了第i位为1之外,所有位都为0,其中i表示所述基本奇偶校验值阵列中的元素的顺序以及所述多个位之中的位的顺序。
5.根据权利要求1所述的方法,其中所述第二奇偶校验值通过所述存储器控制器的固件来计算。
6.根据权利要求5所述的方法,其中当所述主机数据的所述第一段和所述第二段是第一类型时,所述方法进一步包括:
调用所述存储器控制器的DPP引擎来计算所述第一奇偶校验值。
7.根据权利要求5所述的方法,其中当所述主机数据的所述第一段和所述第二段是第二类型时,由所述固件来计算所述第一奇偶校验值。
8.根据权利要求6所述的方法,其中所述第一类型是写入相同命令。
9.根据权利要求7所述的方法,其中所述第二类型是写入零命令。
10.根据权利要求1所述的方法,进一步包括:
将所述第一奇偶校验值和所述第二奇偶校验值中的每一个存储在所述存储器控制器的存储器中。
11.一种存储器控制器,包括:
处理器,运行固件;
数据保护路径引擎即DPP引擎,与所述固件通信;以及
主机接口,接收定义类型的主机数据,所述主机数据包括多个段,所述多个段包括第一段和第二段;
其中所述DPP引擎计算所述第一段和相关联的第一逻辑块地址即第一LBA的第一奇偶校验值,并且
其中所述固件基于所述第一奇偶校验值和在计算所述第一奇偶校验值之后被所述固件所知的基本奇偶校验值阵列来计算所述第二段和相关联的第二LBA的第二奇偶校验值,所述基本奇偶校验值阵列包括多个元素,所述多个元素中的一个元素包括多个位的函数,所述多个元素中除所述一个元素之外的所有元素是相同的逻辑值。
12.根据权利要求11所述的存储器控制器,其中所述固件通过对所述第一奇偶校验值和基本奇偶校验值阵列执行逻辑运算来计算所述第二奇偶校验值,所述基本奇偶校验值阵列在计算所述第二奇偶校验值时被所述固件所知。
13.根据权利要求12所述的存储器控制器,其中所述逻辑运算是异或运算即XOR运算。
14.根据权利要求12所述的存储器控制器,其中所述基本奇偶校验值阵列表示预先计算的DPP奇偶校验值。
15.根据权利要求12所述的存储器控制器,其中所述基本奇偶校验值阵列的所述多个元素包括所述多个元素中的第i元素,所述第i元素由输入由多个位表示的函数表示,所述第i元素的所述多个位中除了第i位为1之外,所有位都为0,其中i表示所述基本奇偶校验值阵列中的元素的顺序以及所述多个位之中的位的顺序。
16.根据权利要求11所述的存储器控制器,其中所述固件计算所述主机数据的后续段中的每一个和相应LBA的每个后续奇偶校验值。
17.根据权利要求11所述的存储器控制器,进一步包括:
存储器,所述第一奇偶校验值和所述第二奇偶校验值中的每一个在被计算之后存储在所述存储器中。
18.一种操作存储器控制器以计算数据路径保护奇偶校验值即DPP奇偶校验值的方法,所述方法包括:
处理特定主机数据;
确定是否已经针对所述特定主机数据的所有逻辑块地址即LBA计算了DPP奇偶校验值;
获得尚未计算DPP奇偶校验值的下一LBA;
当所述下一LBA是第一LBA时,调用所述存储器控制器的DPP引擎以计算所述下一LBA和相关联的特定主机数据条的DPP奇偶校验值;
当所述下一LBA不是所述第一LBA时,执行在所述存储器控制器的处理器上运行的固件以计算所述下一LBA和相关联的特定主机数据条的DPP奇偶校验值;
其中为了计算所述下一LBA和相关联的特定主机数据条的DPP奇偶校验值,所述固件计算所述下一LBA与紧接在前处理的LBA之间的异或差即XOR差。
19.根据权利要求18所述的方法,其中为了计算所述下一LBA和相关联的特定主机数据条的DPP奇偶校验值,当所述XOR差的第i位为1时,所述固件还计算紧接在前计算的DPP奇偶校验值和基本奇偶校验值阵列的第i元素的XOR,其中i表示所述基本奇偶校验值阵列中的元素的顺序以及所述XOR差的位的顺序。
20.根据权利要求18所述的方法,其中所述特定主机数据包括写入相同命令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862734654P | 2018-09-21 | 2018-09-21 | |
US62/734,654 | 2018-09-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110941567A CN110941567A (zh) | 2020-03-31 |
CN110941567B true CN110941567B (zh) | 2023-03-10 |
Family
ID=69885409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910893328.3A Active CN110941567B (zh) | 2018-09-21 | 2019-09-20 | 存储器控制器及其操作方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11023388B2 (zh) |
CN (1) | CN110941567B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112332869A (zh) * | 2020-10-22 | 2021-02-05 | 杭州华澜微电子股份有限公司 | 改进的tpc迭代方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102760087A (zh) * | 2011-04-29 | 2012-10-31 | 西部数据技术公司 | 固态存储器中数据冗余方案内改进的奇偶校验值确定的系统和方法 |
CN103137213A (zh) * | 2011-12-01 | 2013-06-05 | 慧荣科技股份有限公司 | 具有低密度奇偶校验码译码能力的存储器控制装置及方法 |
CN106326028A (zh) * | 2015-07-03 | 2017-01-11 | 爱思开海力士有限公司 | 具有不同奇偶校验区的存储器件 |
CN107402725A (zh) * | 2017-03-20 | 2017-11-28 | 威盛电子股份有限公司 | 非易失性存储装置及其数据去重复方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7975209B2 (en) * | 2007-03-31 | 2011-07-05 | Sandisk Technologies Inc. | Non-volatile memory with guided simulated annealing error correction control |
US8671250B2 (en) | 2011-12-15 | 2014-03-11 | Western Digital Technologies, Inc. | Data storage device generating redundancy for data path protection of a parity sector |
US9465961B2 (en) * | 2012-12-18 | 2016-10-11 | Rambus Inc. | Methods and circuits for securing proprietary memory transactions |
US9639457B1 (en) * | 2012-12-20 | 2017-05-02 | Datadirect Networks, Inc. | Data storage system and method for data migration between high-performance computing architectures and data storage devices using storage controller with distributed XOR capability |
US10176039B2 (en) * | 2014-09-19 | 2019-01-08 | Micron Technology, Inc. | Self-accumulating exclusive OR program |
US10496484B2 (en) | 2016-08-05 | 2019-12-03 | Sandisk Technologies Llc | Methods and apparatus for error detection for data storage devices |
CN109313593B (zh) * | 2016-09-16 | 2022-03-01 | 株式会社日立制作所 | 存储系统 |
TWI656442B (zh) * | 2017-11-30 | 2019-04-11 | 慧榮科技股份有限公司 | 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器 |
US10540231B2 (en) * | 2018-04-04 | 2020-01-21 | International Business Machines Corporation | Log-structured array (LSA) partial parity eviction and reassembly |
US10754726B2 (en) * | 2018-08-21 | 2020-08-25 | Micron Technology, Inc. | Tracking error-correction parity calculations |
-
2019
- 2019-08-23 US US16/549,523 patent/US11023388B2/en active Active
- 2019-09-20 CN CN201910893328.3A patent/CN110941567B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102760087A (zh) * | 2011-04-29 | 2012-10-31 | 西部数据技术公司 | 固态存储器中数据冗余方案内改进的奇偶校验值确定的系统和方法 |
CN103137213A (zh) * | 2011-12-01 | 2013-06-05 | 慧荣科技股份有限公司 | 具有低密度奇偶校验码译码能力的存储器控制装置及方法 |
CN106326028A (zh) * | 2015-07-03 | 2017-01-11 | 爱思开海力士有限公司 | 具有不同奇偶校验区的存储器件 |
CN107402725A (zh) * | 2017-03-20 | 2017-11-28 | 威盛电子股份有限公司 | 非易失性存储装置及其数据去重复方法 |
Non-Patent Citations (1)
Title |
---|
M. Nicolaidis等.Carry checking/parity prediction adders and ALUs.2003,121-128. * |
Also Published As
Publication number | Publication date |
---|---|
CN110941567A (zh) | 2020-03-31 |
US11023388B2 (en) | 2021-06-01 |
US20200097416A1 (en) | 2020-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109616148B (zh) | 具有解码器的存储器系统、其操作方法和解码器 | |
US10180805B2 (en) | Memory system and operating method thereof | |
US10997017B2 (en) | Neighbor assisted correction error recovery for memory system and method thereof | |
CN109671465B (zh) | 具有自适应读取阈值方案的存储器系统及其操作方法 | |
CN109428606B (zh) | 具有ldpc解码器的存储器系统及其操作方法 | |
US11681554B2 (en) | Logical address distribution in multicore memory system | |
US20160335179A1 (en) | Data separation by delaying hot block garbage collection | |
US10552048B2 (en) | Reduction of maximum latency using dynamic self-tuning for redundant array of independent disks | |
US11367488B2 (en) | Memory system and method for read operation based on grouping of word lines | |
US11182243B2 (en) | Memory system with adaptive information propagation and method of operating such memory | |
CN110277124B (zh) | 具有混合解码方案的存储器系统及其操作方法 | |
US10938419B2 (en) | Encoding method and system for memory device including QLC cells | |
US11907571B2 (en) | Read threshold optimization systems and methods using domain transformation | |
CN112687323B (zh) | 具有用于解码的错误减少方案的存储器系统及其操作方法 | |
US10055168B2 (en) | Delaying hot block garbage collection with adaptation | |
CN112416298B (zh) | 闪速存储器的基于原始读取的物理不可克隆功能 | |
CN110941567B (zh) | 存储器控制器及其操作方法 | |
CN112216328B (zh) | 具有低复杂度解码的存储器系统及其操作方法 | |
US11217319B2 (en) | Read threshold optimization systems and methods by multi-dimensional search | |
US11210008B2 (en) | Memory system for multi-clustering read thresholds and method thereof | |
CN110275844B (zh) | 利用自适应阈值解码的存储器系统及其操作方法 | |
US11204839B2 (en) | Memory system with low-latency read recovery and method of operating the memory system | |
US20200090731A1 (en) | Memory system to process multiple word line failures with limited storage and method of operating such memory system | |
CN110047554B (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 |