新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > SHARC并行系統(tǒng)軟件設計方法

SHARC并行系統(tǒng)軟件設計方法

作者: 時間:2014-02-17 來源:網絡 收藏
eight: 25px; background-color: rgb(255, 255, 255); ">  用戶只需要在內存區(qū)填寫多個TCB的表格,用其中的CPx字段將每個表格串起來并將第一個表格的結束地址放入CPx寄存器,就可以啟動鏈式DMA。要終止一個鏈式DMA,只需要把最后一個TCB中的CPx字段填0即可。TCB結構如圖1所示。

本文引用地址:http://2s4d.com/article/241699.htm

  

下面是建立一個鏈式DMA的順序:

  (1)在片內存儲器中建立需要的TCB數(shù)據塊;

  (2)設置DMA參數(shù)寄存器,使能相應的LxDEN和LxCHEN;

  (3)將第一個TCB的最后一個地址的偏移量寫入CPx寄存器中,即啟動了鏈式DMA。

  鏈路口的數(shù)據傳遞可以依靠中斷。鏈路口中斷的產生有以下3種情況:

  (1)DMA使能時,DMA完成后將產生一個可屏蔽中斷。

  (2)DMA禁止時,發(fā)送時LxBUF非滿,接收時LxBUF非空。

  (3)外部設備訪問一個未指定的鏈路口,或者訪問一個已指定但LBUF被禁止的鏈路口時,將產生一個鏈路服務請求(LSRQ)中斷,且所有的鏈路口公用一個中斷矢量。

  前2種情況比較簡單,只需要注意:ADSP2116X鏈路口的中斷屏蔽、鎖存與ADSP2106X不同,它從IRPTL/IMASK中分離出來,單獨存在于寄存器LIRPTL中,并且在IMASK中加了一個鏈路口中斷總開關LPISUMI。如果要使能某個鏈路口中斷,則需要設置3個控制位。例如使能L0BUF中斷,需要以下指令:“bit set imask LPISUMI;bit set lirptl LP0MSK;bit set mode1 IRPTEN;”。

  對于上面的鏈路服務請求中斷(LSRQ),在多通信時比較有效。通過該中斷可以實現(xiàn)使用同一個鏈路口完成接收和發(fā)送數(shù)據的功能,并且在2個一個主動、另一個被動的情況下不依靠外部邏輯實現(xiàn)2個鏈路口的數(shù)據傳遞同步。例如-1需要通過鏈路口向SHARC-2傳送數(shù)據,由于SHARC-1主動發(fā)送,因此只需配置好DMA參數(shù),啟動DMA即可。但是對于SHARC-2,由于被動接收,事先并不知道SHARC-1何時向自己發(fā)送數(shù)據,因此很難在適當?shù)臅r候啟動DMA接收。通過LSRQ中斷,就可以很容易地解決這個問題。

  首先將雙方的鏈路口設置為無效。當SHARC-1需要向SHARC-2通信時(發(fā)送或接收)將自己的鏈路口設為有效,并根據需要從自己的鏈路緩沖中讀寫數(shù)據。由于鏈路通信協(xié)議規(guī)定:當發(fā)送數(shù)據時,如果對方沒有響應,則將LxCLK置為高電平,數(shù)據線保持不變;當需要接收數(shù)據時,如果對方沒有響應,則LxACK保持為高電平。這樣,SHARC-2就會觸發(fā)LSRQ中斷。由于LSRQ中斷的所有鏈路口公用一個中斷矢量,因此在中斷服務子程序中,首先需要判斷哪個鏈路口有服務請求,且要區(qū)分是發(fā)送還是接收請求,然后配置相應的DMA參數(shù),使能該鏈路口,從而在雙方之間建立一個單向的數(shù)據通路。雙方傳遞數(shù)據完成,會產生一個如上文中鏈路口中斷情況(1)所示的中斷。在中斷服務程序中,仍然將各自的鏈路口設置為無效,等待下一次通信請求。下面給出一個利用LSRQ中斷實現(xiàn)數(shù)據傳遞的示例。

  例3:配置L0BUF,利用LSRQ中斷實現(xiàn)數(shù)據傳遞。

  r0=0x0002c688;

  dm(LAR)=r0;

  ustat1=dm(LCTL0);

  bit clr ustat1 L0EN;  /*禁止鏈路緩沖0*/

  dm(LCTL0)=ustat1;

  ustat1=dm(LSRQ);

  bit set ustat1 L0TM;  /*鏈路0發(fā)送屏蔽*/

  bit set ustat1 L0RM;  /*鏈路0接收屏蔽*/

  dm(LSRQ)=ustat1;

  bit set imask LSRQI;  /*使能LSRQ中斷*/

  bit set mode1 IRPTEN;

  ……

  上面的程序段可以放在主程序的開始。經過以上的配置,就可以通過LSRQ中斷方便地實現(xiàn)與另一片SHARC的鏈路口通信(發(fā)送、接收)。另外需要注意的是,當修改鏈路緩沖器的使能位LxEN時,必須將該中斷屏蔽(bit clr imask LSRQI),否則有可能產生不可預料的LSRQ中斷。

  3 結束語

  采用共享存儲器并行系統(tǒng)和分布存儲器并行系統(tǒng)各有特色,結合這二種系統(tǒng)設計的思想更易于構建并行處理系統(tǒng)。設計時,可以采用子模塊結構把這二者結合起來。子模塊內部,采用共享存儲器和分布存儲器并存,各個SHARC間根據需要既可以通過總線傳送數(shù)據,又可以通過鏈路口傳送數(shù)據。子模塊之間采用分布式存儲器系統(tǒng),通過鏈路口進行數(shù)據傳遞。采用以上設計,可以實現(xiàn)有效的并行處理,使系統(tǒng)整體性能有很大的提高。


上一頁 1 2 3 下一頁

評論


相關推薦

技術專區(qū)

關閉