亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

數(shù)據(jù)存儲(chǔ)方法和硬盤控制器與流程

文檔序號(hào):12063292閱讀:233來源:國(guó)知局
數(shù)據(jù)存儲(chǔ)方法和硬盤控制器與流程

本發(fā)明涉及存儲(chǔ)領(lǐng)域,具體地,涉及一種數(shù)據(jù)存儲(chǔ)方法和硬盤控制器。



背景技術(shù):

寫入放大是Nand閃存和SSD(Solid State Drives,固態(tài)硬盤)之間相關(guān)聯(lián)的一個(gè)屬性。因?yàn)殚W存必須先刪除才能改寫,在執(zhí)行這些操作的時(shí)候,需要多次移動(dòng)用戶數(shù)據(jù)和元數(shù)據(jù),導(dǎo)致實(shí)際寫入的物理信息量是將要寫入的邏輯數(shù)量的多倍,增加了寫入數(shù)據(jù)量,減少了SSD的使用壽命。

現(xiàn)有技術(shù)為了減小寫入放大,通常采用DDR SDRAM(Double Data Rate SDRAM,雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器)來實(shí)現(xiàn)寫緩存,把主機(jī)頻繁改寫的“熱”數(shù)據(jù)保存在可以任意讀寫的DDR SDRAM中,當(dāng)數(shù)據(jù)變“冷”后或主機(jī)發(fā)送關(guān)機(jī)命令后,把數(shù)據(jù)保存到Nand閃存中。在具體實(shí)施時(shí),寫緩存可以存在于SSD控制器的DDR內(nèi)存中,也可以存在于主機(jī)的DDR內(nèi)存中。主機(jī)端寫緩存的優(yōu)點(diǎn)是容量大,速度快。主機(jī)端和控制器端都有專用的算法或模塊來維護(hù)和管理寫緩存。

但是,在虛擬化環(huán)境中,一個(gè)物理SSD被虛擬成多個(gè)邏輯SSD,每個(gè)邏輯SSD被對(duì)應(yīng)的一個(gè)虛擬主機(jī)管理,在虛擬主機(jī)上運(yùn)行操作系統(tǒng)和SSD驅(qū)動(dòng)程序。在這種環(huán)境下,每個(gè)虛擬主機(jī)上針對(duì)各自的邏輯SSD運(yùn)行獨(dú)立的寫緩存算法,相互之間沒有通信和協(xié)同操作,這就造成了主機(jī)端寫緩存算法缺少跨虛擬機(jī)的全局管理和優(yōu)化能力。



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

本發(fā)明的主要目的是提供一種數(shù)據(jù)存儲(chǔ)方法和硬盤控制器,以解決現(xiàn)有技術(shù)中對(duì)主機(jī)緩存缺少全局管理和優(yōu)化能力的技術(shù)問題。

為了實(shí)現(xiàn)上述目的,本發(fā)明第一方面提供一種數(shù)據(jù)存儲(chǔ)方法,所述方法應(yīng)用于硬盤控制器,所述方法包括:

接收主機(jī)端設(shè)備發(fā)送的第一數(shù)據(jù)寫入指令,所述第一數(shù)據(jù)寫入指令用于向硬盤中寫入目標(biāo)數(shù)據(jù),所述主機(jī)端設(shè)備包括主機(jī)緩存,所述主機(jī)緩存由所述硬盤控制器控制寫入;

確定所述目標(biāo)數(shù)據(jù)是否滿足預(yù)設(shè)寫入條件;

在所述目標(biāo)數(shù)據(jù)滿足所述寫入條件時(shí),將所述目標(biāo)數(shù)據(jù)寫在所述主機(jī)緩存中;

在所述目標(biāo)數(shù)據(jù)不滿足所述寫入條件時(shí),將所述目標(biāo)數(shù)據(jù)寫在所述硬盤的Nand閃存中。

可選地,所述方法還包括:

在所述目標(biāo)數(shù)據(jù)滿足所述寫入條件時(shí),將所述目標(biāo)數(shù)據(jù)寫在所述硬盤的緩存中。

可選地,所述確定所述目標(biāo)數(shù)據(jù)是否滿足預(yù)設(shè)寫入條件,包括:

根據(jù)全局寫緩存管理算法確定所述目標(biāo)數(shù)據(jù)是否為熱數(shù)據(jù)。

可選地,在所述確定所述目標(biāo)數(shù)據(jù)是否滿足預(yù)設(shè)寫入條件之前,所述方法包括:

確定所述第一數(shù)據(jù)寫入指令中包括寫緩存使能信息。

可選地,所述將所述目標(biāo)數(shù)據(jù)寫在所述主機(jī)緩存中,包括:

向所述主機(jī)端設(shè)備返回包括緩存指示信息的寫入成功指令,其中,所述寫入成功指令用于響應(yīng)所述第一數(shù)據(jù)寫入指令,所述緩存指示信息用于指示所述主機(jī)端設(shè)備將所述目標(biāo)數(shù)據(jù)存儲(chǔ)在所述主機(jī)緩存中。

可選地,所述方法還包括:

接收所述主機(jī)端設(shè)備發(fā)送的第二數(shù)據(jù)寫入指令;

確定所述第二數(shù)據(jù)寫入指令未包括寫緩存使能信息;

根據(jù)所述第二數(shù)據(jù)寫入指令向所述硬盤的Nand閃存中寫入數(shù)據(jù)。

本發(fā)明第二方面提供一種硬盤控制器,包括:至少一個(gè)處理器,存儲(chǔ)器;

所述存儲(chǔ)器用于存儲(chǔ)至少一個(gè)程序模塊;

所述至少一個(gè)處理器通過運(yùn)行存儲(chǔ)在所述存儲(chǔ)器的所述至少一個(gè)程序模塊用于:

接收主機(jī)端設(shè)備發(fā)送的第一數(shù)據(jù)寫入指令,所述第一數(shù)據(jù)寫入指令用于向硬盤中寫入目標(biāo)數(shù)據(jù),所述主機(jī)端設(shè)備包括主機(jī)緩存,所述主機(jī)緩存由所述硬盤控制器控制寫入;

確定所述目標(biāo)數(shù)據(jù)是否滿足預(yù)設(shè)寫入條件;

在所述目標(biāo)數(shù)據(jù)滿足所述寫入條件時(shí),將所述目標(biāo)數(shù)據(jù)寫在所述主機(jī)緩存中;

在所述目標(biāo)數(shù)據(jù)不滿足所述寫入條件時(shí),將所述目標(biāo)數(shù)據(jù)寫在所述硬盤的Nand閃存中。

可選地,所述至少一個(gè)處理器還用于:

在所述目標(biāo)數(shù)據(jù)滿足所述寫入條件時(shí),將所述目標(biāo)數(shù)據(jù)寫在所述硬盤的緩存中。

可選地,所述至少一個(gè)處理器確定所述目標(biāo)數(shù)據(jù)是否滿足預(yù)設(shè)寫入條件具體為:根據(jù)全局寫緩存管理算法確定所述目標(biāo)數(shù)據(jù)是否為熱數(shù)據(jù)。

可選地,所述至少一個(gè)處理器還用于:在所述確定所述目標(biāo)數(shù)據(jù)是否滿足預(yù)設(shè)寫入條件之前,確定所述第一數(shù)據(jù)寫入指令中包括寫緩存使能信息。

可選地,所述至少一個(gè)處理器所述將所述目標(biāo)數(shù)據(jù)寫在所述主機(jī)緩存中具體為:向所述主機(jī)端設(shè)備返回包括緩存指示信息的寫入成功指令,其中,所述寫入成功指令用于響應(yīng)所述第一數(shù)據(jù)寫入指令,所述緩存指示信息用于指示所述主機(jī)端設(shè)備將所述目標(biāo)數(shù)據(jù)存儲(chǔ)在所述主機(jī)緩存中。

可選地,所述至少一個(gè)處理器還用于:接收所述主機(jī)端設(shè)備發(fā)送的第二數(shù)據(jù)寫入指令;

確定所述第二數(shù)據(jù)寫入指令未包括寫緩存使能信息;

根據(jù)所述第二數(shù)據(jù)寫入指令向所述硬盤的Nand閃存中寫入數(shù)據(jù)。

本發(fā)明第三方面提供一種硬盤控制器,包括:

接收單元,用于接收主機(jī)端設(shè)備發(fā)送的第一數(shù)據(jù)寫入指令,所述第一數(shù)據(jù)寫入指令用于向硬盤中寫入目標(biāo)數(shù)據(jù),所述主機(jī)端設(shè)備包括主機(jī)緩存,所述主機(jī)緩存由所述硬盤控制器控制寫入;

確定單元,用于確定所述目標(biāo)數(shù)據(jù)是否滿足預(yù)設(shè)寫入條件;

數(shù)據(jù)寫入單元,用于在所述目標(biāo)數(shù)據(jù)滿足所述寫入條件時(shí),將所述目標(biāo)數(shù)據(jù)寫在主機(jī)緩存中;在所述目標(biāo)數(shù)據(jù)不滿足所述寫入條件時(shí),將所述目標(biāo)數(shù)據(jù)寫在所述硬盤的Nand閃存中。

采用上述技術(shù)方案,主機(jī)端設(shè)備將數(shù)據(jù)寫入指令發(fā)送給硬盤控制器,由硬盤控制器確定將數(shù)據(jù)寫入硬盤Nand閃存還是寫入主機(jī)緩存,相比現(xiàn)有技術(shù)中主機(jī)端設(shè)備不經(jīng)過硬盤控制器直接在主機(jī)緩存中寫入數(shù)據(jù),本發(fā)明由硬盤控制器控制主機(jī)緩存的數(shù)據(jù)寫入,由于硬盤控制器具備全局的寫緩存管理和優(yōu)化能力,因此,硬盤控制器可以對(duì)主機(jī)緩存的數(shù)據(jù)存儲(chǔ)進(jìn)行全局管理和優(yōu)化,解決了主機(jī)緩存缺少全局管理和優(yōu)化能力的技術(shù)問題。

本發(fā)明的其他特征和優(yōu)點(diǎn)將在隨后的具體實(shí)施方式部分予以詳細(xì)說明。

附圖說明

附圖是用來提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與下面的具體實(shí)施方式一起用于解釋本發(fā)明,但并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:

圖1是本發(fā)明實(shí)施例提供的一種存儲(chǔ)架構(gòu)示意圖;

圖2是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)方法的流程示意圖;

圖3是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)存儲(chǔ)方法的流程示意圖;

圖4是本發(fā)明實(shí)施例提供的一種硬盤控制器的結(jié)構(gòu)示意圖;

圖5是本發(fā)明實(shí)施例提供的另一種硬盤控制器的結(jié)構(gòu)示意圖。

具體實(shí)施方式

以下結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行詳細(xì)說明。應(yīng)當(dāng)理解的是,此處所描述的具體實(shí)施方式僅用于說明和解釋本發(fā)明,并不用于限制本發(fā)明。

為了使本領(lǐng)域技術(shù)人員更容易理解本發(fā)明實(shí)施例提供的技術(shù)方案,下面首先對(duì)相關(guān)技術(shù)進(jìn)行簡(jiǎn)單介紹。

圖1是本發(fā)明實(shí)施例提供的一種存儲(chǔ)架構(gòu)示意圖,如圖所示,該存儲(chǔ)架構(gòu)包括主機(jī)端設(shè)備10,其中,主機(jī)端設(shè)備10包括主機(jī)緩存100,該存儲(chǔ)架構(gòu)還包括固態(tài)硬盤11,該固態(tài)硬盤11包括SSD控制器110和Nand閃存111。主機(jī)端設(shè)備10與固態(tài)硬盤11相連。

現(xiàn)有的相關(guān)技術(shù)中,主機(jī)緩存100中的數(shù)據(jù)寫入是由主機(jī)端設(shè)備10控制的,例如,主機(jī)端設(shè)備10在確定待寫入固態(tài)硬盤的數(shù)據(jù)為“熱”數(shù)據(jù)時(shí),直接將數(shù)據(jù)寫入主機(jī)緩存100中,當(dāng)數(shù)據(jù)變“冷”后或主機(jī)端設(shè)備關(guān)機(jī)時(shí),向固態(tài)硬盤發(fā)送數(shù)據(jù)寫入指令,將主機(jī)緩存100中的數(shù)據(jù)保存到Nand閃存111中。但是,由于主機(jī)端設(shè)備在運(yùn)行有多個(gè)虛擬機(jī)的情況下,每個(gè)虛擬機(jī)對(duì)主機(jī)緩存進(jìn)行的數(shù)據(jù)寫入是獨(dú)立進(jìn)行的,對(duì)于主機(jī)緩存缺少全局管理和優(yōu)化。

本發(fā)明實(shí)施例提供一種數(shù)據(jù)存儲(chǔ)的方法,該方法應(yīng)用于硬盤控制器,例如圖1中示出的SSD控制器,如圖2所示,該方法包括:

S201、接收主機(jī)端設(shè)備發(fā)送的第一數(shù)據(jù)寫入指令,所述第一數(shù)據(jù)寫入指令用于向硬盤中寫入目標(biāo)數(shù)據(jù),所述主機(jī)端設(shè)備包括主機(jī)緩存,所述主機(jī)緩存由所述硬盤控制器控制寫入;

S202、確定所述目標(biāo)數(shù)據(jù)是否滿足預(yù)設(shè)寫入條件;

S203、在所述目標(biāo)數(shù)據(jù)滿足所述寫入條件時(shí),將所述目標(biāo)數(shù)據(jù)寫在所述主機(jī)緩存中;

S204、在所述目標(biāo)數(shù)據(jù)不滿足所述寫入條件時(shí),將所述目標(biāo)數(shù)據(jù)寫在所述硬盤的Nand閃存中。

這樣,主機(jī)端設(shè)備將數(shù)據(jù)寫入指令發(fā)送給硬盤控制器,由硬盤控制器確定將數(shù)據(jù)寫入硬盤Nand閃存還是寫入主機(jī)緩存,相比現(xiàn)有技術(shù)中主機(jī)端設(shè)備不經(jīng)過硬盤控制器直接在主機(jī)緩存中寫入數(shù)據(jù),本發(fā)明實(shí)施例由硬盤控制器控制主機(jī)緩存的數(shù)據(jù)寫入,由于硬盤控制器具備全局的寫緩存管理和優(yōu)化能力,因此,硬盤控制器可以對(duì)主機(jī)緩存的數(shù)據(jù)存儲(chǔ)進(jìn)行全局管理和優(yōu)化,解決了主機(jī)緩存缺少全局管理和優(yōu)化能力的技術(shù)問題。

下面對(duì)上述步驟進(jìn)行詳細(xì)舉例說明。

由于為了減小寫入放大,緩存除了可以存在于主機(jī)端設(shè)備,還可以存在與硬盤中。因此,在本發(fā)明實(shí)施例的一種可能的實(shí)現(xiàn)方式中,上述步驟S204還可以是,在所述目標(biāo)數(shù)據(jù)滿足所述寫入條件時(shí),將所述目標(biāo)數(shù)據(jù)寫在所述硬盤的緩存中。也就是說,固態(tài)硬盤在每次接收到主機(jī)端設(shè)備發(fā)送的數(shù)據(jù)寫入指令后,可以通過對(duì)預(yù)設(shè)寫入條件的判斷確定本次的待寫入數(shù)據(jù)是寫入主機(jī)緩存還是硬盤緩存或者是Nand閃存。

其中,針對(duì)所述預(yù)設(shè)寫入條件,上述步驟S203可以為:根據(jù)全局寫緩存管理算法確定所述目標(biāo)數(shù)據(jù)是否為熱數(shù)據(jù)。

具體地,熱數(shù)據(jù)可以理解為頻繁,高并發(fā)性寫入Nand閃存中的相同地址的數(shù)據(jù),由于數(shù)據(jù)的頻繁改寫將影響Nand閃存的使用壽命。因此,本發(fā)明實(shí)施例中,硬盤控制器可以通過全局寫緩存管理算法判斷待寫入的數(shù)據(jù)的寫入地址是否被頻繁寫入,若是,則判斷待寫入的數(shù)據(jù)為熱數(shù)據(jù),則硬盤控制器可以進(jìn)一步將該待寫入的數(shù)據(jù)寫入DDR SDRAM實(shí)現(xiàn)的主機(jī)緩存,或者硬盤的緩存,減小了寫入放大。

可選地,本發(fā)明實(shí)施例在確定所述目標(biāo)數(shù)據(jù)是否滿足預(yù)設(shè)寫入條件之前,還可以確定所述第一數(shù)據(jù)寫入指令中包括寫緩存使能信息。

也就是說,硬盤控制器寫主機(jī)緩存的功能可以通過所述寫緩存使能信息開啟,具體地,硬盤控制器在接收到主機(jī)端設(shè)備發(fā)送的數(shù)據(jù)寫入指令后,判斷該數(shù)據(jù)寫入指令是否存在寫緩存使能信息,若存在,則執(zhí)行上述步驟S202至步驟S204,若不存在,則可以直接將待寫入數(shù)據(jù)寫入Nand閃存。

可選地,硬盤控制器在確定所述目標(biāo)數(shù)據(jù)滿足所述寫入條件時(shí),可以通過如下方式將目標(biāo)數(shù)據(jù)寫入主機(jī)緩存:向所述主機(jī)端設(shè)備返回包括緩存指示信息的寫入成功指令,其中,所述寫入成功指令用于響應(yīng)所述第一數(shù)據(jù)寫入指令,所述緩存指示信息用于指示所述主機(jī)端設(shè)備將所述目標(biāo)數(shù)據(jù)存儲(chǔ)在所述主機(jī)緩存中。

也就是說,針對(duì)主機(jī)端設(shè)備發(fā)送的所述第一數(shù)據(jù)寫入指令,硬盤控制器直接返回寫入成功指令,但不讀取待寫入的目標(biāo)數(shù)據(jù),而是通過全局寫緩存管理算法確定目標(biāo)數(shù)據(jù)寫入主機(jī)緩存的地址,并通知主機(jī)端設(shè)備將所述目標(biāo)數(shù)據(jù)寫入主機(jī)緩存。

進(jìn)一步地,所述方法還包括:接收所述主機(jī)端設(shè)備發(fā)送的第二數(shù)據(jù)寫入指令;確定所述第二數(shù)據(jù)寫入指令未包括寫緩存使能信息;根據(jù)所述第二數(shù)據(jù)寫入指令向所述硬盤的Nand閃存中寫入數(shù)據(jù)。

值得說明的是,主機(jī)端設(shè)備在接收到Flush命令或者關(guān)機(jī)命令后,可以向硬盤控制器發(fā)送不包括寫緩存使能信息的數(shù)據(jù)寫入指令,該數(shù)據(jù)寫入指令用于將主機(jī)緩存中的數(shù)據(jù)寫入到硬盤的Nand閃存中,這樣,硬盤控制器在接收到數(shù)據(jù)寫入指令后,確定該數(shù)據(jù)寫入指令未包括寫緩存使能信息,則直接根據(jù)該數(shù)據(jù)寫入指令將主機(jī)緩存中的數(shù)據(jù)寫入Nand閃存。通過上述方式,可以實(shí)現(xiàn)在熱數(shù)據(jù)變冷后,將主機(jī)緩存中存儲(chǔ)的數(shù)據(jù)最終存儲(chǔ)到Nand閃存中。

為了使本領(lǐng)域技術(shù)人員更加理解本發(fā)明實(shí)施例提供的技術(shù)方案,下面基于圖1所示的存儲(chǔ)架構(gòu)對(duì)本發(fā)明實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)方法進(jìn)行詳細(xì)的說明。如圖3所示,包括:

S301、主機(jī)端設(shè)備10發(fā)送第一數(shù)據(jù)寫入指令給SSD控制器110。

其中,該第一數(shù)據(jù)寫入指令用于向硬盤11中寫入目標(biāo)數(shù)據(jù)。

S302、SSD控制器110接收該第一數(shù)據(jù)寫入指令。

S303、SSD控制器110確定該第一數(shù)據(jù)寫入指令是否包括寫緩存使能信息。

具體地,本發(fā)明實(shí)施例可以擴(kuò)展NVMe協(xié)議中的保留字段,在主機(jī)端設(shè)備發(fā)送給硬盤控制器的數(shù)據(jù)寫入指令中增加一個(gè)“主機(jī)寫緩存使能位”,通過判斷該“主機(jī)寫緩存使能位”的值判斷數(shù)據(jù)寫入指令是否包括寫緩存使能信息。例如,若該“主機(jī)寫緩存使能位”的值為1,則確定數(shù)據(jù)寫入指令包括寫緩存使能信息,若該“主機(jī)寫緩存使能位”的值為0,則確定數(shù)據(jù)寫入指令未包括寫緩存使能信息。

進(jìn)一步地,若該第一數(shù)據(jù)寫入指令未包括寫緩存使能信息,則執(zhí)行步驟S304,若該第一數(shù)據(jù)寫入指令包括寫緩存使能信息,則執(zhí)行步驟S305及后續(xù)步驟。

S304、SSD控制器110根據(jù)該第一數(shù)據(jù)寫入指令將目標(biāo)數(shù)據(jù)寫入Nand閃存111。

S305、SSD控制器110判斷待寫入的目標(biāo)數(shù)據(jù)是否為熱數(shù)據(jù)。

進(jìn)一步地,若該目標(biāo)數(shù)據(jù)不是熱數(shù)據(jù),則執(zhí)行步驟S304;若該目標(biāo)數(shù)據(jù)是熱數(shù)據(jù),則執(zhí)行步驟S306及其后續(xù)步驟。

S306、SSD控制器110向主機(jī)端設(shè)備10發(fā)送用于響應(yīng)所述第一數(shù)據(jù)寫入指令的寫入成功指令,其中,所述寫入成功指令包括緩存指示信息。

也就是說,針對(duì)該第一數(shù)據(jù)寫入指令,SSD控制器不從主機(jī)端設(shè)備讀取目標(biāo)數(shù)據(jù),而是直接返回寫入成功指令,并在該寫入成功指令中攜帶緩存指示信息。具體地,本發(fā)明實(shí)施例可以擴(kuò)展NVMe協(xié)議中的保留字段,在寫入成功指令中添加“主機(jī)寫緩存有效位”。這樣,主機(jī)端設(shè)備的驅(qū)動(dòng)程序在確定SSD控制器返回的寫入成功指令中的“主機(jī)寫緩存有效位”的值為1時(shí),將目標(biāo)數(shù)據(jù)寫入主機(jī)緩存中。

S307、主機(jī)端設(shè)備10接收該寫入成功指令,并根據(jù)該緩存指示信息將該目標(biāo)數(shù)據(jù)寫入主機(jī)緩存100中。

S308、主機(jī)端設(shè)備10接收到Flush命令。

其中,F(xiàn)lush命令用于清理緩存,為了避免數(shù)據(jù)丟失,主機(jī)端設(shè)備10在清理緩存之前,可以將主機(jī)緩存中的數(shù)據(jù)寫入到硬盤11中,即執(zhí)行步驟S309。

可替換地,主機(jī)端設(shè)備10也可以是在接收到關(guān)機(jī)指令時(shí),執(zhí)行步驟S309。

S309、主機(jī)端設(shè)備10將包括主機(jī)緩存100中的數(shù)據(jù)的第二數(shù)據(jù)寫入指令發(fā)送給SSD控制器110,其中,該第二數(shù)據(jù)寫入指令不包括寫緩存使能信息。

S310、SSD控制器110接收該第二數(shù)據(jù)寫入指令。

S311、SSD控制器110確定該第二數(shù)據(jù)寫入指令不包括寫緩存使能信息。

S312、SSD控制器110根據(jù)該第二數(shù)據(jù)寫入指令,將主機(jī)緩存100中的數(shù)據(jù)寫入Nand閃存111。

采用上述方法,SSD控制器在確定待寫入硬盤的數(shù)據(jù)為熱數(shù)據(jù)時(shí),可以控制主機(jī)端設(shè)備將數(shù)據(jù)寫入主機(jī)緩存。這樣,即使主機(jī)端設(shè)備運(yùn)行有多個(gè)虛擬機(jī),由于在物理SSD上,每個(gè)虛擬機(jī)對(duì)應(yīng)的邏輯SSD的讀寫操作可以被聚合為統(tǒng)一的讀寫操作,因此,SSD控制器對(duì)于主機(jī)緩存可以進(jìn)行全局的寫緩存管理和優(yōu)化。

另外,對(duì)于上述方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作并不一定是本發(fā)明所必須的。

本發(fā)明實(shí)施例還提供一種硬盤控制器40,用于實(shí)施上述方法實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)方法,如圖4所示,該硬盤控制器40包括:至少一個(gè)處理器401,存儲(chǔ)器402;

所述存儲(chǔ)器402用于存儲(chǔ)至少一個(gè)程序模塊;

所述至少一個(gè)處理器401通過運(yùn)行存儲(chǔ)在所述存儲(chǔ)器402的所述至少一個(gè)程序模塊用于:

接收主機(jī)端設(shè)備發(fā)送的第一數(shù)據(jù)寫入指令,所述第一數(shù)據(jù)寫入指令用于向硬盤中寫入目標(biāo)數(shù)據(jù),所述主機(jī)端設(shè)備包括主機(jī)緩存,所述主機(jī)緩存由所述硬盤控制器控制寫入;

確定所述目標(biāo)數(shù)據(jù)是否滿足預(yù)設(shè)寫入條件;

在所述目標(biāo)數(shù)據(jù)滿足所述寫入條件時(shí),將所述目標(biāo)數(shù)據(jù)寫在所述主機(jī)緩存中;

在所述目標(biāo)數(shù)據(jù)不滿足所述寫入條件時(shí),將所述目標(biāo)數(shù)據(jù)寫在所述硬盤的Nand閃存中。

采用上述硬盤控制器,主機(jī)端設(shè)備將數(shù)據(jù)寫入指令發(fā)送給該硬盤控制器,由該硬盤控制器確定將數(shù)據(jù)寫入硬盤Nand閃存還是寫入主機(jī)緩存,相比現(xiàn)有技術(shù)中主機(jī)端設(shè)備不經(jīng)過硬盤控制器直接在主機(jī)緩存中寫入數(shù)據(jù),本發(fā)明實(shí)施例由硬盤控制器控制主機(jī)緩存的數(shù)據(jù)寫入,由于硬盤控制器具備全局的寫緩存管理和優(yōu)化能力,因此,硬盤控制器可以對(duì)主機(jī)緩存的數(shù)據(jù)存儲(chǔ)進(jìn)行全局管理和優(yōu)化,解決了主機(jī)緩存缺少全局管理和優(yōu)化能力的技術(shù)問題。

可選地,所述至少一個(gè)處理器401還用于:在所述目標(biāo)數(shù)據(jù)滿足所述寫入條件時(shí),將所述目標(biāo)數(shù)據(jù)寫在所述硬盤的緩存中。

可選地,所述至少一個(gè)處理器401確定所述目標(biāo)數(shù)據(jù)是否滿足預(yù)設(shè)寫入條件具體為:根據(jù)全局寫緩存管理算法確定所述目標(biāo)數(shù)據(jù)是否為熱數(shù)據(jù)。

可選地,所述至少一個(gè)處理器401還用于:在所述確定所述目標(biāo)數(shù)據(jù)是否滿足預(yù)設(shè)寫入條件之前,確定所述第一數(shù)據(jù)寫入指令中包括寫緩存使能信息。

可選地,所述至少一個(gè)處理器401所述將所述目標(biāo)數(shù)據(jù)寫在所述主機(jī)緩存中具體為:向所述主機(jī)端設(shè)備返回包括緩存指示信息的寫入成功指令,其中,所述寫入成功指令用于響應(yīng)所述第一數(shù)據(jù)寫入指令,所述緩存指示信息用于指示所述主機(jī)端設(shè)備將所述目標(biāo)數(shù)據(jù)存儲(chǔ)在所述主機(jī)緩存中。

可選地,所述至少一個(gè)處理器401還用于:接收所述主機(jī)端設(shè)備發(fā)送的第二數(shù)據(jù)寫入指令;確定所述第二數(shù)據(jù)寫入指令未包括寫緩存使能信息;根據(jù)所述第二數(shù)據(jù)寫入指令向所述硬盤的Nand閃存中寫入數(shù)據(jù)。

需要說明的是,本領(lǐng)域技術(shù)人員應(yīng)該理解到,圖4示出的是與本發(fā)明各實(shí)施例相關(guān)的硬盤控制器的部分結(jié)構(gòu)的框圖。其中,該硬盤控制器具體可以為SSD控制器。并且,圖4中示出的結(jié)構(gòu)并不構(gòu)成對(duì)硬盤控制器的限定,在具體實(shí)施過程中,該硬盤控制器40可以包括比圖示更多的部件,本發(fā)明對(duì)此不做限定。

本發(fā)明實(shí)施例還提供另一種硬盤控制器50,用于實(shí)施上述方法實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)方法,如圖5所示,該硬盤控制器50包括:

接收單元501,用于接收主機(jī)端設(shè)備發(fā)送的第一數(shù)據(jù)寫入指令,所述第一數(shù)據(jù)寫入指令用于向硬盤中寫入目標(biāo)數(shù)據(jù),所述主機(jī)端設(shè)備包括主機(jī)緩存,所述主機(jī)緩存由所述硬盤控制器控制寫入;

確定單元502,用于確定所述目標(biāo)數(shù)據(jù)是否滿足預(yù)設(shè)寫入條件;

數(shù)據(jù)寫入單元503,用于在所述目標(biāo)數(shù)據(jù)滿足所述寫入條件時(shí),將所述目標(biāo)數(shù)據(jù)寫在主機(jī)緩存中;在所述目標(biāo)數(shù)據(jù)不滿足所述寫入條件時(shí),將所述目標(biāo)數(shù)據(jù)寫在所述硬盤的Nand閃存中。

可選地,所述數(shù)據(jù)寫入單元503還用于:

在所述目標(biāo)數(shù)據(jù)滿足所述寫入條件時(shí),將所述目標(biāo)數(shù)據(jù)寫在所述硬盤的緩存中。

可選地,所述確定單元502具體用于:

根據(jù)全局寫緩存管理算法確定所述目標(biāo)數(shù)據(jù)是否為熱數(shù)據(jù)。

可選地,所述確定單元502在確定所述目標(biāo)數(shù)據(jù)是否滿足預(yù)設(shè)寫入條件之前,還用于:

確定所述第一數(shù)據(jù)寫入指令中包括寫緩存使能信息。

可選地,所述數(shù)據(jù)寫入單元503具體用于:

向所述主機(jī)端設(shè)備返回包括緩存指示信息的寫入成功指令,其中,所述寫入成功指令用于響應(yīng)所述第一數(shù)據(jù)寫入指令,所述緩存指示信息用于指示所述主機(jī)端設(shè)備將所述目標(biāo)數(shù)據(jù)存儲(chǔ)在所述主機(jī)緩存中。

可選地,所示接收單元501還用于,接收所述主機(jī)端設(shè)備發(fā)送的第二數(shù)據(jù)寫入指令;所示確定單元502還用于,確定所述第二數(shù)據(jù)寫入指令未包括寫緩存使能信息;所示數(shù)據(jù)寫入單元503還用于,根據(jù)所述第二數(shù)據(jù)寫入指令向所述硬盤的Nand閃存中寫入數(shù)據(jù)。

本領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,僅以上述各功能模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述功能模塊的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。

采用上述硬盤控制器,主機(jī)端設(shè)備將數(shù)據(jù)寫入指令發(fā)送給該硬盤控制器,由該硬盤控制器確定將數(shù)據(jù)寫入硬盤Nand閃存還是寫入主機(jī)緩存,相比現(xiàn)有技術(shù)中主機(jī)端設(shè)備不經(jīng)過硬盤控制器直接在主機(jī)緩存中寫入數(shù)據(jù),本發(fā)明實(shí)施例由硬盤控制器控制主機(jī)緩存的數(shù)據(jù)寫入,由于硬盤控制器具備全局的寫緩存管理和優(yōu)化能力,因此,硬盤控制器可以對(duì)主機(jī)緩存的數(shù)據(jù)存儲(chǔ)進(jìn)行全局管理和優(yōu)化,解決了主機(jī)緩存缺少全局管理和優(yōu)化能力的技術(shù)問題。

本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。

本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。

這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。

這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。

具體來講,本申請(qǐng)實(shí)施例中的信息處理方法對(duì)應(yīng)的計(jì)算機(jī)程序指令可以被存儲(chǔ)在光盤,硬盤,U盤等存儲(chǔ)介質(zhì)上,當(dāng)存儲(chǔ)介質(zhì)中的與操作引導(dǎo)方法對(duì)應(yīng)的計(jì)算機(jī)程序指令被一電子設(shè)備讀取或被執(zhí)行時(shí),包括如下步驟:

接收主機(jī)端設(shè)備發(fā)送的第一數(shù)據(jù)寫入指令,所述第一數(shù)據(jù)寫入指令用于向硬盤中寫入目標(biāo)數(shù)據(jù),所述主機(jī)端設(shè)備包括主機(jī)緩存,所述主機(jī)緩存由硬盤控制器控制寫入;

確定所述目標(biāo)數(shù)據(jù)是否滿足預(yù)設(shè)寫入條件;

在所述目標(biāo)數(shù)據(jù)滿足所述寫入條件時(shí),將所述目標(biāo)數(shù)據(jù)寫在所述主機(jī)緩存中;

在所述目標(biāo)數(shù)據(jù)不滿足所述寫入條件時(shí),將所述目標(biāo)數(shù)據(jù)寫在所述硬盤的Nand閃存中。

可選地,所述步驟還包括:

在所述目標(biāo)數(shù)據(jù)滿足所述寫入條件時(shí),將所述目標(biāo)數(shù)據(jù)寫在所述硬盤的緩存中。

可選地,所述確定所述目標(biāo)數(shù)據(jù)是否滿足預(yù)設(shè)寫入條件,包括:

根據(jù)全局寫緩存管理算法確定所述目標(biāo)數(shù)據(jù)是否為熱數(shù)據(jù)。

可選地,在所述確定所述目標(biāo)數(shù)據(jù)是否滿足預(yù)設(shè)寫入條件之前,所述方法包括:

確定所述第一數(shù)據(jù)寫入指令中包括寫緩存使能信息。

可選地,所述將所述目標(biāo)數(shù)據(jù)寫在所述主機(jī)緩存中,包括:

向所述主機(jī)端設(shè)備返回包括緩存指示信息的寫入成功指令,其中,所述寫入成功指令用于響應(yīng)所述第一數(shù)據(jù)寫入指令,所述緩存指示信息用于指示所述主機(jī)端設(shè)備將所述目標(biāo)數(shù)據(jù)存儲(chǔ)在所述主機(jī)緩存中。

可選地,所述步驟還包括:

接收所述主機(jī)端設(shè)備發(fā)送的第二數(shù)據(jù)寫入指令;

確定所述第二數(shù)據(jù)寫入指令未包括寫緩存使能信息;

根據(jù)所述第二數(shù)據(jù)寫入指令向所述硬盤的Nand閃存中寫入數(shù)據(jù)。

盡管已描述了本申請(qǐng)的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的普通技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本申請(qǐng)范圍的所有變更和修改。

顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本申請(qǐng)進(jìn)行各種改動(dòng)和變型而不脫離本申請(qǐng)的精神和范圍。這樣,倘若本申請(qǐng)的這些修改和變型屬于本申請(qǐng)權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請(qǐng)也意圖包含這些改動(dòng)和變型在內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1