CN102414666B - 用于受管理的非易失性存储器的低等待时间读取操作 - Google Patents

用于受管理的非易失性存储器的低等待时间读取操作 Download PDF

Info

Publication number
CN102414666B
CN102414666B CN201080019952.8A CN201080019952A CN102414666B CN 102414666 B CN102414666 B CN 102414666B CN 201080019952 A CN201080019952 A CN 201080019952A CN 102414666 B CN102414666 B CN 102414666B
Authority
CN
China
Prior art keywords
data
host
processor
buffer unit
memory buffer
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.)
Expired - Fee Related
Application number
CN201080019952.8A
Other languages
English (en)
Other versions
CN102414666A (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.)
Apple Inc
Original Assignee
Apple 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 Apple Inc filed Critical Apple Inc
Publication of CN102414666A publication Critical patent/CN102414666A/zh
Application granted granted Critical
Publication of CN102414666B publication Critical patent/CN102414666B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/1068Adding 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 sector programmable memories, e.g. flash disk
    • 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

Abstract

在存储器系统中,主机控制器耦合到非易失性存储器(NVM)封装(例如NAND器件)。主机控制器向NVM封装发送读取命令以请求低等待时间读取操作。响应于读取命令,NVM封装中的控制器取得数据并将数据发送到ECC引擎以便校正。在读取命令之后,主机控制器向NVM封装中的控制器发送读取状态请求命令。响应于读取状态请求,控制器向主机控制器发送状态报告,指示出一些或全部数据可用于传送到主机控制器。响应于该报告,主机控制器传送数据。可确定欠载运行状态,以指示出未经校正的数据被传送到了主机控制器。

Description

用于受管理的非易失性存储器的低等待时间读取操作
技术领域
本主题总地涉及受管理的非易失性存储器(NVM)的访问和管理。
背景技术
闪存是一类电可擦除可编程只读存储器(EEPROM)。因为闪存是非易失性的并且相对密集,所以它们被用于在手持式计算机、移动电话、数字相机、便携式音乐播放器和其他存储方案(例如磁盘)不适用的许多其他设备中存储文件和其他持续性对象。
NAND是能够像诸如硬盘或存储卡之类的块器件那样被访问的一类闪存。每个块由若干页(例如64-128页)构成。典型的页大小是4KB-8KB字节。NAND器件可具有多个管芯,其中每个管芯具有4096-8192个块。与每个页相关联的是用于差错检测和校正校验和的存储的数个字节(例如12-16个字节)。读取和编程是以页为单位执行的,擦除是以块为单位执行的,并且块中的数据只能被顺序写入。NAND依赖于差错校正码(ECC)来针对在正常器件操作期间可能翻转的比特进行补偿。当执行擦除或编程操作时,NAND器件可检测未能编程或擦除的块并将这些块在不良块映射图中标记为不良的。数据可被写入到另一不同的、良好的块,并且不良块映射图被更新。
受管理的NAND器件将原始NAND与存储器控制器相组合以处理差错校正和检测,以及NAND存储器的存储器管理功能。商业上,可在球栅阵列(BGA)封装中或者支持标准化处理器接口的其他集成电路(IC)封装(例如多媒体存储卡(MMC)和安全数字(SD)卡)中获得受管理的NAND。受管理的NAND器件可包括可利用一个或多个芯片选择信号来访问的数个NAND器件或管芯。芯片选择是在数字电子设备中用来从连接到同一总线的若干个芯片中选择一个芯片的控制线。芯片选择通常是大多数IC封装上的命令管脚,该命令管脚将器件上的输入管脚连接到该器件的内部电路。当芯片选择管脚被保持在非活动状态中时,芯片或器件忽略其输入管脚的状态的变化。当芯片选择管脚被保持在活动状态中时,芯片或器件就好像其是总线上的唯一芯片那样作出响应。
开放NAND闪存接口工作组(ONFI)为NAND闪存芯片开发了一种标准化的低级别接口,以允许来自不同厂商的合格NAND器件之间的互操作性。ONFI规范版本1.0规定:TSOP-48、WSOP-48、LGA-52和BGA-63封装中的NAND闪存的标准物理接口(管脚输出);用于读取、写入和擦除NAND闪存芯片的标准命令集;以及用于自识别的机制。ONFI规范版本2.0支持双通道接口,其中奇数芯片选择(也称为芯片使能或“CE”)连接到通道1并且偶数CE连接到通道2。物理接口对于整个封装不应具有多于8个CE。
虽然ONFI规范允许了互操作性,但当前的ONFI规范并没有充分利用受管理的NAND方案。
发明内容
在存储器系统中,主机控制器耦合到非易失性存储器(NVM)封装(例如NAND器件)。主机控制器向NVM封装发送读取命令以请求低等待时间读取操作。响应于读取命令,NVM封装中的控制器取得数据并将数据发送到ECC引擎以便校正。在读取命令之后,主机控制器向NVM封装中的控制器发送读取状态请求命令。响应于读取状态请求,控制器向主机控制器发送状态报告,指示出一些或全部数据可用于传送到主机控制器。响应于该报告,主机控制器传送数据。
在一些实现方式中,响应于主机控制器在读取操作结束时发送的读取操作状态请求命令,欠载运行状态被NVM封装中的控制器确定并被报告给主机控制器。NVM封装报告的读取操作状态指示出是否有欠载运行,其中未经校正数据被传送到主机控制器,以及数据是可校正的还是不可校正的。基于读取操作状态,主机控制器可采取行动,例如执行另一读取操作,而不考虑低等待时间。
所公开的低等待时间读取操作的一个优点是所请求的数据的经校正部分可被传送到主机控制器,这可与传统的非易失性存储器系统相对比:在传统的非易失性存储器系统中,在任何数据被传送到主机控制器之前,所有请求的数据被加载在缓冲器中并被校正。
附图说明
图1是包括耦合到受管理的NVM封装的主机处理器的示例性存储器系统的框图。
图2示出了用于图1的受管理的NVM封装的示例性地址映射。
图3示出了包括不良块替换的图2的地址映射。
图4示出了受管理的非易失性存储器的低等待时间读取的示例性方法。
图5示出了用于确定低等待时间读取操作中的欠载运行状态的示例性过程。
图6示出了受管理的非易失性存储器的低等待时间读取的另一示例性方法。
图7是主机控制器执行的低等待时间读取操作的流程图。
图8是NVM控制器执行的低等待时间读取操作的流程图。
具体实施方式
存储器系统概述
图1是包括耦合到受管理的NVM封装104(例如NAND器件)的主机控制器102的示例性存储器系统100的框图。NVM封装104可以是BGA封装或其他IC封装,包括多个NVM器件108(例如多个原始NAND器件)。存储器系统100可用在多种设备中,包括但不限于:手持式计算机、移动电话、数字相机、便携式音乐播放器、玩具、指状驱动器、电子邮件设备以及任何其他想要或需要非易失性存储器的设备。就这里使用的而言,原始NVM是被外部主机处理器管理的存储器器件或封装,并且受管理的NVM是包括诸如差错校正、耗损均衡、不良块管理等等之类的至少一个内部存储器管理功能的存储器器件或封装。
在一些实现方式中,NVM封装104可包括用于利用内部芯片选择信号通过内部通道访问和管NVM器件108的控制器106。内部通道是控制器106与NVM器件108之间的数据路径。控制器106可执行存储器管理功能(例如耗损均衡、不良块管理)并且可包括用于检测和校正数据差错(例如翻转的比特)的差错校正(ECC)引擎110。在一些实现方式中,ECC引擎110可实现为控制器106中的硬件组件或实现为由控制器106执行的软件组件。在一些实现方式中,ECC引擎110可位于NVM器件108中。
在一些实现方式中,主机控制器102和NVM封装104通过主机可见的通信通道(“主机通道”)来传输信息(例如控制命令、地址、数据)。主机通道可支持标准接口,例如原始NAND接口或双通道接口,例如ONFI规范版本2.0中描述的那种。主机控制器102还可提供主机芯片使能(CE)信号。主机CE是主机控制器102可见的,以便选择主机通道。
在示例性存储器系统100中,NVM封装104支持CE隐藏。CE隐藏允许了单个主机CE被用于NVM封装104中的每个内部通道,从而减少了支持NVM封装104的接口所需要的信号的数目。可利用地址空间和地址映射将存储器访问映射到内部通道和NVM器件108,如参考图2和3所述。可利用由控制器106生成的内部CE信号来使能各个NVM器件108。
示例性地址映射
图2示出了用于图1的受管理的NVM封装104的示例性地址映射。具体地,该映射可用于包括多个管芯的受管理的NAND器件,其中每个管芯可能包括多个平面。在一些实现方式中,地址映射在可同时寻址单元(CAU)上工作。CAU是可从单个主机通道访问的物理存储的一部分,其可与NVM封装中的其他CAU同时或并行地被读取、编程或擦除。CAU例如可以是单个平面或单个管芯。CAU大小是CAU中的可擦除块的数目。
将利用图2的示例性存储器体系结构来描述映射。对于此示例性体系结构,块大小被定义为可擦除块中的页的数目。在一些实现方式中,对于每4k字节的数据,有16字节的元数据可用。其他存储器体系结构也是可能的。例如,元数据可被分配以更多或更少字节。
图2所示的地址映射允许了使用原始NAND协议来对NAND块进行读取/编程/擦除并且允许了使能优化性能的额外命令。NVM封装104包括用于管理NAND的数据可靠性的ECC引擎(例如ECC引擎110)。从而,主机控制器102不需要包括ECC引擎110或以其他方式出于可靠性目的处理数据。
NVM封装104将CAU定义为能够与其他CAU同时或并行访问(例如将数据从NAND存储器单元移动到内部寄存器)的区域。在此示例性体系结构中,假定所有CAU包括相同数目的块。在其他实现方式中,CAU可具有不同数目的块。以下的表I描述了用于访问CAU中的页的示例性行地址格式。
表I-示例性行地址格式
  R[X+Y:X+Z-1]   R[X:X+Y-1]   R[0:X-1]
  CAU   块   页
参考表I,示例性的n比特(例如24比特)行地址可以按以下格式被呈现给NAND器件中的控制器:[CAU:块:页]。CAU是表示管芯或平面的号码(例如整数)。“块”是由CAU号码标识的CAU中的块偏移量,并且“页”是由“块”标识的块中的页偏移量。例如,在每个块有128页、每个CAU有8192块并且有6个CAU的器件中:X将为7(27=128),Y将为13(213=8192)并且Z将为3(22<6<23)。
图2所示的示例性的NVM封装104包括两个NAND管芯204a、204b,并且每个管芯具有两个平面。例如,管芯204a包括平面206a、206b。并且,管芯204b包括平面206c、206d。在此示例中,每个平面是一CAU,并且每个CAU具有2048个多级别单元(MLC)块,其中每个块中有128页。编程和擦除操作可在块的跨度上执行(每个CAU一个块)。跨度(stride)被定义为块的阵列,其中每个块来自一不同的CAU。在所示出的示例中,“跨度0”定义了来自CAU 0-3中的每一个的块0,“跨度1”定义了来自CAU 0-3中的每一个的块1,“跨度2”定义了来自CAU 0-3中的每一个的块2,依此类推。
NVM封装包括NVM控制器202,NVM控制器202通过控制总线208和地址/数据总线210与CAU通信。在操作期间,NVM控制器202接收来自主机控制器(未示出)的命令,并且响应于命令,断言控制总线208上的控制信号和地址/数据总线210上的地址或数据以对一个或多个CAU执行操作(例如,读取、编程或擦除操作)。在一些实现方式中,命令包括具有[CAU:块:页]形式的行地址,如参考图2所述。
图3示出了包括不良块替换的图2的地址映射。在此示例中,主机控制器102针对NVM封装104发出跨度地址,该NVM封装包括三个CAU,其中CAU之一在跨度块偏移量中持有不良块。“跨度4”地址通常将访问CAU0:块4、CAU1:块4和CAU2:块4。然而,在此示例中,不良块CAU1:块4被CAU1:块2000所替换。
示例性的低等待时间读取操作
图4示出了受管理的非易失性存储器的低等待时间读取的示例性方法。低等待时间读取状态功能允许了主机控制器一旦数据页的一些部分准备就绪就在读取操作之后开始传送数据的字节。此读取状态操作指示出数据的第一部分何时准备就绪。假定主机控制器和NVM控制器总线使用相似的定时并且ECC过程在整个读取操作期间不严重影响等待时间,则一旦ECC片段准备就绪就开始该片段的传送可提供重大的等待时间改善。
为了验证正确地递送了页,主机控制器可在传送数据之前和之后读取NVM控制器提供的状态。为了防止关于状态拥有者的混淆,协议可规定有两个待处理命令被用同一行地址执行为非法状况。以下的表II描述了以上所述的操作读取状态功能所返回的示例性信息。对于此示例假定了8比特返回值。
表II-操作读取状态功能的示例性返回信息
参考以上的表II,如果NVM控制器返回“0”,则有过ECC延迟。主机控制器在页的一部分被ECC引擎处理之前读取该部分。如果发生此状况,则主机控制器可使用操作读取状态并可能重读该页。如果NVM控制器返回“1”,则从NVM封装不恰当地读取了数据。主机控制器可发出另一读取状态命令以获得额外的状态信息。根据需要可在来自NVM封装的状态中返回其他信息。
再次参考图4,所示出的是内部总线、NVM控制器、低等待时间外部总线和通常外部总线在低等待时间读取操作期间执行的低等待时间读取事件的四个堆叠的行。沿着x轴从左向右时间增加。内部总线和NVM控制器位于NVM封装(例如NAND器件)中。低等待时间和通常外部总线将主机控制器(例如主机控制器102)耦合到NVM封装。
现在参考图4,低等待时间读取命令通过低等待时间外部总线被从主机控制器发送到NVM控制器。该读取命令被NVM控制器处理。在此示例中,NVM器件包括可利用参考图2描述的映射图寻址来访问的三个CAU。NVM控制器开始处理从CAU读取的数据的ECC片段。数据的片段(例如一页或多页)被从存储器单元传送到缓冲器。ECC片段可被定义为包括数据加元数据的可校正单元大小。一旦片段在缓冲器中,片段就可被ECC引擎处理并且关于该片段是被ECC引擎校正还是不可校正的指示可被记录。
在主机控制器发出读取命令之后,主机控制器向NVM控制器发出低等待时间状态请求命令(“LL状态”)以确定ECC片段是否可用。NVM控制器以指示出ECC片段可用于传送到主机控制器的状态或者指示出数据有问题的差错码作为响应。如果状态指示ECC片段可用,则主机控制器发出外部传送命令(“Ext Xfer”)以通过外部总线将ECC片段传送到主机控制器。此过程重复,直到不再有更多ECC片段为止,表明读取操作完成。如果状态指示差错,则可执行应对不良数据的通常过程(例如不良块替换)。
有可能在低等待时间读取操作期间数据的片段在没有首先被ECC引擎处理的情况下被在外部总线上传送,因为ECC引擎未能够为了外部传送到主机控制器及时完成ECC过程。这被称为“欠载运行”(underrun)。为了解决此问题,主机控制器发出最终状态请求命令以确定是否传送了没有接受ECC处理的数据或者是否有任何不良数据是不可校正的。如果NVM控制器提供指示出欠载运行或者片段包括未能校正的不良数据的状态,则主机控制器和NVM控制器利用通常外部总线协议执行通常读取操作。在一些实现方式中,通常读取操作致使要读取的数据被完全传送到缓冲器。整个缓冲器的数据随后被ECC引擎处理,然后在通常外部总线上被传送到主机控制器。通常读取操作由图4中的底部一行图示。
示例性的欠载运行状况确定
图5示出了用于确定低等待时间读取操作中的欠载运行状态的示例性过程。在一些实现方式中,维护两个指针:主机读取字节指针502和最高地址有效字节指针504。指针502可利用n比特触发器来实现。指针502按主机总线宽度区块递增(例如按字节递增)。指针502可被初始化到主机控制器所发送的读取命令中包括的行地址[CAU:块:页]中指定的“页”偏移量地址。指针504也可利用n比特触发器来实现。指针504按ECC片段递增。指针504在已知ECC片段被校正或不可校正时递增。
指针502、504可被比较器506比较以确定指针502的值是否大于指针504的值,这表明欠载运行。如果检测到欠载运行,则欠载运行触发器可被设定到“1”。在此示例中,假定欠载运行触发器被初始到了“0”。对于欠载运行逻辑有四个结果,在以下的表III中列出。
表III-欠载运行过程的示例性的结果和动作
  结果   动作
  没有欠载运行,数据OK   像通常那样进行
  没有欠载运行,数据不可校正   像通常那样进行
  欠载运行,数据OK   重试,忽略提早传送开始比特
  欠载运行,数据不可校正   像通常那样进行,或重试
如果没有欠载运行并且数据良好,则读取操作将像通常那样进行。如果没有欠载运行并且存在不可校正的不良数据,则读取操作可像通常那样进行(例如执行不良块替换)。如果有欠载运行并且数据良好,则读取操作可被重试,而不执行到主机控制器的ECC片段的提早传送。如果有欠载运行并且数据不可校正,则读取操作可像通常那样进行或者被重试。
替换的低等待时间读取操作
图6示出了受管理的非易失性存储器的低等待时间读取的另一示例性方法。图6在形式上类似于图5,并且对其的解释应当与图5相同。在此示例性方法中,读取命令通过外部低等待时间总线被发送到NVM控制器。该读取命令通过内部总线被传送到NVM控制器。NVM控制器将所请求的数据传送到缓冲器中并且对缓冲器中的数据执行ECC操作。在此示例中,读取状态命令被发送到NVM控制器。NVM控制器返回指示出可用于传送到主机控制器的ECC片段的数目的状态。主机控制器发起对可用ECC片段的传送。在传送完成之后,主机处理器请求最终读取状态。从而,图6中所示的方法不是在传送之前等待全部数据被处理,而是一旦ECC片段准备就绪就允许传送这些片段。由于在数据被ECC引擎处理之前不允许传送数据,所以利用此方法不能发生欠载运行。
主机处理器执行的示例性过程
图7是主机控制器(例如主机控制器102)执行的低等待时间读取操作700、722的流程图。过程700也被称为方法A(主机),并且过程722也被称为方法B(主机)。
在一些实现方式中,过程700开始于主机控制器向NVM控制器发送读取命令时(702)。在读取命令之后,主机控制器向NVM控制器发送读取状态请求命令(704)。主机控制器接收来自NVM控制器的状态报告(706)。状态报告指示出ECC片段是否准备好供传送(708)。如果ECC片段未准备好供传送,则过程700返回到步骤704。否则,数据被从NVM封装中读取(710)并发送到主机控制器。
确定最后的片段是否被读取了(712)。如果最后的片段未被读取,则过程返回到步骤704。否则,主机控制器请求最终读取状态请求以确定是否有不可校正的ECC片段(714)。主机控制器接收操作状态(716)。如果状态报告指示出不可校正的ECC片段(718),则实现不可校ECC策略(720)。否则,过程700终止。
注意,过程700报告供传送的数据的准备就绪的ECC数据片段,并且主机控制器只传送已被校正的或被发现不可校正的数据。
在一些实现方式中,过程722开始于主机控制器向NVM控制器发送读取命令时(724)。在读取命令之后,主机控制器向NVM控制器发送读取状态请求命令(726)。主机控制器接收来自NVM控制器的状态报告(728)。状态报告指示出ECC片段是否准备好供提早传送(730)。如果ECC片段未准备好供提早传送,则过程722返回到步骤726。否则,ECC片段被从器件中读取(732)并传送到主机控制器。主机控制器请求读取状态以确定是否有不可校正的ECC片段或者有欠载运行(734)。
主机控制器接收来自NVM控制器的状态(736)。确定是否发生了欠载运行或不可校正的ECC(738)。如果有欠载运行,则主机控制器执行通常读取操作(按通常等待时间的操作),其中不提早传送数据到主机控制器(740)。如果有不可校正的ECC(742),则执行不可校ECC策略(744)。否则,过程722终止。
注意,在过程722中,NVM控制器向主机控制器报告其可以开始传送数据,而同时其仍不确定数据是否已被校正或不可校正,但这却晚到足以使NVM控制器认为其可以保持在主机控制器的前面。过程722还包括一种方法,用于确定主机控制器是否跑在了NVM控制器对数据的ECC处理的前面,这被称为“欠载运行”。
NVM控制器执行的示例性过程
图8是NVM控制器执行的低等待时间读取操作800、816的流程图。过程800也被称为方法A(器件),并且过程816也被称为方法B(器件)。
在一些实现方式中,过程800开始于NVM控制器接收到读取命令时(802)。响应于读取命令,NVM控制器将ECC片段(也称为“区块”)读取到内部缓冲器中(804)。缓冲器的内容被ECC引擎处理以校正ECC片段(806)。在一些实现方式中,在当前ECC片段正被ECC引擎处理的同时,下一ECC片段可被读取。
接下来,NVM控制器接收读取状态请求并且通过报告可用于传送的数据来响应该请求(808)。该报告可包括准备好供传送的字节的数目或者下一区块的不可校EC状态。确定传送是否完成(810)。如果传送完成,并且响应于主机控制器作出的最终状态请求,NVM控制器向主机控制器提供可校正/不可校正状态的报告(814)。否则,数据被传送到主机控制器(812)并且过程800返回到步骤808。在一些实现方式中,与步骤806中描述的主机请求上的读取循环同时地传送数据。过程800故意地没有欠载运行。
在一些实现方式中,过程816开始于NVM控制器接收到读取命令时(818)。响应于读取命令,NVM控制器将ECC片段/区块读取到内部缓冲器中(820)。缓冲器的内容被ECC引擎处理以校正ECC片段(822)。在一些实现方式中,在当前ECC片段正被ECC引擎处理的同时,下一ECC片段可被读取。
接下来,确定是否有足够的数据供提早传送(824)。响应于来自主机控制器的读取状态请求命令,NVM控制器提供表明数据的提早传送可以开始的报告(826)。数据被传送到主机控制器(828)。在一些实现方式中,可与步骤822中描述的主机请求上的读取循环同时地传送数据。响应于来自主机控制器的最终读取状态请求命令,NVM控制器向主机控制器报告欠载运行状态和可校正/不可校正状态(830)。
虽然本说明书包含许多细节,但这些细节不应被解释为对要求保护的或可以要求保护的范围的限制,而应被解释为对特定实施例所特有的特征的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可分开在多个实施例中或以任何适当的子组合实现。另外,虽然以上可能将特征描述为以某些组合来动作,并且甚至最初要求对此进行保护,但来自要求保护的组合的一个或多个特征在一些情况下可被从该组合中切离,并且要求保护的组合可指向子组合或子组合的变体。
类似地,虽然在附图中以特定顺序示出了操作,但这不应被理解为为了实现期望的结果要求以所示出的特定顺序或者以先后顺序执行这种操作或者要求执行所有图示出的操作。在某些情况下,多任务和并行处理可能是有利的。另外,以上所述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都要求这种分离,而应当理解所描述的程序组件和系统可大体上被一起集成在单个软件产品中或被封装到多个软件产品中。
从而,已经描述了特定实施例。其他实施例在所附权利要求的范围内。

Claims (15)

1.一种非易失性存储器NVM器件,包括:
接口,可用于接收来自耦合到所述NVM器件的主机处理器的读取命令和读取状态请求;
多个可同时寻址单元,其中每个包含多个块,其中,每个可同时寻址单元被配置为与其他可同时寻址单元并行地被读取、编程或擦除;
耦合到所述接口和所述多个可同时寻址单元的控制器,该控制器可用于:
从由所述读取命令指定的所述多个可同时寻址单元的一个或多个块中读取数据;
将来自于所述一个或多个块的数据储存在存储缓冲器中;
对所述存储缓冲器中的所述数据的一部分进行差错校正;
在使所述存储缓冲器中的所述数据的另一部分可用于传送之前,使所述存储缓冲器中的所述数据的经差错校正的部分可用于传送到所述主机处理器;以及
利用指示出欠载运行状态或所述存储缓冲器中的所述数据是可校正的还是不可校正的之中的一个或多个的信息来响应所述读取状态请求,其中,欠载运行状态对应于数据片段在被控制器进行错误校正之前被传送到主机处理器的状态。
2.如权利要求1所述的器件,其中,所述信息包括指示出差错校正码延迟的一个或多个比特,其中,所述差错校正码延迟响应于所述主机处理器在所述控制器对所述存储缓冲器中的所述数据的所述部分执行差错校正之前读取所述数据的所述部分而发生。
3.如权利要求1所述的器件,其中,所述信息包括指示出所述存储缓冲器中的所述数据被从所述NVM器件的存储器阵列中恰当地读取的一个或多个比特,其中,恰当地读取的数据包括成功地差错校正的数据。
4.如权利要求1所述的器件,其中,所述信息包括指示出所述存储缓冲器中的所述数据准备好被从所述NVM器件传送到所述主机处理器的一个或多个比特。
5.一种由非易失性存储器NVM器件执行的方法,该方法包括:
接收来自耦合到所述NVM器件的主机处理器的读取命令和读取状态请求;
从所述NVM器件中的由所述读取命令标识的多个可同时寻址单元中的一个或多个块读取数据,其中,每个可同时寻址单元被配置为与其他可同时寻址单元并行地被读取、编程或擦除;
将来自于所述一个或多个块的数据储存在存储缓冲器中;
对所述存储缓冲器中的所述数据的一部分进行差错校正;
在使所述存储缓冲器中的所述数据的另一部分可用于传送之前,使所述存储缓冲器中的所述数据的经差错校正的部分可用于传送到所述主机处理器;以及
利用指示出欠载运行状态或所述存储缓冲器中的所述数据是可校正的还是不可校正的之中的一个或多个的信息来响应所述状态请求,其中,欠载运行状态对应于数据片段在被控制器进行错误校正之前被传送到主机处理器的状态。
6.如权利要求5所述的方法,其中,所述信息包括指示出差错校正码延迟的一个或多个比特,其中,所述差错校正码延迟响应于所述主机处理器在由所述NVM器件对所述存储缓冲器中的所述数据的所述部分进行差错校正之前读取所述数据的所述部分而发生。
7.如权利要求5所述的方法,其中,所述信息包括指示出所述存储缓冲器中的所述数据被从所述NVM器件的存储器阵列中恰当地读取的一个或多个比特,其中,恰当地读取的数据包括成功地差错校正的数据。
8.如权利要求5所述的方法,其中,所述信息包括指示出所述存储缓冲器中的所述数据准备好被从所述NVM器件传送到所述主机处理器的一个或多个比特。
9.如权利要求5所述的方法,其中,所述主机处理器响应于所述信息而向所述NVM器件发送另一读取命令。
10.如权利要求5所述的方法,其中,用所述信息来响应所述状态请求包括在所述存储缓冲器中的所述数据被传送到所述主机处理器之前或之后由所述NVM器件将所述信息发送到所述主机处理器。
11.如权利要求5所述的方法,其中,所述信息指示出可用于传送到所述主机处理器的差错校正码片段的数目。
12.一种存储器系统,包括:
主机处理器;
非易失性存储器(NVM)器件;
耦合所述主机处理器和所述NVM器件的接口,所述主机处理器被配置用于从所述主机处理器通过所述接口向所述NVM器件发送读取命令和读取状态请求;
所述NVM器件中包括的多个可同时寻址单元,所述单元包含多个块,其中,每个可同时寻址单元被配置为与其他可同时寻址单元并行地被读取、编程或擦除;
所述NVM器件的耦合到所述多个可同时寻址单元的控制器,该控制器可用于:
从由所述读取命令指定的所述多个可同时寻址单元的所述多个块中的一个或多个块读取数据;
将来自于所述一个或多个块的数据储存在存储缓冲器中;
对所述存储缓冲器中的所述数据的一部分进行差错校正;
在使所述存储缓冲器中的所述数据的另一部分可用于传送之前,使所述存储缓冲器中的所述数据的经差错校正的部分可用于从所述NVM器件通过所述接口传送到所述主机处理器;以及
从所述NVM器件向所述主机处理器发送信息,该信息指示出欠载运行状态或所述存储缓冲器中的所述数据是可校正的还是不可校正的之中的一个或多个,其中,欠载运行状态对应于数据片段在被控制器进行错误校正之前被传送到主机处理器的状态。
13.如权利要求12所述的系统,其中,所述信息包括指示出所述存储缓冲器中的所述数据准备好被从所述NVM器件传送到所述主机处理器的一个或多个比特。
14.如权利要求12所述的系统,其中,为了从所述NVM器件向所述主机处理器发送信息,所述控制器进一步操作为在所述存储缓冲器中的所述数据被传送到所述主机处理器之前或之后将所述信息发送到所述主机处理器。
15.如权利要求12所述的系统,其中,所述信息指示出可用于传送到所述主机处理器的差错校正码片段的数目。
CN201080019952.8A 2009-05-06 2010-04-27 用于受管理的非易失性存储器的低等待时间读取操作 Expired - Fee Related CN102414666B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US17605509P 2009-05-06 2009-05-06
US61/176,055 2009-05-06
US12/538,053 US8438453B2 (en) 2009-05-06 2009-08-07 Low latency read operation for managed non-volatile memory
US12/538,053 2009-08-07
PCT/US2010/032627 WO2010129305A1 (en) 2009-05-06 2010-04-27 Low latency read operation for managed non-volatile memory

Publications (2)

Publication Number Publication Date
CN102414666A CN102414666A (zh) 2012-04-11
CN102414666B true CN102414666B (zh) 2015-03-25

Family

ID=42308338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080019952.8A Expired - Fee Related CN102414666B (zh) 2009-05-06 2010-04-27 用于受管理的非易失性存储器的低等待时间读取操作

Country Status (6)

Country Link
US (1) US8438453B2 (zh)
EP (1) EP2427824B1 (zh)
JP (1) JP5591917B2 (zh)
KR (1) KR101382060B1 (zh)
CN (1) CN102414666B (zh)
WO (1) WO2010129305A1 (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8370603B2 (en) 2008-12-23 2013-02-05 Apple Inc. Architecture for address mapping of managed non-volatile memory
US8489907B2 (en) 2009-09-16 2013-07-16 Apple Inc. Method of selective power cycling of components in a memory device independently by reducing power to a memory array or memory controller
JP5651457B2 (ja) * 2010-12-15 2015-01-14 株式会社東芝 半導体記憶装置
US8738882B2 (en) 2011-06-03 2014-05-27 Apple Inc. Pre-organization of data
JP2012252558A (ja) * 2011-06-03 2012-12-20 Sony Corp 不揮発性メモリ、メモリコントローラ、不揮発性メモリのアクセス方法、およびプログラム
US8656251B2 (en) * 2011-09-02 2014-02-18 Apple Inc. Simultaneous data transfer and error control to reduce latency and improve throughput to a host
WO2013089715A1 (en) * 2011-12-14 2013-06-20 Intel Corporation Storage of codeword portions
KR20140093855A (ko) 2013-01-18 2014-07-29 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 제어 방법
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
MY180992A (en) 2013-03-13 2020-12-15 Intel Corp Memory latency management
US9690953B2 (en) * 2013-03-14 2017-06-27 Apple Inc. Generating efficient reads for a system having non-volatile memory
US10417091B2 (en) 2013-03-25 2019-09-17 Hewlett Packard Enterprise Development Lp Memory device having error correction logic
US9612773B2 (en) * 2013-11-21 2017-04-04 Samsung Electronics Co., Ltd. User device having a host flash translation layer (FTL), a method for transferring an erase count thereof, a method for transferring reprogram information thereof, and a method for transferring a page offset of an open block thereof
US9262263B2 (en) 2013-11-25 2016-02-16 Qualcomm Incorporated Bit recovery system
KR20150061393A (ko) 2013-11-27 2015-06-04 삼성전자주식회사 메모리 장치로부터 읽은 데이터를 고속으로 전송하는 메모리 컨트롤러 및 그것의 데이터 전송 방법.
US9378081B2 (en) 2014-01-02 2016-06-28 Qualcomm Incorporated Bit remapping system
US9454422B2 (en) 2014-01-30 2016-09-27 International Business Machines Corporation Error feedback and logging with memory on-chip error checking and correcting (ECC)
US9323610B2 (en) 2014-01-30 2016-04-26 Sandisk Technologies Inc. Non-blocking commands
KR102069274B1 (ko) 2014-02-05 2020-01-22 삼성전자주식회사 메모리 제어 방법
US9653184B2 (en) 2014-06-16 2017-05-16 Sandisk Technologies Llc Non-volatile memory module with physical-to-physical address remapping
US20160232088A1 (en) * 2014-07-17 2016-08-11 Sandisk Enterprise Ip Llc Garbage Collection in Storage System with Distributed Processors
US9367392B2 (en) 2014-08-01 2016-06-14 Winbond Electronics Corporation NAND flash memory having internal ECC processing and method of operation thereof
KR102317787B1 (ko) 2015-02-11 2021-10-26 삼성전자주식회사 메시지 전송 플로우 관리 방법 및 이를 적용하는 스토리지 디바이스
US9880748B2 (en) 2015-02-13 2018-01-30 Qualcomm Incorporated Bifurcated memory management for memory elements
US9811420B2 (en) * 2015-03-27 2017-11-07 Intel Corporation Extracting selective information from on-die dynamic random access memory (DRAM) error correction code (ECC)
FR3039922B1 (fr) * 2015-08-06 2018-02-02 Stmicroelectronics (Rousset) Sas Procede d'ecriture dans une memoire du type eeprom et dispositif de memoire correspondant
KR102473209B1 (ko) 2015-12-14 2022-12-02 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
CN107783727B (zh) * 2016-08-31 2022-01-14 华为技术有限公司 一种内存设备的访问方法、装置和系统
KR20180078864A (ko) 2016-12-30 2018-07-10 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
WO2018232736A1 (zh) * 2017-06-23 2018-12-27 华为技术有限公司 内存访问技术及计算机系统
US10607712B1 (en) * 2018-09-28 2020-03-31 Toshiba Memory Corporation Media error reporting improvements for storage drives
US11307929B2 (en) * 2019-06-17 2022-04-19 Micron Technology, Inc. Memory device with status feedback for error correction
US11194643B1 (en) * 2020-06-03 2021-12-07 Micron Technology, Inc. Access operation status signaling for memory systems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1499531A (zh) * 2002-10-28 2004-05-26 管理非易失存储器系统中的数据完整性的方法和装置
EP1577774A2 (en) * 2004-02-19 2005-09-21 Nec Corporation Semiconductor storage data striping
CN1831780A (zh) * 2005-03-10 2006-09-13 松下电器产业株式会社 非易失性存储系统、非易失性存储装置、数据读出方法及读出程序

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63285800A (ja) * 1987-05-19 1988-11-22 Fujitsu Ltd 半導体メモリ装置
US5341489A (en) 1992-04-14 1994-08-23 Eastman Kodak Company Memory card with programmable interleaving
US5434872A (en) * 1992-07-28 1995-07-18 3Com Corporation Apparatus for automatic initiation of data transmission
US5524218A (en) * 1993-12-23 1996-06-04 Unisys Corporation Dedicated point to point fiber optic interface
EP0669720B1 (en) 1994-02-18 2000-01-26 STMicroelectronics S.r.l. Programmable logic array structure for semiconductor nonvolatile memories, particularly flash-EPROMs
US5606710A (en) 1994-12-20 1997-02-25 National Semiconductor Corporation Multiple chip package processor having feed through paths on one die
US5615162A (en) 1995-01-04 1997-03-25 Texas Instruments Incorporated Selective power to memory
KR0157342B1 (ko) 1995-06-09 1998-12-01 김광호 불휘발성 반도체 메모리의 전압 센싱 방법
US5812335A (en) * 1995-09-01 1998-09-22 Adaptec, Inc. Programmable data transfer without sector pulses in a headerless disk drive architecture
US5751631A (en) 1996-10-21 1998-05-12 Liu; David K. Y. Flash memory cell and a new method for sensing the content of the new memory cell
US6092158A (en) 1997-06-13 2000-07-18 Intel Corporation Method and apparatus for arbitrating between command streams
US6279114B1 (en) * 1998-11-04 2001-08-21 Sandisk Corporation Voltage negotiation in a single host multiple cards system
US6134149A (en) 1999-03-01 2000-10-17 Integrated Memory Technologies, Inc. Method and apparatus for reducing high current during chip erase in flash memories
US6148354A (en) * 1999-04-05 2000-11-14 M-Systems Flash Disk Pioneers Ltd. Architecture for a universal serial bus-based PC flash disk
JP4105819B2 (ja) * 1999-04-26 2008-06-25 株式会社ルネサステクノロジ 記憶装置およびメモリカード
US7827348B2 (en) 2000-01-06 2010-11-02 Super Talent Electronics, Inc. High performance flash memory devices (FMD)
CN100442393C (zh) 1999-10-21 2008-12-10 松下电器产业株式会社 半导体存储卡的访问装置、初始化方法和半导体存储卡
US6684301B1 (en) 2001-05-31 2004-01-27 Lsi Logic Corporation Out of order execution memory access request FIFO
JP4256600B2 (ja) 2001-06-19 2009-04-22 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
US7346825B2 (en) 2001-09-06 2008-03-18 Intel Corporation Error method, system and medium
US7181611B2 (en) 2002-10-28 2007-02-20 Sandisk Corporation Power management block for use in a non-volatile memory system
US7069399B2 (en) 2003-01-15 2006-06-27 Via Technologies Inc. Method and related apparatus for reordering access requests used to access main memory of a data processing system
US20040153902A1 (en) * 2003-01-21 2004-08-05 Nexflash Technologies, Inc. Serial flash integrated circuit having error detection and correction
JP4256198B2 (ja) * 2003-04-22 2009-04-22 株式会社東芝 データ記憶システム
US20060164907A1 (en) 2003-07-22 2006-07-27 Micron Technology, Inc. Multiple flash memory device management
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
JP4085983B2 (ja) 2004-01-27 2008-05-14 セイコーエプソン株式会社 情報処理装置およびメモリアクセス方法
US7490283B2 (en) * 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
DE602004014371D1 (de) * 2004-09-10 2008-07-24 St Microelectronics Srl Speicher mit eingebauter Fehlerkorrekturkode-Einrichtung
KR100876084B1 (ko) 2007-02-13 2008-12-26 삼성전자주식회사 플래시 저장 장치로 삭제 정보를 전달할 수 있는 컴퓨팅시스템
KR100621631B1 (ko) * 2005-01-11 2006-09-13 삼성전자주식회사 반도체 디스크 제어 장치
US7426672B2 (en) 2005-04-28 2008-09-16 International Business Machines Corporation Method for implementing processor bus speculative data completion
US7444579B2 (en) * 2005-04-28 2008-10-28 Micron Technology, Inc. Non-systematic coded error correction
KR100739722B1 (ko) 2005-08-20 2007-07-13 삼성전자주식회사 플래시 메모리 관리 방법 및 플래시 메모리 시스템
US20070050668A1 (en) * 2005-09-01 2007-03-01 Micron Technology, Inc. Test mode to force generation of all possible correction codes in an ECC memory
JP4999325B2 (ja) 2005-12-21 2012-08-15 ルネサスエレクトロニクス株式会社 フラッシュメモリ
US7423915B2 (en) 2006-01-17 2008-09-09 Spansion Llc Random cache read using a double memory
US7793059B2 (en) 2006-01-18 2010-09-07 Apple Inc. Interleaving policies for flash memory
US7809994B2 (en) * 2006-05-17 2010-10-05 Sandisk Corporation Error correction coding for multiple-sector pages in flash memory devices
US7372715B2 (en) 2006-06-14 2008-05-13 Micron Technology, Inc. Architecture and method for NAND flash memory
US7609703B2 (en) 2006-09-15 2009-10-27 Hewlett-Packard Development Company, L.P. Group communication system and method
JP2008134736A (ja) 2006-11-27 2008-06-12 Fujifilm Corp 電子機器
KR101354152B1 (ko) 2006-12-18 2014-01-27 삼성전자주식회사 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치
JP5020625B2 (ja) 2006-12-22 2012-09-05 キヤノン株式会社 インタフェース回路
JP2008287404A (ja) * 2007-05-16 2008-11-27 Hitachi Ltd 読み出しによる非アクセスメモリセルのデータ破壊を検出及び回復する装置、及びその方法
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
KR101466694B1 (ko) * 2007-08-28 2014-11-28 삼성전자주식회사 Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법
KR101433859B1 (ko) 2007-10-12 2014-08-27 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법
US7991943B2 (en) 2007-10-26 2011-08-02 Standard Microsystems Corporation Implementation of one time programmable memory with embedded flash memory in a system-on-chip
TWI384488B (zh) 2007-12-24 2013-02-01 Skymedi Corp Nonvolatile storage device and its data writing method
US8417893B2 (en) 2008-02-04 2013-04-09 Apple Inc. Memory mapping techniques
US7979658B2 (en) 2008-03-25 2011-07-12 Spansion Llc Secure management of memory regions in a memory
US8832354B2 (en) * 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8321647B2 (en) 2009-05-06 2012-11-27 Apple Inc. Multipage preparation commands for non-volatile memory systems
US20100287329A1 (en) 2009-05-06 2010-11-11 Apple Inc. Partial Page Operations for Non-Volatile Memory Systems
US9092340B2 (en) 2009-12-18 2015-07-28 Sandisk Technologies Inc. Method and system for achieving die parallelism through block interleaving
US8356137B2 (en) 2010-02-26 2013-01-15 Apple Inc. Data storage scheme for non-volatile memories based on data priority

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1499531A (zh) * 2002-10-28 2004-05-26 管理非易失存储器系统中的数据完整性的方法和装置
EP1577774A2 (en) * 2004-02-19 2005-09-21 Nec Corporation Semiconductor storage data striping
CN1831780A (zh) * 2005-03-10 2006-09-13 松下电器产业株式会社 非易失性存储系统、非易失性存储装置、数据读出方法及读出程序

Also Published As

Publication number Publication date
US8438453B2 (en) 2013-05-07
KR20120005548A (ko) 2012-01-16
EP2427824A1 (en) 2012-03-14
KR101382060B1 (ko) 2014-04-04
JP5591917B2 (ja) 2014-09-17
EP2427824B1 (en) 2015-10-21
CN102414666A (zh) 2012-04-11
US20100287446A1 (en) 2010-11-11
WO2010129305A1 (en) 2010-11-11
JP2012526323A (ja) 2012-10-25

Similar Documents

Publication Publication Date Title
CN102414666B (zh) 用于受管理的非易失性存储器的低等待时间读取操作
CN102422271B (zh) 用于非易失性存储器系统的多页准备命令
US8615702B2 (en) Method and apparatus for correcting errors in memory device
US8370603B2 (en) Architecture for address mapping of managed non-volatile memory
US8612791B2 (en) Method of selective power cycling of components in a memory device independently by turning off power to a memory array or memory controller
US8392794B2 (en) Non-volatile memory device and data processing method thereof
US9176865B2 (en) Data writing method, memory controller, and memory storage device
US20100287329A1 (en) Partial Page Operations for Non-Volatile Memory Systems
US9304900B2 (en) Data reading method, memory controller, and memory storage device
US20130036258A1 (en) Memory storage device, memory controller thereof, and method for programming data thereof
CN107797821B (zh) 重试读取方法以及使用该方法的装置
US8301981B2 (en) Data access method for flash memory and storage system and controller thereof
CN111078146B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
US9213597B2 (en) Memory storage device, memory controller thereof, and method for programming data thereof
CN110837339A (zh) 数据整并方法、存储器存储装置及存储器控制电路单元
US9152348B2 (en) Data transmitting method, memory controller and data transmitting system
US9652378B2 (en) Writing method, memory controller and memory storage device
US20200151119A1 (en) Method and apparatus for performing access control between host device and memory device
TWI798034B (zh) 記憶體控制器與資料處理方法
TW201342386A (zh) 傳送校正資料至非揮發性記憶體之緩衝器之系統與方法
CN112540932B (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150325

Termination date: 20210427