用于延时敏感应用的近似数据总线倒置技术的制作方法

文档序号:29452582发布日期:2022-03-30 12:10阅读:73来源:国知局
用于延时敏感应用的近似数据总线倒置技术的制作方法

1.概括而言,各种实施例可以涉及计算的技术领域,并且特别地,涉及用于延时敏感应用的近似数据总线倒置技术。


背景技术:

2.数据总线倒置(dbi)是一种编码算法,其可用于在计算系统内传输数据时降低信令功率。基于算法中定义的预定标准,可以应用dbi算法来倒置(或不倒置)要在计算系统内传输的数据位。然而,在宽并行接口上针对大量位执行dbi可能会增加延时。
附图说明
3.图1示出了包括互连架构的计算系统的实施例。
4.图2示出了包括分层堆栈的互连架构的实施例。
5.图3示出了要在互连架构内生成或接收的请求或分组的实施例。
6.图4示出了用于互连架构的发射机和接收机对的实施例。
7.图5示出了示例性多芯片封装设备。
8.图6是多芯片封装链路(mcpl)的简化框图。
9.图7是示例性mcpl上的示例性信令的表示。
10.图8是在mcpl中实现的示例性近似数据总线倒置(dbi)系统的简化框图。
11.图9是示出近似dbi系统的示例性逻辑的简化框图。
12.图10是示出示例性多数票决逻辑电路的示例性电路图。
13.图11是示出可以与执行近似数据总线倒置相关联的示例性技术的简化流程图。
14.图12a和12b是示出可以与近似数据总线倒置的一个实施例相关联的可能操作的简化流程图。
15.图13a和13b是示出可以与近似数据总线倒置的另一实施例相关联的可能操作的简化流程图。
16.图14是示出在不使用数据总线倒置(dbi)的情况下传输随机数据的示例性系统的切换统计数据的条形图。
17.图15是示出使用传统交流电dbi(ac-dbi)传输随机数据的示例性系统的切换统计数据的条形图。
18.图16是示出使用近似数据总线倒置传输随机数据的示例性系统的切换统计数据的条形图。
19.图17是在各种系统中使用不同参数的各种场景切换统计数据的电子表格。
20.图18示出了包括多核处理器的计算系统的实施例的框图。
21.图19示出了包括多个处理器的计算系统的实施例的框。
22.各个附图中相同的附图标记和名称表示相同的元素。在附图的图中通过示例而非限制的方式示出了实施例。
具体实施方式
23.本公开提供了用于实现基于近似多数票决的数据总线倒置技术的系统、方法、装置和架构的各种可能的实施例或示例。在一个或多个实施例中,近似多数票决算法与数据总线倒置(dbi)算法结合使用以显著减少延时并限制计算系统内数据传输中的同时切换输出(simultaneous switching output,sso)噪声。对于给定数量的dbi通道(例如,跨单个电线传输的各个位),最初确定是否将来自前一时钟周期的每个数据通道的位值切换或转换为新位值(例如,1到0或0到1),以便传输原始(即,非倒置)数据。多数票决逻辑可以用于近似是否数据通道的大多数位值需要切换或转换为新值。在该实施例中,可以基于将多数票决逻辑应用于输入的两个或更多个集合的结果,做出断言还是取消断言dbi的决定,其中所述输入基于将在新时钟周期中在数据通道上传输的相关联位的位值,指示与前一时钟周期相关联的数据通道的位值是否需要转换。在其它实施例中,多数票决逻辑可以用于近似将在新时钟周期中传输的大多数位是否需要特定逻辑电平(例如,1或0)以同时经由数据通道传输。在该实施例中,可以基于将多数票决逻辑应用于将通过数据通道传输的位的位值的两个或更多个集合的结果,来决定断言或取消断言dbi。
24.在以下描述中,出于解释而非限制的目的,阐述了许多特定细节,例如特定类型的处理器和系统配置、特定硬件结构、特定架构和微架构细节、特定寄存器配置、特定指令类型、特定系统组件、特定测量/高度、特定处理器流水线阶段和操作、特定接口、特定技术等,以便提供对本公开的透彻理解。然而,对于本领域技术人员将显而易见的是,不需要采用这些具体细节来实践本公开的主题。在其它情况下,为了避免不必要地模糊本公开,没有详细描述公知的组件或方法,例如,特定的和替代的处理器架构、用于所描述算法的特定逻辑电路/代码、特定固件代码、特定互连操作、特定逻辑配置、特定制造技术和材料、特定编译器实现方式、代码中算法的特定表达、特定断电和门控技术/逻辑以及计算机系统的其它特定操作细节。
25.虽然可以参考特定集成电路(例如,计算平台或微处理器)中的节能和能效来描述以下实施例,但是其它实施例适用于其它类型的集成电路和逻辑器件。本文描述的实施例的类似技术和教导可以应用于也受益于更好的能效和节能的其它类型的电路或半导体设备。例如,所公开的实施例不限于台式计算机系统或ultrabooks
tm
。并且也可能用于其它设备,例如手持设备、平板计算机、其它薄型笔记本、片上系统(soc)设备和嵌入式应用。手持设备的一些示例包括蜂窝电话、互联网协议设备、数码相机、个人数字助理(pda)和手持pc。嵌入式应用通常包括微控制器、数字信号处理器(dsp)、片上系统、网络计算机(netpc)、机顶盒、网络集线器、广域网(wan)交换机或可以执行下面教导的功能和操作的任何其它系统。此外,本文描述的装置、方法和系统不限于物理计算设备,还可以涉及用于节能和效率的软件优化。在下面的描述中将变得显而易见的是,本文描述的方法、装置和系统的实施例(无论是参考硬件、固件、软件还是它们的组合)对于平衡性能考量的“绿色技术”未来至关重要。
26.随着计算系统的发展,其中的组件变得越来越复杂。因此,用于在组件之间耦合和通信的互连架构也越来越复杂,以确保针对最佳组件操作满足带宽要求。此外,不同的细分市场需要互连架构的不同方面来满足市场需求。例如,服务器需要更高的性能,而移动生态系统有时能够为了节能而牺牲整体性能。然而,大多数结构的单一目的是提供尽可能高的
性能和最大的节能。下面,讨论了许多互连,这些互连将潜在地受益于本文描述的公开内容的各方面。
27.一种互连结构架构包括外围组件互连(pci)快速(pcie)架构。pcie的主要目标是使来自不同供应商的组件和设备能够在开放架构中互操作,跨越多个细分市场;客户端(桌面和移动)、服务器(标准、机架规模和企业)以及嵌入式和通信设备。pci express是一种高性能、通用的i/o互连,其被定义用于各种未来的计算和通信平台。一些pci属性(例如,其使用模型、加载-存储架构和软件接口)通过其修订版得以维护,而先前的并行总线实现方式已被高度可扩展的全串行接口所取代。最新版本的pci express利用点对点互连、基于交换机的技术和分组化协议的进步,提供新级别的性能和特征。pci express支持的一些高级特征包括电源管理、服务质量(qos)、热插拔/热调换支持、数据完整性和错误处理。
28.参考图1,示出了由互连组件集合的点对点链路组成的结构的实施例。系统100包括处理器105和耦合到控制器中心115的系统存储器110。处理器105包括任何处理元件,例如微处理器、主处理器、嵌入式处理器、协处理器或其它处理器。处理器105通过链路106(例如,前端总线(fsb))耦合到控制器中心115。在一个实施例中,链路106可以是如下所述的串行点对点互连。在另一实施例中,链路106包括兼容不同互连标准的串行、差分互连架构。在一些实现方式中,系统可以包括用于实现多个协议堆栈的逻辑和用于协商将在公共物理层的顶部上运行的替代协议的另外的逻辑,以及其它示例性特征。
29.系统存储器110包括任何存储器设备,例如随机存取存储器(ram)、非易失性(nv)存储器或系统100中的设备可访问的其它存储器。系统存储器110通过存储器接口116耦合到控制器中心115。存储器接口的示例包括双倍数据速率(ddr)存储器接口、双通道ddr存储器接口和动态ram(dram)存储器接口。
30.在一个实施例中,控制器中心115是外围组件互连快速(pcie或pcie)互连层级中的根集线器、根联合体或根控制器。控制器中心115的示例包括芯片组、存储器控制器中心(mch)、北桥、互连控制器中心(ich)、南桥和根控制器/中心。术语“芯片组”通常是指两个物理上独立的控制器中心,即,耦合到互连控制器中心(ich)的存储器控制器中心(mch)。注意,当前系统通常包括与处理器105集成的mch,而控制器中心115用于以类似于下面描述的方式与i/o设备进行通信。在一些实施例中,可选地通过控制器中心115(例如,根联合体)支持对等路由。
31.这里,控制器中心115通过串行链路119耦合到交换机/桥120。输入/输出模块117和121(其也可以称为接口/端口117和121)包括/实现分层协议堆栈以提供在控制器中心115和交换机120之间的通信。在一个实施例中,多个设备能够耦合到交换机120。
32.交换机/桥120将分组/消息从设备125向上游(即,沿层级向上到根联合体)路由到控制器中心115,以及从处理器105或系统存储器110向下游(即,远离根控制器沿层级向下)路由到设备125。在一个实施例中,交换机120被称为多个虚拟pci到pci桥设备的逻辑组装件。设备125包括要耦合到电子系统的任何内部或外部设备或组件,例如i/o设备、网络接口控制器(nic)、附加卡、音频处理器、网络处理器、硬件驱动器、存储设备、cd/dvd rom、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、火线设备、通用串行总线(usb)设备、扫描仪和其它输入/输出设备。通常在pcie术语中,例如设备被称为端点。虽然未具体示出,但设备125可以包括pcie到pci/pci-x桥以支持传统或其它版本的pci设备。pcie中端点设备通
常被归类为传统、pcie或根复合体集成端点。
33.图形加速器130还通过串行链路132耦合到控制器中心115。在一个实施例中,图形加速器130耦合到mch,该mch耦合到ich。交换机120以及因此i/o设备125然后耦合到ich。i/o模块131和118还用于实现分层协议堆栈以在图形加速器130和控制器中心115之间进行通信。类似于上面的mch讨论,图形控制器或图形加速器130本身可以集成在处理器105中。此外,系统的一个或多个链路(例如,123)可以包括一个或多个扩展设备(例如,150),例如重定时器、中继器等。应当理解,图1中所示的一个或多个组件(例如,105、110、115、120、125、130)可以被增强以执行、存储和/或体现用于实现本文描述的一个或多个特征的逻辑。
34.转向图2,示出了分层协议堆栈的实施例,其可以在移动计算设备的一个或多个组件中实现,例如应用处理器或基带处理器或调制解调器,以及其它示例。分层协议堆栈200包括在硬件电路和/或软件中实现的逻辑以实现任何形式的分层通信堆栈,例如快速路径互连(qpi)堆栈、pcie堆栈、下一代高性能计算互连堆栈或其它分层堆栈。虽然紧接下面将参考图1-4关于pcie堆栈进行讨论,但类似概念可以应用于其它互连堆栈,例如opencapi
tm
、gen-z
tm
、upi、通用串行总线(usb)、加速器高速缓存一致互连(ccix
tm
)、advanced micro device
tm
(amd
tm
)infinity
tm
、通用通信接口(cci)或qualcomm
tm
的centriq
tm
互连等。在一个实施例中,协议堆栈200是pcie协议堆栈,包括事务层205、链路层210(本文也称为“数据链路层”)和物理层220。接口(例如,图1中的接口117、118、121、122、126和131)可以被表示为通信协议堆栈200。作为通信协议堆栈的表示也可以被称为实现/包括协议堆栈的模块或接口。
35.pci express使用分组在组件之间传送信息。在事务层205和数据链路层210中形成分组以将信息从发送组件传送到接收组件。当传输的分组流经其它层时,它们会被扩展有对在这些层处理分组所需的附加信息。在接收侧,发生相反的过程,并且分组从它们的物理层220表示转换为数据链路层210表示,并最终(对于事务层分组)转换为可由接收设备的事务层205处理的形式。
36.事务层
37.在一个实施例中,事务层205用于提供设备的处理核心和互连架构之间的接口,例如数据链路层210和物理层220。在这方面,事务层205的主要职责是组装和分解分组(即,事务层分组或tlp)。事务层205通常为tlp管理基于信用的流控制。pcie实现拆分事务,即,请求和响应按时间分隔的事务,以允许链路承载其它业务,同时目标设备为响应收集数据。
38.此外,pcie使用基于信用的流控制。在该方案中,设备为事务层205中的每个接收缓冲器通告初始信用量。链路相对端的外部设备(例如,图1中的控制器中心115)对由每个tlp消费的信用量进行计数。如果事务没有超过信用限制,则可以传输事务。在接收到响应时,恢复一定量的信用。信用方案的优点在于,信用返回的延时不会影响性能,前提是没有遇到信用限制。
39.在一个实施例中,四个事务地址空间包括存储器地址空间、配置地址空间、消息地址空间和输入/输出地址空间。存储器空间事务包括读取请求和写入请求中的一个或多个,以将数据传输到存储器映射位置/从存储器映射位置传输。在一个实施例中,存储器空间事务能够使用两种不同的地址格式,例如,短地址格式(例如,32位地址)或长地址格式(例如,64位地址)。配置空间事务用于访问pcie设备的配置空间。到配置空间的事务包括读取请求
和写入请求。消息空间事务(或简称消息)被定义为支持pcie代理之间的带内通信。
40.因此,在一个实施例中,事务层205组装分组报头/有效载荷206。可以在pcie规范网站的pcie规范中找到当前分组报头/有效载荷的格式(实际上,本文对pcie规范的一部分的任何参考可以考虑在pcie规范网站上或通过其它方式当前可用或将来可用的任何过去、当前或未来的pcie规范)。
41.快速参考图3,示出了pcie事务描述符的实施例。在一个实施例中,事务描述符300是一种用于携带事务信息的机制。在这方面,事务描述符300支持系统中事务的识别。其它潜在用途包括跟踪默认事务排序的修改以及事务与信道的关联。
42.事务描述符300包括全局标识符字段302、属性字段304和信道标识符字段306。在所示示例中,全局标识符字段302被描绘为包括本地事务标识符字段308和源标识符字段310。在一个实施例中,全局标识符字段302对于所有未完成的请求是唯一的。
43.根据实现方式,本地事务标识符字段308是由请求代理生成的字段,并且其对于针对该请求代理需要完成的所有未完成请求是唯一的。此外,在该示例中,源标识符310唯一地识别pcie层级内的请求者代理。因此,与源id 310一起,本地事务标识符308字段提供层级域内事务的全局标识。
44.属性字段304指定事务的特性和关系。在这方面,属性字段304潜在地用于提供允许修改事务的默认处理的附加信息。在一个实施例中,属性字段304包括优先级字段312、保留字段314、排序字段316和无监听字段318。这里,优先级子字段312可以由发起者修改以向事务指派优先级。保留属性字段314被保留以供将来或供应商定义的使用。可以使用保留属性字段来实现使用优先级或安全属性的可能使用模型。
45.在该示例中,排序属性字段316用于提供可选信息,该信息传达可以修改默认排序规则的排序类型。根据一个示例性实现方式,“0”的排序属性表示要应用的默认排序规则,其中“1”的排序属性表示宽松排序,其中写入可以以相同方向传递写入,且读取完成可以以相同方向传递写入。监听属性字段318用于确定事务是否被监听。如图所示,信道id字段306标识与事务相关联的信道。
46.链路层
47.再次参考图2,链路层210(也称为数据链路层210)充当在事务层205和物理层220之间的中间阶段。在一个实施例中,数据链路层210的职责是提供用于在链路的两个组件之间交换事务层分组(tlp)的可靠机制。数据链路层210的一侧接受由事务层205组装的tlp,应用分组序列标识符211(即,标识号或分组号),计算并应用错误检测代码(即,crc 212),并将修改后的tlp提交给物理层220以用于跨物理设备传输到外部设备。
48.物理层
49.在一个实施例中,物理层220包括逻辑子块221和电气子块222以将分组物理地传输到外部设备。这里,逻辑子块221负责物理层220的“数字”功能。在这方面,逻辑子块包括用于准备传出信息以供电气子块222传输的发送部分以及用于在将接收到的信息传递到链路层210之前识别和准备接收到的信息的接收部分。
50.物理层220包括发射机和接收机。发射机由逻辑子块221提供符号,发射机将这些符号串行化并发送到外部设备上。接收机被提供有来自外部设备的串行化符号,并将接收到的信号转换为比特流。比特流被反串行化并提供给逻辑子块221。在一个实施例中,采用
8b/10b传输码,其中发送/接收十位符号。在其它实施例中,除其它示例之外,使用128b/130b传输编码。这里,特殊符号用于将具有帧223的分组成帧。此外,在一个示例中,接收机还提供从传入串行流中恢复的符号时钟。
51.如上所述,虽然参考pcie协议堆栈的特定实施例讨论了事务层205、链路层210和物理层220,但是分层协议堆栈不限于此。事实上,可以包含/实现任何分层协议。例如,表示为分层协议的端口/接口包括:(1)用于组装分组的第一层,即事务层;用于对分组进行排序的第二层,即链路层;以及用于传输分组的第三层,即物理层。作为特定示例,使用通用标准接口(csi)分层协议。
52.下面参考图4,示出了pcie串行点对点结构的实施例。虽然示出了pcie串行点对点链路的实施例,但串行点对点链路不限于此,因为它包括用于传输串行数据的任何传输路径。在所示实施例中,基本pcie链路包括两个低压差分驱动信号对:发送对406/411和接收对412/407。因此,设备405包括用于向设备410发送数据的传输逻辑406以及用于从设备410接收数据的接收逻辑407。换句话说,两条发送路径(即,路径416和417)以及两条接收路径(即,路径418和419)被包含在pcie链路中。
53.发送路径是指用于发送数据的任何路径,例如传输线、铜线、光学线路、无线通信信道、红外通信链路或其它通信路径。两个设备(例如,设备405和设备410)之间的连接称为链路,例如链路415。链路可以支持一个通道——每个通道代表一组差分信号对(一对用于发送,一对用于接收)。为了扩展带宽,链路可以聚合由xn表示的多个通道,其中n是任何支持的链路宽度,例如1、2、4、8、12、16、32、64或更宽。
54.差分对是指用于传输差分信号的两条传输路径,例如线路416和417。例如,当线路416从低电压电平切换到高电压电平,即上升沿时,线路417从高逻辑电平驱动到低逻辑电平,即下降沿。差分信号潜在地表现出更好的电气特性,例如更好的信号完整性,即交叉耦合、电压过冲/下冲、振铃等。这允许更好的定时窗口,实现了更快的传输频率。
55.在一些实现方式中,可以提供能够以高速(例如,25gt/s和/或32gt/s)操作的高性能互连和对应的互连协议(例如,例如下一代基于pcie的互连)。在一个示例中,基于为信道确定的特性(例如,在链路训练期间),可以为高性能互连定义两种速度,一种为25gt/s并且另一种为32gt/s。在一种实现方式中,互连可以向后兼容现有的pcie代以及为这些代提供的速度(例如,8gt/s、16gt/s等)。
56.图5是示出示例性多芯片封装(mcp)设备500的简化框图。设备500可以在单个封装上实现并且包括使用示例性多芯片封装链接(mcpl)520通信地连接的两个或更多个芯片或管芯(例如,505、510)。虽然图5示出了使用示例性mcpl 520互连的两个(或更多个)管芯的示例,但应当理解,本文描述的关于mcpl的实现方式的原理和特征可以应用于连接管芯(例如,505)和其它组件的任何互连或链路,包括连接两个或更多个管芯(例如,505、510),将管芯(或芯片)连接到管芯外的另一组件,将管芯连接到封装(例如,500)外的另一设备或管芯,将管芯连接到bga封装,在插入器上补丁(point)实现方式,以及潜在地其它示例。
57.通常,多芯片封装设备(例如,500)可以是电子封装,其中多个集成电路(ic)、半导体管芯或其它分立组件(例如,505、510)被封装到统一衬底(例如,硅或其它半导体衬底)上,以促进组合组件用作单个组件(例如,就像较大的ic)。在一些情况下,较大的组件(例如,管芯505、510)本身可以是ic系统,例如片上系统(soc)、多处理器芯片或在设备上包括
多个组件的其它组件(例如,525-530和540-545),例如,在单个管芯(例如,505、510)上。
58.在多芯片封装设备500内的管芯和其它组件本身可以包括互连或其它通信结构(例如,535、550),为设备(例如,分别为505、510)内的组件(例如,525-530和540-545)之间的通信提供基础设施。各种组件和互连(例如,535、550)可以潜在地支持或使用多种不同的协议。此外,在管芯(例如,505、510)之间的通信可以潜在地包括管芯上的各种组件之间通过多种不同协议的事务。还应当注意,已经开发了各种不同的、竞争的和专有的互连解决方案(例如,r-link、多芯片封装链路(mcpl)、高带宽存储器(hbm2)、双倍数据速率(ddr)等)用于应用于mcp设备(例如,500)以促进芯片(或管芯)之间的互连(例如,520)并且用于互连芯片(例如,505、510)内的组件(例如,525-530、540-545)。设计用于在多芯片封装上的芯片(或管芯)之间提供通信的机制可能具有挑战性,其中传统解决方案基于寻求互连的组件(和期望事务)的特定组合来采用高度专业化、昂贵且特定于封装的解决方案。
59.本说明书内描述的示例、系统、算法、装置、逻辑和特征可以解决上述问题中的至少一些,潜在地包括本文未明确提及的许多其它问题。例如,在一些实现方式中,可以为多芯片封装链路(mcpl)提供用于延时敏感应用的近似数据总线倒置技术,mcpl可以是用于将主机设备(例如,cpu)或其它设备连接到与主机位于同一分装中的配套芯片的高带宽、低功率、低延时接口。这种mcpl可以减少延时并限制同时切换输出(sso)噪声。
60.转向图6,示出了表示系统的至少一部分的简化框图600,其包括多芯片封装链路(mcpl)的示例性实现方式。可以使用将第一设备605(例如,包括一个或多个子组件的第一管芯)与第二设备610(例如,包括一个或多个其它子组件的第二管芯)连接的物理电连接(例如,实现为总线/信道的通道的电线)实现mcpl。在图600的高级表示中所示的特定示例中,所有信号(在信道622、624中)可以是单向的,并且可以为数据信号提供通道以具有上行数据传输和下行数据传输二者。虽然图6的框图600将第一组件605称为上游组件并将第二组件610称为下游组件,并将用于发送数据的mcpl的物理通道称为下行信道622,以及将用于接收数据(来自设备610)的通道称为上游信道624,但应当理解,在设备605、610之间的mcpl可以被每个设备用于在设备之间发送和接收数据。
61.在一个示例性实现方式中,mcpl可以提供包括电气mcpl phy 625a、b(或统称为625)的物理层(phy)和实现mcpl逻辑phy 630a、b(或统称为630)的可执行逻辑。电气或物理phy 625可以提供物理连接,通过该物理连接在设备605、610之间传输数据。信号调节组件和逻辑可以结合物理phy 625实现,以便建立链路的高数据速率和信道配置能力,这在一些应用中可能涉及长度约为45mm或更长的紧密集群的物理连接。逻辑phy 630可以包括用于促进计时(clocking)、链路状态管理(例如,用于链路层635a、635b)以及用于通过mcpl进行通信的潜在地多个不同协议之间的协议复用的逻辑。
62.在一个示例性实现方式中,物理phy 625可以针对每个信道(例如,622、624)包括一组数据通道,带内数据可以通过这些通道发送。在该特定示例中,在上游和下游信道622、624中的每一个中提供50个数据通道,但是在布局和功率约束、期望应用、设备约束等允许的情况下可以使用任何其它数量的通道。每个通道还可以包括用于信道的选通信号或时钟信号的一个或多个专用通道、用于信道的有效信号的一个或多个专用通道、用于流送信号的一个或多个专用通道、以及用于链路状态机管理或边带信号的一个或多个专用通道。物理phy还可以包括边带链路640,在一些示例中,边带链路640可以是双向较低频控制信号链
路,其用于协调mcpl连接设备605、610的状态转换和其它属性,以及其它示例。
63.在一些实现方式中,通过mcpl发送的带内数据(和其它数据)可以被加扰。在一个示例中,可以在每个通道上使用伪随机二进制序列(prbs)对数据进行加扰。在一些实现方式中,使用线性反馈移位寄存器(lfsr),可以生成prbs以与出站数据一起加扰。除了其它示例之外,接收设备可以对数据进行解扰以查看明文数据。
64.如上所述,使用mcpl的实现方式可以支持多种协议。实际上,可以在每个设备605、610处提供多个独立的事务层650a、650b。例如,每个设备605、610可以支持和利用两个或更多个协议,例如pci、pcie、qpi、intel芯片内互连(idi)等。idi是一种在管芯上使用的一致协议,以用于在核心、最后一级高速缓存(llc)、存储器、图形和io控制器之间进行通信。还可以支持其它协议,包括以太网协议、无线带宽协议和其它基于pcie结构的协议。逻辑phy和物理phy的组合还可以用作芯片到芯片互连,以将一个管芯上的serdes phy(pcie、以太网、无线带宽或其它高速serdes)连接到在其它管芯上实现的上层,以及其它示例。
65.逻辑phy 630可以支持在mcpl上这些多个协议之间的复用。例如,专用流通道可以用于断言编码流信号,该信号标识哪个协议将应用于在信道的数据通道上基本同时发送的数据。此外,逻辑phy 630可以用于协商各种协议可支持或请求的各种类型的链路状态转换。在一些情况下,可以使用通过信道的专用lsm_sb通道发送的lsm_sb信号,其用于与边带链路640一起在设备605、610之间进行通信和协商链路状态转换。此外,数据总线倒置(dbi)、链路训练、错误检测、歪斜检测、去歪斜和传统互连的其它功能可以被替换或管理(部分地使用逻辑phy 630)。例如,通过每个信道中的一个或多个专用有效信号通道发送的有效信号可以用于用信号通知链路活动、检测歪斜、链接错误和实现其它特征,以及其它示例。在图6的特定示例中,每信道提供多个有效通道。例如,信道内的数据通道可以被捆绑或集群(物理和/或逻辑地),并且可以为每个集群提供有效通道。此外,可以提供多个选通通道,以在一些情况下也为信道中的多个数据通道中的每个集群提供专用的选通信号,以及其它示例。
66.如上所述,逻辑phy 630可以用于协商和管理在由mcpl连接的设备之间发送的链路控制信号。在一些实现方式中,逻辑phy 630可以包括链路层分组(llp)生成逻辑660,其可以用于通过mcpl(即,带内)发送链路层控制消息。这种消息可以通过信道的数据通道发送,其中流通道标识:数据是链路层到链路层消息传递,例如链路层控制数据,以及其它示例。使用llp逻辑660实现的链路层消息可以协助以下各项的协商和执行:链路层状态转换、功率管理、环回、禁用、重新居中、加扰以及设备605、610分别的链路层635a、635b之间的其它链路层特征。
67.转到图7,示出了表示使用示例性mcpl的特定信道中的一组通道(例如,622、624)的示例性信令的图700。在图7的示例中,为信道中总共五十(50)个数据通道提供了二十五(25)个数据通道的两个集群。部分通道被示出,而其它通道(例如,data[4-46]和第二选通信号通道(strb))被省略(例如,作为冗余信号)以方便说明特定示例。当物理层处于活动状态(例如,未断电或处于低功率模式(例如,l1状态))时,可以为选通通道(strb)提供同步时钟信号。在一些实现方式中,可以在选通的上升沿和下降沿二者上发送数据。每个沿(或半个时钟周期)可以划定单位间隔(ui)。因此,在该示例中,可以在每个通道上发送一位(例如,705),以允许每8ui发送一字节。一字节时间段可以被定义为8ui,或在数据通道(例如,
data[0-49])中的单个数据通道上发送一字节的时间。
[0068]
在一些实现方式中,在一个或多个专用有效信号信道(例如,valid0、valid1)上发送的有效信号可以用作领先(leading)指示符,以供接收设备在被断言(高)时向接收设备或宿(sink)标识在接下来的时间段期间在数据通道(例如,data[0-49])上数据正从发送设备或源被发送。替代地,当有效信号为低时,源向宿指示:宿在接下来的时间段期间将不会在数据通道上发送数据。因此,当宿逻辑phy检测到有效信号未被断言时(例如,在通道valid0和valid1上),宿可以忽略在接下来的时间段期间在数据通道(例如,data[0-49])上检测到的任何数据。例如,当源实际上不在发送任何数据时,串扰噪声或其它位可能出现在一个或多个数据通道上。凭借在先前时间段(例如,先前字节时间段)期间的低或未断言的有效信号,宿可以确定在接下来的时间段期间将被忽略数据通道。
[0069]
在mcpl的每个通道上发送的数据都可以与选通信号严格对齐。可以基于选通来定义时间段,例如字节时间段,并且这些时间段中的每一个可以对应于将在数据通道(例如,data[0-49])、有效通道(例如,valid0、valid1)和流通道(例如,stream)上发送信号的定义窗口。因此,这些信号的对齐可以使得能够识别:先前时间段窗口中的有效信号应用于接下来的时间段窗口中的数据,并且流信号应用于相同时间段窗口中的数据。流信号可以是编码信号(例如,对于字节时间段窗口的1字节数据),其被编码以标识应用于同一时间段窗口期间发送的数据的协议。
[0070]
为了说明,在图7的特定示例中,定义了字节时间段窗口。在将任何数据注入数据通道data[0-49]上之前,在时间段窗口n(715)处断言有效信号。在接下来的时间段窗口n+1(720)处,在至少一些数据通道上发送数据。在这种情况下,在n+1(720)期间在所有50个数据通道上发送数据。因为在先前时间段窗口n(715)的持续时间内断言了有效信号,所以宿设备可以验证在时间段窗口n+1(720)期间在数据通道data[0-49]上接收的数据。此外,在时间段窗口n(715)期间有效信号的领先性质允许接收设备为传入数据做准备。继续图7的示例,有效信号在时间段窗口n+1(720)的持续时间期间保持被断言(在valid0和valid1上),导致宿设备在时间段窗口n+2(725)期间期待通过数据通道data[0-49]发送的数据。如果有效信号在时间段窗口n+2(725)期间保持被断言,则宿设备可以进一步期望接收(和处理)在紧接随后的时间段窗口n+3(730)期间发送的附加数据。然而,在图7的示例中,有效信号在时间段窗口n+2(725)的持续时间期间被取消断言,以向宿设备指示:在时间段窗口n+3(730)期间将没有数据被发送,并且在时间段窗口n+3(730)期间应忽略在数据通道data[0-49]上检测到的任何位。
[0071]
如上所述,每信道可以维持多个有效通道和选通通道。除其它优点外,这可以帮助在连接两个设备的相对较长的物理通道的集群中维持电路简单性和同步。在一些实现方式中,一组数据通道可以被划分为数据通道的集群。例如,在图7的示例中,数据通道data[0-49]可以被划分为两个25通道集群,并且每个集群可以具有专用的有效和选通通道。例如,有效通道valid0可以与数据通道data[0-24]相关联,并且有效通道valid1可以与数据通道data[25-49]相关联。每个集群的有效和选通通道的每个“副本”上的信号可以相同。
[0072]
如上所述,流通道stream上的数据可以用于向接收逻辑phy指示将什么协议应用于正在数据通道data[0-49]上发送的对应数据。在图7的示例中,在与数据通道data[0-49]上的数据相同的时间段窗口期间在stream上发送流信号以指示数据通道上的数据的协议。
在替代实现方式中,流信号可以在先前的时间段窗口期间被发送,例如与对应的有效信号一起,以及其它潜在的修改。然而,继续图7的示例,在时间段窗口n+1(720)期间发送流信号735,其被编码以指示将应用于在时间段窗口n+1(720)期间通过数据通道data[0-49]发送的位的协议(例如,pcie、pci、idi、qpi等)。类似地,可以在随后的时间段窗口n+2(725)期间发送另一流信号740以指示应用于在时间段窗口n+2(725)期间通过数据通道data[0-49]发送的位的协议(725),等等。在一些情况下,例如图7的示例(其中,流信号735、740具有相同的编码、二进制ff),连续时间段窗口(例如,n+1(720)和n+2(725))中的数据可以属于相同的协议。然而,在其它情况下,连续时间段窗口(例如,n+1(720)和n+2(725))中的数据可以来自不同协议将应用于的不同事务,并且流信号(例如,735、740)可以被相应地编码以标识应用于数据通道(例如,data[0-49])上的数据的顺序字节的不同协议,以及其它示例。
[0073]
在一些实现方式中,可以为mcpl定义低功率或空闲状态。例如,当mcpl上的设备都没有发送数据时,mcpl的物理层(电气和逻辑)可以进入空闲或低功率状态。例如,在图7的示例中,在时间段窗口n-2(745)处,mcpl处于安静或空闲状态并且禁用选通以节省功率。mcpl可以转换出低功率或空闲模式,在时间段窗口时间段窗口n-1(例如,705)处唤醒选通。选通可以完成传输前导码(例如,以帮助唤醒和同步信道的每个通道以及宿设备),在其它非选通通道上的任何其它信令之前开始选通信号。在该时间段窗口n-1(705)之后,可以在时间段窗口n(715)处断言有效信号以向宿通知:数据将在接下来的时间段窗口n+1(720)中到来,如上所述。
[0074]
在检测到有效通道、数据通道和/或mcpl信道的其它通道上的空闲条件之后,mcpl可以重新进入低功率或空闲状态(例如,l1状态)。例如,在时间段窗口n+3(730)处开始并向前可能没有检测到信令。源设备或宿设备上的逻辑可以发起转换回低功率状态,再次导致(例如,时间段窗口n+5(755))在节能模式下选通进入空闲状态,以及其它示例和原理(包括本文稍后讨论的那些)。
[0075]
物理phy的电气特性可以包括单端信令、半速率转发计时、互连信道的匹配以及发射机(源)和接收机(宿)的片上传输延迟、优化的静电放电(esd)保护、焊盘电容以及其他特征中的一个或多个。此外,可以实现mcpl以实现比传统封装i/o解决方案更高的数据速率(例如,接近16gb/s)和能效特性。
[0076]
在单端并行链路(例如,图5-7的mcpl)中,电源引起的抖动是实现更高数据速率的主要限制。mcpl可能涉及宽的通道,其在相同的时钟周期内具有数十、数百或甚至更多的发送数据的数据通道。电源相关事件可以根据每个周期中或短时间段内切换(或转换)的通道数量而发生。参考图7,如果要跨数据通道[0]-[49]传输的数据(例如,全1)与前一时钟周期中那些通道中的位(例如,全0)完全相反,则显著的信号切换噪声(sso)可能在每个数据通道被转换为其相反值(例如,从0转换为1)时发生。例如,在单个时钟周期内将所有通道[0]-[49]从0切换到1会导致电压下降并导致1的传输中的传输错误。因此,由于从一个时钟周期到下一时钟周期的通道中的位转换,可能会浪费大量的功率。
[0077]
数据总线倒置(dbi)是一种用于降低单端并行链路(例如,ddr、mcpl、rlink、hbm2等)中的同时切换(sso)噪声和功率的技术。dbi可以减少由于数据总线上的转换而造成的大量功率浪费。dbi可以在将直流dbi(dc-dbi)用于端接输入/输出(io)或将交流dbi(ac-dbi)用于无端接io的系统中实现。在dbi实现方式中,可以基于预定的编码算法在传输之前
倒置要传输的数据的状态。在传统的dbi中,如果总线上总通道数的一半以上否则将需要切换或转换其位值以便以数据的非倒置形式传输数据,则要传输的数据在总线上被倒置。这确保了切换位值(或传输特定级别)的通道的数量上限为总通道计数的一半。
[0078]
编码算法可以用于实现dbi以确定倒置是否合适,并且如果合适,则在传输之前倒置数据的状态。编码算法可以设置阈值(本文也称为转换阈值)来指示传输数据所需要的转换的数量(例如,来自前一时钟周期的数据通道中的位值变化到原始数据的不同位值以在新的时钟周期中传输)。达到或超过阈值可以触发要传输的数据的倒置以避免所需的通道转换。例如,确定要在数据通道的给定集合(例如,n个数据通道)上传输的数据是否将需要来自前一时钟周期的一半以上的数据通道从一个值转换(例如,所需转换》n/2)到另一值(例如,1到0或0到1)。如果满足转换阈值,则可以将数据编码为倒置版本以在通道上传输。倒置数据减少了需要转换的数据通道的数量。此外,倒置指示器(例如,附加通道)被断言以让接收设备知道它必须倒置总线才能获得真实数据。dbi技术允许发射机和接收机最小化在前一时钟周期和新时钟周期之间数据通道中位值的切换。
[0079]
dbi需要对通道切换或传输电平(0或1)的数量进行准确计数。例如,ac-dbi的正确操作取决于找到从前一周期切换到新周期的通道的准确计数。dbi通常使用全加器实现,并且每个dbi信号的通道数量确定了所需的全加器级数。因此,随着通道数量的增加,所需的全加器级数也会增加。在多级全加的情况下,进位传播可能会引入显著的延时并确定dbi信号生成延迟。例如,在行波进位加法器(小面积和功率)中,计算延迟由进位传播确定(例如,标准16位行波进位加法器的延时为47个门延迟)。在延时敏感的i/o链路(例如,多芯片封装链路(mcpl))中,这可能构成i/o延时的很大一部分。可以使用其它技术,如进位前瞻加法器和推测加法器,但实现逻辑变得复杂,并且增加了不少位的门计数(功率)。
[0080]
虽然dbi可用于减少sso,但由此导致的延时增加可能成为另一问题,这在延时敏感的应用中尤为严重。例如,在mcpl接口中,数据速率和延时是至少一些产品成功的关键度量。mcpl是一种管芯到管芯互连,并且通常用于跨cpu核心管芯发送网格信号。与单片网状网络实现方式相比,由于mcpl phy导致的任何延时增加都是直接的性能损失。此外,mcpl接口具有大的通道计数(发送所有网格信号所需要的),这可以同时切换,导致与sso相关的显著下垂和高频噪声。这会降低链路数据速率并影响性能。因此,希望减少与dbi相关的延时,同时还减轻同时切换事件。此外,由于网格信号分布和活动因素,常规dbi指派(即,通道/dbi)并不总是可能的。因此,需要灵活的架构来避免最坏情况的sso场景。
[0081]
被实现为针对延时敏感应用执行基于近似多数票决的dbi技术的系统可以解决许多这些问题(以及更多)。在一个或多个实施例中,使用基于多数票决逻辑的dbi信号生成来确定是否断言dbi。除了显著减少传统dbi经常出现的延时之外,这种方法还可以限制sso相关的噪声。实施例不是计算切换通道数量的实际总和,而是使用简单的多数票决来确定总线是否需要倒置。在一个或多个实施例中,多数票决逻辑用于近似:大部分数据通道是否具有来自前一时钟周期的基于要在新时钟周期中通过数据通道传输的新数据而需要转换的位值。如果确定大部分数据通道具有需要转换以便在新的时钟周期中传输新数据的位值,则可以应用倒置将新数据编码为倒置数据以通过数据通道进行传输。通过近似确定是否需要一半以上的数据通道转换到另一值以便传输原始数据,可以使用多数票决逻辑,这比在精确确定中使用的全加器消耗更少的资源。因此,可以显著减少延时,同时还可以显著降低
在dbi的情况下的sso噪声和功率损耗。
[0082]
基于近似多数票决的dbi技术的公开实施例减少了sso噪声,而同时显著减少了由传统dbi技术引起的延时。本文公开的近似dbi技术可以减少mcpl互连中的门延迟以最小化由于延时引起的性能损失。此外,与数据总线倒置一起使用多数票决逻辑实现每dbi选择通道计数的灵活性。例如,应用dbi的通道的数量和/或用于确定何时应用倒置的转换阈值可以基于特定实现方式和需要进行调整或调制。近似dbi技术的这种灵活架构确保可以避免最坏情况的sso,而不会产生过多的延时。
[0083]
转向图8,简化框图示出了示例性多芯片封装(mcp)设备800,其包括用近似数据总线倒置系统实现的mcp链路(mcpl)820。mcp设备800和mcp链路820可以以与本文描述的mcp和mcpl(例如,mcp设备500、mcpl 520、框图600等)相同或相似的方式配置。在一个或多个示例中,mcpl 820可以使用将第一设备805(例如,包括一个或多个子组件的第一管芯)连接到第二设备815(例如,包括一个或多个子组件的第二管芯)的物理电连接(例如,实现为总线/信道的通道的电线)来实现。在一个示例中,设备805可以是上游设备,并且设备810可以是下游设备。在图8的高级表示中所示的特定示例中,信道822、824中的信号可以是单向的,并且可以为数据信号提供通道以具有上游数据传输和下游数据传输二者。虽然图8示出了第一设备805作为上游组件和第二设备810作为下游组件,以及用于发送数据(来自设备805)的mcpl 820的物理通道作为下游信道822和用于接收数据(来自设备810)的通道作为上游信道824,但应当理解,在设备805、810之间的mcpl可以被配置为由每个设备使用以在设备之间既发送又接收数据,并且可以在任何合适的配置中组合或分离。
[0084]
在至少一个实施例中,近似dbi系统可以被提供在诸如设备805和810之类的通信设备(或管芯)中的发射机电路(830、840)和接收机电路(836、846)中,或耦合到其。在至少一种实现方式中,发射机电路830可以是发射设备805的mcpl phy层(例如,630a、625a)的一部分,并且接收机电路846可以是接收设备810的mcpl层(例如,630b、625b)的一部分。在mcp设备800的示例中,设备805可以包括发射机电路830和接收机电路836,并且设备810可以包括互补元件,例如接收机电路846和发射机电路840。设备805的发射机电路830可以包括转换标识符逻辑831、近似dbi逻辑832和dbi编码器834,并且设备805的接收机电路836可以包括dbi解码器838。设备810的发射机电路840可以包括转换标识符逻辑841、近似dbi逻辑842和dbi编码器844,并且设备810的接收机电路846可以包括dbi解码器848。在一个或多个实施例中,转换标识符逻辑831、近似dbi逻辑832、dbi编码器834和dbi解码器838可以被提供为mcpl逻辑phy(例如,630a)的一部分,例如在设备805的llp逻辑(例如,660a)中。类似地,在设备810中,转换标识符逻辑841、近似dbi逻辑842、dbi编码器844和dbi解码器848可以被提供为mcpl逻辑phy(例如,630b)的一部分,例如在设备810的llp逻辑(例如,660b)中。应当注意,图(例如,图8)中示出的特定非限制性配置是出于说明目的,并可以基于特定需要和实现方式而变化。
[0085]
在至少一个实施例中,近似dbi系统涉及与dbi编码器(例如,834、844)合作的转换标识符逻辑(例如,831、841)和近似dbi逻辑(例如,832、842)的实现。为了便于参考,在mcpl 820中的发射机电路的操作可以参考上游设备805中的发射机电路830及其组件来描述,并且在mcpl820中的接收机电路的操作可以参考下游设备810中的接收机电路846及其组件来描述。然而,应当理解,这样的操作可以由设备810中的发射机电路840(当设备810发送数据
时)和设备805的接收机电路836(当设备805接收数据时)执行。
[0086]
在设备805中,转换标识符逻辑831可以评估要在新时钟周期中经由将设备805连接到设备810的相应数据通道传输的数据位。该数据在本文中也被称为“原始数据”和/或“新数据”。转换标识符逻辑831可以将原始数据的位的位值与前一时钟周期中数据通道的相应位值进行比较。前一时钟周期可以是紧接在新时钟周期之前的时钟周期。可以针对每个数据通道确定该通道是否具有与前一时钟周期相关联的位值,该位值需要转换(即,切换、改变)到不同的位值以便在新时钟周期中传输原始数据(即,未倒置的)。对于要经由数据通道传输的每个数据通道和相关联的位,可以生成相应的转换输入值。为给定数据通道生成的转换输入值基于要在新时钟周期中经由给定数据通道传输的相关联位(在原始数据中),来指示是否在给定数据通道上需要转换。
[0087]
在一个或多个实施例中,转换输入值可以被划分成两个或更多个集合(或组)。在至少一些实施例中,转换输入值可以被平均划分,使得每个集合包含相同数量的转换输入值,代表相同数量的数据通道。对于给定的转换输入值集合,多数票决电路确定由转换输入值的给定集合表示的大部分数据通道是否具有需要转换以便传输原始数据的位值。可以针对给定集合生成输出值,其中输出值表示是否大部分数据通道具有均需要转换为另一值(例如,1到0或0到1)以便传输原始数据的位值。在一个示例中,输出值1表示大部分数据通道具有需要转换为另一值以便传输原始数据的位值,而输出值0表示少于大部分的数据通道具有需要转换为其它值以便传输原始数据的位值。
[0088]
被应用到转换输入值集合的每个多数票决决策电路的输出值可以使用or逻辑进行评估,以生成dbi信号来断言或取消断言。dbi信号可以被提供给dbi编码器834以启用或不启用dbi编码器来倒置原始数据。例如,如果输出值表示对于转换输入值的每个集合,由转换输入值集合表示的大部分数据通道具有需要转换为其它值以便传输原始数据的位值,则可以使用输出值来生成信号以断言dbi。dbi信号可以使dbi编码器834能够倒置原始数据。因此,dbi编码器834将原始数据编码成倒置形式以经由数据通道传输。此外,另一数据通道(本文也称为“倒置指示符”)可以被断言(例如,设置为1),以向接收机电路846指示:在总线的数据通道上接收到的数据需要被倒置以获得原始数据。否则,如果转换输入值的单个集合的输出值表示:由该转换输入值的集合表示的少于大部分的数据通道具有需要转换的位值,则dbi不被断言并且dbi编码器834不倒置原始数据以用于传输。因此,数据通道用原始(即,非倒置)数据来编码以传输到设备810。此外,倒置指示符被取消断言(例如,设置为0)以向接收机电路846指示:在总线的数据通道上接收到的数据没有被倒置并代表原始数据。
[0089]
在一些实施例中,数据总线倒置指示符可以在被断言时被设置为1,并且在被取消断言时被设置为0。然而,在其它实施例中,数据总线倒置指示器可以以不同的方式实现。例如,数据总线倒置指示符可以在被断言时被设置为0,而在被取消断言时被设置为1。此外,可以使用任何其它类型的信令来向接收机传达:被发送到接收机的特定数据是否被倒置。另外,在一些实现方式中,倒置指示符可以被包含于在用于特定场景的切换位的数量的计算中。在这种特定场景中,如果一半的数据通道具有将需要在新时钟周期中转换的位值,并且如果在前一时钟周期中断言了倒置指示符,则执行倒置。在这种情况下,具有切换位的通道数量是通道总数的大部分,其中通道总数包括将在新时钟周期中传输原始数据位的数据
通道和用于倒置指示符位的额外通道。然而,在该实现方式中,进行了计算以确定正好有一半的数据通道具有需要在新时钟周期中转换的位值。
[0090]
当设备810经由数据通道接收在信道822中在新时钟周期中发送的数据时,接收机电路846可以首先确定接收的数据是否被倒置。这可以通过检查经由信道822发送的数据总线倒置指示符来确定。如果数据总线倒置指示符被断言(例如,设置为1),则dbi解码器848可以倒置数据通道的位值以获得原始数据。如果数据总线倒置指示符被取消断言(例如,设置为0),则dbi解码器848不倒置数据通道的位值而简单地接收数据通道的位值作为原始数据。
[0091]
在近似dbi逻辑832的一个或多个替代实施例中,不是将多数票决逻辑应用于转换输入值,而是将多数票决逻辑应用于输入集合以确定要传输的大部分数据位是否为特定逻辑电平(例如,1或0)。要传输的数据位的位值可以划分为两个或更多个集合。在至少一些实施例中,位值可以被均匀划分,使得每个集合包含相同数量的位值。对于给定的位值集合,多数票决电路可以确定由位值的给定集合表示的要传输的大部分位是否具有特定值(例如,1)。可以为给定的集合生成输出值,其中输出值表示集合中的大部分位值是否具有特定值。在一个示例中,输出值1表示集合中的大部分位值具有特定值(例如,1),而输出值0表示集合中少于大部分位值具有特定值。来自被应用到位值集合的多数票决电路的输出值可以与来自被应用到转换输入值集合的多数票决电路的输出值相同或相似的方式进行评估,如本文先前所述。此外,还可以如参考基于转换输入值集合获得的输出值所描述的那样断言或取消断言dbi。
[0092]
转向图9,图9是示出可以在一个或多个实施例中使用的示例性逻辑900的框图。逻辑900表示mcp设备800的mcpl 820的近似dbi逻辑832、842的一种可能的实现方式。在该示例中,针对每dbi八个数据通道(例如,l0-l7,未示出)实现逻辑900。然而,应当理解的是,逻辑900可以被缩放以适应任何数量的数据通道。
[0093]
要在新的时钟周期中通过八个数据通道l0-l7传输的新数据(也称为“原始数据”)包括八位(例如,b0-b7,未示出)。可以将原始数据中的八位的位值分别与八个数据通道l0-l7的位值进行比较,以确定相应的位值是相同还是不同。八个数据通道l0-l7的位值与在前一时钟周期期间传输的数据相关联。基于比较,可以生成八个转换输入值t0-t7,其中每个转换输入值指示被比较的相应位值是相同还是不同。如果被比较的相应位值不同,则生成的转换输入值指示需要将数据通道的位值转换为要经由该数据通道传输的位的位值。如果被比较的相应位值相同,则生成的转换输入值指示数据通道的位值不需要转换为要经由该特定数据通道传输的位的位值。因此,每个转换输入值指示来自前一时钟周期的一个数据通道的位值是否需要转换为另一值(例如,从1转换为0或从0转换为1),以便经由数据通道传输原始数据。
[0094]
通常,近似dbi逻辑(例如900)不是使用转换输入值来计算切换通道数量的实际总和,而是实现两个或更多个多数票决计算来确定总线是否需要倒置(例如,以减少sso)。在图9所示的实施例中,逻辑900实现两个多数票决计算,如第一多数票决逻辑910和第二多数票决逻辑920。转换输入值被划分成四个转换输入值的两个相等的集合(例如,t0-t3和t4-t7)。第一集合的转换输入值t0-t3被馈送到第一多数票决逻辑910中,并且第二集合的转换输入值t4-t7被馈送到第二多数票决逻辑920中。第一多数票决逻辑910确定第一集合的转
换输入值t0-t3是否指示第一集合的数据通道(l0-l3)中的大部分具有来自前一时钟周期的需要转换以便经由第一集合的数据通道(l0-l3)传输原始数据的第一集合的位(例如,b0-b3)的位值。
[0095]
来自多数票决逻辑910的输出值m0指示是否需要转换第一集合的数据通道(例如,l0-l3)中的大部分的位值。在一个示例中,如果第一集合的数据通道(例如,l0-l3)的大部分的位值需要转换,则m0可以被设置为1;并且如果第一集合的数据通道(例如,l0-l3)的少于大部分的位值需要转换,则m0可以被设置为0。
[0096]
第二多数票决逻辑920确定第二集合的转换输入值t4-t7是否指示:第二集合的数据通道(l4-l7)中的大部分具有来自前一时钟周期的位值,这些位值需要被转换以便经由第二集合的数据通道(l4-l7)传输原始数据的第二集合的位(例如,b4-b7)。
[0097]
来自多数票决逻辑920的输出值m1指示是否需要转换第二集合的数据通道(例如,l4-l7)中的大部分的位值。在一个示例中,如果第二集合的数据通道(例如,l4-l7)的大部分的位值需要转换,则m1可以被设置为1;并且如果第二集合的数据通道(例如,l4-l7)的少于大部分的位值需要转换,则m1可以被设置为0。
[0098]
输出值m0和m1可以被馈送到and门930中,该and门930将and逻辑应用于m0和m1。因此,如果m0和m1都指示:在前一个时钟周期中的相应集合的数据通道的大部分的位值需要转换为其它值以在新的时钟周期中传输原始数据,则and门930产生dbi输出值d0(例如,高值1)以断言dbi,并使dbi编码器934将原始数据编码成由数据通道l0-l7传输的倒置版本。如果m0或m1中至少有一个指示:在前一时钟周期中其相应集合的数据通道的位值中少于大部分(即,一半或更少)需要转换到其它值来在新时钟周期中传输原始数据,则and门930产生dbi输出值d0(例如,低值0)以取消断言dbi,并使dbi编码器934将原始数据(即,非倒置的)编码以便由数据通道l0-l7传输。
[0099]
如上所述,当m0和m1二者都指示:相应集合的数据通道中的大部分需要从前一时钟周期转换以便在新的时钟周期中传输原始数据时,可以断言dbi。在上述一种实现方式中,如果m0和m1二者都是1,则dbi可以被断言。这将切换的可能性限制为6个通道。如果可以仅在相应多数票决输入中的4个通道中切换3个时断言m0和m1二者,则可以减少也需要切换的6个通道导致dbi也被断言的概率。在随机化数据流量中,更有可能是4个通道中的3个需要切换,而不是集中集合的通道切换(例如,4和2或2和4)。因此,对于随机位或加扰流量,更可能发生每个子集中需要转换4个中的3个,并且从而导致dbi被断言。虽然这种基于多数票决的计算是近似的,但它基于每多数票决的通道选择限制了总通道切换。这为设计人员提供了在最大允许切换和延时之间的权衡。
[0100]
转向图10,示例性电路图1000示出了多数票决逻辑的进一步细节,例如多数票决逻辑910和920。多数票决逻辑使用来自选择的数量的输入的简单and/or逻辑门来产生指示大部分输入是否为1的输出。在这个示例中,电路图1000包括四个转换输入值t0-t3,四个and门1002、1004、1006和1008,以及or门1010。每个and门具有从转换输入值t0-t3中选择的三个输入的不同组合。每个组合可以代表不同的大部分转换输入值。因此,每个组合可以代表具有需要从前一时钟周期转换的位值的不同的大部分数据通道。例如,t0、t1和t2是and门1002的输入。如果t0、t1和t2中的每一个都指示数据通道的相应位值需要转换为另一位值,则and门1002输出值a0以指示对应于转换输入值t0、t1和t2的大部分数据通道具有需要
转换的位值。类似地,t0、t1和t3是and门1004的输入,其输出a1;t0、t2和t3是and门1006的输入,其输出值a2;并且t1、t2和t3是and门1008的输入,其输出值a3。输出值a0-a4被馈送到or门1010,以确定转换输入值的至少一个组合是否指示:对应于转换输入值t0-t3的大部分数据通道具有需要转换以传输原始数据的位值。输出值m0指示dbi是被断言还是取消断言。
[0101]
具有四个转换输入值的其它多数票决逻辑(例如,920)可以以与电路图1000相同或相似的方式实现。在单个多数票决电路中可以使用更多数量的转换值输入,但可能需要附加的and门来适应得到大多数的其它可能组合。
[0102]
图11-13b示出了说明与用于为延时敏感应用执行基于近似多数票决的dbi技术的系统相关联的示例技术的简化流程图。在至少一个实施例中,一个或多个操作对应于图11-13b的活动。包含处理器(例如,525、540)和发射机电路(例如,830、840)或其一部分的多芯片封装设备(例如,500、800)可以利用、执行或导致一个或多个操作中的至少一些的执行。在至少一些实施例中,转换标识符逻辑(例如,831、841)、近似dbi逻辑(例如,832、842)和/或dbi编码器(例如,834、844)或其一部分可以利用、执行或导致一个或多个操作的至少一些的执行。发射机可以包括用于执行一个或多个操作中的至少一些的硬件、固件、软件或其任何合适的组合。
[0103]
图11示出了说明用于在具有多芯片封装链路(mcpl)的系统中执行基于近似多数票决的dbi技术的通用技术的流程图1100,如本文先前所述。在1102处,可以生成、接收或以其它方式获得原始数据,以用于经由将第一设备连接到第二设备的mcpl中的多个数据通道从第一设备传输到第二设备。原始数据可以包括至少两个集合的多个位(例如,第一位和第二位)。
[0104]
在1104处,确定是否满足与原始数据的第一位和多个通道中的第一通道相关联的第一标准,其中第一位将分别经由第一通道传输到第二设备。在1106处,确定是否满足与原始数据的第二位和多个通道中的第二通道相关联的第二标准,其中第二位将分别经由第二通道传输到第二设备。
[0105]
在1108处,确定是否满足第一标准和第二标准二者。如果不满足第一标准或第二标准,或者如果不满足第一标准和第二标准二者,则在1110处,原始数据被编码以经由多个通道传输。因此,数据通道将在新时钟周期期间分别传输原始数据的位值。在至少一些实施例中,仅转换(例如,改变、倒置等)数据通道中与要传输的原始数据的位值不同的先前位值。数据通道中与要传输的原始数据的位值相同的先前位值可以保持相同的值。在1112处,如果需要,则可以在数据总线倒置通道上取消断言倒置指示符。在一个示例中,可以通过对要在数据总线倒置通道中传输的0值进行编码来取消断言倒置指示符,以向接收设备指示在多个数据通道上传输的数据没有被倒置。
[0106]
再次参考1108,如果确定满足第一标准和第二标准二者,则在1114处,dbi被断言并且原始数据被编码成倒置版本以经由多个通道传输。因此,数据通道将在新的时钟周期期间分别传输原始数据的倒置版本的位值。在至少一些实施例中,仅转换(例如,改变、倒置等)数据通道中与要传输的原始数据的位值相同的先前位值。数据通道中与要传输的原始数据的位值不同的先前位值可以保持相同值。在1116处,如果需要,则在数据总线倒置通道上断言倒置指示符。在一个示例中,可以通过对要在数据总线倒置通道中传输的1值进行编码来断言倒置指示符,以向接收设备指示在多个数据通道上传输的数据被倒置,并且因此
将需要再次倒置被传输的数据以获得原始数据。
[0107]
图12a和图12b示出了说明在基于近似多数票决的dbi技术的一个实施例中与确定是否满足第一标准或第二标准(例如,图11中的1102、1104)相关联的示例操作的简化流程图。图12a示出了简化流程图1200a,其示出了在基于近似多数票决的dbi技术的一个实施例中用于确定是否满足第一标准的一个或多个操作。
[0108]
在1202处,为多个通道中的第一集合的通道(第一通道)生成第一转换输入值。对于第一集合的通道中的每个通道,生成转换输入值,该值指示该通道是否具有与前一时钟周期相关联的这样的位值:该位值需要转换为将在新时钟周期中传输的原始数据的第一集合的位中的位的位值。
[0109]
在1204处,多数票决逻辑应用于为第一通道生成的第一转换输入值。在1206处,基于在新时钟周期期间传输的原始数据中的第一集合的位的至少一些位,多数票决逻辑确定第一转换输入值是否指示:第一通道中的大部分具有来自在前一时钟周期期间传输的数据的位值,这些位值需要进行转换。如果确定第一通道中的大部分具有需要转换的位值,则满足第一标准,并且在1208处,可以设置第一指示符以指示满足了第一标准。如果确定第一通道中的大部分没有需要转换的位值,则不满足第一标准,并在1210处,可以设置第一指示符以指示不满足第一标准。
[0110]
图12b示出了简化流程图1200b,其示出了用于确定在基于近似多数票决的dbi技术的一个实施例中是否满足第二标准的一种可能的技术。在1222处,为多个通道中的第二集合的通道(第二通道)生成第二转换输入值。对于第二集合的通道中的每个通道,生成转换输入值,该值指示该通道是否具有与前一时钟周期相关联的这样的位值:该位值需要转换为将在新时钟周期中传输的原始数据的第二集合的位中的位的位值。
[0111]
在1224处,多数票决逻辑应用于为第二通道生成的第二转换输入值。在1226处,基于将在新时钟周期期间传输的原始数据中的第二集合的位中的至少一些位,多数票决逻辑确定第二转换输入值是否指示:第二通道中的大部分具有来自前一时钟周期期间传输的数据的位值,这些位值需要进行转换。如果确定第二通道中的大部分具有需要转换的位值,则满足第二标准,并且在1228处,可以设置第二指示符以指示满足第二标准。如果确定第二通道中的大部分没有需要转换的位值,则不满足第二标准,并在1230处,可以设置第二指示符以指示不满足第二标准。
[0112]
在至少一个实施例中,可以在图11的1108处使用第一指示符和第二指示符。例如,可以将第一指示符和第二指示符用作and门的输入,来近似大部分数据通道是否具有需要转换为其它位值以传输原始数据的位值。应当理解,本文的概念可以缩放。例如,对于用于传输更多数据的更宽的链路(例如,多个通道中更多数量的通道),可以在多个通道中提供一个或多个附加集合的通道,并且可以将其用于传输更大的数据。在这样的实现方式中,可以执行相同的计算以确定是否满足一个或多个附加标准。指示是否满足一个或多个附加标准的结果指示符也可以用作被包含于该近似中的and门的输入。
[0113]
图13a和图13b示出了说明在基于近似多数票决的dbi技术的另一实施例中与确定是否满足第一标准或第二标准(例如,图11中的1102、1104)相关联的示例性操作的简化流程图。图13a示出了简化流程图1300a,其示出了在基于近似多数票决的dbi技术的另一实施例中用于确定是否满足第一标准的一个或多个操作。
[0114]
在1302处,将多数票决逻辑应用于要在新时钟周期中传输的原始数据的多个位中的第一集合的位(第一位)。在1304处,多数票决逻辑确定第一位的大部分是否具有特定值(或电平),例如二进制1或二进制0。如果确定第一位的大部分具有该特定值,则满足第一标准,并且在1306处,可以设置第一指示符以指示满足第一标准。如果确定第一位的大部分不具有该特定值,则不满足第一标准,并且在1308处,可以设置第一指示符以指示不满足第一标准。
[0115]
图13b示出了简化流程图1300b,其示出了用于确定在基于近似多数票决的dbi技术的另一实施例中是否满足第二标准的一个或多个操作。在1322处,将多数票决逻辑应用于要在新时钟周期中传输的原始数据的多个位中的第二集合的位(第二位)。在1324处,多数票决逻辑确定第二位的大部分是否具有特定值(或电平),例如二进制1或二进制0。如果确定第二位的大部分具有该特定值,则满足第二标准,并且在1326处,可以设置第二指示符以指示满足第二标准。如果确定第二位的大部分不具有该特定值,则不满足第二标准,并且在1328处,可以设置第二指示符以指示不满足第二标准。
[0116]
在至少一个实施例中,可以在图11的1108处使用第一指示符和第二指示符。例如,第一指示符和第二指示符可以用作and门的输入以近似原始数据的大部分位是否具有特定值(或电平)。应当理解,本文的概念可以缩放。例如,对于用于传输更多数据的更宽的链路(例如,多个通道中更多数量的通道),可以在多个通道中提供一个或多个附加集合的通道,并且可以将其用于传输更大的数据。在这样的实现方式中,可以执行相同的计算以确定是否满足一个或多个附加标准。指示是否满足一个或多个附加标准的结果指示符也可以用作对包含于该近似中的and门的输入。
[0117]
图14是示出在不使用数据总线倒置(dbi)的情况下传输随机数据的示例性系统的切换统计数据的条形图1400。在这个没有dbi的示例性场景中,切换均值等于4,并且标准偏差等于1.4145。在没有dbi的情况下,大量传输需要在四个以上的通道中进行位转换。需要在链路的总通道的一半以上(例如,图14中的5-8个通道)中进行位转换的数据传输可能产生大量的同时切换输出(sso)噪声。因此,如图14所示的跨通道的数据传输分布示出了没有dbi的系统会经历大量的sso噪声。
[0118]
图15是示出使用传统交流电dbi(ac-dbi)传输随机数据的示例性系统的切换统计数据的条形图1500。在该具有完整ac-dbi的示例性场景中,切换均值等于3.2696,并且标准偏差等于0.85807。如条形图1500所示,传统dbi的使用以准确计数将位转换限制为四个通道。因此,如图15所示的跨通道的数据传输分布示出了具有传统dbi的系统可以防止大量sso噪声。然而,在传统的dbi的情况下,用于执行准确计数以将位转换限制为四个通道的全加器可能会引入延时,这在延时敏感应用和其它应用中可能是不可接受的。
[0119]
图16是示出使用基于近似多数票决的数据总线倒置技术传输随机数据的示例性系统的切换统计数据的条形图1600。这种基于多数票决的dbi的最大值为8个通道中的6个切换,但比没有dbi的系统(例如,在图4中)的概率要小得多。不会以最大数量的通道(例如,本场景中的通道7和8)发生切换。虽然与使用传统dbi时相比,在5个通道处执行的切换更多,但速度、功率和延时的权衡可能是有利的,并且甚至对于延时敏感应用来说也是至关重要的。
[0120]
图17是在不使用dbi的系统、使用完全ac-dbi的系统和使用基于近似多数票决的
dbi的系统中,比较使用不同参数的各种场景的结果的切换统计数据的电子表格1700。在功率传输下垂和噪声模拟中考虑了这种影响,以确保满足期望的规格。因此,对于信道中的任意数量的通道,可以对应用多数投票逻辑的组的数量进行调整。根据选择的组数,每组中的通道数可以改变。例如,对于具有16条通道的链路的设备,可以将基于近似多数票决的dbi配置为将多数票决逻辑应用于4个不同的组,每组4条通道。替代地,基于近似多数票决的dbi可以被配置为将多数票决逻辑应用于2个不同的组,每组8个通道。在2组每组8通道的配置中,与使用4组每组4通道相比,基于多数票决的dbi的切换均值(7.0064)更接近传统dbi的切换均值(即,6.8225)。因此,使用2组每组8通道可以比其它选项减少更多的sso噪声。
[0121]
注意,上述装置、方法和系统可以在如前所述的任何电子设备或系统中实现。作为具体说明,以下附图提供了用于利用如本文所述的实施例的示例性系统。当以下更详细地描述系统时,从上面的讨论中公开、描述和回顾了许多不同的互连。并且很明显,上述进步可以应用于那些互连、结构或架构中的任何一个。例如,可以实现第一和第二设备(或管芯)(例如,505、510、605、610、805、810),其配备有用于实现如上述示例中讨论的基于近似多数投票的dbi技术的功能,在多种计算架构中的任何一种中(例如,使用多种不同互连或结构中的任何一种)。例如,设备可以在个人计算系统内进行通信(例如,在膝上型计算机、台式机、移动设备、智能手机、物联网(iot)设备、智能设备、游戏控制台、媒体控制台等中实现)。在另一示例中,设备可以在服务器计算系统(例如,机架服务器、刀片服务器、塔式服务器、机架规模服务器架构或其它分解的服务器架构)以及其它示例内进行通信。
[0122]
参考图18,描绘了包括多核处理器的计算系统的框图的实施例。处理器1800包括任何处理器或处理设备,例如微处理器、嵌入式处理器、数字信号处理器(dsp)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(soc)或用于执行代码的其它设备。在一个实施例中,处理器1800包括至少两个核心——核心1801和1802,其可包括非对称核心或对称核心(所示实施例)。然而,处理器1800可以包括任意数量的可以是对称或非对称的处理元件。
[0123]
在一个实施例中,处理元件是指用于支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、进程单元、上下文、上下文单元、逻辑处理器、硬件线程、核心和/或能够保持处理器的状态(例如,执行状态或架构状态)的任何其它元件。换句话说,在一个实施例中,处理元件是指能够独立地与代码相关联的任何硬件,代码例如软件线程、操作系统、应用或其它代码。物理处理器(或处理器插槽)通常是指集成电路,它可能包括任意数量的其它处理元件,例如核心或硬件线程。
[0124]
核心通常是指位于集成电路上能够维持独立架构状态的逻辑,其中每个独立维持的架构状态与至少一些专用执行资源相关联。与核心形成对比,硬件线程通常是指位于集成电路上能够维持独立架构状态的任何逻辑,其中独立维持的架构状态共享对执行资源的访问。可以看出,当某些资源被共享而其它资源专用于架构状态时,在硬件线程和核心的命名法之间的界限是重叠的。然而,核心和硬件线程通常被操作系统视为个体的逻辑处理器,其中操作系统能够单独地调度每个逻辑处理器上的操作。
[0125]
如图18所示,物理处理器1800包括两个核心——核心1801和1802。这里,核心1801和1802被认为是对称核心,即具有相同配置、功能单元和/或逻辑的核心。在另一实施例中,核心1801包括乱序处理器核心,而核心1802包括有序处理器核心。然而,核心1801和1802可
以从任何类型的核心中单独地选择,例如本机核心、软件管理核心、适用于执行本机指令集架构(isa)的核心、适用于执行转换指令集架构(isa)的核心、共同设计的核心或其它已知核心。在异构核心环境(即,非对称核心)中,可以利用某种形式的转换,例如二进制转换,以在一个或两个核心上调度或执行代码。为了进一步讨论,下面更详细地描述核心1801中所示的功能单元,因为核心1802中的单元在所描绘的实施例中以类似的方式操作。
[0126]
如图所示,核心1801包括两个硬件线程1801a和1801b,它们也可以被称为硬件线程槽1801a和1801b。因此,在一个实施例中,诸如操作系统之类的软件实体可能将处理器1800视为四个单独的处理器,即能够同时执行四个软件线程的四个逻辑处理器或处理元件。如上所述,第一线程与架构状态寄存器1801a相关联,第二线程与架构状态寄存器1801b相关联,第三线程可与架构状态寄存器1802a相关联,并且第四线程可与架构状态寄存器1802b相关联。这里,架构状态寄存器(1801a、1801b、1802a和1802b)中的每一个可以被称为处理元件、逻辑处理器、线程槽或线程单元,如上所述。如图所示,架构状态寄存器1801a在架构状态寄存器1801b中被复制,因此能够为逻辑处理器1801a和逻辑处理器1801b存储各个架构状态/上下文。在核心1801中,还可以为线程1801a和1801b复制其它较小的资源,例如分配器和重命名器块1830中的指令指针和重命名逻辑。一些资源(例如,重新排序/引退单元1835中的重新排序缓冲器、i-tlb1820、加载/存储缓冲器和队列)可以通过分区来共享。其它资源(例如,通用内部寄存器、页表基址寄存器、低级数据高速缓存和数据tlb 1815、执行单元1840和乱序单元1835的部分)可能是完全共享的。
[0127]
处理器1800通常包括其它资源,这些资源可以完全共享、通过分区共享或由处理元件专用/对处理元件专用的。在图18中,示出了具有处理器的说明性逻辑单元/资源的纯示例性处理器的实施例。注意,处理器可以包括或省略这些功能单元中的任何一个,以及包括未描绘的任何其它已知功能单元、逻辑或固件。如图所示,核心1801包括简化的、代表性的乱序(ooo)处理器核心。但是在不同的实施例中可以使用有序处理器。ooo核心包括用于预测要执行/采用的分支的分支目标缓冲器1820和用于存储指令的地址转换条目的指令转换缓冲器(i-tlb)1820。
[0128]
核心1801还包括耦合到取得单元(例如,btb 1820)以对取得的元素进行解码的解码模块1825。在一个实施例中,取得逻辑包括分别与线程槽1801a、1801b相关联的各个定序器。通常核心1801与第一isa相关联,第一isa定义/指定在处理器1800上可执行的指令。通常作为第一isa的一部分的机器代码指令包括指令的一部分(称为操作码),其引用/指定要执行的指令或操作。解码逻辑1825包括从它们的操作码识别这些指令并将解码的指令在流水线中传递以用于进行处理(如第一isa定义的)的电路。例如,如下文更详细讨论的,在一个实施例中,解码器1825包括被设计或适配成识别特定指令(例如,事务指令)的逻辑。作为解码器1825识别的结果,架构或核心1801采取特定的、预先定义的动作来执行与适当指令相关联的任务。重要的是需要注意,本文描述的任何任务、块、操作和方法都可以响应于单个或多个指令来执行;其中一些可能是新的或旧的指令。在一个实施例中,注意,解码器1826识别相同的isa(或其子集)。替代地,在异构核心环境中,解码器1826识别第二isa(第一isa的子集或不同的isa)。
[0129]
在一个示例中,分配器和重命名器块1830包括用于保留资源的分配器,例如用于存储指令处理结果的寄存器文件。然而,线程1801a和1801b可能能够乱序执行,其中分配器
和重命名器块1830还保留其它资源,例如重新排序缓冲器以跟踪指令结果。重命名器单元1830还可包括寄存器重命名器以将程序/指令参考寄存器重命名为处理器1800内部的其它寄存器。重排序/引退单元1835包括诸如上述重排序缓冲器、加载缓冲器和存储缓冲器之类的组件,以支持乱序执行以及乱序执行的指令的后续的有序引退。
[0130]
在一个实施例中,调度器和执行单元块1840包括调度器单元以调度执行单元上的指令/操作。例如,在具有可用浮点执行单元的执行单元的端口上调度浮点指令。还包括与执行单元相关联的寄存器文件,以用于存储信息指令处理结果。示例性执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元和其它已知的执行单元。
[0131]
较低级别的数据高速缓存和数据转换缓冲器(d-tlb)1850耦合到执行单元1840。数据高速缓存用于存储最近使用/操作的元素,例如数据操作数,这些元素可能被保存在存储器一致性状态下。d-tlb用于存储最近的虚拟/线性到物理地址转换。作为具体示例,处理器可以包括页表结构以将物理存储器分成多个虚拟页。
[0132]
这里,核心1801和1802共享对更高级别或更远的高速缓存的访问,例如与片上接口1810相关联的第二级高速缓存。注意,更高级别或更远是指高速缓存级别增加或离执行单元更远。在一个实施例中,更高级别的高速缓存是最后一级数据高速缓存(处理器1800上的存储器层级中的最后一个高速缓存),例如第二或第三级数据高速缓存。然而,更高级别的高速缓存不受此限制,因为它可以与指令高速缓存相关联或包括指令高速缓存。跟踪高速缓存(trace cache)(一种指令高速缓存)可以相反在解码器1825之后耦合以存储最近解码的跟踪。这里,指令潜在地指的是宏指令(即,解码器识别的通用指令),其可以解码为多个微指令(微操作)。
[0133]
在所描绘的配置中,处理器1800还包括片上接口模块1810。历史上,下文更详细描述的存储器控制器已包含于处理器1800外部的计算系统中。在这种场景中,片上接口1810用于与处理器1800外部的设备通信,例如系统存储器1875、芯片组(通常包括用于连接到存储器1875的存储器控制器中心和用于连接外围设备的i/o控制器中心)、存储器控制器中心、北桥或其它集成电路。并且在这种场景下,总线1805可以包括任何已知的互连,例如多点总线、点对点互连、串行互连、并行总线、一致(例如,高速缓存一致)总线、分层协议架构、差分总线和gtl总线。
[0134]
存储器1875可以专用于处理器1800或与系统中的其它设备共享。存储器1875类型的常见示例包括dram、sram、非易失性存储器(nv存储器)和其它已知的存储设备。注意,设备1880可以包括图形加速器、耦合到存储器控制器中心的处理器或卡、耦合到i/o控制器中心的数据存储装置、无线收发机、闪存设备、音频控制器、网络控制器、或其它已知设备。
[0135]
然而,最近,随着更多的逻辑和设备被集成在单个管芯上,例如soc,这些设备中的每一个都可以并入处理器1800上。例如,在一个实施例中,存储器控制器中心与处理器1800在同一封装和/或管芯上。这里,核心的一部分(核心上(on-core)部分)1810包括一个或多个控制器,以用于与诸如存储器1875或图形设备1880之类的其它设备接合。包括用于与此类设备接合的互连和控制器的配置通常称为核心上(或un-core配置)。例如,片上接口1810包括用于片上通信的环形互连和用于片外通信的高速串行点对点链路(或总线)1805。然而,在soc环境中,甚至更多的设备(例如,网络接口、协处理器、存储器1875、图形处理器
1880和任何其它已知的计算机设备/接口)可以集成在单个管芯或集成电路上以提供具有高功能和低功耗的小外形规格(form factor)。
[0136]
在一个实施例中,处理器1800能够执行编译器、优化和/或转换器代码1877以编译、转换和/或优化应用代码1876以支持本文描述的装置和方法或与其接合。编译器通常包括程序或程序集合,以用于将源文本/代码转换成目标文本/代码。通常,用编译器对程序/应用代码的编译分多个阶段和多遍(pass)完成,以将高级编程语言代码转换为低级机器或汇编语言代码。然而,单程编译器仍可用于简单编译。编译器可以利用任何已知的编译技术并执行任何已知的编译器操作,例如词法分析、预处理、解析、语义分析、代码生成、代码转换和代码优化。
[0137]
较大的编译器通常包括多个阶段,但大多数情况下,这些阶段包含在两大致阶段中:(1)前端,即通常可能进行句法处理、语义处理和一些转换/优化的地方,以及(2)后端,即通常进行分析、转换、优化和代码生成的地方。一些编译器提到了中间,这说明了在编译器的前端和后端之间的界限模糊。结果,对编译器的插入、关联、生成或其它操作的引用可以发生在任何上述阶段或遍中,以及编译器的任何其它已知阶段或遍中。作为说明性示例,编译器潜在地在编译的一个或多个阶段中插入操作、调用、函数等,例如在编译的前端阶段插入调用/操作,并且然后在转换阶段期间将调用/操作转换为较低级别的代码。注意,在动态编译期间,编译器代码或动态优化代码可能会插入此类操作/调用,以及优化代码以在运行时期间执行。作为具体的说明性示例,可以在运行时期间动态优化二进制代码(已经编译的代码)。这里,程序代码可以包括动态优化代码、二进制代码或者其组合。
[0138]
与编译器类似,转换器(例如,二进制转换器)静态或动态地转换代码以优化和/或转换代码。因此,对代码、应用代码、程序代码或其它软件环境的执行的引用可以指:(1)动态或静态地执行编译器程序、优化代码优化器或转换器,以编译程序代码、维护软件结构、执行其它操作、优化代码或转换代码;(2)执行包括操作/调用的主程序代码,例如已经被优化/编译的应用代码;(3)执行与主程序代码相关联的其它程序代码(例如,库),以维护软件结构、执行其它软件相关操作、或优化代码;或(4)它们的组合。
[0139]
现在参考图19,图19示出了布置在点对点(ptp)互连系统中的另一系统1900的框图。特别地,图19示出了处理器、存储器和输入/输出设备通过多个点对点接口互连的系统。一般而言,系统1900可利用如本文先前描述的以基于近似多数票决的dbi系统实施的设备(或管芯)中的一个或多个。
[0140]
如图19所示,系统1900包括处理器1970和1980,它们可以实现为单核心处理器1974a和1984a或多核心处理器1974a-1974b和1984a-1984b。处理器1970和1980可以均包括由它们各自的一个或多个核心使用的高速缓存1971和1981。共享缓存(未示出)可以包含于任一处理器中或两个处理器外部,但经由p-p互连与处理器连接,使得当处理器置于低功率模式时,可以将处理器中一个或两个的本地高速缓存信息存储在共享高速缓存中。
[0141]
处理器1970和1980还可以均包括集成存储器控制器逻辑(mc)1972和1982以与存储器元件1932和1934通信,存储器元件1932和1934可以是本地附接到相应处理器的主存储器的部分。在替代实施例中,存储器控制器逻辑1972和1982可以是与处理器1970和1980分离的离散逻辑。存储器元件1932和/或1934可以存储要由处理器1970和1980在实现本文概述的操作和功能时使用的各种数据。
[0142]
处理器1970和1980可以是任何类型的处理器,例如结合其它附图讨论的那些处理器。处理器1970和1980可以分别使用点对点接口电路1978和1988经由点对点(ptp)接口1950交换数据。处理器1970和1980可以均使用点对点接口电路1976、1986、1994和1998经由各个点对点接口1952和1954与输入/输出(i/o)子系统1990交换数据。i/o子系统1990还可以使用接口电路1992经由高性能图形接口1939与高性能图形电路1938交换数据,接口电路1992可以是ptp接口电路。在一个实施例中,高性能图形电路1938是专用处理器,例如高吞吐量mic处理器、网络或通信处理器、压缩引擎、图形处理器、gpgpu、嵌入式处理器等。i/o子系统1990还可与显示器1933通信以显示人类用户可查看的数据。在替代实施例中,图19中所示的任何或所有ptp链路都可以实现为多点总线而不是ptp链路。
[0143]
i/o子系统1990可以经由接口电路1996与总线1910通信。总线1910可以具有通过它通信的一个或多个设备,例如总线桥1918和i/o设备1916。经由总线1920,总线桥1918可以与其它设备通信,例如用户界面1912(例如,键盘、鼠标、触摸屏或其它输入设备)、通信设备1926(例如,调制解调器、网络接口设备或可通过计算机网络1960通信的其它类型的通信设备)、音频i/o设备1924和/或存储单元1928。存储单元1928可以存储可以由处理器1970和/或1980执行的代码和数据1930。在替代实施例中,总线架构的任何部分可以用一个或多个ptp链路来实现。
[0144]
图19中描绘的计算机系统是可用于实现本文讨论的各种实施例的计算系统的实施例的示意图。应当理解,图19中描绘的系统的各种组件可以被组合在片上系统(soc)架构中或者在能够实现本文提供的示例和实现方式的功能和特征的任何其它合适的配置中。
[0145]
虽然已经关于有限数量的实施例描述了本公开,但是本领域技术人员将理解由此产生的许多修改和变型。所附权利要求旨在涵盖落入本公开的真实精神和范围内的所有此类修改和变型。
[0146]
设计可以经历从创建到模拟到制造的各个阶段。表示设计的数据可以多种方式表示设计。首先,如在模拟中有用的,可以使用硬件描述语言或其它功能描述语言来表示硬件。此外,可以在设计过程的一些阶段处产生具有逻辑和/或晶体管门的电路级模型。此外,大多数设计在某个阶段处达到了表示硬件模型中各种设备的物理位置的数据级别。在使用传统半导体制造技术的情况下,表示硬件模型的数据可以是指定在用于产生集成电路的掩模的不同掩模层上存在或不存在各种特征的数据。在设计的任何表示中,数据可以存储在任何形式的机器可读介质中。存储器或诸如光盘之类的磁或光存储装置可以是机器可读介质,以用于存储经由调制或以其它方式生成以传输此类信息的光或电波传输的信息。当传输指示或携带代码或设计的电载波时,在执行电信号的复制、缓冲或重新传输的范围内,制作了新的复本。因此,通信提供商或网络提供商可以在有形的、机器可读介质上至少暂时地存储体现本公开的实施例的技术的物品,例如编码到载波中的信息。
[0147]
如本文所使用的模块是指硬件、软件和/或固件的任何组合。作为示例,模块包括硬件,例如微控制器,其与非暂时性介质相关联以存储适于由微控制器执行的代码。因此,在一个实施例中,对模块的引用是指硬件,其被专门配置为识别和/或执行要保存在非暂时性介质上的代码。此外,在另一实施例中,“模块”的使用指的是包括代码的非暂时性介质,该代码特别适于由微控制器执行以执行预定操作。并且可以推断,在又一实施例中,术语“模块”(在该示例中)可以指微控制器和非暂时性介质的组合。通常,被示为单独的模块边
界通常变化并可能重叠。例如,第一和第二模块可以共享硬件、软件、固件或其组合,同时潜在地保留一些独立的硬件、软件或固件。在一个实施例中,术语“逻辑”的使用包括硬件,例如晶体管、寄存器,或其它硬件,例如可编程逻辑设备。此外,术语“逻辑”还可以包括软件、固件或硬件、固件和/或软件的任何组合。
[0148]
在一个实施例中,短语“用于”或“被配置为”的使用是指布置、组装、制造、提供销售、进口和/或设计装置、硬件、逻辑或元件以执行指定或确定的任务。在该示例中,如果未正在操作的装置或其元件被设计、耦合和/或互连以执行指定任务,则它仍被“配置为”执行所述指定任务。作为纯粹的说明性示例,逻辑门在操作期间可以提供0或1。但是“被配置为”或“用于”向时钟提供使能信号的逻辑门不包括可以提供1或0的每个潜在逻辑门。相反,逻辑门是以某种方式耦合的,在操作期间,1或0输出用于启用时钟。再次注意,术语“被配置为”的使用不需要操作,而是关注于装置、硬件和/或元件的潜在状态,其中在潜在状态下,装置、硬件和/或元件被设计为在装置、硬件和/或元件在操作时执行特定任务。
[0149]
如本文所使用的,值包括数字、状态、逻辑状态或二进制逻辑状态的任何已知表示。通常,逻辑电平、逻辑值或逻辑上的值的使用也称为1和0,其简单地表示二进制逻辑状态。例如,1表示高逻辑电平,并且0表示低逻辑电平。在一个实施例中,诸如晶体管或闪存单元之类的存储单元可以能够保存单个逻辑值或多个逻辑值。但是,已经使用了计算机系统中值的其它表示。例如,十进制数“十”也可以表示为二进制值1010和十六进制字母a。因此,值包括能够在计算机系统中保存的信息的任何表示。
[0150]
实施例可以被描述为过程,过程被描绘为流图、流程图、数据流程图、结构图或框图。虽然流程图可以将操作描述为顺序过程,但许多操作可以并行、并发或同时执行。此外,可以重新安排操作的次序。过程可以在其操作完成时终止,但也可以具有未包括在附图中的附加步骤。过程可以对应于方法、函数、流程、子例程、子程序等。当过程对应于函数时,它的终止可能对应于函数返回到调用函数和/或主函数。此外,两个或更多个单独流程图中的一些或全部操作可以组合成一个实施例。
[0151]
参照根据本公开的实施例的方法(过程)、装置(系统)和/或计算机程序产品的流程图图示和/或框图来描述本公开。应当理解,流程图图示和/或框图中的每个框以及流程图图示和/或框图中的框的组合可以由硬件、固件、软件或其组合来实现。在一个或多个实施例中,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以是计算机程序指令的形式。
[0152]
上面阐述的方法、硬件、软件、固件或代码的实施例可以经由存储在可由处理元件执行的机器可访问、机器可读、计算机可访问或计算机可读介质上的指令或代码来实现。非暂时性机器可访问/可读介质包括以机器(例如,计算机或电子系统)可读的形式提供(即,存储和/或传输)信息的任何机构。例如,非暂时性机器可访问介质包括随机存取存储器(ram),例如静态ram(sram)或动态ram(dram);rom;磁或光存储介质;闪存设备;电存储设备;光存储设备;声学存储设备;其它形式的存储设备,以用于保存从瞬态(传播)信号(例如,载波、红外信号、数字信号)接收到的信息;等等,它们将与可能从中接收信息的非暂时性介质区分开。
[0153]
用于对逻辑进行编程以执行本公开的实施例的指令可以存储在系统中的存储器内,例如dram、高速缓存、闪存或其它存储装置。此外,指令可以经由网络或通过其它计算机
可读介质的方式来分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机构,但不限于软盘、光盘、压缩盘只读存储器(cd-rom)、以及磁光盘、只读存储器(rom)、随机存取存储器(ram)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、磁卡或光卡、闪存、或有形的机器可读存储设备,其用于经由电、光、声或其它形式的传播信号(例如,载波、红外信号、数字信号等)在互联网上传输信息。因此,计算机可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的有形机器可读介质。
[0154]
如本文所使用的,术语“电路”是指以下各项、是以下各项的一部分或包括以下各项:硬件组件,例如电子电路、逻辑电路、处理器(共享、专用或组)和/或存储器(共享、专用或组)、专用集成电路(asic)、现场可编程设备(fpd)(例如,现场可编程门阵列(fpga)、可编程逻辑设备(pld)、复杂pld(cpld)、高容量pld(hcpld)、结构化asic或可编程片上系统(soc))、数字信号处理器(dsp)等,它们被配置为提供所描述的功能。在一些实施例中,电路可以执行一个或多个软件或固件程序以提供所描述的功能中的至少一些。
[0155]
如本文所使用的,术语“处理器电路”是指以下各项、是以下各项的一部分或包括以下各项:电路,其能够顺序且自动地执行一系列算术或逻辑运算;记录、存储和/或传输数字数据。术语“处理器电路”可以指一个或多个应用处理器、一个或多个基带处理器、物理中央处理单元(cpu)、单核心处理器、双核心处理器、三核心处理器、四核心处理器和/或能够执行或以其它方式操作计算机可执行指令(例如,程序代码、软件模块和/或功能过程)的任何其它设备。如本文所使用的,术语“接口电路”可以指以下各项、是以下各项的一部分或者包括以下各项:提供在两个或更多个组件或设备之间的信息交换的电路。术语“接口电路”可以指一个或多个硬件接口(例如,总线、输入/输出(i/o)接口、外围组件接口、网络接口卡等)。如本文所使用的,术语“将
……
实例化”、“实例化”等可指实例的创建,而“实例”可指对象的具体发生,其可例如在执行程序代码期间发生。
[0156]
计算系统或平台可以广泛地使用耦合到计算机总线的各种设备。计算机总线可以包括相关的硬件组件(电线、光纤等)和软件,包括通信协议。外围组件互连(pci)总线或pci express(pcie、pci-e)可以是基于规范或接口标准的计算机总线,它为系统软件或系统驱动程序提供机制以执行与耦合到pci总线或pcie总线的设备的配置有关的各种操作。耦合到计算机总线的设备或组件也可称为功能。pcie可以在消费者、服务器和工业应用中操作,作为主板级互连(以链接安装在主板上的外围设备)、无源背板互连以及作为插件板的扩展卡接口。pcie设备经由称为互连或链路的逻辑连接进行通信。链路是两个pcie端口之间的点对点通信信道,以允许它们二者发送和接收普通的pci请求,例如配置、输入/输出(i/o)或存储器读/写和中断。在物理级别,链路可能由一个或多个通道组成。低速外围设备(例如,802.11wi-fi卡)使用单通道(
×
1)链路,而图形适配器通常使用宽得多且快得多的16通道链路。应当注意,“链路”还可以指与连接高速组件的任何其它类型的接口标准相关联的通信通道。
[0157]
在整个说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性包含于本公开的至少一个实施例中。因此,在本说明书各处出现的短语“在一个实施例中”或“在实施例中”不一定都指代相同的实施例。此外,特定特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。
[0158]
如本文所使用的,除非明确相反地说明,否则短语“至少一个”的使用是指所提到的项目、元素、条件或活动的任何组合。例如,“x、y和z中的至少一个”旨在表示以下任一项:1)至少一个x,但不是y也不是z;2)至少一个y,但不是x也不是z;3)至少一个z,但不是x也不是y;4)至少一个x和至少一个y,但不是z;5)至少一个x和至少一个z,但不是y;6)至少一个y和至少一个z,但不是x;或7)至少一个x、至少一个y和至少一个z。
[0159]
此外,除非明确相反地说明,否则术语“第一”、“第二”、“第三”等旨在区分它们修饰的特定名词(例如,元素、条件、模块、活动、操作、权利要求元素等),但不旨在表示所修饰名词的任何类型的次序、等级、重要性、时间顺序或层级。例如,“第一x”和“第二x”旨在指定两个单独的x元素,它们不一定受这两个元素的任何次序、等级、重要性、时间顺序或层级的限制。
[0160]
在前述说明书中,已经参考特定示例性实施例给出了详细描述,但并不旨在穷举或将实施例的范围限制为所公开的精确形式。然而,很明显,在不背离所附权利要求中阐述的本公开的更广泛的精神和范围的情况下,可以对其进行各种修改和改变。因此,说明书和附图被认为是说明性的而非限制性的。此外,实施例和其它示例性语言的前述使用不一定指相同的实施例或相同的示例,而是可以指不同的和有区别的实施例,以及潜在地相同的实施例。
[0161]
其它注意事项和示例:
[0162]
以下示例涉及根据本说明书的实施例。系统、装置、方法和机器可读存储介质实施例可以包括以下示例中的一个或组合。
[0163]
示例a1提供了一种设备,包括:包括多个通道的链路,其用于将设备连接到接收设备,该多个通道包括第一通道和第二通道;以及耦合到链路的电路。在示例a1中,电路用于:接收包括第一位和第二位的原始数据以在新的时钟周期中传输,其中第一位将分别经由第一通道传输,并且第二位将分别经由第二通道传输;确定是否满足与第一位相关联的第一标准;确定是否满足与第二位相关联的第二标准;以及至少部分地基于确定是否满足第一标准以及是否满足第二标准来确定是否经由多个通道传输原始数据的倒置版本。
[0164]
在示例a2中,示例a1的主题可以可选地包括:其中,确定满足第一标准包括:确定第一通道中的大部分具有基于至少一些第一位需要转换的各自的先前位值;以及确定满足第二标准包括:确定第二通道中的大部分具有基于至少一些第二位需要转换的各自的先前位值。
[0165]
在示例a3中,示例a2的主题可以可选地包括:其中,第一通道的各自的先前位值与先前的时钟周期相关联,并且其中第二通道的各自的先前位值与先前的时钟周期相关联。
[0166]
在示例a4中,示例a2-a3中任一项的主题可以可选地包括:其中,所述电路还用于:在确定满足第一标准之前,确定第一通道中的大部分的各自的先前位值不同于第一位的对应大部分的各自的第一位值;以及在确定满足第二标准之前,确定第二通道中的大部分的各自的先前位值不同于第二位的对应大部分的各自的第二位值。
[0167]
在示例a5中,示例a1-a4中任一项的主题可以可选地包括:其中,所述电路还用于:响应于确定满足第一标准和第二标准,将原始数据编码为倒置版本以经由多个通道传输。
[0168]
在示例a6中,示例a1的主题可以可选地包括:其中,确定不满足第一标准包括:基于至少一半的第一位,确定至少一半的第一通道具有不需要转换的各自的先前位值;以及
其中确定不满足第二标准包括:基于至少一半的第二位,确定至少一半的第二通道具有不需要转换的各自的先前位值。
[0169]
在示例a7中,示例a1或a6中任一项的主题可以可选地包括:其中,所述电路还用于:响应于确定未满足第一标准和第二标准,在多个通道上传输原始数据。
[0170]
在示例a8中,示例a1的主题可以可选地包括:其中,所述电路还用于:基于确定第一位中的大部分具有第一值来确定满足第一标准;以及基于确定第二位中的大部分具有第一值来确定满足第二标准。
[0171]
在示例a9中,示例a8的主题可以可选地包括:其中,第一值是二进制0或1。
[0172]
在示例a10中,示例a1-a9中任一项的主题可以可选地包括:其中,所述电路还用于:确定是否满足与原始数据的第三位相关联的第三标准;以及部分地基于确定是否满足第三标准来确定是否经由多个通道传输原始数据的倒置版本。
[0173]
在示例a11中,示例a10的主题可以可选地包括:其中,确定满足第三标准包括:基于原始数据中的至少一些第三位,确定多个通道中的第三通道的大部分具有需要转换的各自的先前位值。
[0174]
在示例a12中,示例a1-a11中任一项的主题可以可选地包括:其中,第一通道的数量等于第二通道的数量。
[0175]
在示例a13中,示例a1-a12中任一项的主题可以可选地包括:其中,链路是多芯片封装链路,并且其中第一通道和第二通道是数据通道。
[0176]
示例s1提供了一种系统,包括:处理器;耦合到该处理器的第一设备;以及多个通道,包括第一通道和第二通道,所述多个通道用于将第一设备连接到第二设备。在示例s1中,第一设备用于:获得包括第一位和第二位的原始数据以在新的时钟周期中传输,其中第一位分别经由第一通道传输,并且第二位分别经由第二通道传输;确定是否满足与第一位相关联的第一标准;确定是否满足与第二位相关联的第二标准;以及至少部分地响应于确定满足第一标准且满足第二标准来经由多个通道传输原始数据的倒置版本。
[0177]
在示例s2中,示例s1的主题可以可选地包括:其中,确定满足第一标准包括:基于至少一些第一位,确定第一通道中的大部分具有需要转换的各自的先前位值;以及确定满足第二标准包括:基于至少一些第二位,确定第二通道中的大部分具有需要转换的各自的先前位值。
[0178]
在示例s3中,示例s2的主题可以可选地包括:其中,第一通道的各自的先前位值与先前的时钟周期相关联,并且其中第二通道的各自的先前位值与先前的时钟周期相关联。
[0179]
在示例s4中,示例s2-s3中任一项的主题可以可选地包括:其中,第一设备还用于:在确定满足第一标准之前,确定第一通道中的大部分的各自的先前位值不同于第一位的对应大部分的各自的第一位值;以及在确定满足第二标准之前,确定第二通道中的大部分的各自的先前位值不同于第二位的对应大部分的各自第二位值。
[0180]
在示例s5中,示例s1-s4中任一项的主题可以可选地包括:其中,第一设备还用于:响应于确定满足第一标准和第二标准,将原始数据编码为倒置版本以经由多个通道传输。
[0181]
在示例s6中,示例s1的主题可以可选地包括:其中,确定不满足第一标准包括:基于至少一半的第一位,确定至少一半的第一通道具有不需要转换的各自的先前位值;以及其中确定不满足第二标准包括:基于至少一半的第二位,确定至少一半的第二通道具有不
需要转换的各自的先前位值。
[0182]
在示例s7中,示例s1或s6中任一项的主题可以可选地包括:其中,第一设备还用于:响应于确定不满足第一标准和第二标准,在多个通道上传输原始数据。
[0183]
在示例s8中,示例s1的主题可以可选地包括:其中,第一设备还用于:基于确定第一位中的大部分具有第一值来确定满足第一标准;以及基于确定第二位中的大部分具有第一值来确定满足第二标准。
[0184]
在示例s9中,示例s8的主题可以可选地包括:其中,第一值是二进制0或1。
[0185]
在示例s10中,示例s1-s9中任一项的主题可以可选地包括:其中,第一设备还用于:确定是否满足与原始数据中的第三位相关联的第三标准;以及部分地基于确定是否满足第三标准来确定是否经由多个通道传输原始数据的倒置版本。
[0186]
在示例s11中,示例s10的主题可以可选地包括:其中,确定满足第三标准包括:基于原始数据中的至少一些第三位,确定多个通道中的第三通道的大部分具有需要转换的各自的先前位值。
[0187]
在示例s12中,示例s1-s11中任一项的主题可以可选地包括:其中,第一通道的数量等于第二通道的数量。
[0188]
在示例s13中,示例s1-s12中任一项的主题可以可选地包括:所述系统还包括将第一设备连接到第二设备的多芯片封装链路,其中多芯片封装链路包括多个通道,并且其中第一通道和第二通道是数据通道。
[0189]
示例m1提供了一种方法,包括:在通过多个通道连接到第二设备的第一设备处,获得包括第一位和第二位的原始数据,其中第一位将分别经由多个通道中的第一通道在新时钟周期中传输,并且第二位将分别经由多个通道中的第二通道在新时钟周期中传输。该方法还包括:确定是否满足与第一位相关联的第一标准;确定是否满足与第二位相关联的第二标准;以及至少部分地基于确定是否满足第一标准以及是否满足第二标准,来确定是否经由多个通道传输原始数据的倒置版本。
[0190]
在示例m2中,示例m1的主题可以可选地包括:所述方法还包括:确定满足第一标准包括:基于至少一些第一位,确定第一通道中的大部分具有需要转换的各自的先前位值;以及确定满足第二标准包括:基于至少一些第二位,确定第二通道中的大部分具有需要转换的各自的先前位值。
[0191]
在示例m3中,示例m2的主题可以可选地包括:其中,第一通道的各自的先前位值与先前的时钟周期相关联,并且其中第二通道的各自的先前位值与先前的时钟周期相关联。
[0192]
在示例m4中,示例m2-m3中任一项的主题可以可选地包括:所述方法还包括:在确定满足第一标准之前,确定第一通道中的大部分的各自的先前位值不同于所述第一位的对应大部分的各自的第一位值;以及在确定满足第二标准之前,确定第二通道中的大部分的各自的先前位值不同于第二位的对应大部分的各自的第二位值。
[0193]
在示例m5中,示例m1-m4中任一项的主题可以可选地包括:所述方法还包括:响应于确定满足第一标准和第二标准,将原始数据编码为倒置版本以经由多个通道传输。
[0194]
在示例m6中,示例m1的主题可以可选地包括:其中,确定不满足第一标准包括:基于至少一半的第一位,确定至少一半的第一通道具有不需要转换的各自的先前位值;以及其中确定不满足第二标准包括:基于至少一半的第二位,确定至少一半的第二通道具有不
需要转换的各自的先前位值。
[0195]
在示例m7中,示例m1或m6中任一项的主题可以可选地包括:所述方法还包括:响应于确定不满足第一标准和第二标准,在多个通道上传输原始数据。
[0196]
在示例m8中,示例m1的主题可以可选地包括:所述方法还包括:基于确定第一位中的大部分具有第一值来确定满足第一标准;以及基于确定第二位中的大部分具有第一值来确定满足第二标准。
[0197]
在示例m9中,示例m8的主题可以可选地包括:其中,第一值是二进制0或1。
[0198]
在示例m10中,示例m1-m9中任一项的主题可以可选地包括:所述方法还包括:确定是否满足与原始数据中的第三位相关联的第三标准;以及部分地基于确定是否满足第三标准,来确定是否经由多个通道传输原始数据的倒置版本。
[0199]
在示例m11中,示例m10的主题可以可选地包括:其中,确定满足第三标准包括:基于原始数据中的至少一些第三位,确定多个通道中的第三通道的大部分具有需要转换的各自的先前位值。
[0200]
在示例m12中,示例m1-m11中任一项的主题可以可选地包括:其中,第一通道的数量等于第二通道的数量。
[0201]
在示例m13中,示例m1-m12中任一项的主题可以可选地包括:多个通道是将第一设备连接到第二设备的多芯片封装链路的一部分,并且其中第一通道和第二通道是数据通道。
[0202]
示例c1提供了至少一种非暂时性机器可访问存储介质,其上存储有指令,该指令在机器上执行时,使得机器用于:在通过多个通道连接到第二设备的第一设备处,获得包括第一位和第二位的原始数据,其中第一位分别经由多个通道中的第一通道在新时钟周期中传输,并且第二位分别经由多个通道中的第二通道在新时钟周期中传输;确定是否满足与第一位相关联的第一标准;确定是否满足与第二位相关联的第二标准;以及至少部分地基于确定是否满足第一标准以及是否满足第二标准,来确定是否经由多个通道传输原始数据的倒置版本。
[0203]
在示例c2中,示例c1的主题可以可选地包括:其中,确定满足第一标准包括:基于至少一些第一位,确定第一通道中的大部分具有需要转换的各自的先前位值;以及确定满足第二标准包括:基于至少一些第二位,确定第二通道中的大部分具有需要转换的各自的先前位值。
[0204]
在示例c3中,示例c2的主题可以可选地包括:其中,第一通道的各自的先前位值与先前的时钟周期相关联,并且其中第二通道的各自的先前位值与先前的时钟周期相关联。
[0205]
在示例c4中,示例c2-c3中任一项的主题可以可选地包括:其中,所述指令在机器上执行时使得机器还用于:在确定满足第一标准之前,确定第一通道中的大部分的各自的先前位值不同于第一位的对应大部分的各自的第一位值;以及在确定满足第二标准之前,确定第二通道中的大部分的各自的先前位值不同于第二位的对应大部分的各自第二位值。
[0206]
在示例c5中,示例c1-c4中任一项的主题可以可选地包括:其中,所述指令在机器上执行时使得机器还用于:响应于确定满足第一标准和第二标准,将原始数据编码为倒置版本以经由多个通道传输。
[0207]
在示例c6中,示例c1的主题可以可选地包括:其中,确定不满足第一标准包括:基
于至少一半的第一位,确定至少一半的第一通道具有不需要转换的各自的先前位值;以及其中确定不满足第二标准包括:基于至少一半的第二位,确定至少一半的第二通道具有不需要转换的各自的先前位值。
[0208]
在示例c7中,示例c1或c6中任一项的主题可以可选地包括:所述指令在机器上执行时使得机器还用于:响应于确定不满足第一标准和第二标准,在多个通道上传输原始数据。
[0209]
在示例c8中,示例c1的主题可以可选地包括:其中,所述指令在机器上执行时使得机器还用于:基于确定第一位中的大部分具有第一值来确定满足第一标准;以及基于确定第二位中的大部分具有第一值来确定满足第二标准。
[0210]
在示例c9中,示例c8的主题可以可选地包括:其中,第一值是二进制0或1。
[0211]
在示例c10中,示例c1-c9中任一项的主题可以可选地包括:其中,所述指令在机器上执行时使得机器还用于:确定是否满足与原始数据的第三位相关联的第三标准;以及部分地基于确定是否满足第三标准来确定是否经由多个通道传输原始数据的倒置版本。
[0212]
在示例c11中,示例c10的主题可以可选地包括:其中,确定满足第三标准包括:确定多个通道中的第三通道的大部分具有基于原始数据中的至少一些第三位需要转换的各自的先前位值。
[0213]
在示例c12中,示例c1-c11中任一项的主题可以可选地包括:其中,第一通道的数量等于第二通道的数量。
[0214]
在示例c13中,示例c1-c12中任一项的主题可以可选地包括:其中,多个通道是将第一设备连接到第二设备的多芯片封装链路的一部分,并且其中第一通道和第二通道是数据通道。
[0215]
示例y1提供一种装置,该装置包括用于执行先前示例m1-m13中任一项的方法的单元。
[0216]
在示例y2中,示例y1的主题可以可选地包括:用于执行方法的单元包括至少一个处理器和至少一个存储器元件。
[0217]
在示例y3中,示例y1-y2中任一项的主题可以可选地包括:该装置是计算系统、片上系统或多芯片封装设备或管芯中的一个。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1