CN102317919A - 在存储器控制器中的数据完整性及方法 - Google Patents

在存储器控制器中的数据完整性及方法 Download PDF

Info

Publication number
CN102317919A
CN102317919A CN201080008211XA CN201080008211A CN102317919A CN 102317919 A CN102317919 A CN 102317919A CN 201080008211X A CN201080008211X A CN 201080008211XA CN 201080008211 A CN201080008211 A CN 201080008211A CN 102317919 A CN102317919 A CN 102317919A
Authority
CN
China
Prior art keywords
data
error
error detection
memory
detect circuit
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
CN201080008211XA
Other languages
English (en)
Other versions
CN102317919B (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 CN102317919A publication Critical patent/CN102317919A/zh
Application granted granted Critical
Publication of CN102317919B publication Critical patent/CN102317919B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Probability & Statistics with Applications (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明包含用于存储器控制器中的数据完整性的方法、装置及系统。一个存储器控制器实施例包含主机接口及耦合到所述主机接口的第一错误检测电路。所述存储器控制器可包含存储器接口及耦合到所述存储器接口的第二错误检测电路。所述第一错误检测电路可经配置以计算从所述主机接口接收的数据的错误检测数据并校验传输到所述主机接口的数据的完整性。所述第二错误检测电路可经配置以计算传输到所述存储器接口的数据及第一错误校正数据的错误校正数据并校验从所述存储器接口接收的数据及第一错误校正数据的完整性。

Description

在存储器控制器中的数据完整性及方法
技术领域
本发明一般来说涉及半导体存储器装置、方法及系统,且更特定来说涉及数据完整性。
背景技术
通常将存储器装置作为内部半导体集成电路提供于计算机或其它电子装置中。存在包含易失性及非易失性存储器的许多不同类型的存储器。易失性存储器可需要电力来维持其数据且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)以及其它存储器。非易失性存储器可通过在不被供电时保持所存储的信息而提供持续数据且可包含NAND快闪存储器、NOR快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)及相变随机存取存储器(PCRAM)以及其它存储器。
存储器装置可组合在一起以形成固态驱动器(SSD)。SSD可包含非易失性存储器(例如,NAND快闪存储器及NOR快闪存储器)及/或可包含易失性存储器(例如,DRAM及SRAM)以及各种其它类型的非易失性及易失性存储器。
可使用SSD来替换硬盘驱动器作为计算机的主要存储装置,因为所述SSD可在性能、大小、重量、耐用性、操作温度范围及电力消耗方面具有优于硬驱动器的优点。举例来说,SSD在与磁盘驱动器相比时因其缺乏移动部件而可具有优越性能,此缺乏移动部件可避免与磁盘驱动器相关联的寻觅时间、等待时间及其它机电延迟。SSD制造商可使用非易失性快闪存储器来形成可不使用内部电池供应的快闪SSD,因此允许驱动器更通用且更紧凑。
SSD可包含一个或一个以上存储器装置,例如,一个或一个以上存储器芯片。如所属领域的技术人员将了解,存储器芯片可包含一个或一个以上裸片。每一裸片可包含位于其上的一个或一个以上存储器阵列及外围电路。存储器阵列可包含一个或一个以上平面,其中每一平面包含一个或一个以上存储器单元物理块。每一物理块可包含可存储一个或一个以上数据扇区的一个或一个以上存储器单元页。
SSD可与具有串行接口(例如,通用串行总线(USB)、串行先进技术附接(SATA)或高速外围组件互连(PCIe)以及其它串行接口)的主机系统介接。例如USB、SATA及PCIe等串行接口可具有构建到相应接口的架构的链路层或输送层中的错误检测机制(例如,循环冗余校验(CRC))。CRC可包含在数据从传输器到接收器的传输期间检测由噪声或其它减损引起的错误的存在的能力。CRC数据产生可基于特定接口所支持的帧结构。
举例来说,SATA帧结构可包含帧开始(SOF),接着是帧信息结构(FIS),接着是CRC数据,且接着是帧结束(EOF)。SATA可使用在FIS的内容上计算的CRC数据的32个位。用于CRC数据的计算中的32位CRC多项式的实例为:X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1。在FIS含有奇数个字(例如,16个位段)的情况下,给FIS的最后一个字填补零以形成全双字(dword),例如32个位。SATA帧可包含2064个双字,所述2064个双字包含FIS及CRC数据,其中FIS有效负载可包含2048个双字(8192个字节)。然而,所述有效负载可包含更少数据。
如所属领域的技术人员将了解,逻辑块寻址为可由主机用来识别信息扇区的方案,例如,每一扇区可对应于唯一逻辑块地址(LBA)。扇区可为存储体积的最小可寻址部分。作为实例,数据扇区可为若干个数据字节,例如,512个字节。由于串行主机接口(例如,SATA接口)处的每一有效负载未必包含相同数目个字节,且由于大容量存储装置的串行主机接口处的有效负载可属于不同单元,因此CRC数据可不传播经过所述主机接口,例如,所述主机接口的链路或输送层。
附图说明
图1是包含根据本发明的一个或一个以上实施例的存储器系统的计算系统的功能框图。
图2是包含根据本发明的一个或一个以上实施例的存储器控制器的系统的功能框图。
图3是包含根据本发明的一个或一个以上实施例的存储器控制器的系统的功能框图。
图4是包含根据本发明的一个或一个以上实施例的存储器控制器的系统的功能框图。
具体实施方式
本发明包含用于存储器控制器中的数据完整性的方法、装置及系统。一个存储器控制器实施例包含主机接口及耦合到所述主机接口的第一错误检测电路。所述存储器控制器可包含存储器接口及耦合到所述存储器接口的第二错误检测电路。所述第一错误检测电路可经配置以计算从所述主机接口接收的数据的错误检测数据并校验传输到所述主机接口的数据的完整性。所述第二错误检测电路可经配置以计算传输到所述存储器接口的数据及第一错误校正数据的错误校正数据并校验从所述存储器接口接收的数据及第一错误校正数据的完整性。
在本发明的以下详细说明中,参考形成本发明的一部分的所附图式,且图式中以图解说明的方式展示可如何实践本发明的一个或一个以上实施例。充分详细地描述这些实施例以使所属领域的技术人员能够实践本发明的所述实施例,且应理解,可利用其它实施例且可在不背离本发明的范围的情况下作出过程、电及/或结构改变。如本文中所使用,标号“N”(特定来说关于图式中的参考编号)指示本发明的一个或一个以上实施例可包含如此标示的若干个特定特征。所述标号可表示相同数目或不同数目个特定特征。
本文中的图遵循以下编号惯例:其中第一个数位或前几个数位对应于绘图编号且剩余数位识别图式中的元件或组件。不同图之间的类似元件或组件可通过使用类似数位来识别。举例来说,110可指代图1中的元件“10”,且可将图2中的类似元件指代为210。如将了解,可添加、更换及/或消除本文中各种实施例中所展示的元件以便提供本发明的若干个额外实施例。另外,如将了解,图中所提供的元件的比例及相对比例尺打算图解说明本发明的实施例且不应视为限定意义。
图1是根据包含本发明的一个或一个以上实施例的存储器系统120的计算系统100的功能框图。在图1中所图解说明的实施例中,存储器系统120(例如,固态驱动器(SSD))可包含存储器控制器101、物理接口103及一个或一个以上固态存储器装置130-1、...、130-N(例如,NAND快闪装置)。如图1中所图解说明,存储器控制器101可耦合到物理接口103且耦合到固态存储器装置130-1、...、130-N。
物理接口103可用于在存储器系统120与另一装置(例如主机系统102)之间传递信息。主机系统102可包含存储器存取装置,例如处理器。所属领域的技术人员将了解,“处理器”可意指一个或一个以上处理器,例如,平行处理系统、若干个协处理器等。主机系统的实例包含膝上型计算机、个人计算机、数码相机、数字记录与回放装置、移动电话、PDA、存储器卡读卡器、接口集线器等。对于一个或一个以上实施例,物理接口103可呈标准化物理接口的形式。举例来说,当存储器系统120在计算系统100中用于数据存储时,物理接口103可为串行先进技术附接(SATA)、高速外围组件互连(PCIe)或通用串行总线(USB)以及其它物理接口。然而,一般来说,物理接口103可提供物理连接以用于在存储器系统120的控制器101的主机接口(例如图2中的主机接口210)与具有用于物理接口103的兼容接纳器的主机系统102之间传递控制、地址、数据及其它信号。
存储器控制器101可与固态存储器装置130-1、...、130-N通信以读取、写入及擦除数据,以及进行其它操作。存储器控制器101可具有可为一个或一个以上集成电路及/或离散组件的电路。对于一个或一个以上实施例,存储器控制器101中的电路可包含用于控制跨越固态存储器装置130-1、...、130-N的存取的控制电路及用于在主机系统102与存储器系统120之间提供翻译层的电路。因此,存储器控制器可选择性地耦合固态存储器装置130-1、...、130-N的I/O连接(图1中未展示)以在适当时间于适当I/O连接处接收适当信号。类似地,主机系统102与存储器系统120之间的通信协议可不同于存取固态存储器装置130-1、...、130-N所需的通信协议。接着,存储器控制器101可将从主机接收的命令翻译成适当命令以实现对固态存储器装置130-1、...、130-N的所要存取。
图1的实施例可包含额外电路,为不使本发明的实施例模糊未图解说明所述额外电路。举例来说,存储器系统120可包含用以锁存经由I/O电路在I/O连接上提供的地址信号的地址电路。地址信号可由行解码器及列解码器接收并解码以存取固态存储器装置130-1、...、130-N。所属领域的技术人员将了解,地址输入连接的数目可取决于固态存储器装置130-1、...、130-N的密度及架构。
图2是包含根据本发明的一个或一个以上实施例的存储器控制器201的系统200的功能框图。控制器201可类似于图1中所图解说明的控制器101。在一个或一个以上实施例中,控制器201可为存储器系统(例如SSD)的组件。所属领域的技术人员将了解,除图2中所图解说明的那些电路及组件以外还可提供额外电路及组件,且已减少图2的控制器细节以便易于图解说明。
如图2中所展示,存储器控制器201可耦合到一个或一个以上固态存储器装置230。固态存储器装置230可类似于图1中所图解说明的固态存储器装置130-1、...、130-N。控制器201可包含前端部分204及后端部分206。所述存储器控制器可包含耦合于主机接口210与数据传送电路(例如,直接存储器存取(DAM)模块214)之间的若干个前端组件。所述存储器控制器还可包含耦合于DMA模块214与存储器接口(例如,错误检测电路/存储器接口(I/F)222的存储器接口组件)之间的若干个后端组件。在一个或一个以上实施例中,错误检测电路/存储器I/F 222的错误检测电路组件可为错误校正码
(ECC)引擎。一般来说,存储器控制器201可借助前端204来处理从主机系统202(例如,图1中的主机系统102)接收或传送到所述主机系统202的命令及数据。一般来说,存储器控制器201可借助后端206来管理与固态存储器装置230的通信以在固态存储器装置230上读取、写入及擦除数据以及进行其它操作。然而,控制器201可在前端204及后端206中的任一者或两者上处置命令处理及存储器通信管理的某些方面。如图2中所图解说明,主机接口210及DMA模块214可为前端组件。
如图2中所展示,前端部分204可包含主机接口210,其可耦合到主机系统202,例如,图1中的主机系统102。主机接口210可经配置以从所述主机系统接收数据。从所述主机接口接收的数据可为包含若干个数据扇区的数据有效负载。在一个或一个以上实施例中,从所述主机接口接收的数据可为流式数据。主机接口210可经由包含物理层205、链路层207及输送层209的若干个层与主机系统202介接。所属领域的技术人员将了解,可通过接口标准(例如,SATA、PCIe、USB等)来界定用于特定主机接口的所述若干个层。如本文中所使用,输送层可指示作为SATA标准的部分的至少一输送层或作为PCIe标准的部分的事务层。所属领域的技术人员将了解,根据SATA标准的输送层可类似于根据PCIe标准的事务层。主机接口210可耦合到存储器系统(例如,SSD)上的物理接口(例如,图1中所图解说明的物理接口103)以与主机系统202通信。为便于图解说明,未在图2中展示此细节。
主机接口210可与DMA模块214及前端错误检测电路(例如,循环冗余校验(CRC)引擎212)耦合。虽然图解说明为“CRC引擎”212,但错误检测电路可提供除循环冗余校验以外的功能。举例来说,错误检测电路可包含重复方案、奇偶方案、校验和、基于汉明距离的校验、散列函数、水平及垂直冗余校验、极性方案及/或错误校正方案(例如ECC)以及其它方案。在一个或一个以上实施例中,主机接口210可与前端CRC引擎212直接耦合且可与DAM模块214直接耦合。
在一个或一个以上实施例中,前端CRC引擎212可通过链路层207及/或输送层209耦合到主机接口210,且因此耦合到主机系统。前端错误检测电路(例如,CRC引擎212)可经配置以(例如)在数据位于存储器系统(例如图1中的存储器系统120)中时检测所述数据中的错误。举例来说,前端CRC引擎212可计算对应于从链路层207及/或输送层209接收(例如,作为写入操作的部分)的数据(例如,例如DMA有效负载等数据有效负载的扇区)的错误校正数据(例如,CRC数据)。在一个或一个以上实施例中,前端CRC引擎212可在逐扇区基础上计算CRC数据。在一个或一个以上实施例中,前端CRC引擎212可通过链路层207及/或输送层209耦合到主机接口210并从链路层207及/或输送层209接收若干个数据扇区(例如,DMA有效负载)。在一个或一个以上实施例中,前端CRC引擎212可仅从链路层207或仅从输送层209接收所述若干个数据扇区。然而,实施例如此受限制。可在输送层209处(针对PCIe类型接口)或在链路层207处(针对SATA类型接口)从传送到存储器控制器201的数据剥除可能已由主机系统202针对所述数据产生的CRC数据。然而,根据本发明的一个或一个以上实施例,前端CRC引擎212可计算从主机接口210接收的每数据扇区的CRC数据并校验所述CRC数据,前端CRC引擎212可耦合到主机接口210。
DMA模块214可耦合到后端数据缓冲器218及后端错误检测存储器(例如,CRC存储器216)。后端数据缓冲器218可耦合到ECC引擎/存储器I/F 222。后端数据缓冲器218可经配置以缓冲在写入操作期间从DMA模块214为ECC引擎/存储器I/F 222接收的DMA有效负载的至少一部分(例如,若干个数据扇区)。后端数据缓冲器218可经配置以缓冲在读取操作期间从ECC引擎/存储器I/F 222接收的若干个数据扇区。后端数据缓冲器218及后端CRC存储器216可耦合到错误检测电路(例如,ECC引擎及存储器接口)。在一个或一个以上实施例中,且如图2的实施例中所图解说明,所述ECC引擎与存储器接口可耦合在一起作为一个组件(例如,“ECC引擎/存储器I/F”222)。本文中对ECC引擎/存储器I/F的共同提及并不排除具有作为单独组件的错误检测电路及存储器接口的实施例。同样,本文中对任一组件的个别提及并不排除其中包含错误检测电路与存储器接口作为一个组件的实施例。
后端CRC存储器216可经配置以存储由前端CRC引擎212计算的CRC数据。后端CRC存储器216可耦合到ECC引擎/存储器I/F 222且经配置以从ECC引擎/存储器I/F 222的存储器接口部分接收并存储数据,例如,先前已存储于固态存储器装置230中的CRC数据。后端数据缓冲器218可经配置以跨越DMA模块214将从ECC引擎/存储器I/F 222接收的若干个数据扇区传送到前端CRC引擎212。前端CRC引擎212可耦合到ECC引擎/存储器I/F 222的错误检测电路部分,例如,经由DMA模块214。后端CRC存储器216可经配置以跨越DMA模块214将对应于从ECC引擎/存储器I/F 222接收的所述若干个数据扇区的CRC数据传送到前端CRC引擎212。在此例项中,前端CRC引擎212可经配置以计算从DMA模块214接收的(例如,每一)数据扇区的CRC数据。接着,所述前端CRC引擎可将从DMA模块214接收的数据扇区的所计算CRC数据与经由DMA模块214从后端CRC存储器216接收的CRC数据进行比较,例如,以在跨越主机接口210将从DMA模块214接收的数据扇区传送到主机系统之前检验所述数据扇区的完整性。可在标题为“存储器控制器(Memory Controller)”的具有至少一个共同发明人且具有代理档案号1002.0390001的共同受让的第________号美国专利申请案中找到关于DMA模块的操作的额外细节。
ECC引擎/存储器I/F 222可耦合到固态存储器装置230。在一个或一个以上实施例中,ECC引擎/存储器I/F 222可经配置以将CRC数据(例如,从后端CRC存储器216接收的CRC数据)附加到对应数据扇区。ECC引擎/存储器I/F 222的ECC引擎部分可经配置以检测(例如)数据扇区中的数据中的错误。在一个或一个以上实施例中,ECC引擎/存储器I/F 222的ECC引擎部分可经配置以在数据位于存储器系统(例如图1中的存储器系统120)中时检测及/或校正所述数据中的错误。举例来说,ECC引擎/存储器I/F 222的ECC引擎部分可计算仅数据及/或数据与所附加错误检测(例如,CRC)数据的错误校正数据(例如,ECC数据)。在一个或一个以上实施例中,ECC引擎/存储器I/F 222的ECC引擎部分可经配置以在逐扇区基础上计算ECC数据。ECC引擎/存储器I/F 222可经配置以将ECC数据附加到对应数据扇区。在一个或一个以上实施例中,ECC引擎/存储器I/F 222的ECC引擎部分可经配置以计算对应数据扇区连同所附加CRC数据(例如,由前端CRC引擎212计算的CRC数据)的ECC数据。在读取操作期间,ECC引擎/存储器I/F 222的ECC引擎部分可经配置以在若干个数据扇区位于后端数据缓冲器218中时校正所述若干个数据扇区中的错误。ECC引擎/存储器I/F 222的ECC引擎部分可经配置以在CRC数据位于后端CRC存储器216中时校正所述CRC数据中的错误。实施例并不限于校正这些特定位置中的错误。
在一个或一个以上实施例中,存储器控制器201可经配置以针对写入操作跨越ECC引擎/存储器I/F 222将若干数据扇区、对应的所计算CRC数据及对应ECC数据或其不同组合传送(例如)到固态存储器装置230。也就是说,所述控制器可经配置以将数据扇区、对应CRC数据及对应ECC数据存储于固态存储器装置230中的位置中。
一个或一个以上实施例可包含(例如)结合写入操作借助主机接口210的链路层207及/或输送层209从主机系统202接收若干个数据扇区的控制器201。可经由主机接口210将所述若干个数据扇区传送到前端CRC引擎212及DMA模块214。在一个或一个以上实施例中,可利用前端CRC引擎212与DMA模块214并行接收所述若干个数据扇区。前端CRC引擎212可计算对应于所述若干个数据扇区中的每一者的CRC数据,例如,每一数据扇区可对应于唯一CRC数据。DMA模块214可将来自CRC引擎212的CRC数据传送到后端CRC存储器216。前端CRC引擎212可耦合到后端CRC存储器216,例如,经由DMA模块214。在一个或一个以上实施例中,后端CRC存储器216可存储所述CRC数据。后端CRC存储器216可存储一个以上唯一CRC数据,其中每一唯一CRC数据可对应于一特定数据扇区。DMA模块214可将所述若干个数据扇区传送到后端数据缓冲器218。ECC引擎/存储器I/F 222可传送来自后端数据缓冲器218的所述若干个数据扇区及来自后端CRC存储器216的对应CRC数据,计算所述若干个数据扇区及所述对应CRC数据中的每一者的唯一ECC数据,将ECC数据附加到对应数据扇区并将数据扇区、CRC数据及ECC数据存储于一个或一个以上固态存储器装置230中。
如上文所述,可按双字(32位)数量在帧信息结构(FIS)的内容上计算CRC数据,也有其它CRC计算方法。然而,从主机系统202接收的数据有效负载可包含数据有效负载的若干个扇区,例如,512个字节部分。根据一些先前方法,可计算所述数据有效负载整体而非所述数据有效负载中所包含的每一数据扇区的CRC数据。也就是说,即使CRC数据传播经过链路层207或输送层209,所述CRC数据也可不对特定数据扇区有用,此至少部分地由于数据可按不同于将其写入到存储器装置(例如,图1中的存储器装置130-1)及/或从所述存储器装置读取其所按的数量的数量传送到存储器系统(例如,图1中的存储器系统120)及/或从所述存储器系统传送。因此,针对有效负载使用与针对与读取及/或写入操作相关联的若干个数据扇区相同的CRC数据,即使对于相同数据,也可不提供所述若干个数据扇区的数据完整性。
相比之下,根据本发明的一个或一个以上实施例,在逐扇区基础上计算每一数据扇区的CRC数据,例如,可计算每一数据扇区的唯一CRC数据。举例来说,如果数据有效负载包括2048个字节,那么可计算四个512字节数据扇区中的每一者的CRC数据。可从控制器201在前端204处(例如,在主机接口210处)从主机系统202接收所述若干个扇区的点到其中将所述若干个扇区从后端206传送到固态存储器装置230的点提供所述若干个扇区的数据完整性。提供数据完整性可包含从主机接口210到ECC引擎/存储器I/F 222及/或到固态存储器装置230维持数据扇区的相同CRC数据。
在一个或一个以上实施例中,ECC引擎/存储器I/F 222可(例如)结合读取操作从一个或一个以上固态存储器装置230接收若干个数据扇区、其对应的第一CRC数据及ECC数据。ECC引擎/存储器I/F 222可将所述若干个数据扇区存储于后端数据缓冲器218中且将其对应CRC数据存储于后端CRC存储器216中。可借助ECC引擎/存储器I/F 222的ECC引擎部分对所述若干个数据扇区及其对应第一CRC数据以及ECC数据进行错误校验。可在所述CRC数据存储于后端CRC存储器216中时校正由ECC引擎/存储器I/F222的ECC引擎部分在所述CRC数据中识别的一个或一个以上错误。可在所述若干个数据扇区缓冲于后端数据缓冲器218中时校正由ECC引擎/存储器I/F 222的ECC引擎部分在所述若干个数据扇区中识别的一个或一个以上错误。在错误校正之后,DMA模块214可接收并将所述若干个数据扇区及其对应CRC数据传送到前端CRC引擎212。前端CRC引擎212可计算所述若干个所传送数据扇区的第二CRC数据且将所述第一CRC数据与所述对应第二CRC数据进行比较以检验所述若干个数据扇区的完整性。在将所述第一CRC数据与所述第二CRC数据进行比较之后,可跨越主机接口210的输送层209将所述若干个数据扇区传送(例如)到曾请求数据(例如,所述若干个所读取的数据扇区)的主机系统202。在一个或一个以上实施例中,可跨越主机接口210传送所述若干个数据扇区而不传送所述第一CRC数据或所述第二CRC数据。在一个或一个以上实施例中,ECC引擎/存储器I/F 222可从所述若干个数据扇区移除ECC数据且将所述若干个数据扇区与第一CRC数据并行传送到前端CRC引擎212。
根据本发明的一个或一个以上实施例,例如上文所描述的读取操作,可提供所述若干个数据扇区的数据完整性。也就是说,可从控制器201的后端206从固态存储器装置230接收所述若干个扇区(例如,在ECC引擎/存储器I/F 222处)的点到其中跨越主机接口210传送所述若干个扇区(例如,从前端204到主机系统202)的点提供所述若干个数据扇区的数据完整性。提供数据完整性可包含从固态存储器装置230到主机接口210维持相同CRC数据。
图3是包含根据本发明的一个或一个以上实施例的存储器控制器301的系统300的功能框图。控制器301可类似于图1中所图解说明的控制器101。在一个或一个以上实施例中,控制器301可为存储器系统(例如,SSD)的组件。所属领域的技术人员将了解,除图3中所图解说明的那些电路及组件以外还可提供额外电路及组件,且已减少图3的控制器细节以便易于图解说明。
图3中所图解说明的实施例包含可类似于图2中所图解说明的那些组件的组件,包含具有物理层305、链路层307及输送层309的主机接口310以及前端错误检测电路(例如,CRC引擎312)及数据传送电路(例如,DMA模块314)。然而,在一个或一个以上实施例中,主机接口310可经由前端主机缓冲器324(例如,如所展示的FIFO 324)及加密电路(例如,高级加密标准(AES)引擎326)耦合到所述DMA模块。虽然图解说明为“AES引擎”326,但本发明的一个或一个以上实施例可使用其它形式的加密。FIFO 324可经配置以缓冲主机接口310与AES引擎326之间的DMA有效负载。虽然在图3中未图解说明,但AES引擎326可包含或耦合到与FIFO 324分开的AES缓冲器。
如图3中所图解说明,AES引擎326可经配置以接收若干个数据扇区,例如数据有效负载(DMA有效负载),例如,从由控制器301接收的若干个数据包获得的数据串流。在加密之前,所述若干个数据扇区可为明文(P.T.)。AES引擎326可经布置及经配置以任选地处理所述若干个数据扇区以向DMA模块314提供经加密输出,例如,密文(C.T.)。在一个或一个以上实施例中,AES引擎326可任选地处理所述若干个数据扇区,此意指所述AES引擎可将所述若干个数据扇区从明文加密成密文,或AES引擎326可在不加密的情况下将所述若干个数据扇区传送到DMA模块314,例如,以明文形式。
在一个或一个以上实施例中,可利用前端CRC引擎312与前端主机缓冲器324(例如,如所展示的FIFO 324)并行接收经由主机接口310从主机系统接收的若干个数据扇区。可将所述若干个数据扇区从主机缓冲器324传送到AES引擎326,其中可将所述若干个数据扇区从明文加密成密文。在加密之后,可将所述若干个数据扇区从AES引擎326传送到DMA模块314以供进一步处理。加密引擎的操作的额外实例更详细地描述于标题为“并行加密/解密(Parallel Encryption/Decryption)”的具有至少一个共同发明人的共同受让的第12/333,822号美国专利申请案中。
DMA模块314将前端304电路有效地耦合到后端306电路。在一个或一个以上实施例中,控制器301的后端部分306可包含一个以上后端通道。在图3中所图解说明的实施例中,控制器301包含若干个后端通道319-1、...、319-N。每一后端通道319-1、...、319-N可包含通道处理器332-1、...、332-N及通道存储器334-1、...、334-N。后端通道处理器332-1、...、332-N及存储器334-1、...、334-N可耦合到DMA模块314且耦合到后端通道DMA模块328-1、...、328-N。每一后端通道319-1、...、319-N可包含后端通道数据传送电路(例如,通道DMA模块328-1、...、328-N),其可耦合到DMA模块314。DMA模块314可经配置以将与DMA有效负载相关联的命令引导到相应后端通道处理器(例如,后端通道处理器332-1)且将与DMA有效负载相关联的数据引导到相应后端通道DMA模块(例如,后端通道DMA模块328-1)。通道处理器的实例性操作更详细地描述于标题为“修改命令(Modifying Commands)”的具有至少一个共同发明人的共同受让的第12/351,206号美国专利申请案中。
控制器301的后端部分306可包含类似于图2中所图解说明的那些组件的组件。举例来说,每一后端通道319-1、...、319-N可包含后端数据缓冲器318-1、...、318-N、后端错误检测存储器(例如,CRC存储器316-1、...、316-N)及ECC引擎/存储器接口322-1、...、322-N。在一个或一个以上实施例中,且如图3的实施例中所图解说明,所述ECC引擎与存储器接口可耦合在一起作为一个组件,例如“ECC引擎/存储器I/F”322。在一个或一个以上实施例中,所述ECC引擎与存储器接口可为单独组件。如图3中所图解说明,后端数据缓冲器318-1、...、318-N可耦合于后端通道DMA模块328-1、...、328-N与ECC引擎/存储器接口322-1、...、322-N之间。此外,后端CRC存储器316-1、...、316-N可耦合于DMA模块314与ECC引擎/存储器接口322-1、...、322-N之间。如图3中所展示,特定存储器装置、芯片、阵列等可对应于特定通道。举例来说,固态存储器装置330-1可对应于通道319-1。
图4是包含根据本发明的一个或一个以上实施例的存储器控制器401的系统400的功能框图。控制器401可类似于图1中所图解说明的控制器101。在一个或一个以上实施例中,控制器401可为存储器系统(例如,SSD)的组件。所属领域的技术人员将了解,除图4中所图解说明的那些电路及组件以外还可提供额外电路及组件,且已减少图4的控制器401的细节以便易于图解说明。
图4中所图解说明的实施例包含可类似于图3中所图解说明的那些组件的组件,包含控制器401的前端404组件,例如包含物理层405、链路层407及输送层409的主机接口410以及前端错误检测电路(例如,CRC引擎412-F)及数据传送电路(例如,DMA模块414)。控制器401也包含可类似于图3中所图解说明的那些后端组件的若干个后端406组件,例如后端通道419-1、...、419-N,包含后端通道处理器432-1、...、432-N及存储器434-1、...、434-N、后端通道数据传送电路(例如,通道DMA模块428-1、...、428-N)、后端数据缓冲器418-1、...、418-N、错误检测电路(例如,ECC引擎/存储器接口422-1、...、422-N)及后端错误检测存储器(例如,CRC存储器416-1、...、416-N)。在一个或一个以上实施例中,且如图4中所图解说明,所述ECC引擎与存储器接口可耦合在一起作为一个组件,例如“ECC引擎/存储器I/F”422。在一个或一个以上实施例中,所述ECC引擎与存储器接口可为单独组件。如图4中所图解说明,每一通道419-1、...、419-N可通过ECC引擎/存储器接口422-1、...、422-N耦合到一个或一个以上固态存储器装置430-1、...、430-N。
然而,在一个或一个以上实施例中,后端通道419-1、...、419-N可包含后端错误检测电路,例如,耦合到后端CRC存储器416-1、...、416-N的后端CRC引擎412-B1、...、412-BN。后端CRC引擎412-B1、...、412-BN可经配置以计算对应数据(例如,对应数据扇区)的错误检测数据(例如,“第二”CRC数据)。在一个或一个以上实施例中,所述对应数据可为DMA有效负载的至少一部分。前端CRC引擎412-F可计算数据扇区的“第一”CRC数据。后端CRC引擎412-B1、...、412-BN可经配置以将所述第一CRC数据与所述第二CRC数据进行比较以校验及/或检验所述数据扇区的完整性。举例来说,DMA模块414可耦合到前端CRC引擎412-F且耦合到后端CRC存储器416-1、...、416-N。DMA模块414可经配置以将所述第一CRC数据传送到后端CRC存储器416-1、...、416-N。接着,后端CRC引擎412-B1、...、412-BN可将从后端CRC存储器416-1、...、416-N接收的第一CRC数据与所计算的第二CRC数据进行比较。虽然关于图4(其图解说明包含多个后端通道419-1、...、419-N的控制器401)揭示了后端CRC引擎412-B1、...、412-BN,但实施例并不如此受限制。举例来说,本发明的一个或一个以上实施例可包含具有单个后端通道(例如,如关于图2中的后端206所图解说明)的存储器控制器,所述单个后端通道包含后端CRC引擎。
后端CRC引擎412-B1、...、412-BN可耦合到ECC引擎/存储器接口422-1、...、422-N。在一个或一个以上实施例中,后端CRC引擎412-B1、...、412-BN可直接耦合到ECC引擎/存储器I/F 422-1、...、422-N。ECC引擎/存储器I/F 422-1、...、422-N的ECC引擎部分可经配置以计算数据扇区(例如,从后端数据缓冲器418-1、...、418-N接收的DMA有效负载的一部分)的ECC数据。在一个或一个以上实施例中,控制器401可经配置以跨越ECC引擎/存储器I/F 422-1、...、422-N传送所述数据扇区及对应ECC数据而不传送第一或第二对应CRC数据。也就是说,在一个或一个以上实施例中,可将所述数据扇区及对应ECC数据存储于固态存储器装置430-1、...、430-N中而不将对应CRC数据存储于固态存储器装置430-1、...、430-N中。在一个或一个以上实施例中,控制器401可经配置以在后端CRC引擎412-B1、...、412-BN检验到所述数据扇区的完整性时在固态存储器装置430-1、...、430-N的位置中存储所述数据扇区及对应ECC数据而不存储对应CRC数据。也就是说,如果后端CRC引擎412-B1、...、412-BN未检验到所述数据扇区的完整性,那么在一个或一个以上实施例中,控制器401可不将所述数据扇区存储于固态存储器装置430-1、...、430-N中。
一个或一个以上实施例可包含(例如)结合写入操作借助前端CRC引擎412-F从主机接口410的链路层407及/或输送层409接收若干个数据扇区。前端CRC引擎412-F可经配置以计算每一数据扇区的第一CRC数据。因此,对于所述写入操作,可在控制器401的前端404上维持所述若干个数据扇区的数据完整性,此至少部分地由于在对所述若干个数据扇区执行其它操作之前或与对所述若干个数据扇区执行其它操作分开地计算所述若干个数据扇区的CRC数据。可将所述第一CRC数据传送到DMA模块414。
DMA模块414可将所述若干个数据扇区传送到后端通道DMA模块428-1、...、428-N。在一个或一个以上实施例中,DMA模块414可将所述若干个数据扇区传送到对应于与所述若干个数据扇区相关联的存储器地址的后端通道419-1、...、419-N,例如,耦合到对应于所述存储器地址的固态存储器装置的通道。举例来说,当与所述若干个数据扇区相关联的存储器地址对应于特定固态存储器装置(例如,430-1)时,所述DMA模块可将所述若干个数据扇区传送到通道419-1上的后端通道DMA模块428-1。可将所述若干个数据扇区从后端通道DMA模块428-1、...、428-N传送到后端数据缓冲器418-1、...、418-N。在将于写入操作期间从后端通道DMA模块428-1、...、428-N接收的数据扇区传送到ECC引擎/存储器接口422-1、...、422-N及/或后端CRC引擎412-B1、...、412-BN之前,后端数据缓冲器418-1、...、418-N可缓冲所述若干个数据扇区。在一个或一个以上实施例中,可将所述若干个数据扇区从后端数据缓冲器418-1、...、418-N并行传送到后端CRC引擎412-B1、...、412-BN及ECC引擎/存储器I/F 422-1、...、422-N。
DMA模块414可将第一CRC数据传送到后端CRC存储器416-1、...、416-N。在一个或一个以上实施例中,DMA模块414可将第一CRC数据传送到后端通道,所述后端通道对应于与计算其第一CRC数据的数据扇区相关联的存储器地址。在后端CRC引擎412-B1、...、412-BN计算第二CRC数据之前,可将所述第一CRC数据存储于后端CRC存储器416-1、...、416-N中。后端CRC引擎412-B1、...、412-BN可计算所述数据扇区的第二CRC数据且将所述第一CRC数据与所述第二CRC数据进行比较。在所述比较之后,可将所述数据扇区存储于一个或一个以上固态存储器装置430-1、...、430-N中。在一个或一个以上实施例中,ECC引擎/存储器I/F 422-1、...、422-N的ECC引擎部分可在将第一CRC数据与第二CRC数据进行比较之后但在将所述数据扇区存储于固态存储器装置430-1、...、430-N中之前计算所述数据扇区的ECC数据。在将所述数据扇区存储于固态存储器装置430-1、...、430-N中之前将所述ECC数据附加到所述数据扇区,以便将所述数据扇区及所述ECC数据存储于固态存储器装置430-1、...、430-N中但不将所述第一CRC数据及所述第二CRC数据存储于所述固态存储器装置中。此些实施例可为有利的,此至少部分地由于(例如)当不将CRC数据存储于固态存储器装置430-1、...、430-N中时存储于固态存储器装置430-1、...、430-N中的信息量减少。
在一个或一个以上实施例中,如果后端CRC引擎412-B1、...、412-BN检验所述若干个数据扇区的完整性(例如,如果第一CRC数据匹配第二CRC数据),那么仅将所述若干个数据扇区从ECC引擎/存储器I/F 422-1、...、422-N传送到固态存储器装置430-1、...、430-N。因此,对于所述写入操作,可在控制器401的后端406上维持所述若干个数据扇区的数据完整性,此至少部分地由于在通过DMA模块414及后端通道DMA模块428-1、...、428-N进行处理之后计算所述若干个数据扇区的第二CRC数据并将所述第二CRC数据与第一CRC数据(其是在对所述若干个数据扇区执行其它操作之前或与对所述若干个数据扇区执行其它操作分开地计算的)进行比较。因此,本发明的一个或一个以上实施例可在控制器401上提供所述若干个数据扇区的数据完整性。
一个或一个以上存储器系统操作实施例可包含读取操作,其包含从一个或一个以上固态存储器装置430-1、...、430-N读取若干个数据扇区及对应ECC数据。可借助ECC引擎/存储器I/F 422-1、...、422-N的ECC引擎部分对所述若干个数据扇区进行错误校验。在借助ECC引擎/存储器I/F 422-1、...、422-N的ECC引擎部分进行错误校验之后,可从所述若干个数据扇区移除ECC数据。后端CRC引擎412-B1、...、412-BN可计算所述若干个数据扇区中的每一者的CRC数据。可将所述若干个数据扇区及所述CRC数据(例如)从主机缓冲器424及DMA模块414并行分别传送到前端CRC引擎412-F。前端CRC引擎412-F可计算所述若干个数据扇区中的每一者的CRC数据且将其与通过后端CRC引擎所计算的CRC数据进行比较以校验所述若干个数据扇区的完整性。可在所述比较之后跨越主机接口410的输送层409传送所述若干个数据扇区。
因此,对于所述读取操作,可从控制器401的后端406到前端404维持若干个数据扇区的数据完整性,此至少部分地由于在从ECC引擎/存储器I/F 422-1、...、422-N传送所述若干数据扇区之后计算所述若干个数据扇区中的每一者的CRC数据。此外,将先前所计算的CRC数据传送到控制器401的前端404以供与特定数据扇区的新计算的CRC数据进行比较可帮助检验所述特定数据扇区的完整性是否得以维持。因此,本发明的一个或一个以上实施例可在控制器401上提供若干个数据扇区的数据完整性。
结论
本发明包含用于存储器控制器中的数据完整性的方法、装置及系统。一个存储器控制器实施例包含主机接口及耦合到所述主机接口的第一错误检测电路。所述存储器控制器可包含存储器接口及耦合到所述存储器接口的第二错误检测电路。所述第一错误检测电路可经配置以计算从所述主机接口接收的数据的错误检测数据并校验传输到所述主机接口的数据的完整性。所述第二错误检测电路可经配置以计算传输到所述存储器接口的数据及第一错误校正数据的错误校正数据并校验从所述存储器接口接收的数据及第一错误校正数据的完整性。
将理解,当元件称为“在另一元件上”、“连接到另一元件”或“与另一元件耦合”时,其可直接在其它元件上、与其它元件连接或与其它元件耦合或者可存在中间元件。相比之下,当元件称为“直接在另一元件上”、“直接连接到另一元件”或“与另一元件直接耦合”时,不存在中间元件或层。如本文中所使用,术语“及/或(and/or)”包含相关联所列条目中的一者或一者以上的任一及所有组合。
将理解,虽然本文中可使用术语第一、第二等来描述各种元件,但这些元件不应受这些术语限制。这些术语仅用于区别一个元件与另一元件。因此,在不背离本发明的教示内容的情况下,可将第一元件称为第二元件。
虽然本文中已图解说明及描述了具体实施例,但所属领域的技术人员应了解,经计算以实现相同结果的布置可替代所展示的具体实施例。本发明打算涵盖本发明的一个或一个以上实施例的改动或变化形式。应理解,以上说明是以图解说明方式而非限定性方式作出。在审阅以上说明之后,所属领域的技术人员将明了以上实施例的组合及本文中未具体描述的其它实施例。本发明的一个或一个以上实施例的范围包含其中使用以上结构及方法的其它应用。因此,应参考所附权利要求书连同授权此权利要求书的等效内容的全部范围来确定本发明的一个或一个以上实施例的范围。
在前述实施方式中,出于简化本发明的目的,将一些特征一起集合于单个实施例中。不应将本发明的此方法解释为反映本发明的所揭示实施例必须使用比明确陈述于每一权利要求中更多的特征的意图。而是,如以上权利要求书反映:发明性标的物在于少于单个所揭示实施例的所有特征。因此,特此将以上权利要求书并入到实施方式中,其中每一权利要求独立地作为单独实施例。

Claims (57)

1.一种存储器控制器,其包括:
主机接口;
第一错误检测电路,其耦合到所述主机接口;
存储器接口;及
第二错误检测电路,其耦合到所述存储器接口;
其中所述第一错误检测电路经配置以:
计算从所述主机接口接收的数据的错误检测数据;及
校验传输到所述主机接口的数据的完整性;且
其中所述第二错误检测电路经配置以:
计算传输到所述存储器接口的数据及第一错误校正数据的错误校正数据;及
校验从所述存储器接口接收的数据及第一错误校正数据的完整性。
2.根据权利要求1所述的存储器控制器,其中所述第一错误检测电路经配置以计算每所接收数据扇区的错误检测数据。
3.根据权利要求2所述的存储器控制器,其中:
从所述主机接口接收的所述数据包括数据有效负载,所述数据有效负载包含若干个数据扇区;且
从所述主机接口接收的所述数据包括流式数据。
4.根据权利要求1所述的存储器控制器,其中:
所述第一错误检测电路包括通过链路层及/或输送层耦合到所述主机接口的循环冗余校验(CRC)引擎;且
所述第二错误检测电路包括错误校正码(ECC)引擎。
5.根据权利要求1所述的存储器控制器,其中所述存储器控制器包含:
数据传送电路,其耦合到所述主机接口且耦合到所述第一错误检测电路及所述第二错误检测电路;及
错误检测存储器,其耦合到所述数据传送电路;
其中所述错误检测存储器经配置以存储所述错误检测数据。
6.根据权利要求5所述的存储器控制器,其中所述存储器控制器包含:
数据缓冲器,其耦合到所述数据传送电路且耦合到所述第二错误检测电路;
其中所述数据缓冲器经配置以缓冲用于所述第二错误检测电路的数据。
7.根据权利要求1所述的存储器控制器,其中所述第二错误检测电路经配置以校正从所述存储器接口接收的所述数据中的一个或一个以上错误。
8.根据权利要求1所述的存储器控制器,其中所述存储器控制器经配置以跨越所述存储器接口传送从所述主机接口接收的所述数据、所述错误检测数据及所述错误校正数据。
9.根据权利要求1所述的存储器控制器,其中所述存储器控制器包含:
数据传送电路,其耦合到所述存储器接口且耦合到所述第一错误检测电路及所述第二错误检测电路;
其中所述数据传送电路经配置以从所述存储器接口接收数据及对应错误检测数据且将所述数据及所述对应错误检测数据传送到所述第一错误检测电路。
10.根据权利要求9所述的存储器控制器,其中所述第一错误检测电路经配置以:
计算从所述数据传送电路接收的所述数据的错误检测数据;及
将从所述数据传送电路接收的所述数据的所述所计算错误检测数据与从所述数据传送电路接收的所述对应错误检测数据进行比较。
11.根据权利要求9所述的存储器控制器,其中所述存储器控制器包含:
一个以上通道;
通道数据传送电路,其耦合到所述数据传送电路;
数据缓冲器,其耦合到所述通道数据传送电路及所述第二错误检测电路;及
错误检测存储器,其耦合到所述存储器接口。
12.根据权利要求9所述的存储器控制器,其中所述存储器控制器包含:
一个以上通道;及
通道处理器及通道存储器。
13.根据权利要求1所述的存储器控制器,其中所述存储器控制器包含:
主机缓冲器,其耦合到所述主机接口;及
加密电路,其耦合到所述主机缓冲器;
其中所述加密电路经配置以任选地处理所述数据以提供经加密输出。
14.根据权利要求13所述的存储器控制器,其中所述加密电路包括高级加密标准(AES)引擎。
15.一种存储器控制器,其包括:
主机接口;
前端错误检测电路,其耦合到所述主机接口;
存储器接口;及
后端错误检测电路,其耦合到所述存储器接口;
其中所述前端错误检测电路经配置以计算对应数据的第一错误检测数据;且
其中所述后端错误检测电路经配置以:
计算所述对应数据的第二错误检测数据;及
校验所述对应数据的完整性。
16.根据权利要求15所述的存储器控制器,其中所述后端错误检测电路经配置以将所述第一错误检测数据与所述第二错误检测数据进行比较以校验所述对应数据的完整性。
17.根据权利要求15所述的存储器控制器,其中所述存储器控制器包含:
数据传送电路,其耦合到所述前端错误检测电路;
后端错误检测存储器,其耦合到所述数据传送电路且耦合到所述后端错误检测电路;
其中所述数据传送电路经配置以将所述第一错误检测数据从所述前端错误检测电路传送到所述后端错误检测存储器;且
其中所述后端错误检测电路经配置以将来自所述错误检测存储器的所述第一错误检测数据与所述第二错误检测数据进行比较以校验所述对应数据的完整性。
18.根据权利要求15所述的存储器控制器,其中:
所述前端错误检测电路包括循环冗余校验(CRC)引擎;
所述后端错误检测电路包括CRC引擎;且
其中所述存储器控制器包含错误校正码(ECC)引擎,其耦合到所述后端错误检测电路且耦合到所述存储器接口;且
其中所述ECC引擎经配置以计算所述对应数据的错误校正数据。
19.根据权利要求18所述的存储器控制器,其中所述存储器控制器经配置以跨越所述存储器接口传送所述错误校正数据及所述对应数据而不传送所述第一错误检测数据及/或所述第二错误检测数据。
20.根据权利要求15所述的存储器控制器,其中:
所述对应数据包括直接存储器存取(DMA)有效负载;
所述前端错误检测电路经配置以计算所述DMA有效负载的每扇区的第一错误检测数据;且
所述后端错误检测电路经配置以计算所述DMA有效负载的每扇区的第二错误检测数据。
21.一种存储器系统,其包括:
一个或一个以上固态存储器装置;及
存储器控制器,其通过存储器接口耦合到所述一个或一个以上固态存储器装置,其中所述存储器控制器包含:
主机接口;
第一错误检测电路,其耦合到所述主机接口;及
    第二错误检测电路,其耦合到所述存储器接口;
其中所述第一错误检测电路及所述第二错误检测电路经配置以在跨越所述主机接口传送的数据位于所述存储器系统中时检测所述数据中的一个或一个以上错误。
22.根据权利要求21所述的存储器系统,其中所述第一错误检测电路包括循环冗余校验(CRC)引擎;且
其中所述第一错误检测电路经配置以在逐扇区基础上计算所述数据的错误检测数据。
23.根据权利要求22所述的存储器系统,其中所述第二错误检测电路包括错误校正码(ECC)引擎;且
其中所述第二错误检测电路经配置以在逐扇区基础上计算所述数据及所述错误检测数据的错误校正数据。
24.根据权利要求23所述的存储器系统,其中所述存储器控制器经配置以将所述数据、所述错误检测数据及所述错误校正数据存储于所述一个或一个以上固态存储器装置中。
25.根据权利要求21所述的存储器系统,其中所述存储器控制器包含耦合到所述第二错误检测电路的数据缓冲器;
其中所述第二错误检测电路经配置以在所述数据位于所述数据缓冲器中时校正数据错误。
26.根据权利要求21所述的存储器系统,其中所述存储器控制器包含耦合到所述第一错误检测电路及所述第二错误检测电路的错误检测存储器;
其中所述第二错误检测电路经配置以在所述错误检测数据位于所述错误检测存储器中时校正错误检测数据错误。
27.根据权利要求21所述的存储器系统,其中:
所述存储器系统包含耦合到所述存储器控制器的所述主机接口的物理接口;且
所述第一错误检测电路通过链路层及/或输送层耦合到所述主机接口。
28.根据权利要求27所述的存储器系统,其中:
所述物理接口包括串行先进技术附接(SATA)物理接口;
所述数据包括直接存储器存取(DMA)有效负载的至少一部分;
所述第一错误检测电路通过链路层耦合到所述主机接口;且
所述第一错误检测电路经配置以从所述链路层接收所述DMA有效负载。
29.根据权利要求27所述的存储器系统,其中:
所述物理接口包括高速外围组件互连(PCIe)物理接口;
所述数据包括直接存储器存取(DMA)有效负载的至少一部分;
所述第一错误检测电路通过输送层耦合到所述主机接口;且
所述第一错误检测电路经配置以从所述输送层接收所述DMA有效负载。
30.根据权利要求21所述的存储器系统,其中所述存储器系统包括固态驱动器(SSD)且所述一个或一个以上固态存储器装置包含一个或一个以上NAND快闪阵列。
31.一种存储器系统,其包括:
一个或一个以上固态存储器装置;及
存储器控制器,其耦合到所述一个或一个以上固态存储器装置,其中所述存储器控制器包含:
前端错误检测电路,其经配置以计算数据扇区的第一错误检测数据;及
后端错误检测电路,其经配置以:
计算所述数据扇区的第二错误检测数据;及
校验所述数据扇区的完整性;且
其中所述存储器控制器经配置以在所述一个或一个以上固态存储器装置中存储所述数据扇区而不存储所述第一错误检测数据及/或所述第二错误检测数据。
32.根据权利要求31所述的系统,其中所述后端错误检测电路包括循环冗余校验(CRC)引擎,其经配置以将所述第一错误检测数据与所述第二错误检测数据进行比较以校验所述数据扇区的完整性。
33.根据权利要求31所述的系统,其中所述系统包含耦合到所述存储器控制器的主机接口的物理接口。
34.根据权利要求33所述的系统,其中所述前端错误检测电路包括通过链路层及/或输送层耦合到所述主机接口的循环冗余校验(CRC)引擎。
35.根据权利要求33所述的系统,其中所述物理接口包括选自包含以下各项的串行接口的群组的串行接口:
通用串行总线(USB);
串行先进技术附接(SATA)及
高速外围组件互连(PCIe)。
36.根据权利要求31所述的系统,其中所述存储器控制器包含耦合到所述后端错误检测电路且耦合到存储器接口的错误校正码(ECC)引擎,其中所述ECC引擎经配置以计算所述数据扇区的错误校正数据。
37.根据权利要求36所述的系统,其中所述存储器控制器经配置以在所述第一错误检测数据匹配所述第二错误检测数据时在所述一个或一个以上固态存储器装置中存储所述数据扇区及所述错误校正数据而不存储所述错误检测数据。
38.根据权利要求31所述的系统,其中所述前端错误检测电路经配置以将所述第一错误检测数据与所述第二错误检测数据进行比较以校验所述数据扇区的完整性。
39.一种用于操作存储器系统的方法,其包括:
接收若干个数据扇区;
计算所述若干个数据扇区中的每数据扇区的错误检测数据;
计算每数据扇区及对应错误检测数据的错误校正数据;及
将所述数据扇区及对应错误检测数据及错误校正数据存储于一个或一个以上固态存储器装置中。
40.根据权利要求39所述的方法,其中所述方法包含:
在计算所述错误校正数据之前将所述错误检测数据存储于错误检测存储器中;及
在计算所述错误校正数据之前缓冲所述数据扇区。
41.根据权利要求39所述的方法,其中所述方法包含利用循环冗余校验(CRC)引擎与直接存储器存取(DMA)模块并行接收所述若干个数据扇区。
42.根据权利要求41所述的方法,其中所述方法包含在存储所述数据扇区之前利用所述CRC引擎校验所述数据扇区的完整性。
43.根据权利要求39所述的方法,其中所述方法包含在计算所述错误校正数据之前将所述数据扇区从明文加密成密文。
44.一种用于在存储器系统中校验数据的完整性的方法,其包括:
从一个或一个以上固态存储器装置读取所述数据、对应于所述数据的第一错误检测数据及对应于所述数据的错误校正数据;
对所述数据及所述第一错误检测数据进行错误校正;
计算对应于所述数据的第二错误检测数据;及
将所述第一错误检测数据与所述第二错误检测数据进行比较。
45.根据权利要求44所述的方法,其中所述方法包含将所述数据及所述第一错误检测数据并行传送到错误检测电路。
46.根据权利要求44所述的方法,其中所述方法包含在将所述第一错误检测数据与所述第二错误检测数据进行比较之后跨越主机接口的输送层传送所述数据。
47.根据权利要求44所述的方法,其中所述方法包含在所述第一错误检测数据位于错误检测存储器中时校正在所述第一错误检测数据中识别的一个或一个以上错误。
48.根据权利要求44所述的方法,其中所述方法包含在所述数据位于数据缓冲器中时校正在所述数据中识别的一个或一个以上错误。
49.根据权利要求44所述的方法,其中所述方法包含:
从所述一个或一个以上固态存储器装置读取作为密文数据的所述数据;及
在跨越所述存储器系统的主机接口的所述输送层传送所述数据之前将所述密文数据解密成明文数据。
50.一种用于操作存储器系统的方法,其包括:
接收若干个数据扇区;
计算所述若干个数据扇区中的每数据扇区的第一错误检测数据;
计算所述若干个数据扇区中的每数据扇区的第二错误检测数据;
将所述第一错误检测数据与所述第二错误检测数据进行比较;及
将所述若干个数据扇区存储于一个或一个以上固态存储器装置中。
51.根据权利要求50所述的方法,其中所述方法包含:
在将所述第一错误检测数据与所述第二错误检测数据进行比较之后计算每数据扇区的错误校正数据;及
将所述若干个数据扇区及所述对应错误校正数据存储于所述一个或一个以上固态存储器装置中。
52.根据权利要求51所述的方法,其中所述方法包含将所述若干个数据扇区从后端数据缓冲器并行传送到后端错误检测电路及错误校正电路,其中所述后端错误检测电路执行计算第二错误检测数据的动作。
53.根据权利要求51所述的方法,其中所述方法包含在所述一个或一个以上固态存储器装置中存储所述若干个数据扇区及所述对应错误校正数据而不存储所述第一错误检测数据或所述第二错误检测数据。
54.根据权利要求50所述的方法,其中所述方法包含在计算所述第二错误检测数据之前将所述第一错误检测数据存储于后端错误检测存储器中。
55.一种用以在存储器系统中校验数据扇区的完整性的方法,所述方法包括:
从一个或一个以上固态存储器装置读取数据扇区及所附加错误校正数据;
对所述数据扇区进行错误校正;
计算所述数据扇区的错误检测数据;
传送所述数据扇区及所述错误检测数据;及
计算所述所传送数据扇区的错误检测数据且将其与所述所传送错误检测数据进行比较。
56.根据权利要求55所述的方法,其中所述方法包含在所述比较动作之后跨越主机接口的输送层传送所述数据扇区。
57.根据权利要求55所述的方法,其中所述方法包含在所述错误校正动作之后从所述数据扇区移除所述错误校正数据。
CN201080008211.XA 2009-02-18 2010-02-12 在存储器控制器中的数据完整性及方法 Expired - Fee Related CN102317919B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/388,305 2009-02-18
US12/388,305 US8468417B2 (en) 2009-02-18 2009-02-18 Data integrity in memory controllers and methods
PCT/US2010/000412 WO2010096153A2 (en) 2009-02-18 2010-02-12 Data integrity in memory controllers and methods

Publications (2)

Publication Number Publication Date
CN102317919A true CN102317919A (zh) 2012-01-11
CN102317919B CN102317919B (zh) 2015-03-11

Family

ID=42560933

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080008211.XA Expired - Fee Related CN102317919B (zh) 2009-02-18 2010-02-12 在存储器控制器中的数据完整性及方法

Country Status (7)

Country Link
US (3) US8468417B2 (zh)
EP (1) EP2399194A4 (zh)
JP (1) JP5776107B2 (zh)
KR (2) KR101457518B1 (zh)
CN (1) CN102317919B (zh)
TW (2) TWI451434B (zh)
WO (1) WO2010096153A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103533045A (zh) * 2013-10-12 2014-01-22 江苏华丽网络工程有限公司 一种用于pcie数据链路层高性能容错的方法
CN106575346A (zh) * 2014-09-23 2017-04-19 英特尔公司 存储器中的加密完整性校验
CN107402837A (zh) * 2017-05-12 2017-11-28 威盛电子股份有限公司 非易失性存储器装置及其读取方法
CN113127893A (zh) * 2019-12-31 2021-07-16 美光科技公司 加密数据完整性保护

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8468417B2 (en) * 2009-02-18 2013-06-18 Micron Technology, Inc. Data integrity in memory controllers and methods
JP2010262715A (ja) * 2009-05-11 2010-11-18 Renesas Electronics Corp メモリ検査システム及びメモリ検査方法
JP5017407B2 (ja) 2010-03-24 2012-09-05 株式会社東芝 半導体記憶装置
JP5605238B2 (ja) * 2011-01-25 2014-10-15 ソニー株式会社 メモリシステムおよびその動作方法
US8745294B2 (en) * 2011-04-01 2014-06-03 Taejin Info Tech Co., Ltd. Dynamic random access memory for a semiconductor storage device-based system
JP5346978B2 (ja) * 2011-04-15 2013-11-20 シャープ株式会社 インターフェイス装置、配線基板、及び情報処理装置
JP5346979B2 (ja) * 2011-04-18 2013-11-20 シャープ株式会社 インターフェイス装置、配線基板、及び情報処理装置
WO2011127866A2 (zh) * 2011-05-27 2011-10-20 华为技术有限公司 数据处理方法、装置及系统
US8589761B2 (en) 2011-05-31 2013-11-19 Micron Technology, Inc. Apparatus and methods for providing data integrity
JP2013029882A (ja) * 2011-07-26 2013-02-07 Toshiba Corp メモリコントローラ、半導体記憶装置および復号方法
US20130067157A1 (en) * 2011-09-12 2013-03-14 Byungcheol Cho Semiconductor storage device having multiple host interface units for increased bandwidith
US8775713B2 (en) 2011-12-27 2014-07-08 Intel Corporation Multi-protocol tunneling over an I/O interconnect
US8953644B2 (en) 2011-12-27 2015-02-10 Intel Corporation Multi-protocol I/O interconnect time synchronization
JP2013137708A (ja) * 2011-12-28 2013-07-11 Toshiba Corp メモリコントローラ、データ記憶装置およびメモリ制御方法
US8782321B2 (en) 2012-02-08 2014-07-15 Intel Corporation PCI express tunneling over a multi-protocol I/O interconnect
US8880923B2 (en) 2012-03-29 2014-11-04 Intel Corporation Link power management in an I/O interconnect
KR102002925B1 (ko) * 2012-11-01 2019-07-23 삼성전자주식회사 메모리 모듈, 그것을 포함하는 메모리 시스템, 그것의 구동 방법
KR102009437B1 (ko) * 2013-01-18 2019-08-13 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
KR102083374B1 (ko) * 2013-06-17 2020-04-14 에스케이하이닉스 주식회사 반도체 장치 및 그의 제어 방법
US9256551B2 (en) 2013-08-09 2016-02-09 Apple Inc. Embedded encryption/secure memory management unit for peripheral interface controller
KR102058495B1 (ko) * 2013-11-29 2020-02-07 에스케이하이닉스 주식회사 오류 검출 회로 및 이를 이용하는 반도체 집적회로
KR102214556B1 (ko) * 2014-08-19 2021-02-09 삼성전자주식회사 메모리 장치 및 모듈
WO2016137464A1 (en) * 2015-02-26 2016-09-01 Hewlett Packard Enterprise Development Lp Checksum requests of files
JP6594712B2 (ja) * 2015-09-14 2019-10-23 ラピスセミコンダクタ株式会社 半導体メモリ及び半導体メモリのベリファイ方法
US10198313B2 (en) 2016-03-11 2019-02-05 Western Digital Technologies, Inc. Redundancy of error correction encoded data in a storage system
WO2020210390A1 (en) 2019-04-09 2020-10-15 Sunrise Memory Corporation Quasi-volatile memory device with a back-channel usage
US10891184B2 (en) * 2019-05-22 2021-01-12 Macronix International Co., Ltd. Configurable data integrity mode, and memory device including same
JP7327029B2 (ja) * 2019-09-19 2023-08-16 京セラドキュメントソリューションズ株式会社 画像形成装置、データ通信方法
JP7419715B2 (ja) * 2019-09-19 2024-01-23 京セラドキュメントソリューションズ株式会社 画像形成装置、データ整合性判定方法
US11934658B2 (en) 2021-03-25 2024-03-19 Mellanox Technologies, Ltd. Enhanced storage protocol emulation in a peripheral device
US11934333B2 (en) 2021-03-25 2024-03-19 Mellanox Technologies, Ltd. Storage protocol emulation in a peripheral device
US11726666B2 (en) * 2021-07-11 2023-08-15 Mellanox Technologies, Ltd. Network adapter with efficient storage-protocol emulation
US11687273B2 (en) 2021-09-29 2023-06-27 Micron Technology, Inc. Memory controller for managing data and error information
US11775387B2 (en) * 2022-01-21 2023-10-03 Micron Technology, Inc. Cyclic redundancy check (CRC) retry for memory systems in compute express link (CXL) devices
US11940872B2 (en) 2022-04-21 2024-03-26 Analog Devices International Unlimited Company Error correction code validation

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1650267A (zh) * 2002-04-25 2005-08-03 甲骨文国际公司 增强数据完整性的检验装置
US20070028140A1 (en) * 2005-07-28 2007-02-01 Atsushi Takeda Information processing method and information processing device
US7398449B1 (en) * 2004-06-16 2008-07-08 Azul Systems, Inc. Encoding 64-bit data nibble error correct and cyclic-redundancy code (CRC) address error detect for use on a 76-bit memory module
TW200849016A (en) * 2007-06-12 2008-12-16 Mgine Co Ltd Mass storage device using NAND flash memory
US20090044078A1 (en) * 2007-08-08 2009-02-12 Andrew Vogan Ecc functional block placement in a multi-channel mass storage device

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5257391A (en) 1991-08-16 1993-10-26 Ncr Corporation Disk controller having host interface and bus switches for selecting buffer and drive busses respectively based on configuration control signals
US5459850A (en) * 1993-02-19 1995-10-17 Conner Peripherals, Inc. Flash solid state drive that emulates a disk drive and stores variable length and fixed lenth data blocks
US5631741A (en) 1995-12-29 1997-05-20 Intel Corporation Electronic carbon paper
US7900057B2 (en) 2000-11-03 2011-03-01 Enova Technology Corporation Cryptographic serial ATA apparatus and method
US6691205B2 (en) 2001-03-05 2004-02-10 M-Systems Flash Disk Pioneers Ltd. Method for using RAM buffers with simultaneous accesses in flash based storage systems
KR100487539B1 (ko) 2002-09-02 2005-05-03 삼성전자주식회사 직렬 에이티에이 케이블과 연결되는 불휘발성 반도체메모리 장치
JP2005093038A (ja) 2003-09-19 2005-04-07 Fujitsu Ltd 記録再生装置および記録再生回路
TWI269968B (en) 2004-04-22 2007-01-01 Mediatek Inc Method for processing the noise in the SATA
US7936881B2 (en) * 2004-08-31 2011-05-03 Nortel Networks Limited Method and system for transmitting signaling information over a data transport network
JP2006134064A (ja) 2004-11-05 2006-05-25 Hitachi Ltd 記憶メディアへの書込みエラーを検出する記憶制御装置及び方法
US20060136619A1 (en) 2004-12-16 2006-06-22 Intel Corporation Data integrity processing and protection techniques
US20060294299A1 (en) 2005-06-28 2006-12-28 Intel Corporation Techniques to verify storage of information
JP4953648B2 (ja) * 2006-02-03 2012-06-13 パナソニック株式会社 不揮発性記憶装置およびメモリコントローラ
KR100856129B1 (ko) * 2006-12-29 2008-09-03 삼성전자주식회사 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치
KR100810358B1 (ko) 2007-01-30 2008-03-04 삼성전자주식회사 컨테이너의 무결성을 확인하는 방법 및 그 dvb―h 단말
KR100921748B1 (ko) * 2007-06-04 2009-10-15 삼성전자주식회사 Ecc 회로를 포함하는 메모리 시스템 및 그 구동 방법
US8140936B2 (en) * 2008-01-24 2012-03-20 International Business Machines Corporation System for a combined error correction code and cyclic redundancy check code for a memory channel
JP5174603B2 (ja) * 2008-09-30 2013-04-03 株式会社日立製作所 メモリの誤り訂正方法,誤り検出方法、及びそれを用いたコントローラ
US8468417B2 (en) * 2009-02-18 2013-06-18 Micron Technology, Inc. Data integrity in memory controllers and methods

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1650267A (zh) * 2002-04-25 2005-08-03 甲骨文国际公司 增强数据完整性的检验装置
US7398449B1 (en) * 2004-06-16 2008-07-08 Azul Systems, Inc. Encoding 64-bit data nibble error correct and cyclic-redundancy code (CRC) address error detect for use on a 76-bit memory module
US20070028140A1 (en) * 2005-07-28 2007-02-01 Atsushi Takeda Information processing method and information processing device
TW200849016A (en) * 2007-06-12 2008-12-16 Mgine Co Ltd Mass storage device using NAND flash memory
US20090044078A1 (en) * 2007-08-08 2009-02-12 Andrew Vogan Ecc functional block placement in a multi-channel mass storage device

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103533045A (zh) * 2013-10-12 2014-01-22 江苏华丽网络工程有限公司 一种用于pcie数据链路层高性能容错的方法
CN103533045B (zh) * 2013-10-12 2017-12-29 丁贤根 一种用于pcie数据链路层高性能容错的方法
CN106575346A (zh) * 2014-09-23 2017-04-19 英特尔公司 存储器中的加密完整性校验
CN106575346B (zh) * 2014-09-23 2020-01-10 英特尔公司 存储器中的加密完整性校验
CN107402837A (zh) * 2017-05-12 2017-11-28 威盛电子股份有限公司 非易失性存储器装置及其读取方法
CN107402837B (zh) * 2017-05-12 2021-01-26 威盛电子股份有限公司 非易失性存储器装置及其读取方法
CN113127893A (zh) * 2019-12-31 2021-07-16 美光科技公司 加密数据完整性保护

Also Published As

Publication number Publication date
TWI451434B (zh) 2014-09-01
KR101351754B1 (ko) 2014-01-14
KR101457518B1 (ko) 2014-11-10
KR20130124989A (ko) 2013-11-15
JP2012518224A (ja) 2012-08-09
EP2399194A4 (en) 2012-10-31
CN102317919B (zh) 2015-03-11
EP2399194A2 (en) 2011-12-28
WO2010096153A3 (en) 2010-11-25
US20150220386A1 (en) 2015-08-06
WO2010096153A2 (en) 2010-08-26
KR20110118168A (ko) 2011-10-28
US8468417B2 (en) 2013-06-18
US20130283124A1 (en) 2013-10-24
US20100211834A1 (en) 2010-08-19
JP5776107B2 (ja) 2015-09-09
US9015553B2 (en) 2015-04-21
TW201035987A (en) 2010-10-01
TW201434051A (zh) 2014-09-01

Similar Documents

Publication Publication Date Title
CN102317919B (zh) 在存储器控制器中的数据完整性及方法
US8726140B2 (en) Dummy data padding and error code correcting memory controller, data processing method thereof, and memory system including the same
US8650463B2 (en) Solid state drive and method of controlling an error thereof
CN101685381B (zh) 固态大容量存储装置的数据串流
US20130179751A1 (en) Memory device with ecc history table
CN101576853B (zh) 数据存取方法、使用此方法的控制器与存储系统
CN111352765B (zh) 控制器及存储器系统
TWI588833B (zh) 資料程式化方法與記憶體儲存裝置
CN101329916A (zh) 闪存装置纠错码控制器以及相关方法和存储系统
KR20100119310A (ko) 메모리 컨트롤러 및 그것을 포함하는 메모리 시스템
TWI646543B (zh) 資料編碼方法、資料解碼方法以及儲存控制器
CN102103558B (zh) 一种带有写重传功能的多通道NANDflash控制器
CN114077383A (zh) 数据处理系统中共享数据的设备和方法
CN106843744B (zh) 数据程序化方法与存储器储存装置
KR102338323B1 (ko) 통신 메커니즘을 포함하는 컴퓨팅 시스템 및 그것의 동작 방법
TWI613665B (zh) 資料程式化方法與記憶體儲存裝置
KR101599834B1 (ko) 메모리 컨트롤러 및 그것을 포함하는 메모리 시스템
CN102103559A (zh) 一种带有AES和ECC的多通道NANDflash控制器
TW202028974A (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US20160211024A1 (en) Decoding data using a reserved word line
CN111796774A (zh) 存储器控制方法、存储器存储装置及存储器控制器
US20240028524A1 (en) Accelerated Encryption During Power Loss
CN114077515A (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
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20151022

Address after: new jersey

Patentee after: Micron Technology Inc

Address before: Idaho

Patentee before: Micron Technology, Inc.

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: 20150311

Termination date: 20170212