首页> 中国专利> 一种Cache分区的方法及装置

一种Cache分区的方法及装置

摘要

本发明实施例公开了一种Cache分区的方法及装置,涉及电子信息技术领域,能够为执行实体灵活分配物理内存和Cache?Set,减少了多个执行实体在Cache的使用上产生的干扰,提高访存性能。本发明的方法包括:所述操作系统为执行实体分配物理内存;在所述主机包括的Cache?Sets中,选取未被占用的一个或多个Cache?Set,将为所述执行主体分配的物理内存中的数据缓存至所述选取的Cache?Set中,建立为所述执行主体分配的物理内存与所述选取的Cache?Set的对应关系。本发明适用于为执行实体分配合适的Cache?Set的场景。

著录项

  • 公开/公告号CN105095105A

    专利类型发明专利

  • 公开/公告日2015-11-25

    原文格式PDF

  • 申请/专利号CN201410168515.2

  • 发明设计人 郑晨;高云伟;詹剑锋;张立新;

    申请日2014-04-24

  • 分类号G06F12/08;

  • 代理机构北京中博世达专利商标代理有限公司;

  • 代理人申健

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-18 12:21:18

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-07-03

    授权

    授权

  • 2015-12-23

    实质审查的生效 IPC(主分类):G06F12/08 申请日:20140424

    实质审查的生效

  • 2015-11-25

    公开

    公开

说明书

技术领域

本发明涉及电子信息技术领域,尤其涉及一种Cache分区的方法及装置。

背景技术

在云计算和数据中心的应用中,为了能够充分的利用资源,单节点内往往 存在多个执行实体,如:进程、虚拟机或多内核操作系统中的内核等。操作系 统需要对每一个执行实体分配物理内存,现有技术中的Cache索引方式决定了 物理内存与Cache(高速缓冲存储器)存在对应关系,分配物理内存后相当于为 执行实体分配了Cache,多个执行实体运行时,各个执行实体在Cache的使用上 会产生干扰,如:一个进程频繁刷新Cache,使得其他进程访问Cache的成功率 下降,从而造成访存延迟。因为在现有技术中,物理内存的地址的低几位与Cache Set(缓存组)存在固定的对应关系,且物理内存的地址的低几位固定不变,连 续的物理内存往往会跨越多个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时,根据存储至所述Shadow AddressSpace的所述目标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中,选取未被占用的一个或多个Cache Set,将为所述执行主体分配的物理内存中的数据缓存至所述选取的CacheSet中, 建立为所述执行主体分配的物理内存与所述选取的CacheSet的对应关系。

其中,主机中往往包括多个缓存组CacheSet,在多个CacheSet中,一部分 CacheSet可能已经被其他执行主体所占用,缓存了其他执行主体运行需要的数 据;另一部分的CacheSet未被执行主体占用,处于空闲状态,是未被占用的Cache Set。在本实施例中,在主机中的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,避免了多个执行实体共用相同的一个或多个Cache Set的情况,也从而减少了多个执行实体在Cache的使用上产生的干扰,提高了 Cache的访存性能。

进一步的,在图1所示的方案的基础上,本发明实施例还提供了一种Cache 分区的方法的具体方案,主机包括重染色组件,重染色组件用于读取重染色表, 重染色表用于记录分配给执行实体的物理内存和CacheSet的对应关系。本方案 对图1所示的方案中的102的执行过程进一步细化,其中,102可以具体实现为 1021,如图2所示,包括:

1021,在所述主机包括的CacheSets中,选取未被占用的一个或多个Cache Set,将为所述执行主体分配的物理内存中的数据缓存至所述选取的CacheSet中, 建立所述重染色表,并在所述重染色表中,建立为所述执行主体分配的物理内 存地址与缓存组掩码CacheSetMask的对应关系。

其中,操作系统可以用表项的形式记录分配给执行实体的物理内存和Cache Set的对应关系,本方案中,操作系统使用重染色表来记录分配给执行实体的物 理内存和CacheSet的对应关系。重染色表可以存储在物理内存中,也可以缓存 在Cache控制器的缓存寄存器中。

在具体应用中,主机中的缓存Cache系统往往包括Cache控制器,可以在 Cache控制器中增加Cache分区器件或Cache分区模块,Cache分区器件或Cache分 区模块包括重染色组件。也可以下缓存Cache系统中的其他器件或部位添加 Cache分区器件或Cache分区模块,在这里不做限定。

需要说明的是,一般情况下,重染色表由操作系统内核管理、建立、更新; 在虚拟机系统中,重染色表由VMM(VirtualMachineManager,虚拟机管理程序) 管理、建立、更新;在多内核系统中,重染色表由管理内核管理、建立、更新。

进一步的,为了实现本发明的技术方案,可以在主机的Cache系统中的Cache 控制器中增添Cache分区模块,如图2a所示,Cache分区模块包括重染色组件、 缓存寄存器和控制空间。重染色组件用于读取重染色表,缓存寄存器可以用于 缓存重染色表,控制空间提供了一组控制寄存器支持Cache分区模块的启动和初 始化。当硬件线程运行时,内存管理单元可以进行虚拟地址和物理地址的转换。

其中,物理内存与CacheSet的对应关系可以用物理内存地址和CacheSet Mask(缓存组掩码)表示,CacheSetMask用于标识CacheSet。如图2b所示的重 染色表,将建立的分配给执行实体的物理内存地址与CacheSetMask的对应关系 记录在重染色表中,当执行实体运行时,能够根据重染色表中记录的对应关系, 查找为这个执行实体分配的CacheSet,从而获取这个执行实体运行需要的数据。

需要说明的是,重染色表中的物理内存地址范围的大小可以是Cacheline的 大小,即64bytes,也可以是一个内存页的大小,即4KB,还可以是多个内存页 的大小。CacheSetMask可以标识一个CacheSet,也可以标识多个CacheSet。

在操作系统检测到执行实体的更新时,也会同步更新重染色表,具体更新 过程如:更新执行实体的数据结构,执行实体的数据结构用于生成重染色表中 关于该执行实体的相关数据,操作系统根据更新后的执行实体的数据结构,更 新重染色表中的对应关系的数据。其中,可以清空对应的Cacheline,或者对Cache line进行写回操作。

本发明实施例提供的一种Cache分区的方法,能够为执行实体分配物理内 存,在主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为执 行主体分配的物理内存中的数据缓存至选取的CacheSet中,建立重染色表,并 在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码CacheSet Mask的对应关系。与现有技术中的:根据物理内存的地址的低几位与CacheSet 的固定对应关系,需要连续的物理内存的执行实体运行需要的数据缓存于多个 不同的CacheSet相比。在本方案中,将为执行实体分配的物理内存中的数据缓 存至选取的未被占用的CacheSet中,并建立分配给执行实体的物理内存与Cache Set的对应关系,无论为执行实体分配的物理内存是否连续,都可以灵活的为执 行实体分配物理内存和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中,建立重染色表,并 在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码CacheSet Mask的对应关系;获取重染色表,根据为执行主体分配的物理内存地址,在重 染色表中,查找并获取目标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,确定并访问所述目标Cache Set。

比如:如图4a所示,当三级缓存接收到来自二级缓存的请求物理地址时, 根据重染色表中的对应关系和ShadowAddressSpace(影子地址空间),确定并访 问目标CacheSet。

需要说明的是,如图4b所示,如果需要对一级缓存等私有Cache进行分区, 可以在Cache系统进行虚实地址转换时,就在ShadowAddressSpace(影子地址空 间)存储与物理内存地址对应的CacheSetMask。

可选的,可以在访存请求中增加执行实体标识,来标识发出请求的执行实 体,重染色表中也可以记录执行实体标识与CacheSetMask(缓存组掩码)的对 应关系,如图4c所示,可以将执行实体标识存储至ShadowAddressSpace,根据 重染色表中的对应关系和ShadowAddressSpace(影子地址空间),确定并访问目 标CacheSet。

本发明实施例提供的一种Cache分区的方法,能够为执行实体分配物理内 存,在主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为执 行主体分配的物理内存中的数据缓存至选取的CacheSet中,建立重染色表,并 在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码CacheSet Mask的对应关系;获取重染色表,根据为执行主体分配的物理内存地址,在重 染色表中,查找并获取目标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所示的页表缓存项,添加与执行实体标识对应的CacheSet Mask,便于通过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中,建立重染色表,并 在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码CacheSet Mask的对应关系;获取重染色表,根据为执行主体分配的物理内存地址,在重 染色表中,查找并获取目标CacheSetMask,根据目标CacheSetMask,访问目 标CacheSet;在MMU的页表缓存项中添加与执行实体的标识ID对应的目标 CacheSetMask,当执行实体再次索引目标CacheSet时,根据执行实体的标识ID, 在页表缓存项中得到目标CacheSetMask,从而确定并访问目标CacheSet。与现 有技术中的:根据物理内存的地址的低几位与CacheSet的固定对应关系,需要 连续的物理内存的执行实体运行需要的数据缓存于多个不同的CacheSet相比。 在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的 CacheSet中,并建立分配给执行实体的物理内存与CacheSet的对应关系,无论 为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存 和CacheSet,为不同的执行实体分配不同的CacheSet,避免了多个执行实体共 用相同的一个或多个CacheSet的情况,也从而减少了多个执行实体在Cache的使 用上产生的干扰,提高了Cache的访存性能;而且,执行实体再次索引目标Cache Set时,可以直接利用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中,建立重染色表,并 在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码CacheSet Mask的对应关系;检测缓存寄存器中是否存重染色表,存在时,从缓存寄存器 中获取重染色表,不存在时,从物理内存中获取所述重染色表,根据为执行主 体分配的物理内存地址,在重染色表中,查找并获取目标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,避免了多个执行实体共用相同的一个或多个Cache Set的情况,也从而减少了多个执行实体在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中,建立重染色表,并 在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码CacheSet Mask的对应关系;获取重染色表,根据为执行主体分配的物理内存地址,在重 染色表中,查找并获取目标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中,建立重染色表,并 在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码CacheSet Mask的对应关系;获取重染色表,根据为执行主体分配的物理内存地址,在重 染色表中,查找并获取目标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中,建立重染色表,并 在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码CacheSet Mask的对应关系;获取重染色表,根据为执行主体分配的物理内存地址,在重 染色表中,查找并获取目标CacheSetMask,根据目标CacheSetMask,访问目 标CacheSet;在MMU的页表缓存项中添加与执行实体的标识ID对应的目标 CacheSetMask,当执行实体再次索引目标CacheSet时,根据执行实体的标识ID, 在页表缓存项中得到目标CacheSetMask,从而确定并访问目标CacheSet。与现 有技术中的:根据物理内存的地址的低几位与CacheSet的固定对应关系,需要 连续的物理内存的执行实体运行需要的数据缓存于多个不同的CacheSet相比。 在本方案中,将为执行实体分配的物理内存中的数据缓存至选取的未被占用的 CacheSet中,并建立分配给执行实体的物理内存与CacheSet的对应关系,无论 为执行实体分配的物理内存是否连续,都可以灵活的为执行实体分配物理内存 和CacheSet,为不同的执行实体分配不同的CacheSet,避免了多个执行实体共 用相同的一个或多个CacheSet的情况,也从而减少了多个执行实体在Cache的使 用上产生的干扰,提高了Cache的访存性能;而且,执行实体再次索引目标Cache Set时,可以直接利用MMU的页表缓存项中的执行实体标识和CacheSetMask的 对应关系进行索引,确定并访问目标CacheSet,节省了确定目标CacheSet的时 间,提高了Cache的访存效率。

更进一步的,Cache系统包括缓存寄存器,如图12所示,重染色表获取模块 203,包括:

检测单元2031,用于检测所述缓存寄存器中是否存在所述重染色表。

第一获取单元2032,用于当存在时,从所述缓存寄存器中获取所述重染色 表。

第二获取单元2033,用于当不存在时,从物理内存中获取所述重染色表。

本发明实施例提供的一种Cache分区的装置,能够为执行实体分配物理内 存,在主机包括的CacheSets中,选取未被占用的一个或多个CacheSet,将为执 行主体分配的物理内存中的数据缓存至选取的CacheSet中,建立重染色表,并 在重染色表中,建立为执行主体分配的物理内存地址与缓存组掩码CacheSet Mask的对应关系;检测缓存寄存器中是否存重染色表,存在时,从缓存寄存器 中获取重染色表,不存在时,从物理内存中获取所述重染色表,根据为执行主 体分配的物理内存地址,在重染色表中,查找并获取目标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,所述目标Cache SetMask与所述目标CacheSet对应。

此外,处理器301还可以用于将所述目标CacheSetMask存储至为所述执行 实体分配的物理内存地址的影子地址空间ShadowAddressSpace;以及,用于当 所述执行实体再次索引所述目标CacheSet时,根据存储至所述ShadowAddress Space的所述目标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中的CacheSet Mask进行索引,或者利用MMU的页表缓存项中的执行实体的标识ID和CacheSet Mask进行索引,确定并访问目标CacheSet,节省了确定目标CacheSet的时间, 提高了Cache访存的效率;而且,从缓存寄存器中获取重染色表的速度更快,首 先考虑从缓存寄存器中获取重染色表,节省了确定目标CacheSet的时间,进一 步提高了Cache访存的效率。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相 似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之 处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得 比较简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程, 是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算 机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。 其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory, ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于 此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到 的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围 应该以权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号