固態(tài)硬盤寫入數(shù)據(jù)的方法
【技術領域】
[0001]本發(fā)明涉及一種固態(tài)硬盤,特別是涉及固態(tài)硬盤在寫入數(shù)據(jù)時,管理緩沖存儲數(shù)據(jù),搜尋修正相同數(shù)據(jù),以及分配寫入閃存的方法。
【背景技術】
[0002]固態(tài)硬盤(Solid State Drive,簡稱SSD) —般由數(shù)個與非門閃存(NAND FlashMemory)整合成為單一儲存裝置。由于固態(tài)硬盤無移動性的機構,適于隨身攜帶,且傳輸數(shù)據(jù)非??焖伲欣诖罅繑?shù)據(jù)的傳輸,已成為信息儲存的消費主流產(chǎn)品。
[0003]如圖1所示,為現(xiàn)有技術固態(tài)硬盤寫入數(shù)據(jù)的流程?,F(xiàn)有技術固態(tài)硬盤接收主機傳送具有邏輯區(qū)塊地址(Logical Block Address,簡稱LBA)的寫入數(shù)據(jù)區(qū)塊,暫存在緩沖存儲器(請參步驟P1);接著在緩沖存儲器中搜尋相同的寫入數(shù)據(jù)(步驟P2),檢查是否查到相同的寫入數(shù)據(jù)(步驟P3);查到相同的寫入數(shù)據(jù)時,則進行合并修正相同寫入數(shù)據(jù)(步驟P4),再將寫入數(shù)據(jù)區(qū)塊轉換成具有邏輯分配地址(Logical Allocat1n Address,簡稱LAA)的邏輯頁數(shù)據(jù)格式,隨機分配各邏輯頁寫入的閃存,登錄在邏輯-實體對照表(Mapping Table)(步驟P5),分送邏輯頁數(shù)據(jù)經(jīng)閃存各自的先進先出(First In FirstOut,簡稱FIFO)傳輸管道,寫入至各閃存的實體頁(步驟P6)。因此,現(xiàn)有技術固態(tài)硬盤利用緩沖存儲器暫存的寫入數(shù)據(jù),搜尋相同的寫入數(shù)據(jù),并合并修正相同的寫入數(shù)據(jù),以減少相同數(shù)據(jù)重復寫入的時間,避免占住閃存的傳輸管道,導致讀取數(shù)據(jù)的速度下降,造成主機操作的延遲。
[0004]然而,現(xiàn)有技術固態(tài)硬盤在緩沖存儲器搜尋相同的寫入數(shù)據(jù)時,必須搜尋及比對緩沖存儲器中全部暫存的寫入數(shù)據(jù),相當耗費時間。另外,現(xiàn)有技術固態(tài)硬盤將數(shù)據(jù)隨機分配寫入至各閃存,緩沖存儲器無法累積暫存較多的寫入數(shù)據(jù),不僅降低搜尋相同寫入數(shù)據(jù)的機會,且無法平均的寫入到各閃存,而可能一直寫入在同一個固態(tài)硬盤的閃存,讓具有存取次數(shù)限制的閃存,過度集中使用,導致減少壽命。因此,固態(tài)硬盤在寫入數(shù)據(jù)的方法上,仍有問題亟待解決。
【發(fā)明內容】
[0005]本發(fā)明的目的是提供一種固態(tài)硬盤寫入數(shù)據(jù)的方法,藉由在固態(tài)硬盤的緩沖存儲器建立相對應各閃存層的首部連結表,連結暫存邏輯頁的首部,作為搜尋相同寫入數(shù)據(jù)的比較對象,減少比對的數(shù)據(jù),以提高搜尋速度。
[0006]本發(fā)明另一目的是提供一種固態(tài)硬盤寫入數(shù)據(jù)的方法,在固態(tài)硬盤的緩沖存儲器建立相對應各閃存層的數(shù)據(jù)緩沖單元,靜態(tài)及動態(tài)分配寫入的閃存,以平均閃存的壽命。
[0007]本發(fā)明再一目的是提供一種固態(tài)硬盤寫入數(shù)據(jù)的方法,利用緩沖存儲器建立首部連結表及緩沖存儲單元,累積暫存邏輯頁的數(shù)據(jù),在每一邏輯面地址字段被填滿時,同時將暫存的邏輯頁寫入各閃存,以提升寫入效率及搜尋相同數(shù)據(jù)的機會。
[0008]為了達到前述發(fā)明的目的,本發(fā)明固態(tài)硬盤寫入數(shù)據(jù)的方法,在固態(tài)硬盤的緩沖存儲器建立首部連結表與數(shù)據(jù)緩沖單元;接收主機傳送的寫入數(shù)據(jù),轉換成具有邏輯分配地址與邏輯分配數(shù)據(jù)的邏輯頁;在首部連結表搜尋相同的邏輯頁;將接收的邏輯頁合并修正至已暫存的邏輯頁;將邏輯頁的邏輯分配地址暫存在首部連結表,且將邏輯頁的邏輯分配數(shù)據(jù)暫存在數(shù)據(jù)緩沖單元;檢查首部連結表被填滿;將緩沖存儲器暫存的邏輯頁同時寫入各閃存。
[0009]本發(fā)明固態(tài)硬盤寫入數(shù)據(jù)的方法在首部連結表設有邏輯面地址字段暫存邏輯頁的邏輯分配地址,連結所有暫存在緩沖存儲器的邏輯頁的邏輯分配地址形成一比對表,數(shù)據(jù)緩沖單元設有相對應邏輯面地址字段的數(shù)據(jù)緩沖字段暫存相對應邏輯頁的邏輯分配數(shù)據(jù)。各邏輯面地址相對應固態(tài)硬盤的每一閃存,邏輯面地址字段則相對應閃存的存儲層設置,且依相對應的閃存及存儲層順序排列。
[0010]本發(fā)明固態(tài)硬盤寫入數(shù)據(jù)的方法在首部連結表的邏輯面地址字段搜尋相同邏輯頁的邏輯分配地址。未搜尋到相同的邏輯頁時,依序檢查首部連結表中找出空邏輯面地址字段,暫存邏輯頁。而檢查首部連結表未被填滿,繼續(xù)接收主機傳送的寫入數(shù)據(jù)。檢查首部連結表以每一邏輯面地址具有至少一字段被填滿時,將緩沖存儲器暫存的邏輯頁同時寫入各閃存?;蛞詸z查每一邏輯面地址具有至少一字段被填滿時,同時將各邏輯面地址登錄的一邏輯頁寫入各閃存。
【附圖說明】
[0011]圖1為現(xiàn)有技術固態(tài)硬盤寫入數(shù)據(jù)的方法的流程圖。
[0012]圖2為本發(fā)明使用的固態(tài)硬盤的結構圖。
[0013]圖3為本發(fā)明邏輯頁的數(shù)據(jù)格式圖。
[0014]圖4為本發(fā)明的首部連結表的結構圖。
[0015]圖5為本發(fā)明的數(shù)據(jù)緩沖單元的結構圖。
[0016]圖6為本發(fā)明固態(tài)硬盤寫入數(shù)據(jù)的示意圖。
[0017]圖7為本發(fā)明固態(tài)硬盤寫入數(shù)據(jù)的方法流程圖。
[0018]附圖符號說明:
[0019]10 固態(tài)硬盤
[0020]11 控制器
[0021]12 緩沖存儲器
[0022]20 閃存
[0023]21 實體頁
[0024]22 首部
[0025]23 數(shù)據(jù)部
[0026]24 首部連結表
[0027]25 數(shù)據(jù)緩沖單元
【具體實施方式】
[0028]有關本發(fā)明為實現(xiàn)上述目的,所采用的技術手段及其功效,茲舉較佳實施例,并結合附圖加以說明如下。
[0029]請同時參閱圖2、圖3及圖4,圖2為本發(fā)明使用的固態(tài)硬盤的結構圖,圖3為本發(fā)明邏輯頁的數(shù)據(jù)格式圖,圖4為本發(fā)明的首部連結表的結構圖,圖5為本發(fā)明的數(shù)據(jù)緩沖單元的結構圖。圖2中為本發(fā)明使用的公知的固態(tài)硬盤10,固態(tài)硬盤10內設控制器11、緩沖存儲器12及多個閃存20。其中控制器11配合暫存數(shù)據(jù)的緩沖存儲器12,接收主機的存取數(shù)據(jù),控制多個閃存20進行存取數(shù)據(jù)。因固態(tài)硬盤10的閃存20數(shù)量,可依據(jù)所需的存儲容量增減,本實施例的固態(tài)硬盤10雖以四個閃存20,即閃存Flash0-Flash3為例說明,但包含且不限于四個閃存。
[0030]閃存20 —般依據(jù)存儲單元(Cell)可儲存的位數(shù)據(jù)(Bit),分為單層單元(SingleLevel Cell,簡稱SLC)、多層單兀(Multi Level Cell,簡稱MLC)、三層單兀(Triple LevelCell,簡稱TLC)及四層單元(Quad Level Cell,簡稱QLC)等等。本發(fā)明使用的閃存20為多層單元,本實施例雖以雙層儲存位數(shù)據(jù)的多層單元閃存為例說明,但本發(fā)明包含且不限于多層單元閃存。多層單元的閃存20由下存儲層P0與上存儲層P1組成,每一存儲層規(guī)劃有多個實體頁21,用以儲存邏輯頁的數(shù)據(jù)。多層單元的閃存20相鄰上下存儲層的實體頁,具有可同時存取的邏輯頁數(shù)據(jù)的特性。
[0031]本發(fā)明的固態(tài)硬盤10在接收主機傳送具有邏輯區(qū)塊地址(LBA)的寫入數(shù)據(jù)區(qū)塊時,如圖3中,先將寫入數(shù)據(jù)區(qū)塊轉換成具有首部22的邏輯分配地址(LAA)與數(shù)據(jù)部23的邏輯分配數(shù)據(jù)(Logical Allocat1n Data,簡稱LAD)的數(shù)據(jù)格式的邏輯頁。其中首部22的邏輯分配地址為分配邏輯頁將寫入固態(tài)硬盤10的地址,而數(shù)據(jù)部23的邏輯分配數(shù)據(jù)則為真正儲存的使用者數(shù)據(jù),并將邏輯頁暫存在緩沖存儲器12等待寫入閃存20。由于邏輯頁的邏輯分配地址與寫入數(shù)據(jù)區(qū)塊的邏輯區(qū)塊地址具有對應關系,固態(tài)硬盤10利用儲存的對照表加以連結對照。
[0032]為了管理緩沖存儲器12暫存的邏輯頁,圖4中本發(fā)明在緩沖存儲器12建立一個首部連結表24,首部連結表24針對FlashO至Flash3每一閃存20各設一相對應的邏輯面地址(Logical Plane Address,簡稱LPA),即LPA0至LPA3,每一邏輯面地址再依對應的閃存20的下存儲層P0與上存儲層P1規(guī)劃相對應的邏輯面地址上字段與邏輯面地址下字段,用以暫存等待寫入該存儲層的邏輯頁的邏輯分配地址,例如LPA0-P0字段暫存等待寫入FlashO的下存儲層P0的邏輯頁的邏輯分配地址。邏輯面地址字段依相對應的FlashO至Flash3及下存儲層P0與上存儲層P1順序排列。因此首部連結表24可連結所有暫存在緩沖存儲器12的邏輯頁的邏輯分配地址形成一比對表。同樣,在圖5中本發(fā)明在緩沖存儲器12建立一個數(shù)據(jù)緩沖單元(Data Cache Unit,簡稱DCU) 25,數(shù)據(jù)緩沖單元25針對FlashO至Flash3的每一閃存20的下存儲層P0與上存儲層P1各設一相對應的數(shù)據(jù)緩沖字段,且數(shù)據(jù)緩沖字段相對應邏輯面地址字段,用以暫存等待寫入該存儲層的邏輯頁的邏輯分配數(shù)據(jù),例如DCU1-P1字段暫存等待寫入Flashl的上存儲層P1的邏輯頁的邏輯分配數(shù)據(jù)。數(shù)據(jù)緩沖字段對應邏輯面地址字段順序排列。因此數(shù)據(jù)緩沖單元25就可將暫存邏輯頁數(shù)據(jù)量大的邏輯分配數(shù)據(jù)與邏輯分配地址分開存放。
[0033]如圖6所示,為本發(fā)明固態(tài)硬盤寫入數(shù)據(jù)的示意圖。舉一具體實施例說