分离式指令/数据缓存的主存带宽计算相关疑问
分离式缓存的主存带宽计算问题解答
1. 分离式缓存的总带宽计算逻辑
没错,必须分别计算指令缓存、数据缓存各自对主存的带宽消耗,再将两者求和得到最终的总主存带宽。
分离式缓存的指令访问和数据访问是两条独立的请求路径,两类缓存缺失时触发的主存块传输是相互独立的,主存需要同时承载这两类请求的带宽需求,因此总带宽是两者的叠加。
2. 指令缓存与数据缓存的读写差异
- 指令缓存:仅负责读取指令,不会产生写入主存的操作(习题场景下默认排除自修改代码这类特殊情况)。所以指令缓存的主存交互只有读缺失时的块加载,不存在写相关的带宽消耗。
- 数据缓存:需要处理读、写两类操作——读缺失时要从主存加载块,写操作则根据缓存策略(如直写/回写、写分配/非写分配)产生对应的主存访问,因此必须完整使用给定公式计算其带宽消耗。
3. 指令缓存的公式简化
由于指令缓存无写操作,可直接简化计算公式:
只保留读缺失带来的带宽消耗,公式为:指令缓存主存带宽 = 指令每秒访问次数 × 指令读缺失率 × 块大小
将这个结果与数据缓存计算出的带宽相加,就是最终的主存总带宽。
内容的提问来源于stack exchange,提问作者papitas
相关产品推荐
相关产品推荐

