CN109844725B - 点对点互连中的非对称通道 - Google Patents

点对点互连中的非对称通道 Download PDF

Info

Publication number
CN109844725B
CN109844725B CN201680086314.5A CN201680086314A CN109844725B CN 109844725 B CN109844725 B CN 109844725B CN 201680086314 A CN201680086314 A CN 201680086314A CN 109844725 B CN109844725 B CN 109844725B
Authority
CN
China
Prior art keywords
hardware processor
pcie
channel
link
data
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.)
Active
Application number
CN201680086314.5A
Other languages
English (en)
Other versions
CN109844725A (zh
Inventor
李志明
阮兴平
胡潇
T·特劳施
周翔
严捷
R·佩布利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN109844725A publication Critical patent/CN109844725A/zh
Application granted granted Critical
Publication of CN109844725B publication Critical patent/CN109844725B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)

Abstract

一种系统包括主机处理器(105)和外围设备(708)。主机处理器(105)通过符合快速外围组件互连(PCIe)的链路耦合到外围设备(708)。外围设备(708)可以包括用于以下操作的逻辑电路:基于使用设备和主机处理器(105)的应用来识别由应用利用的读取与写入比率;以及向主机处理器(105)提供读取与写入比率。主机处理器(105)包括用于以下操作的逻辑电路:向跨符合快速外围组件互连(PCIe)的链路与硬件处理器通信的设备发送命令信号,命令信号指示发送(TX)通道与接收(RX)通道比率,该TX通道与RX通道比率对应于由外围设备(708)识别的读取与写入比率;以及接收设备能够支持非对称TX和RX比率的指示。

Description

点对点互连中的非对称通道
技术领域
本公开涉及计算系统,并且特别地涉及非对称PCIe通道。
背景技术
快速外围组件互连(PCIe)TM接口协议是跨计算机行业用于高速数据通信链路的标准。一些PCIe设备的性能可能受形状因子(例如,发送相对接收通道的数量)的约束。
快速PCI(PCIe)是描述用于在主机设备(例如,CPU)与I/O设备(也称为外围设备,例如,固态存储器)之间的高速互连的总线的协议。虽然PCIe已经从Gen1(2.5Gbps)演进到Gen3(8Gbps),但仍需要更多带宽。更高的带宽要求更多的PCIe通道,导致更高的信号计数连接器和更昂贵的电缆。在存在对最大信号计数的机械约束的应用中,PCIe通道计数受限,并且带宽达到上限。
附图说明
图1示出了包括互连架构的计算系统的实施例。
图2示出了包括分层栈的互连架构的实施例。
图3示出了要在互连架构内生成或接收的请求或分组的实施例。
图4示出了用于互连架构的发射机和接收机对的实施例。
图5示出了包括耦合到一个或多个数据网络的主机设备的示例系统。
图6是示例主机设备的框图。
图7A是根据本公开的实施例的跨PCIe链路连接到外围设备的主机设备的示意图。
图7B是根据本公开的实施例的跨PCIe链路连接到外围设备的主机设备的示意性框图。
图8是根据本公开的实施例的PCIe层的示意性框图。
图9是根据本公开的实施例的2:1复用器的示例图。
图10是根据本公开的实施例的3:1复用器的示例图。
图11是根据本公开的实施例的用于链路训练的过程流程图。
图12A-12C是示出根据本公开的实施例的动态调整发送通道和接收通道的示意性框图。
图13是根据本公开的实施例的用于动态调整发送通道和接收通道的泳道图。
图14是根据本公开的实施例的用于动态调整发送通道和接收通道的过程流程图。
图15示出了包括多核心处理器的计算系统的框图的实施例。
图16示出了实现为片上系统(SoC)的示例系统。
在各幅附图中相同的附图标记和名称指示相同的元素。
具体实施方式
在以下描述中阐述了许多具体细节,例如,特定类型的处理器和系统配置、特定硬件结构、特定架构和微架构细节、特定寄存器配置、特定指令类型、特定系统组件、特定测量/高度、特定处理器管线阶段和操作等的示例,以便提供对本发明的透彻理解。然而,对于本领域技术人员显而易见的是,不一定需要采用这些具体细节来实践本发明。在其他实例中,没有详细描述以下公知的组件或方法以免不必要地模糊本发明:例如,特定和替代的处理器架构、用于所描述的算法的特定逻辑电路/代码、特定固件代码、特定互连操作、特定逻辑配置、特定制造技术和材料、特定编译器实现方式、代码形式的特定算法表达、特定掉电和门控技术/逻辑以及计算机系统的其他特定操作细节。
虽然可以参考特定集成电路中的能量节约和能量效率来描述以下实施例(例如,在计算平台或微处理器中),但是其他实施例也适用于其他类型的集成电路和逻辑器件。本文描述的实施例的类似技术和教导可以适用于可以同样受益于更好的能量效率和能量节约的其他类型的电路或半导体器件。例如,所公开的实施例不限于台式计算机系统或UltrabooksTM,并且还可以用于其他设备,例如,手持设备、平板计算机、其他薄型笔记本计算机、片上系统(SOC)设备和嵌入式应用。手持设备的一些示例包括蜂窝电话、互联网协议设备、数码照相机、个人数字助理(PDA)和手持PC。嵌入式应用典型地包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络中心、广域网(WAN)交换机或可以执行下面教导的功能和操作的任何其他系统。此外,本文描述的装置、方法和系统不限于物理计算设备,而且还可以涉及用于能量节约和效率的软件优化。
随着计算系统的发展,其中的组件变得更加复杂。因此,在组件之间用于耦合和通信的互连架构的复杂性也在增加,以确保满足最佳组件操作的带宽要求。此外,不同的细分市场需要互连架构的不同方面来满足市场需求。例如,服务器要求更高的性能,而移动生态系统有时能够牺牲整体性能以节省功率。然而,大部分结构的单一目的是提供最高可能的性能和最大功率节省。下面讨论了许多互连,这些互连将潜在地受益于本文描述的本发明的方面。
一种互连结构架构包括快速外围组件互连(PCI)(PCIe)架构。PCIe的主要目标是使得来自不同供应商的组件和设备能够在开放式架构中互操作,跨越多个细分市场;客户端(台式和移动)、服务器(标准和企业)以及嵌入式设备和通信设备。快速PCI是高性能通用I/O互连,其定义用于各种未来计算和通信平台。一些PCI属性(例如,其使用模型,加载-存储架构和软件接口)已经通过其修订进行维护,而先前的并行总线实现方式已经由高度可扩展的完全串行接口取代。最近期的快速PCI版本利用点对点互连、基于开关的技术和分组化的协议中的改进,实现新水平的性能和特征。快速PCI支持的高级特征中的一些是功率管理、服务质量(QoS)、热插拔/热调换支持、数据完整性以及错误处理。
参考图1,示出了由互连一组组件的点对点链路组成的结构的实施例。系统100包括耦合到控制器中心115的处理器105和系统存储器110。处理器105包括任何处理元件,例如,微处理器、主机处理器、嵌入式处理器、协处理器或其他处理器。处理器105通过前侧总线(FSB)106耦合到控制器中心115。在一个实施例中,FSB 106是如下面描述的串行点对点互连。在另一实施例中,链路106包括符合不同互连标准的串行差分互连架构。
系统存储器110包括任何存储器设备,例如,随机存取存储器(RAM)、非易失性(NV)存储器或系统100中的设备可存取的其他存储器。系统存储器110通过存储器接口116耦合到控制器中心115。存储器接口的示例包括双倍数据速率(DDR)存储器接口、双通道DDR存储器接口以及动态RAM(DRAM)存储器接口。
在一个实施例中,控制器中心115是快速外围组件互连(PCIe或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/DVD ROM、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、Firewire设备、通用串行总线(USB)设备、扫描仪以及其他输入/输出设备。经常在PCIe中,诸如设备之类的术语被称为端点。虽然没有具体示出,但是设备125可以包括PCIe到PCI/PCI-X桥,以支持传统式或其他版本的PCI设备。PCIe中的端点设备经常被分类为传统式、PCIe或根复合体集成端点。
图形加速器130也通过串行链路132耦合到控制器中心115。在一个实施例中,图形加速器130耦合到MCH,该MCH耦合到ICH。然后将开关120以及因此I/O设备125耦合到ICH。I/O模块131和118还用于实现分层协议栈,以在图形加速器130与控制器中心115之间进行通信。类似于上面讨论的MCH,图形控制器或图形加速器130本身可以集成在处理器105中。应当理解,可以增强图1中所示的组件中的一个或多个组件(例如,105、110、115、120、125、130)以执行、存储和/或体现用于实现本文描述的特征中的一个或多个特征的逻辑。
转到图2,示出了分层协议栈的实施例。分层协议栈200包括任何形式的分层通信栈,例如,快速路径互连(QPI)栈、PCIe栈、下一代高性能计算互连栈或其他分层栈。虽然紧接着下面参考图1-4的讨论与PCIe栈有关,但是相同的概念可以适用于其他互连栈。在一个实施例中,协议栈200是包括事务层205、链路层210和物理层220的PCIe协议栈。接口(例如,图1中的接口117、118、121、122、126和131)可以表示为通信协议栈200。作为通信协议栈的表示也可以称为实现/包括协议栈的模块或接口。
快速PCI使用分组来在组件之间传送信息。在事务层205和数据链路层210中形成分组,以将信息从发送组件携带到接收组件。当被发送的分组流过其他层时,这些分组利用在这些层处处理分组所必需的附加信息进行扩展。在接收侧,发生反向过程,并且分组从其物理层220表示变换为数据链路层210表示,并且最后(对于事务层分组)变换为可以由接收设备的事务层205处理的形式。
事务层
在一个实施例中,事务层205用于提供设备的处理核心与互连架构(例如,数据链路层210和物理层220)之间的接口。在这方面,事务层205的主要职责是分组(即,事务层分组或TLP)的组包和拆包。事务层205典型地管理针对TLP的基于信用的流控制。PCIe实现分离事务,即,请求和响应通过时间分开的事务,允许链路在目标设备收集用于响应的数据时携带其他流量。
另外,PCIe利用基于信用的流控制。在该方案中,设备在事务层205中通告接收缓冲器中的每个接收缓冲器的初始信用量。在链路的相对端的外部设备(例如,图1中的控制器中心115)对由每个TLP消耗的信用的数量进行计数。如果事务未超过信用限制,则可以发送事务。当接收到响应时,将恢复一定量的信用。信用方案的优点在于,如果没有遇到信用限制,则信用返回的延迟不会影响性能。
在一个实施例中,四个事务地址空间包括配置地址空间、存储器地址空间、输入/输出地址空间和消息地址空间。存储器空间事务包括用于将数据传送到存储器映射的位置或从存储器映射的位置传送数据的读取请求和写入请求中的一个或多个。在一个实施例中,存储器空间事务能够使用两种不同的地址格式,例如,短地址格式(例如,32比特地址)或长地址格式(例如,64比特地址)。配置空间事务用于访问PCIe设备的配置空间。配置空间的事务包括读取请求和写入请求。消息事务被定义为支持PCIe代理之间的带内通信。
因此,在一个实施例中,事务层205对分组报头/有效载荷156进行组包。当前分组报头/有效载荷的格式可以在PCIe规范网站处的PCIe规范中找到。
参考图3,示出了PCIe事务描述符的实施例。在一个实施例中,事务描述符300是用于携带事务信息的机制。在这方面,事务描述符300支持对系统中事务的识别。其他潜在用途包括跟踪对默认事务排序的修改以及事务与信道的关联。
事务描述符300包括全局标识符字段302、属性字段304和信道标识符字段306。在所示示例中,全局标识符字段302被描绘为包括本地事务标识符字段308和源标识符字段310。在一个实施例中,全局事务标识符302对于所有未完成的请求是唯一的。
根据一种实现方式,本地事务标识符字段308是由请求代理生成的字段,并且其对于对该请求代理而言要求完成的所有未完成的请求是唯一的。此外,在该示例中,源标识符310唯一地标识PCIe层级内的请求者代理。因此,与源ID 310一起,本地事务标识符字段308提供层级域内的事务的全局标识。
属性字段304指定事务的特性和关系。在这方面,属性字段304潜在地用于提供允许修改对事务的默认处理的附加信息。在一个实施例中,属性字段304包括优先级字段312、预留字段314、排序字段316和非监听字段318。这里,优先级子字段312可以由发起者修改以向事务指派优先级。预留属性字段314被预留以供将来使用或供应商定义的使用。可以使用预留属性字段来实现使用优先级或安全性属性的可能使用模型。
在该示例中,排序属性字段316用于提供传达可以修改默认排序规则的排序类型的可选信息。根据一个示例实现方式,排序属性“0”表示要应用默认排序规则,其中排序属性“1”表示不严格的排序,其中写入可以在相同方向上传递写入,并且读取完成可以在相同方向上传递写入。监听属性字段318用于确定事务是否被监听。如所示出的,信道ID字段306标识事务与其相关联的信道。
链路层
链路层210(也称为数据链路层210)充当事务层205与物理层220之间的中间阶段。在一个实施例中,数据链路层210的职责是提供用于在两个链路组件之间交换事务层分组(TLP)的可靠机制。数据链路层210的一侧接受由事务层205组包的TLP,应用分组序列标识符211(即,标识编号或分组编号),计算并应用错误检测码(即,CRC 212),并且将修改后的TLP提交给物理层220以用于跨物理到外部设备的传输。
物理层
在一个实施例中,物理层220包括逻辑子块221和电子块222,以物理地将分组发送到外部设备。这里,逻辑子块221负责物理层220的“数字”功能。在这方面,逻辑子块包括用于准备传出信息以供由物理子块222进行发送的发送部分,以及用于在将接收到的信息传递到链路层210之前识别并准备接收到的信息的接收器部分。
物理块222包括发送器和接收器。发送器由逻辑子块221提供符号,发送器将符号串行化并发送到外部设备上。向接收器提供来自外部设备的串行化符号,并且接收器将接收到的信号变换为比特流。比特流被解串行化并提供给逻辑子块221。在一个实施例中,采用8b/10b传输码,其中发送/接收十比特符号。这里,特殊符号用于将分组帧化为帧223。另外,在一个示例中,接收器还提供从传入的串行流中恢复的符号时钟。
如上面陈述的,虽然参考PCIe协议栈的特定实施例讨论了事务层205、链路层210和物理层220,但是分层协议栈不限于此。实际上,可以包括/实现任何分层协议。作为示例,表示为分层协议的端口/接口包括:(1)用于对分组进行组包的第一层,即,事务层;用于对分组进行排序的第二层,即,链路层;以及用于传输分组的第三层,即,物理层。作为具体示例,使用公共标准接口(CSI)分层协议。
接下来参考图4,示出了PCIe串行点对点结构的实施例。虽然示出了PCIe串行点对点链路的实施例,但是串行点对点链路不限于此,因为其包括用于传输串行数据的任何传输路径。在所示的实施例中,基本PCIe链路包括两个低电压差分驱动信号对:发送对406/412和接收对411/407。因此,设备405包括用于将数据发送到设备410的发送逻辑406以及用于从设备410接收数据的接收逻辑407。换言之,两个发送路径(即,路径416和417)以及两个接收路径(即,路径418和419)包括在PCIe链路中。
传输路径指代用于传输数据的任何路径,例如,传输线路、铜线路、光线路、无线通信信道、红外通信链路或其他通信路径。两个设备(例如,设备405和设备410)之间的连接被称为链路,例如,链路415。链路可以支持一个通道——每个通道表示一组差分信号对(一对用于发送,一对用于接收)。为了扩展带宽,链路可以聚合由xN表示的多个通道,其中N是任何支持的链路宽度,例如,1、2、4、8、12、16、32、64或更宽。在一些实现方式中,每个对称通道包含一个发送差分对和一个接收差分对。非对称通道可以包含不等比率的发送和接收对。一些技术可以利用对称通道(例如,PCIe),而其他技术(例如,Displayport)可以不利用对称通道,并且甚至可以包括仅发送或仅接收对,以及其他示例。
差分对指代两个传输路径,例如,线路416和417,用于发送差分信号。作为示例,当线路416从低电压电平切换到高电压电平(即,上升沿)时,线路417从高逻辑电平驱动到低逻辑电平(即,下降沿)。差分信号潜在地表现出更好的电特性,例如,更好的信号完整性,即,交叉耦合、电压过冲/下冲、振铃等。这允许更好的定时窗口,其实现更快的传输频率。
如先前提到的,一些PCIe设备的性能可能受形状因子(例如,发送相对接收通道的数量)的约束。增加PCIe总线传送速率或连接器密度可能对生态系统产生重大影响。
本公开解决了来自经由PCIe连接到主机设备的外围设备(例如,NVMe SSD存储器或其他设备)的增加的数据吞吐量与有限的PCIe信号计数(例如,PCIe x4SFF-8639接口)之间的差距。
本发明通过利用大多数工作负载在NVMe SSD上表现的非对称读取/写入访问模式来最大化现有SFF-8639PCIe x4接口的利用率,即几乎达到x8性能。
在当前的PCIe规范中,在每个PCIe通道中分配相同数量的TX和RX对。例如,在SFF-8639PCIe SSD接口规范中有4个TX和RX对。然而,许多工作负载在读取和写入性能上并不均衡。例如,许多数据分析工作负载是读取密集的,在这种情况下,TX(从CPU的角度来看)的利用率低。
简而言之,如果读取/写入比率为M/N,则Tx/Rx比率也应为M/N,以实现优化的引脚利用率。因此,接口只需要具有(M+N)宽度,而不是原始的2*max(M,N)。本公开描述了促进PCIe链路中的不同TX和RX对以匹配工作负载的读取/写入模式。为了实现该目标,描述了新的物理层链路训练过程。另外,在一些实施例中,主机和外围设备可以实现动态可逆的TX/RX配置,以适应依赖于主机和外围设备的应用的读取/写入需求。描述了物理层链路训练过程,其可以根据外围设备或使用外围设备的(多个)应用的需要来调整TX通道或RX通道的数量。
图7A是根据本公开的实施例的系统700的示意图,系统700包括跨PCIe兼容接口714连接到外围设备708的主机设备702。首先,假设每个链路将包含至少一个发送(TX)通道和一个接收(RX)通道(通道0 701)。主机侧702可以包括发送和接收接口704以支持通道0701。主机侧702还可以包括多个TX和RX接口706。例如,对于x8接口,主机可以包括8个TX/RX对,如图7A所示。
设备侧708可以包括发送和接收接口710以支持通道0 701。设备侧708还可以包括多个TX和RX接口712。例如,对于x8接口,设备708可以包括8个TX/RX对,如图7A所示。
PCIe接口槽714可以物理地驻留在主机侧702与设备侧708之间。PCIe接口槽714可以经由物理传输通道链接主机702和设备708。在实施例中,PCIe接口槽714可以包括x4接口。为了适应x4PCIe接口714,可以使用一对复用器,如下面描述的:
复用器(MUX)组件716可以驻留在主机侧702上。复用器可以是用于支持主机侧接口和PCIe接口714的任何类型的复用器。示例复用器在图9-10中示出。主机侧712上的MUX716可以复用来自主机702的信号,从而来自MUX 716的输出通道的数量可以支持x4接口714。类似地,MUX 718可以驻留在设备侧708上。
MUX可以是电路元件,例如,现场可编程门阵列(FPGA)或其他合适的逻辑电路元件。可以通过边带配置控制器720来控制MUX。边带配置输入端在图9-10中被示为“SEL”引脚。边带配置控制器720是包括用于控制边带SEL引脚接口以配置MUX的状态的逻辑电路的管理实体。边带控制器720可以由CPU本身体现,或者可以是平台基板管理控制器或外部管理设备。
转到图7B,图7B是根据本公开的实施例的跨PCIe链路连接到外围设备的主机设备的示意性框图750。图750示出了提升器A 754和提升器B 756。提升器A 754可以包括MUX762以支持x8到x4复用。复用器可以是3x 2:1MUX,或可以是2x 3:1MUX,或MUX的其他配置。取决于应用需求,可以选择MUX类型和数量:
4T4R+2T6R:可以使用2x 2:1复用器
4T4R+1T7R:可以使用3x 2:1复用器
4T4R+1T7R+2T6R:可以使用1x 2:1和2x 3:1复用器
4T4R+2T6R+6T2R:可以使用1x 2:1和3x 3:1复用器。
作为示例,每个提升器754和756中的3x 2:1复用器用于实现4T4R→1T7R解决方案。通过更改复用器设置,可以通过x4密集PCIe接口从x8读取性能实现1T7R解决方案。
图8是根据本公开的实施例的PCIe层的示意性框图。本公开描述了增强PCIe相关方面,如图8所示。一般性地,图8示出了PCIe数据链路层802、PCIe数据物理IP(PIPE)810以及缓冲器和填充(pad)814。
PCIe数据链路层802包括x8控制器以支持x4灵活设计。在实施例中,可以使用其他配置,例如,可以支持x2、x6、x12、x16和x32PCIe通道宽度的配置。x8控制器可以包括被配置为支持对称x4PCIe接口或非对称1T7R/2T6R/6T2R/7T1R PCIe接口和通道配置的逻辑电路。
PCIe数据链路层802还包括收发器重新配置控制器806。收发器重新配置控制器可以包括添加的可配置性以改变TX/RX比率。OS、Bios或其他系统软件组件可以基于应用改变TX/RX比率以适应读取或写入繁重的业务。
数据链路层802包括用于实现FPGA控制器的现场可编程门阵列(FPGA)逻辑。内部PCIe逻辑包括扩展PCIe配置,其支持链路配置、链路控制(即,用于控制复用器)以及下面描述的第二阶段链路训练过程。
数据链路层802还包括用于基于可用TX/RX物理通道计数来划分/组包链路层分组的逻辑。
在PIPE 804中,针对非对称通道将逻辑添加到PHY IP核心812中。具体而言,在快速PCI扩展能力配置寄存器中添加新的“非对称通道能力”定义,以管理和配置非对称PCIe通道(例如,可变TX/RX支持、支持TX/RX比率、链路状态、链路控制、TX/RX配置、训练等)。另外,PIPE 810包括用于支持用于模拟缓冲器的不同TX/RX通道计数的逻辑。
缓冲器&填充812包括双向缓冲器816。双向缓冲器819包括发送缓冲器和接收缓冲器。缓冲器&填充814包括复用器层818,用于将TX或RX信号从PIPE 810重新指引至可配置的不同对。MUX的示例实现方式在图9和图10中示出,但是不限于这些实现方式。
图9是根据本公开的实施例的2:1复用器的示例图。图10是根据本公开的实施例的3:1复用器的示例图。复用器层存在不同的实现方式选项,包括但不限于使用PCIe复用器。如果期望两到三个TX/RX组合,则可以使用多个2:1复用器900或3:1复用器1000(如图9-10所示)来这样做。文中存在示例以说明如何使用复用器来实现这个想法。
图11A-B是根据本公开的实施例的用于链路训练的过程流程图。图11A描述了用于物理层链路训练过程的初始化步骤1100:首先,在通电时,设备将其自身设置为对称模式(例如,4T4R)(1102)。系统将根据PCIe协议进行传统链路训练(1104),从而主机总是看到x(N/2)设备(例如,x4PCIe)。主机软件代理(例如,BIOS、或OS、或设备驱动器)可以执行初始化过程,该初始化过程将识别x(N/2)设备实际上具有非对称链路能力(例如,通过扩展到PCI配置空间)(1106)。主机或设备软件代理可以针对使用PCIe设备的应用确定读取/写入或TX/RX比率(1108)。主机和设备可以执行第二阶段链路训练(1110)。
图11B描述了第二阶段链路训练(1110)。主机通过通道0向设备发送命令,以指示设备应该执行多少读取/写入比率(1152)。主机侧和设备侧两者都将调整相关设置(上述的),以确保TX/RX被重新指引以匹配特定比率(1154)。一侧(主机或设备)通过通道0将数据模式传送到另一侧,这在上面描述的第一训练阶段被证明是健康的(1156)。在实施例中,主机侧可以通过所有通道将测试数据模式重新发送到另一侧(1158)。然后,另一侧验证这两个数据模式是否接收到并且彼此匹配(1160)。
在一些实施例中,设备侧可以在通道0上发送数据模式,并且主机侧可以在一个或多个通道上将数据模式发送回设备侧以验证两个方向上的链接。
在一些实施例中,主机侧或设备侧可以通过将测试模式发送到另一侧(设备或主机)来在通道0上发起传输。同一侧(无论是主机还是设备)可以在所有活动的发送通道上将测试模式发送到另一侧。另一侧(无论是设备还是主机)可以在其活动的发送通道上发送回接收到的测试模式。
与仅使用一对通道进行回送测试相反,本公开的回送可以在相同方向上对所有通道进行练习。本文描述的回送测试可以在相同方向(例如,同时)对所有通道进行练习,并且可以发现潜在的通道到通道偏斜问题。
主机设备可以执行回送测试以识别可用通道的数量。回送测试可以在初始训练序列(例如,传统PCIe训练序列)之后执行,并且可以覆盖所有不同的TX/RX配置。
回送测试可以包括以下:主机根端口可以通过TX通道0向外围设备(或设备)发送符合性数据模式,并且设备可以使用所有可用的RX通道发送回模式。主机可以验证数据模式,并且如果结果是通过,则向设备发送确认。
在从主机接收到通过之后,设备可以通过RX通道0向主机发送符合性数据模式,并且主机可以使用所有可用的TX通道发送回模式。
设备可以验证数据模式,并且如果结果是通过,则向主机发送确认。
图12是根据本公开的实施例的用于动态调整发送通道和接收通道的泳道图。图12示出了系统1200,其包括位于主机侧的链路管理器1202和根复合体1204,以及PCIe端点设备1206。根复合体1204经由多个通道(L0、L1、L2和L3)与PCIe端点1206通信。
链路管理器1202是管理PCIe配置的逻辑实体。链路管理器1202可以包括驻留在单独的微控制器中的固件,或者在具有PCIe链路的CPU上运行的驱动程序。链路管理器1202可以与根复合体1204(其可以是主机设备或CPU的一部分)通信。链路管理器1202维护由主机设备上的根复合体1204报告的支持链路配置的表,以及当前链路配置(例如,当前链路配置可以周期性地更新,并且这些更新后的链路配置可以与链路管理器1202一起存储)。主机设备上的根复合体1204可以基于上面描述的技术识别支持链路配置。
首先,根复合体1204和PCIe端点可以执行传统链路训练,如上面关于图11A描述的(1252)。根复合体1204可以发起高级链路训练(1254)。根复合体1204和PCIe端点1206可以执行高级链路训练,如图11B中描述的(1256)。
根复合体1204可以提供在高级链路训练中识别的链路能力的报告(例如,由PCIe端点(1206)、根复合体(1204)或两者支持的链路能力)(1258)。链路管理器1202可以针对在根复合体1204与PCIe端点1206之间的通信设置初始链路配置(1260)。链路管理器1202可以将链路配置提供给根复合体逻辑1204,根复合体逻辑1204可以设置MUX配置以促进通道配置。
根复合体1204和PCIe端点1206可以执行对通道配置的附加更新(1262)。例如,根复合体1204和PCIe端点1206可以执行附加链路训练以识别通道TX/RX比率,这取决于使用CPU和端点设备运行的应用。根复合体可以向链路管理器1202报告更新后的链路状态(1264)。然后,链路管理器1202可以在根复合体1204处设置更新后的链路配置(1266)。
根复合体1204和PCIe端点可以连续地或周期性地更新链路配置(1268),并且根复合体1204可以向链路管理器1202报告更新后的链路状态(1270),并且循环可以继续。
图13A-C是示出根据本公开的实施例的动态调整发送通道和接收通道的示意性框图。对TX通道和RX通道的动态调整涉及使用链路管理器逻辑来基于工作负载类型动态配置PCIe通道方向。图13A-C示出了用于调整TX通道或RX通道的数量的三个场景。图13A示出了均衡负载1300。链路管理器1302可以与根复合体1304通信,根复合体1304可以与PCIe端点1306通信,如图12中描述的。发送通道的数量(x4)等于接收通道的数量(x4)。图13B示出了写入繁重的场景,其中TX通道的数量(这里,x7通道用于写入PCIe端点1306)大于读取通道的数量(x1读取通道,其中CPU根复合体1304可以从PCIe端点1306读取)。
图13C示出了读取繁重的场景,其中RX通道的数量(这里,x7通道用于从PCIe端点1306读取)大于写入通道的数量(x1写入通道,其中CPU根复合体1304可以写入PCIe端点1306)。
图14是根据本公开的实施例的用于动态调整发送通道和接收通道的过程流程图。首先,根复合体和PCIe设备可以识别初始配置状态(1402)。可以基于上面描述的高级链路训练技术来识别初始配置状态。根复合体可以向链路管理器提供初始配置状态(1404)。链路管理器可以在根复合体处设置初始配置(1406)。根复合体可以设置MUX以适应配置的TX/RX通道比率(1408)。
根复合体和PCIe端点可以更新配置状态(1410)(例如,基于继续的高级链路训练技术)。根复合体可以向链路管理器报告更新后的配置状态(1412)。链路管理器可以在根复合体处设置配置(1414)。该过程可以在1410处继续以周期性地更新配置状态。
动态更新链路配置的过程可以通过两步过程来概括:阶段1:更新到基本链路(x1TX/RX)和阶段2:更新到目标链路配置。这两个阶段用于影响根复合体侧和端点侧两者上的硬件设置(即,MUX的改变)和软件设置(例如,TX预加重和RX CTLE设置)的物理层方向的重新配置。可以在步骤2处进行附加的链路健康检查,以确保新链路的鲁棒性。
阶段1:在从链路管理器接收到请求时,根复合体(RC)将向端点(EP)发出命令以发起链路改变过程。EP可以在完成未决事务后确认请求。EP将停止向RC发送任何其他分组。RC将自身配置为x1TX/RX,禁用其余的TX链路。RC将向EP发出命令以请求将链路改变为x1TX/RX。并且EP将自身配置为x1TX/RX,并且然后确认请求。
阶段2:基本链路(TX/RX)可以继续正常事务,并且同时充当在RC与EP之间的命令接口。RC将向EP发出命令以请求新的TX/RX配置。EP将配置TX/RX设置,并且然后向RC确认请求。RC将自身配置为目标设置,并且向EP发出命令以开始测试模式。EP将接受该请求。RC将通过非基本TX链路发送测试模式,并且EP将通过基本对发送回模式。RC将验证模式。如果没有非基本TX对,则可以跳过该步骤。
RC可以向EP发出命令以请求测试模式。EP将通过非基本RX对发送测试模式。RC将验证模式。如果没有非基本RX对,则可以跳过该步骤。然后,EP将发出命令以将链路配置为目标配置。
参考图15,描绘了包括多核心处理器的计算系统的框图的实施例。处理器1500包括任何处理器或处理设备,例如,微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(SOC)或用于执行代码的其他设备。在一个实施例中,处理器1500包括至少两个核心——核心1501和1502,其可以包括不对称核心或对称核心(所示实施例)。然而,处理器1500可以包括可以是对称或不对称的任何数量的处理元件。
在一个实施例中,处理元件指支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核心和/或任何其他元件,其能够保持处理器的状态,例如,执行状态或架构状态。换言之,在一个实施例中,处理元件指能够独立地与代码(例如,软件线程、操作系统、应用或其他代码)相关联的任何硬件。物理处理器(或处理器插座)典型地指集成电路,其潜在地包括任何数量的其他处理元件,例如,核心或硬件线程。
核心经常指位于能够维护独立架构状态的集成电路上的逻辑,其中每个独立维护的架构状态与至少一些专用执行资源相关联。与核心对比,硬件线程典型地指位于能够维护独立架构状态的集成电路上的任何逻辑,其中独立维护的架构状态共享对执行资源的访问。如可以看出的,当共享特定资源而其他资源专用于架构状态时,硬件线程与核心的命名之间的界限重叠。但是经常,操作系统将核心和硬件线程视为个体逻辑处理器,其中操作系统能够单独地在每个逻辑处理器上调度操作。
如图15所示,物理处理器1500包括两个核心——核心1501和1502。这里,核心1501和1502被认为是对称核心,即具有相同配置、功能单元和/或逻辑的核心。在另一实施例中,核心1501包括无序的处理器核心,而核心1502包括按顺序的处理器核心。然而,核心1501和1502可以从以下任何类型的核心中单独地选择:例如,本机核心、软件管理核心、适于执行本机指令集架构(ISA)的核心、适于执行转换指令集架构(ISA)的核心、共同设计的核心或其他已知核心。在异构核心环境(即,非对称核心)中,可以利用某种形式的转换(例如,二进制转换)来在一个或两个核心上调度或执行代码。但是为了进一步讨论,核心1501中示出的功能单元在下面进一步详细描述,因为核心1502中的单元在所描绘的实施例中以类似的方式进行操作。
如所描绘的,核心1501包括两个硬件线程1501a和1501b,它们也可以称为硬件线程槽1501a和1501b。因此,在一个实施例中,诸如操作系统的软件实体潜在地将处理器1500视为四个分离的处理器,即能够并发地执行四个软件线程的四个逻辑处理器或处理元件。如上面提及的,第一线程与架构状态寄存器1501a相关联,第二线程与架构状态寄存器1501b相关联,第三线程可以与架构状态寄存器1502a相关联,并且第四线程可以与架构状态寄存器1502b相关联。这里,架构状态寄存器(1501a、1501b、1502a和1502b)中的每个可以被称为处理元件、线程槽或线程单元,如上面描述的。如所示出的,架构状态寄存器1501a在架构状态寄存器1501b中被复制,因此能够针对逻辑处理器1501a和逻辑处理器1501b存储个体架构状态/上下文。在核心1501中,还可以针对线程1501a和1501b复制其他较小的资源,例如,分配器和重命名器块1530中的指令指针和重命名逻辑。可以通过分区来共享一些资源,例如,重新排序/退出单元1535中的重新排序缓冲器、ILTB 1520、加载/存储缓冲器以及队列。潜在地完全共享其他资源,例如,通用内部寄存器、(多个)页表基址寄存器、低级别数据-高速缓存和数据-TLB 1515、(多个)执行单元1540以及无序单元1535的部分。
处理器1500经常包括其他资源,这些其他资源可以是完全共享的、通过分区共享的、或由处理元件专用/专用于处理元件的。在图15中,示出了具有处理器的说明性逻辑单元/资源的纯示例性处理器的实施例。注意,处理器可以包括或省略这些功能单元中的任何一个,以及包括未描绘的任何其他已知功能单元、逻辑或固件。如所示出的,核心1501包括简化的代表性无序的(OOO)处理器核心。但是在不同的实施例中可以使用按顺序的处理器。OOO核心包括用于预测要执行/采用的分支的分支目标缓冲器1520,以及用于存储指令的地址转换条目的指令转换缓冲器(I-TLB)1520。
核心1501还包括解码模块1525,其耦合到取得单元1520,用于解码所取得的元素。在一个实施例中,取得逻辑包括分别与线程槽1501a、1501b相关联的个体定序器。通常,核心1501与第一ISA相关联,该第一ISA定义/指定在处理器1500上可执行的指令。经常,作为第一ISA的一部分的机器代码指令包括指令的一部分(称为操作码),其引用/指定要执行的指令或操作。解码逻辑1525包括从其操作码中识别这些指令并且在管线中传递解码的指令以便如由第一ISA定义地进行处理的电路。例如,如下面更详细讨论的,在一个实施例中,解码器1525包括被设计为或适于识别诸如事务指令的特定指令的逻辑。由于解码器1525进行的识别,架构或核心1501采取特定的、预先定义的动作来执行与适当指令相关联的任务。重要的是要注意,可以响应于单个或多个指令来执行本文描述的任务、块、操作和方法中的任一个;其中一些指令可能是新的指令或旧的指令。注意,在一个实施例中,解码器1526识别相同的ISA(或其子集)。可替代地,在异构核心环境中,解码器1526识别第二ISA(第一ISA的子集或不同的ISA)。
在一个示例中,分配器和重命名器块1530包括用于预留资源(例如,用于存储指令处理结果的寄存器文件)的分配器。然而,线程1501a和1501b潜在地能够无序执行,其中分配器和重命名器块1530还预留其他资源,例如,用于跟踪指令结果的重新排序缓冲器。单元1530还可以包括寄存器重命名器,用于将程序/指令参考寄存器重命名为处理器1500内部的其他寄存器。重新排序/退出单元1535包括诸如上面提及的重新排序缓冲器、加载缓冲器和存储缓冲器之列的组件,以支持无序执行和无序执行的指令的稍后按顺序退出。
在一个实施例中,(多个)调度器和执行单元块1540包括调度器单元,用于调度执行单元上的指令/操作。例如,浮点指令在具有可用浮点执行单元的执行单元端口上被调度。还包括与执行单元相关联的寄存器文件,以存储信息指令处理结果。示例性执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元和其他已知的执行单元。
较低级别数据高速缓存和数据转换缓冲器(D-TLB)1550耦合到(多个)执行单元1540。数据高速缓存用于存储近期使用/操作的元素,例如数据操作数,其潜在地保留在存储器相干性状态中。D-TLB用于存储近期的虚拟/线性到物理地址转换。作为特定示例,处理器可以包括页表结构以将物理存储器分成多个虚拟页。
这里,核心1501和1502共享对更高级别或更远高速缓存的存取,例如,与片上接口1510相关联的第二级高速缓存。注意,更高级别或更远是指高速缓存级别增加或更远离(多个)执行单元。在一个实施例中,更高级别高速缓存是最后一级数据高速缓存——处理器1500上的存储器层级中的最后一级高速缓存——例如,第二级或第三级数据高速缓存。然而,更高级别高速缓存不限于此,因为其可以与指令高速缓存相关联或包括指令高速缓存。追踪高速缓存——一种类型的指令高速缓存——替代地可以在解码器1525之后耦合,以存储近期解码的追踪。这里,指令潜在地指宏指令(即,由解码器识别的一般指令),其可以解码为多个微指令(微操作)。
在所描绘的配置中,处理器1500还包括片上接口模块1510。历史上,下面更详细描述的存储器控制器包括在处理器1500外部的计算系统中。在该场景中,片上接口1510用于与处理器1500外部的设备通信,例如,系统存储器1575、芯片组(经常包括用于连接到存储器1575的存储器控制器中心以及用于连接外围设备的I/O控制器中心)、存储器控制器中心、北桥或其他集成电路。并且在这种场景中,总线1505可以包括任何已知的互连,例如,多点总线、点对点互连、串行互连、并行总线、相干(例如,高速缓存相干)总线、分层协议架构、差分总线和GTL总线。
存储器1575可以专用于处理器1500或与系统中的其他设备共享。存储器1575的类型的常见示例包括DRAM、SRAM、非易失性存储器(NV存储器)和其他已知的存储设备。注意,设备1580可以包括通信模块(例如,托管通信处理器)、图形加速器、耦合到存储器控制器中心的处理器或卡、耦合到I/O控制器中心的数据存储装置、无线收发器、闪存设备、音频控制器或其他已知的设备。
然而最近,随着更多逻辑和设备被集成在单个管芯上(例如,SOC),这些设备中的每个可以合并在处理器1500上。例如,在一个实施例中,存储器控制器中心与处理器1500在同一封装和/或管芯上。这里,核心的一部分(核心上部分)1510包括一个或多个控制器,用于与诸如存储器1575或其他设备1580(例如,通信模块)之类的其他设备相接合。包括用于与这种设备相接合的互连和控制器的配置经常被称为核心上(或非核心配置)。作为示例,片上接口1510包括用于片上通信的环形互连和用于片外通信的高速串行点对点链路1505。然而,在SOC环境中,甚至更多的设备(例如,网络接口、协处理器、存储器1575、图形处理器1580和任何其他已知的计算机设备/接口)可以集成在单个管芯或集成电路上,以提供具有高功能和低功耗的小形状因子。
在一个实施例中,处理器1500能够执行编译器、优化和/或转换器代码1577,以编译、转换和/或优化应用代码1576,以便支持本文描述的装置和方法或与其的接口。编译器经常包括将源文本/代码转换为目标文本/代码的程序或程序集。通常,用编译器编译程序/应用代码是在多个阶段中完成的,并且传递到将高级编程语言代码变换为低级机器或汇编语言代码。然而,单遍编译器仍可以用于简单编译。编译器可以利用任何已知的编译技术并且执行任何已知的编译器操作,例如,词法分析、预处理、解析、语义分析、代码生成、代码变换和代码优化。
较大的编译器经常包括多个阶段,但是大多数情况下经常是这些阶段包括在两个一般阶段中:(1)前端,即通常句法处理、语义处理和一些变换/优化可以发生的地方,以及(2)后端,即,通常分析、变换、优化和代码生成发生的地方。一些编译器指中间,其说明了编译器的前端与后端之间描绘的模糊处。因此,对编译器的插入、关联、生成或其他操作的引用可以在上述阶段或传递以及编译器的任何其他已知的阶段或传递中的任一个中发生。作为说明性示例,编译器潜在地在编译的一个或多个阶段中插入操作、调用、函数等,例如,在编译的前端阶段插入调用/操作,并且然后在变换阶段期间将调用/操作变换为较低级别代码。注意,在动态编译期间,编译器代码或动态优化代码可以插入此类操作/调用,以及优化代码以供在运行时期间执行。作为特定说明性示例,可以在运行时期间动态地优化二进制代码(已经编译的代码)。这里,程序代码可以包括动态优化代码、二进制代码或其组合。
与编译器类似,转换器(例如,二进制转换器)将代码静态或动态地转换,以优化和/或转换代码。因此,对执行代码、应用代码、程序代码或其他软件环境的引用可以指:(1)动态地或静态地执行(多个)编译器程序、优化代码优化器或转换器,以编译程序代码、维护软件结构、执行其他操作、优化代码或转换代码;(2)执行包括操作/调用的主程序代码,例如,已经优化/编译的应用代码;(3)执行与主程序代码相关联的其他程序代码(例如,库),以维护软件结构、执行其他软件相关的操作或者优化代码;或(4)其组合。
接下来转到图16,描绘了根据本发明的片上系统(SOC)设计的实施例。作为特定说明性示例,SOC 1600包括在用户设备(UE)中。在一个实施例中,UE指终端用户用于通信的任何设备,例如,手持电话、智能电话、平板计算机、超薄笔记本、具有宽带适配器的笔记本或任何其他类似的通信设备。经常,UE连接到基站或节点,其本质上潜在地对应于GSM网络中的移动站(MS)。
这里,SOC 1600具有包括两个或更多个核心(例如,1606和1607)的处理器1605(例如,应用处理器)。与上面的讨论类似,核心1606和1607可以符合指令集架构,例如,基于Architecture CoreTM的处理器、Advanced Micro Devices公司(AMD)处理器、基于MIPS的处理器、基于ARM的处理器设计或其客户以及其被许可人或采用者。核心1606和1607耦合到高速缓存控制1608,该高速缓存控制1608与总线接口单元1609和L2高速缓存1611相关联以与系统1600的其他部分通信。互连1610包括片上互连,例如,IOSF、AMBA或上面讨论的其他互连,其潜在地实现本文描述的一个或多个方面。
接口1610向以下其他组件提供通信信道:例如,订户身份模块(SIM)1630,用于与SIM卡相接合;引导rom 1635,用于保存引导代码以供核心1606和1607执行来初始化和引导SOC 1600;SDRAM控制器1640,用于与外部存储器(例如,DRAM 1660)相接合;闪存控制器1645,用于与非易失性存储器(例如,闪存1665)相接合;外围控制1650(例如,串行外围接口),用于与外围设备相接合;视频编解码器1620和视频接口1625,用于显示和接收输入(例如,支持触摸的输入);GPU 1615,用于执行图形相关计算等。这些接口中的任一个可以包含本文描述的本发明的方面。
另外,该系统示出了用于通信的外围设备,例如,蓝牙模块1670、LTE调制解调器1675(或其他通信模块(例如,托管通信处理器))、GPS 1685以及WiFi 1685。注意,如上面陈述的,UE包括用于通信的无线电。因此,这些外围通信模块并非都是要求的。然而,在UE中,应包括用于外部通信的一些形式的无线电。
虽然已经关于有限数量的实施例描述了本发明,但是本领域技术人员将从中意识到许多修改和变型。所附权利要求旨在覆盖落入本发明的真实精神和范围内的所有这些修改和变型。
设计可以经历从创建到模拟到制造的各种阶段。表示设计的数据可以以多种方式来表示设计。首先,如在模拟中有用的,可以使用硬件描述语言或另一种功能描述语言来表示硬件。另外,可以在设计过程的某些阶段产生具有逻辑和/或晶体管栅极的电路级模型。此外,大多数设计在某个阶段达到表示硬件模型中各种设备的物理放置的数据级别。在使用常规半导体制造技术的情况下,表示硬件模型的数据可以是指定用于产生集成电路的掩模在不同掩模层上存在或不存在各种特征的数据。在设计的任何表示中,数据可以以任何形式的机器可读介质存储。诸如盘的存储器或者磁或光存储装置可以是机器可读介质,用于存储经由被调制或以其他方式生成以传输这样的信息的光波或电波传输的信息。当传输指示或携带代码或设计的电载波时,在执行对电信号的复制、缓冲或重传的程度上,做出新的副本。因此,通信提供商或网络提供商可以至少临时地在有形的机器可读介质上存储物品(例如,编码成载波、体现本发明的实施例的技术的信息)。
如本文使用的模块指硬件、软件和/或固件的任何组合。作为示例,模块包括与非暂时性介质相关联的硬件,例如,微控制器,用于存储适于由微控制器执行的代码。因此,在一个实施例中,对模块的引用是指特别地配置为识别和/或执行要保留在非暂时性介质上的代码的硬件。此外,在另一实施例中,模块的使用是指包括代码的非暂时性介质,该代码特别适于由微控制器执行以执行预确定的操作。并且如可以推断的,在又一实施例中,术语模块(在该示例中)可以指微控制器和非暂时性介质的组合。经常被示为分离的模块边界通常变化并且潜在地重叠。例如,第一模块和第二模块可以共享硬件、软件、固件或其组合,同时潜在地保留一些独立的硬件、软件或固件。在一个实施例中,术语逻辑的使用包括诸如晶体管、寄存器或其他硬件(例如,可编程逻辑器件)之类的硬件。
在一个实施例中,短语“被配置为”的使用是指布置、放置在一起、制造、提供销售、导入和/或设计装置、硬件、逻辑或元件,以执行指定或确定的任务。在该示例中,如果装置或其元件被设计、耦合和/或互连以执行所述指定任务,则未被操作的装置或其元件仍“被配置为”执行指定任务。作为纯粹说明性示例,逻辑门可以在操作期间提供0或1。但是逻辑门“被配置为”向时钟提供使能信号不包括每个潜在逻辑门可以提供1或0。相反,逻辑门是以某种方式耦合的,在操作期间1或0输出用于使能时钟。再次注意,术语“被配置为”的使用不要求操作,而是关注于装置、硬件和/或元件的隐藏状态,其中在隐藏状态下,装置、硬件和/或元件被设计用于在装置、硬件和/或元件操作时执行特定任务。
此外,在一个实施例中,短语“用于”、“能够/能够用于”和/或“可操作用于”的使用是指一些装置、逻辑、硬件和/或元件以这样的方式设计,以使得能够以指定的方式使用装置、逻辑、硬件和/或元件。注意,如上述在一个实施例中使用用于、能够用于或可操作用于是指装置、逻辑、硬件和/或元件的隐藏状态,其中装置、逻辑、硬件和/或元件不操作但以这种方式设计为使得能够以特定方式使用装置。
如本文所使用的值包括数字、状态、逻辑状态或二进制逻辑状态的任何已知表示。经常,逻辑电平、逻辑值或逻辑的值的使用也称为1和0的使用,其仅表示二进制逻辑状态。例如,1指代高逻辑电平,并且0指代低逻辑电平。在一个实施例中,诸如晶体管或闪存单元之类的存储单元能够保持单个逻辑值或多个逻辑值。然而,已经在计算机系统中使用值的其他表示。例如,十进制数十也可以表示为二进制值1610和十六进制字母A。因此,值包括在计算机系统中能够保存的信息的任何表示。
此外,状态可以由值或值的部分表示。作为示例,第一值(例如,逻辑一)可以表示默认或初始状态,而第二值(例如,逻辑零)可以表示非默认状态。另外,在一个实施例中,术语复位和置位分别指默认值或状态和更新的值或状态。例如,默认值潜在地包括高逻辑值(即,复位)而更新的值潜在地包括低逻辑值(即,置位)。注意,可以使用值的任何组合来表示任何数量的状态。
上面阐述的方法、硬件、软件、固件或代码的实施例可以经由存储在可由处理元件执行的机器可存取、机器可读、计算机可存取或计算机可读介质上的指令或代码来实现。非暂时性机器可存取/可读介质包括以机器(例如,计算机或电子系统)可读形式提供(即,存储和/或传输)信息的任何机制。例如,非暂时性机器可存取介质包括随机存取存储器(RAM),例如,静态RAM(SRAM)或动态RAM(DRAM);ROM;磁性或光学存储介质;闪速存储器设备;电存储设备;光存储设备;声存储设备;用于保持从暂时性(传播)信号(例如,载波、红外信号、数字信号)接收到的信息的其他形式的存储设备;等等,其区别于可以从其接收信息的非暂时性介质。
用于对逻辑进行编程以执行本发明的实施例的指令可以存储在系统中的存储器(例如,DRAM、高速缓存、闪速存储器或其他存储装置)内。此外,指令可以经由网络或通过其他计算机可读介质的方式来分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,但不限于软盘、光盘、压缩盘只读存储器(CD-ROM)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪速存储器或用于通过互联网经由电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)传输信息的有形的机器可读存储装置。因此,计算机可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的有形的机器可读介质。
以下示例涉及根据本说明书的实施例。一个或多个实施例可以提供根据以下示例实施例中的一个或多个的方法、装置、系统、机器可读存储装置、机器可读介质、基于硬件和/或基于软件的逻辑:
示例1是一种装置,包括:硬件处理器,其包括用于以下操作的逻辑电路:向跨符合快速外围组件互连(PCIe)的链路与硬件处理器通信的设备发送命令信号,命令信号指示发送(TX)通道与接收(RX)通道比率;以及接收设备能够支持非对称TX和RX比率的指示。实施例还包括复用器(MUX)电路元件;硬件处理器包括用于以下操作的逻辑电路:将MUX配置为基于TX通道与RX通道比率将通信信号从硬件处理器指引至设备。
示例2可以包括示例1的主题,其中,硬件处理器包括用于以下操作的逻辑电路:通过第一TX通道向设备发送数据模式;以及通过多个RX通道接收数据模式。
示例3可以包括示例1或2中任一项的主题,其中,硬件处理器包括用于以下操作的逻辑电路:通过第一RX通道接收第二数据模式;以及通过多个TX通道发送第二数据模式。
示例4可以包括示例1或2或3中任一项的主题,其中,MUX包括多个2:1复用逻辑电路。
示例5可以包括示例1或2或3或4中任一项的主题,其中,MUX包括多个3:1复用逻辑电路。
示例6可以包括示例1或2或3或4或5中任一项的主题,其中,硬件处理器包括用于以下操作的逻辑电路:接收针对在设备上运行并且使用硬件处理器的应用的读取和写入比率的指示。
示例7可以包括示例1或2或3或4或5或7中任一项的主题,并且还包括双向缓冲器,该双向缓冲器包括第一缓冲器和第二缓冲器,第一缓冲器用于缓冲用于从硬件处理器到设备的发送的通信信号,第二缓冲器用于缓冲用于从设备到硬件处理器的接收的通信信号。
示例8可以包括示例1或2或3或4或5或6或7中任一项的主题,其中,符合PCIe的链路包括将硬件处理器和设备进行互连的x4槽。
示例9可以包括示例1或2或3或4或5或6或7或8中任一项的主题,其中,硬件逻辑电路包括用于控制MUX的x8控制器逻辑电路。
示例10可以包括示例1或2或3或4或5或6或7或8或9、10中任一项的主题,并且还可以包括PCIe数据链路层接口,PCIe数据链路层接口包括用于将物理层配置用于非对称TX和RX通道配置的逻辑电路,并且包括用于对来自被配置用于非对称TX通道和RX通道的物理层的信号进行解译的逻辑电路。
示例11是一种系统,包括:主机处理器;以及外围设备;其中,主机处理器通过符合快速外围组件互连(PCIe)的链路耦合到外围设备;外围设备包括用于以下操作的逻辑电路:基于使用设备和主机处理器的应用来识别由应用利用的读取与写入比率;以及向主机处理器提供读取与写入比率。主机处理器包括用于以下操作的逻辑电路:向跨符合快速外围组件互连(PCIe)的链路与硬件处理器通信的设备发送命令信号,命令信号指示发送(TX)通道与接收(RX)通道比率,TX通道与RX通道比率对应于由外围设备识别的读取与写入比率;以及接收设备能够支持非对称TX和RX比率的指示。
示例12可以包括示例11的主题,并且还包括复用器(MUX)电路元件;硬件处理器包括用于将MUX配置为基于TX通道与RX通道比率将通信信号从硬件处理器指引至设备的逻辑电路。
示例13可以包括示例11或12中任一项的主题,其中,硬件处理器包括用于以下操作的逻辑电路:通过第一TX通道向设备发送数据模式;以及通过多个RX通道接收数据模式。
示例14可以包括示例11或12或13的主题,其中,硬件处理器包括用于以下操作的逻辑电路:通过第一RX通道接收第二数据模式;以及通过多个TX通道发送第二数据模式。
示例15可以包括示例12的主题,其中,MUX包括多个2:1复用逻辑电路。
示例16可以包括示例12的主题,其中,MUX包括多个3:1复用逻辑电路。
示例17可以包括示例11或12或13或14或15或16中任一项的主题,其中,硬件处理器包括用于以下操作的逻辑电路:接收针对在设备上运行并且使用硬件处理器的应用的读取和写入比率的指示。
示例18可以包括示例11或12或13或14或15或16或17中任一项的主题,并且还可以包括双向缓冲器,该双向缓冲器包括第一缓冲器和第二缓冲器,第一缓冲器用于缓冲用于从硬件处理器到设备的发送的通信信号,第二缓冲器用于缓冲用于从设备到硬件处理器的接收的通信信号。
示例19可以包括示例11或12或13或14或15或16或17或18中任一项的主题,其中,符合PCIe的链路包括将硬件处理器和设备进行互连的x4槽。
示例20可以包括示例12的主题,其中,硬件逻辑电路包括用于控制MUX的x8控制器逻辑电路。
示例21可以包括示例1-10中任一项的主题,其中,硬件处理器包括用于以下操作的逻辑电路:通过第一TX通道向设备发送数据;以及通过多个RX通道接收数据。
示例22可以包括示例1-10和21中任一项的主题,其中,硬件处理器包括用于以下操作的逻辑电路:通过第一RX通道接收数据;以及通过多个TX通道发送数据。
示例23可以包括示例1-7中任一项的主题,其中,符合PCIe的链路包括将硬件处理器和设备进行互连的x4槽、x12槽、x16槽或x32槽中的一个。
示例24可以包括示例23的主题,其中,硬件逻辑电路包括用于控制MUX的x8控制器逻辑电路、x24控制器、x32控制器或x64控制器中的一个。
示例25是一种方法,包括:向跨符合快速外围组件互连(PCIe)的链路与硬件处理器通信的设备发送命令信号,命令信号指示发送(TX)通道与接收(RX)通道比率;接收设备能够支持非对称TX和RX比率的指示;通过第一TX通道向设备发送数据模式;通过多个RX通道接收数据模式;通过第一RX通道接收第二数据模式;以及通过多个TX通道发送第二数据模式。
示例26可以包括示例25的主题,并且还可以包括:通过第一TX通道向设备发送数据;以及通过多个RX通道接收数据。
示例27可以包括示例25或26中任一项的主题,并且还可以包括:通过第一RX通道接收数据;以及通过多个TX通道发送数据。
贯穿本说明书对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,贯穿本说明书各处出现的短语“在一个实施例中”或“在实施例中”不一定都指代相同的实施例。此外,特定特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。
在前述说明书中,已经参考特定示例性实施例给出了详细描述。然而,显而易见的是,在不脱离如所附权利要求中阐述的本发明的更宽泛的精神和范围的情况下,可以对其进行各种修改和改变。因此,说明书和附图应被视为说明性意义而非限制性意义的。此外,实施例的前述使用和其他示例性语言不一定指代相同的实施例或相同的示例,而是可以指代不同且相异的实施例,以及潜在地相同的实施例。

Claims (21)

1.一种用于通信的装置,包括:
硬件处理器,其包括用于以下操作的逻辑电路:
向跨符合快速外围组件互连(PCIe)的链路与所述硬件处理器通信的设备发送命令信号,所述命令信号指示发送(TX)通道与接收(RX)通道比率,以及
接收所述设备能够支持非对称TX和RX比率的指示;以及复用器(MUX)电路元件;
所述硬件处理器包括用于以下操作的逻辑电路:
将所述MUX配置为基于所述TX通道与RX通道比率将通信信号从所述硬件处理器指引至所述设备,
其中,所述装置还包括双向缓冲器,所述双向缓冲器包括第一缓冲器和第二缓冲器,所述第一缓冲器用于缓冲用于从所述硬件处理器到所述设备的发送的通信信号,所述第二缓冲器用于缓冲用于从所述设备到所述硬件处理器的接收的通信信号。
2.根据权利要求1所述的装置,其中,所述硬件处理器包括用于以下操作的逻辑电路:
通过第一TX通道向所述设备发送数据;以及
通过多个RX通道接收所述数据。
3.根据权利要求2所述的装置,其中,所述硬件处理器包括用于以下操作的逻辑电路:
通过第一RX通道接收第二数据;以及
通过多个TX通道发送所述第二数据。
4.根据权利要求1所述的装置,其中,所述MUX包括多个2:1复用逻辑电路。
5.根据权利要求1所述的装置,其中,所述MUX包括多个3:1复用逻辑电路。
6.根据权利要求1所述的装置,其中,所述硬件处理器包括用于以下操作的逻辑电路:
接收针对在所述设备上运行并且使用所述硬件处理器的应用的读取和写入比率的指示。
7.根据权利要求1所述的装置,符合PCIe的链路包括将所述硬件处理器和所述设备进行互连的x4槽。
8.根据权利要求1所述的装置,其中,所述逻辑电路包括用于控制所述MUX的x8控制器逻辑电路。
9.根据权利要求1所述的装置,还包括PCIe数据链路层接口,所述PCIe数据链路层接口包括用于将物理层配置用于非对称TX和RX通道配置的逻辑电路,并且包括用于对来自被配置用于非对称TX通道和RX通道的所述物理层的信号进行解译的逻辑电路。
10.根据权利要求1所述的装置,符合PCIe的链路包括将所述硬件处理器和所述设备进行互连的x4槽、x12槽、x16槽或x32槽中的一个。
11.一种用于通信的系统,包括:
主机处理器;以及
外围设备;
其中,所述主机处理器通过符合快速外围组件互连(PCIe)的链路耦合到所述外围设备;
所述外围设备包括用于以下操作的逻辑电路:
基于使用所述设备和所述主机处理器的应用来识别由所述应用利用的读取与写入比率;以及
向所述主机处理器提供所述读取与写入比率;并且
所述主机处理器包括用于以下操作的逻辑电路:
向跨符合快速外围组件互连(PCIe)的链路与硬件处理器通信的设备发送命令信号,所述命令信号指示发送(TX)通道与接收(RX)通道比率,所述TX通道与RX通道比率对应于由所述外围设备识别的所述读取与写入比率;以及
接收所述设备能够支持非对称TX和RX比率的指示,
其中,所述系统还包括双向缓冲器,所述双向缓冲器包括第一缓冲器和第二缓冲器,所述第一缓冲器用于缓冲用于从所述硬件处理器到所述设备的发送的通信信号,所述第二缓冲器用于缓冲用于从所述设备到所述硬件处理器的接收的通信信号。
12.根据权利要求11所述的系统,还包括复用器(MUX)电路元件;所述硬件处理器包括用于将所述MUX配置为基于所述TX通道与RX通道比率将通信信号从所述硬件处理器指引至所述设备的逻辑电路。
13.根据权利要求11所述的系统,其中,所述硬件处理器包括用于以下操作的逻辑电路:
通过第一TX通道向所述设备发送数据;以及
通过多个RX通道接收所述数据。
14.根据权利要求13所述的系统,其中,所述硬件处理器包括用于以下操作的逻辑电路:
通过第一RX通道接收第二数据;以及
通过多个TX通道发送所述第二数据。
15.根据权利要求12所述的系统,其中,所述MUX包括多个2:1复用逻辑电路。
16.根据权利要求12所述的系统,其中,所述MUX包括多个3:1复用逻辑电路。
17.根据权利要求11所述的系统,其中,所述硬件处理器包括用于以下操作的逻辑电路:
接收针对在所述设备上运行并且使用所述硬件处理器的应用的读取和写入比率的指示。
18.根据权利要求11所述的系统,符合PCIe的链路包括将所述硬件处理器和所述设备进行互连的x4槽。
19.根据权利要求12所述的系统,其中,所述逻辑电路包括用于控制所述MUX的x8控制器逻辑电路。
20.一种用于通信的方法,包括:
向跨符合快速外围组件互连(PCIe)的链路与硬件处理器通信的设备发送命令信号,所述命令信号指示发送(TX)通道与接收(RX)通道比率;
接收所述设备能够支持非对称TX和RX比率的指示;
通过第一TX通道向所述设备发送数据;
通过多个RX通道接收所述数据;
通过第一RX通道接收第二数据;以及
通过多个TX通道发送所述第二数据,
其中,用于从所述硬件处理器到所述设备的发送的通信信号在第一缓冲器中被缓冲,并且用于从所述设备到所述硬件处理器的接收的通信信号在第二缓冲器中被缓冲,
其中,所述第一缓冲器和所述第二缓冲器被包括在双向缓冲器中。
21.一种机器可读介质,其具有存储于其上的指令,所述指令当由机器执行时,使得所述机器执行如权利要求20所述的方法。
CN201680086314.5A 2016-07-01 2016-07-01 点对点互连中的非对称通道 Active CN109844725B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/088084 WO2018000406A1 (en) 2016-07-01 2016-07-01 Asymmetric lanes in point-to-point interconnect

Publications (2)

Publication Number Publication Date
CN109844725A CN109844725A (zh) 2019-06-04
CN109844725B true CN109844725B (zh) 2023-07-25

Family

ID=60785740

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680086314.5A Active CN109844725B (zh) 2016-07-01 2016-07-01 点对点互连中的非对称通道

Country Status (3)

Country Link
US (1) US10515032B2 (zh)
CN (1) CN109844725B (zh)
WO (1) WO2018000406A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10963035B2 (en) * 2017-10-11 2021-03-30 Qualcomm Incorporated Low power PCIe
US10409760B1 (en) 2018-03-09 2019-09-10 Samsung Electronics Co., Ltd. Adaptive interface high availability storage device
US10831688B2 (en) * 2018-08-21 2020-11-10 International Business Machines Corporation Reconfigurable network infrastructure
US10873525B2 (en) * 2018-08-29 2020-12-22 Intel Corporation Dynamic asymmetric communication path allocation
WO2020145956A1 (en) * 2019-01-09 2020-07-16 Hewlett-Packard Development Company, L.P. Data link changes based on requests
US11487683B2 (en) * 2020-04-15 2022-11-01 AyDeeKay LLC Seamlessly integrated microcontroller chip
US11907035B2 (en) 2020-05-15 2024-02-20 Intel Corporation Sideband signaling over existing auxiliary pins of an interface
CN112131154B (zh) * 2020-09-29 2024-06-18 北京计算机技术及应用研究所 一种通道与业务动态匹配的dma传输控制方法
CN112463461B (zh) * 2020-12-17 2023-12-22 北京浪潮数据技术有限公司 一种链路联通方法、装置、设备及计算机可读存储介质
CN113329483B (zh) * 2021-05-21 2022-08-16 Oppo广东移动通信有限公司 一种数据传输方法及终端、存储介质
US20220115047A1 (en) * 2021-12-22 2022-04-14 Intel Corporation Circuits And Methods For Sub-Bank Sharing Of External Interfaces

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101316141A (zh) * 2007-05-29 2008-12-03 华为技术有限公司 一种带宽分配方法、装置、通信设备和通信系统
CN103678201A (zh) * 2012-09-21 2014-03-26 Plx科技公司 具有逻辑设备能力的pci express切换器
CN103827841A (zh) * 2011-09-30 2014-05-28 英特尔公司 可配置带宽的io连接器
CN104426814A (zh) * 2013-08-30 2015-03-18 英特尔公司 Numa节点外围交换机
CN104932996A (zh) * 2014-03-20 2015-09-23 英特尔公司 用于控制链路接口的未使用硬件的功率消耗的方法、装置和系统
CN105229481A (zh) * 2013-02-21 2016-01-06 爱德万测试公司 具有存储器上的加速以及用于fpga块内自动模式生成的加速的测试器

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012050934A2 (en) * 2010-09-28 2012-04-19 Fusion-Io, Inc. Apparatus, system, and method for a direct interface between a memory controller and non-volatile memory using a command protocol
US9141496B2 (en) * 2010-10-15 2015-09-22 St-Ericsson Sa Methods and systems for testing electrical behavior of an interconnect having asymmetrical link
CN102281557A (zh) * 2011-06-10 2011-12-14 上海华为技术有限公司 一种上行流量控制方法、装置、级联设备及基站
WO2013134960A1 (en) * 2012-03-16 2013-09-19 Telefonaktiebolaget L M Ericsson (Publ) Method, network node, computer program and computer program product for determining resource allocation between downlink and uplink
US20150278138A1 (en) * 2014-03-28 2015-10-01 Mark N. Seidel Pseudorandom sequence synchronization
US9720838B2 (en) * 2015-03-27 2017-08-01 Intel Corporation Shared buffered memory routing
US9940287B2 (en) * 2015-03-27 2018-04-10 Intel Corporation Pooled memory address translation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101316141A (zh) * 2007-05-29 2008-12-03 华为技术有限公司 一种带宽分配方法、装置、通信设备和通信系统
CN103827841A (zh) * 2011-09-30 2014-05-28 英特尔公司 可配置带宽的io连接器
CN103678201A (zh) * 2012-09-21 2014-03-26 Plx科技公司 具有逻辑设备能力的pci express切换器
CN105229481A (zh) * 2013-02-21 2016-01-06 爱德万测试公司 具有存储器上的加速以及用于fpga块内自动模式生成的加速的测试器
CN104426814A (zh) * 2013-08-30 2015-03-18 英特尔公司 Numa节点外围交换机
CN104932996A (zh) * 2014-03-20 2015-09-23 英特尔公司 用于控制链路接口的未使用硬件的功率消耗的方法、装置和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于FPGA的光纤通道HBA卡设计与实现;俞则人等;《信息技术》;20151025(第10期);全文 *

Also Published As

Publication number Publication date
CN109844725A (zh) 2019-06-04
US20190138470A1 (en) 2019-05-09
WO2018000406A1 (en) 2018-01-04
US10515032B2 (en) 2019-12-24

Similar Documents

Publication Publication Date Title
CN109844725B (zh) 点对点互连中的非对称通道
US20220012189A1 (en) Sharing memory and i/o services between nodes
CN112671676B (zh) 可调节的重定时器缓冲器
CN110262923B (zh) 带内重定时器寄存器访问
US11550746B2 (en) Multi-uplink device enumeration and management
US10146291B2 (en) Method, apparatus, and system for improving resume times for root ports and root port integrated endpoints
US11663154B2 (en) Virtualized link states of multiple protocol layer package interconnects
CN111831594A (zh) 用于高速互连中低延迟的双模phy
US20220414046A1 (en) Systems, methods, and devices for dynamic high speed lane direction switching for asymmetrical interfaces
EP2778938A2 (en) Apparatus, system, and method for performing link training and equalization
TWI556094B (zh) 用以控制鏈結介面之未使用硬體的電力消耗之方法、設備及系統
US11347673B2 (en) Method, apparatus, system for thunderbolt-based display topology for dual graphics systems
US9665513B2 (en) Systems and methods for automatic root port to non-transparent bridge switching for a PCI express interconnect architecture
US20190095554A1 (en) Root complex integrated endpoint emulation of a discreet pcie endpoint
US11704275B2 (en) Dynamic presentation of interconnect protocol capability structures
US8958471B2 (en) Method, apparatus, and system for sliding matrix scoreboard utilized in auto feedback closed loops

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant