亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

多接口固態(tài)硬盤及其處理方法和系統(tǒng)的制作方法

文檔序號:6772530閱讀:279來源:國知局
專利名稱:多接口固態(tài)硬盤及其處理方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種多接口固態(tài)硬盤及其處理方法和系統(tǒng)。
背景技術(shù)
SSD(Solid State Disk,固態(tài)硬盤)以flash作為存儲介質(zhì),與傳統(tǒng)硬盤相比, 具有數(shù)據(jù)存取速度快、防震抗摔、低功耗、經(jīng)久耐用、無噪音、外觀輕薄等優(yōu)勢,在某些特 殊應(yīng)用場景下,具有替代傳統(tǒng)硬盤的良好前景。普通SATAGerialAdvanced Technology Attachment,串行高級技術(shù)附件)3. 0接口的SSD硬盤受限于SATA3. 0接口的帶寬,往往不 能發(fā)揮其最大個(gè)生能,才目比之下,基于PCIe (Peripheral Component Interconnect Express, 外圍設(shè)備互聯(lián)較快)接口的SSD具有更大容量更高性能的優(yōu)勢,可以很好地應(yīng)用于對容量 和性能要求較高的領(lǐng)域。目前市場上的PCIe接口的SSD,都是單個(gè)PCIe接口的SSD,如圖1所示,SSD和主 機(jī)1 (例如PC機(jī)、或服務(wù)器等)通過PCIe接口連接,主機(jī)1通過驅(qū)動1將SSD作為自身的 存儲設(shè)備,可以直接訪問SSD ;主機(jī)2通過驅(qū)動2和主機(jī)1上運(yùn)行的代理模塊,然后再通過 主機(jī)1上的驅(qū)動1將對SSD的訪問命令下發(fā)到SSD,實(shí)現(xiàn)對SSD的間接訪問。在實(shí)現(xiàn)上述多個(gè)主機(jī)共享訪問SSD的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如 下問題單個(gè)PCIe接口的SSD只能插入到一臺主機(jī),只能被一個(gè)主機(jī)直接訪問,其他主機(jī) 則只能間接訪問該SSD,使得間接訪問該SSD的主機(jī)訪問帶寬較小,訪問延遲較大,不能很 好地滿足各主機(jī)對SSD高性能、高帶寬和大容量的需求。

發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供一種多接口固態(tài)硬盤及其處理方法和系統(tǒng),實(shí)現(xiàn)多個(gè)主機(jī)直 接共享訪問SSD,滿足各主機(jī)對SSD高性能、高帶寬和大容量的需求。為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案一種多接口固態(tài)硬盤,包括多個(gè)接口控制單元、命令調(diào)度單元、flash控制單元以 及flash芯片,每個(gè)接口控制單元分別對應(yīng)于一個(gè)通信接口 ;所述接口控制單元,用于通過所述通信接口接收操作命令;所述命令調(diào)度單元,用于按照調(diào)度規(guī)則從多個(gè)所述接口控制單元中獲取所述操作 命令,將所述操作命令放入命令隊(duì)列;所述命令調(diào)度單元還用于從所述命令隊(duì)列中取出所述操作命令并發(fā)送給所述 flash控制單元;所述flash控制單元,用于將接收到的所述操作命令轉(zhuǎn)化為flash操作命令,通過 所述flash操作命令對所述flash芯片進(jìn)行操作。
一種多接口固態(tài)硬盤處理方法,包括通過多個(gè)通信接口接收操作命令;
按照調(diào)度規(guī)則獲取從所述多個(gè)通信接口接收的所述操作命令,將所述操作命令放入命令隊(duì)列;從所述命令隊(duì)列中取出所述操作命令;將所述操作命令轉(zhuǎn)化為flash操作命令,對所述固態(tài)硬盤中的flash芯片進(jìn)行操作。一種多接口固態(tài)硬盤處理系統(tǒng),包括至少一個(gè)主機(jī)和至少一個(gè)多接口固態(tài)硬 盤;所述主機(jī)包括多接口固態(tài)硬盤驅(qū)動,通過運(yùn)行所述驅(qū)動,實(shí)現(xiàn)所述主機(jī)和所述多 接口固態(tài)硬盤的直接通信連接,所述主機(jī)用于向所述多接口固態(tài)硬盤發(fā)送操作命令;所述多接口固態(tài)硬盤包括多個(gè)接口控制單元、命令調(diào)度單元、flash控制單元以及 flash芯片,每個(gè)接口控制單元分別對應(yīng)于一個(gè)通信接口 ;所述接口控制單元,用于通過所 述通信接口接收所述主機(jī)發(fā)送的操作命令;所述命令調(diào)度單元,用于按照調(diào)度規(guī)則從多個(gè) 所述接口控制單元中獲取所述操作命令,將所述操作命令放入命令隊(duì)列;所述命令調(diào)度單 元還用于從所述命令隊(duì)列中取出所述操作命令并發(fā)送給所述flash控制單元;所述flash 控制單元,用于將接收到的所述操作命令轉(zhuǎn)化為flash操作命令,通過所述flash操作命令 對所述flash芯片進(jìn)行操作。本發(fā)明實(shí)施例提供的多接口固態(tài)硬盤及其處理方法和系統(tǒng),在固態(tài)硬盤中設(shè)置多 個(gè)通信接口,使得不同的主機(jī)可以通過不同的通信接口與該固態(tài)硬盤接口直接通信連接, 避免了當(dāng)多個(gè)主機(jī)共享SSD時(shí),除與該SSD直接連接的主機(jī)以外的主機(jī)需要間接訪問該SSD 的問題,實(shí)現(xiàn)不同的主機(jī)可以并發(fā)地直接訪問該固態(tài)硬盤,不需要相互之間通過共享方式 進(jìn)行訪問,因此,提高了訪問帶寬,滿足各主機(jī)對SSD的高性能、高帶寬和大容量等特性的 需求。


為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。圖1為現(xiàn)有技術(shù)中的固態(tài)硬盤處理系統(tǒng)的組成框圖;圖2為本發(fā)明實(shí)施例1中多接口固態(tài)硬盤的組成框圖;圖3為本發(fā)明實(shí)施例2中多接口固態(tài)硬盤的組成框圖;圖4為本發(fā)明實(shí)施例3中多接口固態(tài)硬盤處理方法流程圖;圖5為本發(fā)明實(shí)施例3中另一多接口固態(tài)硬盤處理方法流程圖;圖6為本發(fā)明實(shí)施例4中一種多接口固態(tài)硬盤處理系統(tǒng)的組成框圖;圖7為本發(fā)明實(shí)施例4中另一種多接口固態(tài)硬盤處理系統(tǒng)的組成框圖;圖8為本發(fā)明實(shí)施例4中另一種多接口固態(tài)硬盤處理系統(tǒng)的組成框圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。實(shí)施例1本發(fā)明實(shí)施例提供一種多接口固態(tài)硬盤,如圖2所示,包括多個(gè)接口控制單元11, 命令調(diào)度單元12,flash控制單元13以及flash芯片14 ;每個(gè)所述接口控制單元11分別對應(yīng)于一個(gè)通信接口,所述接口控制單元11用于 通過所述通信接口接收操作命令;具體的,通信接口可以是PCIe接口,或者SATA接口等; 接口控制單元11接收的操作命令來自與硬盤卡相連的各種主機(jī),例如PC、服務(wù)器等,在此 并不限定。所述命令調(diào)度單元12用于按照調(diào)度規(guī)則從多個(gè)所述接口控制單元11中獲取所述 操作命令,將所述操作命令放入命令隊(duì)列;具體的,所述命令調(diào)度單元12可以采用按照多 個(gè)所述通信接口輪詢的原則,或者根據(jù)多個(gè)所述通信接口編號按照較低編號優(yōu)先或較高編 號優(yōu)先的原則,或者其他用戶自定義的原則對多個(gè)接口控制單元11中的操作命令進(jìn)行調(diào) 度,在此并不限定。所述命令調(diào)度單元12還用于從所述命令隊(duì)列中取出所述操作命令并發(fā)送給所述 flash控制單元13 ;具體的,在將所述操作命令從所述命令隊(duì)列中取出時(shí),按照命令隊(duì)列先 進(jìn)先出的規(guī)則,依次將所述操作命令取出。所述flash控制單元13用于將接收到所述操作命令轉(zhuǎn)化為flash操作命令,通過所述flash操作命令對所述flash芯片14進(jìn)行操作;具體的,這里的flash芯片可以采用 NAND (與非)flash,以獲得更好的性能;由于通過接口控制單元接收的命令并不能直接對 flash芯片進(jìn)行操作,因此,需要通過flash控制單元13將操作命令進(jìn)行轉(zhuǎn)化成flash操作 命令后對flash芯片進(jìn)行操作,如讀數(shù)據(jù)或?qū)憯?shù)據(jù)或者其他控制操作等。本發(fā)明實(shí)施例中,在固態(tài)硬盤中設(shè)置多個(gè)通信接口,使得不同的主機(jī)可以通過不 同的通信接口與該固態(tài)硬盤接口直接通信連接,避免了當(dāng)多個(gè)主機(jī)共享SSD時(shí),除與該SSD 直接連接的主機(jī)以外的主機(jī)需要間接訪問該SSD的問題,實(shí)現(xiàn)不同的主機(jī)可以并發(fā)地直接 訪問該SSD,不需要相互之間通過共享方式進(jìn)行訪問,因此,提高了主機(jī)的訪問帶寬,滿足各 主機(jī)對SSD高性能、高帶寬和大容量的需求。實(shí)施例2本發(fā)明實(shí)施例提供一種多接口固態(tài)硬盤,如圖3所示,包括多個(gè)接口控制單元11、 命令調(diào)度單元12、flash控制單元13和flash芯片14。每個(gè)所述接口控制單元11分別對應(yīng)于一個(gè)通信接口,所述接口控制單元11用于 通過所述通信接口接收操作命令;具體的,所述多個(gè)通信接口可以為PCIe接口,但本發(fā)明實(shí)施例對此不進(jìn)行限制, 所述通信接口還可以為SATA接口 ;根據(jù)PCIe接口和SATA接口的特性,將所述多個(gè)通信接 口設(shè)置為PCIe接口,相對于使用SATA接口,可以提高主機(jī)與所述SSD之間的傳輸帶寬,可 以滿足對帶寬性能要求很高的領(lǐng)域;但本發(fā)明實(shí)施例對此不進(jìn)行限制。所述多個(gè)通信接口 的接口類型可以根據(jù)用戶的需求靈活的設(shè)置,例如,為了兼容具有不同類型接口的主機(jī),將 所述多個(gè)通信接口一部分設(shè)置為PCIe接口,另一部分設(shè)置為SATA接口 ;為了適應(yīng)對帶寬的要求不是很高的應(yīng)用領(lǐng)域,還可以將所述兩個(gè)通信接口都設(shè)置為SATA接口 ;對于傳輸帶寬 和傳輸性能要求比較高的應(yīng)用領(lǐng)域,可以將所述多個(gè)通信接口都設(shè)置為PCIe接口。接口控制單元11,用于通過通信接口接收操作命令,例如,通過PCIe接口或SATA 接口接收來自主機(jī)的操作命令;其中,所述操作命令可以為讀寫命令,還可以為一些具有維 護(hù)功能的命令,例如,日志查詢命令、壞塊統(tǒng)計(jì)查詢命令以及flash內(nèi)數(shù)據(jù)塊擦除次數(shù)等命 令,本發(fā)明實(shí)施例對此不進(jìn)行限制。本發(fā)明實(shí)施例中,所述命令調(diào)度單元12按照調(diào)度規(guī)則從多個(gè)所述接 口控制單元 11中獲取所述操作命令,將所述操作命令放入命令隊(duì)列;具體的,所述命令調(diào)度單元12在按照調(diào)度規(guī)則從多個(gè)所述接口控制單元11中獲 取所述操作命令,將所述操作命令放入命令隊(duì)列時(shí),可以采用以下的方法,包括命令調(diào)度單元12按照調(diào)度規(guī)則向多個(gè)所述接口控制單元發(fā)送獲取操作命令的獲 取命令;接口控制單元接收到命令調(diào)度單元發(fā)送的獲取命令后,將操作命令發(fā)送到所述命 令調(diào)度單元12 ;命令調(diào)度單元12將接收到的操作命令放入命令隊(duì)列中。具體的,命令調(diào)度 單元12可以采用按照多個(gè)所述通信接口輪詢的原則,或者根據(jù)多個(gè)所述通信接口編號按 照較低編號優(yōu)先或較高編號優(yōu)先的原則對多個(gè)接口控制單元11中的操作命令進(jìn)行調(diào)度, 在此并不限定。除了上述調(diào)度規(guī)則為,所述命令調(diào)度單元12還可以根據(jù)用戶的需求使用其 他自定義的調(diào)度規(guī)則,本發(fā)明實(shí)施例對此不進(jìn)行限制。例如,當(dāng)所述命令調(diào)度單元12采用按照多個(gè)所述通信接口輪詢的原則,從多個(gè)所 述接口控制單元11中獲取操作命令,并將所述操作命令放入命令隊(duì)列時(shí),具體可以包括當(dāng)所述多接口 SSD的兩個(gè)接口控制單元(接口控制單元1和接口控制單元2),通 過對應(yīng)的通信接口分別接收到主機(jī)1和主機(jī)2發(fā)送的操作命令(命令1和命令2)后,所述 命令調(diào)度單元12按照預(yù)定的周期向所述接口控制單元1和接口控制單元12發(fā)送獲取所述 操作命令的讀取命令,所述接口控制單元1和接口控制單元2在接收到該讀取命令后,將其 暫存的操作命令下發(fā)給所述命令調(diào)度單元12 ;該命令調(diào)度單元12將接收的命令1先放入 命令隊(duì)列中,再將接收到的命令2放入該命令隊(duì)列中。例如,當(dāng)所述命令調(diào)度單元12采用根據(jù)多個(gè)所述通信接口編號按照較低編號優(yōu) 先的原則,從多個(gè)所述接口控制單元11中獲取操作命令,并將所述操作命令放入命令隊(duì)列 時(shí),具體可以包括當(dāng)所述多接口 SSD的兩個(gè)接口控制單元(接口控制單元1和接口控制單元2),通 過對應(yīng)的通信接口分別接收到主機(jī)1和主機(jī)2發(fā)送的操作命令(命令1和命令2)后,所述 命令調(diào)度單元12按照兩個(gè)通信接口的編號從低到高的順序或者兩個(gè)通信接口的編號從高 到低的順,依次向?qū)?yīng)的接口控制單元1和接口控制單元2發(fā)送獲取所述操作命令的讀取 命令;接口控制單元1和接口控制單元2在接收到該讀取命令后,將其暫存的操作命令下發(fā) 給所述命令調(diào)度單元;該命令調(diào)度單元將接收的命令1先放入命令隊(duì)列中,再將接收到的 命令2放入該命令隊(duì)列中。例如,當(dāng)所述命令調(diào)度單元12采用根據(jù)多個(gè)所述通信接口編號按照較高編號優(yōu) 先的原則,從多個(gè)所述接口控制單元11中獲取操作命令,并將所述操作命令放入命令隊(duì)列 時(shí),具體可以包括當(dāng)所述多接口 SSD的兩個(gè)接口控制單元(接口控制單元1和接口控制單元2),通過對應(yīng)的通信接口分別接收到主機(jī)1和主機(jī)2發(fā)送的操作命令(命令1和命令2)后,所述 命令調(diào)度單元12按照兩個(gè)通信接口的編號從高到低的順序,依次向?qū)?yīng)的接口控制單元2 和接口控制單元1發(fā)送獲取所述操作命令的讀取命令;接口控制單元2和接口控制單元1 在接收到該讀取命令后,將其暫存的操作命令下發(fā)給所述命令調(diào)度單元;該命令調(diào)度單元 將接收的命令2先放入命令隊(duì)列中,再將接收到的命令1放入該命令隊(duì)列中。進(jìn)一步的,當(dāng)需要執(zhí)行所述操作命令時(shí),所述命令調(diào)度單元12還用于從所述命令 隊(duì)列中將之前入隊(duì)的操作命令取出并發(fā)送給所述flash控制單元13。具體的,在將操作命 令從命令隊(duì)列中取出時(shí),按照命令隊(duì)列先進(jìn)先出的規(guī)則,依次將操作命令取出。
所述命令調(diào)度單元12在物理上設(shè)置有對應(yīng)于接口控制單元數(shù)量的入端口和一個(gè) 出端口 ;每個(gè)入端口分別與其對應(yīng)的接口控制單元的出端口相連,該出端口與flash控制 單元的入端口連接;所述命令調(diào)度單元12按照調(diào)度規(guī)則從多個(gè)所述接口控制單元11中獲 取所述操作命令,并通過該入端口將所述操作命令放入命令隊(duì)列中,并在將所述操作命令 從所述命令隊(duì)列中取出后,通過該出端口將所述從操作命令發(fā)送給所述flash控制單元。所述flash控制單元13用于將接收到所述操作命令轉(zhuǎn)化為flash操作命令,通過 所述flash操作命令對所述flash芯片14進(jìn)行操作;具體的,所述flash控制單元13接收所述操作命令,將所述操作命令轉(zhuǎn)化為flash 操作命令,并將所述flash操作命令發(fā)送給所述Flash芯片14,具體的,這里的flash芯片 可以采用NAND flash,以獲得更好的性能;由于通過接口控制單元接收的命令并不能直接 對flash芯片進(jìn)行操作,因此,需要通過flash控制單元13將操作命令進(jìn)行轉(zhuǎn)化成flash 操作命令后對flash芯片進(jìn)行操作,如讀數(shù)據(jù)或?qū)憯?shù)據(jù)等。此外,根據(jù)對容量的需求,該flash控制單元13可以與一個(gè)或多個(gè)flash芯片14 相連;或者,本發(fā)明實(shí)施例也可以包括多個(gè)flash控制單元,每個(gè)flash控制器與一個(gè)或多 個(gè)flash芯片相連,各個(gè)flash控制單元通過總線與命令調(diào)度單元12相連。進(jìn)一步的,需要說明的是,在所述命令調(diào)度單元12從所述命令隊(duì)列將所述操作命 令取出后,所述命令調(diào)度單元12還用于判斷所述操作命令是否由多條命令組成;若判定所 述操作命令由多條命令組成,將所述操作命令劃分為多條命令,并將所述多條命令發(fā)送給 所述flash控制單元;若判定所述操作命令由一條命令組成,將所述一條命令發(fā)送給所述 flash控制單元。并且,當(dāng)所述flash控制單元13接收到的所述操作命令包含多條命令時(shí),將所述 多條命令分別轉(zhuǎn)化為對應(yīng)的多條flash操作命令,并將所述多條flash操作命令分別發(fā)送 給flash芯片,以便所述flash芯片并行處理所述多條flash操作命令;當(dāng)所述flash控制 單元13接收到的所述操作命令包含一條命令時(shí),將所述一條命令轉(zhuǎn)化為一條對應(yīng)的flash 操作命令,并將所述flash操作命令發(fā)送給flash芯片處理。進(jìn)一步的,當(dāng)所述flash芯片執(zhí)行完所述操作命令時(shí),將所述操作命令的執(zhí)行結(jié) 果返回給所述命令調(diào)度單元12,以便該命令調(diào)度單元12結(jié)束相應(yīng)操作命令的執(zhí)行;所述命 令調(diào)度單元12接收所述操作命令的執(zhí)行結(jié)果,并將所述操作命令的執(zhí)行結(jié)果通過對應(yīng)的 接口控制單元11返回給所述主機(jī)。具體的,將所述操作命令的執(zhí)行結(jié)果通過對應(yīng)的接口控制單元返回給所述主機(jī) 時(shí),可以采用中斷方式將所述執(zhí)行結(jié)果直接通過對應(yīng)的接口控制單元返回給所述主機(jī);也可以將所述執(zhí)行結(jié)果發(fā)送給對應(yīng)的接口控制單元,由主機(jī)周期性的檢測接口控制單元中是 否保存有操作命令的執(zhí)行結(jié)果,若檢測到接口控制單元中保存有操作命令的執(zhí)行結(jié)果,則 該主機(jī)獲取所述執(zhí)行結(jié)果;具體實(shí)施時(shí)本發(fā)明對此不進(jìn)行限制,具體選用何種方式,可以根 據(jù)具體情況具體選用。
具體的,當(dāng)組成操作命令的多條命令并發(fā)執(zhí)行時(shí),先執(zhí)行完的命令先返回給所述 命令調(diào)度單元,以便該命令調(diào)度單元結(jié)束該命令的執(zhí)行。本發(fā)明實(shí)施例中,上述各單元可以通過各種硬件處理芯片來實(shí)現(xiàn),例如,上述接 口控制單元以及命令調(diào)度單元可以用一個(gè)PLD (Programable LogicDevice,可編程邏輯器 件)芯片(如 FPGA (Field-Programmable Gate Array,現(xiàn)場可編程門陣列)、CPLD (Complex Programmable Logic Device,復(fù)雜可編程邏輯器件))等來實(shí)現(xiàn),flash控制單元用另一個(gè) PLD來實(shí)現(xiàn);或者各個(gè)單元都單獨(dú)用一個(gè)PLD芯片來實(shí)現(xiàn),在此并不限定。本發(fā)明實(shí)施例中,在固態(tài)硬盤中設(shè)置多個(gè)通信接口,使得不同的主機(jī)可以通過不 同的通信接口與該固態(tài)硬盤接口直接通信連接,避免了當(dāng)多個(gè)主機(jī)共享SSD時(shí),除與該SSD 直接連接的主機(jī)以外的主機(jī)需要間接訪問該SSD的問題,實(shí)現(xiàn)不同的主機(jī)可以并發(fā)地直接 訪問該固態(tài)硬盤,不需要相互之間通過共享方式進(jìn)行訪問,因此,提高了訪問帶寬,滿足各 主機(jī)對SSD的高性能、高帶寬和大容量等特性的需求。并且,本發(fā)明實(shí)施例中多接口 SSD的接口為PCIe接口時(shí),基于PCIe接口的性能, 相對于其他接口,進(jìn)一步的提高了訪問帶寬,使得主機(jī)可以充分的使用SSD的高性能、高帶 寬和大容量等特性,從而使得系統(tǒng)的性能得到較大程度的提高。進(jìn)一步的,在將接收到的主機(jī)發(fā)送的操作命令從命令隊(duì)列中取出后,判斷所述操 作命令是否由多個(gè)命令組成,在判定由多個(gè)命令組成時(shí),將所述操作命令劃分為多個(gè)命令, 并將所述多個(gè)命令同時(shí)下發(fā),使得多命令處于并列處理中,可以提高命令的處理速度;并 且處于并列處理中的多條命令中的一條先處理完后,可以先將處理結(jié)果返回給命令調(diào)度單 元,以便該命令調(diào)度單元結(jié)束該命令的執(zhí)行,使得SSD內(nèi)有盡可能多空閑通道供其他命令 的處理,從而提高了 SSD的性能。實(shí)施例3本發(fā)明實(shí)施例提供一種多接口固態(tài)硬盤處理方法,如圖4所示,該方法包括201、通過多個(gè)通信接口接收操作命令;具體的,本發(fā)明實(shí)施例中,多接口固態(tài)硬盤設(shè)置有多個(gè)接口控制單元,每個(gè)接口控 制單元與一種通信接口對應(yīng);接收的操作命令來自主機(jī),用于對SSD內(nèi)部的flash進(jìn)行操 作。進(jìn)一步的,在接收到操作命令后,先將所述操作命令暫存到該接口控制單元中,等 待后續(xù)被調(diào)度。202、按照調(diào)度規(guī)則獲取從所述多個(gè)通信接口接收的所述操作命令,將所述操作命 令放入命令隊(duì)列;具體的,可以通過SSD的命令調(diào)度單元按照調(diào)度規(guī)則進(jìn)行調(diào)度,并將操作命令放 入命令隊(duì)列中;具體可以包括如下步驟命令調(diào)度單元按照調(diào)度規(guī)則向多個(gè)所述接口控制單元發(fā)送獲取操作命令的獲取 命令;接口控制單元接收到獲取命令后,將操作命令發(fā)送到命令調(diào)度單元;命令調(diào)度單元將接收到的操作命令放入命令隊(duì)列中。其中,命令調(diào)度單元可以采用按照多個(gè)所述通信接口輪詢的原則,或者根據(jù)多個(gè) 所述通信接口編號按照較低編號優(yōu)先或較高編號優(yōu)先的原則對多個(gè)接口控制單元中的操 作命令進(jìn)行調(diào)度,除了上述調(diào)度規(guī)則為,本發(fā)明實(shí)施例還可以根據(jù)用戶的需求使用其他自 定義的調(diào)度規(guī)則,本發(fā)明實(shí)施例對此不進(jìn)行限制。其中,所述命令調(diào)度單元按照各種調(diào)度算法對多個(gè)接口控制單元中的操作命令進(jìn) 行調(diào)度的具體實(shí)現(xiàn),可以參考實(shí)施例2中的相應(yīng)描述,此處將不再贅述。203、從所述命令隊(duì)列中取出所述操作命令。具體的,在將所述操作命令從所述命令隊(duì)列中取出時(shí),按照命令隊(duì)列先進(jìn)先出的 規(guī)則,依次將所述操作命令取出。
204、將所述操作命令轉(zhuǎn)化成flash操作命令,對所述固態(tài)硬盤中的flash芯片進(jìn) 行操作。需要說明的是,在步驟203之后,如圖5所示,還可以包括如下步驟2031、判斷所述操作命令是否由多條命令組成;若判定所述操作命令由多條命令 組成,則執(zhí)行步驟2032 ;若判定所述操作命令由一條命令組成,則執(zhí)行步驟2033。2032、將所述操作命令劃分為多條命令,并執(zhí)行步驟204,即將所述多條命令轉(zhuǎn)化 成對應(yīng)的多條flash操作命令,對所述固態(tài)硬盤中的flash芯片進(jìn)行操。2033、執(zhí)行步驟204,即將所述一條命令轉(zhuǎn)化成對應(yīng)的一條flash操作命令,對所 述固態(tài)硬盤中的flash芯片進(jìn)行操作。具體的,這里的flash芯片可以采用NAND flash,以獲得更好的性能;由于通過通 信接口接收到的操作命令并不能直接對flash芯片進(jìn)行操作,因此,需要將操作命令進(jìn)行 轉(zhuǎn)化成flash操作命令后,才能對flash芯片進(jìn)行操作,如讀數(shù)據(jù)或?qū)憯?shù)據(jù)或者其他控制操作等。需要說明的時(shí),在步驟204之后,該方法還可以包括將所述操作命令的執(zhí)行結(jié)果返回給所述命令調(diào)度單元,以便該命令調(diào)度單元結(jié)束 相應(yīng)操作命令的執(zhí)行;所述命令調(diào)度單元接收所述操作命令的執(zhí)行結(jié)果,并將所述操作命 令的執(zhí)行結(jié)果通過對應(yīng)的接口控制單元返回給所述主機(jī)。具體的,將所述操作命令的執(zhí)行結(jié)果通過對應(yīng)的接口控制單元返回給所述主機(jī) 時(shí),可以采用中斷方式將所述執(zhí)行結(jié)果直接通過對應(yīng)的接口控制單元返回給所述主機(jī);也 可以將所述執(zhí)行結(jié)果發(fā)送給對應(yīng)的接口控制單元,由主機(jī)周期性的檢測接口控制單元中是 否保存有操作命令的執(zhí)行結(jié)果,若檢測到接口控制單元中保存有操作命令的執(zhí)行結(jié)果,則 該主機(jī)獲取所述執(zhí)行結(jié)果;具體實(shí)施時(shí)本發(fā)明對此不進(jìn)行限制,具體選用何種方式,可以根 據(jù)具體情況具體選用。具體的,當(dāng)組成操作命令的多條命令并發(fā)執(zhí)行時(shí),先執(zhí)行完的命令先返回給所述 命令調(diào)度單元,以便該命令調(diào)度單元結(jié)束該命令的執(zhí)行。具體的,上述各步驟的實(shí)施可具體參見實(shí)施例1和實(shí)施例2中的相關(guān)描述,此處將 不再贅述。本發(fā)明實(shí)施例中,當(dāng)主機(jī)通過固態(tài)硬盤的多個(gè)通信接口向所述固態(tài)硬盤發(fā)送操作 命令時(shí),通過獨(dú)立設(shè)置并與所述多個(gè)接口控制單元接收所述操作命令,并由命令調(diào)度單元按照調(diào)度規(guī)則將接收到的操作命令調(diào)度放入命令隊(duì)列中,使得接收到的操作命令具有操作 的順序,當(dāng)需要操作所述操作命令時(shí),從所述命令隊(duì)列取出發(fā)送給flash控制單元控制處 理所述操作命令,得到操作結(jié)果,使得不同的主機(jī)可以通過不同的通信接口與該固態(tài)硬盤 接口直接通信連接,避免了當(dāng)多個(gè)主機(jī)共享SSD時(shí),除與該SSD直接連接的主機(jī)以外的主機(jī) 需要間接訪問該SSD的問題,實(shí)現(xiàn)不同的主機(jī)可以并發(fā)地直接訪問該固態(tài)硬盤,提高了訪 問帶寬,滿足各主機(jī)對SSD的高性能、高帶寬和大容量等特性的需求。進(jìn)一步的,在將接收到的主機(jī)發(fā)送的操作命令從命令隊(duì)列中取出后,判斷所述操 作命令是否由多個(gè)命令組成,在判定由多個(gè)命令組成時(shí),將所述操作命令劃分為多個(gè)命令, 并將所述多個(gè)命令同時(shí)下發(fā),使得多命令處于并列處理中,可以提高命令的處理速度;并 且處于并列處理中的多條命令中的一條先處理完后,可以先將處理結(jié)果返回給命令調(diào)度單 元,以便該命令調(diào)度單元結(jié)束該命令的執(zhí)行,使得SSD內(nèi)有盡可能多空閑通道供其他命令 的處理,從而提高了 SSD的性能。實(shí)施例4本發(fā)明實(shí)施例提供一種多接口固態(tài)硬盤處理系統(tǒng),包括至少一個(gè) 主機(jī)和多接口 SSD,當(dāng)所述主機(jī)為一個(gè)主機(jī)時(shí),所述主機(jī)為至少可以連接多接口 SSD的兩個(gè)通信接口的主 機(jī);當(dāng)所述主機(jī)為多個(gè)主機(jī)時(shí),所述主機(jī)為可以至少連接多接口 SSD的一個(gè)通信接口的主 機(jī)。本發(fā)明實(shí)施例以該系統(tǒng)包含多個(gè)主機(jī)和一個(gè)多接口 SSD,每個(gè)主機(jī)包含一個(gè)通信 接口為例,具體闡述多接口 SSD處理系統(tǒng),該系統(tǒng)如圖6所示,包括多個(gè)主機(jī)和一個(gè)多接口 SSD。每個(gè)主機(jī)設(shè)置有一個(gè)與該多接口 SSD通信的接口,通過該接口實(shí)現(xiàn)與該多接口 SSD的連接;當(dāng)所述主機(jī)成功運(yùn)行多接口 SSD驅(qū)動后,便可實(shí)現(xiàn)主機(jī)與所述多接口 SSD的直 接通信連接,并將所述多接口 SSD作為所述主機(jī)自身的存儲設(shè)備。例如,主機(jī)1、主機(jī)2...主機(jī)n,分別通過所述多接口 SSD的通信接口 1、通信接 口 2...通信接口 n(圖中未標(biāo)出),與所述多接口 SSD相連接;當(dāng)所述主機(jī)1、主機(jī)2...主 機(jī)η向所述多接口 SSD發(fā)送操作命令時(shí),由于所述通信接口 1、通信接口 2...通信接口 η 一一對應(yīng)的接口控制單元1、接口控制單元2...接口控制單元η,分別接收所述主機(jī)1、主機(jī) 2...主機(jī)η發(fā)送的操作命令。通過不同的通信接口,實(shí)現(xiàn)不同的主機(jī)連接到同一個(gè)SSD;不同的主機(jī)運(yùn)行其多 接口 SSD驅(qū)動,都將該多接口 SSD初始化為主機(jī)自身獨(dú)立的存儲設(shè)備,使連接多個(gè)主機(jī)的多 接口 SSD在不同的主機(jī)上顯示為獨(dú)立的存儲設(shè)備,每個(gè)主機(jī)訪問該多接口 SSD的訪問空間 的大小和范圍,都為該多接口 SSD對外呈現(xiàn)的存儲設(shè)備的大小。具體的,該多接口 SSD對多個(gè)接口控制單元接收到的操作命令的處理,可以參考 實(shí)施例1、實(shí)施例2和實(shí)施例3中的描述,此處將不再贅述。本發(fā)明實(shí)施例中,在多接口 SSD中設(shè)置多個(gè)通信接口,使得不同的主機(jī)通過不同 的通信接口與該SSD接口直接通信連接,避免了當(dāng)多個(gè)主機(jī)共享SSD時(shí),除與該SSD直接連 接的主機(jī)以外的主機(jī)需要間接訪問該SSD的問題,實(shí)現(xiàn)不同的主機(jī)可以并發(fā)地直接訪問該 SSD,不需要相互之間通過共享方式進(jìn)行訪問,因此,提高了訪問帶寬,滿足各主機(jī)對SSD的 高性能、高帶寬和大容量等特性的需求。
本發(fā)明實(shí)施例還提供一種多接口 SSD處理系統(tǒng),可以將與多接口 SSD直接連接的 主機(jī)設(shè)置為主備關(guān)系,本發(fā)明實(shí)施例以多接口 SSD包含兩個(gè)通信接口為例,具體闡述該處 理系統(tǒng);如圖7所示,包括兩個(gè)主機(jī)(主機(jī)1和主機(jī)2)和一個(gè)多接口 SSD。該兩個(gè)主機(jī)都包含一個(gè)與所述多接口 SSD連接的接口,通過該接口實(shí)現(xiàn)與該多接 口 SSD的連接;當(dāng)所述主機(jī)成功運(yùn)行SSD的驅(qū)動后,所述主機(jī)1和主機(jī)2都可獨(dú)立的訪問多 接口 SSD ;在具體實(shí)施時(shí)可以將主機(jī)1設(shè)置為主用設(shè)備,將主機(jī)2設(shè)置為備用設(shè)備,并且主 機(jī)1和主機(jī)2之間保持鏈路聯(lián)系。主機(jī)1和主機(jī)2分別通過所述多接口 SSD的通信接口 1 和通信接口 2,與所述多接口 SSD相連接。當(dāng)系統(tǒng)正常時(shí),僅使用主機(jī)1和所述多接口 SSD 通信,備用設(shè)備不訪問所述SSD ;當(dāng)主機(jī)1發(fā)生故障時(shí),備用的主機(jī)2開始訪SSD。在系統(tǒng)正常時(shí),主機(jī)1通過多接口 SSD的通信接口 1向所述多接口 SSD發(fā)送操作 命令,接口控制單元1通過所述通信接口 1接收所述操作命令。當(dāng)主機(jī)1出現(xiàn)故障時(shí),由所述主機(jī)2通過多接口 SSD的通信接口 2向所述多接口 SSD發(fā)送操作命令,接口控制單元2通過所述通信接口 2接收所述操作命令。具體的,該多接口 SSD對多個(gè)接口控制單元接收到的操作命令的處理,可以參考 實(shí)施例1、實(shí)施例2和實(shí)施例3中的描述,此處將不再贅述。本發(fā)明實(shí)施例中,與多接口 SSD相連接的不同主機(jī)之間設(shè)置了主備關(guān)系,當(dāng)主用 主機(jī)出現(xiàn)故障時(shí),可以由備用主機(jī)繼續(xù)執(zhí)行相應(yīng)的操作,從而提高了系統(tǒng)的可靠性。本發(fā)明實(shí)施例還提供一種多接口 SSD處理系統(tǒng),可以將與多接口 SSD通信的主機(jī) 設(shè)置為多通信接口的主機(jī),本發(fā)明實(shí)施例以將該主機(jī)設(shè)置為兩個(gè)通信接口的主機(jī)為例,具 體闡述該處理系統(tǒng),如圖8所示,該系統(tǒng)包括一個(gè)主機(jī)和一個(gè)多接口 SSD ;該主機(jī)包含一個(gè)多接口 SSD的驅(qū)動和兩個(gè)可與多接 口 SSD通信接口。所述主機(jī)的接口 1和接口 2分別與所述多接口 SSD的通信接口 1和通信 接口 2(圖中未標(biāo)出)連接,通過運(yùn)行該多接口 SSD的驅(qū)動,所述主機(jī)的每個(gè)接口均可獨(dú)立 的訪問該多接口 SSD,并且在該主機(jī)上顯示兩個(gè)獨(dú)立的多接口 SSD與該主機(jī)相連;在具體實(shí) 施時(shí)可以將主機(jī)可以通過兩個(gè)接口中的一個(gè)向所述多接口 SSD發(fā)送操作命令,也可以通過 兩個(gè)接口同時(shí)向所述多接口 SSD發(fā)送操作命令;當(dāng)通過兩個(gè)接口同時(shí)向所述多接口 SSD發(fā) 送操作命令時(shí),在主機(jī)側(cè)顯示該主機(jī)可以同時(shí)訪問兩個(gè)多接口 SSD,使得主機(jī)和多接口 SSD 的帶寬得到擴(kuò)展,可以使SSD的性能更好的發(fā)揮。具體的,該多接口 SSD對多個(gè)接口控制單元接收到的操作命令的處理,可以參考 實(shí)施例1、實(shí)施例2和實(shí)施例3中的描述,此處將不再贅述。本發(fā)明實(shí)施例中,在同一個(gè)主機(jī)上設(shè)置多個(gè)接口,將所述多個(gè)接口與多接口 SSD 的不同通信接口相連接,運(yùn)行主機(jī)的多接口 SSD驅(qū)動程序后,該主機(jī)的多個(gè)接口可以并發(fā) 地向該多接口 SSD發(fā)送操作命令,擴(kuò)展了一臺主機(jī)和SSD之間的接口帶寬,不同的主機(jī)可以 并發(fā)地直接訪問該固態(tài)硬盤卡固態(tài)硬盤,提高了訪問帶寬,滿足了各主機(jī)對SSD卡SSD的高 性能、高帶寬和大容量等特性的需求。通過以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳 的實(shí)施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部 分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲在可讀取的存儲介質(zhì)中,如計(jì)算機(jī)的軟盤,硬盤或光盤等,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。 以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(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)。
權(quán)利要求
一種多接口固態(tài)硬盤,其特征在于包括多個(gè)接口控制單元、命令調(diào)度單元、flash控制單元以及flash芯片,每個(gè)接口控制單元分別對應(yīng)于一個(gè)通信接口;所述接口控制單元,用于通過所述通信接口接收操作命令;所述命令調(diào)度單元,用于按照調(diào)度規(guī)則從多個(gè)所述接口控制單元中獲取所述操作命令,將所述操作命令放入命令隊(duì)列;所述命令調(diào)度單元還用于從所述命令隊(duì)列中取出所述操作命令并發(fā)送給所述flash控制單元;所述flash控制單元,用于將接收到的所述操作命令轉(zhuǎn)化為flash操作命令,通過所述flash操作命令對所述flash芯片進(jìn)行操作。
2.根據(jù)權(quán)利要求1所述的多接口固態(tài)硬盤,其特征在于,所述命令調(diào)度單元,用于按照 調(diào)度規(guī)則從多個(gè)所述接口控制單元中獲取操作命令,包括所述命令調(diào)度單元按照多個(gè)所述通信接口輪詢的原則,或者根據(jù)多個(gè)所述通信接口編 號按照較低編號優(yōu)先或較高編號優(yōu)先的原則獲取所述操作命令。
3.根據(jù)權(quán)利要求1所述的多接口固態(tài)硬盤,其特征在于,所述命令調(diào)度單元還用于在從所述命令隊(duì)列中取出所述操作命令之后,判斷所述操作命令是否由多條命令組成;若判定所述操作命令由多條命令組成,將所述操作命令劃分為多條命令,并將所述多 條命令發(fā)送給所述flash控制單元;若判定所述操作命令由一條命令組成,將所述一條命令發(fā)送給所述flash控制單元。
4.根據(jù)權(quán)利要求1所述的多接口固態(tài)硬盤,其特征在于,所述通信接口為增強(qiáng)外圍設(shè) 備互聯(lián)PCIe接口。
5.一種多接口固態(tài)硬盤處理方法,其特征在于,包括通過多個(gè)通信接口接收操作命令;按照調(diào)度規(guī)則獲取從所述多個(gè)通信接口接收的所述操作命令,將所述操作命令放入命 令隊(duì)列;從所述命令隊(duì)列中取出所述操作命令;將所述操作命令轉(zhuǎn)化成flash操作命令,對所述固態(tài)硬盤中的flash芯片進(jìn)行操作。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,按照調(diào)度規(guī)則獲取從所述多個(gè)通信接口 接收的所述操作命令包括按照所述多個(gè)通信接口輪詢的原則,或者根據(jù)多個(gè)所述通信接口編號按照較低編號優(yōu) 先或較高編號優(yōu)先的原則獲取所述操作命令。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,在從所述命令隊(duì)列中取出所述操作命令 之后,該方法還包括判斷所述操作命令是否由多條命令組成;若判定所述操作命令由多條命令組成,將所述操作命令劃分為多條命令,并將所述多 條命令轉(zhuǎn)化成對應(yīng)的多條flash操作命令,對所述固態(tài)硬盤中的flash芯片進(jìn)行操作;若判定所述操作命令由一條命令組成,將所述一條命令轉(zhuǎn)化成對應(yīng)的一條flash操作 命令,對所述固態(tài)硬盤中的flash芯片進(jìn)行操作。
8.一種多接口固態(tài)硬盤處理系統(tǒng),其特征在于,包括至少一個(gè)主機(jī)和至少一個(gè)多接 口固態(tài)硬盤;所述主機(jī)包括多接口固態(tài)硬盤驅(qū)動,通過運(yùn)行所述驅(qū)動,實(shí)現(xiàn)所述主機(jī)和所述多接口 固態(tài)硬盤的直接通信連接,所述主機(jī)用于向所述多接口固態(tài)硬盤發(fā)送操作命令;所述多接口固態(tài)硬盤包括多個(gè)接口控制單元、命令調(diào)度單元、flash控制單元以及 flash芯片,每個(gè)接口控制單元分別對應(yīng)于一個(gè)通信接口 ;所述接口控制單元,用于通過所 述通信接口接收所述主機(jī)發(fā)送的操作命令;所述命令調(diào)度單元,用于按照調(diào)度規(guī)則從多個(gè) 所述接口控制單元中獲取所述操作命令,將所述操作命令放入命令隊(duì)列;所述命令調(diào)度單 元還用于從所述命令隊(duì)列中取出所述操作命令并發(fā)送給所述flash控制單元;所述flash 控制單元,用于將接收到的所述操作命令轉(zhuǎn)化為flash操作命令,通過所述flash操作命令 對所述flash芯片進(jìn)行操作。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,當(dāng)所述主機(jī)為兩個(gè)主機(jī),并且所述主機(jī)為 至少連接多接口固態(tài)硬盤的一個(gè)通信接口的主機(jī)時(shí),還包括將所述一個(gè)主機(jī)設(shè)置為主用設(shè)備,將另一個(gè)主機(jī)設(shè)置為備用設(shè)備,并且主用設(shè)備和備 用設(shè)備之間保持鏈路通信。
10.根據(jù)權(quán)利要求7-9中任一項(xiàng)所述的系統(tǒng),其特征在于,所述通信接口為增強(qiáng)外設(shè)互 聯(lián)PCIe接口。
全文摘要
本發(fā)明實(shí)施例公開了一種多接口固態(tài)硬盤及其處理方法和系統(tǒng),涉及通信領(lǐng)域,實(shí)現(xiàn)多個(gè)主機(jī)直接共享訪問SSD,滿足各主機(jī)對SSD高性能、高帶寬和大容量的需求。本發(fā)明的多接口固態(tài)硬盤包括多個(gè)接口控制單元、命令調(diào)度單元、flash控制單元以及flash芯片,每個(gè)接口控制單元分別對應(yīng)于一個(gè)通信接口;接口控制單元通過通信接口接收操作命令;命令調(diào)度單元按照調(diào)度規(guī)則從多個(gè)接口控制單元中獲取操作命令,將該操作命令放入命令隊(duì)列并從中取出該操作命令發(fā)送給flash控制單元;flash控制單元將該操作命令轉(zhuǎn)化為flash操作命令對flash芯片進(jìn)行操作。
文檔編號G11C7/10GK101833989SQ201010184698
公開日2010年9月15日 申請日期2010年5月27日 優(yōu)先權(quán)日2010年5月27日
發(fā)明者李敏秋, 童朝柱 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1