CN104995607A - 减少数据贮存装置的读取延迟的系统和方法 - Google Patents
减少数据贮存装置的读取延迟的系统和方法 Download PDFInfo
- Publication number
- CN104995607A CN104995607A CN201480008994.XA CN201480008994A CN104995607A CN 104995607 A CN104995607 A CN 104995607A CN 201480008994 A CN201480008994 A CN 201480008994A CN 104995607 A CN104995607 A CN 104995607A
- Authority
- CN
- China
- Prior art keywords
- data
- entry
- expression
- controller
- reading
- 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.)
- Granted
Links
Classifications
-
- 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
- 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
Abstract
一种数据贮存装置包括存储器和控制器。控制器被配置为接收指示逻辑地址的读取请求。控制器还被配置为进行第一读取操作以从所述存储器取回逻辑映射表的条目的表示,并且进行第二读取操作以从所述存储器取回码字的表示。控制器还被配置为译码码字的表示以确定在条目处是否存在错误,并且,在完成译码之前,开始第三读取操作以从对应于基于所述条目的表示而确定的所述逻辑地址的第一物理地址取回第一读取数据。
Description
技术领域
本公开一般地涉及减少读取延迟。
背景技术
非易失性数据贮存装置——诸如通用串行总线(USB)闪存存储器装置或者可拆卸贮存卡——使得数据和软件应用越来越便携。闪存存储器装置可以通过在每个闪存存储器单元中贮存多个位(bit)来提高数据贮存密度。例如,多级单元(MLC)闪存存储器装置通过每单元贮存3位、每单元4位或者更多来提供增加的贮存密度。尽管增加每单元的位的数量并且减少装置特征尺寸可以增加存储器装置的贮存密度,但是贮存在存储器装置处的数据的位错误率也可能增加。
随机的每秒输入/输出操作(input/output operations per second,IOPS)性能已经变为比较诸如iNAND的存储器产品的标准之一。基于页的闪存管理(Flash Management,FM)可以在编程期间(例如,对于大量的编程IOPS)改善性能。但是,在数据读取之前发布控制读取(Control Reads,CR)可能在当使用基于页的闪存管理时减少读取性能。
例如,CR可以被用于识别数据在存储器中的物理地址。物理地址可以被贮存在存储器中的逻辑-到-物理地址映射表中。逻辑-到-物理地址映射表可能过于大(例如,每1GB的存储器有1MB的表大小)而不能被整体保持在闪存存储器装置的控制器处。因此,在大跨度的读取地址上的随机读取操作期间,每当包括请求的地址的逻辑-到-物理地址映射表的一部分不被缓存在控制器中时,可以发布CR以从存储器读取逻辑-到-物理地址映射表,导致了增加的整体读取延迟和减少的IOPS数量。
发明内容
以减少读取延迟的方式从数据贮存装置读取数据。具体地,当在数据贮存装置处从主机装置接收指示逻辑地址的读取请求时,数据贮存装置的控制器可以确定将逻辑地址映射到物理地址的表的一部分是否贮存在控制器处。如果表的一部分不贮存在控制器处,控制器可以进行第一读取操作以从存储器取回逻辑映射表的条目的表示,并且进行第二读取操作以从存储器取回码字的表示,其中码字包括逻辑映射表的条目。控制器可以译码码字的表示以确定在条目处是否存在错误,并且在完成译码码字的表示之前,开始第三读取操作以从对应于基于所述条目的表示确定的所述逻辑地址的第一物理地址取回第一读取数据。如果所述译码指示在所述条目处不存在错误,则从所述第一物理地址取回的第一读取数据可以被提供到主机。如果译码指示在条目处存在错误,控制器可以开始第四读取操作以从对应于基于在译码的码字中的错误校正的条目确定的逻辑地址的第二物理地址取回第二读取数据。因此,当条目不包括错误时可以减少读取延迟,因为在读取第一物理地址的同时进行确定所述条目是否包含错误的译码。当条目包含错误时,读取延迟可能不被减少也不被增加。相应地,存储器装置的平均读取延迟被减少。
附图说明
图1是包括被配置为减少读取延迟的数据贮存装置的系统的特定示意性实施例的框图;
图2是以减少的读取延迟地从数据贮存装置读取数据的方法的第一特定示意性实施例的流程图;以及
图3是以减少的读取延迟地从数据贮存装置读取数据的方法的第二特定示意性实施例的流程图。
具体实施方式
参考图1,描述了包括被配置为减少读取延迟的数据贮存装置102的系统的特定示意性实施例,并且该系统的特定示意性实施例被一般地指定为100。系统100包括通过总线156耦合到主机装置150的数据贮存装置102。数据贮存装置102包括耦合到控制器120的存储器104。控制器120被配置为以减少读取延迟的方式从存储器读取数据。
存储器104可以是非易失性存储器,诸如NAND闪存存储器。存储器104包括一组贮存元件,诸如多级单元(MLC)闪存存储器的字线。数据贮存装置102可以是存储器卡,所述存储器卡诸如安全数字卡、卡、miniSD.TM卡(特拉华州威明顿市的SD-3C LLC的商标)、MultiMediaCard.TM(MMC.TM)卡(弗吉尼亚州阿灵顿市的JEDEC固态技术协会的商标)或者(CF)卡(加利福尼亚州苗比达市的SanDisk公司的商标)。作为另一示例,数据贮存装置102可以被配置为作为内嵌的存储器耦合到主机装置150,所述内嵌的存储器诸如作为示意性示例的(弗吉尼亚州阿灵顿市的JEDEC固态技术协会的商标)以及eSD。为了说明,数据贮存装置102可以对应于eMMC(内嵌式的MultiMedia卡)装置。数据贮存装置102可以依照JEDEC行业规范操作。例如,数据贮存装置102可以依照JEDEC eMMC规范、JEDEC通用闪存贮存(UFS)规范、一个或多个其它规范或其组合操作。
主机装置150可以被配置为提供用以贮存在存储器104处的数据和/或请求从存储器104读取的数据。例如,主机装置150可以包括移动电话、音乐播放器、视频播放器、游戏操纵台、电子书阅读器、个人数字助理(PDA)、诸如膝上型计算机、笔记本计算机或者平板的计算机、任何其它电子装置或者其任何组合。主机装置150通过使能从存储器104读取以及写入到存储器104的存储器接口来通信。例如,主机装置150可以依照联合电子装置工程协会(JEDEC)行业规范操作,所述行业规范诸如通用闪存贮存(UFS)主机控制器接口规范。作为其它示例,主机装置150可以依照一个或多个其它规范,诸如作为示意性示例的安全数字(SD)主机控制器规范来操作。主机设备150可以根据任何其他适当的通信协议而与存储器104通信。
存储器104可以是闪存装置的非易失性存储器,该闪存装置诸如NAND闪存装置、NOR闪存装置或者任何其它类型的闪存装置。存储器104包括物理存储器位置108和逻辑到物理映射表106。逻辑到物理映射表106包括多个条目,诸如代表性的第一条目112。所述多个条目的每个条目将特定逻辑地址映射到物理存储器位置108之一的相应的物理地址。条目可以被分组成多组条目,诸如对应于第一码字110的第一组条目以及对应于第二码字118的第二组条目。每一个码字110、118可以与错误校正数据相关联或者可以包括错误校正数据,该错误校正数据诸如与第一码字110相关联的代表性的码字错误校正码(ECC)数据116。在特定实施例中,条目的每一个还可以与错误检测数据相关联,该错误检测数据诸如与第一条目112相关联的代表性的奇偶校验数据114。
控制器120包括被配置为进行存储器管理功能的存储器管理系统122,该存储器管理功能诸如将数据发送到控制器120的各种组件、和从控制器120的各种组件接收数据、以及协调控制器120的各种组件的操作。存储器管理系统122可以包括映射逻辑124,其被配置为使用逻辑到物理映射信息、以将从主机装置150接收的逻辑地址映射到对应于存储器104的物理存储器位置108的物理地址。为了将逻辑地址映射到物理地址,映射逻辑124可以访问控制器120的存储器,诸如贮存逻辑到物理映射表106的部分128的随机存取存储器(RAM)126。在特定实施例中,RAM 126可能太小以至于不能贮存整个逻辑到物理映射表106。因此,诸如先进先出缓存的缓存处理或者另外的缓存处理可以确定贮存在RAM 126处的、逻辑到物理映射表106的部分128。
控制器120还可以包括ECC引擎130。ECC引擎130被配置为使用码字ECC数据来译码从存储器104取回的码字。例如,当从存储器104取回第一码字110的表示164时,ECC引擎130可以译码第一码字110的表示164以识别并校正错误。为了说明,ECC引擎130可以使用BCH错误校正码、Hamming错误校正码、Reed-Solomon错误校正码或者另外的错误校正码以检测和校正在取回的码字中的错误。
控制器120还可以包括错误检测引擎132。错误检测引擎132被配置为检测在从存储器104取回的条目中的错误。当由ECC引擎130进行的错误检测和校正可能相对地复杂时(例如,能够识别并且校正在整个码字中的错误),由错误检测引擎132进行的错误检测可能明显地较不复杂。例如,错误检测引擎132可以对从存储器104取回的单个条目进行奇偶校验检查,诸如通过确定条目是否包括奇数或偶数个一值。因此,通过错误检测引擎132的错误检测可以明显地比通过ECC引擎130的错误检测和校正更快。
在特定实施例中,当条目或码字在被贮存在存储器104处之前被扰码,控制器120可以包括扰码器134(诸如线性反馈移位寄存器(LFSR))以解扰(descramble)从存储器104取回的条目。
控制器120可以被配置为当数据贮存装置102通过主机接口136和总线156可操作地耦合到主机装置150时从主机装置150接收数据和指令以及将数据发送到主机装置150。控制器120还被配置为将数据和命令发送到存储器104并且从存储器104接收数据。例如,控制器120被配置为发送数据和写入命令以指导存储器104贮存数据。作为另外的示例,控制器120被配置为发送读取命令以实现读取操作,以从存储器104的特定的物理地址读取数据。
在操作期间,控制器120可以从主机装置150接收读取请求152。读取请求152可以指示将被提供到主机装置150的数据的逻辑地址。控制器120使用映射逻辑124可以确定对应于逻辑地址的特定物理存储器位置的物理地址。当贮存在RAM 126处的逻辑到物理映射表106的部分128包括由读取请求152指示的逻辑地址时,控制器120可以无需从存储器104访问逻辑到物理映射表106来确定物理地址。但是,当贮存在RAM 126处的逻辑到物理映射表106的部分128不包括由读取请求152指示的逻辑地址时,控制器120进行读取操作160以读取包括逻辑地址的逻辑到物理映射表106的一部分(诸如第一码字110)。为减少读取延迟,控制器120还进行读取操作160以读取对应于逻辑地址的逻辑到物理映射表106的特定条目(诸如第一条目112)。
在特定实施例中,可以使用单个读取操作(例如,单个感测操作)以读取将被作为分开的组块的数据而转移到控制器120的第一码字110和第一条目112。例如,第一码字110可以对应于大约4千字节(KB)的数据,并且第一条目112可以对应于大约4字节的数据。为了说明,可以进行大约50μs的单个感测操作。可以取回第一组块的数据(例如,在少于1μs中),其包括4字节的第一条目112的表示(例如,表示162)。之后,可以取回第二组块的数据(例如,使用200MB/s总线大约20μs),其包括4KB的第一码字110的表示(例如,表示164)。
在特定实施例中,可以在第一条目112的表示162被转移到控制器120之后开始第三读取操作(例如,第二感测操作)。可以在接收到第一条目112的表示162时立即开始或者在进行错误检测和/或第一条目112的表示162的解扰之后开始第三读取操作。具体地,可以在第一码字110的表示164在控制器120处被接收之前(例如,在与第一码字110的表示164相关联的大约20μs的转移操作已经开始或者已经完成之前)开始第三读取操作。在该实施例中,译码第一码字110的表示164可能花费大约10μs。相应地,通过不需要等待第一码字110的表示164的取回和译码而开始第三读取操作,可以节省大约30μs(例如,取回4KB的第一码字110的表示164的大约20μs以及译码第一码字110的表示164的大约10μs)。
响应于读取操作160,控制器120可以接收第一条目112的表示162并且可以接收第一码字110的表示164。第一码字110的表示164可以包括与第一码字110相关联的码字ECC数据116。存储器管理系统122可以将第一码字110的表示164提供到ECC引擎130以开始译码第一码字110。
当ECC引擎130译码第一码字110时,控制器120可以基于第一条目112的表示162开始读取操作。当第一条目112的表示162包括错误检测数据(诸如,奇偶校验位)时,错误检测引擎132可以确定第一条目112的表示162是否包括基于所述错误检测数据而可检测的错误。此外,如果第一条目112的表示162被扰码,扰码器134可以解扰第一条目112的表示162。如果错误检测引擎132没有检测到错误(例如,基于第一条目112的表示162计算的奇偶校验匹配奇偶校验位),控制器120可以开始读取操作160以从对应于基于第一条目112的表示162确定的逻辑地址的第一物理地址取回第一读取数据166。
当ECC引擎130完成第一码字110的表示164的译码时,存储器管理系统122可以确定是否中止读取操作以取回第一读取数据166(或者丢弃第一读取数据166)。例如,当ECC引擎130确定在第一条目112处没有错误时,可以中止取回第一读取数据166的读取操作,或者可以丢弃第一读取数据166,由于在第一条目处的错误可以指示第一读取数据166与包括由读取请求152搜索的数据的物理地址不相关。
此外,当ECC引擎130确定在第一条目112处存在错误时,控制器120可以开始另外的读取操作160以从对应于基于在译码的码字中的第一条目112确定的逻辑地址的第二物理地址取回第二读取数据168。例如,ECC引擎130可以校正识别的错误,并且将错误校正的条目(或者错误校正的码字)提供到存储器管理系统122。存储器管理系统122的映射逻辑124可以基于错误校正的条目或错误校正的码字来识别第二物理地址。
由于第一码字110的表示164的转移以及由ECC引擎130进行的译码操作可能相对较慢(并且在特定条目处不存在错误时是不必要的),可以通过当接收到第一码字110的表示164时并且当ECC引擎130进行译码操作以确认物理地址是正确的时,从基于第一条目112的表示162确定的物理地址取回数据来减少数据贮存装置102的读取延迟。如果ECC引擎130确定物理地址是正确的,从物理地址取回的数据(例如,第一读取数据166)可以被提供到主机装置150。如果ECC引擎130确定物理地址不是正确的(例如,在条目112中有错误),从物理地址取回的数据(例如,第一读取数据166)可以被丢弃,并且可以基于正确的物理地址进行另外的读取操作(例如,以取回第二读取数据168)。
在特定实施例中,可以通过比较由第一条目112的表示162指示的逻辑地址与由主机装置150请求的逻辑地址来检测在第一条目112的表示162中的潜在的错误。例如,第一条目112可以包括指示由第一条目112指示的物理地址所对应的逻辑地址的元数据。在接收第一地址112的表示162之后,控制器120可以将基于第一地址112的表示162确定的逻辑地址与由主机装置150请求的逻辑地址比较。如果基于第一地址112的表示162确定的逻辑地址不匹配由主机装置150请求的逻辑地址,从由第一地址112的表示162指示的物理地址取回的数据(例如,第一读取数据166)可以被丢弃,并且可以基于正确的物理地址进行另外的读取操作(例如,以取回第二读取数据168)。
作为具体的示例,特定控制读取方案可能增加大约80微秒(μs)的读取延迟(不包括固件开销)。这样的装置的读取延迟可以大约被拆分为:50μs用于感测延迟、20μs用于转移延迟(例如,如在上述示例中假设在200MB/s处4KB的码字大小)、以及10μs用于译码延迟(加上由于固件开销的延迟)。这里所公开的实施例能够通过避免对整个码字的转移和译码(可能消耗大约30μs)以及通过减少与发布两个读取命令(一个用于控制并且一个用于数据)相关联的固件开销来减少延迟。因此,通过基于第一条目112的表示162开始第三读取操作而不等待控制器120接收第一码字110的表示164和译码第一码字110的表示164,可以减少整体控制读取延迟达大约百分之40(即,从大约80μs到大约50μs)。在随机读取的情况中,随机的每秒输入/输出操作(IOPS)可以被改善达大约百分之20。
图2描述了以减少的读取延迟从数据贮存装置读取数据的方法200的第一特定示意性实施例的流程图。方法200可以由诸如图1的数据贮存装置102的数据贮存装置来进行。
在202处,接收到指示逻辑地址的读取请求。可以当数据贮存装置可操作地耦合到或者内嵌于主机装置时、从主机装置接收读取请求。例如,当数据贮存装置102可操作地耦合到或者内嵌于主机装置150中时,可以由图1的数据贮存装置102从主机装置150接收读取请求。
在204处,可以进行第一读取操作以从存储器取回逻辑映射表的条目的表示。例如,图1的控制器120可以进行第一读取操作以从存储器104的逻辑到物理映射表106取回第一条目112的表示162。
在206处,可以进行第二读取操作以从存储器取回码字的表示。码字可以包括逻辑映射表的条目。例如,图1的控制器120可以进行第二读取操作以取回包括第一条目112的码字110的表示164。可以从存储器104的逻辑到物理映射表106取回码字110的表示164。
在208处,可以译码码字的表示以确定在条目中是否存在错误。在210处,在完成译码之前,可以开始第三读取操作以从对应于基于所述条目的表示而确定的所述逻辑地址的第一物理地址取回第一读取数据。例如,图1的控制器120的存储器管理系统122可以将码字110的表示164提供到ECC引擎130以译码码字110的表示164。当ECC引擎130正译码码字110的表示164时,存储器管理系统122可以发布读取操作以从对应于基于第一条目112的表示162而确定的物理地址的物理存储器位置读取数据。
由于由ECC引擎进行的译码操作可能相对较慢,并且常常是不必要的(即,当在特定条目处不存在错误时),可以通过当ECC引擎进行译码操作以确认物理地址是正确的时、从基于特定条目而确定的物理地址取回数据来减少数据贮存装置的读取延迟。如果ECC引擎确定物理地址是正确的,从所述物理地址取回的数据可以被提供到主机装置。如果ECC引擎确定物理地址不是正确的(例如,在条目中有错误),从所述物理地址取回的数据可以被丢弃,并且可以基于正确的物理地址来进行另外的读取操作。
图3描述了以减少的读取延迟从数据贮存装置读取数据的方法300的第一特定示意性实施例的流程图。方法300可以由诸如图1的数据贮存装置102的数据贮存装置进行。
在302处,接收到指示逻辑地址的读取请求。可以在数据贮存装置可操作地耦合到或者内嵌于主机装置时从主机装置接收读取请求。例如,在数据贮存装置102可操作地耦合到或者内嵌于主机装置150时,可以由图1的数据贮存装置102从主机装置150接收读取请求。
在304处,数据贮存装置的控制器可以确定在控制器处的逻辑映射表的一部分是否包括逻辑地址(例如,逻辑映射表的一部分是否被缓存在控制器处)。例如,图1的控制器120可以确定贮存在RAM 126处的逻辑到物理映射表106的部分128是否包括逻辑地址。当在控制器处的逻辑映射表的部分包括逻辑地址时,在306处,控制器可以基于在控制器处的逻辑映射表的部分(例如,基于缓存)取回读取数据,产生错误校正后的数据,并且将错误校正后的数据转移到主机装置。
当在控制器处的逻辑映射表的部分不包括逻辑地址时,控制器可以进行额外的读取操作。具体地,在308处,可以进行第一读取操作以从存储器取回逻辑映射表的条目的表示310,并且,在312处,可以进行第二读取操作以从存储器取回码字的表示314。码字可以包括逻辑映射表的条目。例如,图1的控制器120可以进行第一读取操作以从存储器104的逻辑到物理映射表106取回第一条目112的表示162。控制器120也可以进行第二读取操作以取回包括第一条目112的码字110的表示164。可以从存储器104的逻辑到物理映射表106取回码字110的表示164。
在316处,当条目的表示310被扰码时,可以解扰条目的表示。例如,在接收到图1的条目112的表示162之后,存储器管理系统122可以将条目112的表示162提供到扰码器134以解扰条目112的表示162。
在特定实施例中,方法300可以包括,在318处,检查与条目相关联的错误检测数据,诸如奇偶校验位。例如,在接收到图1的条目112的表示162之后,存储器管理系统122可以将条目112的表示162及其相关联的奇偶校验数据提供到错误检测引擎132。错误检测引擎132可以基于所述错误检测数据来确定条目112的表示162是否包括错误。
在320处,当错误检测数据指示条目的表示包括至少一个错误时,方法300可以停止对条目的表示的处理。例如,在330处,方法300可以译码码字的表示。在320处,当错误检测数据不指示条目的表示包括错误时,在322处,可以开始第三读取操作以从对应于基于所述条目的表示而确定的所述逻辑地址的第一物理地址取回第一读取数据324。在特定实施例中,当码字的表示被译码时,进行第三读取操作。例如,在控制器120处接收到条目112的表示162和码字110的表示164之后,存储器管理系统122可以将码字110的表示164发送到ECC引擎130以译码,并且可以进行读取操作以读取由基于条目112的表示162而确定的物理地址识别的物理存储器位置。因此,可以在与译码码字110的表示164以确认物理地址重叠(例如,与其同时)的时间段期间,从由基于条目112的表示162而确定的物理地址识别的物理存储器位置取回数据。
在326处,在第一读取数据324被取回之后,并且如果在条目中没有识别到错误,第一读取数据324可以被译码以产生错误校正后的数据350。错误校正后的数据350可以被提供到主机装置。
在330处,在码字的表示被取回之后,可以译码码字的表示。例如,与码字相关联的ECC数据可以被用于识别和校正在码字的表示中的错误。为了说明,在由图1的控制器120取回码字110的表示164之后,ECC引擎130可以译码码字110的表示164。
当在332处在条目中没有检测到错误时,方法300可以停止处理码字334。当译码处理确定条目的表示不包括错误时,与第一读取数据324相关联的第一物理地址是正确的,并且不需要对码字的进一步处理。可替换地,码字的译码的并且错误校正的表示可以被贮存在控制器的存储器中(例如,作为逻辑到物理映射表的缓存的部分)以加快定位(locate)后续读取请求的物理地址。
当在332处在条目中检测到错误时,可以在336处校正错误。在338处,可以开始第四读取操作以从第二物理地址取回第二读取数据340。在错误被校正之后,第二物理地址对应于基于码字的表示确定的逻辑地址。例如,在ECC引擎130在条目112中检测错误之后,存储器管理系统122可以进行读取操作以取回第二读取数据168。可以从通过由ECC引擎130确定的条目112的错误校正的版本而识别的物理存储器位置取回第二读取数据168。
在342处,当开始第四读取操作时,可以中止第三读取操作,或者可以丢弃第三读取操作的结果。例如,当图1的存储器管理系统122发布第四读取操作时,可以丢弃第一读取数据166。
在344处,在第二读取数据340被取回之后,可以译码第二读取数据340以产生错误校正后的数据350。错误校正后的数据350可以被提供到所述主机装置。
由于由ECC引擎进行的译码操作可能相对较慢并且常常是不必要的(例如,当在特定条目处不存在错误),可以通过当ECC引擎进行译码操作以确认物理地址是正确的时、从基于特定条而目确定的物理地址取回数据来减少数据贮存装置的读取延迟。如果ECC引擎确定物理地址是正确的,从所述物理地址取回的数据可以被提供到所述主机装置。如果ECC引擎确定物理地址不是正确的(例如,在条目中有错误),从所述物理地址取回的数据可以被丢弃,并且可以基于正确的物理地址进行另外的读取操作。
尽管这里所描述的各种组件被示出为块组件并且以一般的术语描述,但是这样的组件可以包括一个或多个微处理器、状态机或被配置为通过当ECC引擎进行译码操作以确认物理地址是正确的时,从基于特定条目确定的物理地址取回数据来减少延迟的其它电路。
在特定实施例中,数据贮存装置102可以被实现在便携装置中,该便携装置被配置为选择性地耦合到一个或多个外部装置。但是,在其它实施例中,数据贮存装置102可以被附着或内嵌于一个或多个主机装置中,诸如在主机通信装置的机壳中。例如,数据贮存装置102可以在封装的设备中,所述封装的装置诸如无线电话、个人数字助理(PDA)、游戏装置或者操纵台、便携导航装置或者使用内部非易失性存储器的其它装置。在特定实施例中,数据贮存装置102可以耦合到非易失性存储器,所述非易失性存储器诸如三维(3D)存储器、闪存存储器(例如,NAND、NOR、多级单元(MLC)、分裂位线NOR(DINOR)存储器、AND存储器、高电容耦合系数(HiCR)、不对称非接触式晶体管(ACT),或者其它闪存存储器)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、一次可编程存储器(OTP)或者任何其它类型的存储器。
对这里所述的实施例的说明意欲提供对各种实施例的一般理解。可以使用或者从本公开中得出其它实施例,使得可以作出结构的和逻辑的替换以及改变而不脱离本公开的范围。本公开意欲覆盖任何以及所有各种实施例的后续改编和变换。
上述公开的主题应被理解为示意性的,而不是限定性的,并且所附权利要求意欲覆盖所有这样的修改、改进以及落入本公开的范围的其它实施例。因此,到法律所允许的最大程度,本发明的范围将由下述权利要求及其等价物的最宽的允许的解释确定,并且不应被前述具体的描述限定或者限制。
Claims (22)
1.一种方法,包括:
在包含存储器和控制器的数据贮存装置中进行:
接收指示逻辑地址的读取请求,其中,在所述数据贮存装置可操作地耦合到或者内嵌于所述主机装置时,从主机装置接收所述读取请求;
进行第一读取操作以从所述存储器取回逻辑映射表的条目的表示;
进行第二读取操作以从所述存储器取回码字的表示;
译码所述码字的表示以确定在所述条目处是否存在错误;以及
在完成译码之前,开始第三读取操作以从对应于基于所述条目的表示而确定的所述逻辑地址的第一物理地址取回第一读取数据。
2.如权利要求1所述的方法,还包含,在取回所述第一读取数据之后,译码所述第一读取数据以产生错误校正后的数据,并且将所述错误校正后的数据转移到所述主机装置。
3.如权利要求1所述的方法,还包含,当译码码字的表示识别在条目处的错误时,开始第四读取操作以从对应于基于所述码字的表示而确定的逻辑地址的第二物理地址取回第二读取数据。
4.如权利要求3所述的方法,其中,当开始所述第四读取操作时中止所述第三读取操作。
5.如权利要求3所述的方法,其中,如果开始所述第四读取操作,则丢弃所述第三读取操作的结果。
6.如权利要求3所述的方法,还包含,在取回所述第二读取数据之后,译码所述第二读取数据以产生错误校正后的数据,并且将所述错误校正后的数据转移到所述主机装置。
7.如权利要求1所述的方法,还包含,在进行所述第一读取操作之前,确定在所述控制器中的所述逻辑映射表的一部分是否包含所述逻辑地址,其中,响应于确定在所述控制器中的所述逻辑映射表的所述部分不包含所述逻辑地址而进行所述第一读取操作和所述第二读取操作。
8.如权利要求1所述的方法,还包含,在取回所述条目的表示之后,检查与所述条目相关联的错误检测数据,其中,当所述错误检测数据不指示在所述条目的表示中的错误时,开始所述第三读取操作,并且其中,当所述错误检测数据指示在所述条目的表示中的错误时,不开始所述第三读取操作。
9.如权利要求8所述的方法,其中,所述错误检测数据包含与所述条目相关联的奇偶校验位,并且其中,基于与所述码字相关联的错误检测和校正数据来译码所述码字的表示。
10.如权利要求1所述的方法,还包含,在取回所述条目的表示之后,在开始所述第三读取操作之前解扰所述条目的表示。
11.如权利要求1所述的方法,其中,所述存储器包含三维(3D)存储器,并且其中,所述数据贮存装置包含与3D存储器的存储器单元的操作相关联的电路。
12.一种数据贮存装置,包括:
存储器;以及
耦合到所述存储器的控制器,其中,所述控制器包含第一逻辑映射表并且被配置为:
接收指示逻辑地址的读取请求,其中,在所述数据贮存装置可操作地耦合到或者内嵌于所述主机装置时,从主机装置接收所述读取请求;
进行第一读取操作以从所述存储器取回逻辑映射表的条目的表示;
进行第二读取操作以从所述存储器取回码字的表示;
译码所述码字的表示以确定在所述条目处是否存在错误;以及
在完成译码之前,开始第三读取操作以从对应于基于所述条目的表示而确定的所述逻辑地址的第一物理地址取回第一读取数据。
13.如权利要求12所述的数据贮存装置,其中,所述控制器被配置为,在取回所述第一读取数据之后,译码所述第一读取数据以产生错误校正后的数据,并且将所述错误校正后的数据转移到所述主机装置。
14.如权利要求12所述的数据贮存装置,其中,所述控制器被配置为,当译码码字的表示识别在条目处的错误时,开始第四读取操作以从对应于基于所述码字的表示而确定的所述逻辑地址的第二物理地址接收第二读取数据。
15.如权利要求14所述的数据贮存装置,其中,所述控制器被配置为当开始所述第四读取操作时中止所述第三读取操作。
16.如权利要求14所述的数据贮存装置,其中,所述控制器被配置为如果开始所述第四读取操作,则丢弃所述第三读取操作的结果。
17.如权利要求14所述的数据贮存装置,其中,所述控制器被配置为,在取回所述第二读取数据之后,译码所述第二读取数据以产生错误校正后的数据,并且将所述错误校正后的数据转移到所述主机装置。
18.如权利要求12所述的数据贮存装置,其中,所述控制器被配置为,在进行所述第一读取操作之前,确定在所述控制器中的所述逻辑映射表的一部分是否包含所述逻辑地址,其中,响应于确定在所述控制器中的所述逻辑映射表的所述部分不包含所述逻辑地址而进行所述第一读取操作和所述第二读取操作。
19.如权利要求12所述的数据贮存装置,其中,所述控制器被配置为,在取回所述条目之后,检查与所述条目相关联的错误检测数据,其中,当所述错误检测数据不指示在所述条目的表示中的错误时,开始所述第三读取操作,并且其中,当所述错误检测数据指示在所述条目的表示中的错误时,不开始所述第三读取操作。
20.如权利要求19所述的数据贮存装置,其中,所述错误检测数据包含与所述条目相关联的奇偶校验位,并且其中,基于与所述码字相关联的错误检测和校正数据来译码所述码字的表示。
21.如权利要求12所述的数据贮存装置,其中,所述控制器被配置为,在取回所述条目的表示之后,在开始所述第三读取操作之前解扰所述条目的表示。
22.如权利要求12所述的数据贮存装置,其中,所述存储器包含三维(3D)存储器,并且其中所述数据贮存装置包含与3D存储器的存储器单元的操作相关联的电路。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/838,662 | 2013-03-15 | ||
US13/838,662 US9116824B2 (en) | 2013-03-15 | 2013-03-15 | System and method to reduce read latency of a data storage device |
PCT/US2014/023475 WO2014150516A2 (en) | 2013-03-15 | 2014-03-11 | System and method to reduce read latency of a data storage device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104995607A true CN104995607A (zh) | 2015-10-21 |
CN104995607B CN104995607B (zh) | 2017-11-17 |
Family
ID=50397332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480008994.XA Expired - Fee Related CN104995607B (zh) | 2013-03-15 | 2014-03-11 | 减少数据贮存装置的读取延迟的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9116824B2 (zh) |
CN (1) | CN104995607B (zh) |
TW (1) | TWI613675B (zh) |
WO (1) | WO2014150516A2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066344A (zh) * | 2015-11-16 | 2017-08-18 | Hgst荷兰公司 | 在错误纠正前从非易失性固态装置发送数据的系统和方法 |
CN110119246A (zh) * | 2018-02-06 | 2019-08-13 | 阿里巴巴集团控股有限公司 | 使用定制错误校正来适应固态驱动器中的可变页面大小 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160162416A1 (en) * | 2014-12-08 | 2016-06-09 | Intel Corporation | Apparatus and Method for Reducing Latency Between Host and a Storage Device |
US9613691B2 (en) * | 2015-03-27 | 2017-04-04 | Intel Corporation | Apparatus and method for drift cancellation in a memory |
US9766975B2 (en) * | 2015-09-01 | 2017-09-19 | International Business Machines Corporation | Partial ECC handling for a byte-write capable register |
US10176038B2 (en) | 2015-09-01 | 2019-01-08 | International Business Machines Corporation | Partial ECC mechanism for a byte-write capable register |
US9985655B2 (en) | 2015-09-01 | 2018-05-29 | International Business Machines Corporation | Generating ECC values for byte-write capable registers |
TWI615771B (zh) * | 2015-09-17 | 2018-02-21 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料讀取方法 |
CN106547480B (zh) * | 2015-09-17 | 2019-04-12 | 慧荣科技股份有限公司 | 数据储存装置及其数据读取方法 |
TWI603335B (zh) * | 2016-10-19 | 2017-10-21 | 合肥兆芯電子有限公司 | 映射表載入方法、記憶體控制電路單元與記憶體儲存裝置 |
JP2018156556A (ja) | 2017-03-21 | 2018-10-04 | 東芝メモリ株式会社 | 計算機システム及びメモリデバイス |
TWI645298B (zh) | 2017-06-30 | 2018-12-21 | 慧榮科技股份有限公司 | 降低快閃儲存介面中傳收資料錯誤方法以及使用該方法的裝置 |
US10637509B2 (en) | 2017-06-30 | 2020-04-28 | Silicon Motion, Inc. | Methods for reducing data errors in transceiving of a flash storage interface and apparatuses using the same |
US10848263B2 (en) | 2017-06-30 | 2020-11-24 | Silicon Motion, Inc. | Methods for reducing data errors in transceiving of a flash storage interface and apparatuses using the same |
CN109213436B (zh) | 2017-06-30 | 2021-08-24 | 慧荣科技股份有限公司 | 降低快闪储存介面中传收数据错误方法及装置 |
US10630424B2 (en) | 2017-06-30 | 2020-04-21 | Silicon Motion, Inc. | Methods for reducing data errors in transceiving of a flash storage interface and apparatuses using the same |
KR102421149B1 (ko) * | 2018-01-02 | 2022-07-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR102456173B1 (ko) | 2017-10-27 | 2022-10-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR20200104601A (ko) | 2019-02-27 | 2020-09-04 | 에스케이하이닉스 주식회사 | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 |
KR102456176B1 (ko) | 2020-05-21 | 2022-10-19 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US11573891B2 (en) | 2019-11-25 | 2023-02-07 | SK Hynix Inc. | Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device |
KR102435253B1 (ko) | 2020-06-30 | 2022-08-24 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR102495910B1 (ko) | 2020-04-13 | 2023-02-06 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
US11755476B2 (en) | 2020-04-13 | 2023-09-12 | SK Hynix Inc. | Memory controller, storage device including the memory controller, and method of operating the memory controller and the storage device |
KR102406449B1 (ko) | 2020-06-25 | 2022-06-08 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
US11550658B1 (en) | 2021-09-02 | 2023-01-10 | Western Digital Technologies, Inc. | Storage system and method for storing logical-to-physical address table entries in a codeword in volatile memory |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030177300A1 (en) * | 2002-03-18 | 2003-09-18 | Samsung Electro-Mechanics Co., Ltd. | Data processing method in high-capacity flash EEPROM card system |
US20040199738A1 (en) * | 2001-04-20 | 2004-10-07 | Jean-Paul Henriques | Optimised storage addressing method |
CN102467968A (zh) * | 2010-11-15 | 2012-05-23 | 三星电子株式会社 | 非易失性存储器设备及其读取方法和存储器系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6804750B2 (en) * | 2002-01-22 | 2004-10-12 | Micron Technology, Inc. | Technique for reducing memory latency during a memory request |
JP2005025827A (ja) | 2003-06-30 | 2005-01-27 | Toshiba Corp | 半導体集積回路装置およびそのエラー検知訂正方法 |
WO2006065698A2 (en) | 2004-12-13 | 2006-06-22 | William Kenneth Waller | Sense amplifier circuitry and architecture to write data into and/or read data from memory cells |
US7447078B2 (en) | 2005-04-01 | 2008-11-04 | Sandisk Corporation | Method for non-volatile memory with background data latch caching during read operations |
WO2008139441A2 (en) * | 2007-05-12 | 2008-11-20 | Anobit Technologies Ltd. | Memory device with internal signal processing unit |
US8095763B2 (en) * | 2007-10-18 | 2012-01-10 | Datadirect Networks, Inc. | Method for reducing latency in a raid memory system while maintaining data integrity |
US8661218B1 (en) * | 2007-10-18 | 2014-02-25 | Datadirect Networks, Inc. | Method for reducing latency in a solid-state memory system while maintaining data integrity |
JP2010009646A (ja) | 2008-06-24 | 2010-01-14 | Toshiba Memory Systems Co Ltd | 半導体記憶装置 |
CN105122218B (zh) * | 2013-03-14 | 2019-01-18 | 美光科技公司 | 包含训练、数据组织及/或遮蔽的存储器系统及方法 |
US9690953B2 (en) * | 2013-03-14 | 2017-06-27 | Apple Inc. | Generating efficient reads for a system having non-volatile memory |
-
2013
- 2013-03-15 US US13/838,662 patent/US9116824B2/en active Active
-
2014
- 2014-03-11 CN CN201480008994.XA patent/CN104995607B/zh not_active Expired - Fee Related
- 2014-03-11 WO PCT/US2014/023475 patent/WO2014150516A2/en active Application Filing
- 2014-03-13 TW TW103109166A patent/TWI613675B/zh not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040199738A1 (en) * | 2001-04-20 | 2004-10-07 | Jean-Paul Henriques | Optimised storage addressing method |
US20030177300A1 (en) * | 2002-03-18 | 2003-09-18 | Samsung Electro-Mechanics Co., Ltd. | Data processing method in high-capacity flash EEPROM card system |
CN1445787A (zh) * | 2002-03-18 | 2003-10-01 | 三星电机株式会社 | 大容量快速可电擦写可编程只读存储器系统中的数据处理方法 |
CN102467968A (zh) * | 2010-11-15 | 2012-05-23 | 三星电子株式会社 | 非易失性存储器设备及其读取方法和存储器系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066344A (zh) * | 2015-11-16 | 2017-08-18 | Hgst荷兰公司 | 在错误纠正前从非易失性固态装置发送数据的系统和方法 |
CN110119246A (zh) * | 2018-02-06 | 2019-08-13 | 阿里巴巴集团控股有限公司 | 使用定制错误校正来适应固态驱动器中的可变页面大小 |
CN110119246B (zh) * | 2018-02-06 | 2022-09-23 | 阿里巴巴集团控股有限公司 | 使用定制错误校正来适应固态驱动器中的可变页面大小的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20140281806A1 (en) | 2014-09-18 |
WO2014150516A2 (en) | 2014-09-25 |
CN104995607B (zh) | 2017-11-17 |
TW201506953A (zh) | 2015-02-16 |
WO2014150516A3 (en) | 2014-12-04 |
US9116824B2 (en) | 2015-08-25 |
TWI613675B (zh) | 2018-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104995607A (zh) | 减少数据贮存装置的读取延迟的系统和方法 | |
US9817749B2 (en) | Apparatus and method of offloading processing from a data storage device to a host device | |
US9229806B2 (en) | Block closure techniques for a data storage device | |
US8862967B2 (en) | Statistical distribution based variable-bit error correction coding | |
US10031850B2 (en) | System and method to buffer data | |
KR101369444B1 (ko) | 정정 불가능한 에러를 해결하는 하이브리드 에러 정정 코딩 | |
US9165670B2 (en) | Data retention detection techniques for a data storage device | |
US8812936B2 (en) | Using slow response memory device on a fast response interface | |
US9639461B2 (en) | System and method of processing of duplicate data at a data storage device | |
US20150127882A1 (en) | Read operation prior to retrieval of scatter gather list | |
US20150179254A1 (en) | Mitigating disturb effects for non-volatile memory | |
WO2014164134A2 (en) | Detecting effect of corrupting event on preloaded data in non-volatile memory | |
US9400747B2 (en) | Batch command techniques for a data storage device | |
CN106372011B (zh) | 用于pcie ssd控制器的高性能主机队列监控器 | |
US20150046772A1 (en) | Method and device for error correcting code (ecc) error handling | |
US9117533B2 (en) | Tracking erase operations to regions of non-volatile memory | |
US8595420B2 (en) | Method for dispatching and transmitting data streams between host system and memory storage apparatus having non-volatile memory and smart card chip, memory controller, and memory storage apparatus | |
US20200226064A1 (en) | Method of reverse mapping and data consolidation to enhance random performance | |
CN113126906B (zh) | 用于元数据指示的方法和系统 | |
US9223649B2 (en) | System and method of sending correction data to a buffer of a non-volatile memory | |
CN113050881A (zh) | 提高存储器系统输入/输出吞吐量的设备和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: texas Applicant after: DELPHI INT OPERATIONS LUX SRL Address before: texas Applicant before: Sandisk Corp. |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171117 Termination date: 20200311 |
|
CF01 | Termination of patent right due to non-payment of annual fee |