亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2012-09-11 10:17:06楊彥鑫
        微處理機 2012年6期
        關(guān)鍵詞:子塊存儲器以太網(wǎng)

        楊彥鑫,黎 英

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

        1 引言

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

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

        2 并行系統(tǒng)結(jié)構(gòu)

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

        圖1 并行網(wǎng)絡(luò)結(jié)構(gòu)

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

        3 BF548啟動方式及裝載文件結(jié)構(gòu)

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

        表1 BF548啟動方式

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

        圖2 BF548啟動過程

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

        圖3 LDR文件頭部標志符

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

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

        圖4 區(qū)塊代碼

        4 任務(wù)下載方法

        4.1 通信程序

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

        圖5 通信程序流程圖

        4.2 初始化代碼

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

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

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

        4.3 多重加載程序流程

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

        圖7 多重加載過程

        5 結(jié)束語

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

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

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

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

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

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

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

        猜你喜歡
        子塊存儲器以太網(wǎng)
        基于八叉樹的地震數(shù)據(jù)多級緩存方法
        基于八叉樹的地震數(shù)據(jù)分布式存儲方法研究
        靜態(tài)隨機存儲器在軌自檢算法
        基于特征值算法的圖像Copy-Move篡改的被動取證方案
        基于1500以太網(wǎng)養(yǎng)豬場的智能飼喂控制系統(tǒng)的設(shè)計與實現(xiàn)
        基于波浪式矩陣置換的稀疏度均衡分塊壓縮感知算法
        談實時以太網(wǎng)EtherCAT技術(shù)在變電站自動化中的應(yīng)用
        電子制作(2017年24期)2017-02-02 07:14:44
        一種90W高功率以太網(wǎng)供電系統(tǒng)的設(shè)計
        淺談EPON與工業(yè)以太網(wǎng)在貴遵高速公路中的應(yīng)用
        存儲器——安格爾(墨西哥)▲
        久久中文字幕亚洲精品最新 | 日本综合视频一区二区| 国产精品自线一区二区三区| 无码小电影在线观看网站免费| 天堂…在线最新版资源| 免费无遮挡无码视频在线观看| 亚洲嫩模一区二区三区视频| 久久黄色精品内射胖女人| 黄片视频免费在线观看国产| 久久久精品一区aaa片| 日日干夜夜操高清视频| 久久亚洲精品成人综合| 亚洲国产91精品一区二区| 人妻少妇偷人精品免费看| 国产精品多p对白交换绿帽| 欧性猛交ⅹxxx乱大交| 午夜一区二区三区在线视频| 亚洲成熟中老妇女视频| 欧美日韩午夜群交多人轮换| 日夜啪啪一区二区三区| 亚洲精品一二区| 国产特黄1区2区3区4区| 粉嫩极品国产在线观看免费一区 | 白白在线免费观看视频| 中文字幕女同系列在线看一| 国产欧美日韩精品专区| 国产香蕉一区二区三区在线视频| 韩国三级大全久久网站| 日本a级片一区二区三区| 人妻少妇被粗大爽.9797pw| 亚洲成av人片在线观看ww| 国产精品青草久久久久婷婷| 亚洲精品女同在线观看| 久久久国产精品123| 亚洲精品熟女国产| 日韩欧美在线播放视频| 亚洲国产都市一区二区| 精品久久亚洲中文字幕| 区二区三区玖玖玖| 毛片无码高潮喷白浆视频| 女同中文字幕在线观看|