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. 附录

Rocket - interrupts - Xbar的更多相关文章

  1. Rocket - interrupts - Nodes

    https://mp.weixin.qq.com/s/BlW4y0Ez1kppxvSHAla31A 简单介绍interrupts相关的diplomacy节点. 1. IntImp 中断节点实现: 1) ...

  2. Rocket - interrupts - Parameters

    https://mp.weixin.qq.com/s/eD1_hG0n8W2Wodk25N5KnA 简单介绍interrupts相关的Parameters. 1. IntRange 定义一个中断号区间 ...

  3. Rocket - tilelink - Xbar

    https://mp.weixin.qq.com/s/UXFHYEQaYotWNEhshro68Q   简单介绍Xbar的实现.   ​​   1. 基本介绍   用于为Xbar的输入和输出连接生成内 ...

  4. Rocket - interrupts - NullIntSource

    https://mp.weixin.qq.com/s/Fn3u2OSLAzPDrlZTiLfikg 简单介绍NullIntSource的实现. 1. 简单介绍 NullIntSource实现一个不会发 ...

  5. Rocket - interrupts - Crossing

    https://mp.weixin.qq.com/s/nSX4prXFb4K5GSUhPtOUCg 简单介绍Crossing的实现. 1. IntXing 这是一个LazyModule: 1) 参数 ...

  6. Rocket - 断句 - Diplomatic Design Patterns: A TileLink Case Study

    https://mp.weixin.qq.com/s/afRVgTCYs1Mxu898uSmVaQ 整理一篇介绍Diplomacy和TileLink的文章.   原文链接: https://carrv ...

  7. LPC43xx SGPIO DMA and Interrupts

    The SGPIO output pins SGPIO14 and SGPIO15 can trigger a GPDMA request SGPIO pins SGPIO14 and SGPIO15 ...

  8. mypc--------------->lspci,lsusb,meminfo cpuinfo ioports filesystems interrupts mounts net partitions pagetypeinfo slabinfo timer_list uptime version zoneinfo 等配置信息

    [user@username home]$ lspci00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Contro ...

  9. 64位开源处理器Rocket该人士介绍

    最近大概读一点UCB发布时间Rocket处理器的源代码,的每个文件的源代码的功能有一定的一般理解,Mark一点点. Rocket是一家64bit标量处理器,5第一阶段管道,用途risc-v指令集.综合 ...

随机推荐

  1. 2019-2020Nowcoder Girl初赛 题解

    题目都不是很难,就是最后一题有点毒瘤 第一题:牛妹爱整除 这个你把一个进制数进行拆分,拆分成若干位,然后在取模,这样会发现如果是x进制的数,那么对x+1这个进制转化即满足条件. 举个例子:一个x进制数 ...

  2. Maven安装本地jar包到本地仓库

    Maven 安装 JAR 包到本地仓库的命令是: mvn install:install-file -Dfile=jar包的位置 -DgroupId=上面的groupId -DartifactId=上 ...

  3. Java BC包做sm2加密方法 ,签名验签方法

    package com.sdyy.common.bc_sm2; import org.bouncycastle.jcajce.provider.asymmetric.x509.CertificateF ...

  4. js函数传递参数的方式------传值与传递指针

    原则: 1. 基本类型:传值 2. 对象:传递指针 应用场景之一: 用jq选择器获取某个div后(例如:element),准备进行某些修改,之后添加到页面中去. 采取例一的方式,append后发现修改 ...

  5. MongoDB最佳安全实践

    在前文[15分钟从零开始搭建支持10w+用户的生产环境(二)]中提了一句MongoDB的安全,有小伙伴留心了,在公众号后台问.所以今天专门开个文,写一下关于MongoDB的安全. 一.我的一次Mong ...

  6. Linux内核驱动学习(八)GPIO驱动模拟输出PWM

    文章目录 前言 原理图 IO模拟输出PWM 设备树 驱动端 调试信息 实验结果 附录 前言 上一篇的学习中介绍了如何在用户空间直接操作GPIO,并写了一个脚本可以产生PWM.本篇的学习会将写一个驱动操 ...

  7. R语言:日薪和应发工资

    生产部门普通员工为日薪,有时要知道日薪和应发工资的转换关系.做表一为日薪取整数,白天工资+晚上工资=应发工资,延长工作时间取时薪的1.5倍,应发工资保留到十位.做表二为应发工资取十的倍数,推算相应日薪 ...

  8. imos-累积和法

    在解AOJ 0531 Paint Color时,学到了一个累积和的妙用--imos法,由于原文是日语,所以特意翻译过来.值得一提的是,作者Kentaro Imajo跟鄙人同龄,却已取得如此多的成就,而 ...

  9. 4-JVM 参数

    JVM 参数 标准参数:不会随着jdk版本的变化而变化.比如:java -version.java -help 非标准参数:随着JDK版本的变化而变化. -X参数[用的较少]非标准参数,也就是在JDK ...

  10. PAT-1060 Are They Equal (科学计数法)

    1060. Are They Equal  If a machine can save only 3 significant digits, the float numbers 12300 and 1 ...