TWI553481B - 固態硬碟的資料管理方法、寫入管理系統及其方法 - Google Patents
固態硬碟的資料管理方法、寫入管理系統及其方法 Download PDFInfo
- Publication number
- TWI553481B TWI553481B TW104132033A TW104132033A TWI553481B TW I553481 B TWI553481 B TW I553481B TW 104132033 A TW104132033 A TW 104132033A TW 104132033 A TW104132033 A TW 104132033A TW I553481 B TWI553481 B TW I553481B
- Authority
- TW
- Taiwan
- Prior art keywords
- write
- firmware
- hard disk
- state hard
- sequential
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
下列敘述是有關於一種固態硬碟的資料管理方法、寫入管理系統及其方法,特別是有關於一種能根據固態硬碟的寫入行為,而進一步管理所寫入的資料以及更新其韌體之寫入管理系統及其方法。
固態硬碟(Solid-State Drive,簡稱SSD)是一種以非揮發性記憶體記憶體作為永久性記憶體的電腦儲存裝置。非揮發性記憶體的資料存取速度介於揮發性記憶體和傳統硬碟之間。和揮發性記憶體相比,非揮發性記憶體一經寫入資料,就不需要外界電力來維持其記憶。因此更適於作為傳統硬碟的替代品。而快閃記憶體當中的NAND Flash則是最常見的非揮發性記憶體。廠商只需使用快閃記憶體,再配合適當的控制晶片,便可以製造出固態硬碟。
一個NAND Flash 記憶體晶片是由數個區塊(block)組成,而每一個區塊是由數個頁(page)所組成,一個頁包含了使用者區域(User area)以及空間區域(Space),前者負責儲存寫入資料,後者存放對映資訊(Mapping information)以及錯誤更正碼(Error Correcting Code)。值得一提的是,快閃記憶體的寫入基本單位是一個頁,而其抹除動作則是一個區塊為單位,而快閃記憶體中每一個區塊所能抹除之次數均有其上限值。
而由於固態硬碟在物理特性上不同於傳統硬碟,故固態硬碟利用了一層FTL(Flash Translation Layer)來將其模擬成傳統硬碟,由於NAND Flash記憶體無法在同一位址進行In-Place update,因此FTL 會將重複更新的資料寫入至其他位址存放,並且使用對映表(Mapping table)來將更新後的位址記錄起來。當所有區塊都被寫過而沒有額外空間可以寫入時,FTL 會呼叫Garbage Collection(GC)動作來清除無效的分頁,回收空間以供其他資料寫入。另外FTL 還會提供平均磨損處理,延長快閃記憶體的使用生命週期,以及進行資料的錯誤校正,來驗證寫入資料的正確性。
一般而言,FTL可以分為高解析對映(High-resolution mapping)、低解析對映(Low-resolution mapping)以及混合對映(Hybrid mapping),第一者採用較小的對應單位來進行位址轉換,如Page-Level mapping,具有優異的隨機寫入速度,但需要一個分頁表來記錄每個頁的對應位址。第二者則是採用較大的對應單位來進行位址轉換,如Block-Level mapping,由於其以區塊為單位,故所需之表格極小,但若寫入的資料不滿一個區塊時,則需額外補滿此區塊,換句話說,若是進行少量資料寫入時,低解析對映之方式需要許多額外的複製動作,故其在隨機存取上的表現極差。第三者是混合了高解析對映以及低解析對映的方式,其將新寫入的資料以Page-Level mapping方式寫入是Log block,且也只有Log block需要分頁表來記錄每一頁的對應位址,其耗費的硬體成本則介於Page-Level mapping與Block-Level mapping之間,而混合對映的缺點在於,當Log block被消耗完之後,FTL 會啟動GC來回收空間,而混合對映必須將Log Block 中的有效資料以及其所屬同一邏輯區塊的有效資料,都複製至新的區塊並整理成資料區塊的型式存放,其將會需要一連串的複製以及抺除動作而造成額外的負擔,使得固態硬碟效能下降。
為了方便使用者了解固態硬碟的使用狀態,固態硬碟均會內建S.M.A.R.T以提供有關固態硬碟之使用程度,以供使用者預估固態硬碟之使用壽命。但由於每個主機的使用條件與寫入模式不同,對於預估壽命會產生很大的誤差。且寫入模式之不同往往對於固態硬碟的韌體架構會產生差異極大的誤差,也有可能會造成多餘的資料搬動與寫入。舉例來說,當此固態硬碟之FTL為低解析對映時,若其寫入的每一筆資料常常不滿一個區塊時,則不但會產生較差的存取效率,也會減短此固態硬碟之壽命。相反地,當此固態硬碟之FTL為高解析對映時,若其寫入的資料屬於多個連續區塊時,則其隨機寫入速度之優勢則不復見。
有鑑於上述習知之問題,本發明的目的在於解決當每個主機的使用條件與寫入模式不同時,而造成固態硬碟之壽命減損。
有鑑於上述習知之問題,本發明的目的在於解決當每個主機的使用條件與寫入模式不同時,而造成固態硬碟之存取效率低落。
基於上述目的,本發明係提供一種固態硬碟的資料管理方法,其適用於一固態硬碟以及控制固態硬碟之一韌體,資料管理方法包含下列步驟。
a. 傳送N個寫入指令至韌體以寫入至少一資料至固態硬碟,每一N個寫入指令包含邏輯區塊位址以及磁區計數值。
b. 由韌體依序儲存N個寫入指令之邏輯區塊位址以及磁區計數值。
c. 將j初始化為1,將循序寫入計數值初始化為0,j為一正整數且j小於N。
d. 由韌體判斷第j個寫入指令與第(j+1)個寫入指令是否為循序寫入,若是,則將循序寫入計數值遞增1。
e. 若j小於(N-1),將j遞增1並執行步驟d。
f. 由韌體將循序寫入計數值除以(N-1)以產生循序寫入比例。
較佳地,本發明之資料管理方法更包含若第j個寫入指令之邏輯區塊位址之值與磁區計數值之總和等於第(j+1)個寫入指令之邏輯區塊位址之值,將循序寫入計數值遞增1。
基於上述目的,本發明再提供一種固態硬碟的寫入管理方法,其適用於一應用程式以及控制一固態硬碟之一韌體,寫入管理方法包含下列步驟。
利用應用程式讀取韌體之循序寫入比例。
若循序寫入比例高於第一門檻值時,寫入第一檔案,若循序寫入比例低於第一門檻值時,寫入第二檔案。其中第一檔案之大小係大於第二檔案之大小。
較佳地,第一檔案之大小係大於固態硬碟之一磁區之大小,第二檔案之大小係小於磁區之大小。
基於上述目的,本發明再提供一種固態硬碟的寫入管理方法,其適用於一固態硬碟以及控制固態硬碟之一韌體,寫入管理方法包含下列步驟。
傳送複數個寫入指令至韌體以寫入至少一資料至固態硬碟,每一寫入指令包含邏輯區塊位址以及磁區計數值。
由韌體依序儲存每一寫入指令之邏輯區塊位址以及磁區計數值。
利用應用程式依序讀取邏輯區塊位址以及磁區計數值。
根據邏輯區塊位址及磁區計數值以決定循序寫入比例。
由應用程式根據循序寫入比例以更新韌體成第一韌體。
較佳地,本發明之寫入管理方法更包含:當循序寫入比例高於第二門檻值時,更新韌體為一低解析對映(Low-resolution mapping)之位址轉換模式。
較佳地,本發明之寫入管理方法更包含:當循序寫入比例低於第二門檻值時,更新韌體為一高解析對映(High-resolution mapping)之位址轉換模式。
較佳地,本發明之寫入管理方法更包含:當循序寫入比例介於一門檻值區間時,更新韌體為一混合對映(Hybrid mapping)之位址轉換模式。
較佳地,複數個寫入指令係在一時間區段內產生。
基於上述目的,本發明再提供一種固態硬碟的寫入管理方法,其適用於一固態硬碟以及控制固態硬碟之一韌體,寫入管理方法包含下列步驟。
傳送複數個寫入指令至韌體以寫入至少一資料至固態硬碟,每一寫入指令包含邏輯區塊位址以及磁區計數值。
由韌體決定複數個寫入指令之循序寫入比例以產生韌體更新建議。
由應用程式讀取韌體更新建議並根據韌體更新建議以更新韌體成第一韌體。
較佳地,本發明之寫入管理方法更包含:當循序寫入比例高於第二門檻值時,更新韌體為一低解析對映(Low-resolution mapping)之位址轉換模式。
較佳地,本發明之寫入管理方法更包含:當循序寫入比例低於第二門檻值時,更新韌體為一高解析對映(High-resolution mapping)之位址轉換模式。
較佳地,本發明之寫入管理方法更包含當:循序寫入比例介於一門檻值區間時,更新韌體為一混合對映(Hybrid mapping)之位址轉換模式。
較佳地,複數個寫入指令係在一時間區段內產生。
基於上述目的,本發明再提供一種固態硬碟的寫入管理系統,其包含一固態硬碟、一韌體以及一應用程式。韌體可接收複數個寫入指令以寫入至少一資料至固態硬碟,韌體係決定複數個寫入指令之一循序寫入比例,並產生一韌體更新建議。應用程式係讀取韌體更新建議並根據韌體更新建議以更新韌體成第一韌體。
較佳地,每一寫入指令包含邏輯區塊位址以及磁區計數值。
較佳地,複數個寫入指令係由至少一循序寫入指令以及至少一隨機寫入指令所組成。
較佳地,循序寫入比例可為至少一循序寫入指令之個數除以複數個寫入指令之個數之比例。
較佳地,第一韌體為具有一低解析對映(Low-resolution mapping)之位址轉換模式之韌體。
較佳地,第一韌體為具有一高解析對映(High-resolution mapping)之位址轉換模式之韌體。
較佳地,第一韌體為具有一混合對映(Hybrid mapping)之位址轉換模式之韌體。
10‧‧‧固態硬碟
100‧‧‧寫入管理系統
101‧‧‧主機
11‧‧‧資料
20‧‧‧韌體
21‧‧‧韌體更新建議
22‧‧‧循序寫入比例
30‧‧‧電子裝置
31‧‧‧寫入指令
311‧‧‧邏輯區塊位址
312‧‧‧磁區計數值
40‧‧‧應用程式
50‧‧‧第一韌體
62‧‧‧第二門檻值
S11~S16、S21~S22、S31~S35、S41~S43‧‧‧流程步驟
本發明之上述及其他特徵及優勢將藉由參照附圖詳細說明其例示性實施例而變得更顯而易知,其中:
第1圖係為根據本發明第一實施例之寫入管理系統之方塊圖。
第2圖係為根據本發明第二實施例之寫入管理系統之方塊圖。
第3圖係為根據本發明第三實施例之資料管理方法之流程圖。
第4圖係為根據本發明第四實施例之寫入管理方法之流程圖。
第5圖係為根據本發明第五實施例之寫入管理方法之流程圖。
第6圖係為根據本發明第六實施例之寫入管理方法之流程圖。
為利 貴審查員瞭解本發明之特徵、內容與優點及其所能達成之功效,茲將本發明配合附圖,並以實施例之表達形式詳細說明如下,而其中所使用之圖式,其主旨僅為示意及輔助說明書之用,未必為本發明實施後之真實比例與精準配置,故不應就所附之圖式的比例與配置關係解讀、侷限本發明於實際實施上的權利範圍。
本發明之優點、特徵以及達到之技術方法將參照例示性實施例及所附圖式進行更詳細地描述而更容易理解,且本發明或可以不同形式來實現,故不應被理解僅限於此處所陳述的實施例,相反地,對所屬技術領域具有通常知識者而言,所提供的實施例將使本揭露更加透徹與全面且完整地傳達本發明的範疇,且本發明將僅為所附加的申請專利範圍所定義。
請參閱第1圖,其係為本發明第一實施例之寫入管理系統之方塊圖。此固態硬碟的寫入管理系統100包含一固態硬碟10、一韌體20以及安裝在一電子裝置30上之應用程式40。其中此固態硬碟10主要是由NAND 快閃記憶體所組成,其可以透過SATA連接線以電性連接至一主機101之主機板上,韌體20係包含一段程式碼並儲存於固態硬碟100中,例如儲存於NAND快閃記憶體之一保留區塊中,其可供使用者查詢目前固態硬碟10之運作狀態或是執行固態硬碟10之設定、更新與調校。電子裝置30可為一電腦、一平板或是一智慧型手機,其可透過網際網路連接至主機101。
進一步地說明,當主機101欲儲存至少一資料11至固態硬碟100時,則主機101首先會傳送包含有關此資料11之多個寫入指令31至韌體20,再由韌體20根據這些寫入指令31以寫入資料11至固態硬碟10之NAND快閃記憶體內,其中每一寫入指令31可包含一邏輯區塊位址311以及一磁區計數值312,此邏輯區塊位址311用以表示所要寫入的邏輯區塊起始位址,磁區計數值312則表示所需要寫入的磁區個數。舉例來說,若是一寫入指令31中的邏輯區塊位置311為”100”且磁區計數值312為”5”,則表示邏輯區塊位置311中的第100、101、102、103、104的5個區塊將會被寫入資料。此外,在本實施例中,所有的邏輯區塊位址311以及磁區計數值312將會由韌體20儲存至NAND 快閃記憶體的一保留區塊中。
經過一時間區間之後,此時韌體20已儲存了多筆寫入指令31之邏輯區塊位址311以及磁區計數值312。此時電子裝置30上之應用程式40將讀取韌體20所儲存的邏輯區塊位址311以及磁區計數值312,由這些寫入指令31來決定一循序寫入比例22。而應用程式40可以根據此循序寫入比例22以更新韌體20成一第一韌體50,其中此第一韌體50可以為具有一低解析對映(Low-resolution mapping)、高解析對映(High-resolution mapping)或是一混合對映(Hybrid mapping)之位址轉換模式之韌體,而韌體之更新方式可以透過網路或USB進行更新,且其更新之方式係為相關領域中具有通常知識者所熟知,故在此不進行贅述。
詳細地說明,這些寫入指令31可以由至少一循序寫入指令以及至少一隨機寫入指令所組成,而循序寫入比例22可以為至少一循序寫入指令之個數除以複數個寫入指令31之個數之比例,其中循序寫入指令可以連續的兩個寫入指令是否寫入至相鄰之邏輯區塊位址來進行簡易之判斷。舉例來說,如(100, 5)及(105, 3)即屬於循序寫入指令,其中括弧的前後兩數字分別表示邏輯區塊位址311以及磁區計數值312。
較佳的情況是,應用程式40內可以設定一第二門檻值62,當應用程式40判斷循序寫入比例22大於此第二門檻值62時,可更新韌體20為具有一低解析對映之位址轉換模式,反之,若循序寫入比例22不大於第二門檻值62時,可更新韌體20為具有一高解析對映之位址轉換模式,更甚者,當循序寫入比例22介於一門檻值區間時,則可更新韌體20為一具有混合對映之位址轉換模式。
值得一提的是,本實施例中之電子裝置30以及主機101係以相異之裝置來舉例實施,但本發明並不以此為限,亦可以將應用程式40安裝於主機101上,讓主機101也可以透過本發明之寫入管理系統來達到更新韌體的目的。
請參閱第2圖,其係為本發明第二實施例之寫入管理系統之方塊圖。此固態硬碟的寫入管理系統100包含一固態硬碟10、一韌體20以及安裝在一電子裝置30上之應用程式40。
當使用者欲儲存一資料11至固態硬碟10時,韌體20會先接收有關此資料11的複數個寫入指令31,韌體20可根據此複數個寫入指令31以決定一循序寫入比例22,並根據此循序寫入比例22產生一韌體更新建議21。應用程式40可讀取此韌體更新建議21,並根據此韌體更新建議21以更新韌體20成第一韌體50。
其中,每一筆寫入指令31可包含一邏輯區塊位址311以及一磁區計數值312,而循序寫入比例22之產生方式以及第一韌體50之種類已於第一實施例內揭露,故在此不進行贅述。
值得一提的是,不同於第一實施例,在本實施例中是由韌體20來產生韌體更新建議21,此種方式之優點在於韌體20不需要額外花費空間來儲存所有的寫入指令31,其只需要判斷相鄰的兩個寫入指令31是否為循序寫入的關係即可,而當韌體20判斷為一循序寫入之關係時,其可以利用一暫存器來進行累計,將最後的累計數目除以寫入指令31之個數便可以得到循序寫入比例22。
在上述的兩個實施例中,使用者均可以設定一時間區段以蒐集此固態硬體上的寫入指令,其中此時間區段可以為一天、一個星期或是一個月,透過蒐集在此時間區段內之寫入行為,應用程式便可以得知此固態硬碟較常被使用之寫入模式為何,進一步地根據此模式以更新適合的第一韌體。如此一來,經過韌體更新後之固態硬碟將可以更貼近其實際被寫入之方式,進而增加固態硬碟之存取壽命以及發揮其最大之存取效益。
請參閱第3圖,其係為根據本發明第三實施例之資料管理方法之流程圖。此資料管理方法係適用於一固態硬碟以及控制固態硬碟之一韌體,其方法包含下列步驟。
步驟S11傳送N個寫入指令至韌體以寫入至少一資料至固態硬碟,其中每一N個寫入指令包含一邏輯區塊位址以及一磁區計數值。
步驟S12由韌體依序儲存N個寫入指令之邏輯區塊位址以及磁區計數值。
步驟S13將j初始化為1,將一循序寫入計數值初始化為0,j為一正整數且j小於N。
步驟S14由韌體判斷第j個寫入指令與第(j+1)個寫入指令是否為循序寫入,若是,則將循序寫入計數值遞增1。
步驟S15判斷若j小於(N-1),將j遞增1並執行步驟S14。
步驟S16由韌體將循序寫入計數值除以(N-1)以產生一循序寫入比例。
詳細地說,在上述之步驟S14中,其判斷的方式可以為若第j個寫入指令之邏輯區塊位址之值與磁區計數值之總和等於第(j+1)個寫入指令之邏輯區塊位址之值,則將循序寫入計數值遞增1。
請參閱第4圖,其係為根據本發明第四實施例之寫入管理方法之流程圖。此寫入管理方法係適用於一應用程式以及控制一固態硬碟之一韌體,其包含下列步驟。
步驟S21利用應用程式讀取韌體之一循序寫入比例。
步驟S22判斷若循序寫入比例高於一第一門檻值時,寫入一第一檔案,若循序寫入比例低於第一門檻值時,寫入一第二檔案。其中第一檔案之大小係大於第二檔案之大小。
更進一步地說明,第一檔案之大小可大於固態硬碟之一磁區之大小,第二檔案之大小可小於磁區之大小。此外,如同第三實施例中所描述,循序寫入比例可由寫入計數值除以(N-1)而產生,但本發明並不以此產生方式為限,循序寫入比例可由韌體搭配不同的演算法而被計算產生。
請參閱第5圖,其係為根據本發明第五實施例之寫入管理方法之流程圖。此寫入管理方法適用於一固態硬碟以及控制固態硬碟之一韌體,其包含下列步驟。
步驟S31傳送複數個寫入指令至韌體以寫入至少一資料至固態硬碟,其中每一寫入指令包含一邏輯區塊位址以及一磁區計數值,且此複數個寫入指令可在一時間區段內產生,如一小時、一天或是一個星期。
步驟S32係由韌體依序儲存每一寫入指令之邏輯區塊位址以及磁區計數值。
步驟S33利用一應用程式依序讀取所儲存之邏輯區塊位址以及磁區計數值。
步驟S34根據邏輯區塊位址及磁區計數值以決定一循序寫入比例。
步驟S35係由應用程式根據循序寫入比例以更新韌體成一第一韌體。
進一步地說明,在步驟S35中,當循序寫入比例高於一第二門檻值時,表示寫入的資料較有可能在同一個區塊上,因此可更新韌體為一低解析對映之位址轉換模式,
進一步地說明,在步驟S35中,當循序寫入比例低於一第二門檻值時,表示寫入的資料可能散落於不同的區塊上,因此更新韌體為一高解析對映之位址轉換模式。
進一步地說明,在步驟S35中,當循序寫入比例介於一門檻值區間時,更新韌體為一混合對映之位址轉換模式,其中此門檻值區間之大小可由使用者自行制定。
請參閱第6圖,其係為根據本發明第六實施例之寫入管理方法之流程圖。此寫入管理方法係適用於一固態硬碟以及控制此固態硬碟之一韌體,其包含下列步驟。
步驟S41傳送複數個寫入指令至韌體以寫入至少一資料至固態硬碟,其中每一寫入指令包含一邏輯區塊位址以及一磁區計數值,而複數個寫入指令係在一時間區段內產生。
步驟S42由韌體決定複數個寫入指令之一循序寫入比例以產生一韌體更新建議。
步驟S43係由一應用程式讀取韌體更新建議,並根據此韌體更新建議以更新韌體成一第一韌體。
進一步地說明,在步驟S43中,更包含當循序寫入比例高於一第二門檻值時,更新韌體為一低解析對映之位址轉換模式。
進一步地說明,在步驟S43中,更包含當循序寫入比例低於一第二門檻值時,更新韌體為一高解析對映之位址轉換模式。
進一步地說明,在步驟S43中,更包含當循序寫入比例介於一門檻值區間時,更新韌體為一混合對映之位址轉換模式。
透過以上可以得知,本發明之固態硬碟之寫入管理方法及其系統的確可根據固態硬碟之寫入模式以產生一相對應之韌體,並藉由更新此韌體以延長固態硬碟之壽命以及增加固態硬碟之存取效益。
以上所述之實施例僅係為說明本發明之技術思想及特點,其目的在使熟習此項技藝之人士能夠瞭解本發明之內容並據以實施,當不能以之限定本發明之專利範圍,即大凡依本發明所揭示之精神所作之均等變化或修飾,仍應涵蓋在本發明之專利範圍內。
S11~S16‧‧‧流程步驟
Claims (21)
- 一種固態硬碟的資料管理方法,適用於一固態硬碟以及控制該固態硬碟之一韌體,該資料管理方法包含: a.傳送N個寫入指令至該韌體以寫入至少一資料至該固態硬碟,其中每一該N個寫入指令包含一邏輯區塊位址以及一磁區計數值; b.由該韌體依序儲存該N個寫入指令之該邏輯區塊位址以及該磁區計數值; c.將j初始化為1,將一循序寫入計數值初始化為0,其中j為一正整數且j小於N; d.由該韌體判斷第j個寫入指令與第(j+1)個寫入指令是否為循序寫入,若是,則將該循序寫入計數值遞增1; e.若j小於(N-1),將j遞增1並執行步驟d;以及 f.由該韌體將該循序寫入計數值除以(N-1)以產生一循序寫入比例。
- 如申請專利範圍第1項之資料管理方法,更包含若第j個寫入指令之該邏輯區塊位址之值與該磁區計數值之總和等於第(j+1)個寫入指令之該邏輯區塊位址之值,將該循序寫入計數值遞增1。
- 一種固態硬碟的寫入管理方法,適用於一應用程式以及控制一固態硬碟之一韌體,該寫入管理方法包含: 利用該應用程式讀取該韌體之一循序寫入比例;以及 若該循序寫入比例高於一第一門檻值時,寫入一第一檔案,若該循序寫入比例低於該第一門檻值時,寫入一第二檔案; 其中該第一檔案之大小係大於該第二檔案之大小。
- 如申請專利範圍第3項之寫入管理方法,其中該第一檔案之大小係大於該固態硬碟之一磁區之大小,該第二檔案之大小係小於該磁區之大小。
- 一種固態硬碟的寫入管理方法,適用於一固態硬碟以及控制該固態硬碟之一韌體,該寫入管理方法包含:傳送複數個寫入指令至該韌體以寫入至少一資料至該固態硬碟,其中每一該複數個寫入指令包含一邏輯區塊位址以及一磁區計數值; 該韌體依序儲存每一該複數個寫入指令之該邏輯區塊位址以及該磁區計數值; 利用一應用程式依序讀取該些邏輯區塊位址以及該些磁區計數值; 根據該些邏輯區塊位址及該些磁區計數值以決定一循序寫入比例;以及 由該應用程式根據該循序寫入比例以更新該韌體成一第一韌體。
- 如申請專利範圍第5項之寫入管理方法,更包含當該循序寫入比例高於一第二門檻值時,更新該韌體為一低解析對映(Low-resolution mapping)之位址轉換模式。
- 如申請專利範圍第5項之寫入管理方法,更包含當該循序寫入比例低於一第二門檻值時,更新該韌體為一高解析對映(High-resolution mapping)之位址轉換模式。
- 如申請專利範圍第5項之寫入管理方法,更包含當該循序寫入比例介於一門檻值區間時,更新該韌體為一混合對映(Hybrid mapping)之位址轉換模式。
- 如申請專利範圍第5項之寫入管理方法,其中該複數個寫入指令係在一時間區段內產生。
- 一種固態硬碟的寫入管理方法,適用於一固態硬碟以及控制該固態硬碟之一韌體,該寫入管理方法包含: 傳送複數個寫入指令至該韌體以寫入至少一資料至該固態硬碟,其中每一該複數個寫入指令包含一邏輯區塊位址以及一磁區計數值; 由該韌體決定該複數個寫入指令之一循序寫入比例以產生一韌體更新建議;以及 由一應用程式讀取該韌體更新建議並根據該韌體更新建議以更新該韌體成一第一韌體。
- 如申請專利範圍第10項之寫入管理方法,更包含當該循序寫入比例高於一第二門檻值時,更新該韌體為一低解析對映(Low-resolution mapping)之位址轉換模式。
- 如申請專利範圍第10項之寫入管理方法,更包含當該循序寫入比例低於一第二門檻值時,更新該韌體為一高解析對映(High-resolution mapping)之位址轉換模式。
- 如申請專利範圍第10項之寫入管理方法,更包含當該循序寫入比例介於一門檻值區間時,更新該韌體為一混合對映(Hybrid mapping)之位址轉換模式。
- 如申請專利範圍第10項之寫入管理方法,其中該複數個寫入指令係在一時間區段內產生。
- 一種固態硬碟的寫入管理系統,包含: 一固態硬碟; 一韌體,係接收複數個寫入指令以寫入至少一資料至該固態硬碟,該韌體係決定該複數個寫入指令之一循序寫入比例,並產生一韌體更新建議; 一應用程式,係讀取該韌體更新建議並根據該韌體更新建議以更新該韌體成一第一韌體。
- 如申請專利範圍第15項之寫入管理系統,其中每一該複數個寫入指令包含一邏輯區塊位址以及一磁區計數值。
- 如申請專利範圍第15項之寫入管理系統,其中該複數個寫入指令係由至少一循序寫入指令以及至少一隨機寫入指令所組成。
- 如申請專利範圍第17項之寫入管理系統,其中該循序寫入比例係為該至少一循序寫入指令之個數除以該複數個寫入指令之個數之比例。
- 如申請專利範圍第15項之寫入管理系統,其中該第一韌體為具有一低解析對映(Low-resolution mapping)之位址轉換模式之韌體。
- 如申請專利範圍第15項之寫入管理系統,其中該第一韌體為具有一高解析對映(High-resolution mapping)之位址轉換模式之韌體。
- 如申請專利範圍第15項之寫入管理系統,其中該第一韌體為具有一混合對映(Hybrid mapping)之位址轉換模式之韌體。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104132033A TWI553481B (zh) | 2015-09-30 | 2015-09-30 | 固態硬碟的資料管理方法、寫入管理系統及其方法 |
US14/942,630 US20170090782A1 (en) | 2015-09-30 | 2015-11-16 | Writing management method and writing management system for solid state drive |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104132033A TWI553481B (zh) | 2015-09-30 | 2015-09-30 | 固態硬碟的資料管理方法、寫入管理系統及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI553481B true TWI553481B (zh) | 2016-10-11 |
TW201712552A TW201712552A (zh) | 2017-04-01 |
Family
ID=57848260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104132033A TWI553481B (zh) | 2015-09-30 | 2015-09-30 | 固態硬碟的資料管理方法、寫入管理系統及其方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20170090782A1 (zh) |
TW (1) | TWI553481B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI693518B (zh) * | 2019-01-16 | 2020-05-11 | 慧榮科技股份有限公司 | 資料儲存裝置及避免韌體失效之方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669626B (zh) * | 2017-10-16 | 2021-12-03 | 建兴储存科技(广州)有限公司 | 固态储存装置及其相关数据管理方法 |
TWI738451B (zh) * | 2020-08-05 | 2021-09-01 | 宇瞻科技股份有限公司 | 資料備份方法及儲存裝置 |
US11561729B2 (en) * | 2020-08-19 | 2023-01-24 | Micron Technology, Inc. | Write determination counter |
CN117453152B (zh) * | 2023-12-25 | 2024-04-02 | 武汉麓谷科技有限公司 | 一种ZNS固态硬盘Zone LBA管理方法以及区块管理命令的算法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090276601A1 (en) * | 2006-10-12 | 2009-11-05 | Foundry Networks, Inc. | Virtual memory mapping for efficient memory usage |
TW201235843A (en) * | 2011-02-02 | 2012-09-01 | Micron Technology Inc | Control arrangements and methods for accessing block oriented nonvolatile memory |
US20130097362A1 (en) * | 2011-10-12 | 2013-04-18 | Phison Electronics Corp. | Data writing method, and memory controller and memory storage apparatus using the same |
TW201518945A (zh) * | 2013-11-14 | 2015-05-16 | Phison Electronics Corp | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060044934A1 (en) * | 2004-09-02 | 2006-03-02 | Micron Technology, Inc. | Cluster based non-volatile memory translation layer |
JP5124217B2 (ja) * | 2007-09-18 | 2013-01-23 | 株式会社日立製作所 | ストレージ装置 |
CN101241472B (zh) * | 2008-03-07 | 2010-12-22 | 威盛电子股份有限公司 | 映射管理方法及系统 |
WO2013183088A1 (en) * | 2012-06-07 | 2013-12-12 | Hitachi, Ltd. | Storage subsystem and storage control method |
KR20160016421A (ko) * | 2014-08-05 | 2016-02-15 | 삼성전자주식회사 | 비휘발성 메모리 기반의 스토리지 장치의 최적화 방법 |
US9594513B1 (en) * | 2015-06-29 | 2017-03-14 | EMC IP Holding Company LLC | Data storage system with file system stream detection |
-
2015
- 2015-09-30 TW TW104132033A patent/TWI553481B/zh active
- 2015-11-16 US US14/942,630 patent/US20170090782A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090276601A1 (en) * | 2006-10-12 | 2009-11-05 | Foundry Networks, Inc. | Virtual memory mapping for efficient memory usage |
TW201235843A (en) * | 2011-02-02 | 2012-09-01 | Micron Technology Inc | Control arrangements and methods for accessing block oriented nonvolatile memory |
US20130097362A1 (en) * | 2011-10-12 | 2013-04-18 | Phison Electronics Corp. | Data writing method, and memory controller and memory storage apparatus using the same |
TW201518945A (zh) * | 2013-11-14 | 2015-05-16 | Phison Electronics Corp | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI693518B (zh) * | 2019-01-16 | 2020-05-11 | 慧榮科技股份有限公司 | 資料儲存裝置及避免韌體失效之方法 |
US11354192B2 (en) | 2019-01-16 | 2022-06-07 | Silicon Motion, Inc. | Data storage devices and methods for firmware failure prevention |
Also Published As
Publication number | Publication date |
---|---|
TW201712552A (zh) | 2017-04-01 |
US20170090782A1 (en) | 2017-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10430084B2 (en) | Multi-tiered memory with different metadata levels | |
KR101916206B1 (ko) | 고체 상태 드라이브에서 자유 공간 어카운트와 함께 재구축되는 2 스테이지 파워 온 맵을 위한 방법들, 디바이스들, 및 시스템들 | |
KR101852668B1 (ko) | 어드레스 매핑 | |
KR101390134B1 (ko) | 비휘발성 메모리를 갖는 시스템을 위한 동적 및 정적 데이터의 처리 | |
JP5792841B2 (ja) | メモリ内のデータを管理するための方法および装置 | |
KR101788332B1 (ko) | 비휘발성 메모리 시스템 내의 미사용 논리 어드레스들의 마운트 시간 맵핑 해제 | |
TWI553481B (zh) | 固態硬碟的資料管理方法、寫入管理系統及其方法 | |
TWI569139B (zh) | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 | |
KR101865959B1 (ko) | 비휘발성 메모리를 갖는 시스템을 위한 고속 트리 플래트닝 | |
US20200183831A1 (en) | Storage system and system garbage collection method | |
WO2015018305A1 (zh) | 一种存储器的存储方法及存储系统 | |
JP2012058770A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
KR101369408B1 (ko) | 스토리지 시스템 및 이의 데이터 전송 방법 | |
CN106557273A (zh) | 固态硬盘的数据管理方法、写入管理系统及其方法 | |
TWI747532B (zh) | 記憶體裝置 | |
US10073685B2 (en) | Methods of system optimization by over-sampling read | |
TW201915738A (zh) | 記憶體的資料管理方法及記憶體裝置 | |
JP6721765B2 (ja) | メモリシステムおよび制御方法 | |
JP2009282568A (ja) | 半導体記録装置 | |
CN117806985A (zh) | 一种实现垃圾回收的方法、装置、计算机存储介质及终端 |