Rocket - diplomacy - DUEB参数模型分析

https://mp.weixin.qq.com/s/533bJxcPRgO4W2gf_OEhEw

 
分析DUEB参数模型中各种参数类型的可能性。
 
 
1. 节点类型
 
根据参数的传播方向,可以把节点分为三类:
a. 只输出参数的节点,参考OutwardNodeImp;
b. 只接收参数的节点,参考InwardNodeImp;
c. 既接收参数、又输出参数的节点,参考MixNode;
 
也就是说Outward和Inward节点是起始和终止节点,而Mixed节点是中继节点。
 
2. 参数传播
 
参数的传播有两个方向,Downward和Upward:
a. 如果是在Outward和Inward节点之间,则是直接传播(receive/generate)。
b. 如果包含Mixed节点,则参数的传播需要穿过Mixed节点,需要Mixed节点把DI转换为DO,把UO转换为UI。
 
 
3. 两个节点
 
下面以DI/DO为例:
a. Outward生成(generate)然后发送DO参数;
b. Inward接收(receive)DI参数;
 
从DO变成DI,有两种可能性:
a. 存在一个转换机制,把DO转变为DI;
b. DO = DI,即DO和DI是同一个类型;
 
如果存在一个转换机制,那么这个机制需要同时知道DO和DI的信息。其耦合性较高,难以维护。如果存在这个转换机制,则应该在模型层有所体现。
 
虽然无法否定转换机制存在的可能性,但更为简单的方法是DO = DI。
这是对模型的一种化简。
 
 
4. 单个复合节点
 
 
Mixed节点接收DI参数,传播DO参数。
 
DI与DO一样吗?同样存在两种可能:
 
1) 不一样:DI ≠ DO
 
那么需要Mixed节点,实现如何从DI到DO的转换方法。
 
这在MixedNode中有体现:
 
a. mapParamsD():沿着传播方向(Downward)把DI转变为DO;
b. mapParamsU():沿着传播方向(Upward)把UO转变为UI;
 
2) 一样:DI = DO
 
那么在参数传播过程中,这个Mixed节点如同不存在一样,透传参数信息。
 
更准确的说,透传的是参数类型信息,而参数的值是可以有变化的。
 
上面是根据模型的分析参数的可能性。
 
 
5. 化简实现
 
下面根据分析,介绍模型化简后的实现。
 
1) 合并DI/DO,UI/UO
 
 
2) 实例:AXI4Imp
 
 
DI和DO合并之后只有D这一个类型,也就是说向下(Downward)传播(generate/receive)的是D类型的参数。因为下游节点已知自己节点的参数信息,所以向下传播的应该是上游节点的信息。在这个例子中是AXI4MasterPortParameters。
 
同理,U的类型定义为下游节点的参数。在这个例子中为AXI4SlavePortParameters。
posted @ 2019-03-01 13:01  wjcdx  阅读(505)  评论(0编辑  收藏  举报