CN111831594A - 用于高速互连中低延迟的双模phy - Google Patents
用于高速互连中低延迟的双模phy Download PDFInfo
- Publication number
- CN111831594A CN111831594A CN202010693662.7A CN202010693662A CN111831594A CN 111831594 A CN111831594 A CN 111831594A CN 202010693662 A CN202010693662 A CN 202010693662A CN 111831594 A CN111831594 A CN 111831594A
- Authority
- CN
- China
- Prior art keywords
- phy
- mac
- block
- mode
- interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000009977 dual effect Effects 0.000 title description 9
- 239000000872 buffer Substances 0.000 claims abstract description 56
- 238000012546 transfer Methods 0.000 claims description 11
- 238000000034 method Methods 0.000 abstract description 22
- 230000015654 memory Effects 0.000 description 53
- 238000012545 processing Methods 0.000 description 24
- 239000003795 chemical substances by application Substances 0.000 description 19
- 238000004891 communication Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 17
- 238000013461 design Methods 0.000 description 14
- 238000003860 storage Methods 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 12
- 230000003287 optical effect Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 238000013519 translation Methods 0.000 description 8
- 230000001427 coherent effect Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 230000014616 translation Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 6
- 239000004744 fabric Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 230000005291 magnetic effect Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000006880 cross-coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000004134 energy conservation Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- BPTHCFBWOUNCBG-UHFFFAOYSA-N iodo-methyl-triphenoxy-$l^{5}-phosphane Chemical compound C=1C=CC=CC=1OP(I)(OC=1C=CC=CC=1)(C)OC1=CC=CC=C1 BPTHCFBWOUNCBG-UHFFFAOYSA-N 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
Abstract
系统、方法和装置涉及耦合到MAC的PHY。PHY可以包括耦合到接收器的输出的漂移缓冲器和耦合到接收器的输出的旁路分支。PHY包括时钟多路复用器,其包括耦合到PHY的恢复的时钟的第一时钟输入和耦合到MAC的p时钟的第二时钟输入;以及时钟输出,其被配置为基于选择输入值来输出恢复的时钟或p时钟中的一个。PHY包括旁路多路复用器,其包括耦合到漂移缓冲器的输出的第一数据输入和耦合到旁路分支的第二数据输入;以及数据输出,其被配置为基于时钟多路复用器的区段输入值来输出漂移缓冲器的输出或来自旁路分支的数据中的一个。
Description
本申请为分案申请,其原申请是于2019年5月24日(国际申请日为2017年11月15日)向中国专利局提交的专利申请,申请号为201780072843.4,发明名称为“用于高速互连中低延迟的双模PHY”。
相关申请的交叉引用
本申请要求2016年12月26日提交的题为“BIMODAL PHY FOR LOW LATENCY INHIGH SPEED INTERCONNECTS”的美国非临时专利申请No.15/390,648的优先权,该申请通过引用整体并入本文。
技术领域
本公开涉及计算系统,并且特别地(但非排他地)涉及点对点互连。
背景技术
半导体工艺和逻辑设计的进步允许增加集成电路器件上可能存在的逻辑量。作为推论,计算机系统配置已经从系统中的单个或多个集成电路发展到存在于各个集成电路上的多个核、多个硬件线程和多个逻辑处理器,以及集成在这些处理器内的其他接口。处理器或集成电路通常包括单个物理处理器管芯,其中处理器管芯可包括任何数量的核、硬件线程、逻辑处理器、接口、存储器、控制器集线器等。
由于具有在较小的封装中适配更大的处理功能的能力,较小的计算设备已经普及。智能手机、平板电脑、超薄笔记本电脑和其他用户设备呈指数级增长。但是,这些较小的设备依赖于服务器,无论是数据存储还是超出外形尺寸的复杂处理。因此,高性能计算市场(即服务器空间)的需求也增加了。例如,在现代服务器中,通常不仅具有多个核的单个处理器,而且还有多个物理处理器(也称为多个插槽)以增加计算能力。但随着处理能力随着计算系统中设备的数量而增长,插槽和其他设备之间的通信变得更加关键。
实际上,互连已经从主要处理电通信的更传统的多点总线发展到促进快速通信的全面互连架构。不幸的是,随着对未来处理器以更高速率相对应的需求消耗的需求被放置在现有互连架构的能力上。
附图说明
图1示出了包括互连架构的计算系统的实施例。
图2示出了包括分层堆栈的互连架构的实施例。
图3示出了要在互连架构内生成或接收的请求或分组的实施例。
图4示出了用于互连架构的发射器和接收器对的实施例。
图5示出了潜在的高性能互连系统配置的实施例。
图6示出了示例分层协议栈的实施例。
图7示出了PHY/MAC接口的表示。
图8示出了PIPE PHY/MAC接口的第一版本的表示。
图9示出了PIPE PHY/MAC接口的第二基于寄存器的版本的表示。
图10是根据本公开的实施例的示例双模PHY的示意图。
图11A是根据本公开的实施例的用于PIPE模式PHY/MAC接口的数据接收路径的示意图。
图11B是根据本公开的实施例的用于SERDES模式PHY/MAC的数据接收路径的示意图。
图12是根据本公开的实施例的双模PHY的过程流程图。
图13示出了包括多核处理器的计算系统的框图的实施例。
图14示出了用于包括多个处理器的计算系统的块的实施例。
各附图中相同的附图标记和名称表示相同的元件。
具体实施方式
在以下描述中,阐述了许多具体细节,诸如特定类型的处理器和系统配置的示例、特定的硬件结构、特定的架构和微架构细节、特定的寄存器配置、特定的指令类型、特定的系统组件、特定的测量/高度、特定的处理器流水线级和操作等,以便提供对本发明的透彻理解。然而,对于本领域技术人员显而易见的是,这些具体细节不需要被用来实践本发明。在其他实例中,没有详细描述公知的组件或方法,诸如特定的和替代的处理器架构、用于所描述的算法的特定逻辑电路/代码、特定的固件代码、特定的互连操作、特定的逻辑配置、特定的制造技术和材料、特定的编译器实现方式、利用代码的算法的特定表达、特定的下电和门控技术/逻辑以及计算机系统的其他具体操作细节,以便避免不必要地模糊本发明。
尽管以下实施例可以参考诸如计算平台或微处理器之类的特定集成电路中的节能和能量效率来描述,但是其他实施例可应用于其他类型的集成电路和逻辑器件。本文描述的实施例的类似技术和教导可以应用于也可以从更好的能量效率和节能受益的其他类型的电路或半导体器件。例如,所公开的实施例不限于台式计算机系统或UltrabookTM。并且,也可用于其他设备,如手持设备、平板计算机、其他薄型笔记本计算机、片上系统(SOC)设备和嵌入式应用。手持设备的一些示例包括蜂窝电话、互联网协议设备、数字相机、个人数字助理(PDA)和手持式PC。嵌入式应用通常包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机或可执行以下教导的功能和操作的任何其他系统。此外,本文描述的装置、方法和系统不限于物理计算设备,而是还可以涉及用于节能和效率的软件优化。如在下面的描述中将变得显而易见的,本文描述的方法、装置和系统的实施例(无论是参考硬件、固件、软件还是其组合)对于与性能考虑平衡的“绿色技术”未来都是至关重要的。
随着计算系统的发展,其中的组件变得越来越复杂。结果,用于在组件之间耦合和通信的互连架构在复杂性方面也在增加,以确保带宽要求针对最佳组件操作满足。此外,不同的市场细分需要互连架构的不同方面来适应市场的需求。例如,服务器需要更高的性能,而移动生态系统有时能够牺牲整体性能以用于功率节省。然而,大多数结构的独特目的是提供尽可能最高的性能和最大的功率节省。下面讨论了许多互连,这些互连可以从本文描述的本发明的方面中受益。
一种互连结构架构包括外围组件互连(PCI)快速(PCIe)架构。PCIe的主要目标是使来自不同供应商的组件和设备能够以开放的架构进行互操作,跨越多个细分市场;客户端(桌面型计算机和移动设备)、服务器(标准和企业)以及嵌入式和通信设备。快速PCI是针对各种未来计算和通信平台定义的高性能、通用I/O互连。一些PCI属性(如其使用模型、加载存储架构和软件接口)已通过其修订版本得到维护,而以前的并行总线实现方式已被高度可扩展的、完全串行接口所取代。快速PCI的最新版本利用点对点互连、基于交换机的技术和分组协议方面的优势以传送新级别的性能和特征。电源管理、服务质量(QoS)、热插拔/热交换支持、数据完整性和错误处理是由快速PCI支持的高级功能中的一些。
参考图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、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、火线设备、通用串行总线(USB)设备、扫描仪和其他输入/输出设备。通常在PCIe本地语中,例如设备,被称为端点。尽管没有具体示出,但是设备125可以包括PCIe到PCI/PCI-X桥以支持传统或其他版本的PCI设备。PCIe中的端点设备通常被分类为传统、PCIe或根联合体集成端点。
图形加速器130也通过串行链路132耦合到控制器集线器115。在一个实施例中,图形加速器130耦合到与ICH耦合的MCH。交换机120以及相应的I/O设备125然后被耦合到ICH。I/O模块131和118还实现分层协议栈以在图形加速器130和控制器集线器115之间通信。类似于上面的MCH讨论,图形控制器或图形加速器130本身可以集成在处理器105中。
转到图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组装分组报头/有效载荷206。当前分组报头/有效载荷的格式可以在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负责物理层221的“数字”功能。就此而言,逻辑子块包括发送部分,其用于准备用于由物理子块222发送的输出信息,以及接收部分,其用于在将接收到的信息传递给链路层210之前识别并准备接收到的信息。
物理块222包括发射机和接收机。发射机由逻辑子块221供应符号,发射机将符号串行化并发送到外部设备。接收机被供应来自外部设备的串行化的符号,并且将接收到的信号转换为位流。位流被解串行化并供应给逻辑子块221。在一个实施例中,使用8b/10b传输码,其中发送/接收10位符号。本文中,使用特殊符号来用帧223对分组进行组帧。另外,在一个示例中,接收机还提供从输入串行流恢复的符号时钟。
如上所述,尽管参照PCIe协议栈的特定实施例讨论了事务层205、链路层210和物理层220,但是分层协议栈并不限于此。实际上,可以包括/实现任何分层协议。作为示例,被表示为分层协议的端口/接口包括:(1)用于组装分组的第一层,即事务层;用于对分组进行排序的第二层,即链路层;以及用于发送分组的第三层,即物理层。作为具体的示例,使用通用标准接口(CSI)分层协议。
接下来参考图4,示出了PCIe串行点对点结构的实施例。尽管示出了PCIe串行点对点链路的实施例,但串行点对点链路不限于此,因为其包括用于发送串行数据的任何传输路径。在所示的实施例中,基本PCIe链路包括两个、低电压差分驱动信号对:发送对406/411和接收对412/407。因此,设备405包括用于将数据发送到设备410的传输逻辑406以及用于从设备410接收数据的接收逻辑407。换句话说,两个发送路径(即路径416和417)以及两个接收路径(即路径418和419)包括在PCIe链路中。
传输路径是指用于发送数据的任何路径,例如传输线、铜线、光线路、无线通信通道、红外通信链路或其他通信路径。两个设备(例如设备405和设备410)之间的连接被称为链路,例如链路415。链路可以支持一个通路-每个通路表示一组差分信号对(一对用于发送,一对用于接收)。为了缩放带宽,链路可以聚合由xN表示的多个通路,其中N是任何支持的链路宽度,诸如1、2、4、8、12、16、32、64或更宽。
差分对是指两个传输路径,例如线路416和417,用于发送差分信号。作为示例,当线路416从低电压电平切换到高电压电平(即,上升沿)时,线路417从高逻辑电平驱动到低逻辑电平,即下降沿。差分信号潜在地表现出更好的电特性,例如更好的信号完整性,即交叉耦合、电压过冲/欠冲、振铃等。这允许更好的定时窗口,这使得能够实现更快的传输频率。
在一个实施例中,可以利用超级路径互连(UPI)来互连两个或更多个设备。UPI可以实现下一代缓存一致的基于链路的互连。作为一个示例,UPI可以用在高性能计算平台中,例如工作站或服务器,包括在PCIe或其他互连协议通常用于连接处理器、加速器、I/O设备等的系统中。但是,UPI并不局限于此。相反,UPI可以用在本文描述的任何系统或平台中。此外,所开发的各个想法可以应用于其他互连和平台,例如PCIe、MTPI、QPI等。
为了支持多个设备,在一个示例实现中,UPI可以包括指令集架构(ISA)无关(即,UPI能够在多个不同的设备中实现)。在另一种情景下,UPI也可用于连接高性能I/O设备,而不仅仅是处理器或加速器。例如,高性能PCIe设备可以通过适当的转换桥(即UPI到PCIe)耦合到UPI。此外,UPI链路可以由许多基于UPI的设备(例如处理器)以各种方式(例如,星形、环形、网格等)使用。图5示出了多个潜在的多插槽配置的示例实现。如图所示,双插槽配置505可包括两个UPI链路;然而,在其他实现中,可以使用一个UPI链路。对于较大的拓扑,可以使用任何配置,只要标识符(ID)是可分配的并且存在某种形式的虚拟路径,以及其他附加或替代特征。如图所示,在一个示例中,四插槽配置510具有从每个处理器到另一个处理器的UPI链路。但是在配置515中所示的八插槽实现中,并非每个插槽都通过UPI链路彼此直接连接。但是,如果处理器之间存在虚拟路径或通道,则支持配置。一系列受支持的处理器在本机域中包括2-32。可以通过使用节点控制器之间的多个域或其他互连来达到更多数量的处理器,以及其他示例。
UPI架构包括分层协议架构的定义,在一些示例中包括协议层(一致、非一致、以及可选地,其他基于存储器的协议)、路由层、链路层和物理层。此外,UPI可以进一步包括与电源管理器(例如电源控制单元(PCU))、折叠测试和调试的设计(DFT)、故障处理、寄存器、安全性相关的增强,以及其他示例。图6示出了示例UPI分层协议栈的实施例。在一些实施方案中,图6中示出的层中的至少一些层是可选的。每个层处理其自己的粒度级别或信息量(具有分组630的协议层620a、协议层620b,具有flit 635的链路层610a、链路层610b,以及具有phit 640的物理层605a、605b)。注意,在一些实施例中,分组可以基于实现包括部分flit、单个flit或多个flit。
作为第一示例,phit 640的宽度包括链路宽度到位的1对1映射(例如20位链路宽度包括20位的phit等)。flit可以具有更大的尺寸,例如184、192或200位。注意,如果phit1140是20位宽,并且flit 1135的大小是184位,那么它将花费phit 1140的小数来发送一个flit 1135(例如,以20位的9.2phit发送184位flit 635或以20位的9.6发送192位flit,以及其他示例)。请注意,物理层处的基本链路的宽度可以有所不同。例如,每个方向的通路数量可以包括2、4、6、8、10、12、14、16、18、20、22、24等。在一个实施例中,链路层610a、610b能够将不同的事务多个片嵌入在单一flit中,并且一个或多个报头(例如1、2、3、4)可以被嵌入在flit内。在一个示例中,UPI将报头拆分为相对应的时隙,以使得在目的地为不同的节点的flit中有多个消息。
在一个实施例中,物理层605a、605b能够负责信息在物理介质(电或光学等)上的快速传输。物理链路在两个链路层实体(例如层605a和605b)之间是点到点的。链路层610a、610b从上层抽象出物理层605a、605b,并提供可靠地传送数据(以及请求)和管理两个直接连接的实体之间的流控制的能力。它还负责将物理通道虚拟化成多个虚拟通道和消息类别。协议层620a、620b依赖于链路层610a、610b以将协议消息映射到合适的消息类别和虚拟通道,然后将它们交给物理层605a、605b,以跨物理链路进行传送。链路层610a、610b可以支持多个消息,诸如请求、窥探、响应、写回、非一致数据,以及其他示例。
UPI的物理层605a、605b(或PHY)实现于电气层(即连接两个组件的电导体)之上并且位于链路层610a、610b之下,如图6所示。物理层和相对应的逻辑驻留在每个代理上,并且将相互分离的两个代理(A和B)(在链路的任一侧上的设备上)上的链路层连接。本地和远程电气层通过物理介质(例如电线、导体、光学等)连接。在一个实施例中,物理层605a、605b具有两个主要阶段:初始化和操作。在初始化期间,连接对于链路层是不透明的,并且信令可能涉及定时状态和握手事件的组合。在操作期间,连接对于链路层是透明的,并且信令处于如下速度,所有的通路一起作为单个链路工作。在操作阶段期间,物理层将flit从代理A转移到代理B,从代理B转移到代理A。连接也称为链路,并且在与链路层交换flit和当前配置的控制/状态(例如宽度)时从链路层中抽象出一些物理方面,包括介质、宽度和速度。初始化阶段包括次要阶段,例如,轮询、配置。操作阶段还包括次要阶段(例如,链路电源管理状态)。
在一个实施例中,可以实现链路层610a、610b,以便在两个协议或路由实体之间提供可靠的数据传输。链路层可以从协议层620a、620b抽象物理层605a、605b,并且可以负责两个协议代理(A,B)之间的流控制,并且向协议层(消息类)和路由层(虚拟网络)提供虚拟信道服务。协议层620a、620b和链路层610a、610b之间的接口通常可以处于分组级别。在一个实施例中,链路层处的最小传送单元被称为flit,例如192位或一些其他数量的指定的位数。链路层610a、610b依靠物理层605a、605b来将传送的物理层的605a、605b单元(phit)成帧为传送的链路层610a、610b单元(flit)。另外,链路层610a、610b可以在逻辑上分成两部分,发送器和接收器。一个实体上的发送器/接收器对可以连接到另一个实体上的接收器/发送器对。流量控制通常基于flit和分组执行。错误检测和纠正也可能基于flit级别执行。
在一个实施例中,路由层615a、615b提供灵活的以及分布式方法来将UPI事务从源路由到目的地。该方案是灵活的,因为用于多个拓扑的路由算法可以通过每个路由器处的可编程路由表来指定(在一个实施例中的编程由固件、软件或其组合来执行)。路由功能可以是分布式的;路由可以通过一系列路由步骤来完成,每个路由步骤通过在源路由器、中间路由器或目的地路由器处的查找表来定义。在源处的查找可以用来将UPI数据分组注入到UPI结构中。在中间路由器处的查找可以用来将UPI分组从输入端口路由到输出端口。目的地端口处的查找可以用来定位目标目的地UPI协议代理。请注意,在某些实现方式中,路由层很薄,因为路由表以及因此路由算法,没有通过规范来明确定义。这允许灵活性以及各种使用模型,包括由系统实现定义的灵活的平台架构拓扑。路由层615a、615b依靠链路层610a、610b以用于提供至多三个(或更多)虚拟网络(VN)的使用,在一个示例中,具有在每个虚拟网络中定义的多个消息类别的两个无死锁VN,VN0和VN1。可以在链路层中定义共享自适应虚拟网络(VNA),但是这个自适应网络可以不直接暴露在路由概念中,因为每个消息类别和虚拟网络可以具有专用资源并保证向前进展,以及其他特征和示例。
在一些实现中,UPI可以使用嵌入式时钟。时钟信号可以嵌入使用互连传输的数据中。利用嵌入在数据中的时钟信号,可以省略不同的并且专用时钟通道。例如,这可能是有用的,因为它可以允许设备的更多引脚专用于数据传输,特别是在引脚空间非常宝贵的系统中。
可以在互连的任一侧上的两个代理之间建立链路。发送数据的代理可以是本地代理,并且接收数据的代理可以是远程代理。两个代理可以使用状态机来管理链路的各个方面。在一个实施例中,物理层数据通路可以将flit从链路层发送到电气前端。在一个实现中,控制路径包括状态机(也称为链路训练状态机或类似机器)。状态机的动作和退出状态可能取决于内部信号、定时器、外部信号或其他信息。实际上,某些状态(例如一些初始化状态)可能具有提供超时值以退出状态的定时器。注意,在一些实施例中,检测是指检测车道的两条腿上的事件;但不一定同时。然而,在其他实施例中,检测是指由参考代理检测事件。作为一个示例,去抖动指的是信号的持续断言。在一个实施例中,UPI支持在非功能通道的情况下的操作。这里,车道可以在特定状态下掉落。
图7是示出了PHY与MAC层(例如,实现为两个或更多个不同的计算块(或“IP块”))之间的定义的接口705的简化框图700。在该示例中,通过物理通道710发送或接收的数据由PHY层逻辑715处理。在一个示例中,PHY层逻辑715可以包括物理介质附件(PMA)层和物理编码子层(PCS。PMA可以包括模拟缓冲器、串行器/解串器(SERDES)和接口(到通道710)(例如,10位或130位接口),以及其他示例逻辑和元件。PCS可以包括编码/解码逻辑(例如,8b/10b编码/解码或128b/130b编码/解码)、弹性缓冲器和接收器检测逻辑,以及其他示例逻辑和元件。在该示例中,PHY层逻辑715的全部或一部分可以体现在与体现链路层逻辑720的全部或一部分的另一计算块分开的计算块上。链路层逻辑720可以包括控制器逻辑,例如介质访问控制(MAC)层和与协议栈中的更高链路和事务层的接口。在一个示例中,MAC层可以包括用于链路训练、流控制和状态的状态机、加扰和解扰逻辑以及其他示例逻辑和元件。而图7的示例示出了MAC层作为链路层的一部分,在其他实现方式中,MAC层(或其他控制器层)可以是逻辑PHY层的一部分,并且基于寄存器的接口(采用本文描述的特征中的至少一些)可以将逻辑PHY连接到模拟或物理PHY,以及其他示例。
控制器与PHY之间定义的接口可以尝试在控制器和PHY之间定义标准化接口,包括定义用于与对接口的管理和链路上的一个或多个互连协议的支持相关联地在实现控制器的计算模块与PHY之间传输的控制和状态信号。例如,PIPE使用用于涉及MAC和PHY之间的通信的每个操作的专用控制和状态信号线来定义MAC与PHY之间的接口。随着PIPE支持的每个协议规范(例如PCIe,SATA,USB)发展(并且随着附加协议被添加以通过PIPE支持),PIPE信号的数量随着时间的推移而增长。实际上,最近关于PIPE的工作已经尝试增加对USB Type-C的支持,其中包括对显示端口、Thunderbolt和可配置Rx/Tx通道对的支持,以及其他示例。然而,这种改进将导致使用用于每个操作的专用信号的当前方案显著增加PIPE接口的信号线(和引脚)数量。实际上,传统的PIPE接口正在达到这样一个程度,即不断增加的引脚数会威胁到其未来的可扩展性和可用性。
本说明书呈现了解决上述问题的至少一些的特征和示例实现方式。例如,在一个示例中,通过利用基于寄存器的状态和控制接口来提供定义的接口(例如,PIPE接口)的低引脚数版本,可以解决定义的MAC-PHY的不断增加的信号和引脚数量。在一些示例接口中,可以定义一组数据路径信号以及控制和状态信号。例如,当前PIPE接口定义每个Rx/Tx通道对的数据路径信号和控制和状态信号(并且其他接口可以另外支持可配置对,其中对被配置为{Rx,Tx}、{Rx,Rx}、{Tx,Tx}或{Tx,Rx}等)。随着新信号被添加到接口定义中,这可能导致提供额外的引脚以适应新信号。在一个实施例中,可以实现传统PIPE接口的低引脚数版本,例如,通过提供如下接口,其维持用于数据路径信号、异步控制和状态信号以及延迟敏感控制和状态信号的专用线路,但是将针对该接口定义的剩余控制和状态信号映射到寄存器(例如,8位、16位或32位寄存器),其可以通过少量额外的引脚/线路访问,所述额外的引脚/线路例如有助于每个方向的4位、8位等的数据传输的线路。为了使用寄存器支持这些控制和状态信号的消息传送,可以提供地址空间(例如,12个地址位),其中,定义的寄存器被映射到该地址空间中。在一些实现方式中,该地址空间可以被设计为故意大,以适应将使用这些定义的寄存器的操作集、控制和状态信号的扩展。这为将来的扩展提供了充足的空间,并提供了用于容纳特定于供应商的寄存器的空间,PHY设计可使用特定于供应商的寄存器向控制器供应有用的状态信息或提供额外的可配置性。
继续上述示例,为了便于使用寄存器来进行这些控制和状态信号的消息传递,可以新定义读取、写入、完成和其他命令以访问寄存器。包括了一种用于将多个写入分组在一起以便它们在同一个循环中生效的机制。还包括了一种用于区分1周期断言类型信号和被保持为恒定值的信号的机制。涉及这些寄存器的事务可以包括命令、地址和数据或这三个元素的任何子集,其可以以时间复用的方式(例如,在多个单位间隔或时钟周期上)通过小的线路集传输。还可以结合接口定义成帧方案,通过该接口,相对应的计算块可以识别可能多个顺序(或同时)的寄存器事务的边界(例如,开始和结束),每个事务用于传送一个或多个控制或状态信号代替通过专用线驱动这些相同的信号,例如如在传统PIPE接口中以及其他示例特征中所做的那样。
如上所述,改进的MAC-PHY接口的一些实现方式可以使得定义的接口能够被扩展以支持复杂和大的信号集(例如,当扩展对USB Type-C的PIPE规范支持时),同时减少接口的信号和引脚数。为了说明,当前的PIPE接口信号计数大致需要加倍以支持Type-C可配置对,这将使PIPE兼容的Type-C设计从物理设计的角度来看实现非常具有挑战性。改进的接口设计(以前使用专用线路将一些信号卸载到专用寄存器)也可以提供用于在未来启用更多接口操作的能力,因为接口支持的协议(例如,PIPE)发展为添加新功能,同时保护接口以免接口信号数量的进一步增加。
转到图8,示出了将MAC计算块605与PHY计算块810耦合的传统PIPE接口的简化框图800。该接口可以包括控制和状态接口(用于控制和状态信令),每个通道有大约67个控制和状态输入以及80个控制和状态输出(即Rx/Tx对)。因此,实现多通道设计的接口将复制每个通道的这些信号中的每一个,这可能导致专用于支持该控制和状态接口的总引脚数的指数增长。
转到图9,示出了利用基于寄存器的低引脚数PIPE控制和状态接口的改进的PIPE接口的简化框图900。该接口适于将MAC计算块905与PHY计算块910耦合。在一个示例中,针对接口定义的控制和状态信号的子集可以被分类为异步信号、定时关键信号以及常规控制和状态信号。可以在改进的接口上为异步和定时关键控制和状态信号分配专用线路,例如图9中所示。然而,常规控制和状态信号可以映射到寄存器的位(例如,915、920)并由其替换,这些寄存器位通过一小组线(例如,四位或八位)访问,如本示例中所示。注册命令(例如读取和写入)、寄存器地址和寄存器数据可以在这个小型串行接口上以时间复用的方式发送。此外,接口的数据路径相关信号可以与控制和状态信号分离,并且实际上可以与传统接口实现方式(例如,传统PIPE接口)中提供的信号相同或非常相似。
对于高速互连通道,物理层实现为一对模拟PHY(PHY)和逻辑PHY(或MAC)。PHY和MAC之间的接口通常是称为PIPE的标准接口。PHY(例如,MG PHY)通常是硬IP并且对于各种协议(例如,UPI、PCIe、USB)是公共的,而MAC是SIP,其是特定于协议的。在一些情况下,可以复用两个或更多个MAC以使用相同的PHY。
在Rx方向上,数据必须从Rx恢复的时钟域移动到PHY时钟域,然后移动到MAC时钟域。在高速时,时钟周期非常短(例如,在16Gbs时UPI PHY/MAC周期为62.5ps)并且在域跨越期间同步数据传输变得具有挑战性。一种方法是在每个域交叉处使用漂移缓冲器(也称为PIPE模式),但这增加了延迟,这会损害多插槽系统的性能。另一种方法是将数据连同恢复的时钟直接从恢复的时钟域传递到MAC时钟域(也称为SERDES模式)。
期望具有可以在任一模式中工作的PHY,从而可以将不同的MAC复用/去复用到PHY。SERDES模式PHY在恢复的时钟域中对去串行化数据进行对齐,例如对齐到半符号边界。PIPE模式PHY使用弹性/漂移缓冲器以将从恢复的时钟域到PHY时钟域的反序列化数据交叉。本公开描述了将对齐的数据复用到漂移缓冲器的输出级并将恢复的时钟复用到该级。
图10是根据本公开的实施例的示例双模PHY 1000的示意图。PHY 1000可以将数据接收到接收器1002。接收器1002电连接到锁存电路1004。锁存电路1004的输出是分支的。第一分支将接收的数据发送到漂移缓冲器1006。漂移缓冲器1006可以是弹性缓冲器或其他类型的临时存储设备。漂移缓冲器1006的输出连接到漂移缓冲器读多路复用器(MUX)1010。漂移缓冲器读MUX 1010具有连接到旁路MUX 1012的输出。
第二分支是旁路分支1008。旁路分支1008输入到旁路MUX 1012。旁路MUX 1012的输出连接到输出分级触发器1014。
生物模式PHY 1000还包括时钟MUX 1018。时钟MUX 1018具有来自MAC的第一输入作为Pclk,并且具有来自接收数据的第二输入作为恢复的时钟1016。恢复的时钟也输入到锁存电路1004和写指针(WR PTR)1024中。时钟MUX的输出耦合到读指针(RD PTR)1022,用于漂移缓冲器读MUX 1010和输出分级锁存器1014。另外,时钟MUX的输出耦合到MAC的一个或多个电路元件(在图6A-图6B中更详细地描述)。
时钟MUX 1018由二进制输入控制,二进制输入设置生物模式PHY 1000的模式。在该示例中,模式0对应于操作的PIPE模式,而模式1对应于SERDES操作模式。二进制输入也被提供给旁路MUX 1012,其控制与操作模式相链接。每个操作模式也在图11A和图11B中更详细地描述。
图11A是根据本公开的实施例的用于PIPE模式PHY/MAC接口的数据接收路径的示意图。双模PHY 1000连接到符合PIPE的MAC 1100。对于模式的PIPE操作,对时钟MUX 1018的二进制输入被设置为0。二进制输入(0)也设置在旁路MUX 1012。
如前所述,恢复的时钟1016耦合到时钟MUX 1012的输入,并且MAC Pclk 1102耦合到时钟MUX 1012的另一输入。更具体地,恢复的时钟1016绑定到由1位选择的输入;而Pclk绑定到由0位选择的输入。对于PIPE操作,设置0位,这意味着将选择Pclk。Pclk信号从时钟MUX 1018输出,并提供给RD PTR 1022,用于漂移缓冲器读MUX,输出分级触发器1014和MAC流水线触发器1106。
二进制输入(针对PIPE为0)在旁路MUX 1012处设置。漂移缓冲器读MUX的输出耦合到由0控制位选择的旁路MUX 1012上的输入。(旁路分支1008绑定到由1控制位选择的旁路MUX 1012的输入。)当数据从漂移缓冲器1006到达旁路MUX 1012时,数据将从旁路MUX 1012输出到输出分级流1014。
使用来自时钟MUX 1018的Pclk读取输出分级触发器1014,以经由接口1104将数据输出到MAC到MAC流水线触发器1106。
图11B是根据本公开的实施例的用于SERDES模式PHY/MAC的数据接收路径的示意图。在图11B中,双模PHY 1000耦合到符合SERDES的MAC 1150。符合SERDES的MAC 1150包括耦合到读指针(RD PTR)1154和时钟MUX 1018的0选择输入的Pclk 1152。符合SERDES的MAC1150还包括漂移缓冲器1158,其具有耦合到时钟MUX 1018的输出的WR PTR 1156。漂移缓冲器1158输出到漂移缓冲器读MUX 1160,其输出到MAC输出分级触发器1162。
时钟MUX 1018的二进制输入针对SERDES操作被设置为1,其从恢复的时钟1016选择恢复的时钟信号作为时钟MUX 1018的输出。时钟MUX信号耦合到PHY漂移缓冲器读MUX1010的RD PTR、耦合到输出分级触发器1014以及耦合到MAC 1150的写指针(WR PTR)1156。
旁路MUX 1012的二进制输入针对SERDES操作也被设置为1。如上所述,旁路分支1008耦合到旁路MUX 1012。更具体地,旁路分支1008耦合到旁路MUX 1012的1可选输入,使得当对旁路MUX 1012的二进制输入设置为1时,旁路MUX 1012从旁路分支1008输出数据,从而绕过PHY漂移缓冲器1006。当数据从旁路分支1008到达旁路MUX 1012时,数据将从旁路MUX 1012输出到输出分级流1014。
数据被输入到MAC漂移缓冲器1158。恢复的时钟信号由时钟MUX 1018提供给WRPTR 1156,并且恢复的时钟信号用于将数据写入MAC漂移缓冲器1158。通过使用来自Pclk1152的Pclk信号的RD PTR 1154将数据读取到漂移缓冲器读MUX 1160。数据被读出到MAC输出分级触发器1162,其也与Pclk 1152对齐。
图12是根据本公开的实施例的双模PHY的过程流程图1200。首先,对于PIPE操作,模式位设置为0,或者对于SERDES操作,模式位设置为1(1202)。实际的位分配是一种设计选择,并且这里提供的值仅用于示例目的。在PHY接收器处接收数据(1204)。处理流程图1200包括关于设置哪种模式的确定(1206);但是,在操作之前设置模式,并且实际上不执行这样的决定。而是,电子元件将基于位设置的值来执行操作,如上所述。
在该示例中,对于0位设置,处理流程1200遵循操作的PIPE模式。接收的数据存储在PHY漂移缓冲器中(1208)。通过来自时钟MUX的Pclk信号从漂移缓冲器读数据(1210)。数据被读入旁路MUX。基于0位被设置旁路MUX被设置为从漂移缓冲器输入输出数据。旁路MUX向MAC输出数据(例如,通过输出分级触发器)(1214)。输出分级触发器使用来自时钟MUX的Pclk信号。时钟MUX可以将Pclk信号提供给MAC中的一个或多个元件,例如MAC流水线触发器(1216)。一旦设置了0位并且系统开启,就完成Pclk到MAC的路由;路由不需要等到数据发送到MAC之后。更一般地,操作顺序不是由过程流程图的顺序暗示的,因为一些操作通过电路与数据的路由同时发生。
在该示例中,对于1位设置,处理流程1200遵循操作的SERDES模式。数据通过旁路分支路由到旁路MUX,旁路MUX由1位设置以从旁路分支输出数据(1218)。旁路MUX向MAC输出数据(例如,通过输出分级触发器)(1220)。输出分级触发器使用来自时钟MUX的恢复的时钟信号将数据输出到符合SERDES的MAC(1222)。MAC将数据存储在MAC漂移缓冲器中。恢复的时钟信号从时钟MUX提供给MAC中的一个或多个元件(1224)。例如,MAC漂移缓冲器可以由WRPTR写入,该WR PTR使用来自时钟MUX的恢复的时钟信号。一旦设置了1位并且系统开启,就将恢复的时钟路由到MAC。路由不需要等到数据发送到MAC之后。更一般地,操作顺序不是由过程流程图的顺序暗示的,因为一些操作通过电路与数据路由同时发生。
参考图13,描绘了包括多核处理器的计算系统的框图的实施例。处理器1300包括任何处理器或处理设备,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持式处理器、应用处理器、协处理器、片上系统(SOC)或用于执行代码的其他设备。在一个实施例中,处理器1300至少包括两个核—核1301和1302,其可以包括不对称核或对称核(所示实施例)。然而,处理器1300可以包括可以是对称或不对称的任何数量的处理元件。
在一个实施例中,处理元件是指用于支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核、和/或任何其他元件,它们能够保持处理器的状态,例如执行状态或架构状态。换句话说,在一个实施例中,处理元件是指能够与代码(诸如软件线程、操作系统、应用或其它代码)独立关联的任何硬件。物理处理器(或处理器插槽)通常是指集成电路,其可能包括任何数量的其他处理元件,诸如核或硬件线程。
核通常是指位于集成电路上的能够维持独立架构状态的逻辑,其中每个独立维持的架构状态与至少一些专用执行资源相关联。与核不同,硬件线程通常是指位于集成电路上的能够维持独立架构状态的任何逻辑,其中独立维持的架构状态共享对执行资源的访问。可以看出,当某些资源被共享并且其他资源被专用于一架构状态时,硬件线程的命名与核之间的界限重叠。通常,操作系统将核和硬件线程视为单独的逻辑处理器,其中操作系统能够单独地调度每个逻辑处理器上的操作。
物理处理器1300,如图13所示,包括两个核—核1301和1302。本文中,核1301和1302被认为是对称核,即具有相同配置、功能单元和/或逻辑的核。在另一个实施例中,核1301包括乱序处理器核,而核1302包括有序处理器核。然而,核1301和1302可以从任何类型的核中单独选择,诸如本地核、软件管理的核、适于执行本地指令集架构(ISA)的核、适于执行转换指令集架构(ISA)的核、公共设计的核、或其他已知的核。在异构核环境(即不对称核)中,可以使用某种形式的转换(例如二进制转换)来调度或执行一个或两个核上的代码。为了进一步讨论,在核1301中示出的功能单元在下面进一步详细描述,因为核1302中的单元以所描绘的实施例中的类似方式操作。
如图所示,核1301包括两个硬件线程1301a和1301b,其也可以被称为硬件线程槽1301a和1301b。因此,在一个实施例中,诸如操作系统的软件实体潜在地将处理器1300视为四个单独的处理器,即能够同时执行四个软件线程的四个逻辑处理器或处理元件。如上所述,第一线程与架构状态寄存器1301a相关联,第二线程与架构状态寄存器1301b相关联,第三线程可与架构状态寄存器1302a相关联,并且第四线程可与架构状态寄存器1302b相关联。本文中,架构状态寄存器(1301a、1301b、1302a和1302b)中的每个可以被称为处理元件、线程槽或者线程单元,如上所述。如图所示,架构状态寄存器1301a在架构状态寄存器1301b中被复制,所以单独的架构状态/上下文能够被存储用于逻辑处理器1301a和逻辑处理器1301b。在核1301中,还可以针对线程1301a和1301b复制其他较小资源,诸如分配器和重命名块1330中的指令指针和重命名逻辑。诸如重排序/引退单元1335中的重排序缓冲器、ILTB1320、加载/存储缓冲器和队列之类的一些资源可以通过分区来共享。诸如通用内部寄存器、页表基址寄存器、低级数据高速缓存和数据TLB 1315、执行单元1340以及乱序单元1335的部分之类的其他资源潜在地完全共享。
处理器1300通常包括可以完全共享、通过分区共享或者由/对于处理元件专用的其他资源。在图13中,示出了具有处理器的示出性逻辑单元/资源的纯粹示例性处理器的实施例。注意,处理器可以包括或省略这些功能单元中的任何一个,并且还包括未描绘的任何其他已知的功能单元、逻辑或固件。如图所示,核1301包括简化的、表示性的乱序(OOO)处理器核。但是在不同的实施例中可以使用有序处理器。OOO核包括用于预测要执行/采取的分支的分支目标缓冲器1320和用于存储用于指令的地址转换条目的指令-转换缓冲器(I-TLB)1320。
核1301进一步包括解码模块1325,其耦合到取指单元1320以对取得的元素进行解码。在一个实施例中,取指逻辑包括分别与线程槽1301a、1301b相关联的单独的定序器。通常,核1301与第一ISA相关联,第一ISA定义/指定在处理器1300上可执行的指令。作为第一ISA的一部分的机器代码指令通常包括指令的一部分(称为操作码),其参考/指定待执行的指令或操作。解码逻辑1325包括从它们的操作码中识别这些指令并且将所解码的指令传送到流水线上以进行如第一ISA所定义的处理的电路。例如,如在下面更详细讨论的,在一个实施例中解码器1325包括被设计或适用于识别诸如事务指令之类的特定指令的逻辑。作为由解码器1325识别的结果,架构或核1301采取特定的、预定义动作来执行与适当指令相关联的任务。重要的是要注意,可以响应于单个或多个指令来执行本文描述的任务、块、操作和方法中的任何一个;其中一些可能是新的或旧的指令。注意的是,在一个实施例中,解码器1326识别相同的ISA(或其子集)。可替代地,在异构核环境中,解码器1326识别第二ISA(第一ISA的子集或不同的ISA)。
在一个示例中,分配器和重命名块1330包括分配器以保留资源,诸如用于存储指令处理结果的寄存器文件。然而,线程1301a和1301b潜在地能够乱序执行,其中分配器和重命名块1330还保留其他资源,例如用于跟踪指令结果的重排序缓冲器。单元1330还可以包括寄存器重命名器,其用于将程序/指令引用寄存器重命名为处理器1300内部的其他寄存器。重排序/引退单元1335包括诸如上述的重排序缓冲器、加载缓冲器和存储缓冲器之类的组件,以支持乱序执行以及随后按顺序引退乱序执行的指令。
在一个实施例中,调度器和执行单元块1340包括调度器单元,其用于调度执行单元上的指令/操作。例如,在具有可用浮点执行单元的执行单元的端口上调度浮点指令。还包括与执行单元相关联的寄存器文件以存储信息指令处理结果。示例性执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元以及其他已知执行单元。
低级数据高速缓存和数据转换缓冲器(D-TLB)1350耦合到执行单元1340。数据高速缓存用于存储最近使用/操作的元素,诸如数据操作数,其可能保存在存储器一致性状态。D-TLB用于存储最近的虚拟/线性到物理地址转换。作为具体的示例,处理器可以包括页面表结构,其用于将物理存储器分成多个虚拟页面。
本文中,核1301和1302共享对诸如与片上接口1310相关联的二级高速缓存之类的较高级别或进一步靠外的高速缓存的存取。注意,较高级别或进一步靠外指的是高速缓存级别增加或更远离执行单位。在一个实施例中,较高级高速缓存是最后一级数据高速缓存—处理器1300上的存储器层级中的最后的高速缓存—诸如第二或第三级数据高速缓存。但是,更高级别的高速缓存并不受限于此,因为它可能与指令高速缓存相关联或包括指令高速缓存。踪迹高速缓存(一种类型的指令高速缓存)可以耦合在解码器1325之后以存储最近解码的踪迹。本文中,指令可能是指可被解码成多个微指令(微操作)的宏指令(即,由解码器识别的一般指令)。
在所描绘的配置中,处理器1300还包括片上接口模块1310。从历史上看,以下更详细描述的存储器控制器已被包括在处理器1300外部的计算系统中。在该场景中,片上接口1310用于与处理器1300外部的设备进行通信,所述设备诸如系统存储器1375、芯片组(通常包括用于连接到存储器1375的存储器控制器集线器和用于连接外围设备的I/O控制器集线器)、存储器控制器集线器、北桥或其他集成电路。并且在该场景中,总线1305可以包括任何已知的互连,例如多分支总线、点对点互连、串行互连、并行总线、一致(例如高速缓存一致)总线、分层协议架构、差分总线和GTL总线。
存储器1375可以专用于处理器1300或者与系统中的其他设备共享。存储器1375的类型的常见示例包括DRAM、SRAM、非易失性存储器(NV存储器)以及其他已知的存储设备。注意,设备1380可以包括耦合到存储器控制器集线器的图形加速器、处理器或卡,耦合到I/O控制器集线器的数据存储器、无线收发机、闪存设备、音频控制器、网络控制器或其它已知的设备。
然而,最近,随着越来越多的逻辑和器件被集成在诸如SOC之类的单个管芯上,这些器件中的每一个都可以被并入到处理器1300中。例如,在一个实施例中,存储器控制器集线器位于与处理器1300相同的封装和/或管芯上。本文中,核的一部分(核上部分)1310包括用于与诸如存储器1375或图形设备1380之类的其他设备接口接合的一个或多个控制器。包括用于与这些设备接合的互连和控制器的配置通常被称为核上(或无核配置)。作为示例,片上接口1310包括用于片上通信的环形互连和用于片外通信的高速串行点对点链路1305。然而,在SOC环境中,甚至更多设备(例如网络接口、协处理器、存储器1375、图形处理器1380以及任何其他已知的计算机设备/接口)可以集成在单个管芯或集成电路上以提供小形状因数,具有高功能和低功耗。
在一个实施例中,处理器1300能够执行编译器、优化和/或转换器代码1377以编译、转换和/或优化应用代码1376以支持本文描述的装置和方法或与其进行接合。编译器通常包括程序或一组程序来将源文本/代码转换成目标文本/代码。通常,用编译器来编译程序/应用代码是分多个阶段以及多遍完成的,以将高级编程语言代码转换为低级机器语言或汇编语言代码。然而,单遍编译器仍然可以用于简单的编译。编译器可以利用任何已知的编译技术,并执行任何已知的编译器操作,例如,词法分析、预处理、解析、语义分析、代码生成、代码转换和代码优化。
较大的编译器通常包括多个阶段,但是大多数情况下,这些阶段被包括在两个一般阶段内:(1)前端,即通常其中可以发生句法处理、语义处理和一些转换/优化,以及2)后端,即通常其中发生分析、转换、优化和代码生成。一些编译器引用中间的部分,它示出了编译器的前端和后端之间的界限的模糊。因此,对编译器的插入、关联、生成或其他操作的引用可以发生在上述阶段或遍中的任何,以及编译器的任何其他已知阶段或遍中。作为示出性示例,编译器可能在编译的一个或多个阶段中插入操作、调用、函数等,诸如在编译的前端阶段中插入调用/操作,并且然后在转换阶段期间将调用/操作转换为较低级的代码。请注意,在动态编译期间,编译器代码或动态优化代码可以插入这样的操作/调用,并优化代码以在运行时期间执行。作为具体的示出性示例,二进制代码(已编译的代码)可以在运行时期间被动态优化。本文中,程序代码可以包括动态优化代码、二进制代码或其组合。
类似于编译器,诸如二进制转换器之类的转换器静态地或动态地转换代码以优化和/或转换代码。因此,对代码、应用代码、程序代码或其他软件环境的执行的引用可以指:(1)动态地或静态地执行编译器程序、优化代码优化器或转换器来编译程序代码、维护软件结构、执行其他操作、优化代码、或转换代码;(2)执行包括操作/调用的主程序代码,所述操作/调用例如已被优化/编译的应用代码;(3)执行与主程序代码相关联的其他程序代码(例如库)以维护软件结构、执行其他软件相关的操作,或优化代码;或(4)其组合。
现在参照图14,示出了根据本发明实施例的第二系统1400的框图。如图14所示,多处理器系统1400是点对点互连系统,并且包括经由点对点互连1450耦合的第一处理器1470和第二处理器1480。处理器1470和1480中的每一个可以是某一版本的处理器。在一个实施例中,1452和1454是诸如高性能架构之类的串行、点对点一致互连结构的一部分。结果,本发明可以在QPI架构内实现。
尽管仅示出了两个处理器1470、1480,但是应该理解的是,本发明的范围不限于此。在其他实施例中,一个或多个额外的处理器可以存在于给定的处理器中。
示出处理器1470和1480分别包括集成存储器控制器单元1472和1482。处理器1470还包括作为其总线控制器单元的一部分的点对点(P-P)接口1476和1478;类似地,第二处理器1480包括P-P接口1486和1488。处理器1470、1480可以使用P-P接口电路1478、1488经由点对点(P-P)接口1450交换信息。如图14中所示,IMC 1472和1482将处理器耦合到各自的存储器,即存储器1432和存储器1434,存储器1432和存储器1434可以是本地附接到各自处理器的主存储器的部分。
处理器1470、1480的每个使用点对点接口电路1476、1494、1486、1498经由单独的PP接口1452、1454与芯片组1490交换信息。芯片组1490还沿着高性能图形互连1439经由接口电路1492与高性能图形电路1438交换信息。
共享高速缓存(未示出)可被包括在任一处理器中或在两个处理器之外;还经由P-P互连与处理器连接,使得如果处理器被置于低功率模式,则可以将任一个或两个处理器的本地高速缓存信息存储在共享高速缓存中。
芯片组1490可以经由接口1496耦合到第一总线1416。在一个实施例中,第一总线1416可以是外围组件互连(PCI)总线,或者诸如快速PCI总线或另一第三代I/O互连总线之类的总线,但是本发明的范围不限于此。
如图14所示,各种I/O设备1414连同将第一总线1416耦合到第二总线1420的总线桥1418一起耦合到第一总线1416。在一个实施例中,第二总线1420包括低引脚数(LPC)总线。在一个实施例中,各种设备耦合到第二总线1420,所述各种设备包括例如键盘和/或鼠标1422、通信设备1427和存储单元1428(例如通常包括指令/代码和数据1430的磁盘驱动器或其他大容量存储设备)。此外,音频I/O 1424被示出为耦合到第二总线1420。注意,其他架构是可能的,其中所包括的组件和互连架构有所不同。例如,代替图14的点对点架构,系统可以实现多分支总线或其他这样的架构。
尽管已经关于有限数量的实施例描述了本发明,但是本领域的技术人员将从其中意识到许多修改和变化。意图是所附权利要求覆盖落入本发明的真实精神和范围内的所有这样的修改和变化。
设计可以经历从创建到模拟到制造的各种阶段。表示设计的数据可以以多种方式表示设计。首先,如在模拟中有用的那样,可以使用硬件描述语言或另一种功能描述语言来表示硬件。此外,可以在设计过程的某些阶段产生具有逻辑和/或晶体管栅极的电路级模型。此外,大多数设计在某个阶段达到了表示硬件模型中各种设备的物理布置的数据级别。在使用常规半导体制造技术的情况下,表示硬件模型的数据可以是指定用于产生集成电路的掩模的不同掩模层上的各种特征的存在或不存在的数据。在设计的任何表示中,数据可以以任何形式的机器可读介质存储。存储器或磁存储装置或光存储装置(诸如光盘)可以是机器可读介质,其用于存储经由光波或电波发送的信息,所述光波或电波被调制或以其他方式生成来发送这样的信息。当发送指示或携带代码或设计的电载波时,在执行电信号的复制、缓冲或重传的范围内,得到新的副本。因此,通信提供商或网络提供商可以在有形的机器可读介质上至少暂时地存储体现本发明的实施例的技术的物品,诸如编码成载波的信息。
本文使用的模块是指硬件、软件和/或固件的任何组合。作为示例,模块包括与用于存储适于由微控制器执行的代码的非暂时性介质相关联的硬件(诸如微控制器)。因此,在一个实施例中,对模块的引用是指硬件,其被具体配置为识别和/或执行将被保持在非暂时性介质上的代码。此外,在另一个实施例中,模块的使用是指包括代码的非暂时性介质,该代码特别适用于由微控制器执行以执行预定操作。并且如可以推断的,在又一个实施例中,术语模块(在该示例中)可以指代微控制器和非暂时性介质的组合。通常是单独显示的模块边界通常会有所不同并可能重叠。例如,第一模块和第二模块可以共享硬件、软件、固件或其组合,同时可能保留一些独立的硬件、软件或固件。在一个实施例中,术语逻辑的使用包括硬件,诸如晶体管、寄存器或其他硬件(诸如可编程逻辑器件)。
在一个实施例中,使用短语“配置为”是指将装置、硬件、逻辑或元件布置、放在一起、制造、提供以销售、导入和/或设计为执行指定或确定的任务。在这个示例中,如果设计、耦合和/或互连来执行所指定的任务,那么不操作的装置或其元件仍然‘配置为’执行指定的任务。作为纯粹的示出性示例,逻辑门可以在操作期间提供0或1。但是‘配置为’向时钟提供使能信号的逻辑门不包括可以提供1或0的每个可能的逻辑门。相反,逻辑门是以某种方式耦合的逻辑门,即在操作期间1或0输出用于启用时钟。再次注意,使用术语“配置为”不需要操作,而是集中于装置、硬件和/或元件的潜在状态,其中在潜在状态下,装置、硬件和/或元件被设计成当装置、硬件和/或元件正在操作时执行特定的任务。
此外,在一个实施例中,使用短语“至”、“能够”和/或“可操作”是指以这样的方式设计的某些装置、逻辑、硬件和/或元件,使得能够以指定方式使用装置、逻辑、硬件和/或元件。注意,如上所述,在一个实施例中,使用、能够或可操作指代装置、逻辑、硬件和/或元件的潜在状态,其中装置、逻辑、硬件和/或元件不操作,而是以这样的方式被设计为能够以指定的方式使用装置。
本文中使用的值包括数字、状态、逻辑状态或二进制逻辑状态的任何已知表示。通常,逻辑电平、逻辑的值或逻辑值的使用也被称为1和0,其仅仅表示二进制逻辑状态。例如,1指代高逻辑电平,而0指代低逻辑电平。在一个实施例中,诸如晶体管或闪存单元之类的存储单元能够保持单个逻辑值或多个逻辑值。但是,已使用计算机系统中的值的其他表示。例如,十进制数字10也可以表示为二进制值1010和十六进制字母A。因此,值包括能够保存在计算机系统中的信息的任何表示。
而且,状态可以由值或值的部分来表示。作为示例,诸如逻辑1之类的第一值可以表示默认或初始状态,而诸如逻辑0之类的第二值可以表示非默认状态。另外,在一个实施例中,术语重置和设置分别指默认值或状态和更新值或状态。例如,默认值可能包括高逻辑值,即重置,而更新值可能包括低逻辑值,即设置。请注意,可以使用值的任何组合来表示任何数量的状态。
以上阐述的方法、硬件、软件、固件或代码的实施例可以经由存储在可由处理元件执行的机器可访问、机器可读、计算机可访问或计算机可读介质上的指令或代码来实现。非暂时机器可访问/可读介质包括提供(即,存储和/或发送)以诸如计算机或电子系统之类的机器可读形式的信息的任何机构。例如,非暂时性机器可访问介质包括诸如静态RAM(SRAM)或动态RAM(DRAM)之类的随机存取存储器(RAM);ROM;磁或光存储介质;闪存设备;电存储设备;光存储设备;声学存储设备;用于保持从暂时(传播)信号(例如,载波、红外信号、数字信号)接收的信息的其它形式的存储设备;上述内容与可以从中接收信息的非暂时性介质区分开来。
可以将用于对逻辑进行编程以执行本发明的实施例的指令存储在系统中的存储器(诸如DRAM、高速缓存、闪存或其他存储装置)内。此外,指令可以经由网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或发送信息的任何机制,但不限于,软盘、光盘、压缩盘、只读存储器(CD-ROM),以及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存或者经由电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)通过互联网传输信息时使用的有形、机器可读存储装置。相应地,计算机可读介质包括任何类型的有形机器可读介质,其适合于以机器(例如,计算机)可读的形式存储或发送电子指令或信息。
虽然已经关于有限数量的实施例描述了本发明,但是本领域技术人员将从中意识到许多修改和变化。所附权利要求旨在覆盖落入本发明的真实精神和范围内的所有这些修改和变化。
以下示例涉及根据本说明书的实施例。
示例1是一种包括物理层接口的装置(PHY),PHY包括第一多路复用器,第一多路复用器。第一多路复用器包括第一时钟输入和第二时钟输入;时钟输出;以及第一选择输入,第一多路复用器被配置为基于选择输入的值将第一时钟输入或第二时钟输入中的一个逻辑地耦合到时钟输出。PHY还包括第二多路复用器,其包括第一数据输入和第二数据输入;数据输出;以及耦合到第一选择输入的第二选择输入,第二多路复用器被配置为基于第一选择输入的值将第一数据输入或第二数据输入中的一个逻辑地耦合到数据输出。PHY还包括用于接收数据的接收器电路;漂移缓冲器,其耦合到接收器的输出并且逻辑地耦合到第二多路复用器的第一数据输入;以及电路旁路分支,其耦合到接收器的输出,并逻辑地耦合到第二多路复用器的第二数据输入。
示例2可以包括示例1的主题,并且还可以包括逻辑地耦合到第一时钟输入的接口,该接口符合MAC p时钟信号输入。
示例3可以包括示例1-2中任一个的主题,并且还可以包括逻辑地耦合到第二时钟输入的恢复的时钟。
示例4可以包括示例3的主题,其中恢复的时钟逻辑地耦合到用于漂移缓冲器的写指针。
示例5可以包括示例1-4中任一个的主题,其中第一多路复用器的时钟输出逻辑地耦合到用于漂移缓冲器的读指针。
示例6可以包括示例5的主题,并且还可以包括输出分级电路元件,其中时钟输出逻辑地耦合到输出分级电路元件。
示例7可以包括示例6的主题,其中输出分级电路元件包括逻辑地耦合到第二多路复用器输出的输入,并且包括逻辑地耦合到MAC电路元件的接口的输出。
示例8是一种装置,其包括耦合到介质访问控制接口(MAC)的物理层接口(PHY)。PHY可以包括耦合到数据接收器的输出的漂移缓冲器和耦合到数据接收器的输出的旁路分支。PHY还可以包括时钟多路复用器,其包括耦合到PHY的恢复的时钟的第一时钟输入和耦合到MAC的p时钟的第二时钟输入;时钟输出,被配置为基于选择输入值来输出恢复的时钟或p时钟中的一个。PHY还可以包括旁路多路复用器,其包括耦合到漂移缓冲器的输出的第一数据输入和耦合到旁路分支的第二数据输入;以及数据输出,被配置为基于时钟多路复用器的分区输入值来输出漂移缓冲器的输出或来自旁路分支的数据中的一个。
示例9可以包括示例8的主题,其中恢复的时钟逻辑地耦合到用于漂移缓冲器的写指针。
示例10可包括示例8-9中任一示例的主题,其中时钟多路复用器的时钟输出逻辑地耦合到用于漂移缓冲器的读指针。
示例11可以包括示例8-10中任一个的主题,其中时钟多路复用器的时钟输出逻辑地耦合到MAC的电路元件。
示例12可以包括示例8-11中任一个的主题,其中MAC包括漂移缓冲器,并且PHY包括逻辑地耦合到旁路MUX的PHY输出,PHY输出逻辑地耦合到MAC漂移缓冲器。
示例13可以包括示例12的主题,其中时钟多路复用器逻辑地耦合到MAC漂移缓冲器的写指针。
示例14可以包括示例8-13中任一示例的主题,并且还可以包括逻辑地耦合到漂移缓冲器的输出的漂移缓冲器读多路复用器;并且其中时钟输出耦合到用于漂移缓冲器读多路复用器的读指针。
示例15可以包括示例8-14中任一示例的主题,其中MAC包括用于符合快速外围组件互连(PIPE)MAC或符合序列化和反序列化(SERDES)的MAC的物理接口中的一个。
示例16是一种方法,包括将恢复的时钟信号提供给第一多路复用器的第一输入;将p时钟信号提供给第一多路复用器的第二输入;基于选择输入值输出恢复的时钟信号或p时钟信号中的一个;将数据从数据接收器提供给旁路多路复用器的第一数据输入;将数据从漂移缓冲器提供给旁路多路复用器的第二数据输入;并基于第一多路复用器的选择输入值来输出数据。
示例17可以包括示例16的主题,并且还可以包括基于与操作的串行化和解串行化(SERDES)模式相对应的选择输入值从第一多路复用器输出恢复的时钟信号。
示例18可以包括示例17的主题,并且还可以包括从旁路多路复用器的第一数据输入输出数据。
示例19可以包括示例16的主题,并且还可以包括基于与用于操作的快速外围组件互连(PIPE)模式的物理接口相对应的选择输入值来从第一多路复用器输出p时钟信号。
示例20可以包括示例19的主题,并且还可以包括从旁路多路复用器的第二数据输入输出数据。
本说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,贯穿本说明书在各个地方出现的短语“在一个实施例中”或“在实施例中”不一定都指的是同一实施例。此外,特定特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。
在前述说明书中,已经参考特定示例性实施例给出了详细描述。然而,显而易见的是,在不脱离所附权利要求中阐述的本发明的更广泛的精神和范围的情况下,可以对其进行各种修改和改变。因此,说明书和附图应被视为说明性意义而非限制性意义。此外,实施例的前述使用和其他示例性语言不一定指代相同的实施例或相同的示例,而是可以指代不同且独特的实施例,以及可能相同的实施例。
Claims (21)
1.一种装置,包括:
物理层(PHY)块,其包括多个PHY用于快速PCI的物理接口(PIPE)寄存器;
介质访问控制层(MAC)块,其包括多个MAC PIPE寄存器;以及
PHY/MAC接口,其用于将所述PHY块和所述MAC块接合,所述PHY/MAC接口包括:
第一组线,其用于在所述PHY块和所述MAC块之间传输多个寄存器命令,所述多个寄存器命令中的至少一些包括要经由所述第一组线在多个时钟周期上传输的命令、地址和数据;以及
第二组线,其专用于在所述PHY块和所述MAC块之间传输数据路径信号,其中:
在第一模式中,所述PHY块用于向所述MAC块发送数据和PCLK;以及
在第二模式中,所述PHY块用于向所述MAC块发送数据和恢复的时钟。
2.根据权利要求1所述的装置,其中,所述PHY块包括弹性缓冲器,所述弹性缓冲器用于在PIPE模式中使用。
3.根据权利要求1所述的装置,其中,所述第一模式包括PIPE模式。
4.根据权利要求1所述的装置,其中,所述第二模式包括串行化和解串行化(SERDES)模式。
5.根据权利要求1所述的装置,其中,所述多个PHY PIPE寄存器包括8位寄存器。
6.根据权利要求1所述的装置,进一步包括地址空间,其中,所述多个PHY PIPE寄存器和所述多个MAC PIPE寄存器被映射到所述地址空间中。
7.根据权利要求1所述的装置,其中,所述多个寄存器命令包括写命令、读命令和完成。
8.根据权利要求1所述的装置,其中,所述PHY块用于支持Rx/Tx可配置对。
9.根据权利要求8所述的装置,其中,所述Rx/Tx可配置对被配置为{Rx,Tx}、{Rx,Rx}、{Tx,Tx}或{Tx,Rx}。
10.根据权利要求1所述的装置,其中,所述PHY/MAC接口用于支持显示端口。
11.根据权利要求1所述的装置,其中,所述PHY块选择性地可配置为当以PIPE模式操作时实现PIPE架构,以及当以SERDES模式操作时实现串行化和解串行化(SERDES)架构。
12.一种装置,包括:
介质访问控制层(MAC)块,其包括多个MAC用于快速PCI的物理接口(PIPE)寄存器;以及
PHY/MAC接口,其用于将物理层(PHY)块和所述MAC块接合,所述PHY/MAC接口包括:
低引脚数PIPE接口,其包括耦合在所述PHY块和所述MAC块之间的一小组线;
其中:
所述低引脚数PIPE接口被配置为以时分复用的方式通过所述一小组线在所述PHY和所述MAC块之间传输寄存器命令;以及
在第一模式中,所述MAC块用于从所述PHY块接收数据和PCLK;以及
在第二模式中,所述MAC块用于从所述PHY块接收数据和恢复的时钟。
13.根据权利要求12所述的装置,其中,所述第一模式包括PIPE模式。
14.根据权利要求12所述的装置,其中,所述第二模式包括串行化和解串行化(SERDES)模式。
15.根据权利要求12所述的装置,其中,所述多个MAC PIPE寄存器包括8位寄存器。
16.根据权利要求12所述的装置,进一步包括地址空间,其中,所述多个MAC PIPE寄存器被映射到所述地址空间中。
17.一种装置,包括:
物理层(PHY)块,其包括多个PHY用于快速PCI的物理接口(PIPE)寄存器,以与包括多个MAC PIPE寄存器的介质访问控制层(MAC)块接合;以及
PHY/MAC接口,其用于将所述PHY块和所述MAC块接合,所述PHY/MAC接口包括:
低引脚数PIPE接口,其包括耦合在所述PHY块和所述MAC块之间的一小组线,以在所述PHY块和所述MAC块之间传输多个寄存器命令,所述多个寄存器命令中的至少一些包括要在多个时钟周期上传输的命令、地址和数据;
其中,所述PHY块选择性地可配置为实现以PIPE模式操作的PIPE架构和以SERDES模式操作的串行化和解串行化(SERDES)架构。
18.根据权利要求17所述的装置,其中,在所述PIPE模式中,所述PHY块用于向所述MAC块发送数据和PCLK。
19.根据权利要求17所述的装置,其中,在所述SERDES模式中,所述PHY块用于向所述MAC块发送数据和恢复的时钟。
20.一种装置,包括:
物理层(PHY)块,其包括多个PHY寄存器;
介质访问控制层(MAC)块,其包括多个MAC寄存器;以及
PHY/MAC接口,其用于将所述PHY块和所述MAC块接合,所述PHY/MAC接口包括:
第一组线,其用于在所述PHY块和所述MAC块之间传输多个寄存器命令,所述多个寄存器命令中的至少一些包括要经由所述第一组线在多个时钟周期上传输的命令、地址和数据;
第二组线,其专用于在所述PHY块和所述MAC块之间传输数据路径信号,其中:
在第一模式中,所述PHY块用于向所述MAC块发送数据和PCLK;以及
在第二模式中,所述PHY块用于向所述MAC块发送数据和恢复的时钟。
21.根据权利要求20所述的装置,其中,所述PHY块选择性地可配置为当以所述第一模式操作时实现第一架构,以及当以所述第二模式操作时实现串行化和解串行化(SERDES)架构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010693662.7A CN111831594B (zh) | 2016-12-26 | 2017-11-15 | 用于高速互连中低延迟的双模phy |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/390,648 US10372657B2 (en) | 2016-12-26 | 2016-12-26 | Bimodal PHY for low latency in high speed interconnects |
US15/390,648 | 2016-12-26 | ||
CN201780072843.4A CN110036380B (zh) | 2016-12-26 | 2017-11-15 | 用于高速互连中低延迟的双模phy |
CN202010693662.7A CN111831594B (zh) | 2016-12-26 | 2017-11-15 | 用于高速互连中低延迟的双模phy |
PCT/US2017/061658 WO2018125406A1 (en) | 2016-12-26 | 2017-11-15 | Bimodal phy for low latency in high speed interconnects |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780072843.4A Division CN110036380B (zh) | 2016-12-26 | 2017-11-15 | 用于高速互连中低延迟的双模phy |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111831594A true CN111831594A (zh) | 2020-10-27 |
CN111831594B CN111831594B (zh) | 2024-07-26 |
Family
ID=62629749
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780072843.4A Active CN110036380B (zh) | 2016-12-26 | 2017-11-15 | 用于高速互连中低延迟的双模phy |
CN202010693662.7A Active CN111831594B (zh) | 2016-12-26 | 2017-11-15 | 用于高速互连中低延迟的双模phy |
CN202410225678.3A Pending CN118051460A (zh) | 2016-12-26 | 2017-11-15 | 用于高速互连中低延迟的双模phy |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780072843.4A Active CN110036380B (zh) | 2016-12-26 | 2017-11-15 | 用于高速互连中低延迟的双模phy |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410225678.3A Pending CN118051460A (zh) | 2016-12-26 | 2017-11-15 | 用于高速互连中低延迟的双模phy |
Country Status (5)
Country | Link |
---|---|
US (4) | US10372657B2 (zh) |
EP (2) | EP3739462B1 (zh) |
CN (3) | CN110036380B (zh) |
DE (1) | DE112017006557T5 (zh) |
WO (1) | WO2018125406A1 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016206012A1 (en) * | 2015-06-24 | 2016-12-29 | Intel Corporation | Systems and methods for isolating input/output computing resources |
FR3055063B1 (fr) | 2016-08-11 | 2018-08-31 | Soitec | Procede de transfert d'une couche utile |
US10372657B2 (en) | 2016-12-26 | 2019-08-06 | Intel Corporation | Bimodal PHY for low latency in high speed interconnects |
CN109684246A (zh) * | 2018-12-19 | 2019-04-26 | 东莞博力威电池有限公司 | 不同接口协议的设备之间进行数据传输的方法及系统 |
US10713209B2 (en) * | 2019-02-08 | 2020-07-14 | Intel Corporation | Recalibration of PHY circuitry for the PCI Express (PIPE) interface based on using a message bus interface |
JP2022530680A (ja) | 2019-05-03 | 2022-06-30 | マイクロチップ テクノロジー インコーポレイテッド | 有線ローカルエリアネットワークにおけるコリジョンのエミュレート、並びに関連するシステム、方法、及びデバイス |
CN112422295B (zh) | 2019-08-23 | 2023-06-13 | 微芯片技术股份有限公司 | 以太网接口及相关系统、方法和设备 |
CN112422385B (zh) | 2019-08-23 | 2022-11-29 | 微芯片技术股份有限公司 | 用于改进的媒体访问的接口以及相关的系统、方法和设备 |
CN112422153B (zh) | 2019-08-23 | 2023-04-07 | 微芯片技术股份有限公司 | 检测到共享传输介质处冲突后处理数据接收的方法和系统 |
CN112415323B (zh) | 2019-08-23 | 2024-07-09 | 微芯片技术股份有限公司 | 诊断网络内的电缆故障 |
CN112491435B (zh) | 2019-08-23 | 2022-11-18 | 微芯片技术股份有限公司 | 包括收发器和驱动器架构的物理层的电路 |
CN112423403A (zh) | 2019-08-23 | 2021-02-26 | 微芯片技术股份有限公司 | 检测网络上的冲突 |
CN112422219B (zh) * | 2019-08-23 | 2024-05-24 | 微芯片技术股份有限公司 | 以太网接口和相关系统、方法和设备 |
CN110647485B (zh) * | 2019-09-23 | 2021-04-06 | 大唐半导体科技有限公司 | 一种芯片及其管脚复用的实现方法 |
US20210232520A1 (en) * | 2021-01-13 | 2021-07-29 | Swadesh Choudhary | Logical physical layer interface specification support for pcie 6.0, cxl 3.0, and upi 3.0 protocols |
TWI756596B (zh) * | 2019-12-09 | 2022-03-01 | 瑞昱半導體股份有限公司 | 通訊系統、通訊方法以及媒體存取控制電路 |
US10990537B1 (en) | 2020-01-07 | 2021-04-27 | International Business Machines Corporation | Logical to virtual and virtual to physical translation in storage class memory |
CN113360191B (zh) * | 2020-03-03 | 2022-05-27 | 杭州海康威视数字技术股份有限公司 | 网络交换芯片的驱动装置 |
US11513577B2 (en) | 2020-03-24 | 2022-11-29 | Microchip Technology Incorporated | Low connection count interface wake source communication according to 10SPE local and remote wake and related systems, methods, and devices |
US11755525B2 (en) * | 2021-04-14 | 2023-09-12 | SK Hynix Inc. | System including PIPE5 to PIPE4 converter and method thereof |
US11615024B2 (en) | 2021-08-04 | 2023-03-28 | International Business Machines Corporation | Speculative delivery of data from a lower level of a memory hierarchy in a data processing system |
CN113791993A (zh) * | 2021-08-06 | 2021-12-14 | 锐捷网络股份有限公司 | 寄存器的访问方法及装置 |
US20230186142A1 (en) * | 2021-12-13 | 2023-06-15 | Intel Corporation | Technologies for high-speed interfaces for cryogenic quantum control |
US12001372B2 (en) * | 2022-03-14 | 2024-06-04 | Avago Technologies International Sales Pte. Limited | Autonomous entry and exit of low latency datapath in PCIe applications |
CN115065436B (zh) * | 2022-08-16 | 2022-11-25 | 南方电网数字电网研究院有限公司 | 电力专用时钟分路复用电路 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6694394B1 (en) * | 1999-12-23 | 2004-02-17 | Yuval Bachrach | Physical layer and data link interface with PHY detection |
US20060093147A1 (en) * | 2004-11-03 | 2006-05-04 | Kwon Won O | Apparatus and method for scaramling/de-scrambling 16-bit data at PCT express protocol |
CN201898588U (zh) * | 2010-02-02 | 2011-07-13 | 深圳市讯达康通讯设备有限公司 | 网络8u机架olt局端设备 |
US20120216080A1 (en) * | 2011-02-21 | 2012-08-23 | Texas Instruments Incorporated | Embedding stall and event trace profiling data in the timing stream - extended timing trace circuits, processes, and systems |
US20130101058A1 (en) * | 2011-10-25 | 2013-04-25 | Cavium, Inc. | Multi-protocol serdes phy apparatus |
US20150117504A1 (en) * | 2013-10-30 | 2015-04-30 | David J. Harriman | Method, apparatus and system for measuring latency in a physical unit of a circuit |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5896384A (en) * | 1997-02-28 | 1999-04-20 | Intel Corporation | Method and apparatus for transferring deterministic latency packets in a ringlet |
US7031333B1 (en) * | 1998-06-02 | 2006-04-18 | Cisco Technology, Inc. | Reduced pin count media independent interface |
US20050030898A1 (en) * | 2000-05-08 | 2005-02-10 | Metrobility Optical Systems Inc. | Using inter-packet gap as management channel |
US6747997B1 (en) * | 2000-06-13 | 2004-06-08 | Intel Corporation | Network channel receiver architecture |
US6870811B2 (en) * | 2001-01-18 | 2005-03-22 | International Business Machines Corporation | Quality of service functions implemented in input interface circuit interface devices in computer network hardware |
US7272114B1 (en) * | 2001-10-24 | 2007-09-18 | Marvell International Ltd. | Physical layer and physical layer diagnostic system with reversed loopback test |
KR100599537B1 (ko) * | 2004-12-14 | 2006-07-13 | 전자부품연구원 | 개인 무선 네트워크에서 소비 전력을 저감하기 위한매체접속제어 및 물리계층 장치 |
US7904623B2 (en) * | 2007-11-21 | 2011-03-08 | Microchip Technology Incorporated | Ethernet controller |
MY169964A (en) * | 2012-06-29 | 2019-06-19 | Intel Corp | An architected protocol for changing link operating mode |
WO2015142336A1 (en) * | 2014-03-20 | 2015-09-24 | Intel Corporation | A method, apparatus, and system for controlling power consumption of unused hardware of a link interface |
US9971730B2 (en) * | 2014-06-16 | 2018-05-15 | Qualcomm Incorporated | Link layer to physical layer (PHY) serial interface |
US9465405B1 (en) * | 2015-06-30 | 2016-10-11 | Freescale Semiconductor, Inc. | Synchronous communication between system in package (SiP) devices |
US10372657B2 (en) * | 2016-12-26 | 2019-08-06 | Intel Corporation | Bimodal PHY for low latency in high speed interconnects |
-
2016
- 2016-12-26 US US15/390,648 patent/US10372657B2/en active Active
-
2017
- 2017-11-15 CN CN201780072843.4A patent/CN110036380B/zh active Active
- 2017-11-15 EP EP20184846.2A patent/EP3739462B1/en active Active
- 2017-11-15 CN CN202010693662.7A patent/CN111831594B/zh active Active
- 2017-11-15 DE DE112017006557.7T patent/DE112017006557T5/de active Pending
- 2017-11-15 EP EP17887533.2A patent/EP3559816B1/en active Active
- 2017-11-15 WO PCT/US2017/061658 patent/WO2018125406A1/en active Application Filing
- 2017-11-15 CN CN202410225678.3A patent/CN118051460A/zh active Pending
-
2019
- 2019-06-20 US US16/446,996 patent/US10599602B2/en active Active
-
2020
- 2020-02-26 US US16/802,209 patent/US10963415B2/en active Active
-
2021
- 2021-02-25 US US17/184,737 patent/US11354264B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6694394B1 (en) * | 1999-12-23 | 2004-02-17 | Yuval Bachrach | Physical layer and data link interface with PHY detection |
US20060093147A1 (en) * | 2004-11-03 | 2006-05-04 | Kwon Won O | Apparatus and method for scaramling/de-scrambling 16-bit data at PCT express protocol |
CN201898588U (zh) * | 2010-02-02 | 2011-07-13 | 深圳市讯达康通讯设备有限公司 | 网络8u机架olt局端设备 |
US20120216080A1 (en) * | 2011-02-21 | 2012-08-23 | Texas Instruments Incorporated | Embedding stall and event trace profiling data in the timing stream - extended timing trace circuits, processes, and systems |
US20130101058A1 (en) * | 2011-10-25 | 2013-04-25 | Cavium, Inc. | Multi-protocol serdes phy apparatus |
CN103907297A (zh) * | 2011-10-25 | 2014-07-02 | 凯为公司 | 多协议串并转换物理层单元装置 |
US20150117504A1 (en) * | 2013-10-30 | 2015-04-30 | David J. Harriman | Method, apparatus and system for measuring latency in a physical unit of a circuit |
CN105593830A (zh) * | 2013-10-30 | 2016-05-18 | 英特尔公司 | 用于测量电路的物理单元中的等待时间的方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
EP3559816A1 (en) | 2019-10-30 |
US20200293480A1 (en) | 2020-09-17 |
DE112017006557T5 (de) | 2019-09-26 |
CN110036380B (zh) | 2024-03-22 |
EP3739462B1 (en) | 2021-12-01 |
EP3559816B1 (en) | 2021-08-11 |
EP3559816A4 (en) | 2020-06-17 |
CN110036380A (zh) | 2019-07-19 |
EP3739462A1 (en) | 2020-11-18 |
US10599602B2 (en) | 2020-03-24 |
CN118051460A (zh) | 2024-05-17 |
WO2018125406A1 (en) | 2018-07-05 |
US20180181525A1 (en) | 2018-06-28 |
US10372657B2 (en) | 2019-08-06 |
US10963415B2 (en) | 2021-03-30 |
US20210182231A1 (en) | 2021-06-17 |
CN111831594B (zh) | 2024-07-26 |
US11354264B2 (en) | 2022-06-07 |
US20190310959A1 (en) | 2019-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110036380B (zh) | 用于高速互连中低延迟的双模phy | |
US11657015B2 (en) | Multiple uplink port devices | |
CN109661658B (zh) | 链路物理层接口适配器 | |
US11663154B2 (en) | Virtualized link states of multiple protocol layer package interconnects | |
CN112671676A (zh) | 可调节的重定时器缓冲器 | |
CN109844725B (zh) | 点对点互连中的非对称通道 | |
US20220414046A1 (en) | Systems, methods, and devices for dynamic high speed lane direction switching for asymmetrical interfaces | |
CN108292267B (zh) | 用于配置装置的方法、系统和设备 | |
CN110659239A (zh) | 在多通路链路中动态地协商不对称链路宽度 | |
US12117960B2 (en) | Approximate data bus inversion technique for latency sensitive applications | |
JP2024526012A (ja) | 部分幅リンク状態におけるレイテンシ最適化 |
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 | ||
TG01 | Patent term adjustment |