首页 > 代码库 > 嵌入式实验EX1:Kahn Process Networks and Synchronous Data Flows

嵌入式实验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有周期性的调度,当且仅当M满足r = n-1(Mq = 0有一个唯一最小整数解)

        ② 对一个不相容的SDF,M满足r = n(Mq = 0 只有全零解)

        ③ 对一个不连通的SDF,M满足r < n-1(Mq = 0有两个或者更高维度的解)

    ?  示例

        技术分享

       n =3, rank(M)=3,不相容SDF:此时不存在可能的策略去运行,因为不允许无限累积

 

 四、参考

      ? 嵌入式系统之KPN网络图(Kahn Process Networks) http://blog.csdn.net/c602273091/article/details/40871903

      ? MPSoC平台KPNs(Kahn Process Networks)建模

 

 

                

嵌入式实验EX1:Kahn Process Networks and Synchronous Data Flows