CN115185875A - 执行通信的装置和包括该装置的计算系统 - Google Patents
执行通信的装置和包括该装置的计算系统 Download PDFInfo
- Publication number
- CN115185875A CN115185875A CN202110782305.2A CN202110782305A CN115185875A CN 115185875 A CN115185875 A CN 115185875A CN 202110782305 A CN202110782305 A CN 202110782305A CN 115185875 A CN115185875 A CN 115185875A
- Authority
- CN
- China
- Prior art keywords
- margin
- port
- upstream
- computing system
- state information
- 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
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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
- G06F13/423—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with synchronous protocol
-
- 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/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI 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/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/1684—Details of memory controller using multiple buses
-
- 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/0024—Peripheral component interconnect [PCI]
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明涉及一种可以限制能够在上游端口中控制通路裕量操作的每个功能的性能的装置。该装置包括:上游端口,用于通过链路从位于上游路径上的一个或多个外部装置接收数据或向位于上游路径上的一个或多个外部装置发送数据,链路包括多个通路;通路裕量控制器,联接到上游端口并且用于经由上游端口向一个或多个外部装置发送用于请求通路裕量操作的裕量命令以获取裕量状态信息,裕量状态信息指示多个通路中的每一个的裕量,并且该通路裕量控制器控制上游端口从外部装置接收裕量状态信息;以及端口设置控制器,联接为与上游端口通信以接收裕量状态信息并且用于基于裕量状态信息来确定上游端口的设置。
Description
相关申请的交叉引用
本专利文件要求于2021年4月1日提交的申请号为10-2021-0042642的韩国专利申请的优先权和权益,该韩国专利申请通过引用全部并入本文。
技术领域
所公开的技术总体涉及一种电子装置,并且更特别地,涉及一种执行通信的装置和包括该装置的计算系统。
背景技术
诸如外围组件互连(PCI)的计算机总线用于将外围装置连接到计算机系统。高速PCI(PCIe)是在与PCI标准保持软件兼容性的同时,包括作为高速串行接口的物理通信层的高速计算机总线标准。
数据存储装置用于响应于来自诸如计算机或智能手机的主机装置的请求而存储或提供数据。这种数据存储装置可以包括用于存储数据的一个或多个存储器装置和用于控制该一个或多个存储器装置的存储器控制器。存储器装置可以分类为易失性存储器装置和非易失性存储器装置。
易失性存储器装置仅在装置通电时保持其数据并且在失电时丢失其数据。易失性存储器装置的示例可以包括静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。
非易失性存储器装置即使在不存在电力供应的情况下也保持所存储的数据,因此当失电时不丢失其数据。非易失性存储器装置的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEROM)和闪速存储器。
发明内容
所公开的技术的实施例涉及一种能够控制上游端口中的通路裕量操作的高速外围组件互连(PCIe)装置以及包括该PCIe装置的计算系统。
根据所公开技术的一个方面,提供一种执行计算系统中的组件之间的通信的装置,该装置包括:上游端口,被构造为通过链路从位于上游路径上的一个或多个外部装置接收数据或向位于上游路径上的一个或多个外部装置发送数据,链路包括多个通路,多个通路被构造为包括用于接收和发送数据的差分信号对;通路裕量控制器,联接到上游端口并且被配置为经由上游端口向一个或多个外部装置发送用于请求通路裕量操作的裕量命令,以获取裕量状态信息,该裕量状态信息指示多个通路中的每一个的裕量,并且该通路裕量控制器控制上游端口从外部装置接收裕量状态信息;以及端口设置控制器,联接为与上游端口通信以接收裕量状态信息并且可操作成基于裕量状态信息来确定上游端口的设置。
基于所公开技术的另一方面,提供一种计算系统,该计算系统包括:第一装置,被构造为包括下游端口并且根据高速外围组件互连(PCIe)标准经由下游端口来接收和发送数据;以及第二装置,被构造为包括通过链路而连接到第一装置的下游端口的上游端口,链路包括多个通路,其中第二装置被配置为:根据高速外围组件互连(PCIe)标准经由上游端口通过第一装置来接收和发送数据,通过上游端口来向第一装置发送裕量命令,接收裕量状态信息作为对来自第一装置的裕量命令的响应,该裕量状态信息指示多个通路中的每一个的裕量,并且基于裕量状态信息来确定上游端口的设置。
基于所公开技术的又一方面,提供一种计算系统,该计算系统包括:下游端口,被构造为使计算系统的组件在下游路径中互连;以及上游端口,被构造为使计算系统的组件在上游路径中互连并且通过链路来连接到下游端口,链路包括多个通路,其中下游端口和上游端口中的每一个被配置为:生成用于请求通路裕量操作的裕量命令以获取裕量状态信息,该裕量状态信息指示多个通路中的每一个的裕量,并且向上游端口或下游端口发送裕量命令或从下游端口接收裕量命令。
附图说明
图1是示出基于所公开技术的实施例的计算系统的示例的示图。
图2是示出基于所公开技术的实施例的高速外围组件互连(PCIe)装置的示图。
图3是示出基于所公开技术的实施例的PCIe接口的示图。
图4是示出基于所公开技术的实施例的发送器、接收器和通路(lane)的示图。
图5是示出基于所公开技术的实施例的端口的示图。
图6是示出基于所公开技术的实施例的包括一个或多个重定时器的互连结构的示图。
图7是示出基于所公开技术的实施例的包括PCIe装置的计算系统的示图。
图8是示出基于所公开技术的实施例的用于确定由上游端口控制的发送器的设置的操作的示图。
图9是示出基于所公开技术的实施例的用于确定由上游端口控制的接收器的设置的操作的示图。
图10是示出基于所公开技术的实施例的用于确定由下游端口控制的发送器的设置的操作的示图。
图11是示出基于所公开技术的实施例的确定上游端口的设置的方法的流程图。
图12是示出基于所公开技术的实施例的确定接收器的设置的方法的流程图。
图13是示出基于所公开技术的实施例的确定下游端口的设置的方法的流程图。
具体实施方式
本专利文件中所公开的技术可以以一些实施例实施以提供数据存储装置和数据存储方法。本文中所公开的具体结构或功能描述仅是说明性的以用于描述根据所公开技术的构思的实施例。根据所公开技术的构思的实施例可以以各种形式来实施,并且不应被解释为限于本文中阐述的实施例。
图1是示出基于所公开技术的实施例的计算系统的示例的示图。
参照图1,计算系统100可以包括中央处理单元(CPU)110、根联合体120、存储器130、交换机140、高速外围组件互连(PCIe)端点150_1至150_3、传统端点(legacyendpoints)160_1和160_2,以及PCIe桥170。
计算系统100可以是支持利用PCIe接口而通信的电子装置。计算系统100可以是PC、膝上型计算机或移动计算装置,并且包括扩展卡、扩展板、适配器卡、插卡或附属卡。而且,计算系统100可以包括印刷电路板(PCB),PCB可以插入到计算系统100的母板上的电连接器或扩展槽中以便通过扩展总线向计算系统100提供附加功能。而且,计算系统100可以包括诸如固态驱动器(SSD)的存储装置,并且包括图形卡、网卡、USB卡等。
CPU 110可以电连接到计算系统100的每个组件,并且控制计算系统100的每个操作。具体地,CPU 110可以通过驱动操作系统或应用程序来控制连接到CPU 110的硬件或软件的组件,并且执行各种数据处理和计算。而且,CPU 110可以运行用于控制计算系统100的操作的软件或应用程序。
根联合体120可以是PCIe互连架构中的根集线器、控制器集线器或根控制器。例如,根联合体120可以包括芯片组、存储器控制器集线器(MCH)、北桥、互连控制器集线器(ICH)、南桥和根控制器/集线器。而且,根联合体120可以将CPU 110和存储器130连接到输入/输出(I/O)分层结构。根联合体120可以支持对等(P2P)路由。根联合体120可以包括至少一个主桥和至少一个根端口。根联合体120可以支持一个或多个PCIe端口。在一些实施方案中,端口可以指示PCIe组件和链路之间的接口并且包括差分发送器和接收器。在一些实施方案中,上游端口是指向根联合体方向的端口,而下游端口是指向远离根联合体方向的端口。
存储器130可以存储计算系统100的操作所需的数据、命令或程序代码。在一些实施方案中,存储器130可以存储用于运行一个或多个操作系统(OS)和一个或多个虚拟机(VM)的程序代码以及用于运行用于管理VM的虚拟化中间层(VI)的程序代码。而且,存储器130可以被实施为诸如DRAM或SRAM的易失性存储器装置。
交换机140可以向上游或下游路由数据包或消息。具体地,交换机140可以将数据包或消息从PCIe端点(例如,150_1)向上游路由到朝向根联合体120的层。而且,交换机140可以将数据包或消息从根联合体120向下游路由到朝向PCIe端点(例如,150_2)的层。
交换机140可以包括多个虚拟PCI至PCI桥装置的逻辑组件。可以连接到交换机140的装置可以包括连接到诸如以下的电子系统的内部装置或组件或外部装置或组件:网络接口控制器(NIC)、插卡、音频处理器、网络处理器、硬盘驱动器、存储装置、CD/DVDROM、监视器、打印机、鼠标、键盘、路由器、移动存储装置、火线装置、通用串行总线(USB)、扫描仪和其他输入/输出装置。尽管未详细示出,但该装置可以包括支持传统版本或其他版本的PCI装置的PCIe到PCI/PCI-X桥。
在一些实施方案中,根联合体120可以连接到端点。端点可以表示可以成为PCIe事务的请求端(requester)或完成端(completer)的功能类型。此处,请求端可以包括引起PCIe架构中的事务的装置,而完成端可以包括被请求端寻址或锁定的装置。端点可以被分类为传统端点和PCIe端点。在一些实施方案中,端点是除根联合体和交换机之外的、作为PCIe事务的请求端或完成端的装置。
PCIe端点150_1至150_3以及传统端点160_1和160_2可以作为PCIe事务的请求端或完成端。通过PCIe端点150_1至150_3和传统端点160_1和160_2传达的事务层数据包(TLP)提供配置空间标头(header)。而且,PCIe端点150_1至150_3以及传统端点160_1和160_2作为完成端而提供配置请求。
可以基于存储器事务的大小来对PCIe端点150_1到150_3以及传统端点160_1和160_2进行划分。例如,当端点支持超过4GB的存储器事务时,可以将端点归类为PCIe端点150_1至150_3。当端点不支持超过4GB的存储器事务时,端点可以是传统端点160_1和160_2。PCIe端点150_1至150_3不生成任意输入/输出请求,而传统端点160_1和160_2可以提供或生成输入/输出请求。另外,PCIe端点150_3可以与根联合体120通信TPL。另外,PCI/PCI-X可以通过PCIe桥170与根联合体120通信TLP。PCIe端点150_1和150_2或传统端点160_1和160_2可以与交换机140通信TLP。
PCIe端点150_1至150_3可以是具有类型00h配置空间标头的功能端。PCIe端点150_1至150_3作为完成端可以支持配置请求。可以制作PCIe兼容软件驱动器和应用程序,使得当PCIe端点150_1至150_3被访问时不使用任意锁定语义。作为存储器事务的请求端而操作的PCIe端点150_1至150_3可以生成大于4GB的地址。当中断资源被请求时,PCIe端点150_1至150_3可能需要支持消息信号中断(MSI)、MSI-X或它们两者。当实施MSI时,PCIe端点150_1至150_3可以支持64位消息地址版本的MSI功能结构。基地址寄存器请求的最小存储器地址范围可以是128字节。PCIe端点150_1至150_3可以存在于从根联合体120开始的分层结构域中的一个中。
传统端点160_1和160_2可以是包括类型00h配置空间标头的功能端。传统端点160_1和160_2作为完成端可以支持配置请求。传统端点160_1和160_2作为完成端可以支持I/O请求。传统端点160_1和160_2可以接收对位置80h和84h中的一个或两者的I/O请求,而不管相应端点的I/O解码配置如何。传统端点160_1和160_2可以生成I/O请求。传统端点160_1和160_2可以包括可扩展配置空间能力。作为存储器事务的请求端而操作的传统端点160_1和160_2没有必要生成具有4GB或更多空间的地址。当中断资源被请求时,传统端点160_1和160_2需要支持MSI、MSI-X或它们两者。当实施MSI时,传统端点160_1和160_2可以支持32位或64位消息地址版本的MSI功能结构。传统端点160_1和160_2可以支持针对请求存储器资源的基地址寄存器的32位地址规范。传统端点160_1和160_2可以存在于从根联合体120开始的分层结构域中的一个中。
图2是示出基于所公开技术的实施例的PCIe装置的示图。
参照图2,PCIe装置可以包括PCIe接口。在一些实施方案中,PCIe装置可以是支持利用PCIe接口而发送/接收的电子装置。例如,第一PCIe装置200-1或第二PCIe装置200-2可以是图1所示的根联合体120、交换机140、PCIe端点150_1至150_3、传统端点160_1和160_2以及PCIe桥170中的任意一个。
而且,第一PCIe装置200-1或第二PCIe装置200-2可以通过使用第一PCIe接口210-1或第二PCIe接口210-2来执行通信。具体地,第一PCIe装置200-1可以通过使用第一PCIe接口210-1将待从第二PCIe装置200-2发送的数据转换为适合通信的协议。另外,第一PCIe装置200-1和第二PCIe装置200-2可以形成链路。第一PCIe装置200-1和第二PCIe装置200-2可以通过形成的链路来相互通信。例如,第一PCIe装置200-1或第二PCIe装置200-2可以通过链路来发送/接收数据包。
图3是示出基于所公开技术的实施例的PCIe接口的示图。
参照图3,示出第一PCIe接口210-1和第二PCIe接口210-2。可以以相同的结构形成第一PCIe接口210-1和第二PCIe接口210-2,因此,将主要描述第一PCIe接口210-1。
第一PCIe接口210-1中包括的PCIe层可以包括三个独立的逻辑层。例如,第一PCIe接口210-1可以包括事务层、数据链路层和物理层。层中的每个可以包括两个部分。一个部分可以处理外部(或经发送的)信息,而另一部分可以处理内部(或经接收的)信息。而且,第一PCIe接口210-1可以使用数据包在其他PCIe接口之间传达信息。
PCIe接口结构中的上层可以是事务层。事务层可以汇集和分解事务层数据包(TLP)。而且,事务层可以实施拆分事务,这允许在目标系统汇集响应所需的数据时通过链路来传输另一流量。在一些实施方案中,四个事务地址空间可以包括配置地址空间、存储器地址空间、输入/输出地址空间和消息地址空间。存储器空间事务可以包括将数据传输到存储器映射的位置的写入请求/从存储器映射的位置传输数据的读取请求中的一个或多个。在一个示例中,存储器空间事务可以使用两种不同的地址格式,例如,诸如32位地址的短地址格式或诸如64位地址的长地址格式。配置空间事务可以用于访问PCIe装置的配置空间。配置空间事务可以包括读取请求和写入请求。可以将消息空间事务(或消息)定义成支持PCIe装置之间的带内通信。
事务层可以存储链路配置信息或其他。而且,事务层可以生成TLP,或将接收到的TLP转换为有效载荷或状态信息。
PCIe接口结构中的中间层可以是数据链路层,并且数据链路层可以执行事务层和物理层之间的中间阶段的功能。数据链路层的主要功能可以包括链路管理以及包括错误检测和错误校正的数据完整性。具体地,数据链路层的发送侧可以接收在事务层汇集的TLP,提供数据保护码,或者计算TLP序列号。而且,数据链路层的发送侧可以向物理层发送数据保护码和TLP序列号,从而通过链路来发送数据保护码和TLP序列号。数据链路层的接收侧可以检查从物理层接收的TLP的数据完整性,并且向事务层发送TLP以执行附加处理。
物理层可以包括用于接口操作的电路。该电路可以包括驱动器、输入缓冲器、串并联转换电路、并串联转换电路、锁相环(PLL)和阻抗匹配电路。
而且,物理层可以包括物理地向外部PCIe装置发送数据包的逻辑子层(logicalsub-block)和电气子层(electrical sub-block)。逻辑子层可以执行物理层的数字功能所需的作用。关于这一点,逻辑子层可以包括发送部分和接收部分,发送部分用于准备并且发送待由逻辑子层发送的信息,接收部分用于识别和准备在将接收到的信息传输到数据链路层之前接收到的信息。物理层可以包括发送器和接收器。当发送器被逻辑子层序列化时,发送器可以接收发送到外部装置的符号。另外,接收器可以从外部装置接收序列化的符号,并且将接收到的符号转换为比特流。可以对于比特流进行反序列化以供应给逻辑子层。例如,物理层可以将从数据链路层接收的TLP转换为序列化的格式,并且将从外部装置接收的数据包转换为反序列化的格式。而且,物理层可以包括与接口初始化和维护相关联的逻辑功能。
尽管图3中示例性地示出第一PCIe接口210-1和第二PCIe接口210-2的结构,但是第一PCIe接口210-1和第二PCIe接口210-2的结构可以包括诸如快速路径互连结构、下一代高性能计算互连结构或其他分层结构的任意形式。
图4是示出基于所公开的技术的实施例的发送器、接收器和通路的示图。
参照图4,示出第一发送器TX1、第二发送器TX2、第一接收器RX1和第二接收器RX2。通路可以包括路径,该路径包括差分驱动的信号对。在一些实施方案中,通路可以包括两个差分信号对,一对用于接收数据而另一对用于发送数据。例如,通路可以包括被配置为发送的发送路径对和被配置为接收的接收路径对。PCIe装置可以包括用于向另一PCIe装置发送数据的发送逻辑和用于从另一PCIe装置接收数据的接收逻辑。例如,通路可以包括连接到第一发送器TX1的两条发送路径和连接到第一接收器RX1的两条接收路径。
发送路径可以包括诸如以下用于发送数据的任意路径:发送线、铜线、光线、无线通信信道、红外通信链路或其他通信路径。另外,虽然接收路径用于接收,但是它可以包括与发送路径相同地实施的路径。
两个PCIe装置,例如第一PCIe装置200-1和第二PCIe装置200-2之间的连接件可以是链路。链路可以支持一个或多个通路。例如,链路可以包括多个通路。另外,每个通路可以包括一组差分信号对(一对用于发送,一对用于接收)。差分信号可以包括具有相同频率和相同振幅但具有彼此相反的相位的信号对。例如,当第一信号处于第一信号从0切换到V+的上升沿时,第二信号可以处于第二信号从0切换到V-的下降沿。PCIe装置可以通过利用差分信号来使用信号完整性,例如更令人满意的电气特性,诸如交叉耦合、电压过冲/欠冲和振铃。PCIe装置可以更快速地调整发送频率。而且,链路可以包括多个通路以调整带宽。例如,链路可以包括1通路、2通路、4通路、8通路、12通路、32通路、64通路等。
图5是示出基于所公开技术的实施例的端口的示图。
参照图5,示出第一PCIe装置200-1和第二PCIe装置200-2中分别包括的下游端口215-1和上游端口215-2。
在一些实施方案中,第一PCIe装置200-1可以是比第二PCIe装置200-2更高的层,并且数据移动和发送到上层可以被称为上游。相反,数据移动和发送到下层可以被称为下游。例如,参照图1,交换机140可以支持上游和下游的路由。具体地,上游可以是将数据包或消息从PCIe端点(例如,150_1)向上游路由到朝向根联合体120的层,并且下游可以是将数据包或消息从根联合体120向下游路由到朝向PCIe端点(例如,150_2)的层。
在一些实施方案中,包括下游端口215-1的第一PCIe装置200-1可以被称为“上游组件”。上游组件可以包括图1所示的根联合体120或交换机140。另外,包括上游端口215-2的第二PCIe装置200-2可以被称为“下游组件”。下游组件可以表示图1所示的交换机140、PCIe端点150_1至150_3、传统端点160_1和160_2以及PCIe桥170中的任意一个。
下游端口215-1和上游端口215-2中的每一个可以包括发送器Tx、接收器Rx和锁相环(PLL)电路。PLL电路可以通过使用从时钟信号发生器CLK GEN提供的时钟信号来生成待提供给发送器Tx或接收器Rx的时钟信号。PLL电路可以通过将从时钟信号发生器CLK GEN接收到的信号相乘来生成具有改变频率的时钟信号。例如,PLL电路可以将具有100MHz频率的参考时钟信号REFCLK与具有2.5GHz频率的时钟信号相乘。发送器Tx可以通过使用PLL电路的输出信号来将并行数据信号转换为串行数据信号,并且将串行数据信号发送到外部装置,例如外部PCIe装置。接收器Rx可以接收从外部装置发送的串行数据信号,并且通过使用PLL电路的输出信号来生成用于恢复接收到的串行数据信号的时钟信号和用于将恢复的串行数据信号转换为并行数据信号的时钟信号。时钟信号发生器CLK GEN可以生成用于PCIe接口的操作的参考时钟信号REFCLK。PCIe接口的操作可以是与外部PCIe装置的通信。
图6是示出基于所公开技术的实施例的包括一个或多个重定时器的互连结构的示图。
参照图6,互连结构可以包括下游端口、上游端口以及一个或多个重定时器。下游端口可以是上游组件中包括的端口,并且上游端口可以是下游组件中包括的端口。下游端口可以使计算系统的组件在下游路径中互连。例如,下游端口可以表示设置在上游组件中以提供用于从上游组件到下游组件的发送的接口的端口。上游端口可以使计算系统的组件在上游路径中互连。例如,上游端口可以表示设置在下游组件中以提供用于从下游组件到上游组件的发送的接口的端口。由于互连以高速运行,所以一个或多个重定时器可以连接在下游端口和上游端口之间。
重定时器可以作为在物理层中操作以精细地调谐来自下游端口和上游端口的信号的信号转发器(repeater)。重定时器的主要功能可以是信号重定时。重定时器可以通过使用本地时钟和新的发送均衡电路来恢复接收信号并且重新发送经恢复的信号。
在一些实施方案中,重定时器可以包括两个伪端口。伪端口可以动态地确定下游/上游方向中的每一个。定位在下游方向的伪端口可以是下游伪端口。定位在上游方向的伪端口可以是上游伪端口。
下游端口可以包括发送器Tx(A)和接收器Rx(A)。重定时器X可以包括发送器Tx(B)和Tx(C)以及接收器Rx(B)和Rx(C)。重定时器Y可以包括发送器Tx(D)和Tx(E)以及接收器Rx(D)和Rx(E)。上游端口可以包括发送器Tx(F)和接收器Rx(F)。
在一些实施方案中,数据或信号从下游端口移动到上游端口所通过的路径可以被定义为下游路径。在下游路径上,接收器Rx(B)可以连接到发送器Tx(A),并且向发送器Tx(C)转发数据和信号。接收器Rx(D)可以连接到发送器Tx(C),并且向发送器Tx(E)转发数据和信号。接收器Rx(F)可以连接到发送器Tx(E)。
在一些实施方案中,数据或信号从上游端口移动到下游端口所通过的路径可以被定义为上游路径。在上游路径上,接收器Rx(E)可以连接到发送器Tx(F),并且向发送器Tx(D)转发数据和信号。接收器Rx(C)可以连接到发送器Tx(D),并且向发送器Tx(B)转发数据和信号。接收器Rx(A)可以连接到发送器Tx(B)。
下游端口、上游端口和重定时器可以通过链路连接。在一些实施方案中,下游端口可以通过通路裕量操作来获取链路中包括的多个通路的裕量状态信息。例如,下游端口可以向重定时器X、重定时器Y和上游端口发送裕量命令,重定时器X、重定时器Y和上游端口可以响应于裕量命令而向下游端口提供裕量状态信息。可以通过控制跳过有序集来发送裕量命令以及对裕量命令的响应信号。例如,下游端口可以通过控制跳过有序集来提供裕量命令。而且,重定时器X、重定时器Y和上游端口可以通过控制跳过有序集来提供对裕量命令的响应信号。
可以对所有端口执行通路裕量操作。计算系统可以通过在接收裕量命令的端口中包括的接收器的通路裕量操作来获取相应接收器中的裕量状态信息。在一些实施方案中,裕量状态信息可以包括与接收器位置相关联的电压和时间。在一个示例中,裕量状态信息可以包括关于当前接收器位置处的电压和时序的裕量信息。当接收到裕量命令时、当链路以16.0GT/s或更高的数据速度运行时、以及当链路处于L0状态时,可以执行接收器的通路裕量操作。
通路裕量操作可以包括发出命令,该命令指示接收器通过关于时序的几个步骤来在电压时序图中将采样点移动到左边或右边,或者通过关于电压的几个步骤来在电压时序图中将采样点移动到顶部或底部。接收器可以报告裕量状态信息作为对裕量命令的响应。裕量命令可以包括指示与通路裕量操作相关联的各种操作的命令。
计算系统可以使用每个端口中的裕量通路控制寄存器和裕量通路状态寄存器来获得关于接收器的裕量状态信息。下游端口可以通过对裕量通路控制寄存器的适当位执行记录来控制接收器的通路裕量操作。而且,下游端口可以通过裕量通路状态寄存器来更新接收器的裕量状态信息。
传统的通路裕量操作可以仅由下游端口控制。传统的上游端口无法控制通路裕量操作,并且只可以提供通过通路裕量操作获取的裕量状态信息。另外,物理层的特性可以根据一种平台和是否存在重定时器而改变。物理层的发送器和接收器的设置也可以改变。
可以在一些实施例中实施所公开技术以通过在上游端口中控制通路裕量操作来调谐发送器和接收器的设置。
图7是示出基于所公开技术的实施例的包括PCIe装置的计算系统的示图。
基于所公开技术的实施例的计算系统700可以包括外部装置710和PCIe装置720。
外部装置710可以使用通过链路而连接到PCIe装置720的PCIe接口。链路可以包括多个通路。虽然图7仅示出一个外部装置710,但是多于一个的外部装置710可以连接到PCIe装置720。
在一些实施方案中,外部装置710可以是位于上游路径上的装置。例如,外部装置710可以是上游组件或重定时器。外部装置710可以是属于比PCIe装置720更高的层的装置。因此,信号从外部装置710移动到PCIe装置720的方向可以被定义为下游,信号从PCIe装置720移动到外部装置710的方向可以被定义为上游。
在一些实施方案中,外部装置710可以包括下游端口。下游端口可以包括发送器Tx1和接收器Rx1。外部装置710中包括的发送器Tx1可以连接到PCIe装置720中包括的接收器Rx2,并且外部装置710中包括的接收器Rx1可以连接到PCIe装置720中包括的发送器Tx2。
在一些实施方案中,PCIe装置720可以是位于下游路径上的下游组件。
PCIe装置720可以包括上游端口721、通路裕量控制器722、端口设置控制器723、裕量通路控制寄存器724和裕量通路状态寄存器725。
上游端口721可以通过链路来连接到外部装置710。具体地,上游端口721可以与外部装置710中包括的下游端口通信数据或信号。上游端口721可以包括发送器Tx2和接收器Rx2。
通路裕量控制器722可以控制通路裕量操作。通路裕量控制器722可以控制上游端口721向外部装置710发送用于请求通路裕量操作的裕量命令。上游端口721可以生成裕量命令并且通过发送器来发送裕量命令。
通路裕量操作可以是获取链路中包括的多个通路中的每一个的裕量状态信息的操作。裕量状态信息可以包括眼图裕量(eye margin)信息和错误信息中的至少一个。眼图裕量信息可以包括关于通过多个通路发送/接收的信号的质量的指示。错误信息可以包括与通路裕量操作中发生的错误相关联的信息。例如,裕量状态信息可以包括时序步数、最大时序偏移、电压步数、最大电压偏移、电压采样率、时序采样率、最大通路数量(例如,可以同时执行通路裕量操作的最大通路数量)、单独的错误采样器(例如,由于通路裕量操作而导致的任何错误是否已经发生)、错误数量(例如,在通路裕量操作期间已经发生的错误数量)、样本数量(例如,有裕量位的数量)等。
在一些实施方案中,可以通过控制跳过有序集来发送裕量命令和裕量状态信息。
可以在时钟容差补偿中使用跳过有序集。具体地,跳过有序集可以用于补偿在链路的两端处的比特率的频率差。执行补偿的弹性缓冲器可以包括在接收侧的物理层的逻辑子层中。可以基于预先设计的发送和接收时钟频率差的绝对值来设置跳过有序集的发送间隔。
弹性缓冲器可以临时存储待发送的数据或临时存储待接收的数据。具体地,弹性缓冲器可以包括在发送侧和接收侧中的每个中。弹性缓冲器可以临时存储跳过有序集和数据块。
在一些实施方案中,通路裕量控制器722可以基于跳过有序集的发送历史来增加/减少跳过有序集的发送间隔。发送历史可以包括跳过有序集的发送间隔、与发送间隔的变化或发送间隔相对应的恢复状态进入频率等。例如,通路裕量控制器722可以计算与发送间隔相对应的恢复状态进入频率,并且基于恢复状态进入频率来增加/减少跳过有序集的发送间隔。在另一示例中,当在预定时间内没有接收到对恢复状态进入的请求时,通路裕量控制器722可以固定跳过有序集的发送间隔。
而且,通路裕量控制器722可以基于外部装置710中包括的弹性缓冲器的状态来增加/减少跳过有序集的发送间隔。例如,发送侧和接收侧以不同的频率运行,可能出现上溢或下溢的错误。当出现上溢或下溢的错误时,计算系统700可以进入恢复状态。例如,PCIe装置之间的通信可能挂起,并且PCIe系统中可能出现性能大幅劣化和数据丢失的问题。因此,通路裕量控制器722可以通过裕量命令来请求表示外部装置710中包括的弹性缓冲器的状态的信息。具体地,通路裕量控制器722可以通过向外部装置710发送具有供应商定义类型的裕量命令来向外部装置710请求表示弹性缓冲器的状态的信息。通路裕量控制器722可以基于接收到的外部装置710的弹性缓冲器的状态来增加/减少跳过有序集的发送间隔。
在一些实施方案中,外部装置710可以响应于裕量命令而执行通路裕量操作。外部装置710可以通过通路裕量操作来获取裕量状态信息,并且存储所获取的裕量状态信息。另外,通路裕量控制器722可以控制上游端口721以从外部装置710接收裕量状态信息。上游端口721可以通过接收器来接收裕量状态信息。
端口设置控制器723可以基于裕量状态信息来确定上游端口721的设置。端口设置控制器723可以通过基于裕量状态信息而控制上游端口721中包括的发送器和接收器的设置来调整通过链路而发送/接收的信号的特性。例如,端口设置控制器723可以控制连接到每个通路的发送器和接收器的设置,以提高通过通路发送/接收的信号的质量并且满足特定的要求。
裕量通路控制寄存器724可以存储与裕量命令相关联的信息。例如,裕量通路控制寄存器724可以包括接收器编号、裕量类型、使用模式、裕量有效载荷等。接收器编号可以是用于识别接收裕量命令的接收器的信息。裕量类型可以是表示裕量的类型的信息。使用模式可以是表示是否将执行通路裕量操作的信息。裕量有效载荷可以是表示将通过裕量命令指示的操作的信息。
裕量通路状态寄存器725可以存储裕量状态信息。例如,裕量通路状态寄存器725可以包括接收器编号状态、裕量类型状态、使用模式状态、裕量有效载荷状态等。
通路裕量控制器722可以通过使用裕量通路控制寄存器724和裕量通路状态寄存器725来控制计算系统700的通路裕量操作。例如,通路裕量控制器722可以将与裕量命令相关联的信息记录在裕量通路控制寄存器724中。而且,通路裕量控制器722可以将裕量状态信息记录在裕量通路状态寄存器725中。
在一些实施方案中,通路裕量控制器722可以控制上游端口721向外部装置710发送发送器设置请求。发送器设置请求可以用于请求确定外部装置710中包括的发送器的设置的操作。例如,可以基于外部装置710中包括的发送器Tx1的设置来确定上游端口721中包括的接收器Rx2的设置。当在接收器Rx2中频繁检测到错误或当根据发送器Tx1的设置的接收器Rx2的设置不满足系统的所需值时,必须执行更新接收器Rx2的设置的操作。PCIe装置720可以通过向外部装置710发送发送器设置请求来允许重新确定发送器Tx1的设置。例如,PCIe装置720可以通过发送器设置请求来引起外部装置710的发送器设置操作。在一些实施方案中,在接收用于请求外部装置710提供发送器设置信息的发送器设置请求时,外部装置710可以执行发送器设置操作以获得和/或提供发送器设置信息。
外部装置710可以基于发送器设置请求来确定发送器Tx1的设置。随后,PCIe装置720可以控制上游端口721从外部装置710接收发送器设置信息。发送器设置信息可以包括与外部装置710中包括的发送器的设置相关联的信息。例如,发送器设置信息可以包括与发送器的设置相关联的提示。PCIe装置720可以基于发送器设置信息来确定上游端口721中包括的接收器的设置。
在一些实施方案中,可以通过具有供应商定义类型的裕量命令来发送发送器设置请求和发送器设置信息。
图8是示出基于所公开技术的实施例的用于确定由上游端口控制的发送器的设置的操作的示图。
参照图8,计算系统800可以包括第一PCIe装置810-1、重定时器810-2和810-3以及第二PCIe装置820。第一PCIe装置800-1以及重定时器810-2和810-3可以表示图7所示的外部装置710。第二PCIe装置820可以表示图7所示的PCIe装置720。
在一些实施方案中,第一PCIe装置810-1可以包括下游端口。下游端口可以包括发送器Tx(A)和接收器Rx(A)。重定时器X 810-2可以包括发送器Tx(B)和Tx(C)以及接收器Rx(B)和Rx(C)。重定时器Y 810-3可以包括发送器Tx(D)和Tx(E)以及接收器Rx(D)和Rx(E)。第二PCIe装置820可以包括上游端口。上游端口可以通过链路来连接到下游端口。上游端口可以包括发送器Tx(F)和接收器Rx(F)。
在一些实施方案中,重定时器810-2和810-3可以连接在第一PCIe装置810-1与第二PCIe装置820之间。
在一些实施方案中,重定时器810-2和810-3中的每一个可以包括下游伪端口。例如,重定时器X 810-2的下游伪端口可以包括发送器Tx(C)和接收器Rx(C)。重定时器Y 810-3的下游伪端口可以包括发送器Tx(E)和接收器Rx(E)。而且,重定时器810-2和810-3中的每个可以包括上游伪端口。例如,重定时器X 810-2的上游伪端口可以包括发送器Tx(B)和接收器Rx(B)。重定时器Y 810-3的上游伪端口可以包括发送器Tx(D)和接收器Rx(D)。
在一些实施方案中,数据或信号从下游端口移动到上游端口所通过的路径可以被定义为下游路径。在下游路径上,接收器Rx(B)可以连接到发送器Tx(A),并且向发送器TX(C)转发数据和信号。接收器Rx(D)可以连接到发送器Tx(C),并且向发送器Tx(E)转发数据和信号。接收器Rx(F)可以连接到发送器Tx(E)。
重定时器810-2和810-3的下游伪端口和上游伪端口可以通过链路连接到上游端口和下游端口。
在一些实施方案中,数据或信号从上游端口移动到下游端口所通过的路径可以被定义为上游路径。在上游路径上,接收器Rx(E)可以连接到发送器Tx(F),并且向发送器Tx(D)转发数据和信号。接收器Rx(C)可以连接到发送器Tx(D),并且向发送器Tx(B)转发数据和信号。接收器Rx(A)可以连接到发送器Tx(B)。
在一些实施方案中,第一PCIe装置810-1和第二PCIe装置820中的每一个可以包括裕量通路控制寄存器和裕量通路状态寄存器。第一PCIe装置810-1和第二PCIe装置820中的每一个可以将与裕量命令相关联的信息记录在裕量通路控制寄存器中,并且将裕量状态信息记录在裕量通路状态寄存器中。
在一些实施方案中,第二PCIe装置820可以通过上游端口来向第一PCIe装置810-1以及重定时器810-2和810-3发送裕量命令。例如,上游端口可以生成裕量命令。裕量命令可以包括用于识别第一PCIe装置810-1、第二PCIe装置820以及重定时器810-2和810-3中包括的接收器中的任意一个的信息。上游端口可以通过控制跳过有序集向第一PCIe装置810-1以及重定时器810-2和810-3提供裕量命令。
第一PCIe装置810-1以及重定时器810-2和810-3可以响应于裕量命令而获取多个通路中的每一个的裕量状态信息。例如,第一PCIe装置810-1以及重定时器810-2和810-3可以通过执行与裕量命令相对应的通路裕量操作来获取裕量状态信息。第一PCIe装置810-1以及重定时器810-2和810-3可以响应于裕量命令而通过控制跳过有序集向第二PCIe装置820发送裕量状态信息。例如,下游端口可以响应于裕量命令而通过控制跳过有序集向上游端口发送裕量状态信息。
另外,第二PCIe装置820可以从第一PCIe装置810-1以及重定时器810-2和810-3接收裕量状态信息作为对裕量命令的响应。例如,上游端口可以从下游端口接收裕量状态信息作为对裕量命令的响应。第二PCIe装置820可以基于裕量状态信息来确定上游端口中包括的发送器Tx(F)的设置。随后,第一PCIe装置810-1可以基于由第二PCIe装置820确定的发送器Tx(F)的设置来确定下游端口中包括的接收器Rx(A)的设置。另外,重定时器810-2和810-3可以基于由第二PCIe装置820确定的发送器Tx(F)的设置来确定接收器Rx(C)和接收器Rx(E)的设置。
因此,基于所公开技术的实施例,通过上游端口来控制通路裕量操作,从而可以实时调谐上游端口中包括的发送器和接收器的设置。因此,可以优化链路的状态。
图9是示出基于所公开技术的实施例的用于确定由上游端口控制的接收器的设置的操作的示图。
参照图9,计算系统800可以包括第一PCIe装置810-1、重定时器810-2和810-3以及第二PCIe装置820。第一PCIe装置800-1以及重定时器810-2和810-3可以表示图7所示的外部装置710。第二PCIe装置820可以表示图7所示的PCIe装置720。
在一些实施方案中,第一PCIe装置810-1可以包括下游端口。下游端口可以包括发送器Tx(A)和接收器Rx(A)。重定时器X 810-2可以包括发送器Tx(B)和Tx(C)以及接收器Rx(B)和Rx(C)。重定时器Y 810-3可以包括发送器Tx(D)和Tx(E)以及接收器Rx(D)和Rx(E)。第二PCIe装置820可以包括上游端口。上游端口可以通过链路来连接到下游端口。上游端口可以包括发送器Tx(F)和接收器Rx(F)。
在一些实施方案中,重定时器810-2和810-3可以连接在第一PCIe装置810-1与第二PCIe装置820之间。
在一些实施方案中,重定时器810-2和810-3中的每一个可以包括下游伪端口。例如,重定时器X 810-2的下游伪端口可以包括发送器Tx(C)和接收器Rx(C)。重定时器Y 810-3的下游伪端口可以包括发送器Tx(E)和接收器Rx(E)。而且,重定时器810-2和810-3中的每一个可以包括上游伪端口。例如,重定时器X 810-2的上游伪端口可以包括发送器Tx(B)和接收器Rx(B)。重定时器Y 810-3的上游伪端口可以包括发送器Tx(D)和接收器Rx(D)。
在一些实施方案中,数据或信号从下游端口移动到上游端口所通过的路径可以被定义为下游路径。在下游路径上,接收器Rx(B)可以连接到发送器Tx(A),并且向发送器TX(C)转发数据和信号。接收器Rx(D)可以连接到发送器Tx(C),并且向发送器Tx(E)转发数据和信号。接收器Rx(F)可以连接到发送器Tx(E)。
在一些实施方案中,数据或信号从上游端口移动到下游端口所通过的路径可以被定义为上游路径。在上游路径上,接收器Rx(E)可以连接到发送器Tx(F),并且向发送器Tx(D)转发数据和信号。接收器Rx(C)可以连接到发送器Tx(D),并且向发送器Tx(B)转发数据和信号。接收器Rx(A)可以连接到Tx(B)。
在一些实施方案中,第一PCIe装置810-1和第二PCIe装置820中的每一个可以包括裕量通路控制寄存器和裕量通路状态寄存器。第一PCIe装置810-1和第二PCIe装置820中的每一个可以将与裕量命令相关联的信息记录在裕量通路控制寄存器中,并且将裕量状态信息记录在裕量通路状态寄存器中。
第二PCIe装置820可以通过上游端口来向下游端口发送发送器设置请求。发送器设置请求可以用于请求确定上游端口中包括的发送器的设置的操作。例如,可以根据下游端口中包括的发送器Tx(A)的设置来确定上游端口中包括的接收器Rx(F)的设置。当在接收器Rx(F)中检测到的错误的出现频率增加或当根据发送器Tx(A)的设置的接收器Rx(F)的设置不满足系统的所需值时,必须执行更新接收器Rx(F)的设置的操作。第二PCIe装置820可以通过向下游端口发送发送器设置请求来允许重新确定发送器Tx(A)的设置。例如,第二PCIe装置820可以通过发送器设置请求来引起下游端口的发送器设置操作。
第一PCIe装置810-1可以基于发送器设置请求来确定下游端口中包括的发送器的设置。随后,第二PCIe装置820可以通过上游端口从第一PCIe装置810-1接收发送器设置信息。发送器设置信息可以包括与下游端口中包括的发送器的设置相关联的信息。例如,发送器设置信息可以包括与发送器的设置相关联的提示。第二PCIe装置820可以基于发送器设置信息来确定上游端口中包括的接收器的设置。
在一些实施方案中,可以通过具有供应商定义类型的裕量命令来发送发送器设置请求和发送器设置信息。
图10是示出基于所公开技术的实施例的用于确定由下游端口控制的发送器的设置的操作的示图。
参照图10,计算系统800可以包括第一PCIe装置810-1、重定时器810-2和810-3以及第二PCIe装置820。第一PCIe装置800-1以及重定时器810-2和810-3可以表示图7所示的外部装置710。第二PCIe装置820可以表示图7所示的PCIe装置720。
在一些实施方案中,第一PCIe装置810-1可以包括下游端口。下游端口可以包括发送器Tx(A)和接收器Rx(A)。重定时器X 810-2可以包括发送器Tx(B)和Tx(C)以及接收器Rx(B)和Rx(C)。重定时器Y 810-3可以包括发送器Tx(D)和Tx(E)以及接收器Rx(D)和Rx(E)。第二PCIe装置820可以包括上游端口。上游端口可以通过链路来连接到下游端口。上游端口可以包括发送器Tx(F)和接收器Rx(F)。
在一些实施方案中,重定时器810-2和810-3可以连接在第一PCIe装置810-1与第二PCIe装置820之间。
在一些实施方案中,重定时器810-2和810-3中的每一个可以包括下游伪端口。例如,重定时器X 810-2的下游伪端口可以包括发送器Tx(C)和接收器Rx(C)。重定时器Y 810-3的下游伪端口可以包括发送器Tx(E)和接收器Rx(E)。而且,重定时器810-2和810-3中的每一个可以包括上游伪端口。例如,重定时器X 810-2的上游伪端口可以包括发送器Tx(B)和接收器Rx(B)。重定时器Y 810-3的上游伪端口可以包括发送器Tx(D)和接收器Rx(D)。
在一些实施方案中,数据或信号从下游端口移动到上游端口所通过的路径可以被定义为下游路径。在下游路径上,接收器Rx(B)可以连接到发送器Tx(A),并且向发送器TX(C)转发数据和信号。接收器Rx(D)可以连接到发送器Tx(C),并且向发送器Tx(E)转发数据和信号。接收器Rx(F)可以连接到发送器Tx(E)。
重定时器810-2和810-3的下游伪端口和上游伪端口可以通过链路连接到上游端口和下游端口。
在一些实施方案中,数据或信号从上游端口移动到下游端口所通过的路径可以被定义为上游路径。在上游路径上,接收器Rx(E)可以连接到发送器Tx(F),并且向发送器Tx(D)转发数据和信号。接收器Rx(C)可以连接到发送器Tx(D),并且向发送器Tx(B)转发数据和信号。接收器Rx(A)可以连接到发送器Tx(B)。
在一些实施方案中,第一PCIe装置810-1和第二PCIe装置820中的每一个可以包括裕量通路控制寄存器和裕量通路状态寄存器。第一PCIe装置810-1和第二PCIe装置820中的每一个可以将与裕量命令相关联的信息记录在裕量通路控制寄存器中,并且将裕量状态信息记录在裕量通路状态寄存器中。
在一些实施方案中,第一PCIe装置810-1可以通过下游端口向第二PCIe装置820以及重定时器810-2和810-3发送裕量命令。例如,下游端口可以生成裕量命令。裕量命令可以包括用于识别第一PCIe装置810-1、第二PCIe装置820以及重定时器810-2和810-3中包括的接收器中的任意一个的信息。下游端口可以通过控制跳过有序集向第二PCIe装置以及重定时器810-2和810-3提供裕量命令。
第二PCIe装置820以及重定时器810-2和810-3可以响应于裕量命令而获取多个通路中的每一个的裕量状态信息。例如,第二PCIe装置820以及重定时器810-2和810-3可以通过执行与裕量命令相对应的通路裕量操作来获取裕量状态信息。第二PCIe装置820以及重定时器810-2和810-3可以响应于裕量命令而通过控制跳过有序集向第一PCIe装置810-1发送裕量状态信息。例如,上游端口可以响应于裕量命令而通过控制跳过有序集向下游端口发送裕量状态信息。
另外,第一PCIe装置810-1可以从第二PCIe装置820以及重定时器810-2和810-3接收裕量状态信息作为对裕量命令的响应。例如,下游端口可以从上游端口接收裕量状态信息作为对裕量命令的响应。第一PCIe装置810-1可以基于裕量状态信息来确定上游端口中包括的发送器Tx(A)的设置。随后,第二PCIe装置820可以基于由第一PCIe装置810-1确定的发送器Tx(A)的设置来确定上游端口中包括的接收器Rx(F)的设置。另外,重定时器810-2和810-3可以基于由第一PCIe装置810-1确定的发送器Tx(A)的设置来确定接收器Rx(C)和接收器Rx(E)的设置。
因此,基于所公开的技术的实施例,除了上游端口之外,还通过下游端口来控制通路裕量操作,从而可以使优化链路状态的手段多种多样。
图11是示出基于所公开技术的实施例的确定上游端口的设置的方法的流程图。
图11所示的方法可以由例如图7或图8所示的计算系统来执行。在下文中,为了描述方便,将基于图8所示的计算系统800来描述该方法。
在操作S1101中,计算系统800可以在第二PCIe装置中向第一PCIe装置和重定时器发送用于请求通路裕量操作的裕量命令。
裕量状态信息可以包括眼图裕量信息、错误信息或其他信息。在一些实施方案中,眼图裕量信息可以包括关于通过多个通路发送/接收的信号的质量的指示。在一些实施方案中,错误信息可以包括与通路裕量操作中发生的错误相关联的信息。
在操作S1103中,计算系统800可以在第一PCIe装置和重定时器中执行通路裕量操作。在一些实施方案中,可以执行通路裕量操作以获取指示多个通路中的每一个的裕量的裕量状态信息。
在操作S1105中,计算系统800可以在第二PCIe装置中从第一PCIe装置和重定时器接收多个通路中的每一个的裕量状态信息。
在操作S1107中,计算系统800可以在第二PCIe装置中基于裕量状态信息来确定上游端口的设置。
计算系统800可以基于裕量状态信息来确定第二PCIe装置中包括的发送器的设置。
图12是示出基于所公开技术的实施例的确定接收器的设置的方法的流程图。
图12所示的方法可以由例如图7或图8所示的计算系统来执行。在下文中,为了描述方便,将基于图8所示的计算系统800来描述该方法。
在操作S1201中,计算系统800可以在第二PCIe装置中向第一PCIe装置发送发送器设置请求。
在操作S1203中,计算系统800可以在第一PCIe装置中执行发送器设置操作。在一些实施方案中,第一PCIe装置可以执行发送器设置操作以获得发送器设置信息。
在操作S1205中,计算系统800可以在第二PCIe装置中从第一PCIe装置接收发送器设置信息。发送器设置信息可以包括与第一PCIe装置中包括的发送器的设置相关联的信息。
在操作S1207中,计算系统800可以在第二PCIe装置中基于发送器设置信息来确定接收器的设置。
图13是示出基于所公开的技术的实施例的确定下游端口的设置的方法的流程图。
图13所示的方法可以由例如图7或图8所示的计算系统来执行。在下文中,为了描述方便,将基于图8所示的计算系统800来描述该方法。
在操作S1301中,计算系统800可以在第一PCIe装置中向第二PCIe装置和重定时器发送用于请求通路裕量操作的裕量命令。
裕量状态信息可以包括眼图裕量信息、错误信息或其他信息。
在操作S1303中,计算系统800可以在第二PCIe装置和重定时器中执行通路裕量操作。
在操作S1305中,计算系统800可以在第一PCIe装置中从第二PCIe装置和重定时器接收多个通路中的每一个的裕量状态信息。
在操作S1307中,计算系统800可以在第一PCIe装置中基于裕量状态信息来确定下游端口的设置。
计算系统800可以基于裕量状态信息确定第一PCIe装置中包括的发送器的设置。
在所公开技术的一些实施例中,可以提供一种能够控制上游端口中的通路裕量操作的PCIe装置,以及包括该PCIe装置的计算系统。
在所公开技术的一些实施例中,在上游端口中控制通路裕量操作,从而可以实时调整上游端口中包括的发送器和接收器的设置。因此,可以优化连接PCIe装置的链路的状态。
在一些实施方案中,可以选择性地执行或省略上面讨论的一些操作。在每个实施例中,可以修改操作的顺序。
仅描述或示出所公开的技术的实施方案或实施例的有限示例。基于在本专利文件中公开和示出的内容,所公开的实施方案或实施例以及其他实施方案或实施例的变化和增强是可能的。
Claims (30)
1.一种执行计算系统中的组件之间的通信的装置,包括:
上游端口,通过链路从位于上游路径上的一个或多个外部装置接收数据或向位于所述上游路径上的所述一个或多个外部装置发送数据,所述链路包括多个通路,所述多个通路包括用于接收和发送数据的差分信号对;
通路裕量控制器,联接到所述上游端口并且经由所述上游端口向所述一个或多个外部装置发送用于请求通路裕量操作的裕量命令,以获取裕量状态信息,所述裕量状态信息指示所述多个通路中的每一个的裕量,并且所述通路裕量控制器控制所述上游端口从所述外部装置接收所述裕量状态信息;以及
端口设置控制器,联接为与所述上游端口通信以接收所述裕量状态信息并且可操作成基于所述裕量状态信息来确定所述上游端口的设置。
2.根据权利要求1所述的装置,其中所述裕量状态信息包括眼图裕量信息或错误信息中的至少一个,所述眼图裕量信息包括通过所述多个通路中的每一个发送或接收的信号的质量的指示,所述错误信息包括与从所述通路裕量操作中发生的错误相关联的信息。
3.根据权利要求1所述的装置,其中通过控制跳过有序集来发送所述裕量命令和所述裕量状态信息。
4.根据权利要求1所述的装置,其中所述上游端口包括:
发送器,发送所述裕量命令;以及
接收器,接收所述裕量状态信息。
5.根据权利要求4所述的装置,其中所述端口设置控制器基于所述裕量状态信息来确定所述发送器的设置。
6.根据权利要求4所述的装置,其中所述通路裕量控制器:
向所述外部装置发送发送器设置请求,所述发送器设置请求用于请求所述外部装置通过执行发送器设置操作来提供发送器设置信息;并且
控制所述上游端口从所述外部装置接收与所述外部装置中包括的发送器的设置相关联的所述发送器设置信息,并且
其中,所述端口设置控制器基于所述发送器设置信息来确定所述接收器的设置。
7.根据权利要求6所述的装置,其中通过具有供应商定义类型的裕量命令来发送所述发送器设置请求和所述发送器设置信息。
8.根据权利要求1所述的装置,进一步包括:
裕量通路控制寄存器,存储与所述裕量命令相关联的信息;以及
裕量通路状态寄存器,存储所述裕量状态信息。
9.根据权利要求1所述的装置,其中所述装置包括用作位于下游路径上的下游组件的高速外围组件互连装置,即PCIe装置,并且
其中所述外部装置是位于所述上游路径上的上游组件或一个或多个重定时器。
10.一种计算系统,包括:
第一装置,包括下游端口并且根据高速外围组件互连标准,即PCIe标准经由所述下游端口来接收和发送数据;以及
第二装置,包括通过链路而连接到所述第一装置的所述下游端口的上游端口,所述链路包括多个通路,其中所述第二装置:
根据所述高速外围组件互连标准经由所述上游端口通过所述第一装置来接收和发送数据;
通过所述上游端口来向所述第一装置发送裕量命令;
接收裕量状态信息作为对来自所述第一装置的所述裕量命令的响应,所述裕量状态信息指示所述多个通路中的每一个的裕量;并且
基于所述裕量状态信息来确定所述上游端口的设置。
11.根据权利要求10所述的计算系统,其中所述第一装置:
通过执行与所述裕量命令相对应的通路裕量操作来获取所述裕量状态信息;并且
响应于所述裕量命令,通过控制跳过有序集向所述第二装置发送所述裕量状态信息。
12.根据权利要求10所述的计算系统,其中所述裕量状态信息包括眼图裕量信息或错误信息中的至少一个,所述眼图裕量信息包括通过所述多个通路中的每一个发送或接收的信号的质量的指示,所述错误信息包括与对应于所述裕量命令的通路裕量操作中发生的错误相关联的信息。
13.根据权利要求10所述的计算系统,其中所述第二装置通过控制跳过有序集来发送所述裕量命令。
14.根据权利要求10所述的计算系统,进一步包括通过所述链路而连接到所述下游端口和所述上游端口的一个或多个重定时器。
15.根据权利要求14所述的计算系统,其中所述裕量命令包括用于识别所述第一装置、所述第二装置和所述重定时器中包括的接收器中的任意一个的信息。
16.根据权利要求14所述的计算系统,其中所述第二装置接收所述裕量状态信息作为对来自所述重定时器的所述裕量命令的响应。
17.根据权利要求16所述的计算系统,其中所述第二装置基于所述裕量状态信息来确定所述上游端口中包括的发送器的设置,并且
其中所述第一装置和所述重定时器基于所述上游端口中包括的所述发送器的设置,分别确定所述下游端口和所述重定时器中包括的接收器的设置。
18.根据权利要求10所述的计算系统,其中所述第二装置通过所述上游端口向所述第一装置发送用于请求所述下游端口的发送器设置操作的发送器设置请求。
19.根据权利要求18所述的计算系统,其中所述第一装置基于所述发送器设置请求来确定所述下游端口中包括的发送器的设置,并且
其中所述第二装置:
通过所述上游端口从所述第一装置接收与所述下游端口中包括的所述发送器的设置相关联的发送器设置信息;并且
基于所述发送器设置信息来确定所述上游端口中包括的接收器的设置。
20.根据权利要求10所述的计算系统,其中所述第一装置和所述第二装置中的每一个包括:
裕量通路控制寄存器,存储与所述裕量命令相关联的信息;以及
裕量通路状态寄存器,存储所述裕量状态信息。
21.一种计算系统,包括:
下游端口,使所述计算系统的组件在下游路径中互连;以及
上游端口,使所述计算系统的组件在上游路径中互连并且通过链路来连接到所述下游端口,所述链路包括多个通路,
其中所述下游端口和所述上游端口中的每一个:
生成用于请求通路裕量操作的裕量命令以获取裕量状态信息,所述裕量状态信息指示所述多个通路中的每一个的裕量;并且
向所述上游端口或所述下游端口发送所述裕量命令或从所述下游端口接收所述裕量命令。
22.根据权利要求21所述的计算系统,其中,当所述上游端口向所述下游端口发送所述裕量命令时,所述上游端口从所述下游端口接收所述裕量状态信息作为对所述裕量命令的响应。
23.根据权利要求22所述的计算系统,其中所述上游端口基于所述裕量状态信息来确定所述上游端口的设置。
24.根据权利要求21所述的计算系统,其中当所述上游端口从所述下游端口接收所述裕量命令时,所述上游端口响应于所述裕量命令而向所述下游端口发送所述裕量状态信息。
25.根据权利要求21所述的计算系统,其中当所述下游端口向所述上游端口发送所述裕量命令时,所述下游端口从所述上游端口接收所述裕量状态信息作为对所述裕量命令的响应。
26.根据权利要求25所述的计算系统,其中所述下游端口基于所述裕量状态信息来确定所述下游端口的设置。
27.根据权利要求21所述的计算系统,其中,当所述下游端口从所述上游端口接收所述裕量命令时,所述下游端口响应于所述裕量命令而向所述上游端口发送所述裕量状态信息。
28.根据权利要求21所述的计算系统,其中通过控制跳过有序集来发送所述裕量命令和所述裕量状态信息。
29.根据权利要求21所述的计算系统,其中所述裕量状态信息包括眼图裕量信息或错误信息中的至少一个,所述眼图裕量信息包括通过所述多个通路中的每一个发送或接收的信号的质量的指示,所述错误信息包括与对应于所述裕量命令的通路裕量操作中发生的错误相关联的信息。
30.根据权利要求21所述的计算系统,进一步包括通过所述链路而连接到所述下游端口和所述上游端口的一个或多个重定时器,
其中所述下游端口和所述上游端口中的每一个从所述重定时器接收所述裕量状态信息作为对所述裕量命令的响应。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2021-0042642 | 2021-04-01 | ||
KR1020210042642A KR102519480B1 (ko) | 2021-04-01 | 2021-04-01 | PCIe 장치 및 이를 포함하는 컴퓨팅 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115185875A true CN115185875A (zh) | 2022-10-14 |
Family
ID=83450331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110782305.2A Pending CN115185875A (zh) | 2021-04-01 | 2021-07-12 | 执行通信的装置和包括该装置的计算系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11599495B2 (zh) |
KR (1) | KR102519480B1 (zh) |
CN (1) | CN115185875A (zh) |
TW (1) | TW202240422A (zh) |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5025457A (en) | 1989-04-21 | 1991-06-18 | Codex Corporation | Synchronizing continuous bit stream oriented terminals in a communications network |
GB9410943D0 (en) | 1994-06-01 | 1994-07-20 | Newbridge Networks Corp | Clock recovery unit |
US6029194A (en) | 1997-06-10 | 2000-02-22 | Tektronix, Inc. | Audio/video media server for distributed editing over networks |
US5958027A (en) | 1997-08-05 | 1999-09-28 | Advanced Micro Devices, Inc. | Method and system for optimizing the flow of isochronous data and clock rate information |
US6061802A (en) | 1998-07-02 | 2000-05-09 | Advanced Micro Devices, Inc. | Software based clock synchronization |
US6279058B1 (en) | 1998-07-02 | 2001-08-21 | Advanced Micro Devices, Inc. | Master isochronous clock structure having a clock controller coupling to a CPU and two data buses |
US7031306B2 (en) | 2000-04-07 | 2006-04-18 | Artel Video Systems, Inc. | Transmitting MPEG data packets received from a non-constant delay network |
GB0100094D0 (en) | 2001-01-03 | 2001-02-14 | Vtech Communications Ltd | System clock synchronisation using phased-lock loop |
US7103125B1 (en) | 2001-05-16 | 2006-09-05 | Lexmark International, Inc. | Method and apparatus for effecting synchronous pulse generation for use in serial communications |
US7295578B1 (en) | 2001-09-12 | 2007-11-13 | Lyle James D | Method and apparatus for synchronizing auxiliary data and video data transmitted over a TMDS-like link |
JP3626452B2 (ja) | 2001-12-27 | 2005-03-09 | 株式会社東芝 | 半導体装置 |
US7719371B2 (en) | 2004-03-22 | 2010-05-18 | Integrated Device Technology, Inc. | Spread spectrum clock and reference signal generator |
US7890735B2 (en) | 2004-08-30 | 2011-02-15 | Texas Instruments Incorporated | Multi-threading processors, integrated circuit devices, systems, and processes of operation and manufacture |
US20060209684A1 (en) | 2005-03-18 | 2006-09-21 | Via Technologies, Inc. | Data rate controller, and method of control thereof |
TWI282218B (en) | 2005-07-01 | 2007-06-01 | Realtek Semiconductor Corp | Method of generating spread spectrum and/or over-clock and its circuit thereof |
US20070041391A1 (en) | 2005-08-18 | 2007-02-22 | Micron Technology, Inc. | Method and apparatus for controlling imager output data rate |
US8867683B2 (en) | 2006-01-27 | 2014-10-21 | Ati Technologies Ulc | Receiver and method for synchronizing and aligning serial streams |
US20080141063A1 (en) | 2006-12-12 | 2008-06-12 | Ridgeway Curtis A | Real time elastic FIFO latency optimization |
US7936790B2 (en) | 2007-08-30 | 2011-05-03 | Silicon Image, Inc. | Synchronizing related data streams in interconnection networks |
CN101946219B (zh) | 2008-02-20 | 2013-03-20 | 惠普开发有限公司 | 具有两个参考时钟的转接驱动器及其操作方法 |
TW201002055A (en) | 2008-06-24 | 2010-01-01 | Sunplus Technology Co Ltd | Image format conversion system |
US20100061424A1 (en) | 2008-09-09 | 2010-03-11 | International Business Machines Corporation | Spread Spectrum Controller with Bit Error Rate Feedback |
US8285884B1 (en) | 2008-11-03 | 2012-10-09 | Integrated Device Technology Inc. | Data aggregation system and method for deskewing data at selectable data rates |
TWI390991B (zh) | 2008-11-05 | 2013-03-21 | Realtek Semiconductor Corp | 音訊裝置與音訊處理方法 |
US8548011B2 (en) | 2010-12-02 | 2013-10-01 | Plx Technology, Inc. | Dynamic host clock compensation |
US8611486B2 (en) | 2011-04-08 | 2013-12-17 | Silicon Image, Inc. | Adjustment of clock signals regenerated from a data stream |
WO2013001631A1 (ja) | 2011-06-29 | 2013-01-03 | 富士通株式会社 | 伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法 |
US9253515B2 (en) | 2012-03-11 | 2016-02-02 | Broadcom Corporation | Channel bonding synchronization |
US8781086B2 (en) | 2012-06-26 | 2014-07-15 | Adc Dsl Systems, Inc. | System and method for circuit emulation |
US8856573B2 (en) * | 2012-06-27 | 2014-10-07 | Intel Corporation | Setting a number (N) of fast training sequences (FTS) automatically to an optimal value |
US8879680B2 (en) | 2012-11-06 | 2014-11-04 | Ati Technologies Ulc | Adaptive clock mismatch compensation symbol insertion in signal transmissions |
US9337934B1 (en) | 2012-11-29 | 2016-05-10 | Clariphy Communications, Inc. | Coherent transceiver architecture |
WO2015099733A1 (en) | 2013-12-26 | 2015-07-02 | Intel Corporation | Interconnect retimer enhancements |
US20150350656A1 (en) | 2014-05-30 | 2015-12-03 | Qualcomm Innovation Center, Inc. | Dynamic video core clock and voltage scaling |
US9626270B2 (en) * | 2014-09-26 | 2017-04-18 | Intel Corporation | Link retraining based on runtime performance characteristics |
US9933809B2 (en) | 2014-11-14 | 2018-04-03 | Cavium, Inc. | Automatic data rate matching |
US10091119B2 (en) | 2015-03-20 | 2018-10-02 | Harman International Industries, Incorporated | Managing data in a static network prior to initialization |
WO2017052665A1 (en) * | 2015-09-26 | 2017-03-30 | Intel Corporation | In-band margin probing on an operational interconnect |
KR102507714B1 (ko) | 2016-05-02 | 2023-03-09 | 삼성전자주식회사 | SRIS를 지원하는 PCIe 장치 |
US10019385B2 (en) | 2016-06-29 | 2018-07-10 | Intel Corporation | Method and apparatus of real-time retimer delay measurement |
US10229081B2 (en) * | 2016-09-26 | 2019-03-12 | Dell Products, Lp | System level crosstalk mitigation |
KR20180092125A (ko) | 2017-02-08 | 2018-08-17 | 에스케이하이닉스 주식회사 | 반도체 장치 |
US10860449B2 (en) | 2017-03-31 | 2020-12-08 | Intel Corporation | Adjustable retimer buffer |
US10880137B2 (en) * | 2017-05-12 | 2020-12-29 | Intel Corporation | Bypassing equalization at lower data rates |
EP3666182A1 (en) | 2018-12-11 | 2020-06-17 | Koninklijke Philips N.V. | Device, system and method for providing bio-feedback to a user |
CN113396396A (zh) * | 2019-01-31 | 2021-09-14 | 特克特朗尼克公司 | 高速输入/输出裕度测试的系统、方法和设备 |
US11397701B2 (en) * | 2019-04-30 | 2022-07-26 | Intel Corporation | Retimer mechanisms for in-band link management |
US11886312B2 (en) | 2020-04-07 | 2024-01-30 | Intel Corporation | Characterizing error correlation based on error logging for computer buses |
CN113765363A (zh) | 2020-06-01 | 2021-12-07 | 株式会社村田制作所 | 频率调制的dc-dc转换器的降emi方法及其装置 |
KR102415309B1 (ko) | 2020-06-16 | 2022-07-01 | 에스케이하이닉스 주식회사 | 인터페이스 장치 및 그 동작 방법 |
US11546128B2 (en) | 2020-06-16 | 2023-01-03 | SK Hynix Inc. | Device and computing system including the device |
US20210050941A1 (en) * | 2020-07-06 | 2021-02-18 | Intel Corporation | Characterizing and margining multi-voltage signal encoding for interconnects |
-
2021
- 2021-04-01 KR KR1020210042642A patent/KR102519480B1/ko active IP Right Grant
- 2021-06-17 US US17/350,945 patent/US11599495B2/en active Active
- 2021-07-12 CN CN202110782305.2A patent/CN115185875A/zh active Pending
- 2021-08-26 TW TW110131670A patent/TW202240422A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
KR102519480B1 (ko) | 2023-04-10 |
KR20220136691A (ko) | 2022-10-11 |
US11599495B2 (en) | 2023-03-07 |
TW202240422A (zh) | 2022-10-16 |
US20220318180A1 (en) | 2022-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7813362B2 (en) | Communication apparatus, electronic apparatus, imaging apparatus | |
EP1719289B1 (en) | Generating topology information identifying devices in a network topology | |
US20220311590A1 (en) | Device and computing system including the device | |
US11467909B1 (en) | Peripheral component interconnect express interface device and operating method thereof | |
KR102518317B1 (ko) | PCIe 인터페이스 장치 및 그 동작 방법 | |
US20160350250A1 (en) | Input output data alignment | |
KR102635457B1 (ko) | PCIe 장치 및 이를 포함하는 컴퓨팅 시스템 | |
US11599495B2 (en) | Device for performing communication and computing system including the same | |
US11815941B2 (en) | Peripheral component interconnect express device and operating method thereof | |
US20230315591A1 (en) | PCIe DEVICE AND COMPUTING SYSTEM INCLUDING THE SAME | |
CN115203109A (zh) | PCIe接口和接口系统 | |
US11960367B2 (en) | Peripheral component interconnect express device and operating method thereof | |
US20230315672A1 (en) | Interface device and computing system including the same | |
CN114968860B (zh) | 高速外围组件互连接口装置以及包括该接口装置的系统 | |
US20240012770A1 (en) | Interface device having plurality of ports and method of operating the same |
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 |