CN116932425A - 一种内联计算引擎的任务执行方法、装置以及介质 - Google Patents
一种内联计算引擎的任务执行方法、装置以及介质 Download PDFInfo
- Publication number
- CN116932425A CN116932425A CN202310900374.8A CN202310900374A CN116932425A CN 116932425 A CN116932425 A CN 116932425A CN 202310900374 A CN202310900374 A CN 202310900374A CN 116932425 A CN116932425 A CN 116932425A
- Authority
- CN
- China
- Prior art keywords
- virtual address
- task
- page
- data
- inline
- 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
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000013507 mapping Methods 0.000 claims abstract description 41
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004064 recycling Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 20
- 238000007726 management method Methods 0.000 description 12
- 239000011159 matrix material Substances 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种内联计算引擎的任务执行方法、装置以及介质,应用于计算引擎技术领域。本方法在内联计算引擎接收到外部设备发送的第二数据时,校验用于接收第二数据的虚拟地址页的有效状态,若虚拟地址页为有效状态,则根据虚拟地址页对应的映射关系在存储器中获取第一数据;然后根据获取的第一数据以及接收的第二数据执行对应任务。由于各任务仅使用自身任务号对应的虚拟地址页,每个页序号对应的虚拟地址页中仅有指定数量的虚拟地址页为有效状态,且只有虚拟地址页在有效状态下时,才获取对应的第一数据,避免了内联计算引擎在任务执行过程中出现“链式”误访问的问题。
Description
技术领域
本发明涉及计算引擎技术领域,特别是涉及一种内联计算引擎的任务执行方法、装置以及介质。
背景技术
内联计算引擎是一种在数据流通路上位于数据源和存储器之间的计算引擎。内联计算引擎进行计算任务时需要两个数据,内联计算引擎在收到外部设备直接发送的第二数据时从存储器读取预先存好的第一数据,结合两个数据进行计算并得到结果。任务期间内联计算引擎的缓存需要保存用于接收第二数据的虚拟地址空间与第二数据所需的第一数据在存储器中的实际存储位置之间的映射关系,从而保证在第二数据到来时能从存储器读取第一数据。而为了节约缓存,目前所有的任务使用一块共享的虚拟地址空间来接收外部设备的第二数据,共享的虚拟地址空间采用分页管理的方式,一个任务在向外部设备下发数据命令时,先以页为单位申请数据缓存,并建立映射关系。当一个虚拟地址页已经接收了等于页大小的数据后会被回收。由于多个任务共享虚拟地址空间,某段时间内缓存中只需要保存这段时间所需的第一数据的映射关系,因此在内联计算引擎的缓存中可以保存此时计算所需的所有的第一数据的映射关系。
但是该方法也存在一定的缺点,当外部设备遇到一些错误,或者链路发生问题,如出现错误重传或者对一个页面的多次覆盖写入等场景,将出现已被回收并分配给其他任务的虚拟地址页被出错的设备再次访问,而导致的错误设备影响正常设备数据的严重问题。极端情况下,在一连串的访问中,由于第一个设备出错并重复访问某个页面,将导致后续所有使用该页面的正常设备出现“链式”的误访问,该错误将是无法容忍且无法定位的。
由此可见,如何避免内联计算引擎在任务执行过程中出现“链式”误访问的问题,是本领域技术人员亟待解决的问题。
发明内容
本发明的目的是提供一种内联计算引擎的任务执行方法、装置以及介质,以避免内联计算引擎在任务执行过程中出现“链式”误访问的问题。
为解决上述技术问题,本发明提供一种内联计算引擎的任务执行方法,任务使用的虚拟地址空间分为多个虚拟地址页,各所述虚拟地址页分别具有对应的任务号以及页序号;各任务号以及各页序号分别对应有多个所述虚拟地址页;所述方法包括:
在所述内联计算引擎接收到外部设备发送的第二数据时,校验用于接收所述第二数据的所述虚拟地址页的有效状态;其中,在所述内联计算引擎接收到任务后,预先给对应任务分配用于接收所述第二数据的所述虚拟地址页;并保存所述虚拟地址页与所述第二数据所需的第一数据在存储器中的存储位置之间的映射关系,以及将对应任务号和页序号的所述虚拟地址页标记为有效状态;且各任务仅使用自身任务号对应的所述虚拟地址页,每个页序号对应的所述虚拟地址页中仅有指定数量的所述虚拟地址页为有效状态;所述虚拟地址页在使用完成后进行回收,并从有效状态变为无效状态;
若所述虚拟地址页为有效状态,则根据所述虚拟地址页对应的所述映射关系在存储器中获取所述第一数据;
根据获取的所述第一数据以及接收的所述第二数据执行对应任务。
一方面,各所述虚拟地址页的大小以及各任务号对应的所述虚拟地址页的数量均相同,且所述虚拟地址页的大小以及各任务号对应的所述虚拟地址页的数量由各任务中的最大数据量确定。
另一方面,若当前任务所需的所述虚拟地址页的数量大于当前能被选出的所述虚拟地址页的数量,则进入等待状态或者将对应任务拆分为多次对外部设备进行访问。
另一方面,对使用完成后的所述虚拟地址页进行回收包括:
当所述虚拟地址页接收等于自身大小的所述第二数据后,对所述虚拟地址页进行回收。
另一方面,所述虚拟地址页对应的所述第一数据的虚拟地址由任务号、页序号以及页内偏移编码构成;
所述根据所述虚拟地址页对应的映射关系在存储器中获取所述第一数据以完成对应任务包括:
根据所述第一数据对应的所述页内偏移以及所述虚拟地址页对应的映射关系在存储器中获取所述第一数据以完成对应任务。
另一方面,所述指定数量为一个。
另一方面,所述若所述虚拟地址页为有效状态,则根据所述虚拟地址页对应的映射关系在存储器中获取所述第一数据以完成对应任务之后,还包括:
若出现错误,则将本次错误状态记录在任务状态中。
为解决上述技术问题,本发明还提供一种内联计算引擎的任务执行装置,任务使用的虚拟地址空间分为多个虚拟地址页,各所述虚拟地址页分别具有对应的任务号以及页序号;各任务号以及各页序号分别对应有多个所述虚拟地址页;所述装置包括:
检验模块,用于在所述内联计算引擎接收到外部设备发送的第二数据时,校验用于接收所述第二数据的所述虚拟地址页的有效状态;其中,在所述内联计算引擎接收到任务后,预先给对应任务分配用于接收所述第二数据的所述虚拟地址页;并保存所述虚拟地址页与所述第二数据所需的第一数据在存储器中的存储位置之间的映射关系,以及将对应任务号和页序号的所述虚拟地址页标记为有效状态;且各任务仅使用自身任务号对应的所述虚拟地址页,每个页序号对应的所述虚拟地址页中仅有指定数量的所述虚拟地址页为有效状态;所述虚拟地址页在使用完成后进行回收,并从有效状态变为无效状态;
获取模块,用于若所述虚拟地址页为有效状态,则根据所述虚拟地址页对应的所述映射关系在存储器中获取所述第一数据;
执行模块,用于根据获取的所述第一数据以及接收的所述第二数据执行对应任务。
另一方面,所述内联计算引擎的任务执行装置还包括:记录模块,用于在所述若所述虚拟地址页为有效状态,则根据所述虚拟地址页对应的映射关系在存储器中获取所述第一数据以完成对应任务之后,若出现错误,则将本次错误状态记录在任务状态中。
为解决上述技术问题,本发明还提供一种内联计算引擎的任务执行装置,包括:存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现上述内联计算引擎的任务执行方法的步骤。
为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述内联计算引擎的任务执行方法的步骤。
本发明所提供的一种内联计算引擎的任务执行方法,任务使用的虚拟地址空间分为多个虚拟地址页,各虚拟地址页分别具有对应的任务号以及页序号;各任务号以及各页序号分别对应有多个虚拟地址页,各任务仅使用自身任务号对应的虚拟地址页,每个页序号对应的虚拟地址页中仅有指定数量的虚拟地址页为有效状态,即每一个页序号仅需要在内联计算引擎的缓存中保留指定数量的虚拟地址页的页信息,这样可以缩减需要存储的页信息数量,可以大幅度降低硬件成本。该方法包括:在内联计算引擎接收到外部设备发送的第二数据时,校验用于接收第二数据的虚拟地址页的有效状态,若虚拟地址页为有效状态,则根据虚拟地址页对应的映射关系在存储器中获取第一数据;然后根据获取的第一数据以及接收的第二数据执行对应任务。其中,在内联计算引擎接收到任务后,预先给对应任务分配用于接收第二数据的虚拟地址页;并建立虚拟地址页与第二数据所需的第一数据在存储器中的存储位置之间的映射关系,以及将对应任务号和页序号的虚拟地址页标记为有效状态;且虚拟地址页在使用完成后进行回收,并从有效状态变为无效状态。本发明中各任务仅使用自身任务号对应的虚拟地址页,且只有虚拟地址页在有效状态下时,才获取对应的第一数据,此时,若外部设备遇到一些错误或者链路发生问题时,如出现错误重传或者对一个页面的多次覆盖写入等场景,将出现已被回收并分配给其他任务的页被出错的设备再次访问。这个时候,如果页面未被回收,则说明该页所属的任务仍然在执行,此时错误数据仅仅影响当前任务,并且该错误状态可以被记录在任务状态中;如果页面已经被回收,则可以检测到该页面被标记为无效状态,因此,对应的数据将被丢弃而不会对当前正在执行的任务有任何影响,避免了内联计算引擎在任务执行过程中出现“链式”误访问的问题。
本发明还提供了一种内联计算引擎的任务执行装置和计算机可读存储介质,与上述方法对应,故具有与上述方法相同的有益效果。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是传统计算引擎的数据交互过程示意图;
图2为使用了内联计算引擎后的数据交互过程示意图;
图3为一种通过独立虚拟地址映射任务的任务管理机制方案示意图;
图4为共享地址空间的任务管理机制方案的示意图;
图5为本发明实施例提供的一种内联计算引擎的任务执行方法的流程图;
图6为本发明实施例提供的一种将地址空间使用页管理并分配到任务的方案示意图;
图7为本发明实施例提供的一种页面矩阵示意图;
图8为本发明实施例提供的一种满足稀疏原则的页面矩阵示意图;
图9为本发明实施例提供的一种页矩阵、页信息和任务信息之间的绑定关系示意图;
图10为本发明实施例提供的内联计算引擎的任务执行装置的结构图;
图11为本发明另一实施例提供的内联计算引擎的任务执行装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的核心是提供一种内联计算引擎的任务执行方法、装置以及介质,以避免内联计算引擎在任务执行过程中出现“链式”误访问的问题。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
内联计算引擎是一种在数据流通路上位于数据源和存储器之间的计算引擎,相比于传统计算引擎,它可以减少对存储器的访问次数,有效节省对存储器带宽的需求。图1是传统计算引擎的数据交互过程示意图;如图1所示,用于计算的第一数据存放于存储器1中,第二数据来自于外部设备3。第二数据先从外部设备3写入内存,然后计算引擎2再从内存中读取第一数据和第二数据,得到运算结果后再写回存储器1。因此,上述最典型的任务下,存储器1需要分别被读取和写入2次。图2为使用了内联计算引擎后的数据交互过程示意图;当使用了内联计算引擎后的数据流如图2所示,外部设备3将第二数据直接写入内联计算引擎4,此时内联计算引擎4在外部设备3看来相当于一个存储器设备。内联计算引擎4在收到外部设备3的第二数据的同时,从存储器1读取第一数据,进行计算并得到结果,再将结果写入存储器1。此场景下,存储器1只需要分别被读取和写入一次。
内联计算引擎的内部实现有多种方式,但无论其采用什么具体的实现方式,从抽象的角度看,场景上都有以下公共特征:1.由于外部设备的数据获取都是有一定的延时的,即从向外部设备下发命令到数据输出有一定的时间差。在这个时间差内系统处于对性能的要求,需要继续向该设备或者其他设备发送命令,而不能等待一个任务完成后再开始下一个任务。因此,内联计算模块需要支持多个并发的任务。2.对于高性能的设备,任务与任务间的完成顺序往往支持乱序。特别是当使用多个外部设备时顺序更加难以保证。也就是说,任务完成的顺序往往不是任务下发的顺序。对于部分常见协议,如高速串行计算机扩展总线标准(Peripheral Component Interconnect Express,PCIe),还会出现一个任务中的多个数据块之间出现乱序。因此,由于乱序和多任务的存在,内联计算引擎需要在收到外部设备写入的数据时,才能开始载入当前数据对应的任务信息,然后再从存储器中读取对应的第一数据。内联计算引擎无法预知下一个到来的数据的相关信息,这是内联计算引擎面对的核心问题之一。而在任务信息和对应数据被获取之前,从外部设备写入的第二数据需要被暂存在内联计算引擎的内部缓存中。相比于动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等片外存储器芯片,片内缓存的价格非常昂贵,因此任务信息和对应数据的获取时间的增加,将直接导致芯片成本的上升。
本发明要讨论的是在任务管理和地址分配机制上的设计,如何能减少上述时间,以及减少其他的副作用。当前有两种任务管理机制,图3为一种通过独立虚拟地址映射任务的任务管理机制方案示意图;如图3所示的任务管理机制中,每个任务占用一段独立的地址空间范围,该地址范围不超过任务的最大尺寸,实际任务占用虚拟地址的某一段范围,一般情况下是从该虚拟地址范围偏移为0开始的连续地址。当接受一个任务后,为该任务分配一块虚拟地址范围,并将该范围告知外部设备。然后当接收到外部设备发送的第二数据时,根据数据地址所属的虚拟地址的范围就可以获取数据归属的任务。这种方案的优点在于地址与任务静态绑定,映射关系查询简单,且可以将数据流的管理独立于任务。但这种方案也有一个明显的缺点,由于每个任务占用一段独立的地址空间范围,需要保存的位置信息量过大,无法全部保存在引擎的缓存中,只能保存在存储器中。当引擎接收到数据后,需要根据该数据在虚拟地址中的偏移查询对应的第一数据的位置。由于每个任务都支持较大的地址范围,因此如果一个任务的数据流乱序到达,那么第一数据位置信息很可能不在缓存,需要临时从存储器中读取的情况。这会大大增加任务的延时,降低数据缓存的使用效率,严重的可能导致缓存溢出。
为了避免上述问题,另一种方法是所有的任务使用一块共享的地址空间。图4为共享地址空间的任务管理机制方案的示意图;如图4所示,共享的地址空间采用分页管理的方式,一个任务在向外部设备下发数据命令时,先以页为单位申请数据缓存,给任务分配用于接收第二数据的页,并将虚拟地址页与第二数据所需的第一数据的实际存储位置之间的映射关系保存在缓存中。当一个页已经接收了等于页大小的数据后(即使用完成后),该页可以被回收,并分配给下一个任务使用。与第一种方法相比,这种方法由于采用共享地址空间,因此地址空间远小于第一种,可以保存所有的数据映射关系而不存在缓存不命中的情况。但该方法也存在一定的缺点,例如,当外部设备遇到一些错误或者链路发生问题,如出现错误重传或者对一个页面的多次覆盖写入等场景,将出现已被回收并分配给其他任务的数据页被出错的设备再次访问,而导致的错误设备影响正常设备数据的严重问题。极端情况下,在一连串的访问中,由于第一个设备出错并重复访问某个页面,将导致后续所有使用该页面的正常设备出现“链式”的误访问,该错误将是无法容忍且无法定位的。
为解决上述技术问题,本发明提供一种内联计算引擎的任务执行方法。本发明实施例的方案中,任务使用的虚拟地址空间分为多个虚拟地址页,各虚拟地址页分别具有对应的任务号以及页序号;各任务号以及各页序号分别对应有多个虚拟地址页。图5为本发明实施例提供的一种内联计算引擎的任务执行方法的流程图;如图5所示,该方法包括如下步骤:
S10:在内联计算引擎接收到外部设备发送的第二数据时,校验用于接收第二数据的虚拟地址页的有效状态。
其中,在内联计算引擎接收到任务后,预先给对应任务分配用于接收第二数据的虚拟地址页;并保存虚拟地址页与第二数据所需的第一数据在存储器中的存储位置之间的映射关系,以及将对应任务号和页序号的虚拟地址页标记为有效状态;且各任务仅使用自身任务号对应的虚拟地址页,每个页序号对应的虚拟地址页中仅有指定数量的虚拟地址页为有效状态;虚拟地址页在使用完成后进行回收,并从有效状态变为无效状态。其中,指定数量具体可设置为一个。
S11:若虚拟地址页为有效状态,则根据虚拟地址页对应的映射关系在存储器中获取第一数据。
S12:根据获取的第一数据以及接收的第二数据执行对应任务。
本发明设计了一种稀疏独享页的任务管理和调度方法,它的主要特征包括:采用独享地址空间的方法,每个任务独享一块地址空间。但与传统方法的区别在于本发明的地址空间也采用页式管理,并且在一次任务中的数据并不是被映射到一段连续的地址空间,而是映射到若干个可以不相邻的页中。且被每个任务独享的页并不能独立的进行分配,而是需要根据其他任务的页面分配情况选择合适的页,使页面选择的结果满足“稀疏”的原则。本发明的方法也不需要缓存整个地址空间的映射表,而是仅需要缓存可能被使用的页的映射关系,在满足“稀疏”原则的前提下,该数据量与基于页式管理的传统方法相同。由于“稀疏”原则的存在,整个地址空间的数据页可以被分为有效数据页和无效数据页,当错误发生时,仅无效数据页会受到影响,从而避免对实际的数据空间的影响。同时,根据无效数据页还能找到所对应的任务,从而实现错误的定位和隔离。
相比于传统的实现方式,本发明的主要优势有:1、本发明仅保存所有有效的数据页的映射关系,若指定数量为1,则保存的信息量仅为全部地址空间的1/N,N为最大支持的任务数。2、由于所有可能被用到的数据页的映射关系都被保存,因此即使数据乱序到达,本发明也可以避免由于缓存不命中而需要重新载入映射关系导致的性能下降,因此本发明在乱序场景下有更好的性能。3、当某一个任务出错,本发明可以将出错的数据与该任务进行关联,从而实现对错误的定位。同时,本发明还能保证出错任务的数据不会影响到正常的任务,实现错误的隔离。
下面以一种具体的实施方式对本发明的方案进行说明:使用按页面的方式对地址空间进行管理,该地址空间指内联计算引擎用于接收来自外部设备的数据的地址空间,该地址空间大小与内联计算引擎内部的缓存大小可以不相等,其关系在本发明中不作限定。图6为本发明实施例提供的一种将地址空间使用页管理并分配到任务的方案示意图;如图6所示,按页面的方式指将地址空间分为若干个大小相同的连续的子空间,每个子空间称为一个页面,例如按4KB页面大小管理,则将上述空间分为若干个4KB的空间,每个4KB的空间的地址连续,4KB地址空间之间收尾相接。将内联计算引擎支持的最大并发任务数记为M。为每个任务分配若干个页面,将该数量记为N。因此,该内联引擎总共需要的页面数量为N*M。其中,内联计算引擎支持的任务数一般由引擎的硬件资源决定。而每个任务分配的页面数由每个任务的最大数据数量决定,一般来说,每个任务的页面数*页面大小不能小于每个任务的最大数据量。为了描述方便,将上述页面按{任务号,页序号}进行编号,例如任务0的页面0编号为{0,0},任务1的页面0编号为{1,0},以此类推。当内联计算引擎多任务之间甚至每一个任务的多个页之间的数据乱序到达时,为了找出当前正在接收的数据对应的任务的上下文信息(如对应的数据1的位置、结果位置、运算参数等),一种最直接的方法是将每个页面的上下文信息记录在内联计算引擎中,这样的话,一共需要保存N*M个页面的上下文信息,显然需要消耗巨大的硬件资源,带来成本的上升。
因此,本发明提出了基于“稀疏”原则的页面选择方法,用于解决上述问题。首先,将上述页面进行排列,看作一个矩阵。图7为本发明实施例提供的一种页面矩阵示意图;如图7所示,相同任务的页面被排成一列,再按任务编号将这些列排成矩阵。
对于上述矩阵,设置一个“稀疏”原则,这里以指定数量为一个为例。图8为本发明实施例提供的一种满足稀疏原则的页面矩阵示意图;如图8所示,每一行,最多只有一个页面被标记为“有效”,该行其余页面都需要被标记为“无效”,也就是同一个页序号的页面,只有其中某一个任务号对应的可以被标为有效,其余任务号对应的都需要被标记为无效。而每一列没有上述限制,也就是说,某一个任务号对应的所有页面,可以有0个、1个、多个或全部的页面被标记为有效。每一个页序号,仅在内联计算引擎缓存中保留一个上下文信息,也称为页信息。这样可以将内联计算引擎中需要存储的页信息数量从N*M缩减为N,可以大幅度降低硬件成本。页信息中需要记录该页对应的任务号,以及该页的运行时数据(如数据1地址、页数据计数等),每一个有效页将被绑定到一个任务。
图9为本发明实施例提供的一种页矩阵、页信息和任务信息之间的绑定关系示意图;如图9所示,当一个内联计算引擎接收到一个任务时,任务参数和任务上下文(运行时信息)将被创建。内联计算引擎根据任务参数计算所需要的页面数量。然后内联计算引擎在上述矩阵中按行查找,如果某一行没有有效页面,则选中{当前任务号,行号(即页序号)}对应的页面分配给当前任务,并将该页标记为有效。然后再在该行对应的页信息中记录当前任务编号。如果当前任务需要使用多个页面,则按上述规则依次选择多个页面。如果当前任务所需要的页面数量大于当前能被选出的页面数量,则应该考虑等待或将任务拆分为多次对外部设备的访问。每个页面内的数据地址的编码一般由如下规则构成:{任务号,页序号,页内偏移}。其中,为了保证每一页内的数据地址的连续性,页内偏移需要位于地址的最低几位。但由于本发明以页面为单位进行管理,任务号和页序号在地址高位的编码方式可以不限定于上述方式,例如{页序号,任务号,页内偏移},以及将任务号和页序号进行位交织编码都是可行的方式。
当一个页面的数据计数等于页面大小,或者当该页面所属的任务完成时,该页面将被回收并被重新标记为无效,此时该页序号对应的行可以被分配给其他任务使用。上述按页或按任务回收的选择,需要根据具体的使用场景确定,本发明中不作具体限定。
内联计算引擎根据当前外部设备发送的第二数据所命中的地址页,按上述数据地址编码方式,可以找到对应的任务号和页序号,从而找到对应的上下文信息。由于所有的页信息都在内联计算引擎中缓存,因此,无论发生任务间数据乱序还是任务内数据乱序,都不会存在缓存不命中的情况,因此本发明相比于传统的基于虚拟地址的方法在性能上能有显著的提升。当外部设备遇到一些错误,或者链路发生问题,如出现错误重传、或者对一个页面的多次覆盖写入等场景,将出现已被回收并分配给其他任务的数据页被出错的设备再次访问。这个时候,如果页面未被回收,则说明该页所属的任务仍然在执行,此时错误数据仅仅影响当前任务,并且该错误状态将被记录在任务状态中;如果页面已经被回收,则内联计算引擎可以检测到该页面被标记为无效状态,因此,该数据将被丢弃而不会对当前正在执行的任务有任何影响。这是本发明相比于共享地址空间的传统方法的优势。
综上,本发明所提供的一种内联计算引擎的任务执行方法,任务使用的虚拟地址空间分为多个虚拟地址页,各虚拟地址页分别具有对应的任务号以及页序号;各任务号以及各页序号分别对应有多个虚拟地址页,各任务仅使用自身任务号对应的虚拟地址页,每个页序号对应的虚拟地址页中仅有指定数量的虚拟地址页为有效状态,即每一个页序号仅需要在内联计算引擎的缓存中保留指定数量的虚拟地址页的页信息,这样可以缩减需要存储的页信息数量,可以大幅度降低硬件成本。该方法包括:在内联计算引擎接收到外部设备发送的第二数据时,校验用于接收第二数据的虚拟地址页的有效状态,若虚拟地址页为有效状态,则根据虚拟地址页对应的映射关系在存储器中获取第一数据;然后根据获取的第一数据以及接收的第二数据执行对应任务。其中,在内联计算引擎接收到任务后,给对应任务分配用于接收第二数据的虚拟地址页;并建立虚拟地址页与第二数据所需的第一数据在存储器中的存储位置之间的映射关系,以及将对应任务号和页序号的虚拟地址页标记为有效状态;且虚拟地址页在使用完成后进行回收,并从有效状态变为无效状态。本发明中各任务仅使用自身任务号对应的虚拟地址页,且只有虚拟地址页在有效状态下时,才获取对应的第一数据,此时,若外部设备遇到一些错误或者链路发生问题时,如出现错误重传或者对一个页面的多次覆盖写入等场景,将出现已被回收并分配给其他任务的页被出错的设备再次访问。这个时候,如果页面未被回收,则说明该页所属的任务仍然在执行,此时错误数据仅仅影响当前任务,并且该错误状态可以被记录在任务状态中;如果页面已经被回收,则可以检测到该页面被标记为无效状态,因此,对应的数据将被丢弃而不会对当前正在执行的任务有任何影响,避免了内联计算引擎在任务执行过程中出现“链式”误访问的问题。
在实际应用中,当前任务所需的虚拟地址页的数量可能会大于当前能被选出的虚拟地址页的数量,即当前的页面数量无法支持该任务的所有数据,本发明实施例提供一种方案,若当前任务所需的虚拟地址页的数量大于当前能被选出的虚拟地址页的数量,则可进入等待状态或者将对应任务拆分为多次对外部设备的访问。
在上述实施例的基础上,本发明实施例还提供一种方案,在根据虚拟地址页对应的映射关系在存储器中获取第一数据以完成对应任务之后,若出现错误,则可将本次错误状态记录在任务状态中。以便于进行出错之后的错误处理、任务信息回收等流程,以提高服务器的可用性。
在实际应用中,并不限定如何对使用完成后的虚拟地址页进行回收,本发明实施例提供一种具体方案,当虚拟地址页在任务中对应的部分执行完成之后,则对虚拟地址页进行回收,可避免虚拟地址页信息长期保存占用缓存。
此外,虚拟地址页对应的第一数据的虚拟地址可由任务号、页序号以及页内偏移编码构成,而根据虚拟地址页对应的映射关系在存储器中获取第一数据以完成对应任务包括:根据第一数据对应的页内偏移以及虚拟地址页对应的映射关系在存储器中获取第一数据以完成对应任务。其中,第一数据的虚拟地址中的任务号和页序号可为位交织编码。
具体实施中,各虚拟地址页的大小以及各任务号下的虚拟地址页的数量并不作具体限定,本发明实施例提供一种方案,各虚拟地址页的大小以及各任务号下的虚拟地址页的数量均相同,且虚拟地址页的大小以及各任务号的虚拟地址页的数量由各任务中的最大数据量确定。
本发明点的关键点如下:1、按页管理地址空间,每个任务使用独立的页。2、页的分配机制,虽然每个任务使用独立的页,但页的选择有约束,即前文所述的“稀疏”原则。3、每个页序号对应的页矩阵中的一行,即所有任务对应的相同页序号的页面,仅保留一份页信息,该信息被缓存在内联计算引擎内部以提高性能。4、任务结束后,所使用的页被标为无效,该页序号所对应的行被回收分配给其他任务。5、对外部设备写入的数据进行页有效性校验,以避免由于外部设备出错导致的“链式”错误。
在上述实施例中,对于内联计算引擎的任务执行方法进行了详细描述,本发明还提供内联计算引擎的任务执行装置对应的实施例。需要说明的是,本发明从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。
基于功能模块的角度,本实施例提供一种内联计算引擎的任务执行装置,其中,任务使用的虚拟地址空间分为多个虚拟地址页,各虚拟地址页分别具有对应的任务号以及页序号;各任务号以及各页序号分别对应有多个虚拟地址页。图10为本发明实施例提供的内联计算引擎的任务执行装置的结构图,如图10所示,该装置包括:
检验模块10,用于在内联计算引擎接收到外部设备发送的第二数据时,校验用于接收第二数据的虚拟地址页的有效状态;其中,在内联计算引擎接收到任务后,预先给对应任务分配用于接收第二数据的虚拟地址页;并保存虚拟地址页与第二数据所需的第一数据在存储器中的存储位置之间的映射关系,以及将对应任务号和页序号的虚拟地址页标记为有效状态;且各任务仅使用自身任务号对应的虚拟地址页,每个页序号对应的虚拟地址页中仅有指定数量的虚拟地址页为有效状态;虚拟地址页在使用完成后进行回收,并从有效状态变为无效状态;
获取模块11,用于若虚拟地址页为有效状态,则根据虚拟地址页对应的映射关系在存储器中获取第一数据;
执行模块12,用于根据获取的第一数据以及接收的第二数据执行对应任务。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
作为一种具体的实施方式,内联计算引擎的任务执行装置还包括:记录模块,用于在若虚拟地址页为有效状态,则根据虚拟地址页对应的映射关系在存储器中获取第一数据以完成对应任务之后,若出现错误,则将本次错误状态记录在任务状态中。
本实施例提供的内联计算引擎的任务执行装置,与上述方法对应,故具有与上述方法相同的有益效果。
基于硬件的角度,本实施例提供了另一种内联计算引擎的任务执行装置,图11为本发明另一实施例提供的内联计算引擎的任务执行装置的结构图,如图11所示,内联计算引擎的任务执行装置包括:存储器20,用于存储计算机程序;
处理器21,用于执行计算机程序时实现如上述实施例中所提到的内联计算引擎的任务执行方法的步骤。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的内联计算引擎的任务执行方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括Windows、Unix、Linux等。数据203可以包括但不限于内联计算引擎的任务执行方法涉及到的数据等。
在一些实施例中,内联计算引擎的任务执行装置还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
本领域技术人员可以理解,图中示出的结构并不构成对内联计算引擎的任务执行装置的限定,可以包括比图示更多或更少的组件。
本发明实施例提供的内联计算引擎的任务执行装置,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如下方法:内联计算引擎的任务执行方法。
本实施例提供的内联计算引擎的任务执行装置,与上述方法对应,故具有与上述方法相同的有益效果。
最后,本发明还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对当前技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例描述的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例提供的计算机可读存储介质,与上述方法对应,故具有与上述方法相同的有益效果。
以上对本发明所提供的一种内联计算引擎的任务执行方法、装置以及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种内联计算引擎的任务执行方法,其特征在于,任务使用的虚拟地址空间分为多个虚拟地址页,各所述虚拟地址页分别具有对应的任务号以及页序号;各任务号以及各页序号分别对应有多个所述虚拟地址页;所述方法包括:
在所述内联计算引擎接收到外部设备发送的第二数据时,校验用于接收所述第二数据的所述虚拟地址页的有效状态;其中,在所述内联计算引擎接收到任务后,预先给对应任务分配用于接收所述第二数据的所述虚拟地址页;并保存所述虚拟地址页与所述第二数据所需的第一数据在存储器中的存储位置之间的映射关系,以及将对应任务号和页序号的所述虚拟地址页标记为有效状态;且各任务仅使用自身任务号对应的所述虚拟地址页,每个页序号对应的所述虚拟地址页中仅有指定数量的所述虚拟地址页为有效状态;所述虚拟地址页在使用完成后进行回收,并从有效状态变为无效状态;
若所述虚拟地址页为有效状态,则根据所述虚拟地址页对应的所述映射关系在存储器中获取所述第一数据;
根据获取的所述第一数据以及接收的所述第二数据执行对应任务。
2.根据权利要求1所述的内联计算引擎的任务执行方法,其特征在于,各所述虚拟地址页的大小以及各任务号对应的所述虚拟地址页的数量均相同,且所述虚拟地址页的大小以及各任务号对应的所述虚拟地址页的数量由各任务中的最大数据量确定。
3.根据权利要求2所述的内联计算引擎的任务执行方法,其特征在于,若当前任务所需的所述虚拟地址页的数量大于当前能被选出的所述虚拟地址页的数量,则进入等待状态或者将对应任务拆分为多次对外部设备进行访问。
4.根据权利要求1至3任意一项所述的内联计算引擎的任务执行方法,其特征在于,对使用完成后的所述虚拟地址页进行回收包括:
当所述虚拟地址页接收等于自身大小的所述第二数据后,对所述虚拟地址页进行回收。
5.根据权利要求1所述的内联计算引擎的任务执行方法,其特征在于,所述虚拟地址页对应的所述第一数据的虚拟地址由任务号、页序号以及页内偏移编码构成;
所述根据所述虚拟地址页对应的映射关系在存储器中获取所述第一数据以完成对应任务包括:
根据所述第一数据对应的所述页内偏移以及所述虚拟地址页对应的映射关系在存储器中获取所述第一数据以完成对应任务。
6.根据权利要求5所述的内联计算引擎的任务执行方法,其特征在于,所述指定数量为一个。
7.根据权利要求1所述的内联计算引擎的任务执行方法,其特征在于,所述若所述虚拟地址页为有效状态,则根据所述虚拟地址页对应的映射关系在存储器中获取所述第一数据以完成对应任务之后,还包括:
若出现错误,则将本次错误状态记录在任务状态中。
8.一种内联计算引擎的任务执行装置,其特征在于,任务使用的虚拟地址空间分为多个虚拟地址页,各所述虚拟地址页分别具有对应的任务号以及页序号;各任务号以及各页序号分别对应有多个所述虚拟地址页;所述装置包括:
检验模块,用于在所述内联计算引擎接收到外部设备发送的第二数据时,校验用于接收所述第二数据的所述虚拟地址页的有效状态;其中,在所述内联计算引擎接收到任务后,预先给对应任务分配用于接收所述第二数据的所述虚拟地址页;并保存所述虚拟地址页与所述第二数据所需的第一数据在存储器中的存储位置之间的映射关系,以及将对应任务号和页序号的所述虚拟地址页标记为有效状态;且各任务仅使用自身任务号对应的所述虚拟地址页,每个页序号对应的所述虚拟地址页中仅有指定数量的所述虚拟地址页为有效状态;所述虚拟地址页在使用完成后进行回收,并从有效状态变为无效状态;
获取模块,用于若所述虚拟地址页为有效状态,则根据所述虚拟地址页对应的所述映射关系在存储器中获取所述第一数据;
执行模块,用于根据获取的所述第一数据以及接收的所述第二数据执行对应任务。
9.一种内联计算引擎的任务执行装置,其特征在于,包括存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的内联计算引擎的任务执行方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的内联计算引擎的任务执行方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310900374.8A CN116932425A (zh) | 2023-07-21 | 2023-07-21 | 一种内联计算引擎的任务执行方法、装置以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310900374.8A CN116932425A (zh) | 2023-07-21 | 2023-07-21 | 一种内联计算引擎的任务执行方法、装置以及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116932425A true CN116932425A (zh) | 2023-10-24 |
Family
ID=88380130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310900374.8A Pending CN116932425A (zh) | 2023-07-21 | 2023-07-21 | 一种内联计算引擎的任务执行方法、装置以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116932425A (zh) |
-
2023
- 2023-07-21 CN CN202310900374.8A patent/CN116932425A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10114578B2 (en) | Solid state disk and data moving method | |
US7991963B2 (en) | In-memory, in-page directory cache coherency scheme | |
US11210020B2 (en) | Methods and systems for accessing a memory | |
US20150143045A1 (en) | Cache control apparatus and method | |
JP2011013858A (ja) | 演算処理装置およびアドレス変換方法 | |
CN114780025B (zh) | 软件raid请求处理方法、控制器及raid存储系统 | |
CN112506823A (zh) | 一种fpga数据读写方法、装置、设备及可读存储介质 | |
JP2024054306A (ja) | ハードウェアベースのメモリ圧縮 | |
CN113360093A (zh) | 内存系统和设备 | |
US7596665B2 (en) | Mechanism for a processor to use locking cache as part of system memory | |
CN118426707A (zh) | 一种存储装置及其数据处理方法 | |
CN102103549A (zh) | 一种缓存替换方法 | |
CN116932425A (zh) | 一种内联计算引擎的任务执行方法、装置以及介质 | |
US20040078544A1 (en) | Memory address remapping method | |
US9158697B2 (en) | Method for cleaning cache of processor and associated processor | |
EP3916567A1 (en) | Method for processing page fault by processor | |
US8127082B2 (en) | Method and apparatus for allowing uninterrupted address translations while performing address translation cache invalidates and other cache operations | |
CN115599592A (zh) | 内存镜像方法及计算设备 | |
US10120819B2 (en) | System and method for cache memory line fill using interrupt indication | |
EP4033346B1 (en) | Affinity-based cache operation for a persistent storage device | |
CN116166606B (zh) | 基于共享紧耦合存储器的高速缓存控制架构 | |
US11847074B2 (en) | Input/output device operational modes for a system with memory pools | |
US11809320B2 (en) | Memory system caching mapping information | |
CN114780466B (zh) | 一种基于dma的数据复制延时的优化方法 | |
US20230325320A1 (en) | Method and apparatus for controlling cache line storage in cache memory |
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 |