CN112136115B - 渐进长度错误控制代码 - Google Patents

渐进长度错误控制代码 Download PDF

Info

Publication number
CN112136115B
CN112136115B CN201980033119.XA CN201980033119A CN112136115B CN 112136115 B CN112136115 B CN 112136115B CN 201980033119 A CN201980033119 A CN 201980033119A CN 112136115 B CN112136115 B CN 112136115B
Authority
CN
China
Prior art keywords
xor
data
data packet
bits
entry
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.)
Active
Application number
CN201980033119.XA
Other languages
English (en)
Other versions
CN112136115A (zh
Inventor
J·托马斯·帕夫洛夫斯基
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
Priority claimed from US15/988,968 external-priority patent/US10496478B1/en
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN112136115A publication Critical patent/CN112136115A/zh
Application granted granted Critical
Publication of CN112136115B publication Critical patent/CN112136115B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

可使用装置及方法来在数据分组中附加可缩放数目个奇偶校验位,所述奇偶校验位的数目随所述数据分组的有效负载中的数据位的数目而缩放。所述奇偶校验位可利用条目表来生成。在一些实例中,所述表中的每一条目对应于将包含在所述有效负载中的所述数据位的数目;且所述表的每一列可用于生成所述一或多个奇偶校验位中的对应奇偶校验位。

Description

渐进长度错误控制代码
技术领域
本发明的实施例大体上涉及数据传输领域。更具体来说,本发明的实施例大体上涉及一种利用相对于数据传输中包含的数个数据位缩放的数个奇偶校验位的渐进长度错误控制代码。
背景技术
本章意在向读者介绍可能与下文所描述及/或所主张的本发明的各个方面相关的各个技术方面。本论述被认为有助于向读者提供背景信息以促进对本发明的各个方面的更好理解。因此,应理解,这些陈述应从这种角度来阅读而非作为对现有技术的承认。
常规协议通常以低故障率(例如,使用内部数据总线及/或通过网络在存储器装置之间/内)传输分组。然而,由于行业旨在最小化在存储器装置与其它组件之间移动数据分组时所涉及的能量,因此协议开发者希望开发使用减少的能量有效地移动数据分组同时维持分组传输的完整性的协议。这些常规协议的一个组成部分通常包含错误控制代码(ECC),例如循环冗余校验(CRC)。例如,因特网协议利用CRC32。
本发明的实施例可针对上文所阐述的问题中的一或多者。
附图说明
在阅读以下详细描述且参考附图后,可更好地理解本发明的各个方面,在附图中:
图1说明根据实施例的计算系统的实例的框图;
图2说明根据实施例的可为图1的计算系统的部分的存储器装置的实例的框图;
图3说明根据实施例的可在图1的计算系统内/外经由数据总线传输的分组的分组级视图;
图4说明根据实施例的用来生成用于数据分组的传输的奇偶校验位的过程的流程图;
图5说明根据实施例的用于实施图4的过程的方案;
图6说明根据实施例的用于使用奇偶校验位检测错误/确保在传输期间未引入错误的过程的流程图;及
图7说明根据实施例的用于实施图6的过程的方案。
具体实施方式
下文将描述一或多个特定实施例。为了提供对这些实施例的简要描述,说明书中未描述实际实施方案的所有特征。应明白,在任何此类实际实施方案的开发中,如在任何工程或设计项目中,必须做出众多实施方案特定决策以实现开发者的特定目标,例如遵守系统相关及业务相关约束,其可能因实施方案而异。此外,应明白,此开发工作可能是复杂且耗时的,但对于受益于本发明的所属领域一般技术人员来说,仍将是设计、制作及制造的例行任务。
如下文将详细地论述,本发明大体上涉及可缩放ECC。这可提供与其它错误检测或ECC方案相关联的问题的解决方案。例如,用于ECC的位的数目可被静态地确定且可不随其正在验证的有效负载中的数据位的数目而缩放。因此,由ECC消耗的位的数量可能与数据分组中的位的数目不相称。换句话说,ECC在分组较小时可能消耗太多位及/或可能将分组中的数据位的数目限于由于ECC不可缩放而对于可用带宽来说太小的长度。例如,因特网协议中使用的CRC32可能不灵活或不可缩放,且因此是相对低效的。但如本文中所描述,本发明提供一种可缩放ECC方案。即,利用可缩放ECC的存储器系统协议可基于正被传送的数据分组(例如,请求、响应)的特性(例如,数据位的数目)来调整某些操作。
在实施例中,存储器系统协议(下文中是“协议”)可为基于分组的协议,其使得能够在存储器装置内、在存储器装置之间、在计算装置内/之间及/或在使用数据总线来传送数据的任何其它电子装置之间有效地(例如,功率有效地、位有效地)传输数据分组。所述协议可以与各种类型的存储器及处理器(例如存储器内处理器、网络装置、存储设施、阶层存储器、抽象存储器(例如,动态随机存取存储器(DRAM)、NAND及新兴存储器)等)的数个组合来实施。如本文中所使用,处理器可包含能够在对应电子装置上执行可执行指令的任何合适处理器,例如中央处理单元(CPU)或专用集成电路(ASIC)。所述协议还可促进广泛范围的装置之间/内的通信,所述装置包含数据中心交换机/路由器、网络路由器、移动装置、存储装置、处理器、存储器内处理器、工作移动处理器、安全存储器、虚拟网络、抽象存储器等。
在某些实施例中,所述协议可被设计成促进各种类型的存储器及处理器之间/内的数据分组的通信,同时通过减少用于较小有效负载的ECC的奇偶校验位的数目且放大用于较大有效负载的ECC的奇偶校验位的数目来维持低协议开销而无需改变ECC处理的类型。换句话说,所述协议可被设计成提供数据分组的位有效传送,其中对于较小有效负载可省略ECC中的多余位而无需将有效负载长度限于其它传输的较小有效负载且无需改变有效负载长度之间的ECC规则。
如上文所论述,行业更加注重于最小化数据移动能量。即,开发者希望减少在存储器装置之间/内移动数据分组所消耗的能量。因而,当有效负载的验证不使用ECC的额外位时,所述协议可避免错误控制代码(ECC)的位的传送。换句话说,所述协议可实施使用动态ECC字段大小来最小化开销的错误控制策略,所述动态ECC字段大小基于在相应分组中传输的数据量(例如,有效负载)进行调整,而无需改变ECC的处理及使用方式。
牢记前文,本发明描述可在所述协议内实施以提供前述优点的数个系统及技术。尽管下文所详述的某些系统或技术是相对于其它系统或技术独立地描述,但应注意,本文中所描述的系统及技术中的每一者可使用本文中也描述的各种其它系统及技术来实施。
现在转向附图,图1说明可采用本文中所描述的各种技术及/或系统的计算系统10的框图。计算系统10可为多种计算装置中的任一者,例如计算机、寻呼机、蜂窝电话、个人组织器、控制电路等。计算系统10可包含可经耦合到数个存储器装置14的主机芯片上系统(SoC)12。主机SoC 12还可使用(若干)外部通道15与其它装置进行通信,例如网络连接及/或因特网。主机SoC 12可包含将计算机或其它电子系统的多个组件集成到单个芯片中的集成电路(IC)。因而,主机SoC 12可包含可控制计算系统10中的系统功能及请求的处理的一或多个处理器,例如微处理器。
如上所述,主机SoC 12可经耦合到存储器装置14。在某些实施例中,主机SoC 12可经由通道16耦合到存储器装置14。通道16可包含总线、电线等。
图2描绘存储器装置14的实施例的框图。存储器装置14可包含被设计成保留数字数据的任何存储装置。存储器装置14可涵盖各种各样的存储器组件,包含易失性存储器及/或非易失性存储器。易失性存储器可包含动态随机存取存储器(DRAM)及/或静态随机存取存储器(SRAM)。此外,易失性存储器可包含数个存储器模块,例如单列直插式存储器模块(SIMM)或双列直插式存储器模块(DIMM)。
非易失性存储器可包含将结合易失性存储器使用的只读存储器(ROM),例如EPROM及/或快闪存储器(例如,NAND)。另外或替代地,非易失性存储器可包含例如磁带或磁盘驱动器存储器的高容量存储器。其它非易失性存储器可包含相变存储器、3D XPointTM、铁电RAM等。非易失性存储器有时可被称为持久性存储器或存储类存储器。应明白,易失性存储器及/或非易失性存储器可为用于存储代码(例如,指令)的有形、非暂时性及机器可读媒体。
如图2中所展示,在某些实施例中,存储器装置14可包含芯片上系统(SoC)22,所述SoC 22可包含耦合到存储在存储器装置14上的存储器组件的任何合适处理器,例如存储器内处理器(PIM)或中央处理单元(CPU)。通常,SoC 22可被包含在与存储器装置14的存储器组件相同的硅芯片上。通过将一些处理及存储器组件合并到存储器装置14中,SoC 22可管理在存储器组件与主机SoC 12之间传输及接收数据请求及响应的方式。在某些实施例中,SoC 22可控制存储器组件之间的通信量以减少延时且增加带宽。将明白,根据本文中所描述的实施例,当控制存储器组件与其它装置之间的传输时,主机SoC 12及SoC 22可采用所述协议。因而,所述协议可在存储器装置14与主机SoC 12之间的通道16上,以及在存储器组件与SoC 22之间的通道29上及在外部通道15上操作。
在某些实施例中,存储器装置14还可包含缓冲器23。缓冲器23可存储由SoC 22接收的一或多个分组。举例来说,存储器装置14可包含例如NAND存储器24、降低延时型动态随机存取存储器(RLDRAM)26、双倍数据速率同步动态随机存取存储器类型4(DDR4)或双倍数据速率同步动态随机存取存储器类型5(DDR5)28等的存储器类型。
在某些实施例中,主机SoC 12及SoC 22可基于经由前述存储器组件、寄存器等提供的计算机可执行指令来执行各种操作。存储器组件或存储装置可为可用作用以存储处理器可执行代码、数据等的媒体的任何合适制品,例如先前所论述的那些媒体。这些制品可表示可存储由主机SoC 12或SoC 22使用以执行当前所揭示的技术的处理器可执行代码的有形、非暂时性及计算机可读媒体(即,任何合适形式的存储器或存储装置)。存储器及存储装置还可用于存储数据,分析数据等。存储器及存储装置可表示可存储由主机SoC 12或SoC22使用以执行本文中所描述的各种技术的处理器可执行代码的有形、非暂时性及计算机可读媒体(例如,NAND存储器24、RLDRAM 26、DDR4/DDR5 28及/或任何合适形式的存储器或存储装置)。应注意,“非暂时性”的名称指示媒体是有形物体而非仅仅是电信号。
尽管与所述协议相关的各个方面的以下描述被描述为相对于主机SoC 12及SoC22来执行,但应注意,本文中所描述的所有系统及技术可使用任何合适装置来执行。即,所述协议可促进任何两个装置之间的通信,例如两个处理器、两个存储器模块、处理器与存储器模块、发送及/或接收经传输数据的任何两个装置之间的通信等。另外或替代地,所述协议可促进单个电子装置内的组件之间的通信。
为了在将请求及响应传输到存储器装置14的存储器组件或从存储器装置14的存储器组件传输请求及响应时采用所述协议,SoC 22/SoC 12可发送根据图3中所说明的数据分组30的分组级视图结构化的数据分组。如图3中所展示,数据分组30可包含事务类型字段32、有效负载字段34及错误控制代码(ECC)字段36。事务类型字段32可包含指示传输类型、被传输的分组的类型或两者的数据。另外或替代地,事务类型字段32还可指示分组大小以指示数据有效负载中的位的数目及ECC字段中的位的数目,由此指示整个分组中的位的数目。在某些实施例中,事务类型字段32可以间接方式指示有效负载字段34及ECC字段36的大小。例如,存储在事务类型字段32中的数据可用作查找表的索引。查找表可提供关于有效负载字段34及ECC字段36的长度的信息。因而,在一个实例中,SoC 22可接收数据分组30且将存储在事务类型字段32中的数据用作查找表的索引,所述查找表可经存储在存储器装置14内以确定有效负载字段34及ECC字段36的大小。
在某些实施例中,事务类型字段32可基于是在请求总线Q上还是在响应总线S上传输分组来指定不同类型的分组,所述总线可包含通道15、通道16、通道29等。在某些实施例中,请求总线Q及响应总线S可为单独的、单向的或共同的输入/输出。请求总线Q通常包含q个通路,且响应总线S通常包含s个通路。如前所述,有效负载字段34及ECC字段36的相应大小可至少部分地基于事务类型字段32中的数据来确定。有效负载字段34可包含代表分别经由请求或响应总线发送的请求或响应的数据。ECC字段36可包含ECC以确定由接收组件接收的数据分组30是否包含在数据分组30的传输期间引入的任何错误。因而,ECC可包含各种算法,例如将冗余数据或奇偶校验数据添加到消息,使得即使在传输过程期间或在存储时引入数个错误,也可由接收组件验证及/或恢复原始数据。
通常,ECC可提供在代码极限内检测错误且当检测到错误时指示进一步动作(例如重新传输错误分组)的能力。例如,汉明距离为3的代码(例如,HD3代码)可检测到有效负载字段34中的两个位错误或检测到且校正有效负载字段34中的一个位错误。类似地,HD4代码可检测到有效负载字段34中的三个位错误,检测到有效负载字段34中的两个位错误且校正有效负载字段34中的那些位错误中的一者。
请求总线Q上传输的数据分组30的实例事务类型字段32可包含具有各种位长度(例如,8、9或16个位)的读取操作、消息数据、读取-修改-写入(RMW)操作、模式写入操作、写入启用操作、各种位长度的写入操作等。提供用于操作(例如,读取操作及/或写入操作)的可变位长度可为系统设计者在选择最大分组传送大小时提供灵活性。例如,在实施例中,所述协议可具有256个位的极限,但使用较小的最大分组大小可降低系统延时。然而,减小有效负载字段34的大小可能不会引起ECC字段36的长度的改变,从而致使ECC字段36中的位为被浪费在消耗系统的带宽的传送中的位,而不会增加有效性的保证。替代地,可基于有效负载字段34的长度来选择不同ECC类型(例如,CRC 32)。然而,ECC类型之间的此改变利用额外处理资源来选择对应ECC类型及/或利用额外存储器消耗来存储一个以上ECC编码器/解码器。代替地,如下文所论述,单个可缩放ECC规则集可用于各种长度的有效负载字段34,其根据有效负载字段34的长度缩放ECC字段36的长度。
如前所述,根据本文中所提供的实施例,用于错误检测的ECC是可缩放的。ECC使用少量奇偶校验位来覆盖短数据长度且随着数据长度增加而使用渐进增多的奇偶校验位。应理解,在以下实施例中,在任何给定数据长度下,奇偶校验位的数目与由所采用的奇偶校验位覆盖的数据位的数目的比率较小(例如,等于或小于CRC),且具有增加的可缩放性益处以使ECC与对应数据长度匹配。ECC可使用任何装置来应用及/或应用于使用总线进行信息通信的任何传输,例如DRAM、NAND、新兴存储器、控制器及/或其它存储器装置。由于ECC是可缩放的,因此ECC也可应用于任何大小的数据分组。
图4说明可用于传输经生成的奇偶校验位以检测传输中的错误或确认未出现错误的过程40的流程图。所述过程可由一或多个处理器及/或专用硬件(例如,XOR门)来实施。例如,一或多个处理器可被包含在主机SoC 12、SoC 22或与SoC 12及/或SoC 22进行通信的另一装置的处理器中。使用适用规则,一或多个处理器用可传输到SoC 12及/或SoC 22及/或从SoC 12及/或SoC 22传输的数据的每一可能位长度的条目填充表(框42)。换句话说,所述表可包含各自对应于数据中的潜在数目个位的数个(例如,65,519个)条目(即,行)。因此,索引(例如,65,519)对应于数据中的对应位(例如,第65,519个位)。然而,可应用所述表的规则来生成条目的值。在一些实施例中,所述规则可包含确保所述条目各自包含至少两个二进制1,确保所述条目包含恰好三个二进制1与奇数个二进制0,或确保二进制1及0的其它各种组合。
一或多个处理器使用所述表来动态地生成所述条目中的位的每一列的奇偶校验位(框44)。因此,可至少部分地基于数据分组30中正在传输的数据中的位的数目来动态地生成奇偶校验位。如下文所论述,通过使用所述表的列来确定哪些数据位用于计算相应奇偶校验位,数据分组30中包含的奇偶校验位的数目可随着数据位的数目增加而改变。因此,以这种方式,所述表通过调整奇偶校验位的数目以仅包含在所述表中具有非零值的那些列的奇偶校验位来提供在ECC中进行错误检测的可缩放性而无需改变在不同分组的传输中包含的不同数目个数据位之间进行操作的ECC方法或规则。
一旦生成奇偶校验位,一或多个处理器就可将奇偶校验位附加到数据位以生成分组(框46)。一或多个处理器接着传输所述分组(框48)。由于用于生成奇偶校验位的规则被动态地确定为适合于分组的数据中的数据位的数目,因此至少部分地基于数据位的数目使用奇偶校验位来动态地调整分组的大小。换句话说,规则的应用包含识别数据分组的有效负载中的数据位的数量。接着至少部分地基于数据分组的有效负载中的数据位的数量来确定用于循环冗余校验(CRC)的奇偶校验位的数量,使得奇偶校验位的数量与数据分组的有效负载中的奇偶校验位的数量成比例。接着,一起传输数据分组与有效负载及用于CRC的所述数量的奇偶校验位。如所论述,ECC可使用各自对应于数据中可包含的数据位的条目的表。每一条目可包含组织成各自用于生成对应奇偶校验位的列的一或多个位。所述条目可使用对应规则来生成。例如,所述规则可能要求每一条目符合特定要求,例如所述表中的每一条目包含针对对应于所述表中的数据位的每一额外条目递增的数个(例如,多于三个或多于两个)1。
图5说明可用于实施图4的过程40的方案50的框图。方案50包含使用规则52(例如,每个条目至少两个一)来生成表54,其中表54中的每第n个条目对应于可被传输的可能数据位56的第n个数据位。可由计算电路系统58使用表54的每一列来生成传输数据分组62中可包含的奇偶校验位60,其中包含奇偶校验位60以使能够检测在传输数据分组62的传输期间是否已出现错误。如上所述,计算电路系统58可包含软件实施方案、硬件实施方案(例如,XOR门)及/或其组合。在具有硬件实施方案的一些实施例中,一旦设计/构建计算电路系统58,就可从所实施装置省略表54。通过将XOR函数应用于对应于与相应奇偶校验位60对应的列中的非零值的数据位56,计算电路系统58计算其中出现非零的表54的每一列的奇偶校验位60。
图6说明可用于检测错误/确保在传输数据分组62的传输中不出现错误的过程70的流程图。所述过程可由一或多个处理器及/或专用硬件(例如,XOR门)来实施。例如,一或多个处理器可被包含在主机SoC 12、SoC 22或与SoC 12及/或SoC 22进行通信以接收分组的另一装置的处理器中。使用用于生成参考图4所论述的奇偶校验位的适用规则,数据位及奇偶校验位可用于确认分组被无误地传送。一或多个处理器接收具有数据位及奇偶校验位的分组(框72)。在一些实施例中,所述分组还可包含其它元数据,例如事务类型或指示所述分组中的数据位的数目及/或奇偶校验位的数目的其它元数据。
一或多个处理器接着使用包含每一可能数据位的单独条目的表来导出每一奇偶校验位的所述校验计算将校验数据分组的传输中的错误的验证计算(框74)。所述表可为与用于生成图4中的奇偶校验位的表相同的表或可使用与生成图4中的奇偶校验位的表相同的规则来生成。呈硬件及/或软件形式的接收装置基于验证计算来生成每一奇偶校验位的对应传输结果(框76)。接收装置还组合每一奇偶校验位的传输结果以生成总错误指示符(框78)。一或多个处理器接着至少部分地基于总错误指示符来对数据分组采取动作(框80)。例如,一或多个处理器可在未检测到传输错误时将数据位存储在存储器中,将数据位传输到另一位置及/或其它合适动作。另外或替代地,当检测到传输错误时,一或多个处理器可将指示在数据位的传输期间在数据分组中引入错误的响应发送到传输装置。
图7说明可用于实施图6的过程70的方案81。接收装置,例如存储器装置14,接收包含数据位84及奇偶校验位86的经接收数据分组82。当在传输中未出现传输错误时,经接收数据分组82可与传输数据分组62完全相同。为了验证此状态,接收装置利用计算电路系统88,所述计算电路系统88使用表90(及/或其相应硬件实施方案)来生成指示是否已出现传输错误的错误指示符92。例如,当未检测到错误时错误指示符92可为第一值(例如,0),且当已检测到错误时错误指示符92可为第二值(例如,1)。在一些实施例中,接收装置可使用用于生成表54的相同规则来生成表90。替代地,传输及/或接收装置可利用作为表54的复本的表或表54是其复本的表。
与图5的计算电路系统58类似,计算电路系统88可利用硬件(例如,XOR门)及/或软件来生成错误指示符92。在一些实施例中,可设计/构建计算电路系统58的硬件实施方案以在表90未包含在传输/接收装置中或在传输/验证期间未由传输/接收装置使用时实施。具体来说,根据图6的过程70,计算电路系统88可利用表90来通过确定对应于相应数据位84的哪些条目(即,行)在表90的与具有非零值的相应数据位对应的列中具有非零从数据位84确定每一奇偶校验位86的方程式。在一些实施例中,表90可用于生成XOR门,接着可在运行时使用XOR门来放弃表90以验证数据传送。换句话说,在一些实施例中,表90可用于设计部分,但在实施期间放弃。
表1说明使用其中生成每一条目的规则来生成的表,且每一条目包含两个或更多个一但没有重复值,其中每一数据位对应于每一递增数目符合所述规则的条目。
表1.在每一条目具有至少两个值1的情况下使用的条目的表
如表中所说明,二进制条目中的最右边位是最低有效位。而且,如所说明,可使用2个奇偶校验位来验证1个数据位,可使用3个奇偶校验位来验证2到4个数据位,可使用4个奇偶校验位来验证5到11个数据位,且可使用5个奇偶校验位来验证12到26个数据位。类似地,所述表可被扩展到任何数目个值。例如,第247个数据位可对应于利用8个奇偶校验位来验证247个数据位的二进制条目“11111111”。
当所述条目的最右边列对应于最低有效位时,最右边列可用于生成第一奇偶校验位P0。当包含第二数据位时,下一最右边列可用于生成第二奇偶校验位P1。类似地,当将基于数据位的数目来使用对应奇偶校验位时,所述表中的每一列可用于生成对应奇偶校验位。例如,如果列中未出现1,那么可从数据分组省略P位。例如,对于包含少于27个数据位的分组,所述分组可包含省略P5的仅五个奇偶校验位,因为P5对于条目1到26始终具有零值。
下文利用实例数据流“00101010110”,其中所述数据流从最高有效位到最低有效位排序。由于所述数据流包含11个位,因此将生成4个奇偶校验位(例如,P0、P1、P2及P3)。使用所述表,可从所述条目的最低有效列确定P0。因此,P0可被确定为数据流中的数据位的“异或”(XOR),其中在最右列中出现1。因此,P0可被计算为D1 XOR D2 XOR D4 XOR D5 XORD7 XOR D9 XOR D11,其中D1是作为最低有效位的第一数据位且每一后续位递增。类似地,P1可被计算为D1 XOR D3 XOR D4 XOR D6 XOR D7 XOR D10 XOR D11,P2可被计算为D2 XORD3 XOR D4 XOR D8 XOR D9 XOR D10 XOR D11,且P3可被计算为D5 XOR D6 XOR D7 XOR D8XOR D9 XOR D10 XOR D11。如前所述,所述计算可在软件及/或硬件中进行。换句话说,可使用硬件逻辑门来对数据位一起进行XOR运算及/或数据位可在软件中经历XOR运算。使用前述计算及实例数据流,P0=0、P1=0、P2=1及P3=1。这些奇偶校验位经附加到分组中的数据位。
接收包含数据位及奇偶校验位的分组的装置(例如,主机SoC 12或SoC 22)可利用奇偶校验位以使用表或用于生成奇偶校验位的表的类似生成的复本来验证传入数据。接收装置可通过计算D1 XOR D2 XOR D4 XOR D5 XOR D7 XOR D9 XOR D11 XOR P0来确定P0是否检测到任何相关联错误。当未出现相关联错误时,经计算的传输结果值是零。另外或替代地,接收装置可计算值D1 XOR D2 XOR D4 XOR D5 XOR D7 XOR D9 XOR D11且确定所述结果是否等于P0的值。
与用于验证P0是否跟踪到任何错误的计算类似,跟踪装置可计算是否已包含由P1、P2及P3跟踪到的错误。例如,接收装置可通过评估D1 XOR D3 XOR D4 XOR D6 XOR D7XOR D10 XOR D11 XOR P1是否等于P1或D1 XOR D3 XOR D4 XOR D6 XOR D7 XOR D10 XORD11是否等于P1来计算是否关于P1跟踪到任何错误。类似地,接收装置可通过评估D2 XORD3 XOR D4 XOR D8 XOR D9 XOR D10 XOR D11 XOR P2是否等于零或D2 XOR D3 XOR D4XOR D8 XOR D9 XOR D10 XOR D11是否等于P2来计算是否关于P2跟踪到任何错误。类似地,接收装置可通过评估D5 XOR D6 XOR D7 XOR D8 XOR D9 XOR D10 XOR D11 XOR P3是否等于零或D5 XOR D6 XOR D7 XOR D8 XOR D9 XOR D10 XOR D11是否等于P3来计算是否关于P3跟踪到任何错误。接收装置接着可确定所述计算结果中的任一者是否包含任何错误值。
例如,使用前述实例,接收装置可确定D1 XOR D2 XOR D4 XOR D5 XOR D7 XOR D9XOR D11 XOR P0=D1 XOR D3 XOR D4 XOR D6 XOR D7 XOR D10 XOR D11 XOR P1=D2 XORD3 XOR D4 XOR D8 XOR D9 XOR D10 XOR D11 XOR P2=D5 XOR D6 XOR D7 XOR D8 XORD9 XOR D10 XOR D11 XOR P3=0。这指示ECC未检测到错误。然而,如果错误地将D1作为值1而非预期值0进行传送,那么接收装置计算出D1 XOR D2 XOR D4 XOR D5 XOR D7 XOR D9XOR D11 XOR P0=D1 XOR D3 XOR D4 XOR D6 XOR D7 XOR D10 XOR D11 XOR P1=1,从而指示ECC已检测到错误。如果在传送期间D1及D11均是错误的,那么接收装置计算出D2 XORD3 XOR D4 XOR D8 XOR D9 XOR D10 XOR D11 XOR P2=D5 XOR D6 XOR D7 XOR D8 XORD9 XOR D10 XOR D11 XOR P3=1,从而指示ECC已检测到错误。
应明白,可使用与表1类似的表来将前述规则计算应用于任何数目个数据位。换句话说,使用所述表可缩放ECC及所得计算,所述表又可缩放为无限个条目而无需改变ECC的操作方式。此外,在表生成中使用至少两个值1的规则可用于检测传输中的两个或更多个错误。
表2说明使用某一规则生成的表,其中在每一条目包含至少三个1而没有重复值的情况下生成每一条目,且其中每一数据位对应于每一递增数目符合所述规则的条目。另外,所述条目各自在所述条目中包含奇数个1。
表2.在每一条目具有至少三个值1的情况下使用的条目的表,每一条目具有奇数个1。
如表中所说明,二进制条目中的最右边位是最低有效位。而且,可使用3个奇偶校验位来验证1个数据位,可使用4个奇偶校验位来验证2到4个数据位,可使用5个奇偶校验位来验证5到11个数据位,且可使用6个奇偶校验位来验证12到26个数据位。类似地,所述表可被扩展到任何数目个值。例如,第247个数据位可对应于利用9个位来验证247个数据位的二进制条目“111111111”。
当所述条目的最右边列对应于最低有效位时,最右边列可用于生成第一奇偶校验位P0。当包含第二数据位时,下一最右边列可用于生成第二奇偶校验位P1,依此类推。换句话说,当将基于数据位的数目来使用对应奇偶校验位时,所述表中的每一列可用于生成对应奇偶校验位。例如,与表1类似,如果列(例如,最左边列)中未出现1,那么可从分组省略对应奇偶校验位。例如,将表2用于包含少于27个位的传输可能包含仅六个奇偶校验位使得P6不包含在被传输的分组中,因为P6对于条目1到26始终具有零值。
下文利用实例数据流“00101010110”,其中所述数据流从最高有效位到最低有效位排序。由于所述数据流包含11个位,因此将生成5个奇偶校验位(例如,P0、P1、P2、P3及P4)。使用表2,可从所述条目的最低有效(即,最右边)列确定P0。因此,P0可被确定为所述数据流中的数据位的“异或”(XOR),其中在对应列中出现1。因此,P0可被计算为D1 XOR D2XOR D3 XOR D5 XOR D6 XOR D8 XOR D11,其中D1是作为最低有效位的第一数据位且每一后续位针对每一行/条目递增。类似地,P1可被计算为D1 XOR D2 XOR D4 XOR D5 XOR D7XOR D9 XOR D11,P2可被计算为D1 XOR D3 XOR D4 XOR D6 XOR D7 XOR D10 XOR D11,P3可被计算为D2 XOR D3 XOR D4 XOR D8 XOR D9 XOR D10 XOR D11,且P4可被计算为D5 XORD6 XOR D7 XOR D8 XOR D9 XOR D10 XOR D11。所述计算可在软件及/或硬件中进行。换句话说,可使用硬件逻辑门来对数据位一起进行XOR运算及/或数据位可在软件中经历XOR运算。使用前述计算及实例数据流,P0=1、P1=0、P2=0、P3=1及P4=1。这些奇偶校验位经附加到分组中的数据位。
如先前所论述,接收包含数据位及奇偶校验位的分组的装置(例如,主机SoC 12或SoC 22)可利用奇偶校验位以使用表(即,表2)或用于生成奇偶校验位的表的类似生成的复本来验证传入数据。接收装置可通过计算D1 XOR D2 XOR D3 XOR D5 XOR D6 XOR D8 XORD11 XOR P0来确定P0是否检测到任何相关联错误。当未出现相关联错误时,经计算值可为零。另外或替代地,接收装置可计算值D1 XOR D2 XOR D3 XOR D5 XOR D6 XOR D8 XOR D11且确定所述结果是否等于P0的值。
与用于验证P0是否跟踪到任何错误的计算类似,跟踪装置可计算是否已包含由P1、P2、P3及P4跟踪到的错误。例如,接收装置可通过评估D1 XOR D2 XOR D4 XOR D5 XORD7 XOR D9 XOR D11 XOR P1是否等于P1或D1 XOR D2 XOR D4 XOR D5 XOR D7 XOR D9 XORD11是否等于P1来计算是否关于P1跟踪到任何错误。类似地,接收装置可通过评估D1 XORD3 XOR D4 XOR D6 XOR D7 XOR D10 XOR D11 XOR P2是否等于零或D1 XOR D3 XOR D4XOR D6 XOR D7 XOR D10 XOR D11是否等于P2来计算是否关于P2跟踪到任何错误。类似地,接收装置可通过评估D2 XOR D3 XOR D4 XOR D8 XOR D9 XOR D10 XOR D11 XOR P3是否等于零或D2 XOR D3 XOR D4 XOR D8 XOR D9 XOR D10 XOR D11是否等于零P3来计算是否关于P3检测到任何错误。此外,接收装置可通过评估D5 XOR D6 XOR D7 XOR D8 XOR D9 XORD10 XOR D11 XOR P4是否等于零或D5 XOR D6 XOR D7 XOR D8 XOR D9 XOR D10 XOR D11是否等于P4来计算是否关于P4检测到任何错误。接收装置接着可确定所述计算结果中的任一者是否包含任何错误值。
例如,使用前述实例,接收装置可确定D1 XOR D2 XOR D3 XOR D5 XOR D6 XOR D8XOR D11 XOR P0=D1 XOR D2 XOR D4 XOR D5 XOR D7 XOR D9 XOR D11 XOR P1=D1 XORD3 XOR D4 XOR D6 XOR D7 XOR D10 XOR D11 XOR P2=D2 XOR D3 XOR D4 XOR D8 XORD9 XOR D10 XOR D11 XOR P3=D5 XOR D6 XOR D7 XOR D8 XOR D9 XOR D10 XOR D11 XORP4=0。这指示接收装置未使用ECC检测到错误。然而,如果错误地传送D1,那么接收装置计算出D1 XOR D2 XOR D3 XOR D5 XOR D6 XOR D8 XOR D11 XOR P0=D1 XOR D2 XOR D4XOR D5 XOR D7 XOR D9 XOR D11 XOR P1=D1 XOR D3 XOR D4 XOR D6 XOR D7 XOR D10XOR D11 XOR P2=1,这指示ECC已检测到错误。如果在传送期间D1及D11均是错误的,那么接收装置计算出D2 XOR D3 XOR D4 XOR D8 XOR D9 XOR D10 XOR D11 XOR P3=D5 XORD6 XOR D7 XOR D8 XOR D9 XOR D10 XOR D11 XOR P4=1,从而指示ECC已检测到错误。类似地,如果D1、D6及D11均是错误的,那么接收装置计算出D1 XOR D2 XOR D3 XOR D5 XORD6 XOR D8 XOR D11 XOR P0=D1 XOR D3 XOR D4 XOR D6 XOR D7 XOR D10 XOR D11 XORP2=D2 XOR D3 XOR D4 XOR D8 XOR D9 XOR D10 XOR D11 XOR P3=1,从而指示ECC已检测到错误。
可使用与表2类似的表将前述规则计算应用于任何数目个数据位。换句话说,使用所述表可缩放ECC及所得计算,所述表又可缩放为对应于无限个数据位的无限个行/条目。此外,在表生成中使用至少三个值1的规则可用于检测传输中的三个或更多个错误。在一些实施例中,可包含多个表及/或XOR实施方案以供使用。例如,对于用于验证传输的特定模式,可包含表1及表2(或其相关XOR实施方案)且在表1与表2之间进行选择。
虽然本文中所描述的实施例可能易于进行各种修改及替代形式,但特定实施例已以实例方式在附图中展示且已在本文中详细地描述。然而,应理解,本发明并非意在限于所揭示的特定形式。相反,本发明将涵盖落入如由以下所附权利要求书所定义的本发明中描述的技术及系统的精神及范围内的所有修改、等效物及替代物。

Claims (21)

1.一种计算系统,其包括:
主机处理器;及
存储器装置,其包括:
存储器组件,其经配置以存储数据;
一或多个处理器,其经配置以:
生成与所述存储器组件相关联的数据分组,其中所述数据分组包括:
有效负载字段,其包括一或多个数据位作为所述数据分组的有效负载;及
错误控制代码字段,其包括一或多个奇偶校验位,其中所述一或多个奇偶校验位的数量与所述一或多个数据位的数量成比例;且
将所述数据分组传输到所述主机处理器,其中所述主机处理器经配置以:
从所述存储器组件接收所述数据分组;且
通过以下步骤确定在所述数据分组的传输中是否出现任何错误:
对于所述数据分组中包含的所述一或多个奇偶校验位中的每一者,从条目表的列导出验证计算,其中所述表包括所述数据分组的所述一或多个数据位中的每一者的条目,其中每一条目包括至少两个二进制一而没有重复值,且每一条目从前一条目递增到具有至少两个二进制一的下一个限定值;
至少部分地基于相应的验证计算来生成每一奇偶校验位的对应传输结果;
组合所述传输结果以形成总错误指示符,所述总错误指示符指示所述数据分组的传输是否已将错误引入到所述数据分组中;及
至少部分地基于所述总错误指示符来对所述数据分组采取动作。
2.根据权利要求1所述的计算系统,其中所述一或多个处理器利用条目表,所述表中的每一条目对应于将包含在所述有效负载中的数据位数量,所述表的每一列用于生成所述一或多个奇偶校验位中的对应奇偶校验位,且所述条目表中的每一条目包括含有至少两个一的位的二进制字符串而没有任何重复值。
3.根据权利要求2所述的计算系统,其中所述条目表中的每一条目从所述条目表中的前一条目递增到包含至少两个一的下一个二进制值。
4.根据权利要求2所述的计算系统,其中所述一或多个处理器经配置以生成所述条目表。
5.根据权利要求2所述的计算系统,其中经生成的所述奇偶校验位的数量等于所述条目表中的非零列的数量。
6.根据权利要求5所述的计算系统,其中所述一或多个处理器经配置以生成其中条目的数量等于所述数据分组的最大可能大小的所述条目表。
7.根据权利要求6所述的计算系统,其中所述一或多个处理器利用所述表的仅一部分来生成所述数据分组的所述奇偶校验位,其中所述部分的大小至少部分地基于所述有效负载中的数据位数量。
8.根据权利要求1所述的计算系统,其中事务类型字段包括指示所述数据分组的所述有效负载的第一大小及所述数据分组中的所述错误控制代码字段的第二大小的数据。
9.根据权利要求1所述的计算系统,其中所述数据分组包括对应于多种事务类型中的一者的二进制值,其中所述多种事务类型中的每一者与数据操作相关联。
10.根据权利要求9所述的计算系统,其中所述数据操作包括读取操作、消息数据传输、读取-修改-写入RMW、模式写入操作、写入启用操作或写入操作中的至少一者。
11.一种用于错误控制的方法,其包括:
识别数据分组的有效负载中的数据位数量;
至少部分地基于所述数据分组的所述有效负载中的所述数据位数量来确定用于循环冗余校验CRC的奇偶校验位数量,其中所述奇偶校验位数量与所述数据分组的所述有效负载中的所述数据位数量成比例;
向处理器传输包括所述有效负载及用于所述CRC的所述奇偶校验位数量的所述数据分组;
在所述处理器处接收所述数据分组;
由所述处理器通过以下步骤确定所述数据分组的传输中是否已出现任何错误:
对于所述数据分组中包含的每一奇偶校验位,从条目表的列导出验证计算,其中所述表包括所述数据分组的每一数据位的条目,其中每一条目包括至少两个二进制一而没有重复值,且每一条目从前一条目递增到具有至少两个二进制一的下一个限定值;
至少部分地基于相应的验证计算来生成每一奇偶校验位的对应传输结果;及
组合所述传输结果以形成总错误指示符,所述总错误指示符指示所述数据分组的传输是否已将错误引入到所述数据分组中;及
至少部分地基于所述总错误指示符来对所述数据分组采取动作。
12.根据权利要求11所述的方法,其包括:
生成条目表,其中生成所述条目表包括生成对应于数据分组的有效负载中的可能数据位的数量的条目,其中每一条目在二进制数中包括至少两个一而没有重复值,且后续条目包括从前一条目到在二进制数中具有至少两个一的下一限定值的增量值;
至少部分地基于所述有效负载的数据位,生成所述条目表的每一非零列的奇偶校验位,其中奇偶校验位数量至少部分地基于所述有效负载中的数据位数量;及
将经生成的所述奇偶校验位附加到所述数据位以形成所述数据分组。
13.根据权利要求12所述的方法,其中生成所述条目表的每一列的所述奇偶校验位包括使用“异或”XOR电路系统的硬件实施方案来执行所述表的函数作为逻辑表以通过对与所述条目表的对应于相应奇偶校验位的列中的二进制值一对应的数据位执行XOR函数来生成所述奇偶校验位。
14.根据权利要求12所述的方法,其中生成所述条目表的每一列的所述奇偶校验位包括使用一或多个处理器以通过与所述条目表的对应于相应奇偶校验位的列中的二进制值一对应的数据位的XOR函数来生成所述奇偶校验位。
15.根据权利要求12所述的方法,其包括在所述数据分组中附加事务类型字段,其中所述事务类型字段指示所述数据位数量及所述奇偶校验位数量。
16.一种用于错误控制的方法,其包括:
接收包括数据位及奇偶校验位的数据分组;
通过以下步骤确定在所述数据分组的传输中是否已出现任何错误:
对于所述数据分组中包含的每一奇偶校验位,从条目表的列导出验证计算,其中所述表包括所述数据分组的每一数据位的条目,其中每一条目包括至少两个二进制一而没有重复值,且每一条目从前一条目递增到具有至少两个二进制一的下一个限定值;
至少部分地基于相应的验证计算来生成每一奇偶校验位的对应传输结果;及
组合所述传输结果以形成总错误指示符,所述总错误指示符指示所述数据分组的所述传输是否已将错误引入到所述数据分组中;及
至少部分地基于所述总错误指示符来对所述数据分组采取动作。
17.根据权利要求16所述的方法,其中导出相应奇偶校验位的所述验证计算包括使用对应于所述相应奇偶校验位的相应列中的二进制一来对与所述表的所述条目对应的数据位执行“异或”XOR函数,其中所述XOR函数在运行时验证期间是所述表的替换物。
18.根据权利要求17所述的方法,其中生成所述对应传输结果包括确定执行所述XOR函数的结果是否等于所述相应奇偶校验位。
19.根据权利要求17所述的方法,其中生成所述对应传输结果包括对所述相应奇偶校验位及所述XOR函数的结果执行XOR函数。
20.根据权利要求17所述的方法,其中生成所述对应传输结果包括利用XOR电路系统来执行所述XOR函数。
21.根据权利要求16所述的方法,其中对所述数据分组采取动作包括当所述总错误指示符指示所述数据分组的传输错误时将所述数据分组被错误地传输的响应发送到传输装置。
CN201980033119.XA 2018-05-24 2019-04-16 渐进长度错误控制代码 Active CN112136115B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/988,968 US10496478B1 (en) 2018-05-24 2018-05-24 Progressive length error control code
US15/988,968 2018-05-24
PCT/US2019/027673 WO2019226253A1 (en) 2018-05-24 2019-04-16 Progressive length error control code

Publications (2)

Publication Number Publication Date
CN112136115A CN112136115A (zh) 2020-12-25
CN112136115B true CN112136115B (zh) 2024-07-09

Family

ID=

Similar Documents

Publication Publication Date Title
KR102440705B1 (ko) 점진적 길이 에러 제어 코드
US11461017B2 (en) Systems and methods for improving efficiencies of a memory system
US6976194B2 (en) Memory/Transmission medium failure handling controller and method
US6996766B2 (en) Error detection/correction code which detects and corrects a first failing component and optionally a second failing component
US6973613B2 (en) Error detection/correction code which detects and corrects component failure and which provides single bit error correction subsequent to component failure
US6675344B1 (en) Multiple ECC schemes to improve bandwidth
US7587658B1 (en) ECC encoding for uncorrectable errors
US8219880B2 (en) Combined single error correction/device kill detection code
US11256570B2 (en) Progressive length error control code
US9128834B2 (en) Implementing memory module communications with a host processor in multiported memory configurations
CN110998536B (zh) 存储器系统中的动态链路差错保护
US7065697B2 (en) Systems and methods of partitioning data to facilitate error correction
KR101374430B1 (ko) 에러 정정 코드 및 동기화 정보를 이용한 데이터 라인 저장 및 전송
CN112136115B (zh) 渐进长度错误控制代码
KR20210156713A (ko) 개선된 ecc 메모리 칩 인코더 및 디코더
US20080148132A1 (en) Error detection and correction scheme for multi-level cell NAND flash
US7051265B2 (en) Systems and methods of routing data to facilitate error correction
US20050216814A1 (en) CRC data protection scheme for non-block-oriented data

Legal Events

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