《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > TigerSHARC網絡加載的設計與實現

TigerSHARC網絡加載的設計與實現

2008-06-18
作者:劉三毛, 穆賀強

  摘 要: 提出了一種由多片TigerSHARC系列DSP芯片組成的任意拓撲結構" title="拓撲結構">拓撲結構的網絡系統的構成和加載" title="加載">加載方法。首先通過鏈路" title="鏈路">鏈路口對TigerSHARC網絡進行檢測,由此得到該網絡的加載網表;然后分析加載網表,并實現整個網絡的加載;最后給出網絡加載編程的流程圖。
  關鍵詞: TigerSHARC 加載 網表

?

  隨著對實時信號處理要求的不斷提高,盡管DSP的運算能力在不斷增強,但仍然需要由多個DSP組成大規模并行處理系統。ADI公司新推出的高性能靜態超標量處理器——TigerSHARC系列DSP處理芯片(包括TS101S和TS20xS)具有很強的數據運算和吞吐能力,其獨特的結構和功能(如DMA通道、全雙工的鏈路口)特別適合用于構成大規模信號處理系統。
  由多片TigerSHARC系列DSP芯片組成的信號處理陣列,稱為TigerSHARC網絡。對于這樣一個復雜系統,在上電復位后,如何將可執行文件放到指定的DSP中并按照規定的順序執行程序是非常關鍵的。在分析TigerSHARC系列DSP芯片的結構特點和加載原理的基礎上,本文提出一種任意拓撲結構的TigerSHARC網絡的構成和加載方法。首先對TigerSHARC網絡進行自動檢測,生成加載網表;然后分析該加載網表,實現TigerSHARC網絡的加載;最后給出網絡加載的流程圖。
1 TigerSHARC網絡的構成
  TigerSHARC為實現多處理器互聯提供了兩種方案。
  (1)共享總線結構:多個TigerSHARC系列DSP芯片通過共享外部總線的方式構成多處理器系統。一個總線上最多可以有八片TigerSHARC系列DSP芯片。這樣的系統又稱為緊耦合系統,典型結構如圖1所示。


  (2)鏈路口耦合結構" title="耦合結構">耦合結構:利用鏈路口進行處理器間的無縫連接,可以連接成不同的拓撲結構,如流水線結構、網格結構等,構建的多維處理器結構,具有很好的擴展性和靈活性。這樣的系統也叫做松耦合系統。網格結構如圖2所示。


  對于大型系統,基于任務的分配,將系統中的DSP分成若干個處理單元,處理單元的內部采用共享總線結構或鏈路口耦合結構,處理單元間采用鏈路口耦合結構。這樣可兼顧二者的優點。
  每個處理單元或者每片DSP都可作為網絡中的一個節點(node)。為了討論方便,本文中的節點指一片DSP。首先被加載的節點稱為根節點,通過它加載的其余節點稱為從節點。
2 TigerSHARC的加載方式
  TigerSHARC有四種加載方式:鏈路口方式、Host方式、EPROM方式、no boot方式。no boot方式不需要加載核,復位后通過使能中斷請求信號使DSP自動從相應的存儲空間開始執行。ADI公司為前三種方式分別提供了加載核,其核心思想和功能完全一樣,只是在實現代碼上稍有差異。VisualDSP++的加載器應用程序" title="應用程序">應用程序(elfloader.exe)接收加載核和用戶應用程序,生成相應的加載程序。但只有DSP運行了相應的加載核之后才能繼續加載用戶應用程序。
  值得注意的是:在鏈路口加載核中,定義的常數LINK指定用于接收的鏈路口號,要根據實際情況進行更改。如果需要對系統進行不同的設置,必須在修改加載核后重新編譯加載核,但要保證加載核長度不超過256字,并在編譯后使用。
3 加載網表的生成
  要得到加載網表,需要探測網絡中所有的鏈路連接信息,即判斷各鏈路口是否可用于加載,可采用如下方法:
  (1)主動式探測
  設置被測鏈路口為發送狀態,往該鏈路口的發送緩沖區寫一批數,如果一定時間后該發送緩沖區為空,則該鏈路口可用于加載。
  (2)被動式探測
  設置被測鏈路口為接收狀態并清空接收緩沖區,如果一定時間后該鏈路口的接收緩沖區非空,則該鏈路口可用于加載。
  根節點完成自身加載后,采用主動式探測依次判斷其各鏈路口是否可用于加載。然后通過可用于加載的鏈路口發送從節點探測程序,指導從節點繼續網絡探測;根據根節點發送所用的鏈路口號對從節點編號,將該編號與發送所用鏈路口號一起發送到該從節點并回送到根節點中保存,同時要標記該從節點已被加載過(booted=1)。
  已被加載過的從節點首先采用主動式探測,如果發現有可用于加載的鏈路口,表示存在下一級加載,則采用和根節點相同的探測過程,并且在完成后再采取被動式探測,得到該節點的其它鏈路連接信息并回送到根節點;如果發現沒有可用于加載的鏈路口,就采用被動式探測,得到該節點的其他鏈路連接信息并回送到根節點。該過程的流程圖如圖3所示。


  對于每個從節點,有兩個鏈路口很重要:用于發送下級節點程序的鏈路口(LINKt)和接收本節點及下級節點程序的鏈路口(LINKr)。LINKt 作為本節點的加載路徑信息的一個元素;LINKr用于本節點的鏈路口加載核的生成。
  因為一個從節點可能有多種加載路徑,在得到網絡的鏈路連接關系后,可根據信號處理任務的分配為各節點選擇加載路徑。將各節點的加載信息,包括加載路徑信息、加載程序、代碼長度和參數等以一定的格式組織,作為該節點的加載文件包;該網絡中所有節點的加載文件包組成該網絡的加載網表;在加載網表的最后增加一個代碼長度為0的虛擬節點的加載文件包(見表1最后一行),用來通知各節點網絡加載的結束。
  圖4為某DSP系統的網絡拓撲結構圖,表1為該網絡的加載網表。

?


4 網絡加載過程分析
  在這里采用一臺PC機作為主機。上電復位后,PC機先指導TigerSHARC網絡進行自動檢測,處理返回信息,生成加載網表;然后進行網絡的加載。根節點采用Host方式加載后,每次從PC機中讀取并分析一個從節點的加載文件包,并通過鏈路口發送給從節點,指導從節點以鏈路口方式完成網絡加載。可以為其單獨寫一個加載程序。
  從節點的加載程序按功能可分為三部分:256字的LINK加載核、網絡加載程序、用戶程序。LINK加載核在完成本節點的初始化后,繼續通過鏈路口接收本節點的網絡加載程序和用戶程序并完成自身的覆蓋。然后開始執行網絡加載程序,其作用是接收并發送下級節點的加載文件,進行網絡加載。網絡加載完成以后,就等待運行用戶程序。
  網絡加載程序是實現網絡加載的關鍵,因此筆者寫一個適用于所有從節點的程序netboot()來完成此功能。在每個節點中設置一個有四個元素的數組booted[4]標志各鏈路口的狀態(各元素依次對應鏈路口0~3),booted[4]為1表示鏈路口處于發送狀態;為0表示鏈路口被關閉。鏈路口方式加載采用的是核訪問方式,即將要傳輸的數據通過鏈路口的發送緩沖區發送。


  netboot()程序流程如圖5所示,其過程如下:
  (1)保存部分寄存器的值,用于在網絡加載完成后恢復這些寄存器的值。禁止DMA傳輸,設置數組booted[4]所有元素的值為0,開辟緩沖區temp。
  (2)接收并保存本節點的參數arc和argv,供本節點用戶程序運行時使用。
  (3)讀下一節點的代碼長度CodeLength。如果CodeLength為零,則表示網絡加載已經結束,跳轉至(8);否則,繼續執行加載。
  (4)讀出發送下一節點程序所用的鏈路口t。如果booted[t]=1,將t從下一節點的加載路徑信息中去掉,并將代碼長度減去1,其余信息不變,然后將更新后的加載文件包發送到下一節點;如果booted[t]!=1,則屏蔽寄存器中鏈路口t對應的發送結束中斷,然后讀寄存器中鏈路口t對應的發送請求標志。當鏈路口t有發送請求時,設置鏈路口t為核訪問方式輸出,且置booted[t]=1。
  (5)接收并發送下一節點的256字加載核程序。
  (6)等待一段時間,以保證加載核在下一節點的運行。
  (7)接收并發送下一節點余下的程序代碼。完成后跳轉到(3)繼續執行。
  (8)關閉所有接收鏈路口,清除緩沖區temp和鏈路狀態寄存器。
  (9)依次通過本節點用于加載的鏈路口向下一節點發送緩沖區temp中的值,然后關閉該鏈路口。由于緩沖區temp中的數據為0,被下一個節點當作代碼長度使用,從而結束后續各節點的加載過程。
  (10)清中斷鎖存器,等待一段時間后,恢復寄存器設置。結束netboot()過程,并等待執行本節點的用戶程序。
  本文介紹的TigerSHARC網絡加載和編程方法簡單、可靠,并在筆者研制的基于TS101S和TS201S的信號處理系統上進行了驗證。該方法具有一定的普遍性,對同類DSP的應用具有較高的參考價值。
參考文獻
1 ADSP-TS201S TigerSHARC Processor Hardware Refer-ence. Analog Devices Inc.,2003
2 ADSP-TS201S TigerSHARC Processor Programming Reference. Analog Devices Inc.,2003
3 VisualDSP++3.5 Loader Manual for 32-bit Processors. Analog Devices Inc.,2003

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 最近免费中文字幕中文高清| 色综合天天综合| 女大学生的沙龙室| 久久精品中文闷骚内射| 2020欧美极品hd18| 山村乱肉系列h| 亚洲第一综合色| 久久国产精品99精品国产987| 无码人妻精品一区二区在线视频 | 国产伦理一区二区三区| 一区二区三区国产最好的精华液| 欧美精品第1页在线播放| 国产50部艳色禁片无码| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 国产91精品一区二区麻豆亚洲| 看全色黄大色黄女视频| 把女人弄爽大黄a大片片| 人与动人物A级毛片在线| 茄子视频国产在线观看| 国产精品一级毛片不收费| a视频免费观看| 成年男女男精品免费视频网站| 亚洲AV色香蕉一区二区三区蜜桃| 美女扒开内裤羞羞网站| 国产成人综合在线视频| ww美色吧com| 日本5级床片全免费| 亚洲精品中文字幕无码蜜桃| 精品视频一区二区三区| 国产精品亚洲а∨无码播放麻豆 | 午夜性a一级毛片| 伊人婷婷综合缴情亚洲五月| 把美女日出白浆| 久草视频这里只有精品| 男人边摸边吃奶边做下面| 国产福利一区二区三区在线观看 | 久久精品久久精品| 欧美国产激情二区三区| 又大又黄又粗又爽视频| 2020求一个网站男人都懂| 无码人妻一区二区三区免费视频|