CN101311915A - 用于动态重分派虚拟通道资源的方法和系统 - Google Patents
用于动态重分派虚拟通道资源的方法和系统 Download PDFInfo
- Publication number
- CN101311915A CN101311915A CNA2008101079392A CN200810107939A CN101311915A CN 101311915 A CN101311915 A CN 101311915A CN A2008101079392 A CNA2008101079392 A CN A2008101079392A CN 200810107939 A CN200810107939 A CN 200810107939A CN 101311915 A CN101311915 A CN 101311915A
- Authority
- CN
- China
- Prior art keywords
- tunnel
- bridge
- assigning
- configuration
- port
- 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
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000004590 computer program Methods 0.000 claims description 4
- 239000000872 buffer Substances 0.000 abstract description 55
- 230000004044 response Effects 0.000 description 18
- 230000008859 change Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 17
- 230000005540 biological transmission Effects 0.000 description 11
- 230000003139 buffering effect Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000000712 assembly Effects 0.000 description 6
- 238000000429 assembly Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000003446 ligand Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
- G06F13/4273—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a clocked protocol
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
提出了一种用于在期间动态重分派缓冲器空间、以最大化虚拟通道的IO性能的系统和方法。更具体地,用于动态重分派缓冲器空间的系统和方法从未使用的虚拟通道取出缓冲器空间,并且例如当IO配置出现改变时,将未使用的缓冲器空间重分派到使用的虚拟通道。例如,在支持四个虚拟通道的实施例中,其中仅两个虚拟通道在使用,该系统和方法重分派来自其他两个未使用的虚拟通道的缓冲器空间,用于由该两个使用中的虚拟通道使用。
Description
技术领域
本发明一般涉及计算机和类似技术领域,并且具体涉及计算机输入输出(IO)性能。更具体地,本发明涉及动态重分派缓冲器分配以最大化虚拟通道的IO性能。
背景技术
随着当代社会对计算机持续增加的依赖,计算机技术已经必须向许多前沿推进,以跟上增加的性能需求。为了满足增加的性能需求,经常期望提供日益更快速和更复杂的硬件组件。而且,在许多应用中,多个硬件组件(如处理器)和外围组件(如存储设备、网络连接等)并行操作以增加整体系统性能。
已经对其贯注开发努力的一个特殊领域是:管理由计算机利用的硬件组件(例如,存储设备)、网络连接、工作站、以及适配器、控制器和其他被利用来将这些组件连接到计算机的中央处理单元(即,处理器)的互连硬件设备。经常被称为输入/输出(IO)资源的外围组件典型地经由一个或多个中间互连硬件设备组件耦合到计算机,该一个或多个中间互连硬件设备组件形成“构造(fabric),中央处理单元和IO资源之间的通信通过该“构造”。
在更高性能的计算机设计中,IO性能可能使得互连硬件设备的复杂配置成为必须以处理设计的通信需要。在一些实例中,通信需要可能大到足以使额外壳体成为必须,该额外壳体与计算机的中央处理单元容纳于其中的壳体相分离并且与其耦合。
经常,在更复杂的设计中,如IO适配器的外围组件可以使用在计算机的主壳体或辅助壳体的任一或两者中安排的插槽而耦合到IO构造。其他组件可以以其他方式(例如,经由缆线和其他类型的连接器)安装或耦合到IO构造;然而,这些其他类型的连接也称作插槽。不管使用的连接类型,IO插槽因此表示IO资源经由IO构造与计算机通信的连接点,或IO端点。
在更高性能的计算机设计中,系统中可用的IO插槽的数量可以扩展达到数百个。当处理大量IO插槽时,IO可使用IO盒(drawer)与CPU综合体分离。为了将IO盒连接到CPU综合体,IO功能被划分为两个组件,集线器和桥。集线器指直接连接到处理器综合体(也称作处理器节点)的IO功能的部分。桥指与集线器连接的IO盒中的组件。
依赖于IO盒设计,每个IO盒可以有一个或多个IO桥。随着系统扩展,IO集线器的数量也与IO桥的数量一起增加。当将多个IO桥附接到单个集线器时,桥可以被串到一起并以环状或线状(string)配置连接到集线器。数据经由如工业标准总线(如InfiniBand或外围组件互连高速(PCI-Express))的总线在集线器和桥之间传递。符合InfiniBand或PCI-Express协议的总线使用称作虚拟通道的概念在各种组件之间传递数据。每个虚拟通道具有设置数量的被分派给其、用于双向传递数据的缓冲器空间。与虚拟通道有关的一个问题在于,由于成本和空间限制,每个虚拟通道的缓冲器空间量是有限的。该限制可以限定系统和各个IO组件的整体IO性能。
因此,将期望提供一种用于在初始化和运行时应用期间重分派缓冲器空间、以最大化虚拟通道的IO性能的方法。
发明内容
根据本发明,提出了一种用于在期间重分派缓冲器空间以最大化虚拟通道的IO性能的方法。更具体地,用于重分派缓冲器空间的方法从未使用的虚拟通道获得缓冲器空间,并将未使用的缓冲器空间重分派给使用的虚拟通道。例如,在支持其中仅使用两个虚拟通道的四个虚拟通道的实施例中,该方法从其他两个未使用的虚拟通道重分派缓冲器空间,用于由使用中的两个虚拟通道使用。
当重分派虚拟通道缓冲器空间时,虚拟通道缓冲器空间可以基于数据移动的方向分配。利用虚拟通道缓冲器空间,缓冲器空间被分离为用于传递数据的空间和用于接收数据的空间。为了传递数据,仅需要将数据移交给相邻组件的足够空间,为了接收数据,期望尽可能多的空间以捕获被请求的数据和从另一组件传递的数据。
因此,在本发明的一个方面中,缓冲器空间从未使用的虚拟通道移除,然后基于数据流的方向重分派。对于用于传递数据的虚拟通道,缓冲器空间被设置为最小缓冲器空间大小,而对于用于接收数据的虚拟通道,缓冲器空间被设置为最大缓冲器空间大小。
在本发明的另一方面中,当重分派缓冲器空间时还考虑桥的配置。例如,当桥以桥的环状或线状配置来配置时,数据流动的方向将基于桥相对于集线器的位置而变化。更具体地,利用桥的环,一些桥以朝向集线器的一个方向发送数据,而一些桥以另一方向发送数据。对于线状配置,数据仅以相对于集线器的一个方向流动。
用于重分派缓冲器空间的系统确定可能出现的各种配置,并且在初始化期间配置系统。此外,用于重分派缓冲器空间的系统处理这样的运行时情形,其中如由于错误状况、或盒添加或移除、或环断裂为线或线连接为环,数据方向改变。在那些情形中,用于重分派缓冲器空间的系统在运行时期间重分配缓冲器以维持系统的性能。此外,在某些情形中,期望系统考虑数据在重分配之前被暂时停止的情况。
在某些实施例中,用于重分派缓冲器空间的系统在系统的固件中实现。在系统的初始化期间,固件首先确定哪个虚拟通道将不被使用并且将缓冲器空间重分派给剩余的虚拟通道。然后基于桥如何附接到集线器,固件分配缓冲器空间以最大化IO性能,使得接收数据的虚拟通道端口相对于传递数据的虚拟通道具有大多数缓冲器空间。固件然后对数据方向改变监视系统。如果检测到这样的改变,则固件在第一次暂停数据流后,以另一方向重分派虚拟通道缓冲器以最大化性能。
本发明的上述以及其他目的、特征和优点在下面详细的书面描述中将变得明显。
附图说明
本发明被认为新颖性特征的特性在权利要求书中提出。然而,当结合附图阅读时,通过参照图示的实施例的详细描述,本发明自身以及其优选使用模式、其他目的和其优点将被最好地理解,附图中:
图1示出可以实现本发明的示例性计算机系统的框图;
图2示出虚拟通道数据流的示例的框图;
图3示出集线器和多个桥以环状配置互连的示例的框图;
图4示出集线器和多个桥以线状配置互连的示例的框图;
图5示出集线器和多个桥以多线状配置的示例的框图;
图6示出用于重分派虚拟通道资源的系统的操作的流程图;
图7示出用于动态重分派虚拟通道资源的系统的操作的流程图。
具体实施方式
参照图1,示出其中可实现本发明的示例性计算机系统的框图。更具体地,计算机系统100包括经由链路(如InfiniBand链路)耦合到输入输出(IO)盒单元112的至少一个处理器节点110。处理器节点110包括耦合到存储器122以及集线器124的多个处理器120a和120b。输入输出盒单元112包括一个或多个桥140。集线器124和桥140的组合提供IO控制器(IOC)。盒单元112为物理封装。典型地但不是必要地,IO盒单元驻留在机架内。
集线器124实现多个架构端口150a和150b。桥140的每个实现多个架构端口152a和152b。每个端口提供将设备耦合到链路的双向接口。链路是在两个设备上的两个端口之间的双向高速连接。
存储器122包括易失性和非易失性存储器。固件160存储在存储器122中并且由至少一个处理器120执行。固件160包括用于重分派虚拟通道资源162的系统。
在某些实施例中,系统100可以包括多个IO盒单元112,其中每个IO盒单元112包括多个插槽(例如,每个盒6到20个插槽),以及每个IO盒单元112一个或多个(例如1到4)桥。IO盒单元112可以以线状或环状配置彼此耦合。IO插槽的每个可以符合如PCIX或PCI Express协议的IO协议。
信息在集线器和桥之间经由虚拟通道通信。虚拟通道允许基于类型(例如,响应/请求)分离数据,并处理服务质量以及排序和相干问题。
存在用于在集线器和桥之间传送数据的两种主要的命令类型。该两种命令类型是请求和响应。当设备正请求如DMA读/写、存储器-映射的读/写读、IO读/写、配置读/写、消息和中断的事件时使用请求。当数据从如从DMA读请求返回的数据的请求返回时使用响应。请求和响应是不排序的,并且被当作独立的流。为了这样做,它们被分派了不同的虚拟通道。
参照图2,示出端口和链路的互连的框图。更具体地,每个端口150、152包括多个虚拟通道210以及发射器220和接收器222。每个虚拟通道包括发送缓冲器230和接收缓冲器232。每个缓冲器对提供虚拟通道缓冲器资源。
在一个实施例中,集线器124的每个端口150和152以及桥140实现四对发送/接收缓冲器对。每个端口实现多个虚拟通道,其包括:数据虚拟通道(VL0-VL3),该数据虚拟通道用作用于发送和接收数据分组的数据缓冲器;以及虚拟通道15(VL 15),其用作专用于SMP分组的发送和接收的子网管理分组(SMP)缓冲器。
即使所有虚拟通道使用相同的物理线路(即,链路)来传送数据,每个虚拟通道也被当作独立的数据流。因为每个虚拟通道是独立的数据流,所以每个虚拟通道包括独立的缓冲器空间、与每个虚拟通道的传送协议相关联的任意和其他项目。每个虚拟通道具有设置数量的分派的缓冲器空间,用于在两个方向上传递数据。缓冲器空间用于当其在设备之间跨接时暂时存储数据。集线器和桥使用流控制来在彼此之间通信可用的缓冲器空间量。如果相邻的设备没有足够的缓冲器空间来存储正在传递的数据,则传递设备不能转发数据。
图3示出集线器和多个桥以环状配置的互连的示例的框图。更具体地,在环状配置中,第一集线器端口(端口1)耦合到第一桥的第一桥端口(桥0,端口1)。第一桥的第二桥端口(桥0,端口2)耦合到第二桥的第一桥端口(桥1,端口1)。第二桥的第二桥端口(桥1,端口2)耦合到第三桥的第一桥端口(桥2,端口1)。第三桥的第二桥端口(桥2,端口2)耦合到第四桥的第一桥端口(桥3,端口1)。第四桥的第二桥端口(桥3,端口2)耦合到集线器的第二端口(端口2)。
图4示出集线器和多个桥以线状配置的互连的示例的框图。更具体地,在线状配置中,第一集线器端口(端口1)耦合到第一桥的第一桥端口(桥0,端口1)。第一桥的第二桥端口(桥0,端口2)耦合到第二桥的第一桥端口(桥1,端口1)。第二桥的第二桥端口(桥1,端口2)耦合到第三桥的第一桥端口(桥2,端口1)。第三桥的第二桥端口(桥2,端口2)耦合到第四桥的第一桥端口(桥3,端口1)。第四桥的第二桥端口(桥3,端口2)没有附接。集线器的第二端口也没有附接。
图5示出集线器和多个桥以多线状配置的示例的框图。更具体地,在多线状配置中,第一集线器端口(端口1)耦合到第一桥的第一桥端口(桥0,端口1)。此外,第二桥的第二桥端口(桥1,端口2)耦合到第三桥的第一桥端口(桥2,端口1)。第三桥的第二桥端口(桥2,端口2)耦合到第四桥的第一桥端口(桥3,端口1)。第四桥的第二桥端口(桥3,端口2)耦合到集线器的第二端口(端口2)。第一桥和第二桥没有连接。
参照图6,示出用于重分派虚拟通道资源的系统的操作的流程图。更具体地,用于重分派虚拟通道资源的系统600在步骤610通过标识系统100内的可用集线器和桥开始操作。接下来,在步骤612,系统确定系统内的哪些虚拟通道没有被分派(即,没有正被系统使用)。例如在一个实现中,当IO盒单元具有四个虚拟通道时,仅仅分派了虚拟通道0和1。如果系统600确定一些虚拟通道没有正被使用,则系统600在步骤614从未使用的虚拟通道重分派一些或全部缓冲器空间到使用的虚拟通道。例如,在虚拟通道2和3没有正被使用的实施例中,系统600将缓冲器空间从虚拟通道2和3重分派到虚拟通道0和1。
接下来,系统600在步骤620确定系统100内的数据流。数据流可以在初始化期间已经通过固件分派,或可在步骤620通过固件分派。资源的分配的某些方面依赖于数据流的方向。在步骤622,系统基于数据流配置虚拟通道资源。
对于线状,所有数据流在集线器和任何给定的桥之间以一个方向流动。对于线状配置,固件以一个方向分派数据流。在环状配置中,任何给定的桥具有两个可能的数据路径来发送数据到集线器。在一个实施例中,对于环状配置,固件划分数据流,使得一半的桥发送数据到集线器端口1,而一半的桥发送数据到集线器端口2。如果固件考虑哪些设备耦合到特定桥的插槽、然后基于相对于桥的数量的设备的潜在带宽分派数据流,则固件可以不同地分配桥是可能的。系统600通过读取与数据流功能相关的集线器和桥中的寄存器确定数据流的方向。
接下来,在步骤624,系统标识虚拟通道资源增量,并确定为每个虚拟通道分派多少缓冲区空间。
例如,在一个实施例中,在具有2K字节的可用虚拟通道缓冲器资源和512字节的虚拟通道粒度(granularity)的系统中,存在多个可能的虚拟通道缓冲器分派。更具体地,虚拟通道缓冲器分派包括:
VL0=512,VL1=1536,
VL0=1536,VL1=512
VL0=1024,VL1=1024
将认识到,关于虚拟通道缓冲器大小和虚拟通道缓冲器粒度其他可能分派的变化是可用的。
在线状配置中,集线器的路径中的一个端口直接连接到集线器,或者耦合到与集线器连接的桥或多个桥。在环状配置中,桥的各端口之一在集线器的端口1的路径中,而桥的另一个端口在集线器的端口2的路径中。即使每个桥在环状配置下具有两个到集线器的路径,但是数据仅在一个路径上流动。
而且,因为IO盒单元112对每个集线器124可包括一系列桥140,所以桥140还可发送通过数据到与集线器124通信的相邻桥,而不是其自己的数据。
接下来在步骤628,系统基于桥140的数据流方向,配置每个桥的虚拟通道入端口缓冲器设置。更具体地,正发送数据到集线器124的桥端口被称作入端口。正以远离集线器124的方向传递数据到相邻桥的桥端口被称作出端口。
对于入端口,请求以集线器124的方向传递。这些请求在桥内部产生,或者各请求当从出端口通过时被传递。因为这些请求是短期的,所以缓冲器需求是在集线器124的方向上传递的请求最小。对于入端口,响应表示来自之前请求的数据,该之前请求来自内部请求或来自出端口的下游的桥的请求。为了最大化性能并最小化时间,在发送更多响应数据到入端口之前相邻的桥必需等待,响应虚拟通道资源应当最大化。因此,对于入端口,期望最大化用于响应的虚拟通道缓冲并最小化用于请求的虚拟通道缓冲。
使用具有2K字节的虚拟通道缓冲器资源的系统的示例,对于入端口,虚拟通道0被配置为处理请求,而虚拟通道1被配置为处理响应。因此资源被配置使得VL0资源被最小化为512字节,并且VL1资源被最大化到1536字节。
对于出端口,请求从相邻桥接收。可以有一个相邻桥和多个相邻桥。为了避免变为瓶颈,出端口应当被配置为接受尽可能多的请求。因此,用于处理出端口的请求的虚拟通道缓冲器空间应当被最大化。对于出端口,响应从入端口流动到出端口。因为响应在相对短的期间传递通过,所以不需要大量缓冲器空间,因为响应的性能由出端口正转发数据到其的相邻桥的入端口的虚拟通道缓冲确定。因此,对于出端口,期望最大化用于请求的虚拟通道缓冲并最小化用于响应的虚拟通道缓冲。
使用具有2K字节的虚拟通道缓冲器资源的系统的示例,对于出端口,虚拟通道0被配置为处理请求,而虚拟通道1被配置为处理响应。因此,资源被配置使得VL0资源被最大化为1536字节,而VL1资源被最小化为512字节。
因此,与从相邻桥接收数据相关联的虚拟通道被最大化,而与桥内各端口之间传递数据相关联的虚拟通道被最小化。
例如,再次参照图3,固件设置最接近集线器124的端口1的两个桥的数据流,使得数据通过桥的端口1流向集线器的端口1,并且设置最接近集线器的端口2的两个桥(桥2和桥3)的数据,使得数据通过桥的端口2流向集线器124的端口2。
使用具有2K字节的虚拟通道缓冲器资源的系统的示例,对于桥0和桥1,资源被分派使得端口1虚拟通道0请求资源被最小化(例如,到512字节),并且端口1虚拟通道1响应资源被最大化(例如,到1536字节),而端口2虚拟通道0请求资源被最大化(例如,到1536字节),并且端口2虚拟通道1响应资源被最小化(例如,到1536字节)。对于桥2和桥3,资源被分派使得端口1虚拟通道0请求资源被最大化(例如,到1536字节),并且端口1虚拟通道1响应资源被最小化(例如,到512字节),而端口2虚拟通道0请求资源被最小化(例如,到512字节),并且端口2虚拟通道1响应资源被最大化(例如,到1536字节)。
还例如,再次参照图4,固件设置所有四个桥的数据流,使得数据通过桥的端口1流向集线器的端口1,反之亦然。
使用具有2K字节的虚拟通道缓冲器资源的系统的示例,资源被分派使得端口1虚拟通道0请求资源被最小化(例如,到512字节),并且端口1虚拟通道1响应资源被最大化(例如,到1536字节),而端口2虚拟通道0请求资源被最大化(例如,到1536字节),并且端口2虚拟通道1响应资源被最小化(例如,到1536字节)。
虚拟通道资源的重分派可以在系统初始化过程(即,在系统的启动时)期间出现。这样的重分派被称作静态重分派。此外,在某些情形,可能期望在系统正在执行时执行重分派操作。这样的重分派被称作动态重分派。
例如,当桥配置从环状配置改变为线状配置时(如,如果环的一端变得断开时可能发生),可能期望虚拟分组资源的动态重分派。当桥配置从环状配置改变为多线状配置时(如,如果环内的两个桥变得断开时可能发生),可能期望虚拟分组资源的动态重分派。当额外的IO盒单元被添加到系统时还可能期望虚拟通道资源的动态重分派。当IO盒单元从系统移除时还可能期望虚拟通道资源的动态重分派。
更具体地,对于桥配置从环状配置改变为线状配置的情形,当虚拟通道资源初始重分派时,某些桥(例如,桥0和1)的虚拟通道资源被配置为在一个方向上发送,而其他桥(例如,桥2和3)的虚拟通道资源被配置为在另一方向上发送数据。如果在运行时期间桥配置改变,则如果虚拟通道资源没有被重分派,那么虚拟通道资源的性能将被不利地影响。
用于重分派虚拟通道资源的系统可能包括在管理各分区的固件管理器中,或包括在作为运行时抽象服务(RTAS)的一部分的固件元件中。
存在多种机制,经由该机制固件可能变得知道桥配置的改变。例如,固件可能经由报告错误已经出现的中断知道桥配置的改变。固件可能经由查询数据流方向和缆线附接的轮询机制变得知道桥配置的改变。此外,固件可能经由客户想要添加或移除盒的情形的服务调用变得知道桥配置的改变。
对于错误情形,其中方向由于坏缆线或一些其他错误状况而被阻塞,如果处于环状模式,则桥自动将业务量的方向反转为相反的集线器端口。然而,随着业务量的方向反转,虚拟通道资源配置不再是最优的。如果虚拟通道缓冲器分配没有动态地重分派以考虑新的数据流方向,则这样的最优化的缺乏可能导致超过75%数据损失。
更具体地,参照图7,示出用于动态重分派虚拟通道资源的系统的操作的流程图。在步骤710,系统通过确定桥配置改变是否已经发生而开始操作。这样的确定可以由以轮询操作模式操作的系统700进行,以确定桥配置改变是否已经出现。这样的改变可以通过中断的接收或通过服务调用的指示而检测。如果检测到中断,则系统在步骤712确定是否存在错误情况。如果存在错误情况,则系统700在步骤714分析桥配置以确定数据流的方向是否改变。如果数据流的方向还没有改变,则不做任何事,并且继续监视以确定桥配置改变是否已经出现。如果数据流的方向已经改变,则系统700在步骤716开始重分配虚拟通道资源的过程,以最优化用于新的桥配置的那些资源。
更具体地,如果IO盒单元出现错误并且环状配置已经改变(例如,到线状配置或多线状配置),则用于动态重分派虚拟通道资源的系统重分配虚拟通道缓冲器资源分派。
更具体地,用于动态重分派虚拟通道资源的系统确定环在何处断开(即,在环的端部或中间)。接下来,系统确定每个桥的方向流。如果桥位于线的端部,则方向流可能是相同的,而如果桥位于线的中间,则方向流取决于桥配置中何处出现断开。接下来,系统暂时停止所有通过桥的业务量。接下来,系统基于每个桥确定的数据流重分配虚拟通道缓冲,然后重启桥内的业务量流。
对于错误情况,系统700典型地从指示错误情况的硬件经由中断确定出现错误。然而,系统还可以经由与数据流方向有关的桥内的寄存器的轮询确定出现错误。如果寄存器指示数据流方向不同于由系统700所理解的方向,则用于动态重分派虚拟通道资源的系统将是最优化新标识的数据流的资源的过程。
对于从线状配置到环状配置的桥配置的改变,如果桥被配置为产生这样的中断,则中断可能出现。然而,典型地,从线状配置到环状配置的改变由轮询标识。固件可能检查另一组寄存器以确认链路(如InfiniBand缆线)的存在。如果固件确定缆线已经被重新附接或替代,则固件可以调整桥配置从线状配置到环状配置。当桥配置已经从线状配置改变到环状配置以允许系统利用数据业务量的集线器的两个端口用于数据业务量时,出于性能原因重新平衡虚拟通道资源是重要的。
当重新平衡虚拟通道资源时,用于动态重分派虚拟通道资源的系统首先检测电缆附接。接下来,系统配置集线器的端口,使得端口是活动和可用的。接下来,系统暂时停止通过桥的业务量流。接下来,系统将一些桥的数据流重定向,以将业务量从线状配置重新平衡到桥配置。接下来,系统基于每个桥的新的数据流,重分配虚拟通道缓冲。接下来,系统重启通过桥的业务量流。
当添加新的IO盒单元时,固件被通知新的盒已经加入该配置。接下来,用于动态重分派虚拟通道资源的系统将新添加的IO盒单元通电,并且配置IO盒单元。接下来,系统确定新的IO盒单元内的桥的桥配置。(即,桥是以环状配置、线状配置还是多线配置来配置。)。接下来系统确定IO盒单元内的每个桥的数据流。如果桥以环状配置安排,则如果这样的数据流还没有被分派,则系统确定理想的数据流。接下来,系统基于每个桥的数据流重分配虚拟通道缓冲,然后重启IO盒单元内的业务量流。
当从系统移除IO盒单元时,用于动态重分派虚拟通道资源的系统与当盒单元添加时基本相同地操作,除了系统断电盒单元,并可能促使用户重新附接缆线以完成剩余的桥配置。
尽管已经参照优选实施例具体示出和描述本发明,但是本领域技术人员将理解,在形式和细节上可进行各种改变而不背离本发明的精神和范围。而且,如在说明书和权利要求书中所使用的,术语“计算机”或“系统”或“计算机系统”或“计算设备”包括任何数据处理系统,该数据处理系统包括但不限于个人计算机、服务器、工作站、网络计算机、大型计算机、路由器、交换机、个人数字助理(PDA)、电话、和任何其他能够处理、传输、接收、捕获和/或存储数据的系统。
如本领域技术人员将认识到的,本发明可以体现为方法、系统或计算机程序产品。因此,本发明可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合软件和硬件方面(其在这里可统称为“电路”、“模块”或“系统”)的实施例的形式。此外,本发明可采取计算机可使用存储介质上的计算机程序产品的形式,该计算机可使用存储介质具有介质中体现的计算机可使用程序代码。例如,尽管参照固件实现描述了用于重分派缓冲器的系统,但是将认识到,系统可以以软件、硬件或硬件和软件的一些组合实现。
附图中的框图图示了根据本发明的各种实施例的系统和方法的可能实现的架构、功能和操作。还将注意到,框图的每个块、以及框图中各块的组合可通过执行特定功能或动作的基于专用硬件的系统、或专用硬件和计算机指令的组合实现。
这里使用的术语仅出于描述特定实施例的目的,并且意图不限制本发明。如这里使用的,单数形式“一个(a)”、“一个(an)”和“该(the)”意图也包括复数形式,除非上下文清楚地另有所指。还将理解,术语“包括(comprise)”和/或“包括(comprising)”当在该说明书中使用时指定所述特征、整体、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整体、步骤、操作、元件、组件和/或其组合的存在或添加。
权利要求中所有部件或步骤加功能元件对应的结构、材料、动作和等效意图包括用于与如特定声明的其他要求保护的元件结合执行功能的任何结构、材料或动作。本发明的描述已经为了图示和描述目的呈现,但是意图不在于是穷尽的或限制为公开的形式的本发明。对于本领域普通技术人员许多修改和变化将是明显的,而不背离本发明的范围和精神。选择和描述实施例以便最好解释本发明的原理和实践应用,并使得本领域普通技术人员对具有适于预期的特定使用的各种修改的各种实施例理解本发明。
因此已经详细地并通过参照其优选实施例描述了本应用的发明,将认识到,修改和变化是可能的,而不背离在权利要求书中定义的本发明的范围。
Claims (18)
1.一种用于动态分派具有集线器和多个桥的计算机系统内的虚拟通道资源的方法,该方法包括:
标识多个桥的每个中分派的虚拟通道和未分派的虚拟通道,分派的虚拟通道包括分派的虚拟通道资源,而未分派的虚拟通道包括未分派的虚拟通道资源;以及
将未分派的虚拟通道资源从未分派的虚拟通道动态重分派到分派的虚拟通道。
2.如权利要求1所述的方法,其中:
多个桥以环状配置和线状配置的至少一个配置;以及
动态重分派考虑到多个桥是以环状配置还是线状配置来配置。
3.如权利要求2所述的方法,其中:
当桥配置从环状配置改变到线状配置时,出现动态重分派。
4.如权利要求2所述的方法,其中:
当桥配置从环状配置改变到多线状配置时,出现动态重分派。
5.如权利要求2所述的方法,其中:
桥包括在输入/输出IO盒单元中;以及
当IO盒单元添加到计算机系统或从计算机系统移除时,出现动态重分派。
6.如权利要求1所述的方法,其中:
集线器和多个桥经由链路耦合;以及
链路符合InfiniBand协议和外围组件互连高速协议中的至少一个。
7.一种系统,包括:
处理器;
耦合到处理器的集线器;
耦合到处理器的多个桥;以及
体现计算机程序代码的计算机可读介质,计算机程序代码包括可由处理器执行的指令并被配置用于:
标识多个桥的每个中分派的虚拟通道和未分派的虚拟通道,分派的
虚拟通道包括分派的虚拟通道资源,而未分派的虚拟通道包括未分派的虚拟通道资源;以及
将未分派的虚拟通道资源从未分派的虚拟通道动态重分派到分派的虚拟通道。
8.如权利要求7所述的系统,其中:
多个桥以环状配置和线状配置的至少一个配置;以及
动态重分派考虑到多个桥是以环状配置还是线状配置来配置。
9.如权利要求8所述的系统,其中:
当桥配置从环状配置改变到线状配置时,出现动态重分派。
10.如权利要求8所述的系统,其中:
当桥配置从环状配置改变到多线状配置时,出现动态重分派。
11.如权利要求8所述的系统,其中:
桥包括在输入/输出IO盒单元中;以及
当IO盒单元添加到计算机系统或从计算机系统移除时,出现动态重分派。
12.如权利要求7所述的系统,其中:
集线器和多个桥经由链路耦合;以及
链路符合InfiniBand协议和外围组件互连高速协议中的至少一个。
13.一种系统,包括:
处理器;
耦合到处理器的集线器;
耦合到处理器的多个桥;以及
用于重分派虚拟通道资源的系统,该用于重分派虚拟通道资源的系统包括:
用于标识多个桥的每个中分派的虚拟通道和未分派的虚拟通道的模块,分派的虚拟通道包括分派的虚拟通道资源,而未分派的虚拟通道包括未分派的虚拟通道资源;以及
用于将未分派的虚拟通道资源从未分派的虚拟通道动态重分派到分派的虚拟通道的模块。
14.如权利要求13所述的系统,其中:
多个桥以环状配置和线状配置的至少一个配置;以及
用于动态重分派的模块考虑到多个桥是以环状配置还是线状配置来配置。
15.如权利要求14所述的系统,其中:
当桥配置从环状配置改变到线状配置时,出现动态重分派。
16.如权利要求14所述的系统,其中:
当桥配置从环状配置改变到多线状配置时,出现动态重分派。
17.如权利要求14所述的系统,其中:
桥包括在输入/输出IO盒单元中;以及
当IO盒单元添加到计算机系统或从计算机系统移除时,出现动态重分派。
18.如权利要求11所述的系统,其中:
集线器和多个桥经由链路耦合;以及
链路符合InfiniBand协议和外围组件互连高速协议中的至少一个。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/751,119 | 2007-05-21 | ||
US11/751,119 US8654634B2 (en) | 2007-05-21 | 2007-05-21 | Dynamically reassigning virtual lane resources |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101311915A true CN101311915A (zh) | 2008-11-26 |
Family
ID=40072286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101079392A Pending CN101311915A (zh) | 2007-05-21 | 2008-05-21 | 用于动态重分派虚拟通道资源的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8654634B2 (zh) |
JP (1) | JP5160300B2 (zh) |
CN (1) | CN101311915A (zh) |
TW (1) | TWI463323B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103384997A (zh) * | 2011-02-15 | 2013-11-06 | 北欧半导体公司 | 可编程无线电 |
CN115988161A (zh) * | 2023-03-17 | 2023-04-18 | 上海芯浦科技有限公司 | 一种视频传输设备及传输方法 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4992296B2 (ja) * | 2006-05-30 | 2012-08-08 | 株式会社日立製作所 | 転送処理装置 |
US8270295B2 (en) * | 2007-05-21 | 2012-09-18 | International Business Machines Corporation | Reassigning virtual lane buffer allocation during initialization to maximize IO performance |
US8055805B2 (en) * | 2009-03-31 | 2011-11-08 | Intel Corporation | Opportunistic improvement of MMIO request handling based on target reporting of space requirements |
JP5771927B2 (ja) * | 2010-09-15 | 2015-09-02 | 株式会社リコー | 通信装置、通信ユニット、通信システム、通信方法およびプログラム |
US9832143B2 (en) | 2014-12-29 | 2017-11-28 | Oracle International Corporation | System and method for supporting efficient virtual output queue (VOQ) packet flushing scheme in a networking device |
US9838330B2 (en) | 2014-12-29 | 2017-12-05 | Oracle International Corporation | System and method for supporting credit management for output ports in a networking device |
US9838338B2 (en) | 2014-12-29 | 2017-12-05 | Oracle International Corporation | System and method for supporting efficient virtual output queue (VOQ) resource utilization in a networking device |
US9621484B2 (en) | 2014-12-29 | 2017-04-11 | Oracle International Corporation | System and method for supporting efficient buffer reallocation in a networking device |
EP3241320B1 (en) * | 2014-12-29 | 2019-05-01 | Oracle International Corporation | System and method for supporting efficient virtual output queue (voq) packet flushing scheme in a networking device |
JP2019003586A (ja) * | 2017-06-20 | 2019-01-10 | 富士通株式会社 | ストレージ制御装置およびパス切り替え制御プログラム |
US11429549B2 (en) | 2017-07-20 | 2022-08-30 | Hewlett-Packard Development Company, L.P. | Input/output port configurations using multiplexers |
US20230090604A1 (en) * | 2021-09-16 | 2023-03-23 | T-Head (Shanghai) Semiconductor Co., Ltd. | Parallel processing unit virtualization |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0239343A (ja) * | 1988-07-29 | 1990-02-08 | Fujitsu Ltd | 送受信バッファリング制御方式 |
FR2818843B1 (fr) * | 2000-12-21 | 2005-05-06 | Eads Airbus Sa | Dispositif et procede de controle de flux dans un reseau commute |
US7150021B1 (en) * | 2001-10-12 | 2006-12-12 | Palau Acquisition Corporation (Delaware) | Method and system to allocate resources within an interconnect device according to a resource allocation table |
US6715055B1 (en) * | 2001-10-15 | 2004-03-30 | Advanced Micro Devices, Inc. | Apparatus and method for allocating buffer space |
US7049667B2 (en) * | 2002-09-27 | 2006-05-23 | Hrl Laboratories, Llc | Conductive channel pseudo block process and circuit to inhibit reverse engineering |
US6904507B2 (en) * | 2002-09-30 | 2005-06-07 | Agilent Technologies, Inc. | Buffer management architecture and method for an infiniband subnetwork |
US20040223454A1 (en) * | 2003-05-07 | 2004-11-11 | Richard Schober | Method and system for maintaining TBS consistency between a flow control unit and central arbiter in an interconnect device |
US7188198B2 (en) * | 2003-09-11 | 2007-03-06 | International Business Machines Corporation | Method for implementing dynamic virtual lane buffer reconfiguration |
US7356648B2 (en) * | 2003-10-02 | 2008-04-08 | International Business Machines Corporation | Shared buffer having hardware controlled buffer regions |
US7564789B2 (en) * | 2004-02-05 | 2009-07-21 | Qlogic, Corporation | Method and system for reducing deadlock in fibre channel fabrics using virtual lanes |
TWI277872B (en) * | 2004-10-19 | 2007-04-01 | Via Tech Inc | Method and related apparatus for internal data accessing of computer system |
JP2006195871A (ja) * | 2005-01-17 | 2006-07-27 | Ricoh Co Ltd | 通信装置、電子機器、及び画像形成装置 |
US7315456B2 (en) * | 2005-08-29 | 2008-01-01 | Hewlett-Packard Development Company, L.P. | Configurable IO subsystem |
CN1960527A (zh) | 2005-11-04 | 2007-05-09 | 华为技术有限公司 | 一种调整共同体内通信资源的方法 |
-
2007
- 2007-05-21 US US11/751,119 patent/US8654634B2/en not_active Expired - Fee Related
-
2008
- 2008-05-09 TW TW097117305A patent/TWI463323B/zh not_active IP Right Cessation
- 2008-05-13 JP JP2008125889A patent/JP5160300B2/ja not_active Expired - Fee Related
- 2008-05-21 CN CNA2008101079392A patent/CN101311915A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103384997A (zh) * | 2011-02-15 | 2013-11-06 | 北欧半导体公司 | 可编程无线电 |
CN103384997B (zh) * | 2011-02-15 | 2016-08-17 | 北欧半导体公司 | 可编程无线电 |
CN115988161A (zh) * | 2023-03-17 | 2023-04-18 | 上海芯浦科技有限公司 | 一种视频传输设备及传输方法 |
Also Published As
Publication number | Publication date |
---|---|
TW200912651A (en) | 2009-03-16 |
US8654634B2 (en) | 2014-02-18 |
JP5160300B2 (ja) | 2013-03-13 |
US20080291825A1 (en) | 2008-11-27 |
JP2008287718A (ja) | 2008-11-27 |
TWI463323B (zh) | 2014-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101311915A (zh) | 用于动态重分派虚拟通道资源的方法和系统 | |
US8270295B2 (en) | Reassigning virtual lane buffer allocation during initialization to maximize IO performance | |
CN101784989B (zh) | 在逻辑分区之间分配网络适配器资源的方法和系统 | |
US8635388B2 (en) | Method and system for an OS virtualization-aware network interface card | |
CN101459600B (zh) | 用于跟踪网络争用的方法和设备 | |
US7424566B2 (en) | Method, system, and apparatus for dynamic buffer space allocation | |
US7948999B2 (en) | Signaling completion of a message transfer from an origin compute node to a target compute node | |
EP2406723B1 (en) | Scalable interface for connecting multiple computer systems which performs parallel mpi header matching | |
US7356636B2 (en) | Virtualized PCI switch | |
US8085801B2 (en) | Resource arbitration | |
US7702827B2 (en) | System and method for a credit based flow device that utilizes PCI express packets having modified headers wherein ID fields includes non-ID data | |
US8543754B2 (en) | Low latency precedence ordering in a PCI express multiple root I/O virtualization environment | |
US7797445B2 (en) | Dynamic network link selection for transmitting a message between compute nodes of a parallel computer | |
US8380765B2 (en) | Collective operations in a file system based execution model | |
US7779173B2 (en) | Direct memory access transfer completion notification | |
CN105378694A (zh) | 用于执行与通用串行总线(usb)装置的管理组件传输协议(mctp)通信的方法、设备和系统 | |
CN101681325A (zh) | 修改PCI Express封包摘要的设备、系统和方法 | |
US20120030380A1 (en) | Transmission device, transmission method, and control program for transmission device | |
CN103986585A (zh) | 报文预处理方法及其装置 | |
CN101061690B (zh) | PCI Express总线中基于性能的分组排序 | |
US20080273534A1 (en) | Signaling Completion of a Message Transfer from an Origin Compute Node to a Target Compute Node | |
CN117421122A (zh) | 一种数据传输方法、一种网卡和一种cpu | |
US8041902B2 (en) | Direct memory move of multiple buffers between logical partitions | |
US10762017B2 (en) | USB transmission system, USB device, and host capable of USB transmission | |
CN117234998B (zh) | 一种多主机数据访问方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20081126 |