CN104583994B - 针对计算机系统中组件的整个网络中的写事务限制带宽 - Google Patents

针对计算机系统中组件的整个网络中的写事务限制带宽 Download PDF

Info

Publication number
CN104583994B
CN104583994B CN201380043647.6A CN201380043647A CN104583994B CN 104583994 B CN104583994 B CN 104583994B CN 201380043647 A CN201380043647 A CN 201380043647A CN 104583994 B CN104583994 B CN 104583994B
Authority
CN
China
Prior art keywords
affairs
write
component
writing
network
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.)
Active
Application number
CN201380043647.6A
Other languages
English (en)
Other versions
CN104583994A (zh
Inventor
M·W·穆菲
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.)
Apple Inc
Original Assignee
Apple Computer Inc
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 Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN104583994A publication Critical patent/CN104583994A/zh
Application granted granted Critical
Publication of CN104583994B publication Critical patent/CN104583994B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Bus Control (AREA)

Abstract

本发明所公开的实施例提供了一种有利于使用计算机系统中的组件的网络的系统。所述系统包括用于提供针对网络上的组件的写事务限制的带宽分配设备。所述系统还包括事务管理设备,该事务管理设备在检测到从组件到网络的写事务时将写事务限制与该组件的未完成写事务集进行比较。如果该写事务导致未完成写事务集超过写事务限制,则事务管理设备限制该写事务在网络上的传输。

Description

针对计算机系统中组件的整个网络中的写事务限制带宽
背景技术
技术领域
本发明所公开的实施例涉及计算机系统中的组件的网络。更具体地,本发明所公开的实施例涉及用于对整个网络的组件所传输的写事务限制带宽的技术。
相关领域
现代计算机系统通常包括包含处理器和存储器的母板,以及通过多种接口连接至母板的一组外围组件。例如,串行高级技术附件(SATA)接口可有利于存储设备(例如硬盘驱动器、光盘驱动器、固态驱动器、混合硬盘驱动器等)和母板之间的数据传输,而外围组件快速互连(PCIe)总线可允许母板和多个集成的和/或扩展的外围组件之间的通信。
此外,接口的吞吐量和/或延时可能影响数据在计算机系统中组件之间的传输速率。例如,PCIe接口可对应于利用一组交换机来连接计算机系统中的一组组件的网络。这些交换机可融合从外围组件到计算机系统的根组件或芯片组的事务。因此,从主动进取型外围组件到根组件的事务可能消耗该外围组件与该根组件之间的交换机上的可用带宽,从而导致连接到相同交换机的其他外围组件经历在该网络上的延时增加,并继而经历性能降低。
因此,需要一种机制来对于计算机系统中组件的整个网络中传输的事务限制带宽和/或执行负载平衡。
发明内容
本发明所公开的实施例提供了一种有利于使用计算机系统中的组件的网络的系统。该系统包括用于提供针对网络上的组件的写事务限制的带宽分配设备。该系统还包括事务管理设备,其在检测到从该组件到该网络的写事务时将写事务限制与该组件的未完成写事务集进行比较。如果写事务导致未完成写事务集超过写事务限制,则事务管理设备限制该写事务在网络上的传输。
在一些实施例中,如果写事务不导致未完成写事务集超过写事务限制,则事务管理设备在网络上传输该写事务,并且将该写事务添加到未完成写事务集。然后,带宽分配设备在检测到该写事务完成时提供该写事务的完成通知。最后,事务管理设备在接收到该完成通知时,将该写事务从未完成写事务集中移除。
在一些实施例中,带宽管理设备通过利用来自写事务的与组件相关联的信息生成完成通知并将完成通知传输到组件来提供写事务的完成通知,其中完成通知由事务管理设备接收。
在一些实施例中,在网络上传输写事务之前,事务管理设备添加信息到写事务。所述信息可包括组件的组件标识符、写事务的有效载荷大小和/或将写事务与写事务限制相关联的写事务限制标识符。
在一些实施例中,写事务限制指定组件的未完成写事务的最大数量和/或针对未完成写事务的存储器限制。
在一些实施例中,带宽分配设备由处理器和/或网络中的交换机来提供。例如,带宽分配设备可由网络中的根节点(例如根组件)来实现。或者,如果根节点不能指定写事务限制和/或提供完成通知,则带宽分配设备可由连接到根节点的交换机来实现。
在一些实施例中,事务管理设备由所述组件和/或网络中的另一交换机来提供。例如,事务管理设备可由网络的端点(例如磁盘控制器、输入/输出(I/O)设备)来提供。另一方面,如果端点不能使用写事务限制来限制用于来自该端点的写事务的带宽,则事务管理设备可由连接到该端点的交换机来提供。
附图说明
图1示出了根据本发明所公开的实施例的系统的示意图。
图2示出了根据本发明所公开的实施例的一种用于管理写事务在计算机系统中的组件的网络上的传输的系统。
图3示出了根据本发明所公开的实施例的一种用于管理写事务在计算机系统中的组件的网络上的传输的系统。
图4示出了例示根据本发明所公开的实施例的有利于使用计算机系统中的组件的网络的过程的流程图。
图5示出了例示根据本发明所公开的实施例的管理写事务在计算机系统中的组件的网络上的传输的过程的流程图。
图6示出了根据本发明所公开的实施例的计算机系统。
在附图中,类似的附图标号是指相同的附图元件。
具体实施方式
给出以下描述是为了使本领域的任何技术人员能够做出并使用实施例,并且以下描述是在特定应用及其要求的语境中提供的。对于本领域的技术人员而言,对本发明所公开的实施例的各种修改将是显而易见的,并且可以将本文定义的一般原理应用于其他实施例和应用而不脱离本公开的实质和范围。因此,本发明不限于所示的实施例,但要符合根据本文公开的原理和特征的最广泛范围。
此具体实施方式中描述的数据结构和代码通常存储在计算机可读存储介质上,其可以是能够存储供计算机系统使用的代码和/或数据的任何设备或介质。计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁性和光学存储设备,例如磁盘驱动器、磁带、CD(光盘)、DVD(数字多功能光盘或数字视频光盘)、或现在已知或以后开发的能够存储代码和/或数据的其他介质。
可以将具体实施方式部分描述的方法和过程具体化为代码和/或数据,该代码和/或数据可存储在如上所述的计算机可读存储介质中。当计算机系统读取并执行计算机可读存储介质上存储的代码和/或数据时,计算机系统执行具体化为数据结构和代码并存储于计算机可读存储介质内的方法和过程。
此外,可以将本文描述的方法和过程包括在硬件模块或装置中。这些模块或装置可以包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、在特定时间执行特定软件模块或一段代码的专用或共享处理器和/或其他现在已知或以后开发的可编程逻辑设备。当激活硬件模块或装置时,它们执行包括在其中的方法和过程。
本发明所公开的实施例提供了一种用于在计算机系统(诸如个人计算机、膝上型计算机、便携式电子设备、工作站和/或其他包含互连组件的电子设备)内传输数据的方法和系统。如图1中所示,计算机系统可包括包含处理器110(例如中央处理单元(CPU))和存储器120的主机100以及通过网络122相互连接且连接到主机100的一组组件132-140。
例如,网络122可对应于将一组外围组件(例如组件132-140)(诸如存储设备、显卡、网卡和/或声卡)连接到与处理器110相关联和/或包含处理器110的外围组件快速互连(PCIe)根组件的PCIe网络。为了使得连接到网络122的组件(例如组件132-140、处理器110、根组件等)之间能够进行通信,来自组件的PCIe事务可按照先到先服务的方式通过网络122中的交换机分级结构被路由到与事务相关联的目的地。这些事务中一些或所有事务的PCIe完成然后可被从目的地传输,并且通过这些交换机被路由回组件。
本领域的技术人员将会知道,网络122上的带宽可能被组件132-140不均等地消耗,从而导致较不主动进取的组件的延时增加和/或性能降低。例如,网络122中每一跳可指定一组限定该跳可接受的事务数量的流控制信用(例如被投寄的事务层分组(TLP)流控制信用)。此外,跳可形成将来自组件132-140的事务合并到主机100上单个端口中的一个或多个扇出交换机。因此,主动进取型的外围组件(例如组件132-140)可投寄耗尽到目的地的一些或所有跳的流控制信用的事务,从而使连接到这些跳的其他外围组件忍受资源匮乏并且使这些其他外围组件经历在网络122上的延时增加和/或性能降低。
在一个或多个实施例中,图1所示的系统包括通过限制写(例如被投寄的)事务从组件132-140到网络122的传输来有利于网络122的使用的功能。如下文中更详细地所述,该系统可包括带宽分配设备,其提供针对网络122上的组件(例如组件132-140、处理器110)的写事务限制。该系统还可包括事务管理设备,其在检测到从组件到网络122的写事务时将写事务限制与该组件的未完成写事务集进行比较。如果该写事务导致未完成写事务集超过写事务限制,则事务管理设备可限制该写事务在网络122上的传输,这例如通过延迟该写事务到网络122上的下一跳的传输来实现。
如果写事务不导致未完成写事务集超过写事务限制,则事务管理设备可在网络122上传输该写事务,并且将该写事务添加到未完成写事务集。带宽分配设备然后可在检测到写事务完成时提供该写事务的完成通知,并且事务管理设备可在接收到完成通知时将该写事务从未完成写事务集中移除。换言之,带宽分配设备和事务管理设备可提供网络122上组件之间写事务的源到目的地流控制和/或负载平衡。
图2示出了根据本发明所公开的实施例的一种用于管理计算机系统中的组件的网络(例如图1中所示的网络122)上的写事务214(例如被投递的事务)的传输的系统。写事务214可由网络的端点202(诸如磁盘控制器、输入/输出(I/O)设备和/或其他外围组件)生成。此外,写事务214可目的地为网络的根节点210,诸如PCIe网络的根组件。
如图2中所示,写事务214可通过网络中的桥接器222-232和/或交换机218-220的分级结构被路由到根节点210。具体地,端点202可进行写事务214到交换机218上的桥接器222的传输238,桥接器222可进行写事务214到交换机218上的桥接器226的传输240。然后,桥接器226可进行写事务214到交换机220上的桥接器228的传输242,桥接器228可进行写事务214到交换机220上的桥接器232的传输244。最后,桥接器232可进行写事务214到根节点210的传输246。
如上所述,来自网络的组件的写事务的主动进取型传输可能使网络上的其它组件忍受资源匮乏。例如,网络中的流控制可通过将每个桥接器222-232与一组流控制信用相关联来实现,流控制信用可以先到先服务的基础而被消耗。因此,端点202可以是能够将写事务的连续流传输到根节点210,这消耗了桥接器222、226、228和232上的所有可用的流控制信用。如果端点204随后将事务独立流传输到根节点210,则来自端点204的事务可在桥接器232中排队等候在来自端点202的写事务之后,从而导致来自端点204的事务的延时增加和/或端点204处的性能降低。
为了有利于在端点202-204之间共享网络上的带宽,根节点210可作为带宽分配设备236工作,带宽分配设备236提供指定端点202的未完成写事务的最大数量和/或针对所述未完成写事务的存储器限制的写事务限制212。例如,带宽分配设备236可基于网络上的可用带宽和/或网络上组件(例如根节点210、端点202-204等)对网络的使用(例如数量、频率、模式等)来确定写事务限制212和/或针对组件的其他写事务限制。带宽分配设备236然后可将写事务限制212和/或所述其他写事务限制传输到网络上的相应组件。换言之,带宽分配设备236可使用负载平衡技术来限制在网络上组件对写事务的传输。
为了执行写事务限制212,端点202可提供事务管理设备234,其跟踪从端点202到网络的未完成写事务。在检测到写事务214时,事务管理设备234可将写事务限制212与端点202的未完成写事务进行比较。例如,事务管理设备234可使用未完成写事务和写事务限制212来确定未完成写事务的数量和/或可用于后续来自端点202的写事务的字节。如果写事务214导致未完成写事务超过写事务限制212,则事务管理设备234可限制写事务214在网络上的传输。例如,事务管理设备234可延迟写事务214到桥接器222的传输,直到写事务214不导致未完成写事务超过写事务限制212所指定的最大数量和/或存储器限制。
另一方面,如果写事务214不导致未完成写事务超过写事务限制212,则事务管理设备234可在网络上(例如利用传输238-246)将写事务214传输到根节点210。在传输写事务214之前,事务管理设备234可将与端点202相关联的信息添加到写事务214。例如,事务管理设备234可用端点202的组件标识符、写事务214的有效载荷大小和/或将写事务214与写事务限制(例如写事务限制212)相关联的写事务限制标识符来更新写事务214。
根节点210然后可接收写事务214,并通过例如将写事务214的有效载荷写到计算机系统上的存储器来完成写事务214。在检测到写事务214完成时,带宽分配设备236可提供写事务214的完成通知216。具体地,带宽分配设备236可使用事务管理设备234添加到写事务214的信息来生成完成通知216。例如,带宽分配设备236可利用写事务214中的组件标识符和/或写事务限制标识符将写事务214标识为要求完成通知216。带宽分配设备236也可将来自写事务214的组件标识符和/或有效载荷大小包括在完成通知216中,以使得能够将端点202标识为完成通知216的接收方和/或将写事务214标识为新近完成。
然后,带宽分配设备236可使用一组传输248-256来在网络中将完成通知216中继到事务管理设备234。带宽分配设备236可进行将完成通知216发送到桥接器232的传输248,桥接器232可进行将完成通知216发送到桥接器228的传输250,并且桥接器228可使得能够实现完成通知216到桥接器226的传输252。桥接器226然后可使得能够实现完成通知216到桥接器222的传输254,最后,桥接器222可进行完成通知216到事务管理设备234(例如端点202)的最后传输256。
在事务管理设备234接收到完成通知216之后,事务管理设备234可将写事务214从端点202的未完成写事务集中移除。例如,事务管理设备234可将完成通知216中的有效载荷大小从未完成写事务消耗的存储器量中扣除并且/或者将端点202的未完成写事务的数量减1。
带宽分配设备236和事务管理设备234可继续使用写事务限制212和完成通知来管理来自端点202的写事务的传输。例如,带宽分配设备236和事务管理设备234可为来自端点202的已完成写事务生成完成通知,基于完成通知更新未完成写事务集,并且基于更新后的未完成写事务集和写事务限制212来启用或限制后续写事务在网络上的传输。
通过将与端点202相关联的信息添加到写事务214以及生成完成通知216,事务管理设备234和带宽分配设备236可提供一种独特的机制用于独立地或与用于(例如对于读事务)限制网络上的带宽的其他机制结合地来避免端点202消耗网络上的所有可用带宽。继而,带宽分配设备236和事务管理设备234可有利于端点204获取网络上的带宽和/或提供网络上的组件(例如端点202-204、根节点210等)之间的负载平衡。
图3示出了根据本发明所公开的实施例的一种用于管理计算机系统中的组件的网络上的写事务314的传输的系统。与图2所示网络类似,写事务314可由网络的端点302生成,并且利用端点302、一组桥接器322-332和/或交换机318-320和根节点310之间的一组传输338-346而被路由到根节点310。此外,可利用端点302的写事务限制312来对来自端点302的未完成写事务进行限制。例如,写事务限制312可指定端点302的未完成写事务的最大数量和/或针对未完成写事务的存储器限制。
此外,写事务限制312可由网络中的带宽分配设备336和事务管理设备334来执行。然而,与图2所示的带宽分配设备236和事务管理设备234不同,带宽分配设备336和事务管理设备334可分别由交换机320上的桥接器332和交换机318上的桥接器322来提供。由桥接器322和332和/或网络中的其他跳实现带宽分配设备336和事务管理设备334就可使得即使网络包含不能使用写事务限制312来限制用于来自端点302的写事务的带宽的较老式组件(例如端点302-304、根节点310),也能够实现网络中的源到目的地流控制。
为了提供此类流控制,带宽分配设备336可利用用于网络的负载平衡技术来确定写事务限制312,并将写事务限制312传输到端点302。然而,写事务限制312可在写事务限制312到达端点302之前被事务管理设备334拦截。事务管理设备334于是可使用写事务限制312来管理写事务314和/或来自端点302的其他写事务的传输。
更具体地,事务管理设备334可跟踪端点302的未完成写事务集。在接收到来自端点302的写事务314的传输338之后,事务管理设备334可将未完成写事务与写事务限制312进行比较,以确定写事务314是否导致未完成写事务超过写事务限制312。如果写事务314导致未完成写事务超过写事务限制312,则事务管理设备334可延迟写事务314到桥接器326的传输340,直到写事务314不再导致未完成写事务超过写事务限制312(例如在接收到未完成写事务的一个或多个完成通知之后)。
如果写事务314不导致未完成写事务超过写事务限制312,则事务管理设备334可启用写事务314到交换机318上的桥接器326的传输340。然后,桥接器326可启用写事务314到交换机320上的桥接器328的传输342,并且桥接器328可启用写事务314到桥接器332的传输344。例如,桥接器326-328可一旦有用于网络上的下一跳的流控制信用(例如被投寄的TLP流控制信用)可供使用,就将写事务314中继到所述下一跳。
在写事务314到达桥接器332之后,带宽分配设备336可利用由端点302和/或事务管理设备334添加到写事务314的信息(例如组件标识符、有效载荷大小、写事务限制标识符)来生成写事务314的完成通知316。桥接器332于是可启用写事务314到根节点310的传输346,并且带宽分配设备336可将完成通知316传输到端点302。例如,带宽分配设备336可进行完成通知316到桥接器328的传输348,桥接器328可提供完成通知316到桥接器326的传输350,并且桥接器326可启用完成通知316到桥接器322的传输352。事务管理设备334可拦截完成通知316,并使用完成通知316来将写事务314从未完成写事务集中移除。事务管理设备334然后可使用更新后的未完成写事务集和/或后续来自带宽分配设备336的完成通知来管理后续来自端点302的写事务在网络上的传输。
本领域的技术人员将会知道,带宽分配设备336和事务管理设备334可以多种方式来实现。例如,带宽分配设备336和/或事务管理设备334可由端点302-304、桥接器322-332、交换机318-320和/或根节点310的不同组合来提供。此外,带宽分配设备336和/或事务管理设备334的功能可用于管理由其他组件(包括端点304和根节点310)在网络上进行的传输。
图4示出了例示根据本发明所公开的实施例的有利于使用计算机系统中的组件的网络的过程的流程图。在一个或多个实施例中,可以省略、重复和/或以不同顺序执行一个或多个步骤。因此,图4中所示步骤的具体布置不应被解释为限制实施例的范围。
首先,提供针对网络中的组件的写事务限制(操作402)。写事务限制可利用负载平衡技术来确定。例如,写事务限制可基于网络上的可用带宽以及/或者该组件和/或网络上的其他组件对网络的使用来计算。写事务限制然后可在网络上被传输到该组件,并且被该组件和/或与该组件相关联的事务管理设备接收。
可检测来自该组件的写事务的完成(操作404)。如果检测到该写事务的完成,则提供该写事务的完成通知(操作406)。完成通知可利用来自该写事务的与该组件相关联的信息来生成。例如,写事务可包括组件的组件标识符、写事务的有效载荷大小和/或将写事务与写事务限制相关联的写事务限制标识符。组件标识符和/或有效载荷大小于是可被添加到完成通知,以有助于跟踪该组件的未完成写事务,并且完成通知可被传输到该组件。如果没有任何来自该组件的写事务被检测为完成,则不提供写事务的完成通知。
在该组件使用网络期间,来自该组件的写事务的传输可继续被管理(操作408)。例如,只要组件连接到网络和/或组件与网络上其他组件之间的负载平衡被执行,用于来自该组件的写事务的带宽就可被限制。如果要管理写事务的传输,则组件的写事务限制和已完成写事务的完成通知可继续被提供(操作402-406)。另一方面,如果用于来自组件的写事务的带宽不再被限制,则写事务限制和/或完成通知可不被提供。
图5示出了例示根据本发明所公开的实施例的管理写事务在计算机系统中的组件的网络上的传输的过程的流程图。在一个或多个实施例中,可以省略、重复和/或以不同顺序执行一个或多个步骤。因此,图5中所示步骤的具体布置不应被解释为限制实施例的范围。
首先,获取针对网络的组件的写事务限制(操作502)。写事务限制可指定该组件的未完成写事务的最大数量和/或针对所述未完成写事务的存储器限制(例如以字节为单位)。然后,可检测从该组件到网络的写事务(操作504)。如果没有检测到任何来自该组件的写事务,则保持写事务限制和/或获取该组件的新的写事务限制以供在来自该组件的写事务的后续处理中使用(操作502)。
如果检测到了来自该组件的写事务,则将写事务限制与该组件的未完成写事务集进行比较(操作506),以确定该写事务是否导致未完成写事务超过写事务限制(操作508)。如果写事务导致未完成写事务超过写事务限制,则该写事务在网络上的传输被限制(操作510)。例如,该写事务到网络上的下一跳的传输可被延迟,直到该写事务不再导致未完成写事务超过写事务限制。
一旦写事务不导致未完成写事务超过写事务限制,则与该组件相关联的信息(例如组件标识符、有效载荷大小、写事务限制标识符)被添加到该写事务(操作512)以将该写事务与该组件和/或写事务限制相关联。反之,如果使得能够标识写事务限制和/或组件的信息已经(例如被该组件)包括在写事务中,则可省略操作512。
然后,写事务在网络上被传输(操作514)并且被添加到未完成写事务集(操作516)。写事务的完成通知也可独立于与发布该写事务和/或其他写事务相关联的操作(例如操作502-516)被接收(操作518)。例如,完成通知可在写事务被该写事务的目的地处理之后被接收,而其它未完成写事务的完成通知也可在操作502-516之前、期间、或之后被接收。如果完成通知被接收到,则相应的写事务被从未完成事务集中移除(操作520)。如果完成通知没有被接收到,则相应的写事务被保持在未完成写事务集中。
来自该组件的写事务的传输可继续被管理(操作522)。如果要管理写事务的传输,则来自该组件的写事务可利用写事务限制和未完成写事务来进行管理(操作504-516),并且未完成写事务可独立地和/或同时地基于所述写事务的完成通知而被更新(操作518-520)。来自该组件的写事务的管理因此可继续,直到该组件不再连接到网络以及/或者该组件和/或网络上其它组件之间的负载平衡不再被执行。
图6示出了根据本发明所公开的实施例的计算机系统600。计算机系统600可对应于包括处理器602、存储器604、存储装置606和/或存在于电子计算设备中的其它组件的装置。处理器602可与计算机系统600中的其它处理器一起支持进行并行处理和/或多线程操作。计算机系统600还可包括输入/输出(I/O)设备,例如键盘608、鼠标610和显示器612。
计算机系统600可包括执行本实施例的各种组件的功能。具体地,计算机系统600可包括对计算机系统600上的硬件和软件资源的使用进行协调的操作系统(未示出),以及为用户执行专门任务的一个或多个应用程序。为了为用户执行任务,应用程序可从操作系统获得计算机系统600上的硬件资源的使用,并通过由操作系统所提供的硬件和/或软件框架来与用户进行交互。
在一个或多个实施例中,计算机系统600提供一种用于有利于使用计算机系统中的组件的网络的系统。该系统可包括用于提供针对网络中的组件的写事务限制的带宽分配设备。该系统还可包括事务管理设备,事务管理设备在检测到从组件到网络的写事务时将写事务限制与该组件的未完成写事务集进行比较。如果该写事务导致所述未完成写事务集超过所述写事务限制,则事务管理设备可限制所述写事务在网络上的传输。
如果该写事务不导致所述未完成写事务集超过所述写事务限制,则事务管理设备可在网络上传输该写事务,并且将该写事务添加到所述未完成写事务集。然后,带宽分配设备可在检测到该写事务完成时提供该写事务的完成通知,并且事务管理设备可在接收到该完成通知时将该写事务从所述未完成写事务集中移除。
此外,计算机系统600的一个或多个组件可远程定位并经网络连接到其它组件。所介绍的实施例的部分(例如带宽分配设备、事务管理设备、组件等)也可位于实施所述实施例的分布式系统的不同节点上。例如,所介绍的实施例可利用管理一个或多个计算机系统中远程组件的网络间写事务的传输的云计算系统来实现。
仅仅出于例示和描述的目的给出了各种实施例的前述描述。它们并非意在穷举本发明或将本发明限制为所公开的形式。因此,对于本领域熟练的从业者而言许多修改和变型将是显而易见的。另外,以上公开并非意在限制本发明。

Claims (15)

1.一种有利于使用计算机系统中的组件的网络的计算机实现的方法,所述方法包括:
提供针对所述网络上的组件的写事务限制,其中所述写事务限制对从所述组件到所述网络的未完成写事务进行限制;以及
在检测到来自所述组件的写事务的完成时,提供所述写事务的完成通知,其中所述完成通知使得所述组件能够传输所述写事务限制内的另外的写事务,
其中提供针对所述组件的所述写事务限制涉及:
利用负载平衡技术来确定所述写事务限制;以及
将所述写事务限制传输到所述组件。
2.根据权利要求1所述的计算机实现的方法,其中所述组件是磁盘控制器、输入/输出(I/O)设备和处理器中的至少一者。
3.根据权利要求1所述的计算机实现的方法,其中所述写事务限制指定以下中的至少一者:
未完成写事务的最大数量;和
针对所述未完成写事务的存储器限制。
4.根据权利要求1所述的计算机实现的方法,其中所述网络是外围组件快速互连(PCIe)网络。
5.一种有利于使用计算机系统中的组件的网络的计算机实现的方法,所述方法包括:
提供针对所述网络上的组件的写事务限制,其中所述写事务限制对从所述组件到所述网络的未完成写事务进行限制;以及
在检测到来自所述组件的写事务的完成时,提供所述写事务的完成通知,其中所述完成通知使得所述组件能够传输所述写事务限制内的另外的写事务,
其中提供所述写事务的完成通知涉及:
利用来自所述写事务的与所述组件相关联的信息来生成所述完成通知;以及
将所述完成通知传输到所述组件。
6.根据权利要求5所述的计算机实现的方法,其中所述信息包括以下中的至少一者:
组件标识符;
有效载荷大小;和
写事务限制标识符。
7.一种用于管理计算机系统中的组件的网络上的写事务的传输的计算机实现的方法,包括:
获取针对所述网络上的组件的写事务限制;以及
在检测到从所述组件到所述网络的写事务时:
将所述写事务限制与所述组件的未完成写事务集进行比较;以及
如果所述写事务导致所述未完成写事务集超过所述写事务限制,则限制所述写事务在所述网络上的传输,
如果所述写事务不导致所述未完成写事务集超过所述写事务限制,则:
在所述网络上传输所述写事务;以及
将所述写事务添加到所述未完成写事务集,
所述方法进一步包括:
在所述网络上传输所述写事务之前,将与所述组件相关联的信息添加到所述写事务,其中所述信息使得所述完成通知能够被后续接收。
8.根据权利要求7所述的计算机实现的方法,还包括:
在接收到所述写事务的完成通知时,将所述写事务从所述未完成写事务集中移除。
9.根据权利要求8所述的计算机实现的方法,其中所述信息包括以下中的至少一者:
组件标识符;
有效载荷大小;和
写事务限制标识符。
10.根据权利要求7所述的计算机实现的方法,其中所述写事务限制从以下中的至少一者获取:
所述计算机系统中的处理器;和
所述网络中的交换机。
11.一种有利于使用计算机系统中的组件的网络的系统,包括:
带宽分配设备,所述带宽分配设备被配置为提供针对所述网络上的组件的写事务限制;和
事务管理设备,其中在检测到从所述组件到所述网络的写事务时,所述事务管理设备被配置为:
将所述写事务限制与所述组件的未完成写事务集进行比较;以及
如果所述写事务导致所述未完成写事务集超过所述写事务限制,则限制所述写事务在所述网络上的传输,
其中如果所述写事务不导致所述未完成写事务集超过所述写事务限制,则所述事务管理设备被进一步配置为:
在所述网络上传输所述写事务;以及
将所述写事务添加到所述未完成写事务集,
其中所述带宽分配设备被进一步配置为在检测到所述写事务完成时提供所述写事务的完成通知,并且
其中所述事务管理设备被进一步配置为在接收到所述完成通知时将所述写事务从所述未完成写事务集中移除,
其中提供所述写事务的完成通知涉及:
利用来自所述写事务的与所述组件相关联的信息来生成所述完成通知;以及
将所述完成通知传输到所述组件,其中所述完成通知由所述事务管理设备接收。
12.根据权利要求11所述的系统,其中所述事务管理设备被进一步配置为:
在所述网络上传输所述写事务之前,将所述信息添加到所述写事务。
13.根据权利要求11所述的系统,其中提供针对所述组件的所述写事务限制涉及:
利用负载平衡技术来确定所述写事务限制;以及
将所述写事务限制传输到所述组件,其中所述写事务限制由所述事务管理设备接收。
14.根据权利要求11所述的系统,其中所述带宽分配设备由以下中的至少一者来提供:
处理器;和
所述网络中的交换机。
15.根据权利要求11所述的系统,其中所述事务管理设备由以下中的至少一者来提供:
处理器;和
所述网络中的交换机。
CN201380043647.6A 2012-08-29 2013-07-30 针对计算机系统中组件的整个网络中的写事务限制带宽 Active CN104583994B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/597,750 US9111039B2 (en) 2012-08-29 2012-08-29 Limiting bandwidth for write transactions across networks of components in computer systems
US13/597,750 2012-08-29
PCT/US2013/052663 WO2014035584A1 (en) 2012-08-29 2013-07-30 Limiting bandwidth for write transactions across networks of components in computer systems

Publications (2)

Publication Number Publication Date
CN104583994A CN104583994A (zh) 2015-04-29
CN104583994B true CN104583994B (zh) 2017-06-06

Family

ID=49029169

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380043647.6A Active CN104583994B (zh) 2012-08-29 2013-07-30 针对计算机系统中组件的整个网络中的写事务限制带宽

Country Status (4)

Country Link
US (1) US9111039B2 (zh)
JP (1) JP6035641B2 (zh)
CN (1) CN104583994B (zh)
WO (1) WO2014035584A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593281B2 (en) * 2019-05-08 2023-02-28 Hewlett Packard Enterprise Development Lp Device supporting ordered and unordered transaction classes

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5732286A (en) * 1995-08-10 1998-03-24 Cirrus Logic, Inc. FIFO based receive packet throttle for receiving long strings of short data packets
CN1981273A (zh) * 2004-04-01 2007-06-13 辉达公司 总线结构中的死锁避免
CN101290609A (zh) * 2007-04-17 2008-10-22 国际商业机器公司 平衡快速外围组件互连带宽的系统和方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5948081A (en) * 1997-12-22 1999-09-07 Compaq Computer Corporation System for flushing queued memory write request corresponding to a queued read request and all prior write requests with counter indicating requests to be flushed
US6490644B1 (en) * 2000-03-08 2002-12-03 International Business Machines Corporation Limiting write data fracturing in PCI bus systems
US6877049B1 (en) * 2002-05-30 2005-04-05 Finisar Corporation Integrated FIFO memory management control system using a credit value
US7162550B2 (en) * 2003-07-21 2007-01-09 Intel Corporation Method, system, and program for managing requests to an Input/Output device
US7404017B2 (en) * 2004-01-16 2008-07-22 International Business Machines Corporation Method for managing data flow through a processing system
US7817659B2 (en) * 2004-03-26 2010-10-19 Foundry Networks, Llc Method and apparatus for aggregating input data streams
US7676603B2 (en) * 2004-04-20 2010-03-09 Intel Corporation Write combining protocol between processors and chipsets
US7353301B2 (en) * 2004-10-29 2008-04-01 Intel Corporation Methodology and apparatus for implementing write combining
JP5010314B2 (ja) * 2007-03-16 2012-08-29 日本電気株式会社 情報処理装置、情報処理方法、及びプログラム
US8042115B2 (en) 2007-08-16 2011-10-18 International Business Machines Corporation Method and system for balancing component load in an input/output stack of an operating system
JP5176764B2 (ja) * 2008-08-04 2013-04-03 株式会社リコー データ通信システム、画像処理システム、及びデータ通信方法
US8352685B2 (en) * 2010-08-20 2013-01-08 Apple Inc. Combining write buffer with dynamically adjustable flush metrics
JP2012064090A (ja) * 2010-09-17 2012-03-29 Renesas Electronics Corp 情報処理装置、情報処理システムおよび情報処理システムの通信方法
JP5417305B2 (ja) * 2010-11-25 2014-02-12 京セラドキュメントソリューションズ株式会社 情報処理装置
US8649286B2 (en) * 2011-01-18 2014-02-11 Apple Inc. Quality of service (QoS)-related fabric control
US9081504B2 (en) * 2011-12-29 2015-07-14 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Write bandwidth management for flash devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5732286A (en) * 1995-08-10 1998-03-24 Cirrus Logic, Inc. FIFO based receive packet throttle for receiving long strings of short data packets
CN1981273A (zh) * 2004-04-01 2007-06-13 辉达公司 总线结构中的死锁避免
CN101290609A (zh) * 2007-04-17 2008-10-22 国际商业机器公司 平衡快速外围组件互连带宽的系统和方法

Also Published As

Publication number Publication date
US20140068131A1 (en) 2014-03-06
JP2015531920A (ja) 2015-11-05
WO2014035584A1 (en) 2014-03-06
US9111039B2 (en) 2015-08-18
CN104583994A (zh) 2015-04-29
JP6035641B2 (ja) 2016-11-30

Similar Documents

Publication Publication Date Title
US9253287B2 (en) Speculation based approach for reliable message communications
US7698477B2 (en) Method and apparatus for managing flow control in PCI express transaction layer
US9860176B2 (en) Data packet processing
US7941569B2 (en) Input/output tracing in a protocol offload system
CN108536543A (zh) 具有基于跨步的数据分散的接收队列
CN107197015A (zh) 一种基于消息队列系统的消息处理方法和装置
US9231860B2 (en) System and method for hierarchical link aggregation
CN106155959A (zh) 数据传输方法及数据传输系统
US9467368B2 (en) System and method for routing data to devices within an information handling system
CN105593830A (zh) 用于测量电路的物理单元中的等待时间的方法、装置和系统
US20120191939A1 (en) Memory management method
CN104216835A (zh) 一种实现内存融合的方法及装置
US6529518B1 (en) Method and apparatus for providing a network interface
CN103986585A (zh) 报文预处理方法及其装置
CN109976907A (zh) 任务分配方法和系统、电子设备、计算机可读介质
CN112835695A (zh) Pod间通信的方法和分布式计算系统
US9411400B1 (en) Methods and systems for advertsing available credit at memory of network device ports based on temperature
CN103577469B (zh) 数据库连接复用方法和装置
CN109684084A (zh) 一种总线资源的分配方法、系统及相关组件
CN107896196B (zh) 一种分配报文的方法和装置
CN104583994B (zh) 针对计算机系统中组件的整个网络中的写事务限制带宽
CN107391541A (zh) 一种实时数据合并方法和装置
CN103036815B (zh) 一种信息技术和通信技术ict融合系统
CN113824689B (zh) 边缘计算网络、数据传输方法、装置、设备和存储介质
CN210804421U (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
GR01 Patent grant
GR01 Patent grant