zoukankan      html  css  js  c++  java
  • Rocket

    https://mp.weixin.qq.com/s/icPGf4KdSOudwuNpLxdo7w

     

    简单介绍Xbar的实现。

     

     

    1. 简单介绍

     

    IntXbar主要用于把上游多个中断源的中断组合在一起,然后与下游相连接。

     

    2. diplomacy node

     

    diplomacy node用于与上下游节点连接,并与上下游节点协商参数。

    IntXbar中的节点是一个IntNexusNode:

     

    1) sinkFn

     

    sinkFn就是uFn,就是把参数向上游传递的函数。这里用于把IntXbar看到的下游节点的参数向上游节点传递,转换为上游节点看到的IntXbar的参数。

     

    这里不管下游节点的参数如何,都向上游传递一个默认的下游参数。

     

    2) sourceFn

     

    sourceFn就是dFn,就是把参数向下游传递的函数。这里用于把IntXbar看到的上游节点的参数向下游节点传递,转换为下游节点看到的IntXbar的参数。

    a. seq是与intnode节点相连的输入边的IntSourcePortParameters;

    b. seq.map(_.num).scanLeft(0)(_ + _).init汇总和offset平移用于把中断号重新编排:

    c. 把seq中的所有IntSourcePortParameters摊平成为一个IntSourcePortParameters。一个IntSourcePortParameters中的所有中断源的中断区间是不重叠的,多个IntSourcePortParameters之间不重叠则需要重新编排来保证;

    d. 根据NexusNode的特点,sourceFn把所有输入边的IntSourcePortParameters转换为一个IntSourcePortParameters;然后再把这个IntSourcePortParameters复制成n份(输出边的条数),供每个输出边使用。

    e. 也就是说,每个输出边都包含所有输入边传入的中断信号;

     

    3. lazy module

     

    lazy module用于实现IntXbar的内部逻辑。

     

    这里是把输入边输入的全部信号归并到一起,同输出边相连:

     

    1) 所有输入边一起使用,而不是成对的输入边和输出边逐个使用

     

    把所有输入边的中断信号组合在一起,成为cat:

     

    2) 把组合后的中断向量,灌入每一个输出边

     

     

    4. 伴生对象

     

    用于简化IntXbar的创建,输出xbar.intnode用于与其他节点连接:

     

    5. 附录

     

     

     

     

     

  • 相关阅读:
    Android UI Fragment探索之进阶篇
    Android Intent详解
    Android Activity数据间传递媒介Intent和任务与后退栈(进阶之路)
    Git使用详细教程
    const的用法,特别是用在函数前面与后面的区别!
    Linux下设置和查看环境变量
    Linux下查看和添加环境变量
    3Dslicer_Editor(2)
    3Dslicer_Editor(1)
    3Dslicer_DataModule
  • 原文地址:https://www.cnblogs.com/wjcdx/p/11618998.html
Copyright © 2011-2022 走看看