国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

多DSP的以太網并行系統(tǒng)任務下載技術研究

2012-09-11 10:17:06楊彥鑫
微處理機 2012年6期
關鍵詞:子塊存儲器以太網

楊彥鑫,黎 英

(1.云南大學信息學院,昆明 650091;2.云南農業(yè)大學工程技術學院,昆明 650201;3.昆明理工大學信息工程與自動化學院,昆明 650093)

1 引言

計算機仿真[1]是指以計算機為主要工具,運行真實系統(tǒng)或預研系統(tǒng)的仿真模型,通過對仿真模型的輸出信息分析與研究,實現對實際系統(tǒng)運行狀態(tài)和演化規(guī)律的綜合評估與預測。它是分析評價現有系統(tǒng)運行狀態(tài)或設計優(yōu)化未來系統(tǒng)性能與功能的一種技術手段,現已廣泛應用于國民生產的各種領域。隨著人們對復雜、大型系統(tǒng)如基因工程、氣候預報、軍事演習、電力系統(tǒng)等的深入研究,原有串行仿真系統(tǒng)已經不能滿足龐大的計算量需求,并行仿真系統(tǒng)越來越受到人們的青睞。并行系統(tǒng)的基本構建方式主要有兩種,第一種是使用大型機甚至巨型機,將多個CPU通過高速總線連接,這種方式的管理效率、數據傳輸速度和可靠性都非常高,整個并行程序的運行效率也很高。但是,這種方式購置、維護、管理費用非常昂貴,系統(tǒng)的擴展性及可移植性也較差[2]。并且由于系統(tǒng)成本太高、專業(yè)性太強、難以被中、小型企業(yè)和普通用戶所接受;第二種方法使用分布式計算模式,多主機間通過通信線路互聯,將復雜的計算任務分解至各主機進行計算,這種方法相對于大型機來說,價格低廉、可擴展性強、可移植性好。目前來說基于TCP/IP協(xié)議的以太網多DSP并行處理系統(tǒng)應用較廣。該系統(tǒng)通過以太網將一組高性能的DSP連接起來,在并行操作系統(tǒng)和集成開發(fā)環(huán)境的支持下統(tǒng)一調度,可以實現高效的并行計算。這種系統(tǒng)的開發(fā)設計較為方便,也具有很好的擴展性能[3]。但是,由于在系統(tǒng)的各并行節(jié)點間數據的傳輸采用TCP/IP協(xié)議,將大量精力應用在保證數據傳輸的可靠性及數據流的控制上,這不僅需要花費較多的處理時間來實現協(xié)議,占用大量的系統(tǒng)資源,而且通信也存在有不確定性。直接將這種耗時長、不確定的通信技術所構成的并行系統(tǒng)應用于實時仿真時,仿真的速度將受限于并行節(jié)點間的數據通信開銷,實時性難以得到保證。

實時仿真需要仿真系統(tǒng)的仿真時間和自然時間完全一致[4]。為了滿足仿真時間與自然時間一致的要求,通過對以太網TCP/IP通信協(xié)議的優(yōu)化和裁剪,設計出基于MAC層數據傳輸的通信方式,大大降低了系統(tǒng)通信開銷,提高了通信速率,為并行實時仿真系統(tǒng)的實現奠定了基礎。并行仿真系統(tǒng)中,并行計算需要將復雜的任務進行劃分,通過調度算法將任務分配至各節(jié)點機進行處理。因此,各節(jié)點機必需預先下載經過編譯系統(tǒng)編譯完成的任務。但當并行系統(tǒng)中節(jié)點數量較多時,每個節(jié)點單獨下載任務的方式將變得非常繁瑣復雜,不僅耗時長而且增加很大工作量。如果任務調度的算法改變,也會遇到同樣的問題。通過對DSP啟動方式及加載方式的研究,提出一種多重加載的下載方法,很好地解決了并行任務下載至各節(jié)點機的問題。

2 并行系統(tǒng)結構

多DSP并行系統(tǒng)的基本性能主要取決于處理單元即DSP的處理速度、并行系統(tǒng)的結構和任務調度算法三個方面[5]。三者之間緊密聯系、相互依賴。此并行系統(tǒng)使用美國模擬器件公司(ADI公司)生產的Blackfin系列ADSP-BF548型號的DSP芯片作為處理單元,該芯片具有強大的運算能力,主頻最高可到600MHz,并具有低功耗、片內資源豐富、控制功能強的特點。雖然BF548已經在片內融入了并行處理技術,如多級流水線、并行計算單元等,但多片并行的技術處理任務速度更快,性能更強,并且擴展靈活,是并行技術發(fā)展的主要方向。多片DSP如何實現通信控制與數據交換,即如何建立起多DSP之間的信號連接通道SLC(Signal Link Channel)[6],是并行系統(tǒng)結構設計的核心問題。并行系統(tǒng)采用基于以太網的雙重網絡體系主從結構設計,如圖1所示。

圖1 并行網絡結構

在雙重網絡結構下,各節(jié)點的通信和數據交換方式也分為兩類。第一類是主機與各從機間的通信。在此方式中主機相當于大型機的中央管理系統(tǒng),負責對并行仿真的任務進行劃分和調度,將劃分好的任務分配到各處理機上,使任務按照一定的順序執(zhí)行,從而將復雜任務分解成簡單任務,獲得了很高的處理性能,主機還可以對各從機進行管理。對于復雜的并行系統(tǒng),在管理和調度任務時需要使用操作系統(tǒng)。μC/OS-II是一種基于優(yōu)先級的搶占式多任務操作系統(tǒng),包含了實時內核、任務管理、時間管理、任務間通信同步(信號量,郵箱,消息隊列)和內存管理等功能。μC/OS-II的最大特點是源碼公開,可方便的將其移植到本系統(tǒng)中,并且方便維護。由于系統(tǒng)采用靜態(tài)任務調度方法,主要保證數據傳輸的穩(wěn)定性和可靠性,對任務的劃分和調度沒有非常嚴格的時間要求,所以在這類網絡中使用以太網TCP/IP協(xié)議提供可靠的傳輸服務;第二類是從機間的數據交換。在并行計算的過程中,多任務間具有一定的耦合性,各從機間需要交換數據信息。為滿足實時仿真的要求,DSP間的數據交換采用了通信速度較快的基于MAC地址的網絡傳輸機制。標準的TCP/IP協(xié)議棧在傳輸過程中占用了大量CPU資源和通信開銷,由于DSP并行系統(tǒng)中所有節(jié)點均處于同一局域網內,可將上層協(xié)議進行裁剪,保留MAC層以下的協(xié)議,使用MAC地址進行數據傳輸。經測試,在以交換機組成的局域網內,采用MAC層收發(fā)數據,可以降低通信開銷、提高通信速率,特別是短數據幀的通信速率。另外,從機可根據并行仿真的需要通過交換機靈活配置成各種并行結構,具有很好的可重構性和擴展性。這種雙重網絡結構的并行系統(tǒng)繼承了大型機和分布式系統(tǒng)的優(yōu)點,既有運算能力強、可靠性高、管理效率良好的特點,又具有成本較低、擴展靈活、可滿足仿真實時性要求的優(yōu)勢,是一種可應用于中、小企業(yè)和個人用戶的高效廉價的并行仿真系統(tǒng)。

3 BF548啟動方式及裝載文件結構

BF548芯片的引導啟動方式非常靈活,有多種啟動方式可供用戶選擇,在不同的啟動方式下,初始執(zhí)行的程序地址并不相同,讀取執(zhí)行文件的方式也不相同。為了使DSP能夠從固定地址執(zhí)行并行計算程序,必需掌握BF548芯片的啟動方式。BF548的啟動方式由芯片的4根BMODE輸入引腳決定,各種啟動方式見表1。

表1 BF548啟動方式

為了便于任務下載,各 DSP選擇從16-bit burst flash存儲器啟動的方式,該方式的啟動過程可以看作是從flash存儲器上讀取啟動碼流即LDR文件到DSP內部的L1存儲器和SDRAM存儲器的過程,如圖2所示。啟動工作全部由位于DSP存儲器地址0xEF000000到0xEF0003FF的片上Boot ROM中的啟動代碼完成。DSP處理器復位后會從Boot ROM的起始地址開始執(zhí)行,啟動代碼首先讀取啟動碼流最開始的16個字節(jié),它們是啟動文件的頭信息,內核通過分析包含在這16個字節(jié)中的DMACODE位來確定DMA通道的寬度和步長,同時配置DMA通道。一旦DMA的配置完成后,啟動碼流將以子塊為單位讀取LDR文件中的其它程序信息。啟動代碼根據頭信息中的目標地址(Target Address)和子塊長度(Byte Count)將啟動碼流的每個子塊傳輸到各存儲器的指定位置。當所有的塊傳輸完成后,啟動代碼會自動跳轉到應用程序的起始地址開始執(zhí)行,默認的地址為0xFFA00000存儲在EVT1寄存器中,通過更改EVT1中的地址值可實現執(zhí)行不同位置的應用程序。

圖2 BF548啟動過程

裝載文件,即LDR文件,它包含著全部的啟動碼流,LDR文件保存在靜態(tài)存儲器中供啟動使用,它可以通過ADI公司提供的集成開發(fā)和調試工具VDSP中的 ELFLOADER功能生成。ELFLOADER解析輸入的可執(zhí)行文件(DXE文件),生成帶有頭信息的啟動碼流。LDR文件由多個子塊組成,每個子塊可以分為頭部和負載兩個部分,但有部分特殊子塊只有頭部,沒有負載區(qū)。頭部區(qū)共有16個字節(jié),分別存儲著頭部的CRC校驗數據、標志符、目的地址、塊大小和塊參數。頭部標志符共有16字節(jié),如圖3所示。

圖3 LDR文件頭部標志符

前4字節(jié)為區(qū)塊代碼(Block Code),如圖4所示。

其中 BFLAG_FINAL、BFLAG_FIRST、BFLAG_INIT和BFLAG_FILL四個標志符,它們分別指出當前的子塊為結束塊、開始塊、初始化塊和填充塊。一般情況下每個LDR文件都會存在這四個標志符。不同的區(qū)塊會令Boot ROM對啟動過程產生不同的影響。利用啟動文件中的區(qū)塊加載方式,可設計多重加載的啟動方式。

圖4 區(qū)塊代碼

4 任務下載方法

4.1 通信程序

要實現將PC機上VDSP編譯好的LDR文件從主DSP下載到各從DSP中,要通過以太網,所以PC機和DSP中必需有網絡通信程序以實現數據傳送。加載文件傳輸過程主要保證傳輸的正確性,對時間和效率的要求不高,所以上下位機都使用TCP/IP通信協(xié)議。PC機中使用VC++編寫程序,利用TCP/IP協(xié)議提供的編程接口套接字(Sockets)開發(fā)通信程序。套接字的實質是通信端點的一種抽象,它提供一種發(fā)送和接收數據的機制。Windows Sockets規(guī)范以U.C.Berkeley大學BSD UNIX中流行的Sockets接口為范例定義了一套Windows下網絡編程接口。Windows Sockets具體實現使用Winsock應用程序接口(API),Windows Sockets提供面向連接的流式套接字(Stream socket)和面向無連接的數據報套接字(Datagram socket)。在VC++中可利用MFC封裝的CAsyncSocket和CSocket兩個類中的相關函數實現。在BF548 DSP中,使用μC/TCPIP協(xié)議棧,μC/TCPIP是一個精簡、實時、高效的TCP/IP協(xié)議棧,可支持64位的嵌入式處理器,所有代碼遵循Motor Industry Software Reliability Association(MISRA)C標準,可根據用戶需要裁減,它的原碼公開,可方便移植入BF548平臺。運行μC/TCPIP需要多任務的實時操作系統(tǒng),操作系統(tǒng)需要具有計數信號量,μC/TCPIP中封裝了支持μC/OS-II的軟件層,所以與μC/OS-II配合使用更加方便。μC/TCPIP可支持Sockets、TCP、UCP、IP等協(xié)議,所以 PC 機和DSP均可使用相同的方式創(chuàng)建網絡連接。主從DSP間進行文件傳輸也通過Sockets套接字進行編程,程序流程如圖5。為確保LDR文件傳輸的正確性,主從DSP間經過多次交互,從DSP還應將寫入flash的文件讀出后再發(fā)送至主DSP進行校驗,如果校驗失敗,要求主DSP重新進行傳輸。

圖5 通信程序流程圖

4.2 初始化代碼

在BF548芯片復位后,系統(tǒng)均要通過啟動過程加載可執(zhí)行的程序進入L1或RAM中執(zhí)行,加載過程通過芯片Boot ROM中的啟動代碼完成。DSP選擇從16-bit burst flash存儲器啟動的方式,系統(tǒng)將加載保存在flash中的啟動碼流。在DSP的啟動過程中,首先要判斷flash中是否已經存儲了并行任務的LDR文件,如果沒有,則需要加載通信程序和主DSP通信下載并行任務的LDR文件;如果已經存儲了并行任務,則直接加載并行任務的LDR文件進行并行仿真計算。為了實現此過程,必需運用BF548初始化塊預先加載的特性實現多重加載。BF548在實際應用程序加載之前,允許預先加載初始化塊。當Boot ROM中的啟動程序檢測到某些子塊的頭部標志符具有BFLAG_INIT標志時,認定這些區(qū)塊為初始化塊,并首先將這些區(qū)塊載入DSP的存儲器中,然后發(fā)出一個調用指令給其目標地址來執(zhí)行該塊。初始化塊中可包含一段初始化代碼(Init Code),用C語言函數,原型如下:

void initcode(ADI_BOOT_DATA*pBootStruct)也可以聲明一段初始化代碼。初始化代碼執(zhí)行完后將通過一條RTS指令返回BOOT ROM繼續(xù)加載過程,將要加載區(qū)塊的地址保存在DSP的R0寄存器中,在初始化代碼中改變R0的值,可實現加載不同LDR文件。初始化代碼執(zhí)行完成后,已加載的初始化塊將被其它區(qū)塊所覆蓋。其過程如圖6所示。

圖6 初始化代碼執(zhí)行過程

4.3 多重加載程序流程

在初始化程序中,判斷Burst Flash存儲器中地址為0x200F FFFF的存儲單元存儲的內容是否為0x0FFF,如果是,則表明DSP中沒有下載過并行任務程序,初始化程序修改R0寄存器內容,調用網絡下載程序,網絡下載程序將與PC機通信,下載任務程序,將下載的LDR文件寫入存儲器0x20100000之后的空間,同時修改0x200F FFFF地址單元內容為0x08FF;如果不是,則設置定時器延時一段時間,用戶在定時時間內如按下SW10按鍵則重新下載LDR文件,更新任務程序,更新完成后重啟DSP;如未按下SW10按鍵則調用下載好的任務程序開始并行仿真過程。程序流程圖如圖7所示。

圖7 多重加載過程

5 結束語

在對比傳統(tǒng)并行系統(tǒng)結構的基礎上,構建了一種基于以太網的多DSP并行仿真系統(tǒng)。系統(tǒng)采用雙重網絡結構,靜態(tài)任務調度管理和并行實時仿真過程使用不同網絡架構進行數據通信,使得調度管理過程靈活、可靠;通過對以太網協(xié)議的裁剪優(yōu)化,縮短了并行結點間數據通信的時間,為并行系統(tǒng)實現實時仿真提供了基本保證。同時提出的利用多重加載方式下載并行任務的方法具有很強的實用價值。特別是當并行系統(tǒng)中DSP數量較大時,可節(jié)約大量的下載時間和工作量,減少通過仿真器下載時硬件插拔造成的損傷,也可以用于DSP程序的在線升級更新。此方法不僅適用于ADI公司的BF548芯片,略加修改還可應用于其它Blackfin系列DSP中。但是此方法也有一定的局限性,要求DSP板必需有以太網接口,由于移植了操作系統(tǒng)和網絡協(xié)議棧,對于存儲器的容量也有一定的要求,因此該方法仍需進一步完善。

[1]胡峰,等.動態(tài)系統(tǒng)計算機仿真技術綜述[J].計算機仿真,2000,17(1):1 -7.

[2]任曉明,等.網絡并行計算系統(tǒng)模型[J].計算機工程與應用,2001(15):118-119.

[3]柳林,李濤,荊濤.基于多節(jié)點多核的樣本級并行仿真技術研究[J].系統(tǒng)仿真學報,2010,22(11):2597-2599.

[4]姚新宇,黃柯棣.仿真中的時間和實時仿真[J].系統(tǒng)仿真學報,1999,11(6):415 -417.

[5]黃飛,等.網絡互聯型多DSP并行處理系統(tǒng)設計[J].計算機工程,2007,33(23):230 -232.

[6]杜金榜,等.多DSP并行處理系統(tǒng)的設計與開發(fā)[J].計算機測量與控制,2006,14(5):658-660.

猜你喜歡
子塊存儲器以太網
基于八叉樹的地震數據多級緩存方法
基于八叉樹的地震數據分布式存儲方法研究
靜態(tài)隨機存儲器在軌自檢算法
基于特征值算法的圖像Copy-Move篡改的被動取證方案
基于1500以太網養(yǎng)豬場的智能飼喂控制系統(tǒng)的設計與實現
基于波浪式矩陣置換的稀疏度均衡分塊壓縮感知算法
談實時以太網EtherCAT技術在變電站自動化中的應用
電子制作(2017年24期)2017-02-02 07:14:44
一種90W高功率以太網供電系統(tǒng)的設計
電源技術(2015年7期)2015-08-22 08:48:48
淺談EPON與工業(yè)以太網在貴遵高速公路中的應用
存儲器——安格爾(墨西哥)▲
南川市| 遂川县| 安岳县| 西和县| 新平| 贡嘎县| 蚌埠市| 沙雅县| 浦城县| 黔江区| 佛学| 建瓯市| 屏东县| 左权县| 集安市| 勃利县| 绥中县| 双鸭山市| 太和县| 兴安盟| 涿鹿县| 龙陵县| 荣成市| 武隆县| 台山市| 苏尼特左旗| 遂溪县| 阳泉市| 河池市| 乌鲁木齐县| 留坝县| 东台市| 三门峡市| 通化市| 兴国县| 云南省| 南投县| 焉耆| 平远县| 金沙县| 马龙县|