CN103995790A - 设备准备就绪状态至功能块准备就绪状态的转换 - Google Patents

设备准备就绪状态至功能块准备就绪状态的转换 Download PDF

Info

Publication number
CN103995790A
CN103995790A CN201310741945.4A CN201310741945A CN103995790A CN 103995790 A CN103995790 A CN 103995790A CN 201310741945 A CN201310741945 A CN 201310741945A CN 103995790 A CN103995790 A CN 103995790A
Authority
CN
China
Prior art keywords
message
frs
drs
pcie
interchanger
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
Application number
CN201310741945.4A
Other languages
English (en)
Inventor
斯蒂芬·大卫·格拉泽
克里斯蒂安·爱德华·伦哈尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of CN103995790A publication Critical patent/CN103995790A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges

Landscapes

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

Abstract

一种用于在高速外围部件互连(PCIe)子系统中给根复合体发送准备就绪通知消息的方法。该方法包括在与PCIe部件中的上游端口相耦连的下游端口中接收设备准备就绪状态(DRS)消息。该方法还包括在表示已收到DRS消息的下游端口中的位进行设定。

Description

设备准备就绪状态至功能块准备就绪状态的转换
技术领域
本发明总体上涉及外围部件互连(PCI)或高速外围部件互连(或PCIe),具体而言涉及设备准备就绪状态至功能块准备就绪状态的转换。
背景技术
外围部件互连(PCI)或高速外围部件互连(或PCIe)为采用点对点通信和数据路由(routing)的串行计算机扩展总线标准。根复合体提供PCIe部件与中央处理单元(CPU)和系统存储器之间的接口。根复合体可耦连到诸如交换器和PCIe端点设备这类部件。交换器对根复合体与诸如端点设备这类其他的PCIe部件之间的数据进行路由。每个交换器均可耦连到一个或多个高速PCI端点设备。PCIe网络中的所有部件,包括交换器、端点设备和根复合体,都具有可由PCIe网络中的部件直接寻址的一个或多个“功能块”(Functions)。这些功能块,例如交换器和端点设备内的,可被分配地址和标识符,从而使通信量(traffic)可寻址并被传递到特定功能块。
当带有PCIe总线的系统启动时,或者当单个PCIe端点设备启动、重启或从低功率模式进入全功率模式时,基本输入/输出系统(BIOS)或操作系统一般会给PCIe网络内的功能块例如PCIe端点设备中的功能块发送配置请求,来对这些功能块进行配置以用于正常操作。然而,在这类配置之前,为了给部件时间用于初始化或预热,BIOS或操作系统遵循强制执行特定延迟期间的延迟规则,在延迟期间内BIOS或操作系统不能给部件发送配置请求。遵守延迟规则的一个缺点是延迟持续较长的时间(一般为一秒),因而会阻碍部件快速配置。
在一些实施方案中,BIOS或操作系统可以配置为忽略延迟规则,在延迟期间结束之前将配置请求发送给不同部件。然而,如果部件尚未完成初始化,则该部件可用“配置重试状态”(CRS)消息来响应配置请求。在这样的情形下,BIOS或操作系统一般会轮询(poll)该部件,直到该部件不用CRS消息响应为止。对部件进行轮询的一个缺点在于,BIOS或操作系统不会被通知部件可利用时的实际时间。因此,BIOS或操作系统必须等到延迟期间到期或者该部件不再返回CRS消息才能开始对该部件进行配置。这会导致部件以及整个计算机系统的启动时间较长。对PCIe端点设备进行轮询的另一个缺点在于,BIOS或操作系统在初始的配置请求之前仍然必须等待100毫秒。因此,即使使用轮询,BIOS或操作系统也不会被通知部件可利用时的实际时间,这会导致部件以及整个计算机系统的启动时间较长。
如上所述,本领域所需要的是更为有效的方式来对计算系统内的高速PCI端点设备进行配置。
发明内容
本发明的一个实施例阐明了一种用于给根复合体发送准备就绪通知消息的方法。该方法包括在与高速外围部件互连(PCIe)部件中的上游端口相耦连的下游端口中接收设备准备就绪状态(DRS)消息。该方法还包括对表示下游端口中的已收到所述DRS消息的位进行设定。
其他实施例包括但不限于计算机可读介质,所述计算机可读介质包含使能(enable)处理单元以实施所公开的方法的一个或多个方面的指令。其他实施例包括但不限于包含配置为实施所公开的方法的一个或多个方面的处理单元以及配置为实施所公开的方法的一个或多个方面的计算装置的子系统。
附图说明
为了详细地理解本发明的上述特征,对于以上简要说明的发明,参照实施例可以得到更为具体的描述,其中一些实施例示出于附图中。然而,应予以注意的是,附图中示出的只是本发明的代表性实施例,因此不应被认为是对本发明的范围的限制,本发明可以适用于其他同等有效的实施例。
图1是示出了配置为实施本发明的一个或多个方面的计算机系统的框图;
图2示出了根据本发明的一个实施例的高速外围部件(PCIe)子系统;
图3示出了根据本发明的一个实施例的、在PCIe端点设备、交换器和根复合体之间的第一交换;
图4示出了根据本发明的另一实施例的、在PCIe端点设备、交换器和根复合体之间的第二交换;以及
图5是根据本发明的一个实施例的、用于在PCIe子系统内传递准备就绪通知消息的方法步骤的流程图。
具体实施方式
在下面的描述中,阐释了大量具体细节以提供对本发明更为彻底的理解。然而,对于本领域技术人员来讲将显而易见的是,在缺少这些具体细节中的一个或多个的情况下也可以实施本发明。
系统概述
图1是示出了配置为实施本发明的一个或多个方面的计算机系统100的框图。计算机系统100包括中央处理单元(CPU)102和系统存储器104,两者经由可包括存储器桥105的互连路径通信。存储器桥105例如可以是北桥芯片,经由总线或其他通信路径106(例如,超传输链接)连接到I/O(输入/输出)桥107。I/O桥107例如可以是南桥芯片,从一个或多个用户输入设备108(例如,键盘、鼠标)接收用户输入,并将该输入经由通信路径106和存储器桥105转发(forward)至CPU 102。并行处理子系统112经由总线或第二通信路径113(例如,外围部件互连(PCI)Express、加速图形端口或超传输链接)连接到存储器桥105;在一个实施例中,并行处理子系统112是将像素传送到显示设备110的图形子系统,显示设备110例如可以是任何常规的阴极射线管、液晶显示器、发光二极管显示器等。系统盘114也可连接到I/O桥107,并且可配置为存储由CPU 102和并行处理子系统112所使用的应用程序和数据以及内容。系统盘114为应用程序和数据提供非易失性存储空间,并且可包含固定式或可移除式硬盘驱动器、闪存驱动器和CD-ROM(压缩磁盘只读存储器)、DVD-ROM(数字通用磁盘-ROM)、蓝光、HD-DVD(高分辨率DVD)或者其他磁性、光学或固态存储设备。
交换器116为I/O桥107和诸如网络适配器118以及各种外插卡(add-incard)120和121的其他组件之间提供连接。其他组件(未明确图示)也可以连接到I/O桥107,包括通用串联总线(USB)或其他端口连接、压缩磁盘(CD)驱动器、数字通用磁盘(DVD)驱动器、胶片记录设备等。图1所示的各种通信路径,包括被具体命名的通信路径106和113,可以使用任何适当的协议来实施,例如PCI Express、AGP(加速图形端口)、超传输或任何其他总线或点对点通信协议,并且不同装置之间的连接可以使用本领域已知的不同协议。
在一个实施例中,并行处理子系统112包含经优化用于图形和视频处理的电路,例如包含视频输出电路,并且构成图形处理单元(GPU)。在另一个实施例中,并行处理子系统112包含经优化用于通用处理的电路,同时保留底层(underlying)计算架构,本文将进行更为详细的描述。在又一实施例中,并行处理子系统112可与单个子系统中的一个或多个其他系统元件集成,例如存储器桥105、CPU 102和I/O桥107,以形成片上系统(SoC)。
应予以理解的是,本文所示系统是示例性的,可以对其进行变形和修改。可根据需要修改连接拓扑结构,包括桥的数量和布置、CPU 102的数量以及并行处理子系统112的数量。例如,在一些实施例中,系统存储器104直接连接到CPU 102而非通过桥连接,并且其他设备经由存储器桥105和CPU 102而与系统存储器104通信。在其他替代拓扑结构中,并行处理子系统112连接到I/O桥107或者直接连接到CPU 102,而非连接到存储器桥105。在又一些实施例中,I/O桥107和存储器桥105可能集成到了单个芯片中而不是作为一个或多个分立器件存在。多数实施例可包括两个或更多CPU 102以及包括两个或更多并行处理子系统112。本文所示特定组件是可选的;例如,任何数量的外插卡或外围装置都可得到支持。在一些实施例中,交换器116被省去,且网络适配器118和外插卡120、121直接连接到I/O桥107。
高速外围部件互连(PCIe)子系统
图2示出了根据本发明的一个实施例的高速外围部件(PCIe)子系统200。如图所示,PCIe子系统200包含“部件”,例如根复合体202、交换器210和PCIe端点设备220。
在PCIe子系统200中,根复合体202提供CPU 102、系统存储器104和PCIe端点设备220之间的通信通路(pathway)。PCIe端点设备220给计算机系统100提供各种类型的功能(functionality),例如网络功能、图形功能等。PCIe端点设备220实现能够被访问的至少一个“功能块(Function)”。交换器210提供根复合体202和PCIe端点设备220之间的通信通路。
在PCIe子系统200内,信息通常流经“链路(link)”。链路为PCIe子系统200中的两个部件之间的点对点通信信道(channel),具体而言,为某一部件中的上游端口与另一部件中的下游端口之间的点对点通信信道。上游端口为诸如交换器210中的上游端口212和PCIe端点设备中的上游端口222这类端口。下游端口为诸如根复合体202中的下游端口204和交换器中的下游端口214这类端口。术语“上游”是指朝着根复合体202的方向。术语“下游”是指离开根复合体202的方向。
PCIe子系统200中的链路的一些例子包括经由下游端口204和上游端口212而在根复合体202与交换器210之间形成的链路、根复合体202中的下游端口204与PCIe端点设备220中的上游端口222之间的链路、以及交换器210中的下游端口214与PCIe端点设备220中的上游端口222之间的链路。
为了从一个部件将信息发送到另一部件,对信息进行发送,使得该信息流经跟随(trace)两个部件之间的路径的链路。例如,PCIe端点设备220通过首先将信息和表示该信息的目标为根复合体202的指示一起发送到交换器210,以将信息发送到根复合体202。当交换器210接收信息时,交换器210将信息“再传递(retransmit)”到根复合体202。当部件例如交换器210对交换器210从PCIe端点设备220接收的数据进行“再传递”时,也可以说是部件从PCIe端点设备220将数据转发(forward)到根复合体202。
一部件通过表示另一部件的“地址”或“标识符”(“ID”)来表示信息的目的地。地址和标识符为对PCIe子系统200内的部件进行访问的两种独立方式。地址为表示部件所映射到的地址空间(例如,存储器中)的值。标识符为表示部件的“地理上的”位置的值。“地理位置”为表示一起唯一识别层级结构(hierarchy)内的PCIe部件上的功能块的总线编号、设备编号和功能块编号的位置。PCIe部件,包括PCIe端点设备,实现一个或多个功能块,这些功能块中每个均可以通过“标识符”访问。
如所了解的,大的实施例可包括多个PCIe子系统,每个均包含根端口和根复合体集成端点的集合(collection)。层级结构为共享单个总线/设备/功能块编号空间的树型结构的功能块集合。一般而言,部件可以只利用“标识符”来表示用于同一层级结构内的其他部件的信息的目的地。在交换器210内,下游端口214和上游端口212通常具有其自己的功能块编号。上游端口可具有超过一个的功能块,包括端点功能块以及上游交换器端口。上游交换器端口为执行交换功能(即,将数据再传递到下游部件)的端口,而端点功能块可执行其他功能,例如与交换器不相关的功能。PCIe子系统200中的任何类型的部件都可在地理上或通过地址访问。
在PCIe子系统200中的部件之间许多类型的通信都是可能的。可能的一种类型的通信为“消息”发送。消息含有路由类型,例如链路本地路由(link local routing)和路径-根路由(route-to-root routing)。
对于链路本地路由,一个部件经过链路将消息发送给另一部件。接收利用本地路由发送的消息的部件不必将该消息转发到另一部件。接收链路本地消息的部件可采取该部件经配置以对该链路本地消息采取的任何动作。换言之,在链路本地路由中,部件从该部件的下游端口或上游端口经过链路而将消息发送到另一部件的下游或上游端口。例如,在PCIe子系统200中,如果PCIe端点设备220发送链路本地消息到交换器210,则该链路本地消息被从PCIe端点设备220中的上游端口222发送到交换器210中的下游端口214。交换器210无需对由交换器210所收到的链路本地消息采取任何进一步的动作。
对于路径-根路由,一个部件经过链路将消息发送到另一部件,且接收该消息的部件将该消息转发到根复合体。接收利用路径-根路由发送的消息的部件转发该消息,直到该消息到达根复合体为止。路径-根路由消息因而通过接收该路径-根路由消息的部件而被重复地转发,直到该路径-根路由消息到达根复合体为止。换言之,当部件接收路径-根路由时,该部件将该消息转发到上游部件。如果该上游部件不是根复合体,则该上游部件将该消息转发到另一上游部件。转发路径-根路由消息的过程一直持续到该路径-根路由消息到达根复合体为止。例如,在PCIe子系统200中,如果PCIe端点设备220发送路径-根路由消息到交换器210,则该路径-根路由消息被从PCIe端点设备220中的上游端口222发送到交换器210中的下游端口214。然后,交换器210将该消息从交换器210中的上游端口212发送到根复合体202中的下游端口204。由于该消息到达根复合体202,所以消息转发停止。
准备就绪通知
一般而言,当计算机100正常工作时,PCIe子系统200内的部件,例如PCIe端点设备220,完全上电且正常工作。例如,具有网络能力的PCIe端点设备220代表CPU和/或其他计算机部件与外部网络通信,同时拥有网络能力的PCIe端点设备220正常工作。然而,部件例如PCIe端点设备220会经历状态改变条件,例如被接通电源、完全重启或部件重启、从低功率状态转变到高功率状态或者一些其他状态改变条件。
在一些状态改变条件之后,部件例如PCIe端点设备220无需在状态改变条件之后立即为正常工作准备就绪。例如,当计算机系统100或PCIe端点设备220被启动时,部件例如PCIe端点设备220会需要“预热”时间以初始化硬件,或者执行其他与预热相关的功能块。此外,在一些状态改变条件之后,部件例如PCIe端点设备220没有有效的地址或标识符。例如,当计算机系统100启动之后,PCIe端点设备220会没有有效的地址或标识符,因而PCIe端点设备220不能通过地址或标识符访问。
地址和标识符在被称为“枚举(enumeration)”的过程中由根复合体202分配给PCIe子系统200中的部件例如PCIe端点设备220,其中根复合体202发送配置请求给PCIe子系统200中的部件例如PCIe端点设备220。除PCIe端点设备220以外的部件,例如交换器210,在被启动时或者在另一状态改变条件的事件时也会要求枚举和配置。
部件例如PCIe端点设备220在状态改变条件之后可以不准备就绪处理配置请求。例如,如果根复合体202发送配置请求到PCIe端点设备220,且PCIe端点设备220没有准备就绪处理配置请求,则PCIe端点设备220可用“配置重试状态”(CRS)消息来响应配置请求。然而,为了在部件例如PCIe端点设备220准备就绪接收配置请求时通知根复合体202,部件例如PCIe端点设备220也可选择向上游发送两种类型的准备就绪通知(“RN”)其中之一。
第一类RN消息为功能块准备就绪状态(FRS)消息。部件例如PCIe端点设备220当PCIe端点设备220的功能块变为可用时可选择向上游传递FRS消息。FRS消息具有路径-根路由。在一些实施例中,FRS消息包含“原因字段(reason field)”,表示发送FRS消息的原因。在一些实施例中,原因字段可表示FRS消息是由于低功率-高功率转变、功能块电平复位或其他原因而生成的。PCIe端点设备220中的功能块以外的功能块也可传递FRS消息。例如,交换器中上游端口中的功能块可传递FRS消息。
当部件例如PCIe端点设备220发送FRS消息时,FRS消息被转发直到FRS消息到达根复合体202为止。例如,如果PCIe端点设备220发送FRS消息到交换器210,则交换器210然后将FRS消息转发到根复合体202。FRS消息包含表示总线、设备和功能块的标识符。一经收到FRS消息,根复合体202就检验FRS消息的内容,其可表示例如传递了FRS消息的部件准备就绪,或者可表示其他信息。
第二类RN消息为设备准备就绪状态(DRS)消息。部件例如PCIe端点设备220当PCIe端点设备220的所有功能块都准备就绪时可选择向上游发送DRS消息。DRS消息具有链路本地路由。
在一些实施例中,FRS消息和DRS消息配置为“供应商定义消息”,意指FRS消息和DRS消息包含表示具体“供应商”或制造商的字段。此外,在一些实施例中,FRS消息和DRS消息为“1类”供应商定义消息,意指接收这些消息并且不知如何处理这些消息的部件可无声地丢弃消息。设备准备就绪状态至功能块准备就绪状态转换
因为部件例如PCIe端点设备220可以在PCIe端点设备220知道PCIe端点设备220的ID或地址之前传递DRS消息,所以接收DRS消息的交换器210中的下游端口214或根复合体202中的下游端口204可选择执行设备准备就绪状态至功能块准备就绪状态(DRS-to-FRS)转换。当交换器210执行DRS-to-FRS转换时,交换器210中的下游端口214接收DRS消息并作为响应而将FRS消息向上游发送到根复合体202。FRS消息包含收到DRS消息的下游端口214的ID或地址。虽然FRS消息未表示发送DRS消息的PCIe端点设备220的ID或地址,但根复合体202“知道”收到DRS消息的下游端口214与PCIe端点设备220相耦连。下面对DRS-to-FRS转换进行更为详细的论述。
交换器210中的下游端口214具有DRS接收位216和DRS-to-FRS转换使能位218。一开始,即PCIe子系统200启动或重启时,或者每当下游端口214下面的链路下行时,DRS消息接收位216具有0值(又称为“非设定”或“未设定”)。当交换器210在与PCIe端点设备220相连的下游端口214中接收DRS消息时,交换器210将收到DRS消息的下游端口214中的DRS接收位216的值改变为1(又称为“设定”)。设定后的DRS接收位从而表示下游端口214从与下游端口214相耦连的部件收到DRS消息。
带有值为1的DRS-to-FRS转换使能位218的交换器210将所收到的DRS消息“转换”为FRS消息。具体而言,当交换器210接收DRS消息时,如果DRS-to-FRS转换使能位218被设定,则交换器210生成FRS消息并从上游端口212向上游发送该FRS消息。因为FRS消息具有路径-根路由,所以接收FRS的任何部件都向上游转发FRS消息直到FRS消息到达根复合体202为止。当根复合体202接收FRS消息时,根复合体202被通知交换器210中的下游端口214从一部件收到DRS消息。根复合体202因而被通知该部件生成了DRS消息。
交换器210所生成的FRS消息包含表示对接收原始DRS消息的下游端口214进行识别的指示。对该下游端口214的识别提供对与下游端口214相耦连的部件的表示,即使该部件未发送有效的请求方ID给收到原始DRS消息的交换器210也如此。通过对接收原始DRS消息的下游端口214进行识别,向上游发送到根复合体202的FRS消息表示与被识别为准备就绪的下游端口214相耦连的部件。
带有值为0的DRS-to-FRS转换使能位218的交换器210不将所收到的DRS消息“转换”为FRS消息。而是只将DRS消息接收位216设定为1,表示从一部件接收DRS消息。DRS消息接收位216保持设定且当根复合体202与交换器210通信时,根复合体知晓与交换器210的下游端口214相耦连的部件发送DRS消息到交换器210。
根复合体也具有可与PCIe端点设备220直接相耦连的下游端口204。下游端口204具有与位216和218相似地工作的DRS消息接收位206和DRS-to-FRS转换使能位208。具体而言,如果下游端口204从PCIe端点设备220接收DRS消息,则下游端口204对DRS消息接收位206进行设定。如果DRS-to-FRS转换使能位208被设定,则下游端口204将DRS消息转换为FRS消息并将该FRS消息发送到根复合体202。
应予以理解的是,本文所示架构仅为示例性的,可以对其进行变形和修改。在一个示例中,交换器210可布置在超过一个的层级(level)。换言之,一些交换器中的下游端口可连接到其他交换器中的上游端口。在另一示例中,交换器中的上游端口可具有多个功能块,例如端点功能块、多个上游交换器端口和其他功能块。另外,任何部件中的功能块,例如交换器,都可利用准备就绪通知功能例如向上游传递DRS消息或FRS消息的能力来进行配置。
图3示出了根据本发明的一个实施例的、PCIe端点设备220、交换器210和根复合体202之间的第一交换300。如图所示,交换300包含PCIe子系统200的第一状态302、PCIe子系统200的第二状态304、PCIe子系统200的第三状态306以及PCIe子系统200的第四状态308。
交换300示出了状态302、304、306和308之间的一系列传递。这些传递发生在经过一段时间之后,且PCIe子系统200内的各种部件采取特定动作,下面进一步详细描述。在状态302、304、306和308中,为了清楚起见,未图示PCIe子系统200中的若干部件。
在第一状态302,PCIe端点设备220具有非有效的标识符221,且具有设备未准备就绪(“DNR”)的设备状态223。PCIe端点设备220的上游端口222与交换器210的下游端口214形成链路。交换器210具有非有效的标识符213,具有两个下游端口214,且具有与根复合体202形成链路的上游端口212。下游端口214具有DRS消息接收位216和DRS-to-FRS转换使能位218。在与PCIe端点设备220形成链路的下游端口214中,DRS消息接收位216和DRS-to-FRS转换使能位218都被设定到0。在与未图示的PCIe端点设备形成链路的下游端口214中,为了清楚起见,未图示DRS消息接收位216和DRS-to-FRS转换使能位218。在一段特定的时间之后,PCIe子系统200从第一状态302转变到第二状态304。
在第二状态304,PCIe端点设备220仍然具有非有效的标识符。但是,根复合体202已经发出指令以配置交换器210,因此交换器现在具有为“1”的标识符213(为了清楚起见,本示例中所示标识符显示为单个数字)。此外,根复合体202已经发出指令到交换器210,从而使交换器210中的DRS-to-FRS转换使能位218被设定到1,表示交换器210将所收到的DRS消息转换为FRS消息。在一段特定的时间之后,PCIe子系统200从第二状态304转变到第三状态306。
在第三状态306,PCIe端点设备220发送DRS消息到交换器210。一经接收DRS消息,交换器210中的下游端口214就对DRS接收位216进行设定。在一段特定的时间之后,PCIe子系统200从第三状态306转变到第四状态308。
在第四状态308,交换器210向上游传递FRS消息。所传递的FRS消息具有路径-根路由,表示FRS消息为DRS-to-FRS消息转换的结果,且表示与收到原始DRS消息的交换器210中的下游端口214相对应的请求方ID。FRS消息向根复合体202表示与交换器210中的下游端口214形成链路的PCIe端点设备220发送了原始DRS消息且因此准备就绪以接受来自根复合体202的配置请求。
图4示出了根据本发明的一个实施例的、PCIe端点设备220、交换器210和根复合体202之间的第二交换400。如图所示,交换400包含PCIe子系统200的第一状态402、PCIe子系统200的第二状态404、PCIe子系统200的第三状态406以及PCIe子系统200的第四状态408。
交换400示出了状态402、404、406和408之间的一系列传递。这些传递发生在经过一段时间之后,且PCIe子系统200内的各种部件采取特定动作。在状态402、404、406和408中,为了清楚起见,未图示PCIe子系统200中的若干部件。
在第一状态402,PCIe端点设备220具有非有效的标识符221,且具有设备未准备就绪(“DNR”)的设备状态223。PCIe端点设备220的上游端口222与交换器210的下游端口214形成链路。交换器210具有非有效的标识符213,具有两个下游端口214,且具有与根复合体202形成链路的上游端口212。下游端口214具有DRS消息接收位216和DRS-to-FRS转换使能位218。在与PCIe端点设备220形成链路的下游端口214中,DRS消息接收位216和DRS-to-FRS转换使能位218都被设定到0。在与未图示的PCIe端点设备形成链路的下游端口214中,为了清楚起见,未图示DRS消息接收位216和DRS-to-FRS转换使能位218。在一段特定的时间之后,PCIe子系统200从第一状态402转变到第二状态404。
在第二状态404,PCIe端点设备220仍然具有非有效的标识符。但是,PCIe端点设备220具有设备准备就绪(“DR”)的设备状态223,且因而发送DRS消息到交换器210。交换器210中的下游端口214将DRS消息接收位216设定到1。在一段特定的时间之后,PCIe子系统200从第二状态404转变到第三状态406。
在第三状态406,根复合体202发出指令以配置交换器210,因此交换器现在具有为“1”的标识符213(为了清楚起见,本示例中所示标识符显示为单个数字)。在一段特定的时间之后,PCIe子系统200从第三状态406转变到第四状态408。
在第四状态408,交换器210通过通知根复合体202下游端口214中的DRS消息接收位216被设定且因而表示已经收到DRS消息,来响应来自根复合体202的配置请求。
图5是根据本发明的一个实施例的、用于在PCIe子系统200中传递准备就绪通知消息的方法步骤的流程图。虽然结合图1-4描述了方法步骤,但本领域技术人员将理解,配置为以任何次序执行这些方法步骤的任何系统都落入本发明的范围内。
如图所示,方法500开始于步骤502,其中PCIe端点设备220变成准备就绪。当PCIe端点设备220确定PCIe端点设备220中的所有功能块都准备就绪以接受配置时,PCIe端点设备220确定PCIe端点设备220准备就绪。在步骤504,PCIe端点设备220向上游发送DRS消息,以表示PCIe端点设备220准备就绪。在步骤506,接收DRS消息的交换器210将DRS消息接收位216设定到1,表示DRS消息已由交换器210接收。
在步骤508,交换器210确定DRS-to-FRS转换使能位218是否被设定。如果DRS-to-FRS转换使能位218被设定,则方法500前进至步骤510。在步骤510,交换器210生成FRS消息,并且将该FRS消息与表示该FRS消息为DRS-to-FRS消息转换的结果的指示以及收到原始DRS消息的下游端口214的请求方ID一起发送。PCIe子系统200将FRS消息向上游发送到根复合体202,其将FRS消息排队(queue),用于转发到操作系统或基本输入/输出系统(BIOS)。
返回参照步骤508,如果DRS-to-FRS转换使能位218未被设定,则方法500前进至步骤514。在步骤514,交换器210不将所收到的DRS消息转换为FRS消息。在步骤516,根复合体202探测交换器210,并通过通知DRS消息接收位216被设定而发现准备就绪的PCIe端点设备220。
总之,为了当PCIe端点设备变成可用时通知根复合体,PCIe端点设备配置为发送包含功能块准备就绪状态(FRS)消息和设备准备就绪状态(DRS)消息的准备就绪通知消息。PCIe端点设备可配置为当PCIe端点设备变成可用时发送FRS消息。PCIe端点设备也可配置为当PCIe端点设备的所有功能块都变成可用时发送DRS消息。当与PCIe端点设备相耦连的交换器接收DRS消息时,该交换器对“DRS消息接收”位进行设定,表示该交换器已经收到DRS消息。
PCIe端点设备可在PCIe端点设备枚举之前且因而在PCIe端点设备具有地址和ID之前变成可用的。没有地址或ID,DRS消息不能向根复合体表示已经准备就绪的设备的身份。因此,接收DRS消息的交换器中的下游端口可配置为将DRS消息转换成FRS消息。转换后的FRS消息包含表示该FRS消息为DRS-to-FRS转换的结果的指示,并且还包含发送FRS消息的下游端口的请求方ID。DRS-to-FRS转换指示和下游端口的请求方ID的结合允许根复合体识别发送了DRS消息的PCIe端点设备是与交换器的下游端口相耦连的PCIe端点设备。
如果在交换器中未使能DRS-to-FRS转换,则仍对与收到DRS消息的下游端口相对应的DRS消息接收位进行设定,但不发送FRS消息。随后,当根复合体与交换器通信时,交换器向根复合体表示交换器已经收到与连接到DRS消息接收位的下游端口相耦连的PCIe端点设备相对应的DRS消息。
本文所提供的技术的一个优点在于,PCIe端点设备能够在PCIe端点设备已被枚举之前向根复合体发送准备就绪通知。另一优点在于,PCIe端点设备能够通知根复合体PCIe端点设备在延迟期间到期之前准备就绪。再一优点在于,PCIe端点设备能够通知根复合体PCIe端点设备准备就绪,而无需根复合体轮询(poll)PCIe端点设备。
本发明的一个实施例可被实现为与计算机系统一起使用的程序产品。该程序产品的程序定义实施例的各功能块(包括本文中描述的方法)并且可以被包含在各种计算机可读存储介质上。示出的计算机可读存储介质包括但不限于:(i)不可写入的存储介质(例如,计算机内的只读存储器装置,例如可由CD-ROM驱动器读取的CD-ROM盘、闪存、ROM芯片或任何类型的固态非易失性半导体存储器),在其上存储永久性信息;和(ii)可写入的存储介质(例如,磁盘驱动器或硬盘驱动器内的软盘或者任何类型的固态随机访问半导体存储器),在其上存储可更改的信息。
以上已参照具体实施例对本发明进行了描述。然而,本领域技术人员将理解的是,在不脱离如随附权利要求书中所阐释的本发明的较宽精神和范围的情况下,可对此做出各种修改和变化。前面的描述以及附图因而应被视为是例示性而非限制性的。
因此,本发明的实施例的范围在随附的权利要求书中加以阐明。

Claims (10)

1.一种用于向根复合体发送准备就绪通知消息的计算机实现方法,所述方法包括:
在与高速外围部件互连(PCIe)部件中的上游端口相耦连的下游端口中接收设备准备就绪状态(DRS)消息;以及
对所述下游端口中的表示已收到所述DRS消息的位进行设定。
2.一种高速外围部件互连(PCIe)子系统,所述系统包含下游端口,其配置为:
从与所述下游端口相耦连的部件中的上游端口接收设备准备就绪状态(DRS)消息;以及
对所述下游端口中的表示已收到所述DRS消息的位进行设定。
3.根据权利要求2所述的PCIe子系统,其中,所述DRS消息配置为链路本地路由消息。
4.根据权利要求2所述的PCIe子系统,其中,所述交换器进一步配置为:
确定设备准备就绪状态至功能块准备就绪状态(DRS-to-FRS)的转换在所述下游端口中被使能;以及
响应接收所述DRS消息而生成功能块准备就绪状态(FRS)消息。
5.根据权利要求4所述的PCIe子系统,其中,所述FRS消息配置为路径至根消息。
6.根据权利要求5所述的PCIe子系统,其中,所述FRS消息包含与所述下游端口相关联的请求方标识符。
7.根据权利要求6所述的PCIe子系统,其中,所述FRS消息包含表示所述FRS消息为DRS-to-FRS转换的结果的指示。
8.根据权利要求7所述的PCIe子系统,其中,所述下游端口进一步配置为将所述FRS消息传递到根复合体。
9.根据权利要求8所述的PCIe子系统,其中,所述FRS消息配置为供应商定义消息。
10.根据权利要求9所述的PCIe子系统,其中,所述FRS消息配置为1类供应商定义消息。
CN201310741945.4A 2013-02-15 2013-12-27 设备准备就绪状态至功能块准备就绪状态的转换 Pending CN103995790A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/769,135 2013-02-15
US13/769,135 US20140237153A1 (en) 2013-02-15 2013-02-15 Device-ready-status to function-ready-status conversion

Publications (1)

Publication Number Publication Date
CN103995790A true CN103995790A (zh) 2014-08-20

Family

ID=51263725

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310741945.4A Pending CN103995790A (zh) 2013-02-15 2013-12-27 设备准备就绪状态至功能块准备就绪状态的转换

Country Status (4)

Country Link
US (1) US20140237153A1 (zh)
CN (1) CN103995790A (zh)
DE (1) DE102013020806A1 (zh)
TW (1) TWI525441B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9690738B2 (en) * 2015-01-16 2017-06-27 Qualcomm Incorporated Peripheral component interconnect express (PCIe) hosts adapted to support remote PCIe endpoints
US9806904B2 (en) * 2015-09-08 2017-10-31 Oracle International Corporation Ring controller for PCIe message handling
CN106557340B (zh) * 2015-09-29 2022-11-15 中兴通讯股份有限公司 一种配置方法及装置
US20180300264A1 (en) * 2017-04-13 2018-10-18 Intel Corporation Function states of a device coupled to a computer bus
US11928071B2 (en) 2019-04-29 2024-03-12 Maxlinear, Inc. System communication technique over PCIe® (peripheral component interconnect express) link

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6665742B2 (en) * 2001-01-31 2003-12-16 Advanced Micro Devices, Inc. System for reconfiguring a first device and/or a second device to use a maximum compatible communication parameters based on transmitting a communication to the first and second devices of a point-to-point link
US8880747B2 (en) * 2012-05-15 2014-11-04 Dell Products, L.P. Endpoint device discovery system

Also Published As

Publication number Publication date
TW201447589A (zh) 2014-12-16
US20140237153A1 (en) 2014-08-21
DE102013020806A1 (de) 2014-08-21
TWI525441B (zh) 2016-03-11

Similar Documents

Publication Publication Date Title
CN105721357B (zh) 交换设备、外围部件互连高速系统及其初始化方法
JP5922268B2 (ja) 拡張ヘッダを用いたパケット送信
US9213666B2 (en) Providing a sideband message interface for system on a chip (SoC)
US8711875B2 (en) Aggregating completion messages in a sideband interface
US9473359B2 (en) Transactional traffic specification for network-on-chip design
US9009648B2 (en) Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of IP cores using high level specification
US9489329B2 (en) Supporting multiple channels of a single interface
US8874976B2 (en) Providing error handling support to legacy devices
CN103995790A (zh) 设备准备就绪状态至功能块准备就绪状态的转换
US11196657B2 (en) Self identifying interconnect topology
CN103003808A (zh) 用于访问PCI Express 兼容设备的资源的系统和方法
CN115657553A (zh) Pcie拓扑和pcie设备模拟方法、装置、设备及介质
US11726938B2 (en) Communications for field programmable gate array device
US10896476B2 (en) Repository of integration description of hardware intellectual property for NoC construction and SoC integration
WO2021196904A1 (zh) 一种设备管理方法、装置及计算机系统
US9081743B2 (en) Communication system and communicaton method
JP5147772B2 (ja) 巡回路生成装置及び巡回路生成方法及び巡回路生成プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140820