CN108351831B - 用于缓存受制于对目标地址的请求的数据的设备和方法 - Google Patents
用于缓存受制于对目标地址的请求的数据的设备和方法 Download PDFInfo
- Publication number
- CN108351831B CN108351831B CN201680068412.6A CN201680068412A CN108351831B CN 108351831 B CN108351831 B CN 108351831B CN 201680068412 A CN201680068412 A CN 201680068412A CN 108351831 B CN108351831 B CN 108351831B
- Authority
- CN
- China
- Prior art keywords
- index
- memory device
- level memory
- target
- bit
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/253—Centralized memory
- G06F2212/2532—Centralized memory comprising a plurality of modules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
-
- 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)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
所提供的是用于缓存具有2n高速缓存大小的第二级存储器装置中存在的数据的第一级存储器装置中的非2次幂大小高速缓存的设备和方法。请求是对于具有针对第二级存储器装置的n个位的目标地址。作出目标索引(包括目标地址的n个位中的m个位)是否处于第一级存储器装置的索引集合之内的确定。作出第一级存储器装置的索引集合中的修改目标索引具有与目标索引中的对应至少一个索引不同的至少一个索引位的确定。针对第一级存储器装置中的修改目标索引处的高速缓存线中的数据来处理该请求。
Description
技术领域
本文所述的实施例一般涉及用于缓存第二级存储器装置中存在的数据的第一级存储器装置中的非2的幂大小高速缓存的设备和方法。
背景技术
处理器主存储器可包括两级的存储器,包括更快存取的第一级更小存储器,例如动态随机存取存储器(DRAM)***,其缓存第二级更大且更慢存储器的数据。第二级存储器作为主存储器而被呈现给主机和操作***,而第一级存储器用作高速缓存,并且对操作***是透明的。两级存储器(2LM)的管理可由主机的处理器中的2LM引擎来执行。
发明内容
按照本公开的一方面,提供一种用于缓存受制于对目标地址的请求的数据的设备,包括:第一级存储器装置,具有非2的幂高速缓存大小以缓存具有比所述第一级存储器装置的所述非2的幂高速缓存大小更大的2n大小的第二级存储器装置中存在的数据;以及高速缓存管理器,用于:接收对具有针对所述第二级存储器装置的n个位的目标地址的请求;确定包括所述目标地址的所述n个位中的m个位的目标索引是否处于所述第一级存储器装置的索引集合之内,其中2m的索引集合在大小上比所述第一级存储器装置中的所述索引集合更大;确定具有与所述目标索引中的对应至少一个索引位不同的至少一个索引位的、所述第一级存储器装置的所述索引集合中的修改目标索引;以及针对在所述第一级存储器装置中的所述修改目标索引处的高速缓存线中的数据来处理所述请求。
按照本公开的另一方面,提供一种用于缓存受制于对目标地址的请求的数据的***,包括:处理器,具有高速缓存管理器;用于所述处理器的主存储器,包括第一级存储器装置和第二级存储器装置,其中所述第一级存储器装置缓存所述第二级存储器装置的数据,并且其中所述第一级存储器装置具有非2的幂高速缓存大小以缓存具有比所述第一级存储器装置的所述非2的幂高速缓存大小更大的2n大小的所述第二级存储器装置中存在的数据;以及高速缓存管理器,用于:接收对具有针对所述第二级存储器装置的n个位的目标地址的请求;确定包括所述目标地址的所述n个位中的m个位的目标索引是否处于所述第一级存储器装置的索引集合之内,其中2m的索引集合在大小上比所述第一级存储器装置中的所述索引集合更大;确定具有与所述目标索引中的对应至少一个索引位不同的至少一个索引位的、所述第一级存储器装置的所述索引集合中的修改目标索引;以及针对在所述第一级存储器装置中的所述修改目标索引处的高速缓存线中的数据来处理所述请求。
按照本公开的又一方面,提供一种用于缓存受制于对目标地址的请求的数据的方法,包括:在包括非2的幂高速缓存大小的第一级存储器装置中缓存具有比所述第一级存储器装置的所述非2的幂高速缓存大小更大的2n大小的第二级存储器装置中存在的数据;接收对具有针对所述第二级存储器装置的n个位的目标地址的请求;确定包括所述目标地址的所述n个位中的m个位的目标索引是否处于所述第一级存储器装置的索引集合之内,其中2m的索引集合在大小上比所述第一级存储器装置中的所述索引集合更大;确定具有与所述目标索引中的对应至少一个索引位不同的至少一个索引位的所述第一级存储器装置的所述索引集合中的修改目标索引;以及针对在所述第一级存储器装置中的所述修改目标索引处的高速缓存线中的数据来处理所述请求。
按照本公开的再一方面,提供一种用于缓存受制于对目标地址的请求的数据的设备,包括:用于在包括非2的幂高速缓存大小的第一级存储器装置中缓存具有比所述第一级存储器装置的所述非2的幂高速缓存大小更大的2n大小的第二级存储器装置中存在的数据的部件;用于接收对具有针对所述第二级存储器装置的n个位的目标地址的请求的部件;用于确定包括所述目标地址的所述n个位中的m个位的目标索引是否处于所述第一级存储器装置的索引集合之内的部件,其中2m的索引集合在大小上比所述第一级存储器装置中的所述索引集合更大;用于确定具有与所述目标索引中的对应至少一个索引位不同的至少一个索引位的、所述第一级存储器装置的所述索引集合中的修改目标索引的部件;以及用于针对在所述第一级存储器装置中的所述修改目标索引处的高速缓存线中的数据来处理所述请求的部件。
按照本公开的再一方面,提供一种已在其上存储有指令的计算机可读介质,所述指令在被执行时促使计算装置执行上述任一方法。
附图说明
参照附图,借助于示例来描述实施例,附图不是按比例绘制,其中相似参考标号表示相似元件。
图1示出具有处理器所使用的两级存储器的***的一实施例。
图2示出针对第二级存储器中的数据的地址的组成部分的一实施例。
图3示出第一级存储器中的高速缓存线的一实施例。
图4示出第一级存储器高速缓存信息的一实施例。
图5A和图5B示出在第一级存储器中缓存第二级存储器的数据的操作的一实施例。
具体实施方式
两级主存储器包括两级的存储器,包括更快存取的第一级更小易失性存储器,例如动态随机存取存储器(DRAM)***,其缓存第二级更大且更慢非易失性存储器(例如字节可寻址非易失性随机存取存储器(NVRAM))的数据。第一级存储器可称作近存储器,而第二级存储器可称作远存储器。第一级存储器通常在存储器具有2的幂容量时提供高速缓存,其中在第一级存储器中实现的高速缓存索引中的高速缓存线覆盖第一级存储器高速缓存的2的幂容量。高速缓存索引中的高速缓存线通过索引号来引用,并且包括具有高速缓存线中缓存的第二级存储器地址的最高有效位的标签。高速缓存线的索引值的数量是通过将2的幂高速缓存大小除以各高速缓存线的大小(也是2的幂)所运算的2的幂。以此方式,所有2m个索引值可在地址的m个位中被指定。
在某些状况中,第一级存储器装置可能没有2的幂容量可用于用作高速缓存线的高速缓存索引,使得第一级存储器高速缓存大小是非2的幂高速缓存大小。解决非2的幂高速缓存大小的一种方式是利用第一级存储器的更小2的幂区域作为高速缓存索引。这种技术是有问题的,因为所使用的更小2的幂区域与完整非2的幂高速缓存大小之间的区域不可用于供高速缓存索引用于通过最大化高速缓存索引中可用的高速缓存线的数量来改进高速缓存命中率。
所描述的实施例提供用于对非2的幂存储器高速缓存(其可用于任何非2的幂高速缓存大小并且可用于任何高速缓存线大小)进行解码的技术。通过所描述的实施例,在接收到对具有针对非易失性存储器(例如第二级存储器)的n个位的目标地址的请求时,作出关于目标索引(包括目标地址的n个位中的m个位)是否处于非2的幂易失性存储器装置(包括第一级存储器)的索引集合之内的确定。如果目标地址中的目标索引超出非2的幂高速缓存大小的可用索引集合,则作出映射到第一级存储器装置的索引集合的已修改目标索引具有与目标地址的目标索引中的对应至少一个索引位不同的至少一个索引位的确定。与已修改目标索引中的索引位不同的来自目标索引的对应索引位被保存在第一存储器装置中的已修改目标索引处的高速缓存线中的标签中。以此方式,目标索引被映射到第一级存储器高速缓存容量的索引集合中的位置,即使高速缓存管理器好像它处置比第一级存储器的非2的幂实际高速缓存大小更大的2的幂高速缓存大小那样来进行操作。
在以下描述中,阐述了诸如逻辑实现、操作码、用于指定操作数的部件、资源划分/共享/重复实现、***组件的类型和相互关系、以及逻辑划分/综合选择的众多具体细节,以便提供对本发明的更透彻理解。然而,本领域的技术人员将会领会,在没有这类具体细节的情况下也可实施本发明。在其它实例中,尚未详细示出控制结构、门级电路和完整软件指令序列,以免使本发明难以理解。通过所包含的描述,本领域的技术人员将能够实现适当的功能性而无需过分实验。
说明书中对“一个实施例”、“一实施例”、“示例实施例”等的引用指示所描述的实施例可包括特定特征、结构或特性,但是每一个实施例可能不一定包括该特定特征、结构或特性。此外,这类短语不一定指同一实施例。某些实施例涉及存储装置电子组合件。实施例包括用于形成电子组合件的装置和方法。
图1示出***100的一实施例,***100具有处理器102、高速缓存管理器104、由高速缓存管理器104所使用的第一级存储器高速缓存信息106、以及用于与第一级存储器110(又称作第一存储器装置或高速缓存)进行接口的第一级存储器控制器108。高速缓存管理器104还可与第二级存储器控制器112进行通信,以访问第二级存储器114(又称作第二存储器装置)中的地址。高速缓存管理器104可通过接口116(例如,外设组件互连(PCI)总线、例如外设组件互连高速(PCIe)总线、或者任何其他定制总线)来访问第一级存储器110和第二级存储器114。
第一级存储器110和第二级存储器114可包括处理器102的主存储器,其中第一级存储器110作为第二级存储器114的高速缓存进行操作,具有用于缓存来自第二级存储器114的数据块的高速缓存线200。在一个实施例中,第一级存储器110高速缓存线200直接映射到第二级存储器114中的地址,其中标签存储在高速缓存线200中。高速缓存线200可被索引。
第一级存储器110可具有更小大小,并且是比第二存储器装置或第二级存储器114更快存取的存储器。在一个实施例中,第一级存储器208可包括动态随机存取存储器(DRAM),其缓存第二级存储器114(其可包括具有比第一级存储器110更多的存储空间的三维交叉点存储器)中的数据。第二级存储器114可具有比第一级存储器110更大的空间,并且包括固态驱动器(SSD)或另一种类型的存储或存储器装置、例如三维多层堆叠交叉点存储器阵列。第二级存储器114可实现其他非易失性存储器类型,例如NAND存储器单元、铁电随机存取存储器(FeTRAM)、基于纳米线的非易失性存储器、如相变存储器(PCM)、结合忆阻器技术的存储器、磁阻随机存取存储器(MRAM)、自旋转移矩(STT)-MRAM、电阻随机存取存储器(ReRAM)、字节可寻址非易失性RAM(NVRAM)等。
高速缓存管理器104确定由处理器102使用主存储器的第二级存储器地址所请求的数据是否处于第一级存储器110中,并且如果不是的话,则高速缓存管理器104从第二级存储器114中获取所请求的数据。
在一个实施例中,高速缓存管理器104可以是两级存储器(“2LM”)引擎的一部分,其管理具有近和第二级存储器装置的处理器的主存储器。在另一实施例中,高速缓存管理器104可以是用于在第一级存储器110中缓存来自第二级存储器114的数据的组合式缓存代理和家乡代理配置的一部分,例如通过Intel公司的QuickPath互连逻辑来提供。其他类型的技术和协议可用来实现高速缓存管理器104,以维持作为更大第二级存储器114的高速缓存的第一级存储器110。
***100还可与输入/输出(I/O)装置进行通信,I/O装置可包括输入装置(例如键盘、触摸屏、鼠标等)、显示装置、图形卡、端口、网络接口等。
图2示出在第一级存储器200中的高速缓存线200中的索引位置的高速缓存线200i之一的一实施例,并且包括:有效标志202,指示高速缓存线200i是否具有有效数据;标签204,具有用来在与高速缓存线200中的高速缓存线200i的索引位置相组合时形成第二级存储器114的地址的标签位;以及一个或多个数据字节2061、2062...206b,用于来自第二级存储器114的b个单独可寻址数据字或字节中的每个,其可存储在一个高速缓存线200i中。在一个实施例中,标签204可包括地址的索引部分的一个或多个最高有效位以及地址的索引部分之后的至少一个最高有效位。
在所描述的实施例中,第一级存储器高速缓存110提供直接映射高速缓存。在备选实施例中,不同高速缓存技术可用来缓存数据。此外,高速缓存线200i可包括附加标志和位,用以指示数据字节2061、2062...206w的状态、例如脏等。
图3示出用来对第二级存储器114中的位置进行寻址的地址300的一实施例,并且包括偏移位302,其包括用来标识高速缓存线200i中的特定数据字节2061、2062...206b的地址300的最低有效位。偏移302中的位的数量b包括标识各高速缓存线200i中的2b(或b)个可寻址数据字节中的每个字节所需的位的数量。所述地址还包括m个索引位304,其用来标识和定位各高速缓存线,其中在第一级存储器110中存在2m个高速缓存线200。地址300还包括索引位304之后的一个或多个最高有效位306,用以完成第二级存储器地址300。如所述,标签204可包括地址的索引部分304的一个或多个最高有效位以及地址的索引部分之后的至少一个最高有效位306。
图4示出高速缓存管理器104所使用的第一级存储器高速缓存信息400的一实施例,并且包括:第一级存储器高速缓存大小402,其可具有非2的幂大小;更高2的幂第一级存储器大小404,包括大小2k,使得k是满足2k大于或等于第一级存储器高速缓存大小402的条件的最低整数值;更低2的幂第一级存储器大小406,包括大小2P,使得p是满足2P小于或等于第一级存储器高速缓存大小402的条件的最高整数值;以及第一级存储器最大索引408,包括第一存储器装置的索引集合(其包括对第一级存储器110中的高速缓存线200的所有索引值)内的最大索引值。
如果更高2的幂存储器大小404为2k,则目标地址300中的索引位304的数量包括2k除以高速缓存线大小,指示理论上更高2的幂第一级存储器大小440中的经索引高速缓存线的总数量大于实际非2的幂第一级存储器110。
图5A和图5B示出由高速缓存管理器104来执行以管理来自第二级存储器114的数据在第一级存储器110中的缓存的操作的一实施例。在接收到(在框500)对第二级存储器114的n位目标地址300的请求时,高速缓存管理器104确定(在框502)对于理论上更高2的幂第一级存储器大小404,包括目标地址300的m个索引位304的目标索引304是否处于第一级存储器索引集合之内(即,小于或等于第一级存储器最大索引408)。如果不是的话(即目标索引304引用不在第一级存储器索引集合或高速缓存线200之内的索引条目),则高速缓存管理器104将目标索引修改(在框504)成具有与目标地址的目标索引304中的对应至少一个位不同的至少一个位。例如,在一个实施例中,目标索引304的最高有效位中的至少一个位可被切换以形成修改的目标索引,其映射到非2的幂近高速缓存存储器110中可用的第一级存储器索引集合200(即高速缓存线200)内。
如果(在框506)在目标索引(其可包括修改的目标索引(如果在框502经过修改的话))的高速缓存线200i中存在如由有效标志302所指示的有效数据,则高速缓存管理器104形成(在框508)对于目标地址300的标签,其包括索引304的最高有效位以及地址300的一个或多个最高有效位306。高速缓存管理器104然后确定(在框510)来自目标地址300的所形成的标签是否匹配高速缓存线200i中的标签204。在框510的这个比较操作被执行以确定高速缓存线200i是否具有预计用于目标地址300的数据。进行这个比较,因为所考虑的这个高速缓存线200i或索引处于可具有来自第二级存储器114中与所请求的地址相比不同的地址的数据的高速缓存线索引的范围中,因为具有大于第一级存储器最大索引408的索引304的一些目标地址将使其索引408被调整以映射到第一级存储器高速缓存中的范围,并且还因为第一级存储器索引200能够缓存第二级存储器114中的多个线(其具有第一级存储器索引位304的相同集合,但是在最高有效标签位306之一中不同)之一。如果(在框510)存在匹配,则高速缓存线200i具有所接收的目标地址300的数据,以及所请求的读或写操作(在框512)针对在从所请求的目标地址300得出的目标索引304或所修改的索引的高速缓存线200i中的数据来执行。
如果(在框510)在从所请求的目标地址得出的索引(在框504的修改的索引或者目标索引304)处的高速缓存线200i没有所请求的目标地址的数据,则高速缓存管理器104将高速缓存线200i中的任何修改的数据2061、2062...206b降级(在框514)到第二级存储器114。高速缓存管理器104然后获取(在框516)在第二级存储器114中的所请求的地址300和在第二级存储器114中的邻近地址的数据,以存储在高速缓存线200i中。
在获取数据以存储在高速缓存线200i中之后,控制在(框518)进行到图5B中的框520,以确定要存储在高速缓存线200i中的标签204中的最高有效索引位。
在框520,高速缓存管理器104确定包括目标地址300的m个索引位的目标索引304是否处于第一级存储器索引集合之内,即索引304小于或等于第一级存储器最大索引408。如果是的话(在框520),则高速缓存管理器104将高速缓存线中的标签204更新(在框522)成包括来自目标索引304(其被修改(在框502)以产生修改的目标索引)的最高有效索引位(msb)中的一个或多个以及目标地址300中的索引304之后的至少一个最高有效非索引位306。如果(在框520)目标索引304不在第一级存储器索引集合之内,即大于第一级存储器最大索引408,则高速缓存管理器104将高速缓存线200i中的标签204更新(在框522)成包括来自所请求的目标地址中的目标索引304(其本应受制于修改(在框504)(在索引被修改之前))的最高有效索引位以及来自所请求的目标地址300的至少一个非索引最高有效位306。在框522或524更新高速缓存线200i中的标签204之后,控制返回(在框526)到图5A中的框512,以完成所请求的读或写操作。
如果(在框502)目标索引304处于第一级存储器索引集合之内,即小于或等于第一级存储器最大索引408,则控制进行到框506,以确定通过目标索引值304所寻址的高速缓存线200i是否具有第二级存储器114中不同目标地址的数据。如果(在框506)在目标索引处的高速缓存线200i中不存在有效数据,则控制进行到框516,以获取在所请求的地址处的高速缓存线的数据。
例如,在一个实现中,作为示例,第二级存储器114可包括具有35位地址大小的32千兆字节(GB),第一级存储器可具有非2的幂12GB大小,并且各高速缓存线可以是具有64个一字节字的64个字节。在这种情况下,更高非2的幂高速缓存大小404将是16Gb(或者234)除以64KB高速缓存线大小(26),其将产生具有228或256MB的索引值的228高速缓存线。这意味着将存在六个最低有效位可用于偏移302、对于高速缓存线中的64个可寻址字节存在索引所要求的28个位以对所有256百万个条目进行寻址、以及一个最高有效位306。如果目标地址具有对高于192百万(12GB)的高速缓存线进行寻址的索引,则形成标签204的一部分的索引的最高有效位需要从1切换到0,以映射到16GB第一级存储器高速缓存的从4GB扩展到8GB的高速缓存线的区域中。在这种示例中,高速缓存线中存储的标签204将包括所接收的第二级存储器地址的最高有效位(或者第35个位)以及地址中的原始最高有效索引位(或者第34个位)。12GB高速缓存大小的索引集合将是12GB除以64字节的索引值。
通过所描述的实施例,索引集合用于大于第一级存储器110的实际非2的幂高速缓存大小的2的幂高速缓存大小,但是如果所接收的地址300包括超出非2的幂高速缓存大小的可用索引集合的索引时,则那个索引被映射到第一级存储器110的索引集合(到高速缓存线中),其可用于非2的幂高速缓存的索引集合之内的目标地址中的索引值。
所修改的最高有效索引位和非索引标签位对不同大小的第二级存储器地址、和对第一级存储器中的不同数量的高速缓存线、以及对与直接映射缓存不同类型的缓存技术可以是不同的。
应当领会,贯穿本说明书对“一个实施例”或“一实施例”的引用意味着结合该实施例所描述的具体特征、结构或特性被包含在本发明的至少一个实施例中。因此,强调并且应当理解的是,在本说明书的各个部分中,对“一实施例”或“一个实施例”或者“备选实施例”的两个或更多引用不一定都表示同一个实施例。此外,具体特征、结构或特性可被适当地组合在本发明的一个或多个实施例中。
类似地,应当领会,在本发明的实施例的以上描述中,为了简化本公开的目的,各种特征有时一起聚集在单个实施例、图或者其描述中,帮助理解各种发明方面中的一个或多个。但是,本公开的这种方法不应被解译为反映了所要求权益的主题要求比各权利要求中所明确阐述的特征更多的特征的意图。相反,如以下权利要求所反映的,发明方面在于少于单个以上公开的实施例的所有特征。因此,详细描述所随附的权利要求在此明确结合到本详细描述中。
本文所使用的参考字符(例如b、i、m、n、k和p)在本文中用来表示元件的可变数量的实例,其可表示相同或不同的值,并且在与不同的所描述实例中的不同或相同元件一起使用时可表示相同或不同值。
示例
示例1是用于缓存受制于对目标地址的请求的数据的设备,包括:第一级存储器装置,具有非2的幂高速缓存大小以缓存具有比第一级存储器装置的非2的幂高速缓存大小更大的2n大小的第二级存储器装置中存在的数据;以及高速缓存管理器,用于:接收对具有针对第二级存储器装置的n个位的目标地址的请求;确定包括目标地址的n个位中的m个位的目标索引是否处于第一级存储器装置的索引集合之内,其中2m的索引集合在大小上比第一级存储器装置中的索引集合更大;确定具有与目标索引中的对应至少一个索引位不同的至少一个索引位的第一级存储器装置的索引集合中的修改目标索引;以及针对在第一级存储器装置中的修改目标索引处的高速缓存线中的数据来处理请求。
在示例2中,示例1和3-10的主题可选地能够包括,确定修改目标索引包括切换目标索引中的对应至少一个索引位以产生与目标索引中的对应至少一个索引位不同的修改目标索引中的至少一个索引位。
在示例3中,示例1、2和4-10的主题可选地能够包括,2m等于2k除以第一级存储器装置中的高速缓存线的高速缓存线大小,其中k包括使得2k大于非2的幂高速缓存大小的最低整数值。
在示例4中,示例1-3和5-10的主题可选地能够包括,高速缓存管理器还用于:在第一级存储器装置中的修改目标索引处的高速缓存线中的标签中保存与修改目标索引中的至少一个索引位不同的来自目标索引的对应至少一个索引位。
在示例5中,示例1-4和6-10的主题可选地能够包括,高速缓存管理器还用于:响应于确定目标索引处于第一级存储器装置的索引集合之内,在标签中保存当目标索引不在第一级存储器装置的索引集合中时本应改变的目标索引中的至少一个索引位。
在示例6中,示例1-5和7-10的主题可选地能够包括,标签包括目标地址的最高有效非索引位中的至少一个以及当目标索引不在第一级存储器装置的索引集合内时被修改的目标索引中的至少一个索引位。
在示例7中,示例1-6和8-10的主题可选地能够包括,目标地址还包括b个偏移位以对高速缓存线中的2b个数据字节的每个进行寻址,其中标签包括目标地址的最高有效非索引位中的(n-m-b)个以及当目标索引不在第一级存储器装置的索引集合内时被修改的目标索引中的至少一个最高有效索引位,其中当目标索引在和不在第一级存储器装置的索引集合内时标签包括至少一个最高有效索引位。
在示例8中,示例1-7、9和10的主题可选地能够包括,高速缓存管理器还用于:形成包括来自目标索引的至少一个最高有效位以及目标索引之后的目标地址的至少一个最高有效位的目标地址的形成标签;确定形成标签是否匹配在修改目标索引处的高速缓存线中的标签;响应于确定形成标签不匹配高速缓存线中的标签而在第二级存储器装置中的目标地址处获取数据以存储在高速缓存线中;以及响应于获取数据而处理请求。
在示例9中,示例1-8和10的主题可选地能够包括,高速缓存管理器还用于:响应于确定所形成的目标标签匹配高速缓存线中的标签而针对高速缓存线中的数据来处理请求。
在示例10中,示例1-9的主题可选地能够包括,第一级存储器装置包括易失性存储器装置,以及第二级存储器装置包括字节可寻址非易失性随机存取存储器装置。
示例11是用于缓存受制于对目标地址的请求的数据的***,包括:处理器,具有高速缓存管理器;用于处理器的主存储器,包括第一级存储器装置和第二级存储器装置,其中第一级存储器装置缓存第二级存储器装置的数据,并且其中第一级存储器装置具有非2的幂高速缓存大小以缓存具有比第一级存储器装置的非2的幂高速缓存大小更大的2n大小的第二级存储器装置中存在的数据;以及高速缓存管理器,用于:接收对具有针对第二级存储器装置的n个位的目标地址的请求;确定包括目标地址的n个位中的m个位的目标索引是否处于第一级存储器装置的索引集合之内,其中2m的索引集合在大小上比第一级存储器装置中的索引集合更大;确定具有与目标索引中的对应至少一个索引位不同的至少一个索引位的第一级存储器装置的索引集合中的修改目标索引;以及针对在第一级存储器装置中的修改目标索引处的高速缓存线中的数据来处理请求。
在示例12中,示例11和13-18的主题可选地能够包括,确定修改目标索引包括切换目标索引中的对应至少一个索引位以产生与目标索引中的对应至少一个索引位不同的修改目标索引中的至少一个索引位。
在示例13中,示例11、12和14-18的主题可选地能够包括,高速缓存管理器还用于:在第一级存储器装置中的修改目标索引处的高速缓存线中的标签中保存与修改目标索引中的至少一个索引位不同的来自目标索引的对应至少一个索引位。
在示例14中,示例11-13和15-18的主题可选地能够包括,高速缓存管理器还用于:响应于确定目标索引处于第一级存储器装置的索引集合之内,在标签中保存当目标索引不在第一级存储器装置的索引集合中时本应改变的目标索引中的至少一个索引位。
在示例15中,示例11-14和16-18的主题可选地能够包括,标签包括目标地址的最高有效非索引位中的至少一个以及当目标索引不在第一级存储器装置的索引集合内时被修改的目标索引中的至少一个索引位。
在示例16中,示例11-15、17和18的主题可选地能够包括,目标地址还包括b个偏移位以对高速缓存线中的2b个数据字节的每个进行寻址,其中标签包括目标地址的最高有效非索引位中的(n-m-b)个以及当目标索引不在第一级存储器装置的索引集合内时被修改的目标索引中的至少一个最高有效索引位,其中当目标索引在和不在第一级存储器装置的索引集合内时标签包括至少一个最高有效索引位。
在示例17中,示例11-16和18的主题可选地能够包括,高速缓存管理器还用于:形成包括来自目标索引的至少一个最高有效位以及目标索引之后的目标地址的至少一个最高有效位的目标地址的形成标签;确定形成标签是否匹配在修改目标索引处的高速缓存线中的标签;响应于确定形成标签不匹配高速缓存线中的标签而在第二级存储器装置中的目标地址处获取数据以存储在高速缓存线中;以及响应于获取数据而处理请求。
在示例18中,示例11-17的主题可选地能够包括,第一级存储器装置包括易失性存储器装置,以及第二级存储器装置包括字节可寻址非易失性随机存取存储器装置。
示例19是用于缓存受制于对目标地址的请求的数据的方法,包括:在包括非2的幂高速缓存大小的第一级存储器装置中缓存具有比第一级存储器装置的非2的幂高速缓存大小更大的2n大小的第二级存储器装置中存在的数据;接收对具有针对第二级存储器装置的n个位的目标地址的请求;确定包括目标地址的n个位中的m个位的目标索引是否处于第一级存储器装置的索引集合之内,其中2m的索引集合在大小上比第一级存储器装置中的索引集合更大;确定具有与目标索引中的对应至少一个索引位不同的至少一个索引位的第一级存储器装置的索引集合中的修改目标索引;以及针对在第一级存储器装置中的修改目标索引处的高速缓存线中的数据来处理请求。
在示例20中,示例11和13-18的主题可选地能够包括以下至少任意一个:
(1)其中确定修改目标索引包括切换目标索引中的对应至少一个索引位以产生与目标索引中的对应至少一个索引位不同的修改目标索引中的至少一个索引位;和/或
(2)其中2m等于2k除以第一级存储器装置中的高速缓存线的高速缓存线大小,其中k包括使得2k大于非2的幂高速缓存大小的最低整数值;和/或
(3)在第一级存储器装置中的修改目标索引处的高速缓存线中的标签中保存与修改目标索引中的至少一个索引位不同的来自目标索引的对应至少一个索引位;和/或
(4)响应于确定目标索引处于第一级存储器装置的索引集合之内,在标签中保存当目标索引不在第一级存储器装置的索引集合中时本应改变的目标索引中的至少一个索引位;和/或
(5)其中标签包括目标地址的最高有效非索引位中的至少一个以及当目标索引不在第一级存储器装置的索引集合内时被修改的目标索引中的至少一个索引位;和/或
(6)其中目标地址还包括b个偏移位以对高速缓存线中的2b个数据字节的每个进行寻址,其中标签包括目标地址的最高有效非索引位中的(n-m-b)个以及当目标索引不在第一级存储器装置的索引集合内时被修改的目标索引中的至少一个最高有效索引位,其中当目标索引在和不在第一级存储器装置的索引集合内时标签包括至少一个最高有效索引位;和/或
(7)形成包括来自目标索引的至少一个最高有效位以及目标索引之后的目标地址的至少一个最高有效位的目标地址的形成标签;确定形成标签是否匹配在修改目标索引处的高速缓存线中的标签;响应于确定形成标签不匹配高速缓存线中的标签而在第二级存储器装置中的目标地址处获取数据以存储在高速缓存线中;以及响应于获取数据而处理请求;和/或
(8)响应于确定所形成的目标标签匹配高速缓存线中的标签而针对高速缓存线中的数据来处理请求;和/或
(9)其中第一级存储器装置包括易失性存储器装置,以及第二级存储器装置包括字节可寻址非易失性随机存取存储器装置。
示例21是一种设备,包括:用于在包括非2的幂高速缓存大小的第一级存储器装置中缓存具有比第一级存储器装置的非2的幂高速缓存大小更大的2n大小的第二级存储器装置中存在的数据的部件;用于接收对具有针对第二级存储器装置的n个位的目标地址的请求的部件;用于确定包括目标地址的n个位中的m个位的目标索引是否处于第一级存储器装置的索引集合之内的部件,其中2m的索引集合在大小上比第一级存储器装置中的索引集合更大;用于确定具有与目标索引中的对应至少一个索引位不同的至少一个索引位的第一级存储器装置的索引集合中的修改目标索引的部件;以及用于针对在第一级存储器装置中的修改目标索引处的高速缓存线中的数据来处理请求的部件。
在示例22中,示例21的主题可选地能够包括用于在第一级存储器装置中的修改目标索引处的高速缓存线中的标签中保存与修改目标索引中的至少一个索引位不同的来自目标索引的对应至少一个索引位的部件。
示例23是一种包含机器可读指令的机器可读存储装置,所述指令在被运行时用于实现如任一前述权利要求中所要求的方法或者实行如任一前述权利要求中所要求的设备或***。
示例24是一种设备,其包括用于执行如任一前述权利要求中所要求的方法的部件。
Claims (33)
1.一种用于缓存受制于对目标地址的请求的数据的设备,包括:
第一级存储器装置,具有非2的幂高速缓存大小以缓存具有比所述第一级存储器装置的所述非2的幂高速缓存大小更大的2n大小的第二级存储器装置中存在的数据;以及
高速缓存管理器,用于:
接收对具有针对所述第二级存储器装置的n个位的目标地址的请求;
确定包括所述目标地址的所述n个位中的m个位的目标索引是否处于所述第一级存储器装置的索引集合之内,其中2m的索引集合在大小上比所述第一级存储器装置中的所述索引集合更大;
确定具有与所述目标索引中的对应至少一个索引位不同的至少一个索引位的、所述第一级存储器装置的所述索引集合中的修改目标索引;以及
针对在所述第一级存储器装置中的所述修改目标索引处的高速缓存线中的数据来处理所述请求。
2.如权利要求1所述的设备,其中,所述确定所述修改目标索引包括切换所述目标索引中的所述对应至少一个索引位,以产生与所述目标索引中的所述对应至少一个索引位不同的、所述修改目标索引中的所述至少一个索引位。
3.如权利要求1所述的设备,其中,2m等于2k除以所述第一级存储器装置中的高速缓存线的高速缓存线大小,其中k包括使得2k大于所述非2的幂高速缓存大小的最低整数值。
4.如权利要求1、2和3中任一项所述的设备,其中,所述高速缓存管理器还用于:
在所述第一级存储器装置中的所述修改目标索引处的所述高速缓存线中的标签中保存与所述修改目标索引中的所述至少一个索引位不同的来自所述目标索引的所述对应至少一个索引位。
5.如权利要求4所述的设备,其中,所述高速缓存管理器还用于:
响应于确定所述目标索引处于所述第一级存储器装置的所述索引集合之内,在所述标签中保存当所述目标索引不在所述第一级存储器装置的所述索引集合中时本应改变的所述目标索引中的所述至少一个索引位。
6.如权利要求4所述的设备,其中,所述标签包括所述目标地址的最高有效非索引位中的至少一个以及当所述目标索引不在所述第一级存储器装置的所述索引集合内时被修改的所述目标索引中的所述至少一个索引位。
7.如权利要求6所述的设备,其中,所述目标地址还包括b个偏移位以对所述高速缓存线中的2b个数据字节的每个进行寻址,其中,所述标签包括所述目标地址的所述最高有效非索引位中的(n-m-b)个以及当所述目标索引不在所述第一级存储器装置的所述索引集合内时被修改的所述目标索引中的所述至少一个最高有效索引位,其中,当所述目标索引在和不在所述第一级存储器装置的所述索引集合内时所述标签包括所述至少一个最高有效索引位。
8.如权利要求4所述的设备,其中,所述高速缓存管理器还用于:
形成包括来自所述目标索引的至少一个最高有效位以及所述目标索引之后的所述目标地址的至少一个最高有效位的所述目标地址的形成标签;
确定所述形成标签是否匹配在所述修改目标索引处的所述高速缓存线中的所述标签;
响应于确定所述形成标签不匹配所述高速缓存线中的所述标签而在所述第二级存储器装置中的所述目标地址处获取数据以存储在所述高速缓存线中;以及
响应于所述获取所述数据而处理所述请求。
9.如权利要求8所述的设备,其中,所述高速缓存管理器还用于:
响应于确定所形成的目标标签匹配所述高速缓存线中的所述标签而针对所述高速缓存线中的所述数据来处理所述请求。
10.如权利要求1、2和3中任一项所述的设备,其中,所述第一级存储器装置包括易失性存储器装置,以及所述第二级存储器装置包括字节可寻址非易失性随机存取存储器装置。
11.一种用于缓存受制于对目标地址的请求的数据的***,包括:
处理器,具有高速缓存管理器;
用于所述处理器的主存储器,包括第一级存储器装置和第二级存储器装置,其中所述第一级存储器装置缓存所述第二级存储器装置的数据,并且其中所述第一级存储器装置具有非2的幂高速缓存大小以缓存具有比所述第一级存储器装置的所述非2的幂高速缓存大小更大的2n大小的所述第二级存储器装置中存在的数据;以及
高速缓存管理器,用于:
接收对具有针对所述第二级存储器装置的n个位的目标地址的请求;
确定包括所述目标地址的所述n个位中的m个位的目标索引是否处于所述第一级存储器装置的索引集合之内,其中2m的索引集合在大小上比所述第一级存储器装置中的所述索引集合更大;
确定具有与所述目标索引中的对应至少一个索引位不同的至少一个索引位的、所述第一级存储器装置的所述索引集合中的修改目标索引;以及
针对在所述第一级存储器装置中的所述修改目标索引处的高速缓存线中的数据来处理所述请求。
12.如权利要求11所述的***,其中,所述确定所述修改目标索引包括切换所述目标索引中的所述对应至少一个索引位,以产生与所述目标索引中的所述对应至少一个索引位不同的、所述修改目标索引中的所述至少一个索引位。
13.如权利要求11和12中任一项所述的***,其中,所述高速缓存管理器还用于:
在所述第一级存储器装置中的所述修改目标索引处的所述高速缓存线中的标签中保存与所述修改目标索引中的所述至少一个索引位不同的来自所述目标索引的所述对应至少一个索引位。
14.如权利要求13所述的***,其中,所述高速缓存管理器还用于:
响应于确定所述目标索引处于所述第一级存储器装置的所述索引集合之内,在所述标签中保存当所述目标索引不在所述第一级存储器装置的所述索引集合中时本应改变的所述目标索引中的所述至少一个索引位。
15.如权利要求13所述的***,其中,所述标签包括所述目标地址的最高有效非索引位中的至少一个以及当所述目标索引不在所述第一级存储器装置的所述索引集合内时被修改的所述目标索引中的所述至少一个索引位。
16.如权利要求15所述的***,其中,所述目标地址还包括b个偏移位以对所述高速缓存线中的2b个数据字节的每个进行寻址,其中,所述标签包括所述目标地址的所述最高有效非索引位中的(n-m-b)个以及当所述目标索引不在所述第一级存储器装置的所述索引集合内时被修改的所述目标索引中的所述至少一个最高有效索引位,其中,当所述目标索引在和不在所述第一级存储器装置的所述索引集合内时所述标签包括所述至少一个最高有效索引位。
17.如权利要求13所述的***,其中,所述高速缓存管理器还用于:
形成包括来自所述目标索引的至少一个最高有效位以及所述目标索引之后的所述目标地址的至少一个最高有效位的所述目标地址的形成标签;
确定所述形成标签是否匹配在所述修改目标索引处的所述高速缓存线中的所述标签;
响应于确定所述形成标签不匹配所述高速缓存线中的所述标签而在所述第二级存储器装置中的所述目标地址处获取数据以存储在所述高速缓存线中;以及
响应于所述获取所述数据而处理所述请求。
18.如权利要求11和12中任一项所述的***,其中,所述第一级存储器装置包括易失性存储器装置,以及所述第二级存储器装置包括字节可寻址非易失性随机存取存储器装置。
19.一种用于缓存受制于对目标地址的请求的数据的方法,包括:
在包括非2的幂高速缓存大小的第一级存储器装置中缓存具有比所述第一级存储器装置的所述非2的幂高速缓存大小更大的2n大小的第二级存储器装置中存在的数据;
接收对具有针对所述第二级存储器装置的n个位的目标地址的请求;
确定包括所述目标地址的所述n个位中的m个位的目标索引是否处于所述第一级存储器装置的索引集合之内,其中2m的索引集合在大小上比所述第一级存储器装置中的所述索引集合更大;
确定具有与所述目标索引中的对应至少一个索引位不同的至少一个索引位的所述第一级存储器装置的所述索引集合中的修改目标索引;以及
针对在所述第一级存储器装置中的所述修改目标索引处的高速缓存线中的数据来处理所述请求。
20.如权利要求19所述的方法,其中,所述确定所述修改目标索引包括切换所述目标索引中的所述对应至少一个索引位,以产生与所述目标索引中的所述对应至少一个索引位不同的、所述修改目标索引中的所述至少一个索引位。
21.如权利要求19和20中任一项所述的方法,还包括:
在所述第一级存储器装置中的所述修改目标索引处的所述高速缓存线中的标签中保存与所述修改目标索引中的所述至少一个索引位不同的来自所述目标索引的所述对应至少一个索引位。
22.如权利要求21所述的方法,还包括:
响应于确定所述目标索引处于所述第一级存储器装置的所述索引集合之内,在所述标签中保存当所述目标索引不在所述第一级存储器装置的所述索引集合中时本应改变的所述目标索引中的所述至少一个索引位。
23.如权利要求21所述的方法,其中,所述标签包括所述目标地址的最高有效非索引位中的至少一个以及当所述目标索引不在所述第一级存储器装置的所述索引集合内时被修改的所述目标索引中的所述至少一个索引位。
24.如权利要求21所述的方法,还包括:
形成包括来自所述目标索引的至少一个最高有效位以及所述目标索引之后的所述目标地址的至少一个最高有效位的所述目标地址的形成标签;
确定所述形成标签是否匹配在所述修改目标索引处的所述高速缓存线中的所述标签;
响应于确定所述形成标签不匹配所述高速缓存线中的所述标签而在所述第二级存储器装置中的所述目标地址处获取数据以存储在所述高速缓存线中;以及
响应于所述获取所述数据而处理所述请求。
25.如权利要求19和20中任一项所述的方法,其中,所述第一级存储器装置包括易失性存储器装置,以及所述第二级存储器装置包括字节可寻址非易失性随机存取存储器装置。
26.一种用于缓存受制于对目标地址的请求的数据的设备,包括:
用于在包括非2的幂高速缓存大小的第一级存储器装置中缓存具有比所述第一级存储器装置的所述非2的幂高速缓存大小更大的2n大小的第二级存储器装置中存在的数据的部件;
用于接收对具有针对所述第二级存储器装置的n个位的目标地址的请求的部件;
用于确定包括所述目标地址的所述n个位中的m个位的目标索引是否处于所述第一级存储器装置的索引集合之内的部件,其中2m的索引集合在大小上比所述第一级存储器装置中的所述索引集合更大;
用于确定具有与所述目标索引中的对应至少一个索引位不同的至少一个索引位的、所述第一级存储器装置的所述索引集合中的修改目标索引的部件;以及
用于针对在所述第一级存储器装置中的所述修改目标索引处的高速缓存线中的数据来处理所述请求的部件。
27.如权利要求26所述的设备,其中,用于确定所述修改目标索引的所述部件包括用于切换所述目标索引中的所述对应至少一个索引位、以产生与所述目标索引中的所述对应至少一个索引位不同的所述修改目标索引中的所述至少一个索引位的部件。
28.如权利要求26和27中任一项所述的设备,还包括:
用于在所述第一级存储器装置中的所述修改目标索引处的所述高速缓存线中的标签中保存与所述修改目标索引中的所述至少一个索引位不同的来自所述目标索引的所述对应至少一个索引位的部件。
29.如权利要求28所述的设备,还包括:
用于响应于确定所述目标索引处于所述第一级存储器装置的所述索引集合之内,在所述标签中保存当所述目标索引不在所述第一级存储器装置的所述索引集合中时本应改变的所述目标索引中的所述至少一个索引位的部件。
30.如权利要求28所述的设备,其中,所述标签包括所述目标地址的最高有效非索引位中的至少一个以及当所述目标索引不在所述第一级存储器装置的所述索引集合内时被修改的所述目标索引中的所述至少一个索引位。
31.如权利要求28所述的设备,还包括:
用于形成包括来自所述目标索引的至少一个最高有效位以及所述目标索引之后的所述目标地址的至少一个最高有效位的所述目标地址的形成标签的部件;
用于确定所述形成标签是否匹配在所述修改目标索引处的所述高速缓存线中的所述标签的部件;
用于响应于确定所述形成标签不匹配所述高速缓存线中的所述标签而在所述第二级存储器装置中的所述目标地址处获取数据以存储在所述高速缓存线中的部件;以及
用于响应于所述获取所述数据而处理所述请求的部件。
32.如权利要求26和27中任一项所述的设备,其中,所述第一级存储器装置包括易失性存储器装置,以及所述第二级存储器装置包括字节可寻址非易失性随机存取存储器装置。
33.一种已在其上存储有指令的计算机可读介质,所述指令在被执行时促使计算装置执行根据权利要求19-25中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/757926 | 2015-12-23 | ||
US14/757,926 US9747041B2 (en) | 2015-12-23 | 2015-12-23 | Apparatus and method for a non-power-of-2 size cache in a first level memory device to cache data present in a second level memory device |
PCT/US2016/063427 WO2017112270A1 (en) | 2015-12-23 | 2016-11-22 | Apparatus and method for a non-power-of-2 size cache in a first level memory device to cache data present in a second level memory device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108351831A CN108351831A (zh) | 2018-07-31 |
CN108351831B true CN108351831B (zh) | 2023-06-02 |
Family
ID=59086509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680068412.6A Active CN108351831B (zh) | 2015-12-23 | 2016-11-22 | 用于缓存受制于对目标地址的请求的数据的设备和方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9747041B2 (zh) |
CN (1) | CN108351831B (zh) |
DE (1) | DE112016006025T5 (zh) |
WO (1) | WO2017112270A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210216452A1 (en) * | 2021-03-27 | 2021-07-15 | Intel Corporation | Two-level main memory hierarchy management |
WO2022233033A1 (zh) * | 2021-05-07 | 2022-11-10 | Oppo广东移动通信有限公司 | 无线通信的方法及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103562887A (zh) * | 2011-05-23 | 2014-02-05 | 国际商业机器公司 | 用于存储设备的第一高速缓存和第二高速缓存中的轨道的高速缓存管理 |
CN104572503A (zh) * | 2009-03-03 | 2015-04-29 | 高通股份有限公司 | 可配置高速缓冲存储器及其配置方法 |
CN104679669A (zh) * | 2014-11-27 | 2015-06-03 | 华为技术有限公司 | 高速缓存cache存储器***及访问缓存行cache line的方法 |
Family Cites Families (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1100540A (zh) | 1994-08-18 | 1995-03-22 | 奥克利***公司 | 压缩的基本输入/输出*** |
US6035432A (en) | 1997-07-31 | 2000-03-07 | Micron Electronics, Inc. | System for remapping defective memory bit sets |
US5912839A (en) | 1998-06-23 | 1999-06-15 | Energy Conversion Devices, Inc. | Universal memory element and method of programming same |
US6292874B1 (en) | 1999-10-19 | 2001-09-18 | Advanced Technology Materials, Inc. | Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges |
US6434670B1 (en) | 1999-11-09 | 2002-08-13 | International Business Machines Corporation | Method and apparatus for efficiently managing caches with non-power-of-two congruence classes |
US6751720B2 (en) * | 2000-06-10 | 2004-06-15 | Hewlett-Packard Development Company, L.P. | Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy |
US6654760B2 (en) | 2001-06-04 | 2003-11-25 | Hewlett-Packard Development Company, L.P. | System and method of providing a cache-efficient, hybrid, compressed digital tree with wide dynamic ranges and simple interface requiring no configuration or tuning |
DE60127125D1 (de) | 2001-09-28 | 2007-04-19 | St Microelectronics Srl | Verfahren zum Speichern und Lesen von Daten in einem nichtflüchtigen Mehrpegelspeicher mit einer nichtbinären Anzahl von Pegeln und dazugehörige Schaltungsarchitektur |
US7039760B2 (en) | 2003-04-28 | 2006-05-02 | International Business Machines Corporation | Programming means for dynamic specifications of cache management preferences |
US20050010811A1 (en) | 2003-06-16 | 2005-01-13 | Zimmer Vincent J. | Method and system to support network port authentication from out-of-band firmware |
US7475174B2 (en) | 2004-03-17 | 2009-01-06 | Super Talent Electronics, Inc. | Flash / phase-change memory in multi-ring topology using serial-link packet interface |
US7590918B2 (en) | 2004-09-10 | 2009-09-15 | Ovonyx, Inc. | Using a phase change memory as a high volume memory |
US20070005922A1 (en) | 2005-06-30 | 2007-01-04 | Swaminathan Muthukumar P | Fully buffered DIMM variable read latency |
US7600078B1 (en) | 2006-03-29 | 2009-10-06 | Intel Corporation | Speculatively performing read transactions |
US7913147B2 (en) | 2006-05-08 | 2011-03-22 | Intel Corporation | Method and apparatus for scrubbing memory |
CN100451987C (zh) | 2006-05-23 | 2009-01-14 | 北京金元龙脉信息科技有限公司 | 对计算机bios固件进行安全风险检测的***和方法 |
US7756053B2 (en) | 2006-06-30 | 2010-07-13 | Intel Corporation | Memory agent with error hardware |
US7493439B2 (en) | 2006-08-01 | 2009-02-17 | International Business Machines Corporation | Systems and methods for providing performance monitoring in a memory system |
US8051253B2 (en) | 2006-09-28 | 2011-11-01 | Virident Systems, Inc. | Systems and apparatus with programmable memory control for heterogeneous main memory |
WO2008131058A2 (en) | 2007-04-17 | 2008-10-30 | Rambus Inc. | Hybrid volatile and non-volatile memory device |
US20080270811A1 (en) | 2007-04-26 | 2008-10-30 | Super Talent Electronics Inc. | Fast Suspend-Resume of Computer Motherboard Using Phase-Change Memory |
WO2008139441A2 (en) | 2007-05-12 | 2008-11-20 | Anobit Technologies Ltd. | Memory device with internal signal processing unit |
US8145893B2 (en) | 2007-10-26 | 2012-03-27 | Intel Corporation | Hot-plugging a memory device |
US7813212B2 (en) | 2008-01-17 | 2010-10-12 | Mosaid Technologies Incorporated | Nonvolatile memory having non-power of two memory capacity |
US20090313416A1 (en) | 2008-06-16 | 2009-12-17 | George Wayne Nation | Computer main memory incorporating volatile and non-volatile memory |
CN101620539B (zh) | 2008-07-01 | 2013-12-25 | 联想(北京)有限公司 | 开关机方法和计算机 |
JP5221332B2 (ja) * | 2008-12-27 | 2013-06-26 | 株式会社東芝 | メモリシステム |
JP5198245B2 (ja) * | 2008-12-27 | 2013-05-15 | 株式会社東芝 | メモリシステム |
US8331857B2 (en) | 2009-05-13 | 2012-12-11 | Micron Technology, Inc. | Wireless interface to program phase-change memories |
US8250282B2 (en) | 2009-05-14 | 2012-08-21 | Micron Technology, Inc. | PCM memories for storage bus interfaces |
US8504759B2 (en) | 2009-05-26 | 2013-08-06 | Micron Technology, Inc. | Method and devices for controlling power loss |
US20100306453A1 (en) | 2009-06-02 | 2010-12-02 | Edward Doller | Method for operating a portion of an executable program in an executable non-volatile memory |
US9123409B2 (en) | 2009-06-11 | 2015-09-01 | Micron Technology, Inc. | Memory device for a hierarchical memory architecture |
US8626997B2 (en) | 2009-07-16 | 2014-01-07 | Micron Technology, Inc. | Phase change memory in a dual inline memory module |
US8341387B2 (en) | 2009-08-18 | 2012-12-25 | Dell Products, Lp | System and method to manipulate a system setting when booting an information handling system |
US8914568B2 (en) | 2009-12-23 | 2014-12-16 | Intel Corporation | Hybrid memory architectures |
US8612809B2 (en) | 2009-12-31 | 2013-12-17 | Intel Corporation | Systems, methods, and apparatuses for stacked memory |
US20110208900A1 (en) | 2010-02-23 | 2011-08-25 | Ocz Technology Group, Inc. | Methods and systems utilizing nonvolatile memory in a computer system main memory |
KR20110131781A (ko) | 2010-05-31 | 2011-12-07 | 삼성전자주식회사 | 위치정보의 정확도 확인방법 및 장치 |
US8649212B2 (en) | 2010-09-24 | 2014-02-11 | Intel Corporation | Method, apparatus and system to determine access information for a phase change memory |
US8838935B2 (en) | 2010-09-24 | 2014-09-16 | Intel Corporation | Apparatus, method, and system for implementing micro page tables |
US8612676B2 (en) * | 2010-12-22 | 2013-12-17 | Intel Corporation | Two-level system main memory |
US8462577B2 (en) | 2011-03-18 | 2013-06-11 | Intel Corporation | Single transistor driver for address lines in a phase change memory and switch (PCMS) array |
US8462537B2 (en) | 2011-03-21 | 2013-06-11 | Intel Corporation | Method and apparatus to reset a phase change memory and switch (PCMS) memory cell |
US8607089B2 (en) | 2011-05-19 | 2013-12-10 | Intel Corporation | Interface for storage device access over memory bus |
US8605531B2 (en) | 2011-06-20 | 2013-12-10 | Intel Corporation | Fast verify for phase change memory with switch |
US8463948B1 (en) | 2011-07-01 | 2013-06-11 | Intel Corporation | Method, apparatus and system for determining an identifier of a volume of memory |
EP3346386B1 (en) | 2011-09-30 | 2020-01-22 | Intel Corporation | Non-volatile random access memory (nvram) as a replacement for traditional mass storage |
EP2761468B1 (en) | 2011-09-30 | 2019-12-11 | Intel Corporation | Platform storage hierarchy with non-volatile random access memory having configurable partitions |
US9430372B2 (en) | 2011-09-30 | 2016-08-30 | Intel Corporation | Apparatus, method and system that stores bios in non-volatile random access memory |
EP2761466B1 (en) | 2011-09-30 | 2020-08-05 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy |
EP2761467B1 (en) | 2011-09-30 | 2019-10-23 | Intel Corporation | Generation of far memory access signals based on usage statistic tracking |
WO2013048485A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Autonomous initialization of non-volatile random access memory in a computer system |
WO2013048493A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Memory channel that supports near memory and far memory access |
US9298606B2 (en) | 2011-09-30 | 2016-03-29 | Intel Corporation | Statistical wear leveling for non-volatile system memory |
US8782324B1 (en) * | 2012-06-28 | 2014-07-15 | Emc Corporation | Techniques for managing placement of extents based on a history of active extents |
GB2516477A (en) * | 2013-07-24 | 2015-01-28 | Ibm | Method and system for handling virtual memory address synonyms in a multi-level cache hierarchy structure |
US9600413B2 (en) | 2013-12-24 | 2017-03-21 | Intel Corporation | Common platform for one-level memory architecture and two-level memory architecture |
US9418009B2 (en) | 2013-12-27 | 2016-08-16 | Intel Corporation | Inclusive and non-inclusive tracking of local cache lines to avoid near memory reads on cache line memory writes into a two level system memory |
-
2015
- 2015-12-23 US US14/757,926 patent/US9747041B2/en active Active
-
2016
- 2016-11-22 WO PCT/US2016/063427 patent/WO2017112270A1/en active Application Filing
- 2016-11-22 DE DE112016006025.4T patent/DE112016006025T5/de active Pending
- 2016-11-22 CN CN201680068412.6A patent/CN108351831B/zh active Active
-
2017
- 2017-08-23 US US15/684,936 patent/US10042562B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572503A (zh) * | 2009-03-03 | 2015-04-29 | 高通股份有限公司 | 可配置高速缓冲存储器及其配置方法 |
CN103562887A (zh) * | 2011-05-23 | 2014-02-05 | 国际商业机器公司 | 用于存储设备的第一高速缓存和第二高速缓存中的轨道的高速缓存管理 |
CN104679669A (zh) * | 2014-11-27 | 2015-06-03 | 华为技术有限公司 | 高速缓存cache存储器***及访问缓存行cache line的方法 |
Non-Patent Citations (2)
Title |
---|
"A comparative analysis of performance improvement schemes for cache memories";Krishna Kavi等;《Computers & Electrical Engineering》;20120331;第38卷(第2期);第243-257页 * |
"IP交换机中嵌入式内存数据库HSQL的索引优化";黄明飞等;《计算机工程与应用》;20021231(第23期);第194-196、203页 * |
Also Published As
Publication number | Publication date |
---|---|
US9747041B2 (en) | 2017-08-29 |
US20170185315A1 (en) | 2017-06-29 |
CN108351831A (zh) | 2018-07-31 |
US10042562B2 (en) | 2018-08-07 |
US20180004433A1 (en) | 2018-01-04 |
WO2017112270A1 (en) | 2017-06-29 |
DE112016006025T5 (de) | 2018-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6505132B2 (ja) | メモリ容量圧縮を利用するメモリコントローラならびに関連するプロセッサベースのシステムおよび方法 | |
US10896136B2 (en) | Storage system including secondary memory that predicts and prefetches data | |
KR102683696B1 (ko) | 호스트 메모리 버퍼(Host Memory Buffer)를 관리하기 위한 NVMe(Non-Volatile Memory Express) 컨트롤러를 포함하는 솔리드 스테이트 저장 장치(solid state storage device), 이를 포함하는 시스템 및 호스트의 호스트 메모리 버퍼를 관리하는 방법 | |
EP3382559B1 (en) | Apparatus, computer program product, and method to perform cache operations in a solid state drive | |
US20160098353A1 (en) | Methods and systems for memory de-duplication | |
KR102216116B1 (ko) | 메모리 모듈 및 그것의 동작 방법 | |
KR102575913B1 (ko) | 비대칭 세트 결합된 캐시 | |
JP2017516234A (ja) | 次の読取りアドレスプリフェッチングによるメモリ容量圧縮および/またはメモリ帯域幅圧縮を利用するメモリコントローラ、ならびに関連するプロセッサベースシステムおよび方法 | |
US20180089088A1 (en) | Apparatus and method for persisting blocks of data and metadata in a non-volatile memory (nvm) cache | |
JP2017519286A (ja) | 中央処理装置(cpu)搭載システム内の圧縮メモリコントローラ(cmc)を使用したメモリ帯域圧縮の提供 | |
US20170083444A1 (en) | Configuring fast memory as cache for slow memory | |
EP3382558B1 (en) | Apparatus, method and system for just-in-time cache associativity | |
US10146440B2 (en) | Apparatus, system and method for offloading collision check operations in a storage device | |
US10157148B2 (en) | Semiconductor device configured to control a wear leveling operation and operating method thereof | |
CN118020064A (zh) | 具有伪lru补充年龄信息的重新引用区间预测(rrip) | |
CN112948284A (zh) | 高速缓存媒体中的动态存取粒度 | |
CN108351831B (zh) | 用于缓存受制于对目标地址的请求的数据的设备和方法 | |
US10467137B2 (en) | Apparatus, system, integrated circuit die, and method to determine when to bypass a second level cache when evicting modified data from a first level cache | |
KR20200112435A (ko) | 캐시 메모리, 이를 포함하는 메모리 시스템, 및 그의 동작 방법 | |
US9251070B2 (en) | Methods and apparatus for multi-level cache hierarchies | |
EP4394576A1 (en) | Apparatus and methods for accessing data at a storage node | |
US10423540B2 (en) | Apparatus, system, and method to determine a cache line in a first memory device to be evicted for an incoming cache line from a second memory device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |