CN113885945A - 一种计算加速方法、设备以及介质 - Google Patents
一种计算加速方法、设备以及介质 Download PDFInfo
- Publication number
- CN113885945A CN113885945A CN202111005930.2A CN202111005930A CN113885945A CN 113885945 A CN113885945 A CN 113885945A CN 202111005930 A CN202111005930 A CN 202111005930A CN 113885945 A CN113885945 A CN 113885945A
- Authority
- CN
- China
- Prior art keywords
- address
- engine
- configuration information
- queue management
- acceleration
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4416—Network booting; Remote initial program loading [RIPL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种计算加速方法,包括以下步骤:响应于接收到下发的IO请求,生成用于完成IO请求的每一个步骤分别对应的配置信息,并分别记录到不同的预设位置;将第一预设位置的地址和执行第一个步骤所需的加速引擎发送给队列管理引擎;队列管理引擎将接收到的地址发送给相应的加速引擎;相应的加速引擎根据队列管理引擎发送的地址获取对应的预设位置记录的配置信息,以根据配置信息执行对应的步骤,并根据配置信息确定执行下一个步骤所需的加速引擎以及根据队列管理引擎发送的地址计算下一个预设位置的地址;响应于相应的加速引擎执行完对应的步骤,将执行结果、执行下一个步骤所需的加速引擎以及下一个预设位置的地址发送给队列管理引擎。
Description
技术领域
本发明涉及加速架构领域,具体涉及一种计算加速方法、设备以及存储介质。
背景技术
计算存储引入了计算存储处理器(CSP)、计算存储驱动器(CSD)和计算存储阵列(CSA)三种产品形态,并期待通过架构上的重新定义来降低CPU占用率、降低对网络和DDR带宽的消耗、降低系统功耗、支持潜在的大规模并行计算处理等。
从计算机体系结构入手,若果从卸载CPU的负载的特点来看,又可以将计算加速划分为“单一计算加速”和“复杂计算加速服务”两种典型应用场景。
单一计算加速:典型的比如数据压缩类应用,单纯的对主机过来的数据进行处理转化,并最终将结果数据返回主机;此类加速一般对标基于CPU的软件解决方案,对数据处理的带宽有较高的要求,潜在性能瓶颈可能发生在与主机接口的PCIe或者本地DDR(2进2出)的带宽上,尤其是DDR的理论带宽需要在PCIe理论带宽的四倍以上。
复杂计算加速服务:是通过提供更为复杂的计算加速服务来实现;以RAID为例,主机的一次IO写操作,会导致若干次对硬盘的读写操作,以及若干次的RAID加速运算,RAID服务提供者不仅提供了RAID算法的计算加速,同时也屏蔽了主机和存储介质之间多次数据交互;此类计算加速服务建立在对系统的应用场景和需求的深刻理解和把握之上,从而可以更加“彻底”地卸载CPU上的工作负载,并提高系统的整体性能。
在如此丰富的应用场景之下,现有技术中无法实现一个面向计算存储的灵活而又统一的存储加速架构的搭建。
发明内容
有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种计算加速方法,包括以下步骤:
响应于接收到下发的IO请求,生成用于完成所述IO请求的每一个步骤分别对应的配置信息,并将每一个步骤对应的配置信息分别记录到不同的预设位置;
将第一预设位置的地址和执行第一个步骤所需的加速引擎发送给队列管理引擎;
所述队列管理引擎将接收到的地址发送给相应的加速引擎;
相应的加速引擎根据所述队列管理引擎发送的地址获取对应的预设位置记录的配置信息,以根据所述配置信息执行对应的步骤,并根据所述配置信息确定执行下一个步骤所需的加速引擎以及根据所述队列管理引擎发送的地址计算下一个预设位置的地址;
响应于所述相应的加速引擎执行完所述对应的步骤,将执行结果、执行下一个步骤所需的加速引擎以及下一个预设位置的地址发送给所述队列管理引擎,并返回所述队列管理引擎将接收到的地址发送给相应的加速引擎的步骤。
在一些实施例中,将每一个步骤对应的配置信息分别记录到不同的预设位置,进一步包括:
生成包括多个控制块的控制页表,其中所述控制块的数量与完成所述IO请求所需的步骤的数量相同;
将每一个步骤对应的配置信息按顺序写入不同的控制块;
将数据缓存地址指针以及原始IO请求对应的指令记录到所述控制页表。
在一些实施例中,所述队列管理引擎将接收到的地址发送给相应的加速引擎,进一步包括:
所述队列管理引擎将接收到的地址放入与相应的加速引擎对应的工作队列的队尾;
响应于所述队列管理引擎检测到相应的加速引擎正在执行任务数量小于阈值,将对应的工作队列的队首的地址发送给相应的加速引擎。
在一些实施例中,响应于所述相应的加速引擎执行完所述对应的步骤,将执行结果发送给所述队列管理引擎,进一步包括:
所述队列管理引擎根据所述执行结果中第一预设字段判断所述相应的加速引擎执行所述对应的步骤是否发生异常;
响应于发生异常,将相应的信息记录到事件队列中,以通知运行在处理器的固件,进而通过所述固件进行异常处理;
响应于未发生异常,根据所述执行结果中第二预设字段判断是否需要将对应的步骤的执行状态通知所述固件;
响应于需要通知所述固件,将所述对应的步骤的执行状态记录到事件队列中,以通知运行在处理器的固件。
在一些实施例中,相应的加速引擎根据所述队列管理引擎发送的地址获取对应的预设位置记录的配置信息,以根据所述配置信息执行对应的步骤,进一步包括:
判断所述配置信息中是否存在同步触发标志位;
响应于存在同步触发标志位,直接根据所述配置信息确定执行下一个步骤所需的加速引擎以及根据所述队列管理引擎发送的地址计算下一个预设位置的地址,并发送给所述队列管理引擎;
响应于每一个存在同步触发标志位的配置信息对应的步骤执行完成,将执行结果发送给所述队列管理引擎,并通过所述事件队列同步到所述固件;
所述固件检测到若干个存在同步触发标志位的配置信息对应的步骤执行完成,将下一个待执行的步骤对应的地址和对应的加速引擎发送给队列管理引擎。
在一些实施例中,相应的加速引擎根据所述队列管理引擎发送的地址获取对应的预设位置记录的配置信息,以根据所述配置信息执行对应的步骤,进一步包括:
判断所述配置信息中是否同时存在同步触发标志位和异步流控标志位;
响应于同时存在同步触发标志位和异步流控标志位,直接根据所述配置信息确定执行下一个步骤所需的加速引擎以及根据所述队列管理引擎发送的地址计算下一个预设位置的地址,并发送给所述队列管理引擎;
响应于下一个步骤执行完成,生成流控信号;
响应于所述相应的加速引擎检测到所述流控信号执行所述对应的步骤。
在一些实施例中,根据所述配置信息执行对应的步骤,并根据所述配置信息确定执行下一个步骤所需的加速引擎以及根据所述队列管理引擎发送的地址计算下一个预设位置的地址,进一步包括:
判断所述配置信息中是否存在循环标志位;
响应于存在循环标志位,将前序已执行的步骤作为下一个步骤,并将所述前序已执行的步骤对应的预设位置的地址作为下一个预设位置的地址;或,
判断当前资源是否充足;
响应于当前资源不充足,将当前步骤继续作为下一个步骤,并将当前步骤对应的预设位置的地址作为下一个预设位置的地址。
在一些实施例中,响应于所述相应的加速引擎执行完所述对应的步骤,将执行结果、执行下一个步骤所需的加速引擎以及下一个预设位置的地址发送给所述队列管理引擎,进一步包括:
在当前步骤对应的预设位置的地址中更新循环重复次数。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如上所述的任一种计算加速方法的步骤。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行如上所述的任一种计算加速方法的步骤。
本发明具有以下有益技术效果:本发明提出的方案能够使得控制端只需要登录邮箱通过发邮件的方式实现对被控端的远程控制,而无需安装任何程序。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明的实施例提供的计算加速方法的流程示意图;
图2为本发明的实施例提供的通用计算加速架构的结构示意图;
图3为本发明的实施例提供的CP和CB的结构示意图;
图4为本发明的实施例提供的计算加速方法的流程框图;
图5为本发明的实施例提供的分支跳转模式的示意图;
图6为本发明的实施例提供的错误恢复模式的示意图;
图7为本发明的实施例提供的同步触发模式的示意图;
图8为本发明的实施例提供的异步流控模式的示意图;
图9为本发明的实施例提供的循环模式的示意图;
图10为本发明的实施例提供的重试模式的示意图;
图11为本发明的实施例提供的计算机设备的结构示意图;
图12为本发明的实施例提供的计算机可读存储介质的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
根据本发明的一个方面,本发明的实施例提出一种计算加速方法,如图1所示,其可以包括步骤:
S1,响应于接收到下发的IO请求,生成用于完成所述IO请求的每一个步骤分别对应的配置信息,并将每一个步骤对应的配置信息分别记录到不同的预设位置;
S2,将第一预设位置的地址和执行第一个步骤所需的加速引擎发送给队列管理引擎;
S3,所述队列管理引擎将接收到的地址发送给相应的加速引擎;
S4,相应的加速引擎根据所述队列管理引擎发送的地址获取对应的预设位置记录的配置信息,以根据所述配置信息执行对应的步骤,并根据所述配置信息确定执行下一个步骤所需的加速引擎以及根据所述队列管理引擎发送的地址计算下一个预设位置的地址;
S5,响应于所述相应的加速引擎执行完所述对应的步骤,将执行结果、执行下一个步骤所需的加速引擎以及下一个预设位置的地址发送给所述队列管理引擎,并返回所述队列管理引擎将接收到的地址发送给相应的加速引擎的步骤。
本发明的实施例提出的方案通过微码驱动的通用加速架构将软件和硬件的交互界面最小化,有利于保证系统的高IOPS和高带宽特性。该微码驱动的通用加速架构同时又预留了足够灵活性,后期通过固件升级,针对主机相同的IO请求,可以呈现不同的处理过程和结果。在控制平面稳定后,针对不同业务类型,该微码驱动的通用加速架构对数据平面增删各类数据处理引擎的操作变得更加容易且风险可控。
在一些实施例中,本发明实施例提出的计算加速方法可以应用于通用计算加速芯片架构。如图2所示的计算加速芯片架构,其通过PCIe接口同主机连接,它分为控制平面和数据平面连个部分。控制平面基于一种微码驱动架构来实现加速任务的分步骤流转于各个加速引擎模块之间。控制平面由多核CPU处理集群,主机接口管理引擎(AEM),工作队列管理引擎(WQS)以及片上缓存组成。CPU处理集群上运行固件程序,负责针对主机不同的IO请求的分步处理准备,异常处理和错误恢复,状态监控和IO协处理等任务。AEM则依据所支持的主机接口协议,同主机进行通信,可选的协议有NVMe,VirtIO-Net和VirtIO-block等。WQS则负责将不同CB序列在多个引擎之间流转控制,以及通过事件队列和固件实现软硬件之间的交互。
在一些实施例中,步骤S1中,将每一个步骤对应的配置信息分别记录到不同的预设位置,进一步包括:
生成包括多个控制块的控制页表,其中所述控制块的数量与完成所述IO请求所需的步骤的数量相同;
将每一个步骤对应的配置信息按顺序写入不同的控制块;
将数据缓存地址指针以及原始IO请求对应的指令记录到所述控制页表。
具体的,如图3所示,主机的每次IO操作都会相应的生成一个控制页表(ControlPage),CP用以描述该主机IO请求需要分那些内部步骤(控制块,Control Block)来完成。CP页表集中分布在一片连续的片内/片外存储空间,每个CP页主要由CP头,CB区域,数据缓存地址指针和原始主机IO指令四个部分构成,各部分的边界16字节地址对齐。CP页表的大小可以使512B、1KB或者是2KB可配置,不同长度的CP页表的区别主要在CB区域大小不同。CB在CP内需要连续存放,每个CB都与某一类加速引擎对应,包含了该加速引擎处理分步任务所需要的所有配置信息,不同类引擎的对应的CB大小可以不同,其长度可选为16B、32B、64B和128B。
需要说明的是,数据缓存地址指针指向的地址可以用于不同的加速引擎之间进行数据交互。
在一些实施例中,步骤S3中,所述队列管理引擎将接收到的地址发送给相应的加速引擎,进一步包括:
所述队列管理引擎将接收到的地址放入与相应的加速引擎对应的工作队列的队尾;
响应于所述队列管理引擎检测到相应的加速引擎正在执行任务数量小于阈值,将对应的工作队列的队首的地址发送给相应的加速引擎。
具体的,一次典型的主机IO过程在加速芯片这边会经过如图4所示的流程。首先,AEM会遵从一定接口协议将原始的IO请求取回,并通过WQS所管理的硬件事件队列来通知固件。固件得到通知后,对IO命令进行解析后,会为此次IO操作创建CP,并将分步操作的CB按要求填入CP中。在完成上述步骤后,固件会将第一个CB1的地址(4B宽)和所需的加速引擎传递给WQS,WQS会将该CB1地址放入对应引擎的工作队列的队尾进行排队等待。当WQS检测到对应引擎正在处理的任务数量小于阈值时,从该引擎对应的工作队列的队首取出一个地址发送给该加速引擎。
这样当引擎收到该地址后,即可在相应的CB中读取到配置信息,进而开始执行该CB,以根据CB的配置信息进行相应的加速操作。在完成后将执行状态返回给WQS(可选的,可以通知固件),并根据当前地址计算出下一个CB的入口地址和通过当前CB中记录的配置信息确定下一个CB所需的引擎,使得WQS能够将下一个CB的地址放入对应引擎的工作队列等待,以此类推。整个流转过程全在WQS硬件控制之下,非必要无需固件参与。当最后一个CB完成后,需要对主机进行响应,并通知固件进行CP空间的回收。可以采用WQS向事件队列中写入消息,固件从事件队列中读取消息的方式来实现通知固件。
在一些实施例中,步骤S4中,根据所述配置信息确定执行下一个步骤所需的加速引擎以及根据所述队列管理引擎发送的地址计算下一个预设位置的地址,具体的,如图5所示,下一个步骤对应的CB可以是紧邻的下一个CB,也可以是不相邻的CB,即引擎可以依据当前CB的执行结果,可以选择顺序执行下一个紧邻的CB,或者是跳过若干个CB去执行。
在一些实施例中,步骤S5,响应于所述相应的加速引擎执行完所述对应的步骤,将执行结果发送给所述队列管理引擎,进一步包括:
所述队列管理引擎根据所述执行结果中第一预设字段判断所述相应的加速引擎执行所述对应的步骤是否发生异常;
响应于发生异常,将相应的信息记录到事件队列中,以通知运行在处理器的固件,进而通过所述固件进行异常处理;
响应于未发生异常,根据所述执行结果中第二预设字段判断是否需要将对应的步骤的执行状态通知所述固件;
响应于需要通知所述固件,将所述对应的步骤的执行状态记录到事件队列中,以通知运行在处理器的固件。
具体的,如图6所示,当引擎执行完CB后,会向WQS发送down信息,down信息中包括执行是否成功字段和是否需要通知固件字段,其中是否需要通知固件可以由CB中的配置信息决定。当引擎执行CB发生错误时,即使固件没有在CB中配置在执行结束时通知固件,引擎也会强制通知固件介入,进行异常处理或者错误恢复。固件在修正后,可以选择继续执行完后续所有的CB,即将下一个CB的地址和所需的引擎发送给WQS以进行后续的调度。
在一些实施例中,步骤S4,相应的加速引擎根据所述队列管理引擎发送的地址获取对应的预设位置记录的配置信息,以根据所述配置信息执行对应的步骤,进一步包括:
判断所述配置信息中是否存在同步触发标志位;
响应于存在同步触发标志位,直接根据所述配置信息确定执行下一个步骤所需的加速引擎以及根据所述队列管理引擎发送的地址计算下一个预设位置的地址,并发送给所述队列管理引擎;
响应于每一个存在同步触发标志位的配置信息对应的步骤执行完成,将执行结果发送给所述队列管理引擎,并通过所述事件队列同步到所述固件;
所述固件检测到若干个存在同步触发标志位的配置信息对应的步骤执行完成,将下一个待执行的步骤对应的地址和对应的加速引擎发送给队列管理引擎。
具体的,如图7所示,同步触发模式可以满足若干个CB需要并行执行的应用,虽然它们在CP也表上还是顺序存放,当时固件在创建CB时可以将同步触发标志位置起,当引擎看到当前CB的同步触发标志位置起后,不用等到当前CB执行结束,将可以将下一个CB的地址指针和所需的引擎返回WQS。当多个同步CB被触发后,它们在执行结束后默认需要通知固件来进行同步。固件在等到所有CB执行结束后,再将下一个CB的入口指针提交给WQS,继续后面的硬件自动流转。
在一些实施例中,步骤S4,相应的加速引擎根据所述队列管理引擎发送的地址获取对应的预设位置记录的配置信息,以根据所述配置信息执行对应的步骤,进一步包括:
判断所述配置信息中是否同时存在同步触发标志位和异步流控标志位;
响应于同时存在同步触发标志位和异步流控标志位,直接根据所述配置信息确定执行下一个步骤所需的加速引擎以及根据所述队列管理引擎发送的地址计算下一个预设位置的地址,并发送给所述队列管理引擎;
响应于下一个步骤执行完成,生成流控信号;
响应于所述相应的加速引擎检测到所述流控信号执行所述对应的步骤。
具体的,如图8所示,当前后CB所对应的引擎需要协同工作时,就需要使能异步流控模式。在异步流控模式下,前一个CB需要置起同步触发标志位,在引擎开始执行CB时就会将下一个CB通过WQS放入对应的等待队列,前一个CB即进入等待流控信号状态。此处,为了避免死锁和拥塞,前一个CB所对应引擎需要支持多个CB并行处理通道,且异步流控CB不能抢占所有通道。当后一个引擎发来流控信息后,前一个引擎在流控信号控制下分步执行。
在一些实施例中,根据所述配置信息执行对应的步骤,并根据所述配置信息确定执行下一个步骤所需的加速引擎以及根据所述队列管理引擎发送的地址计算下一个预设位置的地址,进一步包括:
判断所述配置信息中是否存在循环标志位;
响应于存在循环标志位,将前序已执行的步骤作为下一个步骤,并将所述前序已执行的步骤对应的预设位置的地址作为下一个预设位置的地址;或,
判断当前资源是否充足;
响应于当前资源不充足,将当前步骤继续作为下一个步骤,并将当前步骤对应的预设位置的地址作为下一个预设位置的地址。
在一些实施例中,响应于所述相应的加速引擎执行完所述对应的步骤,将执行结果、执行下一个步骤所需的加速引擎以及下一个预设位置的地址发送给所述队列管理引擎,进一步包括:
在当前步骤对应的预设位置的地址中更新循环重复次数。
具体的,如图9和图10所示,当需要重复若干次CB片段的时候,可以选择循环结构。若该CB被设置为循环监测点,在当前CB执行结束后,根据CB中所记录循环条件是否为真。为真,则逆向将前序某个CB的地址指针提交给WQS,并在CB对应位置更新循环计数值。为假,则将紧邻的后序CB的地址指针返回给WQS。
而当在当前CB执行时系统某种资源不够时可以采用重试结构模式,在使能该模式且重复次数小于预设的最大次数的情况下,则当前引擎会将该CB的地址指针重新提交给WQS,并更新CB中的重复次数字段;否则,当前引擎会通过WQS向固件上报异常事件。此模式的引入会进一步增强硬件的鲁棒特性,避免了频繁的让固件介入进行异常的处理。
本发明提出的方案可以应用于通用加速架构并基于微码(CP+CB)来驱动的控制和数据信息的流转,并且通过最小化的软硬件交互界面,成为尽可能释放IO性能的有力保障,同时固件保持有对加速服务行为的可编程特性,尽可能保证实现的灵活性与可扩展性。而且丰富多样CB调度模式,可以适应复杂的加速类应用场景。
基于同一发明构思,根据本发明的另一个方面,如图11所示,本发明的实施例还提供了一种计算机设备501,包括:
至少一个处理器520;以及
存储器510,存储器510存储有可在处理器上运行的计算机程序511,处理器520执行程序时执行如上的任一种计算加速方法的步骤。
基于同一发明构思,根据本发明的另一个方面,如图12所示,本发明的实施例还提供了一种计算机可读存储介质601,计算机可读存储介质601存储有计算机程序指令610,计算机程序指令610被处理器执行时执行如上的任一种计算加速方法的步骤。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种计算加速方法,其特征在于,包括以下步骤:
响应于接收到下发的IO请求,生成用于完成所述IO请求的每一个步骤分别对应的配置信息,并将每一个步骤对应的配置信息分别记录到不同的预设位置;
将第一预设位置的地址和执行第一个步骤所需的加速引擎发送给队列管理引擎;
所述队列管理引擎将接收到的地址发送给相应的加速引擎;
相应的加速引擎根据所述队列管理引擎发送的地址获取对应的预设位置记录的配置信息,以根据所述配置信息执行对应的步骤,并根据所述配置信息确定执行下一个步骤所需的加速引擎以及根据所述队列管理引擎发送的地址计算下一个预设位置的地址;
响应于所述相应的加速引擎执行完所述对应的步骤,将执行结果、执行下一个步骤所需的加速引擎以及下一个预设位置的地址发送给所述队列管理引擎,并返回所述队列管理引擎将接收到的地址发送给相应的加速引擎的步骤。
2.如权利要求1所述的方法,其特征在于,将每一个步骤对应的配置信息分别记录到不同的预设位置,进一步包括:
生成包括多个控制块的控制页表,其中所述控制块的数量与完成所述IO请求所需的步骤的数量相同;
将每一个步骤对应的配置信息按顺序写入不同的控制块;
将数据缓存地址指针以及原始IO请求对应的指令记录到所述控制页表。
3.如权利要求2所述的方法,其特征在于,所述队列管理引擎将接收到的地址发送给相应的加速引擎,进一步包括:
所述队列管理引擎将接收到的地址放入与相应的加速引擎对应的工作队列的队尾;
响应于所述队列管理引擎检测到相应的加速引擎正在执行任务数量小于阈值,将对应的工作队列的队首的地址发送给相应的加速引擎。
4.如权利要求1所述的方法,其特征在于,响应于所述相应的加速引擎执行完所述对应的步骤,将执行结果发送给所述队列管理引擎,进一步包括:
所述队列管理引擎根据所述执行结果中第一预设字段判断所述相应的加速引擎执行所述对应的步骤是否发生异常;
响应于发生异常,将相应的信息记录到事件队列中,以通知运行在处理器的固件,进而通过所述固件进行异常处理;
响应于未发生异常,根据所述执行结果中第二预设字段判断是否需要将对应的步骤的执行状态通知所述固件;
响应于需要通知所述固件,将所述对应的步骤的执行状态记录到事件队列中,以通知运行在处理器的固件。
5.如权利要求4所述的方法,其特征在于,相应的加速引擎根据所述队列管理引擎发送的地址获取对应的预设位置记录的配置信息,以根据所述配置信息执行对应的步骤,进一步包括:
判断所述配置信息中是否存在同步触发标志位;
响应于存在同步触发标志位,直接根据所述配置信息确定执行下一个步骤所需的加速引擎以及根据所述队列管理引擎发送的地址计算下一个预设位置的地址,并发送给所述队列管理引擎;
响应于每一个存在同步触发标志位的配置信息对应的步骤执行完成,将执行结果发送给所述队列管理引擎,并通过所述事件队列同步到所述固件;
所述固件检测到若干个存在同步触发标志位的配置信息对应的步骤执行完成,将下一个待执行的步骤对应的地址和对应的加速引擎发送给队列管理引擎。
6.如权利要求1所述的方法,其特征在于,相应的加速引擎根据所述队列管理引擎发送的地址获取对应的预设位置记录的配置信息,以根据所述配置信息执行对应的步骤,进一步包括:
判断所述配置信息中是否同时存在同步触发标志位和异步流控标志位;
响应于同时存在同步触发标志位和异步流控标志位,直接根据所述配置信息确定执行下一个步骤所需的加速引擎以及根据所述队列管理引擎发送的地址计算下一个预设位置的地址,并发送给所述队列管理引擎;
响应于下一个步骤执行完成,生成流控信号;
响应于所述相应的加速引擎检测到所述流控信号执行所述对应的步骤。
7.如权利要求1所述的方法,其特征在于,根据所述配置信息执行对应的步骤,并根据所述配置信息确定执行下一个步骤所需的加速引擎以及根据所述队列管理引擎发送的地址计算下一个预设位置的地址,进一步包括:
判断所述配置信息中是否存在循环标志位;
响应于存在循环标志位,将前序已执行的步骤作为下一个步骤,并将所述前序已执行的步骤对应的预设位置的地址作为下一个预设位置的地址;或,
判断当前资源是否充足;
响应于当前资源不充足,将当前步骤继续作为下一个步骤,并将当前步骤对应的预设位置的地址作为下一个预设位置的地址。
8.如权利要求7所述的方法,其特征在于,响应于所述相应的加速引擎执行完所述对应的步骤,将执行结果、执行下一个步骤所需的加速引擎以及下一个预设位置的地址发送给所述队列管理引擎,进一步包括:
在当前步骤对应的预设位置的地址中更新循环重复次数。
9.一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如权利要求1-8任意一项所述的方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行如权利要求1-8任意一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111005930.2A CN113885945B (zh) | 2021-08-30 | 2021-08-30 | 一种计算加速方法、设备以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111005930.2A CN113885945B (zh) | 2021-08-30 | 2021-08-30 | 一种计算加速方法、设备以及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113885945A true CN113885945A (zh) | 2022-01-04 |
CN113885945B CN113885945B (zh) | 2023-05-16 |
Family
ID=79011680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111005930.2A Active CN113885945B (zh) | 2021-08-30 | 2021-08-30 | 一种计算加速方法、设备以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113885945B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113918101A (zh) * | 2021-12-09 | 2022-01-11 | 苏州浪潮智能科技有限公司 | 一种写数据高速缓存的方法、系统、设备和存储介质 |
CN115357540A (zh) * | 2022-08-17 | 2022-11-18 | 北京超弦存储器研究院 | 存储系统及其计算存储处理器、固体硬盘和数据读写方法 |
CN115543219A (zh) * | 2022-11-29 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 一种对主机io处理的优化方法、装置、设备及介质 |
US11928345B1 (en) | 2022-08-17 | 2024-03-12 | Beijing Superstring Academy Of Memory Technology | Method for efficiently processing instructions in a computational storage device |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120159474A1 (en) * | 2010-12-16 | 2012-06-21 | Madhukar Gunjan Chakhaiyar | System and method of i/o path virtualization between a raid controller and an environment service module in a storage area network |
WO2012131523A1 (en) * | 2011-03-31 | 2012-10-04 | International Business Machines Corporation | A method of submitting co-processor commands over an interconnect link |
US20130152099A1 (en) * | 2011-12-13 | 2013-06-13 | International Business Machines Corporation | Dynamically configurable hardware queues for dispatching jobs to a plurality of hardware acceleration engines |
CN103885840A (zh) * | 2014-04-04 | 2014-06-25 | 华中科技大学 | 一种基于AXI4总线的FCoE协议加速引擎IP核 |
US20140380319A1 (en) * | 2013-06-20 | 2014-12-25 | International Business Machines Corporation | Address translation/specification field for hardware accelerator |
CN108287759A (zh) * | 2017-01-10 | 2018-07-17 | 阿里巴巴集团控股有限公司 | 处理数据过程中的调度方法、装置和系统 |
DE102019104394A1 (de) * | 2018-03-29 | 2019-10-02 | Intel Corporation | Befehlssatzarchitektur zum ermöglichen von energieeffizientem rechnen für exascalearchitekturen |
CN112130976A (zh) * | 2020-09-21 | 2020-12-25 | 厦门南讯股份有限公司 | 一种基于rest的多引擎大数据任务管理方法 |
CN112988350A (zh) * | 2021-03-01 | 2021-06-18 | 网易(杭州)网络有限公司 | 数据任务的处理方法、装置及电子设备 |
-
2021
- 2021-08-30 CN CN202111005930.2A patent/CN113885945B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120159474A1 (en) * | 2010-12-16 | 2012-06-21 | Madhukar Gunjan Chakhaiyar | System and method of i/o path virtualization between a raid controller and an environment service module in a storage area network |
WO2012131523A1 (en) * | 2011-03-31 | 2012-10-04 | International Business Machines Corporation | A method of submitting co-processor commands over an interconnect link |
US20130152099A1 (en) * | 2011-12-13 | 2013-06-13 | International Business Machines Corporation | Dynamically configurable hardware queues for dispatching jobs to a plurality of hardware acceleration engines |
US20140380319A1 (en) * | 2013-06-20 | 2014-12-25 | International Business Machines Corporation | Address translation/specification field for hardware accelerator |
CN103885840A (zh) * | 2014-04-04 | 2014-06-25 | 华中科技大学 | 一种基于AXI4总线的FCoE协议加速引擎IP核 |
CN108287759A (zh) * | 2017-01-10 | 2018-07-17 | 阿里巴巴集团控股有限公司 | 处理数据过程中的调度方法、装置和系统 |
DE102019104394A1 (de) * | 2018-03-29 | 2019-10-02 | Intel Corporation | Befehlssatzarchitektur zum ermöglichen von energieeffizientem rechnen für exascalearchitekturen |
CN112130976A (zh) * | 2020-09-21 | 2020-12-25 | 厦门南讯股份有限公司 | 一种基于rest的多引擎大数据任务管理方法 |
CN112988350A (zh) * | 2021-03-01 | 2021-06-18 | 网易(杭州)网络有限公司 | 数据任务的处理方法、装置及电子设备 |
Non-Patent Citations (3)
Title |
---|
CJ NEWBURN: "在现代数据中心加速IO:Magnum IO存储", 《NVIDIA.DEVELOPER》 * |
HAIROSS: "IO队列和IO调度", 《CSDN》 * |
谭怀亮;贺再红;: "基于RAID50的存储系统高速缓存设计", 计算机工程 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113918101A (zh) * | 2021-12-09 | 2022-01-11 | 苏州浪潮智能科技有限公司 | 一种写数据高速缓存的方法、系统、设备和存储介质 |
CN113918101B (zh) * | 2021-12-09 | 2022-03-15 | 苏州浪潮智能科技有限公司 | 一种写数据高速缓存的方法、系统、设备和存储介质 |
CN115357540A (zh) * | 2022-08-17 | 2022-11-18 | 北京超弦存储器研究院 | 存储系统及其计算存储处理器、固体硬盘和数据读写方法 |
WO2024036985A1 (zh) * | 2022-08-17 | 2024-02-22 | 北京超弦存储器研究院 | 存储系统及其计算存储处理器、固体硬盘和数据读写方法 |
US11928345B1 (en) | 2022-08-17 | 2024-03-12 | Beijing Superstring Academy Of Memory Technology | Method for efficiently processing instructions in a computational storage device |
CN115543219A (zh) * | 2022-11-29 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 一种对主机io处理的优化方法、装置、设备及介质 |
WO2024113996A1 (zh) * | 2022-11-29 | 2024-06-06 | 苏州元脑智能科技有限公司 | 一种对主机io处理的优化方法、装置、设备及非易失性可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113885945B (zh) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113885945A (zh) | 一种计算加速方法、设备以及介质 | |
CN108647104B (zh) | 请求处理方法、服务器及计算机可读存储介质 | |
CN113918101B (zh) | 一种写数据高速缓存的方法、系统、设备和存储介质 | |
CN113504985B (zh) | 一种任务处理方法以及网络设备 | |
US8065681B2 (en) | Generic shared memory barrier | |
CN115543219B (zh) | 一种对主机io处理的优化方法、装置、设备及介质 | |
CN111274019A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN110673959A (zh) | 用于处理任务的系统、方法和装置 | |
CN112395097A (zh) | 一种消息处理方法、装置、设备和存储介质 | |
CN108733585B (zh) | 缓存系统及相关方法 | |
CN112039999A (zh) | 一种内核态访问分布式块存储系统的方法及系统 | |
CN112948025B (zh) | 数据加载方法、装置及存储介质、计算设备、计算系统 | |
CN114218135A (zh) | 一种基于Redis缓存的源端流控方法及系统 | |
CN110445874B (zh) | 一种会话处理方法、装置、设备和存储介质 | |
CN110413398B (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
CN112363980A (zh) | 一种分布式系统的数据处理方法及装置 | |
CN115981893A (zh) | 消息队列任务处理方法、装置、服务器及存储介质 | |
CN110955461A (zh) | 计算任务的处理方法、装置、系统、服务器和存储介质 | |
CN111858095B (zh) | 一种硬件队列多线程共享方法、装置、设备及存储介质 | |
CN108874560B (zh) | 进行通信的方法和通信设备 | |
CN114820218A (zh) | 内容操作方法、装置、服务器及存储介质 | |
CN114253870A (zh) | 一种更新l2p表的方法、系统、设备以及介质 | |
CN111488222B (zh) | 一种流聚合方法、装置及电子设备 | |
US11677902B2 (en) | Data processing method and related product | |
CN108804214B (zh) | 一种异步任务的调度方法、装置以及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |