本發(fā)明涉及基因測序技術(shù),具體涉及一種面向基因數(shù)據(jù)計算解讀的異構(gòu)平臺。
背景技術(shù):
最近幾年,隨著下一代測序技術(shù)(Next Generation Sequence, 以下簡稱NGS)的廣泛應用,基因測序的成本迅速下降,基因技術(shù)開始進入普及應用。NGS包括基因數(shù)據(jù)計算和基因數(shù)據(jù)解讀兩個步驟,其中基因數(shù)據(jù)計算是指對原始的基因測序數(shù)據(jù)進行去偽、去重等預處理,以便基因數(shù)據(jù)解讀時使用,基因數(shù)據(jù)解讀是指對基因數(shù)據(jù)計算處理后的基因數(shù)據(jù)在生物學、醫(yī)學、健康保健等領(lǐng)域的科學含義進行分析、揭示和解釋。
基因技術(shù)臨床應用發(fā)展存在兩個方面的瓶頸:一個制約基因技術(shù)臨床應用發(fā)展的瓶頸是基因數(shù)據(jù)的海量性?;诩夹g(shù)的原因,NGS生成的原始基因數(shù)據(jù)的單樣本數(shù)據(jù)量非常大,比如全基因組(Whole-Genome Sequencing, WGS)的單樣本數(shù)據(jù)達100G以上,因此基因單樣本數(shù)據(jù)的計算就已經(jīng)是高輸入/輸出密集和高計算密集型任務(wù);再加上基因技術(shù)的快速普及,導致測序生成的原始基因數(shù)據(jù)的總量成指數(shù)增長。所以,對基因數(shù)據(jù)進行實時的、準確的計算和傳送變得非常困難,面臨著巨大的挑戰(zhàn)。為此,目前典型的方法是在擁有數(shù)量更多、性能更強的高性能處理器的計算機集群上,運用基于多線程技術(shù)的軟件進行處理。但是,這種系統(tǒng)的缺點是:一方面,它在存儲、功耗、技術(shù)支持和維護上的成本高;另一方面,在保證準確性的前提下,它能獲得的并行計算加速性能仍然難以滿足上述挑戰(zhàn)的需求;更主要的是,測序生成的原始基因數(shù)據(jù)的增加已經(jīng)遠超摩爾定律,所以,這種方法已經(jīng)缺乏持續(xù)性。另一個制約基因技術(shù)臨床應用發(fā)展的瓶頸是基因數(shù)據(jù)解讀的精確性和可讀性。目前基因數(shù)據(jù)解讀的典型方法是基于一個人類參考基因,用測序生成并經(jīng)基因數(shù)據(jù)計算處理后的基因數(shù)據(jù),重構(gòu)出某人的基因。然而,當前使用的參考基因,例如GRCh38,是基于有限的樣本,既不足以代表整個人類的多樣性,又不完備,在探測個體基因里的獨特變異時,標準的基因信息學流程會導致偏差,而且缺乏與其它生物、醫(yī)學信息的深度交叉分析。此外,基因數(shù)據(jù)解讀還基本停留在專業(yè)領(lǐng)域,面向非專業(yè)的大眾,缺乏可讀性,即缺乏對基因數(shù)據(jù)直接的生物意義和間接的健康影響的通俗易懂、形式多樣的解讀。
目前,計算機系統(tǒng)中常見的處理器類型有中央處理器(Central Processing Unit, 簡稱CPU)、現(xiàn)場可編程門陣列(Field Programmable Gate Array, 簡稱FPGA)、圖形處理器(Graphics Processing Unit, 簡稱 GPU)和數(shù)字信號處理器(Digital Signal Processor, 簡稱DSP)。目前的高性能CPU通常都包括多個處理器核(Processor Core),從硬件上支持多線程,但是其設(shè)計目標還是面向通用應用程序,而相對于特殊的計算,通用應用程序的并行性較小,需要較復雜的控制和較低的性能目標。因此,CPU片上的硬件資源主要還是用于實現(xiàn)復雜的控制而不是計算,沒有為特殊功能包含專門的硬件,能夠支持的計算并行度不高。FPGA是一種半定制電路,優(yōu)點有:基于FPGA進行系統(tǒng)開發(fā),設(shè)計周期短、開發(fā)費用低;功耗低;生產(chǎn)后可重新修改配置,設(shè)計靈活性高,設(shè)計風險小。缺點是:實現(xiàn)同樣的功能,F(xiàn)PGA一般來說比專用集成電路(Application Specific Integrated Circuit, ASIC)的速度要慢,比ASIC電路面積要大。隨著技術(shù)的發(fā)展和演進,F(xiàn)PGA向更高密度、更大容量、更低功耗和集成更多硬核知識產(chǎn)權(quán)(Intellectual Property, IP)的方向發(fā)展,F(xiàn)PGA的缺點在縮小,而優(yōu)點在放大。相比于CPU,F(xiàn)PGA可以用硬件描述語言來定制實現(xiàn)、修改和增加并行計算。GPU最初是一種專門用于圖像處理的微處理器,能夠從硬件上支持紋理映射和多邊形著色等圖形計算基本任務(wù)。由于圖形學計算涉及一些通用數(shù)學計算,比如矩陣和向量運算,而GPU擁有高度并行化的架構(gòu),因此,隨著相關(guān)軟硬件技術(shù)的發(fā)展,GPU計算技術(shù)日益興起,即GPU不再局限于圖形處理,還被開發(fā)用于線性代數(shù)、信號處理、數(shù)值仿真等并行計算,可以提供數(shù)十倍乃至于上百倍于CPU的性能。但是目前的GPU存在2個問題:一是,受限于GPU的硬件結(jié)構(gòu)特性,很多并行算法不能在GPU上有效地執(zhí)行;二是,GPU運行中會產(chǎn)生大量熱量,能耗較高。DSP是一種用數(shù)字方法對各種信號進行快速分析、變換、濾波、檢測、調(diào)制、解調(diào)等運算處理的微處理器。為此,DSP在芯片內(nèi)部結(jié)構(gòu)上做了特殊的優(yōu)化,比如硬件實現(xiàn)高速、高精度的乘法等。隨著數(shù)字時代的到來,DSP廣泛應用于智能設(shè)備、資源勘探、數(shù)字控制、生物醫(yī)學、航天航空等各個領(lǐng)域,具有功耗低、精度高、可進行二維與多維處理等特點。綜上所述,以上四種計算器件各有特點,又各有局限性。但是,針對前述基因技術(shù)臨床應用發(fā)展存在的兩個方面的瓶頸,如何利用上述處理器來構(gòu)建混合架構(gòu)平臺以實現(xiàn)海量基因數(shù)據(jù)的計算解讀,則已經(jīng)成為一項亟待解決的關(guān)鍵技術(shù)問題。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題:針對現(xiàn)有技術(shù)的上述問題,提供一種能夠為提高基因數(shù)據(jù)計算的實時性和準確性、提高基因數(shù)據(jù)解讀的精準性和可讀性提供硬件支持,基因數(shù)據(jù)計算解讀效率高、制造成本低、計算解讀能耗低的面向基因數(shù)據(jù)計算解讀的異構(gòu)平臺。
為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:
一種面向基因數(shù)據(jù)計算解讀的異構(gòu)平臺,包括異構(gòu)處理器單元、互聯(lián)總線模塊、內(nèi)存、基因計算解讀數(shù)據(jù)指令輸入單元和基因計算解讀結(jié)果輸出單元,所述異構(gòu)處理器單元分別通過互聯(lián)總線模塊與內(nèi)存、基因計算解讀數(shù)據(jù)指令輸入單元、基因計算解讀結(jié)果輸出單元相連,所述異構(gòu)處理器單元包括CPU、GPU、DSP和FPGA,其中CPU構(gòu)成控制引擎,所述CPU、GPU、FPGA三者構(gòu)成計算引擎,所述CPU、GPU、DSP三者構(gòu)成解讀引擎,所述控制引擎在通過基因計算解讀數(shù)據(jù)指令輸入單元接收基因計算解讀數(shù)據(jù)指令并分割為代碼段,當代碼段的任務(wù)類型為控制任務(wù)時,將代碼段的指令和數(shù)據(jù)調(diào)度CPU進行處理;當代碼段的任務(wù)類型為計算任務(wù)時,將代碼段的指令和數(shù)據(jù)調(diào)度計算引擎進行處理并將計算結(jié)果通過基因計算解讀結(jié)果輸出單元輸出;當代碼段的任務(wù)類型為解讀任務(wù)時,將代碼段的指令和數(shù)據(jù)調(diào)度解讀引擎進行處理并將計算結(jié)果通過基因計算解讀結(jié)果輸出單元輸出。
優(yōu)選地,所述FPGA包括交叉開關(guān)、IO控制單元和加速器單元,所述IO控制單元、加速器單元分別和交叉開關(guān)相連,所述加速器單元包括用于實現(xiàn)隱馬爾可夫模型計算硬件加速的隱馬爾可夫模型計算加速器、用于實現(xiàn)哈希計算硬件加速的哈希函數(shù)計算加速器兩者中的至少一種,所述IO控制單元與互聯(lián)總線模塊相連。
優(yōu)選地,所述IO控制單元包括PCIE接口、DMA控制器、PIU外圍接口部件和DDR控制器,所述交叉開關(guān)分別與DMA控制器、PIU外圍接口部件和DDR控制器相連,所述DMA控制器、PIU外圍接口部件之間相互連接,所述PCIE接口與DMA控制器相連,所述PCIE接口、DDR控制器分別與互聯(lián)總線模塊相連。
優(yōu)選地,所述互聯(lián)總線模塊包括HCCLink總線模塊和HNCLink總線模塊,所述CPU、GPU、DSP和FPGA分別通過HCCLink總線模塊和內(nèi)存相連,且所述CPU、GPU、DSP和FPGA分別通過HNCLink總線模塊和基因計算解讀數(shù)據(jù)指令輸入單元以及基因計算解讀結(jié)果輸出單元相連。
優(yōu)選地,所述基因計算解讀數(shù)據(jù)指令輸入單元包括輸入設(shè)備、通用接口模塊、網(wǎng)絡(luò)接口模塊、多媒體輸入接口模塊、外部存儲設(shè)備、傳感器中的至少一種。
優(yōu)選地,所述基因計算解讀結(jié)果輸出單元包括顯示設(shè)備、通用接口模塊、網(wǎng)絡(luò)接口模塊、多媒體輸出接口模塊、外部存儲設(shè)備中的至少一種。
優(yōu)選地,所述將代碼段的指令和數(shù)據(jù)調(diào)度計算引擎進行處理的詳細步驟包括:
A1)分別判斷代碼段是否能進行指令并行執(zhí)行,是否能進行流水線執(zhí)行,是否能進行數(shù)據(jù)并行執(zhí)行,如果三者均不能,則跳轉(zhuǎn)執(zhí)行步驟A7),退出;否則,跳轉(zhuǎn)執(zhí)行步驟A2);
A2)判斷代碼段是否只能進行數(shù)據(jù)并行執(zhí)行,如果只能進行數(shù)據(jù)并行執(zhí)行,則跳轉(zhuǎn)執(zhí)行步驟A3);否則,跳轉(zhuǎn)執(zhí)行步驟A6);
A3)判斷代碼段分派到FPGA上優(yōu)化執(zhí)行(即并行執(zhí)行,下同)的總開銷少于代碼段分派到GPU上優(yōu)化執(zhí)行的總開銷是否成立,所述代碼段分派到FPGA上優(yōu)化執(zhí)行的總開銷包括CPU和FPGA之間交互數(shù)據(jù)和指令產(chǎn)生的通信開銷、FPGA的訪存開銷以及FPGA的計算開銷,所述代碼段分派到GPU上優(yōu)化執(zhí)行的總開銷包括CPU和GPU之間交互數(shù)據(jù)和指令產(chǎn)生的通信開銷、GPU的訪存開銷以及GPU的計算開銷,如果成立則跳轉(zhuǎn)執(zhí)行步驟A6);否則,跳轉(zhuǎn)執(zhí)行步驟A4);
A4)判斷代碼段是否是能耗優(yōu)先,如果是能耗優(yōu)先,則跳轉(zhuǎn)執(zhí)行步驟A6);否則,跳轉(zhuǎn)執(zhí)行步驟A5);
A5)判斷代碼段的基因計算是否適合GPU加速處理,如果適合GPU加速處理,則跳轉(zhuǎn)執(zhí)行步驟A8);否則,跳轉(zhuǎn)執(zhí)行步驟A7);
A6)綜合利用FPGA所有可能的加速方法,所述加速方法包括指令并行、流水線、數(shù)據(jù)并行中的至少一種,判斷代碼段分派到FPGA上并且優(yōu)化執(zhí)行的總開銷少于代碼段在CPU上執(zhí)行的總開銷是否成立,如果成立,則跳轉(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處理,退出。
優(yōu)選地,步驟A5)的詳細步驟包括:
A5.1)判斷代碼段的基因計算是否能進行數(shù)據(jù)并行執(zhí)行,如果能進行數(shù)據(jù)并行執(zhí)行,則跳轉(zhuǎn)執(zhí)行步驟A5.2);否則,跳轉(zhuǎn)執(zhí)行步驟A7);
A5.2)判斷代碼段分派到GPU上優(yōu)化執(zhí)行的總開銷少于代碼段在CPU上執(zhí)行的總開銷是否成立,所述代碼段分派到GPU上優(yōu)化執(zhí)行的總開銷包括CPU和GPU之間交互數(shù)據(jù)和指令產(chǎn)生的通信開銷、GPU的訪存開銷以及GPU的計算開銷,所述代碼段在CPU上執(zhí)行的總開銷包括CPU的訪存開銷以及CPU的計算開銷,如果成立則跳轉(zhuǎn)執(zhí)行步驟A8);否則,跳轉(zhuǎn)執(zhí)行步驟A7)。
優(yōu)選地,所述將代碼段的指令和數(shù)據(jù)調(diào)度解讀引擎進行處理的詳細步驟包括:
B1)分別判斷代碼段是否為數(shù)字信號處理,是否為非圖形圖像類多媒體處理,是否為圖形圖像處理,如果三者都不是,則跳轉(zhuǎn)執(zhí)行步驟B7);否則,跳轉(zhuǎn)執(zhí)行步驟B2);
B2)判斷代碼段是否為圖形圖像處理,如果是圖形圖像處理,則跳轉(zhuǎn)執(zhí)行步驟B3);否則,跳轉(zhuǎn)執(zhí)行步驟B5);
B3)判斷代碼段分派到DSP上并且優(yōu)化執(zhí)行的總開銷少于代碼段分派到GPU上并且優(yōu)化執(zhí)行的總開銷是否成立,所述代碼段分派到DSP上并且優(yōu)化執(zhí)行的總開銷包括CPU和DSP之間交互數(shù)據(jù)和指令產(chǎn)生的通信開銷、DSP的訪存開銷以及DSP的計算開銷,所述代碼段分派到GPU上并且優(yōu)化執(zhí)行的總開銷包括CPU和GPU之間交互數(shù)據(jù)和指令產(chǎn)生的通信開銷、GPU的訪存開銷以及GPU的計算開銷,如果成立則跳轉(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í)行的總開銷少于代碼段在CPU上執(zhí)行的總開銷是否成立,所述代碼段在CPU上執(zhí)行的總開銷包括CPU的訪存開銷以及CPU的計算開銷,如果成立則跳轉(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處理,退出。
優(yōu)選地,步驟B7)的詳細步驟包括:
B7.1)判斷代碼段是否為圖形圖像處理,如果是圖形圖像處理,則跳轉(zhuǎn)執(zhí)行步驟B7.3);否則,跳轉(zhuǎn)執(zhí)行步驟B7.2);
B7.2)判斷代碼段是否能進行數(shù)據(jù)并行執(zhí)行,如果能進行數(shù)據(jù)并行執(zhí)行,則跳轉(zhuǎn)執(zhí)行步驟B7.3);否則,跳轉(zhuǎn)執(zhí)行步驟B8);
B7.3)判斷代碼段分派到GPU上并且優(yōu)化執(zhí)行的總開銷少于代碼段在CPU上執(zhí)行的總開銷是否成立,所述代碼段分派到GPU上并且優(yōu)化執(zhí)行的總開銷包括CPU和GPU之間交互數(shù)據(jù)和指令產(chǎn)生的通信開銷、GPU的訪存開銷以及GPU的計算開銷,所述代碼段在CPU上執(zhí)行的總開銷包括CPU的訪存開銷以及CPU的計算開銷,如果成立則跳轉(zhuǎn)執(zhí)行步驟B7.4);否則,跳轉(zhuǎn)執(zhí)行步驟B8);
B7.4)將代碼段的指令和數(shù)據(jù)調(diào)度GPU處理,退出。
本發(fā)明面向基因數(shù)據(jù)計算解讀的異構(gòu)平臺具有下述優(yōu)點:
1、平臺化,本發(fā)明的異構(gòu)平臺為基于CPU加FPGA、GPU和DSP的異構(gòu)平臺,能夠讓設(shè)計人員開發(fā)各種基因數(shù)據(jù)計算、基因數(shù)據(jù)解讀和基因數(shù)據(jù)計算解讀應用流程,無需重新設(shè)計硬件系統(tǒng);能夠移植其它公開或商用基因數(shù)據(jù)計算、基因數(shù)據(jù)解讀和基因數(shù)據(jù)計算解讀應用軟件,無需重新設(shè)計硬件系統(tǒng);能夠用異構(gòu)編程語言(如OpenCL)來實現(xiàn)整個異構(gòu)平臺應用開發(fā)的一致性。
2、可擴展性好,本發(fā)明的異構(gòu)平臺為基于CPU加FPGA、GPU和DSP的異構(gòu)平臺,能夠根據(jù)應用需求的不同和變化,靈活地擴展和重構(gòu)。
3、應用廣泛,本發(fā)明的異構(gòu)平臺為基于CPU加FPGA、GPU和DSP的異構(gòu)平臺,既能夠作為本地基因數(shù)據(jù)計算、基因數(shù)據(jù)解讀和基因數(shù)據(jù)計算解讀的處理設(shè)備,又能夠作為集群或云計算環(huán)境下基因數(shù)據(jù)計算、基因數(shù)據(jù)解讀和基因數(shù)據(jù)計算解讀的處理結(jié)點。
4、高可配,本發(fā)明的異構(gòu)平臺為基于CPU加FPGA、GPU和DSP的異構(gòu)平臺,在軟件方面,四種核心部件——CPU、FPGA、GPU和DSP都是可編程器件;在硬件方面,F(xiàn)PGA還能夠在系統(tǒng)定型、生產(chǎn)和安裝后,按需進行增量配置,即修改和/或增加功能;在應用集成方面,能夠根據(jù)基因數(shù)據(jù)計算解讀的各種應用要求,根據(jù)CPU、FPGA、GPU和DSP及其它硬件的優(yōu)勢特點,對系統(tǒng)各個部件的組織、規(guī)模和關(guān)聯(lián)性來進行配置和使用,使各部件合理分工并協(xié)同工作,最大效率地優(yōu)化應用流程。本發(fā)明系統(tǒng)為系統(tǒng)和應用設(shè)計師提供了良好的設(shè)計靈活性和增量配置能力,易于升級適應新的應用。
5、匹配基因數(shù)據(jù)計算解讀的異構(gòu)計算(heterogeneous computing)需求,本發(fā)明的異構(gòu)平臺為基于CPU加FPGA、GPU和DSP的異構(gòu)平臺,能夠很好地匹配和滿足現(xiàn)在及將來基因數(shù)據(jù)計算解讀中融合處理分析文本、圖片、語音、音頻、視頻和其它電信號等各種結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的異構(gòu)計算對硬件的需求。
6、高性能,本發(fā)明的異構(gòu)平臺為基于CPU加FPGA、GPU和DSP的異構(gòu)平臺,能夠從三個方面為高性能基因數(shù)據(jù)計算解讀提供硬件支持:一,同時提供任務(wù)并行、數(shù)據(jù)并行和算法硬件加速所需硬件;二,同時提供控制任務(wù)、事務(wù)型任務(wù)、非數(shù)據(jù)密集型計算任務(wù)、數(shù)據(jù)密集型計算任務(wù)所需硬件;三,同時提供文本、圖片、語音、音頻、視頻和其它電信號等融合處理分析所需硬件。
7、低成本,本發(fā)明的異構(gòu)平臺為基于CPU加FPGA、GPU和DSP的異構(gòu)平臺,和完全用軟件處理基因數(shù)據(jù)計算解讀的、現(xiàn)有的計算機集群或云計算平臺相比,在提高性能的同時,能夠降低設(shè)計、存儲、網(wǎng)絡(luò)、功耗、技術(shù)支持和維護上的成本。
8、低功耗,本發(fā)明的異構(gòu)平臺為基于CPU加FPGA、GPU和DSP的異構(gòu)平臺,通過FPGA和DSP的使用,分擔CPU和GPU的部分工作,在提高性能和實現(xiàn)功能多樣化的同時,降低了能耗。
附圖說明
圖1為本發(fā)明實施例異構(gòu)平臺的框架結(jié)構(gòu)示意圖。
圖2為本發(fā)明實施例異構(gòu)平臺的引擎結(jié)構(gòu)示意圖。
圖3為本發(fā)明實施例異構(gòu)平臺中FPGA的框架結(jié)構(gòu)示意圖。
圖4為本發(fā)明實施例異構(gòu)平臺控制引擎的調(diào)度流程示意圖。
圖5為本發(fā)明實施例異構(gòu)平臺調(diào)度計算引擎的流程示意圖。
圖6為本發(fā)明實施例異構(gòu)平臺調(diào)度計算引擎判斷是否適合GPU加速的流程示意圖。
圖7為本發(fā)明實施例異構(gòu)平臺調(diào)度解讀引擎的流程示意圖。
圖8為本發(fā)明實施例異構(gòu)平臺調(diào)度解讀引擎判斷是否適合GPU加速的流程示意圖。
圖例說明:1、異構(gòu)處理器單元;11、控制引擎;12、計算引擎;13、解讀引擎;2、互聯(lián)總線模塊;21、HCCLink總線模塊;22、HNCLink總線模塊;3、內(nèi)存;4、基因計算解讀數(shù)據(jù)指令輸入單元;5、基因計算解讀結(jié)果輸出單元。
具體實施方式
如圖1和圖2所示,本實施例的面向基因數(shù)據(jù)計算解讀的異構(gòu)平臺包括異構(gòu)處理器單元1、互聯(lián)總線模塊2、內(nèi)存3、基因計算解讀數(shù)據(jù)指令輸入單元4和基因計算解讀結(jié)果輸出單元5,異構(gòu)處理器單元1分別通過互聯(lián)總線模塊2與內(nèi)存3、基因計算解讀數(shù)據(jù)指令輸入單元4、基因計算解讀結(jié)果輸出單元5相連,異構(gòu)處理器單元1包括CPU(Central Processing Unit, 中央處理器)、GPU(Graphics Processing Unit, 圖形處理器)、DSP(Digital Signal Processor, 數(shù)字信號處理器)和FPGA(Field Programmable Gate Array, 現(xiàn)場可編程門陣列),其中,CPU構(gòu)成控制引擎11,CPU、GPU、FPGA三者構(gòu)成計算引擎12,CPU、GPU、DSP三者構(gòu)成解讀引擎13,控制引擎11在通過基因計算解讀數(shù)據(jù)指令輸入單元4接收基因計算解讀數(shù)據(jù)指令并分割為代碼段,當代碼段的任務(wù)類型為控制任務(wù)時,將代碼段的指令和數(shù)據(jù)調(diào)度CPU進行處理;當代碼段的任務(wù)類型為計算任務(wù)時,將代碼段的指令和數(shù)據(jù)調(diào)度計算引擎12進行處理并將計算結(jié)果通過基因計算解讀結(jié)果輸出單元5輸出;當代碼段的任務(wù)類型為解讀任務(wù)時,將代碼段的指令和數(shù)據(jù)調(diào)度解讀引擎13進行處理并將計算結(jié)果通過基因計算解讀結(jié)果輸出單元5輸出。
本實施例中,CPU數(shù)量可以為一個或者多個,每個CPU包括一個或多個處理器核(Processor Core),GPU數(shù)量可以為一個或者多個,DSP數(shù)量可以為一個或者多個,F(xiàn)PGA數(shù)量可以為一個或者多個,CPU、GPU、DSP和FPGA四者中任意個體之間能夠基于互聯(lián)總線模塊2進行互聯(lián)并交換數(shù)據(jù)和指令,而且能夠基于互聯(lián)總線模塊2實現(xiàn)和內(nèi)存3、基因計算解讀數(shù)據(jù)指令輸入單元4和基因計算解讀結(jié)果輸出單元5中的任意設(shè)備進行互聯(lián)并交換數(shù)據(jù)和指令。毫無疑問,實現(xiàn)上述設(shè)備部件之間互聯(lián)并交換數(shù)據(jù)和指令的總線形式并不局限于特定互聯(lián)方式,可以根據(jù)需要采用各種具體的實現(xiàn)方式。
如圖3所示,F(xiàn)PGA包括交叉開關(guān)(Crossbar)、IO控制單元和加速器單元,IO控制單元、加速器單元分別和交叉開關(guān)相連,加速器單元包括用于實現(xiàn)隱馬爾可夫模型計算硬件加速的隱馬爾可夫模型(Hidden Markov Model,HMM)計算加速器、用于實現(xiàn)哈希計算硬件加速的哈希函數(shù)(Hash function)計算加速器兩者,IO控制單元與互聯(lián)總線模塊2相連。本實施例中,交叉開關(guān)具體采用高級可擴展接口(Advanced eXtensible Interface,AXI)交叉開關(guān)。此外,加速器單元也可以根據(jù)需要選擇單個隱馬爾可夫模型計算加速器、或單個哈希函數(shù)計算加速器、或者同時采用更多其他類似的硬件加速器,以用于硬件加速實現(xiàn)其它計算。
如圖3所示,IO控制單元包括PCIE(Peripheral Component Interconnect Express,快速外部組件互聯(lián))接口、DMA(Direct Memory Access,直接存儲訪問)控制器、PIU(Peripheral Interface Unit,外圍接口部件)外圍接口部件和DDR控制器,交叉開關(guān)分別與DMA控制器、PIU外圍接口部件和DDR控制器相連,DMA控制器、PIU外圍接口部件之間相互連接,PCIE接口與DMA控制器相連,PCIE接口、DDR控制器分別與互聯(lián)總線模塊2相連。DDR控制器用于DDR訪問,為大容量數(shù)據(jù)提供存儲,本實施例中DDR控制器具體采用DDR4控制器。上述PCIE接口、上述DMA控制器、上述PIU合作用于在上述FPGA和上述CPU之間,以及在上述FPGA和上述GPU之間,傳輸數(shù)據(jù)和指令;上述交叉開關(guān)用于上述DMA控制器、上述PIU外圍接口部件、上述DDR控制器、上述隱馬爾可夫模型計算加速器、上述哈希函數(shù)計算加速器和上述其它加速器之間的互連,為它們之間的數(shù)據(jù)和指令傳輸提供通路。
如圖1所示,互聯(lián)總線模塊2包括HCCLink(Heterogeneous computing Cache Coherence Link,異構(gòu)計算存儲一致性互聯(lián))總線模塊21和HNCLink(Heterogeneous computing Non-Coherence Link,異構(gòu)計算非一致性互聯(lián))總線模塊22,CPU、GPU、DSP和FPGA分別通過HCCLink總線模塊21和內(nèi)存3相連,且CPU、GPU、DSP和FPGA分別通過HNCLink總線模塊22和基因計算解讀數(shù)據(jù)指令輸入單元4以及基因計算解讀結(jié)果輸出單元5相連。HCCLink總線模塊21用于上述CPU、上述FPGA、上述GPU和上述DSP與上述DDR4存儲器陣列之間進行互聯(lián)并交換數(shù)據(jù)、指令。HNCLink總線模塊22用于上述CPU、上述FPGA、上述GPU和上述DSP之間進行互聯(lián)并交換控制指令;用于上述CPU、上述FPGA、上述GPU和上述DSP與上述輸入/輸出設(shè)備(I/O)之間進行互聯(lián)并交換數(shù)據(jù)、指令。
本實施例中,內(nèi)存3為DDR4存儲器陣列(Memory Array)。
本實施例中,基因計算解讀數(shù)據(jù)指令輸入單元4包括輸入設(shè)備、通用接口模塊、網(wǎng)絡(luò)接口模塊、多媒體輸入接口模塊、外部存儲設(shè)備、傳感器中的至少一種。本實施例中,輸入設(shè)備包括鍵盤、鼠標、軌跡球和觸控板中的至少一種,通用接口模塊包括邊界掃描接口模塊、通用串行總線接口模塊中的至少一種,網(wǎng)絡(luò)接口模塊包括以太網(wǎng)接口模塊、長期演進LTE接口模塊、Wi-Fi接口模塊、藍牙接口模塊中的至少一種,多媒體輸入接口模塊包括模擬音頻輸入接口、數(shù)字音頻輸入接口、視頻輸入接口中的至少一種,外部存儲設(shè)備包括閃存FLASH、固態(tài)硬盤SSD中的至少一種,傳感器包括溫度傳感器、心率測量傳感器、指紋傳感器中的至少一種。
本實施例中,基因計算解讀結(jié)果輸出單元5包括顯示設(shè)備、通用接口模塊、網(wǎng)絡(luò)接口模塊、多媒體輸出接口模塊、外部存儲設(shè)備中的至少一種。本實施例中,顯示設(shè)備包括陰極射線管CRT、液晶顯示器LCD、發(fā)光二極管LED中的至少一種,通用接口模塊包括邊界掃描接口模塊、通用串行總線接口模塊中的至少一種,網(wǎng)絡(luò)接口模塊包括以太網(wǎng)接口模塊、長期演進LTE接口模塊、Wi-Fi接口模塊、藍牙接口模塊中的至少一種,多媒體輸出接口模塊包括模擬音頻輸出接口、數(shù)字音頻輸出接口、視頻輸出接口中的至少一種,外部存儲設(shè)備包括閃存FLASH、固態(tài)硬盤SSD中的至少一種。
如圖4所示,控制引擎11在通過基因計算解讀數(shù)據(jù)指令輸入單元4接收基因計算解讀數(shù)據(jù)指令并分割為代碼段,然后根據(jù)代碼段的任務(wù)類型對CPU、GPU、FPGA三者構(gòu)成的計算引擎12,CPU、GPU、DSP三者構(gòu)成的解讀引擎13進行綜合調(diào)度:當代碼段的任務(wù)類型為控制任務(wù)時,將代碼段的指令和數(shù)據(jù)調(diào)度CPU進行處理;當代碼段的任務(wù)類型為計算任務(wù)時,將代碼段的指令和數(shù)據(jù)調(diào)度計算引擎12進行處理并將計算結(jié)果通過基因計算解讀結(jié)果輸出單元5輸出;當代碼段的任務(wù)類型為解讀任務(wù)時,將代碼段的指令和數(shù)據(jù)調(diào)度解讀引擎13進行處理并將計算結(jié)果通過基因計算解讀結(jié)果輸出單元5輸出。
本實施例中,CPU的功能如下:用于調(diào)度控制一個或多個FPGA,和一個或多個FPGA交互數(shù)據(jù)和指令;用于調(diào)度控制一個或多個GPU,和一個或多個GPU交互數(shù)據(jù)和指令;用于調(diào)度控制一個或多個DSP,和一個或多個DSP交互數(shù)據(jù)和指令;用于和一個或多個存儲器交互數(shù)據(jù)和指令;用于接收和處理一個或多個輸入設(shè)備輸入的數(shù)據(jù)和指令;用于發(fā)送數(shù)據(jù)和指令到一個或多個輸出設(shè)備;在基因數(shù)據(jù)計算流程中,用于執(zhí)行調(diào)度任務(wù)、事物型任務(wù),用于和一個或多個FPGA及一個或多個GPU配合執(zhí)行基因數(shù)據(jù)計算任務(wù);在基因數(shù)據(jù)解讀流程中,用于執(zhí)行調(diào)度任務(wù)、事物型任務(wù),用于和一個或多個DSP及一個或多個GPU配合執(zhí)行基因數(shù)據(jù)解讀任務(wù);在基因數(shù)據(jù)計算解讀流程中,用于執(zhí)行調(diào)度任務(wù)、事物型任務(wù),用于和一個或多個FPGA及一個或多個GPU配合執(zhí)行基因數(shù)據(jù)計算任務(wù),用于和一個或多個DSP及一個或多個GPU配合執(zhí)行基因數(shù)據(jù)解讀任務(wù)。
本實施例中,F(xiàn)PGA的功能如下:用于和一個或多個CPU交互數(shù)據(jù)和指令;可以用于調(diào)度控制一個或多個GPU,和一個或多個GPU交互數(shù)據(jù)和指令;可以用于調(diào)度控制一個或多個DSP,和一個或多個DSP交互數(shù)據(jù)和指令;用于和一個或多個存儲器交互數(shù)據(jù)和指令;可以用于接收和處理一個或多個輸入設(shè)備輸入的數(shù)據(jù)和指令;可以用于發(fā)送數(shù)據(jù)和指令到一個或多個輸出設(shè)備;在基因數(shù)據(jù)計算流程中,用于和一個或多個CPU及一個或多個GPU配合執(zhí)行基因數(shù)據(jù)計算任務(wù),可以用于執(zhí)行調(diào)度任務(wù)、事物型任務(wù);在基因數(shù)據(jù)解讀流程中,可以用于執(zhí)行調(diào)度任務(wù)、事物型任務(wù),可以用于和一個或多個DSP及一個或多個GPU配合執(zhí)行基因數(shù)據(jù)解讀任務(wù);在基因數(shù)據(jù)計算解讀流程中,用于和一個或多個CPU及一個或多個GPU配合執(zhí)行基因數(shù)據(jù)計算任務(wù),可以用于和一個或多個DSP及一個或多個GPU配合執(zhí)行基因數(shù)據(jù)解讀任務(wù),可以用于執(zhí)行調(diào)度任務(wù)、事物型任務(wù)。
本實施例中,GPU的功能如下:用于和一個或多個CPU交互數(shù)據(jù)和指令;可以用于和一個或多個FPGA交互數(shù)據(jù)和指令;可以用于和一個或多個DSP交互數(shù)據(jù)和指令;用于和一個或多個存儲器交互數(shù)據(jù)和指令;在基因數(shù)據(jù)計算流程中,用于和一個或多個FPGA及一個或多個CPU配合執(zhí)行基因數(shù)據(jù)計算任務(wù);在基因數(shù)據(jù)解讀流程中,用于和一個或多個DSP及一個或多個CPU配合執(zhí)行基因數(shù)據(jù)解讀任務(wù);在基因數(shù)據(jù)計算解讀流程中,用于和一個或多個FPGA及一個或多個CPU配合執(zhí)行基因數(shù)據(jù)計算任務(wù),用于和一個或多個DSP及一個或多個CPU配合執(zhí)行基因數(shù)據(jù)解讀任務(wù)。
本實施例中,DSP的功能如下:用于和一個或多個CPU交互數(shù)據(jù)和指令;可以用于和一個或多個FPGA交互數(shù)據(jù)和指令;可以用于和一個或多個GPU交互數(shù)據(jù)和指令;用于和一個或多個存儲器交互數(shù)據(jù)和指令;可以用于接收和處理一個或多個輸入設(shè)備輸入的數(shù)據(jù)和指令;可以用于發(fā)送數(shù)據(jù)和指令到一個或多個輸出設(shè)備;在基因數(shù)據(jù)解讀流程中,用于和一個或多個CPU及一個或多個GPU配合執(zhí)行基因數(shù)據(jù)解讀任務(wù);在基因數(shù)據(jù)計算解讀流程中,用于和一個或多個CPU及一個或多個GPU配合執(zhí)行基因數(shù)據(jù)解讀任務(wù)。
本實施例中,內(nèi)存3的功能如下:用于存儲一個或多個基因測序數(shù)據(jù),基因測序數(shù)據(jù)為原始數(shù)據(jù)和/或壓縮數(shù)據(jù),壓縮數(shù)據(jù)不限定壓縮算法;用于存儲一個或多個基因參考序列及其對應的一個或多個標記;用于存儲一個或多個已知基因變異數(shù)據(jù);用于存儲和基因數(shù)據(jù)計算相關(guān)的其它輸入數(shù)據(jù);用于存儲和基因數(shù)據(jù)解讀相關(guān)的其它輸入數(shù)據(jù);用于存儲和基因數(shù)據(jù)計算解讀相關(guān)的其它輸入數(shù)據(jù);在基因數(shù)據(jù)計算流程中,用于存儲中間結(jié)果和最終數(shù)據(jù);在基因數(shù)據(jù)解讀流程中,用于存儲中間結(jié)果和最終數(shù)據(jù);在基因數(shù)據(jù)計算解讀流程中,用于存儲中間結(jié)果和最終數(shù)據(jù);不限定存儲器種類,例如DDR3(Dual Data Rate 3),DDR4等。
本實施例中,基因計算解讀數(shù)據(jù)指令輸入單元4的功能如下:用于輸入基因數(shù)據(jù)計算流程所需的數(shù)據(jù)和指令;用于輸入基因數(shù)據(jù)解讀流程所需的數(shù)據(jù)和指令;用于輸入基因數(shù)據(jù)計算解讀流程所需數(shù)據(jù)和指令;不限定輸入設(shè)備種類,例如鍵盤(Keyboard)、鼠標(Mouse)、軌跡球(Trackball)、觸控板(touch pad)等輸入設(shè)備,或者邊界掃描(Joint Test Action Group,JTAG),通用串行總線(Universal Serial Bus,USB)等通用接口,或者以太網(wǎng)(Ethernet)、長期演進(Long Term Evolution,LTE)、無線保真(Wireless-Fidelity,Wi-Fi)、藍牙(Bluetooth)等網(wǎng)絡(luò)端口,或者模擬音頻輸入接口(如3.5mm立體聲小三芯接口)、數(shù)字音頻輸入接口(如索尼和飛利浦數(shù)字接口Sony/Philips Digital Interface,S/PDIF)、視頻輸入接口(如高清晰度多媒體接口High Definition Multimedia Interface,HDMI)等多媒體接口,或者閃存(FLASH)、固態(tài)硬盤(Solid State Drives,SSD)等外部存儲設(shè)備,或者溫度傳感器(測量體溫)、光學傳感器(測量心率)、指紋傳感器(采集指紋)等傳感器(Sensor);不限定輸入數(shù)據(jù)和指令的形式,例如電信號、文本、圖片、語音、音頻、視頻等和它們的任意組合。
本實施例中,基因計算解讀結(jié)果輸出單元5的功能如下:用于輸出基因數(shù)據(jù)計算流程所生成的數(shù)據(jù)和指令;用于輸出基因數(shù)據(jù)解讀流程所生成的數(shù)據(jù)和指令;用于輸出基因數(shù)據(jù)計算解讀流程所生成的數(shù)據(jù)和指令;不限定輸出設(shè)備種類,例如陰極射線管(CRT)、液晶顯示器(LCD)、發(fā)光二極管(LED)等顯示設(shè)備,或者JTAG、USB等通用接口設(shè)備,或者Ethernet、LTE、Wi-Fi、Bluetooth等網(wǎng)絡(luò)端口,或者模擬音頻輸出接口(如3.5mm立體聲小三芯接口)、數(shù)字音頻輸出接口(如S/PDIF)、視頻輸出接口(如HDMI)等多媒體接口;或者固態(tài)硬盤(Solid State Drives,SSD)等外部存儲設(shè)備,不限定輸出數(shù)據(jù)和指令的形式,例如電信號、文本、圖片、語音、音頻、視頻等和它們的任意組合。參見圖1,基因計算解讀數(shù)據(jù)指令輸入單元4和基因計算解讀結(jié)果輸出單元5之間可以基于部分共同的設(shè)備實現(xiàn),例如通用接口模塊、網(wǎng)絡(luò)接口模塊、外部存儲設(shè)備等。
如圖4和圖5所示,將代碼段的指令和數(shù)據(jù)調(diào)度計算引擎12進行處理的詳細步驟包括:
A1)分別判斷代碼段是否能進行指令并行執(zhí)行,是否能進行流水線執(zhí)行,是否能進行數(shù)據(jù)并行執(zhí)行,如果三者均不能,則跳轉(zhuǎn)執(zhí)行步驟A7),退出;否則,跳轉(zhuǎn)執(zhí)行步驟A2);
A2)判斷代碼段是否只能進行數(shù)據(jù)并行執(zhí)行,如果只能進行數(shù)據(jù)并行執(zhí)行,則跳轉(zhuǎn)執(zhí)行步驟A3);否則,跳轉(zhuǎn)執(zhí)行步驟A6);
A3)判斷代碼段分派到FPGA上優(yōu)化執(zhí)行(即并行執(zhí)行,下同)的總開銷少于代碼段分派到GPU上優(yōu)化執(zhí)行的總開銷是否成立,代碼段分派到FPGA上優(yōu)化執(zhí)行的總開銷包括CPU和FPGA之間交互數(shù)據(jù)和指令產(chǎn)生的通信開銷、FPGA的訪存開銷以及FPGA的計算開銷,代碼段分派到GPU上優(yōu)化執(zhí)行的總開銷包括CPU和GPU之間交互數(shù)據(jù)和指令產(chǎn)生的通信開銷、GPU的訪存開銷以及GPU的計算開銷,如果成立則跳轉(zhuǎn)執(zhí)行步驟A6);否則,跳轉(zhuǎn)執(zhí)行步驟A4);
A4)判斷代碼段是否是能耗優(yōu)先,如果是能耗優(yōu)先,則跳轉(zhuǎn)執(zhí)行步驟A6);否則,跳轉(zhuǎn)執(zhí)行步驟A5);
A5)判斷代碼段的基因計算是否適合GPU加速處理,如果適合GPU加速處理,則跳轉(zhuǎn)執(zhí)行步驟A8);否則,跳轉(zhuǎn)執(zhí)行步驟A7);
A6)綜合利用FPGA所有可能的加速方法,加速方法包括指令并行、流水線、數(shù)據(jù)并行中的至少一種,判斷代碼段分派到FPGA上并且優(yōu)化執(zhí)行的總開銷少于代碼段在CPU上執(zhí)行的總開銷是否成立,如果成立,則跳轉(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處理,退出。
如圖6所示,步驟A5)的詳細步驟包括:
A5.1)判斷代碼段的基因計算是否能進行數(shù)據(jù)并行執(zhí)行,如果能進行數(shù)據(jù)并行執(zhí)行,則跳轉(zhuǎn)執(zhí)行步驟A5.2);否則,跳轉(zhuǎn)執(zhí)行步驟A7);
A5.2)判斷代碼段分派到GPU上優(yōu)化執(zhí)行的總開銷少于代碼段在CPU上執(zhí)行的總開銷是否成立,代碼段分派到GPU上優(yōu)化執(zhí)行的總開銷包括CPU和GPU之間交互數(shù)據(jù)和指令產(chǎn)生的通信開銷、GPU的訪存開銷以及GPU的計算開銷,代碼段在CPU上執(zhí)行的總開銷包括CPU的訪存開銷以及CPU的計算開銷,如果成立則跳轉(zhuǎn)執(zhí)行步驟A8);否則,跳轉(zhuǎn)執(zhí)行步驟A7)。
如圖4和圖7所示,將代碼段的指令和數(shù)據(jù)調(diào)度解讀引擎13進行處理的詳細步驟包括:
B1)分別判斷代碼段是否為數(shù)字信號處理,是否為非圖形圖像類多媒體處理,是否為圖形圖像處理,如果三者都不是,則跳轉(zhuǎn)執(zhí)行步驟B7);否則,跳轉(zhuǎn)執(zhí)行步驟B2);
B2)判斷代碼段是否為圖形圖像處理,如果是圖形圖像處理,則跳轉(zhuǎn)執(zhí)行步驟B3);否則,跳轉(zhuǎn)執(zhí)行步驟B5);
B3)判斷代碼段分派到DSP上并且優(yōu)化執(zhí)行的總開銷少于代碼段分派到GPU上并且優(yōu)化執(zhí)行的總開銷是否成立,代碼段分派到DSP上并且優(yōu)化執(zhí)行的總開銷包括CPU和DSP之間交互數(shù)據(jù)和指令產(chǎn)生的通信開銷、DSP的訪存開銷以及DSP的計算開銷,代碼段分派到GPU上并且優(yōu)化執(zhí)行的總開銷包括CPU和GPU之間交互數(shù)據(jù)和指令產(chǎn)生的通信開銷、GPU的訪存開銷以及GPU的計算開銷,如果成立則跳轉(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í)行的總開銷少于代碼段在CPU上執(zhí)行的總開銷是否成立,代碼段在CPU上執(zhí)行的總開銷包括CPU的訪存開銷以及CPU的計算開銷,如果成立則跳轉(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處理,退出。
如圖8所示,步驟B7)的詳細步驟包括:
B7.1)判斷代碼段是否為圖形圖像處理,如果是圖形圖像處理,則跳轉(zhuǎn)執(zhí)行步驟B7.3);否則,跳轉(zhuǎn)執(zhí)行步驟B7.2);
B7.2)判斷代碼段是否能進行數(shù)據(jù)并行執(zhí)行,如果能進行數(shù)據(jù)并行執(zhí)行,則跳轉(zhuǎn)執(zhí)行步驟B7.3);否則,跳轉(zhuǎn)執(zhí)行步驟B8);
B7.3)判斷代碼段分派到GPU上并且優(yōu)化執(zhí)行的總開銷少于代碼段在CPU上執(zhí)行的總開銷是否成立,所述代碼段分派到GPU上并且優(yōu)化執(zhí)行的總開銷包括CPU和GPU之間交互數(shù)據(jù)和指令產(chǎn)生的通信開銷、GPU的訪存開銷以及GPU的計算開銷,所述代碼段在CPU上執(zhí)行的總開銷包括CPU的訪存開銷以及CPU的計算開銷,如果成立則跳轉(zhuǎn)執(zhí)行步驟B7.4);否則,跳轉(zhuǎn)執(zhí)行步驟B8);
B7.4)將代碼段的指令和數(shù)據(jù)調(diào)度GPU處理,退出。
綜上所述,本實施例的面向基因數(shù)據(jù)計算解讀的異構(gòu)平臺能夠以更低的成本,滿足高性能基因數(shù)據(jù)計算的實時性和準確性要求,滿足高認知基因數(shù)據(jù)解讀的精準性和可讀性要求。
以上所述僅是本發(fā)明的優(yōu)選實施方式,本發(fā)明的保護范圍并不僅局限于上述實施例,凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護范圍。應當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理前提下的若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。