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. CC2530ADC转换

    一.ADC简介 ADC支持 14 位的模拟数字转换,具有多达12 位的 ENOB(有效数字位).它包括一个模拟多路转换器,具有多达8 个各自可配置的通道,以及一个参考电压发生器.转换结果通过DMA写入 ...

  2. Spring官网阅读(六)容器的扩展点(一)BeanFactoryPostProcessor

    之前的文章我们已经学习完了BeanDefinition的基本概念跟合并,其中多次提到了容器的扩展点,这篇文章我们就开始学习这方面的知识.这部分内容主要涉及官网中的1.8小结.按照官网介绍来说,容器的扩 ...

  3. 08_CSS入门和高级技巧(6)

    排查错误 Chrome浏览器的审查功能. 错误1:选择器写错了,压根没有选择上: 如果写了一个错误的选择器, <style type="text/css"> dvi p ...

  4. 【带着canvas去流浪(15)】threejs fundamentals翻译系列1-scene graph

    示例代码托管在:http://www.github.com/dashnowords/blogs 博客园地址:<大史住在大前端>原创博文目录 华为云社区地址:[你要的前端打怪升级指南] 目录 ...

  5. Python爬虫丨大众点评数据爬虫教程(2)

    大众点评数据爬虫获取教程 --- [SVG映射版本] 前言: 大众点评是一款非常受大众喜爱的一个第三方的美食相关的点评网站.从网站内可以推荐吃喝玩乐优惠信息,提供美食餐厅.酒店旅游.电影票.家居装修. ...

  6. 原创Go语言题目(基础)

    题目内容来源于Go语言的经典书籍<GO编程语言> 题目 选择题 1. 下列说法错误的是:A. main包定义了一个独立可执行的二进制程序,以main函数作为程序执行的入口.B. 没有导入需 ...

  7. [csu/coj 1619] 递归

    题意:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1619 思路:由于式子具有递归的性质,考虑递归解,中间结果会超64位int,需用大数.另外自己 ...

  8. CODING 敏捷实战系列课第五讲:敏捷中国史

    敏捷软件开发方法自 2001 年传入中国以来,历经十多年的发展变迁,目前已经成为国内 IT 企业主流的研发管理方法.敏捷方法的传播和发展历程,是中国 IT 行业发展的剪影.CODING 特邀敏捷顾问. ...

  9. 散列表PTA判断

    1-1 在散列表中,所谓同义词就是具有相同散列地址的两个元素. (1分) T         F 作者 DS课程组 单位 浙江大学   1-2 采用平方探测冲突解决策略(h​i​​(k)=(H(k)+ ...

  10. 常见的DOS命令总结

    常用的内部命令有MD.CD.RD.DIR.PATH.COPY.TYPE.EDIT.REN.DEL.CLS.VER.DATE.TIME.PROMPT. 常用的外部命令有DELTREE.FORMAT.DI ...