[发明专利]映射电路和方法无效
申请号: | 01104915.4 | 申请日: | 2001-02-23 |
公开(公告)号: | CN1310386A | 公开(公告)日: | 2001-08-29 |
发明(设计)人: | 奈杰尔·P·托帕姆 | 申请(专利权)人: | 斯罗扬有限公司 |
主分类号: | G06F9/40 | 分类号: | G06F9/40 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 | 代理人: | 罗亚川 |
地址: | 英国*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 映射 电路 方法 | ||
本发明涉及用于完成一个从一个输入值到一个输出值的快速映射的电路和方法。本发明能够应用于一台微处理机的诸流水线循环中的寄存器更名。
在高性能的计算中,在诸软件-流水线循环的情况下出现对循环寄存器更名的需要,其中通常需要目标机(例如微处理机)有一个高的指令执行速率。执行时间常常受到在应用程序内的诸循环结构的控制。为了允许有一个高的指令执行速率,一台微处理机可以包括多个单独的执行装置,每个单独的执行装置都能够与诸其它的执行装置执行诸指令平行地执行一个或多个指令。
能够用这样的多个执行单元提供一个由多个单独的阶段组成的所谓的软件流水线。每个软件流水线阶段与诸特定的执行单元都没有固定的物理的对应关系。宁可,当对在一个应用程序内的一个循环结构进行编译时,根据一个软件流水线调度,对形成循环的一次单独迭代的诸机器指令进行调度,以便由诸不同的执行单元来执行这些指令。将这个调度分成诸连续的阶段,并用这样一种允许诸不同的执行单元以重叠的方式执行多个指令的方法来调度诸指令,诸不同的执行单元有一个在诸连续的迭代的诸初始时间之间的选出的循环初始间隔。这样,当一个迭代i的一个第一个阶段终止并且该迭代进入一个第二个阶段时,在迭代i+1的一个第一个阶段中开始执行下一个迭代i+1。于是,与在迭代i的第二个阶段中诸指令的执行平行地执行在迭代i+1的第一个阶段中的诸指令。
在这些软件流水线循环中典型地在每个时刻在一个部分完成的状态中有一个循环的若干次迭代。所以,可以有在循环中计算的每个值的若干个纸拷贝。为了在这些值之间进行区别和为了关于当前的迭代识别它们,要求保存在寄存器中的每个值的名字必须当循环执行期间在诸明确定义的时刻发生改变。编译器知道这些更名点,编译器也确定在每个指令内需要的寄存器名字,以便存取与在其中它被计算的迭代有关的每个值。
依据在每个汇编代码指令内的诸寄存器标识符,一个保存在一个寄存器中的值的名字对于程序员或编译器是已知的。静态寄存器更名的目的是为了定义一个方案,从而根据程序员或编译器能够预测的一个翻译方案在运行时间中将这些标识符翻译成诸实际的寄存器号码。
例如,如果在迭代1中将一个值X分配给寄存器r1,则一个典型的更名方案将使那个值可以被在迭代2中的寄存器r2,在迭代3中的寄存器r3等利用。编译器或程序员的责任是以一种保证循环能正确工作的方式将诸寄存器标识符分配给每一个值。
在诸软件流水线循环中通常有诸循环变量值,即必须在循环的每个不同的迭代中重新计算的诸表达式,它们必须在流水线的诸不同的指令之间进行传达。为了处理这样一些循环变量值可以将它们存储在一个所谓的旋转寄存器文件中。在这种情形中,给每个循环变量值分配一个在旋转寄存器文件内的逻辑寄存器号码,并且这个逻辑寄存器号码从一次迭代到下一次迭代是不变的。在旋转寄存器文件中将每个逻辑寄存器号码映射到在寄存器文件内的一个物理寄存器,每次开始一个新的迭代,即,每次关闭一条流水线边界时,都要旋转这个映射。因此,在诸不同的迭代中的诸对应的指令都能够涉及同一个逻辑寄存器号码,使诸被编译的指令变得简单,同时避免由一次迭代产生的一个值被一次不同的迭代的一个以后执行的指令所重写。
有了在工作中的这样一个寄存器更名方案,在处理机能够执行一个指令前,对于在一个软件流水线循环内的每个寄存器存取,首先必须完成一个寄存器映射过程,将诸寄存器标识符翻译成诸实际的寄存器号码。这个映射是在运行时间中完成的,因此对在一个时间极其重要的活动中的处理机提出诸额外的时间要求。所以,我们希望完成这个映射所需的时间尽可能地短。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于斯罗扬有限公司,未经斯罗扬有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/01104915.4/2.html,转载请声明来源钻瓜专利网。