CN105095105B - 一种Cache分区的方法及装置 - Google Patents

一种Cache分区的方法及装置 Download PDF

Info

Publication number
CN105095105B
CN105095105B CN201410168515.2A CN201410168515A CN105095105B CN 105095105 B CN105095105 B CN 105095105B CN 201410168515 A CN201410168515 A CN 201410168515A CN 105095105 B CN105095105 B CN 105095105B
Authority
CN
China
Prior art keywords
cache
cache set
physical memory
mask
entity
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
Application number
CN201410168515.2A
Other languages
English (en)
Other versions
CN105095105A (zh
Inventor
郑晨
高云伟
詹剑锋
张立新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Original Assignee
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201410168515.2A priority Critical patent/CN105095105B/zh
Priority to PCT/CN2015/077223 priority patent/WO2015161804A1/zh
Publication of CN105095105A publication Critical patent/CN105095105A/zh
Application granted granted Critical
Publication of CN105095105B publication Critical patent/CN105095105B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing 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,使得其他进程访问Cache的成功率下降,从而造成访存延迟。因为在现有技术中,物理内存的地址的低几位与Cache Set(缓存组)存在固定的对应关系,且物理内存的地址的低几位固定不变,连续的物理内存往往会跨越多个Cache Set,为了避免多个执行实体在Cache的使用上产生干扰,操作系统为执行实体分配不连续的物理内存,以求一个执行实体缓存在同一个Cache Set中,不同的Cache Set之间不会产生干扰,所以,多个执行实体运行时,不会造成访存延误。
但是,在一些工作场景中,如启动场景或设备直接内存存取场景,操作系统需要对执行实体分配连续的物理内存,而连续的物理内存往往跨越了多个不同的Cache Set,需要连续的物理内存的执行实体极有可能与其他的执行实体共用相同的一个或多个CacheSet,在这种情况下,多个执行实体在Cache的使用上仍然会产生干扰,造成访存延误,从而降低访存性能。
发明内容
本发明的实施例提供一种Cache分区的方法及装置,能够为执行实体灵活分配物理内存和Cache Set,减少了多个执行实体在Cache的使用上产生的干扰,提高访存性能。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种Cache分区的方法,用于主机,所述主机运行有操作系统,所述主机包括物理内存和缓存组Cache Sets,所述物理内存用于存储数据,所述Cache Set用于缓存所述物理内存中的数据;所述方法包括:
所述操作系统为执行实体分配物理内存,为所述执行实体分配的物理内存用于存储所述执行实体运行时需要的数据;
在所述主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为所述执行主体分配的物理内存中的数据缓存至所述选取的Cache Set中,建立为所述执行主体分配的物理内存与所述选取的Cache Set的对应关系。
结合第一方面,在第一种可能的实现方式中,所述主机包括重染色组件,所述重染色组件用于读取重染色表,所述重染色表用于记录为所述执行主体分配的物理内存与所述选取的Cache Set的对应关系;所述建立为所述执行主体分配的物理内存与所述选取的Cache Set的对应关系,包括:
建立所述重染色表,并在所述重染色表中,建立为所述执行主体分配的物理内存地址与缓存组掩码Cache Set Mask的对应关系,所述Cache Set Mask用于标识所述选取的Cache Set。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:
获取所述重染色表;
根据为所述执行主体分配的物理内存地址,在所述重染色表中,查找并获取目标Cache Set Mask,所述目标Cache Set Mask与为所述执行主体分配的物理内存地址对应;
根据所述目标Cache Set Mask,确定并访问所述目标Cache Set,所述目标CacheSet Mask与所述目标Cache Set对应。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,在所述查找并获取目标Cache Set Mask之后,包括:
将所述目标Cache Set Mask存储至为所述执行主体分配的物理内存地址的影子地址空间Shadow Address Space;
当所述执行实体再次索引所述目标Cache Set时,根据存储至所述ShadowAddress Space的所述目标Cache Set Mask,确定并访问所述目标Cache Set。
结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中,所述主机还包括内存管理单元MMU,所述MMU用于缓存页表缓存项,所述页表缓存项中包括所述执行实体的标识ID;在所述查找并获取目标Cache Set Mask之后,包括:
在所述MMU的页表缓存项中添加与所述执行实体的标识ID对应的所述目标CacheSet Mask;
当所述执行实体再次索引所述目标Cache Set时,根据所述执行实体的标识ID,在所述页表缓存项中得到所述目标Cache Set Mask;
根据所述目标Cache Set Mask,确定并访问所述目标Cache Set。
结合第一方面的第二种可能的实现方式,在第五种可能的实现方式中,所述主机包括缓存寄存器;所述获取所述重染色表,包括:
检测所述缓存寄存器中是否存在所述重染色表;
若存在,则从所述缓存寄存器中获取所述重染色表;
若不存在,则从物理内存中获取所述重染色表。
第二方面,本发明实施例提供一种Cache分区的装置,所述装置运行有操作系统,所述装置包括物理内存和缓存组Cache Sets,所述物理内存用于存储数据,所述Cache Set用于缓存所述物理内存中的数据;所述装置包括:
分配模块,用于为执行实体分配物理内存,为所述执行实体分配的物理内存用于存储所述执行实体运行时需要的数据;
建立关系模块,用于在所述主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为所述执行主体分配的物理内存中的数据缓存至所述选取的Cache Set中,建立为所述执行主体分配的物理内存与所述选取的Cache Set的对应关系。
结合第二方面,在第一种可能的实现方式中,所述装置包括重染色组件,所述重染色组件用于读取重染色表,所述重染色表用于记录为所述执行主体分配的物理内存与所述选取的Cache Set的对应关系;所述建立关系模块,包括:
重染色表单元,用于建立所述重染色表,并在所述重染色表中,建立为所述执行主体分配的物理内存地址与缓存组掩码Cache Set Mask的对应关系,所述Cache Set Mask用于标识所述选取的Cache Set。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述装置还包括:
重染色表获取模块,用于获取所述重染色表;
查找模块,用于根据为所述执行主体分配的物理内存地址,在所述重染色表中,查找并获取目标Cache Set Mask,所述目标Cache Set Mask与为所述执行主体分配的物理内存地址对应;
第一访问模块,用于根据所述目标Cache Set Mask,确定并访问所述目标CacheSet,所述目标Cache Set Mask与所述目标Cache Set对应。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述装置包括:
存储模块,用于将所述目标Cache Set Mask存储至为所述执行主体分配的物理内存地址的影子地址空间Shadow Address Space;
第二访问模块,用于当所述执行实体再次索引所述目标Cache Set时,根据存储至所述Shadow Address Space的所述目标Cache Set Mask,确定并访问所述目标Cache Set。
结合第二方面的第二种可能的实现方式,在第四种可能的实现方式中,所述装置还包括内存管理单元MMU,所述MMU用于缓存页表缓存项,所述页表缓存项中包括所述执行实体的标识ID;所述装置包括:
添加模块,用于在所述MMU的页表缓存项中添加与所述执行实体的标识ID对应的所述目标Cache Set Mask;
掩码获取模块,用于当所述执行实体再次索引所述目标Cache Set时,根据所述执行实体的标识ID,在所述页表缓存项中得到所述目标Cache Set Mask;
第三访问模块,用于根据所述目标Cache Set Mask,确定并访问所述目标CacheSet。
结合第二方面的第二种可能的实现方式,在第五种可能的实现方式中,所述装置包括缓存寄存器;所述重染色表获取模块,包括:
检测单元,用于检测所述缓存寄存器中是否存在所述重染色表;
第一获取单元,用于当存在时,从所述缓存寄存器中获取所述重染色表;
第二获取单元,用于当不存在时,从物理内存中获取所述重染色表。
本发明实施例提供的一种Cache分区的方法及装置,能够为执行实体分配物理内存,在主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为执行主体分配的物理内存中的数据缓存至选取的Cache Set中,建立为执行主体分配的物理内存与选取的Cache Set的对应关系。与现有技术中的:根据物理内存的地址的低几位与Cache Set的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的Cache Set相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的Cache Set中,并建立分配给执行实体的物理内存与Cache Set的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和Cache Set,为不同的执行实体分配不同的Cache Set,避免了多个执行实体共用相同的一个或多个CacheSet的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种Cache分区的方法的流程图;
图1a为本发明实施例提供的一种执行实体、物理内存和Cache Set对应关系的举例示意图;
图2为本发明实施例提供的一种Cache分区的方法的一种具体实现方式的流程图;
图2a为本发明实施例提供的一种Cache系统的举例结构示意图;
图2b为本发明实施例提供的一种重染色表的示意图;
图3、图4、图5为本发明实施例提供的另一种Cache分区的方法的流程图;
图4a、图4b、图4c为本发明实施例提供的访问Cache Set的举例示意图;
图5a为本发明实施例提供的一种页表缓存项的举例示意图;
图6a、图6b、图6c为本发明实施例提供的另一种Cache分区的方法的一种具体实现方式的流程图;
图7为本发明实施例提供的一种Cache分区的装置的结构示意图;
图8为本发明实施例提供的一种Cache分区的装置的一种具体实现方式的结构示意图;
图9为本发明实施例提供的另一种Cache分区的装置的结构示意图;
图10为本发明实施例提供的另一种Cache分区的装置的结构示意图;
图11为本发明实施例提供的另一种Cache分区的装置的结构示意图;
图12为本发明实施例提供的另一种Cache分区的装置的一种具体实现方式的结构示意图;
图13为本发明实施例提供的一种Cache分区设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供的技术方案应用于主机,运行于主机的操作系统能够为执行实体灵活的分配物理内存与Cache Set(缓存组)。其中,主机中可以包括虚拟机系统下的多虚拟机操作系统、众核硬件平台下的多内核操作系统或单体系统下的多进程调度系统,也就是说,执行实体可以是进程、内核或虚拟机等。为了实现本技术方案在主机中的应用,至少需要在主机中的Cache系统中添加了Cache分区器件或者Cache分区模块,用来建立、查询为执行实体分配的物理内存和Cache Set的对应关系。本方案可以应用于各级缓存,如:一级缓存、二级缓存、三级缓存等。
本发明实施例提供了一种Cache分区的方法,如图1所示,包括:
101,所述操作系统为执行实体分配物理内存。
其中,操作系统运行于主机中,主机中包括物理内存和缓存组Cache Set,
其中,执行实体可以是进程、虚拟机或内核等,操作系统可以根据每一个执行实体的具体情况以及操作系统的策略决策,为执行实体分配合适的物理内存。为执行实体分配的物理内存用于存储执行实体运行时需要的数据,缓存组Cache Set可以用于缓存物理内存中的数据。
需要说明的是,本方案中,为执行实体分配的物理内存可以是连续的,也可以是不连续的,根据执行实体的场景而定,比如:启动场景或者设备直接内存存取的场景,操作系统为执行实体分配连续的物理内存;其他的场景,操作系统也可以为执行主体分配不连续的物理内存。
102,在所述主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为所述执行主体分配的物理内存中的数据缓存至所述选取的Cache Set中,建立为所述执行主体分配的物理内存与所述选取的Cache Set的对应关系。
其中,主机中往往包括多个缓存组Cache Set,在多个Cache Set中,一部分CacheSet可能已经被其他执行主体所占用,缓存了其他执行主体运行需要的数据;另一部分的Cache Set未被执行主体占用,处于空闲状态,是未被占用的Cache Set。在本实施例中,在主机中的Cache Sets中,选取未被占用的Cache Set,避免与其他执行主体共同占用同一个Cache Set。选取的未被占用的Cache Set可以是一个,也可以是多个。将为执行主体分配的物理内存中的数据缓存至选取的Cache Set中,建立执行实体的物理内存和Cache Set的对应关系,使得一个执行实体的物理内存对应一个Cache Set或多个Cache Set,不同的执行实体的物理内存对应不同的Cache Set。
优选的,分配给执行实体的物理内存与Cache Set的对应关系,可以用为执行实体分配的物理内存地址与Cache Set Mask的对应关系表示,Cache Set Mask用于标识CacheSet。
需要说明的是,在重新为执行实体分配物理内存的情况下,操作系统会更新已经建立的对应关系,从而保证执行实体的正常运行。
比如:如图1a所示,在多内核系统中,管理内核相当于操作系统,管理内核为每一个轻量级内核分配物理内存,选取未被占用的Cache Set(缓存组),将为轻量级内核分配的物理内存中的数据缓存至选取的Cache Set中,建立为轻量级内核分配的物理内存与选取的Cache Set的对应关系,从而可以利用管理内核的缓存分区管理功能,通过缓存性能隔离功能模块为每一个轻量级内核分配对应的Cache Set。当创建、销毁、迁移轻量级内核时,管理内核会重设缓存分区管理功能。
本发明实施例提供的一种Cache分区的方法,能够为执行实体分配物理内存,在主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为执行主体分配的物理内存中的数据缓存至选取的Cache Set中,建立为执行主体分配的物理内存与选取的CacheSet的对应关系。与现有技术中的:根据物理内存的地址的低几位与Cache Set的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的Cache Set相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的Cache Set中,并建立分配给执行实体的物理内存与Cache Set的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和Cache Set,为不同的执行实体分配不同的Cache Set,避免了多个执行实体共用相同的一个或多个Cache Set的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能。
进一步的,在图1所示的方案的基础上,本发明实施例还提供了一种Cache分区的方法的具体方案,主机包括重染色组件,重染色组件用于读取重染色表,重染色表用于记录分配给执行实体的物理内存和Cache Set的对应关系。本方案对图1所示的方案中的102的执行过程进一步细化,其中,102可以具体实现为1021,如图2所示,包括:
1021,在所述主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为所述执行主体分配的物理内存中的数据缓存至所述选取的Cache Set中,建立所述重染色表,并在所述重染色表中,建立为所述执行主体分配的物理内存地址与缓存组掩码Cache Set Mask的对应关系。
其中,操作系统可以用表项的形式记录分配给执行实体的物理内存和Cache Set的对应关系,本方案中,操作系统使用重染色表来记录分配给执行实体的物理内存和CacheSet的对应关系。重染色表可以存储在物理内存中,也可以缓存在Cache控制器的缓存寄存器中。
在具体应用中,主机中的缓存Cache系统往往包括Cache控制器,可以在Cache控制器中增加Cache分区器件或Cache分区模块,Cache分区器件或Cache分区模块包括重染色组件。也可以下缓存Cache系统中的其他器件或部位添加Cache分区器件或Cache分区模块,在这里不做限定。
需要说明的是,一般情况下,重染色表由操作系统内核管理、建立、更新;在虚拟机系统中,重染色表由VMM(Virtual Machine Manager,虚拟机管理程序)管理、建立、更新;在多内核系统中,重染色表由管理内核管理、建立、更新。
进一步的,为了实现本发明的技术方案,可以在主机的Cache系统中的Cache控制器中增添Cache分区模块,如图2a所示,Cache分区模块包括重染色组件、缓存寄存器和控制空间。重染色组件用于读取重染色表,缓存寄存器可以用于缓存重染色表,控制空间提供了一组控制寄存器支持Cache分区模块的启动和初始化。当硬件线程运行时,内存管理单元可以进行虚拟地址和物理地址的转换。
其中,物理内存与Cache Set的对应关系可以用物理内存地址和Cache Set Mask(缓存组掩码)表示,Cache Set Mask用于标识Cache Set。如图2b所示的重染色表,将建立的分配给执行实体的物理内存地址与Cache Set Mask的对应关系记录在重染色表中,当执行实体运行时,能够根据重染色表中记录的对应关系,查找为这个执行实体分配的CacheSet,从而获取这个执行实体运行需要的数据。
需要说明的是,重染色表中的物理内存地址范围的大小可以是Cache line的大小,即64bytes,也可以是一个内存页的大小,即4KB,还可以是多个内存页的大小。CacheSet Mask可以标识一个Cache Set,也可以标识多个Cache Set。
在操作系统检测到执行实体的更新时,也会同步更新重染色表,具体更新过程如:更新执行实体的数据结构,执行实体的数据结构用于生成重染色表中关于该执行实体的相关数据,操作系统根据更新后的执行实体的数据结构,更新重染色表中的对应关系的数据。其中,可以清空对应的Cache line,或者对Cache line进行写回操作。
本发明实施例提供的一种Cache分区的方法,能够为执行实体分配物理内存,在主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为执行主体分配的物理内存中的数据缓存至选取的Cache Set中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码Cache Set Mask的对应关系。与现有技术中的:根据物理内存的地址的低几位与Cache Set的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的Cache Set相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的Cache Set中,并建立分配给执行实体的物理内存与Cache Set的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和Cache Set,为不同的执行实体分配不同的Cache Set,避免了多个执行实体共用相同的一个或多个Cache Set的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能。
此外,在图2所示的方案的基础上,本发明实施例还提供了一种Cache分区的方法的具体方案,增添103-105,具体说明在建立了为执行实体分配的物理内存与Cache Set的对应关系后,如何访问执行实体对应的Cache Set,如图3所示,包括:
103,获取所述重染色表。
其中,重染色表可以存储在物理内存中,也可以存储在缓存寄存器中。
104,根据为所述执行主体分配的物理内存地址,在所述重染色表中,查找并获取目标Cache Set Mask。
其中,目标Cache Set Mask与为执行主体分配的物理内存地址对应,重染色表中记录了为所有执行实体分配的物理内存地址和Cache Set Mask的对应关系,根据为执行主体分配的物理内存地址,就可以查找到对应的Cache Set Mask,即目标Cache Set Mask。
105,根据所述目标Cache Set Mask,确定并访问所述目标Cache Set。
其中,目标Cache Set Mask与目标Cache Set对应。
本发明实施例提供的一种Cache分区的方法,能够为执行实体分配物理内存,在主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为执行主体分配的物理内存中的数据缓存至选取的Cache Set中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码Cache Set Mask的对应关系;获取重染色表,根据为执行主体分配的物理内存地址,在重染色表中,查找并获取目标Cache Set Mask,根据目标Cache Set Mask,访问目标Cache Set。与现有技术中的:根据物理内存的地址的低几位与Cache Set的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的Cache Set相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的Cache Set中,并建立分配给执行实体的物理内存与Cache Set的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和CacheSet,为不同的执行实体分配不同的Cache Set,避免了多个执行实体共用相同的一个或多个Cache Set的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能。
此外,在图3所示的方案的基础上,本发明实施例还提供了一种Cache分区的方法的具体方案,本方案增添了106-107,如图4所示,包括:
106,将所述目标Cache Set Mask存储至为所述执行主体分配的物理内存地址的影子地址空间Shadow Address Space。
其中,现有的处理器寻址空间范围较大,但是主流处理器的物理内存地址只使用了其中的一部分空间,另一部分没有使用的空间是空闲的,这部分物理内存地址的空闲的空间就是Shadow Address Space。比如:现有64位处理器寻址空间范围是64位,但是主流处理器只使用了物理内存地址的低48位,物理内存地址的高16位基本是空闲的,物理内存地址的高16位就是Shadow Address Space。将Cache Set Mask存储至Shadow AddressSpace,使得执行实体再次索引目标Cache Set时,就可以通过物理地址的Shadow AddressSpace来索引Cache Set,提高了Cache的访存效率。
需要说明的是,105和106在时序上不分先后,可以在105之前执行106,也可以在105之后执行106,还可以同时执行105和106,105和106的时序关系在此不作限定。
107,当所述执行实体再次索引所述目标Cache Set时,根据存储至所述ShadowAddress Space的所述目标Cache Set Mask,确定并访问所述目标Cache Set。
比如:如图4a所示,当三级缓存接收到来自二级缓存的请求物理地址时,根据重染色表中的对应关系和Shadow Address Space(影子地址空间),确定并访问目标Cache Set。
需要说明的是,如图4b所示,如果需要对一级缓存等私有Cache进行分区,可以在Cache系统进行虚实地址转换时,就在Shadow Address Space(影子地址空间)存储与物理内存地址对应的Cache Set Mask。
可选的,可以在访存请求中增加执行实体标识,来标识发出请求的执行实体,重染色表中也可以记录执行实体标识与Cache Set Mask(缓存组掩码)的对应关系,如图4c所示,可以将执行实体标识存储至Shadow Address Space,根据重染色表中的对应关系和Shadow Address Space(影子地址空间),确定并访问目标Cache Set。
本发明实施例提供的一种Cache分区的方法,能够为执行实体分配物理内存,在主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为执行主体分配的物理内存中的数据缓存至选取的Cache Set中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码Cache Set Mask的对应关系;获取重染色表,根据为执行主体分配的物理内存地址,在重染色表中,查找并获取目标Cache Set Mask,根据目标Cache Set Mask,访问目标Cache Set;将目标Cache Set Mask存储至为执行主体分配的物理内存地址的影子地址空间Shadow Address Space,当执行实体再次索引目标Cache Set时,根据存储至Shadow Address Space的目标Cache Set Mask,确定并访问目标CacheSet。与现有技术中的:根据物理内存的地址的低几位与Cache Set的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的Cache Set相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的Cache Set中,并建立分配给执行实体的物理内存与Cache Set的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和Cache Set,为不同的执行实体分配不同的Cache Set,避免了多个执行实体共用相同的一个或多个Cache Set的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能;而且,当执行实体再次索引目标Cache Set时,可以直接利用Shadow Address Space中的Cache Set Mask进行索引,确定并访问目标Cache Set,节省了确定目标Cache Set的时间,提高了Cache访存的效率。
可选的,在图3所示的方案的基础上,本发明实施例还提供了一种Cache分区的方法的具体方案,主机还包括内存管理单元MMU,MMU用于缓存页表缓存项,页表缓存项中包括执行实体的标识ID;本方案增添了108-110,利用页表缓存项,访问目标Cache Set,如图5所示,包括:
108,在所述MMU的页表缓存项中添加与所述执行实体的标识ID对应的所述目标Cache Set Mask。
其中,如图5a所示的页表缓存项,添加与执行实体标识对应的Cache Set Mask,便于通过MMU的页表缓存项确定并访问目标Cache Set。
需要说明的是,105和108在时序上不分先后,可以在105之前执行108,也可以在105之后执行108,还可以同时执行105和108,105和108的时序关系在此不作限定。
109,当所述执行实体再次索引所述目标Cache Set时,根据所述执行实体的标识ID,在所述页表缓存项中得到所述目标Cache Set Mask。
比如:根据如图5a所示的页表缓存项和执行实体的执行实体标识,可以确定目标Cache Set Mask。
110,根据所述目标Cache Set Mask,确定并访问所述目标Cache Set。
本发明实施例提供的一种Cache分区的方法,能够为执行实体分配物理内存,在主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为执行主体分配的物理内存中的数据缓存至选取的Cache Set中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码Cache Set Mask的对应关系;获取重染色表,根据为执行主体分配的物理内存地址,在重染色表中,查找并获取目标Cache Set Mask,根据目标Cache Set Mask,访问目标Cache Set;在MMU的页表缓存项中添加与执行实体的标识ID对应的目标Cache Set Mask,当执行实体再次索引目标Cache Set时,根据执行实体的标识ID,在页表缓存项中得到目标Cache Set Mask,从而确定并访问目标Cache Set。与现有技术中的:根据物理内存的地址的低几位与Cache Set的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的Cache Set相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的Cache Set中,并建立分配给执行实体的物理内存与Cache Set的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和Cache Set,为不同的执行实体分配不同的Cache Set,避免了多个执行实体共用相同的一个或多个Cache Set的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能;而且,执行实体再次索引目标Cache Set时,可以直接利用MMU的页表缓存项中的执行实体标识和Cache Set Mask的对应关系进行索引,确定并访问目标Cache Set,节省了确定目标Cache Set的时间,提高了Cache的访存效率。
更进一步的,在图3、图4、图5所示的方案的基础上,本发明实施例还提供了一种Cache分区的方法的具体方案,本方案对图3、图4、图5所示的方案中的103的执行过程进一步细化,其中,103可以具体实现为1031-1033,如图6a、图6b、图6c所示,包括:
1031,检测所述缓存寄存器中是否存在所述重染色表。
其中,Cache系统包括缓存寄存器,重染色表可以存储在物理内存中,也可以存储在缓存寄存器中,从缓存寄存器中读取重染色表速度更快。
1032,从所述缓存寄存器中获取所述重染色表。
1033,从物理内存中获取所述重染色表。
本发明实施例提供的一种Cache分区的方法,能够为执行实体分配物理内存,在主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为执行主体分配的物理内存中的数据缓存至选取的Cache Set中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码Cache Set Mask的对应关系;检测缓存寄存器中是否存重染色表,存在时,从缓存寄存器中获取重染色表,不存在时,从物理内存中获取所述重染色表,根据为执行主体分配的物理内存地址,在重染色表中,查找并获取目标Cache SetMask,根据目标Cache Set Mask,访问目标Cache Set。与现有技术中的:根据物理内存的地址的低几位与Cache Set的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的Cache Set相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的Cache Set中,并建立分配给执行实体的物理内存与Cache Set的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和Cache Set,为不同的执行实体分配不同的Cache Set,避免了多个执行实体共用相同的一个或多个Cache Set的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能;而且,从缓存寄存器中获取重染色表的速度更快,首先考虑从缓存寄存器中获取重染色表,节省了确定目标Cache Set的时间,从而提高了Cache的访存效率。
本发明实施例提供了一种Cache分区的装置200,装置200运行有操作系统,装置200包括物理内存和缓存组Cache Sets,物理内存用于存储数据,Cache Set用于缓存所述物理内存中的数据,如图7所示,包括:
分配模块201,用于为执行实体分配物理内存。
其中,为执行实体分配的物理内存用于存储执行实体运行时需要的数据。
建立关系模块202,用于在所述主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为所述执行主体分配的物理内存中的数据缓存至所述选取的Cache Set中,建立为所述执行主体分配的物理内存与所述选取的Cache Set的对应关系。
本发明实施例提供的一种Cache分区的装置,能够为执行实体分配物理内存,在主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为执行主体分配的物理内存中的数据缓存至选取的Cache Set中,建立为执行主体分配的物理内存与选取的CacheSet的对应关系。与现有技术中的:根据物理内存的地址的低几位与Cache Set的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的Cache Set相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的Cache Set中,并建立分配给执行实体的物理内存与Cache Set的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和Cache Set,为不同的执行实体分配不同的Cache Set,避免了多个执行实体共用相同的一个或多个Cache Set的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能。
进一步的,装置200包括重染色组件,重染色组件用于读取重染色表,重染色表用于记录为所述执行主体分配的物理内存与所述选取的Cache Set的对应关系;如图8所示,建立关系模块202,包括:
重染色表单元2021,用于建立所述重染色表,并在所述重染色表中,建立为所述执行主体分配的物理内存地址与缓存组掩码Cache Set Mask的对应关系。
其中,Cache Set Mask用于标识选取的Cache Set。
发明实施例提供的一种Cache分区的装置,能够为执行实体分配物理内存,在主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为执行主体分配的物理内存中的数据缓存至选取的Cache Set中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码Cache Set Mask的对应关系。与现有技术中的:根据物理内存的地址的低几位与Cache Set的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的Cache Set相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的Cache Set中,并建立分配给执行实体的物理内存与Cache Set的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和Cache Set,为不同的执行实体分配不同的Cache Set,避免了多个执行实体共用相同的一个或多个Cache Set的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能。
此外,如图9所示,装置200还包括:
重染色表获取模块203,用于获取所述重染色表。
查找模块204,用于根据为所述执行主体分配的物理内存地址,在所述重染色表中,查找并获取目标Cache Set Mask。
其中,目标Cache Set Mask与为执行实体分配的物理内存地址对应。
第一访问模块205,用于根据所述目标Cache Set Mask,确定并访问所述目标Cache Set。
其中,目标Cache Set Mask与目标Cache Set对应。
本发明实施例提供的一种Cache分区的装置,能够为执行实体分配物理内存,在主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为执行主体分配的物理内存中的数据缓存至选取的Cache Set中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码Cache Set Mask的对应关系;获取重染色表,根据为执行主体分配的物理内存地址,在重染色表中,查找并获取目标Cache Set Mask,根据目标Cache Set Mask,访问目标Cache Set。与现有技术中的:根据物理内存的地址的低几位与Cache Set的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的Cache Set相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的Cache Set中,并建立分配给执行实体的物理内存与Cache Set的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和CacheSet,为不同的执行实体分配不同的Cache Set,避免了多个执行实体共用相同的一个或多个Cache Set的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能。
进一步的,如图10所示,装置200包括:
存储模块206,用于将所述目标Cache Set Mask存储至为所述执行实体分配的物理内存地址的影子地址空间Shadow Address Space。
第二访问模块207,用于当所述执行实体再次索引所述目标Cache Set时,根据存储至所述Shadow Address Space的所述目标Cache Set Mask,确定并访问所述目标CacheSet。
本发明实施例提供的一种Cache分区的装置,能够为执行实体分配物理内存,在主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为执行主体分配的物理内存中的数据缓存至选取的Cache Set中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码Cache Set Mask的对应关系;获取重染色表,根据为执行主体分配的物理内存地址,在重染色表中,查找并获取目标Cache Set Mask,根据目标Cache Set Mask,访问目标Cache Set;将目标Cache Set Mask存储至为执行主体分配的物理内存地址的影子地址空间Shadow Address Space,当执行实体再次索引目标Cache Set时,根据存储至Shadow Address Space的目标Cache Set Mask,确定并访问目标CacheSet。与现有技术中的:根据物理内存的地址的低几位与Cache Set的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的Cache Set相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的Cache Set中,并建立分配给执行实体的物理内存与Cache Set的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和Cache Set,为不同的执行实体分配不同的Cache Set,避免了多个执行实体共用相同的一个或多个Cache Set的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能;而且,当执行实体再次索引目标Cache Set时,可以直接利用Shadow Address Space中的Cache Set Mask进行索引,确定并访问目标Cache Set,节省了确定目标Cache Set的时间,提高了Cache访存的效率。
进一步的,装置200还包括内存管理单元MMU,MMU用于用于缓存页表缓存项,页表缓存项中包括执行实体的标识ID,如图11所示,装置200还包括:
添加模块208,用于在所述MMU的页表缓存项中添加与所述执行实体的标识ID对应的所述目标Cache Set Mask。
掩码获取模块209,用于当所述执行实体再次索引所述目标Cache Set时,根据所述执行实体的标识ID,在所述页表缓存项中得到所述目标Cache Set Mask。
第三访问模块210,用于根据所述目标Cache Set Mask,确定并访问所述目标Cache Set。
本发明实施例提供的一种Cache分区的装置,能够为执行实体分配物理内存,在主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为执行主体分配的物理内存中的数据缓存至选取的Cache Set中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码Cache Set Mask的对应关系;获取重染色表,根据为执行主体分配的物理内存地址,在重染色表中,查找并获取目标Cache Set Mask,根据目标Cache Set Mask,访问目标Cache Set;在MMU的页表缓存项中添加与执行实体的标识ID对应的目标Cache Set Mask,当执行实体再次索引目标Cache Set时,根据执行实体的标识ID,在页表缓存项中得到目标Cache Set Mask,从而确定并访问目标Cache Set。与现有技术中的:根据物理内存的地址的低几位与Cache Set的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的Cache Set相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的Cache Set中,并建立分配给执行实体的物理内存与Cache Set的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和Cache Set,为不同的执行实体分配不同的Cache Set,避免了多个执行实体共用相同的一个或多个Cache Set的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能;而且,执行实体再次索引目标Cache Set时,可以直接利用MMU的页表缓存项中的执行实体标识和Cache Set Mask的对应关系进行索引,确定并访问目标Cache Set,节省了确定目标Cache Set的时间,提高了Cache的访存效率。
更进一步的,Cache系统包括缓存寄存器,如图12所示,重染色表获取模块203,包括:
检测单元2031,用于检测所述缓存寄存器中是否存在所述重染色表。
第一获取单元2032,用于当存在时,从所述缓存寄存器中获取所述重染色表。
第二获取单元2033,用于当不存在时,从物理内存中获取所述重染色表。
本发明实施例提供的一种Cache分区的装置,能够为执行实体分配物理内存,在主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为执行主体分配的物理内存中的数据缓存至选取的Cache Set中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码Cache Set Mask的对应关系;检测缓存寄存器中是否存重染色表,存在时,从缓存寄存器中获取重染色表,不存在时,从物理内存中获取所述重染色表,根据为执行主体分配的物理内存地址,在重染色表中,查找并获取目标Cache SetMask,根据目标Cache Set Mask,访问目标Cache Set。与现有技术中的:根据物理内存的地址的低几位与Cache Set的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的Cache Set相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的Cache Set中,并建立分配给执行实体的物理内存与Cache Set的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和Cache Set,为不同的执行实体分配不同的Cache Set,避免了多个执行实体共用相同的一个或多个Cache Set的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能;而且,从缓存寄存器中获取重染色表的速度更快,首先考虑从缓存寄存器中获取重染色表,节省了确定目标Cache Set的时间,从而提高了Cache的访存效率。
本发明实施例还提供了一种Cache分区设备300,如图13所示,包括:至少一个处理器301,例如CPU(central process unit),至少一个通信总线302,存储器303。另外,该网络管理服务器300还可以包括至少一个网络接口304和用户接口305。通信总线302用于实现这些组件之间的连接通信。可选的,用户接口305包括显示器、键盘、鼠标、触摸屏等设备。存储器303包括缓存器Cache,可能包含高速RAM(random access memory)存储器,也可能还包括非易失性存储器(non-volatile memory),例如磁盘存储器。
具体的,存储器303用于存储执行实体运行时需要的数据,还用于存储建立的为执行实体分配的物理内存与Cache Set的对应关系。
进一步的,存储器303还用于存储在重染色表中为执行实体分配的物理内存地址与Cache Set Mask的对应关系,或者执行实体的标识ID与Cache Set Mask的对应关系。
具体的,处理器301可以用于为执行实体分配物理内存;以及,用于在所述主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为所述执行主体分配的物理内存中的数据缓存至所述选取的Cache Set中,建立为所述执行主体分配的物理内存与所述选取的Cache Set的对应关系。
进一步的,处理器301可以用于建立所述重染色表,并在所述重染色表中,建立为所述执行实体分配的物理内存地址与缓存组掩码Cache Set Mask的对应关系,所述CacheSet Mask用于标识选取的Cache Set。
其中,Cache分区设备300包括重染色组件,所述重染色组件用于读取重染色表,所述重染色表用于记录为执行主体分配的物理内存与选取的Cache Set的对应关系。
此外,处理器301可以用于获取所述重染色表;以及,用于根据为所述执行实体分配的物理内存地址,在所述重染色表中,查找并获取目标Cache Set Mask,所述目标CacheSet Mask与为所述执行实体分配的物理内存地址对应;以及,用于根据所述目标Cache SetMask,确定并访问所述目标Cache Set,所述目标Cache Set Mask与所述目标Cache Set对应。
此外,处理器301还可以用于将所述目标Cache Set Mask存储至为所述执行实体分配的物理内存地址的影子地址空间Shadow Address Space;以及,用于当所述执行实体再次索引所述目标Cache Set时,根据存储至所述Shadow Address Space的所述目标CacheSet Mask,确定并访问所述目标Cache Set。
可选的,处理器301还可以用于在所述MMU的页表缓存项中添加与所述执行实体的标识ID对应的Cache Set Mask;以及,用于当所述执行实体再次索引所述目标Cache Set时,根据所述执行实体的标识ID,在所述页表缓存项中得到所述目标Cache Set Mask;以及,用于根据所述目标Cache Set Mask,确定并访问所述目标Cache Set。
更进一步的,处理器301还可以用于检测所述缓存寄存器中是否存在所述重染色表;以及,用于当存在时,从所述缓存寄存器中获取所述重染色表;以及,用于当不存在时,从物理内存中获取所述重染色表。
本发明实施例提供的一种Cache分区设备,能够为执行实体分配物理内存,在主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为执行主体分配的物理内存中的数据缓存至选取的Cache Set中,建立重染色表,并在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码Cache Set Mask的对应关系;检测缓存寄存器中是否存重染色表,存在时,从缓存寄存器中获取重染色表,不存在时,从物理内存中获取所述重染色表,根据为执行主体分配的物理内存地址,在重染色表中,查找并获取目标Cache SetMask,根据目标Cache Set Mask,访问目标Cache Set;将目标Cache Set Mask存储至为执行主体分配的物理内存地址的影子地址空间Shadow Address Space,当执行实体再次索引目标Cache Set时,根据存储至Shadow Address Space的目标Cache Set Mask,确定并访问目标Cache Set;或者,在MMU的页表缓存项中添加与执行实体的标识ID对应的目标CacheSet Mask,当执行实体再次索引目标Cache Set时,根据执行实体的标识ID,在页表缓存项中得到目标Cache Set Mask,从而确定并访问目标Cache Set。与现有技术中的:根据物理内存的地址的低几位与Cache Set的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的Cache Set相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的Cache Set中,并建立分配给执行实体的物理内存与Cache Set的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和Cache Set,为不同的执行实体分配不同的Cache Set,避免了多个执行实体共用相同的一个或多个Cache Set的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了Cache的访存性能;而且,当执行实体再次索引目标Cache Set时,可以直接利用Shadow Address Space中的Cache Set Mask进行索引,或者利用MMU的页表缓存项中的执行实体的标识ID和Cache Set Mask进行索引,确定并访问目标Cache Set,节省了确定目标Cache Set的时间,提高了Cache访存的效率;而且,从缓存寄存器中获取重染色表的速度更快,首先考虑从缓存寄存器中获取重染色表,节省了确定目标Cache Set的时间,进一步提高了Cache访存的效率。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (12)

1.一种Cache分区的方法,用于主机,其特征在于,所述主机运行有操作系统,所述主机包括物理内存和缓存组Cache Sets,所述物理内存用于存储数据,所述Cache Set用于缓存所述物理内存中的数据;所述方法包括:
所述操作系统为执行实体分配物理内存,为所述执行实体分配的物理内存用于存储所述执行实体运行时需要的数据;
在所述主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为所述执行实体分配的物理内存中的数据缓存至所述选取的Cache Set中,建立为所述执行实体分配的物理内存与所述选取的Cache Set的对应关系。
2.根据权利要求1所述的方法,其特征在于,所述主机包括重染色组件,所述重染色组件用于读取重染色表,所述重染色表用于记录为所述执行实体分配的物理内存与所述选取的Cache Set的对应关系;所述建立为所述执行实体分配的物理内存与所述选取的CacheSet的对应关系,包括:
建立所述重染色表,并在所述重染色表中,建立为所述执行实体分配的物理内存地址与缓存组掩码Cache Set Mask的对应关系,所述Cache Set Mask用于标识所述选取的Cache Set。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取所述重染色表;
根据为所述执行实体分配的物理内存地址,在所述重染色表中,查找并获取目标CacheSet Mask,所述目标Cache Set Mask与为所述执行实体分配的物理内存地址对应;
根据所述目标Cache Set Mask,确定并访问所述目标Cache Set,所述目标Cache SetMask与所述目标Cache Set对应。
4.根据权利要求3所述的方法,其特征在于,在所述查找并获取目标Cache Set Mask之后,包括:
将所述目标Cache Set Mask存储至为所述执行实体分配的物理内存地址的影子地址空间Shadow Address Space;
当所述执行实体再次索引所述目标Cache Set时,根据存储至所述Shadow AddressSpace的所述目标Cache Set Mask,确定并访问所述目标Cache Set。
5.根据权利要求3所述的方法,其特征在于,所述主机还包括内存管理单元MMU,所述MMU用于缓存页表缓存项,所述页表缓存项中包括所述执行实体的标识ID;在所述查找并获取目标Cache Set Mask之后,包括:
在所述MMU的页表缓存项中添加与所述执行实体的标识ID对应的所述目标Cache SetMask;
当所述执行实体再次索引所述目标Cache Set时,根据所述执行实体的标识ID,在所述页表缓存项中得到所述目标Cache Set Mask;
根据所述目标Cache Set Mask,确定并访问所述目标Cache Set。
6.根据权利要求3所述的方法,其特征在于,所述主机包括缓存寄存器;所述获取所述重染色表,包括:
检测所述缓存寄存器中是否存在所述重染色表;
若存在,则从所述缓存寄存器中获取所述重染色表;
若不存在,则从物理内存中获取所述重染色表。
7.一种Cache分区的装置,其特征在于,所述装置运行有操作系统,所述装置包括物理内存和缓存组Cache Sets,所述物理内存用于存储数据,所述Cache Set用于缓存所述物理内存中的数据;所述装置包括:
分配模块,用于为执行实体分配物理内存,为所述执行实体分配的物理内存用于存储所述执行实体运行时需要的数据;
建立关系模块,用于在主机包括的Cache Sets中,选取未被占用的一个或多个CacheSet,将为所述执行实体分配的物理内存中的数据缓存至所述选取的Cache Set中,建立为所述执行实体分配的物理内存与所述选取的Cache Set的对应关系。
8.根据权利要求7所述的装置,其特征在于,所述装置包括重染色组件,所述重染色组件用于读取重染色表,所述重染色表用于记录为所述执行实体分配的物理内存与所述选取的Cache Set的对应关系;所述建立关系模块,包括:
重染色表单元,用于建立所述重染色表,并在所述重染色表中,建立为所述执行实体分配的物理内存地址与缓存组掩码Cache Set Mask的对应关系,所述Cache Set Mask用于标识所述选取的Cache Set。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
重染色表获取模块,用于获取所述重染色表;
查找模块,用于根据为所述执行实体分配的物理内存地址,在所述重染色表中,查找并获取目标Cache Set Mask,所述目标Cache Set Mask与为所述执行实体分配的物理内存地址对应;
第一访问模块,用于根据所述目标Cache Set Mask,确定并访问所述目标Cache Set,所述目标Cache Set Mask与所述目标Cache Set对应。
10.根据权利要求9所述的装置,其特征在于,所述装置包括:
存储模块,用于将所述目标Cache Set Mask存储至为所述执行实体分配的物理内存地址的影子地址空间Shadow Address Space;
第二访问模块,用于当所述执行实体再次索引所述目标Cache Set时,根据存储至所述Shadow Address Space的所述目标Cache Set Mask,确定并访问所述目标Cache Set。
11.根据权利要求9所述的装置,其特征在于,所述装置还包括内存管理单元MMU,所述MMU用于缓存页表缓存项,所述页表缓存项中包括所述执行实体的标识ID;所述装置包括:
添加模块,用于在所述MMU的页表缓存项中添加与所述执行实体的标识ID对应的所述目标Cache Set Mask;
掩码获取模块,用于当所述执行实体再次索引所述目标Cache Set时,根据所述执行实体的标识ID,在所述页表缓存项中得到所述目标Cache Set Mask;
第三访问模块,用于根据所述目标Cache Set Mask,确定并访问所述目标Cache Set。
12.根据权利要求9所述的装置,其特征在于,所述装置包括缓存寄存器;所述重染色表获取模块,包括:
检测单元,用于检测所述缓存寄存器中是否存在所述重染色表;
第一获取单元,用于当存在时,从所述缓存寄存器中获取所述重染色表;
第二获取单元,用于当不存在时,从物理内存中获取所述重染色表。
CN201410168515.2A 2014-04-24 2014-04-24 一种Cache分区的方法及装置 Active CN105095105B (zh)

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 CN105095105A (zh) 2015-11-25
CN105095105B true 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)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112581351A (zh) * 2020-12-05 2021-03-30 西安翔腾微电子科技有限公司 一种双发射simt染色处理单元写回单元结构及写回通路冲突检测方法
CN112799977B (zh) * 2021-02-26 2022-07-19 中国人民解放军国防科技大学 计算机的缓存分区和缓存访问实时性保护方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
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 中国科学院计算技术研究所 一种多核系统中对内存访问的优化方法和系统
CN102521150A (zh) * 2011-11-28 2012-06-27 华为技术有限公司 一种应用程序cache分配方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
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
US8996814B2 (en) * 2010-12-21 2015-03-31 Microsoft Technology Licensing, Llc System and method for providing stealth memory
CN102323909B (zh) * 2011-09-13 2014-03-19 北京北大众志微系统科技有限责任公司 实现使用大容量高速缓存的内存管理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
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 中国科学院计算技术研究所 一种多核系统中对内存访问的优化方法和系统
CN102521150A (zh) * 2011-11-28 2012-06-27 华为技术有限公司 一种应用程序cache分配方法及装置

Also Published As

Publication number Publication date
WO2015161804A1 (zh) 2015-10-29
CN105095105A (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
US10268588B2 (en) Methods of cache preloading on a partition or a context switch
US10229065B2 (en) Unified hardware and software two-level memory
US10114749B2 (en) Cache memory system and method for accessing cache line
CN105027070B (zh) 卷操作的安全性
CN104899286B (zh) 分布式内容存储和取回
CN105518631B (zh) 内存管理方法、装置和系统、以及片上网络
CN109690500A (zh) 使用在以处理器为基础的系统中的空间服务质量(QoS)标记提供异质存储器系统的弹性管理
CN105095094A (zh) 内存管理方法和设备
US10366010B1 (en) Cache memory data management using relative access frequency
CN106648464B (zh) 基于云存储的多节点混合块缓存数据读写方法及系统
EP2645259A1 (en) Method, device and system for caching data in multi-node system
CN105701219B (zh) 一种分布式缓存的实现方法
CN107992430A (zh) 闪存芯片的管理方法、装置及计算机可读存储介质
CN109582600A (zh) 一种数据处理方法及装置
CN105446889B (zh) 一种内存管理方法、装置以及内存控制器
CN104270412A (zh) 一种基于Hadoop分布式文件系统的三级缓存方法
CN103970678B (zh) 目录设计方法及装置
CN107992270B (zh) 一种多控存储系统全局共享缓存的方法及装置
CN110955488A (zh) 一种持久性内存的虚拟化方法及系统
US10057348B2 (en) Storage fabric address based data block retrieval
CN105095105B (zh) 一种Cache分区的方法及装置
CN109478164A (zh) 用于存储用于高速缓存条目传输的高速缓存位置信息的系统和方法
US20130086325A1 (en) Dynamic cache system and method of formation
Venkatesan et al. Ex-tmem: Extending transcendent memory with non-volatile memory for virtual machines
CN109815168A (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
GR01 Patent grant
GR01 Patent grant