亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

檢測出現(xiàn)的壞塊的制作方法

文檔序號(hào):6739544閱讀:186來源:國知局
專利名稱:檢測出現(xiàn)的壞塊的制作方法
技術(shù)領(lǐng)域
一般來說,本發(fā)明的實(shí)施例涉及集成電路。特定來說,實(shí)施 例涉及用于存儲(chǔ)器電路的軟件或硬件。
背景技術(shù)
快閃存儲(chǔ)器是一種形成的可擦除且可重新編程非易失性集成電路存儲(chǔ)器。在快閃存儲(chǔ)器中,存儲(chǔ)器單元按“塊”布置以供擦除。在塊已被擦除后,其視需要準(zhǔn)備好編程。NOR快閃存儲(chǔ)器是一種類型的快閃存儲(chǔ)器,其提供對個(gè)別字節(jié)的存取以供數(shù)據(jù)檢索,但具有相對低的密度。NAND快閃存儲(chǔ)器是一種類型的快閃存儲(chǔ)器,其提供相對高的密度。所述高密度是部分地通過形成串聯(lián)連接的單元行來實(shí)現(xiàn)。另外,借助NAND快閃存儲(chǔ)器,按相對大的字節(jié)群組(諸如,數(shù)據(jù)頁)來編程及存取數(shù)據(jù)。例如,頁可對應(yīng)于陣列中的行或?qū)?yīng)于行的一部分。通常一次一數(shù)據(jù)“頁”地將數(shù)據(jù)寫入到NAND快閃存儲(chǔ)器陣列或一次一數(shù)據(jù)“頁”地從NAND快閃存儲(chǔ)器陣列讀取數(shù)據(jù)。例如,頁可具有2,112個(gè)字節(jié),其中2048個(gè)為數(shù)據(jù)字節(jié)且64個(gè)為備用字節(jié)。這些備用字節(jié)通常用于錯(cuò)誤校正代碼(ECC)、耗損均衡信息或其它額外開銷數(shù)據(jù)。錯(cuò)誤校正代碼增加所存儲(chǔ)數(shù)據(jù)的強(qiáng)健性。通常,一種形式的塊碼用于產(chǎn)生錯(cuò)誤校正代碼,諸如循環(huán)冗余檢查(CRC)總和檢查碼、漢明碼、里德-所羅門錯(cuò)誤校正代碼或類似碼。這些錯(cuò)誤校正代碼檢測在對數(shù)據(jù)字節(jié)的讀取中是否存在錯(cuò)誤,且只要錯(cuò)誤不超過所述錯(cuò)誤校正代碼的能力即通??尚U@些數(shù)據(jù)字節(jié)中的錯(cuò)誤??扉W存儲(chǔ)器具有許多用途。實(shí)例包含快閃存儲(chǔ)器硬盤驅(qū)動(dòng)器(取代硬盤驅(qū)動(dòng)器)、USB快閃驅(qū)動(dòng)器或拇指驅(qū)動(dòng)器、移動(dòng)電話、數(shù)字相機(jī)、數(shù)字媒體播放器、游戲機(jī)、存儲(chǔ)器卡、導(dǎo)航裝置、個(gè)人數(shù)字助理、計(jì)算機(jī)或類似物。在限制內(nèi),錯(cuò)誤校正代碼可校正數(shù)據(jù)字節(jié)中的數(shù)據(jù)中的許多錯(cuò)誤。然而,超出這些限制,則通常不能校正具有錯(cuò)誤的數(shù)據(jù)。常規(guī)技術(shù)的一個(gè)缺點(diǎn)是到錯(cuò)誤變得不可校正時(shí),通常太遲了。許多將快閃存儲(chǔ)器用于數(shù)據(jù)存儲(chǔ)的裝置還使用操作系統(tǒng)。所述操作系統(tǒng)充當(dāng)硬件與其它軟件之間的抽象層。例如,所述操作系統(tǒng)的文件系統(tǒng)及裝置驅(qū)動(dòng)器通常提供對存儲(chǔ)于存儲(chǔ)器裝置上的數(shù)據(jù)的存取。在操作系統(tǒng)內(nèi)可存在額外層。圖I圖解說明處理環(huán)境的一部分的實(shí)例,其包含呈CPU 102形式的微處理器、操作系統(tǒng)104及存儲(chǔ)器裝置106。存儲(chǔ)器裝置106可為NAND快閃存儲(chǔ)器裝置。操作系統(tǒng)104進(jìn)一步包含文件系統(tǒng)108及裝置驅(qū)動(dòng)器110。將理解,操作系統(tǒng)104可具有對不止一個(gè)文件系統(tǒng)及不止一個(gè)裝置驅(qū)動(dòng)器及與本論述無關(guān)的其它組件的支持。還圖解說明易失性存儲(chǔ)器裝置114(例如DRAM)及直接存儲(chǔ)器存取(DMA)控制器116。CPU 102執(zhí)行指令,包含操作系統(tǒng)104的代碼。文件系統(tǒng)108的代碼提供低級(jí)信息(例如,存儲(chǔ)器裝置106的邏輯地址)與高級(jí)信息(例如,文件名稱及目錄)之間的抽象。用于裝置驅(qū)動(dòng)器110的代碼通常處置到及從存儲(chǔ)器裝置106的數(shù)據(jù)傳送的低級(jí)信息。裝置驅(qū)動(dòng)器110可為CPU 102提供代碼以直接存取存儲(chǔ)器裝置106 (稱作處理器輸入/輸出),或可提供啟動(dòng)存儲(chǔ)器控制器116以處置總線控制從而使得數(shù)據(jù)傳送到存儲(chǔ)器裝置106或從存儲(chǔ)器裝置106傳送的代碼。存儲(chǔ)器控制器116的使用釋放CPU102來處置其它任務(wù)。借助處理器輸入/輸出(PIO)及DMA輸入/輸出兩者,裝置驅(qū)動(dòng)器110可處置與寫入及讀取操作相關(guān)聯(lián)的ECC信息。在許多操作系統(tǒng)中,許多裝置驅(qū)動(dòng)器存在以支持到各種不同類型的存儲(chǔ)器裝置的讀取及從各種不同類型的存儲(chǔ)器裝置的寫入 。除借助文件系統(tǒng)108映射之外,應(yīng)注意,許多NAND快閃存儲(chǔ)器裝置針對壞塊管理及耗損管理在邏輯地址與物理地址之間利用虛擬映射(其可稱作快閃轉(zhuǎn)譯層)
發(fā)明內(nèi)容


本文中提供這些圖式及相關(guān)聯(lián)的描述來圖解說明本發(fā)明的具體實(shí)施例,而不是打算限制本發(fā)明。圖I圖解說明處理環(huán)境,其包含CPU、操作系統(tǒng)及存儲(chǔ)器裝置。圖2為大致圖解說明用于從存儲(chǔ)器裝置讀取數(shù)據(jù)頁的過程的實(shí)施例的流程圖。圖3為大致圖解說明用于經(jīng)降格的塊的搶先退出的過程的實(shí)施例的流程圖。圖4為大致圖解說明用于恢復(fù)確定具有不可校正的錯(cuò)誤的數(shù)據(jù)的過程的實(shí)施例的流程圖。
具體實(shí)施例方式設(shè)備及方法從非易失性集成電路存儲(chǔ)器裝置(例如NAND快閃)讀取數(shù)據(jù)。例如,這些技術(shù)可體現(xiàn)于操作系統(tǒng)的裝置驅(qū)動(dòng)器中。在讀取操作期間維持(例如,追蹤)至少部分錯(cuò)誤歷史。頁的讀取操作通常比對應(yīng)塊的擦除操作或?qū)λ鲰摰木幊谈宇l繁地發(fā)生。在這些讀取操作期間所遇到及追蹤的錯(cuò)誤可提供對正讀取的頁及塊的可靠性的指示。如果在讀取操作期間觀察到足夠多的錯(cuò)誤,那么指示(例如,指定)所述塊的退出???例如)通過在請求擦除或?qū)懭?編程)所述塊時(shí)將所述塊添加到壞塊表來使所述塊退出。一個(gè)實(shí)施例包含從不可校正的錯(cuò)誤恢復(fù)數(shù)據(jù)的技術(shù)。例如,可將讀取模式改變?yōu)楦煽康淖x取模式來嘗試恢復(fù)數(shù)據(jù)。此讀取模式可具有較不進(jìn)取性的定時(shí)。一個(gè)實(shí)施例進(jìn)一步從存儲(chǔ)器裝置返回?cái)?shù)據(jù),而不管所述數(shù)據(jù)是否可通過解碼錯(cuò)誤校正代碼數(shù)據(jù)來校正。與通常發(fā)生災(zāi)難性失敗的硬盤裝置相反,集成電路存儲(chǔ)器裝置通常具有小數(shù)目個(gè)位故障,即時(shí)在錯(cuò)誤校正失敗時(shí)此也使得大多數(shù)數(shù)據(jù)可用。體現(xiàn)所揭示技術(shù)的操作系統(tǒng)的裝置驅(qū)動(dòng)器可體現(xiàn)于軟件中(代碼中)、硬件中(模塊中)或軟件與硬件的組合中。另外,雖然在NAND快閃存儲(chǔ)器的背景中進(jìn)行描述,但本文中所述的原理及優(yōu)點(diǎn)也將可應(yīng)用于其它形式的非易失性集成電路。所屬領(lǐng)域的技術(shù)人員將明了本發(fā)明的其它實(shí)施例,包含不提供本文中所闡明的全部益處及特征的實(shí)施例。圖2為大致圖解說明用于從存儲(chǔ)器裝置106 (圖I)讀取數(shù)據(jù)頁且維持錯(cuò)誤歷史的過程的流程圖。在一個(gè)實(shí)施例中,由操作系統(tǒng)的裝置驅(qū)動(dòng)器110(圖I)執(zhí)行所述過程,且存儲(chǔ)器裝置106為NAND快閃存儲(chǔ)器裝置。所屬領(lǐng)域的技術(shù)人員將了解,所圖解說明的過程可按各種方式加以修改。例如,在另一實(shí)施例中,可對所圖解說明的過程的各個(gè)部分加以組合、以替代順序重新布置、予以移除及進(jìn)行類似操作。在所述過程的開始,假定數(shù)據(jù)已連同對應(yīng)錯(cuò)誤校正代碼數(shù)據(jù)一起存儲(chǔ)于存儲(chǔ)器裝置中。通常將結(jié)合讀取存儲(chǔ)器裝置106 (圖I)的塊的單個(gè)頁來描述所述 過程的所圖解說明的實(shí)施例。使用計(jì)數(shù)器來維持所述塊的錯(cuò)誤歷史。存儲(chǔ)器裝置106具有許多塊且每一塊可具有一個(gè)計(jì)數(shù)器用于錯(cuò)誤追蹤。在一個(gè)實(shí)施例中,使用計(jì)數(shù)器陣列來存儲(chǔ)所述計(jì)數(shù)器。當(dāng)塊的計(jì)數(shù)器達(dá)到特定閾值水平MAX(其可為預(yù)先確定的值,例如為10的值)時(shí),所述過程確定使所述塊及早退出。例如,如稍后將結(jié)合圖3更詳細(xì)地描述,可在將擦除所述塊時(shí)或在將寫入所述塊的頁時(shí)使所述塊退出。可使用易失性或非易失性存儲(chǔ)器來存儲(chǔ)所述計(jì)數(shù)器。然而,出于強(qiáng)健性考慮,通常優(yōu)選地在與存儲(chǔ)器裝置106自身不同的裝置上存儲(chǔ)這種類型的信息。在一個(gè)實(shí)施例中,在加電時(shí)將計(jì)數(shù)器復(fù)位為零以使得歷史在加電時(shí)復(fù)位。此復(fù)位提供對塊中突然降格的相對快速回應(yīng)。所述過程通過接收對存儲(chǔ)器裝置106 (圖I)的特定頁的讀取的請求來開始。所述請求可經(jīng)由來自操作系統(tǒng)104(圖I)的比裝置驅(qū)動(dòng)器110(圖I)高的層(例如來自文件系統(tǒng)108 (圖I))的子例程調(diào)用。所述過程使用低級(jí)指令請求202特定頁,例如允許CPU 102與存儲(chǔ)器裝置106通信的機(jī)器代碼或用于使CPU 102指令DMA控制器116與存儲(chǔ)器裝置106通信的指令。存儲(chǔ)器裝置106在內(nèi)部存取存儲(chǔ)器陣列且為所述頁提供數(shù)據(jù)。解碼ECC數(shù)據(jù)以檢測是否存在任何錯(cuò)誤且還用于在錯(cuò)誤存在且是可校正的情況下校正錯(cuò)誤。對ECC的解碼可為軟件功能或硬件功能。在一個(gè)實(shí)施例中,編碼及解碼ECC是由裝置驅(qū)動(dòng)器110執(zhí)行的功能。在替代實(shí)施例中,對ECC的編碼及解碼是DMA控制器116的功能。所述過程確定204是否在讀取所述頁時(shí)檢測到一個(gè)或一個(gè)以上錯(cuò)誤。錯(cuò)誤可被校正或不可被校正。如果在錯(cuò)誤檢測過程期間沒遇到錯(cuò)誤,那么所述過程繼續(xù)進(jìn)行以退出(不更新對應(yīng)于所述頁的所述塊的計(jì)數(shù)器)并向裝置驅(qū)動(dòng)器110 (圖I)的調(diào)用例程(例如文件系統(tǒng)108(圖I))返回狀況“0K”。所請求的數(shù)據(jù)在存儲(chǔ)器裝置106(圖I)的輸出緩沖器處可用,在數(shù)據(jù)總線的邏輯地址處,可被傳送到另一位置,例如傳送到另一緩沖器或類似物。如果所述過程確定204已發(fā)生錯(cuò)誤,那么所述過程繼續(xù)進(jìn)行以確定206所述錯(cuò)誤(s)是否可經(jīng)由解碼錯(cuò)誤校正代碼(ECC)數(shù)據(jù)來校正。如果所述錯(cuò)誤可在ECC的限制內(nèi)被校正,那么所述過程繼續(xù)進(jìn)行以確定208所述錯(cuò)誤已被校正到達(dá)的程度。例如,在一個(gè)實(shí)施例中,所述過程將未校正數(shù)據(jù)與已校正數(shù)據(jù)進(jìn)行比較以獲得錯(cuò)誤數(shù)目的計(jì)數(shù)。否則,如果對錯(cuò)誤校正代碼的校正來說錯(cuò)誤太多,那么所述過程指示所述塊的及早退出210。在一個(gè)實(shí)施例中,將計(jì)數(shù)器設(shè)定210為閾值MAX以提供對及早退出的指示。指示將待及早退出的塊與實(shí)際退出的塊不同??赏ㄟ^將塊標(biāo)記為壞的(例如通過將所述塊添加到壞塊表)來使所述塊退出。通常在存儲(chǔ)器裝置106(圖I)自身上存儲(chǔ)壞塊表。然而,在不再想要來自塊的數(shù)據(jù)以前,尚不應(yīng)將所述塊標(biāo)記為壞的。將塊標(biāo)記為壞的將防止對所述塊的讀取存取。因此,在一個(gè)實(shí)施例中,所述過程在請求擦除操作或請求寫入來將塊標(biāo)記為壞的以前保持等待,如稍后將結(jié)合圖3的更多描述。在一個(gè)實(shí)施例中,所述過程向調(diào)用例程(例如文件系統(tǒng)108(圖I))返回錯(cuò)誤,所述文件系統(tǒng)接著起始使所述塊退出的程序。在一個(gè)實(shí)施例中,所述過程從指示及早退出狀態(tài)210前進(jìn)到數(shù)據(jù)恢復(fù)過程來嘗試恢復(fù)數(shù)據(jù)。稍后將結(jié)合圖4更詳細(xì)地描述此數(shù)據(jù)恢復(fù)過程的一個(gè)實(shí)施例。在替代實(shí)施例中,所述過程從指示及早退出狀態(tài)210前進(jìn)且向裝置驅(qū)動(dòng)器的調(diào)用例程(例如文件系統(tǒng)108 (圖I))返回“讀取錯(cuò)誤”狀況,并退出。現(xiàn)返回到對錯(cuò)誤是否可被校正的確定206,如果錯(cuò)誤可被校正,那么所述過程確定208經(jīng)ECC校正這些錯(cuò)誤所到達(dá)的程度。視為相對少或相對多的錯(cuò)誤數(shù)目可 取決于頁大小及特定存儲(chǔ)器裝置106 (圖I)的特性。所屬領(lǐng)域的技術(shù)人員將容易確定適當(dāng)?shù)拈撝?。另夕卜,雖然所圖解說明的確定208為二元(即,兩個(gè)可能決策),但將理解,還可使用一個(gè)或一個(gè)以上中間水平。在一個(gè)實(shí)施例中,在2048字節(jié)頁(不包含ECC)的情況下,“少”視為所述頁上的可校正的錯(cuò)誤,且“多”視為兩個(gè)或兩個(gè)以上可校正的錯(cuò)誤。在此實(shí)例中,在所述頁上存在一個(gè)可校正的錯(cuò)誤時(shí),所述過程從確定208繼續(xù)進(jìn)行到遞增計(jì)數(shù)器狀態(tài)212,且在存在不止一個(gè)可校正的錯(cuò)誤時(shí),所述過程從確定208繼續(xù)進(jìn)行到指示及早退出狀態(tài)214。在遞增計(jì)數(shù)器狀態(tài)212中,所述過程針對頁的正被讀取的特定塊使計(jì)數(shù)器遞增計(jì)數(shù)I。計(jì)數(shù)器陣列可存儲(chǔ)存儲(chǔ)器裝置106 (圖I)的多個(gè)塊的各種計(jì)數(shù),例如,存儲(chǔ)器裝置106的每一塊一個(gè)計(jì)數(shù)器。因?yàn)閴K含有許多頁,所以來自多個(gè)頁的錯(cuò)誤可對特定塊的計(jì)數(shù)做出貢獻(xiàn)。所述過程接著繼續(xù)進(jìn)行以向裝置驅(qū)動(dòng)器110(圖I)的調(diào)用例程(例如文件系統(tǒng)108(圖I))返回狀況“0K”并退出。如將觀察到,如果在重復(fù)讀取塊的相同頁或其它頁時(shí)具有錯(cuò)誤,那么存儲(chǔ)于用于所述塊的計(jì)數(shù)器中的計(jì)數(shù)將增加。所述計(jì)數(shù)存儲(chǔ)在讀取所述塊的頁時(shí)所遇到的錯(cuò)誤歷史?,F(xiàn)返回到在遇到相對多的(例如,兩個(gè)或兩個(gè)以上)錯(cuò)誤時(shí)所使用的確定208的路線,在指示及早退出狀態(tài)214中,所述過程更新計(jì)數(shù)器以指定所述塊的及早退出。例如,可將計(jì)數(shù)器設(shè)定為閾值水平MAX,如結(jié)合狀態(tài)210所述。在所圖解說明的實(shí)施例中,狀態(tài)210及狀態(tài)214各自將計(jì)數(shù)器設(shè)定為閾值水平MAX以指定所述塊的及早退出。在替代實(shí)施例中,狀態(tài)214以增量調(diào)整計(jì)數(shù)器,所述增量等于或大于狀態(tài)212的增量,但可能小于計(jì)數(shù)器值從狀態(tài)210的跳躍。所述過程接著繼續(xù)進(jìn)行以向裝置驅(qū)動(dòng)器110(圖I)的調(diào)用例程(例如文件系統(tǒng)108(圖I))返回狀況“0K”并退出。在圖2中所圖解說明的過程識(shí)別正降格且應(yīng)使其退出的塊。出于可靠性目的,相對早地(例如當(dāng)正從塊讀取數(shù)據(jù)時(shí))而不是相對遲地(例如當(dāng)新的數(shù)據(jù)正寫入到塊時(shí))辨識(shí)降格塊可有利。圖3為大致圖解說明用于經(jīng)降格的塊的搶先退出的過程的實(shí)流程圖。在一個(gè)實(shí)施例中,由操作系統(tǒng)的裝置驅(qū)動(dòng)器執(zhí)行所述過程,且所述存儲(chǔ)器裝置為NAND快閃存儲(chǔ)器裝置。所屬領(lǐng)域的技術(shù)人員將了解,所圖解說明的過程可按各種方式加以修改。例如,在另一實(shí)施例中,可對所圖解說明的過程的各個(gè)部分加以組合、以替代順序重新布置、予以移除或進(jìn)行類似操作。在NAND快閃存儲(chǔ)器中,雖然是以頁級(jí)執(zhí)行的讀取或?qū)懭耄脸且詨K級(jí)執(zhí)行的。所述過程由擦除來自存儲(chǔ)器裝置的塊的請求或由寫入到塊的頁的請求起始。例如,所述請求可來自操作系統(tǒng)104 (圖I)的文件系統(tǒng)108 (圖I)。所述請求可處于更新數(shù)據(jù)的背景中,可用于刪除數(shù)據(jù),可用于格式化或類似操作。所述過程檢索310與將擦除的塊或?qū)懭氲捻摰膶?yīng)塊相關(guān)聯(lián)的錯(cuò)誤歷史。例如,錯(cuò)誤歷史可為較早結(jié)合圖2所述的計(jì)數(shù)。所述過程繼續(xù)進(jìn)行以確定所述塊是否可靠320。在認(rèn)為所述塊可靠時(shí),所述過程繼續(xù)進(jìn)行以指揮存儲(chǔ)器裝置106 (圖I)擦除330所述塊。所述過程確定350在存儲(chǔ)器裝置106內(nèi)的擦除過程或?qū)懭脒^程期間是否發(fā)生錯(cuò)誤。假定存儲(chǔ)器裝置106擦除所述塊或無錯(cuò)地寫入到頁,則所述過程以對調(diào)用例程(例如文件系統(tǒng)108(圖I))狀況“0K”退出。如果在擦除或?qū)懭脒^程中存在錯(cuò)誤(例如被卡的位),那么所述過程以可以 錯(cuò)誤狀況退出。如果認(rèn)為所述塊不可靠,那么所述過程繼續(xù)進(jìn)行以拒絕360所請求的擦除或?qū)懭氩僮鞑⒁藻e(cuò)誤狀況(例如I/o錯(cuò)誤)退出。例如,如果計(jì)數(shù)器處于或高于用于識(shí)別可能不可靠的塊的閾值,那么可認(rèn)為所述塊不可靠。響應(yīng)于所述錯(cuò)誤狀況,較高層調(diào)用例程(例如文件系統(tǒng)108(圖I))可接著在請求裝置驅(qū)動(dòng)器110(圖I)將所述塊標(biāo)記為壞的之前回收所述塊的先前已寫入頁(如果存在)??蓪⑦@些先前已寫入頁以及待寫入的當(dāng)前頁寫入到不同塊。在將塊標(biāo)記為壞的之后,所述塊不可用。在一些存儲(chǔ)器裝置中,通過將塊添加到存儲(chǔ)器裝置106(圖I)中的壞塊表來完成將所述塊標(biāo)記為壞的。在一個(gè)實(shí)施例中,在文件系統(tǒng)108的請求下,將塊添加到壞塊表也由裝置驅(qū)動(dòng)器110 (圖I)處置。所述塊的及早退出可有利地準(zhǔn)許將在所述塊變壞之前使所述塊退出。此可幫助避免以后的數(shù)據(jù)損失。圖4為大致圖解說明用于恢復(fù)確定具有不可校正的錯(cuò)誤的數(shù)據(jù)的過程的流程圖。在一個(gè)實(shí)施例中,由操作系統(tǒng)104(圖I)的裝置驅(qū)動(dòng)器110(圖I)執(zhí)行所述過程,且存儲(chǔ)器裝置106(圖I)為NAND快閃存儲(chǔ)器裝置。所屬領(lǐng)域的技術(shù)人員將了解,所圖解說明的過程可按各種方式加以修改。例如,在另一實(shí)施例中,可對所圖解說明的過程的各個(gè)部分加以組合、以替代順序重新布置、予以移除及進(jìn)行類似操作。在一個(gè)實(shí)施例中,所述過程在從存儲(chǔ)器裝置的產(chǎn)生不可校正的錯(cuò)誤的數(shù)據(jù)讀取時(shí)開始。當(dāng)存在錯(cuò)誤校正代碼(ECC)要校正太多錯(cuò)誤時(shí),可產(chǎn)生不可校正的錯(cuò)誤。例如,所述過程可在圖2的指示及早退出狀態(tài)210后開始。在狀態(tài)410中,所述過程改變讀取操作模式來嘗試以可校正方式讀取數(shù)據(jù)。大多數(shù)計(jì)算機(jī)系統(tǒng)經(jīng)配置以在正常操作期間以最高兼容速度(快速讀取模式)存取存儲(chǔ)器裝置(例如存儲(chǔ)器裝置106(圖I))。在一個(gè)實(shí)施例中,讀取操作模式改變?yōu)榭煽康淖x取模式。此可包含(例如)較慢貢獻(xiàn)速度、較長等待時(shí)間或類似物。在另一實(shí)例中,可將讀取模式從直接存儲(chǔ)器存取(DMA)模式改變?yōu)槭褂梦⑻幚砥鱽砜刂拼嫒〉哪J?,其也稱為處理器輸入/輸出或ΡΙ0。通常,所述DMA模式優(yōu)選,因?yàn)槠涫褂冕尫盼⑻幚砥鱽韴?zhí)行其它任務(wù)。然而,借助ΡΙ0,微處理器可以比借助DMA多的控制來執(zhí)行讀取操作。例如,所述過程可請求臨時(shí)停用產(chǎn)生噪聲的裝置,例如揚(yáng)聲器或蜂窩電話。在另一實(shí)例中,所述過程可故意減慢存儲(chǔ)器裝置106的定時(shí)。所屬領(lǐng)域的技術(shù)人員將容易確定其它技術(shù)。還可組合這些計(jì)數(shù)的各種特征。所述過程繼續(xù)進(jìn)行以請求對從存儲(chǔ)器裝置先前讀取的頁的讀取420。此讀取對應(yīng)于重新讀取。錯(cuò)誤校正代碼數(shù)據(jù)還檢索并重新應(yīng)用于確定430數(shù)據(jù)是否現(xiàn)在可校正。在許多情況下,數(shù)據(jù)可在使用更可靠的模式的讀取之后校正。如果數(shù)據(jù)可校正,那么所述過程繼續(xù)進(jìn)行以提供440已校正數(shù)據(jù),且所述過程以狀況“OK”退出。如果數(shù)據(jù)不可校正,那么所述過程確定450是重試還是提供具有錯(cuò)誤的數(shù)據(jù)460。對重試或提供數(shù)據(jù)的確定450可基于(例如)循環(huán)計(jì)數(shù)器、定時(shí)器及類似物。所述過程可返回到狀態(tài)410或讀取狀態(tài)420以重新讀取數(shù)據(jù)。如果所述過程返回到狀態(tài)410,那么還可嘗試不同的(例如,第三、第四等等)讀取模式。例如,如果存在不止一個(gè)可靠的讀取模式,那么可單獨(dú)及/或按組合嘗試各種讀取模式的特征。如果數(shù)據(jù)仍不可校正,那么一個(gè)實(shí)施例仍然提供具有錯(cuò)誤的數(shù)據(jù)460。不同于往往發(fā)生災(zāi)難性失敗的硬盤裝置,固態(tài)裝置(例如NAND快閃)中的錯(cuò)誤通 常由單個(gè)位故障表征。雖然當(dāng)頁不可校正時(shí),錯(cuò)誤的數(shù)目將通常大于一個(gè)位,但返回具有錯(cuò)誤的數(shù)據(jù)可比不返回?cái)?shù)據(jù)好。例如,在許多情況下,數(shù)據(jù)的具有錯(cuò)誤的部分將不明顯。例如,如果程序代碼存儲(chǔ)于頁中,那么具有錯(cuò)誤的部分可對應(yīng)于代碼的并不始終執(zhí)行的部分。相反,當(dāng)不提供數(shù)據(jù)時(shí),那么整個(gè)頁的數(shù)據(jù)不可用,在此情況下,程序幾乎始終崩潰。一個(gè)實(shí)施例為一種監(jiān)視非易失性集成電路存儲(chǔ)器裝置的塊的方法,其中所述方法包含解碼錯(cuò)誤校正代碼以確定在讀取所述存儲(chǔ)器裝置的所述塊的數(shù)據(jù)頁時(shí)是否具有至少一個(gè)錯(cuò)誤;及至少在讀取所述頁時(shí)具有至少一個(gè)錯(cuò)誤時(shí)維持所述存儲(chǔ)器裝置的所述塊的對應(yīng)于所讀取的所述頁的錯(cuò)誤歷史,其中所述錯(cuò)誤歷史用于指示是否使所述塊及早退出?!獋€(gè)實(shí)施例為一種管理非易失性集成電路存儲(chǔ)器裝置的塊的方法,其中所述方法包含接收擦除存儲(chǔ)器塊或?qū)懭氲剿龃鎯?chǔ)器塊的頁的命令;及至少部分地基于與所述塊的一個(gè)或一個(gè)以上頁的讀取操作相關(guān)聯(lián)的錯(cuò)誤歷史停用擦除或?qū)懭?。一個(gè)實(shí)施例為一種從非易失性集成電路存儲(chǔ)器裝置存取數(shù)據(jù)頁的方法,其中所述方法包含請求從所述存儲(chǔ)器裝置對所述數(shù)據(jù)頁的讀取;檢查與所述頁相關(guān)聯(lián)的錯(cuò)誤校正代碼(ECC);及向操作系統(tǒng)提供指示正確地讀取了所述數(shù)據(jù)頁的狀況而不管所述數(shù)據(jù)頁是否包含任何不可校正的錯(cuò)誤?!獋€(gè)實(shí)施例為一種維持用于指示非易失性集成電路存儲(chǔ)器裝置的塊的一個(gè)或一個(gè)以上指示的方法,其中所述方法包含至少部分地響應(yīng)于以下步驟中的至少一者防止對所述塊的進(jìn)一步擦除或重新編程確定作為相對于所述存儲(chǔ)器塊的至少一個(gè)頁執(zhí)行的至少一個(gè)讀取操作的一部分檢測到的錯(cuò)誤是經(jīng)由解碼錯(cuò)誤校正代碼不可校正的;或確定針對所述存儲(chǔ)器裝置的所述塊收集的錯(cuò)誤歷史指示在所述塊的先前讀取操作期間已發(fā)生至少一個(gè)錯(cuò)誤。一個(gè)實(shí)施例為一種用于監(jiān)視非易失性集成電路存儲(chǔ)器裝置的塊的設(shè)備,其中所述裝置包含經(jīng)配置以解碼錯(cuò)誤校正代碼從而確定在讀取所述存儲(chǔ)器裝置的所述塊的數(shù)據(jù)頁時(shí)是否具有至少一個(gè)錯(cuò)誤的模塊;經(jīng)配置以至少在讀取所述頁時(shí)具有至少一個(gè)錯(cuò)誤時(shí)維持所述存儲(chǔ)器裝置的所述塊的對應(yīng)于所讀取的所述頁的錯(cuò)誤歷史的模塊,其中所述錯(cuò)誤歷史用于指示是否使所述塊及早退出。上文已描述各種實(shí)施例。雖然是參照這些具體實(shí)施例加以描述,但這些描述打算具有說明性而不是打算具有限制性。所屬領(lǐng)域的技術(shù)人員可想出各種修改及應(yīng)用,而不背離如所附權(quán)利要求書中所界定的本發(fā)明的真正精神及范圍。
權(quán)利要求
1.一種管理非易失性集成電路存儲(chǔ)器裝置的塊的方法,所述方法包括 接收擦除存儲(chǔ)器塊或?qū)懭氲剿龃鎯?chǔ)器塊的頁的命令;及 至少部分地基于與所述塊的一個(gè)或一個(gè)以上頁的讀取操作相關(guān)聯(lián)的錯(cuò)誤歷史停用擦除或?qū)懭?,其中所述停用進(jìn)一步包括以I/o錯(cuò)誤退出。
2.如權(quán)利要求I所述的方法,其進(jìn)一步包括回收所述塊的先前已寫入頁,且接著停用所述塊的使用。
3.如權(quán)利要求I所述的方法,其中停用包括將所述塊添加到所述存儲(chǔ)器裝置中的壞塊表以將所述塊標(biāo)記為壞的。
4.如權(quán)利要求I所述的方法,其進(jìn)一步包括檢查在所述塊的一個(gè)或一個(gè)以上頁的讀取操作期間所遇到的錯(cuò)誤的計(jì)數(shù)。
5.一種管理非易失性集成電路存儲(chǔ)器裝置的塊的設(shè)備,所述設(shè)備包括 經(jīng)配置以接收擦除存儲(chǔ)器塊或?qū)懭氲剿龃鎯?chǔ)器塊的頁的命令的模塊;及 經(jīng)配置以至少部分地基于與所述塊的一個(gè)或一個(gè)以上頁的讀取操作相關(guān)聯(lián)的錯(cuò)誤歷史停用擦除或?qū)懭氲哪K,其中所述停用進(jìn)一步包括以I/O錯(cuò)誤退出。
6.如權(quán)利要求5所述的設(shè)備,其進(jìn)一步包括經(jīng)配置以回收所述塊的先前已寫入頁,且接著停用所述塊的使用的模塊。
7.如權(quán)利要求5所述的設(shè)備,其中經(jīng)配置以停用的模塊進(jìn)一步經(jīng)配置以將所述塊添加到所述存儲(chǔ)器裝置中的壞塊表以將所述塊標(biāo)記為壞的。
8.如權(quán)利要求5所述的設(shè)備,其進(jìn)一步包括經(jīng)配置以檢查在所述塊的一個(gè)或一個(gè)以上頁的讀取操作期間所遇到的錯(cuò)誤的計(jì)數(shù)的模塊。
9.一種從非易失性集成電路存儲(chǔ)器裝置存取數(shù)據(jù)頁的方法,所述方法包括 請求從所述存儲(chǔ)器裝置對所述數(shù)據(jù)頁的讀?。? 檢查與所述頁相關(guān)聯(lián)的錯(cuò)誤校正代碼(ECC);及 向操作系統(tǒng)提供指示正確地讀取了所述數(shù)據(jù)頁的狀況而不管所述數(shù)據(jù)頁是否包含任何不可校正的錯(cuò)誤。
10.如權(quán)利要求9所述的方法,其中可選擇至少第一讀取操作模式及比所述第一讀取操作模式慢的第二讀取操作模式用于從所述裝置讀取數(shù)據(jù),其中請求對所述頁的所述讀取進(jìn)一步包括 確定對初始讀取的解碼已產(chǎn)生不可校正的錯(cuò)誤,其中所述初始讀取使用所述第一讀取操作模式執(zhí)行; 從所述第一讀取操作模式改變?yōu)樗龅诙x取操作模式;及 請求對所述頁的另一讀取。
11.如權(quán)利要求10所述的方法,其中所述第一讀取操作模式包括直接存儲(chǔ)器存取(DMA),且其中所述第二讀取操作模式包括使用微處理器來控制存取。
12.如權(quán)利要求10所述的方法,其進(jìn)一步包括至少部分地基于循環(huán)計(jì)數(shù)器確定是否請求對所述頁的另一讀取。
13.如權(quán)利要求10所述的方法,其進(jìn)一步包括至少部分地基于定時(shí)器確定是否請求對所述頁的另一讀取。
14.如權(quán)利要求9所述的方法,其進(jìn)一步包括由操作系統(tǒng)的驅(qū)動(dòng)器執(zhí)行所述方法。
15.一種從非易失性集成電路存儲(chǔ)器裝置存取數(shù)據(jù)頁的設(shè)備,所述設(shè)備包括 經(jīng)配置以請求從所述存儲(chǔ)器裝置對所述數(shù)據(jù)頁的讀取的模塊; 經(jīng)配置以檢查與所述頁相關(guān)聯(lián)的錯(cuò)誤校正代碼(ECC)的模塊;及 經(jīng)配置以向操作系統(tǒng)提供指示正確地讀取了所述數(shù)據(jù)頁的狀況而不管所述數(shù)據(jù)頁是否包含任何不可校正的錯(cuò)誤的模塊。
16.如權(quán)利要求15所述的設(shè)備,其中可選擇至少第一讀取操作模式及比所述第一讀取操作模式慢的第二讀取操作模式用于從所述裝置讀取數(shù)據(jù),其中經(jīng)配置以請求對所述頁的所述讀取的模塊進(jìn)一步經(jīng)配置以 確定對初始讀取的解碼已產(chǎn)生不可校正的錯(cuò)誤,其中所述初始讀取使用所述第一讀取操作模式執(zhí)行; 從所述第一讀取操作模式改變?yōu)樗龅诙x取操作模式;及 請求對所述頁的另一讀取。
17.如權(quán)利要求16所述的設(shè)備,其中所述第一讀取操作模式包括直接存儲(chǔ)器存取(DMA),且其中所述第二讀取操作模式包括使用微處理器來控制存取。
18.如權(quán)利要求16所述的設(shè)備,其進(jìn)一步包括經(jīng)配置以至少部分地基于循環(huán)計(jì)數(shù)器確定是否請求對所述頁的另一讀取的模塊。
19.如權(quán)利要求16所述的設(shè)備,其進(jìn)一步包括經(jīng)配置以至少部分地基于定時(shí)器確定是否請求對所述頁的另一讀取的模塊。
全文摘要
本發(fā)明揭示用于檢測出現(xiàn)的壞塊的設(shè)備及方法,例如從非易失性集成電路存儲(chǔ)器裝置(106)(例如NAND快閃)讀取數(shù)據(jù)的那些設(shè)備及方法。例如,所揭示的技術(shù)可體現(xiàn)于操作系統(tǒng)(104)的裝置驅(qū)動(dòng)器(110)中。在讀取操作期間追蹤錯(cuò)誤。如果在讀取操作期間觀察到(204)足夠多的錯(cuò)誤,那么當(dāng)請求擦除塊或請求寫入(210)、(212)、(214)、(310)所述塊的頁時(shí)使所述塊退出。一個(gè)實(shí)施例為從不可校正的錯(cuò)誤恢復(fù)數(shù)據(jù)的技術(shù)。例如,可將讀取模式改變(410)為更可靠的讀取模式來嘗試恢復(fù)數(shù)據(jù)。一個(gè)實(shí)施例進(jìn)一步從所述存儲(chǔ)器裝置(106)返回?cái)?shù)據(jù),而不管所述數(shù)據(jù)是否可通過解碼錯(cuò)誤校正代碼數(shù)據(jù)來校正(430)。
文檔編號(hào)G11C16/34GK102880521SQ20121029895
公開日2013年1月16日 申請日期2008年5月16日 優(yōu)先權(quán)日2007年6月7日
發(fā)明者李鐵牛 申請人:美光科技公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1