CN110737620A - 利用多字节接口的限制的汉明距离的总线翻转编码 - Google Patents

利用多字节接口的限制的汉明距离的总线翻转编码 Download PDF

Info

Publication number
CN110737620A
CN110737620A CN201910464439.2A CN201910464439A CN110737620A CN 110737620 A CN110737620 A CN 110737620A CN 201910464439 A CN201910464439 A CN 201910464439A CN 110737620 A CN110737620 A CN 110737620A
Authority
CN
China
Prior art keywords
group
flip
data
selective
dbi
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.)
Pending
Application number
CN201910464439.2A
Other languages
English (en)
Inventor
J·威尔逊
S·苏达卡兰
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.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of CN110737620A publication Critical patent/CN110737620A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40032Details regarding a bus interface enhancer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4072Drivers or receivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明提供了一种利用多字节接口的限制的汉明距离的总线翻转编码。总线数据的编码过程利用来自多字节宽总线上的多个数据线组的数据,其中每个组都有相关的DBI线。该过程为多个组和相关的多个DBI位利用扩展的编码空间。这个过程可以扩展到四个字节、八个字节等等。

Description

利用多字节接口的限制的汉明距离的总线翻转编码
相关申请的交叉引用
根据美国法典第35编第119条,本申请要求于2018年7月20日提交的、题为“利用多字节接口的限制的汉明距离的总线翻转编码(BUS-INVERT CODING WITH RESTRICTEDHAMMING DISTANCE FOR MULTI-BYTE INTERFACES)”、序列号62/701,075的美国申请的优先权,其全部内容通过引用合并于此。
背景技术
当超过一半的位(包括DBI位)在总线上的下一个并行数据传输上切换极性时,传统的总线翻转编码会翻转所有数据位(以及额外的称为DBI位的线/位)的极性。这避免了其中超过一半的位会改变极性的相邻的数据转换。例如,使用传统的DBI,在只有一条DBI线路的8位数据总线上,字节传输之间发生极性变化的线路总数在0到4之间,其将同时切换输出(simultaneous switching output,SSO)噪声降低了50%。
发明内容
本文描述的是降低由多个总线驱动器同时切换其输出(SSO噪声)诱发的电源噪声的技术。该技术与当前在高带宽内存(high-bandwidth memory,HMB)中使用的现有编码/解码机制一起工作,HMB在决策算法中使用多个字节。这使得在保持与现有总线通信机制向后兼容的同时,大幅度降低了诱发的电源噪声。该技术也可应用于片上总线,如用于在图形处理单元(GPU)上的功能单元之间、通用中央处理器(CPU)和其他电路之间、或通常在总线上通信的两个电路组件之间的通信数据的总线。
附图说明
为了方便识别对任何特定元素或动作的讨论,附图标记中最有效的数字是指第一次引入该元素的图号。
图1例示了未终止总线100的实施例。
图2例示了传统DBI技术200的实施例。
图3例示了数据通信系统300的实施例。
图4例示了16位数据总线400的实施例。
图5例示了2字节DBI编码技术500的实施例。
图6例示了32位数据总线600的实施例。
图7例示了4字节DBI编码技术700的实施例。
图8例示了根据一个实施例的8字节DBI编码技术800。
图9是计算系统900的框图,其中可以实现或实施本文介绍的技术。
具体实施方式
公开了利用来自多字节宽总线(其中每个字节都具有相关的DBI线)上的多字节传输的数据的技术。该技术利用了用于多字节数据和相关的多个DBI位的扩展的编码空间。这使能16位数据传输(+2DBI位)的总线上的极性变化最大数,从而将SSO噪声降低75%。该技术可以扩展到4个字节,用于32位数据传输(+4DBI位),这将减少87.5%的SSO噪声。
本文公开的技术确定了跨多个字节的汉明距离,从而进一步限制了总数据线转换,使之超出了独立考虑总线的每个字节所能实现的范围。对于所考虑的字节数的每次加倍,以及相关的DBI位,相对于不使用编码,累计汉明距离可以额外减少50%。因此,每当总线宽度加倍时,SSO噪声就会又额外减少50%。随着总线宽度的增大,采用本公开技术的SSO噪声趋于零。此外,这种编码技术可以有效地战胜分析电源波动/变化以确定/解密加密信息的系统。
图1例示了未终止总线100的示例。为了简单起见,将发射器102(Tx)例示为翻转器,其被设计为具有可驱动负载的输出阻抗,由数据线106和接收器104的电容表示,其上升和下降时间与工作速率相适应。当发射器102将数据线106从逻辑LO转换到逻辑HI时,存在从VDDQ电源引出的电流脉冲。当发射器102将数据线106从逻辑HI转换到逻辑LO时,存在下降到GND的电流脉冲。数据线106上的电流推拉是在使用多条数据线的总线上的SSO噪声的一个来源。
图2例示了传统的DBI技术200。确定用于与前一个总线周期相比的下一个总线周期的数据和DBI线路设置的汉明距离(HD)(块202)。如果HD小于或等于数据线N的一半(决策块204),则将DBI线设置为零(块206),并且不翻转数据位(块208)。如果HD大于N/2(决策块210),则将DBI设置为1(块212),并将数据位翻转(块214)。
图3例示了一个实施例中的数据通信系统300。数据通信系统300包括GPU 302、DBI编码器304、发射器306、接收器310、DBI解码器312和内存314。GPU 302生成数据,如计算的结果,以存储在内存314中。GPU 302的数据输出由DBI编码器304接收,并按照本文描述的方式进行编码,包括向数据添加多个DBI位。DBI编码器304将编码后的数据输出到发射器306,其在总线308的数据线和DBI线上生成电压信号,再输出到接收器310。接收器310接收来自数据和DBI线路的信号,并将信号提供给DBI解码器312,其对数据进行解码。使用所述编码技术时,不需要对传统的DBI解码器进行任何更改。解码后的数据存储在内存314中。本文所公开的技术可用于在例如数据通信系统300这样的系统中减少SSO。
图4例示了16位数据总线400的实施例。16位数据总线400包括两组数据线(组1402、组2 404),每组有8条数据线。组1 402中的数据线有相关的DBI线(DBI1 406),组2中的数据线有相关的DBI线(DBI2 408)。16位数据总线400中的数据线和DBI线的布局在其他实现中可以有所不同。在每个总线周期中,数据位沿着如上所述的数据线传输(例如,每条线传输一个位),数据翻转位由相关的DBI线传输。在每个总线周期中,每个数据位的值都可能是“0”或“1”。每条线的汉明距离对于数值变化是“1”(即“0”至“1”或“1”至“0”)或者对于数值不变是“0”(即,“0”至“0”或“1”至“1”)。然后为每一组聚合每条线的汉明距离。在一些实施例中,一组的汉明距离可以在0到8之间,但其也可以大于8。
图5例示了根据一个实施例的2字节DBI编码技术500。在块502,分别计算两组(组1和组2)数据线及其相关的DBI线DBI1和DBI2的汉明距离。组1的汉明距离表示为HD1,组2的汉明距离表示为HD2。在块504处,对组1和组2的数据和数据翻转位进行选择性翻转。选择性翻转可以基于图2中描述的传统DBI技术200。在块506,为每个组(组1'和组2')分别计算第二汉明距离(或编码的汉明距离)HD1'和HD2'。第二汉明距离HD1'和HD2'是针对块504中选择性翻转的数据计算的,即用于组1'和组2'的数据,数据1'和数据2'。在决策块508,2字节DBI编码技术500确定是否HD2'≥HD1'。在另一个实施例中,2字节DBI编码技术500确定是否HD2'>HD1'。如果是,则在块510和块512,组2'的数据被翻转,并且DBI2'被翻转。在第一实施例中,在块514和块516,如果HD1'>HD2',则组1'的数据被翻转,并且DBI1'被翻转。在第二实施例中,如果HD1'≥HD2',则组1'的数据被翻转,并且DBI1'被翻转。
图6例示了32位数据总线600的实施例。32位数据总线600包括四组数据线:组1602、组2 604、组3 606和组4 608。每个组都有相关的DBI线:对于组1 602至组4 608分别为:DBI1 610、DBI2 612、DBI3 614和DBI4 616。32位数据总线600中的数据线和DBI线的布局在其他实现中可能有所不同。如图所示,组1 602与组2 604相邻,组3 606与组4 608相邻。在其他实施例中,线可以以不同的方式排列。此外,可以利用这些线的物理位置来确定将每条线分配给哪个组。在进一步的实施例中,每组可包括相邻的线,而可以确定用于翻转的另一组的组号则基于组的物理位置。例如,可以选择相邻组进行编码(如图5所示)。其他实施例可以选择非相邻组进行编码。
图7例示了根据一个实施例的4字节DBI编码技术700。4字节DBI编码技术700将2字节DBI编码技术500扩展为跨总线数据的4个字节编码(例如,用于如图6所示的具有DBI线的32位数据总线600)。这一编码是通过将所述四个字节作为一对字节对来完成的。即,将第一字节对(例如,组1 602和组2 604)作为一个单元来评估和编码(块702和块704),将第二字节对(例如,组3 606和组4 608)作为另一个单元来评估和编码(块706和块708)。然后,比较两个字节对的组合汉明距离(决策块710),并对其中一个字节对应用额外的编码操作。这简化了四个字节的整体编码,因为每个字节对都可以使用与前面的2字节DBI编码技术500编码所需的相同的逻辑。
4字节DBI编码技术700的第一阶段(块702、块704、块706、块708)应用两个编码器(参见2字节DBI编码技术500),一个应用于组1/组2的原始字节对(及其相关的DBI线),并且另一个应用于组3/组4的原始字节对(及其相关的DBI线)。
4字节DBI编码技术700的第二阶段(决策块710)应用来自两个编码器的输出并比较用于组1/组2对的组合汉明距离(分别为HD1”+HD2”,其中HDn”是图5的编码后的组1/组2的汉明距离)与用于组3/组4对的组合汉明距离(分别为HD3”+HD4”,其中HDn”是图5的编码后的组3/组4的汉明距离)。
4字节DBI编码技术700的第三阶段应用如下的编码算法:
1.如果HD1"+HD2"≤HD3"+HD4",则翻转DBI3"和DBI4"(块716),并翻转组3"和组4"位(块718);以及
2.如果HD1”+HD2”>HD3”+HD4”,则翻转DBI1”和DBI2”(块712),并翻转组1”和组2”位(块714)。
在另一个实施例中,4字节DBI编码技术700的第三阶段应用如下的编码算法:
1.如果HD1"+HD2"<HD3"+HD4",则翻转DBI3"和DBI4"(块716),并翻转组3"和组4"位(块718);以及
2.如果HD1”+HD2”≥HD3”+HD4”,则翻转DBI1”和DBI2”(块712),并翻转组1”和组2”位(块714)。
换句话说,4字节DBI编码技术700确定哪个已编码的字节对(以及相关的DBI位)具有最大的组合汉明距离,然后将该字节对和相关的DBI的位翻转。如果字节对具有相同的组合汉明距离,那么基于实施例,4字节DBI编码技术700可以翻转任何一个字节对(即一个并且只有一个字节对)以及相关的DBI的位。
图8例示了根据一个实施例的8字节DBI编码技术800。在第一阶段(块802、块804、块806、块808、块810、块812、块814和块816)中,对每个组应用低切换(low-toggle)编码。例如,如果HDn>N/2,翻转数据n并设置DBIn=1。第一阶段可以使用图2中描述的传统DBI技术200。
在第二阶段(818块、块820、块822、块824),字节是成对的(例如,组1/组2、组3/组4、组5/组6,和组7/组8)。这些字节对有其相比较的编码的汉明距离,并且字节对中的一组将数据位和数据翻转位进行翻转。第二阶段可以使用图5中描述的2字节DBI编码技术500。
在第三阶段(块826和块828),字节对进一步与另一个字节对配对。每个字节对都有计算出来的组合汉明距离。然后比较组合汉明距离,并且翻转其中一个字节对的数据位和数据翻转位。第三阶段可以使用图7中描述的4字节DBI编码技术700。
在第四阶段(块830)中,为在第三个阶段中比较的成对的字节对确定第二组合汉明距离。如图8所示,组1-4和组5-8具有利用服从前一阶段的翻转编码的数据位和数据翻转位而确定的组合汉明距离。然后比较第二组合汉明距离,并且一组4字节的数据位和数据翻转位被翻转。8字节DBI编码技术800的第四阶段应用如下的先前阶段:
5.如果HD1”'+HD2”'+HD3”'+HD4”'≤HD5”'+HD6”'+HD7”'+HD8”',则翻转数据5”'、DBI5”'、数据6”'、DBI6”'、数据7”'、DBI7”'、数据8”'和DBI8”';
6.如果HD1”+HD2”+HD3”'+HD4”'>HD5”'+HD6”'+HD7”'+HD8”',则翻转数据1”'、DBI1”'、数据2”'、DBI2”'、数据3”'、DBI3”'、数据4”'和DBI4”'。
在另一个实施例中,8字节DBI编码技术800的第四阶段应用如下d编码算法:
7.如果HD1”'+HD2”'+HD3”'+HD4”'<HD5”'+HD6”'+HD7”'+HD8”',则翻转数据5”'、DBI5”'、数据6”'、DBI6”'、数据7”'、DBI7”'、数据8”'和DBI8”';以及
8.如果HD1”'+HD2”'+HD3”'+HD4”'≥HD5”'+HD6”'+HD7”'+HD8”',则翻转数据1”'、DBI1”'、数据2”'、DBI2”'、DBI3”'、数据3”'、数据4”'和DBI4”'。
换句话说,8字节DBI编码技术800确定哪个经过编码的字节对(以及相关的DBI位)具有最大的组合汉明距离,然后将这对字节对和相关的DBI位进行翻转。如果每一对字节对具有相同的组合汉明距离,那么基于实施例,8字节DBI编码技术800可以翻转其中任何一对字节对(即一对且只有一对字节对)以及相关的DBI位。
图9是计算系统900的一个实施例的框图,其中可以实现本公开的一个或更多个方面。计算系统900包括系统数据总线932、CPU 902、输入设备908、系统内存904、图形处理系统906和显示设备910。在可选的实施例中,可以将CPU 902、图形处理系统906的部分、系统数据总线932或其任何组合集成到单个处理单元中。此外,图形处理系统906的功能可以包括在芯片组或其他类型的专用处理单元或协同处理器中。
如图所示,系统数据总线932连接CPU 902、输入设备908、系统内存904和图形处理系统906。在可选的实施例中,系统内存904可以直接连接到CPU 902。CPU 902接收来自输入设备908的用户输入,执行存储在系统内存904中的编程指令,对存储在系统内存904中的数据进行操作以执行计算任务。系统内存904通常包括用于存储编程指令和数据的动态随机访问存储器(DRAM)。图形处理系统906接收由CPU 902传输的指令并处理该指令,例如,以实现本公开实施例的各个方面,和/或在显示设备910上渲染和显示图形(例如,图像、贴片、视频)。
如图所示,系统内存904包括应用程序912、API 914(应用程序编程接口)和图形处理单元驱动程序916(GPU驱动程序)。应用程序912生成对API 914的调用,以生成所需的一组计算结果。例如,应用程序912可以将其程序或功能传输到API 914,以便在图形处理单元驱动程序916中进行处理。
图形处理系统906包括GPU 918(图形处理单元)、片上GPU内存922、片上GPU数据总线936、GPU本地内存920和GPU数据总线934。例如,本文公开的系统和技术的实施例可用于在这些总线上和这些组件之间通信数据。GPU 918配置为通过片上GPU数据总线936与片上GPU内存922通信,以及通过GPU数据总线934与GPU本地内存920通信。GPU 918可以接收CPU902传输的指令,处理该指令,并将结果存储在GPU本地内存920中。随后,GPU 918可以在显示设备910上显示存储在GPU本地内存920中的某些图形。
GPU 918包括一个或更多个逻辑块924。逻辑块924可以实现诸如图形操作、编码技术、人工智能、矩阵操作等功能。
本公开的实施例可用于在计算系统900的各个组件之间通信数据。示例的组件通信包括CPU 902和/或GPU 918与内存电路之间的通信,其中内存电路包括系统内存904、GPU本地内存920和/或片上GPU内存922。
GPU 918可具有任意数量的片上GPU内存922和GPU本地内存920,包括零个,并可采用片上GPU内存922、GPU本地内存920和系统内存904以任意组合进行内存操作。
片上GPU内存922配置为包括GPU编程928和片上缓冲区930。GPU编程928可以通过系统数据总线932从图形处理单元驱动程序916传输到片上GPU内存922。GPU编程928可以包含逻辑块924。
GPU本地内存920通常包括较便宜的片外动态随机访问存储器(DRAM),并且也用于存储由GPU 918使用的数据和编程。如图所示,GPU本地内存920包含帧缓冲区926。例如,帧缓冲区926可以存储用于驱动显示设备910的图像(例如图形表面)的数据。帧缓冲区926可以包含多于一个表面,以便GPU 918可以渲染一个表面,同时第二个表面可以用于驱动显示设备910。
显示设备910是能够发出与输入数据信号相对应的可视图像的一个或更多个输出设备。例如,可以使用液晶显示器或任何其他合适的显示系统来构建显示设备。发送到显示设备910的输入数据信号通常是通过扫描存储在帧缓冲区926中的一个或更多个图像数据帧的内容来生成的。
此处使用的术语应符合它们在相关领域中的普通含义,或在上下文中使用它们所表示的含义,但如果提供了明确的定义,则由该含义控制。
“电路”是指具有至少一个离散的电路的电气电路,具有至少一个集成电路的电气电路,具有至少一个特定于应用程序的集成电路的电气电路,形成由计算机程序配置的通用计算设备的电路(例如,由至少部分执行本文所述过程或设备的计算机程序配置的通用计算机,或由至少部分执行本文所述过程或设备的计算机程序配置的微处理器),形成内存设备的电路(例如,以随机访问内存的形式),或形成通信设备的电路(例如,调制解调器、通信开关或光电设备)。
“固件”指体现为存储在只读存储器或介质中的处理器可执行指令的软件逻辑。
“硬件”是指体现为模拟电路或数字电路的逻辑。
“逻辑”是指机器内存电路,非暂存性机器可读介质,和/或电路,通过其材料和/或材料能量配置,包括控制和/或程序信号,和/或设置和值(如电阻、阻抗、电容、电感电流/电压等级,等等),这可以用于影响设备的操作。磁性介质、电子电路、电子和光存储器(易失性和非易失性)以及固件都是逻辑的例子。逻辑特别排除了纯信号或软件本身(但是不排除由软件组成的机器内存,从而形成物质的配置)。
“软件”指的是实现为机器内存中处理器可执行指令的逻辑(例如读/写易失性或非易失性内存或介质)。
“总线”是指在计算机系统中携带数据和控制信号的一组不同的导体,设备的部件可以与其并联。每个导体都可以称为线或线缆。
在这里,“一个实施例”或“实施例”的引用不一定指同一个实施例,尽管它们可以。除非上下文另有明确要求,否则在整个说明书和权利要求中,“包含”、“包含”等词应被解释为包含性的,而不是排他性或穷举性的;也就是说,是在“包括但不限于”的意义上。使用单数或复数的词也分别包括复数或单数,除非明确限定为一个或多个。此外,在本申请中使用“在这里”、“上面”、“下面”和类似含义的单词时,指的是整个申请,而不是本申请的任何特定部分。当权利要求关于两个或两个以上的列表项目使用“或”这个词时,这个词涵盖了所有下列词的解释:列表中任何项目,列表中所有的项目和列表中任意项目的组合,除非明确限制为一个或另一个。本文中未明确定义的任何术语,其常规含义与本领域技术人员所理解的相同。
本文描述的各种逻辑功能操作可以在逻辑中实现,其指的是使用名词或名词短语来反映所述操作或功能。例如,关联操作可以由“关联器”或“相关器”执行。同样,切换可以由“开关”执行,也可以由“选择器”进行选择,依此类推。
本文公开的技术提供了在宽数据总线上随时间和规模的统一电流消耗,而不会对四字节宽的总线造成不必要的复杂性。该技术确实需要特殊的查找表,并且不会产生额外的时间开销(即,运行链接的速度比基线信令速率快)或额外的信号线。该技术非常适合用于不清楚(不是专用于)发射器使用的编码算法的接收设备。接收器恢复数据所需的所有解码信息都由DBI位的极性来传递。该技术可以应用于链路的一个或两个总线方向。

Claims (20)

1.一种用于对通过总线通信的数据进行编码的方法,所述方法包括:
分别确定所述总线的组1和组2的汉明距离HD1和HD2,每组具有8条数据线和相关的DBI线,分别为DBI1和DBI2;以及
根据所述组1和所述组2的所述汉明距离选择性地翻转所述数据。
2.根据权利要求1所述的方法,其中根据所述汉明距离选择性地翻转通过所述总线通信的所述数据包括:
执行低切换编码,包括:
如果HD1≤4:
设置DBI1=0;并且
不翻转所述组1的所述数据;
如果HD1>4:
设置DBI1=1;并且
翻转所述组1的所述数据;
如果HD2≤4:
设置DBI2=0;并且
不翻转所述组2的所述数据;以及
如果HD2>4:
设置DBI2=1;并且
翻转所述组2的所述数据;以及
对所述低切换编码的结果数据1'、数据2'、DBI1'和DBI2'执行第二编码,包括:
利用所述数据1'和所述数据2'确定编码的汉明距离HD1'和HD2';
如果HD1'≤HD2',则翻转所述数据2'和所述DBI2';以及
如果HD2'<HD1',则翻转所述数据1'和所述DBI1'。
3.一种用于对通过总线通信的数据进行编码的方法,所述方法包括:
根据权利要求2对所述总线的组1和组2的数据和DBI值进行编码,每组具有8条数据线和相关的DBI线,分别为DBI1和DBI2;
根据权利要求2对所述总线的组3和组4的数据和DBI值进行编码,每组具有8条数据线和相关的DBI线,分别为DBI3和DBI4;
分别确定组1”和组2”的汉明距离HD1”和HD2”,其中所述组1”、DBI1”、组2”和DBI2”分别为低切换编码和第二编码的结果;
分别确定组3”和组4”的汉明距离HD3”和HD4”,其中所述组3”、DBI3”、组4”和DBI4”分别为低切换编码和第二编码的结果;
如果HD1”+HD2”≤HD3”+HD4”:
翻转所述DBI3”和所述DBI4”;并且
翻转所述组3”和所述组4”的数据;以及
如果HD1”+HD2”>HD3”+HD4”:
翻转所述DBI1”和所述DBI2”;并且
翻转所述组1”和所述组2”的数据。
4.一种用于对通过总线通信的数据进行编码的方法,所述方法包括:
根据权利要求3对所述总线的组1、组2、组3和组4的数据和DBI值进行编码,每组具有8条数据线和相关的DBI线,分别为DBI1、DBI2、DBI3和DBI4;
按照权利要求3对所述总线的组5、组6、组7和组8的数据和DBI值进行编码,每组具有8条数据线和相关的DBI线,分别为DBI5、DBI6、DBI7和DBI8;
分别确定组1”'、组2”'、组3”'和组4”'的汉明距离HD1”'、HD2”'、HD3”'和HD4”',其中所述组1”'、DBI1”'、所述组2”'、DBI2”'、所述组3”'、DBI3”'、所述组4”'和DBI4”'是低切换编码和第二编码的结果;
分别确定组5”'、组6”'、组7”'和组8”'的汉明距离HD5”'、HD6”'、HD7”'和HD8”',其中所述组5”'、DBI5”'、所述组6”'、DBI6”'、所述组7”'、DBI7”'、所述组8”'和DBI8”'是低切换编码和第二编码的结果;
如果HD1”'+HD2”'+HD3”'+HD4”'≤HD5”'+HD6”'+HD7”'+HD8”':
翻转所述DBI5”'、所述DBI6”'、所述DBI7”'和所述DBI8”';以及
翻转所述组5”'、所述组6”'、所述组7”'和所述组8”'的数据;和
如果HD1”'+HD2”'+HD3”'+HD4”'>HD5”'+HD6”'+HD7”'+HD8”':
翻转所述DBI1”'、所述DBI2”'、所述DBI3”'和所述DBI4”';以及
翻转所述组1”'、所述组2”'、所述组3”'和所述组4”'的数据。
5.一种用于对通过总线通信的数据进行编码的方法,所述方法包括:
根据权利要求3对所述总线的组1、组2、组3和组4的数据和DBI值进行编码,每组具有8条数据线和相关的DBI线,分别为DBI1、DBI2、DBI3和DBI4;
根据权利要求3对所述总线的组5、组6、组7和组8的数据和DBI值进行编码,每组具有8条数据线和相关的DBI线,分别为DBI5、DBI6、DBI7和DBI8;
分别确定组1”'、组2”'、组3”'和组4”'的汉明距离HD1”'、HD2”'、HD3”'和HD4”',其中所述组1”'、DBI1”'、所述组2”'、DBI2”'、所述组3”'、DBI3”'、所述组4”'和DBI4”'分别为低切换编码和第二编码的结果;
分别确定组5”'、组6”'、组7”'和组8”'的汉明距离HD5”'、HD6”'、HD7”'和HD8”',其中所述组5”'、DBI5”'、所述组6”'、DBI6”'、所述组7”'、DBI7”'、所述组8”'和DBI8”'分别为低切换编码和第二编码的结果;
如果HD1”'+HD2”'+HD3”'+HD4”'<HD5”'+HD6”'+HD7”'+HD8”':
翻转所述DBI5”'、所述DBI6”'、所述DBI7”'和所述DBI8”';并且
翻转所述组5”'、所述组6”'、所述组7”'和所述组8”'的数据;以及
如果HD1”'+HD2”'+HD3”'+HD4”'≥HD5”'+HD6”'+HD7”'+HD8”':
翻转所述DBI1”'、所述DBI2”'、所述DBI3”'和所述DBI4”';并且
翻转所述组1”'、所述组2”'、所述组3”'和所述组4”'的数据。
6.根据权利要求3所述的方法,其中,根据每个组的物理位置,将所述8条数据线和所述相关的DBI线的每个组分配给所述组1、所述组2、所述组3和所述组4。
7.一种用于对通过总线通信的数据进行编码的方法,所述方法包括:
根据权利要求2对所述总线的组1和组2的数据和DBI值进行编码,每组具有8条数据线和相关的DBI线,分别为DBI1和DBI2;
根据权利要求2对所述总线的组3和组4的数据和DBI值进行编码,每组具有8条数据线和相关的DBI线,分别为DBI3和DBI4;
分别确定组1”和组2”的汉明距离HD1”和HD2”,其中所述组1”、DBI1”、所述组2”和DBI2”分别为低切换编码和第二编码的结果;
分别确定组3”和组4”的汉明距离HD3”和HD4”,其中所述组3”、DBI3”、所述组4”和DBI4”分别为低切换编码和第二编码的结果;
如果HD1”+HD2”<HD3”+HD4”:
翻转所述DBI3”和DBI4”;并且
翻转所述组3”和所述组4”的数据;以及
如果HD1”+HD2”≥HD3”+HD4”:
翻转所述DBI1”和所述DBI2”;并且
翻转所述组1”和所述组2”的数据。
8.一种对通过总线通信的数据进行编码的方法,所述方法包括:
根据权利要求7对所述总线的组1、组2、组3和组4的数据和DBI值进行编码,每组具有8条数据线和相关的DBI线,分别为DBI1、DBI2、DBI3和DBI4;
根据权利要求7对所述总线的组5、组6、组7和组8的数据和DBI值进行编码,每组具有8条数据线和相关的DBI线,分别为DBI5、DBI6、DBI7和DBI8;
分别确定组1”'、组2”'、组3”'和组4”'的汉明距离HD1”'、HD2”'、HD3”'和HD4”',其中所述组1”'、DBI1”'、所述组2”'、DBI2”'、所述组3”'、DBI3”'、所述组4”'和DBI4”'分别为低切换编码和第二编码的结果;
分别确定组5”'、组6”'、组7”'和组8”'的汉明距离HD5”'、HD6”'、HD7”'和HD8”',其中所述组5”'、DBI5”'、所述组6”'、DBI6”'、所述组7”'、DBI7”'、所述组8”'和DBI8”'分别为低切换编码和第二编码的结果;
如果HD1”'+HD2”'+HD3”'+HD4”'≤HD5”'+HD6”'+HD7”'+HD8”':
翻转所述DBI5”'、所述DBI6”'、所述DBI7”'和所述DBI8”';并且
翻转所述组5”'、所述组6”'、所述组7”'和所述组8”'的数据;以及
如果HD1”'+HD2”'+HD3”'+HD4”'>HD5”'+HD6”'+HD7”'+HD8”':
翻转所述DBI1”'、所述DBI2”'、所述DBI3”'和所述DBI4”';并且
翻转所述组1”'、所述组2”'、所述组3”'和所述组4”'的数据。
9.一种对通过总线通信的数据进行编码的方法,所述方法包括:
根据权利要求7对所述总线的组1、组2、组3和组4的数据和DBI值进行编码,每组具有8条数据线和相关的DBI线,分别为DBI1、DBI2、DBI3和DBI4;
根据权利要求7对所述总线的组5、组6、组7和组8的数据和DBI值进行编码,每组具有8条数据线和相关的DBI线,分别为DBI5、DBI6、DBI7和DBI8;
分别确定组1”'、组2”'、组3”'和组4”'的汉明距离HD1”'、HD2”'、HD3”'和HD4”',其中所述组1”'、DBI1”'、所述组2”'、DBI2”'、所述组3”'、DBI3”'、所述组4”'和所述DBI4”'分别为低切换编码和第二编码的结果;
分别确定组5”'、组6”'、组7”'和组8”'的汉明距离HD5”'、HD6”'、HD7”'和HD8”',其中所述组5”'、DBI5”'、所述组6”'、DBI6”'、所述组7”'、DBI7”'、所述组8”'和DBI8”'分别为低切换编码和第二编码的结果;
如果HD1”'+HD2”'+HD3”'+HD4”'<HD5”'+HD6”'+HD7”'+HD8”':
翻转所述DBI5”'、所述DBI6”'、所述DBI7”'和所述DBI8”';并且
翻转所述组5”'、所述组6”'、所述组7”'和所述组8”'的数据;以及
如果HD1”'+HD2”'+HD3”'+HD4”'≥HD5”'+HD6”'+HD7”'+HD8”':
翻转所述DBI1”'、所述DBI2”'、所述DBI3”'和所述DBI4”';并且
翻转所述组1”'、所述组2”'、所述组3”'和所述组4”'的数据。
10.根据权利要求2所述的方法,其中所述DBI的值配置解码器以翻转或不翻转接收器接收到的数据。
11.根据权利要求1所述的方法,其中根据所述汉明距离选择性地翻转通过所述总线通信的所述数据包括:
执行低切换编码,包括:
如果HD1≤4:
设置DBI1=0;并且
不翻转所述组1的所述数据;
如果HD1>4:
设置DBI1=1;并且
翻转所述组1的所述数据;
如果HD2≤4:
设置DBI2=0;并且
不翻转所述组2的所述数据;和
如果HD2>4:
设置DBI2=1;并且
翻转所述组2的所述数据;以及
对所述低切换编码的结果数据1'、数据2'、DBI1'和DBI2'执行第二编码,包括:
利用所述数据1'和所述数据2'确定编码的汉明距离HD1'和HD2';
如果HD1'<HD2',则翻转所述数据2'和所述DBI2';以及
如果HD2'≤HD1',则翻转所述数据1'和所述DBI1'。
12.一种系统,包括:
耦连到数据总线的发射器,所述数据总线包括一条或更多条线路的多个组;以及
耦连到所述发射器的编码器,用于:
为所述一条或更多条线路的多个组中的每一个组,确定上一总线周期与下一总线周期之间的汉明距离;和
根据所述一条或更多条线路的多个组中的每一个组的所述汉明距离,选择性地翻转所述发射器传输的所述数据总线上的所述下一总线周期的数据位。
13.根据权利要求12所述的系统,其中所述多个组包括第一组和第二组,并且对于每个组,所述一条或更多条线路包括8条数据线和数据总线翻转线,所述编码器通过以下方式选择性地翻转在所述一条或更多条线路上传输的所述数据位:
分别确定所述第一组和所述第二组的所述汉明距离HD1和HD2;以及
执行低切换编码,包括:
如果HD1≤4:
设置用于所述第一组的所述数据总线翻转线为0,DBI1'=0;并且
不翻转组1的所述数据,数据1';
如果HD1>4:
设置用于所述第一组的所述数据总线翻转线为1,DBI1'=1;并且
翻转所述组1的所述数据,数据1';
如果HD2≤4:
设置用于所述第二组的所述数据总线翻转线为0,DBI2'=0;并且
不翻转所述组2的所述数据,数据2';和
如果HD2>4:
设置用于所述第二组的所述数据总线翻转线为1,DBI2'=1;并且
翻转所述组2的所述数据,数据2';以及
对所述数据1'、所述数据2'、所述DBI1'和所述DBI2'执行第二编码,包括:
利用所述数据1'和所述数据2'确定编码的汉明距离HD1'和HD2';
如果HD1'≤HD2',则翻转所述数据2'和所述DBI2';以及
如果HD2'<HD1',则翻转所述数据1'和所述DBI1'。
14.根据权利要求13所述的系统,其中所述多个组进一步包括第三组和第四组,并且对于每个组,所述一条或更多条线路包括8条数据线和所述数据总线翻转线,所述编码器进一步配置为:
选择性地翻转所述第三组和所述第四组的数据位和数据翻转位,如针对所述第一组和所述第二组执行的,以生成第一选择性翻转组、第二选择性翻转组、第三选择性翻转组和第四选择性翻转组;以及
对(a)所述第一选择性翻转组和所述第二选择性翻转组,或(b)所述第三选择性翻转组和所述第四选择性翻转组执行第三翻转,所述第三翻转包括:
确定所述第一选择性翻转组和所述第二选择性翻转组的组合汉明距离以及所述第三选择性翻转组和所述第四选择性翻转组的组合汉明距离;
将所述第一选择性翻转组和所述第二选择性翻转组的所述组合汉明距离与所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离进行比较;以及
(a)如果所述第一选择性翻转组和所述第二选择性翻转组的所述组合汉明距离大于所述第三选择性翻转组和所述第四选择性翻转组的组合汉明距离,则翻转所述第一选择性翻转组和所述第二选择性翻转组的所述数据位和所述数据翻转位,或(b)如果所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离大于或等于所述第一选择性翻转组和所述第二选择性翻转组的组合汉明距离,则翻转所述第三选择性翻转组和所述第四选择性翻转组的所述数据位和所述数据翻转位。
15.根据权利要求14所述的系统,其中,所述多个组进一步包括第五组、第六组、第七组和第八组,并且对于每个组,所述一个或更多条线路包括8条数据线和数据总线翻转线,所述编码器进一步配置为:
选择性地翻转所述第五组、所述第六组、所述第七组和所述第八组的所述数据位和所述数据翻转位,如针对所述第一组、所述第二组、所述第三组和所述第四组执行的,以生成第一组选择性翻转组、第二选择性翻转组、第三选择性翻转组、第四选择性翻转组、第五选择性翻转组、第六选择性翻转组、第七选择性翻转组和第八选择性翻转组;以及
对(a)所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组或(b)所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组,所述第八选择性翻转组,执行第四翻转,所述第四翻转包括:
确定所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离,以及所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组的所述组合汉明距离;
将所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离与所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组的所述组合汉明距离进行比较;以及
(a)如果所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离大于所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组的所述组合汉明距离,则翻转所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组的所述数据位和所述数据翻转位,或(b)如果所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组的所述组合汉明距离大于或等于所述第一选择性翻转组、所述第二选择性翻转组,所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离,则翻转所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组的所述数据位和所述数据翻转位。
16.根据权利要求14所述的系统,其中,所述多个组还包括第五组、第六组、第七组和第八组,并且对于每个组,所述一条或更多条线路包括8条数据线和所述数据总线翻转线,所述编码器进一步配置为:
选择性地翻转所述第五组、所述第六组、所述第七组和所述第八组的所述数据位和所述数据翻转位,如针对所述第一组、所述第二组、所述第三组和所述第四组执行的,以生成第一选择性翻转组、第二选择性翻转组、第三选择性翻转组、第四选择性翻转组、第五选择性翻转组、第六选择性翻转组、第七选择性翻转组和第八选择性翻转组;以及
对(a)所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组或(b)所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组,执行第四翻转,所述第四翻转包括:
确定所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离,以及所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组的所述组合汉明距离;
将所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离与所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组的所述组合汉明距离进行比较;以及
(a)如果所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离大于或等于所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组的所述组合汉明距离,则翻转所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组的所述数据位和所述数据翻转位,或(b)如果所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组的所述组合汉明距离大于所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离,则翻转所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组的所述数据位和所述数据翻转位。
17.根据权利要求14所述的系统,其中,所述编码器基于每个组的物理位置将每组所述8条数据线和所述数据总线翻转线分配给所述第一组、所述第二组、所述第三组和所述第四组。
18.根据权利要求13所述的系统,其中,所述多个组还包括第三组和第四组,并且对于每个组,所述一条或更多条线路包括8条数据线和所述数据总线翻转线,所述编码器进一步配置为:
选择性地翻转所述第三组和所述第四组的所述数据位和所述数据翻转位,如针对所述第一组和所述第二组执行的,以生成第一选择性翻转组、第二选择性翻转组、第三选择性翻转组和第四选择性翻转组;以及
对(a)第一选择性翻转组和第二选择性翻转组或(b)第三选择性翻转组和第四选择性翻转组执行第三翻转,所述第三翻转包括:
确定所述第一选择性翻转组和所述第二选择性翻转组的所述组合汉明距离,以及所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离;
将所述第一选择性翻转组和所述第二选择性翻转组的所述组合汉明距离与所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离进行比较;以及
(a)如果所述第一选择性翻转组和所述第二选择性翻转组的所述组合汉明距离大于或等于所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离,则翻转所述第一选择性翻转组和所述第二选择性翻转组的所述数据位和所述数据翻转位,或(b)如果所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离大于所述第一选择性翻转组和所述第二选择性翻转组的所述组合汉明距离,则翻转所述第三选择性翻转组和所述第四选择性翻转组的所述数据位和所述数据翻转位。
19.根据权利要求18所述的系统,其中,所述多个组进一步包括第五组、第六组、第七组和第八组,并且对于每个组,所述一条或更多条线路包括所述8条数据线和所述数据总线翻转线,所述编码器进一步配置为:
选择性地翻转所述第五组、所述第六组、所述第七组和所述第八组的所述数据位和所述数据翻转位,如针对所述第一组、所述第二组、所述第三组和所述第四组执行的,以生成所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组、所述第四选择性翻转组、第五选择性翻转组、第六选择性翻转组、第七选择性翻转组和第八选择性翻转组;以及
对(a)所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组或(b)所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组,执行第四翻转,所述第四翻转包括:
确定所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离,以及所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组的所述组合汉明距离;
将所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离与所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组的所述组合汉明距离进行比较;以及
(a)如果所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离大于所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组的所述组合汉明距离,则翻转所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组的所述数据位和所述数据翻转位,或(b)如果所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组的所述组合汉明距离大于或等于所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离,则翻转所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组的所述数据位和所述数据翻转位。
20.根据权利要求18所述的系统,其中,所述多个组进一步包括第五组、第六组、第七组和第八组,并且对于每个组,所述一条或更多条线路包括所述8条数据线和所述数据总线翻转线,所述编码器进一步配置为:
选择性地翻转所述第五组、所述第六组、所述第七组和所述第八组的所述数据位和所述数据翻转位,如针对所述第一组、所述第二组、所述第三组和所述第四组执行的,以生成所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组、所述第四选择性翻转组、第五选择性翻转组、第六选择性翻转组、第七选择性翻转组和第八选择性翻转组;以及
对(a)所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组或(b)所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组,执行第四翻转,所述第四翻转包括:
确定所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离,以及所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组的所述组合汉明距离;
将所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离与所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组的所述组合汉明距离进行比较;以及
(a)如果所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离大于或等于所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组的所述组合汉明距离,则翻转所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组的所述数据位和所述数据翻转位,或(b)如果所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组的所述组合汉明距离大于所述第一选择性翻转组、所述第二选择性翻转组、所述第三选择性翻转组和所述第四选择性翻转组的所述组合汉明距离,则翻转所述第五选择性翻转组、所述第六选择性翻转组、所述第七选择性翻转组和所述第八选择性翻转组的所述数据位和所述数据翻转位。
CN201910464439.2A 2018-07-20 2019-05-30 利用多字节接口的限制的汉明距离的总线翻转编码 Pending CN110737620A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862701075P 2018-07-20 2018-07-20
US62/701,075 2018-07-20
US16/190,467 2018-11-14
US16/190,467 US10623200B2 (en) 2018-07-20 2018-11-14 Bus-invert coding with restricted hamming distance for multi-byte interfaces

Publications (1)

Publication Number Publication Date
CN110737620A true CN110737620A (zh) 2020-01-31

Family

ID=69162554

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910464439.2A Pending CN110737620A (zh) 2018-07-20 2019-05-30 利用多字节接口的限制的汉明距离的总线翻转编码

Country Status (2)

Country Link
US (1) US10623200B2 (zh)
CN (1) CN110737620A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021208647A1 (zh) * 2020-04-17 2021-10-21 苏州库瀚信息科技有限公司 数据传输装置及方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3100369B1 (fr) * 2019-08-29 2022-03-04 Commissariat Energie Atomique Procédé d’inversion sélective de mots à écrire dans une mémoire et dispositif pour sa mise en œuvre
US11139830B2 (en) * 2020-01-28 2021-10-05 Qualcomm Incorporated Bit inversion for data transmission
KR20210149543A (ko) * 2020-06-02 2021-12-09 삼성전자주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
KR20220140234A (ko) * 2021-04-09 2022-10-18 삼성전자주식회사 멀티 레벨 신호 시스템에서 최적 전이 코드를 생성하기 위한 신호 처리 방법 및 반도체 장치
US11656958B2 (en) 2021-04-29 2023-05-23 Mellanox Technologies, Ltd. Redundancy data bus inversion sharing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5572736A (en) * 1995-03-31 1996-11-05 International Business Machines Corporation Method and apparatus for reducing bus noise and power consumption
CN1483166A (zh) * 2000-11-07 2004-03-17 英特尔公司 采用动态总线倒置来降低同步转换输出噪音的方法和装置
US20090193319A1 (en) * 2008-01-24 2009-07-30 International Business Machines Corporation Data bus system, its encoder/decoder and encoding/decoding method
US20160173134A1 (en) * 2014-12-15 2016-06-16 Intel Corporation Enhanced Data Bus Invert Encoding for OR Chained Buses

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4739323A (en) 1986-05-22 1988-04-19 Chrysler Motors Corporation Serial data bus for serial communication interface (SCI), serial peripheral interface (SPI) and buffered SPI modes of operation
US4742349A (en) 1986-05-22 1988-05-03 Chrysler Motors Corporation Method for buffered serial peripheral interface (SPI) in a serial data bus
US5377020A (en) 1992-05-28 1994-12-27 Contex A/S Method and apparatus for scanning an original and updating threshold values for use in the processing of data
US6604120B1 (en) 1997-09-04 2003-08-05 Cirrus Logic, Inc. Multiplier power saving design
US6718415B1 (en) 1999-05-14 2004-04-06 Acqis Technology, Inc. Computer system and method including console housing multiple computer modules having independent processing units, mass storage devices, and graphics controllers
US6285300B1 (en) 2000-02-09 2001-09-04 Hewlett Packard Company Apparatus and method for reducing power and noise through reduced switching recording in logic devices
US7149955B1 (en) 2001-03-07 2006-12-12 Marvell International Ltd. Encoding and decoding apparatus and method with hamming weight enhancement
US7248640B2 (en) 2001-08-17 2007-07-24 Synopsys, Inc. System and method for providing slicer level adaption
US7260155B2 (en) 2001-08-17 2007-08-21 Synopsys, Inc. Method and apparatus for encoding and decoding digital communications data
ES2334934T3 (es) 2002-09-04 2010-03-17 Microsoft Corporation Codificacion de entropia por adaptacion de codificacion entre modalidades de nivel y de longitud de sucesion y nivel.
US7391834B2 (en) 2002-10-01 2008-06-24 Intel Corporation Pulse amplitude modulated system with reduced intersymbol interference
JP3994870B2 (ja) 2002-12-12 2007-10-24 日本電気株式会社 多値qamを用いた無線装置及びしきい値推定方法
US7620116B2 (en) 2003-02-28 2009-11-17 Rambus Inc. Technique for determining an optimal transition-limiting code for use in a multi-level signaling system
US7092472B2 (en) 2003-09-16 2006-08-15 Rambus Inc. Data-level clock recovery
US7188263B1 (en) 2003-05-07 2007-03-06 Nvidia Corporation Method and apparatus for controlling power state of a multi-lane serial bus link having a plurality of state transition detectors wherein powering down all the state transition detectors except one
US7779212B2 (en) 2003-10-17 2010-08-17 Micron Technology, Inc. Method and apparatus for sending data from multiple sources over a communications bus
US7308058B2 (en) 2003-10-27 2007-12-11 Rambus Inc. Transparent multi-mode PAM interface
US7561624B2 (en) 2004-11-22 2009-07-14 Fonseka John P Multi-interval line coding for high speed data communication
US7081838B2 (en) 2004-12-29 2006-07-25 Enigma Semiconductor, Inc. 16b/10s coding apparatus and method
US7840629B2 (en) 2006-02-28 2010-11-23 Sony Computer Entertainment Inc. Methods and apparatus for providing a booth multiplier
US7769048B2 (en) 2008-06-25 2010-08-03 Intel Corporation Link and lane level packetization scheme of encoding in serial links
US7795915B2 (en) 2008-08-04 2010-09-14 Chil Semiconductor Corporation Multi-level signaling
WO2010049218A1 (en) 2008-10-30 2010-05-06 Audioasics A/S A high radix digital multiplier
EP2526492B1 (en) 2010-01-20 2016-01-06 Rambus Inc. Multiple word data bus inversion
US8635262B2 (en) 2010-12-03 2014-01-21 Via Technologies, Inc. Carryless multiplication preformatting apparatus and method
US8934528B2 (en) 2011-03-30 2015-01-13 Silicon Laboratories Inc. Transition interval coding for serial communication
US8984380B2 (en) 2011-07-01 2015-03-17 Altera Corporation Method and system for operating a communication circuit configurable to support one or more data rates
US9240907B2 (en) 2012-02-15 2016-01-19 Broadcom Corporation Transcoding scheme techniques
KR101861550B1 (ko) 2012-02-29 2018-05-29 삼성전자주식회사 다항식 연산을 위한 부분적 발생 장치 및 방법
US9564990B1 (en) 2012-10-16 2017-02-07 Inphi Corporation Pulse amplitude modulation (PAM) data communication with forward error correction
US9942063B2 (en) 2012-10-26 2018-04-10 Altera Corporation Apparatus for improved encoding and associated methods
US8964818B2 (en) 2012-11-30 2015-02-24 Broadcom Corporation Use of multi-level modulation signaling for short reach data communications
US9189051B2 (en) 2012-12-14 2015-11-17 International Business Machines Corporation Power reduction by minimizing bit transitions in the hamming distances of encoded communications
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9210010B2 (en) 2013-03-15 2015-12-08 Apple, Inc. Methods and apparatus for scrambling symbols over multi-lane serial interfaces
US9529749B2 (en) 2013-03-15 2016-12-27 Qualcomm Incorporated Data bus inversion (DBI) encoding based on the speed of operation
DE102013205544A1 (de) 2013-03-28 2014-10-02 Robert Bosch Gmbh Vorrichtung und Verfahren zur Verarbeitung von Daten
US9146707B2 (en) 2013-05-28 2015-09-29 International Business Machines Corporation Generating a fast 3x multiplicand term for radix-8 booth multiplication
US9552325B2 (en) 2013-06-12 2017-01-24 Qualcomm Incorporated Camera control interface extension bus
US10114401B2 (en) 2013-11-18 2018-10-30 Infineon Technologies Ag System and method for a serial bus interface
US9607586B2 (en) 2014-02-18 2017-03-28 Apple Inc. Asymmetric circuitry
US9231704B1 (en) 2014-05-12 2016-01-05 Google Inc. Electrical mitigation of DML nonlinearity for high-speed optical interconnection
US9252997B1 (en) 2014-07-10 2016-02-02 Qualcomm Incorporated Data link power reduction technique using bipolar pulse amplitude modulation
US9184906B1 (en) 2014-09-22 2015-11-10 Oracle International Corporation Configurable pulse amplitude modulation clock data recovery
CN107005508B (zh) 2015-01-08 2020-08-07 华为技术有限公司 数据处理方法和数据处理装置
US9853769B1 (en) 2015-03-09 2017-12-26 Aquantia Corporation High-speed Ethernet coding
US11032397B2 (en) 2015-06-17 2021-06-08 Hewlett Packard Enterprise Development Lp Method and system for high speed data links
US9548858B1 (en) 2016-01-18 2017-01-17 Inphi Corporation Skew management for PAM communication systems
US9853841B1 (en) 2016-06-23 2017-12-26 Huawei Technologies Co., Ltd. Low complexity slicer architectures for N-tap look-ahead decision feedback equalizer (DFE) circuit implementations
US9954576B2 (en) 2016-09-23 2018-04-24 Dell Products, Lp System and method for PAM-4 transmitter bit equalization for improved channel performance
US10164808B2 (en) 2016-09-29 2018-12-25 Viavi Solutions Deutschland Gmbh Test instrument for testing devices internally performing signal conversions
KR102349415B1 (ko) 2017-08-07 2022-01-11 삼성전자주식회사 펄스 진폭 변조 송신기 및 펄스 진폭 변조 수신기
US10594523B2 (en) 2017-12-22 2020-03-17 Tetra Semiconductor Ag Decoder circuit for a broadband pulse amplitude modulation signal
US10491435B2 (en) 2018-03-29 2019-11-26 Nvidia Corp. Unrelaxed 433 encoding to reduce coupling and power noise on PAM-4 data buses
US10599606B2 (en) 2018-03-29 2020-03-24 Nvidia Corp. 424 encoding schemes to reduce coupling and power noise on PAM-4 data buses
DE102019118340A1 (de) 2018-07-20 2020-01-23 Nvidia Corporation Invertierungskodierung für einen bus mit begrenzter hamming-distanz für schnittstellen mit mehreren bytes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5572736A (en) * 1995-03-31 1996-11-05 International Business Machines Corporation Method and apparatus for reducing bus noise and power consumption
CN1483166A (zh) * 2000-11-07 2004-03-17 英特尔公司 采用动态总线倒置来降低同步转换输出噪音的方法和装置
US20090193319A1 (en) * 2008-01-24 2009-07-30 International Business Machines Corporation Data bus system, its encoder/decoder and encoding/decoding method
US20160173134A1 (en) * 2014-12-15 2016-06-16 Intel Corporation Enhanced Data Bus Invert Encoding for OR Chained Buses
CN105740195A (zh) * 2014-12-15 2016-07-06 英特尔公司 Or链式总线的增强数据总线反转编码

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021208647A1 (zh) * 2020-04-17 2021-10-21 苏州库瀚信息科技有限公司 数据传输装置及方法
US11822503B2 (en) 2020-04-17 2023-11-21 Suzhoukuhan Information Technologies Co., Ltd. Data transmission apparatus and method using signal transition

Also Published As

Publication number Publication date
US20200028708A1 (en) 2020-01-23
US10623200B2 (en) 2020-04-14

Similar Documents

Publication Publication Date Title
CN110737620A (zh) 利用多字节接口的限制的汉明距离的总线翻转编码
EP2894571B1 (en) Encoding data using combined data mask and data bus inversion
US10404505B1 (en) Bus-invert coding with restricted weight range for multi-level signaling
US11159153B2 (en) Data bus inversion (DBI) on pulse amplitude modulation (PAM) and reducing coupling and power noise on PAM-4 I/O
US5572736A (en) Method and apparatus for reducing bus noise and power consumption
EP2962472B1 (en) Methods for multi-level data transmission
US10599606B2 (en) 424 encoding schemes to reduce coupling and power noise on PAM-4 data buses
US10491435B2 (en) Unrelaxed 433 encoding to reduce coupling and power noise on PAM-4 data buses
KR20160074677A (ko) 시그널링 전력을 감소시키는 방법들 및 장치
JP2539137B2 (ja) 半導体集積回路チップ
WO2009134568A2 (en) Encoding data with minimum hamming weight variation
US10657094B2 (en) Relaxed 433 encoding to reduce coupling and power noise on PAM-4 data buses
US20200242062A1 (en) Reducing coupling and power noise on pam-4 i/o interface
JPH11509950A (ja) N本未満のi/oピンを伴うnビットのデータバス幅をもつマイクロコントローラ及びそのための方法
CN101771497A (zh) 信号传输方法和装置
US20230108933A1 (en) Method for Performing System and Power Management Over a Serial Data Communication Interface
CN109036328B (zh) 寄存器值传输方法及组件、显示装置
US8391402B2 (en) Process and device for encoding, and associated electronic system and storage medium
US9632883B2 (en) Digital encoding of parallel busses to suppress simultaneous switching output noise
WO2015157627A1 (en) Systems and methods for frequency control on a bus through superposition
US7146443B2 (en) Instruction encoding method for single wire serial communications
US20050120155A1 (en) Multi-bus I2C system
KR100580101B1 (ko) 최상위비트에 의해 제어되는 버스 인버트 코딩 및 디코딩방법과 그 장치
JP2000207073A (ja) バス・システム及び方法
CN104144037A (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