前進 2021 年 Embedded World 展覽:第五篇

編者註:此系列部落格文章關於 2021 年嵌入式電子與工業電腦應用展 (Embedded World),且一共有五篇,第一篇文章將概述本展覽的內容。在第二篇文章中,Randall 將重溫其 C 程式語言能力。第三篇將著重說明物件導向程式設計如何降低複雜性。第四篇將說明良好的設計基礎在於有能力隨著需求改變而再次配置,無需重新實作建構模塊。本篇為最後第五篇部落格文章,將提前在 Randall 於 2021 年 Embedded World 展覽發表專題演講前,質疑作業系統是否需要無止盡擴充的空間,並且探討系統解構的議題。

我在上一篇文章裡介紹了 David Parnas 的觀點,他認為系統應將資訊隱藏在介面之後,而且系統應解構成許多能輕易適應變動的模組。我也提到這項作法的當代支持者 Juval Löwy,他撰寫了《Righting Software》(扶正軟體) 一書。

此作法和功能性解構不同,且後者應該是目前較常使用的作法。但是,有充分的證據顯示 Parnas 的方法更好。其中有個原因是,針對變更而設計的系統,比其他系統更容易理解。這種系統比較容易「領會」,也比較容易重新建構成新的實作。這是提高重複使用率的重要概念之一,因為能讓非專業人士取得他人的專業知識。此外也可藉機拓展嵌入式工程師的市場,因為能助人一臂之力,讓他們的遠見成真。因此,優良的設計基礎在於有能力隨著需求改變而再次配置,無需重新實作建構模塊。如此一來,核心使用案例的變化就單純是建構模塊之間的互動,而且這些模塊是專為特定使用案例和特定需求而設計。

但很可惜,這個作法也有一些負擔和危險,包括效率不彰和浪費。隨著系統成長,系統也自然會變得很龐大。我建議閱讀這篇由 Nikita 撰寫的部落格趣文。有個好消息是,此文直到 2020 年第 53 週前都能線上閱讀。Nikita 表示:

「Android 系統在未安裝任何應用程式之前就佔了將近 6 GB 空間。想想這個數字多麼令人「瞠目結舌」。裡面有什麼?高畫質電影嗎?我猜基本上只是程式碼,即核心、驅動程式。當然也有一些字串和資源,但不可能有多大。倒底手機需要幾個驅動程式?

以前的 Windows 95 是 30 MB。現在許多網頁就超過 30 MB 了!Windows 10 是 4 GB,大了 133 倍。但系統優異度有提高 133 倍嗎?我是指論功能,兩者基本上相同。對,我們有 Cortana,但我懷疑這會佔到 3970 MB。但不論 Windows 10 有什麼,Android 真的有 1.5 倍大嗎?」

Apple 於 2020 年 11 月發佈 M1 晶片,內含 160 億個電晶體。以現今的標準來看相當驚人。嵌入式設計人員也有一些巨大的 FPGA 可選擇。一般用途的電腦硬體和程式已變得相當臃腫,同樣的現象也發生在嵌入式空間。

數位訊號處理技術早在 1960 年代就開發,當時是用於處理雷達訊號。這是微處理器和可編程邏輯問世之前的情況。在那之後,我們採用了其他人開發的功能,即 FPGA 廠商及其附加價值轉售商提供的 IP 模塊,以及各式各樣的軟體程式庫。這讓我們的生產力得以提升,但解決方案也跟著更龐大。問題在於您的應用可能不需要使用所有內附的功能,您可能也不太知道內附的所有功能 (例如供應商在您使用的 IC 中嵌入的內建測試套件)。如此一來,將內建功能打包起來納入最終產品裡,就變得比較簡單。想出一個較緊湊的解決方案並不值得,因為要實作解決方案會花費更多時間。

我在前一篇文章提過,Löwy 認為大象和老鼠基本上具有相同的架構。這讓我想到,我的 DNA 承襲香蕉 (90%) 及果蠅 (95%) 的大部分系譜。即使我的身上具有這些系譜,但我完全感覺不到。我想嵌入式系統也是如此。我們只是多具備一組隨時可用的功能罷了。我們目前建構的嵌入式系統,架構看起來像是來自 IT 部門 (例如 Microchip 的 Harmony、Texas Instruments 的 xDAIS、NXP 的 MCUXpresso 等等)。

我最近在 EE 期刊中讀到由 Kevin Morris 撰寫的一篇文章,文中表示:

「即便 XilinxAltera/Intel 兩者在近幾十年的 FPGA 總市佔率停留在 80% 左右,但都不是 FPGA 元件出貨量最多的廠商。出貨量最多的是 Lattice Semiconductor,而且還多出不少。原因當然是 Lattice 近幾年專注於中低階市場區隔,而較知名的可編程邏輯公司卻在最大、最昂貴的 FPGA、FPGA-SoC 和類似元件方面,苦苦爭奪最高地位。

Lattice 策略性地著重於成本較低、高產量的產品空缺,有助於其將數十億個 FPGA 送到眾多市場區隔的各種系統裡。而隨著 FPGA 技術的能力提升,Lattice 已緊追在兩大公司之後,將幾年前視為高階的技術,帶到成本受限程度較高的應用中;接著又將此技術引到新方向,利用預先設計的解決方案大幅降低門檻,讓缺乏深厚 FPGA 專業的工程團隊也能享受此技術的優勢。」

在 DigiKey 的搜尋方塊中輸入「微控制器」,就會看到列出超過 87,000 個不同的元件。輸入「FPGA」則會看到列出超過 25,000 個元件。現在請參見圖 1。圖中顯示客戶購買的微控制器種類。請注意,最大的商機出自於低階 8 位元市場。在 ARM 和 RISC-V 爭霸的今日,您可能會覺得這令人驚訝,但卻呼應這篇有關 Lattice 的文章。

圖 1:各類型微控制器的熱門程度

身為嵌入式工程師,我們的挑戰是抗拒誘惑,別讓功能膨脹。Actel (現為 Microsemi) 屬於 Microchip 的事業部之一,有個名為閘極吞食器的工具。我知道這個工具依然存在。這可用來消除多餘的邏輯。我們可能要讓這類工具重返戰場,即可讓使用者砍掉不需要的功能。

我的 Embedded World 演講將會舉例說明如何使用 Parnas 的作法進行系統解構,也會表明嵌入式工程師的市場很大且正在成長中。我會說明一個觀點,就是降低複雜性以使用他人的功能,這對新手和專家來說都有幫助。我會闡明,這個商機能開創燦爛的未來。此外,還會說明可編程邏輯公司對市場帶來了什麼傷害,以及必須採取哪些修正措施。

企業的要務就是讓產品獲得最廣大的客群採用。在我職業生涯早期,有間美國汽車公司曾經大裁員。我記得讀過一篇文章說道,在那些被裁員的人中,應該有不少愛迪生、福特,甚至一兩位跟達文西同等級的人才。下一位達文西的崛起之處就是這個龐大且無專精技能的市場。我們需要這些人才順利運用我們的專業知識。

關於作者

Image of Randy Restle

Randall Restle 在電子元件產業累積超過 40 年的經驗。他目前已半退休,也擔任 DigiKey 的應用工程副總裁。他的經驗包括指導技術熟練的應用工程師、技術人員和管理人員團隊,以開發原創和獨特的先進技術產品。

他個人追求的目標包括數位訊號處理、可編程邏輯實作、運動控制改善以及軟體設計。他擁有眾多產業的專利,也是 IEEE 的資深會員。Randall 擁有辛辛那提大學的電機工程學士、碩士及企業管理碩士學位。

More posts by Randall Restle
 TechForum

Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.

Visit TechForum