单指令多数据路径处理器结构的分支处理制造技术

技术编号:2872896 阅读:179 留言:0更新日期:2012-04-11 18:40
一种方法,用以判定计算机程序(40)执行时数据路径(18a-18d)是否应执行条件程序块(42),包括判定是否所有数据路径(18a-18d)的PE(处理器使能)状态(22a-22d)为禁止,且如果所有数据路径(18a-18d)的PE状态(22a-22d)为禁止,则分支路径绕过条件程序(42,44,46)。即使所有数据路径(18a-18d)的PE状态(22a-22d)为禁止,如果程序(40)被判定为确认(deterministic)时,分支路径不会执行。而确认是由评估确认位的状态(图1的DET)。指令亦提供判定和分支运算的执行(carryout)。指令也结合了在条件程序期间维持PE状态(22a-22d)的运算。(*该技术在2021年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术是有关于单指令多数据路径(single instruction multipledatapaths(SIMD))处理器结构的条件程序(conditional processing)处理。
技术介绍
并行处理是处理多数据项数组(array of data items)的有效方法。单指令多数据路径处理器为并行处理数组结构。每一数据路径在一个时间内只能处理一个数据项。举一简单的例子,单指令多数据路径处理器有四个数据路径,具有四数据项数组的每一数据项将由对应的四数据路径其中一个来处理。在单指令多数据路径处理器程序执行期间,在开始计算例如是如果-然后-其余(if-then-else)程序块的条件程序块之前,可以先使能多个数据路径。在执行条件程序块前,每一数据路径的PE状态,即是否使能或禁止的状态,一定要先存储起来以免在执行条件程序期间任何一种情况改变了PE状态。此外,当离开条件程序块后,数据路径的PE状态必须要回复成进入条件程序块前的状态。
技术实现思路
本专利技术的目的在于,公开一种方法以判定执行计算机程序时是否数据路径应执行计算机程序的条件程序。方法包括判定是否所有数据路径的PE状态为禁止,且如果所有数据路径的PE状态为禁止则分支路径绕过条件程序。也提供指令以执行判定步骤和分支路径。在优选的实施例中,如果程序被判定为确认,则不执行分支路径。判定是否所有数据路径的PE状态为禁止包括评估与每一数据路径相关的PE位。如果PE位为1则PE位为使能。如果PE位为0则PE位为禁止。判定是否计算机程序为确认包括评判定位。判定位为表示计算机程序为确认的第一值,第二值表示计算机程序为非确认。本专利技术的另一目的在于,指令结合分支路径和在条件程序期间维持PE状态的运算。上述指令使数据路径建立条件程序的数据路径的PE状态的状态,且如果所有数据路径建立的PE状态为禁止,则分支路径绕过条件程序。例如是如果条件块的条件程序,在此例中指令也使数据路径在建立条件程序状态之前,存储PE状态的目前状态。而条件程序也包括其它程序块。本专利技术实施例具有一个以上的下列优点。如果在进入如果程序块或其它程序块之前禁止所有数据路径,则这些块中没有任何工作需要完成。因此,分支路径绕过这些工作使程序可以更快速地执行。结合分支路径的运算和在条件程序中维持PE状态的运算能提供较快速、较有效率程序执行,和较简化的程序。测试判定的指标提供程序代码中相关的重迭(overriding)分支路径且其必须满足实时的限制。本专利技术的其它特征和优点出现在附图的描述和权利要求中。附图说明图1单指令多数据路径处理器(SIMD)的方框图;和图2具有分支程序而在某些情况下跳过条件程序的程序的方框图。具体实施例方式类似的附图标记在不同的流程图中表示类似的组件。参考图1,单指令多数据路径处理器(SIMD)10包括指令超高速缓冲存储器12,控制逻辑单元14,串行数据路径16和多个并行数据路径标示为18a,18b,18c,18,…,18n。并行数据路径18写入内存20。每一数据路径18皆连结到PE位22。具体地说,并行数据路径18a连结到PE位22a,并行数据路径18b连结到PE位22b,以下类推。当PE使能时,所连结的并行数据路径使能且并行数据路径写入数据项。举例而言,PE 22a使能时,并行数据路径18a写入数据项;PE 22b使能时,并行数据路径18b写入数据项。如果PE 22n使能时,并行数据路径18n写入数据项。当PE禁止时,所连结的并行数据路径禁止且并行数据路径无法写入数据项。运算时,控制逻辑单元14从指令超高速缓冲存储器12读取指令。指令送往串行数据路径16来提供指令给并行数据路径18。除非个别处理器的使能位被禁止,否则每一并行数据路径18同时读取和同时写入。当程序代码(例如,程序块包括一个以上的如果-然后-其它程序语句)的指令使单指令多数据路径处理器10在程序代码之间执行条件程序块时,须计算每一数据路径的目前PE状态,如此在条件程序块执行期间如果数据路径的任何一PE状态被修改,在完成条件程序块时PE状态就能被回复。条件程序块经常包括多个条件程序运算,其中一些条件程序块在其它条件程序运算时执行。为了保证优选运算,在进入每一嵌套条件运算前存储每一数据路径的PE状态,且在完成条件运算后回复存储的PE状态。参考图2,程序代码40包括如图所示的条件程序块42。在本例中条件程序块42是如果-然后-其它程序块,且包括后面跟随其它程序块46的如果程序块44。很明显的程序代码40可能包括多个其他的条件程序块42,而条件程序块42可能包括附加的如果程序块44和/或嵌套其中的其它程序块46。本专利技术以单一条件程序块为例,其具有如果程序块44和其它程序块46,在此仅作简单地描述。在如果程序块44开始时,先存储数据路径18的目前PE状态,然后再执行如果程序块44。然后依据如果程序语句的结果来设定使能(PE=1)或禁止(PE=0)数据路径18的PE状态。唯有在数据路径具有使能PE状态时才执行在如果程序块44中的随后程序。同样地,如果所有数据路径18的PE状态设成禁止时,将不会执行在如果程序块44中的随后程序的工作。在程序代码40中的如果程序块44的开始端插入分支程序50。在执行如果程序语句时分支程序50测试数据路径18的PE状态。如果所有数据路径18为禁止时(即PE=0),将跳过如果程序块44的程序运算而不影响程序代码40的计算结果。由此,分支程序50经52绕过如果程序块44而到其它程序块46。在其它程序块46的开始端也测试数据路径18的PE状态。如果所有数据路径18为禁止时(即PE=0),将不执行其它程序块46的程序工作。由此,在本例中,分支程序60的分支路径62绕过其它程序块46而到程序代码40的结束端64。在一些情况下,程序代码40的执行须被确认。因为一个或其它原因(例如满足实时的限制(deadline)),不管程序(例如具不具有其它程序块46的如果程序块44)是否可跳过,须要以相同的时间量来执行程序代码40。如果如此,则由程序员来设定单指令多数据路径处理器10的控制寄存器的程序判定码(图1的DET)。分支程序50和60测试DET位的状态(0或1),如果DET位为1则不执行分支路径52和62。一并公开(copending)的申请描述一种方法,用以在如果-然后-其它程序的条件程序期间存储和维持PE状态。分支程序50和60结合分支判定和PE状态的设定和维持的运算,以提供分别控制如果程序语句和其它程序语句所有所需要的工作的指令。分支程序50结合PE状态的存储运算和分支运算,采取下面的形式if(SAVE_PE(Px),PE=Pn=0)go to X分支程序50以寄存器Px来存储PE状态,然后设定寄存器Pn的内容等于PE状态。如果这些内容为0时(即数据路径的PE位全没设定),分支程序50经52至目的X(例如,随后的其它程序块46)。如一并公开(copending)的申请所述,在一些条件下,数据路径的PE状态的转换(例如,由1变0,0变1)优先于其它程序块。在一并公开(copending)的申请中上述转换的指令称作”FLIP”指令。分支程序60结合FLIP指令和分支运算,采取下面的形式if (FLIP_P本文档来自技高网...

【技术保护点】
一种用于判定是否多个执行计算机程序的数据路径应执行在计算机程序中的条件程序的方法,包括:判定是否所有上述数据路径的PE状态为禁止;判定是否上述计算机程序为确认;以及如果所有上述数据路径的上述PE状态为禁止且上述计算机程序未确认时 ,则分支路径绕过上述条件程序。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:约翰L雷福德
申请(专利权)人:奇普赖茨设计公司
类型:发明
国别省市:US[美国]

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

1
相关领域技术
  • 暂无相关专利