本發(fā)明涉及高功能芯片組技術(shù)領(lǐng)域,尤其涉及一種具有近端數(shù)據(jù)處理引擎的芯片組。
背景技術(shù):
隨著數(shù)據(jù)儲存裝置發(fā)展,計算機系統(tǒng)常有大量的數(shù)據(jù)存取需求。為了減輕計算機系統(tǒng)的中央處理單元的工作量,傳統(tǒng)技術(shù)是使數(shù)據(jù)存取的大部分運算在數(shù)據(jù)端完成。如此一來,數(shù)據(jù)端產(chǎn)品通常內(nèi)含廠商所各自設(shè)計的運算模塊。為了兼容不同數(shù)據(jù)端產(chǎn)品,計算機系統(tǒng)的輸入輸出(i/o)通訊相當(dāng)復(fù)雜。
技術(shù)實現(xiàn)要素:
本發(fā)明在計算機系統(tǒng)的芯片組上設(shè)計近端數(shù)據(jù)處理(neardataprocessing,簡稱ndp)引擎,使數(shù)據(jù)端產(chǎn)品的設(shè)計簡單,避免兼容性問題。
根據(jù)本發(fā)明一種實施方式實現(xiàn)的芯片組包括近端數(shù)據(jù)處理引擎以及流量控制模塊。該流量控制模塊將該芯片組所接收的遠程直接存儲器存取封包導(dǎo)向該近端數(shù)據(jù)處理引擎。該近端數(shù)據(jù)處理引擎進行指令轉(zhuǎn)換,以產(chǎn)生輸入輸出端口指令,操作連接該芯片組的外圍設(shè)備。該遠程直接存儲器存取封包源自遠程計算機系統(tǒng)。
上述近端數(shù)據(jù)處理引擎可用于處理遠程直接存儲器存取封包。
下文特舉實施例,并配合所附圖示,詳細說明本發(fā)明內(nèi)容。
附圖說明
圖1為方塊圖,根據(jù)本發(fā)明一種實施方式圖解計算機系統(tǒng)100;
圖2為流程圖,參考圖1說明該近端數(shù)據(jù)處理引擎122實現(xiàn)文件系統(tǒng)(filesystem)的一種實施方式;
圖3為流程圖,參考圖1說明該近端數(shù)據(jù)處理引擎122加速數(shù)據(jù)庫的一種實施方式;以及
圖4為流程圖,參考圖1說明該近端數(shù)據(jù)處理引擎122如何處理遠程計算機系統(tǒng)112傳來的遠程直接存儲器存取(remotedirectmemoryaccess,簡稱rdma)封包。
具體實施方式
以下敘述列舉本發(fā)明的多種實施例。以下敘述介紹本發(fā)明的基本概念,且并非意圖限制本發(fā)明內(nèi)容。實際發(fā)明范圍應(yīng)依照申請專利范圍而界定。
圖1為方塊圖,根據(jù)本發(fā)明一種實施方式圖解計算機系統(tǒng)100,其中包括中央處理單元(cpu)102、動態(tài)隨機存取存儲器(dram)104、芯片組106、以及端口sata、nvme1、nvme2、pcie與所連結(jié)的外圍設(shè)備(包括儲存裝置108_1~108_3以及網(wǎng)卡108_4)。
接口或稱為端口sata、nvme1、nvme2、pcie屬計算機系統(tǒng)100的輸入輸出端(i/o),各自有遵循的傳輸接口,包括串行高級技術(shù)附件(serialadvancedtechnologyattachment,簡稱sata)接口、高速非揮發(fā)式存儲器(nonvolatilememoryexpress,簡稱nvme)接口、以及高速外圍組件互連(peripheralcomponentinterconnectexpress,簡稱pcie)接口。還有以太(ethernet)技術(shù)其他實施方式的端口使用。端口sata、nvme1、nvme2連結(jié)的外圍設(shè)備分別為儲存裝置108_1、108_2、108_3。儲存裝置108_2與108_3可為固態(tài)硬盤ssd。端口pcie連接的外圍設(shè)備為網(wǎng)卡108_4。透過網(wǎng)卡108_4,計算機系統(tǒng)100經(jīng)網(wǎng)絡(luò)110與遠程計算機系統(tǒng)112通訊。值得注意的是,本發(fā)明不限于上述端口所連結(jié)的外圍設(shè)備108_1~108_4的類型,例如pcie接口也可通過轉(zhuǎn)接卡連結(jié)sata接口外圍設(shè)備或nvme接口外圍設(shè)備,并不局限于圖1所示的網(wǎng)卡108_4。
特別是,芯片組106除了具有流量控制模塊(trafficcontrolmodule)120,還內(nèi)建近端數(shù)據(jù)處理(neardataprocessing,簡稱ndp)引擎122。流量控制模塊(trafficcontrolmodule)120除了提供傳統(tǒng)的外圍和核心之間(peripheralandcore)與外圍和系統(tǒng)存儲器之間(peripheralanddram)的流量控制,還提供導(dǎo)向近端數(shù)據(jù)處理引擎122的流量控制。流量控制模塊120將辨識是否使用該近端數(shù)據(jù)處理引擎122。近端數(shù)據(jù)處理引擎122用于實現(xiàn)文件系統(tǒng)(filesystem)、或數(shù)據(jù)庫加速(accelerationofdatabase)、或處理遠程計算機系統(tǒng)112發(fā)出的遠程直接存儲器存取(remotedirectmemoryaccess,簡稱rdma)封包。
如圖1所示,流量控制模塊120可以表格124詳列各端口sata、nvme1、nvme2、pcie所連結(jié)的外圍設(shè)備108_1…108_4是否需要該近端數(shù)據(jù)處理引擎122協(xié)同運作。該表格124可由該計算機系統(tǒng)100的驅(qū)動程序(driver)填寫?!俺TO(shè)”模式代表不使用該近端數(shù)據(jù)處理引擎122?!皀dp”模式代表使用該近端數(shù)據(jù)處理引擎122。圖例的表格124顯示sata儲存裝置108_1為“常設(shè)”模式,且nvme儲存裝置108_2與108_3以及pcie網(wǎng)卡108_4為“ndp”模式。設(shè)置于中央處理單元102以及端口(包括sata、nvme1、nvme2、pcie)之間的流量控制模塊120根據(jù)表格124導(dǎo)引信號。
在下行傳輸周期(downstreamcycle),中央處理單元102發(fā)出信號,以操作輸入輸出端(i/o)的目標(biāo)外圍設(shè)備。流量控制模塊120將比對表格124。若目標(biāo)外圍設(shè)備為“ndp”模式,流量控制模塊120會將中央處理單元102提供的信號導(dǎo)向該近端數(shù)據(jù)處理引擎122。待該近端數(shù)據(jù)處理引擎122完成中央處理單元102提供的信號處理后,將處理后的信號(或數(shù)據(jù))發(fā)送至流量控制模塊120,流量控制模塊120判斷到接收到的信號的來源(source)為該近端數(shù)據(jù)處理引擎122時,略過比對表格124,根據(jù)信號中所包含的最初的目的地(destination)將其發(fā)送至對應(yīng)的目標(biāo)外圍設(shè)備。反之,流量控制模塊120比對表格124時若目標(biāo)外圍設(shè)備標(biāo)注為“常設(shè)”模式,流量控制模塊120會將中央處理單元102提供的信號不經(jīng)該近端數(shù)據(jù)處理引擎122導(dǎo)向該目標(biāo)外圍設(shè)備。
在上行傳輸周期(upstreamcycle),信號是源自輸入輸出端(i/o)的來源外圍設(shè)備。流量控制模塊120將比對表格124。若來源外圍設(shè)備為“ndp”模式,流量控制模塊120會將來源外圍設(shè)備提供的信號導(dǎo)向該近端數(shù)據(jù)處理引擎122。待該近端數(shù)據(jù)處理引擎122完成來源外圍設(shè)備提供的信號處理后,將處理后的信號(或數(shù)據(jù))發(fā)送至流量控制模塊120,流量控制模塊120判斷到接收到的信號的來源(source)為該近端數(shù)據(jù)處理引擎122時,略過比對表格124,根據(jù)信號中所包含的最初的目的地(destination)將其發(fā)送至對應(yīng)的目的地(中央處理單元102或其他外圍設(shè)備)。反之,流量控制模塊120比對表格124時若來源外圍設(shè)備為“常設(shè)”模式,流量控制模塊120會將來源外圍設(shè)備提供的信號不經(jīng)該近端數(shù)據(jù)處理引擎122導(dǎo)向中央處理單元102或其他外圍設(shè)備。
圖1中所述實施例還顯示近端數(shù)據(jù)處理引擎122具有處理器(processor)126、數(shù)據(jù)緩沖器(databuffer)128、緩存一致性接口(cache-coherentinterface)130、樣式比對模塊(patternmatchingmodule)132、以及數(shù)據(jù)壓縮器134。以下將列舉實施方式說明該近端數(shù)據(jù)處理引擎122各模塊的功能。
圖2為流程圖,參考圖1說明該近端數(shù)據(jù)處理引擎122實現(xiàn)文件系統(tǒng)(filesystem)的一種實施方式。計算機系統(tǒng)100是以文件方式管理例如儲存裝置108_2與108_3內(nèi)容。關(guān)于中央處理單元102指示的文件操作(fileoperations),步驟s202是以流量控制模塊120接收,并據(jù)以查詢表格124,獲知目標(biāo)的外圍設(shè)備為“ndp”模式。步驟s204繼而以近端數(shù)據(jù)處理引擎122實現(xiàn)文件系統(tǒng)(filesystem)。在一實施例中,流量控制模塊120將文件操作(fileoperations)暫置于數(shù)據(jù)緩沖器128。處理器126經(jīng)緩存一致性接口130自數(shù)據(jù)緩沖器128取得文件操作(fileoperations),將文件操作轉(zhuǎn)換為輸入輸出端口指令(i/ocommands)后回存該數(shù)據(jù)緩沖器128。步驟s206,流量控制模塊120接收來自數(shù)據(jù)緩沖器128的輸入輸出端口指令(i/ocommands)。步驟s208,流量控制模塊120將輸入輸出端口指令(i/ocommands)導(dǎo)向目標(biāo)的外圍設(shè)備,并接收目標(biāo)的外圍設(shè)備的響應(yīng)(可為原始數(shù)據(jù)(rawdata))。步驟s210再次以近端數(shù)據(jù)處理引擎122實現(xiàn)文件系統(tǒng)(filesystem)。在一實施例中,流量控制模塊120將目標(biāo)的外圍設(shè)備的響應(yīng)置于數(shù)據(jù)緩沖器128,由處理器126經(jīng)緩存一致性接口130取出并轉(zhuǎn)換為文件數(shù)據(jù)回存到該數(shù)據(jù)緩沖器128。步驟s212,流量控制模塊120接收來自數(shù)據(jù)緩沖器128的文件數(shù)據(jù)。步驟s214,流量控制模塊120將文件數(shù)據(jù)導(dǎo)向中央處理單元102。一種實施方式中,流量控制模塊120是以動態(tài)隨機存取存儲器(dram)控制器140為文件數(shù)據(jù)目的地,以還暫存至dram104。
芯片組106提供的近端數(shù)據(jù)處理引擎122所實現(xiàn)的文件系統(tǒng)(filesystem)有效降低中央處理單元102運算負擔(dān)。中央處理單元102僅需單純以文件為單位指示文件操作(fileoperations),無須進行耗費資源的文件系統(tǒng)(filesystem)運算。
一種實施方式中,中央處理單元102是呈虛擬文件系統(tǒng)(virtualfilesystem,簡稱vfs)。如此一來,近端數(shù)據(jù)處理引擎122可實現(xiàn)任何實體文件系統(tǒng)。近端數(shù)據(jù)處理引擎122負責(zé)將虛擬文件系統(tǒng)指令(vfscommands)轉(zhuǎn)換為文件系統(tǒng)管理指令(filesystemmanagementcommands)之后,再轉(zhuǎn)換為區(qū)塊輸入輸出端口指令(blocki/ocommands)。
中央處理單元102端的虛擬文件系統(tǒng)指令(vfscommands)可包括iseek、read、write、mmap、open、ioctl…等。近端數(shù)據(jù)處理引擎122可由arm架構(gòu)嵌入式系統(tǒng)的etx4fs技術(shù)實現(xiàn)。輸入輸出端的區(qū)塊輸入輸出端口指令(blocki/ocommands)可包括create、lookup、link、readpage、mknod…等。
圖3為流程圖,參考圖1說明該近端數(shù)據(jù)處理引擎122加速數(shù)據(jù)庫的一種實施方式。例如,計算機系統(tǒng)100用于實現(xiàn)數(shù)據(jù)中心。中央處理單元102發(fā)出的是數(shù)據(jù)庫要求(databaserequests)─如:空間配置create_namespace、空間移除remove_namespace、查詢get(namespace_id,key),儲存put(namespace_ids,keys,values,lengths)…等。至于數(shù)據(jù)庫要求至輸入輸出端口指令(i/ocommands)的轉(zhuǎn)換則是由近端數(shù)據(jù)處理引擎122負責(zé),數(shù)據(jù)庫操作因而加速。以下以查詢get要求為例進行說明。
步驟s302令流量控制模塊120接收中央處理單元102提出的數(shù)據(jù)庫查詢要求get,并查詢表格124獲知是“ndp”模式裝置的數(shù)據(jù)查詢。步驟s304以近端數(shù)據(jù)處理引擎122實現(xiàn)數(shù)據(jù)庫加速。在一實施例中,流量控制模塊120將數(shù)據(jù)庫查詢要求get置于數(shù)據(jù)緩沖器128。經(jīng)緩存一致性接口130,處理器126自數(shù)據(jù)緩沖器128取出數(shù)據(jù)庫查詢要求get、并辨識出欲查詢的固態(tài)硬盤以轉(zhuǎn)換出對應(yīng)的輸入輸出端口指令(i/ocommands)回存到該數(shù)據(jù)緩沖器128。步驟s306,流量控制模塊120接收來自數(shù)據(jù)緩沖器128的輸入輸出端口指令(i/ocommands)。步驟s308,流量控制模塊120將輸入輸出端口指令(i/ocommands)導(dǎo)向至目標(biāo)的固態(tài)硬盤,使目標(biāo)的固態(tài)硬盤提供查詢內(nèi)容并回傳到流量控制模塊120。步驟s310再次以近端數(shù)據(jù)處理引擎122加速數(shù)據(jù)庫。在一實施例中,流量控制模塊120將查詢內(nèi)容置于數(shù)據(jù)緩沖器128。經(jīng)緩存一致性接口130,處理器126自數(shù)據(jù)緩沖器128取出查詢內(nèi)容、并轉(zhuǎn)換為中央處理單元102兼容的格式回存到該數(shù)據(jù)緩沖器128。流量控制模塊120以步驟s312接收來自數(shù)據(jù)緩沖器128的轉(zhuǎn)換完成的查詢內(nèi)容,再將之以步驟s314導(dǎo)向中央處理單元102。一種實施方式中,流量控制模塊120是以動態(tài)隨機存取存儲器(dram)控制器140為數(shù)據(jù)目的地,以還暫存至dram104。
芯片組106的近端數(shù)據(jù)處理引擎122實現(xiàn)的數(shù)據(jù)庫加速有效減輕中央處理單元102運算負擔(dān),也無須對數(shù)據(jù)端裝置有特別改動。芯片組106具有高兼容性。
圖4為流程圖,參考圖1說明該近端數(shù)據(jù)處理引擎122如何處理遠程計算機系統(tǒng)112傳來的遠程直接存儲器存取(remotedirectmemoryaccess,簡稱rdma)封包。該rdma封包是經(jīng)“ndp”模式的網(wǎng)卡108_4從網(wǎng)絡(luò)110接收并輸入該計算機系統(tǒng)100。該rdma封包的存取對象為計算機系統(tǒng)100裝配的本地存儲器,如都是“ndp”模式的儲存裝置108_2或108_3(此處為固態(tài)硬盤ssd)。以下討論遠程讀取操作。
步驟s402令流量控制模塊120接收網(wǎng)卡108_4上傳的rdma封包,并查詢表格124獲知網(wǎng)卡108_4為“ndp”模式。步驟s404繼而以近端數(shù)據(jù)處理引擎122實現(xiàn)遠程直接存儲器存取(rdma)。在一實施例中,流量控制模塊120將rdma封包置于數(shù)據(jù)緩沖器128。經(jīng)該緩存一致性接口130,樣式比對模塊132辨識該數(shù)據(jù)緩沖器128內(nèi)容確實為rdma封包,并辨識出是要求讀取同為“ndp”模式的本地固態(tài)硬盤108_2(例如,檢查rdma封包內(nèi)的hash值)。經(jīng)該緩存一致性接口130,處理器126自數(shù)據(jù)緩沖器128取得并轉(zhuǎn)換該rdma封包為操作固態(tài)硬盤的nvme指令,將之回存數(shù)據(jù)緩沖器128。步驟s406,流量控制模塊120接收來自數(shù)據(jù)緩沖器128的nvme指令。步驟s408,流量控制模塊120將nvme指令導(dǎo)向固態(tài)硬盤108_2,使固態(tài)硬盤108_2提供要求內(nèi)容并回傳到流量控制模塊120。值得注意的是,nvme指令自身包含字段標(biāo)示其目的地(destination)為固態(tài)硬盤108_2,流量控制模塊120可根據(jù)該字段將其導(dǎo)向正確的目的地。步驟s410再次以近端數(shù)據(jù)處理引擎122實現(xiàn)遠程直接存儲器存取(rdma)。在一實施例中,流量控制模塊120將要求內(nèi)容置于數(shù)據(jù)緩沖器128。經(jīng)緩存一致性接口130,處理器126自數(shù)據(jù)緩沖器128取出要求內(nèi)容、并包裝為數(shù)據(jù)封包后回存到該數(shù)據(jù)緩沖器128。流量控制模塊120以步驟s412接收來自數(shù)據(jù)緩沖器128的數(shù)據(jù)封包,再將之以步驟s414傳遞網(wǎng)卡108_4,經(jīng)網(wǎng)絡(luò)110供應(yīng)給遠程計算機系統(tǒng)112。
芯片組106提供的近端數(shù)據(jù)處理引擎122確實在計算機系統(tǒng)100以及遠程計算機系統(tǒng)112之間實現(xiàn)遠程直接存儲器存取(rdma)。中央處理單元102無介入固態(tài)存儲器108_2以及遠程計算機系統(tǒng)112之間的數(shù)據(jù)交流中。
值得注意的是,倘若樣式比對模塊132判斷網(wǎng)卡108_4傳來的是非rdma封包,則流量控制模塊120會改將網(wǎng)卡108_4提供的該個封包導(dǎo)向中央處理單元102處理。
另外,倘若判斷網(wǎng)卡108_4傳來的rdma封包要求存取目標(biāo)并非本地存儲器108_2或108_3,樣式比對模塊132會形成回傳封包標(biāo)記存取目標(biāo),經(jīng)緩存一致性接口130將該回傳封包存入數(shù)據(jù)緩沖器128。處理器126將該回傳封包發(fā)送至流量控制模塊120,并經(jīng)由該流量控制模塊120交由該網(wǎng)卡108_4根據(jù)標(biāo)記經(jīng)網(wǎng)絡(luò)110發(fā)送到正確目標(biāo)。例如,樣式比對模塊132在判斷rdma封包要求存取第三端(非由計算機系統(tǒng)100管理、也非遠程計算機系統(tǒng)112)的外圍設(shè)備時,會形成回傳封包標(biāo)記該第三端,經(jīng)緩存一致性接口130將該回傳封包存入數(shù)據(jù)緩沖器128。處理器126將該回傳封包發(fā)送至流量控制模塊120,并經(jīng)由該流量控制模塊120交由該網(wǎng)卡108_4根據(jù)該第三端標(biāo)記經(jīng)網(wǎng)絡(luò)110發(fā)送到第三端。
近端數(shù)據(jù)處理引擎122的數(shù)據(jù)壓縮器134為選用模塊,利用緩存一致性接口130與處理器126以及數(shù)據(jù)緩沖器128通訊,實現(xiàn)目標(biāo)外圍設(shè)備的數(shù)據(jù)壓縮又或者可實現(xiàn)對中央處理單元102所下達的指令或操作的解壓縮。近端數(shù)據(jù)處理引擎122可還添加加解密(encryptionanddecryption)模塊(未標(biāo)示在圖中),利用緩存一致性接口130與處理器126以及數(shù)據(jù)緩沖器128通訊,實現(xiàn)目標(biāo)外圍設(shè)備的數(shù)據(jù)加解密又或者可實現(xiàn)對中央處理單元102所下達的指令或操作或回傳的響應(yīng)或數(shù)據(jù)的加解密。
雖然本發(fā)明已以較佳實施例揭露如上,然其并非用以限定本發(fā)明,任何熟悉此項技藝者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可做些許更動與潤飾,因此本發(fā)明的保護范圍當(dāng)視權(quán)利要求所界定的為準(zhǔn)。