[发明专利]一种C64x+ DSP软件流水循环缓冲机制的模拟方法有效
申请号: | 202110765360.0 | 申请日: | 2021-07-07 |
公开(公告)号: | CN113407240B | 公开(公告)日: | 2022-09-09 |
发明(设计)人: | 潘皓;蔡铭 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 邱启旺 |
地址: | 310058 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 c64x dsp 软件 流水 循环 缓冲 机制 模拟 方法 | ||
1.一种C64x+ DSP软件流水循环缓冲机制的模拟方法,其特征在于,包括以下步骤:
(1)通过循环缓冲控制信息进行状态机的状态、阶段判断;
(2)根据步骤(1)得到的状态机的状态、阶段,选取并执行循环缓冲操作的序列组合,以实现循环缓冲运行时程序存储器和循环缓冲器的实际操作;
(3)根据步骤(2)执行的结果更新循环缓冲时序信息,依据更新后的所有循环控制信息进行状态机的状态、阶段转换,并进行循环跳出判断;
(4)根据步骤(3)中所得的循环控制信息,判断和处理普通流水线,以及判断和处理中断的重启;
重复执行上述步骤直至结束,其中,所述循环缓冲控制信息包括:
循环缓冲状态信息:循环缓冲状态信息记录循环缓冲的状态、阶段以及中断请求和屏蔽信息;
循环缓冲完成判断信息:包括循环终止条件类别和ILC寄存器可用标识;
循环缓冲时序信息:包括软件流水阶段信息及其相应的周期信息;
用于取指的信息:包括指令屏蔽信息、流水线启停标识和排空阶段到流水线重启所需的周期数;
所述状态机的状态包括:
初始终止initial_termination状态:软件流水循环缓冲由SPLOOP指令激活且SPLOOP指令执行时ILC寄存器可用标识为0的情况下,为initial_termination状态;
正常normal状态:软件流水循环缓冲在非中断返回时由SPLOOP(D/W)三种指令的执行而激活,并至少循环迭代一次时,为normal状态;
重载reload状态:软件流水循环缓冲由SPMASKR或SPKERNELR指令的执行而激活,并且满足重装载条件时,为reload状态;
中断后after_interruption状态:软件流水循环缓冲由中断返回而重新激活时,为after_interruption状态;
空闲idle状态:软件流水循环缓冲未激活或循环已跳出时,为idle状态;
所述状态机的阶段包括:
prolog_lb阶段:包括软件流水循环组成阶段中的prolog阶段和kernel阶段的第一个stage;
kernel_lb阶段:包括软件流水循环组成阶段中除第一个stage之外的kernel阶段,循环的状态在进入该阶段时都会转换回normal状态;
epilog_lb阶段:包括软件流水循环组成阶段中epilog阶段加上一个stage,以及在到达stage边缘前装载的空操作周期;
early_exit_lb阶段:所述early_exit_lb阶段发生在循环由于迭代次数不够而在达到kernel_lb阶段前ILC已递减为0的情况下,此时prolog_lb阶段转换为early_exit_lb阶段。
2.根据权利要求1所述C64x+ DSP软件流水循环缓冲机制的模拟方法,其特征在于,所述循环缓冲操作包括:
pipeline操作:从程序存储器中取指并执行;
load操作:从程序存储器中取指,当指令与SPLOOP(D/W)指令并行、指令被SPMASK(R)指令屏蔽或指令属于NOP、循环缓冲相关指令时,指令只执行;其它指令装载进入循环缓冲器相应位置中,置为有效并执行;
fetch操作:从循环缓冲器中取出LBC对应cycle的指令,当指令有效时执行;
drain操作:将循环缓冲器中draincounts对应cycle对应stage的指令置为无效;所述LBC记录目前处于该stage的第几个周期,所述draincounts记录循环drain操作共执行的周期数;当循环重载发生时,如果重载后的循环进入early_exit_lb阶段,此时可能发生前、后两个循环都需要进行drain操作,此时前一个循环使用第二对LBC和loadcounts来指示信息;
reload操作:将循环缓冲器中loadcounts对应cycle对应stage的指令置为有效;所述loadcounts记录循环load操作共执行的周期数;
initial_load操作:专属于initial_termination状态的操作,从程序存储器中取指,当指令与SPLOOP(D/W)指令并行、指令被SPMASK(R)指令屏蔽或指令属于循环缓冲相关指令时执行;其它指令装载进入指令缓冲器相应位置中并置为无效。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110765360.0/1.html,转载请声明来源钻瓜专利网。