: 至於所謂的 open source 讓碼農容易跳槽,姑且不論這是不是事實,但獲得
: 這種「能夠自由選擇主人的權利」,這算是什麼偉大的成就...
: 更何況,個人手上沒有工具,阻礙了誰進入硬體業了嗎?他們不容易跳槽?
: 沒辦法擴大產業大餅?拜託到 Tech_Job 多看看吧,哪有這回事啊,他們到
: 這幾年才在搞 open hardware, 但也不是免費的。
很多年前拜讀過小明大大的很多事蹟,以及在ptt的文章
剛好近期在小IC公司上班
年底請了彈休比較有時間胡思亂想、開始有些感觸
所以想來拋磚引玉看要不要大家來開講
本文依舊以泛CS領域的視角來切入
其中的話題主軸是這一兩年中,有個年紀相對輕、卻有點話題性的CPU架構
它叫做:「RISC-V」
一提到這個,我知道各位一定會有很多想法出現
其中一些關鍵字,如「貿易戰」、「自主矽智財」.....等等算是如影隨形
也有很多非技術考量、成本層面的有趣話題可以聊
但是既然今天在Soft_Job上面,本文還是聚焦在工程技術,與成本層面來探討
並且替小明大大的「開源滅產業」話題做一個延續
RISC-V大張旗鼓的一個賣點就是CPU ISA的開放,
實做它的指令集可以不用專利金
tapeout再多顆,RISC-V基金會都沒錢可抽
也可以使用port好又開源免錢的SW stack,e.g. toolchain、OS、firmware、
bootloader......
然而在以前
CPU設計並不是一件簡單的事情,可說有天險阻攔
各位可能都在大學修過計算機組織/架構
寫過verilog/VHDL、刻過一顆很小很小的MIPS(-subset)處理器
但是我想應該不會有人覺得修完之後就可以爆打MIPS、ARM
多數人的心得普遍會是:幹,我不想走硬體
另外一個很大的限制是,設計CPU時要用的FPGA,其toolchain與硬體往往
都是天價商業軟體與硬體
但這些造就知識與資源寡佔的高牆,正在慢慢地傾頹
我個人覺得,這會是小明大大所提及,中小套件軟體業被開源前浪滅頂後;
二三線、小型MCU IC設計公司,被RISC-V帶來的開源後浪捲走的開端
因為現在的開發比真的以前容易非常、非常多
如果你預算只夠買一塊板子就要能夠開發,
- Lattice的ECP5-Versa只要台幣七千多塊[1]
- 從合成、布局繞線到產生bitstream和燒錄,
都有完全開放原始碼工具鍊[2]
- 合上去的那顆SoC,peripheral是用Python寫的、核心CPU是用Scala寫的
而且,他可以跑一個完整功能的Linux[3]
這在過去是很難以想像的一個局面
你不再需要一張十來萬的板子,
你不再需要付費、授權的EDA工具,
你不再需要懂verilog、VHDL等等硬體描述語言
你只需要餘額有一萬塊的visa金融卡,
git clone、make
然後你就搭建好了一個可以進行RISC-V + Linux的軟硬體整合開發環境
而且我真的看到有小公司從Cotex-M 0/1/3跳船去用上面這套組合
有沒有缺點?當然是有
- 那顆RISC-V它的A extension(原子操作)沒做完。
但是最重要的LR/SC做了,其他Atomic Memory Instrucion可以模擬
- 開源peripheral效能很差。
但是夠用了,而且他有PCIe、Ethernet、SD卡、framebuffer
還帶Linux driver port,
有些二三線CPU IP公司送的搞不好還沒有這麼完整
- Wishbone是個很過時的bus設計,時脈拉不上去。
會換的真的不care這個
最重要的就是那句會換的真的不care。
我們都希望客戶能在意、善用那些增強的功能,然後掏出白花花的錢;
但是客戶也是很精的,當他們發現免費午餐其實不難吃(或著變得可以吃)時,
就是市場掉入紅海大洗牌的時候了。
[1] http://www.latticesemi.com/Products/DevelopmentBoardsAndKits/ECP5VersaDevelopmentKit.aspx
[2] https://symbiflow.github.io/
[3] https://github.com/litex-hub/linux-on-litex-vexriscv
==為讓大家有共同討論的基礎背景,尾巴來點科普,熟悉的跳過吧==
RISC-V本質上只是個ISA (指令集架構) 的規範,由基金會統籌主導
規範上分兩部份:
一部分是非特權指令集方面,其中主要包含——
* 必要的 整數(I)指令
* 可選的 乘除法(M)、短指令(C)、原子性操作(A)、單/雙精度浮點(F/D)
- 近期才(吵出)來的記憶體/快取同步問題的Zifencei
另外一方面則是因為有作業系統的存在,所需要的特權指令集
規範了如:
虛擬記憶體的規則,轉換到實體位置的轉換演算法
有哪些狀態暫存器、例外處理的機制......等等
任何推進規範裡面的東西,都必須沒有專利阻擋、
或移交相關專利給RISC-V foundation
以便讓實做出RISC-V規範相容的處理器,沒有任何法律相關的問題
然而RISC-V基金會盡量不規範平台相依的問題。
例如,TLB miss的refill要打exception給OS/firmware處理;
還是給硬體page table walker去回填?
你cache要VIVT、VIPT還是PIPT?
RISC-V基金會:「這些都平台自己決定,我不管」
也因此有很多東西其實是de facto的實做決定
像是誕生出RISC-V基金會的柏克萊大學架構實驗室(UCB-BAR),
有開放其實做,Rocket Chip,在TLB refill上面就是硬體做掉、
在L1$上面用VIPT
結尾的takeaway:
RISC-V開源是開源在規範上,實做有開源也有商業
有很多東西其實在實做上會有差異,並且會穿透到軟體的porting上面
因為開發成本與難度大幅降低,沒有特色的可能會被洗出場外