时间-固定处理器中零开销的分支和循环制造技术

技术编号:2850287 阅读:257 留言:0更新日期:2012-04-11 18:40
可编程处理器用于根据在指令中编码的程序信息将输入数据转换为输出数据。特别是,所得到的输出数据的值取决于在时间上任一给定时刻的处理器的瞬时状态。这个状态是由例如存储在寄存器中的临时数据值以及所谓的标志组成的。标志的原理的不足在于,标志会在处理器中,特别是并行处理器中导致副作用。然而,当消除传统的标志的概念时,剩余的问题是分支的实施。根据本发明专利技术的处理系统包括执行单元(EX1、EX2)、用于存储数据的第一寄存器文件(RF1、RF2)、程序存储器(PM)以及用于存储程序计数器的第二寄存器文件(RF3)。执行单元有条件地执行用于将程序计数器的值写到第二寄存器文件中的专用指令。结果,根据本发明专利技术的处理系统在不使用标志的情况下允许条件分支。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术通常涉及在数字处理方面的改进,并且更特别地涉及一种在并行处理器中用于支持条件分支以及循环的方法、设备和编译器。
技术介绍
可编程处理器用于根据指令中编码的程序信息来将输入数据转换成输出数据。所得到的输出数据取决于输入数据、程序信息,以及取决于在时间上任何给定时刻处理器的瞬时状态。在传统的处理器中,这个状态是由例如存储在寄存器中的临时数据值以及所谓的标志组成的。在计算期间,这些标志一般被用来设置特定的舍入(rounding)模式,以便影响某些操作的语义,或改变程序流程,仅举几个例子。标志一般存储在特定的标志寄存器中,在该寄存器中,在每个能够改变一个或多个标志的指令之后,标志都会被重写。一般情况下,在处理器内部,在任何给定的时间点对于同一标志存在多个值是不可能的。当前对提高高性能计算的要求已经导致引入几种解决方案,其中某种形式的并行处理,即并行性,已经被引入到处理器体系结构中来。两个已经被采纳的主要概念是多线程概念,其中程序的几个线程是并行执行的,还有就是超长指令字(VLIW)概念。对于VLIW处理器来说,多指令被封装成一条长指令,即所谓的VLIW指令。VLIW处理器利用多个独立的执行单元来并行执行这些多指令。该处理器允许在程序中采用指令级并行,从而一次执行多于一条的指令。由于这种形式的并行处理,所以处理器的性能得到了提高。为了在VLIW处理器上运行软件程序,该软件程序必须被翻译成一组VLIW指令。通过优化并行性,编译器试图使执行程序所需的时间最小化。在分配给单VLIW指令的多条指令要能够并行执行的约束以及在数据相关性的约束下,编译器将多条指令组合成一条VLIW指令。在VLIW指令中对并行指令的编码导致代码尺寸的剧烈增加。就所需的存储容量和所需的存储带宽这两个方面来讲,大的代码尺寸导致程序存储器成本的增加。在现代VLIW处理器中采用不同的措施来减少代码尺寸。一个重要的例子就是,在数据固定VLIW处理器中,将空操作(NOP)的操作用紧凑格式来表示,即在附于VLIW指令前面的特殊报头中,通过单比特对NOP操作进行编码,从而产生压缩的VLIW指令。为了控制处理器的数据流水线中的操作,通常会在计算机体系结构中使用两种不同的机制数据-固定编码和时间-固定编码,正如在“Embedded software in real-time signal processing systemsdesign technologies”,G.Goossens,J.van Praet,D.Lanneer,W.Geurts,A.Kifli,C.Liem and P.Paulin,Proceedings of theIEEE,vol.85,no.3,March 1997中所公开的那样。对于数据-固定编码来说,作为处理器指令集的一部分的每条指令,当其遍历数据流水线时,它控制必须对特定数据项执行的一个完整序列的操作。一旦该指令已经从程序存储器中取出并进行解码,处理器控制器硬件就要确保所组成的操作(composing operation)在正确的机器周期中执行。对时间-固定编码来说,作为处理器指令集的一部分的每条指令,控制必须在单机器周期内执行的一整套操作。这些操作可以应用于遍历数据流水线的几个不同的数据项。在这样的情况下,编程器或编译器的任务就是建立和维护数据流水线。所得到的流水线调度在机器代码程序中是完全可见的。时间-固定编码通常被用于专用处理器,因为它以较大的代码尺寸的代价节省了对在指令中存在的控制信息进行延迟所需的硬件开销。对于数据-固定处理器来说,无需使用转移操作就可以实施操作的条件执行。然而,对于常规的时间-固定处理器来说,不使用转移操作是不可能进行操作的条件执行的。在以前的申请(EP申请号03101038.代理人的案卷号PHNL030384EPP)中,公开了一种无需使用转移操作就允许操作的条件执行的时间-固定处理器。标志及其被存储和更新的方式的原理的不足在于,它们导致了处理器中所谓的副作用(side effect),即在程序中不是清晰可见的行为。代之以,副作用导致了一种隐含的行为,其中在程序的不同部分中相同的操作会表现出不同的语义,这取决于早期进行的操作。如果标志的更新能够更好地受程序控制的话,则会使程序更有效率。例如,如果在减法的零输出时发生分支,那么就会用到以零标志作为条件的分支。然而在那样的情况下,在减法操作和分支操作之间不会安排改变零标志的操作。因为一般情况下很多操作会更新标志,因此该减法操作必须经常恰好安排在分支操作之前。这些种类的约束严重地限制了程序中调度的自由度,从而将更有效的调度潜在地排除在外。通常会认为标志会使创建强大的高级语言的编译器要困难得多,所述高级语言比如是C编程语言。特别是在并行处理器中,象VLIW处理器,标志强加了额外的问题,因为如果多个操作可以并行执行的话,不清楚的是应该允许哪个操作对标志寄存器进行更新。理想的是,适于编译器的VLIW处理器仅表现出最小数量的副作用。通过消除传统的标志的概念,可以消除很多这样的副作用。例如,通过使用特殊的操作码就可以实现特殊的舍入模式或者其它的特殊操作语义,举例来说,用于带进位加法的特殊addc指令,其作为紧跟在标准add指令的数据输入之后的第三数据输入。这样,将标志作为数据来对待。然而,剩余的问题是分支的实现,这些分支通常是用标志来处理的,例如,用零标志来确定相等时分支。本专利技术的目的在于,无需使用标志就能够在处理器、特别是在并行处理器中使用分支和循环。
技术实现思路
该目的是利用在程序计数器控制下被安排执行一组指令的处理系统来实现的,该处理系统包括执行单元;用于存储数据的第一寄存器文件,该第一寄存器文件可由执行单元进行访问;用于存储该组指令的程序存储器;用于存储程序计数器的值的第二寄存器文件,该第二寄存器文件可由执行单元进行访问,以及其中执行单元被安排用来有条件地执行将程序计数器的值写到第二寄存器文件中的专用指令。该计算装置可以包括加法器、乘法器、用于执行逻辑操作、查找表操作、存储器访问等的装置,所述逻辑操作例如是AND、OR、XOR等。在指令的正常的顺序执行期间,程序计数器的值每周期递增。然而,在指令执行期间,为了指向下一个要执行的目标指令,分支和循环要求程序计数器能够转到不同于其增量的值。通过有条件地执行专用指令,在条件为真的情况下,允许执行单元将程序计数器的值写到第二寄存器文件中。如果条件不是真,则程序计数器的值就不写到第二寄存器文件中。在第一种情况中,程序计数器将指向下一个要执行的分支或循环目标指令。在第二种情况中,程序计数器能够照常递增,而不执行分支或循环操作。结果,在不需要标志的情况下,允许条件分支和循环。US 6,366,999描述了一种在超长指令字处理器中支持条件执行的方法和设备。由执行指令所产生的条件状态被保存在所谓的算术条件标志(ACF)中。ACF既在条件分支中使用,又在条件执行中使用。此外,ACF包括这样的状态信息,即该状态信息作为指令执行的结果被设置或者作为状态信息的布尔组合的结果被设置。这些ACF可以由条件指令进行指定和使用,因此使条件分支的使用最小化。然而,它没有公开在不使用标志的情况下如何在处理器中执行条件分支,也没有本文档来自技高网
...

【技术保护点】
一种在程序计数器(PC)的控制下被安排用来执行一组指令的处理系统,该处理系统包括:-执行单元(EX1、EX2);-第一寄存器文件(RF1、RF2),其用来存储数据,该第一寄存器文件可以由执行单元进行访问;-程序存储器 (PM),其用来存储该组指令;-第二寄存器文件(RF3),其用来存储该程序计数器的值,该第二寄存器文件可以由执行单元(EX2)进行访问;并且其中,执行单元(EX2)被安排来有条件地执行用于将该程序计数器的值写到第二寄存器文件 中的专用指令。

【技术特征摘要】
【国外来华专利技术】EP 2003-4-29 03101175.21.一种在程序计数器(PC)的控制下被安排用来执行一组指令的处理系统,该处理系统包括-执行单元(EX1、EX2);-第一寄存器文件(RF1、RF2),其用来存储数据,该第一寄存器文件可以由执行单元进行访问;-程序存储器(PM),其用来存储该组指令;-第二寄存器文件(RF3),其用来存储该程序计数器的值,该第二寄存器文件可以由执行单元(EX2)进行访问;并且其中,执行单元(EX2)被安排来有条件地执行用于将该程序计数器的值写到第二寄存器文件中的专用指令。2.根据权利要求1的处理系统,其中该处理系统进一步包括控制器(CTR);其中,可以通过该控制器对第二寄存器文件进行访问;并且其中,安排该控制器来使用存储在第二寄存器文件中的程序计数器的值,以便从程序存储器中取出指令。3.根据权利要求2的处理系统,其中,进一步安排该控制器来使程序计数器的值递增,并将程序计数器递增后的值写到第二寄存器文件中。4.根据权利要求3的处理系统,其中,进一步安排处理系统根据分支条件的计算,要么将由控制器递增的程序计数器的值写到第二寄存器文件中,要么将由执行单元产生的程序计数器的值写到第二寄存器文件中。5.根据权利要求1的处理系统,其特征在于,进一步安排执行单元(EX2)对分支条件进行计算,并随后将计算的结果用作监视信号(GU2),以便有条件地执行第一专用指令,该第一专用指令用于将程序计数器的值写到第二寄存器文件中。6.根据权利要求1的处理系统,其特征在于,进一步安排执行单元(EX2)来执行第二专用指令;该第二专用指令至少具有第一自变量和第二自变量,该第二自变量是程序计数器的值;其中,根据第一自变量的值,安排第二专用指令来将程序计数器的值写到第二寄存器文件中。7.根据权利要求...

【专利技术属性】
技术研发人员:JAJ莱坦
申请(专利权)人:皇家飞利浦电子股份有限公司
类型:发明
国别省市:NL[荷兰]

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

1