CN113342719A - 一种运算加速单元及其运算方法 - Google Patents

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

Info

Publication number
CN113342719A
CN113342719A CN202110735430.8A CN202110735430A CN113342719A CN 113342719 A CN113342719 A CN 113342719A CN 202110735430 A CN202110735430 A CN 202110735430A CN 113342719 A CN113342719 A CN 113342719A
Authority
CN
China
Prior art keywords
data packet
unit
calculation
control unit
transmission control
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
CN202110735430.8A
Other languages
English (en)
Other versions
CN113342719B (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 Amicro Semiconductor Co Ltd
Original Assignee
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 Amicro Semiconductor Co Ltd filed Critical Zhuhai Amicro Semiconductor Co Ltd
Priority to CN202110735430.8A priority Critical patent/CN113342719B/zh
Publication of CN113342719A publication Critical patent/CN113342719A/zh
Application granted granted Critical
Publication of CN113342719B publication Critical patent/CN113342719B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开一种运算加速单元及其运算方法,所述运算加速单元包括:操作数缓存模块,用于存储待执行计算的操作数;计算模块,包括M级数据传输控制单元和M级计算单元,用于接收控制模块传输的数据包并执行相应计算操作,将结束计算的数据包输出至控制模块;结果缓存模块,用于缓存完成全部计算操作的数据包;控制模块,用于从所述操作数缓存模块中读取操作数,生成数据包并传输至计算模块,接收计算模块的结束计算的数据包,并将完成全部计算操作的数据包传输至结果缓存模块。本加速单元单次支持的最大混合运算操作不受硬件计算资源数量的限制,降低芯片硬件成本,提高加速单元计算资源的利用率。

Description

一种运算加速单元及其运算方法
技术领域
本发明涉及集成电路领域,具体涉及一种运算加速单元及其运算方法。
背景技术
随着科技的飞速发展,越来越多的技术领域,如人工智能、安全运算等都涉及大批量数据的运算。目前针对大批量数据进行相同计算操作的需求越来越多,现有技术中已有的加速单元在总体上无法较好实现加速单元在功耗、占用面积、性能能多方面进行平衡,无法较好地适应对混合运算的支持。
发明内容
为解决上述问题,本发明提供了一种运算加速单元及其运算方法,该运算加速单元通过多个计算节点分步实现混合运算,加速单元单次支持的最大混合运算操作不受硬件计算资源数量的限制,降低芯片硬件成本,提高加速单元计算资源的利用率。本发明的具体技术方案如下:
本发明公开一种运算加速单元,所述运算加速单元包括:操作数缓存模块,用于存储待执行计算的操作数;计算模块,包括M级数据传输控制单元和M级计算单元,用于接收控制模块传输的数据包并执行相应计算操作,将结束计算的数据包输出至控制模块;结果缓存模块,用于缓存完成全部计算操作的数据包;控制模块,用于从所述操作数缓存模块中读取操作数,生成数据包并传输至计算模块,接收计算模块的结束计算的数据包,并将完成全部计算操作的数据包传输至结果缓存模块;其中,所述结束计算的数据包是完成部分计算操作的数据包计算结果,或者是完成全部计算操作的数据包计算结果;M为大于或等于2的整数。
与现有技术相比,本申请的运算加速单元基于M级数据传输控制单元和M级计算单元使得加速单元单次支持的最大混合运算操作不受硬件计算资源数量的限制,降低了芯片硬件成本,提高了加速运算单元的计算资源利用率,且该计算模块的结构便于根据不同的加速需求进行裁剪,同时不降低单次最大的计算操作数量。
进一步地,所述计算模块为至少一层的双环状结构。本技术方案中采用一层以上可堆叠的双环状结构,使得计算模块的运算能力成倍数叠加,提高运算加速单元的运算能力,并可根据实际运算需求调整计算模块双环状结构的层数,使得运算加速单元的运算能力灵活可调节,提高运算资源利用率。
进一步地,所述一层的双环状结构具体为:N级数据传输控制单元级联构成外环,N级计算单元之间级联构成内环,N级数据传输控制单元与N级计算单元共同构成双环状结构;第1级数据传输控制单元作为所述计算模块的输入端,第N级数据传输控制单元作为所述计算模块的输出端;其中,N为大于或等于2且小于或等于M的整数。本技术方案中计算单元每一层双环状结构都有独立的N级数据传输控制单元和N级计算单元,计算单元计算模块采用双环状结构,外环实现数据包的传输,内环实现数据包的计算,这种双环状结构保证数据的高效传输和加速计算互不影响,大幅度提高计算资源的利用率,提高计算模块的计算吞吐量。
进一步地,当所述计算模块为一层以上的双环状结构,所述计算模块的不同层的双环状结构之间数据传输控制单元和计算单元的级数N为相同或不同的数值;所述一层以上的双环状结构中的数据传输控制单元总数和计算单元总数都等于M。本技术方案计算模块中不同层的双环状结构的级数可以根据实际运算需求灵活调整,每一层双环状结构的级数可以相同也可以不同,不同层的双环状结构之间两两不相干扰,不存在信号/数据的传输。
进一步地,每一级数据传输控制单元包括:第一传输状态信号输出端,用于输出该一级数据传输控制单元的传输状态信号至上一级数据传输控制单元的传输状态信号输入端;第二传输状态信号输出端,用于输出该一级数据传输控制单元的传输状态信号至同一级计算单元;第一传输状态信号输入端,用于与下一级数据传输控制单元的传输状态信号输出端连接,接收下一级数据传输控制单元的传输状态信号;第二空闲状态信号输入端,用于接收同一级计算单元的空闲状态信号;第二计算操作信号输入端,用于接收同一级计算单元所能执行的计算操作信号;第一数据包输出端,用于与下一级数据传输控制单元的第一数据包输入端连接,将数据包从该一级数据传输控制单元传输至下一级数据传输控制单元;第一数据包输入端,用于与上一级数据传输控制单元的第一数据包输出端连接,接收上一级数据传输控制单元传输的数据包;第二数据包输出端,用于将数据包从该一级数据传输控制单元传输至同一级的计算单元;第二数据包输入端,用于接收同一级的计算单元传输的数据包;其中,所述传输状态信号用于标识该一级数据传输控制单元是否允许接收数据包;所述空闲状态信号用于标识该一级计算单元是否处于空闲状态,若计算单元处于空闲状态则计算单元能够接收数据包执行计算操作;所述计算操作信号用于标识该一级计算单元所能够执行的计算操作。本技术方案中基于数据传输控制单元的传输状态信号和计算单元的空闲状态信号控制数据包的传输,有效梳理数据包的传输秩序。
进一步地,所述N级数据传输控制单元以从低到高的顺序级联;第1级数据传输控制单元的第一传输状态信号输出端与所述控制模块连接,以使得所述控制模块根据第1级数据传输控制单元的传输状态信号向第1级数据传输控制单元传输数据包;第1级数据传输控制单元的第一数据包输入端与所述控制模块连接,以接收所述控制模块向第1级数据传输控制单元传输的数据包;第N级数据传输控制单元的第一数据包输出端与所述控制模块连接,以向所述控制模块传输完成部分/全部计算操作的数据包;第N级数据传输控制单元的第一传输状态信号输入端与所述控制模块连接,以使得所述第N级数据传输控制单元依据所述控制模块的传输状态信号控制数据包向所述控制模块传输。本技术方案将计算模块中的数据传输控制单元设计为开环状,实现数据包在多级数据传输控制单元中单向传输,使得计算单元被占用的情况下,其余数据包能够经由数据传输控制单元传输至其它的计算单元中执行计算操作,提高运算加速单元的计算资源利用率。
进一步地,每一级计算单元包括:第二计算操作信号输出端,用于与同一级的数据传输控制单元的第二计算操作信号输入端连接,将该一级计算单元的计算标识信号传输至同一级数据传输控制单元;第三计算操作信号输出端,用于与上一级的计算单元的第三计算操作信号输入端连接,将该一级计算单元的计算操作信号传输至上一级计算单元;第三计算操作信号输入端,用于与下一级的计算单元的第三计算操作信号输出端连接,接收下一级的计算单元的计算操作信号;第二传输状态信号输入端,用于与同一级的数据传输控制单元的第二传输状态信号输出端连接,接收同一级的数据传输控制单元的传输状态信号;第二空闲状态信号输出端,用于与同一级数据传输控制单元的第二空闲状态信号输入端连接,将该一级计算单元的空闲状态信号传输至同一级的数据传输控制单元;第三空闲状态信号输出端,用于与上一级计算单元的第三空闲状态信号输入端连接,将该一级计算单元的空闲状态信号传输至上一级计算单元;第三空闲状态信号输入端,用于与下一级计算单元的第三空闲状态信号输出端连接,接收下一级计算单元的空闲状态信号;第二数据包输入端,用于与同一级的数据传输控制单元的第二数据包输出端连接,接收同一级的数据传输控制单元传输的数据包;第三数据包输入端,用于与上一级计算单元的第三数据包输出端连接,接收上一级计算单元传输的数据包;第二数据包输出端,用于与同一级的数据传输控制单元的第二数据包输入端连接,将数据包由该一级计算单元传输至同一级的数据传输控制单元;第三数据包输出端,用于与下一级计算单元的第三数据包输入端连接,将数据包由该一级计算单元传输至下一级计算单元。本技术方案中的计算单元基于空闲状态信号控制同一级数据传输控制单元以及下一级计算单元的数据包传输进程,基于计算操作信号说明该一级计算单元所能够执行的计算操作,多个计算单元的级联使得该计算模块能够执行复杂的混合计算。
进一步地,所述N级计算单元以从低级别到高级别的顺序级联,第k级计算单元的第三数据包输出端、第三空闲状态信号输入端分别与第k+1级计算单元的第三数据包输入端、第三空闲状态信号输出端连接;其中,k是大于或等于1的整数;其中,第1级计算单元的第三数据包输入端、第三空闲状态信号输出端分别与第N级计算单元的第三数据包输出端、第三空闲状态信号输入端连接。本技术方案的计算单元呈闭环状级联,使得数据包在条件允许的情况下,能够从第N级计算单元传输至第1级计算单元,降低数据包未执行完全部计算操作便被传输至控制模块的概率,提高计算资源的利用率。
进一步地,所述控制模块包括:存取控制单元,用于从操作数缓存模块中读取操作数,将完成全部计算操作的数据包计算结果传输至结果缓存模块;数据包分发单元,用于基于人工配置信息以及存取控制单元读取的操作数生成数据结构表格,根据数据结构表格生成数据包,将数据包发送至计算模块,判断计算模块输出的数据包是否已执行全部计算操作。本技术方案中数据包分发单元具备辨析结束计算的数据包是否完成全部计算操作的能力,实现结果缓存模块只缓存完成全部计算操作的数据包,数据包分发单元将未完成全部计算操作的数据包重新输入计算模块,在提高运算加速模块计算效率的同时也避免出现数据包未完成全部计算操作即被缓存的情况。
进一步地,所述数据包分发单元包括:初始数据包输出端,与所述计算模块的至少一层的双环状结构中的至少一个第1级数据传输控制单元的第一数据包输入端连接,用于将待执行计算操作的数据包由控制模块传输至计算模块;数据包结果输入端,与所述计算模块的至少一层的双环状结构中的至少一个第N级数据传输控制单元的第一数据包输出端连接,用于接收计算模块的数据包计算结果;第一传输状态信号输入端,与所述计算模块的至少一层的双环状结构中的至少一个第1级数据传输控制单元的第一传输状态信号输出端连接,用于接收第1级数据传输控制单元的传输状态信号;初始传输状态信号输出端,与所述计算模块的至少一层的双环状结构中的至少一个第N级数据传输控制单元的第一传输状态数据输入端连接,用于将数据包分发单元的传输状态信号传输至第N级数据传输控制单元。本技术方案中在数据包分发单元中设计初始传输状态信号输出端,使得数据包分发单元内部容纳的数据量达到预设容纳阈值时,停止数据包分发单元从存取控制单元读取操作数,直至数据包分发单元内部容纳的数据量小于预设容纳阈值,避免因超负荷容纳数据导致数据包分发单元故障,当数据包分发单元内部所能容纳的数据量达到最大值时,停止数据包分发单元从存取控制单元读取操作数,同时停止数据包分发单元接收计算模块反馈的结束计算的数据包,直至所述数据包分发单元内部数据量小于所能够容纳的数据量最大值,且数据包分发单元根据第1级数据传输控制单元的第一传输状态信号控制新的数据包向计算模块的输入,避免出现因第1级数据传输控制单元未将当前数据包传输至下一级数据传输控制单元或同一级计算单元中,而数据包分发单元输入新的数据包造成计算模块中数据包传输堵塞的情况。
进一步地,所述数据包的内容具体包括:待执行下一计算操作符位置,用于指示下一个计算操作的操作符在数据结构表格中的位置;有效标识符,用于标识数据包中是否存在未被调用执行计算操作的有效的表达式内容;单双目标识符,用于标识当前一个计算操作的操作符为单目运算符或者是双目运算符;若干个操作符,用于执行计算操作;若干个操作数,用于执行计算操作;其中,所述有效的表达式内容是指操作和/或操作符。本技术方案采用将操作数和操作符集成为数据包的方式,便于操作数和操作符被调用。
本发明还公开了一种运算加速单元的运算方法,该方法所使用如前所述的运算加速单元,所述运算加速单元的运算方法包括:步骤1:操作数缓存模块缓存一批操作数,然后进入步骤2;步骤2:控制模块从操作数缓存模块中读取一组操作数,生成数据包,然后进入步骤3;步骤3:控制模块根据第1级数据传输控制单元的传输状态信号,判断第1级数据传输控制单元是否允许接收数据包,若是,则控制模块将数据包传输至计算模块,进入步骤4,若否,则重复步骤3;步骤4:计算模块根据控制模块传输的数据包执行相应的计算操作,第N级数据传输控制单元将结束计算的数据包传输至控制模块,然后进入步骤5;步骤5:控制模块判断所述数据包是否已完成全部计算操作,若是,则控制模块将所述数据包传输至结果缓存模块,结果缓存模块将所述数据包缓存;其中,所述一批操作数包含一组或一组以上的操作数。
进一步地,步骤2所述控制模块从操作数缓存模块中读取一组操作数,生成数据包,具体包括如下步骤:存取控制单元从操作数缓存模块中读取一组操作数;数据包分发单元从存取控制单元中读取所述一组操作数,结合人工配置信息构建生成数据包;其中,所述人工配置信息包括:依据待执行的计算式的逆波兰表达式获取的操作符、有效标识符、单双目标识符和操作标识符;所述操作标识符,用于标识操作符在数据包内的存储位置。本技术方案中基于人工配置信息,人为将数据包待执行的计算式配置为逆波兰表达式,使得在运行一些混合型复杂计算时能够简化计算所需调用流程,降低操作数的调用错误率。
进一步地,所述数据包分发单元从存储控制单元中读取一组操作数,结合人工配置信息构建生成数据包,具体包括:数据包分发单元将所述一组操作数依据逆波兰表达式中的先后执行顺序存储入数据包;数据包分发单元将逆波兰表达式中的若干个操作符存储入数据包;依据人工配置信息,获取有效标识符和单双目标识符;依据人工配置信息,获取待执行下一计算操作的操作符所在位置,完成数据包的构建。本技术方案简化人工配置流程,通过生成数据包,使得数据包的包结构大幅提高计算模块的计算效率。
进一步地,所述依据人工配置信息,获取待执行下一计算操作的操作符所在位置,具体包括:确定当前执行的计算操作的操作符;依据逆波兰表达式确定待执行下一计算操作的操作符;依据人工配置信息中的操作标识符,在数据包的若干个操作符中获取待执行下一计算操作的操作符所在位置;其中,若不存在当前执行的计算操作的操作符,则依据逆波兰表达式确定第一个计算操作的操作符作为待执行下一计算操作的操作符;若下一计算操作的操作符被调用执行,则更新待执行下一计算操作的操作符所在位置。本技术方案中数据包中包含待执行下一计算操作的操作符所在位置,以便于运算加速单元能够根据数据包快速调用待执行下一计算操作的操作符以及相应的操作数,提升运算加速单元的运算效率。
进一步地,所述运算加速单元的运算方法在执行步骤3前,还包括:控制模块判断计算模块中存在的数据包数量是否小于N,若是,则进入步骤3,若否,则等待计算模块中存在的数据包数量小于N,然后进入步骤3。本技术方案的控制模块在传输前判断计算模块中的数据包数量,若数据包数量大于计算模块的总级数,仍传输新的数据包至计算模块,易造成计算模块中存在过多数据包而堵塞数据包的传输通道,使得更多未执行完全部计算操作的数据包从计算单元输出,降低计算模块的计算效率。
进一步地,步骤4所述计算模块根据控制模块传输的数据包执行相应的计算操作,具体包括:步骤41:当前一级数据传输控制单元基于数据包获取该数据包当前待执行计算操作,判断该数据包当前待执行计算操作与当前一级计算单元所能执行的计算操作是否相同,若否,则进入步骤42,若是,则进入步骤43;步骤42:判断下一级数据传输控制单元是否允许接收数据包,若是,则将该数据包传输至下一级数据传输控制单元,若否,则等待下一级数据传输控制单元允许接收数据包时,将该数据包传输至下一级数据传输控制单元;步骤43:判断当前一级计算单元是否处于空闲状态,若是,则当前一级数据传输控制单元将该数据包传输至当前一级计算单元,然后进入步骤44;步骤44:当前一级计算单元确定该数据包的当前待执行的计算操作所对应的操作数和操作符,根据该数据包的当前待执行的计算操作所对应的操作数和操作符,执行计算操作,获取该数据包计算结果,然后进入步骤45;步骤45:基于该数据包计算结果,更新该数据包,然后进入步骤46;步骤46:根据该数据包的有效标识符判断该数据包的计算操作是否已全部执行,若否,则进入步骤47,若是,则等待当前一级数据传输控制单元允许接收数据包时,将该数据包传输至当前一级数据传输控制单元,当前一级数据传输控制单元将该数据包在至少一个的数据传输控制单元中传输,以将该数据包从计算模块的第N级数据传输控制单元输出至控制模块;步骤47:判断该数据包的当前待执行的计算操作与当前一级计算单元所能够执行的计算操作是否相同,若是,则返回步骤44,若否,则判断该数据包的当前待执行的计算操作与下一级计算单元所能够执行的计算操作是否相同,若是,则进入步骤48,若否,则等待当前一级数据传输控制单元允许接收数据包时,将该数据包传输至当前一级数据传输控制单元,返回步骤41;步骤48:判断下一级计算单元是否处于空闲状态,若是,则将该数据包传输至下一级计算单元,若否,则同时判断下一级计算单元是否处于空闲状态,以及判断当前一级数据传输控制单元是否允许接收数据包,若下一级计算单元先处于空闲状态,则将该数据包传输至下一级计算单元,然后执行步骤44,若当前一级数据传输控制单元先允许接收数据包,则将该数据包传输至当前一级数据传输控制单元,返回步骤41;其中,数据包当前所在的计算单元则为当前一级计算单元,数据包当前所在的数据传输控制单元则为当前一级数据传输控制单元。本技术方案中计算模块中的数据传输控制单元与计算单元相配合,使得数据包能够高效传输并执行相应的计算操作。
进一步地,步骤43还包括:若当前一级计算单元不处于空闲状态,则判断下一级数据传输控制单元是否允许接收数据包;若是,则将该数据包传输至下一级数据传输控制单元;若否,则同时判断当前一级计算单元是否处于空闲状态,以及下一级数据传输控制单元是否允许接收数据包,若当前一级计算单元先处于空闲状态,则进入步骤44,若下一级数据传输控制单元先允许接收数据包,则将该数据包传输至下一级数据传输控制单元。
进一步地,若当前一级数据传输控制单元为第N级数据传输控制单元,则步骤4具体为:步骤41:当前一级数据传输控制单元基于数据包获取该数据包当前待执行计算操作,判断该数据包当前待执行计算操作与当前一级计算单元所能执行的计算操作是否相同,若否,则当前一级数据传输控制单元将该数据包传输至所述控制模块,若是,则进入步骤42;步骤42:判断当前一级计算单元是否处于空闲状态,若是,则进入步骤43;若否,则判断控制模块的数据包分发单元是否能够接收数据包,能则将数据包传输至控制模块的数据包分发单元,不能则等待当前一级计算单元处于空闲状态时,进入步骤43,或者等待控制模块的数据包分发单元能够接收数据包时,将数据包传输至控制模块的数据包分发单元;步骤43:当前一级数据传输控制单元将该数据包传输至当前一级计算单元,当前一级计算单元接收该数据包,确定该数据包的当前待执行的计算操作所对应的操作数和操作符,然后进入步骤44;步骤44:根据该数据包的的当前待执行的计算操作所对应的操作数和操作符,执行计算操作,获取该数据包计算结果,然后进入步骤45;步骤45:基于该数据包计算结果,更新该数据包,进入步骤46;步骤46:根据该数据包的有效标识符判断该数据包的计算操作是否已全部执行,若否,则进入步骤47,若是,则等待当前一级数据传输控制单元允许接收数据包时,将该数据包传输至当前一级数据传输控制单元,当前一级数据传输控制单元等待控制模块的数据包分发单元能够接收数据包时将该数据包传输至控制模块;步骤47:判断该数据包的当前待执行的计算操作与当前一级计算单元所能够执行的计算操作是否相同,若是,则返回步骤44,若否,则判断该数据包的当前待执行的计算操作与第1级计算单元所能够执行的计算操作是否相同,若是,则进入步骤48,若否,则等待当前一级数据传输控制单元允许接收数据包时,将该数据包传输至当前一级数据传输控制单元,返回步骤41;步骤48:判断第1级计算单元是否处于空闲状态,若是,则将该数据包传输至第1级计算单元,若否,则同时判断第1级计算单元是否处于空闲状态,以及判断当前一级数据传输控制单元是否允许接收数据包,若第1级计算单元先处于空闲状态,则将该数据包传输至第1级计算单元,然后执行步骤44,若当前一级数据传输控制单元先允许接收数据包,则将该数据包传输至当前一级数据传输控制单元,返回步骤41;其中,当数据包传输至第1级计算单元时,当前一级计算单元为第1级计算单元;当数据包在第N级计算单元或第N级数据传输控制单元时,当前一级计算单元为第N级计算单元。本技术方案中第N级数据传输控制单元与控制模块相连接,实现结束计算的数据包返回至控制单元,同时支持第N级计算单元与第1级计算单元之间数据包的传输,使得在第N级计算单元仍未完成全部计算操作的数据包在符合条件的情况下能够继续在计算模块中执行计算操作。
进一步地,所述步骤5具体包括:控制模块的数据分发单元判断该数据包是否已完成全部计算操作;若是,则数据分发单元将该数据包传输至结果缓存模块,结果缓存模块将该数据包缓存;若所述数据包未完成全部计算操作,则数据分发单元将该数据包标记为优先级最高的待输入计算模块的数据包;其中,所述优先级是指数据分发单元向计算模块传输数据包的优先顺序。本技术方案经由控制单元判断该结束计算的数据包是否执行完全部计算操作再将执行完全部计算操作的数据包缓存至结果缓存模块,避免出现未执行完全部计算操作的数据包存储入结果缓存模块,影响最终计算结果输出。
附图说明
图1为本发明第一实施例所述运算加速单元的结构示意图。
图2为本发明第一实施例所述计算模块中两组级联的计算单元和数据传输控制单元的结构示意图。
图3为本发明第二实施例所述计算模块的结构示意图。
图4为本发明第三实施例所述计算模块的部分结构示意图。
图5为本发明第三实施例所述计运算加速单元的部分结构示意图。
图6为本发明第四实施例所述运算加速单元的运算方法的流程示意图。
图7为本发明第五实施例所述数据包的包结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清晰,以下将结合附图及实施例,对本发明进行描述和说明。应当理解,下面所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。此外,还可以理解的是,对本领域的普通技术人员而言,在本发明揭露的技术内容上进行一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
除非另作定义,本发明所涉及的技术术语或科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等词语并不表示数量限制,可以表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含,如:包含了一系列步骤或模块的过程、方法、系统产品或者设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或模块,或者还可以包括对于这些过程、方法、产品或设备固有的其他步骤或单元。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是用于区别类似的对应,不代表针对对象的特定排序。
本发明的第一实施例中提供一种运算加速单元,如图1所示,所述运算加速单元包括:操作缓存模块、控制模块、计算模块和结果缓存模块。
所述操作数缓存模块,用于缓存一批待执行计算操作的操作数;其中,一批操作数包含一组或一组以上的操作数。
所述控制模块,用于从所述操作数缓存模块中读取一组待执行计算操作的操作数,结合人工配置信息,生成待执行计算操作的数据包并传输至计算单元,同时支持接收计算单元输出的结束计算的数据包,将结束计算的数据包中完成全部计算操作的数据包传输至结果缓存模块;具体地,所述控制模块包括存取控制单元和数据包分发单元,所述存取控制单元用于实现控制模块从操作数缓存模块中读取一组待执行计算操作的操作数并传输至数据包分发单元,所述数据包分发单元用于实现控制模块基于操作数和人工配置信息生成数据包并传输至计算单元,同时所述数据包分发单元还支持对计算单元输出的结束计算的数据包判断其是否完成全部计算操作,所述数据包分发单元将完成全部计算操作的数据包传输至结果缓存模块,将未完成全部计算操作的数据包标记为传输优先级最高的数据包,将该数据包传输至计算模块,使该数据包完成全部计算操作。
优选地,所述数据包分发单元所能够容纳的数据量存在一个最大值,依据所述数据包分发单元所能够容纳的数据量最大值设置一个预设容纳阈值,所述预设容纳阈值小于所述数据包分发单元所能够容纳的数据量的最大值;当数据包分发单元内部的数据量达到预设容纳阈值,则数据包分发单元停止接收所述存取控制单元传输的操作数,直至所述数据包分发单元内部的数据量小于预设容纳阈值,才恢复数据包分发单元接收所述存取控制单元传输的操作数;当数据包分发单元内部的数据量达到所述数据包分发单元所能够容纳的数据量的最大值,则停止接收计算模块反馈的结束结算的数据包,直至所述数据包分发单元内部的数据量小于所能够容纳的数据量最大值。
所述计算模块,用于接收所述控制模块传输的数据包并执行相应的计算操作,将结束计算的数据包输出至所述控制模块;其中所述相应的计算操作是指所述数据包中操作符和相应操作数指示的计算操作。
具体地,所述计算模块包括M级数据传输控制单元和M级计算单元,M是大于或等于2的整数。所述数据传输控制单元用于控制数据包在计算单元的传输和计算分配,所述计算单元用于接收所述数据传输控制单元分配的数据包执行相应的计算操作,每一个计算单元只能执行一种计算操作,所述计算操作可以是但不限于:加法、开方、乘法和除法等。
所述计算模块为至少一层的双环状结构;每一层双环状结构中由N级数据传输控制单元级联构成外环,N级计算单元之间级联构成内环,N级数据传输控制单元与N级计算单元共同构成双环状结构;每一层双环状结构的第1级数据传输控制单元作为所述计算模块的输入端,每一层双环状结构的第N级数据传输控制单元作为所述计算模块的输出端;其中,N为大于或等于2且小于或等于M的整数。
具体地,当所述计算模块为一层以上的双环状结构,所述计算模块的不同层的双环状结构之间数据传输控制单元和计算单元的级数N为相同或不同的数值;所述一层以上的双环状结构中的数据传输控制单元总数和计算单元总数都等于M。可以理解地,该计算模块由多层双环状结构堆叠而成,不同层的双环状结构之间不存在数据和/或信号的传输,不同层的双环状结构的级数可以相同或不同。所述计算模块通过堆叠多层双环状结构,使得该计算模块能够大幅度提升计算能力和计算效率。由于双环状结构的灵活可变性以及多层双环状结构的层数可依据实际计算需求进行调整,使得运算加速系统的计算模块的计算资源的利用率得到大幅度提升。
图2是所述计算模块的两组级联的计算单元和数据传输控制单元,如图2所示,每一级数据传输控制单元的端口包括:第一传输状态信号输出端,用于输出该一级数据传输控制单元的传输状态信号至上一级数据传输控制单元的传输状态信号输入端;第二传输状态信号输出端,用于输出该一级数据传输控制单元的传输状态信号至同一级计算单元;第一传输状态信号输入端,用于与下一级数据传输控制单元的传输状态信号输出端连接,接收下一级数据传输控制单元的传输状态信号;第二空闲状态信号输入端,用于接收同一级计算单元的空闲状态信号;第二计算操作信号输入端,用于接收同一级计算单元所能执行的计算操作信号;第一数据包输出端,用于与下一级数据传输控制单元的第一数据包输入端连接,将数据包从该一级数据传输控制单元传输至下一级数据传输控制单元;第一数据包输入端,用于与上一级数据传输控制单元的第一数据包输出端连接,接收上一级数据传输控制单元传输的数据包;第二数据包输出端,用于将数据包从该一级数据传输控制单元传输至同一级的计算单元;第二数据包输入端,用于接收同一级的计算单元传输的数据包;其中,所述传输状态信号用于标识该一级数据传输控制单元是否允许接收数据包;所述空闲状态信号用于标识该一级计算单元是否处于空闲状态,若计算单元处于空闲状态则计算单元能够接收数据包执行计算操作;所述计算操作信号用于标识该一级计算单元所能够执行的计算操作。
所述N级数据传输控制单元以从低到高的顺序级联,第k级数据传输控制单元通过第一传输状态信号输入端、第一数据包输出端与第k+1级数据传输控制单元的第一传输状态信号输出端、第一数据包输入端连接,以实现第k级数据传输控制单元和第k+1级数据传输控制单元之间的数据包传输;其中,k为大于或等于1且小于N的整数。特别地,第1级数据传输控制单元的第一传输状态信号输出端、第一数据包输入端与所述控制模块的数据分发单元连接,第N级数据传输控制单元的第一传输状态信号输入端、第一数据包输出端与所述控制模块的数据分发单元连接。
优选地,所述数据包分发单元包括:初始数据包输出端,与所述计算模块的至少一层的双环状结构中的至少一个第1级数据传输控制单元的第一数据包输入端连接,用于将待执行计算操作的数据包由控制模块传输至计算模块;数据包结果输入端,与所述计算模块的至少一层的双环状结构中的至少一个第N级数据传输控制单元的第一数据包输出端连接,用于接收计算模块的数据包计算结果;第一传输状态信号输入端,与所述计算模块的至少一层的双环状结构中的至少一个第1级数据传输控制单元的第一传输状态信号输出端连接,用于接收第1级数据传输控制单元的传输状态信号;初始传输状态信号输出端,与所述计算模块的至少一层的双环状结构中的至少一个第N级数据传输控制单元的第一传输状态数据输入端连接,用于将数据包分发单元的传输状态信号传输至第N级数据传输控制单元。
如图2所示,每一级计算单元的端口包括:第二计算操作信号输出端,用于与同一级的数据传输控制单元的第二计算操作信号输入端连接,将该一级计算单元的计算标识信号传输至同一级数据传输控制单元;第三计算操作信号输出端,用于与上一级的计算单元的第三计算操作信号输入端连接,将该一级计算单元的计算操作信号传输至上一级计算单元;第三计算操作信号输入端,用于与下一级的计算单元的第三计算操作信号输出端连接,接收下一级的计算单元的计算操作信号;第二传输状态信号输入端,用于与同一级的数据传输控制单元的第二传输状态信号输出端连接,接收同一级的数据传输控制单元的传输状态信号;第二空闲状态信号输出端,用于与同一级数据传输控制单元的第二空闲状态信号输入端连接,将该一级计算单元的空闲状态信号传输至同一级的数据传输控制单元;第三空闲状态信号输出端,用于与上一级计算单元的第三空闲状态信号输入端连接,将该一级计算单元的空闲状态传输至上一级计算单元;第三空闲状态信号输入端,用于与下一级计算单元的第三空闲状态信号输出端连接,接收下一级计算单元的空闲状态信号;第二数据包输入端,用于与同一级的数据传输控制单元的第二数据包输出端连接,接收同一级的数据传输控制单元传输的数据包;第三数据包输入端,用于与上一级计算单元的第三数据包输出端连接,接收上一级计算单元传输的数据包;第二数据包输出端,用于与同一级的数据传输控制单元的第二数据包输入端连接,将数据包由该一级计算单元传输至同一级的数据传输控制单元;第三数据包输出端,用于与下一级计算单元的第三数据包输入端连接,将数据包由该一级计算单元传输至下一级计算单元;其中,所述传输状态信号用于标识该一级数据传输控制单元是否允许接收数据包;所述空闲状态信号用于标识该一级计算单元是否处于空闲状态,若计算单元处于空闲状态则计算单元能够接收数据包执行计算操作;所述计算操作信号用于标识该一级计算单元所能够执行的计算操作。
具体地,所述第一传输状态信号输出端、第二传输状态信号输出端都是传输该一级数据传输控制单元的传输状态信号,只是将同一个传输状态信号通过不同的输出端传输至不同的传输对象。同理,所述第二计算操作信号输出端、第三计算操作信号输出端都是传输该一级计算单元的计算操作信号,只是将同一个计算操作信号通过不同的输出端传输至不同的传输对象。所述第二空闲状态信号输出端、第三空闲状态信号输出端也是传输该一级计算单元的空闲状态信号至不同传输对象。
所述N级计算单元以从低到高的顺序级联,第k级计算单元的第三数据包输出端、第三空闲状态信号输入端分别与第k+1级计算单元的第三数据包输入端、第三空闲状态信号输出端连接,以实现计算单元之间数据包的传输;其中,k是大于或等于1且小于N的整数。特别地,第1级计算单元的第三数据包输入端、第三空闲状态信号输出端分别与第N级计算单元的第三数据包输出端、第三空闲状态信号输入端连接。
所述结果缓存单元,用于缓存已执行全部计算操作的数据包。
在第一实施例的基础上本发明的第二实施例中提供了一种具有16级数据传输控制单元和16级计算单元的运算加速单元,图3为该运算加速单元的计算模块结构图,如图3所示,图中DTCSk表示数据传输控制单元,CUk表示计算单元;k用于表示该单元的级数,k为大于或等于1的整数;数据传输控制单元之间、计算单元之间、数据传输控制单元与计算单元之间都存在两个方向相反的箭头,需要说明的是,该箭头表示两个单元之间存在至少一个的信号、数据包、或者其两者的结合的传输,每一个数据传输控制单元所具有的端口、每一个计算单元所具有的端口以及端口所对应传输内容都与第一实施例中相同。参阅图3所示,第1级数据传输控制单元向控制模块输出传输状态信号,并接收输入的数据包;第N级数据传输控制单元接收控制模块输入的初始传输状态信号,并输出数据包至控制模块。
该计算模块的一层双环状结构中数据包遵循的传输规则为:只允许数据包从第k级数据传输控制单元传输至第k+1级数据传输控制单元,或者数据包从第k级数据传输控制单元传输至第k级计算单元,或者是数据包从第k级计算单元传输至第k+1级计算单元,或者是数据包从第k级计算单元传输至第k级数据传输控制单元。
如图3所示,运算加速单元的计算模块由16个数据传输控制单元和16个计算单元组成,每一个数据传输控制单元与同一级的计算单元之间实现数据包、计算操作信号、传输状态信号、空闲状态信号的传输,每一个数据传输控制单元与下一级的数据传输控制单元之间实现数据包、传输状态信号的传输。特别地,第16级数据传输控制单元的第一传输状态信号输入端、第一数据包输出段端与所述控制模块连接,第1级数据传输控制单元的第一传输状态信号输出端,第一数据包输入端与所述控制模块连接,第1级计算单元的第三空闲状态信号输入端、第三计算操作信号输出端、第三数据包输入端与第16级计算单元的第三空闲状态信号输出端、第三计算操作信号输入端、第三数据包输出端连接。
本发明的第三实施例中提供一种运算加速单元,图5为本实施例所述运算加速单元的部分结构示意图,由图5可知,该运算加速单元的计算模块由两层双环状结构构成,该运算加速单元的控制模块的数据包分发单元分别与计算模块的两层双环状结构存在信号/数据的双向传输。在本实施例中,所述两层双环状结构的级数N不相同,参阅图3,第一层双环状结构由16级数据传输控制单元和16级计算单元构成,参阅图4,第二层双环状结构由12级数据传输控制单元和12级计算单元构成。图3和图4中的箭头代表两个单元存在至少一个信号和/或数据包的传输,箭头方向代表两个单元之间的至少一个信号和/或数据包的传输方向,图5中的箭头代表数据包分发单元与双环状结构之间存在至少一个信号和/或数据包的传输,箭头方向代表数据包分发单元与双环状结构之间的至少一个信号和/或数据包的传输方向。本实施例中的计算模块由不同级数的两层双环状结构组成,能够有效提高计算模块的运算效率,提高运算加速单元的运算性能,级数不同使得两层双环状结构能够针对不同运算需求的数据包进行更高效的运算,提高运算加速单元的运算灵活性。
基于上述实施例所述的运算加速单元,本发明的第四实施例中提供了一种运算加速单元的运算方法,图6为该运算加速单元的运算方法的流程图,如图6所示,该运算加速单元的运算方法包括:
步骤1:操作数缓存模块缓存一批操作数,然后进入步骤2;
步骤2:控制模块从操作数缓存模块中读取一组操作数,生成数据包,然后进入步骤3;
步骤3:控制模块根据第1级数据传输控制单元的传输状态信号,判断第1级数据传输控制单元是否允许接收数据包,若是,则控制模块将数据包传输至计算模块,进入步骤4;若否,则重复步骤3;
步骤4:计算模块根据控制模块传输的数据包执行相应的计算操作,第N级数据传输控制单元将结束计算的数据包传输至控制模块,然后进入步骤5;
步骤5:控制模块判断所述数据包是否已完成全部计算操作,若是,则控制模块将所述数据包传输至结果缓存模块,结果缓存模块将所述数据包缓存;
其中,所述一批操作数包含一组或一组以上的操作数。
优选地,步骤2所述控制模块从操作数缓存模块中读取一组操作数,生成数据包,具体包括:存取控制单元从操作数缓存模块中读取一组操作数;数据包分发单元从存取控制单元中读取所述一组操作数,结合人工配置信息构建生成数据包;其中,所述人工配置信息包括:依据待执行的计算式的逆波兰表达式获取的操作符、有效标识符、单双目标识符和操作标识符;所述操作标识符,用于标识操作符在数据包内存储位置。
具体地,本发明的第五实施例提供一种数据包,图7为一种数据包的包结构,如图7所示,所述数据包的内容包括:待执行下一计算操作符位置NEXT_OPER,用于指示下一个计算操作的操作符在数据结构表格中的位置;操作符OPER,用于表示数据包中存储的若干个操作符;有效标识符VLD,用于标识数据包中是否存在未被调用执行计算操作的有效的表达式内容;单双目标识符MONO,用于标识当前一个计算操作的操作符为单目运算符或者是双目运算符;若干个操作数A-E,用于执行计算操作;其中,所述有效的表达式内容是指操作数和/或操作符。
优选地,所述依据人工配置信息,获取待执行下一计算操作的操作符所在位置,具体包括:确定当前执行的计算操作的操作符;依据逆波兰表达式确定待执行下一计算操作的操作符;依据人工配置信息中的操作标识符,在数据包的若干个操作符中获取待执行下一计算操作的操作符所在位置;其中,若不存在当前执行的计算操作的操作符,则依据逆波兰表达式确定第一个计算操作的操作符作为待执行下一计算操作的操作符;若下一计算操作的操作符被调用执行,则更新待执行下一计算操作的操作符所在位置。
基于第五实施例,本发明的第六实施例提供另一种运算加速单元的运算方法,所述运算加速单元的运算方法在执行步骤3前,还包括:控制模块判断计算模块中存在的数据包数量是否小于N,若是,则进入步骤3,若否,则等待计算模块中存在的数据包数量小于N,然后进入步骤3。
优选地,步骤4所述计算模块根据控制模块传输的数据包执行相应的计算操作,具体包括:
步骤41:当前一级数据传输控制单元基于数据包获取该数据包当前待执行计算操作,判断该数据包当前待执行计算操作与当前一级计算单元所能执行的计算操作是否相同,若否,则进入步骤42,若是,则进入步骤43;
步骤42:判断下一级数据传输控制单元是否允许接收数据包,若是,则将该数据包传输至下一级数据传输控制单元,若否,则重复步骤42;
步骤43:判断当前一级计算单元是否处于空闲状态,若是,则当前一级数据传输控制单元将该数据包传输至当前一级计算单元,然后进入步骤44;
步骤44:当前一级计算单元确定该数据包的当前待执行的计算操作所对应的操作数和操作符,根据该数据包的当前待执行的计算操作所对应的操作数和操作符,执行计算操作,获取该数据包计算结果,然后进入步骤45;
步骤45:基于该数据包计算结果,更新该数据包,然后进入步骤46;
步骤46:根据该数据包的有效标识符判断该数据包的计算操作是否已全部执行,若否,则进入步骤47,若是,则等待当前一级数据传输控制单元允许接收数据包时,将该数据包传输至当前一级数据传输控制单元,当前一级数据传输控制单元将该数据包在 至少一个数据传输控制单元中传输,以将该数据包从计算模块的第N级数据传输控制单元输出至控制模块;
步骤47:判断该数据包的当前待执行的计算操作与当前一级计算单元所能够执行的计算操作是否相同,若是,则返回步骤44,若否,则判断该数据包的当前待执行的计算操作与下一级计算单元所能够执行的计算操作是否相同,若是,则进入步骤48,若否,则等待当前一级数据传输控制单元允许接收数据包时,将该数据包传输至当前一级数据传输控制单元,返回步骤41;
步骤48:判断下一级计算单元是否处于空闲状态,若是,则将该数据包传输至下一级计算单元,若否,则同时判断下一级计算单元是否处于空闲状态,以及判断当前一级数据传输控制单元是否允许接收数据包,若下一级计算单元先处于空闲状态,则将该数据包传输至下一级计算单元,然后执行步骤44,若当前一级数据传输控制单元先允许接收数据包,则将该数据包传输至当前一级数据传输控制单元,返回步骤41;
其中,数据包当前所在的计算单元则为当前一级计算单元,数据包当前所在的数据传输控制单元则为当前一级数据传输控制单元。
特别地,若当前一级数据传输控制单元为第N级数据传输控制单元,则步骤4所述计算模块根据控制模块传输的数据包执行相应的计算操作,具体包括:
步骤41:当前一级数据传输控制单元基于数据包获取该数据包当前待执行计算操作,判断该数据包当前待执行计算操作与当前一级计算单元所能执行的计算操作是否相同,若否,则当前一级数据传输控制单元将该数据包传输至所述控制模块,若是,则进入步骤42;
步骤42:判断当前一级计算单元是否处于空闲状态,若是,则进入步骤43;若否,则判断控制模块的数据包分发单元是否能够接收数据包,能则将数据包传输至控制模块的数据包分发单元,不能则等待当前一级计算单元处于空闲状态时,进入步骤43,或者等待控制模块的数据包分发单元能够接收数据包时,将数据包传输至控制模块的数据包分发单元;
步骤43:当前一级数据传输控制单元将该数据包传输至当前一级计算单元,当前一级计算单元接收该数据包,确定该数据包的当前待执行的计算操作所对应的操作数和操作符,然后进入步骤44;
步骤44:根据该数据包的的当前待执行的计算操作所对应的操作数和操作符,执行计算操作,获取该数据包计算结果,然后进入步骤45;
步骤45:基于该数据包计算结果,更新该数据包,进入步骤46;
步骤46:根据该数据包的有效标识符判断该数据包的计算操作是否已全部执行,若否,则进入步骤47,若是,则等待当前一级数据传输控制单元允许接收数据包时,将该数据包传输至当前一级数据传输控制单元,当前一级数据传输控制单元等待控制模块的数据包分发单元能够接收数据包时将该数据包传输至控制模块;
步骤47:判断该数据包的当前待执行的计算操作与当前一级计算单元所能够执行的计算操作是否相同,若是,则返回步骤44,若否,则判断该数据包的当前待执行的计算操作与第1级计算单元所能够执行的计算操作是否相同,若是,则进入步骤48,若否,则等待当前一级数据传输控制单元允许接收数据包时,将该数据包传输至当前一级数据传输控制单元,返回步骤41;
步骤48:判断第1级计算单元是否处于空闲状态,若是,则将该数据包传输至第1级计算单元,若否,则同时判断第1级计算单元是否处于空闲状态,以及判断当前一级数据传输控制单元是否允许接收数据包,若第1级计算单元先处于空闲状态,则将该数据包传输至第1级计算单元,然后执行步骤44,若当前一级数据传输控制单元先允许接收数据包,则将该数据包传输至当前一级数据传输控制单元,返回步骤41;
其中,当数据包传输至第1级计算单元时,当前一级计算单元为第1级计算单元;当数据包在第N级计算单元或第N级数据传输控制单元时,当前一级计算单元为第N级计算单元。
优选地,步骤5所述控制模块判断所述数据包是否已完成全部计算操作具体包括:控制模块的数据分发单元判断该数据包是否已完成全部计算操作;若是,则数据分发单元将该数据包传输至结果缓存模块,结果缓存模块将该数据包缓存;若所述数据包未完成全部计算操作,则数据分发单元将该数据包标记为优先级最高的待输入计算模块的数据包;其中,所述优先级最高是指数据分发单元向计算模块传输的所有数据包中优先传输,若存在同样有优先级最高的数据包,则按照两个数据包从计算模块的输出先后顺序,控制模块先后将其输入计算模块。
需要说明的是,上述各实施例中所述操作数缓存单元和所述结果缓存单元本质为存储介质,所述存储介质可以是但不限于只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)等各种可以存储程序代码的存储介质;所述控制模块中的存取控制单元、数据包分发单元以及所述计算模块中的各个数据传输控制单元和各个计算单元都可以是但不限于由设计者使用硬件面熟语言Verilog HDL进行编译形成的一种数字电路模块,或者是由设计者在具备电路绘制或编译功能的软件上进行电路绘制或编译形成的一种数字电路模块。此外,在本发明的各个实施例中的各个功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个处理模块中。
本发明所提供的实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现,以上描述的实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有其它划分方式,例如多个模块或组件可以结合或可以集成到另一个系统,或一些特征可以忽略或不执行,可以根据实际的需要选择其中的部分或全部模块来实现本实施例方案的目的。
最后应当说明的是,以上各实施例仅仅是本发明的一部分实施例,而不是全部实施例,各个实施例之间的技术方案可以相互结合,实施例所公开的具体步骤可以根据实际需求调整顺序以达到相同的技术效果。本领域的普通技术人员应当理解,在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,均应包括在本发明的保护范围之内。

Claims (20)

1.一种运算加速单元,其特征在于,所述运算加速单元包括:
操作数缓存模块,用于存储待执行计算的操作数;
计算模块,包括M级数据传输控制单元和M级计算单元,用于接收控制模块传输的数据包并执行相应计算操作,将结束计算的数据包输出至控制模块;
结果缓存模块,用于缓存完成全部计算操作的数据包;
控制模块,用于从所述操作数缓存模块中读取操作数,生成数据包并传输至计算模块,接收计算模块的结束计算的数据包,并将完成全部计算操作的数据包传输至结果缓存模块;
其中,所述结束计算的数据包是完成部分计算操作的数据包计算结果,或者是完成全部计算操作的数据包计算结果;M为大于或等于2的整数。
2.根据权利要求1所述的运算加速单元,其特征在于,所述计算模块为至少一层的双环状结构。
3.根据权利要求2所述的运算加速单元,其特征在于,所述一层的双环状结构具体为:N级数据传输控制单元级联构成外环,N级计算单元之间级联构成内环,N级数据传输控制单元与N级计算单元共同构成双环状结构;第1级数据传输控制单元作为所述计算模块的输入端,第N级数据传输控制单元作为所述计算模块的输出端;其中,N为大于或等于2且小于或等于M的整数。
4.根据权利要求3所述的运算加速单元,其特征在于,当所述计算模块为一层以上的双环状结构,所述计算模块的不同层的双环状结构之间数据传输控制单元和计算单元的级数N为相同或不同的数值;所述一层以上的双环状结构中的数据传输控制单元总数和计算单元总数都等于M。
5.根据权利要求1所述的运算加速单元,其特征在于,每一级数据传输控制单元包括:
第一传输状态信号输出端,用于输出该一级数据传输控制单元的传输状态信号至上一级数据传输控制单元的传输状态信号输入端;
第二传输状态信号输出端,用于输出该一级数据传输控制单元的传输状态信号至同一级计算单元;
第一传输状态信号输入端,用于与下一级数据传输控制单元的传输状态信号输出端连接,接收下一级数据传输控制单元的传输状态信号;
第二空闲状态信号输入端,用于接收同一级计算单元的空闲状态信号;
第二计算操作信号输入端,用于接收同一级计算单元所能执行的计算操作信号;
第一数据包输出端,用于与下一级数据传输控制单元的第一数据包输入端连接,将数据包从该一级数据传输控制单元传输至下一级数据传输控制单元;
第一数据包输入端,用于与上一级数据传输控制单元的第一数据包输出端连接,接收上一级数据传输控制单元传输的数据包;
第二数据包输出端,用于将数据包从该一级数据传输控制单元传输至同一级的计算单元;
第二数据包输入端,用于接收同一级的计算单元传输的数据包;
其中,所述传输状态信号用于标识该一级数据传输控制单元是否允许接收数据包;所述空闲状态信号用于标识该一级计算单元是否处于空闲状态,若计算单元处于空闲状态则计算单元能够接收数据包执行计算操作;所述计算操作信号用于标识该一级计算单元所能够执行的计算操作。
6.根据权利要求3所述的运算加速单元,其特征在于,所述N级数据传输控制单元以从低到高的顺序级联;第1级数据传输控制单元的第一传输状态信号输出端与所述控制模块连接,以使得所述控制模块根据第1级数据传输控制单元的传输状态信号向第1级数据传输控制单元传输数据包;第1级数据传输控制单元的第一数据包输入端与所述控制模块连接,以使得第一数据传输控制单元作为所述计算模块的输入端接收所述控制模块传输的数据包;第N级数据传输控制单元的第一数据包输出端与所述控制模块连接,以使得所述第N级数据传输控制单元作为所述计算模块的输出端向所述控制模块传输完成部分/全部计算操作的数据包;第N级数据传输控制单元的第一传输状态信号输入端与所述控制模块连接,以使得所述第N级数据传输控制单元依据所述控制模块的传输状态信号控制数据包向所述控制模块传输。
7.根据权利要求5所述的运算加速单元,其特征在于,每一级计算单元包括:
第二计算操作信号输出端,用于与同一级的数据传输控制单元的第二计算操作信号输入端连接,将该一级计算单元的计算标识信号传输至同一级数据传输控制单元;
第三计算操作信号输出端,用于与上一级的计算单元的第三计算操作信号输入端连接,将该一级计算单元的计算操作信号传输至上一级计算单元;
第三计算操作信号输入端,用于与下一级的计算单元的第三计算操作信号输出端连接,接收下一级的计算单元的计算操作信号;
第二传输状态信号输入端,用于与同一级的数据传输控制单元的第二传输状态信号输出端连接,接收同一级的数据传输控制单元的传输状态信号;
第二空闲状态信号输出端,用于与同一级数据传输控制单元的第二空闲状态信号输入端连接,将该一级计算单元的空闲状态信号传输至同一级的数据传输控制单元;
第三空闲状态信号输出端,用于与上一级计算单元的第三空闲状态信号输入端连接,将该一级计算单元的空闲状态信号传输至上一级计算单元;
第三空闲状态信号输入端,用于与下一级计算单元的第三空闲状态信号输出端连接,接收下一级计算单元的空闲状态信号;
第二数据包输入端,用于与同一级的数据传输控制单元的第二数据包输出端连接,接收同一级的数据传输控制单元传输的数据包;
第三数据包输入端,用于与上一级计算单元的第三数据包输出端连接,接收上一级计算单元传输的数据包;
第二数据包输出端,用于与同一级的数据传输控制单元的第二数据包输入端连接,将数据包由该一级计算单元传输至同一级的数据传输控制单元;
第三数据包输出端,用于与下一级计算单元的第三数据包输入端连接,将数据包由该一级计算单元传输至下一级计算单元。
8.根据权利要求7所述的运算加速单元,其特征在于,所述N级计算单元以从低到高的顺序级联,第k级计算单元的第三数据包输出端、第三空闲状态信号输入端分别与第k+1级计算单元的第三数据包输入端、第三空闲状态信号输出端连接;其中,k是大于0且小于N的整数;第1级计算单元的第三数据包输入端、第三空闲状态信号输出端分别与第N级计算单元的第三数据包输出端、第三空闲状态信号输入端连接。
9.根据权利要求1所述的运算加速单元,其特征在于,所述控制模块包括:
存取控制单元,用于从操作数缓存模块中读取操作数,将完成全部计算操作的数据包计算结果传输至结果缓存模块;
数据包分发单元,用于基于人工配置信息以及存取控制单元读取的操作数生成数据包,将数据包发送至计算模块,判断计算模块输出的数据包是否已执行全部计算操作。
10.根据权利要求9所述的运算加速单元,其特征在于,所述数据包分发单元包括:
初始数据包输出端,与所述计算模块的至少一层的双环状结构中的至少一个第1级数据传输控制单元的第一数据包输入端连接,用于将待执行计算操作的数据包由控制模块传输至计算模块;
数据包结果输入端,与所述计算模块的至少一层的双环状结构中的至少一个第N级数据传输控制单元的第一数据包输出端连接,用于接收计算模块的数据包计算结果;
第一传输状态信号输入端,与所述计算模块的至少一层的双环状结构中的至少一个第1级数据传输控制单元的第一传输状态信号输出端连接,用于接收第1级数据传输控制单元的传输状态信号;
初始传输状态信号输出端,与所述计算模块的至少一层的双环状结构中的至少一个第N级数据传输控制单元的第一传输状态数据输入端连接,用于将数据包分发单元的传输状态信号传输至第N级数据传输控制单元。
11.根据权利要求9所述的运算加速单元,其特征在于,所述数据包的内容具体包括:
待执行下一计算操作符位置,用于指示下一个计算操作的操作符在数据结构表格中的位置;
有效标识符,用于标识数据包中是否存在未被调用执行计算操作的有效的表达式内容;
单双目标识符,用于标识当前一个计算操作的操作符为单目运算符或者是双目运算符;
若干个操作符,用于执行计算操作;
若干个操作数,用于执行计算操作;
其中,所述有效的表达式内容是指操作数和/或操作符。
12.一种运算加速单元的运算方法,所述运算加速单元为权利要求1至11任意一项所述的运算加速单元,其特征在于,所述运算加速单元的运算方法包括:
步骤1:操作数缓存模块缓存一批操作数,然后进入步骤2;
步骤2:控制模块从操作数缓存模块中读取一组操作数,生成数据包,然后进入步骤3;
步骤3:控制模块根据第1级数据传输控制单元的传输状态信号,判断第1级数据传输控制单元是否允许接收数据包,若是,则控制模块将数据包传输至计算模块,进入步骤4,若否,则重复步骤3;
步骤4:计算模块根据控制模块传输的数据包执行相应的计算操作,第N级数据传输控制单元将结束计算的数据包传输至控制模块,然后进入步骤5;
步骤5:控制模块判断所述数据包是否已完成全部计算操作,若是,则控制模块将所述数据包传输至结果缓存模块,结果缓存模块将所述数据包缓存;
其中,所述一批操作数包含一组或一组以上的操作数。
13.根据权利要求12所述的运算加速单元的运算方法,其特征在于,步骤2所述控制模块从操作数缓存模块中读取一组操作数,生成数据包,具体包括如下步骤:
存取控制单元从操作数缓存模块中读取一组操作数;
数据包分发单元从存取控制单元中读取所述一组操作数,结合人工配置信息构建生成数据包;
其中,所述人工配置信息包括:依据待执行的计算式的逆波兰表达式获取的操作符、有效标识符、单双目标识符和操作标识符;所述操作标识符,用于标识操作符在数据包内存储位置。
14.根据权利要求12所述的运算加速单元的运算方法,其特征在于,所述数据包分发单元从存储控制单元中读取一组操作数,结合人工配置信息构建生成数据包,具体包括:
数据包分发单元将所述一组操作数依据逆波兰表达式中的先后执行顺序存储入数据包;
数据包分发单元将逆波兰表达式中的若干个操作符存储入数据包;
依据人工配置信息,获取有效标识符和单双目标识符;
依据人工配置信息,获取待执行下一计算操作的操作符所在位置,完成数据包的构建。
15.根据权利要求14所述的运算加速单元的运算方法,其特征在于,所述依据人工配置信息,获取待执行下一计算操作的操作符位置,具体包括:
确定当前执行的计算操作的操作符;
依据逆波兰表达式确定待执行下一计算操作的操作符;
依据人工配置信息中的操作标识符,在数据包的若干个操作符中获取待执行下一计算操作的操作符所在位置;
其中,若不存在当前执行的计算操作的操作符,则依据逆波兰表达式确定第一个计算操作的操作符作为待执行下一计算操作的操作符;若下一计算操作的操作符被调用执行,则更新待执行下一计算操作的操作符所在位置。
16.根据权利要求12所述的运算加速单元的运算方法,其特征在于,所述运算加速单元的运算方法在执行步骤3前,还包括:控制模块判断计算模块中存在的数据包数量是否小于N,若是,则进入步骤3,若否,则等待计算模块中存在的数据包数量小于N,然后进入步骤3。
17.根据权利要求12所述的运算加速单元的运算方法,其特征在于,步骤4所述计算模块根据控制模块传输的数据包执行相应的计算操作,具体包括:
步骤41:当前一级数据传输控制单元基于数据包获取该数据包当前待执行计算操作,判断该数据包当前待执行计算操作与当前一级计算单元所能执行的计算操作是否相同,若否,则进入步骤42,若是,则进入步骤43;
步骤42:判断下一级数据传输控制单元是否允许接收数据包,若是,则将该数据包传输至下一级数据传输控制单元,若否,则等待下一级数据传输控制单元允许接收数据包时,将该数据包传输至下一级数据传输控制单元;
步骤43:判断当前一级计算单元是否处于空闲状态,若是,则当前一级数据传输控制单元将该数据包传输至当前一级计算单元,然后进入步骤44;
步骤44:当前一级计算单元确定该数据包的当前待执行的计算操作所对应的操作数和操作符,根据该数据包的当前待执行的计算操作所对应的操作数和操作符,执行计算操作,获取该数据包计算结果,然后进入步骤45;
步骤45:基于该数据包计算结果,更新该数据包,然后进入步骤46;
步骤46:根据该数据包的有效标识符判断该数据包的计算操作是否已全部执行,若否,则进入步骤47,若是,则等待当前一级数据传输控制单元允许接收数据包时,将该数据包传输至当前一级数据传输控制单元,当前一级数据传输控制单元将该数据包在至少一个的数据传输控制单元中传输,以将该数据包从计算模块的第N级数据传输控制单元输出至控制模块;
步骤47:判断该数据包的当前待执行的计算操作与当前一级计算单元所能够执行的计算操作是否相同,若是,则返回步骤44,若否,则判断该数据包的当前待执行的计算操作与下一级计算单元所能够执行的计算操作是否相同,若是,则进入步骤48,若否,则等待当前一级数据传输控制单元允许接收数据包时,将该数据包传输至当前一级数据传输控制单元,返回步骤41;
步骤48:判断下一级计算单元是否处于空闲状态,若是,则将该数据包传输至下一级计算单元,若否,则同时判断下一级计算单元是否处于空闲状态,以及判断当前一级数据传输控制单元是否允许接收数据包,若下一级计算单元先处于空闲状态,则将该数据包传输至下一级计算单元,然后执行步骤44,若当前一级数据传输控制单元先允许接收数据包,则将该数据包传输至当前一级数据传输控制单元,返回步骤41;
其中,数据包当前所在的计算单元则为当前一级计算单元,数据包当前所在的数据传输控制单元则为当前一级数据传输控制单元。
18.根据权利要求17所述的运算加速单元的运算,其特征在于,步骤43还包括:
若当前一级计算单元不处于空闲状态,则判断下一级数据传输控制单元是否允许接收数据包;
若是,则将该数据包传输至下一级数据传输控制单元;
若否,则同时判断当前一级计算单元是否处于空闲状态,以及下一级数据传输控制单元是否允许接收数据包,若当前一级计算单元先处于空闲状态,则进入步骤44,若下一级数据传输控制单元先允许接收数据包,则将该数据包传输至下一级数据传输控制单元。
19.根据权利要求12所述的运算加速单元的运算,其特征在于,若当前一级数据传输控制单元为第N级数据传输控制单元,则步骤4具体为:
步骤41:当前一级数据传输控制单元基于数据包获取该数据包当前待执行计算操作,判断该数据包当前待执行计算操作与当前一级计算单元所能执行的计算操作是否相同,若否,则当前一级数据传输控制单元将该数据包传输至所述控制模块,若是,则进入步骤42;
步骤42:判断当前一级计算单元是否处于空闲状态,若是,则进入步骤43;若否,则判断控制模块的数据包分发单元是否能够接收数据包,能则将数据包传输至控制模块的数据包分发单元,不能则等待当前一级计算单元处于空闲状态时,进入步骤43,或者等待控制模块的数据包分发单元能够接收数据包时,将数据包传输至控制模块的数据包分发单元;
步骤43:当前一级数据传输控制单元将该数据包传输至当前一级计算单元,当前一级计算单元接收该数据包,确定该数据包的当前待执行的计算操作所对应的操作数和操作符,然后进入步骤44;
步骤44:根据该数据包的的当前待执行的计算操作所对应的操作数和操作符,执行计算操作,获取该数据包计算结果,然后进入步骤45;
步骤45:基于该数据包计算结果,更新该数据包,进入步骤46;
步骤46:根据该数据包的有效标识符判断该数据包的计算操作是否已全部执行,若否,则进入步骤47,若是,则等待当前一级数据传输控制单元允许接收数据包时,将该数据包传输至当前一级数据传输控制单元,当前一级数据传输控制单元等待控制模块的数据包分发单元能够接收数据包时将该数据包传输至控制模块;
步骤47:判断该数据包的当前待执行的计算操作与当前一级计算单元所能够执行的计算操作是否相同,若是,则返回步骤44,若否,则判断该数据包的当前待执行的计算操作与第1级计算单元所能够执行的计算操作是否相同,若是,则进入步骤48,若否,则等待当前一级数据传输控制单元允许接收数据包时,将该数据包传输至当前一级数据传输控制单元,返回步骤41;
步骤48:判断第1级计算单元是否处于空闲状态,若是,则将该数据包传输至第1级计算单元,若否,则同时判断第1级计算单元是否处于空闲状态,以及判断当前一级数据传输控制单元是否允许接收数据包,若第1级计算单元先处于空闲状态,则将该数据包传输至第1级计算单元,然后执行步骤44,若当前一级数据传输控制单元先允许接收数据包,则将该数据包传输至当前一级数据传输控制单元,返回步骤41;
其中,当数据包传输至第1级计算单元时,当前一级计算单元为第1级计算单元;当数据包在第N级计算单元或第N级数据传输控制单元时,当前一级计算单元为第N级计算单元。
20.根据权利要求12所述的运算加速单元的运算,其特征在于,所述步骤5具体包括:
控制模块的数据分发单元判断该数据包是否已完成全部计算操作;
若是,则数据分发单元将该数据包传输至结果缓存模块,结果缓存模块将该数据包缓存;
若所述数据包未完成全部计算操作,则数据分发单元将该数据包标记为优先级最高的待输入计算模块的数据包;
其中,所述优先级是指数据分发单元向计算模块传输数据包的优先顺序。
CN202110735430.8A 2021-06-30 2021-06-30 一种运算加速单元及其运算方法 Active CN113342719B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110735430.8A CN113342719B (zh) 2021-06-30 2021-06-30 一种运算加速单元及其运算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110735430.8A CN113342719B (zh) 2021-06-30 2021-06-30 一种运算加速单元及其运算方法

Publications (2)

Publication Number Publication Date
CN113342719A true CN113342719A (zh) 2021-09-03
CN113342719B CN113342719B (zh) 2022-12-13

Family

ID=77481723

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110735430.8A Active CN113342719B (zh) 2021-06-30 2021-06-30 一种运算加速单元及其运算方法

Country Status (1)

Country Link
CN (1) CN113342719B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117271391A (zh) * 2023-06-20 2023-12-22 海光信息技术股份有限公司 缓存结构和电子设备

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101789892A (zh) * 2010-03-11 2010-07-28 浙江大学 全节点虚通道的片上网络环形拓扑数据交换方法及其系统
CN103380597A (zh) * 2011-02-03 2013-10-30 华为技术有限公司 用于在片上环形网络中减少时延的非对称环形网拓扑
CN103809999A (zh) * 2012-11-02 2014-05-21 阿尔特拉公司 具有片上集成网络的可编程逻辑器件
CN105046109A (zh) * 2015-06-26 2015-11-11 四川云合创智科技有限公司 一种用于生物信息序列分析的加速平台
CN107171954A (zh) * 2016-03-08 2017-09-15 华为技术有限公司 容错路由方法、装置及片上网络
CN108415771A (zh) * 2018-02-01 2018-08-17 深圳市安信智控科技有限公司 多芯片分布式并行计算加速系统
US20180329864A1 (en) * 2017-05-12 2018-11-15 Google Inc. Image processor with configurable number of active cores and supporting internal network
CN109840240A (zh) * 2018-12-31 2019-06-04 武汉芯动科技有限公司 芯片、分布式计算装置及方法
CN110191069A (zh) * 2019-05-31 2019-08-30 西安理工大学 一种带有多条通道的环形片上网络
CN111190774A (zh) * 2019-12-26 2020-05-22 北京时代民芯科技有限公司 一种多核处理器可配置双模冗余结构
CN112286581A (zh) * 2020-12-25 2021-01-29 广东省新一代通信与网络创新研究院 一种流水线式计算加速协处理方法及系统

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101789892A (zh) * 2010-03-11 2010-07-28 浙江大学 全节点虚通道的片上网络环形拓扑数据交换方法及其系统
CN103380597A (zh) * 2011-02-03 2013-10-30 华为技术有限公司 用于在片上环形网络中减少时延的非对称环形网拓扑
CN103809999A (zh) * 2012-11-02 2014-05-21 阿尔特拉公司 具有片上集成网络的可编程逻辑器件
CN105046109A (zh) * 2015-06-26 2015-11-11 四川云合创智科技有限公司 一种用于生物信息序列分析的加速平台
CN107171954A (zh) * 2016-03-08 2017-09-15 华为技术有限公司 容错路由方法、装置及片上网络
US20180329864A1 (en) * 2017-05-12 2018-11-15 Google Inc. Image processor with configurable number of active cores and supporting internal network
CN108415771A (zh) * 2018-02-01 2018-08-17 深圳市安信智控科技有限公司 多芯片分布式并行计算加速系统
CN109840240A (zh) * 2018-12-31 2019-06-04 武汉芯动科技有限公司 芯片、分布式计算装置及方法
CN110191069A (zh) * 2019-05-31 2019-08-30 西安理工大学 一种带有多条通道的环形片上网络
CN111190774A (zh) * 2019-12-26 2020-05-22 北京时代民芯科技有限公司 一种多核处理器可配置双模冗余结构
CN112286581A (zh) * 2020-12-25 2021-01-29 广东省新一代通信与网络创新研究院 一种流水线式计算加速协处理方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117271391A (zh) * 2023-06-20 2023-12-22 海光信息技术股份有限公司 缓存结构和电子设备
CN117271391B (zh) * 2023-06-20 2024-04-16 海光信息技术股份有限公司 缓存结构和电子设备

Also Published As

Publication number Publication date
CN113342719B (zh) 2022-12-13

Similar Documents

Publication Publication Date Title
CN108363615B (zh) 用于可重构处理系统的任务分配方法和系统
EP0197103B1 (en) Load balancing for packet switching nodes
US7249242B2 (en) Input pipeline registers for a node in an adaptive computing engine
CN101739381B (zh) 屏障同步设备、屏障同步系统以及屏障同步方法
US7200837B2 (en) System, method and software for static and dynamic programming and configuration of an adaptive computing architecture
US3962706A (en) Data processing apparatus for highly parallel execution of stored programs
US10140124B2 (en) Reconfigurable microprocessor hardware architecture
CN110610236A (zh) 一种用于执行神经网络运算的装置
CN113031920B (zh) 一种芯片和用于芯片的批量模运算方法
CN113342719B (zh) 一种运算加速单元及其运算方法
CN112115095B (zh) 一种用于哈希算法的可重构硬件及运行方法
CN100499564C (zh) 分组处理引擎
US20040158802A1 (en) Method for the synthesis of VLSI systems based on data-driven decomposition
CN113535637B (zh) 一种运算加速单元及其运行方法
US20050190795A1 (en) Method and allocation device for allocating pending requests for data packet transmission at a number of inputs to a number of outputs of a packet switching device in successive time slots
CN109240978B (zh) 一种搭建加速平台的fpga系统、设备及加速平台
CN115062329B (zh) 隐私计算、隐私数据和联邦学习的流水计算装置及方法
CN113691433B (zh) 数据传输系统、方法、装置、电子设备及存储介质
CN115391274A (zh) 一种面向通用计算的矢量处理器及数据处理方法
WO2022183789A1 (zh) 数据交换系统、方法及存储介质
CN118093613A (zh) 数据交互处理方法、区块构建节点、终端设备及存储介质
CN117669652A (zh) 一种混合专家模型的处理方法和装置
CN113535638A (zh) 一种并行运算加速系统及其运行方法
CN118095351A (zh) 层归一化计算的协同处理装置及方法
WO2021130075A1 (en) Communication in a computer having multiple processors

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 519000 2706, No. 3000, Huandao East Road, Hengqin new area, Zhuhai, Guangdong

Applicant after: Zhuhai Yiwei Semiconductor Co.,Ltd.

Address before: 519000 room 105-514, No. 6, Baohua Road, Hengqin new area, Zhuhai City, Guangdong Province (centralized office area)

Applicant before: AMICRO SEMICONDUCTOR Co.,Ltd.

GR01 Patent grant
GR01 Patent grant