一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种优化的具有ECC功能的MRAM系统及其操作方法与流程

2021-01-30 09:31:00 来源:中国专利 TAG:操作方法 优化 功能 寄存器 系统

一种优化的具有ecc功能的mram系统及其操作方法
技术领域
[0001]
本申请属于计算机及计算机软件领域,涉及一种存储寄存器技术,尤其涉及一种优化的具有ecc功能的mram系统及其操作方法。


背景技术:

[0002]
mram是一种新的内存和存储技术,其具有sram/dram一样快速随机读写的特点,还具有flash闪存在断电后永久保留数据的功能。众所周知,dram以及flash与标准cmos半导体工艺不兼容,但mram可以通过半导体工艺和逻辑电路集成到一个芯片中。
[0003]
mram的原理,是基于一个叫做磁性隧道结(mtj)的结构,其由两层铁磁性材料夹着一层非常薄的非铁磁绝缘材料组成的,下面的一层铁磁材料是具有固定磁化方向的参考层,上面的铁磁材料是可变磁化方向的记忆层,记忆层的磁化方向可以和参考层相平行或反平行。由于量子物理的效应,电流可以穿过中间的隧道势垒层,但是磁性隧道结的电阻和可变磁化层的磁化方向有关。记忆层和参考层的磁化方向相平行时电阻低,反平行时电阻高。读取mram的过程就是对磁性隧道结的电阻进行测量,使用比较新的stt-mram技术,写mram也比较简单,使用比读更强的电流穿过磁性隧道结进行写操作。一个自下而上的电流把可变磁化层置成与固定层反平行的方向,自上而下的电流把它置成平行的方向。
[0004]
mram的读出电路需要检测mram记忆单元的电阻。由于磁性隧道结的电阻可能会因为生产工艺、读写次数、温度等原因漂移,从而导致数据错误,读出的数据比特与之前最近一次写入的数据比特相反。为解决这一问题,可以加入错误检测和纠错电路(ecc,error checking and correcting),对一个字的数据进行编码,加入一些校验位比特,从而对数据错误进行检测和矫正。mram可靠性需要ecc来支持,存在ecc的情况下,由于ecc进行编码,需要额外的校验位,而且每增加一倍的原始位,仅需再增加1位校验位,所以对较多位的字进行ecc编码有助于提高存储空间效率。但这样就同时会产生一个矛盾:如果外部字长与内部字长不一致的情况下,为了读写比较短的外部字,需要读写整个内部字,而且会产生频繁的ecc编解码与读写操作,产生的功耗比较高。
[0005]
在专利申请号为201610127678.5的专利申请中(公开号cn107168816a)公开了一种ecc帧长调整方法及其装置,其通过从ecc块的填充数据截断数据,使得修改后的ecc块能够写入nvm的物理页,其中,所述修改后的ecc块由用户数据单元、填充数据的部分和校验数据组成;将修改后的ecc块写入nvm的物理页。同时,调整方法还包括,从nvm的物理页读出ecc块;在ecc块的填充数据的指定部分填充预定数据来修改ecc块;对修改后的ecc块进行ecc解码,得到信息数据;从信息数据中得到用户数据单元。其填充数据生成方式为使用预定数据、使用结果可重复生成的预定随机数生成方法和/或随机数种子生成所述填充数据。或者,使用结果可重复生成的预定随机数生成方法和/或随机数种子生成所述填充数据中按照物理页的地址选择随机数生成方法和/或随机数种子。通过上述方法其能够在单一ecc引擎中支持多种码率,减少闪存物理页大小对码率的限制。
[0006]
但上述专利在页级对ecc数据进行处理,颗粒度很大,而且有些情况下会产生过多
的填充位,浪费数倍的储存空间和功耗。申请人通过研究发现可以在字级层面进行处理,这样的处理方式的有点包括:颗粒度小、易于操作且能保持低功耗。


技术实现要素:

[0007]
为了解决目前的问题,本发明提供了一种寄存器技术,其主要解决在使用ecc的情况下,外部字长与内部字长不一致时,需要读写整个内部字的技术问题,通过在寄存器上对能够匹配前一周期地址的数据进行读写操作,避免频繁读取整个内部字,本申请提供一种优化的具有ecc功能的mram系统,其包括寄存器、纠错电路和控制电路,所述控制电路包括读写操作模块、数据写回mram操作模块以及地址管理模块,所述地址管理模块存储地址并获取外部字地址,判断外部字地址与内部字地址是否匹配,所述数据写回mram操作模块在外部字地址与寄存器中内部字地址不匹配时触发数据写回mram操作,所述地址管理模块在数据写回mram操作后获取外部字地址作为新地址,所述读写操作模块在外部字地址与内部字地址匹配时,触发在寄存器上的读写操作。
[0008]
进一步地,寄存器包括第一寄存器组、第二寄存器组、第三寄存器组、第四寄存器组、读写标志寄存器组和写回标志寄存器组,所述第一寄存器组用于存放读写时与外部交互的数据,所述第二寄存器组用于存放从mram中读取的数据,所述第三寄存器组用于存放内部字地址,所述第四寄存器组用于存放外部字地址。
[0009]
进一步地,所述读写标志寄存器组的长度为1,写入操作时所述读写标志寄存器组置1或0,读取操作时所述读写标志寄存器组对应地置0或1,所述写回标志寄存器组的长度为1,数据需要写回mram时,所述读写标志寄存器组置1或0,数据无需写回mram时,所述读写标志寄存器组对应地置0或1。
[0010]
进一步地,并且根据实际电路,读写标志寄存器组根据需要选择将值设置为0或1,所述读写标志寄存器组的默认值为0,只要有写操作则变为1。
[0011]
本申请还同时提供了一种优化的具有ecc功能的mram系统的操作方法,系统包括寄存器,所述寄存器存储有内部数据和内部数据的地址,通过控制电路进行寄存器读写操作、数据写回mram操作并管理数据地址,包括如下步骤:
[0012]
步骤1)读取输入信号,输入信号包括外部读写信号,获取外部字地址;
[0013]
步骤2)比较外部字地址与寄存器中内部字地址,在外部字地址前m位与内部字地址前m位相同或对应时,在寄存器上进行内部数据读写操作;
[0014]
步骤3)在外部字地址前m位与内部字地址前m位不同时,寄存器上内部数据需要写回mram时,将寄存器上内部数据写回mram,寄存器上数据写回mram后,更新寄存器中内部字地址,根据新的内部字地址获取新内部字地址的对应数据,在寄存器上进行读写操作。
[0015]
进一步地,步骤3)中在外部字地址前m位与内部字地址前m位不同时,通过另一组寄存器读入新地址的数据,在新存储器读入新地址的数据后,在将原来的一组寄存器中存放的旧地址的数据存入到mram中。
[0016]
进一步地,在寄存器上进行内部数据读写时考虑偏移值(offset)情况。
[0017]
进一步地,所述寄存器包括读写标志寄存器组和写回标志寄存器组,所述读写标志寄存器组的长度为1,写入操作时所述读写标志寄存器组置1或0,读取操作时所述读写标志寄存器组对应地置0或1,所述写回标志寄存器组的长度为1,数据需要写回mram时,所述
读写标志寄存器组置1或0,数据无需写回mram时,所述读写标志寄存器组对应地置0或1。
[0018]
进一步地,所述寄存器还包括第一寄存器组、第二寄存器组、第三寄存器组和第四寄存器组,读写时与外部交互的数据存放于所述第一寄存器组,从mram中读取的数据存放于所述第二寄存器组,且通过所述第二寄存器组在此寄存器组上进行读写操作,内部字地址存放于所述第三寄存器组,外部字地址存放于所述第四寄存器组。
[0019]
进一步地,更新寄存器中内部字地址包括将外部字地址前m位地址写入内部字地址,读出mram中对应数据放入内部数据中。
[0020]
进一步地,在步骤2)中,还包括判断内部数据是否更新过,如果更新过才将寄存器上内部数据写回mram。
[0021]
对于memory读写,顺序读写的概率比较高,在使用本申请系统和方法时,当外界访问一个短字时,把对应的长字整体读至寄存器中,在寄存器区上进行短字的读写操作,如果之后周期外部字地址也能匹配此内部长字地址时,可以继续在寄存器区上进行读写操作,直至新的周期的外部字地址无法匹配,再进行寄存器写回mram,并读入新地址的数据至寄存器,从而有效地减小读写mram所需功耗,另外还可以在同一个周期内实现一个完整的读写操作,即本发明在实际使用中,可以有效地降低读写mram及ecc编码解码的频率,有效地降低功耗。
附图说明
[0022]
图1是本申请的优化的具有ecc功能的mram系统示意图;
[0023]
图2是优化的具有ecc功能的mram系统的操作方法流程图;
[0024]
图3是优化的具有ecc功能的mram系统的另一个实施例的操作方法流程图。
具体实施方式
[0025]
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳的实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。
[0026]
在以下描述中,阐述了描述本公开的一些实施例的具体细节。然而,对于本领域技术人员而言将明显的是,一些实施例可以在没有这些具体细节中的一些或全部的情况下实施。本文中所公开的具体实施例旨在解说性而非限制性。尽管未在此处具体描述,但本领域技术人员可以认识到其他元素落在本公开的范围和精神内。
[0027]
下面将结合附图及具体实施例对本发明作进一步详细说明。
[0028]
参见图1,图1是本申请的优化的具有ecc功能的mram系统示意图,本申请提供了一种优化的具有ecc功能的mram系统,其包括寄存器纠错电路2(ecc)和控制电路1,控制电路1包括读写操作模块11、数据写回mram操作模块12以及地址管理模块13,地址管理模块13存储地址并获取外部字地址,判断外部字地址与内部字地址是否匹配,数据写回mram操作模块12在外部字地址与寄存器中内部字地址不匹配时触发数据写回mram操作,地址管理模块13在数据写回mram操作后获取外部字地址转化为新地址,并读入对应mram数据,读写操作模块11在外部字地址与内部字地址匹配时,触发在寄存器10上的读写操作。
[0029]
进一步地,寄存器10包括第一寄存器组、第二寄存器组、第三寄存器组、第四寄存器组、读写标志寄存器组和写回标志寄存器组(未在图中示出),第一寄存器组用于存放读写时与外部交互的数据,第二寄存器组用于存放从mram3中读取的数据以及在此寄存器组上进行读写操作,第三寄存器组用于存放内部字地址,第四寄存器组用于存放外部字地址。
[0030]
进一步地,读写标志寄存器组的长度为1,写入操作时所述读写标志寄存器组置1或0,读取操作时所述读写标志寄存器组对应地置0或1,所述写回标志寄存器组的长度为1,数据需要写回mram时,所述读写标志寄存器组置1或0,数据无需写回mram时,所述读写标志寄存器组对应地置0或1。并且根据实际电路,读写标志寄存器组根据需要选择将值设置为0或1,所述读写标志寄存器组的默认值为0,只要有写操作则变为1。
[0031]
参见图2,图2是优化的具有ecc功能的mram系统的操作方法流程图,本申请还同时提供了一种优化的具有ecc功能的mram系统的操作方法,系统包括寄存器和纠错电路2(ecc),寄存器10存储有内部数据和内部数据的地址,通过控制电路进行寄存器读写操作、数据写回mram操作并管理数据地址,包括如下步骤:步骤1)读取输入信号,输入信号包括外部读写信号,获取外部字地址;
[0032]
步骤2)比较外部字地址与寄存器中内部字地址,在外部字地址前m位与内部字地址前m位相同或对应时,在寄存器上进行内部数据读写操作;
[0033]
步骤3)在外部字地址前m位与内部字地址前m位不同时,寄存器上内部数据需要写回mram3时,将寄存器上内部数据写回mram3,寄存器10上数据写回mram3后,更新寄存器10中内部字地址,根据新的内部字地址获取新内部字地址的对应数据,在寄存器10上进行读写操作。
[0034]
进一步地,参见图3,图3是优化的具有ecc功能的mram系统的另一个实施例的操作方法流程图,在图3的操作流程中,步骤3)选择为在外部字地址前m位与内部字地址前m位不同时,通过另一组寄存器读入新地址的数据,在新存储器读入新地址的数据后,在将原来的一组寄存器中存放的旧地址的数据存入到mram中。
[0035]
进一步地,在寄存器10上进行内部数据读写时考虑偏移值(offset)情况。
[0036]
进一步地,所述寄存器10包括读写标志寄存器组和写回标志寄存器组,所述读写标志寄存器组的长度为1,写入操作时所述读写标志寄存器组置1或0,读取操作时所述读写标志寄存器组对应地置0或1,所述写回标志寄存器组的长度为1,数据需要写回mram3时,所述读写标志寄存器组置1或0,数据无需写回mram3时,所述读写标志寄存器组对应地置0或1。
[0037]
进一步地,所述寄存器10还包括第一寄存器组、第二寄存器组、第三寄存器组和第四寄存器组,读写时与外部交互的数据存放于所述第一寄存器组,从mram3中读取的数据存放于所述第二寄存器组,且通过所述第二寄存器组在此寄存器组上进行读写操作,内部字地址存放于所述第三寄存器组,外部字地址存放于所述第四寄存器组。
[0038]
进一步地,更新寄存器10中内部字地址包括将外部字地址前m位地址写入内部字地址,读出mram3中对应数据放入内部数据中。
[0039]
进一步地,在步骤2)中,还包括判断内部数据是否更新过,如果更新过才将寄存器上内部数据写回mram3。
[0040]
具体实施例
[0041]
以内部字长a=64位,外部字长b=32位,地址位长m=10,可用信号的地址位长n=12,实际信号的地址位长k=11为例:
[0042]
在编程时,对于信号:outerdata设置为可用外部数据位,长度同内部数据位长a=64。
[0043]
outeraddr为可用信号的地址位,长度为n=12。
[0044]
acutaladdrflag为实际信号的地址/数据长度标志,一种取法为:位长为log2(n-m 1)向上取整,用于确定实际信号的地址长/数据位长,如上n-m=2,内部字地址位比可用信号的地址少2位,所需acutaladdrflag为1og2(3)=2,acutaladdrflag值/数据位长/实际外部地位有三种情况:01,a,m;10,a/2,m 1;11,a/4,m 2。
[0045]
在考虑offset的情况下,即使外部数据位pin脚有a=64位d[0]-d[63],但如果实际外部字长只有16位,无论地址是多少,数据都仅由d[0]-d[15]输入,数据位offset指示与实际外部数据位长、实际信号的地址位长的关系如下表所示:
[0046]
acutaladdrflag实际信号的数据位长实际信号的地址位长数据位offset指示00
---
01a前m位无10a/2前m 1位实际地址位最后1位11a/4m 2位实际地址位最后2位
[0047]
上表中的情形属于一种选择,00/01/10/11具体对应何种情况,可以根据实际需要进行自由选择,本领域技术人员知晓其具体的设置方式,因此在说明书中不再进行其它情况的设置方式的具体说明。
[0048]
寄存器包括第一寄存器组、第二寄存器组、第三寄存器组、第四寄存器组、读写标志寄存器组和写回标志寄存器组,对于上述设定在编程时,将outerdata作为长度为a的寄存器组,用于存放读写时与外部交互的数据;将innerdata作为长度为a的寄存器组,用于存放从mram中读取的数据,以及在此寄存器组上进行读写操作;将inneraddr作为长度为m的寄存器组,为内部字地址;将outeraddr作为长度为m 2的寄存器组,为可用外部字地址;读写作为寄存外部读写信号(read or write,read=0,write=1);将w/b设定为长度为1的寄存器,用于记录是否对当前inneraddr存在过写操作,只要对当前inneraddr进行过写操作,则置1,标志在inneraddr切换之时需要把innerdata写回mram。
[0049]
本发明提供的寄存器技术,在使用ecc的情况下避免频繁读取整个内部字,其包括寄存器、纠错电路2(ecc)和控制电路1,控制电路1包括读写操作模块11、数据写回mram操作模块12以及地址管理模块13,当外界访问一个短字时,把对应的长字整体读至寄存器中,在寄存器区上进行短字的读写操作,如果之后周期外部字地址也能匹配此内部长字地址时,可以继续在寄存器区上进行读写操作,直至新的周期的外部字地址无法匹配,再进行寄存器写回mram,并读入相应的内部字地址的数据至寄存器,从而有效地减小读写mram所需功耗,另外还可以在同一个周期内实现一个完整的读写操作,即本发明在实际使用中,可以有效地降低读写mram及ecc编码解码的频率,有效地降低功耗。
[0050]
附图中描述关系的用于仅用于示例性说明,不能理解为对本专利的限制,显然,本申请的上述实施例仅仅是为清楚地说明本申请所作的举例,而并非是对本申请的实施方式
的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本申请的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本申请权利要求的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜