CNRV

为推广RISC-V尽些薄力

View the Project on GitHub

RISC-V 双周简报 (2018-10-14)

要点新闻:

RV新闻

比特大陆的BM1880内置RISC-V CPU

比特大陆最近发布了面向端测的AI芯片BM1880,除了集成了两颗ARM Cortex A53之外,还集成了1颗1GHz的RISC-V处理器。

小编:有趣的是比特大陆和嘉楠耘智都纷纷在AI上发力,也都选择了RISC-V。

Links:

RV应用

Hackday评搭载嘉楠K210的Sipeed M1开发板

Hackday最近报道了搭载嘉楠勘智K210端测AI芯片,Sipeed M1(荔枝丹)开发板。这块板子支持机器视觉和机器听觉,并且可以在淘宝买到。开发板内嵌双核RV64GC(RV64IMAFDC)的RISC-V处理器,即使忽略AI功能也可以当作不错的RISC-V开发板上手玩,SDK与DEMO开源,对社区用户友好,核心板价格只要39.90软妹币。

Links:

RV生态

riscvemu更名为TinyEMU

2018-09-23riscvemu正式更名为TinyEMU.

TinyEMU(原名riscvemu) 是一个x86平台上的risc-v模拟器, 方便开发者进行risc-v方面的开发和测试,TinyEMU设计简单,轻量,高效.

链接: TinyEMU

国产实时操作系统RT-Thread 4.0版本增强对RISC-V的支持

国产实时操作系统RT-Thread最近举行了4.0版本发布会,RTT 4.0增强了对RISC-V支持包括RV64以及RV32/64的SMP支持,以及针对嘉楠K210芯片的BSP。

Link: 从“自主”转为“小而美”,RT-Thread 4.0发布彰显初心

技术讨论

关于RISC-V硬件中断源

hw-dev邮件列表有提问关于RISC-V是如何定义硬件中断界面,比方说中断请求和中断响应的管脚(编者按:提问者感兴趣的仿佛是具体实现)。 Dr. Jonathan Kimmitt的回答是RISC-V的spec对于具体实现不做规定,RISC-V指令集里面有关于PLIC的描述(Platform Level Interrupt Controller,平台级中断控制器),具体实现可以参考Rocket的源码,以及SiFive的文档。

Gavin Stark则尝试了总结他对PLIC的理解:

Krste教授另外提出mipmie的bit16及以上都可以用作定制本地中断的空间(编者按:关于本地中断local interrupt和全局中断global interrupt,参见指令集7.2),另外SiFive也提出了本地核心中断控制器(Core-Local Interrupt Controller,CLIC)的提案,会提供一个更加灵活的本地中断控制器。(编者按:参考链接

Samuel A. Falvo II补充对于UEIP,应该是当且仅当mideleg.ueip=1,存在S-Mode并且sideleg.ueip=1,存在U-Mode并且支持N-Extention的时候才可以是U-Mode的外部中断。另外他认为外部中断的管脚个数其实可以有XLEN那么多个(XLEN表示架构的位宽),因为虽然计时器中断和处理器间中断等等只是遵循传统命名,但是可以用作任何目的。(编者按:尽管会破坏兼容性。)

在hw-dev邮件列表上相关讨论:链接

多级bootloader的层次划分、接口和安全性讨论

SiFive开源其用于HiFive上的U-Boot源码引发了社区关于现在和将来用于RISC-V的bootloader的一系列讨论。

其中,Anup Patel希望,将来用于启动操作系统的最后一级bootloader,最后完全运行于S模式,不包含任何M模式的代码,使用SBI向M模式请求底层功能。 这样的层次划分主要处于两个原因:

出于安全的考虑,Ron Minnich有着非常不同的看法。大多数人为,平台厂商如果能开源其底层bootloader,那么安全分析人员就可以评估其代码,检验其安全性,发现并修正错误。 但这种想法在现实面前好像过于天真了。首先,安全分析人员可能没有工具链来编译开源的代码,即使能看见代码,不能执行也是非常难以发现运行时错误的,甚至说发现了错误也可能无法修正,因为bootloader已经被一次性固化到平台中。 所以,Ron提出应该让内核提供它自己所需要的M模式实现。这样,当一个安全漏洞被发现,内核可以通过打补丁和重启的方式堵住漏洞,而不是更新固化的bootloader,往往更新bootloader是非常困难甚至不可完成的。

Karsten Merker针对他自己在Debian社区的工作,详尽分析了Linux内核与各种启动模式(u-boot+device-tree, UEFI+device-tree和UEFI+ACPI)合作时遇到的种种问题。总的来说,他希望板级设计能将底层的bootlaoder放到板上的非易失内存中而不是SD卡上,RISC-V能定义一个默认的bootloader加载地址表,以方便多种不同加载源的自动支持。 更具体的信息,请阅读他的邮件原文

最后,Jonathan Neuschäfer对当前使用较多的几种bootlaoder做了一个总结:

Bootloader分为三种:

  1. 底层硬件初始化。
  2. 运行时的可调用中间件,支持系统板级调用接口(SBI)
  3. 一个完整的bootloader,用于从不同外设/网络读取内核载荷,并启动内核。

主要讨论邮件:sw-dev[1, 2, 3, 4, 5, 6]

移植Buildroot实现对risc-v的支持

Fabrice BellardRISC-V SW Dev说移植了Buildroot,实现对risc-v支持.

Buildroot是一个简单高效且易于使用来生成嵌入式linux系统的跨平台工具,整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包含boot、kernel、rootfs以及rootfs中的各种库和应用程序)。

Fabrice Bellard目前为止,提供的补丁实现了如下功能:

Buildroot support for risc-v下载地址

假设你是Fedora 27 x86_64系统,你可以通过以下步骤进行安装:

Untar the buildroot-riscv-xxxx-yy-zz.tar.gz archive. Copy the default RISC-V 64 or RISC-V 32 configuration:

  cp configs/riscv64_defconfig .config

or

  cp configs/riscv32_defconfig .config

(The X Window configurations used for JSLinux are available in riscv64_xwin_defconfig and riscv32_xwin_defconfig. More packages are enabled so the compilation is longer) Edit the configuration and save it (you can change nothing as a first try):

  make menuconfig

Generate the image (it takes a few minutes with the default configuration):

  make

If you want to run the generated image with TinyEMU: Download and compile TinyEMU. Download and untar the diskimage-linux-riscv archive to get the BIOS, Linux kernels and TinyEMU example configurations. In diskimage-linux-riscv, edit buildroot-riscv64.cfg (resp. buildroot-riscv32.cfg) to ensure that the generated Buildroot image path (rootfs.ext2) is correct. Run TinyEMU:

temu buildroot-riscv64.cfg

or

temu buildroot-riscv32.cfg

Log in as root with an empty password.

链接:

开放risc-v 1.0 Verilog源码

andrewRISC-V HW Dev公开了risc-v 1.0的Verilog源码. 虽然应该没有什么软件能在这个古董的指令集上运行。 但满足了很多人对risc-v早期实现的好奇心。

链接:

可重新进入的 向量取数/向量存数(VLD/VSD)?

有人提出,向量取数/向量存数(Vector Load/Store)存在这样一个问题,当出现多个页缺失(Page Fault)需要处理时,由于只知道是这一条指令导致的,没有足够的状态信息来确定确切的返回信息。他想知道 RISCV Vector 工作组有没有讨论过这个问题。

Waterman 回复说,这个问题在工作组里和在最近这几十年有价值的向量机设计中都被讨论过了。没有写进向量规范手册里(V spec document)是因为没有必要与无授权的软件接口密切相关。目前流行的提案是,用一个处理向量元素(element-progress)的 CSR 寄存器来表明哪个元素导致了异常。该寄存器还是表明了应该从哪里重新开始执行向量运算。这样的话,当处理完页缺失(Page Fault)之后,旧的元素就不会又再次计算一遍。(值得注意的是,这么做并不是为了提高性能,这只是为了确保向前处理(forward-progress)。当执行完一条向量指令之后,该 CSR 寄存器会清零,这样下一条向量指令从元素 0 开始执行。

这个提案跟软件实现的 TLB 重填(refill)是完全兼容的,但需要记住的是,用软件 TLB 重填(refill)的方式去构建向量机是一个明显要命的陷阱。想花更多的精力去处理 TLB 不命中(miss)的问题只会加剧 Amdahl 定律(Amdahl Law)的瓶颈(小编注:意思是花费精力这么做不划算,得不偿失),硬件实现能够节省下来的十分有限。

Waterman 还回答了 Alex Solomatnikov 提出的链式(chaining)操作的问题,具体参见 isa-dev

实用资料

关于RISC-V的英文简报 Last Week in RISC-V

SiFive的Palmer Dabbelt发起了Last Week in RISC-V的Github项目,和双周简报类似跟踪和报道RISC-V的最新进展,欢迎关注。

小编:鉴于两者都是基于CC-BY-NC-SA的License发布,所以以后我们将互相补充和引用各自的内容,开源License的好处即在于此。

Links:

在SiFive的授权下,一些国内志愿者将SiFive TileLink 规格书1.7.1(草案)翻译成了中文版。

对于中文版翻译有任何问题、意见或者建议,可以在此新建Issue,或是直接写邮件给xfguo@xfguo.org。

贡献者:

下载链接:tilelink-spec-1.7.1-draft.zh.pdf

参见:CNRV: SiFive TileLink规格书1.7.1(草案) 的中文翻译

市场相关

Andes RISC-V Con

晶心科技11月8日将在北京举办 2018 Andes RISC-V CON

Link: 2018 Andes RISC-V CON

CRVIC成立大会在张江举办

2018年10月17日下午,中国RISC-V产业联盟(China RISC-V Industry Consortium )和上海市集成电路行业协会RISC-V专业委员会成立大会在上海张江召开,并同时举办了RISC-V产业化高峰论坛。

本次大会得到了上海市经信委,上海市科委、上海市集成电路行业协会、国家集成电路创新中心、芯原控股有限公司、中国RISC-V产业联盟等多家机构的支持。

行业视角

Arm在其TechCon上对RISC-V的一些回应

随着RISC-V得到越来越多的关注,Arm在各种活动上也经常会被问到RISC-V相关的问题。这次Arm TechCon上,CEO Segars回应中提到了RISC-V的兴起一定程度上使得Arm对于CPU授权方式做出了调整

On the subject of RISC-V, Segars acknowledged the rise of the free alternative has “sometimes” caused Arm to adjust its CPU core licensing. “There’s been open-source and free processors in the past, and none of them have the industry traction Arm has today,” he said.

“We’ve got to take disruption seriously, though, and make our products easy to design in, be the best possible available in terms of performance, and keep the community engrossed in Arm. RISC-V is keeping us on our toes from a technical and business point of view.”

小编认为Arm和RISC-V都会长期合理的各自存在,就像Windows和Linux,而且两者的相互学习和竞争最终对于整个产业都是好事。

Link: Our processor tech’s got legs, says Arm: ‘One million’ data center servers will ship in 2018

暴走事件

2018年11月

2018年12月

招聘简讯

CNRV提供为行业公司提供公益性质的一句话的招聘信息发布,若有任何体系结构、IC设计、软件开发的招聘信息,欢迎联系我们!


整理编集: 宋威、黄柏玮、汪平、林容威、傅炜、巍巍、郭雄飞、黄玮、李健

感谢:黄锐、熊谱翔


欢迎关注微信公众号CNRV,接收最新最时尚的RISC-V讯息!

CNRV微信公众号


知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。