灵活总线协议协商和启用序列的制作方法

文档序号:19128667发布日期:2019-11-13 02:23阅读:275来源:国知局
灵活总线协议协商和启用序列的制作方法

本申请要求享有于2018年5月4日提交的美国临时专利申请第62/667,324号的权益,其全部内容通过引用并入本文。



背景技术:

计算系统典型地包括多个互连以促进系统组件(例如,处理器和存储器)之间的通信。另外,互连还可以用于支持插件设备,例如,输入/输出(io)设备和扩展卡。此外,不同的细分市场需要不同的互连架构,以满足市场需求和不同的互连连接。典型互连的非限制性示例可以包括快速外围组件互连(pcie)、设备内互连(idi)和ultra-path互连(upi或upi)。

附图说明

图1是根据一个实施例的包括用于连接计算机系统中的i/o设备的串行点对点互连的系统的简化框图的示意图。

图2是根据一个实施例的分层协议栈的简化框图的示意图。

图3是事务描述符的实施例的示意图。

图4是串行点对点链路的实施例的示意图。

图5是根据本公开的实施例的包括连接的加速器的处理系统的示意图。

图6是根据本公开的实施例的示例计算系统的示意图。

图7是根据本公开的实施例的示例灵活总线(flexbus)栈的示意图。

图8a是根据本公开的实施例的用于确定一个或多个特征以启用使用pcie交替协议协商的过程流程图。

图8b是示出示例链路训练状态机中的子状态的图。

图9是根据各种实施例的可以具有多于一个核心、可以具有集成存储器控制器并且可以具有集成图形的处理器的框图。

图10描绘了根据本公开的一个实施例的系统的框图。

图11描绘了根据本公开的实施例的更具体的第一示例性系统的框图。

图12描绘了根据本公开的实施例的更具体的第二示例性系统1300的框图。

图13描绘了根据本公开的实施例的soc的框图。

图14是根据公开内容的实施例的对比使用软件指令变换器将源指令集中的二进制指令变换为目标指令集中的二进制指令的框图。

具体实施方式

在以下说明书中阐述了许多具体细节,例如,特定类型的处理器和系统配置、特定硬件结构、特定架构和微架构细节、特定寄存器配置、特定指令类型、特定系统组件、特定处理器管线阶段、特定互连层、特定分组/事务配置、特定事务名称、特定协议交换、特定链路宽度、特定实现方式和操作等的示例,以便提供对本公开的透彻理解。然而,对于本领域技术人员可以显而易见的是,不一定需要采用这些具体细节来实践本公开的主题。在其他实例中,避免对以下已知的组件或方法进行详细描述以免不必要地模糊本公开:例如,特定和替代的处理器架构、用于所描述的算法的特定逻辑电路/代码、特定固件代码、低级别互连操作、特定逻辑配置、特定制造技术和材料、特定编译器实现方式、代码形式的特定算法表达、特定掉电和门控技术/逻辑以及计算机系统的其他特定操作细节。

虽然可以参考特定集成电路中的能量节约、能量效率、处理效率等来描述以下实施例(例如,在计算平台或微处理器中),但是其他实施例也适用于其他类型的集成电路和逻辑器件。本文描述的实施例的类似技术和教导可以适用于可以同样受益于这些特征的其他类型的电路或半导体器件。例如,所公开的实施例不限于服务器计算机系统、台式计算机系统、膝上型计算机或ultrabookstm,而且还可以用于其他设备,例如,手持设备、智能电话、平板计算机、其他薄型笔记本计算机、片上系统(soc)设备和嵌入式应用。手持设备的一些示例包括蜂窝电话、互联网协议设备、数码照相机、个人数字助理(pda)和手持pc。这里,用于高性能互连的类似技术可以适用于在低功耗互连中增强性能(或甚至节能)。嵌入式应用典型地包括微控制器、数字信号处理器(dsp)、片上系统、网络计算机(netpc)、机顶盒、网络中心、广域网(wan)交换机或可以执行下面教导的功能和操作的任何其他系统。此外,本文描述的装置、方法和系统不限于物理计算设备,而且还可以涉及用于能量节约和效率的软件优化。如可以在下面的说明书中变得显而易见的,可以认为本文描述的方法、装置和系统的实施例(无论是参考硬件、固件、软件还是其组合)对于与性能考虑均衡的“绿色技术”未来是至关重要的。

随着计算系统的发展,其中的组件变得更加复杂。用于在组件之间进行耦合和通信的互连架构的复杂性也已经增加,以确保满足最佳组件操作的带宽需求。此外,不同的细分市场需要互连架构的不同方面来满足相应市场。例如,服务器要求更高的性能,而移动生态系统有时能够牺牲整体性能以用于节能。然而,大部分结构的单一目的是提供最高可能性能和最大节能。进一步地,各种不同互连可以潜在地受益于本文描述的主题。

快速外围组件互连(pci)(pcie)互连结构架构和快速路径互连(qpi)结构架构以及其他示例(例如,ultrapath互连(upi))可以潜在地根据本文描述的一个或多个原理以及其他示例来改进。例如,pcie的主要目标是使得来自不同供应商的组件和设备能够在开放式架构中互操作,跨越多个细分市场;客户端(台式和移动)、服务器(标准和企业)以及嵌入式设备和通信设备。快速pci是高性能通用i/o互连,其定义用于各种未来计算和通信平台。一些pci属性(例如,其使用模型,加载-存储架构和软件接口)已经通过其修订进行维护,而先前的并行总线实现方式已经由高度可扩展的完全串行接口取代。最近期的快速pci版本利用点对点互连、基于交换机的技术和分组化的协议中的改进,实现新水平的性能和特征。快速pci支持的高级特征中的一些是功率管理、服务质量(qos)、热插拔/热调换支持、数据完整性以及错误处理。虽然本文的主要讨论内容参考新的高性能互连(hpi)架构,但是本文描述的公开内容的方面可以适用于其他互连架构,例如,符合pcie的架构、符合qpi的架构、符合mipi的架构、高性能架构或其他已知的互连架构。

参考图1,示出了由互连一组组件的点对点链路组成的结构的实施例。系统100包括耦合到控制器中心115的处理器105和系统存储器110。处理器105可以包括任何处理元件,例如,微处理器、主机处理器、嵌入式处理器、协处理器或其他处理器。处理器105通过前侧总线(fsb)106耦合到控制器中心115。在一个实施例中,fsb106是如下面描述的串行点对点互连。在另一实施例中,链路106包括符合不同互连标准的串行差分互连架构。

系统存储器110包括任何存储器设备,例如,随机存取存储器(ram)、非易失性(nv)存储器或系统100中的设备可访问的其他存储器。系统存储器110通过存储器接口116耦合到控制器中心115。存储器接口的示例包括双倍数据速率(ddr)存储器接口、双通道ddr存储器接口以及动态ram(dram)存储器接口。

在一个实施例中,控制器中心115可以包括例如pcie互连层级中的根中心、根复合体或根控制器。控制器中心115的示例包括芯片组、存储器控制器中心(mch)、北桥、互连控制器中心(ich)、南桥和根控制器/中心。经常,术语芯片组指代两个物理上分离的控制器中心,例如,耦合到互连控制器中心(ich)的存储器控制器中心(mch)。注意,当前系统经常包括与处理器105集成的mch,而控制器115以与下面描述的类似的方式与i/o设备通信。在一些实施例中,可选地通过根复合体115支持对等路由。

这里,控制器中心115通过串行链路119耦合到交换机/桥接器120。输入/输出模块117和121(也可以称为接口/端口117和121)可以包括/实现分层协议栈,以提供控制器中心115与交换机120之间的通信。在一个实施例中,多个设备能够耦合到交换机120。

交换机/桥接器120将分组/消息从设备125向上游(即,朝向根复合体向上的层级)路由到控制器中心115,以及从处理器105或系统存储器110向下游(即,远离根控制器向下的层级)路由到设备125。在一个实施例中,交换机120被称为多个虚拟pci到pci桥接器设备的逻辑组件。设备125包括要耦合到电子系统的任何内部或外部的设备或组件,例如,i/o设备、网络接口控制器(nic)、插入卡、音频处理器、网络处理器、硬盘驱动器、存储设备、cd/dvdrom、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、firewire设备、通用串行总线(usb)设备、扫描仪以及其他输入/输出设备。经常,在pcie中,诸如设备之类的术语被称为端点。虽然没有具体示出,但是设备125可以包括桥接器(例如,pcie到pci/pci-x桥接器),以支持传统设备或其他版本的设备,或者这些设备支持的互连结构。

图形加速器130也可以通过串行链路132耦合到控制器中心115。在一个实施例中,图形加速器130耦合到mch,该mch耦合到ich。然后将交换机120以及因此i/o设备125耦合到ich。i/o模块131和118还用于实现分层协议栈,以在图形加速器130与控制器中心115之间进行通信。类似于上面讨论的mch,图形控制器或图形加速器130本身可以集成在处理器105中。

转到图2,示出了分层协议栈的实施例。分层协议栈200可以包括任何形式的分层通信栈,例如,qpi栈、pcie栈、下一代高性能计算互连(hpi)栈或其他分层栈。在一个实施例中,协议栈200可以包括事务层205、链路层210和物理层220。接口(例如,图1中的接口117、118、121、122、126和131)可以表示为通信协议栈200。作为通信协议栈的表示也可以称为实现/包括协议栈的模块或接口。

分组可以用于在组件之间传达信息。可以在事务层205和数据链路层210中形成分组,以将信息从发送组件携带到接收组件。当被发送的分组流过其他层时,这些分组利用用于在这些层处处理分组的附加信息进行扩展。在接收侧,发生反向过程,并且分组从其物理层220表示变换为数据链路层210表示,并且最后(对于事务层分组)变换为可以由接收设备的事务层205处理的形式。

在一个实施例中,事务层205可以提供设备的处理核心与互连架构(例如,数据链路层210和物理层220)之间的接口。在这方面,事务层205的主要职责可以包括分组(即,事务层分组或tlp)的组包和拆包。事务层205还可以管理针对tlp的基于信用的流控制。在一些实现方式中,可以利用分离事务,即,请求和响应按时间分开的事务,允许链路在目标设备收集用于响应的数据时携带其他业务,以及其他示例。

基于信用的流控制可以用于利用互连结构来实现虚拟信道和网络。在一个示例中,设备可以在事务层205中通告接收缓冲器中的每个接收缓冲器的初始信用量。在链路的相对端处的外部设备(例如,图1中的控制器中心115)可以对由每个tlp消耗的信用的数量进行计数。如果事务未超过信用限制,则可以发送事务。在接收到响应时,恢复一定量的信用。这样的信用方案的优点的一个示例在于,只要没有遇到信用限制,则信用返回的延迟不会影响性能,以及其他潜在优点。

在一个实施例中,四个事务地址空间可以包括配置地址空间、存储器地址空间、输入/输出地址空间和消息地址空间。存储器空间事务包括用于将数据传送到存储器映射的位置或从存储器映射的位置传送数据的读取请求和写入请求中的一个或多个。在一个实施例中,存储器空间事务能够使用两种不同的地址格式,例如,短地址格式(例如,32比特地址)或长地址格式(例如,64比特地址)。配置空间事务可以用于访问连接到互连的各种设备的配置空间。针对配置空间的事务可以包括读取请求和写入请求。消息空间事务(或简称为消息)还可以被定义为支持互连代理之间的带内通信。因此,在一个示例实施例中,事务层205可以对分组报头/有效载荷206进行组包。

快速参考图3,示出了事务层分组描述符的示例实施例。在一个实施例中,事务描述符300可以是用于携带事务信息的机制。在这方面,事务描述符300支持对系统中的事务的识别。其他潜在用途包括跟踪对默认事务排序的修改以及事务与信道的关联。例如,事务描述符300可以包括全局标识符字段302、属性字段304和信道标识符字段306。在所示示例中,全局标识符字段302被描绘为包括本地事务标识符字段308和源标识符字段310。在一个实施例中,全局事务标识符302对于所有未完成的请求是唯一的。

根据一种实现方式,本地事务标识符字段308是由请求代理生成的字段,并且其对于对该请求代理而言要求完成的所有未完成的请求可以是唯一的。此外,在该示例中,源标识符310唯一地标识互连层级内的请求者代理。因此,与源id310一起,本地事务标识符字段308提供层级域内的事务的全局标识。

属性字段304指定事务的特性和关系。在这方面,属性字段304潜在地用于提供允许修改对事务的默认处理的附加信息。在一个实施例中,属性字段304包括优先级字段312、预留字段314、排序字段316和非监听字段318。这里,优先级子字段312可以由发起者修改以向事务指派优先级。预留属性字段314被预留以供将来使用或供应商定义的使用。可以使用预留属性字段来实现使用优先级或安全性属性的可能使用模型。

在该示例中,排序属性字段316用于提供传达可以修改默认排序规则的排序类型的可选信息。根据一个示例实现方式,排序属性“0”表示要应用默认排序规则,其中排序属性“1”表示不严格的排序,其中写入可以在相同方向上传递写入,并且读取完成可以在相同方向上传递写入。监听属性字段318用于确定事务是否被监听。如所示出的,信道id字段306标识事务与其相关联的信道。

返回至图2的讨论,链路层210(也称为数据链路层210)可以用作事务层205与物理层220之间的中间阶段。在一个实施例中,数据链路层210的职责是提供用于在链路上的两个组件之间交换事务层分组(tlp)的可靠机制。数据链路层210的一侧接受由事务层205组包的tlp,应用分组序列标识符211(即,标识号或分组号),计算并应用错误检测码(即,crc212),并且将修改后的tlp提交给物理层220以用于跨物理到外部设备的传输。

在一个示例中,物理层220包括逻辑子块221和电子块222,以物理地将分组发送到外部设备。这里,逻辑子块221负责物理层220的“数字”功能。在这方面,逻辑子块可以包括用于准备传出信息以供由物理子块222进行发送的发送部分,以及用于在将接收到的信息传递到链路层210之前识别并准备接收到的信息的接收器部分。

物理块222包括发送器和接收器。发送器由逻辑子块221提供符号,发送器将符号串行化并发送到外部设备上。向接收器提供来自外部设备的串行化符号,并且接收器将接收到的信号变换为比特流。比特流被解串行化并提供给逻辑子块221。在一个示例实施例中,采用8b/10b传输码,其中发送/接收十比特符号。这里,特殊符号用于利用帧223将分组组成帧。另外,在一个示例中,接收器还提供从传入的串行流中恢复的符号时钟。

如上面陈述的,虽然参考协议栈的特定实施例(例如,pcie协议栈)讨论了事务层205、链路层210和物理层220,但是分层协议栈不限于此。实际上,任何分层协议可以被包括/实现,并且适用本文讨论的特征。作为示例,表示为分层协议的端口/接口可以包括:(1)用于对分组进行组包的第一层,即,事务层;用于对分组进行排序的第二层,即,链路层;以及用于传输分组的第三层,即,物理层。作为具体示例,使用如本文描述的高性能互连分层协议。

接下来参考图4,示出了串行点对点结构的示例实施例。串行点对点链路可以包括用于传输串行数据的任何传输路径。在所示的实施例中,链路可以包括两个低电压差分驱动信号对:发送对406/411和接收对412/407。因此,设备405包括用于将数据发送到设备410的发送逻辑406以及用于从设备410接收数据的接收逻辑407。换言之,在链路的一些实现方式中,包括两个发送路径(即,路径416和417)以及两个接收路径(即,路径418和419)。

传输路径指代用于传输数据的任何路径,例如,传输线路、铜线路、光线路、无线通信信道、红外通信链路或其他通信路径。两个设备(例如,设备405和设备410)之间的连接被称为链路,例如,链路415。链路可以支持一个通道——每个通道表示一组差分信号对(一对用于发送,一对用于接收)。为了扩展带宽,链路可以聚合由xn表示的多个通道,其中n是任何支持的链路宽度,例如,1、2、4、8、12、16、32、64或更宽。

差分对可以指代两个传输路径,例如,线路416和417,用于发送差分信号。作为示例,当线路416从低电压电平切换到高电压电平(即,上升沿)时,线路417从高逻辑电平驱动到低逻辑电平(即,下降沿)。差分信号潜在地表现出更好的电特性,例如,更好的信号完整性,即,交叉耦合、电压过冲/下冲、振铃以及其他示例优点。这允许更好的定时窗口,其实现更快的传输频率。

加速器链路(ial)或其他技术(例如,genz、capi、opencapi规范、ccix、nvlink等)定义了通用存储器接口,其允许与诸如加速器之类的分立设备相关联的存储器用作相干存储器。在许多情况下,分立设备和相关联的存储器可以是连接的卡,或者在与(多个)核心处理器分开的机箱中。引入与设备相关联的相干存储器的结果是设备存储器不会与cpu或平台紧密耦合。不能预期平台特定的固件知晓设备细节。出于模块化和互操作性的原因,存储器初始化职责必须在平台特定的固件和设备特定的固件/软件之间公平划分。

本公开描述了对现有intel加速器链路(ial)架构的扩展。ial使用称为ial.io、ial.cache和ial.mem的三种单独协议的组合来实现ial的基于偏差的相干性模型(以下称为相干偏差模型)。相干偏差模型可以促进加速器中的高性能,同时将相干开销最小化。本公开提供了允许加速器使用ial.io和ial.mem协议(带有或不带有ial.cache)来实现相干偏差模型的机制。

ial.io是ial用于诸如发现、配置、初始化、中断、错误处理、地址转换服务等之类的功能的pcie兼容的输入/输出(io)协议。ial.io本质上是非相干的,支持可变有效载荷大小并且遵循pcie排序规则。ial.io的功能类似于intel片上系统结构(iosf)。iosf是重新封装用于复用的pcie协议,用于发现、寄存器访问、中断等。

ial.mem是主机用于从设备附接的存储器访问数据的i/o协议。ial.mem允许将设备附接的存储器映射到系统相干地址空间。ial.mem还具有监听和元数据语义,以管理设备侧高速缓存的相干性。ial.mem类似于控制存储器流的smi3。

ial.cache是设备用于从主机附接的存储器请求可缓存数据的i/o协议。ial.cache是非报告(non-posted)且无序的,并且支持高速缓存行粒度有效载荷大小。ial.cache类似于用于相干请求和存储器流的管芯内互连(idi)协议。

本公开使用ial附接的存储器(ial.mem协议)作为示例实现方式,但是也可以扩展到其他技术,例如,由genz联盟或者capi或opencapi规范、ccix、nvlink等发布的那些技术。ial建立在pcie之上,并且加入了对相干存储器附接的支持。然而,一般而言,本文描述的系统、设备和程序可以使用促进相干存储器的附接的其他类型的输入/输出总线。

本公开描述了加速器可以用于使页面偏置通过ial.io从主机翻转到设备偏置的方法。本文描述的方法保留了ial加速器的许多高级能力,但具有更简单的设备实现。主机和设备两者仍然可以获得对加速器附接的存储器的全带宽、相干且低延迟的访问,并且设备仍然可以获得对主机附接的存储器的相干但不可缓存的访问。

本文描述的方法还可以减少来自设备的安全性相关的威胁,因为设备不能以ial.cache将可缓存的请求发送到主机附接的存储器。

图5是根据本公开的实施例的包括连接的加速器的处理系统500的示意图。处理系统500可以包括主机设备501和连接的设备530。连接的设备530可以是跨基于ial的互连来连接或通过另一类似互连来连接的分立设备。连接的设备530可以与主机设备501集成在同一机箱内,或者可以容纳在单独的机箱中。

主机设备501可以包括处理器核心502(标记为cpu502)。处理器核心502可以包括一个或多个硬件处理器。处理器核心502可以耦合到存储器模块505。存储器模块505可以包括双倍数据速率(ddr)交错式存储器,例如,双列直插式存储器模块dimm1506和dimm2508,但是也可以包括更多存储器和/或其他存储器类型。主机设备501可以包括以硬件、软件或固件中的一个或组合实现的存储器控制器504。存储器控制器504可以包括逻辑电路,用于管理去往以及来自主机设备501和存储器模块505的数据流。

连接的设备530可以跨互连耦合到主机设备501。作为示例,连接的设备530可以包括加速器acc1532和acc2542。acc1532可以包括能够控制相干存储器acc1_mem536的存储器控制器mc1534。acc2542可以包括能够控制相干存储器acc2_mem546的存储器控制器mc2544。连接的设备530可以包括另外的加速器、存储器等。acc1_mem536和acc2_mem546可以是主机处理器使用的相干存储器;同样,存储器模块505也可以是相干存储器。acc1_mem536和acc2_mem546可以是或包括主机管理的设备存储器(hdm)。

主机设备501可以包括用于执行一个或多个存储器初始化过程的软件模块520。软件模块520可以包括操作系统(os)522、平台固件(fw)524、一个或多个os驱动程序526以及一个或多个efi驱动程序528。软件模块520可以包括在体现在非暂时性机器可读介质上的逻辑,并且可以包括当被执行时使一个或多个软件模块对相干存储器acc1_mem536和acc2_mem546进行初始化的指令。

例如,平台固件524可以通过标准硬件寄存器或使用指定的供应商特定扩展能力寄存器(dvsec)在启动期间提前确定相干存储器acc1_mem536和acc2_mem546的大小以及存储器的总特性。平台固件524将设备存储器acc1_mem536和acc2_mem546映射到相干地址空间。设备固件或软件550执行设备存储器初始化并发信号通知平台固件524和/或系统软件520(例如,os522)。然后,设备固件550经由软件协议将详细的存储器特性传达到平台固件524和/或系统软件520(例如,os522)。

图6示出了可以表示各种实施例的操作环境600的示例。图6中描绘的操作环境600可以包括可操作以提供处理能力和/或存储器能力的设备602。例如,设备602可以是经由互连650通信地耦合到主机处理器612的加速器或处理器设备,互连650可以是单个互连、总线、迹线等。设备602和主机处理器612可以通过链路650进行通信,以使数据和消息能够在其间传递。在一些实施例中,链路650可操作以用于支持多种协议以及经由多种互连协议进行的数据和消息的通信。例如,链路650可以支持各种互连协议,包括但不限于非相干互连协议、相干互连协议和存储器互连协议。支持的互连协议的非限制性示例可以包括pci、pcle、usb、idi、iosf、smi、smi3、ial.io、ial.cache和ial.mem等。例如,链路650可以支持相干互连协议(例如,idi)、存储器互连协议(例如,smi3)和非相干互连协议(例如,iosf)。

在实施例中,设备602可以包括加速器逻辑604,其包括电路605。在一些实例中,加速器逻辑604和电路605可以提供处理能力和存储器能力。在一些实例中,加速器逻辑604和电路605可以结合主机处理器612提供的处理能力来提供附加处理能力。设备602的示例可以包括生产者-消费者设备、生产者-消费者加设备、软件辅助设备存储器设备、自主设备存储设备和大型高速缓存设备,如先前讨论的。加速器逻辑604和电路605可以基于设备来提供处理能力和存储器能力。例如,加速器逻辑604和电路605可以使用互连经由接口逻辑606和电路607与主机处理器612进行通信,该互连使用例如用于诸如相干请求和存储器流之类的各种功能的相干互连协议(例如,idi)。接口逻辑606和电路607可以基于用于通信的消息和数据来确定互连协议。在另一示例中,加速器逻辑604和电路605可以包括相干逻辑,该相干逻辑包括或访问偏置模式信息。包括相干逻辑的加速器逻辑604可以使用存储器互连协议(例如,smi3)经由接口逻辑606和电路607与主机处理器612传达访问偏置模式信息以及相关的消息和数据。接口逻辑606和电路607可以基于用于通信的数据和消息来确定使用存储器互连协议。

在一些实施例中,加速器逻辑604和电路605可以包括并处理利用诸如基于结构的协议(例如,iosf)和/或快速外围组件互连(pcie)协议之类的非相干互连的指令。在各种实施例中,非相干互连协议可以用于各种功能,包括但不限于发现、寄存器访问(例如,设备602的寄存器)、配置、初始化、中断、直接存储器访问和/或地址转换服务(ats)。注意,设备602可以包括各种加速器逻辑604和电路605以处理信息,并且可以基于设备的类型,例如,生产者-消费者设备、生产者-消费者加设备、软件辅助设备存储器设备、自主设备存储器设备和大型高速缓存设备。此外,并且如先前讨论的,取决于设备的类型,包括接口逻辑606、电路607、(多个)协议队列609和多协议复用器608的设备602可以根据一种或多种协议来进行通信,例如,非相干协议、相干协议和存储器互连协议。实施例不限于此方式。

在各种实施例中,主机处理器612可以类似于处理器105,如图1中所讨论的,并且包括类似或相同的电路以提供类似的功能。主机处理器612可以可操作地耦合到主机存储器626,并且可以包括相干逻辑(或相干和高速缓存逻辑)614,相干逻辑614可以包括高速缓存层级并且具有较低级别高速缓存(llc)。相干逻辑614可以使用各种互连与包括电路623的接口逻辑622和一个或多个核心618a-n进行通信。在一些实施例中,相干逻辑614可以经由相干互连协议和存储器互连协议中的一个或多个来实现通信。在一些实施例中,相干llc可以包括主机存储器626和加速器存储器610的至少一部分的组合。实施例不限于此方式。

主机处理器612可以包括总线逻辑616,总线逻辑616可以是或可以包括pcie逻辑。在各种实施例中,总线逻辑616可以使用非相干互连协议(例如,iosf)和/或快速外围组件互连(pcie或pci-e)协议通过互连进行通信。在各种实施例中,主机处理器612可以包括多个核心618a-n,每个核心具有高速缓存。在一些实施例中,核心618a-n可以包括架构(ia)核心。核心618a-n中的每一个可以经由互连与相干逻辑614通信。在一些实施例中,与核心618a-n以及相干和高速缓存逻辑614耦合的互连可以支持相干互连协议(例如,idi)。在各种实施例中,主机处理器可以包括可操作以通过互连与总线逻辑616通信的设备620。在一些实施例中,设备620可以包括i/o设备,例如,pciei/o设备。

在实施例中,主机处理器612可以包括接口逻辑622和电路623,以实现主机处理器612的组件与设备602之间的多协议通信。接口逻辑622和电路623可以根据诸如非相干互连协议、相干互连协议和存储器互连协议之类的一种或多种互连协议动态地处理和实现主机处理器612与设备602之间的消息和数据的通信。在实施例中,接口逻辑622和电路623可以支持能够根据多种互连协议动态地处理数据和消息的单个互连、链路或总线。

在一些实施例中,接口逻辑622可以耦合到多协议复用器624,多协议复用器624具有一个或多个协议队列625以与设备602发送和接收消息和数据,设备602包括多协议复用器608并且也具有一个或多个协议队列609。协议队列609和625可以是协议特定的。因此,每种互连协议可以与特定协议队列相关联。接口逻辑622和电路623可以处理利用多协议复用器624从设备602接收以及发送到设备602的消息和数据。例如,当发送消息时,接口逻辑622和电路623可以基于该消息根据互连协议之一来处理消息。接口逻辑622和电路623可以将消息发送到多协议复用器624和链路控制器。多协议复用器624或仲裁器可以将消息存储在协议队列625中,协议队列625可以是协议特定的。基于在设备602处的多协议复用器608处的协议队列609的协议特定的协议队列中的资源可用性,多协议复用器624和链路控制器可以确定何时将消息发送到设备602。当接收消息时,多协议复用器624可以基于该消息将消息放置在队列625的协议特定的队列中。接口逻辑622和电路623可以根据互连协议之一来处理消息。

在实施例中,接口逻辑622和电路623可以动态地处理去往和来自设备602的消息和数据。例如,接口逻辑622和电路623可以确定每个消息的消息类型,并且确定多种互连协议中的哪种互连协议用于处理消息中的每个消息。可以使用不同的互连协议来处理消息。

在示例中,接口逻辑622可以检测要经由互连650传达的消息。在实施例中,消息可能已经由核心618或另一i/o设备620生成并且用于传达到设备602。接口逻辑622可以确定消息的消息类型,例如,非相干消息类型、相干消息类型和存储器消息类型。在一个特定示例中,接口逻辑622可以基于在地址映射中的查找来确定诸如请求之类的消息是针对耦合的设备的i/o请求还是存储器请求。如果与消息相关联的地址映射为i/o请求,则接口逻辑622可以利用非相干互连协议来处理消息,并且将消息作为非相干消息发送到链路控制器和多协议复用器624以用于传达到耦合的设备。多协议复用器624可以将消息存储在协议队列625的互连特定的队列中,并且当资源在设备602处可用时使消息被发送到设备602。在另一示例中,接口逻辑622可以基于地址表中的查找来确定与消息相关联的地址指示该消息是存储器请求。接口逻辑622可以利用存储器互连协议来处理消息,并且将消息发送到链路控制器和多协议复用器624以用于传达到耦合的设备602。多协议复用器624可以将消息存储在协议队列625的互连协议特定的队列中,并且当资源在设备602处可用时使消息被发送到设备602。

在另一示例中,接口逻辑622可以基于执行的一个或多个高速缓存相干性和存储器访问动作来确定消息是相干消息。更具体地,主机处理器612可以接收由耦合的设备602源送的相干消息或请求。可以执行高速缓存相干性和存储器访问动作中的一个或多个来处理消息,并且基于这些动作;接口逻辑622可以确定响应于请求而发送的消息可以是相干消息。接口逻辑622可以根据相干互连协议来处理消息,并且将相干消息发送到链路控制器和多协议复用器624以便发送到耦合的设备602。多协议复用器624可以将消息存储在队列625的互连协议特定的队列中,并且当资源在设备602处可用时使消息被发送到设备602。实施例不限于此方式。

在一些实施例中,接口逻辑622可以基于与消息相关联的地址、由消息引起的动作、消息内的信息(例如,标识符)、消息的源、消息的目的地等来确定消息的消息类型。接口逻辑622可以基于该确定来处理接收到的消息,并且将消息发送到主机处理器612的适当组件以进行进一步处理。接口逻辑622可以基于该确定来处理要发送到设备602的消息,并且将消息发送到链路控制器(未示出)和多协议复用器624以进行进一步处理。可以针对从主机处理器612发送的消息或由主机处理器612接收的消息来确定消息类型。

当前的ial架构可以使用称为ial.io、ial.cache和ial.mem的三种单独协议的组合来实现ial的基于偏差的相干性模型(此后称为“相干偏差模型”)。相干偏差模型可以促进加速器实现高性能,同时将相干开销最小化。

在实施例中,ial架构可以支持如下定义的五种类型的加速器模型。

本文的各种实施例涉及计算机总线上的数据传输。

注意,灵活总线技术(例如,flexbus技术)允许将多种协议复用到使用pcie电气的一组封装外引脚上。灵活总线技术可以包括片上系统设计,以促进上游设备与下游设备之间的片上通信。灵活总线技术可以包括可动态配置的架构。灵活总线技术的架构可以促进系统级拓扑适配(例如,通过动态桥接旁路)和组件级拓扑适配(例如,通过组件重新映射)。

例如,可以在发现期间将引脚配置为支持第一互连协议类型(例如,pcie协议)或第二互连协议类型(例如,加速器链路协议,例如,加速器链路(ial)协议(对缓存语义、存储器语义和加载/存储语义的动态复用))。此外,可以在发现期间启用各种延迟优化,以满足利用缓存语义和存储器语义的延迟敏感应用的要求。

本公开描述了使用pcie交替协议协商机制的灵活总线协商序列。在实施例中,在协商期间,可以做出在灵活总线链路上启用加速器链路协议(例如,ial、genz、capi、opencapi规范、ccix、nvlink等)或pcie协议的决策。注意,在下面的描述中,将重复参考灵活总线链路,并且flexbus是这种灵活总线链路的一种示例类型。然而,应当理解,这是非限制性示例,并且任何等效技术应被理解为在本公开和所描述的各种灵活总线功能的范围内。

在实施例中,如果选择加速器链路协议,则还可以协商各种延迟优化,包括例如同步报头抑制、跳过有序集抑制、漂移缓冲模式和通道对通道去偏斜旁路。在实施例中,一旦协商完成,可以在链路初始化过程中提早通知上层协议层,以便为上层中要求的任何初始化提供前置时间。然而,根据各种实施例,物理层可以在链路初始化过程中稍后启用协商的协议和延迟优化。

本公开还描述了用于在初始化期间在支持不同互连协议的链路(例如,通过pcie电气引脚支持ial的intel灵活总线(或flexbus))上协商和启用加速器链路协议和特征的序列。下文使用术语“灵活总线链路”,但是应当理解,本申请设想支持通过单组电气复用互连协议的链路和通信拓扑的其他实现方式。通常,灵活总线链路可以是通信链路,其促进上游设备与下游设备之间的数据和控制信息传输,并且可以通过单组电气容纳多种互连协议类型,例如,pcie或ial。下面更详细地描述灵活总线拓扑。

图7是根据本公开的实施例的示例灵活总线拓扑700的示意图。灵活总线拓扑700以高级别示出了用于跨链路(例如,符合基于pcie的协议的链路)支持多种协议的各种组件。灵活总线拓扑700可以支持互连协议1上层702或互连协议2上层712。在以下示例实施例中,互连协议1702是基于pcie的协议;并且互连协议2712是加速器链路协议,例如,ial。互连协议1702可以包括互连协议1事务层704和互连协议1链路层706。互连协议2712可以包括互连协议2事务层714和互连协议2链路层720。互连协议2事务层714可以包括输入/输出(i/o)事务层716(例如,用于处理ial.io协议的i/o事务层)以及高速缓存和存储器事务层718(例如,用于处理ial.cache和ial.mem事务层协议的那些事务层)。互连协议2链路层720可以包括输入/输出(i/o)链路层722(例如,用于处理ial.io协议的i/o链路层)以及高速缓存和存储器链路层724(例如,用于处理ial.cache和ial.mem链路层协议的那些链路层)。

灵活总线拓扑700可以包括结构730,以支持跨链路750使用不同的互连协议。结构730包括复用(mux)逻辑(静态复用逻辑732和互连协议2mux逻辑734)和物理层逻辑740。在链路初始化期间,静态复用逻辑732可以被配置为选择pcie上层(例如,互连协议1上层702)或加速器链路协议上层(例如,互连协议2上层712)来通过链路750进行通信。例如,如果协商ial模式,则mux734(例如,ialmux)可以另外被配置为仅启用诸如ial.io之类的单一协议,或者启用多种协议,例如,ial.io与例如ial.cache或ial.mem或两者动态地复用(设想其他配置)。最后,同样在链路初始化期间,物理层逻辑742的逻辑子块744可以被配置用于pcie模式或ial模式。如果启用了ial模式,则还可以启用任何协商的ial延迟优化。本公开描述了要由物理层逻辑742实现的序列,该序列用于使用pcie交替协议协商机制来协商要启用哪些ial协议和延迟优化特征,并且用于随后通知上层以便可以在灵活总线拓扑700中激活适当逻辑,以及用于在物理层逻辑742内的逻辑子块744和(pcie)电气744中启用适当逻辑。通常,结构730允许主机系统复用多种协议(例如,互连协议1或互连协议2)该多种协议要被复用到使用与单一互连协议(例如,pcie)相关联的电气的一组引脚上。

注意,pcie5.0规范定义了修改后的训练序列1/训练序列2(ts1/ts2)有序集,以实现交替协议协商,分配可以用于供应商定义的交替协议协商的供应商定义比特。下面提供的表1和表2描述了根据各种实施例如何针对灵活总线协商定义修改后的ts1/ts2有序集的供应商定义比特。

表1.针对协议模式协商的修改后的ts1/ts2有序集使用

表2.修改后的ts1/ts2有序集的附加信息

在实施例中,修改后的ts1/ts2有序集可以例如用于协商哪些协议(例如,ial协议)应该被启用(例如,ial.io、ial.mem以及ial.cache)以及协商哪些低延迟特征(例如,ial低延迟特征)应该被启用(例如,同步报头抑制、skp有序集抑制以及漂移缓冲模式)。

图8a是根据本公开的实施例的用于确定一个或多个特征以启用使用pcie交替协议协商的过程流程图800。在开始时,根复合体可以在配置期间在以2.5gt/s进行训练时利用修改后的ts1/ts2有序集执行两阶段交替协议协商(802)。在实施例中,按照pcie5.0规范,协商可以包括可以在以gen1速度进入l0之前在处于配置.通道号.等待(configuration.lanenum.wait)、配置.通道号.接受(configuration.lanenum.accept)以及配置.完成(configuration.complete)时发生的两阶段过程:

阶段1:根复合体发送修改后的ts1有序集的流,通告其灵活总线能力;端点设备通过发送修改后的ts1有序集的流来响应,该修改后的ts1有序集的流指示端点设备希望启用哪些灵活总线能力(任何重定时器可以通过修改端点发送的修改后的ts1有序集中的相关比特来传达其能力)。此交换按照pcie5.0规范在配置.通道号.等待和/或配置.通道号.接受期间发生。在此阶段结束时,根复合体具有足够的信息来对要启用哪些能力做出最终选择。下面提供的表3指定了用于解决要启用哪些低延迟特征的规则。

表3——用于启用ial低延迟特征的规则

阶段2:根复合体向端点设备发送修改后的ts2有序集的流,以指示链路是应该以pcie模式还是以ial模式操作;对于ial模式,还指定要启用哪些ial协议以及要启用哪些低延迟优化。端点通过发送其中相同灵活总线使能比特被置位的修改后的ts2有序集来确认启用请求。在实施例中,该交换可以按照pcie5.0规范在配置.完成期间发生。

在实施例中,以下序列可以由灵活总线物理层逻辑子块实现,用于协商灵活总线特征并随后启用灵活总线特征:

灵活总线物理层逻辑子块可以基于根复合体从端点设备接收到的修改后的ts2有序集(其中灵活总线使能比特被置位)来确定要使用哪种协议(ial.io、ial.cache、ial.mem、pcie等)(804)。

灵活总线物理层逻辑子块可以确定端点设备的低延迟特征(806)。低延迟特征的示例包括漂移缓冲、同步报头抑制、跳过(skp)有序集(os)抑制等。灵活总线物理层逻辑子块可以确定是否存在任何(多个)重定时器以及(多个)重定时器是否支持旁路路径和任何低延迟特征。如果是,则这些特征将在训练到最高速度后被启用;cpu中的逻辑phy将发送ctrlskpos,其中适当比特在训练到最高速度后被置位,以指示重定时器在下一次进入恢复.速度(recovery.speed)时启用这些特征。

灵活总线物理层逻辑子块可以以2.5gt/s将链路训练到l0,并且向上层通知协议决策(808)。该通知允许对静态复用逻辑和ialarb/mux逻辑进行配置,并且在链路被初始化时恰当地将适当上层激活和初始化(810)。

灵活总线物理层逻辑子块可以使链路以更高的速度进行训练和均衡(812)。在以2.5gt/s训练到l0之后,逻辑物理层(phy)恢复为发送常规ts1/ts2os而不是修改后的ts1/ts2os,这是因为交替协议协商已经完成。更高速度训练还可以包括以最高速度将链路训练到l0。

灵活总线物理层逻辑子块可以发送控制skpos,其中适当比特被置位,指示任何重定时器应当启用在恢复.速度中达成一致的任何低延迟特征(包括旁路路径)(814)。

灵活总线物理层逻辑子块可以使速度改变(速率保持相同)以强制进入恢复.速度(816)。在进入恢复.速度时,如果在交替协议协商期间达成一致并且如果在步骤4中控制skpos如此指示,则(多个)重定时器启用旁路路径和低延迟特征。在进入恢复.速度时,灵活总线逻辑phy启用在交替协议协商期间达成一致的任何低延迟特征(例如,漂移缓冲、同步报头抑制和skpos抑制)(818)。

灵活总线物理层逻辑子块可以使得在恢复.速度之后在恢复期间进行去偏斜旁路确定(820)。如果符合,则在从恢复退出时将去偏斜旁路路径激活。去偏斜旁路是未经协商的低延迟优化;它由灵活总线逻辑子块在本地确定。

图8b是示出示例链路训练状态机中的子状态的图。在一个示例中,pcie物理层可以用于支持多种不同的协议。因此,pcieltssm中的特定训练状态可以用于在链路上的设备之间对协议进行协商。如上面指出的,协议确定甚至可能在链路以最低支持数据速率(例如,pciegen1数据速率)训练到活动状态(例如,l0)之前发生。在一个示例中,可以使用pcie配置状态。pcieltssm可以用于在链路宽度协商之后并且(至少部分地)与在配置状态期间执行的通道编号并行地通过使用修改后的pcie训练集(例如,ts1和ts2)来协商协议。

例如,如图8b所示,示出了示意图850,示意图850示出pcie配置状态的子状态。在该示例中,可以提供配置.链路宽度.开始(configuration.linkwidth.start)子状态852和配置.链路宽度.接受(configuration.linkwidth.accept)子状态854,其中配置链路宽度。这些子状态可以涉及发送训练序列,如在pcie链路训练期间通常实现的。在配置链路宽度时,可以提供附加的子状态(例如,856、858、860等)。这些配置子状态中的一个或多个可以用于启用多协议协商。例如,在配置链路宽度之后转换到配置子状态(例如,856、858、860)中的一个时,可以引入增强的或修改后的训练序列,其中字段或符号被配置用于传达协议确定信息。设备中的每个设备的物理层逻辑可以处理接收到的信息以在配置状态结束之前(例如,在从配置.完成子状态860转换之前)确定参与设备的支持协议,以及其他示例。该示例可以另外允许以向后兼容的方式促进这种协议协商,使得可以识别不支持这种功能的传统设备或其他设备,并且使得通信适合于其他设备的功能,以及其他示例。

图9是根据各种实施例的可以具有多于一个核心、可以具有集成存储器控制器并且可以具有集成图形的处理器900的框图。图9中的实线框示出了具有单个核心902a、系统代理910和一组一个或多个总线控制器单元916的处理器900;而虚线框的可选添加示出了具有多个核心902a-n、系统代理单元910中的一组一个或多个集成存储器控制器单元914以及专用逻辑908的替代处理器900。

因此,处理器900的不同实现方式可以包括:1)cpu,其中专用逻辑908是集成图形和/或科学(吞吐量)逻辑(其可以包括一个或多个核心),并且核心902a-n是一个或多个通用核心(例如,通用有序核心、通用无序核心或两者的组合);2)协处理器,其中核心902a-n是旨在主要用于图形和/或科学(吞吐量)的大量专用核心;3)协处理器,其中核心902a-n是大量通用有序核心。因此,处理器900可以是通用处理器、协处理器或专用处理器,例如,网络或通信处理器、压缩和/或解压缩引擎、图形处理器、gpgpu(通用图形处理单元)、高吞吐量的许多集成核心(mic)协处理器(例如,包括30个或更多个核心)、嵌入式处理器或执行逻辑操作的其他固定逻辑或可配置逻辑。处理器可以在一个或多个芯片上实现。处理器900可以是使用多种工艺技术(例如,bicmos、cmos或nmos)中的任何工艺技术的一个或多个衬底的一部分,和/或可以在使用多种工艺技术中的任何工艺技术的一个或多个衬底上实现。

在各种实施例中,处理器可以包括任何数量的处理元件,这些处理元件可以是对称或不对称的。在一个实施例中,处理元件指代支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核心和/或能够保持处理器的状态(例如,执行状态或架构状态)的任何其他元件。换言之,在一个实施例中,处理元件指代能够独立地与代码(例如,软件线程、操作系统、应用或其他代码)相关联的任何硬件。物理处理器(或处理器插座)典型地指代集成电路,其潜在地包括任何数量的其他处理元件,例如,核心或硬件线程。

核心可以指代位于能够维持独立架构状态的集成电路上的逻辑,其中每个独立维持的架构状态与至少一些专用执行资源相关联。硬件线程可以指代位于能够维持独立架构状态的集成电路上的任何逻辑,其中独立维持的架构状态共享对执行资源的访问。如可以看出的,当共享特定资源而其他资源专用于架构状态时,硬件线程与核心的命名之间的界限重叠。但是经常地,操作系统将核心和硬件线程视为单独的逻辑处理器,其中操作系统能够单独地调度每个逻辑处理器上的操作。

存储器层级包括核心内的一个或多个级别的高速缓存、一组或一个或多个共享高速缓存单元906以及耦合到该组集成存储器控制器单元914的外部存储器(未示出)。该组共享高速缓存单元906可以包括一个或多个中间级别高速缓存,例如,级别2(l2)、级别3(l3)、级别4(l4)或其他级别的高速缓存、最后一级高速缓存(llc)和/或其组合。虽然在一个实施例中,基于环的互连单元912互连专用逻辑(例如,集成图形逻辑)908、该组共享高速缓存单元906以及系统代理单元910/(多个)集成存储器控制器单元914,但是替代实施例可以使用任何数量的公知技术来互连这些单元。在一个实施例中,在一个或多个高速缓存单元906与核心902a-n之间维持相干性。

在一些实施例中,核心902a-n中的一个或多个核心能够是多线程的。系统代理910包括协调和操作核心902a-n的那些组件。系统代理单元910可以包括例如功率控制单元(pcu)和显示单元。pcu可以是或包括调节核心902a-n和专用逻辑908的功率状态所需的逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。

就架构指令集而言,核心902a-n可以是同构的或异构的;也就是说,核心902a-n中的两个或更多个核心能够执行相同的指令集,而其他核心仅能够执行该指令集的子集或不同的指令集。

图10-14是示例性计算机架构的框图。用于膝上型计算机、台式机、手持pc、个人数字助理、工程工作站、服务器、网络设备、网络中心、交换机、嵌入式处理器、数字信号处理器(dsp)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备和各种其他电子设备的本领域已知的其他系统设计和配置也适用于执行本公开中描述的方法。通常,能够包含如本文公开的处理器和/或其他执行逻辑的各种系统或电子设备通常是合适的。

图10描绘了根据本公开的一个实施例的系统1000的框图。系统1000可以包括一个或多个处理器1010、1015,其耦合到控制器中心1020。在一个实施例中,控制器中心1020包括图形存储器控制器中心(gmch)1090和输入/输出中心(ioh)1050(其可以在分开的芯片上或在同一芯片上);gmch1090包括耦合到存储器1040和协处理器1045的存储器控制器和图形控制器;ioh1050将输入/输出(i/o)设备1060耦合到gmch1090。可替代地,存储器控制器和图形控制器中的一者或两者集成在处理器内(如本文描述的),存储器1040和协处理器1045直接耦合到处理器1010,并且控制器中心1020是包括ioh1050的单个芯片。

附加处理器1015的可选性质在图10中用短划线表示。每个处理器1010、1015可以包括本文描述的处理核心中的一个或多个处理核心,并且可以是处理器900的某个版本。

存储器1040可以是例如动态随机存取存储器(dram)、相变存储器(pcm)、其他合适的存储器或其任何组合。存储器1040可以存储任何合适的数据,例如,由处理器1010、1015用来提供计算机系统1000的功能的数据。例如,与执行的程序相关联的数据或者由处理器1010、1015访问的文件可以存储在存储器1040中。在各种实施例中,存储器1040可以存储由处理器1010、1015使用或执行的数据和/或指令序列。

在至少一个实施例中,控制器中心1020经由诸如前端总线(fsb)之类的多点总线、诸如快速路径互连(qpi)之类的点对点接口或类似的连接1095与(多个)处理器1010、1015通信。

在一个实施例中,协处理器1045是专用处理器,例如,高吞吐量mic处理器、网络或通信处理器、压缩和/或解压缩引擎、图形处理器、gpgpu、嵌入式处理器等。在一个实施例中,控制器中心1020可以包括集成图形加速器。

就包括架构特性、微架构特性、热特性、功耗特性等在内的优点的度量范围而言,物理资源1010、1015之间可能存在各种差异。

在一个实施例中,处理器1010执行控制一般类型的数据处理操作的指令。嵌入在指令内的可以是协处理器指令。处理器1010将这些协处理器指令识别为属于应由附接的协处理器1045执行的类型。因此,处理器1010在协处理器总线或其他互连上向协处理器1045发布这些协处理器指令(或表示协处理器指令的控制信号)。(多个)协处理器1045接受并执行接收到的协处理器指令。

图11描绘了根据本公开的实施例的更具体的第一示例性系统1100的框图。如图11所示,多处理器系统1100是点对点互连系统,并且包括经由点对点互连1150耦合的第一处理器1170和第二处理器1180。处理器1170和1180中的每一个可以是处理器的某个版本。在公开内容的一个实施例中,处理器1170和1180分别是处理器1110和1115,而协处理器1138是协处理器1145。在另一实施例中,处理器1170和1180分别是处理器1110和协处理器1145。

示出处理器1170和1180分别包括集成存储器控制器(imc)单元1172和1182。处理器1170还包括点对点(p-p)接口1176和1178,作为其总线控制器单元的一部分;类似地,第二处理器1180包括p-p接口1186和1188。处理器1170、1180可以使用p-p接口电路1178、1188经由点对点(p-p)接口1150交换信息。如图11所示,imc1172和1182将处理器耦合到相应的存储器,即,存储器1132和存储器1134,它们可以是本地附接到相应的处理器的主存储器的部分。

处理器1170、1180可以各自使用点对点接口电路1176、1194、1186、1198经由各个p-p接口1152、1154与芯片组1190交换信息。芯片组1190可以可选地经由高性能接口1139与协处理器1138交换信息。在一个实施例中,协处理器1138是专用处理器,例如,高吞吐量mic处理器、网络或通信处理器、压缩和/或解压缩引擎、图形处理器、gpgpu、嵌入式处理器等。

共享高速缓存(未示出)可以包括在任一处理器中或者在两个处理器外但是经由p-p互连与处理器连接,使得如果任一个处理器或两个处理器被置于低功率模式,则处理器的本地高速缓存信息可以存储在共享高速缓存中。

芯片组1190可以经由接口1196耦合到第一总线1116。在一个实施例中,第一总线1116可以是外围组件互连(pci)总线,或者诸如快速pci总线或另一第三代i/o互连总线之类的总线,但是本公开的范围不限于此。

如图11所示,各种i/o设备1114可以连同总线桥1118一起耦合到第一总线1116,总线桥1118将第一总线1116耦合到第二总线1120。在一个实施例中,诸如协处理器、高吞吐量mic处理器、gpgpu、加速器(例如,图形加速器或数字信号处理(dsp)单元)、现场可编程门阵列或任何其他处理器之类的一个或多个附加处理器1115耦合到第一总线1116。在一个实施例中,第二总线1120可以是低引脚数(lpc)总线。在一个实施例中,各种设备可以耦合到第二总线1120,这些设备包括例如键盘和/或鼠标1122、通信设备1127和可以包括指令/代码和数据1130的诸如磁盘驱动器或其他大容量存储设备之类的存储单元1128。此外,音频i/o1124可以耦合到第二总线1120。注意,本公开设想到其他架构。例如,代替图11的点对点架构,系统可以实现多点总线或其他这样的架构。

图12描绘了根据本公开的实施例的更具体的第二示例性系统1200的框图。图11和图12中的相似元件具有相似的附图标记,并且图12中省略了图11的某些方面,以避免模糊图12的其他方面。

图12示出了处理器1270、1280可以分别包括集成存储器和i/o控制逻辑(“cl”)1272和1282。因此,cl1272、1282包括集成存储器控制器单元并且包括i/o控制逻辑。图12示出了不仅存储器1232、1234耦合到cl1272、1282,而且i/o设备1214也耦合到控制逻辑1272、1282。传统i/o设备1215耦合到芯片组1290。

图13描绘了根据本公开的实施例的soc1300的框图。此外,虚线框是更高级的soc上的可选特征。在图13中,(多个)互连单元1302耦合到:应用处理器1310,其包括一组一个或多个核心1004a-n和(多个)共享高速缓存单元1006;系统代理单元1010;(多个)总线控制器单元1016;(多个)集成存储器控制器单元1014;一组或一个或多个协处理器1320,其可以包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(sram)单元1330;直接存储器访问(dma)单元1332;以及显示单元1340,其用于耦合到一个或多个外部显示器。在一个实施例中,(多个)协处理器1320包括专用处理器,例如,网络或通信处理器、压缩和/或解压缩引擎、gpgpu、高吞吐量mic处理器、嵌入式处理器等。

在一些情况下,指令变换器可以用于将指令从源指令集变换为目标指令集。例如,指令变换器可以将指令转换(例如,使用静态二进制转换,包括动态编译的动态二进制转换)、变形、模拟或以其他方式变换为要由核心处理的一个或多个其他指令。指令变换器可以以软件、硬件、固件或其组合来实现。指令变换器可以在处理器上,在处理器外,或者部分在处理器上而部分在处理器外。

图14是根据公开内容的实施例的对比使用软件指令变换器将源指令集中的二进制指令变换为目标指令集中的二进制指令的框图。在所示实施例中,指令变换器是软件指令变换器,但是可替代地,指令变换器可以以软件、固件、硬件或其各种组合来实现。图14示出了可以使用x86编译器1404来编译高级语言1402形式的程序,以生成可以由具有至少一个x86指令集核心的处理器1416在本地执行的x86二进制代码1406。具有至少一个x86指令集核心的处理器1416表示任何这样的处理器:能够通过兼容地执行或以其他方式处理(1)intelx86指令集核心的指令集的大部分或(2)以在具有至少一个x86指令集核心的intel处理器上运行为目标的应用或其他软件的目标代码版本,以便实现与具有至少一个x86指令集核心的intel处理器基本上相同的结果,来执行与具有至少一个x86指令集核心的intel处理器基本上相同的功能。x86编译器1404表示可操作以用于生成x86二进制代码1406(例如,目标代码)的编译器,该x86二进制代码1406可以在具有或不具有附加链接处理的情况下在具有至少一个x86指令集核心的处理器1416上执行。类似地,图14示出了可以使用替代指令集编译器1408来编译高级语言1402形式的程序,以生成可以由不具有至少一个x86指令集核心的处理器1414(例如,具有执行mfstechnologies(sunnyvale,ca)的mips指令集和/或执行armholdings(sunnyvale,ca)的arm指令集的核心的处理器)在本地执行的替代指令集二进制代码1410。指令变换器1412用于将x86二进制代码1406变换为可以由不具有x86指令集核心的处理器1414在本地执行的代码。该变换后的代码不太可能与替代指令集二进制代码1410相同,因为能够做到这一点的指令变换器很难实现;然而,变换后的代码将完成一般操作,并且由来自替代指令集的指令组成。因此,指令变换器1412表示通过模拟、仿真或任何其他过程来允许不具有x86指令集处理器或核心的处理器或其他电子设备执行x86二进制代码1406的软件、固件、硬件或其组合。

设计可以经历从创建到仿真到制造的各种阶段。表示设计的数据可以以多种方式来表示设计。首先,如在仿真中有用的,可以使用硬件描述语言(hdl)或另一种功能描述语言来表示硬件。另外,可以在设计过程的某些阶段产生具有逻辑和/或晶体管栅极的电路级模型。此外,大多数设计在某个阶段达到表示硬件模型中各种设备的物理放置的数据级别。在使用常规半导体制造技术的情况下,表示硬件模型的数据可以是指定用于产生集成电路的掩模在不同掩模层上存在或不存在各种特征的数据。在一些实现方式中,这样的数据可以以诸如图形数据系统ii(gdsii)、开放艺术品系统交换标准(oasis)之类的数据库文件格式或类似格式来存储。

在一些实现方式中,基于软件的硬件模型以及hdl和其他功能描述语言对象可以包括寄存器传输语言(rtl)文件以及其他示例。这样的对象可以是机器可解析的,使得设计工具可以接受hdl对象(或模型),针对所描述的硬件的属性解析hdl对象,以及根据对象来确定物理电路和/或片上布局。设计工具的输出可以用于制造物理设备。例如,设计工具可以根据hdl对象来确定各种硬件和/或固件元件的配置,例如,总线宽度、寄存器(包括大小和类型)、存储器块、物理链路路径、结构拓扑以及被实现以便实现在hdl对象中建模的系统的其他属性。设计工具可以包括用于确定片上系统(soc)和其他硬件设备的拓扑和结构配置的工具。在一些实例中,hdl对象可以用作开发可以由制造设备用于制造所描述的硬件的模型和设计文件的基础。实际上,hdl对象本身可以作为输入提供给制造系统软件,以使得制造所描述的硬件。

在设计的任何表示中,表示设计的数据可以存储在任何形式的机器可读介质中。诸如盘之类的存储器或者磁性或光学存储装置可以是这样的机器可读介质:用于存储经由光波或电波传输的信息,该光波或电波被调制或以其他方式生成以传输这样的信息。当传输指示或携带代码或设计的电载波时,就执行对电信号的复制、缓冲或重传而言,做出新的副本。因此,通信提供商或网络提供商可以至少临时地在有形的机器可读介质上存储物品(例如,编码成载波、体现本公开的实施例的技术的信息)。

在各种实施例中,可以将存储设计的表示的介质提供给制造系统(例如,能够制造集成电路和/或相关组件的半导体制造系统)。设计表示可以指示系统制造能够执行上面描述的功能的任何组合的设备。例如,设计表示可以关于要制造哪些组件、组件应该如何耦合在一起、组件应该放置在设备上的位置和/或关于与要制造的设备有关的其他合适的规范来指示系统。

因此,至少一个实施例的一个或多个方面可以通过存储在机器可读介质上的代表性指令来实现,该代表性指令表示处理器内的各种逻辑,其在由机器读取时使得机器制造用于执行本文描述的技术的逻辑。经常称为“ip核心”的这种表示可以存储在非暂时性有形机器可读介质上,并且提供给各种客户或制造设施,以加载到制造逻辑或处理器的制造机器中。

本文公开的机制的实施例可以以硬件、软件、固件或这些实现方法的组合来实现。公开内容的实施例可以被实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性的存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。

诸如图11中所示的代码1130之类的程序代码可以应用于输入指令以执行本文描述的功能并生成输出信息。输出信息可以以已知的方式应用于一个或多个输出设备。出于本申请的目的,处理系统包括具有诸如数字信号处理器(dsp)、微控制器、专用集成电路(asic)或微处理器之类的处理器的任何系统。

程序代码可以以高级过程编程语言或面向对象的编程语言实现,以与处理系统通信。如果需要,程序代码还可以以汇编语言或机器语言实现。实际上,本文描述的机制的范围不限于任何特定编程语言。在各种实施例中,语言可以是编译语言或解释语言。

上面阐述的方法、硬件、软件、固件或代码的实施例可以经由存储在能够由处理元件执行(或能够以其他方式访问)的机器可访问、机器可读、计算机可访问或计算机可读介质上的指令或代码来实现。机器可访问/可读介质包括以机器(例如,计算机或电子系统)可读的形式提供(即,存储和/或传输)信息的任何机制。例如,机器可访问介质包括随机存取存储器(ram),例如,静态ram(sram)或动态ram(dram);rom;磁性或光学存储介质;闪速存储器设备;电存储设备;光学存储设备;声学存储设备;用于保持从暂时性(传播)信号(例如,载波、红外信号、数字信号)接收的信息的其他形式的存储设备等,这些介质与可以从其接收信息的非暂时性介质区分开。

用于将逻辑编程为执行公开内容的实施例的指令可以存储在系统中的存储器(例如,dram、高速缓存、闪速存储器或其他存储装置)内。此外,指令可以经由网络或通过其他计算机可读介质来分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,但不限于软盘、光盘、压缩盘只读存储器(cd-rom)和磁光盘、只读存储器(rom)、随机存取存储器(ram)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、磁卡或光卡、闪速存储器,或者用于经由电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)通过互联网传输信息的有形的机器可读存储装置。因此,计算机可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的有形机器可读介质。

逻辑可以用于实现各种组件的功能中的任何功能。“逻辑”可以指代硬件、固件、软件和/或其中每个的组合,以用于执行一个或多个功能。作为示例,逻辑可以包括诸如微控制器或处理器之类的与非暂时性介质相关联的硬件,该非暂时性介质用于存储适于由微控制器或处理器执行的代码。因此,在一个实施例中,对逻辑的引用指代特别地配置为识别和/或执行要保留在非暂时性介质上的代码的硬件。此外,在另一实施例中,逻辑的使用指代包括代码的非暂时性介质,该代码特别适于由微控制器执行以执行预定的操作。并且如可以推断的,在又一实施例中,术语逻辑(在该示例中)可以指代硬件和非暂时性介质的组合。在各种实施例中,逻辑可以包括可操作以用于执行软件指令的微处理器或其他处理元件、诸如专用集成电路(asic)之类的分立逻辑、诸如现场可编程门阵列(fpga)之类的编程逻辑器件、包含指令的存储器设备、逻辑器件的组合(例如,如可以在印刷电路板上找到的)或其他合适的硬件和/或软件。逻辑可以包括一个或多个门或其他电路组件,其可以由例如晶体管实现。在一些实施例中,逻辑还可以完全体现为软件。软件可以体现为记录在非暂时性计算机可读存储介质上的软件包、代码、指令、指令集和/或数据。固件可以体现为在存储器设备中被硬编码(例如,非易失性)的代码、指令或指令集和/或数据。经常,被示为分离的逻辑边界通常变化并且潜在地重叠。例如,第一逻辑和第二逻辑可以共享硬件、软件、固件或其组合,同时潜在地保留一些独立的硬件、软件或固件。

在一个实施例中,短语“用于”或“被配置为”的使用指代对装置、硬件、逻辑或元件进行布置、放置在一起、制造、提供销售、导入和/或设计,以执行指定的任务或确定的任务。在该示例中,如果装置或其元件被设计、耦合和/或互连以执行指定的任务,则未被操作的装置或其元件仍“被配置为”执行所述指定的任务。作为纯粹说明性示例,逻辑门可以在操作期间提供0或1。但是逻辑门“被配置为”向时钟提供使能信号不包括每个潜在逻辑门可以提供1或0。相反,逻辑门是以某种方式耦合的,在操作期间1或0输出用于使能时钟。再次注意,术语“被配置为”的使用不要求操作,而是关注于装置、硬件和/或元件的隐藏状态,其中在隐藏状态下,装置、硬件和/或元件被设计用于在装置、硬件和/或元件操作时执行特定任务。

此外,在一个实施例中,短语“能够/能够用于”和/或“可操作用于”的使用指代一些装置、逻辑、硬件和/或元件以这样的方式设计:使得能够以指定的方式使用装置、逻辑、硬件和/或元件。注意,如上面在一个实施例中对用于、能够用于或可操作用于的使用指代装置、逻辑、硬件和/或元件的隐藏状态,其中装置、逻辑、硬件和/或元件不操作但以这种方式设计为使得能够以指定方式使用装置。

如本文所使用的值包括数字、状态、逻辑状态或二进制逻辑状态的任何已知表示。经常,逻辑电平、逻辑值或逻辑的值的使用也称为1和0的使用,其仅表示二进制逻辑状态。例如,1指代高逻辑电平,并且0指代低逻辑电平。在一个实施例中,诸如晶体管或闪存单元之类的存储单元能够保持单个逻辑值或多个逻辑值。然而,已经在计算机系统中使用值的其他表示。例如,十进制数十也可以表示为二进制值1010和十六进制字母a。因此,值包括在计算机系统中能够保存的信息的任何表示。

此外,状态可以由值或值的部分表示。作为示例,第一值(例如,逻辑一)可以表示默认或初始状态,而第二值(例如,逻辑零)可以表示非默认状态。另外,在一个实施例中,术语复位和置位分别指默认值或状态和更新的值或状态。例如,默认值潜在地包括高逻辑值(即,复位)而更新的值潜在地包括低逻辑值(即,置位)。注意,可以使用值的任何组合来表示任何数量的状态。

在该具体实施方式中,参考形成其一部分的附图,其中相同的附图标记始终表示相同的部分,并且其中通过图示的方式示出了可以实践的实施例。应当理解,在不脱离本公开的范围的情况下,可以利用其他实施例并且可以进行结构或逻辑改变。因此,以下详细描述不应被视为具有限制意义,并且实施例的范围由所附权利要求及其等同物限定。

在所附说明书中公开了公开内容的方面。在不脱离本公开的精神或范围的情况下,可以设想本公开的替代实施例及其等同物。应当注意,下面公开的相同元件在附图中由相同的附图标记表示。

可以以最有助于理解所要求保护的主题的方式依次将各种操作描述为多个离散动作或操作。然而,描述的顺序不应被解释为暗示这些操作一定依赖于顺序。特别地,这些操作可能不按呈现的顺序执行。所描述的操作可以以与所描述的实施例不同的顺序执行。在附加实施例中,可以执行各种附加操作和/或可以省略所描述的操作。

出于本公开的目的,短语“a和/或b”表示(a)、(b)或(a和b)。出于本公开的目的,短语“a、b和/或c”表示(a)、(b)、(c)、(a和b)、(a和c)、(b和c)或(a、b和c)。

说明书可以使用短语“在实施例中”或“在多个实施例中”,其可以各自指代相同或不同实施例中的一个或多个。此外,如关于本公开的实施例使用的术语“包括”、“包含”、“具有”等是同义的。

如在下文中使用的,术语“电路”可以指代以下各项、是以下各项的一部分或者包括以下各项:专用集成电路(asic)、电子电路、执行一个或多个软件或固件程序的(共享的、专用的或组)处理器和/或(共享的、专用的或组)存储器、组合逻辑电路和/或提供所描述的功能的其他合适组件。

如在下文中包括在权利要求书中使用的,术语“存储器”可以表示用于存储数据的一个或多个硬件设备,包括随机存取存储器(ram)、磁性ram、核心存储器、只读存储器(rom)、磁盘存储介质、光存储介质、闪速存储器设备和/或用于存储数据的其他机器可读介质。术语“计算机可读介质”可以包括但不限于存储器、便携式或固定存储设备、光存储设备、无线信道以及能够存储、包含或携带(多个)指令和/或数据的各种其他介质。

如在下文中包括在权利要求书中使用的,可以认为术语“计算平台”与以下各项同义,并且可以在下文中偶尔称为:计算机设备、计算设备、客户端设备或客户端、移动、移动单元、移动终端、移动台、移动用户、移动设备、用户设备(ue)、用户终端、机器类型通信(mtc)设备、机器对机器(m2m)设备、m2m设备(m2me)、物联网(iot)设备、订户、用户、接收器等,并且可以描述能够顺序地且自动地执行一系列算术或逻辑运算、被配备用于在机器可读介质上记录/存储数据以及从通信网络中的一个或多个其他设备发送和接收数据的任何物理硬件设备。此外,术语“计算平台”可以包括任何类型的电子设备,例如,蜂窝电话或智能电话、平板个人计算机、可穿戴计算设备、自主传感器、个人数字助理(pda)、膝上型计算机、台式个人计算机、视频游戏控制台、数字媒体播放器、车载信息娱乐系统(ivi)和/或车载娱乐(ice)设备、车载计算系统、导航系统、自动驾驶系统、车辆对车辆(v2v)通信系统、车辆对万物(v2x)通信系统、手持消息传递设备、个人数据助理、电子书阅读器、增强现实设备和/或任何其他类似的电子设备。

如在下文中包括在权利要求书中使用的,术语“链路”或“通信链路”可以指代用于传达数据或数据流的任何有形或无形的传输介质。另外,术语“链路”可以与“通信信道”、“数据通信信道”、“传输信道”、“数据传输信道”、“接入信道”、“数据接入信道”、“信道”、“数据链路”、“无线电链路”、“载波”、“射频载波”和/或表示通过其传达数据的路径或介质的任何其他类似术语同义和/或等效。

系统、方法、计算机程序产品和装置可以包括以下示例中的一个或组合:

示例1可以包括一种用于计算的装置,其包括:灵活总线链路;以及耦合到灵活总线链路的灵活总线栈,灵活总线栈包括复用逻辑,复用逻辑用于选择pcie上层模式或加速器链路协议上层模式,以通过灵活总线链路进行通信。

示例2可以包括示例1和/或本文的任何其他示例的用于计算的装置,其中,复用逻辑用于在链路初始化期间执行选择。

示例3可以包括示例1和/或本文的任何其他示例的用于计算的装置,其中,如果加速器链路模式被选择,则复用逻辑还用于启用单一协议或多种协议。

示例4可以包括示例1和/或本文的任何其他示例的用于计算的装置,其中,如果加速器链路模式被选择,则该装置还用于启用延迟优化。

示例5可以包括示例3和4和/或本文的任何其他示例的用于计算的装置,其中,修改后的pcie5.0训练集1/训练集2(ts1/ts2)有序集用于协商哪些加速器链路协议要被启用。

示例6可以包括示例5和/或本文的任何其他示例的用于计算的装置,其中,修改后的pciets1/ts2有序集还用于协商要启用哪些加速器链路低延迟特征。

示例7可以包括示例5和/或本文的任何其他示例的用于计算的装置,其中,加速器链路协议包括以下中的一个或多个:ial.io、ial.mem以及ial.cache。

示例8可以包括示例6和/或本文的任何其他示例的用于计算的装置,其中,低延迟特征包括以下中的一个或多个:同步报头抑制、跳过(skp)有序集抑制以及漂移缓冲模式。

示例9可以包括示例5和/或本文的任何其他示例的用于计算的装置,其中,协商包括两阶段过程,该两阶段过程在处于pcie5.0配置.通道号.等待、配置.通道号.接受以及配置.完成时并且在以gen1速度进入l0之前发生。

示例10可以包括示例9和/或本文的任何其他示例的用于计算的装置,其中,第一阶段包括:从根复合体接收提供灵活总线能力的修改后的ts1有序集的流,以及由该装置向根复合体发送指示要启用哪些灵活总线能力的修改后的ts1有序集的流。

示例11可以包括示例10和/或本文的任何其他示例的用于计算的装置,其中,第一阶段将在pcie5.0配置.通道号.等待或配置.通道号.接受期间发生。

示例12可以包括示例10和/或本文的任何其他示例的用于计算的装置,其中,第二阶段包括:从根复合体接收启用请求,该启用请求包括指示灵活总线链路是要以pcie上层模式还是加速器链路协议上层模式操作的修改后的ts2有序集的流,由该装置向根复合体发送具有相同灵活总线使能比特的修改后的ts2有序集的流以对启用请求进行确认。

示例13可以包括示例12和/或本文的任何其他示例的用于计算的装置,其中,第二阶段将在pcie5.0配置.完成期间发生。

示例14可以包括一种或多种非暂时性计算机可读存储介质,其包括多个指令,该指令响应于被执行而使得耦合到灵活总线链路的复用逻辑选择pcie上层模式或加速器链路协议上层模式,以通过灵活总线链路进行通信。

示例15可以包括示例14和/或本文的任何其他示例的一种或多种非暂时性计算机可读存储介质,还包括响应于被执行而使得复用逻辑在链路初始化期间执行选择的指令。

示例16可以包括示例14和/或本文的任何其他示例的一种或多种非暂时性计算机可读存储介质,还包括响应于被执行而使得复用逻辑进行以下操作的指令:如果加速器链路模式被选择,则启用单一协议或多种协议。

示例17可以包括示例14和/或本文的任何其他示例的一种或多种非暂时性计算机可读存储介质,还包括响应于被执行而使得复用逻辑进行以下操作的指令:如果加速器链路模式被选择,则启用延迟优化。

示例18可以包括示例16和/或本文的任何其他示例的一种或多种非暂时性计算机可读存储介质,其中,修改后的pcie5.0训练集1/训练集2(ts1/ts2)有序集(os)用于协商哪些加速器链路协议要被启用。

示例19可以包括示例17和/或本文的任何其他示例的一种或多种非暂时性计算机可读存储介质,其中,修改后的pciets1/ts2有序集还用于协商要启用哪些加速器链路低延迟特征。

示例20可以包括示例18和/或本文的任何其他示例的一种或多种非暂时性计算机可读存储介质,其中,加速器链路协议包括以下中的一个或多个:ial.io、ial.mem以及ial.cache。

示例21可以包括示例19和/或本文的任何其他示例的一种或多种非暂时性计算机可读存储介质,其中,低延迟特征包括以下中的一个或多个:同步报头抑制、跳过(skp)有序集抑制以及漂移缓冲模式。

示例22可以包括示例19和/或本文的任何其他示例的一种或多种非暂时性计算机可读存储介质,其中,协商包括两阶段过程,该两阶段过程在处于pcie5.0配置.通道号.等待、配置.通道号.接受以及配置.完成时并且在以gen1速度进入l0之前发生。

示例23可以包括示例22和/或本文的任何其他示例的一种或多种非暂时性计算机可读存储介质,其中,第一阶段包括从根复合体接收提供灵活总线能力的修改后的ts1有序集的流,以及由该装置向根复合体发送指示要启用哪些灵活总线能力的修改后的ts1有序集的流。

示例24可以包括示例23和/或本文的任何其他示例的一种或多种非暂时性计算机可读存储介质,其中,第一阶段将在pcie5.0配置.通道号.等待或配置.通道号.接受期间发生。

示例25可以包括示例22和/或本文的任何其他示例的一种或多种非暂时性计算机可读存储介质,其中,第二阶段包括从根复合体接收启用请求,该启用请求包括指示灵活总线链路是要以pcie上层模式还是加速器链路协议上层模式操作的修改后的ts2有序集的流,由该装置向根复合体发送具有相同灵活总线使能比特的修改后的ts2有序集的流以对启用请求进行确认。

示例26可以包括示例25和/或本文的任何其他示例的一种或多种非暂时性计算机可读存储介质,其中,第二阶段将在pcie5.0配置.完成期间发生。

实施例27是一种装置,其包括:灵活总线链路;以及耦合到灵活总线链路的灵活总线栈,灵活总线栈包括:复用逻辑,其用于选择快速外围组件互连(pcie)上层模式或加速器链路协议上层模式中的一个,pcie上层模式或加速器链路协议上层模式用于通过灵活总线链路进行通信;以及物理层逻辑,其用于确定与pcie上层模式或加速器链路协议上层模式中的一者或两者相关联的一个或多个低延迟特征。

示例28是一种或多种非暂时性计算机可读存储介质,其包括多个指令,该指令响应于被执行而使得耦合到灵活总线链路的复用逻辑选择基于快速外围组件互连(pcie)的上层模式或加速器链路协议上层模式,以通过灵活总线链路进行通信;并且使得耦合到灵活总线链路的物理层逻辑确定与pcie上层模式或加速器链路协议上层模式中的一者或两者相关联的一个或多个低延迟特征。

示例29是一种系统,其包括主机设备,该主机设备包括:根复合体;灵活总线链路;以及耦合到灵活总线链路的灵活总线栈,该灵活总线栈包括:复用逻辑,其用于选择快速外围组件互连(pcie)上层模式或加速器链路协议上层模式中的一个,pcie上层模式或加速器链路协议上层模式用于通过灵活总线链路进行通信;以及物理层逻辑,其用于确定与pcie上层模式或加速器链路协议上层模式中的一者或两者相关联的一个或多个低延迟特征;该系统还包括端点设备,端点设备跨灵活总线链路耦合到主机设备。

示例30可以包括示例29的主题,其中,根复合体用于:向端点设备发送第一组修改后的训练集(ts)1有序集,第一组ts1有序集包括对灵活总线链路的一个或多个灵活总线能力的通告;以及从端点设备接收第二组修改后的ts1有序集,第二组修改后的ts1有序集标识要激活的一个或多个灵活总线能力。

示例31可以包括示例29或30的主题,其中,根复合体用于:向端点设备发送第一组修改后的ts2有序集,第一组修改后的ts2有序集指示端点设备是应该以pcie模式还是加速器链路模式操作;以及从端点设备接收第二组修改后的ts2有序集,第二组修改后的ts2有序集指示pcie模式或加速器链路模式。

示例32可以包括示例31的主题,其中,接收到的第二组修改后的ts2有序集指示加速器链路模式被端点选择,并且其中,物理层逻辑用于激活与加速器链路模式相关联的低延迟特征设置,低延迟特征设置指示一个或多个低延迟特征,低延迟特征包括同步报头抑制、跳过(skp)有序集抑制以及漂移缓冲模式中的一个或多个。

示例33是一种方法,包括:由复用逻辑选择快速外围组件互连(pcie)上层模式或加速器链路协议上层模式中的一个,pcie上层模式或加速器链路协议上层模式用于通过灵活总线链路进行通信;以及物理层逻辑,用于由灵活总线物理层逻辑确定与pcie上层模式或加速器链路协议上层模式中的一者或两者相关联的一个或多个低延迟特征。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1