1.一種面向基因數(shù)據(jù)計(jì)算解讀的異構(gòu)平臺(tái),其特征在于:包括異構(gòu)處理器單元(1)、互聯(lián)總線模塊(2)、內(nèi)存(3)、基因計(jì)算解讀數(shù)據(jù)指令輸入單元(4)和基因計(jì)算解讀結(jié)果輸出單元(5),所述異構(gòu)處理器單元(1)分別通過(guò)互聯(lián)總線模塊(2)與內(nèi)存(3)、基因計(jì)算解讀數(shù)據(jù)指令輸入單元(4)、基因計(jì)算解讀結(jié)果輸出單元(5)相連,所述異構(gòu)處理器單元(1)包括CPU、GPU、DSP和FPGA,其中CPU構(gòu)成控制引擎(11),所述CPU、GPU、FPGA三者構(gòu)成計(jì)算引擎(12),所述CPU、GPU、DSP三者構(gòu)成解讀引擎(13),所述控制引擎(11)在通過(guò)基因計(jì)算解讀數(shù)據(jù)指令輸入單元(4)接收基因計(jì)算解讀數(shù)據(jù)指令并分割為代碼段,當(dāng)代碼段的任務(wù)類(lèi)型為控制任務(wù)時(shí),將代碼段的指令和數(shù)據(jù)調(diào)度CPU進(jìn)行處理;當(dāng)代碼段的任務(wù)類(lèi)型為計(jì)算任務(wù)時(shí),將代碼段的指令和數(shù)據(jù)調(diào)度計(jì)算引擎(12)進(jìn)行處理并將計(jì)算結(jié)果通過(guò)基因計(jì)算解讀結(jié)果輸出單元(5)輸出;當(dāng)代碼段的任務(wù)類(lèi)型為解讀任務(wù)時(shí),將代碼段的指令和數(shù)據(jù)調(diào)度解讀引擎(13)進(jìn)行處理并將計(jì)算結(jié)果通過(guò)基因計(jì)算解讀結(jié)果輸出單元(5)輸出。
2.根據(jù)權(quán)利要求1所述的面向基因數(shù)據(jù)計(jì)算解讀的異構(gòu)平臺(tái),其特征在于:所述FPGA包括交叉開(kāi)關(guān)、IO控制單元和加速器單元,所述IO控制單元、加速器單元分別和交叉開(kāi)關(guān)相連,所述加速器單元包括用于實(shí)現(xiàn)隱馬爾可夫模型計(jì)算硬件加速的隱馬爾可夫模型計(jì)算加速器、用于實(shí)現(xiàn)哈希計(jì)算硬件加速的哈希函數(shù)計(jì)算加速器兩者中的至少一種,所述IO控制單元與互聯(lián)總線模塊(2)相連。
3.根據(jù)權(quán)利要求2所述的面向基因數(shù)據(jù)計(jì)算解讀的異構(gòu)平臺(tái),其特征在于:所述IO控制單元包括PCIE接口、DMA控制器、PIU外圍接口部件和DDR控制器,所述交叉開(kāi)關(guān)分別與DMA控制器、PIU外圍接口部件和DDR控制器相連,所述DMA控制器、PIU外圍接口部件之間相互連接,所述PCIE接口與DMA控制器相連,所述PCIE接口、DDR控制器分別與互聯(lián)總線模塊(2)相連。
4.根據(jù)權(quán)利要求1所述的面向基因數(shù)據(jù)計(jì)算解讀的異構(gòu)平臺(tái),其特征在于:所述互聯(lián)總線模塊(2)包括HCCLink總線模塊(21)和HNCLink總線模塊(22),所述CPU、GPU、DSP和FPGA分別通過(guò)HCCLink總線模塊(21)和內(nèi)存(3)相連,且所述CPU、GPU、DSP和FPGA分別通過(guò)HNCLink總線模塊(22)和基因計(jì)算解讀數(shù)據(jù)指令輸入單元(4)以及基因計(jì)算解讀結(jié)果輸出單元(5)相連。
5.根據(jù)權(quán)利要求1所述的面向基因數(shù)據(jù)計(jì)算解讀的異構(gòu)平臺(tái),其特征在于:所述基因計(jì)算解讀數(shù)據(jù)指令輸入單元(4)包括輸入設(shè)備、通用接口模塊、網(wǎng)絡(luò)接口模塊、多媒體輸入接口模塊、外部存儲(chǔ)設(shè)備、傳感器中的至少一種。
6.根據(jù)權(quán)利要求1所述的面向基因數(shù)據(jù)計(jì)算解讀的異構(gòu)平臺(tái),其特征在于:所述基因計(jì)算解讀結(jié)果輸出單元(5)包括顯示設(shè)備、通用接口模塊、網(wǎng)絡(luò)接口模塊、多媒體輸出接口模塊、外部存儲(chǔ)設(shè)備中的至少一種。
7.根據(jù)權(quán)利要求1所述的面向基因數(shù)據(jù)計(jì)算解讀的異構(gòu)平臺(tái),其特征在于:所述將代碼段的指令和數(shù)據(jù)調(diào)度計(jì)算引擎(12)進(jìn)行處理的詳細(xì)步驟包括:
A1)分別判斷代碼段是否能進(jìn)行指令并行執(zhí)行,是否能進(jìn)行流水線執(zhí)行,是否能進(jìn)行數(shù)據(jù)并行執(zhí)行,如果三者均不能,則跳轉(zhuǎn)執(zhí)行步驟A7),退出;否則,跳轉(zhuǎn)執(zhí)行步驟A2);
A2)判斷代碼段是否只能進(jìn)行數(shù)據(jù)并行執(zhí)行,如果只能進(jìn)行數(shù)據(jù)并行執(zhí)行,則跳轉(zhuǎn)執(zhí)行步驟A3);否則,跳轉(zhuǎn)執(zhí)行步驟A6);
A3)判斷代碼段分派到FPGA上優(yōu)化執(zhí)行(即并行執(zhí)行,下同)的總開(kāi)銷(xiāo)少于代碼段分派到GPU上優(yōu)化執(zhí)行的總開(kāi)銷(xiāo)是否成立,所述代碼段分派到FPGA上優(yōu)化執(zhí)行的總開(kāi)銷(xiāo)包括CPU和FPGA之間交互數(shù)據(jù)和指令產(chǎn)生的通信開(kāi)銷(xiāo)、FPGA的訪存開(kāi)銷(xiāo)以及FPGA的計(jì)算開(kāi)銷(xiāo),所述代碼段分派到GPU上優(yōu)化執(zhí)行的總開(kāi)銷(xiāo)包括CPU和GPU之間交互數(shù)據(jù)和指令產(chǎn)生的通信開(kāi)銷(xiāo)、GPU的訪存開(kāi)銷(xiāo)以及GPU的計(jì)算開(kāi)銷(xiāo),如果成立則跳轉(zhuǎn)執(zhí)行步驟A6);否則,跳轉(zhuǎn)執(zhí)行步驟A4);
A4)判斷代碼段是否是能耗優(yōu)先,如果是能耗優(yōu)先,則跳轉(zhuǎn)執(zhí)行步驟A6);否則,跳轉(zhuǎn)執(zhí)行步驟A5);
A5)判斷代碼段的基因計(jì)算是否適合GPU加速處理,如果適合GPU加速處理,則跳轉(zhuǎn)執(zhí)行步驟A8);否則,跳轉(zhuǎn)執(zhí)行步驟A7);
A6)綜合利用FPGA所有可能的加速方法,所述加速方法包括指令并行、流水線、數(shù)據(jù)并行中的至少一種,判斷代碼段分派到FPGA上并且優(yōu)化執(zhí)行的總開(kāi)銷(xiāo)少于代碼段在CPU上執(zhí)行的總開(kāi)銷(xiāo)是否成立,如果成立,則跳轉(zhuǎn)執(zhí)行步驟A9),否則,跳轉(zhuǎn)執(zhí)行步驟A7);
A7)將代碼段的指令和數(shù)據(jù)調(diào)度CPU處理,退出;
A8)將代碼段的指令和數(shù)據(jù)調(diào)度GPU處理,退出;
A9)將代碼段的指令和數(shù)據(jù)調(diào)度FPGA處理,退出。
8.根據(jù)權(quán)利要求7所述的面向基因數(shù)據(jù)計(jì)算解讀的異構(gòu)平臺(tái),其特征在于:步驟A5)的詳細(xì)步驟包括:
A5.1)判斷代碼段的基因計(jì)算是否能進(jìn)行數(shù)據(jù)并行執(zhí)行,如果能進(jìn)行數(shù)據(jù)并行執(zhí)行,則跳轉(zhuǎn)執(zhí)行步驟A5.2);否則,跳轉(zhuǎn)執(zhí)行步驟A7);
A5.2)判斷代碼段分派到GPU上優(yōu)化執(zhí)行的總開(kāi)銷(xiāo)少于代碼段在CPU上執(zhí)行的總開(kāi)銷(xiāo)是否成立,所述代碼段分派到GPU上優(yōu)化執(zhí)行的總開(kāi)銷(xiāo)包括CPU和GPU之間交互數(shù)據(jù)和指令產(chǎn)生的通信開(kāi)銷(xiāo)、GPU的訪存開(kāi)銷(xiāo)以及GPU的計(jì)算開(kāi)銷(xiāo),所述代碼段在CPU上執(zhí)行的總開(kāi)銷(xiāo)包括CPU的訪存開(kāi)銷(xiāo)以及CPU的計(jì)算開(kāi)銷(xiāo),如果成立則跳轉(zhuǎn)執(zhí)行步驟A8);否則,跳轉(zhuǎn)執(zhí)行步驟A7)。
9.根據(jù)權(quán)利要求1所述的面向基因數(shù)據(jù)計(jì)算解讀的異構(gòu)平臺(tái),其特征在于:所述將代碼段的指令和數(shù)據(jù)調(diào)度解讀引擎(13)進(jìn)行處理的詳細(xì)步驟包括:
B1)分別判斷代碼段是否為數(shù)字信號(hào)處理,是否為非圖形圖像類(lèi)多媒體處理,是否為圖形圖像處理,如果三者都不是,則跳轉(zhuǎn)執(zhí)行步驟B7);否則,跳轉(zhuǎn)執(zhí)行步驟B2);
B2)判斷代碼段是否為圖形圖像處理,如果是圖形圖像處理,則跳轉(zhuǎn)執(zhí)行步驟B3);否則,跳轉(zhuǎn)執(zhí)行步驟B5);
B3)判斷代碼段分派到DSP上并且優(yōu)化執(zhí)行的總開(kāi)銷(xiāo)少于代碼段分派到GPU上并且優(yōu)化執(zhí)行的總開(kāi)銷(xiāo)是否成立,所述代碼段分派到DSP上并且優(yōu)化執(zhí)行的總開(kāi)銷(xiāo)包括CPU和DSP之間交互數(shù)據(jù)和指令產(chǎn)生的通信開(kāi)銷(xiāo)、DSP的訪存開(kāi)銷(xiāo)以及DSP的計(jì)算開(kāi)銷(xiāo),所述代碼段分派到GPU上并且優(yōu)化執(zhí)行的總開(kāi)銷(xiāo)包括CPU和GPU之間交互數(shù)據(jù)和指令產(chǎn)生的通信開(kāi)銷(xiāo)、GPU的訪存開(kāi)銷(xiāo)以及GPU的計(jì)算開(kāi)銷(xiāo),如果成立則跳轉(zhuǎn)執(zhí)行步驟B5);否則,跳轉(zhuǎn)執(zhí)行步驟B4);
B4)判斷代碼段是否是能耗優(yōu)先,如果是能耗優(yōu)先,則跳轉(zhuǎn)執(zhí)行步驟B5);否則,跳轉(zhuǎn)執(zhí)行步驟B7)
B5)判斷代碼段分派到DSP上并且優(yōu)化執(zhí)行的總開(kāi)銷(xiāo)少于代碼段在CPU上執(zhí)行的總開(kāi)銷(xiāo)是否成立,所述代碼段在CPU上執(zhí)行的總開(kāi)銷(xiāo)包括CPU的訪存開(kāi)銷(xiāo)以及CPU的計(jì)算開(kāi)銷(xiāo),如果成立則跳轉(zhuǎn)執(zhí)行步驟B6);否則,跳轉(zhuǎn)執(zhí)行步驟B8);
B6)將代碼段的指令和數(shù)據(jù)調(diào)度DSP處理,退出;
B7)判斷代碼段的基因解讀是否適合GPU加速處理,如果代碼段的基因解讀適合GPU加速處理,則將代碼段的指令和數(shù)據(jù)調(diào)度GPU處理,退出;否則,跳轉(zhuǎn)執(zhí)行步驟B8);
B8)將代碼段的指令和數(shù)據(jù)調(diào)度CPU處理,退出。
10.根據(jù)權(quán)利要求9所述的面向基因數(shù)據(jù)計(jì)算解讀的異構(gòu)平臺(tái),其特征在于:步驟B7)的詳細(xì)步驟包括:
B7.1)判斷代碼段是否為圖形圖像處理,如果是圖形圖像處理,則跳轉(zhuǎn)執(zhí)行步驟B7.3);否則,跳轉(zhuǎn)執(zhí)行步驟B7.2);
B7.2)判斷代碼段是否能進(jìn)行數(shù)據(jù)并行執(zhí)行,如果能進(jìn)行數(shù)據(jù)并行執(zhí)行,則跳轉(zhuǎn)執(zhí)行步驟B7.3);否則,跳轉(zhuǎn)執(zhí)行步驟B8);
B7.3)判斷代碼段分派到GPU上并且優(yōu)化執(zhí)行的總開(kāi)銷(xiāo)少于代碼段在CPU上執(zhí)行的總開(kāi)銷(xiāo)是否成立,所述代碼段分派到GPU上并且優(yōu)化執(zhí)行的總開(kāi)銷(xiāo)包括CPU和GPU之間交互數(shù)據(jù)和指令產(chǎn)生的通信開(kāi)銷(xiāo)、GPU的訪存開(kāi)銷(xiāo)以及GPU的計(jì)算開(kāi)銷(xiāo),所述代碼段在CPU上執(zhí)行的總開(kāi)銷(xiāo)包括CPU的訪存開(kāi)銷(xiāo)以及CPU的計(jì)算開(kāi)銷(xiāo),如果成立則跳轉(zhuǎn)執(zhí)行步驟B7.4);否則,跳轉(zhuǎn)執(zhí)行步驟B8);
B7.4)將代碼段的指令和數(shù)據(jù)調(diào)度GPU處理,退出。