一種數(shù)據(jù)讀寫方法及存儲設備的制造方法
【技術領域】
[0001] 本發(fā)明實施例涉及計算機技術領域,尤其涉及一種數(shù)據(jù)讀寫方法及存儲設備。
【背景技術】
[0002] 隨著計算機技術的不斷發(fā)展,輸入輸出(Input Output, 10)已成為整個計算機系 統(tǒng)性能提升的瓶頸,傳統(tǒng)的硬盤受限于其機械式的物理設計結構,IO性能提升已達到極限, 新型存儲介質的引入是未來的趨勢。目前,作為機械式硬盤的一種補充和替代,固態(tài)硬盤已 經在計算機領域取得了較為廣泛的應用。
[0003] 固態(tài)硬盤一般采用閃存(Flash)作為存儲介質,由于材料本身的特性,固態(tài)硬盤與 機械式硬盤相比有著明顯的差異。Flash介質以頁為最小的寫入單位,通常為4kb或8kb, 而現(xiàn)有操作系統(tǒng)讀寫數(shù)據(jù)都是按照機械硬盤的扇區(qū)進行的,通常為512Byte,而且Flash以 塊為最小擦除單位,一個塊通常包括32、64或128個頁,在數(shù)據(jù)更新時,未擦除就無法寫入。 因此,在引入固態(tài)硬盤作為存儲介質時,為了能夠更好的兼容現(xiàn)有的操作系統(tǒng),閃存控制器 中通常需要一個閃存轉換層(Flash translation layer, FTL),F(xiàn)TL中維護了一個映射表, 實現(xiàn)邏輯塊地址(Logical Block Address, LBA)到物理塊地址(Physical Block Address, PBA)的轉換,這樣,操作系統(tǒng)就可以像原來一樣直接操作邏輯塊地址LBA,從而實現(xiàn)了對閃 存介質的訪問。
[0004] 我們知道一個閃存的物理塊地址通常由三部分組成:Bank地址、塊地址和頁地 址。一個Bank內有很多個塊,不同的Bank中的數(shù)據(jù)訪問在設備上使用的是不同的數(shù)據(jù)傳 輸通路,數(shù)據(jù)傳輸是并行的,相互之間不影響,而在同一個Bank內的數(shù)據(jù)訪問則是串行的。 系統(tǒng)軟件的很多10操作都是對一段地址連續(xù)數(shù)據(jù)的訪問,這些數(shù)據(jù)所對應連續(xù)閃存頁面 通常是物理上的同一個Bank,因此,數(shù)據(jù)的訪問在硬件上是串行的?,F(xiàn)有技術中,例如在閃 存中寫入一段地址連續(xù)數(shù)據(jù),數(shù)據(jù)分布會如圖6所示,即一段地址連續(xù)的數(shù)據(jù)會寫入到閃 存中同一個Bank的同一塊中,也就是說,這種方式沒有充分利用閃存Bank的并行特性,增 加了閃存訪問的讀寫延遲。
[0005] 另外,雖然FTL使得閃存設備能夠很好的兼容現(xiàn)有的操作系統(tǒng),但是也存在很多 問題,比如FTL地址映射成為閃存訪問性能提升的瓶頸,此外,F(xiàn)TL的引入使得文件系統(tǒng)和 閃存設備之間存在"雙重地址映射"開銷,增加了系統(tǒng)對于元數(shù)據(jù)的管理和存儲開銷。因此, 有必要提供一種新的方法解決上述問題。
【發(fā)明內容】
[0006] 本發(fā)明實施例提供了一種數(shù)據(jù)讀寫方法及存儲設備,能夠提高10性能,降低數(shù)據(jù) 讀寫延遲,且能夠避免雙重映射的開銷。
[0007] 本發(fā)明實施例第一方面提供了一種數(shù)據(jù)讀寫方法,所述數(shù)據(jù)讀寫方法應用于存儲 設備中,所述存儲設備包括控制器和存儲器,所述方法包括:
[0008] 所述控制器獲取所述存儲器中的任意一個數(shù)據(jù)讀寫的源地址(A,B,C),其中A為 Bank地址,B為塊地址,C為頁面地址;
[0009] 所述控制器根據(jù)預設的并行度將所述源地址中的Bank地址A劃分為高位Al和低 位A2,所述預設的并行度指的是預設的將目標地址連續(xù)的數(shù)據(jù)寫入所述存儲器時同時寫入 的Bank的數(shù)量和讀出所述目標地址連續(xù)的數(shù)據(jù)時從所述存儲器中同時讀取的Bank的數(shù) 量;
[0010] 所述控制器將劃分后的源地址按照預定的移位規(guī)則進行移位得到與所述源地址 對應的目標地址;
[0011] 所述控制器根據(jù)待讀取數(shù)據(jù)的目標地址從對應的源地址讀取所述待讀取數(shù)據(jù)或 根據(jù)待寫入數(shù)據(jù)的目標地址將所述待寫入數(shù)據(jù)寫入對應的源地址。
[0012] 結合本發(fā)明實施例的第一方面,在本發(fā)明實施例第一方面的第一種實施方式中, 所述劃分后的源地址為(A1,A2,B,C),所述預定的移位規(guī)則為(B,A1,C,A2)。
[0013] 結合本發(fā)明實施例的第一方面,或第一方面的第一種實施方式,在本發(fā)明實施例 第一方面的第二種實施方式中,所述源地址中的Bank地址A的位數(shù)為IogT,其中m為所述 存儲器中的Bank的總數(shù)量,m的取值為2的整數(shù)次冪。
[0014] 結合本發(fā)明實施例第一方面的第二種實施方式,在本發(fā)明實施例第一方面的第三 種實施方式中,所述低位A2的位數(shù)為l〇g〗,其中η為所述預設的并行度,η的取值為2的整 數(shù)次冪,所述高位Al的位數(shù)為log『與log〗的差值。
[0015] 結合本發(fā)明實施例第一方面的第三種實施方式,在本發(fā)明實施例第一方面的第四 種實施方式中,所述預設的并行度η小于或等于所述存儲器中的Bank的總數(shù)量m。
[0016] 本發(fā)明實施例第二方面提供了一種存儲設備,包括:
[0017] 獲取單元,用于獲取存儲器中的任意一個數(shù)據(jù)讀寫的源地址(A,B,C),其中A為 Bank地址,B為塊地址,C為頁面地址;
[0018] 位數(shù)劃分單元,用于根據(jù)預設的并行度將所述源地址中的Bank地址A劃分為高 位Al和低位A2,所述預設的并行度指的是預設的將目標地址連續(xù)的數(shù)據(jù)寫入所述存儲器 時同時寫入的Bank的數(shù)量和讀出所述目標地址連續(xù)的數(shù)據(jù)時從所述存儲器中同時讀取的 Bank的數(shù)量;
[0019] 處理單元,用于將劃分后的源地址按照預定的移位規(guī)則進行移位得到與所述源地 址對應的目標地址;
[0020] 數(shù)據(jù)讀寫單元,用于根據(jù)待讀取數(shù)據(jù)的目標地址從對應的源地址讀取所述待讀取 數(shù)據(jù)或根據(jù)待寫入數(shù)據(jù)的目標地址將所述待寫入數(shù)據(jù)寫入對應的源地址。
[0021] 結合本發(fā)明實施例的第二方面,在本發(fā)明實施例第二方面的第一種實施方式中, 所述劃分后的源地址為(A1,A2,B,C),所述預定的移位規(guī)則為(B,A1,C,A2)。
[0022] 結合本發(fā)明實施例的第二方面,或第二方面的第一種實施方式,在本發(fā)明實施例 第二方面的第二種實施方式中,所述源地址中的Bank地址A的位數(shù)為log'丨,其中m為所述 存儲設備中的Bank的總數(shù)量,m的取值為2的整數(shù)次冪。
[0023] 結合本發(fā)明實施例第二方面的第二種實施方式,在本發(fā)明實施例第二方面的第三 種實施方式中,所述低位A2的位數(shù)為kg〗,其中η為所述預設的并行度,η的取值為2的整 數(shù)次冪,所述高位Al的位數(shù)為log?與log]的差值。
[0024] 結合本發(fā)明實施例第二方面的第三種實施方式,在本發(fā)明實施例第二方面的第四 種實施方式中,所述預設的并行度η小于或等于所述存儲器中的Bank的總數(shù)量m。
[0025] 從以上技術方案可以看出,本發(fā)明實施例具有以下優(yōu)點:
[0026] 本發(fā)明實施例中,控制器首先獲取存儲器中的任意一個數(shù)據(jù)讀寫的源地址(A,B, C);根據(jù)預設的并行度將源地址中的Bank地址A劃分為高位Al和低位A2 ;將劃分后的源 地址按照預定的移位規(guī)則進行移位得到與該源地址對應的目標地址;根據(jù)待讀取數(shù)據(jù)的目 標地址從對應的源地址讀取待讀取數(shù)據(jù)或根據(jù)待寫入數(shù)據(jù)的目標地址將待寫入數(shù)據(jù)寫入 對應的源地址。本發(fā)明實施例中,控制器會預先建立存儲器中的數(shù)據(jù)讀寫源地址與數(shù)據(jù)讀 寫目標地址之間的一一對應關系,在將地址連續(xù)的數(shù)據(jù)寫入存儲器時,控制器會按照預先 設置的并行度將數(shù)據(jù)同時寫入多個Bank,在讀取地址連續(xù)的數(shù)據(jù)時,控制器會按照預先設 置的并行度同時從多個Bank讀取數(shù)據(jù),充分利用了 Bank的并行特性,提高了 IO性能,降低 了數(shù)據(jù)讀寫延遲,且能夠避免雙重映射的開銷。
【附圖說明】
[0027] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn) 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。
[0028] 圖1為本發(fā)明數(shù)據(jù)讀寫方法一個應用場景圖;
[0029] 圖2為本發(fā)明數(shù)據(jù)讀寫方法一個實施例示意圖;
[0030] 圖3為本發(fā)明存儲設備一個實施例示意圖;
[0031] 圖4為本發(fā)明存儲設備另一實施例意圖;
[0032] 圖5為本發(fā)明地址連續(xù)的數(shù)據(jù)在存儲器中的寫入位置一個實施例示意圖;
[0033] 圖6為【背景技術】中地址連續(xù)的數(shù)據(jù)在存儲器中的寫入位置示意圖。
【具體實施方式】
[0034] 下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行描述,顯 然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實 施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬 于本發(fā)明保護的范圍。
[0035] 本發(fā)明實施例提供了一種數(shù)據(jù)讀寫方法及存儲設備,能夠提高IO性能,降低數(shù)據(jù) 讀寫延遲,且能夠避免雙重映射的開銷。
[0036] 請參閱圖1,圖1是本發(fā)明實施例數(shù)據(jù)讀寫方法一個應用場景圖,本發(fā)明實施例的 數(shù)據(jù)讀寫方法應用于存儲設備1〇〇,存儲設備100通過連接設備110連接到主機120。
[0037] 其中,主機120可以包括當前技術已知的任何計算設備,如服務器、臺式計算機等 等。