嵌入式實驗EX1:Kahn Process Networks and Synchronous Data Flows

KPN(Kahn Process Networks),即卡恩進程網絡,是一種應用於數據流建模的模型,描述了進程間網絡圖,直觀的顯示進程之間的交互。

 

一、KPN模型特性

1、一種並行程序設計語言

2、進程通過一個擁有無限容量的單向First-In-First-Out(FIFO)通道,以點對點的方式進行通信

3、阻塞式讀取:當通道爲空時,寫操作將會被阻塞直到有數據被寫入通道

4、非阻塞式寫入:進程往通道中寫入數據的操作,永遠不會被阻止

5、圖形化表示如下,如圖所示,節點表示進程,邊表示單向通道,對於一個節點來說,入邊表示輸入,出邊表示輸出

     

 

二、KPN的假設條件及約束

1、進程之間只能通過FIFO通道進行通信

2、通道中傳輸信息的時間應當是不可預測但有限的

3、在任何時刻,進程總在計算或等待一個輸入通道的信息

     注意:沒有兩個進程可以往同一個通道中發送信息

4、每個進程都跟隨着一個連續的程序

 

三、KPN性質

1、單調性(monotonicity)

 

     

 

     如圖所示,不管輸入X是什麼,它都是之前的輸出Y'的子集。(每次輸入的信息實際上是通過輸出得到的) 

    解析如下:

     ▶ 一個進程接收到的輸入越多會導致其輸出也越多

     ▶ 一個進程不需要接收到所有的輸入纔開始計算:未來的輸入只與未來的輸出相關

2、確定性(determinacy)

    一個進程網絡是確定的:當進程的所有通道的歷史讀寫序列只與輸入的歷史序列相關

    在一個確定的進程網絡中函數的行爲與時間無關

    一個由單調進程組成的KPN是確定的

    ▶  增加不確定性(非單調行爲)

        ① 允許進程非阻塞式讀取

        ② 允許兩個甚至更多進程在同一個通道中進行讀寫操作

        ③ 允許進程共享變量

3、同步數據流(SDF,Synchronous Data Flow)

    ▶  KPNs的約束

        ① 允許編譯時調度

        ② 每個進程在每次觸發時進行固定數目的讀/寫(事先確定)

    ▶  調度兩步走

        ① 爲進程建立相應的執行率(求解線性方程組)

        ② 確定週期性的調度

        這種調度可以在緩存中沒有數據的時候進行。

    ▶  有n個進程的SDF的拓撲矩陣,以下爲確定SDF是否相容的三條法則

        ① 連通的SDF有周期性的調度,當且僅當M滿足r = n-1(Mq = 0有一個唯一最小整數解)

        ② 對一個不相容的SDF,M滿足r = n(Mq = 0 只有全零解)

        ③ 對一個不連通的SDF,M滿足r < n-1(Mq = 0有兩個或者更高維度的解)

    ▶  示例1

        

       上假如有數字,代表初始化的記號(token)/延遲的數量,沒有默認爲1

        n =3, rank(M)=3,有r=n

        不相容SDF:此時不存在可能的策略去運行,因爲不允許無限累積

        注:

        ① r爲矩陣的秩,也就是列空間的維數,將方程進行初等行變換,最終剩下的主元數目即爲矩陣的秩

        ② 求最小正整數解:將方程進行初等行變換後用一個一個變量,然後令最小的那個爲1,最後再看看有沒有非整數的,將所有變量擴大K倍變成整數,最後得到的最小正整數解就是相對運行率。

    ▶  示例2

       

 

      

 

 四、參考

      • 嵌入式系統之KPN網絡圖(Kahn Process Networks) http://blog.csdn.net/c602273091/article/details/40871903

      • MPSoC平臺KPNs(Kahn Process Networks)建模

 

 

                

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章