提供与数据缓冲器相关联的监听滤波的制作方法
【技术领域】
[0001] 本公开关于计算系统,特别地(但不排他地)关于包括用于将多个设备耦合至存 储器的结构的该类系统。
【附图说明】
[0002] 图1示出了包括多核处理器的计算系统的框图的实施例。
[0003] 图2是根据本发明实施例的片上系统(SoC)的高级视图的框图。
[0004] 图3是根据本发明实施例的共享存储器结构的部分的框图。
[0005] 图4是根据本发明实施例的许可仲裁器的更多细节的框图。
[0006] 图5是示出根据本发明实施例的共享存储器结构的更多细节的框图。
[0007] 图6是根据本发明实施例的方法的流程图。
[0008] 图7是根据本发明实施例的采用监听过滤器逻辑来处理输入存储器请求的方法 的流程图。
[0009] 图8是根据本发明实施例的SoC的框图。
[0010] 图9是根据本发明实施例的存在于计算机系统中的元件的框图。
[0011] 详细说明
[0012] 在以下描述中,许多具体细节被公开,例如,处理器和系统配置的具体类型的示 例、具体的硬件结构、具体的架构和架构细节、具体的寄存器配置、具体的指令类型、具体的 系统元件、具体的尺寸/高度、具体的处理器流水线级和操作等,以提供本发明的透彻理 解。然而,对于本领域的技术人员而言,很明显,这些具体细节不必被采用以实现本发明。在 其他情况下,众所周知的元件或方法,诸如,特定的和替代的处理器架构、用于所描述算法 的特定逻辑电路/代码、特定的固件代码、特定的互连操作、特定的逻辑配置、特定的制造 技术和材料、特定的编译器实现、代码中特定的算法表达式、特定的关断和门控技术/逻辑 以及计算机系统的其他特定操作细节未被详细描述,以避免不必要地模糊本发明。
[0013] 尽管可在特定的集成电路中(例如在计算平台或微处理器中)关于节能和能效描 述以下实施例,但其他实施例适用于其他类型的集成电路和逻辑设备。类似的技术和本文 中所描述的实施例的教导可被应用于还可从能效和节能中受益的其它类型的电路或半导 体设备。例如,所公开的实施例并不限于台式计算机系统或超级本(Ultrabooks?)。并且还 可被用于其他设备,诸如,手持设备、平板、其他薄型笔记本、片上系统(SOC)设备、以及嵌 入式应用。手持设备的一些示例包括蜂窝电话、互联网协议设备、数字相机、个人数字助理 (PDA)、以及手持PC。嵌入式应用通常包括微控制器、数字信号处理器(DSP)、片上系统、网 络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机、或可执行以下所传授功能和 操作的任何其他系统。另外,本文中所描述的装置、方法、和系统并不限于物理计算设备,而 且还与用于节能和能效的软件优化相关。本文中所描述的方法、装置、和系统的实施例(不 管是关于硬件、固件、软件、或其组合)对于未来与性能考虑相平衡的"绿色技术"而言是极 重要的,正如以下描述中将变得显而易见。
[0014] 随着计算系统的进步,其中的元件变得越来越复杂。因此,用于在元件之间进行耦 合和通信的互连架构也在增加复杂度以对于最佳元件操作保证带宽要求被满足。另外,不 同的市场区隔要求互连架构不同的方面以适合市场的需求。例如,服务器要求更高性能,而 移动生态系统有时能够为功率节省牺牲整体的性能。然而,以最大功率节省提供最高可能 的性能是大多结构的单一目的。以下,多个互连被讨论,其将潜在地受益于本文中所描述的 发明的各方面。
[0015] 参照图1,描绘了包括多核处理器的计算系统的框图的实施例。处理器100包括任 意处理器或处理设备,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、 手持处理器、应用处理器、协处理器、片上系统(SOC)、或用于执行代码的其他设备。在一个 实施例中,处理器100包括至少两个核--核101和102,其可包括非对称核或对称核(所 示实施例)。然而,处理器100可包括可以是对称或非对称的任意数量的处理元件。
[0016] 在一个实施例中,处理元件是指用以支持软件线程的硬件或逻辑。硬件处理元件 的示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线 程、核、和/或任意其他元件,其能够为处理器保持状态,例如,执行状态或架构状态。换言 之,在一个实施例中,处理元件是指能够独立与代码相关联的任意硬件,例如,软件线程、操 作系统、应用、或其他代码。物理处理器(或处理器插座)通常是指集成电路,其潜在地包 括任意数量的其他处理元件,例如核或硬件线程。
[0017] 核经常是指位于集成电路上能够保持独立架构状态的逻辑,其中每个独立保持的 架构状态与至少一些专用执行资源相关联。与核相对,硬件线程通常是指位于集成电路上 能够保持独立架构状态的任意逻辑,其中独立保持的架构状态共享对执行资源的访问。正 如可见,当某些资源被共享而另一些被专用于架构状态时,硬件线程和核命名之间的线重 叠。而经常地,核和硬件线程被操作系统作为独立的逻辑处理器可见,其中操作系统能够独 立地调度在每个逻辑处理器上的操作。
[0018] 物理处理器100,如图1中所示,包括两个核--核101和102。这里,核101和 102被认为是对称核,即,具有相同配置、功能单元、和/或逻辑的核。在另一实施例中,核 101包括无序的处理器核,其中核102包括有序的处理器核。然而,核101和102可从任意 类型的核中被独立地选择,例如,原生核、软件管理的核、适应于执行原生指令集架构(ISA) 的核、适应于执行转换的指令集架构(ISA)的核、协同设计核、或其他已知核。在异构核环 境(即,非对称核)中,某一形式的转换,诸如二进制转换,可被用以在一个或两个核上调度 或执行代码。然而为了进一步讨论,核101中示出的功能单元在下文中被更详细地描述,因 为核102中的单元在所述实施例中以类似的方式操作。
[0019] 如所示,核101包括两个硬件线程IOla和101b,其也可被称为硬件线程槽IOla 和101b。因此,在一实施例中,诸如操作系统之类的软件实体可能将处理器100视作四个 独立的处理器,即,能够同时执行四个软件线程的四个逻辑处理器或处理元件。如上文所提 到的,第一线程与架构状态寄存器IOla相关联,第二线程与架构状态寄存器IOlb相关联, 第三线程可与架构状态寄存器102a相关联,而第四线程可与架构状态寄存器102b相关联。 这里,如上文所描述的,每个架构状态寄存器(l〇la、101b、102a、和102b)可被称为处理元 件、线程槽、或线程单元。如所示,架构状态寄存器IOla被复制在架构状态寄存器IOlb中, 所以,能够为逻辑处理器IOla和逻辑处理器IOlb储存单独的架构状态/上下文。在核101 中,也可为线程IOla和IOlb复制其它更小的资源,诸如分配器和重命名模块130中的指令 指针和重命名器逻辑。可通过划分来共享一些资源,诸如重排序/引退单元135、ILTB 120、 加载/存储缓冲器、以及队列中的重排序缓冲器。诸如通用内部寄存器、页表基址寄存器、 低级数据缓存和数据TLB 115、执行单元140、以及无序单元的部分135之类的其他资源可 能被完全共孚。
[0020] 处理器100经常包括通过划分被共享、或由处理单元专用/专用于处理单元的其 他资源,其可被完全共享。在图1中,示出具有处理器的示意逻辑单元/资源的纯示例处理 器的实施例。注意,处理器可包括或省略任何这些功能单元,并且包括未示出的任何其他已 知功能单元、逻辑、或固件。如所示,核101包括简化的、有代表性的无序(〇〇〇)处理器核。 但有序处理器可被用于不同的实施例中。000核包括用于预测将被执行/采用的分支的分 支目标缓冲器120,以及用于为指令储存地址转换条目的指令转换缓冲器(I-TLB) 120。
[0021] 核101还包括耦合至提取单元120的解码模块125以解码所提取的元件。在一个 实施例中,提取逻辑包括分别与线程槽l〇la、IOlb相关联的单独定序器。通常,核101与第 一 ISA相关联,其界定/指定在处理器100上可执行的指令。通常,作为第一 ISA的部分的 机器代码指令包括指令的部分(被称为操作码),其引用/指定要进行的指令或操作。解码 逻辑125包括根据指令的操作码识别这些指令,并在流水线中将被解码的指令进行传递以 如第一 ISA所定义那样进行处理的电路。例如,在一个实施例中,如以下更详细讨论的解码 器125包括设计或适配以识别具体指令的逻辑,诸如事务指令。作为由解码器125识别的 结果,架构或核101用具体的、预定义的动作来执行与适合指令相关联的任务。注意以下事 情是很重要的,即可响应单一或多个指令来执行本文中所描述的任何任务、模块、操作、以 及方法;其中的一些可以是新的或旧的指令。注意,在一个实施例中,解码器126识别相同 的ISA (或其子集)。另外,在异构核环境中,解码器126识别第二ISA (第一 ISA的子集或 者不同的ISA)。
[0022] 在一个示例中,分配器和重命名器模块130包括分配器,该分配器用于预留资源, 诸如用于储存指令处理结果的寄存器组。然而,线程IOla和IOlb可能能够无序执行,其中, 分配器和重命名器模块130也预留其他资源,诸如用于跟踪指令结果的重排序缓冲器。单 元130也可包括寄存器重命名器,用于将程序/指令引用寄存器重命名至处理器100内部 的其他寄存器。重排序器/引退单元135包括多个组件,诸如上文提及的重排序缓冲器、负 载缓冲器、和储存缓冲器,以支持无序执行和之后无序执行的指令的顺序引退。
[0023] 在一个实施例中,调度器和执行单元模块140包括调度单元以在执行单元上调度 指令/操作。例如,浮点指令被调度在执行单元的端口上,其具有可用的浮点执行单元。还 包括与执行单元相关联的寄存器组以储存信息指令处理结果。示例性执行单元包括浮点执 行单元、整型执行单元、跳转执行单元、负载执行单元、储存执行单元、以及其他已知执行单 J L 〇
[0024] 低级别的数据缓存和数据转换缓冲器(D-TLB) 150被耦合至执行单元140。数据缓 存用于储存最近使用/操作的单元,诸如数据操作数,其可能被保持在存储器一致性状态 中。D-TLB用于储存最近虚拟/线性至物理地址的转换。作为具体的示例,处理器可包括页 表结构以将物理存储器分割成多个虚拟页。
[0025] 这里,核101和102共享高等级或更外层缓存,诸如与片上接口 110相关联的第二 级缓存。注意,高等级或更外层是指缓存等级的增加或更远离执行单元。在一个实施例中, 尚等级缓存是最终级数据缓存 处理器100上存储器层次中的最终缓存 诸如第二或 第三级数据缓存。然而,高等级缓存并不限于此,因为它可与指令缓存相关联或包括指令缓 存。跟踪缓存一类指令缓存 可在解码器125之后被親合以储存最近的解码踪迹。 这里,指令可能是指宏指令(即,被解码器识别的通用指令),其可解码为多个微指令(微操 作)。
[0026] 在所示配置中,处理器100也包括片上接口模块110。以往,存储器控制器(其将 在下文中更详细地描述)被包括于处理器100外部的计算系统中。在这种情况下,片上接 口 11与处理器100外部的设备通信,诸如系统存储器175、芯片组(经常包括存储器控制器 中枢以连接至存储器175和I/O控制器中枢以连接外围设备)、存储器控制器中枢、北桥、或 其他集成电路。并且在这种情况下,总线105可包括任意已知互连,诸如多点总线、点对点 互连、串行互连、并行总线、一致性(例如、缓存一致性)总线、分层协议架构、差分总线、以 及GTL总线。
[0027] 存储器175可被专用于处理器100或与系统中其他设备共享。存储器175类型的 通用示例包括DRAM、SRAM、非易失性存储器(NV存储器)、以及其他已知储存设备。注意,设 备180可包括图形加速器、耦合至存储器控制器中枢的处理器或卡、耦合至I/O控制器中枢