專利名稱:面向服務的異構多核計算平臺及其使用的任務調(diào)度方法
技術領域:
本發(fā)明涉及一種異構多核計算平臺,具體涉及一種面向服務的異構多核計算平臺 及其使用的任務調(diào)度方法。
背景技術:
目前對片上多核處理器(MPSoC)的研究方興未艾,主要的研究熱點主要集中在軟 硬件劃分和調(diào)度、互聯(lián)和通訊機制和設計工具等方面。同時可重構計算與MPSoC相結合是 當前嵌入式計算系統(tǒng)的發(fā)展趨勢,這既可以發(fā)揮MPSoC的面向復雜應用的計算能力,又可 以進一步的提高靈活性,滿足多樣性的計算需求。面向服務的體系結構(SOA)思想是一種新興的面向服務的思想,目前主要應用在 軟件服務,WEB服務和操作系統(tǒng)等方面。它將應用程序的不同功能單元(稱為服務)通過 這些服務之間定義良好的接口和契約聯(lián)系起來。接口是采用中立的方式進行定義的,它應 該獨立于實現(xiàn)服務的硬件平臺、操作系統(tǒng)和編程語言。這使得構建在各種這樣的系統(tǒng)中的 服務可以一種統(tǒng)一和通用的方式進行交互。目前將SOA思想用在MPSoC上的研究還比較少,但是隨著可重構計算和定制計算 的發(fā)展,硬件系統(tǒng)也將更加貼近用戶,并針對特定用戶和應用程序做相應的配置和優(yōu)化。
發(fā)明內(nèi)容
本發(fā)明的一個目的在于提供一種面向服務的異構多核計算平臺,本發(fā)明的另一個 目的在于提供一種異構多核平臺所使用的任務調(diào)度方法,本發(fā)明的系統(tǒng)以及調(diào)度方法能夠 提供多種類型的計算服務,并采用硬件加速機制降低了系統(tǒng)的計算時間。為解決上述技術方案,實現(xiàn)上述技術目的,本發(fā)明通過以下技術方案來實現(xiàn)—種面向服務的異構多核計算平臺,其包括一個核心服務體、至少一組軟件服務 體,至少一組硬件服務體,一互聯(lián)模塊,以及一與所述核心服務體相互聯(lián)系的外圍總線模 塊,所述核心服務體與硬件服務體、核心服務體與軟件服務體之間均通過所述互聯(lián)模塊進 行互聯(lián)。進一步的,所述核心服務體包括一應用程序接口和調(diào)度器。進一步的,所述軟件服務體由所述嵌入式處理器和運行在其上的軟件服務程序和 接口程序組成,所述軟件服務程序封裝為函數(shù)庫的形式。進一步的,所述硬件服務體由異構的硬件加速模塊組成。進一步的,所述互聯(lián)模塊包括一外圍總線,以及連接在所述外圍總線上的片上存 儲器和至少一個外設。進一步的,所述核心服務體中保存了當前所有計算服務體,包括所述軟件服務體 和硬件服務體的空閑狀態(tài),并為每種類型的計算服務體保存一個隊列,用來存儲等待請求 訪問服務的各個計算子任務。計算服務體對隊列中的任務遵循先來先服務的處理原則。本發(fā)明的異構多核計算平臺使用的任務調(diào)度方法,其包括下步驟
4
步驟21)系統(tǒng)初始化在系統(tǒng)運行初始化階段,所述核心服務體首先針對系統(tǒng)中的硬件平臺,進行系統(tǒng) 的參數(shù)的初始化,這些參數(shù)包括系統(tǒng)中所述軟件服務體和硬件服務體的類型和數(shù)目,每種 軟件服務體對各種類型任務的執(zhí)行時間和傳輸開銷,每種硬件服務體執(zhí)行特定加速任務的 時間;步驟22)核心服務體對應用程序的預處理和分析應用程序在異構多核計算平臺上運行時,所述核心服務體首先進行應用程序的預 處理,從應用程序中分析獲得需要請求計算服務體的部分,應用程序通過所述核心服務體 提供的所述調(diào)度器來實現(xiàn)對相關服務的請求訪問;步驟23)核心服務體譯碼所述核心服務體每接收到一個新的服務請求,首先獲取服務請求中的操作碼,即 為要請求的服務的類型編號,然后獲得請求的操作數(shù),即為請求服務的輸入數(shù)據(jù),所述核心 服務體通過譯碼,即可獲得需要請求的計算類型,以及提供該計算服務的硬件服務體和軟 件服務體;步驟24)任務決策所述核心服務體首先查看當前各個軟件服務體和硬件服務體的空閑狀態(tài),如果硬 件服務體空閑,則將任務調(diào)度到硬件服務體上執(zhí)行,否則進行軟件開銷和硬件開銷的比較, 然后進行任務決策,來判定任務在軟服務體還是硬件服務體上執(zhí)行,以獲得最高性能;步驟25)任務分配到不同計算服務體上執(zhí)行在獲得任務分配結果之后,所述核心服務體將子任務傳輸?shù)綄挠嬎惴阵w 中,并更新對應的計算服務體的狀態(tài)為繁忙狀態(tài),然后判斷對應的計算服務體的類型為阻 塞型還是非阻塞型;步驟26)如果對應的計算服務體的類型為阻塞型服務,則計算服務體在執(zhí)行過程 中,所述核心服務體處于等待狀態(tài),在等待計算服務體將數(shù)據(jù)返回之后再繼續(xù)執(zhí)行,并把該 計算服務體的狀態(tài)標記為空閑狀態(tài);步驟27)如果對應的計算服務體的類型為非阻塞型服務,則所述核心服務體在將 任務發(fā)送到對應的計算服務體進行執(zhí)行的過程中,應用程序可以繼續(xù)執(zhí)行當前任務,在對 應的計算服務體計算完成時,數(shù)據(jù)傳送回所述核心服務體,所述核心服務體中包含一個中 斷控制器并提供對應的驅動程序,該中斷控制器檢測每條核心服務體與計算服務體之間的 通信鏈路,當計算服務體執(zhí)行結束將數(shù)據(jù)傳回所述核心服務體時,觸發(fā)對應編號的中斷,所 述核心服務體在檢測到中斷之后,首先中斷當前應用程序的執(zhí)行,并調(diào)用中斷處理函數(shù),中 斷處理函數(shù)的主要功能即為進行結果數(shù)據(jù)的賦值等操作,在賦值完成之后,該計算服務體 即為空閑狀態(tài)。與現(xiàn)有技術相比,本發(fā)明具有以下顯著的優(yōu)點1、本發(fā)明首次將面向服務的思想用于異構多核體系結構中,首次提出了面向服務 的片上異構多核系統(tǒng);借助于片上異構系統(tǒng)中的軟件處理器提高了系統(tǒng)的可重用性和擴展 性,并通過硬件加速模塊提高了系統(tǒng)的性能。2、本發(fā)明的異構多核計算平臺使用的任務調(diào)度方法,將軟件服務體和硬件服務體 同時進行調(diào)度,對于相同需求同時提出了兩種不同類型的實現(xiàn)方案。由于硬件執(zhí)行效率在特定的應用程序上比軟件執(zhí)行可以獲得較高程度的加速比和較高的效率。因此本系統(tǒng)平臺 中集成了若干硬件服務體,并可以通過可重構技術對硬件服務體進行調(diào)度和替換。從而實 現(xiàn)異構可重構的硬件平臺實現(xiàn)對特定任務的加速執(zhí)行。上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段, 并可依照說明書的內(nèi)容予以實施,以下以本發(fā)明的較佳實施例并配合附圖詳細說明如后。 本發(fā)明的具體實施方式
由以下實施例及其附圖詳細給出。
圖1是本發(fā)明的面向服務的異構多核平臺的一實施例的體系結構示意圖。圖2是本發(fā)明的面向服務的異構多核計算平臺的任務調(diào)度的流程示意圖。
具體實施例方式下面結合附圖對本發(fā)明的具體實施作進一步描述如圖1所示,顯示了面向服務的異構多核平臺的組織架構,所述面向服務的異構 多核平臺包括一個核心服務體1、至少一組軟件服務體2,至少一組硬件服務體3,一互聯(lián)模 塊4,以及一外圍總線模塊5,所述核心服務體1與硬件服務體3、核心服務體1與軟件服務 體2之間均通過所述互聯(lián)模塊4進行互聯(lián)。所述的異構多核平臺向應用程序6提供各種服 務功能。具體的模塊如下1)核心服務體所述核心服務體1是構成本發(fā)明的異構多核計算平臺的重要組成部分。為了同時 提供所述應用程序6的訪問接口,并對應用程序6進行剖析,并對子任務進行調(diào)度,核心服 務體1被分為兩個部分,即應用程序接口 101和調(diào)度器102。應用程序6在設計和運行時依 賴于核心服務體1提供的應用程序接口 101。而調(diào)度器102負責將各個子任務根據(jù)各自任 務的屬性和當前軟件服務體2和硬件服務體3的狀態(tài)劃分到不同的計算服務體上運行。2)軟件服務體圖1采用軟件服務體2用作系統(tǒng)平臺的軟件任務提供者。軟件服務體2主要由兩 個部分構成嵌入式處理器201,以及在所述嵌入式處理器201上運行的軟件服務程序202 和接口程序203。每個軟件服務體2都運行在獨立的物理處理器核上,并且所述軟件服務體 2之間是同構的。同時為了保證系統(tǒng)服務的完整性,每個軟件服務體2可以提供多種類型的 服務,在各個軟件服務體2中均保存有當前整個系統(tǒng)能夠提供的軟件服務程序的拷貝。所 述軟件服務程序可以在任何一個空閑的軟件服務體2上通過對該服務函數(shù)庫中對應服務 程序的調(diào)用來執(zhí)行。進一步的,所述軟件服務程序202封裝為函數(shù)庫的形式。3)硬件服務體所述硬件服務體3為異構的硬件加速模塊,每個硬件服務體3提供單一的服務,同 一類型硬件加速模塊的數(shù)量根據(jù)系統(tǒng)運行的狀態(tài)和應用程序的特征進行配置和優(yōu)化,以最 大形式地提高系統(tǒng)的性能。4)互聯(lián)模塊圖1中核心服務體1、軟件服務體2、硬件服務體3均為系統(tǒng)抽象模型,為了保證系統(tǒng)流程的正常運行,還需要提供專門的互聯(lián)機制進行核心服務體1與軟件服務體2、核心服 務體1與硬件服務體3之間的互聯(lián)。所述互聯(lián)模塊4通過點對點總線完成上述模塊之間的 連接。5)外圍總線模塊所述外圍總線模塊5包括外圍總線501、片上存儲器502以及一系列外設503,所 述外圍總線501主要負責核心服務體1與片上存儲器502以及外設503的互聯(lián)功能。所述 片上存儲器502主要負責系統(tǒng)計算數(shù)據(jù)的局部存儲,而外設503主要用來進行一些系統(tǒng)功 能演示和調(diào)試等。參見圖2所示,是本發(fā)明的面向服務的異構多核計算平臺的任務調(diào)度的流程示意 圖。本發(fā)明的面向服務的異構多核計算平臺的任務調(diào)度方法,包括以下步驟步驟21)系統(tǒng)初始化在系統(tǒng)運行初始化階段,核心服務體1首先針對系統(tǒng)中的硬件平臺,進行系統(tǒng)的 參數(shù)的初始化,這些參數(shù)包括系統(tǒng)中軟件服務體2和硬件服務體3的類型和數(shù)目,每種軟件 服務體2對各種類型任務的執(zhí)行時間和傳輸開銷,每種硬件服務體3執(zhí)行特定加速任務的 時間;步驟22)核心服務體對應用程序的預處理和分析應用程序在異構多核計算平臺上運行時,核心服務體1首先進行應用程序的預處 理,從應用程序中分析獲得需要請求計算服務體的部分,應用程序通過核心服務體1提供 的調(diào)度器102來實現(xiàn)對相關服務的請求訪問;步驟23)核心服務體譯碼核心服務體1每接收到一個新的服務請求,首先獲取服務請求中的操作碼,即為 要請求的服務的類型編號,然后獲得請求的操作數(shù),即為請求服務的輸入數(shù)據(jù),所述核心服 務體1通過譯碼,即可獲得需要請求的計算類型,以及提供該計算服務的硬件服務體3和軟 件服務體2 ;步驟24)任務決策核心服務體1首先查看當前各個軟件服務體2和硬件服務體3的空閑狀態(tài),如果 硬件服務體3空閑,則將任務調(diào)度到硬件服務體3上執(zhí)行,否則進行軟件開銷和硬件開銷的 比較,然后進行任務決策,來判定任務在軟服務體2還是硬件服務體3上執(zhí)行,以獲得最高 性能;步驟25)任務分配到不同計算服務體上執(zhí)行在獲得任務分配結果之后,核心服務體1將子任務傳輸?shù)綄挠嬎惴阵w中, 并更新對應的計算服務體的狀態(tài)為繁忙,然后判斷對應的計算服務體的類型為阻塞型還是 非阻塞型;步驟26)如果對應的計算服務體的類型為阻塞型服務,則計算服務體在執(zhí)行過程 中,核心服務體1處于等待狀態(tài),在等待計算服務體將數(shù)據(jù)返回之后再繼續(xù)執(zhí)行,并把該計 算服務體標記為空閑狀態(tài)。步驟27)如果對應的計算服務體的類型為非阻塞型服務,則核心服務體1在將任 務發(fā)送到對應的計算服務體進行執(zhí)行的過程中,應用程序可以繼續(xù)執(zhí)行當前任務,在對應的計算服務體計算完成時,數(shù)據(jù)傳送回核心服務體1,核心服務體1中包含一個中斷控制器 并提供對應的驅動程序,該中斷控制器檢測每條核心服務體1與計算服務體之間的通信鏈 路,當計算服務體執(zhí)行結束將數(shù)據(jù)傳回核心服務體1時,觸發(fā)對應編號的中斷,核心服務體 1在檢測到中斷之后,首先中斷當前應用程序的執(zhí)行,并調(diào)用中斷處理函數(shù),中斷處理函數(shù) 的主要功能即為進行結果數(shù)據(jù)的賦值等操作,在賦值完成之后,該計算服務體即為空閑狀 態(tài)。
權利要求
一種面向服務的異構多核計算平臺,其特征在于包括一個核心服務體(1)、至少一組軟件服務體(2),至少一組硬件服務體(3),一互聯(lián)模塊(4),以及一與所述核心服務體(1)相互聯(lián)系的外圍總線模塊(5),所述核心服務體(1)與硬件服務體(3)、核心服務體(1)與軟件服務體(2)之間均通過所述互聯(lián)模塊(4)進行互聯(lián)。
2.根據(jù)權利要求1所述的面向服務的異構多核計算平臺,其特征在于所述核心服務 體(1)包括一應用程序接口(101)和調(diào)度器(102)。
3.根據(jù)權利要求1所述的面向服務的異構多核計算平臺,其特征在于所述軟件服務 體(2)由所述嵌入式處理器(201)和運行在其上的軟件服務程序(202)和接口程序(203) 組成,所述軟件服務程序(202)封裝為函數(shù)庫的形式。
4.根據(jù)權利要求1所述的面向服務的異構多核計算平臺,其特征在于所述硬件服務 體(3)由異構的硬件加速模塊組成。
5.根據(jù)權利要求1所述的面向服務的異構多核計算平臺,其特征在于所述外圍總線 模塊(5)包括一外圍總線(501),以及連接在所述外圍總線(501)上的片上存儲器(502)和 至少一個外設(503)。
6.一種根據(jù)權利要求1至5中任意一項所述的異構多核計算平臺使用的任務調(diào)度方 法,其特征在于包括以下步驟,步驟21)系統(tǒng)初始化在系統(tǒng)運行初始化階段,核心服務體(1)首先針對系統(tǒng)中的硬件平臺,進行系統(tǒng)的參 數(shù)的初始化,這些參數(shù)包括系統(tǒng)中軟件服務體(2)和硬件服務體(3)的類型和數(shù)目,每種軟 件服務體(2)對各種類型任務的執(zhí)行時間和傳輸開銷,每種硬件服務體(3)執(zhí)行特定加速 任務的時間;步驟22)核心服務體對應用程序的預處理和分析應用程序在異構多核計算平臺上運行時,核心服務體(1)首先進行應用程序的預處 理,從應用程序中分析獲得需要請求計算服務體的部分,應用程序通過核心服務體(1)提 供的調(diào)度器(102)來實現(xiàn)對相關服務的請求訪問;步驟23)核心服務體譯碼核心服務體(1)每接收到一個新的服務請求,首先獲取服務請求中的操作碼,即為要 請求的服務的類型編號,然后獲得請求的操作數(shù),即為請求服務的輸入數(shù)據(jù),所述核心服務 體(1)通過譯碼,即可獲得需要請求的計算類型,以及提供該計算服務的硬件服務體(3)和 軟件服務體(2);步驟24)任務決策核心服務體(1)首先查看當前各個軟件服務體(2)和硬件服務體(3)的空閑狀態(tài),如 果硬件服務體(3)空閑,則將任務調(diào)度到硬件服務體(3)上執(zhí)行,否則進行軟件開銷和硬件 開銷的比較,然后進行任務決策,來判定任務在軟服務體(2)還是硬件服務體(3)上執(zhí)行, 以獲得最高性能;步驟25)任務分配到不同計算服務體上執(zhí)行在獲得任務分配結果之后,核心服務體(1)將子任務傳輸?shù)綄挠嬎惴阵w中,并 更新對應的計算服務體的狀態(tài)為繁忙,然后判斷對應的計算服務體的類型為阻塞型還是非 阻塞型;步驟26)如果對應的計算服務體的類型為阻塞型服務,則計算服務體在執(zhí)行過程中, 核心服務體(1)處于等待狀態(tài),在等待計算服務體將數(shù)據(jù)返回之后再繼續(xù)執(zhí)行,并把該計 算服務體標記為空閑狀態(tài);步驟27)如果對應的計算服務體的類型為非阻塞型服務,則核心服務體(1)在將任務 發(fā)送到對應的計算服務體進行執(zhí)行的過程中,應用程序可以繼續(xù)執(zhí)行當前任務,在對應的 計算服務體計算完成時,數(shù)據(jù)傳送回核心服務體(1),核心服務體(1)中包含一個中斷控制 器并提供對應的驅動程序,該中斷控制器檢測每條核心服務體(1)與計算服務體之間的通 信鏈路,當計算服務體執(zhí)行結束將數(shù)據(jù)傳回核心服務體(1)時,觸發(fā)對應編號的中斷,核心 服務體(1)在檢測到中斷之后,首先中斷當前應用程序的執(zhí)行,并調(diào)用中斷處理函數(shù),中斷 處理函數(shù)的主要功能即為進行結果數(shù)據(jù)的賦值等操作,在賦值完成之后,該計算服務體即 為空閑狀態(tài)。
全文摘要
本發(fā)明涉及一種面向服務的異構多核計算平臺,其包括一個核心服務體、至少一組軟件服務體,至少一組硬件服務體,一互聯(lián)模塊,以及一與所述核心服務體相互聯(lián)系的外圍總線模塊,所述核心服務體與硬件服務體、核心服務體與軟件服務體之間均通過所述互聯(lián)模塊進行互聯(lián)。所述軟件服務體由嵌入式處理器和運行在其上的軟件服務程序組成;所述硬件服務體由異構硬件加速模塊組成。本發(fā)明的系統(tǒng)以及調(diào)度方法能夠提供多種類型的計算服務,并采用硬件加速機制降低了系統(tǒng)的計算時間。
文檔編號G06F9/46GK101976204SQ20101050606
公開日2011年2月16日 申請日期2010年10月14日 優(yōu)先權日2010年10月14日
發(fā)明者馮曉靜, 周學海, 張軍能, 李曦, 王超, 陳香蘭 申請人:中國科學技術大學蘇州研究院