固態(tài)硬盤的寫入方法
【專利摘要】一種固態(tài)硬盤的寫入方法,在處理固態(tài)硬盤內(nèi)部寫入數(shù)據(jù)的需求時,檢查寫入數(shù)據(jù)的來源地及目的地的實體地址都在健康狀態(tài),在快閃轉(zhuǎn)換層登錄寫入數(shù)據(jù)的邏輯位對照目的地的實體地址,將儲存在來源地的寫入數(shù)據(jù),直接寫入至目的地的實體地址,以加速寫入速度。
【專利說明】
固態(tài)硬盤的寫入方法
技術(shù)領(lǐng)域
[0001]本發(fā)明有關(guān)一種固態(tài)硬盤,尤其關(guān)于固態(tài)硬盤在寫入數(shù)據(jù)時,處理固態(tài)硬盤內(nèi)部數(shù)據(jù)移轉(zhuǎn)的寫入方法。
【背景技術(shù)】
[0002]固態(tài)硬盤(Solid State Drive,簡稱SSD)是將與非門閃存數(shù)組(NAND FlashMemory Array)整合成為單一的儲存裝置,由于固態(tài)硬盤利用半導體變換電壓記憶的特性,傳輸數(shù)據(jù)非常地快速,且體積輕薄短小,已成為大量信息儲存的消費主流產(chǎn)品。
[0003]如圖1所示,為先前技術(shù)固態(tài)硬盤的數(shù)據(jù)寫入流程。先前技術(shù)固態(tài)硬盤寫入數(shù)據(jù)的需求,主要有二個來源,一是主機要求寫入數(shù)據(jù),另一需求來源來自固態(tài)硬盤的內(nèi)部。當主機要求寫入的數(shù)據(jù)時(請參步驟Pl)會將寫入數(shù)據(jù)暫存在固態(tài)硬盤的動態(tài)隨機內(nèi)存(Dynamic Random Access Memory,簡稱DRAM)中(步驟P2),再利用固態(tài)硬盤的錯誤校正編碼器(Error Correct Code Encoder,簡稱ECC編碼器),對暫存的寫入數(shù)據(jù)進行編碼,加入ECC的編碼數(shù)據(jù)(步驟P3),以便寫入數(shù)據(jù)在儲存后再被讀取時,借由ECC的編碼數(shù)據(jù)自動校正部分讀取訊號失誤的數(shù)據(jù),達到確保正確讀取寫入數(shù)據(jù)的目的。然后將ECC編碼后的寫入數(shù)據(jù),寫入固態(tài)硬盤中的閃存(步驟P4)。
[0004]對于來自固態(tài)硬盤內(nèi)部的寫入數(shù)據(jù)需求(步驟P5),因固態(tài)硬盤內(nèi)閃存的每個記憶單元(Memory Cell)有使用次數(shù)的壽命限制,超過抹除、寫入的限制次數(shù),將造成記憶單元失效。因此固態(tài)硬盤本身需要進行磨耗平衡(Wear Leveling),將已寫入的數(shù)據(jù)重新搬移至抹寫次數(shù)較少的記憶區(qū),平均抹寫次數(shù),以增加固態(tài)硬盤整體的使用壽命。此外,閃存包含多個實體區(qū)塊(Block),實體區(qū)塊內(nèi)含復數(shù)個實體頁(Page)作為數(shù)據(jù)儲存的單位,但抹除數(shù)據(jù)時需以實體區(qū)塊為單位。因此閃存對更新后廢棄的實體頁,無法立即抹除,而是利用邏輯-實體對照的快閃轉(zhuǎn)換層(Flash Transmit Layer,簡稱FTL)登錄為廢棄實體頁,等待固態(tài)硬盤自動執(zhí)行搜集垃圾區(qū)塊程序時,將實體區(qū)塊中少數(shù)有效的實體頁,先搬移至其它實體區(qū)塊,再抹除廢棄實體區(qū)塊中儲存的數(shù)據(jù),以回收實體區(qū)塊再利用。
[0005]固態(tài)硬盤執(zhí)行磨耗平衡或搜集垃圾區(qū)塊程序等內(nèi)部寫入需求時,首先固態(tài)硬盤讀取各閃存需要搬移的數(shù)據(jù)(步驟P6),經(jīng)由錯誤校正編碼器譯碼成原寫入數(shù)據(jù)(步驟P7),暫存在固態(tài)硬盤的動態(tài)隨機內(nèi)存中(步驟P2),重新設(shè)定搬移位置后,再利用錯誤校正編碼器進行編碼,加入ECC的編碼數(shù)據(jù)(步驟P3),最后重新寫入固態(tài)硬盤中的閃存(步驟P4)。
[0006]然而,先前技術(shù)的動態(tài)隨機內(nèi)存通常一邊要接收從主機來的寫入數(shù)據(jù),一邊要接受固態(tài)硬盤內(nèi)部搬移所讀取的數(shù)據(jù),另一邊又要處理閃存寫入數(shù)據(jù)的需求,常常造成數(shù)據(jù)存取不及,導致固態(tài)硬盤寫入數(shù)據(jù)的延遲。此外,在寫入數(shù)據(jù)時,除將主機寫入數(shù)據(jù)暫存在動態(tài)隨機內(nèi)存外,固態(tài)硬盤也將讀取的內(nèi)部寫入數(shù)據(jù)暫時存在動態(tài)隨機內(nèi)存,以致極度使用動態(tài)隨機內(nèi)存,極易造成動態(tài)隨機內(nèi)存容量不足,最后影響固態(tài)硬盤整體的存取效能。因此,固態(tài)硬盤在數(shù)據(jù)的寫入方法上,仍有問題亟待解決。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的提供一種固態(tài)硬盤的寫入方法,借由判斷固態(tài)硬盤內(nèi)部需搬移數(shù)據(jù)的來源地及搬移目的地的閃存的健康性,在健康的狀態(tài),進行固態(tài)硬盤內(nèi)部搬移,以加速數(shù)據(jù)的寫入速度。
[0008]本發(fā)明的另一目的提供一種固態(tài)硬盤的寫入方法,利用固態(tài)硬盤進行內(nèi)部搬移時,不經(jīng)動態(tài)隨機內(nèi)存及編譯碼處理的直接搬移,減少使用動態(tài)隨機內(nèi)存及固態(tài)硬盤的作業(yè),以提尚整體的存取效能。
[0009]為了達到前述發(fā)明的目的,本發(fā)明固態(tài)硬盤的寫入方法,在處理固態(tài)硬盤內(nèi)部寫入數(shù)據(jù)的需求時,由固態(tài)硬盤根據(jù)快閃轉(zhuǎn)換層規(guī)劃寫入數(shù)據(jù)的目的地,并根據(jù)快閃轉(zhuǎn)換層登錄的健康性的管理信息,檢查寫入數(shù)據(jù)的來源地及目的地的實體地址都在健康狀態(tài),在快閃轉(zhuǎn)換層登錄寫入數(shù)據(jù)的邏輯位對照目的地的實體地址,將儲存在來源地的寫入數(shù)據(jù),直接寫入至目的地的實體地址。
[0010]本發(fā)明固態(tài)硬盤的寫入方法,檢查寫入數(shù)據(jù)的來源地及目的地的實體地址有一不健康,讀取來源地儲存的寫入數(shù)據(jù),譯碼寫入數(shù)據(jù)形成具有邏輯地址的原寫入數(shù)據(jù),暫存在動態(tài)隨機內(nèi)存,再重新編碼暫存的原寫入數(shù)據(jù),固態(tài)硬盤重新規(guī)劃儲存目的地的實體地址,并在快閃轉(zhuǎn)換層登錄原寫入數(shù)據(jù)的邏輯位對照搬移目的地的實體地址,然后寫入固態(tài)硬盤中閃存的實體地址。
【附圖說明】
[0011]圖1為先前技術(shù)固態(tài)硬盤的數(shù)據(jù)寫入的流程圖。
[0012]圖2為本發(fā)明固態(tài)硬盤的系統(tǒng)結(jié)構(gòu)。
[0013]圖3為本發(fā)明固態(tài)硬盤對主機需求寫入數(shù)據(jù)的示意圖。
[0014]圖4為本發(fā)明固態(tài)硬盤對內(nèi)部需求寫入數(shù)據(jù)的示意圖。
[0015]圖5為本發(fā)明固態(tài)硬盤無法進行內(nèi)部寫入的示意圖。
[0016]圖6為本發(fā)明固態(tài)硬盤的寫入方法的流程圖。
[0017]符號說明
[0018]20固態(tài)硬盤
[0019]21控制器
[0020]22動態(tài)隨機內(nèi)存
[0021]23錯誤校正編碼器
[0022]24閃存
[0023]25快閃轉(zhuǎn)換層
[0024]26實體頁
[0025]27毀壞實體頁
[0026]30主機
【具體實施方式】
[0027]有關(guān)本發(fā)明為達成上述目的,所采用之技術(shù)手段及其功效,現(xiàn)舉較佳實施例,并配合附圖加以說明如下。
[0028]請同時參閱圖2、圖3及圖4,圖2為本發(fā)明固態(tài)硬盤的系統(tǒng)結(jié)構(gòu),圖3為本發(fā)明固態(tài)硬盤對主機需求寫入數(shù)據(jù)的示意圖,圖4為本發(fā)明固態(tài)硬盤對內(nèi)部需求寫入數(shù)據(jù)的示意圖。圖2中本發(fā)明使用熟知的固態(tài)硬盤系統(tǒng),固態(tài)硬盤系統(tǒng)包含固態(tài)硬盤(SSD) 20連接主機30,主機30發(fā)送存取固態(tài)硬盤20的數(shù)據(jù),固態(tài)硬盤20作為主機30的主要數(shù)據(jù)儲存裝置,設(shè)控制器21控制收發(fā)主機30的數(shù)據(jù),暫存在動態(tài)隨機內(nèi)存(DRAM) 22,另設(shè)有錯誤校正(ECC)編碼器23,對暫存的數(shù)據(jù)進行ECC編碼或譯碼,以確保正確讀寫儲存的數(shù)據(jù)。本發(fā)明的固態(tài)硬盤20內(nèi)含復數(shù)個閃存(FLASH) 24,借由控制器21分配儲存的數(shù)據(jù)至各閃存24,并利用快閃轉(zhuǎn)換層(FTL) 25記錄寫入數(shù)據(jù)的邏輯地址與儲存在各閃存24的實體地址的對照表,以利存取數(shù)據(jù)。
[0029]如圖3所示,本發(fā)明固態(tài)硬盤20對主機30寫入數(shù)據(jù)的需求時,固態(tài)硬盤20利用控制器21接收主機30具有邏輯地址的寫入數(shù)據(jù),例如LOOl至L006,暫存在動態(tài)隨機內(nèi)存22,并控制錯誤校正編碼器23對暫存的寫入數(shù)據(jù)進行編碼,由固態(tài)硬盤20的控制器21,根據(jù)快閃轉(zhuǎn)換層25記錄各閃存24的空或健康的實體頁26,且依據(jù)磨耗平衡等原則規(guī)劃各編碼寫入數(shù)據(jù)的儲存實體頁26,并將寫入數(shù)據(jù)的邏輯地址及編碼后儲存實體頁26的實體地址登錄在快閃轉(zhuǎn)換層25,最后由控制器21,避開如圖3中灰色所示毀壞的實體頁27,將各編碼寫入數(shù)據(jù)平均寫入規(guī)劃的各閃存24的實體頁26。例如暫存在動態(tài)隨機內(nèi)存22的寫入數(shù)據(jù)L005,如虛線指引線,避開閃存FLASHO的實體區(qū)塊R)B1中毀壞的實體頁F0B1002,另儲存在健康的實體頁F0B1003。
[0030]相反地,當主機30指令讀取固態(tài)硬盤20儲存的需要邏輯地址LOOl至L006的數(shù)據(jù)時,由固態(tài)硬盤20的控制器21,根據(jù)快閃轉(zhuǎn)換層25記錄需要數(shù)據(jù)的邏輯地址對照實體地址,讀取對照實體地址的實體頁26的數(shù)據(jù),經(jīng)由錯誤校正編碼器23將儲存的編碼寫入數(shù)據(jù),譯碼為原寫入數(shù)據(jù),例如LOOl至L006,暫存在動態(tài)隨機內(nèi)存22備用。在讀取儲存數(shù)據(jù)過程中,錯誤校正編碼器23依據(jù)各實體頁26譯碼的錯誤率等,評估實體頁26的健康性,并將不健康的實體頁26登錄在快閃轉(zhuǎn)換層25,記錄為毀壞的實體頁27,因此快閃轉(zhuǎn)換層25除了包含固態(tài)硬盤20儲存數(shù)據(jù)的邏輯地址對照實體地址的管理及磨耗平衡等管理信息夕卜,也包含實體區(qū)塊的實體頁26健康性的管理信息。
[0031]圖4中,本發(fā)明固態(tài)硬盤20對內(nèi)部寫入數(shù)據(jù)的需求時,例如固態(tài)硬盤20需搬移閃存FLASHl中實體區(qū)塊B2的實體頁P003儲存數(shù)據(jù),由固態(tài)硬盤20的控制器21,根據(jù)快閃轉(zhuǎn)換層25規(guī)劃搬移數(shù)據(jù)目的地實體頁F0B2P004,再根據(jù)登錄的實體區(qū)塊健康性的管理信息,先判斷搬移數(shù)據(jù)來源地的實體頁F1B2P003的健康性,如果來源地的實體頁F1B2P003對儲存數(shù)據(jù)能維持讀寫良好狀態(tài),則評估來源地的實體頁F1B2P003為健康,否則為不健康。同樣根據(jù)快閃轉(zhuǎn)換層25登錄的實體區(qū)塊健康性的管理信息,判斷搬移數(shù)據(jù)目的地的實體頁F0B2P004的健康性。如果判斷搬移數(shù)據(jù)的來源地與目的地的實體頁均屬健康,則將來源地實體頁F1B2P003儲存的編碼數(shù)據(jù),不經(jīng)過暫存動態(tài)隨機內(nèi)存22及編譯碼的處理,由固態(tài)硬盤20的控制器31控制,在快閃轉(zhuǎn)換層25登錄搬移位置,直接寫入至目的地的實體頁F0B2P004,保持數(shù)據(jù)編碼的完整下,完成內(nèi)部的數(shù)據(jù)搬移。該直接寫入可將來源地實體頁F1B2P003映像至目的地的實體頁R)B2P004。
[0032]如圖5所示,為本發(fā)明固態(tài)硬盤無法進行內(nèi)部寫入的示意圖。本發(fā)明固態(tài)硬盤對內(nèi)部寫入數(shù)據(jù)的需求時,根據(jù)快閃轉(zhuǎn)換層25登錄的實體區(qū)塊健康性的管理信息,如果判斷搬移數(shù)據(jù)的來源地或目的地的實體頁其中有一個不健康,因讀或?qū)懓嵋茢?shù)據(jù)時容易造成失誤,將導致?lián)p毀儲存的數(shù)據(jù)。例如判斷搬移數(shù)據(jù)的目的地的實體頁F0B2P004不健康,如圖5中虛線所示,不能將來源地實體頁F1B2P003直接至目的地的實體頁F0B2P004,需讀取來源地儲存的寫入數(shù)據(jù),經(jīng)過暫存動態(tài)隨機內(nèi)存及編譯碼的處理,再重新寫入固態(tài)硬盤的閃存24。
[0033]因此無法直接寫入時,將讀取搬移數(shù)據(jù)來源地實體頁F1B2P003儲存的編碼數(shù)據(jù),如圖5中實線所示,由快閃轉(zhuǎn)換層25取得邏輯地址,經(jīng)過錯誤校正編碼器譯碼成例如L007的原寫入數(shù)據(jù),并暫存在動態(tài)隨機內(nèi)存22。再由錯誤校正編碼器重新編碼,由控制器重新規(guī)劃儲存目的地的實體頁F0B12P004,并在快閃轉(zhuǎn)換層25登錄邏輯地址對搬移的實體地址,重新寫入閃存24。
[0034]如圖6所示,為本發(fā)明固態(tài)硬盤寫入方法的流程圖。本發(fā)明固態(tài)硬盤的寫入方法詳細步驟說明如下:首先在步驟SI,開始處理固態(tài)硬盤內(nèi)部需求寫入數(shù)據(jù)時,在步驟S2,根據(jù)快閃轉(zhuǎn)換層登錄的實體區(qū)塊健康性的管理信息,檢查需求寫入數(shù)據(jù)的來源地及目的地的實體地址是否都健康?如果需求寫入數(shù)據(jù)的來源地及目的地的實體地址有一不健康,步驟S3讀取來源地儲存的編碼寫入數(shù)據(jù),步驟S4譯碼編碼寫入數(shù)據(jù)形成具有邏輯地址的原寫入數(shù)據(jù),步驟S5將原寫入數(shù)據(jù)暫存在動態(tài)隨機內(nèi)存,步驟S6再重新編碼暫存的原寫入數(shù)據(jù),由固態(tài)硬盤重新規(guī)劃儲存目的地的實體地址,在步驟S7,在快閃轉(zhuǎn)換層登錄原寫入數(shù)據(jù)邏輯地址對照搬移目的地的實體地址,然后在步驟S8寫入閃存的實體地址。
[0035]在步驟S2檢查需求寫入數(shù)據(jù)的來源地及目的地的實體地址的健康性時,如果需求寫入數(shù)據(jù)的來源地及目的地的實體地址都健康,則直接進入步驟S7,在快閃轉(zhuǎn)換層登錄寫入數(shù)據(jù)的邏輯地址對照搬移目的地的實體地址,接著在步驟S8將來源地儲存的編碼寫入數(shù)據(jù),不經(jīng)過暫存動態(tài)隨機內(nèi)存及編譯碼等處理,直接寫入至目的地的實體地址。
[0036]由以上的說明,本發(fā)明固態(tài)硬盤的寫入方法,對固態(tài)硬盤內(nèi)部搬移數(shù)據(jù)的需求,就可借由檢查搬移數(shù)據(jù)的來源地及目的地的閃存都在健康的狀態(tài),直接進行固態(tài)硬盤內(nèi)部搬移,不僅可達到加速數(shù)據(jù)的寫入速度的目的,且不經(jīng)過暫存動態(tài)隨機內(nèi)存及編譯碼等處理,可減少固態(tài)硬盤作業(yè)及使用動態(tài)隨機內(nèi)存的容量,達到提高整體存取效能的目的。
[0037]以上所述者,僅為用以方便說明本發(fā)明的較佳實施例,本發(fā)明的范圍不限于這些較佳實施例,凡依本發(fā)明所做的任何變更,在不脫離本發(fā)明的精神的情況下,都屬本發(fā)明申請的范圍。
【主權(quán)項】
1.一種固態(tài)硬盤的寫入方法,其步驟包含: 處理固態(tài)硬盤內(nèi)部寫入數(shù)據(jù)的需求; 檢查該寫入數(shù)據(jù)的來源地及目的地的實體地址都健康; 在快閃轉(zhuǎn)換層登錄該寫入數(shù)據(jù)的邏輯位對照該目的地的實體地址; 將儲存在該來源地的寫入數(shù)據(jù),直接寫入至該目的地的實體地址。2.如權(quán)利要求1所述的固態(tài)硬盤的寫入方法,其中處理內(nèi)部寫入數(shù)據(jù)的需求時,由固態(tài)硬盤根據(jù)快閃轉(zhuǎn)換層規(guī)劃寫入數(shù)據(jù)的目的地。3.如權(quán)利要求1所述的固態(tài)硬盤的寫入方法,其中該直接寫入在固態(tài)硬盤內(nèi)部進行,不經(jīng)過暫存動態(tài)隨機內(nèi)存及編譯碼的處理。4.如權(quán)利要求2所述的固態(tài)硬盤的寫入方法,其中該直接寫入為將來源地實體地址映像至目的地的實體地址。5.如權(quán)利要求1所述的固態(tài)硬盤的寫入方法,其中該來源地及目的地的實體地址根據(jù)快閃轉(zhuǎn)換層登錄的健康性的管理信息進行檢查的健康性。6.如權(quán)利要求1所述的固態(tài)硬盤的寫入方法,其中該檢查該寫入數(shù)據(jù)的來源地及目的地的實體地址有一不健康,讀取來源地儲存的寫入數(shù)據(jù),經(jīng)過暫存動態(tài)隨機內(nèi)存,重新寫入固態(tài)硬盤的閃存。7.如權(quán)利要求6所述的固態(tài)硬盤的寫入方法,其中讀取來源地儲存的寫入數(shù)據(jù),經(jīng)譯碼寫入數(shù)據(jù)形成具有邏輯地址的原寫入數(shù)據(jù),暫存在動態(tài)隨機內(nèi)存。8.如權(quán)利要求7所述的固態(tài)硬盤的寫入方法,其中該暫存在動態(tài)隨機內(nèi)存的原寫入數(shù)據(jù),由固態(tài)硬盤重新規(guī)劃儲存目的地的實體地址。9.如權(quán)利要求8所述的固態(tài)硬盤的寫入方法,其中該固態(tài)硬盤在快閃轉(zhuǎn)換層登錄原寫入數(shù)據(jù)的邏輯位對照搬移目的地的實體地址,然后寫入閃存的實體地址。
【文檔編號】G06F12/02GK105843746SQ201510013853
【公開日】2016年8月10日
【申請日】2015年1月12日
【發(fā)明人】林政儀, 游英凱, 陳仕偉, 蕭亦隆
【申請人】廣明光電股份有限公司