999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種DSP實時動態切換應用程序的方法

2015-12-06 06:11:12馬振國
計算機工程 2015年11期
關鍵詞:程序

劉 鵬,趙 備,2,馬振國

(1.浙江大學生物醫學工程與儀器科學學院,杭州310027;2.杭州電子科技大學計算機學院,杭州310027)

一種DSP實時動態切換應用程序的方法

劉 鵬1,趙 備1,2,馬振國1

(1.浙江大學生物醫學工程與儀器科學學院,杭州310027;2.杭州電子科技大學計算機學院,杭州310027)

集群實時多任務要求數字信號處理器(DSP)能夠實時動態切換應用程序。為此,在分析DSP自啟動方式的基礎上,使用大容量Nor Flash作為自啟動應用程序的緩存,提出一種在CAN總線網絡中可為多DSP系統實時動態切換應用程序的方法。實驗結果表明,有緩存機制的平均自啟動時間明顯小于無緩存機制,且在緩存命中的條件下可提高集群內DSP自啟動的實時性。

數字信號處理器;CAN總線;自啟動;實時;動態切換

1 概述

在以數字信號處理器(Digital Signal Processor,DSP)為計算節點的高性能嵌入式計算集群中,為提高系統的可靠性和復用能力,需DSP節點能夠實時切換不同的應用程序[1]。在實際的DSP應用系統中,需要將DSP系統的應用程序和引導加載程序(Bootloader)做成自啟動應用程序(簡稱為自啟動程序),并存儲到Nor Flash中,在系統上電或復位時通過Bootloader程序將Flash中的應用程序拷貝到DSP的高速存儲器中去執行,完成系統的自啟動并運行應用程序。對于DSP系統來說,切換應用程序本質是在DSP復位時選擇不同的自啟動程序,即實現DSP的動態加載自啟動程序。

當前關于DSP實現動態加載的方法主要有2類:(1)從主機啟動(HPI)方式動態加載運行程序[2-3];(2)通過串口、CAN等總線在線擦除和燒寫DSP自啟動程序到Nor Flash中然后復位自啟動[4-5]。前者需要專門的上位機和HPI連線,增加了DSP集群外圍的復雜性,后者需要燒寫Nor Flash,而Nor Flash特性是讀快寫慢,且兩者在每次動態加載應用程序時都需要從外部拷貝應用程序到本地,存在數據傳輸的時間延遲,不適合實時性要求較高的環境。

本文在分析了DSP自啟動原理和CAN總線網絡結構的基礎上,結合Nor Flash容量遠遠大于DSP自啟動應用程序規模的狀況,提出了用DSP節點的Nor Flash作為對CAN總線網絡中所有自啟動程序在本地的緩存空間的方法,并設計與之相適應的NorFlash換頁和緩存機制,以及CAN總線網絡應用層協議。

2 DSP自啟動

2.1 空間映射

本文選用TMS320C6701 DSP進行說明,其他型號DSP大同小異。該DSP是TI公司推出的高性能通用32位浮點數字處理器,有32位地址總線,總的存儲器尋址空間為4 GB,對應有2種映射模式,即map0和map1,片上集成32位外部存儲器接口(Extended M emory Interface,EM IF),將片外存儲器空間和片上外設存儲器空間分成4個時序可編程的空間,即CE0,CE1,CE2,CE3[6]。本文設計中將CE0映射到16 MB SDRAM空間,CE1映射到4 MB Flash空間,CE2映射到FPGA的地址空間,CE3保留不做映射。本文選用map1內存映射模式,小端模式,通過EM IF從32 bit Flash自啟動,根據相應規格手冊[7],將BOOTMODE[4:0]設置為11101。整個內存空間映射如圖1所示。

圖1 DSP內存空間映射

2.2 自啟動流程

通常DSP提供了3種BOOT工作方式:非啟動方式,從ROM啟動方式,從主機啟動方式[7]。本文采用從ROM啟動方式,即從Nor Flash啟動方式。當DSP上電或復位時,通過增強型直接內存存?。‥nhanced Directed Memory Access,EDMA)方式以Flash默認時序把CE1空間開始處的64 KB內容拷貝到DSP地址0開始處的64 KB空間,即片內數據存儲器IDRAM,這段內容中含有Bootloader引導加載程序,然后Bootloader拷貝加載Flash中的應用程序到相應的地址空間,之后跳轉到初始化C語言運行時環境的入口-c-init00處,完成初始化并運行應用程序,從而完成整個自啟動流程[7-8]。整個過程如圖2所示。

圖2 自啟動流程

3 方案設計

由圖1 DSP內存空間映射可知,CE1空間最大只能映射到4 MB Flash。自啟動程序存儲在CE1空間中。若運行其他自啟動程序也需要將其映射到CE1空間,所以本文設計了CE1動態映射機制,即Flash分頁方法。每個DSP節點本身原有一份自啟動程序,若將其他DSP節點的自啟動程序緩存到本地Flash其他區間并進行管理,需要研究自啟動程序的緩存策略以及定義CAN網絡應用層協議。

3.1 Flash分頁和分區

本文Flash選用2片256 M bit容量的Nor Flash,組成64 MB Flash。需要注意的是,該DSP的EM IF總線對于CE1空間,在寫操作時默認將地址右移2位,所以每次寫都至少需要寫4個字節[7]。

CE1空間是4 MB,本文將一個4 MB稱為頁,64 MB的Flash可以分為64/4=16頁,需要FPGA提供額外的4個引腳作為頁選線,即FLASH-PAGE[3:0][9-10]。每個4 MB的頁,可以存儲一份DSP自啟動程序。DSP EM IF、FPGA、Flash連接圖如圖3所示。

圖3 DSP EM IF,FPGA,Flash連接圖

圖3 中IO[57:54]即為Flash-PAGE[3:0],通過這4根頁選線,就可實現DSP CE1中Flash空間的動態翻頁。選好某一頁后,給復位線一個復位脈沖,DSP復位自啟動,從復位前已經選好的Flash頁空間中讀取自啟動程序,從而實現應用程序的實時切換。

當需要的自啟動程序不在本地Flash時,需要從CAN網絡中載入相應的自啟動程序。為了區分DSP中原有的自啟動程序和從CAN網絡中載入的自啟動程序,將Flash中的程序空間劃分為:系統區,用戶區和記錄區。

如圖4所示,系統區為Flash的第0頁,即Flash -PAGE[3:0]全為0,存儲通過Flash Burn工具燒寫的自啟動程序。用戶區為Flash的除第0頁和最后一頁外的其他所有頁,存儲通過CAN網絡載入到本地的自啟動程序。為了記錄Flash用戶區有哪些自啟動程序,需要對CAN網絡中自啟動程序進行編號并將Flash中所有自啟動程序的編號存儲到Flash的最后一頁,即Flash-PAGE[3:0]都為1,最后1頁稱為記錄區。本文采用自然數對自啟動程序進行編號,使用Bootloader所在的64 KB空間的最后一個字節來存儲編號,這樣可以標識28=256種自啟動程序。使用Flash Burn工具給每片DSP的Flash系統區燒寫自啟動程序時,需要在Flash的第0頁的第64 K個字節燒寫入該自啟動程序的編號。

圖4 Flash分區

3.2 自啟動程序的緩存策略

本文DSP Flash用戶空間可以存儲14種自啟動程序,空間占滿后,當要啟動第15種自啟動程序時,需要從CAN網絡中載入該程序,這樣會覆蓋某個自啟動程序。為保證應用程序切換的實時性,需要設計相應的Flash用戶區中自啟動程序的緩存策略。

DSP Flash用戶區的自啟動程序相當于該DSP所在的CAN網絡空間中自啟動程序(即所有其他DSP模塊的自啟動程序)在本地的緩存,該結構可類比于PC機中內存是磁盤的緩存。因此,緩存策略和PC機的相似,主要有FIFO程序置換算法、最優程序置換算法、LRU程序置換算法、基于計數的置換算法等[11-12]。其中簡單有效的是FIFO程序置換算法和LRU程序置換算法。一般的PC機內存緩沖策略都選用LRU算法[11]。與PC機模型不同的是,嵌入式系統為了提高實時性,需要減少對Flash的擦寫次數,而LRU算法不論是否從CAN網絡中調入自啟動程序,都需要擦寫Flash記錄區的內容,且一般應用場景下CAN總線網絡規模不是很大,自啟動程序種類不是很多,緩存命中率也比較高,所以本文選用擦寫Flash次數相對比較少的FIFO程序置換算法。

FIFO程序置換算法的本質是,為每個自啟動程序記錄下載到Flash用戶區的時間,每當需要置換某個程序時,選擇已有的最舊的程序。該算法需要在Flash記錄區維護一個FIFO隊列來管理Flash用戶區中所有自啟動程序編號,當需要的自啟動程序直接在Flash中命中時,Flash記錄區不需要任何擦寫,否則需要從CAN網絡中載入需要的自啟動程序以及擦寫Flash記錄區內容。整個FIFO程序置換過程如圖5所示。

圖5 FIFO程序置換過程

3.3 CAN網絡應用層協議

由于CAN總線協議規范只定義了開放式通信系統互聯參考模型(Open System Interconnection Reference M odel,OSI/RM)中的物理層和數據鏈路層[13-15],本文方案需要自定義應用層的協議以實現DSP節點從CAN網絡調入自啟動程序。

DSP節點從CAN網絡中調入自啟動程序到本地Flash用戶區,主要分為2個過程:(1)本節點向CAN網絡中發送尋求某編號自啟動程序所在的DSP節點的can-id的廣播請求,并將得到的第一個請求的can-id作為遠端節點can-id;(2)本節點向遠端節點發送請求點對點傳輸該自啟動程序的命令,且遠端節點響應該請求。

CAN網絡需要實現廣播通信和點對點通信。為了實現點對點通信,必須有一個表示通信雙方身份信息的標識符,即can-id,對于每個數據幀的標識符,需要源節點can-id,目的節點can-id,還有請求應答表示位,大的數據會分成多幀,需要對每個數據幀添加序號[16-17]。CAN協議的標準幀只有11位標識符,不能滿足要求,本文采用擴展幀,有29位標識符。這29位標識符的分配如圖6所示。

圖6 29位標識符

節點can-id用8位表示,因為can協議規定每幀標識符的最高7位不能全為1,所以can-id的表示范圍為0~253。目的節點can-id可以是一個具體的節點can-id,也可以是廣播can-id。由于總線仲裁時,標識符越小擁有越高的優先級[9],因此本文選用can-id為0作為廣播can-id,以提高廣播的優先級?!敖Y束”位表示本幀是最后一個幀?!罢埱?應答”位區分請求幀和應答幀?!皫蛱枴北硎颈編诒敬伟l送中的順序?!白詥映绦蚓幪?Flash sector序號”在廣播數據幀中表示請求調入的自啟動程序的編號,在點對點數據幀中表示Flash sector序號?!按_認”位表示接收者向發送者發送確認消息。

本文選用一幀有8個字節。Flash的一個sector有128 KB,由于兩片Flash并在一起,因此是2個sector同時進行擦寫,共有256 KB,需要215個幀,作為一個序列。每一個請求要求目的節點發送一個序列,一個最大4 MB的自啟動程序,需要有16個請求,2 MB的自啟動程序,需要有8個請求。

為了使節點同時支持廣播通信和點對點通信,將CAN濾波器設置為雙濾波器。一個濾波器支持廣播通信,即接收廣播幀;一個濾波器支持點對點通信,使節點接收“目的節點can-id”與本節點can-id相匹配的幀[16-17]。

類似于互聯網中HTTP協議的請求/應答模型,在每個DSP的應用程序中加入一個守護任務,負責監聽CAN網絡中要求自己傳輸自啟動程序的請求。該任務設置較低的優先級,由DSP/BIOS scheduler負責調度,這樣的設置可以保證響應廣播請求的DSP節點沒有在執行繁重的任務,有較多CPU資源來執行接下來的點對點自啟動程序的傳輸任務。整個自啟動程序傳輸過程如圖7所示。

圖7 自啟動程序傳輸過程

4 方案驗證

由于DSP自啟動時,整個C語言環境沒有建立,因此不能直接寫測量時間的函數。

DSP自啟動時,主要時間消耗在從Flash中拷貝自啟動程序到IPRAM,IDRAM,SDRAM等空間。為簡化,假定自啟動程序都在2 MB大小。采用在DSP自啟動完成后,拷貝2 MB Flash內容到SDRAM來模擬自啟動所消耗的時間。實驗結果表明,平均消耗時間為0.2 s左右。通過自啟動點燈實驗,秒表記錄自啟動時間小于0.5 s。

從CAN網絡中載入自啟動程序的消耗時間主要分為從CAN網絡中傳輸自啟動程序的消耗時間和擦寫Flash空間的消耗時間。實驗中使用2個DSP模塊組成簡單的CAN網絡來測量相應的消耗時間。多次測量消耗時間的平均值在11 s,其中從CAN網絡中傳輸2 MB自啟動程序的總消耗時間平均在4 s左右,擦寫2 MB Flash的總消耗時間平均在7 s左右,擦寫128 KB,即1個sector,耗時約0.7 s。

根據以上得到的實驗測量數據,用符合正態分布的隨機數生成器來模擬實際應用中整個CAN網絡環境下的DSP節點動態切換應用程序的場景,并進行M atlab編程仿真。圖8是模擬有10種自啟動程序的CAN網絡中,當DSP節點有5頁緩存空間,即網絡中自啟動程序數目的一半時,隨機切換應用程序50次在本地未命中的分布。1代表未命中,需要從CAN網絡中載入自啟動程序,0代表命中,直接從本地自啟動,整個命中率接近70%。

圖8 緩存未命中分布

在有100種DSP自啟動程序的CAN網絡中,隨著DSP節點Flash用戶區緩存頁數的增加,LRU程序置換算法與FIFO程序置換算法相比,多消耗的時間百分比的模擬結果如圖9所示。

圖9 多消耗時間百分比的模擬結果

當Flash用戶區的頁數大于CAN網絡中自啟動程序種類數目的70%時,FIFO算法相較于LRU算法,對DSP自啟動實時性提高的百分比呈幾何級數增長;當Flash用戶區的頁數小于CAN網絡中自啟動程序種類數目的50%時,兩者相當;當Flash用戶空間的頁數比CAN網絡中自啟動程序種類的數目的一半稍多時,FIFO算法稍差于LRU算法,但差別不明顯。所以本文選擇了FIFO程序置換算法作為Flash用戶區的緩存算法。

在有100種DSP自啟動程序的CAN網絡中,選用FIFO緩存算法,隨著DSP節點Flash用戶區緩存頁數的增加,自啟動所需時間與沒有緩存機制的自啟動時間的百分比的模擬結果如圖10所示。當Flash頁數為CAN網絡中自啟動程序種類數目的50%時,均攤后的平均自啟動時間是沒有緩存機制的自啟動時間的35%左右??梢婋S著Flash用戶區緩存頁數的增加,DSP節點自啟動平均消耗時間下降,并基本呈線性下降關系,增加Flash用戶區頁數可以較顯著地提高DSP自啟動的實時性。

圖10 自啟動消耗時間隨緩存增加的變化結果

5 結束語

本文基于DSP的自啟動機制和大容量Nor Flash,設計了一種在CAN總線網絡中可供DSP實時切換應用程序的方法。實驗及仿真結果表明,增加Nor Flash容量和采用FIFO程序置換算法,可明顯提高集群內DSP自啟動的實時性。今后將結合FIFO算法和LRU算法,進一步優化自啟動程序緩存策略,使得不論緩存頁數目多少,緩存命中率都能達到最優。

[1] 杜金榜,鐘小鵬,王躍科.多DSP并行處理系統的設計與開發[J].計算機測量與控制,2006,14(5):658-660.

[2] 趙建波,胡文若,習 勇,等.基于ARM的TMS320C6455 DSP HPI的動態程序加載設計與實現[J].電子技術應用,2013,39(6):14-16.

[3] 黃 飛,喬純捷,王躍科,等.網絡互聯型多DSP并行處理系統設計[J].計算機工程,2007,33(23):230-242.

[4] 李聲飛,代華山.基于串口通信的DSP程序動態加載技術[J].電訊技術,2011,51(6):121-124.

[5] Liu Dan,W ang Baorui.Design of Shared Bus DSP Board in Vector Network Analyzer[J].Measurement Science and Instrumentation,2013,4(4):317-320.

[6] Texas Instruments Incorporated.TMS320C6000 DSP External Memory Interface(EM IF)Reference Guide(spru266e)[EB/OL].(2008-04-01).http://www.ti. com/lit/ug/spru266e/spru266e.pdf.

[7] Texas Instruments Incorporated.Creating a Second-Level Bootloader for FLASH Bootloading on TMS320C6000 Platform With Code Composer Studio(spra999a)[EB/OL].(2006-05-01).http://www.ti.com/lit/an/spra999a/spra 999a.pdf.

[8] 徐 菲,劉同懷,黃 魯.基于Flash的TMS320V C5416 DSP系統自舉實現[J].計算機工程與科學,2006,28(4):68-70.

[9] 廖亞風,王正勇,何小海.基于DM 642的FLASH多頁加載方法研究與實現[J].四川大學學報:自然科學版,2012,49(6):1269-1274.

[10] 李興友,游志勝.基于DM 642的大容量FLASH引導加載方法研究與實現[J].計算機應用,2005,25(8):1939-1941.

[11] Silberschatz A,Galvin P B,Gagne G.Operating System Concepts[M].[S.1.]:Johm Wiley&Sons,2005.

[12] Lee H,Bahn H,Shin K G.Page Repalcement for Writing References in NAND Flash Based Virtual Memory System s[J].Computing Science and Engineering,2014,8(3):157-172.

[13] 王邦繼,劉慶想,李相強,等.CAN總線應用層協議的研究與實現[J].計算機工程與應用,2011,47(20):14-16.

[14] 李曉靜,張侃諭.基于CAN總線的溫室群控系統設計與實現[J].計算機工程,2010,36(1):245-247.

[15] Guan Xiaochun,Wu Guichu,Chen Xiaojing.Design of Multi-DSP Communication System Based on CAN Bus[C]//Procedings of International Conference on Electrical and Control Engineering.Wuhan,China:[s.n.],2010:762-766.

[16] 董 珂,李克強,馮能蓮,等.CAN總線技術及其在混合動力電動車上的應用[J].清華大學學報:自然科學版,2003,43(8):1130-1133.

[17] 李源鴻,敖振浪.CAN總線實現點對點通信和群組廣播的方法[J].廣東氣象,2002(4):28-29.

編輯 索書志

A Method for DSP Real-time Dynamically Switching Application Program s

LIU Peng1,ZHAO Bei1,2,MA Zhenguo1
(1.School of Biomedical Engineering&Instrument Science,Zhejiang University,Hangzhou 310027,China;2.School of Computing,Hangzhou Dianzi University,Hangzhou 310027,China)

In order to meet the requirements of real-time multiple tasks,Digital Signal Processor(DSP)should have the ability to switch applications dynamically in real time.Based on the analysis of the boot mode of DSP,and using large volume Nor Flash as caches of self-boot applications,this paper gives a solution of timely switch applications for multi-DSP system that employs CAN as control bus.Experimental result shows that the average boot time with cache is much less than that without cache,and under the condition of cache hit,applications can be switched in real time using this solution.

Digital Signal Processor(DSP);CAN bus;boot;real-time;dynamic switch

劉 鵬,趙 備,馬振國.一種DSP實時動態切換應用程序的方法[J].計算機工程,2015,41(11):84-88.

英文引用格式:Liu Peng,Zhao Bei,Ma Zhenguo.A Method for DSP Real-time Dynamically Switching Application Program s[J].Computer Engineering,2015,41(11):84-88.

1000-3428(2015)11-0084-05

A

TP399

10.3969/j.issn.1000-3428.2015.11.015

浙江省自然科學基金資助項目(Y1101336)。

劉 鵬(1990-),男,碩士研究生,主研方向:嵌入式計算,數字信號處理;趙 備、馬振國,博士。

2014-11-24

2014-12-18 E-m ail:dp90219@gmail.com

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 最新日本中文字幕| 一级黄色片网| 国产精品亚洲专区一区| 99在线免费播放| 自慰网址在线观看| 婷婷伊人久久| 久久夜夜视频| 在线观看国产精品一区| 91久久偷偷做嫩草影院| 啪啪永久免费av| 亚洲全网成人资源在线观看| 免费无码又爽又黄又刺激网站| 久久香蕉国产线看精品| 九九久久99精品| 亚洲国产理论片在线播放| 国产精品男人的天堂| 无码中字出轨中文人妻中文中| 国产嫖妓91东北老熟女久久一| 亚洲人成网线在线播放va| 草草线在成年免费视频2| 免费看一级毛片波多结衣| 色悠久久综合| 亚洲成a人在线观看| 国产欧美日韩18| 国产女人在线观看| 美女免费精品高清毛片在线视| 香蕉视频在线观看www| 国产极品美女在线观看| 制服丝袜一区二区三区在线| 国产美女无遮挡免费视频| 一边摸一边做爽的视频17国产| 日本亚洲成高清一区二区三区| 日韩国产亚洲一区二区在线观看| 欧美怡红院视频一区二区三区| 日韩精品亚洲一区中文字幕| 中文字幕欧美成人免费| 91色老久久精品偷偷蜜臀| 天天做天天爱天天爽综合区| 97在线免费| 成人毛片免费观看| 视频一区视频二区日韩专区| 亚洲青涩在线| 免费国产不卡午夜福在线观看| 日韩无码精品人妻| 欧美不卡在线视频| 呦视频在线一区二区三区| 永久免费无码日韩视频| 十八禁美女裸体网站| 午夜日本永久乱码免费播放片| 乱人伦视频中文字幕在线| 亚洲成在人线av品善网好看| 青青青视频蜜桃一区二区| 伊人色婷婷| 欧美日韩在线亚洲国产人| 亚洲午夜18| 成人国产精品2021| 高清免费毛片| 毛片久久网站小视频| 国产成人综合欧美精品久久| 亚洲bt欧美bt精品| 精品亚洲麻豆1区2区3区| 欧洲一区二区三区无码| 久草视频一区| 亚洲天堂日本| 东京热一区二区三区无码视频| 亚洲天堂自拍| 99久久亚洲综合精品TS| 久久福利片| 麻豆精品视频在线原创| 综合色亚洲| 国内精品小视频福利网址| 国产在线自乱拍播放| 制服丝袜无码每日更新| 欧美成人免费一区在线播放| 国产成人一区免费观看| 99视频在线免费| 免费不卡视频| a级毛片一区二区免费视频| 日本不卡视频在线| 欧美天天干| 国产精品亚洲片在线va| 国产91透明丝袜美腿在线|