首页> 中国专利> VLIW处理器、指令结构和指令执行方法

VLIW处理器、指令结构和指令执行方法

摘要

本发明涉及VLIW处理器、指令结构和指令执行方法。第一运算单元130根据第一控制信号ctr1将第一比较运算单元122的输出或者该输出与已经保存于寄存器50内的值的与值或者或值作为第一运算结果CR1输出。第二运算单元140根据第二控制信号ctr2将第二比较运算单元124的输出或者该输出与已经保存于寄存器50内的值的与值或者或值作为第二运算结果CR2输出。第三运算单元150根据第三控制信号ctr3将第一运算结果CR1或者第一运算结果CR1与第二运算结果CR2的与值或者或值作为执行结果输出到寄存器50。寄存器50重新保存并输出来自第三运算单元150的执行结果。

著录项

  • 公开/公告号CN103150141A

    专利类型发明专利

  • 公开/公告日2013-06-12

    原文格式PDF

  • 申请/专利权人 瑞萨电子株式会社;

    申请/专利号CN201210505766.6

  • 发明设计人 小林悠记;

    申请日2012-11-30

  • 分类号

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人申发振

  • 地址 日本神奈川

  • 入库时间 2024-02-19 19:11:24

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-03-01

    授权

    授权

  • 2015-10-28

    著录事项变更 IPC(主分类):G06F9/30 变更前: 变更后: 申请日:20121130

    著录事项变更

  • 2014-12-24

    实质审查的生效 IPC(主分类):G06F9/30 申请日:20121130

    实质审查的生效

  • 2013-06-12

    公开

    公开

说明书

相关申请的交叉引用

本申请基于并且要求在2011年11月30日提交的日本专利申请No. 2011-262706的优先权益,并在此通过引用并入该专利申请No.2011- 262706的全部公开内容。

技术领域

本发明涉及包括多个比较指令的VLIW指令,以及用于执行 VLIW指令的技术。

背景技术

使用VLIW(超长指令字)指令的处理器(VLIW处理器)能够在 一个周期内执行多个指令,并因此被应用于各个领域。

例如,在图像处理中,处理需要复杂的条件判断,例如,边缘检 测,在该边缘检测中邻近像素的值被比较以确定所感兴趣的像素的值。 表达式(1)示出了边缘检测滤波器的处理实例。

res=(val>c&&(val>b||val==b&&(sc==0||sc==2)))?1:0;  (1)

在表达式(1)中的标记“?”之前的项内,每个字母都代表一个变 元(argument),而每个值都代表一个直接值(immediate)。另外, “&&”和“||”分别代表“与(AND)”和“或(OR)”,并且等号和 不等号中的每个都代表比较处理。假定在标记“?”之前的且在表达式 (1)的右侧的项是X,则表达式(1)代表其中“1”在X为真时被作 为值“res”来输出的处理,以及代表其中“0”在X为假时被作为值 “res”来输出的处理。

图18示出了用来通过使用分支指令在VLIW处理器中实现表达式 (1)所示的处理的程序的实例。

例如,如同图19的程序所示,下面的表达式(2)所示的处理同样 能够通过使用分支指令在VLIW处理器中实现。

res=((d01==0)&&(d11!=0))&&(((d02!=0)&&(d12==0))||((d00!=0)& &(d10==0)))  (2)

例如,如同图18的程序的第二到第四行以及图19的程序的第二到 第三行所示,一个分支指令(brf)和一个比较指令(cmp)并行执行。 与在一个周期内只能够执行一个指令的处理器相比,这提高了处理效 率。

但是,一般地,存在着要耗费大量的时间来执行分支指令的问题。 例如,如果分支开销(branch penalty)是两个周期,则需要九个周期 来执行图18所示的程序,并且需要12周期来执行图19所示的程序。

人们已经从各种角度提出了用于VLIW处理器的技术。

例如,日本未经审查的专利申请公开No.10-27102公开了用于通过 使用断言寄存器(predicate register)来消除条件分支的技术。

应用了这种技术的VLIW处理器包括被设置为与包含于单个 VLIW指令内的多个运算指令字段中的一个或更多个对应的多个运算单 元。每个运算单元都包括:用于执行由相应的一个或更多个运算指令字 段指示的运算的运算电路;用于存储用来确定是否执行运算电路的运算 的值的寄存器(断言寄存器);以及存储装置,用于响应于预定指令将 通过评估预定指令的运算结果所获得的全部值都写入到所有运算单元中 的寄存器内。在每个运算单元内的运算电路根据写入断言寄存器内的值 来确定是否执行在以上所述的断言寄存器内指定的运算指令。

日本未经审查的专利申请公开No.07-302199公开了其中通用的积 和电路被并行地设置于VLIW处理器内并且复杂的条件判断(综合测 试)在一个周期内执行以由此实现条件分支的技术。

日本未经审查的专利申请公开No.2008-146544公开了用于将多个 条件代码组合成单个条件代码集的技术,该多个条件代码通过在多个周 期内的操作获得。

专利申请No.2003-520360的PCT国际公开的已出版的日文译本公 开了用于获得由当前比较指令与前一周期内的比较指令生成的状态信息 的布尔组合的结果的技术。

发明内容

在日本未经审查的专利申请公开No.10-27102中公开的技术使用断 言寄存器来代替条件分支。这种技术在减少寄存器文件于运算单元之间 的转移次数方面是有效的。但是,在表达式(1)和表达式(2)所示的 使用具有复杂的层次结构的条件判断语句的情形中,效率提高的效果是 有限的。

在日本未经审查的专利申请公开No.07-302199中公开的技术允许 在一个周期内评估各种条件的组合,该组合能够由积和标准形式(sum- of-products standard form)来表示。但是,在图像处理中,例如,在 该处理中能够将条件的组合限定于某一程度,存在着硬件尺寸过度增大 的问题。

在日本未经审查的专利申请公开No.2008-146544中公开的技术通 过包括多个位的条件代码集有效地实现了到多个分支目标的转移。但 是,该技术在只有一个分支目标(如同例如表达式(1)所示的边缘检 测滤波器中那样)时是低效的。

在专利申请No.2003-520360的PCT国际公开的已出版的日文译本 中公开的技术能够获得由当前比较指令和前一周期内的比较指令生成的 状态信息的布尔组合的结果。但是,例如表达式(1)和表达式(2)所 示的处理需要结合(例如,逻辑运算)多个比较指令的结果。这使得难 以提高在专利申请No.2003-520360的PCT国际公开的已出版的日文译 本中公开的技术的效率。

需要这样的技术:能够在小的电路尺寸的情况下有效地执行如表达 式(1)和(2)所示的复杂的条件判断处理,同时充分利用能够在一个 周期内执行多个指令的VLIW处理器的特性。

本发明的第一方面是VLIW处理器。VLIW处理器包括第一比较 运算单元、第二比较运算单元、第一运算单元、第二运算单元、第三运 算单元和寄存器。

第一比较运算单元接收第一比较运算信号、第一输入信号和第二输 入信号,对第一输入信号和第二输入信号执行由第一比较运算信号指示 的比较运算,并且输出比较运算的结果。

第二比较运算单元接收第二比较运算信号、第三输入信号和第四输 入信号,对第三输入信号和第四输入信号执行由第二比较运算信号指示 的比较运算,并且输出比较运算的结果。

第一运算单元接收第一控制信号、第一比较运算单元的比较结果以 及已经保存于寄存器内的值,并且根据第一控制信号将第一比较运算单 元的比较结果、第一比较运算单元的比较结果与寄存器的值的与值 (AND)以及第一比较运算单元的比较结果与寄存器的值的或值 (OR)之一作为第一运算结果输出。

第二运算单元接收第二控制信号、第二比较运算单元的比较结果以 及已经保存于寄存器内的值,并且根据第二控制信号将第二比较运算单 元的比较结果、第二比较运算单元的比较结果与寄存器的值的与值 (AND)以及第二比较运算单元的比较结果与寄存器的值的或值 (OR)之一作为第二运算结果输出。

第三运算单元接收第三控制信号、第一运算结果和第二运算结果, 并且根据第三控制信号将第一运算结果、第一运算结果与第二运算结果 的与值(AND)以及第一运算结果与第二运算结果的或值(OR)之一 作为执行结果输出到寄存器。

寄存器重新保存并输出接受自第三运算单元的执行结果。

本发明的第二方面是VLIW指令的指令结构。该指令结构包括: 用于存储第一比较指令的第一比较指令字段、用于存储第一合成标记的 第一合成标记字段、用于存储第二比较指令的第二比较指令字段、用于 存储第二合成标记的第二合成标记字段以及用于存储第三合成标记的第 三合成标记字段。

第一合成标记将由第一比较指令指示的比较的结果、该比较的结果 与前一VLIW指令的执行结果的与值(AND)以及该比较的结果与前 一VLIW指令的执行结果的或值(OR)之一指示为第一运算结果。

第二合成标记将由第二比较指令指示的比较的结果、该比较的结果 与前一VLIW指令的执行结果的与值(AND)以及该比较的结果与前 一VLIW指令的执行结果之一指示为第二运算结果。

第三合成标记将第一运算结果、第一运算结果与第二运算结果的与 值(AND)以及第一运算结果与第二运算结果的或值(OR)之一指示 为当前VLIW指令的执行结果。

本发明的第三方面是用于在VLIW处理器内执行VLIW指令的方 法,该VLIW处理器包括寄存器并且被配置用于接收VLIW指令, VLIW指令包括第一比较指令、第二比较指令以及三个合成标记,三个 合成标记包括各自指示“无需合成(not to synthesize)”、“与(AND)” 和“或(OR)”之一的第一和第二合成标记以及指示“与(AND)”和 “或(OR)”之一的第三合成标记。

执行方法包括在第一合成标记指示“无需合成(not to  synthesize)”时将由第一比较指令指示的比较的结果作为第一运算结果 输出,而在其他情况下,将通过对由第一比较指令指示的比较的结果和 已经保存于寄存器内的值执行由第一合成标记指示的逻辑运算而获得的 值作为第一运算结果输出。

执行方法还包括在第二合成标记指示“无需合成(not to  synthesize)”时将由第二比较指令指示的比较的结果作为第二运算结果 输出,而在其他情况下,将通过对由第二比较指令指示的比较的结果和 已经保存于寄存器内的值执行由第二合成标记指示的逻辑运算而获得的 值作为第二运算结果输出。

执行方法还包括将通过对第一运算结果和第二运算结果执行由第三 合成标记指示的逻辑运算而获得的值作为当前VLIW指令的执行结果 输出到寄存器;并且由该寄存器重新保存并输出执行结果。

注意,根据上述方面的作为装置或系统的VLIW处理器、具有根 据上述方面的指令结构的VLIW指令、包括VLIW指令的程序、用于 执行根据上述方面的VLIW指令和方法的VLIW处理器等的实现方式 作为本发明的各个方面也是有效的。

根据本发明的技术,有可能在小的电路尺寸的情况下于VLIW处 理器中有效地执行复杂的条件判断处理。

附图说明

根据下面结合附图进行的关于某些实施例的描述,上述及其他方 面、优点和特征将变得显而易见,在附图中:

图1是示出用于解释根据本发明的技术的原理的VLIW处理器的 示意图;

图2是示出待图1所示的VLIW处理器处理的VLIW指令的结构 的示意图;

图3是示出包含于图2所示的VLIW指令的比较指令内的比较算 子的实例的表格;

图4是示出在图2所示的VLIW指令与图1所示的VLIW处理器 中的每个信号之间的对应关系的表格(第I部分);

图5是示出在图2所示的VLIW指令与图1所示的VLIW处理器 中的每个信号之间的对应关系的表格(第II部分);

图6是示出根据本发明的一种实施例的VLIW处理器的示意图;

图7是示出在图6所示的VLIW处理器中的第一运算单元的示意 图;

图8是示出在图6所示的VLIW处理器中的第二比较运算单元的 示意图;

图9是示出在图6所示的VLIW处理器中的第三运算单元的示意 图;

图10是用于解释在使用模式(pattern)A的指令的情况下待图6 所示的VLIW处理器执行的处理的示意图;

图11是用于解释在使用模式B的指令的情况下待图6所示的 VLIW处理器执行的处理的示意图;

图12是用于解释在使用模式C的指令的情况下待图6所示的 VLIW处理器执行的处理的示意图;

图13是用于解释在使用模式D的指令的情况下待图6所示的 VLIW处理器执行的处理的示意图;

图14是示出在图6所示的VLIW处理器内实现表达式(1)所示 的处理的情形中的划分处理的实例的示意图;

图15是示出用来在图6所示的VLIW处理器中实现表达式(1) 所示的处理的程序的实例的示意图;

图16是示出在图6所示的VLIW处理器内实现表达式(2)所示 的处理的情形中的划分处理的实例的示意图;

图17是示出用来在图6所示的VLIW处理器中实现表达式(1) 所示的处理的程序的实例的示意图;

图18是示出表达式(1)所示的处理在相关技术的VLIW处理器 中的实现方式的实例的示意图;以及

图19是示出表达式(1)所示的处理在相关技术的VLIW处理器 中的实现方式的实例的示意图。

具体实施方式

以下,本发明的实施例将参照附图来描述。为了使解释更清楚,对 下面的描述和附图进行适当的省略和简化。注意,在附图中,相同的元 件由相同的附图标记表示,并且根据需要省略了重复的解释。

在本发明的具体实施例的描述之前,在此将参照图1到5来描述根 据本发明的技术的原理。

图1所示的VLIW处理器10包括第一比较运算单元122、第二比 较运算单元124、第一运算单元130、第二运算单元140、第三运算单元 150和寄存器50。在典型的处理器中所设置的用于算术运算的加法器- 减法器或ALU(算术逻辑单元)可以被用作第一比较运算单元122和 第二比较运算单元124中的每一个。

第一比较运算单元122接收第一比较运算信号V1、第一输入信号 V11和第二输入信号V12,对第一输入信号V11和第二输入信号V12 执行由第一比较运算信号V1指示的比较运算,并且输出该比较运算的 结果。通过第一比较运算单元122获得的比较结果被称为第一比较结果 CMP1。

第二比较运算单元124接收第二比较运算信号V2、第三输入信号 V21和第四输入信号V22,对第三输入信号V21和第四输入信号V22 执行由第二比较运算信号V2指示的比较运算,并且输出该比较运算的 结果。通过第二比较运算单元124获得的比较结果被称为第二比较结果 CMP2。

第一运算单元130接收第一控制信号ctr1、第一比较结果CMP1和 已经保存于寄存器50内的值(PR),并且根据第一控制信号ctr1将第 一比较结果CMP1、第一比较结果CMP1和寄存器50的值PR的与值 (AND)以及第一比较结果CMP1和寄存器的值PR的或值(OR)之 一作为第一运算结果CR1输出。

第二运算单元140接收第二控制信号ctr2、第二比较结果CMP2和 寄存器50的值PR,并且根据第二控制信号ctr2将第二比较结果 CMP2、第二比较结果CMP2和寄存器50的值PR的与值(AND)以 及第二比较结果CMP2和寄存器的值PR的或值(OR)之一作为第二 运算结果CR2输出。

第三运算单元150接收第三控制信号ctr3、第一运算结果CR1和 第二运算结果CR2,并且根据第三控制信号ctr3将第一运算结果 CR1、第一运算结果CR1和第二运算结果CR2的与值(AND)以及第 一运算结果CR1和第二运算结果CR2的或值(OR)之一作为执行结 果(PR+)输出到寄存器50。

寄存器50重新保存接收自第三运算单元150的执行结果PR+并且 根据需要输出执行结果。保存于寄存器50内的值PR被改写为执行结 果PR+。

VLIW处理器10能够执行具有图2所示的结构的VLIW指令。现 在将参照图2和3来描述待由VLIW处理器10执行的VLIW指令的结 构。

如图2所示的,VLIW指令包括用于存储第一比较指令 COMPARE1的第一比较指令字段;用于存储与第一比较指令 COMPARE1对应的第一合成标记CMB1的第一合成标记字段;用于存 储第二比较指令COMPARE2的第二比较指令字段;用于存储与第二比 较指令COMPARE2对应的第二合成标记CMB2的第二合成标记字 段;以及用于存储第三合成标记CMB3的第三合成标记字段。

第一比较指令COMPARE1和第二比较指令COMPARE2中的每个 都是包括两个输入操作数和一个比较算子op的普通的比较指令。两个 输入操作数对应于在由一个比较算子op指示的比较运算中的比较目 标。

图3示出了包含于第一比较指令COMPARE1和第二比较指令 COMPARE2内的比较算子op的实例。如图3所示的,比较算子op的 实例包括分别指示“小于”、“小于或等于”、“等于”、“不等于”、“大 于”以及“大于或等于”的“LT”、“LE”、“EQ”、“NE”、“GT”和 “GE”。

第一比较指令COMPARE1的比较结果对应于在图1所示的VLIW 处理器10中的第一比较结果CMP1。第二比较指令COMPARE2的比 较结果对应于在图1所示的VLIW处理器10中的第二比较结果 CMP2。由第一比较指令COMPARE1和第一合成标记CMB1确定的运 算结果对应于在VLIW处理器10中的第一运算结果CR1。由第二比较 指令COMPARE2和第二合成标记CMB2确定的运算结果对应于在 VLIW处理器10中的第二运算结果CR2。当前VLIW指令的执行结果 对应于在VLIW处理器10中的执行结果PR+。前一VLIW指令的执行 结果对应于在VLIW处理器10中的执行结果PR。这将在下面参照图4 和5更详细地描述。

第一合成标记CMB1将由第一比较指令COMPARE1指示的比较 结果(第一比较结果CMP1)、第一比较结果CMP1和执行结果PR的 与值(AND)以及第一比较结果CMP1和执行结果PR的或值(OR) 之一指示为运算结果(第一运算结果CR1)。

第二合成标记CMB2将由第二比较指令COMPARE2指示的比较 结果(第二比较结果CMP2)、第二比较结果CMP2和执行结果PR的 与值(AND)以及第二比较结果CMP2和执行结果PR的或值(OR) 之一指示为运算结果(第二运算结果CR2)。

第三合成标记CMB3将第一运算结果CR1和第二运算结果CR2的 与值(AND)以及第一运算结果CR1和第二运算结果CR2的或值 (OR)之一指示为当前VLIW指令的执行结果(执行结果PR+)。

图4和5中的每个都示出了在图2所示的VLIW指令的组元的具 体实例与用于由VLIW处理器10执行每个具体实例中的VLIW指令的 信号之间的对应关系。图4示出了与VLIW指令的第三合成标记 CMB3以及VLIW处理器10的第一控制信号ctr1和第二控制信号ctr2 不同的字段。图5示出了VLIW指令的第三合成标记CMB3和VLIW 处理器10的第三控制信号ctr3。

如上所述,第一比较指令COMPARE1包括一个比较算子和两个输 入操作数,如同普通的比较指令一样。在VLIW处理器10中,指示出 由包含于第一比较指令COMPARE1内的比较算子指示的比较运算的信 号被作为第一比较运算信号V1输入第一比较运算单元122。包含于第 一比较指令COMPARE1内的两个操作数被分别作为第一输入信号V11 和第二输入信号V12输入第一比较运算单元122。

第一合成标记CMB1指示“无需合成(not to synthesize)”、“与 (AND)”和“或(OR)”之一。术语“无需合成(not to synthesize)” 指示第一比较结果CMP1被作为第一运算结果CR1输出。注意,任何 字符都可以被用作指示“无需合成(not to synthesize)”的第一合成标 记CMB1,只要它能够指示“无需合成(not to synthesize)”。在图4所 示的实例中,当第一合成标记CMB1的字段为空时,空字段指示“无 需合成(not to synthesize)”。

当第一合成标记CMB1指示“无需合成(not to synthesize)”时, 在VLIW处理器10中,指示了第一比较结果CMP1被作为第一运算结 果CR1输出的第一控制信号ctr1被输入第一运算单元130。

当第一合成标记CMB1指示与“无需合成(not to synthesize)”不 同的逻辑运算,即,“与(AND)”或“或(OR)”时,在VLIW处理 器10中,用于指示通过对第一比较结果CMP1和前一执行结果PR执 行由第一合成标记CMB1指示的逻辑运算而获得的结果被作为第一运 算结果CR1输出的第一控制信号ctr1被输入第一运算单元130。

如上所述,第二比较指令COMPARE2还包括一个比较算子和两个 输入操作数,如同普通的比较指令一样。在VLIW处理器10中,指示 着由包含于第二比较指令COMPARE2内的比较算子指示的比较运算的 信号被作为第二比较运算信号V2输入第二比较运算单元124。包含于 第二比较指令COMPARE2内的两个操作数被分别作为第三输入信号 V21和第四输入信号V22输入第二比较运算单元124。

如同第一合成标记CMB1一样,第二合成标记CMB2指示“无需 合成(not to synthesize)”、“与(AND)”和“或(OR)”之一。术语 “无需合成(not to synthesize)”指示第二比较结果CMP2被作为第二 运算结果CR2输出。注意,任何字符都可以被用作指示“无需合成 (not to synthesize)”的第二合成标记CMB2,只要它能够指示“无需 合成(not to synthesize)”。在图4所示的实例中,当第二合成标记 CMB2的字段为空时,空字段指示“无需合成(not to synthesize)”。

当第二合成标记CMB2指示“无需合成(not to synthesize)”时, 在VLIW处理器10中,用于指示第二比较结果CMP2被作为第二运算 结果CR2输出的第二控制信号ctr2被输入第二运算单元140。

当第二合成标记CMB2指示与“无需合成(not to synthesize)”不 同的逻辑运算,即,“与(AND)”或“或(OR)”时,在VLIW处理 器10中,用于指示通过对第二比较结果CMP2和前一执行结果PR执 行由第二合成标记CMB2指示的逻辑运算而获得的结果被作为第二运 算结果CR2输出的第二控制信号ctr2被输入第二运算单元140。

第三合成标记CMB3指示“与(AND)”和“或(OR)”之一的逻 辑运算。在VLIW处理器10中,用于指示通过对第一运算结果CR1和 第二运算结果CR2执行由第三合成标记CMB3指示的逻辑运算而获得 的结果被作为执行结果PR+输出的第三控制信号ctr3被输入第三运算 单元150。

注意,第二比较指令字段和第三合成标记字段可以为空。如图5所 示,当只有一个比较指令时,即,当第二比较指令字段为空时,第三合 成标记CMB3并未被涉及,并且用于指示第一运算结果CR1被作为当 前指令的执行结果PR+输出的第三控制信号ctr3被输入第三运算单元 150。同样,当第三合成标记CMB3的字段为空时,用于指示第一运算 结果CR1被作为当前指令的执行结果PR+输出的第三控制信号ctr3被 输入第三运算单元150。在这两种情形中,第二比较运算单元124和第 二运算单元140不执行操作。

用于处理图2所示的VLIW指令的VLIW处理器10能够在具有小 的电路尺寸的情况下有效地执行包含多个比较处理的条件判断处理。这 将参照下面的实施例更详细地描述。

图6示出了根据本发明的一种实施例的VLIW处理器100。为了避 免多余的解释,与图1所示的那些构件类似的图6的构件(包括信号) 由相同的附图标记表示,并且根据需要来解释。

VLIW处理器100包括控制单元110、第一比较运算单元122、第 二比较运算单元124、第一运算单元130、第二运算单元140、第三运算 单元150和断言寄存器160。

控制单元110包括用于存储所收到的VLIW指令的指令寄存器(未 示出)。基于存储于指令寄存器内的VLIW指令,控制单元110输出第 一比较运算信号V1、第一输入信号V11、第二输入信号V12、第二比 较运算信号V2、第三输入信号V21、第四输入信号V22、第一控制信 号ctr1、第二控制信号ctr2和第三控制信号ctr3。

具体地,控制单元110将第一比较运算信号V1、第一输入信号 V11和第二输入信号V12输出到第一比较运算单元122。第一比较运算 信号V1、第一输入信号V11和第二输入信号V12分别指示包含于第一 比较指令COMPARE1内的比较算子和两个操作数。

控制单元110将第二比较运算信号V2、第三输入信号V21和第四 输入信号V22输出到第二比较运算单元124。第二比较运算信号V2、 第三输入信号V21和第四输入信号V22分别指示包含于第二比较指令 COMPARE2内的比较算子和两个操作数。

此外,控制单元110将与第一合成标记CMB1对应的第一控制信 号ctr1、与第二合成标记CMB2对应的第二控制信号ctr2以及与第三 合成标记CMB3对应的第三控制信号ctr3分别输出到第一运算单元 130、第二运算单元140和第三运算单元150。当第二比较指令 COMPARE2和第二合成标记CMB2为空时,或者当第三合成标记 CMB3为空时,控制单元110识别出第三合成标记CMB3指示着“无 需合成(not to synthesize)”,并且将指示“无需合成(not to  synthesize)”的第三控制信号ctr3输出到第三运算单元150。

第一比较运算单元122执行比较运算并且将第一比较结果CMP1 输出到第一运算单元130。第二比较运算单元124执行比较运算并且将 第二比较结果CMP2输出到第二运算单元140。

图7示出了第一运算单元130。第一运算单元130包括与门132、 或门134和选择器136。

与门132和或门134中的每个都接收来自第一比较运算单元122的 第一比较结果CMP1和来自断言寄存器160的执行结果PR。与门132 将第一比较结果CMP1和执行结果PR的与值(AND)输出到选择器 136。或门134将第一比较结果CMP1和执行结果PR的或值(OR)输 出到选择器136。

选择器136接收来自与门132的与值(AND)、来自或门134的或 值(OR)、第一比较结果CMP1以及来自控制单元110的第一控制信号 ctr1,根据第一控制信号ctr1选择所接收到的三个值之一,并且将所选 择的值输出到第三运算单元150。选择器136的输出是第一运算结果 CR1。

具体地,当第一控制信号ctr1指示“无需合成(not to  synthesize)”时,第一运算单元130将第一比较结果CMP1作为第一运 算结果CR1输出。另一方面,当第一控制信号ctr1指示“与 (AND)”时,第一运算单元130将与门132的输出作为第一运算结果 CR1来输出,而当第一控制信号ctr1指示“或(OR)”时,第一运算 单元130将或门134的输出作为第一运算结果CR1来输出。

图8示出了第二运算单元140。第二运算单元140包括与门142、 或门144和选择器146。

与门142和或门144中的每个都接收来自第二比较运算单元124的 第二比较结果CMP2和来自断言寄存器160的执行结果PR。与门142 将第二比较结果CMP2和执行结果PR的与值(AND)输出到选择器 146。或门144将第二比较结果CMP2和执行结果PR的或值(OR)输 出到选择器146。

选择器146接收来自与门142的与值(AND)、来自或门144的或 值(OR)、第二比较结果CMP2以及来自控制单元110的第二控制信号 ctr2,根据第二控制信号ctr2来选择这三个输入值之一,并且将所选择 的值输出到第三运算单元150。选择器146的输出是第二运算结果 CR2。

具体地,当第二控制信号ctr2指示“无需合成(not to  synthesize)”时,第二运算单元140将第二比较结果CMP2作为第二运 算结果CR2输出。另一方面,当第二控制信号ctr2指示“与 (AND)”时,第二运算单元140将与门142的输出作为第二运算结果 CR2来输出,而当第二控制信号ctr2指示“或(OR)”时,第二运算 单元140将或门144的输出作为第二运算结果CR2来输出。

图9示出了第三运算单元150。第三运算单元150包括与门152、 或门154和选择器156。

与门152和或门154中的每个都接收来自第一运算单元130的第一 运算结果CR1和来自第二运算单元140的第二运算结果CR2。与门 152将第一运算结果CR1和第二运算结果CR2的与值(AND)输出到 选择器156。或门154将第一运算结果CR1和第二运算结果CR2的或 值(OR)输出到选择器156。

选择器156接收来自与门152的与值(AND)、来自或门154的或 值(OR)、第一运算结果CR1以及来自控制单元110的第三控制信号 ctr3,根据第三控制信号ctr3来选择所接收到的三个值之一,并且将所 选择的值输出到断言寄存器160。选择器156的输出是执行结果PR+。

具体地,当第三控制信号ctr3指示“无需合成(not to  synthesize)”时,第三运算单元150将第一运算结果CR1作为执行结果 PR+输出。另一方面,当第三控制信号ctr3指示“与(AND)”时,第 三运算单元150将与门152的输出作为执行结果PR+来输出,而当第三 控制信号ctr3指示“或(OR)”时,第三运算单元150将或门154的输 出作为执行结果PR+来输出。

断言寄存器160保存来自第三运算单元150的最新的执行结果 PR+。具体地,作为当前VLIW指令的执行结果的执行结果PR+变为 在后一VLIW指令执行时的执行结果PR。

以下参照图10到13来对在图2所示的VLIW指令中的比较指令 和合成标记的每个组合模式给出关于待由VLIW处理器100执行的处 理的描述。

<模式A>

模式A是代表着如下的模式:VLIW指令包括第一比较指令 COMPARE1和第二比较指令COMPARE2,并且所有合成标记字段 (CMB1、CMB2和CMB3)都指示“与(AND)”和“或(OR)”之 一。模式A包括四个模式A(1)到A(4)。

如图10所示,模式A(1)代表VLIW指令“COMPARE1_AND COMPARE2_AND AND”,在该指令中所有合成标记字段都指示“与 (AND)”。

在模式A(1)的情形中,由VLIW处理器100获得的执行结果 PR+指示着执行结果PR(前一执行结果)与第一比较结果CMP1和第 二比较结果CMP2的与值(AND)的与值(AND)。

模式A(2)代表VLIW指令“COMPARE1_OR COMPARE2_OR OR”,在该指令中所有合成标记字段都指示“或(OR)”。

在模式A(2)的情形中,由VLIW处理器100获得的执行结果 PR+指示着执行结果PR与第一比较结果CMP1和第二比较结果CMP2 的或值(OR)的或值(OR)。

模式A(3)代表VLIW指令“COMPARE1_AND COMPARE2_AND OR”,在该指令中第一合成标记CMB1和第二合成 标记CMB2指示“与(AND)”,而第三合成标记CMB3指示“或 (OR)”。

在模式A(3)的情形中,由VLIW处理器100获得的执行结果 PR+指示着执行结果PR与第一比较结果CMP1和第二比较结果CMP2 的或值(OR)的与值(AND)。

模式A(4)代表VLIW指令“COMPARE1_OR COMPARE2_OR AND”,在该指令中第一合成标记CMB1和第二合成标记CMB2指示 “或(OR)”,而第三合成标记CMB3指示“与(AND)”。

在模式A(4)的情形中,由VLIW处理器100获得的执行结果 PR+指示着执行结果PR与第一比较结果CMP1和第二比较结果CMP2 的与值(AND)的或值(OR)。

即,在模式A的指令的情形中,VLIW处理器100能够在一个周期 内执行两个比较指令,在执行结果PR与由第一比较指令指示的比较的 结果之间的逻辑运算,在执行结果PR与由第二比较指令指示的比较的 结果之间的逻辑运算,以及在两个逻辑运算的结果之间的逻辑运算。

<模式B>

模式B是代表着如下的模式:VLIW指令包括第一比较指令 COMPARE1和第二比较指令COMPARE2;第一合成标记CMB1和第 二合成标记CMB2的字段之一为空;以及第三合成标记CMB3指示 “与(AND)”和“或(OR)”之一。模式B包括四个模式B(1)到B (4)。

如图11所示,模式B(1)代表VLIW指令“COMPARE1_AND COMPARE2_OR”,在该指令中第一合成标记CMB1指示“与 (AND)”;第二合成标记CMB2的字段为空;以及第三合成标记 CMB3指示“或(OR)”。

在模式B(1)的情形中,由VLIW处理器100获得的执行结果 PR+指示着第二比较结果CMP2与第一比较结果CMP1和执行结果PR 的与值(AND)的或值(OR)。

模式B(2)代表VLIW指令“COMPARE1_COMPARE2_AND OR”,在该指令中第一合成标记CMB1的字段为空;第二合成标记 CMB2指示“与(AND)”;以及第三合成标记CMB3指示“或 (OR)”。

在模式B(2)的情形中,由VLIW处理器100获得的执行结果 PR+指示第一比较结果CMP1与第二比较结果CMP2和执行结果PR 的与值(AND)的或值(OR)。

模式B(3)代表VLIW指令“COMPARE1_OR COMPARE2_ AND”,在该指令中第一合成标记CMB1指示“或(OR)”;第二合成 标记CMB2的字段为空;以及第三合成标记CMB3指示“与 (AND)”。

在模式B(3)的情形中,由VLIW处理器100获得的执行结果 PR+指示着第二比较结果CMP2与第一比较结果CMP1和执行结果PR 的或值(OR)的与值(AND)。

模式B(4)代表VLIW指令“COMPARE1_COMPARE2_OR AND”,在该指令中第一合成标记CMB1的字段为空;第二合成标记 CMB2指示“或(OR)”;以及第三合成标记CMB3指示“与 (AND)”。

在模式B(4)的情形中,由VLIW处理器100获得的执行结果 PR+指示第一比较结果CMP1与第二比较结果CMP2和执行结果PR 的或值(OR)的与值(AND)。

即,在模式B的指令的情形中,VLIW处理器100能够在一个周期 内执行两个比较指令,在执行结果PR与由比较指令之一指示的比较的 结果之间的逻辑运算,以及在该逻辑运算的结果与另一比较指令的执行 结果之间的逻辑运算。

<模式C>

模式C是代表着如下的模式:VLIW指令包括第一比较指令 COMPARE1和第二比较指令COMPARE2;第一合成标记CMB1和第 二合成标记CMB2的字段为空;而第三合成标记CMB3指示“与 (AND)”和“或(OR)”之一。模式C包括两个模式C(1)和C (2)。

如图12所示,模式C(1)代表VLIW指令“COMPARE1_ COMPARE2_AND”,在该指令中第三合成标记CMB3指示“与 (AND)”。

在模式C(1)的情形中,由VLIW处理器100获得的执行结果 PR+指示第一比较结果CMP1和第二比较结果CMP2的与值(AND)。

模式C(2)代表VLIW指令“COMPARE1_COMPARE2_ OR”,在该指令中第三合成标记CMB3指示“或(OR)”。

在模式C(2)的情形中,由VLIW处理器100获得的执行结果 PR+指示第一比较结果CMP1和第二比较结果CMP2的或值(OR)。

即,在模式C的指令的情形中,VLIW处理器100能够在一个周期 内执行两个比较指令以及在由这两个比较指令指示的比较的结果之间的 逻辑运算。

<模式D>

在以上所述的模式A到C中,VLIW指令包括两个比较指令。该 模式D代表仅包括一个比较指令(第一比较指令COMPARE1)的 VLIW指令。模式D包括三个模式D(1)到D(3)。

如图13所示,模式D(1)代表VLIW指令 “COMPARE1_AND”,在该指令中与第一比较指令COMPARE1对应 的第一合成标记CMB1指示“与(AND)”。

在模式D(1)的情形中,由VLIW处理器100获得的执行结果 PR+指示第一比较结果CMP1和执行结果PR的与值(AND)。

模式D(2)代表VLIW指令“COMPARE1_OR”,在该指令中与 第一比较指令COMPARE1对应的第一合成标记CMB1指示“或 (OR)”。

在模式D(2)的情形中,由VLIW处理器100获得的执行结果 PR+指示第一比较结果CMP1和执行结果PR的或值(OR)。

模式D(3)代表VLIW指令“COMPARE1”,在该指令中与第一 比较指令COMPARE1对应的第一合成标记CMB1的字段为空。

在模式D(3)的情形中,由VLIW处理器100获得的执行结果 PR+指示第一比较结果CMP1。

即,在模式D的指令的情形中,VLIW处理器100能够在一个周期 内执行一个比较指令。

现在将描述在VLIW处理器100中的实现方式的实例。注意,在 下面的描述中,为了便于解释,在具体的程序实例中,指示“与 (AND)”的第三合成标记CMB3以“Fand”表示,而指示“或 (OR)”的第三合成标记CMB3以“For”表示。在程序实例中,一行 指示在一个周期内的处理。

如图14所示,表达式(1)所示的处理能够被划分成五个比较运算 A1到A5、四个逻辑运算B1到B4以及用于设置处理结果的C1。根据 本实施例的VLIW指令和VLIW处理器100,可以在一个周期内并行 地执行两个比较指令,在由比较指令指示的比较的结果与前一执行结果 PR(在前一行中的处理结果,从程序的角度来看)之间的逻辑运算, 以及这两个逻辑运算的逻辑运算。因此,表达式(1)所示的处理能够 按照图14所示的那样来划分,并且能够在不使用任何分支指令的情况 下于VLIW处理器100中实现。

图15示出了用于实现在VLIW处理器100中的表达式(1)所示 的处理的程序的实例。

程序的第一行代表以下处理:第一比较“SC==0”和第二比较 “SC==2”并行执行;在两个比较结果之间的或(OR)操作被执行; 以及或(OR)操作的结果被存储于断言寄存器160内。程序的第一行 还指示了:两个指令“compare”代表着第一比较指令和第二比较指 令,以及第一合成标记CMB1和第二合成标记CMB2的字段为空,这 指示着“无需合成(not to synthesize)”。该处理对应于图12所示的模 式C(2)的处理。

程序的第二行代表着以下处理:第一比较“val==b”和第二比较 “val>b”并行执行,以及第二比较结果与第一比较结果和第一行的执 行结果(断言寄存器160的值)的与值(AND)的或值(OR)被获得 并被存储于断言寄存器160内。该处理对应于图11所示的模式B(1) 处理。

程序的第三行代表着以下处理:第一比较(va1>c)被执行,以及 第一比较结果和第二行的执行结果的与值(AND)被获得并被存储于断 言寄存器160内。该处理对应于图13所示的模式D(1)的处理。

程序的第四行代表着用于执行指令“mset”的处理,指示出“1” 被保存为根据断言寄存器160的值的变元res。

以这种方式,本实施例的VLIW处理器100能够在四个周期内完 成表达式(1)所示的处理。

如上所述,在根据分支指令于相关技术的VLIW处理器内实现表 达式(1)所示的处理的情形中,当分支开销为两个周期时,需要九个 周期(图18)。

图16示出了表达式(2)所示的处理被划分的模式。如图16所 示,表达式(2)所示的处理能够被划分成六个比较运算A1到A6、五 个逻辑运算B1到B5以及用于设置处理结果的处理C1。

图17示出了当表达式(2)所示的处理按照图16所示的那样划分 并且在VLIW处理器100中实现时的程序的实例。

程序的第一行代表着以下处理:第一比较“d02≠0”和第二比较 “d12==0”并行执行;对两个比较结果执行与(AND)操作;并且与 (AND)运算结果被存储于断言寄存器160内。该处理对应于图12所 示的模式C(1)的处理。

程序的第二行代表着以下处理:第一比较“d00≠0”和第二比较 “d10=0”并行执行,并且在第一比较结果和第一行的执行结果的或值 (OR)与第二比较结果和第一行的执行结果的或值(OR)之间的与值 (AND)被获得并被存储于断言寄存器160内。该处理对应于图10所 示的模式A(4)的处理。

程序的第三行代表着以下处理:第一比较(d11≠0)和第二比较 (d01=0)并行执行,以及在第一比较结果和第二行的执行结果的与值 (AND)与第二比较结果和第二行的执行结果的与值(AND)之间的 与值(AND)被获得并被存储于断言寄存器160内。该处理对应于图 10所示的模式A(1)的处理。

程序的第四行代表着用于执行指令“mset”的处理,指示出“1” 被保存为根据断言寄存器160的值的变元res。

以这种方式,本实施例的VLIW处理器100能够在四个周期内完 成表达式(2)所示的处理。

如上所述,在根据分支指令于相关技术的VLIW处理器内执行表 达式(2)所示的处理的情形中,当分支开销为两个周期时,需要12个 周期(图19)。

以这种方式,本实施例的VLIW处理器100能够有效地执行包括 多个比较处理的条件判断处理。

由于促使VLIW处理器100在用于图片的边缘检测处理中执行条 件判断处理,本发明的发明人已经证实:大约高为典型的VLIW处理 器的速度的两倍的速度被获得。

本发明在上文已经参照实施例进行了描述。上述实施例仅作为示例 而示出,并且在不脱离本发明的要旨的情况下,能够对上述实施例进行 各种改动、添加、省略及组合。本领域技术人员应当理解,包括这些改 动、添加、省略及组合的所修改的实例同样属于本发明的范围之内。

例如,在VLIW处理器100中,断言寄存器160被用作用于保存 最新的执行结果PR+的寄存器。典型的断言寄存器具有一个位,而通用 的寄存器具有16个位或32个位。在VLIW处理器100中,VLIW指 令的执行结果是一个位。因此,断言寄存器160的使用还抑制了电路尺 寸。通用的寄存器同样可以用于保存最新的执行结果PR+的寄存器。

例如,在如上所描述的那样只执行一个比较指令的情形中,第三合 成标记CMB3的字段可以为空。在这种情况下,第三合成标记字段可 以用于不同的应用,例如用于其他指令的直接字段(immediate field), 而不是使第三合成标记字段保留为空。

此外,权利要求的范围不由以上所描述的实施例来限定。

而且,应当指出,申请人的意图是要包含所有权利要求的要素的等 同物,即便是后面在申请过程中的修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号