基于HXDSP芯片的双精度浮点复数矩阵运算优化方法与流程

文档序号:21102709发布日期:2020-06-16 20:58阅读:746来源:国知局
基于HXDSP芯片的双精度浮点复数矩阵运算优化方法与流程

本发明属于数字信号处理器的底层函数优化领域,特别涉及基于hxdsp芯片的双精度浮点复数矩阵运算优化方法。



背景技术:

随着数字信号处理技术迅速地发展,dsp处理器被广泛地应用于图像处理、通讯技术、雷达探测、语音处理、网络控制、仪器仪表和家电等领域。自主研制dsp处理器芯片已逐渐成为我国数字信号处理技术发展的重要课题。在这种背景下,某研究所推出了高性能的系列dsp处理器hwdsp1024,这款dsp从体系结构到指令体系开始,到设计实现、软硬件配套的开发环境完全自主研发,其性能甚至还高于国际上通用的一些产品。在国防安全、公共安全、物联网、通讯等产业中均具有广泛的应用前景,它的成功将打破国外对我国高端数字信号处理芯片的垄断。

hwdsp1024集成了2个处理器核(ec104+),16发射(每个指令周期最多同时发送16条指令)、单指令流,多数据流架构。每个ec104+内核包含在四个执行宏中,每个执行宏内部包含2组寄存器,每组寄存器有64个(32位的二进制数据)、8个算术逻辑单元(alu)、8个乘法器、4个移位器和1个超算器(spu);所使用的开发语言是c语言或者汇编语言,考虑到提高函数运算的效率,虽然c语言易读、可移植性好,但不便于对硬件系统的直接控制,不能充分发挥dsp芯片自身的特点,因此选用汇编语言完成库函数的设计,以保证硬件资源利用的最大化。但直接从c语言编译得到的汇编语言没有结合dsp芯片的硬件特点,存在一定的缺陷,特别是针对双精度浮点复数的乘法运算,存在严重的bank冲突。



技术实现要素:

为了解决上述问题,本发明的目的是提出基于hxdsp芯片的双精度浮点复数矩阵运算优化方法。能够实现双精度浮点复数矩阵的相乘后再与另一个双精度浮点复数矩阵求和的优化方法,能够避免双精度浮点复数矩阵相乘过程中的bank冲突带来的卡顿现象,提高了双精度浮点复数矩阵运算效率;此外,充分利用hxdsp芯片的硬件资源,从而大大提高底层函数的处理效率。

为了达到上述目的,本发明采用以下技术方案予以解决。

基于hxdsp芯片的双精度浮点复数矩阵运算优化方法,包括:

双精度浮点复数矩阵运算为第一双精度浮点复数矩阵与第二双精度浮点复数矩阵相乘后再与第三双精度浮点复数矩阵相加;且第一双精度浮点复数矩阵的规格为m*n,第二双精度浮点复数矩阵的规格为n*k,第三双精度浮点复数矩阵的规格为m*k;

所述第一双精度浮点复数矩阵与第二双精度浮点复数矩阵相乘后再与第三双精度浮点复数矩阵相加包含由多次第一双精度浮点复数矩阵中的一个元素与第二双精度浮点复数矩阵的前四列的对应行的四个元素相乘后并与第三双精度浮点复数矩阵对应元素相加的过程构成的内循环;多次由第一双精度浮点复数矩阵中的一行与第二双精度浮点复数矩阵的每个四列的对应四个元素相乘的过程构成的外循环;

第一双精度浮点复数矩阵中的一个元素与第二双精度浮点复数矩阵的对应行的四个元素相乘累加后并与第三双精度浮点复数矩阵对应元素相加的过程中包含基于hxdsp芯片指令并行的优化、基于循环展开的优化以及基于软件流水的优化;

所述基于hxdsp芯片指令并行的优化为同一指令同时控制多个运算单元执行相同操作的优化;所述基于循环展开的优化为在一次循环中展开多次相同的循环的优化;所述基于软件流水的优化为将所述多次相同的循环并行交叉执行的优化。

进一步地,所述hxdsp芯片包含4个执行宏,每个执行宏中包含64字的通用寄存器组,通用寄存器组内寄存器分为a面寄存器和b面寄存器,a面寄存器的编号分别从0到63,0-19为第一寄存器组,20-39为第二寄存器组,40-59为第三寄存器组,b面寄存器的编号分别从40到59,为第四寄存器组;四个执行宏的运算可以并行;每个执行宏中还包含8个乘法器、8个算术逻辑单元(alu)、4个移位器和一个超算器;所述hxdsp芯片具有三种地址寄存器,每种地址寄存器包含16个寄存器;

所述基于hxdsp芯片指令的并行优化,具体包括分别读取第一双精度浮点复数矩阵中的8个数据和第二双精度浮点复数矩阵中的8个数据;且第一双精度浮点复数矩阵中的8个数据为相同的4个第一双精度浮点复数矩阵中的一个元素对应的2个数据,第二双精度浮点复数矩阵中的8个数据为第二双精度浮点复数矩阵中的同一行的四个元素;读取第一浮点复数向量中的8个数据和读取第二浮点复数向量中的8个数据并行进行;

其中,在循环开始之前,读取第三双精度浮点复数矩阵中的8个数据并存储;

将所述第一双精度浮点复数矩阵中的8个数据分别依次对应存储于由hxdsp芯片的四个寄存器组中的第一寄存器和第二寄存器组成的八个寄存器中;所述第二双精度浮点复数矩阵中的8个数据分别依次对应存储于由hxdsp芯片的四个寄存器组中的第三寄存器和第四寄存器组成的八个寄存器中;所述第三双精度浮点复数矩阵中的8个数据分别依次对应存储于由hxdsp芯片的四个寄存器组中的第五寄存器和第六寄存器组成的八个寄存器中;且第一双精度浮点复数矩阵中的8个数据的存储和第二双精度浮点复数矩阵中的8个数据的存储并行进行;

在一条指令中采用所述hxdsp芯片的每个执行宏中的第一乘法器将第一寄存器中的数据和第三寄存器中的数据相乘,并将乘积结果存储于第七寄存器中;第二乘法器分别将第二寄存器中的数据和第四寄存器中的数据相乘,并将乘积结果存储于第八寄存器中;且第一乘法器与第二乘法器的数据相乘并行进行。

进一步地,所述基于内循环展开的优化,具体为:在一次内循环中执行多次浮点复数相乘过程。

进一步地,所述基于循环展开的优化,具体为:在一次内循环中执行四次浮点复数相乘过程。

进一步地,所述内循环的浮点复数相乘具体过程为:

首先,将第一双精度浮点复数矩阵第一行的第一个元素分别与第二双精度浮点复数矩阵的前四列数据中的第一行数据相乘求和,结果累加至存储有第三双精度浮点复数矩阵相应元素的寄存器上;将第一双精度浮点复数矩阵第一行的第二个元素分别与第二双精度浮点复数矩阵的前四列数据中的第二行数据相乘求和,结果累加至存储有第三双精度浮点复数矩阵相应元素的寄存器上;依次类推,直至第二双精度浮点复数矩阵的前四列所有数据计算完成;

然后,将第一双精度浮点复数矩阵第一行的第一个元素分别与第二双精度浮点复数矩阵的下一个四列数据中的第一行数据相乘求和,结果累加至存储有第三双精度浮点复数矩阵相应元素的寄存器上;依次类推,直至第一双精度浮点复数矩阵第一行与第二双精度浮点复数矩阵的所有列相乘,再与第三双精度浮点复数矩阵的第一行相加,即得到最终计算的第一行数据结果;

所述外循环的具体过程为:对于第一双精度浮点复数矩阵的每一行,从第一行到最后一行,依次顺序进行所述内循环。

进一步地,所述基于软件流水的优化,具体为:

基于软件流水优化后的内循环中包含循环起始期和正常循环期;内循环执行的指令依次为读数指令、宏间传输指令、复数乘法指令、复数加减法指令和累加指令;

在循环起始期,四个寄存器组依次进行读数指令、宏间传输指令、复数乘法指令、复数加减法指令和累加指令;

在正常循环期,四个寄存器组分别进行读数指令、宏间传输指令、复数乘法指令、复数加减法指令和累加指令,且同一时刻每两个寄存器组之间的指令不同。

与现有技术相比,本发明的有益效果为:

(1)本发明的矩阵相乘方法与传统的矩阵的一行乘一列不同,本发明采用将矩阵的第一双精度浮点复数矩阵的第一个元素分别存入八个寄存器中,与第二双精度浮点复数矩阵的前四列的对应行的四个元素相乘累加,避免了传统矩阵乘法中出现的内存冲突导致的停拍。

(2)本发明在内循环的过程中,为充分使用资源,采用指令并行的方法进行内循环,即通过将循环体中不相关的循环进行展开,减少内循环的判断跳转次数,减少流水停顿,提高执行效率;通过软件流水的优化,各指令在不同循环次数中交错使用,提高指令利用率。

附图说明

下面结合附图和具体实施例对本发明做进一步详细说明。

图1(a)为本发明实施例hxdsp1042芯片的内存数据排布示意图;

图1(b)为本发明实施例的数据存储示意图;

图2(a)传统复数矩阵相乘方法中的矩阵a;

图2(b)传统复数矩阵相乘方法中的矩阵b;

图3(a)本发明实施例复数矩阵相乘方法中的矩阵a;

图3(b)本发明实施例复数矩阵相乘方法中的矩阵b;

图3(c)本发明实施例复数矩阵相乘方法中的矩阵c;

图4本发明实施例中双精度浮点复数矩阵相乘再相加运算的循环流程示意图;

图5为图4中的最内层循环的并行示意图;

图6(a)为本发明实施例中a面寄存器的数据存储示意图;

图6(b)为本发明实施例中b面寄存器的数据存储示意图。

具体实施方式

下面结合附图对本发明的实施例及效果作进一步详细描述。

开发底层函数主要使用到执行宏中的资源,处理器的执行部件包含在四个执行宏中,四个执行宏的外部接口和内部构造完全一致,它们从译码器获得操作命令,从数据存储器获得操作数,进行各种特定的操作。

本发明的hxdsp芯片包含4个执行宏(分别是x,y,z,t),每个执行宏中包含64字的通用寄存器组(32位),通用寄存器组内寄存器的编号分别从0到63,四个宏的运算可以并行。每个执行宏中还包含8个乘法器,8个罗伊算数单元alu(其中包含加法运算),4个移位器和一个超算器。另外芯片共有三种地址寄存器(u、v、w),每种地址寄存器包含16个寄存器(u0-u15、v0-v15、w0-w15)

以下是对本发明的寻址、乘法、加法指令进行描述:

本发明的三种地址寄存器u、v、w用法一致,下面以u地址寄存器为例说明:

u单元双字寻址指令:在双字操作过程中,将每一个地址和其邻接地址作为一组构成一个地址对,从存储器读出的其他数据地址则由地址偏移量uk确定;由于这里采用的双字节读数,故地址偏移量是乘上2后构成的实际的调整量,以此形成[un]和[un+1]、[un+2uk]和[un+2uk+1]、[un+2*2uk]和[un+2*2uk+1]、[un+3*2uk]和[un+3*2uk+1]共8个地址,分别读出8个数据送到运算宏单元。{x,y,z,t}中出现的宏每一个接收2个数据。

本发明的hxdsp1042芯片内部存储器包括程序存储器和数据存储器两种。对于数据存储器,每块数据细化成8个bank,内存数据排布如如图1(a)所示,图1(a)中内存的每个地址可以存放32位二进制数,图中的地址和16进制数据仅用来说明bank的划分。

在双字寻址的过程中,地址产生器会产生多个有效地址,对上述[un]和[un+1]、[un+2uk]和[un+2uk+1]、[un+2*2uk]和[un+2*2uk+1]、[un+3*2uk]和[un+3*2uk+1]的八个地址同时取数,由于uk的大小不确定,如果某两个或两个以上的地址落在同一存储器bank上,就会产生bank冲突,一旦产生bank冲突,必须使整个流水线停顿,直到所有的数据被正确的读出或写入,才能恢复正常流水。

在传统的矩阵乘法中,以第一双精度浮点复数矩阵a的规格为m*n,第二双精度浮点复数矩阵b的规格为n*k,m=6,n=6,k=6为例:

传统矩阵相乘的过程是:将矩阵a通过双字寻址指令:{x,y,z,t}rs+1:s=[un+=2,8]按行取出四个分别放入寄存器xrs+1:s、yrs+1:s、zrs+1:s、trs+1:s中,将矩阵b通过双字寻址{x,y,z,t}rm+1:m=[un+=4*2*4,4*2]指令按列取四个数分别放入xrm+1:m、yrm+1:m、zxrm+1:m、txrm+1:m;然后将rs+1:s,rm+1:m进行double相乘;矩阵a和矩阵b分别如图2(a)和2(b)所示,传统的矩阵相乘就是先取a第一行前四个元素与矩阵b的第一列进行乘积运算,那么对于两个矩阵相乘后再与另一个矩阵相加的运算过程,即a*b+c的运算过程中,设矩阵a中的元素为ak*i+bk(其中k为编号),矩阵b中元素为ck*i+dk,矩阵c中的元素为ek*i+fk。

而采用传统的矩阵相乘的方法进行运算时,虽然容易实现,但显然在对矩阵b取数的时候,容易造成bank冲突。矩阵b在内存中的排布如图1(b)所示,其一般存储规则是先虚后实。同时取一列的四个数时,如果这四个数在同一个bank中,便会产生bank冲突导致停拍;例如图1(b)中,用双字寻址取同一列的四个数时,如c1d1与c5d5在同一个bank中将会导致bank冲突。

为解决上述矩阵乘法过程中的bank冲突问题,参考图3(a)-3(c),本发明提出一种基于hxdsp芯片的双精度浮点复数矩阵运算优化方法,具体为:

将矩阵a通过双字寻址指令:{x,y,z,t}rs+1:s=[un+=0,2]按行取出四个分别放入寄存器xrs+1:s、yrs+1:s、zrs+1:s、trs+1:s中,将矩阵b通过双字寻址{x,y,z,t}rm+1:m=[un+=8,2]指令按列取四个数分别放入xrm+1:m、yrm+1:m、zxrm+1:m、txrm+1:m。然后将rs+1:s,rm+1:m进行double相乘。图3(a)为矩阵a的存储情况,图3(b)为矩阵b的存储情况,图3(c)为矩阵c的存储情况,其中矩阵a、b相乘时,先进行图中阴影部分的计算,即先取出矩阵a的第一个元素,寄存器xrs+1:s、yrs+1:s、zrs+1:s、trs+1:s中均放入矩阵a的第一个元素;再与矩阵b的第一行的前四个元素xrm+1:m、yrm+1:m、zxrm+1:m、txrm+1:m相乘,将乘积结果与存放在xrk+1:k、yrk+1:k、zxrk+1:k、txrk+1:k四个寄存器的矩阵c的四个元素相加,将最终结果存放在xrk+1:k、yrk+1:k、zxrk+1:k、txrk+1:k寄存器中。

再取矩阵a的下一个元素,与矩阵b前四列的第二行元素相乘求和,结果继续与寄存器xrk+1:k、yrk+1:k、zxrk+1:k、txrk+1:k相加;依次类推,直到得到前四个数,即可输出。

接下来,取矩阵a当前行的剩余元素分别与矩阵b前四列剩余元素进行依次相乘,与寄存器xrk+1:k、yrk+1:k、zxrk+1:k、txrk+1:k相加,其中得到前四个数即可输出。然后,与上述过程相同,计算矩阵a第一行与矩阵b5-8列数据相乘累加的结果,依次类推,直至矩阵a第一行与矩阵b的所有列计算完毕,至此完成矩阵a的第一行与矩阵b所有列的运算。

对于矩阵a的剩余行数据同样进行上述过程,直至矩阵a的所有行计算完成,具体流程如图4所示。在最内层循环的过程中,为充分使用资源,采用指令并行的方法,最内层循环方式如图5所示。

具体地,设矩阵a的值为a*i+b、矩阵b的值为c*i+d,本发明的矩阵乘法运算为a*b=(a*i+b)(c*i+d)=(ad+bc)*i+(bd-ac)。

本发明芯片中每个执行宏内部包含2组寄存器,每组寄存器有64个(32位的二进制数据),两组分别叫a面寄存器和b面寄存器,如图6(a)和6(b)所示。

设矩阵a中的元素为ak*i+bk(其中k为编号)矩阵b中元素为ck*i+dk,矩阵c中的元素为ek*i+fk。

每个寄存器有x、y、z、t四个宏,以a面寄存器的x宏为例,其在运算过程中的数据存储如图6(a)所示,计算过程中,以20个寄存器为一组进行计算,其中a面寄存器0-19为一组,20-39为一组,40-59为一组,b面40-59为一组(如图6(b)所示)。a面寄存器60-63一开始存放从矩阵c中取出的值。与相乘的结果累加后存放最终运算结果。

图5中每循环一次为一组数,一个寄存器组进一组数;循环起始期过程如表1所示:

表1内循环起始期的四组数在相邻循环中的运算操作

从表1阴影部分可以看出,第一组数的不同运算操作按顺序依次进行,避免硬件冲突。

待进入正常循环期后,四组数据同时交错进行相应运算,如表2所示:

表2循环体进入正常循环期后的四组数在相邻循环中的运算

从表2可以看出,不同运算指令在四组数据之间交叉使用,充分利用了硬件资源。

以下对本发明的双精度浮点复数矩阵的运算指令进行介绍:

(1)double乘法指令为:

qmacch=dfrm+1:m*dfrn+1:n

dfrs+1:s=qmacch

qmaccl=dfrm+1:m*dfrn+1:n

dfrs+1:s=qmaccl

以上两条指令连续使用,可以进行64位浮点乘法。指定的4个乘法器,本指令占用四个乘法器。8个乘法器按照0~7编号,低4个乘法器或者高4个乘法器组成配对的4个乘法器。即0~3号乘法器配对,或4~7号乘法器配对。

其中:dfrm+1:m表示一个64位浮点数。其中rm+1中存放该64位浮点数的高32位,rm表示该64位浮点数的低32位。

根据上述可知,每个宏中包含8个乘法器,每一组数进行a*d、b*c、b*a、a*c四组乘法,qmacch=dfrm+1:m*dfrn+1:n为复数相乘指令,dfrs+1:s=qmacch为赋值指令,其各占用四个乘法器,且不能并行,所以可以让a*c和b*d同一拍计算,两拍出结果,b*c、a*d同一拍计算,两拍出结果,所以每一组double乘法,需要四拍计算完成。

(2)double加法指令为:

dfhacck=dfhrm+dhfhrn

dflacck=dflrm+dflrn

dfhrs=dfhacck

dflrs=dflacck

以上四条指令连续使用,可进行64位浮点加减法。

其中,hrm、lrm两个寄存器分别存储一个64位浮点数的高32位和低32位,代表一个64位浮点数,这两个通用寄存器的索引号必须连续,记为dfrm+1:m,其中rm+1中存储64位浮点数的高32位,rm存储64位浮点数的低32位。以上4个微操作的alu选择k必须相同,才能完成一次64位浮点数减法,占一个alu。

一个循环体中,double加法本身需要四拍,一个循环体需要计算ad+bc、bd-ac、e+σ(ad+bc)和f+σ(bd-ac)四组加法,每个宏使用4个alu,虽然每个宏有8个alu,但仍然需要四拍。

选取如表3所示的同时进行的一组数据运算过程进行说明:

表3选取的同时进行的一组数据运算

本发明的先乘再加矩阵运算的一组数据共需四拍,每一拍的指令为:

第一拍

r23:22=[v1+=2,0]||xyr25:24=[w1+=4,1]||qmaccl=dfr53:52*dfr55:54||qm

acch=dfr43:42*dfr45:44||dfhacc0=dfhr27-dfhr29||dfhacc1=dfh

r26-dfhr28

||dfhacc4=dfhr0+dfhr60||dfhacc5=dfhr1+dfhr61

第二拍

r33:32=[v1+=2,0]||ztr25:24=[w1+=4,1]||dfr47:46=qmaccl||dfr49:48=qm

acch||dfhr21=dfhacc0||dfhr20=dfhacc1||dfhr60=dfhacc4||dfh

r61=dfhacc5

第三拍

xyr35:34=[w1+=4,1]||xr15:14=yr5:4||yr5:4=xr15:14||qmaccl=dfr53:52*df

r45:44||qmacch=dfr43:42*dfr55:54||dfhacc2=dfhr37+dfhr39

||dfhacc3=dfhr36+dfhr38||dfhacc6=dfhr10+dfhr62||dfhacc7=dfhr11+dfhr63

第四拍

ztr35:34=[w1+=4,1]||zr15:14=tr5:4||tr5:4=zr15:14||dfr57:56=qmaccl||dfr

59:58=qmacch||dfhr31=dfhacc2||dfhr30=dfhacc3||dfhr62=dfhacc6||dfhr63=dfhacc7

每一拍指令的含义如下:

||为并行指令,r23:22=[v1+=2,0]、r33:32=[v1+=2,0]是从矩阵a中读取数据,每次最多读取八个32位,即四个double型数据,读取两次,共读取四个double

复数数据:ai,bi,ai+1,bi+1,ai+2,bi+2,ai+3,bi+3。

xyr25:24=[w1+=4,1]、ztr25:24=[w1+=4,1]、xyr35:34=[w1+=4,1]、

ztr35:34=[w1+=4,1]分别表示从矩阵b中读取数据,每次读四个32位数据,读取四次,共读取四个double复数:ci,di,ci+1,di+1,ci+2,di+2,ci+3,di+3。

xr15:14=yr5:4||yr5:4=xr15:14、zr15:14=tr5:4||tr5:4=zr15:14分别为宏间传输指令,分两拍完成。

qmaccl=dfr53:52*dfr55:54||qmacch=dfr43:42*dfr45:44、

dfr47:46=qmaccl||dfr49:48=qmacch、

qmaccl=dfr53:52*dfr45:44||qmacch=dfr43:42*dfr55:54、

dfr57:56=qmaccl||dfr59:58=qmacch分别表示double乘法,四个宏并行,一共16个double乘法a*d,b*c,b*d,a*c分四拍完成。

dfhacc0=dfhr27-dfhr29||dfhacc1=dfhr26-dfhr28、

||dfhr21=dfhacc0||dfhr20=dfhacc1、

dfhacc2=dfhr37+dfhr39||dfhacc3=dfhr36+dfhr38、

dfhr31=dfhacc2||dfhr30=dfhacc3分别表示double加法运算,a*d+b*c、b*d-a*c四个宏,共8次加法分四拍完成。

dfhacc4=dfhr0+dfhr60||dfhacc5=dfhr1+dfhr61、

dfhr60=dfhacc4||dfhr61=dfhacc5、

dfhacc6=dfhr10+dfhr62||dfhacc7=dfhr11+dfhr63、

dfhr62=dfhacc6||dfhr63=dfhacc7分别为累加运算,四拍实现四个宏共八次加法。

本发明通过巧妙的排布,使得本发明的复数浮点矩阵相乘再相加的运算可以合并到四拍完成,加快运算过程。

本发明关于进数方面的设计:

本发明的hxdsp104x内核内部数据总线一共有四条,为两读两写,同一时间最多只允许三条总线工作;也就是说一个时钟周期内最多进两组数。根据前面描述,每一组运算需要进a、b、c、d四个数(四个宏共进16个数),由于数据类型为双精度,两个寄存器存放一个数。根据上述描述,第一复数浮点矩阵a四个宏中的数据取同样的数a、b,具体指令为:

r23:22=[v1+=2,0]

r33:32=[v1+=2,0]

第二复数浮点矩阵b,为避开bank冲突,采用以四个数为周期取数的方法。

具体的进数指令为:

xyr5:4=[w2+=4,1]

ztr5:4=[w2+=4,1]

xyr15:14=[w2+=4,1]

ztr15:14=[w2+=4,1]

其中,xyr5:4=[w2+=4,1]表示xr5:4存放c1、yr5∶4存放d1;ztr5:4=[w2+=4,1]表示zr5∶4存放c2、tr5:4存放d2;xyr15:14=[w2+=4,1]表示xr15:14存放c3、yr15∶14存放d3;ztr15:14=[w2+=4,1]表示zr15∶14存放c4、tr15∶14存放d4。

宏间传输具体实现指令为:

xr15:14=yr5:4||yr5:4=xr15:14

zr15:14=tr5:4||tr5:4=zr15:14

xr15:14=yr5:4||yr5:4=xr15:14表示xr15∶14存放d1、yr5:4存放c3;

zr15:14=tr5:4||tr5:4=zr15:14表示zr15:14存放d2、tr5:4存放c4;

经过以上指令,保证r5∶4中存放c1,c2,c3,c4,r15∶14中存放d1,d2,d3,d4。

循环体计数方法:零开销循环寄存器lc0:

指令形式为iflc0blabel,代表零开销循环。在循环体末尾检查lc0是否等于0,如果等于0,则不跳转,往下顺序执行,这种情况下指令处于循环体的末尾。零开销循环在流水线上与条件跳转相同。指令形式为ifnlc0blabel,代表基于lc0的跳转,如果检查到lc0等于0,则跳转到label目的地址;如果不等于0,则顺序执行。

本发明的hxdsp芯片型号为hxdsp1042。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1