Re: [問卦] 學會 RISC-V 之後能做什麼工作?

作者: snaketsai (さいでんし)   2022-02-14 13:30:49
※ 引述《zzzz8931 (宅男)》之銘言:
: 現在國內的大學工學院計組或計結課程應該很多改教 RISC-V 了吧,
: 這是在美國 Cal 這間學校誕生的指令集,
: 那學生學會了 RISC-V 之後能做什麼工作啊?
沒想到有人問掛
算是相關產業人員所以來喇賽一下
既然談職缺,那就來說有哪些地方在用
跟為何要僱用這些人
畢竟大家在資本市場,沒有人會散財作沒有獲利的事情
目前RISC-V最大量被採用的,其實還是MCU/MPU這塊
例如存儲設備、藍芽、通訊等等
這塊很多IC公司原本有自己的inhouse core/ISA,
但是維護起來很麻煩,你招人進來要train
工具鏈常常也有一堆陳年臭bug
RISC-V(理想下)可以(在一定程度上)解決這些問題:
有著一個像是Linaro之於ARM的公眾平台
提供(相較之下)品質還不錯的工具鍊、作業系統/driver porting
教材如原po所說,基本上會來這塊的多半也會在學校碰過
所以像Q通這類的IC vendor,其實就在逐步採用RISC-V的指令集
(這有公開新聞稿 : https://tinyurl.com/25uxa7c7 )
所以最直接的工作就是會有一些firmware/BSP工程師的剛性需求
但這塊的可取代性質高,其實老人也可以在摸個幾個星期快速上手
大家打開天窗說亮話,
firmware/BSP code很多時候的effort在於整合、幫忙補洞
senior轉職去摸會比junior要補domain knowlege來的好bring up
頂多一些RISC-V自己特有的架構特性需要補比較久
然而,接下來就要說RISC-V自己特有的產業需求了 ——客製化
作為一個新時代的指令集,RISC-V的特點就是模組化與權限階層化
這點有看過RISC-V規格書的人應該會比較有感覺
我稍微用個很爛的通俗解釋 ——
今天假如你跑到一個沒人的、新形成的火山荒島上,
又剛好不在任何國家的國界內
這就是無政府狀態,完全沒有法律可言
但如果你這島在某個國家國界裡面,
可能就會受到一些最基本的法律限制,例如不可殺人
但你殺了人搞不好也沒警察抓你
如果有人開始跑到這島上,就會開始有政府更深入的立法介入
RISC-V有個最底層最基本的規範框架,即Unprivileged ISA Spec
連這個都不遵循的設計談不上RISC-V相容
但是一些很簡單的micon其實要的東西也不多
反正compiler下一些選項可以編、code可以動,
當RISC-V MCU賣也是賣得起來
(親身看過)
Unprivileged Spec本身也包含了很多功能性的模組
例如FD即單精/雙精度浮點數、B的位元操作......etc
接下來,上面開始跑一些RTOS、跟其他Rich OS
就會開始有Privileged ISA Spec的規範
這時就會有一個RISC-V特有的東西,叫做SBI
它是一個RISC-V特有的概念封裝與firmware層
我每次碰到踏入RISC-V領域的新鮮工程師,都會問一件事,
你覺得在RISC-V上面作cache操作是不是CPU ISA spec的責任?
這題答案在會因人而異,我個人的答案是:不是。
RISC-V SBI的規格書提供了一個SBI Call Extension: RFENCE
簡單來說,你在RISC-V上面需要作跨核心cache同步
是交給SBI firmware去作操作
至於你這個RISC-V平台要怎麼達到這件事情
那是IC/IP vendor的firwmare要提供的
https://github.com/riscv-non-isa/riscv-sbi-doc/blob/master/riscv-sbi.adoc#rfence-extension-eid-0x52464e43-rfnc
作application/OS設計的人的責任,在抽象概念上停在:
我有需要考慮到不同CPU核心的同步問題
我去call一個vendor提供給我的SBI call
下層的firmware會幫我搞定
這點非常不同於任何既有的指令集架構
而這邊也就是各家RISC-V開始會有差異的點
例如阿里巴巴的子公司:平頭哥半導體的C906/C910等等
就有他自己處理cache操作的設計
接下來還有一個層級,當你想要跑Linux、或著其他的複雜作業系統
RISC-V還有一套叫做Platform spec
他會對於一些上述層級有更加收緊、貼近應用使用場景的管控
這樣層層分離,隨著你使用的場景越複雜、規格書控管越緊的特性
造就了一個可以在各層級規格書內,進行擴展的可能性
例如你現在想要設計一顆audio DSP,
你不想要一些housekeeping的邏輯、BSP、SDK還要自己刻
所以你選擇了類似台灣晶心科技、或著捷克Codasip、美國的SiFive等等IP廠商,
他們提供了最基礎的一顆CPU core,
以及他們專用的客製指令集設計框架:
Andes ACE、Codasip CodAL、SiFive SCIE
http://www.andestech.com/en/products-solutions/andes-custom-extension/
https://codasip.com/2021/02/26/what-is-codal/
https://www.sifive.com/technology/scalable-microarchitectures
就可以在上面加上你自己的客製化指令,
來輕鬆搞出一顆你要的專用處理器,
以及對應的工具鏈。
ARM是有受到這樣的威脅,而推出了所謂的ARM Custom Instructions:
https://www.arm.com/zh-tw/technologies/custom-instructions
但是在先天上就沒考慮過這件事情,
可客製化的程度遠遠不及一開始就在規格書劃一塊給你玩的RISC-V
如果你是學生沒錢,想玩玩看
那我由衷推薦可以去試試看Google的CFU
https://github.com/google/CFU-Playground
以及NeoRV32的Custom extension
https://stnolting.github.io/neorv32/#_zxcfu_custom_instructions_extension_cfu
雖然這個只有提供CPU core的客製,工具鏈那邊你要自己手幹inline assembly
或頂多一層很薄的wrapper給你call
但是對學生來說,想要踏進來這是最方便的途徑
說了這麼一串,重點來了,他的工作內容就是瞄準現在的軟硬體整合開發:
一些IC vendor已經嗅到了RISC-V這樣的部份,
開始導入這樣的設計流程
如果你是懂應用層面有哪些bottleneck、
且有足夠的計算機架構知識,知道哪些是可以透過增加客製指令來突破
這種軟體硬體通吃的工程師
會有越來越多公開或著不公開的工作出現在市場上
詳細的我不能再多說,可以自己觀察為什麼一些明明是純軟公司
卻在一直招軟硬整合開發的人

Links booklink

Contact Us: admin [ a t ] ucptt.com