预测计数器的制造方法

文档序号:6515697阅读:177来源:国知局
预测计数器的制造方法
【专利摘要】根据示例性实施方案,诸如数字信号处理器(DSP)的处理器具备用作预测计数器的寄存器。所述预测计数器可以包括两个以上有用值,且除用作用于执行指令的条件以外,还可以追踪循环或条件分支内的嵌套级。在某些情况下,所述预测计数器可以被配置来以单指令多数据(SIMD)模式或寄存器内SIMD(SWAR)模式进行操作。
【专利说明】预测计数器
[0001]相关申请的交叉参考
[0002]本申请要求2012年10月23日提交且名为“Predicate Counter”的美国临时申请第61/717,541号的优先权,该申请的全部内容以引用方式并入。2012年12月19日提交且名为“Memory Interconnect Network Architecture for Vector Processors” 的同在申请中的美国申请第13/720,624号(“624申请”)的全部内容也以引用方式并入本文中。
【技术领域】
[0003]本公开大体上涉及并行处理,且更特别地说涉及一种采用预测计数器的向量处理器。
【背景技术】
[0004]并行处理通常是由用于最优化处理应用程序的处理器(例如,用于最优化数字信号处理应用程序的数字信号处理器(DSP))来实施。处理器可用作单指令多数据(SMD)或数据并行处理器以实现并行处理。在SMD操作中,将一个指令发送到处理器的多个处理元件,其中每个处理元件可独立地对不同数据执行相同操作。对持续较高产量和增加性能的要求不断增长已造成寄存器内SMD(SWAR),其中处理元件可作用于其相关寄存器内的多组数据。例如,一个32位寄存器可以包括四个8位数据、八个4位数据或三个10位数据,其每个可由一个处理元件并行操作。
[0005]虽然在处理器的硬件中实施SWAR相对便宜,但是从编程的观点来看SWAR面临诸多挑战。例如,SffAR编程通常必需来自并非ISO C或C++标准的部分的高级语言(诸如C/C++)的固有、内联汇编和/或专有向量数据类型(诸如float2、int4、short4,等等)。因为这些编程选项(专有向量数据类型、固有和/或内联汇编)为处理器所特有,所以SWAR编程难以移植原有代码。此外,因为SWAR编程对向量处理器添加额外等级的并行处理,所以常规处理器由于确保处理器识别两个等级的并行操作(双向并行)而增加程序员的负担:(使用SWAR的)处理元件内的一个等级的并行处理和跨处理器的向量单元的处理元件的另一等级的并行处理。因此,虽然用于执行并行处理的现有处理器架构和相关方法通常适用于其希望目的,但是在所有方面其并非完全令人满意。
【专利附图】

【附图说明】
[0006]在阅读附图后根据下列详述会充分了解本公开。本公开强调:根据业界标准实践,各个特征并未按比例绘制且仅用于说明目的。实际上,为了明确论述,可以任意增加或减小各个特征的尺寸。
[0007]图1是包括预测计数器的示例性数字信号处理器的方框图。
[0008]图2是被配置来执行寄存器内SMD操作的数字信号处理器内的寄存器的方框图。
【具体实施方式】[0009]MM
[0010]一方面,本发明公开了一种处理器,其包括:处理元件;序列发生器,其被配置来将条件可执行的指令提供到处理元件,其中条件是由预测计数器中编码的预测提供;和预测计数寄存器,其被配置来接收两个以上有意义的值和提供其值作为预测计数。
[0011]另一方面,本发明公开了一种由计算机执行的方法,其包括:接收与预测计数器被配置来接收两个以上有用值相关的指令;如果预测计数器是第一值,那么执行指令;和如果预测计数器不是第一值,那么忽略指令。
[0012]在另一实施方案中,本发明公开了一种有形计算机可读介质,其上存储当执行时命令处理器进行以下各项的软件指令:读取预测计数器,预测计数器具有两个以上有用值;读取条件指令;如果预测计数器是第一值,那么执行指令;如果预测计数器不是第一值,那么忽略指令并基于预测计数器的值操控预测计数器。
[0013]公开的示例性实施方案
[0014]下列公开提供用于实施本公开的不同特征的许多不同实施方案或实例。下文描述组件和配置的特定实例以简化本公开。当然,这些仅是实例且不希望进行限制。此外,本公开可以在各个实例中重复参考数字和/或字母。这种重复是出于简化和明确的目的,且本身并不指示论述的各个实施方案和/或配置之间的关系。不同实施方案可以具有不同优点,且任何实施方案均无需特定优点。
[0015]指令预测涉及线性化分支操作,这可基本上改善高速缓存性能和指令流水线。在传统的分支拓扑中,条件指令可以呈以下形式:
[0016]
【权利要求】
1.一种处理器,其包括: 处理元件; 序列发生器,其被配置来将条件可执行的指令提供到所述处理元件,其中条件是由预测计数器中编码的预测提供;和 预测计数器寄存器,其被配置来接收两个以上有意义的值并提供其值作为预测计数。
2.根据权利要求1所述的处理器,其还包括: 多个处理元件,其中每个处理元件包括预测计数器寄存器,且其中所述处理器被配置来以单指令多数据(SIMD)模式进行操作。
3.根据权利要求2所述的处理器,其中: 每个处理元件分成多个I信道; 所述处理器被配置来以寄存器内SMD模式进行操作;且 所述处理器还包括预测计数器组,其中所述预测计数器组包括至少nX I个预测计数器,其中η是处理元件的数量。
4.根据权利要求1所述的处理器,其中所述处理器被配置来以寄存器内单指令多数据模式进行操作。
5.根据权利要求4所述的处理器,其中所述处理器包括用于提供取决于所述预测计数器的IF、ELSE和ENDIF原语的电路系统。
6.根据权利要求5所述的处理`器,其中所述IF原语包括: 接收条件; 如果所述预测计数器不是零,那么所述预测计数器递增; 如果所述预测计数器是零且所述条件为假,那么将所述预测计数器设置成I。
7.根据权利要求5所述的处理器,其中所述ELSE原语包括: 如果所述预测计数器是零,那么将所述预测计数器设置成I ;和 如果所述预测计数器是1,那么将所述预测计数器设置成零。
8.根据权利要求5所述的处理器,其中所述ENDIF原语包括: 如果所述预测计数器不是零,那么所述预测计数器递减。
9.根据权利要求1所述的处理器,其中所述处理器包括用于实施LOOP和NEXT_STAGE原语的电路系统,其中: 所述LOOP原语被配置来在展开阶段循环的第一指令前执行;和 所述NEXT_STAGE原语被配置来在流水线式阶段循环的阶段之间执行。
10.根据权利要求9所述的处理器,其中所述LOOP原语被配置来以寄存器内单指令多数据(SWAR)模式进行操作,且其中所述LOOP原语被配置来接收多个SWAR信道作为参数。
11.一种由计算机执行的方法,其包括: 接收与预测计数器被配置来接收两个以上有用值相关的指令; 如果所述预测计数器是第一值,那么执行所述指令;和 如果所述预测计数器不是所述第一值,那么忽略所述指令。
12.根据权利要求11所述的方法,其中所述第一值是零。
13.根据权利要求11所述的方法,其中所述第一值选自由零、1、MAXINT、-MAXINT、无穷、负无穷和非数值组成的组。
14.根据权利要求11所述的方法,其还包括: 如果所述预测计数器不是第一值,那么采取额外动作。
15.根据权利要求11所述的方法,其还包括: 执行取决于所述预测计数器的IF、ELSE和ENDIF原语。
16.根据权利要求15所述的方法,其中: 所述IF原语包括: 接收条件; 如果所述预测计数器不是零,那么所述预测计数器递增; 如果所述预测计数器是零且所述条件为假,那么将所述预测计数器设置成I。 所述ELSE包括: 如果所述预测计数器是零,那么将所述预测计数器设置成I ;和 如果所述预测计数器是I,那么将所述预测计数器设置成零;且 所述ENDIF原语包括: 如果所述预测计数器不是零,那么所述预测计数器递减。
17.根据权利要求11所述的方法,其还包括: 在流水线式阶段循环中于所述第一指令前执行LOOP且在所述展开循环的阶段之间执行NEXT_STAGE原语,所述LOOP原语和NEXT_STAGE原语的执行每个均取决于所述预测计数器。
18.一种有形计算机可读介质,其上存储执行时命令处理器进行以下各项的软件指令: 读取预测计数器,所述预测计数器具有两个以上有用值; 读取条件指令; 如果所述预测计数器是第一值,那么执行所述指令; 如果所述预测计数器不是所述第一值,那么忽略所述指令并基于所述预测计数器的值操控所述预测计数器。
19.根据权利要求18的有形计算机可读介质,其中所述操控选自由递增、递减和维持所述预测计数器的所述值组成的组。
20.根据权利要求18的有形计算机可读介质,其还包括嵌套条件分支,所述嵌套条件分支被配置来基于布尔(Boolean)条件和由所述预测计数器指示的整数嵌套级有条件地执行指令。
21.根据权利要求18的有形计算机可读介质,其还包括在所述阶段循环开始处具有LOOP原语且在所述阶段循环的每个阶段之间具有NEXT_STAGE原语的展开阶段循环。
22.根据权利要求18的有形计算机可读介质,其还包括在寄存器内单指令多数据操作内使用所述预测计数器的指令。
【文档编号】G06F9/38GK103777922SQ201310487400
【公开日】2014年5月7日 申请日期:2013年10月17日 优先权日:2012年10月23日
【发明者】A·J·希格哈姆, B·勒纳, K·桑海, M·博金斯, J·L·瑞德福特, M·S·艾伦 申请人:亚德诺半导体技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1