CN101132361A - 数据处理系统和用于管理数据分组的传输的方法 - Google Patents
数据处理系统和用于管理数据分组的传输的方法 Download PDFInfo
- Publication number
- CN101132361A CN101132361A CNA2007101099870A CN200710109987A CN101132361A CN 101132361 A CN101132361 A CN 101132361A CN A2007101099870 A CNA2007101099870 A CN A2007101099870A CN 200710109987 A CN200710109987 A CN 200710109987A CN 101132361 A CN101132361 A CN 101132361A
- Authority
- CN
- China
- Prior art keywords
- size
- pci
- queue
- queue entries
- packet
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
公开了一种方法、计算机系统以及PCI Express设备/协议,它们能够实现多个不同的IO配置的高性能IO数据传输,所述IO配置包括IO链路上的可变的分组大小和/或可变的/不同的数量事务。增强了PCI Express协议,以支持利用计数器和可动态地变化的队列大小。除了标准队列条目之外,还提供/预留了几个(或所选数量的)可动态地改变的队列条目,在增强的PCI Express协议内提供了动态队列修改(DQM)工具,以监视正在进行的当前数据传输,并管理何时基于在PCI Express IO链路上传输的当前数据业务修改(增加或减小)队列条目的大小。增强的PCI Express协议提供一个平衡点,在该平衡点既有效地传输许多大数据分组,又对未完成数据分组的每一种大小的数量施加限制。
Description
技术领域
本发明一般涉及计算机系统,具体来说,涉及计算机系统的输入/输出操作。更具体来说,本发明涉及用于从计算机系统的IO设备传输输入/输出(IO)数据的增强的方法和系统。
背景技术
输入/输出(IO)设备与计算机系统的连接和往返于连接的计算机系统的关联数据传输通常由多个可用的硬件设备和关联的协议之一支持。在大多数常规计算机系统中,用于这些IO设备的本地互连的传输协议是外围组件互连(PCI)Express。PCI Express(由特定硬件支持)是PCI计算机总线的实施方式,能通过使用串行互连的网络(代替单个总线)实现更快的物理层通信。PCI Express利用在主机板上具有许多针脚的单个集线器,来实现切换和并行数据传输。
PCI Express实现的更高的速度使得PCI Express变成大多数个人计算机中的底板的标准。这还部分地由于PCI Express的设计,该设计使得PCI Express对于软件开发人员来说完全是透明的。如此,为PCI而设计得操作系统能够在PCI Express系统中启动,无需进行任何代码修改。
实现IO数据传输的传统的方法包括利用IO队列。然而,为IO设备开发队列当前是应用程序特定的,特别是当通过PCIExpress传输数据时。PCI Express利用可变大小分组驱动的串行协议来传输数据。需要队列结构来以一致的方式执行这些传输。这些IO队列是静态地配置的,并只支持单一类型的数据传输。例如,如果驱动通信业务的IO设备在(1)传输的大小,和/或(2)链路上的未完成事务的数量方面变化,发展队列变成排他地支持(a)许多大的传输,(b)几个大的传输,(c)许多小的传输,或(d)几个小的传输的选择。每一种数据传输类别在特定(单一)类型的队列配置中效果最好,而对于所有其他类型的传输和对应的队列配置,会丢失操作质量。
确定哪一种队列配置对于特定IO传输最适合,取决于计算机系统(或正在执行的应用程序)请求/需要什么。如此,当系统/应用程序并行地或连续地提供不同的大小和事务数量的组合时,静态地配置的IO队列在所有各种配置上提供高性能。本发明认识并纠正了现有IO数据传输方法中的此局限性,特别是利用PCI Express的方法的局限性。
发明内容
公开了一种方法、计算机系统以及PCI Express设备/协议,它们能够实现多个不同的IO配置的高性能IO数据传输,所述IO配置包括IO链路上的可变的分组大小和/或可变的/不同的数量事务。增强了PCI Express协议,以支持利用计数器和可动态地变化的队列大小。除了标准队列条目之外,还提供/预留了几个(或所选数量的)可动态地改变的队列条目,在增强的PCI Express协议内提供了动态队列修改(DQM)逻辑。DQM逻辑监视正在进行的当前数据传输,并管理何时基于在PCI Express IO链路上传输的当前数据业务修改(增加或减小)队列条目的大小。
当数据业务趋向于大数据分组的单个流时,自动地组合和使用队列条目来尽可能快地传输大数据。然而,如果数据业务趋向于较小数据分组,则队列条目被分解为许多独立的条目以处理单个的较小数据分组。增强的PCI Express协议提供一个平衡点,在该平衡点既有效地传输许多大数据分组,又对未完成数据分组的每一种大小的数量施加限制。
通过下面的详细的描述,本发明的上述以及另外的目的、特征和优点将变得显而易见。
附图说明
然而,本发明本身以及优选的使用模式,进一步的目标和优点,通过参考对说明性的实施例的详细描述并参考附图,将得到最好的理解,其中:
图1是根据本发明的一个实施例的具有增强的PCI Express设备的计算机系统和用于利用可动态地配置的IO队列处理可变大小的IO业务量的协议的方框图;
图2是根据本发明的一个实施例的具有动态队列修改(DQM)逻辑和可动态地改变的队列的PCI Express子系统的比较详细的例图;
图3A-3B是显示了根据本发明的一个实施例的增强的PCIExpress设备和协议基于当时通信业务量重新配置IO队列(或队列条目)的过程的流程图;以及
图4显示了根据本发明的一个实施例的具有最大队列大小和队列条目的可变数量的可动态地配置的IO队列条目的示例序列。
具体实施方式
本发明提供了一种方法、计算机系统以及PCI Express设备/协议,它们能够实现多个不同的IO配置的高性能IO数据传输,所述IO配置包括IO链路上的可变的分组大小和/或可变的/不同的数量事务。增强了PCI Express协议,以支持利用计数器和可动态地变化的队列大小。除了标准队列条目之外,还提供/预留了几个(或所选数量的)可动态地改变的队列条目,在增强的PCI Express协议内提供了动态队列修改(DQM)逻辑。DQM逻辑监视正在进行的当前数据传输,并管理何时基于在PCI Express IO链路传输的当前数据业务修改(增加或减小)队列条目的大小。
当数据业务趋向于大数据分组的单个流时,自动地组合和使用队列条目来尽可能快地传输大数据。然而,如果数据业务趋向于较小数据分组,则队列条目被分解为许多独立的条目以处理单个的较小数据分组。增强的PCI Express协议提供了一个平衡点,在该平衡点,既能有效地传输许多大数据分组,同时又对未完成数据分组的每一种大小的数量施加限制。
现在参考附图,特别是参考图1,该图是根据本发明的说明性实施例的配置有增强的PCI Express设备和关联的协议的数据处理系统的方框图表示形式,用于基于当前(或现有的或接收到的)IO业务量,完成对IO队列条目的动态大小修改。数据处理系统100包括连接到系统总线104的至少一个中央处理单元(CPU)102(或处理器)。在替代实施例中,数据处理系统100可以是具有多个处理器的多处理器(MP)系统。与系统总线104相连接的还有存储器控制器106,用于提供到系统存储器108的接口。I/O总线控制器1 10连接到系统总线104,并提供到I/O总线112的接口。外围组件互连(PCI)Express总线控制器114连接到I/O总线112,并提供到PCI Express本地总线116的接口。PCI Express总线实施方式可以支持四个PCI扩展槽或插入式连接器。有许多调制解调器/适配器可以连接到PCI Express本地总线116,与IO设备进行通信。利用DQM逻辑118增强现有的PCI Express固件,可以实现下面将描述的本发明的各种特点。
如在本发明内提供的,PCI Express规范/协议将数据大小的长度定义在1到4096字节之间。内聚结构中的此数据大小的范围的传输需要将大数据分组分解为易管理的块。利用常规实施方式,如果一个队列具有许多小数据分组的条目,则当/如果使用一个队列条目来传输整个数据分组,大数据分组将消耗所有队列条目或需要很长时间才能执行。然而,利用本发明,这些队列的大小是可变的,并取决于实际接收到的业务量的类型(而不是期望的对业务量的静态配置)。此外,队列还被分解为能够处理期望的数据的条目。这些条目要么是许多小条目,要么是几个大的条目,要么是两者的组合。
除了上面的硬件组件之外本发明的各种特点可以通过在CPU102上运行的软件来实现。为便于说明,这些软件组件在系统存储器109内可以表示为操作系统(OS)120和应用程序122。OS 120和应用程序122的程序代码在CPU 102上运行,并可以生成IO数据,该数据通过PCI总线控制器114传输到PCI连接的设备(未专门显示)。下面将详细描述通过PCI结构从处理器PCI设备的数据传输过程中的对数据的实际处理/操作以及利用可动态地配置的IO队列从连接的PCI设备接收到的数据的处理/操作。
图2显示了根据一个实施例的附加了PCI设备的PCIExpress子系统200的IO视图。PCI Express子系统200可以在数据处理系统100内实现,在不同的图之间,给类似的组件提供了相同的参考编号。在此例图内,CPU 102通过第一总线204连接到PCI Express交换机206,PCI桥212通过第二总线210连接到PCI Express开关206。PCI Express开关206也可以通过第三总线208连接到其他PCI Express设备或交换机(未显示)。在说明性实施例中,PCI Express开关206包括DQM逻辑118,用于动态地调整PCI Express队列216的大小。PCI Express交换机206和PCI桥212可以共同地构成图1的PCI Express总线控制器114。在替代实施例中,当第一总线是PCI Express总线时,第一总线204也可以提供DQM功能。此外,如在说明性实施例中所提供的,PCI Express接口214还包括DQM逻辑118。DQM逻辑在一般PCI Express总线控制器114内的具体位置可以基于系统设计而变化,可以设想,可以在本发明的不同实施例内利用单一逻辑或分布式逻辑。
PCI桥212还连接到PCI总线116,有多个符合PCI的设备232、234、236与该PCI总线连接在一起。这些符合PCI的设备232、234、236中的每一个都分别具有总线的请求/授权对230、228、226。请求/授权总线230、228、226连接到PCI总线仲裁器220。PCI总线116连接到PCI总线接口218。PCI总线接口218通过双路总线连接到PCI事务队列216。在下面将描述的图4中比较详细地显示了PCI事务队列216。PCI总线接口218还通过总线222的请求/授权对连接到PCI总线仲裁器220。由PCI总线仲裁器220提供的并且与数据一起存储在PCI事务队列216中的其他信息也沿着总线仲裁器238提供到PCI事务队列216。PCI事务队列216通过双路总线连接到PCI Express接口214,而该接口又通过第二总线210连接到PCI Express开关206。PCI Express接口214和/或PCI Express开关206从DQM逻辑118向PCI事务队列216提供了队列条目修改命令。尽管说明性实施例是用连接到PCI Express的PCI设备进行说明的,但是,本发明的功能特点也适用于其他类型的配置。如本领域技术人员所理解的,说明性实施例I只用于说明,而不对本发明的适用性施加任何限制。
在操作中,当PCI总线接口218中的从属电路接收数据时,电路将数据处理为PCI事务队列。同时,如果需要的话,DQM逻辑118基于数据特征,执行修改队列大小所需要的操作。下面将参考图3详细描述修改队列条目的大小的过程。
本领域普通技术人员将认识到,图1和2所描述的硬件可以不同。例如,除了所描述的硬件,也可以使用诸如光盘驱动器之类的其他外围设备,或者代替所描述的硬件。如此,所描述的示例不对本发明的体系结构作出限制。图1和2中所描述的数据处理系统可以是,运行高级交互执行(AIX)操作系统或LINUX操作系统的IBMeServer pSeries系统,该系统是位于纽约Armonk的IBM公司的产品。
图3A-3B提供了说明对利用关联的PCI事务队列216通过PCI Express总线(控制器)114从(向)PCI(或其他)设备的数据进行处理过程中执行的操作的流程图。根据本发明,队列包括可基于通过PCI结构传输的数据的类型和数量动态地配置的一个或多个条目。
基于分配给队列的可用空间的最大值,所支持的事务的数量和所提供的队列条目是有限的。在示范性实施例中,支持的单一队列的最大大小包含2096字节的单一队列条目,队列最多能够支持32个条目,每一个条目64个字节。此外,在所描述的实施例中,队列条目的大小是每一个512个字节,导致在系统初始化(设备被通电或安装过程中)过程中只有四个(4)队列条目可用。
一旦确定了最初的参数,便可以通过DQM逻辑118完成本发明的步骤。根据本发明,DQM逻辑118包括一个或多个性能计数器,基于未完成的事务(NTR)的数量呈现多个预先定义的特征之一。为理解工具完成的过程,定义了下面的参数,在DQM逻辑118示例内使用这些参数:
NTR 事务的数量
N64 0B和64B之间的事务的数量
N256 64B和256B之间的事务的数量
N512 256B和512B之间的事务的数量
Nxxx 事务的数量(直至最大有效负载)
RLT 重置极限
RLEn 重置一次
P(1-6)% 在“If”语句中所使用的百分比(1-6),其中,确定了六个不同的阈值百分比,并用来确定何时修改队列条目
在达到重置极限(RLT)之后重置参数NTR。在特定说明性实施例中,当NTR达到RLT时,由DQM逻辑118完成对队列条目大小的评估。如果RLEn被设置为“on”(例如,RLEn的值=1),则此评估可以只进行一次。然而,当RLEn未设置为“on”时(例如,RLEn的值=0),触发对队列条目大小的评估,并在每次NTR达到RLT时完成。DQM逻辑118基于下面呈现的一系列条件,对队列216内的队列条目进行合并或扩展。每一个条件都包括确定未完成事务的数量,其中,P(x)%是触发调整大小操作的该特定的事务的数量最大阈值百分比。如此:
(a)如果N64大于NTR的P1%,则将队列设置为64B条目;
(b)如果N256大于NTR的P2%,则将队列设置为256B条目;
(c)如果N512大于NTR的P3%,则将队列设置为512B条目;
(d)如果N64+N512大于NTR的P4%,则将队列设置为256B;
(e)如果N256+N512大于NTR的P5%,则将队列设置为256B;
(f)如果N256+N64大于NTR的P6%,则队列设置为128B;以及
(g)如果上面没有一个成立,则工具保持当前配置中的队列。
图4显示了单一队列410内的队列条目大小。在例图中,队列条目的大小是基于最大队列大小(例如,2096B)和特定大小(需要特定大小条目)的未完成数据的数量的。只有那些被指定为可改变的队列才受DQM逻辑118的影响,被指定为改变的队列的数量可以是设计参数或基于运行的应用程序的可编程的参数。如此,某些可用的队列可能包含具有预置大小的条目,并且不能由DQM逻辑118的进程改变。回到该图,该组队列条目内的每一个条目(从最左边的队列410按顺序到最右边的队列410)随着数据(数据分组)的大小的缩小而以2为因子分裂。此外,说明性实施例还表明,整个队列410不一定被分成相等的部分,如此,可以允许较小数据分组和较大数据分组在同一个队列410内排队。
现在请参看图3A,过程开始于方框302,基于可以由队列处理的最小数据传输和最大未完成的事务,首先用默认队列大小配置队列(和队列条目)。这些参数可以是预先设置的,或在PCI Express IO设备的激活过程中和/或应用程序访问IO设备的过程中确定。DQM逻辑118监视开始流经PCI Express链路的命令,如方框304所示,随着命令开始流经PCI Express链路,DQM逻辑118激活一系列计数器(或计数器机构),以跟踪特定计数器参数,如方框306所显示的。根据说明性实施例,利用计数器来跟踪(a)一次未完成事务的数量,(b)事务的平均大小以及(c)可用的队列条目的数量(下面统称为“计数器跟踪参数”)。
在方框308中,将计数器值与一组预先确定的阈值(每一个计数器都有一个)进行比较,在方框310中判断计数器值是否已经达到关联的阈值。如果有任何一个计数器值已经达到关联的阈值,则DQM逻辑118开始调整队列条目的大小,以容纳该特定大小的数据分组,如方框312所示。
图3B描述了DQM逻辑118在判断是缩小还是放大队列条目的大小时执行的比较详细的评估。此判断开始于方框314,DQM逻辑118检查是否有比所述大小的数据分组的关联阈值更多的较小数据分组未完成。当有比所述关联阈值更多的未完成较小数据分组时,DQM逻辑118分裂队列条目,如方框316所示,以生成容纳更多的较小数据分组的较小队列条目。例如,如果有四个未完成数据分组,数据分组的大小是256字节或稍小,则DQM逻辑118将初始的四个队列条目(最初每一个为512B)分裂为256字节的8条目,如图所示。如此,DQM逻辑118将队列分为已经定义的最大数量的条目。在一个实施例中,可以确定条目的最大数量,以驱动判断。
返回到判断方框314,如果DQM逻辑118判断未完成的较小数据分组的数量不大于该大小的数据分组的关联阈值,如方框318所描述的,DQM逻辑118检查是否有比所述大小的数据分组的关联阈值更多的较大数据分组未完成。当有比所述关联阈值更多的未完成较大数据分组时,DQM逻辑118组合或合并两个或更多队列条目,如方框320所示,以生成容纳更多的较大数据分组的较大队列条目。例如,假设有四个队列条目(具有初始512字节容量)并一次只有两个大的数据传输未完成,DQM逻辑118将队列合并为两个(2)条目(每一个都是1024字节)。如此利用性能计数器以显示数据业务中的趋势,DQM逻辑118最终能够基于性能计数器而改变队列大小,以便在不同的IO数据传输情况下获得更好的性能。对于从子进程的每一个端点返回到方框304所指出的接收到的另外的数据业务,对队列条目的监视和调整大小继续进行。
最后,值得注意的是,尽管是在安装了管理软件的完全运转的计算机系统的上下文中描述本发明的并且还将继续这样描述,但是,本领域普通技术人员将认识到,本发明的说明性实施例的软件方面能够以各种形式作为程序产品进行分发,不管实际用于进行分发的承载计算机可读的信号的介质的特定类型是什么,本发明的说明性实施例都同样适用。信号携带介质的示例包括:可记录类型的介质,如软盘、thumb驱动器、硬盘驱动器、CD ROM、DVD以及诸如数字和模拟通信链路之类的传输类型的介质。
虽然是参考优选实施例显示和描述本发明的,但是,那些本领域普通技术人员将理解,在不偏离本发明的精神和范围的情况下,可以进行各种修改。
Claims (18)
1.一种数据处理系统,包括:
耦接到系统总线的处理器;
耦接到系统总线的外围组件互连(PCI)Express总线控制器,支持用于路由往返于系统总线和耦接到PCI结构的设备的数据分组的PCI结构,其中,所述PCI Express总线控制器包括:
至少一个PCI队列,具有一个或多个队列条目,这些条目可动态地配置为容纳被安排为通过PCI结构传输的多个不同大小的数据分组;以及
PCI Express固件,包括动态队列修改(DQM)逻辑,所述DQM逻辑动态地修改所述一个或多个队列条目的大小,以容纳正在被安排为通过PCI结构进行传输的数据分组的现有类型、数量和大小。
2.根据权利要求1所述的数据处理系统,其中,所述DQM逻辑进一步包括:
一个或多个性能计数器,基于未完成的事务(NTR)的数量呈现多个预先定义的特征的其中之一,其中,利用所述计数器跟踪多个预先指定的事务大小范围的每一个范围中的接收到的事务的数量;
用于当计数器达到预置极限时重置计数器的逻辑,
用于跟踪PCI结构内当前未完成并且等待传输的所述预先指定的事务大小范围的每一个范围内的事务的百分比的逻辑,其中,当现有事务的百分比超过预置阈值时,所述DQM逻辑触发队列条目的所述动态配置,以支持所述特定事务大小范围内更多事务的传输;
用于基于预先指定的事务大小范围的每一个范围内所跟踪的事务的百分比,合并和扩展队列内的队列条目的逻辑。
3.根据权利要求1所述的数据处理系统,其中,所述DQM逻辑包括用于执行下列操作的逻辑:
将队列内的每一个队列条目初始配置为默认队列大小,所述默认队列大小基于可以由队列进行处理的最小数据传输和未完成事务的最大数量;
监视跨越PCI Express结构的事务流动;
激活并更新一系列计数器,以跟踪下列特定计数器参数:(a)一次未完成事务的数量,(b)事务的平均大小以及(c)可用的队列条目的数量;
将计数器值与一组预先确定的阈值进行比较;以及
当其中一个计数器值已经达到对应的、预先确定的阈值时,开始调整队列条目的大小,以容纳对应于阈值的事务分组的更大数量。
4.根据权利要求1所述的数据处理系统,进一步包括:
用于实现输入/输出(IO)数据传输的逻辑,所述输入/输出数据传输具有下列多个不同的IO数据分组特征和配置的其中之一:(a)可变的、不同大小的数据分组,(b)等待被安排为通过PCI结构进行传输的每一种大小的数据分组的可变数量;
其中,所述PCI Express固件包括多个具有第一组计数器和第二组计数器的计数器,所述第一组计数器中的每一个跟踪特定大小的队列条目的数量,所述第二组计数器中的每一个跟踪PCI结构所支持的每一个不同大小的未完成数据分组的数量。
5.根据权利要求1所述的数据处理系统,其中,所述PCIExpress总线控制器包括:
多个具有至少一个第一静态队列和至少一个第二可动态配置队列的队列,所述第一静态队列至少具有静态数量的特定大小的队列条目,所述第二可动态配置队列至少具有可变数量的、由DQM逻辑实时修改的可动态改变的队列条目;以及
所述DQM逻辑完成下列功能:(a)监视正在进行的当前数据传输;(b)基于等待通过PCI结构传输的未完成数据业务的当前数量,触发对每一个队列条目的大小的修改。
6.根据权利要求1所述的数据处理系统,其中,所述DQM逻辑进一步包括用于执行下列操作的逻辑:
确定正在进行的数据业务内的当前趋势,所述趋势从大数据分组的单个流到较小数据分组的多个流变化;
当趋势是大数据分组的单个流时,自动地将较小队列条目组合为较大条目,以支持跨越PCI结构的较大数据分组的有效传输;以及
当趋势是较小数据分组的多个流时,自动地将较大队列条目分解为较小的独立条目,以支持单个的较小数据分组的有效传输。
7.根据权利要求3所述的数据处理系统,进一步包括用于执行下列操作的逻辑:
确定与每一种大小的数据分组关联的阈值,用于触发何时将队列条目的大小修改为对应于数据分组的特定大小的大小,其中,所述阈值确定一个数量,在所述数量以上时,应该减小对应大小的未完成数据分组的数量;
将每一种大小的未完成数据分组的当前数量与对应于所述大小的数据分组的阈值进行比较;以及
基于当前业务量相对于预先确定的平衡点的分析,调整用以修改队列条目的大小的速率,所述预先确定的平衡点用于平衡(a)较大数据分组的数量的有效传输与(b)将未完成的每一种大小的数据分组的数量限制到低于特定大小的数据分组的预置阈值。
8.根据权利要求1所述的数据处理系统,其中,所述DQM逻辑进一步包括用于执行下列操作的逻辑:
判断是否有比所述大小的数据分组的关联阈值更多的较小数据分组未完成;
当有比对应的预先确定的阈值更多的未完成较小数据分组时,分裂较大队列条目,以生成容纳更多的较小数据分组的较小队列条目;
判断是否有比较大数据分组的关联阈值更多的较大数据分组未完成;以及
当有比所述关联阈值更多的未完成较大数据分组时,组合两个或更多现有的队列条目,以生成容纳更多的较大数据分组的较大队列条目。
9.根据权利要求1所述的数据处理系统,进一步包括:
耦接到系统总线并提供I/O总线的输入/输出(I/O)总线控制器,其中,所述PCI Express总线控制器耦接到I/O总线,并提供到PCI Express本地总线的接口;以及
其中,所述PCI Express总线控制器进一步包括PCI Express交换机、PCI Express接口以及PCI Express总线,其中,所述DQM逻辑位于PCI Express交换机、PCI Express接口以及PCI Express总线中的一个或多个之中。
10.一种用于在数据处理系统中管理跨越PCI结构的数据分组传输的方法,所述数据处理系统具有耦接到系统总线的处理器和PCI结构,所述PCI结构包括耦接到系统总线的外围组件互连(PCI)Express总线控制器,所述PCI Express总线控制器具有一个或多个PCI队列以及动态队列修改(DQM)逻辑,所述PCI队列具有一个或多个队列条目,所述方法包括:
监视PCI结构内正在进行的当前数据传输;以及
基于在PCI结构上传输的当前数据业务,触发对每一个队列条目的大小的动态修改,其中,所述动态修改是通过DQM逻辑完成的。
11.根据权利要求10所述的方法,其中:
所述监视包括确定正在进行的数据业务内的当前趋势,所述趋势从大数据分组的单个流到较小数据分组的多个流变化;
所述触发包括:
当趋势是大数据分组的单个流时,自动地将较小队列条目组合为较大条目,以支持跨PCI结构的较大数据分组的有效传输;以及
当趋势是较小数据分组的多个流时,自动地将较大队列条目分解为较小的独立条目,以支持单个的较小数据分组的有效传输。
12.根据权利要求10所述的方法,其中,所述DQM逻辑包括一个或多个性能计数器,所述性能计数器基于未完成的事务(NTR)的数量呈现多个预先定义的特征的其中之一,其中,利用所述计数器跟踪预先指定的事务大小范围中的接收到的事务的数量,所述方法进一步包括:
当计数器达到预置极限时重置计数器;
跟踪PCI结构内当前未完成并且等待传输的所述预先指定的事务大小范围的每一个范围内的事务的百分比的逻辑,其中,当现有事务的百分比超过预置阈值时,所述DQM逻辑触发队列条目的所述动态配置,以支持所述特定事务大小范围内更多事务的传输;以及
基于预先指定的事务大小范围的每一个范围内所跟踪的事务的百分比,合并和扩展队列内的队列条目。
13.根据权利要求10所述的方法,进一步包括:
将队列内的每一个队列条目初始配置为默认队列大小,所述默认队列大小基于可以由队列进行处理的最小数据传输和未完成事务的最大数量;
监视跨越PCI Express结构的事务流动;
激活并更新一系列计数器,以跟踪下列特定计数器参数:(a)一次未完成事务的数量,(b)事务的平均大小以及(c)可用的队列条目的数量;
将计数器值与一组预先确定的阈值进行比较;以及
当其中一个计数器值已经达到对应的、预先确定的阈值时,开始调整队列条目的大小,以容纳对应于阈值的事务分组的更大数量。
14.根据权利要求10所述的方法,其中,DQM工具进一步包括:
用于实现输入/输出(IO)数据传输的逻辑,所述输入/输出数据传输具有下列多个不同的IO数据分组特征和配置的其中之一:(a)可变的、不同大小的数据分组,(b)等待被安排为通过PCI结构进行传输的每一种大小的数据分组的可变数量;以及
多个具有第一组计数器和第二组计数器的计数器,所述第一组计数器中的每一个跟踪特定大小的队列条目的数量,所述第二组计数器中的每一个跟踪PCI结构所支持的每一个不同大小的未完成数据分组的数量。
15.根据权利要求10所述的方法,其中:
数据处理系统的PCI Express总线控制器包括具有至少一个第一静态队列和至少一个第二可动态配置队列的多个队列,所述第一静态队列至少具有静态数量的特定大小的队列条目,所述第二可动态配置队列至少具有可变数量的、由DQM逻辑实时修改的可动态改变的队列条目;以及
所述方法包括:(a)监视正在进行的当前数据传输;以及(b)基于等待通过PCI结构传输的未完成数据业务的当前数量,触发对每一个队列条目的大小的修改。
16.根据权利要求11所述的方法,进一步包括:
确定与每一种大小的数据分组关联的阈值,用于触发何时将队列条目的大小修改为对应于数据分组的特定大小的大小,其中,所述阈值确定一个数量,在所述数量以上时,应该减小对应大小的未完成数据分组的数量;
将每一种大小的未完成数据分组的当前数量与对应于所述大小的数据分组的阈值进行比较;以及
基于当前业务量相对于预先确定的平衡点的分析,调整用以修改队列条目的大小的速率,所述预先确定的平衡点用于平衡(a)较大数据分组的数量的有效传输与(b)将未完成的每一种大小的数据分组的数量限制到低于特定大小的数据分组的预置阈值。
17.根据权利要求10所述的方法,进一步包括:
判断是否有比所述大小的数据分组的关联阈值更多的较小数据分组未完成;
当有比对应的预先确定的阈值更多的未完成较小数据分组时,分裂较大队列条目,以生成容纳更多的较小数据分组的较小队列条目;
判断是否有比较大数据分组的关联阈值更多的较大数据分组未完成;以及
当有比所述关联阈值更多的未完成较大数据分组时,组合两个或更多现有的队列条目,以生成容纳更多的较大数据分组的较大队列条目。
18.根据权利要求10所述的方法,其中,所述数据处理系统进一步包括:
耦接到系统总线并提供I/O总线的输入/输出(I/O)总线控制器,其中,所述PCI Express总线控制器耦接到I/O总线,并提供到PCI Express本地总线的接口;以及
其中,所述PCI Express总线控制器进一步包括PCI Express交换机、PCI Express接口以及PCI Express总线,其中,所述DQM逻辑位于PCI Express交换机、PCI Express接口以及PCI Express总线中的一个或多个之中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/466,142 US7496707B2 (en) | 2006-08-22 | 2006-08-22 | Dynamically scalable queues for performance driven PCI express memory traffic |
US11/466,142 | 2006-08-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101132361A true CN101132361A (zh) | 2008-02-27 |
Family
ID=39129490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101099870A Pending CN101132361A (zh) | 2006-08-22 | 2007-06-11 | 数据处理系统和用于管理数据分组的传输的方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7496707B2 (zh) |
CN (1) | CN101132361A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102340442A (zh) * | 2010-07-21 | 2012-02-01 | 杭州华三通信技术有限公司 | 调整接口接收队列长度的方法及装置 |
CN103119556A (zh) * | 2010-09-25 | 2013-05-22 | 英特尔公司 | 用于提供在原子区内的条件提交的决策机制的装置、方法和系统 |
CN103502925A (zh) * | 2012-12-21 | 2014-01-08 | 华为技术有限公司 | 一种监控记录管理方法与装置 |
CN104380216A (zh) * | 2012-05-29 | 2015-02-25 | 巴鲁夫公司 | Io链路用于链接现场装置的用途 |
US10089271B2 (en) | 2012-05-29 | 2018-10-02 | Balluff Gmbh | Field bus system |
US10127163B2 (en) | 2012-05-14 | 2018-11-13 | Balluff Gmbh | Control device for controlling a safety device, and use of an IO link for transmission of a safety protocol to a safety device |
CN111077816A (zh) * | 2019-12-04 | 2020-04-28 | 神华神东煤炭集团有限责任公司 | 基于数据链的电传控制方法、系统及超大采高采煤机 |
CN114124858A (zh) * | 2022-01-29 | 2022-03-01 | 飞腾信息技术有限公司 | 控制方法及控制设备 |
CN114461551A (zh) * | 2022-01-26 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 一种多通道传输方法、系统、计算机设备及可读存储介质 |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7571287B2 (en) | 2003-03-13 | 2009-08-04 | Marvell World Trade Ltd. | Multiport memory architecture, devices and systems including the same, and methods of using the same |
US8140827B2 (en) * | 2007-06-19 | 2012-03-20 | Samsung Electronics Co., Ltd. | System and method for efficient data transmission in a multi-processor environment |
US8234425B1 (en) | 2007-06-27 | 2012-07-31 | Marvell International Ltd. | Arbiter module |
US7949817B1 (en) | 2007-07-31 | 2011-05-24 | Marvell International Ltd. | Adaptive bus profiler |
US8131915B1 (en) | 2008-04-11 | 2012-03-06 | Marvell Intentional Ltd. | Modifying or overwriting data stored in flash memory |
US8683085B1 (en) | 2008-05-06 | 2014-03-25 | Marvell International Ltd. | USB interface configurable for host or device mode |
US8423710B1 (en) | 2009-03-23 | 2013-04-16 | Marvell International Ltd. | Sequential writes to flash memory |
US8213236B1 (en) | 2009-04-21 | 2012-07-03 | Marvell International Ltd. | Flash memory |
US8688922B1 (en) | 2010-03-11 | 2014-04-01 | Marvell International Ltd | Hardware-supported memory management |
US8416834B2 (en) | 2010-06-23 | 2013-04-09 | International Business Machines Corporation | Spread spectrum wireless communication code for data center environments |
US8626970B2 (en) | 2010-06-23 | 2014-01-07 | International Business Machines Corporation | Controlling access by a configuration to an adapter function |
US8510599B2 (en) | 2010-06-23 | 2013-08-13 | International Business Machines Corporation | Managing processing associated with hardware events |
US8645606B2 (en) | 2010-06-23 | 2014-02-04 | International Business Machines Corporation | Upbound input/output expansion request and response processing in a PCIe architecture |
US8683108B2 (en) | 2010-06-23 | 2014-03-25 | International Business Machines Corporation | Connected input/output hub management |
US8621112B2 (en) | 2010-06-23 | 2013-12-31 | International Business Machines Corporation | Discovery by operating system of information relating to adapter functions accessible to the operating system |
US8504754B2 (en) | 2010-06-23 | 2013-08-06 | International Business Machines Corporation | Identification of types of sources of adapter interruptions |
US8505032B2 (en) | 2010-06-23 | 2013-08-06 | International Business Machines Corporation | Operating system notification of actions to be taken responsive to adapter events |
US8572635B2 (en) | 2010-06-23 | 2013-10-29 | International Business Machines Corporation | Converting a message signaled interruption into an I/O adapter event notification |
US8645767B2 (en) | 2010-06-23 | 2014-02-04 | International Business Machines Corporation | Scalable I/O adapter function level error detection, isolation, and reporting |
US8671287B2 (en) | 2010-06-23 | 2014-03-11 | International Business Machines Corporation | Redundant power supply configuration for a data center |
US8656228B2 (en) | 2010-06-23 | 2014-02-18 | International Business Machines Corporation | Memory error isolation and recovery in a multiprocessor computer system |
US8635430B2 (en) | 2010-06-23 | 2014-01-21 | International Business Machines Corporation | Translation of input/output addresses to memory addresses |
US8650337B2 (en) | 2010-06-23 | 2014-02-11 | International Business Machines Corporation | Runtime determination of translation formats for adapter functions |
US8677180B2 (en) | 2010-06-23 | 2014-03-18 | International Business Machines Corporation | Switch failover control in a multiprocessor computer system |
US8615622B2 (en) | 2010-06-23 | 2013-12-24 | International Business Machines Corporation | Non-standard I/O adapters in a standardized I/O architecture |
US8918573B2 (en) | 2010-06-23 | 2014-12-23 | International Business Machines Corporation | Input/output (I/O) expansion response processing in a peripheral component interconnect express (PCIe) environment |
US8549182B2 (en) | 2010-06-23 | 2013-10-01 | International Business Machines Corporation | Store/store block instructions for communicating with adapters |
US8468284B2 (en) | 2010-06-23 | 2013-06-18 | International Business Machines Corporation | Converting a message signaled interruption into an I/O adapter event notification to a guest operating system |
US8745292B2 (en) | 2010-06-23 | 2014-06-03 | International Business Machines Corporation | System and method for routing I/O expansion requests and responses in a PCIE architecture |
US8478922B2 (en) | 2010-06-23 | 2013-07-02 | International Business Machines Corporation | Controlling a rate at which adapter interruption requests are processed |
US8566480B2 (en) | 2010-06-23 | 2013-10-22 | International Business Machines Corporation | Load instruction for communicating with adapters |
US8615645B2 (en) | 2010-06-23 | 2013-12-24 | International Business Machines Corporation | Controlling the selectively setting of operational parameters for an adapter |
US8650335B2 (en) | 2010-06-23 | 2014-02-11 | International Business Machines Corporation | Measurement facility for adapter functions |
US9195623B2 (en) | 2010-06-23 | 2015-11-24 | International Business Machines Corporation | Multiple address spaces per adapter with address translation |
US8417911B2 (en) | 2010-06-23 | 2013-04-09 | International Business Machines Corporation | Associating input/output device requests with memory associated with a logical partition |
US9213661B2 (en) | 2010-06-23 | 2015-12-15 | International Business Machines Corporation | Enable/disable adapters of a computing environment |
US9342352B2 (en) | 2010-06-23 | 2016-05-17 | International Business Machines Corporation | Guest access to address spaces of adapter |
US8639858B2 (en) | 2010-06-23 | 2014-01-28 | International Business Machines Corporation | Resizing address spaces concurrent to accessing the address spaces |
US8756394B1 (en) | 2010-07-07 | 2014-06-17 | Marvell International Ltd. | Multi-dimension memory timing tuner |
US9003084B2 (en) | 2011-02-18 | 2015-04-07 | Ab Initio Technology Llc | Sorting |
US8447901B2 (en) | 2011-02-18 | 2013-05-21 | Ab Initio Technology Llc | Managing buffer conditions through sorting |
US9146776B1 (en) | 2011-08-16 | 2015-09-29 | Marvell International Ltd. | Systems and methods for controlling flow of message signaled interrupts |
US9128920B2 (en) * | 2011-11-30 | 2015-09-08 | Marvell World Trade Ltd. | Interrupt handling systems and methods for PCIE bridges with multiple buses |
US9288163B2 (en) * | 2013-03-15 | 2016-03-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Low-latency packet receive method for networking devices |
US20150032961A1 (en) * | 2013-07-23 | 2015-01-29 | Lexmark International Technologies S.A. | System and Methods of Data Migration Between Storage Devices |
US9465768B2 (en) | 2014-03-14 | 2016-10-11 | International Business Machines Corporation | PCI function measurement block enhancements |
KR102309798B1 (ko) * | 2015-04-16 | 2021-10-06 | 삼성전자주식회사 | Sr-iov 기반 비휘발성 메모리 컨트롤러 및 그 비휘발성 메모리 컨트롤러에 의해 큐에 리소스를 동적 할당하는 방법 |
US9342388B1 (en) * | 2015-12-02 | 2016-05-17 | International Business Machines Corporation | Dynamic queue alias |
US10795836B2 (en) | 2017-04-17 | 2020-10-06 | Microsoft Technology Licensing, Llc | Data processing performance enhancement for neural networks using a virtualized data iterator |
EP3850493A4 (en) | 2018-09-10 | 2022-06-08 | GigaIO Networks, Inc. | METHOD AND APPARATUS FOR HIGH SPEED DATA BUS CONNECTION AND TISSUE MANAGEMENT |
US10996985B2 (en) | 2019-01-11 | 2021-05-04 | Hewlett Packard Enterprise Development Lp | Dynamic queue depth management with non-volatile memory controllers |
US11403247B2 (en) * | 2019-09-10 | 2022-08-02 | GigaIO Networks, Inc. | Methods and apparatus for network interface fabric send/receive operations |
US11593288B2 (en) | 2019-10-02 | 2023-02-28 | GigalO Networks, Inc. | Methods and apparatus for fabric interface polling |
EP4049143A4 (en) | 2019-10-25 | 2024-02-21 | Gigaio Networks Inc | METHODS AND APPARATUS FOR DMA ENGINE DESCRIPTORS FOR HIGH-SPEED DATA SYSTEMS |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6044418A (en) * | 1997-06-30 | 2000-03-28 | Sun Microsystems, Inc. | Method and apparatus for dynamically resizing queues utilizing programmable partition pointers |
US6145061A (en) * | 1998-01-07 | 2000-11-07 | Tandem Computers Incorporated | Method of management of a circular queue for asynchronous access |
US6993604B2 (en) * | 2000-11-15 | 2006-01-31 | Seagate Technology Llc | Dynamic buffer size allocation for multiplexed streaming |
US7093037B2 (en) * | 2003-09-22 | 2006-08-15 | Emulex Design & Manufacturing Corporation | Generalized queue and specialized register configuration for coordinating communications between tightly coupled processors |
US7143263B2 (en) * | 2003-10-16 | 2006-11-28 | International Business Machines Corporation | System and method of adaptively reconfiguring buffers |
US7657706B2 (en) * | 2003-12-18 | 2010-02-02 | Cisco Technology, Inc. | High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory |
US7327749B1 (en) * | 2004-03-29 | 2008-02-05 | Sun Microsystems, Inc. | Combined buffering of infiniband virtual lanes and queue pairs |
US7694100B2 (en) * | 2004-12-20 | 2010-04-06 | Intel Corporation | Managing system memory resident device management queues |
US7583664B2 (en) * | 2004-12-28 | 2009-09-01 | Michael Ho | Techniques for transmitting and receiving traffic over advanced switching compatible switch fabrics |
US7562366B2 (en) * | 2005-02-03 | 2009-07-14 | Solarflare Communications, Inc. | Transmit completion event batching |
US7496797B2 (en) * | 2005-03-31 | 2009-02-24 | Intel Corporation | Advanced switching lost packet and event detection and handling |
-
2006
- 2006-08-22 US US11/466,142 patent/US7496707B2/en not_active Expired - Fee Related
-
2007
- 2007-06-11 CN CNA2007101099870A patent/CN101132361A/zh active Pending
-
2009
- 2009-01-21 US US12/357,098 patent/US20090125666A1/en not_active Abandoned
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102340442A (zh) * | 2010-07-21 | 2012-02-01 | 杭州华三通信技术有限公司 | 调整接口接收队列长度的方法及装置 |
CN102340442B (zh) * | 2010-07-21 | 2015-07-22 | 杭州华三通信技术有限公司 | 调整接口接收队列长度的方法及装置 |
CN103119556B (zh) * | 2010-09-25 | 2016-01-20 | 英特尔公司 | 用于提供在原子区内的条件提交的决策机制的装置、方法和系统 |
CN103119556A (zh) * | 2010-09-25 | 2013-05-22 | 英特尔公司 | 用于提供在原子区内的条件提交的决策机制的装置、方法和系统 |
US10127163B2 (en) | 2012-05-14 | 2018-11-13 | Balluff Gmbh | Control device for controlling a safety device, and use of an IO link for transmission of a safety protocol to a safety device |
US10430359B2 (en) | 2012-05-29 | 2019-10-01 | Balluff Gmbh | Use of an IO link for linking field devices |
US10089271B2 (en) | 2012-05-29 | 2018-10-02 | Balluff Gmbh | Field bus system |
CN104380216A (zh) * | 2012-05-29 | 2015-02-25 | 巴鲁夫公司 | Io链路用于链接现场装置的用途 |
CN103502925B (zh) * | 2012-12-21 | 2016-05-25 | 华为技术有限公司 | 一种监控记录管理方法与装置 |
CN103502925A (zh) * | 2012-12-21 | 2014-01-08 | 华为技术有限公司 | 一种监控记录管理方法与装置 |
CN111077816A (zh) * | 2019-12-04 | 2020-04-28 | 神华神东煤炭集团有限责任公司 | 基于数据链的电传控制方法、系统及超大采高采煤机 |
CN114461551A (zh) * | 2022-01-26 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 一种多通道传输方法、系统、计算机设备及可读存储介质 |
CN114461551B (zh) * | 2022-01-26 | 2023-08-11 | 苏州浪潮智能科技有限公司 | 一种多通道传输方法、系统、计算机设备及可读存储介质 |
CN114124858A (zh) * | 2022-01-29 | 2022-03-01 | 飞腾信息技术有限公司 | 控制方法及控制设备 |
CN114124858B (zh) * | 2022-01-29 | 2022-05-17 | 飞腾信息技术有限公司 | 控制方法及控制设备 |
Also Published As
Publication number | Publication date |
---|---|
US7496707B2 (en) | 2009-02-24 |
US20090125666A1 (en) | 2009-05-14 |
US20080052441A1 (en) | 2008-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101132361A (zh) | 数据处理系统和用于管理数据分组的传输的方法 | |
US7664909B2 (en) | Method and apparatus for a shared I/O serial ATA controller | |
US7782893B2 (en) | Method and apparatus for shared I/O in a load/store fabric | |
US7457906B2 (en) | Method and apparatus for shared I/O in a load/store fabric | |
CN100552662C (zh) | 用于分布式计算系统的方法和系统 | |
US7046668B2 (en) | Method and apparatus for shared I/O in a load/store fabric | |
JP5159884B2 (ja) | 論理区分の間におけるネットワーク・アダプタ・リソース割振り | |
US7290066B2 (en) | Methods and structure for improved transfer rate performance in a SAS wide port environment | |
EP2616936B1 (en) | Dynamic creation and destruction of io resources based on actual load and resource availability | |
JP5160300B2 (ja) | 仮想レーン資源を動的に再割当てするシステムおよび方法 | |
US8489848B2 (en) | Data communications between the computer memory of the logical partitions and the data storage devices through a host fibre channel adapter | |
US20060195663A1 (en) | Virtualized I/O adapter for a multi-processor data processing system | |
US11029847B2 (en) | Method and system for shared direct access storage | |
CN1666185A (zh) | 支持包处理的可配置的多端口多协议网络接口 | |
US8612662B2 (en) | Queue sharing and reconfiguration in PCI express links | |
US20080307146A1 (en) | Structure for dynamically scalable queues for performance driven pci express memory traffic | |
US20220365728A1 (en) | Method and system for maximizing performance of a storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20080227 |
|
C20 | Patent right or utility model deemed to be abandoned or is abandoned |