當前位置:首頁 > 電源 > 數(shù)字電源
[導讀]本文以DM270平臺為基礎,設計了DSP端的數(shù)據(jù)流核心和ARM端的DSP管理者。與傳統(tǒng)的、基于時間片的多進程系統(tǒng)核心相比,數(shù)據(jù)流核心的進程是靠數(shù)據(jù)驅(qū)動的方式工作的。它能有效地減少進程的切換.節(jié)約系統(tǒng)資源,使DSP可以更加專注于多媒體數(shù)據(jù)的處理。

異質(zhì)多處理器系統(tǒng)(Heterogeneous Multiprocessor)是將兩種以上不同工作性質(zhì)的處理器核心整合為一的處理器系統(tǒng)。它通常包含了一般用途處理器(General Purpose Processor)和特殊用途處理器(Specific Purpose Processor)。隨著片上系統(tǒng)SoC(System on Chip)及相關技術的成熟,已經(jīng)可以將不同的處理器整合到一個芯片里,成為多處理器芯片。以多媒體應用為例,比較著名的異質(zhì)多處理芯片有德州儀器公司的TMS320DSC25、TMS320DM270和TMS320DM320。這些芯片都是由ARM微核心和DSP微核心組成。傳統(tǒng)的多處理器系統(tǒng)架構(如Intel SMP架構)是由多個處理芯片通過外部總線匯接而成,而多處理器片上系統(tǒng)架構是在單一芯片上包含了多個處理器核心。它能減少系統(tǒng)的功耗并使整個系統(tǒng)發(fā)揮最大的運算效能。 
1 硬件平臺

本設計采用的硬件平臺是德州儀器公司的TMS320DM270,它由兩個微處理器核心ARM7TDMI和TMS320C5409組成。采用主從式架構,前者為主動端,后者為被動端。ARM7TDMI是32位的一般用途處理器,負責DM270系統(tǒng)的整體運作和所有周邊設備的控制。TMS320C5409為16位的數(shù)字信號處理器,主要負責多媒體信號處理.如音視頻的編解碼運算等。ARM可以經(jīng)由DSP控制器重置或喚醒,還可對DSP發(fā)出不可屏蔽式的中斷(Non-Masked Interrupt)。

雙處理器之間必須有良好的通信和數(shù)據(jù)交換機制.才能使系統(tǒng)在多進程環(huán)境下有效合作。在DM270中,ARM端的DSP控制器控制數(shù)據(jù)傳輸,DSP端通過HPI[3](Host Post Interface)與ARM處理器溝通。兩個微處理器使用HPIB(Host Port Interfaee Bridge)相互連接。ARM和DSP可向?qū)Ψ桨l(fā)出硬件中斷,同時它們之間存在一段共享存儲區(qū)。通過共享存儲區(qū)映射機制和中斷的搭配,雙方可以傳輸信息和數(shù)據(jù),并且可以在共享存儲區(qū)存取雙方共同定義的指令,使兩端根據(jù)指令進行對應的動作。

2 ARM端的DSP管理者

為配合DSP的工作,在ARM端微核心(Micro Kernel)中設計了一個伺服進程,它負責ARM與DSP的溝通及協(xié)調(diào)運行。該進程稱為DSP管理者(DSP Manager),如圖1所示。

DSP管理者的架構圖

ARM端的進程并不知道DSP處理器的存在,只知道DSP管理者在運行。當ARM端的進程需要使用DSP進程所提供的數(shù)據(jù)處理服務時,只需向DSP管理者提出請求。DSP端的進程也不知道ARM處理器的存在,DSP管理者把ARM端的請求存放在共享存儲區(qū),由DSP的數(shù)據(jù)流核心讀取這些請求,并交給相應的DSP進程。當請求被DSP進程接收后,DSP管理者還要負責把提出請求的ARM端進程的數(shù)據(jù)存放在共享存儲區(qū),以便DSP端進程的讀取和處理。因此ARM與DSP溝通的效能取決于DSP管理者的執(zhí)行效能。

DSP管理者接收ARM端進程的數(shù)據(jù)處理請求。請求信息應該包括提出請求的ARM端進程的ID、DSP端服務進程的ID、數(shù)據(jù)處理服務類型的lD以及相關參數(shù)。同時DSP管理者把這些請求信息打包封裝為DSP端系統(tǒng)能識別的內(nèi)容格式,再通過共享存儲區(qū)交給DSP端的數(shù)據(jù)流核心。

由于真正維持系統(tǒng)運作的是ARM端系統(tǒng),DSP只是附屬的處理系統(tǒng),所以ARM端的DSP管理者可以在系統(tǒng)正常工作的情況下更換DSP系統(tǒng),以支持不同的DSP應用。

3 DSP端的數(shù)據(jù)流核心

DSP端的系統(tǒng)采用數(shù)據(jù)流核心(Dataflow Kernel)架構。傳統(tǒng)系統(tǒng)核心架構中的進程切換由Timer Tick決定,但數(shù)據(jù)流核心中的進程卻不受Timer Tick的影響,它們以數(shù)據(jù)驅(qū)動(Data Driven)的方式工作。

在DSP端的核心運行著多個不同類型的數(shù)據(jù)處理服務進程,這些進程在DSP啟動時都被設為阻塞態(tài)(Sleep)。因為此時沒有任何數(shù)據(jù)可以用來驅(qū)動DSP服務進程的執(zhí)行。當ARM端開始傳送數(shù)據(jù)處理請求到DSP端時,數(shù)據(jù)流核心會根據(jù)這些請求找到對應的DSP服務進程,并使其進入執(zhí)行態(tài)(Busy)。當該服務進程的數(shù)據(jù)處理任務完成后,其返回結果可能是新的數(shù)據(jù)處理請求,該請求同樣也可以進入數(shù)據(jù)流核心。驅(qū)動其他服務進程的執(zhí)行。所以整個核心的運行是根據(jù)數(shù)據(jù)流(ARM端的數(shù)據(jù)和DSP進程自己產(chǎn)生的數(shù)據(jù))的動向決定的。與基于Timer Tick的傳統(tǒng)系統(tǒng)核心相比,只要某一服務進程不斷地接收數(shù)據(jù)處理請求,并且所需的數(shù)據(jù)不斷到達,該進程就可以一直擁有CPU的使用權,而無須進行時間片方式的進程切換,從而減少了系統(tǒng)資源的浪費,提高了DSP的處理效能。

DSP端的進程有執(zhí)行和阻塞兩種狀態(tài)。進程的狀態(tài)轉(zhuǎn)移如圖2所示。當CPU使用權切換給某個進程時,該進程的狀態(tài)將被核心設定為Busy并開始處理數(shù)據(jù)。當數(shù)據(jù)處理完后,數(shù)據(jù)流核心從數(shù)據(jù)請求隊列DRQ(Data Request Queue)中取出下一個請求。如果請求信息中指定的DSP服務進程與目前進程相同,則該進程的狀態(tài)依舊為Busy.否則核心便將目前進程的狀態(tài)設定為Sleep,同時開始進程切換,將請求信息中所指定的服務進程設定為Busy。

進程的狀態(tài)轉(zhuǎn)移圖 

3.1 進程隊列狀態(tài)寄存器

ARM端系統(tǒng)和DSP端系統(tǒng)在共享存儲區(qū)共同定義了16位的進程隊列狀態(tài)寄存器(Process Oueue Status Register),每一位代表DSP端一個進程的狀態(tài),所以DSP端最多有16個數(shù)據(jù)處理服務進程。若DSP端的數(shù)據(jù)流核心將寄存器的某一位設為O,則表示與該位對應的DSP進程有能力處理新的數(shù)據(jù)處理請求;若設為1,則表示與該位對應的DSP進程沒有能力處理新的請求。

DSP管理者通過查看該寄存器,可以知道DSP端的某些進程已不能接收新的數(shù)據(jù)處理請求,它就會使ARM端的相關進程停止向這些DSP進程發(fā)出請求。這樣可以充

分利用DSP的資源,降低DSP端的系統(tǒng)負擔。

3.2 數(shù)據(jù)流核心的進程調(diào)度策略

核心中的進程調(diào)度策略是根據(jù)數(shù)據(jù)流架構上進程運行狀態(tài)變化的規(guī)律設計的。其工作方式是將ARM端對DSP端的數(shù)據(jù)處理請求利用環(huán)行隊列(Circular Queue)的架構以FIFO的方式排序,并存入DRQ中。該策略的特點是DSP端的每一個進程都預先指定最多可以擁有DRQ空間的數(shù)目,等級越高的進程擁有DRQ使用空間就越多,證明其可以處理更多的數(shù)據(jù)請求。該策略將傳統(tǒng)系統(tǒng)核心中進程優(yōu)先級(Priority)的概念轉(zhuǎn)化為進程可以處理數(shù)據(jù)請求的多少。進程等級越高,能處理的數(shù)據(jù)請求也越多,同時占用CPU的執(zhí)行時間也較長。LDE(Local Data Element)是DSP端每一個進程都有的參數(shù),它表示DSP進程在執(zhí)行過程中還可以接收多少個數(shù)據(jù)處理請求。LDE的初始值由系統(tǒng)定義。整個DRQ空問的大小由所有DSP進程的LDE預設最大值的總和決定。

當DSP端的數(shù)據(jù)流核心取得ARM端的數(shù)據(jù)處理請求時,根據(jù)請求我到指定的DSP端進程,把該進程的LDE減1,然后進行相應的數(shù)據(jù)處理。如果LDE被減至0,則DSP端數(shù)據(jù)流核心把該DSP進程在進程隊列狀態(tài)寄存器中所對應的狀態(tài)位設為1.以通知DSP管理者該進程不能再接收新的請求,分配給該進程的所有DRQ空間都已被使用。此后,隨著DRQ中的數(shù)據(jù)請求逐漸被處理,使得該進程的DRQ空問再出現(xiàn)剩余時,數(shù)據(jù)流核心會把進程隊列狀態(tài)寄存器中所對應的狀態(tài)位設為0,通知DSP管理者可以再次向該DSP進程發(fā)送數(shù)據(jù)處理請求。

如圖3所示,DRQ是環(huán)行隊列結構,存儲所有的請求信息。DRQ有兩個指針:Tail指向DRQ沒有被使用的空間;Head指向DRQ中將被處理的請求。LDE有三個元素EA、EB、EC,代表DSP的進程A、B、C分別可使用的DRQ個數(shù)。數(shù)據(jù)流核心接收請求RB后,調(diào)度算法將EB減1,并且通過Tail指針將請求RB加入DRQ中。當系統(tǒng)需要處理請求時,調(diào)度算法由Head指針取出請求并交由適當?shù)腄SP進程處理。

進程調(diào)度策略架構 

4 共享存儲區(qū)管理

本設計將DM270系統(tǒng)平臺中的一段32KB大小的存儲區(qū)作為ARM和DSP的共享存儲區(qū)。該存儲區(qū)由DSP管理者負責管理。由于TMS320C5409的存儲單位是字節(jié),所以規(guī)定它所訪問的共享存儲區(qū)地址為OxS000~0xBFFF;而ARM7TDMI的存儲單位是字,所以規(guī)定它能訪問的共享存儲區(qū)地址為0x50000~0x57FFF,共享存儲區(qū)分配如圖4所示。共享存儲區(qū)分為32個存儲塊,每塊大小為1024B。前兩個字節(jié)為共享存儲塊的狀態(tài)標志位,其值為0代表此存儲塊閑置,1代表此存儲塊已被使用。存儲塊中剩下的1022B用來存放數(shù)據(jù)。DSP管理者將所有ARM端需要DSP處理的數(shù)據(jù)都存儲到這32個存儲塊上。

共享存儲區(qū)分配

當32個存儲塊全部被使用或者數(shù)據(jù)處理請求中所指定的DSP進程的LDE為0時,DSP管理者向ARM端提出該請求的進程阻塞,防止因不斷地提出請求而造成系統(tǒng)資源的浪費。當所指定的DSP進程數(shù)據(jù)處理結束后,DSP端的數(shù)據(jù)流核心將該進程阻塞,并對DRQ空間和進程隊列狀態(tài)寄存器作相應調(diào)整,然后主動釋放該DSP進程使用的共享存儲塊,同時向ARM端發(fā)出中斷信號。DSP管理者接收到此中斷信號后,根據(jù)進程隊列狀態(tài)寄存器判斷出請求所指定的DSP進程已經(jīng)可以開始處理數(shù)據(jù)了,讓剛才在ARM端被阻塞的進程繼續(xù)運行.并把數(shù)據(jù)寫入共享存儲塊,以便DSP進程讀取和處理。當存在閑置的存儲塊并且數(shù)據(jù)處理請求所指定的DSP進程的LDE不為0時,DSP管理者可直接將ARM端進程的數(shù)據(jù)寫到共享存儲塊,以便相應的DSP進程讀取和處理。

5 DSP端系統(tǒng)的熱抽換

DSP系統(tǒng)的更換技術對多媒體應用而言非常重要。如果DSP端需要播放不同格式的影片,則必須把整個DSP端系統(tǒng)更換以支持不同格式的解碼器。因此在系統(tǒng)設計中使用了熱抽換技術。傳統(tǒng)熱抽換技術的定義是動態(tài)地把系統(tǒng)中的核心層部分更換,在不重新開機的情況下,進程還可以正常工作。而本設計的熱抽換是更換整個DSP端的系統(tǒng),同時維持ARM端進程的正常工作。為了實現(xiàn)熱抽換,必須在某段靜態(tài)存儲區(qū)存放多個版本的DSP系統(tǒng)程序。本設計中,這些程序被存放到DM270的Flash Memory中,ARM端的檔案系統(tǒng)負責維護和管理這部分內(nèi)容。

DSP系統(tǒng)的熱抽換過程如下:①DSP端要把那些由于沒有進行數(shù)據(jù)處理而陷入阻塞的DSP進程全部釋放,否則當DSP端系統(tǒng)更新后,這些進程會因為永遠不能再得到相應的數(shù)據(jù),而造成永久阻塞,形成系統(tǒng)資源浪費;②ARM端的DSP管理者會清空所有的共享存儲區(qū),同時阻塞ARM端的所有用戶進程;③ARM端的檔案系統(tǒng)將從Flash Memory中讀取所需的DS

P系統(tǒng)檔案并將它加載到DSP的內(nèi)存;④DSP端系統(tǒng)啟動,DSP管理者喚醒ARM端所有被阻塞的進程,為更新后的DSP系統(tǒng)服務。

ARM端的系統(tǒng)負責整個系統(tǒng)的正常運行,同時將數(shù)據(jù)處理請求和相關數(shù)據(jù)傳送給DSP,而不管這些數(shù)據(jù)如何被DSP使用;DSP端只負責數(shù)據(jù)的處理,而不管數(shù)據(jù)的來源和用途。這種架構關系保證了DSP系統(tǒng)的熱抽換是安全可靠的,不會破壞系統(tǒng)的正常運行。

本文以DM270平臺為基礎,設計了DSP端的數(shù)據(jù)流核心和ARM端的DSP管理者。與傳統(tǒng)的、基于時間片的多進程系統(tǒng)核心相比,數(shù)據(jù)流核心的進程是靠數(shù)據(jù)驅(qū)動的方式工作的。它能有效地減少進程的切換.節(jié)約系統(tǒng)資源,使DSP可以更加專注于多媒體數(shù)據(jù)的處理。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉