專利名稱:嵌入式并行計算系統(tǒng)以及嵌入式并行計算方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計算系統(tǒng)以及計算方法,特別是涉及一種嵌入式并行計算系統(tǒng)以及嵌入式并行計算方法。
背景技術(shù):
目前,在嵌入式領(lǐng)域,尤其是手機的嵌入式領(lǐng)域,軟件只能在需要完成特定應(yīng)用時(如拍照)使用應(yīng)用處理器。軟件通過讀寫應(yīng)用處理器的寄存器或發(fā)送命令給應(yīng)用處理器,應(yīng)用處理器完成特定操作后將操作結(jié)果放到應(yīng)用存儲器中,然后通知軟件將操作結(jié)果讀出。在做其他計算操作時,軟件不能使用應(yīng)用處理器。而目前許多應(yīng)用處理器內(nèi)部都有功能較強大的CPU內(nèi)核。上述方法沒有充分利用應(yīng)用處理器內(nèi)部的計算能力。
而且,目前的大型并行系統(tǒng)是針對計算性能要求遠遠高于嵌入式系統(tǒng)的場合。其采用的是一種對等機制,即,不存在主機系統(tǒng)和子系統(tǒng)這樣的概念,各個系統(tǒng)對等地進行計算,而之間所進行的通信僅僅是一些計算公式之類的信息,這樣其可以很快地執(zhí)行各種處理。但是,由于設(shè)計和使用這些系統(tǒng)要求開發(fā)人員學(xué)習(xí)復(fù)雜的并行計算理論,而且,并行程序設(shè)計對大多數(shù)軟件開發(fā)人員來說是非常復(fù)雜的。這樣,使用傳統(tǒng)的方法來解決嵌入式系統(tǒng)中應(yīng)用處理器空閑計算能力的使用問題是不合適的。
發(fā)明內(nèi)容
為克服以上問題,本發(fā)明提出一種嵌入式并行計算系統(tǒng)以及一種嵌入式并行計算方法。
本發(fā)明的嵌入式并行計算系統(tǒng),包括主機和應(yīng)用子系統(tǒng),該主機具有主機處理器、主機存儲器和主機總線,該應(yīng)用子系統(tǒng)包括應(yīng)用處理器、應(yīng)用存儲器和應(yīng)用總線,主機存儲器中存儲有包括初始化程序和中斷任務(wù)程序在內(nèi)的主機程序,該主機程序中包括具有主機任務(wù)和子系統(tǒng)任務(wù)的嵌入式并行程序,該主機任務(wù)具有主任務(wù)和主機子任務(wù),該子系統(tǒng)任務(wù)具有子任務(wù),該應(yīng)用子系統(tǒng)中進一步包括任務(wù)控制寄存器、任務(wù)狀態(tài)寄存器以及具有任務(wù)管理器的多任務(wù)操作系統(tǒng)。其中,主機處理器在執(zhí)行嵌入式并行程序的主機任務(wù)時,可以通過讀任務(wù)狀態(tài)寄存器了解應(yīng)用子系統(tǒng)的狀態(tài),并根據(jù)應(yīng)用子系統(tǒng)的狀態(tài)通過在應(yīng)用子系統(tǒng)的任務(wù)控制寄存器中寫入命令通知應(yīng)用子系統(tǒng)的任務(wù)管理器創(chuàng)建/銷毀任務(wù),并可以通過讀寫應(yīng)用子系統(tǒng)的應(yīng)用存儲器與應(yīng)用子系統(tǒng)交互數(shù)據(jù),應(yīng)用處理器根據(jù)任務(wù)管理器創(chuàng)建的任務(wù)執(zhí)行主機處理器寫入應(yīng)用存儲器中的嵌入式并行程序的子系統(tǒng)任務(wù)的任務(wù)代碼,并將執(zhí)行結(jié)果寫入應(yīng)用存儲器。
在上述嵌入式并行計算系統(tǒng)中執(zhí)行嵌入式并行計算方法,其包括包括以下步驟步驟一,配置應(yīng)用子系統(tǒng)使用初始化程序初始化應(yīng)用子系統(tǒng),啟動其多任務(wù)操作系統(tǒng),在啟動完畢后寫任務(wù)狀態(tài)寄存器通知主機應(yīng)用子系統(tǒng)已準備完畢并等待任務(wù)請求;步驟二,創(chuàng)建/啟動新任務(wù)主機在確認子系統(tǒng)準備完畢后,從主機存儲器中讀取子系統(tǒng)任務(wù)的任務(wù)代碼,將其寫入應(yīng)用存儲器,并發(fā)送任務(wù)請求到任務(wù)控制寄存器中通知任務(wù)管理器創(chuàng)建/啟動新任務(wù);步驟三,并行處理主機任務(wù)和子系統(tǒng)任務(wù)在應(yīng)用處理器根據(jù)任務(wù)管理器創(chuàng)建/啟動的新任務(wù)執(zhí)行應(yīng)用存儲器中的子系統(tǒng)的任務(wù)代碼時,主機處理器執(zhí)行主機任務(wù)的任務(wù)代碼;以及步驟四,結(jié)束/銷毀任務(wù)應(yīng)用處理器將執(zhí)行結(jié)果寫入應(yīng)用存儲器,并將中斷信號發(fā)送給主機處理器,主機處理器在接收到中斷信號后調(diào)用中斷任務(wù)程序確認任務(wù)結(jié)束,將結(jié)束/銷毀任務(wù)的請求設(shè)置到應(yīng)用處理器的任務(wù)控制寄存器,任務(wù)管理器根據(jù)該請求結(jié)束/銷毀任務(wù)。
與現(xiàn)有技術(shù)相比,本發(fā)明提出了一種嵌入式并行計算系統(tǒng)和并行計算方法,該嵌入式并行計算系統(tǒng)包括主機和應(yīng)用子系統(tǒng),并且所執(zhí)行的嵌入式并行程序存儲在主機中。相對于現(xiàn)有技術(shù)中采用的對等機制,本發(fā)明的嵌入式并行計算系統(tǒng)和并行計算方法可以在以簡單的方式來避免復(fù)雜的并行程序設(shè)計的同時,充分利用應(yīng)用處理器的計算能力。
圖1是本發(fā)明嵌入式并行計算系統(tǒng)的示意圖。
圖2是普通程序的結(jié)構(gòu)圖。
圖3是本發(fā)明的嵌入式并行程序的結(jié)構(gòu)圖。
圖4是本發(fā)明嵌入式并行計算系統(tǒng)執(zhí)行的嵌入式并行計算方法的流程圖。
具體實施例方式
圖1是本發(fā)明嵌入式并行計算系統(tǒng)的示意圖。本發(fā)明的嵌入式并行計算系統(tǒng)1由主機處理器11、主機總線12、主機存儲器13和應(yīng)用子系統(tǒng)14構(gòu)成。當本系統(tǒng)為手機系統(tǒng)時,手機主機包括主機處理器11、主機總線12和主機存儲器13,主機存儲器13是位于手機電路板上的內(nèi)存。
其中,主機總線12是用于主機處理器11、主機存儲器13以及應(yīng)用子系統(tǒng)14之間的通信線路。主機處理器11可以通過主機總線12訪問主機存儲器13以及應(yīng)用子系統(tǒng)14。主機存儲器13用于存儲嵌入式并行程序,該嵌入式并行程序中包括主機任務(wù)和子系統(tǒng)任務(wù)的任務(wù)代碼,嵌入式并行程序的主機任務(wù)的任務(wù)代碼是主機處理器11所執(zhí)行的主機任務(wù)的任務(wù)代碼。
進一步,應(yīng)用子系統(tǒng)14由應(yīng)用處理器141,應(yīng)用總線142和應(yīng)用存儲器143構(gòu)成。其中,應(yīng)用存儲器143用于存儲應(yīng)用處理器141的任務(wù)代碼,應(yīng)用處理器141用于執(zhí)行存儲在應(yīng)用存儲器143中的任務(wù)代碼,應(yīng)用總線142用于應(yīng)用處理器141和應(yīng)用存儲器143之間的通信。其中,應(yīng)用存儲器143中的任務(wù)代碼是由主機處理器11從主機存儲器13中讀出并寫入應(yīng)用子系統(tǒng)14的應(yīng)用存儲器143中的子系統(tǒng)任務(wù)的任務(wù)代碼。
在圖1所示的嵌入式并行計算系統(tǒng)1中,主機處理器11可以通過主機總線12訪問主機存儲器13、任務(wù)控制寄存器(圖未示)和應(yīng)用存儲器143。應(yīng)用處理器141可以訪問任務(wù)狀態(tài)寄存器和任務(wù)控制寄存器,還可以通過應(yīng)用子系統(tǒng)14內(nèi)部的應(yīng)用總線142訪問應(yīng)用存儲器143。
在應(yīng)用子系統(tǒng)14中具有自己的多任務(wù)操作系統(tǒng)。該多任務(wù)操作系統(tǒng)位于應(yīng)用存儲器141中,包含一個任務(wù)管理器。該任務(wù)管理器能夠檢查應(yīng)用子系統(tǒng)14的任務(wù)控制寄存器的狀態(tài),并根據(jù)該任務(wù)控制寄存器的值來創(chuàng)建或銷毀任務(wù)。該任務(wù)控制寄存器的值是由主機處理器11通過寫任務(wù)控制寄存器而設(shè)置的。當任務(wù)管理器檢查到任務(wù)控制寄存器的值等于某個二進制數(shù)時,其創(chuàng)建/銷毀任務(wù),從而完成對應(yīng)用子系統(tǒng)的任務(wù)控制。該二進制數(shù)為子系統(tǒng)預(yù)先設(shè)定的數(shù)值,可以任意設(shè)定。
應(yīng)用處理器141所要執(zhí)行的每個任務(wù)的任務(wù)代碼都保存在應(yīng)用存儲器143中。在應(yīng)用處理器141執(zhí)行保存在應(yīng)用存儲器143中的任務(wù)代碼時,主機處理器11也執(zhí)行存儲在主機存儲器13中的任務(wù)代碼。
在描述本發(fā)明并行計算之前,我們先將參照圖2和圖3比較一下在本發(fā)明的計算機系統(tǒng)中所運行的嵌入式并行程序和普通程序的結(jié)構(gòu)。
首先看一下普通程序結(jié)構(gòu)。如圖2所示,一個普通程序只包含主機任務(wù),該主機任務(wù)中包含了多個任務(wù)。
普通程序由一個主任務(wù)(或主線程)和多個子任務(wù)(或子線程)組成。主任務(wù)對應(yīng)一個主函數(shù),每個子任務(wù)也各對應(yīng)一個任務(wù)函數(shù)(子函數(shù))。普通程序中主任務(wù)和子任務(wù)共用主機處理器11,因此主函數(shù)和子函數(shù)被任務(wù)連接器連接到一個可執(zhí)行文件的一個地址空間。在主機處理器11要執(zhí)行普通程序時,只要將連接到該地址空間的可執(zhí)行文件載入主機存儲器13,然后從程序入口點執(zhí)行該普通程序即可。主任務(wù)中不需要考慮子任務(wù)代碼的載入問題。
如圖3所示,一個嵌入式并行程序由主機任務(wù)和子系統(tǒng)任務(wù)組成。主機任務(wù)包含主任務(wù)和主機子任務(wù),子系統(tǒng)任務(wù)只包含子任務(wù)。
主機和應(yīng)用子系統(tǒng)14可以通過下面的機制交互信息和數(shù)據(jù)主機處理器11通過寫應(yīng)用處理器141的任務(wù)控制寄存器來傳送命令,在任務(wù)管理器檢查任務(wù)控制寄存器時,根據(jù)主機處理器11的命令來創(chuàng)建/銷毀任務(wù)。
應(yīng)用處理器141通過寫任務(wù)狀態(tài)寄存器通知主機自己的狀態(tài),并且,主機處理器11通過讀任務(wù)狀態(tài)寄存器了解應(yīng)用子系統(tǒng)14當前所處的狀態(tài),例如多任務(wù)操作系統(tǒng)的初始化已經(jīng)準備完畢、等待任務(wù)請求等。
在有緊急消息需要主機響應(yīng)時,應(yīng)用處理器141發(fā)出一個中斷信號通知主機。該中斷信號可以直接發(fā)給主機處理器11,也可以通過將中斷信號先寫入任務(wù)狀態(tài)寄存器,然后由主機處理器11從其中讀出中斷信號。主機在收到該中斷信號后會調(diào)用存儲在主機存儲器13中的中斷服務(wù)程序。在主機根據(jù)中斷服務(wù)程序確認緊急消息后,將結(jié)束/銷毀任務(wù)的請求設(shè)置到任務(wù)控制寄存器,當任務(wù)管理器檢查到該請求時,任務(wù)管理器根據(jù)該請求銷毀任務(wù)。
主機處理器11和應(yīng)用處理器141都可以讀寫應(yīng)用存儲器143,從而實現(xiàn)任務(wù)代碼和執(zhí)行信息的交互,具體如下主機處理器11可以將嵌入式并行程序中的子系統(tǒng)任務(wù)的任務(wù)代碼寫入應(yīng)用存儲器143,應(yīng)用處理器141從應(yīng)用存儲器143中讀出并執(zhí)行該任務(wù)代碼;然后,當應(yīng)用處理器141執(zhí)行完畢后,將執(zhí)行結(jié)果寫入應(yīng)用存儲器143,主機處理器11通過讀應(yīng)用存儲器143獲得應(yīng)用處理器141的執(zhí)行結(jié)果。
通過上面的機制,可以實現(xiàn)主機和應(yīng)用子系統(tǒng)之間的通訊。
圖4是本發(fā)明的嵌入式并行計算系統(tǒng)所進行的并行計算的流程圖。下面結(jié)合圖4介紹主機和應(yīng)用子系統(tǒng)14如何實現(xiàn)并行計算任務(wù)。
由于本發(fā)明的特征在于主機對應(yīng)用子系統(tǒng)14的處理以及應(yīng)用子系統(tǒng)14和主機并行地執(zhí)行計算,而對于主機而言,其與現(xiàn)有主機執(zhí)行計算的方式一樣,所以這里重點描述主機與應(yīng)用子系統(tǒng)14之間的相互作用以及應(yīng)用子系統(tǒng)的操作。
最初,主機程序(包括嵌入式并行程序、初始化程序以及中斷服務(wù)程序等)都放在主機存儲器13中,主機啟動后,主機處理器11首先運行位于主機存儲器13中主機程序中的初始化程序,初始化后的主機程序啟動應(yīng)用子系統(tǒng)14的應(yīng)用處理器141并配置應(yīng)用子系統(tǒng)14中的多任務(wù)操作系統(tǒng)處于待機狀態(tài)。
當應(yīng)用子系統(tǒng)14準備完畢后,應(yīng)用處理器141通過將應(yīng)用子系統(tǒng)14當前的狀態(tài)寫入任務(wù)狀態(tài)寄存器,該狀態(tài)包括準備完畢以及任務(wù)請求。主機處理器11通過讀應(yīng)用處理器141的任務(wù)狀態(tài)寄存器了解應(yīng)用子系統(tǒng)14當前所處的狀態(tài)。
當運行于主機上的主機程序需要使用應(yīng)用處理器141來完成計算某個任務(wù)(假設(shè)為任務(wù)甲)時,主機處理器11從主機存儲器13中讀出對應(yīng)的任務(wù)代碼,然后將讀出的任務(wù)代碼寫入應(yīng)用存儲器143,同時通過設(shè)置任務(wù)控制寄存器向應(yīng)用子系統(tǒng)14發(fā)送任務(wù)請求,即創(chuàng)建任務(wù)請求。
當任務(wù)管理器檢查到主機處理器11設(shè)置在任務(wù)控制寄存器中的創(chuàng)建任務(wù)的創(chuàng)建任務(wù)請求時,其根據(jù)主機處理器11的請求創(chuàng)建任務(wù),并通知應(yīng)用處理器141從應(yīng)用存儲器143中讀出任務(wù)甲的任務(wù)代碼,執(zhí)行該任務(wù)代碼。在應(yīng)用處理器141執(zhí)行任務(wù)甲的任務(wù)代碼時,主機可以執(zhí)行其他計算代碼。
在任務(wù)完成后,應(yīng)用子系統(tǒng)14將運行結(jié)果寫入應(yīng)用存儲器143,并通過發(fā)送中斷信號通知主機,主機在收到信號后會調(diào)用主機程序中的中斷服務(wù)程序。在主機根據(jù)中斷服務(wù)程序確認任務(wù)結(jié)束后,將結(jié)束/銷毀任務(wù)的請求設(shè)置到任務(wù)控制寄存器。當任務(wù)管理器檢查到該結(jié)束/銷毀任務(wù)的請求時,結(jié)束/銷毀任務(wù)甲。
其中,主機在接收到中斷信號后,會從應(yīng)用存儲器143中讀出應(yīng)用子系統(tǒng)14的執(zhí)行結(jié)果,判斷該結(jié)果是否符合要求。如果符合則,調(diào)用中斷服務(wù)程序,如果不符合,則可以通知應(yīng)用子系統(tǒng)14重新執(zhí)行該任務(wù)。
如果當主機程序還在進行,而應(yīng)用子系統(tǒng)14完成某個任務(wù)之后,主機可以進一步給應(yīng)用子系統(tǒng)14提供新的任務(wù)請求。如果新的子任務(wù)需要特定的設(shè)置,則按照新的子任務(wù)重新設(shè)置應(yīng)用子系統(tǒng)14。并且在設(shè)置后進行重復(fù)上述的操作。
如果在主機和應(yīng)用子系統(tǒng)14上所執(zhí)行的程序是采用不同的編譯方式編譯時,則主機和應(yīng)用子系統(tǒng)14根據(jù)不同的編譯方法采用不同的編譯器。在執(zhí)行時,主機將應(yīng)用子系統(tǒng)14所執(zhí)行的任務(wù)代碼讀出,以應(yīng)用子系統(tǒng)14可以理解的方式寫入應(yīng)用存儲器143。
在開發(fā)上述嵌入式并行程序時,為了提高執(zhí)行效率,可以開發(fā)一個嵌入式并行程序的軟件開發(fā)包,該軟件開發(fā)包可以位于主機存儲器13中,作為主機程序的一部分。該軟件開發(fā)包中包括任務(wù)組合器、任務(wù)解析/加載函數(shù)庫、子系統(tǒng)任務(wù)管理函數(shù)庫、主機和子系統(tǒng)通信函數(shù)庫以及主機任務(wù)和子系統(tǒng)任務(wù)通信函數(shù)庫。
每個子系統(tǒng)任務(wù)的函數(shù)(子函數(shù))使用一個單獨的源文件來編寫,使用針對應(yīng)用處理器141的編譯器將該函數(shù)單獨編譯成子系統(tǒng)的目標文件。這些子系統(tǒng)的目標文件再由軟件開發(fā)包的任務(wù)組合器組合成為子系統(tǒng)庫任務(wù)。每個子系統(tǒng)庫任務(wù)可以包含一個或多個子任務(wù)函數(shù)的任務(wù)代碼,就是說所有子任務(wù)函數(shù)的目標文件可能被連接為一個子系統(tǒng)庫任務(wù)也可能被連接為多個子系統(tǒng)庫任務(wù)。在子系統(tǒng)庫任務(wù)中保存有描述其中的子任務(wù)的數(shù)據(jù)結(jié)構(gòu),分別描述了每個子任務(wù)的代碼長度,代碼起始位置,任務(wù)優(yōu)先級等信息。
而主機任務(wù)仍然使用其原有的編譯器和任務(wù)連接器來創(chuàng)建,創(chuàng)建成一個可執(zhí)行文件。不同的是,在主機程序中有解析、加載子系統(tǒng)庫任務(wù)的任務(wù)解析/加載函數(shù)庫。在主機程序創(chuàng)建子系統(tǒng)任務(wù)時,主機程序先使用上述任務(wù)解析/加載函數(shù)庫解析出子系統(tǒng)庫任務(wù),讀出子系統(tǒng)庫任務(wù)的任務(wù)代碼,然后將該任務(wù)代碼寫入應(yīng)用存儲器143。
在創(chuàng)建/銷毀子系統(tǒng)任務(wù)時,任務(wù)管理器通過調(diào)度子系統(tǒng)任務(wù)管理函數(shù)庫實現(xiàn)更快捷地創(chuàng)建/銷毀任務(wù)。
主機和子系統(tǒng)通信函數(shù)庫執(zhí)行主機處理器11和應(yīng)用子系統(tǒng)14之間的相互發(fā)送、接收命令和共享數(shù)據(jù),例如讀寫命令、讀寫狀態(tài)以及任務(wù)代碼。
主機任務(wù)和子系統(tǒng)任務(wù)通信函數(shù)庫,用于完成主機任務(wù)和子系統(tǒng)任務(wù)之間的通信和同步。在圖4中可以看出,在主機執(zhí)行其他計算代碼、應(yīng)用子系統(tǒng)執(zhí)行任務(wù)代碼時,通過用于完成主機任務(wù)和子系統(tǒng)任務(wù)之間的通信和同步的主機任務(wù)和子系統(tǒng)任務(wù)通信函數(shù)庫,主機任務(wù)和應(yīng)用子系統(tǒng)任務(wù)可以通過發(fā)送互斥體或信號量來同步,并且,主機任務(wù)可以等待應(yīng)用子系統(tǒng)任務(wù)完成某一操作,應(yīng)用子系統(tǒng)任務(wù)也可以等待主機任務(wù)完成某一操作,并且,在不需要同步的時候,主機處理器11和應(yīng)用處理器141可以相互獨立地并行地執(zhí)行。
綜上所述,本發(fā)明的嵌入式并行計算系統(tǒng)和并行計算方法可以在以簡單的方式來避免復(fù)雜的并行程序設(shè)計的同時,充分利用應(yīng)用處理器的計算能力。
盡管本發(fā)明以上述實施例來對嵌入式并行計算系統(tǒng)以及并行計算方法進行詳細地說明,但是本發(fā)明并不僅限于以上的實施例,并且可以延伸到本領(lǐng)域的普通技術(shù)人員通過閱讀以上的實施例而想到的顯而易知的實施例。
因此,本領(lǐng)域的普通技術(shù)人員對本發(fā)明的嵌入式并行計算系統(tǒng)以及并行計算方法所作出的任何變更或者修飾,理應(yīng)落在本發(fā)明所要求保護的權(quán)利要求范圍之內(nèi)。
權(quán)利要求
1.一種嵌入式并行計算系統(tǒng),包括主機和應(yīng)用子系統(tǒng),該主機具有主機處理器、主機存儲器和主機總線,該應(yīng)用子系統(tǒng)包括應(yīng)用處理器、應(yīng)用存儲器和應(yīng)用總線,主機存儲器中存儲有包括初始化程序和中斷任務(wù)程序在內(nèi)的主機程序,其特征在于該主機程序中包括具有主機任務(wù)和子系統(tǒng)任務(wù)的嵌入式并行程序,該主機任務(wù)具有主任務(wù)和主機子任務(wù),該子系統(tǒng)任務(wù)具有子任務(wù);該應(yīng)用子系統(tǒng)中進一步包括任務(wù)控制寄存器、任務(wù)狀態(tài)寄存器以及具有任務(wù)管理器的多任務(wù)操作系統(tǒng),其中,主機處理器在執(zhí)行嵌入式并行程序的主機任務(wù)時,可以通過讀任務(wù)狀態(tài)寄存器了解應(yīng)用子系統(tǒng)的狀態(tài),并根據(jù)應(yīng)用子系統(tǒng)的狀態(tài)通過在應(yīng)用子系統(tǒng)的任務(wù)控制寄存器中寫入命令通知應(yīng)用子系統(tǒng)的任務(wù)管理器創(chuàng)建/銷毀任務(wù),并可以通過讀寫應(yīng)用子系統(tǒng)的應(yīng)用存儲器與應(yīng)用子系統(tǒng)交互數(shù)據(jù),應(yīng)用處理器根據(jù)任務(wù)管理器創(chuàng)建的任務(wù)執(zhí)行主機處理器寫入應(yīng)用存儲器中的嵌入式并行程序的子系統(tǒng)任務(wù)的任務(wù)代碼,并將執(zhí)行結(jié)果寫入應(yīng)用存儲器。
2.如權(quán)利要求1所述的嵌入式并行計算系統(tǒng),其特征在于,該主機程序中進一步具有軟件開發(fā)包,該軟件開發(fā)包包括任務(wù)組合器,用于將子系統(tǒng)的目標文件組合成為子系統(tǒng)庫任務(wù),每個子系統(tǒng)庫任務(wù)可以包含一個或多個子任務(wù)函數(shù)的任務(wù)代碼,并且在子系統(tǒng)庫任務(wù)中保存有描述子任務(wù)的數(shù)據(jù)結(jié)構(gòu);任務(wù)解析/加載函數(shù)庫,用于在主機程序創(chuàng)建子系統(tǒng)任務(wù)時解析出子系統(tǒng)庫任務(wù)的任務(wù)代碼,以及用于主機程序創(chuàng)建/銷毀子系統(tǒng)任務(wù);子系統(tǒng)任務(wù)管理函數(shù)庫,在任務(wù)管理器創(chuàng)建/銷毀子系統(tǒng)任務(wù)時調(diào)用;主機和子系統(tǒng)通信函數(shù)庫,執(zhí)行主機處理器和應(yīng)用子系統(tǒng)之間的相互發(fā)送、接收命令和共享數(shù)據(jù);以及主機任務(wù)和子系統(tǒng)任務(wù)通信函數(shù)庫,用于完成主機任務(wù)和子系統(tǒng)任務(wù)之間的通信和同步。
3.如權(quán)利要求2所述的嵌入式并行計算系統(tǒng),其特征在于,主機和應(yīng)用子系統(tǒng)之間通過發(fā)送互斥體或信號量來進行同步。
4.如權(quán)利要求2所述的嵌入式并行計算系統(tǒng),其特征在于,子任務(wù)的數(shù)據(jù)結(jié)構(gòu)描述了其代碼長度、代碼起始位置以及任務(wù)優(yōu)先級。
5.一種使用在權(quán)利要求1所述的嵌入式并行計算系統(tǒng)中的嵌入式并行計算方法,包括以下步驟步驟一,配置應(yīng)用子系統(tǒng)使用初始化程序初始化應(yīng)用子系統(tǒng),啟動其多任務(wù)操作系統(tǒng),在啟動完畢后寫任務(wù)狀態(tài)寄存器通知主機應(yīng)用子系統(tǒng)已準備完畢并等待任務(wù)請求;步驟二,創(chuàng)建/啟動新任務(wù)主機在確認子系統(tǒng)準備完畢后,從主機存儲器中讀取子系統(tǒng)任務(wù)的任務(wù)代碼,將其寫入應(yīng)用存儲器,并發(fā)送任務(wù)請求到任務(wù)控制寄存器中通知任務(wù)管理器創(chuàng)建/啟動新任務(wù);步驟三,并行處理主機任務(wù)和子系統(tǒng)任務(wù)在應(yīng)用處理器根據(jù)任務(wù)管理器創(chuàng)建/啟動的新任務(wù)執(zhí)行應(yīng)用存儲器中的子系統(tǒng)的任務(wù)代碼時,主機處理器執(zhí)行主機任務(wù)的任務(wù)代碼;以及步驟四,結(jié)束/銷毀任務(wù)應(yīng)用處理器將執(zhí)行結(jié)果寫入應(yīng)用存儲器,并將中斷信號發(fā)送給主機處理器,主機處理器在接收到中斷信號后調(diào)用中斷任務(wù)程序確認任務(wù)結(jié)束,將結(jié)束/銷毀任務(wù)的請求設(shè)置到應(yīng)用處理器的任務(wù)控制寄存器,任務(wù)管理器根據(jù)該請求結(jié)束/銷毀任務(wù)。
6.如權(quán)利要求5所述的嵌入式并行計算方法,其特征在于,在步驟三中,主機和應(yīng)用子系統(tǒng)之間通過發(fā)送互斥體或信號量來進行同步。
7.如權(quán)利要求5所述的嵌入式并行計算方法,其特征在于,在步驟四中,應(yīng)用處理器將中斷信號寫入任務(wù)狀態(tài)寄存器從而將中斷信號通知主機。
8.如權(quán)利要求5-7任一項所述的嵌入式并行計算方法,其特征在于,其進一步包括步驟五在任務(wù)管理器結(jié)束/銷毀任務(wù)后,應(yīng)用子系統(tǒng)通過寫任務(wù)狀態(tài)寄存器通知主機等待新任務(wù)。
全文摘要
本發(fā)明涉及一種嵌入式并行計算系統(tǒng)以及嵌入式并行計算方法。其中,包括主機和應(yīng)用子系統(tǒng),該主機具有主機處理器、主機存儲器和主機總線,該應(yīng)用子系統(tǒng)包括應(yīng)用處理器、應(yīng)用存儲器和應(yīng)用總線,主機存儲器中存儲有包括初始化程序和中斷任務(wù)程序在內(nèi)的主機程序,該主機程序中包括具有主機任務(wù)和子系統(tǒng)任務(wù)的嵌入式并行程序,該主機任務(wù)具有主任務(wù)和主機子任務(wù),該子系統(tǒng)任務(wù)具有子任務(wù),該應(yīng)用子系統(tǒng)中進一步包括任務(wù)控制寄存器、任務(wù)狀態(tài)寄存器以及具有任務(wù)管理器的多任務(wù)操作系統(tǒng)。在該嵌入式并行計算系統(tǒng)中執(zhí)行本發(fā)明的嵌入式并行計算方法。該系統(tǒng)和方法可以在以簡單的方式來避免復(fù)雜的并行程序設(shè)計的同時,充分利用應(yīng)用處理器的計算能力。
文檔編號G06F9/46GK1719416SQ200510083088
公開日2006年1月11日 申請日期2005年7月8日 優(yōu)先權(quán)日2005年7月8日
發(fā)明者周政軍 申請人:北京中星微電子有限公司