用于增强处理单元中的独立加载的执行的方法和系统技术方案

技术编号:2821938 阅读:139 留言:0更新日期:2012-04-11 18:40
提供了一种用于增强处理单元中的独立加载的执行的方法、系统和计算机程序产品。处理单元检测是否已经遇到与加载指令相关联的长延迟丢失。响应于遇到长延迟丢失,处理单元中进入预先加载模式。响应于进入预先加载模式,处理单元用相关联的矢量从第一缓冲器分派来自第一组指令的每个指令。处理单元确定来自第一缓冲器的第一组指令是否已经完成执行。响应于来自第一缓冲器的第一组指令的完成执行,处理单元将来自第一矢量阵列的一组矢量复制到第二矢量阵列。然后处理单元用来自第二矢量阵列的相关联的矢量从第二缓冲器分派第二组指令。

【技术实现步骤摘要】
用于增强处理单元中的独立加载的执行的方法和系统
本申请一般涉及改进的数据处理系统和方法。更具体地,本申请贯注于对于同时的(simultaneous)多线程微处理器、在单线程模式下增强的预先加 载(load lookahead)预提取。
技术介绍
存在计算机用户对最大化性能的持续需求、以及对计算机产业增加微处 理器的计算能力和效率的相对应的压力。这在服务器计算机领域尤其明显, 其中所有商务依赖于他们的计算机架构执行和监视影响收益、利润等的曰常 活动。增加的微处理器性能在为计算机制造商提供用来从竟争中区分它们自 己的机制的同时,将为计算机用户提供附加的资源。在这几年中,体现技术发展水平的微处理器已经从相当直接的系统演进 到在单个硅衬底上具有数百万晶体管的极端复杂的集成电路。对微处理器做 出的许多改进之一是微处理器每周期执行多于一个指令的能力。这种类型的 微处理器典型地被称作为"超大规模"。进一步的性能改进是微处理器"无序" 执行指令的能力。该无序操作允许指令没有依赖性,从而绕过正在等待要被 解决的某个依赖性的其它指令。微处理器的IBN^PowerTM和PowerPC②系列 是提供指令的无序处理的超大规模系统的示例。微处理器可以支持无序执行 支持的变化级别,意味着用来无序标识和执行指令的能力可以被限制。限制无序执行支持的一个主要动机是标识哪些指令能够早期执行,并且 跟踪和存储无序结果所需要的大量的复杂度。在无序执行的指令依照顺序执 行模式被确定为不正确时,额外的复杂性出现了,要求在较旧的指令引起异 常时它们的执行不影响处理器的组织状态。随着处理器速度继续增加,消除 与无序执行相关联的一些复杂性变得更有吸引力。这将从通常被用来跟踪无 序指令的芯片消除逻辑和逻辑的对应芯片区域或"不动产(real estate)",从 而允许额外的"不动产"变得为其它的处理功能可用。正如本领域所知,存在当由微处理器执行指令时发生的某些状况,在指令执行被限制或停顿直到该状况被解决的情形中,这些状况将引起停转(stall) 发生。 一个示例是高速緩冲存储器丟失,当指令要求的数据对一级(L2)高速 緩冲存储器不可用、并且微处理器被强迫等待直到该数据能够从较慢的高速 緩冲存储器或主存储器检索到时,该高速緩冲存储器丟失发生。从主存储器 获得数据是相对慢的操作,并且当无序执行由于前述复杂性被限制时,后续 指令不能够被充分执行,直到有效数据从存储器接收到。更具体地讲,花长时间执行的较旧的指令可以创建停转,这可以防止任 何较新的或后续的指令执行,直到耗时的指令完成。例如,在要求存取不在 Ll高速緩冲存储器(高速緩沖存储器丢失)的加载指令的情形中,在数据从较 慢的高速緩冲存储器或主存储器提取的同时,延长的停转可能发生。没有支 持所有无序执行情景的便利性,改变指令排序使得在检索丢失的数据的同时 可以执行通过指令流的前向进行也许是不可能的。
技术实现思路
说明性实施例提供了实现预提取机制,用来为更多的指令提供更深到达 指令高速緩冲存储器。在一个实施例中,所述的预提取辅助机制利用在单线 程模式发生的通常未使用的指令緩冲器,以增加可以对单线程提取的指令的 能力和增加可以预提取的加载指令的数量。在本实施例中,该预提取机制使 用两个指令緩冲器,以在单个线程模式下以预先加载(LLA)模式发送指令 到执行单元。在另 一个实施例中,预提取机制在单线程模式下使用两个线程的指令緩 冲器以增加可以被提取的指令的能力。使用两个指令緩冲器显著地增加指令 提取带宽和性能,而没有增加更多的硅。此外,来自两个线程的被组织的资 源还一起工作以增加结果容量。在说明性实施例中描述的所述预提取机制通过增加单线程性能而不添加 相当数量的硅,相对于已知的系统提供了改进。通过增加单线程性能而不添 加相当数量的硅,电力被节省并且处理器的频率被改进。例如,为了加倍指 令緩冲器的深度,多达两倍的硅可以被要求,更多的电力可以被消耗并且读 取指令可以花费更长时间来执行。说明性实施例提供了用于增强处理单元中的独立加载的执行。说明性实 施例检测是否已经遇到与加载指令相关联的长延迟丢失。说明性实施例响应于遇到长延迟丢失,在处理单元中进入预先加载模式。说明性实施例响应于 进入预先加载模式,用相关联的矢量从第 一緩冲器分派来自第 一组指令的每 个指令。相关联的矢量在第一矢量阵列中的一组矢量中。说明性实施例确定 来自第一緩冲器的第一组指令是否已经完成执行。说明性实施例响应于来自 第 一緩冲器的第 一组指令的完成执行,将来自第 一 矢量阵列的 一组矢量复制 到第二矢量阵列。然后,说明性实施例用来自第二矢量阵列的相关联的矢量 从第二緩冲器分派第二组指令。在说明性实施例中,第一緩冲器和第一矢量阵列与第一线程相关联,第 二緩冲器和第二矢量阵列与第二线程相关联,并且第一组指令和第二组指令 与第一线程相关联。另 一说明性实施例从第一组指令的执行接收一组更新的结果。说明性实 施例更新与第一组指令中的每个指令相关联的、第一寄存器中的一组项目内 的寄存器项目。说明性实施例响应于来自第 一緩冲器的第 一组指令的完成执 行,将来自第一寄存器的一组项目复制到第二寄存器。说明性实施例更新与 第二组指令中的每个被执行的指令相关联的、第二寄存器中的一组项目内的 寄存器项目。在说明性实施例中,来自第一寄存器的一组项目利用copy—unconditional信号被复制到第二寄存器。其他说明性实施例响应于进入预先加载模式,按序提取附加的指令到第 一緩冲器中直到第一緩冲器为满。说明性实施例响应于填充第一緩冲器,按 序提取附加的指令到第二緩冲器中直到第二緩冲器为满。说明性实施例响应 于填充第二緩沖器,停止提取附加的指令。在说明性实施例中,处理单元在单线程模式操作。在执行单线程模式中, 另一说明性实施例确定是否模式位被设置指示启动单线程模式。说明性实施 例响应于模式位被设置,启动单线程模式。说明性实施例清除第一緩冲器、 第二緩冲器、第一矢量阵列、第二矢量阵列、第一寄存器和第二寄存器的内 容。然后,说明性实施例提取指令到第一緩冲器中。其他说明性实施例确定是否预先加载模式已经退出。说明性实施例响应 于预先加载模式的退出,丢弃第二緩冲器、第一矢量阵列、第二矢量阵列和 第二寄存器的内容。在其它的说明性实施例中,提供了一种计算机程序产品,包括具有计算 机可读程序的计算机可用介质。所述计算机可读程序当在计算设备上被执行时,使得计算设备执行上面关于方法说明性实施例概述的各种操作和其组合。 在另一说明性实施例中,提供了一种系统。该系统可以包括处理器和耦合到处理的存储器。存储器可包含指令,当该指令被处理器执行时使得该处理器执行上面关于方法说明性实施例概述的各种操作和其组合。本专利技术的这些和其它特征和优点将在下面本专利技术的示范性实施例的详细描述中被说明,或者鉴于下面本专利技术的示范性实施例的详细描述对于本领域普通技术人员将变得清楚。附图说明当结合附图阅读时,通过参照下面示范性实施例的详细描述,本专利技术以及优选的使用方式及其进一步的目的和优点将被最好地理解,在附图中图1是其中说明性实施例的各方面可能被实现的示范性数据处理系统的框图;图2描述了按照说明性实施例、示出功能单元和寄存本文档来自技高网
...

【技术保护点】
一种在数据处理系统中用于增强处理单元中的独立加载的执行的方法,所述方法包括:检测是否已经遇到与加载指令相关联的长延迟丢失;响应于遇到长延迟丢失,在处理单元中进入预先加载模式;响应于进入预先加载模式,用相关联的矢量从第一缓冲器分派来自第一组指令的每个指令,其中相关联的矢量在第一矢量阵列中的一组矢量中;确定来自第一缓冲器的第一组指令是否已经完成执行;响应于来自第一缓冲器的第一组指令的完成执行,将来自第一矢量阵列的一组矢量复制到第二矢量阵列;以及 用来自第二矢量阵列的相关联的矢量 从第二缓冲器分派第二组指令。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:唐Q古延杭Q利
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1