CN101872295B - 基于解码缓冲器的循环指令处理装置 - Google Patents
基于解码缓冲器的循环指令处理装置 Download PDFInfo
- Publication number
- CN101872295B CN101872295B CN 201010184865 CN201010184865A CN101872295B CN 101872295 B CN101872295 B CN 101872295B CN 201010184865 CN201010184865 CN 201010184865 CN 201010184865 A CN201010184865 A CN 201010184865A CN 101872295 B CN101872295 B CN 101872295B
- Authority
- CN
- China
- Prior art keywords
- instruction
- self
- impact damper
- loopa
- pointer
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 8
- 238000012544 monitoring process Methods 0.000 claims abstract description 7
- 238000010304 firing Methods 0.000 claims description 33
- 238000005192 partition Methods 0.000 abstract 6
- 238000003860 storage Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 3
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 3
- 230000007704 transition Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Landscapes
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
一种基于解码缓冲器的循环指令处理装置,包括:自循环缓冲器,用以连接于流水线指令解码单元的输出端,缓存指令经过解码之后产生的指令解码信息;数据选择器,用以连接于自循环缓冲器输出端,从自循环缓冲器中的顺序指令解码信息分区和循环指令解码信息分区选通一路获得指令解码信息并发送到指令执行单元,当处理器在顺序运行状态下选择顺序指令解码信息分区,当处理器在循环运行状态下选择循环指令解码信息分区;控制电路,用以监测处理器运行状态,调度解码后的指令在自循环缓冲器中创建信息,建立大小可变的顺序指令解码信息分区和循环指令解码信息分区;并为数据选择器提供选通控制信号。本发明提高灵活性和利用率、提升运行速度并降低功耗。
Description
技术领域
本发明涉及嵌入式处理器领域,尤其是一种在程序循环过程中提高处理器运行速度并降低功耗的指令处理装置。
背景技术
嵌入式处理器的设计中,速度和功耗一直是关键的设计指标。随着移动互联网时代的到来,对嵌入式处理器的运算速度和运行功耗的要求越来越苛刻。
为了提高处理器的指令吞吐量,进而提高性能,流水线技术早已被广泛应用。但是各流水线之间的处理速度不同,会产生后级流水堵塞前级流水的情况,降低了流水线的处理效率。流水线缓冲器的出现缓解了这个问题,当后级流水线发生堵塞,前级流水可以把信息暂存入缓冲器后继续工作,降低了流水线停滞的概率。其中一种流水线缓冲器便是解码缓冲器,位于指令解码单元和指令执行单元之间。但是现有流水线缓冲器的大小固定的,而且只实现缓冲的单一功能,容量设计过大会造成资源浪费,过小又会产生缓冲效果不明显,流水线频繁堵塞的情况。
对循环指令的处理也是限制处理器性能的重要因素之一,因为循环指令的执行过程中循环体指令每执行完一次就会发生跳转,降低了指令的顺序性;另外对同一片区域反复取指,会浪费不必要的功耗。现有的处理循环指令的方案是在指令高速缓存周围设置一个专门的循环指令缓冲器,当执行到循环指令时,把循环体指令搬运到循环缓冲器中,之后从循环指令缓冲器中获取循环体指令。这种方案需要增加硬件资源开销;循环缓冲器的大小是固定的,存在不灵活和利用率低的问题;需要预先把循环体指令装载到循环缓冲器中,不仅损失了速度,也浪费了功耗。
发明内容
为了克服已有的嵌入式处理器的循环指令处理装置的灵活性差、利用率低、速度较慢和功耗高的不足,本发明提供一种提高灵活性和利用率、提升运行速度并降低功耗的基于解码缓冲器的循环指令处理装置。
本发明解决其技术问题所采用的技术方案是:
一种基于解码缓冲器的循环指令处理装置,包括:
自循环缓冲器,用以连接于流水线指令解码单元的输出端,缓存指令经过解码之后产生的指令解码信息;所述自循环缓冲器逻辑上分为顺序指令解码信息分区和循环指令解码信息分区,缓存过程中,新指令解码后的信息以自循环的方式覆盖缓冲器内最旧指令解码信息;
数据选择器,用以连接于自循环缓冲器输出端,从自循环缓冲器中的顺序指令解码信息分区和循环指令解码信息分区选通一路获得指令解码信息并发送到指令执行单元,当处理器在顺序运行状态下选择顺序指令解码信息分区,当处理器在循环运行状态下选择循环指令解码信息分区;
控制电路,用以监测处理器运行状态,调度解码后的指令在自循环缓冲器中创建信息,建立大小可变的顺序指令解码信息分区和循环指令解码信息分区;并为数据选择器提供选通控制信号,控制指令解码信息发送到指令执行单元开始执行。
作为优选的一种方案:在所述自循环缓冲器中,当控制电路未创建循环指令解码信息分区时,顺序指令解码信息分区可容纳的指令数为该自循环缓冲器可容纳的指令数,当控制电路监测到后向跳转指令后,控制电路在自循环缓冲器中实时创建循环指令解码信息分区,其大小受循环体指令的数量决定,此时顺序指令解码信息分区可容纳的指令数相应减少,两个分区可容纳的指令数之和为自循环缓冲器可容纳的指令数。
作为优选的另一种方案:所述控制电路包括核心控制逻辑单元,用以通过创建指针在自循环缓冲器中新建顺序指令解码信息分区,在顺序运行状态下核心控制逻辑单元控制数据选择器选通顺序发射指针指向的指令解码信息,从顺序指令解码信息分区中按序选取指令解码信息发送到执行单元;并对每一条创建指针新建的指令解码信息进行监测,若监测到后向跳转指令,则通过循环区顶指针和循环区底指针在自循环缓冲器中划分出循环指令解码信息分区;在循环运行状态下核心控制逻辑单元控制数据选择器选通循环发射指针指向的指令解码信息,从循环指令解码信息分区中按序选取指令解码信息发送到执行单元。
进一步,在所述核心控制逻辑单元中,监测处理器运行状态,当顺序发射指针指向后向跳转指令,处理器进入循环运行状态,在监测到循环结束后处理器退出循环运行状态,除此之外处理器均运行在顺序运行状态。
更进一步,当循环体指令的数量大于或等于自循环缓冲器可容纳的指令数时,核心控制逻辑单元通过操作循环区顶指针和循环区底指针将整个自循环缓冲器中除去存放后向跳转指令解码信息之外的所有区域设置为循环指令解码信息分区,同时关闭数据选择器,超出部分的循环体指令通过指令高速缓存获取,并在解码后发送至执行单元;当超出部分指令发送完毕,核心控制逻辑单元控制数据选择器从自循环缓冲器的循环指令解码信息分区中按序选取循环体指令解码信息,直接发送至执行单元,直到循环指令解码信息分区中的循环体指令解码信息按序发送完一遍之后,若要继续下次循环运行,则取指方式重复上述操作。
再进一步,当循环运行状态退出时,核心控制逻辑单元设置循环发射指针、循环区顶指针和循环区底指针,使其和创建指针重合,回收自循环缓冲器中的循环指令解码信息分区。
本发明的有益效果主要表现在:1)复用硬件,通过在单个自循环缓冲器中实时建立顺序指令解码信息分区和循环指令解码信息分区,实现了流水线间指令信息缓冲以及循环指令处理两大功能,高效利用了有限的资源;2)提高指令处理速度,在处理循环指令时,直接把指令经过解码之后产生的指令解码信息发送到指令执行单元,省去了流水线中取值和译码的时间以及把指令从高速缓存搬运到专门的缓冲器之中的时间;3)降低指令处理功耗,在处理循环指令时,直接把指令经过解码之后产生的指令解码信息发送到指令执行单元,省去了指令经过解码单元译码的功耗以及把指令从高速缓存搬运到专门的缓冲器之中的功耗。
附图说明
图1为本发明具体实施方案的总体架构图。
图2为本发明具体实施方案中核心控制逻辑单元的状态转换图。
图3为本发明具体实施方案中自循环缓冲器实现流水线指令缓冲功能的示图。
图4为本发明具体实施方案处理普通循环指令的示图。
图5为本发明具体实施方案处理循环体长度超出自循环缓冲器长度的循环指令的示图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图5,一种基于解码缓冲器的循环指令处理装置,包括:自循环缓冲器10,用以连接于流水线指令解码单元的输出端,缓存指令经过解码之后产生的指令解码信息;所述自循环缓冲器逻辑上分为顺序指令解码信息分区和循环指令解码信息分区,缓存过程中,新指令解码后的信息以自循环的方式覆盖缓冲器内最旧指令解码信息;数据选择器12,用以连接于自循环缓冲器输出端,从自循环缓冲器中的顺序指令解码信息分区和循环指令解码信息分区选通一路获得指令解码信息并发送到指令执行单元,当处理器在顺序运行状态下选择顺序指令解码信息分区,当处理器在循环运行状态下选择循环指令解码信息分区;控制电路14,用以监测处理器运行状态,调度解码后的指令在自循环缓冲器中创建信息,建立大小可变的顺序指令解码信息分区和循环指令解码信息分区;并为数据选择器提供选通控制信号,控制指令解码信息发送到指令执行单元开始执行。
请参照图1所示,为本发明具体实施方案的结构示图。本装置在流水线中位于指令解码阶段和指令执行阶段之间。如图中所示,本装置包括一自循环缓冲器10、一数据选择器12、一控制电路14。指令经过解码之后产生的指令解码信息由指令解码单元输出,暂存在自循环缓冲器10中,指令解码信息从自循环缓冲器10的底部开始向上存储,采取自循环的存储方式,当存储到顶部时,指令解码信息将再次从缓冲器10的底部开始向上存储,依次覆盖之前的旧信息。控制电路14中的核心控制逻辑单元16通过一组指针来操作自循环缓冲器10,具体分别为创建指针18、顺序发射指针20、循环发射指针22、循环区顶指针24、循环区底指针26。所有经过指令解码单元译码之后的指令解码信息都由核心控制逻辑单元16通过创建指针18存储到自循环缓冲器10中,以表项为存储单位,一个表项存储一条指令的解码信息,同时核心控制逻辑单元16对每条新创建的指令进行监测。创建指针18随着指令解码信息的创建从自循环缓冲器10底部往上递增,到自循环缓冲器10顶部后返回自循环缓冲器10底部再次往上递增,创建指针18指向的位置为当前指令解码信息创建的位置。创建指针18新建的区域为顺序指令解码信息分区28,用以存储顺序运行状态下的指令解码信息。核心控制逻辑单元16通过顺序发射指针20从顺序指令解码信息分区28中按序发送指令解码信息至数据选择器12的输入端。顺序发射指针20随着顺序指令的发送从自循环缓冲器10底部往上递增,到自循环缓冲器10顶部后返回自循环缓冲器10底部再次往上递增,顺序发射指针20指向的位置为当前发送的顺序指令解码信息的位置。顺序发射指针20跟在创建指针18之后,最极端的情况是和创建指针18重合,不能超过创建指针18,因为指令解码信息必须首先经由创建指针18存入自循环缓冲器10后才能被顺序发射指针20提取发送。当核心控制逻辑单元16监测到创建指针18新建的指令为后向跳转指令时,核心控制逻辑单元16通过循环区顶指针24和循环区底指针26划分出循环指令解码信息分区30,用以存储循环运行状态下的指令解码信息。当顺序发射指针20指向该后向跳转指令时,处理器进入循环运行状态,核心控制逻辑单元16通过循环发射指针22从循环指令解码信息分区30中按序发送指令解码信息至数据选择器12的输入端,图1中所示的就是进入循环运行状态之后的情况。数据选择器12位于自循环缓冲器10的输出端,选通指令解码信息发送至指令执行单元,在顺序运行状态下选通顺序发射指针20指向的指令解码信息,即选通自循环缓冲器10中的顺序解码信息分区28;在循环运行状态下选通循环发射指针22指向的指令解码信息时,即选通自循环缓冲器10中的循环指令解码信息分区30。数据选择器12的选通信号和使能信号由核心控制逻辑单元16管理,核心控制逻辑单元16通过选通信号决定具体选通哪一路指令解码信息,通过使能信号在不需要从自循环缓冲器10中提取指令解码信息时关闭数据选择器12。当创建指针18指向的位置比顺序发射指针20指向的位置低一个表项,或者当创建指针18指向自循环缓冲器10顶部的同时顺序发射指针20指向自循环缓冲器10底部,则表示自循环缓冲器10被填满,此时创建指针18不能继续创建新指令解码信息;当创建指针18指向的位置比循环区底指针26指向的位置低一个表项,或者当创建指针18指向自循环缓冲器10顶部的同时循环区底指针26指向自循环缓冲器10底部,则表示创建指针18处于顺序指令解码信息分区28和循环指令解码信息分区30的交界处,此时创建指针18不能继续创建新指令解码信息。当不满足上述条件的任何一种时,创建指针18可以接收流水线指令解码单元的输出信息并将其创建到自循环缓冲器10中。
请参照图2所示,为本发明具体实施方案中控制电路14中的核心控制逻辑单元16的状态转换图。如图中所示,核心控制逻辑单元16共有5个状态,分别为顺序发射状态32、循环区开辟状态34、循环发射状态36、指令高缓取指状态38、循环区关闭状态40。核心控制逻辑单元16的初始状态为顺序发射状态32,该状态下核心控制逻辑单元16通过创建指针18在自循环缓冲器10中新建指令解码信息,控制数据选择器12选通顺序发射指针20指向的指令,从顺序解码信息分区28中按序发送指令解码信息,若核心控制逻辑单元16未监测到启动循环的后向跳转指令,则核心控制逻辑单元16一直处于顺序发射状态32,此状态下,顺序指令解码信息分区28占据整个自循环缓冲器10,同时循环发射指针22、循环区顶指针24和循环区底指针26与创建指针18重合并且一起移动。当监测到创建指针18新建的指令解码信息为后向跳转指令时,核心控制逻辑单元16进入循环区开辟状态34,该状态下核心控制逻辑单元16锁定创建指针18,并通过循环区顶指针24和循环区底指针26开辟出循环指令解码信息分区30,然后解锁创建指针18,使其继续在自循环缓冲器10中新建指令解码信息,此时顺序解码信息分区28可容纳的指令数相应减小,若顺序发射指针20未指向后向跳转指令,则核心控制逻辑单元16一直处于循环区开辟状态34,此状态下数据选择器12继续选通顺序发射指针20指向的指令,从顺序解码信息分区28中按序发送指令解码信息。当顺序发射指针20指向后向跳转指令时,若循环体的指令数量小于自循环缓冲器10可容纳的指令数,则核心控制逻辑单元16由循环区开辟状态34直接进入循环发射状态36,控制数据选择器12选通循环发射指针22指向的指令,从循环指令解码信息分区30中发送指令解码信息,核心控制逻辑单元16一直持续在循环发射状态36,直到循环结束后进入循环区关闭状态40;当顺序发射指针20指向后向跳转指令时,若循环体指令的数量大于或者等于自循环缓冲器10可容纳的指令数,则核心控制逻辑单元16由循环区开辟状态34进入指令高缓取指状态38,该状态下核心控制逻辑单元16关闭数据选择器12,直接从指令高速缓存中取得超出自循环缓冲器10范围的循环体指令,经过译码之后直接发往指令执行单元,超出范围的指令发送完毕之后,核心控制逻辑单元16由指令高缓取指状态38进入循环发射状态36,当自循环缓冲器10中的循环体指令解码信息发送完一遍之后,若循环还未结束,则核心控制逻辑单元16再次进入指令高缓取值状态38,开始下一次循环,若循环结束,则进入循环区关闭状态40。在循环区关闭状态40下,核心控制逻辑单元16操作循环发射指针22、循环区顶指针24和循环区底指针26,使其重合并且指向创建指针18所在的位置,收回循环指令解码信息分区30。在循环区关闭状态40之后,核心控制逻辑单元16自动进入顺序发射状态32。其中,当顺序发射指针20指向后向跳转指令后,核心控制逻辑单元16通过比较循环体的指令数量与自循环缓冲器10可容纳的指令数来决定进入指令高缓取指状态38或循环发射状态36;在循环结束时核心控制逻辑单元16进入循环区关闭状态40;当核心控制逻辑单元16工作在上述三个状态时,处理器处于循环运行状态,此外处理器均处于顺序运行状态。
请参照图3所示,为本发明具体实施方案在处理器顺序运行状态下,作为解码缓冲器实现流水线间指令解码信息缓存功能的示图。图3A为处理器执行程序中一段顺序执行的代码,其中指令(17)、指令(18)、指令(19)均为需要多个周期才能执行完毕的多周期指令,如除法指令。指令顺序执行时,数据选择器12始终选通顺序发射指针20指向的指令解码信息。在初始状态下,各指针都指向自循环缓冲器10底部。程序执行过程中,随着指令解码信息在缓冲器10中的存储和发送,各指针会从缓冲器10底部开始上升。指针组上升到缓冲器10顶部之后回到底部重新开始上升,即执行自循环的指令解码信息存储操作。若所有指令都在一个周期内执行完成,指针组同步运作,如图3B中所示。但当执行到需要多个周期才能完成的指令,如图3A中的除法指令时,指令执行单元会因为运算未完成而无法及时接收多周期指令之后的指令解码信息。此时,顺序发射指针20因无法向指令执行单元继续发送指令解码信息而停滞。为了保持流水线的畅通,使取指单元和指令译码单元不受执行单元影响继续工作,后续的指令可以缓存在自循环缓冲器10中,因此创建指针18继续存储指令解码信息。因为没有检测到后向跳转指令,循环发射指针22、循环区顶指针24和循环区底指针26随着创建指针18一起移动,这样本装置就起到了缓存指令解码信息的作用,如图3C所示,指令(18)到指令(21)这组指令解码信息就被缓存到了自循环缓冲器10中。在之后的程序执行过程中,如果发生指令高速缓存失配等造成取值单元堵塞的情况,缓存在自循环缓冲器10中的指令解码信息就可以连续发往指令执行单元,从而消除因为取值单元堵塞造成的流水线气泡。本装置可缓存的指令数上限由顺序指令解码信息分区28的大小决定,在核心控制逻辑单元16没有创建循环指令解码信息分区30的情况下,因为顺序指令解码信息分区28占据整个自循环缓冲器10,此上限即为自循环缓冲器10可容纳的指令总数,即如图3C中所述。本发明具体实施方案中自循环缓冲器10的长度为十六个表项,即可容纳的指令总数为十六,每个表项存储一条指令的解码信息,具体包括指令操作属性,指令操作寄存器号,指令操作立即数等等。
请参照图4所示,为本发明具体实施方案在处理器循环运行状态下,实现循环指令处理功能的示图。图4A为处理器执行程序中一段包含有循环指令的代码,其中指令(38)为启动循环的后向跳转指令,后向跳转的目标地址是指令(31)所在的位置,所以指令(31)到指令(37)这七条指令是需要被反复执行的循环体指令。所有指令首先均由创建指针18存储到自循环缓冲器10中,包括循环体指令和后向跳转指令。当核心控制逻辑单元16监测到创建指针18新建的指令解码信息为后向跳转指令时,创建指针18被锁定,暂时不再存储新信息,核心控制逻辑单元16从后向跳转指令的解码信息中获取后向跳转的长度,即循环体的长度,然后操作循环区顶指针24向下移动一个表项,循环发射指针22和循环区底指针26向下移动的表项长度为循环体的长度,如图4B所示,这样就在自循环缓冲器10中开辟出了循环指令解码信息分区30。完成循环指令解码信息分区30的创建之后,创建指针18恢复移动,继续新建后向跳转指令之后的指令解码信息,即如图4C中的指令(39)、指令(40)等等。此时顺序指令解码信息分区28可容纳的指令数已经缩小为自循环缓冲器10可容纳的指令数减去循环指令解码信息分区30可容纳的指令数,具体在图4C中为九个表项,因此可以缓存的指令解码信息上限比未进入循环状态时减小了。在循环指令解码信息分区30创建完成之后,如果顺序发射指针20没有指向后向跳转指令,则循环发射指针22并不立即发送循环体指令解码信息,数据选择器12仍然选通顺序发射指针20所指向的指令解码信息。等到顺序发射指针20指向启动循环的后向跳转指令,即图4A中的指令(38),核心控制逻辑单元16锁定顺序发射指针20,启动循环发射指针22,从循环指令解码信息分区30的底部开始按顺序发送指令解码信息,此时数据选择器12选通循环发射指针22指向的指令解码信息。当循环发射指针22移动到循环指令解码信息分区30顶部,即和循环区顶指针24重合时,第一次循环执行完毕。数据选择器12选通顺序发射指针20指向的后向跳转指令,接着循环发射指针22从循环区顶直接移动到循环区底部,即和循环区底指针26重合,数据选择器12也再次转换为选通循环发射指针22指向的指令解码信息,开始第二次的循环,如此反复,直到指令退出循环运行。
请参照图5所示,为本发明具体实施方案在处理器循环运行状态下,实现循环指令处理功能时一种特殊情况的示图。当核心控制逻辑单元16监测到创建指针18新建的指令解码信息为启动循环的后向跳转指令,进而由核心控制逻辑单元16开辟循环指令解码信息分区30时,发现循环体的指令数大于或者等于自循环缓冲器10可容纳的指令总数。这时,核心控制逻辑单元16操作循环发射指针22、循环区顶指针24和循环区底指针26,将整个自循环缓冲器10中除去存放后向跳转指令解码信息之外的所有区域作为循环指令解码信息分区30,锁定创建指针18,如图5B所示。因为此时顺序指令解码信息分区28的长度已经缩小为一个表项,即该后向跳转指令所占的区域,无法创建新的指令解码信息。当顺序发射指针20发送后向跳转指令之后,核心控制逻辑单元16关闭数据选择器12,使取指单元直接从指令高速缓存中获取超出范围的循环体指令,在5C中即为指令(47)、指令(48)和指令(49),这些指令经过译码逻辑之后的解码信息不经过自循环缓冲器10,直接发往指令执行单元。当超出范围的指令发送完毕后,自循环缓冲器10中的循环体指令解码信息依次被发送,核心控制逻辑单元16重新使能数据选择器12,选通循环发射指针22指向的循环体指令解码信息。当循环发射指针22和循环区顶指针24重合时,第一次循环执行完毕。若循环未结束,核心控制逻辑单元16启动第二次循环,数据选择器12选通顺序发射指针20指向的后向跳转指令,同时循环发射指针22从循环区顶直接移动到循环区底部,即和循环区底指针26重合,接着重复第一次循环过程的操作,即先关闭数据选择器12,从指令高速缓存直接获取超出范围的循环体指令,使其经过译码之后直接发往指令执行单元,再使能数据选择器12,从自循环缓冲器10中获取其余的循环体指令解码信息。如此循环操作,直到指令退出循环运行。
当循环结束,处理器退出循环运行状态之后,核心控制逻辑单元16操作循环发射指针22、循环区顶指针24以及循环区底指针26,使其和创建指针18重合并且一起移动,收回循环指令解码信息分区30,顺序指令解码信息分区28重新占据整个自循环缓冲器10。顺序发射指针20恢复移动,发送后向跳转指令之后的指令解码信息。此时,循环指令处理功能执行完毕,整个装置执行单一的流水线间指令缓冲功能,数据选择器12选通顺序发射指针20指向的指令解码信息。
Claims (4)
1.一种基于解码缓冲器的循环指令处理装置,其特征在于:所述循环指令处理装置包括:
自循环缓冲器,用以连接于流水线指令解码单元的输出端,缓存指令经过解码之后产生的指令解码信息;所述自循环缓冲器逻辑上分为顺序指令解码信息分区和循环指令解码信息分区,缓存过程中,新指令解码后的信息以自循环的方式覆盖缓冲器内最旧指令解码信息;
数据选择器,用以连接于自循环缓冲器输出端,从自循环缓冲器中的顺序指令解码信息分区和循环指令解码信息分区选通一路获得指令解码信息并发送到指令执行单元,当处理器在顺序运行状态下选择顺序指令解码信息分区,当处理器在循环运行状态下选择循环指令解码信息分区;
控制电路,用以监测处理器运行状态,调度解码后的指令在自循环缓冲器中创建信息,建立大小可变的顺序指令解码信息分区和循环指令解码信息分区;并为数据选择器提供选通控制信号,控制指令解码信息发送到指令执行单元开始执行;
所述控制电路包括核心控制逻辑单元,用以通过创建指针在自循环缓冲器中新建顺序指令解码信息分区,在顺序运行状态下核心控制逻辑单元控制数据选择器选通顺序发射指针指向的指令解码信息,从顺序指令解码信息分区中按序选取指令解码信息发送到执行单元;并对每一条创建指针新建的指令解码信息进行监测,若监测到后向跳转指令,则通过循环区顶指针和循环区底指针在自循环缓冲器中划分出循环指令解码信息分区;在循环运行状态下核心控制逻辑单元控制数据选择器选通循环发射指针指向的指令解码信息,从循环指令解码信息分区中按序选取指令解码信息发送到执行单元。
2.如权利要求1所述的基于解码缓冲器的循环指令处理装置,其特征在于:在所述自循环缓冲器中,当控制电路未创建循环指令解码信息分区时,顺序指令解码信息分区可容纳的指令数为该自循环缓冲器可容纳的指令数,当控制电路监测到后向跳转指令后,控制电路在自循环缓冲器中实时创建循环指令解码信息分区,其大小受循环体指令的数量决定,此时顺序指令解码信息分区可容纳的指令数相应减少,两个分区可容纳的指令数之和为自循环缓冲器可容纳的指令数。
3.如权利要求2所述的基于解码缓冲器的循环指令处理装置,其特征在于:在所述核心控制逻辑单元中,监测处理器运行状态,当顺序发射指针指向后向跳转指令,处理器进入循环运行状态,在监测到循环结束后处理器退出循环运行状态,除此之外处理器均运行在顺序运行状态。
4.如权利要求2所述的基于解码缓冲器的循环指令处理装置,其特征在于:当循环运行状态退出时,核心控制逻辑单元设置循环发射指针、循环区顶指针和循环区底指针,使其和创建指针重合,回收自循环缓冲器中的循环指令解码信息分区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010184865 CN101872295B (zh) | 2010-05-28 | 2010-05-28 | 基于解码缓冲器的循环指令处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010184865 CN101872295B (zh) | 2010-05-28 | 2010-05-28 | 基于解码缓冲器的循环指令处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101872295A CN101872295A (zh) | 2010-10-27 |
CN101872295B true CN101872295B (zh) | 2013-04-17 |
Family
ID=42997171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010184865 Active CN101872295B (zh) | 2010-05-28 | 2010-05-28 | 基于解码缓冲器的循环指令处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101872295B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102637149B (zh) * | 2012-03-23 | 2015-07-01 | 山东极芯电子科技有限公司 | 一种处理器及其运行方法 |
US9323530B2 (en) * | 2012-03-28 | 2016-04-26 | International Business Machines Corporation | Caching optimized internal instructions in loop buffer |
CN105242904B (zh) * | 2015-09-21 | 2018-05-18 | 中国科学院自动化研究所 | 用于处理器指令缓冲与循环缓冲的装置及其操作方法 |
US10223118B2 (en) * | 2016-03-24 | 2019-03-05 | Qualcomm Incorporated | Providing references to previously decoded instructions of recently-provided instructions to be executed by a processor |
CN107450888B (zh) * | 2016-05-30 | 2023-11-17 | 世意法(北京)半导体研发有限责任公司 | 嵌入式数字信号处理器中的零开销循环 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477454A (zh) * | 2009-01-22 | 2009-07-08 | 浙江大学 | 嵌入式处理器的乱序执行控制装置 |
-
2010
- 2010-05-28 CN CN 201010184865 patent/CN101872295B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101872295A (zh) | 2010-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104040490B (zh) | 用于多引擎微处理器的加速的代码优化器 | |
CN108268278B (zh) | 具有可配置空间加速器的处理器、方法和系统 | |
CN101872295B (zh) | 基于解码缓冲器的循环指令处理装置 | |
CN100538628C (zh) | 用于在simd结构中处理线程组的系统和方法 | |
US20190303168A1 (en) | Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator | |
CN1103960C (zh) | 在多级流水线结构中处理条件跳转的结构和方法 | |
US20190138313A1 (en) | High performance processor system and method based on general purpose units | |
CN101373427B (zh) | 程序执行控制装置 | |
CN104040491A (zh) | 微处理器加速的代码优化器 | |
US20220100680A1 (en) | Apparatuses, methods, and systems for a configurable accelerator having dataflow execution circuits | |
CN101861585A (zh) | 用于实时信号处理的方法和装置 | |
US9170816B2 (en) | Enhancing processing efficiency in large instruction width processors | |
CN102144225A (zh) | 实时数据处理方法和装置 | |
CN102662640B (zh) | 双重分支目标缓冲器和分支目标处理系统及处理方法 | |
CN105975251B (zh) | 一种基于粗粒度可重构架构的des算法轮迭代系统及迭代方法 | |
CN105745619A (zh) | 对在执行机制之间切换的控制 | |
US20090198970A1 (en) | Method and structure for asynchronous skip-ahead in synchronous pipelines | |
CN106293639B (zh) | 使用微分支目标缓冲器的高性能零气泡条件分支预测 | |
KR100580851B1 (ko) | 하드웨어 루프 | |
Michaud et al. | An exploration of instruction fetch requirement in out-of-order superscalar processors | |
US20070220235A1 (en) | Instruction subgraph identification for a configurable accelerator | |
KR100551544B1 (ko) | 하드웨어 루프 | |
CN106155979B (zh) | 一种基于粗粒度可重构架构的des算法密钥扩展系统及扩展方法 | |
KR100536018B1 (ko) | 하드웨어 루프 | |
US6298433B1 (en) | Data flow computer incorporating von neumann processors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20160222 Address after: 310012 A403 room, Hangzhou Neusoft building, 99 Huaxing Road, Xihu District, Zhejiang, Hangzhou, China Patentee after: Zhongtian Microsystems Co., Ltd., Hangzhou Address before: 310027 Hangzhou, Zhejiang Province, Xihu District, Zhejiang Road, No. 38, No. Patentee before: Zhejiang University |