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

技术编号:2821937 阅读:213 留言:0更新日期:2012-04-11 18:40
提供了一种用于增强处理单元中的独立加载的执行的方法、系统和计算机程序产品。该处理单元从第一缓冲器按序分派第一组指令用于执行。该处理单元从第一组指令的执行接收更新的结果。该处理单元在第一寄存器中用更新的结果更新与第一组指令中的每个指令相关联的至少一个寄存器项目。该处理单元确定来自所述第一缓冲器的所述第一组指令是否已经完成执行。响应于来自所述第一缓冲器的所述第一组指令的完成执行,该处理单元将来自第一寄存器的一组项目复制到第二寄存器。

【技术实现步骤摘要】
用于增强处理单元中的独立加载的执行的方法和系统
本申请一般涉及改进的数据处理系统和方法。更具体地,本申请贯注于在同时的(simultaneous)多线程微处理器中增强的单线程执行。技术背景存在计算机用户对最大化性能的持续需求、以及相对应的对计算机产业 增加微处理器的计算能力和效率的压力。这在服务器计算机领域尤其明显, 其中所有商务依赖于他们的计算机架构执行和监视影响收益、利润等的曰常 活动、,增加的微处理器性能在为计算机制造商提供用来从竟争中区分它们自 己的机制的同时,将为计算机用户提供附加的资源。到在单个硅衬底上具有数百万晶体管的极端复杂的集成电路。对微处理器做出的许多改进之一是微处理器每周期执行多于一个指令的能力。这种类型的 微处理器典型地被称作为"超大规模"。进一步的性能改进是微处理器"无序" 执行指令的能力。该无序操作允许没有依赖性的指令绕过正在等待要被解决 的某个依赖性的其它指令。微处理器的旧M,PowerIM和PowerPC 系列是提 供指令的无序处理的超大规模系统的示例。微处理器可以支持无序执行支持 的变化级别,意味着用来无序标识和执行指令的能力可以被限制。限制无序执行支持的一个主要动机是标识哪些指令能够早期执行,并且 跟踪和存储无序结果所需要的大量的复杂度。在无序执行的指令依照顺序执 行模式被确定为不正确时,额外的复杂性出现了,要求在较旧的指令引起异 常时它们的执行不影响处理器的组织状态。随着处理器速度继续增加,消除 与无序执行相关联的一些复杂性变得更有吸引力。这将从通常被用来跟踪无 序指令的芯片消除逻辑和逻辑的对应芯片区域或"不动产(real estate)",从 而允许额外的"不动产"变得为其它的处理功能可用。正如本领域所知,存在当由微处理器执行指令时发生的某些状况,在指 令执行被限制或停顿直到该状况被解决的情形中,这些状况将引起停转(stall)5发生。 一个示例是高速緩沖存储器丢失,当指令要求的数据对一级(L2)高速缓沖存储器不可用、并且微处理器被强迫等待直到该数据能够从较慢的高速 緩沖存储器或主存储器检索到时、该高速緩冲存储器丢失发生。从主存储器 获得数据是相对慢的操作,并且当无序执行由于前述复杂性被限制时,后续 指令不能够被完全执行,直到从存储器接收到有效数据。更具体地讲,花长时间执行的较旧的指令可以创建停转,这可以防止任 何较新的或后续的指令执行,直到耗时的指令完成。例如,在要求存取不在L]高速緩冲存储器(高速緩沖存储器丢失)的加载指令的情形中,在数据从较 慢的高速缓冲存储器或主存储器提取的同时,延长的停转可能发生。没有支 持所有无序执行情景的便利性,改变指令排序使得在检索丢失的数据的同时 可以执行通过指令流的前向进行也许是不可能的。
技术实现思路
说明性实施例提供了实现预提取机制,用来为更多的指令提供更深到达 指令高速緩冲存储器。在一个实施例中,所述的预提取辅助机制利用在单线 程模式发生的通常未使用的指令緩冲器,以增加可以对单线程提取的指令的 能力和增加可以预提取的加载指令的数量。在本实施例中,该预提取机制使 用两个指令緩冲器,以在单个线程模式下以预先加载(LLA)模式发送指令 到执行单元。在另 一个实施例中,预提取机制在单线程模式下使用两个线程的指令緩 冲器以增加可以被提取的指令的能力。使用两个指令緩冲器显著地增加指令 提取带宽和性能,而没有增加更多的硅。此外,来自两个线程的被组织的资 源还一起工作以增加结果容量。在说明性实施例中描述的所述预提取机制通过增加单线程性能而不添加 相当数量的硅,相对于已知的系统提供了改进。通过增加单线程性能而不添 加相当数量的硅,电力被节省并且处理器的频率被改进。例如,为了加倍指 令緩冲器的深度,多达两倍的硅可以被要求,更多的电力可以被消耗并且读 取指令可以花费更长时间来执行。说明性实施例提供增强处理单元中的独立加载的执行,所述说明性实施 例从用于执行的第一缓冲器按序分派第一组指令。所述说明性实施例从第一 组指令的执行接收更新(younger)结果。所述说明性实施例在第 一寄存器中用更新的结果更新与在第一组指令中的每个指令相关联的至少一个寄存器项 目。所述说明性实施例确定来自所述第一緩沖器的所述第一组指令是否已经 完成执行。所述说明性实施例响应于来自所述第 一緩沖器的所述第 一组指令 的完氛执行,将来自第一緩冲器的一组项目的复制到第二寄存器。在图示实施例中,来自第一寄存器的一组项目被使用c叩yjnconditiona]信号复制到第 二寄存器。其它的说明性实施例从第二緩冲器按序分派第二组指令。所述说明性实 施例从第二组指令的执行接收更新的结果。所述说明性实施例在第二寄存器 中利用更新的结果更新与第二组指令中的每个指令相关联的寄存器项目。所 述i兑明性实施例为用更新的结果更新的一组项目的每个项目在select一mask寄 存器设置select jnask位。在说明性实施例中,第 一緩冲器和第 一寄存器与第 一线程相关联,第二緩沖器和第二寄存器与第二线程相关联,并且第一组指 令和第二组指令与第 一线程相关联。所述说明性实施例还确定来自第二緩沖器的第二组指令是否已经完成执 行。所述说明性实施例响应于来自第一緩冲器的第二组指令的完成执行,将 来自第二寄存器的一组项目复制到第一寄存器,在说明性实施例中,来自第 二寄存器的一组项目利用cx>py_using_mask信号被复制到第一寄存器。当--组项目从第二寄存器到第一寄存器的复制完成时,说明性实施例还可清除来 自seJect—mask寄存器的每个i殳置的select—mask位。其它的说明性实施例从第一緩冲器按序分派新的一组指令。说明性实施 例从该新的一组指令的执行接收更新的结果。说明性实施例在第一寄存器中 用更新的结果更新与在该新的一组指令中的每个指令相关联的寄存器项目。 说明性实施例对用更新的结果更新的一组项目的每个项目设置select—mask寄 存器的select—脂sk位。在说明性实施例中,处理单元在单线程模式中工作。在执行单线程模式 中,说明性实施例还确定是否模式位被设置指示启动单线程模式。说明性实 施例响应于模式位被设置,启动单线程模式。说明性实施例清除第一緩冲器、 第二緩沖器、第一矢量阵列、第二矢量阵列、第一寄存器和第二寄存器的内 容。接着,说明性实施例提取指令到第一緩冲器。附加的说明性实施例按序提取第 一组指令到第 一緩沖器直到第 一緩沖器 满c说明姓实施例响应于填充第 一緩冲器,按序提取第二组指令到第二緩冲器直到第二緩冲器满。在说明性实施例中,第二组指令的第一初始指令具有first—bk设置。说明性实施例响应于填充第二緩冲器,按序提取新的一组指令 到第一緩沖器直到第一缓沖器满。在说明性实施例中,所述新的一组指令的 第二初始指令具有first—bit设置。在说明性实施例中,对第一初始指令设置的first—bit指示第一初始指令 和第二緩沖器中的任何更新的指令必须等待直到在第 一緩沖器中的第 一组指 令已经分派。在说明性实施例中,对第二初始指令设置的first一bk指示第二初 始指令和第 一緩冲器中的任何更新的指令必须等待直到在第二缓冲器中的第二组指令已经分派。在本文档来自技高网
...

【技术保护点】
一种在数据处理系统中用于增强处理单元中的独立加载的执行的方法,所述方法包括:从第一缓冲器按序分派第一组指令用于执行;从第一组指令的执行接收更新结果;在第一寄存器中,利用更新的结果更新与第一组指令中的每个指令相关联的至少一个寄存器项目;确定来自所述第一缓冲器的所述第一组指令是否已经完成执行;以及 响应于来自所述第一缓冲器的所述第一组指令的完成执行,将来自第一寄存器的一组项目复制到第二寄存器。

【技术特征摘要】
...

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

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

1