專(zhuān)利名稱(chēng):編碼方法和存儲(chǔ)裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及可用于多值記錄快擦寫(xiě)存儲(chǔ)器、運(yùn)用該快擦寫(xiě)存儲(chǔ)器的存儲(chǔ)卡,等等的編碼方法和存儲(chǔ)裝置。
背景技術(shù):
今年來(lái),作為存儲(chǔ)裝置,以廣泛使用諸如快擦寫(xiě)存儲(chǔ)器的半導(dǎo)體存儲(chǔ)器。在快擦寫(xiě)存儲(chǔ)器中,通過(guò)使用包括大量存儲(chǔ)單元(一般,數(shù)量大約為65,000,000)的單元陣列記錄數(shù)據(jù),其中所述存儲(chǔ)單元包含以分層的形式排列在半導(dǎo)體襯底上的浮柵(電荷存儲(chǔ)層)和控制柵(見(jiàn)圖16)。在這種情況下,每個(gè)單元陣列保留數(shù)據(jù)作為存儲(chǔ)在浮柵中的電荷量。
圖17A和17B示出用于快擦寫(xiě)存儲(chǔ)器中的存儲(chǔ)單元100的結(jié)構(gòu)。即,如此構(gòu)成存儲(chǔ)單元100從而將電荷存儲(chǔ)層(浮柵)102和控制柵103堆迭在半導(dǎo)體襯底101上。當(dāng)將數(shù)據(jù)項(xiàng)寫(xiě)在存儲(chǔ)單元100上時(shí),控制在浮柵102上保留的電荷量,從而根據(jù)記錄的數(shù)據(jù)(“0”或“1”),它到達(dá)如圖18所示的兩個(gè)門(mén)限電壓之一。另一方面,當(dāng)從存儲(chǔ)單元100讀取數(shù)據(jù)項(xiàng)時(shí),通過(guò)運(yùn)用在兩個(gè)門(mén)限電壓之間設(shè)定參考電壓,確定根據(jù)存儲(chǔ)單元100的門(mén)限電壓是高于還是低于參考電壓來(lái)判斷在存儲(chǔ)單元100中的數(shù)據(jù)項(xiàng)是“0”或“1”。
對(duì)于半導(dǎo)體存儲(chǔ)器而言,防止由高集成、高密度電路實(shí)施的各種影響引起可靠性下降是十分關(guān)鍵的。作為保留存儲(chǔ)裝置可靠性的一部分努力,通常將基于糾錯(cuò)碼(諸如,Hamming碼)的糾錯(cuò)電路加入半導(dǎo)體存儲(chǔ)器,以抵御諸如故障單元特別是因不斷增加寫(xiě)入和擦除操作的數(shù)量導(dǎo)致的老化引起的故障。
糾錯(cuò)碼是一種冗余碼,要求把校驗(yàn)數(shù)據(jù)附在信息數(shù)據(jù)上,而且將兩個(gè)數(shù)據(jù)用于校正整個(gè)代碼中的差錯(cuò)。例如,將如圖19所示的10位校驗(yàn)數(shù)據(jù)加入對(duì)于512位塊的信息的縮短(abbreviated)Hamming碼,從而即使在522位碼中發(fā)生一個(gè)差錯(cuò),也可以校正該差錯(cuò)。
圖20示出其中加入了基于Hamming碼的糾錯(cuò)電路的快擦寫(xiě)存儲(chǔ)器110的結(jié)構(gòu)??觳翆?xiě)存儲(chǔ)器110包括具有多個(gè)存儲(chǔ)單元的單元陣列111、將輸入數(shù)據(jù)Din轉(zhuǎn)換成縮短Hamming碼以提供寫(xiě)數(shù)據(jù)WD從而寫(xiě)入單元陣列111的編碼器112以及通過(guò)對(duì)從單元陣列111檢索的讀取數(shù)據(jù)RD進(jìn)行糾錯(cuò)處理,提供輸出數(shù)據(jù)Dout的Hamming碼解碼器113。在這種情況下,編碼器112和Hamming碼解碼器113構(gòu)成糾錯(cuò)電路。編碼器112把10位校驗(yàn)數(shù)據(jù)加到每個(gè)512位塊的輸入數(shù)據(jù)Din,而且產(chǎn)生對(duì)于512位信息數(shù)據(jù)的縮短Hamming碼。
在如圖20所示的快擦寫(xiě)存儲(chǔ)器110中,如下發(fā)生數(shù)據(jù)寫(xiě)入操作。即,首先把輸入數(shù)據(jù)Din輸入到編碼器112。于是,編碼器112把輸入數(shù)據(jù)Din轉(zhuǎn)換成具有512位信息數(shù)據(jù)的縮短Hamming碼,從而產(chǎn)生寫(xiě)數(shù)據(jù)WD。把從編碼器112輸出的寫(xiě)數(shù)據(jù)WD饋送和寫(xiě)入到單元陣列111。
換句話說(shuō),如下執(zhí)行數(shù)據(jù)讀取操作。把從單元陣列111檢索的讀取數(shù)RD輸入到Hamming碼解碼器113。如果讀取數(shù)據(jù)RD的一個(gè)代碼不包含任何差錯(cuò),那么Hamming碼解碼器113輸出無(wú)改變的信息數(shù)據(jù)作為輸出數(shù)據(jù)Dout。如果讀取數(shù)據(jù)RD的一個(gè)代碼具有一個(gè)差錯(cuò)位,那么在糾錯(cuò)之后,Hamming碼解碼器113輸出信息數(shù)據(jù)作為輸出數(shù)據(jù)Dout。
接著,描述將縮短的BCH碼(Bose-Chaudhuri-Hocquenghem碼)用作能夠校正在一個(gè)代碼中的兩個(gè)差錯(cuò)的糾錯(cuò)碼的例子。由Hideki Imai在“代碼原理”(日本的電子、信息和通信工程委員會(huì))中舉例說(shuō)明了BCH碼和代碼縮短技術(shù)。例如,將20位校驗(yàn)數(shù)據(jù)加到對(duì)于512位信息數(shù)據(jù)的經(jīng)縮短BCH碼(如圖21所示),從而能夠校正在532位代碼中的兩個(gè)差錯(cuò)。
圖22示出根據(jù)BCH碼加入糾錯(cuò)電路的快擦寫(xiě)存儲(chǔ)器120的結(jié)構(gòu)。快擦寫(xiě)存儲(chǔ)器120包括具有多個(gè)存儲(chǔ)單元的單元陣列121、用于將輸入數(shù)據(jù)Din轉(zhuǎn)換成縮短BCH碼以提供寫(xiě)數(shù)據(jù)WD,從而寫(xiě)入到單元陣列121的編碼器122和用于對(duì)從單元陣列121檢索到讀取數(shù)據(jù)RD進(jìn)行糾錯(cuò)處理以提供輸出數(shù)據(jù)Dout。在這種情況下,編碼器122和BCH碼解碼123構(gòu)成糾錯(cuò)電路。編碼器122把20位檢測(cè)數(shù)據(jù)加到每512位塊輸入數(shù)據(jù)Din,從而產(chǎn)生能夠糾正關(guān)于512位信息數(shù)據(jù)的兩個(gè)差錯(cuò)的縮短BCH碼。
在如圖22所示的快擦寫(xiě)存儲(chǔ)器中,如下發(fā)生數(shù)據(jù)寫(xiě)入操作。即,首先將輸入數(shù)據(jù)Din輸入到編碼器122。于是,編碼器122把輸入數(shù)據(jù)Din轉(zhuǎn)換成具有512位信息數(shù)據(jù)的縮短BCH碼,從而產(chǎn)生寫(xiě)數(shù)據(jù)WD。把從編碼器122輸出的寫(xiě)數(shù)據(jù)WD饋送和寫(xiě)入到單元陣列121。
另一方面,如下執(zhí)行數(shù)據(jù)讀取操作。把從單元陣列121檢索到的讀取數(shù)據(jù)RD輸入到BCH碼解碼器123。如果讀取數(shù)據(jù)RD的一個(gè)碼不包含任何差錯(cuò),那么BCH碼解碼器123輸出無(wú)改變的信息數(shù)據(jù)作為輸出數(shù)據(jù)Dout。如果讀取數(shù)據(jù)RD的一個(gè)代碼具有一個(gè)或兩個(gè)差錯(cuò)位,那么在糾錯(cuò)之后輸出信息數(shù)據(jù)作為輸出數(shù)據(jù)Dout。
如圖20和22所示,加入快擦寫(xiě)存儲(chǔ)器110或120的糾錯(cuò)電路可以抑制寫(xiě)數(shù)據(jù)的差錯(cuò),而與由于老化引起的一定數(shù)量的故障單元無(wú)關(guān)。然而,一般在糾錯(cuò)代碼中,需要相對(duì)大量校驗(yàn)數(shù)據(jù),它們是冗余校驗(yàn)數(shù)據(jù),來(lái)糾正大量的差錯(cuò),于是,增加了要使用的存儲(chǔ)單元數(shù)據(jù),以及擴(kuò)大了要加入的糾錯(cuò)電路的規(guī)模。
接著,描述由大量快擦寫(xiě)存儲(chǔ)器(快擦寫(xiě)存儲(chǔ)芯片)構(gòu)成的存儲(chǔ)卡。作為存儲(chǔ)不能由單個(gè)芯片快擦寫(xiě)存儲(chǔ)器處理的大量數(shù)據(jù)的存儲(chǔ)裝置,存儲(chǔ)卡包括多個(gè)快擦寫(xiě)存儲(chǔ)器和控制器。
圖23示出帶有具有基于BCH碼的糾錯(cuò)電路的控制器的存儲(chǔ)卡130的結(jié)構(gòu)。存儲(chǔ)卡130包括兩個(gè)快擦寫(xiě)存儲(chǔ)器131和132以及用于將數(shù)據(jù)寫(xiě)入這些快擦寫(xiě)存儲(chǔ)器131和132并從中讀取數(shù)據(jù)的控制器133。
控制器133包括將數(shù)據(jù)與在卡外側(cè)的設(shè)備交換的卡接口134、用于將輸入數(shù)據(jù)Din轉(zhuǎn)換成經(jīng)縮短的BCH碼以提供寫(xiě)數(shù)據(jù)WD,從而寫(xiě)入快擦寫(xiě)存儲(chǔ)器131和132的編碼器135、用于對(duì)來(lái)自快擦寫(xiě)存儲(chǔ)器131和132的讀取數(shù)據(jù)RD進(jìn)行糾錯(cuò)處理以提供輸出數(shù)據(jù)Dout的BCH碼解碼器136和用于控制將數(shù)據(jù)寫(xiě)入快擦寫(xiě)存儲(chǔ)器131和132并從中讀取數(shù)據(jù)的快擦寫(xiě)接口137。
在上述結(jié)構(gòu)中,解碼器135和BCH碼解碼器136構(gòu)成糾錯(cuò)電路。解碼器136把20位校驗(yàn)數(shù)據(jù)加入每512位塊的輸入數(shù)據(jù)Din,從而產(chǎn)生能夠糾正關(guān)于512位信息數(shù)據(jù)的兩個(gè)差錯(cuò)的縮短BCH碼。
在如圖23所示的存儲(chǔ)器卡130中,如下發(fā)生數(shù)據(jù)寫(xiě)入操作。即,首先由卡接口134將輸入數(shù)據(jù)Din放入卡,而且向編碼器135提供。于是,編碼器135把輸入數(shù)據(jù)Din轉(zhuǎn)換成具有512位信息數(shù)據(jù)的縮短BCH碼,從而產(chǎn)生寫(xiě)數(shù)據(jù)WD。在快擦寫(xiě)接口137的控制下,將從編碼器135輸出的寫(xiě)數(shù)據(jù)WD寫(xiě)入快擦寫(xiě)存儲(chǔ)器131和132。
換句話說(shuō),如下執(zhí)行數(shù)據(jù)讀取操作。在快擦寫(xiě)接口137的控制下,將從快擦寫(xiě)存儲(chǔ)器131或132檢索的讀取數(shù)據(jù)RD輸入到BCH碼解碼器136。如果讀取數(shù)據(jù)RD的一個(gè)代碼不包含任何差錯(cuò),那么BCH碼解碼器136輸出無(wú)改變的信息數(shù)據(jù)作為輸出數(shù)據(jù)Dout。如果讀取數(shù)據(jù)RD的一個(gè)代碼具有一個(gè)或兩個(gè)差錯(cuò)位,那么在糾錯(cuò)之后,BCH碼解碼器136輸出信息數(shù)據(jù)作為輸出數(shù)據(jù)Dout。通過(guò)這種方法,將通過(guò)卡接口134,輸出數(shù)據(jù)Dout從BCH碼解碼器136輸出到卡外側(cè)的設(shè)備。
如上所述,還將糾錯(cuò)碼用在由多個(gè)快擦寫(xiě)存儲(chǔ)器構(gòu)成的存儲(chǔ)卡中。如果將一個(gè)控制器用于糾錯(cuò),那么可以具有獲得大于加入快擦寫(xiě)存儲(chǔ)器中的糾錯(cuò)電路的糾錯(cuò)電路,從而可以檢測(cè)大量差錯(cuò)。
接著,描述快擦寫(xiě)存儲(chǔ)器的多值記錄。今年來(lái),提議將快擦寫(xiě)存儲(chǔ)器用于每單元的多位記錄,以增加快擦寫(xiě)存儲(chǔ)器的存儲(chǔ)能力。例如,如圖24A至24D所示,控制累積在用于四值記錄的快擦寫(xiě)存儲(chǔ)器的存儲(chǔ)單元100中的浮柵102中的電荷量,從而它可以達(dá)到表示要存儲(chǔ)的數(shù)據(jù)項(xiàng)的四個(gè)門(mén)限電壓(如圖25所示)中的一個(gè)(“11”、“10”、“01”或“00”)。當(dāng)讀取數(shù)據(jù)時(shí),運(yùn)用在各個(gè)鄰近門(mén)限值之間建立的三個(gè)參考電壓。通過(guò)將在存儲(chǔ)單元100中的門(mén)限值與每個(gè)參考電壓相比較,檢索來(lái)自存儲(chǔ)單元100的數(shù)據(jù)。這種安排允許每個(gè)存儲(chǔ)單元100存儲(chǔ)兩位信息。
如它們對(duì)應(yīng)的二進(jìn)制記錄那樣,多值記錄快擦寫(xiě)存儲(chǔ)器可以利用糾錯(cuò)電路。圖26示出用于加入基于BCH碼的糾錯(cuò)電路的16值(4位)記錄的快擦寫(xiě)存儲(chǔ)器140的結(jié)構(gòu)??觳翆?xiě)存儲(chǔ)器140包括具有多個(gè)存儲(chǔ)單元的單元陣列141、用于把輸入數(shù)據(jù)Din轉(zhuǎn)換成縮短BCH碼的編碼器142以提供寫(xiě)數(shù)據(jù)WD,從而寫(xiě)入單元陣列141和用于把從編碼器142輸出的寫(xiě)數(shù)據(jù)WD從串行數(shù)據(jù)格式轉(zhuǎn)換成4位并行數(shù)據(jù)格式,并向單元陣列141提供經(jīng)轉(zhuǎn)換的數(shù)據(jù)的1位/4位變換器143。
快擦寫(xiě)存儲(chǔ)器140還包括用于把從單元陣列141檢索到的讀取數(shù)據(jù)RD從4位并行數(shù)據(jù)格式轉(zhuǎn)換成串行數(shù)據(jù)格式的4位/1位變換器144,和用于通過(guò)對(duì)由4位/1位變換器144轉(zhuǎn)換成串行數(shù)據(jù)的讀取數(shù)據(jù)RD進(jìn)行糾錯(cuò)處理,提供讀取數(shù)據(jù)Dout。在這種情況下,編碼器142和BCH碼解碼器145構(gòu)成糾錯(cuò)電路。編碼器142把20位檢測(cè)數(shù)據(jù)加入每512位塊的輸入數(shù)據(jù)Din,從而產(chǎn)生能夠糾正關(guān)于512位信息數(shù)據(jù)的兩個(gè)差錯(cuò)的縮短BCH碼。
在如圖26所示的快擦寫(xiě)存儲(chǔ)器140中,如下發(fā)生數(shù)據(jù)寫(xiě)入操作。即,首先,把輸入數(shù)據(jù)Din輸入到編碼器142。于是,編碼器142把輸入數(shù)據(jù)Din轉(zhuǎn)換成具有512位信息數(shù)據(jù)的縮短BCH碼,從而產(chǎn)生寫(xiě)數(shù)據(jù)WD。由1位/4位變換器143將從編碼器142輸出的寫(xiě)數(shù)據(jù)WD從串行數(shù)據(jù)格式轉(zhuǎn)換成4位并行數(shù)據(jù)格式(4位數(shù)據(jù)用于存儲(chǔ)在存儲(chǔ)單元中),從而向單元陣列141提供寫(xiě)數(shù)據(jù)WD,而且將數(shù)據(jù)WD連續(xù)寫(xiě)入構(gòu)成單元陣列141的每個(gè)存儲(chǔ)單元。
換句話說(shuō),如下執(zhí)行數(shù)據(jù)讀取操作。由4位/1位變換器144將從單元陣列141檢索的讀取數(shù)據(jù)RD從4位并行數(shù)據(jù)格式轉(zhuǎn)換成串行數(shù)據(jù)格式。向BCH碼解碼器145提供經(jīng)轉(zhuǎn)換的串行數(shù)據(jù)。如果讀取數(shù)據(jù)RD的一個(gè)代碼不包含任何差錯(cuò),那么BCH碼解碼器145輸出無(wú)改變的信息數(shù)據(jù)作為輸出數(shù)據(jù)Dout。如果讀取數(shù)據(jù)RD的一個(gè)代碼具有一個(gè)或兩個(gè)差錯(cuò)位,在糾錯(cuò)之后,BCH碼解碼器145輸出信息數(shù)據(jù)作為輸出數(shù)據(jù)Dout。
多值記錄快擦寫(xiě)存儲(chǔ)器(諸如,如圖26所示的快擦寫(xiě)存儲(chǔ)器140)具有這樣的特征,即,單個(gè)故障單元導(dǎo)致多差錯(cuò)位。由于傳統(tǒng)的快擦寫(xiě)存儲(chǔ)器每存儲(chǔ)單元存儲(chǔ)一位,所以這些存儲(chǔ)器原則上將用于位糾錯(cuò)的代碼系統(tǒng),作為它們的糾錯(cuò)碼。然而,如果單個(gè)故障存儲(chǔ)單元導(dǎo)致多個(gè)差錯(cuò)位,那么用于逐位糾錯(cuò)的糾錯(cuò)碼是不夠的。
例如,在其中每個(gè)存儲(chǔ)器存儲(chǔ)4位數(shù)據(jù)的快擦寫(xiě)存儲(chǔ)器中,如果發(fā)現(xiàn)單個(gè)存儲(chǔ)器單元是不可訪問(wèn)的,那么必須用4個(gè)糾錯(cuò)碼來(lái)校正這個(gè)差錯(cuò)。如上所述,如果用上述糾錯(cuò)碼來(lái)校正多個(gè)這樣的差錯(cuò),那么需要大量糾錯(cuò)電路,從而這導(dǎo)致擴(kuò)大糾錯(cuò)電路的規(guī)模的不利之處。由于需要加入數(shù)量增加的冗余數(shù)據(jù)來(lái)糾正多個(gè)差錯(cuò),所以需要許多存儲(chǔ)器單元,它形成另一個(gè)缺點(diǎn)。
因此,本發(fā)明的目的在于提供具有小規(guī)模糾錯(cuò)電路的存儲(chǔ)裝置和有限數(shù)量的存儲(chǔ)單元,其中它通過(guò)少量的糾錯(cuò)可以保持充分的性能。本發(fā)明的另一個(gè)目的在于提供編碼方法和運(yùn)用該方法的存儲(chǔ)裝置,從而擴(kuò)展代碼長(zhǎng)度,同時(shí)仍然例如以字節(jié)為單位執(zhí)行與外側(cè)實(shí)體的數(shù)據(jù)交換。
發(fā)明概述在執(zhí)行本發(fā)明的過(guò)程中,根據(jù)本發(fā)明的一個(gè)方面,提供一種存儲(chǔ)裝置,它包括單元陣列,它具有多個(gè)存儲(chǔ)單元,其中每個(gè)所述存儲(chǔ)單元存儲(chǔ)多位數(shù)據(jù);編碼器,用于把輸入數(shù)據(jù)轉(zhuǎn)換成Reed-Solomon碼以提供寫(xiě)數(shù)據(jù),從而寫(xiě)入到所述單元陣列;和Reed-Solomon碼解碼器,用于對(duì)從所述單元陣列檢索到的讀取數(shù)據(jù)進(jìn)行糾錯(cuò)處理以提供輸出數(shù)據(jù)。
根據(jù)本發(fā)明的另一個(gè)方面,提供一種存儲(chǔ)裝置,它包括存儲(chǔ)部分,具有由存儲(chǔ)多位數(shù)據(jù)的多個(gè)存儲(chǔ)單元構(gòu)成的單元陣列;和控制器,用于把數(shù)據(jù)寫(xiě)入所述存儲(chǔ)部分并從中讀取數(shù)據(jù);其中,所述控制器包括編碼器,用于把輸入數(shù)據(jù)轉(zhuǎn)換成Reed-Solomon碼以提供寫(xiě)數(shù)據(jù),從而寫(xiě)入到所述存儲(chǔ)部分;和Reed-Solomon碼解碼器,用于對(duì)從所述存儲(chǔ)部分檢索的讀取數(shù)據(jù)進(jìn)行糾錯(cuò)處理以提供輸出數(shù)據(jù)。
通過(guò)本發(fā)明,單元陣列中的每個(gè)存儲(chǔ)單元存儲(chǔ)多位數(shù)據(jù)。對(duì)于寫(xiě)入操作,編碼器把輸入數(shù)據(jù)轉(zhuǎn)換成Reed-Solomon碼作為寫(xiě)入到單元陣列的寫(xiě)數(shù)據(jù)。Reed-Solomon碼把多個(gè)位看作一個(gè)字節(jié),而且是糾錯(cuò)碼,用作以字節(jié)為單位糾錯(cuò)。對(duì)于讀取操作,從單元陣列中的每個(gè)存儲(chǔ)單元讀取多位數(shù)據(jù),而且由Reed-Solomon碼解碼器對(duì)讀取數(shù)據(jù)進(jìn)行糾錯(cuò)處理,從而提供輸出數(shù)據(jù)。
通過(guò)這種方法,把用于以字節(jié)為單位的糾錯(cuò)的Reed-Solomon碼用作對(duì)于由存儲(chǔ)單元構(gòu)成的存儲(chǔ)裝置的糾錯(cuò)碼,,其中每個(gè)存儲(chǔ)單元存儲(chǔ)多值數(shù)據(jù),從而可以提供包含少量糾錯(cuò)的良好性能。這可以比以前使用的更少量的存儲(chǔ)單元來(lái)減小糾錯(cuò)電路的規(guī)模。
此外,根據(jù)本發(fā)明的另一個(gè)方面,提供一種編碼方法,其特征在于,包括下列步驟用m位數(shù)據(jù)補(bǔ)充(n-m)位數(shù)據(jù)以轉(zhuǎn)換成n位數(shù)據(jù),n是大于m的整數(shù);運(yùn)用將n位看作一個(gè)碼元的Reed-Solomon碼編碼所述n位數(shù)據(jù);以及在補(bǔ)充所述(n-m)位數(shù)據(jù)之前輸出m位數(shù)據(jù)作為信息數(shù)據(jù),同時(shí)在經(jīng)歷了n位/m位變換之后輸出m位數(shù)據(jù)作為校驗(yàn)數(shù)據(jù)。
此外,根據(jù)本發(fā)明的又一個(gè)方面,提供一種存儲(chǔ)裝置,包括單元陣列,具有多個(gè)存儲(chǔ)單元;編碼器,用于將輸入數(shù)據(jù)轉(zhuǎn)換成糾錯(cuò)碼以提供寫(xiě)數(shù)據(jù),從而寫(xiě)入到所述單元陣列;和解碼器,用于對(duì)從所述單元陣列檢索到的讀取數(shù)據(jù)進(jìn)行糾錯(cuò)處理以提供輸出數(shù)據(jù);其特征在于,所述編碼器用m位輸入數(shù)據(jù)補(bǔ)充(n-m)位數(shù)據(jù)以轉(zhuǎn)換成n位數(shù)據(jù),n是大于m的整數(shù),運(yùn)用將n位看作一個(gè)碼元的Reed-Solomon碼編碼所述n位數(shù)據(jù),而且在補(bǔ)充所述(n-m)位數(shù)據(jù)之前輸出所述m位數(shù)據(jù)作為信息數(shù)據(jù),同時(shí)在經(jīng)歷n位/m位變換之后輸出所述m位數(shù)據(jù)作為校驗(yàn)數(shù)據(jù);和所述解碼器用從所述單元陣列檢索到的所述m位讀取數(shù)據(jù)補(bǔ)充關(guān)于信息數(shù)據(jù)的所述(n-m)位數(shù)據(jù),以轉(zhuǎn)換成n位數(shù)據(jù),使校驗(yàn)數(shù)據(jù)部分進(jìn)行m位/n位轉(zhuǎn)換成n位數(shù)據(jù),之后對(duì)所述經(jīng)轉(zhuǎn)換n位數(shù)據(jù)進(jìn)行糾錯(cuò)處理,提供在所述經(jīng)糾正的n位信息數(shù)據(jù)中的m位數(shù)據(jù)部分作為所述輸出數(shù)據(jù)。
此外,根據(jù)本發(fā)明的又一個(gè)方面,提供一種存儲(chǔ)裝置,它包括由多個(gè)存儲(chǔ)單元構(gòu)成的單元陣列的存儲(chǔ)部分、用于將數(shù)據(jù)寫(xiě)入所述存儲(chǔ)部分和從中讀取數(shù)據(jù)的控制器,其特征在于所述控制器包括編碼器,它用于將輸入數(shù)據(jù)轉(zhuǎn)換成糾錯(cuò)碼以提供寫(xiě)數(shù)據(jù),從而寫(xiě)入到所述存儲(chǔ)部分;和解碼器,用于對(duì)從所述存儲(chǔ)部分檢索到的讀取數(shù)據(jù)進(jìn)行糾錯(cuò)處理以提供輸出數(shù)據(jù);其中所述編碼器用m位輸入數(shù)據(jù)補(bǔ)充(n-m)位數(shù)據(jù)以轉(zhuǎn)換成n位數(shù)據(jù),n是大于m的整數(shù)、運(yùn)用將n位看作是一個(gè)碼元的Reed-Solomon碼編碼所述n位數(shù)據(jù)和在補(bǔ)充所述(n-m)位數(shù)據(jù)之前輸出所述m位數(shù)據(jù)作為信息數(shù)據(jù),同時(shí)在經(jīng)歷n位/m位變換之后輸出所述m位數(shù)據(jù)作為校驗(yàn)數(shù)據(jù);和其中,所述解碼器用從所述單元陣列檢索到的m位讀取數(shù)據(jù)補(bǔ)充所述n-m位數(shù)據(jù)以轉(zhuǎn)換成與其信息數(shù)據(jù)部分相關(guān)的n位數(shù)據(jù)、對(duì)所述m位讀取數(shù)據(jù)的糾驗(yàn)數(shù)據(jù)部分進(jìn)行m位/n位變換成n位數(shù)據(jù),之后對(duì)所述經(jīng)變換n位數(shù)據(jù)進(jìn)行糾錯(cuò)處理并提供在所述經(jīng)糾正的n位信息數(shù)據(jù)中的m位數(shù)據(jù)部分作為所述輸出數(shù)據(jù)。
運(yùn)用本發(fā)明,單元陣列的每個(gè)存儲(chǔ)單元存儲(chǔ)一位或多位數(shù)據(jù)。對(duì)于寫(xiě)入操作,把m位輸入數(shù)據(jù)輸入到編碼器。例如,用m位輸入數(shù)據(jù)補(bǔ)充0的(n-m)位數(shù)據(jù)(n>m),以轉(zhuǎn)換成n位數(shù)據(jù)。例如,用2位零補(bǔ)充8位輸入數(shù)據(jù),以轉(zhuǎn)換成10位數(shù)據(jù)。于是,把n位數(shù)據(jù)轉(zhuǎn)換成把n位看作是一個(gè)碼元的Reed-Solomon碼。在補(bǔ)充(n-m)位數(shù)據(jù)之前,輸出m位數(shù)據(jù)作為信息數(shù)據(jù),同時(shí)在經(jīng)歷n位/m位變換之后輸出m位數(shù)據(jù)作為校驗(yàn)數(shù)據(jù)。于是,將從編碼器輸出的m位數(shù)據(jù)連續(xù)饋送和寫(xiě)入到單元陣列中的單元。
Reed-Solomon碼是把多個(gè)位看作一個(gè)碼元的糾錯(cuò)碼,以碼元為單位糾錯(cuò)。對(duì)于讀取操作,把從單元陣列檢索的m位數(shù)據(jù)輸入到解碼器。于是,用對(duì)于其信息數(shù)據(jù)部分的m位數(shù)據(jù)補(bǔ)充(n-m)位數(shù)據(jù),以轉(zhuǎn)換成n位數(shù)據(jù),而且對(duì)其校驗(yàn)數(shù)據(jù)部分進(jìn)行m位/n位轉(zhuǎn)換成n位數(shù)據(jù),從而重現(xiàn)構(gòu)成把n位看作是1個(gè)碼元的Reed-Solomon碼。接著,對(duì)重現(xiàn)構(gòu)成的Reed-Solomon碼進(jìn)行糾錯(cuò)處理。于是,輸出校正的n位信息數(shù)據(jù)的m位部分作為輸出數(shù)據(jù)。
如上所述,輸入和輸出數(shù)據(jù)都是m位數(shù)據(jù),從而編碼器將n位(n>m)看作一個(gè)碼元的Reed-Solomon碼用于它的編碼操作。因此,能夠擴(kuò)展代碼長(zhǎng)度,同時(shí)保持將數(shù)據(jù)與外部實(shí)體以m位為單位進(jìn)行交換。出于這個(gè)原因,不需要為了編碼的目的,將預(yù)定長(zhǎng)度的信息數(shù)據(jù)分成段。這可以減小校驗(yàn)數(shù)據(jù)(冗余數(shù)據(jù)),同時(shí)保存解碼數(shù)據(jù)的連續(xù)性。
圖1是作為本發(fā)明的第一實(shí)施例實(shí)施的快擦寫(xiě)存儲(chǔ)器的方框圖;圖2是典型的縮短Reed-Solomon碼的示意圖;圖3是示出如何發(fā)生位轉(zhuǎn)換的解釋圖;圖4是作為本發(fā)明的第二實(shí)施例實(shí)施的存儲(chǔ)卡的方框圖;圖5是示出如何從單元陣列中讀取數(shù)據(jù)的解釋圖;圖6是允許在512字節(jié)信息數(shù)據(jù)中糾正一個(gè)差錯(cuò)的4個(gè)縮短Reed-Solomon碼的示意圖;圖7是示出連續(xù)解碼數(shù)據(jù)的解釋圖;圖8是作為本發(fā)明的第三實(shí)施例實(shí)施的快擦寫(xiě)存儲(chǔ)器的結(jié)構(gòu)的方框圖;圖9是在快擦寫(xiě)存儲(chǔ)器中的編碼器的結(jié)構(gòu)的方框圖;圖10是示出在編碼和解碼時(shí),對(duì)信息數(shù)據(jù)部分進(jìn)行8位/10位轉(zhuǎn)換操作的解釋圖;圖11是示出在編碼和解碼時(shí)對(duì)校驗(yàn)數(shù)據(jù)部分進(jìn)行8位/10位轉(zhuǎn)換操作的解釋圖;圖12是示出在快擦寫(xiě)存儲(chǔ)器中的解碼器的結(jié)構(gòu)的方框圖;圖13是示出在解碼時(shí)進(jìn)行10位/8位轉(zhuǎn)換操作的解釋圖;圖14是示出連續(xù)解碼數(shù)據(jù)的解釋圖;圖15是示出作為本發(fā)明的第四實(shí)施例實(shí)施的存儲(chǔ)卡的結(jié)構(gòu)的方框圖。
圖16是示出單元陣列的結(jié)構(gòu)的示意圖;圖17A和17B是示出存儲(chǔ)單元的結(jié)構(gòu)的方框圖;圖18是示出在存儲(chǔ)單元中的電壓分布的圖解表示;圖19是典型的縮短Hamming碼的示意圖;
圖20是示出加入基于縮短的Hamming碼的糾錯(cuò)電路的快擦寫(xiě)存儲(chǔ)器的結(jié)構(gòu)的方框圖;圖21是典型的縮短BCH碼的示意圖;圖22是示出加入基于BCH碼的糾錯(cuò)電路的快擦寫(xiě)存儲(chǔ)器的結(jié)構(gòu)的方框圖;圖23是示出存儲(chǔ)卡的結(jié)構(gòu)的方框圖,其中上述存儲(chǔ)卡帶有加入基于縮短BCH碼的糾錯(cuò)電路的控制器;圖24A至24D是示出如何充電存儲(chǔ)單元以進(jìn)行多值記錄的示意圖;圖25是示出用于多值記錄的在存儲(chǔ)單元中的電壓分布的圖解表示;和圖26是示出加入基于縮短BCH碼的糾錯(cuò)電路的多值記錄快擦寫(xiě)存儲(chǔ)器的結(jié)構(gòu)的方框圖。
本發(fā)明的較佳實(shí)施方式圖1示出實(shí)現(xiàn)本發(fā)明第一實(shí)施例的快擦寫(xiě)存儲(chǔ)器10的結(jié)構(gòu)。設(shè)計(jì)用于16值(4位)記錄的快擦寫(xiě)存儲(chǔ)器10包括能進(jìn)行糾雙錯(cuò)的基于縮短Reed-Solomon碼的糾錯(cuò)電路。Reed-Solomon碼和縮短Reed-Solomon碼中的每一個(gè)把多位看作一個(gè)字節(jié),以字節(jié)為單位進(jìn)行糾錯(cuò)。其中,在上述出版物Hideki Imai的“CodeTheories”(Institute of Electronics,Information and Communication Engineers ofJapan)中示意地描述了Reed-Solomon碼的細(xì)節(jié)。
現(xiàn)在,考慮把8位看作一個(gè)字節(jié)以對(duì)128字節(jié)的信息數(shù)據(jù)進(jìn)行糾正兩個(gè)差錯(cuò)的縮短Reed-Solomon碼。在此情況下,如圖2所示,校驗(yàn)數(shù)據(jù)由四個(gè)字節(jié)構(gòu)成,代碼總長(zhǎng)度為132字節(jié)(=1056位)。
在圖1中,快擦寫(xiě)存儲(chǔ)器10包括具有多個(gè)存儲(chǔ)單元的單元陣列11,編碼器12,用于把8位并行輸入數(shù)據(jù)Din轉(zhuǎn)換成縮短Reed-Solomon碼以提供待寫(xiě)入單元陣列11的寫(xiě)數(shù)據(jù)WD;以及8位/4位轉(zhuǎn)換器13,用于把編碼器12輸出的1字節(jié)(8位)并行寫(xiě)數(shù)據(jù)WD轉(zhuǎn)換成如圖3所示被饋送到單元陣列11的4位并行數(shù)據(jù)(待存入存儲(chǔ)單元的4位數(shù)據(jù))。
快擦寫(xiě)存儲(chǔ)器10還包括4位/8位轉(zhuǎn)換器14,用于把從單元陣列11檢索到的4位并行讀數(shù)據(jù)RD轉(zhuǎn)換成圖3所示的字節(jié)(8位)并行數(shù)據(jù);以及Reed-Solomon碼解碼器15,用于使在4位/8位轉(zhuǎn)換器14中被轉(zhuǎn)換成1字節(jié)并行數(shù)據(jù)的讀數(shù)據(jù)RD經(jīng)過(guò)糾錯(cuò)過(guò)程來(lái)提供輸出數(shù)據(jù)Dout。在此結(jié)構(gòu)中,編碼器12和Reed-Solomon碼解碼器15構(gòu)成糾錯(cuò)電路。然后,編碼器12給128字節(jié)塊的輸入數(shù)據(jù)Din補(bǔ)充4字節(jié)的校驗(yàn)數(shù)據(jù),以產(chǎn)生用于在128字節(jié)塊的信息數(shù)據(jù)中進(jìn)行糾正兩個(gè)差錯(cuò)的縮短Reed-Solomon碼。
在圖1所示的快擦寫(xiě)存儲(chǔ)器10中,如下實(shí)行數(shù)據(jù)寫(xiě)操作。即,把8位并行輸入數(shù)據(jù)Din輸入到編碼器12。然后,編碼器12把輸入數(shù)據(jù)Din轉(zhuǎn)換成用于128字節(jié)的信息數(shù)據(jù)的縮短Reed-Solomon碼,以提供寫(xiě)數(shù)據(jù)WD。由8位/4位轉(zhuǎn)換器13把編碼器12輸出的1字節(jié)(8位)并行寫(xiě)數(shù)據(jù)WD轉(zhuǎn)換成待饋送到單元陣列11的4位并行數(shù)據(jù),從而把經(jīng)轉(zhuǎn)換的數(shù)據(jù)連續(xù)寫(xiě)到構(gòu)成單元陣列11的存儲(chǔ)單元。
另一方面,如下發(fā)生數(shù)據(jù)讀操作。由4位/8位轉(zhuǎn)換器14把從單元陣列11檢索到的4位并行讀數(shù)據(jù)RD轉(zhuǎn)換成1字節(jié)(8位)并行數(shù)據(jù),將把此數(shù)據(jù)提供給Reed-Solomon碼解碼器15。如果讀數(shù)據(jù)RD的代碼都沒(méi)有差錯(cuò),則Reed-Solomon碼解碼器15以字節(jié)為單位輸出無(wú)變化的信息數(shù)據(jù)作為輸出數(shù)據(jù)Dout。如果讀數(shù)據(jù)RD的一個(gè)代碼有一個(gè)或兩個(gè)差錯(cuò)字節(jié),則Reed-Solomon碼解碼器15在糾錯(cuò)后以字節(jié)為單位輸出信息數(shù)據(jù)作為輸出數(shù)據(jù)Dout。
如果輸入數(shù)據(jù)Din或輸出數(shù)據(jù)Dout不是8位并行數(shù)據(jù),則還可在編碼器12的上游設(shè)置位轉(zhuǎn)換器,以把輸入數(shù)據(jù)Din轉(zhuǎn)換成8位并行數(shù)據(jù),或者可在Reed-Solomon碼解碼器15的下游安裝位轉(zhuǎn)換器,以把8位并行數(shù)據(jù)轉(zhuǎn)換成代表輸出數(shù)據(jù)Dout的并行或串行數(shù)據(jù)。
在第一實(shí)施例中,把Reed-Solomon碼用作一種在存儲(chǔ)單元(每個(gè)存儲(chǔ)4位數(shù)據(jù))構(gòu)成的單元陣列11中以字節(jié)為單位進(jìn)行糾錯(cuò)的糾錯(cuò)碼,則可以對(duì)有限數(shù)目的糾錯(cuò)而獲得充分的性能。因此,這使得減小糾錯(cuò)電路的規(guī)模并使所使用存儲(chǔ)單元的數(shù)目變小成為可能。
以下示出第一實(shí)施例的效果。為了說(shuō)明,假設(shè)65,536個(gè)信息數(shù)據(jù)單元構(gòu)成一個(gè)塊,1,024個(gè)塊構(gòu)成一個(gè)單元陣列,且以塊為單位把數(shù)據(jù)寫(xiě)入存儲(chǔ)器和從中讀取數(shù)據(jù)。還假設(shè)在一百萬(wàn)次寫(xiě)/擦操作后正常制造的單元出錯(cuò)的幾率為0.001%,此外,根據(jù)這些假設(shè)比較一百萬(wàn)次寫(xiě)/擦操作后塊出錯(cuò)的幾率。
在使用縮短BCH碼來(lái)糾正128字節(jié)(即,1,024位)信息數(shù)據(jù)中高達(dá)八個(gè)差錯(cuò)位時(shí),需要88位的校驗(yàn)數(shù)據(jù)。由于一個(gè)有缺陷的單元需要4位糾錯(cuò),所以這種用于糾正八個(gè)差錯(cuò)的糾錯(cuò)碼可對(duì)兩個(gè)出錯(cuò)單元進(jìn)行糾錯(cuò)。由于把1,112位存儲(chǔ)在278個(gè)單元中,且一個(gè)塊包含256個(gè)代碼,所以通過(guò)以下公式(1)計(jì)算得到塊出錯(cuò)的幾率為大約0.000091%。1-{Σi=02Ci278(1.0×10-5)i(1-1.0×10-5)278-i}256≈9.1×10-7...(1)]]>接著,在把縮短Reed-Solomon碼用于糾雙錯(cuò)時(shí)獲得出一塊出錯(cuò)的幾率。在此情況下,可糾正高達(dá)兩個(gè)字節(jié)的差錯(cuò)。這里,考慮到單個(gè)單元的差錯(cuò)不影響依據(jù)4位/8位轉(zhuǎn)換的多個(gè)字節(jié),所以由以下公式(2)來(lái)定義字節(jié)差錯(cuò)率,把兩個(gè)單元信息的8位看作一個(gè)字節(jié)。因而,從接著的公式(3),可估計(jì)塊產(chǎn)生缺陷的幾率為大約0.000077%。
1-(1-1.0×10-5)2≈2.0×10-5…(2)1-{Σi=02Ci132(2.0×10-5)i(1-2.0×10-5)132-i}256≈7.7×10-7...(3)]]>因此,可理解,用于糾正八個(gè)差錯(cuò)的縮短BCH碼和用于糾正兩個(gè)差錯(cuò)的縮短Reed-Solomon碼具有近似相同的糾錯(cuò)能力。然而,由于相對(duì)于BCH碼的糾正八個(gè)差錯(cuò),Reed-Solomon碼的糾正兩個(gè)差錯(cuò)要小得多,所以使用Reed-Solomon碼允許所構(gòu)成的糾錯(cuò)電路的規(guī)模遠(yuǎn)小于BHC碼所構(gòu)成的糾錯(cuò)電路的規(guī)模。此外,由于與BCH碼的88位冗余數(shù)據(jù)相比,Reed-Solomon碼的32位冗余數(shù)據(jù)小得多,所以Reed-Solomon碼可使用更少量的存儲(chǔ)單元。
接著,現(xiàn)在將描述本發(fā)明的第二實(shí)施例。圖4示出實(shí)現(xiàn)本發(fā)明第二實(shí)施例的存儲(chǔ)卡20的結(jié)構(gòu)。存儲(chǔ)卡20包括兩個(gè)用于16值(4位)記錄的快擦寫(xiě)存儲(chǔ)器以及包含基于糾雙錯(cuò)的縮短Reed-Solomon碼的糾錯(cuò)電路的控制器。
如圖4所示,存儲(chǔ)卡20包括兩個(gè)快擦寫(xiě)存儲(chǔ)器21和22以及用于來(lái)往于快擦寫(xiě)存儲(chǔ)器21和22的讀寫(xiě)數(shù)據(jù)的控制器23。
此外,控制器23具有卡片接口24,用于與卡片外的設(shè)備交換數(shù)據(jù);編碼器25,用于把8位并行輸入數(shù)據(jù)Din轉(zhuǎn)換成縮短Reed-Solomon碼以提供待寫(xiě)入快擦寫(xiě)存儲(chǔ)器21和22的寫(xiě)數(shù)據(jù)WD;以及8位/4位轉(zhuǎn)換器26,用于把編碼器25輸出的1字節(jié)(8位)并行寫(xiě)數(shù)據(jù)WD轉(zhuǎn)換成如圖3所示的4位并行數(shù)據(jù)(待存入存儲(chǔ)單元的4位數(shù)據(jù))。
快擦寫(xiě)存儲(chǔ)器10還包括4位/8位轉(zhuǎn)換器27,用于把從快擦寫(xiě)存儲(chǔ)器21或22檢索到的4位并行讀數(shù)據(jù)RD轉(zhuǎn)換成圖3所示的1字節(jié)(8位)并行數(shù)據(jù);Reed-Solomon碼解碼器28,用于使在4位/8位轉(zhuǎn)換器27中被轉(zhuǎn)換成1字節(jié)并行數(shù)據(jù)的讀數(shù)據(jù)RD經(jīng)過(guò)糾錯(cuò)過(guò)程來(lái)提供輸出數(shù)據(jù)Dout;以及快擦寫(xiě)接口29,用于控制來(lái)往于快擦寫(xiě)存儲(chǔ)器21和22的數(shù)據(jù)讀寫(xiě)。
在以上結(jié)構(gòu)中,編碼器25和Reed-Solomon碼解碼器28構(gòu)成糾錯(cuò)電路。然后,編碼器25給128字節(jié)塊的輸入數(shù)據(jù)Din補(bǔ)充4字節(jié)的校驗(yàn)數(shù)據(jù),以產(chǎn)生用于在128字節(jié)塊的信息數(shù)據(jù)中進(jìn)行糾正兩個(gè)錯(cuò)的縮短Reed-Solomon碼。
在圖4所示的存儲(chǔ)卡20中,如下實(shí)行數(shù)據(jù)寫(xiě)操作。即,輸入數(shù)據(jù)Din通過(guò)卡片接口24取入卡片并發(fā)送到編碼器25。編碼器25把輸入數(shù)據(jù)Din轉(zhuǎn)換成用于128字節(jié)的信息數(shù)據(jù)的縮短Reed-Solomon碼,以提供寫(xiě)數(shù)據(jù)WD。然后,由8位/4位轉(zhuǎn)換器26把編碼器25輸出的1字節(jié)(8位)并行寫(xiě)數(shù)據(jù)WD轉(zhuǎn)換成4位并行數(shù)據(jù)。在快擦寫(xiě)接口29的控制下,把經(jīng)轉(zhuǎn)換的4位并行數(shù)據(jù)寫(xiě)到快擦寫(xiě)存儲(chǔ)器21或快擦寫(xiě)存儲(chǔ)器22。
另一方面,如下發(fā)生數(shù)據(jù)讀操作。由4位/8位轉(zhuǎn)換器27把在快擦寫(xiě)接口29的控制下從快擦寫(xiě)存儲(chǔ)器21或快擦寫(xiě)存儲(chǔ)器22檢索到的4位并行讀數(shù)據(jù)RD轉(zhuǎn)換成1字節(jié)(8位)并行數(shù)據(jù),把經(jīng)轉(zhuǎn)換的1字節(jié)并行數(shù)據(jù)提供給Reed-Solomon碼解碼器28。如果讀數(shù)據(jù)RD的代碼都沒(méi)有差錯(cuò),則Reed-Solomon碼解碼器28以字節(jié)為單位輸出元變化的信息數(shù)據(jù)作為輸出數(shù)據(jù)Dout。如果讀數(shù)據(jù)RD的一個(gè)代碼有一個(gè)或兩個(gè)差錯(cuò)字節(jié),則Reed-Solomon碼解碼器28在糾錯(cuò)后以字節(jié)為單位輸出信息數(shù)據(jù)作為輸出數(shù)據(jù)Dout。這樣,通過(guò)卡片接口24把Reed-Solomon碼解碼器28輸出的輸出數(shù)據(jù)Dout發(fā)送到卡片外。
如果輸入數(shù)據(jù)Din或輸出數(shù)據(jù)Dout不是8位并行數(shù)據(jù),則還可在編碼器25的上游設(shè)置位轉(zhuǎn)換器,以把輸入數(shù)據(jù)Din轉(zhuǎn)換成8位并行數(shù)據(jù),或者可在Reed-Solomon碼解碼器28的下游安裝位轉(zhuǎn)換器,以把8位并行數(shù)據(jù)轉(zhuǎn)換成代表輸出數(shù)據(jù)Dout的并行或串行數(shù)據(jù)。
如上所述,在第二實(shí)施例中,把Reed-Solomon碼用作一種在快擦寫(xiě)存儲(chǔ)器21和22中以字節(jié)為單位進(jìn)行糾錯(cuò)的糾錯(cuò)碼,這兩個(gè)快擦寫(xiě)存儲(chǔ)器構(gòu)成包括存儲(chǔ)單元(每個(gè)存儲(chǔ)4位數(shù)據(jù))的單元陣列形成的存儲(chǔ)器部分。與第一實(shí)施例相同,第二實(shí)施例以有限數(shù)目的糾錯(cuò)而獲得充分的性能。相應(yīng)地,第二實(shí)施例也使得減小糾錯(cuò)電路的規(guī)模并使所使用存儲(chǔ)單元的數(shù)目變小成為可能。此外,由于控制器23來(lái)糾錯(cuò),所以允許糾錯(cuò)電路的規(guī)模比在把糾錯(cuò)電路安裝在快擦寫(xiě)存儲(chǔ)器21或22中時(shí)大。因此,即使多值記錄中有大量差錯(cuò),也可得到糾正。
這里,在以下重述從快擦寫(xiě)存儲(chǔ)器讀取數(shù)據(jù)的過(guò)程。不是以單元為單位,而是以所謂的頁(yè)(例如,每頁(yè)代表1,024個(gè)單元)為單位從單元陣列中同時(shí)讀取數(shù)據(jù)。從輸出緩沖器(見(jiàn)圖5)中連續(xù)輸出所讀取的數(shù)據(jù)。因此,例如從16值記錄快擦寫(xiě)存儲(chǔ)器(其中,一頁(yè)代表1,024單元的信息),檢索4,096位(512字節(jié))的信息作為一個(gè)單位。由于主要以字節(jié)(8位)為單位與存儲(chǔ)器外的設(shè)備交換數(shù)據(jù),所以Reed-Solomon碼的碼元長(zhǎng)度最好為8位,從而保證一致性。
然而,把8位看作一個(gè)碼元的Reed-Solomon碼的代碼長(zhǎng)度為255個(gè)字節(jié),這使得在編碼時(shí)必須把512字節(jié)的數(shù)據(jù)分割成三或四段,給每一段補(bǔ)充校驗(yàn)數(shù)據(jù)(冗余數(shù)據(jù))。圖6示出以四個(gè)縮短Reed-Solomon碼對(duì)512字節(jié)的數(shù)據(jù)進(jìn)行示意編碼的編碼情況,每個(gè)Reed-Solomon碼能糾正128字節(jié)的信息數(shù)據(jù)中的一個(gè)差錯(cuò)。
作為糾錯(cuò)碼的普遍特性,如果補(bǔ)充相同數(shù)目的校驗(yàn)數(shù)據(jù),則與在編碼前對(duì)相同的信息數(shù)據(jù)進(jìn)行分段時(shí)相比,當(dāng)把信息數(shù)據(jù)作為整體進(jìn)行編碼時(shí)性能更好。在同時(shí)讀取512字節(jié)的信息數(shù)據(jù)時(shí),如果把全部512字節(jié)的信息數(shù)據(jù)作為整體進(jìn)行編碼,則效率較高。
此外,如果在編碼時(shí)把一頁(yè)數(shù)據(jù)分割成段,則輸出的解碼數(shù)據(jù)具有在解碼時(shí)插入的間隔(見(jiàn)圖7)。從系統(tǒng)性能的觀點(diǎn),應(yīng)盡可能不間斷地輸出一頁(yè)解碼數(shù)據(jù)。因此,在這方面,最好把一頁(yè)數(shù)據(jù)作為一個(gè)塊進(jìn)行編碼。
接著,將描述本發(fā)明的第三實(shí)施例。圖8示出實(shí)現(xiàn)本發(fā)明第三實(shí)施例的快擦寫(xiě)存儲(chǔ)器30的結(jié)構(gòu)。快擦寫(xiě)存儲(chǔ)器30允許以字節(jié)(8位)為單位與外部設(shè)備交換數(shù)據(jù)。這種用于16值(4位)記錄的快擦寫(xiě)存儲(chǔ)器30包含基于能進(jìn)行糾雙錯(cuò)的縮短Reed-Solomon碼的糾錯(cuò)電路。
在此情況下,由于把每頁(yè)中的信息數(shù)據(jù)(例如,512字節(jié))作為一個(gè)塊進(jìn)行編碼,所以使用把10位看作一個(gè)碼元的縮短Reed-Solomon碼來(lái)縮短編碼。這里,如果一頁(yè)的信息數(shù)據(jù)由512字節(jié)構(gòu)成,則用于糾雙錯(cuò)的校驗(yàn)數(shù)據(jù)(冗余數(shù)據(jù))包括需要516字節(jié)的代碼長(zhǎng)度的四個(gè)碼元。由于把10位看作一個(gè)碼元的Reed-Solomon碼為1,023字節(jié)長(zhǎng),所以使得516字節(jié)長(zhǎng)的代碼可通過(guò)縮短來(lái)獲得。此外,包括四個(gè)碼元的校驗(yàn)數(shù)據(jù)總計(jì)為代表五個(gè)字節(jié)的40位。
如圖8所示,快擦寫(xiě)存儲(chǔ)器30包括具有多個(gè)存儲(chǔ)單元的單元陣列31,編碼器32,用于把8位并行輸入數(shù)據(jù)Din轉(zhuǎn)換成縮短Reed-Solomon碼以提供待寫(xiě)入單元陣列31的寫(xiě)數(shù)據(jù)WD;以及8位/4位轉(zhuǎn)換器33,用于把編碼器32輸出的8位寫(xiě)數(shù)據(jù)WD轉(zhuǎn)換成如圖3所示被饋送到單元陣列31的4位數(shù)據(jù)(待存入存儲(chǔ)單元的4位數(shù)據(jù))。
此外,快擦寫(xiě)存儲(chǔ)器30包括4位/8位轉(zhuǎn)換器34,用于把從單元陣列31檢索到的4位讀數(shù)據(jù)RD轉(zhuǎn)換成圖3所示的8位數(shù)據(jù);以及Reed-Solomon碼解碼器35,用于使在4位/8位轉(zhuǎn)換器34中被轉(zhuǎn)換的8位讀數(shù)據(jù)RD經(jīng)過(guò)糾錯(cuò)過(guò)程來(lái)提供輸出數(shù)據(jù)Dout。在此結(jié)構(gòu)中,編碼器32和Reed-Solomon碼解碼器35構(gòu)成糾錯(cuò)電路。
圖9示出編碼器32結(jié)構(gòu)。編碼器32包括8位/10位轉(zhuǎn)換器32a,通過(guò)給作為輸入數(shù)據(jù)Din的8位數(shù)據(jù)補(bǔ)充2位零來(lái)把他們轉(zhuǎn)換成10位數(shù)據(jù);以及Reed-Solomon編碼器32b,利用把10位看作一個(gè)碼元的Reed-Solomon碼對(duì)轉(zhuǎn)換器32a輸出的10位數(shù)據(jù)進(jìn)行編碼。Reed-Solomon編碼器32b給10位數(shù)據(jù)的每個(gè)512碼元的塊補(bǔ)充四碼元的校驗(yàn)數(shù)據(jù)(冗余數(shù)據(jù)),以產(chǎn)生能糾正512個(gè)碼元中的兩個(gè)差錯(cuò)的縮短Reed-Solomon碼。
此外,編碼器32包括10位/8位轉(zhuǎn)換器32c,用于從10位數(shù)據(jù)中除去2位從而轉(zhuǎn)換成8位數(shù)據(jù);10位/8位轉(zhuǎn)換器32d,用于改變10位數(shù)據(jù)的位結(jié)構(gòu)從而轉(zhuǎn)換成圖11所示的8位數(shù)據(jù);換向開(kāi)關(guān)32e,用于給轉(zhuǎn)換器32c和32d選擇性地提供構(gòu)成Reed-Solomon編碼器32b輸出的每個(gè)Reed-Solomon碼的512碼元的信息數(shù)據(jù)和四碼元的校驗(yàn)數(shù)據(jù);以及換向開(kāi)關(guān)32f,用于選擇性地輸出相應(yīng)于來(lái)自轉(zhuǎn)換器32c的512碼元信息數(shù)據(jù)的8位數(shù)據(jù)和相應(yīng)于來(lái)自轉(zhuǎn)換器32d的四碼元校驗(yàn)數(shù)據(jù)的8位數(shù)據(jù)作為寫(xiě)數(shù)據(jù)WD。在被提供512碼元的信息數(shù)據(jù)時(shí),轉(zhuǎn)換器32c輸出構(gòu)成信息數(shù)據(jù)部分的512字節(jié)的數(shù)據(jù)。另一方面,在被提供四碼元校驗(yàn)數(shù)據(jù)時(shí),轉(zhuǎn)換器32d輸出形成校驗(yàn)數(shù)據(jù)部分的5字節(jié)的數(shù)據(jù)。
將描述上述結(jié)構(gòu)的編碼器32的操作。把8位數(shù)據(jù)的8位輸入數(shù)據(jù)Din饋送到8位/10位轉(zhuǎn)換器32a,其中給此8位數(shù)據(jù)補(bǔ)充2位零從而轉(zhuǎn)換成10位數(shù)據(jù)。然后,把此10位數(shù)據(jù)提供給Reed-Solomon編碼器32b,并轉(zhuǎn)換成縮短Reed-Solomon碼用以糾正512碼元的信息數(shù)據(jù)中的兩個(gè)差錯(cuò)。
在來(lái)自Reed-Solomon編碼器32b的每個(gè)516碼元的Reed-Solomon碼中,通過(guò)換向開(kāi)關(guān)32e把512碼元的信息數(shù)據(jù)發(fā)送到10位/8位轉(zhuǎn)換器32c,在其中從所提供的10位數(shù)據(jù)中除去由上述8位/10位轉(zhuǎn)換器32a所加的2位零而轉(zhuǎn)換成8位數(shù)據(jù)(見(jiàn)圖10)。然后,經(jīng)由換向開(kāi)關(guān)32f輸出獲得的8位數(shù)據(jù)作為寫(xiě)數(shù)據(jù)WD。
另一方面,在Reed-Solomon編碼器32b輸出的每個(gè)516碼元的Reed-Solomon碼中,通過(guò)換向開(kāi)關(guān)32f把4碼元的校驗(yàn)數(shù)據(jù)發(fā)送到10位/8位轉(zhuǎn)換器32d,在其中改變校驗(yàn)數(shù)據(jù)的位結(jié)構(gòu)而轉(zhuǎn)換成8位數(shù)據(jù)(見(jiàn)圖11)。然后,經(jīng)由換向開(kāi)關(guān)32f輸出經(jīng)轉(zhuǎn)換的8位數(shù)據(jù)作為寫(xiě)數(shù)據(jù)WD。
圖12示出解碼器35的結(jié)構(gòu)。解碼器35包括8位/10位轉(zhuǎn)換器35a,通過(guò)給作為8位數(shù)據(jù)補(bǔ)充2位零來(lái)把他們轉(zhuǎn)換成圖10所示的10位數(shù)據(jù);8位/10位轉(zhuǎn)換器35b,用于改變8位數(shù)據(jù)的位結(jié)構(gòu)而轉(zhuǎn)換成圖11所示的10位數(shù)據(jù);換向開(kāi)關(guān)35c,用于把從4位/8位轉(zhuǎn)換器34(圖8)輸出的8位讀數(shù)據(jù)RD的每個(gè)512字節(jié)的信息數(shù)據(jù)部分和每個(gè)5字節(jié)的校驗(yàn)數(shù)據(jù)部分選擇性地提供給轉(zhuǎn)換器35a和35b;以及換向開(kāi)關(guān)35d,用于選擇性地提取相應(yīng)于轉(zhuǎn)換器35a輸出的512字節(jié)的信息數(shù)據(jù)部分的10位數(shù)據(jù)以及相應(yīng)于轉(zhuǎn)換器35b輸出的5字節(jié)的校驗(yàn)數(shù)據(jù)部分的10位數(shù)據(jù),從而重新構(gòu)成能糾正512碼元的信息數(shù)據(jù)中的兩個(gè)差錯(cuò)的縮短Reed-Solomon碼。
此外,解碼器35包括Reed-Solomon碼解碼器35e,用于使換向開(kāi)關(guān)35d輸出的Reed-Solomon碼經(jīng)過(guò)糾錯(cuò)過(guò)程;以及10位/8位轉(zhuǎn)換器35f,用于從經(jīng)過(guò)解碼器35e的糾錯(cuò)的10位信息數(shù)據(jù)中除去2位從而轉(zhuǎn)換成8位數(shù)據(jù)來(lái)提供圖13所示的輸出數(shù)據(jù)Dout。
將描述上述結(jié)構(gòu)的解碼器35的操作。在作為讀數(shù)據(jù)RD提供的8位數(shù)據(jù)中,把每個(gè)512字節(jié)的信息數(shù)據(jù)部分提供給8位/10位轉(zhuǎn)換器35a,在其中把2位零加到所提供的數(shù)據(jù)中而轉(zhuǎn)換成10位數(shù)據(jù)(見(jiàn)圖10)。另一方面,在作為讀數(shù)據(jù)RD提供的8位數(shù)據(jù)中,把每個(gè)5字節(jié)的校驗(yàn)數(shù)據(jù)部分提供給8位/10位轉(zhuǎn)換器35b,在其中改變所提供數(shù)據(jù)的位結(jié)構(gòu)而轉(zhuǎn)換成10位數(shù)據(jù)(見(jiàn)圖11)。
然后,換向開(kāi)關(guān)35d選擇性地提取相應(yīng)于轉(zhuǎn)換器35a輸出的512字節(jié)的信息數(shù)據(jù)部分的10位數(shù)據(jù)以及相應(yīng)于轉(zhuǎn)換器35b輸出的5字節(jié)的校驗(yàn)數(shù)據(jù)部分的10位數(shù)據(jù),從而可重新構(gòu)成能糾正512碼元的信息數(shù)據(jù)中的兩個(gè)差錯(cuò)的縮短Reed-Solomon碼。
此外,把換向開(kāi)關(guān)35d輸出的Reed-Solomon碼提供給Reed-Solomon碼解碼器35e。如果一個(gè)代碼包含一個(gè)或兩個(gè)差錯(cuò)碼元,則Reed-Solomon碼解碼器35e進(jìn)行糾錯(cuò)。在解碼器35e糾錯(cuò)后,把10位數(shù)據(jù)作為信息數(shù)據(jù)提供給10位/8位轉(zhuǎn)換器35f,在其中所提供的數(shù)據(jù)中除去2位從而轉(zhuǎn)換成8位數(shù)據(jù)(見(jiàn)圖13)來(lái)提供輸出數(shù)據(jù)Dout。
在圖8所示的快擦寫(xiě)存儲(chǔ)器30中,如下實(shí)行數(shù)據(jù)寫(xiě)操作。即,把1字節(jié)(8位)輸入數(shù)據(jù)Din饋送到編碼器32。然后,編碼器32把2位零加到輸入數(shù)據(jù)Din以轉(zhuǎn)換成10位數(shù)據(jù)。把此10位數(shù)據(jù)轉(zhuǎn)換成能糾正512碼元的信息數(shù)據(jù)中的兩個(gè)差錯(cuò)的Reed-Solomon碼。輸出補(bǔ)0前的8位數(shù)據(jù)作為信息數(shù)據(jù),而輸出位結(jié)構(gòu)改變后的8位數(shù)據(jù)作為校驗(yàn)數(shù)據(jù)。然后,由8位/4位轉(zhuǎn)換器33把編碼器32輸出的8位寫(xiě)數(shù)據(jù)WD轉(zhuǎn)換成4位數(shù)據(jù)并饋送到單元陣列31。把所提供的數(shù)據(jù)連續(xù)寫(xiě)到構(gòu)成單元陣列31的存儲(chǔ)單元。
另一方面,如下發(fā)生數(shù)據(jù)讀操作。由4位/8位轉(zhuǎn)換器34把從單元陣列31檢索到的4位讀數(shù)據(jù)RD轉(zhuǎn)換成饋送到解碼器35的8位數(shù)據(jù)。在被提供此8位數(shù)據(jù)后,解碼器35把2位零加到每個(gè)512字節(jié)的信息數(shù)據(jù)部分以轉(zhuǎn)換成10位數(shù)據(jù);每個(gè)5字節(jié)校驗(yàn)數(shù)據(jù)部分的位結(jié)構(gòu)被改變以從8位轉(zhuǎn)換成10位數(shù)據(jù)。這樣重新構(gòu)成了能糾正512碼元的信息數(shù)據(jù)中的兩個(gè)差錯(cuò)的Reed-Solomon碼。此外,解碼器35使重新構(gòu)成的Reed-Solomon碼經(jīng)過(guò)糾錯(cuò)過(guò)程。從經(jīng)糾正的信息數(shù)據(jù)中除去2位而轉(zhuǎn)換成8位數(shù)據(jù),以字節(jié)為單位輸出此8位數(shù)據(jù)作為輸出數(shù)據(jù)Dout。
如上所述,在第三實(shí)施例中,輸入數(shù)據(jù)Din和輸出數(shù)據(jù)Dout為8位數(shù)據(jù),編碼器32使用把10位看作一個(gè)碼元的Reed-Solomon碼進(jìn)行其編碼操作,因而使得延長(zhǎng)代碼長(zhǎng)度同時(shí)保持以一個(gè)字節(jié)(8位)為單位與外部設(shè)備交換數(shù)據(jù)成為可能。相應(yīng)地,不需要為了進(jìn)行編碼而例如把構(gòu)成每頁(yè)的512字節(jié)的信息數(shù)據(jù)分割成段。此方案使得減少校驗(yàn)數(shù)據(jù)(冗余數(shù)據(jù))同時(shí)保持圖14所示512字節(jié)解碼數(shù)據(jù)構(gòu)成的每頁(yè)的連續(xù)性成為可能。
以下示出第三實(shí)施例的效果。假設(shè)65,536個(gè)信息數(shù)據(jù)單元構(gòu)成一個(gè)塊,1,024個(gè)塊構(gòu)成一個(gè)單元陣列,假設(shè)一個(gè)塊中的甚至一個(gè)差錯(cuò)也將阻止對(duì)被認(rèn)為有缺陷的該塊的訪問(wèn)?,F(xiàn)在,假設(shè)在一百萬(wàn)次寫(xiě)/擦操作后正常制造的單元出錯(cuò)(不可訪問(wèn))的幾率為0.001%。根據(jù)這些假設(shè)比較一百萬(wàn)次寫(xiě)/擦操作后正常制造的的單元出錯(cuò)的幾率。
在使用縮短的Reed-Solomon碼在512字節(jié)的信息數(shù)據(jù)(有5字節(jié)的校驗(yàn)數(shù)據(jù)(冗余數(shù)據(jù))加到第三實(shí)施例的數(shù)據(jù)部分)中進(jìn)行糾雙錯(cuò)時(shí),獲得實(shí)際的出錯(cuò)塊的幾率。在此情況下,一個(gè)縮短Reed-Solomon碼可糾正高達(dá)兩個(gè)碼元。如果把相應(yīng)于兩個(gè)單元的8位信息作為一個(gè)碼元,則由以下公式(4)給出碼元差錯(cuò)率。如此所提供的碼元差錯(cuò)率是信息數(shù)據(jù)的碼元差錯(cuò)率。校驗(yàn)數(shù)據(jù)(冗余數(shù)據(jù))的碼元差錯(cuò)率為單元出錯(cuò)率的大約2.5倍,即2.5×110-5。
1-(1-1.0×10-5)2≈2.0×10-5…(4)此外,碼元的總數(shù)為516,一個(gè)塊包含64個(gè)代碼。由于校驗(yàn)數(shù)據(jù)的碼元差錯(cuò)率高于信息數(shù)據(jù)的碼元差錯(cuò)率,所以使用與校驗(yàn)數(shù)據(jù)有關(guān)的碼元差錯(cuò)率來(lái)估計(jì)塊發(fā)生缺陷的幾率。相應(yīng)地,從公式(5)來(lái)估計(jì)塊實(shí)際出錯(cuò)的幾率,估計(jì)得到近似于0.0023%或更少。1-{Σi=02Ci516(2.5×10-5)i(1-2.5×10-5)516-i}64≈2.3×10-5...(5)]]>另一方面,在使用縮短Reed-Solomon碼來(lái)糾正128字節(jié)的信息數(shù)據(jù)部分(有兩字節(jié)的校驗(yàn)數(shù)據(jù)(冗余數(shù)據(jù))加到數(shù)據(jù)部分)中的一個(gè)差錯(cuò)(1碼元=8位)時(shí),獲得出錯(cuò)塊的幾率。由于每個(gè)代碼的碼元總數(shù)為130且一個(gè)塊包含256個(gè)代碼,所以通過(guò)以下公式(6)估計(jì)得到的幾率在大約0.086%。1-{Σi=01Ci130(2.0×10-5)i(1-2.0×10-5)130-i}256≈8.6×10-4...(6)]]>因此,把第三實(shí)施例的編碼方法與使用縮短Reed-Solomon碼來(lái)糾正補(bǔ)充了兩字節(jié)的校驗(yàn)數(shù)據(jù)(冗余數(shù)據(jù))的128字節(jié)的信息數(shù)據(jù)中的一個(gè)差錯(cuò)的編碼方法相比,以上實(shí)施例的編碼方法可提供比另一方法更高的糾錯(cuò)能力;然而,每頁(yè)的校驗(yàn)數(shù)據(jù)中的字節(jié)計(jì)數(shù)從8減少到5。
接著,將描述本發(fā)明的第四實(shí)施例。圖15示出實(shí)現(xiàn)本發(fā)明第四實(shí)施例的存儲(chǔ)卡40的結(jié)構(gòu)。存儲(chǔ)卡40使用兩個(gè)用于16值(4位)記錄的快擦寫(xiě)存儲(chǔ)器,且具有一控制器,該控制器包含基于把10位看作一個(gè)碼元的用于糾雙錯(cuò)的縮短Reed-Solomon碼的糾錯(cuò)電路。
此外,控制器43包含卡片接口44,用于與卡片外的設(shè)備交換數(shù)據(jù);編碼器45,用于把8位并行輸入數(shù)據(jù)Din轉(zhuǎn)換成縮短Reed-Solomon碼以提供待寫(xiě)入快擦寫(xiě)存儲(chǔ)器41和42的寫(xiě)數(shù)據(jù)WD;以及8位/4位轉(zhuǎn)換器46,用于把編碼器45輸出的8位寫(xiě)數(shù)據(jù)WD轉(zhuǎn)換成如圖3所示的4位數(shù)據(jù)(待存入存儲(chǔ)單元的4位數(shù)據(jù))。編碼器45具有與圖8中的快擦寫(xiě)存儲(chǔ)器30的編碼器32(見(jiàn)圖9)相同的結(jié)構(gòu),從而省略對(duì)編碼器45的詳細(xì)描述。
此外,控制器43包括4位/8位轉(zhuǎn)換器47,用于把從快擦寫(xiě)存儲(chǔ)器41或42檢索到的4位讀數(shù)據(jù)RD轉(zhuǎn)換成圖3所示的8位數(shù)據(jù);解碼器48,用于使在4位/8位轉(zhuǎn)換器47中被轉(zhuǎn)換的8位讀數(shù)據(jù)RD經(jīng)過(guò)糾錯(cuò)過(guò)程來(lái)提供輸出數(shù)據(jù)Dout;以及快擦寫(xiě)接口49,用于控制來(lái)往于快擦寫(xiě)存儲(chǔ)器41和42的數(shù)據(jù)讀寫(xiě)。解碼器48具有與圖8中快擦寫(xiě)存儲(chǔ)器30的解碼器(見(jiàn)圖12)相同的結(jié)構(gòu),從而省略對(duì)解碼器48的描述。
在圖15所示的存儲(chǔ)卡40中,如下實(shí)行數(shù)據(jù)寫(xiě)操作。即,輸入數(shù)據(jù)Din通過(guò)卡片接口44取入卡片并饋送到編碼器45。然后,編碼器45把給輸入數(shù)據(jù)Din補(bǔ)充2位零以轉(zhuǎn)換成10位數(shù)據(jù),繼而把該10位數(shù)據(jù)轉(zhuǎn)換成用于糾正512碼元的信息數(shù)據(jù)中的兩個(gè)差錯(cuò)的縮短Reed-Solomon碼,輸出補(bǔ)0前的8位數(shù)據(jù)作為信息數(shù)據(jù),而輸出位結(jié)構(gòu)改變后的8位數(shù)據(jù)作為校驗(yàn)數(shù)據(jù)。然后,由8位/4位轉(zhuǎn)換器46把編碼器45輸出的8位寫(xiě)數(shù)據(jù)WD轉(zhuǎn)換成4位數(shù)據(jù),在快擦寫(xiě)接口49的控制下,把此4位數(shù)據(jù)寫(xiě)到快擦寫(xiě)存儲(chǔ)器41或42。
另一方面,如下發(fā)生數(shù)據(jù)讀操作。由4位/8位轉(zhuǎn)換器47把在快擦寫(xiě)接口49的控制下從快擦寫(xiě)存儲(chǔ)器41或42檢索到的4位讀數(shù)據(jù)RD轉(zhuǎn)換成被饋送到解碼器48的8位數(shù)據(jù)。解碼器48給每個(gè)512字節(jié)的信息數(shù)據(jù)部分補(bǔ)充2位零以把8位數(shù)據(jù)轉(zhuǎn)換成10位數(shù)據(jù),對(duì)每個(gè)5字節(jié)的校驗(yàn)數(shù)據(jù)進(jìn)行位結(jié)構(gòu)改變以從8位數(shù)據(jù)轉(zhuǎn)換成10位數(shù)據(jù),從而重新構(gòu)成能糾正512碼元的信息數(shù)據(jù)中的兩個(gè)差錯(cuò)的Reed-Solomon碼。此外,解碼器48使重新構(gòu)成的Reed-Solomon碼經(jīng)過(guò)糾錯(cuò)過(guò)程,并從經(jīng)糾錯(cuò)的信息數(shù)據(jù)中除去2位以轉(zhuǎn)換成8位數(shù)據(jù),以字節(jié)為單位輸出此8位數(shù)據(jù)作為輸出數(shù)據(jù)Dout。這樣,通過(guò)卡片接口44把解碼器48輸出的輸出數(shù)據(jù)Dout發(fā)送到卡片外。
如上所述,在第四實(shí)施例中,輸入數(shù)據(jù)Din或輸出數(shù)據(jù)Dout也是8位數(shù)據(jù),編碼器45使用把10位看作一個(gè)碼元的Reed-Solomon碼來(lái)進(jìn)行其編碼操作,從而使代碼長(zhǎng)度延長(zhǎng)同時(shí)保持以一個(gè)字節(jié)(8位)為單位與外部設(shè)備交換數(shù)據(jù)成為可能。相應(yīng)地,不需要為了進(jìn)行編碼而例如把構(gòu)成每頁(yè)的512字節(jié)的信息數(shù)據(jù)分割成段,從而使得減少校驗(yàn)數(shù)據(jù)(冗余數(shù)據(jù))同時(shí)保持圖14所示512字節(jié)解碼數(shù)據(jù)構(gòu)成的每頁(yè)的連續(xù)性成為可能。
此外,雖然以上示出第三和第四實(shí)施例在編碼時(shí)給8位數(shù)據(jù)補(bǔ)充2位零來(lái)轉(zhuǎn)換成10位數(shù)據(jù),但使用其它的2位數(shù)據(jù)也可實(shí)現(xiàn)轉(zhuǎn)換成10位數(shù)據(jù)。在這些情況下,應(yīng)在解碼時(shí)把相同的2位數(shù)據(jù)加到每個(gè)信息數(shù)據(jù)部分以轉(zhuǎn)換成10位數(shù)據(jù)。
此外,雖然在以上第一到第四實(shí)施例中把兩單元的數(shù)據(jù)作為一個(gè)字節(jié),但作為一個(gè)字節(jié)的單元數(shù)不限于這兩單元的數(shù)據(jù),從而可考慮其它選擇,即把一單元數(shù)據(jù)作為一個(gè)字節(jié)或把三個(gè)或具有其它適當(dāng)數(shù)目的單元的數(shù)據(jù)作為一個(gè)字節(jié)。
此外,以上示出的第一到第四實(shí)施例把快擦寫(xiě)存儲(chǔ)器配置用作其存儲(chǔ)系統(tǒng),但本發(fā)明不限于快擦寫(xiě)存儲(chǔ)器,而可應(yīng)用于諸如半導(dǎo)體存儲(chǔ)器等其它不同的存儲(chǔ)系統(tǒng)。
如上所述,依據(jù)本發(fā)明,把以字節(jié)為單位進(jìn)行糾錯(cuò)的Reed-Solomon碼用作應(yīng)用于存儲(chǔ)單元(每個(gè)存儲(chǔ)多位數(shù)據(jù))過(guò)程的存儲(chǔ)器裝置的糾錯(cuò)碼,從而對(duì)有限數(shù)目的糾錯(cuò)提供了充分的性能,與以前相比,減小了糾錯(cuò)電路的規(guī)模,并減少了所包含的存儲(chǔ)單元的數(shù)目。
此外,依據(jù)本發(fā)明,由于輸入和輸出數(shù)據(jù)為m位數(shù)據(jù)且編碼器使用把n位(n>m)看作一個(gè)碼元的Reed-Solomon碼,所以可延長(zhǎng)代碼長(zhǎng)度同時(shí)保持以m位為單位與外部設(shè)備交換數(shù)據(jù)。因此,不需要為了編碼而把預(yù)定長(zhǎng)度的每個(gè)信息數(shù)據(jù)部分分割成段,從而減少了校驗(yàn)數(shù)據(jù)(冗余數(shù)據(jù))的量同時(shí)保持了解碼數(shù)據(jù)的連續(xù)性。
工業(yè)應(yīng)用性如上所述,依據(jù)本發(fā)明的編碼方法和存儲(chǔ)設(shè)備適用于多值記錄快擦寫(xiě)存儲(chǔ)器和使用這種存儲(chǔ)器的存儲(chǔ)卡。
權(quán)利要求
1.一種存儲(chǔ)裝置,其特征在于,包括單元陣列,它具有多個(gè)存儲(chǔ)單元,其中每個(gè)所述存儲(chǔ)單元存儲(chǔ)多位數(shù)據(jù);編碼器,用于把輸入數(shù)據(jù)轉(zhuǎn)換成Reed-Solomon碼以提供寫(xiě)數(shù)據(jù),從而寫(xiě)入到所述單元陣列;和Reed-Solomon碼解碼器,用于對(duì)從所述單元陣列檢索到的讀取數(shù)據(jù)進(jìn)行糾錯(cuò)處理以提供輸出數(shù)據(jù)。
2.如權(quán)利要求1所述的存儲(chǔ)裝置,其特征在于,所述輸入數(shù)據(jù)和所述輸出數(shù)據(jù)是預(yù)定數(shù)量位的并行或串行數(shù)據(jù),所述存儲(chǔ)裝置還包括設(shè)在所述編碼器的上游的第一位變換器以將所述輸入數(shù)據(jù)轉(zhuǎn)換成1字節(jié)并行數(shù)據(jù);和設(shè)在所述Reed-Solomon碼解碼器下游的第二位變換器,以把由所述Reed-Solomon碼解碼器輸出的1字節(jié)并行數(shù)據(jù)轉(zhuǎn)換成所述預(yù)定數(shù)量位的并行或串行數(shù)據(jù)。
3.如權(quán)利要求1所述的存儲(chǔ)裝置,其特征在于,構(gòu)成單元陣列的所述多個(gè)存儲(chǔ)單元中的每一個(gè)存儲(chǔ)m位數(shù)據(jù),m為至少2的整數(shù),所述存儲(chǔ)裝置還包括插入所述編碼器和所述單元陣列之間的第三位變換器,以把由所述編碼器輸出的1字節(jié)并行數(shù)據(jù)轉(zhuǎn)換成m位并行數(shù)據(jù);和插入所述單元陣列和所述Reed-Solomon碼解碼器之間的第4位變換器,以把由所述單元陣列輸出的m位并行數(shù)據(jù)轉(zhuǎn)換成1字節(jié)并行數(shù)據(jù)。
4.如權(quán)利要求1所述的存儲(chǔ)裝置,其特征在于,構(gòu)成所述Reed-Solomon碼,從而將存儲(chǔ)在所述單元陣列中的至少一個(gè)存儲(chǔ)單元中的多個(gè)位看成是一個(gè)字節(jié)。
5.一種存儲(chǔ)裝置,其特征在于,包括存儲(chǔ)部分,具有由存儲(chǔ)多位數(shù)據(jù)的多個(gè)存儲(chǔ)單元構(gòu)成的單元陣列;和控制器,用于把數(shù)據(jù)寫(xiě)入所述存儲(chǔ)部分并從中讀取數(shù)據(jù);其中,所述控制器包括編碼器,用于把輸入數(shù)據(jù)轉(zhuǎn)換成Reed-Solomon碼以提供寫(xiě)數(shù)據(jù),從而寫(xiě)入到所述存儲(chǔ)部分;和Reed-Solomon碼解碼器,用于對(duì)從所述存儲(chǔ)部分檢索的讀取數(shù)據(jù)進(jìn)行糾錯(cuò)處理以提供輸出數(shù)據(jù)。
6.如權(quán)利要求5所述的存儲(chǔ)裝置,其特征在于,由至少一個(gè)快擦寫(xiě)存儲(chǔ)器構(gòu)成所述存儲(chǔ)部分。
7.一種編碼方法,其特征在于,包括下列步驟用m位數(shù)據(jù)補(bǔ)充(n-m)位數(shù)據(jù)以轉(zhuǎn)換成n位數(shù)據(jù),n是大于m的整數(shù);運(yùn)用將n位看作一個(gè)碼元的Reed-Solomon碼編碼所述n位數(shù)據(jù);和在補(bǔ)充所述(n-m)位數(shù)據(jù)之前輸出m位數(shù)據(jù)作為信息數(shù)據(jù),同時(shí)在經(jīng)歷了n位/m位變換之后輸出m位數(shù)據(jù)作為校驗(yàn)數(shù)據(jù)。
8.一種存儲(chǔ)裝置,包括單元陣列,具有多個(gè)存儲(chǔ)單元;編碼器,用于將輸入數(shù)據(jù)轉(zhuǎn)換成糾錯(cuò)碼以提供寫(xiě)數(shù)據(jù),從而寫(xiě)入到所述單元陣列;和解碼器,用于對(duì)從所述單元陣列檢索到的讀取數(shù)據(jù)進(jìn)行糾錯(cuò)處理以提供輸出數(shù)據(jù);其特征在于,所述編碼器用m位輸入數(shù)據(jù)補(bǔ)充(n-m)位數(shù)據(jù)以轉(zhuǎn)換成n位數(shù)據(jù),n是大于m的整數(shù),運(yùn)用將n位看作一個(gè)碼元的Reed-Solomon碼編碼所述n位數(shù)據(jù),而且在補(bǔ)充所述(n-m)位數(shù)據(jù)之前輸出所述m位數(shù)據(jù)作為信息數(shù)據(jù),同時(shí)在經(jīng)歷n位/m位變換之后輸出所述m位數(shù)據(jù)作為校驗(yàn)數(shù)據(jù);和所述解碼器用從所述單元陣列檢索到的所述m位讀取數(shù)據(jù)補(bǔ)充關(guān)于信息數(shù)據(jù)的所述(n-m)位數(shù)據(jù),以轉(zhuǎn)換成n位數(shù)據(jù),使校驗(yàn)數(shù)據(jù)部分進(jìn)行m位/n位變換而轉(zhuǎn)換成n位數(shù)據(jù),之后對(duì)所述經(jīng)轉(zhuǎn)換的n位數(shù)據(jù)進(jìn)行糾錯(cuò)處理,提供在所述經(jīng)糾正的n位信息數(shù)據(jù)中的m位數(shù)據(jù)部分作為所述輸出數(shù)據(jù)。
9.如權(quán)利要求8所述的存儲(chǔ)裝置,其特征在于,構(gòu)成所述單元陣列的所述多個(gè)存儲(chǔ)單元中的每個(gè)存儲(chǔ)q位數(shù)據(jù),q是至少為1的整數(shù),所述存儲(chǔ)裝置還包括插入所述編碼器和所述單元陣列之間的m位/q位變換器,以將由所述編碼器輸出的m位數(shù)據(jù)轉(zhuǎn)換成q位數(shù)據(jù);和插入所述單元陣列和所述解碼器之間的q位/m位變換器以將由所述單元陣列輸出的q位數(shù)據(jù)轉(zhuǎn)換成m位數(shù)據(jù)。
10.一種存儲(chǔ)裝置,它包括由多個(gè)存儲(chǔ)單元構(gòu)成的單元陣列的存儲(chǔ)部分、用于將數(shù)據(jù)寫(xiě)入所述存儲(chǔ)部分和從中讀取數(shù)據(jù)的控制器,其特征在于所述控制器包括編碼器,它用于將輸入數(shù)據(jù)轉(zhuǎn)換成糾錯(cuò)碼以提供寫(xiě)數(shù)據(jù),從而寫(xiě)入到所述存儲(chǔ)部分;和解碼器,用于對(duì)從所述存儲(chǔ)部分檢索到的讀取數(shù)據(jù)進(jìn)行糾錯(cuò)處理以提供輸出數(shù)據(jù);其中所述解碼器用m位輸入數(shù)據(jù)補(bǔ)充(n-m)位數(shù)據(jù)以轉(zhuǎn)換成n位數(shù)據(jù),n是大于m的整數(shù)、運(yùn)用將n位看作是一個(gè)碼元的Reed-Solomon碼編碼所述n位數(shù)據(jù)和在補(bǔ)充所述(n-m)位數(shù)據(jù)之前輸出所述m位數(shù)據(jù)作為信息數(shù)據(jù),同時(shí)在經(jīng)歷n位/m位變換之后輸出所述m位數(shù)據(jù)作為校驗(yàn)數(shù)據(jù);和其中,所述解碼器用從所述單元陣列檢索到的m位讀取數(shù)據(jù)補(bǔ)充所述n-m位數(shù)據(jù)以轉(zhuǎn)換成與其信息數(shù)據(jù)部分相關(guān)的n位數(shù)據(jù)、對(duì)所述m位讀取數(shù)據(jù)的校驗(yàn)數(shù)據(jù)部分進(jìn)行m位/n位變換成n位數(shù)據(jù),之后對(duì)所述經(jīng)變換的n位數(shù)據(jù)進(jìn)行糾錯(cuò)處理并提供在所述經(jīng)校正的n位信息數(shù)據(jù)中的m位數(shù)據(jù)部分作為所述輸出數(shù)據(jù)。
11.如權(quán)利要求10所述的存儲(chǔ)裝置,其特征在于,由至少一個(gè)快擦寫(xiě)存儲(chǔ)器構(gòu)成所述存儲(chǔ)部分。
全文摘要
本發(fā)明涉及適于多值記錄快擦寫(xiě)存儲(chǔ)器等的存儲(chǔ)裝置等。設(shè)計(jì)快擦寫(xiě)存儲(chǔ)器10用于16值(4位)記錄。對(duì)于寫(xiě)入操作,編碼器(12)把輸入數(shù)據(jù)Din轉(zhuǎn)換成縮短Reed-Solomon碼以提供寫(xiě)數(shù)據(jù)WD。變換器(13)把寫(xiě)數(shù)據(jù)WD轉(zhuǎn)換成4位并行數(shù)據(jù)。將經(jīng)轉(zhuǎn)換數(shù)據(jù)饋送并寫(xiě)入到連續(xù)構(gòu)成單元陣列(11)的每個(gè)存儲(chǔ)單元。對(duì)于讀取操作,變換器(14)把讀取數(shù)據(jù)RD從所述單元陣列(11)轉(zhuǎn)換成1字節(jié)(8位)并行數(shù)據(jù),而且向解碼器(15)提供經(jīng)轉(zhuǎn)換的數(shù)據(jù)以字節(jié)為單位進(jìn)行糾錯(cuò)處理,從而獲得輸出數(shù)據(jù)Dout。由于采用Reed-Solomon,所以對(duì)于少量差錯(cuò)需要校正時(shí)可以獲得良好性能。
文檔編號(hào)G11C7/10GK1256005SQ99800053
公開(kāi)日2000年6月7日 申請(qǐng)日期1999年1月21日 優(yōu)先權(quán)日1998年1月21日
發(fā)明者宮內(nèi)俊之, 服部雅之 申請(qǐng)人:索尼株式會(huì)社