当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于装入/移动以及复制指令的处理器、系统和方法技术方案

技术编号:2921263 阅读:126 留言:0更新日期:2012-04-11 18:40
一种方法包括,在处理器中,装入/移动源的第一部分位到目标寄存器的第一部分并在目标寄存器的后续部分中复制所述第一部分位。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及处理器的装入/移动以及复制指令。
技术介绍
系统体系结构说明处理器操作的模式以及被提供用于支持操作系统的机制,该机制包括面向系统的寄存器和数据结构以及面向系统的指令。该系统体系结构也提供用于在实际地址和保护模式之间切换的必要机制。对系统体系结构引入单指令、多数据(SIMD)技术提供了对包含于64位寄存器内的封包整数数据的并行计算。SIMD对例如高级媒体、图像处理和数据压缩应用中的处理器提供增强性能。附图说明图1是处理器的框图。图2是执行环境的框图。图3是字节顺序基本数据类型的框图。图4示出浮点格式。图5示出概括各种SIMD扩展、数据类型以及该数据类型如何被封包到寄存器中的表。详细说明参考图1,示出处理器10。该处理器10是三路超级计数器、管道体系结构。处理器10通过使用并行处理技术,平均能够在每个时钟周期中解码、分派以及完成(引出)三条指令的执行。为处理这个水平的指令吞吐量,处理器10使用分离的12阶段管道,该管道支持无序的指令执行。处理器10的微体系结构管道被分为4个部分,即,一级高速缓存12和二级高速缓存14、前端16、无序执行核心18,以及引出部分20。指令和数据通过与系统总线24连接的总线接口单元22供给给这些单元。前端16以程序顺序向该无序核心18供给指令,该核心具有非常高的执行带宽且能够执行具有1/2时钟周期延时的基本整数操作。前端16读取指令并将指令解码为称作微操作(μ-ops)的简单操作。前端16能以最初的程序顺序在每周期将多个微操作提交到无序核心18。前端16执行几个基本功能。例如,前端16执行很有可能被执行的预取指令、读取还没有被预取的指令、将指令解码为微操作、产生复杂指令和特殊用途码的微码、递送来自执行轨迹高速缓存26的已经解码的指令,以及使用分支预测单元28中的高级算法来预测分支。处理器10的前端16被设计为以高速处理管道微处理器中的某些普通问题。例如,这些问题中的两个是延迟的主要来源。这是解码从目标读取且由于高速缓存线中间的分支或分支目标而浪费解码带宽的指令的时间。执行轨迹高速缓存26通过保存已经解码的指令而处理这两个问题。通过转换引擎(未示出)来读取指令并对指令进行解码,且该指令成为被称作轨迹的微操作序列的一部分。这些微操作轨迹被保存在轨迹高速缓存26中。来自最有可能的分支目标的指令立即跟随在该分支的后面,而不考虑指令地址的连续性。一旦建立轨迹,则搜索轨迹高速缓存26查找跟随在该轨迹后面的指令。若该指令显现为现有轨迹内的第一条指令,则对来自存储器层次的指令30的读取和解码就停止,且轨迹高速缓存26变成新的指令源。执行轨迹高速缓存18和转换引擎(未示出)具有协同操作分支预测硬件。使用分支目标缓冲器(BTBS)28,基于分支目标的线性地址来预测该分支目标,且尽快读取该分支目标。若分支目标确实被缓冲在那里,则从轨迹高速缓存26读取该分支目标;否则,从存储器层次读取该分支目标。转换引擎的分支预测信息被用来沿着最有可能的路径来形成轨迹。核心18无序地执行指令,允许处理器10重排序指令,以使若一个微操作在 等待数据或竞争执行资源时被延迟,则其它在程序顺序中较后的微操作可在其周围继续进行。处理器10使用几个缓冲器来使T操作(T-ops)流平滑。这意味着当管道的一部分经历延迟时,该延迟可被其它并行执行的操作或者在缓冲器中先前排队等候的微操作执行覆盖。核心18被设计为促进并行执行。核心18每周期最多可分派6个微操作;注意这个超过轨迹高速缓存26以及引出20微操作带宽。绝大多数的管道可在每周期开始执行新的微操作,以使可在任何时间对每个管道处理几个指令。多个算术逻辑单元(ALU)指令可在每周期开始两个,且多个浮点指令可在每两个周期开始一个。最终,微操作的数据输入一准备好且资源一旦可用,微指令就可开始无序的执行。引出部分20接收来自执行核心18的执行微操作的结果,并对该结果进行处理,以使根据最初程序顺序来更新适当的体系结构状态。为语义上的正确执行,执行的结果在其引出之前是以最初的程序顺序进行的。可将异常作为引出的指令触发。这样,异常不能随机地出现。它们以正确的顺序出现,并且处理器10可在执行后正确的重新启动。当微操作完成其结果并将其结果写到目的文件的时候,该微操作引出。每周期引出的微操作可达3个。引出部分20中的重排序缓冲器(ROB)(未示出)是处理器10中的单元,它缓冲已完成的微操作、按照顺序更新体系结构状态,并管理异常的排序。引出部分20也跟踪分支并将已更新的分支目标信息发送到BTB 28,以更新分支历史。如此,不再需要的轨迹可从轨迹高速缓存26中清除,并且可读取新的分支路径,这是基于已更新的分支历史信息的。参考图2,示出执行环境50。给予处理器10上运行的任何程序或任务(图1中的)一组资源,用于执行指令并用于保存代码、数据和状态信息。这些资源组成处理器10的执行环境50。在处理器10上运行的应用程序和操作系统或者可执行文件共同使用执行环境50。执行环境50包括基本程序执行寄存器52、地址空间54、浮点单元(FPU)寄存器56、多媒体扩展寄存器(MMX)58,以及SIMD扩展(SSE和SSE2)寄存器60。在处理器10上运行的任何任务或程序可寻址直到4G字节(232字节)的线性地址基54以及直到64G字节(236字节)的物理地址空间。地址空间54可为平坦的或为分段的。使用物理地址扩展机制,可寻址236-1的物理地址空间。基本程序执行寄存器52包括8个通用寄存器62、6个段寄存器64、EFLAGS寄存器66,以及EIP(指令指针)寄存器68。基本程序执行寄存器52提供基本执行环境,在其中执行一组通用指令。这些指令对字节、字和双字整数执行基本整数算术,处理程序流控制,操作位和字节强度,并寻址存储器。FPU寄存器56包括8个FPU数据寄存器70、FPU控制寄存器72、状态寄存器74、FPU指令指针寄存器76、FPU操作数(数据)指针寄存器78、FPU标签寄存器80以及FPU操作码寄存器82。FPU寄存器56提供执行环境,用于操作单精度、双精度,以及双扩展精度浮点值,字、双字,以及四字整数,还有二进制编码的十进制(BCD)值。8个多媒体扩展寄存器58支持64位封包字节、字和双字整数的单指令、多数据(SIMD)操作的执行。SIMD扩展(SSE和SSE2)寄存器60包括8个扩展多媒体(XMM)数据寄存器84和MXCSR寄存器86。SIMD扩展(SSE和SSE2)寄存器60支持128位封包单精度和双精度浮点值以及128位封包字节、字、双字以及四字整数的SIMD操作的执行。栈(未示出)支持过程或子例程调用以及过程或子例程之间的参数传递。通用寄存器62可用于保存操作数和指针。段寄存器64保存的段选择器可达6个。EFLAGS(程序状态和控制)寄存器66报告正被执行的程序状态,并允许处理器的有限(应用程序级)控制。EIP(指令指针)寄存器68包含指向下一条要执行的指令的32位指针。32位通用寄存器62被提供用于保存逻辑和算术操作的操作数、地址计算的操作数,以及存储器指针。段寄存器64保存64位段选择器。段选择器是识别存储器中段的特别指针。为访问存储器中的特定段,该段的段选择器必须出现在本文档来自技高网...

【技术保护点】
一种计算机指令,其特征在于,所述指令包含:移动和复制指令,所述指令促使处理器将源的第一部分位装入目的寄存器的第一部分,并在所述目的寄存器的后续部分中复制所述第一部分位。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:P罗塞尔
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1
相关领域技术
  • 暂无相关专利