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