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

内存存储装置及数据访问方法与流程

2021-09-10 20:14:00 来源:中国专利 TAG:装置 地说 操作方法 确切 内存


1.本发明涉及电子装置及操作方法,且确切地说涉及一种内存存储装置及数据访问方法。


背景技术:

2.一般来说,可根据错误校正码(error correcting code,ecc)将欲写入到非易失性或易失性内存(non-volatile or volatile memory)的数据编码成码字(code word)。也可通过对应的译码程序来处理从内存读取的码字以还原所述数据。码字通常是数据本身与根据以下产生的校验位(parity bits)的组合:博斯-乔杜里-霍昆格姆(bose-chaudhuri-hocquenghem,bch)码、汉明码(hamming code)、具有额外奇偶校验的汉明码(secded)、里德-索罗门(reed-solomon)码、萧氏(hsiao)码、或连氏(lien)码等。
3.然而,错误校正码引擎的校正能力愈强(即可校正错误位的数量愈多),就必须要愈多的校验位。校验位的数量愈多就会增加所述数据的位开支(overhead)。


技术实现要素:

4.本发明提供一种内存存储装置及数据访问方法,可增加对数据中的错误位的校正能力。
5.本发明的内存存储装置包括内存存储阵列以及内存控制器。内存存储阵列用于存储数据。内存控制器耦接至内存存储阵列。内存控制器用于将欲写入的数据写入内存存储阵列。欲写入的数据包括多个数据位及翻转位(flip bit)。并且,内存控制器对欲写入的数据进行验证操作,以判断数据位是否包括错误位并且记录错误位的信息。内存控制器依据错误位的数量来决定是否将数据位及翻转位的极性倒置(invert),并且记录翻转位的极性(parity)。
6.本发明的内存存储装置的数据访问方法,包括:对欲写入的数据进行验证操作,以判断多个数据位是否包括错误位并且记录错误位的信息,其中欲写入的数据包括数据位及一翻转位,以及错误位的信息包括错误位的数量;依据错误位的数量来决定是否将数据位及翻转位的极性倒置,并且记录翻转位的极性;以及将欲写入的数据写入内存存储阵列。
附图说明
7.包含附图以提供对本发明的进一步理解,且附图并入在本说明书中并且构成本说明书的一部分。附图说明本发明的实施例,并且与描述一起用于解释本发明的原理。
8.图1示出本发明一实施例的内存存储装置的概要示意图。
9.图2示出本发明一实施例的数据访问方法的步骤流程图。
10.图3示出本发明另一实施例的内存存储装置的概要示意图。
11.图4示出本发明一实施例的数据写入方法的步骤流程图。
12.图5示出本发明一实施例的数据读取方法的步骤流程图。
13.附图标号说明
14.100、300:内存存储装置;
15.110:内存控制器;
16.120:内存存储阵列;
17.200:欲写入的数据;
18.230:输入缓冲器;
19.240:缓存器;
20.250:错误校正码引擎;
21.s100、s110、s120、s200、s210、s220、s230、s240、s300、s310、s320、s330、s340、s350、s360:方法步骤。
具体实施方式
22.以下提出多个实施例来说明本发明,然而本发明不仅限于所例示的多个实施例。又实施例之间也允许有适当的结合。
23.图1示出本发明一实施例的内存存储装置的概要示意图。请参考图1,本发明一实施例的内存存储装置100包括内存控制器110及内存存储阵列120。内存存储阵列120用于存储数据。内存控制器110耦接至内存存储阵列120。内存控制器110用于对内存存储阵列120执行写入操作、读取操作及验证操作等类似的操作。
24.在本实施例中,欲写入的数据200包括多个数据位及至少一个翻转位(flip bit)。内存控制器110用于将欲写入的数据200写入内存存储阵列120。内存控制器110对欲写入的数据200进行验证操作,以判断数据位是否包括错误位并且记录错误位的信息。内存控制器110依据错误位的数量来决定是否将数据位及翻转位的极性倒置,并且依据记录翻转位的极性。接着,内存控制器110将欲写入的数据200写入内存存储阵列120。在本实施例中,内存存储阵列120中所存储的数据(已写入数据)的数据位及翻转位的极性可能经过倒置或未经过倒置。
25.在本实施例中,内存控制器110可以为具运算能力的处理器。或者,内存控制器110可以是通过硬件描述语言(hardware description language,hdl)或是其他任意本领域技术人员所熟知的数字电路的设计方式来进行设计,并通过现场可程序逻辑门阵列(field programmable gate array,fpga)、复杂可程序逻辑装置(complex programmable logic device,cpld)或是特殊应用集成电路(application-specific integrated circuit,asic)的方式来实现的硬件电路。在本实施例中,内存存储阵列120的硬件结构及实施方式可以由本技术领域的技术获得足够的教导、建议与实施说明,因此不再重复说明。
26.图2示出本发明一实施例的数据访问方法的步骤流程图。本实施例的数据访问方法至少适用于图1的内存存储装置100,本发明并不加以限制。请参考图1及图2,在步骤s100中,内存控制器110对欲写入的数据200进行验证操作,以判断欲写入的数据200的数据位是否包括错误位并且记录该错误位的信息。在步骤s110中,内存控制器110依据错误位的数量来决定是否将数据位及翻转位的极性倒置,并且记录翻转位的极性。在步骤s120中,内存控制器110将欲写入的数据200写入内存存储阵列120而成为已写入的数据。
27.图3示出本发明另一实施例的内存存储装置的概要示意图。请参考图1及图3,本实
施例的内存存储装置200类似于图1的内存存储装置100,惟两者之间主要的差异例如在于,内存存储装置200还包括输入缓冲器230、缓存器240、错误校正码引擎250。
28.在本实施例中,输入缓冲器230用于存储欲写入的数据200。在内存控制器110对内存存储阵列120进行读取操作时,错误校正码引擎250用于对所读取的数据进行错误校正程序。在本实施例中,错误校正码引擎250的校正能力为n个位,其中n为自然数。在一实施例中,n例如为1~3。缓存器240用于存储错误位的信息。内存控制器110将错误位的信息记录在缓存器240中。缓存器240例如是易失性缓存器/缓冲器(volatile register/buffer),本发明并不加以限制。在本实施例中,输入缓冲器230、缓存器240、错误校正码引擎250的实施方式可以由本技术领域的公知常识获得足够的教导、建议与实施说明,因此不再重复说明。
29.图4示出本发明一实施例的数据写入方法的步骤流程图。本实施例的数据写入方法至少适用于图3的内存存储装置300,本发明并不加以限制。下表1是欲写入的数据200的码字的实施范例,惟本发明不限于此。
30.表1
[0031][0032]
在本实施例中,欲写入的数据200包括32位的信息位(message bits)、18位的校验位及1位的翻转位,即共51个位的码字,其数量及极性仅用于例示说明,本发明不加以限制。在上表1中,第1行(line)表示欲写入的数据200;第2行表示欲写入的数据200的错误位的信息,错误位的信息包括错误位的数量、位置及极性;第3行表示欲写入的数据200的部分位被倒置;第4行表示欲读取的数据的全部位被倒置。
[0033]
请参考图3及图4,在步骤s200中,内存控制器110要对欲写入的数据200进行写入操作,欲写入的数据200如表1中的第1行所例示。在本实施例中,在欲写入的数据200输入内存存储装置200之后,例如先存储在输入缓冲器230以待内存控制器110进行验证操作。在步骤s210中,内存控制器110对欲写入的数据200进行验证操作,以判断数据位是否包括错误位并且记录错误位的信息。在本实施例中,内存控制器110将错误位的信息记录在缓存器240中。错误位的信息包括错误位的数量、位置及极性。在此例中,错误位的数量为6,位置及极性如表1中的第2行所例示。
[0034]
在本实施例中,错误校正码引擎250的校正能力为3个位。在步骤s220中,内存控制器110判断错误位的数量是否大于错误校正码引擎250的校正能力。也就是说,内存控制器110判断错误位的数量是否大于3。在本实施例中,错误位的数量为6。内存控制器110判断错误位的数量是大于3,并且执行步骤s230,以将数据位及翻转位的极性倒置,如表1中的第3
行所例示,并且,内存控制器110记录翻转位的极性为0(第一极性)。因此,内存控制器110会依据错误位的数量来决定是否将数据位及翻转位的极性倒置,并且记录翻转位的极性。
[0035]
在本实施例中,内存控制器110是将翻转位及部分的数据位的极性倒置。举例而言,在步骤s230中,内存控制器110保持错误位的极性为0,并且将错误位写入内存存储阵列120。于此同时,内存控制器110将翻转位及错误位以外的其余数据位的极性倒置,例如从极性1倒置为极性0,接着将被倒置的数据位及翻转位写入内存存储阵列120中,如表1中的第3行所例示。在本实施例中,在表1的第1、2行中,翻转位原来的极性为1,且在步骤s230中被倒置,因此,内存控制器110将翻转位的极性记录为0。
[0036]
另一方面,当错误位的数量不大于3时,内存控制器110执行步骤s240,将欲写入的数据200直接写入内存存储阵列120而不将数据位及翻转位的极性倒置。并且,内存控制器110将翻转位的极性记录为1(第二极性),其中第二极性与第一极性不相同。在表1的第1、2行中,翻转位原来的极性为1,且在步骤s240中没有被倒置,因此,内存控制器110将翻转位的极性记录为1。第一极性、第二极性为0或1不用于限定本发明。
[0037]
图5示出本发明一实施例的数据读取方法的步骤流程图。本实施例的数据读取方法至少适用于图3的内存存储装置300,本发明并不加以限制。请参考图3及图5,在步骤s300中,内存控制器110对内存存储阵列120进行读取操作。在步骤s310中,内存控制器110判断已写入的数据的翻转位的极性,并且依据判断结果来决定是否将已写入的数据的全部的数据位的极性倒置,并且读取极性已倒置的数据。
[0038]
举例而言,当内存控制器110判断翻转位的极性是0(第一极性)时,内存控制器110执行步骤s320,将已写入的数据的全部的数据位的极性倒置,如表1中的第4行所例示,并且读取极性已倒置的数据。也就是说,当翻转位的极性记录为0时,表示内存控制器110在进行读取操作时,会将全部的数据位的极性倒置,且读取存储在内存存储阵列120中的数据(已写入的数据)。因此,即使当错误位的数量大于3时,错误位也可被校正。
[0039]
反之,当内存控制器110判断翻转位的极性是1(第二极性)时,内存控制器110执行步骤s330,不将已写入的数据的数据位的极性倒置,而是直接读取内存存储阵列120中所存储的已写入的数据。也就是说,当翻转位的极性记录为1时,表示内存控制器110在进行读取操作时,不会将数据位的极性倒置,而是直接读取存储在内存存储阵列120中的数据。因此,当错误位的数量不大于3时,错误位可由错误校正码引擎250来校正。
[0040]
接着,错误校正码引擎250接收从内存存储阵列120中所读取的数据(已读取的数据),其极性可能经过倒置或未经过倒置。在步骤s340中,错误校正码引擎250判断已读取的数据的错误位的数量是否大于n,在此例中,n例如为3。当已读取的数据的错误位的数量大于n时,在步骤s350中,内存控制器110判断已读取的数据为失效(fail)。反之,当已读取的数据的错误位的数量不大于n时,在步骤s360中,错误校正码引擎250对已读取的数据进行错误校正程序,且内存控制器110判断经错误校正程序处理的已读取的数据为通过(pass)。
[0041]
总结来说,在本发明的实施例中,内存存储装置包括输入缓冲器,可用来存储欲写入的数据。欲写入的数据包括至少一个翻转位,用来作为指示位(indicator bit),以指示内存控制器在进行数据读取操作时是否要将数据倒置,再读取数据。内存存储装置包括缓存器,可用来记录对数据进行验证操作之后所获得的错误位的信息,其包括错误位的数量、位置及极性。若错误位的数量不大于错误校正码引擎的校正能力,内存控制器直接将欲写
入的数据写入内存存储阵列而不将其极性倒置,并且记录对应的翻转位的极性。若错误位的数量大于错误校正码引擎的校正能力,内存控制器将部分欲写入的数据的极性倒置,并且保留错误位的极性不变,再将数据写入内存存储阵列,并且记录对应的翻转位的极性。接着,在内存控制器要读取数据时,再依据翻转位的极性来决定要不要翻转数据后再读取。利用上述数据访问方法,本发明实施例的内存存储装置可增加对数据中的错误位的校正能力。
[0042]
本领域的技术人员将可以理解的是,在不脱离本发明的范围或精神的情况下,可以对本发明的结构进行各种修改和变化。鉴于前文,希望本发明涵盖对本发明的修改和变化,条件是所述修改和变化落在所附权利要求及其等效物的范围内。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜