存储器模块及其写入及读取方法

文档序号:6781988阅读:223来源:国知局
专利名称:存储器模块及其写入及读取方法
技术领域
本发明是有关于一种存储器模块及其写入及读取方法,且特别是 有关于一种可以节省硬件架构的存储器模块及其写入及读取方法。
背景技术
存储器是应用于现今的多种数据储存的用途。其中,确保储存于 存储器中的数据的完整性是存储器设计上很重要的一环,传统上通常
使用错误校正码(Error Correction Code, ECC)来达成此项要求。然而, 由于存储器的容量越来越大,传统用以检测并校正1位错误的错误校 正码,例如汉明码,己经不敷使用,而被可以检测并校正多位错误的 错误校正码所取代。目前最常使用的错误校正码之一是 Reed-Solomon(RS)码。
RS码是一种(N,K)区块码(block code)。亦即是,当输入K个符元 (symbol)的数据时,此K个符元的数据会被编码成一包括N个符元的 字码(codeword)。其中,N个符元会包括2T=N—K个符元的同位码 (parity code),且此些符元均属于一有限域体(fmite field)GF(2m),且每 一个符元均具有m个位。
请参照图1,其绘示乃传统存储器模块的一例的示意图。存储器模 块lOO包括输入缓冲器(inputbuffer)llO、分页缓冲器(pagebuffer)120、 RS码编码器130以及存储单元阵列140。接下来以存储器模块100接 收一笔2m^512字节的数据为例做说明,其中m二9,然并不限于此。 此笔数据会先暂存于输入缓冲器110。若存储器模块100包括64个感 测放大器(sense amplifier),则此笔29字节的数据会以一次64个位的形 式被暂存于分页缓冲器120中。亦即,此笔29字节的数据会被暂存为 64个字组(character),每一个字组包括64个位。
另外,考虑到29字节的数据及其欲附加的错误校正码,故对29字节的数据进行RS码算法时,必须进行RS码间的域体(fidd)转换,亦 即由有限域体GF(2"转换到有限域体GF(2,进行RS码算法。故RS 码编码器130对应于有限域体GF(21Q)。 RS码编码器130依据RS码算 法,将29字节的数据编码成520个符元,每一个符元包括10个位。此 520个符元包括一同位码,同位码包括8个符元。接着,同位码亦以一 次64个位的形式(不足的位补"O"),与暂存于分页缓冲器120中的64 个字组被写入存储单元阵列140。
承续图l,请参照图2,其绘示乃传统存储器模块的另一例的示意 图。存储器模块200包括存储单元阵列210、分页缓冲器220、 RS码 译码器230、互斥或门(exclusive or gate)240以及输出缓冲器(output buffer)250。若存储器模块200具有64个感测放大器,现从存储单元阵 列210输出66个字组,66个字组包括64个字组的数据及2个字组的 同位码,每一个字组包括64个位。64个字组的数据被暂存于分页缓冲 器220,然后以512字节的形式输出至互斥或门240。
存储单元阵列210输出的66个字组,去掉写入时所补的"O",以 522字节的形式传送至RS码译码器230。相对应于图1中的RS码编 码器130, RS码译码器230亦对应于有限域体GF(21Q)。 RS码译码器 230接收522字节之后,依据RS码算法而得到一笔512字节的错误校 正码,此笔512字节的错误校正码被输出至互斥或门240。互斥或门 240将512字节的数据及512字节的错误校正码中相对应的位进行互斥 或的运算,而得到一笔校正后的512字节的数据。输出缓冲器250暂 存并输出此笔校正后的512字节的数据。
上述的存储器模块100及存储器模块200中,由于在实现RS码算 法时,需要进行RS码间的域体转换,且是朝更高阶的域体转换,例如 由有限域体GF(2"转换成有限域体GF(21()),故其所使用的RS码编码 器/RS码译码器内部的电路元件(如乘法器或除法器)会变多,RS码编 码器/RS码译码器的面积上升,导致整体硬件成本增加。

发明内容
有鉴于此,本发明的主要目的在于提供一种存储器模块及其写入
6及读取方法,通过重新排列数据,故可以利用具有较简单电路的RS码
编码器/RS码译码器读写数据,并维持数据的正确性。
根据本发明的第一方面,提出一种存储器模块写入方法,包括,
首先,将一笔2m字节的数据暂存为p个字组,每一个字组包括q个位, 其中m、 p及q为正整数。接着,重排此笔2m字节的数据以得到K个 符元,每一个符元具有m个位,其中K为正整数且K小于2m。然后, 依据一Reed-Solomon(RS)码算法,将K个符元编码成一字码,字码包 括N个符元,字码包括一同位码,同位码包括2T二N—K个符元,其 中N及T为正整数。之后,将p个字组及同位码写入一存储单元阵列。 其中,此些符元均属于一有限域体(fmite field)GF(2m)。
根据本发明的第二方面,提出一种存储器模块,包括分页缓冲器、 编码单元以及存储单元阵列。分页缓冲器将一笔2m字节的数据暂存为 p个字组,每个字组包括q个位,其中m, p及q为正整数。编码单元 用以得到一同位码。编码单元包括第一移位缓存器、Reed-Solomon(RS) 码编码器及第二移位缓存器。第一移位缓存器重排此笔2m字节的数据 以得到K个符元,每一个符元具有m个位,其中K为正整数且K小 于2 RS码编码器,对应于一有限域体GF(2m),将K个符元编码成 一字码,字码包括N个符元,字码包括同位码,同位码包括2T二N— K个符元,其中N及T为正整数。第二移位缓存器,用以重排N个符 元并转换为一笔2m+(2Txm/8)字节之数据,其中(2Txm/8)字节为同位 码。p个字组及同位码被写入存储单元阵列。
根据本发明的第三方面,提出一种存储器模块读取方法,包括, 首先,从一存储单元阵列读取x个字组,每一个字组包括q个位,此x 个字组包括p个字组的数据及x—p个字组的同位码,其中x、 p及q 为正整数。接着,将此p个字组暂存为一笔2m字节的数据,其中m为 正整数。然后,将此x个字组转换为一笔(2m+r)字节的数据,且重排 此笔(2m+r)字节的数据为N个符元(symbol),每一个符元具有m个位, N个符元包括2T个符元的一同位码,其中r、 N及T为正整数。再来, 依据一 Reed-Solomon(RS)码算法及同位码,将N个符元译码成K=N —2T个符元,其中K为正整数。然后,重排此K个符元以得到一笔2m字节的错误校正码。之后,比较此笔2m字节的数据及此笔2m字节 的错误校正码以得到一笔校正后的2m字节的数据。其中,此些符元均
属于一有限域体(fmite field)GF(2m)。
根据本发明的第四方面,提出一种存储器模块,包括存储单元阵 列、分页缓冲器、译码单元以及校正单元。存储单元阵列传送x个字 组,每一个字组包括q个位,此x个字组包括p个字组的数据及x—p 个字组的同位码。存储单元阵列并将此x个字组转换为一笔(2m+r)字 节的数据,其中x、 p、 q、 m及r为正整数。分页缓冲器用以将此p个 字组暂存为一笔2m字节的数据。译码单元用以得到一笔2"^字节的参考 码。译码单元包括第一移位缓存器、Reed-Solomon(RS)码译码器及第 二移位缓存器。第一移位缓存器用以重排此笔(2m+r)字节的数据为N 个符元,每一个符元具有m个位,N个符元包括2T个符元的一同位 码,其中N及T为正整数。RS码译码器,对应于一有限域体GF(2"1), 用以依据同位码将N个符元译码成K二N—2T个符元,其中K为正整 数。第二移位缓存器用以重排K个符元并得到此笔2m字节的参考码。 校正单元用以依据此笔2m字节的参考码校正此笔2m字节的数据以得 到一笔校正后的2m字节的数据。
为让本发明之上述内容能更明显易懂,下文特举一较佳实施例, 并配合所附图式,进一步详细说明如下。


图1绘示传统存储器模块的一例的示意图。
图2绘示传统存储器模块的另一例的示意图。
图3绘示依照本发明较佳实施例的存储器模块的一例的示意图。
图4绘示依照本发明较佳实施例的存储器模块写入方法的流程图。
图5绘示依照本发明较佳实施例的存储器模块的另一例的示意图。
图6绘示依照本发明较佳实施例的存储器模块读取方法的流程图。
主要元件符号说明
100:存储器模块
8110:输入缓冲器 120:分页缓冲器
130: RS码编码器 140:存储单元阵列 200:存储器模块 210:存储单元阵列 220:分页缓冲器
230: RS码译码器 240:互斥或门 250:输出缓冲器 300:存储器模块 310:输入缓冲器 320:分页缓冲器 330:编码单元
332:第一移位缓存器
334: Reed-Solomon(RS)码编码器
336:第二移位缓存器
340:存储单元阵列
500:存储器模块
510:存储单元阵列
520:分页缓冲器
530:译码单元
532:第一移位缓存器
534: Reed-Solomon(RS)码译码器
536:第二移位缓存器
540:校正单元
542:互斥或门
550:输出缓冲器
具体实施例方式
本发明是提供一种存储器模块及其写入及读取方法,通过将数据
重新排列,故可以利用相对应于较低阶有限域体(fmite field)的RS码编 码器/RS码译码器写入/读取数据,且可维持数据的正确性。
请参照图3,其绘示乃依照本发明较佳实施例的存储器模块的一例 的示意图。存储器模块300包括输入缓冲器(input buffer)310、分页缓 冲器(pagebuffer)320、编码单元330以及存储单元阵列340。编码单元 330包括第一移位缓存器332、 Reed-Solomon(RS)码编码器334及第二 移位缓存器336。接下来以存储器模块300接收一笔2m=512字节的数 据为例做说明,其中rn^9,然并不限于此。
输入缓冲器310接收并暂存一笔29 = 512字节的数据。若存储器模 块300包括64个感测放大器(sense amplifier),则此笔29字节的数据会 以一次64个位的形式被暂存于分页缓冲器320中。亦即,此笔29字节 的数据会被暂存为64个字组(character),每一个字组包括64个位。
编码单元330用以得到一同位码。首先,第一移位缓存器330会 重排此笔29字节的数据以得到456个符元,每一个符元具有9个位, 其中最后一个符元不足之位补"O"。因为456小于29,故即使考虑到欲 附加的错误校正码,于进行RS码算法时仍不须进行RS码间的域体 (fidd)转换,亦即可以维持于有限域体GF(2"进行RS码算法。第一移 位缓存器330用以使得RS码编码器334所接收的符元个数减少,而得 以实质上进行RS码算法降阶的动作。
RS码编码器334对应于有限域体GF(29),用以将456个符元编码 成一字码(codeword),此字码包括464个符元。此字码中包括同位码 (parity code),同位码占有8 = 464—456个符元,最多可以校正4个符 元(共36个位)的错误。第二移位缓存器336重排此464个符元,以将 其转换为一笔29+9 = 521字节的数据,其中9字节为同位码。编码单 元330输出此9字节的同位码。此后,此9字节的同位码被转换为2 个字组,最后一个字组不足之位补"O"。此2个字组的同位码与分页缓 冲器320所输出的64个字组的数据一起被写入存储单元阵列340。
请参照图4,其绘示乃依照本发明较佳实施例的存储器模块写入方法的流程图。首先,于步骤410中,接收并暂存一笔2m字节的数据, 其中m为正整数。接着,于步骤420中,将此笔2m字节的数据暂存为 p个字组,每一个字组包括q个位,其中p及q为正整数。同时,于步 骤430中,重排此笔2m字节的数据以得到K个符元,每一个符元具有 m个位,其中K为正整数且K小于2"1。此K个符元属于一有限域体 GF(2m)。步骤430实质上进行RS码算法降阶的动作。
接着,于步骤440中,依据一RS码算法,将K个符元编码成一 字码,此字码包括N个符元,此字码包括一同位码,同位码包括2T二 N—K个符元,其中N及T为正整数。2T个符元的同位码可以校正最 多T个符元的错误。此N个符元亦属于有限域体GF(2"1)。之后,于步 骤450中,将p个字组及同位码写入一存储单元阵列。其中,2T个 符元的同位码系被转换为[2Txm/q] + l个字组,然后才被写入存储单元 阵列。
相较于传统的存储器模块100,上述的存储器模块300及其写入方 法,是利用第一移位缓存器332及第二移位缓存器336将数据重新排 列,故于进行RS码算法时仍不须进行RS码间的域体转换,可以维持 于原有的有限域体进行RS码算法,并维持数据的正确性。故编码单元 330相较于RS码编码器130虽然多了第一移位缓存器332及第二移位 缓存器336,但RS码编码器334与RS码编码器130相较,内部的电 路元件(如占大量面积的乘法器或除法器)较少,可以节省较多面积,降 低整体硬件成本。此外,同位码由10个字节减少至9个字节,亦即每 一个分页的数据量可以多节省8个位。
请参照图5,其绘示乃依照本发明较佳实施例的存储器模块的另一 例的示意图。存储器模块500包括存储单元阵列510、分页缓冲器520、 译码单元530、校正单元540以及输出缓冲器(output buffer)550。译码 单元530包括第一移位缓存器532、 RS码译码器534及第二移位缓存 器536。接下来承续图3做说明,然并不限于此。
假若存储器模块500包括64个感测放大器,存储单元阵列510传 送66个字组,每一个字组包括64个位,此66个字组包括64个字组 的数据及2个字组的同位码。除掉之前于同位码最后一个字组所补的"0",存储单元阵列510并将66个字组转换为一笔(29+10)=522字 节的数据。分页缓冲器520用以将64个字组的数据暂存为一笔29字 节的数据。
译码单元530用以得到一笔29字节的参考码。首先,第一移位缓 存器532会重排此笔522字节的数据为464个符元,每一个符元具有9 个位,464个符元包括8个符元的同位码,最多可以校正4个符元(共 36个位)的错误。因为456小于29,故于进行RS码算法时可适用于有 限域体GF(29),而不会升阶至有限域体GF(21Q)。
RS码译码器534对应于有限域体GF(29),用以依据8个符元的同 位码将464个符元译码成456=464 — 8个符元。除掉之前于最后一个 符元所补的"0",第二移位缓存器536重排此456个符元并得到29字节 的参考码。第二移位缓存器536实质上是重排此456个符元并得知发 生错误的数据的地址,然后据以产生一错误方程式。第二移位缓存器 536依据此错误方程式,以一链式搜索的方式输出此29字节的参考码。 其中,若参考码中的位为"0",则代表分页缓冲器520所输出的数据中 相对应的位为正确,若参考码中的位为"l",则代表分页缓冲器520所 输出的数据中相对应的位为错误。
校正单元540用以依据译码器530所输出的2"^字节的参考码校正 分页缓冲器520所输出的2m字节的数据以得到一笔校正后的2m字节的 数据。校正单元540实质上包括一互斥或门(exclusive or gate)542,用
以将2m字节的数据及2"^字节的参考码中相对应的位进行互斥或的运
算,以得到校正后的2m字节的数据。输出缓冲器550输出校正后的2m 字节的数据。输出缓冲器550实质上用以推动后级电路。
请参照图6,其绘示乃依照本发明较佳实施例的存储器模块读取方 法的流程图。首先,于步骤610中,从一存储单元阵列读取x个字组, 每一个字组包括q个位,此x个字组包括p个字组的数据及x—p个字 组的同位码,其中x、 p及q为正整数。然后,于步骤620中,将此p 个字组暂存为一笔2m字节的数据,其中m为正整数。
同时,于步骤630中,将此x个字组转换为一笔(2m+r)字节的数 据,且重排此笔(2m+r)字节的数据为N个符元(symbo1),每一个符元具有m个位,N个符元包括2T个符元的一同位码,其中r、 N及T为正 整数。此N个符元是属于一有限域体GF(2111)。接着,于步骤640,依 据RS码算法及同位码,将N个符元译码成K二N—2T个符元,其中 K为正整数且K小于2m。此K个符元亦属于有限域体GF(2m)。
再来,于步骤650中,重排此K个符元并得到一笔2m字节的参考 码。然后,于步骤660中,依据2m字节的参考码校正2"^字节的数据以
得到一笔校正后的2m字节的数据。其中,2m字节的数据及2m字节的 参考码中相对应的位是进行互斥或的运算,以得到校正后的2"^字节的
数据。之后,于步骤670中,输出校正后的2m字节的数据。
相较于传统的存储器模块200,上述的存储器模块500及其读取方 法,是利用第一移位缓存器532及第二移位缓存器536将数据重新排 列,故于进行RS码算法时仍不须进行RS码间的域体转换,可以维持 于原有的有限域体进行RS码算法,并维持数据的正确性。故译码单元 530相较于RS码译码器230虽然多了第一移位缓存器532及第二移位 缓存器536,但RS码译码器534与RS码译码器230相较,内部的电 路元件(如占大量面积的乘法器或除法器)较少,可以节省较多面积,降 低整体硬件成本。此外,同位码由10个字节减少至9个字节,亦即每 一个分页的数据量可以多节省8个位。
本发明上述实施例所揭露的存储器模块及其写入及读取方法,是 通过将数据重新排列,于进行RS码算法时不须进行RS码间的域体转 换,故可以利用相对应于较低阶有限域体(fmite fidd)的RS码编码器 /RS码译码器进行写入/读取数据的动作,节省较多面积,降低整体硬 件成本且仍可维持数据的正确性。
综上所述,虽然本发明己以一较佳实施例揭露如上,然其并非用 以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本 发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保 护范围当视权利要求书所界定的范围为准。
1权利要求
1、一种存储器模块写入方法,其特征在于,该方法包括将一笔2m字节的数据暂存为p个字组,每一个字组包括q个位,其中m、p及q为正整数;重排该笔2m字节的数据以得到K个符元,每一个符元具有m个位,其中K为正整数且K小于2m;依据一Reed-Solomon码算法,将该K个符元编码成一字码,该字码包括N个符元,该字码包括一同位码,该同位码包括2T=N—K个符元,其中N及T为正整数;以及将该p个字组及该同位码写入一存储单元阵列;其中,该些符元均属于一有限域体GF(2m)。
2、 根据权利要求1所述的存储器模块写入方法,其特征在于,该 2T个符元的同位码被转换为[2Txm/q]+l个字组,然后被写入该存储 单元阵列。
3、 根据权利要求1所述的存储器模块写入方法,其特征在于,该 方法进一步包括接收并暂存该笔2m字节的数据。
4、 一种存储器模块,其特征在于,该模块包括 一分页缓冲器,用以将一笔2m字节的数据暂存为p个字组,每个字组包括q个位,其中m, p及q为正整数;一编码单元,用以得到一同位码,该编码单元包括一第一移位缓存器,用以重排该笔2m字节的数据以得到K个符元,每一个符元具有m个位,其中K为正整数且K小于2"";一 Reed-Solomon码编码器,对应于一有限域体GF(2"1),用以将 该K个符元编码成一字码,该字码包括N个符元,该字码包括该同位 码,该同位码包括2T二N—K个符元,其中N及T为正整数;及一第二移位缓存器,用以重排该N个符元并转换为一笔2m+ (2Txm/8)字节的数据,其中(2Txm/8)字节为该同位码;以及一存储单元阵列,该p个字组及该同位码被写入该存储单元阵列。
5、 根据权利要求4所述的存储器模块,其特征在于,(2Txm/8)字 节的同位码被转换为[2Txm/q] + l个字组并写入该存储单元阵列。
6、 根据权利要求4所述的存储器模块,其特征在于,该模块进一 步包括q个感测放大器,该分页缓冲器相对应于该q个感测放大器, 将该笔2m字节的数据暂存为p个字组,每一个字组包括q个位。
7、 根据权利要求4所述的存储器模块,其特征在于,该模块进一 步包括一输入缓冲器,用以接收并暂存该笔2m字节的数据。
8、 一种存储器模块读取方法,其特征在于,该方法包括 从一存储单元阵列读取x个字组,每一个字组包括q个位,该x个字组包括p个字组的数据及x—p个字组的同位码,其中x、 p及q 为正整数;将该p个字组暂存为一笔2m字节的数据,其中m为正整数; 将该x个字组转换为一笔(2m+r)字节的数据,且重排该笔(2m+r)字节的数据为N个符元,每一个符元具有m个位,N个符元包括2T个符元的一同位码,其中r、 N及T为正整数;依据一 Reed-Solomon码算法及该同位码,将该N个符元译码成K=N—2T个符元,其中K为正整数且K小于2^重排该K个符元并得到一笔2m字节的参考码;以及依据该笔2m字节的参考码校正该笔2m字节的数据以得到一笔校正后的2m字节的数据;其中,该些符元均属于一有限域体GF(2m)。
9、 根据权利要求8所述的存储器模块读取方法,其特征在于,将该笔2m字节的数据及该笔2m字节的参考码中相对应的位进行互斥或 的运算,以得到该笔校正后的2m字节的数据。
10、 根据权利要求8所述的存储器模块读取方法,其特征在于,该方法进一步包括输出该笔校正后的2m字节的数据。
11、 一种存储器模块,其特征在于,该模块包括 一存储单元阵列,用以传送x个字组,每一个字组包括q个位,该x个字组包括p个字组的数据及x—p个字组的同位码,该存储单元阵列并将该x个字组转换为一笔(2"H"iO字节的数据,其中x、 p、 q、 m 及r为正整数;一分页缓冲器,用以将该P个字组暂存为一笔2m字节的数据; 一译码单元,用以得到一笔2m字节的参考码,该译码单元包括一第一移位缓存器,用以重排该笔(2m+r)字节的数据为N个符 元,每一个符元具有m个位,N个符元包括2T个符元的一同位码, 其中N及T为正整数;一 Reed-Solomon码译码器,对应于一有限域体GF(2m),用以依 据该同位码将该N个符元译码成K二N—2T个符元,其中K为正整数 且K小于2m;及一第二移位缓存器,用以重排该K个符元并得到该笔2"字节的参考码;以及一校正单元,用以依据该笔2m字节的参考码校正该笔2m字节的数据以得到一笔校正后的2m字节的数据。
12、 根据权利要求ll所述的存储器模块,其特征在于,该校正单元包括一互斥或门,用以将该笔2m字节的数据及该笔2m字节的参考码 中相对应的位进行互斥或的运算,以得到该笔校正后的2m字节的数据。
13、 根据权利要求ll所述的存储器模块,其特征在于,该模块进 一步包括q个感测放大器,该存储单元阵列相对应于该q个感测放大 器,传送该x个字组,每一个字组包括q个位。
14、 根据权利要求ll所述的存储器模块,其特征在于,该模块进 一步包括一输出缓冲器,用以输出该笔校正后的2m字节的数据。
全文摘要
本发明公开了一种存储器模块写入方法,包括,首先,将一笔2<sup>m</sup>字节的数据暂存为p个字组,每一个字组包括q个位,其中m、p及q为正整数。接着,重排此笔2<sup>m</sup>字节的数据以得到K个符元,每一个符元具有m个位,其中K为正整数且K小于2<sup>m</sup>。然后,依据一Reed-Solomon(RS)码算法,将K个符元编码成一字码,字码包括N个符元,字码包括一同位码,同位码包括2T=N-K个符元,其中N及T为正整数。之后,将p个字组及同位码写入一存储单元阵列。其中,此些符元均属于一有限域体(finite field)GF(2<sup>m</sup>)。
文档编号G11C29/40GK101447234SQ20081008127
公开日2009年6月3日 申请日期2008年2月26日 优先权日2007年11月27日
发明者黄世昌 申请人:旺宏电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1