CN105009101A - 提供与数据缓冲器相关联的监听滤波 - Google Patents

提供与数据缓冲器相关联的监听滤波 Download PDF

Info

Publication number
CN105009101A
CN105009101A CN201380073002.7A CN201380073002A CN105009101A CN 105009101 A CN105009101 A CN 105009101A CN 201380073002 A CN201380073002 A CN 201380073002A CN 105009101 A CN105009101 A CN 105009101A
Authority
CN
China
Prior art keywords
memory requests
memory
soc
request
entry
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201380073002.7A
Other languages
English (en)
Other versions
CN105009101B (zh
Inventor
J·S·尼尔
D·F·卡特
J·D·艾伦
D·利马耶
S·T·哈苏奈
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN105009101A publication Critical patent/CN105009101A/zh
Application granted granted Critical
Publication of CN105009101B publication Critical patent/CN105009101B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

在一个实施例中,冲突检测逻辑被配置以接收来自片上系统(SoC)的一致性结构的仲裁器的多个存储器请求。冲突检测逻辑包括监听过滤器逻辑,该监听过滤器逻辑在与第一地址相关联的指针指示该一致性结构具有第一地址的控制时,将对该第一地址的第一监听存储器请求降级为非监听存储器请求。描述并要求保护其他实施例。

Description

提供与数据缓冲器相关联的监听滤波
技术领域
本公开关于计算系统,特别地(但不排他地)关于包括用于将多个设备耦合至存储器的结构的该类系统。
附图说明
图1示出了包括多核处理器的计算系统的框图的实施例。
图2是根据本发明实施例的片上系统(SoC)的高级视图的框图。
图3是根据本发明实施例的共享存储器结构的部分的框图。
图4是根据本发明实施例的许可仲裁器的更多细节的框图。
图5是示出根据本发明实施例的共享存储器结构的更多细节的框图。
图6是根据本发明实施例的方法的流程图。
图7是根据本发明实施例的采用监听过滤器逻辑来处理输入存储器请求的方法的流程图。
图8是根据本发明实施例的SoC的框图。
图9是根据本发明实施例的存在于计算机系统中的元件的框图。
详细说明
在以下描述中,许多具体细节被公开,例如,处理器和系统配置的具体类型的示例、具体的硬件结构、具体的架构和架构细节、具体的寄存器配置、具体的指令类型、具体的系统元件、具体的尺寸/高度、具体的处理器流水线级和操作等,以提供本发明的透彻理解。然而,对于本领域的技术人员而言,很明显,这些具体细节不必被采用以实现本发明。在其他情况下,众所周知的元件或方法,诸如,特定的和替代的处理器架构、用于所描述算法的特定逻辑电路/代码、特定的固件代码、特定的互连操作、特定的逻辑配置、特定的制造技术和材料、特定的编译器实现、代码中特定的算法表达式、特定的关断和门控技术/逻辑以及计算机系统的其他特定操作细节未被详细描述,以避免不必要地模糊本发明。
尽管可在特定的集成电路中(例如在计算平台或微处理器中)关于节能和能效描述以下实施例,但其他实施例适用于其他类型的集成电路和逻辑设备。类似的技术和本文中所描述的实施例的教导可被应用于还可从能效和节能中受益的其它类型的电路或半导体设备。例如,所公开的实施例并不限于台式计算机系统或超级本(UltrabooksTM)。并且还可被用于其他设备,诸如,手持设备、平板、其他薄型笔记本、片上系统(SOC)设备、以及嵌入式应用。手持设备的一些示例包括蜂窝电话、互联网协议设备、数字相机、个人数字助理(PDA)、以及手持PC。嵌入式应用通常包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机、或可执行以下所传授功能和操作的任何其他系统。另外,本文中所描述的装置、方法、和系统并不限于物理计算设备,而且还与用于节能和能效的软件优化相关。本文中所描述的方法、装置、和系统的实施例(不管是关于硬件、固件、软件、或其组合)对于未来与性能考虑相平衡的“绿色技术”而言是极重要的,正如以下描述中将变得显而易见。
随着计算系统的进步,其中的元件变得越来越复杂。因此,用于在元件之间进行耦合和通信的互连架构也在增加复杂度以对于最佳元件操作保证带宽要求被满足。另外,不同的市场区隔要求互连架构不同的方面以适合市场的需求。例如,服务器要求更高性能,而移动生态系统有时能够为功率节省牺牲整体的性能。然而,以最大功率节省提供最高可能的性能是大多结构的单一目的。以下,多个互连被讨论,其将潜在地受益于本文中所描述的发明的各方面。
参照图1,描绘了包括多核处理器的计算系统的框图的实施例。处理器100包括任意处理器或处理设备,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(SOC)、或用于执行代码的其他设备。在一个实施例中,处理器100包括至少两个核——核101和102,其可包括非对称核或对称核(所示实施例)。然而,处理器100可包括可以是对称或非对称的任意数量的处理元件。
在一个实施例中,处理元件是指用以支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核、和/或任意其他元件,其能够为处理器保持状态,例如,执行状态或架构状态。换言之,在一个实施例中,处理元件是指能够独立与代码相关联的任意硬件,例如,软件线程、操作系统、应用、或其他代码。物理处理器(或处理器插座)通常是指集成电路,其潜在地包括任意数量的其他处理元件,例如核或硬件线程。
核经常是指位于集成电路上能够保持独立架构状态的逻辑,其中每个独立保持的架构状态与至少一些专用执行资源相关联。与核相对,硬件线程通常是指位于集成电路上能够保持独立架构状态的任意逻辑,其中独立保持的架构状态共享对执行资源的访问。正如可见,当某些资源被共享而另一些被专用于架构状态时,硬件线程和核命名之间的线重叠。而经常地,核和硬件线程被操作系统作为独立的逻辑处理器可见,其中操作系统能够独立地调度在每个逻辑处理器上的操作。
物理处理器100,如图1中所示,包括两个核——核101和102。这里,核101和102被认为是对称核,即,具有相同配置、功能单元、和/或逻辑的核。在另一实施例中,核101包括无序的处理器核,其中核102包括有序的处理器核。然而,核101和102可从任意类型的核中被独立地选择,例如,原生核、软件管理的核、适应于执行原生指令集架构(ISA)的核、适应于执行转换的指令集架构(ISA)的核、协同设计核、或其他已知核。在异构核环境(即,非对称核)中,某一形式的转换,诸如二进制转换,可被用以在一个或两个核上调度或执行代码。然而为了进一步讨论,核101中示出的功能单元在下文中被更详细地描述,因为核102中的单元在所述实施例中以类似的方式操作。
如所示,核101包括两个硬件线程101a和101b,其也可被称为硬件线程槽101a和101b。因此,在一实施例中,诸如操作系统之类的软件实体可能将处理器100视作四个独立的处理器,即,能够同时执行四个软件线程的四个逻辑处理器或处理元件。如上文所提到的,第一线程与架构状态寄存器101a相关联,第二线程与架构状态寄存器101b相关联,第三线程可与架构状态寄存器102a相关联,而第四线程可与架构状态寄存器102b相关联。这里,如上文所描述的,每个架构状态寄存器(101a、101b、102a、和102b)可被称为处理元件、线程槽、或线程单元。如所示,架构状态寄存器101a被复制在架构状态寄存器101b中,所以,能够为逻辑处理器101a和逻辑处理器101b储存单独的架构状态/上下文。在核101中,也可为线程101a和101b复制其它更小的资源,诸如分配器和重命名模块130中的指令指针和重命名器逻辑。可通过划分来共享一些资源,诸如重排序/引退单元135、ILTB 120、加载/存储缓冲器、以及队列中的重排序缓冲器。诸如通用内部寄存器、页表基址寄存器、低级数据缓存和数据TLB 115、执行单元140、以及无序单元的部分135之类的其他资源可能被完全共享。
处理器100经常包括通过划分被共享、或由处理单元专用/专用于处理单元的其他资源,其可被完全共享。在图1中,示出具有处理器的示意逻辑单元/资源的纯示例处理器的实施例。注意,处理器可包括或省略任何这些功能单元,并且包括未示出的任何其他已知功能单元、逻辑、或固件。如所示,核101包括简化的、有代表性的无序(OOO)处理器核。但有序处理器可被用于不同的实施例中。OOO核包括用于预测将被执行/采用的分支的分支目标缓冲器120,以及用于为指令储存地址转换条目的指令转换缓冲器(I-TLB)120。
核101还包括耦合至提取单元120的解码模块125以解码所提取的元件。在一个实施例中,提取逻辑包括分别与线程槽101a、101b相关联的单独定序器。通常,核101与第一ISA相关联,其界定/指定在处理器100上可执行的指令。通常,作为第一ISA的部分的机器代码指令包括指令的部分(被称为操作码),其引用/指定要进行的指令或操作。解码逻辑125包括根据指令的操作码识别这些指令,并在流水线中将被解码的指令进行传递以如第一ISA所定义那样进行处理的电路。例如,在一个实施例中,如以下更详细讨论的解码器125包括设计或适配以识别具体指令的逻辑,诸如事务指令。作为由解码器125识别的结果,架构或核101用具体的、预定义的动作来执行与适合指令相关联的任务。注意以下事情是很重要的,即可响应单一或多个指令来执行本文中所描述的任何任务、模块、操作、以及方法;其中的一些可以是新的或旧的指令。注意,在一个实施例中,解码器126识别相同的ISA(或其子集)。另外,在异构核环境中,解码器126识别第二ISA(第一ISA的子集或者不同的ISA)。
在一个示例中,分配器和重命名器模块130包括分配器,该分配器用于预留资源,诸如用于储存指令处理结果的寄存器组。然而,线程101a和101b可能能够无序执行,其中,分配器和重命名器模块130也预留其他资源,诸如用于跟踪指令结果的重排序缓冲器。单元130也可包括寄存器重命名器,用于将程序/指令引用寄存器重命名至处理器100内部的其他寄存器。重排序器/引退单元135包括多个组件,诸如上文提及的重排序缓冲器、负载缓冲器、和储存缓冲器,以支持无序执行和之后无序执行的指令的顺序引退。
在一个实施例中,调度器和执行单元模块140包括调度单元以在执行单元上调度指令/操作。例如,浮点指令被调度在执行单元的端口上,其具有可用的浮点执行单元。还包括与执行单元相关联的寄存器组以储存信息指令处理结果。示例性执行单元包括浮点执行单元、整型执行单元、跳转执行单元、负载执行单元、储存执行单元、以及其他已知执行单元。
低级别的数据缓存和数据转换缓冲器(D-TLB)150被耦合至执行单元140。数据缓存用于储存最近使用/操作的单元,诸如数据操作数,其可能被保持在存储器一致性状态中。D-TLB用于储存最近虚拟/线性至物理地址的转换。作为具体的示例,处理器可包括页表结构以将物理存储器分割成多个虚拟页。
这里,核101和102共享高等级或更外层缓存,诸如与片上接口110相关联的第二级缓存。注意,高等级或更外层是指缓存等级的增加或更远离执行单元。在一个实施例中,高等级缓存是最终级数据缓存——处理器100上存储器层次中的最终缓存——诸如第二或第三级数据缓存。然而,高等级缓存并不限于此,因为它可与指令缓存相关联或包括指令缓存。跟踪缓存——一类指令缓存——可在解码器125之后被耦合以储存最近的解码踪迹。这里,指令可能是指宏指令(即,被解码器识别的通用指令),其可解码为多个微指令(微操作)。
在所示配置中,处理器100也包括片上接口模块110。以往,存储器控制器(其将在下文中更详细地描述)被包括于处理器100外部的计算系统中。在这种情况下,片上接口11与处理器100外部的设备通信,诸如系统存储器175、芯片组(经常包括存储器控制器中枢以连接至存储器175和I/O控制器中枢以连接外围设备)、存储器控制器中枢、北桥、或其他集成电路。并且在这种情况下,总线105可包括任意已知互连,诸如多点总线、点对点互连、串行互连、并行总线、一致性(例如、缓存一致性)总线、分层协议架构、差分总线、以及GTL总线。
存储器175可被专用于处理器100或与系统中其他设备共享。存储器175类型的通用示例包括DRAM、SRAM、非易失性存储器(NV存储器)、以及其他已知储存设备。注意,设备180可包括图形加速器、耦合至存储器控制器中枢的处理器或卡、耦合至I/O控制器中枢的数据存储、无线收发器、闪存设备、音频控制器、网络控制器、或其他已知设备。
然而,最近随着更多的逻辑和设备被集成于单一管芯(诸如SOC)上,这些设备中的每个可被包含于处理器100上。例如,在一个实施例中,存储器控制器中枢与处理器100在相同的封装和/或管芯上。这里,核的部分(核上的部分)110包括一个或多个控制器,用以与诸如存储器175或图像设备180之类的其它设备连接。包括用以与该类设备连接的互连和控制器的配置经常被称为核上(或非核配置)。作为示例,片上接口110包括用以片上通信的环形互连和用以片外通信的高速串行点对点链接105。然而,在SOC环境中,还有更多的设备,诸如网络接口、协处理器、存储器175、图像处理器180、以及其他任何已知的计算机设备/接口可被集成于单一管芯或集成电路上,以提供小形状因数与高功能性以及低功耗。
在一个实施例中,处理器100能够执行编译、优化、和/或转换代码177以编译、转换、和/或优化应用代码176以支持本文中所描述的装置和方法,或与其连接。编译器经常包括程序或程序组以将源文本/代码转换成目标文本/代码。通常,用编译器进行的程序/应用代码的编译是在多个阶段和中完成的,以将高级程序语言代码转换为低级机器或汇编语言代码。然而,单次编译器可仍然被用于简单编译。编译器可使用任何已知编译技术并执行任何已知编译操作,诸如词法分析、预处理、解析、语义分析、代码生成、代码转换、以及代码优化。
更大的编译器经常包括多个阶段,但最常见的是,这些阶段被包括于两个通用阶段中:(1)前端,即通常句法处理、语义分析、和一些转换/优化可发生的阶段,以及(2)后端,即通常分析、转换、优化、和代码生成发生的阶段。一些编译器称为中端,其示出了编译器前端和后端之间的模糊界限。因此,关于插入、关联、生成、或编译器的其它操作可发生于任意前述的阶段或执行中,以及编译器的任何其他已知的阶段和次数。作为示意性示例,编译器在编译的一个或多个阶段中可能插入操作、调用、函数等,诸如在编译的前端阶段中插入调用/操作,然后在转换阶段将调用/操作转换为低级代码。注意,在动态编译期间,编译器或动态优化代码可插入该类操作/调用,以及在运行期间为执行优化代码。作为具体的示意性示例,二进制码(已编译代码)可在运行期间被动态优化。这里,程序代码可包括动态优化代码、二进制码、或其组合。
与编译器类似,诸如二进制转换器之类的转换器静态或动态地转换代码以优化和/或转换代码。因此,关于代码、应用代码、程序代码或其它软件环境的执行可指:(1)编译器程序、优化代码优化器、或者转换器的执行,以动态或静态地编译程序代码,以保持软件结构,以执行其他操作,以优化代码,或转换代码;(2)主程序代码的执行包括操作/调用,诸如被优化/编译的应用代码;(3)与主程序代码相关联的其他程序代码的执行,诸如库,以保持软件结构,以执行其他软件相关操作,或以优化代码;或者(4)其组合。
在不同的实施例中,处理器可被配置为片上系统(SoC)。该SoC可被用于各种各样的计算设备中,从低功率便携计算设备,诸如智能手机、平板计算机、超级本(UltrabooksTM)等,到更传统的计算机系统,诸如笔记本、台式电脑、服务器计算机及其他。在现代SoC中,通常许多不同的代理出现于单一半导体管芯上。这些代理包括一个或多个处理单元。在实施例中,SoC可包括多个中央处理单元(CPU),每个包括一个或多个核、关联缓存存储器、接口等。另外,SoC包括其他代理,诸如互连管芯上的代理和执行一致性处理的一致性结构。在一些实施例中,该相干结构是指自身由不同组成成分的系统代理,该组成成分包括存储器控制器电路、共享存储器结构电路以及其他电路和逻辑。术语“相干的结构(coherentfabric)”、“一致性结构(coherency fabric)”和“系统代理(system agent)”在本文中可被互换使用。
监听指针可与存储器请求关联,以指示请求应被保持与系统中的缓存代理(诸如中央处理单元(CPU))相一致。SoC的非缓存代理可发起监听和非监听存储器请求。一致性结构或其他代理采用总线协议以解决所有缓存代理中监听存储器请求的所有权。这些一致性协议可用多个消息周期来解决缓存行的所有权。一种低功率/面积监听算法运行以在一段时间处理每个地址的单一一致性请求。这样,至相同地址(例如,缓存行)的两个或多个一致性访问被串行化,这保证了对于每个一致性请求清晰地建立所有权。然而,由于不必要的监听,该串行化可降低性能并增加功耗。其他实现包括一致性结构中的包含性的监听过滤器以在系统中快速解决所有缓存行的所有权。然而,建立这样大型的监听过滤器的面积/功率成本对于诸如SOC之类的低功率处理器是不期望的。
实施例提供了算法和微架构以采用一致性结构的数据控制结构来提供非常低成本的临时监听过滤器。实施例可被优化以过滤从短时间内发出许多相同缓存行访问的非缓存代理而来的监听。在实施例中,作为SoC引导配置过程的一部分,临时监听过滤器的启用和禁用暴露于BIOS可写控制寄存器中。
现参考图2,所示是根据本发明实施例的SoC的高级视图的框图。如在图2中所示,SoC 200包括不同的代理和其他元件。为了互连不同代理和提供特定系统级控制技术的目的,一致性结构210被提供,本文中也被称为系统代理。正如以下会被描述的,系统代理210包括根据本发明实施例的临时监听过滤器逻辑以及各种其他组件,诸如,队列、缓冲器、跟踪器、控制逻辑等。
如所见,一致性结构210在多个不同的代理和其他组件之间充当主要的片上互连。在上行侧上,多个缓存代理2201-220n被提供。尽管本发明的范围不仅限于该方面,这些缓存代理可对应通常包括一个或多个处理器核和一级或多级缓存存储器的中央处理单元(CPU)。因此,这些代理是缓存代理,因为他们被配置以通过内部代理缓存以一致的方式保持数据。尽管被描述为CPU,需要理解的是,其他类型的缓存代理,诸如核、图像引擎、或与缓存存储器相关联的其他专用处理逻辑在一些实施例中可充当缓存代理。还需要理解的是,发送存储器映射输入输出(MMIO)写入的代理不仅限于缓存代理,而诸如非缓存代理之类的其他代理也发送MMIO事务。
相反,SoC 200的其他代理可被配置作为非缓存代理。可存在不同类型的非缓存代理,诸如IO代理,其可采用许多形式,诸如捕捉设备、渲染设备、外围设备等。这些非缓存代理中的一些,诸如非缓存IO代理2301和2302通过符合根据快速外围设备互连(PCIeTM)通信协议的排序规则的片上互连被直接耦合至系统代理210。非缓存代理在该片上互连的主要接口上发起上行监听和非监听存储器请求。IO代理能在SoC支持的虚拟通道(VC)(注意,一些SoC支持1VC,一些支持2VC,一些支持3VC等)上发起存储器请求。
请求和写入数据在接收路径上到达系统代理210。读取完成数据在输出路径上返回至代理。缓存代理采用端口IO或存储器映射读/写发送下行请求至IO设备。在一实施例中,这些请求在第一虚拟通道(即VC0)上被广播。当被全局排序时,来自缓存代理220的每个请求接收来自系统代理210的指示。当传递到系统代理210的排序域中时,来自缓存代理220的MMIO写入被全局排序。该传递被称为将下行写入发布至输出路径中。一旦输出读取完成进入排序域中,就不能绕过已被发布至排序域中的同一VC的任何先前的MMIO写入。
反过来,其他非缓存IO代理2303-230z通过开关结构耦合至片上互连主要接口或通过桥接器耦合至不同的协议。在所示的示例中,这些非缓存代理中的每个(以及开关结构)能通过片上互连的主要接口耦合至一致性结构210。在一实施例中,主要接口包括一个或多个VC,而在不同的VC之间没有排序要求。另外,SoC 200还包括可通过不同互连技术的请求器接口直接耦合至一致性结构210的多个集成非缓存代理2401-240x。再有,多个存储器控制器2501-250n也可被耦合至一致性结构210以为耦合至SoC的存储器(为简化图2中的解释未被示出)提供互连和控制功能,在一实施例中该SoC可作为动态随机存取存储器(DRAM)被实现。
一致性结构210包括共享存储器结构,以将代理耦合至共享存储器(例如,通过居间存储器控制器)。在一实施例中,共享存储器结构被配置以使时间关键同步设备符合服务质量(QoS)要求成为可能,同时也为非同步设备(本文中也被称为尽力而为设备),提供存储器带宽比例。尽管在图2的实施例中以此示例被示出,需要理解的是,本发明的范围不仅限于该方面,而许多不同类型的SoC和其他半导体设备可充分利用根据本发明实施例的临时监听过滤器逻辑。
服务类分类被分配到耦合至共享存储器结构的每个设备。多个服务类可被该结构支持。尽管本发明的范围不仅限于该方面,但在一个实施例中,可存在两个服务类分类的设备,包括被用于延迟敏感设备的同步服务类分类和用于可容忍更长延迟以服务其至存储器请求的尽力而为服务类分类。尽管本发明的范围不仅限于该方面,但在一些实施例中,延迟敏感设备包括内容渲染设备,诸如音频或视频播放器、摄像头设备等,而低优先级设备包括处理器核、图形处理单元等。
将按照请求截止时间的形式的时间从同步设备传输至该结构,以向该结构指出完成对存储器的请求所需的延迟。为实现同步,该结构将全局计时器广播至所有同步请求代理。在来自该结构的输出上连续地驱动该全局计时器,从而使其可用于同步设备的采样。响应于该时间值,代理为完成请求确定延迟要求,并将该延迟值附加于全局计时器值以形成该请求的截止时间。确定延迟的不同方式出现于不同的实施例中。基于所传达的这个延迟或截止时间值,该结构可基于存储器的当前功率状态和在结构中待定的其他未调度的存储器请求的所需延迟,做出更好的调度决定。该截止时间通信可改善存储器带宽,并且也节省系统功率。请求截止时间的使用给该结构提供来自同步设备的每个请求的延迟信息。
实施例也可通过允许无序地调度存储器请求以在存储器带宽中提供效率,然而这可导致一些请求的长时间调度延迟。为解决这样的顾虑,该结构分配优先级至每个同步存储器请求,例如,高或低优先级。当调度高优先级同步请求时,所允许的无序调度的数量比当调度尽力而为或低优先级同步请求时可接受的更少。执行对高优先级请求的无序调度的量的限制以保证请求延迟要求被满足。因为请求优先级是根据请求的截止时间而确定,对于同步设备而言,该结构能在请求被调度之后立即确定其他待定请求的优先级是什么。采用截止时间方法,所有待定请求的优先级仅在全局计时器递增时改变。
在一实施例中,共享存储器结构包括被用于调度发送至存储器控制器的请求的两个仲裁点。第一仲裁点被用以准许从设备至共享存储器结构的请求,并被称为准许仲裁器。第二仲裁点被用以调度从共享存储器结构发送至存储器控制器的请求,并被称为调度仲裁器。
连接至共享存储器结构的每个设备具有在设备和结构之间连接的请求接口。请求接口提供关于可被用于QoS存储器调度的请求的信息。在一实施例中,该信息包括存储器地址、顺序ID字段和操作码字段。对于同步设备,提供被称为请求截止时间字段的额外字段以指示完成请求所需的延迟。注意,在SoC的一些实现中,存储器结构接口可被连接至其他结构或开关,这样允许多个设备共享共同的请求接口。
现参考图3,所示是根据本发明实施例的共享存储器结构的部分的框图。如在图3中所示,共享存储器结构300在多个代理3150-3153(统称为代理315)和存储器控制器370之间被耦合。注意,在一些实施例中,存在多于一个存储器控制器。当然,尽管为了简化解释而未被示出,需要理解的是,存储器控制器被耦合至系统存储器,诸如动态随机存取存储器(DRAM)或其他系统存储器。
在图3中所示的实施例中,不同类型的代理被耦合至共享存储器结构300。特别是,不同的代理包括第一服务类(COS)代理类型,即所谓同步代理,以及第二服务类代理类型,即所谓尽力而为COS代理。如所见,每个代理315可传输请求信息至准许仲裁器320。反过来,准许仲裁器220可将对应的控制类型信息传输回代理。另外,同步代理(即图3实施例中的代理3151和3153)还包括额外的链接,以将请求截止时间信息传达至准许仲裁器320。为此目的,这些代理还被配置以从全局计时器350接收全局计时信息,还被耦合至准许仲裁器320和调度仲裁器330。
在图3的实施例中,准许仲裁器320可被配置以接收来自代理315的传入请求(以及来自同步代理的请求截止时间信息),并选择合适的请求以准许至调度仲裁器330。为帮助其仲裁过程,准许仲裁器320从一组配置寄存器360接收配置信息,进一步耦合至调度仲裁器330。另外,请求和一致性跟踪器340可被耦合至仲裁器320和330。一般情况下,跟踪器340可包括多个记分板342、数据缓冲器344和对应地址标签存储器345、控制队列346和其他资源,诸如各种缓冲器、逻辑(诸如资源分配逻辑248)等。在一些实施例中,标签阵列和数据缓冲器可被置于除跟踪器以外的其他地方。尽管在图3的实施例中以高级图示出,需要理解的是,本发明的范围不仅限于该方面。
共享存储器结构可包括某些有限资源,这些有限资源在来自请求代理的请求可被准许仲裁器允许之前首先被分配。这些资源包括在内部数据缓冲器和地址标签存储器中可用的条目。其他有限资源包括在存储器调度器和请求跟踪器记分板中可用的条目。在该结构的内部数据缓冲器、标签阵列和存储器调度器记分板的资源中存在一对一的对应。在实施例中,这些资源被分配至存储器预先确定的区域(例如,诸如64字节的缓存行宽度)。每个有效请求还在请求和一致性跟踪器中被分配其自身的条目,但存储器中同一区域的多个请求共享数据缓冲器、标签阵列和存储器调度器记分板中的相同条目。尽管可能有多于1个请求被分配至相同的数据缓冲器、标签阵列、和调度器记分板条目,对于在请求和一致性跟踪器中的所有未完成读取请求只有1个读取请求被调度至存储器控制器。
所有设备的请求接口连接至该结构的准许仲裁器。同步设备采用请求总线的截止时间字段以向该结构指出完成请求所需的延迟。该结构发送全局计时器值至被附于该结构的所有同步设备。对于被发送至该结构的每个请求,同步设备(例如,在截止时间逻辑中)确定完成请求所需的延迟,并将数值附加至全局计时器的现有数值,以创建请求截止时间。不同的方法可被不同的同步设备用以确定请求所需的延迟,但所有同步设备采用请求接口的截止时间字段向结构指示请求延迟。
在实施例中,准许仲裁器具有两个等级的优先级。在仲裁器中存在高优先级路径,其被用于紧急同步请求。如果请求代理被配置作为同步代理并且请求的截止时间字段比在指定阈值(被称为紧急阈值)的配置寄存器中储存的数值更小,则请求被认为是紧急的。准许仲裁器还具有用于尽力而为请求和被认为不紧急的同步请求的低优先级路径。仲裁的最终等级采用在高优先级仲裁器的胜者和低优先级的胜者之间选择的优先级选择器来完成。
在一个实施例中,准许仲裁器最终选择器具有能够采用配置寄存器选择的两种模式。第一模式是固定优先级模式,其中,假设至少一个高优先级请求存在于准许仲裁器的输入,选择器在选择低优先级仲裁路径的胜者之前选择高优先级仲裁路径的胜者。最终选择器的第二模式是加权轮叫(round robin)模式,其中在N个高优先级请求被允许之后,最终选择器在允许高优先级路径至允许低优先级路径之间切换。然后,在切换回到允许来自高优先级路径的请求之前,选择器允许来自低优先级路径胜者的M个低优先级请求。在实施例中,用配置寄存器来指定数值N和M。
现参考图4,所示是一种根据本发明实施例的许可仲裁器的更多细节的框图。如在图4中所示,仲裁器320接收来自请求代理的输入请求。在这个示意中,请求代理3150和3151是非同步或尽力而为代理,而代理3152和3153是同步代理。注意,同步代理可包括或被耦合至截止时间确定逻辑318,其被用以计算请求所需的延迟。在实施例中,其中至少一些代理是第三方IP模块,该逻辑能在封装或将代理耦合至共享存储器结构的接口逻辑中实现。
在所示的实施例中,准许仲裁器320包括第一基于生存期的仲裁器322和第二基于生存期的仲裁器324,其分别对应于低和高优先级基于生存期的仲裁器。这样,如所见,来自所有代理315的请求被提供至第一仲裁器322,而只有来自同步代理3152和3153的请求被提供至第二仲裁器324。为了确定来自同步代理之一的特定请求是否具有紧急状态,一对截止时间检查逻辑3210和321n分别被耦合以接收来自这些同步代理中对应的一个的请求,以及来自全局计时器350的全局计时信息。基于由代理提供的截止时间信息和全局计时信息的比较,可将对应请求的紧急状态的指示提供至第二仲裁器324。
在操作中,仲裁器322和324运行以从一组输入请求中选择仲裁胜者。在所示的实施例中,该决定一部分是基于来自储存每个代理生存期值的生存期存储326的信息。来自每个仲裁器对应的胜者可被耦合至优先级仲裁器选择器325,其基于操作模式选择对应请求以提供至调度器仲裁器330(为了简化图4中的说明而未示出)。为此,选择器325可至少部分基于优先级存储器中的信息为允许进入调度器仲裁器选择请求。
通过准许仲裁器实现的基于生存期的算法是这样的,从上次被仲裁器允许开始已经等待最久的请求代理将被给予最高的优先级。一旦代理接收最高优先等级,除非该代理已经被仲裁器允许,否则该代理的优先等级不会改变。这样,通过保证请求代理的优先级只能增加优先等级,直到该请求代理已经被仲裁器允许,可避免通常采用轮叫仲裁发现的饥饿问题。
准许仲裁器还允许将代理权重分配给所有请求代理。权重被用来为每个请求代理分配请求带宽的百分比。在一实施例中,通过储存在代理权重配置寄存器中的数值给每个代理指定权重值。在一实施例中,被分配至代理的请求带宽的百分比等于代理权重值除以所有代理权重之和。
准许仲裁器加权的基于生存期的算法基于当请求代理上次被仲裁器允许时的相对生存期。对于连接至准许仲裁器的每个请求代理,存在一个实例化的生存期计数器和一个实例化的权重计数器。对于被连接至准许仲裁器的代理,在准许仲裁器中的高优先级和低优先级仲裁路径两者共享共同的生存期和权重计数器。在选择最终仲裁胜者之后,由最终选择器(即优先级仲裁器选择器325)来决定请求代理的生存期和权重寄存器的更新。
对于所有请求代理,(例如,生存期存储器326的)生存期寄存器首先响应于接收对准许仲裁器的复位输入而被初始化。当复位断言(assert)时,生存期寄存器被初始化至始于0而终于N-1数值范围内的唯一数值,其中数值N等于被连接至准许仲裁器的请求接口数。
在请求代理断言任何请求之前,(例如,权重存储器328的)代理权重计数器从该结构的代理权重配置寄存器中编程的数值被初始化。一旦权重计数器被初始化,则对于该代理被允许的每个请求,代理的计数器减一。一旦代理的权重计数器达到零,并且如果代理再次被准许仲裁器允许,则利用配置寄存器中为该代理权重编程的值来重新加载计数器。
在一个实施例中,在第一和第二仲裁器322和324中执行的基于生存期的仲裁方法使用请求位向量(每个仲裁器具有其自己的向量)以确定仲裁的胜者。当为代理断言请求时,仲裁器为请求代理使用生存期数值作为请求的优先等级。仲裁器的优先等级和位向量宽度的范围为0到N-1。基于生存期的算法保证了所有请求代理的生存期数值永远唯一,因此每个仲裁永远只有一个胜者。
当请求仲裁胜者的权重计数器达到零时,仲裁器更新所有代理的生存期寄存器。在一个实施例中,所有代理的生存期寄存器根据以下规则被更新,以下规则保证代理的生存期数值永远是唯一数值。
规则1:当代理的生存期等于仲裁胜者的生存期时,该代理的生存期寄存器被设置为零以表示最年轻请求生存期或最低优先级。
规则2:当代理生存期小于仲裁胜者时,代理的生存期寄存器被增加1。
规则3:当代理生存期大于仲裁胜者时,代理的生存期寄存器不变。
如图4中进一步所示的,在给定请求在优先级仲裁器选择器325中被选择后,它被提供给冲突检测器332,其在不同的输入请求上执行冲突检测以防止不同的冲突源,诸如分配缓冲器中的冲突以及地址冲突,其中被请求的数据当前正被另一请求方访问。更进一步而言,冲突检测器332也可处理监听冲突情况,其中例如数据缓冲器344中的缓存行处于具有正被执行至SoC的一个或多个缓存存储器的监听请求的过程中。为了更容易地处理这样的监听冲突情况,冲突检测器332还可包括如本文所描述的监听滤波逻辑334。一般而言,监听过滤器逻辑334可通过将来自非缓存代理的输入监听存储器请求转换或降级至能没有延时地被处理进而不需监听冲突解决的非监听存储器请求,以最小复杂度和低功耗来防止这些监听冲突情况中的至少一些。尽管在图4的实施例中以高级示图被示出,需要理解的是,本发明的范围不仅限于该方面。
注意,当在冲突检测器332中检测到冲突时,反馈信息被传输至仲裁器322和324。这样,这些仲裁器可在进一步的仲裁回合中屏蔽对应的请求代理,直至冲突被解决。这样,这个反馈信号充当掩码,减少在一个或多个仲裁回合中可用于执行仲裁的请求代理数量。注意,当指定的冲突被解决时,该掩码信号被去除,使请求代理能够参与仲裁回合。注意,在一些实施例中,由于冲突被停顿的该类请求然后可被重新引入至仲裁器322和324并具有更高优先级。
现参考图5,所示是一种示出根据本发明实施例的共享存储器结构的更多细节的框图。如在图5中所示,冲突检测逻辑332被配置以从多个请求端口(例如,每个对应于SoC的请求代理)之一接收被仲裁的请求。更具体而言,可从图4的优先级仲裁器选择器325的输出接收输入请求。也就是说,当优先级仲裁器选择器325提供已为输出被最终选择的请求时,它被提供在与所给请求代理相关联的对应线上。
如在图5中所见,冲突检测逻辑332包括监听过滤器逻辑334,其可通过将来自非缓存代理的至少一些输入的监听存储器请求转换成非监听请求来减少监听冲突情况的数量,使他们的接纳作为下一个被接受请求而被输出,而不是使请求停顿并反过来可能使请求代理自身的向前推进停顿。注意,如果冲突检测逻辑332由于在分配缓冲器中的冲突而不能接受请求,那么该请求方可被阻止直至冲突被解决,并且数据缓冲器能被分配。另一冲突情况是,线当前仍在被监听至缓存代理。若不采用本发明的实施例,则一致性协议将要求缓存行的所有权在再次监听相同缓存行之前被完全解决。采用本发明的实施例,至少一些监听请求能被转换成非监听请求,并在更早的时间被允许进入一致性结构(系统代理的附加部分)。实施例可采用低功率和最小SoC结构执行监听滤波。更进一步的实施例可改善对相同缓存行的多个监听存储器请求的性能,正如可常见于非缓存代理。
为了执行根据本发明实施例的冲突检测操作和监听存储器请求的降级/转换,冲突检测逻辑332被耦合以接受与数据缓冲器344相关联的某些信息。更具体而言,冲突检测逻辑334被配置以从标签存储器343接受状态和控制信息。在不同的实现中,标签存储器343可以是数据缓冲器的部分,或其可以是与数据缓冲器相关联的独立存储器阵列(例如,具有与数据缓冲器344相同数量的线或条目)。在一实施例中,数据缓冲器344和标签存储器343每个都可包括64个条目。在一个这样的实施例中,数据缓冲器344为存储提供64B宽度。
仍然参照图5,标签存储器343被示出以包括数个组成部件。标签存储器343包括拥有指示器343a。在一实施例中,这个指示器可以是单个位以表明数据缓冲器344中的对应条目或线被系统代理所拥有。尽管被描述为被“拥有”,注意,这里的意思是,系统代理先前已在SoC的任何缓存中使该对应的缓存行无效,而这样第一状态(例如,逻辑高)的这个所拥有的指针不存在于SoC的任何缓存存储器中,从而使得不需要执行监听请求(尽管需要注意,数据可存在于数据缓冲器344的对应条目中)。换句话说,该结构的存储器控制器监听了该行,而且从监听执行开始,没有缓存代理请求该行。因此,存储器控制器被保证在系统中具有该线唯一的副本。
标签存储器343中进一步的控制和状态指示器包括下区块状态指示器343b和上区块状态指示器343c,其中每个可包括关于给定区块当前是否正被访问(读取或写入状态)的指示以及参考计数器,该参考计数器可允许对于缓存行的相同区块的多次访问。采用这样的状态指示器,新的独立读取和写入访问(来自相同的请求方)可被允许至单一缓存行的不同区块。反过来,行状态指示器343d可具有第一状态以指示该行包括将被刷新至存储器的修改数据。最终,地址字段343e储存地址,例如,在与对应数据缓冲器条目相关联的系统存储器的物理地址(或地址部分)中。尽管在图5的实施例中以此高级图示出,但需要理解的是,额外的和/或不同的信息可存在于其他实施例中。
注意,监听过滤器逻辑是临时的。也就是说,并非提供对于SoC缓存存储器为包含性的完整目录或监听过滤器,而是提供非常有限的监听过滤器逻辑。在特定的实施例中,监听滤波可以只对共享存储器结构的数据缓冲器中发生的存储器请求进行。这样,在其中该数据缓冲器包括64个条目的实现中,监听滤波逻辑可只对这64个条目提供对应的监听滤波能力。这样,采用本发明实施例使能的监听滤波是临时的,其中监听滤波只对这些条目(若存在)执行。当条目的数据被驱逐时,对与该数据相关联的存储器请求执行监听滤波的能力丧失。
并且,当所有权指示器表明对应数据被系统代理所拥有时,采用监听过滤器逻辑334,至相同地址的多个请求可被接受,并被提供以在共享存储器结构中处理,而无需停顿或停止之后的存储器请求。
需要注意的是,通过将监听存储器请求转换成非监听存储器请求,该存储器请求此后被作为非监听存储器请求进行处理。换句话说,在该存储器请求的处理期间,不会有任何类型的监听处理会被执行。
现参考图6,所示是一种根据本发明实施例的方法的流程图。如图6中所示,方法500可至少部分通过结构的监听过滤器逻辑被实现。在不同的实施例中,硬件、固件和/或软件的组合可被用以执行操作以更有效地处理来自耦合至该结构的非缓存代理的输入存储器请求。在图6的实施例中,执行简化处理,使得在对相同地址的先前的监听存储器请求被完成时,某些监听存储器请求被降级而系统代理是该地址的所有者。虽然这简化了实现,但在以下所描述的其他实施例中,即便在系统代理成为所有者之前,通过允许连续的请求被接受也可实现更大的延迟降低。
方法500起始于在系统代理中从非缓存代理(方框510)接收第一监听存储器请求。该系统代理可组成包括监听过滤器逻辑的结构。控制然后传递至菱形520,其中确定与该监听存储器请求的地址相关联的数据缓冲器的条目是否被系统代理所拥有。在一实施例中,该决定可以基于数据缓冲器的对应条目的所有权指示器。当具有置位或逻辑高状态时,该指示器表明条目被系统代理所拥有。换句话说,这个被置位的所有权指示器表明没有缓存代理包含了相关条目(及请求地址)数据的有效副本。
如果条目被系统代理所拥有,则控制传递至方框530,其中监听存储器请求能被降级成非监听存储器请求。在一实施例中,逻辑将这个接收的监听存储器请求转换成非监听存储器请求。另外,因为确定了没有对应条目数据的有效副本存在于SoC的任何缓存中,所以请求可被接受而不使请求停顿。当然,需要理解的是,在这一点上不同的实施例中,该请求可在其他这样的请求中被仲裁,并且直至一个或多个仲裁回合过去后才可被接受。而且,来自同一请求方至此相同条目的随后的存储器请求也可没有延时地被接受(方框540)。
在接受请求之后,通过系统代理的各种逻辑(诸如共享存储器结构)处理该请求。例如,对于非监听读取请求,如果数据存在于结构的数据缓冲器中,则请求的数据可被返回至请求方。而如果不存在,则可通过存储器控制器将存储器请求发布至包括数据的存储器。替代写入请求,可将与写入请求相关联的数据写入至数据缓冲器的对应条目中。然后,在晚些时候,例如响应于来自数据缓冲器的驱逐,可将此数据写回至存储器。
注意,在一实施例中,对于其中所有权被表明属于系统代理的监听读取请求,可执行额外的处理。更具体而言,当来自与此监听存储器请求相同的请求端口的先前监听无效为待定时,监听读取请求(其被降级成非监听请求)的结果可被保持待定直到来自相同请求端口的先前监听操作完成。也就是说,可将从存储器读取和在系统代理的数据缓冲器中储存的数据保持住,直至完成先前监听无效的结果(例如,写入)。当来自请求代理的所有先前监听事务完成时,为此降级的监听读取请求获得的数据被返回至请求方。
仍然参照图6,如果替代地,在菱形520处确定数据缓冲器的条目不被系统代理所拥有,则控制传递至菱形550,其中确定是否存在待定的对该条目的有效请求。如果是,则控制传递至方框555,其中请求被停顿直至有效请求完成并且不再待定。
否则,如果没有对于该条目的待定的请求,则控制传递至方框560,其中请求被接受。作为处理该请求的部分,可执行典型的监听流程,从而使得无效监听请求被发送至一个或多个缓存代理,例如一个或多个具有相关缓存存储器的SoC的核。通过这些无效监听请求,可获得数据的最近拷贝。另外,可使在这些一个或多个缓存存储器中的数据拷贝无效。
控制然后传递至菱形570,其中能够确定监听存储器请求是否已经完成。在一实施例中,菱形570处的确定是基于存储器请求是否已经引退。如果是,则控制传递至方框580。那里,条目的所有权指针可被置位以表明系统代理具有所有权。换言之,该所有权指针可被更新至置位或逻辑高状态。通过此更新的方式,系统代理被指示成为所有者,因为在SoC的任何缓存中的数据的所有副本已经被无效。这样,当接收到对于相应条目的来自非缓存代理的输入的监听存储器请求时,他们可被转换成非监听存储器请求,并根据非监听请求流程被处理,因为可以保证没有数据的有效拷贝存在于SoC的任何缓存中。这样如在图6中所见,控制从方框580传递至以上所描述的方框540。
另外,为改进处理,如果从相同的请求方接收对这个相同地址的多个输入的存储器请求,则所有请求能没有停顿地被接受和处理,从而改善性能。尽管在图6的实施例中以此高级图示出,但需要理解的是,本发明的范围不仅限于该方面。也就是说,在不同的实施例中,在采用根据本发明实施例的监听过滤器逻辑的对输入存储器请求的处理中可能涉及进一步的排序规则和其他要求。另外,对于某些类型的请求,通过甚至在系统代理拥有相应的缓存行之前降级和接受监听存储器请求,可实现进一步的延迟降低。
现参考图7,所示是根据本发明实施例的采用监听过滤器逻辑处理输入存储器请求的方法的流程图。如在图7中所示,方法600可通过SoC的不同的硬件、软件和/或固件来执行。在一实施例中,方法的至少部分可在图5的冲突检测逻辑332和监听过滤器逻辑334中实现。方法600开始于复位或当新的地址被分配给SoC数据缓冲器中的缓存行时(方框605)。响应于该方法的起始,可清除与该缓存行相关联的拥有指示器(方框610)。通过清除拥有指示器,不能保证该行的数据是否被拥有或与SoC的缓存代理相关联(例如,数据是否存在于SoC的缓存行或缓存代理中)。
仍然参照图7,接下来可确定输入的存储器请求是否来自缓存代理(菱形615)。如果是,则控制传递至方框620,其中如果不存在冲突,则可接受该请求。更具体而言,在一实施例中,仅当不存在对缓存行的有效请求时才接受对该缓存行的请求。当请求被接受时,该行拥有指示器被置于第二状态,例如,清零。在接受该请求之后,没有其他至缓存行的请求被允许被接受至系统代理中,直到该请求被引退。注意,写入请求不需要被刷新至DRAM,而相反,可在缓冲器中被标记为脏状态。
下一步,在菱形625处,可确定输入的请求是否为非监听读取或写入请求。如果是,则控制传递至方框630,其中可接受来自相同请求方的多个请求。更具体而言,在一实施例中,因为多个请求是从相同的请求方被接收的,所以它们被允许被接受至系统代理中至相同的行,,并且对于32B区块不存在读取/写入冲突。对于这些非监听请求,所拥有指示器可被维持在其当前状态下。
仍然参照图7,下一步,在菱形635处,可确定输入的请求是否是监听读取请求,以及拥有指示器是否具有第二、清零状态。如果是,控制传递至菱形640,其中能够确定发起请求的代理是否仅以请求顺序接受数据。如果是,控制传递至方框645,其中如果不存在冲突,则可接受该监听读取。另外,在该监听读取请求成功地引退时,可将所拥有的指针更新至第一状态。
如果替代地,在菱形640处,确定代理不需要以请求顺序接受读取数据,则控制传递至方框648。那里,如果不存在冲突,则可接受该监听读取请求。另外,在该监听读取请求成功地引退时,所拥有指针可被更新。更具体而言,在一实施例中,仅当不存在对该行的有效请求时才接受该监听读取请求。可将所拥有指针保持在第二状态下,直至第一监听读取被引退。当所拥有指针在第二状态下并且第一监听读取仍然有效时,仅可从相同的请求方端口接受至相同行的读取和非监听读取请求。在接受第一监听读取请求之后,所有后续的监听读取被降级成非监听读取请求。注意,可在第一监听读取请求的监听处理完成之前接受这些请求并将这些请求降级。当第一监听读取请求被引退时,所拥有指示器被置位为第一状态。
仍然参照图7,如果输入的存储器请求不是具有第二状态的所拥有指示器的监听读取请求,则控制传递至菱形650以确定输入的请求是否是具有第一状态的所拥有指示器的监听读取请求。如果是,则控制传递至方框655,其中请求可被降级至非监听读取请求并被适当地处理。在一实施例中,注意,多个请求被允许接受至相同的行,只要他们从相同的请求方被接收,并且对于32B区块不存在读取/写入冲突。还要注意的是,所拥有的指示被保持在第一状态下。
否则,控制从菱形650传递至菱形660以确定输入的请求是否是监听写入请求,而拥有指示器是否具有第二状态。如果是,则控制传递至方框665,其中如果不存在冲突,监听写入请求可被接受。另外,当该监听写入请求被引退时,拥有指示器可被更新。更具体而言,在一实施例中,仅在不存在对缓存行的有效请求时才接受监听写入请求。缓存行的所拥有指示器被保持在第二状态下,直至第一监听写入请求被引退。由于所拥有指针具有第二状态并且第一监听写入请求仍然有效,所以仅允许接受来自相同的请求方的对相同缓存行的多个监听写入请求和非监听写入请求。当第一监听写入请求被引退时,拥有指示器被置位为第一状态。
仍然参照图7,否则控制从菱形660传递至菱形670以确定输入的请求是否是监听写入并且拥有指示器是否具有第一状态。如果是,则控制传递至方框675,其中请求可被降级至非监听写入请求。在一实施例中,只要多个请求来自相同的请求方并且对于32B区块不存在读取/写入冲突,这多个请求就被允许接受至相同的缓存行,。所拥有的指针可被保持在第一状态。尽管在图7的实施例中以此高级图被示出,需要理解的是,本发明的范围不仅限于该方面。
现参考图8,所示是一种根据本发明实施例的SoC的框图。如在图8中所示,SoC 1000是单一管芯半导体器件,包括多个IP模块连同如以上所描述的共享存储器仲裁器。在图6的实施例中提供了多个核10100-1010n,其中的每个核能够独立执行指令。在一实施例中,所有这些核具有单一设计,诸如有序核设计,例如,具有英特尔架构(Intel ArchitectureTM),诸如基于凌动(AtomTM)的核。在其他实施例中,核可以是无序处理器,诸如英特尔架构(Intel ArchitectureTM)(IA)的32核,诸如基于英特尔酷睿(CoreTM)的设计。在其他实施例中,可提供异构核的混合。另外,可分别提供多个图像引擎即独立图像单元10200-1020n以独立执行图像操作。如所见,多个核被耦合至共享缓存存储器1015,诸如等级2(L2)的缓存,而类似地,图形引擎被耦合至另一共享缓存存储器1025。
系统代理1030通过对应的管芯内互连1028和1029被耦合至这些核和图像引擎。如所见,系统代理1030包括共享的存储器结构1035,其可被如本文中所描述地进行配置。当然,各种其他逻辑、控制器和其他单元,诸如功率管理单元可存在于系统代理1030中。如所见,共享存储器结构1035与存储器控制器1040通信,其反过来耦合至片外存储器,诸如被配置为DRAM的系统存储器。另外,系统代理1030通过一组互连1044被耦合至一个或多个内部代理1050,诸如各种外围设备。在一实施例中,互连1044可包括优先级通道互连,边带通道互连,和存储器通道互连。被类似配置的互连1046用于在系统代理1030和一个或多个片外代理(为简化在图8实施例中的说明而未被示出)之间进行通信。尽管在图8的实施例中以此高等级被示出,需要理解的是,本发明的范围不仅限于该方面。
现参考图9,所示是一种根据本发明实施例的存在于计算机系统中的组件的框图。如在图9中所示,系统1100可以包括许多不同的组件。在一个实施例中,系统1100是用户设备,包含如本文中所描述的SoC的触摸使能式设备。注意,系统1100的元件能作为IC、其部分、分立电子设备、或适配于电路板,诸如计算机系统的主板或插卡的其他模块,或作为元件被包含于计算机系统的机箱内而被实现。还要注意的是,图9的框图旨在示出计算机系统的许多元件的高等级视图。然而,需要理解的是,额外的元件可存在于某些实现中,并且,所示元件的不同排布可发生于其他实现中。
如在图9中所见,处理器1110,其可以是低功耗多核处理器插座,诸如超低电压处理器,可充当主处理单元和中央集线器,用来与系统的各种元件进行通信。这样的处理器可作为如本文中所描述的SoC被实现。在一个实施例中,处理器1110可以是英特尔架构基于酷睿(CoreTM)的处理器,诸如i3、i4、i7或可从加利福尼亚州圣克拉拉英特尔公司获得的另一该类处理器,诸如将一个或多个基于酷睿(CoreTM)的核和一个或多个英特尔基于凌动(ATOMTM)的核组合在单一SoC中的处理器。然而,需要理解的是,其他低功耗处理器,诸如可从加利福尼亚州桑尼维尔超微半导体公司(AMD)获得的、从ARM控股有限公司获得的基于ARM的设计、或从加利福尼亚州桑尼维尔的MIPS技术公司获得的基于MIPS的设计、或其被授权者或使用者可替代出现在其他实施例中,诸如苹果(Apple)A5或A6处理器。
处理器1110可与系统存储器1115通信,其在一实施例中能通过多存储器设备被实现以供于指定数量的系统存储器。为了供以永久储存信息,诸如数据、应用、一个或多个操作系统等,大容量存储器1120也可耦合至处理器1110。同样示于图9中,闪存设备1122可被耦合至处理器1110,例如,通过串行外设接口(SPI)。该闪存设备可提供用于系统软件的非易失性存储器,包括基本输入/输出软件(BIOS)以及其他系统固件。
不同的输入/输出(IO)设备可出现在系统1100中。图9的实施例中具体示出的是显示器1124,其可以是被配置在机箱盖部内的高清晰度LCD或LED面板。该显示面板也可提供触摸屏1125,例如,在显示面板上外部适应的,从而使得通过用户与该触摸屏的交互,用户输入可被提供至系统以使期望的操作成为可能,例如,关于信息的显示、信息的访问等。在一实施例中,显示器1124可通过能作为高性能图像互连来实现的显示互连被耦合至处理器1110。触摸屏1125可通过另一互连被耦合至处理器1110,在一实施例中该互连可以是I2C互连。如在图9中被进一步示出的,除触摸屏1125以外,通过触摸方式的用户输入也可通过触摸板1130发生,这可在机箱中被配置,并且也可被耦合至与触摸屏1125相同的I2C互连。
为了感知计算和其他目的,不同的传感器可在系统中出现,并可以不同的方式被耦合至处理器1110。某些惯性和环境传感器可通过传感器中枢1140,例如通过I2C互连,耦合至处理器1110。在图9中所示的实施例中,这些传感器可包括加速度计1141、环境光传感器(ALS)1142、指南针1143和陀螺仪1144。其他环境传感器可包括一个或多个温度传感器1146,在一实施例中其可通过系统管理总线(SMBus)总线耦合至处理器1110。
再在图9中所见,不同的外围设备可通过少管脚数(LPC)互连耦合至处理器1110。在所示实施例中,不同的元件能通过内嵌的控制器1135被耦合。这类元件可包括键盘1136(例如,通过PS2接口耦合)、风扇1137、以及温度传感器1139。在一些实施例,触摸板1130也可通过PS2接口耦合至EC 1135。另外,诸如可信平台模块(TPM)1138之类的依照可信计算组织(TCG)TPM规范1.2版本(日期2003年10月2日)的安全处理器也可通过该LPC互连耦合至处理器1110。
系统1100可与外部设备以各种方式(包括无线地)进行通信。在图9中所示的实施例中,示出了不同的无线模块,其中每个可对应被配置用于特定无线通信协议的无线电。短距离无线通信的一种方法,诸如近场,可以是通过近场通信(NFC)单元1145,在一实施例中,其可通过SMBus与处理器1110通信。注意,通过该NFC单元1145,彼此紧密靠近的设备可以进行通信。例如,用户可使系统1100能够与另一(例如,)便携设备,诸如通过以紧密关系适配在一起的两个设备,以及使诸如识别信息支付信息的信息、诸如图像数据等的数据的传输成为可能的用户的智能手机进行通信。无线电力传输也可通过采用NFC系统进行。
如在图9中还可见的,额外的无线单元可包括其他短距离无线引擎,包括WLAN单元1150和蓝牙单元1152。采用WLAN单元1150,依照指定的电气和电子工程师协会(IEEE)802.11标准的Wi-FiTM通信可被实现,而通过蓝牙单元1152,通过蓝牙协议的短距离通信可发生。这些单元可通过,例如USB链接或通用异步收发器(UART)链接与处理器1110通信。或者,这些单元可通过快速外部设备互连(PCIeTM)协议,例如,根据快速PCI规范基本规范版本3.0(发布于2007年1月17日),或另一该类协议,例如串行数据输入/输出(SDIO)标准,通过互连耦合至处理器1110。当然,在这些外围设备之间的实际物理连接,其可被配置于一个或多个插卡上,能通过下一代形状因数(NGFF)连接器的方式被适配至主板。
另外,例如,根据蜂窝或其他无线广域协议的无线广域通信可通过WWAN单元1156发生,其可耦合至用户识别模块(SIM)1157。另外,为了使本地信息能够接收和使用,GPS模块1155也可存在。注意,在图9所示的实施例中,WWAN单元1156和集成捕获设备,例如摄像头模块1154,可通过指定的USB协议(诸如USB 2.0或3.0链接)或UART或I2C协议进行通信。同样,这些单元的实际物理连接可通过将NGFF插卡适配于NGFF连接器被配置于主板上。
为提供音频输入和输出,音频处理器可通过数字信号处理器(DSP)1160被实现,其可通过高清音频(HDA)链接耦合至处理器1110。类似的,DSP 1160可与集成编码器/解码器(CODEC)以及可耦合至输出扬声器1163的放大器1162,该扬声器可在机箱中被实现。类似的,放大器和CODEC1162可被耦合以从话筒1165,其在一实施例中可通过双阵列话筒接收音频输入以提供高质量音频输入,以使能在系统中进行不同操作的语音激活控制。还要注意的是,音频输出可从放大器/CODEC 1162被提供至耳机插孔1164。尽管在图9的实施例中与这些具体元件一起被示出,需要理解的是,本发明的范围不仅限于该方面。
以下示例关于进一步的实施例。
在一示例中,SoC包括用于互连SoC的多个代理的结构,该结构包括:包括多个条目的数据缓冲器,每个条目用于储存要传输至多个代理和从多个代理传输以及要传输至与SoC耦合的存储器和从耦合至SoC的存储器传输的数据;以及仲裁逻辑,以使在结构已将在多个代理的第一代理的至少一个缓存存储器中的数据无效之后,使与多个条目之一中的数据相关联的多个存储器请求能够被接受。
在一示例中,SoC还包括与多个数据缓冲器条目中的每个相关联的所有权指示器,其中所有权指示器具有第一状态以表明条目的对应数据在多个代理的缓存代理中无效。
在一示例中,在与数据缓冲器的第一条目的数据相关联的第一监听存储器请求引退时,仲裁逻辑将所有权指示器更新为第一状态。
在一示例中,在第一监听存储器请求引退之前,仲裁逻辑将接受与第一条目的数据相关联的一个或多个随后的存储器请求。
在一示例中,一个或多个随后的存储器请求来自与第一监听存储器请求相同的请求方。
在一示例中,仲裁逻辑将一个或多个随后的存储器请求从监听存储器请求降级为非监听存储器请求。
在一示例中,第一代理包括缓存代理,而多个存储器请求从多个代理的非缓存代理被接收。
在一示例中,仲裁逻辑将来自非缓存代理的监听存储器请求降级为非监听存储器请求,并将与该监听存储器请求相关联的数据传输至该非缓存代理,而不发出监听请求至多个代理的缓存代理。
在一示例中,仲裁逻辑包括临时监听过滤器,该临时监听过滤器对于数据缓冲器是包含性的,而对于SoC的一个或多个缓存存储器是非包含性的。
在另一示例中,方法包括接收来自处理器的非缓存代理的对处理器的一致性结构中的第一地址的第一监听存储器请求,检测与第一地址相关联的一致性结构的数据缓冲器的条目是否被一致性结构所拥有,以及如果是,将第一监听存储器请求降级为非监听存储器请求。
在一示例中,方法还包括:如果条目不被一致性结构所拥有,如果第一监听存储器请求来自与第一地址的待定监听存储器请求相同的请求方,则接收并降级该第一监听存储器请求。
在一示例中,方法还包括在待定监听存储器请求的监听处理被完成之前接受并降级第一监听存储器请求。
在一示例中,在该非监听存储器请求是待定的同时,从第一监听存储器请求的同一请求方处接受至该地址的一个或多个随后的存储器请求。
在一示例中,降级第一监听存储器请求包括将第一监听存储器请求转换成非监听存储器请求。
在一示例中,方法还包括如果数据缓冲器的条目不被所述一致性结构所拥有,则确定有效存储器请求是否对条目待定,如果没有对该条目待定的有效存储器请求,则接受第一监听存储器请求,并执行对处理器的一个或多个缓存代理的无效监听请求。
在一示例中,方法还包括,如果存在对该条目的待定的有效存储器请求,则停顿第一监听存储器请求。
在一示例中,方法还包括,响应第一监听存储器请求的引退,为该条目置位拥有指示器,以表明一致性结构拥有该条目,并响应于在数据缓冲器中分配条目而清空该条目拥有指示器。
在一示例中,方法还包括保持数据缓冲器中与非监听存储器请求相关联的返回数据,直至完成来自第一监听存储器请求的请求方的先前的监听无效。
在另一示例中,一种计算机可读介质包括指令,指令用于执行任意以上示例的方法。
在另一示例中,一种设备包括执行任一以上示例的方法的装置。
在另一示例中,系统包括:SoC,包括第一核和第一缓存存储器、耦合至DRAM的至少一个存储器控制器、第一非缓存代理、耦合第一核、第一非缓存代理和至少一个存储器控制器的结构,该结构包括数据缓冲器和临时监听过滤器逻辑,该临时监听过滤器逻辑对数据缓冲器是包含性的而对第一缓存存储器是非包含性的,当与第一地址相关联的指示器指示该结构具有第一地址的控制时,临时监听过滤器逻辑使第一地址的多个监听存储器请求从第一非缓存代理被接受而无需停顿;以及DRAM,耦合至该SoC。
在一示例中,临时监听过滤器逻辑根据基本输入/输出系统(BIOS)、固件或其他软件被使能。
在一示例中,临时监听过滤器使多个监听存储器请求能够在结构将与第一缓存存储器中第一地址相关联的数据无效之后被接受。
在一示例中,指针在与第一地址相关联的数据被无效之后,指示结构具有第一地址的控制。
在一示例中,在与第一地址相关联的第一监听存储器引退时,临时监听过滤器逻辑更新指针,并且其中在第一监听存储器请求引退之前,临时监听过滤器逻辑接受与第一地址相关联的一个或多个随后的存储器请求。
在一示例中,临时监听过滤器逻辑将一个或多个随后的存储器请求从监听存储器请求降级为非监听存储器请求。
在另一示例中,装置包括冲突检测逻辑,以从片上系统(SoC)的一致性结构的仲裁器接收多个存储器请求,该冲突检测逻辑包括监听过滤器逻辑,以在与第一地址相关联的指针指示一致性结构具有第一地址的控制时,将第一地址的第一监听存储器请求降级为非监听存储器请求。
在一示例中,监听过滤器逻辑包括关于一致性结构的缓冲器,且不包括关于SoC的一个或多个缓存存储器。
在一示例中,在一致性结构将SoC的第一代理的多个缓存存储器中的数据无效之后,并在非监听存储器请求推出之前,监听过滤器逻辑使得与第一地址相关联的多个存储器请求能够被接受。
在一示例中,监听过滤器逻辑将更新指针以表明一致性结构具有第一地址的控制,以响应第一地址的监听存储器请求的引退。
在一示例中,监听过滤器逻辑包括临时监听过滤器。
在一示例中,临时监听过滤器包括一致性结构的缓冲器,且不包括SoC的一个或多个缓存存储器。
需要理解的是,以上示例的各种组合是可能的。
实施例可被用于不同类型的系统中。例如,在一实施例中,通信设备能被调度以执行本文中所描述的各种方法和技术。当然,本发明的范围不仅限于通信设备,相反,其他实施例能被指向用于处理指令的其他类型的设备,或一个或多个机器可读介质,包括在计算设备上响应被执行的指令,使得设备实行本文中所描述的一个或多个方法和技术。
实施例可在代码中实现,并且可被储存于有指令储存于其上的非临时储存介质上,其能被用以编写系统以执行指令。储存介质可包括,但不仅限于,任何类型的盘,包括软盘、光盘、固态驱动器(SSD)、只读光盘存储器(CD-ROM)、可重复刻录光盘(CD-RW)、和磁光盘,半导体设备,诸如只读存储器(ROM)、随机访问存储器(RAM)诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM)、磁或光卡、或适合储存电子指令的任何其他类型介质。
虽然本发明关于有限数量的实施例被描述,本领域的技术人员会理解从中的许多修改和变化。其意图在于,所附权利要求覆盖落入本发明真实精神和范围内的所有这样的修改和变化。

Claims (25)

1.一种片上系统(SoC),包括:
结构,所述结构用于互连所述SoC的多个代理,所述结构包括:
数据缓冲器,所述数据缓冲器包括多个条目,每个所述条目用于存储要传输至所述多个代理和要从所述多个代理传输的数据,以及要传输至耦合至SoC的存储器和要从耦合至SoC的存储器传输的数据;以及
仲裁装置,用于在所述结构将所述多个代理中的第一代理的至少一个缓存存储器中的数据无效之后,使与所述多个条目之一中的数据相关联的多个存储器请求能够被接受。
2.如权利要求1所述的SoC,其特征在于,还包括与所述数据缓冲器的所述多个条目中的每个相关联的所有权指示器,其中所述所有权指示器具有第一状态以指示所述条目的对应数据在所述多个代理中的缓存代理中已被无效。
3.如权利要求2所述的SoC,其特征在于,所述仲裁装置用于:当与所述数据缓冲器中的第一条目的数据相关联的第一监听存储器请求引退时,将所述所有权指示器更新为所述第一状态。
4.如权利要求3所述的SoC,其特征在于,所述仲裁装置用于:在所述第一监听存储器请求引退之前,接受与所述第一条目的所述数据相关联的一个或多个随后的存储器请求。
5.如权利要求4所述的SoC,其特征在于,所述一个或多个随后的存储器请求来自与所述第一监听存储器请求相同的请求方。
6.如权利要求4所述的SoC,其特征在于,所述仲裁装置用于将所述一个或多个随后的存储器请求从监听存储器请求降级为非监听存储器请求。
7.如权利要求1所述的SoC,其特征在于,所述第一代理包括缓存代理,而所述多个存储器请求是从所述多个代理的非缓存代理接收的。
8.如权利要求7所述的SoC,其特征在于,所述仲裁装置用于将来自所述非缓存代理的监听存储器请求降级为非监听存储器请求,并将与所述监听存储器请求相关联的数据传输至所述非缓存代理,而不发出监听请求至所述多个代理中的缓存代理。
9.如权利要求1所述的SoC,其特征在于,所述仲裁装置包括临时监听过滤器,所述临时监听过滤器对于所述数据缓冲器是包含性的,而对于所述SoC的一个或多个缓存存储器是非包含性的。
10.一种方法,包括:
在处理器的一致性结构中接收来自所述处理器的非缓存代理的对于第一地址的第一监听存储器请求;
检测所述一致性结构的数据缓冲器中与所述第一地址相关联的条目是否为所述一致性结构所有;以及
如果是,则将所述第一监听存储器请求降级为非监听存储器请求。
11.如权利要求10所述的方法,其特征在于,还包括:如果所述条目不为所述一致性结构所有,且如果所述第一监听存储器请求来自与对于所述第一地址的待定监听存储器请求相同的请求方,则接受并降级所述第一监听存储器请求。
12.如权利要求11所述的方法,其特征在于,还包括:在所述待定监听存储器请求的监听处理被完成之前,接受并降级所述第一监听存储器请求。
13.如权利要求10所述的方法,其特征在于,还包括:在所述非监听存储器请求待定的同时,接受来自所述第一监听存储器请求的相同请求方的对所述第一地址的一个或多个随后的存储器请求。
14.如权利要求10所述的方法,其特征在于,降级所述第一监听存储器请求包括将所述第一监听存储器请求转换成所述非监听存储器请求。
15.如权利要求11所述的方法,其特征在于,还包括:如果所述数据缓冲器的所述条目不为所述一致性结构所有,则确定是否有对所述条目待定的有效存储器请求,如果没有对所述条目待定的有效存储器请求,则接受所述第一监听存储器请求,并执行对所述处理器的一个或多个缓存代理的无效监听请求。
16.如权利要求15所述的方法,其特征在于,还包括:如果有对所述条目待定的有效存储器请求,则停顿所述第一监听存储器请求。
17.如权利要求15所述的方法,其特征在于,还包括:响应于所述第一监听存储器请求的引退,为所述条目置位拥有指示器以表明所述一致性结构拥有所述条目,并响应于在所述数据缓冲器中分配条目,清空所述拥有指示器。
18.如权利要求10所述的方法,其特征在于,还包括:在所述数据缓冲器中保持与所述非监听存储器请求相关联的返回数据,直至来自所述第一监听存储器请求的请求方的先前的监听无效已经完成。
19.至少一种机器可读介质,包括多个指令,所述多个指令响应于在计算设备上被执行,使得所述计算设备执行根据如权利要求10-18中任一项的方法。
20.一种系统,包括:
片上系统(SoC)包括:
第一核和第一缓存存储器;
至少一个存储器控制器,耦合至动态随机存取存储器(DRAM);
第一非缓存代理;
结构,耦合所述第一核、所述第一非缓存代理和所述至少一个存储器控制器,所述结构包括数据缓冲器和临时监听过滤器逻辑,所述临时监听过滤器逻辑对于所述数据缓冲器是包含性的且对于所述第一缓存存储器是非包含性的,所述临时监听过滤器逻辑用于:当与第一地址相关联的指示器指示所述结构具有对所述第一地址的控制时,使来自所述第一非缓存代理的对所述第一地址的多个监听存储器请求能够被接受而无需停顿;以及
所述DRAM,耦合至所述SoC。
21.如权利要求20所述的系统,其特征在于,根据基本输入/输出系统(BIOS)、固件或其他软件来使能所述临时监听过滤器逻辑。
22.如权利要求20所述的系统,其特征在于,所述临时监听过滤器用于使所述多个监听存储器请求能够在所述结构已将所述第一缓存存储器中与所述第一地址相关联的数据无效之后被接受。
23.如权利要求22所述的系统,其特征在于,所述指示器用于:在与所述第一地址相关联的所述数据被无效之后,指示所述结构具有对所述第一地址的控制。
24.如权利要求20所述的系统,其特征在于,所述临时监听过滤器逻辑用于:在与所述第一地址相关联的第一监听存储器请求引退时更新所述指示器,并且在所述第一监听存储器请求引退之前接受与所述第一地址相关联的一个或多个随后的存储器请求。
25.如权利要求24所述的系统,其特征在于,所述临时监听过滤器逻辑将所述一个或多个随后的存储器请求从监听存储器请求降级为非监听存储器请求。
CN201380073002.7A 2013-03-15 2013-03-15 提供与数据缓冲器相关联的监听滤波 Active CN105009101B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/031838 WO2014142939A1 (en) 2013-03-15 2013-03-15 Providing snoop filtering associated with a data buffer

Publications (2)

Publication Number Publication Date
CN105009101A true CN105009101A (zh) 2015-10-28
CN105009101B CN105009101B (zh) 2018-03-13

Family

ID=51533859

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380073002.7A Active CN105009101B (zh) 2013-03-15 2013-03-15 提供与数据缓冲器相关联的监听滤波

Country Status (7)

Country Link
US (1) US9767026B2 (zh)
EP (1) EP2972909A4 (zh)
KR (1) KR101814412B1 (zh)
CN (1) CN105009101B (zh)
DE (1) DE112013001361B4 (zh)
RU (1) RU2608000C2 (zh)
WO (1) WO2014142939A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106656391A (zh) * 2016-12-12 2017-05-10 中国航空工业集团公司西安航空计算技术研究所 一种交换机芯片多路时钟同步原语冲突处理电路
CN107038123A (zh) * 2015-12-10 2017-08-11 Arm 有限公司 用于数据处理系统中的缓存一致性的探听过滤器
CN108334337A (zh) * 2018-01-30 2018-07-27 江苏华存电子科技有限公司 含自动管理功能的低延迟指令调度器及过滤猜测访问方法
CN109891834A (zh) * 2016-12-08 2019-06-14 英特尔Ip公司 支持多个一致性机制、多个协议和多个交换机制的互连
CN111984387A (zh) * 2020-08-26 2020-11-24 上海兆芯集成电路有限公司 用于调度发布队列中指令的方法及处理器
CN115022181B (zh) * 2022-05-18 2023-11-21 浪潮思科网络科技有限公司 一种基于roce-san的信息同步方法、装置、设备及介质

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9563579B2 (en) 2013-02-28 2017-02-07 Intel Corporation Method, apparatus, system for representing, specifying and using deadlines
US10013385B2 (en) 2014-11-13 2018-07-03 Cavium, Inc. Programmable validation of transaction requests
US9569362B2 (en) * 2014-11-13 2017-02-14 Cavium, Inc. Programmable ordering and prefetch
US9971711B2 (en) 2014-12-25 2018-05-15 Intel Corporation Tightly-coupled distributed uncore coherent fabric
US9606925B2 (en) * 2015-03-26 2017-03-28 Intel Corporation Method, apparatus and system for optimizing cache memory transaction handling in a processor
US9996487B2 (en) 2015-06-26 2018-06-12 Intel Corporation Coherent fabric interconnect for use in multiple topologies
US9990292B2 (en) * 2016-06-29 2018-06-05 Arm Limited Progressive fine to coarse grain snoop filter
US10042766B1 (en) 2017-02-02 2018-08-07 Arm Limited Data processing apparatus with snoop request address alignment and snoop response time alignment
US10282298B2 (en) 2017-06-13 2019-05-07 Microsoft Technology Licensing, Llc Store buffer supporting direct stores to a coherence point
US10303603B2 (en) 2017-06-13 2019-05-28 Microsoft Technology Licensing, Llc Low power multi-core coherency
RU2649943C1 (ru) * 2017-07-04 2018-04-05 федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет "МИФИ" (НИЯУ МИФИ) Многовыходной арбитр приоритетов
US11275616B2 (en) * 2019-06-13 2022-03-15 Apple Inc. Resource access management

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5951657A (en) * 1996-06-19 1999-09-14 Wisconsin Alumni Research Foundation Cacheable interface control registers for high speed data transfer
US20050132147A1 (en) * 2003-12-10 2005-06-16 International Business Machines Corporation Method and system for supplier-based memory speculation in a memory subsystem of a data processing system
KR20070119653A (ko) * 2005-03-29 2007-12-20 인터내셔널 비지네스 머신즈 코포레이션 스트림 레지스터를 이용하여 스누프 요구를 필터링하는방법 및 장치
US20080109624A1 (en) * 2006-11-03 2008-05-08 Gilbert Jeffrey D Multiprocessor system with private memory sections
US20130007386A1 (en) * 2011-06-29 2013-01-03 Synopsys Inc. Memory arbiter with latency guarantees for multiple ports

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6874039B2 (en) * 2000-09-08 2005-03-29 Intel Corporation Method and apparatus for distributed direct memory access for systems on chip
US6959364B2 (en) * 2002-06-28 2005-10-25 Intel Corporation Partially inclusive snoop filter
US7093079B2 (en) 2002-12-17 2006-08-15 Intel Corporation Snoop filter bypass
US7644237B1 (en) 2003-06-23 2010-01-05 Mips Technologies, Inc. Method and apparatus for global ordering to insure latency independent coherence
US7373462B2 (en) * 2005-03-29 2008-05-13 International Business Machines Corporation Snoop filter for filtering snoop requests
US8631208B2 (en) * 2009-01-27 2014-01-14 Intel Corporation Providing address range coherency capability to a device
US8650629B2 (en) * 2009-12-16 2014-02-11 Intel Corporation Interface logic for a multi-core system-on-a-chip (SoC)
US8522189B2 (en) * 2011-03-09 2013-08-27 Intel Corporation Functional fabric based test access mechanism for SoCs
US9043665B2 (en) * 2011-03-09 2015-05-26 Intel Corporation Functional fabric based test wrapper for circuit testing of IP blocks
US20130007376A1 (en) 2011-07-01 2013-01-03 Sailesh Kottapalli Opportunistic snoop broadcast (osb) in directory enabled home snoopy systems
US9563579B2 (en) 2013-02-28 2017-02-07 Intel Corporation Method, apparatus, system for representing, specifying and using deadlines

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5951657A (en) * 1996-06-19 1999-09-14 Wisconsin Alumni Research Foundation Cacheable interface control registers for high speed data transfer
US20050132147A1 (en) * 2003-12-10 2005-06-16 International Business Machines Corporation Method and system for supplier-based memory speculation in a memory subsystem of a data processing system
KR20070119653A (ko) * 2005-03-29 2007-12-20 인터내셔널 비지네스 머신즈 코포레이션 스트림 레지스터를 이용하여 스누프 요구를 필터링하는방법 및 장치
US20080109624A1 (en) * 2006-11-03 2008-05-08 Gilbert Jeffrey D Multiprocessor system with private memory sections
US20130007386A1 (en) * 2011-06-29 2013-01-03 Synopsys Inc. Memory arbiter with latency guarantees for multiple ports

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107038123A (zh) * 2015-12-10 2017-08-11 Arm 有限公司 用于数据处理系统中的缓存一致性的探听过滤器
CN107038123B (zh) * 2015-12-10 2021-11-30 Arm 有限公司 用于数据处理系统中的缓存一致性的探听过滤器
CN109891834A (zh) * 2016-12-08 2019-06-14 英特尔Ip公司 支持多个一致性机制、多个协议和多个交换机制的互连
CN106656391A (zh) * 2016-12-12 2017-05-10 中国航空工业集团公司西安航空计算技术研究所 一种交换机芯片多路时钟同步原语冲突处理电路
CN106656391B (zh) * 2016-12-12 2018-10-12 中国航空工业集团公司西安航空计算技术研究所 一种交换机芯片多路时钟同步原语冲突处理电路
CN108334337A (zh) * 2018-01-30 2018-07-27 江苏华存电子科技有限公司 含自动管理功能的低延迟指令调度器及过滤猜测访问方法
CN111984387A (zh) * 2020-08-26 2020-11-24 上海兆芯集成电路有限公司 用于调度发布队列中指令的方法及处理器
CN115022181B (zh) * 2022-05-18 2023-11-21 浪潮思科网络科技有限公司 一种基于roce-san的信息同步方法、装置、设备及介质

Also Published As

Publication number Publication date
US9767026B2 (en) 2017-09-19
DE112013001361B4 (de) 2023-06-15
KR20150107831A (ko) 2015-09-23
EP2972909A1 (en) 2016-01-20
KR101814412B1 (ko) 2018-01-03
CN105009101B (zh) 2018-03-13
DE112013001361T5 (de) 2014-11-27
US20140281197A1 (en) 2014-09-18
RU2014139597A (ru) 2016-04-20
WO2014142939A1 (en) 2014-09-18
EP2972909A4 (en) 2016-12-14
RU2608000C2 (ru) 2017-01-11

Similar Documents

Publication Publication Date Title
CN105009101A (zh) 提供与数据缓冲器相关联的监听滤波
CN107924380B (zh) 使用业务类别分配高速缓存的方法、装置和系统
TWI522792B (zh) 用以產生要求之設備、用於記憶體要求之方法、及運算系統
TWI524184B (zh) 用於在分散式記憶體組織架構中處理位址衝突之方法、設備及系統
JP5981023B2 (ja) タッチ・データの分散前処理及びディスプレイ領域制御のための方法、装置、及びシステム
US10248568B2 (en) Efficient data transfer between a processor core and an accelerator
CN107005231B (zh) 用于在高性能互连中定中心的方法、设备、系统
US9405687B2 (en) Method, apparatus and system for handling cache misses in a processor
CN108701109A (zh) 用于计算机扩展总线的插件机制的方法、装置和系统
KR101775569B1 (ko) 가상 재시도 큐
CN104115093A (zh) 包括多个处理元件之间的功率和性能平衡的用于能效和节能的方法、装置和系统
CN105492989B (zh) 用于管理对时钟进行的门控的装置、系统、方法和机器可读介质
CN105830053A (zh) 用于快速配置机制的装置、方法和系统
TW200413889A (en) Mechanism for processor power state aware distribution of lowest priority interrupts
CN107003971A (zh) 用于高性能互连中的嵌入式流通道的方法、装置、系统
CN109634899A (zh) 针对pcie进行sris模式选择的系统、方法和装置
KR20160004365A (ko) 크레딧 기반의 중재를 위한 서비스 레이트 재분배
JP2021090188A (ja) ストリーミングファブリックインタフェース
CN108334458A (zh) 存储器高效的末级高速缓存架构
US9606925B2 (en) Method, apparatus and system for optimizing cache memory transaction handling in a processor
CN107567614A (zh) 用于对根据关键度被分组的指令的缕程的执行的多核处理器
US20140281276A1 (en) Method, apparatus, and system for low latency communication
Cohen et al. Intel embedded hardware platform

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant