第一個問題:如果沒有信息,那麼它們如何實現循環精度?每條指令使用多少個週期,CPU分支預測邏輯是否已知?
該模擬器確實提供了一個週期精確的模擬,以獲得足夠精確的CPU型號,但沒有提供適用於英特爾或AMD當前產品的開箱即用型號。有人在英特爾或AMD可以訪問所需的信息可以創建一個RTL級別模型,併爲當前處理器獲得週期精確的模擬。英特爾和AMD之外的人不能。您仍然可以將公開已知的信息提供給模擬器並獲得合理的結果。這些結果將不會與真實硬件相同。
如果您是一位軟件開發人員並且想要對真實硬件進行基準測試,請使用真實硬件!像PLTsim這樣的模擬器專爲想要測試新硬件特性而無需在新芯片上花費數十萬美元的(學術)硬件開發人員而設計。
第二個問題:理論上可以在基於x86的硬件上實現硬rtos嗎?
當然是理論上可能。在所有情況下,您都需要考慮所有輸入的每個代碼段的絕對最差情況。實際的問題是像酷睿2這樣的處理器非常複雜,處理器的狀態非常龐大。此外,這些處理器的設計並不是針對時序確定性的。一個非常困難的RTOS必須非常保守。最後,正如您正確觀察的那樣,英特爾和AMD以外的人員無法獲得進行這些保守假設所需的所有信息。在實踐中,傳遞最新和最好的cpus是合理的,而是使用具有確定性時序的更舊,更簡單的cpus。另一方面,如果實時操作系統不一定非常難以實時操作,那麼您總是可以包含一些安全邊界和希望達到最佳效果。 ;-)
查看常見問題,關注他們的「協同模擬」技術。這是通過在主處理器上實際執行模擬代碼來實現的。 –
@HansPassant我認爲你誤解了「合作模擬」的概念。循環精確模擬完全基於用戶提供的處理器模型。主處理器僅用於加速和/或驗證模擬。 –
這只是簡單的模擬,沒有「co」。 –