在存储器控制器中的数据完整性及方法转让专利

申请号 : CN201080008211.X

文献号 : CN102317919B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 迈赫迪·阿斯纳阿沙里罗纳德·山田西亚麦克·内马齐雷·杨

申请人 : 美光科技公司

摘要 :

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

权利要求 :

1.一种存储器控制器(101、201、301、401),其包括:主机接口(210、310、410);

第一错误检测电路(212、312、412-F),其耦合到所述主机接口(210、310、410);

存储器接口(222、322-1、322-N、422-1、422-N);及第二错误检测电路(222、322-1、322-N、422-1、422-N),其耦合到所述存储器接口(222、322-1、322-N、422-1、422-N);

其中所述第一错误检测电路(212、312、412-F)经配置以:计算从所述主机接口(210、310、410)接收的数据的错误检测数据;及校验传输到所述主机接口(210、310、410)的数据的完整性;且其中所述第二错误检测电路(222、322-1、322-N、422-1、422-N)经配置以:计算传输到所述存储器接口(222、322-1、322-N、422-1、422-N)的数据及第一错误校正数据的错误校正数据;及校验从所述存储器接口(222、322-1、322-N、422-1、422-N)接收的数据及第一错误校正数据的完整性。

2.根据权利要求1所述的存储器控制器(101、201、301、401),其中所述第一错误检测电路(212、312、412-F)经配置以计算每所接收数据扇区的错误检测数据。

3.根据权利要求2所述的存储器控制器(101、201、301、401),其中:从所述主机接口(210、310、410)接收的所述数据包括数据有效负载,所述数据有效负载包含若干个数据扇区;且从所述主机接口(210、310、410)接收的所述数据包括流式数据。

4.根据权利要求1所述的存储器控制器(101、201、301、401),其中:所述第一错误检测电路(212、312、412-F)包括通过链路层(207、307、407)及/或输送层(209、309、409)耦合到所述主机接口(210、310、410)的循环冗余校验(CRC)引擎(212、

312、412-F);且

所述第二错误检测电路(222、322-1、322-N、422-1、422-N)包括错误校正码(ECC)引擎(222、322-1、322-N、422-1、422-N)。

5.根据权利要求1所述的存储器控制器(101、201、301、401),其中所述存储器控制器(101、201、301、401)包含:数据传送电路(214、314、414),其耦合到所述主机接口(210、310、410)且耦合到所述第一错误检测电路(212、312、412-F)及所述第二错误检测电路(222、322-1、322-N、422-1、

422-N);及

错误检测存储器(216、316-1、316-N、416-1、416-N),其耦合到所述数据传送电路(214、314、414);

其中所述错误检测存储器(216、316-1、316-N、416-1、416-N)经配置以存储所述错误检测数据。

6.根据权利要求5所述的存储器控制器(101、201、301、401),其中所述存储器控制器(101、201、301、401)包含:数据缓冲器(218、318-1、318-N、418-1、418-N),其耦合到所述数据传送电路(214、

314、414)且耦合到所述第二错误检测电路(222、322-1、322-N、422-1、422-N);

其中所述数据缓冲器(218、318-1、318-N、418-1、418-N)经配置以缓冲用于所述第二错误检测电路(222、322-1、322-N、422-1、422-N)的数据。

7.根据权利要求1所述的存储器控制器(101、201、301、401),其中所述第二错误检测电路(222、322-1、322-N、422-1、422-N)经配置以校正从所述存储器接口(222、322-1、

322-N、422-1、422-N)接收的所述数据中的一个或一个以上错误。

8.根据权利要求1所述的存储器控制器(101、201、301、401),其中所述存储器控制器(101、201、301、401)经配置以跨越所述存储器接口(222、322-1、322-N、422-1、422-N)传送从所述主机接口(210、310、410)接收的所述数据、所述错误检测数据及所述错误校正数据。

9.根据权利要求1所述的存储器控制器(101、201、301、401),其中所述存储器控制器(101、201、301、401)包含:数据传送电路(214、314、414),其耦合到所述存储器接口(222、322-1、322-N、422-1、

422-N)且耦合到所述第一错误检测电路(212、312、412-F)及所述第二错误检测电路(222、

322-1、322-N、422-1、422-N);

其中所述数据传送电路(214、314、414)经配置以从所述存储器接口(222、322-1、

322-N、422-1、422-N)接收数据及对应错误检测数据且将所述数据及所述对应错误检测数据传送到所述第一错误检测电路(212、312、412-F)。

10.根据权利要求9所述的存储器控制器(101、201、301、401),其中所述第一错误检测电路(212、312、412-F)经配置以:计算从所述数据传送电路(214、314、414)接收的所述数据的错误检测数据;及将从所述数据传送电路(214、314、414)接收的所述数据的所述所计算错误检测数据与从所述数据传送电路(214、314、414)接收的所述对应错误检测数据进行比较。

11.根据权利要求9所述的存储器控制器(101、201、301、401),其中所述存储器控制器(101、201、301、401)包含:一个以上通道(319-1、319-N、419-1、419-N);

通道数据传送电路(328-1、328-N、428-1、428-N),其耦合到所述数据传送电路(214、

314、414);

数据缓冲器(218、318-1、318-N、418-1、418-N),其耦合到所述通道数据传送电路(328-1、328-N、428-1、428-N)及所述第二错误检测电路(222、322-1、322-N、422-1、

422-N);及

错误检测存储器(216、316-1、316-N、416-1、416-N),其耦合到所述存储器接口(222、

322-1、322-N、422-1、422-N)。

12.根据权利要求9所述的存储器控制器(101、201、301、401),其中所述存储器控制器(101、201、301、401)包含:一个以上通道(319-1、319-N、419-1、419-N);及通道处理器(332-1、332-N、432-1、432-N)及通道存储器(334-1、334-N、434-1、

434-N)。

13.根据权利要求1所述的存储器控制器(101、201、301、401),其中所述存储器控制器(101、201、301、401)包含:主机缓冲器(324),其耦合到所述主机接口(210、310、410);及加密电路(326),其耦合到所述主机缓冲器(324);

其中所述加密电路(326)经配置以任选地处理所述数据以提供经加密输出。

14.一种存储器控制器(101、201、301、401),其包括:主机接口(210、310、410);

前端错误检测电路(212、312、412-F),其耦合到所述主机接口(210、310、410);

存储器接口(222、322-1、322-N、422-1、422-N);及后端错误检测电路(412-B1、412-BN),其耦合到所述存储器接口(222、322-1、322-N、

422-1、422-N);

其中所述前端错误检测电路(212、312、412-F)经配置以计算对应数据的第一错误检测数据;且其中所述后端错误检测电路(412-B1、412-BN)经配置以:计算所述对应数据的第二错误检测数据;及

校验所述对应数据的完整性,其中所述后端错误检测电路(412-B1、412-BN)经配置以将所述第一错误检测数据与所述第二错误检测数据进行比较以校验所述对应数据的完整性。

15.根据权利要求14所述的存储器控制器(101、201、301、401),其中所述存储器控制器(101、201、301、401)包含:数据传送电路(214、314、414),其耦合到所述前端错误检测电路(212、312、412-F);

后端错误检测存储器(216、316-1、316-N、416-1、416-N),其耦合到所述数据传送电路(214、314、414)且耦合到所述后端错误检测电路(412-B1、412-BN);

其中所述数据传送电路(214、314、414)经配置以将所述第一错误检测数据从所述前端错误检测电路(212、312、412-F)传送到所述后端错误检测存储器(216、316-1、316-N、

416-1、416-N);且

其中所述后端错误检测电路(412-B1、412-BN)经配置以将来自所述错误检测存储器(216、316-1、316-N、416-1、416-N)的所述第一错误检测数据与所述第二错误检测数据进行比较以校验所述对应数据的完整性。

16.根据权利要求14所述的存储器控制器(101、201、301、401),其中:所述前端错误检测电路(212、312、412-F)包括循环冗余校验(CRC)引擎(212、312、

412-F);

所述后端错误检测电路(412-B1、412-BN)包括循环冗余校验(CRC)引擎(412-B1、

412-BN);且

其中所述存储器控制器(101、201、301、401)包含错误校正码(ECC)引擎(222、322-1、

322-N、422-1、422-N),其耦合到所述后端错误检测电路(412-B1、412-BN)且耦合到所述存储器接口(222、322-1、322-N、422-1、422-N);且其中所述错误校正码(ECC)引擎(222、322-1、322-N、422-1、422-N)经配置以计算所述对应数据的错误校正数据。

17.根据权利要求16所述的存储器控制器(101、201、301、401),其中所述存储器控制器(101、201、301、401)经配置以跨越所述存储器接口(222、322-1、322-N、422-1、422-N)传送所述错误校正数据及所述对应数据而不传送所述第一错误检测数据及/或所述第二错误检测数据。

18.一种用于操作存储器系统(120)的方法,其包括:接收若干个数据扇区;

计算所述若干个数据扇区中的每数据扇区的错误检测数据;

计算每数据扇区及对应错误检测数据的错误校正数据;

校验特定数据扇区的完整性;及

将所述特定数据扇区及对应错误检测数据及错误校正数据存储于一个或一个以上固态存储器装置(130-1、130-N、230、330-1、330-N、430-1、430-N)中。

19.根据权利要求18所述的方法,其中所述方法包含利用循环冗余校验(CRC)引擎(212、312、412-F)与直接存储器存取(DMA)模块(214、314、414)并行接收所述若干个数据扇区。

20.根据权利要求19所述的方法,其中校验所述特定数据扇区的完整性包含在存储所述特定数据扇区之前利用所述循环冗余校验(CRC)引擎(212、312、412-F)校验所述特定数据扇区的完整性。

21.根据权利要求18所述的方法,其中所述方法包含在计算所述错误校正数据之前将所述特定数据扇区从明文加密成密文。

22.一种用于在存储器系统(120)中校验数据的完整性的方法,其包括:从一个或一个以上固态存储器装置(130-1、130-N、230、330-1、330-N、430-1、430-N)读取所述数据、对应于所述数据的第一错误检测数据及对应于所述数据的错误校正数据;

对所述数据及所述第一错误检测数据进行错误校正;

计算对应于所述数据的第二错误检测数据;及

将所述第一错误检测数据与所述第二错误检测数据进行比较。

23.根据权利要求22所述的方法,其中所述方法包含将所述数据及所述第一错误检测数据并行传送到错误检测电路(212、312、412-F、222、322-1、322-N、412-B1、412-BN)。

24.根据权利要求22所述的方法,其中所述方法包含在将所述第一错误检测数据与所述第二错误检测数据进行比较之后跨越主机接口(210、310、410)的输送层(209、309、409)传送所述数据。

25.根据权利要求22所述的方法,其中所述方法包含在所述第一错误检测数据位于错误检测存储器(216、316-1、316-N、416-1、416-N)中时校正在所述第一错误检测数据中识别的一个或一个以上错误。

26.根据权利要求22所述的方法,其中所述方法包含在所述数据位于数据缓冲器(218、318-1、318-N、418-1、418-N)中时校正在所述数据中识别的一个或一个以上错误。

27.根据权利要求22所述的方法,其中所述方法包含:

从所述一个或一个以上固态存储器装置(130-1、130-N、230、330-1、330-N、430-1、

430-N)读取作为密文数据的所述数据;及

在跨越所述存储器系统(120)的主机接口(210、310、410)的输送层(209、309、409)传送所述数据之前将所述密文数据解密成明文数据。

28.一种用于操作存储器系统(120)的方法,其包括:接收若干个数据扇区;

计算所述若干个数据扇区中的每数据扇区的第一错误检测数据;

计算所述若干个数据扇区中的每数据扇区的第二错误检测数据;

将所述第一错误检测数据与所述第二错误检测数据进行比较;及将所述若干个数据扇区存储于一个或一个以上固态存储器装置(130-1、130-N、230、

330-1、330-N、430-1、430-N)中。

29.根据权利要求28所述的方法,其中所述方法包含:

在将所述第一错误检测数据与所述第二错误检测数据进行比较之后计算每数据扇区的错误校正数据;及将所述若干个数据扇区及所述对应错误校正数据存储于所述一个或一个以上固态存储器装置(130-1、130-N、230、330-1、330-N、430-1、430-N)中。

30.根据权利要求29所述的方法,其中所述方法包含将所述若干个数据扇区从后端数据缓冲器(218、318-1、318-N、418-1、418-N)并行传送到后端错误检测电路(412-B1、

412-BN)及错误校正电路(222、322-1、322-N、422-1、422-N),其中所述后端错误检测电路(412-B1、412-BN)执行计算第二错误检测数据的动作。

31.根据权利要求29所述的方法,其中所述方法包含在所述一个或一个以上固态存储器装置(130-1、130-N、230、330-1、330-N、430-1、430-N)中存储所述若干个数据扇区及所述对应错误校正数据而不存储所述第一错误检测数据或所述第二错误检测数据。

32.根据权利要求28所述的方法,其中所述方法包含在计算所述第二错误检测数据之前将所述第一错误检测数据存储于后端错误检测存储器(216、316-1、316-N、416-1、416-N)中。

33.一种用以在存储器系统(120)中校验数据扇区的完整性的方法,所述方法包括:从一个或一个以上固态存储器装置(130-1、130-N、230、330-1、330-N、430-1、430-N)读取数据扇区及所附加错误校正数据;

对所述数据扇区进行错误校正;

计算所述数据扇区的错误检测数据;

传送所述数据扇区及所述错误检测数据;及

计算所述所传送数据扇区的错误检测数据且将其与所述所传送错误检测数据进行比较。

34.根据权利要求33所述的方法,其中所述方法包含在所述比较动作之后跨越主机接口(210、310、410)的输送层(209、309、409)传送所述数据扇区。

35.根据权利要求33所述的方法,其中所述方法包含在所述错误校正动作之后从所述数据扇区移除所述错误校正数据。

说明书 :

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

技术领域

[0001] 本发明一般来说涉及半导体存储器装置、方法及系统,且更特定来说涉及数据完整性。

背景技术

[0002] 通常将存储器装置作为内部半导体集成电路提供于计算机或其它电子装置中。存在包含易失性及非易失性存储器的许多不同类型的存储器。易失性存储器可需要电力来维持其数据且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)以及其它存储器。非易失性存储器可通过在不被供电时保持所存储的信息而提供持续数据且可包含NAND快闪存储器、NOR快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)及相变随机存取存储器(PCRAM)以及其它存储器。
[0003] 存储器装置可组合在一起以形成固态驱动器(SSD)。SSD可包含非易失性存储器(例如,NAND快闪存储器及NOR快闪存储器)及/或可包含易失性存储器(例如,DRAM及SRAM)以及各种其它类型的非易失性及易失性存储器。
[0004] 可使用SSD来替换硬盘驱动器作为计算机的主要存储装置,因为所述SSD可在性能、大小、重量、耐用性、操作温度范围及电力消耗方面具有优于硬驱动器的优点。举例来说,SSD在与磁盘驱动器相比时因其缺乏移动部件而可具有优越性能,此缺乏移动部件可避免与磁盘驱动器相关联的寻觅时间、等待时间及其它机电延迟。SSD制造商可使用非易失性快闪存储器来形成可不使用内部电池供应的快闪SSD,因此允许驱动器更通用且更紧凑。
[0005] SSD可包含一个或一个以上存储器装置,例如,一个或一个以上存储器芯片。如所属领域的技术人员将了解,存储器芯片可包含一个或一个以上裸片。每一裸片可包含位于其上的一个或一个以上存储器阵列及外围电路。存储器阵列可包含一个或一个以上平面,其中每一平面包含一个或一个以上存储器单元物理块。每一物理块可包含可存储一个或一个以上数据扇区的一个或一个以上存储器单元页。
[0006] SSD可与具有串行接口(例如,通用串行总线(USB)、串行先进技术附接(SATA)或高速外围组件互连(PCIe)以及其它串行接口)的主机系统介接。例如USB、SATA及PCIe等串行接口可具有构建到相应接口的架构的链路层或输送层中的错误检测机制(例如,循环冗余校验(CRC))。CRC可包含在数据从传输器到接收器的传输期间检测由噪声或其它减损引起的错误的存在的能力。CRC数据产生可基于特定接口所支持的帧结构。
[0007] 举例来说,SATA帧结构可包含帧开始(SOF),接着是帧信息结构(FIS),接着是CRC数据,且接着是帧结束(EOF)。SATA可使用在FIS的内容上计算的CRC数据的32个位。用32 26 23 22 16 12 11 10 8 7 5
于CRC数据的计算中的32位CRC多项式的实例为:X +X +X +X +X +X +X +X +X+X+X+
4 2
X+X+X+1。在FIS含有奇数个字(例如,16个位段)的情况下,给FIS的最后一个字填补零以形成全双字(dword),例如32个位。SATA帧可包含2064个双字,所述2064个双字包含FIS及CRC数据,其中FIS有效负载可包含2048个双字(8192个字节)。然而,所述有效负载可包含更少数据。
[0008] 如所属领域的技术人员将了解,逻辑块寻址为可由主机用来识别信息扇区的方案,例如,每一扇区可对应于唯一逻辑块地址(LBA)。扇区可为存储体积的最小可寻址部分。作为实例,数据扇区可为若干个数据字节,例如,512个字节。由于串行主机接口(例如,SATA接口)处的每一有效负载未必包含相同数目个字节,且由于大容量存储装置的串行主机接口处的有效负载可属于不同单元,因此CRC数据可不传播经过所述主机接口,例如,所述主机接口的链路或输送层。

附图说明

[0009] 图1是包含根据本发明的一个或一个以上实施例的存储器系统的计算系统的功能框图。
[0010] 图2是包含根据本发明的一个或一个以上实施例的存储器控制器的系统的功能框图。
[0011] 图3是包含根据本发明的一个或一个以上实施例的存储器控制器的系统的功能框图。
[0012] 图4是包含根据本发明的一个或一个以上实施例的存储器控制器的系统的功能框图。

具体实施方式

[0013] 本发明包含用于存储器控制器中的数据完整性的方法、装置及系统。一个存储器控制器实施例包含主机接口及耦合到所述主机接口的第一错误检测电路。所述存储器控制器可包含存储器接口及耦合到所述存储器接口的第二错误检测电路。所述第一错误检测电路可经配置以计算从所述主机接口接收的数据的错误检测数据并校验传输到所述主机接口的数据的完整性。所述第二错误检测电路可经配置以计算传输到所述存储器接口的数据及第一错误校正数据的错误校正数据并校验从所述存储器接口接收的数据及第一错误校正数据的完整性。
[0014] 在本发明的以下详细说明中,参考形成本发明的一部分的所附图式,且图式中以图解说明的方式展示可如何实践本发明的一个或一个以上实施例。充分详细地描述这些实施例以使所属领域的技术人员能够实践本发明的所述实施例,且应理解,可利用其它实施例且可在不背离本发明的范围的情况下作出过程、电及/或结构改变。如本文中所使用,标号“N”(特定来说关于图式中的参考编号)指示本发明的一个或一个以上实施例可包含如此标示的若干个特定特征。所述标号可表示相同数目或不同数目个特定特征。
[0015] 本文中的图遵循以下编号惯例:其中第一个数位或前几个数位对应于绘图编号且剩余数位识别图式中的元件或组件。不同图之间的类似元件或组件可通过使用类似数位来识别。举例来说,110可指代图1中的元件“10”,且可将图2中的类似元件指代为210。如将了解,可添加、更换及/或消除本文中各种实施例中所展示的元件以便提供本发明的若干个额外实施例。另外,如将了解,图中所提供的元件的比例及相对比例尺打算图解说明本发明的实施例且不应视为限定意义。
[0016] 图1是根据包含本发明的一个或一个以上实施例的存储器系统120的计算系统100的功能框图。在图1中所图解说明的实施例中,存储器系统120(例如,固态驱动器(SSD))可包含存储器控制器101、物理接口103及一个或一个以上固态存储器装置130-1、...、130-N(例如,NAND快闪装置)。如图1中所图解说明,存储器控制器101可耦合到物理接口103且耦合到固态存储器装置130-1、...、130-N。
[0017] 物理接口103可用于在存储器系统120与另一装置(例如主机系统102)之间传递信息。主机系统102可包含存储器存取装置,例如处理器。所属领域的技术人员将了解,“处理器”可意指一个或一个以上处理器,例如,平行处理系统、若干个协处理器等。主机系统的实例包含膝上型计算机、个人计算机、数码相机、数字记录与回放装置、移动电话、PDA、存储器卡读卡器、接口集线器等。对于一个或一个以上实施例,物理接口103可呈标准化物理接口的形式。举例来说,当存储器系统120在计算系统100中用于数据存储时,物理接口103可为串行先进技术附接(SATA)、高速外围组件互连(PCIe)或通用串行总线(USB)以及其它物理接口。然而,一般来说,物理接口103可提供物理连接以用于在存储器系统120的控制器101的主机接口(例如图2中的主机接口210)与具有用于物理接口103的兼容接纳器的主机系统102之间传递控制、地址、数据及其它信号。
[0018] 存储器控制器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的所要存取。
[0019] 图1的实施例可包含额外电路,为不使本发明的实施例模糊未图解说明所述额外电路。举例来说,存储器系统120可包含用以锁存经由I/O电路在I/O连接上提供的地址信号的地址电路。地址信号可由行解码器及列解码器接收并解码以存取固态存储器装置130-1、...、130-N。所属领域的技术人员将了解,地址输入连接的数目可取决于固态存储器装置130-1、...、130-N的密度及架构。
[0020] 图2是包含根据本发明的一个或一个以上实施例的存储器控制器201的系统200的功能框图。控制器201可类似于图1中所图解说明的控制器101。在一个或一个以上实施例中,控制器201可为存储器系统(例如SSD)的组件。所属领域的技术人员将了解,除图2中所图解说明的那些电路及组件以外还可提供额外电路及组件,且已减少图2的控制器细节以便易于图解说明。
[0021] 如图2中所展示,存储器控制器201可耦合到一个或一个以上固态存储器装置230。固态存储器装置230可类似于图1中所图解说明的固态存储器装置130-1、...、130-N。
控制器201可包含前端部分204及后端部分206。所述存储器控制器可包含耦合于主机接口210与数据传送电路(例如,直接存储器存取(DAM)模块214)之间的若干个前端组件。
所述存储器控制器还可包含耦合于DMA模块214与存储器接口(例如,错误检测电路/存储器接口(I/F)222的存储器接口组件)之间的若干个后端组件。在一个或一个以上实施例中,错误检测电路/存储器I/F 222的错误检测电路组件可为错误校正码
[0022] (ECC)引擎。一般来说,存储器控制器201可借助前端204来处理从主机系统202(例如,图1中的主机系统102)接收或传送到所述主机系统202的命令及数据。一般来说,存储器控制器201可借助后端206来管理与固态存储器装置230的通信以在固态存储器装置230上读取、写入及擦除数据以及进行其它操作。然而,控制器201可在前端204及后端206中的任一者或两者上处置命令处理及存储器通信管理的某些方面。如图2中所图解说明,主机接口210及DMA模块214可为前端组件。
[0023] 如图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中展示此细节。
[0024] 主机接口210可与DMA模块214及前端错误检测电路(例如,循环冗余校验(CRC)引擎212)耦合。虽然图解说明为“CRC引擎”212,但错误检测电路可提供除循环冗余校验以外的功能。举例来说,错误检测电路可包含重复方案、奇偶方案、校验和、基于汉明距离的校验、散列函数、水平及垂直冗余校验、极性方案及/或错误校正方案(例如ECC)以及其它方案。在一个或一个以上实施例中,主机接口210可与前端CRC引擎212直接耦合且可与DAM模块214直接耦合。
[0025] 在一个或一个以上实施例中,前端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。
[0026] 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的共同提及并不排除具有作为单独组件的错误检测电路及存储器接口的实施例。同样,本文中对任一组件的个别提及并不排除其中包含错误检测电路与存储器接口作为一个组件的实施例。
[0027] 后端CRC存储器216可经配置以存储由前端CRC引擎212计算的CRC数据。后端CRC存储器216可耦合到ECC引擎/存储器I/F 222且经配置以从ECC引擎/存储器I/F222的存储器接口部分接收并存储数据,例如,先前已存储于固态存储器装置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模块的操作的额外细节。
[0028] 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/F222的ECC引擎部分可经配置以计算对应数据扇区连同所附加CRC数据(例如,由前端CRC引擎212计算的CRC数据)的ECC数据。在读取操作期间,ECC引擎/存储器I/F 222的ECC引擎部分可经配置以在若干个数据扇区位于后端数据缓冲器218中时校正所述若干个数据扇区中的错误。ECC引擎/存储器I/F 222的ECC引擎部分可经配置以在CRC数据位于后端CRC存储器216中时校正所述CRC数据中的错误。实施例并不限于校正这些特定位置中的错误。
[0029] 在一个或一个以上实施例中,存储器控制器201可经配置以针对写入操作跨越ECC引擎/存储器I/F 222将若干数据扇区、对应的所计算CRC数据及对应ECC数据或其不同组合传送(例如)到固态存储器装置230。也就是说,所述控制器可经配置以将数据扇区、对应CRC数据及对应ECC数据存储于固态存储器装置230中的位置中。
[0030] 一个或一个以上实施例可包含(例如)结合写入操作借助主机接口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中。
[0031] 如上文所述,可按双字(32位)数量在帧信息结构(FIS)的内容上计算CRC数据,也有其它CRC计算方法。然而,从主机系统202接收的数据有效负载可包含数据有效负载的若干个扇区,例如,512个字节部分。根据一些先前方法,可计算所述数据有效负载整体而非所述数据有效负载中所包含的每一数据扇区的CRC数据。也就是说,即使CRC数据传播经过链路层207或输送层209,所述CRC数据也可不对特定数据扇区有用,此至少部分地由于数据可按不同于将其写入到存储器装置(例如,图1中的存储器装置130-1)及/或从所述存储器装置读取其所按的数量的数量传送到存储器系统(例如,图1中的存储器系统120)及/或从所述存储器系统传送。因此,针对有效负载使用与针对与读取及/或写入操作相关联的若干个数据扇区相同的CRC数据,即使对于相同数据,也可不提供所述若干个数据扇区的数据完整性。
[0032] 相比之下,根据本发明的一个或一个以上实施例,在逐扇区基础上计算每一数据扇区的CRC数据,例如,可计算每一数据扇区的唯一CRC数据。举例来说,如果数据有效负载包括2048个字节,那么可计算四个512字节数据扇区中的每一者的CRC数据。可从控制器201在前端204处(例如,在主机接口210处)从主机系统202接收所述若干个扇区的点到其中将所述若干个扇区从后端206传送到固态存储器装置230的点提供所述若干个扇区的数据完整性。提供数据完整性可包含从主机接口210到ECC引擎/存储器I/F 222及/或到固态存储器装置230维持数据扇区的相同CRC数据。
[0033] 在一个或一个以上实施例中,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/F 222的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。
[0034] 根据本发明的一个或一个以上实施例,例如上文所描述的读取操作,可提供所述若干个数据扇区的数据完整性。也就是说,可从控制器201的后端206从固态存储器装置230接收所述若干个扇区(例如,在ECC引擎/存储器I/F 222处)的点到其中跨越主机接口210传送所述若干个扇区(例如,从前端204到主机系统202)的点提供所述若干个数据扇区的数据完整性。提供数据完整性可包含从固态存储器装置230到主机接口210维持相同CRC数据。
[0035] 图3是包含根据本发明的一个或一个以上实施例的存储器控制器301的系统300的功能框图。控制器301可类似于图1中所图解说明的控制器101。在一个或一个以上实施例中,控制器301可为存储器系统(例如,SSD)的组件。所属领域的技术人员将了解,除图3中所图解说明的那些电路及组件以外还可提供额外电路及组件,且已减少图3的控制器细节以便易于图解说明。
[0036] 图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缓冲器。
[0037] 如图3中所图解说明,AES引擎326可经配置以接收若干个数据扇区,例如数据有效负载(DMA有效负载),例如,从由控制器301接收的若干个数据包获得的数据串流。在加密之前,所述若干个数据扇区可为明文(P.T.)。AES引擎326可经布置及经配置以任选地处理所述若干个数据扇区以向DMA模块314提供经加密输出,例如,密文(C.T.)。在一个或一个以上实施例中,AES引擎326可任选地处理所述若干个数据扇区,此意指所述AES引擎可将所述若干个数据扇区从明文加密成密文,或AES引擎326可在不加密的情况下将所述若干个数据扇区传送到DMA模块314,例如,以明文形式。
[0038] 在一个或一个以上实施例中,可利用前端CRC引擎312与前端主机缓冲器324(例如,如所展示的FIFO 324)并行接收经由主机接口310从主机系统接收的若干个数据扇区。可将所述若干个数据扇区从主机缓冲器324传送到AES引擎326,其中可将所述若干个数据扇区从明文加密成密文。在加密之后,可将所述若干个数据扇区从AES引擎326传送到DMA模块314以供进一步处理。加密引擎的操作的额外实例更详细地描述于标题为“并行加密/解密(Parallel Encryption/Decryption)”的具有至少一个共同发明人的共同受让的第
12/333,822号美国专利申请案中。
[0039] 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号美国专利申请案中。
[0040] 控制器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。
[0041] 图4是包含根据本发明的一个或一个以上实施例的存储器控制器401的系统400的功能框图。控制器401可类似于图1中所图解说明的控制器101。在一个或一个以上实施例中,控制器401可为存储器系统(例如,SSD)的组件。所属领域的技术人员将了解,除图4中所图解说明的那些电路及组件以外还可提供额外电路及组件,且已减少图4的控制器401的细节以便易于图解说明。
[0042] 图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。
[0043] 然而,在一个或一个以上实施例中,后端通道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引擎。
[0044] 后端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中。
[0045] 一个或一个以上实施例可包含(例如)结合写入操作借助前端CRC引擎412-F从主机接口410的链路层407及/或输送层409接收若干个数据扇区。前端CRC引擎412-F可经配置以计算每一数据扇区的第一CRC数据。因此,对于所述写入操作,可在控制器401的前端404上维持所述若干个数据扇区的数据完整性,此至少部分地由于在对所述若干个数据扇区执行其它操作之前或与对所述若干个数据扇区执行其它操作分开地计算所述若干个数据扇区的CRC数据。可将所述第一CRC数据传送到DMA模块414。
[0046] 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。
[0047] 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中的信息量减少。
[0048] 在一个或一个以上实施例中,如果后端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上提供所述若干个数据扇区的数据完整性。
[0049] 一个或一个以上存储器系统操作实施例可包含读取操作,其包含从一个或一个以上固态存储器装置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传送所述若干个数据扇区。
[0050] 因此,对于所述读取操作,可从控制器401的后端406到前端404维持若干个数据扇区的数据完整性,此至少部分地由于在从ECC引擎/存储器I/F 422-1、...、422-N传送所述若干数据扇区之后计算所述若干个数据扇区中的每一者的CRC数据。此外,将先前所计算的CRC数据传送到控制器401的前端404以供与特定数据扇区的新计算的CRC数据进行比较可帮助检验所述特定数据扇区的完整性是否得以维持。因此,本发明的一个或一个以上实施例可在控制器401上提供若干个数据扇区的数据完整性。
[0051] 结论
[0052] 本发明包含用于存储器控制器中的数据完整性的方法、装置及系统。一个存储器控制器实施例包含主机接口及耦合到所述主机接口的第一错误检测电路。所述存储器控制器可包含存储器接口及耦合到所述存储器接口的第二错误检测电路。所述第一错误检测电路可经配置以计算从所述主机接口接收的数据的错误检测数据并校验传输到所述主机接口的数据的完整性。所述第二错误检测电路可经配置以计算传输到所述存储器接口的数据及第一错误校正数据的错误校正数据并校验从所述存储器接口接收的数据及第一错误校正数据的完整性。
[0053] 将理解,当元件称为“在另一元件上”、“连接到另一元件”或“与另一元件耦合”时,其可直接在其它元件上、与其它元件连接或与其它元件耦合或者可存在中间元件。相比之下,当元件称为“直接在另一元件上”、“直接连接到另一元件”或“与另一元件直接耦合”时,不存在中间元件或层。如本文中所使用,术语“及/或(and/or)”包含相关联所列条目中的一者或一者以上的任一及所有组合。
[0054] 将理解,虽然本文中可使用术语第一、第二等来描述各种元件,但这些元件不应受这些术语限制。这些术语仅用于区别一个元件与另一元件。因此,在不背离本发明的教示内容的情况下,可将第一元件称为第二元件。
[0055] 虽然本文中已图解说明及描述了具体实施例,但所属领域的技术人员应了解,经计算以实现相同结果的布置可替代所展示的具体实施例。本发明打算涵盖本发明的一个或一个以上实施例的改动或变化形式。应理解,以上说明是以图解说明方式而非限定性方式作出。在审阅以上说明之后,所属领域的技术人员将明了以上实施例的组合及本文中未具体描述的其它实施例。本发明的一个或一个以上实施例的范围包含其中使用以上结构及方法的其它应用。因此,应参考所附权利要求书连同授权此权利要求书的等效内容的全部范围来确定本发明的一个或一个以上实施例的范围。
[0056] 在前述实施方式中,出于简化本发明的目的,将一些特征一起集合于单个实施例中。不应将本发明的此方法解释为反映本发明的所揭示实施例必须使用比明确陈述于每一权利要求中更多的特征的意图。而是,如以上权利要求书反映:发明性标的物在于少于单个所揭示实施例的所有特征。因此,特此将以上权利要求书并入到实施方式中,其中每一权利要求独立地作为单独实施例。