2009-08-24 97 views
3

我正在編寫一個例程,以在使用回寫模式關閉PowerPC750數據緩存之前將其關閉。試圖刷新PowerPC 750數據緩存

我發現IBM application note編程緩存,其中包括一個刷新例程,但我很困惑的示例代碼。我認爲這可能是一個錯誤的例子,但認爲我會檢查。在清單2中有兩個循環,其中包括和指示「移動到下一個塊」。移動到下一個塊是通過將0x10添加到當前地址來實現的。 我會期望這是一個0x20(32)的加法,因爲我認爲緩存行是32字節寬。任何人都可以確認或否認我的想法?

+1

我預料它也會是0x20 ......你可以給IBM發郵件並詢問是否有錯誤? – Goz 2009-08-24 15:22:38

+2

Linkrot 20120826:https://www-01.ibm.com/chips/techlib/techlib.nsf/techdocs/0DD2C54EDDF7EB9287256F3F00592C64/$file/PPC750GXFX_cache.pdf – 2012-08-26 20:12:01

回答

4

經過其他SO用戶的確認,我通過電子郵件發送了應用筆記的作者。他同意0x10應該是0x20,並且可以在將來更新該筆記。

4

你看起來是對的。隨着他們的數學在上市前表示:

! CTR - the number of data blocks needed to fill the cache - save it in r3 
!  32K (size of cache)/32 (bytes per block) = 0x400 

他們總是設置計數寄存器0x400的,它指出,每塊有32字節該文件中的幾個地方。所以在數學之後,你需要增加0x20而不是0x10。和任何裝配一樣,如果出現一些奇怪的硅誤差,你肯定應該用兩種方法進行測試。