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. 用 GitHub Action 构建一套 CI/CD 系统

    ​ 缘起 Nebula Graph 最早的自动化测试是使用搭建在 Azure 上的 Jenkins,配合着 GitHub 的 Webhook 实现的,在用户提交 Pull Request 时,加个 r ...

  2. springboot设置banner

    下图是springboot项目启动的的打印数据,在log中可以清楚的看到有一个spring的banner图案,这个图案其实我们是可以自己进行设置的 我们在项目目录的resources目录下创建一个ba ...

  3. Spring官网阅读(十五)Spring中的格式化(Formatter)

    文章目录 Formatter 接口定义 继承树 注解驱动的格式化 AnnotationFormatterFactory FormatterRegistry 接口定义 UML类图 FormattingC ...

  4. 一文教你如何在ubuntu上快速搭建STM32 CubeIDE环境(图文超详细+文末有附件)

    在快速ubuntu上安装cubeide你值得拥有:适合对linux系统还不是很熟悉的同学: 文章目录 1 下载 cubeide 2 找到软件 3 安装 4 附件 5 总结 1 下载 cubeide 登 ...

  5. scala 中 Any、AnyRef、Object、AnyVal 关系

    Any,是 scala 中的抽象类,不能实例化 AnyRef 继承于 Any,它是一个 trait AnyVal 继承于 Any,它是一个抽象类,目的是消除基本类型,scala中只有引用类型,仅此作用 ...

  6. 转载-git使用之忽略不需要上传的文件的几种方式

    在我们使用git 的时候通常会遇到一些问题,一些文件我创建了但是我并不想上传或者有些文件我修改了但是并不想上传(为了适应个自己的开发环境),但是在每次git status的时候总能看到它,不仅感到很心 ...

  7. 批量下载B站视频

    一个一个下载:https://www.zhihu.com/question/41367609 WSDAB的回答批量下载:https://www.zhihu.com/question/49793759( ...

  8. mysql 中 innoDB 与 MySAM

    mysql 中 innoDB 与 MyISAM 的特点 --ENGINE = innodb 1.提供事务处理,支持行锁: 2.不加锁读取,增加并发读的用户数量和空间: 3. insert/update ...

  9. 用js写一个贪吃蛇小游戏

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. javaweb学习之路(1)request

    1.本次练习写一个简单的注册页面 准备工作:首先搭建好服务器tomcat环境,使用的编译软件是eclipse 2.在eclipse中创建一个web工程 3.在webContent文件夹下创建一个reg ...