跳到內容

消息

通過彌合嵌入式系統中軟件和硬件之間的差距來實現業務成功

by Contec Americas 08 Feb 2023 0 評論
Achieve business success by bridging the gap between software and hardware in embedded systems

技術解決方案的設計和原型製作階段通常耗時較長,對企業的成功至關重要。這些項目的初始資本投入可能很高。因此,風險和期望也都很高!由於疫情的影響,我們仍在承受著運輸延誤和電子元件短缺的後果,許多公司面臨巨大的壓力,必須按時將產品推向市場並交付已承諾的庫存。

此外,由於應用程式通常需要不斷提升處理能力,硬體資源的競爭也從未停止。這意味著硬體在初期可能配置過高,隨著時間的推移而過時。因此,您需要不斷修改設計,為您的技術產品添加更多硬體功能,從而不必要地增加成本和投資。

最後,要找到同時精通嵌入式系統、硬體和軟體的經驗豐富的員工並非易事。在一些公司,缺乏嵌入式系統經驗的工程師負責領導和開發技術專案。因此,他們可能會選擇開發套件(例如 Jetson Nano、Arduino、Raspberry Pi),因為他們熟悉這些系統,而這些套件具備便於與其他系統整合的標準功能。開發板在工業領域有著獨特的應用,您可以在這篇文章中了解更多資訊。但對於大規模生產而言,情況可能並非如此。

所有這些因素都會對程式語言、演算法架構以及整體應用軟體開發決策產生負面影響。有時,最終的選擇可能是使用標準作業系統,而不是定製或專用作業系統,或使用 Stack Overflow 上的拼湊程式碼,而不是專有演算法。這會導致資源浪費、硬體組件過大、不必要的延誤以及額外的重新設計或認證成本。因此,起初這似乎是一個經濟高效的解決方案,但從長遠來看,您可能會發現它不是最佳選擇。更糟的是,在正常運作期間,硬體滿載運轉會導致發熱、平均故障間隔時間縮短以及更高的維修成本。

演算法架構

讓我們分析一下企業建構演算法架構的常見路徑。遺憾的是,一些從事嵌入式系統開發的工程師在沒有任何計畫或設計的情況下就開始進行程式設計。問題在於,你只能在事後才能知道你的演算法是高效率還是低效。

我們將描述兩個理想演算法的例子:線性演算法和對數演算法。假設每個基本操作耗時一秒鐘。對於線性演算法,隨著輸入數量的增加,執行時間也會增加,如表 1 所示。如果演算法呈現對數特性,則隨著輸入數量的增加,其執行時間將保持穩定(表 2)。例如,二分查找演算法就表現出對數特性。

表 1. 線性演算法的輸入與執行時間的關係。

輸入

執行時間

10

0.00000001

100

0.0000001

1 000

0.000001

10億

1

表 2. 對數演算法的輸入與執行時間的關係。

輸入

執行時間

10

3.3E-09

100

6.6E-09

1 000

1.0E-08

10億

3.0E-08

這兩個例子在現實生活中並不常見,因為演算法很少呈現線性或對數行為。 「愚蠢排序」演算法就是一個例子,它展示了在程式設計之前沒有任何規劃或設計的情況下會產生的結果。這是一個基於隨機抽樣的演算法,其抽樣條件服從階乘分佈(表3)。例如,如果有100個輸入,我們需要3.2E+183年才能解決這個問題。根據NASA的數據,宇宙的年齡為13.7E9年,這意味著如果我們從宇宙誕生之日起就開始運行這個演算法,它仍然無法找到解決方案。為了避免浪費硬體資源,我們應該避免使用像「愚蠢排序」這樣的階乘演算法。

表 3. 階乘演算法的輸入與執行時間的關係。

輸入

執行時間

持續時間(年)

10

10

3.171E-7

100

1.0E+191

3.2E+183

1 000

10億

事實上,硬體是有限制的。通常,嵌入式系統的時間尺度難以被人類理解。因此,為了便於分析,我們將定義一個更容易理解的時間尺度。對於2014年普通計算機中常見的3.9 GHz處理器,我們可以說一個CPU週期耗時1秒(如表4所示)。在這種情況下,從硬碟讀取一個檔案在最壞情況下可能需要1.5年,或從RAM記憶體讀取一個檔案可能需要32秒。由此可見,設計不佳的演算法會浪費資源。因此,在審查軟體開發流程時,您可能會認為需要更強大、效能更高的硬體。

表 4. 電腦中常規程序的執行時間(以易於理解的比例表示)。

活動

時間

人體尺度

CPU週期

0.256 奈秒

1秒

緩存 L1

1.026 奈秒

4秒

二級緩存

3.077 奈秒

12秒

緩存 L3

6.154 奈秒

24秒

R.A.M。 記憶

8.4 奈秒

32秒

硬碟-最佳情況

2.9毫秒

132天

硬碟-最壞情況

12毫秒

1.5年

固態硬碟

85微秒

3天20小時

背景變化

10 微秒

10.8 小時

量子

100毫秒

12.4年

在開發科技產品時,如何才能取得商業成功?

透過精心設計演算法架構,您需要組建一個團隊,其中至少要有一位經驗豐富的嵌入式系統工程師。這位專業人士最擅長設計能夠在特定硬體上運行的演算法。他/她會專注於優化軟體以更好地匹配硬體(而不是反過來),從而帶來更高的投資回報率,並為您省去許多運營和製造方面的麻煩。

嵌入式系統工程師會制定策略、規劃和編程,以避免軟體開發中常見的錯誤,並且能夠預測硬體效能。這意味著挑戰可以減少,更容易取得業務成功。誰知道呢!你甚至可能成為公司工業4.0、物聯網、機器人或影像處理領域的英雄。

如果您想繼續閱讀有關此主題的內容,可以查看以下內容: 本部落格你也可以 請查看此頁面 有關嵌入式系統的詳細資訊。

上一篇文章
下一篇文章

留下評論

請注意,評論需要先經過審核才能發佈。

感謝訂閱!

此電子郵件已被註冊!

購買整體造型

選擇選項

編輯選項
Back In Stock Notification
比較
產品 SKU 描述 集合 可用性 產品類型 其他詳細信息

選擇選項

this is just a warning
登入
購物車
0 項目