32位內核與基于微控制器存儲架構的集成
圖 2.2 顯示了一個簡單的有 8 塊、單路的高速緩存設計,1 塊有 16 個字節(jié)。雖然這么小的高速緩存很難實現(xiàn),但它對指令執(zhí)行很有用。在這種情況下,地址標記將是整個地址的高 12 位,而索引將是尋址高速緩存塊內的特定條目的余下的兩位。
與指令預取緩沖器相比,指令高速緩存系統(tǒng)具有更復雜的地址比較系統(tǒng),因為該高速緩存陣列不僅包括每個高速緩存塊的連續(xù)尋址指令,而且可以將指令地址空間的任何區(qū)域包含在高速緩存塊內。
為了讓高速緩存更有效地工作,在閃存器件和指令高速緩存之間應當實現(xiàn)盡量寬的數據通道,保證內核能夠以最快的速度執(zhí)行程序指令。指令高速緩存在與閃存器件的接口上實現(xiàn)了一個指令預取機制來解決這個問題。否則,閃存存取時間的問題就會影響內核執(zhí)行速度。
在正常執(zhí)行過程中,所需的指令地址高位和高速緩存陣列的指令標記間開始一連串的比較。如果找到匹配的地址,高速緩存命中即被寄存,指令地址的低位將被用于高速緩存塊內的索引,以找回所需的指令。如果沒有發(fā)現(xiàn)匹配的地址,就是我們所說的高速緩存不命中。高速緩存不命中將導致高速緩存控制器從存儲區(qū)的特定區(qū)域讀入包含所需指令的緩存塊。被替代的高速緩存塊通常是陣列中最舊的高速緩存塊。
當使用高速緩存時,基本性能分析變得更加復雜,因為這時高速緩存不命中數在方程里引入了一個新的變量。分析典型應用代碼可幫助芯片設計人員確定高速緩存大小和實際性能增益的最佳平衡。
對于我們的設計,假定 CPI 將在以下范圍內是比較合理的:
= CPI (cache) = 2.0
在高速緩存大得足夠存儲大多數應用主程序的情況下,性能增益可能非常顯著,因為系統(tǒng)正在接近 0 等待狀態(tài)執(zhí)行環(huán)境。
采用改良的哈佛架構(Modified Harvard Architecture)設計的指令高速緩存的一個重要優(yōu)勢是高速緩存無需執(zhí)行回寫操作。與數據高速緩存相比,這種實現(xiàn)要簡單的多,數據緩存還要保證改動過的高速緩存數據正確地存儲進主數據存儲器。
改進的設計
我們現(xiàn)在可以把學到的知識應用于我們系統(tǒng)的第一個框圖,并從預取/指令高速緩存緩沖器系統(tǒng)提供的增益中獲益。詳見以下的圖 3。
與之前的16位設計相比,新設計能夠以三倍的速度(120 MHz / 2.0 CPI(預取)/ 20 MHz(16 位時鐘)執(zhí)行指令,通過適當選擇最終指令高速緩存的大小,很容易就能實現(xiàn)非常接近單等待狀態(tài)閃存系統(tǒng)運行的性能。
雖然指令預取緩沖器是一種簡單的實現(xiàn),但它通過屏蔽閃存和 32 位內核執(zhí)行速度之間的存取時間差異,顯著地改善了系統(tǒng)吞吐量。預取緩沖器是一個非常簡單的設計,只需要很少的額外邏輯。大部分額外邏輯與擴展閃存系統(tǒng)和預取緩沖存儲器之間的通道有關。設計的簡單有利于它完全透明地展示給軟件程序員,他們只需允許或禁用該功能就可以了。
形式指令高速緩存是一種更復雜的解決方案,需要至少與預取緩沖器相同數量的額外邏輯電路,以及管理指令高速緩存正常運行的額外邏輯電路。設計人員需要分析 MCU 運行的典型應用,以確定能夠最好地平衡性能和成本的高速緩存大小。當然,指令高速緩存部署更為昂貴,但是在許多情況下,系統(tǒng)實現(xiàn)的性能可達到 0 等待狀態(tài)系統(tǒng),對性能產生顯著的積極作用。軟件程序員還必須了解與指令高速緩存有關的一些基本控制和維護問題,但是在大多數情況下,它們可以一勞永逸地運行,只是在系統(tǒng)初始化時才需要執(zhí)行。
只用新的 32 位器件直接替代現(xiàn)有的 8 位或 16 位內核是不夠的。芯片設計人員還必須調整和改進整個 MCU 設計,以適應高性能、高速度 32 位內核的新要求。我們需要這樣的調整來確保新的 32 位內核能夠釋放最高性能。采用預取緩沖器和指令高速緩存是改進微控制器設計的兩個直接途徑,微控制器與 32 位內核和現(xiàn)有存儲器技術直接相關。
評論