Design and Implementation of an MRAM Simulator

[键入文字]

一种MRAM仿真系统的设计实现

吴非1,2 朱铭1 黄海涛1

1华中科技大学光电国家实验室,武汉 430074

2信息存储教育部重点实验室,武汉 430074

()

Design and Implementation of an MRAM Simulator

Wu Fei1,2 Zhu Ming1 Huang Haitao1

1 (Wuhan National Laboratory for Optoelectronics, Huazhong University of Science and Technology, Wuhan 430074)

2 (Key Laboratory of Data Storage Systems, Ministry of Education of China, Wuhan 430074)

Abstract With the rapid development of computer technology, the requirements of high density, high read and write speed, high efficiency, high reliability are raised for main memory. In such a situation, the defects of the traditional memory are gradually exposed. A new generation of memory is needed in order to adapt to the development and requirement of technology. MRAM is termed for Magnetic Random Access Memory. MRAM has the advantages of high read and write speed like SRAM, high integration density like DRAM and nonvolatile property like flash memory. MRAM has a good performance compared with traditional memory. In order to study the performance of MRAM as main memory, and the possibility to be an alternative for DRAM memory, an MRAM simulator, composed of trace generator, MRAM controller and MRAM memory is designed and implemented according to the characteristics of MRAM. MRAM simulator receives read and write requests from CPU, schedules them according to the address mapping policy, completes them on MRAM cells. Finally the statistical results of the simulator are analyzed. The results of MRAM simulator show that, taking advantage of MRAM, good response time and bandwidth can be achieved when MRAM is used as main memory. It can be expected that MRAM will become an ideal substitute of the memory.

Key words Magnetic Random Access Memory; Non Volatile; Address Mapping; Simulator

摘要 计算机科学技术日新月异的发展,对存储器的集成度、读写速度、可靠性等方面提出了更高的要求。在这种形势下,一些传统存储器的缺陷逐步暴露出来,需要新一代存储器适应技术的发展和要求。MRAM是磁阻式随机访问存储器(Magnetic Random Access Memory)的简称。与传统的存储器相比,MRAM具有更好的性能,它同时具备SRAM的高速读写性能、DRAM的高集成度与Flash存储器的非易失性等优点。为了研究MRAM用作主存时的各项性能,进一步探究MRAM作为DRAM主存替代品的可能性,根据MRAM的原理以及特点,设计并实现了一个MRAM仿真系统,由trace发生器、MRAM控制器和MRAM存储体三部分组成。MRAM仿真系统接收来自处理器(CPU)对主存的读写请求,并根据设计的地址映射算法,对请求进行调度,完成对MRAM存储器的读写请求。最终对仿真结果进行分析,测试结果表明,用MRAM做主存能够发挥出MRAM的优势,获得良好的请求响应时间、请求带宽等性能。可以期待MRAM将成为一种理想的主存替代品。

关键词 磁阻式随机访问存储器;非易失性;地址映射;仿真系统

中图法分类号 TP333

基金项目:本文得到国家自然科学基金(No. 61300047)资助

[键入文字]

伴随着计算机科学技术的高速发展,存储技术方面的发展也是日新月异。进入二十一世纪以后,信息化进程脚步加快,全球的数据量以惊人的速度在不断增长,对存储技术提出了巨大的挑战。

传统的存储技术,比如Flash、SRAM和DRAM等,在过去的几十年里发展迅速,并发挥了存储的核心作用。但是计算机科学技术日新月异的发展,在集成度、读写速度、可靠性等方面对存储器提出了更高的要求。传统存储器在材质和技术方面的缺陷,使得它们在适应高要求时的局限性越来越明显。比如,SRAM存储器在技术上有能量泄露的缺陷;而DRAM存储器因为刷新操作和数据保持等一些原因,功耗比较高;Flash类的存储器有擦除次数有限,使用寿命较短,随着使用稳定性会下降等缺点。

半导体厂商积极开发新一代存储器技术,以应对这种半导体存储器的上述局面。在非易失性存储器市场中,目前最有前途的有这几种:FRAM、MRAM 和 PCM。其中,MRAM利用磁性隧道结的电阻变化表示存储状态,是一种非挥发性的磁性随机存储器。相比于其他主存储器,MRAM具有很多优势。MRAM的存储单元尺寸可以做到很小,能够达到DRAM的高集成度,又具有SRAM的理想读写速度,同时因自身磁化特性使得它能够被无限次地重复写入,此外还具有非易失性、可扩展性、极高的可靠性[1]、寿命长、容量大、低能耗等众多优秀特点。这些优秀的特点使得MRAM具备很大的市场前景。随着MRAM技术的快速发展,在未来的发展中,MRAM将成为主要的存储产品。

为了对主存储器进行全方面的研究分析,很多研究人员借助于主存仿真系统,国内外都有不少成熟的研究成果。2011年,马里兰大学的Paul Rosenfeld等人提出并实现一种时钟精确的DRAM内存仿真仿真系统DRAMSim2[2];2012年,宾夕法尼亚州立大学的Matt Poremba等人提出并设计实现了一种非易失性主存储器仿真系统NVMain[3]。

本文为了研究MRAM用作主存时的各项性能,进一步探究MRAM作为DRAM主存替代品的可能性,设计并实现了一种MRAM仿真系统,完成了对整个请求处理过程的模拟,从地址映射方案和命令队列深度两个方面对MRAM仿真系统进行测试,给出模拟过程中的关键参数指标统计结果,并做性能分析。

本文后续部分按如下方式安排:第1节介绍MRAM基本工作原理;第2节给出MRAM仿真系统的设计与实现方案,对核心模块进行详细说明;第3节介绍MRAM仿真系统中采用的四种地址映射算法;第4节从两个方面对MRAM仿真系统进行测试并分析;第5节总结全文。

1.  MRAM基本原理

MRAM是磁性随机存储器(Magnetic Random Access Memory)的简称。MRAM的核心是磁性隧道结MTJ(Magnetic Tunnel Junction),它的基本结构如图1所示。MTJ具有一种磁化特征,只要不改变外在的磁场,存储介质的磁化特性就不会变,MRAM正是利用这种磁化特征来存储数据。MRAM在断电之后保存的数据不变,具有非挥发性。

图1 MTJ结构原理

Fig.1 The structure of MTJ

隧穿磁阻效应(TMR:Tunneling Magneto-resistance)和自旋转移矩效应(STT: spin-transfer torque)被发现后,应用到MRAM存储单元上,使得MRAM技术得到了极大的发展。

TMR效应克服了早期AMR效应和GMR效应的缺点。相对于GMR技术[4][5],MRAM使用TMR后,不仅避免会降低速度的重复读取,还可以减小芯片的体积[6][7][8]。

SST效应利用流过 MTJ 结构中不同的自旋极化电流,改变铁磁体薄膜磁化方向,进而完成写入功能。基于这种写入方式的磁随机存储器,也就是第二代磁随机存储器-自旋转移力矩磁随机存储(STT-MRAM:Spin Transfer Torque MRAM) [9][10]。它不再需要外加磁场,而是直接依靠电流改变铁磁性薄膜磁化方向[11][12]。与第一代MRAM相比,STT-MRAM的结构更加简单,存储集成度较高。写入功耗也大大降低,同时避免了相邻 MTJ 存储单元的互相影响。正是因为这些优良特性,STT-MRAM 是目前 MRAM研究和发展的主流。

2.  MRAM仿真系统设计与实现

MRAM作为一种新兴的主存储器,它的优良特性将使其具备很好的应用前景。MRAM仿真系统目的是在存储架构层面,通过完整的模拟环境来辅助研究MRAM的特性,帮助研究人员设计出更好的控制器结构和MRAM存储体组织结构,让MRAM能够合理高效地工作。

2.1 系统设计

MRAM仿真系统总体架构如图2所示:

图2 MRAM仿真系统架构

Fig.2 The architecture of MRAM simulator

1)CPU仿真。该模块通过使用trace发生器产生CPU请求信息,发送请求信息给MRAM控制器模块进行处理。

2)MRAM控制器。该模块是MRAM仿真系统的核心部分。主要接收CPU仿真模块发送过来的请求,然后经过合理的缓存和调度、地址映射,将请求转化为MRAM命令格式,以高效的方式发送到MRAM存储体上。响应MRAM存储体所完成的请求,并将结果反馈给CPU,同时统计整个运行过程中的数据详细信息。

3)MRAM存储体。该模块定义了MRAM存储体芯片的组织方式。MRAM存储体通过数据总线接收到来自MRAM控制器的MRAM命令,当命令执行完成后,再向MRAM控制器返回执行完成的命令信息。

图3模块功能

Fig.3 The module function

MRAM仿真系统的各个功能模块设计如图3所示,下面介绍三个核心模块的设计与实现。

2.2 CPU仿真模块

对内存的请求来自于处理器(CPU),在该仿真系统中,使用trace发生器产生的trace对CPU请求进行仿真。trace发生器产生的trace格式如图4所示。图4 trace请求格式

Fig.4 The query format of trace

在MRAM仿真系统运行过程中,trace发生器产生若干条这样的请求。每一条请求都将在合适的时钟周期被MRAM控制器接收,进行下一步处理。

对于时钟周期的模拟,本文使用了一种简单的方式,程序在循环运行的过程中,一次循环表示时间上消耗一个时钟周期。

2.3 MRAM控制器模块

MRAM控制器模块结构可从图3获知,主体由4个部分组成:trace请求队列、MRAM命令队列、MRAM状态表和数据统计。下面详细介绍这4个部分。

2.3.1 trace请求队列

一个MRAM控制器对应一个trace请求队列。trace请求队列用于存放来自于trace发生器的请求。当MRAM控制器接收请求时,首先存放到该队列,然后在仿真系统的运行过程中,经过转化和地址映射后,该队列的请求变成命令队列里的命令。

MRAM仿真系统运行过程中,当有trace请求的周期数等于当前CPU周期时,该请求就会加入trace请求队列中。由于trace请求经过处理,实质上只有读和写两种请求,而对于内存的读写请求流,是要按照先后顺序执行的,因此这里采用先进先出(First In First out, FIFO)的策略。

2.3.2 MRAM命令队列

MRAM的命令队列用于存放经过trace请求转化而来的MRAM命令。MRAM控制器中,为每一个rank维护一个命令队列,用于存放待发往该rank的命令。结构如图5所示。

每个rank命令队列采用FIFO方式存放MRAM命令包。每一个时钟周期,MRAM控制器都会轮询命令队列,同时查询MRAM状态表,判断是否有在当前周期可以发出的MRAM命令。如果有,将其从MRAM命令队列里取出,并发到命令对应的bank上。

图5命令队列结构图

Fig.5 The structure of commandqueue

2.3.3 MRAM状态表

在MRAM运行过程中,为了随时知道MRAM存储体上各个单元的状态,需要随时知道它们的状态。

请求的调度最小地址单位是bank,所以状态表的维护也以bank为单位。对于每一个bank,MRAM控制器要随时能够查询它的状态,以便于进行调度。状态表中的每个bank需要维护的状态包括:bank当前是忙碌(Busy)还是空闲(Idle);bank可接受下一个读请求的时刻(时钟周期);bank可接受下一个写请求的时刻(时钟周期);bank当前命令执行所需时钟周期计数。

2.3.4 数据统计

作为一套仿真系统,MRAM仿真系统需要记录和统计仿真过程中的一些关键参数。包括总的被响应请求数量、平均传输带宽、每个rank内的各个bank上响应的请求数量、以及各个请求响应时间段内的请求数量。

其中,总的被响应请求数量表示MRAM仿真系统在指定的时钟周期数内运行完成后,所能够完成响应的请求数量;平均传输带宽可以直观上了解MRAM仿真系统响应请求的能力,是需要考虑的一个重要指标;统计每个rank内的各个bank上响应的请求数量,以便了解整个系统的请求分布和响应情况;通过各个请求响应时间段内的请求数量,可以直观了解各个请求的响应时间分布情况。

2.4 MRAM存储体模块

MRAM存储体由许多的MRAM芯片组合在一起。MRAM芯片目前较大的也只有16Mbit,而且没有形成大容量的内存使用。这里对MRAM存储体芯片的组织方式进行一种假设。按照简单、可行的原则,进行人为的组织,构成一个足够大的MRAM存储体,提供给MRAM仿真系统使用。

图6 MRAM存储体的组织方式

Fig.6 The structural Organization of MRAM memory

根据电气自动化委员会制定的标准,单通道(channel)的数据总线的位宽设计为64bit。也就是说,一次对于MRAM存储体的请求,至少会从存储体返回64bit的数据。在此基础上,MRAM存储体组织方式如图6所示。以MR4A16B型号芯片为例,结合图6进行详细说明:

将8个芯片(chip)在地址上串行进行逻辑封装,组成一个逻辑单位;考虑到总线一次传输64bit的需求,将4个逻辑单位并行组成一个bank。在发送和响应请求时,一个bank内的4个b0单位并发响应,使得数据能够满足总线位宽标准;8个bank组成了一个rank;4个rank构成了一个通道channel,一个通道由一个MRAM控制器进行控制和调度。

以上所述的MRAM存储体组织方式,是一种比较简单直观的方式。根据芯片型号、特点等,还可以有很多种其他合理的组织方式。具体的组织方式,在MRAM仿真系统中,可以通过配置文件的方式来指定,这样更加方便灵活。

在MRAM仿真系统中,利用rank对象数组表示存储体。同时通过MRAM二维状态表,可以记录每个rank内每个bank的详细状态。此外,维护一个执行中命令队列,用于存放从MRAM控制器接收的,正在进行读或写操作的命令。给每个命令维护一个计数器,初始值为它们被执行完成总共需要的时钟周期数。当它们所需的时钟周期数满足时,表示这些命令已经完成,将它们通过总线返回给MRAM控制器,便于MRAM控制器做统计分析。

3.  地址映射算法

控制器将trace请求队列中的trace请求,转化为MRAM命令队列中命令的过程中,需要进行地址映射。因为MRAM存储体包含若干组MRAM芯片,它们的组织方式是灵活可变的。所以这里的地址映射算法,就是将trace请求中的固定地址,按照一定的算法映射到MRAM存储体上的存储单元中,完成MRAM存储体的寻址。该过程原理如图7所示

图7 地址映射

Fig.7 address mapping

地址映射的结果确定了一个MRAM命令将具体发往存储体的哪个单元。良好的地址映射算法能够有效地提高连续命令流的处理效率和系统带宽,使整个MRAM仿真系统运行更加有效率。

因为MRAM命令发送到MRAM存储体以后,MRAM芯片执行读写的最小单位是按照列(column)进行的,一次读写至少是一列的数据大小,所以地址的最低位一定是column内偏移,在映射时不改变最低位的column内偏移。

基于以上方面的考虑,为MRAM仿真系统设计出了四种地址映射算法,具体的地址映射方式如图8所示。

图8 四种地址映射方式

Fig.8 Four different address mapping methods

AddrMap1:地址的低位用于bank寻址。MRAM控制器在对命令队列进行调度,是依据bank的当前状态,以bank为单位进行的。将最低位进行bank的寻址,可以使得连续命令寻址的bank不同,这样可以提高bank之间处理命令的并行度。

AddrMap2:将地址的低位用于rank寻址。这种方案,使得连续的命令之间,rank的地址尽量处于不一样的状态。这样可以使得发往MRAM存储体的读写请求尽量均匀分布到不同的rank上去,达到负载均衡的目的。

AddrMap3:将地址的低位作为列地址寻址,次低位才是用于rank寻址和bank寻址。该方案没有将地址的最低位用于rank寻址或者bank寻址,而是使用了次低位。这样设计的目的是与前两种方案进行对比。

AddrMap4:采用最普通的映射方式。在MRAM仿真系统运行过程中与前面所述的几种地址映射方案可以进行对比分析。

4.  测试与分析

在实验中, MRAM发生器产生的trace是k6_aoe_02_short.trc,运行时钟周期数设定为400万个。MRAM存储体由EVERSPIN公司的MR4A16B型号芯片组成。MR4A16B型号芯片单体大小为2MB,位宽16位。MRAM存储体按照2GB总大小进行配置。共计4个rank,每个rank大小为512MB,每个rank含有8个bank,每个bank大小64MB,每个bank由4×8个芯片组成。

本文主要从地址映射方案和命令队列深度两个方面对MRAM仿真系统进行了详细的测试,并对测试结果进行分析。

4.1 地址映射方案测试

在地址映射方案方面,将四种地址映射方案进行对比测试,输出每一种地址映射方案下,请求被处理数量、请求响应时间、平均带宽、请求在各个rank的bank上的分布情况。

[键入文字]

(a) AddrMap1方案的请求分布 (b) AddrMap2方案的请求分布

(c) AddrMap3方案的请求分布 (d) AddrMap4方案的请求分布

图9 四种地址映射方案下的请求分布

Fig.9 The distribution of requesting in four different address mapping methods

[键入文字]

图9给出了四种地址映射方案下的请求分布情况。在AddrMap1和AddrMap2方案中,请求分布非常均匀。请求在转化为MRAM命令时,地址都被映射到了各个rank上不同的bank上。这样一方面提高了请求并行度,使MRAM仿真系统能够响应、执行更多请求,降低请求响应时间;另一方面,对于MRAM存储体而言,起到了负载均衡的效果。在方案AddrMap3中,单个rank内的不同bank之间,请求分布不均匀。方案AddrMap4中,请求主要集中在单个rank内的单个bank上,这种方案使得请求执行几乎为串行,效率极低。

图10给出了四种地址映射方案的响应时间。在AddrMap1和AddrMap2方案中,MRAM仿真系统对大多数请求的响应时间集中在600个时钟周期以内。而在AddrMap3和AddrMap4方案中,大部分请求的响应时间都比较长。从请求响应时间的角度考虑,方案AddrMap1和AddrMap2具有更好的请求响应时间分布,是比较理想的地址映射方案,而方案AddrMap3和AddrMap4并不理想。

图10 四种地址映射方案的响应时间

Fig.10 Comparison of response time in four different address mapping methods

地址映射方案AddrMap1和AddrMap2之所以具有较为良好的请求响应时间,是与它们的具体设计相关的。为了提高请求的执行并行度,在地址映射时,让trace请求的较低位映射成rank地址和bank地址。这样连续请求的rank和bank寻址就可以尽量不同,分散到不同的rank和bank上去,达到并行效果,较快执行完并返回,减少请求的响应时间。

表1给出了四种地址映射方案的响应的请求总数和平均带宽。对于并行度高的地址映射方案AddrMap1和AddrMap2,因为请求执行得快,所以在MRAM仿真系统进行模拟运行的总时间400万个时钟周期内,响应并处理完的请求总数也就更多。单位时间传输的数据量大,因此平均带宽值比较大。方案AddrMap3请求并行度相对较低,响应并完成的请求数也相对较少,平均带宽相对较小。方案AddrMap4请求并行度最低,在相同时间内,响应并完成的请求数最少,平均带宽也是最低值。

表1 四种地址映射方案响应请求数量

Table1 The amount of response in four different address mapping methods

地址映射方案 / 响应请求数(个) / 平均带宽(GB/s)
AddrMap1 / 598994 / 9.922
AddrMap2 / 598991 / 9.934
AddrMap3 / 468530 / 3.628
AddrMap4 / 160771 / 1.546

4.2 命令队列深度测试

在4.1节对地址映射方案的测试中可知,地址映射方案AddrMap2具有良好的性能。在命令队列深度测试过程中,选用AddrMap2作为地址映射方案。设定MRAM命令队列深度分别为8、16、32、64,进行对比测试,输出每一种队列深度下,请求被处理数量、请求响应时间,平均带宽。

图11给出了不同的命令队列深度下,请求响应时间的分布情况。请求的响应时间越短,表明响应速度越快。从图11可以看出,当命令队列深度depth的取值依次从64降低为32、16时,请求的响应时间分布是越来越理想的。但当depth取值为8时,请求的响应时间分布反而没取值为16时理想。请求响应时间的统计方式为:请求返回时的时刻减去它被添加到trace请求队列的时刻。MARM仿真系统运行时,当MRAM命令队列深度过小时,trace请求队列中的请求容易阻塞在队列中,无法发送到MRAM命令队列。这样会导致整体的请求响应时间上升。这就解释了为什么当depth取值为8时,请求响应时间分布反而不理想。

图11 不同命令队列深度的响应时间

Fig.11 Comparison of response time of different depth of commandqueue

表2给出了不同命令队列深度下,完成响应的请求数量,以及平均带宽值。由于地址映射方案AddrMap2使得请求在存储体上分布比较均匀, depth不同取值下,完成的请求数量大致相同。但是平均带宽上,有着较大差异。当depth为16、32、64时,平均带宽大致相同,都为接近10GB/s。而命令队列深度depth为8时,平均带宽有明显下降。因为MRAM命令队列很容易被填满,阻塞在trace请求队列中的请求也易导致请求队列满。这样,就不会有更多的trace请求从trace文件中被读入队列。该因素与响应时间延长因素一起导致平均带宽下降,同时总共完成响应的请求数量也会有所减少,这从表2能够体现出来。

表2 命令队列深度测试

Table2 Test results of different depth of commandqueue

MRAM命令队列深度 / 完成响应请求数(个) / 平均带宽(GB/s)
8 / 594379 / 6.048
16 / 598588 / 9.803
32 / 598991 / 9.934
64 / 598996 / 9.930

综合上面的两组测试方案及结果分析,在该MRAM仿真系统中,地址映射方案AddrMap1和方案AddrMap2是比较理想的映射方案。MRAM命令队列设置为最多同时存放16个或者32个MRAM命令可以获得良好的性能。

5.  结束语

本文设计并实现了一种MRAM仿真系统,结合MRAM芯片作为主存的特性,完成对整个请求处理过程的模拟,最终给出模拟过程中的关键参数指标统计结果。通过地址映射方案测试和命令队列测试证明用MRAM做主存能够发挥出MRAM的优势,获得良好的请求响应时间、请求带宽等性能。本文设计并实现的MRAM仿真系统,完成了主要的功能需求,达到了良好的效果。当然,该MRAM仿真系统也有一些不足之处。本文MRAM仿真系统模拟的是单通道、单CPU情形,这有待进一步改进与完善。

参 考 文 献

[1] S. A. Wolf, L. Jiwei, M. R. Stan, et al. The Promise of Nanomagnetics and Spintronics for Future Logic and Universal Memory. Proceedings of the IEEE, 2010, 98: 2155-2168.

[2] Paul Rosenfeld, Elliott Cooper-Balis, Bruce Jacob. DRAMSim2: A Cycle Accurate Memory System Simulator. IEEE Computer Architecture Letters, 2011, 10(1).

[3] Matt Poremba1and, Yuan Xie. NVMain: An Architectural-Level Main Memory Simulator for Emerging Non-volatile Memories. IEEE Computer Society Annual Symposium on VLSI. 2012.

[4] H. Sato, P. A. Schroeder, J. Slaughter, et al. Galvanomagnetic properties of Ag/M layered metallic films. Superlattices and Microstructures, 1988, 4: 45–50.

[5] E. Velu, C. Dupas, D. Renard, et al. Enhanced magneto resistance of ultrathin sub multilayers with perpendicular anisotropy. Phys Rev B Condens Matter, 1988, 37: 668.

[6] M. Julliére. Tunneling between ferromagnetic films. Phys. Lett. 1975, 54:225.

[7] J. C. Slonczewski. Current-driven excitation of magnetic multilayers. Magn. Mater. 1996, 159: 1-2.

[8] S. Jun. Logic devices and circuits based on giant magnetoresistance. IEEE Transactions on Magnetics. 1997, 33: 4492-4497.

[9] Kawahara T, Takemura R, Miura K, et al. 2Mb Spin-Transfer Torque RAM (SPRAM) with Bit-by-Bit Bidirectional Current Write and Parallelizing-Direction Current Read. IEEE International. IEEE, 2007:480 – 617.

[10] Takemura R, Kawahara T, Miura K, et al. 2Mb SPRAM (SPin-Transfer Torque RAM) With Bit-by-Bit Bi-Directional Current Write and Parallelizing-Direction Current Read. Solid-State Circuits, IEEE Journal of, 2008, 43(1):109-120.

[11] H. Yoda, S. Fujita, N. Shimomura, et al. Progress of STT-MRAM Technology and the Effect on Normally-off Computing Systems. IEEE IEDM, 2012, 259-262.

[12] Khvalkovskiy A. V, Apalkov D, Watts S, et al. Basic principles of STT-MRAM cell operation in memory arrays. Journal of Physics D Applied Physics, 2013, 46(7): 74001-74020.

Wu Fei, boru in 1975. Associate Professor and Master supervisor. Her research interests include Mass Storage, non-volatile Memory and Green Storage

照片Wang Yangsheng,born in 1949, PhD supervisor.His mainresearch interest include pattern recognition and machine learning.

[键入文字]

[键入文字]