首页> 中国专利> 一种用于磁畴壁存储器的数据存储方法

一种用于磁畴壁存储器的数据存储方法

摘要

本发明公开了一种用于磁畴壁存储器的数据存储方法,它包括以下步骤:步骤1,将磁畴壁存储器上的存储单元划分为多个存储段,每个存储段对应一个读/写端口;步骤2,将每个存储段中偏移地址相同的存储单元组成一个等价集;步骤3,依据应用程序中所有数据的读写操作,生成应用程序对应的数据访问序列;步骤4,将数据访问序列中的数据集合划分为多个数据子集,数据子集中的数据之间被连续访问的次数最多;步骤5,将每个数据子集对应到一个预定的等价集,并通过地址映射公式把数据子集中的每个数据存放到相应等价集的对应存储单元中。本发明的优点:避免了大量磁轨移动操作,能降低磁畴壁存储器的能耗,又能保证加快系统的响应速度。

著录项

  • 公开/公告号CN104866240A

    专利类型发明专利

  • 公开/公告日2015-08-26

    原文格式PDF

  • 申请/专利权人 重庆大学;

    申请/专利号CN201510279359.1

  • 申请日2015-05-28

  • 分类号

  • 代理机构重庆大学专利中心;

  • 代理人唐开平

  • 地址 400044 重庆市沙坪坝区沙正街174号

  • 入库时间 2023-12-18 10:31:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-11-14

    授权

    授权

  • 2015-09-23

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20150528

    实质审查的生效

  • 2015-08-26

    公开

    公开

说明书

技术领域

本发明属于计算机存储技术领域,具体涉及一种用于磁畴壁存储器的数据存储方法。

背景技术

磁畴壁存储器(Domain Wall Memory, DWM)是一种新型的非易失性存储器,它具有超高密度、低功耗、高速读写等性能,并使用在嵌入式系统中以替代传统的DRAM、SRAM存储器。尽管磁畴壁存储器的功耗较低,性能较高,但是它存有一个根本性的问题:磁畴壁存储器把数据存储在磁轨的存储单元上,每次访问磁畴壁存储器上的数据时,先要移动磁轨,将所访问的存储单元移动到写入/读取端口。访问一次数据可能需要多次移动操作,移动操作产生的能耗和延迟开销往往超过读写数据本身的开销。这种能耗和时间开销为磁畴壁存储器在嵌入式系统中的使用带来了很大的挑战。

由于嵌入式系统主要面向各类特定应用,若能考虑到数据读写模式、读写次数等嵌入式应用的内在特征,并结合多读/写端口的磁畴壁存储器的特征进行优化,那么磁畴壁存储器的优势在嵌入式系统中将发挥的更加明显。针对磁畴壁存储器在嵌入式系统中的有效利用的研究已经展开,现有的技术研究主要从电路级、存储装置级、系统结构级等方面进行优化,并在磁畴壁存储器的性能及能耗优化等方面做出了相应的贡献。然而,目前已有的技术研究并没有考虑到嵌入式系统中特定应用的数据读写规律,研究主要针对硬件层优化,这无疑会增加嵌入式系统的复杂程度,从而限制了磁畴壁存储器在嵌入式系统上的推广。

发明内容

针对上述技术研究方法的不足,本发明所要解决的技术问题是从编译器中代码优化的层面,为系统提供一种用于磁畴壁存储器的数据存储方法,它能减少磁畴壁存储器在嵌入式系统中的能耗,且能提高系统的响应速度。

本发明所要解决的技术问题是通过这样的技术方案实现的,它包括以下步骤:

步骤1,将磁畴壁存储器上的存储单元划分为多个存储段,每个存储段对应一个读/写端口;

步骤2,将每个存储段中偏移地址相同的存储单元组成一个等价集,连续访问存储在等价集中的存储单元不需要移动操作;

步骤3,依据应用程序中所有数据的读写操作,生成应用程序对应的数据访问序列;

步骤4,将数据访问序列中的数据集合划分为多个数据子集,数据子集中的数据相互之间被连续访问的次数最多;

步骤5,将每个数据子集对应到一个预定的等价集,并通过地址映射公式把数据子集中的每个数据存放到相应等价集的对应存储单元中。

由于相互之间连续访问次数最多的数据都存放在同一个等价集,连续访问同一个数据子集的数据时不再引起移动操作,从而大量减少了访问磁畴壁存储器时的移动操作。减少了磁畴壁存储器的能耗和数据读写操作的平均时间,缩短系统响应的时间。本发明具有如下的优点:避免了大量磁轨移动操作,能降低磁畴壁存储器的能耗,又能保证加快系统的响应速度。

附图说明

   本发明的附图说明如下:

    图1为本发明的磁畴壁存储器的数据存储流程图;

    图2为本发明一个实施例的存储段和等价集的划分示意图;

    图3为本发明一个实施例的数据子集的映射与存储示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步说明:

在磁畴壁存储器中,存储单元必须移动到特制的电路才能读写数据,这种电路称为“端口”。

本方法发明的构思是:将磁轨上地址连续的存储单元划分为多个长度相等的段,称为“存储段”,从每一个存储段中选出段内偏移地址相同的存储单元组成存储单元的集合,称为“等价集”,连续访问等价集中的数据不需要移动磁轨;针对特定的应用程序,可以将程序里相互之间被连续访问次数最多的数据归到一个集合中,称为“数据子集”。

连续访问指定数据是指:程序连续的访存操作,先后读/写所指定的数据。例如两次访存操作连续访问数据“a”和“b”,是指第一次访存操作读/写数据“a”,第二次访存操作读/写数据“b”。

本方法发明的具体步骤有:首先划分把磁畴壁存储器划分为存储段;根据存储段确定等价集;分析应用程序的数据访问模式,生成数据访问序列;将数据访问序列中的数据划分为多个数据子集;将数据子集一一对应到磁畴壁存储器的等价集;根据地址映射公式计算每个数据的存储地址,应用程序执行时使用该地址访问数据。

图1是本发明的磁畴壁存储器的数据存储流程图,该流程开始于步骤101,然后:

在步骤102,数据初始化,根据系统中磁畴壁存储器的特征,指定要划分的存储段数量、每个存储段的起始地址;分析应用程序代码,生成数据访问序列;

分析应用程序代码,生成数据访问序列的方法:

1、实验时申请人使用的方法如下:

步骤1)、设置一个现有的处理器模拟器SimpleScalar,假设使用的存储器为磁畴壁存储器;

步骤2)在所设置的模拟环境中运行应用程序,收集应用程序读、写数据的信息;

步骤3)根据程序指令的特点,从步骤2)中收集到的信息里筛选出所需的访存信息,这些访存信息按时间先后顺序组成的序列就是所求的数据访问序列。

2、也可以考虑使用其他现有工具,如参见“ATOM: a system for building customized program analysis tools”, Amitabh Srivastava; Alan Eustace, ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 1994, Page(s) 196-205, ISBN: 0-89791-662-X(“ATOM: 一种可自定义程序分析工具的系统”,Amitabh Srivastava; Alan Eustace,美国计算机学会编程语言专业组编程语言设计与实现会议1994,第196-205页,国际标准书号ISBN: 0-89791-662-X)。

在步骤103,根据磁畴壁存储单元的总数量和端口的数量,将存储器划分为长度均等的存储段。给存储段编号并记录每个存储段的起始地址Addr,每个存储单元的存储段号=int(存储单元地址/存储段长度)。每个存储段里的存储单元只被对应的一个端口读写。如果存储单元的总数量不能被端口数量整除,则增/减最后一个存储段中的存储单元;

在步骤104,根据每个存储单元的地址计算它于所在存储段内的偏移地址。偏移地址的计算有多种方法。例如,方法一:偏移地址=存储单元的地址-单个存储段长度*[存储单元地址/单个存储段长度];方法二:偏移地址=存储单元地址%存储段长度;

在步骤105,把偏移地址相同的存储单元编入同一个等价集。一个等价集中的每个元素都属于不同的存储段;

在步骤106,从头至尾遍历步骤102中生成的数据访问序列;设当前是序列的第t个数据访问,设访问的数据是di;

在步骤107,判定是否已是最后一个数据访问,若不是,则执行步骤108,否则执行步骤109;

在步骤108,遍历至第t+1个数据访问,设访问的数据是dj;将数据di与dj相互间被连续访问的次数增加1,即Fij+1。返回执行步骤106;

在步骤109,根据数据相互间被连续访问的次数,将数据访问序列中的全部数据划分为多个数据子集。依据多端口磁畴壁存储器的特征,连续访问同一个数据子集中的数据时,不必移动磁轨,可以减少能耗和延迟。生成数据子集的方法有多种,主要思想是要把数据相互之间连续访问次数最多的数据分到同一个数据子集。例如方法一,将数据之间连续访问的关系表达为一个无向图,其中顶点代表数据,顶点之间的边代表数据之间的连续访问关系,边的权重代表相连的两个数据被连续访问的次数;这样就将数据相互之间被的次数转化为图的优化问题,能利用相应算法进行求解,例如采用基于贪心策略的图划分算法求解;

在步骤110,针对步骤109中已划分的数据子集,计算数据子集之间被连续访问的次数;

在步骤111,将相互之间连续访问次数最多的数据子集放在相邻的位置,使得连续访问不同数据子集中的数据时所需的移动操作最少;将数据子集按相对位置一一映射到等价集;

在步骤112,;获取第s个存储段的起始地址Addr(s的初始值为0),获取第p数据子集对应的等价集的偏移地址q;

在步骤113,将第p数据子集中的一个数据存储在存储单元中,该存储单元的地址= Addr+q;从第p数据子集中移出该数据;

在步骤114,判定第p数据子集中是否已无数据,如果还有数据,执行步骤115;如果已无数据,执行步骤116;

在步骤115,将Addr更新为第s+1个存储段的起始地址,返回步骤113;

在步骤116,判定是否已经存储了所有数据子集,如果还有数据子集未存储,则执行步骤117,否则执行步骤118;

在步骤117,选择下一个数据子集,即第p+1数据子集,返回步骤112;

在步骤118,已存储所有数据,结束整个流程。

实施例

如图2所示,磁畴壁存储器磁轨上有16个存储单元和4个端口。所有的16个存储单元被划分到4个存储段中,每个存储段各包含4个存储单元,即长度为4。存储单元0~3属于第0存储段,它们的数据能够且仅能够通过端口0读写。

通过偏移地址计算公式可以判定存储单元的所属的等价集。例如,使用上述步骤104中的方法一可以算出,地址为5的存储单元的偏移地址=5-4*[5/4]=5-4=1。所以存储单元5属于等价集1;使用上述步骤104中的方法二可以计算地址为14的存储单元的偏移地址=14%4=2,即存储单元14属于等价集2。同样,利用步骤103可以确定存储单元的存储段号。

图3为数据子集的映射与存储示意图,4个数据子集,分别一一映射到一个等价集。例如,数据子集2映射到等价集3,所以数据子集2中的数据都放置在每个存储段中偏移地址为3的存储单元。例如首先放数据m,获取存储段0的起始地址,即Addr=0;数据m就存放在地址为Addr+3=3的存储单元。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号