数据处理系统和用于管理数据分组的传输的方法

文档序号:7654316阅读:155来源:国知局
专利名称:数据处理系统和用于管理数据分组的传输的方法
技术领域
本发明一般涉及计算机系统,具体来说,涉及计算机系统的输入/输出操作。更具体来说,本发明涉及用于从计算机系统的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设备开发队列当前是应用程序特定的,特别是当通过PCI Express传输数据时。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是显示了根据本发明的一个实施例的增强的PCI Express设备和协议基于当时通信业务量重新配置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包 括连接到系统总线IO4的至少一个中央处理单元(CPU) 102 (或处 理器)。在替代实施例中,数据处理系统100可以是具有多个处理 器的多处理器(MP)系统。与系统总线104相连接的还有存储器控 制器106,用于提供到系统存储器108的接口。1/0总线控制器110 连接到系统总线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字节之间。内聚结构中的此数据大小的范围的 传输需要将大数据分组分解为易管理的块。利用常规实施方式,如果 一个队列具有许多小数据分组的条目,则当/如果使用一个队列条目来 传输整个数据分组,大数据分组将消耗所有队列条目或需要很长时间 才能执行。然而,利用本发明,这些队列的大小是可变的,并取决于 实际接收到的业务量的类型(而不是期望的对业务量的静态配置)。 此外,队列还被分解为能够处理期望的数据的条目。这些条目要么是 许多小条目,要么是几个大的条目,要么是两者的组合。除了上面的硬件组件之外本发明的各种特点可以通过在CPU 102上运行的软件来实现。为便于说明,这些软件组件在系统存储器
109内可以表示为操作系统(OS) 120和应用程序122。 OS 120和 应用程序122的程序代码在CPU 102上运行,并可以生成IO数 据,该数据通过PCI总线控制器114传输到PCI连接的设备(未 专门显示)。下面将详细描述通过PCI结构从处理器PCI设备的io队列从连接的pci设备接二到的数据的处理/操;:"图2显示了根据一个实施例的附加了 PCI设备的PCI Express子系统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。在替代实施例中,当第一总线是PCIExpress总线时,第一总 线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操作系统的IBM eServer pSeries系统,该系统是位于纽约Armonk的IBM />司的产品o图3A-3B提供了说明对利用关联的PCI事务队列216通过 PCI Express总线(控制器)114从(向)PCI (或其他)设备的数 据进行处理过程中执行的操作的流程图。根据本发明,队列包括可基 于通过PCI结构传输的数据的类型和数量动态地配置的一个或多个 条目。基于分配给队列的可用空间的最大值,所支持的事务的数量和所 提供的队列条目是有限的。在示范性实施例中,支持的单一队列的最 大大小包含2096字节的单一队列条目,队列最多能够支持32个条 目,每一个条目64个字节。此外,在所描述的实施例中,队列条目 的大小是每一个512个字节,导致在系统初始化(设备被通电或安 装过程中)过程中只有四个(4)队列条目可用。一旦确定了最初的参数,便可以通过DQM逻辑118完成本发 明的步骤。根据本发明,DQM逻辑118包括一个或多个性能计数 器,基于未完成的事务(NTR)的数量呈现多个预先定义的特征之一。 为理解工具完成的过程,定义了下面的参数,在DQM逻辑118示 例内使用这些参数NTR 事务的数量N64OB和64B之间的事务的数量 N256 64B和256B之间的事务的数量 N512 256B和512B之间的事务的数量 Nxxx 事务的数量(直至最大有效负栽) RLT 重置极限 RLEn 重置一次P(l-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的Pl% ,则将队列设置为64B条目5(b) 如果N256大于NTR的P2%,则将队列设置为256B条 目5(c) 如果N512大于NTR的P3%,则将队列设置为512B条目5(d) 如果N64+N512大于NTR的P4% ,则将队列设置为 256B;(e) 如果N256+N512大于NTR的P5% ,则将队列i殳置为 256B;(f) 如果N256+N64大于NTR的P6%,则队列i殳置为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以及诸如数字和模拟 通信链路之类的传输类型的介质。虽然是参考优选实施例显示和描述本发明的,但是,那些本领域 普通技术人员将理解,在不偏离本发明的精神和范围的情况下,可以 进行各种修改。
权利要求
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所述的数据处理系统,其中,所述PCI Express总线控制器包括多个具有至少一个第一静态队列和至少一个第二可动态配置队 列的队列,所述第一静态队列至少具有静态数量的特定大小的队列条 目,所述第二可动态配置队列至少具有可变数量的、由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 总线中的一个或多个之中。
全文摘要
公开了一种方法、计算机系统以及PCI Express设备/协议,它们能够实现多个不同的IO配置的高性能IO数据传输,所述IO配置包括IO链路上的可变的分组大小和/或可变的/不同的数量事务。增强了PCI Express协议,以支持利用计数器和可动态地变化的队列大小。除了标准队列条目之外,还提供/预留了几个(或所选数量的)可动态地改变的队列条目,在增强的PCI Express协议内提供了动态队列修改(DQM)工具,以监视正在进行的当前数据传输,并管理何时基于在PCI Express IO链路上传输的当前数据业务修改(增加或减小)队列条目的大小。增强的PCI Express协议提供一个平衡点,在该平衡点既有效地传输许多大数据分组,又对未完成数据分组的每一种大小的数量施加限制。
文档编号H04L29/06GK101132361SQ20071010998
公开日2008年2月27日 申请日期2007年6月11日 优先权日2006年8月22日
发明者柯蒂斯·C.·伍尔布林克, 罗纳德·E.·弗雷金, 菲利普·R.·希利尔三世 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1