提供了能够执行条件存储指令而不被条件码的数量限制的处理器、用于在处理器中执行条件存储指令的方法、以及具有处理器的信息处理设备。在根据本发明专利技术的处理器中,条件数据存储在浮点寄存器中,操作单元执行确定是否将存储数据存储高速缓存中的条件浮点存储指令。
【技术实现步骤摘要】
本专利技术的一个方面涉及处理器和信息处理设备。
技术介绍
有时使用叫做软件流水线的方法,以便编译器可以改善处理器中处理程 序的性能。图1显示了软件流水线的概念。例如,当描述粗序源中的具有依赖关系的进程A并且硬件执行正如程序所描述的进程时,进程A按顺 序执行,这可能会降低性能。在此情况下,在汇编程序源时编译器优化指令 行的顺序,以便与进程A没有依赖关系并且要在进程A之后执行的进程 B被插入在进程A的指令行之间。从而,硬件可以并行地执行进程A和 B.此最优化叫做软件流水线。根据当程序包絲如if,语句之类的糾语句的情况下的糾,是否执 行指令大致有两种方式。 一种U于糾是真还是假的糾转移指令,它是 i据是否JW行指令行如图2所示的那样切换的。然而,如图2所示,为 其确定是否^MNH^批阡它的指令行不能是软件流水线的目标'根据条件执行指令的另 一种方式是根据条件是真还是假在寄存器之间 移动数据的糾寄存器移动指令,或使用糾存储指令的技术,通过该技术, 信息从寄存器中被读取,并向存储器中写入。这些可以是软件流水线的工具. 这些指令确U否要根据4Hf是真还是假来更新结果。换句话说,不管M 如何,指令行不会变化,相应地,这些指4H^吏得甚至在包括M语句的部分 使用软件流水线也成为可能(图3和4)。某些指令集只包括条件寄存器移动指令的定义,而不包括条件存储指 令。当使用这类指令集在处理器中的单一核或单一线程中执行单一程序时, 按如下方式而不是使用M存储指令来旨处理。首先,将存储器数据加载 到寄存器中。此后,通过使用4H^寄存器移动指令,确定是否要更新存储器,并JJi过佳月存储指令将该寄存器中的信息M在存储器中。如果确定不应该更新程序中的存储器,则再次向存储器中写入已经加载到寄存器的数据。图5显示了使用条件移动指令代^Hf存储指令的流程图,有一种通过在一个程序中使用多个核(线程并行性)来提高并行处理的iUL的方法。当执行此方法时,有时共享存储器中的数据。当多个核用于线 程并行性时,条件存储指令不能替换为条件寄存器移动指令。下面将参考图6 ^兌明其理由。在图6中假设,核0执行M是假的情况,核1执行M是真的情 况,而其中一个核更新存储器。如^目应的核将数据从寄存器中加载到存储 器中,核1首先将新的数据存储在存储器中,此后,核0再次将相同的数 据##在存储器中,然后,数据在存储器中变为旧的数据。这会导致在处理 时出错。导致了图6所示的问题,因为一旦核将数据加载到寄存器中,该数据 不能被另一个核共享,换句话说,不能执行既能提高逸变又能共享存储器数 据的线程并行性。此问题可以通过使用^ft存储指令来加以解决。如果使用^Hf存储指令,则数据不加栽到寄存器上,而当M是真时, 核1 ^!^NHt指4M!W的数据,而当M是假时,核0不存储数据, 相应地,新的数据可以反映在存储器中。甚至在定义了对应于条件存储指令的指令的情况下,除浮点寄存器之 外,还有一个具有专用于屏蔽(mask)的寄存器的指令集。在此情况下,可 以通过使用屏蔽的存储,执行上面的线程并行性。然而,必须检测屏蔽寄存 器的依赖关系,这会增大硬件大小。并非所有的程序都需要屏蔽,因此,硬 件大小的增大会降低成本效率.在诸如SPARC-V9 (SPARC是注册商标)的条件指令中,ICC或 XCC被用作整数的条件码,而fcc0、 fccl、 fcc2以及fcc3被用作浮点的条 件码。当,例如在浮点的条件下执行条件指令时,只有四个独立条件(即, fcc0, fccl, fcc2,以及fcc3),相应地,不能执行具有五个或更多个条件的 ##进程。这种对可以被保持的条件的数量的限制还使得通过编译器不可能 实现并行性。图8显示了当M码的最大数量是2时的示例。近年来, 一直使用SIMD(单指令多数据)扩展处理,其中多个寄存器 的数据是作为单一指令的输入数据的向量元素并行地处理的;采用了 SIMD 以改善标量处理器的性能。当定义了条件指令的SIMD处理时,必须根据 某一M执行条件SIMD指令,从而,必须使M代码或屏蔽寄存器以这样的方式展开,以使得它们新对应于每一个元素的SIMD。如上文所描述的,在处理器的常规条件指令中,^Hf进程的数量是受条 件码的数量限制的,这是有问题的。
技术实现思路
本专利技术的一个方面的目的是提供执行存储指令而不受条件指令中的条 件码的数量限制的处理器,此外,为了响应作为本专利技术的一个方面的目的的处理器,要求定义用于 改善标量处理器的性能的SIMD指令的条件指令的SIMD进程。根据本专利技术的一个方面,处理器在浮点寄存器中存储4Hf数据,操作单 元船糾浮点存储指令,根据糾数据确狄否将存储数据存储在存储器 中。如果浮点寄存器采用SIMD配置,则处理器可以将条件数据存储在 S1MD的每一个元素的浮点寄存器中,而搮作单元执行条件浮点存储指令, 根据^Hf数据确U否存储SIMD ##指令的每一个元素的数据。il^将公开的处理器能够执行M进程而不受M码的数量的限制.此 外,处理器还能够通过用于普通浮点运算的读取端口读取M数据,还能够 使用浮点寄存器的,关系检测电路a测依赖关系。从而,可以实现成本 降低的M浮点存储指令。附图说明 图1显示了軟/降流水线;图2显示了当存在^转移指令时的软件流水线;图3显示了4Ht转移指令和条件指令;图4显示了当存在条件指令时的软件流水线;图5是显示了当使用条件移动指令代^H^存储指令时的操作的流程图6显示了当使用条件移动指令代替M存储指令用于以多核配置执 行并行处理时发生的问题;围7显示了M存储指令;图8显示了当至多有两段M数据时根据条件指令的软件流水线;图9显示了包括浮点寄存器和运算符的配置;图10显示了 SIMD浮点寄存器和运算符的配置;图11显示了^iL据本专利技术的实施例的处理器的^Mt;图12显示了响应于SIMD条件浮点存储指令的处理器的IMt;图13显示了^l据本专利技术的实施例的处理器的配置;图14显示了M浮点存储指令的格式;图15显示了浮点比较运算指令和浮点比特逻辑运算指令的格式;图16显示了浮点比较运算指令的处理;图17显示了浮点比特逻辑运算指令的处理;图18显示了非M浮点存储指令的格式;图19显示了存储进程;图20显示了务降浮点存储指令的即时字段的进程;图21显示了用于生成存储使能信号的电路;图22显示了 SIMD存储进程;图23显示了浮点数据的格式;以及图24 M示了存储数据的旁i^bypass)进程的流港图。具体实施例方式下面将参考附图说明本专利技术的实施例。本专利技术的范围不仅限于下面给出 的示例,在不偏离本专利技术的精神的情况下可以进行各种更改。首先,说明本专利技术的一个示例的概述。在诸如服务器等等之类的信息处理设备中提供了本示例的处理器。在信 息处理设备中,各种输输出设备、存储器、>^盘设备等等通过总线连接到 处理器。本示例中的处理器存储用于执行浮点寄存器中的条件存储指令的条件 数据。处理器定义用于生成M数据的浮点比较运算指令,并将浮点比较运算指令的结果(真或假)存储在浮点寄存器中。此外,处理器定义存储^数据的浮点寄存器之间进行的诸如AND, OR, XOR以及NOT的比特逻 辑运算指令。本示例中的处理器根据显示了作为存储在浮点寄存器中的浮点比本文档来自技高网...
【技术保护点】
一种处理器,包括: 用于存储条件数据的浮点寄存器;以及 用于执行根据浮点寄存器中存储的条件数据来确定是否将存储数据存储在存储器中的条件浮点存储指令的操作单元。
【技术特征摘要】
JP 2008-3-21 2008-0734331.一种处理器,包括用于存储条件数据的浮点寄存器;以及用于执行根据浮点寄存器中存储的条件数据来确定是否将存储数据存储在存储器中的条件浮点存储指令的操作单元。2.根据权利要求1所述的处理器,其中 所述^^数据^ft在浮点寄存器的最高有效位中。3. 根据权利要求2所述的处理器,其中所述操作单元通过比较两个浮点寄存器的值并将比较的结果作为4Ht 数据存储在浮点寄存器的最高有效位中,来进一步执行浮点比较运算指令。4. 根据权利要求2所述的处理器,其中 所述^ft单itii一步在多>NHf数据片之间旨比特逻辑运^旨令。5. 根据权利要求1所述的处理器,其中所述糾浮点>^#指令是当糾数据为真时向賴器中写数据的真-条 件浮点^f^^指令,或当糾数据为假时向賴器写数据的假-糾浮点絲 指令。6. 才緣...
【专利技术属性】
技术研发人员:吉田利雄,
申请(专利权)人:富士通株式会社,
类型:发明
国别省市:JP[日本]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。