CN105612697B - 数据传输中的累积误差检测 - Google Patents
数据传输中的累积误差检测 Download PDFInfo
- Publication number
- CN105612697B CN105612697B CN201480054776.XA CN201480054776A CN105612697B CN 105612697 B CN105612697 B CN 105612697B CN 201480054776 A CN201480054776 A CN 201480054776A CN 105612697 B CN105612697 B CN 105612697B
- Authority
- CN
- China
- Prior art keywords
- data
- processing apparatus
- data processing
- error
- stream
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 51
- 230000005540 biological transmission Effects 0.000 title description 22
- 238000012545 processing Methods 0.000 claims abstract description 96
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 22
- 239000000872 buffer Substances 0.000 claims description 87
- 230000004044 response Effects 0.000 claims description 37
- 238000000034 method Methods 0.000 claims description 27
- 239000012634 fragment Substances 0.000 claims description 23
- 230000001360 synchronised effect Effects 0.000 claims description 15
- 125000004122 cyclic group Chemical group 0.000 claims description 11
- 230000000630 rising effect Effects 0.000 claims description 11
- 230000000694 effects Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 claims description 4
- 230000001186 cumulative effect Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/1004—Adding 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
-
- 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/0045—Arrangements at the receiver end
-
- 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
- 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
-
- 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
- H03M13/091—Parallel or block-wise CRC computation
-
- 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/0041—Arrangements at the transmitter end
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本文提供一种用于提供误差校验值以指示数据流内的数据部分中的误差的电路。该电路包括误差检测代码生成电路,该误差检测代码生成电路配置成将误差检测代码算法应用到数据流从而当处理数据流时生成并定期地更新多位校验值,多位校验值的每个更新指示误差检测代码生成电路接收数据流的另外的项。输出端用于在数据流的处理期间从误差检测代码生成电路定期地输出多位校验值的片段,输出的片段各自对应于数据流的数据部分。其中多位校验值的片段的每个片段提供值,该值指示发生在数据流的相应部分中或者在数据流的早期部分中的误差。
Description
技术领域
本发明涉及数据传输领域,并且更具体地涉及检测在两个数据处理装置之间传输的数据中的误差。
背景技术
在数据传输期间可能会出现误差,以及已知使用冗余代码(例如,循环冗余校验或CRC代码)来检测这些误差。此类代码是在发送与接收设备两者处使用相同的算法从数据中生成的,以及如果在接收器处生成的代码与从发送器传输的代码不匹配,则可推断在所接收的数据或所接收的代码中已出现误差。
CRC代码可从一个数据传输的整个数据生成,以验证该整个数据传输。然而,此举的缺陷是误差仅在已经接收整个数据之后才可检测到。此举引入延迟并且需要数据的显著缓冲。一种替代性方法是从数据流的部分或者分组生成此类代码,此举允许持续地校验数据并在早期发现误差。
CRC代码可仅从数据生成,或者CRC代码可以累积的方式从该数据与先前的CRC代码生成。也就是说,数据分组中累积的CRC代码可以是基于该数据分组中的数据与来自先前分组的CRC代码的。此举还允许检测丢失的数据分组,以及提供防护以防止损坏分组。
在这样的系统中,即使每个分组仅传输单个CRC位,也可以实现高度防护,因为每个分组还受益于所有后续分组中的CRC防护,因此,若不存在后续分组,则1位CRC覆盖将会给予使用者二分之一的未检测到误差的可能性,然而随着后续分组的数量增加,未检测到误差的概率迅速下降。因此,3个后续分组将会给予使用者1/16的未检测到误差的可能性,以及7个后续分组将会给予使用者仅1/256的未检测到误差的可能性。
此举的缺陷在于最后几个分组不具有或者具有少量的后续分组,因此具有较低的防护。
显而易见存在生成与传输这些代码的开销,以及在一些情形中可传输CRC代码的仅一部分,从而减少数据传输开销。在使用累积的CRC的情况中,可以获得高水平的防护,即使是在每个分组传输单个CRC位的情况中,因为每个分组将受益于所有后续分组中的CRC防护。在Chuang等人在IEEE 2011第3415-3420页发表的“Investigate Partial CRC-32Characteristic and Performance for Real-time Multimedia Streamings in802.11Wireless Mesh networks(调查研究用于802.11无线网型网络中的实时多媒体流的部分CRC-32特征与性能)”中公开了这样的技术。
生成CRC的累积方法需要在生成来自该分组的CRC之前将来自先前分组的CRC嵌入到下一分组的数据中。此举可以相对高效地在软件中实行,然而对于硬件实现方式存在提高的硬件成本,以及更长的时序路径和/或分组之间用于计算CRC的延迟的额外时钟周期。此举的一个示例将是调试接口(debug interface)上的突发(burst)写入操作,其中每32位字被视为具有其自己的部分CRC的分组。
能够生成用于检测数据流中的误差的CRC代码但不招致过高的硬件或传输带宽成本将是有利的。
发明内容
从第一方面看,本发明提供配置用于误差校验值以指示数据流内数据部分中的误差的电路,该电路包括:
误差检测代码生成电路,该误差检测代码生成电路被配置为将误差检测代码算法应用到所述数据流从而当处理所述数据流时生成并定期地更新多位校验值,所述多位校验值的每个更新指示所述误差检测代码生成电路接收所述数据流的另外的项;
输出端,该输出端用于在所述数据流的所述处理期间定期地从所述误差检测代码生成电路输出所述多位校验值的片段,所述输出的片段各自对应于所述数据流的数据部分;其中
所述多位校验值的所述片段的每个片段提供值,该值指示发生在所述数据流的所述相应部分中或者在所述数据流的早期部分中的误差。
本发明认识到虽然误差检测代码的累积性生成增强了误差防护,但不会过度地增大所传输的数据量。本发明还认识到若该累积性生成需要在可生成下一误差校正码之前输入先前计算出的误差校正码,则此举难以应用到串行数据,除非用户运行误差检测代码计算比数据输出更快。
本发明已经通过提供误差检测代码生成电路解决了此问题,该误差检测代码生成电路当接收数据项时不断地更新校验值,以便该误差检测代码生成电路以与数据流相同的时钟速度操作,以及该误差检测代码生成电路定期地输出对应于所接收的数据部分的多位校验值的片段,该片段提供对该数据部分或者先前数据部分中的误差的指示。如此不断地计算校验值并且将该计算的快照的一部分用作片段,此举将提供对相应数据部分或者先前数据部分中的误差的指示。该片段提供误差指示,因为该片段可用于通过误差校验电路执行的后续计算以识别所传输数据中的误差。
如此可使得能够早期检测数据流中的误差,而无需等待到已传输整个流。此外,在检测到误差的情况下,可以在误差发生处或者在误差发生处附近执行数据的重传,而非必须从开头重传整个数据流。
该种生成校验值的方式对于数据流/突发系统特别有效,这允许对整个数据运行单一误差代码校验算法,其中通过对部分计算出的代码拍快照来使得有可能早期检测误差。
在一些实施例中,所述数据流作为包括所述数据部分的串行流被输入到所述误差检测代码生成电路,一个数据部分直接地在所述数据流中的先前的数据部分之后被输入。
将数据流作为串行流输入而无需将先前计算出的校验总和值与该数据流交错允许以与接收该数据流相同的速度执行计算,这使得此举特别适用于硬件系统。
在一些实施例中,所述误差检测代码算法包括循环冗余校验算法,并且所述误差检测代码生成电路包括循环冗余校验生成电路。
虽然可以使用大量的不同算法来检测误差,但该技术特别适用于循环冗余校验或者CRC算法。就此而言,CRC算法易于在硬件中实施,易于进行数学地分析,并且擅长检测由于噪声而出现的误差。
在一些实施例中,所述数据流包括以下各者中的一个:数据的突发与数据的连续流。
数据的突发可包含一系列的数据分组或者单个数据分组。数据可划分为数据部分,这些数据部分具有针对这些数据部分生成的误差代码片段,或者这些数据部分可形成单个数据部分。在后一情形中传输单个分组,接着在此之后可传输对完整误差代码的请求以增大所提供的误差检测的数量。这允许不管所传输的是单个数据分组还是大量的数据分组,都以同样的方式执行本技术,由此减少硬件的复杂性。
在一些实施例中,所述片段包括单一位,而在其它实施例中所述片段包括数个位。
如先前所指出的,可从片段确定的精确度可取决于所传输的位数量。然而,传输更多的位增加了系统的开销。在传输提供对当前数据部分与先前数据部分两者中的误差的指示的误差代码的片段的情形中,当存在大量的数据部分时,单一位可能就是足够的,特别是最后传输完整代码来揭露在将不受益于该累积性系统的后续部分中的任何误差时。
在一些实施例中,所述误差检测代码生成电路包括被配置用于处理所述数据流的串联连接的同步逻辑电路,所述误差检测代码生成电路还包括被配置用于接收所述数据流的数据输入端以及至少一个反馈电路,所述至少一个反馈电路被配置用于将从所述串联连接的同步逻辑电路中的一个逻辑电路输出的值反馈给靠近所述数据输入端的所述串联连接的同步逻辑电路中的至少一个逻辑电路的输入端以使得在所述处理期间所述值与所述数据流结合,所述片段从所述串联连接的同步逻辑电路中的至少一个逻辑电路的输出端被输出。
一种提供指示相应数据部分与先前数据部分两者中的误差的累积校验的方法为:使用反馈电路来反馈来自串联连接的逻辑电路(在一些情形中,来自该电路的输出端)的值,以使得该值以连续不断的方式与数据流结合。由此不断地用数据流与先前的校验值来计算这些值,并且所输出的片段是该计算的快照。
在一些实施例中,所述数据流包括数据的突发,并且所述误差检测代码生成电路被配置用于输出已处理过所述数据的突发的所述完整的多位校验值。
如先前所指出的,用于误差检测的该累积方法允许各个片段提供对当前数据部分与早期数据部分中的误差的指示。此举的缺陷是后续部分中的误差防护度不如早期部分中的误差防护度高。这可以通过最后输出完整的多位校验值来解决,以便可以执行数据的完整校验。如此,完成充分精确的校验,该校验具有以下能力:在计算出及发送该完整的误差校验值之前,一般地定位在数据流中早期发生的任何误差。
本发明的第二方面提供数据处理装置,该数据处理装置包括:根据本发明的第一方面的电路;输入端口,配置用于接收包括所述数据流的数据;以及输出端口,其中,所述数据处理装置被配置成响应于在所述输入端口处接收到所述数据流而生成所述多位校验值的所述片段以及将所述多位校验值的所述片段在所述输出端口处输出。
在一些情形中,数据处理装置可接收数据流并且生成多位校验值并且输出这些多位校验值。因此,已传输数据流的装置可验证接收器是否已从其接收的多位校验值正确地接收数据。这些多位校验值是由接收装置在接收数据流期间定期地输出的,并且指示到目前为止接收的这些部分中的误差,由此允许对任何误差的早期检测。输入端可以是双输入/输出端口的一部分,或者输入端可被配置为单个端口。
在一些实施例中,所述电路还包括:缓冲电路,该缓冲电路被配置用于存储所述数据流的所述数据部分;以及控制电路,该控制电路配置用于响应于接收另外的数据部分而提交最近最少接收到的所存储的数据部分。
由于计算的累积性质,在未指示误差的数据部分之后输出的片段越多,该数据部分越有可能是正确的,由此响应于接收另外的数据部分而提交最近最少存储的数据部分表示提交当前存储的并且最不可能具有误差的数据部分。
在一些实施例中,所述控制电路配置用于取决于所需的误差检测能力而在任一时刻改变存储在所述缓冲器中的数据部分的数量。
所需缓冲器的大小取决于所需精确度,并且事实上可以根据情况及当前的精确度要求而改变。这允许根据情况来配置系统,以便在合适的情形中,若所需的精确度表示需要缓冲较少的数据,则一些存储器可以被释放用于其他目的。
在一些实施例中,所述控制电路配置用于响应于接收到在所述输入端口处接收到的误差指示而清空所述缓冲电路中的所述数据部分。
因为在本实施例中误差校验值在接收数据的电路中生成并且被传输到传输数据的电路,其中数据具有在传输该数据的电路中识别出的任何误差,所以当接收装置从发送器接收到误差指示时,该接收装置才觉察到任何误差。若接收到这样的误差指示,则在提交之前清空接收装置中存储数据的缓冲器。
在一些实施例中,在所述输入端口处接收来自数据接口的所述数据流,并且所述误差指示包括在所述数据接口上没有活动达预定时间。
一种指示数据流中存在误差的便利方法是停止发送器处已经检测出误差的任何数据的传输。因此,接收装置将发现在数据接口上没有活动达预定时间。就此而言,传输误差信号要求这些信号具有占据编码空间的特定编码。这样的误差信号还将需要误差防护,以便误差指示转换期间的误差不会导致正提交的数据被破坏。在其中定期地传输数据流的实施例中,可以仅通过不传输任何数据达预定时间来指示误差的检测。在这样的实施例中,在数据接收器处接收到新的数据部分指示早期的数据部分是正确的因此指示可以提交来自缓冲器的数据。因为被破坏的分组的数量将相对较低,所以在发生误差的情况下停止数据传输将不会意味着显著的开销。
在一些实施例中,所述控制电路配置用于响应于接收到在所述输入端口处接收到的确认指示而提交并清空所述缓冲电路中所述所存储的数据部分。
在数据集的发送完成的情况下,此发送完成可由从发送数据的装置接收到的确认指示来指示,响应于此来提交及清空缓冲器,因为此时将再次开始对新的数据集的误差代码检测。
在一些实施例中,所述数据流包括数据的突发,并且所述确认指示包括在所述输入端上接收另外的数据突发。
在数据流作为数据突发被发送的情况中,新的数据突发的接收指示已经发送先前的数据突发并且正再次开始代码检测。此时应提交及清空缓冲器,因为任何后续的误差指示将不会应用到当前存储在缓冲器中的数据。
在一些实施例中,所述电路配置用于当用与数据项有关的指示符请求所述完整的多位值时识别在所述输入端口处接收到的所述数据项,以及通过输出所述多位校验值来响应所述请求。
因为误差代码是由数据的接收器生成的,所以将无法了解例如何时已完成数据突发。因此,使数据发送器在突发的末端或者在数据流的末端传输该突发已经完成并且其现在需要完整的多位值可为有利的。此可以由指示符指示,并且接收装置可以通过输出所需值而响应于此。
在一些实施例中,所述输入端口还配置用于接收数据事务,并且所述输出端还配置用于响应于所述数据事务中的一个数据事务来输出包括所述数据流、所述多位校验值的所述片段以及所述多位校验值的数据的流。
数据处理装置可以经配置用于接收数据及响应于数据事务而输出数据两者。在数据输出情况中,多位校验值的片段将与数据一起输出,随后是在数据流的末端的完整的多位校验值。
在一些实施例中,所述数据处理装置配置用于将所述数据流输出为交错有所述多位校验值的所述相应片段并且跟随有所述多位校验值的所述数据流的多个所述部分。
使所输出的数据流交错有这些片段并且在最后输出多位校验值是有利的。以此方式,当接收到数据部分时,可以用这些片段校验这些数据部分,从而在早期确定误差,并且可以在最后用完整的值来执行完整的校验。
在一些实施例中,所述数据处理装置配置用于响应于所述数据流接收装置无法处理所述数据流的至少一部分而控制所述电路输出所述多位校验总和值的不正确的片段。
若由于某种原因数据传输中存在误差,则数据接收器可以通过故意输出多位校验值的不正确的片段来指示此误差。响应于此,系统将假设传输中的误差并且重传该数据。一些系统可以查询接收装置以确定误差的性质,因此判定重传是否可能成功,或者误差是否是永久的,例如无效的请求。
在一些实施例中,所述多位校验值的所述片段包括单一位值,所述数据处理装置包括输出电路,该输出电路配置用于在输出所述片段之前从所述单一位生成双位值,所述双位值包括两个位,该两个位各自具有不同的值并且在所述两个位之间具有上升边缘或者下降边缘,所述上升边缘或下降边缘与为所述数据处理装置计时的时钟信号同步。
虽然输出多位校验值的单一位可为有利的,但是在一些实施例中,可为有利的是,将此单一位值转换成双位值并将两个值之间的转换不仅用作值的指示符还用作时钟信号的指示符,以使得该值的接收器可以与该值的发送器的时钟信号同步,并且不需要具有共享时钟信号,而是可以从此转换生成时钟信号。这减少了两个设备之间可能需要的连接数量。
本发明的第三方面提供一种数据处理系统,该数据处理系统包括根据本发明的第二方面的数据处理装置以及配置用于输出所述数据流到所述数据处理装置的另一数据处理装置,其中该另一数据处理装置配置用于接收所述多位校验值的所述片段以及响应于检测到误差而传输所述误差的指示。
本发明的一方面提供一种系统,该系统具有数据发送器与接收器,该数据发送器传输数据,并且该接收器接收数据、生成多位校验值以及输出多位校验值的片段,该发送器用这些值检测传输中的误差并且提供误差指示。在一些情形中,通过停止数据传输达预定时间来提供误差指示。
在一些实施例中,该另一数据处理装置包括时钟生成器,该时钟生成器用于根据所接收到的时钟信号生成时钟信号,其中所接收的所述多位校验值的所述片段各自包括具有两个不同位的双位值以及在所述两个位之间的上升边缘或者下降边缘,所述时钟生成器配置用于调节所述时钟信号,以使所述时钟信号与所述上升边缘或下降边缘中的至少一些同步。
在多个设备之间传输数据的情形中,可以通过将值编码为两个值之间的转换来获得这些设备的同步。这样的转换可以用作同步时钟边缘,以及因此发送该值与同步信号两者。此外,不需要提供接收器与发送器两者共有的共享时钟。
在一些实施例中,所述另一数据处理装置配置用于响应于在所述多位校验值的之所述所接收到的片段的一个片段中检测到误差来输出读取请求,以读取所述目标设备的状态寄存器。
当在所接收到的这些片段的一个片段中检测到误差时,可为有利的是使该另一数据处理装置发送读取请求以读取目标设备的状态寄存器,从而判定是否存在已发生的且可由状态寄存器识别的某误差。在错误片段已经通过接收设备输出以指示接收数据中的误差的情况下,这可以识别故障的原因。因为误差是不常见的,所以通过响应于检测到误差而执行该动作,不会存在大量的开销。
在一些实施例中,该另一数据处理装置包括调试装置,以及所述数据处理装置包括待调试的微处理器。
本技术特别适合于调试装置,其中调试数据与事务被发送到微处理器。门数往往是针对微处理器的临界因子。当进行调试时,必须缓冲所接收到的数据,直至有把握该数据是正确的,因为若此缓冲不存在,则无效的数据可能会被写入到系统中的写入敏感的外围寄存器中。类似地若包含误差的突发被从开头重传而不是靠近发生误差的位置开始重传,则写入敏感的外围装置将发现重复的写入。本技术的使用允许减小缓冲量,而不会限制突发的最大长度。
本发明的第四方面包括数据处理装置,该数据处理装置包括根据本发明的第一方面的电路,所述电路还包括:输出端,配置用于输出包括所述数据流、所述多位校验值的所述片段以及所述多位校验值的数据的流。
在一些实施例中,可以是发送装置具有该电路以及输出数据与校验值。
在该数据处理装置可配置用于将所述数据流输出为交错有所述多位校验值的所述相应片段并且跟随有所述多位校验值的所述数据流的多个所述部分。
以此方式输出数据允许不断地校验所接收到的数据以及早期发现任何误差。
本发明的第五方面提供数据处理系统,该数据处理系统包括根据本发明的第四方面的数据处理装置以及与所述数据处理装置通信的另一数据处理装置,该另一数据处理装置包括输入端与误差检测电路,该输入端用于接收所述数据流与所述多位校验值,误差检测电路配置用于取决于所述数据流与所述多位校验值的所述片段而校验所述接收到的数据流中的误差以及响应于检测到误差而提供误差指示给所述数据处理装置。
本发明的第六方面提供一种提供误差校验值以指示数据流内的数据部分中的误差的方法,该方法包括以下步骤:
通过将误差检测代码算法应用到所述数据流来处理所述数据流从而当处理所述数据流时生成并定期地更新多位校验值,从而生成误差检测代码,所述多位校验值的每个更新指示所述误差检测代码算法被应用到所述数据流的另外的项;
在所述数据流的所述处理期间定期地输出所述多位校验值的片段,所述输出的片段各自对应于所述数据流的数据部分;其中
所述多位校验值的所述片段的每个片段提供值,该值指示发生在所述数据流的所述相应部分中或者在所述数据流的早期部分中的误差。
本发明的第七方面提供计算机程序产品,该计算机程序产品包括计算机程序,当由数据处理装置执行该计算机程序时,该计算机程序可操作用于控制所述数据处理装置执行根据本发明的第六方面的方法的各步骤。
就此而言,虽然本技术可在硬件中体现,但是误差校验值的生成还可在软件中完成。
附图说明
将仅以举例的方式,参考如附图中所示的本发明的实施例来进一步描述本发明,在附图中:
图1示出了根据本发明的实施例的数据处理系统;
图2a和图2b分别示出了执行写入和读取的图1的数据处理系统;
图3示出了用于根据本发明的实施例生成误差检测代码以及输出数据的流与循环冗余代码片段的多项式生成电路;
图4示出了根据本发明的实施例的调试器与被调试的微处理器;
图5示出了根据本发明的替代性实施例的数据处理系统;
图6示出了流程图,该流程图示出本技术的实施例的方法,其中CRC代码与数据一起输出;以及
图7示出了流程图,该流程图示出本发明的实施例的方法,其中误差检测代码在数据接收器处生成并且被传输返回到数据发送器。
具体实施方式
图1示出了根据本发明的实施例的数据处理系统。该数据处理系统包括主设备(master)10与从设备(slave)20,该主设备10与从设备20彼此进行数据通信。该通信被示出为是经由接口15的,以及此接口可以采取物理总线或者其他有线连接的形式,或者此接口可以是无线连接。在该实施例中,主设备10生成传输到从设备20的事务。
从设备20具有循环冗余校验生成电路22,该循环冗余校验生成电路22根据其接收的数据来生成多位循环冗余校验值。该从设备使用生成多项式算法的电路来完成此举,并且该电路在图3中更详细地示出。该电路具有至少一个反馈回路,以使得所生成的代码中的至少一些被反馈回该电路,以便形成累积误差检测代码。该电路具有输入与输出,并且当接收到数据时更新所生成的代码。
在本实施例中,当主设备正执行例如写入时,在接收到数据时定期地输出由CRC生成器22生成的代码的片段。此片段可用于识别在所接收到的数据中可能存在的任何误差。在数据事务的末端,主设备10将传输指示符以及数据的最终片段(指示这是事务的末端),以及响应于此,控制电路28将控制从设备20输出完整的多位CRC代码,以便可严格地校验数据的最终片段。
除了CRC生成器电路22与多路复用器24之外,从设备20中还存在缓冲器26,以用于在将接收到的数据提交与写入到所需地址之前存储该数据。在图1中示出了两个缓冲器,其中一个缓冲器用于读取数据而另一缓冲器用于写入数据,取决于实现方式,这些缓冲器可实施作为独立的缓冲器或者作为单个缓冲器。还存在输入端口31与输出端口32,在本实施例中输入端口31与输出端口32被示出为独立的端口,但是在一些实施例中输入端口31与输出端口32将为具有输入与输出功能两者的单个端口。
在写入期间,主设备将传输数据串,以及在该传输期间,主设备将开始接收回与已经由CRC代码生成电路22生成且已经发送的数据部分相对应的CRC片段。主设备将使用对应的CRC校验电路12从其传输的数据创建其自身对应的CRC片段,以及将使用这些CRC片段来验证其接收的CRC片段是否是所期望的片段或者CRC片段是否指示误差。
在从设备中接收到的数据在缓冲器26中缓冲,该缓冲器26在本实施例中为接收写入数据的缓冲器,并且新数据的接收被视为指示先前所接收到的数据是正确的,如此当接收到新的数据时,提交存储在缓冲器26中的最旧的数据。若主设备10检测到误差,则此指示清空从设备与缓冲器,以及从检测到误差的位置点或者检测到误差的位置附近重传该数据。
在本实施例中,从设备一直生成CRC代码,并且主设备校验该CRC代码。CRC校验电路12可以是CRC生成器,该CRC生成器类似于从设备的CRC生成器以及未示出的比较电路,因此如在从设备中的CRC生成器一般,数据用于生成CRC代码,并且随后将生成的CRC代码与自从设备接收到的CRC代码作比较。替代地,CRC校验电路12可以是可接收CRC代码与数据并且根据该CRC代码与数据生成误差指示的某些其他电路。
如在本实施例中,CRC代码始终在从设备20内生成,则该系统的功能取决于主设备是发送写入事务还是发送读取事务。这分别在图2a与图2b中示意性地示出。
图2a示出了与图1的电路类似的电路,其中主设备10传输写入请求和数据到从设备20。从设备20接收该数据并且在缓冲器26内缓冲该数据。CRC生成电路22生成CRC代码并且将该代码的片段传输回该主设备10。此举当正在接收数据时发生。因此虽然数据与CRC代码在不同的方向中行进,但是其可在时间上交错。
在接口是单线而非双向接口的情形中,数据将在一个方向中行进,而CRC代码间歇地往回行进。控制电路28将校验新的数据部分的到达,且若这些新的数据部分在所期望的时间到达,则它们将被保存在缓冲器中,并且已经存在于缓冲器内的最旧的数据部分将被提交。就此而言,当CRC校验是累积校验时,接收到的后续数据部分越多,则可以越确定较旧的数据部分是正确的,因为每个CRC代码不仅提供关于当前数据部分的正确性的指示,还提供关于先前数据部分的正确性的指示。因此,当接收到的CRC代码的数量增加时,则早先接收到的数据部分中不存在误差的概率也增大。因此,缓冲器越大且在提交数据部分之前接收到的后续数据部分越多,则所提交的数据的可靠性越高。因此取决于所需误差检测置信度来选择缓冲器大小。
主设备10传输写入请求与数据,从从设备20接收回CRC片段,并且使用CRC校验电路12校验这些CRC片段。若检测到误差,则控制电路18将通过不传输进一步数据达预定时间段来将此误差传送给从设备20。控制电路28将响应于接口15上活动的停止而清空缓冲器26。控制电路18将随后重传写入请求与数据。在一些实施例中,主设备可以生成读取请求以读取状态寄存器27,从而判定在从设备上是否存在其应注意到的错误。就此而言,从设备20可在必要时生成错误的CRC代码来向主设备指示误差,当主设备无法正确地接收数据时,可能是由于在从设备20内发生错误。
当已经传输完全写入请求时,则控制电路18传输完整CRC请求,以向从设备指示现已接收到所有数据并且可以输出完整的CRC。响应于此,从设备20将输出该特定写入请求的数据的完整CRC。
随后将发送新的请求,并且控制电路28将响应于接收到该新的请求而提交缓冲器26的内容。
图2b示出了当实施读取时发生了什么。因此,在此情况下,从主设备10发送读取请求到从设备20,并且CRC生成电路生成CRC片段并且使用多路复用器24输出其中交错有CRC片段的读取数据。在数据输出的最后输出完整的CRC代码。在此情况下,存储在缓冲器26中的数据为所读取的数据,该数据存储在缓冲器中以便假使在该数据的传输中存在误差时可以再次重传该数据。因此在此情况下,若检测到误差,不清空缓冲器。仅当该数据已经成功传输时才可清空缓冲器。
在主设备10处接收CRC片段与数据,并且在缓冲器16内缓冲该数据。随后将该数据与CRC片段一起输入到CRC校验电路12中,并且确定根据所接收到的数据生成的CRC片段是否匹配已经接收到的那些CRC片段。若其不匹配,则发送误差信号给控制电路18,控制电路18会清空缓冲器16并且重新提交读取请求。若未检测到误差,则请求是成功的。每次当接收到新的数据片段并且无误差被传送时,提交缓冲器16中最旧的数据片段。当已经接收到完整的CRC代码并且其指示所有接收到的数据是正确的时,控制电路18可以提交整个缓冲器16。或者,控制电路18可以响应于生成新的事务请求而完成此举。
图3示出了CRC生成电路22。CRC生成电路22为多项式生成电路,其根据数据来生成多项式形式的CRC,该CRC可用于识别误差。电路的长度与反馈回路的位置取决于所使用的多项式并且将根据所需的误差检测能力来选择。
由该电路累积地计算出的CRC代码的片段从输入端附近输出到电路,CRC代码片段与数据一起输出。当所有的数据已经穿过该电路时,通过并行使用所有的同步元素的输出来输出完整的CRC代码。因此,CRC生成电路22将输出片段以及完整的CRC。在其中数据与代码在相同的设备处生成的情况中,多路复用器24将多路复用片段及数据并且将最后输出完整的CRC。因此输出数据与CRC片段的流以及随后输出完整的CRC代码。对于接收装置生成与输出CRC代码的情况,这些CRC代码将在时间上与所接收到的数据一起交错输出。
图4示出了根据本发明的实施例的数据处理系统。在此系统中存在调试器40与待调试的系统50,该调试器40作用类似于图1与图2中的主设备,而该系统50作用类似于图1与图2中的从设备。调试器40生成事务,这些事务被传输到正在被调试的目标50。该目标包括正在被调试的微处理器60且还包括:CRC生成电路52、控制电路58,以及缓冲器56a与56b。CRC生成电路52用于判定在传输的测试数据中是否存在任何误差。就此而言在调试器与控制电路48内存在相应的CRC校验电路42。还存在缓冲器46。
在本实施例中,将包括大量读取与写入事务的数据从调试器40传输到待调试的系统50,并且在写入情形中所接收到的数据被存储在缓冲器56a内,而在读取情形中该数据在输出之前被存储在缓冲器56b中。就此而言,在读取失败的情况中读取数据被存储在缓冲器56b中,因此可以重新请求该读取数据并且从缓冲器56b发送该读取数据。虽然缓冲器56a与56b被示出为两个缓冲器,但其在一些实施例中可以被实现为单个缓冲器。
在读取情形中对将传输的数据实行CRC校验,而在写入情形中对接收到的数据实行CRC校验,并且在本实施例中生成作为单一位的CRC代码片段由CRC生成电路52转化为两位数据,以使得在此情况下用上升边缘代表1,以及用下降边缘代表0。此数据输出回主设备40,在主设备40中将此数据输入到CRC校验电路42以判定在已经传输的数据中是否存在任何误差。
还将时钟边缘形式的CRC数据输入到PLL电路47形式的时钟生成器中,该PLL电路47根据所接收到的数据的时钟边缘生成时钟信号。以此方式,该调试器40可以保持与调试对象(Debuggee)同步,而无需专用的时钟信号。
此电路以与图2非常类似的方式作用,因此当由CRC校验电路42在写入数据中检测到误差时,控制电路48将通过停止数据输出来向装置50指示误差。该控制电路58将响应于该停止而清空缓冲器56a。或者,若数据中无停止,则该控制电路58将在接收到新的数据时提交来自缓冲器56a的最旧的数据,并且该最旧的数据将被发送给微处理器60。
在该事务为读取时,将从微处理器60读取数据并且将经由缓冲器56b将该数据输入到CRC生成电路52中,并且时钟边缘形式的CRC片段将与该数据交错地输出。所接收到的数据被存储在缓冲器46中。通过CRC校验电路42校验所接收到的该数据,并且将向控制电路48指示任何误差,控制电路48将响应于这些误差而清空缓冲器46并且重传读取请求。在此之前可传输读取系统50中的状态寄存器(未示出)的请求,从而判定检测的误差是否不是传输误差而是故障。
图5示出了替代性的实施例,在该替代性的实施例中有两个相互连接的装置70与80,这些装置各自分别包括CRC生成器72与82以及分别包括CRC校验电路73与83。在此情况下,装置70、80中的每一者可充当主设备或者从设备中的任意一者并且可生成写入或者读取请求。这些装置被配置成使得正传输数据的设备还将传输交错在数据中的CRC片段,并且接收电路将校验这些CRC片段与数据并且将传送任何误差。因此,当从装置70发送写入请求时,该数据将被发送为交错有CRC片段的数据。所接收到的数据将在装置80内缓冲,同时通过CRC比较电路83校验该数据。响应于在预定数量的数据部分之后未发现误差,将提交缓冲器中最旧的数据,以及当在数据写入的最后发送完整的CRC代码时,可以提交整个数据缓冲器。响应于在该数据中发现误差,清空缓冲器。
若装置70正在执行读取请求,则将从装置80发送数据与CRC代码以及将在装置70处比较这些数据与CRC代码。该数据在被提交之前将在装置70的数据缓冲器中缓冲,且若比较电路73确定CRC生成器72生成的CRC代码与接收到的那些CRC代码不匹配,则其将清空该缓冲器并以新的读取请求的形式传送误差。然而若未检测到误差,则将在数据的最后传输完整的CRC代码,并且响应于此可以提交装置70中的缓冲器内的数据以及清空该数据。在来自装置70的读取请求期间,已经读取的数据将被存储在装置80的缓冲器中,并且若存在误差并且发送新的读取请求,则将从此缓冲器发送此数据。可能重要的是对数据值的读取可能如有时会发生的一样改变该数据值。在此种情况下,重要的是缓冲已读取的数据,以便若传输失败,可以重新发送相同的数据。在装置80不以此方式存储数据的情况中,将不需要这样的缓冲器,因为可以简单地重复读取。
图6示出了流程图,该流程图示出根据本发明的实施例的方法中的步骤。此方法为当响应于图1或图2的装置中的读取请求或者响应于图5中的任何请求时发生的方法。
最初传输数据并且将CRC算法应用到该数据,以及该数据经输出作为数据突发,该数据突发包括交错有CRC代码片段的数据部分的流。在数据突发的末端输出完整的CRC代码。就此而言,若该事务不成功,则可通过生成无效的CRC代码来向正在接收该数据的设备指示此不成功。响应于此,接收装置将认定存在误差。
接收装置接收包括数据部分与CRC片段的数据流。该接收装置随后使用该接收到的CRC片段与其自身生成的CRC片段来验证所接收到的数据部分并且判定是否存在误差。若存在,则清空缓冲器。若不存在,则接收装置判定缓冲器是否已满。若缓冲器未满,则接收装置将数据部分存储在缓冲器中。若缓冲器已满,则接收装置将提交缓冲器所存储的最旧的数据部分并移除该最旧的数据部分,并且随后将该数据部分存储在缓冲器中。若尚未到达突发的末端,则重复该过程以接收下一数据部分及CRC片段。若已到达突发的末端,则接收完整的CRC代码。若该完整的CRC代码是正确的,则接收装置将提交缓冲器并且随后清空缓冲器。若该完整的CRC代码是不正确的,则已出现误差并且该接收装置将清空缓冲器。
图7示出了流程图,该流程图示出本发明的另一方法中的步骤,并且该方法涉及图1或图2的写入。在此情况下,判定是否已经在预定时间内接收到新的分组。若未接收到,则此为来自发送器的指示,指示在先前的突发中存在误差,因此清空缓冲器。此举是指示误差的便利方式,不需要编码任何额外的信号。若已经接收到新的分组,则判定其是否请求完整CRC,在请求完整CRC的情况中传输完整CRC。否则分组将包含新的数据部分。
若已经接收到新的数据部分,则判定该新的数据部分是否是相同的数据突发的一部分。若是并且若缓冲器已满,则提交存储在缓冲器中的最旧的数据部分。
若该新的数据部分不是相同的突发的一部分,则必须提交缓冲器的内容并且可清空缓冲器。
当处理这些数据部分时,将误差检测代码算法应用到数据流的数据部分以生成误差校验代码,以及输出误差校验代码的片段,该片段可指示刚接收到的数据部分以及在相同的突发内的任何早先数据部分中的误差。
随后输出根据该数据部分计算出的误差校验代码的片段,并且将该数据部分存储到缓冲器。随后再次判定是否在预定时间内接收到新的数据部分。
应注意的是当接收数据的设备生成误差校正代码并且传输这些误差校正代码时,通过已发送该据的设备检测这些代码中的任何误差,因此需要以某种方式传送误差。在本实施例中,通过停止数据接收来传送这些误差。因此,在预定时间内接收到的每个新的数据部分指示未检测到误差及因此此后当可以相当地确定该缓冲器中的一定数量的数据部分中不存在误差时,可以提交这些数据部分。
此外,若例如设备在提交来自缓冲器的数据时检测到故障而使其无法接收所传输的数据,则该设备可生成错误的CRC代码并且可以将该故障的指示存储在状态寄存器中。这些步骤还未示出。发送器可以响应于在接收到的CRC代码中检测到误差而生成读取请求以读取状态寄存器。
所附权利要求中界定了本发明的各种其他方面与特征。在不脱离本发明的范围的情况下,可以对之前描述的本文的实施例做出各种修改。
Claims (33)
1.一种用于提供误差校验值以指示数据流内的数据部分中的误差的电路,该电路包括:
误差检测代码生成电路,该误差检测代码生成电路被配置为将误差检测代码算法应用到所述数据流从而当处理所述数据流时生成并定期地更新多位校验值,所述多位校验值的每个更新指示所述误差检测代码生成电路接收所述数据流的另外的项;
输出端,该输出端用于在所述数据流的所述处理期间定期地从所述误差检测代码生成电路输出所述多位校验值的片段,所述输出的片段各自对应于所述数据流的数据部分;其中
所述多位校验值的所述片段的每个片段提供指示发生在所述数据流的相应部分中或者在所述数据流的早期部分中的误差的值;
其中,所述数据流包括数据的突发,并且所述误差检测代码生成电路被配置用于输出已经处理过的所述数据的突发的完整的多位校验值。
2.如权利要求1所述的电路,其中,所述数据流作为包括所述数据部分的串行流被输入到所述误差检测代码生成电路,一个数据部分直接地在所述数据流中的先前的数据部分之后被输入。
3.如权利要求1所述的电路,其中,所述误差检测代码算法是循环冗余校验算法,并且所述误差检测代码生成电路是循环冗余校验生成电路。
4.如权利要求1所述的电路,其中,所述片段包括单一位。
5.如权利要求1所述的电路,其中,所述误差检测代码生成电路包括被配置用于处理所述数据流的串联连接的同步逻辑电路,所述误差检测代码生成电路还包括被配置用于接收所述数据流的数据输入端以及至少一个反馈电路,所述反馈电路被配置用于将从所述串联连接的同步逻辑电路中的一个逻辑电路输出的值反馈给靠近所述数据输入端的所述串联连接的同步逻辑电路中的至少一个逻辑电路的输入端以使得在所述处理期间所述校验值与所述数据流结合,所述片段从所述串联连接的同步逻辑电路中的至少一个逻辑电路的输出端被输出。
6.一种数据处理装置,该数据处理装置包括如权利要求1所述的电路、被配置用于接收包括所述数据流的数据的输入端口以及输出端口,其中,所述数据处理装置被配置成响应于在所述输入端口处接收到所述数据流而生成所述多位校验值的所述片段以及将所述多位校验值的所述片段在所述输出端口处输出。
7.如权利要求6所述的数据处理装置,其中,所述数据处理装置还包括:
缓冲电路,该缓冲电路被配置用于存储所述数据流的所述数据部分;以及
控制电路,该控制电路被配置用于响应于接收另外的数据部分而提交最近最少接收到的所存储的数据部分。
8.如权利要求7所述的数据处理装置,其中,所述控制电路被配置用于取决于所需的误差检测能力而在任一时刻改变存储在所述缓冲电路中的数据部分的数量。
9.如权利要求8所述的数据处理装置,所述控制电路被配置用于响应于接收到在所述输入端口处接收到的误差指示而清除所述缓冲电路中的所述所存储的数据部分。
10.如权利要求9所述的数据处理装置,其中,在所述输入端口处从数据接口接收所述数据流,并且所述误差指示包括:在预定时间内在所述数据接口上没有活动。
11.如权利要求7到10中任一项所述的数据处理装置,所述控制电路被配置用于响应于接收到在所述输入端口处接收到的确认指示而提交并清空所述缓冲电路中所述所存储的数据部分。
12.如权利要求11所述的数据处理装置,其中,所述数据流包括数据的突发,并且所述确认指示包括在所述输入端上接收另外的数据的突发。
13.如权利要求6所述的数据处理装置,所述电路被配置用于当用与数据项相关联的指示符请求所述完整的多位校验值时识别在所述输入端口处接收到的所述数据项,并且通过输出所述完整的多位校验值来响应所述请求。
14.如权利要求6所述的数据处理装置,其中,所述数据处理装置被配置用于响应于错误处理所述数据流的至少一部分而控制所述电路输出所述多位校验值的不正确的片段。
15.如权利要求6所述的数据处理装置,其中,所述输入端口还被配置用于接收数据事务,并且所述输出端口还被配置用于响应于所述数据事务中的一个数据事务来输出包括所述数据流、所述多位校验值的所述片段以及所述多位校验值的数据的流。
16.如权利要求15所述的数据处理装置,其中,所述数据处理装置被配置用于将所述数据流输出为交错有所述多位校验值的所述相应片段并且跟随有所述多位校验值的多个所述数据部分。
17.如权利要求6所述的数据处理装置,其中,所述多位校验值的所述片段包括单一位值,所述数据处理装置包括输出电路,所述输出电路被配置用于在输出所述片段之前从所述单一位生成双位值,所述双位值包括两个位,该两个位各自具有不同的值并且在所述两个位之间具有上升边缘或者下降边缘,所述上升边缘或下降边缘与为所述数据处理装置计时的时钟信号同步。
18.一种数据处理系统,该数据处理系统包括如权利要求6所述的数据处理装置以及被配置用于将所述数据流输出到所述数据处理装置的另一数据处理装置,其中所述另一数据处理装置被配置用于接收所述多位校验值的所述片段,以及响应于检测到误差而提供关于所述误差的指示。
19.如权利要求18所述的数据处理系统,其中,所述另一数据处理装置被配置用于通过停止所述数据流的输出达预定时间来提供所述误差的指示,并且所述数据处理装置被配置为在所述输入端口处从数据接口接收所述数据流,并且所述误差的指示包括:在预定时间内在所述数据接口上没有活动。
20.如权利要求19所述的数据处理系统,其中,所述另一数据处理装置被配置用于在多个数据部分的输出之后输出对所述完整的多位校验值的请求,所述请求包括指示所述请求的指示符。
21.如权利要求18到20中任一项所述的数据处理系统,其中,所述多位校验值的所述片段包括单一位值,所述数据处理装置包括输出电路,所述输出电路被配置用于在输出所述片段之前从所述单一位生成双位值,所述双位值包括两个位,该两个位各自具有不同的值并且在所述两个位之间具有上升边缘或者下降边缘,所述上升边缘或下降边缘与为所述数据处理装置计时的时钟信号同步,并且所述另一数据处理装置包括时钟生成器,所述时钟生成器用于根据接收到的时钟信号来生成时钟信号,其中所接收的所述多位校验值的所述片段各自包括具有两个不同位的双位值以及在该两个位之间的上升边缘或者下降边缘,所述时钟生成器被配置用于调节所述时钟信号,以使所述时钟信号与所述上升边缘或下降边缘中的至少一些同步。
22.如权利要求18所述的数据处理系统,所述另一数据处理装置被配置用于响应于在所接收到的所述多位校验值的所述片段中检测到误差来输出读取请求,以读取目标设备的状态寄存器。
23.如权利要求18所述的数据处理系统,其中,所述另一数据处理装置包括调试装置,并且所述数据处理装置包括待调试的微处理器。
24.一种数据处理装置,该数据处理装置包括如权利要求1所述的电路,并且还包括:
输出端口,该输出端口被配置用于输出包括所述数据流、所述多位校验值的所述片段以及所述多位校验值的数据的流。
25.如权利要求24所述的数据处理装置,其中,所述数据处理装置被配置用于将所述数据流输出为交错有所述多位校验值的所述相应片段并且跟随有所述多位校验值的所述数据流的多个所述部分。
26.一种数据处理系统,该数据处理系统包括如权利要求24所述的数据处理装置,以及与所述数据处理装置通信的另一数据处理装置,并且包括输入端口与误差检测电路,该输入端口用于接收所述数据流与所述多位校验值,该误差检测电路被配置用于取决于所述数据流与所述多位校验值的所述片段而校验所接收的所述数据流中的误差并且响应于检测到误差而提供误差指示到所述数据处理装置。
27.如权利要求26所述的数据处理系统,其中,所述另一数据处理装置包括:
缓冲电路,该缓冲电路被配置用于存储所述数据流的所述数据部分;以及
控制电路,该控制电路被配置用于响应于接收另外的数据部分而提交最近最少接收到的所存储的数据部分。
28.如权利要求27所述的数据处理系统,其中,所述控制电路被配置用于取决于所需的误差检测能力而在任一时刻改变存储在所述缓冲电路中的数据部分的数量。
29.如权利要求27或28中任一项所述的数据处理系统,所述控制电路被配置用于响应于接收到在所述输入端口处接收到的确认指示而提交并清空所述缓冲电路中所述所存储的数据部分。
30.如权利要求29所述的数据处理系统,其中,所述数据流包括数据的突发,并且所述确认指示包括在所述输入端口上接收另外的数据的突发。
31.一种用于提供误差校验值以指示数据流内的数据部分中的误差的方法,该方法包括以下步骤:
通过将误差检测代码算法应用到所述数据流来处理所述数据流从而当处理所述数据流时生成并定期地更新多位校验值,从而生成误差检测代码,所述多位校验值的每个更新指示所述误差检测代码算法被应用到所述数据流的另外的项;
在所述数据流的所述处理期间定期地输出所述多位校验值的片段,所述输出的片段各自对应于所述数据流的数据部分;其中
所述多位校验值的所述片段的每个片段提供指示发生在所述数据流的相应部分中或者在所述数据流的早期部分中的误差的值;
其中,所述数据流包括数据的突发,并且所述生成步骤包括输出已经处理过的所述数据的突发的完整的多位校验值。
32.如权利要求31所述的方法,其中,所述数据流包括包含所述数据部分的串行流,并且所述方法包括以下步骤:将所述算法应用到作为所述数据部分的连续数据部分的所述串行流。
33.如权利要求31或32所述的方法,其中,所述误差检测代码算法是循环冗余校验算法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1318060.9A GB2519140B (en) | 2013-10-11 | 2013-10-11 | Cumulative error detection in data transmission |
GB1318060.9 | 2013-10-11 | ||
PCT/GB2014/052476 WO2015052477A1 (en) | 2013-10-11 | 2014-08-13 | Cumulative error detection in data transmission |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105612697A CN105612697A (zh) | 2016-05-25 |
CN105612697B true CN105612697B (zh) | 2020-01-03 |
Family
ID=49679940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480054776.XA Active CN105612697B (zh) | 2013-10-11 | 2014-08-13 | 数据传输中的累积误差检测 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9465690B2 (zh) |
CN (1) | CN105612697B (zh) |
GB (1) | GB2519140B (zh) |
TW (1) | TWI650953B (zh) |
WO (1) | WO2015052477A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10783030B2 (en) * | 2014-03-12 | 2020-09-22 | Sensia Llc | Network synchronization for master and slave devices |
JP2016149051A (ja) * | 2015-02-13 | 2016-08-18 | 富士通株式会社 | ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法 |
KR20170133545A (ko) * | 2016-05-25 | 2017-12-06 | 에스케이하이닉스 주식회사 | 반도체장치 및 반도체시스템 |
CN107341131B (zh) | 2017-06-29 | 2021-02-09 | 上海兆芯集成电路有限公司 | 具有近端数据处理引擎的芯片组 |
JP2023100303A (ja) * | 2022-01-06 | 2023-07-19 | ローム株式会社 | メイン装置、サブ装置、及び通信システム |
US11817952B2 (en) * | 2022-01-31 | 2023-11-14 | Dialog Semiconductor (Uk) Limited | Systems and methods for providing end-to-end data protection |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560742B1 (en) * | 1999-12-09 | 2003-05-06 | International Business Machines Corporation | Parallel system and method for cyclic redundancy checking (CRC) generation |
JP3297668B2 (ja) * | 2000-04-26 | 2002-07-02 | 松下電器産業株式会社 | 符号/復号化装置及び符号/復号化方法 |
US6684363B1 (en) * | 2000-10-25 | 2004-01-27 | Sun Microsystems, Inc. | Method for detecting errors on parallel links |
US6701478B1 (en) * | 2000-12-22 | 2004-03-02 | Nortel Networks Limited | System and method to generate a CRC (cyclic redundancy check) value using a plurality of CRC generators operating in parallel |
US6961893B1 (en) * | 2002-03-28 | 2005-11-01 | Adaptec, Inc. | Separable cyclic redundancy check |
US6938197B2 (en) * | 2002-08-01 | 2005-08-30 | Lattice Semiconductor Corporation | CRC calculation system and method for a packet arriving on an n-byte wide bus |
US7191383B2 (en) * | 2003-03-28 | 2007-03-13 | International Business Machines Corporation | System and method for optimizing iterative circuit for cyclic redundancy check (CRC) calculation |
US7571370B2 (en) * | 2003-06-19 | 2009-08-04 | Lsi Logic Corporation | Configurable, fast, 32-bit CRC generator for 1-byte to 16-bytes variable width input data |
US7434150B1 (en) * | 2004-03-03 | 2008-10-07 | Marvell Israel (M.I.S.L.) Ltd. | Methods, circuits, architectures, software and systems for determining a data transmission error and/or checking or confirming such error determinations |
US7266760B1 (en) * | 2004-09-30 | 2007-09-04 | Altera Corporation | Method and apparatus for calculating cyclic redundancy checks for variable length packets |
US8667363B2 (en) * | 2004-11-24 | 2014-03-04 | Qualcomm Incorporated | Systems and methods for implementing cyclic redundancy checks |
WO2006125157A2 (en) * | 2005-05-18 | 2006-11-23 | Telegent Systems, Inc. | Erasure generation in a forward-error-correcting communication system |
US7802167B1 (en) * | 2006-02-08 | 2010-09-21 | Pmc-Sierra Us, Inc. | Apparatus and method for detecting extended error bursts |
WO2007136166A1 (en) * | 2006-05-23 | 2007-11-29 | Lg Electronics Inc. | Digital broadcasting system and method of processing data |
US7840873B2 (en) * | 2006-12-13 | 2010-11-23 | Globalfoundries Inc. | Partial CRC insertion in data packets for early forwarding |
US7913150B2 (en) * | 2007-03-13 | 2011-03-22 | Advanced Micro Devices, Inc. | Error detection in a communications link |
US8095846B2 (en) * | 2007-06-08 | 2012-01-10 | Cortina Systems, Inc. | Data coding apparatus and methods |
US8386878B2 (en) * | 2007-07-12 | 2013-02-26 | Samsung Electronics Co., Ltd. | Methods and apparatus to compute CRC for multiple code blocks |
KR100928261B1 (ko) * | 2007-09-08 | 2009-11-24 | 엘지전자 주식회사 | 비검출 오류 저감을 위한 신호 분할 및 crc 부착 방법 |
US7853857B2 (en) * | 2007-09-14 | 2010-12-14 | Motorola Mobility, Inc. | Multi-layer cyclic redundancy check code in wireless communication system |
US8261154B2 (en) * | 2007-11-12 | 2012-09-04 | Motorola Mobility Llc | Continuous redundancy check method and apparatus |
US8261175B2 (en) * | 2008-11-14 | 2012-09-04 | Intel Mobile Communications GmbH | Method and apparatus for performing a CRC check |
CN102281121B (zh) * | 2010-06-13 | 2014-10-29 | 中兴通讯股份有限公司 | 一种数据文件传输和校验的方法、设备及系统 |
US8468439B2 (en) * | 2011-06-02 | 2013-06-18 | Nexus Technology, Inc. | Speed-optimized computation of cyclic redundancy check codes |
US8856609B2 (en) * | 2011-11-21 | 2014-10-07 | Broadcom Corporation | Accelerated cyclical redundancy check |
US9219556B2 (en) * | 2012-03-02 | 2015-12-22 | Lg Electronics Inc. | Method of providing an emergency alert service via a mobile broadcasting and apparatus therefor |
-
2013
- 2013-10-11 GB GB1318060.9A patent/GB2519140B/en active Active
-
2014
- 2014-08-13 CN CN201480054776.XA patent/CN105612697B/zh active Active
- 2014-08-13 WO PCT/GB2014/052476 patent/WO2015052477A1/en active Application Filing
- 2014-08-18 US US14/462,205 patent/US9465690B2/en active Active
- 2014-08-29 TW TW103129969A patent/TWI650953B/zh active
Also Published As
Publication number | Publication date |
---|---|
GB2519140B (en) | 2021-03-10 |
US9465690B2 (en) | 2016-10-11 |
GB2519140A (en) | 2015-04-15 |
CN105612697A (zh) | 2016-05-25 |
TW201519581A (zh) | 2015-05-16 |
WO2015052477A1 (en) | 2015-04-16 |
GB201318060D0 (en) | 2013-11-27 |
US20150106682A1 (en) | 2015-04-16 |
TWI650953B (zh) | 2019-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105612697B (zh) | 数据传输中的累积误差检测 | |
EP3566138B1 (en) | Transaction identification synchronization | |
US11108499B2 (en) | System and method for transferring data and a data check field | |
WO2006096879A1 (en) | System and method for tolerating communication lane failures | |
US7810013B2 (en) | Memory device that reflects back error detection signals | |
US10419035B2 (en) | Use of multiple cyclic redundancy codes for optimized fail isolation | |
US20100138573A1 (en) | System including transmitter and receiver | |
TWI442733B (zh) | 通訊裝置及系統 | |
JPH0328094B2 (zh) | ||
US11663100B2 (en) | Serial interface with improved diagnostic coverage | |
US7120846B2 (en) | Data transmission device, data receiving device, data transfer device and method | |
CN108337069B (zh) | 一种改进的降低误码率的末端并行分组crc校验系统 | |
US7436777B2 (en) | Failed link training | |
US8484546B2 (en) | Information processing apparatus, information transmitting method, and information receiving method | |
US6915471B2 (en) | Encoder and method for encoding data | |
US6834362B2 (en) | Apparatus and method for error detection on source-synchronous buses | |
US6601217B1 (en) | System and method for error correction in an electronic communication | |
US8429484B2 (en) | Digitized radar information redundancy method and system | |
US8943393B1 (en) | Distributed burst error protection | |
Fu et al. | Burst error detection hybrid ARQ with crosstalk-delay reduction for reliable on-chip interconnects | |
US20090150727A1 (en) | Data transmission method | |
CN108616324A (zh) | 数据链路层高性能容错的方法 | |
JPH04267631A (ja) | パリティビット付加方式 | |
CN106712896A (zh) | 数据链路层高性能容错的方法 | |
JPH05108508A (ja) | データ伝送装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |