專利名稱:用來存取一快閃存儲器之方法以及相關(guān)之記憶裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及快閃存儲器(Flash Memory)之存取(Access),尤指一種用來存取一 快閃存儲器之方法以及相關(guān)之記憶裝置。
背景技術(shù):
近年來由于快閃存儲器的技術(shù)不斷地發(fā)展,各種可攜式記憶裝置(例如符合SD/ 匪C、CF、MS、XD標(biāo)準(zhǔn)之記憶卡)被廣泛地實(shí)施于諸多應(yīng)用中。因此,這些可攜式記憶裝置中 之快閃存儲器的存取控制遂成為相當(dāng)熱門的議題。 以常用的NAND型快閃存儲器而言,其主要可區(qū)分為單階細(xì)胞(SingleLevel Cell,SLC)與多階細(xì)胞(Multiple Level Cell,MLC)兩大類之快閃存儲器。單階細(xì)胞快閃 存儲器中之每個被當(dāng)作記憶單元的晶體管只有兩種電荷值,分別用來表示邏輯值0與邏輯 值1。另外,多階細(xì)胞快閃存儲器中之每個被當(dāng)作記憶單元的晶體管的儲存能力則被充分 利用,系采用較高的電壓來驅(qū)動,以透過不同級別的電壓在一個晶體管中記錄兩組位信息 (00、01、11、10);理論上,多階細(xì)胞快閃存儲器的記錄密度可以達(dá)到單階細(xì)胞快閃存儲器的 記錄密度之兩倍,這對于曾經(jīng)在發(fā)展過程中遇到瓶頸的NAND型快閃存儲器之相關(guān)產(chǎn)業(yè)而 言,是非常好的消息。 相較于單階細(xì)胞快閃存儲器,由于多階細(xì)胞快閃存儲器之價格較便宜,并且在有 限的空間里可提供較大的容量,故多階細(xì)胞快閃存儲器很快地成為市面上之可攜式記憶裝 置競相采用的主流。然而,多階細(xì)胞快閃存儲器的不穩(wěn)定性所導(dǎo)致的問題也一一浮現(xiàn)。例 如依據(jù)相關(guān)技術(shù),一旦快閃存儲器因使用多時而質(zhì)量變差,使用者的數(shù)據(jù)就可能隨時會遺 失。因此,需要一種新穎的方法來加強(qiáng)控管在快閃存儲器因使用多時而質(zhì)量變差的狀況下 之?dāng)?shù)據(jù)存取,以確保使用者數(shù)據(jù)的完整性。
發(fā)明內(nèi)容
因此本發(fā)明之目的之一在于提供一種用來存取(Access) —快閃存儲器(Flash Memory)之方法以及相關(guān)之記憶裝置及其控制器,以解決上述問題。 本發(fā)明之另一 目的在于提供一種用來存取一快閃存儲器之方法以及相關(guān)之記憶 裝置及其控制器,以避免在快閃存儲器因使用多時而質(zhì)量變差的狀況下遺失使用者的數(shù) 據(jù)。 本發(fā)明之又一 目的在于提供一種用來存取一快閃存儲器之方法以及相關(guān)之記憶 裝置及其控制器,以于快閃存儲器因使用多時而質(zhì)量變差的狀況下仍能維持資料存取的效 能。 本發(fā)明之較佳實(shí)施例中提供一種用來存取一快閃存儲器之方法,該快閃存儲器包 含復(fù)數(shù)個區(qū)塊,該方法包含有選擇性地針對一頁于該些區(qū)塊中之一第一區(qū)塊進(jìn)行寫入; 當(dāng)該快閃存儲器之狀態(tài)不正常時,判斷錯誤位之?dāng)?shù)量是否在一預(yù)定值之內(nèi);以及當(dāng)錯誤位 之?dāng)?shù)量不在該預(yù)定值之內(nèi)時,移動該第一區(qū)塊。
本發(fā)明于提供上述方法之同時,亦對應(yīng)地提供一種記憶裝置,其包含有一快閃存 儲器,該快閃存儲器包含復(fù)數(shù)個區(qū)塊;以及一控制器,用來存取該快閃存儲器,其中該控制 器選擇性地針對一頁于該些區(qū)塊中之一第一區(qū)塊進(jìn)行寫入;其中當(dāng)該快閃存儲器之狀態(tài)不 正常時,該控制器判斷錯誤位之?dāng)?shù)量是否在一預(yù)定值之內(nèi);以及當(dāng)錯誤位之?dāng)?shù)量不在該預(yù) 定值之內(nèi)時,該控制器移動該第一區(qū)塊。
圖1為依據(jù)本發(fā)明一第一實(shí)施例之一種記憶裝置的示意圖。 圖2為依據(jù)本發(fā)明一實(shí)施例之一種用來存取(Access) —快閃存儲器(Flash
Memory)之方法的控制程序之流程圖。 圖3為圖2所示之實(shí)施例之一變化例的示意圖。 圖中,IOO是記憶裝置,IIO是控制器,112是微處理器,112C是程序代碼,112M是只 讀存儲器,114是控制邏輯,116是緩沖存儲器,118是接口邏輯,120是快閃存儲器,910、930 是控制程序,912、914、…、928是步驟,932、934、…、950是步驟。
具體實(shí)施例方式
請參考圖1,圖1為依據(jù)本發(fā)明一第一實(shí)施例之一種記憶裝置100的示意圖,其中 本實(shí)施例之記憶裝置100尤其系為可攜式記憶裝置(例如符合SD/匪C、CF、MS、XD標(biāo)準(zhǔn)之 記憶卡)。記憶裝置100包含有一快閃存儲器(FlashMemory) 120 ;以及一控制器,用來存 取快閃存儲器120,其中該控制器例如一內(nèi)存控制器110。依據(jù)本實(shí)施例,內(nèi)存控制器110 包含一微處理器112、一只讀存儲器(Read Only Memory,ROM) 112M、一控制邏輯114、一緩沖 存儲器116、與一接口邏輯118。只讀存儲器系用來儲存一程序代碼112C,而微處理器112 則用來執(zhí)行程序代碼112C以控制對快閃存儲器120之存取(Access)。
于典型狀況下,快閃存儲器120包含復(fù)數(shù)個區(qū)塊(Block),而該控制器(例如藉 由微處理器112執(zhí)行程序代碼112C之內(nèi)存控制器110)對快閃存儲器120進(jìn)行抹除數(shù)據(jù)之 運(yùn)作系以區(qū)塊為單位來進(jìn)行抹除。另外,一區(qū)塊可記錄特定數(shù)量的頁(Page),其中該控制 器(例如藉由微處理器112執(zhí)行程序代碼112C之內(nèi)存控制器110)對快閃存儲器120進(jìn) 行寫入數(shù)據(jù)之運(yùn)作系以頁為單位來進(jìn)行寫入。 實(shí)作上,藉由微處理器112執(zhí)行程序代碼112C之內(nèi)存控制器110可利用其本身內(nèi) 部之組件來進(jìn)行諸多控制運(yùn)作,例如利用控制邏輯114來控制快閃存儲器120之存取運(yùn) 作(尤其是對至少一區(qū)塊或至少一頁之存取運(yùn)作)、利用緩沖存儲器116進(jìn)行所需之緩沖處 理、以及利用接口邏輯118來與一主裝置(HostDevice)溝通。 依據(jù)本實(shí)施例,該控制器,尤其是藉由微處理器112執(zhí)行程序代碼112C之內(nèi)存控 制器110,可選擇性地針對一頁于該些區(qū)塊中之一第一區(qū)塊進(jìn)行寫入。藉由微處理器112 執(zhí)行程序代碼112C之內(nèi)存控制器110讀取快閃存儲器120之一狀態(tài)緩存器(未顯示), 以判斷快閃存儲器120之狀態(tài)是否正常。當(dāng)快閃存儲器120之狀態(tài)不正常時,藉由微處理 器112執(zhí)行程序代碼112C之內(nèi)存控制器110判斷錯誤位之?dāng)?shù)量是否在一預(yù)定值之內(nèi)。請 注意,該預(yù)定值系對應(yīng)于快閃存儲器120之規(guī)格。例如程序代碼112C預(yù)先以一查對表 (Look-UpTable,LUT)將分別對應(yīng)于不同廠牌、型號之快閃存儲器之預(yù)定值提供予內(nèi)存控制
5器110,則內(nèi)存控制器110就可針對快閃存儲器120的廠牌、型號來查對出該預(yù)定值。
實(shí)作上,當(dāng)快閃存儲器120之狀態(tài)不正常時,該控制器(例如藉由微處理器112執(zhí)行程序代碼112C之內(nèi)存控制器110)自其本身內(nèi)部之一錯誤更正碼緩存器(未顯示)讀取錯誤位之?dāng)?shù)量,以判斷錯誤位之?dāng)?shù)量是否在該預(yù)定值之內(nèi)(即判斷錯誤位之?dāng)?shù)量是否低于該預(yù)定值)。于是,當(dāng)錯誤位之?dāng)?shù)量不在該預(yù)定值之內(nèi)時,藉由微處理器112執(zhí)行程序代碼112C之內(nèi)存控制器110就移動該第一區(qū)塊。 相較于相關(guān)技術(shù),由于本發(fā)明之內(nèi)存控制器110系及早進(jìn)行預(yù)防性的措施,在還沒有發(fā)生無法補(bǔ)救的狀況下就移動該第一區(qū)塊,故本發(fā)明可以避免在快閃存儲器120因使用多時而質(zhì)量變差的狀況下遺失使用者的數(shù)據(jù)。 本發(fā)明的另一好處是,由于本發(fā)明之內(nèi)存控制器110系及早進(jìn)行預(yù)防性的措施,在還沒有發(fā)生無法補(bǔ)救的狀況下就移動該第一區(qū)塊,故本發(fā)明于快閃存儲器120因使用多時而質(zhì)量變差的狀況下仍能維持?jǐn)?shù)據(jù)存取的效能,不會有相關(guān)技術(shù)中肇因于數(shù)據(jù)錯誤而必須重新存取數(shù)據(jù)的問題。 本發(fā)明的又一好處是,本發(fā)明可避免壞區(qū)塊的誤判,尤其是避免如相關(guān)技術(shù)中等到發(fā)生無法補(bǔ)救的狀況下才將一區(qū)塊判定為壞區(qū)塊。因此,本發(fā)明可有效地減少壞區(qū)塊的數(shù)目,進(jìn)而延長可攜式記憶裝置的壽命。以下參考圖2來進(jìn)一步說明。
圖2為依據(jù)本發(fā)明一實(shí)施例之一種用來存取一快閃存儲器之方法的控制程序910之流程圖。該方法可應(yīng)用于圖1所示之記憶裝置100,尤其是上述之控制器(例如藉由微處理器112執(zhí)行程序代碼112C之內(nèi)存控制器110)。另外,該方法可藉由利用圖1所示之記憶裝置100來實(shí)施,尤其是藉由利用上述之控制器(例如藉由微處理器112執(zhí)行程序代碼112C之內(nèi)存控制器110)來實(shí)施。該方法的控制程序910說明如下 于步驟912中,上述之控制器(例如藉由微處理器112執(zhí)行程序代碼112C之內(nèi)存控制器IIO)針對一頁進(jìn)行寫入。尤其是,該控制器針對一頁于該些區(qū)塊中之該第一區(qū)塊進(jìn)行寫入。 于步驟914中,該控制器檢查狀態(tài)是否正常;如前面所述,內(nèi)存控制器110讀取快閃存儲器120之狀態(tài)緩存器,以判斷快閃存儲器120之狀態(tài)是否正常。當(dāng)快閃存儲器120之狀態(tài)正常時,進(jìn)入步驟916 ;否則(即代表于步驟912中剛剛寫入數(shù)據(jù)之運(yùn)作被判定為不成功),進(jìn)入步驟920。 于步驟916中,該控制器增加頁碼索引。例如頁碼索引系為Page,于本步驟中增加頁碼索引之運(yùn)算可寫成Page++。 于步驟918中,該控制器判斷是否已處理達(dá)最后一頁。尤其是,該控制器藉由檢查該頁碼索引來判斷是否已處理達(dá)最后一頁。當(dāng)已處理達(dá)最后一頁時,則結(jié)束控制程序910 ;否則,重新進(jìn)入步驟912,以針對下一頁進(jìn)行寫入。 于步驟920中,該控制器自上述之錯誤更正碼緩存器讀取錯誤位之?dāng)?shù)量;例如該數(shù)量代表剛剛寫入的數(shù)據(jù)錯了幾個位。 于步驟922中,該控制器判斷錯誤位之?dāng)?shù)量是否在規(guī)格之內(nèi)。依據(jù)本實(shí)施例,該控制器進(jìn)行讀取自該錯誤更正碼緩存器之錯誤位之?dāng)?shù)量以及上述之預(yù)定值之比較,來判斷錯誤位之?dāng)?shù)量是否在該預(yù)定值之內(nèi),尤其是判斷錯誤位之?dāng)?shù)量是否低于該預(yù)定值。如此,針對于步驟912中剛剛寫入資料之運(yùn)作被判定為不成功之狀況,本步驟機(jī)動地決定是否啟動上述之預(yù)防性的措施。當(dāng)錯誤位之?dāng)?shù)量系在該預(yù)定值之內(nèi)時,進(jìn)入步驟916 ;否則,進(jìn)入步驟
924。 于步驟924中,該控制器移動區(qū)塊。尤其是,該控制器在還沒有發(fā)生無法補(bǔ)救的狀況下就移動該第一區(qū)塊。如此,針對于步驟912中剛剛寫入資料之運(yùn)作被判定為不成功之狀況,本步驟系依據(jù)步驟922之決定來啟動上述之預(yù)防性的措施。 于步驟926中,該控制器判斷是否為錯誤更正碼可更正之錯誤。依據(jù)本實(shí)施例,該控制器判斷剛剛寫入的數(shù)據(jù)中之錯誤位(其可能系為一個或數(shù)個錯誤位)是否為錯誤更正碼可更正之錯誤,尤其是判斷該(些)錯誤位是否可被該控制器內(nèi)部之錯誤更正碼引擎所更正。當(dāng)該控制器判斷該(些)錯誤位系為錯誤更正碼可更正之錯誤,進(jìn)入步驟916 ;否則,表示該控制器判斷該(些)錯誤位并非錯誤更正碼可更正之錯誤(即代表錯誤位無法被該錯誤更正碼引擎所更正),進(jìn)入步驟928。 于步驟928中,該控制器標(biāo)示壞區(qū)塊。尤其是,該控制器將該第一區(qū)塊標(biāo)示為壞區(qū)塊。 依據(jù)本實(shí)施例,由于步驟924系為及早進(jìn)行之預(yù)防性的措施,所以不需要等待步驟926之判斷,就立即藉由移動該第一區(qū)塊來適切地保護(hù)使用者的數(shù)據(jù),如此可在第一時間就預(yù)防無法補(bǔ)救的狀況之發(fā)生,同時保有最佳的運(yùn)作效率。 圖3為圖2所示之實(shí)施例之一變化例的示意圖,其中控制程序930系有關(guān)于區(qū)塊移動運(yùn)作,并且利用到控制程序910中之至少一部分步驟。更明確而言,本變化例之控制程序930會利用到控制程序910中之寫入運(yùn)作相關(guān)控制來進(jìn)行區(qū)塊移動運(yùn)作。
依據(jù)本變化例,上述之控制器(例如藉由微處理器112執(zhí)行程序代碼112C之內(nèi)存控制器110)首先系針對一頁于該些區(qū)塊中之一區(qū)塊(例如一第二區(qū)塊,其代表區(qū)塊移動運(yùn)作之來源區(qū)塊)進(jìn)行讀取,并判斷讀取所發(fā)生之錯誤位是否為錯誤更正碼可更正之錯誤;其次,當(dāng)讀取所發(fā)生之錯誤位系為錯誤更正碼可更正之錯誤之時,該控制器針對該頁于該些區(qū)塊中之另一區(qū)塊(例如該第一區(qū)塊,其代表區(qū)塊移動運(yùn)作之目的區(qū)塊)進(jìn)行寫入。如此,在本變化例中,控制程序910中之步驟912系被改為選擇性地執(zhí)行,尤其是被改寫為控制程序930中之步驟938。該方法的控制程序930說明如下 于步驟932中,該控制器(例如藉由微處理器112執(zhí)行程序代碼112C之內(nèi)存控
制器110)儲存緩沖器。在本變化例中,該控制器儲存緩沖存儲器116的數(shù)據(jù)至快閃存儲器
120,以便將緩沖存儲器116的儲存空間提供予圖3所示之區(qū)塊移動運(yùn)作使用。 于步驟934中,該控制器針對一頁進(jìn)行讀取。尤其是,在圖3所示之區(qū)塊移動運(yùn)作
當(dāng)中,該控制器首先系針對一頁于某一區(qū)塊(例如該第二區(qū)塊)進(jìn)行讀取。 于步驟936中,該控制器判斷是否為錯誤更正碼可更正之錯誤。依據(jù)本變化例,該
控制器判斷剛剛讀取的數(shù)據(jù)中之錯誤位(例如一個或數(shù)個錯誤位)是否為錯誤更正碼可
更正之錯誤,尤其是判斷該(些)錯誤位是否可被該控制器內(nèi)部之錯誤更正碼引擎所更正。
當(dāng)該控制器判斷該(些)錯誤位系為錯誤更正碼可更正之錯誤,進(jìn)入步驟938 ;否則,表示
該控制器判斷該(些)錯誤位并非錯誤更正碼可更正之錯誤(即代表錯誤位無法被該錯誤
更正碼引擎所更正),進(jìn)入步驟940。 于步驟938中,該控制器針對步驟934所讀取之頁于另一區(qū)塊(例如該第一區(qū)塊)進(jìn)行寫入。于步驟938執(zhí)行完畢之后,進(jìn)入步驟914。此后可依據(jù)控制程序910來進(jìn)行
7控制,直到步驟916被執(zhí)行;一旦步驟916被執(zhí)行完畢之后,進(jìn)入步驟948。
于步驟940中,該控制器將錯誤更正碼無法更正之失敗記錄寫入一信息區(qū)塊,其中該信息區(qū)塊系為快閃存儲器120中用來儲存存取控制的相關(guān)信息之區(qū)塊;或者更詳細(xì)地說,該控制器將失敗區(qū)塊的實(shí)體地址記錄入該信息區(qū)塊。 于步驟942中,該控制器判斷是否失敗次數(shù)達(dá)3次。尤其是,該控制器依據(jù)該信息區(qū)塊中所儲存之失敗記錄來判斷是否讀取該頁失敗次數(shù)達(dá)3次。藉由本步驟,當(dāng)步驟934中進(jìn)行之讀取所發(fā)生之錯誤位并非錯誤更正碼可更正之錯誤時,該控制器即可選擇性地重新讀取。例如當(dāng)失敗次數(shù)達(dá)3次時,進(jìn)入步驟944 ;否則,重新進(jìn)入步驟934,以重新針對該頁進(jìn)行讀取。 依據(jù)本變化例,該控制器于步驟942中之判斷所采用的門坎值系為3,這只是為了說明的目的而已,并非對本發(fā)明之限制。依據(jù)本發(fā)明之l實(shí)施例(其系為圖2所示之實(shí)施例之另一變化例),該門坎值可為一正整數(shù);此類變化并非對本發(fā)明之限制。
于步驟944中,該控制器判斷是否旗標(biāo)Ignore_Program_Fail_Status = 1之條件成立。當(dāng)Ignore_Program_Fail_Status = 1時,進(jìn)入步驟946 ;否則,進(jìn)入步驟916,以增加該頁碼索引,其中一旦步驟916被執(zhí)行完畢之后,進(jìn)入步驟948。 于步驟946中,該控制器設(shè)定旗標(biāo)Mark_Bad_Block_Flag = 1,以將該某一區(qū)塊(例如該第一區(qū)塊)標(biāo)示為壞區(qū)塊。 一旦步驟946被執(zhí)行完畢之后,進(jìn)入步驟916,以增加該頁碼索引,其中一旦步驟916被執(zhí)行完畢之后,進(jìn)入步驟948。 于步驟948中,該控制器判斷是否已處理達(dá)最后一頁。尤其是,該控制器藉由檢查該頁碼索引來判斷是否已處理達(dá)最后一頁。請注意,控制程序930中之步驟948實(shí)質(zhì)上(Substantially)等同于控制程序910中之步驟918 ;然而,步驟948之后續(xù)步驟系導(dǎo)向控制程序930,亦即回到圖3所示之控制程序930中之步驟。例如于步驟948中,當(dāng)已處理達(dá)最后一頁時,則進(jìn)入步驟950 ;否則,重新進(jìn)入步驟934,以針對下一頁進(jìn)行讀取。
于步驟950中,該控制器回存(Restore)緩沖器。在本變化例中,該控制器將步驟932中所儲存至快閃存儲器120的數(shù)據(jù)回存至緩沖存儲器116。 由上述可知,不論是依據(jù)控制程序910或控制程序930來進(jìn)行存取控制,由于步驟924系為及早進(jìn)行之預(yù)防性的措施,所以不需要等待步驟926之判斷,就立即藉由移動該第一區(qū)塊來適切地保護(hù)使用者的數(shù)據(jù)。因此,本發(fā)明可以預(yù)防并排除由于后來的讀取擾動(Read Disturbance)或其它因素所造成錯誤位數(shù)量持續(xù)累加至該錯誤更正碼引擎無法更正的地步。如此,本發(fā)明可在第一時間就預(yù)防無法補(bǔ)救的狀況之發(fā)生,同時保有最佳的運(yùn)作效率。 以上所述僅為本發(fā)明之較佳實(shí)施例,凡依本發(fā)明申請專利范圍所做之均等變化與修飾,皆應(yīng)屬本發(fā)明之保護(hù)范圍。
8
權(quán)利要求
一種用來存取一快閃存儲器之方法,該快閃存儲器包含復(fù)數(shù)個區(qū)塊,該方法包含有選擇性地針對一頁于該些區(qū)塊中之一第一區(qū)塊進(jìn)行寫入;當(dāng)該快閃存儲器之狀態(tài)不正常時,判斷錯誤位之?dāng)?shù)量是否在一預(yù)定值之內(nèi);以及當(dāng)錯誤位之?dāng)?shù)量不在該預(yù)定值之內(nèi)時,移動該第一區(qū)塊。
2. 根據(jù)權(quán)利要求1所述的方法,其中當(dāng)該快閃存儲器之狀態(tài)不正常時判斷錯誤位之?dāng)?shù) 量是否在該預(yù)定值之內(nèi)之步驟另包含有當(dāng)該快閃存儲器之狀態(tài)不正常時,自一錯誤更正碼緩存器讀取錯誤位之?dāng)?shù)量,以判斷 錯誤位之?dāng)?shù)量是否在該預(yù)定值之內(nèi)。
3. 根據(jù)權(quán)利要求1所述的方法,其另包含有讀取該快閃存儲器之狀態(tài)緩存器,以判斷該快閃存儲器之狀態(tài)是否正常。
4. 根據(jù)權(quán)利要求1所述的方法,其中該預(yù)定值系對應(yīng)于該快閃存儲器之規(guī)格。
5. 根據(jù)權(quán)利要求1所述的方法,其另包含有一旦移動該第一區(qū)塊,則判斷該錯誤位是否為錯誤更正碼可更正之錯誤;以及 當(dāng)該錯誤位并非錯誤更正碼可更正之錯誤時,將該第一區(qū)塊標(biāo)示為壞區(qū)塊。
6. 根據(jù)權(quán)利要求1所述的方法,其另包含有針對一頁于該些區(qū)塊中之一第二區(qū)塊進(jìn)行讀取,并判斷讀取所發(fā)生之錯誤位是否為錯誤更正碼可更正之錯誤;其中選擇性地針對該頁于該些區(qū)塊中之該第一區(qū)塊進(jìn)行寫入之步驟另包含有 當(dāng)讀取所發(fā)生之錯誤位系為錯誤更正碼可更正之錯誤之時,針對該頁于該些區(qū)塊中之該第一區(qū)塊進(jìn)行寫入。
7. 根據(jù)權(quán)利要求6所述的方法,其另包含有當(dāng)讀取所發(fā)生之錯誤位并非錯誤更正碼可更正之錯誤時,選擇性地重新讀取。
8. —種記憶裝置,其包含有一快閃存儲器,該快閃存儲器包含復(fù)數(shù)個區(qū)塊;以及一控制器,用來存取該快閃存儲器,其中該控制器選擇性地針對一頁于該些區(qū)塊中之 一第一區(qū)塊進(jìn)行寫入;其中當(dāng)該快閃存儲器之狀態(tài)不正常時,該控制器判斷錯誤位之?dāng)?shù)量是否在一預(yù)定值之 內(nèi);以及當(dāng)錯誤位之?dāng)?shù)量不在該預(yù)定值之內(nèi)時,該控制器移動該第一區(qū)塊。
9. 根據(jù)權(quán)利要求8所述的記憶裝置,其中當(dāng)該快閃存儲器之狀態(tài)不正常時,該控制器 自其內(nèi)部之一錯誤更正碼緩存器讀取錯誤位之?dāng)?shù)量,以判斷錯誤位之?dāng)?shù)量是否在該預(yù)定值 之內(nèi)。
10. 根據(jù)權(quán)利要求8所述的記憶裝置,其中該控制器讀取該快閃存儲器之狀態(tài)緩存器, 以判斷該快閃存儲器之狀態(tài)是否正常。
11. 根據(jù)權(quán)利要求8所述的記憶裝置,其中該預(yù)定值系對應(yīng)于該快閃存儲器之規(guī)格。
12. 根據(jù)權(quán)利要求8所述的記憶裝置,其中該控制器一旦移動該第一區(qū)塊,則判斷該錯 誤位是否為錯誤更正碼可更正之錯誤;以及當(dāng)該錯誤位并非錯誤更正碼可更正之錯誤時, 該控制器將該第一區(qū)塊標(biāo)示為壞區(qū)塊。
13. 根據(jù)權(quán)利要求8所述的記憶裝置,其中該控制器針對一頁于該些區(qū)塊中之一第二區(qū)塊進(jìn)行讀取,并判斷讀取所發(fā)生之錯誤位是否為錯誤更正碼可更正之錯誤;以及當(dāng)讀取 所發(fā)生之錯誤位系為錯誤更正碼可更正之錯誤之時,該控制器針對該頁于該些區(qū)塊中之該 第一區(qū)塊進(jìn)行寫入。
14.根據(jù)權(quán)利要求13所述的記憶裝置,其中當(dāng)讀取所發(fā)生之錯誤位并非錯誤更正碼可 更正之錯誤時,該控制器選擇性地重新讀取。
全文摘要
本發(fā)明涉及用來存取一快閃存儲器之方法以及相關(guān)之記憶裝置,其中提供一種用來存取一快閃存儲器之方法,該快閃存儲器包含復(fù)數(shù)個區(qū)塊,該方法包含有選擇性地針對一頁于該些區(qū)塊中之一第一區(qū)塊進(jìn)行寫入;當(dāng)該快閃存儲器之狀態(tài)不正常時,判斷錯誤位之?dāng)?shù)量是否在一預(yù)定值之內(nèi);以及當(dāng)錯誤位之?dāng)?shù)量不在該預(yù)定值之內(nèi)時,移動該第一區(qū)塊。本發(fā)明另提供相關(guān)之記憶裝置及其控制器,其中該控制器包含一只讀存儲器,用來儲存一程序代碼;以及一微處理器,用來執(zhí)行該程序代碼以控制對該快閃存儲器之存取。另外,當(dāng)錯誤位之?dāng)?shù)量不在該預(yù)定值之內(nèi)時,藉由該微處理器執(zhí)行該程序代碼之該控制器移動該第一區(qū)塊。
文檔編號G11C29/04GK101783164SQ200910105070
公開日2010年7月21日 申請日期2009年1月16日 優(yōu)先權(quán)日2009年1月16日
發(fā)明者林仁文 申請人:慧帝科技(深圳)有限公司;慧榮科技股份有限公司