2016-12-30 56 views
1

我正在開發Atmel應用程序SAME70Q21微處理器。該MCU具有ARM Coretex-M7內核。我可以在Atmel SAME70處理器中使用「指令」TCM數據嗎?

愛特梅爾在這個特殊的MCU變體中實現了ARM TCM(緊耦合存儲器)。 Atmel似乎將TCM分爲「ITCM」(指令TCM)和「DTCM」(數據TCM)兩部分。我正在使用DTCM進行快速存儲,通常來自中斷。但是,ITCM目前實際上已關閉,但TCM的配置系統仍分配了32K的數據。

我在想,因爲我沒有執行ITCM,並且內存已分配,我可以使用ITCM進行數據存儲嗎? Cortex-M7是一個馮諾依曼體系結構CPU,我所看到的架構圖顯示了兩個TCM內存段具有與CPU分離的接口。

鏈接描述文件中的DTCM和ITCM內存空間都是rw(爲了使用ITCM,實際上您實際上必須在運行時將代碼重新定位到其中)。 (ab)以這種方式使用ARM內核的性能影響是什麼?

+0

「**指令** TCM不知道怎麼辦?它的意思是存儲中斷處理程序或其他性能相關函數,更好的方法是按照預期使用它。做一些過早的優化,對你的代碼進行基準測試和分析,找出熱點並優先使用C語言進行優化,只有這樣纔可以考慮採用不同的方法,並將這些功能放在ITCM中。它可以用於datqa(如果可以的話) – Olaf

+1

@Olaf - 也許AFICT,指令/數據區別最初用於較早的核心(ARM926EJ),並將函數移入它的部分涉及將其視爲普通RAM?或者事實上,我只是好奇?或者你認爲我沒有做過其他優化? –

+1

我總是驚訝於「什麼如果我這樣做的話「在堆棧交換中被如此積極地否定。嘗試和嘗試是一種很好的學習方式,中醫部分的文檔至多是最少的,我試圖瞭解該設備如何更好地工作。爲什麼我不能問一些奇怪的事情? –

回答

2

From the ARM Cortex-M7 Processor Technical Reference Manual Section 5.8 TCM Interfaces

預取單元(PFU)可以從任何TCM接口的取指令。負載存儲單元(LSU)和AHBS接口可以分別使用任何TCM接口讀寫數據。如果代碼放置在ITCM中並且數據位於DTCM中,則可以獲得最佳性能。然而,沒有功能限制,其中TCM,代碼和數據被放置在

如果您既沒有使用代碼,那麼有可能是沒有性能損失,但如果你中醫運行的代碼,然後將它們分開的好處從哈佛架構,允許同時取指令和數據讀取。 ITCM的64位總線大概允許單週期指令和操作數提取 - 但我懷疑這對數據讀/寫有什麼好處。

+0

巴姆,那正好記錄我很好奇的行爲。我顯然需要閱讀ARM文檔。 –

相關問題