数据处理装置中的提示

文档序号:1220272 发布日期:2020-09-04 浏览:12次 >En<

阅读说明:本技术 数据处理装置中的提示 (Hinting in a data processing apparatus ) 是由 杰西·加勒特·贝 亚历桑德罗·里科·卡洛 李·埃文·艾森 迈克尔·菲利普 于 2019-01-18 设计创作,主要内容包括:提供了一种装置和一种操作数据处理装置的方法。数据处理电路响应于提示指令以在随后针对其他数据处理指令生成控制信号时,断言至少一个性能修改控制信号。这使得执行由数据处理指令定义的数据处理操作的数据处理功能硬件以修改的方式操作,尽管所产生的数据处理结果不会根据至少一个性能修改控制信号是否被断言而改变。(An apparatus and a method of operating a data processing apparatus are provided. The data processing circuit is responsive to the hint instruction to assert at least one performance modifying control signal when control signals are subsequently generated for other data processing instructions. This causes the data processing function hardware that performs the data processing operations defined by the data processing instructions to operate in a modified manner, although the resulting data processing result will not change depending on whether the at least one performance modifying control signal is asserted.)

数据处理装置中的提示

技术领域

本公开涉及数据处理。具体地,本公开涉及在数据处理装置中提供操作提示。

背景技术

通过向数据处理装置提供定义数据选定的处理操作应该是什么的指令序列,使数据数据装置执行这些数据处理操作。必须为数据处理装置预定义指令,该预定义指令的集合通常被称为其“指令集”。一方面,对于能够执行许多定义的数据处理操作的数据处理装置来是有用的,但是另一方面,这是以需要将相应大量指令定义为其指令集的一部分为代价的。此外,在针对指令集定义的指令在有限数量的位内指定的情况下,这又限制了可以定义的单独指令的数量,并且因此要针对给定数据处理操作定义指令,需要证明在指令集内使用该“指令空间”的合理性。因此,可以为其定义指令的单独数据处理操作的数量是有限的。这对数据处理装置的程序员定义数据处理操作的能力施加了约束,这些数据处理操作应当在简洁的数据处理指令中执行。

发明内容

在本文描述的一个示例实施例中,提供了一种装置,该装置包括解码电路,用于根据数据处理指令序列生成控制信号;以及数据处理电路,包括数据处理功能硬件,其中数据处理电路响应于控制信号,在操作程序中操作数据处理功能硬件,以执行由数据处理指令序列定义的数据处理操作,从而产生数据处理结果,其中解码电路响应于数据处理指令序列之前的提示指令以在针对数据处理指令序列生成控制信号时,断言至少一个性能修改控制信号,并且数据处理电路响应于对至少一个性能修改控制信号的断言,以响应于控制信号而在修改后的操作程序中操作数据处理功能硬件来执行由数据处理指令序列定义的数据处理操作,从而产生所述数据处理结果,其中修改后的操作程序不同于该操作程序。

在本文描述的一个示例实施例中,提供了一种操作数据处理装置的方法,该方法包括:根据数据处理指令序列生成控制信号;响应于控制信号,在操作程序中操作数据处理功能硬件,以执行由数据处理指令序列定义的数据处理操作,从而产生数据处理结果;在响应于数据处理指令序列之前的提示指令而针对数据处理指令序列生成控制信号时,断言至少一个性能修改控制信号;以及响应于对至少一个性能修改控制信号的断言和控制信号,在修改后的操作程序中操作数据处理功能硬件,以执行由数据处理指令序列定义的数据处理操作,从而产生数据处理结果,其中修改后的操作程序不同于该操作程序。

在本文描述的一个示例实施例中,提供了一种装置,包括:生成设备,用于根据数据处理指令序列生成控制信号;第一操作设备,用于响应于控制信号,在操作程序中操作数据处理功能硬件,以执行由数据处理指令序列定义的数据处理操作,从而产生数据处理结果;断言设备,用于在响应于数据处理指令序列之前的提示指令而针对数据处理指令序列生成控制信号时,断言至少一个性能修改控制信号;以及第二操作设备,用于响应于对至少一个性能修改控制信号的断言和控制信号,而在修改后的操作程序中操作数据处理功能硬件,以执行由数据处理指令序列定义的数据处理操作,从而产生数据处理结果,其中,修改后的操作程序不同于该操作程序。

附图说明

将参考附图中所示的实施例,仅通过示例的方式来进一步描述本发明,在附图中:

图1示意性地示出了一个示例实施例中的数据处理装置;

图2A、图2B、图3A和图3B示意性地示出了在各个示例实施例中提供的提示控制电路,该提示控制电路用于根据作为对提示指令进行解码的结果而接收到的控制信号来生成一个或多个性能修改控制信号;

图4示意性地示出了一个示例实施例中的用于存储指令修改表的内容可寻址存储器存储装置;

图5A、图5B、图6A和图6B示意性地示出了各个示例实施例中的数据处理装置的功能硬件,可以根据该数据处理装置接收到的控制信号来修改其操作;以及

图7是示出在一个示例实施例的方法中采取的步骤序列的流程图。

具体实施方式

在参考附图讨论实施例之前,提供实施例的以下描述。

根据一个示例配置,提供了一种装置,该装置包括:解码电路,用于根据数据处理指令序列生成控制信号;以及数据处理电路,包括数据处理功能硬件,其中数据处理电路响应于控制信号,在操作程序中操作数据处理功能硬件,以执行由数据处理指令序列定义的数据处理操作,从而产生数据处理结果,其中解码电路响应于数据处理指令序列之前的提示指令以在针对数据处理指令序列生成控制信号时断言至少一个性能修改控制信号,并且数据处理电路响应于对至少一个性能修改控制信号的断言,以响应于控制信号在修改后的操作程序中操作数据处理功能硬件来执行由数据处理指令序列定义的数据处理操作,从而产生所述数据处理结果,其中,修改后的操作程序不同于该操作程序。

本技术提供提示指令,装置的程序员可以将该提示指令引入到对装置的操作进行控制的数据处理指令序列中。装置响应于数据处理指令序列的的操作由该装置的解码电路生成的控制信号来确定,反过来又取决于其接收到的特定数据处理指令序列。在提供给装置的数据处理指令中包括提示指令,引起对装置如何响应于在该提示指令之后接收到的数据处理指令的方式的修改。特别地,该提示指令使解码电路断言至少一个性能修改控制信号以引起该性能修改。重要的是要理解,在这是“提示”指令并且在该“提示指令”引起“性能”修改控制信号的断言的情况下,本技术因此不涉及以确定性方式改变响应于数据处理指令序列而执行的数据处理操作,即改变数据处理操作产生的数据处理结果,而是涉及修改数据处理操作被执行的方式(在“性能”方面),使得数据处理操作可以例如以效率、功耗、等待时间等可以相对于在未使用提示指令的情况下数据处理操作将被执行的方式而变化的方式来执行。为此,如以上定义中所阐述的,无论数据处理指令序列是根据操作程序执行的(即,不在提示指令之前)还是根据修改后的操作程序执行的(即,当在提示指令之前时),该装置都被布置为产生相同的数据处理结果。通过任一程序产生相同的结果,但是产生这些结果的方式可以在操作程序和修改后的操作程序之间以多种方式变化。

因此,本技术为程序员、甚至是指令集架构师提供了一种机制,用于对装置响应于形成数据处理指令序列的一个或多个数据处理指令的方式进行修改,而不必重新定义多个数据处理指令作为与作为响应的修改相对应的装置的指令集的一部分。

此外,尽管以上描述涉及提示指令,但是本技术还包括提供装置程序员可用的多个提示指令,并且一个或多个提示指令可以在数据处理指令序列之前,以便当装置执行数据处理指令序列时,特别是通过断言在对指令进行解码时生成的性能修改控制信号,将特定配置应用于装置。因此,提供了一种方法,该方法避免了需要用每个定义的数据处理指令的多个不同版本来扩展指令集(以考虑当在提示指令之前时一个或多个数据处理指令被执行的修改方式)。可以通过提示指令选择的断言实现的组合变型,给出了可以使装置执行由数据处理指令序列定义的其数据处理操作的方式的变化,其中仅需要对指令集的小扩展(以定义一个或多个提示指令)。

仅出于提供说明性示例的目的,这些提示指令的一个使用情况是将非暂时行为应用于存储器操作。非暂时存储器指令是加载和存储操作的变型,其中不期望所存取的数据很快被再次存取,并且因此不需要将所存取的数据保存在缓存中。

使用存储器提示的另一说明性示例是在给定加载事件上禁止预提取训练。例如,已知指针跟踪工作负荷不利于预提取,并且可能会污染预提取训练结构。因此,绕过对这些加载事件的训练改进了整体预提取性能。

提示指令影响数据处理指令序列的后续性能的方式可以采取各种形式。在一些实施例中,提示指令定义了针对其至少一个性能修改控制信号要被断言的后续指令的数量。换句话说,在提示指令被解码之后,该数量的后续指令将被执行,同时至少一个性能修改控制信号被断言,直到达到该数量,并且然后提示指令的效果被关闭。这为装置程序员提供了将提示指令应用于定义的后续指令集的能力。

由提示指令定义后续指令的数量的方式可以采取各种形式,但是在一些实施例中,提示指令定义了针对其至少一个性能修改控制信号参考提示断言矢量要被断言的后续指令的数量,其中提示断言矢量中的每个位对应于该数量的后续指令中的一个指令。因此,这种方法提供了可以将提示指令应用于该数量的后续指令的又一粒度级别,因为通过提示断言矢量中的位的适当设置,可以使后续指令的选定(自由定义的)子集经受至少一个性能修改控制信号,同时通过互斥,不设置提示断言矢量中的其余位意味着将不会在至少一个性能修改控制信号被断言的情况下执行这个后续指令的互补子集。

在一些实施例中,该装置还包括计数电路,用于保持针对其至少一个性能修改控制信号被断言的指令计数。这进一步支持如下实施例,在该实施例中,应当针对在提示指令之后的定义数量的后续指令来实现提示指令。计数电路采用的特定配置可以采用多种形式。尽管提示指令可以使针对在提示指令之后的所有数据处理指令断言至少一个性能修改控制信号(如上所述,可能达到预定计数的指令),但在一些实施例中,提示指令定义了针对其至少一个性能修改控制信号要被断言的指令类型。将认识到,取决于特定系统要求,指令可以被不同地分类为类型,并且因此在这样的实施例中由提示指令定义的指令类型可以采取多种形式。然而,仅通过说明性示例的方式,该类型可以是存储器访问指令,或者实际上是存储器访问指令的某些子类型等。

从上面的讨论中可以清楚地看出,本技术包括如下实施例,在该实施例中,可以响应于一个或多个提示指令来断言多个不同的性能修改控制信号,并且在这种情况下,在一些实施例中,提示指令提供了提示类型矢量,其中提示类型矢量标识多个性能修改控制信号中的哪些要被断言。换句话说,该装置可以被提供有提示类型集,并且提示指令可以通过提示类型矢量的机制从这些提示类型中进行选择,其中例如在提示类型矢量内设置的特定位标识了多个性能修改控制信号中的哪些将被断言。

在一些实施例中,提示指令指定程序计数器值,并且解码电路响应于该提示指令而断言至少一个性能修改控制信号,直到达到程序计数器值。这意味着代替(或除了)提示指令指定了针对其至少一个性能修改控制信号要被断言的后续指令的数量,程序员可以使用提示指令来指定被提供给装置的指令中的特定点,在该特定点处应当停止至少一个性能修改控制信号的断言。根据程序计数器值来指定提示指令可能是有用的,因为这与提供给装置的程序的结构具有逻辑联系。

尽管上述实施例集中于至少一个性能修改控制信号的断言,但是在一些实施例中,解码电路响应于提示结束指令而停止至少一个性能修改控制信号的断言。然后,这为程序员提供了另一种工具,用于控制至少一个性能修改控制信号的断言,即,使得断言能够被显式结束,而不管与导致断言的提示指令相关联的当前活动的任何其他机制(计数、提示类型、PC值等)。

生成和断言至少一个性能修改控制信号的方式可以采用多种形式,但是在一些实施例中,解码电路响应于数据处理指令序列而生成解码的数据处理指令序列,并且解码电路响应于提示指令而修改数据处理指令序列的解码,以生成修改后的解码的数据处理指令序列。因此,遇到提示指令可以使解码电路修改其后续数据处理指令序列的解码,从而以某种方式修改其生成的解码的数据处理指令。例如,可能存在如下情况:由解码电路接收的数据处理指令是特定格式的,例如在装置架构的特征位长度内定义,例如16位、32位、64位等,解码电路对指令进行“拆包(unpack)”以生成通常较长的解码的数据处理指令,并且性能修改控制信号的断言可以通过影响由于对数据处理指令序列的解码而产生的拆包后的解码的数据处理指令来实现。

可以在装置内以各种方式来处理这些解码的数据处理指令,但是在一些实施例中,该装置还包括至少一个缓存存储装置,用于存储解码的数据处理指令。该至少一个缓存存储装置本身可以采取多种形式,但是在一些实施例中,该至少一个缓存存储装置是以下各项中的至少一项:微操作缓存、L0缓存以及循环缓存。这些类型的缓存通常以与这样的装置的数据处理电路紧密集成的方式(例如,与处理器核紧密关联)来实现,可以通过如下方式从本技术中受益:通过允许以紧密耦合到数据处理电路的方式来保存修改后的解码的数据处理指令序列。

在一些实施例中,该装置还包括用于存储条目的内容可寻址存储器存储装置,这些条目包括多个程序计数器值的指示以及当遇到与多个程序计数器值的指示之一匹配的指令时要被断言的至少一个相关联的性能修改控制信号。这种内容可寻址存储器存储装置的使用使得该装置能够监视其遇到的程序计数器值,并且在遇到该程序计数器值时使用这些程序计数器值中的至少一者来断言相关联的性能修改控制信号。

这样的实施例还可以提供线程标识符和/或进程标识符的指示,以允许在至少一个相关联的性能修改控制信号被断言的上下文中进行更精细水平的控制。因此,在一些实施例中,内容可寻址存储器存储装置的条目还包括线程标识符的指示,其中,解码电路还要求线程标识符的指示匹配当前线程,以断言至少一个相关联的性能修改控制信号。类似地,在一些实施例中,内容可寻址存储器存储装置的条目还包括进程标识符的指示,其中,解码电路还要求进程标识符的指示匹配当前进程,以断言至少一个相关联的性能修改控制信号。

可以在装置内的各个位置处提供这样的内容可寻址存储器,但是在一些实施例中,内容可寻址存储器存储装置被提供在到指令缓存的并行路径上。这意味着,当指令通过指令缓存时,可以将它们与内容可寻址存储器并行比较(或者至少可以将它们的程序计数器值与内容可寻址存储器进行比较),并且因此,由于这种并行访问,在其相关技术中提供内容可寻址存储器不应影响装置的定时。

本技术不限于性能修改控制信号可以修改数据处理功能硬件操作的方式的方式,并且因此,在实施例中,数据处理电路响应于至少一个性能修改控制信号的断言,而修改以下各项中的至少一项的方式:

缓存;

预提取;

分支预测;

解码宽度选择;

指令缓存;

原子存储器事务;

存储器事务顺序约束;以及

动态二进制转换在装置中以相对于操作程序的修改后的操作程序执行。

由数据处理功能硬件执行的数据处理操作由数据处理指令序列定义,并且因此,通常,对数据处理指令序列的修改将产生修改后的数据处理结果。然而,本技术认识到这不是普遍正确的,因为指令集可以定义仅影响架构状态而不影响程序状态的指令。例如,软件预提取指令可以被定义,其可以使程序员控制是否执行预提取,但是使用该指令将不会改变由数据处理指令序列产生的数据处理结果。在这种情况下,可以通过定义是否执行这样的指令来实现本技术,因为这还允许上面讨论的性能修改(而不影响数据处理结果)将被实现。因此,在实施例中,数据处理电路响应于至少一个性能修改控制信号的断言,而省略由数据处理指令序列中的数据处理指令定义的至少一个数据处理操作,以产生未被该数据处理指令的省略而修改的所述数据处理结果。

根据另一示例配置,提供了一种操作数据处理装置的方法,该方法包括:根据数据处理指令序列生成控制信号;响应于控制信号,在操作程序中操作数据处理功能硬件,以执行由数据处理指令序列定义的数据处理操作,从而产生数据处理结果;在响应于数据处理指令序列之前的提示指令而针对数据处理指令序列生成控制信号时,断言至少一个性能修改控制信号;以及响应于至少一个性能修改控制信号的断言和控制信号,而在修改后的操作程序中操作数据处理功能硬件,以执行由数据处理指令序列定义的数据处理操作,从而产生数据处理结果,其中修改后的操作程序不同于该操作程序。

根据另一示例配置,提供了一种装置,该装置包括:生成设备,用于根据数据处理指令序列生成控制信号;第一操作设备,用于响应于控制信号,在操作程序中操作数据处理功能硬件,以执行由数据处理指令序列定义的数据处理操作,从而产生数据处理结果;断言设备,用于在响应于数据处理指令序列之前的提示指令而针对数据处理指令序列生成控制信号时,断言至少一个性能修改控制信号;以及第二操作设备,用于响应于至少一个性能修改控制信号的断言和控制信号,而在修改后的操作程序中操作数据处理功能硬件,以执行由数据处理指令序列定义的数据处理操作,从而产生数据处理结果,其中修改后的操作程序不同于该操作程序。

现在将参考附图来描述特定实施例。

图1示出了根据一个实施例的数据处理装置100。该装置100被示意性地示出为包括执行电路102,该执行电路102将被标识为装置中将执行由装置程序员提供给它的指令的组件。本领域普通技术人员将进一步认识到,仅出于清楚的目的,装置100的组件仅被示意性地并且以相对粗略的细节水平示出,其中本领域普通技术人员对于数据处理装置的组件(例如,执行电路102)可以被配置的许多不同方式是熟悉的。因此,为了简洁起见,在此省去了这样的组件的构造的进一步细节。然而,如图1所示,执行电路102被示出为包括控制电路104以及ALU电路106(算术逻辑单元)的实例,其中控制电路104维持对执行电路102的整体控制。ALU电路104在这里被提供为执行电路102中数据处理功能硬件的示例,但是本领域普通技术人对于可以形成执行电路102的一部分的许多不同种类的数据处理功能硬件是熟悉的。ALU 106相对于保存在寄存器108中的数据值执行其数据处理操作。此外,通过加载/存储电路110,寄存器108的内容被从执行电路外部的存储装置加载并且被存储到执行电路外部的存储装置中。数据值可以被暂时地缓存在数据缓存112中(实际上可能包括数据缓存级的层次结构),同时由存储器114提供用于数据值的长期存储。存储器114也是用于数据处理指令的存储位置,装置程序员提供该数据处理指令以配置装置应当执行的数据处理操作。这些指令通过提取电路118从存储器中检索,并且可以被缓存在指令缓存116中(实际上可以是指令缓存的层次结构)。通常,提取电路118按顺序从存储器114中检索指令,指令的当前指令由程序计数器电路124提供给提取电路118的程序计数器(PC)值来标识。从指令缓存116或存储器114中检索的指令可以在由解码电路122解码之前,被暂时地缓存在指令缓冲器120中。由提取电路118检索并且由解码电路122解码的指令指定了由执行电路102执行的数据处理操作,并且实际上可以控制装置100的任何其他指令可配置组件的操作。这种控制通过控制信号在解码电路122和执行电路102之间进行调解,并且应当注意,这些控制信号还可以控制装置100的其他指令可配置组件,并且图1示出了也可能由加载/存储电路110和数据缓存112接收的这些控制信号的示例。与本公开特别相关的是,在装置100中额外提供提示控制电路126,该提示控制电路126还从程序计数器124接收PC值以及从指令缓冲器120传递到解码电路122的指令的指示。提示控制电路126还接收关于解码电路122的解码操作的信息。实际上,由提示控制电路从解码电路接收到的信号本身就是控制信号,即从解码的提示指令得到的那些控制信号。

作为响应(如将参考下面的附图更详细地描述的那样),提示控制电路126可以发信号通知解码电路122,以使该信号与其针对每个解码的指令断言的控制信号并行地断言某些性能修改控制信号。实际上,应当理解,“控制信号”和解码电路断言的“性能修改控制信号”都可以被认为是各种“控制信号”,但是在这里被赋予了这些不同的标签以利于当前的讨论。特别地,提示控制电路126被布置为标识何时将提示指令从指令缓冲器120传递到解码电路122,并且在此基础上使解码电路122断言随后影响由该装置的数据处理功能硬件(例如,执行电路102、加载/存储电路110和数据缓存112)执行后续指令的方式的某些性能修改控制信号。这里要理解的重要点是,一个或多个性能修改控制信号是否由解码电路122断言,尽管这可以修改由数据处理指令定义的数据处理操作被执行的方式,但是这将不会改变那些数据处理操作的数据处理结果。换句话说,作为解码电路接收的数据处理指令(除了提示指令)的结果而产生的数据处理结果不取决于何时一个或多个控制信号被断言而改变。因此,数据处理结果保持相同(仅取决于接收到的数据处理指令和这些指令所引用的数据值)。参考下面的附图,讨论了这样的性能修改控制信号的进一步细节,并且尤其是它们可能影响的“性能”类型。

图2A、图2B、图3A和图3B示意性地示出了诸如图1的提示控制电路126之类的提示控制电路的示例配置。尽管在四个单独的图中示出了这些控制电路的示例配置,但是重要的是,应当理解这些实施例不是相互排斥的,并且根据提示控制电路的特定配置,这四个附图中的一个或多个中所示的组件可能会出现在提示控制电路的给定实例中。

图2A示意性地示出了提示控制电路200,该提示控制电路200包括控制电路202和计数电路204。在该实施例中,来自解码的提示指令的控制信号使控制电路202和计数电路204进行操作,使得计数电路被复位为预定值或由提示指令定义的值。然后,随后对于每个解码的指令(请注意,控制电路202可以另外接收程序计数器(PC)值的指示,其可以被用于跟踪指令进展,尽管这不是必需的,因为计数器也可以针对每个指令被简单地更新),由计数电路204保存的计数值被修改(例如,被适当地递增或递减)。在继续该计数的同时,控制电路202使一个或多个性能修改控制信号被断言。一旦计数达到预定限制(例如,被递增到指定值或递减到0),则这使得控制电路202再次关闭一个或多个性能修改控制信号。

图2B示意性地示出了如下实施例,在该实施例中,提示控制电路210还包括控制电路212,该控制电路212响应于以控制信号形式从解码的提示指令接收到的断言矢量(提示断言矢量)。实际上,这些位的集合可以被直接地从提示指令复制并且被暂时地存储在提示控制电路210中的专用存储装置214内,尽管其也可以形成控制电路212的一部分。该断言矢量214指示从控制电路212可以断言的、解码的提示指令已经指示现在应当被断言的多个性能修改控制信号中进行选择。

图3A示意性地示出了包括控制电路302的提示控制电路300。控制电路302存储针对其性能修改可以被断言的一个或多个指令类型集,并且其本身可以由解码的提示指令或提示结束指令来配置,使得程序员可以控制在提供提示指令之后开始并且可能以提示结束指令结束的指令序列,其中一个或多个指令类型应当具有断言的性能修改控制信号。控制电路302还包括比较电路306,该比较电路306从电路304接收这些激活的指令类型的指示,并且还接收当前指令(即,PC)的指示。当这些指令匹配时(即,在当前指令被标识为指定类型之一时),这使控制电路302断言一个或多个性能修改控制信号。还示出了控制电路302以包括用于终端PC 308的存储装置,该存储装置可以通过适当的提示指令来设置,使得性能修改控制信号被断言,直到达到特定程序计数器值并且比较电路306也接收到该终端PC值,从而通过比较来实现。

图3B示意性地示出了包括控制电路322的提示控制电路320。控制电路322具有用于定义的提示集的存储装置,并且还从提示指令接收提示断言矢量(通过从解码电路接收到的控制信号)。提示断言矢量的长度与控制电路322中定义的提示的数量相匹配,并且因此这提供了如下机制,通过该机制,提示指令可以使一个或多个定义的提示被激活,并且在此基础上控制电路322断言一个或多个性能修改控制信号。因此,在所示示例中,提示1、2和6被激活,而提示3、4和5未被激活。

图4示意性地示出了一个实施例的装置内的某些组件。如在图4的示例中,这些组件包括程序计数器400、提取电路402、指令缓冲器(ibuff)404以及解码电路406。这里另外提供了内容可寻址存储器408的实例,在本文中也称为“指令修改表(IMT)”。该内容可寻址存储器408与程序计数器400、提取电路402、指令缓冲器404以及解码电路406的链并行地提供,使得对于由程序计数器电路400生成的每个程序计数器指示,不仅由提取电路402接收,而且还由内容可寻址存储器408接收。内容可寻址存储器408内的每个条目(行)包括程序计数器值,该程序计数器值指示一个或多个提示应当应用于其的提示指令。每个条目还包括线程标识符(TID)和地址空间标识符(ASID)。使用线程标识符可以防止线程读取由同一进程中另一线程写入的条目。例如,这可能发生在上下文切换之后并且在同时多线程(SMT)核中。这使得在不同线程中使用的同一指令能够具有不同的行为。类似地,ASID可以被用于防止进程读取由另一进程写入的信息。这也可能发生在上下文切换之后。注意,如果不包括该特征,则可能期望在上下文切换时刷新该表格以防止这种污染。每个条目的其余部分的每个定义的性能提示(H1、H2、....HN)包括一个位,其中设置与每个提示相对应的位被用于使该提示被断言。如图4中所示,内容可寻址存储器的内容被读出并且形成到解码电路406的另一输入,使得与指令相对应的信息的提示在解码之后被添加到指令信号中,并且然后如在没有任何提示的特定指令的情况下那样通过管线传播。

可以使用IMT的一个典型的上下文是在具有一个或多个提示的指令的循环之前。当循环执行时,提示的指令将在IMT中写入的提示信息之后以性能修改的方式运行,而不需要附加的指令(即,在循环中没有指令开销)。注意,在一些实施例中,不需要具有图4所示的所有特征的IMT,并且可以使用IMT的简化版本来跟踪提示,而无需针对特定PC的特定条目,但是每个ASID-TID对具有一个条目。块中不适用提示的指令保持未修改。在这样的实施例中,可以另外提供单独的机制来控制提示的行为何时停止。例如,可以使用诸如以上关于先前附图所描述的“终端PC”指示或计数机制。

如上所述,这些提示指令的示例用例是将非暂态行为应用于存储器操作,并且在给定加载事件上禁用预提取训练。注意,通过本技术,这两种提示可以被同时提供,并且仅通过用提示指令扩展指令集,使这两种提示与多个指令或代码区域相关联。这与需要扩展具有所有“受提示影响的”指令的复制版本的ISA以合并这些提示的所有组合变型(即,不应用提示、仅应用一个或另一提示、或应用两个提示)的现代技术形成对比。这是高成本。考虑以下示例:

一种这样的提示指令可以具有以下形式:

hint<hint_vector>,<range>

其中<hint_vector>是标识提示矢量的值,并且<range>是将应用提示的指令数量的相对偏移。在遍历指针阵列的循环中,可以按以下方式使用它:

Figure BDA0002580976810000131

该方法可以通过多种方式扩展。例如,指令类别和基于矢量的使能标志是可以提供灵活性和对提示应用的更精细粒度的控制的两个扩展。例如:

mem_hint<mem_hint_vector>,<enable_vector>

使用该指令,上面相同的示例代码可以被修改,使得该循环体内的任何负载都不会被缓存(均被视为非暂态负载),但是在默认行为下,阵列访问将针对预提取器,而指针则不会。

mem_hint(NON_TEMPORAL),0b11000000//循环中两个负载上的提示

mem_hint(DISABLE_PREFETCH_TRAINING),0b01000000//仅第二负载上的提示

注意,根据特定硬件实现方式复杂性,这些矢量可以被应用于静态指令(如图所示)或者在执行期间动态地应用(通过将提示推入循环主体的头部中)。每个版本在成本和性能上都有不同的权衡。此外,注意,由此由提示指令控制的预提取行为可以是装置的默认硬连线行为,也可以是由预提取指令触发的预提取行为。在后者情况下,提示指令的使用因此可以例如关闭预提取指令,就好像它不构成要执行的指令序列的一部分一样。相反,提示指令的使用可以同样等效地打开预提取指令,就好像它最初构成要执行的指令序列的一部分一样。

现在转到图5A、图5B、图6A和图6B,这些图示意性地示出了数据处理功能硬件的示例配置,该数据处理功能硬件是执行由数据处理指令序列定义的数据处理操作的控制信号的接收者。它们也是以修改的方式执行数据处理操作(仍然产生相同的结果)的性能修改控制信号的接收者。尽管在四个单独的附图中示出了这些数据处理功能硬件,但是重要的是要理解,这些实施例不是相互排斥的,并且在这四个附图中的一个或多个中示出的组件可以存在于实现本技术的给定装置中,这取决于数据处理功能硬件具有的特定配置。

图5A示意性地示出了包括加载/存储单元502、缓存504和存储器506的组件集500。在该示例中,加载/存储单元接收控制信号,这些控制信号在用于加载指令的性能修改控制信号的示例中被标记(包括“不缓存”信号)。然后,加载/存储单元502向存储器系统发出非缓存存储器事务,这使所需数据项从存储器506中被检索,但不被缓存在缓存504中。因此,该示例示出了如下情况,其中在正常情况下,加载/存储单元502的动作通常将使数据行被带入缓存中,但是性能修改控制信号抑制了这种情况。另一示例是在缓存中***数据,但是在缓存替换策略中具有低优先级,因此在下一次需要替换缓存行槽时,数据将被替换。

图5B示意性地示出了还包括加载/存储单元510、缓存512和存储器520的组件集508。在该示例中,加载/存储单元接收控制信号,这些控制信号被标记为包括“排斥”信号。加载/存储单元510发出存储器事务至存储器系统,这导致缓存512的缓存行518中的相应条目(在缓存控制(CTRL)514的控制下)被标记为针对正在实现的缓存一致性协议的“MESI”(修改/排斥/共享/无效)的“排斥”状态。显然,接收到的性能修改控制信号还可以指定这些状态中的其他状态(如协议所允许的),或者实际上可以实现不同的缓存一致性协议。

图6A示意地示出了包括预提取控制器602、数据缓存604、系统缓存606、和存储器608的组件集600。预提取控制电路的动作是本领域普通技术人员所熟悉的。然而,根据本技术,预提取控制电路602可以接收预提取修改(即,性能修改的控制信号),如图所示。这可以例如如上所述在给定加载事件上禁用预提取训练。

图6B示意性地示出了包括分支预测电路612和提取电路618的组件集610。如本领域普通技术人员所熟悉的,分支预测电路包括控制电路614和分支目标缓冲器616。然而,根据本技术,控制电路614可以接收分支预测性能修改信号,如图中所示。这可以修改分支预测电路612的行为,并且特别地改变哪些分支目标被存储在分支目标缓冲器616中。

图7示出了包括在本技术的一个实施例中采取的步骤序列的流程图。可以认为该流程开始于步骤700,在步骤700中下一指令被传递到解码单元。然后在步骤702确定这是否是提示指令。如果是,则流程进行到步骤704,在步骤704中该提示被断言以修改目标功能硬件组件的性能。从以上讨论中可以理解,这通过断言一个或多个性能修改信号以影响目标组件执行其数据处理操作的方式而发生。在步骤706,当提示指令指定计数器时,计数器被复位,并且然后流程返回到步骤700。返回到步骤702的考虑,当它不是提示指令时,在步骤708确定它是否是结束提示指令。如果是,则流程经由步骤710继续,在步骤710中相应提示被解除断言以允许目标组件的默认行为恢复。然后,流程返回到步骤700。然而,如果在步骤708发现不是结束指令,则流程进行到步骤712,在步骤712中控制信号被生成以实现(常规的、非提示的)指令。在该示例中,在使用计数器的情况下,在步骤714,计数器被递减(如果计数器有效),并且在步骤716,确定计数器是否到期。如果它使流程继续到步骤710,则解除断言适当的提示(因为在该提示之后的指定数量的指令现在已经在提示有效的情况下被执行)。否则流程返回到步骤700。

总的来说,提供了一种装置和一种操作数据处理装置的方法。数据处理电路响应于提示指令而在针对其他数据处理指令随后生成控制信号时,断言至少一个性能修改控制信号。这使得执行由数据处理指令定义的数据处理操作的数据处理功能硬件以修改的方式操作,尽管所产生的数据处理结果不会根据至少一个性能修改控制信号是否被断言而改变。

在本申请中,词语“被配置为…”用于表示装置的元件具有能够执行所定义的操作的配置。在此上下文中,“配置”是指硬件或软件的布置或互连方式。例如,该装置可以具有提供所定义的操作的专用硬件,或者可以被编程以执行该功能的处理器或其他处理设备。“被配置为”并不意味着需要以任何方式改变装置元件以提供所定义的操作。

尽管本文已经参考附图详细描述了本发明的说明性实施例,但是应该理解,本发明不限于这些精确的实施例,并且本领域的技术人员可以在不脱离由所附权利要求限定的本发明的范围的情况下,在其中进行各种改变、添加和修改。例如,在不脱离本发明的范围的情况下,可以将从属权利要求的特征与独立权利要求的特征进行各种组合。

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:终端智能控制方法、装置、设备及计算机可读存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!