一种Cache分区的方法及装置的制造方法

文档序号:9375493阅读:475来源:国知局
一种Cache分区的方法及装置的制造方法
【技术领域】
[0001]本发明涉及电子信息技术领域,尤其涉及一种Cache分区的方法及装置。
【背景技术】
[0002]在云计算和数据中心的应用中,为了能够充分的利用资源,单节点内往往存在多个执行实体,如:进程、虚拟机或多内核操作系统中的内核等。操作系统需要对每一个执行实体分配物理内存,现有技术中的Cache索引方式决定了物理内存与Cache(高速缓冲存储器)存在对应关系,分配物理内存后相当于为执行实体分配了 Cache,多个执行实体运行时,各个执行实体在Cache的使用上会产生干扰,如:一个进程频繁刷新Cache,使得其他进程访问Cache的成功率下降,从而造成访存延迟。因为在现有技术中,物理内存的地址的低几位与Cache Set (缓存组)存在固定的对应关系,且物理内存的地址的低几位固定不变,连续的物理内存往往会跨越多个Cache Set,为了避免多个执行实体在Cache的使用上产生干扰,操作系统为执行实体分配不连续的物理内存,以求一个执行实体缓存在同一个Cache Set中,不同的Cache Set之间不会产生干扰,所以,多个执行实体运行时,不会造成访存延误。
[0003]但是,在一些工作场景中,如启动场景或设备直接内存存取场景,操作系统需要对执行实体分配连续的物理内存,而连续的物理内存往往跨越了多个不同的Cache Set,需要连续的物理内存的执行实体极有可能与其他的执行实体共用相同的一个或多个CacheSet,在这种情况下,多个执行实体在Cache的使用上仍然会产生干扰,造成访存延误,从而降低访存性能。

【发明内容】

[0004]本发明的实施例提供一种Cache分区的方法及装置,能够为执行实体灵活分配物理内存和Cache Set,减少了多个执行实体在Cache的使用上产生的干扰,提高访存性能。
[0005]为达到上述目的,本发明的实施例采用如下技术方案:
[0006]第一方面,本发明实施例提供一种Cache分区的方法,用于主机,所述主机运行有操作系统,所述主机包括物理内存和缓存组Cache Sets,所述物理内存用于存储数据,所述Cache Set用于缓存所述物理内存中的数据;所述方法包括:
[0007]所述操作系统为执行实体分配物理内存,为所述执行实体分配的物理内存用于存储所述执行实体运行时需要的数据;
[0008]在所述主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为所述执行主体分配的物理内存中的数据缓存至所述选取的Cache Set中,建立为所述执行主体分配的物理内存与所述选取的Cache Set的对应关系。
[0009]结合第一方面,在第一种可能的实现方式中,所述主机包括重染色组件,所述重染色组件用于读取重染色表,所述重染色表用于记录为所述执行主体分配的物理内存与所述选取的Cache Set的对应关系;所述建立为所述执行主体分配的物理内存与所述选取的Cache Set的对应关系,包括:
[0010]建立所述重染色表,并在所述重染色表中,建立为所述执行主体分配的物理内存地址与缓存组掩码Cache Set Mask的对应关系,所述Cache Set Mask用于标识所述选取的 Cache Set。
[0011]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:
[0012]获取所述重染色表;
[0013]根据为所述执行主体分配的物理内存地址,在所述重染色表中,查找并获取目标Cache Set Mask,所述目标Cache Set Mask与为所述执行主体分配的物理内存地址对应;
[0014]根据所述目标Cache Set Mask,确定并访问所述目标Cache Set,所述目标CacheSet Mask与所述目标Cache Set对应。
[0015]结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,在所述查找并获取目标Cache Set Mask之后,包括:
[0016]将所述目标Cache Set Mask存储至为所述执行主体分配的物理内存地址的影子地址空间 Shadow Address Space ;
[0017]当所述执行实体再次索引所述目标Cache Set时,根据存储至所述ShadowAddress Space的所述目标Cache Set Mask,确定并访问所述目标Cache Set。
[0018]结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中,所述主机还包括内存管理单元MMU,所述MMU用于缓存页表缓存项,所述页表缓存项中包括所述执行实体的标识ID ;在所述查找并获取目标Cache Set Mask之后,包括:
[0019]在所述MMU的页表缓存项中添加与所述执行实体的标识ID对应的所述目标CacheSet Mask ;
[0020]当所述执行实体再次索引所述目标Cache Set时,根据所述执行实体的标识ID,在所述页表缓存项中得到所述目标Cache Set Mask ;
[0021]根据所述目标Cache Set Mask,确定并访问所述目标Cache Set。
[0022]结合第一方面的第二种可能的实现方式,在第五种可能的实现方式中,所述主机包括缓存寄存器;所述获取所述重染色表,包括:
[0023]检测所述缓存寄存器中是否存在所述重染色表;
[0024]若存在,则从所述缓存寄存器中获取所述重染色表;
[0025]若不存在,则从物理内存中获取所述重染色表。
[0026]第二方面,本发明实施例提供一种Cache分区的装置,所述装置运行有操作系统,所述装置包括物理内存和缓存组Cache Sets,所述物理内存用于存储数据,所述Cache Set用于缓存所述物理内存中的数据;所述装置包括:
[0027]分配模块,用于为执行实体分配物理内存,为所述执行实体分配的物理内存用于存储所述执行实体运行时需要的数据;
[0028]建立关系模块,用于在所述主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为所述执行主体分配的物理内存中的数据缓存至所述选取的Cache Set中,建立为所述执行主体分配的物理内存与所述选取的Cache Set的对应关系。
[0029]结合第二方面,在第一种可能的实现方式中,所述装置包括重染色组件,所述重染色组件用于读取重染色表,所述重染色表用于记录为所述执行主体分配的物理内存与所述选取的Cache Set的对应关系;所述建立关系t旲块,包括:
[0030]重染色表单元,用于建立所述重染色表,并在所述重染色表中,建立为所述执行主体分配的物理内存地址与缓存组掩码Cache Set Mask的对应关系,所述Cache Set Mask用于标识所述选取的Cache Set。
[0031]结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述装置还包括:
[0032]重染色表获取模块,用于获取所述重染色表;
[0033]查找模块,用于根据为所述执行主体分配的物理内存地址,在所述重染色表中,查找并获取目标Cache Set Mask,所述目标Cache Set Mask与为所述执行主体分配的物理内存地址对应;
[0034]第一访问模块,用于根据所述目标Cache Set Mask,确定并访问所述目标CacheSet,所述目标Cache Set Mask与所述目标Cache Set对应。
[0035]结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述装置包括:
[0036]存储模块,用于将所述目标Cache Set Mask存储至为所述执行主体分配的物理内存地址的影子地址空间Shadow Address Space ;
[0037]第二访问模块,用于当所述执行实体再次索引所述目标Cache Set时,根据存储至所述Shadow Address Space的所述目标Cache Set Mask,确定并访问所述目标Cache Set。
[0038]结合第二方面的第二种可能的实现方式,在第四种可能的实现方式中,所述装置还包括内存管理单元MMU,所述MMU用于缓存页表缓存项,所述页表缓存项中包括所述执行实体的标识ID ;所述装置包括:
[0039]添加模块,用于在所述MMU的页表缓存项中添加与所述执行实体的标识ID对应的所述目标 Cache Set Mask ;
[0040]掩码获取模块,用于当所述执行实体再次索引所述目标Cache Set时,根据所述执行实体的标识ID,在所述页表缓存项中得到所述目标Cache Set Mask ;
[0041]第三访问模块,用于根据所述目标Cache Set Mask,确定并访问所述目标Cache
Set0
[0042]结合第二方面的第二种可能的实现方式,在第五种可能的实现方式中,所述装置包括缓存寄存器;所述重染色表获取模块,包括:
[0043]检测单元,用于检测所述缓存寄存器中是否存在所述重染色表;
[0044]第一获取单元,用于当存在时,从所述缓存寄存器中获取所述重染色表;
[0045]第二获取单元,用于当不存在时,从物理内存中获取所述重染色表。
[0046]本发明实施例提供的一种Cache分区的方法及装置,能够为执行实体分配物理内存,在主机包括的Cache Sets中,选取未被占用的一个或多个Cache Set,将为执行主体分配的物理内存中的数据缓存至选取的Cache Set中,建立为执行主体分配的物理内存与选取的Cache Set的对应关系。与现有技术中的:根据物理内存的地址的低几位与CacheSet的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个不同的Cache Set相比。在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的Cache Set中,并建立分配给执行实体的物理内存与Cache Set的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存和Cache Set,为不同的执行实体分配不同的Cache Set,避免了多个执行实体共用相同的一个或多个CacheSet的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了 Cache的访存性能。
【附图说明】
[0047]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0048]图1为本发明实施例提供的一种Cache分区的方法的流程图;
[0049]图1a为本发明实施例提供的一种执行实体、物理内存和Cache Set对应关系的举例示意图;
[0050]图2为本发明实施例提供的一种Cache分区的方法的一种具体实现方式的流程图;
[0051]图2a为本发明实施例提供的一种Cache系统的举例结构示意图;
[0052]图2b为本发明实施例提供的一种重染色表的示意图;
[0053]图3、图4、图5为本发明实施例提供的另一种Cache分区的方法的流程图;
[0054]图4a、图4b、图4c为本发明实施例提供的访问Cache Set的举例示意图;
[0055]图5a为本发明实施例提供的一种页表缓存项的举例TJK意图;
[0056]图6a、图6b、图6c为本发明实施例提供的另一种Cache分区的方法的一种具体实现方式的流程图;
[0057]图7为本发明实施例提供的一种Cache分区的装置的结构示意图;
[0058]图8为本发明实施例提供的一种Cache分区的装置的一种具体实现方式的结构示意图;
[0059]图9为本发明实施例提供的另一种Cache分区的装置的结构示意图;
[0060]图10为本发明实施例提供的另一种Cache分区的装置的结构示意图;
[0061]图11为本发明实施例提供的另一种Cache分区的装置的结构示意图;
[0062]图12为本发明实施例提供的另一种Cache分区的装置的一种具体实现方式的结构
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1