2012-12-20 62 views
0

我目前正在構建一個小的虛擬機,模擬一個以超慢時鐘速度(幾個100Khz)運行的舊的16位CPU。如何限制虛擬機的操作碼處理速度等。或者我會甚至想?控制虛擬CPU的時鐘速度?

+0

如果您正在虛擬化,您無法在一段時間後運行每個操作碼嗎?或者你的意思是字面上減慢了你所寫的虛擬操作代碼由你的物理處理器解釋的速率? – DanZimm

+0

@DanZimm後一個,雖然第一個可能是一個有點hacky的解決方案。每個操作碼都應該佔用很多「CPU週期」,但不是真正的週期,我必須模擬自己的操作。 – Daniel

+1

那麼在解析操作碼時,每個虛擬操作碼會出現多個cpu週期?換句話說,如果你希望它慢下來,只用一個計時器還是更好些?你甚至可以使用sleep() – DanZimm

回答

1

正如我在建議使用某種形式的計時器機制

,如果你想在這裏符合特定速度時我會怎麼做評論說:

1 kHz 1000 Hz 1/s    
----- * ------- * ----- therefore 1 kHz = 1000/s 
    1  1 kHz  1 Hz 

這意味着每秒鐘1000個的操作出現,所以取倒數來查找操作之間的時間量,使1/1000秒或1毫秒

因此,可以說你想匹配的125 kHz

125 kHz 1000 Hz 1/s    
------- * ------- * ----- therefore 125 kHz = 125000/s 
    1  1 kHz  1 Hz 

所以125000分之1秒或0.008毫秒或8000 NS

希望這有助於!