RISC-V 雙周簡報
RV新聞
RISC-V併入newlib主線
newlib 的 RISC-V port 已經被正式合併。詳情可見https://goo.gl/37oeZG。
FreeBSD 主線更新至 RISC-V priv. spec 1.10
最近,FreeBSD更新至 RISC-V priv. spec 1.10,現在支持Spike和Rocket-chip。詳情可以參考這裡:https://wiki.freebsd.org/riscv和https://svnweb.freebsd.org/changeset/base/322361
另外11月的BSDTW17, 也會有兩個關於RISC-V的報告。Ruslan Bukin、Arun Thomas 都會出席,有興趣的可以參加。
RISC-V LLVM進度更新
Alex Bradbury在https://github.com/lowRISC/riscv-llvm/issues上發布了一系列的LLVM子工程,以便更多的人參與到RISC-V的LLVM支持工作中。
當前正在進行的是讓LLVM支持RV32I,相關的補丁已經送到LLVM社區進行審議,其中7個已經被接受,8個正在徵求意見。
正在開發中的RISC-V LLVM現在已經通關過了1352個GCC測試集中的1315個,未能通過的測試例子中32個編譯時錯誤,5個運行時錯誤。
具體信息請參考Alex Bradbury的郵件:https://goo.gl/sGeWcy
SiFive發布TileLink說明文檔 v1.7
此次發布的分檔比較詳細地介紹了當前被使用於Rocke-Chip的第二版TileLink片上匯流排。
TileLink片上匯流排是Rocke-Chip用於連接各級緩存和外設的匯流排,相比AMBA, Wishbone, Avalon, CoreConnect等等片上匯流排,TileLink直接在匯流排協議的層面上支持緩存一致性的各種操作,是基於緩存的各種要求而重新設計的片上匯流排。
相比TileLink第一版,第二版有以下幾點改進:
為支持不使用緩存的外設而重新設計報文格式和分配通道。
為將來主從設備之間互相發起讀寫請求提供支持(現在還一般是主設備發出請求從設備被動應答)。
使用diplomacy庫和scala的延遲求值機制實現編譯時匯流排參數自動配置,解決了一代匯流排時手動配置經常出現的報文丟失問題。
具體信息請參見說明文檔:https://www.sifive.com/documentation/tilelink/tilelink-spec/
另外:CNRV社區也正在積極的籌備翻譯這個Spec,歡迎各位關注和參與
第29屆 Hot Chips上的RISC-V相關新聞
在剛剛結束的Hot Chips 2017上,有不少關於RISC-V的消息,分別是
Yunsup Lee發表了題為《SiFive Freedom SoCs: Industry』s First Open-Source RISC-V Chips》的演講
多所美國知名大學合作的和RISC-V有關的項目,演講題目《Celerity: An Open Source RISC-V Tiered Accelerator Fabric》
Jan Gray在Poster環節中的《GRVI Phalanx On Xilinx Virtex UltraScale+: A 1680-core, 26 MB RISC-V FPGA Parallel Processor Overlay》
EETime對Celerity做了簡短的報道:
Of three academic papers on machine learning chips, the most intriguing was Celerity. Teams of grad students spread across four universities went from delivery of a 16nm TSMC PDK to tapeout of a 25mm2 device in nine months.
Celerity packs into its 360 million transistors 511 RISC-V cores and a custom neural network accelerator. The cores are split into a 496-unit array running at 1.05 GHz and five Linux-capable Rocket cores along with the accelerator running at 625 MHz.
Link: http://t.cn/RNVaTIK
值得注意的是,其具有神經網路功能的加速器是基於RoCC介面標準實現的。後續編輯部會持續關注這個項目。
而關於GRVI處理器,Jan Gray主要列出了未來的一些規劃和進行中的工作,包括支持更多的FPGA開發平台(如PYNQ等)、一些性能優化。
對於大家所關注的這麼多的CPU核心,軟體如何開發的問題,Gary在其poster頁面中這樣提到:
Accelerated parallel programming models
SPMD/MIMD code w/ small kernels, local or PGAS shared memory, message passing, memcpy/RDMA DRAM
Current: multithread C++ with message passing runtime, built with GCC for RISC-V RV32IMA
Future: OpenCL, 『Gatling gun』 packet processing / P4, message passing / streaming data / KPNs
Accelerated with plug-in-custom FUs, RAMs, AXI cores
Link: http://t.cn/RNVaizC
DRAPER分離其安全處理器研究組成立Dover Microsystems公司
Dover的產生來源於美國國防部國防高等研究計劃(DARPA)下的CRASH(Clean-Slate Re-design of Adaptive, Secure Hosts)計劃。
該計劃致力於回答一個問題:如果我們能拋開現有計算機體系結構的研究成果,重新設計一個本質上就安全的計算機,我們該怎麼做? 基於這個問題,世界上的多個研究小組開展了多年的研究,提出了多種新的計算機架構。 其中源自於MIT的DRAPER實驗室設計了Inherently Secure Processor(ISP)。 現在,DRAPER將ISP分離出來,成立了新的Dover Microsystems公司,用ISP來服務於商業應用。 Dover最新的Dover晶元在開源RISC-V處理器內部添加了一個協處理器來加強處理器的安全特性(小編註:該協處理器使用tagged memory進行同步的meta-data processing)。
The Inherently Secure Processor can be implemented with any Reduced Instruction Set Computer (RISC) processor and is currently optimized for the latest generation RISC-V architecture as a co-processor solution. It can be easily customized for individual customer』s embedded systems, and features adaptable and updatable technology, providing customers with longevity and resiliency into the future.
DRAPER ISP http://www.draper.com/solution/inherently-secure-processor
Dover Microsystems https://dovermicrosystems.com
技術討論到底riscv**-unknown-elf是不是bare-metal的交叉編譯器?
估計大多數人和我一樣都覺得,難道不是嗎?嗯,還真不一定是。
GNU MCU Eclipse RISC-V Embdedded GCC的作者Liviu Ionescu最近就提出了這麼個問題,然後引起了激烈的討論。 看起來,現在RISC-V提供的兩個GCC工具鏈其實是這個樣子的:
riscv**-unknown-linux-gnu是針對Linux操作系統的編譯器,會鏈接glibc,利用Linux系統調用和相應應用介面(ABI)完成底層工作。
riscv**-unknown-elf是針對嵌入式系統的編譯器,使用newlib的C庫,不針對具體操作系統,利用libgloss定義的應用介面(ABI)完成底層操作。現在libgloss借用了Linux的ABI,所以使用riscv**-unknown-elf編譯的程序有可能也能正常運行於RISC-V Linux中。
如果某一個嵌入式平台需要實現自己的底層調用,現在的辦法一般是替換底層的ABI實現,但保留由libgloss定義的介面。 如果希望進一步連ABI都徹底拋棄而直接調用硬體,現在只能通過附加的gcc參數來實現,比如 (不使用標準庫但是用libc)。
為了提供針對最基礎嵌入式平台的bare-metal環境,SiFive的Palmer Dabbelt現已著手提供一個新的gcc工具鏈,暫且命名為riscv**-unknown-none。
相關討論:
Liviu Ionescu的問題 https://goo.gl/VMBSPe
Palmer Dabbelt的回答 https://goo.gl/bc8zSu
新工具鏈 https://goo.gl/nD9HJD
CSR操作和邊界(Barrier)
在C代碼中如何讀寫CSR?這個問題其實很簡單,使用預提供的嵌入式彙編代碼。 但是,這就夠了嗎?不一定哦。讓我們來看看下面的代碼:
看起來沒啥問題。不過Benjamin Herrenschmidt提問,GCC或者處理器可能調換指令順序把MTIME_PTR的讀取挪到CSR讀寫外嗎?呃,還真的可以!
為了解決這個問題,Palmer Dabbelt把預提供的嵌入式彙編改成了:
在彙編中添加了」memory」這個。是嵌入式彙編的可選參數,用於標註那些非輸入或輸出但是被嵌入的彙編修改的寄存器,這樣編譯器就可以避免使用這些寄存器。」memory」是一個特殊選項,用於說明嵌入的彙編中有內存操作,所以編譯器不能將代碼隨意調換順序,相當於針對編譯器的memory barrier。但是,這裡只是避免了編譯器調換指令順序,亂髮處理器仍然可能在運行時調換指令順序,這個就得依賴於處理器內部的依賴檢查邏輯了。對於上面的例子,依賴關係是內存讀寫依賴於CSR讀寫。這看來還真的不是個簡單問題哦。
相關討論 https://goo.gl/LJTfBe
關於多核緩存一致性具體實現的討論
sxu55最近向lowRISC提出一個問題,認為lowRISC所使用的L2實現存在死鎖。 在多核系統中,假設一個L2為了回寫緩存塊A而詢問所有L1,同時一個核正在回寫緩存塊B,並且A和B屬於同一個set,有可能由於互相等待造成死鎖。 這裡的關鍵問題就是在緩存一致控制器的具體實現時,所有的緩存操作都不再是書本上原子操作,而被拆分成多個子步驟的操作序列。 如果兩個操作序列發生交織,則可能造成死鎖或數據丟失。最後討論的結果是這個死鎖的條件是不成立的,lowRISC的L2考慮到了這個具體的死鎖狀況。 不過相關的討論還是很有意義的,特別是關於基於TileLink的一致性L2的實現。
具體信息請查閱lowRISC issue #67 https://git.io/v5YAb
代碼更新Chisel/FIRRTL 即將支持完整的無連接埠清理和跨邊界常數優化
為了代碼的可讀性,我們一般會在硬體設計中保留可選埠和常熟定義,將相關的優化扔給綜合軟體完成。 Chisel/FIRRTL將更高抽象級別的Chisel轉化為Verilog的同時,也可以做相關優化。 Chisel/FIRRTL已經默認去除無連接的埠。最新的FIRRTL也已經開始支持關於常數的跨模塊邊界優化。
具體信息請查閱:
FIRRTL PR #633 https://git.io/v5nIt
Rocket-chip PR #968 https://git.io/v5nIc
FIRRTL issue #644 https://git.io/v5nIR
SiFive Freedom平台最近被更新到主線
SiFive的Freedom平台在沉寂了很久之後終於得到了更新(儘管是一位實習生完成的),其變化包括:
更新到了最新的rocket-chip主線(也就意味著支持最新的RISC-V標準)
增加了fpga-shells這個submodule,當中包含了對FPGA EDA Tool的一些腳本
Repo: https://github.com/sifive/freedom
市場相關Codasip發佈新的 RISC-V 處理器IP Bk-1
The Bk-1 processor was designed to provide impressive 32-bit performance, small code size, and minimal power, area, and cost. In its basic configuration, the Bk-1 starts at 9k gates while delivering a maximum clock frequency of up to 350 MHz in a 55nm process. The Bk-1 has an optional power management unit, JTAG debug controller, and bridges to the AMBA buses so it can be easily integrated into existing Arm designs.
連接:http://t.cn/RNbiFNI
相關報道
32-bit RISC-V processor Paves Way To Low-power IoT Designs http://t.cn/RNb6q1S
LoFive: Hackaday.io上的新項目
Michael Welling在Hackaday.io上開始了一個新的項目,名為LoFive。是一塊搭載SiFive FE310 MCU的迷你小板,有興趣的可以去關注下。
Link: https://hackaday.io/project/26909
CNRV社區活動
CNRV社區最近發起了兩個小的翻譯項目,歡迎關註:
TileLink v1.7 SPEC中文翻譯(版權正在聯繫中)
《關於浮點運算:作為程序員都應該了解什麼?》https://github.com/cnrv/floating-point-guide
暴走事件九月
ORConf 2017會議將於9月8-10日於英國Hebden Bridge舉行。會議網站:https://orconf.org/
The 7th RISC-V workshop投稿截止日期:2017年9月17日。投稿網站:https://www.softconf.com/h/riscv7thwkshp/
十月
OSDT開源開發工具大會2017(也就是原HelloGCC會議)將在10月下旬在北京舉辦,時間暫定10月21日,話題和贊助徵集已經開始。話題內容包括「面向RISCV等新硬體的基礎軟體支持」,各位不要錯過。
開源經濟學研究-2017年年會邀請函
RISC-V at the Linley Processor Conference, 4-5 October 2017 at Santa Clara, California.
First Workshop on Computer Architecture Research with RISC-V (CARRV 2017), 14 October at Boston, Massachusetts, co-located with MICRO 2017.
十一月
The 7th RISC-V workshop 2017年11月28-30日,第7屆RISC-V研討會將在美國加州Milpitas由西部數據承辦。
BSDTW17 2017年11月11-12日,BSDTW17會有兩場關於RISC-V的演講,地點在台北。
招聘簡訊
CNRV提供為行業公司提供公益性質的一句話的招聘信息發布,若有任何體系結構、IC設計、軟體開發的招聘信息,歡迎聯繫我們!
整理編集: 宋威,郭雄飛,黃柏瑋
本作品採用知識共享署名-非商業性使用-相同方式共享 3.0 中國大陸許可協議進行許可。
點擊原文查看含有完整鏈接的版本。


※這位的哥遇上什麼事?讓一位老人專門登報找他
※第九日 八段錦的形正體松 你做到了嗎
※八月臨行,你是否還在回望?
※天氣預報——八月第三十天雜記之
※激素臉敏感肌修復產品——皮膜水
TAG:公眾號 |
※Andes RISC-V CON 11/8北京登場 聚焦RISC-V最新應用
※北京-03.02@DADA-YETI 重磅呈現 DICKY TRISCO
※活動報名 2019 RISC-V CON
※ARM要涼?!高通轉投RISC-V CPU架構
※銳成芯微布局RISC-V,加入SiFIVE DesignShare項目
※OURS譚章熹:開源RISC-V指令架構與AI晶元
※NVIDIA公開RISC-V研究成果:可應用於AI產品設計
※RISC-V成功在望?
※高通悄然投資RISC-V CPU架構:ARM迎來替代者?
※SiFive出手收購:RISC-V CPU架構也有原生USB 3.x
※基於RISC-V的64位可編程終端AI晶元誕生
※印度首款CPU Shakti離商用更進一步,基於RISC-V指令集
※睿思芯科推基於RISC-V的64位可編程終端AI晶元Pygmy
※MIPS投放核彈 RISC-V扛得住么
※RISC-V Day將於上海舉辦 凸顯RISC-V生態系統在亞洲的發展勢頭
※「草根」RISC-V的逆襲之路
※RISC-V 危矣?MIPS 走上開源道路
※RISC-V首度被我國列入扶持對象,上海已成RISC-V重要「據點」
※高通擁抱RISC-V,Arm警報響起!|半導體行業觀察
※國內首個RISC-V支持政策發布,RISC-V指令集晶元的好時代來了?