1. 程式人生 > >RISC-V雙週簡報0x0b: 3家RISC-V相關的公司上榜“EE Times Silicon 60: Startups to Watch”(2017-11-23)

RISC-V雙週簡報0x0b: 3家RISC-V相關的公司上榜“EE Times Silicon 60: Startups to Watch”(2017-11-23)

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

要點新聞:

  • RISC-V正式合併Linux主線程式碼
  • 多核如何啟動
  • rocket-chip 實現了獨立的AXI Crossbar
  • Booting RISC-V Linux Kernel 的過程 (Palmer All aboard Part6的整理)

RV新聞

RISC-V正式合併Linux主線程式碼

自從2017年5月開始,Palmer Dabbelt 通過了6個月的努力終於在第9個回合,將RISC-V 針對linux硬體架構的程式碼合併到了主線。換句話說,從Linux v4.15開始,主線正式開始部分的支援RISC-V硬體架構。這個是自GCC和binutils合併主線後,RISC-V在基礎架構上另一個一重大推進。Palmer表示,他們公司下一步會往 glibc 推進。

2017年"EE Times Silicon 60: Startups to Watch"中包含3家RISC-V相關的公司

每年EE Times都會推選出60家“Startups to Watch”晶片公司。今年的watchlist剛剛出爐,這其中有3家RISC-V相關的晶片公司。

分別是:SiFive、Esperanto Technologies Inc.、Minima Processor Oy。

SiFive Inc. (San Mateo, Calif.) was founded in 2015 by creators of the free and open RISC-V processor architecture as a reaction to the end of conventional transistor scaling and escalating chip design costs. SiFive’s mission is to bring the power of open-source and agile hardware design to the semiconductor industry.

www.sifive.com

Esperanto Technologies Inc. (Los Altos, Calif.) was founded in 2014 by CEO Dave Ditzel, a chip industry veteran well-known as a chip designer previously with Intel and Sun Microsystems and as founder of code-morphing startup Transmeta. Esperanto is developing a multithreaded RISC-V processor and includes former employees of Eltechs, a Russian developer of binary translators for running x86 programs on ARM processors.

www.esperantotech.com

Minima Processor Oy (Oulu, Finland) founded in April 2016 to develop sub-threshold voltage processors based on technology developed by VTT Technical Research Centre of Finland Ltd. and the universities of Aalto and Turku. Minima was a founding partner in the RISC-V open hardware foundation. Minima’s techniques can be used to optimize processor voltage and frequency operating points dynamically although the company also advocates the use of sub-threshold voltage operation. Minima’s clocking is adaptive synchronous rather than asynchronous. Minima provides a middleware stack with its hardware that provides compatibility with dynamic voltage and frequency scaling (DVFS) regimes. www.minimaprocessor.com

技術討論

多核如何啟動

如果一個SMP系統中有多個處理器核(hart),這些核如何啟動,以及順序如何?這其實是一個比較複雜的問題。多核系統的啟動往往伴隨著調整鎖相環、時鐘、供電電壓等等。同時有些系統也希望多核能互相替代使用。這便導致多核的啟動順序和優先順序其實是一個系統自定義的問題。一個系統可以多核同時啟動,每個核根據自己的hart-id決定將執行的程式碼。 也可以讓一個核先啟動,然後由先啟動的核來啟動其他核。對於低功耗的系統來說,也許由一個核先啟動比較好,因為多核同時啟動會造成陡然功耗峰值。假設系統已經處於低電狀態,這樣的陡然功耗有可能導致系統進入低電重啟的死迴圈直至電池耗盡。而多核同時啟動投票決定初始核有利於支援多核互相替代。唯一可確定的是,系統中的總核數將來自於系統自動生成的device tree。

RV32E的編譯器引數

經討論,準備為RV32設定專有的編譯器ABI配置引數:-march=rv32i -mabi=ilp32e

控制Rocket處理器中定點除法器的延時

Rocket處理器中那個地定點除法器被刻意地配置為最慢模式,即64位元除法需要64週期完成。該配置地原因有兩個,一個是並行除法器會影響處理器的時序,導致處理器的最高頻率下降。另外一個是除法器基本在所有的處理器中都執行較慢,所以會被編譯器和程式開發者主動避免。優化除法器的效能提升不大。如果需要配置並行除法器,減少除法器延時,可改變除法器的divUnroll引數。

程式碼更新

Spike支援中斷源優先順序

Spike (riscv-isa-sim) 指令級彷真器是RISC-V的模板實現。Priv Spec 1.11 裡最新定義的關於不同中斷源在同一執行許可權下的預設優先順序最近被加入到Spike實現中。現在定義的優先順序如下:

非標準外部中斷(IRQ) > 外部中斷(EIP) > 軟體中斷(SIP) > 時鐘中斷(TIP)

rocket-chip 實現了獨立的AXI Crossbar

長久以來,rocket-chip只能通過用TileLink-AXI-bridge來實現一個AXI介面的Crossbar匯流排,而沒有一個獨立的AXI Crossbar。近期的一個rocket-chip PR終於提供了AXI Crossbar,從而讓一切變得更簡單了。

裝置描述(DTS)從處理器組挪到SoC級

Rocket-Chip中的裝置描述檔案(DTS)由硬體描述在編譯時自動生成。曾經的DTS根節點為Rocekt-Chip的Coreplex,即一個含有RISC-V SMP處理器的系統。現在將DTS升級為全域性資料結構,即允許一個SoC上存在多個RISC-V處理器子系統,為異構多核系統做鋪墊。

GNU MCU Eclipse 版本更新

GNU MCU Eclipse 的 RISC-V 相關軟體和外掛版本更新:

Spike (riscv-isa-sim) 支援非連續的hartid

Gleb Gagarin 為Spike添加了非連續的hartid支援。不過該支援還未完全驗證通過。在Rocket-Chip等硬體平臺上的支援會更加滯後。

具體的引數使用方式: --hartids=<a,b,...> Explicitly specify hartids, default is 0,1,...

實用資料

Booting RISC-V Linux Kernel 的過程 (Palmer All aboard Part6的整理)

Palmer 在 Part6 中開始介紹 risc-v 的 Linux kernel,介紹了booting sequence 以及 RISC-V 針對linux kernel的一些設計。

  • 為了讓 kernel能在不同的硬體上跑,使用device map。並利用Supervisor Binary Interface 來提供共同介面。在這篇中,device map 和SBI的實作都是用BBL (Berkeley Bootloader)提供。BBL 所提供的 SBI實作可參考 bbl的 mcall.h
  • BBL會做的事有許多,包括讀取device tree等。這些動作可參考BBL的 boot_loader()
  • 從BBL 跳進 linux 後,會開始執行risc-v 的 head.S。在執行之前,BBL必須把不少軟硬體資訊提供好,像是device tree的位址要放進a1。
  • 開始執行後,會遇到一個問題,在RISC-V中,每個hart 都可以隨機的被boot,但 linux所期待的,是先有一個hart,再用這個hart來呼叫其他hart。因此在這裡會用AMO指令,隨機的選一個hart,其他hart就先spin。完成一系列的工作後,會呼叫start_kernel()。更詳細的可以參考risc-v的head.S
  • 在start_kernel()後,會呼叫setup_arch(),這也是一段arch-specific的code,會把zone等跑起來。目前在risc-v kernel中,只有 ZONE_NORMAL 被支援。

更多跟boot有關的細節,像是boot on SMP,請參考Palmer的 All aboard Part6

市場相關

Andes 公開了它們的 N25 和 NX25

Andes 推出了它們的 N25核 (32bit) 和 NX25核 (64bit)。同時,這次的推出,為了支援完整的SoC 開發環境,也包含了和 Mentor Graphics, Imperas, Latuerbach, UltraSoC 等公司的合作。

Analog Bits 的 PLL 和 SERDES IP 加入 SiFive 的 DesignShare program

SiFive 這次加入了跟 Analog Bits 的合作。

Inside Secure 加入基金會,並推出第一個基於RISC-V 的 Root-of-Trust Solution

看起來越來越多hw security的公司加入RISC-V foundation,並推出相關的產品。先前的Dover microsystem也是一個hw security公司。

Rambus Selects Codasip Studio for SDK Development of RISC-V Processor

Rambus Security 採用了Codasip 的 SDK 和 Codasip Studio。Codasip有一種叫CodAL的modeling language,可用作High-level design。不知道Rambus Security會用RISC-V來做什麼樣的產品。看來RISC-V 和 security相關的產品會越來越多。

Microsemi 在其 Mi-V 中採用了 UltraSoc 的產品

Ultrasoc 最近釋出了他們的產品被 Microsemi 的 RISC-V Solution Mi-V 所採用的訊息。

嵌入式工具公司Ashling加入RISC-V基金會

Ashling是一家提供嵌入式軟體解決方案和除錯工具的公司,這家公司最近加入了基金會。Aahling會在最近的Workshop上演示其地一個RISC-V IDE。

暴走事件

十一月

  • The 7th RISC-V workshop 2017年11月28-30日,第7屆RISC-V研討會將在美國加州Milpitas由西部資料承辦。

十二月

  • 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)將在比利時的布魯塞爾舉行。

  • PULP WORKSHOP AT HPCA2018 2018年2月25日,在維也納的HPCA中,會有一場跟Pulp 有關的workshop。PULP小組會介紹PULP最新的發展,和他們未來的走向,包括 PULP-CAPI (Coherent Accelerator Processor Interface) 和 Ariane (Next generation of 64-bit RISC-V implementations)等。詳情可參考 pulpino mailing list 中的 < PULP newsletter - 4Q2017 >。

招聘簡訊

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

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

貢獻者:Shawn C

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

CNRV微信公眾號