在乱序处理器中合并全局完成表条目的制作方法

文档序号:20889194发布日期:2020-05-26 17:46阅读:157来源:国知局
在乱序处理器中合并全局完成表条目的制作方法

本发明的实施例总体上涉及乱序(ooo)处理器,并且更具体地涉及在乱序处理器中合并全局完成表(gct)条目。



背景技术:

在乱序处理器中,指令排序单元(isu)将组中的指令调度到各种发布队列,重命名寄存器以支持乱序执行,将来自各种发布队列的指令发布到执行流水线,完成已执行的指令并处理异常条件。寄存器重命名通常是在将指令放入各自的发布队列之前,由isu中的映射器逻辑执行的。使用位于isu的发布队列中的依赖性矩阵来跟踪指令之间的依赖性,并且isu中的gct会跟踪从调度到完成的所有运行中(in-flight)指令。



技术实现要素:

本发明的实施例包括用于在乱序处理器中合并全局完成表(gct)条目的方法、系统和计算机程序产品。计算机实现的方法的非限制性示例包括在乱序处理器的指令排序单元(isu)中检测第一组运行中指令中的所有指令的状态为已完成。第一组运行中指令与gct中的第一分配条目相关联,该表跟踪运行中指令组的调度顺序和状态。gct包括多个分配条目,其包括第一分配条目和第二分配条目。紧随第一组之前调度的第二组运行中指令与gct中的第二分配条目相关联。至少部分地基于检测,将第一分配条目合并到第二分配条目中以在gct中创建单个合并的第二分配条目,该单个合并的第二分条目包括用于第一组运行中指令和第二组运行中指令的完成信息。合并之后,gct中的第一分配条目被释放以由新的一组运行中指令使用。

通过本发明的技术实现了附加的特征和优点。在此详细描述本发明的其他实施例和方面,并且将其视为所要求保护的发明的一部分。为了更好地理解本发明的优点和特征,请参考说明书和附图。

附图说明

在说明书所附权利要求书中特别指出并明确要求保护本文所述的专有权的细节。通过以下结合附图的详细描述,本发明的实施例的前述以及其他特征和优点将变得显而易见,其中:

图1描绘了根据本发明一个或多个实施例的系统的框图,该系统包括乱序处理器的指令排序单元(isu),用于在乱序处理器中提供合并的全局完成表(gct)条目;

图2描绘了根据本发明一个或多个实施例的gct,gct中的链接以及用于gct条目的组标签(gtag)用于在乱序处理器中提供合并的全局完成表(gct)条目;

图3描绘了根据本发明一个或多个实施例的在乱序处理器中合并gct条目的流程图;

图4描绘了根据本发明一个或多个实施例的在乱序处理器中合并gct条目的框图;

图5描绘了根据本发明一个或多个实施例的由乱序处理器中的指令组利用的资源的框图;

图6描绘了根据本发明一个或多个实施例的用于在乱序处理器中完成合并的gct条目的流程图;

图7描绘了根据本发明一个或多个实施例的用于在乱序处理器中实现合并的gct条目的一些或所有方面的计算机系统的框图。

本文所描绘的图是说明性的。在不脱离本发明的精神的情况下,图或其中描述的操作可以有许多变型。例如,可以以不同的顺序执行动作,或者可以添加、删除或修改动作。同样,术语“耦合”及其变型描述了在两个元件之间具有通信路径,并且并不意味着元件之间没有中间元件/连接。它们之间所有这些变体都被视为说明书的一部分。

在附图和以下对所描述的实施例的详细描述中,在附图中示出的各个元件设有两个或三个数字的附图标记。除少数例外,每个参考数字的最左边的数字与该元素的第一个图相对应。

具体实施方式

本文所述的本发明的一个或多个实施例在乱序处理器的全局完成表(gct)中提供合并的条目。通过将gct中的多个条目合并或合并到单个gct条目中来创建合并的条目。当与合并的gct条目相对应的组中的所有指令都完成并且合并的条目有资格完成时(例如,下一个完成),则合并的条目中的所有组都作为一个单元同时完成。将组合并到gct中的单个条目中可以释放gct中的空间以供其他指令组使用,并且可以缓解由gct的大小和运行时间长的指令组引起的瓶颈。

乱序处理器的指令排序单元(isu)中的gct跟踪从调度到完成的所有进行中的指令。在调度时,将一组指令中的完成位设置为反映该组中的有效指令。一条指令成功执行后(例如,没有拒绝),可以通过复位相应的完成位将其标记为完成。当一个组中的所有指令都标记为已完成并且该组是给定线程中最早的指令时,该组可以“完成”。当一个组完成,将所有指令的结果在架构上可见,并释放指令所占用的资源。

根据本发明的一个或多个实施例,刷新产生也由isu处理,其中gct将要丢弃的所有组的刷新合并到掩码中,每个组用掩码的一位来指示应刷新哪些组。gct还可以通过使用掩码来执行部分组刷新,其中组中的每个指令用掩码的一位指示应刷新组中的哪些指令。

如本文所述,本发明的一个或多个实施例组合gct条目以释放gct中用于其他指令组的空间或条目。根据本发明的一个或多个实施例,当较早组还没有准备好要完成但较新组已经准备好要完成时(例如,该组中的所有指令都已经完成而没有麻烦/中断位),可以合并两个条目。在这种情况下,可以将gct中(对应于较新指令组的)较新条目中的信息合并到gct中(对应于较早指令组的)较早条目中,而gct中较新条目可被释放供另一组指令使用。当较早条目卡住时,其他较新条目可以继续与较早条目(可能是gct中最早的条目)合并。当由较早条目表示或相关联的组中的一个或多个指令尚未完成并且该组无法完成时,较早组将被卡住。

当较早组最终完成时,它释放负载重新排序队列(lrq)条目、存储重新排序队列(srq)条目、有效地址表(eat)条目以及组合或合并到较早gct条目的所有组的资源。这使得与较新指令组相关联的gct条目可以被释放并被重新使用(重新分配),而不必等待与较早组相关联的长时间运行的指令完成。通过更快地释放资源可以减少由于缺少可用的gct条目使gct成为瓶颈而导致调度暂缓的发生。

如本文中所使用的,术语“较新组”是指在“较早组”中的一组指令的最近或之后调度的一组指令。如本文所使用的,术语“紧随其后的组”或“下一个较早组”指的是在特定的指令组被调度之后被调度的第一组指令。如本文所使用的术语“紧随之前的组”或“下一个较早组”是指紧接在特定的指令组被调度之前被调度的指令组。如本文中所使用的,术语“最早的组”是指isu中具有最早的调度时间的指令组,即,在gct中已经存在了最长时间的指令组。

现在转到图1,总体上描绘了根据本发明一个或多个实施例的一种系统100的框图,该系统100包括乱序处理器的指令排序单元(isu),用于在乱序处理器中提供合并的gct。图1所示的系统100包括指令获取单元/指令解码单元(ifu/idu)106,获取并解码一组指令以输入到设置块108,该设置块108准备解码后的指令以输入到isu的映射器110。根据本发明的一个或多个实施例,ifu/idu106可一次获取和解码来自线程的六个指令。根据本发明的一个或多个实施例,发送给设置块108的六个指令可以包括六个非分支指令,五个非分支指令和一个分支指令,或四个非分支指令和两个分支指令。根据本发明的一个或多个实施例,设置块108在将获取的指令发送到isu中的这些块之前,检查例如发布队列、完成表、映射器和寄存器文件中的条目中否存在足够的资源。

图1所示的映射器110将编程器指令(例如,逻辑寄存器名称)映射到处理器的物理资源(例如,物理寄存器地址)。图1中示出的各种映射器110包括条件寄存器(cr)映射器、链接/计数(lnk/cnt)寄存器映射器、整数异常寄存器(xer)映射器、用于映射通用寄存器(gpr)和矢量标量寄存器(vsr)的统一映射器(umapper)、用于映射gpr和vsr的架构化映射器(arch映射器)以及浮点状态和控制寄存器(fpscr)映射器。

来自设置块108的输出也被输入到全局完成表(gct)112,用于跟踪isu中当前的所有指令。设置块108的输出也输入到调度单元114,用于将指令调度到发布队列。图1所示的isu的实施例包括cr发布队列-crisq116,接收并跟踪来自cr映射器的指令并将它们发布120给指令提取单元(ifu)124以执行cr逻辑指令和移动指令。图1中还显示了分支发布队列-分支isq118,从lnk/cnt映射器接收并跟踪分支指令和lnk/cnt物理地址。如果预测的分支地址和/或方向不正确,则分支isq118可以向ifu124发出122指令以重定向指令获取。

来自调度逻辑的指令输出和来自lnk/cnt映射器、xer映射器、umapper(gpr/vsr)、arch映射器(gpr/vsr)和fpscr映射器的重命名寄存器被输入到发布队列102。如图1所示,发布队列102跟踪调度的定点指令(fx)、加载指令(l)、存储指令(s)和矢量和缩放器单元(vsu)指令。如图1的实施例所示,发布队列102被分成两部分,isq01020和isq11021,每个部分保存n/2条指令。当处理器以st模式执行时,发布队列102可用作包含isq01020和isq11021的单个逻辑发布队列,以处理单个线程的所有指令(在此示例中为所有n条指令)。

当处理器以mt模式执行时,isq01020可用于处理来自第一线程的n/2条指令,isq11021用于处理来自第二线程isq11021的n/2条指令。

如图1所示,发布队列102向执行单元104发出指令,该执行单元被分成两组执行单元1040和1041。图1所示的两组执行单元1040和1041包括完整定点执行单元(完整fx0,完整fx1),加载执行单元(lu0,lu1),简单定点、存储数据和存储地址执行单元(简单fx0/std0/sta0,简单fx1/std1/sta1),浮点、矢量多媒体扩展、十进制浮点和存储数据执行单元(fp/vmx/dfp/std0,fp/vmx/dfp/std1)。lu0、简单fx0/std0/sta0和fp/vmx/dfp/std0共同构成负载存储单元(lsu)1042。类似地,lu1、简单fx1/std1/sta1和fp/vmx/dfp/std1共同构成负载存储单元(lsu)1043。

如图1所示,当处理器以st模式执行时,第一组执行单元1040执行isq01020发布的指令,第二组执行单元1041执行isq11021发布的指令。在本发明的一个替代实施例中,当处理器以st模式执行时,可以将发布队列102中的isq01020和isq11021两者发布的指令发布给第一组执行单元1040和第二组执行单元中1041的任何执行单元1040。

根据本发明的一个或多个实施例,当处理器以mt模式执行时,第一组执行单元1040执行isq01020发布的第一线程的指令,第二组执行单元1041执行isq11021发布的第二线程的指令。

图1中所示的发布队列102中的条目的数目以及其他元素的大小(例如,总线宽度、队列大小)在本质上是示例性的,因为可以以各种不同大小的发布队列和其他元素实现本发明的实施例。根据本发明的一个或多个实施例,大小是可选择或可编程的。

现在转到图2,总体上示出了根据本发明一个或多个实施例的gct、到gct中的较早条目的链接以及用于标识gct条目的组标签(gtag)的框图200。框202描绘了在将(与较新指令组相关联的)条目“17”合并到(与较早指令组相关联的)条目“4”之前的gct2022、链接表2024和gtag表2026。图2的框204描绘了在gct的条目“17”的内容被合并到条目“4”之后的gct2042、链接表2044和gtag表2046。

如先前所述,gct204在调度之后跟踪运行中指令直到完成。当调度一组指令时,向该组分配gtag,gtag对应于gct204中的条目并标识该组指令。gtag被顺序地分配并且被本文描述的一个或多个实施例用以跟踪运行中指令组的调度顺序。与运行中指令相关联的资源可以使用gtag来识别每个资源分配给哪组指令。当一组指令完成时,可以广播完成gtag,以便可以释放与完成组相关联的资源并由新指令重新使用。

在乱序处理器中,指令可以在完成之前/而不是完成之后被刷新。从指令流水线中清除推测性指令的原因包括但不限于:分支错误预测、加载/存储乱序执行危险检测、上下文同步指令的执行以及异常条件。根据本发明的一个或多个实施例,gct广播用于全部和部分组刷新的刷新组gtag,使得与刷新的指令相关联的资源可以被释放并由新指令重新使用。对于部分组刷新,gtag可以附带一个掩码,以指示正在刷新哪些指令。

如先前所描述,框202描绘在将(与条目“4”相比的下一个较新指令组相关联的)条目“17”合并到(与条目“17”相比的下一个较早指令组相关联的)条目“4”之前的gct2022、链接表2024和gtag表2026。对于gct2022中的每个条目,链接表2024存储运行中指令紧随其后的组(较新组)的前向链接和运行中指令的紧随之前的组(较早组)的后向链接。在图2的框202中还示出了gtag表2026,包括对于gct2022中的每个条目,当组完成时要广播的gtag(标记为“cmpl”的列)以及当组的全部或子集被刷新时要使用的gtag(标为“f1”的列)。

如图2的框202所示,gct2022中条目“4”处的运行中指令组是最早运行中指令组(它没有反向链接),并且gct2022中条目“31”处的运行中指令组是gct2022中最新运行中指令组(它没有前向链接)。从gct2022中最早条目开始,图2的框202中所示的运行中指令组的调度顺序是gct条目“4”处的gtag为“3”的运行中指令组,在gct条目“17”处的gtag为“4”的运行中指令组,在gct条目“11”处的gtag为“5”的运行中指令组和在gct条目“31”处的gtag为“6”的运行中指令组。

图2中的框204描绘了在将(与条目“4”相比的下一个较新指令组相关联的)条目“17”合并到(与条目“17”相比的下一个较早指令组相关联的)条目“4”之后的gct2042、链接表2044和gtag表2046。当合并完成时,gct2042中的合并条目“4”包括合并之前的条目“17”处的(gtag为“4”的)组的完成信息和条目“4”处的(gtag为“3”的)组的完成信息。一旦合并之前与条目“4”相关联的运行中组中的所有指令都已完成,则可以使用完成信息来完成两组指令。完成信息可以包括但不限于两组指令中存储操作的总数,两组指令中加载操作的总数,两组指令中的指令总数以及合并组的gtag。如图2的框204所示,在条目“17”和“4”合并之后,gct2042中的条目“17”空闲或被释放。从gct2024中最早条目开始的图2的框204所示的运行中指令组的调度顺序(如链接表2044所示)是用于刷新的gtag为“3”和用于完成的gtag为“4”的gct条目“4”处的运行中指令组、gtag为“5”的gct条目“11”处的运行中指令组,以及gtag为“6”的gct条目“31”处的运行中指令组的合并组。

如果较早组刷新而不是完成,则在gct条目“4”处的运行中指令的合并组使用不同的gtag。根据一个或多个实施例,当合并的指令完成时,与合并的较新指令组或较低(即,较早指令)的gtag相关联的任何资源被释放。这与刷新形成对比,刷新导致与合并的较早指令组或较高(即,较新指令)的gtag相关联的任何资源被释放。

图2的方框202中示出的gct2022包括可以由所有活动线程动态共享的32个条目。在单线程(st)模式下,每个gct条目对应于一组指令。在多线程(mt)模式下(例如,同时mt或“smt”),每个gct条目最多可以包含来自同一线程的两个调度组。gct2022中的每个条目都包含条目中所含组中每个指令的完成位。可以在gct2022中存储任意数量的条目(例如16、64、100、128和256),出于讨论目的,32个条目是非限制性示例条目。

现在转到图3,总体上示出了根据本发明一个或多个实施例的在乱序处理器中合并gct条目的流程图300。在框302,按顺序将gtag分配给每组已调度指令,以帮助跟踪运行中的已调度指令组的调度顺序。在框304,识别运行中指令的较新组(例如,在时间t+1调度)以与运行中指令的较早组(例如,在时间t发送)合并。识别可以包括检测较新组中的所有指令都具有完成状态。较新组可以与gct中的第一分配条目相关联,而紧随较新组(它们是连续的)之前调度的较早组可以与gct中的第二分配条目相关联。

在框306,将与较新组相关联的gct中的条目的内容合并到与较早未完成的指令组相关联的gct中的条目的内容,以创建包括完成信息的合并的分配条目用于两组运行中指令。在框308,更新gct条目之间的后向和前向链接以移除到较新组的链接。在框310,将较早组的gtag替换为较新组的gtag以用于合并的较早组的完成。在框312,与较新组相关联的gct条目被重新分配并且可供新的一组指令使用。

现在转到图4,总体上示出了根据本发明一个或多个实施例的在乱序处理器中合并gct条目的框图400。块402示出了链表,该链表是用于逻辑上表示图2所示的gct2022、链接表2024和gtag表2026的一个选项。块404示出了代表gct条目“17”和“4”合并为单个合并的条目“4”之后如图2所示的gct2042、链接表2044和gtag表2046的链表,如图4的框406中所示,至少部分地基于检测到与gct条目“11”相关联的指令组中的所有指令具有完成状态,较新组条目到较早组的合并可以继续将gct条目“11”合并到合并条目“4”中。合并完成后,可以重新使用gct条目“11”并将其与新的一组指令相关联。

现在转到图5,总体上示出了根据本发明一个或多个实施例的由乱序处理器中的指令组利用的示例资源的框图500。图5包括基于指令的调度顺序而顺序访问的先进先出(fifo)顺序资源502以及以随机顺序分配给指令组的随机顺序资源504。加载重排序队列(lrq)和存储重排序队列(srq)是fifo顺序资源502的示例。根据本发明的一个或多个实施例,lrq的特征在于按顺序(调度顺序)分配和释放。分配时,当一组指令完成时,更改(指向最早条目的)尾指针,并且每个线程对lrq进行分区。例如,如果一组指令具有两个加载指令并且该组指令完成,则在队列中将lrq的尾指针前移两个条目。根据本发明的一个或多个实施例,当较新指令组被合并到下一较早指令组中,较新指令组中的负载数量被添加到较早指令组中的负载数量。当合并组完成,调整lrq尾指针以考虑两个指令组中的负载。srq与lrq相似,但是在存储耗尽后可能会发生释放。可以是fifo顺序资源502的另一个资源是有效地址表(eat),该地址表的特征在于按顺序分配和释放,以及更改尾指针完成线程。

图5所示的寄存器映射器表是随机顺序资源504的示例。寄存器映射器表可以由图1所示的映射器110生成,以将(由gtag标识的)指令组与物理寄存器相关联(每个物理寄存器一个条目)。如图5的寄存器映射器表所示,有“r”个寄存器,与“gtagx”的gtag相关联的指令组使用物理寄存器“1”和“4”,与“gtagy”的gtag相关联的指令组使用物理寄存器“2”,“3”和“6”。当一组指令完成并且广播了gtag,与广播gtag相同或小于广播gtag(即,较早指令组)的gtag相关联的所有物理寄存器都被标记为包含架构状态或被释放以由新指令组使用。当刷新一组指令并广播gtag,可以释放与大于广播gtag的gtag(即较新指令组)相关联的物理寄存器以由新指令组使用。因此,寄存器映射器表可以至少部分地基于例如从gct接收到的刷新或完成指示符来释放条目以由其他指令使用。

现在转向图6,总体上示出了根据本发明一个或多个实施例的用于在乱序处理器中完成合并的gct条目的流程图600。本发明的一个或多个实施例允许单个完成来扫描/完成两组或更多组指令。当反映两个或更多个合并gct条目的组合的gct条目完成时,本发明的一个或多个实施例处理资源的释放。

在图6所示的处理流程的框602监视运行中指令组中指令的状态。如果在框604确定与gct中的合并条目相关联的组中的所有指令都完成,流程继续到框612,其中确定全部指令完成的合并块是否适合完成,例如,它是最早组。如果是这样,则流程继续到框606,其中对合并条目中的所有组执行完成处理。根据本发明的一个或多个实施例,完成处理可以包括请求释放并释放由合并条目中的所有指令组使用的资源。如前所述,资源可以包括先进先出(fifo)资源,请求释放可以包括将指针移动到fifo资源中指定位置的请求。同样如前所述,资源可以包括随机顺序资源,并且请求释放可以包括移除与特定标签(例如,小于指定值的gtag)相关联的条目的请求。如果合并的组不适合完成,例如由于较早组尚未完成,则在框614确定当前的合并组是否可以与较早组合并。如果是,则在框616以先前描述的方式执行合并组。在框602,通过监视运行中指令的状态,继续对新合并或先前合并且未完成的组进行处理。

如果在框604确定与gct中的合并条目相关联的组中的所有指令尚未完成,则流程继续到框608处,其中确定是否应该刷新与合并条目相关联的组中指令的全部或子集(例如,完成逻辑从分支解析或异常逻辑接收并指示需要刷新以及刷新gtag和指令掩码)。如果在框608确定应当刷新与gct中的合并条目相关联的组中的指令,则流程继续到框610,其中对合并条目中的所有组执行刷新处理。如果在框608确定不应刷新与gct中的合并条目相关联的组中的指令,则流程继续到框602,监视运行中指令的状态。

图6中所示的处理通过允许以与未合并的gct条目中的单个组相同的速率完成合并的gct条目中的多个组来执行快速完成。例如,如果完成中的gct条目表示合并组,则可以在每个周期中每个线程完成一个组的设计可以仅在一个周期中完成每个线程十个组以返回资源(并解除调度)。另外,在完成之前合并gct条目还提供了释放较新合并组所占用的gct条目的好处。

现在转向图7,总体上示出了根据本发明一个或多个实施例的用于实现在乱序处理器中提供合并的gct条目的一些或所有方面的计算机系统的框图。本文描述的处理可以以硬件、软件(例如,固件)或其组合来实现。在示例性实施例中,所描述的方法可以至少部分地以硬件来实现,并且可以是专用或通用计算机系统700(例如移动设备、个人计算机、工作站、小型计算机、或大型机。

在示例性实施例中,如图7所示,计算机系统700包括处理器705、耦合到存储器控制器715的存储器712以及一个或多个输入设备745和/或输出设备747,例如外围设备,这些设备747和745通过本地i/o控制器735通信地耦合。这些设备747和745可以包括例如打印机、扫描仪、麦克风等。常规键盘750和鼠标755可以耦合到i/o控制器735。i/o控制器735可以是例如本领域中已知的一条或多条总线或其他有线或无线连接。i/o控制器735可以具有为了简化而被省略的附加元件,诸如控制器、缓冲器(高速缓存)、驱动器、转发器和接收器,以实现通信。

i/o设备747、745可以进一步包括输入和输出两者的设备,例如磁盘和磁带存储、网络接口卡(nic)或调制器/解调器(用于访问其他文件、设备、系统、或网络)、射频(rf)或其他收发器、电话接口、网桥、路由器等。

处理器705是用于执行硬件指令或软件(特别是存储在存储器712中的硬件指令或软件)的硬件设备。处理器705可以是定制或商用处理器,中央处理器(cpu)、辅助处理器、与计算机系统700相关联的处理器、基于半导体的微处理器(以微芯片或芯片组的形式)、微处理器或其他用于执行指令的设备。处理器705可以包括高速缓存,例如但不限于用于加速可执行指令取回的指令高速缓存,用于加速数据取回和存储的数据高速缓存以及用于加速的转换后备缓冲器(tlb)。可执行指令和数据的虚拟到物理地址转换。可以将高速缓存组织为更多高速缓存级别(l1,l2等)的层次结构。

存储器712可以包括易失性存储元件(例如,随机存取存储器、ram,例如dram、sram、sdram等)和非易失性存储元件(例如,rom、可擦除可编程只读存储器(eprom),可电子擦除的可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁带、光盘只读存储器(cd-rom)、磁盘、软盘、盒带、盒式磁带等)。此外,存储器712可以结合电子、磁性、光学或其他类型的存储介质。注意,存储器712可以具有分布式架构,其中各种组件彼此远离放置,但是可以由处理器705访问。

存储器712中的指令可以包括一个或多个单独的程序,每个程序包括用于实现逻辑功能的可执行指令的有序列表。在图7的示例中,存储器712中的指令包括合适的操作系统(os)711。操作系统711本质上可以控制其他计算机程序的执行,并提供调度、输入输出控制、文件和数据管理、内存管理、通讯控制和相关服务。

附加数据,例如包括用于处理器705的指令或其他可检索信息,可以存储在存储器727中,该存储器可以是诸如硬盘驱动器或固态驱动器的存储设备。存储器712或存储器727中存储的指令可以包括那些使处理器705能够执行本公开的调度系统和方法的一个或多个方面的指令。

计算机系统700可以进一步包括耦合至显示器730的显示控制器725。在示例性实施例中,计算机系统700可以进一步包括用于耦合至网络765的网络接口760。网络765可以是基于ip的网络,用于经由宽带连接在计算机系统700与外部服务器、客户端等之间进行通信。网络765在计算机系统700和外部系统之间发送和接收数据。在示例性实施例中,网络765可以是由服务提供商管理的被管理ip网络。可以以无线方式(例如,使用诸如wifi,wimax等的无线协议和技术)来实现网络765。网络765也可以是诸如局域网、广域网、城域网、区域网络、internet或其他类似类型的网络环境之类的分组交换网络。网络765可以是固定无线网络、无线局域网(lan)、无线广域网(wan)、个人局域网(pan)、虚拟专用网(vpn)、内联网或其他合适的网络系统,并且可能包括用于接收和发送信号的设备。

用于在乱序处理器中提供合并的gct条目的系统和方法可以全部或部分地体现在计算机程序产品或计算机系统700中,如图7所示。

在此参考相关附图描述了本发明的各种实施例。在不脱离本发明范围的情况下,可以设计出替代实施例。尽管在以下描述和附图中在元件之间阐述了各种连接和位置关系(例如,在上方、下方、相邻等),但是本领域技术人员将认识到,本文所述的许多位置关系是取向-即使更改了方向,在保持所描述的功能时也可以独立使用。除非另有说明,否则这些连接和/或位置关系可以是直接的或间接的,并且本发明并不意图在这方面进行限制。因此,实体的耦合可以指直接或间接耦合,并且实体之间的位置关系可以是直接或间接的位置关系。此外,本文描述的各种任务和过程步骤可以被合并到具有本文未详细描述的附加步骤或功能的更全面的过程或过程中。

以下定义和缩写将用于权利要求书和说明书的解释。如本文所使用的,术语“包括”、“包含”、“具有”或其任何其他变型旨在涵盖非排他包容。例如,包括一系列元素的组合物、混合物、过程、方法、物品或设备不一定仅限于那些元素,而是可以包括未明确列出或此类组合物、混合物、过程、方法、物品或设备所固有的其他元素。

另外,术语“示例性”在本文中用来表示“用作示例、实例或说明”。本文中被描述为“示例性”的任何实施例或设计不必被解释为比其他实施例或设计更优选或有利。术语“至少一个”和“一个或多个”应理解为包括大于或等于一的任何整数,即一个、两个、三个、四个等。术语“多个”应理解为包括。大于或等于2任何整数,即两个,三个,四个,五个等。术语“连接”可以包括间接“连接”和直接“连接”。

术语“约”、大约”、“基本上”及其变体意在包括与基于可用在提交申请时的设备的特定数量的测量相关的误差程度。例如,“约”可以包括给定值的±8%或5%,或2%的范围。

为了简洁起见,在此可以或可以不详细描述与制造和使用本发明的方面有关的常规技术。特别地,众所周知,实现本文所述的各种技术特征的计算系统和特定计算机程序的各个方面。因此,为了简洁起见,在不提供公知的系统和/或处理细节的情况下,本文仅简要提及或完全省略了许多常规的实施细节。

本发明可以是系统,方法和/或计算机程序产品。计算机程序产品可以包括其上具有用于使处理器执行本发明的方面的计算机可读程序指令的计算机可读存储介质。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如java、smalltalk、c++等,以及传统的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1