專利名稱::應用于快閃存儲器的方法與相關的控制器的制作方法
技術領域:
:本發(fā)明有關于一種運用于快閃存儲器的方法與相關控制器,特別是關于一種可依據(jù)快閃存儲器中各存儲單元被讀取次數(shù)適當刷新數(shù)據(jù)以減少讀取干擾的方法與相關控制O
背景技術:
:快閃存儲器已成為現(xiàn)代資訊社會最重要的非揮發(fā)性存儲裝置之一。
發(fā)明內(nèi)容快閃存儲器是以浮接閘極(floatinggate)儲存電荷以記錄數(shù)據(jù)。隨著快閃存儲器的積成度增加,并朝先進制程發(fā)展,快閃存儲器的浮動間極越來越小,其保留電荷的能力也受到影響。當每一次讀取浮動閘極中以電荷記錄的數(shù)據(jù)時,浮動閘極都會流失部份的電荷。因此,隨著快閃存儲器被讀取次數(shù)增加,其數(shù)據(jù)記錄的可靠度與正確性也隨之下降;這種因讀取次數(shù)累積而影響數(shù)據(jù)儲存的現(xiàn)象可視為一種讀取干擾。雖然在數(shù)據(jù)讀取時可應用錯誤更正碼來檢測/修復出錯的數(shù)據(jù),但錯誤更正碼修復數(shù)據(jù)錯誤的能力相當有限??紤]數(shù)據(jù)修復的成本與演算復雜度,一般的錯誤更正碼在一位元組的數(shù)據(jù)中只能修復1到2位元的錯誤;若一位元組中有超過2位元的錯誤,錯誤更正碼便無法將錯誤的數(shù)據(jù)修復回原先正確的數(shù)據(jù)。當快閃存儲器被讀取的次數(shù)持續(xù)累積,數(shù)據(jù)錯誤的程度也會持續(xù)惡化,終將超過錯誤更正碼所能修復的程度。而本發(fā)明即是要針對讀取干擾提出一解決方案,以降低/減少/克服現(xiàn)代快閃存儲器的讀取干擾。本發(fā)明的目的是提供一種應用于一快閃存儲器的方法;快閃存儲器設有多個數(shù)據(jù)單元(如分頁,page),而本發(fā)明方法包含計數(shù)這些數(shù)據(jù)單元被讀取的次數(shù)以產(chǎn)生多個計數(shù)值,并根據(jù)這些數(shù)據(jù)單元被讀取的次數(shù),決定是否刷新(refresh)這些數(shù)據(jù)單元中的數(shù)據(jù)。在一實施例中,本發(fā)明會為快閃存儲器配置多個計數(shù)器以記錄該些計數(shù)值,每一數(shù)據(jù)單元對應這些計數(shù)器的其中之一。當各數(shù)據(jù)單元被讀取時,就可在各數(shù)據(jù)單元對應的計數(shù)器中將一預設增量累增至該計數(shù)器的計數(shù)值中。依據(jù)各計數(shù)器中的計數(shù)值,就可計數(shù)這些數(shù)據(jù)單元被讀取的次數(shù)。由于快閃存儲器的數(shù)據(jù)讀取是以分頁為單位來進行,但數(shù)據(jù)的抹除與寫入則是以區(qū)塊(block)為單位來進行,每一區(qū)塊中有多個分頁。譬如說,一快閃存儲器中可設有M個區(qū)塊,每一區(qū)塊中有N個分頁(即N個數(shù)據(jù)單元),而本發(fā)明可為每Y個數(shù)據(jù)單元(Y大于或等于1)配置一個計數(shù)器,使這Y個數(shù)據(jù)單元對應于同一個計數(shù)器。因此,每一區(qū)塊中的N個數(shù)據(jù)單元會對應至Z個計數(shù)器,Z=N/Y,而Z可以大于或等于1。在前述實施例中,因為Y個數(shù)據(jù)單元共用一個計數(shù)器,當要讀取這Y個數(shù)據(jù)單元的其中一個時,可一并讀取同一計數(shù)器對應的其他(Y-I)個數(shù)據(jù)單元。如此,同一計數(shù)器對應的Y個數(shù)據(jù)單元的被讀取次數(shù)就會一致,而該計數(shù)器的計數(shù)值也就能確實反應這Y個數(shù)據(jù)單元被讀取的次數(shù)。為克服讀取干擾的影響,當某一計數(shù)器的計數(shù)值大于一臨界值時,本發(fā)明就會刷新該計數(shù)器對應的各個數(shù)據(jù)單元,譬如說是在快閃存儲器中找出未被使用的數(shù)據(jù)單元(譬如說是已被抹除的備用數(shù)據(jù)單元)當作取代數(shù)據(jù)單元,以將該計數(shù)器對應的各數(shù)據(jù)單元的數(shù)據(jù)分別寫入至取代數(shù)據(jù)單元。也就是說,本發(fā)明是藉由計數(shù)器來進行讀取次數(shù)的記錄與監(jiān)控;在各數(shù)據(jù)單元被讀取的次數(shù)累積到將要影響數(shù)據(jù)安全之前,本發(fā)明就會將數(shù)據(jù)以重新寫入的方式來予以刷新。由于重新寫入會重新將足夠的電荷注入至浮動間極,故能維護數(shù)據(jù),保持數(shù)據(jù)的正確性與可靠度,使數(shù)據(jù)能夠再繼續(xù)承受后續(xù)的讀取,克服讀取干擾。在利用取代數(shù)據(jù)單元刷新一計數(shù)器對應的各該數(shù)據(jù)單元后,各取代數(shù)據(jù)單元所對應的計數(shù)器的計數(shù)值就可被設為一初始值。如前面描述的,在實現(xiàn)本發(fā)明時,一個區(qū)塊中的N個數(shù)據(jù)單元(分頁)可分配對應至Z個計數(shù)器,而Z可以大于1。由于快閃存儲器會以區(qū)塊為單位來進行數(shù)據(jù)抹除與寫入,本發(fā)明可用區(qū)塊為單位來進行數(shù)據(jù)刷新。針對某一區(qū)塊的Z個計數(shù)器,若這Z個計數(shù)器中有某一個計數(shù)器的計數(shù)值已經(jīng)大于臨界值,本發(fā)明就可刷新該區(qū)塊中的所有N個數(shù)據(jù)單元,譬如說是在快閃存儲器中找出另一個未被使用的區(qū)塊作為取代區(qū)塊,以將這N個數(shù)據(jù)單元中的數(shù)據(jù)寫入至取代區(qū)塊中的N個對應數(shù)據(jù)單元。刷新該區(qū)塊后,取代區(qū)塊對應的Z個計數(shù)器的計數(shù)值可一起被設為初始值。在一實施例中,當為各數(shù)據(jù)單元配置計數(shù)器時,系于一揮發(fā)性存儲器(如靜態(tài)及/或動態(tài)隨機存取存儲器)中配置各計數(shù)器。譬如說,若揮發(fā)性存儲器中有X位元組(byte)可用以配置計數(shù)器,每個計數(shù)器使用2個位元組(可記錄0到65535的計數(shù)值),則X位元組可配置出(ΧΛ)個計數(shù)器。由于快閃存儲器的M個區(qū)塊分別對應Z個計數(shù)器,總共使用M*Z個計數(shù)器,故(Μ*Ζ)=Χ/23ΡΖ=ΧΛ2*Μ)。也就是說,根據(jù)揮發(fā)性存儲器中可用于配置計數(shù)器的位元組總數(shù)X,以及快閃存儲器中的區(qū)塊總數(shù)Μ,就可計算出各區(qū)塊所能對應到的計數(shù)器數(shù)目Z;連帶地,各計數(shù)器所對應的數(shù)據(jù)單元(分頁)總數(shù)Y就可計算為Y=Ν/Ζ,其中N為一區(qū)塊中的數(shù)據(jù)單元總數(shù)。當要停止使用快閃存儲器時,各計數(shù)器的計數(shù)值可被回寫至快閃存儲器中,以將這些計數(shù)值以非揮發(fā)性的方式保留下來。當要再度開始使用快閃存儲器時,就可將快閃存儲器中記錄的計數(shù)值載入至揮發(fā)性存儲器中所配置的各計數(shù)器,以便能繼續(xù)累計快閃存儲器各數(shù)據(jù)單元的被讀取次數(shù)。本發(fā)明的另一目的是提供一種應用于一快閃存儲器的控制器,包含有一存取模塊、一計數(shù)模塊及一判斷模塊,以利用本發(fā)明技術來克服快閃存儲器的讀取干擾??扉W存儲器中有多個數(shù)據(jù)單元;存取模塊耦接快閃存儲器以存取快閃存儲器。計數(shù)模塊計數(shù)快閃存儲器中該些數(shù)據(jù)單元(分頁)被讀取的次數(shù)并產(chǎn)生多個計數(shù)值,判斷模塊則根據(jù)該些計數(shù)值選擇性地刷新該些數(shù)據(jù)單元中的數(shù)據(jù)。在一實施例中,計數(shù)模塊耦接多個計數(shù)器,記錄該些計數(shù)值;每一數(shù)據(jù)單元對應其中一個計數(shù)器,每一計數(shù)值反應數(shù)據(jù)單元被讀取的次數(shù)。當某一數(shù)據(jù)單元被讀取時,計數(shù)模塊會在該數(shù)據(jù)單元對應的計數(shù)器中將一預設增量累增至該計數(shù)器的計數(shù)值中,以依據(jù)計數(shù)器中的計數(shù)值計數(shù)對應數(shù)據(jù)單元被讀取的次數(shù)。譬如說,快閃存儲器中有M個區(qū)塊,各區(qū)塊中有N個數(shù)據(jù)單元(分頁),每Y個(Y大于或等于1)數(shù)據(jù)單元可共同對應于同一個計數(shù)器,使每一區(qū)塊對應Z個計數(shù)器。存取模塊還耦接一緩沖存儲器,緩沖存儲器的存儲容量關聯(lián)于同一計數(shù)器所對應的Y個數(shù)據(jù)單元。當存取模塊讀取某一數(shù)據(jù)單元時,存取模塊針對該被讀取數(shù)據(jù)單元所對應的計數(shù)器一并讀取與同一計數(shù)器對應的其他(Y-I)個數(shù)據(jù)單元,以將該計數(shù)器對應的Y個數(shù)據(jù)單元的數(shù)據(jù)一起讀入至緩沖存儲器。如此可使同一計數(shù)器對應的Y個數(shù)據(jù)單元的被讀取次數(shù)相同,而緩沖存儲器中的數(shù)據(jù)也可作為快取。當某一計數(shù)器的計數(shù)值大于一臨界值時,判斷模塊使存取模塊刷新該計數(shù)器對應的Y個數(shù)據(jù)單元。判斷模塊會在快取存儲器中分別為各待刷新數(shù)據(jù)單元找出一未被使用的數(shù)據(jù)單元以作為一取代數(shù)據(jù)單元,存取模塊則將該計數(shù)器對應的各數(shù)據(jù)單元的數(shù)據(jù)分別寫入至各對應的取代數(shù)據(jù)單元。譬如說,當某一區(qū)塊對應的Z個計數(shù)器中有某一個計數(shù)器的計數(shù)值大于臨界值時,該計數(shù)器與其他(Z-I)個計數(shù)器所對應的所有數(shù)據(jù)單元(也就是該區(qū)塊中的所有數(shù)據(jù)單元)都將被刷新;判斷模塊會為此一待刷新區(qū)塊找出一個未被使用的區(qū)塊以作為取代區(qū)塊,而存取模塊就可將待刷新區(qū)塊中各個數(shù)據(jù)單元的數(shù)據(jù)重新寫入至取代區(qū)塊中的對應數(shù)據(jù)單元。刷新后,計數(shù)模塊將該些取代數(shù)據(jù)單元對應的Z個計數(shù)器的計數(shù)值重設為一初始值。如前面描述過的,各計數(shù)器可被配置于一揮發(fā)性存儲器中。當控制器要停止使用快閃存儲器時,存取模塊會將各計數(shù)器的計數(shù)值回寫至快閃存儲器中。等要重新開始使用快閃存儲器時,存取模塊就可將快閃存儲器中記錄的計數(shù)值載入至揮發(fā)性存儲器中所配置的計數(shù)器。為讓本發(fā)明的上述和其他目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合附圖,作詳細說明如下。圖1所示是依據(jù)本發(fā)明一實施例而進行數(shù)據(jù)刷新的流程。圖2所示是依據(jù)本發(fā)明一實施例以利用讀取次數(shù)的監(jiān)控觸發(fā)數(shù)據(jù)刷新的流程。圖3所示是依據(jù)本發(fā)明一實施例的電子系統(tǒng)。主要元件符號說明10控制器12存取模塊14計數(shù)模塊16判斷模塊18揮發(fā)性存儲器20快閃存儲器22緩沖存儲器300電子系統(tǒng)100、200流程102-106,202-216步驟B(·)區(qū)塊6Ρ(·)數(shù)據(jù)單元C(.)計數(shù)器具體實施例方式如前面描述的,本發(fā)明針對快閃存儲器被使用的狀況(如各數(shù)據(jù)單元被讀取的次數(shù))適當?shù)匾詳?shù)據(jù)刷新來維護快閃存儲器中的數(shù)據(jù),避免讀取干擾的負面影響??扉W存儲器中可設有M個區(qū)塊,每個區(qū)塊中設置N個數(shù)據(jù)單元(如分頁),每一數(shù)據(jù)單元儲存多個位元的數(shù)據(jù)。在快閃存儲器中,數(shù)據(jù)的抹除與寫入都是以區(qū)塊為單位而進行。也就是說,快閃存儲器不能只抹除某一區(qū)塊中的某些數(shù)據(jù)單元(如分頁)而不抹除該區(qū)塊中的其他數(shù)據(jù)單元;同一區(qū)塊的所有數(shù)據(jù)單元會一并被抹除,數(shù)據(jù)抹除后才能進行數(shù)據(jù)寫入。由于數(shù)據(jù)刷新涉及數(shù)據(jù)重新寫入,故本發(fā)明可用區(qū)塊為單位來進行數(shù)據(jù)刷新。請參考圖1,其所示意的是依據(jù)本發(fā)明一實施例而在快閃存儲器中進行數(shù)據(jù)刷新的流程100。流程100的主要步驟可描述如下步驟102為刷新某一區(qū)塊B(i),開始進行流程100。步驟104在快閃存儲器中找出另一個未被使用的區(qū)塊B(j),并將區(qū)塊B(i)的數(shù)據(jù)復制寫入至區(qū)塊B(j)??扉W存儲器中會保留某些區(qū)塊作為備用的區(qū)塊,這些備用的區(qū)塊不會被計算在快閃存儲器所能提供的存儲空間中。此步驟就是要找出一個備用的區(qū)塊B(j)作為區(qū)塊B(i)的取代區(qū)塊,以便為區(qū)塊B(i)中的數(shù)據(jù)進行數(shù)據(jù)刷新。在一實施例中,步驟104可進行如下先找出一個未被使用的備用區(qū)塊B(j),再將區(qū)塊B(j)抹除,以便將區(qū)塊B(i)中的數(shù)據(jù)寫入至區(qū)塊B(j)中,而原本的區(qū)塊B(i)就可被當作是一個未被使用的備用區(qū)塊。若流程100要再度進行而刷新另一區(qū)塊B(k),上一次被歸為未使用的備用區(qū)塊B(i)可能被選為此次要使用的備用區(qū)塊,因此在進行另一輪的步驟104時,備用區(qū)塊B(i)的數(shù)據(jù)則被抹除,并將區(qū)塊B(k)的數(shù)據(jù)寫入至區(qū)塊B(i),而區(qū)塊B(k)則被歸為未被使用的備用區(qū)塊。然而,本發(fā)明在另一實施例中,步驟104為找出未被使用且已被抹除的備用區(qū)塊B(j),將區(qū)塊B(i)的數(shù)據(jù)寫入復制至區(qū)塊B(j)中,再于原本的區(qū)塊B(i)中進行數(shù)據(jù)抹除,使區(qū)塊B(i)變成一個未被使用且已被抹除的備用區(qū)塊。當流程100為刷新區(qū)塊B(k)而要再度進行步驟104時,區(qū)塊B(k)的數(shù)據(jù)就可直接寫入至區(qū)塊B(i)中,而區(qū)塊B(k)會被抹除,成為未被使用且已被抹除的備用區(qū)塊。無論是那一種實施例,本發(fā)明的步驟104的基本目的都是將區(qū)塊B⑴中的數(shù)據(jù)寫入/復制至一個已被抹除的取代區(qū)塊B(j)中。步驟104之后接著為步驟106:區(qū)塊B(i)的數(shù)據(jù)已被復制至區(qū)塊B(j)中,而區(qū)塊B(J)就可用來取代原本的區(qū)塊B(i)。在一電子系統(tǒng)中應用快閃存儲器時,電子系統(tǒng)的主控端(host)會依據(jù)邏輯地址來定址快閃存儲器,將快閃存儲器的存儲空間定址為不同的邏輯地址;邏輯地址會依照一地址對照表(lookuptable)而被對應至實體地址,而快閃存儲器則依據(jù)實體地址進行數(shù)據(jù)存取。譬如說,邏輯地址可以是依據(jù)扇區(qū)(sector)為單位而劃分快閃存儲器的存儲空間,每個扇區(qū)儲存多個位元/位元組的數(shù)據(jù);而地址對照表則將各扇區(qū)分別對應至快閃存儲器中各實體區(qū)塊的各數(shù)據(jù)單元(分頁)。在步驟106中,就是要修改此地址對照表,將區(qū)塊B(i)原本對應的邏輯地址Add(i)轉移給區(qū)塊B(j),使區(qū)塊B(j)對應區(qū)塊B(i)原本的邏輯地址Add(i),而區(qū)塊B(i)本身則被重新定位成一個備用的區(qū)塊。在流程100完成后,對主控端來說,邏輯地址Add(i)的數(shù)據(jù)沒有改變;但就快閃存儲器而言,邏輯地址Add(i)的數(shù)據(jù)已經(jīng)從原先的區(qū)塊B(i)中被刷新至區(qū)塊B(j)。在流程100進行前,在區(qū)塊B(i)的各浮動間極中的電荷會因讀取而逐漸流失,危及邏輯地址Add(i)中的數(shù)據(jù)安全;但在進行流程100后,足夠的電荷會被注入至區(qū)塊B(j)的對應浮動閘極以重新建立邏輯地址Add(i)的數(shù)據(jù),使邏輯地址Add(i)的數(shù)據(jù)能擁有充分的余裕繼續(xù)因應后續(xù)的讀取。為監(jiān)控快閃存儲器被使用的狀況(如各數(shù)據(jù)單元被讀取的次數(shù))以適當?shù)乩昧鞒?00的數(shù)據(jù)刷新來維護快閃存儲器中的數(shù)據(jù),本發(fā)明可為快閃存儲器中的每Y個數(shù)據(jù)單元(Y大于或等于1)配置一個計數(shù)器,使這Y個數(shù)據(jù)單元對應于同一個計數(shù)器。因此,每一區(qū)塊中的N個數(shù)據(jù)單元會對應至Z個計數(shù)器,Z=N/Y,而Z可以大于或等于1。請參考圖2,其所示意的流程200即為本發(fā)明依據(jù)快閃存儲器被讀取次數(shù)進行數(shù)據(jù)刷新以維護數(shù)據(jù)的一種實施例。流程200的主要步驟可描述如下步驟202開始數(shù)據(jù)讀取。主控端發(fā)出指令以讀取快閃存儲器中的某個(或某些)扇區(qū)。依據(jù)前述的地址對照表,快閃存儲器便可讀取該(些)扇區(qū)對應的實體分頁。步驟204在快閃存儲器讀取各實體的分頁時,針對各分頁對應的計數(shù)器,將一預設增量累計至各對應計數(shù)器的計數(shù)值中。譬如說,若有Y個數(shù)據(jù)單元共用一個計數(shù)器C(k),當這Y個數(shù)據(jù)單元的其中一個(或數(shù)個)被讀取時,就可在計數(shù)器C(k)中累增預設增量,代表此Y個數(shù)據(jù)單元被讀取次數(shù)增加。步驟206判斷計數(shù)器的計數(shù)值是否已經(jīng)大于一臨界值。若是,則進行至步驟210以進行數(shù)據(jù)刷新。若否,則可進行至步驟208。如前所述,一區(qū)塊可以對應Z個計數(shù)器,而在本發(fā)明一實施例中,若某一區(qū)塊B(i)對應的Z個計數(shù)器中有任何一個計數(shù)器的計數(shù)值已經(jīng)超過臨界值,就可進行至步驟210以刷新區(qū)塊B(i)的數(shù)據(jù)。步驟208結束數(shù)據(jù)讀取。等下次主控端再度讀取快閃存儲器時,可由步驟202重新開始流程200。步驟210可依據(jù)流程100進行數(shù)據(jù)刷新。譬如說,若在步驟206中已判定要對區(qū)塊B(i)進行數(shù)據(jù)刷新,就可將區(qū)塊B(i)中各數(shù)據(jù)單元的數(shù)據(jù)復制至另一個備用取代區(qū)塊B(j),并對應修改地址對照表,將區(qū)塊B(i)的邏輯地址Add(i)改對應至區(qū)塊B(j),也就是將區(qū)塊B(i)中各數(shù)據(jù)單元的邏輯地址改指向至區(qū)塊B(j)中的各對應數(shù)據(jù)單元,使區(qū)塊B(J)得以取代區(qū)塊B⑴。步驟212:在步驟210中將原先在區(qū)塊B(i)中的數(shù)據(jù)復制/寫入至區(qū)塊B(j)后,便可將取代區(qū)塊B(j)對應的Z個計數(shù)器統(tǒng)一重設為初始值,代表邏輯地址Add(i)的數(shù)據(jù)又可再度承受后續(xù)的讀取,達到本發(fā)明克服讀取干擾的目的。等下次主控端再度讀取快閃存儲器時,可再由步驟202重新開始流程200。步驟214對快閃存儲器來說,數(shù)據(jù)寫入亦等效于數(shù)據(jù)刷新。當主控端要將數(shù)據(jù)寫入至某一扇區(qū)時,同樣可進行至步驟210,將該扇區(qū)對應的區(qū)塊刷新,并重設對應計數(shù)器的計數(shù)值。譬如說,若該扇區(qū)的數(shù)據(jù)原先儲存于區(qū)塊B(i),便可在步驟210中將區(qū)塊B(i)的數(shù)據(jù)寫入至取代的區(qū)塊B(j),并在步驟212中針對區(qū)塊B(j)所對應的Z個計數(shù)器重設其計數(shù)值。步驟216:在進行步驟202的數(shù)據(jù)讀取時,可針對讀出的數(shù)據(jù)進行錯誤更正碼(ECC,ErrorCorrectionCode)的檢查。若錯誤更正碼反應讀出的數(shù)據(jù)有誤但可予以修復,就可依據(jù)錯誤更正碼計算出正確的數(shù)據(jù),并將正確的數(shù)據(jù)重新回寫至快閃存儲器,等效上也就是進行步驟210的數(shù)據(jù)刷新與步驟212的計數(shù)器重設。值得強調的是,錯誤更正碼修復錯誤的能力是有限的;若未采用本發(fā)明技術,快閃存儲器因持續(xù)讀取而累積的數(shù)據(jù)流失與錯誤終將超過錯誤更正碼的能力所及,導致無法修復的嚴重數(shù)據(jù)錯誤。相較之下,本發(fā)明技術可與錯誤更正碼相輔相成;在同一區(qū)塊被讀取的次數(shù)不斷累積而使數(shù)據(jù)錯誤程度超過錯誤更正碼能修復的程度之前,本發(fā)明就會進行數(shù)據(jù)刷新,以充足的電荷重新建立數(shù)據(jù),中斷數(shù)據(jù)錯誤的累積,使數(shù)據(jù)錯誤程度能被限制在錯誤更正碼所能修復的范圍內(nèi)。本發(fā)明可依據(jù)數(shù)據(jù)錯誤累積的統(tǒng)計特性來設定步驟212中的臨界值(與步驟206中的初始值)。譬如說,若某一快閃存儲器在其浮動閘極中保留電荷的能力較佳,每次讀取所流失的電荷較少,則臨界值與初始值間的差異可加大,代表該快閃存儲器能容忍較多次的讀取次數(shù)累積。相對地,若某一快閃存儲器流失數(shù)據(jù)的程度較為嚴重,其臨界值與初始值間差異則可縮減,使數(shù)據(jù)刷新能較為頻繁地被(步驟21觸發(fā)進行,以克服較為嚴重的讀取干擾。本發(fā)明于圖1與圖2的技術可應用于圖3的電子系統(tǒng)實施例;在此電子系統(tǒng)300中設有一控制器10、一快閃存儲器20、一揮發(fā)性存儲器18與一緩沖存儲器22??扉W存儲器20可以是一非及架構(NAND)的多級單元型(MLC,Multi-LevelCell)快閃存儲器或其他種類的快閃存儲器,以便為電子系統(tǒng)300提供非揮發(fā)性的存儲空間。快閃存儲器20中設有M個區(qū)塊B(0)至B(M-I),每個區(qū)塊B(m)(m=1至(M-I))設有N個數(shù)據(jù)單元(分頁)P(m*N)至P((m+1)*N-1);譬如說,區(qū)塊B(O)中有N個數(shù)據(jù)單元P(O)至P(N-I),區(qū)塊B(M-I)中有N個數(shù)據(jù)單元P((M-I)*N)至P(M*N-1)。揮發(fā)性存儲器18可以是動態(tài)或靜態(tài)隨機存取存儲器,以為電子系統(tǒng)300提供揮發(fā)性的存儲空間,譬如說是為控制器10提供其運作所需的暫存存儲空間。緩沖存儲器22亦為揮發(fā)性存儲器。譬如說,緩沖存儲器22與揮發(fā)性存儲器18可實現(xiàn)于同一揮發(fā)性存儲裝置中;或者,緩沖存儲器22可用暫存器(如先進先出暫存器)獨立實現(xiàn)。控制器10可存取快閃存儲器20,而緩沖存儲器22即用以為快閃存儲器的存取提供緩沖存儲空間。舉例來說,當控制器10讀取快閃存儲器20時,由快閃存儲器20讀出的數(shù)據(jù)可暫存于緩沖存儲器22中;當控制器10要寫入快閃存儲器20前,要寫入至快閃存儲器20的數(shù)據(jù)也可先暫存于緩沖存儲器22。為實現(xiàn)本發(fā)明,控制器10設有一存取模塊12、一計數(shù)模塊14及一判斷模塊16。存取模塊12經(jīng)由適當?shù)慕槊骐娐?未示于第3圖)耦接快閃存儲器20以存取快閃存儲器20,亦耦接揮發(fā)性存儲器18與緩沖存儲器22以進行存取。計數(shù)模塊14計數(shù)各數(shù)據(jù)單元P(O)至P(M*N-1)被讀取的次數(shù),判斷模塊16根據(jù)各數(shù)據(jù)單元被讀取的次數(shù)決定是否刷新各數(shù)據(jù)單元中的數(shù)據(jù)。如圖3所示,計數(shù)模塊14可經(jīng)由存取模塊12存取揮發(fā)性存儲器18,以在揮發(fā)性存儲器18中配置出多個計數(shù)器C(O)至C(M*Z-1)。計數(shù)模塊14耦接這些計數(shù)器,每一計數(shù)器紀錄一計數(shù)值,且每一數(shù)據(jù)單元對應該些計數(shù)器的其中之一。當存取模塊12讀取各數(shù)據(jù)單元時,計數(shù)模塊14在各數(shù)據(jù)單元對應的計數(shù)器中將一預設增量累增至計數(shù)值中,以依據(jù)各計數(shù)器中的計數(shù)值計數(shù)各數(shù)據(jù)單元被讀取的次數(shù)。在圖3的實施例中,每Y個數(shù)據(jù)單元(Y大于或等于1)會被對應同一計數(shù)器;譬如說,數(shù)據(jù)單元P(O)至P(Y-I)對應計數(shù)器C(O),數(shù)據(jù)單元P(m*N)至P(m*N+Y-l)對應計數(shù)器C(m*Z),以此類推。在配置計數(shù)器時,若揮發(fā)性存儲器18中有X位元組(byte)可用以配置計數(shù)器,每個計數(shù)器使用2個位元組(可記錄0到65535的計數(shù)值),則X位元組可配置出(X/2)個計數(shù)器。由于快閃存儲器20的M個區(qū)塊分別對應Z個計數(shù)器,總共使用M*Z個計數(shù)器,故(M*Z)=Χ/2,即Z=ΧΛ2*Μ)。也就是說,根據(jù)揮發(fā)性存儲器18中可用于配置計數(shù)器的位元組總數(shù)X,以及快閃存儲器20中的區(qū)塊總數(shù)Μ,就可計算出各區(qū)塊所能對應到的計數(shù)器數(shù)目Z;連帶地,各計數(shù)器所對應的數(shù)據(jù)單元(分頁)總數(shù)Y就可計算為Y=Ν/Ζ,其中N為一區(qū)塊中的數(shù)據(jù)單元總數(shù)。由于每Y個數(shù)據(jù)單元P(k*Y)至P((k+1)*Y_1)對應同一計數(shù)器C(k)(k=1至(M*Z-1)),緩沖存儲器22的存儲容量可關聯(lián)于一計數(shù)器所對應的Y個數(shù)據(jù)單元。當存取模塊12在數(shù)據(jù)單元P(k*Y)至P((k+1)*Y-1)中讀取某一數(shù)據(jù)單元時,存取模塊12可針對這些數(shù)據(jù)單元所對應的計數(shù)器C(k)一并讀取與同一計數(shù)器C(k)對應的其他(Y-I)個數(shù)據(jù)單元,以將計數(shù)器C(k)對應的Y個數(shù)據(jù)單元的數(shù)據(jù)一起讀入至緩沖存儲器22,并在計數(shù)器C(k)的計數(shù)值上累增一增量值。如此可使同一計數(shù)器對應的Y個數(shù)據(jù)單元的被讀取次數(shù)相同,而緩沖存儲器22中的數(shù)據(jù)也可作為快取。就如圖2中的流程200,當有一計數(shù)器C(k)的計數(shù)值大于臨界值時,判斷模塊16便可使存取模塊12刷新計數(shù)器C(k)對應的各數(shù)據(jù)單元P(k*Y)至P((k+1)*Y-1)。譬如說,判斷模塊16可在數(shù)據(jù)單元P(O)至P(M*N-1)中找出另外Y個未被使用的備用數(shù)據(jù)單元P(k’*Y)至P((k’+1)*Υ_1),作為待刷新數(shù)據(jù)單元P(k*Y)至P((k+1)*Y-1)的取代數(shù)據(jù)單元;而存取模塊12就可將數(shù)據(jù)單元P(k*Y)至P((k+1)*Y-1)的數(shù)據(jù)對應地復制寫入至各取代數(shù)據(jù)單元P(k’*Y)至P((k’+1)*Υ_1),計數(shù)模塊14則將數(shù)據(jù)單元P(k’*Y)至P((k’+1)*Y-1)對應的計數(shù)器C(k’)重新設定為初始值。在實際運作時,存取模塊12會針對數(shù)據(jù)單元P(k*Y)至P((k+1)*Y-1)所屬的區(qū)塊B(i)進行數(shù)據(jù)刷新;也就是說,判斷模塊16會在各區(qū)塊B(O)至B(M-I)中找出一個未被使用的備用區(qū)塊B(j)以取代待刷新區(qū)塊B(i),而存取模塊12便會將整個區(qū)塊B(i)中的所有N個數(shù)據(jù)單元分別復制寫入至取代區(qū)塊B(j)中的N個對應數(shù)據(jù)單元,而計數(shù)模塊14則將區(qū)塊B(j)所對應的Z個計數(shù)器重設為初始值。當控制器10要停止使用快閃存儲器20時,存取模塊12可將各計數(shù)器C(O)至C(M*Z-1)的計數(shù)值回寫至快閃存儲器20中。當控制器10要再度開始使用快閃存儲器20時,存取模塊12便可將快閃存儲器20中記錄的計數(shù)值載入至揮發(fā)性存儲器18中所配置的計數(shù)器C(O)至C(M*Z-1),以持續(xù)監(jiān)控快閃存儲器20被讀取的情形。譬如說,當電子系統(tǒng)300要關機時,就可將揮發(fā)性存儲器18中的計數(shù)值寫入至快閃存儲器20,以利用非揮發(fā)性的方式保留這些計數(shù)值;等電子系統(tǒng)300再度開機時,便可利用這些計數(shù)值為基礎,繼續(xù)累計快閃存儲器20被讀取的次數(shù)?;蛘?,快閃存儲器20可以是一個可插拔的存儲裝置;當要將快閃存儲器20由電子系統(tǒng)300移除時,便可先將計數(shù)值寫入至快閃存儲器20;等快閃存儲器20再度插入至電子系統(tǒng)300時,就可由快閃存儲器20中將原先保留的計數(shù)值載入至揮發(fā)性存儲器18的對應計數(shù)器中。在控制器10中,計數(shù)模塊14與判斷模塊16的功能可由控制器10中的微處理核心(未示于圖幻執(zhí)行軟件或固體程序碼而實現(xiàn)。緩沖存儲器22及/或揮發(fā)性存儲器18可和控制器10—起整合于同一控制芯片中。或者,控制器10、緩沖存儲器22及/或揮發(fā)性存儲器18可以是不同的芯片。總結來說,本發(fā)明可依據(jù)快閃存儲器被使用的情形(被讀取的次數(shù))適當?shù)厮⑿驴扉W存儲器中的數(shù)據(jù),以維護數(shù)據(jù)的完整與正確。在某些視訊電子系統(tǒng)(譬如說是數(shù)位相框)中,會因為畫面更新而頻繁地讀取快閃存儲器中的視訊數(shù)據(jù),使此種電子系統(tǒng)對快閃存儲器的讀取干擾十分敏感。若在此種電子系統(tǒng)中應用本發(fā)明,就可以克服快閃存儲器的讀取干擾,有效避免讀取次數(shù)累積所導致的數(shù)據(jù)錯誤與流失。雖然本發(fā)明已以較佳實施例揭示如上,然其并非用以限定本發(fā)明,任何熟悉本
技術領域:
者,在不脫離本發(fā)明的精神和范圍內(nèi),當可作些許的更動與潤飾,因此本發(fā)明的保護范圍當由權利要求書界定。權利要求1.一種應用于一快閃存儲器的方法,該快閃存儲器設有多個數(shù)據(jù)單元,該方法包含計數(shù)該些數(shù)據(jù)單元被讀取的次數(shù)以產(chǎn)生多個計數(shù)值;以及根據(jù)該些計數(shù)值,決定是否刷新該些數(shù)據(jù)單元中的數(shù)據(jù)。2.如權利要求1所述的方法,其特征在于,還包含配置多個計數(shù)器,其記錄該些計數(shù)值,并使每一該數(shù)據(jù)單元對應該些計數(shù)器的其中之當各該數(shù)據(jù)單元被讀取時,在各該數(shù)據(jù)單元對應的該計數(shù)器中將一預設增量累增至該計數(shù)值中;以及依據(jù)該些計數(shù)器中的這些計數(shù)值計數(shù)該些數(shù)據(jù)單元被讀取的次數(shù)。3.如權利要求2所述的方法,其特征在于,當配置該些計數(shù)器時,使多個該數(shù)據(jù)單元對應于同一個計數(shù)器。4.如權利要求3所述的方法,其特征在于,還包含當要讀取該些數(shù)據(jù)單元的其中之一時,針對該被讀取數(shù)據(jù)單元對應的該計數(shù)器一并讀取與同一該計數(shù)器對應的其他該數(shù)據(jù)單元。5.如權利要求2所述的方法,其特征在于,還包含當該些計數(shù)器的其中之一的該計數(shù)值大于一臨界值時,刷新該計數(shù)器對應的各該數(shù)據(jù)單元。6.如權利要求5所述的方法,其特征在于,當要刷新該計數(shù)器對應的各該數(shù)據(jù)單元時,在該快閃存儲器中為各該待刷新數(shù)據(jù)單元找出一未被使用的對應數(shù)據(jù)單元以作為一取代數(shù)據(jù)單元,并將該計數(shù)器對應的各該數(shù)據(jù)單元的數(shù)據(jù)分別寫入至各取代數(shù)據(jù)單元。7.如權利要求5所述的方法,其特征在于,還包含當刷新該計數(shù)器對應的各該數(shù)據(jù)單元時,將各該數(shù)據(jù)單元對應的該計數(shù)器的該計數(shù)值設為一初始值。8.如權利要求2所述的方法,其特征在于,該快閃存儲器包含多個區(qū)塊,各區(qū)塊中有多個該數(shù)據(jù)單元,而該方法還包含當配置該些計數(shù)器時,為每一該區(qū)塊配置多個對應的計數(shù)器,使各該區(qū)塊中的每一該數(shù)據(jù)單元對應該些計數(shù)器的其中之一。9.如權利要求8所述的方法,其特征在于,還包含當每一該區(qū)塊對應的該些計數(shù)器的其中之一的計數(shù)值大于一臨界值時,刷新該區(qū)塊。10.如權利要求8所述的方法,其特征在于,當刷新該區(qū)塊時,在該快閃存儲器中找出一未被使用的對應區(qū)塊作為一取代區(qū)塊,并將該區(qū)塊中各該數(shù)據(jù)單元的數(shù)據(jù)分別寫入至該取代區(qū)塊中的各該數(shù)據(jù)單元。11.如權利要求10所述的方法,其特征在于,還包含刷新該區(qū)塊時,將該取代區(qū)塊對應的該些計數(shù)器的計數(shù)值設為一初始值。12.如權利要求2所述的方法,其特征在于,當配置該些計數(shù)器時,于一揮發(fā)性存儲器中配置該些計數(shù)器;其中,當要停止使用該快閃存儲器時,將該些計數(shù)器的該計數(shù)值回寫至該快閃存儲器中。13.如權利要求12所述的方法,其特征在于,還包含當要開始使用該快閃存儲器時,將該快閃存儲器中記錄的該計數(shù)值載入至該揮發(fā)性存儲器中所配置的該些計數(shù)器。14.一種應用于一快閃存儲器的控制器,該快閃存儲器設有多個數(shù)據(jù)單元以儲存數(shù)據(jù),而該控制器包含有一存取模塊,耦接于該快閃存儲器,以存取該快閃存儲器;一計數(shù)模塊,計數(shù)該些數(shù)據(jù)單元被讀取的次數(shù)以產(chǎn)生多個計數(shù)值;以及一判斷模塊,根據(jù)該些計數(shù)值以選擇性地刷新該些數(shù)據(jù)單元中的數(shù)據(jù)。15.如權利要求14所述的控制器,其特征在于,該計數(shù)模塊耦接多個計數(shù)器,記錄該些計數(shù)值,且每一該數(shù)據(jù)單元對應該些計數(shù)器的其中之一;每一該計數(shù)值反應這些數(shù)據(jù)單元被讀取的次數(shù)。16.如權利要求15所述的控制器,其特征在于,該計數(shù)模塊將多個該數(shù)據(jù)單元對應于該些計數(shù)器中的同一個。17.如權利要求16所述的控制器,其特征在于,該存取模塊還更耦接一緩沖存儲器,該緩沖存儲器的存儲容量關聯(lián)于同一該計數(shù)器所對應的該多個數(shù)據(jù)單元;當該存取模塊讀取該些數(shù)據(jù)單元的其中之一時,該存取模塊針對該被讀取數(shù)據(jù)單元所對應的該計數(shù)器一并讀取與同一該計數(shù)器對應的其他該數(shù)據(jù)單元,以將該計數(shù)器對應的該些數(shù)據(jù)單元的數(shù)據(jù)讀入至該緩沖存儲器。18.如權利要求15所述的控制器,其特征在于,當該些計數(shù)器的其中之一的計數(shù)值大于一臨界值時,該判斷模塊使該存取模塊刷新該計數(shù)器對應的各該數(shù)據(jù)單元。19.如權利要求18所述的控制器,其特征在于,當該存取模塊刷新該計數(shù)器對應的各該數(shù)據(jù)單元時,該判斷模塊在該快取存儲器中分別為各該待刷新數(shù)據(jù)單元找出一未被使用的數(shù)據(jù)單元以作為一取代數(shù)據(jù)單元,而該存取模塊將該計數(shù)器對應的各該數(shù)據(jù)單元的數(shù)據(jù)分別寫入至各該對應的取代數(shù)據(jù)單元。20.如權利要求18所述的控制器,其特征在于,當該存取模塊刷新該計數(shù)器對應的各該數(shù)據(jù)單元時,該計數(shù)模塊將各該取代數(shù)據(jù)單元對應的該計數(shù)器的該計數(shù)值設為一初始值。21.如權利要求15所述的控制器,其特征在于,該快閃存儲器包含多個區(qū)塊,各區(qū)塊中有多個該數(shù)據(jù)單元,而每一該區(qū)塊對應于多個對應的計數(shù)器,使各該區(qū)塊中的每一該數(shù)據(jù)單元對應該些計數(shù)器的其中之一。22.如權利要求21所述的控制器,其特征在于,當每一該區(qū)塊對應的該些計數(shù)器的其中之一的計數(shù)值大于一臨界值時,該存取模塊刷新該區(qū)塊。23.如權利要求21所述的控制器,其特征在于,當該存取模塊刷新該區(qū)塊時,該判斷模塊在該快閃存儲器中為該待刷新區(qū)塊找出一未被使用的對應區(qū)塊作為取代區(qū)塊,而該存取模塊將該待刷新區(qū)塊中各該數(shù)據(jù)單元的數(shù)據(jù)分別寫入至該取代區(qū)塊中的各該數(shù)據(jù)單元。24.如權利要求23所述的控制器,其特征在于,當該存取模塊刷新該區(qū)塊時,該計數(shù)模塊將該取代區(qū)塊對應的該些計數(shù)器的計數(shù)值設為一初始值。全文摘要本發(fā)明涉及一種運用于快閃存儲器的方法與相關控制器??扉W存儲器中設有多個數(shù)據(jù)單元;當讀取該快閃存儲器時,可依據(jù)各數(shù)據(jù)單元被讀取的次數(shù)決定是否刷新數(shù)據(jù)單元中的數(shù)據(jù)。文檔編號G11C16/06GK102376362SQ201010267969公開日2012年3月14日申請日期2010年8月24日優(yōu)先權日2010年8月24日發(fā)明者周呈威,陳謙毅申請人:晨星半導體股份有限公司,晨星軟件研發(fā)(深圳)有限公司