【发布时间】:2014-09-13 22:33:27
【问题描述】:
我想为运行在 600 左右千赫兹的特别慢的 CPU 编写一个模拟器。如果我以天真的方式为 CPU 编写一个模拟器(即一次模拟一条指令而没有其他任何东西),那么模拟速度将比 600 kHz 快得多。
无论主机的速度如何,如何对模拟器进行编程以以正确的速度模拟 CPU?现实世界的模拟器通常使用什么技术来做到这一点?如何避免抖动减慢仿真速度?
【问题讨论】:
-
你在说什么模拟器? qemu,FPGA等?我的意思是,您将为这个模拟器使用哪种编程环境?
-
典型技术(使用慢定时器来模拟每秒 10 次 6k 周期)只能“平均”工作并且有很多抖动,所以我认为这里还不够好?
-
@SamProtsenko 我的具体用例是为在 POSIX 操作系统上运行的 8 位 CPU(想想家用计算机)编写一个模拟器。
-
@harold 我不确定标准技术是什么,研究也没有发现任何有趣的东西。您介意在答案中详细说明标准技术,以便我可以投票并可能奖励赏金吗?
-
@FUZxxl 所以它只是你自己用 C 语言编写并使用 POSIX API 的用户空间应用程序,对吗?您将使用哪个操作系统(例如 Linux、FreeBSD)?还有哪个内核版本?
标签: emulation slowdown cpu-speed device-emulation jitter