实时指令跟踪处理器、方法以及系统的利记博彩app

文档序号:8501119阅读:409来源:国知局
实时指令跟踪处理器、方法以及系统的利记博彩app
【专利说明】实时指令跟踪处理器、方法以及系统
[0001] 背景
[0002] 领域
[0003] 各实施例涉及指令跟踪领域。具体而言,各实施例涉及处理器中的实时指令跟踪 领域。
[0004] 背景信息
[0005] 多线程和/或多核处理器目前很常见。它们用于各种类型的计算设备中,诸如服 务器、台式机、膝上型计算机、上网本、平板电脑、智能电话,以及手机,仅举几个例子而已。 当前希望,至少对于某些处理器段,越来越多的线程和/或核的趋势将持续到未来。
[0006] 多个线程和/或核一般通过提供硬件并行性来提高性能,硬件并行性允许更多指 令并行地执行。多个线程和/或核鼓励多线程或并行处理软件的开发。例如,多线程应用 可包括在不同的硬件线程、核或其他逻辑处理器上并行地执行的多个线程。
[0007] 在软件的执行过程中,各种不同类型的事件可能会改变软件的控制流。这样的事 件的示例包括条件分支指令、跳转指令、子例程调用指令以及异步事件(例如,中断、异常 等等)的执行。跟踪常常用于记录关于软件的执行的信息,包括描述控制流的信息。
[0008] 然而,这样的多线程和/或多核处理器所面临的一个挑战是,与单线程和/或单核 处理器相比,调试倾向于更困难。知道实时代码执行流常常具有挑战性。结果,调试可能 倾向于要花费更多时间,这可能会导致较高的开发成本和/或将产品投放到市场的潜在延 迟。另外,跟踪的许多现有的方法倾向于有高度的性能侵入性。
[0009] 附图简述
[0010] 可以通过参考用来说明本发明的各实施例的下列描述和附图来理解本发明。在附 图中:
[0011] 图1是包括具有实时指令跟踪(RTIT)逻辑以及存储器的实施例的处理器的实施 例的计算机系统的框图。
[0012] 图2是具有RTIT逻辑的实施例的处理器的实施例的框图。
[0013] 图3是具有RTIT重排序缓冲区队列(RRQ)内容转移逻辑的示例实施例的处理器 的实施例的框图,重排序缓冲区队列内容转移逻辑可用于将RRQ的内容转移到存储器。
[0014] 图4A是示出根据本发明的各实施例的示例性有序流水线和示例性的寄存器重命 名的无序发布/执行流水线的框图。
[0015] 图4B是示出根据本发明的各实施例的要包括在处理器中的有序架构核的示例性 实施例和示例性的寄存器重命名的无序发布/执行架构核的框图。
[0016] 图5A是根据本发明的各实施例的单个处理器核的框图,以及其与管芯上的互连 网络的连接以及其第2级(L2)缓存的本地子集。
[0017] 图5B是根据本发明的实施例的图5A中的处理器核的一部分的展开图。
[0018] 图6是根据本发明的各实施例的可以具有一个以上的核、可以具有集成的存储器 控制器、并可以具有集成的图形的处理器的框图。
[0019] 图7所示是根据本发明一实施例的系统的框图。
[0020] 图8所示是根据本发明的一个实施例的第一更具体的示例性系统的框图。
[0021] 图9所示是根据本发明的一个实施例的第二更具体的示例性系统的框图。
[0022] 图10所示是根据本发明实施例的SoC的框图。
[0023] 图11是根据本发明的各实施例的对照使用软件指令转换器将源指令集中的二进 制指令转换成目标指令集中的二进制指令的框图。
【具体实施方式】
[0024] 此处公开了用于实时指令跟踪(RTIT)的方法、处理器以及系统。在以下描述中, 阐述了大量具体细节(例如,特定RTIT逻辑实现、RTIT分组格式、硬件/固件分区细节、 逻辑分区/集成细节、处理器配置、微架构细节、操作序列、系统组件的类型和相互关系,等 等)。然而,应该理解,本发明的各实施例可以在没有这些具体细节的情况下实施。在其他 情况下,没有详细示出已知的电路、结构,以及技术,以便不至于使对本描述的理解变得模 糊。
[0025] 图1是包括处理器101以及存储器105的实施例的计算机系统100的框图。处理 器和存储器通过常规耦合机制112(例如,通过一个或多个总线、中枢、存储器控制器、芯片 组组件等等)耦合,或以别的方式彼此进行通信。存储器可包括一个或多个存储器设备,和 /或一个或多个不同类型的存储器。
[0026] 在某些实施例中,处理器101可以是通用处理器(例如,用于台式机、膝上型计算 机、上网本、平板电脑、智能电话、手机、服务器等计算机系统的类型)。替换地,处理器可以 是专用处理器。合适的专用的处理器的示例包括,但不仅限于,通信处理器、网络处理器、密 码处理器、图形处理器、协处理器、嵌入式处理器、数字信号处理器0SP)以及控制器(例 如,微控制器),仅举几个例子而已。
[0027] 处理器包括至少第一逻辑处理器102-1,可任选地多达第N个逻辑处理器102 - N, 其中,N可以是任何适当的数字(例如,从二到几十或者甚至几百)。每一个逻辑处理器都 可包括用于支持的逻辑和/或独立地与软件线程相关联。合适的逻辑处理器的示例包括, 但不仅限于,核、硬件线程、线程单元、线程槽、上下文单元,和/或能够执行指令并保持状 态(例如,执行状态和/或架构状态)的其他硬件和/或逻辑。
[0028] 再次参考图1,存储器105包括软件106。在所示实施例中,软件包括操作系统107 和一个或多个应用程序108。在操作过程中,软件的一部分可以作为执行软件103在处理器 上执行。例如,第一逻辑处理器可以具有第一执行软件(例如,第一线程)1〇3-1,可选的第 N逻辑处理器可以可任选地具有第N执行软件(例如,第N线程)103-N。虽然各实施例可 以用于任意数量的逻辑处理器(例如,包括单一逻辑处理器),但是,通常,当有多个或许多 这样的逻辑处理器时,可以体验最大的优点。一般而言,在没有此处所公开的实时指令跟踪 实施例的情况下,逻辑处理器越多,执行越复杂化,调试就越困难。
[0029] 执行软件可包括从软件106加载并在处理器上执行(例如,被调度、解码、执行等 等)的宏指令或指令集架构(ISA)级别指令。作为示例,指令可包括算术指令、加载指令、 存储指令等等。另外,指令还可包括通过分支、跳转或以别的方式在软件中移动,改变软件 的流的一种或多种类型的指令。这样的指令的示例包括,但不仅限于,分支指令、条件分支 指令、跳转指令、调用指令等等。在不同的架构中,这些指令有时被称为不同的名称。一般 而言,这些指令涉及移动到下一连续指令之外的指令(例如,通过跳过中间指令)。错误、中 断、异常,或其他类似的异步事件也可能在它们发生时改变程序流(例如,通过移动到处理 程序的例程)。
[0030] 再次参考图1,处理器还包括实时指令跟踪(RTIT)逻辑109的实施例。RTIT逻辑 可以可操作,以生成并记录、或存储关于软件103的执行的RTIT数据,包括有关执行软件的 控制流的信息。在某些实施例中,RTIT逻辑可以在存储器105中存储RTIT数据111。在某 些实施例中,存储器的不同的部分(例如,不同的地址范围)可以用于每一个逻辑处理器。 在其他实施例中,并非将RTIT数据存储到存储器(例如,作为内容,存储在存储器中,该内 容稍后允许后处理软件将RTIT数据跟踪转换为实际执行流),RTIT数据可以在处理器针脚 上输出(例如,并由后处理软件用来将RTIT数据跟踪转换为实际执行流)。
[0031] 在某些实施例中,RTIT逻辑可以用于记录在软件的执行过程中所有非静态地已知 的程序或控制流变化的跟踪信息。例如,RTIT数据111可包括指出是否采取条件分支、间 接跳转以及调用指令的目的地地址、异常、中断,以及类似的异步事件等等的起始和目的地 地址的信息。在某些实施例中,RTIT数据可以表示软件实际在处理器内实时在哪里执行的 完全的记录或完全实况反向跟踪。有利地,RTIT逻辑和RTIT数据可以允许用户跟随几乎 无限数量的控制流变化,例如,从程序流的开始到故障,或慢性能),假设有足够的存储器来 存储该量的RTIT数据。
[0032] RTIT数据111可以用于各种不同的目的。本发明的范围不仅限于RTIT数据的任 何已知的这样的用途。这样的可能的用途的示例包括,但不仅限于,调试(例如,软件功能 调试和/或硬件调试),后硅验证、诊断目的、性能分析和调节、功率分析和调节等等。RTIT 数据可以用于软件/硬件开发过程中和软件/硬件发行之后。
[0033] 在某些情况下,软件可包括使用RTIT数据111的一个或多个软件应用110。作为 示例,在调试的情况下,专业人员可以使用调试软件来访问RTIT数据,并使用它来获取关 于软件实际在哪里执行的细节,用于调试目的。作为另一个示例,在性能分析和调节的情况 下,专业人员可以使用性能分析和调节软件来访问并使用RTIT数据,以获取关于软件实际 在哪里执行以及多快的细节,以分析和调节性能。
[0034] RTIT逻辑109是管芯上的和/或处理器上的。管芯上的/处理器逻辑是固定、常 驻、或永久性在管芯上/处理器上的(例如,与从存储器加载到处理器中的软件指令相反)。 通常,管芯上的/处理器逻辑在管芯/处理器上存在,即使在处理器被断电的情况下、在引 导之前和/或在完成制造时也是如此。在某些实施例中,管芯上的/处理器逻辑包括硬件 (例如,集成电路、晶体管、寄存器等等)、固件(例如,微代码),和/或其他管芯上的/处 理器逻辑的组合。固件可包括处理器的永久性和/或非易失性存储器(例如,只读存储器 (ROM)、电可编程序只读存储器(EPROM)、闪存等等)以及存储在永久性和/或非易失性存储 器中的指令(例如,微代码、微指令、微架构指令、比ISA指令级别较低的电路级别指令,等 等)的组合。
[0035] 在某些实施例中,可以选择用于RTIT逻辑109的硬件和固件的组合,以帮助平衡 性能影响目标与管芯尺寸、功率以及相关的目标。还可以完全或几乎完全以硬件来实现 RTIT逻辑。然而,完全或几乎完全以硬件来实现RTIT逻辑可能具有若干个明显的缺点。一 方面,这可能会涉及大量的硬件逻辑,这些硬件逻辑可能倾向于增大处理器的尺寸(例如, 处理器硅片面积)、制造成本,以及功耗。与硬件不同,固件一般使用小得多的尺寸(例如, 较小的管芯面积)、具有较低的制造成本,以及一般而言还具有较小的功耗。然而,与硬件 不同,固件一般具有的性能和/或可能倾向于更大的性能侵入性,因为它与主流处理器操 作共享资源。相应地,在某些实施例中,RTIT逻辑109可以通过硬件和固件的组合来实现, 该组合能够在性能侵入性以及尺寸、制造成本以及功耗之间实现所希望的平衡。在某些实 施例中,RTIT逻辑可以用于提供每个逻辑处理器介于从大约2 %到大约20 %,或每个逻辑 处理器从大约2%到大约15%,或每个逻辑处理器从大约2%到大约10%之间的侵入性级 另IJ,虽然这不是必需的。侵入性的级别可以表示对于给定工作负荷,与当不实现RTIT逻辑 时(例如,被禁用)相比,当实现RTIT逻辑时的性能降低。如前所述的侵入性的级别(例 如,百分
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1