用于提供推入缓冲器复制和存储功能的指令和逻辑的制作方法_2

文档序号:9221606阅读:来源:国知局
子集,和/或被定义为具有以不同 方式进行解释的给定字段。在一个实施例中,使用指令格式(并且,如果定义过,则以该指 令格式的给定的指令模板中的一个)来表示指令,并且该指令指定或指示操作以及该操作 将操作的操作数。
[0052] 科学应用、金融应用、自动向量化通用应用、RMS(识别、挖掘和合成)应用以及视 觉和多媒体应用(例如,2D/3D图形、图像处理、视频压缩/解压缩、语音识别算法和音频处 理)可能需要对大量数据项执行相同的操作。在一个实施例中,单指令多数据(SMD)指的 是使得处理器对多个数据元素执行一个操作的指令类型。可将SMD技术用于可将寄存器 中的多个位逻辑地划分为固定尺寸或可变尺寸的数据元素(每个数据元素表示单独的值) 的处理器中。例如,在一个实施例中,可将64位寄存器中的多个位组织为包含四个单独的 16位数据元素的源操作数,每个数据元素表示单独的16位的值。该数据类型可被称为紧 缩数据类型或向量数据类型,并且该数据类型的操作数被称为紧缩数据操作数或向量操作 数。在一个实施例中,紧缩数据项或向量可以是存储在单个寄存器中的紧缩数据元素的序 列,并且紧缩数据操作数或向量操作数可以是SMD指令(或"紧缩数据指令"或"向量指 令")的源操作数或目的地操作数。在一个实施例中,SIMD指令指定了将要对两个源向量 操作数执行以生成具有相同或不同尺寸的、具有相同或不同数量的数据元素的、具有相同 或不同数据元素顺序的目的地向量操作数(也被称为结果向量操作数)的单个向量操作。
[0053] 诸如由丨ntel?酷睿(Core?)处理器(具有包括x86、MMX?、流SMD扩展(SSE)、 35£2、55£3、55£4.1、55£4.2指令的指令集)、4冊处理器(诸如4冊(:〇116\?处理器族,具 有包括向量浮点(VFP)和/或NEON指令的指令集)和MIPS处理器(诸如,中国科学院计 算机技术研宄所(ICT)开发的龙芯处理器族)所采用的SMD技术之类的SMD技术在应用 性能上带来了极大的提高(Core?和MMX?是加利福尼亚州圣克拉拉市的英特尔公司的注册 商标或商标)。
[0054] 在一个实施例中,目的地寄存器/数据和源寄存器/数据是表示对应数据或操作 的源和目的地的通用术语。在一些实施例中,它们可由寄存器、存储器或具有与所描绘的那 些名称或功能不同的名称或功能的其他存储区域来实现。例如,在一个实施例中,"DEST1" 可以是临时存储寄存器或其他存储区域,而"SRC1"和"SRC2"可以是第一和第二源存储寄 存器或其他存储区域,等等。在其他实施例中,SRC和DEST存储区域中的两个或更多可对 应于相同存储区域中的不同数据存储元素(例如,SIMD寄存器)。在一个实施例中,通过例 如将对第一和第二源数据执行的操作的结果写回至两个源寄存器中作为目的地寄存器的 那个寄存器,源寄存器中的一个也可以作为目的地寄存器。
[0055] 图1A是根据本发明的一个实施例的示例性计算机系统的框图,该计算机系统被 形成为具有包括用于执行指令的执行单元的处理器。根据本发明,诸如根据在此所描述 的实施例,系统100包括诸如处理器102之类的组件,该处理器102用于使用包括逻辑的 执行单元以执行算法来处理数据。系统100代表基于可从美国加利福尼亚州圣克拉拉市 的英特尔公司获得的PENT丨UM'K [II、PENTIUM? 4、Xeon?、|tanium'XScale?和 / 或 StrongARM?微处理器的处理系统,不过也可使用其他系统(包括具有其他微处理器的PC、 工程工作站、机顶盒等)。在一个实施例中,样本系统100可执行可从美国华盛顿州雷蒙德 市的微软公司获得的WINDOWS?操作系统的一个版本,不过也可使用其他操作系统(例如,UNIX和Linux)、嵌入式软件、和/或图形用户界面。因此,本发明的各实施例不限于硬件电 路和软件的任何具体组合。
[0056] 实施例不限于计算机系统。本发明的替代实施例可用于其他设备,诸如手持式设 备和嵌入式应用。手持设备的一些示例包括蜂窝电话、网际协议设备、数码相机、个人数字 助理(PDA)以及手持PC。嵌入式应用可包括微控制器、数字信号处理器(DSP)、芯片上系统、 网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机、或可执行根据至少一个实 施例的一条或多条指令的任何其他系统。
[0057] 图1A是计算机系统100的框图,计算机系统100被形成为具有处理器102,处理器 102包括一个或多个执行单元108用于执行算法,从而执行根据本发明的一个实施例的至 少一条指令。可在单处理器桌面或服务器系统的情境中描述一个实施例,但是可将替代实 施例包括在多处理器系统中。系统100是"中枢"系统架构的示例。计算机系统100包括用 于处理数据信号的处理器102。处理器102可以是复杂指令集计算机(CISC)微处理器、精 简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实现多个指令集组合的处理 器或任意其他处理器设备(例如,数字信号处理器)。处理器102耦合至处理器总线110, 该处理器总线可在处理器102和系统100内的其他组件之间传输数据信号。系统100的多 个要素执行本领域所熟知的常规功能。
[0058] 在一个实施例中,处理器102包括第一级(L1)内部高速缓存存储器104。取决于 架构,处理器102可具有单个内部高速缓存或多级内部高速缓存。或者,在另一个实施例 中,高速缓存存储器可驻留在处理器102的外部。其他实施例也可包括内部高速缓存和外 部高速缓存的组合,这取决于特定实现和需求。寄存器组106可将不同类型的数据存储有 在各种寄存器(包括整数寄存器、浮点寄存器、状态寄存器、指令指针寄存器)中。
[0059] 执行单元108(包括用于执行整数和浮点操作的逻辑)也驻留在处理器102中。 处理器102还包括存储用于特定宏指令的微代码(ucode)ROM。对于一个实施例,执行单元 108包括用于处理紧缩指令集109的逻辑。通过将紧缩指令集109包括在通用处理器102 的指令集内并包括用于执行这些指令的相关的电路,可使用通用处理器102中的紧缩数据 来执行由许多多媒体应用使用的操作。因此,通过将处理器数据总线的完整宽度用于执行 对紧缩数据进行操作,可加速并更高效地执行许多多媒体应用。这能消除横跨处理器数据 总线传输更小数据单元以便一次对一个数据元素执行一个或多个操作的需求。
[0060] 执行单元108的替代实施例也可被用于微控制器、嵌入式处理器、图形设备、DSP 以及其他类型的逻辑电路。系统100包括存储器120。存储器120可以是动态随机存取存 储器ORAM)设备、静态随机存取存储器(SRAM)设备、闪存设备或其他存储器设备。存储器 120可存储由可由处理器102执行的数据信号来表示的指令和/或数据。
[0061] 系统逻辑芯片116耦合至处理器总线110和存储器120。在所示出的实施例中的 系统逻辑芯片116是存储器控制器中枢(MCH)。处理器102可经由处理器总线110与MCH 116通信。MCH116提供至存储器120的高带宽存储器路径118,用于指令和数据存储,以及 用于存储图形命令、数据和纹理。MCH116用于引导处理器102、存储器120以及系统100内 的其他组件之间的数据信号,并在处理器总线110、存储器120和系统I/O122之间桥接该 数据信号。在一些实施例中,系统逻辑芯片116可提供耦合至图形控制器112的图形端口。 MCH 116经由存储器接口118耦合至存储器120。图形卡112通过加速图形端口(AGP)互 连114耦合至MCH 116。
[0062] 系统100使用专用中枢接口总线122以将MCH116耦合至I/O控制器中枢 (ICH) 130。ICH130经由本地I/O总线向一些I/O设备提供直接连接。本地I/O总线是高 速I/O总线,用于将外围设备连接至存储器120、芯片组以及处理器102。一些示例是音频 控制器、固件中枢(闪存BIOS) 128、无线收发机126、数据存储设备124、包括用户输入和键 盘接口的传统I/O控制器、串行扩展端口(诸如通用串行总线(USB))以及网络控制器134。 数据存储设备124可以包括硬盘驱动器、软盘驱动器、CD-ROM设备、闪存设备、或其他大容 量存储设备。
[0063] 对于系统的另一实施例,可将根据一个实施例的指令与芯片上系统一起使用。芯 片上系统的一个实施例包括处理器和存储器。用于一个此类系统的存储器是闪存存储器。 闪存存储器可位于与处理器和其他系统组件相同的管芯上。此外,诸如存储器控制器或图 形控制器之类的其他逻辑块也可位于芯片上系统上。
[0064] 图1B示出数据处理系统140,该数据处理系统140实现本发明的一个实施例的原 理。本领域的技术人员将容易理解,本文描述的多个实施例可用于替代的处理系统,而不背 离本发明的多个实施例的范围。
[0065] 计算机系统140包括能够执行根据一个实施例的至少一条指令处理核159。对于 一个实施例,处理核159表示任何类型的架构(包括但不限于,CISC、RISC或VLIW类型架 构)的处理单元。处理核159也可适于以一种或多种处理技术来制造,并且通过足够详细 地表示在机器可读介质上可适用于促进所述制造。
[0066] 处理核159包括执行单元142、寄存器组145的集合以及解码器144。处理核159 也包括对于理解本发明的多个实施例不是必需的附加电路(没有示出)。执行单元142用 于执行处理核159接收到的指令。除了执行典型的处理器指令外,执行单元142也可执行 紧缩指令集143中的指令,以便执行对紧缩数据格式进行的操作。紧缩指令集143包括用 于执行本发明的多个实施例的指令以及其他紧缩指令。执行单元142通过内部总线耦合至 寄存器组145。寄存器组145表示处理核159上用于存储包括数据的信息的存储区域。如 前文所述,可以理解,将该存储区域用于存储紧缩数据并不是关键的。执行单元142耦合至 解码器144。解码器144用于将处理核159接收到的指令解码为控制信号和/或微代码进 入点。响应于这些控制信号和/或微代码进入点,执行单元142执行合适的操作。在一个 实施例中,将解码器用于解释指令的操作码,该操作码将指示应当对该指令内所指示的对 应数据执行什么操作。
[0067] 处理核159耦合至总线141,用于与各种其他系统设备进行通信,其他系统设备可 包括但不限于:例如,同步动态随机存取存储器(SDRAM)控制器146、静态随机存取存储器 (SRAM)控制器147、猝发闪存接口 148、个人计算机存储卡国际协会(PCMCIA)/紧致闪存 (CF)卡控制器149、液晶显示器(IXD)控制器150、直接存储器存取(DMA)控制器151、以及 替代的总线主接口 152。在一个实施例中,数据处理系统140也可包括I/O桥154,用于经 由I/O总线153与各种I/O设备进行通信。此类I/O设备可包括但不限于:例如,通用异步 接收机/发射机(UART) 155、通用串行总线(USB) 156、蓝牙无线UART157、以及I/O扩展接 P158〇
[0068] 数据处理系统140的一个实施例提供了移动通信、网络通信和/或无线通信,并提 供了能够执行包括文本串比较操作的SMD操作的处理核159。可利用各种音频、视频、成像 和通信算法对处理核159进行编程,这些算法包括:离散变换(诸如Walsh-Hadamard变换、 快速傅立叶变换(FFT)、离散余弦变换(DCT)以及它们相应的逆变换);压缩/解压缩技术 (例如,色彩空间变换、视频编码运动估计或视频解码运动补偿);以及调制/解调(MODEM) 功能(例如,脉冲编码调制(PCM))。
[0069] 图1C示出能够执行用于提供推入缓冲器复制和存储功能的指令的数据处理系统 的另一些替代实施例。根据一个替代实施例,数据处理系统160可包括主处理器166、SMD 协处理器161、高速缓存处理器167以及输入/输出系统168。输入/输出系统168可以可 选地耦合至无线接口 169。SMD协处理器161能够执行包括根据一个实施例的指令的操作。 处理核170可适用于以一种或多种处理技术来制造,并且通过足够详细地表示在机器可读 介质上,可适用于促进包括处理核170的数据处理系统160的全部或部分的制造。
[0070] 对于一个实施例,SMD协处理器161包括执行单元162以及一组寄存器组164。主 处理器166的一个实施例包括解码器165,该解码器165用于识别包括根据一个实施例的、 用于由执行单元162执行的指令的指令集163中的多条指令。对于替代实施例,SIMD协处 理器161也包括用于对指令集163中的多条指令进行解码的解码器165B的至少部分。处 理核170也包括对于理解本发明的实施例不是必需的附加电路(没有示出)。
[0071] 在操作中,主处理器166执行控制通用类型的数据处理操作(包括与高速缓存存 储器167和输入/输出系统168之间的交互)的数据处理指令流。SMD协处理器指令被嵌 入到该数据处理指令流中。主处理器166的解码器165将这些SMD协处理器指令识别为 应当由附连的SMD协处理器161来执行的类型。因此,主处理器166在协处理器总线171 上发布这些SMD协处理器指令(或表示SMD协处理器指令的控制信号),由任何附连的 SMD协处理器从该协处理器总线171接收到这些指令。在这种情况下,SMD协处理器161 将接受并执行任何接收到的针对该SMD协处理器的SMD协处理器指令。
[0072] 可经由无线接口 169接收数据以通过SMD协处理器指令进行处理。对于一个示 例,能以数字信号的形式接收到语音通信,可由SMD协处理器指令处理该数字信号以便重 新生成表示该语音通信的数字音频样本。对于另一个示例,能以数字位流的形式接收到被 压缩的音频和/或视频,可由SMD协处理器指令处理该数字位流以便重新生成音频样本和 /或运动视频帧。对于处理核170的一个实施例,主处理器166和SMD协处理器161被集 成在单个处理核170中,该单个处理核170包括执行单元162、一组寄存器组164以及用于 识别包括根据一个实施例的多条指令的指令集163中的多条指令的解码器165。
[0073] 图2是处理器200的微架构的框图,该处理器200包括用于执行根据本发明的一 个实施例的指令的逻辑。在一些实施例中,可将根据一个实施例的指令实现为对具有字节 尺寸、字尺寸、双字尺寸、四字尺寸等并具有诸多数据类型(例如,单精度和双精度整数和 浮点数据类型)的数据元素进行操作。在一个实施例中,有序前端201是处理器200的部 分,该部分取出要被执行的指令,并准备这些指令以便稍后在处理器流水线中使用。前端 201可包括若干单元。在一个实施例中,指令预取器226从存储器取出指令,并将指令馈送 至指令解码器228,指令解码器228随后解码或解释这些指令。例如,在一个实施例中,该解 码器将接收到的指令解码为机器可执行的、被称为"微指令"或"微操作"(也称为微〇P或 UOP)的一个或多个操作。在其他实施例中,该解码器将指令解析为可由微架构用于执行根 据一个实施例的多个操作的操作码以及对应的数据和控制字段。在一个实施例中,追踪高 速缓存230接受经解码的微操作,并将它们组合为程序有序序列或uop队列234中的踪迹, 以用于执行。当追踪高速缓存230遇到复杂指令时,微代码ROM232提供完成操作所需的 uop〇
[0074] -些指令被转换为单个微op,而其他指令需要若干个微op以完成完整的操作。在 一个实施例中,如果需要多于四个微〇P来完成指令,则解码器228访问微代码ROM232以 执行该指令。对于一个实施例,可将指令解码为少量的微〇P,以便在指令解码器228处进 行处理。在另一实施例中,如果需要多个微op来完成操作,则可将指令存储在微代码ROM 232中。追踪高速缓存230参考进入点可编程逻辑阵列(PLA)来确定正确的微指令指针,以 从微代码ROM232中读取微代码序列来完成根据一个实施例的一条或多条指令。在微代码 ROM232完成对指令的微op进彳丁的序列化操作之后,该机器的如端201恢复从追踪尚速缓 存230中提取微op。
[0075] 无序执行引擎203是准备指令以进行执行的地方。无序执行逻辑具有多个缓冲 器,这些缓冲器用于使指令流平滑并且重排序该指令流,以优化指令流往下进入流水线并 且被调度以供执行时的性能。分配器逻辑分配每个微op需要的机器缓冲器和资源以用于 执行。寄存器重命名逻辑将多个逻辑寄存器重命名为寄存器组中的多个条目。在指令调度 器(存储器调度器、快速调度器202、慢速/通用浮点调度器204和简单浮点调度器206)之 前,分配器也为两个uop队列(一个uop队列用于存储器操作,另一个uop队列用于非存储 器操作)中的一个队列中的每个uop分配条目。uop调度器202、204、206基于对它们的从 属输入寄存器操
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1