用于生成被抑制的地址踪迹的设备和方法
【专利说明】用于生成被抑制的地址踪迹的设备和方法 发明领域
[0001] 发明领域一般设及计算机处理器踪迹(trace),更具体而言,设及生成被抑制的地 址踪迹。
[000引背景
[0003] -个处理器,或一组处理器,执行来自指令集,例如,指令集架构(ISA)的指令。指 令集是设及编程的计算机体系结构的一部分,并一般包括本机数据类型、指令、寄存器体系 结构、寻址模式、存储器体系结构,中断和异常处理,W及外部输入和输出(I/O)。应该注意, 运里术语"指令"在本文中一般是指宏指令,例如,提供给处理器供执行的指令或微指令,例 如,由处理器的解码器解码宏指令所产生的指令。
[0004] 附图简述
[0005] 本发明是作为示例说明的,而不仅限制于各个附图的图形,在附图中,类似的参考 编号表示类似的元件,其中:
[0006]图1示出了示例性的计算机体系结构的框图;
[0007] 图2示出了被抑制的地址踪迹的流程图的实施例。
[0008]图3示出了被抑制的地址踪迹的流程图的实施例。
[0009] 图4示出了被抑制的地址踪迹的流程图的实施例。
[0010] 图5 (A) -5做示出了被抑制的地址踪迹的示例性执行。
[0011] 图6示出了使用踪迹生成器的示例性架构的框图。
[0012] 图7是根据本发明的一个实施例的寄存器架构700的框图。
[0013] 图8A是示出根据本发明的各实施例的示例性有序流水线和示例性的寄存器重命 名的无序发布/执行流水线的框图。
[0014] 图8B是示出根据本发明的各实施例的要包括在处理器中的有序架构核的示例性 实施例和示例性的寄存器重命名的无序发布/执行架构核的框图。
[0015] 图9A是根据本发明的各实施例的单个处理器核的框图,W及其与管忍上的互连 网络的连接W及其第2级化2)缓存的本地子集。
[0016] 图9B是根据本发明的实施例的图9A中的处理器核的一部分的展开图。
[0017]图10是根据本发明的各实施例的可W具有一个W上的核,可W具有集成的存储 器控制器,并可W具有集成的图形的处理器的框图。
[001引图11是根据本发明的一个实施例的第一更具体的示例性系统的框图。
[0019] 图12是根据本发明的一个实施例的第二更具体的示例性系统的框图。
[0020] 图13是根据本发明的一个实施例的片上系统的框图。
【具体实施方式】
[0021] 在下面的描述中,阐述了很多具体细节。然而,应该理解,本发明的各实施例可W 在没有运些具体细节的情况下实施。在其他情况下,没有详细示出已知的电路、结构,W及 技术,W便不至于使对本描述的理解变得模糊。
[0022] 说明书中对"一个实施例"、"实施例"、"示例实施例"等等的引用表示所描述的实 施例可包括特定特征、结构或特性,但是,每一个实施例可W不一定包括该特定特征、结构, 或特征。此外,运样的短语不一定是指同一个实施例。此外,当结合一个实施例描述特定特 征、结构或特性时,认为在本领域技术人员学识范围内,可W与其他实施例一起实施运样的 特征、结构或特性,无论是否对此明确描述。
[002引 概览
[0024]ISA与微体系结构不同,该微体系结构是实现ISA的处理器的内部设计。带有不同 的微体系结构的处理器可W共享共同的指令集。例如,Intel底处理器,例如,Imel饭CoreTM 处理器,W及位于加利福尼亚州桑尼维尔的先进微器件公司(AdvancedMicroDevices, Inc.)处理器实现x86指令集的几乎相同的版本(带有被添加到较新的版本中的某些扩 展),但是,具有不同的内部设计。例如,ISA的相同寄存器架构可W使用已知的技术,W不 同的微架构,W不同的方式来实现,包括专用物理寄存器,使用寄存器重命名机制(例如, 寄存器别名表(RAT),重新排序缓冲器(ROB)W及隐退寄存器组的使用,W及使用多个图W 及寄存器的池)的一个或多个动态分配的物理寄存器。除非另作说明,短语"寄存器体系 结构"、"寄存器组",W及寄存器是指对软件和/或编程器W及指令指定寄存器的方式可见 的东西。在需要特殊性的情况下,形容词"逻辑、体系结构,或软件可见的"将用于表示寄存 器体系结构中的寄存器/文件,而不同的形容词将用于指定给定微型体系结构中的寄存器 (例如,物理寄存器、重新排序缓冲器、隐退寄存器、或寄存器池)。
[0025]指令集包括一个或多个指令格式。给定指令格式定义各种字段(比特数、比特的 位置)W指定,其中要执行的操作W及将对其进行操作的操作数。给定指令是使用给定指 令格式来一般性地表达的,并指定操作和操作数。指令流是特定指令序列,其中,序列中的 每一指令都是某一个指令格式出现的指令。
[0026] 科学、金融、自动向量化的通用,MS(识别、挖掘W及合成)/视觉和多媒体应用程 序(例如,2D/3D图形、图像处理、视频压缩/解压缩、语音识别算法和音频操纵)常常需要 对大量的数据项执行相同操作(被称为"数据并行性")。单指令多数据(SIMD)是指使处 理器对多个数据项执行相同操作的一种指令。SIMD技术特别适于能够在逻辑上将寄存器 中的比特分割为若干个固定大小的数据元素的处理器,每一个元素都表示单独的值。例如, 64比特寄存器中的比特可W被指定为作为四个单独的16比特数据元素来被操作的源操作 数,每一个数据元素都表示单独的16比特值。作为另一个示例,256比特寄存器中的比特可 W被指定为四个单独的64比特打包的数据元素(四字(曲大小的数据元素),八个单独的 32比特打包的数据元素(双字(D)大小的数据元素),十六单独的16比特打包的数据元素 (一字(W)大小的数据元素),或Ξ十二个单独的8比特数据元素(字节度)大小的数据元 素)来被操作的源操作数。运种类型的数据被称为打包的数据类型或向量数据类型,运种 数据类型的操作数被称为打包数据操作数或向量操作数。换言之,打包数据项或向量是指 打包数据元素的序列;而打包数据操作数或向量操作数是SIMD指令(或被称为打包数据指 令或向量指令)的源或目的地操作数。
[0027] 作为示例,一种类型的SIMD指令指定要W垂直方式对两个源向量操作数执行的 单个向量运算,W利用相同数量的数据元素,W相同数据元素顺序,生成相同大小的目的地 向量操作数(也称为结果向量操作数)。源向量操作数中的数据元素被称为源数据元素, 而目的地向量操作数中的数据元素被称为目的地或结果数据元素。运些源向量操作数是相 同大小,并包含相同宽度的数据元素,如此,它们包含相同数量的数据元素。两个源向量操 作数中的相同比特位置中的源数据元素形成成对的数据元素(也被称为对应的数据元素; 良P,每一源操作数的数据元素位置0处的数据元素对应,每一源操作数的数据元素位置1处 的数据元素对应,等等)。由该SIMD指令所指定的操作分别地对运些源数据元素对中的每 一对执行,W生成匹配的数量的结果数据元素,如此,每一对源数据元素都具有对应的结果 数据元素。由于操作是垂直的并且由于结果向量操作数大小相同,具有相同数量的数据元 素,并且结果数据元素与源向量操作数W相同数据元素顺序来存储,因此,结果数据元素与 源向量操作数中的它们的对应的源数据元素对处于结果向量操作数的相同比特位置。除此 示例性类型的SIMD指令之外,还有各种其他类型的SIMD指令(例如,只有一个或具有两个 W上的源向量操作数的;W水平方式操作的;生成不同大小的结果向量操作数的,具有不 同大小的数据元素的,和/或具有不同的数据元素顺序的)。应该理解,术语目的地向量操 作数摂(或目的地操作数)被定义为执行由指令所指定的操作的直接结果,包括将该目的 地操作数存储在某一位置(寄存器或在由该指令所指定的存储器地址),W便它可W作为 源操作数由另一指令访问(由另一指令指定该同一个位置)。
[0028]指令集体系结构可包括指定向量运算并且具有从运些向量寄存器中选择源寄存 器和/或目的地寄存器的至少某些SIMD指令(示例性SIMD指令可W指定要对向量寄存器 中的一个或多个的内容执行的向量运算,该向量运算的结果被存储在向量寄存器中的一个 中)。本发明的不同的实施例可W具有不同大小的向量寄存器并支持多一些/少一些/不 同大小的数据元素。
[002引 由SIMD指令所指定的多比特数据元素的大小(例如,字节、字、双字、四倍长字) 确定向量寄存器内的"数据元素位置"的比特位置,而向量操作数的大小确定数据元素的数 量。打包的数据元素是指存储在特定位置的数据。换言之,取决于目的地操作数中的数据 元素的大小和目的地操作数的大小(目的地操作数中的总比特数)(或换句话说,取决于目 的地操作数的大小和目的地操作数内的数据元素的数量),所产生的向量操作数内的多比 特数据元素位置的比特位置变化(例如,如果所产生的向量操作数的目的地是向量寄存器 (在此讨论中,向量寄存器和打包的数据元素寄存器可互换地使用),那么,目的地向量寄 存器内的多比特数据元素位置的比特位置会变化)。例如,多比特数据元素的比特位置在 对32比特数据元素(数据元素位置0占用比特位置31 : 0,数据元素位置1占用比特位置 63 : 32,依次类推)进行操作的向量运算和对64比特数据元素(数据元素位置0占用比 特位置63 : 0,数据元素位置1占用比特位置127 : 64,依次类推)进行操作的向量运算 之间是不同的。考虑了 8比特字节度)、16比特字(W)、32比特双字值)或单精度浮点,W 及64比特四倍字(曲或双精度浮点的数据元素大小,虽然其他宽度也是可W的。
[0030] 示例性计算机架构
[0031] 诸如此处所讨论的那些之类的处理器,一般执行对操作数进行操作(例如,相加、 移动,等等)的指令。处理器踪迹允许处理器的活动的输出(例如,用于查看)。例如,处理 器踪迹可W捕捉有关每一硬件线程上的软件执行的信息(例如,使用专用硬件设施),W便 在执行完成之后,用户或软件可W处理捕捉到的踪迹数据和/或重构准确的程序流。
[0032] 捕捉到的处理器踪迹可W被收集在分组中,例如,对于每一个执行的指令,一个或 多个分组。处理器踪迹(例如,数据集)可包括控制流踪迹,该踪迹在它们的分组中包括定 时和程序流信息(例如,分支目标、采取/不采取分支指示)和程序产生的模式相关的信息 (例如,状态转换)。在被输出之前,运些分组可W被缓存在内部(例如,在处理器中)。处理 器踪迹(例如,输出的数据集)可W通过将它写入到文件,例如,存储器,和/或诸如联合测 试行为组织-调试端口(JointTestActionGroup-Debug化;rt:JTAG-DF〇 之类的端口,来 输出。处理器踪迹在被抑制之前可W被缓存在内部,然后,发送到文件,例如,发送到存储器 和/或端口。在一个实施例中,处理器地址踪迹被输出到调试器或性能评测器(profiler)。 处理器踪迹可包括数据值值V)踪迹和/或数据地址踪迹,诸如数据线性地址值LA)。处理 器踪迹可包括数据值值V)踪迹分组和/或数据地址踪迹分组,诸如数据线性地址值LA)。 由程序的存储器访问(例如,读取或写入)所产生的数据值和数据地址踪迹(例如,分组) 可能会产生大地不合需要的处理器踪迹输出,例如,数据集。被指令访问的数据地址可能会 产生处理器踪迹的大地不合需要的地址踪迹(例如,分组)。在一个实施例中,处理器踪迹 (例如,包括DV和DLA分组的输出的数据集)超过只包括控制流分组的处理器踪迹输出的 大小(例如,W比特为单位)的六十Ξ倍。在生成分组之前可W进行抑制(例如,在分组中 根本不包括地址,踪迹[例如,分组]被缓存或不被缓存在内部)。
[003引图1是示例性的计算机体系结构100的框图。本领域已知的对膝上型设备、台式 机、手持PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处 理器、数字信号处理器值SP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携 式媒体播放器、手持设备W及具有处理器的各种其他电子设备的其他系统设计和配置也适 用于被抑制的地址踪迹。一般地,能够包含本文中所公开的处理器和/或其他执行逻辑的 多个系统和电子设备一般适用于被抑制的地址踪迹。
[0034]系统100符合本发明的一个实施例。系统100包括一个或多个处理器110、115,运 些处理器禪合到控制器中枢120。在一个实施例中,控制器中枢120包括图形存储器控制 器中枢(GMCH) 190和输入/输出中枢(I0H) 150 (可W在单独的忍片上);GMCH190包括禪 合到存储器140和协处理器145的存储器和图形控制器;I0H150将输入/输出(I/O)设 备160禪合到GMCH190。可另选地,存储器和图形控制器中的一个或两者都集成在处理器 内(如此处所描述的),存储器140和协处理器145利用I0H150,直接禪合到单个忍片中 的处理器110W及控制器中枢120。
[0035]在图1中利用虚线表示额外的处理器115的可任选的本质。每一处理器110、 115都可包括处理核(110A)中的一个或多个,例如,如本文中所描述的,并且可W是处理器 1100的某一版本。
[003引存储器140可W是例如动态随机存取存储器值RAM)、相变存储器(PCM)或运两者 的组合。对于至少一个实施例,控制器中枢120经由诸如前端总线(FSB)之类的多分支总 线、诸如快速通道互连(QPI)之类的点对点接口、或者类似的连接195与处理器110、115进 行通信。
[0037] 在一个实施例中,协处理器145是专用处理器,诸如例如高吞吐量(许多集成的 核)MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等等。 在一个实施例中,控制器中枢120可W包括集成图形加速器。
[0038]就包括架构、微架构、热的,功率消耗特征等等的一系列优点的度量而言,在物理 资源110、115之间可能会有各种差异。
[0039] 在一个实施例中,处理器110执行控制一般类型的数据处理操作的指令。协处理 器指令可嵌入在运些指令中。处理器110将运些协处理器指令识别为应当由附连的协处理 器145执行的类型。因此,处理器110在协处理器总线或者其他互连上将运些协处理器指 令(或者表示协处理器指令的控制信号)发布到协处理器145。协处理器145接受并执行 所接收的协处理器指令。
[0040] 处理器110包括硬件踪迹生成