会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 电脑零配件 / 硬件 / 硬件环路

硬件环路

阅读:113发布:2020-05-11

IPRDB可以提供硬件环路专利检索,专利查询,专利分析的服务。并且在一实施例中,一种可编程处理器配置为包括可支持硬件环路的预测寄存器。以此方式,系统可提高处理速度,而不用大大地增加功耗。环路的环路条件可加载于一组预测寄存器中,在环路条件写入于一组结构寄存器之前,可从预测寄存器检测这些条件。,下面是硬件环路专利的具体信息内容。

1.一种方法包括:

把限定某一环路的进入和退出条件的环路条件从某一流水线中的寄存器加载 至一组推测寄存器,和在所述加载所述环路条件以后,根据所述环路条件,执行处理器中的环路。

2.如权利要求1所述的方法,进一步包括:在环路条件写入至一组结构寄存 器之前,检测寄存器环路条件。

3.如权利要求2所述的方法,进一步包括:使用加载于推测寄存器的环路条 件来建立硬件环路。

4.如权利要求2所述的方法,进一步包括:根据推测寄存器所含有的信息可 及早地终止环路。

5.如权利要求2所述的方法,其特征在于,处理器包括多级执行流水线,此 方法进一步包括:接在流水线中指令终止之后,调整至少一个推测寄存器的数值。

6.一种方法,它包含:

将某一环路的环路条件加载到一组推测寄存器,根据所述环路条件,在包括多级执行流水线的处理器中执行一条环路,在将所述环路条件写入一组结构寄存器之前,检测来自所述推测寄存器的环 路条件,在终止所述流水线中的某一指令以后,调节所述推测寄存器中至少一个的值, 并且其中,此组推测寄存器包括一个预测顶部寄存器,而所述一组结构寄存器包 括一个结构顶部寄存器,并且此方法进一步包括:接在流水线中至少一条指令终止 之后,利用结构顶部寄存器所含有的数据来调整预测顶部寄存器。

7.一种方法,它包含:

将某一环路的环路条件加载到一组推测寄存器,根据所述环路条件,在某一处理器中执行一条环路,其中所述处理器包括多 级执行流水线,在将所述环路条件写入一组结构寄存器之前,检测来自所述推测寄存器的环 路条件,在终止所述流水线中的某一指令以后,调节所述推测寄存器中至少一个的值, 并且其中,此组推测寄存器包括一个预测底部寄存器和此组结构寄存器包括一个 结构底部寄存器,此方法进一步包括:接在流水线中至少一条指令终止之后,利用 结构底部寄存器所含有的数据来调整预测底部寄存器。

8.如权利要求5所述的方法,其特征在于,此组推测寄存器包括一个预测计 数寄存器,此方法进一步包括:接在流水线中至少一条指令终止之后,调整预测计 数寄存器。

9.一种装置包括:

一个控制单元,

执行流水线,

一组预测寄存器;和

一组结构寄存器,各结构寄存器分别与一个预测寄存器有关,其中,所述控制单元用来将所述环路条件从所述执行流水线加载到一组预测 寄存器(early register)内,以及用于采用加载到所述一组预测寄存器内的环路 条件来设置硬件环路。

10.如权利要求9所述的装置,其特征在于,在环路条件写入至一组结构寄存 器之前,控制单元检测此组预测寄存器中的环路条件。

11.如权利要求9所述的装置,其特征在于,预测寄存器包括指着环路的一个 顶部指令的预测顶部寄存器。

12.如权利要求9所述的装置,其特征在于,预测寄存器包括指着环路的一个 底部指令的预测底部寄存器。

13.如权利要求9所述的装置,其特征在于,预测寄存器包括定义环路迭代数 的预测计数寄存器。

14.如权利要求9所述的装置,其特征在于,根据此组预测寄存器所含有的信 息,采用控制单元及早地终止环路。

15.如权利要求9所述的装置,其特征在于,采用控制单元来调整接在终止之 后的至少一个预测寄存器的值。

16.一种装置,它包含:

控制单元,

一组预测寄存器,

一组结构寄存器,每一结构寄存器分别与一预测寄存器相关;

其中,所述控制单元用来将某一环路的环路条件加载到一组预测寄存器内;

其中,所述控制单元用来在某一终止以后,调节至少一个预测寄存器的值, 并且所述装置包括执行流水线,其中,此组预测寄存器包括一个预测顶部寄存器 和此组结构寄存器包括一个结构顶部寄存器,使控制单元利用结构顶部寄存器所含 有的数据,来调整接在流水线中至少一条指令终止之后的预测顶部寄存器。

17.一种装置,它包含:

控制单元,

一组预测寄存器,

一组结构寄存器,每一结构寄存器分别与一预测寄存器相关;

其中,所述控制单元用来将某一环路的环路条件加载到一组预测寄存器内;

其中,所述控制单元用来在某一终止以后,调节至少一个预测寄存器的值, 并且所述装置包括一条执行流水线,其中,此组预测寄存器包括一个预测底部寄 存器和此组结构寄存器包括一个结构底部寄存器,使控制单元利用结构底部寄存器 所含有的数据,来调整接在流水线中至少一条指令终止之后的预测底部寄存器。

18.如权利要求15所述的装置,此装置包括一条执行流水线,其特征在于, 此组预测寄存器包括一个预测计数寄存器,采用控制单元来调整接在流水线中至少 一条指令终止之后的预测计数寄存器。

19.一种系统包含:

一个SRAM(静态随机存贮器)存贮器件;

一组预测寄存器;和

耦合至存贮器的一个处理器,其中,此处理器包括一条执行流水线和一个用 于将环路的环路条件从所述执行流水线加载至此组预测寄存器的控制单元。

20.如权利要求19所述的系统,进一步包括一组结构寄存器,其特征在于, 使控制单元用于在环路条件写入至此组结构寄存器之前,从预测寄存器中检测环路 条件。

21.如权利要求19所述的系统,其特征在于,控制单元用于接在流水线中至 少一条指令终止之后,调整至少一个预测寄存器的值。

22.如权利要求19所述的系统,其特征在于,此组预测寄存器包括一个指着 环路顶部指令的预测顶部寄存器。

23.如权利要求19所述的系统,其特征在于,此组预测寄存器包括一个指着 环路的最后指令的预测底部寄存器。

24.如权利要求19所述的系统,其特征在于此组预测寄存器包括一个定义环 路迭代数的预测计数寄存器。

25.一种方法包含:

从流水线将某一环路的环路条件加载到第1组寄存器内;和在指令付诸流水线之前,从第1组寄存器中检测环路条件和环路条件已写入 至第2组寄存器。

26.如权利要求25所述的方法,此方法进一步包括接在流水线中一条指令终 止之后,调整第一组寄存器中至少一个寄存器的值。

说明书全文

本发明涉及在一种可编程处理器中实施的硬件环路

在设计一种可编程处理器中,诸如一种数字信号处理(DSP)系统,两个竞争性 设计目标是处理速度和功耗。通用处理器包括为了提高执行软件指令的速度所设计 的多种硬件。然而,增添的硬件一般会增加处理器的功耗。

一种提高可编程处理器速度的技术是“硬件环路”,它是用于加快在环路结 构中软件指令执行而设计的专门硬件。通过高速缓存在局部寄存器中的指令,硬件 环路可减少用于执行软件环路的时种周期数,从而减少了多次从存贮器或指令高速 缓冲存贮器取出相同指令的需要。

硬件环路引入几种挑战。这些挑战包括避免损失,例如,建立损失或转移损 失。建立损失是与建立硬件回路有关的性能损失(一般增加是处理时间)。同样, 转移损失是指与转移有关的性能损失(一般也是增加处理时间)。

附图说明

图1是说明根据本发明实施例的一种流水线的可编程处理器的例子的方框图。
图2是说明根据本发明实施例的可编程处理器的一个示例的执行流水线的方 框图。
图3是说明根据本发明实施例加装了预测寄存器时示例时序的流程图。
图4是说明根据本发明实施例如何使用环路建立指令来确定预测寄存器数值 的流程图。
图5是说明硬件环路单元实施例的电路方框图。
图6是说明根据本发明更新预测寄存器数值的模式的流程图。
图7是说明根据本发明实施例更新结构寄存器数值的方法的流程图。
图8是说明根据本发明实施例更新结构计数寄存数值的另一种方法的流程图。
图9是说明根据本发明实施例使用预测寄存器所实现的时序优点的流程图,
图10是说明根据本发明实施例调整预测计数值的有效方法的流程图。
图11是说明根据本发明实施例的电路中计数器的方框图。
图12是说明根据本发明实施例的混合型工作模式的流程图。
图13是说明根据本发明实施例的只有在第1个n-1执行级中具有计数器的一 种混合型电路的方框图。
图14是说明根据本发明实施例的硬件环路单元的方框图。
图15是说明根据本发明实施例的方案的流程图。
图16是说明根据本发明实施例的方案的流程图。
图17是说明根据本发明实施例的方案的另一个流程图。
图18是说明根据本发明实施例另一个方案的图。
图19是说明另一个方案的流程图。
图20是说明根据本发明实施例的两个方案的流程图。
图21是说明根据本发明实施例用于检测零偏置环路工作模式的流程图。
图22是说明根据本发明实施例用于检测和处理单指令零偏置环路的工作模式 的流程图。
图23A~图23C是说明根据本发明实施例一些相互连接的硬件环路单元的方 框图。
图24是说明根据本发明实施例节电电路的方框图。
描述
图1是说明可编程处理器2的方框图,该可编程处理器可在不明显增加功耗 的条件下支持有效的硬件环路。
为了能支持硬件环路,处理器2可支持环路建立指令,该指令通过对环路建 立进入和退出条件来初始化硬件。进入和退出条件由环路条件定义为:顶部,底部 和计数。顶部条件定义了环路第1指令(或顶部)。底部条件定义了环路最后指令(或 底部)。以及计数条件定义了环路迭代次数。
硬件环路的进入出现在第1“顶部匹配”。当程序计数器(PC)指向环路的顶部 指令时,就会产生顶部匹配。硬件环路的退出出现在最后的“底部匹配”。当PC 指向环路的底部指令时,就会产生底部匹配。
通过对第1顶部匹配时计数的初始化和各底部匹配时的计数减量,硬件可保 持在它遇到最后的底部匹配时的踪迹。以此方式,环路条件顶部,底部和计数可定 义硬件环路的进入和退出条件。
处理器2包括执行流水线4和控制单元6。控制单元6可以控制在一个时钟周 期中通过流水线的指令和/或数据的流程。如,在指令处理周期中,控制单元6可 指示流水线的各部件对指令进行解码并正确地进行相应的操作,该操作可包括,例 如结果回写至存贮器。
指令可加载至流水线4的第1级,并由随后的各级来处理。第1级与其他级 可同时进行处理。数据在该系统的一个周期内在流水线4两级之间通过。指令的结 果以快速连续的方式出现在流水线4的终端。
控制器6还包括下文所描述的硬件环路单元8,该单元可在不明显增加处理器 2功耗的条件下,便于硬件环路的加速。
图2是说明举例流水线的方框图。流水线10具有有利于在单时钟周期内执行 多指令的多级。在流水线10中,指令可在第1时钟周期内进入指令取出(IF)级12。 随后,指令在后续时钟周期内继续进入流水线的下一级。在前一条指令退出后,另 一条指令就会进入IF级12。这样,一般在后续时钟周期内另一条指令进入IF级 12,然后,在后续在第1时钟周期内,继续进入流水线的下一级。同样,在后续的 时钟周期内,其它指令可分别进入IF级12。流水线的级数定义了流水线可同时服 务的指令的数量。
流水线的不同级可采用以下的方式工作。在IF级12中由读取单元13读取指 令,并在DEC级14内对指令寄存器15中的指令进行解码。在AC级18中,数据地 址发生器19可计算用于进行操作的任何存贮器地址。
在执行级(EX1-EXn)22和28中,执行单元23和29可进行指定的操作,例如, 2个数相加或相乘。执行单元具有专用硬件来进行操作,包括,例如,一个或多个 运算逻辑单元(ALU),浮点单元(FPU)和桶形移位器,然而,本发明范围不局限于这 方面。多种数据都可以应用于执行单元,例如,数据地址发生器所产生的地址,从 存贮器所检出的数据或从数据寄存器所检出的数据。在回写级(WB)30中,结果可 写至流水线外部的存贮器位置或数据寄存器,或流水线中的数据寄存器,例如,结 构寄存器32。流水线10的级可以包括一个或多个贮存数据的贮存电路,例如,触 发器。
如上所述,处理器2可支持环路建立指令。通过把硬件环路的边界(如,顶部 和底部)写至流水线中的结构寄存器32,环路建立指令可对硬件环路初始化。环路 建立指令还可对结构寄存器32中的计数器初始化,从而指出环路待完成的次数。 此外,环路建立指令可定义偏置,以指出在到达环路顶部之前跟随环路建立指令的 指令数量。在硬件环路初始化后,硬件环路在流水线10中工作,直至环路的退出 条件得到满足(如,底部匹配与计数等于零)。
一旦1条指令已提交,例如在WB级30结束时,一般加载结构寄存器32。因 此,在经过从环路建立指令进入流水线10开始之后的数个时钟周期之前,贮存在 结构寄存器32中的进入和退出条件是不能更新的。因为进口和退出条件在经过数 个时钟周期之前是不会被更新的,对建立的硬件环路可能存在着一些制约。如,如 果环路中第1指令在环路建立指令提交之前进入流水线10,是不可以将结构寄存 器设置成环路的一部分来识别指令。又,随着流水线深度的增加时,此问题也会增 加。
在另一实例中,通过在流水线中保持一组预测寄存器34、35和36,处理器2 可克服这些制约。如图2所示,预测寄存器ETOP34和EBot35驻留在解码级,同时 Ecnt 36驻留在AC级。
通过降低或避免环路建立时损失,采用一组预测寄存器34、35和36可提高 处理器2的处理速度。如上所述,在环路建立指令进入流水线的时间和写入结构寄 存器时间之间可能经过几个时钟周期。然而,在环路建立指令写至结构寄存器之前 较长的时间内,加载预测寄存器。为此,采用预测寄存器可减小建立硬件环路所化 的时间。
预测寄存器是用于预测或推测结构寄存器数值的推测寄存器。与结构寄存器 不同,系统指令集的不支持此推测寄存器。因此,不用程序码来访问推测寄存器。 为此,程序编制员就不能象他使用结构寄存器那样的方法将数据移入或移出推测寄 存器。
有几种不同方法可用于加载预测寄存器。
如,初期寄存器可采用将常规的指令寄存器的执行结果移动至结构寄存器的 方法进行简单加载。换言之,系统可指令结构寄存器加载另外一些寄存器的内容, 并因此而更新,初期寄存器得以修正。还有另外一种加载寄存器的方法是从存贮器 中“弹出”。换言之,系统从存贮器取出数据,并用此数据加载结构寄存器,和预 测寄存器。
然而,常规寄存器移动或弹出的问题是,它们会引起环路建立损失。因为系 统在“移动的”或“弹出的”数据有效写入之前,会暂停流水线,所以这些损失就 会出现。为了避免这些损失,在结构寄存器取得写入之前,可用环路建立指令加载 预测寄存器。
下面例子说明涉及示例性环路建立机器指令的语法:
LSETUP(PC相对顶部,PC相对底部)计数器=X
“PC相对顶部”定义为从当前指令至环路开始(“开始偏置”)的距离。“PC 相对底部”定义为从当前指令至环路结束(结束偏置)的距离。此外,可变的计数器 可定义为计数器寄存器并表示环路中迭代次数的环路计数。
图3是说明根据本发明实施例预测寄存器取得加载时的时序流程图。如上所 述,环路建立指令可以计数值,顶部值和底部值形式来包含环路条件。总的说来, 此三种值可定义硬件环路的进入和退出条件。
计数值代表环路作出的迭代数。一旦环路建立指令进入AC(38),计数值就写 入ECnt寄存器(39)。通过从不同流水线所含有的数据寄存器中移动寄存器的数值, 就可以完成初始化条件写入ECnt寄存器。在一种工作模式式中,ECnt寄存器可由 DAG流水线中PREG寄存器(见图6)所含有的数据来写入。
顶部和底部值可指出那一条指令是环路顶部,那一条指令是环路底部。环路 建立指令中顶部和底部值也可是程序计数器(PC)的相对值。因此,可利用AC级中 计算(40)来取得分别将写入ETop34和EBot35的顶部和底部值。环路建立指令进入 EX1(41)后,顶部和底部值可写入于ETop34和EBot寄存器(42)。
可加载ETop寄存器34,来指出环路第1条指令(或环路顶部)的位置。可加载 EBot寄存器,来指出环路最后指令(或环路底部)的位置。ECnt寄存器36的加载可 定义电路通过环路的次数。在实施例中,当电路经过环路时,ECnt36计数向下逆 减。
图4是示出当环路建立指令由流水线10所收到和处理时硬件环路单元8的一 种工作模式的流程图。按照一种格式,环路建立指令可定义包括“开始偏置(S- Offset)”和“结束偏置(E-Offset)”的几个建立变量。S-Offset定义了从环路建 立指令至环路中第1指令的指令流中的距离。同样,E-Offset可定义从环路建立 指令至环路的最后指令的指令流中的距离。
如,环路中第1指令是紧跟着环路建立指令的指令,则S-Offset应是环路 建立指令的宽度。如果在指令流中,在环路建立指令和环路中第一指令之间有一条 指令,则S-Offset应是环路建立指令和这条指令的宽度。同样,如果在环路建立 指令和第一指令之间有2条指令,则S-Offset应是环路建立指令和这两条指令的 宽度。
如图4所示,S-Offset和E-Offset一般由环路建立指令(44)来定义的。然 而,此环路建立指令,定义相对于程序计数器(PC)的偏置。因此,PC值必须加以 确定(45)。PC值和S-Offset然后可用来计算ETop寄存器数据(46)。又,PC值和 S-Offset也可用来计算EBot寄存器数据(47)。一旦计算好后,初期寄存器数据 就写入预测寄存器(48)。
把图4与图2比较,说明写于ETop和EBot寄存器时的示例性定时。步骤(44) 和(45)出现于DEC级14。步骤(46)和(47)的计算出现在AC级18。因此,写入步骤 (48)出现在EX1级22,然而,本发明范围并不局限于这方面。
一旦加载后,预测寄存器可用来建立硬件环路。图5是说明连接着流水线10 的指令取出(IF)单元50和解码器单元52的硬件环路单元8实例的方框图。在该实 施例中,预测寄存器可用来检测指令流57的环路。环路硬件54然后加载一个或多 个环路指令。一旦加载后,环路指令可从环路硬件中一次又一次地发出。这样,如 果预测寄存器检测一条指令环路,然后,一个或多个环路指令只由IF单元50可取 出,而从硬件环路单元8中可重复发出。
采用预测寄存器会引入数个挑战。如,因为预测寄存器数据需要加以调整, 所以由使用预测寄存器而引入的挑战就出现了。如果流水线必须服务1个事件,则 流水线当前工作必须加以终止。如果在预测寄存器写入之后,但在其相应的结构寄 存器写入之前,出现了终止,则此预测寄存器数据必须加以调整。换言之,因为预 测寄存器写入早,就要求在环路已提交之前终止流水线并需要调整预测寄存器数 据。
图6是有关预测寄存器调整的一种工作模式流程图。特别是,图6示出有关 调整ETop,EBot,ECNt寄存器的时序。
如图6所示,预测寄存器可以写入(76)。在图6的实施例中,预测寄存器是 专门的ETop,EBot和ECnt寄存器(如图2所示)。如果在结构寄存器写入之前(82), 出现流水线的终止(80),则未退出的指令可从流水线中指出(83),通过写入它们相 应的结构寄存器内的数据就可以调整预测寄存器(84)。
当处理一个接一个的硬件环路时,图示于图6的工作模式特别有用。例如, 第2环路在其提交之前而终止,则第1环路仍需要执行流水线中保存着的指令。图 6中调整技术提供了一种通过相应地调整预测寄存器来处理这种转移的方法。
图7说明了采用预测计数(ECnt)数据来更新结构寄存器数值的方法。数据可 以上述任何方式写入ECnt寄存器(90)。然后把ECnt寄存器数据向下发送至流水线 (92),以致于它可在WB级写入结构计数寄存器(93)。然后,在环路(94)的每次后 续迭代中,ECnt寄存器数据递减(96),并再次发送至流水线(92)。这种过程连续 下去,直到环路完成其最后迭代(98)。
图8说明了另一种更新结构计数寄存器的方法。如图8所示的工作模法只要 把Ecnt数据发送一次,而不是在环路每次迭代后,把Ecnt数据向下发送至流水线。 然后,在环路的后续迭代中,发送单个有效递减位,来调整结构计数寄存器。
在图8中,数据可以上述任何方式写入Ecnt寄存器(90),把ECnt寄存器数 据向下送到流水线(92),使得在WB级期间将此数据可写入结构计数寄存器(93)。 在环路的后续迭代中(94),送出单个有效递减位(102),使结构计数寄存器(104) 递减。此过程继续下去,直到环路完成其最后迭代(98)。
图9说明了使用预测寄存器所实现的时序优点的流程图。如图9所示,环路 进入/退出条件可加载至一组预测寄存器(120)。在环路建立指令提交之前(124), 对这些预测进入/退出条件可加以检测(124)。
调整ECnt寄存器,会出现另外的挑战。在环路结束之前,在流水线终止的任 何时候都可以进行ECnt寄存器调整。这是因为有效指令仍在流水线中,一旦这些 有效指令提交,它们就可调整结构计数寄存器。
一种校正终止之后的ECnt寄存器数据的方法是允许把终止之前的指令进行提 交,然后,用其相应的结构寄存器写入ECnt寄存器。然而,如果转移损失是小于 它排出流水线所化的时间,则就要增添另外的损失。
图10说明了调整预测计数值的一种有效方法。如图所示,在环路建立指令进 入AC级(180)之后,预测计数寄存器可写入(182)。这时,把ECnt数据向下发送至 流水线(184)。如果终止出现,未退出的指令就排出(186)和ECnt寄存器用其相应 的体系结构结构寄存器(187)的数据写入。
在底部匹配时(190),把有效递减位向下发送至流水线(192)。当引起发送有 效位的指令退出各流水线(194)级时,有效递减位就从那个退出的流水线级(196) 上的计数器除去。换言之,当有效位送出时(如,在192上),计数器将增递,随后, 当引起待发送的有效递减位指令退出流水线级时,各别计数器递减(如,在196时)。
如果在流水线(198)上出现终止,可以通过终止级计数器中的有效递减位数来 调整预测计数寄存器(188)。此调整值也可由往后驻留在流水线中的每个流水线级 的各个计数器来表示,而不是在终止出现的级上来表示。图10中步骤可加以重复, 直到所有环路指令退出流水线(200)。
ECnt寄存器可在每个底部匹配时(如,每次通过环路)递减。然而,只要把单 个有效递减位向下发送到流水线,而不是在每次底部匹配后把整个ECnt的数值都 发送到流水线。采用这种方式,可以在DSP系统中实现硬件减少。计数器组可监控 有效递减位和引起这些待发送的位的有关指令。这样,计数器组在预测计数寄存器 和其对应的结构寄存器之间可保持运行标记之差异。
图11是说明电路中计数器的方框图。如图所示,DEC后(210,211,212和213) 流水线每级都保留着计数器。因此,单个有效递减位可向下传至流水线,以便考虑 预测计数寄存器和其对应的结构寄存器之间的差异。计数器可连接多路复用器220 的输入。如果有计数器,多路复用器220可确定使用那一个计数器,来调整预测计 数寄存器36。
在另一实施例中,在某些级不会出现终止,或当某些指令驻留在某些级上, 终止就受到制约。在此类实例中,通过在终止受到制约级中不采用计数器,来减少 电路硬件。
计数器210,211,212和213的宽度可按需要加以改变。如,计数器210是1 位计数器,而211是2位计数器。计数器212和213的最低深度取决于流水线中执 行级n的数量。计数器210可以是1位计数器,因为它始终具有或者是1或者是0。 例如,如果底部匹配指令正在AC,则其值是1。当指令离开AC,此计数器返回至 零。
计数器211和下一个计数器(如,EX2级)可以是2位计数器,然而,本发明范 围不局限于这方面。这是因为计数器211(如,EX1计数器)具有最大值为2,而EX2 计数器具有最大值为3,EX3计数器具有最大值为4,因此,它可能需要3位数。 同样,下面的3个计数器(如,EX4至EX6)可能是分别能表示5至7之间的值的3 位计数器。
各级计数器的宽度通过考虑计数器需要保持的最大值来加以确定。这适合了 环路是单条指令环路的情况。这样,计数器的深度可简单地对应于计数器和AC之 间的级数。又,数量的多少也取决于终止是否出现在一特定的级上,所以,有些级 不需要计数器。
另一个工作模式是调整预测计数寄存器的混合型方法。如果有关退出流水线 的损失大于转移损失,则利用驻留在流水线的可选择级的计数器来调整预测计数寄 存器。然而,如果退出损失小于或等于转移损失,则可允许提交流水线中的指令, 这样,预测计数寄存器可由其对应的体系机构寄存器来加以调整。所选择的系统工 作取决于流水线中终止出现的地方。有一种情况,如果终止出现在EX3级或WB级, 则具有3个执行级的流水线将会退出;但是如果终止在EX3级之前出现,流水线可 能不会退出,并且可调整预测计数器。
图12是说明混合型工作模式的流程图。如图所示,如果终止(230)出现在第 nth级之前,计数器可调整预测计数值(288)。然而,如果终止出现在第nth级之后, 可允许流水线中指令流经流水线并付诸实施(232)。此预测寄存器利用它们对应的 结构寄存器来加以更新(233)。变量n可定义为使指令流经流水线所化去的时间小 于或等于转移损失(234)的地方。
图13说明了在第1个n-1执行级中具有计数器的混合型电路。如果指令已 进入第nth执行级,此电路可使流水线执行在终止之后的指令。然而,如果指令没 有进入第nth执行级,此电路也可调整在终止之后的预测计数寄存器。又,变量n 可定义为使指令流经流水线所化去的时间小于或等于转移损失的地方。换言之,变 量n可更早地驻留在流水线中(如,在转移损失较大的地方)。
另外的环路硬件如,环路寄存器和环路缓冲器也有利于加速硬件环路。本文 所述的环路硬件可提供几种优点。在一些实施例中,环路硬件隐藏着转移损失。此 外,通过不需要在环路每次迭代时访问存贮器件如,高速缓存存贮器SRAM,环路 硬件可节省功率。又,下述的环路硬件具有非常少的编程制约。再之,环路硬件可 去除在程序存贮器中可能存在的对准制约。
再参照图1,示出的是具有执行流水线4和控制单元6的可编程处理器2。控 制单元6还包括硬件环路单元8。
硬件环路单元8包括1组或多组串接的环路缓冲器。此外,硬件环路还包括 一个或多个单条指令环路寄存器。环路缓冲器组合和/或环路寄存器组合可组合成 环路硬件。此组合有利于加速硬件环路。
再次参照图5,示出的是连接着流水线10中指令取指单元50和解码器单元 52的硬件环路单元8的一个实例的方框图。指令取指单元50提供数个输入之一至 硬件环路单元8。硬件环路单元8由连接着环路硬件54的多路复用器56所组成。 环路硬件54含有一组或数组环路缓冲器和/或一个或多个环路寄存器。又,环路缓 冲器组可包括定义数量的串接的缓冲器。每组环路缓冲器都有一个相关的环路寄存 器。
图14是说明硬件环路单元8的一个实施例的另一方框图。又,硬件环路单元 8连接着指令取指单元50和解码器(未示出)。
硬件环路单元8包括连接着环路硬件的多路复用器260。环路硬件包括一组串 接的环路缓冲器271,272,273和274。这些缓冲器可提供输入至另一个多路复用器 280。接着,多路复用器260和280可提供输入至多路复用器290。多路复用器290 的输出接至环路寄存器296,此寄存器又回接至多路复用器260的输入。硬件环路 单元8的输出可提供输入至解码器。
多路复用器260具有多个输入。这些输入包括来自寄存器输入(如,仿真指令 寄存器)和来自取指单元50的输入。此外,多路复用器260还有来自环路指令寄存 器输入和来自一个或多个其他硬件环路单元的输入。
图14的例子说明了由一个4-深度组环路缓冲器和单条指令寄存器所组成的 环路硬件。然而,在其他实例中也可使用任何数量的缓冲器和/或指令寄存器。
在示例性工作模式中,环路缓冲器由两种不同的方案来实施。在一种方案中, 环路的每条指令适合于环路缓冲器。在另一种方案中,环路的每条指令不适合于环 路缓冲器。接着来讨论各个方案。
图15图示说明了一种方案。如图所示,1个4-深度组环路缓冲器由3-指令环 路(I2-I4)来加载。这样,环路缓冲器之一和VTop寄存器没有加载任何数据。指 令I2-I4一次又一次地执行,直至满足环路的退出条件。如图所示,每当I4指令 由环路缓冲器发送时,就检查退出条件。
图16是一种方案的流程图。如图所示,发送指令(300),将指令加载至一组 环路缓冲器(302),和暂停存贮器件(304)。暂停存贮器对SDP系统来说可以省电。 在把指令加载至此缓冲器组(302)后,这些指令可从缓冲器组中陆续发送(306)。指 令可一次又一次发送,直至满足环路的退出条件(308)。
图17是说明一种方案的另一种流程图。如图所示,指令可发送(310),指令 也可加载于一组环路缓冲器(314),存贮器件可加以暂停(316),对环路计数器进行 初始化(312)。只要环路退出条件没有满足(318),环路计数得以递减(320)而指令 由1组环路缓冲器(322)发送。存贮器件可加以暂停,直至环路计数达到定义数 X(316)。又,X可如此定义即,当环路完成时,在环路后的下一条指令立即在取指 单元中准备着。用这种方法可避免环路退出损失。
在另一实施例中,把环路计数初始化为零(312)。调整(302)将使环路计数递 增量,而不是如图17所示的递减。图15-17将使其他的实施例变得更加明显。
图18说明了另一方案。如图所示,一个4-深度组环路缓冲器可由环路的4 条指令(I2-I5)来加载。此外,VTop寄存器可由环路中下一条指令的地址来加载。 VTop也可能是一个驻留在流水线中的一个地址寄存器(见图2,37)。在环路后续的 迭代期间,指令I2-I5被被行,同时I6正在取出,在I5执行后,I6将立即准备 执行。在环路迭代期间,检查退出条件。
图19是图18方案的一种流程图。如图所示,当第1子集指令发送时(332), 第1子集指令可加载至一组缓冲器(330)。其次,第2子集指令的开始地址可加载 至寄存器(334),而第2子集也将发送(336)。在环路以后续的迭代期间(迭代数将 由退出条件所定义了(338)),第1子集指令将由缓冲器(340)发送,同时,将取出 第2子集(342)。然后,将发送第2子集(344)。
按照图19的工作模式可实现几个优点。如,每当第一子集由一组缓冲器来发 送时,如果存贮器件没有起动,就可省电。此外,在发送第一子集同时,取出第2 子集,可把环路损失减少至最低限度。在实施例中,可以环路缓冲器具有至少相应 于转移损失的深度。这样,有关第2子集取指的损失可能隐藏在指令第1子集发送 的后面。这样,就提高DSP系统的速度。在另一实施例中,当省电作为一个更重要 的设计特征时(如电池电源器件中所实施的电路),更深度的缓冲器将更有用。
第1子集指令是拟合于环路缓冲器组的指令数。第2子集指令是接在加载于 缓冲器的这些指令之后的环路中下1条指令。另外是,第2子集也可能是接在加载 于缓冲器中的指令之后的多条指令。
图20是示出上述方案的较一般的流程图。如图所示,第一子集指令加载于一 组缓冲器(350),并发送(352)。如果环路所有指令拟合环路缓冲器(354),然后, 可暂停存贮器(355),指令将连续从缓冲器组(356)发送,直至满足退出条件(358)。
如果环路所有指令不拟合环路缓冲器(354),然后,将发送第2子集指令(360), 这些指令的开始地址加载于寄存器(362)。在环路的后续的迭代时(由退出条件(364) 定义了),第1子集指令可从缓冲器组发送(366),同时从存贮器中(368)取出第2 子集。然后,将发送第2子集(370)。
在图18的方案中,每当有底部匹配时,就要对VTop所指出的地址作为请求。 采用这种方法,在取出第2子集指令同时,可调度指令的第1子集。
在调度环路中第1子集指令的时候,可能已访问高速缓冲存贮器/存贮器,并 对准缓冲器掌握了第2子集指令。此对准缓冲器可保持多条指令(取决于各指令的 宽度)。如果第2子集包括多条指令,则对准缓冲器中多条指令要与VTop寄存器有 关指令的第2集的第一条指令对准。
工作还进一步包括有关VTop的指令进行调度的同时,要请求接在有关VTop 的指令之后的下一条指令。如,在一种工作模式中,有关VTop的指令是1个64 位指令。当调度此64位指令时,下一个64位指令(由存贮器中对准所定义了)将取 出。通过重复这些程序,DSP系统可以快速和有效的方式调度指令。
采用硬件环路的以前技术的可编程处理器系统在工作代码方面要求许多制 约。然而,最好是提供具有很少编程制约的硬件环路。在一个实施例中,说明根据 本发明的一个系统只有一个编程的制约。这唯一的制约是系统在环路底部上不能有 转移。
快速硬件环路会有环路缓冲器调用无效的情况。这些情况包括可以环路缓冲 器由于条件转移而扩展的无效。这样,在一种工作模式中,如果可以环路中第1 组n条指钟有一条条件转移,则一组环路缓冲器将会无效。变量n定义了此组环 路缓冲器的深度。
另一种环路缓冲器要求无效的情况是,当收到事件时,同时环路缓冲正在加 载。此外,紧跟着用于自修改代码的C-SYNC之后,环路缓冲器可以要求无效。这 样,当上述二种情况任一种产生时,其他工作模式也涉及到使用路缓冲器无效。
零偏置环路会引入另外的挑战。偏置可以认为是环路建立指令和环路中第1 或最后指令之间的距离。在以前技术的系统中,偏置是必要的,以利于系统中硬件 环路的建立或考虑编程的异常状况。然而,简化零偏置环路是非常有利的,因为它 可减少处理时间。
即使在采用预测寄存器和环路缓冲器的系统中,零偏置环路也会引起挑战。 如,在上述系统中,在预测寄存器写入时(如,在EX1),零偏置环路中第1指令已 在AC。这样,因为即使在ETop和Ebot得到写入之前,环路开始退出DEC,故电路 可以有效地“错开”顶部匹配。
现已设计专用工作模式和电路配置,以检测和处理零偏置环路。在一个工作 模式中,将环路建立指令中的开始偏置(S-Offset)与已知值作比较,以检测零偏置。 用此方式,可有利于零偏置环路的预测检测。在一个特定的实例中,S-Offset与4 作比较,其中4是指一个32位指令的4位数。一旦检测过后,零偏置环路甚至于 在预测寄存器得到写入之前就可建立。
图21是示出检测零偏置环路的工作模式的流程图。如图所示,对环路建立指 令进行解码(380)。S-Offset可与定义了的数相比较(382)(此定义了数对应于环路 建立指令的宽度)。以此方式,即使在预测寄存器得到写入之前,就可检测零偏置 环路。如果检测到零偏置环路(384),可发送环路中下一组n条指令,并加载至环 路缓冲(386),如上所述。
图22是说明检测和处理单字节指令零偏置环路的特种情况的工作模式的流程 图。如图所示,对环路建立指令进行解码(388)。如果检测到零偏置(390),并且“开 始偏置”相等于“结束偏置”(392),之后马上可执行单条指令环路(394)。当S- Offset相等于环路建立指令的宽度时,就可检测零偏置。当S-Offset和E-ffset 相同时,可检测单条指令环路。
专用硬件便于可尽可能快地建立和执行单条指令环路。再参照图14,在此特 种情况下,可采用环路寄存器296。这样,通过用单条指令加载环路硬件(如,环 路寄存器296)进行步骤(394),并重复发送硬件环路单元8外的指令,直到满足单 条指令环路的退出条件为止。
通过在一个专用环路指令寄存器296中保持指令于解码,就可检测和进行单 条指令环路(见图14)。对存贮器件不可访问,上游的每一项工作都将暂停,以节 省电能。又,由于单条指令环路可在环路寄存器296外进行发送,所以指令取指单 元50就不用取出下一条指令(如,从高速缓存存贮器)。这样,当单条指令环路完 成执行时,下一条指令已在指令取指单元50中,从而形成零损失环路的退出。
归纳起来,零偏置硬件环路可分为三种情况。第一种情况是,通过环路指令 寄存器马上发送零偏置单条指令环路不在解码。第2种情况是,零偏置n指令环路 可马上加以检测,并全部加载至n深度的环路缓冲器组中。第3种情况是,零偏置 环路可马上加以检测,并且将此环路的第一组n条指令加载至n深度的环路缓冲器 组中。然后,下一条指令是VTop寄存器有关。
在实施例中,本文所述的环路硬件可在流水线中采用。这比在高速缓存存贮 器中采用缓冲器要有利得多。
在一种工作模式中,环路指令可贮存在环路硬件中,这样,指令可与指令边 界对准。这比把指令对准地址边界更为有利。一旦与环路硬件中指令边界对准,当 它们接续地从环路硬件中发送时,就不必要对准指令。
为了把指令对准于指令边界,将一组指令按执行次序加载至环路硬件,并将 下一组指令的地址贮存在地址寄存器。此外,第2组指令也按执行次序加载至存贮 器件。按执行次序将指令加载至环路硬件可包括将n序列指令加载至n个缓冲器, 其中n是整数。又,n序列指令可以是包括环路的第1组n条指令或环路的最后n 指令的任何序列指令。
在另外一些实例中(如示于图23A-23C),可采用一些硬件环路单元。这些硬 件环路单元的任一个输出可连接着一个或多个其他硬件环路单元的相应的输入。以 此方法,第2硬件环路单元可通过第1硬件环路单元的输出予以加载。又,因为存 贮器没有起动来加载第2硬件环路单元,所以,它可提供省电。
在一些情况中,多个环路单元可用来服务嵌套环路(或重合环路)。一个内部 硬件环路单元可保持对准于一个外部硬件环路单元的一个或多条指令。又,通过从 外部硬件环路单元发送对准的指令至内部硬件环路单元的输入,对内部硬件环路单 元予以加载。
在还有些实例中,可采用多个独立的硬件环路单元。然而,如果在同一的DSP 系统中采用2个或更多的独立的硬件环路单元,就要采取制约。如,当两个环路具 有相同的底部指令时,此两环路之一要定义为外部环路。如果没有这种制约,电路 会遇上两个底部匹配,并且不知道哪个是要递减量。
还有一种工作模式涉及硬件环路的功率管理。当硬件环路是工作时,ETop寄 存器要与PC比较,来考虑各个顶部匹配。同样,EBot寄存器也要与PC比较,以 考虑各个底部匹配。然而,当硬件环路被禁止时,比较电路中任何切换都只是浪费 电。因此,当硬件环路禁止时,最好使底部匹配和顶部匹配比较电路不工作。当硬 件环路禁止时,通过选择比较器的输入使比较器不工作,就可节省电。
图24显示了节电电路的示例性实例。ETop寄存器400和EBot寄存器402分 别提供一些输入之一至多路复用器404和406。多路复用器404和406的输出将是 至比较器408和410的输入。比较器408和410的另外输入可来自多路复用器412 的输出。多路复用器412的输入可来自程序计数器414,以及来自控制单元的环路 禁止信号416。多路复用器404,406和412可以如此配置即,当硬件环路不工作 时,多路复用器412的输出不同于多路复用器404和406的输出。这样可保证在硬 件环路禁止时,在比较器408和4410中没有出现切换。
在实施例中,同样的环路禁止信号416可发送至多路复用器404,406和412。 然而,在多路复用器412收到信号之前,反相器(未示出)将使位数反相。这样,当 环路禁止信号发送到电路时,多路复用器412的输出会不同于多路复用器404和 406的输出。
图24也示出ECnt寄存器418递增的示例性电路。在每次环路通过时,多路 复用器420会使ECnt寄存器递减。然而,如果调整是必需的话,调整信号(如,乱 码计数器422)可相应地调整ECnt。一旦环路完成其最后迭代,比较器424发送信 号425来表示。
图24显示了如何检测底部匹配和顶部匹配。当比较器410检测到程序计数器 412和ETop寄存器具有相同的值时,就可发送顶部匹配信号428。当比较器408 检测到程序计数器和Ebot寄存器具有相同的值时,就可发送底部匹配信号430。
最后,图24也显示了流水线所采用的VTop寄存器432。如本文所述,VTop 可以是一个地址寄存器(未示出),它保持着接在加载于环路硬件的多条指令之后 的下一条指令的地址。
本发明的多种实例都加以陈述。如,在处理器内应用的许多硬件环路技术也 作了说明。在包括通用计算系统,数字式处理系统,膝上计算机,个人数字助理(PDA) 和蜂窝状电话等各种系统中都可采用处理器。在本文中,上述的硬件环路可方便地 用来提高处理速度,而用不着大大地增加功耗。在此类系统中,处理器可与存贮器 件相耦合,例如,可存储操作系统和其他软件应用程序的Flash存储器和静态存储 器(SRAM)。这些和其他实例都在下述权利要求书的范围内。
背景
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用