连续微操作的结果复用

文档序号:9304413阅读:167来源:国知局
连续微操作的结果复用
【技术领域】
[0001]本发明涉及数据处理领域,具体地,涉及连续(back-to-back)微操作的结果复用。
【背景技术】
[0002]处理装置可具有用于执行数据处理操作的处理电路以响应于微操作。本发明寻求改善处理电路的性能和/或减少处理电路的能耗。

【发明内容】

[0003]从一个方面来看,本发明提供了一种数据处理装置,包括:
[0004]处理电路,被配置成响应于微操作来执行数据处理操作,处理电路具有被配置成存储数据处理操作结果的输出寄存器;以及
[0005]控制电路,被配置成检测由处理电路处理的当前微操作是否将给出与由处理电路在当前微操作之前处理的最近的有效微操作相同的结果;
[0006]其中,如果控制电路检测到当前微操作将给出与最近的有效微操作相同的结果,则控制电路被配置为阻止处理电路处理当前微操作,以便输出寄存器不会响应于当前微操作而被更新,并且被配置为控制处理电路来输出存储在输出寄存器中的值作为当前微操作的结果。
[0007]本发明认识到在一些系统内可能有相当数量的由处理电路处理的微操作与由该处理电路执行的最近的有效微操作是一样的,或者与最近的有效微操作是等效的,导致它们产生一样的结果。例如,在一些算法里,高达40%的微操作可能与最近的有效微操作是同样的。本发明的发明人还认识到处理电路可以包括输出寄存器,其输出由处理电路执行的有效数据处理操作的结果。通常,输出寄存器可能只会当有效的微操作执行的时候被更新,这样将持续存储最近的有效微操作的结果,直到另一个有效微操作被处理为止。因此,已经在输出寄存器内的结果可以被当前微操作复用,并且没有必要为当前微操作重复相同的计算。处理电路被提供用来检测当前微操作是否给出与由处理电路处理的最近的有效微操作一样的结果,如果是,则控制电路阻止处理电路处理当前微操作,以便输出寄存器不会响应于当前微操作而被更新,并且控制处理电路来输出存储在输出寄存器内的值作为结果。这样,性能可以被提升或者能量消耗可以被减少。
[0008]最近的有效微操作可以是当前微操作之前的周期内处理的微操作,或者如果中间没有有效的微操作,则可以是几个周期以前处理的微操作。
[0009]确定当前微操作是否将给出与最近的有效微操作一样的结果不需要准确的确定。控制电路可以估计当前微操作的结果是否可能与最近的有效微操作相同。谨慎的来看,该检测结果将会一样的估计可能会是错的一一如果不确定,则最好假设结果将不一样,以便当前微操作被正确地处理。
[0010]例如,如果当前微操作和最近的有效微操作是同一个,则控制电路可以检测出结果将会一样,也就是说,它们是同样的数据处理操作并且指定了一样的操作数。一些处理流水线可能只处理用于执行单一类型的数据处理操作的微操作。在这种情况下,隐含了所有传递至该流水线的微操作将涉及同样的数据处理操作,这样不需要明确比较与不同微操作相关联的数据处理操作(例如,操作码)。另一方面,其他流水线有相应于不同数据处理操作的功能单元,有必要比较微操作各自的操作标识符,来决定当前微操作与最近的有效微操作是一样的还是不一样的。操作标识符指示响应于每个微操作将被执行的数据处理操作。例如,操作标识符可以至少是操作码或功能选择码的一部分。
[0011]如果最近的有效微操作和当前微操作中的一个能被转换或变换到另一个,则控制电路同样可以检测出结果将会一样。例如,通过将减法操作其中一个操作数转换为其二进制补码并且将转换后的操作数加到另一个操作数上,或者改变其中一个操作数的符号位,该减法操作可以被转换成等效的加法操作。同样,对一个操作数乘上或除以2的幂(对应于2N)的乘法或除法微操作可以等价于将操作数左移或右移N个位(对于定点运算)的位移微操作,或者等价于增加或减少指数的操作(对于浮点运算),以给出一样的结果。因此,为了实现增加节省能量的次数,控制电路可检测当前微操作给出与最近的有效微操作一样的结果,如果是一样的,则使用最近的有效微操作的结果,即使微操作是不同的。
[0012]同样,一些不同微操作可以给出一样的结果。例如,其中一个操作数是零的乘法微操作将总是给出为零的结果,即使另一个操作数是不同的。因此,如果每个乘法微操作中的一个操作数是零,则控制电路可以检测出多个乘法微操作将给出一样的结果。
[0013]复用连续的有效微操作的结果的技术可以被用来提升性能。如果当前微操作将给出与最近的有效微操作一样的结果,则当前微操作根本不需要被传递至处理电路。反而,处理电路可以被控制输出来自输出寄存器的结果作为当前微操作的结果。相比于当前微操作被流水线处理,后续的微操作可以更早的被发送来处理,以提升微操作的处理效率。
[0014]另一方面,连续结果的复用也同样允许能量消耗被减少。在本来将处理当前微操作的周期内,处理电路可以被置于能量节省状态。该能量节省状态可以是一个无损能量节省状态,以便响应于最近的有效微操作而产生的在输出寄存器内的值被保持。因此,即使当前微操作将给出与最近的有效微操作一样的结果,它也仍然会被传递至处理电路,但是处理电路可以被置于能量节省状态来减少能量消耗。
[0015]例如,在处理电路的另一个部件本来要处理当前微操作的处理周期内,输出寄存器的时钟信号或该部件可以被时钟关闭。通过关闭输出寄存器的时钟信号,能够阻止其被用当前微操作的结果更新。通过关闭处理电路其他部分的时钟信号,能够阻止它们处理当前微操作,这样它们不会转换状态,从而减少了动态的能量消耗。同样,由于关闭时钟信号阻止了时钟树触发,因而提供了显著地能量节省。
[0016]在一些示例中,处理电路可以包括具有多个流水线阶段的处理流水线。为了节省能量,如果当前微操作给出与最近的有效微操作一样的结果,则当前微操作可以被传递至流水线并且每个被当前微操作经过的流水线阶段在当前微操作处于该流水线阶段的处理周期内可被置于能量节省状态。该方法通过提供用于控制输出最近的微操作的结果作为当前微操作的结果的有效机制,有利于减少能量消耗。在当前微操作仍然以正常方式被传递至流水线时,除了(例如,通过时钟关闭)流水线阶段被置于能量节省状态,微操作穿过流水线的通路能够在合适的时候触发结果的输出,所以没有必要提供另一个更复杂的机制以用于确保微操作结果产生并且被发送至合适的目的地(例如,寄存器)。
[0017]在某些情况下,使能信号可能已经被提供给每一个流水线阶段用于指示在该流水线阶段的微操作是否是有效微操作。在某一些周期内,也许没有新的微操作被处理,因此使能信号失效,这触发相应的流水线阶段被置于能量节省状态。在当前微操作给出与最近的有效微操作一样的结果时,使能信号可以被复用来控制能量节省。如果当前微操作给出与最近的有效微操作一样的结果,则使能信号可以被设置来指示当前微操作是一个无效微操作,因此相应的流水线阶段将被置于能量节省状态。
[0018]在当前微操作给出与最近的有效微操作一样的结果时,匹配信号也可以生效。匹配信号可以和微操作一起沿流水线向下传播来指示存储在输出寄存器内的值应该被作为当前微操作的结果输出,并且该值是当前微操作的有效结果。
[0019]处理电路具有存储传递至处理电路的有效微操作的输入寄存器。在当前微操作被接收时,最近的有效微操作可能仍然被存储在该输入寄存器内。因此,控制电路通过比较接收到的当前微操作和存储在输入寄存器内的相应的微操作,可以检测出当前微操作与最近的有效微操作是否给出一样的结果。因此,没有必要提供另一个存储元件用于缓存最近的有效微操作。构成流水线本身一部分的输入寄存器已经有效的缓存了最近的有效微操作。
[0020]每个微操作可对应从内存中取出的单一程序指令,或者可仅对应程序指令的一部分。例如,一些流水线可以处理对应于多个微操作的复杂程序指令,每个对应于整个数据处理操作不同部分的微操作响应于程序指令而被执行。例如,一个加载/存储多指令可以被映射为若干加载/存储微操作。或者,在其他系统内,也许没有复杂的程序指令,并且每个微操作仅对应于单一程序指令。总的来说,每个微操作可对应于由流水线安排独立于其他数据处理操作的数据处理操作。
[0021]在某些情况下,每个微操作与控制信号一起被接收,控制信号指示该微操作是否给出与最近的有效微操作一样的结果。例如,控制电路上游的另一个电路元件,或者第二处理流水线已经确定了(或部分确定)当前微操作将给出与最近的有效微操作一样的结果。如果是这样,则控制电路可以不需要在当前微操作和最近的有效微操作之间执行明确的比较。相反,控制电路可以仅基于控制信号确定最近的有效微操作的结果是否能被复用。
[0022]为了提供进一步的能量节省或者性能提升,可以提供一个包括至少一个表条目的表,表条目用于存储一个或多个前面的微操作的结果。当接收到当前微操作时,表查找被执行来检测表是否包括与给出和当前微操作一样的结果的前面微操作相对应的表条目。如果存在该对应的表条目,则可以阻止处理电路处理当前微操作,并且存储在相应的表条目里的前面微操作的结果可以被复用作为当前微操作的结果。这样,当前微操作将更可能不需要被处理,因为当前微操作有若干可供复用的结果。
[0023]但是,查找表可能会相当消耗能量。例如,如果当前微操作的操作数与在表内标识的前面微操作的操作数相比较,则这可能需要大量位的比较。如果当前微操作将给出与最近的有效微操作一样的结果,则可以从输出寄存器获得结果,这样就没有必要使用表。因此,如果控制电路检测出当前微操作将给出与最近的有效微操作一样的结果,则对当前微操作的表查找可以被省略来节省能量。
[0024]在某些情况下,在数据处理装置内可以有两个或更多的处理电路的实例。如果由处理电路处理的微操作将给出与由进一步处理电路执行的最近的有效微操作一样的结果,则从进一步处理电路获得的最近的有效结果可以被处理电路复用来节省能量或提升性能。进一步处理电路可可包括进一步输出寄存器,该进一步输出寄存器将保持最近的有效微操作的结果直到另一个有效微操作被处理为止,该结果可以被处理电路读取和输出作为当前微操作的结果。例如,处理电路和进一步处理电路可以是同一系统内的不同流水线,或者一个处理单元内的不同处理通道。
[0025]装置可以包括发布电路,该发布电路发布用于被处理电路处理的微操作。控制电路可以以与由发布电路发布微操作至处理电路的顺序一样的顺序将微操作传递至处理电路。因此,为了增加连续操作给出相同结果的可能性,控制电路不需要尝试去重新排序微操作。本发明的发明人发现在一些应用(特别是在图形或计算应用)中连续结果是相同的,无需重新排序微操作是很普遍的,这样仅仅以微操作原始的顺序处理它们将更有效,而不是提供缓存和电路用于重新排序或组合期望给出相同结果的微操作,这会导致附加电路区域和静态/动态能量消耗。
[0026]从另一方面看,本发明提供了一种数据处理装置包括:
[0027]处理装置,用于响应于微操作执行数据处理操作,该处理装置具有用于存储数据处理操作结果的输出寄存器装置;以及
[0028]控制装置,用于检测由处理装置处理的当前微操作是否将给出与由处理装置在当前微操作之前处理的最近的有效微操作相同的结果;
[0029]其中如果控制装置检测出当前微操作将给出与最近的有效微操作相同的结果,则控制装置被配置成阻止处理装置处理当前微操作,以便输出寄存器装置不会响应于当前微操作而被更新,
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1