CN101609418A - 在具有共享错误位码的共同帧中传送数据和数据屏蔽位的系统 - Google Patents

在具有共享错误位码的共同帧中传送数据和数据屏蔽位的系统 Download PDF

Info

Publication number
CN101609418A
CN101609418A CNA2009101463029A CN200910146302A CN101609418A CN 101609418 A CN101609418 A CN 101609418A CN A2009101463029 A CNA2009101463029 A CN A2009101463029A CN 200910146302 A CN200910146302 A CN 200910146302A CN 101609418 A CN101609418 A CN 101609418A
Authority
CN
China
Prior art keywords
frame
xor
data
crc
integrated 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
CNA2009101463029A
Other languages
English (en)
Other versions
CN101609418B (zh
Inventor
K·S·贝恩斯
D·W·布热津斯基
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN101609418A publication Critical patent/CN101609418A/zh
Application granted granted Critical
Publication of CN101609418B publication Critical patent/CN101609418B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • 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
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1045Read-write mode select circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1069I/O lines read out arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Detection And Correction Of Errors (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明的实施例一般针对在具有共享错误位码的共同帧中传送数据和数据屏蔽位的系统、方法和装置。存储系统使用数据帧在主机和存储设备之间传送数据。在一些情况下,系统还可以在数据帧中(而不是通过单独的位通道)传送一个或多个数据屏蔽位。系统可以生成错误位校验和(例如循环冗余码或CRC)以覆盖数据位和数据屏蔽位。在一些实施例中,在共同帧中传送数据位、数据屏蔽位和校验和位。

Description

在具有共享错误位码的共同帧中传送数据和数据屏蔽位的系统
技术领域
本发明的实施例一般涉及集成电路领域,尤其涉及在具有共享错误位码的共同帧中传送数据和数据屏蔽位的系统、方法和装置。
背景技术
存储系统可以使用半写命令来表明所传送的数据中的至少一些将要被屏蔽。实现半写的常规方法包括专用数据屏蔽引脚的使用。例如,系统可以包括针对数据的每一个字节通道的专用数据屏蔽引脚。因此,x16宽的设备典型地包含两个专用数据屏蔽引脚。该数据屏蔽引脚典型地被固定在与数据信号相同的频率。在许多情况下,x4设备不支持数据屏蔽,因为它们主要应用于具有错误校正码(ECC)并且执行“读-修改-写”操作的服务器中。
此外,存储系统中信息的传送速率持续增加。这些更快的传送速率要求使用改进的错误覆盖机制。改进错误覆盖的常规方法包括向通道添加引脚。在现代的存储系统中,动态随机存取存储器(DRAM)通道是有引脚约束的。因而,用于改进错误覆盖的常规方法对于现代的存储系统是不适用的。
附图说明
在附图的图中以示例而非限制的方式说明了本发明的实施例,图中相似的参考标记指代相似的元件。
图1是说明根据本发明的实施例所实现的计算系统的选定方面的高级框图。
图2说明了根据本发明的实施例的具有数据屏蔽位和循环冗余码位的x8写帧的选定方面。
图3说明了根据本发明的实施例的更详细的x8帧的位映射。
图4说明了根据本发明的实施例的具有循环冗余码位的x4帧的选定方面。
图5是说明根据本发明的实施例实现的对于主机的写数据路径的选定方面的框图。
图6是说明根据本发明的实施例实现的对于存储设备的读数据路径的选定方面的框图。
图7是说明根据本发明的实施例,用于在具有共享错误位校验和的共同帧中传送数据和数据屏蔽位的方法的选定方面的流程图。
具体实施方式
本发明的实施例一般针对在具有共享错误位码的共同帧中传送数据和数据屏蔽位的系统、方法和装置。存储系统使用数据帧在主机和存储设备间传送数据。在一些情况下,系统也可以在数据帧中(而不是通过单独的位通道)传送一个或多个数据屏蔽位。在一些实施例中,系统生成错误位校验和(例如循环冗余码或CRC)以覆盖数据位和数据屏蔽位。正如下面进一步描述的,在一些实施例中,数据位、数据屏蔽位和校验和位在共同帧中被传送。
本发明的实施例描述如下,其中CRC用于为传输错误提供错误覆盖。然而,可以意识到,在可选的实施例中可以使用不同的错误位机制。例如,在可选的实施例中,可以使用奇偶位、错误校正码等为传输错误提供覆盖。术语“错误位”(例如CRC位)指为一个或多个数据位提供错误覆盖的位。
图1是说明了根据本发明的实施例所实现的计算系统的选定方面的高级框图。在所说明的实施例中,系统100包括主机110(例如存储器控制器)和存储设备120(例如DRAM)。在可选的实施例中,系统100可以包括更多的元件、更少的元件、和/或不同的元件。
互连101连接主机110与存储设备120。在一些实施例中,互连101(至少部分地)是点到点互连。在其它的实施例中,互连101(至少部分地)是多分支总线。在一些实施例中,互连101至少部分地遵守定义双数据率总线(例如DDR1、DDR2、DDR3、DDR4等)的一个或多个标准和/或规范。在所说明的实施例中,互连101包括命令/地址通道102和数据(或DQ)通道104。在其它的实施例中,互连101可以包括更多的元件、更少的元件、和/或不同的元件。
命令/地址(C/A)通道102提供用于向存储设备120发送命令和地址的多个通道。DQ通道104提供双向读/写数据总线。在可选的实施例中,DQ通道104可以是单向的。为便于说明,本发明的实施例针对x8存储设备予以描述。然而,可以意识到,本发明的实施例可以包括其它的设备数据宽度,例如x4,x16,x32等等。
主机110控制去往和来自存储设备120的数据传送。在一些实施例中,主机110被集成在与一个或多个处理器相同的管芯上。在其它的实施例中,主机110是计算系统的芯片组的一部分。主机110可以使用多种命令来控制数据的传送。例如,编码用于全写的命令可以定义为“W”。在一些实施例中,主机110支持半写(例如Wm)命令。半写指一种写操作,其中使用一个或多个数据屏蔽位来屏蔽写数据中的至少一些。在一些实施例中,在与相应的数据位相同的帧中传送数据屏蔽位。
主机110特别包括CRC逻辑112、组帧逻辑114和启用/禁止逻辑116。CRC逻辑112使得主机110能够支持带内CRC机制。例如,CRC逻辑112使得主机110能够生成在一个或多个数据帧中(例如在DQ通道104上)传送的CRC校验和。在一些实施例中,可以为半写帧来生成CRC校验和。CRC校验和可以覆盖写帧中的(至少一些)数据位和(至少一些)数据屏蔽位。在一些实施例中,数据位、数据屏蔽位和相应的校验和在共同帧(例如在DQ通道104上)中被传送。
在一些实施例中,可以选择性地启用或者禁止使用CRC来覆盖数据帧。例如,在所说明的实施例中,主机110包括启用/禁止逻辑116以选择性地启用或者禁止CRC的使用。在一些实施例中,启用/禁止逻辑116可以包括一个或多个寄存器位(例如模式寄存器设置或MRS位)。
主机110还可以包括组帧逻辑114。组帧逻辑114包括用于组合传送至存储设备120的帧的逻辑。同样地,逻辑114还可以包括用于分解从存储设备120接收到的帧的逻辑。在一些实施例中,组帧逻辑114能够组合不止一种类型的数据帧(例如数据帧106A、106B和106C)。表1示出了根据本发明的一些实施例的三种示例帧类型。可以意识到,在可选的实施例中,可以使用其它的帧类型。
表1
  帧类型   说明   使用示例
  1   72位上的CRC8   x8:64个数据位+8个屏蔽位
  2   64位上的CRC8   x8:64个数据位
  3   32位上的CRC8   x4:32个数据位
存储设备120为系统100(至少部分地)提供主系统存储器。在一些实施例中,存储设备120是DRAM设备(例如DDR1、DDR2、DDR3、DDR4等)。存储设备120包括CRC逻辑122、组帧逻辑124和启用禁止逻辑126。在一些实施例中,CRC逻辑122使得存储设备120能够支持带内CRC机制(例如在DQ通道104上)。术语“带内CRC机制”指在不添加额外引脚的情况下支持CRC(或其它错误位方案)。CRC逻辑122可以包括CRC生成逻辑以根据接收到的数据帧生成本地校验和。可以将本地校验和与在帧中传送的校验和进行比较来确定是否存在任何传输错误。当发生传输错误时,存储设备120可以发信号通知主机110。
组帧逻辑124包括用于组合从主机110传送的帧的逻辑。逻辑124还可以包括用于分解从主机110接收到的帧的逻辑。在一些实施例中,组帧逻辑124能够组合不止一种类型的数据帧(例如数据帧106)。
在一些实施例中,可以选择性地启用或者禁止用于覆盖数据帧的CRC使用。例如,在所说明的实施例中,存储设备120包括启用/禁止逻辑126以选择性地启用或者禁止CRC的使用。在一些实施例中,启用/禁止逻辑126可以包括一个或多个寄存器位(例如模式寄存器设置或MRS位)。
图2说明了根据本发明的实施例的具有数据屏蔽位和循环冗余码位的x8写帧的选定方面。写数据帧200说明了正被写至存储器的一帧数据。在所说明的实施例中,启用CRC并且帧200是半写帧(例如,它包括数据屏蔽位)。开始的八个UI传送写数据(例如,UI0至UI7)。单位间隔8传送CRC位(例如,在所示实施例中的CRC字节)。在一些实施例中,CRC字节覆盖数据字节(UI0至UI7)和数据屏蔽字节(例如UI9)。单位间隔9传送确定哪个数据字节被屏蔽的数据屏蔽位。在一些实施例中,每一个数据屏蔽位确定具有相应编号的数据字节是否被屏蔽(例如,DM0指示字节0是否被屏蔽,DM1指示字节1是否被屏蔽等)。表1列出了根据本发明的一些实施例的数据屏蔽位和写数据字节之间的联系。在可选的实施例中,数据屏蔽位和写数据字节(或者位、半字节等)之间的联系可以是不同的。
表2
  数据屏蔽位   由数据屏蔽位覆盖的字节
  DM0   字节0
  DM1   字节1
  DM2   字节2
  DM3   字节3
  DM4   字节4
  DM5   字节5
  DM6   字节6
  DM7   字节7
图3说明了根据本发明的实施例的更详细的x8帧的位映射。类似帧200,帧300在开始的八个UI(UI0至UI7)中传送数据位。它也在UI8中传送CRC位并且在UI9中传送数据屏蔽位。帧300中的数据位采用蜿蜒模式映射于帧300的列以增加由CRC位提供的覆盖的有效性。例如,在UI7中列的底端(在通道DQ7中)的位是q7。在序列中的下一位q8位于UI6定义的列的底端。在同一列的顶端的位是q15。在序列中的下一位q16位于UI5定义的列的顶端。这种模式重复于帧300的列中。
在一些实施例中,对于8位CRC的生成多项式是x^8+x^5+x^3+x^2+x+1。在二进制中,该多项式可以表示为0b0 10010111。在一些实施例中,主机(例如图1所示的主机110)可以生成CRC校验和并且可以利用与下列算法(例如,包括数据屏蔽位的帧)等价的适当函数来形成写数据帧:
1)设置Q[71:0]={DM[7:0].q[63:0]}
2)设置CRC[7:0]=当Q[71:0]除以0b0 10010111时的余数。
在算法的第一阶段,将数据屏蔽位放入写数据帧的最高有效位(MSB)。这些位可以被清零。数据可以被放入没有被清零的剩余的位区域(例如最低有效位)。在可选的实施例中,可以使用不同的算法。
DRAM接收由主机生成的码字(例如Q[71:0])。在一些实施例中,DRAM使用与下列算法等价的适当函数检测接收到的码字中的错误:
3)设置R[7:0]=当Q[71:0]除以0b0 10010111时的余数。
4)如果R[7:0]不等于CRC[7:0],则接收到的码字包含一个或多个错误。
5)使用来自DRAM的错误(ERROR)信号报告错误。
第一阶段(步骤#3)根据接收到的码字生成“本地校验和”。将本地校验和与接收到的校验和(例如在步骤#2生成的校验和)作比较。如果检测到错误,则DRAM可以向主机提供错误信号(例如步骤#5)。在可选的实施例中,可以使用不同的算法。
在一些实施例中,根据生成多项式x^8+x^5+x^3+x^2+x+1的CRC XOR等式如下:0x97p(x)=(x+1)(x^7+x^6+x^5+x^2+1)。在以D(71)和CRC(7)作为最高有效位的VHDL等式格式中,XOR等式可以被表示为如下:
CRC(0):=D(70)xor D(69)xor D(67)xor D(64)xor D(63)xor D(61)xor
D(59)xor D(58)xor D(54)xor D(53)xor D(51)xor D(50)xor
D(49)xor D(46)xor D(45)xor D(44)xor D(42)xor D(38)xor
D(37)xor D(36)xor D(35)xor D(33)xor D(32)xor D(31)xor
D(30)xor D(27)xor D(25)xor D(24)xor D(23)xor D(22)xor
D(21)xor D(15)xor D(12)xor D(11)xor D(10)xor D(9)xor
D(8)xor D(7)xor D(5)xor D(3)xor D(0);
CRC(1):=D(71)xor D(69)xor D(68)xor D(67)xor D(65)xor D(63)xor
D(62)xor D(61)xor D(60)xor D(58)xor D(55)xor D(53)xor
D(52)xor D(49)xor D(47)xor D(44)xor D(43)xor D(42)xor
D(39)xor D(35)xor D(34)xor D(30)xor D(28)xor D(27)xor
D(26)xor D(21)xor D(16)xor D(15)xor D(13)xor D(7)xor
D(6)xor D(5)xor D(4)xor D(3)xor D(1)xor D(0);
CRC(2):=D(68)xor D(67)xor D(66)xor D(62)xor D(58)xor D(56)xor
D(51)xor D(49)xor D(48)xor D(46)xor D(43)xor D(42)xor
D(40)xor D(38)xor D(37)xor D(33)xor D(32)xor D(30)xor
D(29)xor D(28)xor D(25)xor D(24)xor D(23)xor D(21)xor
D(17)xor D(16)xor D(15)xor D(14)xor D(12)xor D(11)xor
D(10)xor D(9)xor D(6)xor D(4)xor D(3)xor D(2)xor
D(1)xor D(0);
CRC(3):=D(70)xor D(68)xor D(64)xor D(61)xor D(58)xor D(57)xor
D(54)xor D(53)xor D(52)xor D(51)xor D(47)xor D(46)xor
D(45)xor D(43)xor D(42)xor D(41)xor D(39)xor D(37)xor
D(36)xor D(35)xor D(34)xor D(32)xor D(29)xor D(27)xor
D(26)xor D(23)xor D(21)xor D(18)xor D(17)xor D(16)xor
D(13)xor D(9)xor D(8)xor D(4)xor D(2)xor D(1)xor
D(0);
CRC(4):=D(71)xor D(69)xor D(65)xor D(62)xor D(59)xor D(58)xor
D(55)xor D(54)xor D(53)xor D(52)xor D(48)xor D(47)xor
D(46)xor D(44)xor D(43)xor D(42)xor D(40)xor D(38)xor
D(37)xor D(36)xor D(35)xor D(33)xor D(30)xor D(28)xor
D(27)xor D(24)xor D(22)xor D(19)xor D(18)xor D(17)xor
D(14)xor D(10)xor D(9)xor D(5)xor D(3)xor D(2)xor
D(1);
CRC(5):=D(69)xor D(67)xor D(66)xor D(64)xor D(61)xor D(60)xor
D(58)xor D(56)xor D(55)xor D(51)xor D(50)xor D(48)xor
D(47)xor D(46)xor D(43)xor D(42)xor D(41)xor D(39)xor
D(35)xor D(34)xor D(33)xor D(32)xor D(30)xor D(29)xor
D(28)xor D(27)xor D(24)xor D(22)xor D(21)xor D(20)xor
D(19)xor D(18)xor D(12)xor D(9)xor D(8)xor D(7)xor
D(6)xor D(5)xor D(4)xor D(2)xor D(0);
CRC(6):=D(70)xor D(68)xor D(67)xor D(65)xor D(62)xor D(61)xor
D(59)xor D(57)xor D(56)xor D(52)xor D(51)xor D(49)xor
D(48)xor D(47)xor D(44)xor D(43)xor D(42)xor D(40)xor
D(36)xor D(35)xor D(34)xor D(33)xor D(31)xor D(30)xor
D(29)xor D(28)xor D(25)xor D(23)xor D(22)xor D(21)xor
D(20)xor D(19)xor D(13)xor D(10)xor D(9)xor D(8)xor
D(7)xor D(6)xor D(5)xor D(3)xor D(1);
CRC(7):=D(71)xor D(69)xor D(68)xor D(66)xor D(63)xor D(62)xor
D(60)xor D(58)xor D(57)xor D(53)xor D(52)xor D(50)xor
D(49)xor D(48)xor D(45)xor D(44)xor D(43)xor D(41)xor
D(37)xor D(36)xor D(35)xor D(34)xor D(32)xor D(31)xor
D(30)xor D(29)xor D(26)xor D(24)xor D(23)xor D(22)xor
D(21)xor D(20)xor D(14)xor D(11)xor D(10)xor D(9)xor
D(8)xor D(7)xor D(6)xor D(4)xor D(2);
图4说明了根据本发明的实施例的具有循环冗余码位的x4帧的选定方面。帧400在开始的8个UI(UI0至UI7)中传送数据位。它也在UI8和UI9中传送CRC位。在所说明的实施例中,帧400不包括数据屏蔽位,因为在许多情况下,由于x4设备主要被用在具有错误校正码(ECC)并且执行“读-修改-写”操作的服务器中,所以它们不支持数据屏蔽。帧400中的数据位采用蜿蜒模式映射于帧400的列以增加由CRC位提供的覆盖的有效性。
图5是说明根据本发明的实施例实现的对于主机的写数据路径的选定方面的框图。主机500特别包括核心逻辑502、CRC生成器504和发送(TX)组帧单元506。在可选的实施例中,主机500包括更多的元件、更少的元件、和/或不同的元件。例如,核心逻辑502包括用于调度对主存储器的读和写的调度逻辑以及当发生传输错误时用于重试操作的重试逻辑。此外,核心逻辑502包括用于生成数据屏蔽位508的逻辑,以屏蔽相应的写数据位510中的至少一些。
在操作中,例如,核心逻辑502调度半写操作,并且向TX组帧单元506和CRC生成器504提供写数据(510)和相应的数据屏蔽位(508)。在一些实施例中,CRC生成器504根据写数据和数据屏蔽位来生成CRC校验和。可以采用广泛的CRC算法,例如包括使用六层的XOR树来计算CRC校验和的算法。在可选的实施例中,可以使用不同数目的XOR树或者不同算法来生成CRC校验和。在一些实施例中,写数据路径和读数据路径使用相同的XOR树来生成CRC校验和。
TX组帧单元506将写数据(510)、数据屏蔽位(508)和相应的CRC校验和编入一个或多个写数据帧(例如写数据帧512)。在一些实施例中,根据诸如是否启用CRC和DRAM的宽度之类的因素,TX组帧单元506能够生成不同的帧类型。例如,TX组帧单元506能够生成第一帧类型,其包括CRC8、64个数据位和8个数据屏蔽位(例如,对于x8设备)。TX组帧单元506还能够生成具有CRC8和64个数据位(例如,对于x8设备)的第二帧类型。如果主机500与x4设备相耦合,则可以支持具有在32位上的CRC8的第三帧类型。在可选的实施例中,可以支持更多的帧类型、更少的帧类型、和/或不同的帧类型。经由DQ总线,写数据帧(512)被传送至一个或多个存储设备(例如DRAM)。
图6是说明根据本发明的实施例实现的对于存储设备的读数据路径的选定方面的框图。存储设备600特别包括存储阵列602、发送(TX)组帧单元604、CRC生成器606和CRC禁止逻辑608。在可选的实施例中,存储设备600可以包括更多的元件、更少的元件、和/或不同的元件。在一些实施例中,存储设备600是动态随机存取存储设备(DRAM)。
在操作中,存储设备600在C/A总线(例如C/A总线102)上从主机(例如主机110)接收读命令。从存储阵列602读取数据并将其提供给TX组帧单元604。该读数据还被提供给用于计算CRC校验和的CRC生成器606。在一些实施例中,使用六层XOR树来计算CRC校验和。在可选的实施例中,可以使用不同数目的XOR树或者不同算法来生成CRC校验和。在一些实施例中,读数据路径和写数据路径使用相同的XOR树来生成CRC校验和。
TX组帧单元604接收读数据位和校验和位并将它们编入写数据帧中。在一些实施例中,例如,例如根据是否启用CRC,TX组帧单元604能够使用不同的帧类型。例如,TX组帧单元604在启用CRC时使用第一帧类型并且在禁止CRC时使用第二帧类型。第一帧类型可以包括读数据位和相应的CRC校验和。第二帧类型可以包括没有CRC校验和的读数据位。存储设备600可以经由DQ总线610将(具有或没有CRC校验和的)读数据帧传送至主机。
存储设备600包括CRC禁止逻辑608。在一些实施例中,CRC禁止逻辑608禁止存储设备600使用CRC。因此,在一些实施例中,存储设备600可以被配置为与读数据一起使用CRC校验和,或者被配置为不与读数据(和/或写数据)一起使用CRC校验和。在一些实施例中,CRC禁止逻辑包括模式寄存器设置(MRS)的一部分。
图7是根据本发明的实施例,说明用于在具有共享错误位校验和的共同帧中传送数据和数据屏蔽位的方法的选定方面的流程图。参考处理框702,主机(例如存储器控制器)生成错误位校验和(例如CRC校验和)来为多个数据位覆盖传输错误以及覆盖(例如为半写操作)一个或多个数据屏蔽位。在一些实施例中,主机包括CRC生成器以生成CRC校验和。主机可以为读数据路径和写数据路径使用相同的CRC树。
参照处理框704,主机(使用例如图5所示的发送组帧单元506)将多个数据位编入一个或多个数据帧中。在一些实施例中,根据是否启用CRC和/或是执行半写还是全写,主机可以生成不同的帧类型。在706处,经由数据总线将一个或多个数据帧传送至存储设备(例如DRAM)。
在一些实施例中,DRAM使用包含在由主机提供的帧中的CRC校验和来确定是否发生了传输错误。例如,DRAM可以(基于接收到的数据)生成“本地”CRC校验和并且将该本地校验和与接收到的校验和作比较。如果发生了传输错误,则DRAM可以向主机发送错误信号。参照决定框708,如果主机接收到错误信号,那么它可以重新发送数据(710处)。可选地,如果主机没有接收到错误信号,那么数据可以是有效的(712处)。
也可以将本发明实施例的元件提供为用于存储机器可执行指令的机器可读介质。机器可读介质可以包括但不限于:闪存、光盘、只读光盘(CD-ROM)、数字多用途/视频光盘(DVD)ROM、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、适于存储电子指令的传播媒介或其他类型的机器可读介质。例如,本发明的实施例可以作为计算机程序被下载,可以经由通信链路(例如调制解调器或者网络连接)以包含于载波或其它传输介质中的数据信号的方式,从远程计算机(例如服务器)将该计算机程序传送到请求计算机(例如客户端)。
在上面的描述中,特定的术语被用来描述本发明的多个实施例。例如,术语“逻辑”代表用于执行一种或多种功能的硬件、固件、软件(或者它们的任意组合)。例如,“硬件”的实例包括,但不限于:集成电路、有限状态机、或者甚至是组合逻辑。集成电路可以采用处理器的形式,例如微处理器、专用集成电路、数字信号处理器、微控制器等。
可以意识到,本说明书中提及的“一个实施例”或者“实施例”意味着结合该实施例描述的特定的特征、结构或者特性包含在本发明的至少一个实施例中。因此,需要强调并且应当意识到,在本说明书的不同部分中对于“实施例”、“一个实施例”或者“可选的实施例”的两次或更多次提及不是必然都指相同的实施例。此外,特定的特征、结构或者特性可以适当地组合在本发明的一个或多个实施例中。
同样地,可以意识到,在本发明实施例的上述描述中,为了增强对于不同的创造性方面中的一个或多个方面的理解,出于简化公开的目的,有时候将不同的特征一起组合在单个实施例、附图或者说明书中。然而,这种公开方法不应解释为反映一种意图,即要求保护的主题需要比在每一个权利要求中清楚表述的特征更多的特征。相反地,正如下列权利要求书所表现的,创造性方面在于比单个前述公开的实施例中所有特征更少的特征。因此,将详细说明后面的权利要求书明确地并入该详细说明中。

Claims (29)

1、一种集成电路,包括:
指示逻辑,用于指示对于将要从所述集成电路传送到存储设备的帧是否启用错误位覆盖;
错误位生成逻辑,用于当启用错误位覆盖时生成错误位校验和以覆盖所述帧;以及
组帧逻辑,用于生成所述帧,其中,所述组帧逻辑能够基于包括第一帧类型在内的多种不同的帧类型来生成所述帧,所述第一帧类型具有多个数据位、多个数据屏蔽位和相应的错误位校验和。
2、根据权利要求1所述的集成电路,其中,所述帧是基于所述第一帧类型的。
3、根据权利要求2所述的集成电路,其中,所述数据屏蔽位DM位于所述帧(Q)的最高有效位区域。
4、根据权利要求3所述的集成电路,其中,所述错误位逻辑至少部分地基于用Q除以循环冗余码(CRC)生成多项式来生成校验和C。
5、根据权利要求4所述的集成电路,其中,C包括当Q除以所述CRC生成多项式时的余数。
6、根据权利要求5所述的集成电路,其中,所述CRC生成多项式由表达式0b0 10010111以二进制形式表示。
7、根据权利要求6所述的集成电路,其中,所述帧将要被传送至x8动态随机存取存储器(DRAM)设备,并且Q至少部分地基于下列表达式:
Q[71:0]={DM[7:0].q[63:0]}。
8、根据权利要求7所述的集成电路,其中,C是当Q[71:0]除以0b010010111时的余数。
9、根据权利要求1所述的集成电路,其中,所述组帧逻辑能够基于第二帧类型生成所述帧,所述第二帧类型包括多个数据位和相应的错误位校验和。
10、根据权利要求9所述的集成电路,其中,所述帧是基于所述第二帧类型的,并且所述存储设备是x4动态随机存取存储器(DRAM)设备。
11、根据权利要求10所述的集成电路,其中,所述帧Q的位[71:32]被设置为0。
12、根据权利要求11所述的集成电路,其中,所述校验和C是当Q[71:0]除以0b0 10010111时的余数。
13、根据权利要求1所述的集成电路,还包括:
帧长度控制逻辑,用于确定在所述集成电路和所述存储设备之间传送的帧的长度。
14、根据权利要求13所述的集成电路,其中,对于读处理,如果启用错误位覆盖,则所述帧长度控制逻辑指定N个单位间隔(UI)的帧长度,以及如果未启用错误位覆盖,则所述帧长度控制逻辑指定M个UI的帧长度。
15、根据权利要求13所述的集成电路,其中,对于写处理,如果启用错误位覆盖,则所述帧长度控制逻辑指定N个单位间隔(UI)的帧长度。
16、根据权利要求15所述的集成电路,其中,对于写处理,如果未启用错误位覆盖,则所述帧长度控制逻辑对于全写帧指定N个UI的帧长度,以及对于半写帧指定M个UI的帧长度。
17、根据权利要求13所述的集成电路,其中,N为10并且M为8。
18、根据权利要求1所述的集成电路,其中,所述集成电路包括存储器控制器。
19、一种方法,包括:
至少部分地基于多个数据位和相应的多个数据屏蔽位来生成错误位校验和;以及
生成写帧,所述写帧包括所述多个数据位、所述相应的多个数据屏蔽位和所述错误位校验和。
20、根据权利要求19所述的方法,其中,所述写帧将要被传送至x8动态随机存取存储器(DRAM)设备,并且Q至少部分地基于下列表达式:
Q[71:0]={DM[7:0].q[63:0]}。
21、根据权利要求20所述的方法,其中,所述错误位校验和C是当Q[71:0]除以0b0 10010111时的余数。
22、一种系统,包括:
主机,所述主机包括:
指示逻辑,用于指示对于将要从所述主机传送到动态随机存取存储器(DRAM)设备的帧是否启用循环冗余码(CRC)覆盖;
CRC生成逻辑,用于当启用CRC覆盖时生成CRC校验和以覆盖所述帧;以及
组帧逻辑,用于生成所述帧,其中,所述组帧逻辑能够基于包括第一帧类型在内的多种不同的帧类型来生成所述帧,所述第一帧类型具有多个数据位、多个数据屏蔽位和相应的CRC校验和;以及
所述DRAM设备,其与所述主机相耦合。
23、根据权利要求22所述的系统,其中,所述DRAM设备包括:
CRC生成逻辑,用于至少部分地基于用所述帧除以CRC生成多项式来生成本地CRC校验和;
比较逻辑,用于将所述本地CRC校验和与所述CRC校验和进行比较;以及
错误报告逻辑,用于当所述本地CRC校验和与所述CRC校验和不匹配时提供错误指示。
24、根据权利要求23所述的系统,其中,所述帧是基于所述第一帧类型的。
25、根据权利要求24所述的系统,其中,所述数据屏蔽位DM位于所述帧(Q)的最高有效位区域。
26、根据权利要求25所述的系统,其中,所述错误位逻辑至少部分地基于用Q除以循环冗余码(CRC)生成多项式来生成校验和C。
27、根据权利要求26所述的系统,其中,C包括当Q除以所述CRC生成多项式时的余数。
28、根据权利要求27所述的系统,其中,所述CRC生成多项式由表达式0b0 10010111以二进制形式表示。
29、根据权利要求28所述的系统,其中,所述帧将要被传送至x8动态随机存取存储器(DRAM)设备,并且Q至少部分地基于下列表达式:
Q[71:0]={DM[7:0].q[63:0]}。
CN200910146302.9A 2008-06-18 2009-06-17 在具有共享错误位码的共同帧中传送数据和数据屏蔽位的系统 Expired - Fee Related CN101609418B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/141,339 2008-06-18
US12/141,339 US8196009B2 (en) 2008-06-18 2008-06-18 Systems, methods, and apparatuses to transfer data and data mask bits in a common frame with a shared error bit code

Publications (2)

Publication Number Publication Date
CN101609418A true CN101609418A (zh) 2009-12-23
CN101609418B CN101609418B (zh) 2016-01-20

Family

ID=40957974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910146302.9A Expired - Fee Related CN101609418B (zh) 2008-06-18 2009-06-17 在具有共享错误位码的共同帧中传送数据和数据屏蔽位的系统

Country Status (6)

Country Link
US (1) US8196009B2 (zh)
EP (1) EP2136295B1 (zh)
JP (2) JP2010003299A (zh)
KR (1) KR101093857B1 (zh)
CN (1) CN101609418B (zh)
AT (1) ATE555439T1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103187104A (zh) * 2013-03-19 2013-07-03 西安华芯半导体有限公司 存储器的纠错方法
CN103765522A (zh) * 2011-07-01 2014-04-30 英特尔公司 排特定的循环冗余校验
CN104471645A (zh) * 2012-03-26 2015-03-25 英特尔公司 采用检错编码的事务的存储器设备的定时优化
CN105830160A (zh) * 2013-12-18 2016-08-03 美光科技有限公司 用于将经屏蔽数据写入到缓冲器的设备及方法
CN109474378A (zh) * 2017-09-08 2019-03-15 华为技术有限公司 编码方法及装置
US11296724B2 (en) 2017-09-08 2022-04-05 Huawei Technologies Co., Ltd. Encoding method and apparatus

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8347199B2 (en) * 2009-01-21 2013-01-01 Cisco Technology, Inc. Enhanced error detection in multilink serdes channels
US8612828B2 (en) * 2009-12-22 2013-12-17 Intel Corporation Error correction mechanisms for 8-bit memory devices
KR101688051B1 (ko) * 2010-11-08 2016-12-20 삼성전자 주식회사 에러 검출 코드를 이용한 데이터 처리 장치, 데이터 처리 방법, 데이터 스큐 보상 방법 및 데이터 처리 장치를 포함하는 반도체 장치
US8738993B2 (en) * 2010-12-06 2014-05-27 Intel Corporation Memory device on the fly CRC mode
US9299400B2 (en) 2012-09-28 2016-03-29 Intel Corporation Distributed row hammer tracking
US9081700B2 (en) * 2013-05-16 2015-07-14 Western Digital Technologies, Inc. High performance read-modify-write system providing line-rate merging of dataframe segments in hardware
JP2014225309A (ja) * 2013-05-16 2014-12-04 ピーエスフォー ルクスコ エスエイアールエルPS4 Luxco S.a.r.l. 半導体装置
US9354818B2 (en) 2014-02-25 2016-05-31 Kabushiki Kaisha Toshiba Memory device and data storing method
US9983925B2 (en) 2014-04-11 2018-05-29 Micron Technology, Inc. Apparatuses and methods for fixing a logic level of an internal signal line
DE102015209196A1 (de) * 2014-09-08 2016-03-10 Robert Bosch Gmbh Verfahren zur seriellen Übertragung eines Rahmens über ein Bussystem von einem Sender zu mindestens einem Empfänger und Teilnehmern eines Bussystems
WO2017043113A1 (en) * 2015-09-11 2017-03-16 Kabushiki Kaisha Toshiba Memory device
WO2017072475A1 (en) * 2015-10-27 2017-05-04 Cirus Logic International Semiconductor Limited Transfer of data with check bits
WO2017104440A1 (ja) * 2015-12-16 2017-06-22 ソニー株式会社 通信装置、通信方法、プログラム、および通信システム
US9996414B2 (en) * 2016-07-12 2018-06-12 International Business Machines Corporation Auto-disabling DRAM error checking on threshold
KR20180063475A (ko) * 2016-12-02 2018-06-12 삼성전자주식회사 반도체 장치의 오류 검출 코드 생성 회로, 이를 포함하는 메모리 컨트롤러 및 반도체 메모리 장치

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272703B2 (en) * 1997-08-01 2007-09-18 Micron Technology, Inc. Program controlled embedded-DRAM-DSP architecture and methods
JPH1165943A (ja) * 1997-08-21 1999-03-09 Hitachi Ltd データ転送装置
US6714460B2 (en) 2002-02-21 2004-03-30 Micron Technology, Inc. System and method for multiplexing data and data masking information on a data bus of a memory device
US7287103B2 (en) 2005-05-17 2007-10-23 International Business Machines Corporation Method and apparatus for generating a mask value and command for extreme data rate memories utilizing error correction codes
DE102005040109B4 (de) * 2005-08-24 2007-12-27 Qimonda Ag Halbleiterspeicherchip
US7428689B2 (en) * 2005-08-30 2008-09-23 Infineon Technologies Ag Data memory system and method for transferring data into a data memory
US7734985B2 (en) * 2006-02-27 2010-06-08 Intel Corporation Systems, methods, and apparatuses for using the same memory type to support an error check mode and a non-error check mode
US7774684B2 (en) 2006-06-30 2010-08-10 Intel Corporation Reliability, availability, and serviceability in a memory device
US7757064B2 (en) * 2006-09-07 2010-07-13 Infineon Technologies Ag Method and apparatus for sending data from a memory
KR101308047B1 (ko) * 2007-02-08 2013-09-12 삼성전자주식회사 메모리 시스템, 이 시스템을 위한 메모리, 및 이 메모리를위한 명령 디코딩 방법

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103765522A (zh) * 2011-07-01 2014-04-30 英特尔公司 排特定的循环冗余校验
CN103765522B (zh) * 2011-07-01 2016-11-09 英特尔公司 排特定的循环冗余校验
CN104471645A (zh) * 2012-03-26 2015-03-25 英特尔公司 采用检错编码的事务的存储器设备的定时优化
US9619316B2 (en) 2012-03-26 2017-04-11 Intel Corporation Timing optimization for memory devices employing error detection coded transactions
CN104471645B (zh) * 2012-03-26 2017-04-12 英特尔公司 采用检错编码的事务的存储器设备的定时优化装置和方法
CN103187104A (zh) * 2013-03-19 2013-07-03 西安华芯半导体有限公司 存储器的纠错方法
CN103187104B (zh) * 2013-03-19 2016-11-23 西安紫光国芯半导体有限公司 Dram存储器的纠错方法
CN105830160A (zh) * 2013-12-18 2016-08-03 美光科技有限公司 用于将经屏蔽数据写入到缓冲器的设备及方法
CN105830160B (zh) * 2013-12-18 2018-02-09 美光科技公司 用于将经屏蔽数据写入到缓冲器的设备及方法
CN109474378A (zh) * 2017-09-08 2019-03-15 华为技术有限公司 编码方法及装置
US11296724B2 (en) 2017-09-08 2022-04-05 Huawei Technologies Co., Ltd. Encoding method and apparatus

Also Published As

Publication number Publication date
US8196009B2 (en) 2012-06-05
KR101093857B1 (ko) 2011-12-13
JP2010003299A (ja) 2010-01-07
US20090319877A1 (en) 2009-12-24
JP2013065347A (ja) 2013-04-11
JP5437470B2 (ja) 2014-03-12
EP2136295A1 (en) 2009-12-23
ATE555439T1 (de) 2012-05-15
CN101609418B (zh) 2016-01-20
KR20090131667A (ko) 2009-12-29
EP2136295B1 (en) 2012-04-25

Similar Documents

Publication Publication Date Title
CN101609418B (zh) 在具有共享错误位码的共同帧中传送数据和数据屏蔽位的系统
EP3341844B1 (en) Memory device on-die error checking and correcting code
US10572343B2 (en) Targeted aliasing single error correction (SEC) code
CN102394112B (zh) 改善存储装置的可靠性、可用性及可维修性
US8726140B2 (en) Dummy data padding and error code correcting memory controller, data processing method thereof, and memory system including the same
CN109074851A (zh) 利用额外系统位的内部错误校验和校正(ecc)
US8392796B2 (en) Reliability, availability, and serviceability solution for memory technology
CN102150215B (zh) 用于带内数据掩码比特传输的系统、方法和装置
US20110246857A1 (en) Memory system and method
KR20160019128A (ko) 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US20190088349A1 (en) Device for supporting error correction code and test method thereof
KR20160054395A (ko) 메모리 데이터 에러 정정 방법
KR20110003328A (ko) 별도의 순환 중복 코드 프레임들을 이용하는 효율적인 대역내 신뢰도
US11372717B2 (en) Memory with system ECC
US9239755B2 (en) Semiconductor device and semiconductor system including the same
JP2009157515A (ja) 半導体メモリコントローラおよび半導体メモリ
TW201710900A (zh) 資料儲存系統與其相關方法
CN116244108A (zh) 存储器控制器和存储器的数据写入和读取方法及存储系统
TWI590246B (zh) 採用錯誤偵測編碼處理之用於記憶體裝置的時序優化
TWI740009B (zh) 編碼機制及其編碼方法
CN116069548A (zh) 存储器装置、存储器模块和存储器控制器的操作方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160120

Termination date: 20190617