Abstract
感應器處理器目前被廣泛的使用在於各種機器上。例如Motorola 6800或是Intel 8051這些微處理器,這些都是目前熟知並且廣泛使用的晶片。用途上大多都是利用在於針對某個訊號來做接收並判別目前的狀況,根據目前的狀況做出相對應的行為,並且要求著精準的處理著每個訊號,以及低耗能的特性。 除此之外,這些感應處理器還有這許多特殊的功能,如一道指令只能處理8個bits,並且是可以直接存取記憶體的,更重要得是在記憶體的架構上存在著多個但不大的記憶體空間,當我們在使用這些記憶體時,必須要把這些多個並且不連續的記憶體空間考慮進去,當要使用大量的記憶體空間來當作堆疊時,則需要考慮到橫跨這些記憶體的問題。然後,除了支援更大的堆疊外,我們還探討著如何使指令的執行效率可以更高更好,使得我們可以在有限的指令與記憶體空間內,可以達到更好得加速。 我們在移植編譯器到感應處理器這個架構上,會面臨前述的問題與狀況,所以我們特過GCC的前端與後端來處理。前端控制了RTL產生方式的規則,後端則是透過Machine Description來控制RTL轉換方式的規則,此外還有特過許多巨集來支援指令集的展開。 在實驗中,我們透過三種方法來解決堆疊不夠的問題,來研究著如何在感應處理器這樣的架構上可以達到不傷效能卻能達到橫跨記憶體的狀況。此外還針對有做最佳化與沒做最佳化的效率來做個比較,最後以比較的結果來證明最佳化為有效果並且正確性也是沒問題的。