PTT推薦

Re: [請益] 同家NAS 為何出ARM架構與X86架構?

看板PC_Shopping標題Re: [請益] 同家NAS 為何出ARM架構與X86架構?作者
s25g5d4
(function)
時間推噓22 推:22 噓:0 →:47

TL;DR
1. 硬體成本一定有差,苦命工程師只能想辦法支援
2. 軟體開發成本只有前期比較高,後面可以一直沿用
3. 況且很多都是開源的東西,不是單一廠商在做
4. 軟體開發非常講究可移植性,你認為的跨平台問題都不是問題


--


硬體成本上絕對是有差才會有廠商做不同架構
不然開發成本一定比維護單一架構來的大
我不是做硬體的所以無法回答具體來說差多少

除了 CPU 晶片成本以外,還要考慮週邊晶片成本
ARM 晶片大多做成 SoC,它需要的晶片就比較少
x86 不是不能做,例如 AMD Ryzen 其實已經算是 SoC,但過去就比較少
所以廠商前面做好 ARM 支援,之後可以繼續用

再來 ARM 晶片比較好客製化,在嵌入式系統裡面這是非常重要的一點
例如要塞幾個核心、要做功耗大還是功耗小的架構
再諸如內建 NIC、USB、Storage (eMMC, SATA) 等 peripheral interface
以及各種 DSP、I2C、SPI、PCIE
所以它比較好做出"剛剛好"的規格,彈性比 x86 大
而這跟架構授權有關係,x86 你要客製化只能跟 Intel/AMD 談
ARM 就比較簡單,找個有能力有買授權的豬屎屋兜一兜就好
當然很少廠商真的去開案啦,一般都是買現成的方案
例如 RTK、MTK、BRCM、QCOM、安霸之類的
但一樣,ARM 市場就是比 x86 更多樣化

還有功耗,x86 功耗就是高,一樣 idle 就是 2W vs 10W (估計值),全負載差更多
當然 x86 可以提供更高的效能沒錯,所以中高階產品都是 x86 天下
那 ARM 效能就差嗎?倒也不是,Marvell 就有效能超高的 ARM 晶片可以買
但成本有沒有比 x86 低這就不好說
而且只要是高效能,功耗就討不到多少便宜

不要小看功耗,NAS/路由器等等嵌入式系統設計上來說是 24x7 運作的
全年累積下來電費很可觀外,功耗也會決定散熱設計
高效能散熱除了額外的成本,噪音控制對消費級產品也是重要的一環

--

身為碼農還是要談一下軟體開發成本
首先原 po 的論述是「多個架構」的開發成本
但是沒有考慮「特定單一架構」的開發成本
舉例來說 ARM 的 boot loader 就遠比 x86 簡單
以及嵌入式系統很多根本不支援 ACPI
所以很多產品下指令關機卻不會自動斷電,只能提示使用者可以放心拔電源
再來這些架構的開發成本實際上也不會是系統廠來付
IC 原廠以及開源軟體、開源作業系統都幫你做好了
linux on ARM 早已十分成熟,除了作業系統外,各種軟體也早就登陸 ARM
例如 nginx (網頁伺服器)、mdadm (軟體 RAID) 都沒有問題

但還是有很多雷點就是了
像是各家 ARM 有各自的 SDK,SDK 綁 kernel version、綁 compiler
平常沒事就沒事,有事就會很頭痛
像是 BRCM 萬年 linux 2.6、5.2,甚至還有魔改 compiler 的 (為了 ABI 相容)
但這都還是 OS 的範疇,跟 application (幾乎)無關
一般公司會有專屬 FW team 處理這塊

application,也就是消費者實際上會碰到的 UI 介面與各式存取功能
這塊也早已支援跨平台已久
除了傳統 C/C++ multi-arch compiler 外,現今流行的
high-level programming language 也都有原生支援跨平台
例如 golang 原生支援多架構編譯,rust 透過 LLVM 跨平台編譯
python、nodejs 等 script 語言只要 runtime 支援就有

更棒的是這些跨平台都不用軟體商自己來,幾乎都是開源軟體不用錢
所以從 OS 之上之後的東西都幾乎不存在架構差異
很少數情況下會遇到跟架構有關的問題,例如最常見的是效能最佳化
不同平台可能會有不同做法,但遇到機會不大
再說了消費級 NAS 效能跟屎一樣,還不是很多人買 (?)

真有效能需求,x86 產品就在那邊等你買
甚至要談效能最佳化,一般也是 compiler 或 runtime 的事
幾乎輪不到 application 來做

這邊要講一件事情,不是說系統廠就都拿別人的不用錢
其實底層的東西各家還是會養人開發,然後貢獻 upstream
這是集合眾人智慧,全人類智慧結晶的開源社群
講的很好聽但有時候各家廠商還是會各懷鬼胎就是了

--

最後,其實軟體業很講求 abstraction 與 encapsulation
這邊談的不是 OOP 裡的四原則,而是更上層的抽象概念
抽象與封裝具有的特性我拿三個出來談:安全性、易用性以及可移植性
舉例來, VM—這邊談的不是虛擬機,而是虛擬記憶體 virtual memory
它讓作業系統進入多工處理時代
不再讓軟體任意存取記憶體把作業系統打掛 (安全性)
才能開啟後面的分時多工處理,讓作業系統管理資源
相對的 user space software 也不再需要自行管理實體記憶體 (易用性)

再來高階程式語言本身就是對機器語言的封裝
例如工程師寫 a*b+c 他不需要知道在 x86 與 ARM 機器上要怎麼下組合語言
所以換個平台只要編譯器支援都可以跑,這就是可移植性

這些是 1970 年代(甚至更早)就開始有的概念
別忘了 Linux 與 C 開始的年代 x86 還不是主流
當年開發的平台不是 x86 也不是 ARM
所以跨平台支援本就不是新鮮事

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.216.234.248 (臺灣)
PTT 網址

kikilalagirl 02/29 20:58全年累積下來電費很可觀 +1

jyhfang 02/29 20:59ARM的花樣真的很多 啥鬼都有

kuroshizu21 02/29 21:28好文, 推一下

saito2190 02/29 21:32其實cross compile已經司空見慣了

saito2190 02/29 21:32除非你今天要編譯上古架構

saito2190 02/29 21:32例如HPPA PARISC...

labbat 02/29 21:35軟體編譯就外包給便宜的印度阿山完成

roseritter 02/29 21:42

birdy590 02/29 21:44嵌入式系統 cross compile 才是常態

birdy590 02/29 21:44最終的系統裡很可能連 compiler 都沒有

s25g5d4 02/29 21:56結果我在 ARM mac 上面開發,還真的不是

s25g5d4 02/29 21:56cross compile XD

Cubelia 02/29 22:00Rockchip就常被說支援不佳,空有好硬體

Cubelia 02/29 22:02https://youtu.be/aXlcNVKK-7Q

Cubelia 02/29 22:03一些Pi CM替代品review

god145145 02/29 22:14我以為高手都用python 慢就慢能動就好

IhateOGC 02/29 22:15開發人力成本等於0反正工程師是責任制

IhateOGC 02/29 22:16看誰比較倒楣接到沒利潤又麻煩的U

Bencrie 02/29 22:56最後那個是說 UNIX 吧,Linux 一開始就是

Bencrie 02/29 22:56i386 上面的東西

s25g5d4 02/29 23:01對欸 忘了

birdy590 02/29 23:28對岸的便宜 ARM SOC 沒有哪家支援好的

birdy590 02/29 23:29Rockchip 純用它的 CPU 可以, 需要顯示

birdy590 02/29 23:29或是播影片 還是乖乖用樹莓派吧

birdy590 02/29 23:30廠商大部份資源都放在 Android, 開發成

birdy590 02/29 23:30APP 是另一條路... Linux 會用到火大

leolarrel 03/01 09:56我以為ptt這邊滿滿年薪300的RD, 樓主的

leolarrel 03/01 09:57解釋沒有必要,結果看來是我錯了

fmp1234 03/01 12:01長姿勢

laeva75 03/01 12:30nas用arm也能做到高效能的話為何還要另

laeva75 03/01 12:30外搞x86呢?

oppoR20 03/01 12:34成本啊 你高效能arm成本不一定比x86便宜

oppoR20 03/01 12:35而且高效能有些宣傳點arm沒得用 像是虛

oppoR20 03/01 12:35擬機 大部分arm處理器的都沒辦法用

denny0411 03/01 13:24

horb 03/01 13:24因為雞蛋不能放在一個籃子上

v86861062 03/01 14:37推推

hizuki 03/01 16:41 sysroot不一樣就是 cross

righer 03/02 00:56先針對2w vs 10w待機 8w的差距24小時去算

righer 03/02 00:56一天是0.192度 我個人是不覺得一年下來電

righer 03/02 00:56費很可觀

righer 03/02 00:59只能說針對需求去購買 我目前nas 問題某

righer 03/02 00:59些情況cpu loading滿載 等很久nas才正常

righer 03/02 00:59 恨不得cpu要強一點

kikka 03/02 01:27

mihonisizumi 03/02 05:40好文推

swich45314 03/02 16:25用arm是因為成本和耗電 但nas提供的

swich45314 03/02 16:25其實是軟硬體整合服務 實務上我很懷

swich45314 03/02 16:25疑我自架x86的ftp server九成九時間

swich45314 03/02 16:25都休眠 需要時才喚醒開機使用 能多耗

swich45314 03/02 16:25電到哪…

swich45314 03/02 16:45另外用arm做整合硬體 只要壞了 維修

swich45314 03/02 16:45可不像x86主機那樣好維修 因為晶片焊

swich45314 03/02 16:45在板子上 arm有多便宜呢 整合記憶體

swich45314 03/02 16:45的樹梅派約兩千 x86 n100要五千還沒

swich45314 03/02 16:45算記憶體 當然我知道nas不是用樹莓派

swich45314 03/02 16:45的cpu 只是這樣類比目前市面上最低價

swich45314 03/02 16:45的arm和x86

s25g5d4 03/02 17:02??NAS 用的 x86 還不是焊在主機板上

Cubelia 03/02 18:25最近看最屌的是有B站有神人

Cubelia 03/02 18:25把OMV port到龍芯MIPS

swich45314 03/02 19:41nas的是 自架的不是 就像我說的nas賣

swich45314 03/02 19:41的是一條龍 軟硬體整合 自架有很多地

swich45314 03/02 19:41方可以調整 n100也是焊在板子上的 這

swich45314 03/02 19:41些成本都比較低但我懷疑壽命都會較自

swich45314 03/02 19:41架的低

swich45314 03/02 19:42但是自架的 要花時間自己搞定軟硬體

swich45314 03/02 19:42沒有相關知識的 乖乖買nas吧

sank 03/03 18:43