前兩天文章(大陸的8 bits MCU)內剛好有讀著回應有關 NXP 4300 Series 產品。
剛好一位朋友昨天也剛好打電話給我也聊到這一棵,應該不是說4300 ,
而是提到Cortex-M4。這位朋友玩 32 bit ARM 也有玩一陣子了,本質學能又是科班出身,
我當然都以他的看法為主,他跟我提到說:基本上Cortex-M4 在ARM 裡定位就是一棵DSP
(Digital Signal Processor),DSP 的好處就是可以進行平行運算處理,所以他的運算
性能高。
----
我們都知道一般我們在微處理器的系統應用中,程式主要的工作無非就是協助我們做
一般數學計算或周邊應用電路的控制,當然我們一般都比較重視周邊裝置的控制,
但隨著目前應用領域的擴充,隨著而來就是需要更複雜的運算能力,而至於那些周邊裝置
的控制就沒那麼重要啦,譬如說:像我們在引擎控制裡,最基本的周邊控制就只有
噴油嘴及點火線圈兩大項目而已....這對一般MCU 來說:輕而易舉。
但是要送多少油?!點火正時該如何計算求得?!這就要複雜的數學運算--- 這個才是
系統的真正價值。所以,您說在 8 bits 與32 bits MCU 系統應用中,您如何真正能夠
界定出兩者在系統應用端的價值在哪?!我想主要還是在於這些背後的運算能力與效能
表現吧!否則:您有 10 bits ADC,有USB、有 I2C, SPI, PWM, Timer....這些大家都
大同小異...也都很輕易可以做得到。
同理,若純粹以這些周邊裝置控制應用來說,那我們在系統應用端也不需要非得要
32 bits ARM MCU 啊....但事實上,在系統應用端隨著市場需求以及越來越競爭的
市場機制下,若只是靠著周邊應用裝置來訴求的產品是越來越難取得市場消費者青睞。
舉個例子來說:像現在的手持移動裝置,不但要有觸控介面裝置,還要表現聲光影音
效果的畫質表現。這就不是簡單的周邊裝置控制應用而已。
因應這樣子的市場,也沒有一定就非得要 32 bits ARM MCU 啊?!像以前我做那個
MP3 隨身播放器來說:他就是簡單的周邊裝置控制,頂多加一個MP3 解碼器,
所以,我們在8051 MCU 旁多加了一棵 Analog Device 的AD 21xx 的DSP 就夠了!
這樣子做也可以達到市場功能需求與價格優勢...
但是經過這短短幾年,這樣的需求越來越不夠了,因為影音不止只是Mp3 ,還有照片
JPEG 還有影片MPEG、AVI...等等許多需要越來越複雜的解編碼的運算能力。
您光只做其中一兩項功能的產品,是很難找得到消費者買單的啦...
所以事情的演變就不得不將過去那一種客製結合MCU + DSP 的作法把他做成一個
標準的 微處理器架構。也就是真正的SOC (System On Chip )。
所以像目前位居移動裝置微處理器大廠 ARM 來說:這就是一個重要的產品里程碑。
-----------------
但如何做到,還可以保持一定未來的競爭優勢?!那就是在架構上保有一定擴充能力。
因為很明顯我們也看到了單一核心的處理器也不一定符合市場需求,未來不止雙核、
四核甚至越來越多處理器的結合就是一種趨勢。所以在架構定義上就得謹慎與細心考量。
而基本上微處理器的基本架構為以下兩大種:Von Neumann 與 Harvard 兩種。
---------------------------------------------------------
這些東西書上都會教,大家也都懂得啦...簡單的舉個例子來說:
以前我們玩那個Intel 8051 的組合語言裡有所謂的MOVX 及MOVC 兩個指令,
代表著他的程式執行指令與資料存取指令是分開的,所以他就是一種 Harward 架構。
而像那個Microchip 的PIC ...以前還有那一種PIC 12 及PIC 16 ...等等,您從他的
反組譯程式碼可以看到他的等長指令中:前幾個bits 是指令後面幾個bits 代表的
就是定址位置上的資料。所以以指令+ 資料位置就可以讓MCU 執行工作了。
所以這一種架構就是所謂的 Von Neumann 架構啊。從這一個簡單的舉例,
我們就知道像PIC 這一種MCU 來看:他就真的簡單多了,但相對來說他的擴充性就比
較差,譬如:8051 就可以透過 MOVX 的部分來擴充我們一些外部周邊裝置的不足。
當然在IC 架構上所衍生的成本,當然也很容易看得出Von Neumann 的優勢。只不過
這個優勢隨著IC 製程與應用市場來看:也未必還像當初時空環境一樣可相提並論的。
----
當然啊...像Von Neumann 這一種架構的設計還有一個致命宿命缺點:無法平行處理。
因為中央處理器一次只能抓取一個指令及資料...等完成指令與資料處理後,才可以
進行下一道指令與資料處理。但像Harward 架構的MCU,因為他的指令與資料匯流排
是分開的,所以,他幾乎可以同時抓取程式指令,也可以同時處理數據資料。
舉例來說:經由組譯器的協助,您可以知道如果要計算2+2+2+ 2 = 8 來說:
像PIC 那一種來說:您也只能先 2+2 =4,然後 4+2 = 6 ,最後 6+2 = 8 。三個步驟。
但像Harward 的MCU 就可以 2+2 =4 ,同時另一組資料也Standby 在2+2=4 ...
最後一次就完成 4+4 = 8 ...兩步就完成了。...(早期 PIC 號稱是指令時脈比較短 4T,
比8051 的 12T 短...所以他一個一個慢慢算也可以比8051 快,但後來人家8051 改良為
RISC 之後,人家也可以達到 4T 甚至到 1 T,所以人家一樣可以用乘法外加短指令時脈
完成...)。但畢竟還是架構上先天宿命的因素 Von Neumann 就注定他不可能是DSP
所需的架構了。像早期的AD21xx 也都是Harward 架構。
-----------------------------
經由這樣子的簡單的解說,我們就可以輕易的看的懂像NXP 這一棵4300的文件資料:
------------------------------------------
--------------------
當然我們也高興的看到ARM 已經完成了這兩種各具系統應用特色的MCU 架構的
整合設計成果,也代表著一個新的里程碑。
我相信未來我們在系統應用端不能只單單想用那些傳統的周邊裝置控制應用而已,
我們更應該專注在DSP 所提供的強大運算能力能帶給我們在系統應用端附加價值。
當然或許在市場上有許多人會認為到底有多人非得要用到這些應用,難道不能只是
在周邊裝置控制應用的基礎上,增加傳統MCU 能力嗎?! 譬如除了8051 本身
去強化他本身的周邊裝置控制外,提升他的運算速度,難道不夠嗎?!
但我還是強調一點:市場沒有一定的規則與定律,但當您如此思考時,您是否
有把握說到與做到是產品標準化到一般普羅大眾可以接受?您們準備要花多少
時間精力來教育市場,教育終端使用者?!您預計花多少資源完成市場接受?
否則,我說了~
您不能老是搞一些有點客製化,或跟別人標新立異的怪東西...然後又要別人搞了一
大堆奇奇怪怪的發展應用平台,外加奇奇怪怪的組譯器...開發版..ICE...IDE...
真的~現在沒有多少系統應用工程師們有那麼多生命力可以搞得懂您們家的東西。
您們家的IC 便宜又怎樣?!工程師健康的肝還是最貴的啦。...