CN113535637A - 一种新型运算加速单元及其运行方法 - Google Patents

一种新型运算加速单元及其运行方法 Download PDF

Info

Publication number
CN113535637A
CN113535637A CN202110819551.0A CN202110819551A CN113535637A CN 113535637 A CN113535637 A CN 113535637A CN 202110819551 A CN202110819551 A CN 202110819551A CN 113535637 A CN113535637 A CN 113535637A
Authority
CN
China
Prior art keywords
unit
computing
calculation
executed
operand
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
Application number
CN202110819551.0A
Other languages
English (en)
Other versions
CN113535637B (zh
Inventor
常子奇
赵旺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Yiweixing Technology Co ltd
Zhuhai Amicro Semiconductor Co Ltd
Original Assignee
Zhuhai Yiweixing Technology Co ltd
Zhuhai Amicro Semiconductor Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhuhai Yiweixing Technology Co ltd, Zhuhai Amicro Semiconductor Co Ltd filed Critical Zhuhai Yiweixing Technology Co ltd
Priority to CN202110819551.0A priority Critical patent/CN113535637B/zh
Publication of CN113535637A publication Critical patent/CN113535637A/zh
Application granted granted Critical
Publication of CN113535637B publication Critical patent/CN113535637B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System 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/781On-chip cache; Off-chip memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System 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/7817Specially adapted for signal processing, e.g. Harvard architectures
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开一种新型运算加速单元及其运行方法,所述新型运算加速单元包括操作数缓存模块、结果缓存模块、控制模块和计算模块;控制模块包括存取控制单元、M级并行的待计算操作数缓存单元、M级并行的解析单元和分发单元,控制模块基于分发单元将M级并行的解析单元输出的计算操作信息分配至计算模块执行,计算模块包括N级并行的计算单元,N级并行的计算单元输出的当前计算结果传输至控制模块的分发单元进行统一分配。本发明的加速单元结构便于裁剪可适应不同计算需求,实现使用较少的运算资源完成复杂的混合运算,大幅度的减少加速模块总线部分所占设计面积,降低芯片的硬件成本。

Description

一种新型运算加速单元及其运行方法
技术领域
本发明涉及集成电路领域,具体涉及一种新型运算加速单元及其运行方法。
背景技术
随着科技的飞速发展,越来越多的技术领域,如人工智能、安全运算等都涉及大批量数据的运算。目前针对大批量数据进行相同计算操作的需求越来越多。对于这些大运算量领域,为了提高数据的处理速度和处理能力,通常需要控制多个计算单元同时进行工作,而在人工智能、安全运算等领域,通常要求计算速度快、时延小、效率高,因此如何提高混合运算的效率一直是加速芯片设计的目标。目前现有的大运算量的运算加速单元存在面对多样的计算需求时适应性较差的局限性,尤其是对于混合运算的计算需求,而如何在提高局限性的同时将加速芯片的面积和功耗协调好是目前现有技术有待解决的问题。
发明内容
为解决上述问题,本发明提供了一种新型运算加速单元及其运行方法,本发明的新型运算加速单元的结构便于裁剪以适应不同计算需求,解决了运算加速单元面对多样计算需求的适应性较差的局限性问题,实现使用较少的运算资源完成复杂的混合运算,大幅度的减少加速模块总线部分所占设计面积,降低芯片的硬件成本。本发明的具体技术方案如下:
一种新型运算加速单元,所述新型运算加速单元包括:操作数缓存模块,用于存储待执行计算的操作数;结果缓存模块,用于存储完成全部计算操作的表达式计算结果;控制模块,包括存取控制单元、M级并行的待计算操作数缓存单元、M级并行的解析单元和分发单元,所述存取控制单元的一端分别与M级并行的待计算操作数缓存单元的一端连接,所述存取控制单元的另一端分别与所述操作数缓存模块和所述结果缓存模块连接,每一级待计算操作数缓存单元的另一端与对应一级的解析单元的一端连接,所述分发单元的一端分别与M级并行的解析单元的另一端连接,所述分发单元的另一端与所述计算模块的N级并行的计算单元连接;计算模块,包括N级并行的计算单元,用于接收控制模块传输的待执行计算操作信息并执行相应计算操作,将计算结果输出至控制模块的分发单元;其中,第k级的解析单元为第k级待计算操作数缓存单元的对应一级的解析单元;N为大于或等于2的整数,M为大于或等于2的整数,k为小于或等于M且大于0的整数。
与现有技术相比,本技术方案的新型运算加速单元基于控制模块将复杂计算分步骤分发到计算单元中计算,基于控制单元中的分发单元实现M级解析单元的计算操作信息的分配与计算模块输出的计算结果的分配,使得该新型运算加速单元支持计算结果的乱序分配,也支持计算结果的按序分配,大幅度的减少加速模块总线部分所占设计面积,降低芯片的硬件成本。
进一步地,所述存取控制单元,用于从操作数缓存模块中读取至少一组待执行计算的操作数,还用于将控制模块中执行完全部计算操作的完整计算结果传输至所述结果缓存模块;所述存取控制单元包括:M个完整计算结果输入端、完整计算结果输出端、M个存储状态信号输入端、M+1个存取状态信号输出端、操作数输入端和M个操作数输出端;所述M个完整计算结果输入端,用于实现所述存取控制单元接收所述M级并行的待计算操作数缓存单元输出的执行完全部计算操作的完整计算结果;所述完整计算结果输出端,用于实现所述存取控制单元将接收的执行完全部计算操作的完整计算结果传输至所述结果缓存模块;所述M个存储状态信号输入端,用于实现所述存取控制单元接收所述M级并行的待计算操作数缓存单元的M个存储状态信号,所述存取控制单元根据每一级待计算操作数缓存单元的存储状态信号判断是否向该一级待计算操作数缓存单元输入操作数;所述M+1个存取状态信号输出端,用于实现所述存取控制单元向M个待计算操作数缓存单元和操作数缓存模块传输存取状态信号;所述操作数输入端,用于实现所述存取控制单元从所述操作数缓存模块读取至少一组的待执行计算操作的操作数;所述M个操作数输出端,用于实现所述存取控制单元将从操作数缓存模块中读取的至少一组的待执行计算操作的操作数传输至所述M级并行的待计算操作数缓存单元中的相应一级;其中,所述存储状态信号用于表征待计算操作数缓存单元处于待存储状态、待计算操作数存储饱和状态、完整计算结果存储饱和状态或存储饱和状态;所述存取状态信号是用于表征存取控制单元是否达到预设存取阈值的信号,当存取控制单元达到预设存取阈值,存取控制单元处于存取饱和状态,当存取控制单元未达到预设存取阈值,存取控制单元处于待存取状态。本技术方案中使用存取控制单元以实现对M级待计算操作数缓存单元中操作数输入的控制,使得该运算加速单元能够实现操作数的预缓存,提高运算加速单元的运算速度和效率,且本技术方案中基于存储状态信号检测M个待计算操作数缓存单元的存储状态,避免出现待计算操作数缓存单元已达到容纳阈值,但存取控制单元仍向其传输操作数的情况,存取控制单元中具备一定容纳空间以存储执行完全部计算操作的完整计算结果,使得存取控制单元将完整计算结果传输至结果缓存单元时能够按照其接收完整计算结果的顺序传输,还可以按照乱序将完整计算结果传输,提高完整计算结果传输的灵活性。
进一步地,所述M级并行的待计算操作数缓存单元为M个两两之间不存在数据和/或信号传输的待计算操作数缓存单元,每一级待计算操作数缓存单元用于存储一组或一组以上的待执行计算操作的操作数;每一级待计算操作数缓存单元包括:2个存储状态信号输出端、存取状态信号输入端、操作数输入端、操作数输出端、完整计算结果输入端和完整计算结果输出端;所述2个存储状态信号输出端,用于实现所述待计算操作数缓存单元分别向所述存取控制单元和所述对应一级的解析单元传输存储状态信号;所述存取状态信号输入端,用于实现所述待计算操作数缓存单元接收所述存取控制单元传输的存取状态信号,所述待计算操作数缓存单元根据存取状态信号判断是否向所述存取控制单元传输完整计算结果;所述操作数输入端,用于实现所述待计算操作数缓存单元接收所述存取控制单元传输的至少一组待执行计算操作的操作数;所述操作数输出端,用于实现所述待计算操作数缓存单元将一组待执行计算操作的操作数传输至所述解析单元;所述完整计算结果输入端,用于实现所述待计算操作数缓存单元接收所述解析单元传输的执行完全部计算操作的完整计算结果;所述完整计算结果输出端,用于实现所述待计算操作数缓存单元将接收到的所述执行完全部计算操作的完整计算结果传输至所述结果缓存模块。本技术方案的新型运算加速单元通过设置M级并行的待计算操作数缓存单元,使得每一级结构都能实现对待计算操作数的预缓存,以便于后续解析单元从待计算操作数缓存单元中读取操作数,提高运算加速单元的运算效率。
进一步地,所述M级并行的解析单元包括M个两两之间不存在数据和/或信号传输的解析单元,每一级解析单元内部被配置有数据结构表格信息;每一级解析单元包括操作数输入端、存储状态信号输入端、计算授权信号输入端、当前计算结果输入端、完整计算结果输出端和计算操作信息输出端;所述操作数输入端,用于实现所述解析单元从对应一级的待计算操作数缓存单元中读取一组待执行计算操作的操作数;所述存储状态信号输入端,用于实现所述解析单元接收对应一级的待计算操作数缓存单元的存储状态信号;所述计算授权信号输入端,用于实现所述解析单元接收所述分发单元传输的计算授权信号;所述当前计算结果输入端,用于实现所述解析单元接收所述分发单元传输的执行完当前计算结果;所述完整计算结果输出端,用于实现所述解析单元将执行完全部计算操作的完整计算结果传输至所述对应一级的待计算操作数缓存单元;所述计算操作信息输出端,用于实现所述解析单元将当前待执行的计算操作信息传输至所述分发单元;其中,所述当前计算结果是指执行完当前待执行的计算操作所获取的计算结果;所述完整计算结果是指执行完该解析单元中全部待执行的计算操作后所获取的计算结果;所述计算授权信号是指所述分发单元基于该一级解析单元传输的当前待执行的计算操作信息,在计算模块中存在符合的处于空闲状态的计算单元时反馈的授权信号,以表示所述当前待执行的计算操作信息能够被执行;第k级待计算操作数缓存单元为第k级解析单元的对应一级的待计算操作数缓存单元,k为小于或等于N的正整数。本技术方案中的解析单元存在一一对应的待计算操作数缓存单元,新型运算加速单元基于解析单元实现对混合运算的分步骤运算,解析单元将混合运算进行步骤拆分,将每一步骤作为独立的计算操作信息输出至分发单元,通过步骤拆解的方式实现本新型运算加速单元对混合运算的支持,提高本新型运算加速单元的运算灵活性,同时降低本新型运算加速单元混合运算结果的鲁棒性。
进一步地,所述数据结构表格信息包括:有效标识符列,用于标识数据结构表格信息中每一行是否存在有效的表达式内容;单双目标识符列,用于标识操作符为单目操作符,或者为双目操作符,以确定该操作符对应需要的执行的操作数数量;操作数列,用于存储读取的一组待执行计算操作的操作数;操作符列,用于存储待执行的操作符;操作标识符列,用于标识数据结构表格信息中存储有有效的表达式内容的每一行的内容为操作数或操作符;其中,所述操作符列、有效标识符列、单双目标识符列和操作标识符列的信息是由用户根据该一级解析单元所需执行的逆波兰表达式相应配置;所述有效的表达式内容包括待执行的操作数和操作符。本技术方案的解析单元内部由用户配置有上述信息,以实现混合运算的分步骤计算,通过用户对混合运算的操作符和操作数的分解,得到数据结构表格信息,使得解析单元能够对多组操作数进行同一表达式的混合运算,通过信息配置的形式提高新型运算加速单元对多样的运算需求的适配性。
进一步地,所述N级并行的计算单元为N个两两之间不存在数据或信号传输的计算单元,每一级计算单元被配置为执行相应一种计算操作,每一级计算单元包括计算操作信息输入端、空闲状态信号输出端和当前计算结果输出端;所述计算操作信息输入端,用于实现所述计算单元接收所述分发单元传输的计算操作信息;所述空闲状态信号输出端,用于实现所述计算单元将该一级计算单元的空闲状态信号传输至所述分发单元;所述当前计算结果输出端,用于实现所述计算单元将根据计算操作信息执行计算操作后获取的计算结果作为当前计算结果传输至所述分发单元;其中,所述计算操作信息包括一个以上的待计算操作数和待执行的计算操作;所述空闲状态信号用于表征计算单元处于空闲状态或非空闲状态;所述空闲状态是指计算单元处于能够接收待执行计算操作信息并执行相应计算操作的状态。本技术方案中计算模块包含N个计算单元,每一个计算单元都有一一对应计算操作功能,该计算模块结果具有便于剪裁、能够良好的适应各种复杂度的计算需求的优势。
进一步地,所述分发单元内部配置有计算模块中N级计算单元所分别对应执行的计算操作,所述分发单元包括M个计算授权信号输出端、M个当前计算结果输出端、M个计算操作信息输入端、N个计算操作信息输出端、N个空闲状态信号输入端和N个当前计算结果输入端;所述M个计算授权信号输出端,用于实现所述分发单元向所述M级并行的解析单元传输相应的计算授权信号;所述M个当前计算结果输出端,用于实现所述分发单元向所述M级并行的解析单元传输相应的当前计算结果;所述M个计算操作信息输入端,用于实现所述分发单元接收所述M级并行的解析单元传输的计算操作信息;所述N个计算操作信息输出端,用于实现所述分发单元向所述N级并行的计算单元传输相应的计算操作信息;所述N个空闲状态信号输入端,用于实现所述分发单元接收所述N级并行的计算单元的空闲状态信号;所述N个当前计算结果输入端,用于实现所述分发单元接收所述N级并行的计算单元传输的当前计算结果。本技术方案的新型运算加速单元基于所述分发单元实现对M级解析单元输出的计算操作信息进行合理分配至相应的N级并行的计算单元中,且对计算模块输出的计算结果输出至对应的解析单元中,实现计算结果的对应分配,基于分发单元简化了N级计算单元分别与M级解析单元之间的数据和信号的传输,降低运算加速单元的芯片面积和成本。
本发明还公开了一种新型运算加速单元的运行方法,所述新型运算加速单元的运行方法包括:步骤1:存取控制单元根据接收的M个存储状态信号分别判断M级并行的待计算操作数缓存单元中是否存在处于待存储状态或完整计算结果饱和状态的待计算操作数缓存单元,若存在第k级待计算操作数缓存单元处于待存储状态或完整计算结果饱和状态,则存取控制单元从操作数缓存模块中读取至少一组待计算操作数传输至第k级待计算操作数缓存单元;其中,k为小于或等于M且大于0的整数。步骤2:解析单元从对应一级的待计算操作数缓存单元中读取一组待计算操作数存储入数据结构表格信息中的操作数列,然后进入步骤3;步骤3:解析单元根据数据结构表格信息判断是否存在待执行的计算操作,若不存在,则进入步骤8,若存在,则解析单元根据数据结构表格信息确定待执行计算操作信息,解析单元将待执行计算操作信息传输至分发单元;步骤4:分发单元基于接收到的待执行计算操作信息确定待执行的计算操作,分发单元确定具备执行所述待执行的计算操作的功能的计算单元,并将具备执行所述待执行的计算操作的功能的计算单元中处于空闲状态的一个计算单元作为目标计算单元,分发单元将待执行计算操作信息传输至目标计算单元,同时分发单元向所述待执行计算操作信息对应一级的解析单元传输计算授权信号;步骤5:目标计算单元基于接收的待执行计算操作信息,执行相应的计算操作,获取当前计算结果,并将当前计算结果传输至分发单元;步骤6:分发单元将接收的当前计算结果传输至该一当前计算结果对应一级的解析单元;步骤7:解析单元基于接收的当前计算结果更新数据结构表格信息,返回步骤3;步骤8:确定为该解析单元已完成全部计算操作,解析单元将完整计算结果传输至对应一级的待计算操作数缓存单元,对应一级的待计算操作数缓存单元将该完整计算结果传输至存取控制单元,存取控制单元将该完整计算结果传输至结果缓存模块。
与现有技术相比,本技术方案的新型运算加速单元的运行方法通过解析单元内部配置的数据结构表格信息实现对复杂的混合运算进行步骤拆分,降低运算难度,使得新型运算加速单元能够用较少的计算资源实现复杂混合运算,同时计算模块中全部计算单元的空闲状态信号由控制模块的分发单元统一检测,便于计算操作信息的分配,提高运算效率和计算资源利用率,在最优情况下能够实现百分之一百的计算资源利用率。
进一步地,所述步骤3具体包括:步骤301:将第一预设行数i的初始值预设为1,第二预设行数j的初始值预设为0,进入步骤302;步骤302:将第一预设行数i的值增加一行,进入步骤303;步骤303:判断数据结构表格信息中第一预设行数i所在行是否存在有效的表达式内容,若不存在,则进入步骤8,若存在,则进入步骤304;步骤304:判断数据结构表格信息中第一预设行数i所在行是否存在操作符,若不存在,则进入步骤305,若存在,则进入步骤306;步骤305:将第二预设行数j的值增加一行,返回步骤302;步骤306:判断数据结构表格信息中第一预设行数i所在行的操作符为单目操作符或双目操作符,若为单目操作符,则进入步骤307,若为双目操作符,则进入步骤308;步骤307:判断第二预设行数j的值是否大于0,若是,则进入步骤309,若否,则返回步骤302;步骤308:判断第二预设行数j的值是否大于1,若是,则进入步骤309,若否,则返回步骤302;步骤309:确定第一预设行数i所在行的操作符为待执行操作符,确定第二预设行数j所在行的操作数以及第二预设行数j的前一行的操作数为待执行操作数,进入步骤310;步骤310:基于所述待执行操作符确定待执行的计算操作,基于待执行的计算操作和待执行操作符,获取待执行计算操作信息,解析单元将待执行计算操作信息传输至分发单元。本技术方案通过对数据结构表格信息中的信息逐行进行判断,获取待执行的计算操作信息。
进一步地,所述步骤4还包括:当所述具备执行所述待执行的计算操作的功能的计算单元中不存在处于空闲状态的计算单元时,则分发单元等待所述具备执行所述待执行的计算操作的功能的计算单元中存在处于空闲状态的计算单元时,再将最先处于空闲状态的具备执行所述待执行的计算操作的功能的计算单元作为目标计算单元,将所述待执行计算操作信息传输至所述目标计算单元,同时分发单元向所述待执行计算操作信息对应一级的解析单元传输计算授权信号。本技术方案中将处于空闲状态作为选择目标计算单元的必要条件,避免出现计算单元正在根据接收的计算操作信息执行相应计算操作时,分发单元又传输另一个计算操作信息至该计算单元从而影响计算单元的计算效率的情况。
进一步地,所述步骤5具体包括:目标计算单元基于接收的待执行计算操作信息,获取待执行计算操作信息中至少一个的待执行操作数;目标计算单元对所述至少一个的待执行操作数执行对应的计算操作,获取当前计算结果;目标计算单元将所述当前计算结果通过当前计算结果输出端传输至所述分发单元;其中,所述对应的计算操作是指该一个目标计算单元具备执行功能的计算操作。
进一步地,所述步骤7具体包括:将当前计算结果所对应的待执行计算操作信息中待执行操作符所在行和待执行操作数所在行的全部内容,替换更新为一行由当前计算结果作为操作数的内容;相应更新所述由当前计算结果作为操作数的内容的一行的操作符内容和操作标识符内容,完成数据结构表格信息的更新,返回步骤3。本技术方案中在执行完解析单元的一次计算操作信息获取当前计算结果后,对数据结构表格信息进行更新,将已执行的操作数和操作符所在行删除,简化下一计算操作信息的获取流程。
进一步地,所述步骤8具体包括:当数据结构表格信息中不存在有效的表达式内容时,确定为该解析单元已完成全部计算操作;将解析单元中最新接收的当前计算结果作为完整计算结果,解析单元等待对应一级的待计算操作数缓存单元处于待存储状态时,将该完整计算结果传输至对应一级的待计算操作数缓存单元;对应一级的待计算操作数缓存单元等待存取控制单元处于待存取状态时,将该完整计算结果传输至存取控制单元;存取控制单元将该完整计算结果传输至结果缓存模块。本技术方案通过判断数据结构表格信息中是否存在有效的表达式内容以确定解析单元是否完成一组待计算操作数的全部计算操作,然后进行完整计算结果从控制单元传输至结果缓存模块的流程,根据存取控制单元和待计算操作数缓存单元的存取状态信号和存储状态信号判断是否将完整计算结果传输,能够避免出现传输超载的情况。
进一步地,所述步骤8还包括:当解析单元将完整计算结果传输至对应一级的待计算操作数缓存单元后,解析单元返回执行步骤2,同时对应一级的待计算操作数缓存单元等待存取控制单元处于待存取状态时,将完整计算结果传输至存取控制单元。本技术方案中解析单元将完整计算结果传输至待计算操作数缓存单元后,重新从待计算操作数缓存单元中提取一组新的待计算操作数,以进入下一组待计算操作数的计算流程,实现计算结果传输流程与计算操作信息获取流程的同步进行,提高了新型运算加速单元的运算与传输效率。
附图说明
图1为本发明一种实施例所述新型运算加速单元的结构示意图。
图2为本发明一种实施例所述存取控制单元的端口示意图。
图3为本发明一种实施例所述待计算操作数缓存单元的端口示意图。
图4为本发明一种实施例所述解析单元的端口示意图。
图5为本发明一种实施例所述分发单元的端口示意图。
图6为本发明一种实施例所述计算单元的端口示意图。
图7为本发明一种实施例所述新型运算加速单元的运行方法的流程示意图。
图8为本发明一种实施例所述新型运算加速单元的运行方法的步骤3的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清晰,以下将结合附图及实施例,对本发明进行描述和说明。应当理解,下面所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。此外,还可以理解的是,对本领域的普通技术人员而言,在本发明揭露的技术内容上进行一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
除非另作定义,本发明所涉及的技术术语或科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等词语并不表示数量限制,可以表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含,如:包含了一系列步骤或模块的过程、方法、系统产品或者设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或模块,或者还可以包括对于这些过程、方法、产品或设备固有的其他步骤或单元。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是用于区别类似的对应,不代表针对对象的特定排序。
本发明的一种实施例中提供一种新型运算加速单元,该新型运算加速单元包括操作数缓存模块、控制模块、计算模块和结果缓存模块。其中,所述操作数缓存模块,用于存储待执行计算操作的一批操作数,一批操作数包括有一组以上的操作数;所述控制模块,包括存取控制单元、M级并行的待计算操作数缓存单元、M级并行的解析单元和分发单元,用于实现对待执行计算的混合运算进行分步拆解,以拆分成一次以上的计算步骤,降低复杂的混合运算难度;所述计算模块包括N级并行的计算单元,用于接收控制模块传输的计算操作信息并执行相应计算操作,输出相应计算结果至控制模块的分发单元。其中,N为大于或等于2的整数,M为大于或等于2的整数。
如图1所示,所述操作数缓存模块的一端与所述控制模块的存取控制单元的一端连接,实现待计算操作数的传输;所述存取控制单元的另一端与所述M级并行的待计算操作数缓存单元的一端分别连接,实现存取控制单元将操作数传输至M级并行的待计算操作数缓存单元预缓存;所述M级并行的待计算操作数缓存单元的另一端与所述M级并行的解析单元的一端按照一一对应关系连接,实现解析单元向待计算操作数缓存单元调用操作数;所述M级并行的解析单元的另一端与所述分发单元的一端连接,实现解析单元向分发单元传输计算操作信息;所述分发单元的另一端与所述计算模块的N级并行的计算单元的一端连接,以实现所述分发单元向N级并行的计算单元传输计算操作信息,并实现所述分发单元接收所述N级并行的计算单元反馈的计算结果。需要说明的是,每一级待计算操作数缓存单元都有一一对应的一级解析单元,如:第k级待计算操作数缓存单元与第k级解析单元存在对应关系,k为小于或等于M且大于0的整数;图1中模块与模块、单元与单元或模块与单元之间连接的箭头仅代表两者之间存在至少一种信息或信号的传输,并不代表两者之间仅存在一种信息或信号的传输,且图中箭头的方向代表至少一种信息或信号的传输方向。
所述存取控制单元,用于从操作数缓存模块中读取至少一组待执行计算的操作数,还用于将控制模块中执行完全部计算操作的完整计算结果传输至所述结果缓存模块;如图2所示,所述控制模块的存取控制单元的端口包括M个完整计算结果输入端、完整计算结果输出端、M个存储状态信号输入端、M+1个存取状态信号输出端、操作数输入端和M个操作数输出端;需要说明的是,图2中将同一种信息或信号端口简化为一个端口表示,但是可以理解地,在实际的新型运算加速单元的生产中是按照其端口文字标注的M个/M+1个进行设计生产。
具体地,所述M个完整计算结果输入端,用于实现所述存取控制单元接收所述M级并行的待计算操作数缓存单元输出的执行完全部计算操作的完整计算结果,通过M个完整结果输入端接收M级并行的待计算操作缓存单元输出的完整计算结果,能够避免出现M级并行的待计算操作缓存单元中多级同时传输完整计算结果造成传输堵塞的情况;所述完整计算结果输出端,用于实现所述存取控制单元将接收的执行完全部计算操作的完整计算结果传输至所述结果缓存模块;
所述M个存储状态信号输入端,用于实现所述存取控制单元接收所述M级并行的待计算操作数缓存单元的M个存储状态信号,所述存取控制单元根据每一级待计算操作数缓存单元的存储状态信号判断是否向该一级待计算操作数缓存单元输入操作数;所述存储状态信号用于表征每一级待计算操作数缓存单元所处的存储状态,所述待计算操作数缓存单元的存储状态包括待存储状态、待计算操作数存储饱和状态、完整计算结果存储饱和状态和存储饱和状态;所述M+1个存取状态信号输出端,用于实现所述存取控制单元向M个待计算操作数缓存单元和操作数缓存模块传输存取状态信号,所述存取状态信号用于表征存取控制单元的存取状态,所述存取控制单元的存取状态包括待存取状态和存取饱和状态,当存取控制单元达到预设存取容纳阈值时,存取控制单元处于存取饱和状态,存取控制单元停止从操作数缓存模块中读取操作数,同时停止接收M级并行的待计算操作数缓存单元传输的完整计算结果;所述操作数输入端,用于实现所述存取控制单元从所述操作数缓存模块读取至少一组的待执行计算操作的操作数;所述M个操作数输出端,用于实现所述存取控制单元将从操作数缓存模块中读取的至少一组的待执行计算操作的操作数传输至所述M级并行的待计算操作数缓存单元中的相应一级。
优选地,所述存取控制单元将其存取状态信号传输至所述操作数缓存模块,当存取控制单元从操作数缓存模块申请读取操作数时,操作数缓存模块若根据存取控制单元的存取状态信号,检测到存取控制单元处于存取饱和状态,则操作数缓存模块拒接存取控制单元的读取申请,存取控制单元无法从操作数缓存单元中读取操作数直至存取控制单元处于待存取状态。
优选地,所述存取控制单元支持将其内部存储的完整计算结果按照其接收存储的顺序先后传输至所述结果缓存单元,所述存取控制单元也支持将其内部存储的完整计算结果乱序传输至所述结果缓存单元。
所述M级并行的待计算操作数缓存单元为M个两两之间不存在数据和/或信号传输的待计算操作数缓存单元,每一级待计算操作数缓存单元用于存储一组或一组以上的待执行计算操作的操作数;每一级待计算操作数缓存单元包含有四种存储状态,分别是待存储状态、待计算操作数存储饱和状态、完整计算结果存储饱和状态和存储饱和状态,其中,所述待存储状态表示待计算操作数缓存单元中存储的待计算操作数的数量未达到预设待计算操作数容纳阈值且存储的完整计算结果的数量也未达到预设完整计算结果容纳阈值,该待计算操作数缓存单元能够接收并存储新的待计算操作数和完整计算结果;所述待计算操作数存储饱和状态表示待计算操作数缓存单元中存储的待计算操作数的数量达到预设待计算操作数容纳阈值且存储的完整计算结果的数量未达到预设完整计算结果容纳阈值,该待计算操作数缓存单元能够接收并存储新的完整计算结果,同时,该待计算操作数缓存单元停止接收新的待计算操作数;所述完整计算结果存储饱和状态表示待计算操作数缓存单元中存储的完整计算结果的数量达到预设完整计算结果容纳阈值且存储的待计算操作数的数量未达到预设待计算操作数容纳阈值,该待计算操作数缓存单元能够接收并存储新的待计算操作数,同时,该待计算操作数缓存单元停止接收新的完整计算结果;所述存储饱和状态表示待计算操作数缓存单元中存储的待计算操作数的数量达到预设待计算操作数容纳阈值且存储的完整计算结果的数量也达到预设完整计算结果容纳阈值,该待计算操作数缓存单元停止接收新的待计算操作数和新的完整计算结果。
具体地,如图3所示,每一级待计算操作数缓存单元包括:2个存储状态信号输出端、存取状态信号输入端、操作数输入端、操作数输出端、完整计算结果输入端和完整计算结果输出端;所述2个存储状态信号输出端,分别与存取控制单元的存储状态信号输入端和对应一级解析单元的存储状态信号输入端连接,用于实现所述待计算操作数缓存单元分别向所述存取控制单元和所述对应一级的解析单元传输存储状态信号,所述存取控制单元依据每一级待计算操作数缓存单元的存储状态信号判断是否向该一级待计算操作数缓存单元传输待计算操作数,所述解析单元依据对应一级待计算操作数缓存单元的存储状态信号判断是否向该一级待计算操作数缓存单元传输完整计算结果,避免出现待计算操作数缓存单元已饱和,但解析单元仍向待计算操作数缓存单元传输完整计算结果的情况;所述存取状态信号输入端,与存取控制单元的对应一个存取状态信号输出端连接,用于实现所述待计算操作数缓存单元接收所述存取控制单元传输的存取状态信号,所述待计算操作数缓存单元根据存取状态信号判断是否向所述存取控制单元传输完整计算结果;所述操作数输入端,与存取控制单元的对应一个操作数输出端连接,用于实现所述待计算操作数缓存单元接收所述存取控制单元传输的至少一组待执行计算操作的操作数;所述操作数输出端,与对应一级的解析单元的操作数输入端连接,用于实现所述待计算操作数缓存单元将一组待执行计算操作的操作数传输至所述解析单元;所述完整计算结果输入端,与对应一级的解析单元的完整计算结果输出端连接,用于实现所述待计算操作数缓存单元接收所述解析单元传输的执行完全部计算操作的完整计算结果;所述完整计算结果输出端,与存取控制单元的对应一个完整计算结果输入端连接,用于实现所述待计算操作数缓存单元将接收到的所述执行完全部计算操作的完整计算结果传输至所述结果缓存模块。
所述M级并行的解析单元包括M个两两之间不存在数据和/或信号传输的解析单元,每一级解析单元内部被配置有一一对应的数据结构表格信息;需要说明的是,所述数据结构表格不是实际存在于电路的表格,而是对人工配置的信息和操作数等数据进行组织整理后获得的虚拟表格,仅存在于逻辑层面;每一级解析单元存在一一对应的一级待计算操作数缓存单元,如:第k级待计算操作数缓存单元为第k级解析单元的对应一级的待计算操作数缓存单元,k为小于或等于N的正整数。
具体地,所述数据结构表格信息包括:有效标识符列,用于标识数据结构表格信息中每一行是否存在有效的表达式内容;单双目标识符列,用于标识操作符为单目操作符,或者为双目操作符,以确定该操作符对应需要的执行的操作数数量;操作数列,用于存储读取的一组待执行计算操作的操作数;操作符列,用于存储待执行的操作符;操作标识符列,用于标识数据结构表格信息中存储有有效的表达式内容的每一行的内容为操作数或操作符;其中,所述操作符列、有效标识符列、单双目标识符列和操作标识符列的信息是由用户根据该一级解析单元所需执行的逆波兰表达式相应配置;所述有效的表达式内容包括待执行的操作数和操作符。
具体地,如图4所示,每一级解析单元包括操作数输入端、存储状态信号输入端、计算授权信号输入端、当前计算结果输入端、完整计算结果输出端和计算操作信息输出端;所述操作数输入端,与对应一级的待计算操作数缓存单元的操作数输出端连接,用于实现所述解析单元从对应一级的待计算操作数缓存单元中读取一组待执行计算操作的操作数;所述存储状态信号输入端,与对应一级的待计算操作数缓存单元的存储状态信号输出端连接,用于实现所述解析单元接收对应一级的待计算操作数缓存单元的存储状态信号;
所述计算授权信号输入端,与分发单元的对应一个计算授权信号输出端连接,用于实现所述解析单元接收所述分发单元传输的计算授权信号,所述计算授权信号是指所述分发单元基于该一级解析单元传输的当前待执行的计算操作信息,在计算模块符合计算条件的目标计算单元时反馈的授权信号,以表示所述当前待执行的计算操作信息能够被执行;所述当前计算结果输入端,与分发单元的对应一个当前计算结果输出端连接,用于实现所述解析单元接收所述分发单元传输的执行完当前计算结果,所述当前计算结果是指执行完当前待执行的计算操作所获取的计算结果;所述完整计算结果输出端,与对应一级的待计算操作数缓存单元的完整计算结果输入端连接,用于实现所述解析单元将执行完全部计算操作的完整计算结果传输至所述对应一级的待计算操作数缓存单元,所述完整计算结果是指执行完该解析单元中全部待执行的计算操作后所获取的计算结果;所述计算操作信息输出端,与分发单元的对应一个计算操作信息输入端连接,用于实现所述解析单元将当前待执行的计算操作信息传输至所述分发单元。
所述分发单元,用于实现M级解析单元输出的计算操作信息和N级计算单元输出的当前计算结果的分发;所述分发单元内部配置有计算模块中N级计算单元所分别对应执行的计算操作,每一级计算单元具备一一对应执行的计算操作,所述计算操作可以是但不限于加法操作、乘法操作、除法操作或开根操作等,本发明通过在分发单元内部配置存储N级计算单元分别对应执行的计算操作,以便于分发单元在接收到计算操作信息后能够初步筛选出能够执行该计算操作信息的计算单元,提高新型运算加速单元的运算效率。
具体地,如图5所示,所述分发单元包括M个计算授权信号输出端、M个当前计算结果输出端、M个计算操作信息输入端、N个计算操作信息输出端、N个空闲状态信号输入端和N个当前计算结果输入端;需要说明的是,图5中将同一种信息或信号端口简化为一个端口表示,但是可以理解地,在实际的新型运算加速单元的生产中是按照其端口文字标注的M个/N个进行设计生产。所述M个计算授权信号输出端,分别与对应一级解析单元的计算授权信号输入端连接,用于实现所述分发单元向所述M级并行的解析单元传输相应的计算授权信号;所述M个当前计算结果输出端,分别与对应一级解析单元的当前计算结果输入端连接,用于实现所述分发单元向所述M级并行的解析单元传输相应的当前计算结果;所述M个计算操作信息输入端,分别与对应一级的解析单元的计算操作信息输出端连接,用于实现所述分发单元接收所述M级并行的解析单元传输的计算操作信息;所述N个计算操作信息输出端,分别与N级并行的计算单元的计算操作信息输入端连接,用于实现所述分发单元向所述N级并行的计算单元传输相应的计算操作信息;所述N个空闲状态信号输入端,分别与N级并行的计算单元的空闲状态信号输出端连接,用于实现所述分发单元接收所述N级并行的计算单元的空闲状态信号,分发单元根据N级并行的计算单元的空闲状态信号判断其是否处于空闲状态,进而确定该计算单元是否具备成为目标计算单元的必要条件;所述N个当前计算结果输入端,分别与计算模块的N级计算单元的当前计算结果输出端对应连接,用于实现所述分发单元接收所述N级并行的计算单元传输的当前计算结果。
所述N级并行的计算单元为N个两两之间不存在数据或信号传输的计算单元,每一级计算单元被配置为执行相应一种计算操作,所述计算操作可以是但不限于加法操作、乘法操作、除法操作或开根操作等。
如图6所示,每一级计算单元包括计算操作信息输入端、空闲状态信号输出端和当前计算结果输出端;所述计算操作信息输入端,与所述分发单元对应一个计算操作信息输出端连接,用于实现所述计算单元接收所述分发单元传输的计算操作信息,所述计算操作信息包括一个以上的待计算操作数和待执行的计算操作;所述空闲状态信号输出端,与所述分发单元对应一个空闲状态信号输入端连接,用于实现所述计算单元将该一级计算单元的空闲状态信号传输至所述分发单元,所述空闲状态信号用于表征计算单元处于空闲状态或非空闲状态;所述空闲状态是指计算单元处于能够接收待执行计算操作信息并执行相应计算操作的状态;所述当前计算结果输出端,与所述分发单元对应一个当前计算结果输入端连接,用于实现所述计算单元将根据计算操作信息执行计算操作后获取的计算结果作为当前计算结果传输至所述分发单元。
基于上述上述实施例,本发明的另一种实施例中,计算模块的N级并行计算单元的数量N大于控制模块中待计算操作数缓存单元和解析单元的级数M的数量,以实现更多数量的计算单元去处理相对较少的计算操作信息,使得新型运算加速单元的运算速度更快。
基于上述实施例,本发明的另一种实施例中提供了一种新型运算加速单元的运行方法,如图7所示,具体包括如下步骤:
步骤1:存取控制单元根据接收的M个存储状态信号分别判断M级并行的待计算操作数缓存单元中是否存在处于待存储状态或完整计算结果饱和状态的待计算操作数缓存单元,若存在第k级待计算操作数缓存单元处于待存储状态或完整计算结果饱和状态,则存取控制单元从操作数缓存模块中读取至少一组待计算操作数传输至第k级待计算操作数缓存单元;其中,k为小于或等于M且大于0的整数;
步骤2:解析单元从对应一级的待计算操作数缓存单元中读取一组待计算操作数存储入数据结构表格信息中的操作数列,然后进入步骤3;
步骤3:解析单元根据数据结构表格信息判断是否存在待执行的计算操作,若不存在,则进入步骤8,若存在,则解析单元根据数据结构表格信息确定待执行计算操作信息,解析单元将待执行计算操作信息传输至分发单元;
步骤4:分发单元基于接收到的待执行计算操作信息确定待执行的计算操作,分发单元确定具备执行所述待执行的计算操作的功能的计算单元,并将具备执行所述待执行的计算操作的功能的计算单元中处于空闲状态的一个计算单元作为目标计算单元,分发单元将待执行计算操作信息传输至目标计算单元,同时分发单元向所述待执行计算操作信息对应一级的解析单元传输计算授权信号,然后进入步骤5;
步骤5:目标计算单元基于接收的待执行计算操作信息,执行相应的计算操作,获取当前计算结果,并将当前计算结果传输至分发单元,然后进入步骤6;
步骤6:分发单元将接收的当前计算结果传输至该一当前计算结果对应一级的解析单元,然后进入步骤7;其中,所述当前计算结果对应一级的解析单元是指输出当前计算结果所对应的计算操作信息的一级解析单元。
步骤7:解析单元基于接收的当前计算结果更新数据结构表格信息,返回步骤3;
步骤8:确定为该解析单元已完成全部计算操作,解析单元将完整计算结果传输至对应一级的待计算操作数缓存单元,对应一级的待计算操作数缓存单元将该完整计算结果传输至存取控制单元,存取控制单元将该完整计算结果传输至结果缓存模块。
优选地,所述步骤1在所述步骤2至步骤8的执行过程中同步执行,可以理解地,步骤1为一个一直持续执行的步骤,当存取控制单元检测到存在待存储状态或完整计算结果饱和状态的待计算操作数缓存单元,则向其传输至少一组待计算操作数。
优选地,如图8所示,所述步骤3具体包括:步骤301:将第一预设行数i的初始值预设为1,第二预设行数j的初始值预设为0,进入步骤302;步骤302:将第一预设行数i的值增加一行,进入步骤303;步骤303:判断数据结构表格信息中第一预设行数i所在行是否存在有效的表达式内容,若不存在,则进入步骤8,若存在,则进入步骤304;步骤304:判断数据结构表格信息中第一预设行数i所在行是否存在操作符,若不存在,则进入步骤305,若存在,则进入步骤306;步骤305:将第二预设行数j的值增加一行,返回步骤302;步骤306:判断数据结构表格信息中第一预设行数i所在行的操作符为单目操作符或双目操作符,若为单目操作符,则进入步骤307,若为双目操作符,则进入步骤308;步骤307:判断第二预设行数j的值是否大于0,若是,则进入步骤309,若否,则返回步骤302;步骤308:判断第二预设行数j的值是否大于1,若是,则进入步骤309,若否,则返回步骤302;步骤309:确定第一预设行数i所在行的操作符为待执行操作符,确定第二预设行数j所在行的操作数以及第二预设行数j的前一行的操作数为待执行操作数,进入步骤310;步骤310:基于所述待执行操作符确定待执行的计算操作,基于待执行的计算操作和待执行操作符,获取待执行计算操作信息,解析单元将待执行计算操作信息传输至分发单元。通过对数据结构表格信息进行逐行判断,获取待执行的计算操作信息。
优选地,所述步骤4还包括:当所述具备执行所述待执行的计算操作的功能的计算单元中不存在处于空闲状态的计算单元时,则分发单元等待所述具备执行所述待执行的计算操作的功能的计算单元中存在处于空闲状态的计算单元时,再将最先处于空闲状态的具备执行所述待执行的计算操作的功能的计算单元作为目标计算单元,将所述待执行计算操作信息传输至所述目标计算单元,同时分发单元向所述待执行计算操作信息对应一级的解析单元传输计算授权信号。需要说明的是,所述待执行计算操作信息对应一级的解析单元是指输出该待执行计算操作信息的一级解析单元。
优选地,所述步骤5具体包括:目标计算单元基于接收的待执行计算操作信息,获取待执行计算操作信息中至少一个的待执行操作数;目标计算单元对所述至少一个的待执行操作数执行对应的计算操作,获取当前计算结果;目标计算单元将所述当前计算结果通过当前计算结果输出端传输至所述分发单元;其中,所述对应的计算操作是指该一个目标计算单元具备执行功能的计算操作;所述待执行操作数的数量由待执行计算操作信息中待执行操作符为单目操作符或双目操作符决定,当待执行操作符为单目操作符,则待执行操作数的数量为1,当待执行操作符为双目操作数,则待执行操作数的数量为2。
优选地,所述步骤7具体包括:将当前计算结果所对应的待执行计算操作信息中待执行操作符所在行和待执行操作数所在行的全部内容,替换更新为一行由当前计算结果作为操作数的内容;相应更新所述由当前计算结果作为操作数的内容的一行的操作符内容和操作标识符内容,完成数据结构表格信息的更新,返回步骤3。
优选地,所述步骤8具体包括:当数据结构表格信息中不存在有效的表达式内容时,确定为该解析单元已完成全部计算操作;将解析单元中最新接收的当前计算结果作为完整计算结果,解析单元等待对应一级的待计算操作数缓存单元处于待存储状态时,将该完整计算结果传输至对应一级的待计算操作数缓存单元;解析单元返回执行步骤2,同时对应一级的待计算操作数缓存单元等待存取控制单元处于待存取状态时,将该完整计算结果传输至存取控制单元;存取控制单元将该完整计算结果传输至结果缓存模块。
优选地,所述存取控制单元可以等待其内部存储的完整计算结果达到完整计算结果容纳阈值时,再将其内部存储的完整计算结果按照顺序或乱序传输至结果缓存模块,所述存取控制单元也可以在其每次接收到完整计算结果后,立即将接收的完整计算结果传输至结果缓存单元。
优选地,基于分发单元对计算操作信息的分配控制,使得一个计算单元能够执行同一个解析单元内的相同的两个或两个以上的计算操作。具体地,当一个计算表达式包括三个加法计算操作,则存在一个执行加法计算操作的计算单元在符合目标计算单元筛选条件的情况下,该三个加速计算操作可以由同一个执行加法计算操作的计算单元执行;其中,所述目标计算单元筛选条件包括空闲状态和可执行请求的计算操作。
需要说明的是,上述各实施例中所述操作数缓存模块和所述结果缓存模块本质是存储介质,所述存储介质可以是但不限于只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)等各种可以存储程序代码的存储介质;所述控制模块中的各个待计算操作数缓存单元、各个解析单元、分发单元和存取控制单元以及所述计算模块中各个计算单元都可以是但不限于由设计者使用硬件描述语言Verilog HDL进行编译形成的一种数字电路模块,或者是由设计者在具备电路绘制或编译功能的软件上进行电路绘制或编译形成的数字电路模块。此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个处理模块中。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (14)

1.一种新型运算加速单元,其特征在于,所述新型运算加速单元包括:
操作数缓存模块,用于存储待执行计算的操作数;
结果缓存模块,用于存储完成全部计算操作的表达式计算结果;
控制模块,包括存取控制单元、M级并行的待计算操作数缓存单元、M级并行的解析单元和分发单元,所述存取控制单元的一端分别与M级并行的待计算操作数缓存单元的一端连接,所述存取控制单元的另一端分别与所述操作数缓存模块和所述结果缓存模块连接,每一级待计算操作数缓存单元的另一端与对应一级的解析单元的一端连接,所述分发单元的一端分别与M级并行的解析单元的另一端连接,所述分发单元的另一端与所述计算模块的N级并行的计算单元连接;
计算模块,包括N级并行的计算单元,用于接收控制模块传输的待执行计算操作信息并执行相应计算操作,将计算结果输出至控制模块的分发单元;
其中,第k级的解析单元为第k级待计算操作数缓存单元的对应一级的解析单元;N为大于或等于2的整数,M为大于或等于2的整数,k为小于或等于M且大于0的整数。
2.根据权利要求1所述的新型运算加速单元,其特征在于,所述存取控制单元,用于从操作数缓存模块中读取至少一组待执行计算的操作数,还用于将控制模块中执行完全部计算操作的完整计算结果传输至所述结果缓存模块;所述存取控制单元包括:M个完整计算结果输入端、完整计算结果输出端、M个存储状态信号输入端、M+1个存取状态信号输出端、操作数输入端和M个操作数输出端;
所述M个完整计算结果输入端,用于实现所述存取控制单元接收所述M级并行的待计算操作数缓存单元输出的执行完全部计算操作的完整计算结果;
所述完整计算结果输出端,用于实现所述存取控制单元将接收的执行完全部计算操作的完整计算结果传输至所述结果缓存模块;
所述M个存储状态信号输入端,用于实现所述存取控制单元接收所述M级并行的待计算操作数缓存单元的M个存储状态信号,所述存取控制单元根据每一级待计算操作数缓存单元的存储状态信号判断是否向该一级待计算操作数缓存单元输入操作数;
所述M+1个存取状态信号输出端,用于实现所述存取控制单元向M个待计算操作数缓存单元和操作数缓存模块传输存取状态信号;
所述操作数输入端,用于实现所述存取控制单元从所述操作数缓存模块读取至少一组的待执行计算操作的操作数;
所述M个操作数输出端,用于实现所述存取控制单元将从操作数缓存模块中读取的至少一组的待执行计算操作的操作数传输至所述M级并行的待计算操作数缓存单元中的相应一级;
其中,所述存储状态信号用于表征待计算操作数缓存单元处于待存储状态、待计算操作数存储饱和状态、完整计算结果存储饱和状态或存储饱和状态;所述存取状态信号是用于表征存取控制单元是否达到预设存取阈值的信号,当存取控制单元达到预设存取阈值,存取控制单元处于存取饱和状态,当存取控制单元未达到预设存取阈值,存取控制单元处于待存取状态。
3.根据权利要求2所述的新型运算加速单元,其特征在于,所述M级并行的待计算操作数缓存单元为M个两两之间不存在数据和/或信号传输的待计算操作数缓存单元,每一级待计算操作数缓存单元用于存储一组或一组以上的待执行计算操作的操作数;每一级待计算操作数缓存单元包括:2个存储状态信号输出端、存取状态信号输入端、操作数输入端、操作数输出端、完整计算结果输入端和完整计算结果输出端;
所述2个存储状态信号输出端,用于实现所述待计算操作数缓存单元分别向所述存取控制单元和所述对应一级的解析单元传输存储状态信号;
所述存取状态信号输入端,用于实现所述待计算操作数缓存单元接收所述存取控制单元传输的存取状态信号,所述待计算操作数缓存单元根据存取状态信号判断是否向所述存取控制单元传输完整计算结果;
所述操作数输入端,用于实现所述待计算操作数缓存单元接收所述存取控制单元传输的至少一组待执行计算操作的操作数;
所述操作数输出端,用于实现所述待计算操作数缓存单元将一组待执行计算操作的操作数传输至所述解析单元;
所述完整计算结果输入端,用于实现所述待计算操作数缓存单元接收所述解析单元传输的执行完全部计算操作的完整计算结果;
所述完整计算结果输出端,用于实现所述待计算操作数缓存单元将接收到的所述执行完全部计算操作的完整计算结果传输至所述结果缓存模块。
4.根据权利要求3所述的新型运算加速单元,其特征在于,所述M级并行的解析单元包括M个两两之间不存在数据和/或信号传输的解析单元,每一级解析单元内部被配置有数据结构表格信息;每一级解析单元包括操作数输入端、存储状态信号输入端、计算授权信号输入端、当前计算结果输入端、完整计算结果输出端和计算操作信息输出端;
所述操作数输入端,用于实现所述解析单元从对应一级的待计算操作数缓存单元中读取一组待执行计算操作的操作数;
所述存储状态信号输入端,用于实现所述解析单元接收对应一级的待计算操作数缓存单元的存储状态信号;
所述计算授权信号输入端,用于实现所述解析单元接收所述分发单元传输的计算授权信号;
所述当前计算结果输入端,用于实现所述解析单元接收所述分发单元传输的执行完当前计算结果;
所述完整计算结果输出端,用于实现所述解析单元将执行完全部计算操作的完整计算结果传输至所述对应一级的待计算操作数缓存单元;
所述计算操作信息输出端,用于实现所述解析单元将当前待执行的计算操作信息传输至所述分发单元;
其中,所述当前计算结果是指执行完当前待执行的计算操作所获取的计算结果;所述完整计算结果是指执行完该解析单元中全部待执行的计算操作后所获取的计算结果;所述计算授权信号是指所述分发单元基于该一级解析单元传输的当前待执行的计算操作信息,在计算模块中存在符合的处于空闲状态的计算单元时反馈的授权信号,以表示所述当前待执行的计算操作信息能够被执行;第k级待计算操作数缓存单元为第k级解析单元的对应一级的待计算操作数缓存单元,k为小于或等于N的正整数。
5.根据权利要求4所述的新型运算加速单元,其特征在于,所述数据结构表格信息包括:
有效标识符列,用于标识数据结构表格信息中每一行是否存在有效的表达式内容;
单双目标识符列,用于标识操作符为单目操作符,或者为双目操作符,以确定该操作符对应需要的执行的操作数数量;
操作数列,用于存储读取的一组待执行计算操作的操作数;
操作符列,用于存储待执行的操作符;
操作标识符列,用于标识数据结构表格信息中存储有有效的表达式内容的每一行的内容为操作数或操作符;
其中,所述操作符列、有效标识符列、单双目标识符列和操作标识符列的信息是由用户根据该一级解析单元所需执行的逆波兰表达式相应配置;所述有效的表达式内容包括待执行的操作数和操作符。
6.根据权利要求4所述的新型运算加速单元,其特征在于,所述N级并行的计算单元为N个两两之间不存在数据或信号传输的计算单元,每一级计算单元被配置为执行相应一种计算操作,每一级计算单元包括计算操作信息输入端、空闲状态信号输出端和当前计算结果输出端;
所述计算操作信息输入端,用于实现所述计算单元接收所述分发单元传输的计算操作信息;
所述空闲状态信号输出端,用于实现所述计算单元将该一级计算单元的空闲状态信号传输至所述分发单元;
所述当前计算结果输出端,用于实现所述计算单元将根据计算操作信息执行计算操作后获取的计算结果作为当前计算结果传输至所述分发单元;
其中,所述计算操作信息包括一个以上的待计算操作数和待执行的计算操作;所述空闲状态信号用于表征计算单元处于空闲状态或非空闲状态;所述空闲状态是指计算单元处于能够接收待执行计算操作信息并执行相应计算操作的状态。
7.根据权利要求6所述的并行运算的加速单元,其特征在于,所述分发单元内部配置有计算模块中N级计算单元所分别对应执行的计算操作,所述分发单元包括M个计算授权信号输出端、M个当前计算结果输出端、M个计算操作信息输入端、N个计算操作信息输出端、N个空闲状态信号输入端和N个当前计算结果输入端;
所述M个计算授权信号输出端,用于实现所述分发单元向所述M级并行的解析单元传输相应的计算授权信号;
所述M个当前计算结果输出端,用于实现所述分发单元向所述M级并行的解析单元传输相应的当前计算结果;
所述M个计算操作信息输入端,用于实现所述分发单元接收所述M级并行的解析单元传输的计算操作信息;
所述N个计算操作信息输出端,用于实现所述分发单元向所述N级并行的计算单元传输相应的计算操作信息;
所述N个空闲状态信号输入端,用于实现所述分发单元接收所述N级并行的计算单元的空闲状态信号;
所述N个当前计算结果输入端,用于实现所述分发单元接收所述N级并行的计算单元传输的当前计算结果。
8.一种新型运算加速单元的运行方法,其特征在于,所述新型运算加速单元为权利要求1-7任一项所述的新型运算加速单元,其特征在于,所述新型运算加速单元的运行方法包括:
步骤1:存取控制单元根据接收的M个存储状态信号分别判断M级并行的待计算操作数缓存单元中是否存在处于待存储状态或完整计算结果饱和状态的待计算操作数缓存单元,若存在第k级待计算操作数缓存单元处于待存储状态或完整计算结果饱和状态,则存取控制单元从操作数缓存模块中读取至少一组待计算操作数传输至第k级待计算操作数缓存单元;其中,k为小于或等于M且大于0的整数;
步骤2:解析单元从对应一级的待计算操作数缓存单元中读取一组待计算操作数存储入数据结构表格信息中的操作数列,然后进入步骤3;
步骤3:解析单元根据数据结构表格信息判断是否存在待执行的计算操作,若不存在,则进入步骤8,若存在,则解析单元根据数据结构表格信息确定待执行计算操作信息,解析单元将待执行计算操作信息传输至分发单元,然后进入步骤4;
步骤4:分发单元基于接收到的待执行计算操作信息确定待执行的计算操作,分发单元确定具备执行所述待执行的计算操作的功能的计算单元,并将具备执行所述待执行的计算操作的功能的计算单元中处于空闲状态的一个计算单元作为目标计算单元,分发单元将待执行计算操作信息传输至目标计算单元,同时分发单元向所述待执行计算操作信息对应一级的解析单元传输计算授权信号,然后进入步骤5;
步骤5:目标计算单元基于接收的待执行计算操作信息,执行相应的计算操作,获取当前计算结果,并将当前计算结果传输至分发单元,然后进入步骤6;
步骤6:分发单元将接收的当前计算结果传输至该一当前计算结果对应一级的解析单元,然后进入步骤7;
步骤7:解析单元基于接收的当前计算结果更新数据结构表格信息,返回步骤3;
步骤8:确定为该解析单元已完成全部计算操作,解析单元将完整计算结果传输至对应一级的待计算操作数缓存单元,对应一级的待计算操作数缓存单元将该完整计算结果传输至存取控制单元,存取控制单元将该完整计算结果传输至结果缓存模块。
9.根据权利要求8所述的新型运算加速单元的运行方法,其特征在于,所述步骤3具体包括:
步骤301:将第一预设行数i的初始值预设为1,第二预设行数j的初始值预设为0,进入步骤302;
步骤302:将第一预设行数i的值增加一行,进入步骤303;
步骤303:判断数据结构表格信息中第一预设行数i所在行是否存在有效的表达式内容,若不存在,则进入步骤8,若存在,则进入步骤304;
步骤304:判断数据结构表格信息中第一预设行数i所在行是否存在操作符,若不存在,则进入步骤305,若存在,则进入步骤306;
步骤305:将第二预设行数j的值增加一行,返回步骤302;
步骤306:判断数据结构表格信息中第一预设行数i所在行的操作符为单目操作符或双目操作符,若为单目操作符,则进入步骤307,若为双目操作符,则进入步骤308;
步骤307:判断第二预设行数j的值是否大于0,若是,则进入步骤309,若否,则返回步骤302;
步骤308:判断第二预设行数j的值是否大于1,若是,则进入步骤309,若否,则返回步骤302;
步骤309:确定第一预设行数i所在行的操作符为待执行操作符,确定第二预设行数j所在行的操作数以及第二预设行数j的前一行的操作数为待执行操作数,进入步骤310;
步骤310:基于所述待执行操作符确定待执行的计算操作,基于待执行的计算操作和待执行操作符,获取待执行计算操作信息,解析单元将待执行计算操作信息传输至分发单元。
10.根据权利要求8所述的新型运算加速单元的运行方法,其特征在于,所述步骤4还包括:当所述具备执行所述待执行的计算操作的功能的计算单元中不存在处于空闲状态的计算单元时,则分发单元等待所述具备执行所述待执行的计算操作的功能的计算单元中存在处于空闲状态的计算单元时,再将最先处于空闲状态的具备执行所述待执行的计算操作的功能的计算单元作为目标计算单元,将所述待执行计算操作信息传输至所述目标计算单元,同时分发单元向所述待执行计算操作信息对应一级的解析单元传输计算授权信号。
11.根据权利要求8所述的新型运算加速单元的运行方法,其特征在于,所述步骤5具体包括:
目标计算单元基于接收的待执行计算操作信息,获取待执行计算操作信息中至少一个的待执行操作数;
目标计算单元对所述至少一个的待执行操作数执行对应的计算操作,获取当前计算结果;
目标计算单元将所述当前计算结果通过当前计算结果输出端传输至所述分发单元;
其中,所述对应的计算操作是指该一个目标计算单元具备执行功能的计算操作。
12.根据权利要求8所述的新型运算加速单元的运行方法,其特征在于,所述步骤7具体包括:
将当前计算结果所对应的待执行计算操作信息中待执行操作符所在行和待执行操作数所在行的全部内容,替换更新为一行由当前计算结果作为操作数的内容;
相应更新所述由当前计算结果作为操作数的内容的一行的操作符内容和操作标识符内容,完成数据结构表格信息的更新,返回步骤3。
13.根据权利要求8所述的新型运算加速单元的运行方法,其特征在于,所述步骤8具体包括:
当数据结构表格信息中不存在有效的表达式内容时,确定为该解析单元已完成全部计算操作;
将解析单元中最新接收的当前计算结果作为完整计算结果,解析单元等待对应一级的待计算操作数缓存单元处于待存储状态时,将该完整计算结果传输至对应一级的待计算操作数缓存单元;
对应一级的待计算操作数缓存单元等待存取控制单元处于待存取状态时,将该完整计算结果传输至存取控制单元;
存取控制单元将该完整计算结果传输至结果缓存模块。
14.根据权利要求13所述的新型运算加速单元的运行方法,其特征在于,所述步骤8还包括:当解析单元将完整计算结果传输至对应一级的待计算操作数缓存单元后,解析单元返回执行步骤2,同时对应一级的待计算操作数缓存单元等待存取控制单元处于待存取状态时,将完整计算结果传输至存取控制单元。
CN202110819551.0A 2021-07-20 2021-07-20 一种运算加速单元及其运行方法 Active CN113535637B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110819551.0A CN113535637B (zh) 2021-07-20 2021-07-20 一种运算加速单元及其运行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110819551.0A CN113535637B (zh) 2021-07-20 2021-07-20 一种运算加速单元及其运行方法

Publications (2)

Publication Number Publication Date
CN113535637A true CN113535637A (zh) 2021-10-22
CN113535637B CN113535637B (zh) 2022-11-15

Family

ID=78128939

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110819551.0A Active CN113535637B (zh) 2021-07-20 2021-07-20 一种运算加速单元及其运行方法

Country Status (1)

Country Link
CN (1) CN113535637B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106940815A (zh) * 2017-02-13 2017-07-11 西安交通大学 一种可编程卷积神经网络协处理器ip核
CN109785905A (zh) * 2018-12-18 2019-05-21 中国科学院计算技术研究所 一种面向基因比对算法的加速装置
US20200004690A1 (en) * 2018-06-30 2020-01-02 Intel Corporation Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator
CN110991634A (zh) * 2019-12-04 2020-04-10 腾讯科技(深圳)有限公司 人工智能加速器、设备、芯片及数据处理方法
CN111047021A (zh) * 2018-10-12 2020-04-21 中科寒武纪科技股份有限公司 一种计算装置及相关产品
CN111930681A (zh) * 2019-05-13 2020-11-13 中科寒武纪科技股份有限公司 一种计算装置及相关产品
CN112232517A (zh) * 2020-09-24 2021-01-15 苏州浪潮智能科技有限公司 一种人工智能加速引擎和人工智能处理器
CN112527243A (zh) * 2017-04-28 2021-03-19 英特尔公司 用来执行用于机器学习的浮点和整数操作的指令和逻辑

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106940815A (zh) * 2017-02-13 2017-07-11 西安交通大学 一种可编程卷积神经网络协处理器ip核
CN112527243A (zh) * 2017-04-28 2021-03-19 英特尔公司 用来执行用于机器学习的浮点和整数操作的指令和逻辑
US20200004690A1 (en) * 2018-06-30 2020-01-02 Intel Corporation Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator
CN111047021A (zh) * 2018-10-12 2020-04-21 中科寒武纪科技股份有限公司 一种计算装置及相关产品
CN109785905A (zh) * 2018-12-18 2019-05-21 中国科学院计算技术研究所 一种面向基因比对算法的加速装置
CN111930681A (zh) * 2019-05-13 2020-11-13 中科寒武纪科技股份有限公司 一种计算装置及相关产品
CN110991634A (zh) * 2019-12-04 2020-04-10 腾讯科技(深圳)有限公司 人工智能加速器、设备、芯片及数据处理方法
CN112232517A (zh) * 2020-09-24 2021-01-15 苏州浪潮智能科技有限公司 一种人工智能加速引擎和人工智能处理器

Also Published As

Publication number Publication date
CN113535637B (zh) 2022-11-15

Similar Documents

Publication Publication Date Title
CN107957976B (zh) 一种计算方法及相关产品
CN108776833B (zh) 一种数据处理方法、系统及计算机可读存储介质
CN110677402A (zh) 一种基于智能网卡的数据整合方法及装置
KR102545658B1 (ko) 콘볼루션 신경망 양자화 추론 장치 및 방법
CN107957977B (zh) 一种计算方法及相关产品
CN110187970A (zh) 一种基于Hadoop MapReduce的分布式大数据并行计算方法
CN112181522A (zh) 数据处理的方法、装置以及电子设备
CN114116557B (zh) 基于硬件加速器与数字信号处理器的信道估计装置及方法
CN116991560A (zh) 针对语言模型的并行调度方法、装置、设备及存储介质
CN111625325A (zh) 基于批数据的ai芯片片上网络调度方法和装置
CN113535637B (zh) 一种运算加速单元及其运行方法
CN111489279B (zh) Gpu加速优化方法、装置及计算机存储介质
US20230153153A1 (en) Task processing method and apparatus
CN113342719B (zh) 一种运算加速单元及其运算方法
CN113268269B (zh) 一种针对动态规划算法的加速方法、系统及装置
CN113535638B (zh) 一种并行运算加速系统及其运行方法
US6519695B1 (en) Explicit rate computational engine
CN113241120A (zh) 一种基因测序系统及测序方法
CN113177013B (zh) 基于波特率的串口通讯方法和多串口芯片
CN110020359A (zh) 应用在网页前端的数据处理方法、装置及存储介质
CN117707769A (zh) 一种基于分组排序的仿真计算加速方法和相关装置
US20210192353A1 (en) Processing unit, processor core, neural network training machine, and method
CN116954846A (zh) 一种任务处理方法和相关装置
CN117724656A (zh) 数据存储方法、数据读取方法、装置、及设备
CN114860353A (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