欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于快速eeprom存貯器陣列的錯(cuò)誤管理處理的制作方法

文檔序號:6744594閱讀:151來源:國知局
專利名稱:用于快速eeprom存貯器陣列的錯(cuò)誤管理處理的制作方法
背景技術(shù)
發(fā)明領(lǐng)域本發(fā)明涉及快速EEPROM存貯器陣列,更具體地,本發(fā)明涉及用于為這種陣列提供錯(cuò)誤管理的方法和裝置?,F(xiàn)有技術(shù)最近,快速存貯器(快速EEPROM存貯器)已經(jīng)用作長期存貯器的一種新形式??焖貳EPROM存貯器陣列由大量的浮置柵金屬氧化硅場效應(yīng)晶體管器件構(gòu)成,這些晶體管器件典型地以行和列的形式和電路一起構(gòu)成存貯器單元,其中的電路用于訪問特定單元和將這些單元的存貯器晶體管設(shè)置成不同的存貯器狀態(tài)。這種存貯器晶體管可以通過在其浮置柵上存儲電荷而進(jìn)行編程。當(dāng)電源從該陣列中移去時(shí)這些電荷能夠保持住。其電荷電平可以通過詢問這些器件而檢測。這種陣列可以用來提供硬盤驅(qū)動器的一種更加小而輕的功能等效物,它的操作速度更快并且對物理損壞不敏感??焖貳EPROM存貯器陣列特別適用于便攜式計(jì)算機(jī),這種計(jì)算機(jī)中的空間非常寶貴,并且其重量也特別重要。
在最初的設(shè)計(jì)中,每個(gè)快速EEPROM存貯器件存儲一位數(shù)據(jù)。如果編程快速EEPROM存貯器件而使得電荷存儲在浮置柵上,那么其狀態(tài)一般稱為“0”或編程態(tài);而如果幾乎沒有或沒有電荷存儲在浮置柵上,則其一般稱為“1”或擦除態(tài)。最近已經(jīng)發(fā)現(xiàn),用于快速EEPROM存貯器陣列的晶體管器件可以制成以一些高于所述擦除態(tài)電荷電平的多個(gè)不同電平存儲電荷。實(shí)質(zhì)上,在編程或擦除過程中,通過改變施加到器件端子上的電壓和施加的持續(xù)時(shí)間,可以在這種器件的浮置柵上存儲四個(gè)或更多的不同的電荷電平(包括擦除電平);并且可以檢測到這些不同的電荷電平(器件狀況或狀態(tài))。這樣就允許在存貯器陣列中的快速EEPROM器件中每一器件存儲的位數(shù)多于1位并且極大地增加了這種陣列的存儲量。采用這種方法的器件稱為多位單元。
在快速EEPROM單元中的多于1位數(shù)據(jù)的存儲產(chǎn)生了一些問題。對任意特定存貯器件來講,由于其可存儲的電荷的最大值實(shí)質(zhì)上是固定的,因此,當(dāng)存儲多個(gè)電平時(shí),在表示由單元存儲的不同數(shù)據(jù)值的電荷電平之間的差別將非常小。不同的電荷電平通過與參考單元上的電荷電平比較而被讀取。電荷往往會從某些存貯器件的浮置柵上隨著時(shí)間而泄漏。僅存儲1位數(shù)據(jù)的器件的浮置柵上的相對小的泄漏量可以改變多位單元的電荷電平,而這個(gè)改變足以在與參考電荷電平比較時(shí)產(chǎn)生一錯(cuò)誤值。因此,由于從存儲一些不同的電荷電平的特定快速EEPROM單元的浮置柵上的電荷泄漏而引起更多的錯(cuò)誤是可能的。
希望能夠糾正因快速EEPROM存貯器件的浮置柵的泄漏而引起的錯(cuò)誤,使得這些錯(cuò)誤不會影響存儲的數(shù)據(jù)的正確性。發(fā)明簡述因此,本發(fā)明的一個(gè)目的是提供一種方法和裝置,用于保證存儲在快速EEPROM存貯器陣列中的數(shù)據(jù)的完整性,其中的每個(gè)存貯器件能夠存儲多于1位的數(shù)據(jù)。
本發(fā)明的這種和其它的目的可利用包括錯(cuò)誤檢測和糾正電路的裝置和一種方法來實(shí)現(xiàn),其中的方法在錯(cuò)誤能夠影響由快速EEPROM存貯器陣列提供的數(shù)據(jù)的正確性之前,利用所述電路檢測并糾正能夠在以多位/單元的格式存儲于快速EEPROM存貯器陣列的數(shù)據(jù)中產(chǎn)生的那些錯(cuò)誤。
通過參考附圖所作的詳細(xì)描述,將會更好地理解本發(fā)明的這種和其它目的和特性,在附圖中,所有的幾幅圖中的相同部分由相同的標(biāo)記來指示。


圖1是可以采用本發(fā)明的一計(jì)算機(jī)的方框圖。
圖2是根據(jù)本發(fā)明構(gòu)成的快速EEPROM存貯器陣列的方框圖。
圖3說明了一對存貯器芯片和用于圖2所示的存貯器陣列中的控制電路。
圖4說明了在根據(jù)本發(fā)明構(gòu)成的存貯器陣列的一部分中控制信息和數(shù)據(jù)的安置。
圖5是一流程圖,說明了根據(jù)本發(fā)明而實(shí)施的一種方法。
圖6說明了錯(cuò)誤檢測和糾正電路的應(yīng)用。符號和術(shù)語下面的詳細(xì)描述的某些部分根據(jù)對計(jì)算機(jī)存貯器中的數(shù)據(jù)位操作的符號表示來描述。這些描述和表示是數(shù)據(jù)處理技術(shù)領(lǐng)域的普通技術(shù)人員采用的方式,以便最有效地將其工作的實(shí)質(zhì)傳播給本領(lǐng)域的其它技術(shù)人員。這些操作是那些需要物理量的物理處理的操作。通常,雖然不是必須,但是這些量采用能夠存儲、傳送、比較、合并和其它處理的電或磁信號的形式。已經(jīng)得到證明的是,主要是共同的理由,將這些信號稱作位、值、元素、符號、字符、記錄項(xiàng)、數(shù)、或類似物通常是方便的。但是,應(yīng)該記住的是,所有這些和類似術(shù)語與相應(yīng)的物理量相關(guān)聯(lián),并且僅僅是用于這些量的方便的標(biāo)記。
而且,執(zhí)行的處理常常涉及術(shù)語,諸如加或比較等,它們常常與人完成的精神活動相關(guān)聯(lián)。在大多數(shù)情況下,在這里描述的構(gòu)成本發(fā)明的一部分的任意操作中,人的這種能力是不需要的或不想要的;這些操作是機(jī)器操作。用于執(zhí)行本發(fā)明的操作的可用的機(jī)器包括通用數(shù)字計(jì)算機(jī)或其它類似設(shè)備。在所有的情況中,應(yīng)該考慮在操作計(jì)算機(jī)中的操作方法和其自身的計(jì)算方法之間的差別。本發(fā)明涉及一種方法和裝置,用于在處理電或其它(例如,機(jī)械、化學(xué))物理信號以產(chǎn)生其它所需的物理信號中操作計(jì)算機(jī)。
在本說明書中,在其名字中包括“#”的信號被認(rèn)為是一個(gè)低態(tài)有效信號。用于信號的術(shù)語“確立”(assert)表示此信號有效而不管其電平為高或低。術(shù)語“撤銷”(de-assert)表示此信號是無效的。詳細(xì)描述現(xiàn)在參見圖1,這是根據(jù)本發(fā)明的一個(gè)實(shí)施例配置的數(shù)字系統(tǒng)的說明性的方框圖。本發(fā)明可應(yīng)用在利用快速EEPROM存貯器陣列的任意系統(tǒng)中。例如計(jì)算機(jī)系統(tǒng)。這樣的系統(tǒng)10的一部分包括一中央處理單元11,它執(zhí)行提供的各種指令以控制系統(tǒng)10的操作。所述中央處理單元11連接到適用于在系統(tǒng)10的各部件之間傳送信息的總線12。連接到總線12的有主存貯器13,主存貯器13典型地由動態(tài)隨機(jī)存取存貯器構(gòu)成,所述動態(tài)隨機(jī)存取存貯器以一種現(xiàn)有技術(shù)中本領(lǐng)域技術(shù)人員公知的方式安置,用于在電源提供給系統(tǒng)10期間存儲信息。
連接到總線12的還有諸如長期存貯器16等的各種外圍部件和諸如數(shù)據(jù)可以寫入其中的幀緩沖器17等各種電路,所述數(shù)據(jù)可以傳送到諸如用于顯示的監(jiān)視器18等輸出設(shè)備。不用通常用作長期存貯器的機(jī)電硬盤驅(qū)動器,而是可以利用快速EEPROM存貯器陣列作為長期存貯器16。這種快速EEPROM存貯器陣列可以是一位或多電平存貯器系統(tǒng)(其中的一個(gè)存儲單元可以存儲多于1個(gè)二進(jìn)制位的存貯器系統(tǒng)),并且還可以包括用于控制存貯器陣列操作的電路,這些操作包括與讀、編程(寫)、和擦除存貯器陣列相關(guān)聯(lián)的所有操作。
圖2以方框圖的形式說明了諸如圖1所示出的存貯器系統(tǒng)16。存貯器系統(tǒng)16通過接口20連接到總線12。接口20提供適當(dāng)?shù)碾娐酚糜趯⒖偩€12上供給的信號提供到快速系統(tǒng)總線21??焖傧到y(tǒng)總線21在接口20和邏輯電路22之間傳送信號。在一個(gè)實(shí)施例中,此邏輯電路22是一個(gè)專用集成電路(ASIC),它提供用于完成和協(xié)調(diào)諸如快速EEPROM存貯器陣列的讀、寫、擦除、和確定各部分狀態(tài)等的快速存貯器系統(tǒng)16的各種操作的邏輯。邏輯電路22用作一個(gè)命令中心并且通過快速總線24控制在多個(gè)快速EEPROM芯片對23中產(chǎn)生的操作,從而使得這些芯片一起成為一個(gè)長期存貯器系統(tǒng)。為了本發(fā)明的目的,應(yīng)該注意到編碼電路55和譯碼及糾正電路56包含在邏輯電路22中。如將要解釋的那樣,這些電路55和56用于完成一部分在本發(fā)明中所用的錯(cuò)誤檢測和糾正。邏輯電路22在其操作中由微處理器28協(xié)助,所述微處理器28在微處理總線25上與隨機(jī)存取存貯器26和只讀存貯器27相聯(lián)系。為了本發(fā)明的目的,以一種本領(lǐng)域的技術(shù)人員公知的方式,微處理器28、隨機(jī)存取存貯器26和只讀存貯器27實(shí)質(zhì)上起一個(gè)通用處理器的作用。在一個(gè)實(shí)施例中,只讀存貯器27用于存儲一過程,此過程用于控制實(shí)現(xiàn)本發(fā)明的錯(cuò)誤檢測和糾正操作的一部分。
在一個(gè)實(shí)施例中,每對快速EEPROM存貯器芯片23包括32塊存貯器晶體管。芯片對23中的每一個(gè)芯片包括32塊存貯器晶體管中的一半和控制電路,所述控制電路用于對在芯片對23的塊中的各個(gè)存貯單元實(shí)現(xiàn)其中包括讀、寫、和擦除等的操作。如圖3所示,它顯示了在其中放有32塊陣列的一對快速芯片,每個(gè)快速芯片對23通過命令用戶接口(CUI)29連接到快速總線24。用戶接口29從快速系統(tǒng)16的邏輯電路22提供命令信號到芯片對23并且控制在存貯器系統(tǒng)16和芯片對23之間的數(shù)據(jù)傳送。用戶接口29與一寫狀態(tài)機(jī)30相關(guān)聯(lián),此狀態(tài)機(jī)用于控制芯片對23的寫操作和某些內(nèi)部操作。在一個(gè)實(shí)施例中,寫狀態(tài)機(jī)30包括一微控制器,此微控制器包括通用寄存器、調(diào)用堆棧、程序計(jì)數(shù)器、代碼和數(shù)據(jù)存貯區(qū),微控制器使存儲在代碼存儲區(qū)中的大量命令在所述狀態(tài)機(jī)30能夠執(zhí)行。
圖3的芯片對23包括一快速EEPROM存貯器陣列31,在本實(shí)施例中所述的陣列31包括32個(gè)單獨(dú)的塊,每塊包括64KB的快速EEPROM存貯器單元。如圖中所示,陣列31包括用于控制位線和讀取陣列31的輸出讀取器件的Y選通/讀取電路33。在快速存貯器訪問期間,Y譯碼電路34提供地址信息給Y選通/讀取電路33,而同時(shí)X譯碼電路35提供用于選擇字線的地址。地址在一地址輸入緩沖器37中提供給快速芯片對23,此地址輸入緩沖器37利用一地址排隊(duì)寄存器38、一地址計(jì)數(shù)器39一起控制地址到芯片對23的傳輸。
數(shù)據(jù)在一對輸入緩沖器40、41處提供到芯片對23,從所述的一對輸入緩沖器中數(shù)據(jù)可以傳送到一數(shù)據(jù)排隊(duì)寄存器43或一對頁面緩沖器44。在寫狀態(tài)機(jī)30的控制下,數(shù)據(jù)排隊(duì)寄存器43和頁面緩沖器44的每一個(gè)都提供至陣列31的一直接路徑。頁面緩沖器44允許積累相對大量的數(shù)據(jù),并且然后以比可能采用單獨(dú)的讀寫操作快得多的速度將這些數(shù)據(jù)寫入陣列31或主機(jī)(host)。通過一對輸出緩沖器45、46,采用由命令用戶接口29控制的一輸出多路復(fù)用器47,數(shù)據(jù)從陣列31中被讀入系統(tǒng)。在命令用戶接口29的控制下,所述多路復(fù)用器47也允許來自頁面緩沖器44、ID寄存器和諸如狀態(tài)寄存器等的其它各種內(nèi)部電路的各種系統(tǒng)信息的傳送。狀態(tài)寄存器(圖中的CSR和ESR)可被讀取以便確定一操作的狀態(tài),諸如寫或擦除、操作是否完成,以及操作是否成功地完成等。這些狀態(tài)寄存器還提供關(guān)于每個(gè)芯片的狀態(tài)、芯片中每塊的狀態(tài)、命令隊(duì)列的狀態(tài)、和芯片正在操作的模式等信息。數(shù)據(jù)比較器48包括與命令用戶接口共同作用的電路,此電路比較采用任意命令提供給芯片對23的地址和在芯片對的每塊上的地址,使得一邏輯地址可以被快速地訪問。
存貯器芯片對23的命令用戶接口29接收來自快速系統(tǒng)邏輯電路22的大量命令。這些命令可以分成讀命令、寫命令和存貯系統(tǒng)維護(hù)系統(tǒng)。讀命令完全在接口29的控制下在芯片對23內(nèi)執(zhí)行。寫命令和許多維護(hù)命令由接口29采用寫狀態(tài)機(jī)30執(zhí)行。特別適用的是,在一個(gè)實(shí)施例中,所述寫狀態(tài)機(jī)30包括一可編程微控制器。
由Wells和Hasbun提交的申請日為1992年10月30日并且轉(zhuǎn)讓給本發(fā)明的受讓人的題目為“A Method and Circuitry For A Solid StateMemory Disk”,序號為969,131的美國專利申請?zhí)峁┝艘环N用于控制快速EEPROM存貯器陣列操作的裝置的進(jìn)一步描述。
如圖3所示,陣列31分成多個(gè)存儲器塊。通常,快速EEPROM存儲器陣列分成相聯(lián)接的塊,使得每整塊存貯器單元可以同時(shí)被擦除。對于N型互補(bǔ)金屬氧化硅(CMOS)存貯器件,典型地,通過將一高電壓值同時(shí)加到一個(gè)塊的所有存貯器晶體管的源極端子,同時(shí)將這些器件的柵極端子接地和漏極端子懸空來實(shí)現(xiàn)其擦除。這樣的擦除使塊中的每個(gè)器件處于擦除狀態(tài)。當(dāng)在擦除狀態(tài)時(shí),器件可以編程為在其浮置柵上設(shè)置一特定的電荷電平。在過去,僅僅一個(gè)高于擦除電平的電荷電平被利用,而此電平通常稱為“0”或編程態(tài)。擦除狀態(tài)一直稱作“1”或擦除態(tài)。用于在僅僅這兩個(gè)電荷電平上存儲電荷的單元能夠存儲一位數(shù)據(jù)。最近,已經(jīng)發(fā)現(xiàn),除擦除電平之外的多個(gè)電荷電平可以存儲在快速EEPROM單元的浮置柵上。采用除擦除態(tài)之外的三個(gè)電荷電平,一個(gè)單元能夠存儲兩位數(shù)據(jù)。
不管在一個(gè)單元中存貯一位還是多位數(shù)據(jù),由于陣列的一個(gè)塊中的所有存貯器晶體管的源極連接在一起,因此,一個(gè)在充電狀態(tài)中的單元不能切換到擦除狀態(tài),直至陣列的這一整塊再次被擦除。因此,機(jī)電硬盤驅(qū)動器通常在其盤的第一區(qū)域存儲信息,然后當(dāng)信息改變時(shí)重寫這個(gè)相同的區(qū)域,而對于快速EEPROM存儲器陣列,不擦除全部有效信息是不可能的,其中的有效信息和無效(臟)信息同時(shí)保存在這部分陣列中。
因此,在某些結(jié)構(gòu)中,當(dāng)在數(shù)據(jù)記錄項(xiàng)中的信息改變時(shí),這些改變的信息寫到含有空(擦除)單元的該陣列一塊上的新扇區(qū)而不是重寫在舊數(shù)據(jù)上;并且將舊數(shù)據(jù)標(biāo)記成無效。然后,在一塊上的足夠數(shù)量的扇區(qū)被標(biāo)記為無效后,此整塊被擦除。典型地,一快速陣列將存儲在陣列中的數(shù)據(jù)寫到一些含有擦除單元的陣列塊中。寫操作在具有空扇區(qū)的決中順序進(jìn)行,一個(gè)扇區(qū)接一個(gè)扇區(qū),直到塊中填滿數(shù)據(jù)為止。
由于數(shù)據(jù)通過這種方式替換,因此,在一段時(shí)間后,陣列的每塊將有許多標(biāo)記為無效且不能用于存儲的記錄項(xiàng)(entry)。因此,陣列在預(yù)先存儲的數(shù)據(jù)改變時(shí)填充數(shù)據(jù);并且這時(shí)需要清除一個(gè)塊中的無效數(shù)據(jù)以便為存儲新的或改變的數(shù)據(jù)提供空間。當(dāng)發(fā)生塊擦除時(shí),將擦除的塊中存儲的所有剩余的有效數(shù)據(jù)寫到一新塊中;數(shù)據(jù)從其中讀出的那些空間標(biāo)記為無效;并且然后,整個(gè)無效塊被擦除(清理)并且作為一個(gè)空的存貯器塊重新投入使用。
擦除一新的快速EEPROM陣列中的一塊通常需要一秒。但是,由于擦除不需要重寫每個(gè)記錄項(xiàng),因此擦除可以延遲直到一個(gè)塊含有可以清理的足夠數(shù)量的無效信息為止。這樣就將擦除操作的次數(shù)減至最小值,并且允許當(dāng)控制陣列的設(shè)備沒有被讀寫操作占用時(shí)在后臺進(jìn)行擦除。
由于在這種方式中通過將數(shù)據(jù)寫到不同的物理位置而將其進(jìn)行替換的方式,數(shù)據(jù)存貯的物理位置經(jīng)常改變。為了指示具體數(shù)據(jù)存儲的位置,一邏輯扇區(qū)號被分配給此數(shù)據(jù)并且伴隨此數(shù)據(jù)。根據(jù)系統(tǒng)的實(shí)現(xiàn),此邏輯扇區(qū)號可以是象主計(jì)算機(jī)采用的那樣的相同扇區(qū)號。然后,當(dāng)訪問陣列10中的數(shù)據(jù)時(shí),所述控制器搜索每個(gè)邏輯扇區(qū)號。
圖4是一理想化的圖,它說明了陣列中的一個(gè)單獨(dú)塊的實(shí)施例,并且可用于描述數(shù)據(jù)存儲的方法。一個(gè)典型的塊示作一個(gè)大的矩形區(qū)域。在一個(gè)實(shí)施例中,此區(qū)域分成兩個(gè)單獨(dú)的物理芯片。以16位字工作的這些芯片的其中之一存儲所有塊的所有低字節(jié)數(shù)據(jù),而另一芯片存儲所有塊的所有高字節(jié)數(shù)據(jù)。在一個(gè)實(shí)施例中,每個(gè)芯片有自己單獨(dú)的控制電路,包括單獨(dú)的控制用戶接口29和單獨(dú)的寫狀態(tài)機(jī)30。在每個(gè)芯片上為陣列的一個(gè)塊分配的區(qū)域包括大量的晶體管器件,它們通常按行和列排列以便提供所需的存儲。單獨(dú)的晶體管,各種列和行選擇線,以及用于操作塊的其它導(dǎo)線沒有在圖4中示出,但這些對于設(shè)計(jì)快速EEPROM存貯器陣列技術(shù)的技術(shù)人員是公知的。
如圖4中所見,從塊的頂部開始,在塊50的每個(gè)芯片中存儲信息,并且連續(xù)進(jìn)行到底部。在塊50的每個(gè)芯片的頂部是稱作扇區(qū)翻譯表或“標(biāo)題”的標(biāo)示字段。此標(biāo)示字段存儲包括用作數(shù)據(jù)地址的邏輯扇區(qū)號的數(shù)據(jù)。例如,在一個(gè)實(shí)施例中,在頂部,一邏輯扇區(qū)號在低字節(jié)芯片的標(biāo)題部分作為第一標(biāo)題的一部分被存作3個(gè)字節(jié)。在圖中,存儲在第一標(biāo)題中的第一扇區(qū)的邏輯扇區(qū)號示作“LSN1”,雖然它可能是此陣列范圍內(nèi)的任意數(shù)。相同的邏輯扇區(qū)號在高字節(jié)芯片的標(biāo)題部分以不同的順序存作3字節(jié)。用于檢驗(yàn)標(biāo)題有效性的一組屬性和數(shù)據(jù)也可以包括在芯片的標(biāo)題區(qū)域中。這些屬性包括指示數(shù)據(jù)是否存儲在標(biāo)題下面的數(shù)據(jù)區(qū)域的位、指示塊是否認(rèn)為是壞的或不可用的位、修正號、和存貯模式。這些字段允許在扇區(qū)中準(zhǔn)確地提取數(shù)據(jù)。
緊接在邏輯扇區(qū)LSN1的第一標(biāo)題之下存儲了用于存貯在陣列的特定塊上的每個(gè)其它扇區(qū)的標(biāo)題數(shù)據(jù)。典型地,陣列中一塊存儲大約五百個(gè)扇區(qū)。在該塊的每個(gè)芯片上在包含標(biāo)題的這個(gè)塊的部分之下存儲了用于其頂部中具有標(biāo)題的每個(gè)邏輯扇區(qū)的數(shù)據(jù)。這些數(shù)據(jù)包括在寫操作過程中產(chǎn)生的在圖中標(biāo)為EDAC區(qū)域的錯(cuò)誤檢測和糾正碼。在一個(gè)實(shí)施例中,用于邏輯扇區(qū)LSN1的數(shù)據(jù)存儲在塊數(shù)據(jù)部分的底部(圖中)。然后,自頂部下一個(gè)標(biāo)題的數(shù)據(jù)(邏輯扇區(qū)LSN2)緊靠著在邏輯扇區(qū)LSN1的數(shù)據(jù)的上面存儲。這種格式在整個(gè)塊中延續(xù)。圖4中的箭頭示出了用于每個(gè)邏輯扇區(qū)的第一字節(jié)數(shù)據(jù)存儲于其中的物理位置。關(guān)于作為塊上的第一扇區(qū)的邏輯扇區(qū)LSN1,數(shù)據(jù)從在由箭頭指示的位置上的字節(jié)寫入,其中所述的箭頭從標(biāo)題中的扇區(qū)號LSN1的標(biāo)題開始至在整個(gè)數(shù)據(jù)存儲區(qū)底部上的一位置。圖4也顯示了第二箭頭,此箭頭從標(biāo)為LSN2的邏輯扇區(qū)的標(biāo)題開始至存儲了邏輯扇區(qū)LSN2的數(shù)據(jù)的第一字節(jié)的塊上的一物理位置,可以看到,由于用于上面存儲的標(biāo)題的數(shù)據(jù)扇區(qū)從塊底部向上寫操作,那么在標(biāo)題和數(shù)據(jù)之間會留下一擦除區(qū),如果讀它會產(chǎn)生全部的“1”值,這些“1”值可以翻譯成16進(jìn)制值FF、FF。這些值可以用于管理陣列。
在塊的最底部存儲了可用于維護(hù)陣列的附加狀態(tài)信息。在此區(qū)域中可以存儲稱為“可疑”(questionable)的指示,表示在訪問該塊中是否出現(xiàn)問題的一個(gè)指示,可以存儲指明此塊是壞的并脫離服務(wù)的一個(gè)指示,以及某些其它數(shù)據(jù)。
陣列以一位模式在讀寫操作期間被訪問的這種方法可以通過參考圖3和4來理解。在使用前,每個(gè)陣列的塊格式化成含有一個(gè)標(biāo)題、用于塊可以存儲的每扇區(qū)512字節(jié)數(shù)據(jù)的空存儲區(qū),以及一狀態(tài)區(qū)。當(dāng)最初用邏輯扇區(qū)號格式化時(shí),陣列31中的大多數(shù)扇區(qū)被順序地編號,但有幾個(gè)塊格式化成不用的并且在其標(biāo)題區(qū)中沒有扇區(qū)信息。在一個(gè)實(shí)施例中,當(dāng)數(shù)據(jù)寫入陣列31時(shí),這些數(shù)據(jù)被提供到頁面緩沖器44。用于寫數(shù)據(jù)的一開始地址提供給陣列31的低字節(jié)芯片的頁面緩沖器44。頁面緩沖區(qū)中的數(shù)據(jù)寫入具有空區(qū)域的一個(gè)塊中的未用扇區(qū)的數(shù)據(jù)區(qū)。所述未用扇區(qū)的標(biāo)題區(qū)被寫狀態(tài)機(jī)使用作為地址提供的邏輯扇區(qū)號進(jìn)行寫操作。
利用一個(gè)讀或?qū)懖僮?,一命令字也提供給接口29以用于一個(gè)對含有修改數(shù)據(jù)的扇區(qū)的搜索。此命令字包括關(guān)于該標(biāo)題的搜索的信息尋找一個(gè)還是兩個(gè)字、此搜索是在一位或是多位模式、以及遞增多少字。接口29實(shí)施對陣列中的扇區(qū)的搜索,其方法是,從標(biāo)題區(qū)的頂部向下搜索每個(gè)塊直至發(fā)現(xiàn)其邏輯扇區(qū)號,或者,以通過返回來自緊靠該塊的標(biāo)題區(qū)下面的區(qū)域中的數(shù)據(jù)值“FF、FF”而指明的形式發(fā)現(xiàn)其不在此塊中。接口29采用數(shù)據(jù)比較器電路,以便快速地將由任意命令提供到芯片對23的一地址與此芯片對的每一塊上的地址順序地比較,使得一邏輯地址能夠被快速地訪問。
當(dāng)在一塊中發(fā)現(xiàn)所述邏輯扇區(qū)號時(shí),此塊和在此扇區(qū)的塊上的偏移以及所發(fā)現(xiàn)的此扇區(qū)的一指示一起傳回到頁面緩沖器。對于讀操作,接口29采用此地址完成這個(gè)讀操作。對于寫操作,不管是原始寫還是數(shù)據(jù)修改,寫狀態(tài)機(jī)30都尋找已經(jīng)發(fā)現(xiàn)的扇區(qū)的指示并且采用所述地址以確定此扇區(qū)存儲在陣列31中的位置。由于新數(shù)據(jù)已提供到未用扇區(qū)并構(gòu)造一新的標(biāo)題,寫狀態(tài)機(jī)30將在此塊上發(fā)現(xiàn)的具有舊數(shù)據(jù)的扇區(qū)標(biāo)記為無效。
在特定邏輯扇區(qū)中的數(shù)據(jù)每次改變時(shí)都引起這種操作。采用輸入地址緩沖器37而將扇區(qū)號提供到頁面緩沖器44。接口29實(shí)施一搜索以尋找此邏輯扇區(qū)的物理位置。這個(gè)發(fā)現(xiàn)的扇區(qū)被標(biāo)記為無效,并且由寫狀態(tài)機(jī)30將其標(biāo)題和數(shù)據(jù)寫到在陣列31的一個(gè)塊的某個(gè)地方上的一個(gè)空扇區(qū)。
當(dāng)讀數(shù)據(jù)時(shí),其邏輯扇區(qū)號送到頁面緩沖器。實(shí)施所述的搜索;并且當(dāng)定位一扇區(qū)時(shí)檢測其標(biāo)題的有效性。如果標(biāo)題有效,那么就可以讀數(shù)據(jù)。如果這些不匹配,則數(shù)據(jù)無效并且如此標(biāo)示。每當(dāng)在數(shù)據(jù)已經(jīng)寫到新的區(qū)域后將一扇區(qū)標(biāo)記為無效,此無效扇區(qū)總是留下來,在后來的某個(gè)時(shí)刻,當(dāng)此塊上有足夠數(shù)量的扇區(qū)標(biāo)記為無效時(shí),則被清理。由于直到整個(gè)塊被擦除為止,在此塊上標(biāo)記為無效的空間不能釋放而使用,因此,在一段時(shí)間后,陣列的每個(gè)塊都將有許多標(biāo)記為無效并且不能用于存儲的記錄項(xiàng)。因此,隨著將該陣列用于存儲數(shù)據(jù),陣列中無效空間的總量將增加。在一段時(shí)期后,足夠數(shù)量的塊將滿足釋放空間所需要的數(shù)量,其中,通過將有效信息從一些特定臟塊移到一些其它塊并且擦除所述有效信息已經(jīng)從中移走的整個(gè)塊來完成所述的釋放空間。寫有效數(shù)據(jù)到其它塊并且擦除一臟塊的過程稱作“清理塊”,并且具有的效果是,釋放的額外數(shù)量的扇區(qū)等于在所述擦除塊上已經(jīng)預(yù)先標(biāo)記為無效的所有扇區(qū)。
允許快速EEPROM存貯器陣列的單個(gè)存貯單元在一位或多位模式操作的一種裝置已經(jīng)設(shè)計(jì)出來。這種裝置的實(shí)質(zhì)是提供了一第一參考單元,此單元安排在一個(gè)類似于每個(gè)位線裝置的裝置中。此參考單元存儲的電荷值被任意選擇的存貯單元存儲的電荷值的讀出來比較。如果此存貯單元存貯的電荷少于所述參考單元存儲的電荷,那么讀出放大器就提供一輸出信號以指示此單元被擦除。如果此存貯單元存儲的電荷多于參考單元存儲的電荷,那以讀出放大器就提供一輸出信號以指示此單元被編程。
在其最簡單的形式中,此裝置還包括一第二多個(gè)參考單元,每個(gè)參考單元以一個(gè)與第一電平不同的電平存儲電荷。任意存貯單元存儲的電荷可以由讀出放大器與這些參考電平的其中之一比較,以便確定此存貯單元存儲的電荷電平。在一個(gè)實(shí)施例中,提供了三個(gè)參考電平,使得在一存貯單元的浮置柵上能夠讀出四個(gè)不同的電荷電平。為了以一位模式操作陣列,提供一信號以便將所述第一參考單元切換到操作中。為了以多位模式操作陣列,提供一信號以便將所述第二組多個(gè)參考單元切換到操作中。
如上所指出,在一個(gè)實(shí)施例中,錯(cuò)誤檢測和糾正碼與數(shù)據(jù)一起存儲,并且允許高達(dá)5位錯(cuò)誤的檢測和糾正。如前所述,當(dāng)系統(tǒng)操作在多位模式中時(shí)引起的一個(gè)問題是,從某些快速存貯晶體管的浮置柵上的泄漏能夠引起錯(cuò)誤。這種泄漏是相對于時(shí)間的,使得當(dāng)存貯單元在某一時(shí)間周期中沒有寫操作時(shí),泄漏就很可能產(chǎn)生;并且可能丟失一些數(shù)據(jù)。不管泄漏在短時(shí)間內(nèi)還是經(jīng)過幾年后發(fā)生,數(shù)據(jù)丟失都不能容許。基于這一理由,數(shù)據(jù)中包含了錯(cuò)誤檢測和糾正碼。在一個(gè)實(shí)施例中,將十字節(jié)的錯(cuò)誤檢測和糾正碼附加到存貯在每個(gè)扇區(qū)中的數(shù)據(jù)。
錯(cuò)誤檢測和糾正碼與每扇區(qū)數(shù)據(jù)一起存儲在快速EEPROM陣列中(在圖4中表示為EDAC的區(qū)域)。此錯(cuò)誤檢測和糾正碼允許檢測和糾正一位或多位錯(cuò)誤。這種類型的錯(cuò)誤檢測和糾正碼對本領(lǐng)域的技術(shù)人員是公知的,并且廣泛地應(yīng)用于保護(hù)存儲在機(jī)電硬盤中的數(shù)據(jù)。例如,錯(cuò)誤糾正碼及其操作這種碼的例子在“Practical Error Correction DesignFor Engineers,”(第2次修訂,作者Glover和Trent,Cirrus Logic Press出版,1990版)有詳細(xì)描述。
圖6描述了一個(gè)簡化的錯(cuò)誤檢測和糾正方法,它可用于上述的兩個(gè)存儲裝置中的錯(cuò)誤。此方法用圖說明了在組織成行和列的存貯器陣列中與檢測和糾正錯(cuò)誤相關(guān)聯(lián)的問題。基于這一目的,圖中僅示出了四行和四列存貯單元位置。此方法利用了一奇偶校驗(yàn)裝置,在其中,根據(jù)存儲在特定行或列中“1”的總數(shù)是奇數(shù)還是偶數(shù)而為每個(gè)行和每個(gè)列分配值。如果,例如在第一、第三和第四行中的“1”的總數(shù)為奇數(shù),那么就存儲一個(gè)“1”作為檢測和糾正碼,使得“1”的總數(shù)為偶數(shù)。如果,例如在第二、第三和第四列中“1”的總數(shù)為偶數(shù),那么就存儲一個(gè)“0”作為檢測和糾正碼,使得“1”的總數(shù)保持為偶數(shù)。通常在寫數(shù)據(jù)時(shí),這些錯(cuò)誤校驗(yàn)位和數(shù)據(jù)一起存儲在扇區(qū)中。在本發(fā)明的一個(gè)實(shí)施例中,存儲了十字節(jié)的這種錯(cuò)誤檢測和糾正碼,當(dāng)從扇區(qū)中讀數(shù)據(jù)時(shí),根據(jù)讀出的數(shù)據(jù)值可以校驗(yàn)此檢測和糾正碼的奇偶校驗(yàn)位。將會看到的是,如果產(chǎn)生一位錯(cuò)誤,那么一列和一行的奇偶位將不匹配所讀值的總數(shù)。例如,如果存儲在第三行和第三列交叉處的值“1”被讀成“0”,那么此行的奇偶檢驗(yàn)值將為“0”而此行所存儲的奇偶校驗(yàn)位卻為“1”;并且,此列的奇偶檢驗(yàn)值將為“1”而其所存儲的奇偶校驗(yàn)位卻為“0”。在錯(cuò)誤校驗(yàn)比較過程中,這兩個(gè)錯(cuò)誤顯示在所述交叉處的位不正確,并且允許將此位改正為正確值“1”。
從圖6中可以看到,利用所示的簡單奇偶校驗(yàn)錯(cuò)誤檢測和糾正方法檢測在一行中發(fā)生的多個(gè)錯(cuò)誤和在不同行中發(fā)生的多個(gè)錯(cuò)誤,這也是可能的。采用所示的這種方法也可能糾正某些這種錯(cuò)誤但另外的一些卻不能糾正。例如,如果在第三列中產(chǎn)生兩位錯(cuò)誤,那么,其中產(chǎn)生這兩位錯(cuò)誤的每一行將出現(xiàn)不正確的奇偶校驗(yàn)位,而此列具有正確的奇偶校驗(yàn)位。因此,即使清楚在特定行中產(chǎn)生了錯(cuò)誤,但是卻不知道這些行中的哪些位產(chǎn)生了錯(cuò)誤,所以,利用這種簡單的方法就不能糾正。各種更復(fù)雜的錯(cuò)誤檢測和糾正方法是可用的,并且這些方法在檢測和糾正錯(cuò)誤方面更加有效。如上所述,期望比圖示的更復(fù)雜的方法能夠用于本發(fā)明。更具體地,現(xiàn)有技術(shù)中公知的Bose,Chaudhuri和Hocquenghem(BCH)碼特別適用于本發(fā)明中的錯(cuò)誤檢測和糾正碼。這是因?yàn)?,其產(chǎn)生的錯(cuò)誤類型實(shí)際上很可能是隨機(jī)的和分離的,而BCH碼是有效的隨機(jī)糾錯(cuò)碼?;谶@一理由,在本發(fā)明中這些編碼是較佳的。BCH碼的描述及其實(shí)現(xiàn)方法在許多參考資料中可見,例如,Error ControlCodingFundamentals and Applications,第六章,Shu Lin and D.Costello,Jr.,Prentice-Hall,1983。
在一個(gè)實(shí)施例中,錯(cuò)誤檢測和糾正電路中的編碼和譯碼電路是控制快速系統(tǒng)16的操作的邏輯電路22中的一部分。這包括編碼電路55、譯碼和糾正電路56。編碼電路55接收寫入快速存貯器陣列的數(shù)據(jù)并且產(chǎn)生與每扇區(qū)數(shù)據(jù)一起存儲的EDAC碼。譯碼和糾正電路56包括從所述快速陣列中讀出的數(shù)據(jù)通過其處理而提供一個(gè)第二EDAC碼的電路,用于確定編碼匹配以便沒有錯(cuò)誤的一比較器,和糾正電路。在一實(shí)施例中,此糾正電路硬件檢測高達(dá)二位的錯(cuò)誤、確定這些錯(cuò)誤的位置、并且以現(xiàn)有技術(shù)中公知的方法糾正所有這些錯(cuò)誤。如果發(fā)現(xiàn)存在多于二位的錯(cuò)誤,電路56將操作轉(zhuǎn)移到存儲在只讀存貯器27中的糾錯(cuò)過程。此過程對錯(cuò)誤計(jì)數(shù)、確定其位置并且糾正能夠檢測到的錯(cuò)誤。因此,整個(gè)錯(cuò)誤檢測和糾正過程使用這個(gè)電路和存儲在只讀存貯器27中的固件以實(shí)現(xiàn)這里討論的各部分操作。在一個(gè)陣列實(shí)施例中,所采用的編碼已經(jīng)優(yōu)化而提供高達(dá)六位錯(cuò)誤的檢測和五位錯(cuò)誤的糾正。這需要通過錯(cuò)誤檢測和糾正電路為存儲在該陣列的一個(gè)塊中的每扇區(qū)數(shù)據(jù)產(chǎn)生十字節(jié)的編碼數(shù)據(jù)。此編碼數(shù)據(jù)與數(shù)據(jù)一起存儲在扇區(qū)的數(shù)據(jù)部分。為了保證在經(jīng)過一個(gè)長時(shí)期后所存儲的數(shù)據(jù)不會丟失,已經(jīng)發(fā)明了一種方法以確保用所述糾錯(cuò)碼檢驗(yàn)盤的扇區(qū),使得在一扇區(qū)數(shù)據(jù)中產(chǎn)生的錯(cuò)誤數(shù)量不會達(dá)到整個(gè)糾正不能實(shí)現(xiàn)的程度。這可以通過以某一固定間隔運(yùn)行本發(fā)明的程序來實(shí)現(xiàn)。例如,程序可以在每次讀快速EEPROM陣列時(shí)運(yùn)行,以便檢驗(yàn)正在使用的扇區(qū)??商鎿Q的是,程序可以在每次清理陣列時(shí),在每次陣列處于“接通”(on)態(tài)時(shí)、或者以一些其它的將確保陣列經(jīng)常檢驗(yàn)而使得不會產(chǎn)生錯(cuò)誤積累的間隔運(yùn)行。為了確保檢驗(yàn)不經(jīng)常使用的扇區(qū),一個(gè)上次使用的指示可以與存儲在扇區(qū)中的數(shù)據(jù)一起存儲,并且,一些最低頻率使用的扇區(qū)通過所述錯(cuò)誤檢測和糾正電路以某種固定間隔運(yùn)行。用于檢測在陣列的很少使用的區(qū)域中錯(cuò)誤是否累積的一可替換方法是,每次系統(tǒng)加電時(shí)或者在某些其它的合適時(shí)刻,利用本發(fā)明的程序提供一用于檢驗(yàn)陣列的隨機(jī)段的處理。
對于本領(lǐng)域的技術(shù)人員將要發(fā)生的是,涉及經(jīng)常利用的某些應(yīng)用程序的數(shù)據(jù)最易發(fā)生這種數(shù)據(jù)丟失問題的類型。一程序被寫入快速EEPROM陣列,然后僅僅很少地用于偶爾的操作。在一段時(shí)間后,當(dāng)從某些特定單元的浮置柵上產(chǎn)生泄漏時(shí)一些數(shù)據(jù)開始丟失。如果已經(jīng)存貯了一段時(shí)間而沒有重寫的一個(gè)扇區(qū)在其錯(cuò)誤級別允許達(dá)到多于五個(gè)錯(cuò)誤之前采用糾錯(cuò)碼進(jìn)行測試,那么所有的錯(cuò)誤都能被校正;并且將不會丟失數(shù)據(jù)。但是,如果經(jīng)過了太長的時(shí)期并且在一扇區(qū)中泄漏引起了多于五個(gè)的錯(cuò)誤,那么糾錯(cuò)碼不能用于校正數(shù)據(jù)。
圖5是一流程圖,說明了根據(jù)本發(fā)明的一方法,用于在采用多位存儲的快速EEPROM存貯器陣列中糾錯(cuò)。每當(dāng)陣列的一個(gè)扇區(qū)被讀或清理時(shí)就開始此方法。為了檢測積累錯(cuò)誤,這種方法也可以以某種固定間隔(例如系統(tǒng)啟動)開始而以某種組織的或隨機(jī)的圖形檢驗(yàn)陣列中很少使用的部分。在此方法的第一步中,通過系統(tǒng)的錯(cuò)誤糾正電路讀扇區(qū)中的數(shù)據(jù)并通過電路56檢測在此扇區(qū)中的錯(cuò)誤數(shù)量。典型地,將沒有錯(cuò)誤,這將使得程序轉(zhuǎn)移到在其中終止錯(cuò)誤糾正程序的一個(gè)步驟。然后可以讀數(shù)據(jù)。如果在此扇區(qū)中存在少于兩個(gè)的錯(cuò)誤,那么程序利用圖2所示的錯(cuò)誤檢測和糾正電路56非常迅速地校正錯(cuò)誤并終止;然后,此時(shí)可以讀數(shù)據(jù)。硬連線電路用于校正少于三個(gè)的錯(cuò)誤,因?yàn)榻㈦娐沸U@種多個(gè)錯(cuò)誤是相對經(jīng)濟(jì)的。
如果在扇區(qū)中存在多于兩個(gè)的錯(cuò)誤,程序轉(zhuǎn)移到一步驟,在此步驟中開始重試錯(cuò)誤檢測處理并且再對錯(cuò)誤計(jì)數(shù)。已經(jīng)估算過的是,可能產(chǎn)生的大多數(shù)錯(cuò)誤由系統(tǒng)噪聲引起。已經(jīng)預(yù)測到,在每讀450,000扇區(qū)中將產(chǎn)生少于一次的錯(cuò)誤,所以一重試操作解決了這個(gè)問題。因此,在遇到許多錯(cuò)誤的第一次檢測操作后提供一重試操作非常有利于消除該過程的其它的處理步驟。典型地,這種重試操作由存貯在只讀存貯器56中的過程來實(shí)施,和由原始操作實(shí)行的一樣,此進(jìn)程實(shí)現(xiàn)了與固件中一樣的算法。應(yīng)該注意的是,也可以重試該操作并且在與參考器件比較進(jìn)行之前提供一較長的時(shí)期以用于存貯器件的鎖存。這種較慢的重試消除了這些單元的錯(cuò)誤,這些單元僅僅以一稍慢的速度反應(yīng)。
在此重試操作后,再次計(jì)算錯(cuò)誤數(shù)。固件算法能夠檢測六個(gè)錯(cuò)誤并且校正其中五個(gè)錯(cuò)誤。如果還有零至三個(gè)錯(cuò)誤,那么可能存在不屬于系統(tǒng)噪聲引起的錯(cuò)誤;并且采用固件糾錯(cuò)處理執(zhí)行錯(cuò)誤校正。在校正后,程序轉(zhuǎn)移到一步驟,在此步驟中實(shí)現(xiàn)系統(tǒng)刷新。這種刷新把所述的原始處理步驟用于陣列的所有扇區(qū),以便確定實(shí)際上是否有任一扇區(qū)由于存貯器件失去電荷而產(chǎn)生錯(cuò)誤。
在另一方面,如果在扇區(qū)中檢測到四至五個(gè)錯(cuò)誤,在其狀態(tài)區(qū)中將此塊標(biāo)記為“可疑”,此狀態(tài)區(qū)位于在相關(guān)的芯片的塊上數(shù)據(jù)所存儲的位置之下。在如此標(biāo)記此塊后,對已出現(xiàn)錯(cuò)誤的每個(gè)位置處的數(shù)據(jù)執(zhí)行校正。然后將此扇區(qū)重寫到陣列中的一個(gè)新位置。此時(shí),測試此塊以確定此塊是否已經(jīng)兩次標(biāo)記為“可疑”。如果否,則程序轉(zhuǎn)移到一在其中啟動系統(tǒng)刷新的步驟。如果此塊已經(jīng)在前面標(biāo)記為可疑,則在其狀態(tài)區(qū)將此塊標(biāo)記為“壞”,使得其能夠減少服務(wù)。在此塊標(biāo)記為壞后,啟動系統(tǒng)刷新。
如果錯(cuò)誤數(shù)大于五個(gè),則數(shù)據(jù)不能校正。因此,此塊立即標(biāo)記為壞而使其脫離服務(wù),并且開始系統(tǒng)刷新。
雖然本發(fā)明已經(jīng)根據(jù)較佳實(shí)施例進(jìn)行了描述,但是可以理解的是,在不脫離本發(fā)明的精神和范圍的前提下,本領(lǐng)域的技術(shù)人員可以作出各種修改和替換。因此,本發(fā)明應(yīng)根據(jù)后面的權(quán)利要求來判斷。
權(quán)利要求
1.一種管理在一快速電可擦除可編程只讀存貯器(EEPROM)陣列中的數(shù)據(jù)的方法,其中的陣列包括分別可擦除的用于以扇區(qū)存儲數(shù)據(jù)的存貯器件的塊,此方法包括步驟檢測在一所讀陣列的扇區(qū)中存在的錯(cuò)誤,如果沒有檢測到錯(cuò)誤,則終止檢測過程,如果檢測到錯(cuò)誤數(shù)小于第一錯(cuò)誤數(shù),則校正錯(cuò)誤,如果檢測到錯(cuò)誤數(shù)大于第一錯(cuò)誤數(shù),則對陣列的此扇區(qū)重試錯(cuò)誤檢測,在重試后,如果檢測到錯(cuò)誤數(shù)小于第二錯(cuò)誤數(shù)而大于第一錯(cuò)誤數(shù),則校正錯(cuò)誤,如果檢測到錯(cuò)誤數(shù)大于第二錯(cuò)誤數(shù)但小于第三錯(cuò)誤數(shù),則將陣列的這個(gè)塊標(biāo)記為可疑,其中第二錯(cuò)誤數(shù)為錯(cuò)誤校正處理能夠校正的最大值,第三錯(cuò)誤數(shù)是能夠檢測到的最大值,并且然后校正檢測到的錯(cuò)誤,重寫此扇區(qū)數(shù)據(jù)到一新位置,檢測此塊在前面是否已經(jīng)標(biāo)記為可疑,如果此塊在前面已經(jīng)標(biāo)記為可疑,則使此塊脫離服務(wù);并且如果檢測到錯(cuò)誤數(shù)大于第三錯(cuò)誤數(shù),則使此塊脫離服務(wù)。
2.根據(jù)權(quán)利要求1的一種方法,還包括的步驟是,在任意錯(cuò)誤校正或陣列中的一個(gè)塊脫離服務(wù)后啟動系統(tǒng)刷新。
3.根據(jù)權(quán)利要求1的一種方法,其中每個(gè)檢測或校正的步驟采用Bose、Chaudhuri、和Hocquenghem(BCH)碼來實(shí)現(xiàn)。
4.根據(jù)權(quán)利要求1的一種方法,對陣列中不經(jīng)常使用的扇區(qū),以固定間隔啟動以便檢測和校正這種扇區(qū)中由于泄漏產(chǎn)生的錯(cuò)誤。
5.根據(jù)權(quán)利要求4的一種方法,此方法以陣列的隨機(jī)扇區(qū)啟動。
6.根據(jù)權(quán)利要求1的一種方法,其中,如果錯(cuò)誤數(shù)大于第一錯(cuò)誤數(shù),則重試錯(cuò)誤檢測的步驟以一較慢的讀取速度進(jìn)行。
7.根據(jù)權(quán)利要求1的一種方法,如果檢測到錯(cuò)誤數(shù)小于第一錯(cuò)誤數(shù),則其檢測在一所讀陣列的扇區(qū)中存在的錯(cuò)誤的步驟和校正錯(cuò)誤的步驟都由硬件實(shí)現(xiàn),以及其它的檢測和校正步驟由一計(jì)算機(jī)實(shí)現(xiàn)的軟件處理來完成。
8.根據(jù)權(quán)利要求1的一種方法,其中每個(gè)檢測在陣列的一扇區(qū)中存在的錯(cuò)誤的步驟包括下列步驟檢測在一所讀陣列的扇區(qū)中存在的錯(cuò)誤數(shù);以及確定檢測到的每個(gè)錯(cuò)誤的位置。
9.一種管理在一快速電可擦可編程只讀存貯器(EEPROM)陣列中的數(shù)據(jù)的方法,其中的陣列包括分別可擦除的用于以扇區(qū)存儲數(shù)據(jù)的存貯器件的塊,此方法包括步驟檢測在一所讀陣列的扇區(qū)中存在的錯(cuò)誤,確定檢測到的錯(cuò)誤數(shù)和每個(gè)錯(cuò)誤的位置,如果沒有檢測到錯(cuò)誤,則終止檢測處理,如果檢測到錯(cuò)誤數(shù)小于第一錯(cuò)誤數(shù),則校正錯(cuò)誤,如果檢測到錯(cuò)誤數(shù)大于第一錯(cuò)誤數(shù)但小于第二錯(cuò)誤數(shù),則將此陣列的這個(gè)塊標(biāo)記為可疑,并且然后校正檢測到的錯(cuò)誤,重寫此扇區(qū)數(shù)據(jù)到一新位置,檢測此具有錯(cuò)誤的塊在以前是否已經(jīng)標(biāo)記為可疑;如果此塊在以前已經(jīng)標(biāo)記為可疑,則使此塊脫離服務(wù);并且如果檢測到錯(cuò)誤數(shù)大于第二錯(cuò)誤數(shù),則使此塊脫離服務(wù)。
10.根據(jù)權(quán)利要求9的一種方法,其中,還包括,在所引用的任一步驟之前,具有步驟檢測在一所讀陣列的扇區(qū)中存在的錯(cuò)誤,如果沒有檢測到錯(cuò)誤,則終止檢測過程,以及如果檢測到錯(cuò)誤數(shù)小于第一錯(cuò)誤數(shù),則校正錯(cuò)誤。
11.根據(jù)權(quán)利要求10的一種方法,其中,檢測在一所讀陣列的扇區(qū)中存在的錯(cuò)誤和如果檢測到錯(cuò)誤數(shù)小于第一錯(cuò)誤數(shù)的開始步驟由硬件執(zhí)行。
12.根據(jù)權(quán)利要求9的一種方法,其中,每個(gè)步驟由一計(jì)算機(jī)實(shí)現(xiàn)的軟件過程來完成。
13.根據(jù)權(quán)利要求9的一種方法,還包括的步驟是,在任一錯(cuò)誤校正或陣列中的一個(gè)塊脫離服務(wù)后啟動系統(tǒng)刷新。
14.根據(jù)權(quán)利要求9的一種方法,其中每個(gè)檢測或校正的步驟采用Bose、Chaudhuri、和Hocquenghem(BCH)碼來實(shí)現(xiàn)。
15.根據(jù)權(quán)利要求9的一種方法,對陣列中不經(jīng)常使用的扇區(qū),以固定間隔啟動以便檢測和校正這種扇區(qū)中由于泄漏產(chǎn)生的錯(cuò)誤。
16.根據(jù)權(quán)利要求15的一種方法,此方法以陣列的隨機(jī)扇區(qū)啟動。
17.根據(jù)權(quán)利要求9的一種方法,其中,如果錯(cuò)誤數(shù)大于第一錯(cuò)誤數(shù),則以一較慢的讀速度完成第二個(gè)檢測錯(cuò)誤的步驟。
18.根據(jù)權(quán)利要求9的一種方法,其中,每個(gè)檢測在陣列的一扇區(qū)中存在的錯(cuò)誤的步驟包括下列步驟檢測在一所讀陣列的扇區(qū)中存在的錯(cuò)誤數(shù),以及確定檢測到的每個(gè)錯(cuò)誤的位置。
全文摘要
一種方法,利用錯(cuò)誤檢測和糾正電路(56),在錯(cuò)誤能夠影響由快速EEPROM存貯器陣列提供的數(shù)據(jù)的準(zhǔn)確性之前檢測并校正錯(cuò)誤,其中所述的錯(cuò)誤能夠在快速EEPROM存貯器陣列(23)的以多位單元格式存儲的數(shù)據(jù)中產(chǎn)生。
文檔編號G11C11/56GK1175311SQ95197659
公開日1998年3月4日 申請日期1995年12月21日 優(yōu)先權(quán)日1994年12月27日
發(fā)明者M·克里斯托弗森, S·威爾斯, G·艾特伍德, M·鮑爾, A·法茲奧, R·哈斯本 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
丰顺县| 南丰县| 临桂县| 贵南县| 平潭县| 金寨县| 佳木斯市| 句容市| 嘉黎县| 陆丰市| 宁都县| 策勒县| 宜宾市| 岐山县| 盖州市| 玛曲县| 广汉市| 临海市| 呼玛县| 丁青县| 富裕县| 古丈县| 吴堡县| 天门市| 卢湾区| 观塘区| 乌拉特前旗| 司法| 凤凰县| 霍林郭勒市| 舟山市| 固安县| 星座| 龙胜| 凤庆县| 濮阳县| 荔浦县| 古田县| 察哈| 祥云县| 新竹县|