CN103873331A - 用于在芯片上系统中传送数据的方法和电路结构 - Google Patents
用于在芯片上系统中传送数据的方法和电路结构 Download PDFInfo
- Publication number
- CN103873331A CN103873331A CN201310612910.0A CN201310612910A CN103873331A CN 103873331 A CN103873331 A CN 103873331A CN 201310612910 A CN201310612910 A CN 201310612910A CN 103873331 A CN103873331 A CN 103873331A
- Authority
- CN
- China
- Prior art keywords
- data value
- encoded
- memory
- communication
- piece
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明涉及电路结构、方法和程序产品通过至少部分地基于以下选择性地编码排队用于经过通信总线传送的数据值而通过数据总线传输数据以减少对于编码数据值的传送的位转变:被排队以在该数据值之后传送的至少一个数据值以及至少一个先前传送的编码数据值。通过减少在经过数据总线传送的数据中的位转变,同样减少了通信总线的功耗。
Description
技术领域
本发明一般涉及在包括多个互联的处理块(即节点)的计算系统中的数据处理,更具体地涉及并入其中的处理器架构和通信架构。
背景技术
芯片上网络(NOC)是将基于网络的架构应用于单个芯片以创建独特的处理单元的新颖的集成电路架构。通常的NOC包括经由网络彼此耦接的多个集成的处理器(IP)块。NOC处理单元通常将一个工作的各个部分分发(即分配)到一个或多个IP块的不同硬件线程以在NOC处理单元中由该一个或多个IP块执行,其中分发通常包括在NOC的一个或多个硬件线程之间传输包括一个或多个数据字的数据分组。随着预期标准计算机系统中的IP块的数量增加,变得日益需要有效地处理工作量分发。
在许多传统的NOC架构系统中,数据分组通常经过NOC的IP块之间的通信总线/互连而传输。随着其中配置的IP块和硬件线程的数量持续增加,经过NOC的通信总线传送的数据量同样持续增加。IP块的逻辑中的改进已经带来功率有效处理。但是,移动数据、即传送数据分组还没有与传统系统中的功率降低改进保持同步。事实上,在许多传统的处理器中,现在移动数据比对数据进行处理消耗更多功率。
与数据通信相关联的功耗的主要源来自于数据信号在逻辑“1”和逻辑“0”值之间转变,因为通常在大多数NOC架构系统中使用的CMOS逻辑门在逻辑状态之间切换时消耗了大多数功率。因此,随着通信总线的速度增加以及传送的数据量增加,NOC的整体功耗因此增加。
因此,在本领域中存在对于增加芯片上通信的效率的方式的持续需要。
发明内容
本发明通过对要经过通信总线传送(communicate)的数据编码以减少用于传送的位转变并由此减少通信总线中的逻辑门的切换量以及来自这样的切换的相关联的功耗而克服与现有技术相关联的这些以及其他问题。编码是基于历史的和将来的数据传送,使得为特定数据值选择的编码是基于在该数据值之前以及之后传输的数据。
具体地,本发明的实施例至少部分地基于以下选择性地编码数据值:被排队以在该数据值之后传送的至少一个数据值以及先前传送的编码数据值。每个数据值被编码为与该数据值对应的一组可能对编码数据值中的具体编码数据值。通过在传送之前编码数据值以减少传送的数据中的位转变,本发明的实施例减少了通信总线中的逻辑门的切换,其中减少切换又减少了处理器中的功耗。
特征化本发明的这些以及其他优点和特征在附于此并且形成本发明的另一部分的权利要求书中阐述。但是为了更好地理解本发明以及通过对其使用而获得的优点和目标,应该参考附图以及伴随的描述性内容,其中描述了本发明的示例实施例。
附图说明
图1是在符合本发明的实施例的数据处理中有用的包括示例的计算机的示例的自动计算机器的框图。
图2是在图1的计算机中实现的示例NOC的框图。
图3是更详细地例示来自图2的NOC的节点的示例实现方式的框图。
图4是例示来自图2的NOC的IP块的示例实现方式的框图。
图5是可以连接到图2的NOC的通信总线或互连以在NOC中的传送之前编码数据值的传送队列和编码逻辑的框图。
图6A-C是包括可以使用图5的编码逻辑编码和传送的示例的数据值的框图。
图7提供例示了可以由图5的编码逻辑进行的操作序列的流程图。
应该理解,附图不一定是按比例的,给出了例示本发明的实施例的基本原理的各种优选特征的稍微简化的表示。包括例如各种例示的组件的具体尺寸、取向、位置、操作序列和或形状的符合在此公开的本发明的实施例的具体特征将部分地通过特定意图的应用、使用和/或环境而确定。所例示的实施例的某些特征相对于其他特征已经被放大或变形以促进可视化和清晰的理解。
具体实施方式
本发明的实施例提供了用于通过通信总线/互连传送数据的电路结构和方法。被排队以传送的数据值可以至少部分地基于被排队以在其后传送的数据值和先前传送的编码数据值而被选择性地编码为特定被编码数据值。每个数据值被编码为一组可能的被编码值中的特定被编码数据值,其中该特定被编码值减少了用于传送该被编码数据值的位转变的数量。通过选择性地将每个数据值编码到减少位转变的特定被编码值,本发明的实施例由此减少了在传送期间的切换,而这与传送未编码数据值相比可以减少功耗。
硬件和软件环境
现在转向附图,其中在几个视图通篇类似的数字表示类似的部分,图1例示在符合本发明的实施例的数据处理中有用的包括示例的计算机10的示例的自动计算机器。图1的计算机10包括至少一个计算机处理器12或“CPU”以及随机存取存储器14(“RAM”),该随机存取存储器14通过高速存储器总线16和总线适配器18连接到处理器12和计算机10的其他组件。
在RAM14中存储了应用程序20,其是用于实行诸如例如字处理、电子制表、数据库操作、视频游戏、股票市场模拟、原子量子处理模拟或其他用户级应用的特定数据处理任务的用户级计算机程序指令的模块。在RAM14中还存储了操作系统22。结合本发明的实施例可用的操作系统包括UNIXTM、LinuxTM、Microsoft WindowsXPTM、AIXTM、IBM的i5/OSTM、以及本领域技术人员将想到的其他的。图1的例子中的操作系统22和应用20被示出在RAM14中,但是这样的软件的许多组件通常也存储在非易失性存储器中,例如存储在盘驱动器24上。
如以下将变得更显然的,符合本发明的实施例可以实现在芯片上网络(NOC)集成电路设备内或者实现在芯片内,这样,计算机10被例示为包括两个示例的NOC:视频适配器26和协处理器28。或者可以被称为图形适配器的NOC视频适配器26是为了到诸如显示屏幕或计算机监视器的显示设备30的图形输出特别设计的I/O适配器的例子。NOC视频适配器26通过高速视频总线32、总线适配器18和前侧总线34连接到处理器12,该前侧总线34也是高速总线。NOC协处理器28通过总线适配器18和前侧总线34和36连接到处理器12,该前侧总线34和36也是高速总线。图1的NOX协处理器可以被优化为例如在主处理器12的命令(behest)时加速特定数据处理任务。
图1的示例的NOC视频适配器26和NOC协处理器28每个包括NOC,该NOC包括集成的处理器(“IP”)块、路由器、存储器通信控制器和网络接口控制器,以下将结合图2-3更详细地讨论它们的细节。NOC视频适配器和NOC协处理器每个被优化用于使用并行处理并且还需要对共享存储器的快速随机存取的程序。但是,受益于即刻的公开的本领域技术人员将认识到,本发明可以实现在除了NOC设备和设备架构之外的设备和设备架构中。因此本发明不限于在NOC设备内的实现方式。
图1的计算机10包括通过扩展总线40和总线适配器18耦接到处理器12和计算机10的其他组件的盘驱动器适配器38。盘驱动器适配器38以盘驱动器24的形式将非易失性数据存储器连接到计算机10,并且例如可以使用集成驱动电子设备(“IDE”)适配器、小型计算机系统接口(“SCSI”)适配器和本领域技术人员将想到的其他的来实现。非易失性计算机存储器还可以实现为如本领域技术人员将想到的光盘驱动器、电可擦除可编程只读存储器(所谓的“EEPROM”或“快闪”存储器)、RAM驱动器等等。
计算机10还包括一个或多个输入/输出(“I/O”)适配器42,其通过例如用于控制到诸如计算机显示器屏幕的输出以及来自诸如键盘和鼠标的用户输入设备44的用户输入的软件驱动器和计算机硬件实现面向用户的输入/输出。另外,计算机10包括用于与其他计算机48的数据通信和用于与数据通信网络50的数据通信的通信适配器46。这样的数据通信可以通过RS-232连接、通过诸如通用串行总线(“USB”)的外部总线、通过诸如IP数据通信网络的数据通信数据通信网络以及按本领域技术人员将想到的其他方式串行地实行。通信适配器实现硬件级的数据通信,通过该硬件级的数据通信,一个计算机直接地或者通过数据通信网络向另一计算机发送数据通信。适合于用在计算机10中的通信适配器的例子包括用于有线拨号通信的调制解调器、用于有线数据通信网络通信的以太网(IEEE802.3)适配器以及用于无线数据通信网络通信的802.11适配器。
为了进一步说明,图2阐释了根据本发明的实施例呃示例NOC102的功能框图。图2中的NOC实现在“芯片”100上,即实现在集成电路上。NOC102包括被分组为互连结点的集成处理器(“IP”)块104、路由器110、存储器通信控制器106和网络接口控制器108。每个IP块104通过存储器通信控制器106和网络接口控制器108适配到路由器110。每个存储器通信控制器控制IP块和存储器之间的通信,并且每个网络接口控制器108控制通过路由器110的IP块间通信。
在NOC102中,每个IP块表示被用作NOC内的数据处理的构建块的同步或异步逻辑设计的可再使用的单位。术语“IP块”有时被展开为“知识产权块”,有效地指定IP块作为由一方拥有的、作为一方的知识产权的、将被许可给其他用户或半导体电路的设计者的设计。但是,在本发明的范围内,不要求IP块承受任何特定的拥有关系,因此该术语在此说明书中总是被展开为“集成处理器块”。如在此指定的,IP块是可能是或者可能不是知识产权的对象的逻辑、单元或芯片布局设计的可再使用的单位。IP块是可以形成为ASIC芯片设计或者FPGA逻辑设计的逻辑核心。
照此类推描述IP块的一种方式是:IP块是用于NOC设计,库是用于计算机编程的NOC设计,或者离散的集成电路组件是用于印刷电路板设计的NOC设计。在符合本发明的实施例的NOC中,IP块可以实现为一般门网表(netlist)、实现为完整的专用或通用微处理器、或者以本领域技术人员可以想到的其他方式实现。网表是IP块的逻辑-功能的布尔代数表示(门,标准单元),类似于高级编程应用的汇编码列表。NOC还可以以例如在诸如Verilog或VHDL的硬件描述语言中描述的可综合形式实现。除了网表和可综合实现方式之外,还可以以较低级物理描述来陈述(deliver)NOC。诸如SERDES、PLL、DAC、ADC等等的模拟IP块元件可以以诸如GDSII的晶体管布局格式而分布。有时也以布局格式提供IP块的数字元件。还将认识到,IP块以及按照本发明实现的其他逻辑电路可以以计算机数据文件、例如逻辑定义编程码的形式分布,该计算机数据文件以各种细节级别定义实现这样的逻辑的电路结构的功能性和/或布局。因此,尽管已经并且下文中将在实现在全功能的集成电路设备、利用这样的设备的数据处理系统以及其他切实的物理硬件电路中的电路结构的上下文中描述本发明,但是受益于即刻的公开本领域技术普通人员将认识到,本发明也可以实现在程序产品中,并且无论用于分发程序产品的计算机可读存储介质的具体类型如何,本发明同样适用。计算机可读存储介质的例子包括但不限于诸如易失性和非易失性存储器器件、软盘、硬盘驱动器、CD-ROM和DVD(举例而言)的物理的可记录类型的媒体。
图2的例子中的每个IP块104提供存储器通信控制器106适配到路由器110。每个存储器通信控制器是适配为提供在IP块和存储器之间的数据通信的同步和异步逻辑电路的缩写。在IP块和存储器之间的这种通信的例子包括存储器加载指令和存储器存储指令。以下参考图3更详细地描述存储器通信控制器106。每个IP块104还通过网络接口控制器108适配到路由器110,该网络接口控制器108控制在IP块104之间的通过路由器110的通信。IP块之间的通信的例子包括携带数据和用于在并行应用和流水线应用中在IP块之中处理该数据的指令的消息。以下也参考图3更详细描述网络接口控制器108。
路由器110以及在其之间的相应的链路118实现NOC的网络操作。链路119可以是在连接所有路由器的物理的并行电线(wire)总线上实现的分组结构。即,每个链路可以实现在足够宽到同时容纳包括所有的头部信息和有效负荷数据的全部的数据切换分组的电线总线上。如果分组结构包括64字节,例如这包括八字节头部和56字节的有效负荷数据,则对向(subtend)每个链路的电线总线是64字节宽的512条电线。另外,每个链路可以是双向的,以便如果链路分组结构包括64字节,则电线总线实际上包含在每个路由器和网络中的其每个相邻者之间的1024条电线。在这样的实现方式中,消息可以包括多于一个分组,但是每个分组将精确地符合电线总线的宽度。或者,链路可以实现在仅足够宽到容纳一个分组的一部分的电线总线上,使得分组将被拆散为多节(beat),例如以便如果链路被实现为16字节的宽度或者128条电线,则64字节的分组可以被拆分为四节。将认识到,不同的实现方式可以基于实际的物理限制以及期望的性能特性而使用不同的总线宽度。如果路由器和电线总线的每部分之间的连接被称为端口,则每个路由器将包括五个端口,对于网络上的四个方向的数据传输的每个方向一个端口,第五个端口用于通过存储器通信控制器和网络接口控制器将该路由器适配到特定IP块。
每个存储器通信控制器106控制IP块和存储器之间的通信。存储器可由包括芯片外主RAM112、通过存储器通信控制器106直接连接到IP块存储器114、被使能为IP块的芯片上存储器116以及芯片上缓存器。在NOC102中,芯片上存储器114或116例如可以实现为芯片上缓存存储器。所有这些形式的存储器可以布置在相同的地址空间中,无论是网络地址还是虚拟地址,甚至对于直接附连到IP块的存储器也成立。存储器被寻址消息因此相对于IP块可以完全是双向的,因为这样的存储器可以从网络上任意位置处的IP块直接寻址。IP块上的存储器116可以从该IP或者从NOC中的任何其他IP块被寻址。直接附连到存储器通信控制器的存储器114可以由通过该存储器通信控制器适配到网络的IP块来寻址——并且也可以从NOC中的任意位置处的任何其他IP块寻址。
NOC102包括两个存储器管理单元(“MMU”)120、122,例示了对于符合本发明的实施例的NOC的两个交替的存储器架构。MMU120实现在IP块内,允许该IP块内的处理器在虚拟存储器中操作,同时允许该NOC的全部其余架构在物理存储器地址空间中操作。MMU122实现在芯片外,通过数据通信端口124连接到NOC。端口124包括在NOC和MMU之间传导信号所需的管脚和其他互连以及将消息分组从NOC分组格式转换为外部MMU122要求的总线格式的足够的智能。MMU的外部位置意味着NOC的所有IP块中的所有处理器可以操作在性能存储器地址空间中,到芯片外存储器的物理地址的所有转换由芯片外MMU122处理。
除了通过使用MMU120、122例示的两个存储器架构之外,数据通信端口126例示了在能够在本发明的实施例中利用的NOC中有用的第三存储器架构。端口126提供了在NOC102的IP块104和芯片外存储器112之间的直接连接。在处理路径中没有MMU,此架构提供了NOC的所有IP块对物理地址空间的利用。在双向共享地址空间时,NOC的所有IP块可以直接通过直接连接到端口126的IP块通过包括加载和存储的存储器被寻址消息来存取地址空间中的存储器。端口126包括在NOC和芯片外存储器1212之间传导信号所需的管脚和互连以及将消息分组从NOC分组格式转换为芯片外存储器112要求的总线格式的足够的智能。
在图2的例子中,IP块之一被指定为主机接口处理器128.主机接口处理器128提供在NOC和该NOC可以安装在其中的主机计算机10之间的接口,并且还向该NOC上的其他IP块提供数据处理服务,包括例如在NOC的IP块滞洪接收和分派来自主机计算机的数据处理请求。例如,NOC可以在如以上参考图1所述的更大的计算机10上实现视频图形适配器26或者协处理器28。在图2的例子中,主机接口处理器128通过数据通信端口130连接到该更大的主机计算机。端口130包括在NOC和主机计算机之间传导信号所需的管脚和其他互连以及将消息分组从NOC转换为主机计算机10要求的总线格式的足够的智能。在图1的计算机中的NOC协处理器的例子中,这样的端口将提供在NOC协处理器28的链路结构和NOC协处理器28与总线适配器18之间的前侧总线36所需的协议之间的数据通信格式翻译。
图3接下来例示更详细地例示了在NOC102中的IP块104、存储器通信控制器106、网络接口控制器108和路由器110内实现的组件的功能框图,它们一起被例示在132,132可以被称为节点或硬件线程。IP块104包括计算机处理器134和I/O功能性136。在此例子中,计算机存储器由IP块104中的随机存取存储器(“RAM”)138的一段表示。如以上参考图2所述的,存储器可以占据物理地址空间的段,在每个IP块上的这些段的内容可从NOC中的任意IP块寻址和存取。每个IP块中的处理器134、I/O能力136以及存储器138将IP块有效地实现为通常可编程的微计算机。但是,如上所述,在本发明的范围内,IP块通常表示被用作用于NOC内的数据处理的构建块的同步或异步逻辑的可再使用的单位。因此将IP块实现为通常可编程的微计算机尽管是为了说明的目的而有用的普通实施例,但是不是对本发明的限制。
在图3的NOC102中,每个存储器通信控制器106包括多个储存器通信执行引擎140。每个存储器通信执行引擎140被使能以执行来自IP块140的存储器条新指令,包括在网络和IP块104之间的双向存储器通信指令流141、142、144。存储器通信控制器执行的存储器通信指令不仅可以源自经过特定存储器通信控制器适配到路由器的IP块,而且可以源自NOC102中的任意位置处的任意IP块104。即,NOC中的任意IP块可以产生存储器通信指令并将该存储器通信指令经过NOC的路由器传输到与另一IP块相关联的另一存储器通信控制器,用于执行该存储器通信指令。这样的存储器通信指令可以包括例如翻译后备(lookaside)缓冲器控制指令、缓存控制指令、屏障指令和存储器加载和存储指令。
每个存储器通信执行引擎140被使能以与其他存储器通信执行引擎分离地并且并行地执行完整的存储器通信指令。存储器通信执行引擎实现对存储器通信指令的并发的吞吐量优化的可升级的(scalable)存储器业务处理器。存储器通信控制器106支持其所有同时运行的多个储存器通信执行引擎140,用于多个存储器通信指令的同时执行。新的存储器通信指令由存储器通信控制器106分配给存储器通信引擎140,并且存储器通信执行引擎140可以同时接受多个响应事件。在此例子中,所有的存储器通信执行引擎140是相同的。因此通过增减(scale)存储器通信执行引擎140的数量来实现增减存储器通信控制器106可以同时处理的存储器通信指令的数量。
在图3的NOC102中,每个网络接口控制器108被使能以将通信指令从命令格式转换为网络分组格式,用于通过路由器110在IP块104之间传输。通信指令可以由IP块104或者由存储器通信控制器106以命令格式公式化,并且以命令格式提供给网络接口控制器108。命令格式可以是符合IP块和存储器通信控制器106的架构寄存器文件的原始格式。网络分组格式通常是用于通过网络的路由器110传输所要求的格式。每个这样的消息由一个或多个网络分组组成。在网络接口控制器中从命令格式转换为分组格式的这样的通信指令的例子包括在IP块和存储器之间的存储器加载指令和存储器存储指令。这样的通信指令还可以包括在IP块之间发送消息的通信指令,该通信指令携带数据和用于在并行应用中和在流水线应用中在IP块之中处理该数据的指令。
在图3的NOC102中,每个IP块被使能以通过IP块的存储器通信控制器向和从存储器以及然后还通过其网络接口控制器向网络发送基于存储器地址的通信。基于存储器地址的通信是由IP块的存储器通信控制器的存储器通信执行引擎执行的存储器存取指令,比如加载指令或存储指令。这样的基于存储器地址的通信通常源自IP块中,以命令格式公式化,并且被移交(handoff)到存储器通信控制器用于执行。
许多基于存储器地址的通信伴有消息流量地被执行,因为要存储的任意存储器可能位于物理存储器地址空间中的任意位置处,芯片上或者芯片外、直接附连到NOC中的任意存储器通信控制器或者最终通过NOC的任意IP块而访问——无论任意特定的基于存储器地址的通信源自哪个IP块。因此,在NOC102中,伴有消息流量而执行的所有基于存储器地址的通信从存储器通信控制器传递到相关联的网络接口控制器用于从命令格式转换为分组格式并且在消息中通过网络传输。在转换为分组格式时,网络接口控制器还标识依赖于要由基于存储器地址的通信存取的一个或多个存储器地址的分组的物理地址。利用存储器地址寻址基于存储器地址的消息。每个存储器地址由存储器通信控制器映射到物理地址,通常是负责某个范围的物理存储器地址的存储器通信控制器的网络位置。存储器通信控制器106的网络位置自然也是该存储器通信控制器的相关联的路由器110、网络接口控制器108和IP块104的网络位置。为了通过NOC的路由器传输基于存储器地址的通信的目的,每个网络接口控制器内的指令转换逻辑150能够将存储器地址转换为物理地址。
在接收到来自网络的路由器110的消息流量时,每个网络接口控制器108为了存储器指令而检查每个分组。包含存储器指令的每个分组被移交到与接收的网络接口控制器相关联的存储器通信控制器106,该存储器通信控制器106在将该分组的其余有效负荷发送到IP块用于进一步处理之前执行该存储器指令。以此方式,在IP块开始执行来自消息的依赖于特定存储器内容的指令之前,总是准备好存储器内容以支持该IP块的数据处理。
在图3的NOC102中,每个IP块104被使能以绕过(bypass)其存储器通信控制器106并将IP块之间的网络寻址的通信146通过IP块的网络接口控制器108直接发送到网络。网络寻址的通信是通过物理地址导向另一IP块的消息。这样的消息传输如本领域技术人员将想到的流水线应用中的工作数据、用于SIMD应用中的IP块之中的单个程序处理的多个数据等等。这样的消息不同于基于存储器地址的通信在于它们从开始就是由知道该消息要通过NOC的路由器导向的网络地址的发起IP块来网络寻址的。这样的网络寻址的通信以命令格式由IP块通过I/O功能136直接传递到IP块的网络接口控制器,然后由网络接口控制器转换为分组格式并通过NOC的路由器传输到另一IP块。这样的网络寻址的通信146是双向的,依赖于其在任何特定应用中的使用,有可能向和从NOC的每个IP块继续。但是,每个网络接口控制器被使能以向相关的路由器发送和从该相关联的路由器接收这样的通信,并且每个网络接口控制器被使能以直接向相关联的IP块发送以及从该相关联的IP块接收这样的通信,绕过相关联的存储器通信控制器106。
图3的例子中的每个网络接口控制器108还被使能以实现网络上的虚拟信道,通过类型来特征化网络分组。每个网络接口控制器108包括虚拟信道实现逻辑148,其通过类型对每个通信指令分类并在将指令以分组形式移交给路由器110用于在NOC上传输之前将指令的类型记录在网络分组格式的字段中。通信指令类型的例子包括IP块间基于网络地址的消息、请求消息、对请求消息的响应、导向缓存的无效消息、存储器加载和存储消息、以及对存储器加载消息的响应等等。
图3的例子中的每个路由器110包括路由逻辑152、虚拟信道控制逻辑154和虚拟信道缓冲器156。路由逻辑通常实现为同步和异步逻辑的网络,该同步和异步逻辑的网络实现用于在由路由器110、链路118和路由器之间的总线电线形成的网络中的数据通信的数据通信协议堆栈(stack)。路由逻辑152包括本领域技术人员的读者可以将芯片外网络与路由表相关联的功能性,在至少一些实施例中该路由表被认为对于用在NOC中来说太慢并且太麻烦。实现为同步和异步逻辑的网络的路由逻辑可以配置为像单个时钟周期那样快地做出路由决定。此例子中的路由逻辑通过选择用于转发在路由器中接收的每个分组的端口来路由分组。每个分组包含该分组将被路由到的网络地址。
在以上描述基于存储器地址的通信时,每个存储器地址被描述为由网络接口控制器映射到网络地址,即存储器通信控制器的网络位置。存储器通信控制器106的网络位置自然也是该存储器通信控制器的相关联的路由器110、网络接口控制器108和IP块104的网络位置。因此,在IP块间的或者经由网络地址的通信中,应用级数据处理还通常将网络地址看作是IP块在由NOC的路由器、链路和总线电线形成的网络内的位置。图2例示了这样的网络的一个组织是行和列的网(mesh),其中每个网络地址可以被实现为例如对于该网的每组相关联的路由器、IP块、存储器通信控制器和网络接口控制器的唯一标识符或者该网中的每个这样的组的x、y坐标。
在图3的NOC102中,每个路由器110实现两个或多个虚拟性通信信道,其中每个虚拟通信信道由通信类型来特征化。通信指令类型以及因此的虚拟信道类型包括以上提到的那些:IP块间基于网络地址的消息、请求消息、对请求消息的响应、导向缓存的无效消息、存储器加载和存储消息、以及对存储器加载消息的响应等等。支持虚拟信道,图3的例子中的每个路由器110还包括虚拟信道控制逻辑154和虚拟信道缓冲器156。虚拟信道控制逻辑154为了美国接受的分组的被分配的通信类型而检查每个接收的分组并将每个分组放置在对于该通信类型的外发的(outgoing)虚拟信道缓冲器中用于经过端口传输到NOC上的相邻路由器。
每个虚拟信道缓冲器156具有有限的存储空间。当在短时间内接收到许多分组时,虚拟信道缓冲器可能填满——使得不再有分组能放在该缓冲器中。在其他协议中,到达其缓冲器已满的虚拟信道的分组将被丢弃。但是,在此例子中的每个虚拟信道缓冲器156通过总线电线的控制信号被使能以通过虚拟信道控制逻辑建议周围的路由器暂停在虚拟信道中的传输,即暂停特定通信类型的分组的传输。当一个虚拟信道这样暂停时,所有其他虚拟信道不受影响——并且可以继续以全部容量操作。控制信号被电线传导经过每个路由器一直回到每个路由器的相关联的网络接口控制器108。每个网络接口控制器配置为在接收到这样的信号时拒绝从其相关联的存储器通信控制器106或从其相关联的IP块104接受对于暂停的虚拟信道的通信指令。以此方式,虚拟信道的暂停影响实现该虚拟信道的所有硬件,一直回到发起的IP块。
暂停虚拟信道中的分组传输的一个影响是从不丢弃分组。当路由器遇到其中在诸如例如因特网协议的某些不可靠的协议中分组可能被丢弃的情况时,图3的例子中的路由器可以通过其虚拟信道缓冲器156及其虚拟信道控制逻辑154暂停虚拟信道中的所有分组的传输直到缓冲器空间再次可用,消除了丢弃分组的任何需要。图3的NOC因此可以用极薄的硬件层实现高度可靠的网络通信协议。
图3的示例NOC还可以配置为维持芯片上和芯片外存储器缓存之间的缓存一致性。每个NOC可以支持多个缓存,每个缓存针对相同的下层存储器地址空间而操作。例如,缓存可以由IP块、存储器通信控制器或者NOC外部的缓存控制器来控制。在图2的例子中的芯片上存储器114、116的任意一个还可以实现为芯片上缓存,并且在本发明的范围内,缓冲存储器也可以实现在芯片外。
图3所示的每个路由器110包括五个端口,四个端口158A-D通过总线电线118连接到其他路由器,并且第五端口160通过网络接口控制器108和存储器通信控制器106将每个路由器连接到其相关联的IP块104。如从图2和图3中的例示可以看出的,NOC102的路由器110和链路118形成具有连接每个路由器中的垂直和水平端口的垂直和水平链路的网状网络。在图3的例示中,例如,端口158A、158C和160被称为垂直端口,端口158B和158D被称为水平端口。
接下来图4以另一方式例示符合本发明的IP块104的一个示例实现方式,该IP块104被实现为划分成指令单元(IU)162、执行单元(XU)164和辅助执行单元(AXU)166的处理元件。在所示的实现方式中,IU162包括接收来自L1指令缓存(iCACHE)170的指令的多个指令缓冲器168。每个指令缓冲器168专用于多个、例如四个对称的多线程(SMT)硬件线程之一。有效到真实翻译单元(iERAT)172耦接到iCACHE170,并且用于将来自多个线程取得排序器174的指令取得请求翻译为用于从较低阶存储器取回指令的真实地址。每个线程取得排序器174专用于特定硬件线程,并且用于确保取得要由相关联的线程执行的指令到iCACHE中用于分派到适当的执行单元。还如图4所示,取到指令缓冲器168中的指令还可以由分支预测逻辑176监视,该分支预测逻辑176提供到每个线程取得排序器174的提示以最小化在执行线程时由分支导致的指令缓存丢失。
IU162还包括专用于每个硬件线程并且配置为解决依赖性以及扩展从指令缓冲器168向XU164发出指令的依赖性/发出逻辑块178。另外,在所示的实施例中,分开的依赖性/发出逻辑180被提供在AXU166中,因此使得分开的指令能够由不同的线程发出到XU164和AXU166。在一个替换实施例中,逻辑180可以布置在IU162中或者可以完全省略,使得逻辑178向AXU166发出指令。
XU164被实现为固定点执行单元,包括耦接到固定点逻辑184的一组通用寄存器(GRP)182、分值逻辑186和加载/存储逻辑188。加载/存储逻辑188耦接到L1数据缓存(dCACHE)190,有效到真实翻译由dERAT192提供。XU164可以配置为实际上实现任何指令集,例如32b或64b PowerPC指令集的所有或一部分。
AXU166操作为包括专用的依赖性/发出逻辑180与一个或多个执行块194的辅助执行单元。AXU166可以包括任意数量的执行块,并且可以实际实现任意类型的执行单元,例如浮置点单元或者诸如加密/解密单元、协处理器、向量处理单元、图形处理单元、XML处理单元等等的一个或多个专用执行单元。在所示的实施例中,AXU166包括到XU164的高速辅助接口,例如以支持在AXU体系状态和XU体系状态之间的直接移动。
可以经由耦接到NOC102的网络接口控制器108按以上结合图2所述的方式来管理与IP块104的通信。可以与基于消息的通信一起提供例如用于存取L2缓存存储器的基于地址的通信。例如,每个IP块104可以包括专用的收信箱(in box)和/或发信箱(out box)以便处理在IP块之间的节点间通信。
本发明的实施例可以实现在以上结合图1-4所述的硬件和软件环境内。但是,受益于即刻的公开的本领域技术人员将认识到,本发明可以实现在许多不同的环境中,并且不脱离本发明的精神和范围可以对上述的硬件和软件实施例做出其他修改。这样,本发明不限于在此公开的特定硬件和软件环境。
芯片级编码的数据通信
现在转向图5,此图提供了例示可以配置在图2的NOC102、IP块104和/或路由器110中的组件的框图。如所示,传送队列202可以存储被排队用于经过连接的通信总线206传送的数据值204a-c(也标记为“数据值X”到“数据值X+N”)。通常,“数据值X”204a对应于要经过通信总线206传送的第一数据值,“数据值X+1”204b到“数据值X+N”204c对应于被排队以在第一数据值104a之后传送的数据值。传送队列202连接到编码逻辑208,其中该编码逻辑可以与存储先前经过通信总线206传送的被编码值210a、b(也标记为“编码值X-1”到“编码值X-N”)的存储器相关联。符合本发明的实施例,编码逻辑208可以连接到传送队列202和/或通信总线206,并且编码逻辑208可以配置为至少部分地基于一个或多个先前传送的编码值210a、b以及被排队以其后传送的一个或多个数据值204b、c在传送之前编码数据值(例如数据值X206a)。
符合本发明的实施例,编码逻辑208可以分析一个或多个先前传送的编码值210a、b以及被排队以在第一数据值206a之后传送的一个或多个数据值204b、c,并且确定对于第一数据值204a的编码值,并且在一些实施例中,还确定对于随后的数据值204b的编码值以便在传送第一数据值204a和被排队以在其后传送的至少一个其他数据值204b时减少位转变。通常,在通信总线206上传送之前,数据值可以被编码逻辑208编码为来自一组可能的编码值的具体编码值。这样,在本发明的实施例中,编码逻辑分析第一数据值204a、一个或多个先前传送的编码值210a、b以及被排队以在其后传送的一个或多个数据值210a、b,以确定对于第一数据值204a的来自该组可能的编码值的具体编码值。编码逻辑208编码第一数据值206a以产生该具体编码值,并且该具体编码值可以经过通信总线206传送。
编码逻辑208可以包括转变计数逻辑212,该转变计数逻辑212配置为确定在至少一个先前传送的编码值210a、对于第一值204a的每个可能的编码值和/或对于被排队以在第一数据值204a之后传送的至少一个数据值204v的每个可能的编码值之间的位转变的数量。例如,转变计数逻辑212可以包括“异或”(XOR)逻辑,该异或逻辑将对于第一数据值204a的每个可能的编码值的每位与先前传送的编码值210a中的相应位和对于随后排队的数据值204b的每个可能的编码值中的相应位相比较以确定对于每个比较的位转变的数量。至少部分地基于对于第一数据值204a的每个可能的编码值、先前传送的编码值210a以及随后排队的数据值204b的每个可能的编码值确定的位转变的数量,编码逻辑208将第一数据值204a编码为来自该组可能的编码值的具体编码值。
图6A-C提供传送队列202以及包括对于第一数据值204a“00000000”、随后排队的数据值(即第二数据值)204b“10100101”以及先前传送的编码值210a“0000000000”的示例值的编码逻辑208的框图。转向图6A,在此例子中,编码逻辑208配置为对第一数据值204a和第二数据值204进行8/10编码,其中8/10编码可以将每个8位数据值204a、b编码为10位的四个可能的编码值中的任意一个。在此例子中,可以使用8/10编码来编码第一数据值204a以产生四个10位可能的编码值220a-d,并且可以使用8/10编码来编码第二数据值104b以产生四个10位可能的编码值222a-d。
如所述,在本发明的一些实施例中,转变计数逻辑212可以分析第一数据值204a和先前传送的编码值210a的每个可能的编码值以确定对于每个可能的编码值和先前传送的编码值210a的位转变的数量。如图6B所示,转变计数逻辑212可以将先前传送的编码值210a的每位与第一数据值204a的每个可能的编码值220a-d相比较以确定在先前传送的编码值210a和对于第一数据值204a的每个可能的编码值220a-d之间的位转变240a-d的数量。因此,如图6B所示,对于第一数据值的“0000000000”的编码值220a,从先前传送的值“0000000000”的转变的数量是零,因为数字是一致的。但是,对于“1111100000”和“0000011111”的编码值220b、200c,转变的数量是五,因为五个位从“0”切换到“1”。同样,对于“1111111111”的编码值220d,转变的数量是十,因为所有十个位从“0”切换到“1”。
此外,转变计数逻辑212可以配置为确定在对于第一数据值204a的每个可能的编码值和对于第二数据值204b的每个可能的编码值之间的位转变的数量(因为在这点上,对于第二数据值的编码值还没有确定)。在图6C中,转变计数逻辑212可以将对于第一数据值204a的第一可能的编码值220a的每位与第二数据值204b的每个可能的编码值的相应位相比较以确定在其之间的位转变242a-d的数量。转变计数逻辑212进行类似的分析以确定:在第一数据值204a的第二可能的编码值220b和第二数据值204b的每个可能的编码值222a-d之间的位转变244a-d的数量、在第一数据值204a的第三可能的编码值220c和第二数据值204b的每个可能的编码值222a-d之间的位转变246a-d的数量、以及在第一数据值204a的第四可能的编码值220d和第二数据值204b的每个可能的编码值222a-d之间的位转变248a-d的数量。
基于所确定的在先前传送的编码值210a和对于第一数据值204a的可能的编码值220a-d之间的位转变240a-d的数量以及所确定的在第一数据值204a的每个可能的编码值220a-d和第二数据值204b的每个可能的编码值222a-d之间的位转变242a-d、244a-d、246a-d以及248a-d的数量,编码逻辑28可以将第一数据值204a编码为可能的编码值220a-d中的具体编码值,使得当通过通信总线206传送第一数据值204a的具体编码值以及随后的数据值时可以进行预测的最小数量的位转变。此外,在编码了第一数据值204a之后,编码逻辑208可以将第二数据值204b编码为可能的编码值222a-d中的具体编码值,使得当通过通信总线206传送第二数据值204b的具体编码值时可以进行最小数量的位转变。在此例子中,编码逻辑可以将第一数据值204a编码为第一可能的编码值220a,因为在先前传送的编码值210a之间的预测的位转变240a将是0,并且在第一可能的编码值220a和对于第二值的可能的编码值222a-d之间的预测的位转变包括最少数量的位转变242a(即4)的可能性。
通常,本发明的实施例基于预测的位转变的数量选择性地编码第一数据值和随后的数据值。但是,传送队列202持续地加载新的数据值,使得编码逻辑208持续地分析和确定对于排队的数据值的可能的编码值的位转变的数量。这样,编码逻辑通常基于对于加载的数据值的预测的位转变的数量将数据值编码为具体编码值。例如,尽管对于第二数据值204b的可能的编码值222a对应于最少数量的位转变242a,但是如果使用不同的可能的编码值222b-d对于在第二数据值之后排队的数据值的可能的编码值的位转变的数量将进行更少的位转变,则编码逻辑可以不一定要将第二数据值204b编码为与最少数量的位转变对应的可能的编码值222a。因此,在传送队列202加载用于传送的新的数据值时,编码逻辑208持续地分析和确定对于可能的编码值的位转变的数量,并且编码逻辑208基于传送队列202的当前状态以及先前传送的编码值210a在传送之前选择性地编码数据值。
图7提供流程图300,该流程图300提供当通过通信总线和/或互连传送数据值时可以由本发明的实施例进行的操作的序列。编码逻辑可以连接到传送队列,该传送队列连接到通信总线/互连,并且编码逻辑可以分析存储在传送队列中的数据值以及先前传送的编码值以在通过通信总线传送数据值之前编码数据值,以减少在传送中的位转变的数量。
具体地,该编码逻辑可以分析被排队要传送的数据值(即“数据值X”,第一数据值)、被排队以在第一数据值之后传送的数据值(即,“数据值X+1”,第二数据值)以及在第一数据值之前传送了的编码值(即传送的编码值)(块302)以确定第一和第二数据值的可能的编码值(块304)。此外,该编码逻辑可以确定在先前传送的编码值和第一数据值的每个可能的编码值之间的以及还有在第一数据值的每个可能的编码值和第二数据值的每个可能的编码值之间的位转变的数量(块306)。
至少部分地基于确定的位转变,编码逻辑可以将第一数据值编码为对于第一数据值的可能的编码值中的特定的编码值(块308)。通常,该编码逻辑将第一数据值编码为具体编码值使得数据可以用最少数量的位转变通过通信总线传送。因此,编码逻辑确定先前传送的编码值和第一数据值的可能的编码值之间的位转变以及在第一数据值多可能的编码值和第二数据值的可能的编码值之间的位转变的数量,并且至少部分地基于确定的位转变的数量,第一数据值被编码为具体编码值。可以传送第一数据值的编码值(块310),并且可以对于传送队列中的下一数据值重复该处理(块312)。
这样,本发明的实施例通过通信总线或互连传送数据值之前编码该数据值。例如,本发明的实施例可以进行8/10编码以由此将8位的数据值编码为10位编码值并且通过通信总线和/或互连传送编码值。通常,每个数据值与多个可能的编码值相关联,并且至少部分地基于在该数据之前传送的编码值以及排队以在其之后传送的数据值将该数据值编码为具体编码值。本发明的实施例至少部分地基于传送每个可能的编码值以及可能的随后的编码值将进行的位转变的数量将每个数据值编码为多个可能的编码值中的具体编码值。通过基于至少一个随后排队的数据值和先前传送的数据值在传送之前选择性地编码数据值,本发明的实施例由此可以减少在配置在诸如并入了NOC架构的芯片处理单元上的系统的处理系统中的通信逻辑中的晶体管切换。而与不编码而传送数据值相比,减少晶体管切换可以减少在处理系统中传送数据值时的功耗。
因此,本发明的实施例选择性地将数据值编码为与相对其他可能的编码值的低数量的位转变和/或最小数量的位转变对应的具体编码值。但是,因为本发明的实施例预先准备(look ahead)随后排队的数据值,当分析随后的排队的数据值的可能的编码值时,排队的数据值可能被编码为不与相对于其他可能的编码值的最小数量的位转变对应、而是与较低数量的位转变对应的具体编码值。在传送编码数据值时,通过将在传送之前的数据值选择性地编码为来自一组可能的编码值中的与最低数量的位转变对应的具体编码值。因为可以从传送队列持续地传送数据值,本发明的实施例分析第一数据值以及一个或多个随后排队的数据值以及先前传送的编码值(即传送的上一个编码值)以确定数据值应该被编码为的、使得位转变最小化的具体编码值。但是,因为在传送数据值时传送队列通常在加载新的数据值,所以可能不能达到最小数量的位转变,而是当传送数据值时,本发明的实施例将数据值编码为较低数量的位转变。
将认识到,在例示的实施例中使用了8/10编码,但是本发明可以结合其他宽度的解码和/或编码值而使用,其中解码的值可以由多于一个编码值表示。因此,本发明不限于在此讨论得特定编码算法。
另外的优点和修改对于本领域技术人员将是非常显然的。因此,以其较宽方面的本发明因此不限于示出和描述的具体细节、表示的装置和方法以及例示的例子。特别是,根据本发明的原理,以上流程图的任意的块可以删除、增加、使得与另一块同时、组合或者另外更改。因而,可以脱离这些细节而不脱离申请人的一般发明改变的精神或范围。
Claims (18)
1.一种用于在芯片上系统中传送数据的方法,该系统包括通过总线通信的多个IP块,该方法包括:
对于被排队以通过总线传送的第一数据值确定四个可能的编码值以及对于被排队以在该第一数据值之后传送的第二数据值确定四个可能的编码的数据,其中第一数据值和第二数据值是8位的,而编码值是10位的;
确定在用于第一数据值的四个可能的编码值的每个和先前通过总线传送的编码值之间的位转变的数量;
确定在用于第一数据值的四个可能的编码值的每个和用于第二数据值的四个可能的编码值之间的位转变的数量;
使用8/10编码将第一数据值编码为用于第一数据值的四个可能的编码值中的具体编码值,其中该具体编码值对应于在先前传送的编码值和用于第二数据值的四个可能的编码值之间的最少数量的位转变;以及
通过总线传送该具体编码值。
2.一种用于传送数据的方法,该方法包括:
至少部分地基于被排队以在该数据值之后传送的至少一个数据值以及至少一个先前传送的编码数据值,选择性地编码用于传送的数据值,以减少用于编码数据值的传送的位转变;以及
传送选择性地编码数据值。
3.如权利要求2的方法,其中选择性地编码用于传送的数据值包括:
将每个数据值编码为用于该数据值的一组可能的编码值中的具体编码数据值,其中该具体编码数据值对应于在该具体编码数据值、先前传送的编码数据值和被排队以在该数据值之后传送的数据值的可能的编码数据值之间的最低数量的位转变。
4.如权利要求3的方法,其中选择性地编码数据值包括:
确定在该数据值的每个可能的编码值和被排队以在该数据值之后传送的至少一个数据值的每个可能的编码值之间的位转变的数量。
5.如权利要求4的方法,其中选择性地编码数据值包括:
确定在该数据值的每个可能的编码数据值和先前传送的编码数据值之间的位转变的数量。
6.如权利要求5的方法,其中选择性地编码数据值包括:
至少部分地基于在该具体编码数据值和被排队以在该数据值之后传送的至少一个数据值的可能的编码值之间的位转变的数量以及在该具体编码数据值和先前传送的编码数据值之间的位转变的数量,将每个数据值编码为与该数据值相关联的一组可能的编码数据值中的具体编码数据值。
7.如权利要求2的方法,其中数据值包括8位,并且选择性地编码数据值包括:
将每个8位数据值编码为10位编码数据值,其中每个8位数据值对应于四个可能的10位编码数据值。
8.如权利要求2的方法,还包括:
响应于传送编码数据值,将每个编码数据值存储在与先前传送的编码数据值对应的存储器中。
9.如权利要求2的方法,其中在芯片上系统的互联的IP块之间传送数据值。
10.一种电路结构,包括:
传送队列,配置为存储用于传送的数据值;
通信总线;以及
编码逻辑,连接到所述传送队列和所述通信总线,并且配置为至少部分地基于被排队以在该数据值之后传送的至少一个数据值以及至少一个先前传送的编码数据值,选择性地编码用于经过通信总线传送的数据值以减少对于编码数据值的传送的位转变。
11.如权利要求10的电路结构,其中所述编码逻辑配置为通过以下选择性地编码数据值:
将每个数据值编码为对于该数据值的一组可能的编码值中的具体编码数据值,其中该具体编码数据值对应于在该具体编码数据值、先前传送的编码数据值和被排队以在该数据值之后传送的数据值的可能的编码值之间的最低数量的位转变。
12.如权利要求11的电路结构,其中所述编码逻辑包括转变计数逻辑,该转变计数逻辑配置为确定在该数据值的每个可能的编码值和被排队以在该数据值之后传送的至少一个数据值的每个可能的编码值之间的位转变的数量。
13.如权利要求12的电路结构,其中所述编码逻辑还配置为确定在该数 据值的每个可能的编码数据值和先前传送的编码数据值之间的位转变的数量。
14.如权利要求13的电路结构,其中所述编码逻辑配置为通过以下方式选择性地编码数据值:
至少部分地基于在该具体编码数据值和被排队以在该数据值之后传送的至少一个数据值的可能的编码值之间的位转变的数量以及在该具体编码数据值和先前传送的编码数据值之间的位转变的数量,将每个数据值编码为与该数据值相关联的一组可能的编码数据值中的具体编码数据值。
15.如权利要求10的电路结构,其中数据值包括8位,并且所述编码逻辑配置为通过以下方式选择性地编码数据值:
将每个8位数据值编码为10位编码数据值,其中每个8位数据值对应于四个可能的10位编码数据值。
16.如权利要求10的电路结构,其中所述编码逻辑包括用于存储先前传送的编码数据值的存储器,以及其中所述编码逻辑还配置为响应于传送编码数据值,将每个编码数据值存储在该存储器中。
17.如权利要求10的电路结构,还包括:
连接到通信总线的多个IP块,其中所述编码逻辑耦接到所所多个IP块中的第一IP块,并且编码数据值经过通信总线传送到第二IP块。
18.一种集成电路设备,包括权利要求10的电路结构。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/714,796 US9189051B2 (en) | 2012-12-14 | 2012-12-14 | Power reduction by minimizing bit transitions in the hamming distances of encoded communications |
US13/714,796 | 2012-12-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103873331A true CN103873331A (zh) | 2014-06-18 |
CN103873331B CN103873331B (zh) | 2017-07-28 |
Family
ID=50911474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310612910.0A Active CN103873331B (zh) | 2012-12-14 | 2013-11-27 | 用于在芯片上系统中传送数据的方法和电路结构 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9189051B2 (zh) |
CN (1) | CN103873331B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718390A (zh) * | 2014-12-18 | 2016-06-29 | 英特尔公司 | 共享存储器链路中的低功率进入 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8471532B2 (en) | 2002-11-22 | 2013-06-25 | Milwaukee Electric Tool Corporation | Battery pack |
US7589500B2 (en) | 2002-11-22 | 2009-09-15 | Milwaukee Electric Tool Corporation | Method and system for battery protection |
US9577618B2 (en) * | 2012-12-20 | 2017-02-21 | Advanced Micro Devices, Inc. | Reducing power needed to send signals over wires |
US20150081932A1 (en) * | 2013-09-19 | 2015-03-19 | Karthik Ramani | Scheduling, in-memory coding, data wire matching, and wire placement for wire power reduction |
US9270417B2 (en) * | 2013-11-21 | 2016-02-23 | Qualcomm Incorporated | Devices and methods for facilitating data inversion to limit both instantaneous current and signal transitions |
US10657094B2 (en) | 2018-03-29 | 2020-05-19 | Nvidia Corp. | Relaxed 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 |
US11159153B2 (en) | 2018-03-29 | 2021-10-26 | Nvidia Corp. | Data bus inversion (DBI) on pulse amplitude modulation (PAM) and reducing coupling and power noise on PAM-4 I/O |
US11966348B2 (en) | 2019-01-28 | 2024-04-23 | Nvidia Corp. | Reducing coupling and power noise on PAM-4 I/O interface |
US10623200B2 (en) | 2018-07-20 | 2020-04-14 | Nvidia Corp. | Bus-invert coding with restricted hamming distance for multi-byte interfaces |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1649405A (zh) * | 2004-01-26 | 2005-08-03 | 松下电器产业株式会社 | 格式变换装置以及格式变换方法 |
US20070217312A1 (en) * | 2005-10-14 | 2007-09-20 | Newcomb Russell R | Binary data encoding/decoding for parallel bus |
CN101493804A (zh) * | 2008-01-24 | 2009-07-29 | 国际商业机器公司 | 数据总线系统及其编/解码器和编/解码方法 |
US20090193159A1 (en) * | 2008-01-29 | 2009-07-30 | Yu Li | Bus encoding/decoding method and bus encoder/decoder |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4488142A (en) * | 1981-12-31 | 1984-12-11 | International Business Machines Corporation | Apparatus for encoding unconstrained data onto a (1,7) format with rate 2/3 |
US5790874A (en) * | 1994-09-30 | 1998-08-04 | Kabushiki Kaisha Toshiba | Information processing apparatus for reducing power consumption by minimizing hamming distance between consecutive instruction |
GB2375695B (en) * | 2001-05-19 | 2004-08-25 | At & T Lab Cambridge Ltd | Improved power efficency in microprocessors |
EP1649602A1 (en) | 2003-07-22 | 2006-04-26 | Koninklijke Philips Electronics N.V. | Method and apparatus for encoding of low voltage swing signals |
US7734853B2 (en) * | 2006-02-28 | 2010-06-08 | Arm Limited | Latency dependent data bus transmission |
US7979666B2 (en) | 2006-12-08 | 2011-07-12 | William Marsh Rice University | System and method for context-independent codes for off-chip interconnects |
US7440316B1 (en) | 2007-04-30 | 2008-10-21 | Super Talent Electronics, Inc | 8/9 and 8/10-bit encoding to reduce peak surge currents when writing phase-change memory |
KR20090059838A (ko) | 2007-12-07 | 2009-06-11 | 삼성전자주식회사 | 반도체 장치에서 데이터를 전송하는 방법, 장치 및 시스템 |
US8380790B2 (en) * | 2008-12-15 | 2013-02-19 | Microsoft Corporation | Video conference rate matching |
US9245625B2 (en) * | 2012-09-26 | 2016-01-26 | Broadcom Corporation | Low power signaling for data transfer |
-
2012
- 2012-12-14 US US13/714,796 patent/US9189051B2/en not_active Expired - Fee Related
-
2013
- 2013-03-05 US US13/785,423 patent/US9218039B2/en not_active Expired - Fee Related
- 2013-11-27 CN CN201310612910.0A patent/CN103873331B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1649405A (zh) * | 2004-01-26 | 2005-08-03 | 松下电器产业株式会社 | 格式变换装置以及格式变换方法 |
US20070217312A1 (en) * | 2005-10-14 | 2007-09-20 | Newcomb Russell R | Binary data encoding/decoding for parallel bus |
CN101493804A (zh) * | 2008-01-24 | 2009-07-29 | 国际商业机器公司 | 数据总线系统及其编/解码器和编/解码方法 |
US20090193159A1 (en) * | 2008-01-29 | 2009-07-30 | Yu Li | Bus encoding/decoding method and bus encoder/decoder |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718390A (zh) * | 2014-12-18 | 2016-06-29 | 英特尔公司 | 共享存储器链路中的低功率进入 |
CN105718390B (zh) * | 2014-12-18 | 2018-12-18 | 英特尔公司 | 共享存储器链路中的低功率进入 |
Also Published As
Publication number | Publication date |
---|---|
US9218039B2 (en) | 2015-12-22 |
US20140173308A1 (en) | 2014-06-19 |
US20140173296A1 (en) | 2014-06-19 |
CN103873331B (zh) | 2017-07-28 |
US9189051B2 (en) | 2015-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103873331A (zh) | 用于在芯片上系统中传送数据的方法和电路结构 | |
CN104461954B (zh) | 用于管理多个互连ip块中的通信的方法和系统 | |
US8040799B2 (en) | Network on chip with minimum guaranteed bandwidth for virtual communications channels | |
US8490110B2 (en) | Network on chip with a low latency, high bandwidth application messaging interconnect | |
US8020168B2 (en) | Dynamic virtual software pipelining on a network on chip | |
US9075623B2 (en) | External auxiliary execution unit interface for format conversion of instruction from issue unit to off-chip auxiliary execution unit | |
US8495643B2 (en) | Message selection based on time stamp and priority in a multithreaded processor | |
US7809925B2 (en) | Processing unit incorporating vectorizable execution unit | |
US8214845B2 (en) | Context switching in a network on chip by thread saving and restoring pointers to memory arrays containing valid message data | |
US8438578B2 (en) | Network on chip with an I/O accelerator | |
US8526422B2 (en) | Network on chip with partitions | |
TW201428464A (zh) | 分散式晶片層次的電力系統 | |
US20090109996A1 (en) | Network on Chip | |
US20090245257A1 (en) | Network On Chip | |
US20090282419A1 (en) | Ordered And Unordered Network-Addressed Message Control With Embedded DMA Commands For A Network On Chip | |
US20090201302A1 (en) | Graphics Rendering On A Network On Chip | |
US11809343B2 (en) | Transporting request types with different latencies | |
CN111752890A (zh) | 封装中系统网络处理器 | |
US11797311B2 (en) | Asynchronous pipeline merging using long vector arbitration | |
US20240070106A1 (en) | Reconfigurable dataflow unit having remote fifo management functionality | |
US20240073136A1 (en) | Reconfigurable dataflow unit with remote read/write functionality | |
US20240073129A1 (en) | Peer-to-peer communication between reconfigurable dataflow units | |
US20240070111A1 (en) | Reconfigurable dataflow unit with streaming write functionality | |
CN118451411A (zh) | 网络接口设备 |
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 |