TWI594126B - 資料儲存裝置與資料儲存方法 - Google Patents

資料儲存裝置與資料儲存方法 Download PDF

Info

Publication number
TWI594126B
TWI594126B TW105121194A TW105121194A TWI594126B TW I594126 B TWI594126 B TW I594126B TW 105121194 A TW105121194 A TW 105121194A TW 105121194 A TW105121194 A TW 105121194A TW I594126 B TWI594126 B TW I594126B
Authority
TW
Taiwan
Prior art keywords
data
data storage
controller
memory
storage device
Prior art date
Application number
TW105121194A
Other languages
English (en)
Other versions
TW201802686A (zh
Inventor
葉思驛
Original Assignee
慧榮科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW105121194A priority Critical patent/TWI594126B/zh
Priority to CN201610765594.4A priority patent/CN107577417A/zh
Priority to US15/626,371 priority patent/US10754566B2/en
Application granted granted Critical
Publication of TWI594126B publication Critical patent/TWI594126B/zh
Publication of TW201802686A publication Critical patent/TW201802686A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

資料儲存裝置與資料儲存方法
本發明係關於一種資料儲存裝置與資料儲存方法,特別係關於一種依據邏輯頁面逐一偵測所儲存的資料之資料儲存裝置與資料儲存方法。
對於非揮發性資料儲存裝置而言,使用者可能會使用主機,頻繁的讀取記憶體的某些特定實體位址上的資料,而造成非揮發性資料儲存裝置的損壞,導致無法正確讀取上述特定實體位址上的資料。目前有許多方法去檢測這些頻繁讀取的資料。然而,上述方法並沒有檢測長時間沒有被主機讀取的資料,也就無法確定這些長時間未讀取的資料是否發生錯誤或損壞。因此,需要一種資料儲存裝置與資料儲存方法,能夠循序逐一的偵測記憶體所儲存的資料。如此一來,即使是長時間未被讀取的資料也能被檢測,而提升非揮發性資料儲存裝置的可靠度。
為了解決上述問題,本發明提出一種資料儲存裝置與資料儲存方法,能夠循序逐一的偵測記憶體所儲存的資料。當判斷為啟動資料儲存裝置、或是主機所讀取的資料量大於預設值時,本發明之控制器檢測記憶體的複數個實體頁面所儲存之複數資料的狀態。詳細而言,控制器依據邏輯頁面的順序, 偵測記憶體之中對應實體頁面所儲存之資料。因此,記憶體所儲存的全部資料都會被檢測到,包括長時間未被主機讀取的資料。此外,本發明提供之資料儲存方法係在啟動資料儲存裝置、或是主機所讀取的資料量大於預設值時才會進行檢測。因此能夠在不影響資料儲存裝置順利運作的情況下,對長時間未被讀取的資料進行檢測,提升可靠度並且同時維持資料儲存裝置的效能。
本發明之一實施例提供了一種資料儲存裝置,用以儲存複數資料。資料儲存裝置包括一記憶體以及一控制器。記憶體包括複數個區塊,上述區塊之每一者包括複數個實體頁面。控制器耦接記憶體,用以當啟動該資料儲存裝置、或是一主機所讀取的資料量大於一預設值時,檢測該記憶體的該等實體頁面所儲存之該等資料的狀態。詳細而言,控制器係依據邏輯頁面的順序,將邏輯頁面對應為記憶體的實體頁面,並且檢測記憶體的實體頁面所儲存之資料的狀態。
在一實施例中,記憶體儲存一變數,用以記錄控制器執行檢測所依據的邏輯頁面之個數。當控制器依據一邏輯頁面檢測記憶體的對應實體頁面所儲存之資料後,遞增該變數。當控制器檢測記憶體的全部實體頁面所儲存之資料後,重設該變數。此外,控制器係檢測資料的ECC位元數,以判斷資料是否發生錯誤。當控制器判斷資料發生錯誤時,控制器移動該錯誤的資料。
再者,邏輯頁面被劃分為複數個區域,位於邏輯頁面前方的第一區域儲存高重要性之資料,並且第一區域被檢 測的頻率高於其他區域被檢測的頻率。控制器交互檢測該第一區域以及第一區域以外的任一區域,直到每個區域都檢測完成。此外,控制器在啟動資料儲存裝置所依據檢測的邏輯頁面之數量,大於當主機所讀取的資料量大於預設值時所依據檢測的邏輯頁面之數量。上述預設值係由檢測所造成的效能降低、以及記憶體的可靠度所決定。
本發明提供了一種資料儲存方法,應用於儲存複數資料之一資料儲存裝置。資料儲存裝置包括一記憶體以及一控制器。資料儲存方法包括判斷是否啟動資料儲存裝置、以及判斷一主機所讀取的資料量是否大於一預設值;當判斷為啟動該資料儲存裝置、或是該主機所讀取的資料量大於預設值時,藉由控制器檢測記憶體的複數個實體頁面所儲存之複數資料的狀態。
100‧‧‧資料儲存裝置
120‧‧‧控制器
140‧‧‧記憶體
160-16N‧‧‧區塊
160A、160Z...16NA、16NZ‧‧‧實體頁面
260‧‧‧邏輯頁面
R1‧‧‧第一區域
R2‧‧‧第二區域
R3‧‧‧第三區域
R4‧‧‧第四區域
第1圖係顯示根據本發明一實施例所述之資料儲存裝置與主機之示意圖;第2圖係顯示根據本發明一實施例所述之資料儲存方法之流程圖;第3圖係顯示根據本發明一實施例所述之邏輯頁面之示意圖。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說 明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1圖係顯示根據本發明一實施例所述之資料儲存裝置100與主機180之示意圖。在一實施例中,資料儲存裝置100包括控制器120與記憶體140,並且資料儲存裝置100耦接主機180以傳送資料與指令、或是接收資料與指令。記憶體140可以為非揮發性記憶體,例如反集閘快閃記憶體(NAND Flash)。主機180可以為手機、平板電腦、筆記型電腦、導航機或車載系統等。
如第1圖所示,記憶體140包括複數個區塊160~16N。詳細而言,區塊160~16N中的每一者更包括複數個實體頁面160A~16NZ。區塊160包括實體頁面160A~160Z,區塊16N包括實體頁面16NA~16NZ。控制器120在對記憶體140執行寫入或儲存動作時,是藉由控制記憶體140以實體頁面為單位來執行寫入或程式化的運作。控制器120藉由控制記憶體140以叢集(cluster)為單位執行讀取運作的方式來對記憶體140執行讀取運作。此外,控制器120耦接記憶體140以相互傳送資料與指令或接收資料與指令。進一步而言,控制器120可包括具有韌體碼之一微控制器以及唯讀記憶體(ROM),並且微控制器執行韌體碼以操作或是存取記憶體140。
對於記憶體140而言,其實體頁面160A~16NZ的每一者皆具有不同的實體位址。換言之,實體頁面160A~16NZ的每一者都具有一個實體位址,而實體頁面160A~16NZ的每一者 的實體位址都是不同的。當資料儲存裝置100執行一寫入運作時,控制器120決定記憶體140的一實體位址以寫入或儲存資料。此外,控制器120則分別對應上述複數個實體位址至複數個邏輯位址。因此,對於主機180而言,主機180係藉由邏輯位址,來讀取或寫入資料儲存裝置100所儲存於某個邏輯位址的資料。
在一實施例中,控制器120係依據邏輯頁面的順序,將邏輯頁面對應為記憶體140的實體頁面,並且偵測記憶體140所對應之上述實體頁面所儲存之資料的狀態。詳細而言,控制器120係偵測上述資料的ECC位元數,以判斷該資料是否發生錯誤。當ECC位元數較低時,則控制器120判斷該資料是正確的,並沒有發生錯誤。當ECC位元數較高時,則控制器120判斷該資料發生錯誤。舉例而言,當ECC位元數小於40位元,判斷該資料為正確;當ECC位元數大於40位元,則判斷該資料發生錯誤。值得注意的是,控制器120係依據邏輯頁面的順序,依序逐一進行檢測。因此,無論邏輯頁面所對應之實體頁面中所儲存的資料是否經常被讀取,都能夠毫無遺漏的進行檢查。藉由本發明所提供之資料儲存裝置100,就能夠檢測出長時間未被讀取的資料,是否正確的儲存在記憶體140之中。
當控制器120判斷資料發生錯誤時,則控制器120移動上述錯誤的資料。詳細而言,上述錯誤的資料原本儲存於實體頁面160A,則控制器120將該資料從實體頁面160A搬移到實體頁面160Z。在另一實施例中,實體頁面160A~16NZ的每一者皆區分為複數個區域。舉例而言,上述錯誤的資料原本儲存 於實體頁面160A的第一區域,則控制器120將該資料從實體頁面160A的第一區域,搬移到實體頁面160A之不同於第一區域的第二區域。
在另一實施例中,在啟動資料儲存裝置100的時候、或是當主機180所讀取的資料量大於一預設值時,則控制器120檢測記憶體140的實體頁面所儲存之資料的狀態。控制器120係依據邏輯頁面的順序,將邏輯頁面對應為記憶體140的實體頁面,並且檢測記憶體140所對應之上述實體頁面所儲存之資料的狀態。雖然在啟動資料儲存裝置100的時候會有時間限制,但是建立連結(build link)的時間通常小於啟動裝置的時間限制。此兩者之間的時間差距,就可用於使控制器120檢測記憶體140的實體頁面之資料的狀態。
此外,當主機180所讀取的資料量大於一預設值的時候,也可利用其讀取資料的時間空檔,讓控制器120檢測記憶體140的實體頁面之資料的狀態。值得注意的是,上述預設值係由檢測記憶體140所造成的效能降低、以及記憶體140的可靠度所決定。舉例而言,當主機180讀取1MB的資料後(亦即預設值為1MB)檢測8個邏輯頁面,會造成資料儲存裝置降低大約3%的效能。當主機180讀取10MB的資料後(亦即預設值為10MB)才檢測8個邏輯頁面,則造成資料儲存裝置降低大約0.3%的效能。由此可知,上述預設值與可容許的效能降低是呈正比的。此外,記憶體140的可靠度則相關於記憶體140之種類以及記憶體140的使用環境。記憶體140的可靠度高,表示所儲存的資料不容易發生錯誤。因此,就可以增加上述預設值,降低控制器 120檢查記憶體140之資料的頻率。由此可知,上述預設值與記憶體之可靠度是呈反比。
在一實施例中,記憶體140儲存一變數,用以記錄控制器120執行偵測所依據的邏輯頁面之個數。當控制器120依據邏輯頁面偵測記憶體140的對應實體頁面所儲存之資料後,則遞增該變數。因為控制器120係依據邏輯頁面的順序,依序逐一進行檢測。藉由該變數可記錄目前控制器120檢測到第幾個邏輯頁面、或是已經檢測了多少個邏輯頁面。當控制器120依據邏輯頁面偵測所對應實體頁面之資料,並且確認該資料為正確,則遞增該變數,然後依據下一個邏輯頁面再進行檢測。如果控制器120檢測該資料為錯誤,則搬動該資料以降低發生錯誤的風險,然後才遞增該變數,依據下一個邏輯頁面再進行檢測。
由此可知,隨著控制器120依據邏輯頁面的順序逐一檢測記憶體140之資料,變數的數值會持續累積與增加。當控制器120已檢測記憶體140的全部實體頁面所儲存之資料後,重設該變數為0,表示控制器已經全部檢測完畢。然後,再重新依據邏輯頁面的順序逐一檢測記憶體140之資料。藉由本發明所提供之變數,能夠有效確保控制器120依據邏輯頁面的順序逐一檢測記憶體140之資料,避免發生遺漏,進而有效對那些長時間未被讀取的資料進行檢測。
第2圖係顯示根據本發明一實施例所述之資料儲存方法之流程圖。在步驟S200中,控制器120判斷是否啟動資料儲存裝置100。如果沒有啟動資料儲存裝置100,則繼續執行 步驟S200。如果正在啟動資料儲存裝置100,則執行步驟S202。在步驟S202中,記憶體140儲存一變數,用以記錄控制器120偵測記憶體140之資料時,所依據的邏輯頁面之個數。然後在步驟S204中,控制器120依據邏輯頁面的順序,將邏輯頁面對應為記憶體140的實體頁面,基於N個邏輯頁面偵測記憶體140的對應實體頁面所儲存之資料,然後將變數遞增N。值得注意的是,上述數值N係由開啟資料儲存裝置100的時間限制、以及建立連結的時間之差距所決定。如果上述時間差距越大,則N值越大,表示控制器120可依據較多的邏輯頁面偵測記憶體140之資料。
然後在步驟S206中,主機180讀取記憶體140所儲存之資料。在步驟S208中,控制器120判斷主機180所讀取的資料量是否大於預設值。關於上述預設值的決定方式如前所述,此處不再贅述。如果控制器120判斷主機180所讀取的資料量並未大於預設值,則執行步驟S206。如果控制器120判斷主機180所讀取的資料量大於預設值,則執行步驟S210。在步驟S210中,控制器120依據邏輯頁面的順序,將邏輯頁面對應為記憶體的實體頁面,基於M個邏輯頁面偵測記憶體140的對應實體頁面所儲存之資料,然後將變數遞增M。為了避免資料儲存裝置100的效能大幅降低,影響使用者的操作經驗,通常M值會小於N值。換言之,控制器120在啟動資料儲存裝置100所依據偵測的邏輯頁面之數量(亦即N值),會大於當主機180所讀取的資料量大於預設值時所依據偵測的邏輯頁面之數量(亦即M值)。
第3圖係顯示根據本發明一實施例所述之邏輯頁面260之示意圖。在一實施例中,邏輯頁面260被劃分為複數個區域。如第3圖所示,邏輯頁面260被劃分為第一區域R1、第二區域R2、第三區域R3以及第四區域R4。記憶體140所儲存的複數資料可能具有不同的重要性。因此,位於邏輯頁面前方的第一區域R1係用以儲存高重要性之資料,例如系統資料或開機資料。值得注意的是,第一區域R1被偵測的頻率高於其他區域被偵測的頻率,因此能確保高重要資料的安全性與正確性。
在一實施例中,控制器120交互偵測第一區域R1以及第一區域R1以外的任一區域(亦即第二區域R2、第三區域R3以及第四區域R4),直到每個區域都偵測完成。換言之,控制器120先檢測第一區域R1所對應之實體頁面之資料,然後檢測第二區域R2所對應之實體頁面之資料,然後再次檢測第一區域R1所對應之實體頁面之資料,接著在檢測第三區域R3所對應之實體頁面之資料,然後再檢測第一區域R1所對應之實體頁面之資料,再檢測第四區域R4所對應之實體頁面之資料。相較於依序從第一區域R1、第二區域R2、第三區域R3以及第四區域R4進行檢測的方式,上述交互檢測的方式能夠使得第一區域R1的檢測頻率大於其他區域的檢測頻率,進而提升記憶體140之高重要資料的保護。
本發明提出一種資料儲存裝置與資料儲存方法,能夠循序逐一的偵測記憶體所儲存的資料。本發明之資料儲存裝置係依據邏輯頁面的順序,依序逐一進行檢測。因此,無論邏輯頁面所對應之實體頁面中所儲存的資料是否經常被讀取, 都能夠毫無遺漏的進行檢查。藉由本發明所提供之資料儲存裝置100,就能夠檢測出長時間未被讀取的資料,是否正確的儲存在記憶體140之中。
再者,本發明之資料儲存方法係當判斷為啟動資料儲存裝置、或是主機180所讀取的資料量大於預設值時,才檢測記憶體的複數個實體頁面所儲存之複數資料的狀態。換言之,本發明之資料儲存方法是利用資料儲存裝置100運行的短暫空閒時間進行檢測,能夠有效降低對於性能所造成的影響,不會對使用者的體驗產生影響。此外,藉由本發明所提供之變數進行記錄,能夠有效確保控制器120依據邏輯頁面的順序逐一檢測記憶體140之資料,避免發生遺漏,進而有效對那些長時間未被讀取的資料進行檢測。
在本說明書以及申請專利範圍中的序數,例如「第一」、「第二」、「第三」等等,彼此之間並沒有順序上的先後關係,其僅用於標示區分兩個具有相同名字之不同元件。本發明說明書中「耦接」一詞係泛指各種直接或間接之電性連接方式。本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何熟習此項技藝者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。

Claims (15)

  1. 一種資料儲存裝置,用以儲存複數資料,包括:一記憶體,包括複數個區塊,其中該等區塊之每一者包括複數個實體頁面;一控制器,耦接該記憶體,用以當啟動該資料儲存裝置、或是一主機所讀取的資料量大於一預設值時,檢測該記憶體的該等實體頁面所儲存之該等資料的狀態,其中該控制器在啟動該資料儲存裝置所依據檢測的邏輯頁面之數量,大於當該主機所讀取的資料量大於該預設值時所依據檢測的邏輯頁面之數量。
  2. 如申請專利範圍第1項所述之資料儲存裝置,其中該控制器係依據邏輯頁面的順序,將邏輯頁面對應為該記憶體的該等實體頁面,並且檢測該記憶體中所對應之該等實體頁面所儲存之該等資料的狀態。
  3. 如申請專利範圍第2項所述之資料儲存裝置,其中該記憶體儲存一變數,用以記錄該控制器執行檢測所依據的邏輯頁面之個數。
  4. 如申請專利範圍第3項所述之資料儲存裝置,其中當該控制器依據該邏輯頁面檢測該記憶體的該對應實體頁面所儲存之資料後,遞增該變數。
  5. 如申請專利範圍第3項所述之資料儲存裝置,其中當該控制器檢測該記憶體的全部實體頁面所儲存之資料後,重設該變數。
  6. 如申請專利範圍第1項所述之資料儲存裝置,其中該控制器 係檢測該等資料的ECC位元數,以判斷該等資料是否發生錯誤。
  7. 如申請專利範圍第6項所述之資料儲存裝置,其中當該控制器判斷該等資料發生錯誤時,該控制器移動該錯誤的資料。
  8. 如申請專利範圍第1項所述之資料儲存裝置,其中該預設值係由檢測該記憶體所造成的效能降低、以及該記憶體的可靠度所決定。
  9. 如申請專利範圍第2項所述之資料儲存裝置,其中該邏輯頁面被劃分為複數個區域,位於邏輯頁面前方的第一區域儲存高重要性之資料,並且該第一區域被檢測的頻率高於其他區域被檢測的頻率。
  10. 如申請專利範圍第9項所述之資料儲存裝置,其中該控制器交互檢測該第一區域以及該第一區域以外的任一區域,直到每個區域都檢測完成。
  11. 一種資料儲存方法,應用於儲存複數資料之一資料儲存裝置,該資料儲存裝置包括一記憶體以及一控制器,該資料儲存方法包括:判斷是否啟動該資料儲存裝置、以及判斷一主機所讀取的資料量是否大於一預設值;當判斷為啟動該資料儲存裝置、或是該主機所讀取的資料量大於該預設值時,藉由該控制器檢測該記憶體的複數個實體頁面所儲存之該等資料的狀態,其中該控制器在啟動該資料儲存裝置所依據檢測的邏輯頁面之數量,大於當該主機所讀取的資料量大於該預設值時所依據檢測的邏輯頁面之數 量。
  12. 如申請專利範圍第11項所述之資料儲存方法,更包括藉由該控制器依據邏輯頁面的順序,將邏輯頁面對應為該記憶體的該等實體頁面,並且檢測該記憶體所對應之該等實體頁面所儲存之該等資料的狀態。
  13. 如申請專利範圍第12項所述之資料儲存方法,更包括藉由該記憶體儲存一變數,用以記錄該控制器執行檢測所依據的邏輯頁面之個數。
  14. 如申請專利範圍第11項所述之資料儲存方法,更包括藉由該控制器係檢測該等資料的ECC位元數,以判斷該等資料是否發生錯誤,並且當判斷該等資料發生錯誤時,藉由該控制器移動該錯誤的資料。
  15. 如申請專利範圍第12項所述之資料儲存方法,其中該邏輯頁面被劃分為複數個區域,位於邏輯頁面前方的第一區域儲存高重要性之資料,並且該第一區域被檢測的頻率高於其他區域被檢測的頻率。
TW105121194A 2016-07-05 2016-07-05 資料儲存裝置與資料儲存方法 TWI594126B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW105121194A TWI594126B (zh) 2016-07-05 2016-07-05 資料儲存裝置與資料儲存方法
CN201610765594.4A CN107577417A (zh) 2016-07-05 2016-08-30 数据储存装置与数据储存方法
US15/626,371 US10754566B2 (en) 2016-07-05 2017-06-19 Data storage device and data storage method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW105121194A TWI594126B (zh) 2016-07-05 2016-07-05 資料儲存裝置與資料儲存方法

Publications (2)

Publication Number Publication Date
TWI594126B true TWI594126B (zh) 2017-08-01
TW201802686A TW201802686A (zh) 2018-01-16

Family

ID=60189071

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105121194A TWI594126B (zh) 2016-07-05 2016-07-05 資料儲存裝置與資料儲存方法

Country Status (3)

Country Link
US (1) US10754566B2 (zh)
CN (1) CN107577417A (zh)
TW (1) TWI594126B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI657336B (zh) * 2017-08-28 2019-04-21 慧榮科技股份有限公司 用以檢測資料儲存裝置之資料儲存方法及其資料儲存裝置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200532695A (en) * 2003-10-03 2005-10-01 Sandisk Corp Flash memory data correction and scrub techniques
TW201037716A (en) * 2009-04-10 2010-10-16 Phison Electronics Corp Data access method for a flash memory and storage system and controller thereof
CN102157202A (zh) * 2008-01-22 2011-08-17 群联电子股份有限公司 防止非易失性存储器发生读取干扰的方法及其控制器

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101482837B (zh) * 2009-01-21 2011-03-16 华为技术有限公司 闪存文件系统纠错方法和装置
KR101648531B1 (ko) * 2010-02-12 2016-08-17 삼성전자주식회사 불휘발성 메모리 시스템과 이의 동작 방법
US9727414B2 (en) * 2010-12-01 2017-08-08 Seagate Technology Llc Fractional redundant array of silicon independent elements
JP5697796B2 (ja) * 2011-08-29 2015-04-08 株式会社日立製作所 電気的に書き換え可能な不揮発性半導体メモリを有する半導体記憶装置
KR20130076430A (ko) * 2011-12-28 2013-07-08 삼성전자주식회사 적응적 카피백 방법 및 이를 이용한 저장 장치
WO2015047334A1 (en) 2013-09-27 2015-04-02 Intel Corporation Error correction in non_volatile memory
US9419655B2 (en) * 2014-04-04 2016-08-16 Seagate Technology Llc Error correction code (ECC) selection using probability density functions of error correction capability in storage controllers with multiple error correction codes
TWI492234B (zh) * 2014-04-21 2015-07-11 Silicon Motion Inc 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與記憶體系統

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200532695A (en) * 2003-10-03 2005-10-01 Sandisk Corp Flash memory data correction and scrub techniques
CN102157202A (zh) * 2008-01-22 2011-08-17 群联电子股份有限公司 防止非易失性存储器发生读取干扰的方法及其控制器
TW201037716A (en) * 2009-04-10 2010-10-16 Phison Electronics Corp Data access method for a flash memory and storage system and controller thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI657336B (zh) * 2017-08-28 2019-04-21 慧榮科技股份有限公司 用以檢測資料儲存裝置之資料儲存方法及其資料儲存裝置
US10474530B2 (en) 2017-08-28 2019-11-12 Silicon Motion, Inc. Data storage method for detecting data storage device and its data storage device

Also Published As

Publication number Publication date
TW201802686A (zh) 2018-01-16
US20180011637A1 (en) 2018-01-11
CN107577417A (zh) 2018-01-12
US10754566B2 (en) 2020-08-25

Similar Documents

Publication Publication Date Title
US9817749B2 (en) Apparatus and method of offloading processing from a data storage device to a host device
TWI599946B (zh) 記憶體中之條紋映射
JP4901987B1 (ja) 記憶装置、電子機器及び誤りデータの訂正方法
TWI625735B (zh) 記憶體管理方法以及儲存控制器
CN102750191B (zh) 用于启动固态非易失性存储设备内的刷新操作的方法
TW201351425A (zh) 用於解碼取決於干擾條件下之資料之系統與方法
TWI389122B (zh) 用來存取一快閃記憶體之方法以及相關之記憶裝置及其控制器
US8321757B2 (en) Method and apparatus for error correction
US9361036B2 (en) Correction of block errors for a system having non-volatile memory
TWI661427B (zh) 記憶體管理方法以及儲存控制器
TW201230054A (en) System and method of data encoding
JP5815388B2 (ja) メモリアクセス制御装置および方法
US20140082264A1 (en) Nand flash storage chip checking method and device
TW202008171A (zh) 資料寫入方法以及儲存控制器
TW201629781A (zh) 資料儲存裝置及其斷電事件判斷方法
JP6080180B2 (ja) 不揮発性メモリでのマーカプログラミング
CN106802837B (zh) 一种更新错误检测和纠正ecc码的方法及装置
CN111221675B (zh) 用于ram错误检测逻辑的自诊断的方法和装置
CN109801668A (zh) 数据储存装置及应用于其上的操作方法
KR20170114438A (ko) 데이터 저장 장치 및 그것의 동작 방법
TWI594126B (zh) 資料儲存裝置與資料儲存方法
KR101512927B1 (ko) 비휘발성 메모리의 페이지 관리 방법 및 장치
KR20100031402A (ko) 프리 페이지 검출 방법 및 장치와 이를 이용한 에러 정정 코드 디코딩 방법 및 장치
TWI748214B (zh) 快閃記憶體控制器、儲存裝置及其讀取方法
TWI601011B (zh) 偵測使用中邏輯頁面之資料儲存裝置與資料儲存方法