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。

Rocket - diplomacy - DUEB参数模型分析的更多相关文章

  1. Rocket - diplomacy - DUEB参数模型的设计

    https://mp.weixin.qq.com/s/9PEEpe1pkQDN9RWpOGSUCQ   介绍DUEB参数模型的设计,不包含实现(实现对设计做了简化).     1. DUEB   di ...

  2. Rocket - diplomacy - AddressAdjuster分析

    https://mp.weixin.qq.com/s/UYVSO3XFJmhe5bUD_XbMLg   先介绍如何使用AddressAdjuster,然后分析UI参数的生成及使用.   ​​   1. ...

  3. Rocket - diplomacy - LazyModule的组织方式

    https://mp.weixin.qq.com/s/vaDUekxkFkOJLmzg5jCngw 简单介绍LazyModule/LazyModuleImp的组织方式. 1. LazyModule L ...

  4. Rocket - diplomacy - misaligned

    https://mp.weixin.qq.com/s/poCJBcx45clXHm6Uuv8M6w 介绍AddressSet.misaligned的实现.之前介绍的比较概括,也有偏差.这里根据实际执行 ...

  5. Rocket - diplomacy - LazyModule的实例化(补)

    https://mp.weixin.qq.com/s/rgCRorjPYyyD6i7moIzbZg   介绍LazyModule和Node构造方法的执行过程,即实例化过程.     1. NullIn ...

  6. Rocket - diplomacy - LazyModule的实例化

    https://mp.weixin.qq.com/s/9PsBt4_4qHx4i6C5XtuiUw   介绍LazyModule和Node构造方法的执行过程,即实例化过程.     1. NullIn ...

  7. Rocket - diplomacy - LazyModule

    https://mp.weixin.qq.com/s/FBU8fE4u9-UK6mRGQOlvbQ   介绍LazyModule的实现.     ​​   1. children   LazyModu ...

  8. Rocket - diplomacy - ValName

    https://mp.weixin.qq.com/s/so-2x5KLfYF0IMCCqNThwQ   简单调试ValName实现:   1. 使用     ​​   Desugar之后如下: ​​ ...

  9. Rocket - diplomacy - Node相关类

    https://mp.weixin.qq.com/s/BvK3He3GWon8ywG8Jdmcsg   介绍Node相关的类.   ​​   1. BaseNode   BaseNode是所有节点类的 ...

随机推荐

  1. Lasso回归

    Lasso 是一个线性模型,它给出的模型具有稀疏的系数(sparse coefficients).它在一些场景中是很有用的,因为它倾向于使用较少参数的情况,能够有效减少给定解决方案所依赖变量的个数.因 ...

  2. Dynamics 365 基于 Sql Server 2017 安装 报表 问题

    如果使用SQL2017 安装D365 会发现 SSRS与AD不能在同一台服务器上,因为无法安装SSRS,而无SSRS 则D365是无法继续安装的. 所以解决方法有二个: 1.另外准备一台服务器,不需要 ...

  3. [hdu4768]二分

    http://acm.hdu.edu.cn/showproblem.php?pid=4768 题意:n个传单分别发给编号为ai, ai + ci, ai + 2 * ci, .. , ai + k * ...

  4. 掌握这10种方法帮你快速在Linux上分析二进制文件

    我们每天都使用二进制文件,但对二进制文件知之甚少.二进制是指您每天运行的可执行文件,从命令行工具到成熟的应用程序.Linux提供了丰富的工具集,可轻松进行二进制分析!无论您的工作角色是什么,如果您在L ...

  5. 移动端APP自动化测试超全基础汇总

    目录 一.面试过程 1.自动化岗位要求 2.面试流程,面试类型 3.沟通技巧,不同级别要求 二.真实面试案例 1.一个输入框的面试题(有人拿到高级岗位,有人连初级都没拿到,为什么) 三.自我分析 1. ...

  6. OpenCV开发笔记(五十六):红胖子8分钟带你深入了解多种图形拟合逼近轮廓(图文并茂+浅显易懂+程序源码)

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  7. 枚举:Enum-Int-String之间的转换与扩展

    示例枚举: public enum Color { [Description("红色")] Red, [Description("绿色")] Green = 7 ...

  8. Angular的面试题

    1.Aangular中组件之间通信的方式 答案:Props down 1.调用子组件,通过自定义属性传值 2.子组件内部通过Input来接收属性的值 Events  up 1.在父组件中定义一个有参数 ...

  9. Solr-常见问题汇总(持续更新)

    本文主要记录solr使用中遇到的一些常见问题及命令 关于solrConfig.xml的配置博客:https://blog.csdn.net/yuh_LLllccy/article/details/88 ...

  10. C语言基础知识(四)——位操作

    一.进制基础知识 1.通常,1字节(Byte)包含8位(bit).C语言用字节表示储存系统字符集所需的大小. 2.对于一个1字节8位的二进制数,最右边(第0位)是最低阶位,最左边(第1位)是最高阶位, ...