首页 / 专利库 / 专利权 / 申请 / 国际申请 / 修改 / 控制使用动态反馈的指令转换

控制使用动态反馈的指令转换

阅读:735发布:2021-12-01

专利汇可以提供控制使用动态反馈的指令转换专利检索,专利查询,专利分析的服务。并且用于 修改 计算机内的操作条件的一种方法,它将指令从一个目标指令集转换到主机指令集,包括的步骤是:监控在计算机的部件内发生的事件;计数在一个选择的间隔内发生的事件;如果选择的间隔内的事件总数超过规定的限制,则生成例外;以及,通过修改被转换的一系列主机指令来响应该例外。,下面是控制使用动态反馈的指令转换专利的具体信息内容。

1.用于修改计算机内的操作条件的一种方法,它将指令从一个目标指令 集转换到一个主机指令集,其特征在于包括以下步骤:
监控在计算机的一个部件内发生的一个事件,
计数在一个选择的间隔内发生的事件,
如果选择的间隔内的事件总数超过规定的限制,则生成一个例外,以及,
通过修改被转换的一系列主机指令,来响应该例外。
2.如权利要求1中所声明的一种方法,其特征在于:其中,事件是退回 重来,修改被转换的序列的步骤是放弃该序列。
3.如权利要求1中所声明的一种方法,其特征在于:其中,事件表示最 小限度地尝试优化转换,修改被转换的序列的步骤是进一步优化该序列。
4.如权利要求1中所声明的一种方法,其特征在于:其中,事件表示尝 试写到被保护的存储器
5.如权利要求1中所声明的一种方法,其特征在于:其中,事件表示优 化转换过程中的一个调度错误。
6.如权利要求1中所声明的一种方法,其特征在于:其中,选择的间隔 是时间间隔。
7.如权利要求1中所声明的一种方法,其特征在于:其中,选择的间隔 是许多指令。
8.如权利要求1中所声明的一种方法,其特征在于:其中,通过修改被 转换的一系列主机指令而响应该例外的步骤在选择的多个次数后发生一次, 其中,选择的间隔内的事件总数超过规定的限制。
9.如权利要求1中所声明的一种方法,其特征在于:其中,事件是可编 程的。
10.如权利要求1中所声明的一种方法,其特征在于:其中,事件是多个 事件的组合。

说明书全文

发明领域

本发明涉及计算机系统,尤其涉及用于提高微处理器的操作效率的方法, 该微处理器动态地将指令从一个目标指令集转换到一个主机指令集并推测被 转换的操作。

原先技术的历史

最近,开发了一种新的微处理器,它将一个简单但快速的主机处理器(被 称作“变体主机”)和软件(被称作“代码变体软件”)组合起来,以便执 行为“目标”处理器设计的应用程序,该目标处理器具有与变体主机处理器 的指令集不同的指令集。变体主机处理器执行代码变体软件,以便将应用程 序动态地转换成能够实现原来的目标软件的目的的变体主机处理器指令。当 目标指令被转换时,新的主机指令被执行并被存储在转换缓冲器中,在那里, 它们可以被存取而无须进一步转换。虽然过程的起始转换缓慢,但是,一旦 被转换,硬件执行过程通常所需的其中的许多步骤就被取消了。新的微处理 器已经证明,被设计成扩展很少功率的简单的快速处理器能够以等同于“目 标”处理器(程序为它而设计)的速率的一个速率来执行被转换的“目标” 指令。

为了能够以快的速率运行为其他处理器设计的程序,变体主机处理器包括 许多硬件改进。这些改进中的一个改进是控存储缓冲器,它位于主机存储 器与转换缓冲器之间。第二项改进是一套主机寄存器(除了正常工作的寄存 器以外),它们存储任何序列的正在被转换的目标指令开始时目标处理器的 已知状态。执行各个序列的变体主机指令时生成的内存存储被放置在门控存 储缓冲器中。如果变体主机指令的执行没有出现例外,则该序列指令开始时 的目标状态被更新到该被转换指令序列完成点处的目标状态,内存存储被记 住。

如果在执行一系列主机指令期间发生例外,则处理停止;整个操作可返回 到该序列指令的开端(其处存在目标处理器的已知状态)。这允许非常快速、 准确地处理例外——原先技术从未实现的一个结果。

将注意到,通过将由执行生成的效果放置在临时存储器中直到完成转换的 执行为止,新的微处理器处理转换的执行所用的方法是推测的一种非常快速 的有效方法。实际上,新的微处理器使用相同的线路,用于推测其他操作的 结果。例如,通过临时保存来自自然转换的指令的一个软件调度程序重新安 排的指令的执行结果,与原先技术的尝试相比,可以实现更积极进取的重新 安排。当这种被重新安排的序列的指令执行以产生一个正确的结果时,由执 行被重新安排的序列产生的内存存储可以被记住,目标状态可以被更新。如 果被重新安排的序列在执行时生成一个例外,那么,处理器的状态可以被返 回序列开始时的目标状态并且采用的一种更保守的方法来转换序列。

新的微处理器最有利的特点中的一个特点是它链接长序列的转换指令的能 。一旦短序列的目标指令已被转换并被发现执行没有例外,就可以链接大 量这些短序列,以便形成长序列的指令。这允许高速执行一个转换程序,因 为微处理器不需要经历通常由硬件处理器采取的所有步骤(例如,查找每个 较短的转换序列)来执行指令。甚至可以达到比可能预期的更高的速度,因 为一旦长序列被链接,优化器就经常可以取消来自长序列的许多步骤,而不 改变产生的结果。硬件优化器从未能够优化足够长的各个序列的指令,以便 使允许重要的优化的方式能够变得显而易见。

新的处理器所发生的一个问题涉及只被执行很少次数的各个序列的指令。 例如,一个特殊的应用程序所需的初始化操作指令,经常是只有当该应用初 次调用时才被执行;终止应用程序所需操作的指令,经常只是当实际上终止 程序时才执行。新处理器的原来的实施例通常按相同的方式来对待所有的指 令。它为一个目标指令解码,生成执行目标指令为其设计的功能的原始主机 指令,优化该序列的主机指令,然后将被转换和被优化的指令存储在转换缓 冲存储器中。当新的处理器的操作继续进行时,各个序列的转换指令相互链 接并被进一步优化;较长序列的被链接指令被存储在转换缓冲器中。最后, 大批转换指令被存储为特大批的主机指令。当在一个特殊的主机指令或一套 被链接指令的执行期间发生一个例外时,新的处理器履行返回目标处理器的 最近正确状态的进程,然后把目标指令的单步转换从最近正确状态的点提供 到例外再次发生的点。这些转换也被存储在转换缓冲器中。Kelly等人于1998 年11月3日发行的第5,832,205号美国专利中详细描述了新处理器的这个实 施例,并授让给了本发明的授让人。

虽然这个程序创建快速执行的代码,但是,该程序所拥有的许多效果会限 制可达到的总速度并可能引起其他不合乎需要的效果。首先,该程序要求大 量转换指令的存储容量。很多时候,一套相同的目标指令存在许多不同的转 换,因为各个序列从不同的分支被输入。一旦被存储,转换指令就占据转换 缓冲器,直到为某种肯定的原因被除去为止。其次,如果一系列指令将只被 执行几次,则转换和优化所需的时间可能比执行最初目标指令的逐步转换所 需的时间要多许多。很少被使用的各个序列的转换指令的优化趋向于降低新 的处理器的平均速度。

由于这些原因,新处理器的所述实施例被修改,以便包括一个解释程序(作 为代码变体软件的一部分),该解释程序实现每个目标指令的逐步转换。解 释程序本质上取出一个目标指令,为该指令解码,提供一个主机过程以便实 现目标指令的目的,并执行该主机过程。当完成解释和执行一个目标指令时, 目标处理器的状态被达到最新的研究平;解释程序进行到下一个目标指令。 这个过程实质上一步步通过对目标指令的解释和执行。由解释程序产生的主 机指令通常不被存储在转换缓冲器中,因此,在不执行链接后,可以实行优 化、链接和进一步的优化。解释程序为该序列的目标指令的剩余部分继续进 行这个过程。

一般而言,确定直到已发生对任何序列的指令的某些执行,所有以前的解 释和执行所需的时间才等同于转换和优化该序列所需的时间。所以,对于在 一个应用程序的执行过程中很少被使用的一系列指令而言,当其只被解释而 不被转换时,它们执行得更快。

为了使用这个优点,只要一系列目标指令首先被遇到,就可修改被改善的 处理器,以便使用解释程序。解释程序软件与一个计数器有关,该计数器了 解执行各个序列的指令的次数。每当序列被遇到时,就可以运行解释程序, 直到已执行该序列某些次数而不生成一个例外为止。当各个序列的目标指令 已被解释和执行所选的一定次数时,代码变体软件从解释程序转换到翻译程 序及其附带的优化与存储程序。当发生这种情况时,将已经发生足够数量的 执行,该序列指令的进一步执行可能会发生,被存储的优化转换将会提供总 体上速度大大加快的应用程序的执行。

当代码变体软件切换到正常的转换过程时,转换被优化并被存储在转换缓 冲器中。其后,那个转换可以被进一步优化并被链接到其他的转换,以便可 以获得从这些过程实现的非常高速度的执行。

如果除一个特殊序列的目标指令已被执行的次数以外,解释程序还被用来 收集统计数字,则可以获得额外的重要优点。例如,如果目标指令包括一个 分支,则对其分支的指令的地址与分支已被执行的次数可以一起被记录下来。 然后,当许多连续的指令由解释程序来执行时,将会已经建立了分支的历史 和分支地址。这些统计数字可以被用来推测一个特殊序列的指令是否可能将 成为特大批转换指令。在被解释所选次数之后,该序列可以被转换、被优化、 通过各种分支被链接而不必经历一项分开的链接操作,并这样被存储在转换 缓冲器中。如果推测是正确的,则在处理指令的过程中节省了大量时间。如 果不正确,则操作只产生将代码变体软件返回解释程序的一个例外。

解释程序不仅用于为很少使用的序列生成主机代码,它也用于处理例外的 过程中。只要被修改的处理器在执行任何被转换的目标应用程序时遇到一个 目标例外,代码变体软件就使目标处理器的最近已知的正确状态发生退回重 来。然后,代码变体软件使用解释程序(而非翻译程序),来提供一套新的 主机指令。解释程序一步步通过目标指令的生成和执行。当每个指令被解释 时,使目标状态达到最新的研究水平。

解释程序在该序列的目标指令中继续进行这个过程,直到再次发生例 外。在这一点上,目标处理器的状态对于解释的状态而言是正确的,以便可 以正确、迅速地处理该例外。因为解释程序是如此简单,所以,确定目标例 外的发生点的过程要大大快于对由转换过程执行的这种点的确定。这种点经 历上述的转换和优化过程,然后被存储在转换缓冲器中。而且,解释不生成 额外序列的主机指令,它们被存储在转换缓冲器中并有助于过度充填该缓冲 器。

通过将解释程序与优化翻译程序(用作各个序列的转换指令的一个动态编 辑器)组合,代码变体软件除去许多限制,这些是对新的处理器高速执行目 标应用程序的限制。使用解释程序来处理各个序列指令的早期执行取消了优 化在应用程序执行期间很少被使用的指令的需求,从而提高了操作的速度。 取消将这些很少被使用的指令存储在转换缓冲器中的需求减少了对存储的要 求,并取消了放弃许多转换指令的要求。使用解释程序来处理例外产生了与 使用翻译程序相同的有用效果,但却加快了操作,减少了存储要求。

R.Bedichek等人于偶数日提交并授让给本发明的授让人的系列号为 _______的美国专利申请“综合微处理器中的解释和转换的方法”中详 细描述了新处理器的被改善的实施例。

最近,该处理器进一步被修改,以提高解释程序和翻译程序的应用。已经 通过提供两种以上的操作模式来实现这一点。因为即使序列在转换之前已被 频繁使用,一旦被完成和优化,转换也还是得不到广泛的使用,所以,在简 单的解释与被优化的转换之间提供了额外模式的操作。例如,一系列目标指 令可以首先由解释程序执行许多次,然后,利用最小的优化来被转换并被存 储在转换缓冲器中。被转换的序列是可操作的,并且执行的速度比解释更快; 但是,如果分配足够的时间,则可以将它优化到一个更大的程度。为了决定 是否通过在其他事物中将它链接到其他序列来进一步优化该序列,可以运行 第二项测试。这项测试本质上检查在解释或转换过程中正在使用的时间数量, 以便确定系统正在有效地运行。

具有从一个层次移到另一个层次的不同测试的多层次转换供应改进了改善 过的处理器的操作。Torvalds等人于偶数日提交并授让给本发明的授让人的系 列号为______的美国专利申请“改变代码生成模式的方法”中详细描 述了新处理器的这个被改善的实施例。

即使解释程序和翻译程序的各种组合用于大大改善独特的微处理器的操 作,在操作过程中也仍然留有一些问题。一般可以将这些问题描述为:不能 最适宜地使用各种存在的功能。当包括一个内部分支的一系列指令根据将采 用一个特殊分支的假定来被进行转换时,发生这种情况的一个例子。当该序 列被转换时,比较另一个可能的分支而言,可以更经常地一致采用那个分支。 但是,当环境变化时,比较为其优化转换的分支而言,可以更经常地采用另 一个分支。发生这种情况是因为控制分支的数据可能会发生变化,或因为在 启动或关闭期间被使用的程序的运作不同于在程序的正常操作期间被使用的 情况。在这种情况下,原来的转换仍然可完美地操作;但是,它被优化,以 支持错误的分支。采用该分支而不采用为其优化序列的分支,这使转换退回 重来并使用解释程序来提供一套连续的主机指令。当这种情况的发生比转换 的执行更频繁时,总体处理器速度被大大减小。

但是,转换保留在转换缓冲器中。转换仍然可完美地操作,并且以后可被 用于运行应用程序中。转换缓冲器继续存储正确执行的每个新的转换。在已 提供某些新的转换之后,转换缓冲器趋向于供应限制可被存储的新的转换。 于是,这减慢了被改善的处理器的操作。

需要提高被改善的微处理器的操作速度,以便通过响应于在改善过的处理 器的操作期间所经历的变化的条件来修改用于控制使用代码变体软件的解释 程序和翻译程序软件的处理器,它可以更快速地加以执行。

发明概要

所以,本发明的一个目的是:提供一种更快的微处理器,它可兼容并能够 运行应用程序和以更快的速率操作为其他微处理器设计的系统。

本发明的这个和其他目的通过一种方法来加以实现,该方法用于修改计算 机内的操作条件,它将指令从一个目标指令集转换到一个主机指令集,包括 的步骤是:监控在计算机的一个部件内发生的一个事件;计算在选择的间隔 内发生的事件;如果选择的间隔内的事件总数超过规定的限制,则生成例外; 以及,通过改变一个被转换序列的主机指令,来响应该例外。

通过参考以下详细的描述并结合附图,将会更好地理解本发明的这些和其 他的目的与特点。在附图中,类似的元素在几幅视图中有类似的名称。

附图简述

图1是展示根据本发明的一种方法的流程图

图2是展示根据本发明的一种方法的另一幅流程图。

图3展示了对一种类型的事件的检测。

图4是展示根据本发明来设计的线路的方框图

详细描述

如上所述,一个转换可以展示至少两种不同的行为,需要对其加以改善, 以便提高总体的处理速度。一系列指令可能一直拙劣地被转换,因为在转换 时要确定应该对其更高度地加以优化的经验不足。如果这种转换(而非只是 缓慢)生成大量的退回重来,则转换也许需要被放弃和重做。另一方面,转 换可能最初一直被较佳地转换并得到很好的优化,但是,环境可能已发生变 化,以致优化条件不再存在。所以,这种转换也导致多得多的退回重来,而 不是按需要维持处理速度。

根据本发明,计算机的操作条件在操作期间被评估,所获得的结果被用来 修改正在执行的转换。在一个实施例中,如果转换大大减慢计算机的操作, 则该转换被放弃,以便处理器及其代码变体软件可以生成更有效序列的主机 指令。

作为一项一般的建议,可以计数单个序列的转换,以便确定所采用的分支 并从这些统计数字中确定特殊的转换何时正在经历太多的退回重来。例如, 如图1中的流程图所示,通过跟踪使用转换缓冲器中序列的内存地址的所有 序列的转换指令的执行,可以确定一个序列执行,而无需退回重来的次数和 所采用的分支。预期所采用的分支和转换被执行的次数的比较提供了退回重 来与该序列执行的比率。该结果可以被用来放弃引起过多的退回重来从而减 慢系统总体操作的各个序列的转换。

但是,为了用这种方法确定退回重来的效果,要求大量的系统资源。一个 计数器必须被分配给每个序列的指令或在各个序列之间被共享,必须为每个 序列、分支地址和分支被采用的次数提供存储器,必须计算比率并根据所需 的值对其加以测试。对于任何实际尺寸的一个程序,这种努力会成为系统的 一个过度的负担。

结果,发现了一种更好的方法,该方法几乎不需要系统资源,但却迅速实 现了理想的结果。更先进的方法克服了导致不合乎需要的转换并允许在转换 中进行其他合乎需要的修改的这两个问题。本质上,图2所示的方法直接跟 踪某个系统事件(例如,退回重来)。如果该事件发生的次数超过一个间隔 期间所规定的次数,则修改转换,以便按一种更有效的方式来处理它。在退 回重来事件的情况下,这可能意味着第一个序列的转换指令被放弃并总是从 那个点被加以解释,因为该序列的执行很少。或者,它可能意味着该序列被 立即重新转换和优化,以符合执行该程序时存在的新的操作条件。

一般而言,本发明利用通过使用最少的资源就可达到的系统事件。使用容 易达到的系统事件可以获得本发明理想的结果,几乎没有硬件或处理时间方 面的开支。例如,通过计数被执行的每个退回重来指令,可以确定退回重来 发生的次数。确定正在被执行的指令是退回重来指令要求按图3所示的方法 将每个指令与表示退回重来的一个登记值进行简单的比较。如果两者相同, 则生成一个事件计数。许多其他的事件可以用类似的方法被生成和计数。

一些事件通常已经在硬件中,用于测试或其他的目的。例如,通常通过倒 数计时系统时钟来生成一个定时事件。

即使先进的方法在与已被监控的事件并用时是最有效的,通过只增加其他 的事件计数器和按本发明所教授的方式使用计数器产生的结果,本发明也可 以被容易地扩展到其他的系统事件。用于这个目的的硬件要求很少的额外开 支。

根据本发明,计算一个特殊的选择事件在一个间隔期间发生的次数,如果 多于任何选择事件的最大数量,则使用该事实来改变引起事件的转换。例如, 对于退回重来事件,在某个选择的间隔内计数退回重来的数量。如果该间隔 内的退回重来太多,则放弃在一个实施例中使退回重来数量超过限制的转换 序列。

通过确定被放弃每个退回重来的指令数量和找出每个退回重来的执行时间 的平均损失,可以建立有限数量的退回重来。根据这个平均值,可以计算退 回重来所用时间和执行所用的总时间的理想的百分比。在一种情况下,选择 小于2%的总执行时间的一个百分比。通过只增长或缩短间隔(其间,退回重 来事件的数量被相加,以确定总数是否超过该值),就可以将这个值设置为 需要的值。当间隔已被设置为一个容许的值时,如果总数超过这个值,则放 弃使该值增加超过限制的转换序列。

在本发明的一个实施例中,通过生成一个例外,来实现放弃。该例外选择 放弃执行转换序列的一个例外处理程序。应该注意,被放弃的该序列的转换 指令实际上可能不是正在使大量退回重来发生的一个序列。它可能只是这样 一个序列,它偶尔会引起一个退回重来,碰巧会发生在所选间隔期间的许多 其他的退回重来之后。但是,由于如果频繁使用该序列则原来的转换不久将 被类似的有效转换代替,因此,放弃一系列有效的转换指令将很少会减慢执 行。另一方面,使退回重来计数增大的运作拙劣的各个序列的转换不久将由 相同的过程放弃,因为任何这样的序列更可能是使退回重来计数超过限制并 生成使一个转换被放弃的例外的序列。一旦一个拙劣转换已被放弃,就开始 首先解释、然后生成一个新的转换,以后广泛优化该新转换来符合新的操作 条件的开始。

至少有两种可以根据本发明来使用的间隔,用于评估一个事件(特别是一 个退回重来事件)的计数。这些间隔中的一个间隔是时间间隔。这种间隔可 以由事件计数器来确定,只要已发生一定数量的处理器周期,该事件计数器 就生成一个输出。例如,可以将间隔选择为具有现代处理器的千分之一秒。 另一种间隔趋向于在测量由一个事件(例如,退回重来)所用的总执行时间 的百分比时提供更加准确的结果,该间隔基于执行选择数量的指令。这样, 指令执行可以被认为是一个事件,所执行的指令的数量增加到某个最大限度, 以确定一个间隔。通过使用对间隔的这种测量,在确定退回重来时间的百分 比时,将每个指令的实际效果考虑进去。

使用本发明的方法具有许多优点。首先,如果在一个间隔期间计数所有的 退回重来以便确定是否放弃转换程序,并且使计数超过最大限度的一个序列 被放弃,那么,只放弃实际正在被执行的序列。该方法对不正在运行的好转 换或坏转换没有影响。该方法只放弃已经导致最大限度被超过的一个转换。 一旦序列已被放弃,确定序列解释、转换和优化的一般方法就控制序列的处 理。如果序列在被放弃后没有被加以执行,则它不可能被重新转换,并且非 常不可能被广泛地优化。另一方面,如果经常在第一个转换已被放弃之后执 行一个序列,则它非常有可能被广泛地重新转换和优化,以配合新的环境。

可以被用来提供有关各个序列的转换的动态反馈的其他类型的事件是由重 新安排错误而引起的例外。被改善的处理器使用线路,该线路包括用于如果 尝试写到一个被保护的内存位置则生成一个例外的装置。

用于为写到被保护的内存位置生成例外的线路被用来提高改善过的处理器 的能力,以便生成更快执行的代码。线路允许调度程序安排也许不会弄错的 各个序列的推测转换。通过将由调度程序重新安排的指令存储在被保护的内 存位置中,来实现这一点,以便尝试写一个被保护的位置可生成一个例外。 如果转换通过尝试写到一个被保护的位置来生成一个例外,则采取退回重来。 G.Rozas等人于1999年6月14日提交并授让于本发明的授让人的美国专利申 请(系列号为:09/332,338)“用于改进高级微处理器中的调度的方法和装置” 中详细描述了该技术。

这种内存保护例外的生成提供了一个事件,该事件根据本发明可被用于确 定转换无法经常提供正确的结果。由于这种例外不一定表示转换是错误的(因 为转换可能经常成功),因此,系统可能在间隔期间计数这些例外,并且, 每当它生成一个例外的时间大于最大数量十分之一时,放弃一个转换。如果 转换真的非常拙劣并正在经常生成这种形式的例外,则该转换将几乎立即被 放弃。如果不是这样,那么,转换可留在适当的位置并继续生成很少的例外。 只有当一项不合适的操作发生许多次数时才放弃转换的这种相同的方法可以 根据本发明被用于其他的事件。

另一项操作提供可被用来提供动态反馈(可根据它来修改转换)的一个事 件,该操作被称作“T位例外”。T位与项目一起被放置在新处理器的转换后 备缓冲器中,以便用信号通知被寻址的内存页面包括转换指令。当尝试写到 保存目标指令(已经被转换成主机指令)的内存页面时,生成T位例外。

T位的目的是:当从其生成转换的目标指令发生变化时,取消一个转换。 但是,利用一些目标处理器(特别是因特尔X86种类),内存页面可以包括 被转换的指令和数据;应该允许将数据写到页面。所以,已经设计了一种新 的过程,通过该过程,代码变体软件可以确定尝试写到内存页面是到存储已 经被转换的目标指令的区域,还是到数据区域。通过将内存页面分成较小的 区域并存储每个这些较小的区域是否包括已经被转换的指令的指示,来实现 该过程。通过只要发生一个T位例外就核查这些指示,软件可以取代T位例 外,以便如果写到数据区域,则忽略该例外。但是,如果一个特殊的页面正 在生成许多这些例外(它们都被驳回),则足够的开支被加于各项操作,经 常需要只放弃整个页面和重新进行转换,以便在安排上加以改善。为了实现 这一点,当一定数量的错误(例如,100)已经在一个特殊的间隔期间发生时, 系统计数T位例外并放弃整个内存页面。

通过使用本发明,另一个特别难的问题也可以得到缓和。转换经常被最低 程度地优化,因为在转换发生的时候,有关正在被转换的序列的经验很少。 如果不经常使用该序列,则广泛优化的费用会太高。这种转换可以完美地运 作,因为不会发生退回重来。但是,被更好地优化的转换将节省大量的处理 时间。

如果转换已经被最低程度地优化,那么,在被转换的序列中通常有许多位 置,“无操作”指令(“nops”)被插入该序列中,以便出于各种目的(例如, 处理从属性)在不同的指令之间提供正确的定时。当已经决定将为转换(例 如,有关一系列指令的第一个转换)进行最低程度的优化时,正常的nop指 令可以由“特殊的nops”代替,“特殊的nops”实际上表示优化过程中最小 的努力。如果“特殊的nops”的数量在执行间隔期间按与计数退回重来指令 相同的方式被加以计数和合计,那么,多于所选数量的这些特殊的nops将表 示被转换的序列应该被广泛地优化,以便提供更好的执行次数。

图4示出线路的一个实施例,用于使用系统事件来动态地确定由被改善的 处理器生成的转换是否应该被加以修改。许多系统功能单元(例如,算术与 逻辑单元(ALU)41、浮点单元(FPU)42、总线单元43和根据本发明生成 将被使用的事件的存储器单元44)被示出。在一个特殊的实施例中,从这些 功能单元中的每个功能单元提供了到计数器单元45的四个单独的信号路径(这 个数字可以根据系统而广泛地变化)。例如,ALU 41可以根据许多不同类型 的指令来提供事件。对于构成将被计数的一个事件的每个指令(例如,退回 重来指令或特殊的nop指令)而言,指出该命令的指令的一个部分与作为将 被发现的指令的一个值进行比较。例如,退回重来指令包括具有一个特殊值 的某个序列的独特的位。指令的值被保存在值寄存器中,当指令的各个位与 寄存器进行比较时,生成一个退回重来事件(见图3)。这个事件被发送到中 心计数器单元45,该中心计数器单元包括被分配给不同事件的许多计数器47。 其他这样的计数器(未示出)可以更方便地位于各种功能单元中,在这些功 能单元中,事件本身是某种计数的结果。计数器单元45也包括由选择逻辑46 (通过它,可以将不同的标准用于计数)定义的一个规则网络。例如,可以 计数在某个其他的事件期间发生的一个退回重来事件。由于退回重来问题, 因此,只有事件本身需要被计数,所以,这些事件被直接发送到计数器。选 择逻辑允许系统软件为事件或将导致转换修改的事件的组合编程。在其他的 实施例中,组合可以由事件的其他组合的结果构成;例如,如果两个事件都 存在,两个其他的事件都不存在,则生成一个结果。

B.Coon等人于偶数日提交并授让给本发明的授让人的系列号为 ______的美国专利申请“ 可编程事件计数器”中详细描述了线路的一 个实施例。在该实施例中,选择逻辑包括能够测试以便确定以下条件是否被 输入事件满足的线路。条件如下所示:

X,

Y,

!X,

!Y,

X&Y,

X|Y,

X^Y,

!(X&Y),

!(X^Y),

!(X)|Y,

X|(!Y),

X&(!Y),

!(X|Y),

其中,所用的符号是典型的C语言位操纵器。

其他的事件(例如,特殊的例外)可以按类似的方式来计数。

同时,可以计数处理器的周期数量,以便提供一个定时事件,由此可生成 一个时间间隔。或者,可以计数由处理器处理的指令的数量,以便提供一个 处理器时间计数。这些事件中的任何一个事件可以被用来重置退回重来或另 一个事件计数器。这样,如果退回重来计数器在由定时器或处理器指令计数 器设置的一个时期内计数少于选择的一定数量的退回重来事件,则退回重来 计数器被重置,不发生什么情况。但是,如果在定时器或处理器指令计数器 提供一项重置之前,退回重来计数器计数到最大的值,那么,生成例外并放 弃转换。用于实施本发明的其他线路对于精通该技术领域的人员而言也将显 而易见。

虽然已经根据一个较佳实施例描述了本发明,但是,将理解,在不脱离本 发明的精神和范围的前提下,精通该技术领域的人员可以进行各种修改和变 化。所以,本发明应该按照以下的权利要求来被衡量。

发明背景

相关专利内容
标题 发布/更新时间 阅读量
修改分析流 2020-05-11 259
一种修改纸 2020-05-11 942
修改对象的基层 2020-05-12 60
修改比特流 2020-05-12 10
修改比特流 2020-05-12 91
修改素材 2020-05-11 268
定向声音修改 2020-05-13 700
修改对话窗口 2020-05-12 756
错字修改笔 2020-05-12 603
错字修改笔 2020-05-12 370
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈