模拟器与程序分析-4-基于C语言的周期精确模拟器(CAS)开发
发布时间
阅读量:
阅读量
引言
无论是computer architecture还是ASIC,模拟器都占据着至关重要的地位,这一点在前文已有所提及。通常而言,simulator可以划分为两类,一类为解释型,另一类为翻译型。解释型的运作方式是在主机的memory中构建目标机的structure,并依据指令的功能对虚拟的structure进行操作,以此来模拟真实环境下的运行过程。而翻译型则是将目标机上的程序转换为主机可执行的程序,在主机上直接运行。
解释型模拟器也被称为ISS(instruction set simulator)。其中一些仅实现功能层面的模拟(例如or1ksim),这可以通过构造虚拟体系结构的方式来达成。
然而,在许多实际应用场景中,需要实现cycle accurate simulation(如gem5,simplescaler)。那么该如何应对这一问题呢?
需要攻克两个核心难题:
1》如何利用串行语言来模拟并行操作,即在同一周期内确保前面的操作不会干扰后续的操作。本例中采用的是逆序模拟的方法。
2》如何实现精确到每个周期的仿真,特别是对于exception process部分。解决方案是采用更细粒度的cycle操作。不过由于本例过于简单,难以充分展示这一特性。
本小节将通过一个简单的实例来阐述CAS的基本原理。
4.1 需要进行仿真的电路
假设我们希望使用C语言来仿真如下所示
全部评论 (0)
还没有任何评论哟~
