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

看板Gossiping作者 (さいでんし)時間2年前 (2022/02/14 13:31), 編輯推噓12(1201)
留言13則, 13人參與, 2年前最新討論串3/3 (看更多)
※ 引述《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、 且有足夠的計算機架構知識,知道哪些是可以透過增加客製指令來突破 這種軟體硬體通吃的工程師 會有越來越多公開或著不公開的工作出現在市場上 詳細的我不能再多說,可以自己觀察為什麼一些明明是純軟公司 卻在一直招軟硬整合開發的人 -- Linux is the bone of my world. Kernel is mybody, and initramfs is myblood, have created over a thousand Distros. Unknown to impossibility. Nor known to limitation. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.124.168.89 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1644816664.A.CC2.html

02/14 13:37, 2年前 , 1F
推解釋! 最後一段指G?
02/14 13:37, 1F

02/14 13:38, 2年前 , 2F
認真文 給推
02/14 13:38, 2F

02/14 13:40, 2年前 , 3F
「增加客製指令」 就是要開晶片的意思嗎?
02/14 13:40, 3F

02/14 13:45, 2年前 , 4F
推解說
02/14 13:45, 4F

02/14 14:11, 2年前 , 5F
買對公司股票就好了
02/14 14:11, 5F

02/14 14:18, 2年前 , 6F
認真文!!
02/14 14:18, 6F

02/14 14:27, 2年前 , 7F
結果認真文沒人看
02/14 14:27, 7F

02/14 14:32, 2年前 , 8F
太專業了吧
02/14 14:32, 8F

02/14 14:43, 2年前 , 9F
推 已收藏
02/14 14:43, 9F

02/14 14:46, 2年前 , 10F
推認真文
02/14 14:46, 10F

02/14 15:06, 2年前 , 11F
專業推
02/14 15:06, 11F

02/14 16:12, 2年前 , 12F
認真文
02/14 16:12, 12F

02/14 20:07, 2年前 , 13F
推專業
02/14 20:07, 13F
文章代碼(AID): #1Y2UaOp2 (Gossiping)
文章代碼(AID): #1Y2UaOp2 (Gossiping)