2014年5月2日 星期五

MCU作業系統硬體化構想

Bee在大陸網站時討論的構想。現在台灣已沒有可討論的地方,所以逛到對岸去。
Bee曾說過,中斷是實現作業系統一個很重要的關鍵功能。
所以常用的作業系統功能是可以被硬體化的。
在PC上MMU就是一例。
而在MCU側,因無MMU環境多,被硬體化的地方其實不多。
而MCU使用RTOS的工程師比例也不高。所以作業系統硬體化不積極。

分析MCU上使用RTOS的需求,其實除了週邊硬體中斷外,使用最多的就是Timer。
所以Timer硬體化應是需求最高的。
其實很多RTOS也是以工作切換需時短做為其效能指標。
故RTOS的system tick一直是最常用到的函式。
在RTOS移植的第一個工作為context switch後,第二個工作就是system tick的移植。

在使用Cortex M3時可以發現system tick已經標準化。中斷也標準化。
所以Cortex M系統可以開始進行RTOS的統一。因為C語言已可以做完一大半工作。
現在RTOS仍有組合語言,是因為Task Control Block(TCB)各家不同,仍需用組合語言去完成。
即使TCB有統一,執行時最常用到的仍是system tick。
所以TCB使用硬體做,連接上system tick及其管理能力,就等於是將RTOS硬體化。
此時所有的程式看起來會有自己的CPU,但其實只是在RAM上的CPU暫存器影像。
也就是MCU開始具有虛擬化CPU核心的能力再加上system tick調度的能力。
這樣就算是完成RTOS硬體化。

若是這個硬體可以做進MCU,RTOS也就大一統了。
依現在人人都可以做出RTOS的狀況下,等在後面的是硬體公司的RTOS硬體化。
技術門檻變低的同時,也要小心全自動化的取代。

沒有留言:

張貼留言