2009年4月22日 星期三

海星計畫

大約在公元2000左右,台灣開始推廣「矽導計畫」,並在許多著名的國立大學研究所加收名額,試圖提升研發能量、培育更多產業人才來貫徹這個計畫。除此之外,行政院經濟部還在那些著名國立大學研究所執行了叫一個明星級矽智財(Star IP)的學界科專計畫。這個計畫很多大專院校執行,也不少計畫是跨校合作的,計畫內容涵蓋範圍非常廣,上到應用軟體(如H264),開發工具,作業系統,下到硬體RTL的實現,Cell Library,就連大量生產需要的技術(DFM)也包含在內。以處理器這個項目來說,就涵蓋了MCU,MPU到DSP都有學校在進行研究。

很幸運的,個人因為某種機緣,於2006年左右,受業於某執行矽導計畫的學府中,並在學界科專計畫中從事系統軟體的實現。敝校所執行的計畫是實作一個低功耗的數位訊號處理器核心的計畫(這個計畫是和隔壁學校一起執行的)。雖然資訊工程背景的學生由於必修課的關係,必然對系統軟體有所認識(?),但實作系統軟體又是另外一回事,也因為這個計畫,讓我和系統軟體結下了不解之緣,直到今日,我還是沒辦法擺脫(?)他們,套一句前輩講的話,系統軟體很有趣,資訊工程背景的學生應該去了解他們。

敝校的訊號處理器核心原本沒有名字,大家都叫他Star IP,由於執行Star IP計畫的學校有如繁星(?),所以後來執行計畫的教授就把他取個蠻宅的名字叫作starfish(海星)。海星是個採用TSMC .18製程的低功率數位訊號處理器,速度在180Mhz左右(使用SS的Cell Library),每百萬赫茲功率消耗僅0.11mW(這當然有很多需要消音的地方),multi issue的方式是採用64+32+32的方式進行的,通常是一個ALU運算配上一對Load/Store 眼尖的人馬上就可以看出他和某DSP之間的關係。關於starfish的畢業論文很多,想了解的人不妨去圖書館查一下。

個人對海灣合作委員會(GCC的google 翻譯 = =) 的認知,在參與這個計畫之前,基本上只限於使用,而且並不常使用,那時對自由軟體也沒啥概念,只道是個可以動的東西(?)。對一個處理器來說(當然包含數位訊號處理器),一些系統軟體的基礎建設很重要,沒有這些基礎建設,在好的硬體也無用武之地。在台灣這種充滿中小型企業的環境,由於資源不足(?),用很大,用不用錢(這句話在最近頗流行,可惜自由軟體的free是自由,並不是不用錢)的自由軟體便得到了一個很好的切入點,雖然不夠好,但workable,那就夠了。

在自由軟體的世界中,他們想要寫一個自由的作業系統,但不久後他們便發現沒有自由的基礎建設,這個作業系統就只是泡影,所以一切的基礎建設就得自己來過。 GNU Toolchain 就是扮演了這個角色,它基本上提供了一個還不錯的基礎建設框架,所以我們的系統軟體就在GNU Toolchain上架設起來了。有了這些基礎建設,應用程式工程師就能當起神槍手慣C,(省略了很多很多步驟後)在千鈞一髮的時候,沒有經過長官同意就能讓應用程式在海星上面執行了,王子和公主就從此過著幸福快樂的日子了(?)。

 

後話: 由於海星和某DSP之間有淵源,所以基本上海星的GNU Toolchain是從那邊branch出來的(大約在他們論壇放出原始碼,還在beta的時候)。個人在前半研究生涯是從事Binutils 和 Simulator的開發,後半生涯是從事compiler的研究和開發。另外,值得一提的是newlib,沒有這個新圖書館,王子和公主也不會幸福的 (笑)

沒有留言:

張貼留言