一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于扩展外围组件互连高速结构的系统和方法与流程

2022-07-30 22:02:57 来源:中国专利 TAG:

用于扩展外围组件互连高速结构的系统和方法
1.本技术是分案申请,原申请的申请号是201480036851.x,针对分案申请号是201810163181.8,原申请日是2014年06月28日,原申请的全部内容通过引用结合在本技术中。
技术领域
2.本发明大体上涉及计算行业;且更确切地说涉及用于扩展外围组件互连高速(extending peripheral component interconnect express,pcie)结构的系统、方法、计算机程序产品和设备。


背景技术:

3.外围组件互连高速(peripheral component interconnect express,pcie)是广泛用于将各种硬件装置(例如,存储装置、网卡、声卡及类似者)附接到主中央处理单元(host central processing unit,cpu)的高速串行计算机扩展总线标准。因为主cpu存储器配置可以是设备商自定义的,所以pcie提供用于将各种装置连接到cpu的输入/输出(i/o)标准。pcie允许在较旧的总线标准(例如,pci和pci扩展)上的多种改进。例如,pcie大体上允许更高的最大系统总线吞吐量、更低的i/o针计数、更小的总线覆盖面积、本机热插拔功能性以及其它优点。
4.pcie总线标准的问题是每个pcie结构受到有限量的资源限制。例如,每个pcie结构的32位地址存储空间大小可能不超出4gb,且每个结构可能仅具有最大256个总线号。因为pcie对点到点串行连接操作,这些局限性直接设定了可以附接到pcie结构的节点(即,装置)的最大数目的上限。也就是说,各种装置的总线号可以不重叠,且每个附接的装置需要唯一总线号的集合以进行工作。在pcie结构中的各种总线号可以经预留用于特定用途(例如,作为pcie交换机的内部总线号、热插拔功能性或类似者),从而进一步限制可用总线号的数目。
5.此外,出现在附接到pcie结构的任何组件处的故障都可能影响附接到所述故障组件的任何其它下游或上游组件。随着附接到pcie结构的组件和软件驱动程序的数目增加,故障处理变得更加困难且任何故障的传播都可能导致整个系统的崩溃。


技术实现要素:

6.通过提供扩展外围组件互连高速结构的本发明的优选实施例,大体上解决或规避了这些和其它问题,且大体上实现了技术优点。
7.根据一个实例实施例,外围组件互连高速拓扑包含主机pcie结构,所述主机pcie结构包括主根复合体。主机pcie结构包含在主中央处理单元(central processing unit,cpu)上的总线号的第一集合和第一存储器映射输入/输出(memory mapped input/output,mmio)空间。此外,提供扩展pcie结构,所述扩展pcie结构包含根复合体端点(root complex endpoint,rcep)作为主机pcie结构的端点的部分。所述扩展pcie结构还包含对应地与总线
号的第一集合和第一mmio空间不同的总线号的第二集合和第二mmio空间。
8.根据另一实例实施例,外围组件互连高速(pcie)拓扑包含扩展pcie结构。扩展pcie结构包含根复合体端点(root complex end point,rcep)。rcep被配置成第一层pcie结构的端点的部分。另外,扩展pcie结构包括存储器映射输入/输出(memory mapped input/output,mmio)空间和总线号的集合。
9.根据又一实例实施例,用于连接外围设备的方法包含提供托管扩展外围组件互连高速(peripheral component interconnect express,pcie)结构的根复合体端点(root complex endpoint,rcep)作为主机pcie结构的端点的部分。扩展pcie结构具有与主机pcie结构的第二mmio空间不同的第一mmio空间。所述方法进一步包括将第一mmio空间映射到第二mmio空间。
附图说明
10.为了更完整地理解本发明及其优点,现在参考下文结合附图进行的描述,其中:
11.图1是根据各种实例实施例的外围组件互连高速(peripheral component interconnect express,pcie)结构的框图;
12.图2a和2b是根据各种实例实施例的扩展结构的pcie配置空间映射和寻址的框图;
13.图3a和3b是根据各种实例实施例的扩展结构的32位存储空间映射和寻址的框图;
14.图4a和4b是根据各种实例实施例的扩展结构的64位存储空间映射和寻址的框图;以及
15.图5是根据各种实例实施例的具有pcie结构的计算系统的系统图。
具体实施方式
16.下文更详细地论述覆盖所涵盖的创新的各种方面的实例实施例。然而,应了解,本发明提供可在各种具体上下文中体现的许多适用的独一无二和新颖的概念。因此,本文中所论述的具体实施例仅说明用于实现、使用和实施本发明的各种方面的具体方式,且除非另外要求,否则未必限制本发明的范围。
17.以下各种示例性实施例在具体背景中描述,所述具体背景即,外围组件互连高速(peripheral component interconnect express,pcie)总线标准结构。然而,如应了解,此类实例实施例还可以扩展其它结构(例如,具有资源限制的倒置树拓扑)。
18.如本文中所描述,根复合体是充当pcie结构和主中央处理单元(host central processing unit,cpu)之间的桥的硬件结构。根复合体可以整合为cpu的部分。例如,图5图示根复合体502作为cpu 500的部分。根复合体管理且转发在cpu和连接到相同pcie结构(例如,pcie结构504)的装置(例如,装置506和508)之间的各种请求。根复合体还将各种所连接的装置(包含装置存储位置,例如寄存器和存储位置)映射到pcie存储空间上。这些类型的映射和存储空间被称为存储器映射输入/输出(memory mapped input/output,mmio)空间。
19.还如本文中所使用,mmio空间可以包含可使用32位地址寻址的存储器的一部分,所述存储器大体上限于mmio空间的前4gb。mmio空间可以进一步包含可使用64位地址寻址的存储器的一部分,所述存储器可以被映射到超过前4gb的mmio空间。本文中所描述的各种实例实施例包含一个或多个另外的根复合体硬件结构作为主机pcie结构的端点的部分。通
过将根复合体功能性添加到端点(被称作根复合体端点(root complex endpoint,rcep)),可以连接另外的pcie结构以形成不限于主pcie的有限资源的扩展pcie结构。
20.例如,图5图示rcep 508和将另外的端点(例如,装置512和514)连接到主cpu500的扩展pcie结构510。根据各种示例性实施例,这些rcep可以用于隔离故障与受到污染的毗邻结构或装置。此外,其它实例实施例提供,rcep和扩展pcie结构可以与现有外围装置驱动程序相容;因此,消除将软件更新到现有装置驱动程序的任何需要。
21.图1图示根据各种示例性实施例的连接到扩展pcie结构118的第一层pcie结构100的框图。pcie结构100可以包含管理且转发在主cpu和连接到pcie结构100的各种装置之间的各种请求的主根复合体102。通常,根复合体102拥有256个唯一总线号的集合和mmio空间,且所述根复合体将各种所连接的装置(包含其相关联的寄存器和/或存储器硬件)映射到其mmio空间。此外,根复合体102可以包含根端口103,所述根端口是允许在主cpu和连接到pcie结构100(例如,端点106和108)的装置之间的pci到pci连接的硬件桥结构。尽管图1将根复合体102图示为具有仅一个根端口103,但典型的根复合体102可以具有多个根端口103(例如,在四个到六个根端口之间)。
22.如图1中所示,根复合体102通过根端口103和交换机104电连接到端点106和108。通常,端点106和108是端接pcie结构100的结构。此类端点106和108可以包含存储装置、组网装置、声卡、显卡及类似者。还在图1中图示出的是交换机104,所述交换机可以包含将各种端点(例如,106和108)互连到根复合体102的至少一个上游端口(端口104a)和许多下游端口(例如,端口104b)。如本文中大体上使用,上游端口是指指向主根复合体(例如,根复合体102)的端口,而下游端口是指指向远离所述主根复合体处的端口。
23.交换机104可以包含内部总线,所述内部总线允许多个装置连接到单一根端口103,同时仍维持由pcie标准使用的点到点串行连接。尽管图1仅图示将两个端点106和108连接到根端口103的一个交换机104,但各种示例性实施例涵盖连接到任何数目的交换机的多个根端口,其中每个交换机都可以连接到任何不同数目的端点。替代地,或结合地,根端口103可以直接连接到端点。因此,图1和本文中的其它图式中图示出的配置仅出于说明性目的,且除非另外明确地要求,否则并不意图限制或以其它方式缩窄本发明的范围。
24.如图1中所示,端点106可以是根据示例性实施例的根复合体端点(root complex endpoint,rcep),所述根复合体端点提供在扩展pcie结构118和第一层pcie结构100之间的硬件桥。也就是说,rcep 106可以是主扩展pcie结构118。根据此类实施例,rcep 106可以在构造和逻辑上与主根复合体(例如,根复合体102)相似。由此,rcep 106可以包含其自身的与根复合体102的那些总线号的集合、pcie配置空间和mmio空间不同的总线号的集合、pcie配置空间和mmio空间。因此,即使在根复合体102不具有足够量的可用资源(例如,总线号)时,另外的装置也可以连接到rcep 106。
25.例如,端点114和116可以通过交换机112和根端口110电连接到rcep 106。如上文所提到,端点114和116可以是大部分任何类型的外围装置,包含存储装置、组网装置、声卡、显卡及类似者。类似于先前pcie结构,端点114和116可以简单地端接扩展pcie结构118。替代地且根据示例性实施例,端点114和/或116可以包含具有其自身的总线号的集合和mmio空间的另一rcep;因此,形成另一扩展pcie结构。因此,rcep实质上将网关功能性添加到pcie端点;且因此,在理论上允许几乎无限数目的节点附接到主根复合体。
26.尽管图1将扩展pcie结构118示出为具有仅一个根点110、一个交换机112、以及两个端点114和116,但各种实施例可以包含具有多个根端口、每扩展结构多个交换机、以及每交换机多个端点的扩展pcie结构。
27.根据示例性实施例,rcep 106的mmio可以包含可使用32位地址寻址的部分(被称作32位存储空间)和使用64位地址的部分(被称作64位存储空间)。根据此类实施例,rcep 106的pcie配置空间、32位存储空间以及64位存储空间可以被映射到主机pcie结构100的64位mmio空间(即,pcie结构100的mmio空间的可使用64位地址寻址的部分)。因此,根据此类实施例,rcep 106可以从主机pcie结构100的mmio空间进行存取。rcep 106的扩展结构的映射和计数可以使用与rcep 106相关联的端点驱动程序来进行,如下文更详细地说明。
28.根据其它示例性实施例,rcep 106还可以包含解决出现在其下游装置(例如,端点114和116)中的任何故障的故障处理机制。因此,在此类实施例中,故障可以由rcep 106包含且不向上游传播到pcie结构100,且rcep 106可以充当故障边界。此外,rcep 106可以产生错误中断以将任何故障通知给主根复合体102。在此类实施例中,这些错误中断可以用作报告机制,且出现在rcep 106的下游装置中的任何pcie故障都可以由rcep 106处理且不向上游传递到主根复合体102。关于错误中断报告和故障处理的具体细节可以是具体的实施方案且在计算平台/根复合体之间不同。例如,当前pcie标准保持关于根复合体如何处理故障的实施细节对计算平台/根复合体的不同的变化的设备商自定义的实施方案开放。因此,rcep 106的故障处理和错误报告机制的实施细节可以类似地对取决于可适用计算平台/根复合体配置的不同实施方案开放。
29.映射和存取扩展结构118的pcie配置空间可以使用任何合适的配置进行。例如,图2a和2b图示根据示例性实施例的pcie配置空间映射和存取的实例,所述pcie配置空间映射和存取支持使用mmio来存取pci配置空间。通常,物理地址空间200是主cpu的物理地址空间,所述物理地址空间可以是例如2
n-1字节大小(其中“n”是由主cpu实施的物理地址位的数目)。如图所示,物理地址空间200可以包含可通过32位物理地址寻址的空间的一部分202,以及可通过64位物理地址寻址的其余部分204。在此实施例中,部分202可以占用地址空间200的前4gb,而部分204可以占用地址空间200的其余部分。此外,部分204可以进一步包含分配到主第一层pcie结构(例如,pcie结构100)的64位mmio空间206的部分。当然,本文中涵盖mimo空间到pcie结构的其它存储器分配、配置和映射;且因此,除非另外明确地要求,否则本文中所描述的任何具体实施方案仅用于说明性目的。
30.根据示例性实施例,连接到pcie结构100或扩展结构118的装置的功能中的全部(或任何部分)都可以被映射到其对应的结构自身专用的256mb配置空间。此类空间可以可寻址的,例如通过知道某一特定装置功能的8位pci总线号、5位装置号和3位功能号。此类型的功能寻址可以在本文中被称作总线/装置/功能(bus/device/function,bdf)寻址,所述寻址允许用于每个pcie结构的总共256个总线号、32个装置和8个功能。通常,在此类实施例中,由于pcie的串行点对点连接结构,装置数目可以根据pcie总线标准结构设定成0。此外,根据此类实施例,每个装置功能可以享有配置寄存器的4kb。
31.如图所示,第一层pcie结构(例如,结构100)的pcie配置空间可以在空间202的部分中占用地址空间208的256mb。在此类实施例中,扩展pcie(例如,扩展结构118)的pcie配置空间可以被映射到在64位mmio空间206中的地址空间210的256mb。此外,在地址空间208
或210中的任何mmio事务都可以通过其相对应的根复合体对应地处理为pcie主结构100或扩展结构118的pcie配置存取事务。
32.在此类实施例中,扩展pcie配置空间210的地址可以在基址值212处开始。因此,位于总线号b、装置号d和功能号f处的pcie装置功能的配置空间寄存器可以在例如基址 (b d f)*4k处开始。替代地,还涵盖用于对装置空间寄存器寻址的其它合适的配置,且此处的bdf寻址的描述仅用于说明性目的。
33.图2b图示根据实例实施例的实例pcie装置物理地址格式220。格式220可以包含基址字段222(例如位于位n-1和28之间)、总线字段224(例如位于位27和20之间)、装置字段226(例如位于位19和15之间)、以及功能字段228(例如位于位14和12之间)。此外,在此类实施例中,位11到0可以包含正被存取的配置空间寄存器的偏移(例如,在装置内),所述偏移可以例如出于内存对齐目的被包含。
34.映射和存取扩展结构118的32位存储空间可以使用任何合适的配置进行。例如,图3a和3b图示根据示例性实施例的pcie 32位存储空间映射和存取的实例。通常,32位存储空间存取可以用于可以用32位地址存取的装置寄存器组。在此类实施例中,相对应的事务可以例如在pcie包头部中标记为32位pcie存储空间存取。当然,本文中涵盖mimo空间到pcie结构的其它存储器分配、配置和映射;且因此,除非另外明确地要求,否则本文中所描述的任何具体实施方案仅用于说明性目的。
35.在当前pcie标准下,32位地址空间的最大大小是4gb。此外,根据当前pcie标准,在某些计算平台(例如,x86平台)上,第一层pcie结构100的32位存储器可以与其pcie配置空间共享,并且因此可以是仅256mb大小。
36.根据示例性实施例,扩展pcie结构118可以具有其自身的与主cpu的物理地址空间200不同的32位存储空间。此外,如图3a中示出,rcep 106可以将扩展结构118的32位地址空间映射到在主机的64位mmio空间206上的较高64位地址窗口,如由存储空间302所图示。在此类实施例中,存储空间302可以与第一层结构(例如,pcie结构100)的32位存储空间300不同。此外,存储空间300可以位于主cpu的32位可寻址空间202处,所述可寻址空间可以在与pcie配置空间208一样低的4g空间内。如图所示,存储空间302在基地址304处开始且大小可以高达4gb。因此,根据此类实施例,装置寄存器组(例如,寄存器组308)可以通过知道所述寄存器组的适当偏移(例如,偏移306)来寻址。也就是说,寄存器组308的地址可以是基址304 偏移306。可替代地,还涵盖用于对寄存器组308寻址的其它合适的方案。
37.图3b图示根据实例实施例的对应地用于主地址空间和扩展结构地址空间的寄存器组物理地址格式310和312。格式310可以包含基址字段314(例如,占据位n-1到32)和偏移字段316(例如,占据位31到0)。在此类实施例中,格式310可以用于对映射到mmio空间206的装置寄存器组寻址。格式312可以仅包含用于对扩展结构(例如,结构118)上的装置寄存器组寻址的偏移字段318(例如,占据32位)。此外,在将pcie包放置在扩展结构118上之前,rcep 106可以分割高32位格式310(所述格式可以为64位长)且将所分割的pcie包标记为32位寻址包。
38.映射和存取扩展pcie结构118的64位存储空间可以使用任何合适的配置进行。例如,图4a和4b图示根据示例性实施例的64位存储空间映射和存取的实例。通常,64位存储空间存取可以用于可以用64位地址或32位地址存取的装置寄存器组。注意,如果将32位地址
范围指配给64位地址,那么pcie硬件可以使用32位pci存储空间配置方案来进行存取(例如,在图3a和3b中描述的配置)。在此类实施例中,相对应的事务可以在pcie包头部中标记为64位pcie存储空间存取。此外,出于历史原因,64位存储空间可以大体上位于物理地址空间的较低4gb之上。当然,本文中涵盖mimo空间到pcie结构的其它存储器分配、配置和映射;且因此,除非另外明确地要求,否则本文中所描述的任何具体实施方案仅用于说明性目的。
39.在此类实施例中,扩展pcie结构118可以具有其自身的与主cpu的物理地址空间200不同的64位存储空间。如图4a中示出,rcep 106可以将扩展结构118的64位地址空间映射到主cpu的64位mmio空间206,如通过存储空间402所图示。此外,存储空间402可以与第一层结构100的64位pcie存储空间400不同,所述存储空间402还可以位于64位mmio空间206中。在此类实施例中,存储空间402可以在基地址404处开始且大小可以是例如m倍4gb(其中m是常数,表示空间402可以具有一倍或多倍4gb的大小)。此外,装置寄存器组(例如,寄存器组408)可以通过知道所述寄存器组的适当的偏移(例如,偏移406)进行寻址。因此,根据此类实施例,寄存器组408的地址可以是基址404 偏移406。替代地,还涵盖用于对寄存器组408寻址的其它合适的方案。
40.图4b图示根据实例实施例的对应地用于主cpu地址空间和扩展结构地址空间的寄存器组物理地址格式410和416/418。格式410可以包含基址字段412(例如,占据位n-1到p)和偏移字段414(例如,占据位p-1到0)。常数p的值可以是32 ln(m),所述32 ln(m)可以取整到下一最高整数值。格式410可以用于对映射到64位mmio空间206的装置寄存器组寻址。
41.在某些示例性实施例中,对在扩展结构118上的装置寄存器组寻址可以使用格式416进行。例如,如果基址物理地址与扩展结构118的存储空间配置大小对齐,那么可以使用格式416。使用格式416,rcep 106可以分割格式410的较高位(例如,位63到p)以形成扩展结构118的64位地址。在其它示例性实施例中,如果基址物理地址不与扩展结构118的存储空间大小对齐,那么可以使用格式418。在此类实施例中,为了补偿物理地址的非对齐,可以将偏移420添加到64位系统基地址422。此外,如果基地址至少4gb对齐(例如,较低32位是0),那么可以仅针对基地址的高32位执行大小调整。
42.在示例性实施例中,扩展结构118的pcie配置空间210、32位存储空间302和64位存储空间402可以在主cpu中重叠。在此类实施例中,rcep 106可以从主cpu请求足够大以容纳所有所需地址范围(例如,空间210、302和402)的公共映射窗口,且rcep 106随后可以视需要将公共映射窗口划分成各种所需寻址范围。
43.根据示例性实施例,扩展结构118可以支持装置中断,所述装置中断可以使用任何合适的方法处理。例如,扩展结构118可以使用消息中断(message signaled interrupt,msi)配置。在此类实施例中,源自连接到扩展结构118的装置(例如,端点114和116)的msi可以根据pcie总线标准传递到可适用根端口(例如,根端口110)。此外,rcep 106的根端口110可以具有用于msi的预指配地址窗口。在此类实施例中,当存储器写地址匹配预指配msi地址窗口时,所述事务可以识别为中断。此外,根端口110可以收集源自其下游结构的所有msi且将其存到队列中(其中所述队列可以位于在物理地址空间200中的主cpu的存储器中)。根端口110随后可以向其上游根端口(例如,主根端口103)发信号通知单独的中断,所述中断还可以是msi。主根端口102随后可以根据所接收的中断触发适当的软件处理程序。rcep 106的根端口110的中断处理程序随后可以检查主存储器中的msi队列、确定发端装置(例
如,端点114或116)、且调度装置驱动程序的适当的中断处理程序。当然,本文中涵盖用于处理装置中断的其它方案;且因此,除非另外明确地要求,否则本文中所描述的任何具体实施方案仅用于说明性目的。
44.根据其它示例性实施例,扩展结构118还可以支持直接存储器存取(direct memory access,dma),所述直接存储器存取可以使用任何合适的方法处理。在此类实施例中,dma事务可以包含读请求、读完成、以及写请求。pcie包可以携带系统物理地址或通过输入/输出存储器管理单元(input/output memory management unit,iommu)转换的输入/输出(input/output,io)虚地址。此外,pcie请求程序id可以是根据结构的。因此,当某一请求穿过pcie结构边界且去往上游到达主机pcie结构100时,可以用rcep 106的id取代请求程序id。也就是说,在扩展结构118上,请求程序id可以是端点装置(例如,端点114或116)的id。当所述请求被向上游转发到根复合体102时,可以用rcep 106的id取代请求程序id。
45.在此类实施例中,dma写是指将数据从某一装置(例如,端点114或116)移动到主cpu的存储器。当通过rcep 106将所述请求向上游传递到根复合体102和主cpu时,rcep 106可以用rcep 106的id取代装置id。此外,dma读是指将数据从主cpu的存储器移动到装置。在此类实施例中,rcep 106可以利用硬件记分板通过将事务的事务标签(例如,作为请求包的部分)指配给结构100来跟踪所有读请求。这些事务标签可以链接到rcep 106的记分板条目,且可以用于记录源于扩展结构118上的读请求包的请求程序id。根据此类实施例,由rcep 106从根复合体102接收的完成数据可以携带与相对应的读请求相同的事务标签。因此,在此类实施例中,事务标签可以用于与记分板条目匹配以确定在扩展结构118上使用的适当的装置id。当然,本文中涵盖用于处理dma请求的其它方案;且因此,除非另外明确地要求,否则本文中所描述的任何具体实施方案仅用于说明性目的。
46.因此,使用在上述段落的示例性实施例中所描述的各种pcie配置存取、存储器存取、dma以及中断机制,rcep装置可以用于托管扩展pcie结构且将另外装置(例如,另外rcep装置和/或外围装置)连接到主根复合体。rcep装置可以类似于典型的pcie根复合体逻辑。每个扩展pcie结构可以具有其自身的mmio空间和总线号的集合。因此,可以附接到主cpu的装置的总数目可以不限于主机pcie结构的可用总线号的数目。在此类实施例中,扩展结构中的每一个的mmio空间可以映射到其父代结构(例如,扩展结构118的父代结构是第一层结构100)的64位mmio空间以便于存取。此外,扩展结构的结构计数可以通过rcep端点装置驱动程序实现。在此类实施例中,每个rcep都可以处理起源于可适用扩展根复合体结构上的故障。因此,可以实现故障隔离,使得下游结构故障可以在扩展pcie结构的结构边界处被拦截且不传播到上游。
47.根据示例性实施例,几乎任何外围装置(例如,声卡、显卡、网络驱动程序、存储器卡及类似者)都可以连接到扩展结构且不必改变其驱动软件。在此类实施例中,扩展pcie结构以与第一层pcie结构相同的方式与外围装置交互。此外,可以修改和/或创建主cpu的软件(例如,操作系统)和rcep驱动程序以设置寄存器映射、dma地址映射、通过rcep实施中断处理程序,以及其它类似的功能。因此,不必将外围装置连接到扩展pcie结构而非第一层pcie结构通知给它们。因此,扩展pcie结构和rcep可以与现有外围装置驱动程序相容。
48.虽然已参考说明性实施例描述了本发明,但此描述并不意图限制本发明。所属领域的技术人员在参考该描述后,将会明白说明性实施例的各种修改和组合,以及本发明其
他实施例。因此,所附权利要求书意图涵盖任何此类修改或实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献