用于使用预提升缓冲器的高吞吐量硬件加速的方法和系统的制作方法

xiaoxiao2020-7-22  14

用于使用预提升缓冲器的高吞吐量硬件加速的方法和系统的制作方法
【专利摘要】实施例涉及提供高吞吐量硬件加速。多个方面包括初始化加速器控制队列(ACQ),所述加速器控制队列被配置为提供关于被识别为加速器数据的数据的多个页面的位置信息。确定所请求的目标数据的每个页面的起始位置。起始位置包括系统存储器和盘存储中之一。基于确定起始位置是系统存储器,在ACQ中创建条目,所述条目映射至用于目标数据的系统存储器源地址。基于确定起始位置是盘存储,在ACQ中创建条目,所述条目映射至用于目标数据的特别预提升缓冲器的特别预提升缓冲器源地址。基于ACQ的各自条目,通过加速器从在所述存储器或所述特别预提升缓冲器内的各自位置存取目标数据的多个页面的每个页面。
【专利说明】用于使用预提升缓冲器的高吞吐量硬件加速的方法和系统

【技术领域】
[0001] 本发明一般地涉及硬件加速器,并且更为具体地涉及使用速度匹配的特别预提升 (pre-stage)缓冲器来提供高吞吐量硬件加速。

【背景技术】
[0002] 当前计算系统被设计以处理需要对位于系统存储器或盘存储存储上的大量数据 进行存取的数据库查询和软件算法。为了处理需要存取大量数据的数据库查询,当前计算 系统典型地使用来自特定时间点的数据、或者在在线交易处理(0LTP)数据库系统中所使 用的实时数据的"快照"。此外,当需要的数据带宽可用时,当前计算系统经常提供硬件加速 器以便将一些处理从昂贵的一致性存储器多处理器(coherent memory multiprocessor) 卸载至较低廉的或更高效的硬件加速器中。


【发明内容】

[0003] 实施例包含用于提供高吞吐量硬件加速的方法、系统和计算机程序产品。多个方 面包含:初始化加速器控制队列(ACQ),所述加速器控制队列被配置为提供关于被识别为 加速器数据的数据的多个页面的位置信息。从软件应用接收对跨越多页面的目标数据的 请求,并且确定每页面目标数据的起始位置(originating location)。起始位置包含系 统存储器和盘存储中的至少一个。基于确定起始位置是系统存储器,在ACQ中创建条目 (entry),所述条目映射至用于目标数据的系统存储器源地址。基于确定出起始位置是盘存 储,在ACQ中创建条目,所述条目映射至用于目标数据的特别预提升缓冲器的预提升缓冲 器源地址,所述特别预提升缓冲器被配置为从盘存储中预提升目标数据以用于通过加速器 进行存取。基于ACQ的各种条目,通过加速器从所述存储器或所述特别预提升缓冲器中的 各自位置来存取目标数据的多个页面中的每一页面。

【专利附图】

【附图说明】
[0004] 在权利要求中特别地指出并且楚地要求作为本发明的主题。从下面结合附图的详 细描述中,本发明的上述和其他特征以及优势是明显的,其中:
[0005] 图1描绘根据实施例的计算机系统的方框图;
[0006] 图2描绘根据实施例从系统存储器和盘存储中预提升数据以用于加速器存取和 处理的流程图;
[0007] 图3描绘根据实施例用于发起加速器以便对来自加速器控制队列的数据进行处 理的流程图;
[0008] 图4描绘根据实施例用于释放来自特别预提升缓冲器存储器位置的预提升数据 的流程图;
[0009] 图5描绘根据实施例的计算机程序产品。

【具体实施方式】
[0010] 在此公开的实施例针对提供高吞吐量硬件加速。一个方面包含,初始化加速器控 制队列(ACQ),所述加速器控制队列被配置为提供关于被识别为加速器数据的数据的多个 页面的位置信息。从软件应用处接收对跨越多页面的目标数据的请求,并且确定目标数据 的每个页面的起始位置。起始位置包含系统存储器和盘存储中的至少一个。基于确定出起 始位置是系统存储器,在ACQ中创建条目,所述条目映射至用于目标数据的系统存储器源 地址。基于确定出起始位置是盘存储,在ACQ中创建条目,所述条目映射至用于目标数据的 特别预提升缓冲器的预提升缓冲器源地址,所述特别预提升缓冲器被配置为从盘存储预提 升目标数据,用于加速器进行存取。基于ACQ的各自条目,通过加速器从在所述存储器或所 述特别预提升缓冲器中的各自位置中存取目标数据的多个页面中的每一页面。
[0011] 当前数据系统典型地在将数据转交至加速器之前将所有请求数据拉回到系统存 储器内,或者将简单地假定所有请求数据位于盘存储上并且将直接发送至加速器。相应地, 当前数据系统并不尝试,将I/O请求发送至盘子系统,并且使这些子系统将一些数据直接 传递至加速器,同时使其他数据来自系统存储器。
[0012] 在此公开的实施例提供这样的方法、系统和计算机程序产品,它们用于将数据从 系统存储器和盘存储二者处卸载至加速器,同时防止加速器等待一个或另一个。换言之,实 施例通过确保所传递至加速器用于处理,从而提供速度匹配。实施例包含这样的方法,其将 来自相对慢的磁盘存取的数据的传递与高吞吐量硬件加速器进行速度匹配而不对用户级 软件引入附加的软件复杂度。
[0013] 此外,在此公开的实施例提供这样的方法、系统和计算机程序产品,它们用于对 0LTP系统中发现的大量数据进行处理时可用的加速器进行最优化。实施例以允许目标加 速器以最大吞吐速率存取和处理数据的方式,从系统存储器和盘存储中预提升数据。实施 例可以跟踪所需要的数据的状态和起始位置,允许以最优的方式存取数据的页面,而不考 虑页面的位置(例如系统存储器还是盘存储)。实施例可以使用现场可编程门阵列(FPGA) 作为加速器,结合快闪存储器作为特别预提升缓冲器以便对FPGA的使用进行最优化。实施 例还可以通过对从盘至快闪存储器然后至FPGA的数据流进行最优化减少系统数据总线的 使用,从而在所有盘驻留数据上避免系统和存储器总线。另外,实施例可以与任何操作大量 数据上并且保持数据映射的软件算法一起使用,所述数据映射表明数据目前在系统存储器 内还是在盘存储上。此外,实施例可以被扩展以操作在其中仅仅操作系统保持数据映射的 系统上。
[0014] 现在参考图1,示出根据示例性实施例的计算机系统10的方框图,所述计算机系 统适合使用速度匹配的特别预提升缓冲器来提供高吞吐量硬件加速。计算机系统10仅是 计算机系统的一个示例,而不旨在暗示与在此描述的实施例的使用或功能的范围有关的任 何限制。不管怎样,计算机系统10能够被实施和/或执行此前阐述的任何功能。
[0015] 与众多其他通用或专用计算系统环境或配置一起计算机系统10是可操作的。众 所周知的适合供计算机系统10使用的计算系统、环境和/或配置的示例包括但不限于:个 人计算机系统、服务器计算机系统、瘦客户端(thin client)、胖客户端(thick client)、蜂 窝电话、手持或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子、 网络PC、微计算机系统、大型计算机系统和包含上述任何系统或设备的分布式云计算环境 等。
[0016] 可以在由计算机系统10执行的诸如程序模块的计算机系统可执行指令的一般上 下文中描述计算机系统10。一般地,程序模块可以包括执行特定任务或实施特定抽象数据 类型的例程、程序、对象、部件、逻辑、数据结构等。计算机系统10可以实现在分布式云计算 环境中,其中通过由通信网络所链接的远程处理设备来执行任务。在分布式计算环境中,程 序模块可以位于本地的和远程的包含存储器存储设备的计算机系统存储介质中。
[0017] 如图1中示出的,以通用计算设备的形式示出计算机系统10,其也被称作处理设 备。计算机系统的部件可以包括但不限于:一个或多个处理器或处理单元16、系统存储器 28和将包含系统存储器28的各种系统部件耦合至处理器16的总线18。处理器16可以运 行计算机可读程序代码用于使用根据实施例的速度匹配的特别预提升缓冲器来提供高吞 吐量硬件加速。
[0018] 总线18表示几种总线结构类型中的任意一个或多个,包括存储器总线或存储器 控制器、外围总线、加速图形端口和使用多种总线结构中的任何一种的处理器或局部总线。 以示例而非限制性的方式,这样的结构包括:工业标准体系结构(ISA)总线、微通道体系结 构(MCA)总线、加强型ISA (EISA)总线、视频电子标准协会(VESA)局部总线、和外围部件互 联(PCI)总线。
[0019] 计算机系统10可以包含各种计算机系统可读介质。这样的介质可以是通过计算 机系统10可存取的任何可用介质,并且其包含易失和非易失性介质、可移除和不可移除介 质。系统存储器28可以包括诸如随机存取存储器(RAM)和/或系统高速缓存之类的易失 存储器的形式的计算机系统可读介质。根据实施例,系统存储器28可以由数据库软件使用 以便创建如以下进一步讨论的加速器控制队列(ACQ)。
[0020] 计算机系统10还可以包含其他可移除/不可移除、易失/非易失性计算机系统存 储介质。仅以示例的方式,可以提供存储系统34以便从不可移除的非易失性的磁介质(未 示出并且通常称作"硬盘驱动器")中读取或向其写入。每个存储系统34可以包含特别预 提升缓冲器或磁盘缓冲器36。尽管未示出,可以提供磁盘驱动器用于从可移除非易失性磁 盘(例如"软磁盘")读取并且向其写入,并且提供光盘驱动器用于从诸如⑶-R0M、DVD-R0M 或其他光学介质之类的可移除非易失性光盘中读取或向其写入。在这样的实例中,每个可 以通过一个或多个数据介质接口连接至总线18。
[0021] 如下文中将进一步描绘和描述的那样,系统存储器28可以包含至少一个具有一 组(例如至少一个)程序模块的程序产品,所述程序模块被配置为执行本公开的实施例的 功能。
[0022] 根据实施例,计算机可读程序代码可以存储在示例方式但不限于的系统存储器28 中,以及操作系统、一个或多个应用程序、其他程序模块和程序数据中。操作系统、一个或多 个应用程序、其他程序模块和程序数据中的每一个,或者它们中的一些组合,可以包含联网 环境的实施。计算机可读程序代码可以一般地执行如在此描述的发明的实施例的功能和/ 或方法。
[0023] 计算机系统10也可以与以下设备进行通信:诸如键盘、指示装置、显示器等之类 的一个或多个外部设备;一个或多个使得用户可以与计算机系统10交互的设备;和/或任 何使得计算机系统/服务器10能够与一个或多个计算设备进行通信的设备(例如网卡、调 制解调器等)。此外,计算机系统10可以与诸如局域网(LAN)、一般广域网(WAN)和/或公 共网络(例如因特网)之类的一个或多个网络通信。这样的通信可以通过输入/输出(1/ 0)网络22来发生。如所描绘的,I/O网络22通过总线18来与计算机系统10的其他部件 进行通信。例如,根据实施例,可以在处理器16和I/O网络之间建立I/O网络连接,以允许 处理器16向I/O网络22发出特别的I/O请求。根据另一实施例,I/O网络也可以与计算 机系统10的其他部件进行无线通信。
[0024] 计算机系统10还可以包含专用计算机系统。这些专用计算机系统可以包含硬件 加速器52,诸如FPGA (现场可编程门阵列)、GPU (图形处理单元)和类似的可以代替通用处 理器或者增加于通用处理器使用的系统。根据实施例,每个硬件加速器可以包含诸如快闪 存储器之类的特别预提升加速器缓冲器54。根据实施例,硬件加速器可以连接至I/O网络 22。根据实施例,在每个硬件加速器52和系统存储器28之间可以提供专用接口 70,以独立 于处理器16地提供从硬件加速器子系统52至系统存储器28的直接存储器存取(DMA)。
[0025] 计算机系统10也可以提供特别预提升备选缓冲器62,其可以连接至附加的存储 器卡。应当理解的是,尽管未示出,但是可以与计算机系统10相结合地使用其他硬件和/ 或其他软件部件。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部盘驱动器阵 列、RAID系统、带驱动器和数据档案存储系统(data archival storage system)等。
[0026] 参考图2, 一般地示出由计算机系统10的处理器16的实施例所执行的处理200的 流程图。如图2中所示,处理200提供这样的方法,其用于从系统存储器28和盘存储34预 提升数据以允许目标加速器52以最大吞吐速率存取并且处理数据。
[0027] 根据实施例,如在方框210中所示,加速器控制队列(ACQ)可以被构造以便预提升 需要使用加速器52的目标数据。ACQ可以包含用于已经由处理200所操作的目标数据的 每个页面的条目。每个ACQ条目可以包含页面驻留在系统存储器28中还是在盘存储34中 的指示。附加地,每个ACQ条目可以包含一组位(a set of bits),其指示对于ACQ条目的 I/O操作(如果存在)的状态。在方框220中,可以对页面映射进行存取,以基于接收到对 需要使用加速器52的目标数据的请求和询问,来确定目标数据的页面的位置。在方框230 中,关于目标页面驻留在系统存储器28中还是在盘存储34上进行确定。
[0028] 基于确定目标页面驻留在盘存储34上,发起对I/O网络的特别I/O请求,如在方 框240中所示。根据实施例,特别I/O请求可以将目标页面从盘存储34直接传递给加速器 52,或者将目标页面传递至特别预提升缓冲器36、54、62用于加速器52稍后存取。根据实 施例,目标页面可以传递至特别预提升缓冲器,所述预提升缓冲器包括加速器缓冲器52、盘 缓冲器36或备选缓冲器62中之一。根据实施例,特别预提升缓冲器36、54、62被配置为对 目标数据进行预提升用于加速器进行存取。本实施例允许更好地利用加速器52,因为其将 无需等待来自盘的目标数据。根据实施例,可以发起验证(Pin)或映射目标页面在特别预 提升缓冲器36、54、62中的位置的请求。相应地,在方框250中,可以创建ACQ条目,以映射 目标页面在特别预提升缓冲器36、54、62中的源地址用于加速器52随后引用。
[0029] 基于在块230中确定目标页面驻留在系统存储器28中,可以创建ACQ条目,其映 射至目标页面在系统存储器28中的源地址用于加速器52随后引用,如在方框260中所示。 根据实施例,加速器52随后可以使用直接存储器存取(DMA)以便通过专用接口从系统存储 器28提取目标页面。
[0030] 在方框270中,关于是否要将另一目标页面添加至ACQ进行确定。基于确定要将 另一目标页面添加至ACQ,处理200可以存取页面映射,以便确定新目标页面的位置,如在 方框220中所示。然而,基于确定没有更多目标页面要添加至ACQ,采集I/O响应,如在方框 280中所示。根据实施例,I/O响应可以包含与请求的数据一起由盘存储34发回至请求服 务器的消息。可以用中断驱动方案来实施I/O响应,其中,通过进入的消息来中断在服务器 中的处理器16,并且分叉至I/O中断处理程序。在处理程序中的代码将I/O响应与发起请 求者相匹配,由此确保数据被传递至正确的存储器位置并且更新存储器中的控制块以便指 示完成了 I/O请求。每次另一 I/O中断与下一数据块一起进入服务器,可以使用相同的中 断处理程序。
[0031] 参考图3, 一般地示出由计算机系统10的处理器16的实施例所进行的处理300的 流程图。如图3中所示,根据实施例,处理300提供用于发起处理器52以处理来自ACQ的 数据的方法。
[0032] 在方框310处,处理300检查对数据请求或查询的新I/O响应。在方框320处,根 据实施例,关于新I/O响应是否与在ACQ中的条目相匹配进行确定。
[0033] 基于确定新I/O响应与ACQ中的条目不相匹配,根据当前处理方法来处理新I/O 响应,如在方框330中所示。然而,基于确定新I/O响应与ACQ中的条目相匹配,新I/O响 应被标记为完成,如在方框340中所示。换言之,根据实施例,新I/O响应被标记为已经被 预提升在ACQ中。
[0034] 在方框350处,关于是否ACQ中的所有条目都具有有效响应进行确定。根据实施 例,每个ACQ条目可以包含对用于ACQ条目指示I/O操作的状态的一组位。这些位可以用 于确认已经完成了足够的盘操作并且在调用加速器52之前已经将需要的数据提升至较快 的特别预提升缓冲器存储器中。根据实施例,特别预提升缓冲器36、54、62被配置为预提升 目标数据用于加速器进行存取。根据实施例,服务器采集I/O响应并且然后等待将ACQ发 送至加速器52。根据另一实施例,服务器可以将这样的ACQ发送至加速器52,所述ACQ具 有一些标记为有效的条目但是也具有一些标记为无效的条目。相应地,加速器52将开始处 理有效的数据块,并且然后向服务器查询更新的ACQ版本,其中之前无效的条目已经成为 有效的。根据另一实施例,加速器52自身可以监视I/O中断消息。
[0035] 相应地,基于确定所有的ACQ条目具有有效的响应,加速器52被激励并且指向 ACQ,如在方框360中所示。根据实施例,加速器52使用在ACQ中的信息以便以最佳方式对 数据存取进行排序,从而使加速器52的数据吞吐量最大化并且避免等待磁盘存取。否则, 基于确定仍然存在对附加的ACQ条目的有效响应,处理300检查对于数据请求或查询的新 I/O响应,如块310中所示。
[0036] 参考图4, 一般地示出由计算机系统10的处理器16的实施例所进行的处理400的 流程图。如图4中所示,根据实施例,处理400提供用于从特别预提升缓冲器存储器位置释 放预提升的数据的方法。
[0037] 在方框410处,诸如盘存储34之类的I/O设备可以接收对目标数据的请求。在方 框420处,关于所接收的请求是否是特别请求进行确定。基于所接收的请求是正常请求,该 请求根据当前处理方法被处理,如在方框430中所示。根据所接收的请求是特别I/O请求, 实施例可以暂时地将请求的数据页面标记为对于由任何其他请求者进行的更新是不可用 的。相应地,如在方框440中所示,通过加速器52使用预提升数据来满足特别请求,并且释 放预提升数据的特别预提升缓冲器存储器位置以便随后使用。换言之,根据实施例,在处理 器52完成存取需要的数据之后,可以释放被标记为不可用于更新的一个和多个映射目标 页面。
[0038] 所属【技术领域】的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。 因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包 括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为"电路"、"模 块"或"系统"。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质 中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0039] 可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计 算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是--但不限 于--电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算 机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便 携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储 器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、 或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程 序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0040] 现在参考图5,在一个示例中,计算机程序产品500包含例如一个或多个存储介质 502,其中介质可以是有形的和/或非瞬时性的,以便在其上存储计算机可读的程序代码部 件或逻辑504从而提供和帮助在此描述的实施例的一个或多个方面。
[0041] 程序代码当创建和保存在(包括但不局限于电子存储器模块(RAM)、瞬时存储器、 压缩盘(CD)、DVD、磁带等的)有形介质上时,通常被称作"计算机程序产品"。典型地可以 由优选在计算机系统中的处理电路来读取计算机程序产品介质以便通过处理电路运行。例 如可以使用编译器或汇编器来创建这样的程序代码以便编译指令,使得当执行时实现本发 明的多个方面。
[0042] 技术效果和优势包括,即使当需要存取的数据片段位于慢盘存储34上时,提供在 0LTP系统中运行相对于最近实时数据的请求和其他算法的能力。此外,公开的实施例使将 数据从盘存储34移动至系统存储器28并且然后从系统存储器28移动至加速器52需要的 数据带宽最小化。公开的实施例提供对加速器52的高效利用,所述加速器需要存取来自具 有不同的存取延迟和响应时间的源的数据。
[0043] 在此使用的术语仅用于描述特定实施例的目的,并且不旨在限制实施例。如在此 使用的,单数形式"一个"、"一"和"该"旨在也包括复数形式,除非上下文清楚地表明相反情 况。还将理解的是,用语"包含"和/或"包括"当在本说明书中使用时,说明存在所陈述的 特性、数量、步骤、操作、单元和/或部件,但是并不排除一个或多个其他特性、数量、步骤、 操作、单元、部件和/或其中组合的出现或附加。
[0044] 相应的结构、材料、行为和在权利要求中所有的部件或步骤加上功能单元的等价 物旨在包括任何用于结合所明确要求的其他要求权利的单元来实现功能的结构、材料和行 为。已经提供实施例的描述用于说明和描述,但是不意味着是彻底的或限制于所公开形式 的实施例。对于本领域普通技术人员而言,很多改动和变形是显而易见的,而不脱离势力的 范围和主旨。选择并描述实施例以便最好地解释原理和实际应用,并且使得本领域普通技 术人员理解具有各种改动的实施例适于特殊使用考虑。
[0045] 可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机 程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++, 还包括常规的过程式程序设计语言一诸如" C"语言或类似的程序设计语言。程序代码可以 完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部 分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在 涉及远程计算机的情形中,远程计算机可以通过任意种类的网络--包括局域网(LAN)或 广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提 供商来通过因特网连接)。
[0046] 本文中将参照实施例的方法、装置(系统)和计算机程序产品的流程图和/或框 图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框 的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用 计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令 通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规 定的功能/操作的装置。
[0047] 也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置 以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一 个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture) 〇
[0048] 也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备 上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计 算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图 和/或框图中的方框中规定的功能/操作的过程。
[0049] 附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程 序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以 代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个 用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所 标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以 基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的 是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行 规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的 组合来实现。
【权利要求】
1. 一种用于提供高吞吐量硬件加速的计算机实施的方法,其包含: 通过计算机初始化加速器控制队列(ACQ),所述加速器控制队列被配置为提供关于被 识别为加速器数据的数据的多个页面的位置信息; 接收来自软件应用的对目标数据的请求,所述目标数据跨越多个页面; 确定目标数据的每个页面的起始位置,所述起始位置包括系统存储器和盘存储中的至 少一个; 基于确定所述起始位置是所述系统存储器,在所述ACQ中创建条目,所述条目映射至 用于所述目标数据的系统存储器源地址; 基于确定所述起始位置是所述盘存储,在所述ACQ中创建条目,所述条目映射至用于 所述目标数据的特别预提升缓冲器的预提升缓冲器源地址,所述特别预提升缓冲器被配置 为从盘存储中预提升所述目标数据用于所述加速器进行存取;和 基于所述ACQ的各自条目,通过加速器从在所述存储器或所述特别预提升缓冲器内的 各自位置存取目标数据的多个页面中的每一页面。
2. 按照权利要求1所述的计算机实施的方法,其中还基于确定所述起始位置是所述盘 存储: 发起特别输入/输出请求,以便将所述目标数据存储在所述特别预提升缓冲器内;和 保存其中存储所述目标数据的特别预提升缓冲器的源地址。
3. 按照权利要求2所述的计算机实施的方法,其中,所述特别预提升缓冲器包括加速 器缓冲器、磁盘缓冲器和耦合至存储器卡的缓冲器中的一个。
4. 按照权利要求1所述的计算机实施的方法,其中在所述ACQ中的条目还包含所述目 标数据驻留在所述系统存储器、盘存储和特别预提升缓冲器中的至少一个中的指示,并且 包含用于所述目标数据的输入/输出操作的状态。
5. 按照权利要求1所述的计算机实施的方法,其还包含: 检查来自随后数据请求的输入/输出响应; 确定所述输入/输出响应与在所述ACQ中的条目相匹配;以及 基于将所述输入/输出响应与在所述ACQ中的条目相匹配,将该输入/输出响应标记 为在该ACQ中。
6. 按照权利要求5所述的计算机实施的方法,其还包含在初始化所述加速器之前,确 定在所述ACQ内的所有条目具有有效的响应。
7. 按照权利要求1所述的计算机实施的方法,其中基于确定所述目标数据来源于所述 盘存储,所述方法还包含: 将所述目标数据标记为对于通过其他请求者进行的更新不可用; 发送所述目标数据至所述加速器以用于处理;以及 在加速器已经完成存取所述目标数据之后,释放用于所述目标数据的预提升缓冲器源 地址。
8. -种用于提供高吞吐量硬件加速的系统,所述系统包含被配置为执行按照权利要求 1至7中任一项所述的方法步骤的部件。
【文档编号】G06F12/08GK104123236SQ201410177329
【公开日】2014年10月29日 申请日期:2014年4月29日 优先权日:2013年4月29日
【发明者】W.T.博伊德, 小托马斯.J.赫勒 申请人:国际商业机器公司

最新回复(0)