一种超长指令字指令并行执行方法及装置的制作方法

文档序号:6463065阅读:188来源:国知局
专利名称:一种超长指令字指令并行执行方法及装置的制作方法
技术领域
本发明涉及电子技术领域,尤其涉及一种超长指令字指令并行执行方法 及装置。
背景技术
超长指令字(VLIW, Very Long Instruction Word)架构是目前主流数字 信号处理器架构。VLIW架构超长指令字是指数字信号处理器同时执行的最大 指令条数至少超过1条,超过1条的指令组合在一起构成了一个超长指令字。 超长指令字通过数字信号处理器指令获取,译码,分发和执行等阶段来完成 指令定义的功能。数字信号处理器为同时执行多条指令,需要提供多个功能 单元,还要特殊的指令分发单元。指令分发单元将一条超长指令字中多条指 令字分发给不同的并行功能单元。多个功能单元构成了处理器的功能单元 组。
VLIW架构在执行并行指令时,数字信号处理器指令译码、分发电路需要 判断超长指令字中当前指令与后一条指令是否可以并行执行。
与本发明相关的现有技术中,判断前后指令是否可以并行执行的技术方 案如下
在指令编码中指定一位作为并行标志位。如果该标志位为1,则当前指令 与后续指令可以并行执行。如果为O,则表示当前指令与后续指令不能并行执 行。
如图1所示, 一个超长指令字包含了8条指令,每条指令都包含一个p位, 用来表示下条指令与当前指令是否可并行执行,其中A指令的p-0,所以A指令与B指令不可并行;B指令的p-0,所以B指令与C指令不可并行,C、 D指 令的p^,所以C、 D、 E指令可以并行执行;E指令的p-O,所以E指令不可与 F指令并行执行,F、 G指令的p-1,所以F、 G、 H指令可以并行执行,图1中 p位前的编号为各指令对应的功能单元的编号。如图2所示为指令并行执行示 意图。
在实现本发明过程中,发明人发现,上述现有技术至少存在如下缺点 该方案由于占用了指令编码中的一位(p位),因此用来表示并行执行的 信息占到了总共编码信息的1/N (N为指令长度)。其中N是指令编码的位 长。由于指令编码空间有限, 一位信息只用来表示并行执行,造成了编码效 率降低。

发明内容
本发明实施例提供一种超长指令字指令并行执行方法及装置,解决了指 令中需要额外标志位来指示多指令在多功能单元并行执行带来的编码效率低 的问题。
本发明实施例是通过以下技术方案实现的
本发明实施例提供一种超长指令字指令并行执行方法,包括
获取超长指令字包;
根据获取的超长指令字包中各指令对应的功能单元的编号大小判断当前 指令是否能够与下一指令并行执行; 根据上述判断结果执行各指令。
本发明实施例提供一种超长指令字指令并行执行装置,包括 获取单元,用于获取超长指令字包;
第一判断单元,用于根据超长指令字包中指令对应的各功能单元的编号 大小判断当前指令是否能够与下一指令并行执行;
功能单元,用于根据所述第一判断单元的判断结果执行各指令。由上述本发明实施例提供的技术方案可以看出,本发明实施例根据超长 指令字中各指令对应的功能单元的编号大小来判断当前指令是否可以与下一 指令并行执行,解决了指令中需要额外标志位来指示多指令在多功能单元是 否可以并行执行带来的编码效率低的问题。减少了并行指示位,扩大了编码 空间,降低了并行执行信息在整个指令中占用的存储空间。


图1为现有技术一种超长指令字示意图2为现有技术指令并行执行示意图3为本发明实施例一超长指令字指令并行执行方法流程图4为本发明实施例超长指令字示意图5为本发明实施例指令并行执行示意图6为本发明实施例二超长指令字指令并行执行方法流程图7为本发明实施例三超长指令字指令并行执行装置模块示意图。
具体实施例方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而 不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做 出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例根据执行各指令的功能单元的编号大小来判断当前指令是 否能够与下一指令并行执行,并且在根据该判断规则确定两条指令可以并行 执行,而根据发送端的指示不许并行执行时,则对所述相邻两指令的顺序进 行调整或在该所述下一指令前插入一条空指令。
下面以具体实施例对本发明技术方案进行详细介绍。本发明实施例一提供一种超长指令字指令并行执行方法,如图3所示,包
括如下步骤
步骤1:功能单元获取VLIW包;
本领域技术人员可知,功能单元获得的所述VLIW包中各指令均携带有对 应的功能单元的编号;假定目前VLIW数字信号处理器的VLIW功能单元组中 包含有8个并行功能单元,依次编号为000, 001, 010, 011, 100, 101, 110, 111。如图4所示,各指令对应的功能单元的编号依次为指令1功能单 元编号000,指令2功能单元编号0",指令3功能单元编号001,指令4功能单 元编号是010,指令5功能单元编号是111,指令6功能单元编号是100,指令7 功能单元编号101,指令8功能单元编号110。
步骤2:根据指令对应的功能单元的编号大小,判断当前指令是否能够与 下一指令并行纟丸行;
本发明一种实施方案,判断当前指令是否能够与下一指令并行执行的规 则如下
1 )若当前指令(i)对应的功能单元的编号n大于下一条指令(i+1 )对应 的功能单元的编号m,即r^m,则确定此两条指令不能并行4丸行;
2)若当前指令(i)对应的功能单元的编号n小于下一条指令(i+1)对应 的功能单元的编号m,即rKm,则确定此两条指令可以并行4丸行;
步骤3:根据上述判断结果执行各指令;
也就是对于判断可以并行执行的各指令在同 一执行周期执行,对于不可 以并行执行的相邻指令,在不同的执行周期执行。根据步骤2中的判断规则, 判断步骤1中各指令的执行方式如图5所示,可以为
当前执行周期指令1与指令2并行执行;
下一执行周期指令3、指令4及指令5并行执行;
再下一执行周期指令6、指令7并行执行;再再下一执行周期执行指令8。
在两条指令间存在空指令时,在执行指令时,将前一指令与空指令并行 执行,后一指令在下一执行周期执行。
上述判断规则只是本发明的一种实施方案,根据实际需要,本领域技术 人员也可以设定在rom时,两指令可以并行执行,而rxm,则确定两条指令 不可以并行执行。也就是说,本发明对具体判断规则(升序还是降序)不做 限定。
本发明实施例采用了不需要指令编码中专用并行执行位的方式,来解决 VLIW数字信号处理器超长指令字并行执行的问题。解决了指令中需要额外信 息来指示多指令在多功能单元并行执行带来的编码效率低的问题。本发明实 施例减少了并行指示位,扩大了编码空间。降低了并行执行信息在整个指令 中占用的存储空间。
本发明实施例二又提供一种指令并行执行的方法,如图6所示,包括如下 步骤
步骤1:设置各指令与功能单元之间的映射关系,即为各指令确定对应的 功能单元的编号;
本领域技术人员可知,可根据各指令的功能确定各指令对应的功能单 元,且需要说明的是,所述每个功能单元具有唯一的编号(本领域技术人员 可知,对功能单元的编号可以是非连续的,也就是本发明实施例对功能单元 的编号顺序不做限定,其并不影响本发明方案的实施),假定目前VLIW数字 信号处理器的VLIW功能单元组中包含有8个并行功能单元,依次编号为 000, 001, 010, 011, 100, 101, 110, 111。则设置各指令与功能单元的
编号之间的映射关系,也就是,为各指令确定对应的功能单元的编号。例
如,根据各指令的功能确定各指令对应的功能单元的编号依次为指令1功能 单元编号000,指令2功能单元编号011,指令3功能单元编号001,指令4功能单元编号是010,指令5功能单元编号是111,指令6功能单元编号是100,指 令7功能单元编号101,指令8功能单元编号110。
步骤2:根据指令对应的功能单元的编号大小,判断当前指令是否能够与 下一指令并行执行,且其判断结果是否与发送端的指示一致;
本发明一种实施方案,判断当前指令是否能够与下一指令并行执行的规 则如下
1 )若当前指令(i)对应的功能单元的编号n大于下一条指令(i+1 )对应 的功能单元的编号m, Wn>m,则确定此两条指令不能并行执行;
2)若当前指令(i)对应的功能单元的编号n小于下一条指令(i+1 )对应 的功能单元的编号m,即rKm,则确定此两条指令可以并行执行;
上述只是本发明的一种实施方案,根据实际需要,本领域技术人员也可 以设定在n〉m时,两指令可以并行执行,而n《m,则确定两条指令不可以并 行执行。也就是说,本发明对具体判断规则(升序还是降序)不做限定。
若按照上述判断规则,确定所述两条指令可以并行执行,而按照发送端 并行指示,该两条指令不许并行执行,则执行步骤3;否则,若判断结果与发 送端的指示一致,则直接执行步骤4;需要说明的是,本领域技术人员可知, 发送端在发送指令时,会指示前后两条指令是否可以并行执行。例如,在前 后两条指令的对应代码中插入并行执行指示。
步骤3:在所述下一指令前插入一条空指令或调整此两条指令的顺序;
例如,按照上述判断规则,若rKm,而不许此两条指令并行执行,则可 以在指令中功能单元编号为m的指令前插入一个空指令,如NOP指令。当前 指令(i功能单元编码n)与空指令(i+1 )并行执行,而下一条指令((i+1)'-(i+2) 功能单元编码m)在下一执行周期执行。或者也可以通过调换指令顺序,将此 两条指令中的后一指令移至前一指令前。
步骤4:功能单元获取VLIW包;实际操作中,执行各指令前,由各功能单元从编译器中获取VLIW包,所 述VLIW包中各指令均携带有对应的功能单元的编号。该VLIW包可以为经过 步骤3插入空指令或调整顺序后的VLI W包。
步骤5:根据VLIW包中各指令对应的功能单元的编号大小判断当前指令 是否能够与下 一指令并行执行,并根据判断结果执行各指令。
其判断MJ!'J同步骤2中一致,此处不再赘述。
对于判断可以并行执行的各指令在同 一执行周期执行,对于不可以并行 执行的相邻指令,在不同的执行周期执行。根据步骤2中的判断规则,判断步 骤1中各指令的执行方式如图5所示,可以为
当前执行周期指令1与指令2并行执行;
下一执行周期指令3、指令4及指令5并行执行;
再下一执行周期指令6、指令7并行执行;
再再下一执行周期执行指令8。
在两条指令间存在空指令时,在执行指令时,将前一指令与空指令并行 执行,后一指令在下一执行周期执行。
本发明实施例采用了不需要指令编码中专用并行执行位的方式,来解决 VLIW数字信号处理器超长指令字并行执行的问题。解决了指令中需要额外信 息来指示多指令在多功能单元并行执行带来的编码效率低的问题。本发明实 施例减少了并行指示位,扩大了编码空间。降低了并行执行信息在整个指令 中占用的存储空间。
本发明实施例三提供一种超长指令字指令并行执行装置,如图7所示为该 装置的结构示意图,包括
获取单元,用于获取VLIW包;所述VLIW包中各指令携带有对应的功能 单元编号;
第 一判断单元,用于;f艮据VLIW包中指令对应的功能单元的编号大小判断当前指令是否可以与下一指令并行执行; 其判断方法可以为
1 )若当前指令(i)对应的功能单元的编号n大于下一条指令(i+1 )对应 的功能单元的编号m,即r^m,则确定此两条指令不能并行执行;
2)若当前指令(i)对应的功能单元的编号n小于下一条指令(i+1 )对应 的功能单元的编号m,即rxm,则确定此两条指令可以并行执行;
上述只是本发明判断规则的一种实施方案,根据实际需要,本领域技术 人员也可以设定在n〉m时,两指令可以并行执行,而rKm,则确定两条指令 不可以并行执行。也就是说,本发明对具体判断规则(升序还是降序)不做 限定。
多个功能单元,用于接收所述第一判断单元的判断结果,根据所述判断 结果执行各指令;所述每个功能单元具有唯一的编号。对于判断不可以并行 执行的相邻指令,在不同的执行周期执行;对于判断可以并行执行的相邻指 令,在同一执行周期执行。在两条指令间存在空指令时,在执行指令时,将 前一指令与空指令并行执行,后一指令在下一执行周期执行。
可选地,在该装置中还可以设置有
映射单元,设置各指令与功能单元之间的映射关系,即为各指令确定对 应的功能单元的编号;
第二判断单元,用于根据指令对应的功能单元的编号大小,判断当前指
令是否能够与下一指令并行执行,且其判断结果是否与发送端的指示一致, 并发送该判断结果;
调整单元,用于接收所述第二判断单元的判断结果,在确定与发送端的 指示不一致情况下,调整所述两指令的顺序或在所述下一指令前插入空指 令。
所述执行装置可以设置于数字信号处理器中。本发明实施例所述装置减少了并行指示位,扩大了编码空间。降低了并 行执行信息在整个指令中占用的存储空间。
综上所述,本发明实施例采用了不需要指令编码并行执行位(p位)的方 式,来解决VLIW数字信号处理器超长指令字并行执行的问题。解决了指令中 需要额外信息来指示多指令在多功能单元并行执行带来的编码效率低的问 题。减少了并行指示位,扩大了编码空间,降低了并行执行信息在整个指令 中占用的存储空间。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不 局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可 轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明 的保护范围应该以权利要求的保护范围为准。
权利要求
1、一种超长指令字指令并行执行方法,其特征在于,包括获取超长指令字包;根据获取的超长指令字包中各指令对应的功能单元的编号大小判断当前指令是否能够与下一指令并行执行;根据上述判断结果执行各指令。
2、 如权利要求1所述的方法,其特征在于,获取超长指令包前,所述方 法还包括为各指令确定对应的功能单元的编号;根据所述功能单元的编号大小判断当前指令是否能够与下一指令并行执 行,且确定所述判断结果是否与发送端并行指示一致; 若不一致,则调整所述当前指令与下一指令的顺序。
3、 如权利要求1所述的方法,其特征在于,获取超长指令包前,所述方 法还包括为各指令确定对应的功能单元的编号;根据所述功能单元的编号大小判断当前指令是否能够与下一指令并行执 行,且确定所述判断结果是否与发送端并行指示一致; 若不一致,则在所述下一指令前插入一条空指令。
4、 如权利要求3所述的方法,其特征在于,在所述下一指令前插入一条 空指令情况下,所述4艮据上述判断结果执行各指令的方法包括所述当前指令与空指令并行执行,所述下一指令在下一执行周期执行。
5、 如权利要求1、 2或3所述的方法,其特征在于,所述根据功能单元编 号大小确定当前指令是否能够与下一指令并行执行的方法包括若当前指令对应的功能单元的编号n大于下一条指令对应的功能单元的编号m,则确定当前指令与下一条指令不能并行执行;若当前指令对应的功能单元的编号n小于下一条指令对应的功能单元的编 号m,则确定当前指令与下一条指令能够并行执行。
6、 根据权利要求1所述的方法,其特征在于,所述根据上述判断结果执 行各指令的方法包括若判断当前指令不能够与下一指令并行执行,在不同的执行周期执行所 述当前指令和下一指令;若判断当前指令能够与下 一指令并行执行,则在同 一执行周期执行所述 当前指令和下一指令。
7、 一种超长指令字指令并行执行装置,其特征在于,包括 获取单元,用于获取超长指令字包;第一判断单元,用于根据超长指令字包中指令对应的各功能单元的编号 大小判断当前指令是否能够与下一指令并行执行;功能单元,用于根据所述第一判断单元的判断结果执行各指令。
8、 如权利要求7所述的装置,其特征在于,还包括 映射单元,设置各指令与功能单元之间的映射关系; 第二判断单元,用于根据指令对应的功能单元的编号大小,判断当前指令是否能够与下一指令并行执行,且其判断结果是否与发送端的指示一致, 并发送该判断结果;调整单元,用于接收所述第二判断单元的判断结果,在确定所述判断结 果与发送端的指示不一致情况下,调整所述当前指令和下一指令的顺序或在 所述下一指令前插入一条空指令。
全文摘要
一种电子技术领域中超长指令字指令并行执行方法,获取超长指令字包;根据获取的超长指令字包中各指令对应的功能单元的编号大小判断当前指令是否能够与下一指令并行执行;根据上述判断结果执行各指令。本发明实施例还提供一种超长指令字指令并行执行装置。本发明实施例根据功能单元的编号大小来判断当前指令与下一指令是否可以并行执行,解决了指令中需要额外信息来指示多指令在多功能单元并行执行带来的编码效率低的问题。减少了并行指示位,扩大了编码空间,降低了并行执行信息在整个指令中占用的存储空间。
文档编号G06F9/38GK101526893SQ20081010145
公开日2009年9月9日 申请日期2008年3月6日 优先权日2008年3月6日
发明者虎 何, 程由猛, 范文奇, 震 陈 申请人:华为技术有限公司;清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1