2012年12月28日 星期五

ARM to 8 bits MCU 多核心?!


之前我搞過那個8 bits 多核心的東西。當然我也很清楚它的多核心基本概念來自於哪裡?!

我最近在探討這些新一代的32 bits ARM 時,我是有在想說:現在這些想越來越便宜的

32 bits ARM 也都動輒跑50 Mhz ,甚至 7~80 MHz ...100 MHz 的。

如果可以用軟體做分時多緒多工系統...應該也可以很容易搞出一個簡單的多核心MCU 吧。

您想一想:把這一種32 bits 又動輒 50MIPS 以上的ARM...隨便切一切,應該也可以

分個四、五組 至少10 MIPS 的MCU 吧。那這樣子...應該也可以拿32 bits ARM 來模擬

出 8 bits 的多核心MCU 啊?!

那至少這樣子的MCU應該更容易維護IC 供貨或產品應用需求啊?!您看現在一般 32 bits

ARM 的供應商,滿街都是...價格也越來越平民化。那又許多傳統的 8bits MCU 應用市場

應該也蠻需要這一種類似多核心的應用。所以,我想去搞一棵8 bits 多核心的MCU硬體,

還不如來搞一些32 bits ARM MCU 來模擬 8 bits MCU 應該會更好玩的....

---

咦...奇怪了?!那個NXP 的說要給我一些資料或EV 版的...怎麼沒有下文了呢?!

那我可要用別家的ARM 來玩了囉?!

----

其實這樣子的概念也很簡單:就是把一棵 N MIPS 的32 bits ARM 用軟體,

不一定就一定得用Timer ...也可以直接用main() 直接下去做指令分割。

在一個固定的分時Timing 點上只要執行一個指令或一個Task 就可以了。

(當然啊~每一個Task 都有屬於自己的RAM 定義空間...當然也可以規劃自己的

Stack 的(這應該可以吧?!)...搞軟體作業系統應該都會吧!)

然後您就可以依照下圖的時序圖,模擬分配出不同的MCU 的執行時序圖了。

反正,現在 32 bits ARM 的MIPS 都很快...您也不一定要ㄎㄧㄥ到只是一個指令啦...

或許可以是一個Function Call 的TASK...我相信隨便切也可以切出N 個模擬

MCU 的架構...也肯定會比一般傳統8 bits MCU 的MIPS 還快得多吧。

至少我這樣子的想法應該沒錯吧....如果還加上現在32 bits ARM 豐富的周邊功能...

其實,也不一定要用32 bits ARM 去做很偉大的控制工作...簡單的搞個模擬

8 bits 多核心MCU 應該不難吧!...至少我是相信的!

 

13 則留言:

  1. ARM的免費RTOS已經到處可以取得,
    可以做出任意數目的工作單元。
    不用自己去寫。

    回覆刪除
    回覆
    1. 喔~好棒喔~ =D> ... =D> ... =D> ...
      那有沒有比較推薦的參考資料或網站?!
      ---
      那如果只是套個RTOS ...那對32 bits ARM 來說:有什麼好驚奇的呢?
      我這一篇的意思是說:應該可以用一個比較簡單的邏輯架構,
      來模擬一個簡單的多核心的MCU...用的是最低階的低於US$ 1.0
      的32 bits ARM 啊。要不然...對於真正推32 bits ARM 來說:
      憑什麼要下殺傳統 8 bits MCU 市場啊?! 
       

      刪除
  2. 目標是低於US $1.0的ARM。
    有一個問題要先解決,RAM變作珍貴資源。
    這個價位大約是16KB Flash、4KB SRAM。
    4KB RAM有系統變數、堆疊,若是每個獨立工作元都有堆疊,那能放的工作元是受限的。
    這個容量我是知道還是可以放免費RTOS,可以參考http://www.freertos.org/

    我在用US $1.0的ARM上是沒有放RTOS,因為做為資料取樣的暫存已經1KB了。
    所以放棄RTOS,改用單工的function queue做為多工的近似,發表在自己的部落格中。
    不過多工的技巧不易教,不管是用function queue或RTOS,無法接受的人,硬是不肯用。
    大部分人仍用while()的方式,做busy delay在寫MCU,已經做到軟體部長,還是用此種結構。
    我看了實在無言。

    已經是32位元時代了,勢必會有多人共同一起開發程式,RTOS還是要會。
    還在單打獨鬥寫MCU只會被別人趕過。
    我現在部門最多有一次五個人同時進行同一產品程式開發,沒有RTOS根本不可能將五個人程式組合起來。
    五個人中有二人只會PC程式,MCU環境並不熟,但RTOS的存在,這二人並沒有感覺到在寫MCU。
    使用RTOS會使工程師好找很多。

    回覆刪除
    回覆
    1. 關於硬體或軟體技術的討論,這些都是因人而異。
      我想當初我之所以去搞多核心MCU 時,也沒有想到可以吃掉多少市場。
      許多產品技術本來就不可能面面俱到。但狠重要的一點就是如Google 給我們
      啟發:產品是要越走越廣呢?!還是要越走越窄呢?!
      之所以想用最一般通俗,也算是順勢而為的想法:32 bits ARM 是肯定
      會往低階傳統8 bits MCU 應用市場擠壓他們的發展空間...
      如果只是一般很傳統,很低階的 8 bits MCU。那本來就不用想了。
      但換個角度想:當初多核心也只是想在傳統8 bits MCU 市場裡去創造
      一個稍微可以跳脫傳統8 bits MCU 的應用市場...
      只是沒想到的是:32 bits MCU 往下壓,而該產品目前也自己自廢
      武功的砍成只有雙核心...(講難聽一點:雙核心?!用一般8 bits MCU
      用一個簡單的Timer ISR 就可以搞出來了啦!),自然也陷入
      傳統8 bits MCU 血流成河洪流中了啦! 我想這些都是牽涉到一般
      所謂產品市場策略左右一個技術發展的機會...最終還是會回到產品
      與公司成功與否的重要因素吧。
      ------
      其實您所提的方法:還都是一般很正統工程師的想法:"有多少東西或資源
      我就想辦法做多少事?!"--- 很傳統的"工匠"的手法。...您會的~過幾年,
      別人也可以複製或訓練出類似專長的工匠。
      對啊~就是這一種很傳統的想法:所以PC 產業只要掌握 Wintel 就好了。
      也就是我們看到別人做的:什麼是破壞式創新?!也就為什麼只有天生
      反骨的人才有在創新領域裡有機會創造奇蹟。...要不然...
      只是有什麼資源做多少東西?!那您覺得世界還有什麼機會可以改變什麼嗎?
      ----
      至於一個團隊或多少人才可以把事情做好?!那是牽涉到各個公司內部管理
      的問題...相信我說的:人家不用RTOS ,只要東西賣得好,又可以產品維護到
      用最少的資源可博得獲利空間...我是老闆,我也不會管您們要不要用RTOS 呢!
      一個人領五萬元...五個人外加勞健保。一個月要燒老闆 50 萬元呢!
      對台灣高科技的老闆來說:他還是想多看到一點市場獲利能力吧!
      C/P 值還是一切產品或技術團隊的最終評斷點吧! :))

      刪除
  3. 有的,請下面此文章結尾的參考資料
    godspeedlee.myweb.hinet.net/sst.htm
    這本書也開闢了一章專門討論8051上如何實作scheduler:
    www.tte-systems.com/books/pttes


    以上都是single stack~
    另外,這也是個不錯的技巧
    dunkels.com/adam/pt/

    回覆刪除
    回覆
    1. 非常感謝您所提供的資訊。
      看來我們happosai 小老弟的文章寫得也不錯嘛!
      當初其實我會找happosai小老弟來幫我玩多核心,本來就是想在這樣子
      基礎上可以玩出一些系統應用市場。只是很可惜的...*%#$...
      ----
      我想之所以可以在一般MCU 的基礎上可以達到多核心的基本概念就是
      回到很基礎的微處理器的基本架構:MCU 要具備怎樣的架構?!才算是
      微處理器?!微處理器需要什麼基本硬體?!其實很簡單:
      有四個基本因素:自己的Stack 、Accumulator、Program counter(PC)
      及屬於自己的Status Flags(包括Overflow(OV),Carry(C), Zero(Z)...)。
      至於RAM 或Flash ROM 要不要再分?!就不重要了...這就是我們一直在
      RTOS 所討論的Stack 的處理問題一樣的!
      當然我們也看到新一代的ARM..尤其新一代低階ARM M0或M0+ 都是
      著重強調他在一些Interrupt 或是 Function call 上Stack 的硬體處理方式。
      當然啊....如果我們自己在系統應用的軟體撰寫中,可以好好的處理
      韌體的Stack 的話,也算幾乎完成多核心,或是大家所說的RTOS 的基礎了。
      ---
      我想有很多技術上的觀點或討論,這些東西在網路或許多技術論壇上
      都是俯拾即是。這也都不算是什麼偉大的觀點或獨門技術。...
      只是還是我所一直強調的:您怎麼把這些很生硬或複雜的技術觀點,
      用淺顯易懂或使用上方便的方式?推廣給市場接受?!
      8 bits MCU 在架構上所能發揮的空間已經越來越少了?您想得到的?!
      別人大概也可以想得到!而新的 32 bits ARM 是因為他的機構空間也
      的確比傳統 8 bits MCU 寬廣....自然也就能夠提供更多在技術發展或
      產品開發上有更多的想像空間!
      ---
      您說您會用 8 bits MCU 來做系統產品開發?!Fine !很好~這本來就是
      已經存在的市場也是既成的觀念。...但您說 8 bits MCU 本身還可以變出
      什麼架構上的花樣?!我是有點懷疑?!甚至講難聽一點:這樣子硬搞,
      還可以創造出怎樣的應用市場?!值得嗎?! :-/ ... :-/ ... :-/ ...
      這就是我們所說的 C/P 值...C 也不大~P 也縮減不了!意義在哪?!
      ---
      這也是我離開多核心MCU 之後,有許多MCU 設計的老前輩聽我解釋完
      這一種多核心之後的一個共同疑問:您們市場定位在哪?!值得嗎?!
      對不起~人家講的還不只是硬體本身成本而已,還包括說:您們還需要
      花多少時間、代價去跑出一定的市場規模?!--- 這也是大家所公認的:
      這也就是為什麼台面上的MCU 廠都寧願多花一點時間Promotion
      32 bits ARM啊 !

      刪除
  4. 一般工匠,我不否認。只是MCU工程師都很封閉,拿了一個結構,就以為可以當部長。
    而我不只會用RTOS其它結構也會,目前手上有七種MCU系統軟體結構可以選用。
    我不相信一般MCU工程師可以數到五種以上,更何況可以操作。
    8位元MCU也不是不去用,像最近為了省電,開始回去研究STM8L系列。
    一款以6502基礎改良來的處理器,也使我重新了解8位元CPU核心能生存至今是擁有何種特性。
    32位元固然效能及環境好用,但比省電位元數少的反而是優勢。
    只是8位元價格低到連製造商都不想去做宣傳。

    MCU工程師也許軟體一般、電路一般。但會不會整合才是真正實力。

    回覆刪除
    回覆
    1. 小老弟啊...放輕鬆一點啦!
      搞工程,寫程式是一件很好玩,也很有成就感的事--- 對自己來說的啦!
      但對於外面的環境來說:就未必是的啦!
      您說目前台面上的哪一個科技界的大老闆會跳出來說:自己軟體或產品
      技術很好的?!...沒有嘛!
      幹工程師的~在職場生涯或在創造事業顛峰時...是不可能靠嘴巴或會寫多少種
      MCU 程式來完成的啦,尤其是在台灣這一種科技發展環境中的啦!
      講難聽一點:不要說要拿來出嚇唬誰啊...連自己老婆都懶得聽我在講什麼
      寫程式或用哪一種MCU 的啦! :)) ... :)) ... :)) ... :)) ... :)) ...
      ---
      真的啦~輕鬆一點嘛!!如果只要會一兩顆MCU...然後可以空出多一點
      時間陪老婆小孩去瘋跨年還比較實際吧!
      已經下午快三點了~該準備~準備出門了吧!哈~哈~
      祝大家都有一個令您難忘的跨年之夜吧! :)) ...

      刪除
  5. (小P=>想起以前小時候, 叔伯們的小教授電腦,主機建盤合一,output接電視,input接錄音機)
    廉价迷你Linux机器Raspberry Pi详解
    http://www.cnbeta.com/articles/204970.htm
     
    (小P=> 類SMART_ TV的過渡產品...傳統電視出清前的暫時對策)
    智能电视新趋势 HDMI智能电视棒面世
    http://kjwx.hfkc.gov.cn/search/showdetail.aspx?rsid=37ebe474-acd4-4ff2-ba21-2b59eaf671a8&docid=8381&title=%E6%99%BA%E8%83%BD%E7%94%B5%E8%A7%86%E6%96%B0%E8%B6%8B%E5%8A%BF%20HDMI%E6%99%BA%E8%83%BD%E7%94%B5%E8%A7%86%E6%A3%92%E9%9D%A2%E4%B8%96
     
     

    回覆刪除
    回覆
    1. 這一棵草莓只是給大家一個簡單的想法:以前的PC 是可以縮到一個
      小PCB 版上,然後呢?!要做什麼就得靠每個人自己了...
      唉~如果我知道要這樣的東西要做什麼,我還需要這麼辛苦的搞
      這些有的沒有的嗎? :)) ... :)) ... :)) ...
      現在不是想吃魚,不如給他一支釣竿的問題而已,可能還要教人家說
      要去那邊釣魚吧!...之前還聽過一個說法,給魚的,餓死了!
      但拿著釣竿的人...也餓死了! 給魚的,等把魚吃完後就餓死了;
      拿釣竿的,更慘,還因為一直釣不魚,還因為沒魚吃,死得更早!
      ----
      所以啦~現在搞高科技,就不要老是想學新技術就是在拿釣竿的,
      不要老是被一些網路勵志小品給騙了!
      最近還看到一篇文章分析說:愛迪生的名言不是說:天才是一分的
      聰明,九十九分的努力...後來才發現:其實愛迪生講這句話時,
      是因為當初美國總統候選人(胡佛)去參加他的生日宴會時,
      一大堆記者問話,把他給逼急,他才脫口而出的!
      事後愛迪生解釋說:如果您沒有那一分的天賦聰明或是先培養腦袋裡
      內涵的話,就算您九十九分的努力也沒有用的啦!--- 我是覺得他後面
      的解釋比較重要! :)) ...

      刪除
  6. 時代演進到32 bit為主的時候,雖然速度快,記憶體大,比起8 bit好用,但也因為這樣時常要提醒自己,code不能亂寫,現在的code寫的好壞在執行上也不會有變慢的感覺,老闆覺得加了成本就要增加功能,搞得更複雜應用,可是接手的工程師就苦了...

    用軟體做的多核心再怎麼樣還是只有一個核心在運作,這也演變成用速度來拼,RISC核心每個指令用不了幾個clock,淺顯易懂的數學式和過去設計複雜的省指令動作相比,沿用的簡化程式反而變成搞混後進人員的問題,而工程師的「技術價值」也會漸漸變低...

    我曾經交代新來工程師說我們用的是帶優先權的分時多工作業系統(想說他離學校不遠應該對作業系統這門課還有點印象吧),去看看書上寫甚麼,至少要有點基礎吧,我記得也只是一直在計算多少時間後會輪到哪個task執行,對於最重要的deadlock卻講的不多...

    回覆刪除
    回覆
    1. 其實大家可以用平常心來看待這個未來,就像以前在8 bits MCU 出來時,
      那時還不是還有一大堆人還在用 4 bits MCU 。(當然現在還有4 bits MCU!)
      只是應該沒有人會關心這件事了,反正大家用PIC 、8051 或AVR 都已經
      習以為常了。同理,當有一天32 bits MCU 躍升主流之後,應該也沒有
      多少人會在乎說:用組語?!或是該如何分幾個Task ?!...
      東西一到手上就劈哩啪啦的用C 一路往下寫了吧。(人家還預言搞不好
      還會出現比C語言還人性化的程式語言出現也說不定!)
      ---
      我自己也會勸年輕一輩的工程師說:您也未必一定要懂組語啦~
      那是我們那個時代,硬體功能有限,大家不得已才不得不辛辛苦苦的
      搞組語...現在時代進步了,我們總不能還要人家拿著刀劍去面對人家
      槍砲武器吧。之前我們不是笑說:我們台灣科技業還存在著義和團的思維,
      還想那個"一吋山河,一吋血"的偉大情操。我們的進步幅度當然也是
      一步一腳印的顢頇前進。...
      真的啦~想想人家國外,就像Apple 這麼大膽的往前跨...所能創造出來的
      市場規模或是氣勢,就不是我們在這裡簡單的討論我還要不要在8 bits MCU
      搞什麼奇怪的架構?!--- 所以我自己也承認啦,我自己的包袱也重,
      還在想那一種用 32 bits 模擬多核心,那是因為我們這一種老人家,
      也只能這樣子玩玩而已吧! :))

       

      刪除
  7. 網誌管理員已經移除這則留言。

    回覆刪除