现代计算技术全解析
1. 仿真技术
仿真(Emulation)是利用软件让一种设备表现得像另一种设备。它和虚拟化有相似之处,二者都为运行软件提供虚拟环境,但虚拟化提供底层硬件的一部分,而仿真呈现的虚拟硬件与实际使用的物理硬件不同。
例如,在 x86 处理器上运行的虚拟机或容器运行针对 x86 编译的软件,可直接使用物理 CPU;而在 x86 硬件上运行的仿真器(执行仿真的程序)能运行针对完全不同处理器编译的软件,且仿真器通常除处理器外还会提供其他虚拟硬件。
以世嘉 Genesis(上世纪 90 年代的视频游戏系统)的完整仿真器为例,它会模拟摩托罗拉 68000 处理器、雅马哈 YM2612 声音芯片、输入控制器以及世嘉 Genesis 中的其他所有硬件。运行时,该仿真器会将原本为世嘉 Genesis 设计的 CPU 指令转换为 x86 代码实现的功能。这会带来显著的开销,因为每个 CPU 指令都必须进行转换,但足够快的现代计算机仍能全速仿真速度慢得多的世嘉 Genesis。结果就是能够在完全不同的平台上运行专为某个平台设计的软件,如下所示:
Source code
compiled for
System A
Machine code
for System A
1011010101
0101100111
1001010010
1010101101
0100101010
#include
int main()
{
if(x > 5)
System A
runs on…
also runs on…
System B
System A emulator
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



