一种提高重复程序执行性能的软硬件协同缓存装置制造方法及图纸

技术编号:25947334 阅读:30 留言:0更新日期:2020-10-17 03:39
本发明专利技术公开了一种提高重复程序执行性能的软硬件协同缓存装置,其包括:起始寄存器,用来标识重复程序段的起始位置;结束寄存器,用来识别重复程序段的结束位置;计数寄存器,用来存储重复程序执行的次数;控制逻辑单元,用来判断重复程序段是否落入特定的地址空间,同时控制执行包缓存开始存储和派发执行包,并清除起始寄存器和结束寄存器的控制位和维护计数寄存器;执行包缓存单元,用来存储派发到功能部件的执行包信息;当将重复程序段的执行包全部缓存完后,由执行包缓存单元直接派发执行包到功能部件,同时暂停取指流水。本发明专利技术具有结构简单、原理简单、适用范围广等优点。

【技术实现步骤摘要】
一种提高重复程序执行性能的软硬件协同缓存装置
本专利技术主要涉及到数字信号处理器
,特指一种提高重复程序执行性能的软硬件协同缓存装置。
技术介绍
数字信号处理器(DSP)作为数字信号处理的核心,其应用已经广泛深入到了航天、航空、雷达、声纳、通信、家用电器等各个领域,成为电子系统的心脏。高性能低功耗DSP的研制对推动这些领域技术的进步,起重要的作用。DSP可以快速的实现对信号的采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。VLIW体系结构的DSP的指令特点是将固定长度的指令字段封装成一个取指包,执行包是由同一拍需要同时执行的指令字段组成,长度不固定,一个取指包中可能只包含一个执行包,也可能包含多个执行包。一个执行包可能只包含一个功能部件的指令,也可能包含多个功能部件的指令。DSP应用程序的特点是重复调用一些核心算法,这体现在应用程序中存在大量的需要重复执行的程序段,最典型的是循环程序,如for循环和while循环。代码执行过程中存在大量需要重复执行的程序段对其执行效率带来了很大影响:一方面程序反复执行需要重新从执行包缓存中取指译码,将取指包译码成执行包,带来了不必要的功耗浪费;另一方面增加了对指令存储的访问次数,对于嵌入式应用而言不仅增加了访存延迟,更增大了访存功耗。软件流水是一种提高程序执行效率的方法,软件流水通过重叠执行循环的不同迭代,来加速循环的执行和减少循环转移的次数。模调度算法是一种重要的软件流水算法,其核心思想是在为循环构建出一种迭代方式,当循环的不同迭代以一定的间隔执行时,迭代内和迭代间的指令间都没有相关性违反和资源冲突出现。但在现有技术中存在以下问题,重复执行的程序段还是需要重新访存取指译码,无形中加大了访存延迟对程序执行效率的影响,同时也加大了程序执行时的功耗。
技术实现思路
本专利技术要解决的技术问题就在于:针对现有技术存在的技术问题,本专利技术提供一种结构简单、原理简单、适用范围广的提高重复程序执行性能的软硬件协同缓存装置。为解决上述技术问题,本专利技术采用以下技术方案:一种提高重复程序执行性能的软硬件协同缓存装置,其包括:起始寄存器,用来标识重复程序段的起始位置;结束寄存器,用来识别重复程序段的结束位置;计数寄存器,用来存储重复程序执行的次数;控制逻辑单元,用来判断重复程序段是否落入特定的地址空间,同时控制执行包缓存开始存储和派发执行包,并清除起始寄存器和结束寄存器的控制位和维护计数寄存器;执行包缓存单元,用来存储派发到功能部件的执行包信息;当将重复程序段的执行包全部缓存完后,由执行包缓存单元直接派发执行包到功能部件,同时暂停取指流水。作为本专利技术的进一步改进:当执行的不是重复程序时,选择正常取指译码的执行包进行派发;当执行的重复程序时,直接派发执行包缓存中的执行包。作为本专利技术的进一步改进:所述执行包缓存单元的结构是一个深度为Y位宽为N*X+PC的缓存,其中Y是支持的重复程序包含的执行包长度,N是派发到功能部件的指令信息的位宽,X是功能单元的数量,PC是每个执行包的地址位宽;缓存的执行包信息包含指令域Inst_field和指令有效信息Inst_active。作为本专利技术的进一步改进:所述执行包缓存单元的每一行都是一个执行包,所述执行包中包含多个部件的指令或只包含某一个部件的指令;当只包含一个部件的指令时,一行中就只有该部件的指令信息是有效的,即Inst_active为1,其他无效部件的Inst_active为0;当执行包缓存派发完毕或者需要作废指令时将Inst_active置为0。作为本专利技术的进一步改进:所述执行包缓存单元中控制器状态机的执行包缓存包含3个状态,空闲状态idle,装载状态load,派发状态dispatch。作为本专利技术的进一步改进:所述状态的切换条件包括:(1)当检测到将要执行的执行包地址落在了特定的地址空间或者检测到开始寄存器的特定位被写入了1,则将状态切换到load状态,开始缓存执行包;(2)当检测到将要执行的执行包的地址跳出了特定的地址空间或者检测到结束寄存器的特定位被写入了1,同时计数寄存器的值不为0,则将状态切换到diapatch,暂停取指又执行包缓存直接向功能部件派发执行包;(3)当检测到计数寄存器的值为0,同时执行包缓存的派发计数器的值也为0,即重复程序的执行包都派发完了,将状态切换到idle;(4)当检测到将要执行的执行包地址没有落在特定的地址空间且开始寄存器的特定位也没被写入1,则状态机维持在idle状态;(5)当检测到将要执行的执行包地址仍然处在特定的地址空间且没检测到结束寄存器的特定位被写1,则状态机维持在load状态;(6)当派发计数器的值不为0,或者派发计数器的值为0且计数寄存器的值不为0时,则状态机维持在dispatch状态。作为本专利技术的进一步改进:当所述执行包缓存单元派发分支指令时,访存取指恢复执行,恢复取指流水,判断分支目标指令是否和执行包缓存中的一致。作为本专利技术的进一步改进:当指令信息一致时,表明重复程序要求执行的次数还未执行完,要继续派发执行包;如果指令信息不一致时,则表明重复程序要求执行的次数已经执行完,此时不再从执行包缓存中继续派发执行包;同时取指流水已经在正常执行了。作为本专利技术的进一步改进:在派发分支指令时取指译码的执行包信息和执行包缓存中的指令包缓存信息一致,但还是选择来自正常取指译码产生的执行包。作为本专利技术的进一步改进:当检测到起始寄存器的特定位被写了1,或者将要执行的执行包地址落在了特定的地址空间时,按照执行顺序依次将派发到功能部件的执行包存储到执行包缓存单元中。与现有技术相比,本专利技术的优点在于:1、本专利技术的提高重复程序执行性能的软硬件协同缓存装置,结构简单、原理简单、适用范围广,通过借助软件标识的重复程序段长度和执行次数,省略了指令访存和执行包译码,直接派发重复程序段执行包,减少了访存延迟对程序执行的影响,同时降低了执行程序的功耗。且重复执行的程序执行的次数越多收益越大。2、本专利技术的提高重复程序执行性能的软硬件协同缓存装置,大大提高了程序的执行效率降低访存功耗,其软件协同主要提供两种方法来标识需要重复执行的程序和重复执行的次数。一种是将需要重复执行的程序编译在特定的地址空间,同时将重复执行的程序的次数存储在特定的计数寄存器中,这样当硬件取指时识别出将要执行的程序是存储在特定的地址空间时,就开始启动缓存存储和派发执行包。另一种是在重复程序段的前后写特殊的寄存器来启动缓存开始存储和派发执行包。附图说明图1是本专利技术软硬件协同缓存装置的原理示意图。图2是本专利技术在具体应用实例中执行包缓存结构的原理示意图。图3是本专利技术在具体应用实例中执行包缓存状态机的原理示意图。图4是本专利技术在具体应用实例中软硬件协同缓存工作的示意图。具体实施方式以下将结合本文档来自技高网
...

【技术保护点】
1.一种提高重复程序执行性能的软硬件协同缓存装置,其特征在于,包括:/n起始寄存器,用来标识重复程序段的起始位置;/n结束寄存器,用来识别重复程序段的结束位置;/n计数寄存器,用来存储重复程序执行的次数;/n控制逻辑单元,用来判断重复程序段是否落入特定的地址空间,同时控制执行包缓存开始存储和派发执行包,并清除起始寄存器和结束寄存器的控制位和维护计数寄存器;/n执行包缓存单元,用来存储派发到功能部件的执行包信息;当将重复程序段的执行包全部缓存完后,由执行包缓存单元直接派发执行包到功能部件,同时暂停取指流水。/n

【技术特征摘要】
1.一种提高重复程序执行性能的软硬件协同缓存装置,其特征在于,包括:
起始寄存器,用来标识重复程序段的起始位置;
结束寄存器,用来识别重复程序段的结束位置;
计数寄存器,用来存储重复程序执行的次数;
控制逻辑单元,用来判断重复程序段是否落入特定的地址空间,同时控制执行包缓存开始存储和派发执行包,并清除起始寄存器和结束寄存器的控制位和维护计数寄存器;
执行包缓存单元,用来存储派发到功能部件的执行包信息;当将重复程序段的执行包全部缓存完后,由执行包缓存单元直接派发执行包到功能部件,同时暂停取指流水。


2.根据权利要求1所述的提高重复程序执行性能的软硬件协同缓存装置,其特征在于,当执行的不是重复程序时,选择正常取指译码的执行包进行派发;当执行的重复程序时,直接派发执行包缓存中的执行包。


3.根据权利要求1所述的提高重复程序执行性能的软硬件协同缓存装置,其特征在于,所述执行包缓存单元的结构是一个深度为Y位宽为N*X+PC的缓存,其中Y是支持的重复程序包含的执行包长度,N是派发到功能部件的指令信息的位宽,X是功能单元的数量,PC是每个执行包的地址位宽;缓存的执行包信息包含指令域Inst_field和指令有效信息Inst_active。


4.根据权利要求1-3中任意一项所述的提高重复程序执行性能的软硬件协同缓存装置,其特征在于,所述执行包缓存单元的每一行都是一个执行包,所述执行包中包含多个部件的指令或只包含某一个部件的指令;当只包含一个部件的指令时,一行中就只有该部件的指令信息是有效的,即Inst_active为1,其他无效部件的Inst_active为0;当执行包缓存派发完毕或者需要作废指令时将Inst_active置为0。


5.根据权利要求1-3中任意一项所述的提高重复程序执行性能的软硬件协同缓存装置,其特征在于,所述执行包缓存单元中控制器状态机的执行包缓存包含3个状态,空闲状态idle,装载状态load,派发状态dispatch。


6.根据权利要求5所述的提高重复程序执行性能的软硬件协同缓存装置,其特征在于,所述状...

【专利技术属性】
技术研发人员:陈小文郭阳陈纪孝李勇王耀华张洋刘畅李晨
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1