浮点状态与控制寄存器指令的单周期直接执行方法与系统的制作方法

文档序号:6414758阅读:285来源:国知局
专利名称:浮点状态与控制寄存器指令的单周期直接执行方法与系统的制作方法
技术领域
本发明涉及用于执行浮点状态与控制寄存器(“FPSCR”)指令的方法与系统,更具体地涉及以较少延迟执行FPSCR指令及允许对称浮点执行流水线的直接执行FPSCR指令的方法与系统。
诸如ANSI/IEEE标准754-1985二进制浮点算术运算IEEE标准(“IEEE标准”)等传统浮点标准要求为各种可能出现的异常提供状态标志。例如,必须为数据溢出提供状态标志。在置位时,该状态标志指示已出现了指定的异常。
诸如IEEE标准等一些传统的标准还规定用户应能单个地测试及改变状态标志。此外,IEEE标准规定用户应能一次性保存与恢复所有状态标志。
一些传统的系统利用浮点状态与控制寄存器(“FPSCR”)来存储状态标志。FPSCR是受FPSCR指令控制的。FPSCR读指令允许系统从FPSCR读取或传送数据。类似地,FPSCR写指令允许系统向FPSCR传送数据。例如,FPSCR可用一组6条FPSCR指令控制。这些指令中的四条向FPSCR写入或传送数据。其余两条FPSCR指令从FPSCR读取或传送数据。
传统浮点系统通过将FPSCR指令整个放在浮点执行单元流水线上来实现FPSCR指令。然而,FPSCR指令通常是由与流水线串行设置的FPSCR执行逻辑执行的。换言之,FPSCR执行逻辑通常设置在浮点执行逻辑后面。然而,附加的专用FPSCR逻辑必须设置在流水线中以允许FPSCR指令通过流水线。
如果传统的系统是对称的,便将用于传递FPSCR指令通过流水线的专用FPSCR逻辑设置在两条流水线中。由于流水线是简单地复制的,具有对称流水线的系统设计较简单。然而,由于FPSDR指令比浮点指令的出现较少,流水线中的专用FPSCR逻辑将是较大地不使用的。此外,由于FPSCR指令仍需要串行化,附加的专用FPSCR逻辑提供很小的性能提高。
在采用对称流水线时,各对称流水线可具有设置在流水线的浮点执行逻辑后面的其本身的FPSCR执行逻辑。然而,流水线也可共用设置在两个浮点执行单元后面的FPSCR执行逻辑。使对称浮点执行单元只带一个与两条流水线串行的FPSCR执行逻辑存在着缺点。这便是,由于FPSCR指令能从任何一条流水线输入到FPSCR执行逻辑而使FPSCR执行逻辑更复杂。因而,FPSCR执行逻辑必须能确定哪一条流水线提供FPSCR指令并计算任何定时差别。
其它传统系统采用不对称浮点流水线。在这种系统中,FPSCR指令只发布给一定的流水线。从而,只有这些流水线包含通过流水线传递FPSCR指令的专用FPSCR逻辑。因为所有FPSCR指令是通过单一流水线传递的,该流水线中的专用FPSCR逻辑比各对称流水线中的专用FPSCR逻辑使用得更频繁。此外,因为只有有限数目的流水线,诸如单一流水线,将FPSCR指令提供给FPSCR执行逻辑,FPSCR执行逻辑较不复杂。然而,如上所述,因为不能简单地通过复制单一执行流水线来设置系统,不对称流水线在设计上增加了复杂性。
不论系统中的浮点执行单元流水线是否对称,FPSCR指令执行可导致多周期延迟。这是因为FPSCR指令为串行化指令。为了正确地运行,串行化指令必须使流水线的至少一部分是空闲的。FPSCR指令后面通常跟随一系统浮点指令。FPSCR指令是串行化的因为它可能改变后面的浮点指令所依赖的FPSCR中的设置。结果,FPSCR指令要求FPSCR指令后面的一部分流水线在执行期间是空闲的。如果这部分流水线不空闲,后面的指令有可能访问FPSCR中的不正确的设置。
由于在FPSCR指令的执行期间流水线中的各级必须保持开放且浮点流水线通常是深的,每一条FPSCR指令会引入多周期延迟。从而,虽然FPSCR执行逻辑能相对快地执行FPSR指令,当FPSCR指令通过流水线时还是引入了延迟。对于具有许多级的传统浮点流水线,这一延迟是较大的。
从而,所需要的是具有减少延迟的执行FPSCR指令的系统与方法。如果该方法允许对称浮点执行流水线而使流水线设计更简单,这也是有利的。本发明致力于解决这一需求。
本发明提供用于在处理器中提供串行化指令的直接执行的方法与系统。该处理器具有串行化指令及非串行化指令。该处理器包含具有用于执行非串行化指令的流水线的执行逻辑。该处理器还包含与执行逻辑分开的执行串行化指令的逻辑。该方法与系统包括识别串行化指令,识别非串行化指令,将非串行化指令提供给执行逻辑及将串行化指令提供给分开的逻辑。执行串行化指令而不将串行化指令提供给流水线。
按照这里公开的系统与方法,本发明提供FPSCR指令的直接与更快速执行。减小了FPSCR指令引起的延迟,从而提高了总体系统性能。此外,对称浮点流水线是可能的,使系统设计更简单。


图1为包含浮点单元的处理器的高层框图。
图2为按照本方法与系统的浮点单元的高层框图。
图3为描述按照本方法与系统的执行FPSCR指令的系统的实施例的框图。
本发明涉及浮点状态与控制寄存器(“FPSCR”)指令的执行中的改进。以下的描述是为了使本技术中的普通技术人员能作出与利用本发明而提出的,并且是在专利申请及要求的上下文中提供的。对于熟悉本技术的人员对较佳实施例的各种修改将是显而易见的,并且这里的通用原理可应用在其它实施例上。从而本发明的意图不限于所示的实施例而是与这里描述的原理与特征相容的最广范围一致的。
图1为用于按照本发明处理信息的处理器系统10的一些相关部件的框图。在较佳实施例中,处理器10为一个集成电路超标量微处理器。从而,如下面进一步讨论的,处理器10包括各种单元、寄存器、缓冲器、存储器及其它部件,它们都是用集成电路构成的。如图1中所示,处理器10包括多个执行部件,其中包含浮点单元14及整数单元16。
图2更详细地描述浮点单元14。浮点单元14包含各具有一个浮点执行流水线的两个浮点执行单元FPUA38与FPUB40。此外,浮点单元14具有包含状态标志的FPSCR37。
通过指令取出/调度单元30将要执行的指令提供给浮点单元14。指令取出/调度单元30将指令放置在浮点队列(“FPQ”)34中。在较佳实施例中,FPQ34为推测的无次序队列。浮点运算指令与浮点状态与控制寄存器指令都放在FPQ34中。FPSCR指令控制FPSCR37。
将FPQ34中的FPSCR指令分派给FPUA38与FPUB40供对应的FPUA38或FPUB40的浮点执行单元流水线处理。FPSCR指令通过的浮点执行单元流水线必须包含将FPSCR指令传递通过流水线的专用逻辑。如果,例如将专用的FPSCR指令逻辑设置在FPUA38与FPUB40两者上,则对称流水线将设置有携带FPSCR指令的各流水线。如果只在FPUA38与FPUB40之一中设置专用逻辑,则流水线是不对称的且只有单一流水线携带FPSCR指令。
一旦专用逻辑将FPSCR指令传递通过了FPUA38或FPUB40的流水线,便能由与FPUA38或FPUB40串行设置的FPSCR执行逻辑执行该FRSCR指令。如果FPUA38与FPUB40的流水线是对称的,则FPUA38与FPUB40可以具有设置在其每一个后面的FPSCR执行逻辑或者FPUA38与FPUB40能共用一个FPSCR执行逻辑。如果FPUA38与FPUB40的流水线是不对称的,则只能在FPUA38或FPUB40之一后面设置FPSCR执行逻辑。
FPSCR指令是串行化的,要求FPSCR指令后面的一部分浮点执行单元流水线必须为要执行的FPSCR指令开放。此外,FPSCR指令通常是一系列指令的第一条指令。通常,在这一系列指令之前流水线的级是开放的。结果,在FPSCR指令之前流水线通常是开放的。
虽然通过将FPSCR指令传递通过浮点执行单元流水线能执行FPSCR指令,本技术的普通技术人员会理解以这一方式执行FPSCR指令会导致多周期延迟。因为FPSCR指令是串行化的,在FPSCR指令的执行期间该FPSCR指令后面的一部分流水线必须保持开放。在FPSCR指令完成之前不能开始执行后面的浮点指令,从而导致延迟。通常,浮点执行单元流水线是相对地深的,导致这些延迟为若干周期。
如果提供了对称流水线,FPSCR可通过任一流水线,并只是偶而将专用FPSCR逻辑用于将FPSCR指令传递通过该流水线。这便是,由于各流水线只接收FPSCR指令总量的一部分,而只将传递FPSCR指令通过流水线的专用FPSCR逻辑用于发布的FPSCR指令的一部分。由于FPSCR执行逻辑可能需要判定哪一流水线正在提供FPSCR指令而也要将FPSCR执行逻辑制造得更复杂。如果提供了不对称流水线,专用FPSCR逻辑的利用率较高,但流水线的设计变得更复杂。对称与不对称流水线都遭受FPSCR指令导致的延迟。
本发明提供在处理器中直接执行FPSCR指令的方法与系统。该处理器具有串行化指令与非串行化指令。该处理器包含具有用于执行非串行化指令的流水线的执行逻辑。该处理器还包含与该执行逻辑分开的用于执行串行化指令的逻辑。该方法与系统包括识别串行化指令,识别非串行化指令,将非串行化指令提供给执行逻辑,及将串行化指令提供给该分开的逻辑。执行串行化指令而不将该串行化指令提供给流水线。
下面对拥有两条执行流水线的浮点单元描述本发明。然而,本技术中的普通技术人员容易理解本方法与系统对其它类型的串行化指令以及拥有其它数目流水线的浮点单元也能高效的操作。此外,较佳实施例包含双执行单元及各两级深的两条流水线。但并不阻止使用其它数目的执行单元或流水线,或其它深度的流水线。
为了更具体地说明按照本发明的方法与系统,参见图3,其中描绘了这一系统的实施例100的框图。图2中已描绘了系统100的许多部件。这些部件与图2中的对应部件是类似地加以标记的。例如,在图2与图3中都将FPQ标记为FPQ34。
FPQ34中包含FPSCR与浮点指令两者。与传统的系统不同,FPQ34并不提供FPSCR指令给FPUA38或APUB40之一的流水线。FPUA38与FPUB40都不包含用于将FPSCR指令传递通过流水线的专用FPSCR逻辑。结果,FPUA38与FPUB40的流水线是对称的,至少相对于它们都没有用于将FPSCR指令传递通过流水线这一点而言。
不是将FPSCR指令传递通过浮点流水线之一,FPQ34将FPSCR指令直接提供给分开的FPSCR执行逻辑110。结果,系统100直接执行FPSCR指令。此外,如上所述,FPSCR执行逻辑110在流水线FPUA38或FPUB40之一中并不需要用于将FPSCR指令传递通过流水线的专用逻辑。
FPSCR执行逻辑110执行FPSCR指令,根据该FPSCR指令更新FPSCR20、FPR阵列44或控制寄存器120之一。FPSCR执行逻辑110能在单个周期中执行FPSCR指令而不需要该FPSCR指令后面的一部分流水线开放。从而,减少了由传递FPSCR指令通过浮点执行流水线引起的延迟。
为了确保所有指令的正确执行,FPQ34仍将FPSCR指令作为串行化指令对待。换言之,FPSCR指令仍不得改变前面分派的浮点指令可能使用的FPSCR37中的设置值。从而,在较佳实施例中,在前面分派的浮点指令完成执行并在结构上交付之前,FPQ34并不发布FPSCR指令。如果PFQ34并不将FPSCR指令作为串行化的对待,FPSCR指令有可能改变前面的浮点指令所依赖的设置值。这便是,在发布该FPSCR指令之前,如果前面的浮点指令没有结构上交付,则前面的浮点指令有可能使用不正确的数据。从而,较佳实施例只在已经执行了并且结构上交付了前面分派的浮点指令之后才发布FPSCR指令。因为FPSCR指令前面通常没有浮点指令,而是后面跟随一系列浮点指令,本较佳实施例的这一特性通常并不影响系统100性能。
所提供的FPSCR指令传送数据到FPSCR执行逻辑110中的浮点状态与控制寄存器(“MTFPSCR”)逻辑114。FPSCR指令的源数据由FPR阵列44提供。MTFPSCR逻辑114将用户提供的源或数据(称作立即数据)与适当的FPSCR值合并。
MTFPSCR逻辑114将合并的结果提供给选择器116。在较佳实施例中,选择器116为一个多路复用器。当有效的FPSCR指令引发MTFPSRC逻辑114提供合并的结果时,选择器116选择来自MTFPSCR逻辑114的输出以便写入FPSCR20中。如果系统由于有效的浮点运算指令而访问FPSCR20,则选择器116选择来自执行单元状态标志合并逻辑112的输出。FPQ34与FPSCR执行逻辑110之间的这一协作使FPSGR指令能在单个周期中执行。
在较佳实施例中,FPSCR执行逻辑110还执行将数据从FPSCR20传送到诸如控制寄存器120或FPR阵列44的FPSCR指令。当将数据从FPSCR20传送到控制寄存器120时,FPSCR执行逻辑从FPSGR20中读取数据,将数据传送到控制寄存器120,并将数据重写到FPSCR20中。MTFPSCR逻辑114提供FPSCR20的复位,并将适当的数据从FPSCR20提供给控制寄存器120,结果,FPSCR执行逻辑110能用来在单一周期中执行所有的FPSCR指令,而没有由将FPSCR指令传递通过浮点执行单元流水线引起的延迟。
已公开了用于直接执行FPSCR指令的方法与系统。由于本系统与方法采用分开的FPSCR执行逻辑110来执行FPSCR指令,FPSCR指令是在单一周期中执行的。通过绕过执行单元流水线,本方法与系统在执行FPSCR指令所需的周期数上提供了显著的改进。例如,在具有双重两深度的浮点执行流水线的较佳实施例中,对于FPSCR指令传统的方法会有两个周期的执行等待时间。反之,本方法与系统达到一个周期的执行等待时间。如果将本方法与系统用在具有更深的流水线的处理器上,便能达到延迟的更大减少。此外,本方法与系统允许处理器具有对称的流水线而没有专用的FPSCR逻辑将FPSCR指令传递通过流水线。从而,简化了多浮点执行流水线的设计。
虽然已按照所示的实施例描述了本发明,本技术中的普通技术人员将容易理解可以对实施例进行改变,这些改变是在本发明的精神与范围内的。从而,本技术中的普通技术人员可作出许多修改而不脱离所附权利要求书的精神与范围。
权利要求
1.一种提供在处理器中直接执行串行化指令的系统,该处理器包含具有执行非串行化指令的流水线的执行逻辑,该系统的特征在于包括与执行逻辑分开的用于执行串行化指令的逻辑;以及耦合在该分开的逻辑与执行逻辑上的指令队列,用于存储串行化与非串行化指令,将非串行化指令提供给执行逻辑,及将串行化指令提供给分开的逻辑,从而串行化指令是不提供给流水线而执行的。
2.权利要求1的系统,其特征在于对于将串行化指令提供给分开的逻辑以前提供给执行逻辑的非串行化指令,指令队列在执行逻辑完成了非串行化指令的执行之后才提供串行化指令给分开的逻辑。
3.权利要求2的系统,其特征在于还包括浮点状态与控制寄存器(“FPSCR”);以及该串行化指令为FPSCR指令而非串行化指令为浮点指令。
4.权利要求3的系统,其特征在于分开的逻辑包括用于提供第一结果的传送逻辑,如果串行指令写到FPSCR则将第一结果提供给FPSCR。
5.权利要求4的系统,其特征在于FPSCR包含多个状态标志;以及该分开的逻辑包括耦合在执行逻辑上的用于在出现异常时提供第二结果的状态标志逻辑;耦合在传送逻辑、状态标志逻辑与FPSCR上的选择器装置,如果写入到FPSCR的串行化指令是有效的,选择器装置用于提供第一结果,如果串行化指令无效,选择器装置用于提供第二结果。
6.权利要求5的系统,其特征在于该选择器装置为多路复用器。
7.权利要求6的系统,其特征在于该执行逻辑包括多个执行单元,各执行单元具有一条执行单元流水线。
8.权利要求7的系统,其特征在于该处理器包含时钟;以及该分开的逻辑在该时钟的单个周期中执行串行化指令。
9.一种用于提供在处理器中直接执行串行化指令的方法,该处理器包含具有用于执行非串行化指令的执行逻辑,及与执行逻辑分开的用于执行串行化指令的逻辑,该方法的特征在于包括下述步骤a)识别串行化指令;b)识别非串行化指令;c)将非串行化指令提供给执行逻辑;及d)将串行化指令提供给分开的逻辑,从而该串行化指令是不提供给流水线而执行的。
10.权利要求9的方法,其特征在于当步骤c)在步骤d)前面时,步骤d)包括d1)在将串行化指令提供给分开的逻辑之前等待直到完成了非串行化指令的执行为止。
11.权利要求10的方法,其特征在于该处理器还包括浮点状态与控制寄存器(“FPSCR”);该串行化指令为FPSCR指令;及该非串行化指令为浮点指令。
12.权利要求11的方法,其特征在于该处理器包含时钟,以及该方法还包括在该时钟的单个周期中执行串行化指令的步骤。
全文摘要
公开了一种提供在处理器中直接执行串行化指令的方法与系统。该处理器具有串行化指令及非串行化指令。该处理器包含具有用于执行非串行化指令的流水线的执行逻辑。该处理器也包含与执行逻辑分开的用于执行串行化指令的逻辑。该方法与系统包括识别串行化指令,识别非串行化指令,将非串行化指令提供给执行逻辑,及将串行化指令提供给分开的逻辑,执行串行化指令而不将串行化指令提供给流水线。
文档编号G06F9/32GK1225470SQ98125969
公开日1999年8月11日 申请日期1998年12月31日 优先权日1998年2月2日
发明者C·H·奥尔森, J·S·布鲁克斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1