Page 48 - 《软件学报》2025年第9期
P. 48

韩金池 等: Spike-FlexiCAS: 支持缓存架构灵活配置的 RISC-V 处理器模拟器                                3959



                                          核-0                               核-1
                             L1I-0           L1D-0              L1I-1          L1D-1
                                   Inner          Inner              Inner           Inner
                              Cache   Policy  Cache   Policy     Cache   Policy  Cache   Policy
                                  Outer           Outer              Outer           Outer


                                   Inner          Inner              Inner           Inner
                                L2-0                               L2-1
                                  Cache           Policy             Cache          Policy
                                          Outer                              Outer
                                                                                       一致性总线


                                     LLC-S0  Inner                LLC-S1  Inner
                                       Cache       Policy          Cache       Policy
                                             Outer                       Outer

                                                                             内存总线
                                                            Inner

                                                            内存

                                            图 2 包含两个处理器核和三级缓存的系统


                                           表 3 上下级缓存通信端口间传递的消息类型

                   消息类型             方向                      缓存与缓存                     缓存 (LLC) 与内存
                     获取       内侧端口向外侧端口           上级缓存请求读一个缓存块或权限升级                LLC 请求从内存读取数据
                     探测       外侧端口向内侧端口          下级缓存请求上级驱逐或写回一个缓存块                       未使用
                     写回       内侧端口向外侧端口                上级缓存写回一个缓存块                 LLC 向内存写回一个缓存块
                     授予       外侧端口向内侧端口             下级缓存回复上级缓存的获取请求                LLC 获得之前请求读的数据
                     冲刷       内侧端口向外侧端口                 请求冲刷一个缓存块                         未使用
                     完成       内侧端口向外侧端口              上级缓存标识请求事务的结束                        未使用



                                             表 4 一级缓存与处理器通信的消息类型

                              消息类型            携带参数            是否必要                 功能
                                读               地址               是          请求读一个地址的数据
                                写            地址, 写数据             否             请求写一个地址
                                冲刷              地址               是            请求冲刷一个地址
                                写回              地址               否            请求写回一个地址
                              冲刷缓存               无               是            请求冲刷整个缓存

                 2.1.2    具体实现
                    上下级缓存的包含关系和缓存的存储结构决定着通信事务处理的流程. FlexiCAS                       内侧端口的     UML  框架图如
                 图  3  所示. 内侧基类端口作为抽象基类, 定义了通信协议中的接口函数. 包含性内侧端口继承自内侧基类端口, 它
                 实现了不参与一致性的缓存需要的通信接口, 还定义了通信事务处理需要的通用接口并基于包含性的缓存关系进
                 行了实现. 排他性内侧端口和非包含非排他性内侧端口都继承自包含性内侧端口, 它们分别基于排他性包含关系
   43   44   45   46   47   48   49   50   51   52   53