CN113010112B - 一种基于可变电阻式存储器的数据分配优化方法 - Google Patents

一种基于可变电阻式存储器的数据分配优化方法 Download PDF

Info

Publication number
CN113010112B
CN113010112B CN202110253865.9A CN202110253865A CN113010112B CN 113010112 B CN113010112 B CN 113010112B CN 202110253865 A CN202110253865 A CN 202110253865A CN 113010112 B CN113010112 B CN 113010112B
Authority
CN
China
Prior art keywords
variable
slc
program
mlc
optimal
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
CN202110253865.9A
Other languages
English (en)
Other versions
CN113010112A (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.)
Chongqing University of Post and Telecommunications
Original Assignee
Chongqing University of Post and Telecommunications
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 Chongqing University of Post and Telecommunications filed Critical Chongqing University of Post and Telecommunications
Priority to CN202110253865.9A priority Critical patent/CN113010112B/zh
Publication of CN113010112A publication Critical patent/CN113010112A/zh
Application granted granted Critical
Publication of CN113010112B publication Critical patent/CN113010112B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Static Random-Access Memory (AREA)
  • Complex Calculations (AREA)

Abstract

本发明涉及计算机存储技术领域,具体涉及一种基于可变电阻式存储器的数据分配优化方法,包括:获取程序变量的访问模式,计算每个程序区段的每个变量的读操作频率数学期望和写操作频率数学期望;根据得到的各个程序区段变量的读写操作数频率数学期望,动态地配置可变电阻式存储器SLC/MLC单元数目配比,寻找出最佳比例配置和最优数据分配方案;基于步骤S2得到的最佳SLC/MLC配比和对应的最优数据分配方案,为程序区段中每个变量分配最佳的存储地址。本发明采用时延最优数据分配优化算法实现了可变的电阻式存储器,降低了实时性嵌入式系统的访问时延。

Description

一种基于可变电阻式存储器的数据分配优化方法
技术领域
本发明涉及计算机存储技术领域,具体涉及一种基于可变电阻式存储器的数据分配优化方法。
背景技术
近些年来,随着互联网的持续发展,经济社会所产生的数据量呈现出指数级别的增长,日益增长的数据量对数据处理的要求越来越高。以智能设备为代表的实时性嵌入式设备成为云计算、物联网、大数据以及边缘计算平台中数据的重要出入口,对存储容量和性能提出了更高的要求。在过去的20多年中,处理器的性能以每年大约55%速度快速提升,而内存性能的提升速度则只有每年10%左右。长期累积下来,不均衡的发展速度造成了当前内存的存取速度严重滞后于处理器的计算速度,内存瓶颈导致高性能处理器难以发挥出应有的功效。处理器和主存之间的性能差距也逐渐增大,“存储墙”的问题日益严峻。在这种背景下,新型非易失性存储器(non-volatile memory,NVM)的出现得到了学术界和工业界的广泛关注,并为计算机存储技术提供了新的解决方案。
NVM是一种非易失、静态功耗低、存储密度大的随机存取快速存储器,近年来发展迅速。此外,同时出现了存储模式动态可变的非易失存储器,如可变电阻式存储器,使得现有的主存在密度方面能够随着存储器存储模式的变化动态可变,这些优势有着巨大的研究与应用价值。
由于可变电阻式存储器存在上述的特点,所以现有的基于传统存储器的软件编译层面数据分配优化方法已经不适用了,需要针对可变电阻式存储器特点,改变传统的数据变量分配方法,更好地去利用存储模式动态可变的电阻式存储器带来的特点,以提高实时嵌入式系统的性能。
发明内容
为了解决上述问题,本发明提供一种基于可变电阻式存储器的数据分配优化方法,该方法结合可变电阻式存储器的存储模式可变特性,实现根据程序不同区段变量的读写期望频率来动态地改变可变电阻式内存SLC/MLC单元数目的配比,并在该配比下,生成访问时延最优的数据分配方案,以更好地满足嵌入式系统实时性要求。
本发明解决上述技术问题所采用的方案包括:
一种基于可变电阻式存储器的数据分配优化方法,包括以下步骤:
S1、将程序分为多个区段,利用程序概貌信息统计技术根据应用程序的访问特征,获取程序变量的访问模式,再利用静态分支概率预测技术,得到每个程序区段的每个变量的读操作频率数学期望和写操作频率数学期望;
S2:根据得到的各个程序区段变量的读操作数频率数学期望和写操作数频率数学期望,动态地配置可变电阻式存储器SLC/MLC单元数目配比,寻找出最佳比例配置和最优数据分配方案;
S3:基于步骤S2得到的最佳SLC/MLC配比和对应的最优数据分配方案,为程序区段中每个变量分配最佳的存储地址。
进一步的,在一种优选实施方式中,步骤S1具体包括以下步骤:
S10:将程序划分为多个程序区段;
S11:得到划分后的程序区段后,通过程序概貌信息统计技术确认每个程序区段里变量的数目和大小,记录每个变量可能的读写操作次数,并得到程序数据变量在某个程序区段所有可能的访问模式{F(i,x,1),F(i,x,2),...,F(i,x,A)},其中F(i,x,a)={W(i,x,a),R(i,x,a)},F(i,x,a)表示程序区段i变量x第a种访问模式,R(i,x,a)和W(i,x,a)分别表示变量x的读、写次数,对于变量x最多有A种不同访问模式,即a={1,2,……,A};
S12:通过静态分支频率预测得到{F(i,x,1),F(i,x,2),...,F(i,x,A)}中每一种访问模式的发生概率{p(i,x,1),p(i,x,2),...,p(i,x,A)};然后根据
Figure BDA0002966997260000021
求得程序区段i变量x读操作频率数学期望;同样地,根据
Figure BDA0002966997260000022
求得程序区段i变量x写操作频率数学期望。
进一步的,在一种优选实施方式中,步骤S2具体包括以下步骤:
S21:设置可变电阻式存储器主存单元的初始状态和初始容量大小;
S22:遍历每一种SLC/MLC单元数目配比,计算在每种SLC/MLC配比情况下的访存时延开销;
S23:比较该程序区段不同SLC/MLC配比情况下的访存时延开销,选择时延开销最小时的SLC/MLC配比为可变电阻式存储器中该程序区段的最佳SLC/MLC配比,将该最佳比例配置所对应得数据分配方案作为该程序区段的最优数据分配方案。
进一步的,步骤S2采用区段时延最优数据分配优化算法得到最佳SLC/MLC配比和最优数据分配方案,所述区段时延最优数据分配优化算法包括:
S231:对于当前SLC/MLC配比下的所有存储在MLC存储模式单元的变量x,计算其在MLC模式下存储时延开销li,x,m、SLC模式下存储时延开销li,x,s和变量x从MLC单元迁移到SLC单元的移动时延开销li,x,move;计算li,x,m-li,x,s-li,x,move,若计算结果大于0,则将变量x放入集合TreeMap-M中,并将变量按li,x,m-li,x,s-li,x,move计算结果从大到小排序;
S232:对于当前SLC/MLC配比下的所有存储在SLC存储模式单元的变量x,计算其在SLC模式下存储的时延开销li,x,s,将变量x放入集合TreeMap-S中,并将集合元素按时延从小到大进行排序;
S233:判断是否还有剩余的SLC空间,若SLC空间足够,取出TreeMap-M中第一个元素,将对应变量分配至SLC;否则,在满足交换前时延大于交换后时延条件下,将TreeMap-M中第一个元素与TreeMap-S中第一个元素对应的变量进行存储位置交换;
S234:当TreeMap-M为空或不满足交换时延条件时,变量分配即结束,得到当前程序区段在当前SLC/MLC配比情况下的数据分配方案。
本发明的有益效果在于:本发明结合可变电阻式存储器在不同存储模式之间可以动态转换的优势,实现了可变的电阻式存储器内存,根据嵌入式应用程序的访存特征,动态配置存储器中SLC/MLC单元数目的配比,结合每个程序区段变量的访问频率期望,为每个变量分配最佳的存储地址,以充分发挥SLC/MLC在访问性能与存储密度上的优势,降低实时性嵌入式系统的访问时延。
附图说明
下面结合附图和具体实施方式对本发明做进一步详细的说明。
图1为本实施例提供的一种可变电阻式存储器体系架构模型;
图2为本实施例提供的一种可变电阻式存储器中SLC/MLC大小配置流程图;
图3为本实施例提供的一种程序区段中的数据分配优化算法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本实施例提供一种可变电阻式存储器内存硬件模型,如图1所示,利用可变电阻式存储器替代传统DRAM(Dynamic Random Access Memory),然后在该体系架构下提出相应的数据分配优化方法。
本实施例提供一种基于可变电阻式混合内存数据变量分配优化方法,可以实现不同存储模式之间的动态转换,实现可变的电阻式存储器内存,降低实时性嵌入式系统的访问时延。该方法包括但不限于如下步骤:
S1:利用程序概貌信息统计技术根据应用程序的访问特征,获取程序变量的访问模式,再利用静态分支概率预测技术,得到每个程序区段的每个变量的读操作频率数学期望和写操作频率数学期望。
在一种优选实施方式中,所述步骤S1具体包括以下步骤:
S10:首先,将程序划分为多个程序区段。如表1所示,在一种优选实施方式中,程序区段的划分可以根据程序点:1)每个函数或过程的开始与结尾处;2)每个循环的开始与结尾处;3)每个if then语句及else语句的开始与结尾处;4)每个switch语句块中case的开始与结尾处。
表1程序分区思想示意表
Figure BDA0002966997260000051
S11:得到划分后的程序区段后,通过程序概貌信息统计技术确认每个程序区段里变量的数目和大小,记录每个变量可能的读写操作次数,并得到程序数据变量在某个程序区段所有可能的访问模式{F(i,x,1),F(i,x,2),...,F(i,x,A)},其中F(i,x,a)={W(i,x,a),R(i,x,a)},F(i,x,a)表示程序区段i变量x第a种访问模式,R(i,x,a)和W(i,x,a)分别表示变量x的读、写次数,对于变量x最多有A种不同访问模式,即a={1,2,……,A};
S12:通过静态分支频率预测技术得到分支执行的概率信息,具体地,通过静态分支频率预测得到{F(i,x,1),F(i,x,2),...,F(i,x,A)}中每一种访问模式的发生概率{p(i,x,1),p(i,x,2),...,p(i,x,A)};然后根据
Figure BDA0002966997260000052
求得程序区段i变量x读操作频率数学期望;同样地,根据
Figure BDA0002966997260000053
求得程序区段i变量x写操作频率数学期望。
进一步的,静态分支频率预测技术如表2所示,表中包括三种静态分支频率预测。其中Loop Branch对应的分支执行概率为88%,表示此循环程序块执行时,会继续执行循环操作的概率为88%,相反,终止循环的概率为12%。
表2分支预测采取概率
预测类型 分支采取概率
Loop Branch 88%
Pointer 60%
Call 78%
为更好地为带分支结构的应用程序分配数据,本实施例用程序概貌信息统计技术得到变量所有访问模式,接着采用静态分支频率预测得到分支执行的概率信息,然后根据所得信息计算程序区段内变量的读写操作数期望。
示例性的,请参见表3,列出一段if结构分支代码,对于if条件语句,可能产生结果有两种:一种是分支1执行,分支2不执行,此种情况发生的概率为0.2,此时变量i被写1次,读1次;另一种是分支2执行,分支1不执行,此种情况发生的概率为0.8,此时变量j被写1次。不妨假设此段代码执行频率为10次,由此可得出此代码段中变量i的读操作数期望为10×(1×0.2+0×0.8)=2次,写操作数期望为10×(1×0.2+0×0.8)=2次。同样地,变量j的读操作数期望为0次,写操作数期望为8次。
表3示例分支代码
if结构 if(condition)
分支1 i=8,j=i+4;(p=0.2)
分支2 else j=7;(p=0.8)
S2:根据得到的各个程序区段变量的读操作数频率数学期望和写操作数频率数学期望,动态地配置可变电阻式存储器SLC/MLC单元数目配比,寻找出最佳比例配置和最优数据分配方案。
遍历每一种SLC/MLC单元数目配比,将步骤S1得到程序区段中变量读写频率的数学期望作为输入,采用时延最优数据分配优化算法,得到最佳比例配置和最优数据分配方案。
在一种实施方式中,对于某一程序区段,采用时延最优数据分配优化算法为该程序区段寻找最佳比例配置和最优数据分配方案,具体包括以下步骤:
S21:设置可变电阻式存储器主存单元的初始状态和初始容量大小:给定可变电阻式存储器主存单元数目为Nrram,所有主存单元初始状态为多层单元存储模式MLC,则MLC单元初始容量大小为SM=2Nrram,SLC单元初始容量大小为SS=0。
S22:遍历每一种SLC/MLC单元数目配比,将步骤S1得到程序区段中变量读写频率数学期望作为输入,计算在每种配比情况下的访存时延开销。
S23:比较该程序区段不同配比情况下的访存时延开销,选择时延开销最小时的SLC/MLC大小配比为可变电阻式存储器中该程序区段的最佳SLC/MLC配比,将该最佳比例配置所对应得数据分配方案作为该程序区段的最优数据分配方案。
“SLC/MLC单元数目配比”或“SLC/MLC配比”或“单/多层存储模式单元配置”表示:可变电阻式存储器中单层存储模式单元(SLC单元)数目与多层存储单元模式单元(MLC单元)数目的比例配置。
进一步的,在一种优选实施方式中,对于包含多个程序区段的给定程序,采用时延最优数据分配优化算法为该给定程序寻找最佳比例配置和最优数据分配方案如图2所示,具体包括以下步骤:
S202:输入给定程序区段总数R,可变电阻式存储器主存单元数目为unitNum,程序区段i变量x读操作频率数学期望r(i,x),程序区段i变量x读操作频率数学期望w(i,x),变量在MLC单元读操作时延l(r,m),变量在MLC单元写操作时延l(w,m),变量在SLC单元读操作时延l(r,s),变量在MLC单元读操作时延l(w,s);
S203、构建集合A用于记录每个程序区段中的SLC单元数目大小,程序区段i的SLC单元数目用A(i)表示;构建集合B用于记录每个程序区段变量的分配位置,程序区段i变量x的存储位置用B(i,x)表示;
S204、遍历每一个程序区段,初始化每一个区段的最优时延opt region:opt_region(i)←∞;
S205、判断区段的遍历是否结束(i<R),若不存在下一个区段,即遍历结束,结束流程并输出整个程序区段最小时延,各程序区段的最佳SLC/MLC单元数目配比A(i),各程序区段的最优变量分配方式B(i,x);若存在下一个区段,即遍历未结束,则执行步骤S206;
S206、按照
Figure BDA0002966997260000081
的约束,遍历每一种SLC/MLC单元目配置,判断该配置下的空间是否足够容纳所有变量,若足够容纳所有变量,则执行步骤S207;若不足以容纳所有变量,则返回执行步骤S206,其中SS表示给定的SLC存储模式单元容量大小,SM表示给定的MLC存储模式单元容量大小,Nrram表示可变电阻式内存单元总数;
S207、调用区段最小时延算法得到该区段SLC/MLC配置下最小时延region_latency,并判断是否/小于opt region,若region_latency<opt_region(i)成立,则执行步骤S208;若region_latency<opt_region(i)不成立,则返回执行步骤S206;
S208、记录当前配置到集合A,记录当前分配到集合B,具体地,用当前SLC/MLC配比更新A(i),用当前分配方案更新B(i,x);判断是否遍历所有SLC/MLC配比方案,若是,则返回执行步骤S205;否则,返回执行步骤S206。
在一种实施方式中,不同SLC/MLC配比所对应的数据分配方案采用区段时延最优化数据分配算法得到,包括但不限于如下步骤:
S231:对于当前SLC/MLC配比下的所有存储在MLC存储模式单元的变量x,计算其在MLC模式下存储时延开销li,x,m、SLC模式下存储时延开销li,x,s和变量x从MLC单元迁移到SLC单元的移动时延开销li,x,move。计算li,x,m-li,x,s-li,x,move,若计算结果大于0,则将变量x放入集合TreeMap-M中,并将变量按li,x,m-li,x,s-li,x,move计算结果从大到小排序;
S232:对于当前SLC/MLC配比下的所有存储在SLC存储模式单元的变量x,计算其在SLC模式下存储的时延开销li,x,s,将变量x放入集合TreeMap-S中,并将集合元素按时延从小到大进行排序;
S233:若SLC空间足够,取出TreeMap-M中第一个元素,将对应变量分配至SLC;否则,在满足交换前时延大于交换后时延条件下,将TreeMap-M中第一个元素与TreeMap-S中第一个元素对应的变量进行存储位置交换;
S234:当TreeMap-M为空或不满足交换时延条件时,变量分配即结束,得到当前程序区段在当前SLC/MLC配比情况下的数据分配方案。
进一步的,在一种优选实施方式中,区段时延最优化数据分配算法如图3所示,包括:
步骤302:针对给定的程序区段,输入给定程序区段总数R,可变电阻式存储器单元数目unitNum,程序区段i变量x的读操作频率期望r(i,x)及写操作频率期望w(i,x),变量在SLC/MLC单元读写操作时延,上一个区段SLC/MLC单元数目配比及上一个区段变量分配方案;
步骤303:根据给定SLC容量大小SS、给定MLC容量大小SM和上一个区段SLC/MLC单元数目配比,计算出模式转换时延l(i,trans);
步骤304:遍历所有在i-1区段中存在MLC上的变量,计算l(i,x,m)-l(i,x,s)-l(i,x,move),将结果大于0对应的变量按计算值从大到小顺序放入TreeMap-M中;
步骤305:遍历所有在i-1区段中存在SLC上的变量,计算l(i,x,s),按此值从小到大顺序放入TreeMap-S中;
步骤306:判断TreeMap-M是否为空,若为空,则执行312;若TreeMap-M不为空,则执行307;
步骤307:取出TreeMap-M中第一个变量,执行308;
步骤308:判断是否还有剩余的SLC空间,若是,则执行309,否则执行310;
步骤309:将该变量分配到SLC中存放,并将其从TreeMap-M中逐出,返回执行步骤306;
步骤310:从TreeMap-S取出第一个变量,计算与TreeMap-M取出的变量交换前后是否有时延收益,若是,则执行311,否则执行312;
步骤311:在不同模式存储器间交换从TreeMap-M和TreeMap-S取出元素对应的变量,即把TreeMap-M取出的变量分配位置与TreeMap-S取出的变量分配位置交换,并将取出元素逐出集合,返回执行步骤306;
步骤312:结束算法,并输出输出程序区段最小时延、各程序区段的最佳SLC/MLC单元数目配比,各程序区段的最优变量分配方式。
S3:基于步骤S2得到的最佳SLC/MLC配比和对应的最优数据分配方案,为程序区段中每个变量分配最佳的存储地址,以实现系统访问时延的最小化。
需要说明的是,本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-0nly Memory,ROM)或随机存储记忆体(RandomAccess Memory,RAM)等。
以上所述仅是本申请的具体实施方式,应当指出,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (3)

1.一种基于可变电阻式存储器的数据分配优化方法,其特征在于,包括以下步骤:
S1、将程序分为多个区段,利用程序概貌信息统计技术根据应用程序的访问特征,获取程序变量的访问模式,再利用静态分支概率预测技术,得到每个程序区段的每个变量的读操作频率数学期望和写操作频率数学期望;
S2:根据得到的各个程序区段变量的读操作数频率数学期望和写操作数频率数学期望,动态地配置可变电阻式存储器SLC/MLC单元数目配比,寻找出最佳比例配置和最优数据分配方案;
步骤S2采用区段时延最优数据分配优化算法得到最佳SLC/MLC配比和最优数据分配方案,所述区段时延最优数据分配优化算法包括:
S231:对于当前SLC/MLC配比下的所有存储在MLC存储模式单元的变量x,计算其在MLC模式下存储时延开销li,x,m、SLC模式下存储时延开销li,x,s和变量x从MLC单元迁移到SLC单元的移动时延开销li,x,move;计算li,x,m-li,x,s-li,x,move,若计算结果大于0,则将变量x放入集合TreeMap-M中,并将变量按li,x,m-li,x,s-li,x,move计算结果从大到小排序;
S232:对于当前SLC/MLC配比下的所有存储在SLC存储模式单元的变量x,计算其在SLC模式下存储的时延开销li,x,s,将变量x放入集合TreeMap-S中,并将集合元素按时延从小到大进行排序;
S233:判断是否还有剩余的SLC空间,若SLC空间足够,取出TreeMap-M中第一个元素,将对应变量分配至SLC;否则,在满足交换前时延大于交换后时延条件下,将TreeMap-M中第一个元素与TreeMap-S中第一个元素对应的变量进行存储位置交换;
S234:当TreeMap-M为空或不满足交换时延条件时,变量分配即结束,得到当前程序区段在当前SLC/MLC配比情况下的数据分配方案;
S3:基于步骤S2得到的最佳SLC/MLC配比和对应的最优数据分配方案,为程序区段中每个变量分配最佳的存储地址。
2.根据权利要求1所述的一种基于可变电阻式存储器的数据分配优化方法,其特征在于,步骤S1具体包括以下步骤:
S10:将程序划分为多个程序区段;
S11:得到划分后的程序区段后,通过程序概貌信息统计技术确认每个程序区段里变量的数目和大小,记录每个变量可能的读写操作次数,并得到程序数据变量在某个程序区段所有可能的访问模式{F(i,x,1),F(i,x,2),...,F(i,x,A)},其中F(i,x,a)={W(i,x,a),R(i,x,a)},F(i,x,a)表示程序区段i变量x第a种访问模式,R(i,x,a)和W(i,x,a)分别表示变量x的读、写次数,对于变量x最多有A种不同访问模式,即a={1,2,……,A};
S12:通过静态分支频率预测得到{F(i,x,1),F(i,x,2),...,F(i,x,A)}中每一种访问模式的发生概率{p(i,x,1),p(i,x,2),...,p(i,x,A)};然后根据
Figure FDA0003879150180000021
求得程序区段i变量x读操作频率数学期望;同样地,根据
Figure FDA0003879150180000022
求得程序区段i变量x写操作频率数学期望。
3.根据权利要求1所述的一种基于可变电阻式存储器的数据分配优化方法,其特征在于,步骤S2具体包括以下步骤:
S21:设置可变电阻式存储器主存单元的初始状态和初始容量大小;
S22:遍历每一种SLC/MLC单元数目配比,计算在每种SLC/MLC配比情况下的访存时延开销;
S23:比较该程序区段不同SLC/MLC配比情况下的访存时延开销,选择时延开销最小时的SLC/MLC配比为可变电阻式存储器中该程序区段的最佳SLC/MLC配比,将该最佳比例配置所对应得数据分配方案作为该程序区段的最优数据分配方案。
CN202110253865.9A 2021-03-09 2021-03-09 一种基于可变电阻式存储器的数据分配优化方法 Active CN113010112B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110253865.9A CN113010112B (zh) 2021-03-09 2021-03-09 一种基于可变电阻式存储器的数据分配优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110253865.9A CN113010112B (zh) 2021-03-09 2021-03-09 一种基于可变电阻式存储器的数据分配优化方法

Publications (2)

Publication Number Publication Date
CN113010112A CN113010112A (zh) 2021-06-22
CN113010112B true CN113010112B (zh) 2022-11-11

Family

ID=76409178

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110253865.9A Active CN113010112B (zh) 2021-03-09 2021-03-09 一种基于可变电阻式存储器的数据分配优化方法

Country Status (1)

Country Link
CN (1) CN113010112B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117175A (zh) * 2015-08-18 2015-12-02 重庆大学 一种基于软件编译层的可变电阻式存储器磨损均衡方法
CN107832129A (zh) * 2017-10-24 2018-03-23 华中科技大学 一种面向分布式流计算系统的动态任务调度优化方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7861139B2 (en) * 2007-01-26 2010-12-28 Micron Technology, Inc. Programming management data for NAND memories
CN102929723B (zh) * 2012-11-06 2015-07-08 无锡江南计算技术研究所 基于异构众核处理器的并行程序段划分方法
US10209914B2 (en) * 2017-01-31 2019-02-19 Sandisk Technologies Llc System and method for dynamic folding or direct write based on block health in a non-volatile memory system
KR102457564B1 (ko) * 2017-09-20 2022-10-21 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
CN108268220B (zh) * 2018-02-08 2020-12-18 重庆邮电大学 实时嵌入式系统中非易失性混合式内存的软件优化方法
CN109002257B (zh) * 2018-06-25 2021-04-23 重庆邮电大学 一种基于可变便笺存储器的数据分布优化方法
US10713158B2 (en) * 2018-06-28 2020-07-14 Western Digital Technologies, Inc. Non-volatile storage system with dynamic allocation of applications to memory based on usage monitoring

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117175A (zh) * 2015-08-18 2015-12-02 重庆大学 一种基于软件编译层的可变电阻式存储器磨损均衡方法
CN107832129A (zh) * 2017-10-24 2018-03-23 华中科技大学 一种面向分布式流计算系统的动态任务调度优化方法

Also Published As

Publication number Publication date
CN113010112A (zh) 2021-06-22

Similar Documents

Publication Publication Date Title
CN101788995B (zh) 一种热点数据识别方法及装置
US11989125B2 (en) Storage device and operating method of memory controller
TWI434175B (zh) 用來進行區塊管理之方法以及記憶裝置及控制器
US10572407B2 (en) Hybrid data storage array
CN111695693B (zh) 学习装置及学习方法
CN115373591B (zh) 存储器子系统中根据选定调度排序的命令调度
CN108268220B (zh) 实时嵌入式系统中非易失性混合式内存的软件优化方法
CN109521943A (zh) 云数据库实例的分配方法及相关产品
CN109284233A (zh) 一种存储系统的垃圾回收方法及相关装置
CN112256440B (zh) 神经网络推理的内存管理方法及装置
CN113010112B (zh) 一种基于可变电阻式存储器的数据分配优化方法
CN102169464B (zh) 一种用于非易失性存储器的缓存方法、装置及智能卡
CN115827211A (zh) 近内存计算加速器、双列直插式内存模块以及计算设备
CN111783984A (zh) 一种神经网络运算方法、装置、设备及存储介质
CN112784059A (zh) 知识图谱表示学习方法、装置、电子设备及存储介质
CN115827511A (zh) 设置缓存的方法以及装置
CN111273865B (zh) 一种基于可变便笺式存储器的任务分配及调度方法
CN110221984A (zh) 存储系统的建立方法、装置、存储系统和访问方法
CN112612419B (zh) Nvm的数据存储结构、存储方法、读取方法、设备及介质
CN114816322A (zh) Ssd的外部排序方法、装置和ssd存储器
CN114936169A (zh) 存储器的磨损均衡方法和装置、存储器和电子设备
CN106802775A (zh) 一种数据存储方法及装置
CN116107640B (zh) 针对dsmc算法缓存以及simd向量化的系统性优化系统
US20230409203A1 (en) Memory system and read method
TWI770668B (zh) 類神經網路的運算方法

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