CN102272730A - 经虚拟化错误校正码nand - Google Patents

经虚拟化错误校正码nand Download PDF

Info

Publication number
CN102272730A
CN102272730A CN2008801315143A CN200880131514A CN102272730A CN 102272730 A CN102272730 A CN 102272730A CN 2008801315143 A CN2008801315143 A CN 2008801315143A CN 200880131514 A CN200880131514 A CN 200880131514A CN 102272730 A CN102272730 A CN 102272730A
Authority
CN
China
Prior art keywords
nand
controller
ecc
processor
nand 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.)
Granted
Application number
CN2008801315143A
Other languages
English (en)
Other versions
CN102272730B (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.)
Micron Technology Inc
Original Assignee
Micron Technology 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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN102272730A publication Critical patent/CN102272730A/zh
Application granted granted Critical
Publication of CN102272730B publication Critical patent/CN102272730B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0625Power saving in storage systems
    • 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/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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
    • 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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
    • 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/1072Adding 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 multilevel 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
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明揭示一种单个经虚拟化ECC NAND控制器,其执行ECC算法且管理NAND快闪存储器堆栈。所述经虚拟化ECC NAND控制器允许主机处理器将所述快闪存储器装置堆栈作为单个NAND芯片来驱动,同时所述控制器将数据重新引导到所述堆栈中的选定NAND存储器装置。

Description

经虚拟化错误校正码NAND
背景技术
当今的通信装置继续变得更加复杂及多样以提供增加的功能性。这些装置支持需要较高容量存储器(明确地说通过多芯片封装设计提供)的多媒体。通信链路、总线、芯片到芯片互连件及存储媒体可在高等级的内在信号/存储故障的情况下操作。预期这些通信装置并入有错误检测及校正机制。ECC(错误校正码)已移入到存储器存储结构中但需要额外改进。
附图说明
关于本发明的标的物在本说明书的结论部分中明确地指出且清晰地主张。然而,结合阅读附图来参考以下详细说明可最佳理解本发明的组织及操作方法两者以及其目的、特征及优点。
图1图解说明根据本发明的并入有经虚拟化ECC NAND控制器以执行ECC算法且管理主机处理器与NAND存储器堆栈之间的数据传送的无线架构;
图2图解说明主机处理器/存储器接口,其中经虚拟化ECC NAND控制器提供执行ECC算法及管理到NAND存储器堆栈的数据传送两者的功能块;及
图3展示经虚拟化ECC NAND控制器的进一步细节。
应了解,为简洁及清晰图解说明起见,图中所图解说明的元件未必按比例绘制。例如,为清晰起见,可相对于其它元件夸大元件中的一些元件的尺寸。此外,在认为适当之处,重复参考编号来指示图中对应或类似的元件。
具体实施方式
在下文详细说明中阐明了大量特定细节以提供对本发明的充分理解。然而,所属领域的技术人员将了解在没有这些特定细节的情况下可实践本发明。在其它实例中,未详细描述众所周知的方法、程序、组件及电路,以使本发明不会被掩盖。
图1中所图解说明的实施例展示通信装置10,根据本发明其可能包含具有服务多个NAND快闪装置的经虚拟化ECC NAND控制器的非易失性存储器。本发明不局限于无线通信实施例且其它非无线应用也可使用本发明。如此无线实施例中所展示,通信装置10包含一个或一个以上天线结构14以允许无线电与其它空中激活通信装置通信。如此,通信装置10可操作为蜂窝式装置或在例如以下无线网络中操作的装置:无线保真(Wi-Fi)、WiMax、移动WiMax、宽带码分多址(WCDMA)及全球移动通信系统(GSM)网络,但本发明并不局限于仅在这些网络中操作。并置于通信装置10的相同平台中的无线电子系统提供以不同频带在RF/位置空间中与网络中的其它装置通信的能力。
所述实施例图解说明将天线结构14耦合到收发器12以容纳调制/解调。一般来说,模拟前端收发器12可以是独立射频(RF)离散或集成模拟电路,或收发器12可嵌入有具有一个或一个以上处理器核心16及18的主机中央处理单元(CPU)20。所述多个核心允许跨越所述核心分担处理工作负载且处置基带功能及应用功能。数据及指令可通过存储器接口28在CPU与存储器存储装置之间传送。
系统存储器22可包含易失性存储器及非易失性存储器两者,例如NAND存储器结构24。请注意,所述易失性及非易失性存储器可单独封装,或另一选择是,在堆栈过程中加以组合。明确地说,可将多个NAND存储器结构置于多芯片封装(MCP)中以减小板上的占用面积。因此,系统存储器22的各种实施例展示可通过混合存储器装置与配置而以不同方式布置存储器装置来利用通信产品内的有限空间,且可使用各种封装选项来找出低功率与高可靠性的正确组合。
在现有技术中,在NAND存储器内部执行ECC(错误校正码)算法仅限于提供仅可适合于所述单个存储器装置的错误检测及校正机制。更新固定主机平台来支持新NAND技术将在ECC需要、页大小、地址能力、新命令集合规范等方面付出昂贵成本。进一步限制,所述ECC算法为技术特有的。例如,单电平单元技术(SLC)与多电平单元技术(MLC)之间的改变将使使用中的ECC算法失效。另外,具有不同产品收缩等级的替换存储器将使得对现有ECC算法的修改成为必须。且内部并入有ECC的当前存储器装置基于快闪与ECC算法逻辑的组合裸片面积而强加成本惩罚。
为克服这些缺点且根据本发明,图2中所图解说明的架构允许单个经虚拟化ECCNAND控制器26服务多个NAND存储器结构,即,“原始”存储器堆栈24。术语“原始”暗指NAND存储器装置不在内部实施ECC算法。主机CPU 20将经虚拟化ECCNAND控制器26及原始NAND存储器结构作为单个存储器系统来驱动,而不管其内部的原始NAND存储器的数目如何。此外,与现有技术的堆栈式架构相比减小了功率消耗,因为此解决方案可一次选择一个NAND。经虚拟化ECC NAND控制器26包含与主机CPU 20交换信号的协议接口30、用以实施ECC算法的ECC引擎32及管理存储器堆栈24的NAND接口34。
经虚拟化ECC NAND控制器26充当从主机NAND接口到原始NAND记忆堆栈的桥接器,且给主机提供正确ECC算法以用于系统存储器中所提供的原始NAND。主机侧以其标准NAND接口、地址空间、命令集合、页大小、ECC等操作,且经虚拟化ECC NAND控制器26使主机侧适应被并入到存储器堆栈中的特定原始NAND。
通过从NAND堆栈中的个别NAND存储器装置中去除ECC功能性且将所述功能性并入于ECC NAND控制器26中,可实现多种特征。在ECC NAND控制器26处于NAND存储器装置外部的情形下,主机侧实现准许主机将系统作为单个NAND芯片驱动的经虚拟化地址空间,即使存储系统中有多个NAND存储器装置。因此,主机CPU20自由地管理接口处的更多芯片。换句话说,在主机CPU 20管理接口处的一个芯片的情况下,经虚拟化ECC NAND控制器26可管理堆栈式存储器中的NAND存储器装置。
现有技术产品将ECC连同数据管理算法(例如,快闪翻译层(FTL)、损耗均衡、坏块管理等)一起实施到共用集成电路中。相反,图中所呈现的架构将ECC与数据管理算法分离。经虚拟化ECC NAND控制器26仅实施ECC算法且不实施任何其它数据管理算法。此允许主机CPU 20在数据页、元数据面积方面维持对经虚拟化存储器的全面控制且允许经虚拟化ECC NAND控制器26提供较好的ECC引擎。
在将经虚拟化ECC NAND控制器26用作从主机NAND接口到原始NAND存储器堆栈的桥接器中,主机平台可管理与原始NAND的页大小不同的页大小。此外,经虚拟化ECC NAND控制器26将主机平台与存储器堆栈隔离,从而允许主机CPU 20使用原始NAND不支持的一些命令。在一个实施例中,主机CPU 20可具有比经虚拟化ECC NAND中的物理存储器装置的命令集合大的命令集合,而在另一实施例中,与经虚拟化ECC NAND内部的命令集合相比,所述主机的命令集合可以是减小的命令集合。在任一实施例中,ECC NAND控制器26内的逻辑使主机CPU20的命令集合适应物理存储器装置的命令集合。所述主机平台可使用基本NAND命令集合且经虚拟化NAND控制器26可使用经扩展的新命令集合。
图3展示允许主机CPU 20经由协议规范中未改变的电连接介接到协议接口30,从而允许所述主机通信到具有大的无错误地址空间的单个存储器系统。换句话说,此架构允许主机CPU 20作为标准NAND接口提供与存储器堆栈24的数据交换,从而保持虚拟命令集合及地址空间。
同时且在不给主机平台添加内部逻辑的情况下,ECC NAND 26提供ECC功能以通过校正原始NAND中的位错误来增加数据交换的总体可靠性。寻址是虚拟化的,因为主机CPU 20将所连接的存储器装置当作单个NAND芯片那样来驱动,而经虚拟化ECC NAND控制器26朝向堆栈的选定NAND重新引导数据。因此,单个经虚拟化ECC NAND控制器26管理NAND快闪存储器堆栈且执行ECC算法。
此外,此在主机CPU 20与存储器堆栈24之间具有经虚拟化ECC NAND控制器26的架构使得单个NAND装置的使用可适应能够使用不同芯片启用(CE)引脚来管理一组NAND存储器的主机。在一个实施例中,所述主机接口通过使用CE信号选择性地驱动不同的快闪存储器,尽管经虚拟化ECC NAND由较高密度的单个NAND芯片构成。经虚拟化ECC NAND控制器26的内部逻辑将来自主机CPU 20的请求(其断言所述CE中的一者)转译成寻址NAND阵列的一部分的操作,从而在选定NAND存储器装置本身支持的地址循环中编码所述请求。应注意,主机CPU 20可具有低于原始NAND存储器装置所需循环数目的地址循环数目。同样,所述主机平台可管理与原始NAND存储器装置的页大小不同的页大小,且甚至使用所述存储器装置不支持的一些命令,例如多平面操作或高速缓冲存储器操作。
例如,如果原始NAND存储器装置不支持多平面操作,那么经虚拟化ECC NAND控制器26可通过两个通道仿真这些命令。如果原始NAND存储器装置不支持高速缓冲存储器操作,那么经虚拟化ECC NAND控制器26可借助内部乒乓缓冲器等仿真所述命令。此外,如果所述主机平台需要与原始NAND存储器装置的页大小不同的页大小,那么经虚拟化ECC NAND控制器26提供具有与真实物理块不同的页大小及页数目的经虚拟化物理块。
协议接口30为经虚拟化ECC NAND控制器26的使用标准NAND通信协议与主机CPU 20通信的部分。协议接口30解释任何所接收的命令且进一步引导对主机所传送的任何数据的存储。此外,协议接口30管理NAND就绪/忙信号以计及ECC算法等待时间。协议接口30包含内部缓冲器36以存储主机CPU 20在编程操作期间所传送的数据。遵循确认命令,协议接口30将忙信号设定为低以避免任一种类的数据操作朝向经虚拟化ECC NAND控制器26。
适当挑选缓冲器36的大小以减小因ECC计算而引入的等待时间。在缓冲器大小合适的情况下,主机CPU 20可在不等待先前快闪编程操作结束的情况下在写入操作期间开始发送新页。此时序优点在顺序读取操作期间是有益的,且因此在ECC引擎32计算当前页上的冗余时,可从原始NAND检索下一页。
ECC引擎32为经虚拟化ECC NAND控制器26用实施ECC算法(其计算主机CPU 20所发送的数据上的冗余)的部分。所述ECC算法用于检测及校正原始信息在存储、写入到堆栈式存储器24或从堆栈式存储器24读取期间偶然发生的错误。所述ECC算法可实施多级、循环、错误校正、可变长度数字码以校正多个随机错误模式。如此,ECC引擎32可实施BCH码或里德-所罗门算法。
在写入操作期间,所述ECC算法计算主机所发送的数据上的冗余。一旦计算出,便将所述冗余添加到主机数据且传送到NAND快闪页缓冲器。在读取操作期间,ECC引擎32重新计算来自原始NAND的数据上的冗余以用于与先前存储于快闪存储器中的旧冗余值进行比较。如果两个冗余相等,那么所述数据为正确的且允许将其从协议接口缓冲器传送到主机CPU 20。然而,如果两个冗余不相等,那么ECC引擎32校正数据位的错误,之后才可将数据传送到主机CPU 20。如果错误数目高于ECC校正能力,那么用信号通知主机CPU 20读取失败。
NAND接口34为经虚拟化ECC NAND控制器26的用以通过重新加工先前从主机CPU 20接收的命令及地址两者而与原始NAND通信的部分。因此,在写入操作中,数据是从协议接口缓冲器传送到选定快闪存储器。以此功能,NAND接口34解码地址以将所接收的数据重新引导到选定NAND,且将数据加ECC冗余的新有效负载发送到堆栈式存储器24中的选定原始NAND。在此操作期间,所述忙信号保持低且在原始NAND编程操作结束时转变为高信号电平。
在读取操作期间,NAND接口34将数据从选定原始NAND传送到协议接口30中的缓冲器36。同时,ECC引擎32处理数据以计算相关的奇偶性以用于与从快闪存储器读取的冗余相比较,且如果需要,那么执行位校正。
当协议接口30具有一个芯片启用引脚且NAND接口34具有一个以上芯片启用引脚时,对地址进行解码以朝向存储器堆栈的选定原始NAND存储器装置重新引导数据。另一方面,当协议接口30具有比NAND接口34多的芯片启用引脚时,对所述地址进行解码以将数据重新引导到原始NAND的正确部分,此取决于哪一芯片启用为低。
通过使用经虚拟化ECC NAND控制器26在NAND快闪存储器堆栈外部执行ECC算法,就技术及存储器装置数目来说,可确保灵活的存储器系统解决方案。事实上,经虚拟化ECC NAND控制器26可继续操作,而不论存储器堆栈24中所包含的非易失性存储器是SLC及/或MLC。此外,经虚拟化ECC NAND控制器26能够管理多个快闪NAND装置且甚至适应具有不同收缩等级的存储器装置。还应注意,经虚拟化ECC NAND控制器26内的ECC校正能力的改变并不影响快闪NAND设计。此外,由于通过图3中展示的架构所图解说明的解决方案可一次选择一个NAND存储器装置,因此与传统堆栈式架构相比减小了功率消耗。
由于新存储器技术增加了单个单元中所存储的位数目,因此也增加了读取、写入及保持错误的几率。此使得使用更完整ECC算法(其具有增加的校正本领的代码)成为必须。为解决这些技术困难,应了解到目前为止,本发明的所呈现的实施例提供其中单个控制器管理NAND快闪存储器堆栈连同执行ECC算法的架构。此架构允许主机CPU使用标准NAND协议驱动具有大的无错误地址空间的单个存储器系统。通过将ECC校正能力置于外部控制器中,可在不必改变快闪遮蔽的情况下促进ECC算法的改变。所述外部控制器还准许针对控制器及NAND存储器使用不同技术,且允许存储器装置具有不同的收缩等级。
尽管本文已图解说明且描述了本发明的某些特征,然而所属领域的技术人员现在将能想出许多修改、替代、改变及等效形式。因此,应了解,所附权利要求书既定涵盖归属于本发明的真正精神内的所有此等修改及改变。

Claims (20)

1.一种用以耦合到主机的存储系统,其包括:
第一及第二NAND存储器装置,其位于所述存储系统中;及
控制器,其在所述第一及第二NAND存储器装置外部,所述控制器给所述主机导出经虚拟化地址空间以允许所述主机将所述存储系统作为单个NAND芯片来驱动,即使所述存储系统包含多个NAND存储器装置。
2.根据权利要求1所述的存储系统,其中所述控制器实施错误校正码(ECC)算法且不实施损耗均衡及坏块管理的数据管理算法。
3.根据权利要求2所述的存储系统,其中所述控制器包含协议接口电路,所述协议接口电路具有缓冲器以减小因所述ECC算法的计算而引入的等待时间。
4.根据权利要求3所述的存储系统,其中所述协议接口电路管理去往所述主机处理器的NAND就绪/忙信号以计及ECC算法等待时间。
5.根据权利要求1所述的存储系统,其中所述控制器管理所述第一NAND存储器装置的与所述主机的页大小不同的页大小。
6.根据权利要求1所述的存储系统,其中所述控制器调适由所述主机发出的所述第一及第二NAND存储器装置不支持的命令。
7.根据权利要求1所述的存储系统,其中所述控制器为非易失性存储器装置,其将从所述主机处理器接收的数据重新引导到选定NAND存储器装置。
8.一种用以与存储系统中的NAND存储器介接的控制器,其包括:
协议接口电路,其用以与主机处理器交换信号;
ECC引擎,其用以实施ECC算法;及
NAND接口,其用以管理所述NAND存储器,其中由所述主机处理器发出的NAND存储器不支持的命令在所述控制器中被仿真。
9.根据权利要求8所述的控制器,其中所述控制器为从主机NAND接口到所述NAND存储器的桥接器,其给所述主机处理器选择ECC算法以用于所述存储系统中所提供的所述NAND存储器。
10.根据权利要求8所述的控制器,其中所述控制器管理来自所述主机处理器的与所述NAND存储器的页大小不同的页大小。
11.根据权利要求8所述的控制器,其中所述控制器将单个NAND接口呈现给所述主机处理器,所述单个NAND接口去除归因于可用地址输入循环的对所述NAND存储器中的可用快闪数目的限制。
12.根据权利要求8所述的控制器,其中所述控制器包含协议接口电路,所述协议接口电路具有缓冲器以将数据传送到所述主机处理器,所述缓冲器具有读取第二数据页的缓冲能力以使顺序读取操作中的ECC算法执行并行化。
13.根据权利要求12所述的控制器,其中所述协议接口电路管理去往所述主机处理器的NAND就绪/忙信号以计及ECC算法等待时间。
14.一种管理不在内部实施ECC算法的NAND存储器装置堆栈的方法,其包括:
使用控制器装置的协议接口块来与主机处理器交换信号,所述协议接口块允许所述主机处理器与大的无错误地址空间通信;
由嵌入于所述控制器装置中的ECC引擎块实施ECC算法;及
由嵌入于所述控制器装置中的NAND协议块重新加工从所述主机处理器接收的命令及地址两者以管理到所述NAND存储器装置堆栈的数据传送。
15.根据权利要求14所述的方法,其进一步包含:
由所述协议接口块解释从所述主机处理器接收的命令以引导对来自所述主机处理器的数据的存储。
16.根据权利要求14所述的方法,其进一步包含:
加载所述协议接口块中的缓冲器,所述缓冲器具有读取第二数据页的缓冲能力以使顺序读取操作中的ECC算法执行并行化。
17.一种包含多个NAND存储器装置的无线通信系统,其包括:
收发器;
处理器,其具有第一及第二处理器核心,其中所述处理器耦合到所述收发器;及
ECC控制器,其具有:嵌入式NAND接口块,其用以接收命令及地址且与所述处理器交换信号;ECC引擎,其用以实施ECC算法;及NAND接口电路,其用以重新加工从主机处理器接收的命令及地址两者以引导与所述多个NAND存储器装置的数据传送。
18.根据权利要求17所述的无线通信系统,其中所述ECC控制器进一步包含协议接口电路,所述协议接口电路具有缓冲器以减小因所述ECC算法的计算而引入的等待时间。
19.根据权利要求17所述的无线通信系统,其中所述ECC控制器允许所述处理器将所述多个NAND存储器装置作为单个NAND芯片来驱动,同时所述ECC控制器将从所述处理器接收的数据重新引导到选定NAND存储器装置。
20.根据权利要求17所述的无线通信系统,其中所述ECC控制器允许所述处理器管理与所述多个NAND存储器装置的页大小不同的页大小。
CN200880131514.3A 2008-10-09 2008-10-09 经虚拟化错误校正码nand Active CN102272730B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2008/002658 WO2010041093A1 (en) 2008-10-09 2008-10-09 Virtualized ecc nand

Publications (2)

Publication Number Publication Date
CN102272730A true CN102272730A (zh) 2011-12-07
CN102272730B CN102272730B (zh) 2017-05-24

Family

ID=41092022

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880131514.3A Active CN102272730B (zh) 2008-10-09 2008-10-09 经虚拟化错误校正码nand

Country Status (5)

Country Link
US (4) US8806293B2 (zh)
JP (1) JP5650116B2 (zh)
CN (1) CN102272730B (zh)
DE (1) DE112008004033T5 (zh)
WO (1) WO2010041093A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103811076A (zh) * 2012-11-01 2014-05-21 三星电子株式会社 存储模块、具有其的存储系统及其读写方法
CN109783411A (zh) * 2018-12-20 2019-05-21 成都旋极历通信息技术有限公司 一种基于fpga的flash阵列控制方法及控制器
TWI791891B (zh) * 2018-12-14 2023-02-11 南韓商三星電子股份有限公司 用於錯誤修正代碼的加速的裝置及系統

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291295B2 (en) 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
JP5650116B2 (ja) 2008-10-09 2015-01-07 マイクロン テクノロジー, インク. 仮想化ecc−nand
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
US20110041005A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System
US8413015B2 (en) * 2009-09-21 2013-04-02 Sandisk Technologies Inc. Nonvolatile memory controller with scalable pipelined error correction
KR20110105257A (ko) * 2010-03-18 2011-09-26 삼성전자주식회사 적층 구조를 갖는 반도체 메모리 장치 및 에러 정정 방법
US9600410B1 (en) * 2010-07-09 2017-03-21 Crossbar, Inc. ReRAM based NAND like architecture with configurable page size
KR20130028349A (ko) * 2011-09-09 2013-03-19 삼성전자주식회사 메모리 장치, 메모리 시스템 및 그 데이터 저장 방법
US9223649B2 (en) * 2012-02-15 2015-12-29 Sandisk Technologies Inc. System and method of sending correction data to a buffer of a non-volatile memory
US9146856B2 (en) 2012-04-10 2015-09-29 Micron Technology, Inc. Remapping and compacting in a memory device
US20130304970A1 (en) * 2012-04-20 2013-11-14 Stec, Inc. Systems and methods for providing high performance redundant array of independent disks in a solid-state device
KR101961318B1 (ko) 2012-09-07 2019-07-17 삼성전자주식회사 중앙처리장치에서의 점유시간을 최소화하는 방어코드 운영 방법 및 그에 따른 메모리 시스템
CN102929655A (zh) * 2012-09-26 2013-02-13 瑞斯康达科技发展股份有限公司 向闪存芯片中烧写数据文件的方法、预处理方法及装置
US9354973B2 (en) * 2013-03-13 2016-05-31 Intel Corporation Data integrity management in memory systems
US9324450B2 (en) * 2013-03-13 2016-04-26 Winbond Electronics Corporation NAND flash memory
US9152584B2 (en) * 2013-10-29 2015-10-06 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Providing bus resiliency in a hybrid memory system
KR20150091918A (ko) * 2014-02-04 2015-08-12 삼성전자주식회사 저장 장치 및 그것의 동작 방법
US9471428B2 (en) 2014-05-06 2016-10-18 International Business Machines Corporation Using spare capacity in solid state drives
US9652321B2 (en) * 2014-09-23 2017-05-16 Intel Corporation Recovery algorithm in non-volatile memory
US9880748B2 (en) * 2015-02-13 2018-01-30 Qualcomm Incorporated Bifurcated memory management for memory elements
US9830093B2 (en) 2015-03-27 2017-11-28 Intel Corporation Method and apparatus for improving immunity to defects in a non-volatile memory
KR102480016B1 (ko) 2015-08-18 2022-12-21 삼성전자 주식회사 다수의 맵핑 단위를 이용하는 불휘발성 메모리 시스템 및 그 동작방법
DE102016123247B4 (de) * 2015-12-01 2024-03-21 Nvidia Corporation Systeme und verfahren zur speicherverwaltung
CN105512054B (zh) 2015-12-09 2018-11-09 上海兆芯集成电路有限公司 主机接口控制器以及储存装置控制方法
US9940186B2 (en) * 2015-12-22 2018-04-10 Nxp Usa, Inc. Memory controller and method of operating a memory controller
US10096366B2 (en) 2016-01-28 2018-10-09 Toshiba Memory Corporation Memory system including multi-plane flash memory and controller
US10089025B1 (en) 2016-06-29 2018-10-02 EMC IP Holding Company LLC Bloom filters in a flash memory
US10331561B1 (en) 2016-06-29 2019-06-25 Emc Corporation Systems and methods for rebuilding a cache index
US10146438B1 (en) 2016-06-29 2018-12-04 EMC IP Holding Company LLC Additive library for data structures in a flash memory
US10055351B1 (en) 2016-06-29 2018-08-21 EMC IP Holding Company LLC Low-overhead index for a flash cache
US10037164B1 (en) * 2016-06-29 2018-07-31 EMC IP Holding Company LLC Flash interface for processing datasets
US10381327B2 (en) 2016-10-06 2019-08-13 Sandisk Technologies Llc Non-volatile memory system with wide I/O memory die
US10866912B2 (en) 2017-03-10 2020-12-15 Toshiba Memory Corporation Integrated heterogeneous solid state storage drive
US10845866B2 (en) * 2017-06-22 2020-11-24 Micron Technology, Inc. Non-volatile memory system or sub-system
US11016965B2 (en) 2019-01-22 2021-05-25 International Business Machines Corporation Graphical user interface for defining atomic query for querying knowledge graph databases
US10937512B2 (en) 2019-01-22 2021-03-02 International Business Machines Corporation Managing programming errors in NAND flash memory
US11392509B2 (en) * 2020-08-18 2022-07-19 PetaIO Inc. Command memory buffer systems and methods
US11625173B1 (en) * 2020-09-09 2023-04-11 Marvell Asia Pte Ltd Reduced power consumption by SSD using host memory buffer

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5918242A (en) * 1994-03-14 1999-06-29 International Business Machines Corporation General-purpose customizable memory controller
US20030156454A1 (en) * 2002-02-21 2003-08-21 Jian Wei Direct memory swapping between NAND flash and SRAM with error correction coding
US20080046630A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8004A (en) * 1851-03-25 Francis b
US3015A (en) * 1843-03-21 Improvement in gilding, silvering
US5887145A (en) * 1993-09-01 1999-03-23 Sandisk Corporation Removable mother/daughter peripheral card
US7457897B1 (en) * 2004-03-17 2008-11-25 Suoer Talent Electronics, Inc. PCI express-compatible controller and interface for flash memory
US7702831B2 (en) * 2000-01-06 2010-04-20 Super Talent Electronics, Inc. Flash memory controller for electronic data flash card
US7483329B2 (en) * 2000-01-06 2009-01-27 Super Talent Electronics, Inc. Flash card and controller with integrated voltage converter for attachment to a bus that can operate at either of two power-supply voltages
US8108590B2 (en) * 2000-01-06 2012-01-31 Super Talent Electronics, Inc. Multi-operation write aggregator using a page buffer and a scratch flash block in each of multiple channels of a large array of flash memory to reduce block wear
JP2002032990A (ja) * 2000-07-17 2002-01-31 Mitsubishi Electric Corp 半導体記憶装置
JP4220690B2 (ja) 2001-07-05 2009-02-04 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP2003242470A (ja) 2002-02-21 2003-08-29 Sony Corp 外部接続機器及びホスト機器
US7433712B2 (en) * 2003-02-06 2008-10-07 Modu Ltd. Multi-access solid state memory devices and a telephone utilizing such
JP2004318940A (ja) * 2003-04-14 2004-11-11 Renesas Technology Corp 記憶装置
US7424659B2 (en) * 2003-10-31 2008-09-09 Sandisk Il Ltd. System-in-package and method of testing thereof
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US8180931B2 (en) * 2004-01-20 2012-05-15 Super Talent Electronics, Inc. USB-attached-SCSI flash-memory system with additional command, status, and control pipes to a smart-storage switch
US7350044B2 (en) * 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
US7127549B2 (en) * 2004-02-04 2006-10-24 Sandisk Corporation Disk acceleration using first and second storage devices
US7136973B2 (en) * 2004-02-04 2006-11-14 Sandisk Corporation Dual media storage device
KR100574989B1 (ko) * 2004-11-04 2006-05-02 삼성전자주식회사 데이터 스트로브 버스라인의 효율을 향상시키는메모리장치 및 이를 구비하는 메모리 시스템, 및 데이터스트로브 신호 제어방법
US8041844B2 (en) * 2004-12-29 2011-10-18 Intel Corporation Autodetection of a PCI express device operating at a wireless RF mitigation frequency
KR20080007430A (ko) * 2005-02-11 2008-01-21 샌디스크 아이엘 엘티디 Nand 플래시 메모리 시스템 체계
TW200712863A (en) 2005-09-23 2007-04-01 Via Tech Inc Method of detecting data error code
US8291295B2 (en) * 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7631245B2 (en) 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US20070165457A1 (en) 2005-09-30 2007-07-19 Jin-Ki Kim Nonvolatile memory system
TWI285378B (en) 2005-11-18 2007-08-11 Winbond Electronics Corp System and method for controlling flash memory
JP2007161748A (ja) 2005-12-09 2007-06-28 Kagawa Univ 蛍光体微粒子とその製造方法及びそれらを用いた蛍光体被膜
JP4710753B2 (ja) 2006-08-04 2011-06-29 Tdk株式会社 メモリコントローラ及びメモリコントローラを用いたフラッシュメモリシステム、並びにフラッシュメモリの制御方法
EP1912121B1 (en) 2006-09-13 2009-08-12 STMicroelectronics S.r.l. NAND flash memory device with ECC protected reserved area for non volatile storage of redundancy data
JP2008090433A (ja) 2006-09-29 2008-04-17 Toshiba Corp メモリコントローラ、メモリシステム及びデータ転送方法
JP4582078B2 (ja) * 2006-10-18 2010-11-17 Tdk株式会社 メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8151163B2 (en) * 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
KR100845529B1 (ko) 2007-01-03 2008-07-10 삼성전자주식회사 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템
TWI335502B (en) 2007-03-28 2011-01-01 Phison Electronics Corp Flash memory system and method for controlling the same
JP2009003994A (ja) * 2007-06-19 2009-01-08 Toshiba Corp 半導体記憶装置
KR100885923B1 (ko) * 2007-06-19 2009-02-26 삼성전자주식회사 복수의 동작 특성에 따라 동작할 수 있는 반도체 메모리장치 및 그 제어 방법
US8131912B2 (en) * 2007-09-27 2012-03-06 Kabushiki Kaisha Toshiba Memory system
JP5650116B2 (ja) 2008-10-09 2015-01-07 マイクロン テクノロジー, インク. 仮想化ecc−nand
KR101527193B1 (ko) * 2008-12-10 2015-06-08 삼성전자주식회사 반도체 소자 및 그의 셀 블록 배치 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5918242A (en) * 1994-03-14 1999-06-29 International Business Machines Corporation General-purpose customizable memory controller
US20030156454A1 (en) * 2002-02-21 2003-08-21 Jian Wei Direct memory swapping between NAND flash and SRAM with error correction coding
US20080046630A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103811076A (zh) * 2012-11-01 2014-05-21 三星电子株式会社 存储模块、具有其的存储系统及其读写方法
CN103811076B (zh) * 2012-11-01 2018-10-19 三星电子株式会社 存储模块、具有其的存储系统及其读写方法
TWI791891B (zh) * 2018-12-14 2023-02-11 南韓商三星電子股份有限公司 用於錯誤修正代碼的加速的裝置及系統
US11726876B2 (en) 2018-12-14 2023-08-15 Samsung Electronics Co., Ltd. FPGA acceleration system for MSR codes
CN109783411A (zh) * 2018-12-20 2019-05-21 成都旋极历通信息技术有限公司 一种基于fpga的flash阵列控制方法及控制器
CN109783411B (zh) * 2018-12-20 2022-05-17 成都旋极历通信息技术有限公司 一种基于fpga的flash阵列控制方法及控制器

Also Published As

Publication number Publication date
US20110307762A1 (en) 2011-12-15
US9971536B2 (en) 2018-05-15
DE112008004033T5 (de) 2012-01-19
US20140351675A1 (en) 2014-11-27
JP5650116B2 (ja) 2015-01-07
WO2010041093A8 (en) 2011-05-26
US20160098223A1 (en) 2016-04-07
US20170160973A1 (en) 2017-06-08
US8806293B2 (en) 2014-08-12
WO2010041093A1 (en) 2010-04-15
US9213603B2 (en) 2015-12-15
CN102272730B (zh) 2017-05-24
US9569129B2 (en) 2017-02-14
JP2012505458A (ja) 2012-03-01

Similar Documents

Publication Publication Date Title
CN102272730A (zh) 经虚拟化错误校正码nand
US9003262B2 (en) Memory controller, devices including the same, and operating method thereof
US9268687B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US10664167B2 (en) Data transmitting method, memory storage device and memory control circuit unit
KR20150041004A (ko) 비-휘발성 메모리에 대한 혼합된 입도 상위-레벨 리던던시
US10062418B2 (en) Data programming method and memory storage device
KR20140040998A (ko) 로그기반 데이터 저장 시스템의 관리방법
CN107544922B (zh) 数据写入方法、存储器控制电路单元及存储器存储装置
US9304907B2 (en) Data management method, memory control circuit unit and memory storage apparatus
US20170242597A1 (en) Wear leveling method, memory control circuit unit and memory storage device
US9430327B2 (en) Data access method, memory control circuit unit and memory storage apparatus
US20180129414A1 (en) Memory management method, memory control circuit unit and memory storage device
CN106843744B (zh) 数据程序化方法与存储器储存装置
US20190026227A1 (en) Data writing method, memory control circuit unit and memory storage device
CN101872318B (zh) 用于快闪记忆体的资料存取方法及其储存系统与控制器
KR20210026832A (ko) 메모리 시스템의 입출력 성능을 향상시키는 장치 및 방법
CN113504880B (zh) 存储器缓冲区管理方法、存储器控制电路单元与存储装置
US9946491B2 (en) Memory erase method, memory control circuit unit and memory storage apparatus, including an erase index table and mother-child physical erasing units
CN107239224B (zh) 数据保护方法、存储器控制电路单元与存储器存储装置
CN114333930B (zh) 多通道存储器存储装置、控制电路单元及其数据读取方法
CN113434331B (zh) 跨框编码管理方法、存储器存储装置及存储器控制电路
US11144244B2 (en) Command transmitting method with temporary storing commands by memory interfaces for rewritable non-volatile memory modules, memory control circuit unit and memory storage device
US11126366B2 (en) Data erasing method, memory control circuit unit and memory storage device
CN112216329B (zh) 数据抹除方法、存储器控制电路单元及存储器存储装置
US20220413960A1 (en) Crossing frames encoding management method, memory storage apparatus and memory control circuit unit

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant