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硬體化。
技術門檻變低的同時,也要小心全自動化的取代。
沒有留言:
張貼留言