掌桥专利:专业的专利平台
掌桥专利
首页

循环退出预测器

文献发布时间:2023-06-19 11:55:48


循环退出预测器

背景技术

分支预测是流水线处理处理器用来推测性执行指令的技术。分支预测尝试通过评估处理器采用或不采用分支的可能性来确定分支应采用的适当路径。当分支预测器正确预测要采用的路径时,分支预测会改善指令流水线流。但是,当分支预测器错误地预测路径(分支预测错误)时,结果会浪费处理器时间和资源,因为处理器丢弃推测性执行或部分执行的指令。

典型的分支预测技术利用通用条件预测器进行分支预测。这些通用条件预测器使用相关联的置信度来生成分支预测。然而,当置信度为不可靠时,分支预测器可以生成具有增加的预测错误率的分支预测。增加的预测错误率可能导致整个处理系统中的功率和资源浪费。因此,需要一种改进分支预测错误率的改进的分支预测技术。

附图说明

通过参考附图,可更好地理解本公开,并且它的许多特征和优点对本领域技术人员来说变得显而易见。在不同附图中使用相同附图标号来指示类似或相同项。

图1是根据一些实施方案的包括循环退出预测器以支持分支预测的处理器的框图。

图2是根据一些实施方案的图1的分支预测器的框图。

图3是根据一些实施方案的用于预测分支的方法的流程图。

图4是示出根据一些实施方案的针对休止预测块的标识符的图。

图5是一系列的表,示出了根据一些实施方案的获得处理器中的循环退出预测的置信度的示例。

具体实施方式

推测执行期间的分支预测错误导致流水线处理中的耗功和不当延迟。当错误地做出预测时,预测流水线通常需要刷新,这导致相关联的性能损失。另外,由于例如在错误预测的分支之后的处理指令,已知分支预测错误浪费功率。当内核在多线程模式下运行时(其中共享流水线和其他资源),在分支预测错误期间还浪费处理带宽。为了减少耗功量以节省功率并改善单线程和多线程性能,图1-5示出了用于执行循环退出预测的处理系统和方法。循环退出预测是一种用于通过循环退出预测来覆盖条件分支预测的技术,该技术提高分支预测的准确性并减少分支预测错误。

图1示出了根据各种实施方案的实现循环退出预测的处理器100的框图。处理器100包括存储器102、指令高速缓存104、指令获取单元106和处理流水线112。指令获取单元106包括分支预测器108。分支预测器108包括联接到预测引擎107的训练引擎109,该预测引擎包括一个或多个分支目标缓冲区(BTB)表110。处理流水线112包括解码单元114、发布单元116、执行单元118和回写单元120。在各种实施方案中,处理系统被包括在计算机处理器内或以其他方式分布在计算机系统内。存储器102包括用于存储指令和数据的任何类型的易失性或非易失性存储器,诸如高速缓冲存储器。指令高速缓存104访问来自存储器102的指令并存储要获取的指令。在各种实施方案中,存储器102和指令高速缓存104包括多个高速缓存级别。此外,处理器100还包括数据高速缓存(未示出)。

在图1中,为了易于说明,描述了指令获取单元106和处理流水线112的简化示例。在各种实施方案中,指令获取单元106和/或分支预测器108是处理流水线112的一部分。处理流水线112还可以包括其他特征,诸如错误检查和处理逻辑、通过处理流水线112的一个或多个并行路径以及本领域中已知的其他特征。虽然图1中示出了通过处理流水线112的正向路径,处理器100的元件之间可以包括其他反馈和信令路径。

在各种实施方案中,在处理器100的操作期间,指令获取单元106从指令高速缓存104获取指令,以由解码单元114进一步处理。在一个实施方案中,指令获取单元106包括分支预测器108,并且还包括其他分支预测逻辑(未示出)。替代地,在其他实施方案中,分支预测器108与指令获取单元106分开定位。分支预测器108是使用循环退出预测来实现分支预测的处理电路的示例,如下面更详细地讨论的。

解码单元114对指令进行解码,并将解码的指令、指令的部分或其他解码的数据传递给发布单元116。发布单元116分析指令或其他数据,并基于该分析将解码的指令、指令的部分或其他数据传输到一个或多个执行单元118。一个或多个执行单元118包括用于执行指令的执行单元,诸如定点执行单元、浮点执行单元、加载/存储执行单元、向量执行单元等。回写单元120将指令执行的结果写回到目的地资源(未示出)。目的地资源可以是任何类型的资源,包括寄存器、高速缓存存储器、其他存储器、与其他装置进行通信的I/O电路、其他处理电路或用于执行的指令或数据的任何其他类型的目的地。

在处理器100的休止时间期间,训练引擎109从处理流水线112接收休止预测块。每个休止预测块描述一起预测并且已经休止的一组指令字节。训练引擎109是分支预测器108的训练部分,其基于使用一个或多个休止预测块和后续休止预测块对指令流内的循环的评估,识别导致循环退出的分支并提供要用于预测此类分支到预测引擎107的方向的信息。预测引擎107是分支预测器108的一部分,它利用训练引擎109提供的循环退出分支信息来生成循环退出预测,该预测用作分支预测器108的分支预测输出。在各种实施方案中,是否将循环退出预测用作分支预测器108的输出基于置信度阈值和/或训练引擎109提供的置信度。为了分支预测器108利用循环退出预测来改进分支预测操作,分支预测器108串联使用训练引擎109和预测引擎107,以为由通用条件预测器生成的通用条件预测提供覆盖机制。通用条件预测器是使用本领域通常已知的技术来确定分支预测的条件预测器。

在各种实施方案中,训练引擎109监视休止预测块和后续休止预测块,以确定处理器100的指令流当前是否处于循环中并识别导致循环退出的条件分支。在一些实施方案中,循环被认为是例如基于计算机程序和/或指令内的某些标准重复的指令序列。在一些实施方案中,循环被认为是,例如,基于计算机程序和/或指令内的某些标准不重复而在仅考虑属于特定调用返回级别(下面参考图2进一步描述)的指令的子序列时重复的指令序列。循环的类型可以是例如for循环或while循环,它们将指令序列重复进行一定次数的迭代。退出循环之前,循环退出分支的位置以及有关迭代次数的信息被预测引擎107用来覆盖可能位于例如预测引擎107内的通用条件预测器。

在确定循环是否在指令流中的特定调用返回级别处发生之后,训练引擎109识别位于循环内的循环退出分支。循环退出分支是条件分支,其方向(已采用或未采用)在停留在循环中时保持不变,而在退出循环时翻转。通过监视位于循环内的条件分支的定向行为,在训练引擎109中识别出循环退出分支。在识别出循环退出分支之后,训练引擎109监视循环迭代计数以确定循环迭代计数重复频率,该频率用于生成与循环退出分支相关联的置信度。基于对与循环退出分支、循环大小和预测时间迭代计数相关联的置信度的评估,预测引擎107生成由分支预测器108输出的分支方向预测(通过将循环预测器的输出与通用条件预测器组合)。然后,分支预测器108能够生成要由一个或多个BTB表(也通常称为BT缓冲区和BTB)110存储或提供的分支目标地址。分支预测器108至少部分地在处理器(例如,图1的处理器100)的指令获取单元106内实现。尽管在图1中BTB表110被示出为在分支预测器108内部,但是BTB表110可以或可以不位于处理器100中指令获取单元106或分支预测器108的某些元件附近。在一些实施方案中,处理器100还包括多个指令获取单元106和处理流水线112。

图2为根据一些实施方案的分支预测器207的框图。分支预测器207包括联接到训练引擎210的预测引擎206。预测引擎206包括条件预测器228、分支目标缓冲区286(BTB286)、间接预测器236和下一程序计数器预测器246(NXT PC预测器246)。条件预测器228包括通用条件预测器230、循环退出预测器232和多路复用器233。训练引擎210包括循环退出分支监视器252、循环检测器254和预测缓冲区256。在各种实施方案中,循环退出预测器232可以包括循环检测器254和循环退出分支监视器252。在各种实施方案中,循环退出预测器232是条件预测器,其用作对在可预测的迭代次数之后退出循环的条件分支的标记几何长度(TAGE)的校正器。如本文中进一步描述的,分支预测器207能够利用循环退出预测来覆盖通用条件预测,例如TAGE预测,该循环退出预测是对时序没有严格要求的低功率、低面积设计,并且在提供分支预测应用程序的性能提升的同时最小化对处理器100的实施影响。

在分支预测器207的操作过程中,训练引擎210的循环检测器254在处理器100的休止时间内从预测缓冲区256接收一个或多个休止预测块和一个或多个后续休止预测块。休止时间是指将指令的结果提交到处理器的架构状态的行为发生或已经发生(例如,将结果写入寄存器等)的时间。预测块是一组预测指令字节,以及有关其包含的分支的信息。预测块包括例如开始和结束地址、描述符和预测块中包含的分支的方向。存储在预测缓冲区256中的预测块信息是在预测该块时首先创建的,然后在误预测刷新时对其进行更新,以保持对属于该块的分支的跟踪,即使该分支未被正确预测也是如此。休止预测块是已经休止的预测块,并且休止预测块提供的信息反映了已经休止的分支的架构行为。在各种实施方案中,循环检测器254使用休止预测块和后续休止预测块来识别训练引擎210中是否正在发生循环。

在各种实施方案中,预测缓冲区256跟踪与由预测引擎206做出的分支预测有关的信息。预测信息包括例如预测地址、预测目标和预测历史。在各种实施方案中,当需要刷新并恢复以重新开始预测时,在重定向的情况下可以使用预测缓冲区256,之后读取预测缓冲区256以恢复。在训练期间还使用了预测缓冲区256,以将一个或多个休止预测块提供给循环检测器254。在将一个或多个休止预测块提供给循环检测器254之前,预测缓冲区256从NXT PC预测器246接收一个或多个预测块并从处理流水线112更新重定向和休止预测块。对预测缓冲区256的读出是对最近休止的一个或多个休止预测块执行的。相应地,使用训练引擎210来训练预测引擎206中的预测器,包括条件预测器228、BTB 286和间接预测器236。

在各种实施方案中,关于提供给循环检测器254的一个或多个休止预测块,标签表示由条件预测器228进行的预测的获取地址或预测地址。标签用作休止预测块地址的指示符。描述符提供对休止预测块的描述,并在获取地址处表示已经由例如分支预测器207预测的分支。在一个实施方案中,分支预测器207能够预测每个周期多达两个分支,并且描述符描述每个周期是存在单个分支还是两个分支,以及每个分支是条件分支还是无条件分支。方向条目提供与休止预测块相关联的方向。在各种实施方案中,对于两个分支的预测的情况,方向是第二分支的方向,因为仅当第一分支被预测为未采用时,预测块才可以包含两个分支。在各种实施方案中,两个休止预测块的地址标签、描述符和/或方向用于确定由条件预测器228的循环退出预测器232提供的循环退出预测。

为了生成循环退出预测以用作分支预测器207的分支预测输出,循环退出预测器232依赖于循环检测器254,该循环检测器在休止时间监视分支以识别循环。在一些实施方案中,循环检测器254在非推测路径上工作,并且仅在给定的调用返回级别考虑循环。即,在调用返回级别内重复的指令序列可被认为是循环,即使指令可能包含调用和返回,在调用和返回之间指令序列从循环的一个迭代到下一个有所不同。在各种实施方案中,例如,每个线程在每个调用返回级别具有循环检测器254。因为循环检测器254针对每个调用返回级别执行循环检测,即,基于与每个等效循环的内容相反的调用返回级别,所以循环检测器254能够检测到是否发生了循环,即使每个循环迭代的内容可能不完全等同于其他循环迭代。例如,指令流可以通过执行调用来调用子例程,然后在子例程的结束处发起返回。结果,当执行呼叫时,跳转到例如更高的调用返回级别。执行返回时,回退发生到较低的调用返回级别。因此,对于给定指令,诸如对于循环的每个迭代调用子例程的程序,对于循环的每个迭代,该指令可能在子例程中执行不同的操作。但是,基于调用返回级别,循环检测器254仍将检测给定指令流的循环。

对于给定的调用返回级别,在接收到休止预测块之后,循环检测器254通过拍摄表示休止预测块的状态的快照来开始循环检测。在各种实施方案中,快照包括标签、描述符和休止预测块的方向。在各种实施方案中,快照的定时可以根据休止状态而变化。例如,可以周期性地和/或以代表休止状态内的不同时间因素的随机时间和/或间隔拍摄快照。在各种实施方案中,循环的识别发生在休止时间,因为在休止时间,处理元件是非推测性的,即,与预测时间相反,已知实际程序行为,而预测时间是推测性的,并且实际程序行为是未知的。

在由循环检测器254拍摄快照之后,循环检测器254将地址的快照与后续休止预测块进行比较,以确定是否与快照匹配。在一个实施方案中,循环检测器254使用比较器逻辑将地址的快照与后续的休止预测块流中的每个休止预测块进行比较,以确定是否与快照匹配。当与快照匹配时,循环检测器254已检测到循环。

当循环检测器254已经检测到循环时,循环检测器254观察该循环以识别在检测到的循环中从该循环退出的条件分支,即,循环退出分支。在各种实施方案中,使用预定条件识别循环退出分支或循环退出候选者。例如,当满足以下条件时,可以识别出循环退出候选者:(1)被监视循环的计数迭代已达到指定的饱和标准;(2)两个分支之一的方向与已记录的预期方向不匹配;和/或(3)未针对找到的新分支重定向预测块。循环退出分支由循环检测器254存储,并提供给循环退出分支监视器252。

循环退出分支监视器252从循环检测器254接收循环退出分支,并评估循环退出分支的方向。例如,循环退出分支监视器252将循环退出分支的方向评估为已采用或未采用。循环退出分支监视器252记录循环退出分支在切换到替代方向之前重复相同方向的次数。在各种实施方案中,循环退出分支从重复方向到替代方向的切换是在退出循环之前循环经历的迭代次数的指示(循环迭代计数)。循环迭代计数由循环退出分支监视器252存储以确定循环迭代计数重复的次数,即循环迭代计数重复频率。在一个实施方案中,循环退出分支监视器252通过将当前循环迭代计数与先前的循环迭代计数进行比较以确定循环迭代计数重复频率来监视循环迭代计数。循环迭代计数重复频率用于确定由循环退出分支监视器252分配的对应置信度。

在各种实施方案中,循环退出预测的置信度(循环退出预测置信度)提供了循环退出预测的强度的指示,并且将其与置信度阈值进行比较,以决定在预测循环退出分支的方向时是否覆盖由通用条件预测器230输出的条件预测。在一个实施方案中,对应的置信度可以等同于循环迭代计数重复频率(重复的循环迭代计数的数量)并且被存储在循环退出分支监视器252中。在各种实施方案中,置信度的增加和/或减少是由循环迭代计数重复频率的匹配的增加和/或减少所决定的。例如,在各种实施方案中,随着循环在相同数量的迭代之后连续多次退出,置信度增加。在各种实施方案中,当循环退出分支监视器252确定循环迭代计数不再重复时,置信度刷新为初始值零。置信度可编程为阈值,以开始使用循环退出预测器232。

一旦确定了置信度,则循环退出预测器232确定置信度是否超过置信度阈值。在一个实施方案中,置信度阈值是循环退出预测可以覆盖由通用条件预测器230生成的条件预测的阈值。在各种实施方案中,取决于设计偏好,将置信度阈值设置为一到十之间的值,并且将循环退出预测的置信度设置为一到十之间的值。例如,对于为六的置信度阈值,在六到十之间的循环退出预测置信度值将触发循环退出预测器232,从而覆盖通用条件预测器230。当置信度达到或超过置信度阈值时,循环退出预测器232覆盖由通用条件预测器230提供的条件预测。由循环退出预测器232使用多路复用器233覆盖通用条件预测器230,以将循环退出预测提供给NXT PC预测器246。当置信度未达到或超过置信度阈值时,循环退出预测器232不覆盖由通用条件预测器230提供的条件预测。NXT PC预测器246然后将预测块提供给预测缓冲区256并提供将供分支预测器207输出的分支预测。分支预测器208基于通用条件预测或循环退出预测输出来提供预测地址,以由处理器100的指令获取单元获取指令。

图3是示出根据各种实施方案的用于使用循环退出预测来预测分支的方法300的流程图。方法300在图1所示的处理器100和图2所示的分支预测器207的一些实施方案中实施。

在各种实施方案中,方法流程从框308开始。在框308处,循环检测器254在第一休止时间期间接收预测块,即休止预测块。在框312处,基于调用返回级别,循环检测器254确定是否对休止预测块拍摄快照。当确定不拍摄快照时,方法300返回至框308。当确定拍摄快照时,方法300前进至框316。在框316处,循环检测器254对休止预测块拍摄快照。在各种实施方案中,快照包括地址标签、描述符和方向中的至少一者。在框318处,循环检测器254在第二休止时间期间接收一个或多个后续休止预测块。在各种实施方案中,该一个或多个后续休止预测块包括地址标签、描述符和方向。在框320处,循环检测器254将被拍快照的休止预测块的快照与该一个或多个后续休止预测块进行比较。在框324处,循环检测器254确定是否正在发生循环。在各种实施方案中,当与快照相关联的标签、描述符和方向中的全部和与一个或多个后续休止预测块相关联的标签、描述符和方向中的全部之间存在匹配时,循环检测器254确定正在发生循环。当循环检测器254确定对于一组休止预测块没有发生循环时,方法300返回到框316。当循环检测器254确定发生循环时,方法300前进到框330。

在框330处,循环检测器254监视循环中的条件分支,以供循环检测器254使用以例如识别循环退出分支。在框332处,循环检测器254识别从循环退出的循环退出分支。在各种实施方案中,所有条件分支的方向被记录在第一快照匹配和第二快照匹配之间。在循环的后续迭代中,将所有条件分支的方向与先前已记录的所有条件分支的方向进行比较。在各种实施方案中,改变方向的第一分支被标识为循环退出分支。

在框334处,循环退出分支监视器252监视循环退出分支,并基于由循环检测器254识别的循环退出分支来确定循环迭代计数。

在框340处,循环退出分支监视器252监视循环迭代计数以确定循环迭代计数重复频率。在框344处,循环退出分支监视器252使用循环迭代计数重复频率确定置信度。

在框348处,循环退出预测器232将置信度分配给循环退出预测。在各种实施方案中,循环退出分支监视器252可以将置信度分配给循环退出预测。在一些实施方案中,置信度阈值可以根据设计偏好而变化。

在框348中分配了置信度之后,方法300返回到框340以监视循环的下一次出现,同时继续进行到框370。在框370处,当已经超过置信度阈值时,循环退出预测器232使用多路复用器233来覆盖通用条件预测。

图4是示出根据一些实施方案的针对休止预测块的标识符402的图。标识符402包括标签(TAG_1)、描述符(DESCRIPTOR_1)和方向(DIRECTION_1)。标识符402的TAG_1代表从中获取给定预测块的接下来的指令的获取地址或预测地址。DESCRIPTOR_1表示已经由分支预测器207预测的分支,或者已经在执行包含在预测块中的指令期间发现的分支。如以上参考图2所详细描述的,分支预测器207使用标识符402的快照与后续休止预测块的标识符的比较,以使用循环退出预测来生成分支预测。

图5是一系列的表,示出了根据一些实施方案的使用分支预测器获得循环退出预测的置信度的示例。参考图2,图5包括条件分支表502、循环迭代计数表504、循环迭代计数重复频率表506和置信度表508。在各种实施方案中,条件分支表502描绘了条件分支,该条件分支包括例如由循环检测器254观察到的循环退出分支。循环迭代计数表504描述了例如由循环退出分支监视器252观察到的循环迭代的数量。对于图5中提供的示例,对于五个连续实例,循环迭代计数为三。循环迭代计数重复频率表506描述了循环迭代计数已经重复的次数,如由例如循环退出分支监视器252观察到的。对于所提供的示例,循环迭代计数重复频率为四。置信度表508描述了由循环退出分支监视器252针对给定的循环迭代计数频率分配的置信度。对于所提供的示例,由循环退出分支监视器252分配以供循环退出预测器232使用的置信度为四。在置信度阈值为例如二的情况下,循环退出预测器232将覆盖通用条件预测器230,并将相关联的循环退出预测提供给分支预测器207以进行分支预测。

如本文所公开的,在一些实施方案中,一种方法包括:向由循环退出预测器生成的循环退出预测分配置信度;以及基于所述置信度超过置信度阈值,覆盖通用条件预测器的通用条件预测。在一方面,该方法包括:通过基于在由循环检测器确定的循环中识别出的循环退出分支来确定循环迭代计数来生成所述置信度。在另一方面,该方法包括:监视所述循环迭代计数以确定循环迭代计数重复频率,从而生成所述置信度。在另一方面,该方法包括:在休止时间期间,使用休止预测块的快照和后续休止预测块来确定是否正在发生所述循环。

在一方面,所述快照包括地址标签、描述符和所述休止预测块的方向。在另一方面,所述后续休止预测块包括地址标签、描述符和所述后续休止预测块的方向。在又一方面,多路复用器用于覆盖所述通用条件预测。在另一方面,所述快照被周期性地拍摄。

如本文所公开的,在一些实施方案中,一种处理器包括:预测引擎,其包括循环退出预测器;和联接到所述预测引擎的训练引擎,所述训练引擎包括联接到循环检测器的循环退出分支监视器,其中:基于多个调用返回级别中的至少一个,所述处理器的所述循环检测器在第一休止时间期间对休止预测块拍摄快照,将所述快照与在第二休止时间的后续休止预测块进行比较,并且基于所述比较,识别循环和所述循环内的循环退出分支,以供所述循环退出分支监视器和所述循环退出预测器用于确定是否覆盖通用条件预测。在一方面,所述循环退出分支监视器基于所述循环退出分支确定循环迭代计数。

在另一方面,所述循环退出分支监视器监视所述循环迭代计数以确定循环迭代计数重复频率。在又一方面,所述循环退出预测器使用所述循环迭代计数重复频率生成循环退出预测置信度。在另一方面,所述循环退出预测置信度用于覆盖所述通用条件预测。在另一方面,所述快照包括地址标签、描述符和所述休止预测块的方向。在又一方面,所述处理器包括联接到所述训练引擎的处理流水线,以将所述休止预测块和所述后续休止预测块提供给所述训练引擎。

在另一方面,所述多个调用返回级别被限制为四个,并且所述多个调用返回级别中的每个调用返回级别包括至少一个所述循环检测器。在又一方面,所述处理器包括:多路复用器,其联接到所述循环退出预测器;和联接到所述多路复用器的通用条件预测器,其中当所述循环退出预测器确定覆盖所述通用条件预测时,所述循环退出预测器触发所述多路复用器以覆盖所述通用条件预测器。

如本文所公开的,在一些实施方案中,一种方法包括:基于调用返回级别,在第一休止时间期间对休止预测块拍摄快照;将所述休止预测块的所述快照与后续休止预测块进行比较以确定何时正在发生循环;当所述循环正在发生时,识别所述循环中退出所述循环的循环退出分支;基于所述循环退出分支确定循环迭代计数;监视所述循环迭代计数以确定循环迭代计数重复频率;以及基于对所述循环迭代计数的所述监视来覆盖通用条件预测。在一方面,该方法包括:使用所述循环迭代计数重复频率来确定循环退出预测置信度。在另一方面,在所述循环退出预测置信度超过置信度阈值时覆盖所述通用条件预测发生。

在一些实施方案中,上文所描述的设备和技术被实现在包括一个或多个集成电路(IC)装置(也称为集成电路封装或微芯片)的系统中,诸如上文所述的处理器。电子设计自动化(EDA)和计算机辅助设计(CAD)软件工具可用于设计和制作这些IC装置。这些设计工具通常被表示为一个或多个软件程序。所述一个或多个软件程序包括可由计算机系统执行的代码,以操纵计算机系统来操作表示一个或多个IC装置的电路的代码,从而执行用于设计或调适制造系统的过程的至少一部分来制造电路。此代码可包括指令、数据或指令和数据的组合。表示设计工具或制造工具的软件指令通常存储在可由计算系统访问的计算机可读存储介质中。同样地,表示IC装置的设计或制造的一个或多个阶段的代码可以存储在同一计算机可读存储介质或不同的计算机可读存储介质中,以及从同一计算机可读存储介质或不同的计算机可读存储介质进行访问。

计算机可读存储介质可包括在使用期间可由计算机系统存取以将指令和/或数据提供给计算机系统的任何非暂时性存储介质或非暂时性存储介质的组合。此类存储介质可包括但不限于光学介质(例如,压缩光盘(CD)、数字通用光盘(DVD)、蓝光光盘)、磁性介质(例如,软盘、磁带或磁性硬盘)、易失性存储器(例如,随机存取存储器(RAM)或高速缓存)、非易失性存储器(例如,只读存储器(ROM)或闪存存储器)或基于微机电系统(MEMS)的存储介质。计算机可读存储介质可嵌入在计算系统中(例如,系统RAM或ROM)、固定地附接到计算系统(例如,磁性硬盘驱动器)、可移除地附接到计算系统(例如,光盘或基于通用串行总线(USB)的快闪存储器),或者经由有线或无线网络联接到计算机系统(例如,网络可存取存储装置(NAS))。

在一些实施方案中,上文所描述的技术的某些方面可由执行软件的处理系统的一个或多个处理器实现。软件包括存储或以其他方式有形地体现在非暂时性计算机可读存储介质上的一个或多个可执行指令集。软件可包括在由一个或多个处理器执行时操纵一个或多个处理器来执行上文所描述技术的一个或多个方面的指令和某些数据。非暂时性计算机可读存储介质可包括例如磁盘或光盘存储装置、固态存储装置(诸如快闪存储器、高速缓存、随机存取存储器(RAM)或一个或多个其他非易失性存储器装置)等。存储在非暂时性计算机可读存储介质上的可执行指令可为源代码、汇编语言代码、对象代码或由一个或多个处理器解译或以其他方式执行的其他指令格式。

应注意,并不需要上文在一般描述中所描述的所有活动或元件,特定活动或装置的一部分可能是不需要的,并且可以执行一个或多个其他活动,或者可以包括除所描述的那些元件之外的元件。此外,列出活动的顺序不一定是执行活动的顺序。另外,已经参考具体实施方案描述了概念。然而,本领域中的普通技术人员会了解,可在不背离所附权利要求书中所阐述的本公开范围的情况下,做出各种修改和改变。因此,本说明书和附图将被视为说明性而非限制性的,并且所有此类修改都意图被包括在本公开的范围内。

上文已经参照具体实施方案描述了益处、其它优点以及问题的解决方案。然而,所述益处、优点、问题解决方案以及可使任何益处、优点或解决方案出现或变得更突出的任何特征都不应被解释为是任何或所有权利要求的关键、必需或必要特征。此外,以上所公开的特定实施方案只是说明性的,因为所公开的主题可以按受益于本文教义的本领域的技术人员显而易知的不同但等效的方式来修改和实践。除了如所附权利要求中所描述的之外,并不意图限制本文所示的构造或设计的细节。因此,明显以上所公开的特定实施方案可更改或修改,并且所有此类变化形式被认为在所公开的主题的范围内。因此,本文所寻求的保护正如下文权利要求书中所陈述般。

相关技术
  • 循环退出预测器
  • 循环预测器指导的循环缓冲器
技术分类

06120113106650