欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種面向異構(gòu)計(jì)算的軟件定義服務(wù)器系統(tǒng)及方法

文檔序號:6524195閱讀:327來源:國知局
一種面向異構(gòu)計(jì)算的軟件定義服務(wù)器系統(tǒng)及方法
【專利摘要】本發(fā)明公開了一種面向異構(gòu)計(jì)算的軟件定義服務(wù)器系統(tǒng)及方法。所述軟件定義異構(gòu)多處理器系統(tǒng),包括:通用處理器、異構(gòu)計(jì)算處理器、軟件定義控制器和外圍設(shè)備。通用處理器負(fù)責(zé)執(zhí)行控制平面的任務(wù),包括執(zhí)行并行程序的控制流程,對多處理器系統(tǒng)進(jìn)行初始配置,提供通用計(jì)算能力;異構(gòu)計(jì)算處理器(如GPGPU等處理器)負(fù)責(zé)執(zhí)行并行程序的計(jì)算任務(wù);軟件定義控制器根據(jù)控制平面的控制指令,進(jìn)行多處理器系統(tǒng)內(nèi)各個部件(包括通用處理器、異構(gòu)計(jì)算處理器、和外圍設(shè)備)間在數(shù)據(jù)平面的數(shù)據(jù)交換;外圍設(shè)備包括內(nèi)存設(shè)備(DRAM內(nèi)存等),存儲設(shè)備(磁盤等)和網(wǎng)絡(luò)設(shè)備(網(wǎng)卡)等。
【專利說明】一種面向異構(gòu)計(jì)算的軟件定義服務(wù)器系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及并行多處理器系統(tǒng)領(lǐng)域,特別是涉及一種面向異構(gòu)計(jì)算的軟件定義服務(wù)器結(jié)構(gòu)。
【背景技術(shù)】
[0002]當(dāng)前主流的服務(wù)器多為SMP和ccNUMA結(jié)構(gòu),使用芯片組(Chipset)實(shí)現(xiàn)服務(wù)器內(nèi)處理器和外圍設(shè)備間的互連,而異構(gòu)計(jì)算處理器(如GPGPU,Intel Xeon Phi,DSP等處理器)作為協(xié)處理器,被歸于外圍設(shè)備的范疇(外圍計(jì)算設(shè)備)。在這種結(jié)構(gòu)中,通用處理器與外圍設(shè)備間的互連拓?fù)洳捎脴湫谓Y(jié)構(gòu),通用處理器位于該樹形拓?fù)涞母?,外圍設(shè)備位于樹形拓?fù)涞娜~子。然而葉子(外圍設(shè)備)僅能與根(通用處理器)進(jìn)行數(shù)據(jù)交換,葉子之間的數(shù)據(jù)交換只能通過根進(jìn)行轉(zhuǎn)發(fā)。因此,通用處理器除了負(fù)責(zé)整個服務(wù)器中的控制平面(ControlPlane),還要參與到所有的數(shù)據(jù)交換,即數(shù)據(jù)平面(Data Plane)。這一結(jié)構(gòu)限制了異構(gòu)計(jì)算處理器間,異構(gòu)計(jì)算處理器與外圍設(shè)備間的數(shù)據(jù)交換效率,也就是說,傳統(tǒng)的服務(wù)器結(jié)構(gòu)并不適合應(yīng)用于異構(gòu)計(jì)算領(lǐng)域。
[0003]此外,隨著異構(gòu)計(jì)算處理器種類的增多,不同類型異構(gòu)計(jì)算處理器適合于不同的計(jì)算模式(如GPGPU適合于大規(guī)模的流式數(shù)據(jù)處理,網(wǎng)絡(luò)處理器適合于網(wǎng)絡(luò)數(shù)據(jù)處理,DSP適合信號處理),這就使得處理器間的協(xié)同處理模式更加復(fù)雜,復(fù)雜的協(xié)同處理模式就需要數(shù)據(jù)能夠高效靈活地在處理器間傳輸,即數(shù)據(jù)可以在任意兩個處理器間進(jìn)行直接傳輸。
[0004]因此,面向異構(gòu)計(jì)算的服務(wù)器需要消除通用處理器執(zhí)行數(shù)據(jù)平面導(dǎo)致的性能瓶頸,需要實(shí)現(xiàn)數(shù)據(jù)在服務(wù)器內(nèi)各部件間的直接傳輸。鑒于上述需求,本發(fā)明提出了將控制平面和數(shù)據(jù)平面分離的面向異構(gòu)計(jì)算的軟件定義服務(wù)器,由通用處理器的管理/應(yīng)用軟件來實(shí)現(xiàn)控制平面,控制平面通過動態(tài)配置一個軟件定義控制器,實(shí)現(xiàn)對其他部件(包括異構(gòu)計(jì)算處理器和外圍設(shè)備)間的數(shù)據(jù)交換控制,而具體的數(shù)據(jù)交換流程均由軟件定義控制器完成。

【發(fā)明內(nèi)容】

[0005]本發(fā)明的目的在于提供一種面向異構(gòu)計(jì)算的軟件定義服務(wù)器,它將服務(wù)器的控制平面和數(shù)據(jù)平面分離,由通用處理器的管理/應(yīng)用軟件來實(shí)現(xiàn)控制平面,控制平面通過動態(tài)配置一個軟件定義控制器,實(shí)現(xiàn)對其他部件(包括異構(gòu)計(jì)算加速處理器和外圍設(shè)備)間的數(shù)據(jù)交換控制,而具體的數(shù)據(jù)交換流程均由軟件定義控制器完成。此外,可以根據(jù)不同應(yīng)用計(jì)算模式的需要,改變控制平面發(fā)出的控制指令內(nèi)容和依賴性,進(jìn)而實(shí)現(xiàn)針對計(jì)算模式的處理流程及通信優(yōu)化。
[0006]本發(fā)明的面向異構(gòu)計(jì)算的軟件定義服務(wù)器,包括:通用處理器,異構(gòu)計(jì)算處理器,外圍設(shè)備和軟件定義控制器(Software Defined Controller)。
[0007]所述的通用處理器,其功能在于負(fù)責(zé)服務(wù)器中控制平面的運(yùn)行,包括整個服務(wù)器的初始化配置、數(shù)據(jù)在各部件間的處理流程由其控制,但是對于特定計(jì)算模式,需要通用處理器進(jìn)行計(jì)算的情況,通用處理器也會執(zhí)行計(jì)算任務(wù)。通用處理器擁有私有的內(nèi)存,用于控制平面的運(yùn)行。本發(fā)明并不對通用處理器的指令集進(jìn)行限定,可以是X86、MIPS、或ARM等,此外,本發(fā)明也不對通用處理器的數(shù)目進(jìn)行限制。
[0008]所述異構(gòu)計(jì)算處理器,其功能在于負(fù)責(zé)執(zhí)行服務(wù)器中的計(jì)算任務(wù)。異構(gòu)計(jì)算處理器擁有私有的內(nèi)存,用于計(jì)算任務(wù)的執(zhí)行。不同的異構(gòu)計(jì)算處理器有其對應(yīng)的數(shù)據(jù)處理模式,本發(fā)明并不對異構(gòu)計(jì)算處理器的種類進(jìn)行限定,可以是GPGPU、DSP或FPGA等,此外,本發(fā)明也不對異構(gòu)計(jì)算處理器的數(shù)目進(jìn)行限制。
[0009]所述外圍設(shè)備,包括內(nèi)存設(shè)備、存儲設(shè)備和網(wǎng)絡(luò)設(shè)備,其功能在于:分別實(shí)現(xiàn)本發(fā)明所述服務(wù)器中的數(shù)據(jù)緩存、文件存儲和對外網(wǎng)絡(luò)連接功能。其中,需要與通用處理器和異構(gòu)計(jì)算處理器的私有內(nèi)存進(jìn)行區(qū)分的是,內(nèi)存設(shè)備中的內(nèi)存可被通用處理器和異構(gòu)處理器共享使用。
[0010]所述軟件定義控制器,其功能在于:響應(yīng)控制平面的控制指令,對控制指令進(jìn)行解析,并根據(jù)控制指令內(nèi)容,進(jìn)行各部件間的數(shù)據(jù)交換,其包括:控制平面端口模塊、數(shù)據(jù)平面端口模塊、全局地址映射表和數(shù)據(jù)平面交換模塊。
[0011]所述軟件定義控制器中的控制平面端口模塊,其功能在于:實(shí)現(xiàn)與通用處理器中控制平面的接口,接收控制指令,并根據(jù)控制指令中的內(nèi)容,將控制指令轉(zhuǎn)發(fā)給對應(yīng)的數(shù)據(jù)平面端口模塊,此外,它還會執(zhí)行屬于自己的控制指令。相應(yīng)地,該模塊由接口控制器子模塊、中央控制指令分發(fā)子模塊、中央控制指令執(zhí)行子模塊組成。軟件定義控制器僅為通用處理器設(shè)置控制平面端口模塊。
[0012]所述軟件定義控制器中的數(shù)據(jù)平面端口模塊,其功能在于:實(shí)現(xiàn)與異構(gòu)計(jì)算處理器、外圍設(shè)備、數(shù)據(jù)平面交換模塊間的接口,執(zhí)行分發(fā)至該端口的控制指令,同時(shí)接收并執(zhí)行與之相連接的異構(gòu)計(jì)算處理器或外圍設(shè)備發(fā)出的控制指令。相應(yīng)地,該模塊由接口控制器子模塊、中央控制指令執(zhí)行子模塊、外設(shè)控制指令執(zhí)行子模塊組成。軟件定義控制器為每個外圍設(shè)備、每個異構(gòu)計(jì)算處理器都設(shè)置一個數(shù)據(jù)平面端口模塊。
[0013]所述軟件定義控制器中的全局地址映射表,其功能在于將本發(fā)明所述服務(wù)器系統(tǒng)中的所有部件(包括通用處理器、異構(gòu)計(jì)算處理器、外圍設(shè)備)映射于單一的物理地址空間之內(nèi)。
[0014]所述軟件定義控制器中的數(shù)據(jù)平面交換模塊,其功能在于:實(shí)現(xiàn)本發(fā)明所述服務(wù)器系統(tǒng)中所有部件中數(shù)據(jù)的交換,根據(jù)源端口(控制平面端口模塊或數(shù)據(jù)平面端口模塊)發(fā)出的數(shù)據(jù)傳輸目的端口號,將數(shù)據(jù)傳輸?shù)綄?yīng)的目的端口(控制平面端口模塊或數(shù)據(jù)平面端口模塊)。本發(fā)明并不限定該模塊的實(shí)現(xiàn)方式,可以是交叉開關(guān)、多層交叉開關(guān)、或Mesh
坐寸ο
[0015]所述控制平面端口模塊和數(shù)據(jù)平面端口模塊中的接口控制器子模塊,其功能在于:實(shí)現(xiàn)與通用處理器、異構(gòu)計(jì)算處理器、或外圍設(shè)備的數(shù)據(jù)通路。該子模塊實(shí)現(xiàn)的協(xié)議依據(jù)通用處理器、異構(gòu)計(jì)算處理器或外圍設(shè)備的接口類型而定,例如與GPGPU相互連的接口控制器子模塊可采用PCIe協(xié)議。
[0016]所述控制平面端口模塊和數(shù)據(jù)平面端口模塊中的中央控制指令執(zhí)行子模塊,其功能在于:解析并執(zhí)行通用處理器發(fā)出的控制指令,根據(jù)控制指令的內(nèi)容,產(chǎn)生一系列對應(yīng)的數(shù)據(jù)消息發(fā)往數(shù)據(jù)平面交換模塊;接收數(shù)據(jù)平面交換模塊發(fā)來的數(shù)據(jù)消息,將數(shù)據(jù)消息寫入與其相連的通用處理器、異構(gòu)計(jì)算處理器、或外圍設(shè)備。
[0017]所述控制平面端口模塊中的中央控制指令分發(fā)子模塊,其功能在于:通過查詢?nèi)值刂酚成浔恚瑢碜酝ㄓ锰幚砥鞯目刂浦噶罘职l(fā)到對應(yīng)的數(shù)據(jù)平面端口模塊。
[0018]所述數(shù)據(jù)平面端口模塊中的外設(shè)控制指令執(zhí)行子模塊,其功能在于:解析異構(gòu)計(jì)算處理器或外圍設(shè)備發(fā)出的控制指令,根據(jù)控制指令的內(nèi)容,產(chǎn)生一系列對應(yīng)的數(shù)據(jù)消息發(fā)往數(shù)據(jù)平面交換模塊。
[0019]為實(shí)現(xiàn)本發(fā)明的目的,本發(fā)明還提供控制平面通過使用控制指令,控制數(shù)據(jù)交換的方法,該方法分為兩個子方法,一個是將控制指令分發(fā)到對應(yīng)控制平面端口模塊或數(shù)據(jù)平面端口模塊的方法,另一個是控制平面端口模塊或數(shù)據(jù)平面端口模塊執(zhí)行控制指令的方法。
[0020]將控制指令分發(fā)到對應(yīng)控制平面端口模塊或數(shù)據(jù)平面端口模塊的方法,包括下列步驟:
步驟110.當(dāng)控制平面端口模塊接收到控制指令后,從控制指令中獲取目的地址域; 步驟120.使用該目的地址查詢?nèi)值刂酚成浔恚?br> 步驟130.根據(jù)全局地址映射表輸出的端口號,將該控制指令發(fā)送至對應(yīng)的控制平面端口模塊或數(shù)據(jù)平面端口模塊。
[0021]控制平面端口模塊或數(shù)據(jù)平面端口模塊執(zhí)行控制指令的方法,包括下列步驟: 步驟210.查看該指令是否能直接執(zhí)行,如果可以,跳轉(zhuǎn)至步驟230,如果不是跳轉(zhuǎn)至
步驟220 ;
步驟220.查看該指令依賴的指令(根據(jù)依賴指令序號獲取依賴指令狀態(tài))是否已經(jīng)完成,如果已經(jīng)完成,跳轉(zhuǎn)至步驟230,否則等待,回到開始狀態(tài);
步驟230.根據(jù)指令中的源地址和長度,從與其相連的處理器或外圍設(shè)備中讀取需要傳輸?shù)臄?shù)據(jù);
步驟240.使用指令中的目的地址,并根據(jù)數(shù)據(jù)平面交換模塊的最大包長設(shè)定,將讀取的數(shù)據(jù)打包為一系列數(shù)據(jù)消息;
步驟250.數(shù)據(jù)平面交換模塊將這些數(shù)據(jù)消息轉(zhuǎn)發(fā)至目的控制平面端口模塊或數(shù)據(jù)平面端口模塊;
步驟260.目的控制平面端口模塊或數(shù)據(jù)平面端口模塊將數(shù)據(jù)消息轉(zhuǎn)換為與其相連的處理器或外圍設(shè)備的接口協(xié)議消息;
步驟270.將轉(zhuǎn)換后的接口協(xié)議消息發(fā)送至目的處理器或外圍設(shè)備,并記錄該指令的狀態(tài)為已完成。
【專利附圖】

【附圖說明】
[0022]圖1是本發(fā)明的軟件定義服務(wù)器結(jié)構(gòu)框圖;
圖2是本發(fā)明的軟件定義控制器結(jié)構(gòu)框圖;
圖3是本發(fā)明的控制平面端口模塊結(jié)構(gòu)圖;
圖4是本發(fā)明的數(shù)據(jù)平面端口模塊結(jié)構(gòu)圖;
圖5是本發(fā)明的全局地址映射表結(jié)構(gòu)圖;
圖6是本發(fā)明的控制指令格式圖; 圖7是本發(fā)明的數(shù)據(jù)消息格式圖;
圖8是本發(fā)明的控制平面端口模塊的控制指令分發(fā)步驟流程圖;
圖9是本發(fā)明的數(shù)據(jù)平面端口模塊的控制指令執(zhí)行步驟流程圖;
【具體實(shí)施方式】
[0023]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明的一種面向異構(gòu)計(jì)算的軟件定義服務(wù)器進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0024]本發(fā)明的目的在于提供一種面向異構(gòu)計(jì)算的軟件定義服務(wù)器,它將服務(wù)器的控制平面和數(shù)據(jù)平面分離,由通用處理器的管理/應(yīng)用軟件來實(shí)現(xiàn)控制平面,控制平面通過動態(tài)配置一個軟件定義控制器,實(shí)現(xiàn)對其他部件(包括異構(gòu)計(jì)算加速處理器和外圍設(shè)備)間的數(shù)據(jù)交換控制,而具體的數(shù)據(jù)交換流程均由軟件定義控制器完成。最終根據(jù)不應(yīng)用計(jì)算模式的需要,實(shí)現(xiàn)數(shù)據(jù)在各部件間的直接高效交換。
[0025]下面結(jié)合上述目的,詳細(xì)說明的本發(fā)明的軟件定義服務(wù)器,圖1是本發(fā)明的軟件定義服務(wù)器結(jié)構(gòu)框圖,包括:
通用處理器1,其功能在于負(fù)責(zé)服務(wù)器中控制平面的運(yùn)行,包括整個服務(wù)器的初始化配置、數(shù)據(jù)在各部件間的處理流程由其控制。通用處理器擁有私有的內(nèi)存,用于控制平面的運(yùn)行。但是對于特定計(jì)算模式,需要通用處理器進(jìn)行計(jì)算的情況,通用處理器也會執(zhí)行計(jì)算任務(wù)。本發(fā)明并不對通用處理器的指令集進(jìn)行限定,可以是X86、MIPS、或ARM等。圖1中所示通用處理器數(shù)目為但本發(fā)明不對通用處理器的數(shù)目進(jìn)行限制。
[0026]異構(gòu)計(jì)算處理器2,其功能在于負(fù)責(zé)執(zhí)行服務(wù)器中的計(jì)算任務(wù)。異構(gòu)計(jì)算處理器擁有私有的內(nèi)存,用于計(jì)算任務(wù)的執(zhí)行。不同的異構(gòu)計(jì)算處理器有其對應(yīng)的數(shù)據(jù)處理模式,本發(fā)明并不對異構(gòu)計(jì)算處理器的種類進(jìn)行限定,可以是GPGPU、DSP或FPGA等。圖1中所示通用處理器數(shù)目為#,但本發(fā)明不對異構(gòu)計(jì)算處理器的數(shù)目進(jìn)行限制。
[0027]外圍設(shè)備3,包括內(nèi)存設(shè)備31、存儲設(shè)備32和網(wǎng)絡(luò)設(shè)備33。
[0028]內(nèi)存設(shè)備31,其功能在于:實(shí)現(xiàn)本發(fā)明所述服務(wù)器中的數(shù)據(jù)緩存,其中,需要與通用處理器和異構(gòu)計(jì)算處理器的私有內(nèi)存進(jìn)行區(qū)分的是,內(nèi)存設(shè)備中的內(nèi)存可被通用處理器和異構(gòu)處理器共享使用。
[0029]存儲設(shè)備32,其功能在于:實(shí)現(xiàn)本發(fā)明所述服務(wù)器中的文件存儲。
[0030]網(wǎng)絡(luò)設(shè)備33,其功能在于:實(shí)現(xiàn)本發(fā)明所述服務(wù)器對外網(wǎng)絡(luò)連接功能。
[0031]軟件定義控制器4,其功能在于:響應(yīng)控制平面的控制指令,對控制指令進(jìn)行解析,并根據(jù)控制指令內(nèi)容,進(jìn)行各部件間的數(shù)據(jù)交換。
[0032]軟件定義控制器4的結(jié)構(gòu)如圖2所示(其中設(shè)備數(shù)目總和為八但本發(fā)明不對設(shè)備的數(shù)目進(jìn)行限制),包括:
控制平面端口模塊41,其功能在于:實(shí)現(xiàn)與通用處理器中控制平面的接口,接收控制指令,并根據(jù)控制指令中的內(nèi)容,將控制指令轉(zhuǎn)發(fā)給對應(yīng)的數(shù)據(jù)平面端口模塊??刂破矫娑丝谀K對外僅于通用處理器互連。
[0033]數(shù)據(jù)平面端口模塊42,其功能在于:實(shí)現(xiàn)與異構(gòu)計(jì)算處理器、外圍設(shè)備、數(shù)據(jù)平面交換模塊間的接口,執(zhí)行分發(fā)至該端口的控制指令,同時(shí)接收并執(zhí)行與之相連接的異構(gòu)計(jì)算處理器或外圍設(shè)備發(fā)出的控制指令。軟件定義控制器為每個外圍設(shè)備、每個異構(gòu)計(jì)算處理器都設(shè)置一個數(shù)據(jù)平面端口模塊。
[0034]全局地址映射表43,其功能在于將本發(fā)明所述服務(wù)器系統(tǒng)中的所有部件(包括通用處理器、異構(gòu)計(jì)算處理器、外圍設(shè)備)映射于單一的物理地址空間之內(nèi),該表由一個通用處理器進(jìn)行配置,由軟件定義控制器中的其他模塊共享讀取。
[0035]數(shù)據(jù)平面交換模塊44,其功能在于:實(shí)現(xiàn)本發(fā)明所述服務(wù)器系統(tǒng)中所有部件中數(shù)據(jù)的交換,根據(jù)源端口(控制平面端口模塊或數(shù)據(jù)平面端口模塊)發(fā)出的數(shù)據(jù)傳輸目的端口號,將數(shù)據(jù)傳輸?shù)綄?yīng)的目的端口(控制平面端口模塊或數(shù)據(jù)平面端口模塊)。本發(fā)明并不限定該模塊的實(shí)現(xiàn)方式,可以是交叉開關(guān)、多層交叉開關(guān)、或Mesh等。
[0036]控制平面端口模塊41的結(jié)構(gòu)如圖3所示,包括:
接口控制器子模塊411,其功能在于:實(shí)現(xiàn)與通用處理器、異構(gòu)計(jì)算處理器、或外圍設(shè)備的數(shù)據(jù)通路。該子模塊實(shí)現(xiàn)的協(xié)議依據(jù)通用處理器、異構(gòu)計(jì)算處理器或外圍設(shè)備的接口類型而定,例如與GPGPU相互連的接口控制器子模塊可采用PCIe協(xié)議。
[0037]中央控制指令執(zhí)行子模塊412,其功能在于:解析并執(zhí)行通用處理器發(fā)出的控制指令,根據(jù)控制指令的內(nèi)容,產(chǎn)生一系列對應(yīng)的數(shù)據(jù)消息發(fā)往數(shù)據(jù)平面交換模塊;接收數(shù)據(jù)平面交換模塊發(fā)來的數(shù)據(jù)消息,將數(shù)據(jù)消息寫入與其相連的通用處理器、異構(gòu)計(jì)算處理器、或外圍設(shè)備。
[0038]中央控制指令分發(fā)子模塊413,其功能在于:通過查詢?nèi)值刂酚成浔恚瑢碜酝ㄓ锰幚砥鞯目刂浦噶罘职l(fā)到對應(yīng)的數(shù)據(jù)平面端口模塊,圖3中共個數(shù)據(jù)平面端口模塊與其互連,Λ/-1個控制平面端口模塊與其互連。
[0039]數(shù)據(jù)平面端口模塊42的結(jié)構(gòu)如圖4所示,其中接口控制器子模塊411和中央控制指令執(zhí)行子模塊412與控制平面端口模塊中的相同,此外它還包含:
外設(shè)控制指令執(zhí)行子模塊421,其功能在于:解析異構(gòu)計(jì)算處理器或外圍設(shè)備發(fā)出的控制指令,根據(jù)控制指令的內(nèi)容,產(chǎn)生一系列對應(yīng)的數(shù)據(jù)消息發(fā)往數(shù)據(jù)平面交換模塊。
[0040]全局地址映射表43,其結(jié)構(gòu)如圖5所示,它是一個查找表,存儲的是服務(wù)器中每個部件(包括通用處理器、異構(gòu)計(jì)算處理器、外圍設(shè)備)所占用的物理地址范圍,查找表由端口號索引,圖5所示的端口號編碼規(guī)則為通用處理器占第O?N-1個表項(xiàng),異構(gòu)計(jì)算處理器占寬N?N+M-X個表項(xiàng),外圍設(shè)備占第?N+M+P-1個表項(xiàng)。
[0041]本發(fā)明中控制軟件定義控制器工作的控制指令格式如圖6所示,其中各個域含義如下:
1.控制者:記錄產(chǎn)生該指令的處理器或外圍設(shè)備號;
2.指令序號:指示該指令的指令序號,僅在其所在“控制者”范圍內(nèi)編號;
3.源地址:該指令對應(yīng)的數(shù)據(jù)交換的源地址,需強(qiáng)調(diào)的是,該地址與“控制者”無關(guān),可以是任何部件的地址;
4.目的地址:該指令對應(yīng)的數(shù)據(jù)交換的目的地址,需強(qiáng)調(diào)的是,該地址與“控制者”無關(guān),可以是任何部件的地址;
5.長度:所要交換的數(shù)據(jù)長度;
6.是否直接執(zhí)行:該指令是否能夠直接發(fā)出,如果能夠直接發(fā)出,則忽略后面的“依賴指令序號”,如果不能直接發(fā)出,則檢查“依賴指令序號” 7.依賴指令序號:限制執(zhí)行該指令的條件,由期望的“控制者”和“指令序號”組成,當(dāng)期望的指令未執(zhí)行完畢,則該指令不能被執(zhí)行。
[0042]當(dāng)一條控制指令達(dá)到執(zhí)行條件時(shí),它將會被本發(fā)明中的中央控制指令執(zhí)行子模塊或外設(shè)控制指令執(zhí)行子模塊進(jìn)行解析執(zhí)行,根據(jù)其源地址、目的地址和長度,產(chǎn)生一系列的數(shù)據(jù)消息。數(shù)據(jù)消息的格式如圖7所示,其中:
1.目的端口號:通過使用控制指令中的目的地址,查詢本發(fā)明中的全局地址映射表獲
得;
2.目的數(shù)據(jù)地址:當(dāng)前數(shù)據(jù)消息要被存入的目的地址;
3.長度:當(dāng)前數(shù)據(jù)消息中數(shù)據(jù)負(fù)載的長度;
4.數(shù)據(jù)負(fù)載:攜帶的有效數(shù)據(jù)。
[0043]基于本發(fā)明的軟件定義服務(wù)器結(jié)構(gòu)、控制指令格式、數(shù)據(jù)消息格式,本發(fā)明的控制指令分發(fā)流程如圖8所示,包括下列步驟:
步驟110.當(dāng)控制平面端口模塊接收到控制指令后,從控制指令中獲取目的地址域; 步驟120.使用該目的地址查詢?nèi)值刂酚成浔恚?br> 步驟130.根據(jù)全局地址映射表輸出的端口號,將該控制指令發(fā)送至對應(yīng)的控制平面端口模塊或數(shù)據(jù)平面端口模塊。
[0044]基于本發(fā)明的軟件定義服務(wù)器結(jié)構(gòu)、控制指令格式、數(shù)據(jù)消息格式,本發(fā)明的控制指令執(zhí)行流程如圖9所示,包括下列步驟:
步驟210.查看該指令是否能直接執(zhí)行,如果可以,跳轉(zhuǎn)至步驟230,如果不是跳轉(zhuǎn)至步驟220 ;
步驟220.查看該指令依賴的指令(根據(jù)依賴指令序號獲取依賴指令狀態(tài))是否已經(jīng)完成,如果已經(jīng)完成,跳轉(zhuǎn)至步驟230,否則等待,回到開始狀態(tài);
步驟230.根據(jù)指令中的源地址和長度,從與其相連的處理器或外圍設(shè)備中讀取需要傳輸?shù)臄?shù)據(jù);
步驟240.使用指令中的目的地址,并根據(jù)數(shù)據(jù)平面交換模塊的最大包長設(shè)定,將讀取的數(shù)據(jù)打包為一系列數(shù)據(jù)消息;
步驟250.數(shù)據(jù)平面交換模塊將這些數(shù)據(jù)消息轉(zhuǎn)發(fā)至目的控制平面端口模塊或數(shù)據(jù)平面端口模塊;
步驟260.目的控制平面端口模塊或數(shù)據(jù)平面端口模塊將數(shù)據(jù)消息轉(zhuǎn)換為與其相連的處理器或外圍設(shè)備的接口協(xié)議消息;
步驟270.將轉(zhuǎn)換后的接口協(xié)議消息發(fā)送至目的處理器或外圍設(shè)備,并記錄該指令的狀態(tài)為已完成。
[0045]本發(fā)明的有益效果在于:
1.將控制平面和數(shù)據(jù)平面分離,通用處理器不再進(jìn)行數(shù)據(jù)的轉(zhuǎn)發(fā),解決了SMP或ccNUMA傳統(tǒng)服務(wù)器結(jié)構(gòu)中異構(gòu)計(jì)算處理器間,異構(gòu)計(jì)算處理器與外圍設(shè)備間的數(shù)據(jù)交換效率低下問題;
2.以網(wǎng)絡(luò)交換方式實(shí)現(xiàn)數(shù)據(jù)平面,打破傳統(tǒng)的樹形拓?fù)浣Y(jié)構(gòu),具有更好的擴(kuò)展性;
3.通用處理器通過發(fā)出不同的控制指令,調(diào)整控制指令間依賴關(guān)系,即可實(shí)現(xiàn)對不同異構(gòu)計(jì)算模式的支持,即可以通過對數(shù)據(jù)處理和交換流程的調(diào)整,實(shí)現(xiàn)對特定異構(gòu)計(jì)算應(yīng)用的性能優(yōu)化;
通過結(jié)合附圖對本發(fā)明具體實(shí)施例的描述,本發(fā)明的其它方面及特征對本領(lǐng)域的技術(shù)人員而目是顯而易見的。
[0046]以上對本發(fā)明的具體實(shí)施例進(jìn)行了描述和說明,這些實(shí)施例應(yīng)被認(rèn)為其只是示例性的,并不用于對本發(fā)明進(jìn)行限制,本發(fā)明應(yīng)根據(jù)所附的權(quán)利要求進(jìn)行解釋。
【權(quán)利要求】
1.一種面向異構(gòu)計(jì)算的軟件定義服務(wù)器,其特征在于,所述軟件定義服務(wù)器,包括:多個通用處理器,多個異構(gòu)計(jì)算處理器,多個外圍設(shè)備和軟件定義控制器(Software DefinedController),其中: (a)所述的通用處理器,其功能在于負(fù)責(zé)服務(wù)器中控制平面的運(yùn)行,包括整個服務(wù)器的初始化配置、數(shù)據(jù)在各部件間的處理流程由其控制,但是對于特定計(jì)算模式,需要通用處理器進(jìn)行計(jì)算的情況,通用處理器也會執(zhí)行計(jì)算任務(wù),通用處理器擁有私有的內(nèi)存,用于控制平面的運(yùn)行,本發(fā)明并不對通用處理器的指令集進(jìn)行限定,可以是X86、MIPS、或ARM等,此外,本發(fā)明也不對通用處理器的數(shù)目進(jìn)行限制; (b)所述異構(gòu)計(jì)算處理器,其功能在于負(fù)責(zé)執(zhí)行服務(wù)器中的計(jì)算任務(wù),異構(gòu)計(jì)算處理器擁有私有的內(nèi)存,用于計(jì)算任務(wù)的執(zhí)行,不同的異構(gòu)計(jì)算處理器有其對應(yīng)的數(shù)據(jù)處理模式,本發(fā)明并不對異構(gòu)計(jì)算處理器的種類進(jìn)行限定,可以是GPGPU、DSP或FPGA等,此外,本發(fā)明也不對異構(gòu)計(jì)算處理器的數(shù)目進(jìn)行限制; (c)所述外圍設(shè)備,包括內(nèi)存設(shè)備、存儲設(shè)備和網(wǎng)絡(luò)設(shè)備,其功能在于:分別實(shí)現(xiàn)本發(fā)明所述服務(wù)器中的數(shù)據(jù)緩存、文件存儲和對外網(wǎng)絡(luò)連接功能,其中,需要與通用處理器和異構(gòu)計(jì)算處理器的私有內(nèi)存進(jìn)行區(qū)分的是,內(nèi)存設(shè)備中的內(nèi)存可被通用處理器和異構(gòu)處理器共孚使用; Cd)所述軟件定義控制器,其功能在于:響應(yīng)控制平面的控制指令,對控制指令進(jìn)行解析,并根據(jù)控制指令內(nèi)容,進(jìn)行各部件間的數(shù)據(jù)交換。
2.根據(jù)權(quán)利要求1所述的面向異構(gòu)計(jì)算的軟件定義控制器,其特征在于,所述軟件定義控制器包括:控制平面端口模塊、數(shù)據(jù)平面端口模塊、全局地址映射表和數(shù)據(jù)平面交換模塊,其中: (a)所述控制平面端口模塊,其功能在于:實(shí)現(xiàn)與通用處理器中控制平面的接口,接收控制指令,并根據(jù)控制指令中的內(nèi)容,將控制指令轉(zhuǎn)發(fā)給對應(yīng)的數(shù)據(jù)平面端口模塊,此外,它還會執(zhí)行屬于自己的控制指令,軟件定義控制器僅為通用處理器設(shè)置控制平面端口模塊; (b)所述數(shù)據(jù)平面端口模塊,其功能在于:實(shí)現(xiàn)與異構(gòu)計(jì)算處理器、外圍設(shè)備、數(shù)據(jù)平面交換模塊間的接口,執(zhí)行分發(fā)至該端口的控制指令,同時(shí)接收并執(zhí)行與之相連接的異構(gòu)計(jì)算處理器或外圍設(shè)備發(fā)出的控制指令,軟件定義控制器為每個外圍設(shè)備、每個異構(gòu)計(jì)算處理器都設(shè)置一個數(shù)據(jù)平面端口模塊; (c)所述全局地址映射表,其功能在于將本發(fā)明所述服務(wù)器系統(tǒng)中的所有部件(包括通用處理器、異構(gòu)計(jì)算處理器、外圍設(shè)備)映射于單一的物理地址空間之內(nèi); (d)所述數(shù)據(jù)平面交換模塊,其功能在于:實(shí)現(xiàn)本發(fā)明所述服務(wù)器系統(tǒng)中所有部件中數(shù)據(jù)的交換,根據(jù)源端口(控制平面端口模塊或數(shù)據(jù)平面端口模塊)發(fā)出的數(shù)據(jù)傳輸目的端口號,將數(shù)據(jù)傳輸?shù)綄?yīng)的目的端口(控制平面端口模塊或數(shù)據(jù)平面端口模塊),本發(fā)明并不限定該模塊的實(shí)現(xiàn)方式,可以是交叉開關(guān)、多層交叉開關(guān)、或Mesh等。
3.根據(jù)權(quán)利要求2所述的面向異構(gòu)計(jì)算的軟件定義服務(wù)器,其特征在于,所述控制平面端口模塊,其包括:接口控制器子模塊、中央控制指令分發(fā)子模塊、中央控制指令執(zhí)行子模塊,其中: (a)所述接口控制器子模塊, 其功能在于:實(shí)現(xiàn)與通用處理器、異構(gòu)計(jì)算處理器、或外圍設(shè)備的數(shù)據(jù)通路,該子模塊實(shí)現(xiàn)的協(xié)議依據(jù)通用處理器、異構(gòu)計(jì)算處理器或外圍設(shè)備的接口類型而定,例如與GPGPU相互連的接口控制器子模塊可采用PCIe協(xié)議; (b)所述中央控制指令執(zhí)行子模塊,其功能在于:解析并執(zhí)行通用處理器發(fā)出的控制指令,根據(jù)控制指令的內(nèi)容,產(chǎn)生一系列對應(yīng)的數(shù)據(jù)消息發(fā)往數(shù)據(jù)平面交換模塊;接收數(shù)據(jù)平面交換模塊發(fā)來的數(shù)據(jù)消息,將數(shù)據(jù)消息寫入與其相連的通用處理器、異構(gòu)計(jì)算處理器、或外圍設(shè)備; (c)所述中央控制指令分發(fā)子模塊,其功能在于:通過查詢?nèi)值刂酚成浔?,將來自通用處理器的控制指令分發(fā)到對應(yīng)的數(shù)據(jù)平面端口模塊。
4.根據(jù)權(quán)利要求2所述的面向異構(gòu)計(jì)算的軟件定義服務(wù)器,其特征在于,所述數(shù)據(jù)平面端口模塊,其包括:接口控制器子模塊、中央控制指令執(zhí)行子模塊、外設(shè)控制指令執(zhí)行子模塊,其中: 所述外設(shè)控制指令執(zhí)行子模塊,其功能在于:解析異構(gòu)計(jì)算處理器或外圍設(shè)備發(fā)出的控制指令,根據(jù)控制指令的內(nèi)容,產(chǎn)生一系列對應(yīng)的數(shù)據(jù)消息發(fā)往數(shù)據(jù)平面交換模塊。
5.一種根據(jù)權(quán)利要求1所述的面向異構(gòu)計(jì)算的軟件定義服務(wù)器實(shí)現(xiàn)將控制指令分發(fā)到對應(yīng)控制平面端口模塊或數(shù)據(jù)平面端口模塊的方法,所述方法,包括下列步驟: 步驟110.當(dāng)控制平面端口模塊接收到控制指令后,從控制指令中獲取目的地址域; 步驟120.使用該目的地址查詢?nèi)值刂酚成浔恚? 步驟130.根據(jù)全局 地址映射表輸出的端口號,將該控制指令發(fā)送至對應(yīng)的控制平面端口模塊或數(shù)據(jù)平面端口模塊。
6.一種根據(jù)權(quán)利要求1所述的面向異構(gòu)計(jì)算的軟件定義服務(wù)器實(shí)現(xiàn)控制平面端口模塊或數(shù)據(jù)平面端口模塊執(zhí)行控制指令的方法,所述方法,包括下列步驟: 步驟210.查看該指令是否能直接執(zhí)行,如果可以,跳轉(zhuǎn)至步驟230,如果不是跳轉(zhuǎn)至步驟220 ; 步驟220.查看該指令依賴的指令(根據(jù)依賴指令序號獲取依賴指令狀態(tài))是否已經(jīng)完成,如果已經(jīng)完成,跳轉(zhuǎn)至步驟230,否則等待,回到開始狀態(tài); 步驟230.根據(jù)指令中的源地址和長度,從與其相連的處理器或外圍設(shè)備中讀取需要傳輸?shù)臄?shù)據(jù); 步驟240.使用指令中的目的地址,并根據(jù)數(shù)據(jù)平面交換模塊的最大包長設(shè)定,將讀取的數(shù)據(jù)打包為一系列數(shù)據(jù)消息; 步驟250.數(shù)據(jù)平面交換模塊將這些數(shù)據(jù)消息轉(zhuǎn)發(fā)至目的控制平面端口模塊或數(shù)據(jù)平面端口模塊; 步驟260.目的控制平面端口模塊或數(shù)據(jù)平面端口模塊將數(shù)據(jù)消息轉(zhuǎn)換為與其相連的處理器或外圍設(shè)備的接口協(xié)議消息; 步驟270.將轉(zhuǎn)換后的接口協(xié)議消息發(fā)送至目的處理器或外圍設(shè)備,并記錄該指令的狀態(tài)為已完成。
【文檔編號】G06F15/16GK103902498SQ201310694585
【公開日】2014年7月2日 申請日期:2013年12月18日 優(yōu)先權(quán)日:2013年12月18日
【發(fā)明者】曹寶香 申請人:曲阜師范大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
刚察县| 永新县| 尤溪县| 大理市| 天全县| 唐海县| 通山县| 临西县| 洮南市| 桐城市| 墨脱县| 镇安县| 闻喜县| 康定县| 锡林郭勒盟| 慈溪市| 宜川县| 神农架林区| 博罗县| 彩票| 东阿县| 大同市| 安丘市| 寻甸| 三明市| 福安市| 咸阳市| 曲麻莱县| 康乐县| 朝阳市| 香格里拉县| 桐乡市| 厦门市| 萝北县| 芒康县| 行唐县| 宣城市| 崇信县| 滕州市| 广元市| 酉阳|