CN112583540A - 在通道测试期间在多通道链路中的串扰生成 - Google Patents
在通道测试期间在多通道链路中的串扰生成 Download PDFInfo
- Publication number
- CN112583540A CN112583540A CN202011581811.7A CN202011581811A CN112583540A CN 112583540 A CN112583540 A CN 112583540A CN 202011581811 A CN202011581811 A CN 202011581811A CN 112583540 A CN112583540 A CN 112583540A
- Authority
- CN
- China
- Prior art keywords
- receiver
- link
- state
- channel
- test
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 363
- 238000012549 training Methods 0.000 claims abstract description 107
- 238000000034 method Methods 0.000 claims description 52
- 238000004891 communication Methods 0.000 claims description 21
- 238000003860 storage Methods 0.000 claims description 14
- 230000002093 peripheral effect Effects 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 6
- 108091006146 Channels Proteins 0.000 description 234
- 230000015654 memory Effects 0.000 description 49
- 230000007704 transition Effects 0.000 description 39
- 238000012545 processing Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 14
- 239000000872 buffer Substances 0.000 description 10
- 238000013461 design Methods 0.000 description 9
- 238000011084 recovery Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 230000002457 bidirectional effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 230000009466 transformation Effects 0.000 description 6
- 238000013519 translation Methods 0.000 description 6
- 230000014616 translation Effects 0.000 description 6
- 230000003190 augmentative effect Effects 0.000 description 5
- 239000004744 fabric Substances 0.000 description 5
- 230000001965 increasing effect Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 4
- 230000001427 coherent effect Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000011664 signaling Effects 0.000 description 4
- 230000000153 supplemental effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000004134 energy conservation Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013459 approach Methods 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
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000003278 mimic effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 238000011144 upstream manufacturing 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
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000006880 cross-coupling reaction Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000006872 improvement 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
- 238000002955 isolation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/20—Arrangements for detecting or preventing errors in the information received using signal quality detector
- H04L1/203—Details of error rate determination, e.g. BER, FER or WER
-
- 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
- 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
- G06F13/4295—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40091—Bus bridging
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40123—Interconnection of computers and peripherals
-
- 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)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
计算设备的端口包括多个接收器‑发送器对,并且接收器‑发送器对中的每个接收器‑发送器对包括相应的接收器和相应的发送器。设备还包括状态机逻辑,其检测由接收器‑发送器对中的特定接收器‑发送器对在特定通道上从测试器设备接收到的训练序列。训练序列包括用于指示测试器设备对特定接收器‑发送器对进行的测试的值。特定接收器‑发送器对与测试相关联地进入第一链路状态;并且端口的一个或多个其他接收器‑发送器对与测试相关联地进入不同于第一链路状态的第二链路状态以使在测试期间在特定通道上生成串扰。
Description
本申请是2018年12月7日提交的申请号为201811492775.X的同名专利申请的分案申请。
相关申请
本申请要求于2018年1月8日提交的美国临时专利申请第62/614,874号的优先权的权益,其公开内容通过引用整体并入本文。
技术领域
本公开涉及计算系统,并且特别地(但非排他性地)涉及用于点对点互连的测试系统。
背景技术
半导体处理和逻辑设计方面的进步已经允许增加可能存在于集成电路设备上的逻辑的量。作为必然结果,计算机系统配置已经从系统中的单个或多个集成电路演进到在个体集成电路上存在多个核心、多个硬件线程和多个逻辑处理器,以及集成在这种处理器内的其他接口。处理器或集成电路典型地包括单个物理处理器管芯,其中处理器管芯可以包括任何数量的核心、硬件线程、逻辑处理器、接口、存储器、控制器中心等。
由于在更小封装中装入更多处理能力的更大的能力,更小的计算设备越来越普及。智能电话、平板计算机、超薄笔记本和其他用户设备呈指数级增长。然而,这些较小的设备依赖于服务器进行数据存储和超出形状因子的复杂处理。因此,高性能计算市场(即,服务器空间)中的需求也增加。例如,在现代服务器中,典型地不仅存在具有多个核心的单个处理器,而且还存在多个物理处理器(也称为多个插座)以增加计算能力。服务器还可以使用分布式计算在机架规模架构中实现,以及其他替代实现方式。当处理能力随着计算系统中的设备的数量增长时,插座与其他设备之间的通信变得更加关键。
实际上,互连已经从主要处理电通信的更传统的多点总线发展到促进快速通信的完全互连架构。不幸的是,由于对未来处理器以甚至更高的速率来消耗的需求,对应的需求被放置在现有互连架构的能力上。
附图说明
图1示出了包括互连架构的计算系统的实施例。
图2示出了包括分层栈的互连架构的实施例。
图3示出了要在互连架构内生成或接收的请求或分组的实施例。
图4示出了用于互连架构的发送器和接收器对的实施例。
图5是示出示例链路训练状态机的图。
图6A-6B是示出连接到测试器设备以进行对链路的特定通道的测试的示例设备的图。
图7是示出包括专用测试链路状态的示例链路训练状态机的一部分的图。
图8是示出使用示例符合性固定设备连接到测试器设备的示例设备的框图。
图9A-9E是示出示例测试链路状态内的信令的框图。
图10示出了包括多核心处理器的计算系统的框图的实施例。
图11示出了包括多个处理器的计算系统的框的实施例。
具体实施方式
在以下描述中阐述了许多具体细节,例如,特定类型的处理器和系统配置、特定硬件结构、特定架构和微架构细节、特定寄存器配置、特定指令类型、特定系统组件、特定测量/高度、特定处理器管线阶段和操作等的示例,以便提供对本发明的透彻理解。然而,对于本领域技术人员显而易见的是,不一定需要采用这些具体细节来实践本发明。在其他实例中,没有详细描述以下公知的组件或方法以免不必要地模糊本发明:例如,特定和替代的处理器架构、用于所描述的算法的特定逻辑电路/代码、特定固件代码、特定互连操作、特定逻辑配置、特定制造技术和材料、特定编译器实现方式、代码形式的特定算法表达、特定掉电和门控技术/逻辑以及计算机系统的其他特定操作细节。
虽然可以参考特定集成电路中的能量节约和能量效率来描述以下实施例(例如,在计算平台或微处理器中),但是其他实施例也适用于其他类型的集成电路和逻辑器件。本文描述的实施例的类似技术和教导可以适用于可以同样受益于更好的能量效率和能量节约的其他类型的电路或半导体器件。例如,所公开的实施例不限于台式计算机系统或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中。此外,系统的一个或多个链路(例如,123)可以包括一个或多个扩展设备(例如,150),例如,重定时器、中继器等。
转到图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负责物理层220的“数字”功能。在这方面,逻辑子块包括用于准备传出信息以供由物理子块222进行发送的发送部分,以及用于在将接收到的信息传递到链路层210之前识别并准备接收到的信息的接收器部分。
物理块222包括发送器和接收器。发送器由逻辑子块221提供符号,发送器将符号串行化并发送到外部设备上。向接收器提供来自外部设备的串行化符号,并且接收器将接收到的信号变换为比特流。比特流被解串行化并提供给逻辑子块221。在一个实施例中,采用8b/10b传输码,其中发送/接收十比特符号。这里,特殊符号用于将分组帧化为帧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从高逻辑电平驱动到低逻辑电平(即,下降沿)。差分信号潜在地表现出更好的电特性,例如,更好的信号完整性,即,交叉耦合、电压过冲/下冲、振铃等。这允许更好的定时窗口,其实现更快的传输频率。
在一些实现方式中,可以提供高性能互连和对应的互连协议(例如,基于下一代PCIe的互连),其能够以诸如25GT/s和/或32GT/s的高速度操作。在一个示例中,可以基于针对信道确定的特性(例如,在链路训练期间)针对高性能互连定义两个速度,25GT/s和32GT/s。在一种实现方式中,互连可以向后兼容现有的PCIe代和针对这些代提供的速度(例如,8GT/s、16GT/s等)。
转到图5的图500,示出了示例链路训练状态机,例如,PCIe链路训练和状态状态机(LTSSM)。可以定义各种链路状态之间的转换,包括这样的信令:将发生以通知链路上的另一系统,或完成互连设备之间的握手以请求、协商和/或确认从一个状态到下一状态的转换,以便到达活动的发送链路状态(例如,L0(520))。例如,一些状态转换可以被定义为涉及训练集(TS)有序集(OS)的发送和接收。在利用PCIe作为PHY协议的实现方式中,TS有序集可以包括TS1和TS2有序集,以及其他示例有序集。在链路训练期间发送的有序集和训练序列可以基于特定的链路训练状态,其中利用各种链路训练状态来完成对应的链路训练活动和目标。
在一个示例中,例如,如图5所示,链路训练状态机500可以包括以下状态:例如,重置状态、检测状态505(例如,用于检测远端终端(例如,连接到通道的另一设备))、轮询状态510(例如,用于建立符号锁定和配置通道极性)、配置(或“Config”)状态515(例如,用于将连接的物理通道配置为具有特定通道宽度、通道编号等的链路,执行通道到通道去偏斜以及其他链路配置活动)、环回状态535(例如,用于执行测试、故障隔离、均衡和其他任务)、恢复540状态(例如,用于改变操作的数据速率,重新建立比特锁定、符号锁定或块对齐,执行通道到通道去偏斜等),以及可以用于将链路带到活动链路状态(例如,L0(520))的其他状态(例如,低功率状态L1(525)和L2(530))。在一个示例中,要在链路训练状态中的特定的一个(或多个)链路训练状态中发送的训练序列(例如,在图5的示例中示出)可以定义为适应对特定设备的支持协议中的特定的一个支持协议的协商。例如,特定训练状态可以是进入活动链路状态(例如,520)之前的训练状态,或者是其中可以使数据速率升高(例如,超过支持协议中的至少一个支持协议所支持的数据速率)的训练状态,例如,PCIe状态,其中数据速率从Gen1速度转换到Gen3和更高速度,以及其他示例。
在一些实现方式中,可以定义附加链路状态(以及在与互连协议兼容的设备上实现的对应硬件电路和其他逻辑)以支持对设备上的端口的测试。例如,可以定义附加状态,其可以被输入以支持对个体通道(即,设备通过其在给定双向通道上发送和接收数据的硬件和逻辑)的测试。在这种实例中,可以扩充链路状态机(例如,图5中引入的示例链路状态机)以允许状态转换在训练链路到默认或标准的操作状态时偏离预期的情况,以允许待测试的通道转换到第一状态,而多通道链路的其他通道将转换到不同状态以支持对被测试通道的测试。
在一些实例中,传统的测试器设备(例如,传统的BERT)可能仅测试单个通道,并且设备可能被编程或设计(出于各种原因)为限制可以测试的通道。例如,传统的PCIe BERT可能仅能够测试PCIe设备的通道0(例如,由于其他竞争发送器均衡考虑),并且可能被进一步限制为仅能够使用现有的PCIe LTSSM转换。例如,传统的BERT可以将DUT训练到L0(例如,导致通道0相关性),执行通过恢复的均衡,从恢复转换到环回(以BERT作为主端),然后继续对接收器的测试。
另外,在一些传统实现方式中,测试器可能不使用或导致从其他通道(未被测试)生成真实(近端或远端)串扰,但使用BERT中的近似来在测试期间人为地将额外噪声注入到在被测试通道上发送的信号中可能导致模型假设(并且在许多情况下,最坏情况下的)串扰(例如,组合的近端和远端串扰)。然而,在互连被设计为处理增加的数据速率(例如,32.0GT/s(例如,PCIe Gen4))的情况下,通过准确捕获由分组的实际设计导致而不是依赖于近似的实际串扰,测试精确的封装和信道引入的串扰可能更为关键,因为更高的数据速率允许误差的边限越来越小。在一些情况下,可以提供多通道BERT,其可以简化一次涉及多于一个通道的测试实现,但是在一些应用中这样的系统可能过于昂贵。可以替代地扩充链路训练状态机(例如,图5的示例中所示的),并且在符合性设备中提供对应的逻辑,以允许使用传统的单通道BERT设计的更具成本效益且精确的方法。实际上,在一些实现方式中,不仅可以捕获远端串扰(FEXT)(例如,由远程设备到被测试设备的传输产生的串扰),而且可以捕获近端串扰(NEXT)(例如,由被测试设备上的受害者通道(例如,被测试通道)以外的通道的传输产生的串扰)。例如,这些新的测试使能的链路状态可以允许从DUT上的其他发送器捕获NEXT和/或允许通过允许信号被发送到其他测试的设备上的其他通道上的接收器来捕获FEXT,同时被测试通道在由BERT进行测试期间保持处于环回和其他状态,以及其他示例优点和实现方式。
在一些实现方式中,可以扩充链路状态逻辑,以不仅支持默认或标准链路状态机以及在标准链路状态机中定义的状态之间的转换,而且还可以支持专用测试状态,这可以允许使用测试设备(例如,管芯上边限测试器、独立比特错误率测试器(BERT)设备等)测试多通道链路的个体通道,而链路的其他通道生成远端串扰和/或近端串扰。使用这些专用状态和状态机转换,可以在未被测试通道上生成远端串扰(或FEXT)和近端串扰(或NEXT),以适应对被测试通道的精确测试(或者在多通道测试器的情况下,对多条被测试通道的精确测试)。虽然传统的通道测试涉及在被测试的通道的数据上注入人工或模拟噪声,但这种模拟噪声典型地被强制转化以建模最坏情况的场景,这可能会忽略被测试的端口的实际特征(例如,其可以配备有电路和组件,以帮助最小化设备上的串扰(使用模拟的最坏情况串扰进行测试过度悲观且不切实际))。因此,在一些情况下,专用测试链路状态可以以更高的数据速率(例如,32.0GT/s的PCIe Gen 5)实现更真实的边限信息,这与依赖于模拟串扰的传统方法相反。
在一些实现方式中,可以将针对互连定义的标准或默认链路训练状态机扩充为支持专用测试链路状态,这可以使得端口能够训练链路,从而链路的不同通道进入不同状态,以允许测试一些通道(例如,通过默认操作中预期的或针对默认操作定义的链路训练以及链路状态转换运行通道),而其他通道进入潜在的多个不同状态中的一个状态以提供真实(而不是合成)串扰,并且实现多个真实的测试模式。在一个示例中,可以将链路训练算法扩充为识别和选择将由测试设备(例如,BERT)测试的链路的一个或多个特定通道。在测试期间,所选择的通道可以由测试器设备驱动。被测试设备(DUT)的其余通道可以是自训练的,或可以被置于空闲状态或其他安静状态,而BERT结合对通道(或者被测试通道(LUT))的测试驱动在其控制的通道上的链路训练和状态状态机(LTSSM)变化。在一些实现方式中,链路可以被置于环回状态,由测试器设备发起(例如,通过由测试器设备使用链路发送到被测试设备的专用有序集)。在这样的示例中,当链路进入环回时,基于由测试器设备在连接到测试器设备的通道上发送的训练信息,DUT可以在所有其他通道上在Loopback.Entry中驱动(修改后的)符合性模式,或者在所有其他通道(即,未被测试的其他通道)上停留在发送器电空闲。以这种方式,DUT本身可以用于生成完成对DUT的一个或多个通道(例如,对应的接收器-发送器对)的测试所期望的串扰,同时测试器设备管理其想要测试的特定通道。此外,DUT还可以通过与测试器设备的训练而处于这样的状态:其中DUT上的所有其他接收器可以接收业务,而不影响在由测试器设备进行测试的通道上的环回,以及其他示例,例如,下面讨论的。
转到图6A-6B的简化框图600a-b,示例系统示出为包括示例计算设备(例如,605)和示例测试设备(例如,610a、b)。在图6A的示例中,示出了单通道比特错误率测试器(BERT)设备610a,其可以用于连接到被测试设备(例如,605)的单个通道(例如,630b),并且执行对通道的各种边限和其他测试。在该示例中,计算设备605可以包括一个或多个数据处理核心(例如,615)和/或其他数据处理电路,其可以利用分层互连栈620(例如,PCIe、UPI、以太网、OpenCAPI、Gen-Z或其他分层互连栈)通过一个或多个互连链路与其他设备通信。互连栈620可以通过逻辑电路和其他硬件(以及或者可替代地,使用软件实现的逻辑和/或固件实现的逻辑)来实现,以支持和实现互连层中的每一层(例如,物理层、逻辑PHY、数据链路层、事务层、协议层等),包括生成和发送针对互连定义的数据单元(例如,分组、帧、flit、phit等)。互连栈620还可以使得设备的(多个)端口能够进入针对互连定义的各种操作和链路状态和在针对互连定义的各种操作和链路状态之间转换,包括这样的链路训练和测试状态:具有定义的有序集、训练序列、握手和被定义为使得两个互连的设备能够根据对应的互连协议编排对链路上的数据的训练和传输的其他信令。这种逻辑可以包括至少部分地在逻辑电路或计算设备605的其他硬件中实现的状态机逻辑。
继续图6A的示例,互连栈逻辑620可以在一些实现方式中被扩充,以支持附加的测试特定链路状态和链路状态转换,例如,在上面的讨论中介绍的。例如,在设备605上实现的互连栈逻辑620可以包括测试模式支持逻辑625,其至少部分地使用硬件逻辑电路来实现。测试模式逻辑625可以实现附加测试链路状态,并且管控到这些测试状态的转换以及对在测试期间在哪些通道(例如,630a-d)上如何应用测试链路状态的协调。在本公开内,“通道”可以可替代地指代实现连接两个设备的链路的物理通道,或者相应的接收器/发送器对和设备(例如,605)上的将设备耦合到链路的对应物理通道的支持逻辑(例如,630a-d)。
在图6A的示例中,示出了单通道BERT 610a,其可以单独地耦合到多个不同通道中的每一个通道并对其进行测试。测试模式逻辑625可以使得待测试的特定通道(例如,630b)能够被识别,并且结合对通道的测试使该被测试通道(即,连接到将被测试设备605耦合到BERT设备610a的双向通道的、设备605的端口的接收器/发送器对)进入测试链路状态中的一个(例如,环回、活动发送链路状态、链路训练状态等)。在一些情况下,BERT 610a可以在测试期间指引被测试通道进入哪个(哪些)链路状态。在测试期间,测试模式逻辑625可以识别要进入其他测试链路状态的一个或多个其他通道(即,除被测试通道之外的),以支持BERT设备对被测试通道的测试。例如,测试模式逻辑625可以使除被测试通道(例如,630b)之外的一个或多个(或所有)通道(例如,630a、c、d)进入链路状态,以使得这些通道能够在被测试的受害者通道(例如,630b)上产生近端和/或远端串扰。
在一些实现方式中,除被测试通道之外的通道可以保持不连接到实用设备(例如,与BERT分离但是支持BERT),连接到实用设备,或者连接到BERT本身。在一些实现方式中,如图6的示例所示,测试器设备(例如,多通道BERT设备(例如,605b))可以设置有多个通道(例如,接收器/发送器对)以连接到被测试设备的多个通道。多通道测试器(例如,610a-b)可以连接到被测试设备(605)的通道(例如,630a-d)中的每个通道。多通道测试器可以连续测试被测试设备的每个通道,而不需要重新连接通道。另外,多通道测试器可以与被测试设备605上的测试模式逻辑625协同工作,以使用支持测试链路状态来帮助在当前未测试的那些通道上生成FEXT和NEXT,以及其他示例实现方式。
转到图7的图700,示出了简化框图700,其示出了扩充链路状态机的图的一部分,该部分示出了可以被添加到状态机以促进对链路的个体通道的测试的专用测试链路状态(例如,705、710、715、720)。例如,在图7的示例中,扩充的状态机可以是PCIe链路状态机的扩充版本,例如,在图5的图500中介绍的。例如,针对状态机定义的标准链路状态(例如,根据对应的互连协议)可以包括接收器检测状态(例如,505)、轮询状态(例如,510)、配置状态(例如,515)以及可以在转换到活动、发送或操作链路状态(例如,L0状态(未示出))之前进入和使用的潜在地其他链路训练状态,以及其他示例状态。在对链路进行训练期间,可以发送各种有序集(例如,训练序列(例如,PCIe TS1或TS2训练序列)),其可以包括被编码以提供特定于链路训练状态的信息并且定义链路的各个方面(例如,通道编号、去偏斜、同步、比特锁定、配置等)的字段。在一些实现方式中,可以高效地逐个通道地训练链路,其中每个接收器-发送器对发送和接收其自己的训练序列实例,以将每个通道配置和训练到期望的参数,以允许完成并且可靠地训练整个链路。作为示例,符号锁定、比特锁定和块对齐可以在每个通道的基础上完成,其中在每个通道上发送的训练序列适于实现针对该通道的正确配置。在一些情况下,可以在链路中的每个通道上同步地发送相同类型的有序集(但是每个有序集中的值可以根据通道而变化),以及其他示例。
在图7的示例中,可以扩充在链路状态机的标准状态中定义的链路训练状态中的一个或多个链路训练状态期间发送的训练序列的一个或多个字段,以提供参与训练的设备将进入测试模式的指示。例如,可以定义在状态机的特定的、定义的状态或子状态中发送的训练序列的一个或多个符号中的比特,以传送该设备将被测试。此外,可以定义训练序列中的一个或多个比特或字段,以指示测试器设备(例如,BERT)连接到链路的一个或多个通道并且这些通道将被测试。此外,相同的(或不同的或其后续实例)训练序列的一个或多个比特或字段可以编码有信息,以指示未被测试的其他通道应该转换到其他测试链路状态以帮助促进对特定通道的测试。此外,结合对待测试的特定通道的识别,可以将训练序列编码为指示待测试的特定通道将进入另一链路状态,与要执行的测试的类型一致,以及其他示例。
在一个示例实现方式中,测试器设备可以将在轮询状态(例如,510)(或者如在互连协议中定义的另一特定链路训练状态)期间发送的训练序列编码为指示链路的特定通道将被测试,并且链路的其他其余通道将转换到另一测试链路状态以支持对特定通道的测试。因此,不是使所有通道一起从轮询状态510转换到下一标准链路训练状态(例如,配置状态515),而是训练序列的扩充的字段可以使被测试设备将被测试通道转换到特定被测试通道链路状态(例如,705),同时将其余通道转换到支持对被测试通道的测试的另一测试链路状态(例如,710、715、720),并且在一些情况下,在被测试通道上产生真实串扰,以用于由测试器设备(例如,单通道或多通道BERT)进行的对被测试通道(LUT)的各种测试。
在一些实例中,测试链路状态(例如,705、710、715、720)可以基于或包含标准链路状态中的一个或多个标准链路状态(例如,活动链路状态或环回链路状态,以及其他示例)。实际上,在一些情况下,测试器设备可以与特定通道交互以模拟连接到特定通道的接收器/发送器在其在标准链路状态机内在状态间转换时的操作。例如,测试器设备可以在环回状态内充当环回主端,或者可以在测试期间发送信号,如在标准链路训练机中定义的,以使被测试通道在标准链路训练状态之间转换。即使在LUT测试状态(例如,705)可以模仿或包括标准链路状态的情况下,在测试期间到该链路状态或子状态的转换可以与在标准链路训练机中定义的转换不同。例如,因为LUT测试状态705仅涉及单个通道的测试,所以可以跳过在训练所有通道进入状态(在典型的链路训练和状态机转换期间)所涉及的活动。例如,可以跳过诸如通道编号、通道到通道去偏斜以及其他之类的活动,这甚至可以允许跳过整个中间链路训练状态。在其他情况下,除了转换到这些测试链路状态(例如,从轮询状态510)方面的差异之外,LUT测试状态705和针对其余通道(未被测试)的测试链路状态(例如,710、715、720)内的活动和信令可以与标准链路状态机中定义的状态完全不同。例如,LUT测试状态705可以完全由测试器设备(例如,BERT)规定,其中测试器设备可以自由地发送任何种类的信号以模拟各种条件、状态转换、状态等,如结合特定测试期望的,而其他测试链路状态(例如,710、715、720)使链路的其余通道将串扰注入(或不注入)到被测试通道上。
在图7的示例中,一些测试链路状态可以包括诸如示例图700中所示状态之类的状态。例如,一个测试链路状态710可以适于使近端串扰(NEXT)在不同于被测试通道的通道上生成。在另一示例中,测试链路状态(例如,715)可以适于仅生成远端串扰(FEXT)(而未被测试通道的接收器/发送器对的发送器保持安静)。在又一示例中,测试链路状态(例如,720)可以使用未被测试通道生成NEXT和FEXT两者,以及其他示例。例如,NEXT的多个版本(例如,710)、仅FEXT(例如,715)和NEXT/FEXT测试链路状态(例如,720)可以由待测试的设备的内部硬件和/或软件逻辑提供和支持。例如,可以在不同的测试链路状态内发送不同类型的压力信号以生成对应类型的串扰,例如,不同严重性(例如,幅度和频率)的串扰、间歇或连续串扰,以及其他示例。
在一些实例中,为了实现一些测试链路状态,可以结合测试器设备(例如,610)提供附加设备,例如,信号发生器(例如,以生成远端串扰),或者如在图8的示例框图800中示出的符合性固定设备805,以及其他示例。在图8的示例中,提供符合性固定设备805,其可以允许在单通道BERT 610的情况下对未被测试通道(即,对应的接收器/发送器对)的连接。除了单通道BERT 610之外或与单通道BERT 610结合,可以使用示例被动符合性固定设备805,以帮助促进一个或多个测试模式。在一个示例中,符合性固定设备805可以连接到链路的通道中的每个通道(即,包括将由BERT 610测试的通道)并且促进涉及通道集合的测试模式,以及使得测试器设备610能够通过符合性固定设备805中的机构(例如,通过跨接电缆、拨码开关或其他电路)选择性地连接到通道中的任何一个通道。因此,符合性固定设备805可以使得测试器设备610能够连接到任何特定通道(例如,以连续地执行对被测试设备605的通道中的每个通道的单通道测试),同时将DUT 605的其余通道中的每个通道的发送器连接到另一端点(例如,在符合性固定设备805上)。另外,在一些实现方式中,符合性固定设备805可以被配置为针对除被测试通道(例如,810)之外的所有通道以环回模式起作用。以这种方式,符合性固定设备805可以高效地使未被测试通道中的每个通道的发送器连接到相同接收器/发送器对的对应接收器,以将这些其他通道中的任何(或全部)通道置于自环回(例如,图8所示),以及其他示例实现方式。在其他实现方式中,图8中示出的示例符合性固定设备805的功能可以集成在多通道BERT设备或其他测试器设备内,以及其他替代实现方式。
转到图9A-9E的框图900a-e所示的示例,示出了利用补充互连的标准链路状态机的对应测试链路状态的各种测试模式。例如,在图9A的示例中,包括用于实现多通道链路的双向通道的接收器/发送器对(和支持逻辑)(例如,630a-630)的计算设备605可以连接到测试器设备610。测试器设备可以是独立的测试器(例如,在验证测试中使用的BERT),或者在管芯上或以其他方式在与设备605相同的计算系统内实现的测试器设备,以及其他示例。在图9A的示例中,训练序列可以在先前链路状态(例如,轮询链路状态)中发送,以指示设备605连接到测试器设备并将进入特定测试模式。在该示例测试模式中,通道中的一个通道(例如,630c)将由测试器设备610测试并进入其中将结合测试模拟通道630c的正常操作的状态。在该示例中,未被测试通道(例如,630a、b、d、e)将保持安静(例如,以便不生成串扰)。由于被测试通道630c是连接到另一设备(例如,610)并接收训练序列的唯一接收器,因此仅接收器/发送器对630c的接收器接收训练序列。测试模式支持逻辑可以识别请求进入特定测试模式的(多个)训练序列,并且可以使接收器/发送器对630c进入链路被测试状态,并且其余接收器/发送器对(例如,630a、b、d、e)根据所识别的测试模式进入另一不同的测试链路状态。在该示例中,使其余接收器/发送器对(例如,630a、b、d、e)进入测试链路状态,其中没有数据由接收器/发送器对(例如,630a、b、d、e)的相应发送器发送,并且所有信号被其余接收器/发送器对的接收器忽略(例如,从而接收器/发送器对(例如,630a、b、d、e)的协议栈逻辑不会无意中将其相应通道上的噪声解释为根据协议栈定义的合法信号)。
在一些实现方式中,从测试器设备610发送到被测试设备605的训练序列不仅可以识别待测试的特定通道(例如,接收专用训练序列的通道),而且可以明确地识别一组测试模式中的特定测试模式。例如,二进制码可以被注入专用训练序列的一个或多个字段中(例如,在特定链路训练状态(例如,轮询状态)内的训练序列中发送的特定符号中的以其他方式预留的字段中),以识别多个支持的测试模式中的特定测试模式。根据该编码,被测试设备605可以识别将特定识别的测试模式映射到在扩充的链路状态机中定义的一组测试链路状态中的一个,并使其余通道进入该测试链路状态以支持所识别的测试模式。在其他实现方式中,不是明确地识别定义的测试模式(例如,通过在专用训练序列中编码),而是测试器设备610可以通过提供编码以识别被测试设备605的通道将进入以便支持测试器设备605请求的测试的(多个)测试链路状态来隐含地识别测试模式。例如,在一个示例实现方式中,训练序列可以识别被测试通道将进入的LUT测试链路状态,并且可以单独地识别其余通道(未被测试)将进入的支持测试链路状态中的一个。在其他实现方式中,训练序列内的编码可以识别要测试特定通道,并且可以仅明确地识别其余通道(未被测试)将进入的支持测试链路状态,以及其他示例实现方式。实际上,应当理解,可以利用各种不同的信号(例如,有序集、训练序列等)来将请求传送到被测试设备以进入特定测试模式。在各种实现方式中可以采用包括各种信息并在各种符号、字段、时隙等内编码的各种编码,而不脱离本文呈现的更一般化的概念。
转到图9B的示例,示出了另一示例测试模式。如在其他示例中那样,例如,图9A中所示的,测试器设备610可以向待测试的特定通道(例如,630c)的接收器发送信号,并且(明确地或隐含地)识别待进入的特定测试模式(定义的或未定义的)。通道630c的接收器/发送器对的接收器可以根据信号识别出其余通道(例如,630a、b、d、e)将进入多个测试链路状态中的特定测试链路状态,以便支持由测试器设备610请求的测试。类似地,在图9C-9E的示例中,设备605可以从测试器设备610(在被测试通道处)接收对应的信号,以使设备605将其余通道(未测试)转换到对应的测试链路状态(如将在下面的示例中更详细地描述的)。在图9B的示例的情况下,其余通道被迫转换到测试链路状态,使这些其余通道的接收器/发送器对的发送器在受害者被测试通道630c上生成近端串扰(NEXT)。这可以通过其余通道的接收器/发送器对在其发送器上发送压力数据来完成。此外,在该示例中(如在图9A的示例测试状态中),这些接收器/发送器对的接收器可以忽略在该测试链路状态中接收到的所有信号(例如,以避免错误解释可能在这些接收器/发送器对处接收到的噪声)。
转到图9C的示例,可以提供另一示例测试链路状态,其允许使用未被测试通道生成NEXT和FEXT两者。在一个示例中,可以通过环回在未被测试通道(例如,630a、b、d、e)的接收器/发送器对的发送器处生成的压力数据来实现这种测试链路状态。在图9C的示例中,可以利用符合性固定设备805来促进对在未被测试通道的接收器/发送器对的发送器处生成的压力数据的环回,这导致NEXT和FEXT两者在被测试通道上展现。由于测试链路状态可以与在协议的链路状态机中定义的标准链路状态共存(例如,使得这些通道可以稍后退出测试链路状态并且在正常(即,非测试)操作中在标准链路状态之间转换),所以存在这样的风险:发送到未被测试通道的接收器/发送器对的接收器的压力数据可能无意中与协议内定义的其他信号匹配,这些信号用于促进在这些接收器/发送器对的协议栈逻辑的一部分上进行的一些其他(例如,非测试)动作(例如,转换到另一(例如,非测试)链路状态,执行特定链路训练功能等)。因此,在其中未被测试通道的接收器/发送器对的接收器将接收压力数据的测试链路状态内,这些接收器/发送器对的协议栈逻辑在处于这些测试链路状态时可以高效地忽略这些压力信号的实质或内容,从而测试链路状态不会无意中退出或以其他方式中断。
虽然图9C的示例示出了使用符合性固定设备805来促进NEXT/FEXT环回状态,但其他实现方式可以使用其他设备(包括测试器设备本身,例如,在多通道BERT中)来促进对压力数据的环回。在该示例中,符合性固定设备还可以用作重定时器、重新驱动器、中继器或其他数据转发设备,以简单地将数据转发到被测试通道和单通道测试器(例如,610)并且从被测试通道和单通道测试器(例如,610)转发数据。例如,符合性固定设备可以利用切换或复用电路来识别测试器正在测试通道中的特定通道(例如,630c),从而针对该通道实现数据转发,同时针对连接到未被测试通道的符合性固定设备(即,连接到接收器/发送器对(例如,630a、b、d、e)的设备605的对应接收器)的其余通道实现环回或发送模式。
在又一示例中,如图9D所示,其他测试链路状态可能使得使用其余未被测试通道仅生成远端串扰。例如,可以在诸如信号发生器设备(例如,905)之类的另一设备处生成压力信号,并将压力信号发送到未被测试通道(例如,630a、b、d、e)的接收器/发送器对的接收器。在该示例测试链路状态中,可以将未被测试通道的接收器/发送器对的发送器置于空闲模式,从而没有数据被有意地发送以在被测试通道(例如,630c)上生成NEXT。另外,如在图9C的示例中(以及其他测试链路状态,其中在对被测试通道的测试期间,未被测试通道接收压力数据),未被测试的接收器/发送器对(例如,630a、b、d、e)的接收器可以忽略由信号发生器905生成的压力数据。在一些实现方式中,在对特定通道(例如,630c)的测试中使用的信号发生器(例如,905)可以与测试器设备610耦合并由其驱动,从而测试器设备610选择由(多个)信号发生器(例如,905)在哪些通道上、在什么时间以及以什么间隔来发送哪些压力信号(例如,以实现由测试器设备管理的测试的特定目标(其可以由人类用户或其他系统使用软件接口来选择、编程和以其他方式定义))。在其他实例中,信号发生器或其他补充设备可以另外用于支持其他测试链路状态,例如,NEXT/FEXT测试链路状态,其中压力数据将在未被测试通道上由设备605发送和接收。在这种实例中,(多个)信号发生器可以包括接收器,以接收(例如,并且高效地忽略和处理)从未被测试的接收器/发送器对(例如,630a、b、d、e)的发送器发送的压力信号,以及其他示例。
在图9A-9D的示例中,示出了单通道测试器设备。然而,在一些实现方式中,可以提供多通道测试器设备。因此,除了特定于单通道测试器的测试链路状态之外,设备(例如,605)还可以添加和支持附加测试链路状态。在一些情况下,例如,图9E的示例中所示的,与单通道测试器一起使用的相同测试链路状态可以用于支持使用多通道测试器的测试。实际上,多通道测试器可以简化各种测试模式的实现(其否则可能使用诸如符合性固定设备(例如,805)、信号发生器(例如,905)等之类的补充设备)。例如,在图9E的示例中,多通道BERT(例如,610)可以在本地提供由这种补充设备提供的功能。例如,在图9E的示例中,多通道测试器设备可以实现NEXT/FEXT测试链路模式,其中测试器设备接收由设备605上的未被测试通道的发送器生成并从其发送的压力数据。在其他实现方式中,多通道测试器设备610可以参与基于环回的NEXT/FEXT测试链路状态(例如,类似于图9C的示例中所示的测试链路状态)。在一些情况下,多通道测试器设备可以在基于环回的NEXT/FEXT测试链路状态中充当主端或从端,其中一些测试链路状态被定义为使被测试设备的发送器在非测试通道上生成要通过测试器设备环回的压力信号,并且替代测试链路状态被定义为使多通道测试器的发送器在非测试通道上生成要通过被测试设备605的对应接收器/发送器对环回的压力信号。多通道测试器设备还可以在仅FEXT测试链路状态中使用,以生成压力信号以供递送到非测试通道的接收器/发送器对的接收器(例如,代替例如图9D的示例中的单独的专用信号发生器(例如,905)),以及其他示例用途。
虽然图9A-9E的示例各自示出了相同通道(例如,630c)用作被测试通道,但是应当理解,这仅仅是为了便于说明不同测试链路状态示例之间的变化而示出的。实际上,多个通道(即,接收器/发送器对(例如,630a-e))中的任何一个可以连接到测试器设备(例如,单通道BERT),并且是主题被测试通道。此外,取决于测试,多个通道中的任何一个可以进入LUT测试链路状态(并且是被测试通道)或者进入支持测试链路状态以在所选择的被测试通道上生成串扰。因此,在相应的接收器/发送器对(例如,630a-e)处实现的协议栈逻辑不仅可以支持针对协议定义的标准链路状态,而且还可以支持补充或添加的测试链路状态,以允许该通道作为被测试通道进行测试或通过在被测试通道上生成串扰来支持对通道中的另一通道的测试。
如上面介绍的,在一些示例中,可以利用标准链路状态机和对应的逻辑的原理和方面来促进到专用测试链路状态的转换,例如,上面介绍的那些。作为说明性示例,测试器设备(例如,包括协议栈逻辑的BERT,该协议栈逻辑允许BERT至少部分地知晓协议以发送和解释在被测试设备支持的特定协议内定义的信号),可以在测试期间引导被测试设备通过各种协议定义的流程。例如,在LUT测试状态内,BERT可以引导被测试设备通过活动L0链路状态(例如,跳过配置链路状态)到达恢复链路状态(在一些情况下,包括均衡),到达环回链路状态等等,如根据特定测试编程的。在这种实例中,BERT可以利用协议定义的消息传送来促进在标准链路状态之间的这些测试转换。
在更详细的示例中,并且返回到图7中的图示700,其接收器/发送器对中的一个或多个接收器/发送器对由测试器设备进行测试的设备可以首先使其对应于多通道链路的接收器/发送器对中的每个接收器/发送器对进入接收器检测状态505。所有通道可以检测另一设备(例如,由于自环回,者或连接到BERT或连接到50ohm终端或其他测试设备或以50ohm终端为源),以便经过检测状态。在其他实现方式中,由于测试器设备将电模式驱动到被测试通道,所以被测试设备可以简单地检测到从电空闲状态退出(例如,其中设备被置于准备测试)。在一些实现方式中,可以进一步放宽针对该转换的协议定义的要求,以迫使通道中的未连接到测试器设备的每个通道继续进行链路训练,尽管在检测状态505期间在通道的另一端上未检测到连接的接收器(例如,在仅NEXT测试链路状态的情况下,例如,在图9C的示例中)。
继续该示例,包括被测试通道的端口可以退出检测状态505以进入轮询状态510。在该状态下,测试器设备可以发送修改后的训练序列(例如,TS1/TS2有序集,通过Polling.Active和Polling.Configuration),其中对一个或多个比特(例如,在训练序列的符号5中)置位以指示要进入的测试模式,这涉及其余通道进入特定测试链路状态。在一个示例中,(在检测505期间)检测接收器的通道可以在未连接到测试器设备时进行训练(例如,利用其自己的(环回的)TS1/TS2有序集)。在其他情况下,未被测试通道可以被配置为简单地在链路宽度的协议栈逻辑的方向上(基于在BERT连接的通道上接收到指示该链路处于测试模式的训练序列)或在特定超时时段(例如,超时基于未能在未连接到测试器设备的通道上接收到进一步的训练数据)之后默认地忽略所有业务,以及其他示例。在一些实现方式中,可以修改轮询本身以适应到测试链路状态的转换。
在使用单通道测试器设备的示例中,指示测试模式的修改后的训练序列将仅被发送到待测试的接收器/发送器对的接收器。当对应于被测试通道的接收器/发送器对接收到(多个)修改后的训练序列(例如,轮询状态下的TS1/TS2有序集)时,接收器/发送器对逻辑可以指示设备链路状态机逻辑(例如,LTSSM逻辑)将被测试通道转换为LUT链路测试状态,并且其余通道支持测试链路状态。在一个示例中,LUT测试链路状态可以包括或模仿L0状态。因此,在这样的示例中,链路状态机逻辑可以跳过在进入L0状态之前正常会进入的中间状态(例如,配置状态515)。例如,可以跳过配置状态而进入L0状态(例如,520)以开始LUT测试状态内的操作(例如,在接收到修改后的TS2有序集时,其中比特被置位以指示对应的测试模式)。可以将在跳过的链路训练状态期间训练的链路的方面设置为默认值(例如,通道编号分配可以是默认的通道编号,以及其他示例)。
继续该示例,LUT测试状态(或步骤序列)可以涉及将被测试通道驱动到环回状态。参考图5,进入环回状态535可以涉及首先转换到恢复状态540。在实现基于PCIe的互连的一个示例中,如果被测试设备是下游端口(DSP),则由被测试设备(利用如定义的旁路机制)以所有相关数据速率发起从L0 520到恢复540的具有均衡的转换,然后是测试器设备。在被测试设备是上游端口(USP)的情况下,测试器设备可以以所有相关数据速率(利用如定义的旁路机制)发起从L0到恢复的具有均衡的转换,然后是被测试设备。在退出恢复状态540时,测试器设备(处于LUT测试状态)可以作为环回主端发起到环回535的转换。然后,被测试设备作为从端进入环回535,其中在一个通道上将环回比特置位。从Loopback.Entry,在轮询状态510期间没有接收到修改后的TS1/TS2有序集的处于从模式的所有通道可以发出符合性模式(或修改后的符合性模式),以及其他示例实现方式。利用处于环回的被测试通道,测试器设备然后可以在被测试通道上执行测量,并且生成描述与被测试通道相对应的被测试设备上的接收器/发送器对的性能的结果。
前面的公开内容已经呈现了多个示例测试链路状态,其可以补充在互连协议中定义的标准链路状态。应当理解,除了上面识别出的那些链路状态之外,可以提供其他测试链路状态,而不脱离本公开中包含的更一般化的原理。例如,虽然参考PCIe或基于PCIe的协议描述了本文讨论的示例状态机和有序序列中的一些,但是应当理解,可以对以下其他互连协议进行类似的对应增强:例如,OpenCAPITM、Gen-ZTM、UPI、通用串行总线(USB)、用于加速器的高速缓存相干互连(CCIXTM)、Advanced Micro DeviceTM(AMDTM)InfinityTM、通用通信接口(CCI)或QualcommTM的CentriqTM互连,以及其他。
注意,上面描述的装置、方法和系统可以在如前述的任何电子设备或系统中实现。作为具体说明,下面的附图提供了利用如本文描述的本发明的示例性系统。由于更详细地描述了以下系统,因此从上面的讨论中公开、描述和重访了许多不同的互连。并且显而易见的是,上面描述的进步可以应用于这些互连、结构或架构中的任何一种。
参考图10,描绘了包括多核心处理器的计算系统的框图的实施例。处理器1000包括任何处理器或处理设备,例如,微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(SOC)或用于执行代码的其他设备。在一个实施例中,处理器1000包括至少两个核心——核心1001和1002,其可以包括不对称核心或对称核心(所示实施例)。然而,处理器1000可以包括可以是对称或不对称的任何数量的处理元件。
在一个实施例中,处理元件指支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核心和/或任何其他元件,其能够保持处理器的状态,例如,执行状态或架构状态。换言之,在一个实施例中,处理元件指能够独立地与代码(例如,软件线程、操作系统、应用或其他代码)相关联的任何硬件。物理处理器(或处理器插座)典型地指集成电路,其潜在地包括任何数量的其他处理元件,例如,核心或硬件线程。
核心经常指位于能够维护独立架构状态的集成电路上的逻辑,其中每个独立维护的架构状态与至少一些专用执行资源相关联。与核心对比,硬件线程典型地指位于能够维护独立架构状态的集成电路上的任何逻辑,其中独立维护的架构状态共享对执行资源的访问。如可以看出的,当共享特定资源而其他资源专用于架构状态时,硬件线程与核心的命名之间的界限重叠。但是经常,操作系统将核心和硬件线程视为个体逻辑处理器,其中操作系统能够单独地在每个逻辑处理器上调度操作。
如图10所示,物理处理器1000包括两个核心——核心1001和1002。这里,核心1001和1002被认为是对称核心,即具有相同配置、功能单元和/或逻辑的核心。在另一实施例中,核心1001包括无序的处理器核心,而核心1002包括按顺序的处理器核心。然而,核心1001和1002可以从以下任何类型的核心中单独地选择:例如,本机核心、软件管理核心、适于执行本机指令集架构(ISA)的核心、适于执行变换指令集架构(ISA)的核心、共同设计的核心或其他已知核心。在异构核心环境(即,非对称核心)中,可以利用某种形式的变换(例如,二进制变换)来在一个或两个核心上调度或执行代码。但是为了进一步讨论,核心1001中示出的功能单元在下面进一步详细描述,因为核心1002中的单元在所描绘的实施例中以类似的方式进行操作。
如所描绘的,核心1001包括两个硬件线程1001a和1001b,它们也可以称为硬件线程槽1001a和1001b。因此,在一个实施例中,诸如操作系统的软件实体潜在地将处理器1000视为四个分离的处理器,即能够并发地执行四个软件线程的四个逻辑处理器或处理元件。如上面提及的,第一线程与架构状态寄存器1001a相关联,第二线程与架构状态寄存器1001b相关联,第三线程可以与架构状态寄存器1002a相关联,并且第四线程可以与架构状态寄存器1002b相关联。这里,架构状态寄存器(1001a、1001b、1002a和1002b)中的每个可以被称为处理元件、线程槽或线程单元,如上面描述的。如所示出的,架构状态寄存器1001a在架构状态寄存器1001b中被复制,因此能够针对逻辑处理器1001a和逻辑处理器1001b存储个体架构状态/上下文。在核心1001中,还可以针对线程1001a和1001b复制其他较小的资源,例如,分配器和重命名器块1030中的指令指针和重命名逻辑。可以通过分区来共享一些资源,例如,重新排序/退出单元1035中的重新排序缓冲器、ILTB 1020、加载/存储缓冲器以及队列。潜在地完全共享其他资源,例如,通用内部寄存器、(多个)页表基址寄存器、低级别数据-高速缓存和数据-TLB 1015、(多个)执行单元1040以及无序单元1035的部分。
处理器1000经常包括其他资源,这些其他资源可以是完全共享的、通过分区共享的、或由处理元件专用/专用于处理元件的。在图10中,示出了具有处理器的说明性逻辑单元/资源的纯示例性处理器的实施例。注意,处理器可以包括或省略这些功能单元中的任何一个,以及包括未描绘的任何其他已知功能单元、逻辑或固件。如所示出的,核心1001包括简化的代表性无序的(OOO)处理器核心。但是在不同的实施例中可以使用按顺序的处理器。OOO核心包括用于预测要执行/采用的分支的分支目标缓冲器1020,以及用于存储指令的地址变换条目的指令变换缓冲器(I-TLB)1020。
核心1001还包括解码模块1025,其耦合到取得单元1020,用于解码所取得的元素。在一个实施例中,取得逻辑包括分别与线程槽1001a、1001b相关联的个体定序器。通常,核心1001与第一ISA相关联,该第一ISA定义/指定在处理器1000上可执行的指令。经常,作为第一ISA的一部分的机器代码指令包括指令的一部分(称为操作码),其引用/指定要执行的指令或操作。解码逻辑1025包括从其操作码中识别这些指令并且在管线中传递解码的指令以便如由第一ISA定义地进行处理的电路。例如,如下面更详细讨论的,在一个实施例中,解码器1025包括被设计为或适于识别诸如事务指令的特定指令的逻辑。由于解码器1025进行的识别,架构或核心1001采取特定的、预先定义的动作来执行与适当指令相关联的任务。重要的是要注意,可以响应于单个或多个指令来执行本文描述的任务、块、操作和方法中的任一个;其中一些指令可能是新的指令或旧的指令。注意,在一个实施例中,解码器1026识别相同的ISA(或其子集)。可替代地,在异构核心环境中,解码器1026识别第二ISA(第一ISA的子集或不同的ISA)。
在一个示例中,分配器和重命名器块1030包括用于预留资源(例如,用于存储指令处理结果的寄存器文件)的分配器。然而,线程1001a和1001b潜在地能够无序执行,其中分配器和重命名器块1030还预留其他资源,例如,用于跟踪指令结果的重新排序缓冲器。单元1030还可以包括寄存器重命名器,用于将程序/指令参考寄存器重命名为处理器1000内部的其他寄存器。重新排序/退出单元1035包括诸如上面提及的重新排序缓冲器、加载缓冲器和存储缓冲器之列的组件,以支持无序执行和无序执行的指令的稍后按顺序退出。
在一个实施例中,(多个)调度器和执行单元块1040包括调度器单元,用于调度执行单元上的指令/操作。例如,浮点指令在具有可用浮点执行单元的执行单元端口上被调度。还包括与执行单元相关联的寄存器文件,以存储信息指令处理结果。示例性执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元和其他已知的执行单元。
较低级别数据高速缓存和数据变换缓冲器(D-TLB)1050耦合到(多个)执行单元1040。数据高速缓存用于存储近期使用/操作的元素,例如数据操作数,其潜在地保留在存储器相干性状态中。D-TLB用于存储近期的虚拟/线性到物理地址变换。作为特定示例,处理器可以包括页表结构以将物理存储器分成多个虚拟页。
这里,核心1001和1002共享对更高级别或更远高速缓存的存取,例如,与片上接口1010相关联的第二级高速缓存。注意,更高级别或更远是指高速缓存级别增加或更远离(多个)执行单元。在一个实施例中,更高级别高速缓存是最后一级数据高速缓存——处理器1000上的存储器层级中的最后一级高速缓存——例如,第二级或第三级数据高速缓存。然而,更高级别高速缓存不限于此,因为其可以与指令高速缓存相关联或包括指令高速缓存。追踪高速缓存——一种类型的指令高速缓存——替代地可以在解码器1025之后耦合,以存储近期解码的追踪。这里,指令潜在地指宏指令(即,由解码器识别的一般指令),其可以解码为多个微指令(微操作)。
在所描绘的配置中,处理器1000还包括片上接口模块1010。历史上,下面更详细描述的存储器控制器包括在处理器1000外部的计算系统中。在该场景中,片上接口1010用于与处理器1000外部的设备通信,例如,系统存储器1075、芯片组(经常包括用于连接到存储器1075的存储器控制器中心以及用于连接外围设备的I/O控制器中心)、存储器控制器中心、北桥或其他集成电路。并且在这种场景中,总线1005可以包括任何已知的互连,例如,多点总线、点对点互连、串行互连、并行总线、相干(例如,高速缓存相干)总线、分层协议架构、差分总线和GTL总线。
存储器1075可以专用于处理器1000或与系统中的其他设备共享。存储器1075的类型的常见示例包括DRAM、SRAM、非易失性存储器(NV存储器)和其他已知的存储设备。注意,设备1080可以包括图形加速器、耦合到存储器控制器中心的处理器或卡、耦合到I/O控制器中心的数据存储装置、无线收发器、闪存设备、音频控制器、网络控制器或其他已知的设备。
然而最近,随着更多逻辑和设备被集成在诸如SOC之类的单个管芯上,这些设备中的每个可以合并在处理器1000上。例如,在一个实施例中,存储器控制器中心与处理器1000在相同的封装和/或管芯上。这里,核心的一部分(核心上部分)1010包括一个或多个控制器,用于与诸如存储器1075或图形设备1080之类的其他设备相接合。包括用于与这种设备相接合的互连和控制器的配置经常被称为核心上(或非核心配置)。作为示例,片上接口1010包括用于片上通信的环形互连和用于片外通信的高速串行点对点链路1005。然而,在SOC环境中,甚至更多的设备(例如,网络接口、协处理器、存储器1075、图形处理器1080和任何其他已知的计算机设备/接口)可以集成在单个管芯或集成电路上,以提供具有高功能和低功耗的小形状因子。
在一个实施例中,处理器1000能够执行编译器、优化和/或变换器代码1077,以编译、变换和/或优化应用代码1076,以便支持本文描述的装置和方法或与其的接口。编译器经常包括将源文本/代码变换为目标文本/代码的程序或程序集。通常,用编译器编译程序/应用代码是在多个阶段中完成的,并且传递到将高级编程语言代码变换为低级机器或汇编语言代码。然而,单遍编译器仍可以用于简单编译。编译器可以利用任何已知的编译技术并且执行任何已知的编译器操作,例如,词法分析、预处理、解析、语义分析、代码生成、代码变换和代码优化。
较大的编译器经常包括多个阶段,但是大多数情况下经常是这些阶段包括在两个一般阶段中:(1)前端,即通常句法处理、语义处理和一些变换/优化可以发生的地方,以及(2)后端,即,通常分析、变换、优化和代码生成发生的地方。一些编译器指中间,其说明了编译器的前端与后端之间描绘的模糊处。因此,对编译器的插入、关联、生成或其他操作的引用可以在上述阶段或传递以及编译器的任何其他已知的阶段或传递中的任一个中发生。作为说明性示例,编译器潜在地在编译的一个或多个阶段中插入操作、调用、函数等,例如,在编译的前端阶段插入调用/操作,并且然后在变换阶段期间将调用/操作变换为较低级别代码。注意,在动态编译期间,编译器代码或动态优化代码可以插入此类操作/调用,以及优化代码以供在运行时期间执行。作为特定说明性示例,可以在运行时期间动态地优化二进制代码(已经编译的代码)。这里,程序代码可以包括动态优化代码、二进制代码或其组合。
与编译器类似,变换器(例如,二进制变换器)将代码静态或动态地变换,以优化和/或变换代码。因此,对执行代码、应用代码、程序代码或其他软件环境的引用可以指:(1)动态地或静态地执行(多个)编译器程序、优化代码优化器或变换器,以编译程序代码、维护软件结构、执行其他操作、优化代码或变换代码;(2)执行包括操作/调用的主程序代码,例如,已经优化/编译的应用代码;(3)执行与主程序代码相关联的其他程序代码(例如,库),以维护软件结构、执行其他软件相关的操作或者优化代码;或(4)其组合。
现在参考图11,示出了根据本发明的实施例的另一系统1100的框图。如图11所示,多处理器系统1100是点对点互连系统,并且包括经由点对点互连1150耦合的第一处理器1170和第二处理器1180。处理器1170和1180中的每个可以是处理器的某个版本。在一个实施例中,1152和1154是串行点对点相干互连结构的一部分,例如,高性能架构。因此,本发明可以在QPI架构内实现。
虽然仅示出了两个处理器1170、1180,但应理解,本发明的范围不限于此。在其他实施例中,一个或多个附加处理器可以存在于给定处理器中。
处理器1170和1180示出为分别包括集成存储器控制器单元1172和1182。处理器1170还包括作为其总线控制器单元的一部分的点对点(P-P)接口1176和1178;类似地,第二处理器1180包括P-P接口1186和1188。处理器1170、1180可以使用P-P接口电路1178、1188经由点对点(P-P)接口1150交换信息。如图11所示,IMC 1172和1182将处理器耦合到相应的存储器,即,存储器1132和存储器1134,其可以是本地附接到相应处理器的主存储器的部分。
处理器1170、1180各自使用点对点接口电路1176、1194、1186、1198经由个体P-P接口1152、1154与芯片组1190交换信息。芯片组1190还沿着高性能图形互连1139经由接口电路1192与高性能图形电路1138交换信息。
共享高速缓存(未示出)可以包括在任一处理器中或两个处理器之外;但是经由P-P互连与处理器连接,从而如果处理器被置于低功率模式,则任一处理器或两个处理器的本地高速缓存信息可以存储在共享高速缓存中。
芯片组1190可以经由接口1196耦合到第一总线1116。在一个实施例中,第一总线1116可以是外围部件互连(PCI)总线,或者诸如快速PCI总线或另一第三代I/O互连总线之类的总线,但是本发明的范围不限于此。
如图11所示,各种I/O设备1114连同总线桥1118耦合到第一总线1116,该总线桥1118将第一总线1116耦合到第二总线1120。在一个实施例中,第二总线1120包括低引脚计数(LPC)总线。各种设备耦合到第二总线1120,包括例如键盘和/或鼠标1122、通信设备1127和存储单元1128(例如,磁盘驱动器或其他大容量存储设备,其在一个实施例中经常包括指令/代码和数据1130)。此外,音频I/O 1124被示出为耦合到第二总线1120。注意,其他架构是可能的,其中所包括的组件和互连架构改变。例如,代替图11的点对点架构,系统可以实现多点总线或其他这样的架构。
虽然已经关于有限数量的实施例描述了本发明,但是本领域技术人员将从中意识到许多修改和变型。所附权利要求旨在覆盖落入本发明的真实精神和范围内的所有这些修改和变型。
设计可以经历从创建到模拟到制造的各种阶段。表示设计的数据可以以多种方式来表示设计。首先,如在模拟中有用的,可以使用硬件描述语言或另一种功能描述语言来表示硬件。另外,可以在设计过程的某些阶段产生具有逻辑和/或晶体管栅极的电路级模型。此外,大多数设计在某个阶段达到表示硬件模型中各种设备的物理放置的数据级别。在使用常规半导体制造技术的情况下,表示硬件模型的数据可以是指定用于产生集成电路的掩模在不同掩模层上存在或不存在各种特征的数据。在设计的任何表示中,数据可以以任何形式的机器可读介质存储。诸如盘的存储器或者磁或光存储装置可以是机器可读介质,用于存储经由被调制或以其他方式生成以传输这样的信息的光波或电波传输的信息。当传输指示或携带代码或设计的电载波时,在执行对电信号的复制、缓冲或重传的程度上,做出新的副本。因此,通信提供商或网络提供商可以至少临时地在有形的机器可读介质上存储物品(例如,编码成载波、体现本发明的实施例的技术的信息)。
如本文使用的模块指硬件、软件和/或固件的任何组合。作为示例,模块包括与非暂时性介质相关联的硬件,例如,微控制器,用于存储适于由微控制器执行的代码。因此,在一个实施例中,对模块的引用是指特别地配置为识别和/或执行要保留在非暂时性介质上的代码的硬件。此外,在另一实施例中,模块的使用是指包括代码的非暂时性介质,该代码特别适于由微控制器执行以执行预确定的操作。并且如可以推断的,在又一实施例中,术语模块(在该示例中)可以指微控制器和非暂时性介质的组合。经常被示为分离的模块边界通常变化并且潜在地重叠。例如,第一模块和第二模块可以共享硬件、软件、固件或其组合,同时潜在地保留一些独立的硬件、软件或固件。在一个实施例中,术语逻辑的使用包括诸如晶体管、寄存器或其他硬件(例如,可编程逻辑器件)之类的硬件。
在一个实施例中,短语“被配置为”的使用是指布置、放置在一起、制造、提供销售、导入和/或设计装置、硬件、逻辑或元件,以执行指定或确定的任务。在该示例中,如果装置或其元件被设计、耦合和/或互连以执行所述指定任务,则未被操作的装置或其元件仍“被配置为”执行指定任务。作为纯粹说明性示例,逻辑门可以在操作期间提供0或1。但是逻辑门“被配置为”向时钟提供使能信号不包括每个潜在逻辑门可以提供1或0。相反,逻辑门是以某种方式耦合的,在操作期间1或0输出用于使能时钟。再次注意,术语“被配置为”的使用不要求操作,而是关注于装置、硬件和/或元件的隐藏状态,其中在隐藏状态下,装置、硬件和/或元件被设计用于在装置、硬件和/或元件操作时执行特定任务。
此外,在一个实施例中,短语“用于”、“能够/能够用于”和/或“可操作用于”的使用是指一些装置、逻辑、硬件和/或元件以这样的方式设计,以使得能够以指定的方式使用装置、逻辑、硬件和/或元件。注意,如上述在一个实施例中使用用于、能够用于或可操作用于是指装置、逻辑、硬件和/或元件的隐藏状态,其中装置、逻辑、硬件和/或元件不操作但以这种方式设计为使得能够以特定方式使用装置。
如本文所使用的值包括数字、状态、逻辑状态或二进制逻辑状态的任何已知表示。经常,逻辑电平、逻辑值或逻辑的值的使用也称为1和0的使用,其仅表示二进制逻辑状态。例如,1指代高逻辑电平,并且0指代低逻辑电平。在一个实施例中,诸如晶体管或闪存单元之类的存储单元能够保持单个逻辑值或多个逻辑值。然而,已经在计算机系统中使用值的其他表示。例如,十进制数十也可以表示为二进制值1010和十六进制字母A。因此,值包括在计算机系统中能够保存的信息的任何表示。
此外,状态可以由值或值的部分表示。作为示例,第一值(例如,逻辑一)可以表示默认或初始状态,而第二值(例如,逻辑零)可以表示非默认状态。另外,在一个实施例中,术语复位和置位分别指默认值或状态和更新的值或状态。例如,默认值潜在地包括高逻辑值(即,复位)而更新的值潜在地包括低逻辑值(即,置位)。注意,可以使用值的任何组合来表示任何数量的状态。
上面阐述的方法、硬件、软件、固件或代码的实施例可以经由存储在可由处理元件执行的机器可存取、机器可读、计算机可存取或计算机可读介质上的指令或代码来实现。非暂时性机器可存取/可读介质包括以机器(例如,计算机或电子系统)可读形式提供(即,存储和/或传输)信息的任何机制。例如,非暂时性机器可存取介质包括随机存取存储器(RAM),例如,静态RAM(SRAM)或动态RAM(DRAM);ROM;磁性或光学存储介质;闪速存储器设备;电存储设备;光存储设备;声存储设备;用于保持从暂时性(传播)信号(例如,载波、红外信号、数字信号)接收到的信息的其他形式的存储设备;等等,其区别于可以从其接收信息的非暂时性介质。
用于对逻辑进行编程以执行本发明的实施例的指令可以存储在系统中的存储器(例如,DRAM、高速缓存、闪速存储器或其他存储装置)内。此外,指令可以经由网络或通过其他计算机可读介质的方式来分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,但不限于软盘、光盘、压缩盘只读存储器(CD-ROM)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪速存储器或用于通过互联网经由电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)传输信息的有形的机器可读存储装置。因此,计算机可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的有形的机器可读介质。
在一些实施例中,电子设备可以被配置为执行如本文描述的一个或多个过程、技术和/或方法或其部分。在图X-2中描绘了一个这样的过程。例如,该过程可以包括由第一重定时器和第二重定时器在第一SKP有序集(OS)期间执行SKP调整;并且由第三重定时器和第四重定时器在第二SKP OS期间执行SKP调整。
在一些实施例中,电子设备可以被配置为执行如本文描述的一个或多个过程、技术和/或方法或其部分。例如,该过程可以包括增强训练有序集(OS)以允许五代速度;并且设置配置寄存器以指示Gen 5 PCIe速度。
在一些实施例中,电子设备可以被配置为执行如本文描述的一个或多个过程、技术和/或方法或其部分。例如,该过程可以包括识别由平台提供的信道类型;识别存在一个或多个重定时器;并且基于信道类型以及是否存在一个或多个重定时器来在25千兆每秒(GT/s)和32GT/s传输之间进行选择。
在一些实施例中,电子设备可以被配置为执行如本文描述的一个或多个过程、技术和/或方法或其部分。例如,该过程可以包括从包括x20、x24、x28和x28的宽度的集合中识别信道链路宽度;并且基于所识别的信道链路宽度通过信道链路进行通信。
在一些实施例中,电子设备可以被配置为执行如本文描述的一个或多个过程、技术和/或方法或其部分。例如,该过程可以包括识别来自时钟数据恢复(CDR)的恢复的时钟数据;并且基于恢复的时钟数据,在初始训练之后对发送(TX)数据进行发送。
在一些实施例中,可以提供一种根据PCIe标准进行通信的方法,其包括:由第一重定时器和第二重定时器在第一SKP有序集(OS)期间执行SKP调整,以及由第三重定时器和第四重定时器在第二SKP OS期间执行SKP调整。该方法还可以包括将SKP OS频率减半。在一些情况下,第一SKP OS可以与第二SKP OS接续发送。该方法还可以包括增强训练有序集(OS)以允许五代速度,并且设置配置寄存器以指示Gen 5 PCIe速度。此外,可以识别由平台提供的信道类型,可以识别存在一个或多个重定时器,并且可以基于信道类型以及是否存在一个或多个重定时器来选择信道速度(例如,从25千兆每秒(GT/s)或32GT/s传输中)。还可以基于是否实现或支持前向纠错(FEC)来确定该选择。该速度选择可以发生在链接训练期间。这些示例方法可以另外包括从包括x20、x24、x28和x28的速度的集合中识别信道链路宽度,以及基于所识别的信道链路宽度通过信道链路进行通信。此外,可以识别来自时钟数据恢复组件的恢复的时钟数据,并且可以在对链路进行训练之后基于恢复的时钟数据对发送数据进行发送。
在一些实施例中,可以提供一种根据基于PCIe的标准进行通信的装置,该装置包括扩展连续时间线性均衡器(CTLE)和/或最小8抽头决策反馈均衡器(DFE),和/或T线圈或Pi线圈终端,和/或与时钟数据恢复(CDR)相关的数据模式滤波器,和/或4路交错时钟架构,以及其他示例特征和组件。
在一些实施例中,可以提供一种根据具有信道损耗特性的快速外围部件互连(PCIe)标准进行通信的装置,例如,上面讨论的。PCIe标准可以是Gen 5(或更高)PCIe标准。
以下示例涉及根据本说明书的实施例。示例1是一种装置,包括:包括端口的接口,其中,端口包括多个接收器-发送器对,并且接收器-发送器对中的每个接收器-发送器对包括:相应的接收器,用于在多个双向通道中的相应通道上接收数据;以及相应的发送器,用于在相应通道上发送数据;以及包括硬件电路的状态机逻辑。状态机逻辑用于:检测由多个接收器-发送器对中的特定接收器-发送器对的特定接收器在多个双向通道中的特定通道上从测试器设备接收到的训练序列,其中,训练序列包括用于指示测试器设备对特定接收器-发送器对进行的测试的值;使特定接收器-发送器对与测试相关联地转换到第一链路状态;以及使多个接收器-发送器对中的另一接收器-发送器对与测试相关联地进入不同于第一链路状态的第二链路状态。
示例2可以包括示例1的主题,其中,值指示要在对特定接收器-发送器对的测试中应用的多个测试模式中的特定测试模式,第二链路状态对应于特定测试模式,并且另一接收器-发送器对基于特定测试模式而进入第二链路状态。
示例3可以包括示例2的主题,其中,多个测试模式包括至少第一测试模式和至少第二测试模式,第一测试模式用于在存在远端串扰的情况下对通道进行测试,第二测试模式用于在存在近端串扰的情况下对通道进行测试。
示例4可以包括示例3的主题,其中,特定测试模式包括第一测试模式,另一接收器-发送器对的发送器在第一链路状态下保持空闲,另一接收器-发送器对的接收器在第一链路状态下接收压力信号,压力信号在特定通道上引起串扰,并且另一接收器-发送器对忽略接收到的压力信号的内容。
示例5可以包括示例3的主题,其中,特定测试模式包括第二测试模式,并且另一接收器-发送器对的发送器在第二链路状态下发送信号,以在特定通道上引起串扰。
示例6可以包括示例5的主题,其中,信号包括第一压力信号,第二测试模式在存在近端串扰和远端串扰两者的情况下对通道进行测试,另一接收器-发送器对的接收器在第二链路状态下接收第二压力信号,第一压力信号在特定通道上引起近端串扰,第二压力信号在特定通道上引起远端串扰,并且另一接收器-发送器对忽略接收到的第二压力信号的内容。
示例7可以包括示例3的主题,其中,第二压力信号包括第一压力信号的环回的版本。
示例8可以包括示例1-7中任一项的主题,其中,第一链路状态包括环回状态,测试器设备在环回状态下作为主端。
示例9可以包括示例1-8中任一项的主题,其中,训练序列在轮询链路状态期间被接收。
示例10可以包括示例9的主题,其中,轮询链路状态包括与基于快速外围部件互连(PCIe)的协议兼容的状态机中的链路训练状态。
示例11可以包括示例9的主题,其中,特定接收器-发送器对从轮询链路状态转换到第一链路状态,并且另一接收器-发送器对从轮询链路状态转换到第二链路状态。
示例12可以包括示例1-11中任一项的主题,其中,测试器设备包括比特错误率测试器(BERT)设备。
示例13可以包括示例12的主题,其中,BERT设备包括单通道BERT设备,用于在对设备的测试期间连接到多个接收器-发送器对中的仅一个接收器-发送器对。
示例14可以包括示例12的主题,其中,BERT设备包括多通道BERT设备,用于在对设备的测试期间连接到多个接收器-发送器对中的每个接收器-发送器对。
示例15可以包括示例1-14中任一项的主题,其中,第二链路状态包括由状态机逻辑支持的多个测试状态中的一个测试状态。
示例16可以包括示例15的主题,其中,多个测试状态与适于将链路带到标准活动状态的链路状态机中的状态分离。
示例17可以包括示例16的主题,其中,标准活动状态包括L0状态。
示例18可以包括示例1-17中任一项的主题,其中,多个接收器-发送器对中的除特定接收器-发送器对之外的所有接收器-发送器对进入用于测试的第二状态。
示例19可以包括示例1的主题,其中,在第一链路状态下数据在特定通道上从测试设备被发送,并且第二状态包括以下中的一个:空闲状态,其中,没有数据在多个通道中的另一通道上被另一接收器-发送器对发送;环回状态,其中,数据在特定测试模式期间在另一通道上从另一接收器-发送器对的发送器被连续发送到另一设备,并且被环回到另一接收器-发送器对的接收器;以及仅发送状态,其中,在特定测试模式期间,数据在另一通道上被另一接收器-发送器对的发送器连续发送,并且信号在另一通道上被另一接收器-发送器对的接收器忽略。
示例20可以包括示例19的主题,其中,由另一接收器-发送器对的发送器发送的数据被用于针对特定通道上的近端串扰进行测试,并且从另一设备发送到另一接收器-发送器对的接收器的数据被用于针对特定通道上的近端串扰进行测试。
示例21是一种方法,包括:在多个接收器-发送器对中的特定接收器-发送器对的接收器处接收训练序列,其中,多个接收器-发送器对中的每个接收器-发送器对实现链路中的多个通道中的相应通道,训练序列在多个通道中的特定通道上从测试器设备被接收,并且训练序列包括用于指示测试器设备对特定接收器-发送器对进行的测试的值;将特定接收器-发送器对与测试相关联地转换到第一链路状态;以及将多个接收器-发送器对中的一个或多个其他接收器-发送器对转换为与测试相关联地进入不同于第一链路状态的第二链路状态,其中,第二链路状态使得在测试期间串扰能够在特定通道上被产生。
示例22可以包括示例21的主题,其中,值指示要在对特定接收器-发送器对的测试中应用的多个测试模式中的特定测试模式,第二链路状态对应于特定测试模式,并且另一接收器-发送器对基于特定测试模式而进入第二链路状态。
示例23可以包括示例22的主题,其中,多个测试模式包括至少第一测试模式和至少第二测试模式,第一测试模式用于在存在远端串扰的情况下对通道进行测试,第二测试模式用于在存在近端串扰的情况下对通道进行测试。
示例24可以包括示例23的主题,其中,特定测试模式包括第一测试模式,另一接收器-发送器对的发送器在第一链路状态下保持空闲,另一接收器-发送器对的接收器在第一链路状态下接收压力信号,压力信号在特定通道上引起串扰,并且另一接收器-发送器对忽略接收到的压力信号的内容。
示例25可以包括示例23的主题,其中,特定测试模式包括第二测试模式,并且另一接收器-发送器对的发送器在第二链路状态下发送信号,以在特定通道上引起串扰。
示例26可以包括示例25的主题,其中,信号包括第一压力信号,第二测试模式在存在近端串扰和远端串扰两者的情况下对通道进行测试,另一接收器-发送器对的接收器在第二链路状态下接收第二压力信号,第一压力信号在特定通道上引起近端串扰,第二压力信号在特定通道上引起远端串扰,并且另一接收器-发送器对忽略接收到的第二压力信号的内容。
示例27可以包括示例23的主题,其中,第二压力信号包括第一压力信号的环回的版本。
示例28可以包括示例21-27中任一项的主题,其中,第一链路状态包括环回状态,测试器设备在环回状态下作为主端。
示例29可以包括示例21-28中任一项的主题,其中,训练序列在轮询链路状态期间被接收。
示例30可以包括示例29的主题,其中,轮询链路状态包括与基于快速外围部件互连(PCIe)的协议兼容的状态机中的链路训练状态。
示例31可以包括示例29的主题,其中,特定接收器-发送器对从轮询链路状态转换到第一链路状态,并且另一接收器-发送器对从轮询链路状态转换到第二链路状态。
示例32可以包括示例21-31中任一项的主题,其中,测试器设备包括比特错误率测试器(BERT)设备。
示例33可以包括示例32的主题,其中,BERT设备包括单通道BERT设备,用于在对设备的测试期间连接到多个接收器-发送器对中的仅一个接收器-发送器对。
示例34可以包括示例32的主题,其中,BERT设备包括多通道BERT设备,用于在对设备的测试期间连接到多个接收器-发送器对中的每个接收器-发送器对。
示例35可以包括示例21-34中任一项的主题,其中,第二链路状态包括由状态机逻辑支持的多个测试状态中的一个测试状态。
示例36可以包括示例35的主题,其中,多个测试状态与适于将链路带到标准活动状态的链路状态机中的状态分离。
示例37可以包括示例36的主题,其中,标准活动状态包括L0状态。
示例38可以包括示例21-37中任一项的主题,其中,多个接收器-发送器对中的除特定接收器-发送器对之外的所有接收器-发送器对进入用于测试的第二状态。
示例39可以包括示例21的主题,其中,在第一链路状态下数据在特定通道上从测试设备被发送,并且第二状态包括以下中的一个:空闲状态,其中,没有数据在多个通道中的另一通道上被另一接收器-发送器对发送;环回状态,其中,数据在特定测试模式期间在另一通道上从另一接收器-发送器对的发送器被连续发送到另一设备,并且被环回到另一接收器-发送器对的接收器;以及仅发送状态,其中,在特定测试模式期间,数据在另一通道上被另一接收器-发送器对的发送器连续发送,并且信号在另一通道上被另一接收器-发送器对的接收器忽略。
示例40可以包括示例39的主题,其中,由另一接收器-发送器对的发送器发送的数据被用于针对特定通道上的近端串扰进行测试,并且从另一设备发送到另一接收器-发送器对的接收器的数据被用于针对特定通道上的近端串扰进行测试。
示例41是一种系统,包括用于执行示例21-40中任一项的方法的单元。
示例42可以包括示例41的主题,其中,单元包括存储指令的计算机可读介质,该指令可执行以执行示例21-40中任一项的方法的至少一部分。
示例43是一种系统,包括:设备,该设备包括:一个或多个处理器核心;包括多个接收器-发送器对的端口,并且接收器-发送器对中的每个接收器-发送器对包括相应的接收器和发送器,并且被连接到多个双向通道中的相应通道;以及包括硬件电路的状态机逻辑。状态机逻辑用于:检测由多个接收器-发送器对中的特定接收器-发送器对的特定接收器在多个双向通道中的特定通道上从测试器设备接收到的训练序列,其中,训练序列包括用于指示测试器设备对特定接收器-发送器对进行的测试的值;使特定接收器-发送器对与测试相关联地转换到第一链路状态;以及使多个接收器-发送器对中的一个或多个其他接收器-发送器对与测试相关联地进入不同于第一链路状态的第二链路状态。
示例44可以包括示例43的主题,还包括测试器设备,其中,测试器根据测试生成测试结果。
示例45可以包括示例44的主题,其中,测试器设备包括比特错误率测试器(BERT)设备。
示例46可以包括示例45的主题,其中,BERT设备包括单通道BERT设备,用于在对设备的测试期间连接到多个接收器-发送器对中的仅一个接收器-发送器对。
示例47可以包括示例45的主题,其中,BERT设备包括多通道BERT设备,用于在对设备的测试期间连接到多个接收器-发送器对中的每个接收器-发送器对。
示例48可以包括示例44的主题,其中,设备包括测试器设备。
示例49可以包括示例43的主题,还包括符合性固定设备,用于:使用多个通道连接到多个接收器-发送器对中的每个接收器-发送器对;在特定接收器-发送器对与测试器设备之间转发数据;以及将在第二链路状态下从一个或多个其他接收器/发送器对的发送器接收到的数据环回,以使在测试期间近端串扰和远端串扰两者在特定通道上被产生。
示例50可以包括示例43的主题,其中,值指示要在对特定接收器-发送器对的测试中应用的多个测试模式中的特定测试模式,第二链路状态对应于特定测试模式,并且另一接收器-发送器对基于特定测试模式而进入第二链路状态。
示例51可以包括示例50的主题,其中,多个测试模式包括至少第一测试模式和至少第二测试模式,第一测试模式用于在存在远端串扰的情况下对通道进行测试,第二测试模式用于在存在近端串扰的情况下对通道进行测试。
示例52可以包括示例51的主题,其中,特定测试模式包括第一测试模式,另一接收器-发送器对的发送器在第一链路状态下保持空闲,另一接收器-发送器对的接收器在第一链路状态下接收压力信号,压力信号在特定通道上引起串扰,并且另一接收器-发送器对忽略接收到的压力信号的内容。
示例53可以包括示例51的主题,其中,特定测试模式包括第二测试模式,并且另一接收器-发送器对的发送器在第二链路状态下发送信号,以在特定通道上引起串扰。
示例54可以包括示例53的主题,其中,信号包括第一压力信号,第二测试模式在存在近端串扰和远端串扰两者的情况下对通道进行测试,另一接收器-发送器对的接收器在第二链路状态下接收第二压力信号,第一压力信号在特定通道上引起近端串扰,第二压力信号在特定通道上引起远端串扰,并且另一接收器-发送器对忽略接收到的第二压力信号的内容。
示例55可以包括示例51的主题,其中,第二压力信号包括第一压力信号的环回的版本。
示例56可以包括示例43-55中任一项的主题,其中,第一链路状态包括环回状态,测试器设备在环回状态下作为主端。
示例57可以包括示例43-56中任一项的主题,其中,训练序列在轮询链路状态期间被接收。
示例58可以包括示例57的主题,其中,轮询链路状态包括与基于快速外围部件互连(PCIe)的协议兼容的状态机中的链路训练状态。
示例59可以包括示例57的主题,其中,特定接收器-发送器对从轮询链路状态转换到第一链路状态,并且另一接收器-发送器对从轮询链路状态转换到第二链路状态。
示例60可以包括示例43-59中任一项的主题,其中,第二链路状态包括由状态机逻辑支持的多个测试状态中的一个测试状态。
示例61可以包括示例60的主题,其中,多个测试状态与适于将链路带到标准活动状态的链路状态机中的状态分离。
示例62可以包括示例61的主题,其中,标准活动状态包括L0状态。
示例63可以包括示例43-62中任一项的主题,其中,多个接收器-发送器对中的除特定接收器-发送器对之外的所有接收器-发送器对进入用于测试的第二状态。
示例64可以包括示例63的主题,其中,在第一链路状态下数据在特定通道上从测试设备被发送,并且第二状态包括以下中的一个:空闲状态,其中,没有数据在多个通道中的另一通道上被另一接收器-发送器对发送;环回状态,其中,数据在特定测试模式期间在另一通道上从另一接收器-发送器对的发送器被连续发送到另一设备,并且被环回到另一接收器-发送器对的接收器;以及仅发送状态,其中,在特定测试模式期间,数据在另一通道上被另一接收器-发送器对的发送器连续发送,并且信号在另一通道上被另一接收器-发送器对的接收器忽略。
示例65可以包括示例64的主题,其中,由另一接收器-发送器对的发送器发送的数据被用于针对特定通道上的近端串扰进行测试,并且从另一设备发送到另一接收器-发送器对的接收器的数据被用于针对特定通道上的近端串扰进行测试。
贯穿本说明书对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,贯穿本说明书各处出现的短语“在一个实施例中”或“在实施例中”不一定都指代相同的实施例。此外,特定特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。
在前述说明书中,已经参考特定示例性实施例给出了详细描述。然而,显而易见的是,在不脱离如所附权利要求中阐述的本发明的更宽泛的精神和范围的情况下,可以对其进行各种修改和改变。因此,说明书和附图应被视为说明性意义而非限制性意义的。此外,实施例的前述使用和其他示例性语言不一定指代相同的实施例或相同的示例,而是可以指代不同且相异的实施例,以及潜在地相同的实施例。
Claims (24)
1.一种用于促进计算机总线通信的装置,所述装置包括:
端口,其包括:
多个接收器-发送器对,其中,所述多个接收器-发送器对中的接收器-发送器对中的每一个用于在链路的多个通道中的对应通道上发送和接收数据;
协议逻辑,其用于:
在所述接收器-发送器对中的与所述多个通道中的特定通道相关联的一个接收器-发送器对处检测从测试器设备接收的训练序列,其中,所述训练序列识别所述测试器设备对所述特定通道进行的测试以及所述多个通道的子集未被测试;
基于所述测试在与所述通道的子集相关联的所述多个接收器-发送器对的子集上发送符合性模式,以在所述测试期间在所述特定通道上产生串扰;以及
基于所述测试在所述特定通道上传送数据。
2.根据权利要求1所述的装置,其中,所述通道的子集将所述端口连接至另一设备。
3.根据权利要求2所述的装置,其中,所述另一设备包括符合性固定设备。
4.根据权利要求2所述的装置,其中,所述符合性模式是由所述另一设备在所述接收器-发送器对的子集中的一个接收器-发送器对上环回的。
5.根据权利要求4所述的装置,其中,近端串扰(NEXT)是由所述接收器-发送器对的子集通过发送所述符合性模式而在所述特定通道上产生的,并且远端串扰(FEXT)是由所述另一设备通过环回所述符合性模式而在所述特定通道上产生的。
6.根据权利要求1-5中任一项所述的装置,其中,所述符合性模式是在基于快速外围部件互连(PCIe)的协议中定义的。
7.根据权利要求1-6中任一项所述的装置,其中,所述协议逻辑用于:
进入针对所述链路的接收器检测状态;
从所述接收器检测状态转换到轮询状态,其中,所述训练序列是在所述轮询状态下从所述测试器设备接收的;以及
转换到环回状态,其中,所述测试是在所述环回状态下执行的。
8.根据权利要求7所述的装置,其中,所述接收器-发送器对的子集是通过自环回训练序列来训练的。
9.根据权利要求1-8中任一项所述的装置,其中,所述训练序列包括PCIe TS1有序集或PCIe TS2有序集中的一个。
10.根据权利要求1-9中任一项所述的装置,其中,所述测试是在完成均衡流之后执行的,以使所述链路的数据速率达到32.0GT/s。
11.根据权利要求1-10中任一项所述的装置,其中,所述测试器设备包括单通道比特错误率测试器(BERT)。
12.根据权利要求1-11中任一项所述的装置,其中,所述特定通道包括所述多个通道中除通道0以外的通道。
13.根据权利要求1-12中任一项所述的装置,其中,所述协议逻辑包括硬件电路。
14.根据权利要求1-12中任一项所述的装置,其中,所述协议逻辑包括软件逻辑。
15.一种用于促进计算机总线通信的方法,所述方法包括:
在链路的训练期间进入链路训练和状态状态机(LTSSM)的轮询状态,其中,所述链路包括多个通道,并且所述多个通道中的特定通道耦合到测试器设备;
在所述轮询状态期间在所述特定通道上从所述测试器设备接收训练序列;
基于在所述特定通道上接收的所述训练序列中的值,确定所述测试器设备对所述特定通道进行的测试;以及
基于所述测试在除所述特定通道之外的、所述多个通道的子集上发送符合性模式,其中,在所述通道的子集上发送所述符合性模式导致在所述测试期间在所述特定通道上产生串扰。
16.根据权利要求15所述的方法,还包括使用在所述通道的子集上产生的所述串扰来执行所述测试。
17.根据权利要求15所述的方法,其中,所述串扰包括近端串扰。
18.根据权利要求17所述的方法,其中,所述串扰还包括通过在所述通道的子集上环回所述符合性模式的远端串扰。
19.根据权利要求15-18中任一项所述的方法,其中,所述训练是基于基于PCIe的协议的。
20.一种系统,包括用于执行根据权利要求15-19中任一项所述的方法的单元。
21.根据权利要求21所述的系统,其中,所述单元包括其上存储有指令的机器可读存储介质,所述指令可执行以使机器执行根据权利要求15-19中任一项所述的方法。
22.一种系统,包括:
单通道比特错误率测试器(BERT)设备;
符合性固定设备;以及
包括端口的特定设备,其中,所述端口用于经由多个物理通道耦合到其他设备,并且所述端口包括状态机电路,所述状态机电路用于:
在所述多个通道中的特定通道上检测从所述BERT设备接收的训练序列,其中,所述训练序列识别所述BERT设备对所述特定通道进行的测试,并且所述多个通道的子集连接到所述符合性固定设备而不是所述BERT设备;
基于所述测试使得符合性模式在所述通道的子集上被发送,其中,在所述通道的子集上发送所述符合性模式导致在所述测试期间产生串扰以影响所述特定通道;以及
基于所述测试在所述特定通道上传送数据。
23.根据权利要求22所述的系统,其中,所述串扰包括近端串扰或远端串扰中的一个。
24.根据权利要求22所述的系统,其中,所述端口被配置为实现PCIe Gen 5链路。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862614874P | 2018-01-08 | 2018-01-08 | |
US62/614,874 | 2018-01-08 | ||
US15/990,372 US10853212B2 (en) | 2018-01-08 | 2018-05-25 | Cross-talk generation in a multi-lane link during lane testing |
US15/990,372 | 2018-05-25 | ||
CN201811492775.XA CN110034870A (zh) | 2018-01-08 | 2018-12-07 | 在通道测试期间在多通道链路中的串扰生成 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811492775.XA Division CN110034870A (zh) | 2018-01-08 | 2018-12-07 | 在通道测试期间在多通道链路中的串扰生成 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112583540A true CN112583540A (zh) | 2021-03-30 |
Family
ID=65229591
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811492775.XA Pending CN110034870A (zh) | 2018-01-08 | 2018-12-07 | 在通道测试期间在多通道链路中的串扰生成 |
CN202011581811.7A Pending CN112583540A (zh) | 2018-01-08 | 2018-12-07 | 在通道测试期间在多通道链路中的串扰生成 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811492775.XA Pending CN110034870A (zh) | 2018-01-08 | 2018-12-07 | 在通道测试期间在多通道链路中的串扰生成 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10853212B2 (zh) |
CN (2) | CN110034870A (zh) |
DE (1) | DE102018128569A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113868171A (zh) * | 2021-09-28 | 2021-12-31 | 上海兆芯集成电路有限公司 | 互连系统 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10606785B2 (en) | 2018-05-04 | 2020-03-31 | Intel Corporation | Flex bus protocol negotiation and enabling sequence |
US10715357B2 (en) | 2018-08-24 | 2020-07-14 | Intel Corporation | Adaptation of a transmit equalizer using management registers |
US11397701B2 (en) * | 2019-04-30 | 2022-07-26 | Intel Corporation | Retimer mechanisms for in-band link management |
JP7273670B2 (ja) * | 2019-09-18 | 2023-05-15 | キオクシア株式会社 | 半導体集積回路、受信装置、及び半導体集積回路の制御方法 |
US10727895B1 (en) * | 2019-09-27 | 2020-07-28 | Apple Inc. | Transceiver circuit having T-coil, inductive termination, and equalization |
US20210303427A1 (en) * | 2020-03-26 | 2021-09-30 | Rohde & Schwarz Gmbh & Co. Kg | System for testing a blockchain enabled device-under-test |
US11886312B2 (en) * | 2020-04-07 | 2024-01-30 | Intel Corporation | Characterizing error correlation based on error logging for computer buses |
US11734105B2 (en) * | 2020-07-06 | 2023-08-22 | International Business Machines Corporation | Efficient error reporting in a link interface |
US20210089418A1 (en) * | 2020-07-27 | 2021-03-25 | Intel Corporation | In-system validation of interconnects by error injection and measurement |
CN111917515B (zh) * | 2020-07-30 | 2023-08-01 | 牛芯半导体(深圳)有限公司 | 重定时器芯片的码流切换方法及装置 |
US11954360B2 (en) * | 2020-09-01 | 2024-04-09 | Intel Corporation | Technology to provide accurate training and per-bit deskew capability for high bandwidth memory input/output links |
JP7231589B2 (ja) * | 2020-09-04 | 2023-03-01 | アンリツ株式会社 | 誤り率測定装置および誤り率測定方法 |
CN113055247B (zh) * | 2021-03-11 | 2022-05-13 | 中国人民解放军国防科技大学 | 一种fpga的多通道高速收发器环回测试方法和装置 |
TWI748899B (zh) * | 2021-03-23 | 2021-12-01 | 瑞昱半導體股份有限公司 | 用來量測待測裝置的雜訊的方法以及量測設備 |
JP7399146B2 (ja) * | 2021-10-05 | 2023-12-15 | アンリツ株式会社 | 誤り検出装置および誤り検出方法 |
JP7432569B2 (ja) * | 2021-10-11 | 2024-02-16 | アンリツ株式会社 | 誤り検出装置および誤り検出方法 |
JP7508623B1 (ja) | 2023-03-20 | 2024-07-01 | アンリツ株式会社 | 誤り率測定装置及び誤り率測定方法 |
JP7508624B1 (ja) | 2023-03-20 | 2024-07-01 | アンリツ株式会社 | 誤り率測定装置及び誤り率測定方法 |
JP7508625B1 (ja) | 2023-03-20 | 2024-07-01 | アンリツ株式会社 | 誤り率測定装置及び誤り率測定方法 |
JP7500807B1 (ja) | 2023-03-20 | 2024-06-17 | アンリツ株式会社 | 誤り率測定装置及び誤り率測定方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020074691A1 (en) * | 1999-09-14 | 2002-06-20 | Robert M Mortellite | High speed method of making plastic film and nonwoven laminates |
US20040204912A1 (en) * | 2003-03-25 | 2004-10-14 | Nejedlo Jay J. | High performance serial bus testing methodology |
CN104995614A (zh) * | 2012-10-22 | 2015-10-21 | 英特尔公司 | 高性能互连物理层 |
CN106030543A (zh) * | 2014-03-28 | 2016-10-12 | 英特尔公司 | 干扰测试 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE494700T1 (de) * | 2001-03-02 | 2011-01-15 | Broadcom Corp | Verfahren und vorrichtung zur durchführung eines diagnostischen tests unter zuhilfenahme eines transceivers |
US8826092B2 (en) * | 2011-10-25 | 2014-09-02 | International Business Machines Corporation | Characterization and validation of processor links |
US9536626B2 (en) * | 2013-02-08 | 2017-01-03 | Intel Corporation | Memory subsystem I/O performance based on in-system empirical testing |
US10705157B2 (en) * | 2017-08-09 | 2020-07-07 | Microsoft Technology Licensing, Llc | Testing system for an electrical cable |
-
2018
- 2018-05-25 US US15/990,372 patent/US10853212B2/en active Active
- 2018-11-14 DE DE102018128569.8A patent/DE102018128569A1/de active Pending
- 2018-12-07 CN CN201811492775.XA patent/CN110034870A/zh active Pending
- 2018-12-07 CN CN202011581811.7A patent/CN112583540A/zh active Pending
-
2020
- 2020-11-30 US US17/106,946 patent/US11327861B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020074691A1 (en) * | 1999-09-14 | 2002-06-20 | Robert M Mortellite | High speed method of making plastic film and nonwoven laminates |
US20040204912A1 (en) * | 2003-03-25 | 2004-10-14 | Nejedlo Jay J. | High performance serial bus testing methodology |
CN104995614A (zh) * | 2012-10-22 | 2015-10-21 | 英特尔公司 | 高性能互连物理层 |
CN106030543A (zh) * | 2014-03-28 | 2016-10-12 | 英特尔公司 | 干扰测试 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113868171A (zh) * | 2021-09-28 | 2021-12-31 | 上海兆芯集成电路有限公司 | 互连系统 |
Also Published As
Publication number | Publication date |
---|---|
DE102018128569A1 (de) | 2019-07-11 |
US20190042380A1 (en) | 2019-02-07 |
US11327861B2 (en) | 2022-05-10 |
US10853212B2 (en) | 2020-12-01 |
CN110034870A (zh) | 2019-07-19 |
US20210081288A1 (en) | 2021-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11327861B2 (en) | Cross-talk generation in a multi-lane link during lane testing | |
US10795841B2 (en) | High performance interconnect physical layer | |
US10216661B2 (en) | High performance interconnect physical layer | |
US10747688B2 (en) | Low latency retimer | |
EP3035563B1 (en) | High performance optical repeater | |
US20200132760A1 (en) | Interconnect retimer enhancements | |
EP2779517B1 (en) | Apparatus, system, and method for improving equalization with a hardware driven algorithm | |
KR101985157B1 (ko) | 멀티칩 패키지 링크 | |
US20170019247A1 (en) | Redriver link testing | |
EP2778938A2 (en) | Apparatus, system, and method for performing link training and equalization | |
CN109643297B (zh) | 电压调制的控制通路 | |
WO2016153662A1 (en) | Pseudorandom bit sequences in an interconnect | |
US10025746B2 (en) | High performance interconnect | |
CN115858443A (zh) | 用于通道裕量和表征的硬件记录 | |
US20150278138A1 (en) | Pseudorandom sequence synchronization |
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 |