虚拟重试队列的制作方法

文档序号:9848257阅读:193来源:国知局
虚拟重试队列的制作方法
【专利说明】
[0001 ]本公开涉及计算系统,并且特定地(但不排他地)涉及计算系统中的一致性控制。
【背景技术】
[0002]处理器芯片已经在近几十年中显著地演进。多核芯片的出现已经实现并行计算以及计算设备(包括个人计算机和服务器)内的其他功能。处理器原始地开发为仅具有一个核。每一个核可以是能够读取执行程序指令的独立的中央处理单元(CPU)。已经为个人计算设备开发了双核、四核以及甚至六核处理器,并且高性能服务器芯片已经开发为具有高达十个、二十个以及更多核。利用有线导体或其他传输介质的片上互连可将核与其他片上组件互连。按比例缩放芯片上的核数量可能对寻求促进核的高速互连的芯片设计者提出挑战。已经开发了各种互连架构,包括环形总线互连架构,等等此类示例。
[0003]计算设备可利用诸如外围组件互连(PCI)快速(PCIe)之类的互连架构来促进设备上的组件之间的互通信。互连架构可使用基于信用的流控制和其他流控制规则来管理设备的各种组件对设备资源的“公平的”访问和使用。当多个组件竞争资源时,由于此竞争或其他因素,一个组件对资源的访问会受到阻碍。例如,死锁或活锁条件可能发生,从而导致贫乏的组件的资源饥饿。相同的设备还能够及时地发布对针对此设备的事务的响应。已经为处置计算设备的组件的请求或响应无法取得向前进展(forward progress)的实例开发了内部饥饿机制。此上下文中的向前进展涉及组件发布事务请求(或完成响应)并且及时地使它们完成(或者成功地传送)的能力。向前进展会出于各种原因而停滞,诸如,当设备不具有成功地将分组(packet)发布到链路上的流控制信用时,等等此类示例。
【附图说明】
[0004]图1示出包括多核处理器的计算系统的框图的实施例。
[0005]图2示出包括互连的多核系统的框图。
[0006]图3示出包括实现至少一个虚拟重试队列的特征的逻辑的示例系统块的框图。
[0007]图4示出表示示例系统块的示例请求虚拟重试队列和响应虚拟重试队列的框图。
[0008]图5示出表示示例请求虚拟重试队列的框图。
[0009]图6示出表示示例响应虚拟重试队列的框图。
[0010]图7示出表示用于使用虚拟重试队列的示例技术的流程图。
[0011]图8示出计算系统的框图的另一实施例。
[0012]各个附图中的相同的参考号和指定指示相同的元件。
【具体实施方式】
[0013]在以下描述中,陈述了许多特定细节(诸如,特定类型的处理器和系统配置、特定的硬件结构、特定的架构和微架构细节、特定的寄存器配置、特定的指令类型、特定的系统组件、特定的测量/高度、特定的处理器流水线级和操作等的示例)以提供对本发明的透彻理解。然而,对本领域技术人员将显而易见的是,无需采用这些特定的细节来实践本发明。在其他实例中,未详细地描述公知的组件或方法(诸如,特定的和替代的处理器架构、用于所描述的算法的特定逻辑电路/代码、特定的固件代码、特定的互连操作、特定的逻辑配置、特定的制造技术和材料、特定的编译器实现、特定的算法代码表达、特定的断电和门控技术/逻辑以及计算机系统的其他特定的操作细节)以避免不必要地使本发明含糊。
[0014]尽管可参考特定的集成电路中(诸如,在计算平台或多处理器中)的能量节约和能效来描述以下实施例,但是其他实施例可适用于其他类型的集成电路和逻辑器件。本文中描述的实施例的类似的技术和教导可应用于也可受益于更好的能效和能量节约的其他类型的电路或半导体器件。例如,所公开的实施例不限于台式计算机系统或超极本?,并且还可用在其他设备(诸如,手持式设备、平板计算机、其他薄笔记本计算机、片上系统(SOC)设备以及嵌入式应用)中。手持式设备的一些示例包括蜂窝电话、网际协议设备、数码相机、个人数字助理(PDA)以及手持式PC。嵌入式应用通常包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机、或能够执行以下教导的功能和操作的任何其他系统。此外,本文中所述的装置、方法和系统不限于物理计算设备,而是还可涉及用于能量节约和效率的软件优化。如将从以下描述变得非常明显的是,本文中描述的方法、装置和系统的实施例(无论参照硬件、固件、软件还是它们的组合)对于以性能考量来平衡的“绿色科技”未来而言是至关重要的。
[0015]随着计算系统正在进展,其中的组件正变得越来越复杂。作为结果,用于在这些组件之间进行耦合和通信的互连架构也日益复杂以确保满足最佳组件操作的带宽要求。此夕卜,不同的市场部分要求互连架构的不同方面来适合市场需要。例如,服务器要求更高性能,而移动生态系统有时能够为功率节省而牺牲整体性能。然而,大多数结构的唯一目的是在最大的功率节省的情况下提供最高的可能性能。在下文中,讨论了多个互连,这将潜在地从本文中描述的本发明的多个方面受益的许多互连。
[0016]参照图1,描绘了包括多核处理器的计算系统的框图的实施例。处理器100包括任何处理器或处理设备,诸如,微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持式处理器、应用处理器、协处理器、片上系统(SoC)或用于执行代码的其他设备。在一个实施例中,处理器100包括至少两个核——核101和102,这可包括非对称核或对称核(所示实施例)。然而,处理器100可包括可以是对称的或非对称的任何数量的处理元件。
[0017]在一个实施例中,处理元件是指用于支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、进程单元、上下文、上下文单元、逻辑处理器、硬件线程、核和/或能够保持处理器的状态(诸如,执行状态或架构状态)的任何其他元件。换言之,在一个实施例中,处理元件是指能够独立地与代码(诸如,软件线程、操作系统、应用或其他代码)相关联的任何硬件。物理处理器(或处理器插槽)通常是指集成电路,此集成电路潜在地包括任何数量的其他处理元件(诸如,核或硬件线程)。
[0018]核通常是指位于集成电路上的、能够维持独立的架构状态的逻辑,其中,每一个被独立地维护的架构状态与至少一些专用执行资源相关联。与核相对照,硬件线程通常是指位于集成电路上的、能够维护独立的架构状态的任何逻辑,其中,被独立地维护的架构状态共享对执行资源的访问。如所见,当一些资源被共享并且其他资源专用于架构状态时,硬件线程与核的命名之间的界线重叠。但是经常而言,由操作系统将核和硬件线程视为单独的逻辑处理器,其中,操作系统能够单独地调度在每一个逻辑处理器上的操作。
[0019]如图1中所示,物理处理器100包括两个核——核101和102。在此,核101和102可以被认为是对称核,即,具有相同的配置、功能单元和/或逻辑的核。在另一个实施例中,核101包括无序处理器核,而核102包括有序处理器核。然而,核101和102可单独地选自任何类型的核,诸如,原生核、软件管理的核、被适配为执行原生指令集架构(ISA)的核、被适配为执行经转换的指令集架构(ISA)的核、共同设计的核或其他已知的核。在异构核环境(S卩,非对称核)中,可利用某种形式的转换(诸如,二进制转换)以在一个或两个核上调度或执行代码。但是为了进一步进行讨论,下文中进一步详细地描述核101中示出的功能单元,因为在所描绘的实施例中,核102中的单元以类似的方式操作。
[0020]如图所描绘,核101包括两个硬件线程1la和101b,它们还可被称为硬件线程槽1la和101b。因此,在一个实施例中,软件实体(诸如,操作系统)潜在地将处理器100视为四个分开的处理器,即,能够并发地执行四个软件线程的四个逻辑处理器或处理元件。如上文所暗指,第一线程与架构状态寄存器1la相关联,第二线程与架构状态寄存器1lb相关联,第三线程可与架构状态寄存器102a相关联,并且第四线程可与架构状态寄存器102b相关联。在此,这些架构状态寄存器(101a、101b、102a和102b)中的每一个都可被称为如上所述的处理元件、线程槽或线程单元。如图所示,在架构状态寄存器1lb中复制架构状态寄存器101a,因此能够为逻辑处理器1la和逻辑处理器1lb存储单独的架构状态/上下文。在核101、102中,也可分别为线程1la和1lb以及102a和102b复制其他较小的资源(诸如,分配器和重命名器块130、131中的指令指针和重命名逻辑)。可通过分区操作来共享一些资源(诸如,重排序/引退单元135、136中的重排序缓冲器、ILTB 120、121、加载/存储缓冲器和队列)。潜在地可完全共享其他资源,诸如,通用内部寄存器、(多个)页表基址寄存器、较低层级的数据高速缓存和数据TLB 150、151、执行单元140、141以及无序单元的多个部分。
[0021]处理器110经常包括其他资源,这些资源可完全被共享、通过分区操作被共享,或可由处理元件专用/专用于处理元件。在图1中,示出具有处理器的说明性逻辑单元/资源的纯示例性处理器的实施例。注意,处理器可包括或省略这些功能单元中的任何一个,并且可包括未描绘的任何其他已知功能单元、逻辑或固件。如图所示,核101包括简化的表示性的无序(000)处理器核。但是可在不同的实施例中利用有序处理器。000核包括用于预测待执行/采取的分支的分值目标缓冲器120以及用于存储用于指令的地址转换条目的指令转换缓冲器(1-TLB) 120。
[0022]核101进一步包括解码模块125,此解码模块耦合到取出单元以对所取出的元素进行解码。在一个实施例中,取出逻辑包括分别与线程槽101a、101b相关联的单独的定序器。通常,核101与第一 ISA相关联,此第一 ISA定义/指定在处理器100上可执行的指令。经常,作为第一 ISA的部分的机器代码指令包括指令中引用/指定待执行的指令或操作的部分(被称为操作码(opcode))。解码逻辑125包括电路,此电路从指令的操作码中识别这些指令,并且在流水线中继续传递经解码的指令,以便如由第一 ISA定义的那样来处理。例如,如下文中更详细地所讨论,在一个实施例中,解码器125包括设计成或适配成识别特定的指令(诸如,事务指令)的逻辑。作为由解码器125识别的结果,架构或核101采取特定的预定义的动作来执行与适当的指令相关联的任务。重要的是要注意到,可响应于单条或多条指令来执行本文中描述的任务、块、操作和方法中的任一者;这些指令中的一些可以是新指令或旧指令。注意,在一个实施例中,解码器125识别相同的ISA(或其子集)。或者,在异构核环境中,解码器126识别第二 ISA(第一 ISA的子集或不同的ISA)。
[0023]在一个示例中,分配器和重命名器块130包括用于预留资源(诸如,用于存储指令处理结果的寄存器组)的分配器。然而,线程1la和1lb潜在地能够无序地执行,其中,分配器和重命名器块130还预留其他资源(诸如,用于跟踪指令结果的重排序缓冲器)。单元130还可包括寄存器重命名器以便将程序/指令引用寄存器重命名到处理器100内部的其他寄存器。重排序/引退单元135包括组件(诸如,上述重排序缓冲器、加载缓冲器和存储缓冲器)以支持无序的执行以及稍后对经无序执行的指令的有序的引退。
[0024]在一个实施例中,调度器和执行单元块140包括用于在执行单元
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1