非揮發性存儲器裝置及其操作方法【專利摘要】一種非揮發性存儲器裝置及其操作方法。非揮發性存儲器裝置包括非揮發性儲存電路、主存儲器以及控制器。邏輯塊地址群組的每一個包括多個邏輯塊地址。這些邏輯塊地址群組的每一個被分配有群組讀取計數值。這些群組讀取計數值的調整是由主機的讀指令所觸發。當這些群組讀取計數值中的一個讀取計數值超出預設范圍時,控制器對讀取計數值的對應邏輯塊地址群組所對應的非揮發性儲存電路的非揮發性儲存塊進行掃描操作,以檢查錯誤比特數量。控制器依據掃描操作的結果而決定是否將對應邏輯塊地址群組所對應的非揮發性儲存塊進行儲存塊數據搬移操作。【專利說明】非揮發性存儲器裝置及其操作方法
技術領域:
[0001]本發明是有關于一種存儲器裝置,且特別是有關于一種非揮發性存儲器裝置及其操作方法。【
背景技術:
】[0002]—般固態硬盤(solidstatedisk/drive,SSD)或隨身盤(memorydisk)在操作過程中,需要使用映射表(mappingtable)來記錄邏輯地址(logicaladdress)至物理地址(physicaladdress)的映射關系(或轉換關系)。所述邏輯地址可能包括邏輯塊地址(logicalblockaddress,LBA)及/或邏輯頁地址(logicalpageaddress),而所述物理地址可能包括物理塊地址(physicalblockaddress,PBA)及/或物理頁地址(physicalpageaddress)。主機(host)通常依據頁面映射(PageMapping)、區塊映射(BlockMapping)、置換區塊(ReplacementBlock)或日志區塊(LogBlock)等模式對固態硬盤或隨身盤內的數據進行存取。盡管不同模式對應的映射表所存儲的內容各不相同,但當固態硬盤或隨身盤接收主機的存取指令時,固態硬盤或隨身盤均須依據映射表而將該存取指令的邏輯地址轉換為固態硬盤或隨身盤中快閃存儲器(FLASHmemory)的物理地址,然后對轉換獲得的物理地址所指的物理存儲器(物理塊或物理頁)執行該存取指令。[0003]在不斷執行主機的眾多存取指令的過程中,邏輯地址與物理地址的對應關系可能會被對應地改變,因此映射表的內容可能會被不斷地更新。通常映射表被儲存在動態隨機存取存儲器(dynamicrandomaccessmemory,DRAM)中,以便加快存取速度。當固態硬盤或隨身盤進行斷電(power-off)程序時,映射表會被保存于固態硬盤或隨身盤內的快閃存儲器中,以確保不會因為斷電而佚失了映射表的內容。當供電給固態硬盤或隨身盤時,固態硬盤會進行初始化程序。于初始化程序中,固態硬盤或隨身盤可以從快閃存儲器讀出映射表,以及將該映射表寫回動態隨機存取存儲器。[0004]—般而言,當快閃存儲器的某一個存儲單元(memorycell)被讀取時,快閃存儲器的讀取方式會導致在同一區塊中相近于所述某一個存儲單元的其他存儲單元的比特數據可能發生非預期地改變。這即是所謂的數據讀取干擾(datareaddisturbance)。對于快閃存儲器的一個物理頁而言,在多次對此物理頁進行讀取操作的情形下,隨著時間的增加(或隨著讀取次數的增加),此物理頁發生錯誤的比特數量隨之增加。一般而言,快閃存儲器配置有錯誤檢查和糾正(ErrorCheckingandCorrecting,ECC)機制。當數據中每單位比特量(例如IKBytes,或一個物理頁的比特數量)發生錯誤的比特數量小于某個容忍數量時,ECC機制可以修正這些發生錯誤的比特,因此快閃存儲器可以提供正確數據給主機。當數據中每單位比特量發生錯誤的比特數量大于所述某個容忍數量時,則所述ECC機制就無法修正這些發生錯誤的比特。錯誤比特太多而無法被ECC機制修復,此表示數據遺失。【
發明內容】[0005]本發明提供一種非揮發性存儲器裝置及其操作方法,以彈性決定掃描操作的時機,以及依據掃描操作的結果而動態決定是否進行儲存塊數據搬移操作,以避免數據遺失。[0006]本發明的實施例提供一種非揮發性存儲器裝置,包括非揮發性儲存電路、主存儲器以及控制器。非揮發性儲存電路具有由多個物理塊地址所定址的多個非揮發性儲存塊。主存儲器用以存放映射表,其中映射表用以記錄多個邏輯塊地址與這些物理塊地址的轉換關系。控制器耦接至主存儲器與非揮發性儲存電路。控制器將這些邏輯塊地址分群為多個邏輯塊地址群組,而這些邏輯塊地址群組的每一個包括多個邏輯塊地址。這些邏輯塊地址群組的每一個被分配有一個群組讀取計數值。這些群組讀取計數值的調整是由主機的讀指令所觸發。當這些群組讀取計數值中的一個讀取計數值超出預設范圍時,控制器對讀取計數值所對應的對應邏輯塊地址群組的邏輯塊地址所對應的非揮發性儲存塊進行掃描操作,以檢查錯誤比特數量。控制器依據掃描操作的結果而決定是否將對應邏輯塊地址群組的邏輯塊地址所對應的非揮發性儲存塊的其中一個儲存塊進行儲存塊數據搬移操作。[0007]本發明的實施例提供一種非揮發性存儲器裝置的操作方法。此操作方法包括:配置非揮發性儲存電路,其中非揮發性儲存電路具有由多個物理塊地址所定址的多個非揮發性儲存塊;配置主存儲器以存放映射表,其中映射表用以記錄多個邏輯塊地址與這些物理塊地址的轉換關系;由控制器將這些邏輯塊地址分群為多個邏輯塊地址群組,其中這些邏輯塊地址群組的每一個包括多個邏輯塊地址,以及這些邏輯塊地址群組的每一個被分配有一個群組讀取計數值;依據主機的讀指令而觸發這些群組讀取計數值的調整;當這些群組讀取計數值中的一個讀取計數值超出預設范圍時,由控制器對讀取計數值所對應的對應邏輯塊地址群組的邏輯塊地址所對應的非揮發性儲存塊進行掃描操作,以檢查錯誤比特數量;以及由控制器依據掃描操作的結果而決定是否將對應邏輯塊地址群組的邏輯塊地址所對應的非揮發性儲存塊的其中一個儲存塊進行儲存塊數據搬移操作。[0008]基于上述,本發明實施例所述非揮發性存儲器裝置及其操作方法可以記錄多個邏輯塊地址群組各自的群組讀取計數值。控制器可以依照這些群組讀取計數值來彈性決定掃描操作的時機。依據掃描操作的結果,控制器可以動態決定是否進行儲存塊數據搬移操作,以避免數據遺失。[0009]為讓本發明的上述特征和優點能更明顯易懂,下文特舉實施例,并配合所附附圖作詳細說明如下。【附圖說明】[0010]圖1是依照本發明實施例說明一種非揮發性存儲器裝置的電路方塊示意圖。[0011]圖2是依照本發明一實施例說明圖1所示非揮發性存儲器裝置的操作方法示意圖。[0012]圖3是依照本發明另一實施例說明圖1所示非揮發性存儲器裝置的操作方法示意圖。[0013]圖4是依照本發明一實施例說明儲存塊數據搬移操作的操作方法示意圖。[0014]圖5是依照本發明一實施例說明圖1所示非揮發性儲存電路的部份非揮發性儲存塊(物理塊)的示意圖。[0015]附圖元件說明[0016]10:主機[0017]100:非揮發性存儲器裝置[0018]110:控制器[0019]120:主存儲器[0020]130:非揮發性儲存電路[0021]Block_A、Block_B、Block_C:非揮發性儲存塊[0022]MT:映射表[0023]Page_A0、Page_Al、Page_A2、Page_A3、Page_A255、Page_B0、Page_Bl、Page_B2、Page_B3、Page_B255、Page_C0、Page_Cl、Page_C2、Page_C3、Page_C255:物理頁[0024]S210?S250、S251?S255、S310?S320、S410?S420:步驟[0025]SMT_l、SMT_2、SMT_n:子映射表【具體實施方式】[0026]在本申請說明書全文(包括權利要求)中所使用的「耦接(或連接)」一詞可指任何直接或間接的連接手段。舉例而言,若文中描述第一裝置耦接(或連接)于第二裝置,則應該被解釋成該第一裝置可以直接連接于該第二裝置,或者該第一裝置可以通過其他裝置或某種連接手段而間接地連接至該第二裝置。另外,凡可能之處,在附圖及實施方式中使用相同標號的元件/構件/步驟代表相同或類似部分。不同實施例中使用相同標號或使用相同用語的元件/構件/步驟可以相互參照相關說明。[0027]圖1是依照本發明實施例說明一種非揮發性存儲器(non-volatilememory,NVM)裝置100的電路方塊示意圖。非揮發性存儲器裝置100耦接至主機10。非揮發性存儲器裝置100的例子包括個人計算機存儲卡國際協會(PersonalComputerMemoryCardInternat1nalAssociat1n,PCMCIA)卡、小型快閃(compactflash,CF)卡、智能媒體卡(smartmediacard,SM,SMC)、隨身盤(memorystick)、多媒體卡(multimediacard’MMC、RS-MMC、MMC-micro)、安全數字卡(securitycard,SD,miniSD,microSD,SDHC)、通用快閃儲存(universalflashstorage,UFS)裝置、固態硬盤(solidstatedisk/drive,SSD)等等。依照不同的應用情境,非揮發性存儲器裝置100可以儲存音頻、影像及/或視頻數據。[0028]主機10的例子包括計算機、手持式電子裝置或其他電子裝置。例如,主機10可以是個人計算機、手持式計算機、個人數字助理(personaldigitalassistant,PDA)、可攜式媒體播放器(portablemediaplayer,PMP)、MP3播放器、智能手機(smartphone)、數字相機、攝錄機(camcorders)、錄音機、游戲機、傳真機、掃描器、打印機等等。[0029]主機10與非揮發性存儲器裝置100可利用任一種標準化接口予以有效地相互連接。例如,所述標準化接口包括小型計算機系統接口(smallcomputersysteminterface,SCSI)、串行連接小型計算機系統接口(SerialAttachedSCSI,SAS)、增強型小型磁盤接口(EnhancedSmallDiskInterface,ESDI)、串行先進技術連接(serialadvancedtechnologyattachment,SATA)、快速夕卜圍元件互連(peripheraIcomponentinterconnectexpress,PC1-express)、集成驅動電子裝置(integrateddriveelectronics,IDE)接口、通用串行總線(universalserialbus,USB)、雷電(Thunderbolt)接口或其他接口。本發明并未局限于主機10與非揮發性存儲器裝置100之間的接口結構。[0030]非揮發性存儲器裝置100包括控制器110、主存儲器120以及非揮發性儲存電路130。控制器110通過上述標準化接口耦接至主機10。控制器110耦接至主存儲器120與非揮發性儲存電路130。主存儲器120的例子包括動態隨機存取存儲器(dynamicrandomaccessmemory,DRAM)、靜態隨機存取存儲器(staticrandomaccessmemory,SRAM)或是其他揮發性存儲器(volatilememory)。非揮發性儲存電路130舉例而言是快閃存儲器(FLASHmemory)。非揮發性儲存電路130具有由多個物理塊地址所定址的多個非揮發性儲存塊。主存儲器120具有映射表(mappingtable)MT,其中映射表MT用以記錄多個邏輯塊地址與非揮發性儲存電路130的物理塊地址的轉換關系。非揮發性存儲器裝置100的控制器110依據主存儲器120內的映射表MT,將主機10的存取指令(例如「寫」指令、「讀」指令或是其他指令)的邏輯地址轉換為非揮發性儲存電路130的物理地址。[0031]由于數據讀取干擾(datareaddisturbance)的影響,在多次對快閃存儲器(非揮發性儲存電路130)的某一物理頁/物理塊進行讀取操作的情形下,隨著時間的增加(或隨著讀取次數的增加),此物理頁/物理塊發生錯誤的比特數量隨之增加。當一個物理頁中發生錯誤的比特數量小于某個容忍數量時,錯誤檢查和糾正(ErrorCheckingandCorrecting,ECC)機制可以修正這些發生錯誤的比特,因此非揮發性儲存電路130可以提供正確數據給主機10。當一個物理頁中發生錯誤的比特數量大于所述某個容忍數量時,則所述ECC機制就無法修正這些發生錯誤的比特。錯誤比特太多而無法被ECC機制修復,將造成數據的遺失。因此必須有一種機制,在物理頁的數據還能被ECC機制修正回來的情況下,SP時地將錯誤比特很多的物理頁(或物理塊)的數據搬移/復制到另一個物理頁(或物理塊)。[0032]圖2是依照本發明一實施例說明圖1所示非揮發性存儲器裝置100的操作方法示意圖。請參照圖1與圖2,于步驟S210中配置非揮發性儲存電路130、主存儲器120與控制器110于非揮發性存儲器裝置100。控制器110進行步驟S220,以便將主機端的多個邏輯地址(例如,邏輯塊地址(logicalblockaddress,LBA))分群為多個邏輯塊地址群組,其中這些邏輯塊地址群組的每一個包括多個邏輯塊地址。例如,假設共有10000個邏輯塊地址,則步驟S220可以將這些邏輯地址分群為400個邏輯塊地址群組,其中每一個邏輯塊地址群組各自具有25個邏輯塊地址。上述邏輯塊地址的數量以及邏輯塊地址群組的數量,可以依據實際設計需求而決定。[0033]上述分群的方式,可以依據實際設計需求而決定。在一些實施例中,邏輯塊地址的分群方式可以依照邏輯塊地址值的順序。例如,假設每一個邏輯塊地址群組各自具有30個邏輯地址,則步驟S220可以將邏輯塊地址O?29分群為邏輯塊地址群組0,將邏輯塊地址30?59分群為邏輯塊地址群組I,其余依此類推。在另一些實施例中,基于平均磨損(wear-1eveIing)的考量或是其他考量,步驟S220可以用不連續的方式對邏輯塊地址進行分群。例如,假設將10000個邏輯塊地址分群為400個邏輯塊地址群組且每一個邏輯塊地址群組各自具有25個邏輯塊地址,則步驟S220可以將邏輯塊地址O、400、800、1200、1600……分群為第I個邏輯塊地址群組,將邏輯塊地址1、401、801、1201、1601……分群為第2個邏輯塊地址群組,其余依此類推,最后將邏輯塊地址399、799、1199、1599、1999……分群為第400個邏輯塊地址群組。在其他實施例,步驟S220可以用散列函數(hashfunct1n)對邏輯塊地址進行分群。[0034]在一些實施例中,控制器110還可以在步驟S220中將在主存儲器120內的映射表MT分割為多個子映射表,例如分割為圖1所示的η個子映射表SMT_1、SMT_2、…、SMT_n。也就是說,將主機10的邏輯塊地址分為多個群組,且依據這些群組將映射表MT分割為多個子映射表SMT_1?SMT_n。這些子映射表SMT_1?SMT_n的邏輯塊地址不重迭,對應的物理塊地址(physicalblockaddress,PBA)也不重迭。依據步驟S220將邏輯塊地址分群后,每個子映射表對應的邏輯塊地址可以是固定的,而對應的物理塊地址是動態分配的。非揮發性儲存電路130中所有尚未被分配的自由塊(FreeBlock)被放在一個自由塊池(FreeBlockPool)中。當某個子映射表需要額外的非揮發性儲存塊(物理塊)時,控制器110可以從自由塊池申請一個自由塊給所述某個子映射表。前述從自由塊池申請一個自由塊,可以根據平均磨損(Wearleveling)的策略進行分配。[0035]這些邏輯塊地址群組(或這些子映射表SMTj?SMT_n)的每一個被分配有一個群組讀取計數值。例如,第一個邏輯塊地址群組(或子映射表SMT_1)被分配有一個群組讀取計數值RC_1,第二個邏輯塊地址群組(或子映射表SMT_2)被分配有一個群組讀取計數值RC_2,而第η個邏輯塊地址群組(或子映射表SMT_n)被分配有一個群組讀取計數值RC_n。這些群組讀取計數值RC_1?1^_11的初始值可以依照設計需求來決定。舉例來說,在一些實施例中,這些群組讀取計數值RC_1?1^_11的初始值可以是_15、0、10或是其他實數。這些群組讀取計數值RCj?RC_n*別表示這些邏輯塊地址群組(或這些子映射表SMT_1?SMT_n)被讀取數據的次數。控制器110可以依據主機10的「讀」指令而觸發這些群組讀取計數值RC_1?1^_11的調整(步驟S230)。[0036]在一些實施例中,當主機10發出「讀」指令給控制器110時,控制器110依照主存儲器120的映射表MT將此「讀」指令的目標邏輯塊地址轉換為目標物理塊地址,然后依照此「讀」指令存取非揮發性儲存電路130中由目標物理塊地址所定址的非揮發性儲存塊(物理塊)。在非揮發性儲存塊(物理塊)完成數據讀取操作后,控制器110可以在步驟S230中將這些群組讀取計數值RC_1?RC_n中所述目標邏輯塊地址所對應的讀取計數值增加一個步階值。所述步階值可以視設計需求來決定。舉例來說,所述步階值可以是I或其他實數。[0037]舉例來說,假設主機10所發出「讀」指令的邏輯塊地址屬于第η個邏輯塊地址群組(或子映射表SMT_n),因此控制器110依照主存儲器120的子映射表SMT_n將此「讀」指令的目標邏輯塊地址轉換為目標物理塊地址,然后依照此「讀」指令存取非揮發性儲存電路130中由目標物理塊地址所定址的非揮發性儲存塊(物理塊)。在非揮發性儲存塊(物理塊)完成數據讀取操作后,控制器110可以將所述目標邏輯塊地址所對應的群組讀取計數值RC_n增加一個步階值。[0038]于步驟S240中,控制器110可以檢查這些群組讀取計數值RCj?RC_n是否超出預設范圍。所述預設范圍可以視設計需求來決定。若這些群組讀取計數值RC_1?RC_n都沒有超出預設范圍,則控制器110可以回到步驟S230,以便等待主機10所發出的下一個「讀」指令。當這些群組讀取計數值RC_1?RC_n*的一個讀取計數值超出預設范圍時,控制器110可以進行步驟S250,以對該讀取計數值所對應的某一個對應邏輯塊地址群組的邏輯塊地址所對應的非揮發性儲存塊進行掃描操作,以檢查錯誤比特數量。舉例來說(但不限于此),控制器110可以在步驟S240中比較這些群組讀取計數值RC_1?RC_n與一個閾值,以判斷這些群組讀取計數值RC_1?RC_n與該預設范圍的關系。所述閾值可以視設計需求來決定。假設控制器110發現第I個邏輯塊地址群組(或子映射表SMT_1)的群組讀取計數值RCj大于該閾值,因此控制器110可以對群組讀取計數值RCj所對應的第I個邏輯塊地址群組(或子映射表SMT_1)的邏輯塊地址所對應的一個或多個非揮發性儲存塊(非揮發性儲存電路130的物理塊)進行掃描操作,以檢查錯誤比特數量。[0039]步驟S230與步驟S240的實現方式不應受限于上述。例如,在另一些實施例中,當主機10發出「讀」指令給控制器110時,控制器110依照主存儲器120的映射表MT將此「讀」指令的目標邏輯塊地址轉換為目標物理塊地址,然后依照此「讀」指令存取非揮發性儲存電路130中由目標物理塊地址所定址的非揮發性儲存塊(物理塊)。在非揮發性儲存塊(物理塊)完成數據讀取操作后,控制器110可以在步驟S230中將這些群組讀取計數值RC_1?RC_n*所述目標邏輯塊地址所對應的讀取計數值減少一個步階值。舉例來說,假設主機10所發出「讀」指令的邏輯塊地址屬于第η個邏輯塊地址群組(或子映射表SMT_n),因此控制器110依照主存儲器120的子映射表SMT_n將此「讀」指令的目標邏輯塊地址轉換為目標物理塊地址,然后依照此「讀」指令存取非揮發性儲存電路130中由目標物理塊地址所定址的非揮發性儲存塊(物理塊)。在非揮發性儲存塊(物理塊)完成數據讀取操作后,控制器110可以將所述目標邏輯塊地址所對應的群組讀取計數值%_11減少一個步階值。于步驟S240中,控制器110可以比較這些群組讀取計數值RC_1?RC_n與一個閾值,以判斷這些群組讀取計數值RC_1?RC_n與該預設范圍的關系。所述閾值可以視設計需求來決定。假設控制器110發現第I個邏輯塊地址群組(或子映射表SMT_1)的群組讀取計數值RC_1小于該閾值,因此控制器110可以對群組讀取計數值RC_1所對應的第I個邏輯塊地址群組(或子映射表SMT_1)的邏輯塊地址所對應的一個或多個非揮發性儲存塊(非揮發性儲存電路130的物理塊)進行掃描操作(步驟S250),以檢查錯誤比特數量。[0040]控制器110還可以在步驟S250中依據該掃描操作的結果而決定是否將對應邏輯塊地址群組的邏輯塊地址所對應的一個或多個非揮發性儲存塊進行一儲存塊數據搬移操作。舉例來說,假設該掃描操作的結果表示群組讀取計數值RC_1所對應的第I個邏輯塊地址群組(子映射表SMT_1)所對應的一個非揮發性儲存塊(非揮發性儲存電路130的某一個物理塊,在此稱為可疑儲存塊)的錯誤比特數量太多。控制器110可以在步驟S250中將第I個邏輯塊地址群組(子映射表SMT_1)所對應的所述可疑儲存塊進行儲存塊數據搬移操作。控制器110可以將所述可疑儲存塊的數據搬移至一個閑置儲存塊(亦即從自由塊池申請一個自由塊),以及控制器110可以將所述可疑儲存塊所對應的群組讀取計數值RC_1重置為初始值。所述初始值可以視設計需求來決定。舉例來說,所述初始值可以是O或其他實數。在將可疑儲存塊的數據搬移至閑置儲存塊后,子映射表SMT_1被更新,以便將所述閑置儲存塊取代所述可疑儲存塊,并將所述可疑儲存塊釋放回自由塊池中。[0041]因此,本實施例所述非揮發性存儲器裝置100及其操作方法可以記錄多個邏輯塊地址群組(或子映射表SMT_1?SMT_n)各自的群組讀取計數值RC_1?RC_n。這些群組讀取計數值RC_1?RC_n可以表示這些邏輯塊地址群組被進行讀取操作的次數。在長時間(多次)對一個物理塊進行讀取操作的情形下,隨著時間(讀取次數)的增加,此物理塊發生錯誤的比特數量隨之增加。控制器110可以依照這些群組讀取計數值RC_1?RC_n來彈性決定掃描操作的時機,以便適時地檢查對應儲存塊(物理塊)發生錯誤的比特數量。依據掃描操作的結果,控制器可以動態決定是否進行儲存塊數據搬移操作,以避免儲存塊(物理塊)數據遺失。[0042]圖3是依照本發明另一實施例說明圖1所示非揮發性存儲器裝置100的操作方法示意圖。一般而言,控制器110在處理完主機10的目前指令后,控制器110會進入閑置期間來等待主機10的下一個指令。請參照圖1與圖3,在進入閑置期間后,控制器110可以進行步驟S310,以便從多個邏輯塊地址群組(或子映射表SMT_1?SMT_n)各自的群組讀取計數值RC_1?RC_n中找出最大者。于步驟S320中,控制器110可以檢查步驟S310所找出的最大讀取計數值是否超出閾值。所述閾值可以視設計需求來決定。當步驟S310所找出的最大讀取計數值沒有超出閾值時,結束圖3所示流程(等待下一個閑置期間)。當步驟S310所找出的最大讀取計數值超出閾值時,表示此最大讀取計數值所對應的一個或多個非揮發性儲存塊(非揮發性儲存電路130的物理塊)的數據曾被多次讀取。儲存在物理塊的數據曾被多次讀取,意味著此物理塊發生錯誤的比特數量可能太多。因此,控制器110可以進行步驟S250,以對步驟S310所找出的最大讀取計數值所對應的某一個對應邏輯塊地址群組所對應的非揮發性儲存塊(非揮發性儲存電路130的物理塊)進行掃描操作。掃描操作可以進一步確認非揮發性儲存塊(非揮發性儲存電路130的物理塊)的錯誤比特數量。圖3所示步驟S320與步驟S250可以參照圖2所示步驟S240與步驟S250的相關說明而類推。[0043]于圖3所示實施例中,步驟S250所述掃描操作包括子步驟S251?S255。于步驟S251中,控制器110可以將對應邏輯塊地址群組(亦即步驟S310所找出最大讀取計數值所對應的群組)所對應的非揮發性儲存塊(非揮發性儲存電路130的物理塊)進行粗略掃描。于步驟S252中,控制器110可以從粗略掃描的結果而獲知物理頁的錯誤比特數量是否大于第一閾值。所述第一閾值可以視設計需求來決定。舉例來說(但不限于此),假設步驟S310所找出最大讀取計數值是群組讀取計數值RC_1,因此控制器110可以于步驟S251中隨機地(或依某一規則)從第一個邏輯塊地址群組(或子映射表SMT_1)所對應的多個非揮發性儲存塊(非揮發性儲存電路130的物理塊)中選擇一個物理頁,以及檢查此經選擇物理頁的錯誤比特數量。當此經選擇物理頁的錯誤比特數量小于第一閾值時,圖3所示流程會被結束(等待下一個閑置期間)。當此經選擇物理頁的錯誤比特數量大于第一閾值時,表示此經選擇物理頁所屬的非揮發性儲存塊(非揮發性儲存電路130的物理塊)是可疑儲存塊,因此控制器110可以進行步驟S253以進行細掃描。[0044]控制器110可以依照粗略掃描的結果來決定是否將對應邏輯塊地址群組所對應的非揮發性儲存塊的其中一個可疑儲存塊進行細掃描。于步驟S253中,控制器110可以對此可疑儲存塊進行細掃描(或檢查此可疑儲存塊的全部物理頁)。在一實施例中,控制器110可以僅對此可疑儲存塊的有效物理頁進行細掃描。上述有效物理頁地址與邏輯地址的對應關系可被記錄于一表格(table)中,也就是說,存儲器的每一有效物理頁地址皆可被對應至某一邏輯地址。舉例來說,可借由查表先得知此可疑儲存塊的有效物理頁地址,再對上述有效物理頁進行細掃描。于步驟S254中,控制器110可以從細掃描的結果而獲知物理頁的錯誤比特數量是否大于第二閾值。所述第二閾值可以視設計需求來決定。舉例來說(但不限于此),假設步驟S310所找出最大讀取計數值是群組讀取計數值RC_2,計數值RC_2對應的物理塊其中有一物理頁的錯誤比特數量大于第一閾值(滿足步驟S252與S253)。當步驟S254判斷此可疑儲存塊的所有物理頁的錯誤比特數量均小于第二閾值時,則圖3所示流程會被結束(等待下一個閑置期間),此時計數值RC_2尚未被重置。控制器110可以依照細掃描的結果來決定是否對可疑儲存塊進行儲存塊數據搬移操作,以將可疑儲存塊的數據搬移至閑置儲存塊。當步驟S254判斷此可疑儲存塊中有某一個物理頁的錯誤比特數量大于第二閾值時,表示此可疑儲存塊的錯誤比特太多,因此控制器110可以進行步驟S255以準備進行儲存塊數據搬移操作,以及將所述可疑儲存塊所對應的群組讀取計數值重置為初始值。[0045]—般而言,閑置期間是很短暫的。為了避免影響非揮發性存儲器裝置100的操作效率,步驟S255是將此可疑儲存塊的「儲存塊數據搬移標記」的值設為「真」(例如邏輯值I),而不是真正對此可疑儲存塊進行儲存塊數據搬移操作。完成步驟S255后,圖3所示流程會被結束(等待下一個閑置期間)。圖4是依照本發明一實施例說明儲存塊數據搬移操作的操作方法示意圖。請參照圖1與圖4,在進入閑置期間后,控制器110可以進行步驟S410,以便檢查非揮發性儲存電路130的所有物理塊(非揮發性儲存塊)的「儲存塊數據搬移標記」。當控制器110在步驟S410判斷非揮發性儲存電路130的所有物理塊的「儲存塊數據搬移標記」的值均不為「真」時,圖4所示流程會被結束(等待下一個閑置期間)。當控制器110在步驟S410判斷有一個物理塊(非揮發性儲存塊,在此稱為可疑儲存塊)的「儲存塊數據搬移標記」的值為「真」時,控制器110可以進行步驟S420,以將此可疑儲存塊的數據搬移至閑置儲存塊。在將可疑儲存塊的數據搬移至閑置儲存塊后,所述可疑儲存塊將被所述閑置儲存塊取代,并將所述可疑儲存塊釋放回自由塊池中。完成步驟S420后,圖4所示流程會被結束(等待下一個閑置期間)。[0046]圖5是依照本發明一實施例說明圖1所示非揮發性儲存電路130的部份非揮發性儲存塊(物理塊)的示意圖。在此假設圖2所示步驟S240(或圖3所示步驟S320)判斷群組讀取計數值RC_1超出預設范圍(例如大于閾值),因此將群組讀取計數值RC_1的第一邏輯塊地址群組(或子映射表SMT_1)所對應的非揮發性儲存塊(物理塊)81001^_4、81001^_8與81001^_(:繪示于圖5。圖5雖繪示三個非揮發性儲存塊犯001^_4、81001^8與81001^(:,但在其他實施例中,一個邏輯塊地址群組所對應的非揮發性儲存塊的數量可能是2個、4個或更多個。舉例來說,非揮發性儲存塊Block_A具有物理頁Page_A0、Page_Al、Page_A2、Page_A3、…、Page_A255,非揮發性儲存塊Block_B具有物理頁Page_B0、Page_Bl、Page_B2、Page_B3、."、Page_B255,而非揮發性儲存塊Block_C具有物理頁Page_C0、Page_Cl、Page_C2、Page_C3、。[0047]請參照圖1、圖3與圖5,在一些實施例中,步驟S251所述粗略掃描可能包括下述操作。控制器110可以在步驟S251中使用一個頁指針,此頁指針可以指向群組讀取計數值RC_1的對應邏輯塊地址群組所對應的非揮發性儲存塊犯001^_4、81001^_8與81001(:其中一個儲存塊的一個物理頁。例如,此頁指針可以指向非揮發性儲存塊Block_A的一個物理頁Page_A0。在步驟S251中,控制器110可以檢查頁指針所指的物理頁Page_A0的錯誤比特數量。當頁指針所指的物理頁Page_A0的錯誤比特數量小于第一閾值時,控制器110可以將頁指針改指向群組讀取計數值RC_1的對應邏輯塊地址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C其中另一個儲存塊的物理頁(例如非揮發性儲存塊Block_B的一個物理頁Page_B0)。控制器110可以檢查頁指針所指的物理頁Page_B0的錯誤比特數量。當頁指針所指的物理頁Page_B0的錯誤比特數量小于第一閾值時,控制器110可以將頁指針改指向群組讀取計數值RC_1的對應邏輯塊地址群組所對應的非揮發性儲存塊中另一個儲存塊的物理頁(例如非揮發性儲存塊Block_C的一個物理頁Page_C0)。控制器110可以檢查頁指針所指的物理頁Page_C0的錯誤比特數量。當頁指針所指的物理頁Page_CO的錯誤比特數量小于第一閾值時,控制器110可以將頁指針改指向群組讀取計數值RC_1的對應邏輯塊地址群組所對應的非揮發性儲存塊犯001^_4、81001^_8與81001(:其中另一個儲存塊的物理頁(例如非揮發性儲存塊Block_A的一個物理頁Page_Al)。在目前的閑置期間,當物理頁Page_A0、Page_B0與Page_C0的錯誤比特數量都小于第一閾值時,步驟S252的判斷結果為「否」,使得圖3所示流程會被結束(等待下一個閑置期間)。以此類推,當進入下一個閑置期間,控制器110可以接續檢查物理頁?&86_41、?&86_131與?386_(:1的錯誤比特數量。當物理頁Page_Al、Page_Bl與Page_Cl的錯誤比特數量都小于第一閾值時,步驟S252的判斷結果為「否」,使得圖3所示流程會被結束(等待再下一個閑置期間)。以此類推,直到群組讀取計數值RC_1的對應邏輯塊地址群組所對應的非揮發性儲存塊Block_C的所有物理頁都完成檢查,且非揮發性儲存塊犯0(^_4、810(^_8與810(^_(:的所有物理頁的錯誤比特數量都小于第一閾值,則所述粗略掃描即被完成。當群組讀取計數值RC_I的對應邏輯塊地址群組所對應的非揮發性儲存塊81001^_4、81001^_8與81001(:的所有物理頁均完成粗略掃描時,亦即當非揮發性儲存塊81%1^_4、810(^_8與810(^_(:的所有物理頁的錯誤比特數量都小于第一閾值時,則控制器110可以將群組讀取計數值RC_1重置為初始值。[0048]在進行粗略掃描的過程中,當發現群組讀取計數值RC_1的對應邏輯塊地址群組所對應的非揮發性儲存塊犯0(^_4、810(^_8與810(^_(:的一個物理頁的錯誤比特數量大于第一閾值時,亦即步驟S252的判斷結果為「是」,則控制器110可以對此物理頁所屬的可疑儲存塊進行細掃描(步驟S253)。舉例來說,當頁指針所指的物理頁Page_Al的錯誤比特數量大于第一閾值時,由控制器110可以將物理頁Page_Al所屬的儲存塊Block_A進行細掃描。[0049]步驟S251所述粗略掃描的實施方式不應受限于上述內容。舉例來說,在另一些實施例中,步驟S251所述粗略掃描可能包括下述操作。控制器110可以在步驟S251中使用一個頁指針,此頁指針可以指向群組讀取計數值RC_1的對應邏輯塊地址群組所對應的非揮發性儲存塊犯001^_4、81001^8與81001(:其中一個儲存塊的一個物理頁。例如,此頁指針可以指向非揮發性儲存塊81%1^8的一個物理頁?&86_81。在步驟5251中,控制器110可以檢查頁指針所指的物理頁Page_Bl以及至少一個鄰近物理頁的錯誤比特數量。所述至少一個鄰近物理頁是鄰近于頁指針所指的物理頁Page_Bl的一個或多個其他物理頁。依照設計需求,當頁指針指向物理頁Page_Bl時,所述至少一個鄰近物理頁可以包括物理頁Page_B0、物理頁Page_B2、物理頁Page_B3與/或其他物理頁。舉例來說,當頁指針指向物理頁Page_Bl時,所述至少一個鄰近物理頁可以包括物理頁Page_B0與物理頁Page_B2。當頁指針所指的物理頁Page_Bl與所述至少一個鄰近物理頁(例如Page_B0與Page_B2)的錯誤比特數量小于第一閾值時,控制器110可以將頁指針改指向群組讀取計數值RCj的對應邏輯塊地址群組所對應的非揮發性儲存塊犯001^_4、810(^_8與810(^_(:其中另一個儲存塊的物理頁(例如非揮發性儲存塊Block_C的一個物理頁Page_Cl)。控制器110可以檢查頁指針所指的物理頁?&86_(:1與所述至少一個鄰近物理頁(例如Page_C0與Page_C2)的錯誤比特數量。當頁指針所指的物理頁Page_Cl與所述至少一個鄰近物理頁(例如Page_C0與Page_C2)的錯誤比特數量小于第一閾值時,控制器110可以將頁指針改指向群組讀取計數值RC_1的對應邏輯塊地址群組所對應的非揮發性儲存塊810(^_4、810(^_8與810(^_(:其中另一個儲存塊的物理頁(例如非揮發性儲存塊犯0(^_4的一個物理頁?&86_42)。控制器110可以檢查頁指針所指的物理頁Page_A2與所述至少一個鄰近物理頁(例如Page_Al與Page_A3)的錯誤比特數量。當頁指針所指的物理頁Page_A2與所述至少一個鄰近物理頁(例如Page_Al與Page_A3)的錯誤比特數量小于第一閾值時,控制器110可以將頁指針改指向群組讀取計數值RC_1的對應邏輯塊地址群組所對應的非揮發性儲存塊犯0(^_4、810(^_8與810(^_(:其中另一個儲存塊的物理頁(例如非揮發性儲存塊Block_B的一個物理頁Page_B2)。以此類推,直到群組讀取計數值RC_I的對應邏輯塊地址群組所對應的非揮發性儲存塊81001^_4、81001^_8與81001(:的所有物理頁都完成檢查,且非揮發性儲存塊犯001^_4、810(^_8與810(^_(:的所有物理頁的錯誤比特數量都小于第一閾值,則所述粗略掃描即被完成。當群組讀取計數值RCj的對應邏輯塊地址群組所對應的非揮發性儲存塊犯0(^_4、810(^_8與810(^_(:的所有物理頁均完成粗略掃描時,控制器110可以將群組讀取計數值RCj重置為初始值。在進行粗略掃描的過程中,當頁指針所指的物理頁與所述至少一個鄰近物理頁的錯誤比特數量大于第一閾值時,控制器110可以將此頁指針所指的物理頁所屬的可疑儲存塊進行細掃描(步驟S253)。[0050]在一些實施例中,步驟S251所述粗略掃描還可能包括下述操作。上述頁指針將依據一查表指向非揮發性儲存塊中的物理頁(該些物理頁可為相鄰,也可為不相鄰,然不以此為限),上述查表中定義了非揮發性儲存塊中需進行粗略掃描的物理頁。在一實施例中,上述查表可定義至少一非揮發性儲存塊的多個物理頁,也可定義多個非揮發性儲存塊的多個物理頁。舉例來說,控制器110可依據查表Tablel(未繪示)依序檢查非揮發性儲存塊Block_A中物理頁的錯誤比特數量。依據查表Tablel,當頁指針所指的非揮發性儲存塊Block_A*物理頁的錯誤比特數量小于第一閾值時,控制器110可以將頁指針改指向群組讀取計數值RC_1的對應邏輯塊地址群組所對應的非揮發性儲存塊犯0(^_8的物理頁。以此類推,直到非揮發性儲存塊81%1^_4、810(^_8與810(^_(:的所有物理頁的錯誤比特數量都小于第一閾值,則所述粗略掃描即被完成。在另一實施例中,每一非揮發性儲存塊亦可具有各自的查表,用以定義了各自非揮發性儲存塊中需進行粗略掃描的物理頁。舉例來說,控制器110可依據查表Table2(未繪示)依序檢查非揮發性儲存塊Block_B中物理頁的錯誤比特數量,控制器110可依據查表Table3(未繪示)依序檢查非揮發性儲存塊Block_C中物理頁的錯誤比特數量。[0051]步驟S253所述細掃描可能包括下述操作。控制器110可以在步驟S253中檢查該頁指針所指的物理頁Page_Al所屬的儲存塊Block_A的所有物理頁Page_A0?Page_A255,以獲得物理頁Page_A0?Page_A255的有效數據的錯誤比特數量。當頁指針所對應的儲存塊Block_A所屬的所有物理頁Page_A0?Page_A255各自的有效數據的錯誤比特數量均小于第二閾值時,步驟S254的判斷結果為「否」,則結束圖3所示流程(等待下一個閑置期間)。當頁指針所對應的儲存塊Block_A所屬的所有物理頁Page_A0?Page_A255的其中一個物理頁(例如物理頁Page_A3)的有效數據的錯誤比特數量大于第二閾值時,控制器110可以將頁指針所對應的儲存塊Block_A進行「儲存塊數據搬移操作」(步驟S255)以將儲存塊犯0(^_八的數據搬移至閑置儲存塊。在完成「儲存塊數據搬移操作」后,控制器110可以將對應邏輯塊地址群組(或子映射表SMT_1)所對應的群組讀取計數值RC_1重置為初始值。[0052]本申請所述「掃描操作」的實現方式不應限于圖3所述。例如在另一些實施例中,所述「掃描操作」可能包括下述操作。在此假設群組讀取計數值RC_1超出預設范圍(例如大于閾值),因此群組讀取計數值RC_1的第一邏輯塊地址群組(或子映射表SMT_1)所對應的非揮發性儲存塊(物理塊)810(^_六、810(^_8與810(^_(:被繪示于圖5。因為群組讀取計數值RC_1大于閾值,所以第一邏輯塊地址群組(或子映射表SMT_1)所對應的非揮發性儲存塊(物理塊)810(^_六、810(^_8與810(^_(:將會進行「掃描操作」。請參照圖1與圖5,控制器110可以使用一個頁指針,此頁指針指向對應邏輯塊地址群組(第一邏輯塊地址群組,或子映射表SMT_I)所對應的非揮發性儲存塊其中一個儲存塊的物理頁。例如,此頁指針可以指向非揮發性儲存塊Block_A的一個物理頁Page_A0。控制器110可以檢查頁指針所指的物理頁?886_六0的錯誤比特數量。當頁指針所指的物理頁Page_AO的錯誤比特數量小于第一閾值時,控制器110可以將頁指針改指向非揮發性儲存塊810(^_4、810(^_8與810(^_(:其中另一個儲存塊的物理頁(例如非揮發性儲存塊Block_B的一個物理頁Page_BO)。控制器110可以檢查頁指針所指的物理頁Page_B0的錯誤比特數量。當頁指針所指的物理頁Page_B0的錯誤比特數量小于第一閾值時,控制器110可以將頁指針改指向非揮發性儲存塊犯0(^_4、810(^_8與810(^_C其中另一個儲存塊的物理頁(例如非揮發性儲存塊Block_C的一個物理頁Page_C0)。控制器110可以檢查頁指針所指的物理頁Page_C0的錯誤比特數量。當頁指針所指的物理頁Page_C0的錯誤比特數量小于第一閾值時,控制器110可以將頁指針改指向非揮發性儲存塊81001^_4、81(^1^_8與81001^_(:其中另一個儲存塊的物理頁(例如非揮發性儲存塊一個物理頁Page_Al)。以此類推,當對應邏輯塊地址群組(第一邏輯塊地址群組,或子映射表SMT_1)所對應的非揮發性儲存塊犯0(^_4、810(^_8與810(^_(:的所有物理頁均完成掃描操作時,也就是當非揮發性儲存塊犯0(^_4、810(^_8與810(^_(:的所有物理頁的錯誤比特數量都小于第一閾值時,控制器110可以將對應邏輯塊地址群組(第一邏輯塊地址群組,或子映射表SMT_1)所對應的群組讀取計數值RC_1重置為初始值。當頁指針所指的物理頁(例如物理頁Page_C0)的錯誤比特數量大于閾值時,控制器110可以將該物理頁所屬的儲存塊(例如儲存塊Block_C)進行「儲存塊數據搬移操作」,以將儲存塊的數據搬移至閑置儲存塊。在一實施例中,當該物理頁所屬的儲存塊(例如儲存塊Block_C)的數據被搬移后,該儲存塊(例如儲存塊Block_C)所對應的群組讀取計數值RC_1重置為初始值。[0053]在又一些實施例中,所述「掃描操作」可能包括下述操作。在此假設群組讀取計數值RCj超出預設范圍(例如大于閾值),因此群組讀取計數值RCj的第一邏輯塊地址群組(或子映射表SMT_1)所對應的非揮發性儲存塊(物理塊)810(^_4、810(^_8與810(^_(:被繪示于圖5。因為群組讀取計數值RCj大于閾值,所以第一邏輯塊地址群組(或子映射表SMT_1)所對應的非揮發性儲存塊(物理塊)810(^_4、810(^_8與810(^_(:將會進行「掃描操作」。請參照圖1與圖5,控制器110可以使用一個塊指針,此塊指針指向對應邏輯塊地址群組(第一邏輯塊地址群組,或子映射表SMT_1)所對應的非揮發性儲存塊其中一個儲存塊。例如,此塊指針可以指向非揮發性儲存塊(物理塊)810^^_4、81001^_8與810^^_(:其中一個儲存塊Block_A。控制器110可以檢查塊指針所指的儲存塊犯0(^_4的全部物理頁的錯誤比特數量。當塊指針所指的儲存塊Block_A的錯誤比特數量小于閾值時,控制器110可以將塊指針改指向非揮發性儲存塊其中另一個儲存塊(例如儲存塊Block_B)。控制器110可以檢查塊指針所指的儲存塊扮0(^_8的全部物理頁的錯誤比特數量。當塊指針所指的儲存塊Block_B的錯誤比特數量小于閾值時,控制器110可以將塊指針改指向非揮發性儲存塊81001^_4、81001^_8與81001^_(:其中另一個儲存塊(例如儲存塊Block_C)。控制器110可以檢查塊指針所指的儲存塊Block_(^^全部物理頁的錯誤比特數量。當塊指針所指的儲存塊Block_C的錯誤比特數量小于閾值時,控制器110可以將塊指針改指向非揮發性儲存塊810^^_4、810^^_8與810^^_(:其中另一個儲存塊(例如儲存塊Block_A)。[0054]當對應邏輯塊地址群組(第一邏輯塊地址群組,或子映射表SMT_1)所對應的非揮發性儲存塊81%1^4、810(^_8與810(^_(:均完成掃描操作時,也就是當非揮發性儲存塊81001^_4、810018與81001(:的錯誤比特數量都小于閾值時,控制器110可以將對應邏輯塊地址群組(第一邏輯塊地址群組,或子映射表SMT_1)所對應的群組讀取計數值RCj重置為初始值。當塊指針所指的儲存塊(例如物理頁儲存塊Block_C)的錯誤比特數量大于閾值時,控制器110可以將塊指針所指的儲存塊Block_C進行「儲存塊數據搬移操作」,以將儲存塊Block_C的數據搬移至閑置儲存塊。在一實施例中,當上述儲存塊(例如物理頁儲存塊Block_C)的數據被搬移后,該儲存塊(例如物理頁儲存塊Block_C)所對應的群組讀取計數值RC_1重置為初始值。[0055]在另一些實施例中,在某一物理塊完成數據讀取操作后,控制器110可以將這些群組讀取計數值RC_1?RC_n中所述某一物理塊所對應的讀取計數值「減少」一個步階值。因此在另一些實施例中,圖3所示一個或多個步驟可以被對應改變。例如,在進入閑置期間后,控制器110可以在步驟S310中從多個邏輯塊地址群組(或子映射表SMT_1?SMT_n)各自的群組讀取計數值RCj?RC_n中找出「最小者」。控制器110可以于步驟S320中檢查步驟S310所找出的「最小讀取計數值」是否「小于」閾值。所述閾值可以視設計需求來決定。當步驟S310所找出的「最小讀取計數值」沒有「小于」閾值時,結束圖3所示流程(等待下一個閑置期間)。當步驟S310所找出的「最小讀取計數值」「小于」閾值時,表示此「最小讀取計數值」所對應的一個或多個非揮發性儲存塊(非揮發性儲存電路130的物理塊)的數據曾被多次讀取。因此,控制器110可以進行步驟S250,以對步驟S310所找出的「最小讀取計數值」所對應的某一個對應邏輯塊地址群組所對應的非揮發性儲存塊(非揮發性儲存電路130的物理塊)進行掃描操作。[0056]值得注意的是,在不同的應用情境中,控制器110與/或主存儲器120的相關功能可以利用一般的編程語言(programminglanguages,例如C或C++)、硬件描述語言(hardwaredescript1nlanguages,例如VerilogHDL或VHDL)或其他合適的編程語言來實現為軟件、固件或硬件。可執行所述相關功能的軟件(或固件)可以被布置為任何已知的計算機可存取介質(computer_accessibIemedias),例如磁帶(magnetictapes)、半導體(semiconductors)存儲器、磁盤(magneticdisks)或光盤(compactdisks,例如CD-ROM或DVD-ROM),或者可通過互聯網(Internet)、有線通信(wiredcommunicat1n)、無線通信(wirelesscommunicat1n)或其它通信介質傳送所述軟件(或固件)。所述軟件(或固件)可以被存放在計算機的可存取介質中,以便于由計算機的處理器來存取/執行所述軟件(或固件)的編程代碼(programmingcodes)。另外,本發明的裝置和方法可以通過硬件和軟件的組合來實現。[0057]綜上所述,本發明諸實施例所述非揮發性存儲器裝置100及其操作方法可以記錄多個邏輯塊地址群組(或子映射表SMT_1?SMT_n)各自的群組讀取計數值RC_1?RC_n。這些群組讀取計數值RC_1?RC_n可以表示這些邏輯塊地址群組被進行讀取操作的次數。在長時間(多次)對一個物理塊進行讀取操作的情形下,隨著時間(讀取次數)的增加,此物理塊發生錯誤的比特數量將隨之增加。非揮發性存儲器裝置100的控制器110可以依照這些群組讀取計數值RC_1?RC_n來彈性決定掃描操作的時機,以便適時地檢查非揮發性儲存電路130的部份儲存塊(物理塊)發生錯誤的比特數量。每次所進行掃描操作的對象不是非揮發性儲存電路130的全部儲存塊,因此可以避免影響非揮發性存儲器裝置100的運作效能。依據掃描操作的結果,控制器可以動態決定是否進行儲存塊數據搬移操作,以避免儲存塊(物理塊)數據遺失。[0058]雖然本發明已以實施例公開如上,然其并非用以限定本發明,任何本領域普通技術人員,在不脫離本發明的精神和范圍內,當可作些許的更動與潤飾,因此本發明的保護范圍當視后附的權利要求所限定者為準。【主權項】1.一種非揮發性存儲器裝置,包括:一非揮發性儲存電路,具有由多個物理塊地址所定址的多個非揮發性儲存塊;一主存儲器,用以存放一映射表,其中該映射表用以記錄多個邏輯塊地址與該些物理塊地址的轉換關系;以及一控制器,耦接至該主存儲器與該非揮發性儲存電路,其中該控制器將該些邏輯塊地址分群為多個邏輯塊地址群組,而該些邏輯塊地址群組的每一個包括多個邏輯塊地址;該些邏輯塊地址群組的每一個被分配有一個群組讀取計數值;該些群組讀取計數值的調整是由一主機的讀指令所觸發;當該些群組讀取計數值中的一個讀取計數值超出一預設范圍時,該控制器對該讀取計數值所對應的一對應邏輯塊地址群組的該些邏輯塊地址所對應的該些非揮發性儲存塊進行一掃描操作以檢查錯誤比特數量;以及該控制器依據該掃描操作的結果而決定是否對該對應邏輯塊地址群組的該些邏輯塊地址所對應的該些非揮發性儲存塊的其中一個儲存塊進行一儲存塊數據搬移操作。2.如權利要求1所述的非揮發性存儲器裝置,其中當該主機發出該讀指令給該控制器時,該控制器依照該映射表將該讀指令的一目標邏輯塊地址轉換為一目標物理塊地址,依照該讀指令存取該目標物理塊地址所定址的一非揮發性儲存塊,以及將該些群組讀取計數值中該目標邏輯塊地址所對應的一讀取計數值增加一步階值。3.如權利要求1所述的非揮發性存儲器裝置,其中當該主機發出該讀指令給該控制器時,該控制器依照該映射表將該讀指令的一目標邏輯塊地址轉換為一目標物理塊地址,依照該讀指令存取該目標物理塊地址所定址的一非揮發性儲存塊,以及將該些群組讀取計數值中該目標邏輯塊地址所對應的一讀取計數值減少一步階值。4.如權利要求1所述的非揮發性存儲器裝置,其中該控制器比較該些群組讀取計數值與一閾值以判斷該些群組讀取計數值與該預設范圍的關系;當該些群組讀取計數值中的一個讀取計數值大于該閾值時,該控制器對該讀取計數值所對應的該對應邏輯塊地址群組的該些邏輯塊地址所對應的該些非揮發性儲存塊進行該掃描操作以檢查錯誤比特數量。5.如權利要求1所述的非揮發性存儲器裝置,其中該控制器比較該些群組讀取計數值與一閾值以判斷該些群組讀取計數值與該預設范圍的關系;當該些群組讀取計數值中的一個讀取計數值小于該閾值時,該控制器對該讀取計數值所對應的該對應邏輯塊地址群組的該些邏輯塊地址所對應的該些非揮發性儲存塊進行該掃描操作以檢查錯誤比特數量。6.如權利要求1所述的非揮發性存儲器裝置,其中該掃描操作包括:由該控制器對該對應邏輯塊地址群組所對應的該些非揮發性儲存塊進行一粗略掃描;由該控制器依照該粗略掃描的結果來決定是否對該對應邏輯塊地址群組所對應的該些非揮發性儲存塊的其中一個可疑儲存塊進行一細掃描;以及由該控制器依照該細掃描的結果來決定是否對該可疑儲存塊進行該儲存塊數據搬移操作,以將該可疑儲存塊的數據搬移至一閑置儲存塊。7.如權利要求6所述的非揮發性存儲器裝置,其中該粗略掃描包括:由一頁指針指向該對應邏輯塊地址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一物理頁;由該控制器檢查該頁指針所指的該物理頁以及至少一鄰近物理頁的錯誤比特數量;以及當該頁指針所指的該物理頁與所述至少一鄰近物理頁的該錯誤比特數量小于一第一閾值時,由該控制器將該頁指針改指向該對應邏輯塊地址群組所對應的該些非揮發性儲存塊其中另一個儲存塊的一物理頁。8.如權利要求7所述的非揮發性存儲器裝置,其中當該頁指針所指的該物理頁與所述至少一鄰近物理頁的該錯誤比特數量大于該第一閾值時,該控制器將該物理頁所屬的該儲存塊進行該細掃描。9.如權利要求6所述的非揮發性存儲器裝置,其中該粗略掃描包括:由一頁指針指向該對應邏輯塊地址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一物理頁;由該控制器檢查該頁指針所指的該物理頁的錯誤比特數量;以及當該頁指針所指的該物理頁的該錯誤比特數量小于一第一閾值時,由該控制器將該頁指針改指向該對應邏輯塊地址群組所對應的該些非揮發性儲存塊其中另一個儲存塊的一物理頁。10.如權利要求9所述的非揮發性存儲器裝置,其中當該頁指針所指的該物理頁的該錯誤比特數量大于該第一閾值時,由該控制器將該物理頁所屬的該儲存塊進行該細掃描。11.如權利要求6所述的非揮發性存儲器裝置,其中當該對應邏輯塊地址群組所對應的該些非揮發性儲存塊的所有物理頁均完成該粗略掃描時,由該控制器將該對應邏輯塊地址群組所對應的該讀取計數值重置為一初始值。12.如權利要求6所述的非揮發性存儲器裝置,其中該細掃描包括:由一頁指針指向該對應邏輯塊地址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一物理頁;由該控制器檢查該頁指針所指的該物理頁所屬的該儲存塊的有效物理頁各自的錯誤比特數量;以及當該頁指針所對應的該儲存塊所屬的有效物理頁各自的該錯誤比特數量均小于一第二閾值時,該控制器不重置該對應邏輯塊地址群組所對應的該讀取計數值。13.如權利要求6所述的非揮發性存儲器裝置,其中該細掃描包括:由一頁指針指向該對應邏輯塊地址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一物理頁;由該控制器檢查該頁指針所指的該物理頁所屬的該儲存塊的所有物理頁各自的錯誤比特數量;以及當該頁指針所對應的該儲存塊所屬的所有物理頁各自的該錯誤比特數量均小于一第二閾值時,該控制器不重置該對應邏輯塊地址群組所對應的該讀取計數值。14.如權利要求6所述的非揮發性存儲器裝置,其中當該可疑儲存塊的其中一個物理頁的該錯誤比特數量大于一第二閾值時,由該控制器將該可疑儲存塊進行該儲存塊數據搬移操作以將該可疑儲存塊的數據搬移至該閑置儲存塊,以及由該控制器將該對應邏輯塊地址群組所對應的該讀取計數值重置為該初始值。15.如權利要求1所述的非揮發性存儲器裝置,其中該掃描操作包括:由一頁指針指向該對應邏輯塊地址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一物理頁;由該控制器檢查該頁指針所指的該物理頁的錯誤比特數量;以及當該頁指針所指的該物理頁的該錯誤比特數量小于一閾值時,由該控制器將該頁指針改指向該對應邏輯塊地址群組所對應的該些非揮發性儲存塊其中另一個儲存塊的一物理頁。16.如權利要求15所述的非揮發性存儲器裝置,其中當該對應邏輯塊地址群組所對應的該些非揮發性儲存塊的所有物理頁均完成該掃描操作時,由該控制器將該對應邏輯塊地址群組所對應的該讀取計數值重置為一初始值。17.如權利要求15所述的非揮發性存儲器裝置,其中當該頁指針所指的該物理頁的該錯誤比特數量大于該閾值時,由該控制器將該物理頁所屬的該儲存塊進行該儲存塊數據搬移操作,以將該儲存塊的數據搬移至一閑置儲存塊。18.如權利要求1所述的非揮發性存儲器裝置,其中該掃描操作包括:由一塊指針指向該對應邏輯塊地址群組所對應的該些非揮發性儲存塊其中一個儲存塊;由該控制器檢查該塊指針所指的該儲存塊的錯誤比特數量;以及當該塊指針所指的該儲存塊的該錯誤比特數量小于一閾值時,由該控制器將該塊指針改指向該對應邏輯塊地址群組所對應的該些非揮發性儲存塊其中另一個儲存塊。19.如權利要求18所述的非揮發性存儲器裝置,其中當該對應邏輯塊地址群組所對應的該些非揮發性儲存塊均完成該掃描操作時,由該控制器將該對應邏輯塊地址群組所對應的該讀取計數值重置為一初始值。20.如權利要求18所述的非揮發性存儲器裝置,其中當該塊指針所指的該儲存塊的該錯誤比特數量大于該閾值時,由該控制器將該塊指針所指的該儲存塊進行該儲存塊數據搬移操作,以將該儲存塊的數據搬移至一閑置儲存塊。21.—種非揮發性存儲器裝置的操作方法,包括:配置一非揮發性儲存電路,其中該非揮發性儲存電路具有由多個物理塊地址所定址的多個非揮發性儲存塊;配置一主存儲器以存放一映射表,其中該映射表用以記錄多個邏輯塊地址與該些物理塊地址的轉換關系;由一控制器將該些邏輯塊地址分群為多個邏輯塊地址群組,其中該些邏輯塊地址群組的每一個包括多個邏輯塊地址,以及該些邏輯塊地址群組的每一個被分配有一個群組讀取計數值;依據一主機的讀指令而觸發該些群組讀取計數值的調整;當該些群組讀取計數值中的一個讀取計數值超出一預設范圍時,由該控制器對該讀取計數值所對應的一對應邏輯塊地址群組的該些邏輯塊地址所對應的該些非揮發性儲存塊進行一掃描操作,以檢查錯誤比特數量;以及由該控制器依據該掃描操作的結果而決定是否對該對應邏輯塊地址群組的該些邏輯塊地址所對應的該些非揮發性儲存塊的其中一個儲存塊進行一儲存塊數據搬移操作。22.如權利要求21所述的非揮發性存儲器裝置的操作方法,其中所述依據該主機的讀指令而觸發該些群組讀取計數值的調整的步驟包括:當該主機發出該讀指令給該控制器時,由該控制器依照該映射表將該讀指令的一目標邏輯塊地址轉換為一目標物理塊地址,依照該讀指令存取該目標物理塊地址所定址的一非揮發性儲存塊,以及將該些群組讀取計數值中該目標邏輯塊地址所對應的一讀取計數值增加一步階值。23.如權利要求21所述的非揮發性存儲器裝置的操作方法,其中所述依據該主機的讀指令而觸發該些群組讀取計數值的調整的步驟包括:當該主機發出該讀指令給該控制器時,由該控制器依照該映射表將該讀指令的一目標邏輯塊地址轉換為一目標物理塊地址,依照該讀指令存取該目標物理塊地址所定址的一非揮發性儲存塊,以及將該些群組讀取計數值中該目標邏輯塊地址所對應的一讀取計數值減少一步階值。24.如權利要求21所述的非揮發性存儲器裝置的操作方法,更包括:由該控制器比較該些群組讀取計數值與一閾值,以判斷該些群組讀取計數值與該預設范圍的關系;當該些群組讀取計數值中的一個讀取計數值大于該閾值時,由該控制器對該讀取計數值所對應的該對應邏輯塊地址群組的該些邏輯塊地址所對應的該些非揮發性儲存塊進行該掃描操作,以檢查錯誤比特數量。25.如權利要求21所述的非揮發性存儲器裝置的操作方法,更包括:由該控制器比較該些群組讀取計數值與一閾值,以判斷該些群組讀取計數值與該預設范圍的關系;當該些群組讀取計數值中的一個讀取計數值小于該閾值時,由該控制器對該讀取計數值所對應的該對應邏輯塊地址群組的該些邏輯塊地址所對應的該些非揮發性儲存塊進行該掃描操作以檢查錯誤比特數量。26.如權利要求21所述的非揮發性存儲器裝置的操作方法,其中該掃描操作包括:由該控制器對該對應邏輯塊地址群組所對應的該些非揮發性儲存塊進行一粗略掃描;由該控制器依照該粗略掃描的結果來決定是否對該對應邏輯塊地址群組所對應的該些非揮發性儲存塊的其中一個可疑儲存塊進行一細掃描;以及由該控制器依照該細掃描的結果來決定是否對該可疑儲存塊進行該儲存塊數據搬移操作,以將該可疑儲存塊的數據搬移至一閑置儲存塊。27.如權利要求26所述的非揮發性存儲器裝置的操作方法,其中該粗略掃描包括:由一頁指針指向該對應邏輯塊地址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一物理頁;由該控制器檢查該頁指針所指的該物理頁與至少一鄰近物理頁的錯誤比特數量;以及當該頁指針所指的該物理頁與所述至少一鄰近物理頁的該錯誤比特數量小于一第一閾值時,由該控制器將該頁指針改指向該對應邏輯塊地址群組所對應的該些非揮發性儲存塊其中另一個儲存塊的一物理頁。28.如權利要求27所述的非揮發性存儲器裝置的操作方法,其中當該頁指針所指的該物理頁與所述至少一鄰近物理頁的該錯誤比特數量大于該第一閾值時,由該控制器將該物理頁所屬的該儲存塊進行該細掃描。29.如權利要求26所述的非揮發性存儲器裝置的操作方法,其中該粗略掃描包括:由一頁指針指向該對應邏輯塊地址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一物理頁;由該控制器檢查該頁指針所指的該物理頁的錯誤比特數量;以及當該頁指針所指的該物理頁的該錯誤比特數量小于一第一閾值時,由該控制器將該頁指針改指向該對應邏輯塊地址群組所對應的該些非揮發性儲存塊其中另一個儲存塊的一物理頁。30.如權利要求29所述的非揮發性存儲器裝置的操作方法,其中當該頁指針所指的該物理頁的該錯誤比特數量大于該第一閾值時,由該控制器將該物理頁所屬的該儲存塊進行該細掃描。31.如權利要求26所述的非揮發性存儲器裝置的操作方法,其中當該對應邏輯塊地址群組所對應的該些非揮發性儲存塊的所有物理頁均完成該粗略掃描時,由該控制器將該對應邏輯塊地址群組所對應的該讀取計數值重置為一初始值。32.如權利要求26所述的非揮發性存儲器裝置的操作方法,其中該細掃描包括:由一頁指針指向該對應邏輯塊地址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一物理頁;由該控制器檢查該頁指針所指的該物理頁所屬的該儲存塊的有效物理頁各自的錯誤比特數量;以及當該頁指針所對應的該儲存塊所屬的有效物理頁各自的該錯誤比特數量均小于一第二閾值時,該控制器不重置該對應邏輯塊地址群組所對應的該讀取計數值。33.如權利要求26所述的非揮發性存儲器裝置的操作方法,其中該細掃描包括:由一頁指針指向該對應邏輯塊地址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一物理頁;由該控制器檢查該頁指針所指的該物理頁所屬的該儲存塊的所有物理頁各自的錯誤比特數量;以及當該頁指針所對應的該儲存塊所屬的所有物理頁各自的該錯誤比特數量均小于一第二閾值時,該控制器不重置該對應邏輯塊地址群組所對應的該讀取計數值。34.如權利要求26所述的非揮發性存儲器裝置的操作方法,其中當該可疑儲存塊的其中一個物理頁的該錯誤比特數量大于一第二閾值時,由該控制器將該可疑儲存塊進行該儲存塊數據搬移操作以將該可疑儲存塊的數據搬移至該閑置儲存塊,以及由該控制器將該對應邏輯塊地址群組所對應的該讀取計數值重置為該初始值。35.如權利要求21所述的非揮發性存儲器裝置的操作方法,其中該掃描操作包括:由一頁指針指向該對應邏輯塊地址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一物理頁;由該控制器檢查該頁指針所指的該物理頁的錯誤比特數量;以及當該頁指針所指的該物理頁的該錯誤比特數量小于一閾值時,由該控制器將該頁指針改指向該對應邏輯塊地址群組所對應的該些非揮發性儲存塊其中另一個儲存塊的一物理頁。36.如權利要求35所述的非揮發性存儲器裝置的操作方法,其中當該對應邏輯塊地址群組所對應的該些非揮發性儲存塊的所有物理頁均完成該掃描操作時,由該控制器將該對應邏輯塊地址群組所對應的該讀取計數值重置為一初始值。37.如權利要求35所述的非揮發性存儲器裝置的操作方法,其中當該頁指針所指的該物理頁的該錯誤比特數量大于該閾值時,由該控制器將該物理頁所屬的該儲存塊進行該儲存塊數據搬移操作,以將該儲存塊的數據搬移至一閑置儲存塊。38.如權利要求21所述的非揮發性存儲器裝置的操作方法,其中該掃描操作包括:由一塊指針指向該對應邏輯塊地址群組所對應的該些非揮發性儲存塊其中一個儲存塊;由該控制器檢查該塊指針所指的該儲存塊的錯誤比特數量;以及當該塊指針所指的該儲存塊的該錯誤比特數量小于一閾值時,由該控制器將該塊指針改指向該對應邏輯塊地址群組所對應的該些非揮發性儲存塊其中另一個儲存塊。39.如權利要求38所述的非揮發性存儲器裝置的操作方法,其中當該對應邏輯塊地址群組所對應的該些非揮發性儲存塊均完成該掃描操作時,由該控制器將該對應邏輯塊地址群組所對應的該讀取計數值重置為一初始值。40.如權利要求38所述的非揮發性存儲器裝置的操作方法,其中當該塊指針所指的該儲存塊的該錯誤比特數量大于該閾值時,由該控制器將該塊指針所指的該儲存塊進行該儲存塊數據搬移操作,以將該儲存塊的數據搬移至一閑置儲存塊。【文檔編號】G06F11/10GK106021013SQ201610292306【公開日】2016年10月12日【申請日】2016年5月5日【發明人】黃勝輝,賴義麟【申請人】威盛電子股份有限公司