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