CN115004587A - 用于数据传输的位反转 - Google Patents
用于数据传输的位反转 Download PDFInfo
- Publication number
- CN115004587A CN115004587A CN202180011368.6A CN202180011368A CN115004587A CN 115004587 A CN115004587 A CN 115004587A CN 202180011368 A CN202180011368 A CN 202180011368A CN 115004587 A CN115004587 A CN 115004587A
- Authority
- CN
- China
- Prior art keywords
- parity
- code
- data code
- type
- bus
- 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
Links
Images
Classifications
-
- 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
- H04L1/0063—Single parity check
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2942—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes wherein a block of parity bits is computed only from combined information bits or only from parity bits, e.g. a second block of parity bits is computed from a first block of parity bits obtained by systematic encoding of a block of information bits, or a block of parity bits is obtained by an XOR combination of sub-blocks of information bits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
- H03M5/04—Conversion to or from representation by pulses the pulses having two levels
- H03M5/14—Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
- H03M5/145—Conversion to or from block codes or representations thereof
-
- 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
- H04L2001/0092—Error control systems characterised by the topology of the transmission link
- H04L2001/0096—Channel splitting in point-to-point links
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Detection And Correction Of Errors (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
在某些方面,一种用于通过总线发送数据的方法包括:计算用于新数据码的奇偶校验码,其中新数据码包括新数据码中的位数;计算新数据码与先前数据码之间的汉明距离;以及如果汉明距离大于新数据码中的位数的一半:将新数据码和奇偶校验码反转以获得反转的新数据码和反转的奇偶校验码;以及将反转的新数据码和反转的奇偶校验码发送到总线。
Description
优先权要求
本申请要求于2020年1月28日提交的、标题为“BIT INVERSION FOR DATATRANSMISSION”的美国专利申请第16/774,472号的优先权,其全部内容并入本文。
技术领域
本公开的各方面涉及数据传输,更具体地,涉及使用位反转在总线上进行数据传输。
背景技术
数据传输是通过通信介质向一个或多个计算组件、网络组件或电子组件发送和接收数字信息的过程。它支持点对点、点对多点和多点对多点环境中的组件的传送和通信。发送组件和接收组件可以驻留在相同的管芯、相同的封装、相同的PCB板或相同的系统中并通过物理线路连接。随着计算能力变得更加强大,用于数据传输的带宽迅速增长。带宽的增长不仅得益于更快的电路、更高的时钟频率,还得益于更稳健的设计和更多的通信通道。
高速和高带宽的通信信道经常以更多通信信道的更大面积为代价来适应扩大的通信需求。更多的通信通道进而增加功耗。这两者对于高性能和低功率系统都是不期望的,特别是对于电池时间和设备尺寸是关键参数的移动设备或无线设备来说。因此,在维持可靠、高速和高带宽的数据传输的同时减少线路连接数是有益的。
发明内容
下文呈现了一个或多个实现方式的简化的发明内容,以提供对这种实现方式的基本理解。本发明内容不是所有预期实现方式的广泛综述,并且既不旨在标识所有实现方式的关键或重要元素,也不旨在描绘任何或所有的实现方式的范围。本发明内容的唯一目的是以简化的形式呈现与一个或多个实现方式相关的概念,作为稍后呈现的更详细描述的序言。
一个方面,一种用于通过总线发送数据的方法包括:计算用于新数据码的奇偶校验码,其中新数据码包括新数据码中的位数;计算新数据码与先前数据码之间的汉明距离;以及如果汉明距离大于新数据码中的位数的一半:将新数据码和奇偶校验码反转以获得反转的新数据码和反转的奇偶校验码;以及将反转的新数据码和反转的奇偶校验码发送到总线。
另一方面,一种用于通过总线接收数据的方法,包括:从总线接收接收的数据码和接收的第一类型奇偶校验的奇偶校验码,其中第一类型奇偶校验为偶数奇偶校验或奇数奇偶校验;针对接收的数据码计算经计算的第二类型奇偶校验的奇偶校验码,其中如果第一类型奇偶校验是偶数奇偶校验,则第二类型奇偶校验是奇数奇偶校验,或者如果第一类型奇偶校验是奇数奇偶校验,则第二类型奇偶校验是偶数奇偶校验;以及如果用于接收的数据码的经计算的第二类型奇偶校验的奇偶校验码与接收的奇偶校验码相匹配,则提供反转的接收的数据码以用于进一步处理,其中反转的接收的数据码是通过反转接收的数据码而获得的。
另一方面,一种系统包括:总线;以及发送器,该发送器耦合到总线并且被配置为:计算用于新数据码的奇偶校验码,其中新数据码包括新数据码中的位数;计算新数据码与先前数据码之间的汉明距离;以及如果汉明距离大于新数据码中的位数的一半,则反转新数据码和奇偶校验码以获得反转的新数据码和反转的奇偶校验码;以及将反转的新数据码和反转的奇偶校验码发送到总线。
另一方面,一种系统包括:总线;以及接收器,该接收器耦合到总线并且被配置为:从总线接收接收的数据码和接收的第一类型奇偶校验的奇偶校验码,其中第一类型奇偶校验为偶数奇偶校验或奇数奇偶校验;针对接收的数据码计算经计算的第二类型奇偶校验的奇偶校验码,其中如果第一类型奇偶校验是偶数奇偶校验,则第二类型奇偶校验是奇数奇偶校验,或者如果第一类型奇偶校验是奇数奇偶校验,则第二类型奇偶校验是偶数奇偶校验;以及如果用于接收的数据码计算的第二类型奇偶校验的奇偶校验码与接收的奇偶校验码相匹配,则提供反转的接收的数据码以用于进一步处理,其中反转的接收的数据码是通过反转接收的数据码而获得的。
为实现前述及相关目的,一个或多个实现方式包括下文充分描述并在权利要求中特别指出的特征。以下描述和附图详细阐述了一个或多个实现方式的某些说明性方面。然而,这些方面指示了可以采用各种实现方式的原理的各种方式中的一些方式,并且所描述的实现方式旨在包括所有这些方面及其等同物。
附图说明
图1示出了根据本公开的某些方面的示例性总线分组。
图2示出了根据本公开的某些方面的示例性奇偶校验分组。
图3示出了根据本公开的某些方面的用于在没有用于反转信号通知的额外线路的情况下发送数据的示例性方法。
图4示出了根据本公开的某些方面的用于在没有用于反转信号通知的额外线路的情况下接收数据的示例性方法。
图5示出了根据本公开的某些方面的在没有用于反转信号通知的额外线路的情况下实现数据传输的示例性片上系统(SoC)。
图6示出了根据本公开的某些方面的在没有用于反转信号通知的额外线路的情况下实现数据传输的示例性系统。
具体实施方式
下面结合附图所阐述的详细描述旨在描述各个方面,而非旨在仅代表可实践本文所描述的概念的各方面。详细描述包括具体细节,以便提供对各种概念的理解。然而,对于本领域技术人员显而易见的是,可以在没有这些具体细节的情况下实践这些概念。在一些情况下,为了避免混淆这些概念,公知的结构和组件以框图形式示出。
对于高速高带宽数据传输,性能、功耗、可靠性都是关键指标。经常采用错误校验(error checking)来提高可靠性。奇偶校验是确保在通信期间组件之间的数据传输准确的过程。奇偶校验码被附加到原始数据位上,以创建偶数或奇数的位数,即值为1的位数。然后,源经由链路传输带有附加的奇偶校验码的数据,并且带有附加的奇偶校验码位的数据的组合在目的地处被校验和验证。如果组合的断言的位数(偶数或奇数)与从源传输的数目相匹配,则认为数据是准确的。
除了错误校验之外,总线反转是一种经常用来使切换最小化以节省功率的技术。它基于这样一个事实,即大量的功率由于转换而被浪费,尤其是在外部总线中,因此减少这些转换有助于优化功耗。例如,总线反转将数据的最大切换限制在50%的位。这以相同的量使峰值功耗最小化。总线反转照惯例是通过向总线引入额外的信号线来进行的。额外的信号线Invert指示其他线是否已被反转。首先,计算新数据码与先前数据码之间的汉明距离(它们的位数不同)。如果汉明距离大于总位数的一半,则在发送之前,使新数据码等于反转的新数据码,并且可以将Invert设置为1,以发信号通知接收器所传输的数据已被反转。否则,将Invert设置为0,并且在没有反转的情况下发送新数据码。
为了加快汉明距离计算并降低功耗,总线被划分成多个组。图1示出了根据本公开的某些方面的示例性总线分组。数据总线系统100包括发送器102和接收器104。发送器102通过总线106向接收器104发送数据。在一些配置中,总线可以是双向的。发送器102可以用作接收器,并且接收器104可以用作发送器。总线106包括一组物理线路。总线106被划分成多个组:G1、G2、……、Gm。每个组包括多条数据线和一条或多条错误校验线。多条数据线对应于该组的数据码中的位数,并且错误校验线的数量对应于错误校验码中的位数。每组中的数据码是要通过整条总线106被发送的大的数据码的一部分。例如,组G1包括多条数据线D1和一条或多条错误校验线Cl;组G2包括多条数据线D2和一条或多条错误校验线C2;……;组Gm包括多条数据线Dm和一条或多条错误校验线Cm;错误校验码计算和汉明距离计算被限制在每个组内。在总线106中,每个组通常具有相同数量的数据线和错误校验线。在每个组中要遍历的位数更少并且所有组的计算并行进行的情况下,电路复杂度、功耗以及用于获得错误校验码和汉明距离的时间都显著降低。
作为示例,假设数据总线106将传输1024位的大的数据并且应用奇偶校验。将所有1024位作为一个码来计算奇偶校验和/或汉明距离需要复杂的电路、多个时钟周期和显著的功耗,这可能是不可容忍的。为了提高性能和降低功耗,将大的数据划分成16组,每个组是大的数据的子集。在该示例中,每个组具有64位,需要64条线路。此外,每个组可以具有一条或多条奇偶校验线,需要额外的奇偶校验线。如果向每个组添加额外的信号线Invert以发信号通知该组中的数据码是否已经被反转,则需要额外的16条线路。除了在这些线上传输信息的大量功耗之外,这是很大的面积开销。因此,具有一种在总线上可靠地传输数据而不招致用于反转信号通知(signaling)的额外线路的系统是有益的。
图2示出了根据本公开的某些方面的示例性奇偶校验分组。在图1中的每个组G1、G2、……、Gm内,为了奇偶校验而进行进一步分组。出于说明目的,使用组G1作为示例。其他组G2、……、Gm可以遵循相同的分组方案。在组G1中,多条数据线D1被进一步划分成多个子组DS1、DS2、……、DSk。类似地,组G1的错误校验线被划分成多条奇偶校验线CS1,CS2、……、CSk,每条奇偶校验线针对多个子组DS1、DS2、……、DSk中的相对应的一个子组。例如,对于64位数据线的组,它可以被进一步划分成8个子组,每个子组具有8条数据线加上1条奇偶校验线。
图3示出了根据本公开的某些方面的用于在没有用于反转信号通知的额外线路的情况下发送数据的示例性方法。方法300由发送器(例如,发送器102)执行。方法300适用于具有一个或多个组的总线,每个组被划分成多个子组,多个子组中的每一个子组包含一条奇偶校验线。出于说明目的,仅描述一组数据传输。该方法同样适用于其他组,如果有的话。在302处,对于每个组,通过总线的一部分中的多条数据线发送该组的新数据码。发送器计算用于该新数据码的奇偶校验码(偶数或奇数,取决于预先选择的错误校验方案)。新数据码被划分成多个子组。发送器为多个子组中的每一个子组计算奇偶校验位。奇偶校验码是包含新数据码的所有奇偶校验位的错误校验码。在具体实现方式中,奇偶校验位不必通过彼此相邻的线路被发送。
此外,在304处,发送器计算该组的新数据码与该组的先前数据码之间的汉明距离。该组的先前数据码是在总线的相同部分中的相同数据线上发送该组的该新数据码之前发送的最后的数据码。
该组的先前数据码的值确定总线中每条数据线的当前状态。在306,校验该组的汉明距离,以确定该组的汉明距离是否大于该组的新数据码中的位数的一半。如果是,则发送器在308处采取动作。发送器反转该组的新数据码和奇偶校验码,以获得反转的新数据码和反转的奇偶校验码。通过反转,数据码或奇偶校验码的每一位从逻辑“1”变为“0”或者从逻辑“0”变为“1”。然后在310处,发送器将反转的新数据码和反转的错误校验码发送到总线。如果汉明距离小于或等于新数据码中的位数的一半,则不需要反转。作为结果,在312处,发送器将新数据码和错误校验码直接地发送到总线。
图4示出了根据本公开的某些方面的用于在没有用于反转信号通知的额外线路的情况下接收数据的示例性方法。方法400由接收器(例如,接收器104)执行。出于说明的目的,下面只描述一组接收的数据。如果有多于一组,那么相同的方法适用于其他组。
在402处,接收器从发送器接收由方法300通过总线发送的数据。数据可以被划分成多个组。每个组包括接收的数据码和接收的奇偶校验码。在方法300中,如果汉明距离不大于数据中的位数的一半,则接收的数据码和接收的错误校验码分别是该组的新数据码和错误校验码。否则,在方法300中,接收的数据码和接收的错误校验码分别是反转的新数据码和反转的错误校验码。
方法400适用于作为奇偶校验的错误校验。有两种类型的奇偶校验:如果第一类型是偶数奇偶校验,则第二类型是奇数奇偶校验,反之亦然。仅出于说明的目的,在下面的描述中,发送器使用偶数奇偶校验。接收的错误校验码是偶数奇偶校验码。对于发送器所使用的奇数奇偶校验,通过将偶数奇偶校验切换为奇数奇偶校验以及将奇数奇偶校验切换为偶数奇偶校验来应用相同的方法。在404处,接收器为接收的数据码计算经计算的偶数奇偶校验码和经计算的奇数奇偶校验码。接收器根据发送器中相同的分组方案将接收的数据码划分成多个子组。然后,接收器为接收的数据码的多个子组中的每一个子组计算偶数奇偶校验位和奇数奇偶校验位。经计算的偶数奇偶校验码是包含接收的数据码的所有偶数奇偶校验位的错误校验码。同样,经计算的奇数奇偶校验码是包含接收的数据码的所有奇数奇偶校验位的错误校验码。
然后在406处,接收器将经计算的偶数奇偶校验码和经计算的奇数奇偶校验码两者与该组的接收的奇偶校验码进行比较。如果经计算的偶数奇偶校验码(这是发送器在本示例中使用的奇偶校验码)匹配,则表明接收的数据码是非反转的并且是有效的。准备好提供接收的数据码以用于进一步处理,这在408处进行。然而,如果经计算的奇数奇偶校验码匹配,则表明接收的数据码是被反转的并且是有效的。因此,该方法进行到410,在410处,反转接收的数据码以获得反转的接收的数据码,并且提供反转的接收的数据码以用于进一步处理。如果没有匹配,既没有偶数奇偶校验,也没有奇数奇偶校验,那么接收的数据码一定在传输期间被损坏,在414处应该生成错误信号。
在替代实施例中,如果发现偶数奇偶校验匹配,则接收器可以不必计算和/或匹配经计算的奇数奇偶校验码,从而节省功率和时间。替代地,接收器可以首先执行奇数奇偶校验,并且如果发现奇数奇偶校验匹配,则可以不必计算和/或匹配经计算的偶数奇偶校验码。
方法300和400不需要反转信号线。这是可能的,因为在发送侧,如果汉明距离大于数据码中的位数的一半,则错误校验码与数据码一起被反转。在接收侧,通过两种比较来校验数据码的反转和损坏:用于接收的数据码的经计算的偶数奇偶校验码与接收的错误校验码之间的比较,以及用于接收的数据码的经计算的奇数奇偶校验码与接收的错误校验码之间的比较。该方案显著地节省了布线成本。增加线路成本很高。它贡献了功耗和布线面积。对于具有1024位数据码和64位分组的总线,除了由于切换那些线路上的信号而导致的功耗之外,还节省了16条线路的面积。
图5示出了根据本公开的某些方面的在没有用于反转信号通知的额外线路的情况下实现数据传输的示例性片上系统(SoC)500。可以在SoC 500内实现在没有用于反转信号通知的额外线路的情况下的数据传输。SoC 500包括处理系统520,处理系统520包括多个异构处理器,诸如应用处理器502、数字信号处理器504、调制解调器处理器506和其他处理单元508。处理系统520可以包括一个或多个核,并且每个处理器/核可以独立于其他处理器/核执行操作。
处理系统520经由互连/总线模块510与一个或多个控制器模块512、输入/输出(I/O)模块514、存储器模块516以及系统组件和资源模块418互连,互连/总线模块510可以包括可重新配置的逻辑门阵列和/或实现总线架构(例如,CoreConnect、高级微控制器总线架构(AMBA)等)。互连/总线模块510通信可以由高级互连(诸如高性能片上网络(NOC))提供。互连/总线模块510可以包括或提供总线主控系统,该总线主控系统被配置为授予SoC组件(例如,处理器、外围设备等)在设定的持续时间、操作数量、字节数量等内对总线的独占控制(例如,以突发模式、块传输模式等传输数据)。在一些情况下,互连/总线模块510可以实现仲裁方案,以防止多个主组件尝试同时驱动总线。互连/总线模块510可以包括用于连接SoC500内的不同组件的多条总线。
存储器模块516是在SoC 500中实现的计算机可读存储介质。存储器模块516可以为处理系统520、控制器模块512、I/O模块514和/或系统组件和资源模块518中的一者或多者提供非易失性存储,诸如闪存。存储器模块516可以包括高速缓冲存储器,以提供信息的临时存储,从而提高SoC 500的处理速度。在一些示例中,存储器模块516可以被实现为集成到SoC 500中的通用闪存(UFS)或外部UFS卡。
互连/总线模块510便于SoC 500内组件间的数据传输。例如,处理系统520内的处理器可以通过互连/总线模块510在彼此之间传输数据。应用处理器502和调制解调器处理器506可以通过总线彼此传递数据。处理系统520内的处理器可以向存储器模块516传输数据以及从存储器模块516传输数据。处理系统520内的处理器可以向输入/输出模块514传输数据以及从输入/输出模块514传输数据。存储器模块516可以向输入/输出模块514传输数据以及从输入/输出模块514传输数据。方法200和300可以应用于那些数据传输。利用方法200和300,互连/总线模块510将更加紧凑,并且不必将宝贵的功率和面积资源专用于反转信号通知。方法200和300可以例如被实现为可执行指令驻留在存储器模块516中并由处理系统520中的一个或多个组件执行的固件。替代地,方法200和300可以被实现为驻留在SoC500的一个或多个组件中的状态机。
图6示出了根据本公开的某些方面的在没有用于反转信号通知的额外线路的情况下实现数据传输的示例性系统。系统600可以是例如无线设备、IoT设备或计算设备。系统600可以包括多个组件,诸如应用处理器SoC 602、基带604、传感器模块606、显示模块608、存储器模块610、RF前端612、功率管理614、天线616和/或电池618,并且可以包括更多。多个组件可以通过传输数据的多个互连/总线620彼此通信。在一些配置中,多个互连/总线620可以彼此不同,诸如具有不同数量的线路、不同数量的电压、不同的错误校验,或者它们可以是相同的。可以用方法300和400来实现多个互连/总线620上的传输中的一些或全部传输。例如,应用处理器SoC 602与显示模块608之间的传输或者基带604与应用处理器SoC602之间的传输可以使用方法300和400。
前述方法描述和过程流程图仅作为说明性示例而提供,并非旨在要求或暗示各种实施例的操作必须按所呈现的次序来执行。如本领域技术人员将理解的,前述实施例中的操作的次序可以以任何次序来执行。诸如“此后”、“然后”、“下一个”等词语不旨在限制操作的次序;这些词语只是用来引导读者理解对方法的描述。此外,对单数形式的权利要求元素的任何引用(例如,使用冠词“一”、“一个”或“该”)不应被解释为将该元素限制为单数。
结合各种实施例描述的各种说明性逻辑块、模块、电路和算法操作可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,各种说明性的组件、块、模块、电路和操作已经在上面根据它们的功能总体上进行了描述。这种功能是被实现为硬件还是软件取决于特定的应用和对整个系统施加的设计约束。技术人员可以针对每个特定的应用以不同的方式实现所描述的功能,但是这样的实现决定不应被解释为导致脱离权利要求的范围。
可以利用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件或其设计成执行本文描述的功能的任何组合来实现或执行用于实现结合本文公开的实施例而描述的各种说明性逻辑、逻辑块、模块和电路的硬件。通用处理器可以是微处理器,但是,替代地,该处理器可以是任何传统的处理器、控制器、微控制器或状态机。处理器也可以被实现为计算器件的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP核的结合、或者任何其他这样的配置。替代地,一些操作或方法可以由特定于给定功能的电路来执行。
在一个或多个实施例中,所描述的功能可以以硬件、软件、固件或其任何组合来实现。如果以软件来实现,则这些功能可以作为一个或多个指令或代码被存储在非暂时性计算机可读介质或非暂时性处理器可读介质上。本文公开的方法或算法的操作可以体现在可以驻留在非暂时性计算机可读介质或处理器可读存储介质上的处理器可执行软件模块中。非暂时性计算机可读介质或处理器可读存储介质可以是可以由计算机或处理器访问的任何存储介质。作为示例而非限制,这种非暂时性计算机可读介质或处理器可读介质可以包括RAM、ROM、EEPROM、闪存、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备,或者可以用于以指令或数据结构的形式存储期望的程序代码并且可以由计算机访问的任何其他介质。本文使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地再现数据,而光盘用激光光学地再现数据。上述的组合也被包括在非暂时性计算机可读介质和处理器可读介质的范围内。此外,方法或算法的操作可以作为代码和/或指令之一或其任何组合或集合驻留在可以并入计算机程序产品中的非暂时性处理器可读介质和/或计算机可读介质上。
提供本公开的前述描述是为了使本领域任何技术人员能够制造或使用本公开。对本公开的各种修改对于本领域技术人员来说将是显而易见的,并且在不脱离本公开的精神或范围的情况下,本文定义的一般原理可以应用于其他变型。因此,本公开不旨在限于本文描述的示例,而是符合与本文公开的原理和新颖特征一致的最宽范围。
Claims (30)
1.一种用于通过总线发送数据的方法,包括:
计算用于新数据码的奇偶校验码,其中所述新数据码包括所述新数据码中的位数;
计算所述新数据码与先前数据码之间的汉明距离;以及
如果所述汉明距离大于所述新数据码中的所述位数的一半:
反转所述新数据码和所述奇偶校验码,以获得反转的新数据码和反转的奇偶校验码;以及
将所述反转的新数据码和所述反转的奇偶校验码发送到所述总线。
2.根据权利要求1所述的方法,还包括:如果所述汉明距离不大于所述新数据码中的所述位数的一半,则将所述新数据码和所述奇偶校验码发送到所述总线。
3.根据权利要求1所述的方法,其中计算用于所述新数据码的奇偶校验码包括:针对所述新数据码的多个子组中的每个子组计算奇偶校验位,并且其中所述奇偶校验码为包含所述新数据码的所有的所述奇偶校验位的错误校验码。
4.根据权利要求1所述的方法,其中所述新数据码为大的数据码的子集。
5.根据权利要求1所述的方法,其中所述奇偶校验码为偶数奇偶校验码。
6.根据权利要求1所述的方法,其中所述总线不包括用于反转信号通知的线路。
7.一种用于通过总线接收数据的方法,包括:
从所述总线接收接收的数据码和接收的第一类型奇偶校验的奇偶校验码,其中所述第一类型奇偶校验为偶数奇偶校验或奇数奇偶校验;
针对所述接收的数据码计算经计算的第二类型奇偶校验的奇偶校验码,其中如果所述第一类型奇偶校验为偶数奇偶校验,则所述第二类型奇偶校验为奇数奇偶校验,或者如果所述第一类型奇偶校验为奇数奇偶校验,则所述第二类型奇偶校验为偶数奇偶校验;以及
如果用于所述接收的数据码的所述经计算的所述第二类型奇偶校验的奇偶校验码与所述接收的奇偶校验码相匹配,则提供反转的所述接收的数据码以用于进一步处理,其中反转的所述接收的数据码通过反转所述接收的数据码而获得。
8.根据权利要求7所述的方法,还包括:
针对所述接收的数据码计算经计算的所述第一类型奇偶校验的奇偶校验码;以及
如果用于所述接收的数据码的所述经计算的所述第一类型奇偶校验的奇偶校验码与所述接收的奇偶校验码相匹配,则提供所述接收的数据码以用于进一步处理。
9.根据权利要求8所述的方法,还包括:如果用于所述接收的数据码的所述经计算的所述第一类型奇偶校验的奇偶校验码与所述接收的奇偶校验码不匹配,并且用于所述接收的数据码的所述经计算的所述第二类型奇偶校验的奇偶校验码与所述接收的奇偶校验码不匹配,则发送错误信号。
10.根据权利要求7所述的方法,其中针对所述接收的数据码计算经计算的所述第二类型奇偶校验的奇偶校验码包括:针对所述接收的数据码的多个子组中的每个子组计算奇偶校验位,并且其中用于所述接收的数据码的所述经计算的所述第二类型奇偶校验的奇偶校验码为包含所述接收的数据码的所有的所述奇偶校验位的错误校验码。
11.根据权利要求7所述的方法,其中所述总线不包括用于反转信号通知的线路。
12.一种系统,包括:
总线;以及
发送器,所述发送器耦合到所述总线并且被配置为:
计算用于新数据码的奇偶校验码,其中所述新数据码包括所述新数据码中的位数;
计算所述新数据码与先前数据码之间的汉明距离;以及
如果所述汉明距离大于所述新数据码中的所述位数的一半:
反转所述新数据码和所述奇偶校验码,以获得反转的新数据码和反转的奇偶校验码;以及
将所述反转的新数据码和所述反转的奇偶校验码发送到所述总线。
13.根据权利要求12所述的系统,其中所述发送器还被配置为:如果所述汉明距离不大于所述新数据码中的所述位数的一半,则将所述新数据码和所述奇偶校验码发送到所述总线。
14.根据权利要求12所述的系统,其中所述发送器为处理器。
15.根据权利要求12所述的系统,其中所述发送器和所述总线被集成到片上系统中。
16.根据权利要求12所述的系统,其中所述总线不包括用于反转信号通知的线路。
17.根据权利要求12所述的系统,还包括接收器,所述接收器耦合到所述总线并且被配置为:
从所述总线接收接收的数据码和接收的第一类型奇偶校验的奇偶校验码,其中所述第一类型奇偶校验为偶数奇偶校验或奇数奇偶校验;
针对所述接收的数据码计算经计算的第二类型奇偶校验的奇偶校验码,其中如果所述第一类型奇偶校验为偶数奇偶校验,则所述第二类型奇偶校验为奇数奇偶校验,或者如果所述第一类型奇偶校验为奇数奇偶校验,则所述第二类型奇偶校验为偶数奇偶校验;以及
如果用于所述接收的数据码的所述经计算的所述第二类型奇偶校验的奇偶校验码与所述接收的奇偶校验码相匹配,则提供反转的所述接收的数据码以用于进一步处理,其中反转的所述接收的数据码通过反转所述接收的数据码而获得。
18.根据权利要求17所述的系统,其中所述接收的数据码为所述新数据码。
19.根据权利要求17所述的系统,其中所述接收的数据码为所述反转的新数据码。
20.根据权利要求17所述的系统,其中用于所述新数据码的所述奇偶校验码为所述第一类型奇偶校验。
21.根据权利要求20所述的系统,其中所述第一类型奇偶校验为偶数奇偶校验。
22.根据权利要求17所述的系统,其中所述接收器为存储器或处理器。
23.根据权利要求17所述的系统,其中所述发送器、所述接收器和所述总线被集成到片上系统中。
24.根据权利要求17所述的系统,其中所述发送器、所述接收器和所述总线被集成到无线设备中。
25.一种系统,包括:
总线;以及
接收器,所述接收器耦合到所述总线并且被配置为:
从所述总线接收接收的数据码和接收的第一类型奇偶校验的奇偶校验码,其中所述第一类型奇偶校验为偶数奇偶校验或奇数奇偶校验;
针对所述接收的数据码计算经计算的第二类型奇偶校验的奇偶校验码,其中如果所述第一类型奇偶校验为偶数奇偶校验,则所述第二类型奇偶校验为奇数奇偶校验,或者如果所述第一类型奇偶校验为奇数奇偶校验,则所述第二类型奇偶校验为偶数奇偶校验;以及
如果用于所述接收的数据码的经计算的所述第二类型奇偶校验的奇偶校验码与所述接收的奇偶校验码相匹配,则提供反转的所述接收的数据码以用于进一步处理,其中反转的所述接收的数据码通过反转所述接收的数据码而获得。
26.根据权利要求25所述的系统,其中所述接收器还被配置为:
针对所述接收的数据码计算经计算的所述第一类型奇偶校验的奇偶校验码;以及
如果用于所述接收的数据码的经计算的所述第一类型奇偶校验的奇偶校验码与所述接收的奇偶校验码相匹配,则提供所述接收的数据码以用于进一步处理。
27.根据权利要求26所述的系统,其中所述接收器还被配置为:如果用于所述接收的数据码的所述经计算的所述第一类型奇偶校验的奇偶校验码与所述接收的奇偶校验码不匹配,并且用于所述接收的数据码的所述经计算的所述第二类型奇偶校验的奇偶校验码与所述接收的奇偶校验码不匹配,则提供错误信号。
28.根据权利要求25所述的系统,还包括发送器,所述发送器耦合到所述总线并且被配置为将所述接收的数据码和所述接收的错误校验码发送到所述总线。
29.根据权利要求28所述的系统,其中所述发送器和所述接收器驻留在无线设备中。
30.根据权利要求25所述的系统,其中所述总线不包括用于反转信号通知的线路。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/774,472 | 2020-01-28 | ||
US16/774,472 US11139830B2 (en) | 2020-01-28 | 2020-01-28 | Bit inversion for data transmission |
PCT/US2021/015206 WO2021154801A1 (en) | 2020-01-28 | 2021-01-27 | Bit inversion for data transmission |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115004587A true CN115004587A (zh) | 2022-09-02 |
CN115004587B CN115004587B (zh) | 2023-08-08 |
Family
ID=74661518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180011368.6A Active CN115004587B (zh) | 2020-01-28 | 2021-01-27 | 用于数据传输的位反转 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11139830B2 (zh) |
EP (1) | EP4097883A1 (zh) |
CN (1) | CN115004587B (zh) |
TW (1) | TW202134898A (zh) |
WO (1) | WO2021154801A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4328738A1 (de) * | 2022-08-26 | 2024-02-28 | Leuze electronic GmbH + Co. KG | Sensoranordnung |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006027742A1 (en) * | 2004-09-08 | 2006-03-16 | Koninklijke Philips Electronics N.V. | Fault tolerant bus |
US20090110109A1 (en) * | 2007-10-29 | 2009-04-30 | Maurizio Skerlj | Apparatus and method for generating a transmit signal and apparatus and method for extracting an original message from a received signal |
CN103560993A (zh) * | 2007-10-30 | 2014-02-05 | 索尼株式会社 | 数据处理设备及方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4054190B2 (ja) * | 2001-12-27 | 2008-02-27 | 松下電器産業株式会社 | データ転送システム |
KR20090059838A (ko) * | 2007-12-07 | 2009-06-11 | 삼성전자주식회사 | 반도체 장치에서 데이터를 전송하는 방법, 장치 및 시스템 |
US10372527B2 (en) * | 2013-07-15 | 2019-08-06 | Intel Corporation | Method of encoding data |
US9665527B2 (en) | 2014-12-09 | 2017-05-30 | Intel Corporation | Dynamic bus inversion with programmable termination level to maintain programmable target ratio of ones and zeros in signal lines |
FR3039922B1 (fr) * | 2015-08-06 | 2018-02-02 | Stmicroelectronics (Rousset) Sas | Procede d'ecriture dans une memoire du type eeprom et dispositif de memoire correspondant |
US10523240B2 (en) * | 2016-06-02 | 2019-12-31 | Texas Instruments Incorporated | Methods and apparatus to determine and apply polarity-based error correction code |
US10623200B2 (en) * | 2018-07-20 | 2020-04-14 | Nvidia Corp. | Bus-invert coding with restricted hamming distance for multi-byte interfaces |
-
2020
- 2020-01-28 US US16/774,472 patent/US11139830B2/en active Active
-
2021
- 2021-01-27 WO PCT/US2021/015206 patent/WO2021154801A1/en unknown
- 2021-01-27 EP EP21706135.7A patent/EP4097883A1/en active Pending
- 2021-01-27 CN CN202180011368.6A patent/CN115004587B/zh active Active
- 2021-01-28 TW TW110103226A patent/TW202134898A/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006027742A1 (en) * | 2004-09-08 | 2006-03-16 | Koninklijke Philips Electronics N.V. | Fault tolerant bus |
US20090110109A1 (en) * | 2007-10-29 | 2009-04-30 | Maurizio Skerlj | Apparatus and method for generating a transmit signal and apparatus and method for extracting an original message from a received signal |
CN103560993A (zh) * | 2007-10-30 | 2014-02-05 | 索尼株式会社 | 数据处理设备及方法 |
Also Published As
Publication number | Publication date |
---|---|
EP4097883A1 (en) | 2022-12-07 |
TW202134898A (zh) | 2021-09-16 |
US20210234554A1 (en) | 2021-07-29 |
CN115004587B (zh) | 2023-08-08 |
WO2021154801A1 (en) | 2021-08-05 |
US11139830B2 (en) | 2021-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9798693B2 (en) | Data bus inversion (DBI) encoding based on the speed of operation | |
US10468078B2 (en) | Methods and systems for pin-efficient memory controller interface using vector signaling codes for chip-to-chip communication | |
EP1825382B1 (en) | Low protocol, high speed serial transfer for intra-board or inter-board data communication | |
CN1171398C (zh) | 集成电路之间的串行数据通信 | |
US7965741B2 (en) | Method, apparatus, and system for idle state definition for power management | |
US20210232520A1 (en) | Logical physical layer interface specification support for pcie 6.0, cxl 3.0, and upi 3.0 protocols | |
CN100484071C (zh) | 差分方式变迁编码的方法以及相应的编码和解码系统 | |
CN110471876A (zh) | 一种超高速串行数据通道系统 | |
CN112948295A (zh) | 一种基于axi4总线的fpga与ddr高速数据包传输系统及方法 | |
CN115004587B (zh) | 用于数据传输的位反转 | |
US11782636B2 (en) | Method for data processing of an interconnection protocol to support multiple lanes, controller, and storage device | |
CN115982071A (zh) | 一种面向ddr3控制器的片上网络转换接口 | |
US20210342285A1 (en) | Encoding of symbols for a computer interconnect based on frequency of symbol values | |
CN1826779B (zh) | 用于接收机的时钟再训练方法 | |
CN104486208A (zh) | 面向板级多通道并行总线的报文边界定位方法及装置 | |
US20240007234A1 (en) | Method and apparatus for distributing traffic channels over a physical interconnect | |
US11726944B2 (en) | Transaction layer circuit of PCIe and operation method thereof | |
WO2023137666A1 (zh) | 数据传输方法和数据传输装置 | |
US20200326947A1 (en) | Multi-lane data processing circuit and system | |
JP2874983B2 (ja) | 通信装置 | |
JP2000224253A (ja) | 通信制御装置 | |
WO2006115819A1 (en) | Electronic differential buses utilizing the null state for data transfer | |
KR19980031007A (ko) | 유니버설 시리얼 버스용 스터프 비트 회로 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |