连续微操作的结果复用_4

文档序号:9304413阅读:来源:国知局

[0087]已经得知,在算数单元内对于单个条目备忘表,基于指令类型的过滤能够将复用概率从1-2%增加到多达30%。具有复用的大部分指令属于图形ALU内的同一四元组,所以如果当前微操作属于在不久之前未见过的四元组,则通过跳过检查备忘表来避免比较操作数值,从而我们可以消除长串数字的比较来节约能量。
[0088]如上所述,可能存在一些产生相同结果的不同微操作,这样可以被映射到一个共同的形式。例如,图7显示了一个示例,其中通过产生一个操作数的二进制补码,减法微操作可以被转换成等效的加法操作。加法操作和减法操作之间的转换可以选择性地通过改变一个操作数的符号位来完成。在其他示例中,一个操作数等于二的幂的乘法或除法操作可以等效于左移或右移(对于定点运算)操作,或者等效于适当数量的增加或减少指数的操作(对于浮点运算)。如果照现在的样子给出同样结果的不同形式的微操作被传递至流水线,则这些微操作可能被认为是不一样的,因而两个不同的计算可能被执行,各产生相同的结果,并且两个单独的表条目可能被分配,浪费了用于对应于不同结果的条目空间。因此,如图8所示,任何前面的例子中所示的流水线4可以具有包括转化电路102的初步转化阶段100,该转化电路102用于将多个微操作转化成给出同样结果的等效形式。多路复用器104可被控制来选择原始微操作或者其转化后替代的微操作。微操作的操作数可能也需要被转化(例如,图7的示例中,一个操作数被其二进制的补码所替代)。流水线4的其余部分以与上面的示例所示相同的方式运行。这样,可以增加能够复用前面操作结果的微操作的数量,并且可以避免同样操作的替代形式使用多个表条目。
[0089]或者,也许转化电路102没有必要被实际提供,但是在当前微操作与对应于给出同样结果的等效微操作的条目相匹配的时候,替代电路可被提供来保证表内的击中发出信号。但是,对等效但不同的微操作的查找表操作可能很复杂,所以转化电路可以简化表查找。
[0090]当结果能够被复用时,用来节省能量的时钟关闭机制还可以被用来在微操作具有简单结果时节省能量,其中,简单结果可以不使用完整的流水线4就能够被相对有效地确定。如图9所示,初始流水线阶段被提供有用于检查当前微操作是否有简单结果的控制电路120。图10显示了一些这样的微操作的示例,包括:
[0091].乘法微操作,其中一个操作数为O (结果将总是O)
[0092].乘法操作,其中一个操作数为I (结果将等于另一个操作数)
[0093].加法或减法操作,其中一个操作数为O (结果将等效于另一个操作数)
[0094].加法或减法操作,其中一个操作数为I (结果将对应于另一个操作数的增加或减少版本)
[0095]?乘法或除法操作,其中一个操作数是2的幂(结果将对应于左移或者右移的另一个操作数)
[0096]存在许多其他类型的操作,其结果可以相对有效地得到,并且为了节省能量,不需要完整的流水线。
[0097]一些相对基础的处理逻辑130被提供,当产生由控制电路120检测到的一个简单操作的结果时,处理逻辑130比主流水线4消耗更少的能量。如果控制电路120检测到微操作具有这样的简单结果,则其可能会控制与门26来无效微操作的使能信号10,以便于当微操作为了备忘以如图2所示的相同方式经过每个阶段时,流水线4在周期内处于能量节省状态。简单结果有效信号132被提供用来触发处理逻辑单元130以产生简单结果并且输出有效信号,该有效信号随后可能与来自流水线的正常有效信号28相结合来指示存在有效结果。如果逻辑130能产生一些不同的简单结果,控制信号134就可被提供以用来指示哪一个结果应该被产生。如果简单结果是依据于一个操作数的,则操作数转发路径136同样可以被提供。虽然图9显示的示例中处理逻辑130与流水线4分离,但是在其他的情况下,逻辑130可以至少被部分地包括在流水线4内。同样,一些控制信号132,134可以与流水线中的信号结合。例如,简单结果有效信号132可以与图2中击中信号重叠,以通过使用与门26来无效使能信号。相似地,控制信号134可以通过如图2所示的行号信号线传送一一即,行号可以用来选择将由处理逻辑130产生的结果。
[0098]因此,当前面微操作的结果可以被复用时,用来时钟关闭流水线的机制在微操作具有简单结果(即使该结果并不与前面微操作的结果相同)时可以同样被用来节省能量。这可以提供进一步的能量节省。例如,已知在算数单元,大约4-16%的乘法运算是乘以0,所以该方案获得了较大的效果。
[0099]图11显示了另一个示例,用于不使用任何备忘高速缓存(memoizat1n cache)或表24来备忘连续的同一计算的结果。这可以通过提供比较电路150以及在当前微操作给出了与存储在输入寄存器12内的最近的有效微操作一样的结果时,沿着流水线向下传播时钟关闭信号(失效的使能信号10)来完成,其中,比较电路150用于比较第一流水线阶段SI的输入寄存器12和在流水线4前端的输入值。微操作沿着流水线向下传递,并且失效的使能信号10时钟关闭该微操作传递至的每个阶段来节省能量。辅助备忘有效(memo valid)信号160被循环传播至下一个阶段,直到它到达多级单元的输出,并且选择由流水线4处理的前面计算的最近有效微操作的结果为止,该结果仍然被保存在输出寄存器16中,因为与此同时任何无效微操作都会时钟关闭输出寄存器16来防止它被更新。
[0100]如图11所示,因为只有一个小部分附加电路150,152和memo_valid路径160需要被添加到图1的流水线上,所以这种类型的备忘可以被相对有效地实现(没有必要维持和搜索相对大的表)。
[0101]虽然图11显示了一个示例,其中如果微操作的结果与最近有效微操作的结果相同,则通过关闭微操作经过的流水线阶段来节省能量,但是使用该连续(back-to-back)备忘技术来提高性能也是可能的。如果比较电路150检测到当前微操作的结果与最近有效结果一样,则可以阻止当前微操作继续沿流水线向下传递,而其结果仍然可以从输出寄存器16输出。如果当前微操作是沿着流水线向下传递,则另一个微操作可能比其应该处理的时间更早的被处理,以提升处理速度。如果当前微操作给出与最近有效微操作一样的结果,则另一个使用备忘来提升性能的方式可以是去掉最近有效微操作和当前微操作之间的不必要操作一一例如,如果得知当前微操作将给出与最近有效微操作一样的结果,则当前微操作可以不必等待作为前面微操作结果的操作数值变得可用。
[0102]图12示出了操作图11所示系统的方法流程图。在步骤200处,比较电路150检查当前有效微操作是否给出了与在第一流水线阶段S1的输入寄存器12指示的最近有效微操作一样的结果。如果是,则在步骤202处,当前微操作的使能信号10被无效,随后备忘有效信号160生效。在步骤204处,当前微操作沿流水线向下传递,在步骤206处,被无效的使能信号时钟关闭当前微操作传递过的每个流水线阶段来节省能量,以便于输出寄存器16将不会响应于该微操作而被更新。因此,在步骤208处,当微操作到达流水线的结束处时,输出寄存器仍然保存前面有效微操作的结果,并且该结果可以作为当前微操作的结果被输出。在步骤210处,生效的备忘有效信号160意味着通过或门152输出有效信号同样被生效。
[0103]在另一方面,如果当前微操作的结果与最近有效微操作的结果不同,则在步骤212处,使能信号10保持生效并且备忘有效信号160被无效。在步骤214处,该微操作被传递至流水线,并且在步骤216处,被流水线4以通常方式处理。每一个流水线阶段根据该阶段处理微操作的结果更新下一阶段的输入寄存器12。在步骤218处,当微操作到达最终阶段时,输出寄存器16已经用该微操作的结果更新并且该结果被输出。因为该微操作的使能信号10生效,所以通过或门152输出有效信号生效。此外,图12中所示的一些步骤可以互相之间并行执行或者以不同顺序执行,并且可以与为另一个微操作执行的步骤在一个流水线上。
[0104]如图13所示,如图11所示的连续同一结果的备忘也可以被应用于具有用于存储前面微操作结果的备忘表24的流水线5。图13显示了与图5相似的流水线,但是其他示例可以基于图2。图5的流水线提供有如图11所示的比较逻辑150,比较逻辑150用于检查当前微操作是否给出了与最近有效微操作一样的结果。如果当前微操作给出了与最近有效微操作一样的结果,则使能信号失效,以便于后续的流水线阶段将不会执行备忘表24的查找。相反,备忘有效信号(memO_Valid)160生效并且其控制流水线结束阶段来输出存储在输出寄存器16中的值作为当前微操作的输出。另一方面,如果比较逻辑150确定当前微操作将不会给出与最近有效微操作一样的结果,则使能信号保持生效。随后下一个流水线阶段继续以图2-5所讨论的同样的方式执行表24的查找,以检查微操作是否将给出与最近有效微操作前面的微操作一样的结果。在流水线结束处,或门28使用逻辑或操作将如下三个信号结合,来产生输出有效信号:(i)备忘有效信号(mem0_Valid) 160 (生效,如果微操作给出与最近有效微操作一样的结果),(ii)备忘表有效信号(击中信号)生效,如果微操作与表内的条目相匹配,这样从表中输出的结果对该微操作来说是一个有效结果,以及(iii)使能信号10,如果其生效,则指示输出寄存器16的输出与由流水线4以普通方式而不是备忘产生的结果值相对应。如果这三个信号中的任何一个生效,则输出有效信号同样生效。
[0105]在图13的示例中,由比较电路15和memo_valid路径160提供的连续备忘技术有利于减少查找备忘表24的能量消耗。如果比较电路150没有检测到连续结果是一样的,则表将会被查找来检查是否可能复用更早的结果并且时钟关闭流水线阶段来节省能量。但是,当连续的有效微操作给出一样的结果时,输出寄存器16将有效地备忘最近有效微操作的结果,这样表查找就不需要了。因此,在这个情况下,通过省略表查找,能量可以被节省。图13中的比较电路150实际上可以被看作为一种过滤电路,如在图6的实施例中,如果当前微操作与最近有效微操作给出一样的结果,则其过滤掉表查找和表分配。
[0106]图14示例性说明了具有两个处理通道的数据处理装置300的示例(分别被称为通道O和通道I一一通道I也被称为“第一处理通道”,通道O被称为“第二处理通道”)。每个处理通道具有流水线4-0,4-1,用于处理互相之间并行的微操作。通道O如图2所示排列。备忘表24包括在流水线前端的阶段S。处的标签部分24-1和在流水线4-0的结束阶段Sn+1处的数据部分24-2。通道O以与图2的流水线一样的方式操作。如果由通道O接收到的当前微操作在表24内有击中,则与门26无效通道O的使能信号10-0,以便包含该微操作的流水线阶段被时钟关闭,并且击中信号和相匹配的表条目的行号一起生效,以触发流水线结束阶段从表的数据部分24-2中选择合适的结果。或门28-0接收击中信号和使能信号,并且当这两个信号中的一个是高位时,输出有效信号。如图2,存在锁定机制用于确保与当前执行的微操作相关联的表条目在他们被使用之前不会被重写。
[0107]图14与图2不同的是,备忘表24在通道O和通道I之间被共享。通道I以与通道O —样的方式与表进行交互。但是,由于两个通道共享同一个表,因此他们查找同样的条目,并且表基于由通道O和通道I产生的结果被更新。这允许其中一个处理通道内的
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1