Rocket - tilelink - AtomicAutomata之二】的更多相关文章

https://mp.weixin.qq.com/s/XDUtw0uPrVXC4CChbydF_A   分析在透传和代理两种模式下,AtomicAutomata可能出现的问题.   ​​   1. 透传   如果下游节点支持某一个Atomic操作,并且AtomicAutomata节点被允许不做代理的话,可以由下游节点处理这个Atomic操作: ​​   因为透传的请求不会被缓存到CAM中,而CAM中已缓存的请求具有更高的优先级,所以当透传的 请求发送到out.a时,CAM实际上是空的. ​​  …
https://mp.weixin.qq.com/s/O7VTHqpCFNJQi3EpucXkIw   简单介绍AtomicAutomata的实现.(细节问题太多,恕不完全表述.)   ​​   1. 基本功能   AtomicAutomata是一个适配模块,为下游节点添加Atomic操作的支持.Atomic操作包括数学运算和逻辑运算两大类.   类参数如下: a. logical:是否为下游节点添加logical操作支持,也就是AtomicAutomata这个节点是否实现logical原子操作…
https://mp.weixin.qq.com/s/DaJhf7hEoWsEi_AjwSrOfA   简单介绍RegisterRouter的实现.   ​​   1. 基本介绍   实现挂在TileLink总线上的寄存器节点.   2. TLRegisterNode   实现diplomacy概念下的寄存器节点,是一个下游节点,即末端节点: ​​   1) 参数   ​​ a. address:支持的地址集合: b. device:寄存器所属设备: c. deviceKey:设备键值:控制寄存…
https://mp.weixin.qq.com/s/NkbW465NAmhDsETksd2M0g   介绍ErrorEvaluator的实现.   ​​   1. 基本介绍   ErrorEvaluator用于判断请求(Request)是否符合某种模式(Pattern). 若符合,则下游节点针对这个请求的响应消息中应该报告错误.   2. RequestPattern   ​​   1) 测试方法:test: TLBundleA => Bool   a. 输入参数:TLBundleA,可以看出…
https://mp.weixin.qq.com/s/KJ8pVH76rdxPOZ1vE3QlKA   简单介绍tilelink对Diplomacy Nodes的实现.   ​​   1. TLImp   TLImp继承自NodeImp: ​​ 其中: a. D: TLClientPortParameters b. U: TLManagerPortParameters c. EO: TLEdgeOut d. EI: TLEdgeIn e. B: TLBundle f. mixI/mixO把当前节…
https://mp.weixin.qq.com/s/0ob-Fq-ZOoj-_S7pTJu6rQ   介绍TLArbiter的实现,主要关注如何实现burst的多个beat的输出.   ​​   1. beatsIn/sourcesIn   对输入参数进行简单处理.输入参数为: ​​   sources为不定参数: ​二元组第一个元素为所需时钟周期即心跳(beat)的个数,第二个元素为输入的DecoupledIO.   2. beatsLeft   剩余的beat数: ​​   3. idle…
https://mp.weixin.qq.com/s/9nikweQUGG5FO3Z8t6feaw 介绍Parameters中定义的fastProperty的实现.(使用最近的新版本,差别不大)   ​​   1. groupByIntoSeq   用于把列表中的每个元素,使用键值(key value)函数f进行分组,然后返回分组结果. ​​   1) 两个参数列表: a. (xs: Seq[A]): A为列表元素的类型,xs为待分组元素的序列: b. (f: A => K): K为键值的类型,…
https://mp.weixin.qq.com/s/v8plWCBD8vZkxykjJe4TCg   介绍AsyncCrossing的实现,主要介绍如何实现diplomacy Node和LazyModule相关内容.   ​​   1. TLAsyncCrossingSource   异步上游节点(源节点): ​​   1) node:LazyModule的节点成员   node用于与其他diplomacy节点协商参数,在这里是一个异步上游节点: ​​   TLAsyncSourceNode是…
https://mp.weixin.qq.com/s/Gqv09RIgSSg5VKe-wb4aGg   讨论tilelink中使用MaskGen生成mask的用法.   1. tilelink中的mask   1) channel a/b包含一个mask信号: ​​   Byte lane select for messages with data: ​​ 这里并没有显示mask信号.可以看到传输数据使用的byte lane与地址是对应的.按照mask的定义,如果整理出来,应该如下表: ​​  …
https://mp.weixin.qq.com/s/1I6DcONr0Mg7xiX8F1C7SQ   简单介绍TileLink相关的参数实现(具体问题暂时不展开,后续用到时再做分析).   ​​   1. TLManagerParameters   ​​ 定义TileLink Manager节点的参数,Manager节点为Sink节点.   1) 参数列表   a. address:支持的地址集合: b. resources:包含的资源: c. regionType:区域类型: d. exec…