Rocket - tilelink - RegionReplicator
2024-08-24 20:59:42
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作为复制时使用的掩码:
最新文章
- 使用div创建选取框
- Java _ JDK _ Arrays, LinkedList, ArrayList, Vector 及Stack
- mysql中一对一,一对多,多对多关系
- 离散信号MATLAB频谱分析程序
- Spring IOC和DI原理讲解并制作LazyCoder版的Spring (一)
- SQL学习之--触发器
- 利用proxychains在终端使用socks5代理
- NSScanner扫描字符串中()的内容
- 用webgl打造自己的3D迷宫游戏
- asp.net网站管理工具 遇到错误。请返回上一页并重试。
- span设置宽度有效无效问题
- [js]javascript中4种异步
- 精华阅读第 13 期 |常见的八种导致 APP 内存泄漏的问题
- js时间格式化函数(兼容IOS)
- FZU Problem 2028 时空门问题
- this与JavaScrip中的四种调用模式
- 利用JqGrid结合ashx及EF分页显示列表之二
- TestGc finalize()
- vmware增加共享文件夹
- C# 多条件拼接sql