CN102272730A - 经虚拟化错误校正码nand - Google Patents
经虚拟化错误校正码nand Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- 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
-
- 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/1044—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 with specific ECC/EDC distribution
-
- 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/1068—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 in sector programmable memories, e.g. flash disk
-
- 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/1072—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 in multilevel memories
-
- 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
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
-
- 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)
- 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
背景技术
当今的通信装置继续变得更加复杂及多样以提供增加的功能性。这些装置支持需要较高容量存储器(明确地说通过多芯片封装设计提供)的多媒体。通信链路、总线、芯片到芯片互连件及存储媒体可在高等级的内在信号/存储故障的情况下操作。预期这些通信装置并入有错误检测及校正机制。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存储器装置的页大小不同的页大小。
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)
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)
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)
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)
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 | 삼성전자주식회사 | 반도체 소자 및 그의 셀 블록 배치 방법 |
-
2008
- 2008-10-09 JP JP2011530580A patent/JP5650116B2/ja active Active
- 2008-10-09 CN CN200880131514.3A patent/CN102272730B/zh active Active
- 2008-10-09 DE DE112008004033T patent/DE112008004033T5/de not_active Ceased
- 2008-10-09 US US13/122,909 patent/US8806293B2/en active Active
- 2008-10-09 WO PCT/IB2008/002658 patent/WO2010041093A1/en active Application Filing
-
2014
- 2014-08-11 US US14/456,559 patent/US9213603B2/en active Active
-
2015
- 2015-12-14 US US14/967,934 patent/US9569129B2/en active Active
-
2017
- 2017-02-13 US US15/431,457 patent/US9971536B2/en active Active
Patent Citations (3)
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)
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 |