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

一種數(shù)據(jù)處理方法及電子設(shè)備與流程

文檔序號:11864281閱讀:250來源:國知局
一種數(shù)據(jù)處理方法及電子設(shè)備與流程

本發(fā)明涉及通信技術(shù),尤其涉及一種數(shù)據(jù)處理方法及電子設(shè)備。



背景技術(shù):

固態(tài)硬盤(SSD)存儲在PC消費(fèi)領(lǐng)域、在服務(wù)器領(lǐng)域以及移動電子設(shè)備中使用的越來越多,對性能要求也越來越高。

SSD的接口標(biāo)準(zhǔn)從串行高級技術(shù)附件(SATA)2、SATA3演變到高級外設(shè)部件互連標(biāo)準(zhǔn)第2代(PCIe G2),PCIe第3代(PCIe G3),SSD的數(shù)據(jù)吞吐量越來越大,這就要求處于SSD的控制器(包括CPU以及相關(guān)接口如PCIe接口)中的CPU也要具有非常強(qiáng)的數(shù)據(jù)處理能力,導(dǎo)致CPU的功耗居高不下,這對電子設(shè)備尤其是移動設(shè)備的續(xù)航產(chǎn)生不利影響。

對于如何降低SSD中的CPU因數(shù)據(jù)吞吐量較大執(zhí)行頻繁讀寫操作而導(dǎo)致功耗較大的問題,相關(guān)技術(shù)尚無有效解決方案。



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

本發(fā)明實施例提供一種數(shù)據(jù)處理方法及電子設(shè)備,能夠降低CPU功耗,提升系統(tǒng)性能。

本發(fā)明實施例的技術(shù)方案是這樣實現(xiàn)的:

一方面,本發(fā)明實施例提供一種數(shù)據(jù)處理方法,包括:

接收來自主機(jī)端的第一命令;所述第一命令用于指示進(jìn)行目標(biāo)數(shù)據(jù)的讀/寫操作;

對所述第一命令進(jìn)行重組得到至少一個第二命令;每個所述第二命令指示操作的數(shù)據(jù)量相同;

查找對應(yīng)所述第二命令的空閑的命令通道,為所述空閑的命令通道分配所述第二命令;

基于所述空閑的命令通道執(zhí)行分配的所述第二命令。

上述方案中,所述對所述第一命令進(jìn)行重組得到至少一個第二命令,包括:

分析得到所述第一命令所請求操作的目標(biāo)數(shù)據(jù)的數(shù)據(jù)量;

確定所述數(shù)據(jù)量大于預(yù)設(shè)的進(jìn)行數(shù)據(jù)操作的單位數(shù)據(jù)量時,基于所述單位數(shù)據(jù)量將所述第一命令拆分為至少兩個第二命令;

確定所述數(shù)據(jù)量小于預(yù)設(shè)的進(jìn)行數(shù)據(jù)操作的單位數(shù)據(jù)量時,將與所述第一命令相同類型的命令合并為至少一個第二命令;

其中,所述第二命令指示操作所述目標(biāo)數(shù)據(jù)中對應(yīng)所述單位數(shù)據(jù)量的數(shù)據(jù)。

上述方案中,所述基于所述空閑的命令通道執(zhí)行分配的所述第二命令,包括:

確定所述第二命令為寫命令時,將所述第二命令指示寫入的數(shù)據(jù)存儲至緩存單元,在所述緩存單元中形成數(shù)據(jù)量與所述單位數(shù)據(jù)量對應(yīng)的組合數(shù)據(jù);

基于所述空閑的命令通道,將所述緩存單元中的所述組合數(shù)據(jù)寫入數(shù)據(jù)存儲單元。

上述方案中,所述基于所述空閑的命令通道執(zhí)行分配的所述第二命令,包括:

確定所述第二命令為讀命令時,基于所述空閑的命令通道,從數(shù)據(jù)存儲單元讀取所述第二命令指示讀取的數(shù)據(jù)至緩存單元,在所述緩存單元中形成數(shù)據(jù)量與所述單位數(shù)據(jù)量對應(yīng)的組合數(shù)據(jù);

將所述緩存單元中的所述組合數(shù)據(jù)發(fā)送至所述主機(jī)端。

上述方案中,所述方法還包括:

基于對應(yīng)所述第二命令的空閑的命令通道,生成對應(yīng)所述第二命令的命令描述符;所述命令描述符用作基于所述空閑的命令通道執(zhí)行分配的所述第二命令的依據(jù);

所述命令描述符包括以下至少之一:

所述第二命令對應(yīng)的數(shù)據(jù)操作類型;

所述第二命令對應(yīng)的命令標(biāo)識;

所述第二命令對應(yīng)的數(shù)據(jù)操作的邏輯地址;

所述第二命令對應(yīng)的數(shù)據(jù)操作的物理地址;

所述第二命令對應(yīng)的數(shù)據(jù)操作的目標(biāo)數(shù)據(jù)在緩存單元中的存儲地址;

所述第二命令對應(yīng)的命令完成狀態(tài)。

上述方案中,所述基于所述空閑的命令通道執(zhí)行分配的所述第二命令之后,所述方法還包括:

基于所述第二命令對應(yīng)的命令標(biāo)識,更新所述命令描述符中所述第二命令對應(yīng)的命令完成狀態(tài),以釋放所述第二命令對應(yīng)的命令通道。

上述方案中,所述方法還包括:

檢測到存在至少一個未被執(zhí)行的第二命令,且當(dāng)前沒有第二命令被執(zhí)行,觸發(fā)對未被執(zhí)行的第二命令的執(zhí)行。

另一方面,本發(fā)明實施例還提供一種電子設(shè)備,包括:

接口處理單元,用于接收來自主機(jī)端的第一命令;所述第一命令用于指示進(jìn)行目標(biāo)數(shù)據(jù)的讀/寫操作;

命令重組單元,用于對所述第一命令進(jìn)行重組得到至少一個第二命令;每個所述第二命令指示操作的數(shù)據(jù)量相同;

命令控制單元,用于查找對應(yīng)所述第二命令的空閑的命令通道,為所述空閑的命令通道分配所述第二命令;

閃存控制單元,用于基于所述空閑的命令通道執(zhí)行分配的所述第二命令。

上述方案中,所述命令重組單元,還用于分析得到所述第一命令所請求操作的目標(biāo)數(shù)據(jù)的數(shù)據(jù)量;

以及,確定所述數(shù)據(jù)量大于預(yù)設(shè)的進(jìn)行數(shù)據(jù)操作的單位數(shù)據(jù)量時,基于所述單位數(shù)據(jù)量將所述第一命令拆分為至少兩個第二命令;

以及,確定所述數(shù)據(jù)量小于預(yù)設(shè)的進(jìn)行數(shù)據(jù)操作的單位數(shù)據(jù)量時,將與所述第一命令相同類型的命令合并為至少一個第二命令;

其中,所述第二命令指示操作所述目標(biāo)數(shù)據(jù)中對應(yīng)所述單位數(shù)據(jù)量的數(shù)據(jù)。

上述方案中,所述電子設(shè)備還包括緩存單元及數(shù)據(jù)存儲單元;

所述命令重組單元,還用于確定所述第二命令為寫命令時,將所述第二命令指示寫入的數(shù)據(jù)存儲至緩存單元,在所述緩存單元中形成數(shù)據(jù)量與所述單位數(shù)據(jù)量對應(yīng)的組合數(shù)據(jù);

所述閃存控制單元,還用于基于所述空閑的命令通道,將所述緩存單元中的所述組合數(shù)據(jù)寫入數(shù)據(jù)存儲單元。

上述方案中,所述電子設(shè)備還包括緩存單元及數(shù)據(jù)存儲單元;

所述閃存控制單元,還用于確定所述第二命令為讀命令時,基于所述空閑的命令通道,從數(shù)據(jù)存儲單元讀取所述第二命令指示讀取的數(shù)據(jù)至緩存單元,在所述緩存單元中形成數(shù)據(jù)量與所述單位數(shù)據(jù)量對應(yīng)的組合數(shù)據(jù);

所述命令重組單元,還用于將緩存單元中的所述組合數(shù)據(jù)通過所述接口控制單元發(fā)送至所述主機(jī)端。

上述方案中,所述命令控制單元,還用于基于對應(yīng)所述第二命令的空閑的命令通道,生成對應(yīng)所述第二命令的命令描述符;所述命令描述符用作基于所述空閑的命令通道執(zhí)行分配的所述第二命令的依據(jù);

所述命令描述符包括以下至少之一:

所述第二命令對應(yīng)的數(shù)據(jù)操作類型;

所述第二命令對應(yīng)的命令標(biāo)識;

所述第二命令對應(yīng)的數(shù)據(jù)操作的邏輯地址;

所述第二命令對應(yīng)的數(shù)據(jù)操作的物理地址;

所述第二命令對應(yīng)的數(shù)據(jù)操作的目標(biāo)數(shù)據(jù)在緩存單元中的存儲地址;

所述第二命令對應(yīng)的命令完成狀態(tài)。

上述方案中,所述閃存控制單元,還用于基于所述第二命令對應(yīng)的命令標(biāo)識,更新所述命令描述符中所述第二命令對應(yīng)的命令完成狀態(tài),以使所述命令重組單元基于所述命令完成狀態(tài)釋放所述第二命令對應(yīng)的命令通道。

上述方案中,所述命令控制單元,還用于檢測到存在至少一個未被執(zhí)行的第二命令,且當(dāng)前沒有第二命令被執(zhí)行,觸發(fā)所述閃存控制單元對未被執(zhí)行的第二命令的執(zhí)行。

本發(fā)明實施例中,接收來自主機(jī)端的第一命令;所述第一命令用于指示進(jìn)行目標(biāo)數(shù)據(jù)的讀/寫操作;對所述第一命令進(jìn)行重組得到至少一個第二命令;每個所述第二命令指示操作的數(shù)據(jù)量相同;查找對應(yīng)所述第二命令的空閑的命令通道,為所述空閑的命令通道分配所述第二命令;基于所述空閑的命令通道執(zhí)行分配的所述第二命令;如此,命令信息與數(shù)據(jù)塊數(shù)據(jù)并行處理,互不影響,速度快;且數(shù)據(jù)處理處理過程中只需要SSD中的CPU少量參與,大量工作都由硬件自動完成,降低CPU負(fù)載,并提升系統(tǒng)性能。

附圖說明

圖1為本發(fā)明實施例中數(shù)據(jù)處理方法的實現(xiàn)流程示意圖一;

圖2為本發(fā)明實施例中電子設(shè)備的組成結(jié)構(gòu)示意圖一;

圖3為本發(fā)明實施例中地址映射表的示意圖;

圖4為本發(fā)明實施例中命令描述符的信息結(jié)構(gòu)示意圖;

圖5為本發(fā)明實施例中數(shù)據(jù)處理方法的實現(xiàn)流程示意圖二;

圖6為本發(fā)明實施例中數(shù)據(jù)處理方法的邏輯框圖;

圖7為本發(fā)明實施例中電子設(shè)備的組成結(jié)構(gòu)示意圖。

具體實施方式

下面結(jié)合附圖和具體實施例對本發(fā)明作進(jìn)一步詳細(xì)說明。

實施例一

圖1為本發(fā)明實施例中數(shù)據(jù)處理方法的實現(xiàn)流程示意圖,應(yīng)用與電子設(shè)備,所述電子設(shè)備的一種組成結(jié)構(gòu)示意圖如圖2所示,如圖1、圖2所示,本發(fā)明實施例中數(shù)據(jù)處理方法包括:

步驟101:接收來自主機(jī)端的第一命令;所述第一命令用于指示進(jìn)行目標(biāo)數(shù)據(jù)的讀/寫操作。

在實際實施時,電子設(shè)備中的接口處理單元接收來自主機(jī)(Host)端的第一命令,該接口處理單元是電子設(shè)備與主機(jī)相連的接口,可以是SSD控制器芯片中的一個接口模塊,如USB、SATA、PCIe等。

來自主機(jī)的第一命令指示電子設(shè)備進(jìn)行目標(biāo)數(shù)據(jù)的讀操作或?qū)懖僮?,也即指示讀取SSD中數(shù)據(jù)存儲單元的目標(biāo)數(shù)據(jù)至主機(jī),或?qū)碜灾鳈C(jī)目標(biāo)數(shù)據(jù)寫入SSD中數(shù)據(jù)存儲單元。

步驟102:對所述第一命令進(jìn)行重組得到至少一個第二命令;每個所述第二命令指示操作的數(shù)據(jù)量相同。

這里,對主機(jī)端的第一命令進(jìn)行重組的目的是重組(組合/拆分)成適合Flash操作的第二命令,主要依據(jù)Flash顆粒的特性(頁大小)及SSD芯片中軟件處理的要求(單頁操作還是雙頁或多頁操作)而定;比如:Flash顆粒大小是16K字節(jié),軟件按雙頁操作,則會對主機(jī)來的數(shù)據(jù)進(jìn)行重組,重組成以32K字節(jié)為單位的數(shù)據(jù)塊;也即,第一命令指示操作的數(shù)據(jù)塊小的,則將多個命令合成一個新命令供后續(xù)操作,而第一命令指示操作的數(shù)據(jù)塊大的,則將第一命令拆成多個新命令供后面的流程處理。

具體的,在實際實施時,電子設(shè)備的命令重組單元接收到來自接口處理單元的第一命令后,分析得到所述第一命令所請求操作的目標(biāo)數(shù)據(jù)的數(shù)據(jù)量,然后,若確定所述數(shù)據(jù)量大于預(yù)設(shè)的進(jìn)行數(shù)據(jù)操作的單位數(shù)據(jù)量時,基于所述單位數(shù)據(jù)量將所述第一命令拆分為至少兩個第二命令;若確定所述數(shù)據(jù)量小于預(yù)設(shè)的進(jìn)行數(shù)據(jù)操作的單位數(shù)據(jù)量時,將與所述第一命令相同類型的命令合并為至少一個第二命令;

其中,所述第二命令指示操作所述目標(biāo)數(shù)據(jù)中對應(yīng)所述單位數(shù)據(jù)量的數(shù)據(jù);

與所述第一命令相同類型的命令指的是均為讀/寫操作,且指示進(jìn)行數(shù)據(jù)操作的物理地址指向同一Flash芯片的命令;

這里所述的進(jìn)行數(shù)據(jù)操作的單位數(shù)據(jù)量,即為依據(jù)依據(jù)Flash頁大小及頁操作要求(單頁操作或雙頁操作或多頁操作)決定的每次進(jìn)行數(shù)據(jù)操作的數(shù)據(jù)量;如按照單頁操作,頁大小是16K字節(jié),則進(jìn)行數(shù)據(jù)操作的單位數(shù)據(jù)量為16K;如果按雙頁操作,頁大小是16K字節(jié),則進(jìn)行數(shù)據(jù)操作的單位數(shù)據(jù)量為32K字節(jié)。

由于主機(jī)的第一命令指示操作的數(shù)據(jù)量很有可能與進(jìn)行數(shù)據(jù)操作的單位數(shù)據(jù)量不同,如所述單位數(shù)據(jù)量為16K,第一命令指示操作的數(shù)據(jù)量為32K,則對第一命令進(jìn)行重組可得到兩個指示操作目標(biāo)數(shù)據(jù)中對應(yīng)單位數(shù)據(jù)量的數(shù)據(jù)的第二命令。

步驟103:查找對應(yīng)所述第二命令的空閑的命令通道,為所述空閑的命令通道分配所述第二命令。

在實際應(yīng)用中,通常存在多個Flash通道,每個Flash通道與SSD中的一個Flash芯片對應(yīng);本實施例中所述命令通道通常也存在多個,但命令通道與Flash通道不同,可以一個命令通道支持(對應(yīng))一個Flash通道,也可以一個命令通道支持(對應(yīng))多個Flash通道,或者多個命令通道支持(對應(yīng))一個Flash通道。

由于每個命令通道指向特定的Flash芯片,因此,電子設(shè)備中的命令控制單元依據(jù)第二命令指示操作的數(shù)據(jù)的物理地址查找所述第二命令對應(yīng)的命令通道的通道狀態(tài)(如空閑、被占用),當(dāng)對應(yīng)的命令通道空閑時將該空閑的命令通道分配所述第二命令,以基于該空閑的命令通道執(zhí)行分配的第二命令。

然而在實際實施時,第二命令指示操作的數(shù)據(jù)的物理地址為:依據(jù)預(yù)設(shè)的映射策略(地址映射表)對所述第二命令的邏輯操作地址進(jìn)行映射得到;這里,所述第二命令的邏輯操作地址為面向主機(jī)的邏輯地址,通過地址映射表查找邏輯操作地址相對應(yīng)Flash中的物理地址;其中,所述地址映射表如圖3所示。

在具體實施時,當(dāng)查找對應(yīng)第二命令的空閑的命令通道時,所述方法還包括:

命令控制單元基于對應(yīng)所述第二命令的空閑的命令通道,生成對應(yīng)所述第二命令的命令描述符,并負(fù)責(zé)對命令描述符的維護(hù);所述命令描述符包括以下至少之一:

所述第二命令對應(yīng)的數(shù)據(jù)操作類型;即指示數(shù)據(jù)讀操作或?qū)懖僮鳎?/p>

所述第二命令對應(yīng)的命令標(biāo)識;即命令I(lǐng)D,在實際實施時,若第二命令由第一命令拆分而來,則拆分得到的多個第二命令的命令I(lǐng)D相同且與所述被拆分的第一命令的命令I(lǐng)D相同;若第二命令由第一命令和另外一個類型相同的命令組合而來,則第二命令的命令I(lǐng)D包括兩部分,分別為第一命令的命令I(lǐng)D及另一個類型相同的命令的命令I(lǐng)D;所述第二命令的命令I(lǐng)D用于進(jìn)行數(shù)據(jù)操作過程中的識別和跟蹤,即可識別來自主機(jī)的第一命令是否完成,以對主機(jī)進(jìn)行響應(yīng);

所述第二命令對應(yīng)的數(shù)據(jù)操作的邏輯地址;

所述第二命令對應(yīng)的數(shù)據(jù)操作的物理地址;

所述第二命令對應(yīng)的數(shù)據(jù)操作的目標(biāo)數(shù)據(jù)在緩存單元中的存儲地址;

所述第二命令對應(yīng)的命令完成狀態(tài);所述第二命令的初始狀態(tài)為未完成,當(dāng)該第二命令被執(zhí)行完成時,即已完成相關(guān)Flash操作時,該命令完成狀態(tài)被更新為完成;

所述命令描述符的示意圖如圖4所示,需要說明的是,命令描述符包括的信息的順序非固定,可依據(jù)需要進(jìn)行調(diào)整,且包括的內(nèi)容還可根據(jù)實際需要進(jìn)行擴(kuò)展,并不限于上述信息;其中,圖4中的數(shù)據(jù)存儲狀態(tài)描述包括數(shù)據(jù)的存儲位置、長度等信息,通過鏈表結(jié)構(gòu)(如圖3)支持多個數(shù)據(jù)段的拼接(針對主機(jī)的寫操作)或分散發(fā)送(針對主機(jī)的讀操作)。

步驟104:基于所述空閑的命令通道執(zhí)行分配的所述第二命令。

基于本發(fā)明上述實施例,在實際應(yīng)用中,閃存控制單元,用于基于所述空閑的命令通道執(zhí)行分配的所述第二命令;

具體地,當(dāng)?shù)诙顬閷懨顣r,命令重組單元將所述第二命令指示寫入的數(shù)據(jù)存儲至緩存單元,在所述緩存單元中形成數(shù)據(jù)量與所述單位數(shù)據(jù)量對應(yīng)的組合數(shù)據(jù),閃存控制單元基于所述第二命令對應(yīng)的空閑的命令通道,將緩存單元中的所述組合數(shù)據(jù)寫入數(shù)據(jù)存儲單元(Flash存儲體);

當(dāng)?shù)诙顬樽x命令時,閃存控制單元基于所述第二命令對應(yīng)的空閑的命令通道,從數(shù)據(jù)存儲單元讀取所述第二命令指示讀取的數(shù)據(jù)至緩存單元,在所述緩存單元中形成數(shù)據(jù)量與所述單位數(shù)據(jù)量對應(yīng)的組合數(shù)據(jù),以使命令重組單元將緩存單元中的所述組合數(shù)據(jù)通過接口處理單元發(fā)送至主機(jī)端。

在實際實施時,所述方法還包括:

閃存控制單元基于所述第二命令對應(yīng)的命令標(biāo)識,更新所述命令描述符中所述第二命令對應(yīng)的命令完成狀態(tài),以使所述命令重組單元基于所述命令完成狀態(tài)確定該命令通道的命令已執(zhí)行完時,通知主機(jī)命令已完成,并釋放所述第二命令對應(yīng)的命令通道。

在實際實施時,所述方法還包括:

命令控制單元檢測到存在至少一個未被執(zhí)行的第二命令,且當(dāng)前沒有第二命令被執(zhí)行,也即當(dāng)前的閃存控制單元空閑,觸發(fā)所述閃存控制單元執(zhí)行未被執(zhí)行的第二命令。

需要說明的是,本發(fā)明實施例電子設(shè)備中的各功能單元,除了數(shù)據(jù)存儲單元及緩存單元,均使用CPLD、FPGA方式獨(dú)立于SSD中的CPU實現(xiàn),從而實現(xiàn)降低CPU功耗的目的。

應(yīng)用本發(fā)明上述實施例,對主機(jī)的第一命令進(jìn)行重組得到至少一個第二命令,每個第二命令指示操作的數(shù)據(jù)量相同,如此,可對主機(jī)端零散數(shù)據(jù)按Flash芯片特性通過鏈表進(jìn)行重組,方便寫入或讀出;為第二命令分配空閑的命令通道,然后基于所述空閑的命令通道執(zhí)行分配的所述第二命令;如此,命令信息與數(shù)據(jù)塊數(shù)據(jù)并行處理,互不影響,速度快;且數(shù)據(jù)處理處理過程中只需要SSD中的CPU少量參與,大量工作都由硬件自動完成,降低CPU負(fù)載,并提升系統(tǒng)性能。

實施例二

圖5為本發(fā)明實施例中數(shù)據(jù)處理方法的實現(xiàn)流程示意圖,圖6為本發(fā)明實施例中數(shù)據(jù)處理方法的邏輯框圖,應(yīng)用與電子設(shè)備,在本實施例中的電子設(shè)備設(shè)置于SSD中,獨(dú)立于CPU單獨(dú)存在,可由CPLD、FPGA等集成電路實現(xiàn);所述電子設(shè)備的一種組成結(jié)構(gòu)示意圖如圖2所示,如圖5、圖2、圖6所示,本發(fā)明實施例中數(shù)據(jù)處理方法包括:

首先,接口處理單元接收來自Host端的第一命令,該命令指示進(jìn)行目標(biāo)數(shù)據(jù)的讀操作或?qū)懖僮鳎凰鼋涌谔幚韱卧请娮釉O(shè)備與主機(jī)相連的接口,可以是SSD控制器芯片中的一個接口模塊,如USB、SATA、PCIe等。

然后,命令重組單元根據(jù)預(yù)設(shè)的映射策略,對Host端的第一命令進(jìn)行重組,得到至少一個第二命令;

這里,對主機(jī)端的第一命令進(jìn)行重組的目的是重組(組合/拆分)成適合Flash操作的第二命令,主要依據(jù)Flash顆粒的特性(頁大小)及SSD芯片中軟件處理的要求(單頁操作還是雙頁或多頁操作)而定;比如:Flash顆粒大小是16K字節(jié),軟件按雙頁操作,則進(jìn)行數(shù)據(jù)操作的單位數(shù)據(jù)量為32K,而主機(jī)的第一命令指示進(jìn)行操作的數(shù)據(jù)量為16K,則會對第一命令與其它與其類型相同的命令進(jìn)行組合,重組成指示操作的單位數(shù)據(jù)量為32K字節(jié)的命令;也即,第一命令指示操作的數(shù)據(jù)塊小的,則將多個命令合成一個新命令供后續(xù)操作,而第一命令指示操作的數(shù)據(jù)塊大的,則將第一命令拆成多個新命令供后面的流程處理。

然后,命令控制單元查找對應(yīng)第二命令的可用(空閑)的命令通道,為空閑的命令通道分配所述第二命令,并生成對應(yīng)所述第二命令的命令描述符;

在具體實施時,通常存在多個Flash通道,每個Flash通道與SSD中的一個Flash芯片對應(yīng);本實施例中所述命令通道通常也存在多個,但命令通道與Flash通道不同,可以一個命令通道支持(對應(yīng))一個Flash通道,也可以一個命令通道支持(對應(yīng))多個Flash通道,或者多個命令通道支持(對應(yīng))一個Flash通道。而這多個命令通道可以設(shè)置成不同的優(yōu)先級,根據(jù)處理策略,可以將多個第二命令分成不同的優(yōu)先級,寫進(jìn)不同的命令通道內(nèi)。

由于每個命令通道指向特定的Flash芯片,因此,電子設(shè)備中的命令控制單元依據(jù)第二命令指示操作的數(shù)據(jù)的物理地址查找所述第二命令對應(yīng)的命令通道的通道狀態(tài)(如空閑、被占用),當(dāng)對應(yīng)的命令通道空閑時將該空閑的命令通道分配所述第二命令,以基于該空閑的命令通道執(zhí)行分配的第二命令。

然而在實際實施時,第二命令指示操作的數(shù)據(jù)的物理地址為:依據(jù)預(yù)設(shè)的映射策略(地址映射表)對所述第二命令的邏輯操作地址進(jìn)行映射得到;這里,所述第二命令的邏輯操作地址為面向主機(jī)的邏輯地址,通過地址映射表查找邏輯操作地址相對應(yīng)Flash中的物理地址;其中,所述地址映射表如圖3所示。

在本實施例中,命令控制單元生成的命令描述符包括以下信息:

所述第二命令對應(yīng)的數(shù)據(jù)操作類型;即指示數(shù)據(jù)讀操作或?qū)懖僮?;指原始的主機(jī)發(fā)來的讀命令、寫命令、或其他管理命令;

所述第二命令對應(yīng)的命令標(biāo)識;即命令I(lǐng)D,在實際實施時,若第二命令由第一命令拆分而來,則拆分得到的多個第二命令的命令I(lǐng)D相同且與所述被拆分的第一命令的命令I(lǐng)D相同;若第二命令由第一命令和另外一個類型相同的命令組合而來,則第二命令的命令I(lǐng)D包括兩部分,分別為第一命令的命令I(lǐng)D及另一個類型相同的命令的命令I(lǐng)D;所述第二命令的命令I(lǐng)D用于進(jìn)行數(shù)據(jù)操作過程中的識別和跟蹤,即可識別來自主機(jī)的第一命令是否完成,以對主機(jī)進(jìn)行響應(yīng);

所述第二命令對應(yīng)的數(shù)據(jù)操作的邏輯地址;這里的邏輯地址為面向主機(jī)的邏輯地址,主機(jī)訪問的邏輯地址與實際寫到Flash中的物理地址不是一一對應(yīng)關(guān)系,而是需要通過一個映射表(如圖3)來實現(xiàn);為方便處理、提高處理效率及對不用廠家Flash芯片的兼容性支持,不同的設(shè)計者(芯片廠商)可采用不同的地址映射策略。例如,簡單的一級地址映射:采用16K字節(jié)地址映射以應(yīng)對16K字節(jié)的頁訪問;或者采用二級映射:第一級采用4K字節(jié)映射,第二級再根據(jù)不同的Flash頁大小進(jìn)行靈活調(diào)整,如16K頁操作的Flash就采用16K字節(jié)地址映射。

所述第二命令對應(yīng)的數(shù)據(jù)操作的物理地址;這里指與邏輯地址對應(yīng)的針對Nand的物理地址,可通過映射單元完成邏輯地址到物理地址的映射過程;

所述第二命令對應(yīng)的數(shù)據(jù)存儲狀態(tài);這里所述的數(shù)據(jù)存儲狀態(tài)包括目標(biāo)數(shù)據(jù)在緩存單元中的存儲地址、數(shù)據(jù)長度、數(shù)據(jù)校驗格式等;

所述第二命令對應(yīng)的命令完成狀態(tài);所述第二命令的初始狀態(tài)為未完成,當(dāng)該第二命令被執(zhí)行完成時,即已完成相關(guān)Flash操作時,該命令完成狀態(tài)被更新為完成;

所述命令描述符的示意圖如圖4所示,需要說明的是,命令描述符包括的信息的順序非固定,可依據(jù)需要進(jìn)行調(diào)整,且包括的內(nèi)容還可根據(jù)實際需要進(jìn)行擴(kuò)展,并不限于上述信息;例如還可以包括針對Nand的除物理地址以外的相關(guān)信息(采取何種校驗算法、校驗碼碼率、校驗數(shù)據(jù)長度等;以及是否保存主機(jī)傳過來的ECC數(shù)據(jù)、ECC數(shù)據(jù)長度等信息),以及操作控制信息(即指命令處理過程中的可能用到的具體控制信息,如數(shù)據(jù)在操作過程中是否允許其他命令打斷;當(dāng)前命令的操作的優(yōu)先級等)。

然后,閃存控制單元(NFC,Nand Flash Controller)基于所述空閑的命令通道執(zhí)行分配的所述第二命令,是控制器芯片內(nèi)部的一個主要模塊,負(fù)責(zé)完成對Nand具體命令的解析和處理;

具體地,當(dāng)?shù)诙顬閷懨顣r,命令重組單元將所述第二命令指示寫入的數(shù)據(jù)存儲至緩存單元,在所述緩存單元中形成數(shù)據(jù)量與所述單位數(shù)據(jù)量對應(yīng)的組合數(shù)據(jù),閃存控制單元基于所述第二命令對應(yīng)的空閑的命令通道,將緩存單元中的所述組合數(shù)據(jù)寫入數(shù)據(jù)存儲單元(Flash存儲體);

當(dāng)?shù)诙顬樽x命令時,閃存控制單元基于所述第二命令對應(yīng)的空閑的命令通道,從數(shù)據(jù)存儲單元讀取所述第二命令指示讀取的數(shù)據(jù)至緩存單元,在所述緩存單元中形成數(shù)據(jù)量與所述單位數(shù)據(jù)量對應(yīng)的組合數(shù)據(jù),以使命令重組單元將緩存單元中的所述組合數(shù)據(jù)通過接口處理單元發(fā)送至主機(jī)端。

當(dāng)閃存控制單元有執(zhí)行完的第二命令的時候,更新命令控制單元中對應(yīng)命令I(lǐng)D的命令完成狀態(tài),以使所述命令重組單元(NVMe)基于所述命令完成狀態(tài)確定該命令通道的命令已執(zhí)行完時,通過接口處理單元通知主機(jī)命令已完成,并釋放所述第二命令對應(yīng)的命令通道。

在實際實施時,命令控制單元檢測到存在未被執(zhí)行(待處理)的第二命令,且當(dāng)前沒有第二命令被執(zhí)行,也即當(dāng)前的閃存控制單元空閑,觸發(fā)所述閃存控制單元執(zhí)行未被執(zhí)行的第二命令,即讀取待處理的第二命令給閃存控制單元執(zhí)行。

需要說明的是,本發(fā)明實施例電子設(shè)備中的各功能單元,除了數(shù)據(jù)存儲單元及緩存單元,均使用CPLD、FPGA方式獨(dú)立于SSD中的CPU實現(xiàn),從而實現(xiàn)降低CPU功耗的目的。

在本發(fā)明上述實施例中,數(shù)據(jù)處理處理過程中只需要SSD中的CPU少量參與,大量工作都由硬件自動完成,降低CPU負(fù)載;并提升系統(tǒng)性能;命令處理與數(shù)據(jù)處理同時進(jìn)行,即命令流與數(shù)據(jù)流分離,速度快;Host端數(shù)據(jù)處理與Flash端數(shù)據(jù)處理并行工作;采用鏈表方式(如圖3所示)重組命令或數(shù)據(jù),靈活方便,如此,可對主機(jī)端零散數(shù)據(jù)按Flash芯片特性通過鏈表進(jìn)行重組,方便寫入或讀出;且本實施例中,只做數(shù)據(jù)連接(即以鏈表的形式拼接數(shù)據(jù)),不做數(shù)據(jù)的搬移和整合,降低對硬件帶寬的要求,提升效率并降低功耗;用戶數(shù)據(jù)(來自PC端的用戶需要讀取的數(shù)據(jù)或者用戶需要寫入SSD的數(shù)據(jù))只做最初的寫入(從主機(jī)寫過來的數(shù)據(jù),可以存在DDR中,也可以存放在SRAM中)和最后的讀出(針對Flash Program命令執(zhí)行前的用戶數(shù)據(jù)),中途不做搬移。

實施例三

圖7為本發(fā)明實施例中電子設(shè)備的組成結(jié)構(gòu)示意圖,如圖7所示,本發(fā)明實施例中電子設(shè)備的組成包括:接口處理單元71、命令重組單元72、命令控制單元73及閃存控制單元74;其中,

接口處理單元71,用于接收來自主機(jī)端的第一命令;所述第一命令用于指示進(jìn)行目標(biāo)數(shù)據(jù)的讀/寫操作;

命令重組單元72,用于對所述第一命令進(jìn)行重組得到至少一個第二命令;每個所述第二命令指示操作的數(shù)據(jù)量相同;

命令控制單元73,用于查找對應(yīng)所述第二命令的空閑的命令通道,為所述空閑的命令通道分配所述第二命令;

閃存控制單元74,用于基于所述空閑的命令通道執(zhí)行分配的所述第二命令。

在一實施例中,所述命令重組單元72,還用于分析得到所述第一命令所請求操作的目標(biāo)數(shù)據(jù)的數(shù)據(jù)量;

以及,確定所述數(shù)據(jù)量大于預(yù)設(shè)的進(jìn)行數(shù)據(jù)操作的單位數(shù)據(jù)量時,基于所述單位數(shù)據(jù)量將所述第一命令拆分為至少兩個第二命令;

以及,確定所述數(shù)據(jù)量小于預(yù)設(shè)的進(jìn)行數(shù)據(jù)操作的單位數(shù)據(jù)量時,將與所述第一命令相同類型的命令合并為至少一個第二命令;

其中,所述第二命令指示操作所述目標(biāo)數(shù)據(jù)中對應(yīng)所述單位數(shù)據(jù)量的數(shù)據(jù)。

在一實施例中,所述電子設(shè)備還包括緩存單元75及數(shù)據(jù)存儲單元76;

所述命令重組單元72,還用于確定所述第二命令為寫命令時,將所述第二命令指示寫入的數(shù)據(jù)存儲至緩存單元75,在所述緩存單元75中形成數(shù)據(jù)量與所述單位數(shù)據(jù)量對應(yīng)的組合數(shù)據(jù);

所述閃存控制單元74,還用于基于所述空閑的命令通道,將所述緩存單元中的所述組合數(shù)據(jù)寫入數(shù)據(jù)存儲單元76。

在一實施例中,所述電子設(shè)備還包括緩存單元75及數(shù)據(jù)存儲單元76;

所述閃存控制單元74,還用于確定所述第二命令為讀命令時,基于所述空閑的命令通道,從數(shù)據(jù)存儲單元76讀取所述第二命令指示讀取的數(shù)據(jù)至緩存單元75,在所述緩存單元75中形成數(shù)據(jù)量與所述單位數(shù)據(jù)量對應(yīng)的組合數(shù)據(jù);

所述命令重組單元72,還用于將緩存單元75中的所述組合數(shù)據(jù)通過所述接口控制單元71發(fā)送至所述主機(jī)端。

在一實施例中,所述命令控制單元73,還用于基于對應(yīng)所述第二命令的空閑的命令通道,生成對應(yīng)所述第二命令的命令描述符;所述命令描述符用作基于所述空閑的命令通道執(zhí)行分配的所述第二命令的依據(jù);

所述命令描述符包括以下至少之一:

所述第二命令對應(yīng)的數(shù)據(jù)操作類型;

所述第二命令對應(yīng)的命令標(biāo)識;

所述第二命令對應(yīng)的數(shù)據(jù)操作的邏輯地址;

所述第二命令對應(yīng)的數(shù)據(jù)操作的物理地址;

所述第二命令對應(yīng)的數(shù)據(jù)操作的目標(biāo)數(shù)據(jù)在緩存單元中的存儲地址;

所述第二命令對應(yīng)的命令完成狀態(tài)。

在一實施例中,所述閃存控制單元74,還用于基于所述第二命令對應(yīng)的命令標(biāo)識,更新所述命令描述符中所述第二命令對應(yīng)的命令完成狀態(tài),以使所述命令重組單元72基于所述命令完成狀態(tài)釋放所述第二命令對應(yīng)的命令通道。

在一實施例中,所述命令控制單元73,還用于檢測到存在至少一個未被執(zhí)行的第二命令,且當(dāng)前沒有第二命令被執(zhí)行,觸發(fā)所述閃存控制單元74對未被執(zhí)行的第二命令的執(zhí)行。

這里需要指出的是:以上涉及電子設(shè)備的描述,與上述方法描述是類似的,同方法的有益效果描述,不做贅述。對于本發(fā)明所述電子設(shè)備實施例中未披露的技術(shù)細(xì)節(jié),請參照本發(fā)明方法實施例的描述。

本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序命令相關(guān)的硬件來完成,前述的程序可以存儲于一計算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:移動存儲設(shè)備、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

或者,本發(fā)明上述集成的單元如果以軟件功能模塊的形式實現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明實施例的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干命令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī)、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分。而前述的存儲介質(zhì)包括:移動存儲設(shè)備、ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
远安县| 岳普湖县| 拉萨市| 深泽县| 饶阳县| 莒南县| 淮安市| 洛南县| 神木县| 邯郸县| 双城市| 黑龙江省| 南召县| 怀集县| 合山市| 贞丰县| 霍州市| 呼和浩特市| 井研县| 汉寿县| 吉林省| 巩义市| 佳木斯市| 于都县| 河北省| 松阳县| 大英县| 宜宾市| 合阳县| 平安县| 顺平县| 淅川县| 祁阳县| 四会市| 朝阳区| 铜川市| 屏东县| 嵊泗县| 喀喇沁旗| 阿瓦提县| 常宁市|