小型、強大、高效率且具成本效益的 ARM 架構板提供優異的硬體選項
資料提供者:DigiKey 北美編輯群
2016-06-21
你的核心競爭力為何? 這個問題很少被提及,或許乍聽之下很基本,但你的答案可能會決定你的設計在市場中的成敗。 晶片的整合度與商品化程度越來越高,晶片的基礎架構也逐漸標準化,不將資源投注在用相關硬體執行的軟體,讓產品更容易達到差異化,而是將寶貴的開發資金、時間與人力投入自行設計板件和其他相關硬體,可能不再是明智之舉(即便這麼做曾經明智的話)。
若您決定要採用標準化的 ARM® 架構系統實作方式,Raspberry Pi 基金會的多種板件選項,能在您開發專屬硬體時提供吸引人的替代方案,特別是針對中量生產。 這些板件在全球深受歡迎,加上多家採購來源,因此不僅供應量充足,並具有符合成本效益的價格。 提供多種採用不同世代 CPU 核心的板件款式;在尺寸、重量、功耗規格、時脈速度、連線能力、記憶體及其他周邊配置上也各不相同。 板件的標準化加裝硬體 (HAT) 連接器與軟體通訊協定,提供進一步的周邊擴充支援,以及除錯與其他開發支援。 此外,系統出貨量增加到自己生產硬體能夠產生財務效益時,這些板件的開放原始碼規格將可輕鬆實現這樣的變遷。
這張表格概述四種 Raspberry Pi 板件的選項,而本文後續將更詳細探討這些選項。 由於處理器效能及其他功能是選擇板件時的主要條件(但非唯一),因此本文將納入效能評比程式碼範例及其他評估指南進行總結。
Raspberry Pi Model A+ | Raspberry Pi Model B+* | Raspberry Pi 2 Model B | Raspberry Pi 3 Model B | |
---|---|---|---|---|
SoC | Broadcom BCM2835 | Broadcom BCM2836 | Broadcom BCM2837 | |
CPU | 700 MHz(32 位元)單核心 ARM1176JZF-S | 900 MHz(32 位元)四核心 ARM Coretex-A7 | 1.2 GHz(64 位元)四核心 ARM Cortex-A53 | |
系統記憶體 (與 GPU 畫格緩衝器共用) |
256 MB | 512 MB | 1 GB | |
USB 2 連接埠 | 1(來自 BMC2835) | 4(來自另外的多埠集線器 IC) | ||
整合式網路 | 無 | 透過整合式 USB 配接器提供 10/100 Mbps 有線乙太網路 | 10/100 Mbps 乙太網路、802.11n Wi-Fi、藍牙 4.1 | |
額定功率 | 200 mA (1 W) | 600 mA (3 W) | 800 mA (4 W) | |
尺寸 | 2.56 in x 2.22 in | 3.37 in x 2.224 in | ||
重量 | 0.8 oz | 1.6 oz |
*停產項目
表 1:比較四種 Raspberry Pi 選項,展現選項的影響範圍
以上四種板件皆具有以下相同特點:
- 透過 15 引腳 MIPI CSI 相機介面連接器提供視訊輸入
- 兩個視訊輸出選項:數位 HDMI(1.3 和 1.4)及類比複合視訊(3.5 mm TRRS 插孔)
- I2S 數位音訊輸入
- 三種音訊輸出選項:數位 HDMI 與 I2S,以及類比(3.5 mm TRS 插孔)
- 透過 MicroSDHC 插槽提供非揮發性儲存空間
- 17 個 GPIO 針腳,外加 HAT ID 匯流排
- 透過 micro-USB 纜線或序列纜線及選配的 GPIO 電源連接器提供控制台介面
Raspberry Pi ("1")
本文討論的 Model A+(圖 1)是延續 Model A 但縮減尺寸並降低成本的產品;Model A 本身則是原始 Model B 降低成本(並減少功能)的版本。Model A+ 的尺寸為 2.56 in x 2.22 in (65 mm x 56.5 mm),符合本文四個板件替代方案皆支援的加裝硬體 (HAT) 附加擴充卡的尺寸。 這個特定的板件版本含有四個板件中最少的 SDRAM 容量 (256 MB),並且僅提供一個 USB 連接器,無整合式網路支援(雖然兩者皆可透過 USB 或 HAT 架構周邊進行擴充)。
本文涵蓋的另一個第「1」代 Raspberry Pi 是 Model B+(此型號已停產,但為了與其他供貨中的型號做比較,亦在此探討)。 其系統板覆蓋區為 3.37 in x 2.224 in (85.6 mm x 56.5 mm),比 Model A+ 大(與後續介紹的 Raspberry Pi 2 及 Raspberry Pi 3 產品相同)。 此擴大的尺寸能發揮良好用途,具有加倍至 512 MB 的系統記憶體、四倍的 USB 連接埠數量,以及內嵌 10/100 Mbps 有線乙太網路支援。
另外,雖然 700 MHz 單核心 ARM11 CPU 相較於採用現代十核心 CPU 的智慧型手機似乎顯得有點過時,但別忘了這個 CPU 為第一代 Apple iPhone® 與後繼的 iPhone 3G 提供了「強大」的運算能力。 如果效能需求不是很高,Broadcom BCM2835 或許就相當足夠,能讓 Model A+ 板達到低功耗,因此特別吸引人。
圖 1:第一代 Raspberry Pi 的設計以 Broadcom 的 BCM2835 SoC 為基礎,其中整合了 700 MHz 單核心 ARM11 CPU。 此產品提供兩種板外型尺寸(與功能組合)選項,包括較小的 Model A+(上)與較大的 Model B+(下)。 (圖片來源:Seeed Technology)
Raspberry Pi 2
Raspberry Pi 2 Model B 在 Raspberry Pi Model A+ 與 Model B+ 推出的次年問世,維持與前代一樣的較大尺寸,從功能組合演變的觀點而言,有兩個值得注意的關鍵面向。 首先,系統記憶體容量是 Model B+ 的兩倍,來到1 GB(Model A+ SDRAM 配置的四倍)。 其次而且更重要的是,從 Broadcom 的 BCM2835 轉用 BCM2836,CPU 時脈速度大幅提升 200 MHz,並從單核心 ARM11 進化為四核心 ARM Cortex®-A7。
GPU 維持不變,這表示 Raspberry Pi 2 不一定能帶來較高的繪圖與視訊畫格速率(除非過去的瓶頸為 CPU 的處理能力不足)。 但是,談到處理能力,這次的 CPU 升級通常可顯著提升應用程式執行階段的速度,以下會更深入討論相關原因。 同樣的,如之前所述,儘管在入門級智慧型手機中越來越常見使用後繼的 64 位元 CPU,也不要輕視四核心 32 位元 CPU 的能力。 畢竟 iPhone 4S 採用的還是 ARM Cortex-A7 的 800 MHz 雙核心配置。
圖 2:Raspberry Pi 2 Model B 維持前代產品 Raspberry Pi Model B+ 的尺寸,但將應用處理器升級至 Broadcom BCM2836,內含 900 MHz 四核心 ARM Cortex-A7 CPU。 (圖片來源:Seeed Technology)
Raspberry Pi 3
Raspberry Pi 3 Model B 追隨前代產品 Raspberry Pi 2 的腳步,在一年之後推出,進一步將 Broadcom 應用處理器從 BCM2836 進化至 BCM2837,亦即從 900 MHz 四核心 ARM Cortex-A7 的 32 位元 CPU 進化為 64 位元的 1.2 GHz 四核心 ARM Cortex-A53。 BCM2837 的 GPU 核心為 Broadcom 的 VideoCore IV,其功能維持不變,但在 3D 圖形處理時時脈速度提升至 300 MHz,視訊處理時則提升至 400 MHz。 後者的效能提升能針對 H.264 (MPEG-4 AVC) 高設定檔內容進行完整的 1080p 60 Hz 編碼與解碼。 基於 GPU 日漸提升的重要性,此 SoC 和板件世代的時脈速度也有所提升,相關內容也會進一步探討。
圖 3:Raspberry Pi 3 進一步延伸前幾代產品的外型尺寸相容性,但在 SoC 上進一步升級至 Broadcom 的 1.2 GHz(64 位元)四核心 ARM Cortex-A53 架構 BCM2837。 (圖片來源:Seeed Technology)
Raspberry Pi 3 Model B 在內建的連線技術選項上也顯著增進。 這次同樣提供 10/100 Mbps 有線乙太網路,並且加入了僅支援 2.4 GHz 的 802.11n Wi-Fi 和藍牙 4.x 功能(先前世代的板件皆需要額外的周邊才能支援這兩項功能)。
所以,哪個處理器最好?
CPU 時脈速度、核心數量與功能組合,如本文之前強調的,正是第一代 Raspberry Pi、第 2 與第 3 代產品之間的關鍵差異。 Raspberry Pi Model A+ 與 Model B+ 採用的 ARM11 是相對直覺的循序 8 階管線設計,提供有限的亂序指令完成支援,並可執行 ARMv6 指令集。 雖然指定的最大運行速度為 700 MHz,但使用者回報能成功超頻至 800 MHz;這個特殊的核心實作亦包括架構上的選配浮點運算單元 (FPU)。
Raspberry Pi 2 Model B 採用 ARM11 的後繼產品 ARM Cortex-A9,基本上也是採用 32 位元架構。 BMC3286 與 BMC8285 相似,在超頻期間可經常保持穩定,但這次是從 900 MHz 超頻至 1.1 GHz。 ARM Cortex-A9 架構比 ARM11 大幅進化,提供亂序、臆測問題、超純量 8 階管線。 ARM Cortex-A9 運行後繼產品 ARMv7-A 的指令集;BMC3286 亦含有選配的浮點單元(比 ARM11 的核心更優異)與「NEON」SIMD 輔助處理器。 當然,BMC3286 內建了四個處理器核心,但前代產品 BMC3285 只有一個。
最後,也採用了 Raspberry Pi 3 Model B 的四核心 ARM Cortex-A53。這也是 8 階管線處理器,含有雙向超純量執行管線,但這次是完全的 64 位元實作,支援最新世代的 ARMv8-A 指令集。 這次同樣提供 NEON SIMD 與浮點輔助處理器(兩者皆比 ARM Cortex-A9 的實作更進一步提升)。 另外,相對 BMC3286 最高只能以 1.1 GHz 執行,要取得更高時脈只能透過超出規格的超頻組態,BMC3287 保證能以 1.2 GHz 運行,並有部分使用者回報可穩定超頻至 1.4 GHz。
你應該選擇哪個處理器? 答案依據應用而定,因此每個使用者的答案各不相同。 一方面,你並不希望選擇對你而言太慢的 CPU,特別是你希望保留一些效能「餘裕」以因應未來不可避免的軟體進化。 另一方面,採購超出需求過多的處理器也不划算;請記住,你的選擇不僅會影響價格,同時也會影響功耗。 CPU 不是你選擇某一款 Raspberry Pi 板件的唯一考量,你還必須將記憶體需求、網路連線選項及其他屬性納入考量。
另外,如果軟體有很多時間都在閒置迴圈中等待輸入,那麼較高的時脈速度並沒有太大的意義。 同時請記得,唯有軟體對指令對指令的依存性低時,先進架構功能,如超純量與亂序支援,才能明顯達到較高的每單位時脈指令數 (IPC)。 同樣的,相較於較簡易的單核心替代方案,多核心 CPU 若缺乏執行緒獨立性,處理量優勢將會有限,而且 64 位元指令集在理論上的優勢,有可能無法在應用程式中發揮作用(更不用說較高的記憶體需求)。 相反的,請記住 ARMv8 指令集中的 AArch32 改良可能會提升效能,即使 ARM Cortex-A53 僅執行 32 位元程式碼。
圖形增強
另一個可用的晶片處理選項將使 SoC 的選擇更加複雜(也可說是更加自由)。 概念上,你可以將圖形處理器(或在本文中的圖形核心)視為大型平行處理「引擎」,非常適合進行像素處理作業,也適合各種更廣泛的數位訊號處理和其他運算。 這個名為一般用途圖形處理單元 (GPGPU) 的技術越來越受到歡迎,但需要軟體支援才能釋放硬體潛能。
不巧的是,本文中三個世代的 Broadcom SoC 所採用的 VideoCore® IV GPU 目前都不支援 OpenCL 程式語言開放標準組合,以及由 Khronos Group 所維護用於異質平行編程的 API(Raspberry Pi 2 與 3 既有的 OpenCL 支援,目前僅限於運用 CPU 的各種資源)。 不過,當 Broadcom 於 2014 年 10 月以開放原始碼形式發佈全套的 VideoCore IV 規格 (PDF) 時,也提供了針對一般用途存取與運用 GPU 的替代方法。
例如,Raspberry Pi 的愛好者 Pete Warden(同時也是 Google 研究工程師以及 Jetpac 的前創辦人兼技術長;Jetpac 後來由 Google 收購)就想出了如何利用 GPU 大幅加速物件識別作業的方法;他運用先前公司的 Deep Belief 深度學習 SDK,搭配 VideoCore IV 中的 QPU(SIMD 四核心處理單元)的組譯器/解譯器(在此瞭解他的解決方案: https://petewarden.com/2014/08/07/how-to-optimize-raspberry-pi-code-using-its-gpu/)。 開放原始碼社群也想出了如何使用這些 QPU 大幅提升 FFT 的處理效能。 許多其他專案範例會包括 Github 託管的開放原始碼程式範例;建議利用以下關鍵字搜尋:
- "Raspberry Pi GPGPU"
- "Broadcom VideoCore IV GPGPU"
- "Raspberry Pi OpenCL"
- "Broadcom VideoCore IV OpenCL"
相機與結論
深度學習的圖形辨識功能非常適合用於多種影像分析應用,而這在我最近的文章中有所強調(Pete Warden 的專案就是最佳映證)。 如何將這些影像輸入板件? 常見的選項是 MIPI CSI 架構的 Raspberry Pi 相機模組(圖 4),以 OmniVision Technologies 的 OV05647 5 百萬像素 CMOS 影像感測器為基礎。 請記住,即使你不擅長深度學習,Raspberry Pi 板仍是電腦視覺應用的理想選擇,特別是考慮到 OpenCV 開放原始碼電腦視覺函式庫社群的熱情支持時。
圖 4:Raspberry Pi 相機模組整合了 MIPI SPI 介面,本文討論的所有 Raspberry Pi 系統板皆原生內建此介面;5 百萬畫素解析度對於許多電腦視覺作業而言已經足夠。
一般來說,目前有大量的軟體選擇可用於開放原始碼應用與整合作業;從 Wikipedia 中冗長的清單中選擇將會是絕佳的開始。 同樣的,雖然軟體模擬可讓你初步瞭解應選擇哪個 Broadcom SoC 世代(亦即 Raspberry Pi 板的世代),但是這些板件的價格並不昂貴,你可以考慮每個世代各購買一個,以便實際動手評估;外型尺寸相容的 Raspberry Pi Model B+、Raspberry Pi 2 Model B 及 Raspberry Pi 3 Model B 特別適合用來進行硬體更換與軟體測試。
在結尾的同時,我建議各位別忘了享受一些樂趣! Raspberry Pi 社群的規模、多樣性及能量有時可能會提供太多資訊,讓人應接不暇,但只需一些研究,便能很快地挖到寶貴的「金塊」,有助你的下一個設計更快速、穩健且以成本效益的方式進入市場。

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。