当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于基于局部性的指令处理的选择性启用的系统、设备和方法技术方案

技术编号:19263312 阅读:30 留言:0更新日期:2018-10-27 02:17
在一实施例中,处理器包含:具有多个条目的稀疏访问缓冲器,每个条目针对到特定地址的存储器访问指令存储地址信息和计数信息;以及向存储器发出读取请求的存储器控制器,该存储器控制器包含用于接收具有无局部性提示的存储器访问指令以及取代无局部性提示(其中至少部分基于在稀疏访问缓冲器的条目中存储的计数信息)的局部性控制器。还描述其它实施例并要求其它实施例的权利保护。

System, device and method for selectively enabling locality based instruction processing

In an embodiment, the processor includes: a sparse access buffer with multiple entries, each entry storing address information and count information for a memory access instruction to a specific address, and a memory controller that sends a read request to the memory, which contains a memory controller for receiving a nonlocal feed. Indicates memory access instructions and local controllers that replace nonlocal prompts, which are at least partially based on count information stored in entries of sparse access buffers. Other embodiments are also described and the rights protection of other embodiments is required.

【技术实现步骤摘要】
用于基于局部性的指令处理的选择性启用的系统、设备和方法
实施例一般涉及在计算系统中存储器访问的有效处理。
技术介绍
诸如图分析学等稀疏数据处理工作负载执行无规律的存储器访问。在一些情况下,这些访问是针对大数据结构,并且是伪随机的。在现代处理器中,从存储器获取完全高速缓存行,并且将其插入高速缓冲存储器中。然而,在许多情况下,这些行在任何再使用前被逐出(从空间或时间局部性)。这既导致高速缓存污染,又导致外部存储器带宽的浪费。较新的存储器接口提供细粒度存储器访问能力,即,少于给定存储器行或高速缓存行宽度的存储器访问。然而,子高速缓存行存储器访问在处理器高速缓存层次结构中导致部分高速缓存行,这能够使高速缓存设计变得复杂。附图说明图1是根据本专利技术的一实施例的系统的框图。图2是根据本专利技术的一实施例的处理器的框图。图3是根据本专利技术的一实施例的系统的框图。图4是根据本专利技术的一实施例的方法的流程图。图5是根据本专利技术的另一实施例的方法的流程图。图6是根据本专利技术的一实施例的稀疏访问缓冲器的框图。图7A是根据本专利技术的实施例,要包括在处理器中的示范有序管线和示范寄存器重命名的乱序发出/执行管线的框图。图7B是图示了根据本专利技术的实施例,要包括在处理器中的示范寄存器重命名的乱序发出/执行架构核和有序架构核的示范实施例两者的框图。图8是根据本专利技术的实施例,带有集成存储器控制器和图形的多核处理器和单核处理器的框图。图9图示了根据本专利技术的一实施例的系统的框图。图10图示了根据本专利技术的一实施例的芯片上系统(SoC)的框图。图11图示了根据本专利技术的实施例,对比将源指令集中的二进制指令转换成目标指令集中的二进制指令的软件指令转换器的使用的框图。具体实施方式在各种实施例中,处理器配置成通过以可能细粒度方式访问展示非局部性的数据(本文中称为无局部性数据)和可能绕过在高速缓冲存储器中的存储,优化此类数据的处理。一些实施例可利用用户级无局部性存储器访问指令,其可用于以绕过高速缓存层次结构的方式读取和写入数据。此类指令也可用于进行如本文中所述的细粒度存储器访问。虽然本专利技术的范围在此方面不受限制,但此类指令包含流传送加载和存储指令,核可响应指令针对被访问的各个数据元素而发出若干加载或存储,其携带存储器访问将绕过在高速缓存中的存储,并且可在存储器控制器处被狭窄地处理的提示。随着响应本文中描述的某些无局部性请求而选择性启用全宽度存储器访问,可在访问模式实际上具高速缓存友好性(例如,如果以伪随机方式访问的数据结构适合于管芯上高速缓存,或者如果采用许多空间局部性以常规模式对数据结构非预期地访问)时利用局部性。以该方式,实施例可利用由较新存储器技术提供的细粒度存储器访问能力,而对高速缓存层次结构设计无重要更改,同时在它退出时捕捉访问中的局部性。在实施例中,处理器包含对“无局部性”(NL)加载的微架构支持。与非时间加载不同,NL加载既不意指时间也不意指空间局部性。此类NL加载可促使处理器查找高速缓存,并且如果发生高速缓存命中,则如通过常规加载一样,返回数据。相反的是,如果发生未命中,并且在存储器控制器处收到NL请求,则存储器控制器促使发生细粒度存储器访问以从存储器获得部分高速缓存行。注意,此部分高速缓存行未被插入高速缓存中,而是绕过高速缓存,并且被直接向核提供。图1是包含具有高速缓存层次结构103和存储器118的处理器102的系统100的一实施例的框图。处理器102和存储器118通过一个或多个互连116耦合在一起。处理器102包含一个或多个核104。在图示的示例中,处理器102包含第一核104-1到可选地多达第N核104-N。处理器可包含任何所需数量(例如,经常范围从一到大约几百)的核。核104-1包含一个或多个执行单元106-1,并且核104-N包含一个或多个执行单元106-N。一般情况下,处理器102也可具有一个或多个高速缓存108、110。高速缓存可表示比存储器118相对更小和更快类型的存储装置。高速缓存也可比存储器118更靠近核和/或执行单元。高速缓存可用于缓存或存储从存储器118被带入处理器中的数据(例如,响应给定存储器访问指令112,例如,加载指令),以提供对数据的更快随后访问。在处理器寻求通过存储器118读取或写入数据时,它可先检查以了解在高速缓存中是否存储了数据的副本。如果在高速缓存中找到数据,则比起如果从存储器118访问数据,处理器可从高速缓存更快地访问数据。因此,包含高速缓存可有助于降低对于访问数据所需要的平均时间量,这可增强处理器的性能和/或吞吐量。还参照图1,高速缓存层次结构103包含多级高速缓存,其不同在于其与处理器的核和/或执行单元的相对靠近度。核104-1具有第一级高速缓存或1级(L1)高速缓存108-1。类似地,核104-N具有L1高速缓存108-N。每个L1高速缓存可专用于其中包含它的对应核。L1高速缓存表示最靠近核的高速缓存级别。处理器也具有第二级高速缓存或2级(L2)高速缓存110。L2高速缓存表示下一最靠近核的高速缓存级别。在一些实现中,L2高速缓存可由核共享。虽然未示出,但可选地可存在离核仍更远的一个或多个另外的高速缓存级别(例如,3级(L3)高速缓存)。在处理器中包含高速缓存的一个原因是存储器引用经常具有局部性属性。例如,对存储器中数据的引用经常具有时间和/或空间局部性。时间局部性意指在按照存储器中的地址访问数据时,可能在短的时间期内再次访问相同数据。作为示例方式,当相同值将在循环中被再使用时、在一组计算中被重复使用时或出于各种其它原因时,这可以是该情况。在此类情况下,在从存储器访问数据后,有益的是可在高速缓存中存储数据以便对数据的随后访问可从高速缓存更快地被执行而不是从存储器慢速地被执行。空间局部性意指在从存储器中的地址访问给定数据时,也可能在短的时间期内访问在附近地址的附近数据。作为示例方式,二者数据集可以是相同内容的部分(例如,图像、表、数据结构、视频等),并且可在大约相同时间被处理。空间局部性也可出于各种其它原因而发生。高速缓存通过不但存储最初需要的数据,而且存储来自附近地址的附近数据,利用空间局部性。一般情况下,即使在最初可只需要更小得多的数据量时,从存储器访问并且在高速缓存中存储的最少量的数据也是全宽度高速缓存行的数据量。例如,一般情况下,即使最初只需要单个8比特、16比特、32比特、64比特或128比特数据元素,也可从存储器访问并且在高速缓存中存储整个512比特高速缓存行。如果空间局部性存在,则由于在不远的将来也可能将需要被带进高速缓存中的另外数据,因此,这将是有益的。在操作期间,通过逐出在不远的将来不可能需要的数据,以便为在不远的将来可能需要的数据腾出空间,不断更改在高速缓存中的数据。各种替换算法和策略被使用,其中的许多经常在很大程度上基于由于时间局部性的数据的使用年限(例如,最近最少使用指示)。存储器访问指令112通过在高速缓存层次结构103中存储已从存储器118聚集的数据元素,利用时间和/或空间局部性。许多数据类型和应用在其访问流中示出显著的空间和/或时间局部性,并且由此受益于在用于聚集的每个数据元素的高速缓存中访问和存储整个高速缓存行数据量。然而,并非所有数据类型和/或应用具有充分的本文档来自技高网...

【技术保护点】
1.一种用于执行存储器访问指令的处理器,包括:核,包含解码单元,所述解码单元用于解码具有无局部性提示的存储器访问指令以指示与所述存储器访问指令关联的数据具有非空间局部性和非时间局部性中至少之一;具有多个条目的稀疏访问缓冲器,每个条目针对到特定地址的存储器访问指令存储地址信息和计数信息;以及存储器控制器,用于向存储器发出请求,所述存储器控制器包含局部性控制器,所述局部性控制器用于接收具有所述无局部性提示的所述存储器访问指令,以及至少部分基于在所述稀疏访问缓冲器的条目中存储的所述计数信息,取代所述无局部性提示。

【技术特征摘要】
2017.03.31 US 15/4752491.一种用于执行存储器访问指令的处理器,包括:核,包含解码单元,所述解码单元用于解码具有无局部性提示的存储器访问指令以指示与所述存储器访问指令关联的数据具有非空间局部性和非时间局部性中至少之一;具有多个条目的稀疏访问缓冲器,每个条目针对到特定地址的存储器访问指令存储地址信息和计数信息;以及存储器控制器,用于向存储器发出请求,所述存储器控制器包含局部性控制器,所述局部性控制器用于接收具有所述无局部性提示的所述存储器访问指令,以及至少部分基于在所述稀疏访问缓冲器的条目中存储的所述计数信息,取代所述无局部性提示。2.根据权利要求1所述的处理器,其中所述无局部性提示将促使绕过所述处理器的高速缓冲存储器的数据到所述核的返回。3.根据权利要求1所述的处理器,其中响应所述无局部性提示的所述取代,所述存储器控制器将促使全宽度数据部分从所述存储器被获得并且提供到所述核。4.根据权利要求1所述的处理器,其中响应对所述稀疏访问缓冲器的命中,所述存储器控制器将促使子高速缓存行数据部分被提供到所述核而无对所述存储器的访问。5.根据权利要求1所述的处理器,其中响应所述无局部性提示,所述存储器控制器将促使子高速缓存行数据部分从所述存储器被获得并且提供到所述核。6.根据权利要求5所述的处理器,其中所述稀疏访问缓冲器包括读取合并缓冲器,所述读取合并缓冲器具有所述多个条目,其中所述多个条目将进一步针对存储器访问指令存储子高速缓存行数据部分。7.根据权利要求6所述的处理器,其中响应命中具有超过阈值的所述计数信息的所述稀疏访问缓冲器的第一条目的第二存储器访问指令,所述存储器控制器将获得与所述第二存储器访问指令关联的高速缓存行的剩余部分,合并所述高速缓存行的所述剩余部分和所述子高速缓存行数据部分,并且向所述核发送全高速缓存行宽度的数据。8.根据权利要求1所述的处理器,其中所述稀疏访问缓冲器包括旁路地址过滤器,以在与具有绕过了所述高速缓冲存储器的所述存储器控制器中处理的所述无局部性提示的存储器访问指令关联的所述多个条目中存储信息。9.根据权利要求1所述的处理器,其中所述计数信息包括置信度信息,所述稀疏访问缓冲器用于响应对所述第一条目的所述存储器访问指令命中,更新所述第一条目的所述置信度信息。10.根据权利要求1所述的处理器,其中所述存储器控制器将响应在具有所述无局部性提示的第二存储器访问指令的所述处理器的高速缓存层次结构中的未命中,在所述稀疏访问缓冲器中插入条目。11.一种用于执行存储器访问指令的方法,包括:响应在处理器的高速缓存层次结构中具有无局部性提示的存储器访问请求的未命中,确定如果所述存储器访问请求在所述处理器的稀疏访问缓冲器中命中,则所述稀疏访问缓冲器存储与具有无局部性提示的存储器访问请求关联的信息;以及如果所述存储器访问请求在所述稀疏访问缓冲器中命中,并且所述稀疏访问缓冲器的命中条目的置信度值超过阈值,则向所述处理器返回全宽度的数据。12.根据权利要求11所述的方法,进一步包括如果所述存储器访问请求在所述稀疏访问缓冲器中命中,并且所述稀疏访问缓冲器的所述命中条目的所述置信度值小于所述阈值,则向所述处理器返回部分宽度的数据,并且更新所述命中条目的所述置信度值。13....

【专利技术属性】
技术研发人员:CJ休格斯JS朴R阿加瓦尔C仇B阿金
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1