CN106328184B - Mlc stt-mram数据写入方法及装置、数据读取方法及装置 - Google Patents
Mlc stt-mram数据写入方法及装置、数据读取方法及装置 Download PDFInfo
- Publication number
- CN106328184B CN106328184B CN201610677385.4A CN201610677385A CN106328184B CN 106328184 B CN106328184 B CN 106328184B CN 201610677385 A CN201610677385 A CN 201610677385A CN 106328184 B CN106328184 B CN 106328184B
- Authority
- CN
- China
- Prior art keywords
- data
- mram
- mlc stt
- stt
- write
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开了一种MLC STT‑MRAM数据写入方法及装置、数据读取方法及装置,其中,MLC STT‑MRAM数据写入方法,包括将新数据从缓存器传输至MLC STT‑MRAM的写队列中等待写入;通过比较新旧数据,获得写入MLC STT‑MRAM时的每种数据状态改变单元格硬区域磁化状态的数量以及相应的映射类型;筛选出需要改变MLC STT‑MRAM硬区域磁化状态数量最少的映射类型为重映射方式,并利用重映射方式对新数据进行数值重映射;根据相应写策略,将重映射后得到的数据和映射类型一起写入MLC STT‑MRAM中。
Description
技术领域
本发明属于存储器领域,尤其涉及一种MLC STT-MRAM数据写入方法及装置、数据读取方法及装置。
背景技术
MLC是Multi-level Cell(多级单元)的简称,即在一个存储器单元格中存放两个及两个以上的比特,而STT-MRAM是Spin-Transfer Torque Magnetic Random AccessMemory(自旋磁存储器)的简称。
MLC STT-MRAM中的数据时存储于MTJ中,全称是magnetic tunneling junction(磁隧道结)。MLC STT-MRAM的设计主要有两种,一种是平行MTJ设计,另一种是连续MTJ设计。由于平行MTJ设计的STT-MRAM在能耗以及可靠性上都要优于连续MTJ设计的STT-MRAM,所以大多数的研究都集中于前者上。平行MTJ由固定磁化方向的reference layer(参考层)以及可变磁化方向的free layer(自由层)组成,而自由层又分为hard domain(硬区域)与soft domain(软区域)。MTJ的电阻状态是通过改变施加于其中的电流方向进而改变自由层的磁化方向来改变的。自由层中软区域的磁化方向可以通过施加较小的电流来改变;而改变硬区域的磁化方向时,由于施加的电流较大,软区域的磁化方向也会被一同改变为与硬区域相同的磁化方向。一般规定两个区域磁化方向相同的两种状态为“00”与“11”,分别对应电阻最小与电阻最大的两个状态;而两区域磁化方向不同的状态为“10”与“01”,“10”的电阻较“01”大。
一般地,当写入新数据时,会采取读后写的策略,即将旧数据读出,对比新旧数据,然后按照写策略写入。当数据相同时,则不需要替换旧数据;当只有软区域的数据不同而需要更改时,则只需要对MTJ施加一个较小的正向或反向电流,来改变软区域的磁化方向;而当硬区域的数据不相同时,如果新数据是“00”或者“11”,那么只需要对MTJ施加一个较大的正向或反向电流,使硬区域与软区域的磁化方向相同,而如果新数据是“01”或者“10”时,则需要两步,第一步施加较大的电流,改变MTJ状态为“00”或“11”,第二步施加较小的电流,改变软区域的磁化方向。所以,只改变软区磁化状态所需要的能量相较改变硬区域磁化状态的能耗要小的多。
目前对STT-MRAM能耗优化大多采用制造工艺的改进与提升的方法,该方法需要时间的积累,这个过程可能会持续很长时间;其次,还有采用硬件电路实现针对于某种非易失性存储器的编写策略,该方法是利用存储器的某些特性来针对存储器本身所做的优化;还有通过软件实现数据的编解码,对写入的数据进行优化。但是,上述方法仅仅是考虑了单一因素来优化STT-MRAM能耗,优化的效率以及效果差。
发明内容
为了解决现有技术的缺点,本发明提供一种MLC STT-MRAM数据写入方法及装置、数据读取方法及装置。本发明可以大大减少MLC STT-MRAM数据写入和读取时的能耗。
为实现上述目的,本发明采用以下技术方案:
一种MLC STT-MRAM数据写入方法,包括:
步骤a:将新数据从缓存器传输至MLC STT-MRAM的写队列中等待写入;
步骤b:通过比较新旧数据,获得写入MLC STT-MRAM时的每种数据状态改变单元格硬区域磁化状态的数量与未改变硬区域磁化状态的数量,进而得到相应的映射类型;
步骤c:筛选出需要改变MLC STT-MRAM硬区域磁化状态数量最少的映射类型为重映射方式,并利用重映射方式对新数据进行数值重映射;
步骤d:根据相应写策略,将重映射后得到的数据和映射类型一起写入MLC STT-MRAM中。
所述步骤b中获得写入MLC STT-MRAM时的每种数据状态改变单元格硬区域磁化状态的数量,需要获得八个数值,分别是写入新数据的数据状态‘00’、‘01’、‘10’和‘11’时改变的硬区域磁化状态的数量与未改变的数量。
通过获得这八个数值,可以分析得到交换某两个状态后,总体要改变的硬磁化区域状态数量是否减少,比如写入状态‘00’时,其总量为6,硬磁化区域改变的数量为4,未改变的数量为2,,而写入总数为8的状态‘11’时,硬磁化区域改变的数量为5,未改变的数量为3,那么若未交换两种状态,硬磁化区域改变的数量为4+5=9个,而通过状态重映射将两种数据状态交换后,硬磁化区域改变的数量则为2+3=5个,明显少于未交换前的9个。
在所述步骤b中,假设互换新数据中左位不相同的两个数据状态,计算互换后总的硬区域磁化状态的数量的变化,如果减少,那么该互换是可进行,否则,该互换不可进行。
在所述步骤b中,将新数据中左位不同的数据状态互换,总共有四种情况:‘00’与‘10’;‘00’与‘11’;‘01’与‘10’;‘01’与‘11’。
其中,‘00’与‘10’互换,‘01’与‘11’互换不相互冲突;同样地,‘01’与‘10’互换,‘00’与‘11’互换不相互冲突。所以,将不冲突的互换分到同一组,四组互换可以分为两组,通过比较这两组最终可以减少的硬区域磁化状态的数量,挑选出减少硬区域磁化状态数量较多的一组,生成映射类型,并根据映射类型对新数据进行重映射。
在所述步骤d中,按照写策略,如果新旧数据相同,则不需要改变磁隧道结的状态。
如果只有软区域的磁化状态需要改变,那么只对MTJ施加较小的电流,如果软区域的数据由“0”变“1”,那么施加反向的电流,否则施加正向的电流;如果硬区域的状态需要改变,且新数据是“00”或者“11”,那么写“00”则对MTJ施加正向电流,写“11”施加反向电流;如果硬区域的状态需要改变,且新数据是“01”或者“10”,则需要进行两步写:第一步施加正向或者反向电流使MTJ中的数据变为“00”或者“11”,第二步按照改变软区域磁化状态的方式对MTJ施加电流。
一种MLC STT-MRAM数据写入装置,包括:
数据传输部,其用于将新数据从缓存器传输至MLC STT-MRAM的写队列中等待写入;
映射类型获取部,其用于通过比较新旧数据,获得写入MLC STT-MRAM时的每种数据状态改变单元格硬区域磁化状态的数量与未改变硬区域磁化状态的数量,进而得到相应的映射类型;
数据映射部,其用于筛选出需要改变MLC STT-MRAM硬区域磁化状态数量最少的映射类型为重映射方式,并利用重映射方式对新数据进行数值重映射;
写策略部,其用于根据相应写策略,将重映射后得到的数据和映射类型一起写入MLC STT-MRAM中。
所述映射类型获取部还包括硬区域磁化状态的数量获取模块,其用于分别写入新数据的数据状态‘00’、‘01’、‘10’和‘11’,得到改变的硬区域磁化状态的数量。
假设互换新数据中左位不相同的两个数据状态,计算互换后总的硬区域磁化状态的数量的变化,如果减少,那么该互换是可进行,否则,该互换不可进行。
一种MLC STT-MRAM数据读取方法,包括:
步骤A:将需要读取得的数据从MLC STT-MRAM内存中读出并传送到读队列,所述需要读取得的数据包括重映射的数据与映射类型;
步骤B:根据映射类型的信息,对重映射的数据进行反向重映射,获取相应的原数据;其中,所述原数据由所述的MLC STT-MRAM数据写入方法写入MLC STT-MRAM内存。
一种MLC STT-MRAM数据读取装置,包括:
数数据读出部,其用于将需要读取得的数据从MLC STT-MRAM内存中读出并传送到读队列,所述需要读取得的数据包括重映射的数据与映射类型;
反向重映射部,其用于根据映射类型的信息,对重映射的数据进行反向重映射,获取相应的原数据;其中,所述原数据由所述的MLC STT-MRAM数据写入方法写入MLC STT-MRAM内存。
本发明的有益效果为:
(1)本发明在某一写策略的基础上,对新写入的数据进行优化,通过与未经优化的数据进行对比发现,经过优化后的数据再写入到存储器中,可以大大减少写入时的能耗。由于改变MLC STT-MRAM的硬磁化区域的磁化状态较改变软磁化区域的磁化状态会消耗更多的能量,特别地,当写入数据状态‘01’与‘10’时,需要两步,即先将数据状态写为‘00’(当要写入的数据状态为‘01’时)或‘11’(当要写入的数据状态为‘10’时),之后再改变软磁化区域状态,会消耗比改变硬磁化区域磁化状态得到‘00’与‘11’时更多的能量。通过状态重映射之后,将硬磁化区域磁化状态改变的数量减少,并且由于数据的随机性与数据的局部性原理,软磁化区域改变的数量在绝大部分情况下不会超过硬磁化区域减少数量的两倍,而硬磁化区域状态改变时消耗的能量则是软磁化区域状态改变时消耗能量的两倍以上,所以本策略可以减少整体的写入能耗。
(2)本发明还提供了MLC STT-MRAM数据写入装置,能够结合硬件电路和软件编解码方法来实现针对于某种非易失性存储器的编写策略,进而达到对写入的数据进行优化。
(3)本发明是在针对数据的优化策略,并不涉及存储器本身,由于数据本身具有局部性原理,所以在减少硬磁化区域改变数量的同时,整体的写入量并没有增加,并且由于写数据状态‘01’与‘10’时需要两步才能写入,相当于两次写,所以一定程度上减少了写次数,增加了设备的使用寿命。
附图说明
图1编解码数据流图。
图2(a)计算n1X→00电路图。
图2(b)计算n0X→00电路图。
图3Mapping Type获取算法实现电路。
图4(a)逻辑运算部件I内部结构。
图4(b)逻辑运算部件II内部结构。
图4(c)逻辑运算部件III内部结构。
图4(d)逻辑运算部件IV内部结构。
其中,1.读队列,2.写队列,3.可编程四路数据选择器,4.计数器,5.Mapping Type获取算法部件,6.写策略部件,7.Cache,8.非易失性存储器,9.或门,10.与门,11.10位数值加法运算器,12.逻辑运算部件I,13.逻辑运算部件II,14.9位数值比较器,15.逻辑运算部件III,16.逻辑运算部件IV。
具体实施方式
下面结合附图与实施例对本发明做进一步说明:
在满足经过解码后与原数据一样的前提下:MLC STT-MRAM数据的编码及写入步骤为:
1)新数据从缓存中写回到主存,首先会被传输到写队列中等待写入,要写入的数据宽度为一个缓存行大小。当写队列中的某一数据要写入内存时,内存控制器会先读取相应地址的旧数据,进而与要写入的新数据进行比较。
2)通过比较新旧数据,获得写入每种数据状态改变单元格硬区域磁化状态的数量与未改变单元格硬区域磁化状态的数量,需要获得八个数值,分别是写入新数据的数据状态‘00’、‘01’,‘10’,‘11’时改变的硬区域磁化状态的数量,以及未改变的硬区域磁化状态的数量。假设互换新数据中左位不相同的两个数据状态,比如将数据状态‘00’与数据状态‘11’互换,计算互换后总的硬区域磁化状态的数量的变化,如果减少,那么该互换是可以进行的,否则,该互换就不可进行。将左位不同的数据状态互换,那么总共有四种情况:‘00’与‘10’;‘00’与‘11’;‘01’与‘10’;‘01’与‘11’。
其中,‘00’与‘10’互换,‘01’与‘11’互换不相互冲突;同样地,‘01’与‘10’互换,‘00’与‘11’互换不相互冲突。所以,我们将不冲突的互换分到同一组,四组互换可以分为两组,通过比较这两组最终可以减少的硬区域磁化状态的数量,挑选出减少硬区域磁化状态数量较多的一组,并通过算法生成映射类型,将映射类型以及新数据输送到可编程四路数据选择器将新数据进行重映射。
3)在编码后的数据写入内存时,按照写策略,如果新旧数据相同,则不需要改变MTJ的状态;如果只有软区域的磁化状态需要改变,那么只对MTJ施加电流,如果软区域的数据由“0”变“1”,那么施加反向的电流,否则施加正向的电流;如果硬区域的状态需要改变,且新数据是“00”或者“11”,那么写“00”则对MTJ施加正向电流,写“11”施加反向电流;如果硬区域的状态需要改变,且新数据是“01”或者“10”,则需要进行两步写:第一步施加正向或者反向电流使MTJ中的数据变为“00”或者“11”,第二步按照改变软区域磁化状态的方式对MTJ施加电流。
MLC STT-MRAM数据的读出并解码的步骤为:
有读指令到来时,将需要取得的数据从内存中读出并传送到读队列,数据中包括重映射的数据与Mapping Type。
根据Mapping Type的信息,对重映射的数据进行反向重映射,得到原数据,再将原数据传送到进程中使用。
其中,算法1描述了数据的编码写入过程,算法2描述了算法的读出解码过程。
在编码部分,最为关键的一点在于获取新数据的重映射方式以及对应的映射类型。由于改变自由层中硬区域的磁化状态要比改变软区域的磁化状态耗费能量更多,如果新数据中写入某一数据状态时改变的硬区域磁化状态更多,即改变的硬区域磁化状态数量大于新数据中该数据状态数量的二分之一,比如旧数据为“00-00-11-00”,而新数据为“11-10-11-11”,那么写入新数据中的状态“11”时改变硬区域的磁化状态数量为2,其原因是:
旧数据为“00-00-11-00”,新数据为“11-10-11-11”,写入新数据时,从D0位(最左边)开始,第一个‘11’时,对应的旧数据为‘00’,此时写‘11’时需要改变硬磁化区域状态(硬磁化区域状态由‘0’变‘1’);写第二个‘11’对应的旧数据为‘11’,因为新旧状态相同,此时不需要对这个‘11’进行写入;第三个‘11’对应的旧数据为‘00’,所以写入该‘11’也需要改变相应的单元格中MTJ的硬区域的磁化状态。所以写入新数据中的‘11’时,有两个(从左边数第一个与第四个)需要改变硬区域的磁化状态。
而如果将新数据中“00”与“11”互换,那么经过重映射后的数据变为“00-10-00-00”,此时写入重映射数据的中的“00”,硬区域磁化状态改变的数量为1,这样,写入时所消耗的能量就会减少。
所有的重映射方式如表1所示。
表1重映射方式以及对应的Mapping Type
这些重映射方式都烧到了可编程四路数据选择器中,选择出相应的MappingType,并将该Mapping Type传输到所有的可编程四路数据选择器中,同时根据要写入的新数据,选择出重映射后的数据。比如,经过算法3后,选择出Mapping Type为“0100”,新数据为“11-00-01-10”,那么会有四个可编程四路数据选择器中分别对四个2位数据进行重映射,‘11’重映射为‘11’,‘00’重映射为‘10’,‘01’重映射为‘01’,‘10’重映射为‘00’。
为了判断新数据中哪两种状态需要互换,需要计算分别写入写数据的每种状态硬区域磁化状态改变以及不改变的数量,记n0X→00为写入新数据中的状态‘00’时不需要改变硬区域磁化状态的数量,即要写入状态‘00’的单元格原状态为‘00’或者‘01’;n1X→00为写入新数据中的状态‘0’时需要改变硬区域磁化状态的数量,单元格原状态为‘10’或者‘11’。相应的还有n0X→01、n0X→10、n0X→11、n1X→01、n1X→10、n1X→11。
在Mapping Type获取算法中,不会产生冲突的交换被分到同一组,比如将与分到一组,和分到另一组。如果将新数据某两个状态交换,比如将‘01’与‘11’交换,那么交换后需要改变的硬区域磁化状态的数量为n1X→01+n0X→11-n1X→11-n0X→01。如果此数量不大于零,表示将新数据中的“01”与“11”交换后,并不会减少硬区域磁化状态改变的数量,所以此交换将不会进行,并且在算法的第二步中用0代替此数量,表示不进行此交换。
比较两组交换最终可以减少的硬区域磁化状态改变的数量,来确定哪一组更合适交换。通过Mapping Type获取算法第3步到第6步,以及算法第8步到第11步,来确定与状态‘00’以及状态“01”交换的状态,并得到MT1与MT2。设置的Mapping Type高两位表示与状态‘00’交换的状态,如果不产生交换,那么高两位用“00”表示,如果数据状态‘10’与数据状态‘00’交换,那么Mapping Type的高两位为‘01’,如果是数据状态‘11’与数据状态‘00’交换,那么Mapping Type的高两位为‘11’,也就是Mapping Type的高两位数据就是算法中得到的MT1,Mapping Type的低两位数据即Mapping Type获取算法中得到的MT2。最后MappingType获取算法的第12步通过MT1与MT2得到Mapping Type。
图1是编解码数据流图。在编码写入部分,分为五个执行步骤。其具体过程为:
Cache中的数据写回并存于写队列中。
在新数据写入前将旧数据读出并传输到读队列,并利用要写入的新数据与旧数据,通过计数器计算n1X→00等8个数值。
将n1X→00等8个数值传输入Mapping Type获取算法部件并获取相应的MappingType。
可编程四路数据选择器会根据Mapping Type将新数据的数值重映射。
重映射后得到的数据以及得到的Mapping Type经过写策略部件后根据相应的写策略写入非易失性存储器。
通过上述5个步骤,将新数据编码并写入的非易失性存储器中。
在读出解码部分,只要分为两个个执行步骤。其具体过程为:
将要读出的数据读出并传输到读队列中。
可编程四路数据选择器会根据Mapping Type将旧数据的数值反向重映射,并传输到进程中。
本发明还提供了一种MLC STT-MRAM数据写入装置,包括:
数据传输部,其用于将新数据从缓存器传输至MLC STT-MRAM的写队列中等待写入;
映射类型获取部,其用于通过比较新旧数据,获得写入MLC STT-MRAM时的每种数据状态改变单元格硬区域磁化状态的数量与未改变硬区域磁化状态的数量,进而得到相应的映射类型;
数据映射部,其用于筛选出需要改变MLC STT-MRAM硬区域磁化状态数量最少的映射类型为重映射方式,并利用重映射方式对新数据进行数值重映射;
写策略部,其用于根据相应写策略,将重映射后得到的数据和映射类型一起写入MLC STT-MRAM中。
本发明的映射类型获取部和数据映射部共同构成如图2中的编码器,其中,映射类型获取部包括计算器,其用于计算并获取写入新数据的数据状态‘00’、‘01’、‘10’和‘11’时改变的硬区域磁化状态的数量。
映射类型获取部包括Mapping Type获取算法部件,其用于筛选出需要改变MLCSTT-MRAM硬区域磁化状态数量最少的映射类型为重映射方式;
四路数据选择器,其用于利用重映射方式对新数据进行数值重映射。
本发明还提供了一种MLC STT-MRAM数据读取装置,包括:
数据读出部,其用于将需要读取得的数据从MLC STT-MRAM内存中读出并传送到读队列,所述需要读取得的数据包括重映射的数据与映射类型;
反向重映射部,其用于根据映射类型的信息,对重映射的数据进行反向重映射,得到原数据,再将原数据传送至进程中使用。
其中,反向重映射部为如图2中译码器,其中译码器采用四路数据选择器来实现。
图2(a)中,一种用于计算n1X→00的电路设计,为了方便展示,假设要写入的数据为8位(实际要写入的数据长度为cache line的大小,为512位),新数据中通过每两位高位与低位或后非,可以得到新数据中状态“00”的位图,比如新数据为“00-10-00-11”,那么每两位高低与低位相或,可以得到“0-1-0-1”,之后对此数据取反得到“1-0-1-0”,这样就将新数据中状态“00”的位置通过1标记出来。相似地,新数据中的状态“01”可以通过每两位中高位取反后再与低位相与来的到“01”的位图,新数据中的状态“10”的位图可以通过每两位中低位取反后再与高位相与得到,新数据中的状态“11”的位图可以通过每两位中低位与高位直接相与得到。为了得到n1X→00,还需要知道旧数据中状态“10”以及“11”的位图,那么可以直接取旧数据中每两位的高位,之后将新数据中“00”的位图与旧数据中“1X”的位图相与,就得到了“1X→00”的位图,之后统计其中“1”的数量即可。
图2(b)中,一种用于计算n0X→00的电路设计,这里与图2(a)不同的是取得的旧数据每两位的高位后,要取反得到旧数据中“0X”的位图。
图3中,一种用于获取Mapping Type的算法实现电路。
由于每次写入到内存的数据大小为512个比特,所以n1X→00等8个数中,最大的为256且有且只有一个,最小的为0,那么其中任意两个数相加减,最大为256,最小为-256,所以部件11采用10位数值加法运算器,并且参与相加的数都采用补码形式。这样,n1X→00+n0X→10-n1X→10-n0X→00、n1X→01+n0X→11-n1X→11-n0X→01、n1X→00+n0X→11-n1X→11-n0X→00与n1X→01+n0X→10-n1X→10-n0X→01可以同时经过两步运算得出,得到的四个数值经过部件12,逻辑运算部件I,如果数值小于0,此时该数值的d9位为1,那么该数值经过部件12后,会生成全0的9位数值,否则,数值不变。经过部件12处理后的四个数值,再经过10位数值加法器得到两个数值,这两个数值就是两个交换组分别可以减少的硬区域磁化状态改变的数量。这两个值再经过部件14,9位数值比较器的比较,如果相等,那么P=Q端会输出低电平,P>Q端输出高电平;如果左侧数值大于右侧,那么P>Q端输出低电平,P=Q端会输出高电平;如果右侧数值大于左侧,那么P>Q与P=Q端都会输出高电平。那么这两个输出端相与,如果输出为低电平,表示P≥Q,否则表示P<Q,那么输出为低电平时,左侧的交换组被选中,否则右侧的交换组被选中。
逻辑运算部件I 12输出的9位数值,经过逻辑运算部件II 13,逻9位数值相或,如果该数值是个大于等于0的数值,那么9位数值至少有一个为1,那么逻辑运算部件II 13输出为1,表示该交换可以进行;如果等于零,那么9位数值全部为0,该部件输出为0,那么该交换不可被执行。逻辑运算部件III 15与逻辑运算部件IV 16通过ABC的数值来生成MT1与MT2,赋值表如表2与表3所示。通过该表设计得到如图4(c)与图4(d)的设计电路。
表2获取MT1赋值表
表3获取MT2赋值表
A | B | C | MT2 |
0 | 0 | 1/0 | 00 |
0 | 1 | 1/0 | 11 |
1 | 1/0 | 0 | 00 |
1 | 1/0 | 1 | 01 |
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (8)
1.一种MLC STT-MRAM数据写入方法,其特征在于,包括:
步骤a:将新数据从缓存器传输至MLC STT-MRAM的写队列中等待写入;
步骤b:通过比较新旧数据,获得写入MLC STT-MRAM时的每种数据状态改变单元格硬区域磁化状态的数量与未改变硬区域磁化状态的数量,进而得到相应的映射类型;
步骤c:筛选出需要改变MLC STT-MRAM硬区域磁化状态数量最少的映射类型为重映射方式,并利用重映射方式对新数据进行数值重映射;
步骤d:根据相应写策略,将重映射后得到的数据和映射类型一起写入MLC STT-MRAM中;
所述步骤b中获得写入MLC STT-MRAM时的每种数据状态改变单元格硬区域磁化状态的数量,需要获得八个数值,分别是写入新数据的数据状态‘00’、‘01’、‘10’和‘11’时改变的硬区域磁化状态的数量。
2.如权利要求1所述的一种MLC STT-MRAM数据写入方法,其特征在于,在所述步骤b中,假设互换新数据中左位不相同的两个数据状态,计算互换后总的硬区域磁化状态的数量的变化,如果减少,那么该互换是可进行,否则,该互换不可进行。
3.如权利要求2所述的一种MLC STT-MRAM数据写入方法,其特征在于,在所述步骤b中,将新数据中左位不同的数据状态互换,总共有四种情况:‘00’与‘10’;‘00’与‘11’;‘01’与‘10’;‘01’与‘11’。
4.如权利要求1所述的一种MLC STT-MRAM数据写入方法,其特征在于,在所述步骤d中,按照写策略,如果新旧数据相同,则不需要改变磁隧道结的状态。
5.一种MLC STT-MRAM数据写入装置,其特征在于,包括:
数据传输部,其用于将新数据从缓存器传输至MLC STT-MRAM的写队列中等待写入;
映射类型获取部,其用于通过比较新旧数据,获得写入MLC STT-MRAM时的每种数据状态改变单元格硬区域磁化状态的数量与未改变硬区域磁化状态的数量,进而得到相应的映射类型;
数据映射部,其用于筛选出需要改变MLC STT-MRAM硬区域磁化状态数量最少的映射类型为重映射方式,并利用重映射方式对新数据进行数值重映射;
写策略部,其用于根据相应写策略,将重映射后得到的数据和映射类型一起写入MLCSTT-MRAM中;
所述映射类型获取部还包括硬区域磁化状态的数量获取模块,其用于分别写入新数据的数据状态‘00’、‘01’、‘10’和‘11’,得到改变的硬区域磁化状态的数量。
6.如权利要求5所述的一种MLC STT-MRAM数据写入装置,其特征在于,假设互换新数据中左位不相同的两个数据状态,计算互换后总的硬区域磁化状态的数量的变化,如果减少,那么该互换是可进行,否则,该互换不可进行。
7.一种MLC STT-MRAM数据读取方法,其特征在于,包括:
步骤A:将需要读取得的数据从MLC STT-MRAM内存中读出并传送到读队列,所述需要读取得的数据包括重映射的数据与映射类型;
步骤B:根据映射类型的信息,对重映射的数据进行反向重映射,获取相应的原数据;其中,所述原数据由如权利要求1-4任一所述的MLC STT-MRAM数据写入方法写入MLC STT-MRAM内存。
8.一种MLC STT-MRAM数据读取装置,其特征在于,包括:
数据读出部,其用于将需要读取得的数据从MLC STT-MRAM内存中读出并传送到读队列,所述需要读取得的数据包括重映射的数据与映射类型;
反向重映射部,其用于根据映射类型的信息,对重映射的数据进行反向重映射,获取相应的原数据;其中,所述原数据由如权利要求5-6任一所述的MLC STT-MRAM数据写入方法写入MLC STT-MRAM内存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610677385.4A CN106328184B (zh) | 2016-08-17 | 2016-08-17 | Mlc stt-mram数据写入方法及装置、数据读取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610677385.4A CN106328184B (zh) | 2016-08-17 | 2016-08-17 | Mlc stt-mram数据写入方法及装置、数据读取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106328184A CN106328184A (zh) | 2017-01-11 |
CN106328184B true CN106328184B (zh) | 2019-01-29 |
Family
ID=57740844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610677385.4A Expired - Fee Related CN106328184B (zh) | 2016-08-17 | 2016-08-17 | Mlc stt-mram数据写入方法及装置、数据读取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106328184B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107481750B (zh) * | 2017-08-11 | 2021-01-01 | 华中科技大学 | 一种降低多层自旋转移矩磁存储器能耗的编解码方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1419241A (zh) * | 2001-11-13 | 2003-05-21 | 三菱电机株式会社 | 通过双向数据写入磁场实施数据写入的薄膜磁体存储装置 |
CN1423281A (zh) * | 2001-11-15 | 2003-06-11 | 株式会社东芝 | 磁随机存取存储器及其读出方法 |
CN1909109A (zh) * | 2005-08-03 | 2007-02-07 | 财团法人工业技术研究院 | 用于转换具低电流的磁阻式随机存取存储器的磁矩的方法 |
TW200844997A (en) * | 2006-10-06 | 2008-11-16 | Crocus Technology Sa | System and method for providing content-addressable magnetoresistive random access memory cells |
CN101752003A (zh) * | 2008-11-28 | 2010-06-23 | 财团法人工业技术研究院 | 磁性移位寄存存储器以及数据存取方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150213867A1 (en) * | 2014-01-28 | 2015-07-30 | Qualcomm Incorporated | Multi-level cell designs for high density low power gshe-stt mram |
-
2016
- 2016-08-17 CN CN201610677385.4A patent/CN106328184B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1419241A (zh) * | 2001-11-13 | 2003-05-21 | 三菱电机株式会社 | 通过双向数据写入磁场实施数据写入的薄膜磁体存储装置 |
CN1423281A (zh) * | 2001-11-15 | 2003-06-11 | 株式会社东芝 | 磁随机存取存储器及其读出方法 |
CN1909109A (zh) * | 2005-08-03 | 2007-02-07 | 财团法人工业技术研究院 | 用于转换具低电流的磁阻式随机存取存储器的磁矩的方法 |
TW200844997A (en) * | 2006-10-06 | 2008-11-16 | Crocus Technology Sa | System and method for providing content-addressable magnetoresistive random access memory cells |
CN101752003A (zh) * | 2008-11-28 | 2010-06-23 | 财团法人工业技术研究院 | 磁性移位寄存存储器以及数据存取方法 |
Non-Patent Citations (2)
Title |
---|
"Access Scheme of Multi-Level Cell Spin-Transfer Torque Random Access Memory and Its Optimization";Yiran Chen etc.;《IEEE Xplore》;20100816;全文 |
"多级STT-RAM缓存的优化策略";全佰行;《中国优秀硕士学位论文全文数据库信息科技辑》;20140215;全文 |
Also Published As
Publication number | Publication date |
---|---|
CN106328184A (zh) | 2017-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Energy-efficient multi-level cell phase-change memory system with data encoding | |
CN103782266B (zh) | 针对存储器持久性操作的设备及方法 | |
Wen et al. | State-restrict MLC STT-RAM designs for high-reliable high-performance memory system | |
Hu et al. | Low overhead software wear leveling for hybrid PCM+ DRAM main memory on embedded systems | |
CN108351833A (zh) | 用来压缩密码元数据以用于存储器加密的技术 | |
CN109891506A (zh) | 用于使用较低电压阈值进行耐久性友好编程的设备和方法 | |
Quan et al. | Prediction table based management policy for STT-RAM and SRAM hybrid cache | |
Luo et al. | Two-step state transition minimization for lifetime and performance improvement on MLC STT-RAM | |
CN106328184B (zh) | Mlc stt-mram数据写入方法及装置、数据读取方法及装置 | |
Xu et al. | Adaptive granularity encoding for energy-efficient non-volatile main memory | |
CN104467871A (zh) | 提高NAND Flash存储可靠性的数据存储方法 | |
CN103942115A (zh) | 一种nand闪存系统的数据存储容错编码方法 | |
Ahn et al. | Selectively protecting error-correcting code for area-efficient and reliable STT-RAM caches | |
Xu et al. | Encoding separately: An energy-efficient write scheme for MLC STT-RAM | |
KR20090020995A (ko) | 비휘발성 메모리의 데이터 처리 장치 및 방법 | |
CN105336379B (zh) | 一种信息处理方法及固态存储器 | |
CN107481750B (zh) | 一种降低多层自旋转移矩磁存储器能耗的编解码方法 | |
CN109656748B (zh) | 一种通过数据模式重布局降低mlc nand闪存误码率的方法 | |
Zhao et al. | State asymmetry driven state remapping in phase change memory | |
Zhao et al. | A Low-Latency and High-Endurance MLC STT-MRAM-Based Cache System | |
Dong et al. | Minimizing update bits of nvm-based main memory using bit flipping and cyclic shifting | |
Wen et al. | A holistic tri-region MLC STT-RAM design with combined performance, energy, and reliability optimizations | |
Mittal | Mitigating read disturbance errors in STT-RAM caches by using data compression | |
Zang et al. | Energy optimization for multi-level cell STT-MRAM using state remapping | |
Choi | Adaptative Zero‐Bit Pattern Scheme for Reducing Energy Consumption of Non‐Volatile Memories |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190129 Termination date: 20210817 |