首页 技术 正文
技术 2022年11月14日
0 收藏 556 点赞 4,090 浏览 1469 个字

https://mp.weixin.qq.com/s/UHGq74sEd9mcG5Q3f-g3mA

 介绍AddressDecoder的实现。 ​Rocket – diplomacy – AddressDecoder​1. 基本定义 ​Rocket – diplomacy – AddressDecoder​每个Port包含多个地址集合(Seq[AddressSet]),需要确定输入的地址是属于哪一个Port。AddressDecoder的任务是在满足需求的情况下,找到需要比对的最少比特位。 其中,givenBits是确定要比对的比特位。如果givenBits已经可以满足需求,则不需要再找其他比特位。 2. 类型定义 ​Rocket – diplomacy – AddressDecoder​ 3. partitionPort ​Rocket – diplomacy – AddressDecoder​根据AddressSet中bit对应位的值,把Port中的AddressSet分成两部分。这里存在三种情况:​Rocket – diplomacy – AddressDecoder​ 这样就把一个Port拆分为两部分分别称为一个Port。 4. partitionPorts ​Rocket – diplomacy – AddressDecoder​根据partitionPort的划分结果,把所有相似的Port搜集到一起。 case_a_ports中包含的port中的所有的AddressSet中,bit对应位的值为0;case_b_ports中包含的port中的所有的AddressSet中,bit对应位的值为1; 5. partitionPartitions ​Rocket – diplomacy – AddressDecoder​根据partitionPorts的划分结果,把所有相似的Partition搜集到一起。 最初的Partitions中只包含一个partition,根据第一个比特位的划分,把这一个partition分为两个partition;根据第二个比特位的划分,把这两个partition分为四个partition;。。。 每个partition中的port是bit对应位相同的port,亦即使用bit对应位无法区分的port。所以最终的目标是每个partition中只包含一个port,这样就可以把所有的port都能单独区分出来。​Rocket – diplomacy – AddressDecoder​ 6. bitScore ​Rocket – diplomacy – AddressDecoder​对bit划分的结果进行评分,依据是均匀程度,越能把Ports进行均匀划分的bit位得分越高:​Rocket – diplomacy – AddressDecoder​ 这里有一个疑似Bug:根据命名规则,前两个度量使用max开头,使用max结尾;后两个度量应该是使用sum开头,使用sum结尾。但是第四个度量值使用sum开头,而使用max结尾。使用max结尾,使其意义与第二个度量值一样,显得冗余。所以应当是sum结尾。 7. recurse ​Rocket – diplomacy – AddressDecoder​从bits中,递归找到能对所有Port进行唯一区分的最有比特位集合。 8. AddressDecoder.apply ​Rocket – diplomacy – AddressDecoder​​Rocket – diplomacy – AddressDecoder​ a. 确保任意两个Port中的地址集合不重叠,重叠的地址集合怎样都无法区分;b. 找到所有要尝试的比特位;c. givenBits包含了一定要比对的比特位,所以先使用其中的比特位进行划分;d. 使用recurse找到bitsToTry中的最优比特位组合;e. 与givenBits或在一起即为(为了确定address属于哪一个port,)所有要比对的比特位;f. 验证结果:只考虑output中比特位的情况下,任意两个Port中的地址集合不重叠; 9. 使用实例 ahb/Xbar.scala(为提升可阅读性,已进行重构):​Rocket – diplomacy – AddressDecoder​ a. 找到所有的port:val port_addrs;b. 找到区分port地址所需要的比特位:val routingMask;c. 每个port中,只考虑routingMask中的位,所需要比对的地址:route_addrs;d. 生成电路比对输入的地址(in.haddr)是否存在与每一个Port中,返回结果比特位(Bool); 

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,111
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,584
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,431
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,203
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,838
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,922