用于时钟门控控制的早唤醒-警告的制作方法

xiaoxiao2021-2-18  167

用于时钟门控控制的早唤醒-警告的制作方法
【技术领域】
[0001]本公开涉及计算系统,并且尤其(但不是排他地)涉及计算系统中的时钟门控。
【背景技术】
[0002]近几十年来,处理器芯片已经显著地进化。多核芯片的降临已经允许在包括个人计算机和服务器的计算设备内的并行计算和其他功能。最初处理器被开发为仅具有一个核。每一核可以是能够读取并执行程序指令的独立的中央处理单元(CPU)。已经开发了用于个人计算设备的双核、四核以及甚至六核的处理器,同时伴随着十核、二十核和更多核的上升趋势已开发了高性能服务器芯片。可以利用线导体或其他传输介质的片上互连来将核连同其他片上组件互连。扩大芯片上的核的数量可能对寻求促进核的高速互连的芯片设计者提出挑战。已经开发了各种互连架构,包括环形总线互连架构以及其他示例。
[0003]用于高速计算系统的时钟设计继续进展。已经实现了具有超过8GHz速度的现代时钟。集成电路(1C)可以使用时钟信号来同步电路或芯片的不同组件。包括多个组件的更复杂的系统可以利用多个同步的时钟信号来驱动并同步组件的相互作用。通过选择性地禁用和/或启用用于电路的某个部分的时钟信号,也可以对时钟信号进行门控/解除门控。通过在不使用对应的组件时有效地关闭由时钟驱动的数字电路的部分,时钟门控可以例如用来节省功率。
【附图说明】
[0004]图1阐释包括多核处理器的计算系统的框图的实施例。
[0005]图2阐释包括互连和示例唤醒-警告信道的多核系统的框图。
[0006]图3阐释启用早唤醒-警告功能的特征的系统组件逻辑的框图。
[0007]图4阐释根据至少一些实现的、请求路径和早警告路径的框图。
[0008]图5A-5C阐释涉及在系统组件的请求之前的、用于对系统组件的时钟进行门控/解除门控的唤醒-警告信号的示例流。
[0009]图6A-6B阐释示出支持早唤醒-警告功能的系统的示例技术的流程图。
[0010]图7阐释计算系统的框图的另一实施例。
[0011]各附图中相同的标号和标记指示相同的元件。
【具体实施方式】
[0012]在下列描述中,陈述了众多特定的细节(诸如,特定类型的处理器和系统配置、特定的硬件结构、特定的架构的和微架构的细节、特定的寄存器配置、特定的指令类型、特定的系统组件、特定的测度/高度、特定的处理器流水线级和操作等的示例)以便提供对本发明的透彻理解。然而,对本领域技术人员将显而易见的是,不需要采用这些特定的细节来实践本发明。在其他实例中,未详细地描述众所周知的组件或方法(诸如,特定的和替代的处理器架构、用于所描述的算法的特定的逻辑电路/代码、特定的固件代码、特定的互连操作、特定的逻辑配置、特定的制造技术和材料、特定的编译器实现、代码中算法的特定表达、特定的电源休眠和门控技术/逻辑和计算机系统的其他特定的操作细节以避免不必要地使本发明含糊。
[0013]尽管可以参考在特定的集成电路中(诸如,在计算平台或微处理器中)的节能和能效来描述下列实施例,但是其他实施例适用于其他类型的集成电路和逻辑器件。本文中描述的实施例的类似的技术和教导可以应用于也可受益于更好的能效和节能的其他类型的电路或半导体器件。例如,所公开的实施例不限于台式计算机系统或超极本?,并且还可以用于其他设备,诸如,手持式设备、平板、其他薄笔记本、片上系统(S0C)设备和嵌入式应用。手持式设备的一些示例包括蜂窝式电话、网际协议设备、数码相机、个人数字助理(PDA)和手持式PC。嵌入式应用通常包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机或可以执行下文中教导的功能和操作的任何其他系统。此外,本文中描述的装置、方法和系统不限于物理计算设备,而是也可以涉及用于节能和能效的软件优化。如在以下描述中将容易变得明显的那样,本文中描述的方法、装置和系统的实施例(无论是参考硬件、固件、软件还是它们的组合)对于以性能考虑来平衡的“绿色技术”未来是至关重要的。
[0014]随着计算系统正在进步,其中的组件正变得更复杂。结果,用于在组件之间进行耦合和通信的互连架构的复杂性也正在增加以确保满足最优组件操作的带宽要求。此外,不同的细分市场要求互连架构的不同方面来适应市场的需要。例如,服务器要求更高的性能,而移动生态系统有时能够牺牲整体性能以节能。然而,以最大的节能来提供最高可能的性能是大多数结构的唯一目的。在下文中讨论将潜在地受益于本文中描述的本发明的多个方面的许多互连。
[0015]参见图1,描绘了包括多核处理器的计算系统的框图的实施例。处理器100包括任何处理器或处理设备,诸如,微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持式处理器、应用处理器、协处理器、片上系统(S0C)或用于执行代码的其他设备。在一个实施例中,处理器100包括至少两个核一一核101和102,它可以包括非对称的核或对称的核(所阐释的实施例)。然而,处理器100可以包括可以是对称的或非对称的任何数量的处理元件。
[0016]在一个实施例中,处理元件是指用于支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、进程单元、上下文、上下文单元、逻辑处理器、硬件线程、核和/或能够为处理器保持诸如执行状态或架构状态之类的状态的任何其他元件。换句话说,在一个实施例中,处理元件是指能够独立地与诸如软件线程、操作系统、应用或其他代码之类的代码相关联的任何硬件。物理处理器(或处理器插槽)通常是指潜在地包括任何数量的其他处理元件(诸如,核或硬件线程)的集成电路。
[0017]核常常是指位于能够维持独立的架构状态的集成电路上的逻辑,其中,每一个被独立地维持的架构状态与至少一些专用执行资源相关联。与核相对照,硬件线程通常是指位于能够维持独立的架构状态的集成电路上的任何逻辑,其中,被独立地维持的架构状态共享对执行资源的访问。正如可见的,当某些资源被共享且其他专用于一种架构状态时,硬件线程与核的命名法之间的界线重叠。然而,核和硬件线程往往被操作系统看作是单个逻辑处理器,其中操作系统可以个别调度每一逻辑处理器上的操作。
[0018]如图1中所阐释,物理处理器100包括两个核一一核101和102。在此,核101和102可以被认为是对称核,即,具有相同的配置、功能单元和/或逻辑的核。在另一实施例中,核101包括无序处理器核,而核102包括有序处理器核。然而,核101和102可以单独地选自任何类型的核,诸如,原生核、软件管理的核、适于执行原生指令集架构(ISA)的核、适于执行经变换的指令集架构(ISA)的核,共同设计的核或其他已知的核。在异构的核环境(S卩,非对称核)中,可以利用某种形式的变换(诸如,二进制变换)以在一个或两个核上调度或执行代码。进一步开展该讨论,下面还详细描述核101中所阐释的各功能单元,这是由于核102中的各单元以与所描绘的实施例中相似的方式操作。
[0019]正如所描绘的,核101包括两个硬件线程101a和101b,它们也可以被称为硬件线程槽101a和101b。因此,一个实施例中的软件实体(诸如,操作系统)潜在地将处理器100视为四个分开的处理器,即,能够并发地执行四个软件线程的四个逻辑处理器或处理元件。如上文所暗指,第一线程与架构状态寄存器101a相关联,第二线程与架构状态寄存器101b相关联,第三线程可以与架构状态寄存器102a相关联,而第四线程可以与架构状态寄存器102b相关联,在此,如上所述,架构状态寄存器(101a、101b、102a和102b)中的每一个都可以被称为处理元件、线程槽或线程单元。正如所阐释的,在架构状态寄存器101b中复制架构状态寄存器101a,因此能够为逻辑处理器101a和逻辑处理器101b存储单独的架构状态/上下文。在核101、102中,也可以分别为线程101a和101b以及102a和102b复制其他较小的资源(诸如,分配器和重命名器框130、131中的指令指针和重命名逻辑)。可以通过分区操作(partit1ning)来共享一些资源,诸如,重排序/引退单元135、136中的重排序缓冲器、ILTB120、121、加载/存储缓冲器和队列。可能完全共享其他资源,诸如,通用内部寄存器、(多个)页表基址寄存器、低层级数据高速缓存和数据TLB 150、151、(多个)执行单元140、141和无序单元的多个部分。
[0020]处理器100常常包括可以被完全共享,可通过分区操作被共享或可由处理元件专用或专用于处理元件的其他资源。在图1,阐释具有处理器的说明性逻辑单元/资源的纯粹示例性的处理器的实施例。注意,处理器可以包括或省略这些功能的单元中的任何一个,并且可以包括未描绘的任何其他已知功能单元、逻辑或固件。正如所阐释的,核101包括简化的表示性无序(000)处理器核。但是有序处理器可以用于不同的实施例。000核包括分支目标缓冲器120和指令变换缓冲器(1-TLBH20,分支目标缓冲器120用于预测要执行/采取的分支,指令变换缓冲器(1-TLB) 120存储指令的地址变换条目。
[0021]核101还包括解码模块125,此解码模块125耦合到取出单元以对被取出元素解码。在一个实施例中,取出逻辑包括分别与线程槽101a、101b相关联的单独的定序器。通常核101与第一 ISA相关联,此第一 ISA定义/指定在处理器100上可执行的指令。作为第一 ISA的部分的机器代码指令常常包括指令中引用/指定要执行的指令或操作的部分(被称为操作码)。解码逻辑125包括电路,此电路从这些指令的操作码中识别这些指令,并在流水线中继续传输经解码的指令以供按照第一ISA所定义来处理。例如,如下文中更详细地所讨论,在一个实施例中,解码器125包括设计为或适于识别诸如事务指令之类的特定指令的逻辑。作为由解码器125识别的结果,架构或核101采取特定的、预定义的动作来执行与适当的指令相关联的任务。重要的是应注意,可以响应于单条或多条指令来执行本文中描述的任务、块、操作和方法中的任何一者;这些指令中的一些指令可以是新指令或旧指令。注意,在一个实施例中,解码器126识别相同的ISA(或其子集)。替代地,在异构的核环境中,解码器126识别第二ISA(第一ISA的子集或不同的ISA中的任一种)。
[0022]在一个示例中,分配器和重命名器框130包括用于预留资源的分配器,诸如,用于存储指令处理结果寄存器组。然而,线程101a和101b潜在地能够无序地执行,其中,分配器和重命名器框130也预留其他资源,诸如,用于跟踪指令结果的重排序缓冲器。单元130也可以包括寄存器重命名器,此寄存器重命名器用于将程序/指令引用寄存器重命名为处理器100内部的其他寄存器。重排序/引退单元135包括用于支持无序执行以及稍后对经无序地执行的指令的有序引退的组件,诸如,上述重排序缓冲器、加载缓冲器和存储缓冲器。
[0023]在一个实施例中,调度器和(多个)执行单元框140包括在执行单元上调度指令/操作的调度器单元。例如,在执行单元中具有可用的浮点执行单元的端口上调度浮点指令。还包括与执行单元相关联的寄存器组,以便存储信息指令处理结果。示例性执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元和其他已知的执行单元。
[0024]较低层级的数据高速缓存和数据变换缓冲器(D-TLB)150耦合到(多个)执行单元140。数据高速缓存用于存储最近使用/操作的元素,诸如,数据操作数,这些元素被潜在以存储器一致性状态保持。D-TLB用于存储最近的虚拟/线性至物理地址的变换。作为特定示例,处理器可以包括用于物理存储器分成多个虚拟页面的页表结构。
[0025]在此,核101和102共享对较高层级的或进一步远离的高速缓存(诸如,与片上接口110相关联的第二级高速缓存)的访问。注意,较高层的或进一步远离 的是指从(多个)执行单元增加或进一步远离的高速缓存层级。在一个实施例中,较高层级的高速缓存是末级数据高速缓存一一处理器100上的存储器层次结构中的最后的高速缓存一一诸如,第二级或第三级数据高速缓存。然而,较高层级的高速缓存不限于此,因为它可以与指令高速缓存相关联或包括指令高速缓存。追踪高速缓存一一指令高速缓存的类型一一可以替代地在解码器125之后被耦合以存储最近经解码的踪迹。在此,指令潜在地是指宏指令(S卩,由解码器识别的通用指令),此宏指令可以解码成多个微指令(微操作)。
[0026]在所描绘的配置中,处理器100也包括片上接口模块110。历史上,存储器控制器(下文中更详细地描述)已被包括在处理器100外部的计算系统中。在这种场景中,片上接口11用于与处理器100外部的设备通信,处理器100外部的设备诸如,系统存储器175、芯片组(常常包括用于连接到存储器175的存储器控制器中枢和用于连接外围设备的I/O控制器中枢)、存储器控制器中枢、北桥或其他集成电路。并且在这种场景中,总线105可以包括任何已知的互连,诸如,多点式总线、点对点互连、串行互连、并行总线、一致性(例如,高速缓存一致性)总线、分层协议架构、差分总线和GTL总线。
[0027]存储器175可以专用于处理器100或由系统中的其他设备共享。存储器175的类型的常见示例包括DRAM、RAM、非易失性存储器(NV存储器)和其他已知的存储设备。注意,设备180可以包括图形加速器、耦合到存储器控制器中枢的处理器或卡、耦合到I/O控制器中枢的数据存储设备、无线收发机、闪存设备、音频控制器、网络控制器或其他已知的设备。
[0028]然而,随着近来更多逻辑和器件被集成在单个管芯(诸如,S0C)上,这些设备中的每一个都可以被合并在处理器100上。例如,在一个实施例中,存储器控制器中枢在与处理器100相同的封装和/或管芯上。在此,核的部分(核上部分)110包括一个或多个控制器,用于与其他设备(诸如,存储器175或图形设备180)对接。包括用于与此类设备对接的互连和控制器的配置常常被称为核上(或非核配置)。作为示例,片上接口 110包括用于片上通信的环形互连和用于片外通信的高速串行点对点链路105。然而,在SOC环境中,甚至更多的设备(诸如,网络接口、协处理器、存储器175、图形处理器180和任何其他已知的计算机设备/接口)可以被集成在单个管芯或集成电路上以提供具有高功能性和低功耗的小形状因子。
[0029]在一个实施例中,处理器100能够执行编译器、优化和/或变换器代码177以编译、变换和/或优化应用代码176,从而支持本文中描述装置和方法或与本文中描述的装置和方法对接。编译器常常包括用于将源文本/代码变换成目标文本/代码的程序或程序集。通常,在多个阶段和多轮次中利用编译器来进行对程序/应用代码的编译,以便将高级编程语言代码变换成低级机器或汇编语言代码。然而,单遍式编译器仍然可以用于简单的编译。编译器可以利用任何已知的编译技术和执行任何已知的编译器操作,诸如,词法分析、预处理、解析、语义分析、代码生成、代码变换和代码优化。
[0030]较大的编译器常常包括多个阶段,但最常见地,这些阶段被包括在两个通用阶段内:(1)前端,即,通常句法处理、语义处理和一些变换/优化可发生之处,以及(2)后端,SP,通常发生分析、变换、优化和代码生成发生之处。一些编译器被称为中间件,其阐释在编译器的前端与后端之间轮廓的模糊性。结果,对编译器的插入、关联、生成或其他操作的引用可以在前述的阶段或轮次中的任何阶段或轮次中,以及在编译器的任何其他已知的阶段或轮次中发生。作为说明性的示例,编译器潜在地在一个或多个编译阶段中插入操作、调用、函数等等,诸如,在编译的前端阶段中插入调用/操作的,并且随后在变换阶段期间将调用/操作变换为较低层级的代码。注意,在动态编译期间,编译器代码或动态优化代码可以插入此类操作/调用,并且优化此代码供在运行时期间执行。作为特定的说明性示例,在运行时期间,可以动态地优化二进制代码(已经被编译的代码)。在此,程序代码可以包括动态优化代码、二进制代码或其组合。
[0031]与编译器类似,变换器(诸如,二进制变换器)静态地或动态地变换代码以便优化和/或变换代码。因此,对代码、应用代码、程序代码或其他软件环境的执行的引用可以是指:(1)动态地或静态地执行(多个)编译器程序、优化代码优化器或变换器,以便编译程序代码,维护软件结构,执行其他操作,优化代码或变换代码;(2)执行包括操作/调用的主程序代码,例如已经优化/编译的应用代码;(3)执行与主程序代码相关联的其他程序代码(诸如,库),以便维护软件结构,执行其他软件相关的操作或优化代码;或(4)上述各项的组合。
[0032]示例互连结构和协议可以包括此类示例:外围组件互连(PCI)快速(PCIe)架构、英特尔快速路径互连(QPI)架构、移动行业处理器接口(MIPI)等。可以通过在节点控制器之间使用多个域或其他互连来达到所支持的一系列处理器。
[0033]互连结构架构可以包括分层协议架构的定义。在一个实施例中,可以提供多个协议层(一致的、非一致的和任选地基于其他存储器的协议)、路由层、链路层和物理层。此外,互连可以包括与功率管理器、用于测试和调试(DFT)的设计、故障处置、寄存器、安全等相关的增强。
[0034]在一个实施例中,互连结构的物理层可以负责在物理介质(电或光介质等)上信息的迅速传递。物理链路是在两个链路层实体之间的点对点链路。链路层可以从上层抽象物理层,并且提供在两个被直接连接的实体之间可靠地传递数据(以及请求)并管理流控制的能力。它也负责将物理信道虚拟为多个虚拟信道和消息类。协议层可以依赖于链路层,以便在将协议消息递送至物理层以供跨物理链路传递之前将这些协议消息映射为适当的消息类并映射到虚拟信道中。链路层可以支持多种消息,例如请求、监听、响应、写回、非一致性数据,等等
[0035]在一些实现中,链路层可以利用用于流控制的信用方案。也可以支持非信用式流。对于信用式流,在初始化期间,给予发送机一组多个信用,这些信用用于将分组(packet)或微片(flit)发送给接收机。每当分组或微片被发送至接收机时,发送机对其信用计数器递减一个信用,取决于正在使用的虚拟网络的类型,一个信用标识分组或微片。每当在接收机处释放缓冲器时,那种缓冲器类型的信用被返回至发送机。在一个实施例中,在发送机用于给定信道的信用已经耗尽时,它停止在那个信道中发送任何微片。本质上,在接收机已经消耗了此信息并释放了适当的缓冲器之后,信用被返回。
[0036]在一个实施例中,路由层可以提供用于将分组从源路由至目的地的灵活的分布式方式。在一些平台类型(例如,单处理器和双处理器系统)中,该层可能不是明确的,而是可以是链路层的部分;在此类情况下,该层是任选的。它依赖于由链路层作为用于确定如何路由分组的功能的部分而提供的虚拟网络和消息类抽象。在一种实现中,通过实现特定的路由表来实现此路由功能。此类定义允许各种使用模型。
[0037]在一个实施例中,协议层可以实现通信协议、排序规则和一致性维持、I/O、中断和其他较高层级的通信。注意,在一种实现中,协议层可以提供用于协商组件和系统的功率状态的消息。作为潜在的附加,物理层也可以独立地或结合地设置多个单独的链路的功率状
??τ ο
[0038]多个代理可以连接到互连架构,例如,本地代理(对向存储器的请求进行排序)、高速缓存(将请求发布至一致性存储器,并且响应于监听)、配置(处置配置事务)、中断(处理中断)、旧式设备(legacy)(处置旧式事务)、非一致性设备(处置非一致性事务),等等。
[0039]在一些实现中,可以结合存在于系统上的其他功能来提供时钟门控功能以辅助管理系统的功耗。时钟门控/解除门控(在本文中有时被共同称为“门控”)可以允许选择性地激活或启用和禁用系统中的特定的组件、单元、子组件和子单元等的时钟,使得当具有将由受时钟驱动的组件执行的工作时来启用时钟,并且当不具有工作时禁用时钟。在一些系统中,时钟功率可能消耗总的芯片功率的很大一部分,并且随着时钟速度增加,可以预期对潜在地由系统时钟利用的功率的共享会上升。实际上,在一些情况下,时钟功率可能消耗总芯片功率的大部分或更多。通过对系统时钟计时的有效的功率管理,可以实现可观的攻略节省机会。
[0040]在一些情况下,系统时钟可以是包括树、脊或网格网络的分布式时钟,并且一个或多个根时钟信号被分布到更多本地时钟汇集点(sink)、“区域”或其他子网络的一个或多个层级或层次结构。理论上,可以在系统的分布式时钟网络的层级中的任何层级处执行门控。举例来说,在一些实现中,较高层级的时钟脊可以“馈送”更多本地的或较低层级的时钟区域。这些时钟区域可以充当更低层级的本地时钟的父信号,等等此类实现。通过对较高的层级或父时钟信号门控,也可以对较低层级子时钟信号门控。例如,区域时钟缓冲器(RCB)层级处的门控可以使相同的门控应用于本地时钟缓冲器(LCB)层级上的此区域的较低层级的本地时钟,等等此类示例。
[0041]在一些实现中,时钟门控寄存器可以包括接受用于选择性地启用或门控对应的时钟的启用条件的逻辑。在一些示例中,在预期将由受门控时钟驱动的系统组件执行某种工作时,可以将消息发送至时钟门控逻辑来启用已被禁用时钟。如果此时钟已经被启用,则消息或信号可能没有效果。在时钟被禁用的情况下,如果接收到根据门控逻辑的启用条件的信号,则可以将时钟进行门控为被启用,并且允许消耗此时钟信号的组件的功能。
[0042]尽管已经在一些现代的芯片和系统中采用了时钟门控,但是此类解决方案通常未被充分利用。传统的时钟门控可能引入附加的系统等待时间、有被丢弃的风险分组和其他示例问题。举例来说,通过将时钟置于被禁用状态来完成通过时钟门控实现的功率节省。然而,如果去往依赖于经门控时钟的组件的请求或数据在时钟的解除门控完成(启用)之前就到达目的地组件,则可以对此分组排队列或丢弃此分组。此外,一些传统的系统可以尝试保证在将请求发送至目的地组件之前对目的地组件的时钟解除门控。然而,此类方式可能通过有效地对请求排队列而引入附加的等待时间,从而使目的地组件的时钟的再次启用未决,等等此类问题。尽管许多现代的设备包括某种形式的时钟门控功能,但是在许多实例中,考虑到当前的时钟门控解决方案的性能损失和缺点,系统被设计为在很大程度上忽略或禁用这种功能。
[0043]在一些实现中,可以提供时钟门控解决方案,此时钟门控解决方案包括专用信道,此专用信道用于结合将发送至相同的目的地组件的请求来将早唤醒-警告信号发送到目的地组件,以供由目的地组件处的时钟门控逻辑用于唤醒目的地组件的时钟或对目的地组件的时钟解除门控,从而便确保在此请求到达目的地组件时启用了目的地组件的时钟(并且,作为延伸,启用了目的地组件本身)。可以通过互连,在与被传送至目的地组件的分开的路径上,并行于早唤醒-警告信号来有效地发送请求,同时通过唤醒-警告通信信道(或链路)的专用线来发送唤醒-警告信号,这可以允许具有很少或者没有查找或仲裁特征的简化的低等待时间传输,从而使唤醒-警告信号能够比通过已互连链路发送的、去往此目的地的对应请求提前一个或多个周期号而到达此目的地,所述互连链路包括更强健的协议、完全的消息仲裁、路径查找以及其他特征和策略。互连可以包括兼容PCIe的架构、兼容QPI的架构、兼容MIPI的架构或其他互连架构,等等此类示例。此类解决方案可以允许结合在系统中的组件之间有效地传送的的每一个请求来发送唤醒-警告信号,从而准许对在每一个组件处的时钟门控的精细调谐和积极的控制,以便实现对存在于系统上的时钟门控机会的更强健的利用。可以实现超过其他传统的解决方案的对应的功率节省,以及没有明确示出的其他示例益处和优点。
[0044]可以提供合并了诸如上文中介绍的那些原理之类的原理的系统,诸如,与下文中的示例中所示出和描述的那些系 统类似的系统。例如,转到图2的简化的框图中所阐释的示例,系统200示出为包括多个片(tile)或单元,每一个片都包括多个处理器核(例如、202、204、206、208、210、212、214、216、218、220)以及对应高速缓存区块(bank)(例如,末级高速缓存(LLC)的高速缓存区块)(例如,222、224、226、228、230、232、234、236、238、240)中的一个。在一些实例中,可以在微服务器或其他服务器系统中实现系统200的组件。每一片还可以包括用于管理核(例如,202、204、206、208、210、212、214、216、218、220)与高速缓存区块(例如,222、224、226、228、230、232、234、236、238、240)中的一个或多个之间的交互的逻辑。举例来说,每一片可以包括高速缓存盒逻辑、核盒逻辑或组合的核-高速缓存盒逻辑(在此被共同称为 “Cbo” 逻辑)(例如,242、244、246、248、250、252、254、256、258、260),所述Cbo逻辑用于将核与系统高速缓存(例如,LLC)对接,并且提供用于结合来自核(或其他组件)、涉及高速缓存记录的请求一起使用的功能。此类功能可以包括用于确定对应于所请求的高速缓存记录的高速缓存区块、用于将请求发送至高速缓存代理(例如,在对应的高速缓存盒上)、用于确定发送请求的路径、用于执行高速缓存一致性以及其他示例功能的逻辑。每一个片或单元还可以包括将单元(以及组件核、高速缓存区块等)与互连265对接的相应的互连接口(例如,264、266)。Cbo逻辑可以与对应的互连接口(例如,264、266)对接,或者在一些情况下,可以合并对应的互连接口(例如,264、266)。另外,在图2的特定示例中,可以提供专用唤醒-警告链路或信道270,并且每一个单元(例如,通过接口(例如,264、266))可连接到互连265和唤醒-警告信道270两者。
[0045]在图2的示例中,示出环形互连265,并且以环型取向提供对应的唤醒-警告信道270。应当领会,可以提供其他互连架构,包括网格、多环、混合式环-网格和其他互连。可以提供镜像了互连的总体物理布局或取向的对应唤醒-警告信道。举例来说,可以结合环型互连来提供环型唤醒-警告信道,可以结合网格型互连来提供网格型唤醒-警告信道,以此类推。在其他实例中,唤醒-警告信道可以采用独立于或不同于互连的设计或布局的设计或布局。唤醒-警告信道可以是简化的通信信道,并且驱动互连(例如,265)的布局的考虑可能不适用于唤醒-警告信道。在一些实现中,可以采用用于唤醒-警告信道的布局以进一步增强唤醒-警告信道在比由互连用来传输对应的实质性请求或消息的周期更少的周期中将唤醒-警告信号传输至目的地的能力,等等此类示例和考虑。
[0046]在一些实现中,Cbo逻辑或单元上的其他逻辑(诸如,对应的核和/或互连接口的逻辑)可以包括用于生成早唤醒-警告信号并在唤醒-警告信道270上发送此早唤醒-警告信号的逻辑。唤醒-警告信号可以针对特定的目的地单元,并且可以标识此单元和/或此单元的子组件,诸如,特定的高速缓存区块。在一些实现中,专用唤醒-警告信道可以包括多个线,并且可以在对应于目的地单元的那些线上发送唤醒-警告信号。在一些示例中,唤醒-警告信号可以针对或唤醒多个单元。实际上,此设计可允许在那些单元中的仅一个或其子集接收到最终的请求的情况下,成组的单元被唤醒-警告信号唤醒。在此类情况下,可唤醒不接收此请求的单元达短的持续时间(例如,直到当未能检测5 ij对应的传入请求时的超时为止),并且随后往回将这些单元门控到禁用状态,同时接收此请求的(多个)单元保持在启用状态,等等此类不例。
[0047]如上所述,在一些实现中,可以在处理互连265的逻辑中的一些逻辑(包括仲裁逻辑、某个控制逻辑和路径查找逻辑)的专用唤醒-警告信道上发送唤醒-警告信号,从而允许此唤醒-警告信号比与此唤醒-警告信号相关联的请求更快地行进到目的地。在一些情况下,可结合发送将由目的地单元处置的相应请求来发送唤醒-警告信号。可以对唤醒-警告信号的发送定时,使得它在接近请求的发送的时间窗口内被发送。举例来说,在一些示例中,可以在时间窗口内带宽可用的任何时刻将唤醒-警告信号注入到唤醒-警告信道270上,并且唤醒-警告信号可以在唤醒-警告信道270上的两个方向上行进。接口逻辑(例如,在接口(例如,264、266)处)可以监视唤醒-警告信道270以标识唤醒-警告信号,这些唤醒-警告信号标识与此接口相关联的对应的组件。唤醒-警告信道270的协议和策略可以配置为促进唤醒-警告信号的发送,使得唤醒-警告信号总是在与此唤醒-警告信号同时(或基本并发地)发送的目的地组件的对应请求之前到达目的地组件。这可以确保在在目的地组件处被门控为禁用状态的时钟在传入请求到达之前就被警告此传入请求,使得(多个)时钟被门控为启用状态以允许目的地组件在此请求可能到达的时刻处置此请求。
[0048]能以可能无限种类的系统布局、架构或平面布置图中的任何一种,与互连(例如,265)—起来提供专用唤醒-警告信道(例如,270),并且此专用唤醒-警告信道可用于连接可以被包括在例如片上系统(S0C)中的组件的可能的任何组合。图2的示例应当仅理解成此类系统的一个简化的示例。除核-高速缓存片之外的组件或类似的组件也可以与唤醒-警告信道(例如,270)和互连(例如,265)对接,并且享有早唤醒-警告功能的益处。实际上,如图2的示例中所示,其他组件(例如,271、272、274)、存储器控制器和诸如?(:16、0?1或其他互连组件之类的外部接口组件可以与唤醒-警告信道(例如,270)和互连(例如,265)对接。因而早唤醒-警告信号可以寻址至此类组件并可由此类组件消耗,从而允许其他组件和信道(例如,274、276、278、280、282、284、286、288、290、292)也有可能享有使用早唤醒-警告功能而潜在地实现的功率节省和其他益处。
[0049]转到图3的示例,示出了简化的框图300,此简化的框图300阐释示例系统单元的子组件,诸如,包括处理器核210和LLC区块230的单元以及支持逻辑(例如,对应的核盒(例如,250a)、高速缓存盒(250b)等(在本文中,有时被共同称为“Cbo”(例如,250)))。在图3的具体示例中,提供能够与互连链路265和专用唤醒-警告信道链路270两者对接的环接口 264。在这种特定的示例中,可以提供高速缓存盒逻辑250a,用于处置涉及特定的高速缓存区块230的请求。可以直接从核210、从通过互连265传递请求的系统的另一核或另一组件(包括寻找来自高速缓存的记录的外部组件)接收请求。入口逻辑330可以处置对高速缓存区块230的传入请求。C管310可以包括用于处置请求的逻辑。举例来说,可以提供系统地址解码器(SAD) 315,以便在跨所有的高速缓存区块确定了高速缓存未命中时或在所请求的记录实际可能在系统存储器中的另一确定时(等等此类示例)来确定系统存储器中对应于所请求记录的位置(例如,在高速缓存外部)。也可以提供一致性逻辑320以提供涉及此高速缓存区块的高速缓存一致性管理。响应逻辑325可以与C管逻辑对接以生成对所接收的请求的响应。此类响应可以包括从高速缓存区块230返回的数据(例如,在所请求的记录存在于高速缓存区块上的情况下)、一致性消息、指示“未命中”的消息(即,当所请求的记录不存在于在高速缓存区块上时)、指向高速缓存或存储器中可以找到此记录的另一位置的消息,等等此类示例。
[0050]可以准备由高速缓存盒逻辑250b生成的响应,以便通过使用出口逻辑330在互连265上发送。出口逻辑330可以标识响应的目的地,并且确定(例如,使用路径逻辑340)用于发送响应的互连上的路径340。可由路径逻辑340使用查找表或其他数据和逻辑来确定最适用于此响应的路径。出口逻辑330还可以包括仲裁逻辑335,此仲裁逻辑335用于仲裁互连265上数据的发送。在一些实例中,例如当存在在互连265上或者将被注入到互连265上的其他较高优先级的通信量时,可对将由高速缓存盒逻辑或核盒逻辑发送的消息排队列。仲裁逻辑335可以仲裁为互连带宽而竞争的消息(包括将使用出口逻辑330发送的多条竞争的消息(例如,请求和响应))的注入。由核盒逻辑250a和高速缓存盒逻辑250b两者使用出口逻辑330以将数据发送到互连265上。在一些实现中,可以提供单个共享的出口逻辑模块(例如,330),以供由核盒逻辑250a和高速缓存盒逻辑250b两者使用,而在其他示例中,可以为核盒逻辑250a和高速缓存盒逻辑250b中的每一个提供专用出口逻辑,等等此类示例。
[0051]核盒逻辑250a可以包括用于处理从核(例如,210)发送的、对存储器、高速缓存或其他系统资源的请求的逻辑。可提供请求产生逻辑345以生成请求。请求生成逻辑345可以标识请求将发送至其的目的地组件的地址。出口逻辑330可以利用地址信息来标识互连265上用于发送请求的最佳路径。在一个示例中,核盒逻辑250a还可以包括用于生成与使用请求逻辑345生成的请求相关联的唤醒-警告信号的逻辑350。唤醒-警告逻辑350可以生成唤醒-警告信号,此唤醒-警告信号被保证在对应的请求之前到达目的地。在一些实现中,可以由唤醒-警告逻辑350选择性地生成唤醒-警告信号。举例来说,对于针对本地高速缓存区块(例如,230)的请求,可能没有唤醒-警告信号是需要的。在其他示例中,一些组件可以指定早唤醒-警告不被支持或被禁用,并且唤醒-警告逻辑350可以放弃结合去往此类组件的请求来生成唤醒-警告信号,等等此类示例。互连接口 264可用于将核210连接到专用唤醒-警告信道,并且在此专用唤醒-警告信道上将所生成的唤醒-警告信号发送到此唤醒-警告信号的目的地。
[0052]图3的示例中所阐释的单元可以结合单元(例如,高速缓存区块230)的请求,通过唤醒-警告信道270,接收来自其他组件的唤醒-警告信号。可以提供唤醒-警告信号检测逻辑(例如,355)以标识唤醒-警告信道270上计划去往对应于此检测逻辑的组件(诸如,Cbo、高速缓存代理、核等)的唤醒-警告信号。在检测到用于组件或者用于组件的甚至单独的子组件或本地时钟缓冲器(LCB)的唤醒-警告信号时,检测逻辑355可以将唤醒-警告标识至门控逻辑360,此门控逻辑360配置成对此组件的一个或多个时钟信号(和缓冲器)进行门控。例如,可以结合唤醒-警告信号的接收来门控并进而启用一个或多个区域时钟缓冲器(RGB)或与组件或子组件相关联的时钟网络的另一部分。如果时钟被门控为被禁用(例如,处于功率节省模式),则唤醒-警告信号的接收可以使时钟在计划去往此组件的对应请求的接收之前被门控并启用。在一些实例中,如果已经启用了时钟,则可以忽略唤醒-警告信号的接收。在其他实现中,检测逻辑355可以结合将时钟从启用状态门控为禁用状态来进一步利用唤醒-警告信号。举例来说,检测逻辑355还可以包括用于检测由时钟网络的特定部分驱动的组件或子组件的不活动的功能,以便触发将这些时钟门控为禁用状态。在一个示例中,可应用定时器可以以将时钟门控为禁用状态。在一些实现中,定向到时钟(或相关联的组件)的唤醒-警告信号的接收可以使此定时器复位。能以其他方式将唤醒-警告信号的频率和历史定时并确定将时钟从启用状态门控到禁用状态的时钟门控,从而优化与此门控相关联的功率节省工作。例如,可以结合检测逻辑355来实现计数器,以便基于检测到的涉及此组件或子组件的空闲或空状态来对不活动状态的检测计数并触发对不活动状态的检测。
[0053]在一些实现中,可通过使唤醒-警告信号针对特定的组件(诸如,特定的Cbo(以及相关联的核(例如,210)和高速缓存区块(例如,230)))来实现较细粒度的时钟门控。可以处理此类唤醒-警告信号以对适用于组件的多个时钟信号均匀地进行门控(诸如,在组件的一个或多个RGB(例如,365)的层级上)。这可以简化唤醒-警告信令的执行,同时实现粗糙但高效的 门控(例如,在Cbo层级上)。其他实现可以支持标识并特别针对用于以更细粒度的水平进行门控的更多本地时钟的唤醒-警告信号,等等此类示例
[0054]应当领会,仅出于说明性目的提供图3示例,并且图3的示例不限制能够执行早唤醒-警告信令和检测以及对应的时钟门控的逻辑的各种实现。举例来说,可以结合核盒逻辑250a和高速缓存盒逻辑250b中的任一者或两者来提供检测逻辑355、门控逻辑360和唤醒-警告逻辑350,或者替代地,可以结合其他模块(包括例如,接口逻辑、组合式核-高速缓存Cbo逻辑、或其他示例)来提供检测逻辑355、门控逻辑360和唤醒-警告逻辑350。实际上,可以结合其他组件(包括除系统的核或高速缓存之外的组件,诸如,存储器控制器、中枢控制器或其他系统组件)来提供检测逻辑355、门控逻辑360和唤醒-警告逻辑350。
[0055]转到图4,示出简化的框图400,此简化的框图400阐释由组件的Cbo逻辑425支持的示例消息路径405、410,所述Cbo逻辑425能够提供用于在互连上(例如,在415处)发送请求并在不同的唤醒-警告信道上(例如,在420a、420b处)发送分开的唤醒-警告信号的早唤醒-警告功能。在图4的特定示例中,可以提供请求路径405,并且由Cbo逻辑425生成的请求被转发至查找表(LUT)逻辑430,随后结合协议来提供仲裁逻辑435、440,以便在互连上(例如,在415处)发送请求。
[0056]对计划去往互连的请求的更密集的处理可以导致超过(沿路径410)将唤醒-警告信号发送至唤醒-警告信道(例如,在420a、420b处)所导致的等待时间的等待时间。举例来说,在这种特定示例中,可以利用全周期450将请求从I/O逻辑425提供至LUT逻辑430和仲裁逻辑435的第一块。从第一仲裁逻辑块435到第二仲裁逻辑块440可实现附加的半周期的等待时间455,并且可使用附加的半周期460来根据在互连上为此请求确定的路径适当地将此请求注入415到互连上。
[0057]相比之下,在图4的示例中,可以提供放弃类似的LUT 430或仲裁逻辑435、440的早警告路径410,从而允许唤醒-警告信号在比使用互连(通过路径405)将请求发送至相同的目的地所利用的更少的周期内被生成,被注入到唤醒-警告信道,并且到达目的地。举例来说,在这种简化的示例中,利用两个全周期以通过路径405来获取环上的请求,而利用单个周期(包括半周期465和半周期470a、470b)以将对应的唤醒-警告信号注入到唤醒-警告信道上。唤醒-警告信号的传输可以至少与在互连上将请求传输到相同的目的地一样快。实际上,在此示例中,即使对应于特定请求的唤醒-警告信号在生成此请求的半周期之后被生成,仍然可在此示例中在将此请求注入到互连之前将此唤醒-警告信号注入到其信道上,从而允许此唤醒-警告信号在请求之前到达目的地,并且在预期传入请求的目的地处导致任何期望的时钟门控。在一些实现中,可以与对应的请求的生成与沿路径405行进并发地生成唤醒-警告信号,并且此唤醒-警告信号沿路径410行进。实际上,相比于在对应的早唤醒-警告信号和路径410不存在的情况下将观察到的等待时间,可提供不将附加的等待时间添加至请求路径405的早唤醒-警告功能。因此,请求等待时间不必通过早唤醒-警告功能的供应而遭损害。
[0058]在一些实现中,结合对随着对应的请求的正常行进来发送唤醒-警告信号进行定时,可以提供附加的逻辑以缓冲唤醒-警告信号,从而将对请求路径405中相关请求的对应的缓冲考虑在内。在一些实例中,考虑到利用仲裁和其他流控制的互连策略,可以对请求排队列(例如,445),从而使确定用于此请求的互连或路径的可用性待决。可以在早警告路径410上提供监视请求路径的队列状态445的队列排定控制装置448以判断是否也应当对唤醒-警告信号排队列。在一些实现中,考虑到唤醒-警告信道的简单性,确保唤醒-警告信号不比它们对应请求早过多被发送可能是重要的。在一些实现中,基于传入请求将在唤醒-警告信号之后的特定窗口内到达(等等此类示例)的假设,接收唤醒-警告信号的组件可以将唤醒-警告信号映射至对应的传入请求。在一个示例中,可以允许唤醒-警告信号对接收单元的时钟解除门控达对应于对应的请求在此接收设备处可能被缓冲的时间段的时间段,由此保持唤醒-警告信号的效果达对应于对应的请求将被处理的预期的时间段的时间段,等等此类示例。因此,在一些实例中,可以附加地缓冲(例如,在448处)唤醒-警告信号,以便根据由请求路径405上的仲裁或其他逻辑对此请求施加的延时来延迟对唤醒-警告信号的发送,等等此类不例。
[0059]此外,如图4中的特定示例中所示,尽管可以根据在互连上的特定的经定义的路径来发送请求(例如,在环形互连的向上或向下的方向上),但是唤醒-警告信号可以受此约束,并且可以在如唤醒-警告信道的设计所提供的多个方向上被有效地广播,使得连接到唤醒-警告信道的每一个其他组件都看到此唤醒-警告信号。尽管其他更受控的协议可以应用于唤醒-警告信号的实现,但是在图4的特定示例中,唤醒-警告信道以环型互连来取向(像此互连)。此外,与在(双向)唤醒-警告信道上的特定方向(例如,根据最短或最快的路径)上发送唤醒-警告信号相反,可以在唤醒-警告环上的两个方向上并发地发送唤醒-警告信号420a、420b,从而相对于(例如,使用PCIe、QPI或其他互连架构策略和协议)在环形互连上发送415对应的请求的等待时间来进一步辅助简化并减少与唤醒-警告信号的发送相关联的等待时间,等等此类不例。
[0060]图5A-5C的简化的框图500a_c阐释利用诸如本文中别处描述的那些原理之类的原理从一个组件被发送至系统中的另一组件的请求和唤醒-警告信号的某些示例。在图5A的示例中,核206生成对此核206确定为位于高速缓存区块230上的高速缓存记录的请求。与唤醒-警告信号520—起生成请求515,并且使用例如在C盒246处的I/O逻辑、互连接口 505或另一模块而在互联265上发送此请求515。同样地发送唤醒-警告,但是在唤醒-警告信道270上发送。如图5A中所表示,唤醒-警告信道可以使唤醒-警告信号在在比在互连270上注射和发送请求515所花费的周期更少的周期中被注入并被发送至目的地(例如,C盒250)。这允许唤醒-警告信号被持续地且可靠地发送,并且在保持可用于发送请求515的最小的等待时间时领先于所有对应的请求的到达。换句话说,没有等待时间被添加至请求路径以推迟请求(例如,515)的到达或处理,从而允许警告并门控此请求的目的地(例如,250)。
[0061]如图5A中的示例所示出,可以发送唤醒-警告信号520以便以多个Cbo(例如,246、248、250)中特定的Cbo或控制系统的单元的其他组件为目标。可以由接口 264(或Cbo逻辑250)标识唤醒-警告信号520以确定唤醒-警告信号是计划去往Cbo 250(并且,作为延伸,去往核210和高速缓存区块230)。此外,在此例中,在唤醒-警告信号520到达之前,将Cbo 250的时钟信号门控为禁用此时钟。响应于接收到唤醒-警告信号520,Cbo 250的门控逻辑可以启用时钟525,并且由此使C盒250为对应的请求515的到达作好准备。实际上,转到图5B的示例,唤醒-警告信号520被检测到且经处理并且时钟525被启用的情况下,在唤醒-警告信号520到达(图5A处)之后的时刻,可以唤醒C盒250并且使C盒250为请求515的到达作好准备。举例来说,请求515可以在唤醒-警告信号520的到达之后的一个或多个周期到达。
[0062]继续先前的示例,并且转到图5C的简化的框图500c,C盒250可以处理请求515且确定例如高速缓存未命中,并且进一步确定对应于请求515的记录相反位于系统存储器中。C盒250可以包括用于标识管理系统存储器(记录被理解为在此系统存储器中)的存储器控制器530的逻辑,并且代表原始请求者(例如,核206)来生成附加的请求540以将对这些记录的请求转发值存储器控制器530。此外,C盒250可以同样地包括允许对应的唤醒-警告信号545向存储器控制器530警告传入请求540的逻辑或具有对此逻辑的访问权。因此,唤醒-警告信号545也可以被注入到唤醒-警告信道270上,并且在请求540到达之前就到达存储器控制器530。如果存储器控制器530支持时钟门控,并且存储器控制器530的相关时钟550被门控为禁用状态,则(在互连接口 535处)接收到唤醒-警告信号545可以使存储器控制器530的门控逻辑将时钟550门控为启用状态并使存储器控制器530(或存储器控制器的特定的相关子组件)为请求540的到达和处理作好准备,等等此类潜在的示例和交互。
[0063]现在转到图6A-6B的简化的流程图600a_b,结合在系统中供应早唤醒-警告功能来阐释示例技术。举例来说,在图6A的示例中,可以生成605请求,此请求将通过互连被发送至系统中的另一组件,诸如,发送至片上系统上的高速缓存区块。可在此组件处应用时钟门控。可以生成唤醒-警告信号,并且在与互连不同的专用信道上将此唤醒-警告信号发送610至系统组件,以便向系统组件警告传入请求,并触发对此系统组件处的一个或多个时钟的门控(或者,更确切地说,解除门控),从而在时钟被禁用的情况下(例如,结合对时钟的功率节省的门控)启用时钟。可以通过互连来发送615此请求。可以配置唤醒-警告信道,使得在与此请求相同的或接近的时刻生成并发送唤醒-警告信号仍然允许(并且在一些情况下,保证)唤醒-警告信号在此请求之前到达系统组件(无需缓冲此请求),从而允许解除门控在此请求到达之前发生。
[0064]在图6B的示例中,可以对专用唤醒-警告信道监视此信道上的适用的唤醒-警告信号。可以通过唤醒-警告信道接收620来自另一系统组件的唤醒-警告信号。基于唤醒-警告信号的接收620,可以对时钟(例如,本地或区域时钟缓冲器或甚至时钟脊)解除门控625。举例来说,如果在接收/检测到唤醒-警告信号时时钟被禁用,则唤醒-警告信号的接收可触发将时钟从禁用状态解除门控到启用状态的解除门控。在通过互连接收630来自其他系统组件的请求之前,可完成唤醒-警告信号的接收620和对应的时钟门控625,此请求对应于通过专用唤醒-警告信道接收620的先前已接收的唤醒-警告信号。在时钟被启用的情况下,可以处理此请求635。举例来说,此请求可以请求高速缓存区块的高速缓存记录,并且可以处理635此请求以确定高速缓存记录是否存在于高速缓存中,并且如果不是,则确定所请求的记录可能处于的位置(例如,另一高速缓存区块或存储器),等等在使用此互连的、与接收系统组件相关联的组件之间潜在的许多其他形式的请求和事务。
[0065]注意,可以在前述的任何电子设备或系统中实现以上所描述的装置、方法和系统。作为特定的说明,以下示例提供用于利用本文中描述的本发明的示例性系统。在更详细地描述以下系统时,从上文的讨论中公开、描述并回顾多种不同的互连。如显而易见的那样,以上所描述的进展可以应用于那些互连、结构或架构中的任何一个。
[0066]现在参见图7,所示出的是根据本发明的实施例的第二系统700的框图。如图7中所示,多处理器系统700是点对点互连系统,并且包括经由点对点互连750耦合的第一处理器770和第二处理器780。处理器770和780中的每一个都可以某种版本的处理器。在一个实施例中,752和754是串行、点对点一致的互连结构(诸如,英特尔快速路径互连(QPI)架构)的部分。结果,可以在QPI架构内实现本发明。
[0067]尽管仅以两个处理器770、780示出,但使应当理解,本发明的范围不限于此。在其他实施例中,一个或多个附外的处理器可以存在于给定的处理器内。
[0068]处理器770和780示出为分别包括集成存储器控制器单元772和782。处理器770还包括点对点(P-P)接口 776和778作为其总线控制器单元的部分的;类似地,第二处理器780包 括P-P接口 786和788。处理器770、780可使用P-P接口电路778、788,经由点对点(P-P)接口750来交换信息。如图7中所示,頂C 772和782将处理器耦合至相应的存储器,S卩,存储器732和存储器734,它们可以是在本地附连至相应的处理器的主存储器的多个部分。
[0069]处理器770、780各自使用点对点接口电路776、794、786、798,经由单独的?-?接口752、754来与芯片组790交换信息。芯片组790也经由接口电路792,沿高性能图形互连739来与高性能图形电路738交换信息。
[0070]共享高速缓存(未示出)可以被包括在两种处理器中的任一处理器中或被包括在两个处理器外部;当经由P-P互连与这些处理器连接,使得如果处理器被置于低功率模式,则任一个或两个处理器的本地高速缓存信息可以被存储在此共享高速缓存中。
[0071]芯片组790可以经由接口796耦合到第一总线716。在一个实施例中,第一总线716可以是外围组件互连(PCI)总线,或者诸如PCI快速总线或另一第三代I/O互连总线之类的总线,但本发明的范围不限于此。
[0072]如图7中所示,各种I/O设备714连同总线桥718—起被耦合到第一总线716,总线桥718将第一总线716耦合到第二总线720。在一个实施例中,第二总线720包括低引脚计数(LPC)总线。各种设备耦合到第二总线720,在一个实施例中,这些设备包括例如,键盘和/或鼠标722、通信设备727和常常包括指令/代码和数据730的诸如盘驱动器或其他大容量存储设备之类的存储单元728。此外,音频1/0724示出为耦合到第二总线720。注意,所包括的组件和互连架构有所不同的其他架构是可能的。例如,代替图7的点对点架构,系统可以实现多点式总线或其他此类架构。
[0073]尽管已经参照有限数量的实施例描述了本发明,但本领域技术人员将领会来自本发明的众多修改和变型。所附权利要求旨在将所有此类修改和变型覆盖为落在本发明的真实精神和范围内。
[0074]设计可能经历从创建到仿真到制造的各种阶段。表示设计的数据能以多种方式来表示此设计。首先,如在仿真中有用的,可以使用硬件描述语言或另一功能性描述语言来表示硬件。另外,在设计过程的一些阶段,可以产生具有逻辑和/或晶体管门的电路级模型。此外,在某个阶段,大多数设计达到表示各种器件在硬件模型中的物理位置的数据的水平。在使用常规的半导体制造技术的情况下,表示硬件模型的数据可以是指定用于生产集成电路的掩模的不同掩模层上各种特征的存在或缺失的数据。在对设计的任何表示中,数据可以被存储在任何形式的机器可读介质中。存储器或诸如盘之类的磁或光存储设备可以是用于存储信息的机器可读介质,此信息经由光或电波调制而被传输,或以其他方式生成以传输此类信息。在传输指示或携带代码或设计电载波时,在执行电信号的复制、缓冲或重新传输的程度上,产生了新的副本。因而,通信提供商或网络提供商可以至少临时地将具体化本发明的实施例的技术制品(诸如,被编码成载波的信息)存储在有形机器可读介质上。
[0075]本文中所使用的模块是指硬件、软件和/或固件的任何组合。作为示例,模块包括与用于存储适于由微控制器执行的代码的非暂态介质相关联的硬件,诸如,微控制器。因此,在一个实施例中,对模块的引用是指专门配置为识别和/或执行将被保存在非暂态介质上的代码的硬件。此外,在另一实施例中,模块的使用是指包括代码的非暂态介质,此代码专门适于由微控制器执行以执行预先确定的操作。并且如所推断的那样,在又一实施例中,术语模块(在此示例中)可以是指微控制器和非暂态介质的组合。被阐释为分开的模块边界通常改变,并且可能重叠。例如,第一模块和第二模块可以共享硬件、软件、固件或它们的组合,同时可保留一些独立的硬件、软件或固件。在一个实施例中,术语逻辑的使用包括硬件,诸如,晶体管、寄存器或其他硬件,诸如,可编程逻辑器件。
[0076]在一个实施例中,短语“用于”或“配置为”的使用是指布置、组合、制造、许诺销售、进口和/或设计装置、硬件、逻辑或元件以执行所指定的或确定的任务。在这此示例中,不是正在操作的装置或其元件如果被设计、耦合和/或相互连以执行所述所指定的任务,则此装置或其元件仍然“配置为”执行所指定的任务。作为纯粹说明性的示例,逻辑门可以在操作期间提供0或1。但是“配置为”将启用信号提供至时钟的逻辑门不包括可以提供1或0的每一个潜在的逻辑门。相反,此逻辑门是以在操作期间1或0输出用于启用时钟的某种方式被耦合的逻辑门。再次注意,术语“配置为”的使用不要求操作,而相反聚焦于装置、硬件和/或元件的潜在状态,其中在潜在状态下,装置、硬件和/或元件设计为执行在这些装置、硬件和/或元件正在操作时的特定任务。
[0077]此外,在一个实施例中,短语“能够/用于”和/或“可操作以”的使用是指以允许按照指定方式使用装置、逻辑、硬件和/或元件的方式来设计的一些装置、逻辑、硬件和/或元素。注意,如上所述,在一个实施例中,对“用于”、“能够”或“可操作以”的使用是指装置、逻辑、硬件和/或元件的潜在状态,其中,装置、逻辑、硬件和/或元件不是正在操作而是以允许以指定的方式使用装置的方式来设计的。
[0078]如本文中所使用,值包括数字、状态、逻辑状态或二进制逻辑状态的任何已知的表示。逻辑电平、逻辑值或逻辑的值的使用往往也被称为1和0,它们简单地表示二进制逻辑状态。例如,1是指高逻辑电平,并且0是指低逻辑电平。在一个实施例中,诸如晶体管或闪存单元之类的存储单元可能能够保存单个逻辑值或多个逻辑值。然而,已经使用计算机系统中的值的其他表示。例如,十进制数字十也可以被表示成二进制值1110和十六进制字母A。因此,值包括能够被保存在计算机系统中的信息的任何表示。
[0079]此外,状态可以由值或值的部分表示。作为示例,第一值(诸如,逻辑一)可以表示默认状态或初始状态,而第二值(诸如,逻辑零)可以表示非默认状态。另外,在一个实施例中,术语复位和置位分别是指默认的和经更新的值或状态。例如,默认值潜在地包括高逻辑值(即,复位),而经更新的值潜在地包括低逻辑值(即,置位)。注意,可以利用值的任何组合来表示任何数量的状态。
[0080]可以经由存储在机器可访问的、机器可读的、计算机可访问的或计算机可读的介质上的、可由处理元件执行的指令或代码来实现上文陈述的方法、硬件、软件、固件或代码的实施例。非暂态机器可访问的/可读介质包括以可由机器(诸如,计算机或电子系统)读取的形式提供(即,存储和/或传输)信息的任何机制。例如,非暂态机器可访问介质包括随机存取存储器(RAM),诸如,静态RAM(SRAM)或动态RAM(DRAM);R0M;磁或光存储介质;闪存设备;电存储设备;光存储设备;声存储设备;用于保存从暂态(传播的)信号(例如,载波、红外信号、数字信号)接收的信息的其他形式的存储设备;等等,它们将与可以从其接收信息的非暂态介质区分开。
[0081]用于将逻辑编程为执行本发明的实施例的指令可以被存储在系统中的存储器内,诸如,DRAM、高速缓存、闪存或其他存储设备。此外,可以经由网络或通过其他计算机可读介质来分布指令。因而,机器可读介质可以包括用于以可由机器(例如,计算机)读取的形式存储或传输信息的任何机制,但不限于,软盘、光盘、紧致盘、只读存储器(CD-ROM)和磁-光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPR0M)、电可擦除可编程只读存储器(EEPR0M)、磁或光卡、闪存或用于经由电、光、声或其他形式的传播信号(例如、载波、红外信号、数字信号,等等)通过互联网对信息进行的传输中的有形的机器可读存储设备。因此,计算机可读介质包括适用于以可由机器(例如,计算机)读取的形式存储或传输电子指令或信息的任何类型的有形的机器可读介质。
[0082]下列示例涉及根据本说明书的实施例。一个或多个实施例可以提供用于生成与特定的高速缓存记录相关联的请求的装置、系统、机器可读存储、机器可读介质和方法,其中,通过互连来将所述请求发送至与高速缓存区块相关联的系统组件。可以通过专用唤醒-警告信道来发送向所述系统组件指示所述请求将到达的唤醒-警告信号。唤醒-警告信号可使被禁用时钟被解除门控为启用状态。随后,所述请求被发送至所述系统组件。
[0083]在至少一个示例中,使用与所述专用唤醒-警告信道分开的互连来将所述请求发送至所述系统组件。
[0084]在至少一个示例中,所述互连包括环形互连。
[0085]在至少一个示例中,所述唤醒-警告信道被取向为将所述装置连接到至少所述系统组件的环。
[0086]在至少一个示例中,所述系统组件包括对应于所述高速缓存区块的高速缓存盒逻辑,其中,所述时钟用于由所述高速缓存盒逻辑利用。
[0087]在至少一个示例中,所述逻辑还用于:在发送所述请求之前标识对所述请求的缓冲;以及基于对所述请求的所述缓冲,在发送所述唤醒-警告信号之前缓冲所述唤醒-警告信号。
[0088]在至少一个示例中,在所述请求到达所述系统组件之前所述唤醒-警告信号到达所述系统组件。
[0089]在至少一个示例中,与发送所述请求基本上并发地发送所述唤醒-警告信号。
[0090]在至少一个示例中,所述唤醒-警告信道是双向信道,并且在所述唤醒-警告信道上的两个方向上发送所述唤醒-警告信号。
[0091]在至少一个示例中,所述唤醒-警告信号影响对于对应于所述高速缓存区块的区域时钟缓冲器的门控。
[0092]在至少一个示例中,所述唤醒-警告信号使对被启用时钟的禁用延迟。
[0093]—个或多个实施例可以提供用于从另一系统组件接收通过所述系统的专用唤醒-警告信道而发送的唤醒-警告信号的装置、系统、机器可读存储、机器可读介质和方法,其中,所述唤醒-警告信号指示传入请求跟随所述唤醒-警告信号。可以至少部分地基于所述唤醒-警告信号来对所述时钟解除门控,以便在接收所述传入请求之前启用时钟。可以通过互连接收所述传入请求,并且可以使所述传入请求被处理。
[0094]在至少一个示例中,在接收到所述唤醒-警告信号时,所述时钟被禁用。
[0095]在至少一个示例中,所述逻辑还用于:检测对应于所述时钟的特定的系统组件的不活动状态;以及基于来对所述时钟门控以禁用所述时钟。
[0096]在至少一个示例中,所述不活动状态基于不活动定时器。
[0097]在至少一个示例中,在所述时钟被启用时接收的唤醒-警告信号用于使所述不活动定时器重新启动。
[0098]在至少一个示例中,所述请求针对高速缓存记录,并且所述请求被处理以判断所述高速缓存记录是否被存储在对应于所述时钟的特定的高速缓存区块处。
[0099]在至少一个示例中,所述请求包括第一请求,并且所述逻辑还用于:基于对所述第一请求的处理来生成第二请求,以便发送给特定的系统组件;以及通过所述专用唤醒-警告信道来发送向所述特定的系统组件指示所述第二请求将到达的另一唤醒-警告请求。所述另一唤醒-警告信号用于使在所述特定的系统组件处的被禁用的时钟解除门控为启用状态,并且所述逻辑还使所述第二请求被发送到所述特定的系统组件。
[0100]在至少一个示例中,所述第二请求基于对来自所述第一请求的处理的高速缓存未命中的确定。
[0101]在至少一个示例中,所述逻辑还用于:对所述唤醒-警告信道监视寻址到多个系统组件中的特定的组件的唤醒-警告信号。
[0102]在至少一个示例中,所述唤醒警告信号标识所述特定的系统组件。
[0103]—个或多个实施例可以提供一种系统,此系统包括:第一硬件组件;以及第二硬件组件,所述第二硬件通过互连和唤醒警告信道连接到所述第一硬件组件,所述第二硬件组件包括接口和逻辑,所述接口去往所述互连和唤醒-警告信道,所述逻辑用于:从所述第 一硬件组件接收通过所述唤醒警告信道而发送的唤醒警告信号,其中所述唤醒警告信号指示传入请求跟随所述唤醒警告信号。可以对与所述第二硬件组件相关联的所述时钟解除门控,以便在接收到所述传入请求之前启用所述时钟。可以通过所述互连来接收所述传入,并且处理所述传入。
[0104]在至少一个示例中,所述第一硬件组件包括用于以下操作的逻辑:生成与特定的高速缓存记录相关联的所述请求,其中,所述请求通过互连被发送至与高速缓存区块相关联的系统组件。所述第一硬件组件的所述逻辑还可以:生成所述唤醒-警告信号,通过所述专用唤醒-警告信道来将所述唤醒-警告信号发送至所述第二硬件组件;以及通过所述互连来将所述请求发送至所述第二硬件组件。
[0105]在至少一个示例中,所述第二硬件组件还用于:生成第二请求以便发送值特定的硬件组件;通过所述专用唤醒-警告信道来发送向所述特定的硬件组件指示所述第二请求将到达的第二唤醒-警告信号;以及通过所述互连来将所述第二请求发送至所述特定的硬件组件。所述第二唤醒-警告信号用于使所述特定的硬件组件的被禁用的时钟被解除门控为启用状态;
[0106]在至少一个示例中,所述第一硬件组件包括第一片,所述第一片包括第一处理器核与第一高速缓存区块,并且所述第二硬件组件包括第二片,所述第二篇包括第二处理器核与第二高速缓存区块。
[0107]在至少一个示例中,所述第一和第二硬件组件是微服务器的组件。
[0108]—个或多个实施例可以提供一种装置,此装置包括集成电路,所述集成电路包括用于耦合多个片的片上互连,每一个片都包括核与高速缓存代理。所述特定的片可以包括:检测逻辑,用于基于与所述特定的片相关联的不活动指示器来确定对用于所述特定的片的至少部分的时钟进行门控;以及控制逻辑,耦合到所述检测逻辑,并且用于:响应于所述检测逻辑确定对所述时钟进行门控而对用于所述特定的片的所述至少部分的时钟进行门控;以及基于接收到的早唤醒信号,至少对于请求的到达及时地对用于所述特定的片的所述至少部分的时钟解除门控。
[0109]在至少一个示例中,所述特定的片的所述部分包括本地时钟缓冲器、区域时钟缓冲器和时钟脊中的一个。
[0110]在至少一个示例中,所述管芯上互连是环、网格、混合式环-网格互连架构中的一个。
[0111]在至少一个示例中,所述不活动指示器包括空闲条件计数器和空条件计数器中的至少一个。
[0112]在至少一个示例中,在唤醒信号环上接收所述早唤醒信号。
[0113]贯穿本说明书对“一个实施例”或“实施例”的引用意味着结合所述实施例描述的特定的特征、结构或特性被包括在本发明的至少一个实施例中。因而,贯穿本说明书各种场出现短语“在一个实施例中”或“在实施例中”不一定全都是指相同的实施例。此外,在一个或多个实施例中,可以按任何合适的方式来组合特定的特征、结构或特性。
[0114]在前述的说明书中,已经参考特定的示例性实施例给出了【具体实施方式】。然而,应明显看出,可以对本发明作出各种修改和改变而不背离所附权利要求书中所陈述的本发明的更宽泛的精神和范围。因此,应以说明性意义而非限制性意义来看待说明书和附图。此夕卜,上述使用实施例和其他示例性语言不一定是指相同的实施例或相同的示例,而是可以指不同的和有区别的实施例,并且可能是指相同的实施例。
【主权项】
1.一种装置,包括: 逻辑,所述逻辑用于: 生成与特定的高速缓存记录相关联的请求,其中,所述请求将通过互连被发送至与高速缓存区块相关联的系统组件; 通过专用唤醒-警告信道来发送向所述系统组件指示所述请求将到达的唤醒-警告信号,其中,唤醒-警告信号用于使被禁用的时钟被解除门控为启用状态;以及将所述请求发送至所述系统组件。2.如权利要求1所述的装置,其特征在于,使用与所述专用唤醒-警告信道分开的互连来将所述请求发送至所述系统组件。3.如权利要求2所述的装置,其特征在于,所述互连包括环形互连。4.如权利要求2所述的装置,其特征在于,所述唤醒-警告信道被取向为将所述装置连接到至少所述系统组件的环。5.如权利要求1所述的装置,其特征在于,所述系统组件包括对应于所述高速缓存区块的高速缓存盒逻辑,其中,所述时钟用于由所述高速缓存盒逻辑利用。6.如权利要求1所述的装置,其特征在于,所述逻辑进一步用于:在发送所述请求之前标识对所述请求的缓冲;以及基于对所述请求的缓冲而在发送所述唤醒-警告信号之前缓冲所述唤醒-警告信号。7.如权利要求1所述的装置,其特征在于,在所述请求到达所述系统组件之前,所述唤醒-警告信号将到达所述系统组件。8.如权利要求7所述的装置,其特征在于,将与发送所述请求基本上并发地来发送所述唤醒-警告信号。9.如权利要求1所述的装置,其特征在于,所述唤醒-警告信道是双向信道,并且所述唤醒-警告信号将在所述唤醒-警告信道上在两个方向上被发送。10.如权利要求1所述的装置,其特征在于,所述唤醒-警告信号用于影响对于对应于所述高速缓存区块的区域时钟缓冲器的门控。11.如权利要求1所述的装置,其特征在于,所述唤醒-警告信号用于使对被启用的时钟的禁用延迟。12.—种装置,包括: 逻辑,所述逻辑用于: 从另一系统组件接收通过所述系统的专用唤醒-警告信道而发送的唤醒-警告信号,其中,所述唤醒-警告信号指示传入请求跟随所述唤醒-警告信号; 至少部分地基于所述唤醒-警告信号来对时钟解除门控,以便在接收到所述传入请求之前启用时钟; 通过互连接收所述传入请求;以及 使所述传入请求被处理。13.如权利要求12所述的装置,其特征在于,在接收到所述唤醒-警告信号时,所述时钟被禁用。14.如权利要求12所述的装置,其特征在于,所述逻辑进一步用于:检测对应于所述时钟的特定的系统组件的不活动条件;以及基于所述不活动条件来对所述时钟门控以禁用所述时钟。15.如权利要求14所述的装置,其特征在于,所述不活动条件基于不活动定时器。16.如权利要求15所述的装置,其特征在于,在所述时钟被启用时接收到的唤醒-警告信号用于使所述不活动定时器重新启动。17.如权利要求12所述的装置,其特征在于,所述请求针对高速缓存记录,并且所述请求将被处理以判断所述高速缓存记录是否被存储在对应于所述时钟的特定的高速缓存区块处。18.如权利要求12所述的装置,其特征在于,所述请求包括第一请求,并且所述逻辑进一步用于: 基于对所述第一请求的处理来生成第二请求,其中,所述第二请求将被发送至特定的系统组件; 通过所述专用唤醒-警告信道来发送向所述特定的系统组件指示所述第二请求将到达的另一唤醒-警告信号,其中,所述另一唤醒-警告信号用于使在所述特定的系统组件处的被禁用时钟被解除门控为启用状态;以及 将所述第二请求发送至所述特定的系统组件。19.如权利要求18所述的装置,其特征在于,所述第二请求基于对来自所述第一请求的处理的高速缓存未命中的确定。20.如权利要求12所述的装置,其特征在于,所述逻辑进一步用于:对所述唤醒-警告信道监视寻址到多个系统组件中的特定的组件的唤醒-警告信号。21.如权利要求20所述的装置,其特征在于,所述唤醒-警告信号标识所述特定的系统组件。22.一种方法,包括以下步骤: 生成与特定的高速缓存记录相关联的请求,其中,所述请求将通过互连被发送至与高速缓存区块相关联的系统组件; 通过专用唤醒-警告信道来发送向所述系统组件指示所述请求将到达的唤醒-警告信号,其中,唤醒-警告信号用于使被禁用的时钟被解除门控为启用状态;以及将所述请求发送至所述系统组件。23.一种方法,包括以下步骤: 从另一系统组件接收通过所述系统的专用唤醒-警告信道而发送的唤醒-警告信号,其中,所述唤醒-警告信号指示传入请求跟随所述唤醒-警告信号; 基于所述唤醒-警告信号来对时钟解除门控,以便在接收到所述传入请求之前启用时钟; 通过互连来接收所述传入请求;以及 使所述传入请求被处理。24.如权利要求23所述的方法,其特征在于,所述请求包括第一请求,并且所述唤醒-警告信号包括第一唤醒-警告信号,所述方法进一步包括以下步骤: 生成第二请求,所述第二请求将被发送至特定的系统组件; 通过所述专用唤醒-警告信道来发送向所述特定的系统组件指示所述第二请求将到达的第二唤醒-警告信号,其中,所述第二唤醒-警告信号用于使所述特定的系统组件的被禁用时钟被解除门控为启用状态;以及 将所述第二请求发送至所述特定的系统组件。25.—种系统,包括: 第一硬件组件;以及 第二硬件组件,通过互连和唤醒-警告信道连接到所述第一硬件组件,所述第二硬件组件包括接口和逻辑,所述接口去往所述互连和唤醒-警告信道,所述逻辑用于: 从所述第一硬件组件接收通过所述唤醒-警告信道而发送的唤醒-警告信号,其中,所述唤醒-警告信号指示传入请求跟随所述唤醒-警告信号; 对与所述第二硬件组件相关联的时钟解除门控,以便在接收到所述传入请求之前启用所述时钟; 通过所述互连来接收所述传入请求;以及 处理所述传入请求。26.如权利要求25所述的系统,其特征在于,所述第一硬件组件包括用于以下操作的逻辑: 生成与特定的高速缓存记录相关联的请求,其中,所述请求通过互连被发送至与高速缓存区块相关联的系统组件; 生成所述唤醒-警告信号; 通过所述专用唤醒-警告信道来将所述唤醒-警告信号发送至所述第二硬件组件;以及 通过所述互连来将所述请求发送至所述第二硬件组件。27.如权利要求25所述的系统,其特征在于,所述第二硬件组件进一步用于: 生成第二请求,所述第二请求将被发送至特定的硬件组件; 通过所述专用唤醒-警告信道来发送向所述特定的硬件组件指示所述第二请求将到达的第二唤醒-警告信号,其中,所述第二唤醒-警告信号用于使所述特定的硬件组件的被禁用时钟被解除门控为启用状态;以及 通过所述互连来将所述第二请求发送至所述特定的硬件组件。28.如权利要求25所述的系统,其特征在于,所述第一硬件组件包括第一片,所述第一片包括第一处理器核与第一高速缓存区块,并且所述第二硬件组件包括第二片,所述第二片包括第二处理器核与第二高速缓存区块。29.如权利要求25所述的系统,其特征在于,所述第一硬件组件和所述第二硬件组件包括微服务器的组件。30.—种装置,包括: 集成电路,所述集成电路包括用于耦合多个片的片上互连,每一个片都包括核与高速缓存代理,其中,所述多个片中的特定的片包括: 检测逻辑,用于基于与所述特定的片相关联的不活动指示器来确定对用于所述特定的片的至少部分的时钟进行门控,以及 控制逻辑,耦合到所述检测逻辑,并且用于:响应于所述检测逻辑确定对所述时钟进行门控而对用于所述特定的片的所述至少部分的时钟进行门控;以及基于接收到的早唤醒信号,至少对于请求的到达及时地对用于所述特定的片的所述至少部分的时钟解除门控。31.如权利要求30所述的装置,其特征在于,所述特定的片的所述部分包括本地时钟缓冲器、区域时钟缓冲器和时钟脊中的一个。32.如权利要求30所述的装置,其特征在于,所述管芯上互连是环、网格、混合式环-网格互连架构中的一个。33.如权利要求30所述的装置,其特征在于,所述不活动指示器包括空闲条件计数器和空条件计数器中的至少一个。34.如权利要求30所述的装置,其特征在于,在唤醒信号环上接收所述早唤醒信号。
【专利摘要】生成与特定的高速缓存记录相关联的请求,此请求将通过互连被发送至与高速缓存区块相关联的系统组件。通过专用唤醒-警告信道来发送向系统组件指示此请求将到达的唤醒-警告信号。唤醒-警告信号使被禁用的时钟被解除门控为启用状态。随后,将此请求发送至系统组件。
【IPC分类】G06F1/04
【公开号】CN105492989
【申请号】CN201380079117
【发明人】S·苏古玛, M·K·库玛西卡, R·帕尔, S·慕斯拉萨纳勒
【申请人】英特尔公司
【公开日】2016年4月13日
【申请日】2013年9月30日
【公告号】US20150095688, WO2015047422A1

最新回复(0)