C64x+ DSP高速緩存一致性分析與維護
代碼CACHE一致性
圖 7中描述了其它主機對L2中代碼進(jìn)行修改的情況。這種情況下,當內核第一次執行此部分代碼時(shí),這部分代碼會(huì )被加載到L1P中。之后如果被其它主機修改,內核仍會(huì )從L1P中讀取原來(lái)的代碼而不是更新后的代碼。因此需要軟件進(jìn)行圖中2指示的操作。軟件不需要進(jìn)行代碼的搬移,只要在內核重新執行此部分代碼之前將L1P中此部分內容失效。當內核再次執行此部分代碼的時(shí)候,會(huì )按照CACHE的正常機制進(jìn)行此部分代碼的重新加載,從而保證內核可以讀取到更新后的代碼。
圖 7 其它主機修改L2代碼的情況
圖 8描述的是其它主機對DDR2中代碼進(jìn)行修改的情況。這種情況下,需要在內核重新執行此部分代碼前,將L1P和L2 CACHE中的相應內容進(jìn)行失效以保證內核執行時(shí)可以將最新的代碼加載到L2和L1P CACHE中。操作順序如下:內核對修改代碼會(huì )轉換為對存儲器的寫(xiě)操作,由于L1D只對讀不命中的情況才分配CACHE,所操作的代碼一定不在L1D CACHE中,更新的代碼會(huì )被直接寫(xiě)到L2中,如果修改的是DDR2中的代碼,數據可能會(huì )被更新到L2 CACHE中。之后的所有操作與上述兩種情況的處理相同。
圖 8 其它主機修改DDR2代碼的情況
數據CACHE一致性
對于數據部分的一致性維護,需要由軟件維護的情況是6),包括內核對DDR2的讀取和寫(xiě)兩種情況。圖 9和圖 10分別描述了這兩種情況。
圖 9 內核對DDR2上的數據讀的情況
圖 10 內核對DDR2上的數據寫(xiě)的情況
本文小結
高速緩存一致性問(wèn)題是DSP應用中常見(jiàn)的問(wèn)題,TI C64x+ DSP是業(yè)界高性能信號處理平臺,具有優(yōu)良的高速緩存性能。C64x+平臺上高速緩存一致性問(wèn)題維護可以歸納為以下兩點(diǎn):1) 代碼部分的一致性問(wèn)題需要由軟件來(lái)維護;2) 只有當內核和其它主機共同需要訪(fǎng)問(wèn)的數據緩沖區在外部存儲器中的時(shí)候,數據高速緩存一致性問(wèn)題才需要由軟件來(lái)進(jìn)行維護。其它情況下,數據高速緩存一致性都會(huì )由硬件自動(dòng)完成。
評論