CN103793289B - 用于多位修正的电路和方法 - Google Patents
用于多位修正的电路和方法 Download PDFInfo
- Publication number
- CN103793289B CN103793289B CN201310533144.9A CN201310533144A CN103793289B CN 103793289 B CN103793289 B CN 103793289B CN 201310533144 A CN201310533144 A CN 201310533144A CN 103793289 B CN103793289 B CN 103793289B
- Authority
- CN
- China
- Prior art keywords
- value
- binary
- electronic circuit
- bit
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1072—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明涉及用于多位修正的电路和方法。提供了一种电路,包括包含多个存储单元的存储器,其中,所述存储器的所述多个存储单元中的至少一个被配置成采取至少三个不同状态中的一个。该电路还包括被配置成基于二进制值序列来生成多个三进制输出值的第一子电路BT、被配置成基于所述一个或多个状态值将一个或多个三进制状态值变换成二进制辅助读取值的第二子电路LH以及被配置成生成一个或多个二进制校验位的编码器,其中,所述编码器被配置成将所生成的一个或多个校验位中的每一个存储在不同的存储单元中。
Description
技术领域
本发明涉及纠错和检错,并且特别地涉及用于带有具有超过两个状态的存储单元的存储器的错误修正的设备和方法。
背景技术
纠错和检错技术起重要作用。不仅在通过有线和无线网络的计算机网络和数据传输领域中,而且在存储器内容保护领域中,纠错和检错技术被广泛地采用。
虽然常规存储器包括二进制存储单元,但近年来,能够采用三个不同值的三进制存储单元已变得日益重要。
如果将提供用于带有具有超过两个状态的存储单元的存储器中的错误修正的改进概念,将是非常有益的。
发明内容
根据实施例,提供了一种电路。该电路包括包含多个存储单元的存储器,其中,存储器的所述多个存储单元中的一个或多个均适合于采取至少三个不同状态中的一个。该电路还包括被配置成基于二进制值序列来生成多个输出值的第一子电路BT,其中,所述多个输出值的非空子集具有输出值的非空子集的至少三个不同值中的一个,并且其中,第一子电路BT被配置成将每个输出值作为状态值存储在均适合于采取至少三个不同状态中的一个的一个或多个存储单元中的不同的一个中。该电路还包括第二子电路LH,其被配置成从适合于采取所述至少三个不同状态中的一个的存储单元中的至少一个读取状态值中的一个或多个,其中,所述一个或多个状态值中的每一个具有所述至少三个不同基本值中的一个,并且其中,第二子电路LH此外被配置成基于所述一个或多个状态值来确定二进制辅助读取值。最后,该电路包括编码器,其被配置成基于二进制值序列的至少一些值来生成一个或多个二进制校验位,其中,纠错码包括多个代码字,并且其中,编码器被配置成生成所述一个或多个二进制校验位,使得当二进制辅助读取值和所述一个或多个二进制校验位c1,…,cl无错误时,二进制辅助读取值和所述一个或多个二进制校验位一起形成纠错码的代码字中的一个。编码器被配置成将生成的一个或多个校验位中的每一个存储在存储器的存储单元中的一个或多个中,使得所述一个或多个校验位中的每一个被存储在存储器的存储单元中的不同的一个中,其中,其中存储了校验位的每个存储单元适合于采取至少两个不同状态中的一个。
此外,提供了根据另一实施例的电路。该电路包括包含多个存储单元的存储器,其中,存储器的所述多个存储单元中的一个或多个是均适合于采取三个不同状态中的一个的三进制存储单元。该电路还包括第一子电路BT,其被配置成基于二进制值序列来生成多个输出值,其中,所述多个输出值的非空子集具有三个不同基本值中的一个,其中,第一子电路被配置成将输出值的非空子集的每个输出值作为状态值存储在均适合于采取三个不同状态中的一个的一个或多个三进制存储单元中的不同的一个中,并将其余输出值存储在被配置成存储至少两个不同值的存储单元中。该电路还包括第二子电路LH,其被配置成从存储单元读取状态值中的一个或多个,其中,第二子电路LH此外被配置成基于所述一个或多个状态值来确定二进制辅助读取值。该电路还包括编码器,其被配置成基于二进制值序列的至少一些值来生成一个或多个二进制校验位,其中,纠错码包括多个代码字,并且其中,编码器被配置成生成所述一个或多个二进制校验位,使得当二进制辅助读取值和所述一个或多个二进制校验位c1,…cl无错误时,二进制辅助读取值和所述一个或多个二进制校验位一起形成纠错码的代码字中的一个。编码器被配置成将生成的一个或多个校验位中的每一个存储在存储器的存储单元中的一个或多个中,使得所述一个或多个校验位中的每一个被存储在存储器的存储单元中的不同的一个中,其中,其中存储了校验位的每个存储单元适合于采取至少两个不同状态中的一个。电路还包括修正器Cor、组合电路Vkn以及第三子电路BB,其中,第二子电路LH被配置成向修正器Cor中和组合电路Vkn中馈送二进制辅助读取值。该修正器Cor被配置成从存储器的存储单元中的一个或多个读取一个或多个校验位,其中,修正器Cor被配置成基于二进制辅助读取值和所述一个或多个校验位来生成纠错位,并且其中,修正器Cor被配置成向组合电路Vkn中馈送纠错位。组合电路Vkn被配置成基于纠错位对二进制辅助读取值执行纠错以获得二进制辅助无错误、例如已修正的读取值,并且第三子电路BB被配置成将二进制辅助无错误读取值变换成二进制已修正数据位。
此外,提供了根据另一实施例的电路。该电路被配置成将二进制值序列x1,…xn存储在包括存储单元的存储器Sp中,其中,n≥3,其中,存储器的每个存储单元适合于采取三个状态值中的一个或采取两个状态值中的一个,并且其中,存储器的存储单元中的至少一个适合于采取三个状态值中的一个。该电路包括具有n个二进制输入端和M个输出端的第一子电路BT,其中,第一子电路BT适合于将n个二进制输入值x1,…xn变换成M个输出值z1,…,zm,zm+1,…,zM=BT(x1,…,xn),其中,2≤m≤M,其中,M<n,并且其中,n≥4,其中,输出值z1,…zm中的每一个根据二进制输入值而具有三个不同值中的一个。输出值zm+1,…zM中的每一个根据二进制输入值而具有至多两个不同值中的一个,其中,第一子电路BT具有与存储器Sp的M个数据输入端相连的M个输出端,其中,当向存储器Sp中写入时,第一子电路BT的输出值z1,…zm被存储到存储器的存储单元中,其适合于采取三个状态中的一个,并且其中,输出值zm+1,…zM被存储在适合于采取至少两个状态值中的一个的存储单元中。该电路还包括用于确定二进制辅助读取值的第二子电路LH,其中,第二子电路LH具有M个输入端和k个输出端,其中,当从存储器读取时,第二子电路LH的输入端中的前m个输入端被连接到存储器Sp的存储单元的数据输出端,当写入时,三进制值z1,…zm被写入其中,并且当读取时,从其读出可能错误的三进制值进一步地,第二子电路LH的M-m个输入端被连接到存储单元的数据输出端,当写入时,值zm,…zM被写入其中,并且当读取时,从其读出可能的错误值并且其中,第二子电路LH在其k个输出端处输出k个可能错误的二进制辅助读取值其中k≥m+M。该电路还包括编码器Cod,该编码器Cod具有n个二进制输入端和用于从n个二进制输入值x1,…xn中确定l个二进制校验位c1,…cl的l个二进制输出端,其中c1,…,cl=Cod(x1,…,xn),其中,在编码器Cod的n个二进制输入端处,施加二进制输入值x1,…xn,并且在编码器的l个二进制输出端处,输出由二进制输入值x1,…xn确定的二进制校验位c1,…,cl。编码器被配置成使得其根据二进制输入值来x1,…,xn来确定校验位c1,…,cl,使得位y1,…,yk,c1,…cl形成具有k个数据位和l个校验位的长度k+l的纠错码C的代码字,其中,y1,…,yk是k个二进制无错误辅助读取值。
根据另一实施例,提供了一种方法。该方法包括基于二进制值序列来生成多个输出值,其中,所述多个输出值中的每一个具有至少三个不同基本值中的一个。该方法还包括将每个输出值作为状态值存储在存储器的多个存储单元中的一个或多个存储单元中的不同的一个中,其中,输出值被存储在其中的一个或多个存储单元均适合于采取至少三个不同状态中的一个。该方法还包括从适合于采取所述至少三个不同状态中的一个的存储单元中的至少一个读取状态值中的一个或多个,其中,所述一个或多个状态值中的每一个具有所述至少三个不同基本值中的一个,其中,二进制辅助读取值是基于所述一个或多个状态值而确定的。该方法通过下述来继续:生成一个或多个二进制校验位,使得当二进制辅助读取值和所述一个或多个二进制校验位c1,…cl无错误时,二进制辅助读取值和所述一个或多个二进制校验位一起形成纠错码的代码字中的一个,并且将生成的一个或多个校验位中的每一个存储在存储器的存储单元中的一个或多个中,使得所述一个或多个校验位中的每一个被存储在存储器的存储单元中的不同的一个中,其中,校验位被存储在其中的存储单元中的每一个适合于采取至少两个不同状态中的一个。
在使用附图来详细地描述本发明的实施例之前,应指出的是在图中对相同或功能相等的元件给定相同的参考数字,并且省略了用于被提供了相同参考数字的元件的重复描述。因此,为具有相同参考数字的元件提供的描述是相互可互换的。
附图说明
图1a图示出根据实施例的用于纠错的电路。
图1b图示出根据另一实施例的用于纠错的电路。
图1c图示出根据另一实施例的用于纠错的电路。
图1d图示出根据另一实施例的用于纠错的电路。
图1e图示出根据实施例的用于纠错,此外提供附加纠错的电路。
图1f描绘了根据实施例的具有二进制部分存储器的电路。
图1g图示出根据实施例的用于地址错误的附加检错的实施方式。
图1h图示出根据实施例的电路,其中,数据位被存储在三进制存储器电路的存储单元中。
图1i图示出根据实施例的三进制存储器电路。
图1j图示出根据另一实施例的三进制存储器电路。
图1k图示出根据另一实施例的三进制存储器电路。
图2图示出根据实施例的编码器的实施方式。
图3a-3c描绘了根据实施例的用于二进制输入值到三进制状态值的变换的子电路的实施方式。
图4描绘了根据实施例的用于三进制状态值到二进制辅助读取值的变换的子电路的实施方式。
图5a图示出根据实施例的编码器的实施方式。
图5b描绘了根据实施例的用于线性纠错码的编码器的实施方式。
图5c图示出根据实施例的使用地址位的编码器的实施方式。
图5d描绘了根据实施例的用于使用地址位的奇偶校验的线性纠错码的编码器的实施方式。
图5e示出了根据实施例的用于使用所有地址位的线性纠错码的编码器的实施方式。
图6a图示出根据实施例的修正器的实施方式。
图6b示出了根据实施例的使用地址位的修正器的实施方式。
图7a描绘了根据实施例的二进制辅助读取值到二进制输出值的变化的实施方式。
图7b示出了根据实施例的二进制辅助读取值到二进制输出值的变换的另一实施方式。
图7c是根据实施例的二进制辅助读取值到二进制输出值的变换的另一实施方式。
图8图示出用于解释根据实施例的子电路的功能方框图。
图9a是根据实施例的用于形成二进制辅助写入值和三进制状态值的子电路的实例。
图9b图示出根据实施例的用于二进制输入值到三进制状态值的变换的子电路的实施方式。
图10描绘了根据实施例的用于形成三进制状态值且用于使用辅助写入值来实现编码器的具有8个二进制数据位的本发明电路的实施方式。
图11是根据现有技术的线性码的解码器电路的实例。
图12是根据现有技术的检错电路的实例。
图13是根据现有技术的检错电路和修正器的常见实现的实例。
具体实施方式
图1a图示出根据实施例的电路。
该电路包括包含多个存储单元的存储器Sp 13,其中,存储器的所述多个存储单元中的一个或多个均适合于采取至少三个不同状态中的一个。
因此,存储器的存储单元中的至少一个适合于采取至少三个不同状态中的一个。例如,三进制存储单元适合于采取准确地三个不同状态中的一个。(例如,状态3以表示值0、1或2中的准确地一个)。代替三进制存储单元,该存储器可以包括至少一个多值存储单元,其中,此类多值存储单元可以适合于采取四个或更多不同状态中的一个(例如,该状态可以表示值0、1、2或3中的准确地一个)。存储器包括至少一个存储单元,其适合于采取至少三个不同状态中的一个(例如,能够采取超过三个不同状态中的一个的三进制存储单元或多值存储单元)。然而,存储器还可以包括适合于采取仅两个不同状态中的一个的存储单元,例如该存储器还可以包括一个或多个二进制存储单元。然而,存储器的存储单元中的至少一个适合于采取三个不同状态中的至少一个。然而,在一些实施例中,存储器的所有存储单元可以采取至少三个不同状态中的一个。
图1a的电路包括被配置成基于二进制值序列x1,…,xn来生成多个输出值z1,…,zM的第一子电路BT,其中,所述多个输出值z1,…,zM中的每一个具有至少三个不同基本值中的一个(例如,基本值0、1、2中的一个值),其中,第一子电路BT 11被配置成将输出值z1,…,zM中的每一个存储在均适合于采取所述至少三个不同状态中的一个的一个或多个存储单元中的不同的一个中。存储在存储器13中的每个输出值可以被视为相应存储单元的状态值。由此,存储在存储器中的所述多个输出值表示多个状态值。
此外,电路包括被配置成从存储单元中的至少一个读取状态值中的一个或多个的第二子电路LH 16,存储单元适合于采取至少三个不同状态中的一个,其中,所述一个或多个状态值中的每一个具有至少三个不同基本值中的一个(例如,值0、1、2中的一个),其中,第二子电路LH 16此外被配置成基于一个或多个状态值来确定二进制辅助读取值
此外,电路包括编码器Cod 12,其被配置成基于二进制值序列的至少一些值来生成一个或多个二进制校验位c1,…,cl,其中,纠错码包括多个代码字,并且其中,编码器Cod12被配置成生成一个或多个二进制校验位c1,…,cl,使得当二进制辅助读取值和一个或多个二进制校验位c1,…,cl无错误时,二进制辅助读取值和一个或多个二进制校验位c1,…cl一起形成纠错码的代码字中的一个。
编码器12被配置成将生成的一个或多个校验位中的每一个存储在存储器13的存储单元中的一个或多个中,使得所述一个或多个校验位中的每一个被存储在存储器的存储单元中的不同的一个中,其中,校验位被存储在其中的存储单元中的每一个适合于采取至少两个不同状态中的一个。
基本值可以例如是例如输出值或状态值能够采取的一组值中的所有值,例如所有数。例如,基本值可以是值、例如输出值、状态值或序列的值能够采取的所有数。
如果例如输出值是三进制值,则输出值能够采取三个值中的一个。例如,输出值能够采取值的集合{0,1,2}中的一个值。然后,三个不同的基本值是0、1和2。
如果,例如要确定二进制值序列的值,则例如该序列的值能够采取两个数的集合(例如集合{0,1})中的一个值。然后,该值能够采取两个不同基本值中的一个,并且两个不同基本值是0和1。
在实施例中,均适合于采取至少三个不同状态中的一个的存储器的所述多个存储单元中的一个或多个可以是三进制存储单元。在此类实施例中,第一子电路BT 11可以被配置成生成多个输出值,使得所述多个输出值中的每一个具有准确地三个不同基本值中的一个,其中,第一子电路被配置成将每个输出值存储在三进制存储单元中的不同的一个中。此外,第二子电路LH 16可以被配置成从三进制存储单元中的至少一个读取一个或多个状态值,其中,所述一个或多个状态值中的每一个具有准确地三个不同基本值中的一个,并且其中,第二子电路LH 16此外被配置成基于一个或多个状态值来确定二进制辅助读取值。
图1b图示出根据另一实施例的电路。与图1a的实施例相比,图1b的实施例的电路此外包括修正器Cor 17和组合电路Vkn 18。
第二子电路LH 16被配置成向修正器Cor 17和组合电路Vkn 18中馈送二进制辅助读取值
修正器Cor 17被配置成从存储器的存储单元Spc1,…,Spcl中的一个或多个读取一个或多个校验位其中,修正器Cor 17被配置成基于二进制辅助读取值和所述一个或多个校验值来生成纠错位e1,…,ek。修正器Cor 17被配置成向组合电路Vkn 18中馈送纠错位e1,…,ek。
组合电路Vkn 18被配置成基于纠错位e1,…,ek对二进制辅助读取值执行纠错以获得二进制辅助无错误读取值ycor。
在实施例中,组合电路Vkn 18被配置成执行纠错,使得二进制辅助无错误读取值ycor和一个或多个校验位形成纠错码的代码字中的一个。
图1c图示出根据另一实施例的电路。与图1b的实施例相比,图1c的实施例的电路还包括第三子电路BB 19。第三子电路BB 19被配置成将二进制辅助无错误读取值ycor变换成n个二进制纠错数据位xcor。
图1d图示出根据另一实施例的电路Cir1。电路Cir1可以包括以下子电路:
1.可以存在用于n个二进制输入值或数据位序列x=x1,…,xn到M个输出值序列z=z1,…,zm,zm+1,…,zM的变换的子电路BT 11,
z1,…zm,zm+1…zM=BT(x1,…xn),
其中,适用2≤m≤M且M<n,n≥3。在这里,输出值z1,…,zM中的每一个可以根据二进制值x1,…,xn而采取三个不同值。根据二进制值x1,…,xn,输出值zm+1,…,zM中的每一个可以采取至多两个不同值。子电路BT 11被实现成使得n个二进制输入值的不同序列被变换成M个二进制输出值的不同序列。
2.可以存在具有n个二进制输入端和l个二进制输出端以便确定l个二进制校验位c1,…,cl的编码器Cod 12,其中
c1,...,cl=Cod(x1,...,xn),
其中,在n个二进制输入端处,施加二进制输入值x1,…,xn,并且在二进制输出端处,输出相应的校验位c1,…,cl。
3.可以存在用于存储值z1,…,zM,zm,+1,…,zM和c1,…,cl的存储器Sp 13,其中,用于存储值z1,…,zM的每个存储单元可以采取三个不同的值作为状态,并且其中,用于存储值zm+1,…,zM、c1,…,cl的每个存储单元可以采取至少两个不同的值作为状态。用于存储校验位c1,…,cl的存储单元用Spc1,…,Spcl来指示。在图1d中,图示出存储单元Spc1,…,Spcl可以采取三个不同状态的情况。
对于j=1,…,l而言,当通过具有二进制输入端和三进制输出端以用于二进制值cj到三进制值的变换的子电路btj 14j向存储单元Spcj的数据输入端写入时,载送校验位cj的编码器12的第j输出端被连接。在这里,子电路btj 14j可以将例如被表示为0bin的最小二进制值变换成表示为0ter的最小三进制值,并且可以将表示为1bin的最大二进制值变换成表示为2ter的最大三进制值。子电路btj 14j可以例如还将表示为0bin的最小二进制值变换成表示为2ter的最大三进制值并将表示为1bin的最大二进制值变换成表示为0ter的最小三进制值。
根据实施例,校验位的二进制值cj(j=1,…,l)均被作为已变换值存储在存储器Sp 13的单独存储单元Spcj中,而单独数据位x1,…,xn一般不被存储在三进制存储器的单独存储单元中。
由此,n个数据位序列x1,…,xn被子电路BT变换成M个值z1,…,zm,zm,+1,…,zM,其中M<n,其中,z1,…,zm是均被存储在三进制存储单元中的三进制值。在这里,例如,数据位的三个二进制值xi1、xi2、xi3被子电路BT 11变换成两个二进制值zi1、zi2,使得然后可以将三个数据位的信息存储在两个三进制存储单元中,如稍后将更详细地描述的。
4.可以存在用于从存储器Sp 13读出的可能错误状态值到k个二进制辅助读取值的变换的子电路LH 16
其中,子电路LH 16被配置成使得从存储器读出的M个状态值的不同序列被分配给k个二进制辅助读取值的不同序列,其中,至少两个二进制辅助读取值被分配给每个三进制状态分量并且,至少一个二进制辅助读取值被分配给每个二进制状态分量并且其中,适用k>M。
如已指示的,至少两个二进制辅助读取值被分配给一个三进制值
如果例如一对辅助读取值yi1、yi2被分配给3值状态分量zi,则这对二进制辅助读取值仅采取四个基本上可能二进制值中的三个。
编码器12被实现成使得其确定校验位c1,…,cl,使得当未发生错误时,是纠错码C的代码字。如所述,该对辅助读取值每个仅采取四个基本上可能二进制值中的三个不同值,使得这些对中的每一个可以被分配给三进制存储单元的存储器状态。
与此相反,根据数据位的值,成对校验位,例如[c1,c2]、[c3,c4]、…、采取可能的四个不同值组合中的任何一个,如当考虑类似于线性码的具体代码时能够看到的,并且如稍后将针对实施例所解释的。校验位在这里被确定成使得其根据所使用的代码C而是辅助读取值的相应位的XOR组合。
根据实施例,如上文所指示的,由编码器生成的辅助读取值的校验位均被存储在单独存储单元中,而例如数据位的三元组可以被存储在两个三进制存储单元中,使得存储校验位的存储单元中的错误可以仅影响一个单独的校验位。由于校验位的数目与辅助读取值的数目或数据位相比常常是低的,所以用于将每个校验位存储在单独存储单元中的所需努力也是低的。
5.可以存在具有l个第一二进制输入端和k个第二二进制输入端和k个二进制输出端的修正器Cor 17,其被配置成使得根据在其第一输入端处施加的二进制、可能错误校验位且根据被施加于其k个二进制输入端的其二进制可能错误的辅助读取值修正器Cor 17在其k个二进制输出端处输出k分量修正矢量e=e1,…,ek以便修正辅助读取值的位然后,修正位e1,…,ek在这里被描述为修正错误e=e1,…,ek。
对于j=1,…,l而言,当从存储器Sp 13读取时,存储单元Spcj的数据输出端被连接到子电路tbj 15j的输入端,其输出端被连接到修正器Cor 17的l个第一输入端的第j输入端。子电路tbj 15j将由存储单元Spcj输出的三进制、可能错误值变换成二进制值
6.可以存在具有2·k个二进制输入端和k个二进制输出端的组合电路Vkn 18,当在其前k个输入端处输入且在其第二k个输入端处输入e1,…,ek时,其在其k位输出端输出已修正辅助读取值
其中op1,…,opk均是唯一可逆二进制运算。
在这里,修正器Cor 17和组合电路Vkn 18被实现成使得当存在可以被代码C修正的错误时,适用
位y1,…,yk在这里被由子电路BT 11和LH 16进行的数据位x1,…,xn的后续变换确定为
y1,…,yk=LH[BT(x1,…,xn)]。
7.可以存在用于k位已修正二进制辅助读取值到已修正二进制输出值的变换的子电路BB 19
其中,当存在可以由代码C修正的错误时,适用
子电路BT 11、LH 16和BB 19被配置成使得适用
BB{LH[BT(x1,…,xn)]}=x1,…,xn,
使得由子电路BT 11、LH 16和BB 19进行的数据位x1,…,xn的后续变换再现数据位。
如果未发生错误,则在修正器Cor 17的k个输出端处输出具有的零修正矢量
以下实例提供具有轻微修改的实施例:
编码器Cod 12可以被修改,使得其确定校验位c1,…,cl,使得具有的和形成具有k个数据位和l个校验位的纠错码C的代码字。在这里,且并且相应地且使得辅助读取值的分量和校验位可以被倒相或非倒相地提供。
修正器Cor 17可以被修改,使得其以的形式提供修正矢量,例如通过倒相器被连接到其单独输出端。
如果修正矢量的所有位都是非倒相地提供的且如果所有辅助读取值也被非倒相地提供,则可以将运算opi选择成XOR运算⊕。如果修正矢量的所有位都是倒相地提供的且如果所有辅助读取值被非倒相地提供,则可以将运算opi选择成XNOR运算。
在实施例中,可以进一步可能地交换不同位的顺序。
为了使得本描述尽可能容易理解,下面,将校验位、修正矢量的位和辅助读取值的位认为是非倒相的。在其他实施例中,可以使修正矢量的位和/或辅助读取值的位倒相。
如果纠错码C是可以以(k,k+l)生成矩阵或G矩阵G=(Ik,Pk,1)为特征的线性码,则适用下式
c=c1,…,cl=Cod(x1,…,xn)=(y1,…,yk)·P=LH[BT(x1,…,xn)]·P,
其中,Ik是k维二进制单位矩阵,并且Pk,l是称为代码C的奇偶校验矩阵的二进制(k,l)矩阵。在这种情况下,校验位c1,…,cl还通过已经根据数据位x1,…,xn而确定的无错误辅助读取值y1,…,yk与奇偶校验矩阵P的相乘而得到。如图2中所示,编码器Cod 12则包括线性电路Lin 21,在子电路LH 22和子电路BT 23下游。子电路LH 22与图1d的子电路LH 16相同且子电路BT 23与图1d的子电路BB 11相同。子电路Lin 21实现了无错误辅助读取值y1,…,yk=LH[BT(x1,…xn)]与奇偶校验矩阵P的相乘。
本领域的技术人员可以使LH和BT的电路在一起的串联连接优化。
修正器Cor17被配置成使得在错误的情况下,其可以被辅助读取值中的代码C修正,并且校验位由用于所考虑的纠错码C的辅助读取值的修正位e1,…,ek确定,其中,是由从存储器13读出可能错误状态值的电路LH 16确定的可能错误辅助读取值。位是在从存储器13读出之后可能错误的校验位。
现在,将描述图1d的电路的运行。要存储的二进制数据序列x1,…,xn被施加于子电路BT 11的n位输入端以及编码器Cod 12的n位输入端两者。在其M个输出端处,子电路BT 11输出值z1,…,zM以被存储在存储器Sp 13中。在这里,值z1,…,zM均是模拟值,根据其到三个不同非重叠区间中的一个的分配,其被解释为三个不同值,例如为三进制值。
为了强调这些是三进制或二进制值,三进制值被表示为ter1、ter2、ter3或0ter、1ter、2ter,而二进制值被表示为0bin和1bin。如果三进制值或状态被写入不同的存储单元A和B中或被从其读取,则其还被表示为Ao、A1、A2或Bo、B1、B2以能够更好地将其区别开。
在这里,三进制值0ter,1eer、2ter被表示为使得对应于0ter和1ter的模拟值属于相邻的区间,正如对应于1ter和2ter的模拟值也属于相邻或邻近区间。在这方面,三进制值0ter和1ter如三进制值1ter和2ter一样是相邻值。三进制值0ter和2ter不是相邻的。
三进制值z1,…,zm被存储到具有三进制状态的存储器Sp 13的存储单元中。
子电路BT 11的输出值z1+1,…,zM是均仅采取至多两个不同值的此类输出值。在这里可能的是用于j∈{m+1,…,M}的zj采取三个基本上可能的三个三进制值中的两个,例如,三进制值0ter和2ter或者还有两个二进制值0和1。
如果zj采取二进制值0、1,则可以将zj存储在存储器Sp 13的二进制存储单元中。zj还可以被存储在存储器Sp 13的三进制存储单元中。然后,只有两个不同的三进制值被写入相应的三进制存储单元中。基于可能的错误,原则上,由所考虑的存储单元还可以采取第三存储器状态。
用于存储值z1,…,zm的存储单元因此是其状态可以采取三进制值的存储单元,并且用于存储值zm+1,…,zM的存储单元是其状态可以采取至少两个不同值的存储单元。
在其l位宽输出端处,编码器Cod 12输出l个二进制校验位c1,…,cl,其还被存储在可以采取至少两个不同状态的存储单元中的存储器Sp 13中。
根据实施方式,可以使用二进制存储单元或三进制存储单元,其状态在写入时均仅采取两个不同的值。
在图1d中,图示出由编码器12输出的校验位c1,…,cl被存储在三进制存储单元中的情况。
对于j=1,…,l而言,载送二进制值cj的编码器Cod 12的第j输出被馈送到子电路btj 14j的输入端中,其在其输出端处输出相应的三进制值该三进制值在写入时被存储在存储单元Spcj中。如果不存在错误,则可能的三个三进制值中的仅两个可以作为存储单元Spcj的状态发生。由于错误,第三可能的第三三进制值也可以被存储为状态。
当从存储器Sp 13读取时,可能错误的值和可能错误的校验位被读出,其可能由于可能例如在存储期间发生的错误而不同于相应的正确值。
对于j=1,…,l而言,在读取时载送信号的存储单元Spcj的输出端被连接到子电路tbj 15j的输入端,其将三进制信号变换成二进制信号
如果未发生错误,则由编码器在子电路tbj 15j的输出端处提供校验位cj,该输出端被连接到修正器Cor 17的第一l输入端中的第j输入端。
从存储器Sp 13读出的值被子电路LH 16变换成k个二进制辅助读取值
二进制辅助读取值被馈送到修正器Cor 17的第二k个二进制输入端中。
修正器Cor 17在其k个二进制输出端处输出用于辅助读取值的修正值e=el,…,ek,其在组合电路Vkn 18中被修正成已修正辅助读取值
并且,其被输入到子电路BB 19中。
子电路BB 19将已修正辅助读取值变换成已修正输出值。
如果不存在错误,适用下式
以及
并且已存储序列x的输出是无错误的。
如果在从存储器Sp 13读出的数据中发生错误,则存储序列xcor。的输出是无错误的,如果校验位中的错误和由二进制辅助读取值中的输出值中的错误引起的错误可被代码C修正且如果错误被修正的话。
修正由修正器Cor 17来完成,其形成k位修正值e=e1,…,ek,该修正值取决于从存储器Sp 13读出的校验位和辅助读取值其中,修正器Cor 17形成被与组合电路Vkn 18中的逐分量组合的修正值e1,…,ek,其中,辅助读取值被子电路BB 19变换成n位二进制输出序列
当发生存储器错误时,存储单元的三进制状态可以改变。三进制存储器Sp 13的可能存储器错误的修正如上所述地由使用二进制校验位的二进制辅助读取值的修正来执行。二进制辅助读取值被从具有可能错误的三进制状态值的三进制存储器读出。根据实施例,用于辅助读取值的关联二进制校验位被编码器Cod 12直接由二进制输入序列x1,…,xn形成为二进制校验位c1,…,cl。
根据实施例,其均被作为三进制值存储在单独存储单元中,并且被作为可能错误的三进制值从存储单元Spc1,…,Spcl读出,并被子电路tb1,…,tbl变换成可能错误的校验位
再次地,在这里应注意的是分配给三进制存储器状态的一对二进制辅助读取值仅采取三个不同的二进制值,并且因此可以被作为信息从一个三进制存储单元读出。然而,一对二进制校验位一般地采取四个不同的值,使得根据实施例的二进制校验位均被存储在单独存储单元(三进制或二进制)中。
因此,修正三值存储器中的错误以明智地使用二进制纠错码是可能的,类似于例如二进制汉明码、二进制Hsiao代码、二进制BCH代码以便对三进制存储器中的错误进行纠错。
本领域的技术人员应理解的是类似于例如使电路Cir1中的位倒相的等价变换并不会改变实施例的本质。例如,因此可能的是修正器Corr 17输出部分倒相的分量,而不是输出用于可能错误的辅助读取值的修正矢量e的分量e1,…,ek,例如而不是然后被与组合成的分量e1、分量如果例如组合op1最初被实现为XOR运算或组合,在当分量e1被分量替换时,其将被XNOR运算替换。
同样地,例如可能的是编码器Cod 12输出部分倒相的校验位,其倒相被修正器Corr 17的实现所平衡。
除此之外,例如共同地例如使用硬件描述语言来使不同的电路零件优化是可能的,如在电路设计中惯常的那样。
图1e描绘了根据实施例的包括根据图1d的电路的电路,其被用检错电路Det 120补充。在图1e的实施例中,图1d的组合电路Vkn 18被实现为XOR电路18a。
对应于图1d中的子电路的图1e的子电路被用相同的参考数字来标记,并且上文已经描述。纠错电路Det 120包括k+l个二进制输入端和载送错误信号E的r位宽二进制输出端,其中,r≥1。检错电路的k个第一输入端被连接到子电路LH 16的k个输出端,其载送辅助读取值其他l个二进制输入端被连接到子电路tb1、151…tbl、15l的输出端,其在读取时载送读出校验位
检错电路Det 120的r位宽输出载送错误信号E,其中,错误信号E的值指示是否是代码C的代码字(无可检测错误)或者是否不是代码C的代码字(可检测错误)。
如果例如r=1,则可以将检错电路Det配置成使得E=0指示在辅助读取值和校验位中不存在可检测错误,并且E=1指示在这些位中存在可检测错误。
如果例如r=2,值E=(1,0)或E=(0,1)可以指示未发生可检测错误,并且值E=(0,0)或E=(1,1)可以指示发生可检测错误。
还有可能的是将检错电路Det设计成使得输出错误信号E对于不同类型的错误而言是不同的,例如1位错误、2位错误,…,,如针对不同的代码对于本领域的技术人员而言显而易见的,并且稍后将如针对具体代码所描述的。
检错电路Det 120和修正器Korr 16包括相同的输入值,并且其可以被共同地优化,如在电路设计中惯常的那样,并且可以在设计例如被使用硬件描述语言来执行时由设计编译程序自动地执行。
现在,描述由子电路LH 16进行的以下辅助读取值的形成
例如,可以由子电路LH 16向每个三进制分量分配二进制值的ti元组其中,形成以下辅助读取值
在这里,对于1≤i≤m而言2≤ti且对于m+1≤i≤M而言1≤ti。如果例如ti=2,则可以容易地通过逐个分量的模数转换来实现到二进制值的元组的此类分配。因此,例如,表示模拟物理值且属于某个非重叠区间的分量的三进制值可以简单地被数字化成两个二进制值。
对于q=3个可能值而言,这可以例如简单地使用q-1=2个比较器用参考值R1、R2来执行,其中R2<R1。如果则如果则如果则如果则以这种简单的方式,可以向值分配二进制值的元组,其被表示为辅助读取值,使得适用下式
在这种情况下,模拟值的二进制编码得到这样的特性,即关于模拟值仅略微不同且属于相邻区间的两个模拟值,被分配仅在一个位方面不同的数字元组。此类模拟值到数字值的分配按照惯例被使模拟值数字化的本领域技术人员使用,使得用模拟值的微小变化,关联数字值仅改变一位,这例如在Steinbuch,K.,Rupprecht,W.Nachrichtentechnik,Springer Verlag,Berlin/Heidelberg/New York 1967,page 339中提出。
另一分配可能性可以例如是还通过模数转换向三进制值所述分配二进制辅助读取值的三元组,其中,不同的三元组形成3个为1组(1 of3)的码。
这还可以例如使用与两个参考值R1、R2的两次比较来完成,其中R2<R1。
如果则可以将确定为是1,0,0。如果则可以将确定为是0,1,0,并且如果则可以将确定为是0,0,1。以这种简单方式,然后向三进制值分配二进制值的三元组,使得二进制值的三元组中的每一个包括精确地一个1,并且适用下式
在图1f中图示出的是存储器Sp 13包括可以采取三个不同值的存储单元的三进制存储器Spter 131和可以采取两个不同值的存储单元的二进制存储器Spbin 132。载送二进制校验位c=c1,…,cl的编码器Cod 12的输出端在写入时被直接连接到二进制存储器Spbin的相应存储单元的数据输入端,而在读取时,载送可能错误的校验位的存储单元的数据输出端部被直接连接到修正器Corr 17的相应输入端。
图1f图示出子电路BT 11的输出值z1,…,zm,zm+1,…,zM被存储在三进制存储器Speitern 131的存储单元中,而编码器Cod 12的二进制输出值c1,…,cl被存储在二进制存储器Speibin 132的单元中。在一个实施例中应实现存储,使得子电路BT 11的输出值z1,…,zm,zm+1…zM和编码器Cod 12的关联二进制输出值c1,…,cl被存储在存储器Spter 131和存储器Spbin 132中的同一地址处。
由于值zm+1,…,zM均仅采取两个不同的值,所以在另一实施例中,这些值还可以被存储在二进制存储器Spbin中。
现在将更详细地解释图1a的子电路BT 11的可能实施方式。
图3a示出了针对n=9和M=6的子电路BT 11的一个可能实现。在其九个二进制输入端处,施加二进制值x1、x2,…,x9,并且在其六个三进制输出端处,输出六个三进制值z1,…,z6。该实现由用于实现三个函数f1、f2和f3的三个子电路BT1 31、BT2 32和BT3 33建立,其中,这些子电路均包括三个二进制输入端和两个三进制输出端。
子电路31实现函数f1,其中f1(x1,x2,x3)=z1,z2。
子电路32实现函数f2,其中f2(x4,x5,x6)=z3,z4。
子电路33实现函数f3,其中f3(x7,x8,x9)=z5,z6。
由于存在三个变量的值的八个不同二进制三元组和两个三进制变量的值的九个三元组,所以八个可能二进制输入值均被函数f1、f2和f3映射到八个不同的成对三进制输出值。该映射被执行使得二进制输入值的不同三元组对应于三进制输出值的不同三元组。稍后解释具体实施方式。
图3b示出了针对n=11和M=8的子电路BT 11的另一可能实现。在其十一个二进制输入端处,施加二进制值x1,x2,…,x11,并且在其八个三进制输出端处,输出八个三进制值z1,…,z8。该实现由用于实现四个函数f1、f2、f3和f4的四个子电路BT1 34、BT2 35、BT3 36和BT4 37建立,其中,这些子电路均包括三个二进制输入端和两个三进制输出端。
子弹路34实现函数f1,其中f1(x1,x2,x3)=z1,z2。
子电路35实现函数f1,其中f2(x4,x5,x6)=z3,z4。
子电路36实现函数f3,其中f3(x7,x8,x9)=z5,z6。
子电路37实现函数f4,其中f4(x10,x11,0)=z7,z8。
在图3b中,对于实现函数f4(x10,x11)=z7,z8且取决于两个二进制变量x10、x11的子电路BT4 37而言,描绘了载送恒定值0的另一输入端。由此,将举例说明的是子电路37可以例如从子电路36导出以便实现函数f3,通过例如恒定地将例如第三输入变量的值设置成0,使得适用以下公式:
f4(x10,x11)=f3(x10,x11,0)。
图3c示出了针对n=8且M=6的子电路BT 11的另一可能实现。在其八个二进制输入端处,施加二进制值x1,x2,…,x8,并且在其六个三进制输出端处,输出六个三进制值z1,…,z6。该实现由用于实现函数f和φ的四个子电路BT1 38、BT2 39、BT3 310和BT4 311建立,其中,函数f由子电路38和39实现,并且函数φ由子电路310和311实现。用于实现函数f的子电路38和39包括三个二进制输入端和两个三进制输出端。用于实现函数的子电路310和311均包括一个二进制输入端和可以采取两个不同值的输出端。
子电路38和39实现同一函数f,其中f(x1,x2,x3)=z1,z2和f(x4,x5,x5)=z3,z3,并且子电路310和311均实现函数φ,其中且 在这里适用下式
zm+1=z5且zM=z6.
相应地,可以实现用于实现函数φ的电路310和311,使得,例如且或者且如果则二进制值lbin被用于实现函数φ的子电路310和311变换成三进制值2ter,使得在子电路210和211的各输出端处输出的值z5和z6被存储到其状态采取三进制值的存储器Sp 13的存储单元中。
如果则在子电路的输出端处输出的值z5和z6被存储在采取三进制值的存储器Sp 13的存储单元中以及在采取二进制值的存储单元中。
由子电路LH 16由从存储器Sp 13输出的状态值形成辅助读取值
在图4中图示出在一个实施例中如何可以由M个子电路LH1 161,…,LHm16m,LHm+1,16(m+1),…,LHm16M建立用于形成辅助读取值的子电路LH 16。
在图4中所示的实施例中,对于i=1,…,M而言,二进制的ti元组通过子电路LHi16i与分量相关联,其中,二进制值形成辅助读取值为,
在这里,对于1≤i≤m而言2≤ti且对于m+1≤i≤M而言1≤ti。
首先,考虑1≤i≤M的情况。
如果例如ti=2或者i=1,…,m,则到二进制辅助读取值的元组的此类分配可以简单地由子电路LHi16i通过zi的模数转换来实现。因此,例如,表示模拟物理值且属于某个非重叠区间的分量的三进制值可以被简单地数字化成两个二进制值。
这可以例如简单地使用具有参考值R1、R2的两个比较器来完成,其中R2<R1。如果则如果则如果则如果则由此,二进制值的元组可以被关联至值其中,二进制值被命名为辅助读取值,使得适用下式
还可以完成分配,使得适用下式
另一分配可能性可以例如是由子电路LHi16i向三进制值分配三元组,或者还通过模数转换来分配二进制值其中,不同三元组例如形成3个为1组(1 of 3)的码。
例如,这还可以使用具有两个参考值R1、R2的两个比较器来完成,其中R2<R1,如已描述的,使得适用下式
还可以给三进制值zi分配二进制值的三元组,使得二进制值的每个三元组包含准确地一个0,并且例如适用下式
还可能的是对于1≤i≤m,所有子电路LH1161,…,LHm 16m是相同的。
现在考虑m+1≤j≤M的情况。被输入到子电路LHj中,其中,在写入时仅采取两个不同的值,并且因此当读出时在无错误情况下
取决于zj的不同结果被存储在三进制存储单元中或者在二进制存储单元中。
首先,考虑被存储在具有三个可能状态值的三进制存储单元的情况。虽然被写入的值zj可以仅采取两个不同的值,但是在这种情况下,读出值由于存储器错误而可以采取三个不同的值。
如果二进制值0bin和1bin分别地被图3c中的子电路BT3310或BT4311编码为0ter和2ter,则相应的子电路LHj可以例如实现映射Lj(0ter)=0bin、LHj(1ter)=1bin和LHj(2ter)=1bin。此类实现具有优点,即将三进制值2ter误用成1ter的存储器错误被容忍,因为其在电路Lj的输出端处没有影响。
子电路Lj可以例如使用比较器来实现,该比较器将值zj与参考值R1相比较,使得适用下式
如果另一方面zj被存储在二进制存储器中,存储单元的状态可以仅采取两个不同的值。在这种情况下,被写入二进制存储单元中的值zj以及从此存储单元读出的值是二进制的,使得此读出值可以直接地充当辅助读取值且相应的子电路LHj可以由将其输入端直接地连接到其输出端的线路构成。
图5a图示出编码器Cod 12在功能上如何实现。在功能上,编码器12包括一系列的子电路BB 11、LH 16和子电路BinCod 51,其具有k个二进制输入端和l个二进制输出端。由于已描述了子电路BB 11和LH,所以在这里将仅描述子电路BinCod 51。
子电路BinCod 51被实现成使得其由在其输入端处施加的二进制值y1,…,yk形成l个二进制校验位c1,…cl。在这里,值y1,…,yk是二进制代码BinC的k信息位且c1,…,cl是关联校验位,使得子电路BinCod 51简单地形成代码C的信息位y1,…,yk的相应二进制校验位c1,…,cl。代码C在这里可以是线性或非线性码。
本领域的技术人员可以使用合成工具来使图5a所描述的电路功能优化,如在电路设计中惯常的那样。
在图5b中图示出当纠错码C是线性码时,如何可以在功能上实现编码器Cod 12,该线性码可以由(k,k+l)-G矩阵G=(Ik,Pk,l)来描述。在这里,Ik是(k)维单位矩阵,并且Pk,l是将被称为奇偶校验矩阵的(k,l)矩阵。
与图5a相反,子电路BinCode 51被子电路LinCode 52替换。子电路LinCode 52被实现成使得其由施加于其输入端的值y1,…,yk根据以下关系而形成在其l个二进制输出端处输出的二进制校验位c1,…,cl
c1,…,cl=(y1,…,yk)·P,
可以推断的是子电路LinCode是用于用生成矩阵G=(Ik,Pk,l)由位y1,…,yk来确定线性纠错码C的校验位c1,…,cl的常规电路。在此意义上,位y1,…,yk是代码C的信息位。代码C可以例如是汉明码、Hsiao代码、BCH代码或另一线性纠错码。
本领域的技术人员将例如使用合成工具使由图5b描述的电路在功能上优化,如在电路设计中惯常的那样。
在图5c中图示出当校验位c1,…,cl也取决于写地址a=a1,…,aQ的地址位时,如何可以在功能上实现编码器Cod 12。纠错码C被假设为是可以用(k+q,k+q+l)-G矩阵G=(Ik+q,Pk+q,l)来描述的线性码。在这里,Ik+q是(k+q)维单位矩阵且Pk+q,l是将被称为奇偶校验矩阵的(k+q,l)矩阵。除数据位×=x1,…,xn之外,校验位c1,…,cl还取决于根据地址位a1,…,aQ确定为下式的q位A1,…,Aq:
A1,…,Aq=F(a1,…,aQ)。
在这里,a=a1,…,aQ是地址,在其下面,z1,…,zm,zm+1,…,zM和校验位c=c1,…,cl被写入存储器Sp 13中。Q是写地址a的字宽,并且适用q≤Q。F描述写地址的Q位到q位A1,…,Aq的唯一映射。
在图5c中图示出相应的编码器。在图5c中,子电路Lincode 53包括由子电路LH输出的辅助读取值y1,…,yk被施加到的k个第一输入端以及被连接到子电路FS的q个输出端的q个第二输入端。在其l个输出端处,子电路FS55从地址位a=a1,…,aQ输出由函数F确定的位A1,…,Aq,其中,子电路FS55实现函数F。在其l个二进制输出端处,子电路Lincode 53输出校验位c1,…,cl。
与此相反,图5b的子电路Lincode 52仅包括被施加有辅助读取值y1,…,yk的k个输入端。
针对可以用(k+q,k+q+l)-G-矩阵G=(Ik+q,Pk+q,l)来描述的线性码,根据以下关系来确定l个二进制校验位c1,…,cl
c1,…,cl=(y1,…,yk,A1,…,Aq)·P.
如果例如q=1且A1=a1⊕…⊕aQ,则A1是写地址的奇偶校验位,并且对于校验位c1,…,cl而言,适用下式
c1,…,cl=(y1,…,yk,A1)·P,
其中,G矩阵G是(k+1,k+l+1)矩阵且P是(k+1,l)矩阵。
在图5d中,图示出相应的编码器58。子电路56具有k+1个输入端,其中,k个辅助读取值y1,…,yk被施加于k个第一输入端。第(k+1)输入端被连接到XOR电路57的1位宽输出端,其在其输出端处输出地址位的奇偶校验位A1=a1⊕…⊕aQ。
如果q=Q且A1,…AQ=a1,…aQ,则校验位c1,…,cl取决于写地址a的所有位。针对可以用(k+Q,k+Q+l)-G矩阵G=(Ik+Q,Pk+Q,l)来描述的线性码,可以根据以下关系来确定l个二进制校验位c1,…,cl
c1,…,cl=(y1,…,yk,a1,…,aQ)·P.
在图5e中,图示出相应的编码器510。子电路59 Lincode包括k+Q个输入端,其中,k个辅助读取值y1,…,yk被施加于k个第一输入端。在Q个第二输入端处,施加写地址的地址位a1,…,aQ。
本领域的技术人员应理解的是当校验位也取决于写地址的地址位时,可以使用非线性纠错码来代替线性码。
图6a示出了用于线性纠错码C的修正器的常规实现。可以用相应的H矩阵H来描述具有k信息位(在这里为辅助读取值)以及校验位(在这里为校验位)的长度k+l的代码C,所述H矩阵H可以以系统化形式H=(PT,Il)形式或以非系统化形式存在。
图6a中的用于所考虑的线性纠错码C的修正器Cor 17a包括对于具有l+k个二进制输入端和l个二进制输出端的线性码而言常规的校正子生成器61a和具有l个二进制输入端和k个二进制输出端的解码器62a。在读取时载送校验位的可能错误的值的存储器Sp 13的l个数据输出被馈送到校正子生成器61a的l个第一输入端中,而载送可能错误的辅助读取值的子电路LH 16的k个输出端被连接到校正子生成器61a的其他k个输入端。校正子生成器61a的l个输出端被连接到解码器62a的l个输入端,解码器62a在其k个输出端处输出k分量修正矢量e=e1,…,ek。校正子生成器61a被实现成使得在其l个二进制输出端处,其输出由下式确定的错误校正子s的分量s1,…,sl
如果代码C是k位纠错码,则单独错误校正子被关联到每个M位错误,其中M≤K,并且可以基于该校正子来修正错误。
可以将解码器62a实现为组合电路,其在输入校正子时输出k位修正矢量e=e1,…,ek。如果M≤K,则修正矢量e=e1,…,ek的准确地那些分量等于1,在其处发生错误且其被修正。
该修正在组合电路Vkn 18中进行,该组合电路Vkn 18在图1e的实施例中被实现为XOR电路18a,使得形成
在图6b中图示出如何可以将修正器在功能上实现为Cor 17b,其中,校验位c1,…,cl还取决于写地址a=a1,…aQ的地址位。除辅助读取值和校验位之外,在图6b中,s=s1,…,sl还取决于q位其根据读地址a′的地址位被确定为
在这里,是在其下面从存储器Sp 13读取辅助读取值和校验位的地址。Q是读地址a′的字宽,并且适用下式q≤Q。F描述了读地址的Q位到q位的相同唯一映射,因为其在将写地址a=a1,…,aQ映射到位A1,…,Aq时被使用。
校正子生成器61b现在被实现成使得其在其l个二进制输出端处输出由下式确定的错误校正子s的分量s1,…,sl
如果q=Q且则由下式确定校正子
其中,是完整读地址。
如果适用则校正子取决于读地址的分量的奇偶校验位,并且适用下式
校正子生成器61b包括被施加可能错误的校验位的l个第一输入端。其包括被施加可能错误的辅助读取值的k个第二输入端,并且其包括q个其他输入端,用于由读地址a′的位来确定位的子电路FS 63的输出端被连接到所述q个其他输入端。子电路FS被实现成使得其由读地址a′的位形成位如果例如Q=q且则子电路FS简单地由将其输入端连接到其输出端的q个连接线构成。如果例如q=1且则FS是在其输出端处输出其输入值的奇偶校验值的XOR树。
子电路BB 19是组合电路。其由已修正辅助读取值形成已修正输入值如果未发生错误或者如果发生可以被代码C修正的错误,则xc=x。
现在将针对实施例的不同实施方式更详细地解释子电路BB 19的可能实现。
图7a图示出如何可以将用于12个辅助读取值y1,…,y12和9个二进制输入值x1,…,x9的图1d的子电路BB 19实现为组合子电路BB1 71、BB2 72和BB3 73的并联电路的实施例,所述组合子电路实现均包括4个二进制输入端和3个二进制输出端的组合函数g1、g2和g3。
图8用于解释如何可以确定这些子电路BB1 71、BB2 72和BB3 73。
在图8中,图示出功能方框图,其用于图示出如何可以针对具有9个二进制输入端x1,x2,…,x9的电路Cir1的实施例确定子电路BB 19。
在图8中以及在图3a中,具有9个二进制输入端的子电路BT 11又是从三个子电路BT1 81(图3a中的31)、BT2 82(图3a中的32)和BT3 83(图3a中的33)实现,其实现了均具有三个二进制输入端和两个三进制输出端的函数f1、f2和f3,其载送三进制状态值z1,…,z6。这些三进制状态值z1,…,z6被函数LH1 84,…,LH6变换成二进制辅助读取值y1,…,y12。函数LH184,…,LH6 89是由子电路LH 16实现的函数。二进制读取值y1,…,y12现在又被子电路BB 19再次变换成二进制输入值x1,…,x9。在这方面,确定三个函数g1、g2和g3,每个将四个二进制辅助读取值y1、y2、y3、y4;y5、y6、y7、y8和y9、y10、y11、y12均变换回成三个二进制值x1、x2、x3;x4、x5、x6和x7、x8、x9。子电路BB 19是又包括用于实现函数g1、BB2 811的三个子电路BB1 810、用于实现函数g2的BB2 811和用于实现函数g3的BB3 812的电路。
首先,考虑函数g1的确定。此函数是由f1、LH1和LH2确定的。
在以下表格中,用xi或yi指示的成列的值0、1指示二进制值,而用zk标记的成列的值0、1、2表示三进制值。
描述了实施例,其中,由表1给出函数f1。
表1 (f1(x1,x2,x3))
x1 | x2 | x3 | z1 | z2 |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 1 |
0 | 1 | 0 | 0 | 2 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
1 | 0 | 1 | 1 | 2 |
1 | 1 | 0 | 2 | 0 |
1 | 1 | 1 | 2 | 1 |
根据表1,z1、z2简单地是被解释为二进制数的值x1 x2 x3的三进制表示。
由表2描述函数LH1。
表2 (LH1(z1))
z1 | y1 | y2 |
0 | 0 | 0 |
1 | 0 | 1 |
2 | 1 | 1 |
由表3描述函数LH2。
表3 (LH2(z2))
z2 | y3 | y4 |
0 | 0 | 0 |
1 | 1 | 0 |
2 | 1 | 1 |
现在通过根据表1由输入值x1、x2、x3来确定三进制状态值z1、z2并随后根据表2和表3由状态值z1、z2来确定相应的辅助读取值y1、y2、y3、y4,用函数k1(x1,x2,x3)由输入值x1、x2来确定辅助读取值y1、y2、y3、y4,如表4中所示。
表4 (k1(x1,x2,x3))
x1 | x2 | x3 | y1 | y2 | y3 | y4 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 1 | 0 | 0 |
1 | 0 | 0 | 0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 | 1 | 1 | 1 |
1 | 1 | 0 | 1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 | 1 | 1 | 0 |
现在很容易通过将表4的输出值y1、y2、y3、y4视为函数g1的输入值并通过将表4的关联输入值x1、x2、x3解释为函数g1的输出值来从表4获得函数g1的描述。这样,获得表5,其确定针对表5中所指示的值的三元组的函数g1。针对表5中未指示的所有值,可以随机地确定函数g1。此特征可以被有利地用于函数g1的电路优化。
表5 (g1(y1,y2,y3,y4))
y1 | y2 | y3 | y4 | x1 | x2 | x3 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 0 | 1 |
0 | 0 | 1 | 1 | 0 | 1 | 0 |
0 | 1 | 0 | 0 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 | 1 | 0 |
1 | 1 | 1 | 0 | 1 | 1 | 1 |
子电路BB1 810现在简单地是用于用4个二进制输入y1、y2、y3、y4和3个二进制输出x1、x2、x3来实现函数g1的组合电路,函数g1的运行由表5确定,其中,可以随机地选择用于在表5中未列出的y1、y2、y3、y4的值的输出值。例如,可以将所有这些输出值设置成0。由值的表格给定的函数的实现对于本领域的技术人员而言并不是困难的,例如使用合成工具,并且其在这里将不会被详细地描述。
现在考虑函数g2的确定。此函数由f2、LH3和LH4确定。
假设函数f2由表6给定。
表6 (f2(x4,x5,x6))
x4 | x5 | x6 | z3 | z4 |
0 | 0 | 0 | 1 | 1 |
0 | 0 | 1 | 2 | 1 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 2 | 0 |
1 | 0 | 0 | 0 | 1 |
1 | 0 | 1 | 0 | 2 |
1 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 2 |
由表7描述函数LH3。
表7 (LH3(z3))
z3 | y5 | y6 |
0 | 0 | 0 |
1 | 0 | 1 |
2 | 1 | 1 |
由表8描述函数LH4。
表8 (LH4(z4))
z4 | y7 | y8 |
0 | 0 | 0 |
1 | 0 | 1 |
2 | 1 | 1 |
在这里,LH3=LH4.
现在通过根据表6由输入值x4、x5、x6来确定三进制状态值z3、z4并随后根据表7和8由状态值z3、z4来确定相应的辅助读取值y5、y6、y7、y8,根据如在表9中由函数k2(x4,x5,x6)表示的输入值x4、x5、x6来确定辅助读取值y5、y6、y7。
表9 (k2(x4,x5,x6))
x4 | x5 | x6 | y5 | y6 | y7 | y8 |
0 | 0 | 0 | 0 | 1 | 0 | 1 |
0 | 0 | 1 | 1 | 1 | 0 | 1 |
0 | 1 | 0 | 0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 1 |
1 | 0 | 1 | 0 | 0 | 1 | 1 |
1 | 1 | 0 | 0 | 0 | 0 | 0 |
1 | 1 | 1 | 0 | 1 | 1 | 1 |
现在通过将表9的输出值y5、y6、y7、y8视为函数g2的输入值并通过将表9的关联输入值x4、x5、x6解释为函数g2的输出值简单地从表9获得函数g2的描述。这样,获得描述针对表9中所示的值的函数g2的表10。针对表10中未列出的所有值,函数g2可以采取任意值。此特征可以被有利地用于函数g2的电路优化。
表10 (g2(y5,y6,y7,y8))
y5 | y6 | y7 | y8 | x4 | x5 | x6 |
0 | 1 | 0 | 1 | 0 | 0 | 0 |
1 | 1 | 0 | 1 | 0 | 0 | 1 |
0 | 1 | 0 | 0 | 0 | 1 | 0 |
1 | 1 | 0 | 0 | 0 | 1 | 1 |
0 | 0 | 0 | 1 | 1 | 0 | 0 |
0 | 0 | 1 | 1 | 1 | 0 | 1 |
0 | 0 | 0 | 0 | 1 | 1 | 0 |
0 | 1 | 1 | 1 | 1 | 1 | 1 |
子电路BB2 811现在简单地是用于用四个二进制输入y5、y6、y7、y8和三个二进制输出x4、x5、x6来实现函数g2的组合电路,其运行由表10确定,其中,可以用y5、y6、y7、y8来随机地选择用于在表10中未列出的占用的输出值。例如,可以将所有这些输出值设置成等于0或者还可以等于1。
可以完全类似地确定用于用四个二进制输入y9、y10、y11、y12和三个二进制输出x7、x8、x9来实现函数g3的子电路BB3 812。例如还可以选择等于子电路BB2 811的子电路BB3。
还可以通过选择f1=f2=f3和LH1=LH2=…=LH6并确定如所述的子电路中的一个、类似于例如BB2并选择等于BB2的子电路BB1和BB3来使用相等的子电路BB1、BB2和BB3。
图3b图示出如何可以用来自用于实现函数f1的子电路BT1 34、用于实现函数f2的BT2 35、用于实现函数f3的BT3 36和用于实现函数f4的BT4 37的11个二进制输入值x1,…,x11来实现子电路BT 11。用于实现函数f1、f2和f3的子电路均包括三个二进制输入端,在那里,三个可变二进制值x1、x2、x3;x4、x5、x6和x7、x8、x9均被施加。用于实现函数f4(x10,x11)的子电路BT4包括在被施加有可变值x10和x11的输入端处的仅两个二进制输入。
图7b描绘了由子电路BB1 74、BB2 75、BB3 76和BB4 77进行的子电路BB 19的建立。可以以完全类似的方式来确定用于实现函数g1、g2和g3的相应子电路BB1、BB2、BB3,如针对9个输入值x1,…,x9所描述的。可以简单地通过确定用于实现具有三个输出变量的相应函数的子电路并例如将第三分量设置成常数(例如为0)来确定用于实现函数g4(y13,y14,y15,y16)的子电路BB4。
出于说明的目的,如在表10中针对输入变量y5、y6、y7、y8和针对输出变量x4、x5、x6所示的,使用具有输出变量x10、x11、x12的函数 然后适用下式
表11
(用于函数的表11是与用于函数g2的表10完全类似地确定的。)
现在通过选择表11的行(针对其x12=0)且通过删除所有其余行并通过删除针对x12的列,获取描述由子电路BB4实现的搜索函数g4(y13,y14,y15,y16)的表12。
表12 (g4(y13,y14,y15,y16))
在图3c中图示出如何可以由用于实现函数f的子电路BT1 38、用于实现同一函数f的BT2 39、用于实现函数φ的BT3 310以及用于实现同一函数φ的BT4 311来实施具有8个二进制输入值x1,…,x8的子电路BT。用于函数f的子电路BT1 28和BT2 29均具有三个二进制输入端和两个三进制输出端,而子电路BT3 310和BT4 311均包括用于实现函数φ的单个三进制输出端和单个二进制输入端。
在图7c中图示出实现相应子电路BB1 78、BB2 79、BB3 710和BB4 711的子电路BB19。适用下式BB1=BB2和BB3=BB4。子电路BB1和BB2均用于实现函数g,并且子电路BB3和BB4均用于利用单个二进制输入端和二进制输出端实现函数χ。确定函数g可以如针对函数g1或g2或针对图7a的子电路BB 19所述的那样完全类似地完成,并且因此将不会再次解释。
现在将描述实现函数χ的子电路BB3 710的一个有利实施方式。
在图3c中,子电路BT3 310将二进制值x7形成为三进制值z5。在一个实施例中,可以对关联函数应用下式:
且
如果现在实现对于m=4和M=6的图4中的子电路LH5 165以便确定辅助读取值LH5(z5),使得
LH5(0ter)=0bin,LH5(1tern)=LH5(2ter)=1bin,
则χ(0)=0且χ(1)=1,并且用于实现函数χ的子电路简单地由连接线构成。
所考虑的实施方式对于存储器错误而言是容错的,其中存储在存储器中的三进制值z5=2tern被误用成三进制值被作为三进制值2ter写入三进制存储器中的二进制值1被作为二进制值1bin读出,与存储器Sp 13中的三进制值2ter是否被错误地误用成三进制值1ter无关。同样地,可以将二进制值x7作为z5=x7未改变的二进制值存储到存储器Sp 13中。在这种情况下,还可以将二进制存储单元用于存储z5和z6,而其中m=4的三进制值z1,…,zm被存储在具有三进制状态值的存储单元中。
有利地,存储器Sp 13可以包括三进制部分存储器Spter 131和二进制部分存储器Spbin 132,如图1f中所示,其中,二进制校验位c1,…,cl被作为二进制值存储在二进制部分存储器Spbin 122中,而三进制状态值z1,…,zm和状态值zm+1,…,zM被存储在三进制部分存储器Spter中。
当存储单元Spc1,…,Spcl是三进制存储单元或者二进制存储单元时,现在将再次更详细地解释将由编码器Cod 12生成的校验位c1,…,cl存储在存储器Sp 13中并从存储器Sp 13读出所存储的校验位。
首先,描述这些存储单元是三进制存储单元且可以采取三个不同状态的情况。为了避免混淆,在这里,用0ter、1ter和2ter来指示三进制值,并且用0bin、1bin来指示二进制值。
针对j=1,…,l,在编码器Cod 12的第j输出端处输出的二进制校验位cj被施加于具有二进制输入端和三进制输出端的子电路btj 14j的输入端。子电路btj 14j在其输出端处输出三进制值
在一个实施例中,确定子电路btj(cj),使得适用下式
其中btj(0bin)=0ter且btj(1bin)=2ter.
子电路tb1,…,tbl 15j将从存储器读出的可能错误的三进制值逐个分量地变换成二进制值使得对于j=1,…,l而言,适用下式:
其中tbj(0ter)=0bin以及
tbj(1ter)=tbj(2ter)=1bin。
如果三进制值2在其中被写入值的三进制存储器Sp 13的存储单元中被误用成三进制值1,则此错误对子电路TrTB 16的相应输出没有影响,因为通过函数tbj,三进制值2ter以及三进制值1ter都被映射到二进制值1bin。这是有利的。
如果存储单元Spc1,…,Spcl是二进制存储单元,则子电路bt1,141,…btl 14l以及子电路tb1 151,…,tbl 151可以被实现为其输入端到其各输出端的连接。由编码器Cod 12输出的校验位c1,…,cl然后被二进制地写入存储单元Spc1,…,Spcl中,并被作为在修正器Cor 17的相应输入端处提供的可能错误的二进制校验位读出。
下面,现在将解释在图1g中图示出的修正器Cor 17的特殊实施方式。在图1g中,用17c来指示修正器Cor的特殊实施方式。修正器Cor 17c包括用于输入可能错误的校验位的l个第一输入端、用于输入可能错误的辅助读取值的k个第二输入端和用于输入由读地址的位形成的位的q个其他输入端。修正器Cor 17c还包括用于输出修正矢量e=e1,…,ek以便修正辅助读取值的k个第一输出端和用于输出修正矢量 以便修正从地址位导出的位的q个其他输出端。
载送修正矢量eA的分量的q个输出端被连接到具有q个输入端和单个输出端的OR电路121c的q个输入端,其中,输出端在修正矢量eA的至少一位等于1时输出错误信号EA,其指示读地址a′中的错误。
如果EA=1,则读地址a′不同于写地址a,使得数据不是有效的。
如果q=Q且则由用于每个地址位的修正矢量eA来指示在此位中是否存在错误。如果在图6b中所述的修正器确定错误校正子,则可以在错误校正子对应于地址错误时为地址错误生成错误消息。
还可以实现修正器,使得除用于修正辅助读取值和地址位的修正位e1,…,ek、ea1,…,ekQ之外,其还生成校验位的修正值
根据实施例,提供了一种用于存储二进制数据x1,…,xn并用于用二进制代码C进行纠错的电路,包括以下特征:
1.存在三进制存储器电路13h,包括具有三进制存储单元的三进制存储器Sp 13,其中,二进制数据x1,…,xn在写地址a1,…,aQ处被作为已编码三进制状态z1,…,zM写入具有三个状态的存储单元中,并且其中,编码器12h将某些二进制校验位c1,…,cl写入存储单元中,并且其中,当校验位c1,…,cl是在写地址a1,…,aQ处写入的数据位x1,…,xn的校验位时,校验位也被写入相应数据位的相同写地址处,并且其中,当在适合于采取三个不同值的三进制存储器的存储单元的读地址处读取时,输出可能错误的状态值其被变换成可能错误的二进制辅助读取值并且其中,此外,输出可能错误的校验位并且其中,当写地址等于读地址且当不存在错误时,输出无错误辅助读取值y1,…,yk和无错误校验位c1,…,cl,
2.存在编码器Cod 12h,包括用于输入数据位x1,…,xn的第一n位宽第一输入端和用于输入位A1,…,Aq的另一q位宽输入端和用于输出校验位c1,…,cl的l位宽输出端,其中,位A1,…,Aq是基于写地址a1,…,aQ的位确定的,其中,数据位x1,…,xn以及相应的校验位被写入所述写地址a1,…,aQ下面,其中,编码器被配置成使得根据数据位x1,…,xn和位A1,…,Aq来确定校验位c1,…,cl,使得
y1,…,yk,A1,…,Aq,c1,…,cl
是纠错码C的代码字,并且其中,位A1,…,Aq是根据写地址a1,…,aQ唯一地确定的,使得当地址a1,…,aQ被馈送到所述电路的输入端中时,位A1,…,Aq是具有Q个二进制输入端和q个二进制输出端的组合电路F的输出值,其中,适用q≤Q。
根据特定实施例,q=Q,并且a1,…,aQ=A1,…,AQ。
在另一特定实施例中,A1=a1⊕…⊕aQ。
根据另一实施例,代码C是线性码。
在另一特定实施例中,代码C是具有生成矩阵G=(l,p)的线性码,并且其中,l是(k+q)单位矩阵,并且其中,P是[(k+q),l]奇偶校验矩阵,并且其中,由下式来定义校验位c1,…,cl
c1,…,cl=(y1,…,yk,Aa,…,AQ)·P
图1h图示出实施例,其中,数据位被存储在三进制存储器电路13h的存储单元中,其中,三进制存储器的存储单元被配置成采取三个不同状态(中的一个)。三进制存储器电路的三进制存储器的写和读地址被用于错误处理,例如用于检错和/或纠错。
三进制存储器电路13h包括其中能够将数据位存储为三进制状态的存储单元。
当写入时,n位宽输入线110g上的输入值x1,…,xn被输入到三进制存储器电路13h中,并且l位宽输入线111g上的校验位c1,…,cl被输入到三进制存储器电路13h中。写地址a1,…,aQ在写入时被馈送到Q位宽地址输入线115h中。当读取时,读地址被馈送到Q位宽输入线115h中。当读取时,在k位宽输出线112g上输出二进制辅助读取值并且在l位宽输出线113h上输出校验位
输入线110g此外被连接到编码器Cod 12h的第一n位宽输入端。位置A1,…,Aq在编码器Cod 12h的q位第二输入端处被输入。位A1,…,Aq由组合电路FS 56h根据下式在写地址a1,…,aQ处生成
A1,…Aq=F(a1,…aQ),
其中,F是Q地址位a1,…,aQ到从地址位导出的位A1,…,Aq的唯一映射,如上文已解释的。
载送可能错误的辅助读取值的k位宽输出线112g被连接到组合电路18h的第一k位宽输入端,并且还被连接到修正器Kor 17h的第一k位宽输入端。输出线113h被连接到修正器Kor 17h的第二l位宽输入端,其中,输出线113h载送可能错误的校验位电路55h的q位宽输出端被连接到修正器Kor 17h的第三q位宽输入端,其中,在电路55h的q位宽输出端上输出q位宽值二进制读地址在电路FS55h的Q位宽输入端处被馈送到电路FS 55中。
电路FS 55h的功能等于电路FS 56h的功能,这是对电路55h以及电路56h两者给定名称“FS”的原因。
修正器Kor 17h在其k位宽输出端处输出修正矢量e1,…,ek,其被连接到作为修正电路的组合电路18h的第二输入端。在图1h中,修正电路被实现为XOR电路。在其他实施例中,可以实现其他实施方式,诸如例如采用XNOR电路。
在图1h的实施例中,XOR电路18h在其k位宽输出端处输出已修正辅助读取值
其被组合电路BB 19h变换成已修正数据值
如果适用使得写地址等于读地址,并且如果在三进制存储器电路13h、编码器12h和电路FS 56h中不存在错误,则在线路112g上输出的辅助读取值被称为正确辅助读取值y1,…,yk。
在输出线113h上输出的可能错误的校验位由校验位c1,…,cl定义。那些校验位c1,…,cl在编码器12h的输出端111g处输出,并且在写地址a1,…,aQ处被存储在三进制存储器电路13h的存储单元中并在读地址处读出。校验位可以被存储在可以采取三个不同状态中的一个的存储单元中以及可以采取两个不同状态中的一个的存储单元中。
编码器Cod 12h被配置成使得其生成校验位c1,…,cl,使得
y1,…,yk,A1,…,Aq,c1,…,cl
是纠错码C的代码字。
如果代码C是具有生成矩阵G=(I,P)的线性码,其中,I是(k+q)单位矩阵,并且其中,P是[(k+q),l]奇偶校验矩阵,则可以将c1,…,cl确定为
c1,…,cl=(y1,…,yk,Aa,…,AQ)·P.
修正器Kor 17h输出修正矢量e=e1,…,ek,使得当确实发生的错误可被纠错码C修正时,适用
如果代码C是例如1位纠错码,则例如辅助读取值中或校验码中的每个单个位错误能够被有效地修正。如果代码C是2位纠错码,则辅助读取值中或校验位中的每个2位错误能够被修正。
由图1i图示出图1h的三进制存储器电路13h的第一特定实施例。
三进制存储器电路13h包括用于将二进制数据位x1,…,xn变换成将被存储在三进制存储器Sp 13的存储单元中的状态值z1,…,zM的子电路BT 11,其中,三进制存储器Sp 13包括具有三进制状态值的存储单元,并且其中,三进制存储器Sp 13包括存储单元Spc1,…,Spcl,其具有用于存储二进制校验位c1,…,cl的至少两个状态、以及用于从存储器Sp 13读出的将可能错误的三进制状态值变换成二进制辅助读取值的子电路LH 16。存储单元Spc1,…,Spcl是二进制存储单元是可能的。
在n位宽输入线110处输入了数据位x1,…,xn。在k位宽输出线112h上输出了可能错误的辅助读取值在l位宽输出线113h上输出了可能错误的校验位由于已参考图1a描述了子电路BT 11、Sp 13和LH 16,所以将不会再次对其进行解释。
由图1j图示出图1h的三进制存储器电路13h的第二特定实施例。图1j中的三进制存储器电路包括用于将对状态值z1,…,zM中的二进制数据位进行变换的子电路BT 11、在这里包括用于存储校验位的三进制存储单元Spc1,…,Spcl的存储器Sp 13,其中,校验位c1,…,cl被子电路bt1 141,…,btl 14l变换成三进制值用于将从存储器Sp 13读出的可能错误的状态值变换成可能错误的辅助读取值和用于对从存储单元Spc1,…,Spcl读出的可能错误的校验位进行变换的子电路tb1 151,…,tbl 15l。
在n位宽输入线110h处输入了数据位x1,…,xn。在l位宽输入线111h处输入了校验位c1,…,cl。在k位宽输出线112h处输出可能错误的辅助读取值在l位宽输出线113h处输出了可能错误的校验位 已参考图1a和1d描述了所采用的子电路,并且将不会对其再次描述。
由图1k图示出图1h的三进制存储器电路13h的另一特定实施例。图1k中的三进制存储器电路包括用于将二进制数据位和二进制校验位变换成可以采取三个不同值中的一个的状态值的子电路BT 11k、在这里例如仅包括三进制存储单元的三进制存储器Sp 13、用于将可能错误的状态值变换成可能错误的辅助读取值的子电路LH 16k以及用于将辅助读取值变换成可能错误的校验位的子电路BB 19k。在本实施例中,三进制数据位的三元组以及二进制校验位的三元组均被作为三进制值的元组存储在存储器13k的两个存储单元中是可能的。在n位宽输入线110处输入了数据位x1,…,xn。在l位宽输入线111h处输入了校验位c1,…,cl。在k位宽输出线112h处输出可能错误的辅助读取值在l位宽输出线113h处输出了可能错误的校验位
由于子电路BT 11k将由编码器Cod 12h输出的数据位x1,…,xn以及校验位变换成三进制状态值所以子电路BT 11k的输入字宽度在这里为n+l。由子电路LH16k输出的辅助读取值对应于数据位而辅助读取值被分配给校验位
除输入字宽度和输出字宽度之外,所采用的子电路对应于已描述的子电路。
已特别地参考图1a描述了所采用的子电路,并且因此不会对其再次描述。
现在将描述用于子电路BT 11的另一实现可能性。
可以将子电路BT 11实现为用于二进制输入值x1,…,xn到二进制辅助写入值的变换的子电路BBS 94和将二进制辅助写入值 变换成状态值z1,…,zm,zm+1,…,zM的子电路BTS 95的串联连接,如图9b中所示。
如图3a、3b和3c中所示,子电路BT 11又可以由子电路BTj(j=1,2,…)建立。作为实例,再次地将描述子电路BT2 32的实现,其根据表6将二进制输入值x4、x5、x6变换成三进制状态值z3和z4。在图9a中图示出其当前考虑的实施方式。说明性实例中的二进制输入值x4、x5、x6到三进制状态值的所描述的转换分两个步骤执行。在第一步骤中,三个二进制输入值x4、x5、x6被变换成四个二进制辅助写入值其中
在第二步骤中,三进制状态被分配给第一对和第二对的四个二进制辅助写入值。
仅存在八个不同的输入值x4、x5、x6且因此仅存在辅助写入值 的八个不同4元组。执行输入值x4、x5、x6的元组到辅助写入值的变换,使得两个元组和中的每一个仅采取三个不同的值,并且因此可以在第二步骤中被编码并存储为三进制状态。在这里,k2是具有三个二进制输入变量的x4、x5、x6和四个二进制输出变量 的组合函数。
在第二步骤中,第一对的二进制辅助写入值被具有两个二进制输入变量和三进制输出变量z3的函数q3变换成第一二进制状态z3,而第二对的二进制辅助写入值被具有两个二进制输入变量和三进制输出变量的函数q4变换成第二三进制状态z4。函数q3和q4在这里可以被选择成彼此相等或彼此不同。
函数q3描述了数字二进制值到模拟值的数模转换,其根据到三个非重叠区间中的一个的分配而表示z3的三个可能三进制值中的一个。相应地,函数q4描述了数字值y7、y8到模拟值的数模转换,其表示z4的可能三进制值中的一个。
所描述的变换可以由用于实现函数k2的具有三个二进制输入端和四个二进制输出端的子电路Sk2 91和用于实现函数q3和q4的两个下游子电路Sq3 92和Sq4 93实现,如图9a中所示。
在子电路Sk2 91的3位宽输入端处,施加值x4、x5、x6。载送辅助写入值的子电路Sk2 91的前两个二进制输出被馈送到子电路Sq3 92的2位宽二进制输入端中,而载送辅助写入值的子电路Sk2 91的第二二进制输出端被馈送到子电路Sq4 93的2位宽二进制输入端中。子电路Sq3 92在其三进制输出端处输出值z3,而子电路Sq4 93在其三进制输出端处输出值z4。
以函数方式根据输入值x4、x5、x6来确定辅助写入值 是可能的,如同根据输入值x4、x5、x6来确定辅助读取值 一样,并且其在无错误情况下是相等的,如例如在表9中所述。
不需要对于所有输入值而言,在这里对于x4、x5、x6的8个可能值而言,根据x4、x5、x6确定的辅助写入值等于同样根据x4、x5、x6而确定的辅助读取值。
然而,在存储时使用在读出时被用作辅助读取值的此类辅助写入值可能是实际的,如稍后将更详细地解释的。
作为实例,在这里,考虑8个数据位x1,…,x8的情况,并且还解释了用于当辅助写入值等于辅助读取值时确定用于编码器12的有利实施方式的校验位的辅助写入值的使用。例如假设两个三元组x1、x2、x3和x4、x5、x6被以与图10中所示相同的方式转换成辅助写入值 和
位x1、x2、x3被子电路Sk2 101变换成辅助读取值而位x4、x5、x6被子电路Sk2 102变换成辅助读取值两个位x7和x8被直接用作辅助写入值和
成对辅助写入值被子电路Sk3103 Sk4 104 Sk3 105 Sk4 106变换成可以被存储在存储器Sp 1013的三进制状态z1、z2、z3、z4。辅助读取值被子电路bt7 107变换成三进制状态z5。辅助读取值被子电路bt8 108变换成三进制状态z6。状态z5和z6也被存储在三进制存储器Sp 1013中。
辅助写入值也被施加于子电路Bincode 109的10个第一输入端,在其第二q个输入端处,施加从读地址a,…aQ导出的位A1,…,Aq。在本实施例中,子电路Bincode109输出5个校验位c1,…,c5,其被子电路bt1 1010,…,bt5 1011变换成均被存储在存储器Sp 1013的单独存储单元Spc1,…,Spc5中的三进制值
子电路BT 11在这里又包括子电路Sk2 101、Sk2 102、子电路Sk3 103、Sk4 104、Sk3105、Sk4 106、bt7 107和bt8 108。
编码器Cod 12由子电路Sk2 101、Sk2 102和子电路Bincode 109建立。子电路BT和编码器Cod 12在这里是共同实现的。
详细地考虑位x4、x5、x6到辅助写入值的转换,其中,在读取时所使用的辅助读取值等于在写入时所使用的辅助写入值,使得当未发生错误时,适用
当读取时,将由表7中所示的函数LH3来执行从两个关联存储单元读出的三进制状态值到用于其中存储了状态值z3的存储单元的相应二进制辅助读取值的转换,并且对于其中存储了状态值z4的存储单元而言,将由表8中所示的函数LH4来执行。
在表9中图示出相应的二进制辅助读取值y5、y6、y7、y8如何被分配给二进制输入值x4、x5、x6。例如,如上文已经所述的,对于在表9中未列出的x4、x5、x6的所有值组合而言,可以设置y5=y6=y7=y8=0。用函数k2(x4,x5,x6)来描述由表9进行的分配。对于本领域的技术人员而言要根据表9来确定实现函数k2的组合电路Sk2是并不困难的。
在这里假设由与辅助读取值相同的函数k2来确定辅助写入值 使得子电路Sk2 91简单地是实现表9中所述的函数k2的组合电路Sk2。
根据等于相应的成对辅助读取值或辅助写入值的各对y5、y6和y7、y8,然后由函数q3和q4根据表13和表14来确定三进制状态值z3和z4,其中,三进制状态值z3和z4被存储到三进制存储器Sp 13中。在这里,z3的可能状态值被指示为A0、A1、A2,并且z4的可能状态值被指示为B0、B1、B2。
表13描述了函数q3且表14描述了函数q4。
表13 q3(y5,y6)
表14 q4(y7,y8)
如前所述,用yi标记的表13和14的列包括二进制值且用zj标记的列包括三进制值。函数q3和q4由电路Sq3和Sq4实现,其执行数模转换,并且由模数转换器进行的其实现对于本领域的技术人员而言并不是困难的。
现在将针对用于特殊线性码的特殊实施例来解释编码器Cod 12和修正器Cor 17的实现,其中,将存储八个二进制输入值x1,…,x8。如上所述,这八个二进制输入值被变换成10个二进制辅助读取值y1,…,y10,其表示线性码C的数据或信息位。代码C包括10个信息位y1,…,y10和5个校验位c1,…,c5。可以用(10,15)-G矩阵G和用(5,15)-H矩阵H来描述代码C。作为生成矩阵的实例,选择以下生成矩阵G。
G矩阵具有以下形式。
G=(I10,P10,5). (2)
在这里,110是10维单位矩阵且具有下式的P10,5是奇偶校验矩阵。
校验位c1,…,c5由下式确定
c1,c2,c3,c4,c5=(y1,y2,y3,y4,y5,y6,y7,y8,y9,y10)·P10,5 (4)
使得由图10中的子电路Bincode 109实现
c1=y1⊕y2⊕y3⊕y4⊕y5⊕y6
c2=y1⊕y2⊕y3⊕y7⊕y8⊕y9
c3=y1⊕y4⊕y5⊕y7⊕y8⊕y10
c4=y2⊕y4⊕y6⊕y7⊕y9⊕y10
c5=y3⊕y5⊕y6⊕y8⊕y9⊕y10
在此特殊实例中,C是二进制码,并且作为特殊情况,电路Bincode实现代码C的校验位生成。本领域的技术人员应理解的是所考虑的代码C是可以修正所有1位错误并检测所有2位错误的Hsiao代码。
通过XOR运算根据辅助读取值y1,…,y10确定的校验位c1,…,c5的实现对于本领域的技术人员而言并不是困难的,并且因此将不会对其更详细地解释。
均从存储在三进制存储单元中的三进制状态值导出的辅助读取值的各对[y1,y2]、[y3,y4]、[y5,y6]、[y7,y8],…,均仅采取三个不同的值,例如值[0,0]、[0,1]、[1,1]。然而,各对校验位采取四个不同地址,这就是为什么一对校验位可以不存储在三进制存储单元中。这将针对一对校验位[c1,c2]来解释。
如果所有辅助读取值等于0,y1=y2=…=y10=0,则[c1,c2]=[0,0]。
如果[y1,y2]=[0,1]且如果所有其他辅助读取值等于0,则[c1,c2]=[1,1]。
如果[y3,y4]=[1,1]且如果所有其他辅助读取值等于0,则[c1,c2]=[0,1]。
如果[y1.y2]=[0,1]且如果[y3,y4]=[1,1]且如果所有其他辅助读取值等于0,则[c1,c2]=[1,0]。
因此可以不将一对校验位存储在一个三进制存储单元中。
在下文中,现在将针对所考虑的线性码C来描述修正器Corr的一个可能实施方式。执行纠错,使得根据可能错误的存储器状态形成辅助读取值如所述,并且然后是这些辅助读取值和可能错误的校验位由修正器Korr 1016来确定修正矢量e=e1,…,e10。
使用已知被确定为是的代码C的H矩阵H来执行纠错,其中,是其中行和列被交换的矩阵P10,5的转置矩阵,并且I5是5维单位矩阵,使得适用
在这里,针对i=1,…,15的hi是H矩阵H的列。
H矩阵H的所有列是不同的,并且每个列hi,i=1,…,15,包含一个1或三个1,即奇数个一。
如图6a所示,修正器17a包括校正子生成器61a,其对于k=10和l=5而言包括可能错误的辅助读取值并且从存储器读出的可能错误的校验位根据以下关系
形成错误校正子s,如对于线性码而言惯常的那样,使得错误校正子的单独分量s1,…s5被确定为
在这里,是行矢量的转置列矢量,并且是校正子的分量的行矢量[s1,…s5]的转置列矢量。
实现例如通过使用XOR门或通过使用商用合成工具进行的实现用于错误校正子s1、s2、s3、s4、s5的分量的所指示等式的校正子生成器61a的实现对于本领域的技术人员而言并不是困难的。
根据错误校正子s,解码器62a确定用于辅助读取值的关联修正矢量e=e1,…,e10,其为所考虑的线性纠错码C的信息位。表15表示解码器52的值的表格。
表15
总而言之,存在32=25个不同的校正子值。相应的修正值被关联到表15中的那些的11个校正子值。
针对在表15中未列出的所有校正子值,用于e1,…,e10的值可以是随机的,其可以用于使解码器优化。例如,可以将所有那些值确定为0。如果错误校正子等于0,则不发生修正,如表15的第一行中所示,因为然后e=0,…0。如果其应用于s=hi,(i∈{1,…10})的错误校正子,则辅助读取值的第i分量被修正,其对应于1位错误的修正。在这种情况下,针对第i分量,适用ei=1。e的所有其他分量是0。如果s=[1,1,0,0,1]T=h3,则e=[0,0,1,0,0,0,0,0,0,0]T且辅助读取值的第三分量被修正。
在图11中图示出一个可能的解码器电路。
图11的解码器电路具有载送分量s1、s2、s3、s4、s5的5个二进制输入端和输出分量e1,…,e10的10个二进制输出端。其包括10个AND门110i,i=1,…,10,每个具有三个输入端,其中,AND门110i的输出端载送值ei。
载送分量s1的解码器的输入端均被连接到AND门1101、1102、1103、1104、1105和1106的第一输入端。载送分量s2的解码器的输入端均被连接到AND门1101、1102、1103的第二输入端和AND门1107、1108、1109的第一输入端。载送分量s3的解码器的输入端被连接到AND门11010的第一输入端,均到AND门1104、1105、1107、1108的第二输入端且到AND门1101的第三输入端。载送分量s4的解码器的输入端均被连接到AND门1106、1109、1010的第二输入端且到AND门1102、1104、1107的第三输入端。载送分量s5的解码器的输入端均被连接到AND门1103、1105、1106、1108、1109、11010的第三输入端。
图12示出了用于所述实施例的可能检错电路。其包括校正子生成器1203,如其还被用于图6a中的修正器17a那样、5输入端XOR树1201和5输入端OR树1202。校正子生成器具有10个第一二进制输入端,在那里被施加可能错误的辅助读取值以及载送可能错误的校验位的5个其他输入端和在那里输出校正子位s1、s2、s3、s4、s5的5个输出端。校正子生成器的5个输出端被连接到XOR树1201的5个输入端,其在其输出端处输出校正子分量P(s)=s1⊕s2⊕…⊕s5的奇偶校验位P(s),并且还被连接到OR树1202的5个输入端,该OR树1202输出校正子分量的OR运算OR(s)=s1∨s2∨…∨s5。
如果只有1位错误和2位错误被区别,则由于H矩阵H的所有列hi包括奇数个1,适用下式:
当P(s)=1且OR(s)=1时,存在1位错误。
当P(s)=0且OR(s)=1时,存在2位错误。
图13示出了修正电路和检错电路的联合实现。由于校正子生成器1301可以被用于纠错以及检错两者,所以可以实现仅一个校正子生成器,并将载送分量s1,…,s5的其输出端同时地连接到解码器1304的相应输入端、XOR树1302的输入端和OR树1203的输入端,使得修正器Cor 17和用于检错Det 120的电路在这里被一起实现。
现在将解释所考虑实施例的运行。
在具有根据图3c的子电路BT的存储器中,将存储二进制值x1,…,x8=0、0、1、1、0、1、1、1。如图3c中所示,子电路BT又包括子电路BT1 38、BT2 39、BT3 310和BT4 311,其中,两个子电路BT1和BT2实现相同的函数f,如表6中所示。
子电路BT1根据表6将位x1、x2、x3=001变换成三进制状态2ter、1ter。子电路BT2将表6的位x4、x5、x6=101变换成三进制状态0ter、2ter。子电路BT3将位x7=1映射成三进制状态1tet,如同子电路BT4将位x8=1映射到三进制状态1ter一样。三进制状态2ter、1ter、0ter、2ter、1ter、1ter被写入存储器Sp 13的前6个存储单元中。
编码器Cod 12将8个二进制输入值x1,…,x8=0、0、1、1、0、1、1、1变换成五个二进制校验位c1,…,c5。
如所述,编码器的运行可以被理解成使得其首先以函数方式将其输入值变换成相应的辅助读取值,并且在这里使用线性码C根据辅助读取值来生成相应的校验位,然而这两个步骤不必例如由于相应子电路的共同优化而单独地执行。
根据表9,位x1、x2、x3=0、0、1首先被编码器变换成辅助读取值y1、y2、y3、y4=1、1、0、1,位x4、x5、x6=101被变换成辅助读取值y5、y6、y7、y8=0、0、1、1且位x7=1被变换成y9=1且位x8=1被变换成y10=1。根据所得到的辅助读取值1101001111,由下式来确定二进制校验位c1,…,c5
c1,c2,c3,c1,c5=(1,1,0,1,0,0,1,1,1,1)·P=1,1,1,1,1
因为其可以被直接计算。二进制校验位c1,c2,c3,c4,c5=1,1,1,1,1被子电路bt11010,…,bt5 1011变换成三进制状态1ter、1ter、1ter、1ter、1ter,并且均被写入存储器sp 1013的五个其他单元中的单独的一个中,使得总的来说,值z1,…,z4,z5,z6,c1,…,c5=2ter,1ter,0ter,2ter,1ter,1ter,1ter,1ter,1ter,1ter,1ter被写入三进制存储器中。
如果未发生错误,则状态值 被读出。三进制值 被在图4中详细地图示出的子电路LH 16使用用于LH1、LH2、LH3和LH4的表8变换成辅助读取值 对应于校验位c1,…,c5的三进制状态1ter,…,1ter被相应的子电路tb1 151,…,tb5 155变换成二进制值1bin,…,1bin,使得辅助读取值y'=(1,1,0,1,0,0,1,1,1,1)被子电路LH 16输出。从存储器读出的这些辅助读取值和校验位被施加于修正器17的相应输入端。在图6a的其校正子生成器61a中,修正器形成错误校正子
(s1,…,s5)T=H·(1,1,0,1,0,0,1,1,1,1,1,1,1,1,1)T=(0,0,0,0,0,)T,
其再次地被简单地计算,并且解码器62a根据表15、第一行输出修正矢量e=e1,…,e10=0,…,0,其分量在XOR电路18a中被与辅助读取值y'组合成已修正辅助读取值
根据已修正辅助读取值yc,子电路BB 19形成已修正输出值xc。子电路BB 19被如图7c中所示地设置。子电路BB1 78根据表10将已修正辅助读取值变换成已修正输出值子电路BB2 79根据表10将已修正辅助读取值变换成已修正输出值子电路BB3 710将已修正辅助读取值变换成已修正输出值x7=1。子电路BB4 711将已修正辅助读取值变换成已修正输出值x8=1。在电路输出端处,因此输出已修正结果
现在假设被写入存储器中的三进制状态z1=2在读出时被错误地误用成状态然后当从存储器读出时,状态值 被读出。三进制值 被图4中详细地图示出的子电路LH 16使用表8变换成辅助读取值 使得辅助读取值y′=(0,1,0,1,0,0,1,1,1,1)被子电路LH 16输出。从存储器读出的这些辅助读取值和校验位被施加于修正器17的相应输入端。在图6的其校正子生成器61a中,修正器形成错误校正子
(s1,…,s5)T=H·(0,1,0,1,0,0,1,1,1,1,1,1,1,1,1)T=(1,1,1,0,0)T,并且解码器620根据表15、第二行输出修正矢量e=e1,…,e10=1,0,…,0,其在XOR电路18a中被与辅助读取值y′组合成已修正辅助读取值
同样地,从图11可以推断对于校正子1,1,1,0,0=s1,s2,s3,s4,s5而言,AND门1101在其输出端处输出值e1=1,而对于所有其他AND门110i而言,i=2,…,10,适用ei=0。所存储的三进制值2ter的被错误地误用成1ter的错误已在辅助读取值中被修正。根据已修正辅助读取值yc,如果所述子电路BB 19形成已修正输出值xc。
在电路输出端处,因此,再次地输出已修正结果
如果存在检错电路Det 120,如在图12中其包括校正子生成器51,、XOR树1201和OR树1202,则其适用于错误校正子P(s)=1的分量的奇偶校验位P(s)所适用和OR运算OR(s)=1所适用的错误校正子s1,…,s5=1,1,1,0,0,使得指示1位错误。
实施例提供了被配置成存储并对其中n≥3的二进制数据序列x1,..,xn进行错误修正的电路,该二进制数据序列x1,…,xn可以被存储在包括可以采取三进制状态的存储单元的存储器中,其中,根据二进制状态序列,某些三进制值被存储在可以采取三进制状态的存储单元中,并且其中,当从可以采取三进制状态的存储单元从存储器读取可能错误的三进制值时,形成二进制辅助读取值,其中,存在根据在其至少n个二进制输入端处输入的数据x1,…,xn而在其输出端处输出二进制校验位的编码器,其中,载送二进制校验位的编码器的输出端在向存储器中写入时被连接到存储器的存储单元的数据输入端,其中,被连接到编码器输出端的存储单元的数据输入端未被连接到编码器的任何其他输出端,并且其中,编码器被配置成使得由编码器确定的二进制校验位和二进制辅助读取值在无错误情况下形成纠错码的代码字。
根据某些实施例,编码器被实现成使得除用于输入数据值x1,…,xn的n个二进制输入端之外,编码器此外还包括用于输入根据地址位(a=a1,…,aQ)确定的二进制值A=A1,…,Aq=F(a1,…,aQ)的q个二进制输入端,其中,F是Q位二进制值到q位二进制值的唯一映射,其中,Q是存储器地址的字宽,并且其中,适用1≤q≤Q,并且其中,编码器被配置成使得由编码器确定的二进制校验位、根据地址位确定的值A1,…,Aq和二进制辅助读取值在无错误情况下形成纠错码的代码字。
一些实施例提供了用于二进制值序列x1,…,xn在存储器中的存储的电路,其中,n≥3,其中,存储器的存储单元的非空子集的存储单元可以采取三个状态值,并且其中,可以不采取三个状态值的所有存储单元可以采取两个状态值,具有以下特征
1.存在子电路BT,其具有n个二进制输入端和用于n个二进制输入值x1,…,xn到M个输出值的变换的M个输出端,
z1,...,zm,zm+1,…,zM=BT(x1,…,xn)
其中,2≤m≤M,并且其中,M<n且其中n≥4,
其中,输出值z1,…,zm可以根据输入值而采取三个不同的值,并且其中,输出值zm+1,…,zM可以根据输入值而采取至多两个不同值,
2.子电路BT的M个输出端被馈送到存储器Sp的M个数据输入端中,其中,当向存储器中写入时,子电路BT的输出值z1,…,zm被存储到存储单元中,其可以采取3个状态,并且其中输出值zm+1,…,zM被存储在可以采取至少两个状态的存储单元中,
3.存在用于确定二进制辅助读取值的子电路LH,
其具有M个输入端和k个输出端,其中,当从存储器读取时,子电路LH的m个第一输入端被连接到存储器Sp的存储单元的数据输出端,当写入时,三进制值z1,…,zm被写入其中,并且当读取时,从其中读出可能错误的三进制值并且子电路LH的其他M-m个输入端被连接到存储单元的数据输出端,当写入时,值zm+1,…,zm被写入其中,并且当读取时,从其中读出可能错误的值并且其在其k个输出端处输出k个二进制辅助读取值其中k≥m+M。
4.存在用于根据n个二进制输入值x1,…,xn来确定l个二进制校验位c1,…,cl的编码器Cod,其具有n个二进制输入端和l个二进制输出端,其中
c1,…,cl=Cod(x1,…,xn)其中,在编码器Cod的n个二进制输入端处,施加二进制输入值x1,…,xn,并且在l个二进制输出端处,输出相应的二进制校验位c1,…,cl,并且其中,编码器被配置成使得其根据输入值x1,…,xn来确定校验位c1,…,cl,使得位
y1,…,yk,c1,…cl
形成具有k个数据位和l个校验位的长度k+l的纠错码C的代码字,并且位
y1,…,yk=LH[BT(x1,…,xn)]
被子电路BT和LH以函数方式通过数据位x1,…,xn的后续变换而确定,
5.针对j=1,…,l,载送校验位cj的编码器Cod的输出端在向存储器中写入时被连接到第j存储单元的数据输入端,其中,此第j存储单元的数据输入端未被连接到编码器的其他输出端,
6.存在具有l个第一二进制输入端和k个第二二进制输入端的用于纠错码C的修正器Cor,其中,对于j=1,…,l而言,修正器的l个第一输入端中的第j输入端被连接到存储单元的数据输出端,其在写入时被连接到编码器的第j输出端,使得当在其第j输入端处发生错误时,施加可能错误的第j校验位的值并且当未发生错误时,施加第j校验位的正确值cj,并且其中,在修正器的k位宽第二输入端处,施加由子电路LH输出的可能错误的辅助读取值并且修正器被配置成使得其在其k位宽输出端处输出修正矢量e=e1,…,ek,使得适用
当发生可以被纠错码C修正的错误且op1,…,opk是唯一地可逆二进制运算时,并且其中,修正矢量e等于零矢量当未发生错误时,其中,对于i=1,…,k而言是运算opi的零元素。
7.存在具有k位宽第一输入端和k位宽第二输入端和k位宽输出端的组合电路Vkn,其中,第一k位宽输入端被连接到子电路LH的k位宽输出端,其载送可能错误的辅助读取值并且第二k位宽输入端被连接到修正器Cor的k位宽输出端,其载送修正矢量e=e1,…,ek,其中,组合电路被配置成使得其在其k输出端处输出已修正辅助读取值。
其中,op1,…,opk是唯一可逆运算,并且当未发生或发生可被代码C修正的错误时,适用
8.存在用于二进制已修正辅助读取值到n个二进制已修正数据位的变换的子电路BB,其被配置成使得当适用时,也适用
9.子电路BT11、LH 16和BB 19被配置成使得至少当在由子电路BT、LH和BB进行的输入值的后续变换之后未发生错误时输入值x=x1,…,xn被再现,并且适用下式
BB{LH[BT(x1,…,xn)]}=x1,…,xn。
在某些实施例中,编码器被实现成使得由编码器确定的校验位另外取决于写地址的地址位的值a=a1,…,aQ,并且修正器被实现成使得由修正器确定的修正矢量另外取决于读地址的地址位的相应值。
根据实施例,除用于输入数据位x1,…,xn的输入端之外,编码器还包括用于输入从读地址的地址位a=a1,…,aQ导出的q位A1,…,Aq的q(q≥1)个二进制输入端
A1,...,Aq=F(a1,...,aQ)
其中,F是位A1,…,Aq到读地址的位a1,…,aQ的唯一分配,并且其中,编码器被配置成使得c1,…,cl、y1,…,yk、A1,…,Aq是纠错码C的代码字,并且其中,除用于输入可能错误的校验位和k个可能错误的辅助读取值的l个二进制输入端之外,修正器还包括用于输入从读地址的Q个地址位导出的q位的q个二进制输入端,
在一些实施例中,除用于输出修正值e1,…,ek和用于修正辅助读取值的k个二进制输出端之外,修正器还包括用于输出修正值以用于修正从读地址的地址位导出的位的q个二进制输出端。
根据实施例,适用q=1,并且
A1=F(a1,…,aQ)=al⊕…⊕aQ
是写地址的奇偶校验位
是读地址的奇偶校验位。
在实施例中,适用q=Q、Al,…,AQ=a1,…,aq和
根据一些实施例,载送修正值的修正器的输出端被馈送到检错电路的q个输入端中,其在修正值对应于地址修正时在其输出端处指示地址错误。
在实施例中,检错电路被实现为具有q个输入端的NOR电路,其中,q个输入端被连接到修正器的输出端的q个修正值
根据一些实施例,代码C是线性码。
在实施例中,修正器是校正子生成器和解码器的串联电路。
根据实施例,修正器是校正子生成器和解码器的串联连接,并且校正子生成器被连接到地址错误确定器,其在由校正子生成器确定的错误校正子对应于地址错误时输出信号“地址错误”。
在一些实施例中,对于j=1,…,l而言,用于编码器的校验位cj的第j输出端、校验位cj被连接到子电路btj的输入端以用于二进制值cj到三进制值的变换,其中,输出端在写入时被连接到存储单元的数据输入端以便存储三进制值并且其中,当读取时,用于存储三进制值的三进制存储单元的数据输出端被连接到子电路tbj的输入端以用于三进制值到二进制值的变换,其中,输出端被连接到修正器的相应输入端,其中,适用tbj[btj(cj)]=cj。
根据实施例,二进制值0被子电路btj变换成最小三进制值,并且其中,值1被子电路btj变换成最大三进制值。
在实施例中,二进制值0被子电路btj变换成最小三进制值,并且其中,值1被子电路btj变换成最小三进制值。
根据实施例,针对至少一个j∈{1,…,l},编码器的第j输出端在写入时被直接连接到存储单元的数据输入端以便存储二进制值cj,并且其中,当读取时用于存储二进制值cj的存储单元的数据输出端被直接连接到修正器的相应输入端。
在某些实施例中,代码C是具有生成矩阵G=(I,P)的线性码,并且编码器被实现成使得根据以下关系来确定校验位c=c1,…,cl
c=c1,…,cl=(LH[BT(x1,…,xa)])·P=(y1,…,yk)·P
其中,当在检错中未包括地址位时,G是(k,k+l)矩阵,并且根据以下关系来确定校验位
c=c1,…,cl={LH[BT(x1,…,xn)],A1,…,Aq}·P=(y1,…,yk,A1,…,Aq)·P
其中,当在通过从地址位a1,…,aQ导出的位A1,…,Aq的检错中包括地址位时,G是(k+q,k+l+q)矩阵。
根据实施例,用于输入值x1,…,xn到输出值z1,…,zm,zm+1,…,zM的变换的子电路BT是用于输入值x1,…,xn到k个二进制辅助写入值的变换的子电路BSS 94和用于二进制辅助写入值到电路BT 11的输出值z1,…,zm,zm+l,…,zM的变换的子电路BTS95。
在实施例中,子电路BSS被实现成使得由子电路BSS确定的辅助写入值等于由子电路BB和LH确定的无错误辅助读取值y1,…,yk,并且编码器被实现成使得其使用由子电路BBS输出的辅助写入值来确定校验位c1,…,cl。
根据实施例,编码器被实现成使得根据以下关系来确定校验位c=c1,…cl
其中,当在检错中未包括地址位且其根据以下关系来确定时,G是(k,k+l)矩阵
其中,当在通过从地址位al,…,aQ导出的位Al,…,Aq的检错中包括地址位时,G是(k+q,k+l+q)矩阵。
根据实施例,用于根据从存储器读出的状态值来确定二进制辅助读取值的子电路LH 16被实现成使得逐个分量地向每个三进制状态分量分配至少两个二进制读取值,并向每个二进制状态分量zm+l,…,zM分配至少一个二进制辅助读取值,并且使得适用k≥m+M,
虽然已在设备的背景下描述了某些方面,但显而易见的是这些方面也表示相应方法的描述,其中,块或设备对应于方法步骤或方法步骤的特征。同样地,在方法步骤的背景下描述的方面也表示相应设备的相应单元或项目或特征的描述。
本发明分解信号能够被存储在数字存储介质上或者能够在诸如无线传输介质或诸如因特网的有线传输介质的传输介质上传送。
根据某些实施方式要求,能够用硬件或软件来实现本发明的实施例。可以使用数字存储介质来执行该实施方式,例如软盘、DVD、CD、ROM、PROM、EPROM、EEPROM或闪速存储器,其具有存储在其上面的电子可读控制信号,其与可编程计算机系统协作(或者能够与之协作),使得执行相应方法。
根据实施例的一些实施例包括具有电子可读控制信号的非临时性数据载体,其能够与可编程计算机系统协作,使得执行本文所述的方法中的一个。
一般地,可以将本发明的实施例实现为具有程序代码的计算机程序产品,该程序代码可操作用于在计算机程序产品在计算机上运行时执行方法中的一个。该程序代码可以例如存储在机器可读载体上。
其他实施例包括存储在机器可读载体上的的用于执行本文所述方法中的一个的计算机程序。
换言之,本发明方法的实施例因此是计算机程序,其具有用于当计算机程序在计算机上运行时执行本文所述方法中的一个的程序代码。
本发明方法的另一实施例因此是数据载体(或数字存储介质或计算机可读介质),包括记录在其上面的用于执行本文所述方法中的一个的计算机程序。
本发明方法的另一实施例因此是表示用于执行本文所述方法中的一个的计算机程序的数据流或信号序列。该数据流或信号序列可以被配置成通过数据通信连接、例如通过因特网被传输。
另一实施例包括处理装置,例如计算机或可编程逻辑器件,其被配置成或适合于执行本文所述方法中的一个。
另一实施例包括一种计算机,具有安装在其上面的用于执行本文所述方法中的一个的计算机程序。
在一些实施例中,可以使用可编程逻辑器件(例如现场可编程门阵列)来执行本文所述方法的功能中的一些或全部。在一些实施例中,现场可编程门阵列可以与微处理器协作以便执行本文所述的方法中的一个。一般地,优选地用任何硬件设备来执行该方法。
虽然已根据多个有利实施例描述了本发明,但存在落在本发明的范围内的变更、替换以及等价物。还应注意的是存在实现本发明的方法和构成的许多替换方式。因此意图在于将以下所附权利要求解释为包括落在本发明的主旨精神和范围内的所有变更、替换和等价物。
本文所述的实施例仅仅说明本发明的原理。应理解的是本文所述的装置和细节的修改和变化对于本领域的技术人员而言将是显而易见的。因此意图仅仅是由紧接着的专利权项而不是由通过本文中的实施例的描述和说明提出的特定细节来限制。
虽然每个权项仅返回引用一个单独的权项,但本公开也覆盖权项的任何可想到的组合。
Claims (45)
1.一种多位修正电路,包括:
存储器,包括多个存储单元,其中,所述存储器的所述多个存储单元中的一个或多个均被配置成采取至少三个不同状态中的一个;
第一子电路BT,被配置成基于二进制值序列来生成多个输出值,其中,所述多个输出值中的每一个等于至少三个不同基本值中的一个,其中,第一子电路BT被配置成将每个输出值作为状态值存储在一个或多个存储单元中的不同的一个中,其均被配置成采取至少三个不同状态中的一个;
第二子电路LH,被配置成从被配置成采取至少三个不同状态中的一个的所述存储单元中的至少一个中的每一个读取状态值,其中,所述状态值是三个不同基本值中的一个,其中,第二子电路LH此外被配置成基于所述存储单元中的至少一个中的每一个的状态值来确定二进制辅助读取值,以及
编码器,被配置成基于所述二进制值序列的至少一部分来生成一个或多个二进制校验位,其中,纠错码包括多个代码字,并且其中,所述编码器被配置成生成所述一个或多个二进制校验位,使得当二进制辅助读取值和所述一个或多个二进制校验位无错误时,二进制辅助读取值和所述一个或多个二进制校验位一起形成纠错码的代码字中的一个,
其中,所述编码器被配置成将所生成的一个或多个校验位中的每一个存储在存储器的存储单元中的一个或多个中,使得所述一个或多个校验位中的每一个被存储在存储器的存储单元中的不同的一个中,其中,其中存储了校验位的每个存储单元被配置成采取至少两个不同状态中的一个。
2.根据权利要求1所述的电路,
其中,均被配置成采取至少三个不同状态中的一个的存储器的所述多个存储单元中的一个或多个是三进制存储单元,其中,所述三进制存储单元被配置成采取准确地三个不同状态中的一个,
其中,所述第一子电路BT被配置成生成所述多个输出值,使得所述多个输出值中的每一个具有准确地三个不同基本值中的一个,其中,第一子电路BT被配置成将输出值中的每一个作为状态值存储在三进制存储单元中的不同的一个中,以及
其中,所述第二子电路LH被配置成从三进制存储单元中的至少一个读取一个或多个状态值,其中,所述一个或多个状态值中的每一个具有准确地三个不同基本值中的一个,并且其中,第二子电路LH此外被配置成基于一个或多个状态值来确定二进制辅助读取值。
3.根据权利要求1所述的电路,
其中,所述电路此外包括修正器Cor和组合电路Vkn,
其中,所述第二子电路LH被配置成向修正器Cor和组合电路Vkn中馈送二进制辅助读取值,
其中,所述修正器Cor被配置成从存储器的存储单元中的一个或多个读取一个或多个校验位,并基于二进制辅助读取值和所述一个或多个校验位生成纠错位,并且将纠错位馈送到组合电路Vkn中,以及
其中,组合电路Vkn被配置成基于纠错位对二进制辅助读取值执行纠错以获得二进制辅助无错误读取值,如果该错误可被纠错码修正的话。
4.根据权利要求3所述的电路,其中,所述组合电路Vkn被配置成执行纠错,使得二进制辅助无错误读取值和所述一个或多个校验位形成纠错码的代码字中的一个。
5.根据权利要求3所述的电路,其中,所述电路还包括被配置成将二进制辅助无错误读取值变换成n个二进制纠错数据位的第三子电路BB,其中,n是整数。
6.根据权利要求2所述的电路,
其中,所述二进制值序列包括n位,其中,n是整数,并且n≥3,
其中,所述编码器包括被配置成接收二进制数据的至少n个编码器输入端口,
其中,所述编码器包括一个或多个编码器输出端口,
其中,所述编码器被配置成在所述至少n个编码器输入端口处接收所述二进制值序列,
其中,所述编码器被配置成在所述一个或多个编码器输出端口处输出所述一个或多个二进制校验位,
其中,被配置成分别载送二进制校验位中的一个或多个的编码器输出端口中的一个或多个在向存储器中写入时分别地被连接到存储器的存储单元中的一个的输入端口,
其中,被连接到编码器的输出端口中的一个的每个存储单元的每个输入端口未被连接到所述编码器的任何其他输出端口,以及
其中,所述编码器被配置成使得在无错误情况下由编码器确定的所述一个或多个校验位和所述二进制辅助读取值形成纠错码的代码字中的一个。
7.根据权利要求1所述的电路,其中,所述编码器被配置成基于地址位a=a1,…,aQ而生成所述一个或多个二进制校验位。
8.根据权利要求7所述的电路,其中,所述编码器被配置成生成所述一个或多个二进制校验位,使得由编码器确定的二进制校验位、二进制值A1,…,Aq根据地址位a=a1,…,aQ和二进制辅助读取值在无错误情况下形成纠错码的代码字。
9.根据权利要求6所述的电路,
其中,编码器被实现成使得编码器此外包括用于输入二进制值A1,…,Aq的q个二进制输入端,其中,适用A1,…,Aq=F(a1,…,aQ),其中,a1,…,aQ是地址位,其中,F是Q位二进制值到q位二进制值的唯一映射,其中,Q是存储器的存储器地址的字宽,其中,适用1≤q≤Q,并且其中,编码器被配置成使得由编码器确定的二进制校验位、根据地址位确定的值A1,...,Aq和二进制辅助读取值在无错误情况下形成纠错码的代码字。
10.一种多位修正电路,包括:
存储器,包括多个存储单元,其中,所述存储器的所述多个存储单元中的一个或多个是均被配置成采取三个不同状态中的一个的三进制存储单元;
第一子电路BT,被配置成基于二进制值序列生成多个输出值,其中,所述多个输出值中的每一个具有三个不同基本值中的一个,其中,第一子电路被配置成将每个输出值作为状态值存储在均被配置成采取三个不同状态中的一个的一个或多个三进制存储单元中的不同的一个中;
第二子电路LH,被配置成从被配置成采取至少三个不同状态中的一个的所述三进制存储单元中的至少一个中的每一个读取状态值,其中,所述状态值是三个不同基本值中的一个,其中,第二子电路LH此外被配置成基于所述三进制存储单元中的至少一个中的每一个的状态值来确定二进制辅助读取值;
编码器,被配置成基于二进制序列的至少一部分来生成一个或多个二进制校验位,其中,纠错码包括多个代码字,并且其中,所述编码器被配置成生成一个或多个二进制校验位,使得当所述二进制辅助读取值和所述一个或多个二进制校验位无错误时,二进制辅助读取值和所述一个或多个二进制校验位一起形成纠错码的代码字中的一个,其中,所述编码器被配置成将所生成的一个或多个校验位中的每一个存储在存储器的存储单元中的一个或多个中,使得所述一个或多个校验位中的每一个被存储在存储器的存储单元中的不同的一个中,其中,其中存储了校验位的存储单元中的每一个被配置成采取至少两个不同状态中的一个;
修正器Cor;
组合电路Vkn;以及
第三子电路BB,
其中,所述第二子电路LH被配置成向修正器Cor和组合电路Vkn中馈送二进制辅助读取值,
其中,所述修正器Cor被配置成从存储器的所述存储单元中的一个或多个读取所述一个或多个校验位,其中,所述修正器Cor被配置成基于二进制辅助读取值和所述一个或多个校验位来生成纠错位,并且其中,所述修正器Cor被配置成将纠错位馈送到组合电路Vkn中,
其中,所述组合电路Vkn被配置成基于纠错位对二进制辅助读取值执行纠错以获得二进制辅助无错误读取值,以及
其中,所述第三子电路BB被配置成将二进制辅助无错误读取值变换成n个二进制纠错数据位。
11.一种多位修正电路,被配置成将二进制值序列x1,…,xn存储在包括存储单元的存储器Sp中,其中,n≥4,其中,所述存储器的存储单元中的每一个被配置成采取三个状态值中的一个或者采取两个状态值中的一个,其中,所述存储器的存储单元中的至少一个被配置成采取三个状态值中的一个,并且其中所述电路包括:
第一子电路BT,具有n个二进制输入端和M个输出端,其中,第一子电路BT被配置成将n个二进制输入值x1,…,xn变换成M个输出值z1,...,zm,zm+1,...,zM=BT(x1,...,xn),其中,2≤m≤M,其中,M<n,其中,输出值z1,…,zm中的每一个根据二进制输入值而具有三个不同值中的一个,并且其中,输出值zm+1,…,zM中的每一个根据二进制输入值而具有至多两个不同值中的一个,其中,第一子电路BT具有与存储器Sp的M个数据输入端相连的M个输出端,其中,当向存储器Sp中写入时,第一子电路BT的输出值z1,…,zm被存储到存储器的存储单元中,其被配置成采取三个状态中的一个,并且其中,输出值zm+1,…,zM被存储在被配置成采取至少两个值中的一个的存储单元中;
第二子电路LH,被配置成确定二进制辅助读取值y′1,...,y′k=LH(z′1,...,z′m,z′m+1,...,z′M),其中,所述第二子电路LH具有M个输入端和k个输出端,其中,当从存储器读取时第二子电路LH的输入端中的m个第一输入端被连接到存储器Sp的存储单元的数据输出端,当写入时向其中写入三进制值z1,…,zm,并且当读取时从其中读出可能错误的三进制值z′1,...,z′m,并且第二子电路LH的另外M-m个输入端被连接到存储单元的数据输出端,当写入时向其中写入值zm,…,zM,并且当读取时从其中读出可能错误的值z′m+1,...,z′M,并且其中,第二子电路LH在其k个输出端处输出k个二进制辅助读取值y′1,...,y′k,其中k≥m+M;
编码器Cod,具有n个二进制输入端和被配置成根据n个二进制输入值x1,…,xn来确定l个二进制校验位的l个二进制输出端,其中c1,...,cl=Cod(x1,...,xn),其中,在编码器Cod的n个二进制输入端处,适用二进制输入值x1,…,xn,并且在编码器的l个二进制输出端处,输出由二进制输入值x1,…,xn确定的二进制校验位c1,…,cl,并且其中,编码器被配置成根据二进制输入值x1,…,xn来确定校验位c1,…,cl,使得位y1,...,yk,c1,...cl形成具有k个数据位和l个校验位的长度k+l的纠错码C的代码字,使得二进制校验位中的每一个被存储在存储单元中的不同的一个中。
12.根据权利要求11所述的电路,其中,通过由第一子电路BT和第二子电路LH进行的二进制输入值x1,…,xn的变换来确定位y1,...,yk=LH[BT(x1,...,xn)],其中,对于j=1,…,l而言,载送校验位cj的编码器Cod的输出端在向存储器中写入时被连接到第j存储单元的数据输入端,其中,此第j存储单元的数据输入端未被连接到编码器的其他输出端。
13.根据权利要求12所述的电路,其中,所述电路还包括具有l个第一二进制输入端和k个二进制输入端的用于纠错码C的修正器,其中,对于j=1,…,l而言,修正器的l个第一输入端中的第j输入端被连接到存储单元的数据输出端,其在写入时被连接到编码器的第j输出端,使得当在其第j输入端处发生错误时,施加可能错误的第j校验位的值c′j,并且当未发生错误时施加第j校验位的已修正值cj,并且其中,在修正器的k位宽第二输入端处,施加由第二子电路LH输出的可能错误的辅助读取值y′1,...,y′k,并且其中,修正器被配置成当发生可以被纠错码C修正的错误且op1,…,opk是唯一可逆二进制运算时,在其k位宽输出端处输出修正矢量e=e1,…,ek。
14.根据权利要求13所述的电路,其中,所述电路还包括具有k位宽第一输入端和k位宽第二输入端和k位宽输出端的组合电路Vkn,其中,所述组合电路的第一k位宽输入端被连接到第二子电路LH的k位宽输出端,其载送可能错误的辅助读取值y′1,...,y′k,并且其中,组合电路的第二k位宽输入端被连接到载送修正矢量e=e1,…,ek的修正器Cor的k位宽输出端,并且其中,所述组合电路被配置成在其k个输出端处输出已修正辅助读取值其中,op1,…,opk是唯一可逆运算,并且其中,当不存在错误或存在可被代码C修正的错误时,适用
15.根据权利要求14所述的电路,其中,所述电路还包括被配置成将二进制已修正辅助读取值变换成n个二进制已修正数据位的第三子电路BB,其中,第三子电路BB被配置成使得当适用时,也适用
16.根据权利要求15所述的电路,其中,第一子电路BT、第二子电路LH和第三子电路BB被配置成使得至少当在由第一子电路BT、由第二子电路LH和由第三子电路BB进行的输入值的后续变换之后未发生错误时,输入值x=x1,…,xn被再现,并且其中适用BB{LH[BT(x1,...,xn)]}=x1,...,xn。
17.根据权利要求16所述的电路,其中,所述编码器被配置成使得由编码器Cor确定的校验位此外取决于写地址a1,…,aQ的地址位的值,并且其中,所述修正器Cor被配置成使得由修正器确定的修正矢量另外取决于读地址的地址位的相应值。
18.根据权利要求17所述的电路,
其中,除用于输入二进制输入值x1,…,xn的n个二进制输入端之外,所述编码器还包括用于输入从读地址的地址位导出的q位A1,…,Aq的q个二进制输入端,q≥1,
其中适用A1,...,Aq=F(a1,...,aQ),
其中,F是位A1,…,Aq到读地址的位a1,…,aQ的唯一分配,并且其中,所述编码器被配置成使得c1,…,cl、y1,…,yk、A1,…,Aq是纠错码C的代码字,
其中,除用于输入可能错误的校验位c1′,...,cl′和k个可能错误的辅助读取值y′1,...,y′k的l个二进制输入端之外,所述修正器还包括用于输入从读地址的Q个地址位导出的q位A′1,...,A′q的q个二进制输入端,以及
其中适用A′1,...,A′q=F(a′1,...,a′Q)。
19.根据权利要求18所述的电路,其中,除用于输出修正值e1,…,ek以用于修正辅助读取值y′1,...,y′k的k个二进制输出端之外,所述修正器还包括用于输出修正值以用于修正从读地址的地址位导出的位A′1,...,A′q的q个二进制输出端。
20.根据权利要求18所述的电路,其中,q=1,并且
是读地址的奇偶校验位,以及
是写地址的奇偶校验位。
21.根据权利要求18所述的电路,
其中q=Q,A1,...AQ=a1,...aq且A′1,...,A′Q=a′1,...,a′q。
22.根据权利要求19所述的电路,其中,载送修正值的修正器的输出端被馈送到检错电路的q个输入端中,其在修正值对应于地址修正时且在其输出端处指示地址错误。
23.根据权利要求22所述的电路,其中,所述检错电路包括具有q个输入端的NOR电路,其中,q个输入端被连接到修正器的输出端的q个修正值
24.根据权利要求16所述的电路,其中,所述代码C是线性码。
25.根据权利要求16所述的电路,其中,所述修正器包括校正子生成器和解码器的串联连接电路。
26.根据权利要求17所述的电路,其中,所述修正器包括校正子生成器和解码器的串联连接,并且所述校正子生成器被连接到地址错误确定器,其在由校正子生成器确定的错误校正子对应于地址错误时输出信号“地址错误”。
27.根据权利要求16所述的电路,其中,对于j=1,…,l而言,编码器的第j输出端,其中,校验位cj被连接到第四子电路btj的输入端以用于二进制值cj到三进制值的变换,其中,所述输出端在写入时被连接到存储单元的数据输入端以便存储三进制值并且其中,当写入时,用于存储三进制值的三进制存储单元的数据输出端被连接到第五子电路tbj的输入端以用于三进制值到二进制值c′j的变换,其中,输出端被连接到修正器的相应输入端,其中,适用tbj[btj(cj)]=cj。
28.根据权利要求27所述的电路,其中,所述二进制值0被第四子电路btj变换成最小三进制值,并且其中,值1被第四子电路btj变换成最大三进制值。
29.根据权利要求27所述的电路,其中,所述二进制值0被第四子电路btj变换成最大三进制值,并且其中,值1被第四子电路btj变换成最小三进制值。
30.根据权利要求16所述的电路,其中,对于至少一个j∈{1,...l}而言,编码器的第j输出端在写入时被直接连接到存储单元的数据输入端以便存储二进制值cj,并且其中,当读取时,被用于存储二进制值cj的存储单元的数据输出端被直接地连接到修正器的相应输入端。
31.根据权利要求16所述的电路,其中,代码C是具有生成矩阵G=(I,P)的线性码,并且所述编码器被实现成使得根据以下关系来确定c=c1,…,cl,
c=c1,...,cl=LH[BT(x1,...,xn)·P=(y1,...,yk)·P
其中,G是(k,k+l)矩阵,I是k维单位矩阵,并且P是(k,l)奇偶校验矩阵,当在纠错或检错中未包括地址位时,其中,k指示二进制辅助读取值的数目,其中l指示校验位的数目。
32.根据权利要求16所述的电路,其中,代码C是具有生成矩阵G=(I,P)的线性码,并且所述编码器被实现成使得根据以下关系来确定c=c1,…,cl,
c=c1,...,cl={LH[BT(x1,...,xn),A1,...,Aq}·P=(y1,...,yk,A1,...,Aq)·P
其中,当地址位通过从地址位a1,…,aQ导出的位A1,…,Aq被用于检错时,G是(k+q,k+q+l)矩阵,I是(k+q)单位矩阵,并且P是(k+q,l)奇偶校验矩阵,其中,k指示二进制辅助读取值的数目,其中,l指示校验位的数目,并且其中,q指示从地址位a1,…,aQ导出的位A1,…,Aq的数目。
33.根据权利要求16所述的电路,其中,用于输入值x1,…,xn到输出值z1,…,zm,zm+1,…,zM的变换的第一子电路BT 11是用于输入值x1,…,xn到k个二进制辅助写入值的变换的第六子电路BBS和用于二进制辅助写入值到电路BT的输出值z1,…,zm,zm+1,…,zM的变换的第七子电路BTS的串联连接。
34.根据权利要求33所述的电路,其中,第六子电路BBS被实现成使得由第六子电路BBS确定的辅助写入值等于由子电路BB和LH确定的无错误辅助读取值y1,…,yk,并且所述编码器被实现成使得其使用由子电路BBS输出的辅助写入值来确定校验位c1,…,cl。
35.根据权利要求31所述的电路,其中,所述编码器被实现成使得根据以下关系来确定校验位c=c1,…,cl,
其中,P是纠错码的(k,l)奇偶校验矩阵。
36.根据权利要求32所述的电路,其中,所述编码器被配置成使得根据以下关系来确定校验位c=c1,…,cl,
其中,当地址位被用于通过从地址位a1,…,aQ导出的位A1,…,Aq进行的检错时,P是(k+q,l)奇偶校验矩阵。
37.根据权利要求16所述的电路,其中,用于根据从存储器读出的状态值z′1,...,z′M来确定二进制辅助读取值y′1,...,y′k=LH(z′1,...,z′M)的第二子电路LH被配置成使得逐个分量地向每个三进制状态分量z′i,i=1,…,m,分配至少两个二进制读取值,并向每个二进制状态分量zm+1,…,zM分配至少一个二进制辅助读取值,并且使得适用k≥m+M。
38.一种用于存储二进制数据x1,…,xn和用于用二进制代码C进行纠错的电路,其中,所述电路包括:
三进制存储器电路,包括具有三进制存储单元的三进制存储器Sp,其中,所述三进制存储器电路被配置成使得二进制数据x1,…,xn可作为已编码三进制状态z1,…,zM在写地址a1,…,aQ处写入三进制存储器的存储单元的一个或多个第一存储单元中,其中,所述三进制存储器的存储单元的第一存储单元被配置成采取三个不同状态中的一个;
编码器,被配置成在三进制存储器的存储单元的第二存储单元中写入二进制校验位c1,…,cl,其中,编码器12h被配置成当二进制校验位c1,…,cl是数据位x1,…,xn的校验位时,并且当数据位x1,…,xn是在写地址a1,…,aQ处写入的时,在与数据位x1,…,xn相关联的写地址a1,…,aQ处写入二进制校验位c1,…,cl,
其中,所述三进制存储器电路被配置成当在三进制存储器的存储单元的读地址a′1,...,a′Q处读取时,输出状态值z′1,...,z′M并将状态值z′1,...,z′M变换成可能错误的二进制辅助读取值y′1,...,y′k,该存储单元被配置成采取三个不同的值,以及
其中,所述三进制存储器电路被配置成当在三进制存储器的存储单元的读地址a′1,...,a′Q处读取时输出可能错误的校验位c′1,...,c′l,以及
其中,所述三进制存储器电路被配置成当写地址等于读地址时和当不存在错误时输出无错误辅助读取值y1,…,yk和无错误校验位c1,…,cl,
其中,所述编码器Cod包括用于输入数据位x1,…,xn第一n位宽第一输入端和用于输入位A1,…,Aq的另一q位宽输入端和用于输出校验位c1,…,cl的l位宽输出端,其中,位A1,…,Aq取决于写地址a1,…,aQ的位,其中,数据位x1,…,xn以及相应的校验位被写入到写地址a1,…,aQ,并且其中,所述编码器被配置成使得根据数据位x1,…,xn和位A1,…,Aq来确定校验位c1,…,cl,使得
y1,...,yk,A1,...,Aq,c1,...,cl
是纠错码C的代码字,并且其中,位A1,…,Aq是根据写地址a1,…,aQ的位唯一地确定的,使得当写地址a1,…,aQ被馈送到所述电路的输入端中时,位A1,…,Aq是具有Q个二进制输入端和q个二进制输出端的组合电路FS的输出值,其中适用q≤Q。
39.根据权利要求38所述的电路,
其中q=Q,并且其中a1,...aQ=A1,...AQ。
40.根据权利要求38所述的电路,
其中
41.根据权利要求38所述的电路,其中,所述代码C是线性码。
42.根据权利要求39所述的电路,其中,所述代码C是线性码。
43.根据权利要求40所述的电路,其中,所述代码C是线性码。
44.根据权利要求38所述的电路,其中,所述代码C是具有生成矩阵G=(I,P)的线性码,并且其中,I是(k+q)单位矩阵,并且其中,P是[(k+q),l]奇偶校验矩阵,并且其中,所述校验位c1,…,cl是由下式定义的
c1,...,cl=(y1,...,yk,Aa,...,AQ)·P。
45.一种多位修正方法,包括:
基于二进制值序列来生成多个输出值,其中,所述多个输出值中的每一个具有至少三个不同基本值中的一个;
将每个输出值作为状态值存储在存储器的多个存储单元中的一个或多个存储单元中的不同的一个中,其中,其中存储了输出值的所述一个或多个存储单元均被配置成采取至少三个不同状态中的一个;
从被配置成采取所述至少三个不同状态中的一个的存储单元中的至少一个读取状态值中的一个或多个,其中,所述一个或多个状态值中的每一个具有所述至少三个不同基本值中的一个,其中,二进制辅助读取值是基于所述一个或多个状态值而确定的;
基于所述二进制值序列的至少一部分来生成一个或多个二进制校验位,使得当所述二进制辅助读取值y′1,…,y′k和所述一个或多个二进制校验位c1,…,cl是无错误的时,所述二进制辅助读取值和所述一个或多个二进制校验位一起形成纠错码的代码字中的一个;以及
将所生成的一个或多个校验位中的每一个存储在存储器的存储单元中的一个或多个中,使得所述一个或多个校验位中的每一个被存储在存储器的存储单元中的不同的一个中,其中,其中存储了校验位的每个存储单元被配置成采取至少两个不同状态中的一个。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/664495 | 2012-10-31 | ||
US13/664,495 US8935590B2 (en) | 2012-10-31 | 2012-10-31 | Circuitry and method for multi-bit correction |
US13/664,495 | 2012-10-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103793289A CN103793289A (zh) | 2014-05-14 |
CN103793289B true CN103793289B (zh) | 2017-04-12 |
Family
ID=50479942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310533144.9A Active CN103793289B (zh) | 2012-10-31 | 2013-10-31 | 用于多位修正的电路和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8935590B2 (zh) |
CN (1) | CN103793289B (zh) |
DE (1) | DE102013222136B9 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101498734B1 (ko) | 2007-09-28 | 2015-03-12 | 엘지전자 주식회사 | 무선 통신 시스템에서 제어정보 검출 방법 |
US9203437B2 (en) | 2012-12-19 | 2015-12-01 | Infineon Technologies Ag | Circuitry and method for correcting 3-bit errors containing adjacent 2-bit error |
JP6600146B2 (ja) * | 2015-03-27 | 2019-10-30 | ルネサスエレクトロニクス株式会社 | データ処理回路及びエラー訂正方法 |
US9450609B1 (en) * | 2015-03-31 | 2016-09-20 | Altera Corporation | Methods and apparatus for embedding an error correction code in memory cells |
DE102016115272A1 (de) | 2016-08-17 | 2018-02-22 | Infineon Technologies Ag | Speicher mit unterschiedlichen zuverlässigkeiten |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728124B1 (en) * | 2001-08-03 | 2004-04-27 | Netlogic Microsystems, Inc. | Content addressable memory with error detection signaling |
CN1551224A (zh) * | 2003-04-15 | 2004-12-01 | ���ǵ�����ʽ���� | 集成电路设备的输入/输出接口 |
CN1592935A (zh) * | 2001-09-25 | 2005-03-09 | 微米技术有限公司 | 三级内容寻址存储器单元 |
CN101938433A (zh) * | 2009-07-03 | 2011-01-05 | 南京壹进制信息技术有限公司 | 高效有线通讯方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4415992A (en) * | 1981-02-25 | 1983-11-15 | Motorola, Inc. | Memory system having memory cells capable of storing more than two states |
JPS6342099A (ja) * | 1986-08-06 | 1988-02-23 | Fujitsu Ltd | 3値レベルrom |
US5163021A (en) * | 1989-04-13 | 1992-11-10 | Sundisk Corporation | Multi-state EEprom read and write circuits and techniques |
EP1031992B1 (en) * | 1989-04-13 | 2006-06-21 | SanDisk Corporation | Flash EEPROM system |
US5432735A (en) * | 1993-07-08 | 1995-07-11 | Dellusa, L.P. | Ternary storage dynamic RAM |
JP3999822B2 (ja) * | 1993-12-28 | 2007-10-31 | 株式会社東芝 | 記憶システム |
JPH09288895A (ja) * | 1996-04-19 | 1997-11-04 | Toshiba Corp | 3値記憶半導体記憶システム |
JP2001093289A (ja) * | 1999-09-24 | 2001-04-06 | Nec Corp | 多段階読み出し回路および多段階読み出し方法 |
US6978343B1 (en) | 2002-08-05 | 2005-12-20 | Netlogic Microsystems, Inc. | Error-correcting content addressable memory |
JP2005353238A (ja) * | 2004-06-14 | 2005-12-22 | Renesas Technology Corp | 連想メモリ |
JP4177824B2 (ja) * | 2005-03-16 | 2008-11-05 | 株式会社東芝 | 符号化方法、復号化方法および符号化システム |
JP2009009641A (ja) * | 2007-06-27 | 2009-01-15 | Elpida Memory Inc | 半導体記憶装置及びその読み出し方法 |
DE102010041680B9 (de) | 2010-09-29 | 2014-09-18 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz, Vorrichtung und Verfahren zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz und Decodierer und Verfahren zum Decodieren einer fehlerhaften, codierten Bitsequenz |
-
2012
- 2012-10-31 US US13/664,495 patent/US8935590B2/en active Active
-
2013
- 2013-10-30 DE DE102013222136.3A patent/DE102013222136B9/de active Active
- 2013-10-31 CN CN201310533144.9A patent/CN103793289B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728124B1 (en) * | 2001-08-03 | 2004-04-27 | Netlogic Microsystems, Inc. | Content addressable memory with error detection signaling |
CN1592935A (zh) * | 2001-09-25 | 2005-03-09 | 微米技术有限公司 | 三级内容寻址存储器单元 |
CN1551224A (zh) * | 2003-04-15 | 2004-12-01 | ���ǵ�����ʽ���� | 集成电路设备的输入/输出接口 |
CN101938433A (zh) * | 2009-07-03 | 2011-01-05 | 南京壹进制信息技术有限公司 | 高效有线通讯方法 |
Also Published As
Publication number | Publication date |
---|---|
US20140122967A1 (en) | 2014-05-01 |
DE102013222136B9 (de) | 2020-04-23 |
CN103793289A (zh) | 2014-05-14 |
DE102013222136B4 (de) | 2019-11-28 |
DE102013222136A1 (de) | 2014-04-30 |
US8935590B2 (en) | 2015-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104900271B (zh) | 用于通过数据反演来提高数据存储的设备和方法 | |
CN103793289B (zh) | 用于多位修正的电路和方法 | |
CN103390431B (zh) | 用于校正三进制存储的二进制数据的方法和装置 | |
JP6929776B2 (ja) | 物理的複製不可能関数からの暗号鍵生成 | |
CN102640422B (zh) | 为编码和解码过程采用使码元永久钝化的fec码的方法和装置 | |
CN103886915B (zh) | 用于校正包括邻近2比特错误的3比特错误的电路和方法 | |
EP2946348A1 (en) | Syndrome of degraded quantum redundancy coded states | |
CN104393878A (zh) | 用于纠正在编码比特序列中的至少单比特错误的设备和方法 | |
CN101183565A (zh) | 存储介质中数据校验方法 | |
CN103746774B (zh) | 一种高效数据读取的容错编码方法 | |
CN105808170B (zh) | 一种能够修复单磁盘错误的raid6编码方法 | |
CN109753374A (zh) | 内存位级的修复方法 | |
CN106469099A (zh) | 在应用wom码的情况下的错误纠正 | |
CN104348588A (zh) | 多位错误的有效错误校正 | |
CN102546095B (zh) | 用于检测编码二进制字中的错误的设备和方法 | |
CN104598381B (zh) | 一种蜕变测试中失效测试用例的定位方法 | |
US9678924B2 (en) | Method and data processing device for reconstructing a vector | |
KR101768066B1 (ko) | 그래프 상태를 이용한 양자 오류 정정 부호의 생성 방법 및 장치 | |
CN103703446A (zh) | 网络存储中抗拜占庭失效的数据重构、失效数据恢复方法及装置 | |
CN110277131A (zh) | 基于nand flash存储器的校验方法、终端设备及存储介质 | |
Samanta et al. | Comments on" a novel approach of error detection and correction for efficient energy in wireless networks". | |
CN102487312A (zh) | 用于检测多个编码二进制字中的错误的设备和方法 | |
CN105279048A (zh) | 一种数据恢复方法及装置 | |
CN109062725A (zh) | 一种二进制mds阵列编码的编码框架方法 | |
US10516504B2 (en) | Two bit error calibration device for 256 bit transfer and the method for performing the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |