《一种管理异构混合内存的方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种管理异构混合内存的方法及装置.pdf(15页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 104239225 A (43)申请公布日 2014.12.24 CN 104239225 A (21)申请号 201410450192.6 (22)申请日 2014.09.04 G06F 12/02(2006.01) (71)申请人 浪潮 (北京) 电子信息产业有限公司 地址 100085 北京市海淀区上地信息路 2 号 2-1 号 C 栋 1 层 (72)发明人 郭美思 吴楠 (74)专利代理机构 北京安信方达知识产权代理 有限公司 11262 代理人 王丹 李丹 (54) 发明名称 一种管理异构混合内存的方法及装置 (57) 摘要 本发明公开了一种管理异构混合内。
2、存的方法 及装置。 所述异构混合内存包括NVM和DRAM, 所述 方法包括以下步骤 : 接收用户进程发送的内存分 配请求, 对所述用户进程进行判断 ; 如果所述用 户进程为系统级进程, 则将所述 DRAM 中的内存空 间分配给所述用户进程 ; 如果所述用户进程为批 量处理进程, 则将所述 NVM 中的内存空间分配给 所述用户进程。 本发明通过上述内存管理机制, 能 够保证系统级进程在访存速度较快的 DRAM 中进 行数据处理, 并使得批量处理进程在 NVM 中进行 数据处理, 降低了由于 DRAM 和 NVM 之间的访存速 度差异而对数据处理速度带来的影响, 提升了用 户进程的数据处理速度和系。
3、统整体的处理性能。 (51)Int.Cl. 权利要求书 2 页 说明书 8 页 附图 4 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书8页 附图4页 (10)申请公布号 CN 104239225 A CN 104239225 A 1/2 页 2 1. 一种管理异构混合内存的方法, 其特征在于, 所述异构混合内存包括非易失性存储 器 NVM 和动态随机存取存储器 DRAM, 所述方法包括以下步骤 : 接收用户进程发送的内存分配请求, 对所述用户进程进行判断 ; 如果所述用户进程为系统级进程, 则将所述 DRAM 中的内存空间分配给所述用户进程 ; 如果所。
4、述用户进程为批量处理进程, 则将所述 NVM 中的内存空间分配给所述用户进 程。 2. 如权利要求 1 所述的方法, 其特征在于, 还包括 : 对用户进程释放的内存空间进行判断 ; 如果是所述 DRAM 中的内存空间, 则通过伙伴系统对所述用户进程释放的内存空间进 行回收 ; 如果是所述 NVM 中的内存空间, 则将所述用户进程释放的内存空间标记为可回收内 存, 更新所述可回收内存的时间戳, 并在所述可回收内存的时间戳到期后, 通过所述伙伴系 统对所述可回收内存进行回收。 3. 如权利要求 1 所述的方法, 其特征在于, 还包括 : 将所述异构混合内存中的数据分为热数据、 候选热数据和冷数据,。
5、 将所述热数据和所 述候选热数据存放到所述 DRAM 中, 将所述冷数据存放到 NVM 中, 并生成热数据队列和候选 热数据队列 ; 其中, 所述热数据为所述异构混合内存中访问频率大于或等于预定的第一阈值的数 据, 所述候选热数据为所述异构混合内存中访问频率小于所述第一阈值且大于预定的第二 阈值的数据, 所述冷数据为异构混合内存中访问频率小于或等于所述第二阈值的数据, 所 述热数据队列用于存放所述热数据的逻辑区块地址 LBA, 所述候选热数据队列用于存放所 述候选热数据的 LBA。 4. 如权利要求 3 所述的方法, 其特征在于, 还包括 : 将所述热数据队列中的、 当前时间之前的预定长度的时。
6、间段内最少使用的 LBA 从热数 据队列中删除并添加到所述候选热数据队列, 将所述最少使用的 LBA 对应的数据标记为候 选热数据。 5. 如权利要求 3 所述的方法, 其特征在于, 还包括 : 将所述候选热数据队列中的、 当前时间之前的预定长度的时间段内最少使用的 LBA 从 所述候选热数据队列中删除, 将所述最少使用的 LBA 对应的数据标记为冷数据, 并将所述 最少使用的 LBA 对应的数据存放到所述 NVM 中。 6. 如权利要求 1 所述的方法, 其特征在于, 还包括 : 在系统内核层构建内存镜像, 在系统运行时, 将所述内存镜像写入所述 NVM ; 在系统关机或休眠后检测到用户的触。
7、发, 则将所述 NVM 中的内存镜像写回至所述 DRAM。 7. 一种管理异构混合内存的装置, 其特征在于, 所述异构混合内存包括非易失性存储 器 NVM 和动态随机存取存储器 DRAM, 所述装置包括 : 接收模块, 用于接收用户进程发送的内存分配请求 ; 第一判断模块, 用于对所述用户进程进行判断 ; 分配模块, 用于在所述第一判断模块判断出所述用户进程为系统级进程时, 将所述 权 利 要 求 书 CN 104239225 A 2 2/2 页 3 DRAM 中的内存空间分配给所述用户进程 ; 在所述第一判断模块判断出所述用户进程为批 量处理进程时, 将所述 NVM 中的内存空间分配给所述用。
8、户进程。 8. 如权利要求 7 所述的装置, 其特征在于, 还包括 : 第二判断模块, 用于对用户进程释放的内存空间进行判断 ; 回收模块, 用于在所述第二判断模块判断出所述用户进程释放的内存空间是所述 DRAM 中的内存空间时, 通过伙伴系统对所述用户进程释放的内存空间进行回收 ; 在所述第二判 断模块判断出所述用户进程释放的内存空间是所述 NVM 中的内存空间时, 将所述用户进程 释放的内存空间标记为可回收内存, 更新所述可回收内存的时间戳, 并在所述可回收内存 的时间戳到期后, 通过所述伙伴系统对所述可回收内存进行回收。 9. 如权利要求 7 所述的装置, 其特征在于, 还包括 : 分类。
9、模块, 用于将所述异构混合内存中的数据分为热数据、 候选热数据和冷数据, 将所 述热数据和所述候选热数据存放到所述 DRAM 中, 将所述冷数据存放到 NVM 中, 并生成热数 据队列和候选热数据队列 ; 其中, 所述热数据为所述异构混合内存中访问频率大于或等于预定的第一阈值的数 据, 所述候选热数据为所述异构混合内存中访问频率小于所述第一阈值且大于预定的第二 阈值的数据, 所述冷数据为异构混合内存中访问频率小于或等于所述第二阈值的数据, 所 述热数据队列用于存放所述热数据的逻辑区块地址 LBA, 所述候选热数据队列用于存放所 述候选热数据的 LBA。 10. 如权利要求 9 所述的装置, 其。
10、特征在于, 还包括 : 第一管理模块, 用于将所述热数据队列中的、 当前时间之前的预定长度的时间段内最 少使用的 LBA 从热数据队列中删除并添加到所述候选热数据队列, 将所述最少使用的 LBA 对应的数据标记为候选热数据。 11. 如权利要求 9 所述的装置, 其特征在于, 还包括 : 第二管理模块, 用于将所述候选热数据队列中的、 当前时间之前的预定长度的时间段 内最少使用的 LBA 从所述候选热数据队列中删除, 将所述最少使用的 LBA 对应的数据标记 为冷数据, 并将所述最少使用的 LBA 对应的数据存放到所述 NVM 中。 12. 如权利要求 7 所述的装置, 其特征在于, 还包括 。
11、: 构建模块, 用于在系统内核层构建内存镜像 ; 写入模块, 用于在系统运行时, 将所述内存镜像写入所述 NVM ; 在系统关机或休眠后检 测到用户的触发时, 将所述 NVM 中的内存镜像写回至所述 DRAM。 权 利 要 求 书 CN 104239225 A 3 1/8 页 4 一种管理异构混合内存的方法及装置 技术领域 0001 本发明涉及计算机技术领域, 具体涉及一种管理异构混合内存的方法及装置。 背景技术 0002 随着云时代的来临, 大数据 (Big data) 也吸引了越来越多的关注, 大数据所催生 的内存计算对计算机内存的速度、 容量、 能耗和可靠性提出了极高的需求。 而传统的计。
12、算机 内存由DRAM(Dynamic Random Access Memory, 动态随机存取存储器)构成, 由于DRAM的介 质尺寸已到达 CMOS(Complementary Metal-Oxide-Semiconductor, 互补式金属氧化物半导 体 ) 工艺的极限, 因此, DRAM 在系统稳定性、 数据可靠性和寿命等问题上面临极大挑战。 0003 NVM(Non-Volatile Memory, 非易失性存储器 ) 的出现, 为扩展计算机内存提供了 新的途径, 同时促进了计算机在系统结构上从机械硬盘的传统架构到新型 NVM 的内存架构 的演变。 0004 目前, 业界中通过 I/O。
13、 通道构建由 DRAM 和 NVM 组成的混合内存, 通过 I/O 通道将 数据迁移到内存中, 数据访问延迟较大, 无法达到内存计算的 ns( 纳秒 ) 级别的性能需求。 发明内容 0005 本发明提供了一种管理异构混合内存的方法及装置, 以解决现有技术中数据访问 延迟较大的缺陷。 0006 本发明提供了一种管理异构混合内存的方法, 所述异构混合内存包括非易失性存 储器 NVM 和动态随机存取存储器 DRAM, 所述方法包括以下步骤 : 0007 接收用户进程发送的内存分配请求, 对所述用户进程进行判断 ; 0008 如果所述用户进程为系统级进程, 则将所述 DRAM 中的内存空间分配给所述用。
14、户 进程 ; 0009 如果所述用户进程为批量处理进程, 则将所述 NVM 中的内存空间分配给所述用户 进程。 0010 可选地, 所述的方法, 还包括 : 0011 对用户进程释放的内存空间进行判断 ; 0012 如果是所述 DRAM 中的内存空间, 则通过伙伴系统对所述用户进程释放的内存空 间进行回收 ; 0013 如果是所述 NVM 中的内存空间, 则将所述用户进程释放的内存空间标记为可回收 内存, 更新所述可回收内存的时间戳, 并在所述可回收内存的时间戳到期后, 通过所述伙伴 系统对所述可回收内存进行回收。 0014 可选地, 所述的方法, 还包括 : 0015 将所述异构混合内存中的。
15、数据分为热数据、 候选热数据和冷数据, 将所述热数据 和所述候选热数据存放到所述 DRAM 中, 将所述冷数据存放到 NVM 中, 并生成热数据队列和 候选热数据队列 ; 说 明 书 CN 104239225 A 4 2/8 页 5 0016 其中, 所述热数据为所述异构混合内存中访问频率大于或等于预定的第一阈值的 数据, 所述候选热数据为所述异构混合内存中访问频率小于所述第一阈值且大于预定的第 二阈值的数据, 所述冷数据为异构混合内存中访问频率小于或等于所述第二阈值的数据, 所述热数据队列用于存放所述热数据的逻辑区块地址 LBA, 所述候选热数据队列用于存放 所述候选热数据的 LBA。 00。
16、17 可选地, 所述的方法, 还包括 : 0018 将所述热数据队列中的、 当前时间之前的预定长度的时间段内最少使用的 LBA 从 热数据队列中删除并添加到所述候选热数据队列, 将所述最少使用的 LBA 对应的数据标记 为候选热数据。 0019 可选地, 所述的方法, 还包括 : 0020 将所述候选热数据队列中的、 当前时间之前的预定长度的时间段内最少使用的 LBA 从所述候选热数据队列中删除, 将所述最少使用的 LBA 对应的数据标记为冷数据, 并将 所述最少使用的 LBA 对应的数据存放到所述 NVM 中。 0021 可选地, 所述的方法, 还包括 : 0022 在系统内核层构建内存镜像。
17、, 在系统运行时, 将所述内存镜像写入所述 NVM ; 0023 在系统关机或休眠后检测到用户的触发, 则将所述 NVM 中的内存镜像写回至所述 DRAM。 0024 本发明还提供了一种管理异构混合内存的装置, 所述异构混合内存包括非易失性 存储器 NVM 和动态随机存取存储器 DRAM, 所述装置包括 : 0025 接收模块, 用于接收用户进程发送的内存分配请求 ; 0026 第一判断模块, 用于对所述用户进程进行判断 ; 0027 分配模块, 用于在所述第一判断模块判断出所述用户进程为系统级进程时, 将所 述 DRAM 中的内存空间分配给所述用户进程 ; 在所述第一判断模块判断出所述用户进。
18、程为 批量处理进程时, 将所述 NVM 中的内存空间分配给所述用户进程。 0028 可选地, 所述的装置, 还包括 : 0029 第二判断模块, 用于对用户进程释放的内存空间进行判断 ; 0030 回收模块, 用于在所述第二判断模块判断出所述用户进程释放的内存空间是所述 DRAM 中的内存空间时, 通过伙伴系统对所述用户进程释放的内存空间进行回收 ; 在所述第 二判断模块判断出所述用户进程释放的内存空间是所述 NVM 中的内存空间时, 将所述用户 进程释放的内存空间标记为可回收内存, 更新所述可回收内存的时间戳, 并在所述可回收 内存的时间戳到期后, 通过所述伙伴系统对所述可回收内存进行回收。。
19、 0031 可选地, 所述的装置, 还包括 : 0032 分类模块, 用于将所述异构混合内存中的数据分为热数据、 候选热数据和冷数据, 将所述热数据和所述候选热数据存放到所述 DRAM 中, 将所述冷数据存放到 NVM 中, 并生成 热数据队列和候选热数据队列 ; 0033 其中, 所述热数据为所述异构混合内存中访问频率大于或等于预定的第一阈值的 数据, 所述候选热数据为所述异构混合内存中访问频率小于所述第一阈值且大于预定的第 二阈值的数据, 所述冷数据为异构混合内存中访问频率小于或等于所述第二阈值的数据, 所述热数据队列用于存放所述热数据的逻辑区块地址 LBA, 所述候选热数据队列用于存放 。
20、说 明 书 CN 104239225 A 5 3/8 页 6 所述候选热数据的 LBA。 0034 可选地, 所述的装置, 还包括 : 0035 第一管理模块, 用于将所述热数据队列中的、 当前时间之前的预定长度的时间段 内最少使用的 LBA 从热数据队列中删除并添加到所述候选热数据队列, 将所述最少使用的 LBA 对应的数据标记为候选热数据。 0036 可选地, 所述的装置, 还包括 : 0037 第二管理模块, 用于将所述候选热数据队列中的、 当前时间之前的预定长度的时 间段内最少使用的 LBA 从所述候选热数据队列中删除, 将所述最少使用的 LBA 对应的数据 标记为冷数据, 并将所述最。
21、少使用的 LBA 对应的数据存放到所述 NVM 中。 0038 可选地, 所述的装置, 还包括 : 0039 构建模块, 用于在系统内核层构建内存镜像 ; 0040 写入模块, 用于在系统运行时, 将所述内存镜像写入所述 NVM ; 在系统关机或休眠 后检测到用户的触发时, 将所述 NVM 中的内存镜像写回至所述 DRAM。 0041 本发明通过上述内存管理机制, 能够保证系统级进程在访存速度较快的 DRAM 中 进行数据处理, 并使得批量处理进程在 NVM 中进行数据处理, 降低了由于 DRAM 和 NVM 之间 的访存速度差异而对数据处理速度带来的影响, 提升了用户进程的数据处理速度和系统。
22、整 体的处理性能。 附图说明 0042 图 1 为本发明实施例中的一种基于异构混合内存的系统硬件架构图 ; 0043 图 2 为本发明实施例中的一种分配异构混合内存的方法流程图 ; 0044 图 3 为本发明实施例中的一种回收异构混合内存的方法流程图 ; 0045 图 4 为本发明实施例中的一种管理异构混合内存的装置结构图。 具体实施方式 0046 下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完 整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。基于 本发明中的实施例, 本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实。
23、施例, 都属于本发明保护的范围。 0047 需要说明的是, 如果不冲突, 本发明实施例以及实施例中的各个特征可以相互结 合, 均在本发明的保护范围之内。另外, 虽然在流程图中示出了逻辑顺序, 但是在某些情况 下, 可以以不同于此处的顺序执行所示出或描述的步骤。 0048 本发明实施例中的异构混合内存包括 NVM 和 DRAM, NVM 可以是 Flash 存储器, 也可 以是 PCM(Phase-Change Memory, 相变化内存 ), 还可以是 Flash 存储器和 PCM 的组合, 如图 1 所示。 0049 其 中, CPU 通过 DDR SDRAM(Double Data Rat。
24、e Synchronous Dynamic Random Access Memory, 双倍数据率同步动态随机存取存储器 ) 控制器访问 DRAM, 并通过 CCB(CPU Coherence Bus, CPU 一致性总线 ) 与 NVM 内存管理芯片连接 ; NVM 内存管理芯片支持多种 标准接口, 通过NVMe(Non-Volatile Memory Express, 非易失性存储器快速)接口与Flash 说 明 书 CN 104239225 A 6 4/8 页 7 存储器连接, 通过 LPDDR2(Low Power Double Data Rate SDRAM, 低功耗双倍数据率同步动。
25、 态随机存取存储器 ) 控制器连接 PCM, 并通过 DDR SDRAM 控制器连接 DRAM 缓存。 0050 本发明实施例通过统一编址的方式对异构混合内存进行统一管理, 异构混合内存 由多个固定长度的页框组成, 每个页框包含一个页, 每个页是由一系列连续的线性地址组 成的。本发明实施例通过页表对异构混合内存中的页进行管理, 并将 NVM 中的页框标记为 LARGEMEM_FLAG。 其中, 页表是内存块的目录文件, 用于实现从页号到物理块号的地址映射。 0051 进一步地, 本发明实施例中的页框的大小比系统中默认的页框的大小扩大 2-3 倍, 能够显著地减少内存中页框的数量, 将 TLB(。
26、Translation Lookaside Buffer, 翻译后备 缓冲器 ) 缺失的开销降低到 2以内, 降低对查询效率的影响。 0052 基于上述异构混合内存, 本发明实施例提供了一种管理异构混合内存的方法, 包 括对异构混合内存的分配和回收, 其中, 分配异构混合内存的方法流程, 如图 2 所示, 包括 以下步骤 : 0053 步骤 201, 接收用户进程发送的内存分配请求。 0054 步骤 202, 对用户进程进行判断, 如果用户进程为系统级进程, 则执行步骤 203 ; 如 果用户进程为批量处理进程, 则执行步骤 204。 0055 步骤 203, 将 DRAM 中的内存空间分配给。
27、用户进程。 0056 具体地, 当判断出用户进程为系统级进程后, 可以判断用户进程申请分配的内存 是否为小块内存, 如果不是小块内存, 则通过伙伴系统将 DRAM 中的内存空间分配给该用户 进程, 并将分配的内存空间的首地址返回给该用户进程 ; 如果是小块内存, 则通过 slab 分 配器将 slab 列表中的内存空间分配给用户进程, 并将分配的内存空间的首地址返回给该 用户进程。 其中, 小块内存是指系统级进程运行时申请的内存块, 小块内存的大小不会超过 整个 DRAM 的大小。 0057 步骤 204, 将 NVM 中的内存空间分配给用户进程。 0058 具体地, 当判断出用户进程为批量处。
28、理进程后, 可以通过bam分配器将NVM中的内 存空间分配给该用户进程, 并将分配的内存空间的首地址返回给该用户进程。 0059 其中, bam 分配器是由用户自定义的分配器, 其工作机制与 slab 分配器相似。bam 分配器与 slab 分配器的区别在于, bam 分配器将分配的内存地址指向 NVM 中的区域, 将将 NVM 中的内存空间分配给用户进程。 0060 通过上述内存分配流程, 能够保证系统级进程在访存速度较快的 DRAM 中进行数 据处理, 并使得批量处理进程在 NVM 中进行数据处理, 降低了由于 DRAM 和 NVM 之间的访存 速度差异而对数据处理速度带来的影响, 提升了。
29、用户进程的数据处理速度和系统整体的处 理性能。 0061 相应地, 当用户进程运行结束后, 回收异构混合内存的方法流程, 如图 3 所示, 包 括以下步骤 : 0062 步骤 301, 对用户进程释放的内存空间进行判断, 如果是 DRAM 中的内存空间, 则执 行步骤 302 ; 如果是 NVM 中的内存空间, 则执行步骤 303。 0063 具体地, 可以判断用户进程释放的内存空间是否被标记为 LARGEMEM_FLAG, 如果 是, 则确定用户进程释放的内存空间是 NVM 中的内存空间 ; 否则, 确定用户进程释放的内存 空间是 DRAM 中的内存空间。 说 明 书 CN 10423922。
30、5 A 7 5/8 页 8 0064 步骤 302, 通过伙伴系统对用户进程释放的内存空间进行回收。 0065 步骤 303, 将用户进程释放的内存空间标记为可回收内存, 并更新可回收内存的时 间戳。 0066 其中, 时间戳是由系统内部设定的。 0067 步骤 304, 当可回收内存的时间戳到期后, 通过伙伴系统对可回收内存进行回收。 0068 具体地, 可通过内核级守护进程对可回收内存的时间戳进行定时轮询, 判断可回 收内存的时间戳是否到期, 如果未到期, 则继续通过内核级守护进行对可回收内存的时间 戳进行定时轮询, 如果到期, 则通过伙伴系统对可回收内存进行回收。 0069 上述内存回收。
31、流程中, 通过对 NVM 中的内存空间采用延后回收机制, 能够避免对 内存空间频繁地回收和分配, 提升了系统的处理性能。 0070 由于异构混合内存中的不同数据的访问频率也各不相同, 本发明实施例中基于多 维关联规则的决策树模型, 根据数据应用层面、 数据读写特性、 数据更新频率和数据实时性 等因素, 对异构混合内存中的数据进行多维度评价, 根据评价结果将异构混合内存中的数 据分为热数据、 候选热数据和冷数据, 将热数据和候选热数据存放到 DRAM 中, 将冷数据存 放到 NVM 中, 并生成热数据队列和候选热数据队列。其中, 热数据为异构混合内存中访问频 率大于或等于预定的第一阈值的数据, 。
32、候选热数据为异构混合内存中访问频率小于第一阈 值且大于预定的第二阈值的数据, 冷数据为异构混合内存中访问频率小于或等于第二阈值 的数据, 热数据队列用于存放热数据的LBA(Logical Block Address, 逻辑区块地址), 候选 热数据队列用于存放候选热数据的 LBA。其中, 第一阈值可以大于第二阈值。 0071 相应地, 在系统运行过程中, 还可以根据系统运行时的数据使用状况, 采用 LRU(Least Recently Used, 近期最少使用 ) 优化算法对热数据队列和候选热数据队列中 的 LBA 进行维护。对于热数据队列中的、 当前时间之前的预定长度的时间段内最少使用的 L。
33、BA, 可以将该 LBA 从热数据队列中删除, 并将该 LBA 添加到候选热数据队列, 将该 LBA 对应 的数据标记为候选热数据。对于候选热数据队列中的、 当前时间之前的预定长度的时间段 内最少使用的 LBA, 可以将该 LBA 从候选热数据队列中删除, 将该 LBA 对应的数据标记为冷 数据, 并将该 LBA 对应的数据存放到 NVM 中。 0072 通过上述基于数据热度的分配管理机制, 对异构混合内存中的数据进行分级管 理, 将不同热度的数据存放到内存中的不同区域, 从加快了对内存数据的访问速度, 提升了 系统的处理性能。 0073 基于上述异构混合内存, 本发明实施例还在操作系统内核层。
34、面对文件系统、 虚拟 内存和系统快速启动进行优化, 充分地利用 NVM 的非易失性特性, 以提高系统性能。 0074 具体地, 可以将文件系统中的文件索引、 操作日志和文件系统缓冲区设置在 NVM 中进行管理, 并对虚拟内存进行优化, 用 NVM 中的交换分区替代磁盘交换分区, 用来保存从 DRAM 中替换出来的内存页。 0075 此外, 还可以在系统内核层构建内存镜像, 在系统运行时, 将该内存镜像写入 NVM。 相应地, 在系统关机或休眠后检测到用户的触发, 则将 NVM 中的内存镜像写回至 DRAM, 从而 在几乎不影响系统性能情况下, 通过更细粒度的时间周期, 精确地实现内存镜像的同步。
35、更 新, 实现系统的瞬时开机或者唤醒。 0076 然而, NVM 虽然具有非易失性, 但也存在寿命上的限制。因此, 针对 NVM 的寿命受 说 明 书 CN 104239225 A 8 6/8 页 9 到写操作和擦除操作的影响的特性, 可以统计 NVM 在抽样时段内的写操作次数和擦除操作 次数, 根据统计结果预测 NVM 的最大写操作操作次数和最大擦除操作次数。相应地, 在系统 运行过程中, 可以对 NVM 的写操作次数和擦除操作次数进行监控, 当 NVM 的写操作次数达 到 NVM 的最大写操作次数与第一预设百分比的乘积, 或者, NVM 的擦除操作次数达到 NVM 的 最大擦除操作次数与第。
36、二预设百分比的乘积时, 可以屏蔽对上述 NVM 的寻址操作和管理操 作, 并进行系统报警。 优选地, 第一预设百分比和第二预设百分比可以均为90。 通过上述 NVM 寿命的管理机制, 能够防止因 NVM 寿命终结而造成的数据块不可用的问题。 0077 此外, 本发明实施例还采用加密和校验机制, 对于需要写入到 NVM 中的数据, 可以 通过加密模块对该数据进行加密, 并将加密后的数据写入到 NVM 中, 从而防止存储数据被 窃取。对于需要从 NVM 写入到 DRAM 的数据, 可以通过解密模块对该数据进行解密, 并将解 密后的数据写入到 DRAM 中, 从而实现数据的完整可用。另外, 本发明实。
37、施例对 NVM 中的系 统关键数据使用校验机制, 即, 使用加解密技术对系统关键数据进行保护, 防止恶意的入侵 修改所引起的系统安全问题, 保障异构混合内存体系结构下的系统及数据安全。 0078 另外, 本发明实施例还通过在内核层收集系统运行时信息来监控工作负载, 并基 于神经网络模型对系统能耗状态评估, 当计算节点的负载低于特定阈值时, 则将该计算节 点设置为休眠状态, 以减少系统能耗 ; 当系统负载提高时, 则对当前处于休眠状态的计算节 点进行唤醒。 与传统的节能方式相比, 本发明实施例将休眠的粒度从器件级提升至节点级, 能够更有效地进行能耗控制。 0079 基于上述异构混合内存, 本发明。
38、实施例还提供了一种管理异构混合内存的装置, 该异构混合内存包括 NVM 和 DRAM, 该装置的结构如图 4 所示, 包括 : 0080 接收模块 401, 用于接收用户进程发送的内存分配请求 ; 0081 第一判断模块 402, 用于对接收模块 401 接收到的用户进程进行判断 ; 0082 分配模块403, 用于在第一判断模块402判断出用户进程为系统级进程时, 将DRAM 中的内存空间分配给用户进程 ; 在第一判断模块 402 判断出用户进程为批量处理进程时, 将 NVM 中的内存空间分配给用户进程。 0083 具体地, 上述分配模块 403, 具体用于在第一判断模块 402 判断出用户。
39、进程为批量 处理进程时, 通过bam分配器将NVM中的内存空间分配给用户进程, 并将分配的内存空间的 首地址返回给用户进程 ; 在第一判断模块 402 判断出用户进程为系统级进程时, 判断用户 进程申请分配的内存是否为小块内存, 如果不是小块内存, 则通过伙伴系统将 DRAM 中的内 存空间分配给用户进程, 并将分配的内存空间的首地址返回给用户进程 ; 如果是小块内存, 则通过 slab 分配器将 slab 列表中的内存空间分配给用户进程, 并将分配的内存空间的首 地址返回给用户进程。 0084 进一步地, 上述装置, 还包括 : 0085 第二判断模块 404, 用于对用户进程释放的内存空间。
40、进行判断 ; 0086 回收模块 405, 用于在第二判断模块 404 判断出用户进程释放的内存空间是 DRAM 中的内存空间时, 通过伙伴系统对用户进程释放的内存空间进行回收 ; 在第二判断模块 404 判断出用户进程释放的内存空间是 NVM 中的内存空间时, 将用户进程释放的内存空间 标记为可回收内存, 更新可回收内存的时间戳, 并在可回收内存的时间戳到期后, 通过伙伴 系统对可回收内存进行回收。 说 明 书 CN 104239225 A 9 7/8 页 10 0087 进一步地, 上述装置, 还包括 : 0088 第三判断模块 406, 用于通过内核级守护进程对可回收内存的时间戳进行定时。
41、轮 询, 判断可回收内存的时间戳是否到期 ; 0089 相应地, 上述回收模块 405, 具体用于在第二判断模块 404 判断出用户进程释放的 内存空间是 DRAM 中的内存空间时, 通过伙伴系统对用户进程释放的内存空间进行回收 ; 在 第二判断模块 404 判断出用户进程释放的内存空间是 NVM 中的内存空间时, 将用户进程释 放的内存空间标记为可回收内存, 更新可回收内存的时间戳, 并在第三判断模块 406 判断 出可回收内存的时间戳到期后, 通过伙伴系统对可回收内存进行回收。 0090 进一步地, 上述装置, 还包括 : 0091 分类模块 407, 用于将异构混合内存中的数据分为热数据。
42、、 候选热数据和冷数据, 将热数据和候选热数据存放到 DRAM 中, 将冷数据存放到 NVM 中, 并生成热数据队列和候选 热数据队列 ; 0092 其中, 热数据为异构混合内存中访问频率大于或等于预定的第一阈值的数据, 候 选热数据为异构混合内存中访问频率小于第一阈值且大于预定的第二阈值的数据, 冷数 据为异构混合内存中访问频率小于或等于第二阈值的数据, 热数据队列用于存放热数据的 LBA, 候选热数据队列用于存放候选热数据的 LBA。其中, 第一阈值可以大于第二阈值。 0093 第一管理模块 408, 用于将热数据队列中的、 当前时间之前的预定长度的时间段内 最少使用的 LBA 从热数据队。
43、列中删除并添加到候选热数据队列, 并将上述最少使用的 LBA 对应的数据标记为候选热数据。 0094 第二管理模块 409, 用于将候选热数据队列中的、 当前时间之前的预定长度的时间 段内最少使用的 LBA 从候选热数据队列中删除, 将该最少使用的 LBA 对应的数据标记为冷 数据, 并将该最少使用的 LBA 对应的数据存放到 NVM 中。 0095 设置模块 410, 用于将文件系统中的文件索引、 操作日志和文件系统缓冲区设置在 NVM 中进行管理。 0096 优化模块 411, 用于对虚拟内存进行优化, 用 NVM 中的交换分区替代磁盘交换分 区, 用来保存从 DRAM 中替换出来的内存页。
44、。 0097 构建模块 412, 用于在系统内核层构建内存镜像 ; 0098 写入模块413, 用于在系统运行时, 将构建模块412构建的内存镜像写入NVM ; 在系 统关机或休眠后检测到用户的触发时, 将 NVM 中的内存镜像写回至 DRAM。 0099 监控模块 414, 用于对 NVM 的写操作次数和擦除操作次数进行监控 ; 0100 屏蔽模块415, 用于在监控模块414监控到NVM的写操作次数达到NVM的最大写操 作次数与第一预设百分比的乘积, 或者, NVM 的擦除操作次数达到 NVM 的最大擦除操作次数 与第二预设百分比的乘积时, 屏蔽对 NVM 的寻址操作和管理操作, 并进行系。
45、统报警。 0101 评估模块 416, 用于通过在内核层收集系统运行时信息来监控工作负载, 并基于神 经网络模型对系统能耗状态评估, 当计算节点的负载低于特定阈值时, 将计算节点设置为 休眠状态 ; 当系统负载提高时, 对当前处于休眠状态的计算节点进行唤醒。 0102 本发明实施例针对不同类型内存的速度差异性, 使用不同的分配机制和回收机 制, 通过数据热度管理和异构混合内存分配机制缓冲对内存分配进行优化, 使得数据能够 根据计算需求合理地分配于异构混合内存体系中, 提升了系统整体的处理性能。 此外, 通过 说 明 书 CN 104239225 A 10 8/8 页 11 介质可靠容错机制、 。
46、系统容错机制和用户数据保密机制, 能够确保数据安全, 保证内存操作 的可靠性。 0103 结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、 处理器执行的 软件模块, 或者二者的结合来实施。 软件模块可以置于随机存储器(RAM)、 内存、 只读存储器 (ROM)、 电可编程 ROM、 电可擦除可编程 ROM、 寄存器、 硬盘、 可移动磁盘、 CD-ROM、 或技术领域 内所公知的任意其它形式的存储介质中。 0104 以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局限于此, 任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可轻易想到变化或替换, 都应涵 盖在本发明的保护范围之内。 因此, 本发明的保护范围应所述以权利要求的保护范围为准。 说 明 书 CN 104239225 A 11 1/4 页 12 图 1 说 明 书 附 图 CN 104239225 A 12 2/4 页 13 图 2 说 明 书 附 图 CN 104239225 A 13 3/4 页 14 图 3 说 明 书 附 图 CN 104239225 A 14 4/4 页 15 图 4 说 明 书 附 图 CN 104239225 A 15 。