前言:
這篇也是一篇回憶,但跟前面主題無關,因為覺得有趣,因此單獨寫一篇。
緣起:
研究所時,這應該是教授一開始希望我做的方向,但要做什麼不明,最終找不到題目,也是差不多看了一年左右。
異質雙核心平台:
學期後,教育部還有審查委員來查看我們這門實習課成果,我為此實做了好幾個專題掛給學生,用於展示😂。
當時有趣的是,我其中一個專題是用OMAP5912 Linux + DSPGateway,按照範例寫最基本的DSP Timer,DSP端倒數計時10秒,然後透過DSP Gateway回傳timeout,Linux端顯示倒數結束。
其中一個評審委員是成大的教授,看到當下問我,OMAP5912有幾種通訊機制,我跟教授說,有2種,TI有一套,Linux有開源一套。
教授回我說,嘿嘿嘿...不對,有3套。第三套是我Lab做的。😄
看得出,這位應該是主要的技術委員,他開心,審查就順利結束。😆
何謂異質雙核心平台是什麼?為何多半用於手機?
在手機上,通常會有單獨一顆CPU專門用於通話時的音訊編碼/解碼,這顆CPU在Nokia與TI那個年代,通常是DSP,DSP強項是快速傅立葉變換,關於傅立葉轉換,我一直學不會😂
因此分工上,主系統運作在ARM9(當時還是ARM9),通話時的音訊處理在DSP。
因為2顆CPU不同性質,因此稱為異質雙核心平台。
延伸一點,後來的手機SoC從ARM + DSP變成ARM + ARM,但第二顆ARM延續DSP作用,一樣是用於音訊編碼/解碼,但TI自此跌落手機SoC神壇,因為TI特色與強項是DSP。
異質雙核心平台有個特色,和雙CPU系統不同在於,雙CPU系統通常是多核心或者多Socket,CPU完全相同,設計完全一致,雙CPU甚至可能會要求型號完全一樣,因此在OS裡面,通常當作相同東西處理,也就共用Cache,甚至Interrupt都在OS共同處理。
但異質雙核心平台不同,異質雙核心平台的DSP端,有自己的OS(TI提供的稱為DSP/BIOS),和ARM端有一塊共用的Cache,其他都是各自獨立的,因此,兩端通訊,主要透過互相觸發對方的Interrupt和在Cache上面收放資料進行通訊。
延伸一點,當時Nokia與TI雖然緊密合作,但TI提供了自己的DSP/BIOS以及自己的通訊Driver - DSP/BIOS Link,而Nokia則開發/維護/實做開源的DSP Gateway。
好,終於把異質雙核心平台介紹完了。
異質平台的起源:
Paper年份在後來PC普及後,我還記得小時候電腦沒有音效卡,當時要買「聲霸卡」這種音效卡,而在音效卡剛出現的那些時間,則開始出現很多PC + 音效卡的Paper,為何呢?
因為音效卡本質上也是DSP,對於當時的Windows來說,PC + 音效卡的驅動程式,其實就是異質平台的通訊驅動程式。
現在筆電、手機很常見,音效都沒有卡了,直接做到SoC裡面了,或者有像I2S這樣的界面可以接,連接標準和驅動程式都有了,但在這些東西裡面,其實都帶有很高深的技術,換個場景,就會用在意想不到的地方。
沒有留言:
張貼留言