CN118012519A - 数字信号处理方法、装置、用于处理数字信号的处理器 - Google Patents
数字信号处理方法、装置、用于处理数字信号的处理器 Download PDFInfo
- Publication number
- CN118012519A CN118012519A CN202211391530.4A CN202211391530A CN118012519A CN 118012519 A CN118012519 A CN 118012519A CN 202211391530 A CN202211391530 A CN 202211391530A CN 118012519 A CN118012519 A CN 118012519A
- Authority
- CN
- China
- Prior art keywords
- operator
- processor
- algorithm chain
- instruction
- current operator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 136
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 249
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000004590 computer program Methods 0.000 claims description 20
- 238000013500 data storage Methods 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 9
- 230000001133 acceleration Effects 0.000 abstract description 121
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本申请涉及一种数字信号处理方法、装置、用于处理数字信号的处理器。方法包括:响应于针对数字信号运算任务发起的任务处理请求,确定数字信号运算任务对应的算法链;算法链由至少一个算子组装得到的;读取各算子对应的配置指令和各算子对应的操作数;将算法链中的首个算子作为当前算子,并重复执行以下步骤,直至执行结束条件满足,实现对数字信号运算任务进行处理操作:在当前算子对应的配置指令的指示下,对当前算子对应的操作数进行运算操作,回写当前算子对应的运算结果;将当前算子在算法链中的下一个算子作为新的当前算子;执行结束条件包括得到算法链中的末尾算子对应的运算结果。采用本方法能够有效地提高了硬件加速处理器的处理性能。
Description
技术领域
本申请涉及集成电路技术领域,特别是涉及一种数字信号处理方法、装置、用于处理数字信号的处理器、知识产权核、硬件加速处理器、存储介质和计算机程序产品。
背景技术
相关技术中的硬件加速处理器,旨在通过特定的数字集成电路设计,提高数字信号处理某一环节的算力,从而缩减这一环节的信号处理时间,达到解放通用处理器(如CPU、DSP等),降低功耗的目的。
然而,特定算法的硬件加速处理器的控制逻辑固定,难以实现内部硬件资源(如乘法器、累加器等)的复用,即在算法粗颗粒度视窗下仅部分时间运行电路,因此增大了集成电路的总体面积开销与漏电功耗,不利于提高硬件加速处理器的处理性能。
因此,相关技术中的硬件加速处理器存在处理性能不高的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高硬件加速处理器的处理性能的一种数字信号处理方法、装置、用于处理数字信号的处理器、知识产权核、硬件加速处理器、存储介质和计算机程序产品。
第一方面,本申请提供了一种数字信号处理方法,所述方法包括:
响应于针对数字信号运算任务发起的任务处理请求,确定所述数字信号运算任务对应的算法链;所述算法链由至少一个算子组装得到的;所述算子用于表征对相应的操作数所实施的基本运算操作;
读取各所述算子对应的配置指令,以及,读取各所述算子对应的操作数;
将所述算法链中的首个算子作为当前算子,并重复执行以下步骤,直至执行结束条件满足:
在所述当前算子对应的配置指令的指示下,对所述当前算子对应的操作数进行运算操作,回写所述当前算子对应的运算结果;
将所述当前算子在所述算法链中的下一个算子作为新的当前算子;
其中,所述执行结束条件包括得到所述算法链中的末尾算子对应的运算结果;在满足所述执行结束条件之后,实现对所述数字信号运算任务进行处理操作。
在其中一个实施例中,所述读取各所述算子对应的配置指令,包括:
将所述算法链中的首个算子作为当前算子,读取所述当前算子对应的配置指令;
在所述当前算子对应的配置指令读取完毕的情况下,将所述当前算子在所述算法链中的下一个算子作为新的当前算子,返回所述读取所述当前算子对应的配置指令的步骤,直至读取到所述算法链中的末尾算子对应的配置指令。
在其中一个实施例中,若所述当前算子对应的配置指令需要回写至指令存储空间,所述读取各所述算子对应的配置指令,包括:
在完成对所述当前算子对应的操作数进行运算操作的情况下,将所述当前算子对应的配置指令回写至所述指令存储空间;
在所述当前算子对应的配置指令回写完毕的情况下,将所述当前算子在所述算法链中的下一个算子作为新的当前算子,返回所述读取所述当前算子对应的配置指令的步骤。
在其中一个实施例中,在完成对所述当前算子对应的操作数进行运算操作的情况下,所述方法还包括:
在所述当前算子在所述算法链中的下一个算子对应的配置指令读取完毕的情况下,将所述当前算子对应的配置指令回写至所述指令存储空间。
在其中一个实施例中,所述读取各所述算子对应的操作数,包括:
将所述算法链中的首个算子作为当前算子,读取所述当前算子对应的操作数;
在所述当前算子对应的操作数读取完毕的情况下,将所述当前算子在所述算法链中的下一个算子作为新的当前算子,返回所述读取所述当前算子对应的操作数的步骤,直至读取到所述算法链中的末尾算子对应的操作数。
在其中一个实施例中,在所述当前算子对应的操作数读取完毕的情况下,所述方法还包括:
将所述当前算子对应的运算结果回写至所述数据存储空间;
在所述当前算子对应的运算结果回写完毕的情况下,将所述当前算子在所述算法链中的下一个算子作为新的当前算子,返回所述读取所述当前算子对应的操作数的步骤。
第二方面,本申请还提供了一种数字信号处理装置,所述装置包括:
响应模块,用于响应于针对数字信号运算任务发起的任务处理请求,确定所述数字信号运算任务对应的算法链;所述算法链由至少一个算子组装得到的;所述算子用于表征对相应的操作数所实施的基本运算操作;
访问模块,用于读取各所述算子对应的配置指令,以及,读取各所述算子对应的操作数;
运算模块,用于将所述算法链中的首个算子作为当前算子,并重复执行以下步骤,直至执行结束条件满足:在所述当前算子对应的配置指令的指示下,对所述当前算子对应的操作数进行运算操作,回写所述当前算子对应的运算结果;将所述当前算子在所述算法链中的下一个算子作为新的当前算子;
其中,所述执行结束条件包括得到所述算法链中的末尾算子对应的运算结果;在满足所述执行结束条件之后,实现对所述数字信号运算任务进行任务处理操作。
第三方面,本申请还提供了一种用于处理数字信号的处理器,所述处理器包括:
请求处理单元,用于响应于针对数字信号运算任务发起的任务处理请求,确定所述数字信号运算任务对应的算法链;所述算法链由至少一个算子组装得到的;所述算子用于表征对相应的操作数所实施的基本运算操作;
指令访问单元,用于读取所述算法链中的任一算子对应的配置指令;
数据访问单元,用于在所述任一算子对应的配置指令读取完毕的情况下,读取该算子对应的操作数;
运算处理单元,用于在所述任一算子对应的操作数读取完毕的情况下,根据该算子对应的配置指令,对该算子对应的操作数进行运算操作,得到该算子对应的运算结果,以实现对所述数字信号运算任务进行处理操作。
在其中一个实施例中,所述处理器还包括指令访问接口;所述指令访问单元,用于生成所述任一算子对应的指令访问地址;所述指令访问地址用于供所述处理器通过所述指令访问接口从存储器的指令存储空间中读取该算子对应的配置指令。
在其中一个实施例中,若所述任一算子对应的配置指令需要回写至指令存储空间,所述指令访问单元,还用于在对所述任一算子对应的操作数进行运算操作完毕的情况下,通过所述指令访问接口将该算子对应的配置指令回写至所述存储器的指令存储空间中。
在其中一个实施例中,所述处理器还包括数据访问接口;所述数据访问单元,用于生成所述任一算子对应的数据访问地址;所述数据访问地址用于供所述处理器通过所述数据访问接口从存储器的数据存储空间中读取该算子对应的操作数。
在其中一个实施例中,所述数据访问单元,还用于通过所述数据访问接口将所述任一算子对应的运算结果回写至所述存储器的数据存储空间中。
在其中一个实施例中,所述处理器还包括算法链请求仲裁单元;所述算法链请求仲裁单元,用于根据所述任务处理请求中的算法链软件请求和/或算法链硬件请求,确定待处理的所述数字信号运算任务对应的算法链。
在其中一个实施例中,所述处理器还包括控制接口和寄存器;所述控制接口,用于供软件层向所述寄存器下发所述算法链软件请求,供所述寄存器暂存所述算法链软件请求;所述寄存器,用于发送所述算法链软件请求至所述算法链请求仲裁单元;所述算法链请求仲裁单元,用于根据所述算法链软件请求,确定待处理的所述数字信号运算任务对应的算法链。
在其中一个实施例中,所述控制接口,还用于接收配置控制信号;所述配置控制信号用于配置所述处理器的全局使能、算法链使能、优先级、硬件请求屏蔽、中断使能或算法链指令地址中的至少一种。
在其中一个实施例中,所述处理器还包括中断接口;所述中断接口,用于将所述处理器产生的中断信号发送至与所述处理器电性连接的通用处理器。
在其中一个实施例中,所述运算处理单元包括控制器和至少一个运算资源;所述控制器,用于调度与所述任一算子对应的所述运算资源,以对该算子对应的操作数进行运算操作,得到该算子对应的运算结果。
第四方面,本申请还提供了一种知识产权核,包括:如所述的处理器。
第五方面,本申请还提供了一种硬件加速处理器,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
第六方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
第七方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤。
上述数字信号处理方法、装置、用于处理数字信号的处理器、知识产权核、硬件加速处理器、存储介质和计算机程序产品,通过响应于针对数字信号运算任务发起的任务处理请求,确定数字信号运算任务对应的算法链;算法链由至少一个算子组装得到的;该算子用于表征对相应的操作数所实施的基本运算操作;再通过读取各算子对应的配置指令,以及,读取各算子对应的操作数;将算法链中的首个算子作为当前算子,并重复执行以下步骤:在当前算子对应的配置指令的指示下,对当前算子对应的操作数进行运算操作,回写当前算子对应的运算结果;将当前算子在算法链中的下一个算子作为新的当前算子;直至得到算法链中的末尾算子对应的运算结果,实现对数字信号运算任务进行处理操作;如此,可以实现将待运算算法拆解成若干个细粒度的基础算子,并采用硬件资源串行执行这些基础算子从而实现硬件加速,并实现对算法细颗粒度的基本算子的批量处理,进一步利用基础算子组装成粗颗粒度算法,实现硬件资源的高效复用与调度,在解放通用处理器的同时,减小数字集成电路硬件加速处理器的面积开销与功耗,由于算子可串行灵活排列,在实现资源的高效复用与调度的同时,适应多种算法开发,有效地提高了硬件加速处理器的处理性能。
附图说明
图1为一个实施例中一种数字信号处理方法的应用环境图;
图2为一个实施例中一种数字信号处理方法的流程示意图;
图3为一个实施例中一种硬件加速处理器的指令访问流水示意图;
图4为一个实施例中一种硬件加速处理器的数据访问流水示意图;
图5为一个实施例中一种用于处理数字信号的处理器;
图6为一个实施例中另一种用于处理数字信号的处理器的硬件架构图;
图7为一个实施例中一种硬件加速处理器的在AMBA总线的集成系统示意图;
图8为一个实施例中一种硬件加速处理器的控制与数据流的示意图;
图9为一个实施例中一种数字信号处理装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的数字信号处理方法,可以应用于如图1所示的应用环境中。其中,硬件加速处理器102(instruction-base hardware accelerator,IBHA)分别与通用处理器104(如,CPU)和存储器106电性连接;其中,该存储器可以是指随机存取存储器(RAM);随机存取存储器(RAM)可以包括数据存储器(dRAM)和指令存储器(iRAM)。硬件加速处理器102响应于通用处理器104针对数字信号运算任务发起的任务处理请求,确定数字信号运算任务对应的算法链;算法链由至少一个算子组装得到的;算子用于表征对相应的操作数所实施的基本运算操作;硬件加速处理器102读取存储器106中的指令存储器中的各算子对应的配置指令,以及,读取存储器106中的数据存储器中的各算子对应的操作数;硬件加速处理器102将算法链中的首个算子作为当前算子,并重复执行以下步骤,直至执行结束条件满足:在当前算子对应的配置指令的指示下,对当前算子对应的操作数进行运算操作,回写当前算子对应的运算结果;将当前算子在算法链中的下一个算子作为新的当前算子;其中,执行结束条件包括得到算法链中的末尾算子对应的运算结果;在满足执行结束条件之后,实现对数字信号运算任务进行处理操作。实际应用中,该硬件加速处理器也可以被称为用于处理数字信号的处理器、硬件加速处理器等。
在一个实施例中,如图2所示,提供了一种数字信号处理方法,以该方法应用于图1中的硬件加速处理器为例进行说明,包括以下步骤:
步骤S202,响应于针对数字信号运算任务发起的任务处理请求,确定数字信号运算任务对应的算法链。
其中,数字信号运算任务可以是指按照预先配置的数据运算方式对预先配置的数字信号进行运算操作的任务。实际应用中,数字信号运算任务可以采用指令集进行表征。
其中,数字信号可以是音频信号。
为了便于本领域技术人员的理解,下文对本公开采用的指令集架构进行说明:本公开采用的指令集架构分为至少三个层次;包括算法层,算子(operator/OP)层,操作数(item)/结果(result)层。
其中,数字信号运算任务由若干条算法链(algorithm chain/AC)组成,算法链由至少一个算子(即算子层)组装得到的。
其中,算子用于表征对相应的操作数所实施的基本运算操作。实际应用中,基本运算操作可以包括但不限于是向量运算操作、标量运算操作等。
其中,向量运算操作可以包括但不限于是向量内积、求和、求平均、求最大值/最小值等操作;标量运算操作可以包括但不限于是对运算矩阵对应元素的加、减、乘、除、对数、指数及其组合等操作。
其中,操作数/结果层用于指示参与算子运算的操作数与存储结果的信息。
在一些实施例中,针对算法链的算法链配置指令是整个算法链执行的头部指令,该算法链配置指令用于算法粗颗粒度的划分,用于指示整个算法链的状态、响应/中断类型。若算法链为有限响应,则需回写指令。为了便于本领域技术人员的理解,表1提供了一种算法链配置指令bit域表。
表1
在一些实施例中,针对算子层的算子配置指令是实现基础算子的头部指令,用于实现算法细颗粒度的划分,用于指示算子的具体运算操作,批量处理数目等信息。为了便于本领域技术人员的理解,表2提供了一种算子配置指令bit域表。
表2
针对操作数/结果层的操作数(item)/结果(result)指令,可以细化为至少3条指令:配置指令,地址指令,fifo(first in/first out)配置指令。用于批量存取访问的地址生成。若指令中涉及fifo配置指令,则需回写指令。为了便于本领域技术人员的理解,表3提供了一种操作数/结果指令bit域表。
表3
具体实现中,在采用硬件加速处理器对数字信号运算任务进行硬件运算加速(如,音频算法数字硬件加速)的过程中,通用处理器可以通过硬件加速处理器中预设的请求接口,向该硬件加速处理器发送针对数字信号运算任务发起的任务处理请求。硬件加速处理器响应于该任务处理请求,通过对该任务处理请求进行解析,确定出针对该数字信号运算任务对应的算法链。
步骤S204,读取各算子对应的配置指令,以及,读取各算子对应的操作数。
具体实现中,硬件加速处理器确定出针对该数字信号运算任务对应的算法链后,硬件加速处理器可以读取出算法链中各算子对应的配置指令,以及,读取算法链中各算子对应的操作数。
步骤S206,将算法链中的首个算子作为当前算子,并重复执行以下步骤,直至执行结束条件满足:在当前算子对应的配置指令的指示下,对当前算子对应的操作数进行运算操作,回写当前算子对应的运算结果;将当前算子在算法链中的下一个算子作为新的当前算子;
其中,执行结束条件包括得到算法链中的末尾算子对应的运算结果;在满足执行结束条件之后,实现对数字信号运算任务进行处理操作。
具体实现中,硬件加速处理器可以将算法链中的首个算子作为当前算子,并在当前算子对应的配置指令的指示下,对当前算子对应的操作数进行运算操作,得到并回写当前算子对应的运算结果;然后,硬件加速处理器将当前算子在算法链中的下一个算子作为新的当前算子,并返回执行在当前算子对应的配置指令的指示下,对当前算子对应的操作数进行运算操作的操作,直至得到算法链中的末尾算子对应的运算结果,以实现对数字信号运算任务进行处理操作。
实际应用中,硬件加速处理器在对数字信号运算任务进行硬件运算加速的过程中,硬件加速处理器可以将数字信号运算任务的算法链中的首个算子作为当前算子,然后,硬件加速处理器可以读取该当前算子对应的配置指令,以及,读取该当前算子对应的操作数。然后,硬件加速处理器在当前算子对应的配置指令的指示下,对当前算子对应的操作数进行运算操作,得到并回写当前算子对应的运算结果;然后,硬件加速处理器可以将当前算子在算法链中的下一个算子作为新的当前算子,并采用上述相同的方法确定出该新的当前算子对应的运算结果,通过串行执行的方式得到算法链中的所有算子对应的运算结果,以实现对数字信号运算任务进行处理操作。需要说明的是,下文将会对该硬件加速处理器的硬件结构进行详细说明,在此先不做过多说明。
上述数字信号处理方法中,通过响应于针对数字信号运算任务发起的任务处理请求,确定数字信号运算任务对应的算法链;算法链由至少一个算子组装得到的;该算子用于表征对相应的操作数所实施的基本运算操作;再通过读取各算子对应的配置指令,以及,读取各算子对应的操作数;将算法链中的首个算子作为当前算子,并重复执行以下步骤:在当前算子对应的配置指令的指示下,对当前算子对应的操作数进行运算操作,回写当前算子对应的运算结果;将当前算子在算法链中的下一个算子作为新的当前算子;直至得到算法链中的末尾算子对应的运算结果,实现对数字信号运算任务进行处理操作;如此,可以实现将待运算算法拆解成若干个细粒度的基础算子,并采用硬件资源串行执行这些基础算子从而实现硬件加速,并实现对算法细颗粒度的基本算子的批量处理,进一步利用基础算子组装成粗颗粒度算法,实现硬件资源的高效复用与调度,在解放通用处理器的同时,减小数字集成电路硬件加速处理器的面积开销与功耗,由于算子可串行灵活排列,在实现资源的高效复用与调度的同时,适应多种算法开发,有效地提高了硬件加速处理器的处理性能。
在另一个实施例中,读取各算子对应的配置指令,包括:将算法链中的首个算子作为当前算子,读取当前算子对应的配置指令;在当前算子对应的配置指令读取完毕的情况下,将当前算子在算法链中的下一个算子作为新的当前算子,返回读取当前算子对应的配置指令的步骤,直至读取到算法链中的末尾算子对应的配置指令。
具体实现中,硬件加速处理器在读取各算子对应的配置指令的过程中,硬件加速处理器可以将算法链中的首个算子作为当前算子,读取当前算子对应的配置指令;在当前算子对应的配置指令读取完毕的情况下,将当前算子在算法链中的下一个算子作为新的当前算子,返回读取当前算子对应的配置指令的步骤,直至读取到算法链中的末尾算子对应的配置指令。
其中,在硬件加速处理器确定当前算子对应的配置指令需要回写至指令存储空间时,硬件加速处理器在检测到完成对当前算子对应的操作数进行运算操作的情况下,硬件加速处理器将当前算子对应的配置指令回写至指令存储空间;硬件加速处理器在检测到当前算子对应的配置指令回写完毕的情况下,将当前算子在算法链中的下一个算子作为新的当前算子,返回读取当前算子对应的配置指令的步骤即开始读取下一个算子对应的配置指令。
在硬件加速处理器检测到完成对当前算子对应的操作数进行运算操作的情况下,硬件加速处理器在当前算子在算法链中的下一个算子对应的配置指令读取完毕的情况下,将当前算子对应的配置指令回写至指令存储空间。
为了便于本领域技术人员的理解,图3实例性地提供了一种硬件加速处理器的指令访问流水示意图;请参照见图3,硬件加速处理器执行“AC_CFG”,开始执行取算法链(AC)操作;在取算法链完毕后,硬件加速处理器开始获取OP0(即算法链中的第一个算子)的配置信息;硬件加速处理器在完成读取OP0的配置信息后,硬件加速处理器则根据OP0的配置信息,硬件加速处理器执行OP0的运算任务;同时,硬件加速处理器开始获取OP1(即算法链中的第二个算子)的配置信息。
在硬件加速处理器执行OP0的运算任务后,硬件加速处理器则回写OP0的配置信息;同时,硬件加速处理器开始根据OP1的配置信息,执行OP1的运算任务。
在硬件加速处理器检测到回写OP0的配置信息完毕后,硬件加速处理器则开始获取OP2(即算法链中的第三个算子)的配置信息。
在硬件加速处理器执行OP1的运算任务后,若无需回写OP1的配置信息,硬件加速处理器则直接获取OP3(即算法链中的第四个算子)的配置信息。同时,硬件加速处理器开始根据OP2的配置信息,执行OP2的运算任务。
在硬件加速处理器执行OP2的运算任务后,硬件加速处理器开始回写OP2的配置信息;同时,硬件加速处理器开始根据OP3的配置信息,执行OP3的运算任务。
在硬件加速处理器检测到OP2的配置信息回写完毕后,硬件加速处理器开始获取OP4(即算法链中的第五个算子)的配置信息。
在硬件加速处理器未完成获取OP4的配置信息,且硬件加速处理器完成执行OP3的运算任务的情况下,硬件加速处理器搁置回写OP3的配置信息,直至硬件加速处理器完成获取OP4的配置信息,硬件加速处理器开始回写OP3的配置信息;同时,硬件加速处理器开始根据OP4的配置信息,执行OP4的运算任务。
在OP4为算法链的末尾算子,且需要回写OP4的配置信息的情况下,在硬件加速处理器执行OP4的运算任务后,硬件加速处理器回写OP4的配置信息;同时,硬件加速处理器回写算法链的配置信息。
本实施例的技术方案,通过对数据进行流水访问操作,实现了采用硬件资源串行执行这些基础算子从而实现硬件加速,并实现对算法细颗粒度的基本算子的批量处理,进一步利用基础算子组装成粗颗粒度算法,实现硬件资源的高效复用与调度,在解放通用处理器的同时,减小数字集成电路硬件加速处理器的面积开销与功耗。
在另一个实施例中,读取各算子对应的操作数,包括:将算法链中的首个算子作为当前算子,读取当前算子对应的操作数;在当前算子对应的操作数读取完毕的情况下,将当前算子在算法链中的下一个算子作为新的当前算子,返回读取当前算子对应的操作数的步骤,直至读取到算法链中的末尾算子对应的操作数。
具体实现中,硬件加速处理器在读取各算子对应的操作数的过程中,硬件加速处理器可以将算法链中的首个算子作为当前算子,读取当前算子对应的操作数;硬件加速处理器检测到当前算子对应的操作数读取完毕的情况下,将当前算子在算法链中的下一个算子作为新的当前算子,返回读取当前算子对应的操作数的步骤,直至读取到算法链中的末尾算子对应的操作数。
其中,在硬件加速处理器检测到当前算子对应的操作数读取完毕的情况下,硬件加速处理器还可以将当前算子对应的运算结果回写至数据存储空间;在硬件加速处理器检测到当前算子对应的运算结果回写完毕的情况下,将当前算子在算法链中的下一个算子作为新的当前算子,返回读取当前算子对应的操作数的步骤。
为了便于本领域技术人员的理解,图4实例性地提供了一种硬件加速处理器的数据访问流水示意图;请参照见图4,硬件加速处理器在收到“module_exe_start”指令后,硬件加速处理器执行“RD_ITEM 0”指令,开始取第一组操作数(即某个算法链中的第一个算子对应的操作数);硬件加速处理器在检测到第一组操作数读取完毕后,硬件加速处理器则开始执行“DPU_EXE 0”指令,进入执行状态,开始对第一组操作数进行运算操作;同时,硬件加速处理器执行“RD_ITEM 1”指令,开始取第二组操作数(即某个算法链中的第二个算子对应的操作数)。
在硬件加速处理器对第一组操作数进行运算操作完毕后,硬件加速处理器执行“WB_R 0”指令,开始回写该第一组操作数对应的运算结果。同时,硬件加速处理器则开始执行“DPU_EXE 1”指令,进入执行状态,开始对第二组操作数进行运算操作。
在硬件加速处理器检测到第一组操作数对应的运算结果回写完毕后,硬件加速处理器则执行“RD_ITEM 2”指令,开始取第三组操作数(即某个算法链中的第三个算子对应的操作数)。
在硬件加速处理器对第二组操作数进行运算操作完毕后,硬件加速处理器执行“WB_R 1”指令,开始回写该第二组操作数对应的运算结果。同时,硬件加速处理器则开始执行“DPU_EXE 2”指令,进入执行状态,开始对第三组操作数进行运算操作。
在硬件加速处理器对第三组操作数进行运算操作完毕后,硬件加速处理器执行“WB_R 2”指令,开始回写该第三组操作数对应的运算结果。
本实施例的技术方案,通过对操作数进行流水式访问操作,可以实现了采用硬件资源串行执行这些基础算子从而实现硬件加速,并实现对算法细颗粒度的基本算子的批量处理,减小数字集成电路硬件加速处理器的面积开销与功耗。
在一个实施例中,如图5所示,提供了一种用于处理数字信号的处理器500,处理器500包括:
请求处理单元510,用于响应于针对数字信号运算任务发起的任务处理请求,确定数字信号运算任务对应的算法链;算法链由至少一个算子组装得到的;算子用于表征对相应的操作数所实施的基本运算操作;
指令访问单元520,用于读取算法链中的任一算子对应的配置指令。
其中,指令访问单元可以是指指令地址生成单元(agu_i)。
数据访问单元530,用于在任一算子对应的配置指令读取完毕的情况下,读取该算子对应的操作数。
其中,数据访问单元可以是指数据地址生成单元(agu_d)。
运算处理单元540,用于在任一算子对应的操作数读取完毕的情况下,根据该算子对应的配置指令,对该算子对应的操作数进行运算操作,回写该算子对应的运算结果,以实现对数字信号运算任务进行处理操作。
其中,运算处理单元可以是指数据处理单元(dpu)。
实际应用中,指令访问单元520与数据访问单元530可以设置于处理器500的访问单元550(AGU_TOP)中。
具体实现中,在采用硬件加速处理器对数字信号运算任务进行硬件运算加速的过程中,请求处理单元接收针对数字信号运算任务发起的任务处理请求,请求处理单元响应于针对数字信号运算任务发起的任务处理请求,确定数字信号运算任务对应的算法链。该算法链由至少一个算子组装得到的;算子用于表征对相应的操作数所实施的基本运算操作。
在响应的算法链激活后,指令访问单元(agu_i)读取算法链中的任一算子对应的配置指令;数据访问单元(agu_d)在任一算子对应的配置指令读取完毕的情况下,读取该算子对应的操作数;然后,数据访问单元将算子对应的操作数发送至运算处理单元;运算处理单元在任一算子对应的操作数读取完毕的情况下,运算处理单元根据该算子对应的配置指令,对该算子对应的操作数进行运算操作,回写该算子对应的运算结果,以实现对数字信号运算任务进行处理操作。
上述用于处理数字信号的处理器,可以实现将待运算算法拆解成若干个细粒度的基础算子,并采用硬件资源串行执行这些基础算子从而实现硬件加速,并实现对算法细颗粒度的基本算子的批量处理,进一步利用基础算子组装成粗颗粒度算法,实现硬件资源的高效复用与调度,在解放通用处理器的同时,减小数字集成电路硬件加速处理器的面积开销与功耗,由于算子可串行灵活排列,在实现资源的高效复用与调度的同时,适应多种算法开发,有效地提高了硬件加速处理器的处理性能。
在另一个实施例中,处理器还包括指令访问接口;指令访问单元,用于生成任一算子对应的指令访问地址;指令访问地址用于供处理器通过指令访问接口从存储器的指令存储空间中读取该算子对应的配置指令。
其中,指令访问接口可以是指指令存储器访问接口(i_mst_interface)。实际应用中,该指令访问接口可以采用一组32bit AHB_LITE总线接口。
其中,存储器的指令存储空间可以是指指令存储器(iRAM)。
具体实现中,请参见图6,图6实例性地提供了另一种用于处理数字信号的处理器的硬件架构图;其中,该处理器500还包括指令访问接口560;指令访问单元520在读取算法链中的任一算子对应的配置指令的过程中,指令访问单元520可以通过指令译码生成任一算子对应的指令访问地址;处理器500可以利用该指令访问地址,通过指令访问接口560从与该处理器500电性连接的指令存储器中读取出该算子对应的配置指令。
其中,当处理器500检测出该算子对应的配置指令还需要回写至指令存储空间,指令访问单元520在检测到对任一算子对应的操作数进行运算操作完毕的情况下,指令访问单元520还可以通过指令访问接口将该算子对应的配置指令回写至存储器的指令存储空间(即指令存储器)中。
本实施例的技术方案,通过指令访问单元生成任一算子对应的指令访问地址,从而可以基于任一算子对应的指令访问地址,准确且快速地通过处理器中的指令访问接口从存储器的指令存储空间中读取该算子对应的配置指令,同时,在算子对应的配置指令还需要回写至指令存储空间的情况下,在对该算子对应的操作数进行运算操作完毕后快速地通过该指令访问接口将该算子对应的配置指令回写至指令存储器中。
在另一个实施例中,处理器还包括数据访问接口;数据访问单元,用于生成任一算子对应的数据访问地址;数据访问地址用于供处理器通过数据访问接口从存储器的数据存储空间中读取该算子对应的操作数。
其中,数据访问接口可以是指数据存储器访问接口(d_mst_interface)。实际应用中,该数据访问接口可以采用一组48bit AHB_LITE总线接口(地址总线32bit,数据总线64bit扩展为48bit)。
其中,存储器的数据存储空间可以是指数据存储器(iRAM)。
具体实现中,请再参见图6,如图6所示,该处理器500还包括数据访问接口570;数据访问单元530在读取算法链中的任一算子对应的操作数的过程中,数据访问单元530可以通过指令译码生成任一算子对应的数据访问地址;处理器500可以利用该数据访问地址,通过数据访问接口570从与该处理器500电性连接的数据存储器中读取出该算子对应的操作数。
在一些实施例中,当运算处理单元540根据该算子对应的配置指令,对该算子对应的操作数进行运算操作,得到该算子对应的运算结果后,数据访问单元530还可以接收运算处理单元540发送的该算子对应的运算结果,数据访问单元530再通过数据访问接口530将该算子对应的运算结果回写至存储器的数据存储空间(即数据存储器)中。
本实施例的技术方案,通过数据访问单元生成任一算子对应的数据访问地址,从而可以基于任一算子对应的数据访问地址有效地通过数据访问接口从存储器的数据存储空间中读取该算子对应的操作数;同时,在对该算子对应的操作数进行运算操作完毕后快速地通过该数据访问接口将该算子对应的运算结果回写至数据存储器中。
在另一个实施例中,请求处理单元还包括算法链请求仲裁单元;算法链请求仲裁单元,用于根据任务处理请求中的算法链软件请求和/或算法链硬件请求,确定待处理的数字信号运算任务对应的算法链。
其中,算法链请求仲裁单元可以命名为算法链请求仲裁模块(req_arbi)。
具体实现中,请再参见图6,如图6所示,该请求处理单元510包括算法链请求仲裁单元511,该算法链请求仲裁单元511可以根据任务处理请求中的算法链软件请求和/或算法链硬件请求,确定待处理的数字信号运算任务对应的算法链。
在一些实施例中,在请求处理单元510响应于针对数字信号运算任务发起的任务处理请求,确定数字信号运算任务对应的算法链的过程中,请求处理单元510可以将该针对数字信号运算任务发起的任务处理请求发送至算法链请求仲裁单元511,算法链请求仲裁单元511接收并解析该任务处理请求,并根据任务处理请求中的算法链软件请求和/或算法链硬件请求,确定待处理的数字信号运算任务对应的算法链。
在另一个实施例中,请再参见图6,请求处理单元510还包括控制接口512和寄存器513;控制接口512,用于供软件层向寄存器下发算法链软件请求,供寄存器513暂存算法链软件请求;寄存器513,用于发送算法链软件请求至算法链请求仲裁单元511;算法链请求仲裁单元511,用于根据算法链软件请求,确定待处理的数字信号运算任务对应的算法链。
其中,寄存器可以是指控制寄存器组(regbank)。
其中,控制接口是指控制从配置接口(ctrl_slv_interface)。实际应用中,该控制接口采用一组32bit APB_SLAVE总线接口。
实际应用中,该控制接口512可以接收配置控制信号;该配置控制信号用于配置处理器500的全局使能、算法链使能、优先级、硬件请求屏蔽、中断使能、算法链指令地址中的至少一种。实际应用中,该配置控制信号也可以命名为从配置信号。
具体实现中,通用处理器(CPU、DSP等)可以通过该控制接口512配置处理器500的全局使能、算法链使能、优先级、硬件请求屏蔽、中断使能、算法链指令地址等控制寄存器。通用处理器还可通过该控制接口512配置算法链软件请求,以及查看处理器500的运行状态寄存器,这些运行状态寄存器放置在寄存器513中。
在一些实施例中,请再参见图6,处理器500还包括中断接口580;中断接口580,用于将处理器产生的中断信号发送至与处理器电性连接的通用处理器。
具体实现中,在处理器500产生的中断信号后,处理器500可以通过该中断接口580向与处理器500电性连接的通用处理器(如,CPU、DSP等)发送该中断信号,以使该通用处理器可以及时确定处理器500的中断产生状态。
为了便于本领域技术人员的理解,图7还实例性地提供了一种硬件加速处理器的在AMBA(Advanced Microcontroller Bus Architecture,高级微控制器总线架构)总线中的集成系统示意图;其中,该集成系统包括硬件加速处理器(IBHA_TOP)、总线连接矩阵模块(AHB(Advanced High Performance Bus,先进高性能总线)MTX,AHB bus matrix)、指令存储器(iram)、数据存储器(dram)、APB bridge和NR APB;其中,硬件加速处理器的ahb_i端口(即指令访问端口)与总线连接矩阵模块的M0(0)端口连接,硬件加速处理器的ahb_d端口(即数据访问端口)与总线连接矩阵模块的M1(1)端口连接;总线连接矩阵模块的S0(0,2)端口通过存储器接口转换桥(mem bridge)与指令存储器(iram)连接;总线连接矩阵模块的S1(1,2)端口通过存储器接口转换桥与数据存储器(dram)连接;总线连接矩阵模块的S2(2)端口通过APB(Advanced Peripheral Bus,外围总线)接口转换桥(APB bridge)与硬件加速器apb总线接口(IBHA apb)连接;其中,存储器接口转换桥,用于将AHB接口时序转换为存储器接口时序;APB接口转换桥,用于将AHB接口时序转换为APB接口是时序;硬件加速器APB总线接口,用于配置硬件加速器的控制寄存器。
其中,硬件加速处理器的控制接口(ctrl_slv_interface)采用一组32bit APB_SLAVE总线接口,指令访问接口(i_mst_interface)采用一组32bit AHB_LITE总线接口,数据访问接口(d_mst_interface)采用一组48bit AHB_LITE总线接口(地址总线32bit,数据总线64bit扩展为48bit)。
在另一个实施例中,运算处理单元包括控制器和至少一个运算资源;控制器,用于调度与任一算子对应的运算资源,以对该算子对应的操作数进行运算操作,得到该算子对应的运算结果。
其中,控制器可以是指数据处理单元控制器(dpu_ctrl)。
实际应用中,请再参见图6,处理器500中的运算处理单元540包括控制器581和至少一个运算资源582。
其中,运算资源可以是指硬件资源,各硬件资源可以设置于该运算处理单元的数据处理单元矩阵(dpu_matrix)中;实际应用中,硬件资源可以包括乘法器、累加器等。
其中,第n个硬件资源可以表示为func_(n-1),其中,n大于或等于1。
具体实现中,控制器581可以根据指令译码调度与任一算子对应的运算资源,并通过该运算资源582对该算子对应的操作数进行运算操作,得到该算子对应的运算结果。
本实施例的技术方案,通过运算处理单元中的控制器调度与任一算子对应的运算资源,对该算子对应的操作数进行运算操作,可以实现有效地对数字信号进行处理。
为了便于本领域技术人员的理解,图8还实例性地提供了一种硬件加速处理器的控制与数据流的示意图;如图8所示,通用处理器可以将硬件加速处理器针对数字信号运算任务发起的任务处理请求发送至请求处理单元;具体来说,针对任务处理请求中的算法链软件请求(即软件请求);请求处理单元可以通过控制接口接收该算法链软件请求,并将该算法链软件请求发送至寄存器,供寄存器暂存算法链软件请求。然后,寄存器发送算法链软件请求至算法链请求仲裁单元;算法链请求仲裁单元根据算法链软件请求,确定待处理的数字信号运算任务对应的算法链。针对任务处理请求中的算法链硬件请求(即硬件请求),硬件加速处理器中的算法链请求仲裁单元可以接收该算法链硬件请求,硬件加速处理器根据算法链硬件请求,确定待处理的数字信号运算任务对应的算法链。
硬件加速处理器可以通过指令访问接口访问指令存储空间,通过数据访问接口访问数据存储空间。硬件加速处理器在响应的算法链激活后,针对该算法链中的任一算子,指令访问单元可以通过指令译码生成该算子对应的指令访问地址,指令访问单元可以利用该算子对应的指令访问地址通过指令访问接口从指令存储空间中读取该算子对应的配置指令;指令访问单元获取到该算子对应的配置指令后,指令访问单元可以将该算子对应的配置指令发送至数据访问单元。
数据访问单元可以响应于该算子对应的配置指令,通过指令译码生成该算子对应的操作数据访问地址,数据访问单元可以通过指令译码生成该算子对应的操作数据访问地址,指令访问单元可以利用该算子对应的操作数据访问地址通过数据访问接口从数据存储空间中读取该算子对应的操作数;数据访问单元获取到该算子对应的操作数后,数据访问单元可以将该算子对应的操作数发送至运算处理单元可以根据指令译码,调度硬件资源(图中func0,func1等)对该算子对应的操作数做相应运算。运算处理单元运算完毕后,该算子对应的运算结果由数据访问单元通过数据访问接口写入存储器。某一算子整体执行完毕后,指令访问单元根据该算子是否启用fifo配置控制指令(ITEM/R_FIFO)指令回写过程及中断产生。硬件加速处理器可以按照上述相同的方式对该算子在算法链中的下一个算子进行处理。如此,硬件加速处理器对算法链中基本算子至尾部算子串行执行完毕后,指令访问单元可以根据算法链配置指令(AC_CFG)控制指令回写过程,硬件加速处理器的中断信号由中断接口送至通用处理器。
基于同样的发明构思,本申请实施例还提供了一种知识产权核,该知识产权核包括如上文所述的用于处理数字信号的处理器,该知识产权核所提供的解决问题的实现方案与上文所述的用于处理数字信号的处理器中所记载的实现方案相似,故下面所提供的一个或多个知识产权核实施例中的具体限定可以参见上文中对于用于处理数字信号的处理器的限定,在此不再赘述。
在一个实施例中,提供了一种知识产权核(IP核,Intellectual Property core),该知识产权核包括:用于处理数字信号的处理器;
所述用于处理数字信号的处理器包括:
请求处理单元,用于响应于针对数字信号运算任务发起的任务处理请求,确定所述数字信号运算任务对应的算法链;所述算法链由至少一个算子组装得到的;所述算子用于表征对相应的操作数所实施的基本运算操作;
指令访问单元,用于读取所述算法链中的任一算子对应的配置指令;
数据访问单元,用于在所述任一算子对应的配置指令读取完毕的情况下,读取该算子对应的操作数;
运算处理单元,用于在所述任一算子对应的操作数读取完毕的情况下,根据该算子对应的配置指令,对该算子对应的操作数进行运算操作,得到该算子对应的运算结果,以实现对所述数字信号运算任务进行处理操作。
在其中一个实施例中,所述处理器还包括指令访问接口;所述指令访问单元,用于生成所述任一算子对应的指令访问地址;所述指令访问地址用于供所述处理器通过所述指令访问接口从存储器的指令存储空间中读取该算子对应的配置指令。
在其中一个实施例中,若所述任一算子对应的配置指令需要回写至指令存储空间,所述指令访问单元,还用于在对所述任一算子对应的操作数进行运算操作完毕的情况下,通过所述指令访问接口将该算子对应的配置指令回写至所述存储器的指令存储空间中。
在其中一个实施例中,所述处理器还包括数据访问接口;所述数据访问单元,用于生成所述任一算子对应的数据访问地址;所述数据访问地址用于供所述处理器通过所述数据访问接口从存储器的数据存储空间中读取该算子对应的操作数。
在其中一个实施例中,所述数据访问单元,还用于通过所述数据访问接口将所述任一算子对应的运算结果回写至所述存储器的数据存储空间中。
在其中一个实施例中,所述请求处理单元还包括算法链请求仲裁单元;所述算法链请求仲裁单元,用于根据所述任务处理请求中的算法链软件请求和/或算法链硬件请求,确定待处理的所述数字信号运算任务对应的算法链。
在其中一个实施例中,所述请求处理单元还包括控制接口和寄存器;所述控制接口,用于供软件层向所述寄存器下发所述算法链软件请求,供所述寄存器暂存所述算法链软件请求;所述寄存器,用于发送所述算法链软件请求至所述算法链请求仲裁单元;所述算法链请求仲裁单元,用于根据所述算法链软件请求,确定待处理的所述数字信号运算任务对应的算法链。
在其中一个实施例中,所述控制接口,还用于接收配置控制信号;所述配置控制信号用于配置所述处理器的全局使能、算法链使能、优先级、硬件请求屏蔽、中断使能或算法链指令地址中的至少一种。
在其中一个实施例中,所述处理器还包括中断接口;所述中断接口,用于将所述处理器产生的中断信号发送至与所述处理器电性连接的通用处理器。
在其中一个实施例中,所述运算处理单元包括控制器和至少一个运算资源;所述控制器,用于调度与所述任一算子对应的所述运算资源,以对该算子对应的操作数进行运算操作,得到该算子对应的运算结果。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的一种数字信号处理方法的一种数字信号处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个一种数字信号处理装置实施例中的具体限定可以参见上文中对于一种数字信号处理方法的限定,在此不再赘述。
在一个实施例中,如图9所示,提供了一种数字信号处理装置,包括:
响应模块910,用于响应于针对数字信号运算任务发起的任务处理请求,确定所述数字信号运算任务对应的算法链;所述算法链由至少一个算子组装得到的;所述算子用于表征对相应的操作数所实施的基本运算操作;
访问模块920,用于读取各所述算子对应的配置指令,以及,读取各所述算子对应的操作数;
运算模块930,用于将所述算法链中的首个算子作为当前算子,并重复执行以下步骤,直至执行结束条件满足:在所述当前算子对应的配置指令的指示下,对所述当前算子对应的操作数进行运算操作,回写所述当前算子对应的运算结果;将所述当前算子在所述算法链中的下一个算子作为新的当前算子;
其中,所述执行结束条件包括得到所述算法链中的末尾算子对应的运算结果;在满足所述执行结束条件之后,实现对所述数字信号运算任务进行任务处理操作。
在其中一个实施例中,所述访问模块920,具体用于将所述算法链中的首个算子作为当前算子,读取所述当前算子对应的配置指令;在所述当前算子对应的配置指令读取完毕的情况下,将所述当前算子在所述算法链中的下一个算子作为新的当前算子,返回所述读取所述当前算子对应的配置指令的步骤,直至读取到所述算法链中的末尾算子对应的配置指令。
在其中一个实施例中,若所述当前算子对应的配置指令需要回写至指令存储空间,所述访问模块920,具体用于在完成对所述当前算子对应的操作数进行运算操作的情况下,将所述当前算子对应的配置指令回写至所述指令存储空间;在所述当前算子对应的配置指令回写完毕的情况下,将所述当前算子在所述算法链中的下一个算子作为新的当前算子,返回所述读取所述当前算子对应的配置指令的步骤。
在其中一个实施例中,在完成对所述当前算子对应的操作数进行运算操作的情况下,所述装置还用于在所述当前算子在所述算法链中的下一个算子对应的配置指令读取完毕的情况下,将所述当前算子对应的配置指令回写至所述指令存储空间。
在其中一个实施例中,所述访问模块920,具体用于将所述算法链中的首个算子作为当前算子,读取所述当前算子对应的操作数;在所述当前算子对应的操作数读取完毕的情况下,将所述当前算子在所述算法链中的下一个算子作为新的当前算子,返回所述读取所述当前算子对应的操作数的步骤,直至读取到所述算法链中的末尾算子对应的操作数。
在其中一个实施例中,在所述当前算子对应的操作数读取完毕的情况下,所述装置还用于将所述当前算子对应的运算结果回写至所述数据存储空间;在所述当前算子对应的运算结果回写完毕的情况下,将所述当前算子在所述算法链中的下一个算子作为新的当前算子,返回所述读取所述当前算子对应的操作数的步骤。
上述数字信号处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种数字信号处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述一种数字信号处理方法的步骤。此处一种数字信号处理方法的步骤可以是上述各个实施例的一种数字信号处理方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述一种数字信号处理方法的步骤。此处一种数字信号处理方法的步骤可以是上述各个实施例的一种数字信号处理方法中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时,使得处理器执行上述一种数字信号处理方法的步骤。此处一种数字信号处理方法的步骤可以是上述各个实施例的一种数字信号处理方法中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (20)
1.一种数字信号处理方法,其特征在于,所述方法包括:
响应于针对数字信号运算任务发起的任务处理请求,确定所述数字信号运算任务对应的算法链;所述算法链由至少一个算子组装得到的;所述算子用于表征对相应的操作数所实施的基本运算操作;
读取各所述算子对应的配置指令,以及,读取各所述算子对应的操作数;
将所述算法链中的首个算子作为当前算子,并重复执行以下步骤,直至执行结束条件满足:
在所述当前算子对应的配置指令的指示下,对所述当前算子对应的操作数进行运算操作,回写所述当前算子对应的运算结果;
将所述当前算子在所述算法链中的下一个算子作为新的当前算子;
其中,所述执行结束条件包括得到所述算法链中的末尾算子对应的运算结果;在满足所述执行结束条件之后,实现对所述数字信号运算任务进行处理操作。
2.根据权利要求1所述的方法,其特征在于,所述读取各所述算子对应的配置指令,包括:
将所述算法链中的首个算子作为当前算子,读取所述当前算子对应的配置指令;
在所述当前算子对应的配置指令读取完毕的情况下,将所述当前算子在所述算法链中的下一个算子作为新的当前算子,返回所述读取所述当前算子对应的配置指令的步骤,直至读取到所述算法链中的末尾算子对应的配置指令。
3.根据权利要求2所述的方法,其特征在于,若所述当前算子对应的配置指令需要回写至指令存储空间,所述读取各所述算子对应的配置指令,包括:
在完成对所述当前算子对应的操作数进行运算操作的情况下,将所述当前算子对应的配置指令回写至所述指令存储空间;
在所述当前算子对应的配置指令回写完毕的情况下,将所述当前算子在所述算法链中的下一个算子作为新的当前算子,返回所述读取所述当前算子对应的配置指令的步骤。
4.根据权利要求3所述的方法,其特征在于,在完成对所述当前算子对应的操作数进行运算操作的情况下,所述方法还包括:
在所述当前算子在所述算法链中的下一个算子对应的配置指令读取完毕的情况下,将所述当前算子对应的配置指令回写至所述指令存储空间。
5.根据权利要求1所述的方法,其特征在于,所述读取各所述算子对应的操作数,包括:
将所述算法链中的首个算子作为当前算子,读取所述当前算子对应的操作数;
在所述当前算子对应的操作数读取完毕的情况下,将所述当前算子在所述算法链中的下一个算子作为新的当前算子,返回所述读取所述当前算子对应的操作数的步骤,直至读取到所述算法链中的末尾算子对应的操作数。
6.根据权利要求5所述的方法,其特征在于,在所述当前算子对应的操作数读取完毕的情况下,所述方法还包括:
将所述当前算子对应的运算结果回写至所述数据存储空间;
在所述当前算子对应的运算结果回写完毕的情况下,将所述当前算子在所述算法链中的下一个算子作为新的当前算子,返回所述读取所述当前算子对应的操作数的步骤。
7.一种数字信号处理装置,其特征在于,所述装置包括:
响应模块,用于响应于针对数字信号运算任务发起的任务处理请求,确定所述数字信号运算任务对应的算法链;所述算法链由至少一个算子组装得到的;所述算子用于表征对相应的操作数所实施的基本运算操作;
访问模块,用于读取各所述算子对应的配置指令,以及,读取各所述算子对应的操作数;
运算模块,用于将所述算法链中的首个算子作为当前算子,并重复执行以下步骤,直至执行结束条件满足:在所述当前算子对应的配置指令的指示下,对所述当前算子对应的操作数进行运算操作,回写所述当前算子对应的运算结果;将所述当前算子在所述算法链中的下一个算子作为新的当前算子;
其中,所述执行结束条件包括得到所述算法链中的末尾算子对应的运算结果;在满足所述执行结束条件之后,实现对所述数字信号运算任务进行任务处理操作。
8.一种用于处理数字信号的处理器,其特征在于,所述处理器包括:
请求处理单元,用于响应于针对数字信号运算任务发起的任务处理请求,确定所述数字信号运算任务对应的算法链;所述算法链由至少一个算子组装得到的;所述算子用于表征对相应的操作数所实施的基本运算操作;
指令访问单元,用于读取所述算法链中的任一算子对应的配置指令;
数据访问单元,用于在所述任一算子对应的配置指令读取完毕的情况下,读取该算子对应的操作数;
运算处理单元,用于在所述任一算子对应的操作数读取完毕的情况下,根据该算子对应的配置指令,对该算子对应的操作数进行运算操作,回写该算子对应的运算结果,以实现对所述数字信号运算任务进行处理操作。
9.根据权利要求8所述的用于处理数字信号的处理器,其特征在于,所述处理器还包括指令访问接口;
所述指令访问单元,用于生成所述任一算子对应的指令访问地址;所述指令访问地址用于供所述处理器通过所述指令访问接口从存储器的指令存储空间中读取该算子对应的配置指令。
10.根据权利要求9所述的用于处理数字信号的处理器,其特征在于,若所述任一算子对应的配置指令需要回写至指令存储空间,所述指令访问单元,还用于在对所述任一算子对应的操作数进行运算操作完毕的情况下,通过所述指令访问接口将该算子对应的配置指令回写至所述存储器的指令存储空间中。
11.根据权利要求8所述的用于处理数字信号的处理器,其特征在于,所述处理器还包括数据访问接口;
所述数据访问单元,用于生成所述任一算子对应的数据访问地址;所述数据访问地址用于供所述处理器通过所述数据访问接口从存储器的数据存储空间中读取该算子对应的操作数。
12.根据权利要求11所述的用于处理数字信号的处理器,其特征在于,所述数据访问单元,还用于通过所述数据访问接口将所述任一算子对应的运算结果回写至所述存储器的数据存储空间中。
13.根据权利要求8所述的用于处理数字信号的处理器,其特征在于,所述请求处理单元还包括算法链请求仲裁单元;
所述算法链请求仲裁单元,用于根据所述任务处理请求中的算法链软件请求和/或算法链硬件请求,确定待处理的所述数字信号运算任务对应的算法链。
14.根据权利要求13所述的用于处理数字信号的处理器,其特征在于,所述请求处理单元还包括控制接口和寄存器;
所述控制接口,用于供软件层向所述寄存器下发所述算法链软件请求,供所述寄存器暂存所述算法链软件请求;
所述寄存器,用于发送所述算法链软件请求至所述算法链请求仲裁单元;
所述算法链请求仲裁单元,用于根据所述算法链软件请求,确定待处理的所述数字信号运算任务对应的算法链。
15.根据权利要求13所述的用于处理数字信号的处理器,其特征在于,所述控制接口,还用于接收配置控制信号;所述配置控制信号用于配置所述处理器的全局使能、算法链使能、优先级、硬件请求屏蔽、中断使能或算法链指令地址中的至少一种。
16.根据权利要求8至15任意一项所述的用于处理数字信号的处理器,其特征在于,所述处理器还包括中断接口;
所述中断接口,用于将所述处理器产生的中断信号发送至与所述处理器电性连接的通用处理器。
17.根据权利要求8至15任意一项所述的用于处理数字信号的处理器,其特征在于,所述运算处理单元包括控制器和至少一个运算资源;
所述控制器,用于调度与所述任一算子对应的所述运算资源,以对该算子对应的操作数进行运算操作,得到该算子对应的运算结果。
18.一种知识产权核,其特征在于,包括:如权利要求8至17中任一项所述的用于处理数字信号的处理器。
19.一种硬件加速处理器,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211391530.4A CN118012519A (zh) | 2022-11-08 | 2022-11-08 | 数字信号处理方法、装置、用于处理数字信号的处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211391530.4A CN118012519A (zh) | 2022-11-08 | 2022-11-08 | 数字信号处理方法、装置、用于处理数字信号的处理器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118012519A true CN118012519A (zh) | 2024-05-10 |
Family
ID=90952966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211391530.4A Pending CN118012519A (zh) | 2022-11-08 | 2022-11-08 | 数字信号处理方法、装置、用于处理数字信号的处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118012519A (zh) |
-
2022
- 2022-11-08 CN CN202211391530.4A patent/CN118012519A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3832499B1 (en) | Matrix computing device | |
CN112612521A (zh) | 一种用于执行矩阵乘运算的装置和方法 | |
US20200293866A1 (en) | Methods for improving ai engine mac utilization | |
CN106575220B (zh) | 多个经集群极长指令字处理核心 | |
CN112035397A (zh) | 包括fpga的电子系统及其操作方法 | |
CN112667289B (zh) | 一种cnn推理加速系统、加速方法及介质 | |
EP3938866A1 (en) | Selectively controlling memory power for scheduled computations | |
US11809953B1 (en) | Dynamic code loading for multiple executions on a sequential processor | |
US12020065B2 (en) | Hierarchical processor selection | |
CN109213587B (zh) | GPU平台下的多Stream并行DAG图任务映射策略 | |
CN110458285A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US9697163B2 (en) | Data path configuration component, signal processing device and method therefor | |
US6986028B2 (en) | Repeat block with zero cycle overhead nesting | |
CN116541336B (zh) | 多核芯片、协处理器的软件运行方法 | |
US11880683B2 (en) | Packed 16 bits instruction pipeline | |
CN112214443B (zh) | 设置于图形处理器中的二次卸载装置和方法 | |
CN111158757B (zh) | 并行存取装置和方法以及芯片 | |
CN112559403B (zh) | 一种处理器及其中的中断控制器 | |
CN118012519A (zh) | 数字信号处理方法、装置、用于处理数字信号的处理器 | |
CN113407350B (zh) | 指令处理装置、处理器、芯片、计算设备及相应的方法 | |
CN111783954A (zh) | 一种用于确定神经网络的性能的方法和设备 | |
CN115437603B (zh) | 用于生成随机数的方法及其相关产品 | |
CN110458286B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US11947487B2 (en) | Enabling accelerated processing units to perform dataflow execution | |
WO2022111013A1 (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 |