Page 53 - 《软件学报》2025年第9期
P. 53
3964 软件学报 2025 年第 36 卷第 9 期
果差异最小, 这在一定程度上说明了 Spike-FlexiCAS 针对缓存仿真的准确性和正确性.
4.2 不同配置下 Spike-FlexiCAS 的性能测试
本文评估了 Spike-FlexiCAS 仿真时缓存携带数据和不携带数据对整体仿真速度的影响以及对缓存仿真速度
的影响. 具体地, 本文测试了在 Spike-FlexiCAS 运行 SPEC CPU2006 测试集时, 仿真 100G 条指令携带数据和不携
带数据所需的时间, 测试的结果如图 7 所示. 所有基准测试在携带数据运行时在缓存操作花费的时间和整体仿真
的时间均高于不携带数据运行. 特别地, 对于某些基准测试, 如 454.calculix 和 481.wrf, 携带数据时的缓存操作时
间较不携带数据增加了 35% 以上, 整体仿真时间的增幅也超过了 10%. 对于所有的基准测试, 携带数据时的缓存
花费时间与整体仿真时间的增幅分别约为 15% 和 5%.仿真时间增加的原因是由于携带数据运行会涉及到对数据
的拷贝和迁移, 因此降低了仿真的速度.
12
不携带数据 携带数据
时间 (×10 3 s) 10 8 6
2 4
0
436.cactusADM
445.gobmk
434.zeusmp
400.perlbench 401.bzip2 403.gcc 429.mcf 435.gromacs 444.namd 447.dealll 454.calculix 458.sjeng 462.libquantum 465.tonto 470.lbm 473.astar 481.wrf 483.xalancbmk mean
410.bwaves
450.soplex
459.GemsFDTD
482.sphinx3
456.hmmer
464.h264ref
(a) 缓存操作
35
不携带数据 携带数据
30
时间 (×10 3 s) 20
25
15
10
5
0
445.gobmk
450.soplex
434.zeusmp
436.cactusADM
462.libquantum
482.sphinx3
456.hmmer
458.sjeng
410.bwaves
400.perlbench 401.bzip2 403.gcc 429.mcf 435.gromacs 444.namd 447.dealll 454.calculix 459.GemsFDTD 464.h264ref 465.tonto 470.lbm 473.astar 481.wrf 483.xalancbmk mean
(b) 整体仿真
图 7 Spike-FlexiCAS 携带数据和不携带数据运行 SPEC CPU2006 测试集 100G 条指令花费时间对比
本文评估了不同的缓存层级对 Spike-FlexiCAS 的整体仿真速度影响以及对缓存仿真速度的影响. 具体地, 本
文首先测试了 Spike-FlexiCAS 在缓存层级为一级、二级、三级缓存以及都设置为包含性的上下级缓存关系时, 仿
真 SPEC CPU2006 测试集 100G 条指令花费的时间, 测试的结果如图 8 所示. 所有基准测试在缓存操作花费时间
和整体仿真时间都随着缓存层级的提升有所延长. 其中二级缓存和三级缓存对比一级缓存在缓存操作花费的时间
分别平均增长了 36.6% 和 60.3%, 整体仿真的时间分别平均增加了 9.9% 和 16.7%. 仿真时间增加的原因是由于缓
存层级的增加会导致维护缓存一致性的操作变多, 因此仿真的速度也会变慢.
本文评估了不同的上下级缓存包含关系对 Spike-FlexiCAS 的整体仿真速度影响以及对缓存仿真速度的影响.
具体地, 本文首先测试了 Spike-FlexiCAS 在缓存层级为三级, 二级缓存是一级缓存的包含性缓存, 三级缓存是一级
和二级缓存的包含性和排他性缓存时, 仿真 SPEC CPU2006 测试集 100G 条指令花费的时间, 测试的结果如图 9
所示. 在不同的基准测试下, 包含性缓存和排他性缓存的缓存运行时间和整体仿真时间并无绝对的优劣. 如对于
429.mcf 和 465.tonto 来说, 包含性缓存的仿真性能更优, 但对于 436.cactusADM 和 464.h264ref 等基准测试, 排他
性缓存的仿真性能则更胜一筹. 导致这种现象的原因是, 排他性缓存相对包含性缓存能容纳的缓存数据更多, 但维

