CN112189315A - 渐进长度错误控制码 - Google Patents
渐进长度错误控制码 Download PDFInfo
- Publication number
- CN112189315A CN112189315A CN201980034291.7A CN201980034291A CN112189315A CN 112189315 A CN112189315 A CN 112189315A CN 201980034291 A CN201980034291 A CN 201980034291A CN 112189315 A CN112189315 A CN 112189315A
- Authority
- CN
- China
- Prior art keywords
- xor
- data
- bits
- entry
- entries
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6516—Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6575—Implementations based on combinatorial logic, e.g. Boolean circuits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0083—Formatting with frames or packets; Protocol or part of protocol for error control
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
装置和方法可以被用于附加数据包中的奇偶校验位的可缩放(1),所述数据包与所述数据包的有效负载中的数个数据位成比例缩放。可以利用条目表来生成所述奇偶校验位。在一些实例中,所述表中的每个条目对应于要被包括在所述有效负载中的数据位的数量;并且所述表的每个列可以被用于生成所述一或多个奇偶校验位中的对应奇偶校验位。
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)。
非易失性存储器可以包括诸如EPROM的只读存储器(ROM)和/或与易失性存储器结合使用的闪存(例如NAND)。另外或可替代地,非易失性存储器可以包括高容量存储器,例如磁带或磁盘驱动器存储器。其它非易失性存储器可以包括相变存储器、3D XPointTM、铁电RAM等。非易失性存储器有时可以称为永久存储器或存储类存储器。如所理解的,易失性存储器和/或非易失性存储器可以是用于存储代码(例如,指令)的有形的、非暂时性的和机器可读的介质。
如图2所示出的,在某些实施例中,存储器装置14可以包括芯片上系统(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可以存储由SoC22接收的一或多个包。举例来说,存储器装置14可以包括例如NAND存储器24、减少等待时间的动态随机存取存储器(RLDRAM)26、双数据速率同步动态随机存取存储器类型4(DDR4)或双数据速率同步动态随机存取存储器类型5(DDR5)28等存储器类型。
在某些实施例中,主机SoC 12和SoC 22可以基于经由前述存储器部件、寄存器等提供的计算机可执行指令来执行各种操作。存储器部件或存储装置可以是任何合适的制造品,其可以用作存储处理器可执行代码、数据等的介质,例如先前讨论的那些。这些制品可以表示有形的、非暂时性的和计算机可读的介质(即,任何适当形式的存储器或存储装置),其可以存储由主机SoC 12或SoC 22用来执行当前公开的技术的处理器可执行代码。存储器和存储装置还可以用于存储数据、分析数据等。存储器和存储装置可以表示可以存储由主机SoC 12或SoC 22用来执行本文中所述的各种技术的处理器可执行代码的有形的、非暂时性和计算机可读的介质(例如,NAND存储器24、RLDRAM 26、DDR4/DDR5 28和/或任何合适形式的存储器或存储装置)。应当注意,“非暂时性”的指定表示介质是有形物体而不仅仅是电信号。
虽然与协议相关的各个方面的以下描述在本文中被描述为关于主机SoC 12和SoC22执行,但是应当注意,这里描述的所有系统和技术可以使用任何适当的装置来执行。也就是说,所述协议可以促进任何两个装置之间的通信,例如两个处理器、两个存储器模块、处理器和存储器模块、发送和/或接收所传输的数据的任何两个装置之间的通信等。另外或可替代地,所述协议可以促进单个电子装置内的部件之间的通信。
为了在向存储器装置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的长度缩放ECC字段36的长度的有效负载字段34的各种长度。
如前所述,根据在本文中提供的实施例,用于错误检测的ECC是可缩放的。ECC使用少量的奇偶校验位来覆盖短的数据长度,并且使用随着数据长度增加而数量逐渐增加的奇偶校验位。可以理解,在下面的实施例中,在任何给定的数据长度上,奇偶校验位的数量与由所采用的奇偶校验位覆盖的数据位的数量之比很小(例如,等于或小于CRC),并且具有可缩放性以使得ECC与对应的数据长度相匹配的附加优点。ECC可以使用任何装置应用和/或被应用于使用总线进行信息通信的任何传输,例如DRAM、NAND、新兴存储器、控制器和/或其它存储器装置。ECC还可以被应用于任何大小的数据包,因为ECC是可缩放的。
图4绘示出了过程40的流程图,其可以被用于传输所生成的奇偶校验位以检测传输中的错误或确认未发生错误。所述过程可以由一或多个处理器和/或专用硬件(例如XOR门)来实现。例如,一或多个处理器可以被包括在主机SoC 12、SoC 22或用于与SoC 12和/或SoC 22通信的另一装置的处理器中。使用可应用的规则,一或多个处理器用可以被传输到和/或来自SoC 12和/或SoC 22的数据的每个可能的位长度的条目填充表(框42)。换句话说,表可以包括多个(例如,65,519)条目(即,行),每个条目对应于数据中潜在的位的数量。因此,索引(例如,65,519)对应于数据中的对应位(例如,第65,519位)。然而,可以应用表的规则来生成条目值。在一些实施例中,规则可以包括确保每个条目包括至少两个二进制一、确保条目包括正好三个二进制一和奇数个二进制一,或者确保其它各种二进制一和二进制零的组合。
所述一或多个处理器使用所述表来为条目中的每列位动态地生成奇偶校验位(框44)。因此,可以至少部分地基于在数据包30中传输的数据中的位的数量来动态地生成奇偶校验位。如下所述,通过使用表的列确定哪些数据位被用于计算相应的奇偶校验位,包括在数据包30中的奇偶校验位的数量可以随着数据位的数量的增加而改变。因此,以这种方式,通过调整奇偶校验位的数量以仅包括表中具有非零值的那些列的奇偶校验位,而不改变包括在不同包的传输中的不同数量的数据位之间的操作的ECC方法或规则,所述表提供ECC中的错误检测的可缩放性。
一旦生成了所述奇偶校验位,所述一或多个处理器可以将奇偶校验位附加到数据位以生成包(框46)。所述一或多个处理器然后传输包(框48)。由于用于生成奇偶校验位的规则被动态地确定为适合于包的数据中的数据位的数量,所以至少部分地基于数据位的数量用奇偶校验位来动态地调整包的大小。换句话说,规则的应用包括识别数据包的有效负载中的数据位的数目。然后,至少部分地基于数据包的有效负载中的数据位的数目来确定用于循环冗余校验(CRC)的奇偶校验位的数目,使得奇偶校验位的数目与数据包的有效负载中的数据位的数目成比例。然后,数据包与CRC的有效负载和奇偶校验位的数量一起被传输。如所讨论的,ECC可以使用条目表,每个条目对应于可以被包括在数据中的数据位。每个条目可以包括组织成列的一个以上的位,所述列被用于生成对应的奇偶校验位。可以使用对应的规则来生成条目。例如,规则可以要求每个条目符合特定的要求,例如表中的每个条目包括多个(例如,多于三个或多于两个)一,所述一针对对应于表中的数据位的每个额外的条目而递增。
图5绘示出了可以被用于实现图4中的过程40的方案50的框图。方案50包括使用规则52(例如,每个条目至少两个一)来生成表54,其中表54中的每个第n条目对应于可以被传输的可能数据位56中的第n数据位。计算电路58可以使用表54的每个列来生成可以被包括在传输数据包62中的奇偶校验位60,其中奇偶校验位60被包括以使得能够检测在传输数据包62的传输期间是否发生了错误。如上所述,计算电路58可以包括软件实现、硬件实现(例如XOR门)和/或其组合。在具有硬件实现的一些实施例中,一旦设计/构建了计算电路58,就可以从实现的装置中省略表54。计算电路58通过将XOR功能应用于对应于各个奇偶校验位60的列中的非零值的数据位56,来计算表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完全相同。为了验证这种状态,接收装置利用使用表90(和/或其对应的硬件实现)的计算电路88来生成指示是否发生了传输错误的错误指示符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个奇偶校验位验证、2-4个数据位可以用3个奇偶校验位验证、5-11个数据位可以用4个奇偶校验位验证、12-26个数据位可以用5个奇偶校验位验证。类似地,所述表可以扩展为任意数量的值。例如,第247个数据位可以对应于二进制项“11111111”,利用8个奇偶校验位来验证247个数据位。
当条目的最右列对应于最低有效位时,最右列可以被用于生成第一奇偶校验位P0。当包括第二数据位时,可以使用下一个最右列来生成第二奇偶校验位P1。类似地,当基于数据位的数量使用相应的奇偶校验位时,表中的每个列可以被用于生成相应的奇偶校验位。例如,如果列中没有出现一,则可以从数据包中省略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 XOR D7 XOR D9XOR D11,其中D1是第一数据位,因为最低有效位和每个后续位被递增。类似地,P1可以被计算为D1 XOR D3 XOR D4 XOR D6 XOR D7 XOR D10 XOR D11,P2可以被计算为D2 XOR D3XOR D4 XOR D8 XOR D9 XOR D10 XOR D11,以及P3可以被计算为D5 XOR D6 XOR D7 XORD8 XOR 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 D6XOR D7 XOR D10 XOR D11 XOR P1或D1 XOR D3 XOR D4 XOR D6 XOR D7 XOR D10 XOR D11是否等于P1来计算关于P1是否跟踪任何错误。类似地,接收装置可以通过评估D2 XOR D3XOR D4 XOR D8 XOR D9 XOR D10 XOR D11 XOR P2是否等于零或者D2 XOR D3 XOR D4 XORD8 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 XORD9 XOR D11 XOR P0=D1 XOR D3 XOR D4 XOR D6 XOR D7 XOR D10 XOR D11 XOR P1=D2XOR D3 XOR D4 XOR D8 XOR D9 XOR D10 XOR D11 XOR P2=D5 XOR D6 XOR D7 XOR D8XOR D9 XOR D10 XOR D11 XOR P3=0。这表明ECC没有检测到错误。然而,如果D1被错误地发送为一值而不是预期的零值,则接收装置计算D1 XOR D2 XOR D4 XOR D5 XOR D7 XORD9 XOR D11 XOR P0=D1 XOR D3 XOR D4 XOR D6 XOR D7 XOR D10 XOR D11 XOR P1=1,指示ECC已经检测到错误。如果D1和D11在传送期间都是错误的,则接收装置计算D2 XOR D3XOR D4 XOR D8 XOR D9 XOR D10 XOR D11 XOR P2=D5 XOR D6 XOR D7 XOR D8 XOR D9XOR D10 XOR D11 XOR P3=1,指示ECC已经检测到错误。
可以理解,使用类似于表1的表,上述规则计算可以被应用于任何数量的数据位。换句话说,ECC和所得到的计算可使用表进行缩放,所述表又可缩放成无限数量的条目而不改变ECC如何操作。此外,使用表生成中的至少两个一值的规则可以被用于检测传输中的两个或多个错误。
表2示出了使用规则生成的表,其中生成的每个条目包括至少三个没有重复值的一,其中每个数据位对应于每个递增数字符合所述规则的条目。另外,每个条目在条目中都包括奇数个一。
数据位# | 十进制 | Hex | P位 | 二进制 |
1 | 7 | 7 | 3 | 000111 |
2 | 11 | B | 4 | 001011 |
3 | 13 | D | 4 | 001101 |
4 | 14 | E | 4 | 001110 |
5 | 19 | 13 | 5 | 010011 |
6 | 21 | 15 | 5 | 010101 |
7 | 22 | 16 | 5 | 010110 |
8 | 25 | 19 | 5 | 011001 |
9 | 26 | 1A | 5 | 011010 |
10 | 28 | 1C | 5 | 011100 |
11 | 31 | 1F | 5 | 011111 |
12 | 35 | 23 | 6 | 100011 |
13 | 37 | 25 | 6 | 100101 |
14 | 38 | 26 | 6 | 100110 |
15 | 41 | 29 | 6 | 101001 |
16 | 42 | 2A | 6 | 101010 |
17 | 44 | 2C | 6 | 101100 |
18 | 47 | 2F | 6 | 101111 |
19 | 49 | 31 | 6 | 110001 |
20 | 50 | 32 | 6 | 110010 |
21 | 52 | 34 | 6 | 110100 |
22 | 55 | 37 | 6 | 110111 |
23 | 56 | 38 | 6 | 111000 |
24 | 59 | 3B | 6 | 111011 |
25 | 61 | 3D | 6 | 111101 |
26 | 62 | 3E | 6 | 111110 |
表2使用的条目的表,其中每个条目有至少三个一值,具有奇数个一。
如表中所示出的,二进制条目中的最右位是最低有效位。而且,1个数据位可以用3个奇偶校验位验证、2-4个数据位可以用4个奇偶校验位验证、5-11个数据位可以用5个奇偶校验位验证、12-26个数据位可以用6个奇偶校验位验证。类似地,所述表可以扩展为任意数量的值。例如,第247个数据位可以对应于二进制项“111111111”,利用9个位来验证247个数据位。
当条目的最右列对应于最低有效位时,最右列可以被用于生成第一奇偶校验位P0。当包括第二数据位时,可以使用下一个最右列来生成第二奇偶校验位P1,等等。换句话说,当基于数据位的数量使用相应的奇偶校验位时,表中的每个列可以被用于生成相应的奇偶校验位。例如,类似于表1,如果列(例如,最左边的列)中没有出现,则可以从包中省略对应的奇偶校验位。例如,对于包括少于27个位的传输使用表2,可以仅包括六个奇偶校验位,使得P6不被包括在被传输的包中,因为P6对于条目1-条目26总是具有零值。
下面利用“00101010110”的实例数据流,所述数据流从最高有效位到最低有效位排序。由于数据流包括11个位,将生成5个奇偶校验位(例如,P0、P1、P2、P3和P4)。使用表2,可以从条目的最低有效(即,最右)列确定P0。因此,P0可以被确定为数据流中的数据位的异或(XOR),其中1出现在对应的列中。因此,P0可以被计算为D1 XOR D2 XOR D3 XOR D5 XORD6 XOR D8 XOR D11,其中D1是第一数据位,因为最低有效位和每个后续位对于每个行/条目被递增。类似地,P1可以被计算为D1 XOR D2 XOR D4 XOR D5 XOR D7 XOR D9 XOR D11,P2可以被计算为D1 XOR D3 XOR D4 XOR D6 XOR D7 XOR D10 XOR D11,P3可以被计算为D2XOR D3 XOR D4 XOR D8 XOR D9 XOR D10 XOR D11,以及P4可以被计算为D5 XOR D6 XORD7 XOR D8 XOR D9 XOR D10 XOR D11。可以使用软件和/或硬件进行计算。换句话说,硬件逻辑门可以被用于将数据位一起进行XOR和/或数据位可在软件中进行XOR。使用前述计算和示例数据流,P0=1、P1=0、P2=0、P3=1以及P4=1。这些奇偶校验位被附加到包中的数据位。
如前所述,接收包括数据位和奇偶校验位的包的装置(例如,主机SoC 12或SoC22)可以利用奇偶校验位来使用所述表(即,表2)或用于生成奇偶校验位的表的类似生成的副本来验证输入数据。接收装置可以通过计算D1 XOR D2 XOR D3 XOR D5 XOR D6 XOR D8XOR D11 XOR P0来确定P0是否检测到任何相关联的错误。当没有发生相关错误时,计算值可以为零。另外或可替代地,接收装置可以计算值D1 XOR D2 XOR D3 XOR D5 XOR D6 XORD8 XOR D11并确定结果是否等于P0的值。
类似于用于验证P0是否跟踪任何错误的计算,跟踪装置可以计算已经被包括的错误是否是由P1、P2、P3和P4跟踪的。例如,接收装置可以通过评估D1 XOR D2 XOR D4 XOR D5XOR D7 XOR D9 XOR D11 XOR P1或D1 XOR D2 XOR D4 XOR D5 XOR D7 XOR D9 XOR D11是否等于P1来计算关于P1是否跟踪任何错误。类似地,接收装置可以通过评估D1 XOR D3 XORD4 XOR D6 XOR D7 XOR D10 XOR D11 XOR P2是否等于零或者D1 XOR D3 XOR D4 XOR D6XOR 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 XOR D10XOR 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 XORD8 XOR D11 XOR P0=D1 XOR D2 XOR D4 XOR D5 XOR D7 XOR D9 XOR D11 XOR P1=D1XOR D3 XOR D4 XOR D6 XOR D7 XOR D10 XOR D11 XOR P2=D2 XOR D3 XOR D4 XOR D8XOR D9 XOR D10 XOR D11 XOR P3=D5 XOR D6 XOR D7 XOR D8 XOR D9 XOR D10 XOR D11XOR P4=0。这表示接收装置使用ECC没有检测到错误。然而,如果D1被错误地发送,则接收装置计算D1 XOR D2 XOR D3 XOR D5 XOR D6 XOR D8 XOR D11 XOR P0=D1 XOR D2 XORD4 XOR D5 XOR D7 XOR D9 XOR D11 XOR P1=D1 XOR D3 XOR D4 XOR D6 XOR D7 XORD10 XOR 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 XOR D6 XORD8 XOR D11 XOR P0=D1 XOR D3 XOR D4 XOR D6 XOR D7 XOR D10 XOR D11 XOR P2=D2XOR D3 XOR D4 XOR D8 XOR D9 XOR D10 XOR D11 XOR P3=1,指示ECC已经检测到错误。
使用类似于表2的表,上述规则计算可以被应用于任何数量的数据位。换句话说,ECC和所得到的计算使用表是可缩放的,所述表又可以缩放为对应于无限数量的数据位的无限数量的行/条目。此外,使用表生成中的至少三个一值的规则可以被用于检测传输中的三个或多个错误。在一些实施例中,可以包括多个表和/或XOR实现来使用。例如,表1和表2(或它们相关的XOR实现)可以被包括在内并且被选择以用于特定模式,所述特定模式被用于验证传输。
另外的实例/实施例
1.一种耦合到网络的网络装置,其包含:
存储器部件,所述存储器部件被配置成存储指令;以及
一或多个处理器,所述处理器在执行所述指令时被配置成:
生成一或多个数据包,其中所述一或多个数据包中的每个数据包包含:
有效负载字段,所述有效负载字段包含作为所述数据包的有效负载的一或多个数据位;以及
错误控制码字段,所述错误控制码包含一或多个奇偶校验位,其中所述一或多个处理器使用条目表来生成所述错误控制字段,其中所述表中的每个条目对应于要包括在所述有效负载字段中的可能数目的数据位,并且所述表的每个列被用于生成所述一或多个奇偶校验位的对应的奇偶校验位;以及
通过所述网络传输所述一或多个数据包。
2.根据权利要求1所述的网络装置,其中所述表中的第一条目对应于满足所述条目的规则的第一数量,以及所述表中的连续条目对应于满足条目数量规则的下一个数量。
3.根据权利要求2所述的网络装置,其中所述条目数量规则要求所述表中的每个条目以二进制形式包括至少两个一。
4.根据权利要求3所述的网络装置,其中所述错误控制字段包含为三的汉明(hamming)距离。
5.根据权利要求2所述的网络装置,其中所述条目数量规则要求所述表中的的每个条目以二进制形式包括至少三个一并且包含奇数个一。
6.根据权利要求5所述的网络装置,其中所述错误控制字段包含为四的汉明距离。
7.根据权利要求1所述的网络装置,其中所述一或多个处理器被配置成生成所述条目表,所述条目表具有的条目数量等于所述一或多个数据包的最大可能传输大小。
8.根据权利要求7所述的网络装置,其中所述一或多个处理器仅利用所述表的一部分来生成所述一或多个数据包的所述奇偶校验位,其中所述部分的大小至少部分地基于所述有效负载中的数据位的数量。
9.根据权利要求8所述的网络装置,其中所生成的所述一或多个奇偶校验位的数量等于所述条目表中的非零列的数量。
10.一种耦合到网络的网络装置,其包含:
存储器部件,所述存储器部件被配置成存储指令;
错误控制码生成电路,所述错误控制码生成电路被配置成生成包含一或多个奇偶校验位的错误控制码,其中所述错误控制码被配置成至少部分地基于数据包中的数据位的数量来生成所述错误控制码,其中所述错误控制码生成电路从可能的错误控制码的序列生成所述错误控制码,所述可能的错误控制码的序列顺序地对应于所述数据位的数量的可能数量;以及
一或多个处理器,所述一或多个处理器在执行所述指令时,被配置成经由所述网络传输一或多个数据包,其中所述一或多个数据包包含所述错误控制码和所述数据位。
11.根据权利要求10所述的网络装置,其中所述错误控制生成电路包含多个XOR门,所述多个XOR门被配置成从所述多个数据位生成所述错误控制码。
12.根据权利要求10所述的网络装置,其中所述可能的错误控制码序列包含数量顺序的整数序列。
13.根据权利要求12所述的网络装置,其中,所述整数序列中的每个整数包含至少三个二进制一和奇数个二进制一,并且所述可能的错误控制码中的每个连续整数从所述整数序列中的较低整数递增到包括来自所述较低整数的至少三个一和奇数数量的一的下一个二进制整数。
14.根据权利要求12所述的网络装置,其中所述整数序列中的每个整数包含至少两个二进制一,并且所述可能的错误控制码的每个连续整数从所述整数序列中的较低整数递增到包括至少两个一的下一个二进制整数。
15.根据权利要求10所述的网络装置,其中所述一或多个数据包包含事务类型字段,所述事务类型字段包含指示所述一或多个数据包的相应数据包的有效负载中的第一数目的数据位和所述相应数据包中的错误控制码中的第二数目的奇偶校验位的数据。
16.根据权利要求15所述的网络装置,其中所述数据包含对应于多个事务类型中的一个的二进制值,其中所述多个事务类型中的每一个与所述网络装置的数据操作相关联。
17.根据权利要求10所述的网络装置,其中所生成的一或多个奇偶校验位的数目等于所述可能的错误控制码中的非零值的数目。
18.一种电子装置,所述电子装置包含:
输入,所述出入被配置成经由网络连接接收包含数据位和奇偶校验位的数据包;
计算电路,所述计算电路包括至少部分地基于所述数据包中的所述数据位的数量来确定所述奇偶校验位,其中所述计算电路被配置成从可能的奇偶校验位序列中确定所述奇偶校验位,所述可能的奇偶校验位序列顺序地对应于所述数据位的数量的可能数量;
一或多个处理器,所述一或多个处理器被配置成:
接收来自所述输入的所述数据包;以及
通过以下来确定在传输所述数据包时是否有任何错误发生:
对于被包括在所述数据包中的每个奇偶校验位,从所述可能的奇偶校验位的列导出验证计算;
至少部分地基于所述相应的验证计算来为每个奇偶校验位生成对应的传输结果;以及
组合所述传输结果以形成总体错误指示符,所述总体错误指示符指示所述数据包的传输是否已将错误引入所述数据包中;以及
至少部分地基于所述总体错误指示符对所述数据包进行动作。
19.根据权利要求18所述的电子装置,其中所述计算电路包含对与所述可能的奇偶校验位的相应位置处的非零值相对应的数据位中的数据位执行异或(XOR)功能。
20.根据权利要求19所述的电子装置,其中生成所述对应的传输结果包含确定所述XOR功能的结果是否等于相应的奇偶校验位。
虽然这里描述的实施例可以容许各种修改和替换形式,但是在附图中通过实例示出了特定的实施例,并且在这里对其进行了详细描述。然而,应当理解,本公开并不旨在限于所公开的特定形式。相反,本公开将覆盖落入由所附权利要求限定的本公开中描述的技术和系统的精神和范围内的所有修改、等同物和替换。
Claims (20)
1.一种存储器装置,其包含:
存储器部件,所述存储器部件被配置成存储数据;
一或多个处理器,所述一或多个处理器被配置成:
生成与所述存储器部件相关联的一或多个数据包,其中所述一或多个数据包中的每个数据包包含:
有效负载字段,所述有效负载字段包含作为所述数据包的有效负载的一或多个数据位;以及
错误控制码字段,所述错误控制码字段包含一或多个奇偶校验位,其中所述一或多个处理器利用条目表,其中所述表中的每个条目对应于要包括在所述有效负载中的数据位的数目,所述表的每个列被用于生成所述一或多个奇偶校验位的对应奇偶校验位;以及
传输所述一或多个数据包。
2.根据权利要求1所述的存储器装置,其中每个条目包括至少三个一和奇数个一,并且所述条目表中的每个连续条目包含从先前条目到下一个二进制值的递增值,所述下一个二进制值包括来自所述条目表中的先前条目的至少三个一(1)和奇数个一(1)。
3.根据权利要求1所述的存储器装置,其中事务类型字段包含指示所述一或多个数据包中的所述对应数据包的所述有效负载中的第一数目的数据位和所述对应数据包中的所述错误控制码字段中的第二数目的奇偶校验位的数据。
4.根据权利要求3所述的存储器装置,其中所述数据包含对应于多个事务类型中的一个的二进制值,其中所述多个事务类型中的每一个与所述存储器部件的数据操作相关联。
5.根据权利要求4所述的存储器装置,其中所述数据操作包含读取操作、消息数据的传输、读取-修改-写入RMW、模式写入操作、具有使能的写入操作或写入操作。
6.根据权利要求1所述的存储器装置,其中所述一或多个处理器被配置成生成所述条目表。
7.根据权利要求6所述的存储器装置,其中所述一或多个处理器被配置成生成条目数目等于所述一或多个数据包的最大可能传输大小的所述条目表。
8.根据权利要求7所述的存储器装置,其中所述一或多个处理器仅利用所述表的一部分来生成所述一或多个数据包的所述奇偶校验位,其中所述部分的大小至少部分地基于所述有效负载中的数据位的数目。
9.根据权利要求8所述的存储器装置,其中生成的所述奇偶校验位的数目等于所述条目表中的非零列的数目。
10.一种方法,其包含:
经由一或多个处理器生成条目表,其中生成所述条目表包含生成与数据包的有效负载中的可能的位的数目相对应的条目,其中每个条目包含至少三个二进制一(1)和奇数个无重复值的一(1),并且连续条目包含从先前条目到下一个限定值的递增值,所述下一个限定值具有至少两个二进制数的一(1);
至少部分地基于所述有效负载的数据位,为所述条目表的每个列生成非零的奇偶校验位,其中奇偶校验位的数目至少部分地基于所述有效负载中的数据位的数目;以及
将生成的奇偶校验位附加到所述数据位以形成所述数据包。
11.根据权利要求10所述的方法,其中为所述条目表的每个列生成所述奇偶校验位包括使用异或XOR电路的硬件实现,通过对与所述条目表的对应于相应奇偶校验位的列中的非零二进制值相对应的数据位执行XOR功能而不对与所述列中的零二进制值相对应的数据位执行XOR功能来生成所述奇偶校验位,其中所述表被实现为硬件实现中的所述条目表。
12.根据权利要求10所述的方法,其中为所述条目表的每个列生成所述奇偶校验位包含使用软件指令通过对与所述条目表的对应于相应奇偶校验位的列中的非零二进制值相对应的数据位执行异或功能来使所述一或多个处理器生成所述奇偶校验位。
13.根据权利要求10所述的方法,其包含在所述数据包中包括事务类型字段,其中所述事务类型字段指示数据位的所述数目和奇偶校验位的所述数目。
14.根据权利要求13所述的方法,其中所述事务类型字段指示用于所述有效负载的操作类型,其中所述操作类型包含读取操作、写入操作或消息数据的传输。
15.一种电子装置,所述电子装置包含:
输入,所述输入被配置成接收包含数据位和奇偶校验位的数据包;
存储器部件,所述存储器部件存储表,其中所述表包含用于所述数据包的每个数据位的条目,其中每个条目以二进制包含具有奇数个一(1)的至少三个一(1)并且没有重复值,并且连续条目包含先前条目到下一个限定值的递增值,所述下一个限定值具有来自先前条目的的至少三个二进制一(1)和奇数个二进制一(1);
一或多个处理器,所述一或多个处理器被配置成:
接收来自所述输入的所述数据包;以及
通过以下来确定在传输所述数据包时是否有任何错误发生:
对于被包括在所述数据包中的每个奇偶校验位,从条目表的列中导出验证计算;
至少部分地基于所述相应的验证计算来为每个奇偶校验位生成对应的传输结果;以及
组合所述传输结果以形成总体错误指示符,所述总体错误指示符指示所述数据包的传输是否已将错误引入所述数据包中;以及
至少部分地基于所述总体错误指示符对所述数据包进行动作。
16.根据权利要求15所述的电子装置,其中导出针对相应的奇偶校验位的所述验证计算包含对与所述表的所述条目相对应的数据位执行异或XOR功能,所述条目在与所述相应的奇偶校验位相对应的相应列中具有非零值。
17.根据权利要求16所述的电子装置,其中生成所述对应的传输结果包含确定所述XOR功能的结果是否等于所述相应的奇偶校验位。
18.根据权利要求16所述的电子装置,其中生成所述对应的传输结果包含对所述相应的奇偶校验位和所述XOR功能的所述结果执行XOR功能。
19.根据权利要求16所述的电子装置,其包含计算电路,所述计算电路包含XOR电路,其中生成所述对应的传输结果包含利用XOR电路。
20.根据权利要求15所述的电子装置,其中对所述数据包进行动作包括当所述总体错误指示符指示所述数据包的所述传输是错误的时,将所述数据包被错误地传输的响应发送到传输装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/988,962 US10409680B1 (en) | 2018-05-24 | 2018-05-24 | Progressive length error control code |
US15/988,962 | 2018-05-24 | ||
US16/105,663 US10733050B2 (en) | 2018-05-24 | 2018-08-20 | Progressive length error control code |
US16/105,663 | 2018-08-20 | ||
PCT/US2019/028768 WO2019226265A1 (en) | 2018-05-24 | 2019-04-23 | Progressive length error control code |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112189315A true CN112189315A (zh) | 2021-01-05 |
Family
ID=67845247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980034291.7A Withdrawn CN112189315A (zh) | 2018-05-24 | 2019-04-23 | 渐进长度错误控制码 |
Country Status (5)
Country | Link |
---|---|
US (4) | US10409680B1 (zh) |
EP (1) | EP3804186A4 (zh) |
KR (1) | KR20200135881A (zh) |
CN (1) | CN112189315A (zh) |
WO (1) | WO2019226265A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10409680B1 (en) * | 2018-05-24 | 2019-09-10 | Micron Technology, Inc. | Progressive length error control code |
US11860714B1 (en) * | 2022-10-20 | 2024-01-02 | Micron Technology, Inc. | Error notification using an external channel |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150347225A1 (en) * | 2014-06-02 | 2015-12-03 | Micron Technology, Inc | Systems and methods for improving efficiencies of a memory system |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7596743B2 (en) * | 2005-09-28 | 2009-09-29 | Ati Technologies Inc. | Method and apparatus for error management |
FR2906428A1 (fr) | 2006-09-26 | 2008-03-28 | Canon Kk | Procede, dispositif et application logicielle pour la transmission de paquets de donnees dands un systeme de communication. |
US8352830B2 (en) | 2007-10-26 | 2013-01-08 | Agere Systems Llc | Extraction of values from partially-corrupted data packets |
KR101466695B1 (ko) * | 2008-04-30 | 2014-12-01 | 삼성전자주식회사 | 멀티 비트 레벨 데이터의 부호화 및 복호화 방법 |
US8762798B2 (en) | 2011-11-16 | 2014-06-24 | Stec, Inc. | Dynamic LDPC code rate solution |
US8954832B1 (en) * | 2012-09-05 | 2015-02-10 | L-3 Communications Corp. | Asymmetric distance coding |
US9749448B2 (en) | 2014-11-25 | 2017-08-29 | Intel Corporation | Header parity error handling |
US10411737B2 (en) | 2015-02-25 | 2019-09-10 | Samsung Electronics Co., Ltd. | Transmitter and method for generating additional parity thereof |
US10496478B1 (en) * | 2018-05-24 | 2019-12-03 | Micron Technology, Inc. | Progressive length error control code |
US10409680B1 (en) * | 2018-05-24 | 2019-09-10 | Micron Technology, Inc. | Progressive length error control code |
-
2018
- 2018-05-24 US US15/988,962 patent/US10409680B1/en active Active
- 2018-08-20 US US16/105,663 patent/US10733050B2/en active Active
-
2019
- 2019-04-23 WO PCT/US2019/028768 patent/WO2019226265A1/en unknown
- 2019-04-23 KR KR1020207033391A patent/KR20200135881A/ko not_active IP Right Cessation
- 2019-04-23 EP EP19806590.6A patent/EP3804186A4/en not_active Withdrawn
- 2019-04-23 CN CN201980034291.7A patent/CN112189315A/zh not_active Withdrawn
- 2019-06-28 US US16/457,448 patent/US10838813B2/en active Active
-
2020
- 2020-10-20 US US17/075,424 patent/US11256570B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150347225A1 (en) * | 2014-06-02 | 2015-12-03 | Micron Technology, Inc | Systems and methods for improving efficiencies of a memory system |
Also Published As
Publication number | Publication date |
---|---|
EP3804186A4 (en) | 2021-09-22 |
US20190361777A1 (en) | 2019-11-28 |
US10409680B1 (en) | 2019-09-10 |
US10838813B2 (en) | 2020-11-17 |
US11256570B2 (en) | 2022-02-22 |
US20210034461A1 (en) | 2021-02-04 |
KR20200135881A (ko) | 2020-12-03 |
WO2019226265A1 (en) | 2019-11-28 |
US20190361776A1 (en) | 2019-11-28 |
US10733050B2 (en) | 2020-08-04 |
EP3804186A1 (en) | 2021-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112136115B (zh) | 渐进长度错误控制代码 | |
US11349496B2 (en) | Memory controller and method of data bus inversion using an error detection correction code | |
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 | |
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 | |
KR101374430B1 (ko) | 에러 정정 코드 및 동기화 정보를 이용한 데이터 라인 저장 및 전송 | |
KR20210156713A (ko) | 개선된 ecc 메모리 칩 인코더 및 디코더 | |
US20080148132A1 (en) | Error detection and correction scheme for multi-level cell NAND flash | |
US20130198582A1 (en) | Supercharged codes | |
US9400715B1 (en) | System and method for interconnecting storage elements | |
US7051265B2 (en) | Systems and methods of routing data to facilitate error correction | |
CN108566210B (zh) | 兼容IEEE 802.11n标准的LDPC编码系统及方法、LDPC编码器 | |
Gherman et al. | Binary linear ECCs optimized for bit inversion in memories with asymmetric error probabilities | |
CN108170554B (zh) | 一种nand的数据编码方法和装置 | |
US20240356566A1 (en) | Fast multi-payload-length error-correcting system and methods | |
Kustov et al. | Efficiency Estimation of Single Error Correction, Double Error Detection and Double-Adjacent-Error Correction Codes | |
Chandrasekhar et al. | Design of Novel Hamming Encoding and Decoding Circuits with Double Error Detection | |
WO2024220289A1 (en) | Fast multi-payload-length error-correcting system and methods | |
JP2023037877A (ja) | メモリシステム | |
CN118611685A (zh) | 一种较低冗余度的非线性码编码方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210105 |
|
WW01 | Invention patent application withdrawn after publication |