基于相变存储器的分页、ecc校验及多位预取方法及其结构的制作方法

文档序号:6399767阅读:233来源:国知局
专利名称:基于相变存储器的分页、ecc校验及多位预取方法及其结构的制作方法
技术领域
本发明涉及基于相变存储器的分页、ECC校验及多位预取方法及其结构。
背景技术
相变存储器(Phase-change memory,简称PCM)是一种新型的非易失性存储器,其基本成分是以硫系化合物为基础的相变材料。利用硫系化合物相变材料存储信息,主要根据硫系化合物在无序(非晶态)与有序(晶态)两态时差距明显的电阻值来实现数据存储的O和I态,其中非晶态的电阻值比晶态的电阻值高出3-4个数量级。硫系化合物能在电流脉冲下出现快速相变,在两个物理状态(晶态和非晶态)之间快速转换,由其构成的相变存储器也因此表现出了可编程的电气特性,能够有效的存储数据。相变存储器具有非易失性,支持随机读写。与现有的常用半导体存储器相比,相变存储器具有优秀的性能:与SDRAM、SRAM相比,相变存储器具有非易失性;与闪存相比,其有更高的读写速度、更低的功耗和更长的使用寿命。另外,随着制造工艺的发展,相变存储器的性能将更加优秀,而SRAM、DRAM和闪存等存储器的制造工艺已经趋近极限,发展逐渐放缓。在当前的研究和应用中,大容量的存储设备通常以Nand Flash或者磁盘等为存储介质,如硬盘和记忆卡等,相变存储器多被用来替换Nor Flash作为ROM存储,这主要是应用了相变存储器的随机读写能力和非易失性,例如三星公司已经在部分手机设计中应用了相变存储器来替换Nor Flash作为ROM。但相变存储器具有更高的读写速度、更长的使用寿命和更低的工作功耗等优点,这使其能够更好的取代Nand Flash和磁盘等存储介质,应用于大容量存储设备中,并表现更优异的性能。目前基于相变存储器的各项研究在大容量存储方面所得突破甚少,相变存储器应用于大容量存储设备面临诸多问题。大容量存储设备的存储介质,需要有合适的分页结构以便于计算机系统对其管理和使用,尤其需要适应于文件系统的最小存储管理单位——簇,但相变存储器在存储原理决定了其硬件结构中并不包含分页结构,仅仅以容量比较大的块(Block)的形式划分。而在目前的各种研究和应用中,作为ROM等存储设备的相变存储器并没有分页方法,因此使相变存储器难以应用于大容量存储设备。应用于大容量存储设备的存储介质必须通过分页管理,比如有IOOG容量的硬盘,(PU和操作系统都不能实现直接管理100G的存储地址,因为它不能对这100G字节的空闲情况都做标记,因为那样又需要另外的100G存储空间来存储这些信息;它只对存储设备的页进行管理,只记录每一页是否被使用了。如果100G容量的存储设备中的页面积为1K,那只需要100M的容量就可以记录每一个页是否被使用了。这是目前的操作系统和文件系统对大容量存储设备管理的标准方法。传统的大容量存储设备都是用NandFlash或者磁性盘片构成的,比如固态硬盘和机械硬盘。这两种存储介质都是有更小的存储单元。比如NandFlash:—块NandFlash芯片包含了很多个块,而每个块又由很多个页组成,这些页的大小有512B、1KB、2KB、4KB。这种结构是NandFlash的组成原理所决定的。NandFlash的特性就是以块为最小单位擦除(NandFlash —旦存入数据就不可再次存入或更改,需要采用擦除操作将已经存储的数据清空,然后才能再次写入数据),以页为最小单位读写,即每次读或者写操作都只能读出一页的数据,或者写入页的数据,一页内的数据可以连续的读写,不同页内的数据不能连续读写。这是NandFlash的结构特性,是其内部的存储阵列本身带有的特性。磁性盘片同样具有这种小容量的存储单元,即扇区,通常容量为512B,这也是其本身的特性。这种小容量的存储单元,能够满足操作系统的需求,构成文件系统簇。而相变存储器的只是由多个块构成的,每个块的容量通常为100K以上,不能满足操作系统的需求,因此要在每一块内划分多个页。目前的NORFlash同样不含有页的概念,不过在构成大容量存储设备时,NandFlash能够替代NorFlashJfW NorFlash并不用来做大容量存储。NandFlash的速度、擦写寿命、功耗等都远不如相变存储器,所以要提升大容量存储设备的性能,使用相变存储器替换NandFlash是有效的方法。而目前并没有可以替代PCM来做大容量存储设备的具有分页方法的存储器。相变存储器作为半导体存储器,其工作时会不可避免的出现一些错误,从而导致计算机系统中致命的问题。这些错误分为两种,一种是硬件损坏导致的硬件错误,这种错误只能通过硬件修复来处理;第二种是软件错误,可能因为在数据传输或存储过程中受到电磁干扰或者电压不稳等因素影响所导致,这类错误相对于硬件错误而言更容易出现,对存储设备的稳定性伤害极大,但可以通过对存储设备的合适管理来大大降低其出现概率。因此,大容量的固态存储设备都需要一定的错误发现和纠正方法,比如奇偶校验、ECC (ErrorCorrecting Code)校验和CRC校验等。其中ECC校验是闪存固态硬盘等大容量存储设备最常用的错误发现和纠正技术,其采用奇偶校验的原理,对由多个字节构成的8位列宽矩阵做奇偶校验并生成一定位数的校验码,以实现发现矩阵中两位错误和更改一位错误的能力。在大容量存储中,通常采用对存储介质某一页的数据做ECC校验的方法来确保存储设备的准确性。在目前的研究中,相变存储器并未应用于大容量的存储中,也没有分页方法,因此也并没有适合于相变存储器的ECC校验方法,因此相变存储器的准确性得不到保证。相变存储器的读写速度虽然已经高于闪存,但仍然不能满足计算机系统对大容量存储设备的速度需求。在DDR SDRAM系列存储器中,通过多位预取(prefetch)技术可以成倍提高DDR的读写速度,在读操作时,先从多片相对低速的DRAM中一次取出多个DRAM位宽的数据,然后以更高的速度将这多个位宽的数据以串行的方式通过一个位宽的数据通道依次传出,写操作时,则将串行输入的一个位宽数据流拆分为多个位宽的数据分别存入多片低速DRAM,从而成倍的提高DDR的传输速度。这种预取技术根据预取位宽个数不同可以分为2-nprefetch(2位预取)、4_nprefetch (4位预取)、8_nprefetch (8位预取)等,分别应用于DDR1、DDR2、DDR3等。当前的相变存储器研究和应用中,并不采用多位预取方法,如R0M,因此其速度远不能满足高速大容量存储设备的需求。

发明内容
本发明的目的是为克服上述现有技术的不足,提供了基于相变存储器的分页、ECC校验及多位预取方法及其结构。本发明基于相变存储器设计了其专用的分页方法,使其更易于在计算机系统中进行管理,可应用于大容量存储设备中;并设计了与分页方法相匹配的ECC校验方法,以提高相变存储器的准确性和安全性;同时还将多位预取技术应用于分页后的相变存储器,使其能够提供更高的读写速率。为实现上述目的,本发明采用下述技术方案:基于相变存储器的分页、ECC校验及多位预取方法,具体步骤如下:I)分页步骤,用于实现确定每一页的面积,进而将相变存储器中的每一块划分为若干个相同大小的连续的页,并按照包含的地址顺序对其编号,作为数据区;同时,在相变存储器中设定一固定区域作为页表区,顺序存储每一页的属性信息、ECC校验码和页号,每个页表项固定的指向唯一的一个确定的页,只有某一页被更改时,该页表项才会更改,从而使得页表区的损耗均衡与数据区一致,便于管理;通过分页方法,操作系统在管理和使用由相变存储器构成的大容量存储设备时,不必像现有的相变存储器那样直接面对巨大而繁琐的地址空间,而是通过管理少量的页,间接管理相变存储器所有的存储单元;2)ECC校验步骤,用于实现ECC校验,以页表区储存每一页的ECC校验码和使用情况的属性信息;3)多位预取步骤,用于通过并行η片m bit位宽的相变存储器,将η片相变存储器的η个m bit位宽数据总线每次传输的数据依次排列,合并为一个m bit位宽的高速串行数据流,并通过上层接口的m bit位宽数据总线依次传输,从而实现了相变存储器数据传输速率的提高,同时,预取的位数还约束了相变存储器的页面积。所述步骤I)的具体方法是:设相变存储器的数据位宽为d,页面积为N Byte,多位预取方法中的预取位数为n,根据ECC校验的最佳数据矩阵构成将ECC校验的基本单位确定为a字节的数据,文件系统的对外存的最小存储管理单位——簇的大小为b Kbyte,根据公式:dXN=b ;N=a* (d + n) e,e为大于等于零的整数;N取符合所述公式的最小值,推算出N的值。操作系统对大容量的存储设备进行管理和应用时,都是将存储设备的存储空间划分成小容量的最小存储管理单位。为了便于操作系统通过簇等基本存储单位对相变存储器构成的存储设备进行管理,需要对相变存储器进行分页(page),使操作系统的最小存储管理单位能够由一个或多个页组成,这样可以避免簇等最小存储管理单位直接面对存储设备巨大的寻址空间,同时为操作系统对存储设备的分区提供了硬件基础。在操作系统中,文件系统等存储设备管理模块的最小存储管理单位大小通常有4KB和8KB等。而ECC校验方法是对某一连续数据块进行校验,这个数据块的大小将影响到ECC校验的准确性和存储器的存储效率:数据块太大将降低ECC校验的准确性,而数据块太小则需要更多的额外存储空间来存储ECC校验值。因此,合理的ECC校验数据块大小为256B或者512B。为了方便对相变存储器进行ECC校验,需要将其每页的大小与ECC校验数据块大小匹配;考虑到现有的相变存储器多为16位数据总线,而ECC校验的数据块行位宽为8位,所以相变存储器的页容量需要设计为ECC校验数据块的两倍。同时,预取技术主要通过将多片相变存储器芯片阵列的数据总线并行读写来实现,在本发明中通过并行8片16位数据总线的相变存储器来实现8位预取。为了使相变存储器的页面积(page size)能够适应操作系统的文件系统块,需要使这8片相变存储器的页面积之和小于或等于文件系统块的大小。已知ECC校验的最佳数据矩阵构成为256行X8列和512行X8列,即每256字节或512字节的数据作为ECC校验的基本单位进行一次校验,而文件系统的对外存的最小存储管理单位——簇的大小为4Kbyte或8Kbyte,将相变存储器的页容量设定为ECC校验数据块的两倍,8片相变存储器的页面积之和小于或等于文件系统块的大小,设分页方法中每页的大小为N,N的单位为Byte,约束条件如下:8父#41(或者81(;N=256*2e,e为大于等于零的整数;N取符合所述公式的最小值,从而推算出N的值为512Byte,即相变存储器的页面积 page size 为 512Byte。为了管理每一个页,需要设计一个页表以确定每个页的具体地址等信息。同时,相变存储器具有有限的写寿命,因此需要设计合适的损耗均衡机制,使每一页都被以相同的频率使用,避免部分页被过于频繁的使用而过早损坏,从而尽可能的提高相变存储器的整体使用寿命,因此需要设计一个虚拟页表,用来存储每一页的虚拟页号,即上层操作系统等授予的页号。物理页号(即每一页的实际页号)和虚拟页号之间需要满足如下映射关系:任意虚拟页号都能找到唯一与之相对应的物理页号,即操作系统等通过其已知的某个虚拟页号,可以访问唯一一个物理页。当某一物理页的数据被改变时,采用区域外更新技术,将这一页在页表中标记为废页,将其新内容存到另一个新页中,并将其虚拟页号更改为原先废页的虚拟页号。在本发明的分页方法中,相变存储器中设定一小部分固定空间用来存储每页的页号和属性信息等,构成一个页表区。页表区为每一个页都保存了一个页表项,包含若干字节,用来保存每一页的ECC校验信息、属性信息和虚拟页号;各个页表项在页表区中按其所指向的物理页的地址依次顺序排列,因此根据页表项的地址即可确定其所指向页的物理地址和物理页号,页表项的顺序号即为物理页号。上层操作系统在访问相变存储器时会给出一个虚拟页号,根据这个虚拟页号,在页表区中能够找到其所对应的页表项,从而确定操作系统所需要的物理页。同时,每个页表项只在其所指向的物理页发生改变时才会回改变,页表区的更改频率与数据区的一致,只需控制数据区的损耗均衡就能保证页表区的损耗均衡,从而解决了以往大容量存储中页表区损耗均衡不能统一管理的问题。所述步骤2)的具体方法是:21)将相变存储器的每个页分成两个ECC校验数据块分别进行ECC校验,每个字的高低字节分别作为两个ECC校验数据块的一行,形成两个8X256的校验矩阵,并各生成一个22位的校验码,在22位校验码中,有6位列校验码和16位行校验码;将ECC校验矩阵分别生成合适的校验码,并在校验码中附加标识码,用来记录该ECC校验矩阵的行在相变存储器数据总线中的位置;当相变存储器的数据位宽大于8位时(通常为8的倍数),每页被分成多个ECC校验矩阵,这多个校验矩阵复用同一个ECC校验模块。添加ECC校验后,相变存储器的准确性比现在没有ECC校验保护的相变存储器提高了很多;22)这22位校验码存储时占用三个连续字节,其中三个字节的最高位恒置1,次高位标示该校验码的行来源:1标示该校验码的行取该页每个字的高字节,O则标示取自低字节。为了便于管理这些校验码,设定校验码存储于的页表中;23 )每个页所分成的两个ECC校验数据块由同一个ECC校验模块进行校验,并采用流水线方式依次轮流通过ECC校验模块。所述步骤23)中,当16位外部数据通过ECC校验模块时,每个字的高字节和低字节依次先后进入ECC校验模块,然后在进入相变存储器时合并为一个字同时进入。所述步骤3)中,多位预取方法是:8片16位相变存储器并行连接成一个16位存储阵列,8片相变存储器的数据总线并发传输数据,即构成了 128位的数据总线,同时将这128位数据总线分8次传给存储阵列的16位数据总线。上述基于相变存储器的分页、ECC检验及多位预取方法所采用的硬件结构,包括:分页模块,用于实现确定每一页的面积,进而将相变存储器中的每一块划分为若干个相同大小的连续的页,并按照包含的地址顺序对其编号;同时,在相变存储器中动态设定一区域作为页表区,顺序存储每一页的属性信息和页号;ECC校验模块,用于实现ECC校验,以页表区储存每一页的ECC校验码和使用情况的属性信息;多位预取模块,用于通过并行η片m bit位宽的相变存储器,将η片相变存储器的η个m bit位宽数据总线每次传输的数据依次排列,合并为一个m bit位宽的高速串行数据流,并通过上层接口的m bit位宽数据总线依次传输。本发明的有益效果是,本发明提供了基于相变存储器的分页方法,填补了目前对这方面研究的空白,使相变存储器能够取代NandFlash应用于高速的大容量存储设备,解决了相变存储器没有合适的页单位这一问题,同时还提供了相应的ECC校验方法,有效的提高了相变存储器的准确性,并应用了多位预取技术来提高相变存储器的读写速度。现有的相变存储器应用中不采用分页方法,没有有效的多位预取方法,数据传输速率远不如本发明。本发明的分页方法是针对大容量存储的,是使用相变存储器替代NandFlash来做大容量存储,而且,相变存储器的速度更快、功耗更低、寿命更长,本发明有效解决了相变存储器在应用于大容量存储设备时的问题。


图1是预取方法的流程图;图2是相变存储器的分页结构图;图3是相变存储器的ECC校验结构图;图4是相变存储器的多位预取结构图;图5是相变存储器的分页方法整体结构图;图6是页表区结构示意图。
具体实施例方式下面结合附图和实施例对本发明进行进一步的阐述,应该说明的是,下述说明仅是为了解释本发明,并不对其内容进行限定。基于相变存储器的分页、ECC校验及多位预取方法,具体步骤如下:
I)分页步骤,用于实现确定每一页的面积,进而将相变存储器中的每一块划分为若干个相同大小的连续的页,并按照包含的地址顺序对其编号,作为数据区;同时,在相变存储器中设定一固定区域作为页表区,顺序存储每一页的属性信息、ECC校验码和页号,每个页表项固定的指向唯一的一个确定的页,只有某一页被更改时,该页表项才会更改,从而使得页表区的损耗均衡与数据区一致,便于管理;通过分页方法,操作系统在管理和使用由相变存储器构成的大容量存储设备时,不必像现有的相变存储器那样直接面对巨大而繁琐的地址空间,而是通过管理少量的页,间接管理相变存储器所有的存储单元;2)ECC校验步骤,用于实现ECC校验,以页表区储存每一页的ECC校验码和使用情况的属性信息;3)多位预取步骤,用于通过并行η片m bit位宽的相变存储器,将η片相变存储器的η个m bit位宽数据总线每次传输的数据依次排列,合并为一个m bit位宽的高速串行数据流,并通过上层接口的m bit位宽数据总线依次传输,从而实现了相变存储器数据传输速率的提高,同时,预取的位数还约束了相变存储器的页面积。其结构图如图4所示。所述步骤I)的具体方法是:已知ECC校验的最佳数据矩阵构成为256行X8列和512行X8列,即每256字节或512字节的数据作为ECC校验的基本单位进行一次校验,而文件系统的对外存的最小存储管理单位——簇的大小为4Kbyte或8Kbyte,将相变存储器的页容量设定为ECC校验数据块的两倍,8片相变存储器的页面积之和小于或等于文件系统块的大小,设分页方法中每页的大小为N,N的单位为Byte,约束条件如下:8父#41(或者81(;N=256*2e,e为大于等于零的整数;N取符合所述公式的最小值,从而推算出N的值为512Byte,即相变存储器的页面积 page size 为 512Byte。操作系统对大容量的存储设备进行管理和应用时,都是将存储设备的存储空间划分成小容量的最小存储管理单位。为了便于操作系统通过簇等基本存储单位对相变存储器构成的存储设备进行管理,需要对相变存储器进行分页(page),使操作系统的最小存储管理单位能够由一个或多个页组成,这样可以避免簇等最小存储管理单位直接面对存储设备巨大的寻址空间,同时为操作系统对存储设备的分区提供了硬件基础。在操作系统中,文件系统等存储设备管理模块的最小存储管理单位大小通常有4KB和8KB等。而ECC校验方法是对某一连续数据块进行校验,这个数据块的大小将影响到ECC校验的准确性和存储器的存储效率:数据块太大将降低ECC校验的准确性,而数据块太小则需要更多的额外存储空间来存储ECC校验值。因此,合理的ECC校验数据块大小为256B或者512B。为了方便对相变存储器进行ECC校验,需要将其每页的大小与ECC校验数据块大小匹配;考虑到现有的相变存储器多为16位数据总线,而ECC校验的数据块行位宽为8位,所以相变存储器的页容量需要设计为ECC校验数据块的两倍。同时,预取技术主要通过将多片相变存储器芯片阵列的数据总线并行读写来实现,在本发明中通过并行8片16位数据总线的相变存储器来实现8位预取。为了使相变存储器的页面积(page size)能够适应操作系统的文件系统块,需要使这8片相变存储器的页面积之和小于或等于文件系统块的大小。分页结构图如图2所示。为了管理每一个页,需要设计一个页表以确定每个页的具体地址等信息。同时,相变存储器具有有限的写寿命,因此需要设计合适的损耗均衡机制,使每一页都被以相同的频率使用,避免部分页被过于频繁的使用而过早损坏,从而尽可能的提高相变存储器的整体使用寿命,因此需要设计一个虚拟页表,用来存储每一页的虚拟页号,即上层操作系统等授予的页号。物理页号(即每一页的实际页号)和虚拟页号之间需要满足如下映射关系:任意虚拟页号都能找到唯一与之相对应的物理页号,即操作系统等通过其已知的某个虚拟页号,可以访问唯一一个物理页。当某一物理页的数据被改变时,采用区域外更新技术,将这一页在页表中标记为废页,将其新内容存到另一个新页中,并将其虚拟页号更改为原先废页的虚拟页号。在本发明的分页方法中,相变存储器中设定一小部分固定空间用来存储每页的页号和属性信息等,构成一个页表区。页表区为每一个页都保存了一个页表项,包含若干字节,用来保存每一页的ECC校验信息、属性信息和虚拟页号;各个页表项在页表区中按其所指向的物理页的地址依次顺序排列,因此根据页表项的地址即可确定其所指向页的物理地址和物理页号,页表项的顺序号即为物理页号。上层操作系统在访问相变存储器时会给出一个虚拟页号,根据这个虚拟页号,在页表区中能够找到其所对应的页表项,从而确定操作系统所需要的物理页。同时,每个页表项只在其所指向的物理页发生改变时才会回改变,页表区的更改频率与数据区的一致,只需控制数据区的损耗均衡就能保证页表区的损耗均衡,从而解决了以往大容量存储中页表区损耗均衡不能统一管理的问题。页表区结构见图6。步骤2)中,所述ECC校验方法的具体方法是: 21)将相变存储器的每个页分成两个ECC校验数据块分别进行ECC校验,参见图3,每个字的高低字节分别作为两个ECC校验数据块的一行,形成两个8 X 256的校验矩阵,并各生成一个22位的校验码,在22位校验码中,有6位列校验码和16位行校验码;将ECC校验矩阵分别生成合适的校验码,并在校验码中附加标识码,用来记录该ECC校验矩阵的行在相变存储器数据总线中的位置;当相变存储器的数据位宽大于8位时(通常为8的倍数),每页被分成多个ECC校验矩阵,这多个校验矩阵复用同一个ECC校验模块。添加ECC校验后,相变存储器的准确性比现在没有ECC校验保护的相变存储器提高了很多;22)这22位校验码存储时占用三个连续字节,其中三个字节的最高位恒置1,次高位标示该校验码的行来源:1标示该校验码的行取该页每个字的高字节,O则标示取自低字节。为了便于管理这些校验码,设定校验码存储于的页表中;23 )每个页所分成的两个ECC校验数据块由同一个ECC校验模块进行校验,并采用流水线方式依次轮流通过ECC校验模块。所述步骤23)中,当16位外部数据通过ECC校验模块时,每个字的高字节和低字节依次先后进入ECC校验模块,然后在进入相变存储器时合并为一个字同时进入。所述步骤3)是:8片16位相变存储器并行连接成一个16位存储阵列,8片相变存储器的数据总线并发传输数据,即构成了 128位的数据总线,同时将这128位数据总线分8次传给存储阵列的16位数据总线。本发明对相变存储器每个芯片的每一页生成两段ECC校验码,每段校验码能纠正半页中的一位错误,发现两位错误,因此每页总体而言能够通过ECC校验纠正大部分的两位错误,发现大部分的四位错误,与当前通用的不加ECC校验的相变存储器相比,显著的提高了安全性和准确性。本发明中还设计了适用于相变存储器的8位预取技术(8-nprefetch),使以此技术设计的大容量存储设备能够实现单片相变存储器8倍的速度。综合上述技术,通过FPGA设计相变存储器的控制器,实现了相变存储器的分页方法、ECC方法和多位预取技术。整体结构图见图5。上述基于相变存储器的分页、ECC检验及多位预取方法所采用的硬件结构,包括:分页模块,用于实现确定每一页的面积,进而将相变存储器中的每一块划分为若干个相同大小的连续的页,并按照包含的地址顺序对其编号;同时,在相变存储器中动态设定一区域作为页表区,顺序存储每一页的属性信息和页号;ECC校验模块,用于实现ECC校验,以页表区储存每一页的ECC校验码和使用情况的属性信息;多位预取模块,用于通过并行η片m bit位宽的相变存储器,将η片相变存储器的η个m bit位宽数据总线每次传输的数据依次排列,合并为一个m bit位宽的高速串行数据流,并通过上层接口的m bit位宽数据总线依次传输。上述虽然结合附图对本发明的具体实施方式
进行了描述,但并非对本发明保护范围的限制,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
权利要求
1.基于相变存储器的分页、ECC校验及多位预取方法,其特征在于,具体步骤如下: 1)分页步骤,用于实现确定每一页的面积,进而将相变存储器中的每一块划分为若干个相同大小的连续的页,并按照包含的地址顺序对其编号,作为数据区;同时,在相变存储器中设定一固定区域作为页表区,顺序存储每一页的属性信息、ECC校验码和页号,每个页表项固定的指向一个确定的页,只有某一页被更改时,该页表项才会更改,从而使得页表区的损耗均衡与数据区一致; 2)ECC校验步骤,用于实现ECC校验,以页表区储存每一页的ECC校验码和使用情况的属性信息; 3)多位预取步骤,用于通过并行η片mbit位宽的相变存储器,将η片相变存储器的η个m bit位宽数据总线每次传输的数据依次排列,合并为一个m bit位宽的高速串行数据流,并通过上层接口的m bit位宽数据总线依次传输。
2.根据权利要求1所述的基于相变存储器的分页、ECC校验及多位预取方法,其特征在于,所述步骤I)的具体方法是:设相变存储器的数据位宽为d,页面积为N Byte,多位预取方法中的预取位数为n ,根据ECC校验的最佳数据矩阵构成将ECC校验的基本单位确定为a字节的数据,文件系统的对外存的最小存储管理单位——簇的大小为b Kbyte,根据公式:dXN=b ; N=a* (d + n) % e为大于等于零的整数; 推算出N的值。
3.根据权利要求1所述的基于相变存储器的分页、ECC校验及多位预取方法,其特征在于,所述步骤2)的具体方法是: 21)将相变存储器的每个页分成两个ECC校验数据块分别进行ECC校验,每个字的高低字节分别作为两个ECC校验数据块的一行,形成两个8 X 256的校验矩阵,并各生成一个22位的校验码,在22位校验码中,有6位列校验码和16位行校验码; 22)这22位校验码存储时占用三个连续字节,其中三个字节的最高位恒置1,次高位标示该校验码的行来源:1标示该校验码的行取该页每个字的高字节,O则标示取自低字节。为了便于管理这些校验码,设定校验码存储于的页表中; 23)每个页所分成的两个ECC校验数据块由同一个ECC校验模块进行校验,并采用流水线方式依次轮流通过ECC校验模块。
4.根据权利要求4所述的基于相变存储器的分页、ECC校验及多位预取方法,其特征在于,所述步骤23)中,当16位外部数据通过ECC校验模块时,每个字的高字节和低字节依次先后进入ECC校验模块,然后在进入相变存储器时合并为一个字同时进入。
5.根据权利要求4所述的基于相变存储器的分页、ECC校验及多位预取方法,其特征在于,所述步骤3)中,8片16位相变存储器并行连接成一个16位存储阵列,8片相变存储器的数据总线并发传输数据,即构成了 128位的数据总线,同时将这128位数据总线分8次传给存储阵列的16位数据总线。
6.上述任一项权利要求所述方法所采用的硬件结构,其特征在于,包括: 分页模块,用于实现确定每一页的面积,进而将相变存储器中的每一块划分为若干个相同大小的连续的页,并按照包含的地址顺序对其编号;同时,在相变存储器中动态设定一区域作为页表区,顺序存储每一页的属性信息和页号;ECC校验模块,用于实现ECC校验,以页表区储存每一页的ECC校验码和使用情况的属性信息; 多位预取模块,用于通过并行η片m bit位宽的相变存储器,将η片相变存储器的η个m bit位宽数据总线每次传输的数据依次排列,合并为一个m bit位宽的高速串行数据流,并通过上层接口的m bit位宽数据总线依次传输。
全文摘要
本发明公开了基于相变存储器的分页、ECC校验及多位预取方法及其结构。本发明基于相变存储器设计了其专用的分页方法,使其易于管理并可应用于大容量存储设备中;设计了与分页方法相匹配的ECC校验方法,以提高相变存储器的准确性和安全性;还将多位预取技术应用于分页后的相变存储器,使其读写速率更高。具体步骤如下1)分页步骤确定相变存储器分页方法中每一页的面积,进而将相变存储器中的每一块划分为若干个相同大小的连续的页,并按照包含的地址顺序对其编号;在相变存储器中动态设定一区域作为页表区,顺序存储每一页的属性信息和页号;2)ECC校验步骤;3)多位预取步骤。
文档编号G06F12/02GK103164343SQ20131006174
公开日2013年6月19日 申请日期2013年2月27日 优先权日2013年2月27日
发明者贾智平, 李新, 刘鹏, 申兆岩 申请人:山东大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1