• 沒有找到結果。

1.1 簡介

現行大部分的處理器在加速的部分都是採取 Super-scale[1]的方式,配合 Tomasula's algorithm 做動態排程[9],以達到管線最佳使用效能。VLIW 架構受限 於程式的相容性,因此一度成為處理器設計領域的冷門架構。然而德州儀器後來 將 VLIW 的架構實現於要求效能的數位訊號處理器上,並成功地廣泛應用於多 媒體系統中。VLIW 架構之所以能在數位訊號微處理器市場中成功,除了它以簡 易的方式達到平行處理的目的[12][13],更重要的,在講求效能的數位訊號處理 上,使用處理器的韌體開發者大都會去把程式碼針對所使用的特定處理器進行最 佳化排程[2][5],以達到最好的執行效能。有些數位訊號處理器的程式開發人員 甚至會手動做調整以達到最大的指令平行度,這使得原先 VLIW 的缺點:相容性 及非動態排程都因為這個理由而消失了。而易於增加及減少處理核心的特點,在 現今講求 IP 化的 IC 設計領域變的十分具有優勢,這也是 VLIW 架構的處理器在 現今數位訊號處理器市場重新崛起的原因。

目前在現行大部份講求低功率、小面積的嵌入式處理器及數位訊號處理器中 [11],指令快取記憶體控制都還是採用 L1-Direct Map 的架構[30]。少部份高價位 的嵌入式處理器及數位訊號處理器則容許比較大面積的 L2 架構[19],不過這只 是為了讓快取記憶體在大容量上可作有效管理而產生的架構上的變化[22],在第 一層(L1)的快取記憶體的控制模式幾乎都還是採取 Direct Map 策略。然而傳統的 Direct Map 的控制方式在遠距離函式呼叫返回及在跨越快取記憶體容量邊際的 迴圈運算-也就是當只有部份指令在快取記憶體中的迴圈運算時,會發生大量的 cache miss,也直接的影響了 cache miss penalty。這對於常常使用函式呼叫及迴 圈運算的多媒體程式是十分不利的,如果沒有好的編譯器對指令作最佳化輔助

[4],那將會顯著的降低了原有處理器的效能。然而對於種類繁多的嵌入式處理 器市場裡,要開發出能針對不同使用者採用的不相同的處理器及該處理器配置的 不同大小的指令快取記憶體作最佳化的編譯器是相當不容易的,一般目前大部份 的嵌入式處理器的編譯器都還是只能針對特定的處理器進行指令的最佳化。

無論是在一般應用的嵌入式處理器(General Embedded Processor)[25]或是著 重於運算的數位訊號處理器(Digital Signal Processor, DSP)[24],cache miss 幾乎都 是影響效能的一個很大的因素。由於 cache miss 的 penalty 常常都是數千週期甚 至上萬週期,所以如果可以設計一個可以減少 cache miss 次數及總 miss penalty 的快取記憶體控制器,便可以有效的提升處理器的執行效能。

影響 cache miss 發生的原因通常是快取記憶體的 entry 數量,在一般 RISC 處理 器指令長度固定的情況下,快取記憶體的大小跟 cache miss 的次數會呈現反比例 的關係,這個現象在指令快取記憶體(I-Cache)中尤其明顯[27]。然而就單一處理 器於同一應用而言如果使用不同的快取記憶體控制器,由於在遇到 cache miss 時 的處理方法不相同,所以不能只由 cache miss 的次數判定效能而應由真正反映在 時間差異的 cache miss penalty 的週期數目來決定。對於比較不同的快取記憶體控 制器,cache miss 的次數多卻不一定會造成比較多的 penalty cycle 的這個現象是 要去注意考量的。

本論文設計了一個可實現於晶片中的快取記憶體控制硬體演算法並命名為 主從式快取記憶體控制器,並在這篇論文中以指令快取記憶體的控制作效能實 驗。此演算法使用在一般的應用程式均能有效的減少指令快取記憶體的總 miss penalty,而在具有大量迴圈運算及函式呼叫的多媒體應用程式中尤有顯著成效。

為驗證該演算法的可靠性及正確性,本論文也設計出一個 VLIW 架構的多核心 嵌入式處理器,以做為該指令快取記憶體控制器的作用平台。主從式快取記憶體 的設計具有以下的特點:

1. 具有保存跳躍前指令的機制:

相同於 L1 Direct Map 快取記憶體控制器所使用的快取記憶體的大小(這 裡指的是 entry 數目),主從式快取記憶體控制器將一樣大小的快取記憶體分 為數等分,大小相等的 sub-cache。每次當 cache miss 發生時,原先的指令保 存在當前提供處理器指令的 sub-cache 中,新的指令則取代掉最近最久未使用 (未使用即未提供處理器指令)的 sub-cache(LRU sub-cache),這樣的方法對於 跳躍後還會返回的程式 ex:Function Call,就不會造成二次的 cache miss。

2. 提供使用者對參數作最佳化設定的介面

主從式快取記憶體控制器針對與 L1 Direct Map 快取記憶體控制器使用 同等大小的快取記憶體作分割,每個 sub-cache 的大小只會是原本快取記憶體 大小的 1/n(假設切成 n 等分),如此會導致每次 miss 時補充的指令也會只有原 先的 1/n,在往後的執行反而容易因此造成 cache miss,這是這種設計的一個 trade-off[26],為了降低這個 trade-off 所帶來的影響,在此演算法中設定了一 個參數來讓使用者設定跳躍發生後經過多少個週期如果原先的跳躍還未返 回,就判定不會返回,而可以提前對存放原先跳躍前指令的 sub-cache 進行新 指令的取代,而這個參數可以利用處理器的模擬器先預先執行過觀察,或者 實際用處理器晶片進行測試利用 ICE 來進行觀察測量得到。另外,此指令預 先存取機制也可搭配處理器的 Branch-Prediction 機制一同作用[3]。

3. 方便用數位的方式對快取記憶體進行功率管理

常見快取記憶體降低功率的方法大都是在佈局圖上用 Full-Custom 的設 計方式來作規劃。而在主從式快取記憶體控制器裡,可以對每個 sub-cache 分別進行開關控制,也就是說除了正在使用的 sub-cache 需要將它的時脈打 開,其餘未使用的 sub-cache 可以將其時脈關掉,正在保存指令的 sub-cache

則可給予較低的時脈。用 gated clock 的方式來達成快取記憶體的功率控制,

如此就可以用數位的方式做到。相較於同等大小的 L1 快取記憶體,較常見 的方法還是在佈局圖上以 Full-Custom 的方式進行細步設計才能達到效果。

1.2 論文架構

本篇論文中,第二章介紹主從式快取記憶體控制器設計,從硬體架構到效能 測試有詳細的說明。第三章介紹主從式快取記憶體控制器與數位訊號處理器的整 合,從 VLIW 數位訊號處理器架構到開發工具製作,及週邊矽智產的整合。第 四章在介紹晶片實現的過程,包含模擬驗證方法及結果,晶片製作,及測試效能 的比較。最後,在第五章做總論。

相關文件