專利名稱:用于閃速存儲器允許可更改位的改進的錯誤修正模式的制作方法
技術(shù)領域:
本發(fā)明涉及閃速存儲器器件領域。更具體說,本發(fā)明涉及一種錯誤修正模式,它能使閃速存儲器的位可更改。
背景技術(shù):
許多當今的消費和嵌入式系統(tǒng)產(chǎn)品通常包括三類不同的存儲器部件,用于支持產(chǎn)品所需要的特征。例如,在一種典型的蜂窩電話中,使用閃速存儲器部件來存儲代碼,SRAM提供堆棧和易失數(shù)據(jù)的存儲,而第三部件,亦即EEPROM器件,提供為經(jīng)常更新或變更的數(shù)據(jù)提供非易失存儲。這三組數(shù)據(jù)的內(nèi)容以不同速率和在不同時間改變,取決于產(chǎn)品的類型。顯然,所有這些數(shù)據(jù)需要存儲在它可以被最好地檢索以及改變的地方。
使用閃速存儲器來存儲和檢索需要非易失存儲數(shù)據(jù)的消費和工業(yè)應用已有多年。例如,可以使用閃速存儲器提供磁盤模擬,代替轉(zhuǎn)動磁盤。換句話說,可以使用閃速存儲器作為讀/寫介質(zhì)來代替轉(zhuǎn)動磁盤。
一種增加閃速存儲器器件中數(shù)據(jù)可更改性的方法在美國專利6,041,001中公開。使用一種錯誤修正碼,稱為漢明碼,和把閃速存儲器單元細分為塊。每一這種塊進一步被分為段。所述美國專利集中在閃速存儲器中的數(shù)據(jù)組織。使用大功率錯誤修正來執(zhí)行錯誤檢測和錯誤改正。
閃速存儲器是一種可電重寫的非易失數(shù)字存儲器器件,它不需要電源來保持它的存儲器內(nèi)容。典型的閃速存儲器在浮置柵上存儲電荷來表示二進制狀態(tài)系統(tǒng)的第一邏輯狀態(tài),而沒有存儲的電荷表示二進制狀態(tài)系統(tǒng)的第二邏輯狀態(tài)。另外,典型的閃速存儲器器件能夠執(zhí)行寫操作、讀操作、和擦除操作。
在大量消費應用中,閃速存儲器一直主要用于代碼存儲,雖然閃速存儲器在電路中的寫能力也允許它應用于數(shù)據(jù)存儲。直到最近,在閃速存儲器內(nèi)部存儲的代碼正被執(zhí)行時不能寫(或擦除),這一點曾阻止它替換在某些產(chǎn)品中的EEPROM。然而,新系列閃速存儲器部件在單一閃速存儲器內(nèi)提供這種同時的‘讀同時寫’(RWW)功能。這一特征開辟了在同一閃速存儲器器件中存儲非易失數(shù)據(jù)和可執(zhí)行代碼的道路。這種閃速存儲器部件提供可執(zhí)行代碼和存儲經(jīng)常更新的數(shù)據(jù)的能力允許在多種產(chǎn)品中去掉EEPROM。如圖1A所示,迄今為止的常規(guī)產(chǎn)品通常包括閃速存儲器10、EEPROM11、和SRAM12。將來可以實現(xiàn)從產(chǎn)品中完全去除EEPROM器件的產(chǎn)品,能夠節(jié)約芯片面積和各產(chǎn)品的成本。這種未來產(chǎn)品的一個例子在圖1B中表示。它包括閃速存儲器13和SRAM14。
新產(chǎn)品開發(fā)使得具有大存儲容量的閃速存儲器成為必需。今天,閃速存儲器容量逐年翻番。大閃速存儲器必須使用錯誤修正,以便實現(xiàn)合格產(chǎn)品的可靠性。錯誤修正基于產(chǎn)生冗余位,亦即奇偶位,它們與數(shù)據(jù)位一起存儲在存儲器中。在讀取存儲器時,使用這些冗余位檢測和改正位錯誤。使用閃速存儲器的錯誤修正有一個大的缺點一旦給該閃速存儲器編程一個數(shù)據(jù)字,則這一數(shù)據(jù)字不再能在不妨礙正確地產(chǎn)生冗余位的條件下改變。換句話說,當使用常規(guī)錯誤修正模式時失去了數(shù)據(jù)字的單個位可改變性。
通常,不要任何錯誤修正模式使用閃速存儲器。在這些常規(guī)閃速存儲器中,如果希望改變一個閃速存儲器數(shù)據(jù)字的話,則必須擦除整個閃速存儲器(或至少其大部分)。
在數(shù)字存儲器設計中使用錯誤修正來處理位錯誤。通常,使用一個適當?shù)倪壿嬰娐?,該電路實現(xiàn)錯誤修正代碼(ECC)。ECC允許檢查正被讀或傳輸?shù)臄?shù)據(jù)位的錯誤,和必要時,在運行中改正這些錯誤。
由于使用的閃速存儲器日益增加的規(guī)模,提供某種錯誤修正變得越來越重要。一些最新的閃速存儲器系統(tǒng)裝置有錯誤修正模式,該模式使用一個編碼器給閃速存儲器寫數(shù)據(jù),和一個解碼器從閃速存儲器讀數(shù)據(jù)。
然而,可更改位是一個非常重要的特征,例如,當在閃速存儲器上模擬EEPROM功能時,該技術(shù)由所有主要的閃速存儲器制造商使用,例如Intel,AMD,Atmel,和其他制造商。
本發(fā)明的一個目的是提供一種模式,它允許閃速存儲器用于當今和未來的多種應用。因此,本發(fā)明的一個目的是提供一種模式,它能當在閃速存儲器上模擬EEPROM功能時實現(xiàn)位的更改。
發(fā)明概述通過改進閃速存儲器的結(jié)構(gòu)和使用這種閃速存儲器的方式實現(xiàn)了這些和其它目的。
本發(fā)明涉及一種模式,其中,一個錯誤修正塊應用一種編碼模式,它使位的改變在閃速存儲器上變得可能。
根據(jù)本發(fā)明,提供一個系統(tǒng),它包括一個微處理器,一個用于在閃速存儲器器件中寫數(shù)據(jù)的數(shù)據(jù)總線,和一個用于從該閃速存儲器器件中讀數(shù)據(jù)的數(shù)據(jù)總線。該閃速存儲器器件包括一個錯誤修正編碼器、閃速存儲器、和一個錯誤修正解碼器、和一個用于互連所述錯誤修正編碼器、閃速存儲器、和錯誤修正解碼器的閃速存儲器數(shù)據(jù)總線。數(shù)據(jù)在被錯誤修正編碼器處理時變成包括狀態(tài)字、數(shù)據(jù)字和冗余字的字。
權(quán)利要求2-15提供優(yōu)選系統(tǒng)的實現(xiàn)。
提供一種為在閃速存儲器器件中存儲數(shù)據(jù)的方法,這些數(shù)據(jù)被供給奇偶位發(fā)生器,后者產(chǎn)生冗余字并把該冗余字提供給輸出。另外,產(chǎn)生一個狀態(tài)字,并且把這一數(shù)據(jù)、冗余字和狀態(tài)字組合成為一個字。然后把該字寫入存儲它的閃速存儲器器件中。
權(quán)利要求17-22提出幾種有利的方法。
提出的本發(fā)明是一種能使用錯誤修正在大閃速存儲器上進行EEPROM模擬的技術(shù)。
本發(fā)明的一個優(yōu)點是,制造商可以使用閃速存儲器部件而不是EEPROM存儲可執(zhí)行代碼和非易失數(shù)據(jù)。
本發(fā)明的另一個優(yōu)點是它允許EEPROM功能有選擇地添加在一個閃速存儲器陣列上。
為更完整說明本發(fā)明和本發(fā)明另外的目的和優(yōu)點,參考下面結(jié)合附圖的說明書,其中圖1A是一個具有閃速存儲器、EEPROM和SRAM的常規(guī)計算設備。
圖1B是一個具有閃速存儲器和SRAM的常規(guī)計算設備。
圖2表示編程不應用錯誤修正的閃速存儲器數(shù)據(jù)字。
圖3是一個方框圖,表示具有錯誤修正設備的已知閃速存儲器。
圖4表示編程應用錯誤修正的閃速存儲器數(shù)據(jù)字。
圖5原理表示根據(jù)本發(fā)明的數(shù)據(jù)字的組織。
圖6表示應用本發(fā)明編程具有錯誤修正的閃速存儲器數(shù)據(jù)字。
圖7原理表示為在閃速存儲器上模擬EEPROM的數(shù)據(jù)組織。
圖8是一個方框圖,表示本發(fā)明的第一實施例。
圖9是一個方框圖,表示本發(fā)明的第二實施例。
圖10A是一個方框圖,表示根據(jù)本發(fā)明的一個實施例的錯誤修正編碼器。
圖10B是一個方框圖,表示根據(jù)本發(fā)明的一個實施例的錯誤修正解碼器。
優(yōu)選實施例說明閃速存儲器與其它存儲器類型例如SRAM對比,只允許在一個方向上的位改變。在閃速存儲器單元中存儲的邏輯“1”通過編程操作可以改變?yōu)檫壿嫛?”。然而,不能通過編程操作把邏輯“0”變成邏輯“1”。改變編程的單元(邏輯內(nèi)容“0”)為邏輯“1”只能用擦除操作才可能。擦除操作不能對單個位執(zhí)行,而只能對大量數(shù)據(jù)(稱為塊擦除)或甚至整個存儲器(稱為閃速擦除)執(zhí)行。
圖2表示在閃速存儲器數(shù)據(jù)字20上的一種可能的數(shù)據(jù)操作。在本例中,閃速存儲器數(shù)據(jù)字20有4位。開始時(初始狀態(tài)),所有4位都被擦除,因此具有內(nèi)容“1”。接著,編程數(shù)據(jù)字‘1010’(狀態(tài)b)。在隨后的步驟(步驟c),把最高位(MSB)21從‘1’改變?yōu)椤?’。最后,擦除數(shù)據(jù)字20(連同許多其它在圖2中未示出的數(shù)據(jù)字),到初始化值‘1111’(狀態(tài)d)。只要這種改變是從邏輯‘1’到邏輯‘0’,這種單個位改變是可能的(1->0)。
圖3表示錯誤修正塊30和閃速存儲器31一起的應用。應該編程到閃速存儲器31的數(shù)據(jù)通過輸入線32(這里稱為數(shù)據(jù)輸入或Din)供給錯誤修正塊30。該錯誤修正塊30產(chǎn)生冗余位。一起編程數(shù)據(jù)與冗余位到閃速存儲器31。數(shù)據(jù)通過線33寫入閃速存儲器31,通過線34寫入冗余位。在讀操作期間,數(shù)據(jù)和冗余位分別通過線35和36從閃速存儲器31讀取。使用存儲在冗余位中的信息檢測和改正數(shù)據(jù)字中可能的錯誤。最后,改正的數(shù)據(jù)在輸出線37上輸出(這里稱為數(shù)據(jù)輸出或Qout)。
當使用常規(guī)錯誤修正模式(例如基于漢明碼的模式)-如在圖4中所示-時,單個位不能像圖4所示那樣自由改變。(狀態(tài)a)在擦除存儲器的內(nèi)容后,閃速存儲器數(shù)據(jù)字40和冗余位41處在初始狀態(tài)。也就是說,所有位(數(shù)據(jù)和冗余位)都是邏輯‘1’。(狀態(tài)b)當編程數(shù)據(jù)字40時,根據(jù)適當?shù)腻e誤修正模式也編程冗余位41。非常適合的是諸如漢明碼這樣的錯誤修正碼??梢允褂脻h明碼檢測和改正單個位錯誤和雙位錯誤,這里,雙位錯誤指兩個不同的數(shù)據(jù)位包含錯誤。
(狀態(tài)c)將會發(fā)現(xiàn),數(shù)據(jù)字40的MSB42仍可以從邏輯‘1’改變到邏輯‘0’。但是冗余位41不能相應改變,因為這將需要兩個從邏輯‘0’到邏輯‘1’的改變。冗余位41的MSB43和LSB44應該從邏輯‘0’改變到邏輯‘1’,這是不可能的。其結(jié)果將是在閃速存儲器中的一個不正確的字。該例演示當連同常規(guī)編碼算法例如漢明碼一起使用閃速存儲器時,單個位可改變性失去。當使用常規(guī)錯誤修正模式時,單個位不能自由改變,如圖4所示。
根據(jù)本發(fā)明,提出一種新的錯誤修正模式,它允許閃速存儲器數(shù)據(jù)字上改進的位更改。圖5表示具有根據(jù)本發(fā)明的編碼模式的閃速存儲器數(shù)據(jù)字50的組織。如圖5所示,閃速存儲器數(shù)據(jù)字50分成兩個部分51和52。在給出的例子中,數(shù)據(jù)字50的4個最高位51為位改變預留。數(shù)據(jù)字50剩余的4位52用于隨機數(shù)據(jù)。冗余位53的使用和常規(guī)編碼模式相同。然而注意,需要較長的冗余位,因為由于引入字51,整個閃速存儲器數(shù)據(jù)字50更長。請注意,閃速存儲器數(shù)據(jù)字50的部分52通常比部分51長。
圖6詳細表示新編碼模式的原理(狀態(tài)a)在擦除操作后閃速存儲器數(shù)據(jù)字50的所有位和冗余字53都是邏輯‘1’。(狀態(tài)b)數(shù)據(jù)編程到閃速存儲器數(shù)據(jù)字50的數(shù)據(jù)部分52。在表示的本例中,編程數(shù)據(jù)‘1010’。為單一位改變預留的部分51在現(xiàn)在未被觸及。冗余字53被編程為‘1001’。(狀態(tài)c)現(xiàn)在通過編程為位改變?yōu)椤?001’而預留的數(shù)據(jù)字段51而修改閃速存儲器數(shù)據(jù)字50。新閃速存儲器數(shù)據(jù)字50是‘0001 1010’,它有和舊閃速存儲器數(shù)據(jù)字‘111 1010’同樣的冗余字53。其結(jié)果,閃速存儲器數(shù)據(jù)字50的修改是正確的,并在讀出該閃速存儲器時將得到一個合法的代碼字。
應該注意,位的可更改性是受限制的。位只可以在閃速存儲器數(shù)據(jù)字的一個保留的部分內(nèi)改變。此外,并非所有可能的位改變是允許的。在給定的例子中,為改變保留4位(部分51)。理論上說,16個位修改是可能的,但是這16個中只有兩個是允許的(例如‘0001’和‘0100’)??赡艿奈桓淖冞@里稱為‘魔術(shù)字’。因為使用循環(huán)編碼模式(循環(huán)碼)定義冗余字53,因此有一定的閃速存儲器數(shù)據(jù)字50(魔術(shù)字),它們具有同樣的冗余字53。
現(xiàn)在結(jié)合應用實例說明本模式的細節(jié)。
本發(fā)明例如可以應用于未來的移動電話系統(tǒng)。對于大閃速存儲器容量(64Mb-128Mb)日益增加的需求使得錯誤修正成為必需。因此,使用沒有錯誤修正模式的閃速存儲器不是一種可行的選擇。在蜂窩電話中,通常在專用EEPROM芯片中存儲少量經(jīng)常改變的數(shù)據(jù)(參數(shù))(例如電話號碼、稅額等),該芯片允許在字節(jié)級擦除。為減少移動電話的成本和部件數(shù),新的趨勢是省去EEPROM芯片,而在閃速存儲器上模擬EEPROM功能。這一技術(shù)由所有主要的制造商廣泛傳播。不像EEPROM,閃速存儲器不能在字節(jié)級擦除,其在本說明書的引言部分已經(jīng)討論。因為閃速存儲器中的字節(jié)不可能被改寫,因此閃速存儲器數(shù)據(jù)字的舊的出現(xiàn)在改變該閃速存儲器數(shù)據(jù)字時被標記為“無效”。把更新的閃速存儲器數(shù)據(jù)字寫入下一可用閃速存儲器位置。通常,使用閃速存儲器管理軟件,它跟蹤閃速存儲器數(shù)據(jù)的有效出現(xiàn)。圖7表示當在閃速存儲器上模擬EEPROM功能時閃速存儲器數(shù)據(jù)字60是如何組織的。閃速存儲器數(shù)據(jù)字60分成兩個字段61和62。在閃速存儲器數(shù)據(jù)字段62中,可以存儲實際信息(隨機數(shù)據(jù))。在狀態(tài)字段61中,編程一個標記以指示在閃速存儲器數(shù)據(jù)字段62中包含的數(shù)據(jù)有效還是無效。該應用直接相應于這里說明的發(fā)明。在閃速存儲器數(shù)據(jù)字段62已經(jīng)編程后狀態(tài)字段61需要單一位改變。當使用錯誤修正時,單一位改變到已經(jīng)編程的數(shù)據(jù)是不可能的。根據(jù)該新模式的錯誤修正允許為EEPROM模擬所需要的位修正。
圖8給出根據(jù)本發(fā)明的系統(tǒng)70的方框圖。系統(tǒng)70是一個集成電路系統(tǒng),具有一個非易失閃速存儲器71。錯誤修正編碼器72安放在閃速存儲器71的輸入側(cè)。它使用一個錯誤修正算法用來給閃速存儲器71寫數(shù)據(jù)。在閃速存儲器71的輸出側(cè)安放一個錯誤修正解碼器73,用于從閃速存儲器71中讀存儲的位。此外,系統(tǒng)70包括一個微處理器74。閃速存儲器數(shù)據(jù)總線75連接錯誤修正編碼器72到閃速存儲器71和閃速存儲器71到錯誤修正解碼器73。閃速存儲器數(shù)據(jù)總線75分成承載冗余位的位線76和承載閃速存儲器數(shù)據(jù)位的位線77。數(shù)據(jù)位線77分成承載狀態(tài)位的位線78和承載數(shù)據(jù)位的位線79。根據(jù)本發(fā)明,如果狀態(tài)位改變改變?yōu)橐欢ǖ膬?yōu)選值(“魔術(shù)字”),則錯誤修正編碼器72不改變?nèi)哂辔坏慕M配。
如果要在錯誤修正編碼器72的入口Din處編程入閃速存儲器中的數(shù)據(jù)字具有128位,則閃速存儲器數(shù)據(jù)總線75優(yōu)選是136位寬,冗余字8位,閃速存儲器數(shù)據(jù)字112位和狀態(tài)位字16位,然后把它們傳輸?shù)介W速存儲器71。反之亦然,當從閃速存儲器71讀一個數(shù)據(jù)字時,冗余字有8位,閃速存儲器數(shù)據(jù)字有112位,狀態(tài)位字有16位。輸出線66上的數(shù)據(jù)字是128位寬。在128位數(shù)據(jù)字、16位的狀態(tài)位字和8位的冗余字的場合,有幾個可用的魔術(shù)字。允許狀態(tài)字采取一個魔術(shù)字。不允許魔術(shù)字以外的字。當有3個不同的16位魔術(shù)字時,狀態(tài)字段可以存儲3個魔術(shù)字中之一。注意,如果數(shù)據(jù)字段中的數(shù)據(jù)字改變,則根據(jù)本發(fā)明的奇偶位仍然改變。然而,如果狀態(tài)信息從一個魔術(shù)字改變到另一個魔術(shù)字,則奇偶位不改變。用以控制微處理器的軟件(微代碼)‘認識’該魔術(shù)字。魔術(shù)字可以存儲在例如閃速存儲器中。
在根據(jù)本發(fā)明的另一個實施例的集成電路系統(tǒng)中,可以使用狀態(tài)位61來決定內(nèi)容部分62中的數(shù)據(jù)是否有效。
在本發(fā)明的另一個實施例中,以模擬EEPROM的方式使用閃速存儲器71。
在本發(fā)明的再一個實施例中,使用一個循環(huán)冗余碼,最好是一個對稱的漢明碼,作為集成電路系統(tǒng)70中的錯誤修正算法。
圖9給出本發(fā)明的另外一個實施例。系統(tǒng)80包括微處理器84、微處理器總線91、RAM83、I/O設備92和閃速存儲器單元90。在閃速存儲器單元90內(nèi)實現(xiàn)本發(fā)明模式。它包括一個組合的錯誤修正編碼器/解碼器82(和可能有其它的控制電路),其通過閃速存儲器數(shù)據(jù)總線連接到閃速存儲器81。閃速存儲器數(shù)據(jù)總線包括位線86和87。微處理器84可以經(jīng)由總線91寫數(shù)據(jù)到閃速存儲器81中。這些數(shù)據(jù)由編碼器/解碼器82編碼(在被編程到閃速存儲器81中前)。通過位線86編程冗余位到閃速存儲器81和經(jīng)過數(shù)據(jù)線87編程閃速存儲器數(shù)據(jù)字到閃速存儲器81。編碼器/解碼器82產(chǎn)生具有兩部分的閃速存儲器數(shù)據(jù)字。第一部分表示位改變,而第二部分表示實際數(shù)據(jù)。為此目的,數(shù)據(jù)線87細分為承載閃速存儲器數(shù)據(jù)字的第一部分的數(shù)據(jù)線88和承載實際數(shù)據(jù)字的數(shù)據(jù)線89。
編碼器/解碼器82包括多個門(諸如與門、或門和異或門)。
當從閃速存儲器81中讀數(shù)據(jù)時,通過數(shù)據(jù)線86和87取各數(shù)據(jù)。然后,應用一個算法來檢驗該數(shù)據(jù)有效還是無效。如果該數(shù)據(jù)被認為有效,則使它們成為可通過總線91為微處理器84可用。如果該數(shù)據(jù)被認為無效,則改正它們,然后使它們通過總線91為微處理器84可用。
圖10A表示錯誤修正編碼器72的細節(jié)。在本例中,用于在閃速存儲器71中寫入數(shù)據(jù)的輸入總線Din是128位寬。通過總線線103把一個128位的數(shù)據(jù)字供給適配器100。適配器擴展該數(shù)據(jù)字,使得它在輸出總線104上有136位。這通過在該數(shù)據(jù)字的末尾添加零而實現(xiàn)。然后通過總線104把該136位的數(shù)據(jù)字供給奇偶位發(fā)生器101。奇偶位發(fā)生器101應用一個編碼模式(例如基于漢明碼)以便產(chǎn)生相應于在輸入Din處的數(shù)據(jù)字的冗余位。在本例中,有8個冗余位,它們在奇偶位發(fā)生器101的輸出總線105上提供。8位冗余字和在輸入Din處的128位的數(shù)據(jù)字組合,以便形成在輸出總線75(Dout)上的一個136位的字。這一136位的字存儲在閃速存儲器71中為以后檢索。
圖10B表示錯誤修正解碼器73的細節(jié)。當從閃速存儲器71中取136位的字時,它通過總線108供給另一個奇偶位發(fā)生器106。這一奇偶位發(fā)生器106可以和奇偶位發(fā)生器101相同。奇偶位發(fā)生器106應用一個編碼模式(例如基于漢明碼),以便能夠決定該136位的字中的任何位是否需要改正和識別哪一位必須被改正。在本例中,奇偶位發(fā)生器106在輸出總線109上提供一個8位的字,它指示該136位的字中的任何位是否需要改正和哪一位必須被改正。應用修正單元107執(zhí)行正被施加在它的輸入總線108上的136位字的必需的改正。然后把改正的數(shù)據(jù)字(Qout)提供到輸出總線110上。
錯誤修正編碼器72和錯誤修正解碼器73都可以使用標準數(shù)字邏輯實現(xiàn)。優(yōu)選,兩個功能塊72和73都可以集成到和閃速存儲器71同一個模子上。
根據(jù)本發(fā)明的閃速存儲器的特征是以圖5所示方式邏輯組織數(shù)據(jù)。每一閃速存儲器數(shù)據(jù)字包括一個第一部分,其中存儲為單個位改變保留的信息。閃速存儲器數(shù)據(jù)字的第二部分包括實際數(shù)據(jù)。提供一個第三部分,使用它來存儲冗余位。這些冗余位根據(jù)第一和第二部分中的信息計算。使用一個合適的代碼(例如漢明碼)來計算冗余位。根據(jù)本發(fā)明的一個實施例,可以規(guī)定錯誤修正代碼的某些代碼要求。第一條件將是該代碼應該是對稱的,亦即在其中所有位都是‘0’或所有位都是‘1’的代碼字必須是合法的字。
可以使用下面的等式來產(chǎn)生奇偶位發(fā)生器106的輸出總線109上的字ParGenQParGenQ=H·cTParGenQ是在總線109上的8位結(jié)果矢量。它通過用在輸入總線108上的136位的字乘奇偶位矩陣H產(chǎn)生。奇偶位發(fā)生器106實現(xiàn)該矩陣H。
在閃速存儲器71的輸入側(cè),可以使用同樣的矩陣H來產(chǎn)生輸出總線105上的冗余字。
為結(jié)合本發(fā)明使用,可以規(guī)定表征奇偶位矩陣H的規(guī)則。這些規(guī)則可以根據(jù)不同的應用而不同。
應該注意,本發(fā)明不允許無限制的位更改,像在沒有任何錯誤修正的閃速存儲器中的情形。
介紹一種為模擬閃速存儲器中電可擦可編程只讀存儲器(EEPROM)的成本有效的方法。這里介紹的方法使用具有關于閃速存儲器數(shù)據(jù)字改進的位可更改性的標準閃速存儲器部件,其足以滿足大多數(shù)應用。
根據(jù)另一個實施例,例如,閃速存儲器數(shù)據(jù)字具有128位的長度,和冗余字具有8位的長度。
本發(fā)明非常適合用于個人數(shù)字助理(PDA)、蜂窩電話、數(shù)字照相機、掌上型設備或多種其它設備。包括根據(jù)本發(fā)明的閃速存儲器的系統(tǒng)非常適合用來存儲萬維網(wǎng)地址、備忘錄、新的地址信息(例如新的電話號碼)、賬目(例如費用)等。
可以在其中使用本發(fā)明的一個例子是話音驅(qū)動(話音編碼)蜂窩電話。例如,各話音樣本存儲在閃速存儲器中。
本發(fā)明還非常適合用于這樣的蜂窩電話,在這樣的電話中,電話號碼存儲在閃速存儲器中而不是SIM卡上。如果一個電話號碼改變,則舊的電話號碼必須標記為過時。為此目的,閃速存儲器中的各數(shù)據(jù)字必須標記為無效。為實現(xiàn)這一點,必須改變單一位。在具有錯誤修正的常規(guī)閃速存儲器中,這是不可能的。然而,使用本發(fā)明,可以改變單一位,只要新的數(shù)據(jù)字(其中一位要改變)和原來的數(shù)據(jù)字具有同樣的冗余字。
本發(fā)明的一個優(yōu)點是,它改善了任何計算設備的可靠性,而沒有增加用于附加電路的更多開銷或成本。
應該理解,為清楚起見,本發(fā)明的各種特征在一些個別實施例的上下文中說明,它們也可以在單一實施例中組合提供。相反,為簡潔起見,在單一實施例的上下文中說明的本發(fā)明的各種特征也可以單獨或者以任何適合的子組合提供。
在附圖和說明書中,敘述了本發(fā)明的優(yōu)選實施例,雖然使用了特定的術(shù)語,但是這樣給出的說明在通用和說明性意義上使用這些術(shù)語,而不是為限制的目的。
權(quán)利要求
1.一種系統(tǒng),包括一個微處理器(74;84)、一個用于往閃速存儲器器件(71,72,73;90)中寫數(shù)據(jù)的數(shù)據(jù)總線(75;91)和一個用于從閃速存儲器器件(71,72,73;90)中讀數(shù)據(jù)的數(shù)據(jù)總線(75;91),閃速存儲器器件(71,72,73;90)包括-錯誤修正編碼器(72;82)-閃速存儲器(71;81);-錯誤修正解碼器(73;82)-閃速存儲器數(shù)據(jù)總線,用于互連錯誤修正編碼器(72;82)、閃速存儲器(71;81)和錯誤修正解碼器(73;82);-數(shù)據(jù)在由錯誤修正編碼器(72;82)處理時被轉(zhuǎn)換為包括狀態(tài)字(51)、數(shù)據(jù)字(52)、和冗余字(53)的字。
2.如權(quán)利要求1所述系統(tǒng),其中,錯誤修正編碼器(72;82)包括表示錯誤修正代碼的邏輯電路。
3.如權(quán)利要求2所述系統(tǒng),其中,錯誤修正代碼是一種對稱漢明碼。
4.如權(quán)利要求1、2或3所述系統(tǒng),其中,閃速存儲器數(shù)據(jù)總線(75)包括為寫冗余字(53)到閃速存儲器(71;81)中的位線(76;86)和/或為從閃速存儲器(71;81)讀冗余字(53)的位線(76;86)。
5.如權(quán)利要求1、2或3所述系統(tǒng),其中,閃速存儲器數(shù)據(jù)總線(75)包括為寫數(shù)據(jù)字(52)到閃速存儲器(71;81)中的位線(79;89)和/或為從閃速存儲器(71;81)讀數(shù)據(jù)字(52)的位線(79;89)。
6.如權(quán)利要求1、2或3所述系統(tǒng),其中,閃速存儲器數(shù)據(jù)總線(75)包括為寫狀態(tài)字(51)到閃速存儲器(71;81)中的位線(78;88)和/或為從閃速存儲器(71;81)讀狀態(tài)字(51)的位線(78;89)。
7.如權(quán)利要求1-6中任何一個權(quán)利要求所述系統(tǒng),其中,可以由錯誤修正解碼器(73;82)使用存儲在冗余字(53)內(nèi)的信息檢測和改正數(shù)據(jù)字(52)中可能的錯誤。
8.如權(quán)利要求1-7中任何一個權(quán)利要求所述系統(tǒng),為提供在閃速存儲器器件(71,72,73;90)中存儲的數(shù)據(jù)字上的位可更改性。
9.如前述權(quán)利要求中任何一個權(quán)利要求所述系統(tǒng),其中,要編程到閃速存儲器器件中的數(shù)據(jù)具有128位,冗余字具有8位,數(shù)據(jù)字具有112位,和狀態(tài)字具有16位。
10.如前述權(quán)利要求中任何一個權(quán)利要求所述系統(tǒng),其中,狀態(tài)字(51)確定數(shù)據(jù)字(52)中的數(shù)據(jù)字(52)是否有效。
11.如權(quán)利要求2所述系統(tǒng),其中,錯誤修正代碼是一個循環(huán)冗余代碼。
12.如前述權(quán)利要求中任何一個權(quán)利要求所述系統(tǒng),其中,數(shù)據(jù)以閃速存儲器(71;81)中的三部分組織,這里,第一部分(51)包含一個狀態(tài)字,第二部分(52)包含一個數(shù)據(jù)字,第三部分(53)包括一個冗余字。
13.如前述權(quán)利要求中任何一個權(quán)利要求所述系統(tǒng),其中,錯誤修正編碼器(72;82)包括一個用于展開數(shù)據(jù)寬度的適配器(100)和用于產(chǎn)生冗余字(53)的奇偶位發(fā)生器(101)。
14.如前述權(quán)利要求中任何一個權(quán)利要求所述系統(tǒng),其中,錯誤修正解碼器(73;82)包括一個奇偶位發(fā)生器(106),用于產(chǎn)生和供給字(ParGenQ)給修正單元(107)。
15.如權(quán)利要求14所述系統(tǒng),其中,修正單元(107)使用字(ParGenQ)以便改正從閃速存儲器(71;81)中讀取的數(shù)據(jù)字。
16.一種用于在閃速存儲器器件(71;81)存儲數(shù)據(jù)的方法,包括步驟-把所述數(shù)據(jù)供給奇偶位發(fā)生器(101),-在奇偶位發(fā)生器(101)的輸出(105)上產(chǎn)生一個冗余字(53),-產(chǎn)生一個狀態(tài)字(53),-組合數(shù)據(jù)(52)和冗余字(53)和狀態(tài)字(51)為一個字,-寫所述一個字到閃速存儲器器件(71;81)中。
17.如權(quán)利要求16所述方法,其中,閃速存儲器器件(71;81)中的一個特定字的狀態(tài)字可以采取多個預先規(guī)定的值中的一個,不需要一定改變該特定字的冗余字。
18.如權(quán)利要求17所述方法,其中,多個預先規(guī)定的值是所謂的魔術(shù)字。
19.如權(quán)利要求16-18中任何一個權(quán)利要求所述方法,其中,特定字從閃速存儲器器件(71;81)中讀取,并由奇偶位發(fā)生器(106)處理以便檢測位錯誤。
20.如權(quán)利要求19所述方法,其中,奇偶位發(fā)生器(106)產(chǎn)生一個輸出字,該輸出字指示是否已發(fā)生位錯誤和必須改正該字中的哪一位。
21.如權(quán)利要求19所述方法,其中,改正根據(jù)在奇偶位發(fā)生器(106)的輸出字中包含的信息進行。
22.如權(quán)利要求16-21中任何一個權(quán)利要求所述方法,其中,使用狀態(tài)字(51)指示在相應數(shù)據(jù)字段(52)中的數(shù)據(jù)是有效數(shù)據(jù)還是無效數(shù)據(jù)。
全文摘要
系統(tǒng)(70)包括微處理器(74),一個用于往閃速存儲器器件(71)中寫數(shù)據(jù)的數(shù)據(jù)總線(75)和一個用于從閃速存儲器器件(71)中讀數(shù)據(jù)的數(shù)據(jù)總線(75),閃速存儲器器件(71)包括錯誤修正編碼器(72)、閃速存儲器(71)、錯誤修正解碼器(73)、和閃速存儲器數(shù)據(jù)總線,所述數(shù)據(jù)總線用于互連錯誤修正編碼器(72)、閃速存儲器(71)和錯誤修正解碼器(73)。數(shù)據(jù)在由錯誤修正編碼器(72)處理時被轉(zhuǎn)換為包括狀態(tài)字(51)、數(shù)據(jù)字(52)、和冗余字(53)的字。這一方法允許以單一位改變修正錯誤。
文檔編號G11C29/00GK1529852SQ02801354
公開日2004年9月15日 申請日期2002年4月12日 優(yōu)先權(quán)日2001年4月24日
發(fā)明者S·加皮施, C·P·M·J·巴根, A·G·J·斯倫特, H·-J·格爾克, J 斯倫特, M J 巴根, S 加皮施, じ穸 申請人:皇家菲利浦電子有限公司