CN104025061B - 用于对到物理标记的数据高速缓存的业务进行滤波的方法 - Google Patents
用于对到物理标记的数据高速缓存的业务进行滤波的方法 Download PDFInfo
- Publication number
- CN104025061B CN104025061B CN201380004686.5A CN201380004686A CN104025061B CN 104025061 B CN104025061 B CN 104025061B CN 201380004686 A CN201380004686 A CN 201380004686A CN 104025061 B CN104025061 B CN 104025061B
- Authority
- CN
- China
- Prior art keywords
- mark array
- array
- data
- described virtual
- address
- 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.)
- Expired - Fee Related
Links
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/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
- G06F12/1054—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
-
- 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/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- 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
-
- 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
- G06F12/1063—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
本发明揭示数据高速缓存的实施例,其实质性减少对所述数据高速缓存的物理标记的标记阵列的存取次数。总的来说,所述数据高速缓存包含存储数据元素的数据阵列、物理标记的标记阵列和虚拟标记的标记阵列。在一个实施例中,所述虚拟标记的标记阵列接收虚拟地址。如果在所述虚拟标记的标记阵列中存在对于所述虚拟地址的匹配,那么所述虚拟标记的标记阵列向所述数据阵列输出针对所述虚拟地址在所述虚拟标记的标记阵列中存储的道。此外,在一个实施例中,所述虚拟标记的标记阵列停用所述物理标记的标记阵列。使用所述虚拟标记的标记阵列输出的所述道,寻址所述数据阵列中的期望数据元素。
Description
优先权主张
本申请主张2012年1月17日申请的名称为“用于对到物理标记的数据高速缓存的业务进行滤波的方法(METHODFORFILTERINGTRAFFICTOAPHYSICALLY-TAGGEDDATACACHE)”的第61/587,140号美国专利临时申请案的优先权,所述申请案以全文引用的方式并入本文中。
技术领域
本发明涉及一种数据高速缓存。
背景技术
许多现代的微处理器利用虚拟寻址的高速缓存。为了使用虚拟寻址的高速缓存,通常执行将虚拟地址翻译成对应的物理地址。这个翻译本质上是将另一级添加到指令管线,这又会降低微处理器的性能。
此外,响应于对于移动装置的较长电池寿命的增加的需求,微处理器的功率曲线变得越来越至关重要。存储单元内的功率利用的最大组成部分中的一个是在操作沿着指令管线移动时针对每一操作搜索物理标记的标记阵列。对于物理标记的标记阵列的这个搜索是必需的,这样才能够直接从指令管线收回负载,使得平均负载使用损失尽可能低。问题在于,与存取物理标记的标记阵列(其通常是大型结构)相关联的功率非常大。
因此,需要一种数据高速缓存和其操作方法,其使得指令管线能够实现相同性能,同时限制对物理标记的标记阵列的存取次数。
发明内容
揭示数据高速缓存的实施例,其实质性减少对数据高速缓存的物理标记的标记阵列的存取次数。总的来说,所述数据高速缓存包含存储数据元素的数据阵列、物理标记的标记阵列和虚拟标记的标记阵列。在一个实施例中,所述虚拟标记的标记阵列接收虚拟地址。如果在所述虚拟标记的标记阵列中存在对于所述虚拟地址的匹配,那么所述虚拟标记的标记阵列向所述数据阵列输出所述虚拟标记的标记阵列针对所述虚拟地址存储的道。此外,在一个实施例中,所述虚拟标记的标记阵列停用所述物理标记的标记阵列。以此方式,无需存取物理标记的标记阵列就获得所述道。使用所述虚拟标记的标记阵列输出的所述道,寻址所述数据阵列中的期望数据元素。相比之下,如果在所述虚拟标记的标记阵列中不存在对于虚拟地址的匹配,那么向物理标记的标记阵列提供从将虚拟地址翻译成物理地址获得的物理地址,并且物理标记的标记阵列输出在物理标记的标记阵列中针对所述物理地址存储的道。用从所述虚拟地址获得的索引和从所述虚拟标记的标记阵列获得的道寻址数据阵列中的期望数据元素。
通过在虚拟地址与虚拟标记的标记阵列中的标记之间存在匹配时从虚拟标记的标记阵列获得所述道,无需存取物理标记的标记阵列即获得所述道。因此,通过实际上减少数据高速缓存中的级的数目而改善性能。此外,在当虚拟地址与虚拟标记的标记阵列中的标记之间存在匹配时停用物理标记的标记阵列的实施例中,减少数据高速缓存的功率消耗。
附图说明
图1说明根据本发明的一个实施例的包含虚拟标记的标记阵列的数据高速缓存;
图2说明图1的数据高速缓存的数据阵列的一个实例,其中根据本发明的一个实施例数据阵列被实施为组关联存储器结构;以及
图3说明可以采用图1的数据高速缓存的基于处理器的系统的一个实例。
具体实施方式
现在参看各图,描述了本发明的几个示范性实施例。词语“示范性”在本文中用于意味着“充当实例、例子或说明”。在本文中被描述为“示范性”的任何实施例未必被解释为比其它实施例优选或有利。
揭示数据高速缓存的实施例,其实质性减少对数据高速缓存的物理标记的标记阵列的存取次数。如下文所论述,通过减少对物理标记的标记阵列的存取次数,数据高速缓存的性能得到提高,而数据高速缓存的功率消耗减少。图1说明根据本发明的数据高速缓存10的一个实施例。总的来说,数据高速缓存10包含数据阵列12、翻译电路14、虚拟标记的微型标记阵列16和物理标记的标记阵列18,其如图所示连接起来。数据阵列12存储多个数据元素(例如,多个64字节数据元素)。此外,数据阵列12是组关联性的,使得对于数据阵列12的每一索引或组,数据阵列12包含多个“道”,其各自存储一个单独的数据元素,如图2中所说明。因而,对于数据阵列12的每一索引,数据阵列12存储N-1个数据元素,其中N-1是数据阵列12中的道的数目。举例来说,如果数据阵列12是四道组关联性的,那么数据阵列12包含四个道,其各自存储用于到数据阵列12中的每一索引或组的一个单独的数据元素。因而,索引和道两者都用于寻址数据阵列12中的特定数据元素。
翻译电路14操作以使用已知的虚拟地址到物理地址翻译技术将输入到数据高速缓存10的虚拟地址翻译成物理地址。虚拟标记的微型标记阵列16可以使用例如(举例来说)组关联存储器结构、完全关联存储器结构或直接映射存储器结构等任何期望的存储器结构实施。虚拟标记的微型标记阵列16的大小优选实质性小于物理标记的标记阵列18的大小。但是,虚拟标记的微型标记阵列16的大小不限于此。举例来说,虚拟标记的微型标记阵列16的大小可以替代地等于物理标记的标记阵列18的大小。虚拟标记的微型标记阵列16存储多个虚拟标记的道值。物理标记的标记阵列18也可以使用例如(举例来说)组关联存储器结构、完全关联存储器结构或直接映射存储器结构等任何期望的存储器结构实施。物理标记的标记阵列18存储多个物理标记的道值。
在操作中,当数据元素或数据元素的一部分写入到数据阵列12时,将对应的道值与对应虚拟标记相关联存储在虚拟标记的微型标记阵列16中。以类似方式,将对应道值与对应物理标记相关联存储在物理标记的标记阵列18中。将道值存储在虚拟标记的微型标记阵列16和物理标记的标记阵列18中的确切方式取决于虚拟标记的微型标记阵列16和物理标记的标记阵列18的结构。这个过程随着新数据元素或数据元素的一些部分写入到数据阵列12而重复。
当要从数据高速缓存10中读出数据元素或以其它方式寻址数据元素时,数据高速缓存10从(举例来说)微处理器的指令管线接收虚拟地址(VA)。响应于接收到虚拟地址,翻译电路14使用已知的虚拟地址到物理地址转换技术将虚拟地址翻译成物理地址。在翻译电路14执行翻译的同时,虚拟标记的微型标记阵列16确定虚拟标记的微型标记阵列16中是否存在对于虚拟地址的匹配。虚拟标记的微型标记阵列16确定虚拟标记的微型标记阵列16中是否存在对于虚拟地址的匹配的方式将根据特定实施方案而变化。举例来说,如果虚拟标记的微型标记阵列16被实施为组关联存储器结构(例如,举例来说,内容可寻址存储器(CAM)结构),那么将虚拟地址或至少容纳在虚拟地址中的虚拟标记同时与存储在虚拟标记的微型标记阵列16中的多个虚拟标记比较,以确定在虚拟标记的微型标记阵列16中是否存在对于虚拟地址的匹配。
作为另一实例,如果虚拟标记的微型标记阵列16被实施为组关联存储器结构,那么虚拟标记的微型标记阵列16可包含多个组或索引和(用于每一组或索引的)多个道。优选地,虚拟标记的微型标记阵列16中的道的数目小于数据阵列12中的道的数目。在这个实例中,用于虚拟标记的微型标记阵列16的索引与用于数据阵列12的索引相同,并且虚拟标记的微型标记阵列16中的每一数据元素(即,每一索引与道的组合)经配置以存储虚拟标记和相关联的道。为了确定是否存在对于虚拟地址的匹配,使用虚拟地址中容纳的索引来索引虚拟标记的微型标记阵列16,并且搜索虚拟标记的微型标记阵列16中的索引的道以确定用于那些道中的任一者的虚拟标记是否与来自虚拟地址的虚拟标记匹配。如果是的话,那么存在对于虚拟地址的匹配。应注意,虚拟标记的微型标记阵列16的前述实例仅仅出于说明的目的而提供,并且并不希望限制本发明的范围。
如果在虚拟标记的微型标记阵列16中不存在对于虚拟地址的匹配,那么虚拟标记的微型标记阵列16输出未中指示符,这个未中指示符启用物理标记的标记阵列18。作为响应,物理标记的标记阵列18对来自翻译电路14的物理地址进行处理以向数据阵列12输出对应的道。物理标记的标记阵列18处理物理地址以输出对应道的方式将根据特定实施方案而变化。举例来说,如果物理标记的标记阵列18被实施为完全关联存储器结构(例如,CAM结构),那么物理标记的标记阵列18存储多个物理标记和对应道。接着将物理标记的标记阵列18中的物理标记同时与物理地址中包含的物理标记比较,以便输出与物理标记的标记阵列18中的物理标记相关联而存储的道值。作为另一实例,物理标记的标记阵列18可以实施为具有多个组或索引和用于每一组或索引的多个道的组关联存储器结构。用于物理标记的标记阵列18的索引与用于数据阵列12的索引相同,并且物理标记的标记阵列18中的每一数据元素(即,每一索引与道的组合)经配置以存储物理标记和对应道。使用容纳在物理地址中的索引来索引物理标记的标记阵列18,并且搜索用于物理标记的标记阵列18中的索引的道以寻找与来自物理地址的物理标记匹配的物理标记。接着通过物理标记的标记阵列18输出与匹配物理标记相关联存储的道值。应注意,物理标记的标记阵列18的前述实例仅仅出于说明的目的而提供,并且并不希望限制本发明的范围。
响应于从物理标记的标记阵列18接收到道,数据阵列12输出适当的数据元素。更确切地说,在一个实施例中,使用虚拟地址中包含的索引和从虚拟标记的微型标记阵列16或物理标记的标记阵列18获得的道来寻址数据阵列12中的数据元素。因而,使用来自虚拟地址的索引和物理标记的标记阵列18输出的道,数据阵列12输出通过索引和道寻址的数据元素。
在这个实施例中,如果在虚拟标记的微型标记阵列16中存在对于虚拟地址的匹配,那么虚拟标记的微型标记阵列16输出命中指示符,这个命中指示符停用物理标记的标记阵列18。此外,虚拟标记的微型标记阵列16向数据阵列12输出虚拟地址的道。同样,通过虚拟标记的微型标记阵列16输出的道是与匹配虚拟地址的虚拟标记相关联存储在虚拟标记的微型标记阵列16中的道值。响应于从虚拟标记的微型标记阵列16接收到道,数据阵列12输出适当的数据元素。更确切地说,在一个实施例中,使用虚拟地址中包含的索引和从虚拟标记的微型标记阵列16或物理标记的标记阵列18获得的道来寻址数据阵列12中的数据元素。因而,使用来自虚拟地址的索引和虚拟标记的微型标记阵列16针对虚拟地址输出的道,数据阵列12输出通过索引和道寻址的数据元素。
值得注意的是,虚拟标记的微型标记阵列16改善数据高速缓存10的性能,并且减少数据高速缓存10的功率消耗,方法是通过减少对物理标记的标记阵列18通常是大型结构)的存取次数。更确切地说,如果虚拟标记的微型标记阵列16中存在对虚拟地址的命中,那么无需存取物理标记的标记阵列18即获得道。因此,数据高速缓存10中的级的数目实际上减少为两个级。具体来说,当在虚拟标记的微型标记阵列16中存在命中时,数据高速缓存10中的级的数目是两个(即,虚拟标记的微型标记阵列16和数据阵列12)。相比之下,传统的数据高速缓存需要三个级,其对应于当虚拟标记的微型标记阵列16中不存在对虚拟地址的命中时在数据高速缓存10中利用的翻译电路14、物理标记的标记阵列18和数据阵列12。除了减少数据高速缓存10中的级的数目之外,虚拟标记的微型标记阵列16中的命中还节省了原本物理标记的标记阵列18将消耗的功率。
本文所述的数据高速缓存10提供的优点的两个实例是:提高性能和降低功率。通过使用来自虚拟标记的微型标记阵列16的道以索引到数据阵列12中而提高性能。通过当在虚拟标记的微型标记阵列16中存在命中时不启用物理标记的标记阵列18而减少功率。但是,应注意,在替代实施例中,当在虚拟标记的微型标记阵列16中存在命中时可以不停用物理标记的标记阵列18(例如,可以不提供命中指示符以停用物理标记的标记阵列18)。通过这样做,不通过停用物理标记的标记阵列18而减少功率消耗。但是,通过从虚拟标记的微型标记阵列16向数据阵列12提供道,将仍然改善性能,由此实际上减少数据高速缓存10的级的数目。
根据本文所揭示的实施例的数据高速缓存10可以在任何基于处理器的装置中提供或集成到任何基于处理器的装置中。实例包含(但不限于)机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝电话、计算机、便携式计算机、桌上型计算机、个人数字助理(PDA)、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携型音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器和便携型数字视频播放器。
在这点上,图3说明可以采用图1中所说明的数据高速缓存10的基于处理器的系统20的实例。在这个实例中,基于处理器的系统20包含一个或多个中央处理单元(CPU)22,其各自包含一个或多个处理器24。CPU22包含耦合到处理器24用于快速存取暂时存储的数据的数据高速缓存10。CPU22耦合到系统总线26,并且可以将基于处理器的系统20中包含的主装置和从属装置相互耦合。众所周知,CPU22通过经由系统总线26交换地址、控制和数据信息而与这些其它装置通信。虽然图3中未说明,但是可以提供多个系统总线26,其中每一系统总线26构成不同构造。
其它主装置和从属装置也可以连接到系统总线26。如图3中所说明,这些装置举例来说可包含存储器系统28、一个或多个输入装置30、一个或多个输出装置32、一个或多个网络接口装置34和一个或多个显示器控制器36。输入装置30可包含任何类型的输入装置,包含但不限于输入按键、开关、语音处理器等。输出装置32可包含任何类型的输出装置,包含但不限于音频、视频、其它视觉指示符等。网络接口装置34可以是经配置以允许到网络38和来自网络38的数据交换的任何装置。网络38可以是任何类型的网络,包含但不限于有线或无线网络、私用或公共网络、局域网(LAN)、广局域网(WLAN)和因特网。网络接口装置34可经配置以支持期望的任何类型的通信协议。
CPU22还可经配置以经由系统总线26存取显示器控制器36以控制发送到一个或多个显示器40的信息。显示器控制器36将信息发送到显示器40以待经由一个或多个视频处理器42显示,所述视频处理器将有待显示的信息处理成适合于显示器40的格式。显示器40可包含任何类型的显示器,包含但不限于阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器等。
所属领域的技术人员将进一步理解,结合本文所揭示的实施例描述的多种说明性逻辑块、模块、电路和算法可以实施为电子硬件、存储在存储器或另一计算机可读媒体中且通过处理器或其它处理装置执行的指令或两者的组合。本文所揭示的存储器可以是任何类型和大小的存储器,并且可经配置以存储期望的任何类型的信息。为清楚说明这个可互换性,上文已大体上关于功能性描述了各种说明性组件、块、模块、电路和步骤。如何实施此功能性取决于特定应用、设计选项和/或强加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但所述实施方案决策不应被解释为导致脱离本发明的范围。
因而,结合本文所揭示的实施例描述的各种说明性逻辑块、模块和电路可以用处理器、DSP、专用集成电路(ASIC)、FPGA或经设计以执行本文所述的功能的其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合来实施或执行。处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器的组合、一个或多个微处理器与DSP核心的联合,或任何其它此配置。
本文所揭示的实施例可以体现在硬件和存储在硬件中的指令中,并且举例来说可以驻留在随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可装卸磁盘、CD-ROM或所属领域中已知的任何其它形式的计算机可读媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息并将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器和存储媒体可驻留在ASIC中。ASIC可以驻留在远端台中。在替代方案中,处理器和存储媒体可作为离散组件驻留在远端台、基站或服务器中。
还应注意,描述本文中的示范性实施例中的任一个中描述的操作步骤是为了提供实例和论述。可以用除了所说明顺序之外的大量不同顺序执行所描述的操作。另外,在单个操作步骤中描述的操作实际上可以在多个不同步骤中执行。另外,示范性实施例中论述的一个或多个操作步骤可以组合。应理解,所属领域的技术人员将容易明白,流程图中所说明的操作步骤可以接受大量不同修改。所属领域的技术人员还将理解,可使用多种不同技艺和技术中的任一种来表示信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或者其任何组合来表示整个以上描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。
提供对本发明的先前描述以使得所属领域的技术人员能够制作或使用本发明。所属领域的技术人员将易于了解对本发明的各种修改,且本文中界定的一般原理可应用于其它变体而不脱离本发明的精神或范围。因此,本发明并不希望限于本文中所描述的实例和设计,而应被赋予与本文中所揭示的原理和新颖特征相一致的最广范围。
Claims (20)
1.一种数据高速缓存,其包括:
数据阵列;
物理标记的标记阵列;以及
虚拟标记的标记阵列,其经配置以:
接收虚拟地址;
确定所述虚拟标记的标记阵列中是否存在对于所述虚拟地址的匹配;以及
在所述虚拟标记的标记阵列中存在对于所述虚拟地址的匹配的情况下,向所述数据阵列输出所述虚拟标记的标记阵列针对所述虚拟地址存储的道且停用所述物理标记的标记阵列;以及
在所述虚拟标记的标记阵列中不存在对于所述虚拟地址的匹配的情况下,使用对应于所述虚拟地址的物理地址启用对所述物理标记的标记阵列的搜索。
2.根据权利要求1所述的数据高速缓存,其进一步包括:
翻译电路,其经配置以在所述虚拟标记的标记阵列确定在所述虚拟标记的标记阵列中是否存在对于所述虚拟地址的匹配的同时将所述虚拟地址翻译成物理地址并且向所述物理标记的标记阵列输出所述物理地址。
3.根据权利要求1所述的数据高速缓存,其中,为了启用对所述物理标记的标记阵列的所述搜索,所述虚拟标记的标记阵列经配置以在所述虚拟标记的标记阵列中不存在对于所述虚拟地址的匹配的情况下向所述物理标记的标记阵列输出未中。
4.根据权利要求3所述的数据高速缓存,其中,响应于来自所述虚拟标记的标记阵列的所述未中,所述物理标记的标记阵列经配置以:
确定所述物理标记的标记阵列中是否存在对于所述物理地址的匹配;以及
在存在匹配的情况下,输出所述物理标记的标记阵列针对所述物理地址存储的道。
5.根据权利要求4所述的数据高速缓存,其中所述数据阵列经配置以:
在所述虚拟标记的标记阵列中存在对于所述虚拟地址的匹配的情况下,从所述虚拟标记的标记阵列接收所述道,并且在所述虚拟标记的标记阵列中不存在对于所述虚拟地址的匹配但在所述物理标记的标记阵列中存在对于所述物理地址的匹配的情况下,从所述物理标记的标记阵列接收所述道;以及
响应于接收到所述道,基于所述道输出数据元素。
6.根据权利要求5所述的数据高速缓存,其中所述数据阵列是组关联的,并且为了输出所述数据元素,所述数据阵列输出通过从所述虚拟地址和所述道获得的索引寻址的数据元素。
7.根据权利要求1所述的数据高速缓存,其中所述虚拟标记的标记阵列的大小小于所述物理标记的标记阵列的大小。
8.根据权利要求1所述的数据高速缓存,其中所述虚拟标记的标记阵列的大小等于所述物理标记的标记阵列的大小。
9.根据权利要求1所述的数据高速缓存,其中所述虚拟标记的标记阵列具有选自由组关联存储器结构、完全关联存储器结构和直接映射存储器结构组成的群组的结构。
10.根据权利要求1所述的数据高速缓存,其中,当在所述虚拟标记的标记阵列中存在对于所述虚拟地址的匹配时,所述数据高速缓存的级的数目减少为由所述虚拟标记的标记阵列和所述数据阵列组成的两个级。
11.根据权利要求1所述的数据高速缓存,其中在所述虚拟标记的标记阵列中存在对于所述虚拟地址的匹配,并且响应于所述匹配,所述虚拟标记的标记阵列向所述数据阵列输出所述虚拟标记的标记阵列针对所述虚拟地址存储的所述道并且停用所述物理标记的标记阵列。
12.根据权利要求1所述的数据高速缓存,其中所述数据高速缓存是实施在半导体裸片上。
13.根据权利要求1所述的数据高速缓存,其中所述数据高速缓存集成到从由以下各项组成的群组中选出的装置中:机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝电话、计算机、便携型计算机、桌上型计算机、个人数字助理PDA、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携型音乐播放器、数字视频播放器、视频播放器、数字视频光盘DVD播放器和便携型数字视频播放器。
14.一种操作包含数据阵列、物理标记的标记阵列和虚拟标记的标记阵列的数据高速缓存的方法,其包括:
接收虚拟地址;
确定所述虚拟标记的标记阵列中是否存在对于所述虚拟地址的匹配;
在所述虚拟标记的标记阵列中存在对于所述虚拟地址的匹配的情况下,向所述数据阵列输出所述虚拟标记的标记阵列针对所述虚拟地址存储的道且停用所述物理标记的标记阵列;以及
所述虚拟标记的标记阵列中不存在对于所述虚拟地址的匹配的情况下,启用使用对应于所述虚拟地址的物理地址对所述物理标记的标记阵列的搜索。
15.根据权利要求14所述的方法,其进一步包括:
将所述虚拟地址翻译成物理地址;以及
向所述物理标记的标记阵列输出所述物理地址;
其中在确定所述虚拟标记的标记阵列中是否存在对于所述虚拟地址的匹配的同时执行将所述虚拟地址翻译成所述物理地址和向所述物理标记的标记阵列输出所述物理地址。
16.根据权利要求14所述的方法,其中启用对所述物理标记的标记阵列的所述搜索包括在所述虚拟标记的标记阵列中不存在对于所述虚拟地址的匹配的情况下向所述物理标记的标记阵列输出未中。
17.根据权利要求16所述的方法,其进一步包括响应于来自所述虚拟标记的标记阵列的所述未中:
确定所述物理标记的标记阵列中是否存在对于所述物理地址的匹配;以及
在所述物理标记的标记阵列中存在对于所述物理地址的匹配的情况下,输出所述物理标记的标记阵列针对所述物理地址存储的道。
18.根据权利要求17所述的方法,其进一步包括:
在所述虚拟标记的标记阵列中存在对于所述虚拟地址的匹配的情况下,在所述数据阵列处从所述虚拟标记的标记阵列接收所述道,并且在所述虚拟标记的标记阵列中不存在对于所述虚拟地址的匹配但在所述物理标记的标记阵列中存在对于所述物理地址的匹配的情况下,在所述数据阵列处从所述物理标记的标记阵列接收所述道;以及
响应于接收到所述道,基于所述道输出数据元素。
19.根据权利要求18所述的方法,其中所述数据阵列是组关联的,并且输出所述数据元素包括输出通过从所述虚拟地址和所述道获得的索引寻址的数据元素。
20.一种数据高速缓存,其包括:
用于确定虚拟标记的标记阵列中是否存在对于虚拟地址的匹配的装置;以及
在所述虚拟标记的标记阵列中存在对于所述虚拟地址的匹配的情况下:
用于向所述数据高速缓存的数据阵列输出所述虚拟标记的标记阵列针对所述虚拟地址存储的道的装置;以及
用于停用所述数据高速缓存的物理标记的标记阵列的装置;以及
在所述虚拟标记的标记阵列中不存在对于所述虚拟地址的匹配的情况下:
用于使用对应于所述虚拟地址的物理地址启用对所述物理标记的标记阵列的搜索的装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261587140P | 2012-01-17 | 2012-01-17 | |
US61/587,140 | 2012-01-17 | ||
US13/426,647 US8612690B2 (en) | 2012-01-17 | 2012-03-22 | Method for filtering traffic to a physically-tagged data cache |
US13/426,647 | 2012-03-22 | ||
PCT/US2013/021822 WO2013109679A1 (en) | 2012-01-17 | 2013-01-17 | Method for filtering traffic to a physically-tagged data cache |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104025061A CN104025061A (zh) | 2014-09-03 |
CN104025061B true CN104025061B (zh) | 2016-01-06 |
Family
ID=48780804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380004686.5A Expired - Fee Related CN104025061B (zh) | 2012-01-17 | 2013-01-17 | 用于对到物理标记的数据高速缓存的业务进行滤波的方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8612690B2 (zh) |
EP (1) | EP2805244B1 (zh) |
JP (1) | JP5752331B2 (zh) |
KR (1) | KR101458928B1 (zh) |
CN (1) | CN104025061B (zh) |
IN (1) | IN2014CN04535A (zh) |
WO (1) | WO2013109679A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10061698B2 (en) * | 2017-01-31 | 2018-08-28 | Qualcomm Incorporated | Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compression memory system when stalled write operations occur |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5379396A (en) * | 1991-10-11 | 1995-01-03 | Intel Corporation | Write ordering for microprocessor depending on cache hit and write buffer content |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR970029072A (ko) * | 1995-11-17 | 1997-06-26 | 김주용 | 이중 디렉토리 가상 캐쉬 및 그 제어 방법 |
US6253301B1 (en) | 1998-04-16 | 2001-06-26 | Compaq Computer Corporation | Method and apparatus for a dedicated physically indexed copy of the data cache tag arrays |
US6976117B2 (en) | 2002-08-13 | 2005-12-13 | Intel Corporation | Snoopy virtual level 1 cache tag |
US7117290B2 (en) * | 2003-09-03 | 2006-10-03 | Advanced Micro Devices, Inc. | MicroTLB and micro tag for reducing power in a processor |
US7451271B2 (en) | 2004-04-05 | 2008-11-11 | Marvell International Ltd. | Physically-tagged cache with virtually-tagged fill buffers |
US7657708B2 (en) | 2006-08-18 | 2010-02-02 | Mips Technologies, Inc. | Methods for reducing data cache access power in a processor using way selection bits |
US7594079B2 (en) * | 2006-09-29 | 2009-09-22 | Mips Technologies, Inc. | Data cache virtual hint way prediction, and applications thereof |
US8631207B2 (en) | 2009-12-26 | 2014-01-14 | Intel Corporation | Cache memory power reduction techniques |
-
2012
- 2012-03-22 US US13/426,647 patent/US8612690B2/en not_active Expired - Fee Related
-
2013
- 2013-01-17 IN IN4535CHN2014 patent/IN2014CN04535A/en unknown
- 2013-01-17 JP JP2014551432A patent/JP5752331B2/ja not_active Expired - Fee Related
- 2013-01-17 WO PCT/US2013/021822 patent/WO2013109679A1/en active Application Filing
- 2013-01-17 KR KR1020147022849A patent/KR101458928B1/ko active IP Right Grant
- 2013-01-17 CN CN201380004686.5A patent/CN104025061B/zh not_active Expired - Fee Related
- 2013-01-17 EP EP13702152.3A patent/EP2805244B1/en not_active Not-in-force
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5379396A (en) * | 1991-10-11 | 1995-01-03 | Intel Corporation | Write ordering for microprocessor depending on cache hit and write buffer content |
Also Published As
Publication number | Publication date |
---|---|
JP2015506517A (ja) | 2015-03-02 |
KR101458928B1 (ko) | 2014-11-07 |
WO2013109679A1 (en) | 2013-07-25 |
KR20140116506A (ko) | 2014-10-02 |
EP2805244B1 (en) | 2018-11-21 |
EP2805244A1 (en) | 2014-11-26 |
IN2014CN04535A (zh) | 2015-09-11 |
JP5752331B2 (ja) | 2015-07-22 |
US8612690B2 (en) | 2013-12-17 |
US20130185473A1 (en) | 2013-07-18 |
CN104025061A (zh) | 2014-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210041935A1 (en) | Non-volatile memory system or sub-system | |
TWI477967B (zh) | 用以實現gpu加速位址轉換之系統及方法以及圖形處理器 | |
US20170177497A1 (en) | Compressed caching of a logical-to-physical address table for nand-type flash memory | |
TWI744289B (zh) | 使用多個最後階層快取線提供記憶體帶寬壓縮之以一中央處理單元(cpu)為基礎之系統及方法 | |
US10503661B2 (en) | Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system | |
US9823854B2 (en) | Priority-based access of compressed memory lines in memory in a processor-based system | |
CN104919439A (zh) | 用于支持基于处理器的系统中的异构存储器存取请求的异构存储器系统以及相关方法和计算机可读媒体 | |
US20160224241A1 (en) | PROVIDING MEMORY BANDWIDTH COMPRESSION USING BACK-TO-BACK READ OPERATIONS BY COMPRESSED MEMORY CONTROLLERS (CMCs) IN A CENTRAL PROCESSING UNIT (CPU)-BASED SYSTEM | |
US9632953B2 (en) | Providing input/output virtualization (IOV) by mapping transfer requests to shared transfer requests lists by IOV host controllers | |
TW201246120A (en) | Techniques to request stored data from a memory | |
US20180173623A1 (en) | Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compressed memory system to avoid stalling write operations | |
CN113656330B (zh) | 确定访问地址的方法和装置 | |
CN104025061B (zh) | 用于对到物理标记的数据高速缓存的业务进行滤波的方法 | |
US9348766B2 (en) | Balanced P-LRU tree for a “multiple of 3” number of ways cache | |
US10061698B2 (en) | Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compression memory system when stalled write operations occur | |
CN113656331A (zh) | 基于高低位的确定访问地址的方法和装置 | |
US9251096B2 (en) | Data compression in processor caches | |
CN113722244B (zh) | 一种高速缓存结构、访问方法和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160106 Termination date: 20210117 |