CN105095105A - 一种Cache分区的方法及装置 - Google Patents
一种Cache分区的方法及装置 Download PDFInfo
- Publication number
- CN105095105A CN105095105A CN201410168515.2A CN201410168515A CN105095105A CN 105095105 A CN105095105 A CN 105095105A CN 201410168515 A CN201410168515 A CN 201410168515A CN 105095105 A CN105095105 A CN 105095105A
- Authority
- CN
- China
- Prior art keywords
- cacheset
- physical memory
- cachesetmask
- target
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
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
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
本发明实施例公开了一种Cache分区的方法及装置,涉及电子信息技术领域,能够为执行实体灵活分配物理内存和Cache?Set,减少了多个执行实体在Cache的使用上产生的干扰,提高访存性能。本发明的方法包括:所述操作系统为执行实体分配物理内存;在所述主机包括的Cache?Sets中,选取未被占用的一个或多个Cache?Set,将为所述执行主体分配的物理内存中的数据缓存至所述选取的Cache?Set中,建立为所述执行主体分配的物理内存与所述选取的Cache?Set的对应关系。本发明适用于为执行实体分配合适的Cache?Set的场景。
Description
技术领域
本发明涉及电子信息技术领域,尤其涉及一种Cache分区的方法及装置。
背景技术
在云计算和数据中心的应用中,为了能够充分的利用资源,单节点内往往存在多个执行实体,如:进程、虚拟机或多内核操作系统中的内核等。操作系统需要对每一个执行实体分配物理内存,现有技术中的Cache索引方式决定了物理内存与Cache(高速缓冲存储器)存在对应关系,分配物理内存后相当于为执行实体分配了Cache,多个执行实体运行时,各个执行实体在Cache的使用上会产生干扰,如:一个进程频繁刷新Cache,使得其他进程访问Cache的成功率下降,从而造成访存延迟。因为在现有技术中,物理内存的地址的低几位与CacheSet(缓存组)存在固定的对应关系,且物理内存的地址的低几位固定不变,连续的物理内存往往会跨越多个CacheSet,为了避免多个执行实体在Cache的使用上产生干扰,操作系统为执行实体分配不连续的物理内存,以求一个执行实体缓存在同一个CacheSet中,不同的CacheSet之间不会产生干扰,所以,多个执行实体运行时,不会造成访存延误。
但是,在一些工作场景中,如启动场景或设备直接内存存取场景,操作系统需要对执行实体分配连续的物理内存,而连续的物理内存往往跨越了多个不同的CacheSet,需要连续的物理内存的执行实体极有可能与其他的执行实体共用相同的一个或多个CacheSet,在这种情况下,多个执行实体在Cache的使用上仍然会产生干扰,造成访存延误,从而降低访存性能。
发明内容
本发明的实施例提供一种Cache分区的方法及装置,能够为执行实体灵活分配物理内存和CacheSet,减少了多个执行实体在Cache的使用上产生的干扰,提高访存性能。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种Cache分区的方法,用于主机,所述主机运行有操作系统,所述主机包括物理内存和缓存组CacheSets,所述物理内存用于存储数据,所述CacheSet用于缓存所述物理内存中的数据;所述方法包括:
所述操作系统为执行实体分配物理内存,为所述执行实体分配的物理内存用于存储所述执行实体运行时需要的数据;
在所述主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为所述执行主体分配的物理内存中的数据缓存至所述选取的CacheSet中,建立为所述执行主体分配的物理内存与所述选取的CacheSet的对应关系。
结合第一方面,在第一种可能的实现方式中,所述主机包括重染色组件,所述重染色组件用于读取重染色表,所述重染色表用于记录为所述执行主体分配的物理内存与所述选取的CacheSet的对应关系;所述建立为所述执行主体分配的物理内存与所述选取的CacheSet的对应关系,包括:
建立所述重染色表,并在所述重染色表中,建立为所述执行主体分配的物理内存地址与缓存组掩码CacheSetMask的对应关系,所述CacheSetMask用于标识所述选取的CacheSet。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:
获取所述重染色表;
根据为所述执行主体分配的物理内存地址,在所述重染色表中,查找并获取目标CacheSetMask,所述目标CacheSetMask与为所述执行主体分配的物理内存地址对应;
根据所述目标CacheSetMask,确定并访问所述目标CacheSet,所述目标CacheSetMask与所述目标CacheSet对应。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,在所述查找并获取目标CacheSetMask之后,包括:
将所述目标CacheSetMask存储至为所述执行主体分配的物理内存地址的影子地址空间ShadowAddressSpace;
当所述执行实体再次索引所述目标CacheSet时,根据存储至所述ShadowAddressSpace的所述目标CacheSetMask,确定并访问所述目标CacheSet。
结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中,所述主机还包括内存管理单元MMU,所述MMU用于缓存页表缓存项,所述页表缓存项中包括所述执行实体的标识ID;在所述查找并获取目标CacheSetMask之后,包括:
在所述MMU的页表缓存项中添加与所述执行实体的标识ID对应的所述目标CacheSetMask;
当所述执行实体再次索引所述目标CacheSet时,根据所述执行实体的标识ID,在所述页表缓存项中得到所述目标CacheSetMask;
根据所述目标CacheSetMask,确定并访问所述目标CacheSet。
结合第一方面的第二种可能的实现方式,在第五种可能的实现方式中,所述主机包括缓存寄存器;所述获取所述重染色表,包括:
检测所述缓存寄存器中是否存在所述重染色表;
若存在,则从所述缓存寄存器中获取所述重染色表;
若不存在,则从物理内存中获取所述重染色表。
第二方面,本发明实施例提供一种Cache分区的装置,所述装置运行有操作系统,所述装置包括物理内存和缓存组CacheSets,所述物理内存用于存储数据,所述CacheSet用于缓存所述物理内存中的数据;所述装置包括:
分配模块,用于为执行实体分配物理内存,为所述执行实体分配的物理内存用于存储所述执行实体运行时需要的数据;
建立关系模块,用于在所述主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为所述执行主体分配的物理内存中的数据缓存至所述选取的CacheSet中,建立为所述执行主体分配的物理内存与所述选取的CacheSet的对应关系。
结合第二方面,在第一种可能的实现方式中,所述装置包括重染色组件,所述重染色组件用于读取重染色表,所述重染色表用于记录为所述执行主体分配的物理内存与所述选取的CacheSet的对应关系;所述建立关系模块,包括:
重染色表单元,用于建立所述重染色表,并在所述重染色表中,建立为所述执行主体分配的物理内存地址与缓存组掩码CacheSetMask的对应关系,所述CacheSetMask用于标识所述选取的CacheSet。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述装置还包括:
重染色表获取模块,用于获取所述重染色表;
查找模块,用于根据为所述执行主体分配的物理内存地址,在所述重染色表中,查找并获取目标CacheSetMask,所述目标CacheSetMask与为所述执行主体分配的物理内存地址对应;
第一访问模块,用于根据所述目标CacheSetMask,确定并访问所述目标CacheSet,所述目标CacheSetMask与所述目标CacheSet对应。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述装置包括:
存储模块,用于将所述目标CacheSetMask存储至为所述执行主体分配的物理内存地址的影子地址空间ShadowAddressSpace;
第二访问模块,用于当所述执行实体再次索引所述目标CacheSet时,根据存储至所述ShadowAddressSpace的所述目标CacheSetMask,确定并访问所述目标CacheSet。
结合第二方面的第二种可能的实现方式,在第四种可能的实现方式中,所述装置还包括内存管理单元MMU,所述MMU用于缓存页表缓存项,所述页表缓存项中包括所述执行实体的标识ID;所述装置包括:
添加模块,用于在所述MMU的页表缓存项中添加与所述执行实体的标识ID对应的所述目标CacheSetMask;
掩码获取模块,用于当所述执行实体再次索引所述目标CacheSet时,根据所述执行实体的标识ID,在所述页表缓存项中得到所述目标CacheSetMask;
第三访问模块,用于根据所述目标CacheSetMask,确定并访问所述目标CacheSet。
结合第二方面的第二种可能的实现方式,在第五种可能的实现方式中,所述装置包括缓存寄存器;所述重染色表获取模块,包括:
检测单元,用于检测所述缓存寄存器中是否存在所述重染色表;
第一获取单元,用于当存在时,从所述缓存寄存器中获取所述重染色表;
第二获取单元,用于当不存在时,从物理内存中获取所述重染色表。
本发明实施例提供的一种Cache分区的方法及装置,能够为执行实体分配物理内存,在主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为执行主体分配的物理内存中的数据缓存至选取的CacheSet中,建立为执行主体分配的物理内存与选取的CacheSet的对应关系。与现有技术中的:根据物理内存的地址的低几位与CacheSet的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的CacheSet相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的CacheSet中,并建立分配给执行实体的物理内存与CacheSet的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和CacheSet,为不同的执行实体分配不同的CacheSet,避免了多个执行实体共用相同的一个或多个CacheSet的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种Cache分区的方法的流程图;
图1a为本发明实施例提供的一种执行实体、物理内存和CacheSet对应关系的举例示意图;
图2为本发明实施例提供的一种Cache分区的方法的一种具体实现方式的流程图;
图2a为本发明实施例提供的一种Cache系统的举例结构示意图;
图2b为本发明实施例提供的一种重染色表的示意图;
图3、图4、图5为本发明实施例提供的另一种Cache分区的方法的流程图;
图4a、图4b、图4c为本发明实施例提供的访问CacheSet的举例示意图;
图5a为本发明实施例提供的一种页表缓存项的举例示意图;
图6a、图6b、图6c为本发明实施例提供的另一种Cache分区的方法的一种具体实现方式的流程图;
图7为本发明实施例提供的一种Cache分区的装置的结构示意图;
图8为本发明实施例提供的一种Cache分区的装置的一种具体实现方式的结构示意图;
图9为本发明实施例提供的另一种Cache分区的装置的结构示意图;
图10为本发明实施例提供的另一种Cache分区的装置的结构示意图;
图11为本发明实施例提供的另一种Cache分区的装置的结构示意图;
图12为本发明实施例提供的另一种Cache分区的装置的一种具体实现方式的结构示意图;
图13为本发明实施例提供的一种Cache分区设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供的技术方案应用于主机,运行于主机的操作系统能够为执行实体灵活的分配物理内存与CacheSet(缓存组)。其中,主机中可以包括虚拟机系统下的多虚拟机操作系统、众核硬件平台下的多内核操作系统或单体系统下的多进程调度系统,也就是说,执行实体可以是进程、内核或虚拟机等。为了实现本技术方案在主机中的应用,至少需要在主机中的Cache系统中添加了Cache分区器件或者Cache分区模块,用来建立、查询为执行实体分配的物理内存和CacheSet的对应关系。本方案可以应用于各级缓存,如:一级缓存、二级缓存、三级缓存等。
本发明实施例提供了一种Cache分区的方法,如图1所示,包括:
101,所述操作系统为执行实体分配物理内存。
其中,操作系统运行于主机中,主机中包括物理内存和缓存组CacheSet,
其中,执行实体可以是进程、虚拟机或内核等,操作系统可以根据每一个执行实体的具体情况以及操作系统的策略决策,为执行实体分配合适的物理内存。为执行实体分配的物理内存用于存储执行实体运行时需要的数据,缓存组CacheSet可以用于缓存物理内存中的数据。
需要说明的是,本方案中,为执行实体分配的物理内存可以是连续的,也可以是不连续的,根据执行实体的场景而定,比如:启动场景或者设备直接内存存取的场景,操作系统为执行实体分配连续的物理内存;其他的场景,操作系统也可以为执行主体分配不连续的物理内存。
102,在所述主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为所述执行主体分配的物理内存中的数据缓存至所述选取的CacheSet中,建立为所述执行主体分配的物理内存与所述选取的CacheSet的对应关系。
其中,主机中往往包括多个缓存组CacheSet,在多个CacheSet中,一部分CacheSet可能已经被其他执行主体所占用,缓存了其他执行主体运行需要的数据;另一部分的CacheSet未被执行主体占用,处于空闲状态,是未被占用的CacheSet。在本实施例中,在主机中的CacheSets中,选取未被占用的CacheSet,避免与其他执行主体共同占用同一个CacheSet。选取的未被占用的CacheSet可以是一个,也可以是多个。将为执行主体分配的物理内存中的数据缓存至选取的CacheSet中,建立执行实体的物理内存和CacheSet的对应关系,使得一个执行实体的物理内存对应一个CacheSet或多个CacheSet,不同的执行实体的物理内存对应不同的CacheSet。
优选的,分配给执行实体的物理内存与CacheSet的对应关系,可以用为执行实体分配的物理内存地址与CacheSetMask的对应关系表示,CacheSetMask用于标识CacheSet。
需要说明的是,在重新为执行实体分配物理内存的情况下,操作系统会更新已经建立的对应关系,从而保证执行实体的正常运行。
比如:如图1a所示,在多内核系统中,管理内核相当于操作系统,管理内核为每一个轻量级内核分配物理内存,选取未被占用的CacheSet(缓存组),将为轻量级内核分配的物理内存中的数据缓存至选取的CacheSet中,建立为轻量级内核分配的物理内存与选取的CacheSet的对应关系,从而可以利用管理内核的缓存分区管理功能,通过缓存性能隔离功能模块为每一个轻量级内核分配对应的CacheSet。当创建、销毁、迁移轻量级内核时,管理内核会重设缓存分区管理功能。
本发明实施例提供的一种Cache分区的方法,能够为执行实体分配物理内存,在主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为执行主体分配的物理内存中的数据缓存至选取的CacheSet中,建立为执行主体分配的物理内存与选取的CacheSet的对应关系。与现有技术中的:根据物理内存的地址的低几位与CacheSet的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的CacheSet相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的CacheSet中,并建立分配给执行实体的物理内存与CacheSet的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和CacheSet,为不同的执行实体分配不同的CacheSet,避免了多个执行实体共用相同的一个或多个CacheSet的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能。
进一步的,在图1所示的方案的基础上,本发明实施例还提供了一种Cache分区的方法的具体方案,主机包括重染色组件,重染色组件用于读取重染色表,重染色表用于记录分配给执行实体的物理内存和CacheSet的对应关系。本方案对图1所示的方案中的102的执行过程进一步细化,其中,102可以具体实现为1021,如图2所示,包括:
1021,在所述主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为所述执行主体分配的物理内存中的数据缓存至所述选取的CacheSet中,建立所述重染色表,并在所述重染色表中,建立为所述执行主体分配的物理内存地址与缓存组掩码CacheSetMask的对应关系。
其中,操作系统可以用表项的形式记录分配给执行实体的物理内存和CacheSet的对应关系,本方案中,操作系统使用重染色表来记录分配给执行实体的物理内存和CacheSet的对应关系。重染色表可以存储在物理内存中,也可以缓存在Cache控制器的缓存寄存器中。
在具体应用中,主机中的缓存Cache系统往往包括Cache控制器,可以在Cache控制器中增加Cache分区器件或Cache分区模块,Cache分区器件或Cache分区模块包括重染色组件。也可以下缓存Cache系统中的其他器件或部位添加Cache分区器件或Cache分区模块,在这里不做限定。
需要说明的是,一般情况下,重染色表由操作系统内核管理、建立、更新;在虚拟机系统中,重染色表由VMM(VirtualMachineManager,虚拟机管理程序)管理、建立、更新;在多内核系统中,重染色表由管理内核管理、建立、更新。
进一步的,为了实现本发明的技术方案,可以在主机的Cache系统中的Cache控制器中增添Cache分区模块,如图2a所示,Cache分区模块包括重染色组件、缓存寄存器和控制空间。重染色组件用于读取重染色表,缓存寄存器可以用于缓存重染色表,控制空间提供了一组控制寄存器支持Cache分区模块的启动和初始化。当硬件线程运行时,内存管理单元可以进行虚拟地址和物理地址的转换。
其中,物理内存与CacheSet的对应关系可以用物理内存地址和CacheSetMask(缓存组掩码)表示,CacheSetMask用于标识CacheSet。如图2b所示的重染色表,将建立的分配给执行实体的物理内存地址与CacheSetMask的对应关系记录在重染色表中,当执行实体运行时,能够根据重染色表中记录的对应关系,查找为这个执行实体分配的CacheSet,从而获取这个执行实体运行需要的数据。
需要说明的是,重染色表中的物理内存地址范围的大小可以是Cacheline的大小,即64bytes,也可以是一个内存页的大小,即4KB,还可以是多个内存页的大小。CacheSetMask可以标识一个CacheSet,也可以标识多个CacheSet。
在操作系统检测到执行实体的更新时,也会同步更新重染色表,具体更新过程如:更新执行实体的数据结构,执行实体的数据结构用于生成重染色表中关于该执行实体的相关数据,操作系统根据更新后的执行实体的数据结构,更新重染色表中的对应关系的数据。其中,可以清空对应的Cacheline,或者对Cacheline进行写回操作。
本发明实施例提供的一种Cache分区的方法,能够为执行实体分配物理内存,在主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为执行主体分配的物理内存中的数据缓存至选取的CacheSet中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码CacheSetMask的对应关系。与现有技术中的:根据物理内存的地址的低几位与CacheSet的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的CacheSet相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的CacheSet中,并建立分配给执行实体的物理内存与CacheSet的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和CacheSet,为不同的执行实体分配不同的CacheSet,避免了多个执行实体共用相同的一个或多个CacheSet的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能。
此外,在图2所示的方案的基础上,本发明实施例还提供了一种Cache分区的方法的具体方案,增添103-105,具体说明在建立了为执行实体分配的物理内存与CacheSet的对应关系后,如何访问执行实体对应的CacheSet,如图3所示,包括:
103,获取所述重染色表。
其中,重染色表可以存储在物理内存中,也可以存储在缓存寄存器中。
104,根据为所述执行主体分配的物理内存地址,在所述重染色表中,查找并获取目标CacheSetMask。
其中,目标CacheSetMask与为执行主体分配的物理内存地址对应,重染色表中记录了为所有执行实体分配的物理内存地址和CacheSetMask的对应关系,根据为执行主体分配的物理内存地址,就可以查找到对应的CacheSetMask,即目标CacheSetMask。
105,根据所述目标CacheSetMask,确定并访问所述目标CacheSet。
其中,目标CacheSetMask与目标CacheSet对应。
本发明实施例提供的一种Cache分区的方法,能够为执行实体分配物理内存,在主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为执行主体分配的物理内存中的数据缓存至选取的CacheSet中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码CacheSetMask的对应关系;获取重染色表,根据为执行主体分配的物理内存地址,在重染色表中,查找并获取目标CacheSetMask,根据目标CacheSetMask,访问目标CacheSet。与现有技术中的:根据物理内存的地址的低几位与CacheSet的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的CacheSet相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的CacheSet中,并建立分配给执行实体的物理内存与CacheSet的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和CacheSet,为不同的执行实体分配不同的CacheSet,避免了多个执行实体共用相同的一个或多个CacheSet的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能。
此外,在图3所示的方案的基础上,本发明实施例还提供了一种Cache分区的方法的具体方案,本方案增添了106-107,如图4所示,包括:
106,将所述目标CacheSetMask存储至为所述执行主体分配的物理内存地址的影子地址空间ShadowAddressSpace。
其中,现有的处理器寻址空间范围较大,但是主流处理器的物理内存地址只使用了其中的一部分空间,另一部分没有使用的空间是空闲的,这部分物理内存地址的空闲的空间就是ShadowAddressSpace。比如:现有64位处理器寻址空间范围是64位,但是主流处理器只使用了物理内存地址的低48位,物理内存地址的高16位基本是空闲的,物理内存地址的高16位就是ShadowAddressSpace。将CacheSetMask存储至ShadowAddressSpace,使得执行实体再次索引目标CacheSet时,就可以通过物理地址的ShadowAddressSpace来索引CacheSet,提高了Cache的访存效率。
需要说明的是,105和106在时序上不分先后,可以在105之前执行106,也可以在105之后执行106,还可以同时执行105和106,105和106的时序关系在此不作限定。
107,当所述执行实体再次索引所述目标CacheSet时,根据存储至所述ShadowAddressSpace的所述目标CacheSetMask,确定并访问所述目标CacheSet。
比如:如图4a所示,当三级缓存接收到来自二级缓存的请求物理地址时,根据重染色表中的对应关系和ShadowAddressSpace(影子地址空间),确定并访问目标CacheSet。
需要说明的是,如图4b所示,如果需要对一级缓存等私有Cache进行分区,可以在Cache系统进行虚实地址转换时,就在ShadowAddressSpace(影子地址空间)存储与物理内存地址对应的CacheSetMask。
可选的,可以在访存请求中增加执行实体标识,来标识发出请求的执行实体,重染色表中也可以记录执行实体标识与CacheSetMask(缓存组掩码)的对应关系,如图4c所示,可以将执行实体标识存储至ShadowAddressSpace,根据重染色表中的对应关系和ShadowAddressSpace(影子地址空间),确定并访问目标CacheSet。
本发明实施例提供的一种Cache分区的方法,能够为执行实体分配物理内存,在主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为执行主体分配的物理内存中的数据缓存至选取的CacheSet中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码CacheSetMask的对应关系;获取重染色表,根据为执行主体分配的物理内存地址,在重染色表中,查找并获取目标CacheSetMask,根据目标CacheSetMask,访问目标CacheSet;将目标CacheSetMask存储至为执行主体分配的物理内存地址的影子地址空间ShadowAddressSpace,当执行实体再次索引目标CacheSet时,根据存储至ShadowAddressSpace的目标CacheSetMask,确定并访问目标CacheSet。与现有技术中的:根据物理内存的地址的低几位与CacheSet的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的CacheSet相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的CacheSet中,并建立分配给执行实体的物理内存与CacheSet的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和CacheSet,为不同的执行实体分配不同的CacheSet,避免了多个执行实体共用相同的一个或多个CacheSet的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能;而且,当执行实体再次索引目标CacheSet时,可以直接利用ShadowAddressSpace中的CacheSetMask进行索引,确定并访问目标CacheSet,节省了确定目标CacheSet的时间,提高了Cache访存的效率。
可选的,在图3所示的方案的基础上,本发明实施例还提供了一种Cache分区的方法的具体方案,主机还包括内存管理单元MMU,MMU用于缓存页表缓存项,页表缓存项中包括执行实体的标识ID;本方案增添了108-110,利用页表缓存项,访问目标CacheSet,如图5所示,包括:
108,在所述MMU的页表缓存项中添加与所述执行实体的标识ID对应的所述目标CacheSetMask。
其中,如图5a所示的页表缓存项,添加与执行实体标识对应的CacheSetMask,便于通过MMU的页表缓存项确定并访问目标CacheSet。
需要说明的是,105和108在时序上不分先后,可以在105之前执行108,也可以在105之后执行108,还可以同时执行105和108,105和108的时序关系在此不作限定。
109,当所述执行实体再次索引所述目标CacheSet时,根据所述执行实体的标识ID,在所述页表缓存项中得到所述目标CacheSetMask。
比如:根据如图5a所示的页表缓存项和执行实体的执行实体标识,可以确定目标CacheSetMask。
110,根据所述目标CacheSetMask,确定并访问所述目标CacheSet。
本发明实施例提供的一种Cache分区的方法,能够为执行实体分配物理内存,在主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为执行主体分配的物理内存中的数据缓存至选取的CacheSet中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码CacheSetMask的对应关系;获取重染色表,根据为执行主体分配的物理内存地址,在重染色表中,查找并获取目标CacheSetMask,根据目标CacheSetMask,访问目标CacheSet;在MMU的页表缓存项中添加与执行实体的标识ID对应的目标CacheSetMask,当执行实体再次索引目标CacheSet时,根据执行实体的标识ID,在页表缓存项中得到目标CacheSetMask,从而确定并访问目标CacheSet。与现有技术中的:根据物理内存的地址的低几位与CacheSet的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的CacheSet相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的CacheSet中,并建立分配给执行实体的物理内存与CacheSet的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和CacheSet,为不同的执行实体分配不同的CacheSet,避免了多个执行实体共用相同的一个或多个CacheSet的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能;而且,执行实体再次索引目标CacheSet时,可以直接利用MMU的页表缓存项中的执行实体标识和CacheSetMask的对应关系进行索引,确定并访问目标CacheSet,节省了确定目标CacheSet的时间,提高了Cache的访存效率。
更进一步的,在图3、图4、图5所示的方案的基础上,本发明实施例还提供了一种Cache分区的方法的具体方案,本方案对图3、图4、图5所示的方案中的103的执行过程进一步细化,其中,103可以具体实现为1031-1033,如图6a、图6b、图6c所示,包括:
1031,检测所述缓存寄存器中是否存在所述重染色表。
其中,Cache系统包括缓存寄存器,重染色表可以存储在物理内存中,也可以存储在缓存寄存器中,从缓存寄存器中读取重染色表速度更快。
1032,从所述缓存寄存器中获取所述重染色表。
1033,从物理内存中获取所述重染色表。
本发明实施例提供的一种Cache分区的方法,能够为执行实体分配物理内存,在主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为执行主体分配的物理内存中的数据缓存至选取的CacheSet中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码CacheSetMask的对应关系;检测缓存寄存器中是否存重染色表,存在时,从缓存寄存器中获取重染色表,不存在时,从物理内存中获取所述重染色表,根据为执行主体分配的物理内存地址,在重染色表中,查找并获取目标CacheSetMask,根据目标CacheSetMask,访问目标CacheSet。与现有技术中的:根据物理内存的地址的低几位与CacheSet的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的CacheSet相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的CacheSet中,并建立分配给执行实体的物理内存与CacheSet的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和CacheSet,为不同的执行实体分配不同的CacheSet,避免了多个执行实体共用相同的一个或多个CacheSet的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能;而且,从缓存寄存器中获取重染色表的速度更快,首先考虑从缓存寄存器中获取重染色表,节省了确定目标CacheSet的时间,从而提高了Cache的访存效率。
本发明实施例提供了一种Cache分区的装置200,装置200运行有操作系统,装置200包括物理内存和缓存组CacheSets,物理内存用于存储数据,CacheSet用于缓存所述物理内存中的数据,如图7所示,包括:
分配模块201,用于为执行实体分配物理内存。
其中,为执行实体分配的物理内存用于存储执行实体运行时需要的数据。
建立关系模块202,用于在所述主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为所述执行主体分配的物理内存中的数据缓存至所述选取的CacheSet中,建立为所述执行主体分配的物理内存与所述选取的CacheSet的对应关系。
本发明实施例提供的一种Cache分区的装置,能够为执行实体分配物理内存,在主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为执行主体分配的物理内存中的数据缓存至选取的CacheSet中,建立为执行主体分配的物理内存与选取的CacheSet的对应关系。与现有技术中的:根据物理内存的地址的低几位与CacheSet的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的CacheSet相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的CacheSet中,并建立分配给执行实体的物理内存与CacheSet的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和CacheSet,为不同的执行实体分配不同的CacheSet,避免了多个执行实体共用相同的一个或多个CacheSet的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能。
进一步的,装置200包括重染色组件,重染色组件用于读取重染色表,重染色表用于记录为所述执行主体分配的物理内存与所述选取的CacheSet的对应关系;如图8所示,建立关系模块202,包括:
重染色表单元2021,用于建立所述重染色表,并在所述重染色表中,建立为所述执行主体分配的物理内存地址与缓存组掩码CacheSetMask的对应关系。
其中,CacheSetMask用于标识选取的CacheSet。
发明实施例提供的一种Cache分区的装置,能够为执行实体分配物理内存,在主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为执行主体分配的物理内存中的数据缓存至选取的CacheSet中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码CacheSetMask的对应关系。与现有技术中的:根据物理内存的地址的低几位与CacheSet的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的CacheSet相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的CacheSet中,并建立分配给执行实体的物理内存与CacheSet的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和CacheSet,为不同的执行实体分配不同的CacheSet,避免了多个执行实体共用相同的一个或多个CacheSet的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能。
此外,如图9所示,装置200还包括:
重染色表获取模块203,用于获取所述重染色表。
查找模块204,用于根据为所述执行主体分配的物理内存地址,在所述重染色表中,查找并获取目标CacheSetMask。
其中,目标CacheSetMask与为执行实体分配的物理内存地址对应。
第一访问模块205,用于根据所述目标CacheSetMask,确定并访问所述目标CacheSet。
其中,目标CacheSetMask与目标CacheSet对应。
本发明实施例提供的一种Cache分区的装置,能够为执行实体分配物理内存,在主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为执行主体分配的物理内存中的数据缓存至选取的CacheSet中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码CacheSetMask的对应关系;获取重染色表,根据为执行主体分配的物理内存地址,在重染色表中,查找并获取目标CacheSetMask,根据目标CacheSetMask,访问目标CacheSet。与现有技术中的:根据物理内存的地址的低几位与CacheSet的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的CacheSet相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的CacheSet中,并建立分配给执行实体的物理内存与CacheSet的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和CacheSet,为不同的执行实体分配不同的CacheSet,避免了多个执行实体共用相同的一个或多个CacheSet的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能。
进一步的,如图10所示,装置200包括:
存储模块206,用于将所述目标CacheSetMask存储至为所述执行实体分配的物理内存地址的影子地址空间ShadowAddressSpace。
第二访问模块207,用于当所述执行实体再次索引所述目标CacheSet时,根据存储至所述ShadowAddressSpace的所述目标CacheSetMask,确定并访问所述目标CacheSet。
本发明实施例提供的一种Cache分区的装置,能够为执行实体分配物理内存,在主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为执行主体分配的物理内存中的数据缓存至选取的CacheSet中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码CacheSetMask的对应关系;获取重染色表,根据为执行主体分配的物理内存地址,在重染色表中,查找并获取目标CacheSetMask,根据目标CacheSetMask,访问目标CacheSet;将目标CacheSetMask存储至为执行主体分配的物理内存地址的影子地址空间ShadowAddressSpace,当执行实体再次索引目标CacheSet时,根据存储至ShadowAddressSpace的目标CacheSetMask,确定并访问目标CacheSet。与现有技术中的:根据物理内存的地址的低几位与CacheSet的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的CacheSet相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的CacheSet中,并建立分配给执行实体的物理内存与CacheSet的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和CacheSet,为不同的执行实体分配不同的CacheSet,避免了多个执行实体共用相同的一个或多个CacheSet的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能;而且,当执行实体再次索引目标CacheSet时,可以直接利用ShadowAddressSpace中的CacheSetMask进行索引,确定并访问目标CacheSet,节省了确定目标CacheSet的时间,提高了Cache访存的效率。
进一步的,装置200还包括内存管理单元MMU,MMU用于用于缓存页表缓存项,页表缓存项中包括执行实体的标识ID,如图11所示,装置200还包括:
添加模块208,用于在所述MMU的页表缓存项中添加与所述执行实体的标识ID对应的所述目标CacheSetMask。
掩码获取模块209,用于当所述执行实体再次索引所述目标CacheSet时,根据所述执行实体的标识ID,在所述页表缓存项中得到所述目标CacheSetMask。
第三访问模块210,用于根据所述目标CacheSetMask,确定并访问所述目标CacheSet。
本发明实施例提供的一种Cache分区的装置,能够为执行实体分配物理内存,在主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为执行主体分配的物理内存中的数据缓存至选取的CacheSet中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码CacheSetMask的对应关系;获取重染色表,根据为执行主体分配的物理内存地址,在重染色表中,查找并获取目标CacheSetMask,根据目标CacheSetMask,访问目标CacheSet;在MMU的页表缓存项中添加与执行实体的标识ID对应的目标CacheSetMask,当执行实体再次索引目标CacheSet时,根据执行实体的标识ID,在页表缓存项中得到目标CacheSetMask,从而确定并访问目标CacheSet。与现有技术中的:根据物理内存的地址的低几位与CacheSet的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的CacheSet相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的CacheSet中,并建立分配给执行实体的物理内存与CacheSet的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和CacheSet,为不同的执行实体分配不同的CacheSet,避免了多个执行实体共用相同的一个或多个CacheSet的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能;而且,执行实体再次索引目标CacheSet时,可以直接利用MMU的页表缓存项中的执行实体标识和CacheSetMask的对应关系进行索引,确定并访问目标CacheSet,节省了确定目标CacheSet的时间,提高了Cache的访存效率。
更进一步的,Cache系统包括缓存寄存器,如图12所示,重染色表获取模块203,包括:
检测单元2031,用于检测所述缓存寄存器中是否存在所述重染色表。
第一获取单元2032,用于当存在时,从所述缓存寄存器中获取所述重染色表。
第二获取单元2033,用于当不存在时,从物理内存中获取所述重染色表。
本发明实施例提供的一种Cache分区的装置,能够为执行实体分配物理内存,在主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为执行主体分配的物理内存中的数据缓存至选取的CacheSet中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码CacheSetMask的对应关系;检测缓存寄存器中是否存重染色表,存在时,从缓存寄存器中获取重染色表,不存在时,从物理内存中获取所述重染色表,根据为执行主体分配的物理内存地址,在重染色表中,查找并获取目标CacheSetMask,根据目标CacheSetMask,访问目标CacheSet。与现有技术中的:根据物理内存的地址的低几位与CacheSet的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的CacheSet相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的CacheSet中,并建立分配给执行实体的物理内存与CacheSet的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和CacheSet,为不同的执行实体分配不同的CacheSet,避免了多个执行实体共用相同的一个或多个CacheSet的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能;而且,从缓存寄存器中获取重染色表的速度更快,首先考虑从缓存寄存器中获取重染色表,节省了确定目标CacheSet的时间,从而提高了Cache的访存效率。
本发明实施例还提供了一种Cache分区设备300,如图13所示,包括:至少一个处理器301,例如CPU(centralprocessunit),至少一个通信总线302,存储器303。另外,该网络管理服务器300还可以包括至少一个网络接口304和用户接口305。通信总线302用于实现这些组件之间的连接通信。可选的,用户接口305包括显示器、键盘、鼠标、触摸屏等设备。存储器303包括缓存器Cache,可能包含高速RAM(randomaccessmemory)存储器,也可能还包括非易失性存储器(non-volatilememory),例如磁盘存储器。
具体的,存储器303用于存储执行实体运行时需要的数据,还用于存储建立的为执行实体分配的物理内存与CacheSet的对应关系。
进一步的,存储器303还用于存储在重染色表中为执行实体分配的物理内存地址与CacheSetMask的对应关系,或者执行实体的标识ID与CacheSetMask的对应关系。
具体的,处理器301可以用于为执行实体分配物理内存;以及,用于在所述主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为所述执行主体分配的物理内存中的数据缓存至所述选取的CacheSet中,建立为所述执行主体分配的物理内存与所述选取的CacheSet的对应关系。
进一步的,处理器301可以用于建立所述重染色表,并在所述重染色表中,建立为所述执行实体分配的物理内存地址与缓存组掩码CacheSetMask的对应关系,所述CacheSetMask用于标识选取的CacheSet。
其中,Cache分区设备300包括重染色组件,所述重染色组件用于读取重染色表,所述重染色表用于记录为执行主体分配的物理内存与选取的CacheSet的对应关系。
此外,处理器301可以用于获取所述重染色表;以及,用于根据为所述执行实体分配的物理内存地址,在所述重染色表中,查找并获取目标CacheSetMask,所述目标CacheSetMask与为所述执行实体分配的物理内存地址对应;以及,用于根据所述目标CacheSetMask,确定并访问所述目标CacheSet,所述目标CacheSetMask与所述目标CacheSet对应。
此外,处理器301还可以用于将所述目标CacheSetMask存储至为所述执行实体分配的物理内存地址的影子地址空间ShadowAddressSpace;以及,用于当所述执行实体再次索引所述目标CacheSet时,根据存储至所述ShadowAddressSpace的所述目标CacheSetMask,确定并访问所述目标CacheSet。
可选的,处理器301还可以用于在所述MMU的页表缓存项中添加与所述执行实体的标识ID对应的CacheSetMask;以及,用于当所述执行实体再次索引所述目标CacheSet时,根据所述执行实体的标识ID,在所述页表缓存项中得到所述目标CacheSetMask;以及,用于根据所述目标CacheSetMask,确定并访问所述目标CacheSet。
更进一步的,处理器301还可以用于检测所述缓存寄存器中是否存在所述重染色表;以及,用于当存在时,从所述缓存寄存器中获取所述重染色表;以及,用于当不存在时,从物理内存中获取所述重染色表。
本发明实施例提供的一种Cache分区设备,能够为执行实体分配物理内存,在主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为执行主体分配的物理内存中的数据缓存至选取的CacheSet中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码CacheSetMask的对应关系;检测缓存寄存器中是否存重染色表,存在时,从缓存寄存器中获取重染色表,不存在时,从物理内存中获取所述重染色表,根据为执行主体分配的物理内存地址,在重染色表中,查找并获取目标CacheSetMask,根据目标CacheSetMask,访问目标CacheSet;将目标CacheSetMask存储至为执行主体分配的物理内存地址的影子地址空间ShadowAddressSpace,当执行实体再次索引目标CacheSet时,根据存储至ShadowAddressSpace的目标CacheSetMask,确定并访问目标CacheSet;或者,在MMU的页表缓存项中添加与执行实体的标识ID对应的目标CacheSetMask,当执行实体再次索引目标CacheSet时,根据执行实体的标识ID,在页表缓存项中得到目标CacheSetMask,从而确定并访问目标CacheSet。与现有技术中的:根据物理内存的地址的低几位与CacheSet的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的CacheSet相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的CacheSet中,并建立分配给执行实体的物理内存与CacheSet的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和CacheSet,为不同的执行实体分配不同的CacheSet,避免了多个执行实体共用相同的一个或多个CacheSet的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能;而且,当执行实体再次索引目标CacheSet时,可以直接利用ShadowAddressSpace中的CacheSetMask进行索引,或者利用MMU的页表缓存项中的执行实体的标识ID和CacheSetMask进行索引,确定并访问目标CacheSet,节省了确定目标CacheSet的时间,提高了Cache访存的效率;而且,从缓存寄存器中获取重染色表的速度更快,首先考虑从缓存寄存器中获取重染色表,节省了确定目标CacheSet的时间,进一步提高了Cache访存的效率。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (12)
1.一种Cache分区的方法,用于主机,其特征在于,所述主机运行有操作系统,所述主机包括物理内存和缓存组CacheSets,所述物理内存用于存储数据,所述CacheSet用于缓存所述物理内存中的数据;所述方法包括:
所述操作系统为执行实体分配物理内存,为所述执行实体分配的物理内存用于存储所述执行实体运行时需要的数据;
在所述主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为所述执行主体分配的物理内存中的数据缓存至所述选取的CacheSet中,建立为所述执行主体分配的物理内存与所述选取的CacheSet的对应关系。
2.根据权利要求1所述的方法,其特征在于,所述主机包括重染色组件,所述重染色组件用于读取重染色表,所述重染色表用于记录为所述执行主体分配的物理内存与所述选取的CacheSet的对应关系;所述建立为所述执行主体分配的物理内存与所述选取的CacheSet的对应关系,包括:
建立所述重染色表,并在所述重染色表中,建立为所述执行主体分配的物理内存地址与缓存组掩码CacheSetMask的对应关系,所述CacheSetMask用于标识所述选取的CacheSet。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取所述重染色表;
根据为所述执行主体分配的物理内存地址,在所述重染色表中,查找并获取目标CacheSetMask,所述目标CacheSetMask与为所述执行主体分配的物理内存地址对应;
根据所述目标CacheSetMask,确定并访问所述目标CacheSet,所述目标CacheSetMask与所述目标CacheSet对应。
4.根据权利要求3所述的方法,其特征在于,在所述查找并获取目标CacheSetMask之后,包括:
将所述目标CacheSetMask存储至为所述执行主体分配的物理内存地址的影子地址空间ShadowAddressSpace;
当所述执行实体再次索引所述目标CacheSet时,根据存储至所述ShadowAddressSpace的所述目标CacheSetMask,确定并访问所述目标CacheSet。
5.根据权利要求3所述的方法,其特征在于,所述主机还包括内存管理单元MMU,所述MMU用于缓存页表缓存项,所述页表缓存项中包括所述执行实体的标识ID;在所述查找并获取目标CacheSetMask之后,包括:
在所述MMU的页表缓存项中添加与所述执行实体的标识ID对应的所述目标CacheSetMask;
当所述执行实体再次索引所述目标CacheSet时,根据所述执行实体的标识ID,在所述页表缓存项中得到所述目标CacheSetMask;
根据所述目标CacheSetMask,确定并访问所述目标CacheSet。
6.根据权利要求3所述的方法,其特征在于,所述主机包括缓存寄存器;所述获取所述重染色表,包括:
检测所述缓存寄存器中是否存在所述重染色表;
若存在,则从所述缓存寄存器中获取所述重染色表;
若不存在,则从物理内存中获取所述重染色表。
7.一种Cache分区的装置,其特征在于,所述装置运行有操作系统,所述装置包括物理内存和缓存组CacheSets,所述物理内存用于存储数据,所述CacheSet用于缓存所述物理内存中的数据;所述装置包括:
分配模块,用于为执行实体分配物理内存,为所述执行实体分配的物理内存用于存储所述执行实体运行时需要的数据;
建立关系模块,用于在所述主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为所述执行主体分配的物理内存中的数据缓存至所述选取的CacheSet中,建立为所述执行主体分配的物理内存与所述选取的CacheSet的对应关系。
8.根据权利要求7所述的装置,其特征在于,所述装置包括重染色组件,所述重染色组件用于读取重染色表,所述重染色表用于记录为所述执行主体分配的物理内存与所述选取的CacheSet的对应关系;所述建立关系模块,包括:
重染色表单元,用于建立所述重染色表,并在所述重染色表中,建立为所述执行主体分配的物理内存地址与缓存组掩码CacheSetMask的对应关系,所述CacheSetMask用于标识所述选取的CacheSet。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
重染色表获取模块,用于获取所述重染色表;
查找模块,用于根据为所述执行主体分配的物理内存地址,在所述重染色表中,查找并获取目标CacheSetMask,所述目标CacheSetMask与为所述执行主体分配的物理内存地址对应;
第一访问模块,用于根据所述目标CacheSetMask,确定并访问所述目标CacheSet,所述目标CacheSetMask与所述目标CacheSet对应。
10.根据权利要求9所述的装置,其特征在于,所述装置包括:
存储模块,用于将所述目标CacheSetMask存储至为所述执行主体分配的物理内存地址的影子地址空间ShadowAddressSpace;
第二访问模块,用于当所述执行实体再次索引所述目标CacheSet时,根据存储至所述ShadowAddressSpace的所述目标CacheSetMask,确定并访问所述目标CacheSet。
11.根据权利要求9所述的装置,其特征在于,所述装置还包括内存管理单元MMU,所述MMU用于缓存页表缓存项,所述页表缓存项中包括所述执行实体的标识ID;所述装置包括:
添加模块,用于在所述MMU的页表缓存项中添加与所述执行实体的标识ID对应的所述目标CacheSetMask;
掩码获取模块,用于当所述执行实体再次索引所述目标CacheSet时,根据所述执行实体的标识ID,在所述页表缓存项中得到所述目标CacheSetMask;
第三访问模块,用于根据所述目标CacheSetMask,确定并访问所述目标CacheSet。
12.根据权利要求9所述的装置,其特征在于,所述装置包括缓存寄存器;所述重染色表获取模块,包括:
检测单元,用于检测所述缓存寄存器中是否存在所述重染色表;
第一获取单元,用于当存在时,从所述缓存寄存器中获取所述重染色表;
第二获取单元,用于当不存在时,从物理内存中获取所述重染色表。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410168515.2A CN105095105B (zh) | 2014-04-24 | 2014-04-24 | 一种Cache分区的方法及装置 |
PCT/CN2015/077223 WO2015161804A1 (zh) | 2014-04-24 | 2015-04-22 | 一种Cache分区的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410168515.2A CN105095105B (zh) | 2014-04-24 | 2014-04-24 | 一种Cache分区的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105095105A true CN105095105A (zh) | 2015-11-25 |
CN105095105B CN105095105B (zh) | 2018-07-03 |
Family
ID=54331761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410168515.2A Active CN105095105B (zh) | 2014-04-24 | 2014-04-24 | 一种Cache分区的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105095105B (zh) |
WO (1) | WO2015161804A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112799977A (zh) * | 2021-02-26 | 2021-05-14 | 中国人民解放军国防科技大学 | 计算机的缓存分区和缓存访问实时性保护方法及装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112581351A (zh) * | 2020-12-05 | 2021-03-30 | 西安翔腾微电子科技有限公司 | 一种双发射simt染色处理单元写回单元结构及写回通路冲突检测方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6446187B1 (en) * | 2000-02-19 | 2002-09-03 | Hewlett-Packard Company | Virtual address bypassing using local page mask |
CN101571835A (zh) * | 2009-03-26 | 2009-11-04 | 浙江大学 | 基于程序的需求来改变Cache组相联度的实现方法 |
CN101719105A (zh) * | 2009-12-31 | 2010-06-02 | 中国科学院计算技术研究所 | 一种多核系统中对内存访问的优化方法和系统 |
US20120159103A1 (en) * | 2010-12-21 | 2012-06-21 | Microsoft Corporation | System and method for providing stealth memory |
CN102521150A (zh) * | 2011-11-28 | 2012-06-27 | 华为技术有限公司 | 一种应用程序cache分配方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101221538B (zh) * | 2008-01-24 | 2010-10-13 | 杭州华三通信技术有限公司 | 实现对缓存中数据快速查找的系统和方法 |
US8095736B2 (en) * | 2008-02-25 | 2012-01-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and systems for dynamic cache partitioning for distributed applications operating on multiprocessor architectures |
CN102323909B (zh) * | 2011-09-13 | 2014-03-19 | 北京北大众志微系统科技有限责任公司 | 实现使用大容量高速缓存的内存管理方法及装置 |
-
2014
- 2014-04-24 CN CN201410168515.2A patent/CN105095105B/zh active Active
-
2015
- 2015-04-22 WO PCT/CN2015/077223 patent/WO2015161804A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6446187B1 (en) * | 2000-02-19 | 2002-09-03 | Hewlett-Packard Company | Virtual address bypassing using local page mask |
CN101571835A (zh) * | 2009-03-26 | 2009-11-04 | 浙江大学 | 基于程序的需求来改变Cache组相联度的实现方法 |
CN101719105A (zh) * | 2009-12-31 | 2010-06-02 | 中国科学院计算技术研究所 | 一种多核系统中对内存访问的优化方法和系统 |
US20120159103A1 (en) * | 2010-12-21 | 2012-06-21 | Microsoft Corporation | System and method for providing stealth memory |
CN102521150A (zh) * | 2011-11-28 | 2012-06-27 | 华为技术有限公司 | 一种应用程序cache分配方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112799977A (zh) * | 2021-02-26 | 2021-05-14 | 中国人民解放军国防科技大学 | 计算机的缓存分区和缓存访问实时性保护方法及装置 |
CN112799977B (zh) * | 2021-02-26 | 2022-07-19 | 中国人民解放军国防科技大学 | 计算机的缓存分区和缓存访问实时性保护方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105095105B (zh) | 2018-07-03 |
WO2015161804A1 (zh) | 2015-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10114749B2 (en) | Cache memory system and method for accessing cache line | |
CN105283855B (zh) | 一种寻址方法及装置 | |
KR100772863B1 (ko) | 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치 | |
CN105095094A (zh) | 内存管理方法和设备 | |
CN107526546B (zh) | 一种Spark分布式计算数据处理方法及系统 | |
EP2645259B1 (en) | Method, device and system for caching data in multi-node system | |
US9811465B2 (en) | Computer system and cache control method | |
US20160266923A1 (en) | Information processing system and method for controlling information processing system | |
JP6192660B2 (ja) | ステージング・エリアを管理するためのコンピュータ実施プロセス、コンピュータ・プログラム製品、装置 | |
TW201717040A (zh) | 用於具有調適分割之一共用快取之系統及方法 | |
CN105518631B (zh) | 内存管理方法、装置和系统、以及片上网络 | |
CN108139966B (zh) | 管理转址旁路缓存的方法和多核处理器 | |
KR20100132244A (ko) | 메모리 시스템 및 메모리 시스템 관리 방법 | |
US10198180B2 (en) | Method and apparatus for managing storage device | |
CN107992430A (zh) | 闪存芯片的管理方法、装置及计算机可读存储介质 | |
US11199972B2 (en) | Information processing system and volume allocation method | |
US20210173789A1 (en) | System and method for storing cache location information for cache entry transfer | |
CN107329704A (zh) | 一种缓存镜像方法及控制器 | |
CN103488523A (zh) | 一种页的访问方法和页的访问装置、服务器 | |
CN110955488A (zh) | 一种持久性内存的虚拟化方法及系统 | |
US20170364442A1 (en) | Method for accessing data visitor directory in multi-core system and device | |
CN105095105A (zh) | 一种Cache分区的方法及装置 | |
CN113010452A (zh) | 一种高效且支持QoS的虚拟内存架构 | |
CN109478163B (zh) | 用于在高速缓存条目处标识存储器访问请求的待决的系统和方法 | |
JP2017033375A (ja) | 並列計算システム、マイグレーション方法、及びマイグレーションプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |