CN101334759A - 访问处理器缓存的方法和*** - Google Patents
访问处理器缓存的方法和*** Download PDFInfo
- Publication number
- CN101334759A CN101334759A CNA2008101319235A CN200810131923A CN101334759A CN 101334759 A CN101334759 A CN 101334759A CN A2008101319235 A CNA2008101319235 A CN A2008101319235A CN 200810131923 A CN200810131923 A CN 200810131923A CN 101334759 A CN101334759 A CN 101334759A
- Authority
- CN
- China
- Prior art keywords
- processor
- address
- buffer memory
- requested
- level caches
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
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
用于访问处理器中缓存存储器的方法和装置。该方法包括:使用被请求数据的被请求有效地址来访问处理器的一个或多个一级缓存中的被请求数据。如果该处理器的一个或多个以及缓存不包含对应于被请求有效地址的被请求数据,则被请求有效地址被转换成真实地址。后备缓冲器包括针对处理器的一个或多个一级缓存的每一个中的每条缓存线的对应条目。相应条目指示从有效地址到缓存线的真实地址的转换。经过转换的真实地址用于访问二级缓存。
Description
技术领域
本发明一般涉及在处理器中执行指令。
背景技术
现代计算机***通常包含几个集成电路(IC),所述集成电路包括可以用来在计算机***中处理信息的处理器。处理器处理的数据可以包括该处理器执行的计算机指令以及该处理器使用计算机指令操作的数据。计算机指令和数据通常存储在计算机***中的主存储器中。
处理器通常通过以一系列小步骤执行指令来处理指令。在某些情况下,为了增加处理器处理的指令数量(并因此提高处理器速度),处理器可以利用流水线技术。流水线技术涉及在处理器中提供分开的阶段,每个阶段进行一个或多个执行指令所必须的小步骤。在某些情况下,流水线(除了其他电路外)可以置于称为处理器内核的处理器部分中。
为了提供对数据和指令的更快速访问以及更好的处理器利用,处理器可以具有几个缓存。缓存是通常小于主存储器的存储器,并且通常制造在与处理器相同的晶元(即,芯片)上。现代处理器通常具有若干级缓存。与处理器内核距离最近的最快速缓存称为一级缓存(L1缓存)。除了L1缓存外,处理器通常具有第二个更大的缓存,称为二级缓存(L2缓存)。在某些情况下,处理器可以具有其他的附加缓存级(例如,L3缓存和L4缓存)。
现代处理器提供了地址转换,该地址转换允许软件程序使用有效地址的集合来访问更大集合的真实地址。在访问缓存期间,由载入或者存储指令提供的有效地址可以转换成真实地址并用于访问L1缓存。因此,处理器可以包括被配置以在载入或者存储指令访问L1缓存之前执行地址转换的电路。但是,由于地址转换,到L1缓存的访问时间会增加。而且,在处理器包括多个内核,每个内核都执行地址转换的情况下,来自于提供地址转换电路以及在执行多个程序时执行地址转换的开销会变得不合需要。
因此,需要的是一种用于访问处理器缓存的改进型方法和装置。
发明内容
本发明一般性地提供了一种用于访问处理器缓存的方法。在一个实施例中,该方法包括使用被请求数据的被请求有效地址来访问处理器中的一个或多个一级缓存中的被请求数据。如果处理器的一个或多个一级缓存不包含对应于被请求有效地址的被请求数据,则被请求有效地址被转换成真实地址。后备缓冲器包括针对处理器中一个或多个一级缓存的每一个中的每条缓存线的相应条目。相应条目指示从有效地址到缓存线的真实地址的转换。经过转换的真实地址用于访问二级缓存。
本发明的一个实施例还提供了处理器,其包括一个或多个一级缓存、二级缓存和后备缓冲器。该处理器还包括电路,该电路被配置以使用被请求数据的被请求有效地址来访问处理器中的一个或多个一级缓存中的被请求数据。如果处理器的一个或多个一级缓存不包含对应于被请求有效地址的被请求数据,则被请求有效地址被转换成真实地址。后备缓存包括针对处理器中一个或多个一级缓存的每一个中的每条缓存线的相应条目。相应条目指示从有效地址到缓存线的真实地址的转换。该电路还被配置以使用经过转换的真实地址来访问二级缓存。
本发明的一个实施例提供了一种包括二级缓存和处理器的***。该处理器包括一个或多个一级缓存和后备缓冲器,该后备缓冲器被配置以包括针对置于处理器的一个或多个一级缓存中的每条缓存线的对应条目。相应条目指示针对缓存线从有效地址到真实地址的转换。该处理器还包括电路,该电路被配置以使用被请求数据的被请求有效地址来访问处理器的一个或多个一级缓存中的被请求数据。如果处理器的一个或多个一级缓存不包含对应于被请求有效地址的被请求数据,则被请求有效地址被转换成真实地址。使用经过转换的真实地址访问二级缓存。
附图说明
为了使其中包含本发明的上述特征、优势和目的的方式能够被获得且被详细地理解,通过参考附图中示出的本发明的实施例,可以得到对上述简要概述的本发明的更加具体的描述。
然而需要注意的是,附图示出的仅仅是本发明的典型实施例,由于本发明可以允许其他等效的实施例,因此不能认为附图是对本发明范围的限制。
图1是示出了根据本发明一个实施例的***的框图。
图2是示出了根据本发明一个实施例的计算机处理器的框图。
图3是示出了根据本发明一个实施例的处理器的内核之一的框图。
图4是示出了根据本发明一个实施例的、用于访问缓存的处理的流程图。
图5是示出了根据本发明一个实施例的缓存的框图。
图6是示出了根据本发明一个实施例的、用于使用分离目录(split directory)来访问缓存的处理的流程图。
图7是示出了根据本发明一个实施例的分离缓存目录的框图。
图8是示出了根据本发明一个实施例的缓存访问电路的框图。
图9是示出了根据本发明一个实施例的、用于使用缓存访问电路来访问缓存的处理的框图。
具体实施方式
本发明一般性地提供了一种用于访问处理器中缓存存储器的方法和装置。该方法包括:使用被请求数据的被请求有效地址来访问处理器的一个或多个一级缓存中的被请求数据。如果处理器的一个或多个一级缓存不包含对应于被请求有效地址的被请求数据,则将被请求有效地址转换成真实地址。后备缓冲器包括针对处理器的一个或多个一级缓存的每一个中的每条缓存线的相应条目。相应条目指示从有效地址到缓存线的真实地址的转换。经过转换的真实地址用于访问二级缓存。
在下文中,将对本发明的实施例进行参考。然而,应当理解的是,本发明并不限于具体描述的实施例。相反,不论是否与不同的实施例相关,下列特征和元件的任意结合都打算用于实现和实施本发明。而且,在各种实施例中,本发明相比于现有技术提供了许多优势。然而,尽管本发明的实施例可以实现优于其他解决方案和/或现有技术的优势,但特定优势是否是由本发明的给定实施例来实现并不是对本发明的限制。因此,除了在权利要求中明确叙述的情况之外,下列的各个方面、特征、实施例以及优势仅仅是示例性的,而不应被认为是所附权利要求的要素或者是对所附权利要求的限制。同样,除了在权利要求中明确叙述的情况之外,对于“发明”的引用不应理解为是此处所公开的任何本发明主题的概括,也不应理解为是所附权利要求的要素或者是对所附权利要求的限制。
以下是在附图中描绘的本发明实施例的详细描述。这些实施例是示例并且如此详细是为了清楚地传达本发明。但是,所提供的细节数量并不旨在限制预期的实施例变体;相反,本发明用于覆盖落入所附权利要求中定义的本发明精神和范围内的所有变体、等同物以及替代物。
本发明的实施例可以与***(例如,计算机***)一起利用,并在下面针对***进行描述。如在此所使用的那样,***可以包括利用处理器和缓存存储器的任何***,包括个人计算机、互联网应用、数字媒体应用、便携式数字助理(PDA)、便携式音乐/视频播放器以及视频游戏控制器。尽管缓存存储器可以位于与利用该缓存存储器的处理器相同的晶元(die)上,但是在某些情况下,处理器和缓存存储器可以位于不同的晶元上(例如,单独的模块内的单独的芯片上或者单个模块内的单独的芯片上)。
尽管以下针对具有多个处理器内核和多个L1缓存的处理器进行了描述,其中每个处理器内核使用多个流水线来执行指令,但是本发明的实施例可以与任何使用了缓存的处理器(包括具有单个处理内核的处理器)一起使用。通常,本发明的实施例可以与任何处理器一起使用并且不限于任何具体的配置。而且,尽管在下面针对具有L1缓存的处理器(其被划分为L1指令缓存(L1 I缓存或者I缓存)以及L1数据缓存(L1 D缓存或者D缓存))进行了描述,但是本发明的实施例可以在利用了统一的L1缓存的配置中使用。而且,尽管在下面针对利用了L1缓存目录的L1缓存进行了描述,但是本发明的实施例在未使用缓存目录的情况下仍可使用。
示例性***的概述
图1是示出了根据本发明一个实施例的***100的框图。***100可以包含用于存储指令和数据的***存储器102、用于图形处理的图形处理单元104、用于与外部设备通信的I/O接口、用于长期存储指令和数据的存储设备108,以及用于处理指令和数据的处理器110。
根据本发明的一个实施例,处理器110可以具有L2缓存112以及多个L1缓存116,每个L1缓存116被多个处理器内核114之一使用。根据一个实施例,每个处理器内核114都可以利用流水线,其中在一系列小步骤中执行每个指令,每个步骤由不同的流水线阶段执行。
图2是示出了根据本发明一个实施例的处理器110的框图。为了简便,图2示出了处理器110的单个内核114并针对其进行了描述。在一个实施例中,每个内核114可以是相同的(例如,包含具有相同流水线阶段的相同流水线)。在另一个实施例中,每个内核114可以是不同的(例如,包含具有不同阶段的不同流水线)。
在本发明的一个实施例中,L2缓存112可以包含处理器110正在使用的指令和数据的一部分。在某些情况下,处理器110可以请求不包含在L2缓存112中的指令和数据。在所请求的指令和数据不包含在L2缓存112中的情况下,所请求的指令和数据可以被检索(从更高级别的缓存或者从***存储器102)并将其置于L2缓存112中。
如上所述,在某些情况下,L2缓存112可以由一个或多个处理器内核114共享,每个内核使用单独的L 1缓存116。在一个实施例中,处理器110还可以在嵌套(nest)216中提供电路,该电路由一个或多个处理器内核114以及L1缓存116共享。这样,当给定的处理器内核114从L2缓存112请求指令时,该指令可以首先由嵌套216中的预解码器和调度器220处理,其中该预解码器和调度器220在一个或多个处理器内核114之间共享。嵌套216还可以包括以下将更详细地描述的L2缓存访问电路210,其可以由一个或多个处理器内核114使用来访问共享的L2缓存112。
在本发明的一个实施例中,可以从L2缓存112中成组地取回称为I线的指令。类似地,可以从L2缓存112中成组地取回称为D线的数据。图1中示出的L1缓存116可以分为两部分,即用于存储I线的L1指令缓存222(I缓存222)以及用于存储D线的L1数据缓存224(D缓存224)。I线和D线都可以使用L2访问电路210从L2缓存112取回。
从L2缓存112检索的I线可以由预解码器和调度器220处理并且I线可以置于I缓存222中。为了进一步改进处理器性能,可以对指令进行预解码,例如,当从L2(或者更高的)缓存检索I线时以及在将指令置于L1缓存116以前进行预解码。这样的预解码可以包括各种功能,诸如地址生成、分支预测以及调度(确定指令的分发顺序),其作为控制指令执行的分发信息(标志集合)而被捕获。在处理器110中另一位置执行解码的情况下,例如在已经从L1缓存116检索指令后执行解码的情况下,也可以使用本发明的实施例。
在某些情况下,可以在多个内核114和L1缓存116之间共享预解码器和调度器220。类似地,从L2缓存112取回的D线可以置于D缓存224中。每个I线和D线中的比特可以用来追踪L2缓存112中的信息线是I线还是D线。可选地,除了以I线和/或D线的方式从L2缓存112取回数据以外,可以按照其他方式(例如,通过取回更少量、更大量或者各种量的数据)从L2缓存112取回数据。
在一个实施例中,I缓存222和D缓存224可以分别具有I缓存目录223和D缓存目录225以追踪哪些I线和D线当前处于I缓存222和D缓存224中。当将I线或D线添加到I缓存222或者D缓存224时,可以将相应的条目置于I缓存目录223或者D缓存目录225中。当将I线或D线从I缓存222或者D缓存224移除时,可以将相应的条目从I缓存目录223或者D缓存目录225中移除。尽管以下针对利用了D缓存目录225的D缓存224进行描述,但是本发明的实施例还可以在未利用D缓存目录225的情况中使用。在这种情况下,存储在D缓存224中的数据本身可以指示什么D线位于D缓存224中。
在一个实施例中,指令取回电路236可以用于为内核114取回指令。例如,指令取回电路236可以包含程序计数器,其追踪内核114中正在执行的当前指令。内核114内的分支单元可以用于在遇到分支指令时改变程序计数器。I线缓冲器232可以用于存储从L1 I缓存222取回的指令。发布队列234及相关联的电路可以用来将I线缓冲器232中的指令聚集成指令组,然后如下所述,指令组被并行地发布到内核114。在某些情况下,发布队列234可以使用预解码器和调度器220提供的信息来形成适当的指令组。
除了从发布队列234接收指令外,内核114还可以接收来自于各种位置的数据。在内核114向数据寄存器要求数据时,寄存器文件240可以用来获取数据。在内核114向存储器位置要求数据时,缓存载入和存储电路250可以用来从D缓存224载入数据。在执行这样的载入时,对被要求数据的请求可以发布到D缓存224。同时,可以检查D缓存目录225以确定被期待的数据是否位于D缓存224中。在D缓存224包含所期待的数据的情况下,D缓存目录225可以指示:D缓存224包含所期待的数据并且可以在后来的某个时间完成D缓存访问。在D缓存224不包含所期待的数据的情况下,D缓存目录225可以指示D缓存224不包含所期待的数据。由于D缓存目录225可以比D缓存224更快地被访问,所以对于被期待数据的请求可以在完成D缓存访问之前发布到L2缓存112(例如,使用L2访问电路210)。
在某些情况下,可以在内核114中修改数据。经过修改的数据可以写入寄存器文件240,或者存储在存储器102中。回写(writeback)电路238可以用于将数据回写寄存器文件240。在某些情况下,回写电路238可以利用缓存载入和存储电路250来将数据回写D缓存224。可选地,内核114可以直接访问缓存载入和存储电路250来执行存储。在某些情况下,回写电路238还可以用来将指令回写I缓存222。
如上所述,发布队列234可以用来形成指令组并且将形成的指令组发布到内核114。发布队列234还可以包括轮转(rotate)和合并(merge)I线中的指令从而形成合适的指令组的电路。发布组的形成可以考虑几种因素,诸如发布组中指令之间的依赖性以及可以通过以下详述的指令排序而达到的优化。一旦形成了发布组,则发布组将会被并行地分发至处理器内核114。在某些情况下,指令组可以包含一个针对内核114中每个流水线的指令。可选地,指令组可以是较少数量的指令。
根据本发明的一个实施例,一个或多个处理器内核114可以利用级联的、延迟的执行流水线配置。在图3示出的示例中,内核114包含四个级联配置的流水线。可选地,更少数量(两个或多个流水线)或者更多数量(多于四个流水线)可以在这种配置中使用。而且,图3中描述的流水线的物理布局是示例性的,并且并不必定暗示级联的、延迟的执行流水线单元的实际物理布局。
在一个实施例中,级联的、延迟的执行流水线配置中的每个流水线(P0、P1、P2和P3)可以包含执行单元310。执行单元310可以执行针对给定流水线的一个或多个功能。例如,执行单元310可以执行取回指令以及解码指令的全部或者部分。执行单元执行的解码可以与预解码器和调度器220分享,其中该预解码器和调度器220在多个内核114间共享或者可选地可以由单个内核114使用。执行单元310还可以从寄存器文件240读取数据、计算地址、执行整数运算功能(例如,使用算术逻辑单元,或者说是ALU)、执行浮点运算功能、执行指令分支、执行数据访问功能(例如,从存储器载入或者存储),以及将数据存储回(例如,寄存器文件240中的)寄存器。在某些情况下,内核114可以利用指令取回电路236、寄存器文件240、缓存载入和存储电路250、回写电路238以及其他任何电路,来执行这些功能。
在一个实施例中,每个执行单元310可以执行同样的功能(例如,每个执行单元310可以能够执行载入/存储功能)。可选地,每个执行单元310(或者不同的执行单元组)可以执行不同的功能集合。而且,在某些情况下,每个内核114中的执行单元310可以与在其他内核中提供的执行单元310相同或者不同。例如,在一个内核中,执行单元3100和3102可以执行载入/存储和算术功能,而执行单元3101和3103可以仅执行算术功能。
在一个实施例中,如所述,执行单元310中的执行可以相对于其他执行单元310而言以延迟的方式进行。所描述的布置还可以称为级联的、延迟的配置,但是所描述的布局并不必须指示执行单元的实际物理布局。在这种配置中,其中指令组中的四个指令(为了简便,称为I0、I1、I2和I3)并行地发布到流水线P0、P1、P2和P3,每个指令可以相对于每个其他指令而言以延迟的方式执行。例如,针对流水线P0,指令I0可以首先在执行单元3100中执行;然后,针对流水线P1,指令I1可以在执行单元3101中执行,等等。I0可以立即在执行单元3100中执行。稍后,当在执行单元3100中执行完指令I0后,执行单元3101可以开始执行指令I1,等等,使得并行发布到内核114的指令可以相对于彼此以延迟的形式执行。
在一个实施例中,某些执行单元310可以相对于彼此被延迟,而其他执行单元310不相对于彼此被延迟。在第二指令的执行取决于第一指令的执行的情况下,转发路径312可以用来将结果从第一指令转发到第二指令。所描述的转发路径312仅仅是示例性的,并且内核114可以包含从执行单元310中不同点到其他执行单元310或者同一执行单元310的更多转发路径。
在一个实施例中,执行单元310未执行的指令可以保持在延迟队列310中或者目标延迟队列330中。延迟队列320可以用来将指令保持在还未由执行单元310执行的指令组中。例如,在指令I0正在执行单元3100中执行时,指令I1、I2和I3可以保持在延迟队列330中。一旦指令已经移动通过延迟队列330,则该指令可以发布到合适的执行单元310并且被执行。目标延迟队列330可以用来保持已经由执行单元310执行的指令的结果。在某些情况下,目标延迟队列330中的结果可以转发到执行单元310用于处理或者在合适的情况下被无效。类似地,在某些情况下,延迟队列320中的指令可以被无效,如下所述。
在一个实施例中,在指令组中的每个指令都已经通过延迟队列320、执行单元310和目标延迟队列330后,结果(例如,数据,以及如下所述的指令)可以回写寄存器文件或者L1 I缓存222和/或D缓存224。在某些情况下,回写电路306可以用来将最近修改过的寄存器的值回写并丢弃无效的结果。
访问缓存存储器
在本发明的一个实施例中,可以使用有效地址访问用于每个处理器内核114的L1缓存116。在L1缓存116使用单独的L1 I缓存222和L1 D缓存224的情况下,也可以使用有效地址访问缓存222和224的每一个。在某些情况下,通过使用正在由处理器内核114执行的指令直接提供的有效地址来访问L1缓存116,可以在L1缓存访问期间省掉地址转换产生的处理开销,从而提高了速度并减小了处理器内核114访问L1缓存116的功率。
在某些情况下,多个程序可以使用同一有效地址来访问不同的数据。例如,第一程序可以使用第一地址转换,该第一地址转换指示第一有效地址EA1被用来访问对应于第一真实地址RA1的数据。第二程序可以使用第二地址转换来指示EA1被用来访问第二真实地址RA2。通过针对每个程序使用不同的地址转换,用于每个地址的有效地址可以转换成更大真实地址空间中的不同真实地址,从而防止不同程序无意中访问不正确的数据。地址转换可以例如维护在***存储器102中的页表内。处理器110使用的地址转换的一部分可以缓存到例如后备缓冲器中,诸如转换后备缓冲器或者分段后备缓冲器。
在某些情况下,由于可以使用有效地址来访问L1缓存116中的数据,所以可能期待避免使用同一有效地址的不同程序无意中访问不正确的数据。例如,如果第一程序使用EA1访问L1缓存116,而地址还被第二程序使用来表示RA2,则第一程序应当从L1缓存116接收对应于RA1的数据,而不是对应于RA2的数据。
因此,在本发明的一个实施例中,处理器110可以确保:对于在处理器110的内核114中使用以访问该内核114的L1缓存的每个有效地址而言,L1缓存116中的数据是针对由正在执行的程序使用的地址转换的正确数据。因此,当处理器110使用的后备缓冲器包含用于第一程序的条目(指示有效地址EA1转换成真实地址RA1)的情况下,处理器110可以确保L1缓存116中的任何被标识为具有有效地址EA1的数据与存储在真实地址RA1处的数据相同。在用于EA1的地址转换条目从后备缓冲器移除的情况下,如果存在相应数据的话,则将其也从L1缓存116移除,从而确保L1缓存116中的所有数据都具有后备缓冲器中的有效转换条目。通过确保L1缓存116中的所有数据都由用于地址转换的后备缓冲器中的相应条目映射,可以使用有效地址访问L1缓存116,同时避免了给定程序无意中从L1缓存116接收到不正确的数据。
图4是示出了根据本发明一个实施例的、用于访问L1缓存116(例如,D缓存224)的处理的流程图。处理400可以在步骤402处开始,其中接收访问指令,该访问指令包括将要由该访问指令访问的数据的有效地址。访问指令可以是处理器内核114接收的载入或者存储指令。在步骤404,访问指令可以由处理器内核114执行,例如在具有载入-存储能力的执行单元310之一中执行。
在步骤406,访问指令的有效地址可以在没有地址转换的情况下被用来确定用于处理器内核114的L1缓存116是否包括对应于该访问指令有效地址的数据。如果在步骤408处确定L1缓存116包括对应于有效地址的数据,则可以在步骤410从L1缓存116提供用于该访问的数据。但是,如果在步骤408处确定L1缓存116不包括该数据,则在步骤412处,可以向L2缓存访问电路210发送请求以检索对应于该有效地址的数据。L2缓存访问电路210可以例如从L2缓存112中取回数据或者从缓存存储器体系的更高级缓存中检索数据,例如从***存储器102中检索,并且将检索到的数据放置在L2缓存112中。在步骤414,用于访问指令的数据随后可以从L2缓存112提供。
图5是示出了根据本发明一个实施例、用于使用有效地址访问L1 D缓存224的电路的框图。如上所述,本发明的实施例还可以在利用有效地址访问统一的L1缓存116或者L1 I缓存222的情况下使用。在一个实施例中,L1 D缓存224可以包括多个存储体(bank),诸如BANK0 502和BANK1 504。L1 D缓存224还可以包括多个端口,它们可以用于例如根据应用到L1 D缓存224的载入-存储有效地址(LS0、LS1、LS2和LS3)来读取两个四字(quadruple words)或者四个双字(DW0、DW1、DW0’和DW1’)。L1 D缓存224可以是直接映射的、组关联的或者全关联的缓存。
在一个实施例中,D缓存目录225可以用于访问L1 D缓存224。例如,用于被请求数据的有效地址EA可以提供给目录225。目录225也可以是直接映射的、组关联的或者全关联的缓存。在目录225是关联的情况下,有效地址的一部分(EA SEL)可以由用于目录225的选择电路510使用来访问关于被请求数据的信息。如果目录225不包含对应于被请求数据的有效地址的条目,则目录225可以声明丢失信号,该信号可以用来例如向缓存体系的更高级缓存请求数据(例如,从L2缓存112或者从***存储器102)。但是,如果目录225确实包含对应于被请求数据的有效地址的条目,则目录可以由L1 D缓存224的选择电路506和508使用来提供被请求数据。
在本发明的一个实施例中,L1缓存116、L1 D缓存224和/或L1 I缓存222还可以使用分离的缓存目录进行访问。例如,通过分离地访问缓存目录,可以更快地执行对目录的访问,从而在访问缓存存储器***时改善处理器110的性能。尽管以上针对利用有效地址访问存储器进行了描述,但是分离的缓存目录可以与任何缓存器级别(例如,L1、L2等)一起使用,其中这些缓存器可以用任何类型的地址(例如,真实地址或者有效地址)进行访问。
图6是示出了根据本发明一个实施例的、用于使用分离目录访问缓存的处理600的流程图。处理600可以在步骤602处开始,其中接收访问缓存的请求。该请求可以包括将要访问的地址的地址(例如,真实地址或者有效地址)。在步骤604,地址的第一部分(例如,高位比特,或者可选地,低位比特)可以用于执行对用于缓存的第一目录的访问。由于第一目录可以利用地址的一部分进行访问,所以可以减小第一目录的大小,从而允许比较大目录更快地访问第一目录。
在步骤620,可以确定第一目录是否包括与被请求数据的地址的第一部分对应的条目。如果确定目录不包括用于第一部分的条目,则可以在步骤624处声明指示缓存丢失的第一信号。响应于检测到指示缓存丢失的第一信号,可以在步骤628处向缓存存储器的更高级缓存发送取回被请求数据的请求。如上所述,由于第一目录较小并且可以比较大目录更快速地被访问,所以可以更快速地确定是否声明指示缓存丢失的第一信号以及是否开始从更高级别的缓存取回存储器。由于用于第一目录的较短访问时间,可以将第一信号称为早期丢失信号。
如果第一目录确实包括用于第一部分的条目,则可以使用在步骤608处对第一目录的访问结果来选择来自缓存的数据。如上所述,由于第一目录较小并且可以比较大目录更快速地被访问,所以对来自缓存的数据的选择可以更快速地执行。因此,可以比利用较大统一目录的***中更快速地完成缓存访问。
在某些情况下,由于使用地址的一部分(例如,地址的高位比特)对来自缓存的数据进行选择,所以从缓存选择的数据可能与正在执行的程序所请求的数据不匹配。例如,两个地址可以具有相同的高位比特,而低位比特可以不同。如果被选择的数据具有与所请求数据地址的低位比特不同的低位比特的地址,则被选择的数据可能与被请求数据不匹配。因此,在某些情况下,对来自缓存的数据的选择可以认为是不确定的,因为所选择的数据是被请求数据只是存在很大的概率,但也不是绝对地确定。
在一个实施例中,用于缓存的第二目录可以用来验证是否已经从缓存选择出了正确的数据。例如,可以在步骤610利用地址的第二部分访问第二目录。在步骤622,确定第二目录是否包括与该地址的第二部分对应的条目,其中该条目与来自第一目录的条目相匹配。例如,第一目录和第二目录中的条目可以具有附加的标签,或者可以存储在每个目录中的相应位置,从而指示这些条目对应于单个匹配的地址,其中该地址包括地址的第一部分和地址的第二部分。
如果第二目录不包括对应于地址第二部分的匹配条目,则可以在步骤626处声明指示缓存丢失的第二信号。由于即使在未声明上述第一信号时也可以声明第二信号,所以第二信号可以称为后期缓存丢失信号。可以在步骤628处使用第二信号来发送从较高级别缓存存储器(诸如L2缓存112)取回被请求数据的请求。第二信号还可以用于防止将错误选择的数据存储到另一存储器位置中、存储在寄存器中,或者在操作中使用。被请求数据可以在步骤630处从较高级别缓存存储器提供。
如果第二目录确实包括对应于地址第二部分的匹配条目,则可以在步骤614处声明第三信号。第三信号可以验证使用第一目录选择的数据与被请求数据相匹配。在步骤616处,针对缓存访问请求的所选择数据可以从缓存提供。例如,所选择的数据可以在算术操作中使用、存储到另一存储器地址,或者存储到寄存器中。
关于图6中示出的以及以上描述的处理600的步骤,所提供的顺序仅仅是示例性的。通常,可以以任何合适的顺序执行步骤。例如,关于提供所选择的数据(例如,用于在后续操作中使用),所选择的数据可以在访问完第一目录之后但是在第二目录验证该选择之前提供。如果第二目录指示所选择并提供的数据不是被请求数据,则可以采取后续步骤来取消利用推测选择的数据执行的任何动作,如本领域普通技术人员所知。而且,在某些情况下,第二目录可以在第一目录之前被访问。
在某些情况下,如上所述,多个地址可以具有相同的高位比特或者低位比特。因此,第一目录可以具有与地址的给定部分(例如,高位比特或者低位比特,这取决于第一目录和第二目录如何配置)匹配的多个条目。在一个实施例中,在第一目录包括与用于被请求数据的地址的给定部分相匹配的多个条目的情况下,可以选择来自第一目录的条目中的一个并用其从缓存选择数据。例如,第一目录中最近最多使用的多个条目可以用来从缓存选择数据。然后,可以在稍后验证该选择以确定是否使用了用于被请求数据的地址的正确条目。
如果对第一目录的条目选择是错误的,则可以使用一个或多个其他条目来从缓存选择数据并且确定该一个或多个其他条目是否与用于被请求数据的地址相匹配。如果第一目录中的其他条目之一与用于被请求数据的地址相匹配并且还利用来自第二目录的相应条目进行了验证,则所选择的数据可以在后续操作中使用。如果第一目录中没有条目与第二目录中的条目相匹配,则可以用信号通知缓存丢失并且可以从缓存存储器体系的更高级别取回数据。
图7是示出了根据本发明一个实施例、包括第一D缓存目录704和第二D缓存目录712的分离缓存目录。在一个实施例中,第一D缓存目录702可以用有效地址的高位比特(EA高)进行访问,而第二D缓存目录712可以利用有效地址的低位比特(EA低)进行访问。如上所述,实施例还可以在使用真实地址访问第一和第二D缓存目录702、712的情况下使用。第一和第二D缓存目录702、712还可以是直接映射的、组关联的或者全关联的。目录702、712可以包括选择电路704、714,该电路用于从各个目录702、712选择数据条目。
如上所述,在访问L1D缓存224期间,用于访问的地址的第一部分(EA高)可以用于访问第一D缓存目录702。如果第一D缓存目录702包括对应于地址的条目,则该条目可以用来经由选择电路506、508访问L1 D缓存224。如果第一D缓存目录702不包括对应于地址的条目,则可以如上所述声明称为早期丢失信号的丢失信号。早期丢失信号可以用来例如发起从缓存存储器体系的较高级别的取回和/或产生表示缓存丢失的异常。
在访问期间,用于访问的地址的第二部分(EA低)可以用来访问第二D缓存目录712。对应于该地址的、来自于第二D缓存目录712的任何条目可以使用比较电路720与来自第一D缓存目录720的条目相比较。如果第二D缓存目录712不包括对应于该地址的条目,或者如果来自第二D缓存目录712的条目与来自第一D缓存目录702的条目不匹配,则可以声明称为后期丢失信号的丢失信号。但是,如果第二D缓存目录712确实包括对应于该地址的条目以及如果来自第二D缓存目录712的条目与来自第一D缓存目录702的条目确实匹配,则可以声明称为选择确认信号的信号,该信号指示从L1缓存224选择的数据确实对应于被请求数据的地址。
图8是示出了根据本发明一个实施例的缓存访问电路的框图。如上所述,在被请求数据不位于L1缓存116中的情况下,可以向L2缓存112发送对数据的请求。而且,在某些情况下,处理器110可以被配置以将指令预取到L1缓存116中,例如基于处理器110正在执行的程序的预定执行路径进行预取。因此,L2缓存112还可以接收对将要被预取并且将被置于L1缓存116中的数据的请求。
在一个实施例中,对来自L2缓存112的数据的请求可以由L2缓存访问电路210接收。如上所述,在本发明的一个实施例中,处理器内核114以及L1缓存116可以被配置以使用用于数据的有效地址来访问数据,而L2缓存112可以使用数据的真实地址进行访问。因此,L2缓存访问电路210可以包括地址转换控制电路806,其可以被配置以将从内核114接收的有效地址转换成真实地址。例如,地址转换控制电路可以使用在分段后备缓冲器802和/或转换后备缓冲器804中的条目来进行此转换。在地址转换控制电路806已经将接收的有效地址转换成真实地址后,真实地址可以被用来访问L2缓存112。
如上所述,在本发明的一个实施例中,为了确保处理器内核114正在执行的线程在使用数据的有效地址的同时访问正确的数据,处理器110可以确保L1缓存116中的每个有效数据线由SLB 802和/或TLS 804中的有效条目进行映射。因此,在后备缓冲器802、804中的一个中除去条目或者使之无效时,地址转换控制电路806可以被配置以从各个后备缓冲器802、804提供线的有效地址(无效EA)以及无效信号,该信号指示如果存在数据线的话,应该将其从L1缓存116和/或L1缓存目录(例如,从I缓存目录223和/或D缓存目录225)中移除。
在一个实施例中,由于处理器110可以包括多个内核114,它们不使用地址转换以用于访问各个L1缓存116,所以在内核114执行地址转换时会出现的能量消耗将会减小。而且,地址转换控制电路806和其他L2缓存访问电路210可以由每个内核114共享以用于执行地址转换,从而在L2缓存访问电路210消耗的芯片空间方面(例如,在L2缓存112与内核114位于同一芯片的情况下)减小了开销。
在一个实施例中,处理器110的内核114共享的嵌套216中的L2缓存访问电路210和/或其他电路可以以低于内核114频率的频率进行操作。因此,例如,嵌套216中的电路可以使用第一时钟信号来执行操作,而内核114中的电路可以使用第二时钟信号来执行操作。第一时钟信号可以具有比第二时钟信号的频率低的频率。通过以比内核114中的电路的频率低的频率操作嵌套216中共享的电路,可以减小处理器110的功率消耗。而且,尽管操作嵌套216中的电路会增加L2缓存访问次数,但是访问时间总的增加与用于L2缓存112的典型总访问时间相比相对较小。
图9是示出了根据本发明一个实施例的、用于使用缓存访问电路210来访问L2缓存112的处理900的框图。处理900开始于步骤902,其中请求取回来自于L2缓存112的被请求数据。请求可以包括用于被请求数据的有效地址。在步骤904,可以确定后备缓冲器(例如,SLB 803和/或TLB 804)是否包括用于被请求数据的有效地址的条目。
在步骤904处,可以确定后备缓冲器802、804是否包括用于被请求数据的有效地址的第一页表条目。如果后备缓冲器802、804确实包括用于被请求数据的有效地址的页表条目,则在步骤920处,第一页表条目可以用于将有效地址转换成真实地址。但是,如果后备缓冲器802、804确实包括用于被请求数据的有效地址的页表条目,则在步骤906处,可以例如从***存储器102中的页表取回第一页表条目。
在某些情况下,当从***102取回新的页表条目并将其置于后备缓冲器802、804中时,新的页表条目可以取代后备缓冲器802、804中的旧条目。因此,当旧页表条目被取代时,L1缓存116中任何对应于被替换的条目的缓存线可以从L1缓存116移除以确保访问L1缓存116的程序能够访问正确的数据。这样,在步骤908处,第二页表条目可以由取回的第一页表条目进行替换。
在步骤910处,第二页表条目的有效地址可以提供至L1缓存116,指示任何对应于第二页表条目的数据应当从L1缓存116中冲洗掉和/或被无效。如上所述,通过将在TLB 804和/或SLB 802中未被映射的L1缓存线冲洗掉和/或无效掉,可以防止处理器内核114正在执行的程序用有效地址无意中访问到不正确的数据。在某些情况下,页表条目可以称为多个L1缓存线。而且,在某些情况下,单个SLB条目可以称为包括多个L1缓存线的多个页面。在这种情况下,将要从L1缓存移除的页面的指示可以发送到处理器内核114并且可以从L1缓存116移除对应于每个被指示页面的每个缓存线。而且,在利用L1缓存目录(或者分离缓存目录)的情况下,L1缓存目录中任何对应于被指示页面的条目也可以被移除。在步骤920处,当第一页表条目位于后备缓冲器802、804中时,第一页表条目可以用来将被请求数据的有效地址转换成真实地址。然后,在步骤922处,通过转换获取的真实地址可以用来访问L2缓存112。
通常,以上描述的本发明的实施例可以与具有任意数量处理器内核的任何类型的处理器一起使用。在使用多个处理器内核114的情况下,L2缓存访问电路210可以为每个处理器内核114提供地址转换。因此,当从TLB 804或者SLB 802将条目移除时,可以将信号发送至用于处理器内核114的每个L1缓存116,该信号指示任何相应的缓存线应当从L1缓存116移除。
虽然前述说明针对的是本发明的实施例,然而在不偏离本发明的基本范围的情况下,可以设想出本发明的其它和进一步的实施例,并且本发明的范围由所附权利要求来定义。
Claims (20)
1.一种访问处理器中缓存存储器的方法,该方法包括:
使用被请求数据的被请求有效地址来访问该处理器的一个或多个一级缓存中的该被请求数据;
如果该处理器的一个或多个一级缓存不包含对应于该被请求有效地址的被请求数据,则将该被请求有效地址转换成真实地址,其中后备缓冲器包括针对该处理器的一个或多个一级缓存的每个中的每个缓存线的相应条目,其中该相应条目指示从该有效地址到该缓存线的真实地址的转换;以及
使用经过转换的真实地址来访问二级缓存。
2.如权利要求1的方法,其中使用转换后备缓冲器将被请求有效地址转换成该真实地址。
3.如权利要求1的方法,其中使用分段后备缓冲器将被请求有效地址转换成该真实地址。
4.如权利要求1的方法,其中该后备缓冲器被配置以将存储在主存储器中的页表的一部分进行缓存。
5.如权利要求4的方法,其中,当页表条目从该后备缓冲器中移除时,使该处理器的一个或多个一级缓存中的任何相应数据不可经由该一个或多个一级缓存来访问,其中使该数据不可访问包括以下中的至少一个:使在该一个或多个一级缓存中的数据无效和冲洗掉该一个或多个一级缓存中的数据。
6.如权利要求4的方法,其中,当从后备缓冲器移除页表条目时,从该目录移除用于该处理器的一个或多个一级缓存的任何目录中的任何相应条目。
7.如权利要求1的方法,其中该二级缓存包括在与该处理器相同的芯片上。
8.一种处理器,包括:
一个或多个一级缓存;
二级缓存;
后备缓冲器;以及
电路,其被配置以:
使用被请求数据的被请求有效地址来访问该处理器的一个或多个一级缓存中的被请求数据;
如果该处理器的一个或多个一级缓存不包含对应于该被请求有效地址的被请求数据,则将该被请求有效地址转换成真实地址,其中该后备缓冲器包括针对该处理器的一个或多个一级缓存的每个中的每个缓存线的相应条目,其中该相应条目指示从该有效地址到该缓存线的真实地址的转换;以及
使用经过转换的真实地址来访问二级缓存。
9.如权利要求8的处理器,其中转换后备缓冲器用于将被请求有效地址转换成该真实地址。
10.如权利要求8的处理器,其中分段后备缓冲器用于将被请求有效地址转换成该真实地址。
11.如权利要求8的处理器,其中该后备缓冲器被配置以将存储在主存储器中的页表的一部分进行缓存。
12.如权利要求11的处理器,其中,当从该后备缓冲器中移除页表条目时,使该处理器的一个或多个一级缓存中的任何相应数据不可经由该一个或多个一级缓存来访问,其中使该数据不可访问包括以下中的至少一个:使在该一个或多个一级缓存中的数据无效和冲洗掉该一个或多个一级缓存中的数据。
13.如权利要求11的处理器,其中,当从后备缓冲器移除页表条目时,用于该处理器的一个或多个一级缓存的任何目录中的任何相应条目从该目录移除。
14.一种***,包括:
二级缓存;和
处理器,所述处理器包括:
一个或多个一级缓存;
后备缓冲器,其被配置以包括置于该处理器的一个或多个一级缓存的每一个中的每个缓存线的相应条目,其中该相应条目指示从该有效地址到该缓存线的真实地址的转换;以及
电路,所述电路被配置以:
使用被请求数据的被请求有效地址来访问该处理器的一个或多个一级缓存中的被请求数据;
如果处理器的一个或多个一级缓存不包含对应于被请求有效地址的被请求数据,则被请求有效地址被转换成真实地址;以及
使用经过转换的真实地址来访问二级缓存。
15.如权利要求14的***,其中转换后备缓冲器用于将被请求有效地址转换成该真实地址。
16.如权利要求14的***,其中分段后备缓冲器用于将被请求有效地址转换成该真实地址。
17.如权利要求14的***,其中该后备缓冲器被配置以将存储在主存储器中的页表的一部分进行缓存。
18.如权利要求17的***,其中,当从该后备缓冲器中移除页表条目时,使该处理器的一个或多个一级缓存中的任何相应数据不可经由该一个或多个一级缓存来访问,其中使该数据不可访问包括以下中的至少一个:使在该一个或多个一级缓存中的数据无效和冲洗掉该一个或多个一级缓存中的数据。
19.如权利要求17的***,其中,当从后备缓冲器移除页表条目时,用于该处理器的一个或多个一级缓存的任何目录中的任何相应条目从该目录移除。
20.如权利要求14的***,其中该二级缓存包括在与该处理器相同的芯片上。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/769,978 | 2007-06-28 | ||
US11/769,978 US20090006803A1 (en) | 2007-06-28 | 2007-06-28 | L2 Cache/Nest Address Translation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101334759A true CN101334759A (zh) | 2008-12-31 |
Family
ID=40162159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101319235A Pending CN101334759A (zh) | 2007-06-28 | 2008-06-27 | 访问处理器缓存的方法和*** |
Country Status (2)
Country | Link |
---|---|
US (1) | US20090006803A1 (zh) |
CN (1) | CN101334759A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102169464A (zh) * | 2010-11-30 | 2011-08-31 | 北京握奇数据***有限公司 | 一种用于非易失性存储器的缓存方法、装置及智能卡 |
CN102341794A (zh) * | 2009-03-03 | 2012-02-01 | 高通股份有限公司 | 可配置高速缓冲存储器及其配置方法 |
CN104572528A (zh) * | 2015-01-27 | 2015-04-29 | 东南大学 | 一种二级Cache对访问请求的处理方法及*** |
CN106649143A (zh) * | 2015-10-29 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种访问缓存的方法、装置及电子设备 |
CN107766259A (zh) * | 2016-08-23 | 2018-03-06 | 华为技术有限公司 | 页表缓存的访问方法、页表缓存、处理器芯片和存储单元 |
WO2022222377A1 (zh) * | 2021-04-23 | 2022-10-27 | 华为技术有限公司 | 一种内存控制器、数据读取方法以及内存*** |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7937530B2 (en) * | 2007-06-28 | 2011-05-03 | International Business Machines Corporation | Method and apparatus for accessing a cache with an effective address |
US20090006753A1 (en) * | 2007-06-28 | 2009-01-01 | David Arnold Luick | Design structure for accessing a cache with an effective address |
US20090006754A1 (en) * | 2007-06-28 | 2009-01-01 | Luick David A | Design structure for l2 cache/nest address translation |
US7987384B2 (en) * | 2008-02-12 | 2011-07-26 | International Business Machines Corporation | Method, system, and computer program product for handling errors in a cache without processor core recovery |
US8332587B2 (en) * | 2009-05-28 | 2012-12-11 | International Business Machines Corporation | Cache line use history based done bit modification to I-cache replacement scheme |
US8171224B2 (en) * | 2009-05-28 | 2012-05-01 | International Business Machines Corporation | D-cache line use history based done bit based on successful prefetchable counter |
US8140760B2 (en) * | 2009-05-28 | 2012-03-20 | International Business Machines Corporation | I-cache line use history based done bit based on successful prefetchable counter |
US8291169B2 (en) * | 2009-05-28 | 2012-10-16 | International Business Machines Corporation | Cache line use history based done bit modification to D-cache replacement scheme |
GB2507759A (en) | 2012-11-08 | 2014-05-14 | Ibm | Hierarchical cache with a first level data cache which can access a second level instruction cache or a third level unified cache |
GB2507758A (en) | 2012-11-08 | 2014-05-14 | Ibm | Cache hierarchy with first and second level instruction and data caches and a third level unified cache |
CN103226508A (zh) * | 2013-04-17 | 2013-07-31 | 上海新储集成电路有限公司 | 一种表征微控制器内核工作负载情况的方法 |
US9645934B2 (en) * | 2013-09-13 | 2017-05-09 | Samsung Electronics Co., Ltd. | System-on-chip and address translation method thereof using a translation lookaside buffer and a prefetch buffer |
JP6088951B2 (ja) | 2013-09-20 | 2017-03-01 | 株式会社東芝 | キャッシュメモリシステムおよびプロセッサシステム |
US11106600B2 (en) * | 2019-01-24 | 2021-08-31 | Advanced Micro Devices, Inc. | Cache replacement based on translation lookaside buffer evictions |
US11507519B2 (en) | 2019-01-24 | 2022-11-22 | Advanced Micro Devices, Inc. | Data compression and encryption based on translation lookaside buffer evictions |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6230260B1 (en) * | 1998-09-01 | 2001-05-08 | International Business Machines Corporation | Circuit arrangement and method of speculative instruction execution utilizing instruction history caching |
US6311253B1 (en) * | 1999-06-21 | 2001-10-30 | International Business Machines Corporation | Methods for caching cache tags |
US6871273B1 (en) * | 2000-06-22 | 2005-03-22 | International Business Machines Corporation | Processor and method of executing a load instruction that dynamically bifurcate a load instruction into separately executable prefetch and register operations |
US6581140B1 (en) * | 2000-07-03 | 2003-06-17 | Motorola, Inc. | Method and apparatus for improving access time in set-associative cache systems |
US7039768B2 (en) * | 2003-04-25 | 2006-05-02 | International Business Machines Corporation | Cache predictor for simultaneous multi-threaded processor system supporting multiple transactions |
US7039762B2 (en) * | 2003-05-12 | 2006-05-02 | International Business Machines Corporation | Parallel cache interleave accesses with address-sliced directories |
US7284112B2 (en) * | 2005-01-14 | 2007-10-16 | International Business Machines Corporation | Multiple page size address translation incorporating page size prediction |
US8135910B2 (en) * | 2005-02-11 | 2012-03-13 | International Business Machines Corporation | Bandwidth of a cache directory by slicing the cache directory into two smaller cache directories and replicating snooping logic for each sliced cache directory |
US7536513B2 (en) * | 2005-03-31 | 2009-05-19 | International Business Machines Corporation | Data processing system, cache system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state |
US7363463B2 (en) * | 2005-05-13 | 2008-04-22 | Microsoft Corporation | Method and system for caching address translations from multiple address spaces in virtual machines |
US7555605B2 (en) * | 2006-09-28 | 2009-06-30 | Freescale Semiconductor, Inc. | Data processing system having cache memory debugging support and method therefor |
US7937530B2 (en) * | 2007-06-28 | 2011-05-03 | International Business Machines Corporation | Method and apparatus for accessing a cache with an effective address |
US7680985B2 (en) * | 2007-06-28 | 2010-03-16 | International Business Machines Corporation | Method and apparatus for accessing a split cache directory |
US20090006753A1 (en) * | 2007-06-28 | 2009-01-01 | David Arnold Luick | Design structure for accessing a cache with an effective address |
US20090006754A1 (en) * | 2007-06-28 | 2009-01-01 | Luick David A | Design structure for l2 cache/nest address translation |
-
2007
- 2007-06-28 US US11/769,978 patent/US20090006803A1/en not_active Abandoned
-
2008
- 2008-06-27 CN CNA2008101319235A patent/CN101334759A/zh active Pending
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598395A (zh) * | 2009-03-03 | 2015-05-06 | 高通股份有限公司 | 可配置高速缓冲存储器及其配置方法 |
US8943293B2 (en) | 2009-03-03 | 2015-01-27 | Qualcomm Incorporated | Configurable cache and method to configure same |
CN104572503B (zh) * | 2009-03-03 | 2018-07-03 | 高通股份有限公司 | 可配置高速缓冲存储器及其配置方法 |
US8719503B2 (en) | 2009-03-03 | 2014-05-06 | Qualcomm Incorporated | Configurable cache and method to configure same |
TWI548992B (zh) * | 2009-03-03 | 2016-09-11 | 高通公司 | 用於快取記憶體組態之方法、裝置及非暫態電腦可讀媒體 |
CN102341794B (zh) * | 2009-03-03 | 2015-02-11 | 高通股份有限公司 | 可配置高速缓冲存储器及其配置方法 |
CN104572503A (zh) * | 2009-03-03 | 2015-04-29 | 高通股份有限公司 | 可配置高速缓冲存储器及其配置方法 |
CN104598395B (zh) * | 2009-03-03 | 2017-10-31 | 高通股份有限公司 | 可配置高速缓冲存储器及其配置方法 |
CN102341794A (zh) * | 2009-03-03 | 2012-02-01 | 高通股份有限公司 | 可配置高速缓冲存储器及其配置方法 |
CN102169464B (zh) * | 2010-11-30 | 2013-01-30 | 北京握奇数据***有限公司 | 一种用于非易失性存储器的缓存方法、装置及智能卡 |
CN102169464A (zh) * | 2010-11-30 | 2011-08-31 | 北京握奇数据***有限公司 | 一种用于非易失性存储器的缓存方法、装置及智能卡 |
CN104572528A (zh) * | 2015-01-27 | 2015-04-29 | 东南大学 | 一种二级Cache对访问请求的处理方法及*** |
CN106649143A (zh) * | 2015-10-29 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种访问缓存的方法、装置及电子设备 |
CN106649143B (zh) * | 2015-10-29 | 2020-06-26 | 阿里巴巴集团控股有限公司 | 一种访问缓存的方法、装置及电子设备 |
CN107766259A (zh) * | 2016-08-23 | 2018-03-06 | 华为技术有限公司 | 页表缓存的访问方法、页表缓存、处理器芯片和存储单元 |
CN107766259B (zh) * | 2016-08-23 | 2021-08-20 | 华为技术有限公司 | 页表缓存的访问方法、页表缓存、处理器芯片和存储单元 |
WO2022222377A1 (zh) * | 2021-04-23 | 2022-10-27 | 华为技术有限公司 | 一种内存控制器、数据读取方法以及内存*** |
Also Published As
Publication number | Publication date |
---|---|
US20090006803A1 (en) | 2009-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101334759A (zh) | 访问处理器缓存的方法和*** | |
KR102244191B1 (ko) | 캐시 및 변환 색인 버퍼를 갖는 데이터 처리장치 | |
KR101493017B1 (ko) | 계층적 마이크로코드 저장소를 구비한 복수 코어 프로세서 | |
JP3412575B2 (ja) | 命令履歴キャッシングを使用して推測的に命令を実行する回路、データ処理システム、およびそのための方法 | |
CN103324585B (zh) | 分级缓存的处理器中的协作预取处理 | |
KR101614867B1 (ko) | 데이터 스트림에 대한 저장 인식 프리페치 | |
CN104756090B (zh) | 提供扩展的缓存替换状态信息 | |
US7680985B2 (en) | Method and apparatus for accessing a split cache directory | |
US9734059B2 (en) | Methods and apparatus for data cache way prediction based on classification as stack data | |
US7937530B2 (en) | Method and apparatus for accessing a cache with an effective address | |
TW201234263A (en) | CPU in memory cache architecture | |
TWI514156B (zh) | 推測式快取修改技術 | |
US8335908B2 (en) | Data processing apparatus for storing address translations | |
KR102268601B1 (ko) | 데이터 포워딩을 위한 프로세서, 그것의 동작 방법 및 그것을 포함하는 시스템 | |
CN105814548A (zh) | 具有使用不同编索引方案的主高速缓存器和溢出高速缓存器的高速缓存器*** | |
US20100312968A1 (en) | Arithmetic processing apparatus and method of controlling the same | |
JP6088951B2 (ja) | キャッシュメモリシステムおよびプロセッサシステム | |
US11301250B2 (en) | Data prefetching auxiliary circuit, data prefetching method, and microprocessor | |
CN112579175B (zh) | 分支预测方法、分支预测装置和处理器核 | |
JP2009009571A (ja) | レベル2キャッシュ/ネスト・アドレスを変換する方法および装置 | |
CN107992331A (zh) | 处理器及操作处理器的方法 | |
CN105027137B (zh) | 用于针对增强型安全检查的页走查扩展的装置和方法 | |
CN105814549A (zh) | 具有主高速缓存器和溢出fifo高速缓存器的高速缓存器*** | |
JPWO2004031943A1 (ja) | データプロセッサ | |
Zhang et al. | Fuse: Fusing stt-mram into gpus to alleviate off-chip memory access overheads |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20081231 |