首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

RISC-V 双周简报

要点新闻:

RISC-V Day 2018 Shanghai圆满成功

SiFive发布新E2系列CPU IP扩充其产品线

(文中链接请点击原文查看)

RV新闻

RISC-V Day 2018 Shanghai圆满成功

2018年6月30日,在复旦大学举办了RISC-V Day 2018 Shanghai活动,短短为期一天的研讨会包含17个演讲,共有约340人参会,分别来自120家国内外公司、26所科研院所和大学。

这次会议上,我们能够看到很多国内的半导体和软件力量在RISC-V领域已经找到自己的位置。在各各厂商纷纷PK自己CPU Core和软件解决方案的背后,是整个RISC-V生态系统的逐渐成熟。相比于过去较为封闭的CPU IP市场,RISC-V的这个平台为用户提供了诸多

相信愿意花时间同学来参与的,都收获了不少新的朋友。

感谢所有讲者和工作人员辛勤的付出!

RISC-V Day Tokyo和RISC-V Chennai Workshop

RISC-V Chennai Workshop将于本月17-18号在印度城市金奈举办,现在注册还来得及哦~

注册地址:RISC-V Workshop Chennai: https://tmt.knect365.com/risc-v-workshop-chennai/

之后RISC-V Day Tokyo将于10月18日在东京的Keio University举办,演讲征集已经开始,同事也欢迎参会。

注册地址:RISC-V Day Tokyo: https://tmt.knect365.com/risc-v-day-tokyo/

SiFive发布新E2系列CPU IP扩充其产品线

在最近举行的RISC-V Day Shanghai活动上,来自SiFive的VP Jack Kang发布了他们最新的E2 CPU IP系列,这个系列主打低端MCU市场。

E2系列目前提供两个全新设计的核心,分别是E21和E20。E20主打高效率,对标Cortex-M0+;而E21则功能全面,对标Cortex-M4。

E2系列的一些特性:

2-3级流水线,1-2个总线接口可配置

支持Fast Interrupt,6个时钟周期即可进入C程序

支持TIM(紧耦合的存储器)

支持RV32IMACF标准

高度可定制(FPU、可调优的乘法器、内存保护等)

在同等GCC参数下:

E21 is 12% higher performance per MHz vs Cortex-M4 in CoreMark

E20 is 28% higher performance per MHz vs Cortex-M0+ in CoreMark

在E2加入SiFive的IP核系列以后,SiFive自身的产品线已经能够初步满足各领域的应用,分别是:

微控制器(Microcontrollers)

嵌入式处理器(Embedded)

可运行Linux操作系统的应用处理器(Application/Linux Cores)

Link: Introducing The New IP Series By SiFive

技术讨论

直接缓存操作(explicit cache control)指令提案

直接缓存操作(explicit cache control)指令提案 (第3版, 第4版, 第5版, 第6版)

继3月份提出的第5版提案,Jacob Bachmeyer 提出了直接缓存操作指令的第6版! 相比第5版,第6版更新了很多指令的描述,更加明确了pinned cachelines (锁定缓存构造临时scratchpad)的操作, 然后明确定义MEM.RWRITE操作应当返回确定的常数(防止侧信道攻击),并为MEM.PF数据预取操作添加了流预取方式。

第6版中的指令定义:(有区别的加粗)

FENCE(有的架构也叫barrier)

原有的指令fence。

带区间的数据fence。

带区间的指令fence。

预取 -

数据预取。这里的数字标明预取数据的时间局部性(temporal locality),3表示非常频繁使用。

预取数据并获得可写权限。

欲取数据并暗示只读一次(assistant cache)。

提示预取器按流的方式预取一个数据区域。

预取指令。

缓存锁定(把部分缓存的区域变成scratchpad)

锁定数据区域。被锁定的数据如果发生更新,缓存可以选择将数据写回内存。如果写回操作出错,并不改变缓存的锁定状态。这样就可以支持映射到ROM区间的缓存锁定。

解锁数据区域

锁定指令区域,(Machine mode only)。

解锁指令区域,(Machine mode only)。

缓存清理(flush)

强制写回缓冲区域(但不失效)。

清除缓冲区域(写回并失效)。CACHE.FLUSH == CACHE.WRITEBACK + MEM.DISCARD

其他破坏性缓存操作

直接失效缓存区域(数据丢失,用于抛弃无用数据而避免写回)。

为写操作直接初始化缓存区域而不读取数据(已知数据会被彻底覆盖时,可以直接创建缓存数据同时标记已修改),在MEM.REWRITE和内存写操作之间如果发生对该区域的数据发生读操作,并且该数据不在缓存内,返回全0或全1的值,防止侧信道攻击(读取该地址的原有数据)。

具体的讨论可着重看这么几段:

第3版初始提议

Allen Baum的总结

第4版初始提议

第5版初始提议

第6版初始提议

fix gcc for special bit-manipulation (修复gcc对特殊位操作指令的编译)

在RISC-V ISA Dev讨论组询问RISC-V中是否有位操作的指令,认为在嵌入式中位操作指令比较重要,可以减小应用程序的体积。但当前在RISC-V标准中没有位操作专用的指令,只能通过掩码和AND指令来实现对寄存器特定位的修改

RISC-V确实有计划加入位操作相关指令,而且成立了相关工作组,但是原工作组的领导是AMD的雇员, AMD由于拒绝签RISC—V基金会成员平等条约而退出,导致工作阶段成果不公开和google讨论组关闭。后面经过社区努力后重新开放了相关的工作成功,社区继续开始相关的工作。

当前risc-v还没有位操作指令,但社区提出了在现有指令的基础实现位操作减少指令长度的办法,同时发现了在编译类操作功能代码时存在不是最精简编码的问题,并由进行了修复。

讨论中提到了各种主流架构的i386, amd64, Thumb2, ARM, Aarch64, sh4, m68k对位操作的处理情况

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180710G09EZK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券