由于写论文需要,仔细的学习和比对一下Emulator和Simulator的概念。原来“Emulator专门指硬件模拟,Simulator专门指软件模拟”的观点是不正确的,于是查看了很多文章的解释。同时也提醒自己,做科研一定要认真细致,无论看起来可能很微小的概念,都要去详细考证和比较,不能想当然。同时,进行概念比较和考证的时候也不要浮于表面,即使是最微小的概念,也要弄的清清楚楚。
关于Emulation和Simulation的探讨
解释一
以上内容来自《emulation和simulation的区别》一文,从以上内容来看,该文章认为的Simulation是不涉及到具体组件细节的模拟,而Emulation是涉及到底层硬件真实模拟出系统运行机制的方法。
解释二
以上内容来自《Simulator和Emulator的区别》一文,其中提到的凡是涉及到模拟内部设计、行为的都是Emulator,这样说,Gem5和真实硬件是Emulator,而QEMU属于Simulator,但是NUMA这种既是硬件又没有精确模拟CXL设备的内部设计和行为的模拟方式是Emulator还是Simulator?
解释三
有冲突应该是因为以上两者都是从用户空间的应用层去考虑的,而到了现在的Gem5和QEMU来说,更多应该去从设计目的角度思考问题,也就是能够完全模拟目标设备行为的为Simulator,只是模拟目标设备的软硬件功能,而没有具体实现内部逻辑的是Emulator。
总结
-
Simulator是尽可能做到全方位的模拟,而且力求逼真,有点欲将原型或模仿对象取而代之的味道。仿真更具体,接近实物(也有说接近硬件的,但肯定不局限于硬件)。
-
Emulator只是表面上做做样子,不会有真实的过程发生,但能够给出反馈,多用于研究和培训。模拟更抽象,侧重建模。
参考文献
[1]emulation和simulation的区别
[2]Simulator和Emulator的区别
[3]仿真器(emulator)和模拟器(simulator)的区别
[4]模拟和仿真的区别