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

 
简单介绍RegionReplicator的实现。
 
 
1. 基本介绍
 
根据mask把某一个区域复制成多个区域。复制的数目是mask中比特1的数目的2次幂。
 
2. RegionReplicator
 
1) 类参数
 
mask是掩码,其中的比特1对应的位:
a. 在待复制的区域地址的基址中应当为0;
b. 在待复制的区域地址的掩码中应当为0;
如此,根据这些位值的变化,就可以复制出多个区域。
 
2) diplomacy node
 
diplomacy node用于与上下游节点连接。
 
这里是一个适配器节点,主要对向下传递的参数进行适配进行适配:
 
a. ids
 
mask中值为1的位,取值为0或1,然后各个位进行组合所得值的集合;
 
b. managerFn
 
把下游节点的manager参数中的每一个地址集合都使用mask进行扩展。
如此向上游节点显示的manager参数就从之前的单个区域扩展成了多个区域。
 
3) lazy module
 
实现RegionReplicator的内部逻辑:
 
1) 成对的输入边和输出边
 
 
2) 默认直连
 
 
3) 适配请求的地址
 
in.a.bits.address是扩展之后的地址,把其中掩码位对应位的值清0,即可得到扩展前的地址。然后使用这个扩展前的地址向下游节点发起请求。
 
4) 不支持Cache
 
 
这个判断是要求regionType从UNCACHED/UNCACHEABLE/PUT_EFFECTS/GET_EFFECTS中取值:
 
3. HasRegionReplicatorParams
 
包含一个replicatorMask作为复制时使用的掩码:
 

Rocket - tilelink - RegionReplicator的更多相关文章

  1. Rocket - tilelink - RegisterRouter

    https://mp.weixin.qq.com/s/DaJhf7hEoWsEi_AjwSrOfA   简单介绍RegisterRouter的实现.   ​​   1. 基本介绍   实现挂在Tile ...

  2. Rocket - tilelink - Nodes

    https://mp.weixin.qq.com/s/KJ8pVH76rdxPOZ1vE3QlKA   简单介绍tilelink对Diplomacy Nodes的实现.   ​​   1. TLImp ...

  3. Rocket - tilelink - AsyncCrossing

    https://mp.weixin.qq.com/s/v8plWCBD8vZkxykjJe4TCg   介绍AsyncCrossing的实现,主要介绍如何实现diplomacy Node和LazyMo ...

  4. Rocket - tilelink - mask

    https://mp.weixin.qq.com/s/Gqv09RIgSSg5VKe-wb4aGg   讨论tilelink中使用MaskGen生成mask的用法.   1. tilelink中的ma ...

  5. Rocket - tilelink - Parameters

    https://mp.weixin.qq.com/s/1I6DcONr0Mg7xiX8F1C7SQ   简单介绍TileLink相关的参数实现(具体问题暂时不展开,后续用到时再做分析).   ​​   ...

  6. Rocket - tilelink - Bundles

    https://mp.weixin.qq.com/s/jrqBg2AIpQogBrpwNXjmwg   简单介绍Bundles文件中对TileLink规范(1.7.1)的定义. 参考链接:https: ...

  7. Rocket - tilelink - TLBusWrapper.to

    https://mp.weixin.qq.com/s/jSnhBzU5_ayQCg5fWAcx-g 简单介绍TLBusWrapper.to()的实现.主要介绍确定this{...}对应代码的过程. 1 ...

  8. Rocket - tilelink - BusWrapper

    https://mp.weixin.qq.com/s/03BvgTNQtD75Guco6gUGQg   简单介绍BusWrapper的实现.   1. HasTLBusParams   定义SoC的挂 ...

  9. Rocket - tilelink - Xbar

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

随机推荐

  1. zookeeper(分布式协调框架)简介与集群搭建

    ZooKeeper 的由来: Zookeeper最早起源于雅虎研究院的一个研究小组.在当时,研究人员发现,在雅虎内部很多大型系统基本都需要依赖一个类似的系统来进行分布式协调,但是这些系统往往都存在分布 ...

  2. 远程登陆与数据CP

    1 SSH登陆原理   SSH,Secure Shell,是一套协议标准,可以用来实现两台机器之间的安全登陆以及安全的数据传送,其保证数据安全的原理是非对称加密.   传统的对称加密方式使用的是一套密 ...

  3. spring学习笔记(七)HttpMessageConverter

    spring学习笔记(七)HttpMessageConverter 1. HttpMessageConverter的加载 2. 从StringMessageConverter探究消息转换器的原理 1. ...

  4. MySQL 入门(5):复制

    摘要 在这篇文章中,我将从MySQL为什么需要主从复制开始讲起,然后会提到MySQL复制的前提,bin log. 在这里会说明三种格式的bin log分别会有什么优缺点. 随后会讲到主从延迟方面的问题 ...

  5. Typora + Powershell/bash + Git搭建自己的笔记

    网上都说什么onenote,evernote,ant等笔记.个人感觉这些都不算太好,还是自己用简易东西搭建一个笔记. 个人推荐使用typora写笔记. 上面既有文件目录,还能通过模糊搜索. 然后需要p ...

  6. XCode Interface Builder开发——1

    XCode Interface Builder开发--1 创建Xcode项目 选择第二个选项 选择Single View App,点击Next 设置完后点击Next Xcode基本面板 导航面板 工具 ...

  7. OGG FOR BigData(Hive) GoldenGate 性能测试

    版本信息: Oracle GoldenGate Command Interpreter Version 12.2.0.1.160419 OGGCORE_12.2.0.1.0OGGBP_PLATFORM ...

  8. ArrrayList底层代码的实现

    定义变量 首先要想实现该块代码,必须定义三个私有变量. private Object[] elementData;该变量用来存储容器中元素的个数. private int size:该变量表示当前容器 ...

  9. Docker 部署Spring Boot 项目并连接mysql、redis容器(记录过程)

    Spring Boot 项目配置 将写好的Spring Boot 项目通过maven 进行package打包获得可执行Jar 再src/main/docker(放哪都行)下编写创建Dockerfile ...

  10. APIView中的dispatch

    (1)dispatch方法详解----封装原有的request对象 (原request中的方法和属性均可直接在封装后的request中调用,或者使用request._request也可,如:reque ...