近年來(lái),整個(gè)電子行業(yè)似乎都為RISC-V感到瘋狂。但什么是RISC-V?您將能如何參與其中?如果您曾經(jīng)閱讀過(guò)相關(guān)資料,您會(huì)知道它是一種處理器,并且目前市場(chǎng)上已經(jīng)有相關(guān)芯片可以使用。您可能還知道它是“自由和開(kāi)放的”,主要是因?yàn)樗钊伺d奮并擁有龐大的粉絲群。 讓我們撥開(kāi)迷霧,找出這項(xiàng)技術(shù)的真正意義所在。
首先,我們必須弄清楚,RISC-V是一種指令集體系結(jié)構(gòu)或ISA ,而不是處理器。這意味著,如果您選擇基于RISC-V ISA,則RISC-V背后的社區(qū)已經(jīng)對(duì)處理器設(shè)計(jì)的工作方式進(jìn)行了描述。當(dāng)我們說(shuō)“設(shè)計(jì)”時(shí),實(shí)際上是指創(chuàng)建具有所有寄存器,累加器,數(shù)學(xué)運(yùn)算,存儲(chǔ)器總線(xiàn)以及其他所有部件的處理器。
ISA記錄了受支持的操作,內(nèi)存尋址功能,堆棧的功能以及發(fā)生中斷時(shí)的情況,僅舉幾例。關(guān)于支持的操作,它說(shuō)明了使用多少位對(duì)指令進(jìn)行編碼以及使用哪些位對(duì)所需的任何操作數(shù)的源進(jìn)行編碼。
RISC V讓人興奮的原因在于其ISA是免費(fèi)開(kāi)放的。開(kāi)放意味著任何人都可以為它的發(fā)展做出貢獻(xiàn),而自由意味著它不需要花錢(qián)就可以使用。 但是,就像Arduino電路板設(shè)計(jì)是開(kāi)放和免費(fèi)使用的一樣,這并不意味著不需要花錢(qián)就可以買(mǎi)到一塊電路板,并且同樣適用于構(gòu)建基于RISC-V的理想設(shè)計(jì)。
RISC-V在競(jìng)爭(zhēng)什么?
每個(gè)處理器都有一個(gè)ISA;幾乎所有專(zhuān)利都是專(zhuān)有的,而其實(shí)有些是可許可授權(quán)使用 的。Microchip生產(chǎn)的器件使用8位和16位PIC處理器,并且在某處有一個(gè)ISA來(lái)描述它們。這些是專(zhuān)有的內(nèi)核,屬于Microchip并在其微控制器中出售。 如果您想構(gòu)建自己的微控制器,則可能要看一下Arm和MIPS。這些專(zhuān)有核心可作為知識(shí)產(chǎn)權(quán)(IP)許可。他們背后的企業(yè)將把ISA轉(zhuǎn)換為良好的處理器設(shè)計(jì),開(kāi)發(fā)支持它們的工具,創(chuàng)建其他相關(guān)基礎(chǔ)結(jié)構(gòu)并向您收取使用費(fèi)。但這些ISA面臨的挑戰(zhàn)是這些選項(xiàng)不能完全滿(mǎn)足您的期望。
您的新應(yīng)用可能需要非??斓貓?zhí)行一項(xiàng)任務(wù)(例如加密),但功耗卻很小。潛在的可許可處理器IP可能以100條指令執(zhí)行您的任務(wù)。如果現(xiàn)在希望降低功耗,則需要找到專(zhuān)門(mén)用于低功耗的硅制造設(shè)施(fab),這可能比“通用”制造工藝昂貴,從而導(dǎo)致您難以置信的產(chǎn)品對(duì)于您的目標(biāo)市場(chǎng)而言過(guò)于昂貴。
但是,您可能會(huì)有一些聰明的工程師,可以通過(guò)為處理器創(chuàng)建新指令來(lái)優(yōu)化代碼的執(zhí)行時(shí)間,但是由于ISA是專(zhuān)有的,因此您不允許對(duì)其進(jìn)行修改。因此,您陷入了需要用制造方法解決的處理器性能問(wèn)題。稍后對(duì)此進(jìn)行更多討論。
開(kāi)箱即用的RISC-V
RISC-V的出現(xiàn),基本解決了上述問(wèn)題。當(dāng)前,他們定義了32位和64位ISA,并且也正在使用128位ISA。這些基本定義被命名為RV32I和RV64I。如果選擇RV32I,將有49條指令供您使用。順便說(shuō)一句,“ I”代表“整數(shù)”。其中包括所有基本的整數(shù)算術(shù)和邏輯指令(ADD,SUB,AND,OR,XOR),移位,比較,跳轉(zhuǎn)和鏈接,以及一些系統(tǒng)指令。如果您希望支持緊湊代碼,則可能對(duì)“ C”選項(xiàng)感興趣。這提供了16位指令編碼,類(lèi)似于Arm Thumb模式。也可以添加乘法和除法(M),原子(A)和浮點(diǎn)(F,D和Q)指令。
下一步是根據(jù)硬件描述語(yǔ)言[(HDL)(例如VHDL或Verilog)中所選選項(xiàng)的規(guī)范來(lái)設(shè)計(jì)處理器內(nèi)核。由于這并不容易,所以這就是社區(qū)所關(guān)注的方面。設(shè)計(jì)處理器需要很多技巧,因此有很多人和企業(yè)為您提供現(xiàn)成的設(shè)計(jì)。如果您想走“免費(fèi)”路線(xiàn),由ETH Zurich和Bologna大學(xué)創(chuàng)建。他們的CV32E40P RV32IM C實(shí)現(xiàn)可在GitHub 上找到,如果您想了解如何實(shí)現(xiàn)這種的方法,指令解碼器也在其上。另一個(gè)實(shí)現(xiàn)是BOOM項(xiàng)目,這是由加利福尼亞大學(xué)伯克利分校開(kāi)發(fā)的高性能且可參數(shù)化的體系結(jié)構(gòu)研究核心。
圖1:使用RISC-V實(shí)現(xiàn)的BOOM項(xiàng)目開(kāi)發(fā)過(guò)程。(來(lái)源:加利福尼亞大學(xué))
如果您急于需要一些支持,那么您將需要花一些錢(qián),并從SiFive 之類(lèi)的企業(yè)處獲得實(shí)現(xiàn)的許可。它們具有可用的32位和64位設(shè)計(jì),你們也可以對(duì)其進(jìn)行定制。
如何試用RISC-V?
盡管RISC-V已經(jīng)存在了一段時(shí)間,但沒(méi)有太多可供我們測(cè)試的芯片。在行業(yè)背景下,RISC-V還是相對(duì)較新的。如果您熱衷于微控制器,那么您將了解整個(gè)行業(yè)中大多數(shù)人是如何采用Arm的,而不再使用其專(zhuān)有的內(nèi)核。那是一項(xiàng)戰(zhàn)略性的長(zhǎng)期投資?,F(xiàn)在轉(zhuǎn)向RISC-V只會(huì)節(jié)省支付給Arm的特許權(quán)使用費(fèi),并且不會(huì)給用戶(hù)帶來(lái)什么好處。他們還需要使他們的開(kāi)發(fā)團(tuán)隊(duì)在RISC-V上達(dá)到最新,將其與所有其他IP(模擬,計(jì)時(shí)器,總線(xiàn),接口,內(nèi)存)集成,更新開(kāi)發(fā)IDE,編譯器,調(diào)試器等。
如果您擁有Seagate或Western Digital硬盤(pán)驅(qū)動(dòng)器,則可能已經(jīng)在“使用” RISC-V 。但是您實(shí)際上是想在此內(nèi)核上運(yùn)行代碼,而不僅僅是擁有使用它的產(chǎn)品。最快的方法是使用模擬器,例如ESEO提供的emulsiV ,該模擬器使用其RISC-V核心實(shí)現(xiàn)“ Virgule”(圖2)。
圖2:使用emulsiV模擬器,任何人都可以在其Web瀏覽器中試用RISC-V。
除了處理器之外,模擬器還提供一些指令輸入/輸出,位圖輸出和一些通用I / O(GPIO)。七個(gè)示例涵蓋了基礎(chǔ)知識(shí),從添加和輸出ASCII文本到控制GPIO?!?animation”(動(dòng)畫(huà))選項(xiàng)(復(fù)選框的頂部中間)是一個(gè)不錯(cuò)的選擇,它顯示了所有數(shù)據(jù)的來(lái)源以及代碼執(zhí)行時(shí)的去向。 如果愿意,你可以嘗試將清單1中的代碼復(fù)制到文本編輯器中,然后將文件另存為program.hex,然后將其上傳到模擬器中。
清單1:用于emulsiV模擬器的原始HEX代碼,將其保存并上傳為program.hex。 如果您想以Arduino格式體驗(yàn)RISC-V,則可通過(guò)CrowdSupply 獲得HiFive1 RevB 。它使用SiFive FE310-G002微控制器。這是一款僅具有數(shù)字外設(shè)(I 2 C,UART,SPI,PWM,GPIO)和某些SRAM的準(zhǔn)系統(tǒng)設(shè)備,依靠片外QSPI閃存實(shí)現(xiàn)非易失性存儲(chǔ)。該評(píng)估板包括Wi-Fi和藍(lán)牙模塊以及用于USB調(diào)試的Segger J-Link。
性能范圍的另一端是Microchip PolarFire SoC 它將四個(gè)64位RISC-V內(nèi)核與一個(gè)FPGA一起放置。這提供了一個(gè)高度可配置的平臺(tái),該平臺(tái)可以運(yùn)行Linux,同時(shí)支持硬實(shí)時(shí)應(yīng)用程序。
如何自定義我的RISC-V?
之前,我們提到RISC-V的實(shí)際好處是您可以調(diào)整指令集以滿(mǎn)足個(gè)別應(yīng)用的需求。這意味著,如果找到的處理器能滿(mǎn)足95%的需求,那么則可以添加一些漂亮的額外功能來(lái)實(shí)現(xiàn)剩余的5%。假設(shè)您的應(yīng)用大量使用ChaCha 流密碼,如Imperas的應(yīng)用筆記中所述,Imperas是另一種提供驗(yàn)證,分析和性能分析工具的RISC-V播放器。
您已經(jīng)在RISC-V內(nèi)核上運(yùn)行了ChaCha實(shí)現(xiàn),并且注意到它正在消耗大量的處理時(shí)間。您不僅希望縮短執(zhí)行時(shí)間,而且還希望受益于由于執(zhí)行時(shí)間減少而帶來(lái)的功耗下降,也許可以使用它進(jìn)入低功耗睡眠模式。
清單2:實(shí)現(xiàn)ChaCha流密碼的C代碼。
代碼(清單2)在稱(chēng)為“quarter rounds”的步驟中廣泛使用XOR和旋轉(zhuǎn)指令,為此已編寫(xiě)了四個(gè)C qrX_c()函數(shù)。甲ProcessLine從()函數(shù)調(diào)用這四個(gè)函數(shù)來(lái)執(zhí)行加密。對(duì)執(zhí)行時(shí)間的分析表明,處理器在此任務(wù)上花費(fèi)了大約55%的時(shí)間,其中大約32%的時(shí)間分布在quarter-round功能中(圖3)。
圖3:使用標(biāo)準(zhǔn)C編譯的代碼,ChaCha密碼流需要大約55%的處理器時(shí)間(來(lái)源:Imperas Software Limited)
使用RISC-V,我們可以簡(jiǎn)單地實(shí)現(xiàn)四個(gè)專(zhuān)用的quarter-round指令,這些指令在一個(gè)周期內(nèi)執(zhí)行,而不必依賴(lài)C編譯器強(qiáng)制生成的代碼。這是因?yàn)镮SA中保留了一部分,用于自定義說(shuō)明。 最初,我們可以將指令添加到RISC-V設(shè)計(jì)中,并用C編寫(xiě)該指令的實(shí)現(xiàn)。這可以模擬新指令以測(cè)試其功能,并檢查性能是否可以提高。在這種情況下,借助定制的RISC-V內(nèi)核上可用的專(zhuān)用quarter-round指令,processLine()函數(shù)所需的可用處理器性能不到15%(圖4)。)。如果這被認(rèn)為是成功的,則開(kāi)發(fā)團(tuán)隊(duì)可以在Verilog中開(kāi)發(fā)指令的硬件實(shí)現(xiàn)。
圖4:通過(guò)使用專(zhuān)用的,新開(kāi)發(fā)的指令,ChaCha密碼流處理器的負(fù)載下降到不足15%。(來(lái)源:Imperas軟件有限公司)
遺憾的是,使用新指令并不像重新編譯C代碼那樣容易(清單3)。修改RISC-V編譯器以利用新指令是一項(xiàng)巨大的工作。取而代之的是,使用內(nèi)聯(lián)匯編器以與手工優(yōu)化代碼相同的方式調(diào)用十六進(jìn)制編碼的指令。
清單3:使用新的RISC-V指令。
我該如何對(duì)此貢獻(xiàn)?
如果您有興趣幫助RISC-V的持續(xù)開(kāi)發(fā),那么您很幸運(yùn)!RISC-V International 是負(fù)責(zé)開(kāi)發(fā)和推廣RISC-V的所有事物的值得信賴(lài)的組織(圖5)。個(gè)人可以作為社區(qū)成員加入,或者,如果您想在此基礎(chǔ)上發(fā)展職業(yè),那么有很多企業(yè)和大學(xué)都在積極參與其中。
如果您期望各種各樣的RISC-V微控制器進(jìn)入市場(chǎng),您可能會(huì)感到失望。GigaDevice提供了一些設(shè)備,還有俄羅斯供應(yīng)商針對(duì)智能電表市場(chǎng)提供的另一種設(shè)備。但是,他們表現(xiàn)欠佳。因?yàn)锳rm對(duì)大型企業(yè)根深蒂固,即使沒(méi)有處理器使用費(fèi)的加工商的財(cái)務(wù)利益,初創(chuàng)企業(yè)也將難以在這個(gè)飽和的市場(chǎng)中競(jìng)爭(zhēng)。
取而代之的是,我們更有可能看到RISC-V用于專(zhuān)門(mén)的應(yīng)用,在這些應(yīng)用中,定制內(nèi)核的能力帶來(lái)了巨大的好處,例如超低功耗。 RISC-V面臨著有關(guān)向中國(guó)授予技術(shù)許可的問(wèn)題,它正在證明是從美國(guó)獲取IP企業(yè)的一種流行替代方案。阿里巴巴宣布以16納米制程制造的16核,2 GHz,64位RISC-V ,并表示正在考慮將該核用于服務(wù)器基礎(chǔ)架構(gòu)。最后,歐洲處理器倡議一直在研究異構(gòu)架構(gòu),這些架構(gòu)可以同時(shí)看到Arm和RISC-V(或其他內(nèi)核)。這里的目的是通過(guò)為多核設(shè)計(jì)中的每個(gè)計(jì)算難題使用最佳處理器來(lái)獲得兩全其美的效果。
RISC-V并不是首次免費(fèi)開(kāi)放嘗試使用處理器IP,但是迄今為止,它是最成功的嘗試。憑借其悠久的歷史,靈活性,開(kāi)放的態(tài)度,學(xué)術(shù)界的興趣以及廣泛的行業(yè)支持,這項(xiàng)技術(shù)將在整個(gè)職業(yè)生涯中陪伴一代或更多的工程師。
參考鏈接:https://mp.weixin.qq.com/s/FyuH51mYp50MXLAUZ7NGmA
編輯:jq
-
ARM
+關(guān)注
關(guān)注
134文章
9107瀏覽量
367985 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4338瀏覽量
62740 -
C代碼
+關(guān)注
關(guān)注
1文章
89瀏覽量
14321 -
RISC-V
+關(guān)注
關(guān)注
45文章
2294瀏覽量
46249
原文標(biāo)題:電子行業(yè)為什么都為RISC-V感到瘋狂?
文章出處:【微信號(hào):TopStorage,微信公眾號(hào):存儲(chǔ)加速器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論