1. 程式人生 > >RISC-V雙週簡報0x0a++:RISC-V基金會的會員數量超過一百了!(2017-11-09)

RISC-V雙週簡報0x0a++:RISC-V基金會的會員數量超過一百了!(2017-11-09)

RISC-V 雙週簡報 (2017-11-09)

要點新聞:

RV新聞

RISC-V基金會的會員過百

由於這三季公司們的加入,最近RISC-V基金會的會員數量超過一百了!基金會裡來自Nvidia, Microsemi, NXP, Bluespec, Google的Board of Director們也都表示非常期待RISC-V之後的發展! 期待能看到越來越多關於RISC-V的產品和進展。

RISC-V port 進入 linux-next !!!

經過好幾個月的努力,RISC-V port 終於進入linux-next了。恭喜所有contributor。期待早日看到合併主線!

Link: LKML

RISC-V 開源生態圈更新

RTEMS 的 RISC-V Port upstreamed

Hesham 最近在 sw-dev上宣佈了RTEMS (一個RTOS)upstream 的訊息。看起來越來越多RTOS支援RISC-V了。

OCaml 的 RISC-V backend

Nicolás 在OCaml user list 中公佈了 RISC-V backend for OCaml 4.06 已經完成的訊息。

lld (LLVM Linker) for risc-v

Andes Technology 最近在mailing list上開源了他們針對 RISC-V 的LLD實作。這次的實作支援了基本的relocation, PIC/PIE 和 TLS。期待早日看到完整的LLVM port!

技術討論

利用FPGA加速cycle-accurate RTL級硬體模擬

在最近的CARRV會議上,加州伯克利的處理器研究小組發表了他們利用firrtl自動生成使用FPGA執行的cycle-accurate模擬平臺。自動生成的FPGA硬體模擬相比現在最高速的cycle-accurate處理器模擬程式快3倍。其原理大概是利用FIRRTL自動拆解RTL硬體描述,生成解耦和的時間報文通訊,從而用硬體來處理被仿硬體的行為和延時。該模擬平臺已被用於模擬Rocket-Chip和BOOM,並同時支援部署到Amazon AWS的F1例項上(FireSim)。論文沒有透露更仔細的硬體細節,不過所有的原始碼應該已公開。

mcycle, minsret 和 mtime (三個跟效能和時間有關的CSR)

最近在Mailing list上,有兩個關於mcycle的討論。簡單的想起來,mcycle是在數cycle,minsret是在數 retire的指令數,mtime則是指真正的時間。但在各種設計下,還是會出現許多有趣的問題和情況。小編在這裡整理幾個如下:

  • Pipeline 被cache block住時,mcycle還是要數,因為這樣可以跟 minstret一起推斷 pipeline的情況。
  • CPU sleep的時候,數不數是 Implementation-defined。sleep 時數的話,能幫助排程。但不數也有道理,畢竟有些sleep會把clock停住。
  • mcycle可以在reset時歸零,也可以只在power-on時歸零。在reset時歸零比較直觀,但只在power-on歸零也有好處,比如可以記錄到產生reset的來源,譬如watchdog。
  • 對於Asynchronous logic來說,沒有cycle的概念,那 mcycle 要數什麼?這時得數其他能代表進度的東西。
  • 當一個 hart 從 frequency 小的核,搬到一個 frequency 大的核時,即使執行時間一樣,它的 mcycle 裡的值會比其他在這個核上的 hart小 (其他hart也許在休眠或因為SMT所以在執行)。這種情況下排程器該怎麼處理呢?
  • 對於SMT的 Core 來說,mcycle 要一直數嗎?還是隻有hart 被core執行時才數?
  • mcycle 在不同的實作有這麼多變化,formal property要設成哪個好?目前討論的結果是隻要求 mcycle monotonically increasing。

這些都是很有趣的問題。詳細的討論可以看這兩個連結:

RISC-V 的 code model 整理 (Palmer 的 All aboard blog part 4)

在part4中,Palmer向我們介紹了RISC-V的code model。Code model是什麼呢? Code model決定了在編譯時要使用哪幾個 addressing mode。使用不同的addressing mode,會導致linker 有不同的限制。譬如在 Medlow模式中,只能在 ± 2GiB的絕對位址裡定址。

目前RISC-V的 gcc只支援兩種模式,Medlow和Medany,而 Medlow被設定成預設的code model。它們所產生的指令 pair 和範圍如下:

  • Medany 會產生 auipc/ld 這樣的pair,能在任意位置定址 2GiB 的 window。
  • Medlow 會產生 lui/ld 這樣的pair,在 ±2GiB 的絕對位址裡,定址2GiB 的 window。

RISC-V GCC的 multi-lib support (Palmer 的 All aboard blog part 5)

在part5中, Palmer繼續介紹了RISC-V multi-lib的支援。RISC-V是一個modular ISA,所以可以用很多種ABI和指令集組合來編譯。在前半段中,Palmer介紹了在工程上如何用 RISC-V的 python script 來產生各種組合。後半段,則是介紹了各種組合背後的邏輯和重要性。在一般embedded的應用中,Palmer他們選出了八種組合。以下列出幾個代表:

  • rv32im/ilp32: 簡單的 memory system 讓 A和C擴充套件不需出現時,會使用到。
  • rv32iac/ilp32: 針對不想要hardware multiplier的core。
  • rv64imac/lp64: 在64bit的控制核中(譬如power management 和 IP control),Palmer認為會最常出現的。沒有浮點支援。

至於Linux的toolchain,他們則是選出了四個代表,也就是 32/64bit 和 hard float/soft float 配對所產生的四種組合。看起來,multilib背後的邏輯和工程還真不簡單。好險很多路都被踩過了: )

程式碼更新

Spike 反彙編識別Q擴充套件指令

spike-dasm是Spike提供的將機器二進位制碼翻譯成可讀彙編程式碼的工具,經常被使用於翻譯Rocket-Chip模擬所生成的指令記錄檔案。現在spike-dasm可翻譯RISC-V的Q擴充套件指令集(128位元浮點運算)。

安全點評

微群熱點

實用資料

RISC-V 相關文獻蒐集頁面

隨著研究RISC-V的公司和研究機構越來越多,RISC-V相關的論文也慢慢出現在各大會議。為了總結和歸類這些相關文獻,CNRV現在有了參考文獻蒐集頁面:https://cnrv.io/papers

也歡迎大家補充遺漏的文獻。

行業視角

有趣的RV新聞和討論

“Arm vs RISC-V: War of the platforms” by prakash

在這篇文章中,Prakash用 Paas 的角度,比較了ARM 及 RISC-V的優缺點,並提議雙方可做的下一步。

“An ARM killer from IIT, Madras?” by Sriram Sharma

這篇新聞詳細的介紹了印度Shakti processor的背景和他們的努力。

市場相關

Flex Logic 的 eFPGA IP 加入 SiFive 的 DesignShare program

繼上次 Lauterbach 和 Seggar後,SiFive加入了跟 Flex Logic的合作。

eMemory 的 NVM IP 加入 SiFive 的 DesignShare program

力旺(eMemory)的 NVM IP也加入 SiFive 的 DesignShare program了。

CNRV社群活動

CNRV網站更新

  • [b004566]
    新增RISC-V參考文獻頁面
  • [6b399f0]
    使用下拉式參考文獻分類列表
  • [07c5640]
    在資源頁新增FireSim和MIDAS

暴走事件

十一月

  • BSDTW17 2017年11月11-12日,BSDTW17會有兩場關於RISC-V的演講,地點在臺北。
  • The 7th RISC-V workshop 2017年11月28-30日,第7屆RISC-V研討會將在美國加州Milpitas由西部資料承辦。
  • RISC-V, RISC-V, RISC-V 2017年11月23日,在英國劍橋的BCS Open Source Specialist Group 和 OSHUG (Open source hardware user group ) 會合辦一場跟risc-v有關的meetup,會有一場跟freebsd on risc-v有關的演講,以及另一場跟cycle-accurate model有關的演講。

十二月

  • RISC-V Day 2017 Tokyo 2017年12月18日,在東京會有一場跟 RISC-V有關的活動,由日本SHC公司主辦。SHC公司也是基金會的其中一個成員。Esperanto, SiFive, Andes, RedHat等公司的人員都會參加並給演講。

二月

  • FOSDEM’18 2018年2月3-4日,FOSDEM (Free and Open Source Developers’ European Meeting)將在比利時的布魯塞爾舉行。

招聘簡訊

SiFive 招聘工程師

SiFive是從加州伯克利孵化出來的創業公司,是rocket-chip的主要維護者並基於rocket-chip開發Freedom SoC。現在SiFive準備進一步擴張,尋求能在美國加州San Mateo工作的各類工程師。招聘資訊:https://t.co/7Z7MJiMxwh

CNRV提供為行業公司提供公益性質的一句話的招聘資訊釋出,若有任何體系結構、IC設計、軟體開發的招聘資訊,歡迎聯絡我們!

整理編集: 宋威、黃柏瑋、郭雄飛

歡迎關注微信公眾號CNRV,接收最新最時尚的RISC-V訊息!

CNRV微信公眾號