2011-06-09 28 views
2

我正在使用ARM926EJ-S,並試圖弄清楚ARM是否可以給CPU(例如一個可讀寄存器)CPU的週期計數器。我想一個#代表CPU自啓動以來的週期數。ARM926EJ-S週期計數器

在我的系統中,我只有低分辨率外部RTC /定時器。我希望能夠實現高分辨率定時器。

非常感謝提前!

+0

關於「#將代表自CPU上電以來的週期數」,如果這樣的寄存器是32位,處理器速度是200MHz,那麼在打開電源之前,計數器會持續多於21秒。自開機以來的時間如果您真正想要的時間在指令週期中沒有用處。 – Clifford 2011-06-11 07:13:09

+0

ARM926可能只有定時器可以在總線速度下運行。 – ninjalj 2011-06-11 09:15:57

回答

0

你可能只有兩種選擇:

  • 中使用的指令週期精確的仿真器;這裏的問題是有效地模擬外圍設備和外部刺激可能是複雜的或不可能的。

  • 使用外設硬件定時器。在大多數情況下,您將無法以ARM9的典型內核時鐘速率運行此類定時器,並且在定時期間的任何一側都可能會出現高位服務,但可用於執行時間超過更長或更長的代碼段,這可能比循環次數更實際。

雖然循環計數可能會有所擴展到不同的時鐘速率,它仍然受內存限制和I/O等待狀態,所以也許不是有用,因爲它可能看起來性能度量,除了在微分析水平和更大的性能收益通常是通過採取更廣泛的觀點。

+0

非常感謝! ..我想我沒有「立即」的解決方案......但是......我會考慮你的建議! – Eyal 2011-06-11 10:11:02

0

arm-9沒有配備包含在Cortex系列中的PMU(性能監控單元)。 PMU被描述爲here。 Linux內核配備了使用PMU進行基準性能測試的支持。有關perf工具集的文檔,請參閱here

位不確定的ARM-9,需要挖多一點...

+0

感謝您的快速回答!但是...你確定PMU存在ARM926EJ-S?...我知道它存在Cortex/ARM11?... – Eyal 2011-06-09 21:17:09

+0

@Eyal 926沒有PMU,正如我所說的,我需要更多的挖掘:-) – 2011-06-09 21:29:52

+0

哦...沒有注意到最後那裏... SORRY!...所以我的問題仍然是開放的,我猜... – Eyal 2011-06-09 21:40:36