基于数据循环移位的PCM内存行复用方法技术

技术编号:21453665 阅读:25 留言:0更新日期:2019-06-26 04:41
一种基于数据循环移位的PCM内存行复用方法,包括:内存行的结构优化;记录卡死单元信息的卡死位置缓存;复用卡死单元的写内存行操作;复用卡死单元的读内存行操作。针对PCM存储器写寿命短导致内存行出现卡死单元的问题,摒弃以往弃之不用的做法,转而优化内存行结构,添加记录卡死单元信息的卡死位置缓存;结合卡死位置缓存中的条目信息,采用数据循环移位的方法,将移位后的数据写入存在卡死单元的内存行中,实现内存行的复用。本方法具备存储代价小、计算速度快的优点。

【技术实现步骤摘要】
基于数据循环移位的PCM内存行复用方法所属
本专利技术涉及一种PCM内存行复用方法。
技术介绍
当前计算机中的内存采用DRAM存储技术。随着DRAM存储密度的不断提升,存储单元越来越小,能容纳的电荷越来越少,以至于不能稳定地、足够久地保存数据,因此DRAM技术已经慢慢接近物理极限,需要新的存储技术来代替DRAM。非易失性相变存储器PCM(phasechangememory)是一种新的很有竞争力的存储技术。PCM采用不同的存储原理,即通过相变材料的状态变化而非电荷来存储表示数据,因为不存在DRAM的漏电流效应,可以持久地保存数据,而且PCM的存储密度可以做得更高。每一个PCM存储单元包含一混合金属层,其可以在高电阻的晶体态和低电阻的非晶体态之间切换,即分别表示、存储逻辑值0和1。虽然PCM有高密度、无漏电流等优势,但相比于DRAM,PCM也有自身的劣势。首先,PCM存储器数据读取的速度比较慢,数据写入的速度则更慢于DRAM。另外,PCM存储器数据写寿命较短,即写入数据的次数,一般是108次。因为反复地写入数据,即PCM存储单元中的合金层频繁改变状态,最终混合金属层疲劳损坏,使得存储单元永久性陷入某种状态不能改变,因此不能再写入新的数据,这种现象称为PCM存储单元卡死(Stuck)。虽然不能写入新数据,存储单元仍然可以被读取,只不过读取的是其卡死状态所代表的数据值。与DRAM内存架构类似,PCM单元以二维阵列的形式构成存储块(Bank),大小的常见配置是512×512,横向的512个存储单元构成内存行(Block),纵向的称为列。存储块是内存基本的结构和功能单元,每次读写存储块都是以内存行为单位。因为PCM存储单元写寿命较短,而且不同存储单元的写寿命有明显的差距,意味着一个内存行中写寿命较短的单元最早出现存储单元卡死。一旦内存行中的某个存储单元卡死,那么该内存行就不能正常地写入数据,即时剩余的511个存储单元都还未出现卡死。在发现某个内存行出现卡死存储单元时,如果就将该内存行弃之不用,意味着一个存储单元的卡死就将导致整个内存行都不能继续使用,造成极大浪费。
技术实现思路
本专利技术要克服现有技术的不足,提出基于数据循环移位的PCM内存行复用方法。本专利技术的优点是在PCM内存行出现卡死单元的情况下,不仅不禁用内存行,还能够复用内存行,继续读写数据,并且所提的方法存储代价小、计算速度快。本专利技术的内容和特征就是:摒弃以往弃之不用的做法,转而优化内存行的结构,添加记录卡死单元信息的卡死位置缓存;结合卡死位置缓存中的条目信息,采用循环移位数据值的方法,将数据写入存在卡死单元的内存行中,实现内存行的复用;读取内存行中的数据时,根据标志位信息,再将读取的数据恢复为原始数据。基于数据循环移位的PCM内存行复用方法,包括:1)内存行的结构优化;内存行的结构优化包括每个内存行添加卡死标志位、移位计数器和翻转标志位。卡死标志位用标识内存行当前是否存在卡死单元;移位计数器记录原始数据循环移位多少位后写入内存行;翻转标志位表示数据是否翻转后写入内存行。2)记录卡死单元信息的卡死位置缓存;内存控制器中的卡死位置缓存(StuckCache)记录所有内存行的卡死单元位置和陷入值。卡死位置缓存的基本单位是条目(Entry),包含内存行的一个卡死单元位置和陷入值信息。对于n大小的内存行,需要log2(n)个bit表示卡死位置以及1个bit来存储陷入值。每个内存行通过自身地址来寻找、定位卡死缓存中属于自己的条目。3)复用卡死单元的写内存行操作;内存行的卡死标志位是0,则直接写数据到内存行;内存行的卡死标志位非0,首先使用内存行地址查询卡死位置缓存,获得卡死单元信息后,循环移位数据值使得数据值与卡死单元的陷入值一致,再写入数据到内存行同时设置移位计数器值。如果循环移位数据值不能找到与卡死单元陷入值一致的移位距离值,则翻转数据后再重复循环移位操作。4)复用卡死单元的读内存行操作;为了复用内存行中的卡死单元,内存行中存储的数据需要经过循环移位和翻转操作,因此从内存行读数据的一个重要步骤就是恢复原始数据值。主要根据内存行的翻转标志位和移位计数器的值,对内存行中读出的数据进行翻转操作和逆向循环移位操作,从而将读出的数据值恢复为原始数据值。本专利技术优化内存行的结构,添加记录卡死单元信息的卡死位置缓存;结合卡死位置缓存中的条目信息,采用循环移位数据值的方法,将数据写入存在卡死单元的内存行中,实现内存行的复用。本专利技术具备存储代价小、计算速度快的优点。附图说明图1是本专利技术方法优化后的内存行结构。图2是卡死位置缓存的示意图。具体实施方式下面结合附图,进一步说明本专利技术方法的技术方案。图1是优化后的内存行结构,其中(a)是横向多个内存行(Block)构成的内存块结构,(b)是添加卡死标志位、移位计数器和翻转标志位的内存行。图2是卡死位置缓存,缓存包含多个组(Group),每个组包含大量条目,并且由内存行地址寻址。本专利技术的一种基于数据循环移位的PCM内存复用方法,包含以下的技术步骤:内存块中的每个内存行添加卡死标志位(StuckBit)、移位计数器(ShiftCounter)和翻转标志位(FlipBit)。卡死标志位值为1,表示当前内存行已经出现卡死单元;反之,如果值为0,内存行中还没有出现卡死单元。翻转标志位为1,表示内存行中的数据是经过取反操作后写入的,读取时需要再次取反还原。如果移位计数器非0,表示原始数据经过移位操作后才写入存储行,读取时需要再次逆向移位还原为原始数据。移位计数器和翻转标志位值是0,分别表示内存行中的没有经过移位操作和翻转操作。内存行中的数据移位后被写入,对应的移位距离值要写入到移位计数器。数据的原始的未移位状态对应移位距离值0。如果是n位数据,那么移位距离值的范围是0到n-1。移位距离值具体的计算过程参见写数据到内存行时的操作流程,移位计数器和翻转标志位的值也是在写内存行时被设置。内存控制器中的卡死位置缓存(StuckCache)存储所有内存行的卡死单元位置和陷入值。缓存包含多个组(Group),每个组包含大量条目(Entry),每个条目信息包括三部分:有效标志位(ValidBit)、标签值(Tagvalue)和陷入值(StuckValue)。有效标志位表示当前条目是否有效,值为0说明本条目无效;反之,有效。每个条目对应内存行的一个卡死单元位置和陷入值。当内存行包含多个卡死单元,就对应卡死位置缓存中的多个条目。每个内存行通过自身地址来寻找定位卡死位置缓存中隶属于自己的条目。卡死缓存的更新由内存控制器中已有的数据纠错部件负责。写数据到某个内存行时,如果卡死标志位值是1,则使用该内存行的地址去定位卡死位置缓存中的目标条目。具体的定位过程:将内存行地址分为缓存标签值(CacheTag)和缓存索引值(CacheIndex)两部分,使用缓存索引值定位到目标条目组,读出目标条目组中各个条目的标签值(TagValue),其中与缓存标签值相等的标签值所在的条目就是目标条目,最后读出目标条目的卡死值用于确定当前内存行中的卡死单元。卡死值包含卡死位置和陷入值两部分内容。以包含512个单元的内存行为例,要确定卡死单元的位置需要log2(512)个bit,即9个bit本文档来自技高网
...

【技术保护点】
1.基于数据循环移位的PCM内存行复用方法,包括以下步骤:1)内存行的结构优化;内存行的结构优化包括每个内存行添加卡死标志位、移位计数器和翻转标志位。卡死标志位用标识内存行当前是否存在卡死单元;移位计数器记录原始数据循环移位多少位后写入内存行;翻转标志位表示数据是否翻转后写入内存行。2)记录卡死单元信息的卡死位置缓存;内存控制器中的卡死位置缓存(Stuck Cache)记录所有内存行的卡死单元位置和陷入值。卡死位置缓存的基本单位是条目(Entry),包含内存行的一个卡死单元位置和陷入值信息。对于n大小的内存行,需要log2(n)个bit表示卡死位置以及1个bit来存储陷入值。每个内存行通过自身地址来寻找、定位卡死缓存中属于自己的条目。3)复用卡死单元的写内存行操作;内存行的卡死标志位是0,则直接写数据到内存行;内存行的卡死标志位非0,首先使用内存行地址查询卡死位置缓存,获得卡死单元信息后,循环移位数据值使得数据值与卡死单元的陷入值一致,再写入数据到内存行同时设置移位计数器值。如果循环移位数据值不能找到与卡死单元陷入值一致的移位距离值,则翻转数据后再重复循环移位操作。4)复用卡死单元的读内存行操作;为了复用内存行中的卡死单元,内存行中存储的数据需要经过循环移位和翻转操作,因此从内存行读数据的一个重要步骤就是恢复原始数据值。主要根据内存行的翻转标志位和移位计数器的值,对内存行中读出的数据进行翻转操作和逆向循环移位操作,从而将读出的数据值恢复为原始数据值。...

【技术特征摘要】
1.基于数据循环移位的PCM内存行复用方法,包括以下步骤:1)内存行的结构优化;内存行的结构优化包括每个内存行添加卡死标志位、移位计数器和翻转标志位。卡死标志位用标识内存行当前是否存在卡死单元;移位计数器记录原始数据循环移位多少位后写入内存行;翻转标志位表示数据是否翻转后写入内存行。2)记录卡死单元信息的卡死位置缓存;内存控制器中的卡死位置缓存(StuckCache)记录所有内存行的卡死单元位置和陷入值。卡死位置缓存的基本单位是条目(Entry),包含内存行的一个卡死单元位置和陷入值信息。对于n大小的内存行,需要log2(n)个bit表示卡死位置以及1个bit来存储陷入值。每个内存行通过自身地址来寻找、定位卡死缓存中属于自己的...

【专利技术属性】
技术研发人员:章铁飞傅均
申请(专利权)人:浙江工商大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1