单精度浮点数据存储方法和处理器的制作方法

文档序号:6468154阅读:114来源:国知局
专利名称:单精度浮点数据存储方法和处理器的制作方法
技术领域
本发明涉及处理器以及在处理器中使用的单精度浮点数据存储方法。
背景技术
为了改善处理器的性能,具有一种旁路功能,其中当通过获得算术操 作的输入数据进行算术操作时在前一个指令的结果从算术单元输出并被 写入浮点寄存器之前,使用来自算术单元的输出数据作为后续的输入数 据。执行这种旁路功能需要用于检测对前一个指令的依赖性的电路。
与此同时,例如在SPARC-V9(SPARC:注册商标)体系结构中,浮点 寄存器的寄存器地址是5比特的。因此,可以有32个指令。图l表示在 SPARC-V9体系结构中浮点寄存器的配置。32个单精度浮点寄存器(4 字节)^^示为。/of0, %fl, %f2,…,%B0, %f31, 32个X5Ult度浮点寄存器 (8字节)^L^示为。/。d0, %d2, %d4, ..., %d62。对于双精度浮点寄存器, 其地址可以只用偶数来规定。双精度浮点寄存器。/。d(n) (0^n《30) (8字节) 的赋值对应于2个单精度浮点寄存器。/。f(n) (4字节)和。/。f(n+l) (4字节) 的合并。
假定一个单精度浮点寄存器被用作4字节寄存器, 一个双精度浮点寄 存器被用作8字节寄存器,其中合并2个单精度浮点寄存器,如SPARC-V9 体系结构中那样。例如,如果进行对寄存器。/。dO输入双精度浮点数据(8 字节)的算术操作,则必须检测寄存器% ) (4字节)和。/。fl (4字节) 的两个输出定时,以执行上述的旁路功能。结果,和只检测8字节寄存器 当中的依赖性相比,用于双精度浮点寄存器。/。dO到%d30的依赖性检测电 路需要更大量的电路。
如果处理器中的电路量增加,则不仅其成本性能而且其操作频率降 低。这导致处理器性能的劣化。因而,需要尽可能地减少处理器中的电路 的量。

发明内容
因此,本发明的目的在于,通过提出一种用于在处理单精度浮点数据 和双精度浮点数据的处理器中所使用的新的单精度浮点数据存储方法,尽 可能减少用于配置执行旁路功能的依赖性检测电路的硬件的量。
一种在包括寄存器的处理器中使用的单精度浮点数据存储方法,所述 寄存器具有可以存储双精度浮点数据的尺寸,用于存储双精度浮点数据和
单精度浮点数据,所述方法包括如果指定单精度浮点数据处理,则对所 述寄存器的高位半部分写入输入的单精度浮点数据,并对所述寄存器的低 位半部分全部写入零。
利用上述的单精度浮点数据存储方法,即使当处理单精度浮点数据处 理时,也能由双精度浮点寄存器处理单精度浮点数据。因此,用于X5Ult度 浮点寄存器的依赖性检测电路可以不加改变地用作这些寄存器的依赖性 检测电路。此外,单精度浮点数据被作为替换的单精度浮点数据处理,从 而可大大减少用于算术单元的输入寄存器的数据选择电路的量。因而,可 以减少处理器内硬件的量。结果,可以防止处理器变得复杂,从而改4# 作频率。


图1是表示SPARC-V9体系结构的浮点寄存器的配置的示意图2 ^示在本发明的实施例中使用的浮点寄存器的扩展的体系结 构的示意图3是表示替换的单精度浮点数据的格式的示意图4 A^示常规的单精度浮点数据的格式的示意图5是表示扩展的算数寄存器(XAR)的配置的示意图6是表示一种处理的流程图,该处理用于确定数据是作为常规单精 度浮点数据还是作为替换的单精度浮点数据被处理;
图7;1表示处理器的配置的方框图8是一个示意图,用于说明替换的单精度浮点指令和常规的单精度 浮点指令之间的区别;图9是表示用于处理单精度浮点算术指令的算术处理单元的数据流 的示意图10是表示用于处理单精度浮点加载指令的加载处理单元的数据流 的示意图11是用于说明在常规的单精度浮点数据处理中在提交时用于更新 浮点寄存器的处理的示意图12是用于说明在替换的单精度浮点数据处理中在提交时用于更新 浮点寄存器的处理的示意图13是表示用于处理单精度浮点存储指令的存储处理单元的数据流 的示意图14是用于说明在SPARC-V9体系结构中寄存器地址的产生的示意
图15是用于说明当处理替换的单精度浮点数据时寄存器地址的产生 的示意图16是用于表示寄存器重命名表的配置的示意图17是用于表示当在4字节的单元中管理数据时用于旁im据到算 术单元的电路的示意图;以及
图18是用于表示当在8字节的单元中管理数据时用于旁iMt据到算 术单元的电路的示意图。
具体实施例方式
下面参照

按照本发明的实施例。 首先说明按照本发明的实施例的处理器。
上面说明了在SPARC-V9中浮点寄存器的配置。下面针对按照本发 明的实施例的处理器详细说明浮点寄存器。
如图2所示,被称为扩展算术寄存器(XAR)的寄存器借助于使用扩展 前缀指令被更新,在这种处理器中,由浮点寄存器地址指示的一个区域被 扩展。即,通过修改指令以便利用扩展的前缀指令访问浮点寄存器来扩展 浮点寄存器的该区域。例如,通过增加扩展的算术寄存器(XAR)的3比特作为浮点寄存器地址,使XMt度浮点寄存器(8字节)的数量增加到256, 细节将在后面说明。
如果在具有图2所示的浮点寄存器结构的处理器中在4字节的单元 中,可以使达到256个一度浮点寄存器。/。dO到。/od510 (只用偶数编号 指定)成为可指定的,并使256个单精度浮点寄存器。/。fO到%f255成为 可指定的,则用于检测扩展寄存器的的依赖性的硬件电路变得非常大。
下面说明在具有图2所示的扩展浮点寄存器的处理器中使用的单精 度浮点数据存储方法。这种方法是作为本发明的实施例进行说明的。不过, 本发明不限于下面所述的实施例,自然,在不脱离本发明的构思的范围内, 可以用多种方式应用本发明。即,可以在具有任何结构的处理器中实施按 照本发明的单精度浮点数据存储方法,而不受实施例中所述的处理器结构 的限制。
在本实施例中,当利用扩展的算术寄存器(XAR)扩展单精度浮点 指令时,规定数据以下述方式写入目的寄存器在作为双精度浮点数据长 度的8字节长的寄存器的高位4字节存储单精度浮点数据,并在低位4 字节全部存储零。下面把用这种格式存储的单精度浮点数据称为"替换的 单精度浮点数据"。替换的单精度浮点数据的格式如图3所示。
与此相对,单精度浮点数据,其4个字节通常被存储在浮点寄存器中, 下面称为常规单精度浮点数据。常规单精度浮点数据的格式如图4所示。
如上所述,单精度浮点数据被配置使得可以作为替换的单精度浮点数 据,即在本实施例中为8字节数据,被存储。结果,可以利用在SPARC-V9 中通常规定的寄存器。/。d32到%d62以及,定要通过扩展的算术寄存器 (XAR)扩展的寄存器% d64到% d510,进行单精度浮点算术操作。
此外,当利用扩展的算术寄存器(XAR)修改单精度浮点指令时,也用 类似方式配置其地址小于。/。d32的寄存器,4吏得可以作为8字节的替换的 单精度浮点数据寄存器被利用。即,在寄存器。/。d0到。/。d30 (8字节长, 仅偶数编号是可指定的)的高位4字节中存储单精度数据,在其低位4 字节中全部存储零。
按照下述方式确定是通过使用4字节32个寄存器% )到%f31作为 常规单精度浮点数据还是作为替换的单精度浮点数据M储数据。
首先,在一个指令集中定义用于更新扩展的算术寄存器(XAR)的名称为SXAR(集XAR)的指令。
扩展的算术寄存器(XAR)具有图5所示的配置。图5所示的VAL (有 效比特)具有l比特宽的值,并且如果VAL被设置为"1"(VAL=1),则 表示该扩展的算术寄存器是有效的。RD是存储用于指定扩展指令的目的 寄存器的地址的扩展的3比特的字段。此外,RS1-RS3分别是地址扩展 字段,存储用于指定源寄存器的地址的扩展的3比特。这3比特用作现有 指令中不足的高位3比特,以便使浮点寄存器的数量增加到256。即,如 果扩展的算术寄存器(XAR)的VAL (有效比特)被设为"1",则通过使用 扩展地址和浮点指令的操作数寄存器地址的5比特,可以指定多达256 个8字节(XMt度)寄存器。
在这种XAR配置中,如果扩展的算术寄存器(XAR)的VAL (有效比 特)通过上述的SXAR指令被设为"1",则可以确定单精度浮点处理指 令被修改(扩展),或者,如果有效比特未被设置为"1",则可以确定单 精度浮点处理指令未被^务改。
图6是一个流程图,表示用于确定是作为常规的单精度浮点数据还是 作为替换的单精度浮点数据存储数据的处理。首先,在步骤S51,单精度 浮点指令被译码。在步骤S52,确定扩展的算术寄存器(XAR)的VAL (有 效比特)是否被设为"1"。如果在步骤S52确定VAL被设为"1"("是"), 则通过识别浮点寄存器被扩展而作为替换的单精度浮点数据来处理数据 (步骤S53)。或者,如果在步骤S52确定VAL被设为"0"("否"),则 作为常规单精度浮点数据来处理数据(步骤S54)。
对于通过扩展的算术寄存器(XAR)成为可指定的扩展寄存器,即 使进行单精度浮点数据处理时也能如上所述使用用于检测8字节数据单 位的寄存器当中的依赖性的电路。即,可以使用用于xMt度浮点数据的常 规的寄存器依赖性检测电路,从而不需要4字节数据单位的寄存器依赖性 检测电路。
此夕卜,指令译码单元确定是要执行常规单精度浮点数据处理还是替换 的单精度浮点数据处理,例如,是要以4字节为单位还是要以8字节为单 位进行寄存器地址的产生或者寄存器更新。因此,算术处理单元、加载处 理单元和存储处理单元不需要确定数据是常规的单精度浮点数据还是替 换的单精度浮点数据。在算术处理单元、加载处理单元和存储处理单元中, 可以分别利用公共的电路进行处理。因而,不需要为这种确定而增加硬件。下面参照附图详细说明在本实施例的处理器中执行的单精度浮点寄 存器算术处理、加载指令处理和存储指令处理。
首先,图7示出了处理器的配置。
处理器60包括初级指令高速緩存61,次级高速緩存/存储单元62, 指令译码单元63,寄存器重命名表64,算术处理单元65,地址产生单元 66,重命名处理器67,加载处理单元68,存储处理单元69,定点寄存器 70,浮点寄存器71,初级数据高速緩存72,提交控制单元73,以及扩展 的算术寄存器XAR74。
初级指令高速緩存61和初级数据高速緩存72是高速緩冲存储器,而 次级高速緩存/存储单元62是常规存储器或次级高速緩冲存储器。定点寄 存器70具有常规的配置。浮点寄存器71由扩展的算术寄存器XAR 74扩 展,并具有图2所示的配置。
指令译码单元63对指令译码。寄存器重命名表64是配置有锁存器的 电路,并用于检测寄存器当中的依赖性。算术处理单元65配置有算术单 元,用于执行算术处理。地址产生单元66根据译码指令产生要被访问的 地址。重命名寄存器67是用于暂时保持由算术处理单元65执行的处理的 结果的寄存器。加载处理单元68和存储处理单元69是用于分别处理加栽 指令和存储指令的电路。提交控制单元73控制寄存器更新和存储器更新。 此外,如果由扩展的算术寄存器XAR74执行单精度浮点指令,则作为替 换的单精度浮点数据处理8字节长的单精度浮点数据。注意,在更新时在 替换的单精度浮点数据的低位4字节都存储零。
图8说明通过替换的单精度浮点指令把数据写入浮点寄存器。/。d0的 情况以及通过常规单精度浮点指令把数据写入浮点寄存器%fO的情况。假 定在浮点寄存器%(10(% )和。/。fl)中分别预存储o/。fO-X, %fl=Y的状态 下,写入单精度浮点数据Z。在这种情况下,如果数据通过替换的单精度 浮点指令写入,则% )=2, %打="都为零",或者如果数据通过常规单精 度浮点指令写入,则寄存器。/。f0被更新为。/。fO-Z,寄存器。/。fl不被更新 而保持为Y。
下面首先说明常规单精度浮点算术操作和加栽指令以及替换的单精 度浮点算术操作和加载指令,其旨在把单精度浮点数据写入浮点寄存器中。图9表示用于处理单精度浮点算术指令的算术处理单元的数据流。如 图所示,在浮点算术处理单元65中,从用于控制指令的指令译码单元63 接收指令操作码,并对该指令操作码进行操作码if^码84。如果作为译码 结果命令执行单精度浮点算术操作,则浮点算术单元81只使用由输入寄 存器82输入的数据的高位4字节来执行算术操作,而忽略低位4字节。 然后,浮点算术单元81作为高位4字节输出算术操作的结果,并且还输 出零作为低位4字节。这8个字节暂时(once)被存储在算术输出寄存器 83中,并在下一个周期被写入重命名寄存器67。
图10示出了用于处理单精度浮点加载指令的加载处理单元的数据 流。如果从用于控制指令的指令译码单元63收到以4字节为单位加载数 据的指令,则M储器加载数据的初级数据高速緩存72在加载输出寄存 器91的高位4字节暂时存储高速緩冲存储器的数据,并且如图10所示还 在低位4字节存储全部零。在下一个周期,根据地址产生单元66指定的 地址,总共8个字节的数据从加载输出寄存器91被写入重命名寄存器67。
指令译码单元63对单精度浮点指令是否通过扩展的算术寄存器XAR 74来修改进^f码。指令i^码单元63产生并向图9所示的算术处理单元 65和图10所示的加载处理单元68传送常规单精度浮点指令和替换的单 精度浮点指令的相同的操作码。这些处理单元分别接收这个操作码并执行 其单精度浮点处理。至于处理单元分别执行图9和图10所示的单精度浮 点算术处理和加载处理,它们不需要通it^t常规单精度浮点处理和替换的 单精度浮点处理之间进行确定来执行它们的处理。
由指令译码单元63进行关于是执行常规单精度浮点处理还是替换的 单精度浮点处理的控制。
写入常规单精度浮点数据即4字节数据的情况和写入替换的单精度 浮点数据即8字节数据的情况分别示于图11和图12,下面参照这些图进
行说明。
在常规单精度浮点算术指令或常规单精度浮点加载指令的情况下,指 令译鸡单元63命令提交控制单元73,其发出一个4字节的寄存器更新指 令,将4字节写入浮点寄存器71中,这更新浮点寄存器。与此相对,在 替换的浮点算术指令或替换的浮点加载指令(或者X5UJt度浮点算术指令或 双精度浮点加载指令)的情况下,指令译码单元63命令提交控制单元73 对浮点寄存器71写入8字节。在提交控制单元和寄存器文件单元中,8字节写入指令与用于写双精度浮点数据的常规处理的8字节写入指令相 同。
提交控制单元73具有1比特用于记录这些指令,即,要对浮点寄存 器进行4字节写入还是进行8字节写入(图ll和图12所示的8字节长度 比特)。当提交指令时,根据这l比特的信息,从存储算术操作结果或加 载结果的重命名寄存器67的高位字节向浮点寄存器写入指定长度的数 据。
在图11的提交控制单元73的各组元枕故大的部分中,浮点写比特= "1", 8字节长度比特="0"。如果要被写的浮点寄存器的地址是偶数编 号,则重命名寄存器67的高位4字节的数据被写入8字节浮点寄存器的 高位4字节。可替选地,如果要被写的浮点寄存器的地址是奇数编号,则 向8字节浮点寄存器的低位4字节写入重命名寄存器67的高位4字节的 数据。
此夕卜,在提交控制单元73的各组元枕故大的图12的部分中,浮点写 比特- "1", 8字节长度比特="1"。重命名寄存器67的高位4字节的 数据被写入要被写的8字节浮点寄存器的高位4字节,重命名寄存器67 的低位4字节的数据被写入8字节浮点寄存器的低位4字节。
下面说明常规单精度浮点存储指令和替换的单精度浮点存储指令,它 们对高速緩冲存储器写入单精度浮点数据。
用于处理单精度浮点存储指令的存储处理单元69的数据流如图13 所示。在存储处理单元69中,也执行通常的处理,而不管存储指令是常 规单精度浮点存储指令还是替换的单精度浮点存储指令。即,响应于单精 度浮点存储指令,存储处理单元69从浮点寄存器71读出存储的数据,并 使要被存储的4字节数据对准并写入存储緩冲器121的高位4字节,存储 緩冲器121是对于每个存储指令指定的,并且存在于存储处理单元69中。 存储的数据的低位4字节可以是^^T数据,因为当被写入高速緩冲存储器 时,这些字节被忽略。
存储器地址产生单元75产生存储器地址,并把产生的地址传送到存 储处理单元69。
指令译码单元63译码常规单精度浮点存储指令和替换的单精度浮点 存储指令,通过把写入高速緩冲存储器的长度设置为4字节,这些指令把单精度浮点数据写入高速緩冲存储器。用于存储数据的地址被传送给存储
緩冲器121,与此同时,传送存储长度信息(4字节)。当提交存储指令时, 从提交控制单元73 M储提交指令信号传送到存储处理单元69,该信号 对于常规单精度浮点存储指令和替换的单精度浮点存储指令是共同的。按 照这个指令,存储处理单元69执行对高速緩冲存储器(初级数据高速緩 冲存储器72)写入存储的数据的高位4字节的处理。当处理单精度浮点 存储指令时,执行和上^目同的操作,而不在存储处理单元69和提交控 制单元73中在常规单精度浮点存储指令和替换的单精度浮点存储指令之 间进行确定。指令是常规单精度浮点存储指令还是替换的单精度浮点存储 指令,取决于产生要读取的寄存器地址的方式。
下面说明由指令译码单元63进行的寄存器地址的产生。对于通过扩 展的算术寄存器(XAR)修改的所有单精度浮点指令(算术指令、加载指令 和存储指令),寄存器地址的产生是共同的。附带说明,指令译码单元63 不仅对通过扩展的算术寄存器XAR 74修改的单精度浮点指令产生寄存 器地址,而且对常规单精度浮点指令产生寄存器地址。
图14是用于说明在SPARC-V9的体系结构中寄存器地址的产生的示 意图。该图表示在操作码的寄存器地址字段和寄存器地址编号之间的对应 关系。根据这些对应关系产生寄存器地址。对于SPARC-V9体系结构, 在由单精度浮点寄存器中的指令操作码的5位寄存器地址字段所表示的 寄存器地址的位分配(bit assignment)与双精度浮点寄存器中的存在差 别。如果使用常规单精度浮点寄存器,则指令操作码的寄存器地址字段与 被命令的寄存器编号匹配,所述寄存器编号指示从0到31。对于使用双 精度浮点寄存器的指令,寄存器地址字段的比特[0被移动到寄存器地址 比特[5,并且寄存器地址比特[0总被设置为"0"。即,可以只以偶数编 号指令XMt度浮点寄存器地址,其范围从0到62。
图15是用于说明当处理替换的单精度浮点数据时寄存器地址的产生 的示意图。根据扩展的算术寄存器XAR 74的有效比特是否被设置为1, 如图6所示,确定是否处理替换的单精度浮点数据。如果处理8字节的替 换的单精度浮点数据,其在被更新时所有的零被存储在低位4字节,则如 上所述在算术处理单元65、加载处理单元68和存储处理单元69中作为 单精度浮点数据处理输入和输出的数据。不过,如果进行从指令操作码的 寄存器地址字段到物理寄存器地址的转换,则按照双精度浮点寄存器的转 换方法进行这种转换。即,对于替换的单精度浮点,只指令偶数编号的寄存器地址。在图2所示的处理器中,寄存器被扩展到256个,可以规定寄 存器地址为0到510 (仅偶数编号)。
如上所述,当处理常规单精度浮点数据时,指令译码单元63产生寄 存器地址,当处理替换的单精度浮点数据时,其也产生寄存器地址。
已经说明了本实施例中的处理器的操作,这些操作是按照单精度浮点 算术指令、单精度浮点加载指令和单精度浮点存储指令进行的。
下面说明用于检测指令之间的数据依赖性的机制。 寄存器重命名表的配置示于图16。
在执行无顺序处理的处理器中,进行用于检测寄存器当中的依赖性的 寄存器重命名。对于更新浮点寄存器的常规单精度算术指令,必须以4 字节为单位进行寄存器重命名,或者对于替换的浮点算术指令,必须以8 字节为单位进行寄存器重命名。为了进行寄存器重命名,需要用于表示每 个寄存器是否处于写未决状态的1比特,以及用于保持被重命名的重命名 寄存器的最新地址的表。 一般地说,该表在处理器中必须以高的速度被参 考和更新。因此,该表在接近指令译码电路的位置配置有锁存电路。与配 置有锁存电路的该表的参考和更新有关的电路规模的减小能够大大改善 处理器的操作频率。在SPARC-V9体系结构中,寄存器% )到%01,即 %d0到%d30必需被分配4字节长寄存器的重命名寄存器编号,并需要用 于保持%加到%d30的32个寄存器的重命名寄存器编号的表。与此同时, 寄存器%d32到%d510被分配给8字节长寄存器的重命名寄存器编号。因 此,需要用于保持240个寄存器的重命名寄存器编号的表。这是因为寄存 器。/。d32到。/。d510通过把单精度浮点数据看成是替换的单精度浮点数据 以8字节为单位被管理。如果规定通过使用4字节长的常规单精度浮点数 据和范围从。/。f0到%055的单精度浮点寄存器管理寄存器,则只需要用 于保持寄存器。/。f32到%055的224个重命名寄存器编号。
即,如果单精度浮点数据作为替换的单精度浮点数据被处理,则单精 度浮点数据可被存储在扩展的寄存器部分,与此同时,对于寄存器重命名 表,可以使用用于双精度浮点寄存器的依赖性检测电路。因而,不需要增 加硬件。
附带说明,如果单精度浮点数据被作为替换的单精度浮点数据处理, 也可以减少用于对算术单元输入数据的选择电路。普通处理器进行数据旁路控制,不仅从寄存器而且从算术单元的输出结果(在被写到寄存器之前) 获得算术操作的输入数据,以便快速开始执行算术处理。
当数据以4字节为单位被管理时用于算术单元的数据旁路电路以及 当数据以8字节为单位被管理时用于算术单元的数据旁路电路分别示于 图17和图18。这些图分别表示以下配置算术单元的三个输入寄存器之 一M大和显示,并且输入数据从浮点寄存器、重命名寄存器、算术单元 的输出结果以;Sj^载的结果数据当中的任何一个选择。
当执行8字节双精度浮点算术指令时,必需使用8字节数据作为输入 数据。根据程序,xMt度浮点算术操作和单精度浮点算术操作有时被混和。
假定单精度浮点数据以4字节为单位被管理,程序必须被设计使得更 新单精度浮点寄存器%f0和%fl,并在更新之后立即使双精度浮点寄存器 。/odO成为可读的。即,必须以4字节为单位选择输入数据,以便即使高 位4字节和低位4字节的数据被从不同的源输出时(例如高位4字节从算 术单元的输出结果获得,低位4字节从浮点寄存器获得),也能正确地由 硬件进行数据旁#制。因此,对于高位和低位4字节,分别需要这个电 路。图17表示这种配置。
与此同时,当以8字节为单位管理单精度浮点数据时,不单独处理高 位4字节的数据和低位4字节的数据。因此,可以执行用于合并的8字节 的数据旁路处理(图18 )。
通过用这种方式作为替换的单精度浮点数据处理单精度浮点数据,可 以大大减少用于算术单元的输入寄存器的数据选择电路的量。
如上所述,利用按照本实施例的单精度浮点寄存器数据存储方法,即 使当进行单精度浮点数据处理时,也能由双精度浮点寄存器处理单精度浮 点数据。结果,可以使用用于xMt度浮点寄存器的依赖性检测电路作为用 于检测寄存器当中的依赖性的电路。这可以使得不需要增加硬件电路。
附带说明,指令译码单元确定是JMM亍常规的单精度浮点数据处理还 是执行替换的单精度浮点数据处理,例如,是要以4字节为单位(单精度 浮点数据长度)还是以8字节为单位(替换的单精度浮点数据长度)进行 寄存器地址产生或者进行寄存器更新。此外,在算术处理单元、加栽处理 单元以及存储处理单元中,完全共同的电路可以处理两种类型的指令,例 如常规单精度浮点指令和替换的单精度浮点指令,而不在常规单精度浮点数据和替换的单精度浮点数据之间进行确定。
此外,通过作为替换的单精度浮点数据处理单精度浮点数据,可以大 大减少用于算术单元的输入寄存器的数据选择电路的量。
如上所述,利用按照本实施例的单精度浮点数据存储方法,可以减少 处理器的硬件量。因为硬件电路不变得复杂,便可以改善处理器的操作频 率,这使得能够改善处理器的性能。
附带说明,在浮点加载和存储处理中,在存储器中以4字节为单位保 持单精度浮点数据,而不管指令是常规单精度浮点指令还是替换的单精度 浮点指令。也可以处理程序的输入和输出数据,这些数据是现有的单精度 浮点数据。
至此已经详细说明了按照本发明的实施例,不过,本发明不限于上述 的实施例。已经说明了对其中浮点寄存器区域被扩展的处理器应用按照本 实施例的单精度浮点数据存储方法。不过,这种方法可用于具有任何配置 的处理器,而不限于其中浮点寄存器区域被扩展的处理器。
如上所述,利用按照本发明的单精度浮点数据存储方法,即使在处理 单精度浮点数据时,也能利用8字节双精度浮点寄存器处理单精度浮点数 据。因此,可以使用用于xMt度浮点寄存器的依赖性检测电路,而不改变 为用于这些寄存器的寄存器依赖性检测电路。这使得不需要增加作为依赖 性检测电路的硬件。
权利要求
1.一种在包括寄存器的处理器中使用的单精度浮点数据存储方法,所述寄存器具有可以存储双精度浮点数据的尺寸,用于存储双精度浮点数据和单精度浮点数据,所述方法包括如果指定单精度浮点数据处理,则对所述寄存器的高位半部分写入输入的单精度浮点数据,并且对所述寄存器的低位半部分全部写入零。
2. —种在包括寄存器的处理器中使用的单精度浮点数据存储方法,所 述寄存器具有可以存储双精度浮点数据的尺寸,用于存储双精度浮点数据 和单精度浮点数据,所述方法包括如果指定单精度浮点数据处理并指定第一处理,则对所述寄存器的高 位半部分写入输入的单精度浮点数据,并对所述寄存器的低位半部分全部写入零;以及如果指定单精度浮点数据处理并指定第二处理,则对所述寄存器的高 位半部分写入输入的单精度浮点数据,并对所述寄存器的低位半部分不写入数据。
3. 如权利要求2所述的单精度浮点数据存储方法,还包括 对指令进*码,并根据该指令的译码结果执行对寄存器的写处理。
4. 如权利要求3所述的单精度浮点数据存储方法,还包括在数据被写入寄存器之前,暂时在重命名寄存器中存储对应于所述第 一处理和/或所述第二处理的lt据;如果指定第一处理,则写入重命名寄存器的数据;以及如果指定第二处理,若包括在译码结果中的寄存器的写目的地址是偶 数,则把重命名寄存器的高位半部分的数据写到寄存器的高位半部分,若 寄存器的写目的地址是奇数,则把重命名寄存器的高位半部分的数据写到 寄存器的低位半部分。
5. —种处理器,包括用于存储双精度浮点数据和单精度浮点数据的寄存器;以及控制单元,用于如果指定单精度浮点数据处理,则写输入的单精度浮 点数据到寄存器的高位半部分,并对寄存器的低位半部分全部写入零。
6. —种处理器,包括寄存器,其具有可以存储X5Ult度浮点数据的尺寸,用于存储双精度浮 点数据和单精度浮点数据;以及控制单元,用于如果指定单精度浮点数据处理并指定第一处理,则写 输入的单精度浮点数据到寄存器的高位半部分,并对寄存器的低位半部分 全部写入零,或者用于如果指定单精度浮点数据处理并指定第二处理,则 写输入的单精度浮点数据到寄存器的高位半部分,并且不写数据到寄存器 的低位半部分。
7. 如权利要求6所述的处理器,还包括 用于对指令译码的译码器,其中控制单元根据译码器对指令的译码结果来执行对寄存器的写处理。
8. 如权利要求6所述的处理器,还包括重命名寄存器,用于在数据被写入寄存器之前暂时存储对应于第一处 理或第二处理的数据;以及提交控制单元,用于设置由译码器译码的指令的控制信号和寄存器的 写目的地址,并用于提交数据在寄存器中的存储,该数据被存储在重命名 寄存器中,其中如果指定第一处理,则不变地写重命名寄存器的数据,以及如果指定第二处理,若由提交控制单元设置的寄存器的写目的地址是 偶数,则写重命名寄存器的高位半部分的数据到寄存器的高位半部分,若 寄存器的写目的地址是奇数,则写重命名寄存器的高位半部分的数据到寄 存器的低位半部分。
9. 如权利要求6所述的指定第一处理或第二处理的处理器,还包括用 于保持指定信息的第二寄存器。
10. 如权利要求9所述的处理器,其中第二寄存器是扩展的算术寄存器,并且根据该扩展的算术寄存器是 否有效来确定处理是第 一处理还是第二处理。
11. 如权利要求9所述的处理器,还包括 译码器,用于对指令进e^码,其中当译码器译码用于命令进行单精度浮点算术处理或者单精度浮点加 载/存储处理的指令时,根据第二寄存器的指定,以单精度浮点数据的单位或者以xMt度浮点数据的单位命4H卖/写寄存器地址。
12. 如权利要求9所述的处理器,还包括用于对指令译码的译码器;用于执行算术处理的算术处理单元;以及用于执行加载处理的加载处理单元,其中当译码用于命令进行单精度浮点算术处理或单精度浮点加载处理的 指令时,译码器对应于第 一处理和第二处理向算术处理单元和加载处理单 元传送共同的操作码,以及算术处理单元和加载处理单元向寄存器的高位半部分输出结果,并向 低位半部分全部输出零。
13. 如权利要求9所述的处理器,还包括用于对指令译码的译码器; 用于执行算术处理的算术处理单元;以及 用于执行存储处理的存储处理单元,其中当译码用于命令进行单精度浮点算术处理或单精度浮点存储处理的 指令时,ifr码器对应于第 一处理和第二处理向算术处理单元和存储处理单元传送共同的^Mt码,以及通过只使用寄存器的高位半部分的长度的数据作为输入,算术处理单 元和存储处理单元分别执行算术处理和存储处理。
全文摘要
一种在包括寄存器的处理器中使用的单精度浮点数据存储方法,所述寄存器具有可以存储双精度浮点数据的尺寸,用于存储双精度浮点数据和单精度浮点数据,所述方法包括如果指定单精度浮点数据处理,则对所述寄存器的高位半部分写入输入的单精度浮点数据,并对所述寄存器的低位半部分全部写入零。
文档编号G06F9/318GK101539850SQ20081017890
公开日2009年9月23日 申请日期2008年11月27日 优先权日2008年3月21日
发明者吉田利雄 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1