计算机体系结构模拟器SimpleScalar简介
今天开始,我们开始介绍一些和计算机体系结构相关的知识,例如Cache的失效类型,以及失效产生原因等。开始之前,我们有必要首先介绍一下,体系结构学术界广泛使用的一款模拟器SimpleScalar。
SimpleScalar是什么
SimpleScalar 是上世纪由威斯康辛大学发布的一款开源模拟器,具备良好的可移植性和可扩展性。SimpleScalar 在学术界具有十分重要的影响力,根据其官方网站统计,历年体系结构顶级会议中有一半以上的研究者采用该模拟器来评估他们的研究成果。
作为一款时钟精确的模拟器,SimpleScalar 采用执行驱动方式模拟,包含功能模拟和性能模拟。
SimpleScalar 的指令集架构采用C 语言宏声明,目前版本主要支持PISA 指令集和Alpha 指令集。
根据模拟的目的不同,SimpleScalar 包含多个模拟器实体,从最简单的Sim-fast 到最为复杂的Sim-outorder,可分别用于功能模拟、Cache 配置策略、流水线、前瞻预测等体系结构问题的全面研究。
同时,随着SimpleScalar 一起发布的还有一系列工具链(交叉编译器,汇编器,流水线跟踪器等),他们与SimpleScalar 的交互过程如下图所示。
图一 SimpleScalar交互过程
Fortran 代码需要先由F2C工具转换为标准C 代码,交叉编译器则将标准C 代码编译为模拟器后端指令集下的二进制代码,交由模拟器执行模拟,通过这些交互最终实现一个完整的模拟平台。
SimpleScalar模拟器
SimpleScalar包含多个模拟器,复杂度由最简单的Sim-safe到最复杂的Sim-outordor,下面简要介绍这些模拟器。Sim-fast
Sim-fast有以下特点:
(1)Sim-fast执行速度最快,不关心模拟过程细节信息;
(2)顺序执行指令;
(3)不支持cache的使用,不进行指令正确性检查;
(4)不支持模拟器本身内嵌的调试器。Sim-safe
Sim-safe追求的是指令的正确性,不追求速度。Sim-bpred
Sim-bpred主要模拟分支预测功能。Sim-cache
Sim-cache主要模拟cache功能。Sim-eio
Sim-eio主要模拟EIO Traces(外部事件跟踪)和断点文件。Sim-outorder
Sim-outorder主要支持顺序和乱序执行。Sim-profile
Sim-profile可以提供给使用者,已经添加到模拟器里面的所有设定,便于收集。
小结
今天的内容只是让大家能对SimpleScalar有一个初步的认识,后面会在具体的使用介绍过程中,加深对它的理解。
参考资料:[1]计算机体系结构教材
[2]SimpleScalar模拟器使用指南