专利名称:处理器的制作方法
技术领域:
本发明涉及具有转发(forwarding)控制的处理器,尤其涉及低耗电化。
背景技术:
以往,在被流水线化的处理器中,为了提高处理性能采用了转发(FWD) 控制。转发控制是指,将作为指令的执行结果的数据,从输出在先执行的 指令的执行结果的阶段(例如,MEM(存储器访问)阶段、WB(写回)阶段) 提前到读取在后指令的数据的阶段(EX阶段)执行。据此,由于可以通过 旁路(bypass)来传送作为在先执行的指令的执行结果的数据,因此可以 解除或降低数据竞争(data hazard)。
图1示出了具有转发控制结构的、以往的被流水线化的处理器的结构。 图中粗线主要表示数据,细线主要表示控制信号。
如该图所示,具有转发控制结构的、以往的被流水线化的处理器包括 指令译码部910、指令控制部920、指令执行部930、以及寄存器文件940。 指令控制部920具有FWD控制电路921、寄存器文件写入电路922、 流水线缓冲控制电路923、运算处理控制电路924、以及存储器存取控制 电路925。指令执行部930具有运算处理执行电路931、存储器存取执 行电路932、 FWD选择器933、MEM选择器934、流水线缓冲器(EX)935、 流水线缓冲器(MEM)936、以及流水线缓冲器(WB)937。寄存器文件940 具有以寄存器编号(并0 并N)管埋的多个寄存器(Reg并0 Reg并N)所构成的 数据保持部942。并且,流水线包括五个阶段DEC(Decode :译码)阶段、 ED(Instruction Dispatch and register fetch :指令发行/寄存器读取) 阶段、EX(EXecute :执行)阶段、MEM(MEMory access :存储器访问)阶 段、以及WB(Write Back :写回)阶段。
首先,按各个流水线的阶段对以往的被流水线化的处理器中指令执行
时的工作进行说明。
在DEC阶段,指令译码部910生成ID阶段以后被使用的指令译码信 息,并输出到指令控制部920。
在ID阶段,按照指令译码信息从寄存器文件940中读取寄存器数据, 从而生成指令执行时所使用的输入数据,并输出到流水线缓冲器(EX)935。
在EX阶段,按照指令译码信息,对流水线缓冲器(EX)935中所存储的 指令执行输入数据,运算处理控制电路924或存储器存取控制电路925生 成控制信号,并使运算处理执行电路931和存储器存取执行电路93 2工作。
并且,流水线缓冲控制电路923将针对执行运算处理的指令的指令执 行结果存储到流水线缓冲器(MEM)936,所述执行运算处理的指令即是运算 处理执行电路931的输出。
在MEM阶段,流水线缓冲控制电路923按照指令译码信息,生成选 择控制信号,并输出到MEM选择器934,以使MEM选择器934选择流 水线缓冲器(MEM)936的值或存储器存取执行电路932的输出的任一个, 所述存储器存取执行电路932的输出是指,针对进行存储器存取的指令的 指令执行结果。
并且,流水线缓冲控制电路923将作为MEM选择器934的输出的指 令执行结果存储到流水线缓冲器(WB)937。
在WB阶段,按照指令译码信息,寄存器文件写入控制电路922生成 针对寄存器文件940的写入控制信号,并通过将作为流水线缓冲器 (WB)937的输出的指令执行结果写入到寄存器文件940,从而使数据保持 部942得以更新。
以下,对转发控制结构进行说明。
FWD控制电路921进行判断,判断由作为在先被执行的指令的EX阶 段、MEM阶段、WB阶段的指令写入的各寄存器,和由作为在后被执行的 指令的ID阶段的指令读取的寄存器是否一致。根据上述的判断结果,可分 为以下(1)一(4)的工作。
(l)判断结果为,由ID阶段的指令读取的寄存器,和由EX阶段、MEM 阶段、WB阶段的指令写入的寄存器中的某个一致的情况下,FWD控制电 路921生成选择控制信号,作为指令执行输入数据输出到FWD选择器
933,以使FWD选择器933选择从寄存器文件940中读取的寄存器数据。
(2) 在由ID阶段的指令读取的寄存器,和由EX阶段的指令写入的寄 存器一致的情况下,由于针对应该被读取的寄存器的指令执行结果还没有 被正确地写入,因此,FWD控制电路921使流水线暂时停止。
(3) 在由ID阶段的指令读取的寄存器,和由MEM阶段的指令写入的 寄存器一致的情况下,由于存在将指令执行结果从MEM阶段转发到ID阶 段的通路,因此,FWD控制电路921生成选择控制信号,作为指令执行 时所使用的输入数据输出到FWD选择器933,以使FWD选择器933选 择将指令执行结果从MEM阶段转发到ID阶段的通路。
(4) 在由ID阶段的指令读取的寄存器,和由WB阶段的指令写入的寄 存器一致的情况下,由于存在将指令执行结果从WB阶段转发到ID阶段的 通路,因此,FWD控制电路921生成选择控制信号,作为指令执行时所 使用的输入数据输出到FWD选择器933,以使FWD选择器933选择将 指令执行结果从WB阶段转发到ID阶段的通路。据此,实现了从WB阶段 转发到ID阶段的工作。
流水线缓冲控制电路923将作为FWD选择器933的输出的指令执行 输入数据,存储到流水线缓冲器(EX)935。
接着,利用图2A到图2D,对实现转发工作的指令串的一个例子进行 说明。
图2A示出了具有数据依赖关系的指令串的一个例子。该图的在先被 执行的加敏ld)指令是指,从存储器中读取值为Reg并31的地址的数据,并 将读取的数据加载到Reg并0。接在后边的加法(add)指令是指,使Reg#0 的值和Reg并l的值相加,将相加后的结果存储到Reg孝2。
图2B示出了在转发的定时,尤其是从MEM阶段向ID阶段进行转发 的定时的一个例子,示出了在执行图2A的指令串时的流水级和执行周期。 不过,省略DEC阶段以前的阶段。上述的加载指令在ID阶段、EX阶段、 MEM阶段、WB阶段以tl到t4这四个周期被顺序地进行了流水线处理, 没有发生流水线竞争。上述的add指令在上述的四个阶段以t2到t5这五 个周期被处理,在t3周期发生了流水线竞争。在t3周期,由于在先被执 行的加载指令的执行(从存储器中读取应该被存储到Reg并O中的数据)还
没有结束,因此,接在后边的add指令的执行中所需要的输入数据(应该 被存储到Reg并0中的数据)没有被读取。但是,在t3周期(尤其是后半 部分),由在先被执行的加载指令的MEM阶段对接在后边的加法指令的ID 阶段,输入数据(应该被存储到Reg并O中的数据)通过FWD选择器933, 由MEM选择器934被转发到流水线缓冲器(EX)935。据此,在从t3周期 变化为t4周期时,即使向Reg并0的写入没有结束,接在后边的add指令 也可以从ID阶段转移到EX阶段。
另外,图2B的定时与在图2A中的加载指令和加法指令之间插入一个 不进行存储器存取的单纯指令(例如,寄存器、作为指示对存储器不进行 任何处理的指令的nop指令等)时的定时相同。这样,从MEM阶段向ID 阶段的转发工作,在图2A的指令串的情况,或对于图2A的指令串,在加 载指令和加法指令之间插入一个单纯的指令的情况下被执行。并且,在插 入一个指令的情况下不发生流水线竞争。
图2C示出了在转发的定时,尤其是从WB阶段向ID阶段进行转发的 定时的一个例子,示出了在图2A中的加载指令和加法指令之间插入两个 不进行存储器存取的单纯指令时的流水级和执行周期。在该例子中,将被 插入到加载指令和加法指令之间的两个指令表示为instl、 inst2。上述的 add指令在上述的四个阶段以t4到t7这四个周期被处理。在此,在t4周 期(尤其是后半部分),在先被执行的加载指令的WB阶段针对接在后边的 加法指令的ID阶段,输入数据(应该被存储到Reg并0的数据)由MEM选择 器934通过FWD选择器933,被转发到流水线缓冲器(EX)935。据此, 在t4周期,即使向Reg并0的写入没有结束,接在后边的add指令也可以 从ID阶段移动到EX阶段。据此,在从t4变化到t5周期时,即使Reg并0 的读取不能执行,接在后边的add指令也可以从ID阶段移动到EX阶段。 这样,从WB阶段向ID阶段的转发工作是在针对图2A的指令串,在加载 指令和加法指令之间插入两个单纯的指令的情况下被执行的,而且,像这 样的指令串是不会发生流水线竞争的。
图2D示出了在以不具有转发结构的处理器执行图2A的指令串时的流
水级和执行周期。在这种情况下三个周期发生流水线竞争。在在先被执行 的加载指令的WB阶段,向Reg#0的写入结束后,接在后边的add指令
7
在ID阶段读取Reg#0。
非专利文献1^ 3 > L,、才、'〉一 、f、 e卜'a "夕一 v >著 「 3 >匕。-一夕o构成t设计第2版(下)一/、一卜'々工7i:/7卜々工 TO^^夕7-一7一 (计算机的构成和设计第2版(下)硬件与软件的接 口)」日经BP社发行、2005年6月2日、p440 452
然而,在上述的以往技术中出现的问题是由于向寄存器文件的不必 要的写入而造成的耗费电量的情况。具体而言,在以往的技术中,作为在 先被执行的指令的执行结果的寄存器数据仅被接在后边的一个指令参考, 且在发生转发工作的情况下,根据在先被执行的指令的指令执行结果即使 被写入到寄存器文件940,执行结果的值也不会由以后的指令读取。
发明内容
本发明鉴于上述课题,目的在于提供一种低耗电量的处理器,并且该 处理器可以消减因向寄存器文件的不必要的写入而造成的电量。
为了达成上述的目的,本发明的处理器具有转发功能,包括保持单
元,保持与向寄存器的写入抑制有关的属性信息;以及控制单元,在发生
了转发时,按照属性信息来抑制被转发的数据向寄存器的写入。 根据此构成,可以消减因对寄存器文件进行不必要的写入而耗费的电
量,可以使耗电量降得更低。
在此,也可以是,所述保持单元保持至少与一个寄存器相对应的所述
属性信息。
根据此构成,可以将是否抑制向寄存器的不必要的写入作为寄存器的 属性来设定。
在此,也可以是,所述处理器具有在流水级间按顺序传递数据的多级
流水线缓冲器;所述保持单元为多个流水线缓冲器的一部分,将所述属性 信息与转发对象的数据一起传递给后级的流水线缓冲器。
根据此构成,可以将是否抑制向寄存器的不必要的写入作为以指令指 定的操作数的属性来设定。
在此,也可以是,所述处理器进一步具有指令译码部,在对包含寄存 器写入抑制指示的指令进行译码时,将所述属性信息输出到流水线缓冲器。
根据此构成,可以按照各个指令来设定寄存器写入抑制指示(属性)。 在此,也可以是,所述处理器具有在流水级间按顺序传递数据的多级
流水线缓冲器;所述抑制单元进一步在数据被转发时,抑制该数据向该阶
段以后的流水线缓冲器的写入。
根据此构成,除可以抑制向寄存器的不必要的写入之外,由于还可以
抑制已被转发的数据向该阶段以后的流水线缓冲器的写入,因此可以进一
步降低耗电量。
在此,也可以是,所述处理器进一步具有控制寄存器,指示是否抑制 向寄存器的写入;所述保持单元保持与控制寄存器中所保持的数据相对应 的属性信息。
根据此构成,可以根据控制寄存器的设定来变更保持单元的属性信息。 例如,在控制寄存器被设定为不抑制向寄存器的写入的情况下,可以维持 与现有的程序的兼容性,在控制寄存器被设定为抑制向特定的寄存器的写 入的情况下,可以执行新的程序。
在此,也可以是,所述处理器进一步通过执行变更属性信息的属性变 更指令,来改写所述保持单元的属性信息。
根据此构成,可以根据属性变更指令,任意地变更设定是否抑制向寄 存器的不必要的写入的寄存器的属性。
并且,本发明的程序变换装置,将原始程序变换为以权利要求l所述 的处理器为对象的程序,包括抽出单元,从原始程序中抽出存储在寄存 器中的变量;检测单元,检测被抽出的变量的生存区间;第一判断单元, 判断在生存区间中参考所述变量的参考指令是否仅为一个;第二判断单元, 判断在所述生存区间中,定义所述变量的定义指令和所述参考指令是否为 转发的对象;以及生成单元,在判断为参照指令在生存区间中仅为一个, 且是转发的对象的情况下,生成包含抑制指令的程序,该抑制指令抑制由 所述定义指令进行的寄存器写入。
根据此构成,可以消减因向寄存器文件的不必要的写入而消耗的电量, 可以生成耗电量更低的程序。
并且,本发明的程序变换方法具有与上述相同的单元。
并且,属性信息表示,在发生了转发工作的情况下,是否将指令的执
行结果写入到寄存器文件。
据此,在发生了转发工作的情况下,可以根据属性信息来判断是否进 行向寄存器文件的写入,在判断为不需要写入的情况下,通过抑制向寄存 器文件的写入,从而消减耗电量。
发明效果
因此,根据本发明可以消减因向寄存器文件的不必要的写入而造成的 电量,同时可以提供一种能够实现低耗电量的处理器。
图1示出了以往技术中具有转发控制结构的流水线处理器的结构。
图2A示出了具有数据依赖关系的指令串的一个例子。
图2B是从MEM阶段转发到ED阶段的定时的示例图。
图2C是从WB阶段转发到ID阶段的定时的示例图。
图2D示出了在以不具有转发结构的处理器执行时的流水级和执行周期。
图3示出了实施例1中的处理器的结构。 图4示出了寄存器写入抑制电路的结构。 图5示出了实施例2中的处理器的结构。 图6示出了实施例3中的处理器的结构。 图7示出了实施例4中的处理器的结构。 图8示出了实施例5中的处理器的结构。 图9示出了编译装置的结构。
图10示出了实施例5中的扩展汇编程序的处理流程。
图11示出了实施例6中的处理器的结构。
图12示出了属性保持部以及寄存器写入抑制电路的结构。
图13示出了编译装置的结构。
图14示出了扩展汇编程序的处理流程。
标记说明
110、 510、 610指令译码部
120、 620指令控制部
121 FWD控制电路
122寄存器文件写入控制电路
123流水线缓冲控制电路
124运算处理控制电路
125存储器存取控制电路
126、 626寄存器写入抑制电路
126 a 属性选择器
126b "与"门
126c 属性选择器
126d "与"门
130 指令执行部
131 运算处理执行电路
132 存储器存取执行电路
133 FWD选择器
134 MEM选择器
135、 635流水线缓冲器(EX)
136、 636流水线缓冲器(MEM)
137、 637流水线缓冲器(WB)
138、 139、 201、 638、 639抑制门 139抑制门
140寄存器文件
141、 641属性保持部
142 数据保持部
341 属性信息
602 编译器
604、 804 扩展汇编程序
具体实施例方式
(实施例1)
实施例1中的处理器具有寄存器文件,并根据属性信息来控制向寄存 器文件的写入的有无,所述寄存器文件由多个寄存器组成,且该多个寄存 器都分别具有自己的属性信息。
以下,参照附图对本发明所涉及的实施例l进行说明。
图3示出了实施例1中的处理器的结构。图中粗线主要表示数据,细 线主要表示控制信号。本处理器被流水线化,且具有转发功能。如图所示, 本处理器包括指令译码部IIO、指令控制部120、指令执行部130、以 及寄存器文件140。
指令控制部120具有FWD控制电路121、寄存器文件写入电路 122、流水线缓冲控制电路123、运算处理控制电路124、存储器存取控 制电路125、以及寄存器写入抑制部126。并且,指令执行部130具有 运算处理执行电路131、存储器存取执行电路132、 FWD选择器133、 MEM选择器134、流水线缓冲器(EX)135、流水线缓冲器(MEM)136、流 水线缓冲器(WB)137、抑制门138、以及抑制门139。其中,寄存器写入 抑制部126、抑制门138以及抑制门139可以作为控制单元来发挥功能, 在发生转发时,按照属性信息抑制被转发的数据向寄存器的写入。
寄存器文件140包括以寄存器编号(弁0 弁N)管理的属性信息保持部 141以及数据保持部142。属性信息保持部141保持有与寄存器编号相对 应的多个属性信息(Atr并0 Atr并N)。数据保持部142包括保持有数据的、 与寄存器编号相对应的多个寄存器(Reg并0 Reg并N)。属性信息保持部141 保持与向寄存器的写入抑制有关的属性信息。各属性信息表示"在发生了转 发工作的情况下,是否将指令的执行结果写入到对应的寄存器中","在发 生了转发工作的情况下,将指令的执行结果写入到寄存器"的情况被设定为 0,"在发生了转发工作的情况下,不将指令的执行结果写入到寄存器"的情 况被设定为1。
并且,上述的处理器包括五个流水级,即DEC阶段、ED阶段、EX 阶段、MEM阶段、WB阶段。
关于具有以上这样的结构的本实施例中的处理器的工作,将按照各个 流水级来进行说明。 (DEC阶段)
在DEC阶段,由指令译码部110生成ID阶段以后将被使用的指令译 码信息,并输出到指令控制部120。 (ID阶段)
在ID阶段,生成在执行指令时读取寄存器的值以作为指令执行输入数 据,并输出到指令执行部130。
首先,FWD控制电路121进行判断,判断作为后续的指令而被执行 的ID阶段的指令所读取的寄存器,和作为在先的指令而被执行的EX阶段、 MEM阶段、WB阶段的指令所写入的寄存器是否一致。根据此判断结果可 以分为以下(1)到(4)的工作。
(1) ID阶段的指令所读取的寄存器,和EX阶段、MEM阶段、WB阶 段的指令所写入的寄存器均不一致的情况下,FWD控制电路121生成选 择控制信号,以作为指令执行输入数据输出到FWD选择器133,以使来 自寄存器文件140的值被选择。
(2) 在ID阶段的指令所读取的寄存器,和EX阶段的指令所写入的寄 存器一致的情况下,由于针对应该读取的寄存器的指令执行结果不能被读 取,因此FWD控制电路121使流水线暂时停止。
(3) 在由ID阶段的指令读取的寄存器,和由MEM阶段的指令写入的 寄存器一致的情况下,由于存在将指令执行结果从MEM阶段转发到ID阶 段的通路,因此,FWD控制电路121生成选择控制信号,以作为指令执 行输入数据输出到FWD选择器133,以使FWD选择器133选择将指令 执行结果从MEM阶段转发到ID阶段的通路。这样,就进行了从MEM阶 段向ID阶段的转发工作。
此时,若作为接受被转发的数据的写入的寄存器所对应的属性信息为 1,则寄存器写入抑制电路126将屏蔽信号MASK—MEM断言(assert)给 抑制门138。在屏蔽信号MASK—MEM被断言的情况下,由于屏蔽了从流 水线缓冲器(MEM)136输出到流水线缓冲器(WB)137的WE(Write Enable) 信号,从而抑制门138抑制被转发来的数据向寄存器的写入。
(4) 在由ID阶段的指令读取的寄存器,和由WB阶段的指令写入的寄 存器一致的情况下,由于存在将指令执行结果从WB阶段转发到ID阶段的 通路,因此,FWD控制电路121生成选择控制信号,作为指令执行时所
13
使用的输入数据输出到FWD选择器133,以使FWD选择器133选择将 指令执行结果从WB阶段转发到ID阶段的通路。流水线缓冲控制电路123 将作为FWD选择器133的输出的指令执行输入数据存储到流水线缓冲器 (EX)135。这样,就进行了从WB阶段向ID阶段的转发工作。
此吋,若作为接受被转发的数据的写入的寄存器所对应的属性信息为 1,则寄存器写入抑制电路126将屏蔽信号MASK—WB断言(assert)给抑 制门139。在屏蔽信号MASK—WB被断言的情况下,由于屏蔽了从流水 线缓冲器(WB)137输出到寄存器文件140的WE(Write Enable)信号,从 而抑制门139抑制被转发来的数据向寄存器的写入。 (EX阶段)
在EX阶段,对于被存储在流水线缓沖器(EX)13S中的指令执行输入数 据,运算处理控制电路124或存储器存取控制电路125按照指令译码信息 生成控制信号,以使运算处理执行电路131、存储器存取执行电路132工 作。
并且,流水线缓冲控制电路123将作为运算处理执行电路131的输出 的、针对进行运算处理的指令的指令执行结果存储到流水线缓冲器 (MEM)136。
(MEM阶段)
在MEM阶段,流水线缓冲控制电路123按照指令译码信息,生成选 择控制信号并输出到MEM选择器134,以使MEM选择器134选择流水 线缓沖器(MEM)136的值或作为指令执行结果的存储器存取执行电路132 的输出的任一个,所述指令执行结果是针对进行存储器存取的指令的执行 结果。
并且,流水线缓冲控制电路123将作为MEM选择器134的输出的指 令执行结果存储到流水线缓冲器(WB)137。 (WB阶段)
在WB阶段,寄存器文件写入控制电路122按照指令译码信息,生成 针对寄存器文件140的写入控制信号,并通过将作为流水线缓冲器 (WB)137的输出的指令执行结果写入到寄存器文件140,从而数据保持部 142得以更新。
但是,属性信息保持部141的值为1,且在MEM阶段或WB阶段, 由后续的指令从FWD控制电路121中检测出由转发指令执行结果的工作 进行的读取的情况下,寄存器文件写入控制电路122不生成针对寄存器文 件140的写入控制信号,并且也没有将作为流水线缓冲器(WB)137的输出 的指令执行结果向寄存器文件140的写入,数据保持部142不被更新。
图4是寄存器写入抑制电路126及其周边的结构示例图。在该图中, 寄存器写入抑制电路126包括属性选择器126a、"与"门126b、属性选 择器126c、以及"与"门126d。并且,在该图中示出了,在流水级之间按 顺序传递数据的多级流水线缓冲器中的,流水线缓冲器(EX)135、流水线缓 冲器(MEM)136、以及流水线缓冲器(WB)137的一部分。图中的WN(Write Number)表示接受写入的寄存器的编号。WE表示给寄存器的写入控制信 号。FWD-MEM信号是表示从MEM阶段向ID阶段转发的信号,由FWD 控制电路121输出。FWD-WB信号是表示从WB阶段向ID阶段转发的信 号,由FWD控制电路121输出。
属性选择器126a选择属性信息保持部141中所保持的属性信息 (Atr并0 ATR并N)中的、与流水线缓冲器(MEM)136所保持的WN所示出 的寄存器编号相对应的属性信息。即,被选择的属性信息是表示接受MEM 阶段的数据的写入的寄存器编号。
"与"门126b对由属性选择器126a所选择的属性信息和FWD-MEM 信号进行逻辑乘运算,并作为屏蔽信号MASK-MEM输出。即,"与"门126b 将作为指令执行结果的数据从MEM阶段转发向ID阶段,且接受该数据的
写入的寄存器的属性信息为"不将指令的执行结果写入到寄存器文件"的情 况下,断言屏蔽信号MASK-MEM。
属性选择器126c选择属性信息保持部141中所保持的属性信息 (Atr并0 ATR并N)中的、与流水线缓冲器(WB)l 3 7所保持的WN所示出的 寄存器编号相对应的属性信息。即,被选择的属性信息是表示接受WB阶 段的数据的写入的寄存器编号。
"与"门126d对由属性选择器126c所选择的属性信息和FWD-WB 信号进行加法运算,并作为屏蔽信号MASK-WB输出。即,"与"门126d 将作为指令执行结果的数据从WB阶段转发向ID阶段,且接受该数据的写
入的寄存器的属性信息为"不将指令的执行结果写入到寄存器文件"的情况
下,断言屏蔽信号MASK-WB。
抑制门138按照屏蔽信号MASK-MEM,屏蔽从流水线缓冲器 (MEM)136输出到流水线缓冲器(WB)137的WE(WriteEnable)信号。这样, 向被转发的数据的寄存器的写入被抑制。
抑制门139按照屏蔽信号MASK-WB,屏蔽从流水线缓冲器(WB)137 输出到寄存器文件140的WE(WriteEnable)信号。这样,向被转发的数据 的寄存器的写入被抑制。
这样,在本发明所涉及的实施例l中的处理器,在发生了转发工作的 情况下,按照属性信息保持部141中所保持的属性信息,寄存器写入抑制 电路126可以抑制被转发的数据的寄存器的写入。据此,通过抑制向寄存 器文件140的不必要的写入,从而可以消减耗电量。
并且,也可以固定属性信息Atr#l—#N中的全部或一部分的属性信 息。并且,关于处理器的流水线级数,只要转发通路至少存在一个多少级 都可以。
(实施例2 )
以下,参照附图对本发明所涉及的实施例2进行说明。 实施例2中的处理器除具有实施例1中的处理器的特点以外,还可以 控制作为指令执行部的内部资源的流水线缓冲器的变更的有无。
在考虑以上这点的基础上对本发明中的实施例2中的处理器进行说明。
图5示出了实施例2中的处理器的结构。图5中的处理器结构和实施 例1中处理器结构的不同之处是,增加了抑制门201。
下面将对具有以上这种结构的的本实施例中的处理器的工作进行说 明,并且,对于与实施例l中的处理器相同之处省略说明,仅对不同之处 (MEM阶段)进行说明。
抑制门201按照MASK—WB信号,对向流水线缓冲器(WB)137的写 入控制信号进行屏蔽。据此,由于向流水线缓冲器(WB)137的写入工作得 到了抑制,再加上寄存器文件140的耗电量得到了降低,因此,可以降低 流水线缓冲器(WB)137的耗电量。
(MEM阶段)
在MEM阶段,流水线缓冲控制电路123按照指令译码信息,生成选 择控制信号并输出到MEM选择器134,以使MEM选择器134选择流水 线缓冲器(MEM)236的值或作为指令执行结果的存储器存取执行电路132 的输出的任一个,所述指令执行结果是针对进行存储器存取的指令的执行 结果。
并且,流水线缓冲控制电路123根据向流水线缓冲器(WB)137的写入 控制信号,将作为MEM选择器134的输出的指令执行结果存储到流水线 缓冲器(WB)137。
不过,属性信息保持部141的值为l,且在MEM阶段由后续的指令 检测出由转发工作指令执行结果被读取的情况下,MASK—WB信号被断 言。这样,抑制门201屏蔽向流水线缓冲器(WB)137的写入控制信号。
结果是,流水线缓冲控制电路123不将作为MEM选择器134的输出 的指令执行结果存储到流水线缓冲劉WB)137。
根据以上所述,在本发明所涉及的实施例2的处理器中,在发生了转 发工作的情况下,可以根据属性信息保持部141来抑制向流水线缓冲器 (WB)137的不必要的存储,从而可以减少耗电。
并且,写入的抑制对象不仅限于最终级的流水线缓冲器,只要抑制从 转发数据的阶段向后级的流水线缓冲器的写入即可。并且,也可以不是抑 制向流水线缓冲器的全部的写入工作,可以是抑制向流水线缓冲器的一部 分(至少是保持WN和WE的部分)的写入工作。 (实施例3)
以下利用图6对本发明所涉及的实施例3进行说明。 实施例3中的处理器与实施例1中的处理器的不同之处是没有属性信 息的变化。
图6示出了实施例3中的处理器的结构。图6的处理器的结构和实施 例1中的处理器的结构的不同之处是,包括具有属性信息保持部141的寄 存器文件340,以取代寄存器文件140,以及包括寄存器写入抑制电路 326,以取代寄存器写入抑制电路126。
下面对具有以上这种结构的本实施例中的处理器的工作进行说明,对
于与实施例l中的处理器相同之处省略说明,在此,仅对不同之处进行说 明。
不具有保持与寄存器文件340中所包含的各个寄存器相对应的属性的 属性信息保持部141,而具有保持与特定的寄存器(寄存器编号Reg并N) 相对应的属性(时常为1)的属性信息保持部341。
寄存器写入抑制电路326即使与寄存器写入抑制电路126具有相同的 结构也不会有问题,但电路结构也可以是,删除图4所示的属性选择器 126a、 126c,将Atr#N分别直接输入给"与"门126b、 126d。 (WB阶段)
在WB阶段,寄存器文件写入控制电路122按照指令译码信息,生成 针对寄存器文件340的写入控制信号,并通过将作为流水线缓冲器 (WB)137的输出的指令执行结果写入到寄存器文件340,从而数据保持部 142得以更新。
但是,在被写入到特定的寄存器(寄存器编号Reg并N)的指令被检测 出的情况下,且在MEM阶段或WB阶段,由后续的指令从FWD控制电路 121中检测出由转发工作指令执行结果被读取的情况下,寄存器文件写入 控制电路122不生成针对寄存器文件340的写入控制信号,并且也没有将 作为流水线缓冲器(WB)137的输出的指令执行结果向寄存器文件340的写 入,数据保持部142不被更新。
根据以上所述,在本发明所涉及的实施例3中的处理器,通过将属性 信息保持部341与特定的寄存器相对应,从而可以简化控制电路的全体。
并且,特定的寄存器不仅限于一个,也可以是多个。 (实施例4)
以下参照附图对本发明所涉及的实施例4进行说明。
实施例4中的处理器除具有与实施例2中的处理器相同之处以外,还
具有处理器状态寄存器。以下,在考虑以上这点的基础上,对本发明中的
实施例4中的处理器进行说明。
图7示出了实施例4中的处理器的结构。图7的处理器结构与实施例
l中的处理器结构的不同之处是,增加了处理器状态寄存器412,且其输
出与属性信息保持部141相连接。
以下对于具有以上这种结构的本实施例中的处理器的工作进行说明, 对于与实施例1中的处理器相同之处省略说明,在此对不同之处进行说明。
处理器状态寄存器412作为控制寄存器来发挥功能,其指示是否抑制 向寄存器的写入。属性信息保持部141保持与处理器状态寄存器412 (控 制寄存器)所保持的数据相对应的属性信息。 (WB阶段)
在WB阶段,寄存器文件写入控制电路122按照指令译码信息,生成 针对寄存器文件140的写入控制信号,并通过将作为流水线缓冲器 (WB)137的输出的指令执行结果写入到寄存器文件140,从而数据保持部 142得以更新。
但是,属性信息保持部141为1,且在MEM阶段或WB阶段,由后 续的指令从FWD控制电路121中检测出由转发指令执行结果的工作进行 的读取的情况下,寄存器文件写入控制电路122不生成针对寄存器文件 140的写入控制信号,并且也没有将作为流水线缓冲器(WB)137的输出的 指令执行结果向寄存器文件140的写入,数据保持部142不被更新。
并且,通过将处理器状态寄存器的值设定为特定的值,从而可以将属 性信息保持部141全部变更为0。
如以上所述,在本发明所涉及的实施例4的处理器中,属性信息保持 部141的控制可以由处理器状态寄存器412来设定。例如,为了使属性信 息Atr#0—#N全部为0而设定处理器状态寄存器412的话,本处理器的 工作就可以变更为以往的处理器的工作,这样,可以保持在软件上的处理 器工作的互换性。
也可以仅将属性信息Atr#N作为1而设定处理器状态寄存器412,也 可以依赖于安装了处理器的装置,来固定处理器状态寄存器412的数据,
还可以进行动态变更。 (实施例5)
实施例5中的处理器除与实施例1中的处理器具有相同之处以外,还 具有作为指令的属性变更指令。在考虑以上这点的基础上,对本发明的实 施例5中的处理器进行说明。
图8示出了实施例5中的处理器的结构。图8的处理器结构与实施例
19
1中的处理器结构的不同之处是,作为WB阶段的流水线缓冲器137的输 出的指令执行结果与属性信息141相连接。
以下对有关具有以上这种结构的本实施例中的处理器的工作进行说 明,省略与实施例1的处理器相同之处,对不同之处(WB阶段)进行说 明。
(WB阶段)
在WB阶段,寄存器文件写入控制电路122按照指令译码信息,生成 针对寄存器文件140的写入控制信号,并通过将作为流水线缓冲器 (WB)137的输出的指令执行结果写入到寄存器文件140,从而数据保持部 142得以更新。
但是,属性信息保持部141的值为1,且在MEM阶段或WB阶段, 由后续的指令从FWD控制电路121中检测出由转发指令执行结果的工作 进行的读取的情况下,寄存器文件写入控制电路123不生成针对寄存器文 件140的写入控制信号,并且也没有将作为流水线缓冲器(WB)137的输出 的指令执行结果向寄存器文件140的写入,数据保持部142不被更新。
在执行属性变更指令"seLattributeReg紐"的情况下,寄存器文件写 入控制电路522生成针对寄存器文件140的写入控制信号,并通过将作为 流水线缓冲器(WB)137的输出的指令执行结果写入到寄存器文件140,从 而属性信息保持部141得以更新,被设定为l。
并且,在执行属性变更指令"reset—attributeReg紐"的情况下,寄存 器文件写入控制电路522生成针对寄存器文件140的写入控制信号,并通 过将作为流水线缓冲器(WB)137的输出的指令执行结果写入到寄存器文件 140,从而属性信息保持部141得以更新,被设定为0。
这样,在本发明所涉及的实施例5的处理器中,可以通过软件任意变 更与各寄存器相对应的属性信息保持部141。
以下将参照附图对实施例5中的程序变换装置进行说明。实施例5中 的程序变换装置为编译装置,与实施例5的处理器相对应,分析程序结构 并自动插入属性变更指令。
以下在考虑到以上这点的基础上,对本发明的实施例5中的编译装置 进行说明。
图9示出了实施例5中的编译装置的结构。
如该图所示,该编译装置具有编译程序602和扩展汇编程序604。编 译程序602将作为高级语言的C语言的源代码601变换为由与以往相同 的指令构成的汇编程序代码603。
扩展汇编程序604将汇编程序代码603变换为添加了属性变更指令的 汇编程序代码605。
以下对有关具有以上结构的本实施例中的编译程序的工作进行说明。 首先,编译程序602根据以往的编译流,将作为高级语言的C语言源
代码601变换为汇编程序代码(以往)603。
作为一个例子,对汇编程序代码(以往)603的内容进行说明。
第l行将转移指令执行时的接受转移方的地址作为Label来表示的
伪指令。
第2行将Reg#31的数据作为地址来进行向存储器的读取,并将读 取的数据存储到Reg#0的加载指令。
第3行对Reg并0和Reg#l数据进行加法运算,并存储到Reg#2的 加法指令。
第4行将Reg#31的数据作为地址,将Reg#0的数据向存储器写入 的存储指令。
第5行使Reg并31和立即数1相加,并存储到Reg約l的加法指令。 第6行在第i行进行转移(循环执行)的转移指令。 接着,扩展汇编程序604将汇编程序代码(以往)603变换为添加了 属性变更指令的汇编程序代码(添加新建指令)605。在此,扩展汇编程 序604判断Reg#0的数据由扩编程序代码(以往)603中的第2行写入,并 仅以紧接在后边的第3行的指令读取,并将属性变更指令(set—attribute Reg并0)插入到马上就要执行循环的指令,以使Reg并O的属性被设定为1。 该指令指示将属性Atr#0设定为1。并且,插入属性变更指令 (reset—attribute Reg#0),以使在循环执行被遗漏时将Reg#0的属性设定 为0。该指令指示将属性Atr#0设定为0。
图10示出了实施例5中的扩展汇编程序604的处理流程。如该图所 示,扩展汇编程序604从原始的汇编程序代码603中抽出由原始程序存储
到寄存器的变量以及数据相关关系(S81),并且,根据指令间的相关关系 检测生存区伺(S82)。生存区间是指,从定义变量的指令(称为定义指令) 开始到最后参考该变量的指令(称为参考指令)为止的区间。而且,扩展 汇编程序604抽出变量中跨过基本块的不参考的局部变量(S83),并判断 参考该变量的参考指令在生存区间中是否仅为一个(S84),并判断在生存 区间中定义该变量的定义指令和参考的参考指令是否成为转发的对象 (S85)。此时,定义指令和参考指令是否成为转发的对象取决于定义指令 和参考指令之间的距离。该距离是指从定义指令到参考指令的指令数,例 如,在定义指令的后边紧接着的是参考指令的情况下,此时的距离就为l。 换而言之,插入到定义指令和参考指令之间的指令数加1就是距离。在这 种情况下,若在本实施例的处理器中距离为3以上,则判断为是转发的对 象。
在此判断中,参考指令被判断为在生存区间仅存在一个且是转发对象 的情况下,扩展汇编程序604添加抑制由定义指令进行寄存器写入的抑制 指令,以便抑制由所述定义指令进行的寄存器写入(S86、 S87)。在此所 谓的抑制指令是指属性变更指令(set-attribute Reg^)和属性变更指令 (reset_attribute Reg#n),属性变更指令(set—attribute Reg紐)设定在生 存区间之前抑制向应该存储变量的寄存器的写入的属性信息,属性变更指 令(reset—attribute Regfn)设定在生存区间之后不抑制向应该存储变量的 寄存器的写入的属性信息。扩展汇编程序604在存在下一个局部变量的情 况下(S88),再次处理步骤S83以后的步骤。
并且,在此判断中,参考指令被判断为在生存区间中存在的不是一个, 或没有成为转发的对象的情况下,扩展汇编程序604在存在下一个局部变 量的情况下(S88),再次处理步骤S83以后的步骤。
通过以上所述,软件开发人员可以不必特意地对属性变更指令进行编 程,就可以通过实施例5中的处理器来实现降低耗电量的效果。
并且,(set—attribute Regt)指令可以是紧靠定义指令的前一个指令, (reset—attribute Reg紐)指令可以是紧靠参考指令的后一个指令,后者的 指令最好是插入到图9所示的循环以外的位置。 (实施例6 )
以下参照附图对本发明所涉及的实施例6进行说明。在本实施例中属 性信息不是与各个寄存器对应而被保持的,而是与转发对象的各个数据相 对应并被保持在多级流水线缓冲器中,以下对传递给多个流水线缓冲器的 结构进行说明。
图11示出了实施例6中的处理器的结构。图11所示的处理器与实施 例1中的处理器相比较不同之处是,具有寄存器文件640以取代寄存器文 件140,具有指令控制部620以取代指令控制部120,具有指令译码部 610以取代指令译码部110,具有流水线缓冲器635—637以取代流水线 缓沖器135 — 137,具有抑制门638、 639以取代抑制门138、 139。
寄存器文件640虽然包括数据保持部142,但不具有各个寄存器所对 应的属性信息保持部141。在本实施例中,因保持对应于转发对象的数据 的属性信息S,所以流水线缓冲器635—637的一部分具有属性信息保持 单元的功能。
指令译码部610除具有指令译码部110的功能以外,还可以译码包含 寄存器写入抑制指示的指令。本处理器可以支援作为向寄存器写入数据的
指令的通常指令和抑制指令的这两种指令,通常指令不包含寄存器写入抑 制指示,抑制指令包含寄存器写入抑制指示。例如,对于通常的加载指令 (ldReg#0, (Reg弁31))也可以执行附带有抑制指示的加载指令(1(^ Reg#0, (Reg#31))。抑制指令的记忆码的表示法是在通常的指令上附加*。
指令控制部620与指令控制部120相比不同之处是不具有寄存器写入 抑制电路126。
图12是流水线缓冲器365 — 367的一部分和抑制门638、 639的结 构示例图。
流水线缓冲器635—637与流水线缓冲器135 — 137同样,具有在流 水级间按顺序传递数据的功能,除此之外还将转发对象的数据以及与该转 发对象的数据相对应的属性信息巧传递到后级的流水线缓冲器。在指令译 码部610对上述的抑制指令进行译码时,该属性信息"和WN信号或WE 信号一起由指令译码部610写入到流水线缓冲器635,并被传递到后级的 流水线缓冲器636、 637。这样,流水线缓冲器635—637的一部分与转 发对象的数据相对应,构成保持属性信息S的属性保持部641,并作为属
性信息保持单元来发挥功能。
抑制门638、 639除具有抑制门138、 139的功能以外,还具有寄存 器写入抑制电路126的功能。
抑制门638被输入有FWD—MEM信号、属性信息^S、以及WE信号, 所述FWD—MEM信号表示从MEM阶段向ID阶段的转发工作,所述属性 信息^S从流水线缓冲器(MEM)636输出,所述WE信号由流水线缓冲器 (MEM)636输出。关于这些输入信号,由FWD—MEM信号断言,且在属 性信息^为1 (寄存器写入抑制)的情况下,通过抑制门638将WE信号 屏蔽,从而可以抑制被转发来的数据的寄存器写入。
抑制门639被输入有FWD—WB信号、属性信息3、以及WE信号, 所述FWD—WB信号表示从WB阶段向ID阶段的转发工作,所述属性信 息S从流水线缓冲器(WB)637输出,所述WE信号由流水线缓冲器 (WB)637输出。关于这些输入信号,由FWD—WB信号断言,且在属性信 息^S为1 (寄存器写入抑制)的情况下,通过抑制门639将WE信号屏蔽, 从而可以抑制被转发来的数据的寄存器写入。这样,抑制门638、 639构 成寄存器写入抑制电路626,并作为抑制寄存器写入的控制单元发挥功能。
以下对具有如以上结构的本实施例中的处理器的工作进行说明,对于 与实施例l中的处理器相同之处省略说明,在此对不同之处进行说明。 (WB阶段)
在WB阶段,寄存器文件写入控制电路723按照指令译码信息,生成 针对寄存器文件740的写入控制信号,并通过将作为流水线缓冲器 (WB)737的输出的指令执行结果写入到寄存器文件740,从而数据保持部 142得以更新。
但是,在检测出被执行的指令为作为寄存器写入抑制指令而被定义的 指令,且在MEM阶段或WB阶段,由后续的指令从FWD控制电路721 中检测出由转发指令执行结果的工作进行的读取的情况下,寄存器文件写 入控制电路723不生成针对寄存器文件740的写入控制信号,并且也没有 将作为流水线缓冲器(WB)737的输出的指令执行结果向寄存器文件740的 写入,数据保持部142不被更新。
通过以上所述,本发明所涉及的实施例6中的处理器由于不具有属性
信息保持部从而可以消减电路规模,且可以得到与实施例1的处理器相同 的效果。
接着,参照附图对本实施例中的程序变换装置进行说明。
实施例6中的程序变换装置也就是编译装置,与本实施例的处理器相 对应,解析程序结构,并将以往的指令变换为寄存器写入抑制指令。
以下,在考虑以上这点的基础上,对本发明的实施例6中的编译装置 进行说明。
图13示出了实施例6中的编译装置的结构。
如该图所示,本编译装置作为高级语言的C语言源代码601由编译程 序602被变换为汇编程序代码(以往)603,汇编程序代码(以往)603 进一步由扩展汇编程序804被变换为添加了属性变更指令的汇编程序代码 (添加新建指令)805。
以下对本编译器的工作进行说明。
首先,编译程序602根据以往的编译流,将作为高级语言的C语言源
代码601变换为汇编程序代码(以往)603。
作为一个例子,对有关汇编程序代码(以往)603的内容进行说明。
第l行是表示转移指令执行时的接受转移方的地址的标记。
第2行将Reg并31的数据作为地址来进行向存储器的读取,并将读
取的数据存储到Reg#0的加载指令。
第3行对Reg#0和Reg#l数据进行加法运算,并存储到Reg#2的
加法指令。
第4行将Reg并31的数据作为地址,将Reg并2的数据向存储器写入 的存储指令。
第5行使Reg#31和立即数1相加,并存储到Reg#31的加法指令。 第6行在第i行进行转移(循环执行)的转移指令。 之后,由扩展汇编程序804将汇编程序代码(以往)603变换为将以 往的指令变换为寄存器写入抑制指令的汇编程序代码(添加新建指令) 805。在此,在扩展汇编程序804判断为,Reg#0被写入在汇编程序代码 (以往)603中的第2行,并仅以紧接在后边的第3行的指令来读取,将 给第2行的存储器的读取指令(ld)变换为附带寄存器写入抑制指令的指令
(ld*)。
图14示出了图13中的扩展汇编程序的处理流程。该图与图9所示的 处理流程相比较不同之处是,取代步骤S86、 S87的是具有步骤S101。对 于相同之处省略说明,以下对不同之处进行说明。
在S84、 S85的判断中,参考指令被判断为在生存区间仅存在一个, 且成为转发对象的情况下,由于抑制了由所述定义指令进行的寄存器写入, 因此,扩展汇编程序804将定义指令从通常的指令变换为伴随有寄存器写 入的抑制的抑制指令(上述附带有*的指令)(SIOI)。
通过以上所述,软件开发人员可以不必特意地对属性变更指令进行编 程,就可以通过实施例6中的处理器来实现降低耗电量的效果。
并且,本发明不仅可以作为处理器来实现,而且也可以作为控制处理 器的方法(以下称为控制方法)等来实现。并且,也可以作为由处理器提 供的功能而组成的LSI、将处理器功能形成在FPGA、 CPLD等可编程逻辑 器件的IP芯片(以下称为处理器芯片)、以及记录处理器芯片的记录介质 来实现。
并且,上述的实施例是可以自由组合的。例如,将实施例5与实施例 6组合在一起也不会产生矛盾,可以得到效果。
本发明可作为搭载在移动电话等上的处理器等来利用,尤其可以利用 于需要降低电量消耗的领域。
2权利要求
1.一种处理器,具有转发功能,其特征在于,包括保持单元,保持与向寄存器的写入抑制有关的属性信息;以及控制单元,在发生了转发时,按照属性信息来抑制被转发的数据向寄存器的写入。
全文摘要
本发明的处理器具有转发功能,包括属性信息保持部(141),保持与向寄存器的写入抑制有关的属性信息;以及寄存器写入抑制电路(126),在发生转发时,按照属性信息抑制被转发的数据向寄存器的写入。属性信息保持部(141)至少与一个寄存器相对应保持所述属性信息。或所述属性信息保持部是多个流水线缓冲器的一部分,将转发对象的数据和所述属性信息一起传递给后级的流水线缓冲器。
文档编号G06F9/38GK101361039SQ200680051248
公开日2009年2月4日 申请日期2006年10月16日 优先权日2006年1月20日
发明者川村信, 深井慎一郎 申请人:松下电器产业株式会社