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

看板 PC_Shopping
作者 s25g5d4 (function(){})()
時間 2024-02-29 20:53:11
留言 38則留言 (15推 0噓 23→)

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.cc), 來自: 49.216.234.248 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/PC_Shopping/M.1709211194.A.31E.html

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

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

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

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

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

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

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

roseritter: 推 122.117.187.82 02/29 21:42

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

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

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

s25g5d4: cross compile XD 49.216.234.248 02/29 21:56

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

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

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

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

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

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

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

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

s25g5d4: 對欸 忘了 49.216.234.248 02/29 23:01

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

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

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

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

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

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

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

fmp1234: 長姿勢 37.19.205.234 03/01 12:01

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

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

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

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

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

denny0411: 推 49.217.177.143 03/01 13:24

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

v86861062: 推推 1.200.151.131 03/01 14:37

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

您可能感興趣