CN110362508B - 一种基于贪心算法的混合缓存数据分配方法 - Google Patents

一种基于贪心算法的混合缓存数据分配方法 Download PDF

Info

Publication number
CN110362508B
CN110362508B CN201910681266.XA CN201910681266A CN110362508B CN 110362508 B CN110362508 B CN 110362508B CN 201910681266 A CN201910681266 A CN 201910681266A CN 110362508 B CN110362508 B CN 110362508B
Authority
CN
China
Prior art keywords
cache
cache block
flag bit
prediction table
power consumption
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
CN201910681266.XA
Other languages
English (en)
Other versions
CN110362508A (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.)
NANJING AUDIT UNIVERSITY
Original Assignee
NANJING AUDIT UNIVERSITY
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 NANJING AUDIT UNIVERSITY filed Critical NANJING AUDIT UNIVERSITY
Priority to CN201910681266.XA priority Critical patent/CN110362508B/zh
Publication of CN110362508A publication Critical patent/CN110362508A/zh
Application granted granted Critical
Publication of CN110362508B publication Critical patent/CN110362508B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

本发明公开了一种基于贪心算法的混合缓存数据分配方法,以此更好的解决混合缓存中缓存数据分配与存储问题。包括如下步骤:S1:对于每一次缓存访问操作,构建贪心算法获取缓存数据读/写操作行为特征,并及时更新预测表;S2:构建统计分析方法初始化预测表,将高能效的缓存数据分类信息记录在预测表中;S3:根据预测表中的缓存数据功耗优化标志位,将数据分配到混合缓存中的不同部分;S4:如果有缓存访问操作,则返回至步骤S1,如果没有缓存访问操作,则缓存访问结束。本发明所提出的贪心算法和统计分析方法能指导缓存数据以低功耗的形式存储在混合缓存中,进而降低缓存功耗并提升系统性能。

Description

一种基于贪心算法的混合缓存数据分配方法
技术领域
本发明涉及到计算机体系结构领域,具体涉及一种基于贪心算法的混合缓存数据分配方法。
背景技术
为了满足人们对低功耗和高性能电子设备与日俱增的需求,现代多核处理器中大多采用了多级缓存架构,传统缓存架构一般使用SRAM技术。然而,随着CMOS工艺尺寸的进一步下降,SRAM的漏电功耗大和伸缩性差将成为主要问题。因此,研究者开始积极寻找SRAM的替代方案,STT-RAM(Spin-Transfer Torque RAM)的出现为传统存储技术带来了新的机遇,因为STT-RAM有存储密度高、漏电功耗低和伸缩性好等优点。在未来,STT-RAM被认为是非常有潜力构建下一代片上缓存的存储技术。
STT-RAM有如此多的好处,尽管如此,研究者发现阻碍STT-RAM架构片上缓存的主要因素是它有写延迟长和写功耗高等缺点。同时STT-RAM具有读写不对称的特性。为了优化STT-RAM的写性能差的问题,研究者提出了混合缓存架构,即充分利用SRAM和STT-RAM各自的优点,将两者组合在一起构建片上缓存,减少STT-RAM上的写操作。许多研究者从体系结构的角度提出了构建混合缓存的方法,如基于路数(way-based)的混合缓存,基于区域(region-based)的混合缓存和缓存各个层次使用不同存储技术构建混合缓存。在这些架构和设计的基础上,许多研究者提出了缓存块数据分配和迁移的方法,用于将写频繁的缓存块分配到SRAM上,因为SRAM的写操作代价要远远小于STT-RAM上的写操作代价,从而减少STT-RAM的写压力。缓存整体功耗和性能都得到了大幅度的提升。
然而,现有技术的缺点主要包括以下几点:
(1)通过标识信息识别写频繁的缓存块,识别精度不高;
(2)在混合缓存中采用缓存块迁移方法,对于频繁迁移的缓存块将产生额外的迁移开销;
(3)采用编译技术优化混合缓存,需要编译器提供静态标识,在有些情形下不太实际。
发明内容
本发明提供了一种基于贪心算法的混合缓存数据分配方法,目的在于克服现有混合缓存数据分配方法的不足,通过利用贪心算法和统计分析方法获取缓存的访问行为特征,优化数据的分配,进而优化读写功耗,以此更好的解决混合缓存中现有缓存数据管理和分配策略的问题。
为了实现本发明的目的,本发明所采用的技术方案为,设计一种基于贪心算法的混合缓存数据分配方法,包括如下步骤:
S1:对于每一次缓存访问操作,构建贪心算法获取缓存数据读/写操作行为特征,并及时更新预测表;
S2:构建统计分析方法初始化预测表,将高能效的缓存数据分类信息记录在预测表中;
S3:根据预测表中的缓存数据功耗优化标志位,将数据分配到混合缓存中的不同部分;
S4:如果有缓存访问操作,则返回至步骤S1,如果没有缓存访问操作,则缓存访问结束。
其中,步骤S1中所述的贪心算法包括如下步骤:
输入:预设程序执行周期RT,预测错误阈值数ET;
输出:缓存块数据分配信息,及更新预测表;
步骤1:如果缓存块从SRAM中替换出去且通过功耗计算该缓存块在NVM中的访问功耗低,则将该缓存块的标志位设为1,并将标志位和PC信息存入错误表;
步骤2:如果缓存块从NVM中替换出去且通过功耗计算该缓存块在SRAM中的访问功耗低,则将该缓存块的标志位设为0,并将标志位和PC信息存入错误表;
步骤3:计算预测表中预测错误的数量,并计为EN;
步骤4:如果EN等于ET,则执行步骤4.1,步骤4.2,步骤4.3,步骤4.4,步骤4.5,步骤5;
步骤4.1:在预设程序执行周期RT内,重复执行步骤1和步骤2;
步骤4.2:根据错误表的反馈信息,更新预测表中对应缓存块的标志位和PC;
步骤4.3:如果待访问的缓存块在预测表中标志位为0,则将该缓存块分配给SRAM;
步骤4.4:如果待访问的缓存块在预测表中标志位为1,则将该缓存块分配给NVM;
步骤4.5:如果待访问的缓存块不在预测表中,则正常执行缓存访问操作;
步骤5:将EN重置为0并清空错误表中的记录;
步骤6:如果EN不等于ET,则按顺序执行步骤4.3,步骤4.4和步骤4.5。
步骤S2中所述的统计分析方法包括如下步骤:
输入:测试程序P,选择缓存块数据规模S;
输出:缓存数据分类信息预测表T;
步骤1:分析程序P访问缓存的行为,每当缓存块替换出去时,统计它的读写操作次数;
步骤2:如果该缓存块从SRAM中替换出去,给该缓存块设置标志位,并将其值置为0;
步骤3:如果该缓存块从NVM中替换出去,给该缓存块设置标志位,并将其值置为1;
步骤4:计算每个缓存块的访问功耗;
步骤5:选择功耗最小且数据规模量为S的缓存块;
步骤6:将这些缓存块信息记录在预测表中。
本发明的有益效果在于:
(1)本方法采用的是一种基于贪心算法的混合缓存数据分配方法,即通过贪心算法和统计分析方法指导混合缓存数据分配,优化混合缓存中数据存储操作,非常适合在混合缓存中使用,可以有效降低系统功耗、提升系统的性能;
(2)本方法的适用范围比较广泛,在多种类型的混合缓存均可使用;
(3)本方法对现有的体系结构改动较小,算法复杂度不高,软硬件实现开销小。
附图说明
图1为一种基于贪心算法的混合缓存数据分配方法逻辑结构图。
图2为贪心算法示意图。
图3为统计分析方法示意图。
具体实施方式
为了使本发明的目的及优点更加清楚明白,下面结合附图和实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例:一种基于贪心算法的混合缓存数据分配方法,利用贪心算法和统计分析方法指导混合缓存数据分配,优化混合缓存中数据存储操作。图1为本实施例的一种基于贪心算法的混合缓存数据分配方法逻辑结构图。
该结构图包括如下部分:
(1)贪心算法;
(2)统计分析方法;
(3)预测表;
(4)缓存控制器。
对应于上述逻辑结构,贪心算法实时监控缓存的读写操作行为,并根据其特征更新预测表。统计分析方法通过对程序的预分析,将分析结果作为预测表的初始化数据。预测表的结构包含程序计数器(Program counter,PC)和标志位。缓存控制器用于指导混合缓存数据分配。
具体的逻辑关系和步骤如下:
S1:对于每一次缓存访问操作,构建贪心算法获取缓存数据读/写操作行为特征,并及时更新预测表;
S2:构建统计分析方法初始化预测表,将高能效的缓存数据分类信息记录在预测表中;
S3:根据预测表中的缓存数据功耗优化标志位,将数据分配到混合缓存中的不同部分;
S4:如果有缓存访问操作,则返回至步骤S1,如果没有缓存访问操作,则缓存访问结束。
对应于上述逻辑结构,其主要的贪心算法如图2所示,它包含以下步骤:
步骤1:如果缓存块从SRAM中替换出去且通过功耗计算该缓存块在NVM中的访问功耗低,则将该缓存块的标志位设为1,并将标志位和PC信息存入错误表;
步骤2:如果缓存块从NVM中替换出去且通过功耗计算该缓存块在SRAM中的访问功耗低,则将该缓存块的标志位设为0,并将标志位和PC信息存入错误表;
步骤3:计算预测表中预测错误的数量,并计为EN;
步骤4:如果EN等于ET,则执行步骤4.1,步骤4.2,步骤4.3,步骤4.4,步骤4.5,步骤5;
步骤4.1:在预设程序执行周期RT内,重复执行步骤1和步骤2;
步骤4.2:根据错误表的反馈信息,更新预测表中对应缓存块的标志位和PC;
步骤4.3:如果待访问的缓存块在预测表中标志位为0,则将该缓存块分配给SRAM;
步骤4.4:如果待访问的缓存块在预测表中标志位为1,则将该缓存块分配给NVM;
步骤4.5:如果待访问的缓存块不在预测表中,则正常执行缓存访问操作;
步骤5:将EN重置为0并清空错误表中的记录;
步骤6:如果EN不等于ET,则按顺序执行步骤4.3,步骤4.4和步骤4.5。
对应于上述逻辑结构,其主要的统计分析方法如图3所示,它包含以下步骤:
步骤1:分析程序P访问缓存的行为,每当缓存块替换出去时,统计它的读写操作次数;
步骤2:如果该缓存块从SRAM中替换出去,给该缓存块设置标志位,并将其值置为0;
步骤3:如果该缓存块从NVM中替换出去,给该缓存块设置标志位,并将其值置为1;
步骤4:计算每个缓存块的访问功耗;
步骤5:选择功耗最小且数据规模量为S的缓存块;
步骤6:将这些缓存块信息记录在预测表中。
本实施例的实验测试方法如下,本发明涉及的算法可以利用目前流行的模拟器GEM5进行验证。首先需要配置模拟器的基准体系结构参数,具体配置可以参考表1:
Figure SMS_1
表1
其次,在该模拟器中修改缓存模块以实现本发明的方法,最后,在修改后的模拟器中执行一组标准测试程序集(PARSEC),采用simlarge数据集作为应用程序的输入,如表2所示:
Figure SMS_2
表2
综上所述,本发明专利使用一种基于贪心算法的混合缓存数据分配方法,当测试程序运行较长时间后,缓存块数据将以低功耗的形式存储在混合缓存的不同区域中,可以有效降低混合缓存的访问功耗,同时提升系统的整体性能。
基于前文所述可知,本发明提出的一种基于贪心算法的混合缓存数据分配方法具有如下优点:
(1)本方法采用的是一种基于贪心算法的混合缓存数据分配方法,即通过贪心算法和统计分析方法指导混合缓存数据分配,优化混合缓存中数据存储操作,非常适合在混合缓存中使用,可以有效降低系统功耗、提升系统的性能;
(2)本方法的适用范围比较广泛,在多种类型的混合缓存均可使用;
(3)本方法对现有的体系结构改动较小,算法复杂度不高,软硬件实现开销小。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,极易根据上述实施例,领会本发明的精神,并做出不同的改进和润饰,但只要不脱离本发明的基本原理,这些改进和润饰也应视为本发明的保护范围内。

Claims (1)

1.一种基于贪心算法的混合缓存数据分配方法,其特征在于,包括如下步骤:
S1:对于每一次缓存访问操作,构建贪心算法获取缓存数据读/写操作行为特征,并及时更新预测表,所述的贪心算法包括如下步骤:
输入:预设程序执行周期RT,预测错误阈值数ET;
输出:缓存块数据分配信息,及更新预测表;
步骤1:如果缓存块从SRAM中替换出去且通过功耗计算该缓存块在NVM中的访问功耗低,则将该缓存块的标志位设为1,并将标志位和PC信息存入错误表;
步骤2:如果缓存块从NVM中替换出去且通过功耗计算该缓存块在SRAM中的访问功耗低,则将该缓存块的标志位设为0,并将标志位和PC信息存入错误表;
步骤3:计算预测表中预测错误的数量,并计为EN;
步骤4:如果EN等于ET,则执行步骤4.1,步骤4.2,步骤4.3,步骤4.4,步骤4.5,步骤5;
步骤4.1:在预设程序执行周期RT内,重复执行步骤1和步骤2;
步骤4.2:根据错误表的反馈信息,更新预测表中对应缓存块的标志位和PC;
步骤4.3:如果待访问的缓存块在预测表中标志位为0,则将该缓存块分配给SRAM;
步骤4.4:如果待访问的缓存块在预测表中标志位为1,则将该缓存块分配给NVM;
步骤4.5:如果待访问的缓存块不在预测表中,则正常执行缓存访问操作;
步骤5:将EN重置为0并清空错误表中的记录;
步骤6:如果EN不等于ET,则按顺序执行步骤4.3,步骤4.4和步骤4.5;
S2:构建统计分析方法初始化预测表,将高能效的缓存数据分类信息记录在预测表中,所述的统计分析方法包括如下步骤:
输入:测试程序P,选择缓存块数据规模S;
输出:缓存数据分类信息预测表T;
步骤1:分析程序P访问缓存的行为,每当缓存块替换出去时,统计它的读写操作次数;
步骤2:如果该缓存块从SRAM中替换出去,给该缓存块设置标志位,并将其值置为0;
步骤3:如果该缓存块从NVM中替换出去,给该缓存块设置标志位,并将其值置为1;
步骤4:计算每个缓存块的访问功耗;
步骤5:选择功耗最小且数据规模量为S的缓存块;
步骤6:将这些缓存块信息记录在预测表中;
S3:根据预测表中的缓存数据功耗优化标志位,将数据分配到混合缓存中的不同部分;
S4:如果有缓存访问操作,则返回至步骤S1,如果没有缓存访问操作,则缓存访问结束。
CN201910681266.XA 2019-07-26 2019-07-26 一种基于贪心算法的混合缓存数据分配方法 Active CN110362508B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910681266.XA CN110362508B (zh) 2019-07-26 2019-07-26 一种基于贪心算法的混合缓存数据分配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910681266.XA CN110362508B (zh) 2019-07-26 2019-07-26 一种基于贪心算法的混合缓存数据分配方法

Publications (2)

Publication Number Publication Date
CN110362508A CN110362508A (zh) 2019-10-22
CN110362508B true CN110362508B (zh) 2023-06-16

Family

ID=68221968

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910681266.XA Active CN110362508B (zh) 2019-07-26 2019-07-26 一种基于贪心算法的混合缓存数据分配方法

Country Status (1)

Country Link
CN (1) CN110362508B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107623720A (zh) * 2017-08-18 2018-01-23 中国科学院上海微系统与信息技术研究所 一种基于合作缓存的数据选择性缓存方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7840618B2 (en) * 2006-01-03 2010-11-23 Nec Laboratories America, Inc. Wide area networked file system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107623720A (zh) * 2017-08-18 2018-01-23 中国科学院上海微系统与信息技术研究所 一种基于合作缓存的数据选择性缓存方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Dynamic Data Allocation and Task Scheduling on Multiprocessor Systems With NVM-Based SPM;Y. Wang;《IEEE》;20181216;全文 *
一种SRAM辅助新型非易失性缓存的磨损均衡方法;沈凡凡等;《计算机学报》;20170315(第03期);全文 *
移动机会网络中接触时间感知的协作缓存策略;郑啸等;《计算机研究与发展》;20180215(第02期);全文 *

Also Published As

Publication number Publication date
CN110362508A (zh) 2019-10-22

Similar Documents

Publication Publication Date Title
Mutlu et al. Research problems and opportunities in memory systems
Nguyen et al. An approximate memory architecture for energy saving in deep learning applications
Kim et al. Flashsim: A simulator for nand flash-based solid-state drives
Li et al. Identifying opportunities for byte-addressable non-volatile memory in extreme-scale scientific applications
US9804803B2 (en) Data access in hybrid main memory systems
US10698732B2 (en) Page ranking in operating system virtual pages in hybrid memory systems
US9841914B2 (en) Managed energy-efficient hybrid main memory systems
Choukse et al. Buddy compression: Enabling larger memory for deep learning and hpc workloads on gpus
CN106775476A (zh) 混合内存系统及其管理方法
CN111143243B (zh) 一种基于nvm混合内存的缓存预取方法及系统
Mutlu Main memory scaling: Challenges and solution directions
CN110362566B (zh) 分层htap数据库的混合数据布局中的数据布置
US10176107B2 (en) Methods and systems for dynamic DRAM cache sizing
Mittal et al. WriteSmoothing: Improving lifetime of non-volatile caches using intra-set wear-leveling
Mutlu et al. The main memory system: Challenges and opportunities
Stevens et al. An integrated simulation infrastructure for the entire memory hierarchy: Cache, dram, nonvolatile memory, and disk
Oukid et al. On the diversity of memory and storage technologies
Yarmand et al. DART: A framework for determining approximation levels in an approximable memory hierarchy
CN110362508B (zh) 一种基于贪心算法的混合缓存数据分配方法
Mittal Using cache-coloring to mitigate inter-set write variation in non-volatile caches
CN116149554B (zh) 一种基于risc-v及其扩展指令的数据存储处理系统及其方法
Mittal Energy saving techniques for phase change memory (PCM)
Cui et al. Leveraging partial-refresh for performance and lifetime improvement of 3D NAND flash memory in cyber-physical systems
Olgun et al. Sectored DRAM: an energy-efficient high-throughput and practical fine-grained DRAM architecture
Subedi et al. Rise: Reducing i/o contention in staging-based extreme-scale in-situ workflows

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant