CN117519955B - 一种加速设备的控制方法、系统、装置及加速设备 - Google Patents
一种加速设备的控制方法、系统、装置及加速设备 Download PDFInfo
- Publication number
- CN117519955B CN117519955B CN202410021734.1A CN202410021734A CN117519955B CN 117519955 B CN117519955 B CN 117519955B CN 202410021734 A CN202410021734 A CN 202410021734A CN 117519955 B CN117519955 B CN 117519955B
- Authority
- CN
- China
- Prior art keywords
- acceleration
- interface
- address
- register
- interrupt
- 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
Links
- 230000001133 acceleration Effects 0.000 title claims abstract description 415
- 238000000034 method Methods 0.000 title claims abstract description 91
- 238000004364 calculation method Methods 0.000 claims abstract description 134
- 230000005540 biological transmission Effects 0.000 claims description 88
- 230000008569 process Effects 0.000 claims description 35
- 230000015654 memory Effects 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 10
- 238000012423 maintenance Methods 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 16
- 238000013507 mapping Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008713 feedback mechanism Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 101100004179 Schizophyllum commune BAR2 gene Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种加速设备的控制方法、系统、装置及加速设备,涉及虚拟化接口领域,解决应用与加速设备间存在绑定关系、云服务提供商运维难度大的问题。加速设备配置有一个包括与至少一个加速单元一一对应的寄存器访问接口的虚拟化接口;获取主机端发送的计算指令,确定与计算指令对应的目标加速单元;通过与目标加速单元对应的寄存器访问接口调用目标加速单元对应的寄存器,执行与计算指令对应的计算任务。通过虚拟化接口的配置以及为各加速单元设置对应的寄存器访问接口,实现了对于具有多个加速单元的加速设备的调用,使得主机端与异构加速设备之间脱离了绑定关系,减轻了云服务提供商对异构加速设备的接口的运维难度和代价。
Description
技术领域
本申请涉及虚拟化接口领域,特别涉及一种加速设备的控制方法、系统、装置及加速设备。
背景技术
云计算技术的不断发展使得云端应用需求更加复杂多变,为满足这些需求,异构加速设备应运而生。异构加速设备是指特定用途的加速卡,如加解密加速卡、图像加速卡或视频加速卡等,用于加速特定的应用。然而,不同异构加速设备之间存在不同的实现机制和呈现的接口,导致应用与异构加速设备之间存在绑定关系,增加了云服务提供商对异构加速设备的接口的运维难度和代价。
发明内容
本申请的目的是提供一种加速设备的控制方法、系统、装置及加速设备,通过预先为加速设备配置一个虚拟化接口,并为各加速单元配置一一对应的寄存器访问接口,实现了对于具有多个加速单元的加速设备的调用。该方案使得主机端与异构加速设备之间脱离了绑定关系,减轻了云服务提供商对异构加速设备的接口的运维难度和代价。
为解决上述技术问题,本申请提供了一种加速设备的控制方法,应用于包括至少一个加速单元的加速设备,所述加速设备配置有一个虚拟化接口,所述虚拟化接口至少包括与至少一个所述加速单元一一对应的寄存器访问接口,所述方法包括:
获取主机端发送的计算指令,确定与所述计算指令对应的目标加速单元;
通过所述虚拟化接口访问与所述目标加速单元对应的寄存器访问接口,以调用所述目标加速单元对应的寄存器,执行与所述计算指令对应的计算任务。
在一个实施例中,还包括:
生成虚拟化接口-加速单元的初始化配置表。
在一个实施例中,确定与所述计算指令对应的目标加速单元,包括:
提取所述计算指令中所述加速单元的身份信息,所述身份信息表征所述加速单元的功能;
根据所述身份信息及所述初始化配置表确定所述目标加速单元。
在一个实施例中,所述加速设备配置寄存器访问接口的过程包括:
预先为所述寄存器访问接口配置预设地址,以存储各个所述加速单元对应的寄存器访问接口的配置信息。
在一个实施例中,预先为所述寄存器访问接口配置预设地址时,遵循虚拟化输入/输出设备规范。
在一个实施例中,所述配置信息至少包括:所述加速单元的身份信息、预先为所述加速单元配置的可用存储空间范围的参数、用于表征所述加速单元的地址的寄存器信息。
在一个实施例中,所述预先为所述加速单元配置的可用存储空间范围的参数包括存储空间的起始地址和存储空间长度。
在一个实施例中,用于表征所述加速单元的地址的寄存器信息包括所述加速单元对应的基址寄存器、在所述基址寄存器上的偏移量和寄存器长度。
在一个实施例中,所述虚拟化接口中还包括数据传输接口时,还包括:
通过所述数据传输接口与所述主机端进行数据传输。
在一个实施例中,获取主机端发送的计算指令,包括:
通过所述数据传输接口获取所述主机端发送的所述计算指令。
在一个实施例中,所述数据传输接口用于通过报文传输数据,所述报文的结构至少包括请求头部和数据部,其中,所述请求头部包括用于表征读出或者写入的请求类型和目标访问存储空间范围,所述数据部包括待处理数据的地址。
在一个实施例中,执行与所述计算指令对应的计算任务,包括:
通过所述数据传输接口接收所述主机端发送的报文;
根据所述请求类型、目标访问存储空间范围及所述待处理器数据的地址对所述待处理数据进行处理。
在一个实施例中,所述加速单元对应的寄存器至少包括待计算数据的待处理地址寄存器、用于存放计算结果的结果地址寄存器和用于启动计算的控制寄存器;
根据所述请求类型、目标访问存储空间范围及所述待处理器数据的地址对所述待处理数据进行处理,包括:
根据所述待计算数据的地址对所述主机端中存储的待计算数据进行读取;
将读取后的所述待计算数据存储至目标访问存储空间中,并将所述目标访问存储空间中用于存储所述待计算数据的地址写入所述待处理地址寄存器中;
接收所述主机端发送的计算启动指令;
根据所述计算启动指令通过所述控制寄存器启动计算,以根据所述待处理地址寄存器中存储的地址以及所述目标访问存储空间中存储的所述待计算数据得到计算结果;
为所述计算结果分配地址,并将分配的地址写入所述结果地址寄存器中,将所述计算结果存储至与所述结果地址寄存器中存储的地址对应的所述目标访问存储空间中;
触发所述主机端根据所述结果地址寄存器中存储的地址将所述计算结果通过所述数据传输接口读出。
在一个实施例中,所述报文的结构还包括状态标志位,通过所述数据传输接口与所述主机端进行数据传输之后,还包括:
判断数据是否传输成功,若成功,则将所述状态标志位设为第一状态,否则将所述状态标志位设为第二状态,以将所述数据传输状态反馈至所述主机端。
在一个实施例中,所述虚拟化接口中还包括中断接口,所述方法还包括:
在自身产生中断时,通过所述中断接口将中断信息反馈至主机端,以触发所述主机端对所述中断信息进行处理;
所述中断信息表征所述加速设备产生中断的类型。
在一个实施例中,所述中断接口配置为事件队列,则在自身产生中断时,通过所述中断接口将中断信息反馈至主机端,以触发所述主机端对所述中断信息进行处理,包括:
在自身产生中断时,生成所述中断信息,并将所述中断信息写入所述事件队列中;
触发所述主机端读取所述事件队列中的所述中断信息,以便所述主机端对所述中断信息进行处理。
在一个实施例中,在所述加速设备中包括多个所述加速单元时,所述中断接口配置为多个与所述加速单元一一对应的事件队列。
为解决上述技术问题,本申请还提供了一种加速设备的控制系统,应用于包括至少一个加速单元的加速设备,所述加速设备配置有一个虚拟化接口,所述虚拟化接口至少包括与至少一个所述加速单元一一对应的寄存器访问接口,所述系统包括:
确定单元,用于获取主机端发送的计算指令,确定与所述计算指令对应的目标加速单元;
计算单元,用于通过所述虚拟化接口访问与所述目标加速单元对应的寄存器访问接口,以调用所述目标加速单元对应的寄存器,执行与所述计算指令对应的计算任务。
为解决上述技术问题,本申请还提供了一种加速设备的控制装置,包括:
存储器,用于存储计算机程序;
处理器,用于在存储计算机程序时,实现如上述所述的加速设备的控制方法的步骤。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的加速设备的控制方法的步骤。
为解决上述技术问题,本申请还提供了一种加速设备,用于实现如上述所述的加速设备的控制方法的步骤。
本申请提供了一种加速设备的控制方法、系统、装置及加速设备,涉及虚拟化接口领域。加速设备配置有一个虚拟化接口,虚拟化接口至少包括与至少一个加速单元一一对应的寄存器访问接口;获取主机端发送的计算指令,确定与计算指令对应的目标加速单元;通过与目标加速单元对应的寄存器访问接口调用目标加速单元对应的寄存器,以执行与计算指令对应的计算任务。通过预先为加速设备配置一个虚拟化接口,并为各加速单元配置一一对应的寄存器访问接口,实现了对于具有多个加速单元的加速设备的调用。该方案使得主机端与异构加速设备之间脱离了绑定关系,减轻了云服务提供商对异构加速设备的接口的运维难度和代价。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种加速设备的控制方法的流程示意图;
图2为本申请提供的一种加速设备的特定配置空间布局示意图;
图3为本申请提供的一种报文格式示意图;
图4为本申请提供的一种向量加的加速设备的设备特定配置空间示意图;
图5为本申请提供的一种写操作的报文示意图;
图6为本申请提供的一种读操作的报文的示意图;
图7为本申请提供的一种加速设备的控制系统的结构框图;
图8为本申请提供的一种加速设备的控制装置的结构框图;
图9为本申请提供的一种计算机可读存储介质的结构框图。
具体实施方式
本申请的核心是提供一种加速设备的控制方法、系统、装置及加速设备,通过预先为加速设备配置一个虚拟化接口,并为各加速单元配置一一对应的寄存器访问接口,实现了对于具有多个加速单元的加速设备的调用。该方案使得主机端与异构加速设备之间脱离了绑定关系,减轻了云服务提供商对异构加速设备的接口的运维难度和代价。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参照图1,图1为本申请提供的一种加速设备的控制方法的流程示意图,该方法应用于包括至少一个加速单元的加速设备,加速设备配置有一个虚拟化接口,虚拟化接口至少包括与至少一个加速单元一一对应的寄存器访问接口;
目前,传统的加速设备控制方法需要在主机端进行硬件绑定,导致新增加速单元时需修改主机端的接口适配代码,增加了维护成本和时间成本。
本实施例的设计思路为:通过虚拟化接口将主机端与加速设备解耦,为至少一个加速单元配置一个与主机端相对应的寄存器访问接口,可通过寄存器来访问加速设备,实现设备资源的动态管理和扩展。通过抽象出虚拟化接口对不同类型的加速设备进行统一抽象,实现了统一访问接口;通过寄存器访问接口实现了主机端对加速设备的控制。
具体实现方式可以为:通过定义一组虚拟化接口,将主机与加速设备进行统一抽象,定义一个注册表(也即初始化配置表),记录每个寄存器访问接口与对应加速单元之间的映射关系;主机端通过虚拟化接口访问寄存器访问接口,进而调用加速单元对应的寄存器,实现加速设备的计算任务。在一个具体实施例中,可以是寄存器访问接口与加速单元的个数相同且一一对应。
综上,本申请中将主机端与异构加速设备的绑定解耦,基于虚拟化技术,将加速设备中的加速单元抽象出来,构建出虚拟化接口。通过虚拟化接口,主机端可以直接访问加速单元,而无需关心加速设备中具体的接口的配置和管理,降低了云服务商的运维难度和代价,实现了加速设备的动态管理和扩展,并且在实现多个异构加速设备协同工作方面具有显著的优势。
方法包括:
S11:获取主机端发送的计算指令,确定与计算指令对应的目标加速单元;
S12:通过与目标加速单元对应的寄存器访问接口调用目标加速单元对应的寄存器,以执行与计算指令对应的计算任务。
具体地,在加速设备中包括多个加速单元时,每个加速单元的功能可能不同。因此,加速设备在处理计算任务时,必须要先确定目标加速单元,才能执行计算任务。本实施例中的具体实现过程为:获取主机端发送的计算指令,并确定与计算指令对应的目标加速单元。这个过程可以通过虚拟化接口的寄存器访问接口实现。在具体实现中,可以将虚拟化接口设计成一个类似于总线的结构,每个加速单元都通过一个唯一的地址与虚拟化接口进行通信。在配置虚拟化接口时,需要为每个加速单元分配一个唯一对应的地址(或者地址范围),并将地址信息存储在虚拟化接口的寄存器访问接口中。当主机端发送计算指令时,需要提供目标加速单元的地址信息,或者提供目标加速单元的身份信息,虚拟化接口可以通过地址信息或者身份信息来确定目标加速单元并将计算指令传递给其对应的寄存器。目标加速单元接收到计算指令后,可以执行相应的计算任务。
例如,一个加速设备包含10个加速单元,每个加速单元对应一个线程。为了实现线程级别的控制和调度,可以为加速设备配置一个虚拟化接口,其中每个加速单元对应一个唯一的寄存器访问接口(其中配置有对应的地址信息)。当主机端发送计算指令时,需要提供目标加速单元的地址信息,虚拟化接口可以通过地址信息来确定目标加速单元,并将计算指令传递给其对应的寄存器。目标加速单元接收到计算指令后,可以执行相应的计算任务。
此外,在具体实现中,也可以通过软件模拟的方式实现虚拟化接口。例如,可以在加速设备的驱动程序中实现一个虚拟化层,该层将主机端发送的计算指令转换成加速设备支持的指令格式,并将计算任务分发到各个加速单元上。
综上,本实施例中通过虚拟化接口和寄存器访问接口,将计算指令发送给目标加速单元,实现了应用与加速设备之间的解耦。这样一来,应用可以通过统一的虚拟化接口与加速设备进行通信,不再需要针对不同的加速设备编写特定的接口代码。这降低了云服务提供商对异构加速设备的运维难度和代价。此外,由于虚拟化接口和寄存器访问接口的存在,加速设备的配置更加灵活。云服务提供商可以根据具体的需求和场景,自由地配置和调整加速单元对应的寄存器,以适应不同的计算任务。这样一来,加速设备可以更好地满足不同应用的需求,提供更高效的计算加速。也即基于虚拟化接口的控制方法可以有效地解决加速设备的访问接口混乱的问题,避免应用与异构加速设备之间存在绑定关系。同时,虚拟化接口的实现也有利于加速设备的扩展和升级,在不改变加速设备的结构的情况下增加新的加速单元或调整加速单元的分配方式。
在上述实施例的基础上:
在一个实施例中,还包括:
生成虚拟化接口-加速单元的初始化配置表。
传统的加速设备控制方法需要针对每个加速单元进行单独的配置和控制,难以对加速设备进行整体管理。同时,当加速设备中添加或调整加速单元时,需要进行繁琐的配置工作,效率低下。
为解决上述问题,本实施例将加速设备中的加速单元抽象出来,构建出虚拟化接口。通过虚拟化接口,主机端可以直接访问加速单元,而无需关心加速设备中具体的物理单元配置和管理。
在实现时,首先需要生成一个虚拟化接口-加速单元的初始化配置表。该表中记录了每个加速单元的配置信息,包括所占用的资源、初始化参数等。当需要向加速设备发送计算指令时,可根据发送的指令确定目标加速单元,并通过虚拟化接口调用对应的寄存器访问接口,执行相应的计算任务。虚拟化接口-加速单元的初始化配置表可以在加速设备启动时或者在为各个加速单元配置对应的配置信息时由驱动程序生成,并存储在设备中。
例如,一种加速设备中包含两个加速单元:加速单元A和加速单元B。在启动设备时,驱动程序生成了虚拟化接口-加速单元的初始化配置表,在其中记录了各个单元的配置信息。当主机端需要向该设备发送计算指令时,根据指令的目标单元确定使用的加速单元为单元B,并通过虚拟化接口调用对应的寄存器访问接口,向加速单元B发送指令执行计算任务。
此外,虚拟化接口-加速单元的初始化配置表也可以动态生成,并在需要修改加速设备配置时进行更新。
综上,本实施例提出的虚拟化接口控制方法,通过初始化配置表可以将加速设备中的加速单元进行抽象管理,方便对整个加速设备进行控制和管理。
在一个实施例中,确定与计算指令对应的目标加速单元,包括:
提取计算指令中加速单元的身份信息,身份信息表征加速单元的功能;
根据身份信息及初始化配置表确定目标加速单元。
具体地,在加速设备中,如何确定目标加速单元是一个常见的问题。本实施例中,实现依赖于预先配置的虚拟化接口。虚拟化接口中包括了与加速设备中各个加速单元一一对应的寄存器访问接口,其中每个寄存器访问接口对应着一个唯一的身份信息。当主机端发送计算指令时,指令中包含了目标加速单元的身份信息。虚拟化接口可以通过身份信息查询初始化配置表,确定目标加速单元的寄存器访问接口,并将计算指令传递给该接口。
假设加速设备中有3个加速单元,分别具有功能A、B和C。我们为每个加速单元分配一个唯一的身份信息,其中A对应身份信息1,B对应身份信息2,C对应身份信息3。在预先配置的初始化配置表中,对应着每个身份信息与其对应的寄存器访问接口。当主机端发送计算指令时,指令中附带了目标加速单元的身份信息,假设为身份信息2。虚拟化接口查询初始化配置表,确定身份信息2对应的寄存器访问接口,即加速单元B,然后将计算指令传递给加速单元B对应的寄存器访问接口。
在实现中,可以使用一个类似于映射表的数据结构(与上述初始化配置表相同)来存储身份信息与寄存器访问接口之间的对应关系。初始化时,向该表中加入各个身份信息及其对应的寄存器访问接口;接收到计算指令时,从指令中提取出目标加速单元的身份信息,并查询该表确定目标加速单元的寄存器访问接口。
综上,本实施例中,采用基于身份信息的目标加速单元确定方式,可以提高了系统的扩展性和维护性。
在一个实施例中,加速设备配置寄存器访问接口的过程包括:
预先为寄存器访问接口配置预设地址,以存储各个加速单元对应的寄存器访问接口的配置信息。在一个实施例中,预先为寄存器访问接口配置预设地址时,遵循虚拟化输入/输出设备规范。具体过程包括:根据虚拟化输入/输出规范确定设备配置空间的大小及地址;将设备配置空间的地址告知驱动程序,以触发驱动程序在地址空间中映射设备配置空间;在设备配置空间中定义并初始化各寄存器访问接口的配置信息。
本实施例中预先为加速设备配置虚拟化接口的过程是通过预先配置一个拥有与各加速单元一一对应的寄存器访问接口的方式来实现的。预设地址是指在设计阶段就规划好的地址范围,用于存储特定类型的数据。在预先为加速设备配置寄存器访问接口时,首先确定预设地址的范围,然后将各个加速单元对应的寄存器访问接口配置信息存储在该地址范围内。在执行计算任务时,通过读取预设地址中存储的配置信息,可以快速确定目标加速单元对应的寄存器访问接口。
但是如果只是应用普通的预设地址来存储各个加速单元对应的寄存器访问接口等配置信息时,可能还需要重新研发驱动框架,因此,在一个具体实施例中,预设地址的设置遵循虚拟化输入/输出设备规范,此规范中使用已有的设备特定配置空间存放寄存器访问接口信息,可以直接复用该规范的驱动框架。在预先为各个加速单元配置寄存器访问接口等配置信息之后,驱动程序在启动时可以调用此配置信息,以实现对各个加速单元的调用。主机端控制器通过此驱动程序调用这些预先配置好的虚拟化接口来操作和控制各个加速单元。
当然,在寄存器访问接口的预设地址配置过程中,也可以采用其他的规范或标准,本申请在此不再限定。
综上,本实施例中通过预先为加速设备配置寄存器访问接口的过程,充分利用资源,提高了加速设备的资源管理效率。此外,采用预设地址的方式进行配置,还可以保证数据的快速读取和写入,提高了系统的运行效率和稳定性。
在一个实施例中,配置信息至少包括:加速单元的身份信息、预先为加速单元配置的可用存储空间范围的参数、用于表征加速单元的地址的寄存器信息。
具体地,在加速设备中,不同的加速单元可能会使用不同的地址寄存器,这就需要一个通用的寄存器访问接口来对这些寄存器进行管理。此外,不同的加速单元所需的存储空间大小也可能不同,需要进行合理的配置。
本实施例在对寄存器访问接口进行配置时,首先需要确定各个加速单元的身份信息,将其与寄存器访问接口进行一一对应。同时,需要预先为每个加速单元设定可用的存储空间范围,以保证加速设备的统一运行。其中,在一个实施例中,预先为加速单元配置的可用存储空间范围的参数包括存储空间的起始地址和存储空间长度。另外,为了管理不同加速单元的地址信息,需要在寄存器访问接口中配置相应的寄存器信息。在一个实施例中,用于表征加速单元的地址的寄存器信息包括加速单元对应的基址寄存器、在基址寄存器上的偏移量和寄存器长度。通过对该信息的配置,可以实现对加速设备中各个加速单元的统一管理。
具体可参照图2,图2为本申请提供的一种加速设备的特定配置空间布局示意图。其中,此加速设备包含的加速单元的数目,num_afu;每个AFU的信息,具体包括:标识此加速单元功能的身份信息afu_id,标识此加速单元可用存储空间的范围ddr_start和ddr_length,标识此加速单元寄存器所在空间信息的bar、offset和reg_length。
需要说明的是,因为加速设备可能包含多个加速单元,每个加速单元所需要的存储空间可能不一样,为避免读写不同加速单元数据出现问题,本实施例为每个加速单元提供了ddr_start和ddr_length两个参数,以限定此加速单元可用的存储空间起始地址和长度;另外,bar指的是此加速单元寄存器所在的bar空间编号,offset值的是bar空间的偏移,reg_length表示寄存器的范围,基于bar和offset两个参数可以确定此加速单元寄存器的基地址,即bar空间的基地址+偏移offset。
为了进一步方便管理加速设备中的各个单元,可以在寄存器访问接口中加入一些额外的参数,例如工作状态、运行时间等信息,以获取加速设备的全面状态。
综上,本实施例中,通过寄存器访问接口的配置信息,可以实现加速设备中各个加速单元的统一管理,方便调用和管理计算任务。同时,可以通过该接口获取加速设备的全面状态信息,便于进行设备运行维护。
在一个实施例中,虚拟化接口中还包括数据传输接口时,还包括:
通过数据传输接口与主机端进行数据传输。
具体地,在虚拟化接口中还包括数据传输接口时,则可以通过虚拟化技术来实现从虚拟地址空间到物理地址空间的映射。具体来说,可以通过在虚拟地址空间与物理地址空间之间建立一个映射表,将虚拟地址映射到物理地址。这样,当主机端需要与加速设备进行数据传输时,可以通过虚拟地址来访问加速设备,实现数据的传输。本实施例中的数据传输接口可以优化加速设备与主机端之间的数据传输方式,从而提高数据传输的效率和可靠性。在一个实施例中,获取主机端发送的计算指令,包括:通过数据传输接口获取主机端发送的计算指令。
在一个实施例中,数据传输接口用于通过报文传输数据,报文的结构至少包括请求头部和数据部,其中,请求头部包括用于表征读出或者写入的请求类型和目标访问存储空间范围,数据部包括待处理数据的地址。
具体地,数据传输接口的设计必须保证高效、稳定、可靠,避免数据传输过程中出现错误和丢失数据等问题。
本实施例中,数据传输过程中采用报文传输的方式,并在报文中标明请求类型、目标访问存储空间范围和待处理数据的地址,加速设备通过解析这些信息,进行针对性的数据传输。通过将待传输的数据封装成报文,并在报文中标明请求类型、目标访问存储空间范围和待处理数据的地址,实现了高效、稳定和可靠的数据传输。在加速设备中收到报文后,可以通过解析报文中的信息,将数据传输到目标存储空间中进行处理。同时,通过将数据传输接口设计为独立的接口,与计算任务的执行过程分离,避免了计算任务和数据传输任务之间的干扰,提高了加速设备的性能。
其中,具体可以但不限于使用DMA(Direct Memory Access)方式进行数据传输,该方式可实现数据在内存之间的直接传输,避免了CPU的干扰,提高了数据传输的效率。
综上,本实施例中通过采用高效、稳定、可靠的数据传输方式,可以提高加速设备的性能和处理效率,同时还可以避免数据传输过程中出现的错误和丢失数据等问题,提高了系统的可靠性和稳定性。
在一个实施例中,执行与计算指令对应的计算任务,包括:
通过数据传输接口接收主机端发送的报文;
根据请求类型、目标访问存储空间范围及待处理器数据的地址对待处理数据进行处理。
具体地,通过数据传输接口接收主机端发送的报文,并解析报文中的请求类型、目标访问存储空间范围及待处理数据的地址,将待处理数据传输到目标加速单元中进行计算,通过寄存器访问接口与目标加速单元对应的寄存器进行通信。可以采用消息队列的方式进行计算任务的分配和管理,通过消息队列将计算任务分发到各个加速单元中,并通过数据传输接口及时将数据传输到指定的加速单元中。
此外,还可以通过向多个加速单元分别分发多个计算任务方式实现并行任务,以提高任务执行的效率,例如需要对一段音频信号进行傅里叶变换等计算任务,可以将这些计算任务分配到多个加速单元中并发执行,并通过数据传输接口将待处理的音频数据实时传递到各个加速单元中,以提升计算效率和准确性。
在一个实施例中,加速单元对应的寄存器至少包括待计算数据的待处理地址寄存器、用于存放计算结果的结果地址寄存器和用于启动计算的控制寄存器;
根据请求类型、目标访问存储空间范围及待处理器数据的地址对待处理数据进行处理,包括:
根据待计算数据的地址对主机端中存储的待计算数据进行读取;
将读取后的待计算数据存储至目标访问存储空间中,并将目标访问存储空间中用于存储待计算数据的地址写入待处理地址寄存器中;
接收主机端发送的计算启动指令;
根据计算启动指令通过控制寄存器启动计算,以根据待处理地址寄存器中存储的地址以及目标访问存储空间中存储的待计算数据得到计算结果;
为计算结果分配地址,并将分配的地址写入结果地址寄存器中,将计算结果存储至与结果地址寄存器中存储的地址对应的目标访问存储空间中;
触发主机端根据结果地址寄存器中存储的地址将计算结果读出。
具体地,如何高效地管理和处理加速单元中的待计算数据和计算结果;如何确保数据在加速设备和主机端之间的高效传输和存储。
在上述实施例的基础上,本申请的实现基于寄存器访问接口和数据传输接口,首先,预先为各个加速单元配置寄存器访问接口,即为每个加速单元配置待处理地址寄存器、结果地址寄存器和控制寄存器。然后,为加速设备配置一个虚拟化接口,以便能够在主机端与各加速单元之间进行快速切换和调度。在一个具体实施例中,数据处理方式为:加速设备接收到主机端发送的报文时,解析报文中数据部中的待计算数据的地址(此地址表征待计算数据在主机端的存储地址),然后设备端根据待计算数据的地址读取主机端中存储的待计算数据,将读取到的待计算数据存储至自身加速单元对应的目标访问存储空间中(此目标访问空间范围在报文的请求头部中表示),将待计算数据在加速设备中存储的地址写入待计算地址寄存器中,以便于在计算时根据此待计算地址寄存器中的地址读取加速设备中存储的待计算数据。具体地,完成对待计算数据和其地址的写入之后,发送一个中断给主机端,主机端接收到此中断之后,发送计算启动指令,此时加速设备端对数据进行计算时,通过控制寄存器启动以调用待计算地址寄存器中的地址,进而读取加速设备中存储的待计算数据,得到计算结果,然后为计算结果分配地址,并将分配的地址写入结果地址寄存器中,再将计算结果存储到与结果地址寄存器中存储的地址对应的目标访问空间中。然后再发送一个中断给主机端,主机端在识别到此中断之后,根据结果地址寄存器中的地址读取目标访问存储空间中存储的计算结果;待计算结果读出之后,完成一次计算。
综上,通过为加速单元配置待处理地址寄存器、结果地址寄存器和控制寄存器,将数据和计算结果存储的位置和计算的启动方式进行抽象和封装,以方便管理和处理。同时,采用数据传输接口实现数据在加速设备和主机端之间的高效传输和存储。
在一个实施例中,报文的结构还包括状态标志位,通过数据传输接口与主机端进行数据传输之后,还包括:
判断数据是否传输成功,若成功,则将状态标志位设为第一状态,否则将状态标志位设为第二状态,以将数据传输状态反馈至主机端。
具体地,在加速设备中,对于主机端发送的计算指令和数据进行处理时,需要将数据从主机端传输到加速设备,而数据传输的成功与否对后续计算任务的执行有很大的影响。因此,需要一种可靠的数据传输状态反馈机制,以保证数据的正确传输和计算任务的正常执行。
具体地,在虚拟化接口中设置有数据传输接口时,通过该接口接收主机端发送的数据报文,并根据报文的内容进行数据处理和状态反馈。具体实现时,可以在报文结构中增加一个状态标志位,通过数据传输接口返回主机端的响应报文中包含该标志位的值,以反馈数据的传输状态。
具体过程为:主机端发送计算指令和数据到加速设备中的某一个加速单元,加速设备接收到数据后,通过数据传输接口进行数据处理并更新状态标志位,主机端根据状态标志位判断数据传输的成功与否。
可参照图3,图3为本申请提供的一种报文格式示意图。其中,请求头部,包含此次请求的类型type,以表征是读操作还是写操作,ddr_address表征此次请求访问设备端存储空间的起始地址,length表征此次请求访问的数据量大小,以字节为单位,有ddr_address和length可得目标访问存储空间范围;数据部,若是写操作,则主机端向加速设备写入数据,此数据部中存放的是待写数据在主机端中存放的地址;若是读操作,则主机端从加速设备中读取数据,此数据部存放的主机端中用于存放从加速设备端读取出来的待读数据的地址。状态status,此区域是由加速设备端写入,用以表征此次请求执行的状态,或成功或失败。
其中,在数据传输过程中,为保证数据的正确传输,可以采用数据校验码等机制进行数据完整性校验和纠错,以提高数据传输的准确性和可靠性。
综上,本实施例通过增加数据传输状态反馈机制,可以有效保证数据的正确传输和计算任务的正常执行,提高加速设备的性能和可靠性。
在一个实施例中,虚拟化接口中还包括中断接口,方法还包括:
在自身产生中断时,通过中断接口将中断信息反馈至主机端,以触发主机端对中断信息进行处理;
中断信息表征加速设备产生中断的类型。
在传统的加速设备中,中断处理需要主机端进行处理,导致中断响应时间较长。如对于不同的中断类型,设置不同的中断源,导致中断源的数量较多。
本实施例利用虚拟化技术实现加速设备的管理和维护。虚拟化接口包括与各加速单元一一对应的寄存器访问接口和中断接口,可以直接获取加速设备的状态信息和反馈中断信息。具体地,当加速设备产生中断时,中断信息可以通过该接口直接反馈至主机端。主机端收到中断信息后,可以根据中断的类型进行相应的处理,减少了中断响应时间,同时也提高了加速设备的管理和维护效率。
例如,当某个加速设备出现故障或者任务完成时,会产生相应的中断。通过本实施例中的中断接口,中断信息可以直接反馈至主机端,主机端可以及时处理故障或者获取计算结果。
综上,本实施例中的方式可以提高加速设备的管理和维护效率,减少中断响应时间,提高计算效率。同时还可以实现多种加速设备的协同工作,提高计算任务的处理能力。
在一个实施例中,中断接口配置为事件队列,则在自身产生中断时,通过中断接口将中断信息反馈至主机端,以触发主机端对中断信息进行处理,包括:
在自身产生中断时,生成中断信息,并将中断信息写入事件队列中;
触发主机端读取事件队列中的中断信息,以便主机端对中断信息进行处理。
具体地,加速设备在执行任务的过程中产生中断或,如何及时而准确地通知主机端进行处理是一个需要解决的技术问题。
本实施例中,将事件队列作为其实现方式,事件队列是一种在多任务处理系统中常用的数据结构,它用于存储事件及其相关的数据,以便按照先进先出的顺序进行处理。加速设备在产生中断时,先生成中断信息,然后将中断信息写入事件队列中。主机端通过对事件队列的读取,可以获取并处理中断信息。
在一个实施例中,在加速设备中包括多个加速单元时,中断接口配置为多个与加速单元一一对应的事件队列。
此外,除了使用事件队列,还可以使用其它数据结构来存储中断信息,如链表、栈等;进一步的,还可以在事件队列中增加优先级功能,使得主机端可以先处理优先级较高的中断信息。
传统的一种方式为每个中断源分配一个中断,另一种方式是共享一个中断,收到中断后,再去加速设备端读取一个中断状态寄存器以识别是哪一种中断。与传统方式相比,基于事件队列,其中表征中断类型的中断信息,只需要一个中断,而且无需再从加速设备端读取中断状态,而是在主机端读取,缩短了中断服务时间。
综上,本实施例中,使用事件队列来存储中断信息,可以保证加速设备产生中断时主机端能够及时、准确地进行处理,提高了系统的稳定性和可靠性;同时,事件队列可以存储多个中断信息,可以提高系统的处理效率。
现以包含一个简单的“向量加”加速单元的异构加速设备为例,阐述应用加速执行过程。向量加的功能是计算两个向量A和B之和C,即C=A+B。此加速单元主要包含5个寄存器,分别是地址寄存器A_addr,B_addr、C_addr,分别存储两个输入数据A和B的地址以及结果输出C的地址;长度寄存器Length,存放数据长度;1个控制寄存器control,用以启动计算。
假设此加速单元中这3个寄存器存放在BAR2空间,偏移0x1000处,以及可用的存储空间范围为[0x4000,0x7000],标识码为0x1af46889,则此异构加速设备的设备特定配置空间图4所示,图4为本申请提供的一种向量加的加速设备的设备特定配置空间示意图。
应用加速执行过程主要包括如下几个步骤:
1、加速单元识别:通过读取此加速设备的设备特定配置空间,软件端可以知道此异构加速设备包含的加速单元的数目是1个,通过标识码(身份信息)0x1af46889知道此加速单元的功能为“向量加”,及其可用的存储空间[0x4000,0x7000]和寄存器基地址信息(Bar2,偏移0x1000);
2、计算前准备:准备输入数据A和B,假设数据长度为0x100,随后在此加速单元的可用设备存储空间[0x4000,0x7000]中分配3个区域以存放A和B,以及结果输出C,获得的空间区域分别为a[0x4000,0x4100]、b[0x4200,0x4300]、c[0x4400,0x4500]。
3、DMA传输数据:通过此加速单元对应的数据传输接口(队列)把A和B数据传送到加速设备存储空间a和b。以传输数据A为例,报文格式如下图5所示,图5为本申请提供的一种写操作的报文示意图。其中,类型type为Write,写操作表征从主机端向加速设备端写数据,写入的加速设备端地址为0x4000,长度为0x100,随后包含数据A的地址,最后状态位status设置为-1(表示还未写入),待加速设备端写入。
加速设备收到报文后,根据报文信息,把数据A写入到加速设备端,若成功则更改状态位status为0,表征写入成功,否则为-1,表征写入失败,随后加速设备发中断给主机端。主机端收到数据传输完成的中断后,检查status状态为0,以保证A和B都成功传输。最后,把地址a,b和c的基地址0x4000、0x4200和0x4400分别写到地址寄存器A_addr、B_addr和C_addr,以及长度0x100写到长度寄存器Length。此时加速单元知道从何处读取数据A和B,以及把结果C输出到什么位置。
4、启动计算,等待处理完成:通过写控制寄存器control的特定位,启动加速单元计算,随后等待加速单元计算完成。加速单元计算完成后,会通过此加速单元对应的事件队列发送中断信息继而发中断给主机端。
5、获取计算结果:主机端收到中断后,检查事件队列接收中断信息,判定中断状态为正常计算完成。随后通过数据传输队列,配置为读请求,把计算结果数据C从设备端读取到主机端,其对应的传输报文如图6所示,图6为本申请提供的一种读操作的报文的示意图。
为解决上述技术问题,本申请还提供了一种加速设备的控制系统,请参照图7,图7为本申请提供的一种加速设备的控制系统的结构框图,该系统应用于包括至少一个加速单元的加速设备,加速设备配置有一个虚拟化接口,虚拟化接口至少包括与至少一个加速单元一一对应的寄存器访问接口,系统包括:
确定单元71,用于获取主机端发送的计算指令,确定与计算指令对应的目标加速单元;
计算单元72,用于通过虚拟化接口访问与目标加速单元对应的寄存器访问接口,以调用目标加速单元对应的寄存器,执行与计算指令对应的计算任务。
在一个实施例中,还包括:
初始化单元,用于生成虚拟化接口-加速单元的初始化配置表。
在一个实施例中,确定单元具体用于:获取主机端发送的计算指令,提取计算指令中加速单元的身份信息,身份信息表征加速单元的功能;根据身份信息及初始化配置表确定目标加速单元。
在一个实施例中,还包括:
寄存器配置单元,用于预先为寄存器访问接口配置预设地址,以存储各个加速单元对应的寄存器访问接口的配置信息。
在一个实施例中,预先为寄存器访问接口配置预设地址时,遵循虚拟化输入/输出设备规范。
在一个实施例中,配置信息至少包括:加速单元的身份信息、预先为加速单元配置的可用存储空间范围的参数、用于表征加速单元的地址的寄存器信息。
在一个实施例中,预先为加速单元配置的可用存储空间范围的参数包括存储空间的起始地址和存储空间长度。
在一个实施例中,用于表征加速单元的地址的寄存器信息包括加速单元对应的基址寄存器、在基址寄存器上的偏移量和寄存器长度。
在一个实施例中,虚拟化接口中还包括数据传输接口时,还包括:
传输单元,用于通过数据传输接口与主机端进行数据传输。
在一个实施例中,获取主机端发送的计算指令,包括:通过数据传输接口获取主机端发送的计算指令。
在一个实施例中,数据传输接口用于通过报文传输数据,报文的结构至少包括请求头部和数据部,其中,请求头部包括用于表征读出或者写入的请求类型和目标访问存储空间范围,数据部包括待处理数据的地址。
在一个实施例中,计算单元,包括:
调用单元,用于通过与目标加速单元对应的寄存器访问接口调用目标加速单元对应的寄存器;
报文传输单元,用于通过数据传输接口接收主机端发送的报文;
数据处理单元,用于根据请求类型、目标访问存储空间范围及待处理器数据的地址对待处理数据进行处理。
在一个实施例中,加速单元对应的寄存器至少包括待计算数据的待处理地址寄存器、用于存放计算结果的结果地址寄存器和用于启动计算的控制寄存器;
数据处理单元,具体包括:
读取单元,用于根据待计算数据的地址对主机端中存储的待计算数据进行读取;
第一存储单元,用于将读取后的待计算数据存储至目标访问存储空间中,并将目标访问存储空间中用于存储待计算数据的地址写入待处理地址寄存器中;
子计算单元,用于接收主机端发送的计算启动指令;根据计算启动指令通过控制寄存器启动计算,以根据待处理地址寄存器中存储的地址以及目标访问存储空间中存储的待计算数据得到计算结果;
结果存储单元,用于为计算结果分配地址,并将分配的地址写入结果地址寄存器中,将计算结果存储至与结果地址寄存器中存储的地址对应的目标访问存储空间中;
读出单元,用于触发主机端根据结果地址寄存器中存储的地址将计算结果通过数据传输接口读出。
在一个实施例中,报文的结构还包括状态标志位,还包括:
传输状态更新单元,用于判断数据是否传输成功,若成功,则将状态标志位设为第一状态,否则将状态标志位设为第二状态,以将数据传输状态反馈至主机端。
在一个实施例中,虚拟化接口中还包括中断接口,还包括:
中断单元,用于在自身产生中断时,通过中断接口将中断信息反馈至主机端,以触发主机端对中断信息进行处理;
中断信息表征加速设备产生中断的类型。
在一个实施例中,中断接口配置为事件队列,则在自身产生中断时,中断单元,具体用于:
在自身产生中断时,生成中断信息,并将中断信息写入事件队列中;
触发主机端读取事件队列中的中断信息,以便主机端对中断信息进行处理。
在一个实施例中,在加速设备中包括多个加速单元时,中断接口配置为多个与加速单元一一对应的事件队列。
对于加速设备的控制系统的介绍请参照上述实施例,本申请在此不再赘述。
为解决上述技术问题,本申请还提供了一种加速设备的控制装置,请参照图8,图8为本申请提供的一种加速设备的控制装置的结构框图,该装置包括:
存储器81,用于存储计算机程序;
处理器82,用于在存储计算机程序时,实现如上述的加速设备的控制方法的步骤。对于加速设备的控制装置的介绍请参照上述实施例,本申请在此不再赘述。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,请参照图9,图9为本申请提供的一种计算机可读存储介质的结构框图,该计算机可读存储介质90上存储有计算机程序,计算机程序91被处理器82执行时实现如上述的加速设备的控制方法的步骤。对于计算机可读存储介质90的介绍请参照上述实施例,本申请在此不再赘述。
为解决上述技术问题,本申请还提供了一种加速设备,用于实现如上述的加速设备的控制方法的步骤。对于加速设备的介绍请参照上述实施例,本申请在此不再赘述。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其他实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (16)
1.一种加速设备的控制方法,其特征在于,应用于包括至少一个加速单元的加速设备,所述加速设备配置有一个虚拟化接口,所述虚拟化接口至少包括与至少一个所述加速单元一一对应的寄存器访问接口,所述方法包括:
获取主机端发送的计算指令,确定与所述计算指令对应的目标加速单元;
通过所述虚拟化接口访问与所述目标加速单元对应的寄存器访问接口,以调用所述目标加速单元对应的寄存器,执行与所述计算指令对应的计算任务;
所述加速设备配置寄存器访问接口的过程包括:
预先为所述寄存器访问接口配置预设地址,以存储各个所述加速单元对应的寄存器访问接口的配置信息;
预先为所述寄存器访问接口配置预设地址,配置寄存器访问接口的配置信息,包括:
根据虚拟化输入/输出规范确定设备配置空间的大小及地址;
将所述设备配置空间的地址告知驱动程序,以触发所述驱动程序在地址空间中映射所述设备配置空间;
在所述设备配置空间中定义并初始化各所述寄存器访问接口的配置信息;
所述配置信息至少包括:所述加速单元的身份信息、预先为所述加速单元配置的可用存储空间范围的参数、用于表征所述加速单元的地址的寄存器信息;
所述虚拟化接口中还包括数据传输接口时,还包括:
通过所述数据传输接口与所述主机端进行数据传输;
所述虚拟化接口中还包括中断接口,所述方法还包括:
在自身产生中断时,通过所述中断接口将中断信息反馈至主机端,以触发所述主机端对所述中断信息进行处理;所述中断信息表征所述加速设备产生中断的类型。
2.如权利要求1所述的加速设备的控制方法,其特征在于,还包括:
生成虚拟化接口-加速单元的初始化配置表。
3.如权利要求2所述的加速设备的控制方法,其特征在于,确定与所述计算指令对应的目标加速单元,包括:
提取所述计算指令中所述加速单元的身份信息,所述身份信息表征所述加速单元的功能;
根据所述身份信息及所述初始化配置表确定所述目标加速单元。
4.如权利要求1所述的加速设备的控制方法,其特征在于,所述预先为所述加速单元配置的可用存储空间范围的参数包括存储空间的起始地址和存储空间长度。
5.如权利要求1所述的加速设备的控制方法,其特征在于,用于表征所述加速单元的地址的寄存器信息包括所述加速单元对应的基址寄存器、在所述基址寄存器上的偏移量和寄存器长度。
6.如权利要求1所述的加速设备的控制方法,其特征在于,获取主机端发送的计算指令,包括:
通过所述数据传输接口获取所述主机端发送的所述计算指令。
7.如权利要求1所述的加速设备的控制方法,其特征在于,所述数据传输接口用于通过报文传输数据,所述报文的结构至少包括请求头部和数据部,其中,所述请求头部包括用于表征读出或者写入的请求类型和目标访问存储空间范围,所述数据部包括待处理数据的地址。
8.如权利要求7所述的加速设备的控制方法,其特征在于,执行与所述计算指令对应的计算任务,包括:
通过所述数据传输接口接收所述主机端发送的报文;
根据所述请求类型、目标访问存储空间范围及所述待处理器数据的地址对所述待处理数据进行处理。
9.如权利要求7所述的加速设备的控制方法,其特征在于,所述加速单元对应的寄存器至少包括待计算数据的待处理地址寄存器、用于存放计算结果的结果地址寄存器和用于启动计算的控制寄存器;
根据所述请求类型、目标访问存储空间范围及所述待处理器数据的地址对所述待处理数据进行处理,包括:
根据所述待计算数据的地址对所述主机端中存储的待计算数据进行读取;
将读取后的所述待计算数据存储至目标访问存储空间中,并将所述目标访问存储空间中用于存储所述待计算数据的地址写入所述待处理地址寄存器中;
接收所述主机端发送的计算启动指令;根据所述计算启动指令通过所述控制寄存器启动计算,以根据所述待处理地址寄存器中存储的地址以及所述目标访问存储空间中存储的所述待计算数据得到计算结果;
为所述计算结果分配地址,并将分配的地址写入所述结果地址寄存器中,将所述计算结果存储至与所述结果地址寄存器中存储的地址对应的目标访问存储空间中;
触发所述主机端根据所述结果地址寄存器中存储的地址将所述计算结果通过所述数据传输接口读出。
10.如权利要求7所述的加速设备的控制方法,其特征在于,所述报文的结构还包括状态标志位,通过所述数据传输接口与所述主机端进行数据传输之后,还包括:
判断数据是否传输成功,若成功,则将所述状态标志位设为第一状态,否则将所述状态标志位设为第二状态,以将所述数据传输状态反馈至所述主机端。
11.如权利要求1所述的加速设备的控制方法,其特征在于,所述中断接口配置为事件队列,则在自身产生中断时,通过所述中断接口将中断信息反馈至主机端,以触发所述主机端对所述中断信息进行处理,包括:
在自身产生中断时,生成所述中断信息,并将所述中断信息写入所述事件队列中;
触发所述主机端读取所述事件队列中的所述中断信息,以便所述主机端对所述中断信息进行处理。
12.如权利要求1所述的加速设备的控制方法,其特征在于,在所述加速设备中包括多个所述加速单元时,所述中断接口配置为多个与所述加速单元一一对应的事件队列。
13.一种加速设备的控制系统,其特征在于,应用于包括至少一个加速单元的加速设备,所述加速设备配置有一个虚拟化接口,所述虚拟化接口至少包括与至少一个所述加速单元一一对应的寄存器访问接口,所述系统包括:
确定单元,用于获取主机端发送的计算指令,确定与所述计算指令对应的目标加速单元;
计算单元,用于通过所述虚拟化接口访问与所述目标加速单元对应的寄存器访问接口,以调用所述目标加速单元对应的寄存器,执行与所述计算指令对应的计算任务;
还包括:
寄存器配置单元,用于预先为所述寄存器访问接口配置预设地址,以存储各个所述加速单元对应的寄存器访问接口的配置信息;
寄存器配置单元,具体用于根据虚拟化输入/输出规范确定设备配置空间的大小及地址;将所述设备配置空间的地址告知驱动程序,以触发所述驱动程序在地址空间中映射所述设备配置空间;在所述设备配置空间中定义并初始化各所述寄存器访问接口的配置信息;
所述配置信息至少包括:所述加速单元的身份信息、预先为所述加速单元配置的可用存储空间范围的参数、用于表征所述加速单元的地址的寄存器信息;
所述虚拟化接口中还包括数据传输接口时,还包括:
传输单元,用于通过所述数据传输接口与所述主机端进行数据传输;
所述虚拟化接口中还包括中断接口,还包括:
中断单元,用于在自身产生中断时,通过所述中断接口将中断信息反馈至主机端,以触发所述主机端对所述中断信息进行处理;所述中断信息表征所述加速设备产生中断的类型。
14.一种加速设备的控制装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于在存储计算机程序时,实现如权利要求1-12任一项所述的加速设备的控制方法的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-12任一项所述的加速设备的控制方法的步骤。
16.一种加速设备,其特征在于,用于实现如权利要求1-12任一项所述的加速设备的控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410021734.1A CN117519955B (zh) | 2024-01-08 | 2024-01-08 | 一种加速设备的控制方法、系统、装置及加速设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410021734.1A CN117519955B (zh) | 2024-01-08 | 2024-01-08 | 一种加速设备的控制方法、系统、装置及加速设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117519955A CN117519955A (zh) | 2024-02-06 |
CN117519955B true CN117519955B (zh) | 2024-03-29 |
Family
ID=89755417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410021734.1A Active CN117519955B (zh) | 2024-01-08 | 2024-01-08 | 一种加速设备的控制方法、系统、装置及加速设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117519955B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1298518A2 (en) * | 2001-09-28 | 2003-04-02 | Kabushiki Kaisha Toshiba | Microprocessor with improved task management and table management mechanism |
CN105579961A (zh) * | 2013-09-25 | 2016-05-11 | Arm有限公司 | 数据处理系统 |
CN112099941A (zh) * | 2016-08-26 | 2020-12-18 | 华为技术有限公司 | 实现硬件加速处理的方法、设备和系统 |
CN112416840A (zh) * | 2020-11-06 | 2021-02-26 | 浪潮(北京)电子信息产业有限公司 | 一种计算资源的远程映射方法、装置、设备及存储介质 |
CN113419845A (zh) * | 2021-02-22 | 2021-09-21 | 阿里巴巴集团控股有限公司 | 计算加速方法和装置、计算系统、电子设备及计算机可读存储介质 |
CN115098426A (zh) * | 2022-06-22 | 2022-09-23 | 深圳云豹智能有限公司 | Pcie设备管理方法、接口管理模块、pcie系统、设备和介质 |
CN116679986A (zh) * | 2023-08-02 | 2023-09-01 | 苏州浪潮智能科技有限公司 | 寄存器的访问方法、装置、服务器、系统及存储介质 |
CN116886751A (zh) * | 2023-09-04 | 2023-10-13 | 浪潮(北京)电子信息产业有限公司 | 一种异构设备的高速通信方法、装置和异构通信系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7613847B2 (en) * | 2006-05-16 | 2009-11-03 | Hewlett-Packard Development Company, L.P. | Partially virtualizing an I/O device for use by virtual machines |
-
2024
- 2024-01-08 CN CN202410021734.1A patent/CN117519955B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1298518A2 (en) * | 2001-09-28 | 2003-04-02 | Kabushiki Kaisha Toshiba | Microprocessor with improved task management and table management mechanism |
CN105579961A (zh) * | 2013-09-25 | 2016-05-11 | Arm有限公司 | 数据处理系统 |
CN112099941A (zh) * | 2016-08-26 | 2020-12-18 | 华为技术有限公司 | 实现硬件加速处理的方法、设备和系统 |
CN112416840A (zh) * | 2020-11-06 | 2021-02-26 | 浪潮(北京)电子信息产业有限公司 | 一种计算资源的远程映射方法、装置、设备及存储介质 |
CN113419845A (zh) * | 2021-02-22 | 2021-09-21 | 阿里巴巴集团控股有限公司 | 计算加速方法和装置、计算系统、电子设备及计算机可读存储介质 |
CN115098426A (zh) * | 2022-06-22 | 2022-09-23 | 深圳云豹智能有限公司 | Pcie设备管理方法、接口管理模块、pcie系统、设备和介质 |
CN116679986A (zh) * | 2023-08-02 | 2023-09-01 | 苏州浪潮智能科技有限公司 | 寄存器的访问方法、装置、服务器、系统及存储介质 |
CN116886751A (zh) * | 2023-09-04 | 2023-10-13 | 浪潮(北京)电子信息产业有限公司 | 一种异构设备的高速通信方法、装置和异构通信系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117519955A (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3601955B2 (ja) | データ転送方法およびそれに適した計算機システム | |
US20200278880A1 (en) | Method, apparatus, and system for accessing storage device | |
EP3798835B1 (en) | Method, device, and system for implementing hardware acceleration processing | |
US7996648B2 (en) | Coupled symbiotic operating systems | |
WO2002041155A2 (en) | Method and apparatus for implementing pci dma speculative prefetching in a message passing queue oriented bus system | |
CN112540941A (zh) | 一种数据转发芯片及服务器 | |
JP2002351854A (ja) | プログラム実行装置および携帯型情報処理装置 | |
CN115080277B (zh) | 一种多核系统的核间通信系统 | |
US20240053998A1 (en) | Method and apparatus for processing inter-core communication, and computer system | |
US20240126567A1 (en) | Data processing system, method, and apparatus | |
JP7615474B2 (ja) | コンピューティングデバイス及び割り込み処理方法 | |
US7558724B2 (en) | Operation region describing a virtual device | |
CN117519955B (zh) | 一种加速设备的控制方法、系统、装置及加速设备 | |
WO2024060228A1 (zh) | 获取数据的方法、装置、系统及存储介质 | |
WO2022194021A1 (zh) | 并发控制方法、网卡、计算机设备、存储介质 | |
JP3375649B2 (ja) | 並列計算機 | |
JP7197212B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
CN116436787B (zh) | 网络接口管理方法、使用方法、装置、设备和存储介质 | |
CN116401020B (zh) | Kvm虚拟机i/o过滤框架实现方法、系统及存储介质 | |
JP2003316589A (ja) | 実記憶利用方法 | |
CN112540857B (zh) | 处理工作量证明计算任务的方法、装置和系统 | |
CN117971135B (zh) | 存储设备的访问方法、装置、存储介质和电子设备 | |
CN119166570A (zh) | 一种多通道dma的数据处理方法及电子设备 | |
CN118656201A (zh) | 一种内存分配方法及计算设备 | |
JP6665429B2 (ja) | 演算処理装置、情報処理装置、および情報処理装置の制御方法 |
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 |