用于处理器指令缓冲与循环缓冲的装置及其操作方法制造方法及图纸

技术编号:12699700 阅读:87 留言:0更新日期:2016-01-13 19:02
本发明专利技术提供了一种用于处理器指令缓冲与循环缓冲的装置,包括:指令缓冲器、对齐缓冲器、循环缓冲器、以及可选地包括多路选择器。其中,指令缓冲器与对齐缓冲器相连,对齐缓冲器与循环缓冲器相连,对齐缓冲器和循环缓冲器都与多路选择器相连。本发明专利技术还提供了一种操作该装置的方法。

【技术实现步骤摘要】

本专利技术涉及处理器设计领域,尤其涉及一种用于处理器指令缓冲与循环缓冲的装 置及该装置的操作方法。
技术介绍
现代微处理器一般采用多级流水的方式执行指令。典型的超长指令字结构的处理 器流水线一般包括取值、拆包、译码、执行、写回几部分。从指令高速缓冲存储器(Cache)中 取回指令后,一般会存入指令缓冲器中。通过从指令缓冲器读取指令,进行指令的拆包、译 码等操作。指令Cache的访问频率很高,消耗的功耗也很大。现代微处理器越来越多地应 用到电池供电的设备中,因而,处理器的低功耗设计也越来越重要。 在嵌入式应用程序中,图像处理、视频编解码等数据密集型应用占比很高。在这些 应用的核心代码中,循环所占比重也很大。因而,若处理器在执行循环时,能够将循环指令 保存到处理器内核之中,进而可以关闭取指令单元,并减少对指令Cache的访问次数,就能 降低取指令的功耗。 现有技术中,一般采用在处理器内部添加循环缓冲器的方法来保存循环体,以降 低循环执行时对指令Cache的访问次数,进而达到降低功耗的目的。 现有的循环缓冲器技术解决方案中,大多数都只能存储单个的循环体,不支持嵌 套循环,也没有对处理器中原有指令缓冲器和新增的循环缓冲器如何交替工作提出对应的 解决方案。 专利CN201310100176.X《一种循环缓冲装置以及循环缓冲方法》中,重点描述了 如何用硬件实现循环体的识别,然后加载并读取循环体。但其也存在如下缺点: 1.循环缓冲器中只能存放单个的循环体,不支持嵌套循环。 2.没有说明指令缓冲器与循环缓冲器的切换方法。 3.没有提出对变长指令,或超长指令字的处理器的支持方法。
技术实现思路
为了降低循环执行时对指令Cache的访问次数,从而降低处理器的取指令功耗, 本专利技术改进了循环缓冲器的设计方法,提供了一种适用于VLIW:(VeryLongInstruction Word,超长指令字)处理器或部分变长指令编码(即指令编码的长度为指令寻址宽度的整 数倍)处理器的循环缓冲器设计方法。 为实现上述目的,本专利技术的一个方面提供了一种用于处理器指令缓冲与循环缓冲 的装置,包括:指令缓冲器IB、对齐缓冲器AB、循环缓冲器LB、以及多路选择器MUX2_1。并 且提供了多种实施方式。其中,指令缓冲器与对齐缓冲器相连,对齐缓冲器与循环缓冲器相 连,对齐缓冲器和循环缓冲器都与多路选择器相连。 处理器从指令存储器中取回来的指令包可以直接存入对齐缓冲器或指令缓冲器 中。处理器启动时,从对齐缓冲器中读取指令,根据指令编码的特点对指令包进行拆包,得 到执行包。执行过程中,若循环缓冲器使能(lb_en)有效,进而判断循环缓冲器的状态,若 还未加载循环体,则将执行包的地址与循环体的首尾地址进行比较,若大于等于首地址,小 于等于尾地址,则说明当前拆包的指令为循环体内的指令,则将其从对齐缓冲器读出的同 时,也写入循环缓冲器中。直到执行包地址等于循环体尾地址,则说明循环体加载完成。循 环体加载完成后,切换读缓冲器区标志(reacLbuffer),从循环缓冲器中读取指令,直到循 环体执行完毕,再切换读缓冲器区标志,重新从对齐缓冲器中读取指令。 本专利技术另一方面提供了一种操作操作上述用于处理器指令缓冲与循环缓冲的装 置的方法,包括:(1)从对齐缓冲器中读取指令;(2)检测循环缓冲器是否开启,若没有开 启,继续从对齐缓冲器中读取下一条指令;若开启了,进一步判断当前拆包的指令地址是否 等于循环体的首执行包的指令地址,若否,则继续从对齐缓冲器中读取下一条指令,若是, 开启循环缓冲器加载模式;(3)循环缓冲器加载:从对齐缓冲器中读取循环体指令送入后 续译码模块的同时,将读取的指令同时也写入循环缓冲器中;(4)判断循环体加载是否完 成:若当前拆包指令的地址等于循环体尾执行包的地址,若是,循环体加载完毕,否则,继续 循环缓冲器的加载。 根据本专利技术的实施例,该方法还可以包括:(5)从循环缓冲器中读取指令,送到 后续的译码模块;以及(6)判断循环体是否执行完毕,如果循环体执行完毕,则清空循环缓 冲器,切换读取指令的位置到对齐缓冲器中。具体地,步骤(6)可以包括:首先判断循环次 数是否大于1,若是,进一步判断当前从循环缓冲器中读取的拆包指令地址是否等于循环体 尾执行包地址,若不是,则从循环缓冲器中继续按顺序读取后续指令;否则,切换循环缓冲 器的读指针,读取循环体的首指令,并将循环次数减1。然后,再次通过循环次数判断循环是 否执行完毕:若循环次数等于1,进一步判断当前从循环缓冲器中读取的拆包指令地址是 否等于循环体尾执行包地址,若不是,则从循环缓冲器中继续按顺序读取后续指令,否则, 说明最后一遍循环体执行到最后一个执行包,从循环缓冲器中读取循环体数据完毕,清空 循环缓冲器,切换读取指令的位置到对齐缓冲器中。 根据本专利技术的指令缓冲器与循环缓冲器的装置及其对循环缓冲器的处理方法,能 够在指令拆包的过程中识别循环体指令,并且装载进入循环缓冲器中,在循环缓冲器装载 完毕后,从循环缓冲器中读取循环体指令并执行,通过循环缓冲器指针的变换实现循环体 指令的反复执行。当循环体执行完毕后,再次从对齐缓冲器中读取指令。本专利技术能够有效 的实现超长指令字处理器的循环体加载,执行等过程,能有效减少循环体执行时,访问指令 Cache的次数,从而大大降低处理器的取指令功耗。【附图说明】图1是根据本专利技术第一实施例的用于处理器指令缓冲与循环缓冲的装置的结构 示意图; 图2是根据本专利技术实施例的用于处理器指令缓冲与循环缓冲的装置在执行普通 指令与循环指令时的切换流程图;图3是根据本专利技术实施例支持双层嵌套循环的循环缓冲器控制逻辑的状态机转 换图;图4是根据本专利技术第二实施例的用于处理器指令缓冲与循环缓冲的装置的结构 示意图; 图5是根据本专利技术第三实施例的用于处理器指令缓冲与循环缓冲的装置的结构 不意图;以及 图6是根据本专利技术第四实施例的用于处理器指令缓冲与循环缓冲的装置的结构 示意图。 附图标记说明:insn_pak:输入指令包 lb_en :循环缓冲器使能信号 read_buffer :多路选择器控制信号 exe_pak :输出指令包rst_n:复位信号,低电平有效【具体实施方式】 为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照 附图,对本专利技术做进一步详细说明。图1是根据本专利技术第一实施例的用于处理器指令缓冲与循环缓冲的装置的结构 示意图。如图1所示,该装置包括:指令缓冲器(InstructionBuffer,IB) 101、对齐缓冲器 (AlignBuffer,AB) 102、循环缓冲器(LoopBuffer,LB) 103、以及多路选择器(MUX2_1) 104。 IB的输出端连接到AB的输入端,AB的输出端连接到LB的输入端,AB的输出端和LB的输 出端分别连接到MUX2_1的两个输入端。其中,IB和AB均包括多个缓冲行,其中每个缓冲行 的位宽(即,能存放的比特数)为宽度,缓冲行的个数为深度。IB的深度可调节,此处设为 正整数m。AB的深度一般为2,用于指令对齐。当从指令包中根据指令编码的特点读取执行 包时,执行包可能为1条或多条指令,一个执行包有可能跨越2个指本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/CN105242904.html" title="用于处理器指令缓冲与循环缓冲的装置及其操作方法原文来自X技术">用于处理器指令缓冲与循环缓冲的装置及其操作方法</a>

【技术保护点】
一种用于处理器指令缓冲与循环缓冲的装置,包括:指令缓冲器,包括第一多个缓冲行;对齐缓冲器,包括第二多个缓冲行;循环缓冲器,包括排成一行的第三多个缓冲单元;以及多路选择器,其中:指令缓冲器的输出端连接到对齐缓冲器的输入端,对齐缓冲器的输出端连接到循环缓冲器的输入端,对齐缓冲器的输出端和循环缓冲器的输出端分别连接到多路选择器的两个输入端。

【技术特征摘要】

【专利技术属性】
技术研发人员:王琪张志伟丁光新薛晓军史明霞侯化成李阳郭旭龙
申请(专利权)人:中国科学院自动化研究所
类型:发明
国别省市:北京;11

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

1