專利名稱:一種智能存儲設備及其數據處理方法
技術領域:
本發明涉及計算系統的存儲設備,特別涉及一種應用于集群計算系統的智能存儲設備及其數據處理方法。
背景技術:
宇宙物理、石油勘探、氣候分析等傳統高性能計算領域,以及物聯網、面向對象數據庫、網頁索引、在線網絡服務等網絡計算領域,越來越多地呈現出數據密集型的集群計算的特點,數據規模呈指數性的增長,對接口帶寬和處理延遲的壓力越來越大。圖I是傳統的計算系統的架構示意圖,如圖I所示,由于計算主機(包括處理器、 前端總線、南北橋芯片以及內存等常規部件)與存儲設備(包括接口模塊以及存儲單元)是相互分離的,且存儲設備只用于數據存儲,在進行數據處理時,首先需要將數據從外部存儲設備讀取到主機的內存中,再由處理器對內存中的數據進行處理,最后再將處理完的數據寫回外部存儲器中去。存儲設備只負責數據的接收、存儲以及發送,不對數據進行任何的處理,所有的數據處理均有計算設備的處理器完成。由于所有需要訪問的數據都必須先搬移到內存中,因此在集群計算系統的數據密集型應用中,數據量巨大,主機與存儲設備的訪問接口將面臨較大的帶寬壓力,成為制約整個集群計算系統性能的瓶頸。目前另一種典型的存儲設備,如移動磁盤、安全U盤、存儲卡等,將部分計算部件和永久性存儲部件耦合在一起,為主機設備提供透明的文件訪問,同時將某些數據處理過程從主機轉移到存儲設備中去,例如文件的加解密、密鑰計算以及解壓縮等。但是上述存儲設備只能支持固定的數據處理功能,并且用戶無法為不同的源文件指定相應的處理方式,只支持從主機文件到該類型存儲設備的文件寫或者是從存儲設備中讀取文件到主機。
發明內容
本發明解決的問題是提供一種應用于集群計算系統的智能存儲設備,具有較高性能以及可擴展的數據處理能力。為解決上述問題,本發明提供了一種智能存儲設備,包括訪問接口模塊、與所述訪問接口模塊連接的若干數據處理單元;還包括存儲單元陣列以及數據互連網絡,所述數據互連網絡提供數據處理單元之間以及數據處理單元與存儲單元之間的數據互連。可選的,所述訪問接口模塊包括IDE、PCI/PCI-E、SCSI、USB、SATA接口。所述數據處理單元包括嵌入式微處理器以及相集成的擴展計算模塊;所述擴展計算模塊輔助嵌入式微處理器進行數據處理,且具有可編程接口,通過所述可編程接口擴展數據處理單元所支持的數據處理操作類型。可選的,所述擴展計算模塊包括ASIC、FPGA/CPLD計算模塊。所述數據處理操作類型包括數據壓縮/解壓縮、建立索引、濾波、篩選、坐標變換、加解密以及將處理后數據打包成文件。可選的,所述存儲單元包括NAND Flash、NOR Flash、相變存儲器。可選的,所述數據互連網絡包括數據處理互連網絡以及存儲網絡;所述數據處理互連網絡提供數據處理單元之間的數據互連,所述存儲網絡提供數據處理單元與存儲單元之間的數據互連。基于上述智能存儲設備,本發明還提供了一種數據處理方法,包括外部主機通過訪問接口模塊管理數據處理單元,指定數據處理模式以及數據處理操作類型,再經由數據處理單元在所述存儲單元陣列中進行數據的存儲或讀取操作;所述數據處理模式包括透明文件訪問模式以及擴展智能存儲模式;當指定透明文件訪問模式時,所述數據處理單元轉發外部主機與存儲單元陣列之間的數據流;當指定擴展智能存儲模式時,所述數據處理單元對外部主機與存儲單元陣列之間的數據流進行擴展處理。擴展智能存儲模式下的數據存儲步驟包括訪問接口模塊接收來自于外部主機的待存儲的源文件數據以及數據存儲請求,并將其轉發給數據處理單元;所述數據存儲請求包括指定的數據存儲路徑以及數據處理操作類型信息;所述數據處理單元根據數據存儲請求對所述源文件進行相應的數據處理操作形成目標文件,并將目標文件通過數據互連網絡存儲至指定路徑的存儲單元。 擴展智能存儲模式下的數據讀取步驟包括訪問接口模塊接收來自于外部主機的數據讀取請求,并將其轉發給數據處理單元;所述數據讀取請求包括指定的數據讀取路徑以及數據處理操作類型信息;所述數據處理單元根據數據讀取請求,通過數據互連網絡從指定路徑的存儲單元中獲取源文件,并對所述源文件進行相應的數據處理操作形成目標文件,并將所述目標文件通過訪問接口模塊傳輸給外部主機。可選的,所述各數據處理單元根據數據處理操作類型,并行執行數據處理操作,同時通過數據互連網絡相互通信,進行集群式數據處理。與現有技術相比,本發明具有以下優點在存儲設備中增加數據處理單元,將部分數據處理負載從計算設備轉移到存儲設備進行,從而減少計算設備的內存訪問存儲設備的帶寬需求;進一步的,本發明的存儲設備對于不同的數據處理需求具有可擴展的數據處理的能力,以適應集群計算系統的功能。
圖I是現有計算系統的架構示意圖;圖2是本發明所述智能存儲設備的結構示意圖;圖3是應用本發明智能存儲設備的計算系統的功能架構圖;圖4是用于支持本發明智能存儲設備的主機軟件架構圖;圖5是本發明智能存儲設備所述透明文件訪問模式的功能示意圖;圖6是本發明智能存儲設備所述擴展智能存儲模式的功能示意圖;圖7是在擴展智能存儲模式下計算系統的數據存儲以及讀取流程圖。
具體實施例方式現有的計算系統中,存儲設備僅提供數據的存儲功能,計算主機在進行數據處理時,需要將數據從外部存儲設備讀取到計算設備的內存中,再由處理器對內存中的數據進行處理,最后再將處理完的數據寫回外部存儲器中去。面對集群計算系統的數據密集型應用中,主機與存儲設備的訪問接口將面臨較大的帶寬壓力,從而成為制約集群計算系統性能的瓶頸。本發明提供一種智能存儲設備,在存儲設備中增加數據處理單元,將部分數據處理負載從計算設備轉移到存儲設備進行,從而減少計算設備的內存訪問存儲設備的帶寬需求。圖2是本發明所述智能存儲設備的結構示意圖,具體包括訪問接口模塊、與所述訪問接口模塊連接的若干數據處理單元;還包括存儲單元陣列以及數據互連網絡,所述數據互連網絡用于提供數據處理單元之間以及數據處理單元與存儲單元之間的數據互連。其中,所述訪問接口模塊可以采用標準的文件傳輸接口,例如IDE、PCI/PCI-E、SCSI、USB、SATA接口等,以便于在上述接口驅動程序的基礎上進行編程,實現軟件功能的擴展,使得現有的計算主機與本發明智能存儲設備相兼容,而無需在主機端上作硬件的改動。 所述數據處理單元包括嵌入式微處理器以及擴展計算模塊,所述擴展計算模塊與嵌入式微處理器相集成,輔助嵌入式微處理器進行數據處理。其中,嵌入式微處理器能夠提供較強的整數計算能力,所述擴展計算模塊具有可編程接口,通過所述可編程接口能夠擴展數據處理單元所支持的數據處理操作類型,使得數據處理單元能夠適應不同的數據處理應用。可選的,所述擴展計算模塊包括ASIC、FPGA/CPLD等計算模塊。在集群計算系統中,常見的數據處理操作包括數據壓縮/解壓縮、建立索引、濾波、篩選、坐標變換、加解密以及將處理后數據打包成文件等。當數據處理單元具備了可擴展的數據處理能力,本發明的智能存儲設備便能夠根據集群計算系統的計算應用領域,而優化其專項的計算性能,將主機的部分計算負載轉移至智能存儲設備上。進一步的,在單個智能存儲設備中,包括多個數據處理單元,各數據處理單元可以根據數據處理操作類型,并行執行各種數據處理操作,同時通過智能存儲設備內置的數據互連網絡進行數據處理單元之間的數據通信,從而在智能存儲設備內實現一定的集群式數據處理能力,而提高其數據處理性能。例如,對于常規的壓縮/解壓縮等數據處理操作,單個數據處理單元便能夠勝任處理需求;但對于坐標變換以及濾波篩選等較為復雜的數據處理操作,單個數據處理單元進行單線程的數據處理需要耗費大量的時間,作為優選方案,夕卜部主機可以將上述較為復雜的數據處理操作拆分為多個并行執行的數據處理線程,交給智能存儲設備的多個數據處理單元分別執行,且使得參與上述數據處理的數據處理單元相互通信,實現所述集群式的數據處理。上述對數據處理的拆分,由主機的應用軟件實現,并形成相應的智能存儲設備可識別的硬件指令,通過訪問接口傳輸給數據處理單元。所述數據互連網絡除了提供上述數據處理單元之間的數據互連外,還提供數據處理單元與存儲單元之間的數據互連。作為一個可選的方案,所述數據互連網絡在物理層面上可以為一套網絡,同時提供上述數據互連服務;作為另一個可選的方案,所述數據互連網絡還可以包括兩層在物理層面相互獨立的網絡,具體為數據處理互連網絡以及存儲網絡,用于分別提供前述兩種數據互連服務,使得兩者之間不互相干擾或者擁堵網絡帶寬,提高智能存儲設備的數據處理性能。基于本發明智能存儲設備在計算系統中的職能,所述存儲單元應為永久性存儲器。為了形成高密度低功耗的存儲單元陣列,使其與智能存儲設備所具有的一定集群計算能力相匹配,所述存儲單元可以為NAND Flash、NORFlash或相變存儲器等易于集成的非易失性處理器。各存儲單元通過數據互連網絡,進一步的,通過存儲網絡與各數據處理單元連接。以上內容闡述了本發明智能存儲設備的硬件結構。圖3是應用本發明智能存儲設備的計算系統的功能架構圖,示出了本發明智能存儲設備的基本工作原理。主機與智能存儲設備之間的數據交互過程中,數據的處理操作的主要部分由主機的處理器執行,還有一部分轉移至智能存儲設備中的數據處理單元執行。上述數據處理執行方式,不僅將計算活動更接近于數據存儲端(存儲單元陣列),而且數據處理單元可以通過編程擴展,針對特定的計算應用進行優化設計,在性能/面積/功耗/成本各方面實現更好的折中。由于智能存儲設備與現有的僅用于數據存儲的存儲設備具有硬件上的根本差別,因此為了支持本發明智能存儲設備,需要在主機一端進行軟件層面的改進,以兼容智能存儲設備,實現對計算活動的轉移。作為具體的實施例,圖4示出了一種支持本發明智能存儲設備的主機軟件架構。 如圖4所示,在操作系統層,主機首先面對智能存儲設備的訪問接口模塊,為了進行數據通訊,需要存儲設備接口識別驅動程序。上述接口識別驅動程序可以將主機應用軟件層的文件訪問操作,轉換為智能存儲設備的訪問接口模塊可以識別的硬件指令,并支持主機對智能存儲設備的數據處理單元進行啟動、停止、遷移、切換、擴展等編程操作。而為了訪問接口模塊的正常工作,還需要存儲設備接口驅動程序。此外為了支持智能存儲設備的數據文件類型,還需要存儲設備文件系統驅動程序。在應用軟件層,需要增加智能存儲設備訪問控制/調度程序,用于管理主機與智能存儲設備之間的交互;最終在上述控制/調度程序基礎上,運行智能存儲設備管理應用程序,所述應用程序面向用戶,提供管理和使用智能存儲設備的人機交互界面。基于上述主機軟件架構,用戶便可以通過主機使用智能存儲設備。為進一步說明本發明智能存儲設備的功能特點,以下結合智能存儲設備的數據處理方法實施例,詳細闡述其應用方式。本發明所述的智能存儲設備在進行數據處理(存儲、讀取或其他數據處理操作)時,提供標準的透明文件訪問模式以及擴展智能存儲模式。上述兩種工作模式,由用戶通過主機運行的智能存儲設備管理應用程序指定選擇,智能存儲設備的數據處理單元在不同模式下也具有不同的工作狀態。圖5以及圖6分別示出了本發明智能存儲設備在透明文件訪問模式以及擴展智能存儲模式的功能示意圖。在透明文件訪問模式下,智能存儲設備相當于僅提供數據的存儲或讀取服務的永久性存儲器,與現有的存儲設備相類同。外部主機直接經由訪問接口模塊,并經由數據處理單元以及數據互連網絡訪問存儲單元,進行文件數據的存儲以及讀取。所述數據處理單元對外部主機與存儲單元之間的數據流不進行任何處理,僅起到轉發的作用。主機相當于透明地訪問存儲單元,直接在存儲單元內進行復制、粘貼、刪除、轉移等標準文件操作。例如圖5所示,當進行文件數據存儲或讀取時,源文件可以來自于智能存儲設備中指定路徑的存儲單元,還可以來自于外部傳感器、其他存儲設備或主機,目標文件則可以是智能存儲設備中指定路徑的存儲單元或者主機。上述數據流僅僅經由數據互連網絡、并由數據處理單元通過訪問接口模塊轉發,不會產生數據結構的變化,源文件與目標文件本質上是相同的。在擴展智能存儲模式下,智能存儲設備的數據處理單元需要對流經的數據流進行相關的數據處理,以分擔主機的計算負載。所述數據處理操作類型可以包括數據壓縮/解壓縮、建立索引、濾波、篩選、坐標變換、加解密以及將處理后數據打包成文件等。智能存儲設備的數據處理操作類型,是可以在通過對數據處理單元的編程重構而實現的。數據處理單元通常僅根據實際的計算應用領域,對上述數據操作類型的其中一種或若干種進行配置擴展,而并不需要面面俱到,從而在功能/面積/能耗之間做折中選擇。在實際使用時,用戶需通過主機上運行的智能存儲設備管理應用程序選擇數據處理單元相應的數據處理操作類型。擴展智能存儲模式的基本工作方式包括外部主機先通過訪問接口模塊選擇數據處理單元的數據處理操作類型,并指定數據的傳輸路徑。所述數據的傳輸路徑即數據流的走向,例如讀取操作時,主機需要指定源文件的具體來源路徑,而存儲操作時,主機需要指定目標文件的存儲路徑。無論是存儲或是讀取,數據流均會經過數據處理單元進行相應處
理。 例如圖6所示,所述數據處理單元對來自于外部主機的源文件進行數據處理操作形成目標文件,并將目標文件存儲至指定路徑的存儲單元;或者,所述數據處理單元對來自于指定路徑的存儲單元的源文件進行數據處理操作形成目標文件,并將目標文件經由訪問接口模塊傳輸給外部主機。圖7示出了應用本發明智能存儲設備的計算系統在上述擴展智能存儲模式下,進行數據存儲以及讀取的流程圖。以下結合圖4、圖6以及圖7,分別對上述數據存儲以及讀取流程進行闡述。在數據存儲時,主機通過運行于其上的存儲設備訪問控制/調度接口程序將其數據系統(例如內存)內的源文件進行解析提取,形成結構化數據,并將所述結構化數據以及數據存儲請求傳輸至智能存儲設備的訪問接口模塊。所述結構化數據僅僅是將源文件解析為便于智能存儲設備的訪問模塊識別、轉發的數據結構,并未改變源文件的實質內容;所述數據存儲請求包括指定的數據存儲路徑以及數據處理操作類型信息;所述訪問接口模塊接收上述結構化數據以及數據存儲請求后,將其轉發給的數據處理單元,數據處理單元根據數據存儲請求中指定的數據操作類型執行相應數據處理操作,處理所述結構化的源文件數據。在上述數據處理操作結束后,數據處理單元將處理完的數據組織打包成目標文件,再通過數據互連網絡,具體的通過存儲網絡,寫入數據存儲請求中指定路徑的存儲單元進行存儲。如前所述,上述數據處理單元執行數據處理操作時,可以是由單個數據處理單元執行的單線程數據處理;也可以是主機根據數據處理操作類型,拆分形成多個數據處理線程,并派發至多個數據處理單元并行執行的多線程數據處理,同時各參與數據處理的數據處理單元通過數據處理互連網絡相互通信,實現集群式數據處理。在數據讀取時,主機通過運行于其上的存儲設備訪問控制/調度接口程序向智能存儲設備發出數據讀取請求,訪問接口模塊在接收到所述數據讀取請求后將其發送給數據處理單元,與所述數據讀取請求相匹配的數據處理單元啟動并開始執行數據讀取任務。具體的,所述數據處理單元經由存儲網絡從指定路徑的存儲單元中讀取源文件,并解析所述文件提取數據結構,執行相應的數據處理操作,具體的數據處理過程與前述數據存儲流程相類似。在數據處理操作結束后,數據處理單元將處理后數據組織成結構化數據,并發送給訪問接口模塊,由其轉發給主機的訪問控制/調度接口程序,所述訪問控制/調度接口程序將接收到的結構化數據寫入主機的數據系統(內存)暫存,或者再送入主機的處理器進行
進一步處理。以上實施例闡述了本發明智能存儲設備的架構體系及其應用。在集群計算系統中,由于數據量巨大,處理周期較長,主機不可能長期不間斷的調用同一臺智能存儲設備。因此智能存儲設備并不需要即時同步地完成數據的先處理再存儲等待調用流程。作為另一個可選方案,智能存儲設備還可以脫離于主機執行數據處理操作。具體的,如果外部主機在數據存儲后并不需要即時調用存儲的數據,在向智能存儲設備發送源文件數據以及數據存儲請求時,所述數據存儲請求內除了指定存儲路徑以及數據操作類型外,還可以包括指定離線處理等信息;智能存儲設備從主機中接收待處理數據以及所述離線處理指令后,便可以先不做任何數據處理操作而將源文件數據直接存儲在指定路徑的存儲單元中,然后在主機離線后由數據處理單元自行從該存儲單元中提取待處理的源文件執行數據處理操作形
成目標文件,并重新寫回該存儲單元,完成源文件數據向目標文件數據的轉換過程,以待后續主機重新上線時調用。上述機制的好處在于,智能存儲設備可以利用空閑時間,脫離于主機進行數據處理,該空閑時間可以是智能存儲設備的異地轉移或者主機離線停機期間,以提高整個計算系統的運行效率。雖然本發明已以較佳實施例披露如上,但本發明并非限定于此。任何本領域技術人員,在不脫離本發明的精神和范圍內,均可作各種更動與修改,因此本發明的保護范圍應當以權利要求所限定的范圍為準。
權利要求
1.一種智能存儲設備,其特征在于,包括訪問接口模塊、與所述訪問接口模塊連接的若干數據處理單元;還包括存儲單元陣列以及數據互連網絡,所述數據互連網絡提供數據處理單元之間以及數據處理單元與存儲單元之間的數據互連。
2.如權利要求I所述的智能存儲設備,其特征在于,所述訪問接口模塊包括IDE、PCI/PCI-E、SCSI、USB、SATA 接口。
3.如權利要求I所述的智能存儲設備,其特征在于,所述數據處理單元包括嵌入式微處理器以及相集成的擴展計算模塊;所述擴展計算模塊輔助嵌入式微處理器進行數據處理,且具有可編程接口,通過所述可編程接口擴展數據處理單元所支持的數據處理操作類型。
4.如權利要求3所述的智能存儲設備,其特征在于,所述擴展計算模塊包括ASIC、FPGA/CPLD計算模塊。
5.如權利要求3所述的智能存儲設備,其特征在于,所述數據處理操作類型包括數據壓縮/解壓縮、建立索引、濾波、篩選、坐標變換、加解密以及將處理后數據打包成文件。
6.如權利要求I所述的智能存儲設備,其特征在于,所述存儲單元包括NANDFlash、NOR Flash、相變存儲器。
7.如權利要求I所述的智能存儲設備,其特征在于,所述數據互連網絡包括數據處理互連網絡以及存儲網絡;所述數據處理互連網絡提供數據處理單元之間的數據互連,所述存儲網絡提供數據處理單元與存儲單元之間的數據互連。
8.—種如權利要求I至7任一項所述智能存儲設備的數據處理方法,其特征在于,外部主機通過訪問接口模塊管理數據處理單元,指定數據處理模式以及數據處理操作類型,再經由數據處理單元在所述存儲單元陣列中進行數據的存儲或讀取操作;所述數據處理模式包括透明文件訪問模式以及擴展智能存儲模式;當指定透明文件訪問模式時,所述數據處理單元轉發外部主機與存儲單元陣列之間的數據流;當指定擴展智能存儲模式時,所述數據處理單元對外部主機與存儲單元陣列之間的數據流進行擴展處理。
9.如權利要求8所述的數據處理方法,其特征在于,擴展智能存儲模式下的數據存儲步驟包括訪問接口模塊接收來自于外部主機的待存儲的源文件數據以及數據存儲請求,并將其轉發給數據處理單元;所述數據存儲請求包括指定的數據存儲路徑以及數據處理操作類型信息;所述數據處理單元根據數據存儲請求對所述源文件進行相應的數據處理操作形成目標文件,并將目標文件通過數據互連網絡存儲至指定路徑的存儲單元。
10.如權利要求8所述的數據處理方法,其特征在于,擴展智能存儲模式下的數據讀取步驟包括訪問接口模塊接收來自于外部主機的數據讀取請求,并將其轉發給數據處理單元;所述數據讀取請求包括指定的數據讀取路徑以及數據處理操作類型信息;所述數據處理單元根據數據讀取請求,通過數據互連網絡從指定路徑的存儲單元中獲取源文件,并對所述源文件進行相應的數據處理操作形成目標文件,并將所述目標文件通過訪問接口模塊傳輸給外部主機。
11.如權利要求8所述的數據處理方法,其特征在于,所述各數據處理單元根據數據處理操作類型,并行執行數據處理操作,同時通過數據互連網絡相互通信,進行集群式數據處理。
全文摘要
本發明提供了一種智能存儲設備及其數據處理方法,所述智能存儲設備包括訪問接口模塊、與所述訪問接口模塊連接的若干數據處理單元;還包括存儲單元陣列以及數據互連網絡,所述數據互連網絡提供數據處理單元之間以及數據處理單元與存儲單元之間的數據互連。本發明在存儲設備中增加數據處理單元,將部分數據處理負載從計算設備轉移到存儲設備進行,從而減少計算設備的內存訪問存儲設備的帶寬需求;進一步的,本發明的存儲設備對于不同的數據處理需求具有可擴展的數據處理的能力,以適應集群計算系統的功能。
文檔編號G06F3/06GK102760045SQ20111011081
公開日2012年10月31日 申請日期2011年4月29日 優先權日2011年4月29日
發明者原昊, 吳東, 張昆, 方興, 謝向輝 申請人:無錫江南計算技術研究所