Re: [請益] 同家NAS 為何出ARM架構與X86架構?
看板PC_Shopping (個人電腦購買)作者s25g5d4 (function(){})()時間2年前 (2024/02/29 20:53)推噓22(22推 0噓 47→)留言69則, 25人參與討論串2/2 (看更多)
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
推
02/29 20:58,
2年前
, 1F
02/29 20:58, 1F
推
02/29 20:59,
2年前
, 2F
02/29 20:59, 2F
推
02/29 21:28,
2年前
, 3F
02/29 21:28, 3F
推
02/29 21:32,
2年前
, 4F
02/29 21:32, 4F
→
02/29 21:32,
2年前
, 5F
02/29 21:32, 5F
→
02/29 21:32,
2年前
, 6F
02/29 21:32, 6F
→
02/29 21:35,
2年前
, 7F
02/29 21:35, 7F
推
02/29 21:42,
2年前
, 8F
02/29 21:42, 8F
→
02/29 21:44,
2年前
, 9F
02/29 21:44, 9F
→
02/29 21:44,
2年前
, 10F
02/29 21:44, 10F
→
02/29 21:56,
2年前
, 11F
02/29 21:56, 11F
→
02/29 21:56,
2年前
, 12F
02/29 21:56, 12F
推
02/29 22:00,
2年前
, 13F
02/29 22:00, 13F
→
02/29 22:02,
2年前
, 14F
02/29 22:02, 14F
→
02/29 22:03,
2年前
, 15F
02/29 22:03, 15F
→
02/29 22:14,
2年前
, 16F
02/29 22:14, 16F
推
02/29 22:15,
2年前
, 17F
02/29 22:15, 17F
→
02/29 22:16,
2年前
, 18F
02/29 22:16, 18F
推
02/29 22:56,
2年前
, 19F
02/29 22:56, 19F
→
02/29 22:56,
2年前
, 20F
02/29 22:56, 20F
→
02/29 23:01,
2年前
, 21F
02/29 23:01, 21F
推
02/29 23:28,
2年前
, 22F
02/29 23:28, 22F
→
02/29 23:29,
2年前
, 23F
02/29 23:29, 23F
→
02/29 23:29,
2年前
, 24F
02/29 23:29, 24F
→
02/29 23:30,
2年前
, 25F
02/29 23:30, 25F
→
02/29 23:30,
2年前
, 26F
02/29 23:30, 26F
→
03/01 09:56,
2年前
, 27F
03/01 09:56, 27F
→
03/01 09:57,
2年前
, 28F
03/01 09:57, 28F
推
03/01 12:01,
2年前
, 29F
03/01 12:01, 29F
推
03/01 12:30,
2年前
, 30F
03/01 12:30, 30F
→
03/01 12:30,
2年前
, 31F
03/01 12:30, 31F
推
03/01 12:34,
2年前
, 32F
03/01 12:34, 32F
→
03/01 12:35,
2年前
, 33F
03/01 12:35, 33F
→
03/01 12:35,
2年前
, 34F
03/01 12:35, 34F
推
03/01 13:24,
2年前
, 35F
03/01 13:24, 35F
推
03/01 13:24,
2年前
, 36F
03/01 13:24, 36F
推
03/01 14:37,
2年前
, 37F
03/01 14:37, 37F
→
03/01 16:41,
2年前
, 38F
03/01 16:41, 38F
推
03/02 00:56,
2年前
, 39F
03/02 00:56, 39F
→
03/02 00:56,
2年前
, 40F
03/02 00:56, 40F
→
03/02 00:56,
2年前
, 41F
03/02 00:56, 41F
推
03/02 00:59,
2年前
, 42F
03/02 00:59, 42F
→
03/02 00:59,
2年前
, 43F
03/02 00:59, 43F
→
03/02 00:59,
2年前
, 44F
03/02 00:59, 44F
推
03/02 01:27,
2年前
, 45F
03/02 01:27, 45F
推
03/02 05:40,
2年前
, 46F
03/02 05:40, 46F
推
03/02 16:25,
2年前
, 47F
03/02 16:25, 47F
→
03/02 16:25,
2年前
, 48F
03/02 16:25, 48F
→
03/02 16:25,
2年前
, 49F
03/02 16:25, 49F
→
03/02 16:25,
2年前
, 50F
03/02 16:25, 50F
→
03/02 16:25,
2年前
, 51F
03/02 16:25, 51F
→
03/02 16:45,
2年前
, 52F
03/02 16:45, 52F
→
03/02 16:45,
2年前
, 53F
03/02 16:45, 53F
→
03/02 16:45,
2年前
, 54F
03/02 16:45, 54F
→
03/02 16:45,
2年前
, 55F
03/02 16:45, 55F
→
03/02 16:45,
2年前
, 56F
03/02 16:45, 56F
→
03/02 16:45,
2年前
, 57F
03/02 16:45, 57F
→
03/02 16:45,
2年前
, 58F
03/02 16:45, 58F
→
03/02 17:02,
2年前
, 59F
03/02 17:02, 59F
推
03/02 18:25,
2年前
, 60F
03/02 18:25, 60F
→
03/02 18:25,
2年前
, 61F
03/02 18:25, 61F
→
03/02 19:41,
2年前
, 62F
03/02 19:41, 62F
→
03/02 19:41,
2年前
, 63F
03/02 19:41, 63F
→
03/02 19:41,
2年前
, 64F
03/02 19:41, 64F
→
03/02 19:41,
2年前
, 65F
03/02 19:41, 65F
→
03/02 19:41,
2年前
, 66F
03/02 19:41, 66F
→
03/02 19:42,
2年前
, 67F
03/02 19:42, 67F
→
03/02 19:42,
2年前
, 68F
03/02 19:42, 68F
推
03/03 18:43,
2年前
, 69F
03/03 18:43, 69F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
PC_Shopping 近期熱門文章
PTT數位生活區 即時熱門文章