CN113535638A - 一种并行运算加速系统及其运行方法 - Google Patents
一种并行运算加速系统及其运行方法 Download PDFInfo
- Publication number
- CN113535638A CN113535638A CN202110820916.1A CN202110820916A CN113535638A CN 113535638 A CN113535638 A CN 113535638A CN 202110820916 A CN202110820916 A CN 202110820916A CN 113535638 A CN113535638 A CN 113535638A
- Authority
- CN
- China
- Prior art keywords
- unit
- level
- calculation
- expression
- computing
- 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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7817—Specially adapted for signal processing, e.g. Harvard architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7825—Globally asynchronous, locally synchronous, e.g. network on chip
Abstract
本发明公开了一种并行运算加速系统及其运行方法,并行运算加速系统包括:操作数缓存模块、结果缓存模块、控制模块和计算模块;其中,控制模块包括存取控制单元、M级并行的表达式缓存单元、M级并行的解析单元和分发单元,计算模块包括N级并行的计算单元,N级并行的计算单元的一端与分发单元的一端连接,以实现N级并行的计算单元接收分发单元传输的计算操作信息,N级并行的计算单元的另一端分别都与M级并行的表达式缓存单元连接。本发明将计算分步骤分发到计算单元计算,使得该加速系统单次支持的最大混合运算操作,计算模块将数据直接传输至表达式缓存单元以提高计算结果的传输效率,从而提高加速系统的运算效率。
Description
技术领域
本发明涉及集成电路领域,具体涉及一种并行运算加速系统及其运行方法。
背景技术
随着科技的飞速发展,越来越多的技术领域,如人工智能、安全运算等都涉及大批量数据的运算。目前针对大批量数据进行相同计算操作的需求越来越多。对于这些大运算量领域,为了提高数据的处理速度和处理能力,通常需要控制多个计算单元同时进行工作,而在人工智能、安全运算等领域,通常要求计算速度快、时延小、效率高,因此如何提高混合运算的效率一直是加速芯片设计的目标。
发明内容
为解决上述问题,本发明提供了一种并行运算加速系统及其运行方法,实现连续的数据计算、连续的输出计算结果,提高混合运算层面的流水效率。本发明的具体技术方案如下:
一种并行运算加速系统,所述并行运算加速系统包括:操作数缓存模块、结果缓存模块、控制模块和计算模块;其中,所述控制模块包括存取控制单元、M级并行的表达式缓存单元、M级并行的解析单元和分发单元,所述计算模块包括N级并行的计算单元,所述计算模块中N级并行的计算单元的一端与所述控制模块的分发单元的一端连接,以实现所述N级并行的计算单元接收分发单元传输的计算操作信息,所述计算模块中N级并行的计算单元的另一端分别都与所述控制模块的M级并行的表达式缓存单元连接;所述操作数缓存模块用于缓存待执行计算操作的一批操作数;所述结果缓存模块用于缓存表达式计算结果;其中,M和N都为大于或等于2的整数。
与现有技术相比,本技术方案公开的并行运算加速系统基于M级并行的表达式缓存单元和解析单元,使得M个计算表达式能够独立计算,基于控制模块将复杂计算分步骤分发到计算单元中计算,使得该加速系统单次支持的最大混合运算操作,只受到控制模块的缓存空间大小的限制,不受硬件计算资源数量的限制,可以用较少的计算资源实现复杂运算,大幅度减少加速模块总线部分所占设计面积,降低芯片的硬件成本,且该加速系统的整体结构能够根据不同复杂度的计算需求进行相应的结构裁剪,具有较强适应性,同时,计算模块将计算结果直接反馈至表达式缓存单元,节省了计算结果的分配传输时间,提高加速系统的运算效率和性能。
进一步地,所述存取控制单元,用于从操作数缓存模块中读取待执行计算的操作数,还用于将控制模块中执行完全部计算操作的表达式计算结果传输至所述结果缓存模块;所述存取控制单元包括M个表达式计算结果输入端、M个存储状态信号输入端、M个操作数输出端、表达式计算结果输出端、操作数输入端和M+1个存取状态信号输出端;所述M个存储状态信号输入端,用于实现所述存取控制单元分别接收所述M级并行的表达式缓存单元的存储状态信号,所述存取控制单元根据每一级表达式缓存单元的存储状态信号判断是否向其传输一组操作数;所述M个操作数输出端,用于实现所述存取控制单元向所述M级并行的表达式缓存单元中一级或一级以上的表达式缓存单元输送操作数;所述操作数输入端,用于实现所述存取控制单元从所述操作数缓存模块读取至少一组待执行计算的操作数;所述M个表达式计算结果输入端,用于实现所述存取控制单元分别接收所述M级并行的表达式缓存单元输出的执行完全部计算操作的表达式计算结果;所述表达式计算结果输出端,用于实现所述存取控制单元将执行完全部计算操作的表达式计算结果传输至所述结果缓存模块;所述M+1个存取状态信号输出端,用于实现所述存取控制单元将其存取状态信号分别传输至M级并行的表达式缓存单元和操作数缓存模块。
本技术方案基于存取控制单元实现控制模块根据控制模块内部表达式缓存单元的缓存空间读取操作数,并将执行完全部计算操作的计算结果缓存至结果缓存单元,避免出现控制模块内部缓存空间不足,而存取控制单元却持续读取操作数的情况;对于M级表达式缓存单元先后传输至存取控制单元的一个以上的执行完全部计算操作的表达式计算结果,存取控制单元支持将所述一个以上的执行完全部计算操作的表达式计算结果按照其先后传输至存取控制单元的顺序先后传输至结果缓存单元,存取控制单元也支持将所述一个以上的执行完全部计算操作的表达式计算结果乱序传输至结果缓存单元。
进一步地,所述M级并行的表达式缓存单元为M个并行的表达式缓存单元,所述M个并行的表达式缓存单元两两之间不存在数据和/或信号的传输,每一级表达式缓存单元内部配置有对应一级的初始计算表达式;每一级表达式缓存单元包括表达式计算结果输出端、当前计算结果输入端、存储状态信号输出端、存取状态信号输入端、操作数输入端、操作数输出端和计算完成信号输入端;所述表达式计算结果输出端,与所述存取控制单元的对应一个表达式计算结果输入端连接,用于实现该一级表达式缓存单元将执行完全部计算操作的表达式计算结果传输至存取控制单元;所述当前计算结果输入端,用于实现该一级表达式缓存单元接收计算模块输出的当前计算结果;所述存储状态信号输出端,与所述存取控制单元的对应一个存储状态信号输入端连接,用于实现该一级表达式缓存单元将其存储状态信号传输至所述存取控制单元;所述存取状态信号输入端,与所述存取控制单元的对应一个存取状态信号输出端连接,用于实现该一级表达式缓存单元接收所述存取控制单元传输的存取状态信号;所述操作数输入端,与所述存取控制单元的对应一个操作数输出端连接,用于实现该一级表达式缓存单元接收所述存取控制单元传输的操作数;所述操作数输出端,用于实现该一级表达式缓存单元向同一级的解析单元单元传输操作数;所述计算完成信号输入端,用于实现该一级表达式缓存单元接收同一级的解析单元传输的计算完成信号;其中,所述计算操作信息包括当前待执行计算的操作符和操作数、该一级表达式缓存单元的级数;所述计算完成信号是用于指示该一级表达式缓存单元的计算表达式所包含的全部计算操作已执行完毕的信号。本技术方案采用多级表达式缓存单元使得该加速系统实现多组计算表达式并行运算,实现连续的数据计算和连续输出计算结果。
进一步地,所述M级并行的解析单元为M个并行的解析单元,所述M个并行的解析单元两两之间不存在数据和/或信号传输,每一级解析单元根据对应一级的表达式缓存单元内部配置的计算表达式组织数据结构表格,并根据数据结构表格从表达式缓存单元中读取计算操作信息;每一级解析单元包括操作数输入端、计算完成信号输出端、计算操作信息输出端和计算授权信号输入端;所述操作数输入端,与同一级的表达式缓存单元的所述操作数输出端连接,用于实现该一级解析单元从同一级表达式缓存单元中读取当前待执行的操作数,以生成计算操作信息;所述计算完成信号输出端,与同一级的表达式缓存单元的所述计算完成信号输入端连接,用于实现该一级解析单元向同一级表达式缓存单元传输计算完成信号;所述计算授权信号输入端,用于实现该一级解析单元接收分发单元输出的计算授权信号;所述计算操作信息输出端,用于实现该一级解析单元将计算操作信息传输至分发单元;其中,所述计算授权信号是指分发单元基于该一级解析单元传输的计算操作信息在存在符合目标计算单元条件的计算单元时反馈的信号,以表示计算资源申请成功;第k级表达式缓存单元为第k级解析单元的同一级的表达式缓存单元,k为小于或等于M且大于0的整数;所述符合目标计算单元条件是指该计算单元能够执行该计算操作信息且处于空闲状态,则确认为目标计算单元。本技术方案中采用每一级表达式缓存单元配置对应一级的解析单元,通过解析单元对表达式缓存单元中配置的计算表达式进行分析,组织数据结构表格,以便于后续解析单元根据数据结构表格从表达式缓存单元中读取当前待执行的操作数,提高混合运算效率。
进一步地,所述数据结构表格包括:有效标识符列,用于标识数据结构表格中每一行是否存在有效的表达式内容;单双目标识符列,用于标识操作符为单目运算符,或者为双目运算符,确定该操作符对应需要的操作数数量;操作符列,用于存储待执行的计算操作;操作标识符列,用于标识数据结构表格中每一行是否存在操作数;数据列,用于存储待执行计算操作的操作数;其中,所述有效标识符列、单双目标识符列、操作标识符列、数据列和操作符列的信息是由解析单元根据该一级表达式缓存单元内部配置的计算表达式对应配置;所述有效的表达式内容是指操作数和操作符。本技术方案中解析单元通过根据计算表达式组织数据结构表格,以便于后续解析单元根据数据结构表格判断计算表达式内所有计算操作是否已全部执行完毕,并根据数据结构表格从表达式缓存单元中读取待执行的操作数,提高数据读取效率。
进一步地,所述N级并行的计算单元为N个并行运算的计算单元,所述N个并行运算的计算单元两两之间不存在数据和/或信号传输,每一级计算单元被配置执行一种计算操作,每一级计算单元包括计算操作信息输入端、空闲状态信号输出端和M个当前计算结果输出端;所述计算操作信息输入端,用于实现该一级计算单元接收所述分发单元传输的计算操作信息;所述空闲状态信号输出端,用于实现该一级计算单元向所述分发单元传输空闲状态信号;所述M个计算结果输出端,与所述M级表达式缓存单元的M个计算结果输入端分别连接,用于实现该一级计算单元向当前计算结果所对应的计算操作信息所对应一级的表达式缓存单元传输计算结果;其中,所述空闲状态信号是用于表示该一级计算单元是否为空闲状态的信号;所述空闲状态是指计算单元处于能够接收待执行计算操作信息并执行相应计算操作的状态。本技术方案中配置的N个计算单元能够执行多种不同的计算操作,使得控制模块能够实现计算操作信息的灵活分配,实现连续输出计算结果,提高混合运算流水效率。
进一步地,所述分发单元内部配置有每一级计算单元所对应执行的计算操作,所述分发单元包括M个计算操作信息输入端、M个计算授权信号输出端、N个空闲状态信号输入端和N个计算操作信息输出端;所述M个计算操作信息输入端,与所述M级并行的解析单元的M个计算操作信息输出端对应连接,用于实现所述分发单元分别接收M级解析单元传输的计算操作信息;所述M个计算授权信号输出端,与所述M级并行的解析单元的M个计算授权信号输入端对应连接,用于实现所述分发单元将计算授权信号传输至计算操作信息所对应一级的解析单元;所述N个空闲状态信号输入端,与所述N级并行的计算单元的N个空闲状态信号输出端对应连接,用于实现所述分发单元分别接收N级计算单元传输的N个空闲状态信号;所述N个计算操作信息输出端,与所述N级并行的计算单元的N个计算操作信息输入端对应连接,用于实现所述分发单元将计算操作信息传输至目标计算单元;其中,所述目标计算单元是指能够执行该计算操作信息且处于空闲状态的计算单元。本技术方案通过在控制模块中设置一个分发单元,分发单元内部配置有N级计算单元所能够执行的计算操作,且基于分发单元实现全部计算单元的空闲状态由控制模块统一检测管理,提高计算效率,每一级计算单元所能够执行的计算操作能够根据该加速系统所对应执行的计算操作进行适应性配置,以提高计算效率和计算资源利用率,且基于分发单元对计算操作信息的分配控制,使得一个计算单元支持执行同一个计算表达式内的相同的两个或两个以上的计算操作。
本发明还公开了一种并行运算加速系统的运行方法,所述并行运算加速系统的运行方法包括如下步骤:步骤1:并行运算加速系统启动时,每一级解析单元从对应一级的表达式缓存单元中读取对应一级的初始计算表达式,每一级解析单元根据对应一级的计算表达式组织对应一级的数据结构表格;步骤2:存取控制单元判断M级并行的表达式缓存单元中是否存在处于待存储状态的表达式缓存单元,若存在第k级表达式缓存单元处于待存储状态,则存取控制单元从操作数缓存模块中读取一组操作数传输至第k级表达式缓存单元,第k级表达式缓存单元接收到存取控制单元传输的一组操作数后由处于待存储状态转换为处于已存储状态;步骤3:第k级解析单元根据第k级的数据结构表格判断是否存在当前待执行的计算操作,若存在,则进入步骤4,若不存在,则第k级解析单元向第k级表达式缓存单元传输计算完成信号,第k级表达式缓存单元接收到计算完成信号后将第k级表达式缓存单元中最新缓存的当前计算结果作为执行完全部计算操作的表达式计算结果传输至存取控制模块,存取控制模块将第k级表达式缓存单元传输的执行完全部计算操作的表达式计算结果传输至结果缓存模块缓存。步骤4:第k级解析单元根据第k级的数据结构表格确定当前待执行的计算操作所需的操作数,第k级解析单元根据当前待执行的计算操作所需的操作数从第k级表达式缓存单元中读取相应的操作数,第k级解析单元生成当前待执行的计算操作信息,第k级解析单元将当前待执行的计算操作信息传输至分发单元;步骤5:分发单元根据接收到的计算操作信息分析第k级解析单元所请求执行的计算操作,根据第k级解析单元所请求执行的计算操作确定目标计算单元,并将第k级解析单元的当前待执行的计算操作信息传输至目标计算单元,同时分发单元传输计算授权信号至第k级解析单元;步骤6:目标计算单元根据当前待执行的计算操作信息获取当前待执行计算操作的操作数并执行相应的计算操作,获取当前计算结果并传输至第k级表达式缓存单元;步骤7:第k级表达式缓存单元将当前计算结果缓存,并根据当前计算结果更新第k级表达式缓存单元的计算表达式,返回步骤3;其中,k为小于或等于M且大于0的整数。与现有技术相比,本方法实现连续的数据计算,连续输出计算结果,提高混合运算层面的流水效率。
进一步地,当并行运算加速系统在执行步骤3至步骤7的过程中,并行运算加速系统同时也在执行步骤2;所述步骤2还包括:当M级并行的表达式缓存单元中不存在处于待存储状态的表达式缓存单元,则存取控制单元重复判断M级并行的表达式缓存单元中是否存在处于待存储状态的表达式缓存单元;当M级并行的表达式缓存单元存在一个以上的表达式缓存单元处于待存储状态,则存储控制单元按照检测到表达式缓存单元处于待存储状态的先后顺序从操作数缓存模块中先后读取一组操作数并先后传输至相应的处于待存储状态的表达式缓存单元,其中,所述处于待存储状态的表达式缓存单元在接收到存取控制单元传输的一组操作数后由处于待存储状态转换为处于已存储状态。存取控制单元持续对M级并行的表达式缓存单元所处于的存储状态进行检测,并及时对处于待存储状态的表达式缓存单元送入一组操作数,通过表达缓存单元的存储状态信号控制操作数的读取和传输,以保证控制模块中具有充足的缓存空间来满足计算结果的输入。
进一步地,所述步骤3还包括:第k级解析单元向第k级表达式缓存单元传输计算完成信号,同时,第k级解析单元将其内部的数据结构表格更新为初始数据结构表格;当第k级表达式缓存单元将执行完全部计算操作的表达式计算结果传输至存取控制模块后,第k级表达式缓存单元由已存储状态转换为待存储状态,同时第k级表达式缓存单元的计算表达式更新为第k级的初始计算表达式;其中,所述初始数据结构表格是指解析单元依据对应一级表达式缓存单元的初始表达式组织的数据结构表格。本技术方案通过设置表达式缓存单元的存储状态转换,来控制新的一组操作数的读取以及计算表达式的初始化。
进一步地,所述步骤5具体包括:分发单元根据接收到的计算操作信息分析第k级解析单元所请求执行的计算操作,将第k级所请求执行的计算操作与分发单元内部配置的N级计算单元所对应执行的计算操作进行匹配,从N级计算单元中筛选出可执行第k级解析单元所请求执行的计算操作的至少一级的计算单元,分发单元结合可执行第k级解析单元所请求执行的计算操作的至少一级的计算单元的空闲状态信号,确定可执行第k级解析单元所请求执行的计算操作的至少一级的计算单元中传输成本最低且处于空闲状态的一级计算单元作为目标计算单元,分发单元将第k级解析单元的当前待执行的计算操作信息传输至目标计算单元,同时分发单元传输计算授权信号至第k级解析单元;其中,所述传输成本最低是指在分发单元将当前待执行的计算操作信息传输至该一级计算单元所需时间最短且占用的系统资源最少。根据多个条件筛选出最合适的计算单元执行当前待执行的计算操作,提高加速系统的运算效率。
进一步地,所述步骤5还包括:第k级解析单元接收到分发单元传输的计算授权信号后,更新第k级解析单元内部的数据结构表格信息。本技术方案通过在每执行一个计算操作信息后更新数据结构信息,以确保不会对部分操作数或操作符进行错误的重复运算,提高加速系统的运算结果准确率。
进一步地,所述更新第k级解析单元内部的数据结构表格,具体包括:将所述计算授权信号对应的计算操作信息包含的操作数和操作符在数据结构表格中所在行信息替换为一行操作数信息;其中,所述替换为一行操作数信息,是指将所述计算操作信息对应的当前计算结果以代号形式作为操作数,相应更新于数据结构表格中。
附图说明
图1为本发明一种实施例所述并行运算加速系统的结构示意图。
图2为本发明一种实施例所述存取控制单元的端口示意图。
图3为本发明一种实施例所述表达式缓存单元的端口示意图。
图4为本发明一种实施例所述解析单元的端口示意图。
图5为本发明一种实施例所述分发单元的端口示意图。
图6为本发明一种实施例所述计算单元的端口示意图。
图7为本发明一种实施例所述并行运算加速系统的运行方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清晰,以下将结合附图及实施例,对本发明进行描述和说明。应当理解,下面所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。此外,还可以理解的是,对本领域的普通技术人员而言,在本发明揭露的技术内容上进行一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
除非另作定义,本发明所涉及的技术术语或科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等词语并不表示数量限制,可以表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含,如:包含了一系列步骤或模块的过程、方法、系统产品或者设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或模块,或者还可以包括对于这些过程、方法、产品或设备固有的其他步骤或单元。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是用于区别类似的对应,不代表针对对象的特定排序。
本发明的一种实施例中提供了一种并行运算加速系统,如图1所示,所述并行运算加速系统包括:操作数缓存模块、结果缓存模块、计算模块和控制模块。需要说明的是,图1中的箭头仅表示两个模块/单元、或者模块与单元之间存在信号和/或信息的传输及其传输方向,并不代表该模块/单元之间仅依靠一个端口实现一个以上的信号和/或信息的传输。需要说明的是,如图1所示,计算模块的每一级计算单元分别与控制模块中的M级并行的表达式缓存单元存在信号和信息的传输。
具体地,所述操作数缓存模块,用于存储一批待执行计算的操作数;其中,一批操作数包含一组或一组以上的操作数。所述操作数缓存模块包括操作数输出端,用于实现控制模块从所述操作数缓存模块中读取操作数;所述操作数缓存模块还包括存取状态信号输入端,用于实现操作数缓存模块接收控制模块中存取控制单元的存取状态信号,操作数缓存模块根据存取控制单元的存取状态信号确定是否同意其读取操作数,如存取控制单元处于存取饱和状态,但存取控制单元仍向操作数缓存模块提交读取操作数的请求,则操作数缓存模块拒绝存取控制单元的读取请求。
所述结果缓存模块,用于缓存完成全部计算操作的表达式计算结果,所述结果缓存模块包括表达式计算结果输入端,用于实现所述结果缓存模块接收由所述控制模块传输的表达式计算结果并缓存。
所述控制模块,包含存取控制单元、M级并行的表达式缓存单元、M级并行的解析单元和分发单元;如图1所示,所述存取控制单元的一端分别与M级并行的表达式缓存单元的一端连接,所述存取控制单元的另一端分别与所述操作数缓存模块和所述结果缓存模块连接,每一级表达式缓存单元的另一端与对应一级的解析单元的一端连接,所述分发单元的一端分别与M级并行的解析单元的另一端连接,所述分发单元的另一端与所述计算模块的N级并行的计算单元连接;其中,第k级的解析单元为第k级表达式缓存单元的对应一级的解析单元;N为大于或等于2的整数,M为大于或等于2的整数,k为小于或等于M且大于0的整数。
具体地,所述存取控制单元,用于实现所述控制模块从所述操作数缓存模块中读取操作数,并实现将所述控制模块中执行完全部计算操作的表达式计算结果传输至所述结果缓存模块。如图2所示,所述存取控制单元包含M个表达式计算结果输入端、M个存储状态信号输入端、操作数输出端、表达式计算结果输出端、M个操作数输入端和M+1个存取状态信号输出端;其中,所述M个存储状态信号输入端,用于实现所述存取控制单元分别接收所述M级并行的表达式缓存单元的存储状态信号,所述存取控制单元根据每一级表达式缓存单元的存储状态信号判断是否向其传输一组操作数;所述M个操作数输出端,用于实现所述存取控制单元向所述M级并行的表达式缓存单元中一级或一级以上的表达式缓存单元输送操作数;所述操作数输入端,用于实现所述存取控制单元从所述操作数缓存模块读取至少一组待执行计算的操作数;所述M个表达式计算结果输入端,用于实现所述存取控制单元分别接收所述M级并行的表达式缓存单元输出的执行完全部计算操作的表达式计算结果;所述表达式计算结果输出端,用于实现所述存取控制单元将执行完全部计算操作的表达式计算结果传输至所述结果缓存模块;所述M+1个存取状态信号输出端,用于实现所述存取控制单元将其存取状态信号分别传输至M级并行的表达式缓存单元和操作数缓存模块。
其中,所述存取状态信号用于表征存取控制单元的存取状态,所述存取控制单元的存取状态包括待存取状态和存取饱和状态,当存取控制单元处于待存取状态时,表示存取控制单元内部能够接收新的操作数和表达式计算结果,当存取控制单元处于存取饱和状态时,表示存取控制单元内部存储的数据已达到预设容纳阈值,存取控制单元在存取饱和状态下不能够接收新的操作数和表达式计算结果。
优选地,对于M级表达式缓存单元先后传输至存取控制单元的一个以上的执行完全部计算操作的表达式计算结果,存取控制单元支持将所述一个以上的执行完全部计算操作的表达式计算结果按照其先后传输至存取控制单元的顺序传输至结果缓存单元,存取控制单元也支持将所述一个以上的执行完全部计算操作的表达式计算结果乱序传输至结果缓存单元。
所述M级表达式缓存单元为M个并行的表达式缓存单元,所述M级并行的表达式缓存单元两两之间不存在数据或信号传输,每一级表达式缓存单元内部配置有对应一级的初始计算表达式。如图3所示,每一级表达式缓存单元包括表达式计算结果输出端、当前计算结果输入端、存储状态信号输出端、存取状态信号输入端、操作数输入端、操作数输出端和计算完成信号输入端;所述表达式计算结果输出端,与所述存取控制单元的对应一个表达式计算结果输入端连接,用于实现该一级表达式缓存单元将执行完全部计算操作的表达式计算结果传输至存取控制单元;所述当前计算结果输入端,用于实现该一级表达式缓存单元接收计算模块输出的当前计算结果;所述存储状态信号输出端,与所述存取控制单元的对应一个存储状态信号输入端连接,用于实现该一级表达式缓存单元将其存储状态信号传输至所述存取控制单元;所述存取状态信号输入端,与所述存取控制单元的对应一个存取状态信号输出端连接,用于实现该一级表达式缓存单元接收所述存取控制单元传输的存取状态信号;所述操作数输入端,与所述存取控制单元的对应一个操作数输出端连接,用于实现该一级表达式缓存单元接收所述存取控制单元传输的操作数;所述操作数输出端,用于实现该一级表达式缓存单元向同一级的解析单元传输当前待执行的操作数;所述计算完成信号输入端,用于实现该一级表达式缓存单元接收同一级的解析单元传输的计算完成信号;其中,所述计算操作信息包括当前待执行计算的操作符和操作数、该一级表达式缓存单元的级数;所述计算完成信号是用于指示该一级表达式缓存单元的计算表达式所包含的全部计算操作已执行完毕的信号;所述存储状态信号用于表征每一级表达式缓存单元的存储状态,所述表达式缓存单元的存储状态包括待存储状态和存储饱和状态,当表达式缓存单元处于待存储状态时,存取控制单元向表达式缓存单元传输一组操作数,当表达式缓存单元接收到一组操作数后由待存储状态转换为存储饱和状态,需要说明的是,所述表达式缓存单元的存储状态并不限制表达式缓存单元接收计算模块传输的当前计算结果。
所述M级解析单元为M个并行的解析单元,所述M级解析单元两两之间不存在数据和/或信号传输,所述解析单元根据同一级表达式缓存单元内部配置的计算表达式组织数据结构表格,并根据数据结构表格从表达式缓存单元中读取计算操作信息;其中,所述数据结构表格的内容包括:有效标识符列,用于标识数据结构表格中每一行是否存在有效的表达式内容;单双目标识符列,用于标识操作符为单目运算符,或者为双目运算符,确定该操作符对应需要的操作数数量;操作符列,用于存储待执行的计算操作;操作标识符列,用于标识数据结构表格中每一行是否存在操作数;数据列,用于存储待执行计算操作的操作数;其中,所述有效标识符列、单双目标识符列、操作标识符列、数据列和操作符列的信息是由解析单元根据该一级表达式缓存单元内部配置的计算表达式对应配置;所述有效的表达式内容是指操作数和操作符。需要说明的是,所述数据结构表格不是实际存在的表格,而是对表达式缓存单元中初始表达式进行组织整理后获得的虚拟表格,仅存在于逻辑层面。可以理解地,所述初始表达式是以逆波兰表达式形式存在的表达式,解析单元根据初始表达式分析其中包含的操作数和操作符,如:若初始表达式为“AB+C*”,则解析单元依据初始表达式获取操作数包括A、B和C,操作符包括“+”和“*”,将获取的操作数和操作符依照顺序组织入数据结构表格,再根据操作数和操作符确认每一行的有效标识符、单双目标识符和操作标识符等信息。需要说明的是,解析单元依据初始表达式获取的操作数仅仅是以操作数标记代号,并不是实际的操作数,解析单元需要对数据结构表格进行当前待执行的操作数标记代号进行分析后,再根据操作数标记代号从表达式缓存单元中读取实际的操作数。
如图4所示,所述计算操作信息输入端,与同一级的表达式缓存单元的所述计算操作信息输出端连接,用于实现该一级解析单元从同一级表达式缓存单元中读取计算操作信息;所述计算完成信号输出端,与同一级的表达式缓存单元的所述计算完成信号输入端连接,用于实现该一级解析单元向同一级表达式缓存单元传输计算完成信号;所述计算授权信号输入端,用于实现该一级解析单元接收分发单元输出的计算授权信号;所述计算操作信息输出端,用于实现该一级解析单元将计算操作信息传输至分发单元;其中,所述计算授权信号是指分发单元基于该一级解析单元传输的计算操作信息在存在符合目标计算单元条件的计算单元时反馈的信号,以表示计算资源申请成功;第k级表达式缓存单元为第k级解析单元的同一级的表达式缓存单元,k为小于或等于M且大于0的整数;所述符合目标计算单元条件是指该计算单元能够执行该计算操作信息且处于空闲状态,则确认为目标计算单元。
所述分发单元内部配置有每一级计算单元所对应执行的计算操作;如图5所示,所述分发单元包括M个计算操作信息输入端、M个计算授权信号输出端、N个空闲状态信号输入端和N个计算操作信息输出端;所述M个计算操作信息输入端,与所述M级并行的解析单元的M个计算操作信息输出端对应连接,用于实现所述分发单元分别接收M级解析单元传输的计算操作信息;所述M个计算授权信号输出端,与所述M级并行的解析单元的M个计算授权信号输入端对应连接,用于实现所述分发单元将计算授权信号传输至计算操作信息所对应一级的解析单元;所述N个空闲状态信号输入端,与所述N级并行的计算单元的N个空闲状态信号输出端对应连接,用于实现所述分发单元分别接收N级计算单元传输的N个空闲状态信号;所述N个计算操作信息输出端,与所述N级并行的计算单元的N个计算操作信息输入端对应连接,用于实现所述分发单元将计算操作信息传输至目标计算单元;其中,所述目标计算单元是指能够执行该计算操作信息且处于空闲状态的计算单元。
所述计算模块包含N级计算单元,用于基于控制模块传输的计算操作信息获取计算结果,将计算结果输出至控制模块的表达式缓存单元;所述N级计算单元为N个并行运算的独立的计算单元,所述N级计算单元两两之间不存在数据或信号传输,每一级计算单元被配置执行一种计算操作,所述计算操作可以是但不限于加法、乘法、除法、开方等。如图6所示,每一级计算单元包括计算操作信息输入端、空闲状态信号输出端和M个当前计算结果输出端;所述计算操作信息输入端,用于实现该一级计算单元接收所述分发单元传输的计算操作信息;所述空闲状态信号输出端,用于实现该一级计算单元向所述分发单元传输空闲状态信号;所述M个当前计算结果输出端,与所述M级表达式缓存单元的M个当前计算结果输入端分别连接,用于实现该一级计算单元向当前计算结果所对应的计算操作信息所对应一级的表达式缓存单元传输计算结果;其中,所述空闲状态信号是用于表示该一级计算单元是否为空闲状态的信号;所述空闲状态是指计算单元处于能够接收待执行计算操作信息并执行相应计算操作的状态。可以理解地,每一级计算单元的M个当前计算结果输出端都分别与M级表达式缓存单元的M个当前计算结果输入端一一对应连接,每一级计算单元依据输入的计算操作信息确定当前计算结果应输出的一级表达式缓存单元。
优选地,本发明的一种实施例提供的并行运算加速系统,相较于前述实施例的并行运算加速系统,该并行运算加速系统的控制模块包括一个存取控制单元、M个表达式缓存单元、M个解析单元和一个分发单元,计算模块中包括N个计算单元,其中,M为小于或等于N且大于0的整数,N为大于0的整数。在本实施例中,计算单元的数量N多于解析单元的数量M,因为每一个计算单元只能执行一种计算操作,当计算单元的数量多于解析单元的数量时,控制模块中分发单元能够更好更快的响应解析单元发出的计算操作信息,控制模块对计算操作信息的分配能够更灵活,在最优情况下能够将加速单元内部计算资源利用率提升到100%。
本发明的另一种实施例中,基于上述实施例的并行运算加速系统,公开了一种并行运算加速系统的运行方法,如图7所示,所述并行运算加速系统的运行方法包括如下步骤:
步骤1:并行运算加速系统启动时,每一级解析单元从对应一级的表达式缓存单元中读取对应一级的初始计算表达式,每一级解析单元根据对应一级的计算表达式组织对应一级的数据结构表格;
步骤2:存取控制单元判断M级并行的表达式缓存单元中是否存在处于待存储状态的表达式缓存单元,若存在第k级表达式缓存单元处于待存储状态,则存取控制单元从操作数缓存模块中读取一组操作数传输至第k级表达式缓存单元,第k级表达式缓存单元接收到存取控制单元传输的一组操作数后由处于待存储状态转换为处于已存储状态;
步骤3:第k级解析单元根据第k级的数据结构表格判断是否存在当前待执行的计算操作,若存在,则进入步骤4,若不存在,则第k级解析单元向第k级表达式缓存单元传输计算完成信号,第k级表达式缓存单元接收到计算完成信号后将第k级表达式缓存单元中最新缓存的当前计算结果作为执行完全部计算操作的表达式计算结果传输至存取控制模块,存取控制模块将第k级表达式缓存单元传输的执行完全部计算操作的表达式计算结果传输至结果缓存模块缓存。
步骤4:第k级解析单元根据第k级的数据结构表格确定当前待执行的计算操作所需的操作数,第k级解析单元根据当前待执行的计算操作所需的操作数从第k级表达式缓存单元中读取相应的操作数,第k级解析单元获取当前待执行的计算操作信息,第k级解析单元将当前待执行的计算操作信息传输至分发单元;
步骤5:分发单元根据接收到的计算操作信息分析第k级解析单元所请求执行的计算操作,根据第k级解析单元所请求执行的计算操作确定目标计算单元,并将第k级解析单元的当前待执行的计算操作信息传输至目标计算单元,同时分发单元传输计算授权信号至第k级解析单元;
步骤6:目标计算单元根据当前待执行的计算操作信息获取当前待执行计算操作的操作数并执行相应的计算操作,获取当前计算结果并传输至第k级表达式缓存单元;
步骤7:第k级表达式缓存单元将当前计算结果缓存,并根据当前计算结果更新第k级表达式缓存单元的计算表达式,返回步骤3;
其中,k为小于或等于M且大于0的整数。
具体地,当并行运算加速系统在执行步骤3至步骤7的过程中,并行运算加速系统同时也在执行步骤2;所述步骤2还包括:当M级并行的表达式缓存单元中不存在处于待存储状态的表达式缓存单元,则存取控制单元重复判断M级并行的表达式缓存单元中是否存在处于待存储状态的表达式缓存单元;当M级并行的表达式缓存单元存在一个以上的表达式缓存单元的处于待存储状态,则存储控制单元按照检测到表达式缓存单元的处于待存储状态的先后顺序从操作数缓存模块中先后读取一组操作数并先后传输至相应的处于待存储状态的表达式缓存单元,处于待存储状态的表达式缓存单元在接受到存取控制单元传输的一组操作数后由待存储状态转换为处于存储饱和状态。
基于上述实施例,本发明另一种实施例中公开的并行运算加速系统的运行方法,所述步骤3还包括:第k级解析单元向第k级表达式缓存单元传输计算完成信号,同时,第k级解析单元将其内部的数据结构表格更新为初始数据结构表格;当第k级表达式缓存单元将执行完全部计算操作的表达式计算结果传输至存取控制模块后,第k级表达式缓存单元由已存储状态转换为待存储状态,同时第k级表达式缓存单元的计算表达式更新为第k级的初始计算表达式;其中,所述初始数据结构表格是指解析单元依据对应一级表达式缓存单元的初始表达式组织的数据结构表格。
基于上述实施例,本发明另一种实施例中公开的并行运算加速系统的运行方法,所述步骤5具体包括:分发单元根据接收到的计算操作信息分析第k级解析单元所请求执行的计算操作,将第k级所请求执行的计算操作与分发单元内部配置的N级计算单元所对应执行的计算操作进行匹配,从N级计算单元中筛选出可执行第k级解析单元所请求执行的计算操作的至少一级的计算单元,分发单元结合可执行第k级解析单元所请求执行的计算操作的至少一级的计算单元的空闲状态信号,确定可执行第k级解析单元所请求执行的计算操作的至少一级的计算单元中传输成本最低且处于空闲状态的一级计算单元作为目标计算单元,分发单元将第k级解析单元的当前待执行的计算操作信息传输至目标计算单元,同时分发单元传输计算授权信号至第k级解析单元;其中,所述传输成本最低是指在分发单元将当前待执行的计算操作信息传输至该一级计算单元所需时间最短且占用的系统资源最少。
优选地,第k级解析单元接收到分发单元传输的计算授权信号后,更新第k级解析单元内部的数据结构表格信息。
具体地,所述更新第k级解析单元内部的数据结构表格,具体包括:将所述计算授权信号对应的计算操作信息包含的操作数和操作符在数据结构表格中所在行信息替换为一行操作数信息;其中,所述替换为一行操作数信息,是指将所述计算操作信息对应的当前计算结果以代号形式作为操作数,相应更新于数据结构表格中。
优选地,基于分发单元对计算操作信息的分配控制,使得一个计算单元能够执行同一个计算表达式内的相同的两个或两个以上的计算操作。具体地,当一个计算表达式包括三个加法计算操作,则存在一个执行加法计算操作的计算单元在符合目标计算单元筛选条件的情况下,该三个加速计算操作由同一个执行加法计算操作的计算单元执行;其中,所述目标计算单元筛选条件包括:传输成本最低、处于空闲状态和可执行请求的计算操作。
需要说明的是,上述各实施例中所述操作数缓存模块和所述结果缓存模块本质是存储介质,所述存储介质可以是但不限于只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)等各种可以存储程序代码的存储介质;所述控制模块中的各个表达式缓存单元、各个解析单元、分发单元和存取控制单元以及所述计算模块中各个计算单元都可以是但不限于由设计者使用硬件描述语言Verilog HDL进行编译形成的一种数字电路模块,或者是由设计者在具备电路绘制或编译功能的软件上进行电路绘制或编译形成的数字电路模块。此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个处理模块中。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (13)
1.一种并行运算加速系统,其特征在于,所述并行运算加速系统包括:操作数缓存模块、结果缓存模块、控制模块和计算模块;其中,所述控制模块包括存取控制单元、M级并行的表达式缓存单元、M级并行的解析单元和分发单元,所述计算模块包括N级并行的计算单元,所述计算模块中N级并行的计算单元的一端与所述控制模块的分发单元的一端连接,以实现所述N级并行的计算单元接收分发单元传输的计算操作信息,所述计算模块中N级并行的计算单元的另一端分别都与所述控制模块的M级并行的表达式缓存单元连接;所述操作数缓存模块用于缓存待执行计算操作的一批操作数;所述结果缓存模块用于缓存表达式计算结果;其中,M和N都为大于或等于2的整数。
2.根据权利要求1所述的并行运算加速系统,其特征在于,所述存取控制单元,用于从操作数缓存模块中读取待执行计算的操作数,还用于将控制模块中执行完全部计算操作的表达式计算结果传输至所述结果缓存模块;所述存取控制单元包括M个表达式计算结果输入端、M个存储状态信号输入端、M个操作数输出端、表达式计算结果输出端、操作数输入端和M+1个存取状态信号输出端;
所述M个存储状态信号输入端,用于实现所述存取控制单元分别接收所述M级并行的表达式缓存单元的存储状态信号,所述存取控制单元根据每一级表达式缓存单元的存储状态信号判断是否向其传输一组操作数;
所述M个操作数输出端,用于实现所述存取控制单元向所述M级并行的表达式缓存单元中一级或一级以上的表达式缓存单元输送操作数;
所述操作数输入端,用于实现所述存取控制单元从所述操作数缓存模块读取至少一组待执行计算的操作数;
所述M个表达式计算结果输入端,用于实现所述存取控制单元分别接收所述M级并行的表达式缓存单元输出的执行完全部计算操作的表达式计算结果;
所述表达式计算结果输出端,用于实现所述存取控制单元将执行完全部计算操作的表达式计算结果传输至所述结果缓存模块;
所述M+1个存取状态信号输出端,用于实现所述存取控制单元将其存取状态信号分别传输至M级并行的表达式缓存单元和操作数缓存模块。
3.根据权利要求2所述的并行运算加速系统,其特征在于,所述M级并行的表达式缓存单元为M个并行的表达式缓存单元,所述M个并行的表达式缓存单元两两之间不存在数据和/或信号的传输,每一级表达式缓存单元内部配置有对应一级的初始计算表达式;每一级表达式缓存单元包括表达式计算结果输出端、当前计算结果输入端、存储状态信号输出端、存取状态信号输入端、操作数输入端、计算操作信息输出端和计算完成信号输入端;
所述表达式计算结果输出端,与所述存取控制单元的对应一个表达式计算结果输入端连接,用于实现该一级表达式缓存单元将执行完全部计算操作的表达式计算结果传输至存取控制单元;
所述当前计算结果输入端,用于实现该一级表达式缓存单元接收计算模块输出的当前计算结果;
所述存储状态信号输出端,与所述存取控制单元的对应一个存储状态信号输入端连接,用于实现该一级表达式缓存单元将其存储状态信号传输至所述存取控制单元;
所述存取状态信号输入端,与所述存取控制单元的对应一个存取状态信号输出端连接,用于实现该一级表达式缓存单元接收所述存取控制单元传输的存取状态信号;
所述操作数输入端,与所述存取控制单元的对应一个操作数输出端连接,用于实现该一级表达式缓存单元接收所述存取控制单元传输的操作数;
所述操作数输出端,用于实现该一级表达式缓存单元向同一级的解析单元单元传输待执行计算操作的操作数;
所述计算完成信号输入端,用于实现该一级表达式缓存单元接收同一级的解析单元传输的计算完成信号;
其中,所述计算操作信息包括当前待执行计算的操作符和操作数、该一级表达式缓存单元的级数;所述计算完成信号是用于指示该一级表达式缓存单元的计算表达式所包含的全部计算操作已执行完毕的信号。
4.根据权利要求3所述的并行运算加速系统,其特征在于,所述M级并行的解析单元为M个并行的解析单元,所述M个并行的解析单元两两之间不存在数据和/或信号传输,每一级解析单元根据对应一级的表达式缓存单元内部配置的计算表达式组织数据结构表格,并根据数据结构表格从表达式缓存单元中读取计算操作信息;每一级解析单元包括操作数输入端、计算完成信号输出端、计算操作信息输出端和计算授权信号输入端;
所述操作数输入端,与同一级的表达式缓存单元的所述操作数输出端连接,用于实现该一级解析单元从同一级表达式缓存单元中读取操作数,生成计算操作信息;
所述计算完成信号输出端,与同一级的表达式缓存单元的所述计算完成信号输入端连接,用于实现该一级解析单元向同一级表达式缓存单元传输计算完成信号;
所述计算授权信号输入端,用于实现该一级解析单元接收分发单元输出的计算授权信号;
所述计算操作信息输出端,用于实现该一级解析单元将计算操作信息传输至分发单元;
其中,所述计算授权信号是指分发单元基于该一级解析单元传输的计算操作信息在存在符合目标计算单元条件的计算单元时反馈的信号,以表示计算资源申请成功;第k级表达式缓存单元为第k级解析单元的同一级的表达式缓存单元,k为小于或等于M且大于0的整数;所述符合目标计算单元条件是指该计算单元能够执行该计算操作信息且处于空闲状态,则确认为目标计算单元。
5.根据权利要求4所述的并行运算加速系统,其特征在于,所述数据结构表格包括:
有效标识符列,用于标识数据结构表格中每一行是否存在有效的表达式内容;
单双目标识符列,用于标识操作符为单目运算符,或者为双目运算符,确定该操作符对应需要的操作数数量;
操作符列,用于存储待执行的计算操作;
操作标识符列,用于标识数据结构表格中每一行是否存在操作数;
数据列,用于存储待执行计算操作的操作数;
其中,所述有效标识符列、单双目标识符列、操作标识符列、数据列和操作符列的信息是由解析单元根据该一级表达式缓存单元内部配置的计算表达式对应配置;所述有效的表达式内容是指操作数和操作符。
6.根据权利要求4所述的并行运算加速系统,其特征在于,所述N级并行的计算单元为N个并行运算的计算单元,所述N个并行运算的计算单元两两之间不存在数据和/或信号传输,每一级计算单元被配置执行一种计算操作,每一级计算单元包括计算操作信息输入端、空闲状态信号输出端和M个当前计算结果输出端;
所述计算操作信息输入端,用于实现该一级计算单元接收所述分发单元传输的计算操作信息;
所述空闲状态信号输出端,用于实现该一级计算单元向所述分发单元传输空闲状态信号;
所述M个当前计算结果输出端,与所述M级表达式缓存单元的M个当前计算结果输入端分别连接,用于实现该一级计算单元向当前计算结果所对应的计算操作信息所对应一级的表达式缓存单元传输计算结果;
其中,所述空闲状态信号是用于表示该一级计算单元是否为空闲状态的信号;所述空闲状态是指计算单元处于能够接收待执行计算操作信息并执行相应计算操作的状态。
7.根据权利要求6所述的并行运算加速系统,其特征在于,所述分发单元内部配置有每一级计算单元所对应执行的计算操作,所述分发单元包括M个计算操作信息输入端、M个计算授权信号输出端、N个空闲状态信号输入端和N个计算操作信息输出端;
所述M个计算操作信息输入端,与所述M级并行的解析单元的M个计算操作信息输出端对应连接,用于实现所述分发单元分别接收M级解析单元传输的计算操作信息;
所述M个计算授权信号输出端,与所述M级并行的解析单元的M个计算授权信号输入端对应连接,用于实现所述分发单元将计算授权信号传输至计算操作信息所对应一级的解析单元;
所述N个空闲状态信号输入端,与所述N级并行的计算单元的N个空闲状态信号输出端对应连接,用于实现所述分发单元分别接收N级计算单元传输的N个空闲状态信号;
所述N个计算操作信息输出端,与所述N级并行的计算单元的N个计算操作信息输入端对应连接,用于实现所述分发单元将计算操作信息传输至目标计算单元;
其中,所述目标计算单元是指能够执行该计算操作信息且处于空闲状态的计算单元。
8.一种并行运算加速系统的运行方法,所述并行运算加速系统为权利要求1至7任一项所述的并行运算加速系统,其特征在于,所述并行运算加速系统的运行方法包括:
步骤1:并行运算加速系统启动时,每一级解析单元从对应一级的表达式缓存单元中读取对应一级的初始计算表达式,每一级解析单元根据对应一级的计算表达式组织对应一级的数据结构表格;
步骤2:存取控制单元判断M级并行的表达式缓存单元中是否存在处于待存储状态的表达式缓存单元,若存在第k级表达式缓存单元处于待存储状态,则存取控制单元从操作数缓存模块中读取一组操作数传输至第k级表达式缓存单元,第k级表达式缓存单元接收到存取控制单元传输的一组操作数后由处于待存储状态转换为处于已存储状态;
步骤3:第k级解析单元根据第k级的数据结构表格判断是否存在当前待执行的计算操作,若存在,则进入步骤4,若不存在,则第k级解析单元向第k级表达式缓存单元传输计算完成信号,第k级表达式缓存单元接收到计算完成信号后将第k级表达式缓存单元中最新缓存的当前计算结果作为执行完全部计算操作的表达式计算结果传输至存取控制模块,存取控制模块将第k级表达式缓存单元传输的执行完全部计算操作的表达式计算结果传输至结果缓存模块缓存;
步骤4:第k级解析单元根据第k级的数据结构表格确定当前待执行的计算操作所需的操作数,第k级解析单元根据当前待执行的计算操作所需的操作数从第k级表达式缓存单元中读取相应的操作数,第k级解析单元获取当前待执行的计算操作信息,第k级解析单元将当前待执行的计算操作信息传输至分发单元;
步骤5:分发单元根据接收到的计算操作信息分析第k级解析单元所请求执行的计算操作,根据第k级解析单元所请求执行的计算操作确定目标计算单元,并将第k级解析单元的当前待执行的计算操作信息传输至目标计算单元,同时分发单元传输计算授权信号至第k级解析单元;
步骤6:目标计算单元根据当前待执行的计算操作信息获取当前待执行计算操作的操作数并执行相应的计算操作,获取当前计算结果并传输至第k级表达式缓存单元;
步骤7:第k级表达式缓存单元将当前计算结果缓存,并根据当前计算结果更新第k级表达式缓存单元的计算表达式,返回步骤3;
其中,k为小于或等于M且大于0的整数。
9.根据权利要求8所述的并行运算加速系统的运行方法,其特征在于,当并行运算加速系统在执行步骤3至步骤7的过程中,并行运算加速系统同时也在执行步骤2;所述步骤2还包括:当M级并行的表达式缓存单元中不存在处于待存储状态的表达式缓存单元,则存取控制单元重复判断M级并行的表达式缓存单元中是否存在处于待存储状态的表达式缓存单元;当M级并行的表达式缓存单元存在一个以上的表达式缓存单元处于待存储状态,则存储控制单元按照检测到表达式缓存单元处于待存储状态的先后顺序从操作数缓存模块中先后读取一组操作数并先后传输至相应的处于待存储状态的表达式缓存单元;其中,所述处于待存储状态的表达式缓存单元在接收到存取控制单元传输的一组操作数后由处于待存储状态转换为处于已存储状态。
10.根据权利要求9所述的并行运算加速系统的运行方法,其特征在于,所述步骤3还包括:第k级解析单元向第k级表达式缓存单元传输计算完成信号,同时,第k级解析单元将其内部的数据结构表格更新为初始数据结构表格;当第k级表达式缓存单元将执行完全部计算操作的表达式计算结果传输至存取控制模块后,第k级表达式缓存单元由已存储状态转换为待存储状态,同时第k级表达式缓存单元的计算表达式更新为第k级的初始计算表达式;其中,所述初始数据结构表格是指解析单元依据对应一级表达式缓存单元的初始表达式组织的数据结构表格。
11.根据权利要求8所述的并行运算加速系统的运行方法,其特征在于,所述步骤5具体包括:分发单元根据接收到的计算操作信息分析第k级解析单元所请求执行的计算操作,将第k级所请求执行的计算操作与分发单元内部配置的N级计算单元所对应执行的计算操作进行匹配,从N级计算单元中筛选出可执行第k级解析单元所请求执行的计算操作的至少一级的计算单元,分发单元结合可执行第k级解析单元所请求执行的计算操作的至少一级的计算单元的空闲状态信号,确定可执行第k级解析单元所请求执行的计算操作的至少一级的计算单元中传输成本最低且处于空闲状态的一级计算单元作为目标计算单元,分发单元将第k级解析单元的当前待执行的计算操作信息传输至目标计算单元,同时分发单元传输计算授权信号至第k级解析单元;其中,所述传输成本最低是指在分发单元将当前待执行的计算操作信息传输至该一级计算单元所需时间最短且占用的系统资源最少。
12.根据权利要求11所述的并行运算加速系统的运行方法,其特征在于,所述步骤5还包括:第k级解析单元接收到分发单元传输的计算授权信号后,更新第k级解析单元内部的数据结构表格信息。
13.根据权利要求12所述的并行运算加速系统的运行方法,其特征在于,所述更新第k级解析单元内部的数据结构表格,具体包括:将所述计算授权信号对应的计算操作信息包含的操作数和操作符在数据结构表格中所在行信息替换为一行操作数信息;其中,所述替换为一行操作数信息,是指将所述计算操作信息对应的当前计算结果以代号形式作为操作数,相应更新于数据结构表格中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110820916.1A CN113535638B (zh) | 2021-07-20 | 2021-07-20 | 一种并行运算加速系统及其运行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110820916.1A CN113535638B (zh) | 2021-07-20 | 2021-07-20 | 一种并行运算加速系统及其运行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113535638A true CN113535638A (zh) | 2021-10-22 |
CN113535638B CN113535638B (zh) | 2022-11-15 |
Family
ID=78100527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110820916.1A Active CN113535638B (zh) | 2021-07-20 | 2021-07-20 | 一种并行运算加速系统及其运行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113535638B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106940815A (zh) * | 2017-02-13 | 2017-07-11 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
CN108197705A (zh) * | 2017-12-29 | 2018-06-22 | 国民技术股份有限公司 | 卷积神经网络硬件加速装置及卷积计算方法及存储介质 |
US20180315399A1 (en) * | 2017-04-28 | 2018-11-01 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
US20180322606A1 (en) * | 2017-05-05 | 2018-11-08 | Intel Corporation | Data parallelism and halo exchange for distributed machine learning |
CN109785905A (zh) * | 2018-12-18 | 2019-05-21 | 中国科学院计算技术研究所 | 一种面向基因比对算法的加速装置 |
CN111930681A (zh) * | 2019-05-13 | 2020-11-13 | 中科寒武纪科技股份有限公司 | 一种计算装置及相关产品 |
CN112232517A (zh) * | 2020-09-24 | 2021-01-15 | 苏州浪潮智能科技有限公司 | 一种人工智能加速引擎和人工智能处理器 |
-
2021
- 2021-07-20 CN CN202110820916.1A patent/CN113535638B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106940815A (zh) * | 2017-02-13 | 2017-07-11 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
US20180315399A1 (en) * | 2017-04-28 | 2018-11-01 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
US20180322606A1 (en) * | 2017-05-05 | 2018-11-08 | Intel Corporation | Data parallelism and halo exchange for distributed machine learning |
CN108197705A (zh) * | 2017-12-29 | 2018-06-22 | 国民技术股份有限公司 | 卷积神经网络硬件加速装置及卷积计算方法及存储介质 |
CN109785905A (zh) * | 2018-12-18 | 2019-05-21 | 中国科学院计算技术研究所 | 一种面向基因比对算法的加速装置 |
CN111930681A (zh) * | 2019-05-13 | 2020-11-13 | 中科寒武纪科技股份有限公司 | 一种计算装置及相关产品 |
CN112232517A (zh) * | 2020-09-24 | 2021-01-15 | 苏州浪潮智能科技有限公司 | 一种人工智能加速引擎和人工智能处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN113535638B (zh) | 2022-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107957976B (zh) | 一种计算方法及相关产品 | |
CN111176725B (zh) | 数据处理方法、装置、设备和存储介质 | |
CN111142938B (zh) | 一种异构芯片的任务处理方法、任务处理装置及电子设备 | |
CN110489428B (zh) | 多维稀疏矩阵压缩方法、解压缩方法、装置、设备及介质 | |
US10917361B2 (en) | Data processing apparatus and terminal | |
CN107957977B (zh) | 一种计算方法及相关产品 | |
CN107957975B (zh) | 一种计算方法及相关产品 | |
CN111625325A (zh) | 基于批数据的ai芯片片上网络调度方法和装置 | |
CN113535638B (zh) | 一种并行运算加速系统及其运行方法 | |
CN108108189B (zh) | 一种计算方法及相关产品 | |
CN111914987A (zh) | 基于神经网络的数据处理方法及装置、设备和可读介质 | |
EP1149341A1 (en) | Cache memory | |
CN1335562A (zh) | 判优器及其总线系统 | |
CN113535637B (zh) | 一种运算加速单元及其运行方法 | |
CN111679788B (zh) | 一种带有辅助计算功能的nand存储器 | |
CN112597080B (zh) | 读请求控制装置及方法以及存储器控制器 | |
CN110618966A (zh) | 一种报文的处理方法、装置及电子设备 | |
CN114328595B (zh) | 一种数据查询方法、装置、电子设备及存储介质 | |
CN116483536B (zh) | 数据调度方法、计算芯片及电子设备 | |
CN113703976B (zh) | 一种fpga资源分配方法、装置、设备及可读存储介质 | |
CN112396186B (zh) | 执行方法、装置及相关产品 | |
CN113139798B (zh) | 基因测序流程管理控制方法及系统 | |
CN214067780U (zh) | 一种多处理器的图像处理加速板卡及系统 | |
CN116401045A (zh) | 一种对msix中断向量弹性池化管理的方法及装置 | |
CN117724656A (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 |