欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種固態(tài)硬盤數(shù)據(jù)傳輸方法及裝置與流程

文檔序號:12747959閱讀:503來源:國知局
一種固態(tài)硬盤數(shù)據(jù)傳輸方法及裝置與流程

本發(fā)明涉及固態(tài)硬盤數(shù)據(jù)讀取技術(shù)領(lǐng)域,特別是涉及一種固態(tài)硬盤數(shù)據(jù)傳輸方法及裝置。



背景技術(shù):

NAND FLASH訪問速度遠小于內(nèi)存訪問速度,而內(nèi)存訪問速度又比不上片上RAM的訪問速度。如果可以利用時間局部性和空間局部性的原理,在硬盤內(nèi)部增加CACHE機制,訪問片上RAM和內(nèi)存的概率遠遠大于訪問FLASH的概率(如90%以上),那么將大量的減少固態(tài)硬盤的FLASH訪問時間,從而增加它的I/O速度和帶寬,極大提升固態(tài)硬盤的性能。

鑒于此,如何在固態(tài)硬盤內(nèi)部加入緩存機制是本領(lǐng)域技術(shù)人員亟待解決的技術(shù)問題。



技術(shù)實現(xiàn)要素:

本發(fā)明的目的是提供一種固態(tài)硬盤數(shù)據(jù)傳輸方法及裝置,目的在于提供一種在固態(tài)硬盤內(nèi)部加入緩存的機制。

為解決上述技術(shù)問題,本發(fā)明提供一種固態(tài)硬盤數(shù)據(jù)傳輸方法,包括:

接收數(shù)據(jù)訪問請求;

獲取FTL映射表緩存數(shù)據(jù),所述FTL映射表緩存數(shù)據(jù)為從FLASH將FTL映射表條目加載入緩存;

通過所述FTL映射表緩存數(shù)據(jù)判斷緩存中是否有待訪問數(shù)據(jù);

如果有,則直接把緩存中對應(yīng)的所述待訪問數(shù)據(jù)傳輸至上位機。

可選地,所述FTL映射表緩存數(shù)據(jù)包括:狀態(tài)、掩碼、FLASH頁號、有效字段、臟頁字段、LRU字段、標記字段以及緩存頁號字段。

可選地,在通過所述FTL映射表緩存數(shù)據(jù)判斷緩存中是否有待訪問數(shù)據(jù)之后還包括:

當所述緩存中沒有所述待訪問數(shù)據(jù)時,通過所述FTL映射表緩存數(shù)據(jù)檢查組內(nèi)是否存在空閑條目;

如果是,則將FTL映射條目加載入緩存,并將數(shù)據(jù)從FLASH加載入內(nèi)存,將待訪問數(shù)據(jù)傳輸至上位機。

可選地,所述通過所述FTL映射表緩存數(shù)據(jù)檢查組內(nèi)是否存在空閑條目之后還包括:

當所述FTL映射表緩存數(shù)據(jù)檢查組內(nèi)不存在空閑條目時,確定犧牲表項;

將FTL映射條目加載入緩存,從FLASH加載數(shù)據(jù)至內(nèi)存,將所述待訪問數(shù)據(jù)傳輸至上位機。

可選地,所述確定犧牲表項之后還包括:

判斷所述犧牲表項是否是臟頁;

如果是,則將所述犧牲表項寫入緩存,將對應(yīng)的數(shù)據(jù)寫入到FLASH。

本發(fā)明還提供了一種固態(tài)硬盤數(shù)據(jù)傳輸裝置,包括:

接收模塊,用于接收數(shù)據(jù)訪問請求;

獲取模塊,用于獲取FTL映射表緩存數(shù)據(jù),所述FTL映射表緩存數(shù)據(jù)為從FLASH將FTL映射表條目加載入緩存;

判斷模塊,用于通過所述FTL映射表緩存數(shù)據(jù)判斷緩存中是否有待訪問數(shù)據(jù);

傳輸模塊,用于在判定緩存中有待訪問數(shù)據(jù)時,則直接把緩存中對應(yīng)的所述待訪問數(shù)據(jù)傳輸至上位機。

可選地,所述FTL映射表緩存數(shù)據(jù)包括:狀態(tài)、掩碼、FLASH頁號、有效字段、臟頁字段、LRU字段、標記字段以及緩存頁號字段。

可選地,所述傳輸模塊還用于:

在通過所述FTL映射表緩存數(shù)據(jù)判斷緩存中是否有待訪問數(shù)據(jù)之后,當所述緩存中沒有所述待訪問數(shù)據(jù)時,通過所述FTL映射表緩存數(shù)據(jù)檢查組內(nèi)是否存在空閑條目;如果是,則將FTL映射條目加載入緩存,并將數(shù)據(jù)從FLASH加載入內(nèi)存,將待訪問數(shù)據(jù)傳輸至上位機。

可選地,所述傳輸模塊還用于:

當所述FTL映射表緩存數(shù)據(jù)檢查組內(nèi)不存在空閑條目時,確定犧牲表項;將FTL映射條目加載入緩存,從FLASH加載數(shù)據(jù)至內(nèi)存,將所述待訪問數(shù)據(jù)傳輸至上位機。

可選地,所述傳輸模塊還用于:

確定犧牲表項之后,判斷所述犧牲表項是否是臟頁;如果是,則將所述犧牲表項寫入緩存,將對應(yīng)的數(shù)據(jù)寫入到FLASH。

本發(fā)明所提供的固態(tài)硬盤數(shù)據(jù)傳輸方法及裝置,通過接收數(shù)據(jù)訪問請求;獲取FTL映射表緩存數(shù)據(jù),F(xiàn)TL映射表緩存數(shù)據(jù)為從FLASH將FTL映射表條目加載入緩存;通過FTL映射表緩存數(shù)據(jù)判斷緩存中是否有待訪問數(shù)據(jù);如果有,則直接把緩存中對應(yīng)的待訪問數(shù)據(jù)傳輸至上位機。本發(fā)明所提供的固態(tài)硬盤數(shù)據(jù)傳輸方法及裝置,把CPU的CACHE原理應(yīng)用于固態(tài)硬盤,內(nèi)存的讀寫速度遠遠大于FLASH的讀寫速度,如果CACHE命中率高的話,上位機訪問磁盤的速度就接近于訪問內(nèi)存的速度。可見,本申請極大地加快了磁盤的訪問速度,簡化了FLASH控制器芯片的實現(xiàn)。

附圖說明

為了更清楚的說明本發(fā)明實施例或現(xiàn)有技術(shù)的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明所提供的固態(tài)硬盤數(shù)據(jù)傳輸方法的一種具體實施方式的流程圖;

圖2為FTL映射表在內(nèi)存的存儲格式;

圖3為FTL映射表在CACHE的格式示意圖;

圖4為NAND FLASH讀寫的CACHE機制示意圖;

圖5為本發(fā)明所提供的固體硬盤數(shù)據(jù)傳輸方法的另一種具體實施方式的流程圖;

圖6為本發(fā)明實施例提供的固態(tài)硬盤數(shù)據(jù)傳輸裝置的結(jié)構(gòu)框圖。

具體實施方式

為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和具體實施方式對本發(fā)明作進一步的詳細說明。顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

本發(fā)明所提供的固態(tài)硬盤數(shù)據(jù)傳輸方法的一種具體實施方式的流程圖如圖1所示,該方法包括:

步驟S101:接收數(shù)據(jù)訪問請求;

步驟S102:獲取FTL映射表緩存數(shù)據(jù),所述FTL映射表緩存數(shù)據(jù)為從FLASH將FTL映射表條目加載入緩存;

步驟S103:通過所述FTL映射表緩存數(shù)據(jù)判斷緩存中是否有待訪問數(shù)據(jù);

步驟S104:如果有,則直接把緩存中對應(yīng)的所述待訪問數(shù)據(jù)傳輸至上位機。

本發(fā)明所提供的固態(tài)硬盤數(shù)據(jù)傳輸方法,通過接收數(shù)據(jù)訪問請求;獲取FTL映射表緩存數(shù)據(jù),F(xiàn)TL映射表緩存數(shù)據(jù)為從FLASH將FTL映射表條目加載入緩存;通過FTL映射表緩存數(shù)據(jù)判斷緩存中是否有待訪問數(shù)據(jù);如果有,則直接把緩存中對應(yīng)的待訪問數(shù)據(jù)傳輸至上位機。本發(fā)明所提供的固態(tài)硬盤數(shù)據(jù)傳輸方法,把CPU的CACHE原理應(yīng)用于固態(tài)硬盤,內(nèi)存的讀寫速度遠遠大于FLASH的讀寫速度,如果CACHE命中率高的話,上位機訪問磁盤的速度就接近于訪問內(nèi)存的速度??梢?,本申請極大地加快了磁盤的訪問速度,簡化了FLASH控制器芯片的實現(xiàn)。

在上述實施例中,F(xiàn)TL映射表緩存數(shù)據(jù)可以具體包括:狀態(tài)、掩碼、FLASH頁號、有效字段、臟頁字段、LRU字段、標記字段以及緩存頁號字段。

在上述實施例的基礎(chǔ)上,本申請實施例在通過所述FTL映射表緩存數(shù)據(jù)判斷緩存中是否有待訪問數(shù)據(jù)之后還包括:

當所述緩存中沒有所述待訪問數(shù)據(jù)時,通過所述FTL映射表緩存數(shù)據(jù)檢查組內(nèi)是否存在空閑條目;

如果是,則將FTL映射條目加載入緩存,并將數(shù)據(jù)從FLASH加載入內(nèi)存,將待訪問數(shù)據(jù)傳輸至上位機。

進一步地,所述通過所述FTL映射表緩存數(shù)據(jù)檢查組內(nèi)是否存在空閑條目之后還包括:

當所述FTL映射表緩存數(shù)據(jù)檢查組內(nèi)不存在空閑條目時,確定犧牲表項;

將FTL映射條目加載入緩存,從FLASH加載數(shù)據(jù)至內(nèi)存,將待訪問數(shù)據(jù)傳輸至上位機。

上述在確定犧牲表項之后還包括:

判斷所述犧牲表項是否是臟頁;

如果是,則將所述犧牲表項寫入緩存,將對應(yīng)的數(shù)據(jù)寫入到FLASH。

下面通過一具體示例來闡述NAND FLASH讀寫的CACHE機制。

假定FLASH讀寫頁為16KB,邏輯塊大小為4KB,磁盤總?cè)萘繛?T。FTL映射表在內(nèi)存的存儲格式如圖2。FTL映射表在CACHE的格式示意圖如圖3。NAND FLASH讀寫的CACHE機制示意圖如圖4。

上層PC機讀寫硬盤是以邏輯塊為單位,由于NAND FLASH寫時必須先擦除(擦除以塊為單位,讀寫以頁為單位),所以磁盤邏輯頁和NAND FLASH的物理頁之間有一個映射關(guān)系,稱之為FTL映射表。

FTL映射表和數(shù)據(jù)分開緩存,F(xiàn)TL映射表保存在FLASH上,在磁盤設(shè)備上電時從FLASH加載入內(nèi)存,數(shù)據(jù)緩存初始狀態(tài)數(shù)據(jù)為空,磁盤讀寫時,先把FTL映射表條目加載入CACHE,對應(yīng)的頁數(shù)據(jù)加載入數(shù)據(jù)緩存所在內(nèi)存。

如圖2所示,F(xiàn)TL映射表有三個域:狀態(tài)、掩碼和FLASH頁號。狀態(tài)域通常只有1b,0表示該線性地址所指的頁為空白頁,1表示該頁有數(shù)據(jù),且數(shù)據(jù)在FLASH頁號所指的地址上;通常邏輯塊的大小與FLASH頁大小不一致(如FLASH頁大小為16KB,邏輯塊大小為4KB),所以有掩碼來確定FLASH頁內(nèi)數(shù)據(jù)是否有效,1為有效數(shù)據(jù),0為無效數(shù)據(jù)。

加載入片上RAM的FTL映射條目相比保存在內(nèi)存里的FTL映射表,增加了有效、臟頁、LRU、標記、緩存頁號五個字段。有效字段表示該映射條目有效與否,0代表無效,1代表有效;臟頁字段表示該條目代表的數(shù)據(jù)頁是否被修改;LRU字段記錄了該條目的換出優(yōu)先級;標記字段表示該條目在FTL映射表的偏移;緩存頁號代表該條目指向的緩存偏移地址。圖3示出了本發(fā)明所提供的FTL映射表CACHE條目示意圖。

CACHE保存的FTL映射條目里指向的緩存地址亂序的,為條目分配緩存地址依靠一個FIFO來實現(xiàn)。初始化的時會把空閑緩存地址全部入FIFO,加載新FTL映射條目時會從FIFO取出一個緩存地址。當把FTL映射表換出到內(nèi)存時,會把它釋放的緩存地址入FIFO。

CACHE不命中時,如果CACHE組內(nèi)沒有無效頁,就根據(jù)LRU字段確定犧牲條目,假定犧牲條目為臟頁,則需要先把該條目挪到寫緩存里,以待把條目所指的數(shù)據(jù)寫入到FLASH后才能換出到內(nèi)存。寫緩存遵循CAM(Content Addressed Memory)原理,所以條目數(shù)較少。

參照圖5本發(fā)明所提供的固體硬盤數(shù)據(jù)傳輸方法的另一種具體實施方式的流程圖,該過程具體包括:

上位機軟件訪問磁盤會給出邏輯塊地址,設(shè)備收到邏輯塊地址后會先把它轉(zhuǎn)換成FTL映射表的偏移及邏輯塊在FLASH頁內(nèi)的偏移,然后訪問FTL映射表CACHE檢查是否命中,如果命中直接把內(nèi)存的數(shù)據(jù)傳輸給上位機會從上位機取數(shù)到緩存。如果不命中,就先判斷組內(nèi)是否有空閑條目,有就把FTL映射條目加載入CACHE,并把數(shù)據(jù)從FLASH加載入內(nèi)存,再進行上位機與設(shè)備的數(shù)據(jù)傳輸。如果沒有空閑條目,就必須先確定犧牲條目,并確定犧牲條目是否為臟頁,如果是臟頁就把條目導入到寫緩存中,然后導入當前所需條目,從FLASH加載數(shù)據(jù)至內(nèi)存,然后與上位機進行數(shù)據(jù)傳輸。

下面對本發(fā)明實施例提供的固態(tài)硬盤數(shù)據(jù)傳輸裝置進行介紹,下文描述的固態(tài)硬盤數(shù)據(jù)傳輸裝置與上文描述的固態(tài)硬盤數(shù)據(jù)傳輸方法可相互對應(yīng)參照。

圖6為本發(fā)明實施例提供的固態(tài)硬盤數(shù)據(jù)傳輸裝置的結(jié)構(gòu)框圖,參照圖6固態(tài)硬盤數(shù)據(jù)傳輸裝置可以包括:

接收模塊100,用于接收數(shù)據(jù)訪問請求;

獲取模塊200,用于獲取FTL映射表緩存數(shù)據(jù),所述FTL映射表緩存數(shù)據(jù)為從FLASH將FTL映射表條目加載入緩存;

判斷模塊300,用于通過所述FTL映射表緩存數(shù)據(jù)判斷緩存中是否有待訪問數(shù)據(jù);

傳輸模塊400,用于在判定緩存中有待訪問數(shù)據(jù)時,則直接把緩存中對應(yīng)的所述待訪問數(shù)據(jù)傳輸至上位機。

在上述實施例的基礎(chǔ)上,本發(fā)明所提供的固態(tài)硬盤數(shù)據(jù)傳輸裝置中,所述FTL映射表緩存數(shù)據(jù)包括:狀態(tài)、掩碼、FLASH頁號、有效字段、臟頁字段、LRU字段、標記字段以及緩存頁號字段。

作為一種具體實施方式,本發(fā)明所提供的固態(tài)硬盤數(shù)據(jù)傳輸裝置中,傳輸模塊還用于:

在通過所述FTL映射表緩存數(shù)據(jù)判斷緩存中是否有待訪問數(shù)據(jù)之后,當所述緩存中沒有所述待訪問數(shù)據(jù)時,通過所述FTL映射表緩存數(shù)據(jù)檢查組內(nèi)是否存在空閑條目;如果是,則將FTL映射條目加載入緩存,并將數(shù)據(jù)從FLASH加載入內(nèi)存,將待訪問數(shù)據(jù)傳輸至上位機。

進一步地,所述傳輸模塊還用于:

當所述FTL映射表緩存數(shù)據(jù)檢查組內(nèi)不存在空閑條目時,確定犧牲表項;將FTL映射條目加載入緩存,從FLASH加載數(shù)據(jù)至內(nèi)存,將待訪問數(shù)據(jù)傳輸至上位機。

確定犧牲表項之后,判斷所述犧牲表項是否是臟頁;如果是,則將所述犧牲表項寫入緩存,將對應(yīng)的數(shù)據(jù)寫入到FLASH。

由于內(nèi)存的讀寫速度遠遠大于FLASH的讀寫速度,如果CACHE命中率高的話,上位機訪問磁盤的速度就接近于訪問內(nèi)存的速度。本申請把CPU的CACHE原理應(yīng)用于固態(tài)硬盤,從而使訪問FLASH的速度不成為固態(tài)硬盤的瓶頸??梢?,本申請極大地加快了磁盤的訪問速度,讓用戶能體驗到像訪問內(nèi)存一樣訪問外部存儲設(shè)備,從而可以增加產(chǎn)品經(jīng)濟價值,如存儲服務(wù)器等;通過CACHE原理的使用,簡化了FLASH控制器芯片的實現(xiàn)。

本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同或相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。

專業(yè)人員還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。

結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。

以上對本發(fā)明所提供的固態(tài)硬盤數(shù)據(jù)傳輸方法以及裝置進行了詳細介紹。本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
乐都县| 香港| 赣州市| 灵宝市| 卓尼县| 新绛县| 澳门| 拉萨市| 永嘉县| 汝城县| 老河口市| 宁陵县| 玉树县| 瑞安市| 来凤县| 定日县| 察隅县| 肇东市| 玉山县| 云梦县| 鹤壁市| 基隆市| 神农架林区| 鄄城县| 阿拉善右旗| 长宁县| 连平县| 塔城市| 广灵县| 奉新县| 宜州市| 临高县| 溧阳市| 南岸区| 拉孜县| 阿拉善右旗| 桃江县| 平顺县| 琼海市| 陆丰市| 鄂尔多斯市|