亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

具有動態(tài)工作管理能力的多處理器界面及其程序載卸方法

文檔序號:6457767閱讀:4834來源:國知局

專利名稱::具有動態(tài)工作管理能力的多處理器界面及其程序載卸方法
技術領域
:本發(fā)明涉及一種具有動態(tài)工作管理能力的多處理器界面及其程序載卸方法。
背景技術
:由于通信及多媒體應用蓬勃發(fā)展,市面上各項電子產品所支持的工作趨于多樣化,因此也造成電子產品在處理這些工作時,其運算的復雜度大幅增加。以目前最普遍的手機為例,除了基本的通纟言功能外,還包括整合了數(shù)字相機、多媒體播放,甚至全球衛(wèi)星定位系統(tǒng)(GlobalPositioningSystem,GPS)等功能。為了能夠應付這樣的高運算需求,并同時保有一定的產品升級彈性,雙(多)核心異質整合處理器(dual-coreormulti-coreheterogeneousprocessor)已被普遍接受為一個有效的解決方案。像是常見的雙核心處理器,一方面利用一顆控制導向的微處理器單元(MicroProcessorUnit,MPU)來處理像是使用者界面、中斷處理等工作;另一方面則搭配一顆數(shù)字信號處理器(DigitalSignalProcessor,DSP)來負責實時、低功耗高效能、具規(guī)律運算特性的工作,像是快速傅立葉變換(FFT),矩陣乘法等等。這種異質多處理器核心平臺(heterogeneousmulti-coreplatform)結合MPU、DSP等不同處理器優(yōu)點,可提供遠優(yōu)于單一處理器的運算效率,并提供以軟件進行產品差異化的高度設計彈性。然而,由于缺乏相關的開發(fā)工具及相對應的軟件抽象化概念,早期開發(fā)異質多處理器核心平臺的應用系統(tǒng)時均是針對各個處理器采取各自突破的方法。舉例來說,設計師可能先進行DSP應用模塊設計(例如開發(fā)一個以DSP為基的影音編解碼器(codec)),撰寫并驗證DSP軟件后,將此模塊視作一個封閉的子系統(tǒng),接著再以MPU存取外圍裝置(如硬件編解碼器、加速器等)的方式與其相互溝通,然而處理器彼此間沒有直接的互動。此外,為了因應應用程序的日漸多任務(multi-task)及多執(zhí)行緒7(multithreaded)化,多個不同的工作或執(zhí)行緒同時分享DSP運算資源的機會越來越高;另外,為提升運算效能、降低DSP運算的存儲資源(例如高速暫存內存(scratchpadSRAM)或高速寄存(cache))需求,或降低非先占式(non-preemptive)系統(tǒng)的^f尤先序倒置(priorityinversion)時間,DSP系統(tǒng)傾向于將其運算進一步分割(taskslicing)。以上幾個因素使得DSP程序開發(fā)進一步抽象化(abstraction),并加入動態(tài)工作加載/卸載(taskloading/offloading)、內存管理、多任務處理及動態(tài)工作排程、中斷處理(interrupthandler)等傳統(tǒng)MPU子系統(tǒng)的軟件抽象層次。但要將DSP程序開發(fā)進一步抽象化并不是那么容易,譬如說DSP不適合處理控制導向的工作,其環(huán)境切換(contextswitch)的代價極高等因素。因此,一般希望能夠在MPU與DSP之間發(fā)展一種特殊溝通界面,以取代單純地使用DSP的抽象化軟件層次,同時能提供MPU完全相同的界面。目前市面常見的相關產品多數(shù)采用信箱(mailbox)抽象化的中斷驅動(interrupt—driven)的處理器間通4言(Inter—ProcessorCommunications),以及M-核心(M-kernel)抽象化的DSP軟件層級。像是德州儀器(TexasInstruments)的達文西(DaVinci)與開放式多々某體應用平臺(OpenMultimediaApplicationsPlatform,0MAP),是以DSPGateway或DSP/BIOS連結完整包覆的IPC機制、DSP/BI0S、DSPn-kernel及DSP算法互通性標準(eXpressDSPAlgorithmInteroperabilityStandard,xDAIS)的應用程序界面(ApplicationProgramInterface,API)規(guī)格。上述的軟件結構大致可以目前發(fā)展中的開放軟件結構表示。圖1所繪示為現(xiàn)有的開放軟件結構。請參照圖1,此開放軟件結構是將MPU110的軟件抽象層次搬移到DSP120,并采用中斷驅動的處理器間通信,然此舉將嚴重影響DSP子系統(tǒng)的效能。以德州儀器的軟件framework為例,其應用手冊(applicationnotes)中所揭露的編解碼器的效能數(shù)據(jù)(包括常見的H.264、MPEG-2、AAC、MP3、G.71x等)與其最佳化(hand-optimized)的版本之間仍存在不小的落差(大于50%),其原因可以歸納如下1.DSP結構設計已針對重復性高、可預測的運算進行最佳化,但對一般DSP的過程控制與中斷處理而言,代價都不小。2.DSP為了處理大量的數(shù)據(jù)流,置放了相對多的寄存器(registers),但其內建的數(shù)據(jù)存儲器(datamemory)為求執(zhí)行預測性,多無快取(cache)的抽象化層次,如此的設計結構將導致其環(huán)境切換(contextswitch)的代價大幅提高。3.DSP通常具有特殊用途的功能模塊,例如位處理搡作單元(bit_manipulationunit)、仂口羅瓦域運算單元(Galois-fieldarithmeticunit)等,以此高成本的處理器執(zhí)行m-kernel中簡單的邏輯運算相對浪費。針對以上問題,現(xiàn)已發(fā)展一些初步的解決方案,例如亞德諾-(AnalogDevices)公司與英特爾(Intel)公司共同研發(fā)的一種具備增強過程控制及中斷處理機置的BlackfinDSP結構,即宣稱在低成本系統(tǒng)中甚至可取代MPU成為系統(tǒng)唯一的處理器核心。然而,此種結構不是與MPU"t殳資重復的硬件資源,以強化其過程控制及中斷處理,就是投資重復的軟件資源,例如移植原MPU的ARM/MIPS、X86MPU的系統(tǒng)軟件、驅動程序及l(fā)egacy等應用軟件,均需花費不少的成本。有一種方式是利用編譯器技術分析應用程序,僅容許其執(zhí)行單元在處于相對小的環(huán)境時先行搶占(preemption);另一種方式則是則采用多組描述符(descriptor),以降低DSP上環(huán)境切換的開支(overheads)。然而,上述方法的缺點為需要大量的靜態(tài)分析,同時對程控的復雜度也增加不少。菲利浦(Philips)公司的DSP提供兩組指令集,一組為正常(normal)指令集,另一組為小巧(compact)指令集。小巧指令集只允許存取DSP中部份的資源,像是少數(shù)幾個寄存器,當中斷發(fā)生后,如果中斷服務程序(interruptserviceroutine,ISR)只用到小巧指令集的指令,則需要做環(huán)境切換的情況將會大幅降低。然而,因為小巧指令集的指令長度短,只能存取DSP的部分資源,相對的也會影響執(zhí)行的效能。超微(AMD)公司則是保留一組寄存器用在不會被中斷的程序區(qū)段(例如中斷服務程序)中,如果在中斷服務程序中會用到其它的寄存器時,則可把值先存到保留的寄存器中,而在處理完ISR后再將此值存回原本的寄存器,如此便可以降低環(huán)境切換的時間。然而,此種方式的缺點則是需要多花費一組寄存器的成本。
發(fā)明內容有鑒于此,本發(fā)明提供一種具有動態(tài)工作管理能力的多處理器界面的程序載卸方法,藉由找尋數(shù)字信號處理器中閑置的執(zhí)行單元,并依序分派工作供其執(zhí)行,以提升處理器間的溝通效能。本發(fā)明提供一種具有動態(tài)工作管理能力的多處理器界面,藉由獨立運作的控制器動態(tài)管理分派給DSP運算處理的工作,可節(jié)省硬件資源。為達上述或其它目的,本發(fā)明提出一種具有動態(tài)工作管理能力的多處理器界面的程序載卸方法,適于利用配置在第一處理器與第二處理器間的溝通界面,動態(tài)管理第一處理器指派給第二處理器處理的工作。此方法包括先搜尋第二處理器中閑置的執(zhí)行單元,再將上述工作的多個執(zhí)行緒其中之一排定給:執(zhí)行單元,最后則將4丸行單元啟動以執(zhí)行執(zhí)行緒。在本發(fā)明的一實施范例中,上述的程序載卸方法更包括重復上述步驟,以排定上述工作的其它執(zhí)行緒給第二處理器中閑置的其它執(zhí)行單元執(zhí)行,直到上述工作的所有執(zhí)行緒均執(zhí)行完畢為止。在本發(fā)明的一實施范例中,上述在搜尋第二處理器中閑置的執(zhí)行單元的步驟之前,更包括接收第一處理器指派第二處理器處理的工作,而將此工作分解為多個執(zhí)行緒,并依照這些執(zhí)行緒的優(yōu)先權,將這些執(zhí)行緒排序并記錄于工作序列。其中,此工作序列包括記錄各個執(zhí)行緒執(zhí)行所需的工作控制數(shù)據(jù)塊(TaskControlBlock,TCB)數(shù)據(jù),而此工作控制數(shù)據(jù)塊凄t據(jù)則包括記錄各執(zhí)行緒的種類(type)、目標(destination)、標題(head)指標、結尾"ail)指針及程序地址(programaddress)。在本發(fā)明的一實施范例中,上述搜尋第二處理器中閑置的執(zhí)行單元的步驟包括讀取執(zhí)行緒分派表(dispatchtable),以查看目前第二處理器中各個執(zhí)行單元的工作狀態(tài),而找出工作狀態(tài)為閑置狀態(tài)的執(zhí)行單元。在本發(fā)明的一實施范例中,上述的執(zhí)行緒分派表包括記錄第二處理器中各個執(zhí)行單元的工作狀態(tài),以及各個執(zhí)行單元執(zhí)行執(zhí)行緒所需的工作控制數(shù)據(jù)塊數(shù)據(jù)的地址。在本發(fā)明的一實施范例中,上述將執(zhí)行緒排定給執(zhí)行單元的步驟包括讀取上述的工作序列,以找尋目前未處理且排序在前的執(zhí)行緒,再將此扭:行緒排定給執(zhí)行單元。此外,此步驟更包括將執(zhí)行執(zhí)行緒所需的工作控制數(shù)據(jù)塊數(shù)據(jù)的地址記錄于執(zhí)行緒分派表。在本發(fā)明的一實施范例中,上述啟動執(zhí)行單元以執(zhí)行執(zhí)行緒的步驟包括將對應于此執(zhí)行單元的執(zhí)行單元起始信號觸發(fā),而由執(zhí)行單元開始依序累加一指令計數(shù)器,以開始執(zhí)行執(zhí)行緒。在本發(fā)明的一實施范例中,上述執(zhí)行單元執(zhí)行執(zhí)行緒的步驟包括由執(zhí)行單元要求溝通界面提供一工作空間,然后才執(zhí)行執(zhí)行緒,并將執(zhí)行緒運算完成的數(shù)據(jù)存放至此工作空間,最后再將存放此執(zhí)行緒運算所需數(shù)據(jù)的工作空間釋放。其中,若溝通界面沒有空閑的工作空間,則結束執(zhí)行緒的執(zhí)行動作。在本發(fā)明的一實施范例中,上述在執(zhí)行單元要求溝通界面提供工作空間的步驟之后,更包括指示溝通界面更新工作序列,以指向此執(zhí)行緒的下一筆待處理數(shù)據(jù),以及在執(zhí)行緒執(zhí)行完成時,再度指示溝通界面更新工作序列,以指示此執(zhí)行緒的目標執(zhí)行緒又增加一筆可處理數(shù)據(jù),此可處理數(shù)據(jù)即為上述執(zhí)行緒處理完成的數(shù)據(jù)。在本發(fā)明的一實施范例中,上述在執(zhí)行單元要求溝通界面提供工作空間的步驟之后,更包括將執(zhí)行緒解鎖,以繼續(xù)分配給第二處理器中閑置的執(zhí)行單元執(zhí)行。本發(fā)明提出一種具有動態(tài)工作管理能力的多處理器界面,其是配置在第一處理器與第二處理器之間,而包括第一處理器控制器、第二處理器控制器及工作控制器。其中,第一處理器控制器耦接至第一處理器,用以接收第一處理器的命令,而接收第一處理器指派給第二處理器處理的工作。第二處理器控制器耦接至第一處理器控制器及第二處理器,用以接收第二處理器的命令,而搜尋第二處理器中閑置的執(zhí)行單元。工作控制器則耦接至第二處理器控制器,用以接收第二處理器控制器的命令,而排定工作的多個執(zhí)行緒其中之一給執(zhí)行單元,并命令第二處理器控制器將執(zhí)行單元啟動以執(zhí)行執(zhí)行緒。在本發(fā)明的一實施范例中,上述的溝通界面更包括兩個輸入緩沖器、兩個輸出緩沖器及狀態(tài)寄存器。其中,輸入緩沖器用于接收并存儲第一處理器輸入的數(shù)據(jù),而提供給第二處理器運算。輸出緩沖器用于接收并存儲第二處理器運算后的數(shù)據(jù),而提供給第一處理器。狀態(tài)寄存器則用以指示上述輸入緩沖器及輸出緩沖器的狀態(tài)。在本發(fā)明的一實施范例中,上述的第一處理器控制器包括接收代表第一處理器已將數(shù)據(jù)搬進輸入緩沖器的第一數(shù)據(jù)搬入命令,以更新狀態(tài)寄存器,而指示已搬入數(shù)據(jù)的輸入緩沖器的狀態(tài)為滿載(full),并指示第一處理器下次將數(shù)據(jù)搬進另一個輸入緩沖器;此外,第一處理器控制器更包括接收代表第一處理器已將數(shù)據(jù)從輸出緩沖器取出的第一數(shù)據(jù)取出命令,以更新狀態(tài)寄存器,而指示已取出數(shù)據(jù)的輸出緩沖器的狀態(tài)為空(empty),并指示第一處理器下次從另一個輸出緩沖器取出數(shù)據(jù)。在本發(fā)明的一實施范例中,上述的第二處理器控制器包括接收代表第二處理器已將數(shù)據(jù)從輸入緩沖器取出的第二數(shù)據(jù)取出命令,以及代表第二處理器已將數(shù)據(jù)搬進輸出緩沖器的第二數(shù)據(jù)搬入命令,而將此第二數(shù)據(jù)取出命令及第二數(shù)據(jù)搬入命令傳送給第一處理器控制器執(zhí)行。在本發(fā)明的一實施范例中,上述的第一處理器控制器包括接收第二數(shù)據(jù)取出命令,以更新狀態(tài)寄存器,而指示第二處理器下次從另一個輸入緩沖器取出數(shù)據(jù),并指示已取出數(shù)據(jù)的輸入緩沖器的狀態(tài)為空;此外,第一處理器控制器更包括接收第二數(shù)據(jù)搬入命令,以更新狀態(tài)寄存器,而指示第二處理器下次將數(shù)據(jù)搬進另一個輸出緩沖器,并指示已搬入數(shù)據(jù)的輸出緩沖器的狀態(tài)為滿載。在本發(fā)明的一實施范例中,上述的第二處理器控制器包括接收內存取得命令,以找尋工作空間來存儲執(zhí)行緒運算完成的數(shù)據(jù);以及接收內存釋放命令,以釋放用以存儲執(zhí)行緒運算所需數(shù)據(jù)的工作空間。在本發(fā)明的一實施范例中,上述的第二處理器控制器包括接收工作解鎖命令,以解鎖執(zhí)行緒的狀態(tài),而提供給工作控制器檢查是否能夠分派給第二處理器運算。在本發(fā)明的一實施范例中,上述的第二處理器控制器包括接收執(zhí)行單元終止命令,以設置第二處理器中對應的執(zhí)行單元的執(zhí)行單元起始信號,而停止執(zhí)行單元累加指令計數(shù)器。同時亦傳送執(zhí)行單元閑置命令給工作控制器,以告知工作控制器有閑置的執(zhí)行單元可再被排程工作。在本發(fā)明的一實施范例中,上述的工作控制器在接收到執(zhí)行單元閑置命令時,包括讀取工作序列,以找尋目前未處理且排序在前的執(zhí)行緒,而將此執(zhí)行緒的工作控制數(shù)據(jù)塊數(shù)據(jù)的地址寫入執(zhí)行緒分派表,其中,所述的工作序列包括記錄各個執(zhí)行緒執(zhí)行所需的工作控制數(shù)據(jù)塊數(shù)據(jù)。同時亦傳送執(zhí)行單元起始命令給第二處理器控制器,以觸發(fā)第二處理器的執(zhí)行單元起始信號,而控制第二處理器的執(zhí)行單元開始累加指令計數(shù)器,以執(zhí)行執(zhí)行緒。在本發(fā)明的一實施范例中,上述的工作控制器包括接收解序列命令,以更新工作序列中執(zhí)行緒的工作控制數(shù)據(jù)塊數(shù)據(jù)的結尾指針,以指到該執(zhí)行緒的下一筆待處理數(shù)據(jù);此外,工作控制器更包括接收制序列命令,以更新該執(zhí)行緒的目標執(zhí)行緒的工作控制數(shù)據(jù)塊數(shù)據(jù)的標題指針,以指示目標執(zhí)行緒又增加一筆可處理數(shù)據(jù),而此可處理數(shù)據(jù)為執(zhí)行緒處理完成的數(shù)據(jù)。在本發(fā)明的一實施范例中,上述的第一處理器包括微處理器單元(MicroProcessorUnit,MPU),而第二處理器則包括數(shù)字信號處理器(DigitalSignalProcessor,DSP)。本發(fā)明采用在微處理器與數(shù)字信號處理器之間配置溝通界面的結構,藉由獨立的溝通界面分派微處理器要求DSP處理的工作,并管理提供給DSP進行運算及存儲數(shù)據(jù)的資源,可大幅節(jié)省DSP花費在環(huán)境切換(contextswitch)的時間,且可節(jié)省硬件成本。為讓本發(fā)明的上述和其它目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施范例,并配合附圖,作詳細說明如下。圖1所繪示為現(xiàn)有的開放軟件結構。圖2是依照本發(fā)明一實施范例所繪示的具有動態(tài)工作管理能力的多處理器界面的示意圖。圖3是依照本發(fā)明一實施范例所繪示的具有動態(tài)工作管理能力的多處理器界面的程序載卸方法的流程圖。圖4是依照本發(fā)明一實施范例所繪示的DSP數(shù)據(jù)存儲器在MPU尋址空間的內存對應的示意圖。圖5是依照本發(fā)明一實施范例所繪示的DSP執(zhí)行工作的方法流程圖。圖6是依照本發(fā)明一實施范例所繪示的JPEG圖像壓縮程序的示意圖。圖7是依照本發(fā)明一實施范例所繪示的JPEG圖像壓縮的工作序列。圖8(a)-8(d)是依照本發(fā)明一實施范例所繪示的JPEG圖像壓縮的執(zhí)行緒分派表。圖9是依照本發(fā)明一實施范例所繪示的具有動態(tài)工作管理能的的多處理器界面的方塊圖。圖10(a)-圖10(c)是依照本發(fā)明一實施范例所繪示的MPU控制器631、DSP控制器632及工作控制器633的狀態(tài)機示意圖。圖11是依照本發(fā)明一實施范例所繪示的輸出輸入緩沖器的運作示意圖。圖12為依照本發(fā)明一實施范例所繪示的圖6溝通界面的微結構及輸出輸入腳位示意圖。附圖符號說明110、210、610、910:微處理器單元(MPU)220、620、920:數(shù)字信號處理器(DSP)630、930、1200:溝通界面400:數(shù)據(jù)存儲器程序狀態(tài)寄存器120、200、230、410:420:430:440:450:451:452:453:454:460、480、610620630640700810、931、932、933、保留區(qū)使用者頁系統(tǒng)控制變量整體數(shù)據(jù)TCB數(shù)據(jù)工作序列執(zhí)行緒分派表470:輸入緩沖器490:輸出緩沖器色彩空間轉換離散余弦變換量化可變長度編碼工作序列820、830、840:執(zhí)行緒分派表1210:MPU控制器1220:DSP控制器1230:工作控制器1110、1120、1130:狀態(tài)才幾S310-S330:本發(fā)明一實施范例的具有動態(tài)工作管理能力的多處理器界面的程序載卸方法的各步驟S510-S590:本發(fā)明一實施范例的DSP執(zhí)行工作的方法的各步驟。具體實施方式為了能夠有效地幫助雙(多)核心處理器間的溝通,包括數(shù)據(jù)的傳遞、工作的分派,且能夠動態(tài)管理微處理器單元(MicroProcessorUnit,MPU)分派給數(shù)字信號處理器(DigitalSignalProcessor,DSP)的工作,本發(fā)明提出一種特殊的溝通界面及使用此溝通界面的程序載卸方法,以求達到上述的功能。為了使本發(fā)明的內容更為明了,以下特舉實施范例作為本發(fā)明確實能夠據(jù)以實施的范例。圖2是依照本發(fā)明一實施范例所繪示的具有動態(tài)工作管理能力的多處理器界面的示意圖。請參照圖2,本實施范例的溝通界面200是配置在微處理器單元(MPU)210與數(shù)字信號處理器(DSP)220之間,利用在DSP220的數(shù)據(jù)存儲器230中配置雙倍的輸入緩沖器231及輸出緩沖器231來增加數(shù)據(jù)傳輸?shù)男?。其中,當MPU210欲傳送數(shù)據(jù)給DSP220時,會先去查看狀態(tài)寄存器233,此狀態(tài)寄存器233會告訴MPU210目前可以將數(shù)據(jù)傳送到數(shù)據(jù)存儲器230的哪一個輸入緩沖器中,然后MPU210就可以進行數(shù)據(jù)的搬移。相對地,一旦完成數(shù)據(jù)搬移后,MPU210會寫一個相對應的命令(command)給溝通界面200,然后溝通界面200就會設定相對應的狀態(tài)寄存器233來表示已接收到數(shù)據(jù),同時會指示下次MPU210應該將數(shù)據(jù)傳送到另外一個輸入緩沖器。當DSP220完成工作而需要將處理完的數(shù)據(jù)傳送給MPU210時,溝通界面200就會利用一個信箱(mailbox),以中斷(interrupt)的方式通知MPU210來將數(shù)據(jù)取回,而當MPU210取完數(shù)據(jù)后,會寫一個命令給溝通界面200以告知它已完成數(shù)據(jù)的搬移。換句話說,當MPU210欲輸入數(shù)據(jù)給DSP220時,只需自己讀取狀態(tài)寄存器233后,即可馬上進行數(shù)據(jù)的搬移,毋需等待DSP220的響應或中斷DSP220的運算;此外,當數(shù)據(jù)完成運算后,溝通界面200也會實時的告知MPU210,如此一來便能大幅地增加數(shù)據(jù)傳輸?shù)男剩沩毨速M時間在互相等待。另一方面,本實施范例更包括定義一組系統(tǒng)控制變量,以控制DSP220執(zhí)行工作,其中包括利用工作控制^:據(jù)塊(TaskControlBlock,TCB)數(shù)據(jù)來記錄每個執(zhí)行緒狀態(tài),并利用工作序列(Queue)來記錄每個執(zhí)行緒運算時的來源數(shù)據(jù)是放在數(shù)據(jù)存儲器的哪個地址。上述的TCB數(shù)據(jù)中包含了許多信息種類(type)說明此執(zhí)行緒的工作型態(tài),可為輸入、輸出或一般工作;目標(destination)代表該工作的下一個工作名稱,譬如說色彩空間轉換(ColorSpaceTransformation,CST)的下一個工作即為離散余弦變換(DiscreteCosineTransformation,DCT);標題(head)、結尾(tail)指標則表示目前工作序列中數(shù)據(jù)使用的情形。其中,結尾指針所指的數(shù)據(jù)即為最近需要被運算的數(shù)據(jù),而標題指針則是指向最近由上一個工作完成所傳送過來的數(shù)據(jù)。藉由標題及結尾指標就可判斷有哪些數(shù)據(jù)等待被運算,而哪些數(shù)據(jù)已經運算完畢;程序地址(programaddress,ptr)則是指出執(zhí)行緒的程序代碼是存放在指令內存的哪個地址(起始地址)。除了TCB數(shù)據(jù)及工作序列以外,系統(tǒng)控制變量還包括一個執(zhí)行緒分派表(dispatchtable),里面存放的信息可表示各個執(zhí)行單元目前所運算的執(zhí)行緒的TCB數(shù)據(jù)是存放在內存的那個地址。當執(zhí)行單元開始執(zhí)行各個執(zhí)行緒時,就可利用執(zhí)行緒分派表所記錄的地址去查看相對應執(zhí)行緒的TCB數(shù)據(jù)。值得注意的是,本發(fā)明包括將MPU指派的工作依其性質分解為多個執(zhí)行緒,而對于所要管理的每個執(zhí)行緒,溝通界面會賦予每個執(zhí)行緒一個"單一且固定"的優(yōu)先權,此優(yōu)先權關系就會決定之后這些工作的TCB數(shù)據(jù)存放的順序。當系統(tǒng)啟動之后,溝通界面就會開始進行動態(tài)的工作管理,主要的動作有工作排程(taskscheduling)及工作加載(taskloading),圖3是依照本發(fā)明一實施范例所繪示的具有動態(tài)工作管理能力的多處理器界面的程序載卸方法的流程圖。請參照圖3,本實施范例適于利用配置于第一處理器與第二處理器間的溝通界面,動態(tài)管理第一處理器指派給第二處理器處理的工作。在本實施范例中,第一處理器是以微處理器單元(MPU)為例,而第二處理器則是以數(shù)字信號處理器(DSP)為例來說明。首先,當系統(tǒng)啟動時,溝通界面會去監(jiān)視執(zhí)行緒分派表(dispatchtable),查看目前DSP中各個4丸行單元的工作狀態(tài),以找出閑置的執(zhí)行單元(步驟S310)。此執(zhí)行緒分派表除了記錄DSP中各個執(zhí)行單元的工作狀態(tài)之外,還包括記錄各個執(zhí)行單元執(zhí)行執(zhí)行緒所需的工作控制數(shù)據(jù)塊數(shù)據(jù)的地址。如果發(fā)現(xiàn)任何一個空閑的執(zhí)行單元時,它就會去讀取工作序列,以找尋目前未處理且排序在前的執(zhí)行緒,而將此執(zhí)行緒排定給執(zhí)行單元(步驟S320)。詳細地說,溝通界面包括查看工作序列,并從最高優(yōu)先權的工作開始檢查,如果這些執(zhí)行緒的TCB數(shù)據(jù)中的標題及結尾指標指出還有尚未處理的數(shù)據(jù),則溝通界面就會將最高優(yōu)先權的執(zhí)行緒排進執(zhí)行單元執(zhí)行,否則就繼續(xù)查看下一階優(yōu)先權的執(zhí)行緒。當溝通界面找到可以排程的執(zhí)行緒后,再來就是要進行工作加載(taskloading),以啟動^丸行單元4丸行此4丸行緒(步驟S330)。其中,溝通界面包括將對應此執(zhí)行單元的執(zhí)行單元起始信號觸發(fā)(例如設為1),此時執(zhí)行單元就會開始累加指令計數(shù)器,以開始執(zhí)行執(zhí)行緒,以下則再舉一實施范例詳細i兌明DSP執(zhí)行4丸4于緒的詳細流程。在介紹DSP執(zhí)行工作的方法之前,先以一實施范例說明DSP的數(shù)據(jù)存儲器的配置情形。圖4是依照本發(fā)明一實施范例所繪示的DSP數(shù)據(jù)存儲器在MPU尋址空間的內存對應的示意圖。請參照圖4,本實施范例的數(shù)據(jù)存儲器400除了DSP的程序區(qū)410以及保留區(qū)430外,更包括一塊保留給溝通界面使用的狀態(tài)寄存器420。此外,本實施范例還包括將數(shù)據(jù)存儲器400切割成若干個固定大小的使用者頁(userpage)440(包括使用者頁0-使用者頁13),而由溝通界面動態(tài)分配給DSP的各個執(zhí)行單元做為工作空間(workingspace),以存放DSP運算的來源數(shù)據(jù)或者是運算結果。系統(tǒng)控制變量區(qū)450則包括記錄系統(tǒng)的整體數(shù)據(jù)(globaldata)451,以及上述的TCB數(shù)據(jù)452、工作序列453及執(zhí)行緒分派表454。此外,數(shù)據(jù)存儲器400中還包括配置雙倍的輸入緩沖器460、470及輸出緩沖器480、490,以增加數(shù)據(jù)傳輸?shù)男省D5是依照本發(fā)明一實施范例所繪示的DSP執(zhí)行工作的方法流程圖。請參照圖5,本實施范例包括利用DSP的指令內存與數(shù)據(jù)存儲器,以及溝通界面的寄存器與所記錄的系統(tǒng)控制變量,據(jù)以控制DSP執(zhí)行工作。當溝通界面將執(zhí)行緒排程及加載DSP的執(zhí)行單元進行運算時,首先會先執(zhí)行get-free-page()API,也就是跟溝通界面要求一塊使用者頁當成工作空間(步驟S510),以存放運算完成的數(shù)據(jù)。此時溝通界面即會^^視數(shù)據(jù)存儲器中是否還有空閑的使用者頁可用(步驟S520)。如果已經沒有空閑的使用者頁可用的話,則執(zhí)行unlock()API,以告知溝通界面此工作可以再度的被排程運算(步驟S530),然后執(zhí)行terminate()API,以終止執(zhí)行單元執(zhí)行工作(步驟S590);反之,如果成功的要到使用者頁,下一步則會執(zhí)行de-queue()API,也就是通知溝通界面將TCB中的結尾指標更新,以指到下一筆待處理的數(shù)據(jù)(步驟S540)。接著就可以^執(zhí)行unlock()API,也就是告知溝通界面此工作可以再度的被排程運算,而繼續(xù)將下一個待處理的執(zhí)行緒分配給DSP中其它閑置的執(zhí)行單元執(zhí)行(步驟S550),而在完成上述這些動作后就,DSP就可以開始執(zhí)行真正的運算工作(步驟S560)。在運算完成后,再執(zhí)行en-queue()API,也就是告知溝通界面將此執(zhí)行緒的目標執(zhí)行緒的TCB數(shù)據(jù)中的標題指針作更新,以指示目標執(zhí)行緒又增加一筆可處理數(shù)據(jù)(步驟S570)。最后則執(zhí)行page-release()API,也就是將剛剛存放運算數(shù)據(jù)來源(inputdata)所占用的使用者頁給釋放掉(步驟S580),并執(zhí)行terminate()API,以終止執(zhí)行單元執(zhí)行工作(步驟S590)。在此需強調的是,這里所指的使用者頁并不是一開始執(zhí)行時用get-free—page()API所取得的使用者頁,而是指一開始存放運算數(shù)據(jù)來源的使用者頁,也就是說,用get—free-page()API所取得的使用者頁將會成為下一個工作存放運算數(shù)據(jù)來源的使用者頁。為了讓上述溝通界面與其程序載卸方法的內容更為清楚明了,以下將以多媒體應用中常見的(JointPhotographicCodingExpertGro叩,JPEG)圖像壓縮應用為例,說明本發(fā)明的溝通界面如何幫助MPU及DSP進行溝通及動態(tài)工作管理。圖6是依照本發(fā)明一實施范例所繪示的JPEG圖像壓縮程序的示意圖。請參照圖6,本實施范例是將JPEG的圖像壓縮程序分解成色彩空間轉換610(ColorSpaceTransformation,CST)、離散余弦變換620(DiscreteCosineTransformation,DCT)、量化630(Quantization)及可變長度編碼640(VariableLengthCoding,VLC)四個執(zhí)行緒。圖7是依照本發(fā)明一實施范例所繪示的JPEG圖像壓縮的工作序列。請參照圖7,溝通界面在接收到MPU分派的JPEG圖像壓縮工作時,即會將此JPEG圖像壓縮工作分解為上述CST、Q、DCT及VLC等執(zhí)行緒,并給予各個執(zhí)行緒一個單一且固定的優(yōu)先權,以作為工作排程的依據(jù)。而在JPEG圖像壓縮中,VLC具有最高優(yōu)先權,接著是Q、DCT,最后為CST。工作序列700是根據(jù)優(yōu)先權排定各個執(zhí)行緒的執(zhí)行順序,其第一列記錄輸出(Output)的TCB數(shù)據(jù)(TCB[O]),此工作是傳送DSP運算完成數(shù)據(jù)給MPU;第二列則記錄VLC工作的TCB數(shù)據(jù)(TCB[l]),而由其目標字段可知,其接收前面量化(Q)的數(shù)據(jù),并經由程序地址&VLC所指向的內存地址,讀取VLC程序以進行VLC運算。以此類推,工作序列700的其它列分別記錄Q、DCT、CST及輸入等工作的TCB數(shù)據(jù)。而在執(zhí)行工作序列700中的各個執(zhí)行緒時,溝通界面則會去讀取執(zhí)行緒分派表,以找尋空閑的執(zhí)行單元來分派工作序列700中的執(zhí)行緒。圖8是依照本發(fā)明一實施范例所繪示的JPEG圖像壓縮的執(zhí)行緒分派表。請先參照圖8(a),本實施范例假設DSP僅有4個執(zhí)行單元,而由執(zhí)行緒分派表810中的觸發(fā)(enable)字段可知,目前僅有執(zhí)行單元2正在執(zhí)行運算,而由其工作(task)字段可知,執(zhí)行單元2所執(zhí)行的是TCB[5]的數(shù)據(jù)。再參照圖7的工作序列700即可得知,執(zhí)行單元2所執(zhí)行的是輸入(i叩ut)的運算。值得注意的是,由工作序列700中的序列指標可知,Q的標題指標為l,但其結尾指標為0,此即代表此Q尚未執(zhí)行,而等待排入執(zhí)行緒分派表810中執(zhí)行。此時由執(zhí)行緒分派表810可知,執(zhí)行單元G為閑置狀態(tài),因此可將Q分派給執(zhí)行單元0執(zhí)行,而執(zhí)行緒分派表810也更新為圖8(b)的執(zhí)行緒分派表820。同理,工作序列700中DCT的標題指標為2,但其結尾指標為1,此亦代表DCT尚未執(zhí)行,而等待排入執(zhí)行緒分派表82Q中執(zhí)行。此時由^丸行緒分派表820可知,執(zhí)行單元1為閑置狀態(tài),因此可將DCT分派給執(zhí)行單元1執(zhí)行,而執(zhí)行緒分派表820也更新為圖8(c)的執(zhí)行緒分派表830。最后,當Q及輸入的運算完成后,執(zhí)行單元0及執(zhí)行單元2即回復到空閑狀態(tài),而執(zhí)行緒分派表830也更新為圖8(d)的執(zhí)行緒分派表840。以此類推,本發(fā)明的溝通界面即藉由參照如上所述的工作序列及執(zhí)行緒分派表,重復執(zhí)行分派工作、啟動執(zhí)行單元進行運算等步驟,直到工作序列中的所有執(zhí)行緒均運算完畢為止。根據(jù)以上所述的溝通界面概念及其程序載卸方法,本發(fā)明亦提供其可能實現(xiàn)的硬件結構。圖9是依照本發(fā)明一實施范例所繪示的具有動態(tài)工作管理能力的多處理器界面的方塊圖。請參照圖9,本實施范例的溝通界面930包括利用三個可交互作用的控制器(interactivecontroller),即MPU控制器931、DSP控制器932及工作控制器933,來實現(xiàn)DSP與MPU的溝通及動態(tài)工作管理的功能。其中,這三個控制器之間是利用命令儲列(commandqueue)來互相傳遞命令。這三個控制器可分別用三個簡單的狀態(tài)機(statemachine)來實現(xiàn)其功能。圖IO是依照本發(fā)明一實施范例所繪示的MPU控制器931、DSP控制器932及工作控制器933的狀態(tài)機示意圖。請先參照圖10(a),其代表MPU控制器931的狀態(tài)機1110,當系統(tǒng)開機后,MPU控制器931就處在待命(StandBy)狀態(tài),這時可能會接收來自于MPU910的命令,或是DSP控制器932的命令。來自MPU910的命令包含了(l)MPU已將數(shù)據(jù)搬進輸入緩沖器的數(shù)據(jù)搬入命令,以及(2)MPU已將數(shù)據(jù)從輸出緩沖區(qū)取出的數(shù)據(jù)取出命令;來自DSP控制器932的命令有(1)DSP已將數(shù)據(jù)從輸入緩沖器取出的數(shù)據(jù)取出命令,以及(2)DSP已將要傳送給MPU的數(shù)據(jù)放在輸出緩沖器的數(shù)據(jù)搬入命令。當MPU910將數(shù)據(jù)搬進輸入緩沖器時,MPU控制器931會將狀態(tài)寄存器改成指示MPU910下一次必須將數(shù)據(jù)搬進另外一個輸入緩沖器,同時將剛剛填入數(shù)據(jù)的數(shù)據(jù)緩沖器狀態(tài)設為滿載(full)。當MPU910已將數(shù)據(jù)從輸出緩沖器取出時,則會將狀態(tài)寄存器改成指示MPU910下次從另外一個輸出緩沖器取回數(shù)據(jù),同時將剛剛搬走數(shù)據(jù)的輸出緩沖器狀態(tài)改為空的(empty)。另一方面,當DSP920已將數(shù)據(jù)從輸入緩沖器取出時,MPU控制器931會將狀態(tài)寄存器改為指示下次DSP920要從另一個輸入緩沖器取得數(shù)據(jù),同時將剛剛取出數(shù)據(jù)的輸入緩沖器狀態(tài)改為空的。最后,當DSP920已將要傳送MPU的數(shù)據(jù)放在輸出緩沖器時,會將要輸出的那個輸出緩沖器藉由信箱而以中斷的方式傳送告知MPU610。此外,當MPU控制器931完成來自DSP控制器932的命令后,還會響應一個訊息給DSP控制器932,而DSP控制器932在收到這個響應后,才會繼續(xù)的執(zhí)行。舉例來說,圖ll是依照本發(fā)明一實施范例所繪示的輸出輸入緩沖器的運作示意圖。其中,圖ll(a)及圖ll(b)分別表示輸入緩沖器與輸出緩沖器的運作情形。MPUptr代表MPU910根據(jù)狀態(tài)寄存器的指示,所指向的輸入緩沖器或輸出緩沖器的地址,而DSPptr則代表DSP920根據(jù)狀態(tài)寄存器的指示,所指向的輸入緩沖器或輸出緩沖器的地址。由圖ll(a)及圖ll(b)可知,本發(fā)明的溝通界面提供雙倍的輸入緩沖器或輸出緩沖器給MPU910及DSP920交互使用,以增加數(shù)據(jù)傳輸?shù)男?。接著,圖10(b)所繪示為DSP控制器932的狀態(tài)機1120,當DSP控制器932處在待命狀態(tài)時,可能會接收來自DSP920的命令,或是MPU控制器931或工作控制器933的命令。其中來自DSP920的命令有八個,包括(1)內存釋放命令、(2)內存取得命令、(3)解序列(de-queue)命令、(4)制序列(en-queue)命令、(5)工作解鎖(unlock)命令、(6)執(zhí)行單元終止命令、(7)DSP已將數(shù)據(jù)從輸入緩沖器取出的數(shù)據(jù)取出命令,以及(8)DSP已將要傳送給MPU的數(shù)據(jù)放在輸出緩沖器的數(shù)據(jù)搬入命令。其中,上述解序列及制序列命令會直接傳給工作控制器933做處理,而"DSP920已將數(shù)據(jù)從輸入緩沖器取出"的數(shù)據(jù)取出命令與,,DSP已將要傳送給MPU的數(shù)據(jù)放在輸出緩沖器"的數(shù)據(jù)搬入命令則會直接傳給MPU控制器931做處理。DSP控制器932在執(zhí)行內存取得命令時,會去數(shù)據(jù)存儲器找一塊閑置的使用者頁給DSP920做為工作空間,同時將此使用者頁的狀態(tài)設成忙碌(busy);反之,在執(zhí)行內存釋放命令時,則會將DSP920所要釋放的使用者頁設為閑置;在收到工作解鎖命令時,DSP控制器932會將執(zhí)行緒的狀態(tài)由上鎖(lock)改成解鎖(unlock),代表該執(zhí)行緒可以再度被工作控制器933檢查是否能夠分派給DSP920的執(zhí)行單元運算;此外,在收到執(zhí)行單元終止命令時,DSP控制器932會將執(zhí)行單元的執(zhí)行單元起始信號設成0,也就是停止該執(zhí)行單元的指令計數(shù)器的累加,并同時傳送一個執(zhí)行單元閑置命令告知工作控制器933有閑置的執(zhí)行單元可再被排程工作。最后,當傳送給MPU控制器931或工作控制器933的命令處理完畢后,也會有命令回來通知完成處理。圖lO(c)則為工作控制器933的狀態(tài)機1130,其包括接收來自DSP控制器932的三個命令,分別為(l)執(zhí)行單元閑置命令,(2)解序列命令及(3)制序閑置命令時,工作控制器會去讀取最高優(yōu)先權的執(zhí)行緒的TCB數(shù)據(jù),并確認是否有尚未處理的數(shù)據(jù)。如果有的話,就將該執(zhí)行緒的TCB數(shù)據(jù)寫到執(zhí)行緒分派表,并且發(fā)送執(zhí)行單元起始命令給DSP控制器932,以觸發(fā)DSP控制器932的執(zhí)行單元起始信號,此時執(zhí)行單元的指令計數(shù)器就會開始累加;反之,如果最高優(yōu)先權的執(zhí)行緒并無待處理的數(shù)據(jù),或是為上鎖(lock)狀態(tài)的話,則繼續(xù)找下一個優(yōu)先權的執(zhí)行緒,直到找到一個可排程的執(zhí)行緒或是全部的執(zhí)行緒都找過一次為止。此外,在收到解序列命令時,工作控制器933會將該執(zhí)行單元所運算的執(zhí)行緒的TCB數(shù)據(jù)中的結尾指針更新,也就是指到執(zhí)行緒的下一筆待處理數(shù)據(jù);而在收到制序列命令時,則是將此執(zhí)行緒的目標執(zhí)行緒的工作控制數(shù)據(jù)塊數(shù)據(jù)的標題指針更新,以指示目標執(zhí)行緒多增加一筆待處理數(shù)據(jù)。以下則藉由實驗來評估本案所提出的溝通界面的效能。圖12為依照本發(fā)明一實施范例所《會示的圖9溝通界面的孩i結構(micro-architecture)及車命出輸入腳位示意圖。請參照圖12,本實施范例的實驗包括連結MPU控制器1210、DSP控制器1220及工作控制器1230,以形成溝通界面1200,其括號中的數(shù)字代表信號寬度(bit-width),本實施范例的目的在于測試在雙核心處理器之間加入溝通界面后,MPU及DSP兩者溝通效能的提升狀況,本實施范例是直接以DSP的使用率(DSPutilization)來評估各種方法的效能。本實施范例是以安謀國際(A脂)公司的Versatile做為發(fā)展平臺進行實驗,利用板子上的MPU搭配一個配置了8個硬件執(zhí)行單元的DSP執(zhí)行工作,而這兩個處理器之間則是以先進微控制器總線結構(AdvancedMicrocontrollerBusArchitecture,AMBA)的總線連接。本實施范例是以多媒體應用中常見的JPEG圖像壓縮應用說明本發(fā)明的溝通界面如何幫助MPU及DSP進行溝通及動態(tài)工作管理。其中,包括將JPEG圖像壓縮分成色彩空間轉換(CST)、離散余弦變換(DCT)、量化(Q)及可變長度編碼(VLC)四個執(zhí)行緒。溝通界面會給予各個執(zhí)行緒一個單一且固定的優(yōu)先權,以作為工作排程的依據(jù)。以JPEG圖像壓縮為例,VLC具有最高優(yōu)先權,接著是Q、DCT,最后為CST。本實施范例包括三項實驗第一項實驗是將本發(fā)明的溝通界面的功能利用MPU以軟件的方式完成,也就是說所有動態(tài)工作管理都交由MPU來負責,DSP只會接收MPU的命令開始運算,并在結束后中斷MPU以告知完成工作。第二項實驗一樣是以軟件的方式實現(xiàn)動態(tài)工作管理,只是這次是用DSP中一個特定的執(zhí)行單元來進行動態(tài)工作管理,其余7個執(zhí)行單元則用于一般的運算。第三項實驗則是利用額外配置的硬件來實現(xiàn)本發(fā)明的溝通界面。初步的實驗指出,在第一項實驗中,DSP的使用率(DSP真正執(zhí)行有效指令的周期(cycle)數(shù)/全部JPEG的執(zhí)行周期數(shù))大約有55.5°/。,第二項實驗則提高到66.7%,而本發(fā)明所提出的溝通界面則可將DSP的使用率提高至93.4%。綜上所述,本發(fā)明的具有動態(tài)工作管理能力的多處理器界面除了可以協(xié)調MPU/DSP,提升溝通效能外,更具有動態(tài)工作管理的能力。加上客制化的設計,可以最少的硬件資源完成一般使用龐大厚重的操作系統(tǒng)搭配數(shù)字信號處理器所完成的軟件抽象層次,并且提供MPU跟原本相同的界面,程序開發(fā)者無需再花費相當?shù)呐υ谛薷脑疽验_發(fā)的應用程序上。而初步的實驗顯示,本發(fā)明的溝通界面可以幫助雙核心處理器中DSP的使用率提高將近達93.4%,而所花的硬件代價(siliconarea)則只有DSP面積的1.56%。雖然本發(fā)明已以較佳實施范例揭露如上,然其并非用以限定本發(fā)明,任何熟習此技藝者,在不脫離本發(fā)明的精神和范圍內,當可作些許的更動與潤飾,因此本發(fā)明的保護范圍當視本發(fā)明的申請專利范圍所界定者為準。權利要求1.一種具有動態(tài)工作管理能力的多處理器界面的程序載卸方法,包含利用配置在一第一處理器與一第二處理器間的一溝通界面,用以動態(tài)管理該第一處理器指派該第二處理器處理的一工作,該方法包括下列步驟接收該第一處理器指派該第二處理器處理的該工作;分解該工作為至少一個執(zhí)行緒;依照所述執(zhí)行緒的一優(yōu)先權排序所述執(zhí)行緒,并記錄于一工作序列,其中,該工作序列包括記錄各所述執(zhí)行緒執(zhí)行所需的一工作控制數(shù)據(jù)塊數(shù)據(jù);搜尋該第二處理器閑置的一執(zhí)行單元;排定該工作的所述執(zhí)行緒其中之一給該執(zhí)行單元;啟動該執(zhí)行單元以執(zhí)行該執(zhí)行緒;以及重復上述步驟,以排定該工作的其它執(zhí)行緒給該第二處理器中閑置的其它執(zhí)行單元執(zhí)行,直到該工作的所有執(zhí)行緒均執(zhí)行完畢為止。2.如權利要求1所述的具有動態(tài)工作管理能力的多處理器界面的程序載卸方法,其中,搜尋該第二處理器中閑置的該執(zhí)行單元的步驟包括讀取一執(zhí)行緒分派表,以查看目前該第二處理器中各所述執(zhí)行單元的一工作狀態(tài),而找出該工作狀態(tài)為閑置狀態(tài)的該執(zhí)行單元。3.如權利要求2所述的具有動態(tài)工作管理能力的多處理器界面的程序載卸方法,其中,該執(zhí)行緒分派表包括記錄該第二處理器中各所述執(zhí)行單元的該工作狀態(tài),以及各所述執(zhí)行單元執(zhí)行該執(zhí)行緒所需的該工作控制數(shù)據(jù)塊數(shù)據(jù)的地址。4.如權利要求1所述的具有動態(tài)工作管理能力的多處理器界面的程序栽卸方法,其中,排定該執(zhí)行緒給該執(zhí)行單元的步驟包括讀取該工作序列,找尋目前未處理且排序在前的該^J亍緒,而排定該執(zhí)行緒給該執(zhí)行單元。5.如權利要求4所述的具有動態(tài)工作管理能力的多處理器界面的程序載卸方法,其中,排定該執(zhí)行緒給該執(zhí)行單元的步驟還包括記錄執(zhí)行該執(zhí)行緒所需的該工作控制數(shù)據(jù)塊數(shù)據(jù)的地址于該執(zhí)行緒分派表。6.如權利要求1所述的具有動態(tài)工作管理能力的多處理器界面的程序載卸方法,其中,啟動該執(zhí)行單元以執(zhí)行該執(zhí)行緒的步驟包括觸發(fā)對應于該執(zhí)行單元的一執(zhí)行單元起始信號;以及該執(zhí)行單元開始依序累加一指令計數(shù)器,以開始執(zhí)行該執(zhí)行緒。7.如權利要求6所述的具有動態(tài)工作管理能力的多處理器界面的程序載卸方法,其中,該執(zhí)行單元執(zhí)行該執(zhí)行緒的步驟包括該執(zhí)行單元要求該溝通界面提供一工作空間;執(zhí)行該執(zhí)行緒,并將該執(zhí)行緒運算完成的數(shù)據(jù)存放至該工作空間;釋放存放該執(zhí)行緒運算所需數(shù)據(jù)的該工作空間。8.如權利要求7所述的具有動態(tài)工作管理能力的多處理器界面的程序載卸方法,其中,在該執(zhí)行單元要求該溝通界面提供該工作空間的步驟中,若該溝通界面沒有空閑的該工作空間,則結束該執(zhí)行緒的執(zhí)行動作。9.如權利要求7所述的具有動態(tài)工作管理能力的多處理器界面的程序載卸方法,其中在該執(zhí)行單元要求該溝通界面提供該工作空間的步驟之后,更包括指示該溝通界面更新該工作序列,以指向下一筆待處理的數(shù)據(jù);以及在該執(zhí)行緒執(zhí)行完成時,指示該溝通界面更新該工作序列,以指示該執(zhí)行緒的一目標執(zhí)行緒又增加一可處理數(shù)據(jù),該可處理數(shù)據(jù)為該執(zhí)行緒處理完成的數(shù)據(jù)。10.如權利要求7所述的具有動態(tài)工作管理能力的多處理器界面的程序載卸方法,其中,在該執(zhí)行單元要求該溝通界面提供該工作空間的步驟之后,更包括解鎖該執(zhí)行緒,以繼續(xù)分配該執(zhí)行緒給該第二處理器中閑置的該執(zhí)行單元執(zhí)行。11.如權利要求1所述的具有動態(tài)工作管理能力的多處理器界面的程序載卸方法,其中,工作控制數(shù)據(jù)塊數(shù)據(jù)包括記錄各所述執(zhí)行緒的種類、目標、標題指標、結尾指針及程序地址。12.如權利要求1所述的具有動態(tài)工作管理能力的多處理器界面的程序載卸方法,其中,該第一處理器包括微處理器單元,而該第二處理器包括數(shù)字信號處理器。13.—種具有動態(tài)工作管理能力的多處理器界面,配置在一第一處理器與一第二處理器之間,包括一第一處理器控制器,耦接至該第一處理器,用以接收該第一處理器的命令,而接收該第一處理器指派給該第二處理器處理的一工作;一第二處理器控制器,耦接至該第一處理器控制器及該第二處理器,用以接收該第二處理器的命令,而搜尋該第二處理器中閑置的一執(zhí)行單元;以及一工作控制器,耦接至該第二處理器控制器,用以接收該第二處理器控制器的命令,而排定該工作的多個執(zhí)行緒其中之一給該執(zhí)行單元,并命令該第二處理器控制器啟動該執(zhí)行單元以執(zhí)行該執(zhí)行緒。14.如權利要求13所述的具有動態(tài)工作管理能力的多處理器界面,還包括兩個輸入緩沖器,用以接收并存儲該第一處理器輸入的數(shù)據(jù),而提供給該第二處理器運算;兩個輸出緩沖器,用以接收并存儲該第二處理器運算后的數(shù)據(jù),而提供給該第一處理器;以及一狀態(tài)寄存器,用以指示所述輸入緩沖器及所述輸出緩沖器的狀態(tài)。15.如權利要求14所述的具有動態(tài)工作管理能力的多處理器界面,其中,該第一處理器控制器包括接收代表該第一處理器已將數(shù)據(jù)搬進該輸入緩沖器的一第一數(shù)據(jù)搬入命令,以更新該狀態(tài)寄存器,而指示已搬入數(shù)據(jù)的該輸入緩沖器的狀態(tài)為滿載,并指示該第一處理器下次將數(shù)據(jù)搬進另一個輸入緩沖器;以及接收代表該第一處理器已將數(shù)據(jù)從該輸出緩沖器取出的一第一數(shù)據(jù)取出命令,以更新該狀態(tài)寄存器,而指示已取出數(shù)據(jù)的該輸出緩沖器的狀態(tài)為空,并指示該第一處理器下次從另一個輸出緩沖器取出數(shù)據(jù)。16.如權利要求14所述的具有動態(tài)工作管理能力的多處理器界面,其中,該第二處理器控制器包括接收代表該第二處理器已將數(shù)據(jù)從該輸入緩沖器取出的一第二數(shù)據(jù)取出命令,以及代表該第二處理器已將數(shù)據(jù)搬進該輸出緩沖器的一第二數(shù)據(jù)搬入命令;以及傳送該第二數(shù)據(jù)取出命令及該第二數(shù)據(jù)搬入命令給該第一處理器控制器執(zhí)行。17.如權利要求16所述的具有動態(tài)工作管理能力的多處理器界面,其中,該第一處理器控制器包括接收該第二數(shù)據(jù)取出命令,以更新該狀態(tài)寄存器,而指示該第二處理器下次從另一個輸入緩沖器取出數(shù)據(jù),并指示已取出數(shù)據(jù)的該輸入緩沖器的狀態(tài)為空;以及接收該第二數(shù)據(jù)搬入命令,以更新該狀態(tài)寄存器,而指示該第二處理器下次將數(shù)據(jù)搬進另一個輸出緩沖器,并指示已搬入數(shù)據(jù)的該輸出緩沖器的狀態(tài)為滿載。18.如權利要求13所述的具有動態(tài)工作管理能力的多處理器界面,其中,該第二處理器控制器包括接收一內存取得命令,以找尋一工作空間來存儲該執(zhí)行緒運算完成的數(shù)據(jù);以及'接收一內存釋放命令,以釋放用以存儲該執(zhí)行緒運算所需數(shù)據(jù)的該工作空間。19.如權利要求13所述的具有動態(tài)工作管理能力的多處理器界面,其中,該第二處理器控制器包括接收一工作解鎖命令,以解鎖該執(zhí)行緒的狀態(tài),而提供給該工作控制器檢查是否能夠分派給該第二處理器運算。20.如權利要求13所述的具有動態(tài)工作管理能力的多處理器界面,其中,該第二處理器控制器包括接收一執(zhí)行單元終止命令,以設置該第二處理器中對應的該執(zhí)行單元的一執(zhí)行單元起始信號,而停止該執(zhí)行單元累加一指令計數(shù)器;以及傳送一執(zhí)行單元閑置命令給該工作控制器,以告知該工作控制器有閑置的該執(zhí)行單元可再被排程工作。21.如權利要求20所述的具有動態(tài)工作管理能力的多處理器界面,其中,該工作控制器在接收到該執(zhí)行單元閑置命令時,包括讀取一工作序列,以找尋目前未處理且排序在前的該執(zhí)行緒,而將該執(zhí)行緒的一工作控制數(shù)據(jù)塊數(shù)據(jù)的地址寫入一執(zhí)行緒分派表,其中,該工作序列包括記錄各所述執(zhí)行緒執(zhí)行所需的該工作控制數(shù)據(jù)塊數(shù)據(jù);以及傳送一執(zhí)行單元起始命令給該第二處理器控制器,以觸發(fā)該第二處理器的該執(zhí)行單元起始信號,而控制該第二處理器的該執(zhí)行單元開始累加該指令計數(shù)器,以執(zhí)行該執(zhí)行緒。22.如權利要求21所述的具有動態(tài)工作管理能力的多處理器界面,其中,該工作控制器包括接收一解序列命令,以更新該工作序列中該執(zhí)行緒的該工作控制數(shù)據(jù)塊數(shù)據(jù)的一結尾指針,以指到該執(zhí)行緒的下一筆待處理的數(shù)據(jù);以及接收一制序列命令,以更新該執(zhí)行緒的一目標執(zhí)行緒的該工作控制數(shù)據(jù)塊數(shù)據(jù)的一標題指針,以指示該目標執(zhí)行緒又增加一可處理數(shù)據(jù),該可處理數(shù)據(jù)為該執(zhí)行緒處理完成的數(shù)據(jù)。23.如權利要求13所述的具有動態(tài)工作管理能力的多處理器界面,其中,該第一處理器包括微處理器單元,而該第二處理器包括數(shù)字信號處理器。全文摘要一種具有動態(tài)工作管理能力的多處理器界面及程序載卸方法,此方法適于利用配置于微處理器單元(MicroProcessorUnit,MPU)與數(shù)字信號處理器(DigitalSignalProcessor,DSP)間的溝通界面,動態(tài)管理微處理器單元指派給數(shù)字信號處理器處理的工作。首先,搜尋數(shù)字信號處理器中閑置的執(zhí)行單元,接著將上述工作的多個執(zhí)行緒其中之一排定給此執(zhí)行單元,最后則將此執(zhí)行單元啟動以執(zhí)行執(zhí)行緒。據(jù)此,可在節(jié)省硬件代價的情況下,有效提升多核心處理器的溝通效能。文檔編號G06F9/50GK101499020SQ200810003239公開日2009年8月5日申請日期2008年1月28日優(yōu)先權日2008年1月28日發(fā)明者劉志尉,朱元華,林泰吉,歐士豪,謝天威,鄧翔升申請人:財團法人工業(yè)技術研究院
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1