Skip to content

Commit

Permalink
Merge pull request #34 from 1dentity84/main
Browse files Browse the repository at this point in the history
add news
  • Loading branch information
1dentity84 authored Mar 21, 2024
2 parents 024bbd8 + 7fc922a commit c32a731
Show file tree
Hide file tree
Showing 14 changed files with 195 additions and 0 deletions.
38 changes: 38 additions & 0 deletions content/en/news/001.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
+++
title = '快讯|RuyiSDK 现已支持 Canaan K230 芯片, RevyOS 小队完成 RevyOS 的初步适配'
date = 2024-02-29
+++

![pic1.jpg](/news-images/pic1.jpg)



**项目地址**:

- GitHub - revyos/k230-linux-kernel: K230 linux kernel
https://github.com/revyos/k230-linux-kernel/tree/k230-v6.8
- RuyiSDK/RevyOS
https://github.com/ruyisdk/revyos

中国科学院软件研究所 RuyiSDK 团队成功支持了 Canaan K230 芯片,这一成就离不开开源社区的好心人 **Cyyself(Yangyu Chen)** 同学的卓越贡献。Cyyself 是 PLCT-CAAT 小队实习生,他在移植 K230 新内核方面付出了巨大的努力,为 RevyOS 的发展做出了重要贡献。

**RevyOS** 是一款专为 **T-Head** 芯片生态定制的 **Debian** 优化发行版。它围绕着 **c906fdv/c910v/c908** 等芯片提供了全面的适配和优化支持。默认集成了 **RVV0.7.1****XThead****GCC** 工具链,搭载了使用 **RVV0.7.1** 指令集优化过的 **glibc****kernel** 。目前,**RevyOS** 已经能够满足用户在办公、网页浏览和观看视频等方面的基本需求。在硬件平台上,例如 **Lichee RV****Lichee Pi 4A****RevyOS** 能够提供优秀的性能和极佳的体验。

如果您想获取 **RevyOS** 的最新版镜像,请访问**中国科学院软件研究所**的开源镜像站(佳毅小队维护,有问题可以直接找他)。您可以根据所使用的设备获取对应的镜像。此外,**RevyOS** 还在稳定发布 **Lichee Pi 4A** 用户版镜像的同时,适用于 **LicheePi Cluster 4A** 的主线内核版本镜像也已发布。

**RevyOS**的用户版镜像包含 **U-boot****boot****root** 文件。刷写方式请参考镜像刷写教程。

**Canaan K230**是一款内置双核玄铁C908 **RISC-V**芯片, 主频高达 **1.6GHz**,并配备第三代 **KPU** 处理单元的开发板,提供强劲的本地 **AI** 推理能力。它是专业开发人员搭建原型设计、评估性能的理想选择。

Links:

- 镜像刷写教程
https://wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/4burnimage.html#%E6%89%B9%E9%87%8F%E7%83%A7%E5%BD%95)。
- K230
https://www.canaan-creative.com/product/k230
- revyos/k230-linux-kernel: K230 linux kernel
https://github.com/revyos/k230-linux-kernel/tree/k230-v6.8
- RuyiSDK/RevyOS
https://github.com/ruyisdk/revyos

![pic2.jpg](/news-images/pic2.jpg)
86 changes: 86 additions & 0 deletions content/en/news/002.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
+++
title = '玄铁团队与PLCT实验室联合发布:新32位产品级开源工具链及Linux内核'
date = 2024-03-11
+++

> AIoT技术的快速发展不断推高了对微控制器(MCU)和应用处理器(AP)计算能力的需求,这使得传统32位架构的性能局限性日益明显。在此架构中,内存访问和原子操作指令不再能有效满足现代操作系统的性能要求和精巧设计,从而推动了向64位硬件架构的转变。在这种转变中,32位软件在64位架构上运行时存在指针宽度与硬件寄存器宽度不匹配的问题。在过去的 64ILP32 ABI 实践中是通过编译器添加零扩展指令来解决这一不匹配问题,但这降低了性能。为克服该性能问题,**达摩院-玄铁团队提出了松弛扩展寻址模式(Relaxed-Addressing Mode),并与中科院软件所-PLCT实验室联合发布了业界首款RISC-V新32位产品级开源工具链(rv64ilp32 toolchain)和 Linux 内核**。在对比测试中新32位 Linux 内核展现了诸多优势:相比传统32位,大幅提升内核的综合性能;相比传统64位,Fedora 团队在K230芯片上利用新32位内核节省内存,降低成本。此举旨在充分利用64位硬件的计算优势,从而显著提升了新32位嵌入式系统的综合性能,标志着嵌入式处理器从32位向64位转型的关键进展。

## 松弛扩展寻址

历史上,64ILP32 ABI的实施面临着的主要障碍是:32位指针与64位寄存器之间的不匹配问题,这不仅引起性能损失,还增加了编译器的复杂性。虽然零扩展寻址(Zero-extend Addressing)在 x86-x32 和 aarch64-ilp32 ABI 中得到采用,但额外的零扩展指令降低了程序效率。与之相比,32ILP32 和 64LP64 ABI 因指针长度与寄存器宽度一致,避免了这种性能开销。面对这些挑战,我们首先考虑了符号扩展寻址(Sign-extend Addressing),它在一定程度上减缓了零扩展的性能问题,但增加了编译器和内核实现的复杂度。于是,我们提出了松弛扩展寻址(Relax-extend Addressing)方案,它通过硬件的指针掩码功能,允许在执行32位寻址操作时忽略64位寄存器的高32位,大幅简化了编译器工作,降低指令数量,并保持了安全性与可靠性。我们对以上三种寻址模式总结如下:

● 抹零扩展寻址:传统方法,需要编译器生成额外的的指令来清零高32位,导致性能损失。

● 符号扩展寻址:改良方案,通过操作系统页表的双重映射,合法化32位符号位扩展,缓解零扩展的性能开销。

● 松弛扩展寻址:创新方案,依赖处理器硬件掩码来实现高效寻址,彻底消除了寻址时的性能损失。

因此,松弛扩展被我们选定为 RV64ILP32 ABI 的默认寻址模式,它要求 RISC-V 64位处理器支持寻址掩码功能,对硬件设计提出了新的要求。我们在 QEMU 上实验该功能,并证明了基于松弛扩展寻址模式的 RV64ILP32 工具链的有效性。

## 新32位内核

新32位工具链基于 RISC-V 64ilp32 ABI,融合了松弛扩展寻址技术,让64位硬件流畅运行新32位软件。我们在 qemu 上实现了硬件松弛扩展寻址模式,并用新工具链构建了**业内首款新32位Linux内核**

与传统32位对比,尽管新32位和传统32位都是32位Linux操作系统软件,但新32位得益于64位指令集,其性能显著优于传统32位:

![pic3.jpg](/news-images/pic3.jpg)

如上图所示,新32位内核的 iperf3-tcp 测试大幅领先,在软件 ABI 相同的情况下,使用 64 位指令架构能极大提升操作系统的性能。本次qemu 测试仅供参考,请联系硬件供应商获得真实的性能差距报告,本测试用例已在工具链发布包内,请大家直接下载自行体验,动画测试的全过程见下方链接:

https://mp.weixin.qq.com/s/argIGP4_rUKDm9IRIB-YTg

与传统64位对比,Fedora 团队完成了 RISC-V 新32位在 k230 硬件平台的适配,新32位避免了39%的内存浪费,其成本优势使 Fedora RISC-V 能在嵌入式领域有更广泛的应用,具体请参考:

https://fedoraproject.org/wiki/Architectures/RISC-V/64ILP32



![pic4.jpg](/news-images/pic4.jpg)



![pic5.jpg](/news-images/pic5.jpg)

## 新32位工具链

让32位软件运行在64位硬件上不仅更快而且更省,这正是我们新32位编译器的优势所在,不禁让人想起中国古代田忌赛马的故事,与传统32位比性能,与传统64位比成本。换言之,新32位就是要取代传统32位,与64位形成互补。在进一步的测试中,我们观察到了传统32位的明显不足:

![pic6.jpg](/news-images/pic6.jpg)

如上图所示,在处理长数据类型时,传统32位的编译器生成了超过10条额外指令来操作保存的变量。相反,当采用新32位工具链时,编译器会直接利用64位指令来处理这些数据,大幅度减少了所需指令的数量。



![pic7.jpg](/news-images/pic7.jpg)

**本次发布的新32位工具链通过了33万个测试用例,其中包含 192133 个 g++ 用例, 与 143498 个 gcc 用例 ,全面覆盖编译器的各项功能,测试结果与 GCC13 release 保持一致,达到产品级质量要求。相比传统32位,它的优势如下:**

**更强大的性能:** 新32位编译器在处理长数据类型时更加高效,因为它无需进行额外的寄存器拼接或零扩展操作。这可以显著减少指令数量,提高程序的执行效率,特别是在涉及大量长数据类型操作的情况下。

**更好的兼容性:** 新32位编译器可以与传统64位编译器兼容,因为它们基于相同的硬件指令集。这意味着开发者可以更轻松地将现有的64位汇编代码迁移到新32位平台上,而无需做出太多修改。

**更多的扩展性:** 随着技术的发展和需求的增长,对更大的内存空间和更高性能的需求也在不断增加。新32位的硬件平台可以为未来的扩展性提供了更好的支持,因为它能无缝切换到传统64位以满足更高要求的应用程序。

**产品级的质量:**新32位工具链经过大量测试验证,保证使用的正确性与稳定性,同时在RUYISDK开源仓库中进行维护更新,及时解决用户遇到的各种问题。



快速上手:https://github.com/ruyisdk/riscv-gnu-toolchain-rv64ilp32/

技术支持:https://github.com/ruyisdk/riscv-gnu-toolchain-rv64ilp32/issues/



## 结束语

松弛扩展寻址技术在新**32**位工具链中扮演着关键角色,为嵌入式系统的开发和部署提供了全新的解决方案。作为**业内首款基于松弛扩展寻址技术的新32位产品级开源工具链和Linux内核**,标志着嵌入式系统开发领域的一次重要创新。我们热切期待开发者们积极参与到新32位的开发和完善中,共同提出宝贵的建议和意见,推动新32位不断发展。我们致力于建立一个健康和活跃的开源社区,将持续投入资源和精力,确保新32位的稳定性和可靠性,并不断改进和完善其功能和性能。在此,我们也呼吁更多的硬件厂商加入我们的阵营,共同推动新32位嵌入式系统的发展和创新,为行业带来更多的可能性和机遇。

### 相关阅读

[rv64ilp32: The future of the 32-bit Linux](https://mp.weixin.qq.com/s/XTX_jUYzirDQVXaHHR8i1Q)

### 关于我们

**PLCT GNU**小队是专注**GNU**工具链开发的团队,目前致力于维护**GNU RISC-V**后端支持工作,包括草案支持及性能优化。作为开源社区的积极贡献者,我们矢志不渝地推动**RISC-V**架构在**GNU**工具链中的广泛应用与性能提升,欢迎交流合作。

● 达摩院玄铁团队持续深耕**RISC-V**技术研发及生态建设,并陆续推出了一系列玄铁处理器,可满足高中低全系列性能需求。玄铁积极拥抱开源,坚持开放创新,已逐渐构建起以**RISC-V**为核心的生态体系,与生态伙伴协同推动**RISC-V**芯片、开发工具、操作系统、应用解决方案等不同层面的软硬一体化发展。全力推动**RISC-V**软硬全栈技术多领域发展落地,加速实现智能时代的万物互联!
39 changes: 39 additions & 0 deletions content/en/news/003.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
+++
title = '喜讯|祝贺陈逸轩完成RISC-V国际基金会 RISC-V Advocate 首批认证:全球共4位、唯一女性代表、唯一东亚代表'
date = 2024-03-17
+++

围观地址:https://riscv.org/risc-v-advocates/

![pic8.jpg](/news-images/pic8.jpg)

我们怀着非常激动的心情与所有PLCT实验室的伙伴和支持者分享一个好消息:来自中国科学院软件研究所**PLCT**实验室**GNU工具链小队**的编译器工程师**陈逸轩**同学,经过了10个月的训练和等待,终于通过了RISC-V国际基金会认证,成为首批4名公布的 **RISC-V Advocate(RISC-V倡导者)**,她是目前全球唯一获得认证的女性工程师,也是唯一的东亚面孔。

陈逸轩工程师同时兼任**PLCT**实验室武汉办公室主任、并且在(由邱吉博士发起的面向女性编译器工程师职业提升的)**南盘江计划**中担任活跃组织者。她在职业生涯伊始就参与了开源软件社区的贡献,并于**2022**年初加入**PLCT**实验室,成为一名为**RISC-V**开源软件生态的开拓者。

目前陈逸轩工程师所在的GNU工具链小队正在招募GCC编译器开发实习生,欢迎在GitHub 上搜索 **plctlab/weloveinterns** 获取最新全面的PLCT实验室招聘信息。

**让荣光落于刀锋之上!**

![pic9.jpg](/news-images/pic9.jpg)

以下是RISC-V倡导者的介绍(来自于 https://riscv.org/risc-v-advocates/ 内容为机器翻译,请忽略错误)

RISC-V 倡导者通过全球推广和参与来支持 RISC-V 的进步。

倡导者是 RISC-V 爱好者,他们与 RISC-V International 合作,确保全球势头和采用。 成功的倡导者包括工程专业的学生和早期采用者,他们热衷于与社区分享他们对 RISC-V 的知识和热爱。

该计划将于 2024 年正式启动,需要每年提交申请,并详细了解您如何获得资格。 2024 年计划的申请现已开放,将于 2024 年 2 月 29 日截止。被接受加入该计划的个人将于 2024 年 3 月 15 日收到通知。该计划按日历年运行。

RISC-V 倡导者是对 RISC-V 充满热情并致力于发展和参与 RISC-V 社区的个人。 RISC-V 倡导者计划为社区成员提供工具和资源,以:

- 扩大他们在 RISC-V 工作中的作用
- 对当地社区进行 RISC-V 使命和技术方面的教育
- 吸引 RISC-V 成员参与和社区发展
- 倡导者的特质:热衷于分享他们对 RISC-V 的知识和热爱。 能够让其他人参与当地社区并通过直接贡献支持生态系统。

RISC-V Advocates support RISC-V progress through global promotion and engagement. See requirements to apply below, please **apply here by February, 29 2024**.

**RISC-V Advocates are individuals passionate about RISC-V and dedicated to growing and engaging the RISC-V community.**

Questions? Reach out to local (at) riscv (dot) org
32 changes: 32 additions & 0 deletions content/en/news/004.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
+++
title = '内测邀请:RuyiSDK官方网站即将正式上线'
date = 2024-03-18
+++


![pic10.jpg](/news-images/pic10.jpg)

我们很高兴地宣布,RuyiSDK的全新官方网站即将上线!这是我们的一个重要里程碑,我们诚邀您成为我们测试的一部分。

RuyiSDK一直致力于提供最前沿的RISC-V软件开发工具和服务,我们的新网站将进一步提升您的用户体验。在正式发布之前,我们希望通过您的参与来完善网站功能,确保一切运行顺畅。**测试参与者可以:**

- 提前体验网站的最新功能
- 对网站的未来发展提出建议和反馈

**测试时间:** 2024年3月15日至4月1日

**如何参与:** 请访问我们的测试页面 ruyisdk.org 开始体验。您的每一条反馈都是对我们至关重要的支持。我们期待着您的宝贵意见,一起打造更好的RuyiSDK。



**联系方式:** 如有任何疑问,请通过以下方式联系我们:

- 微信公众号:ruyisdk

- Github Issues: https://github.com/ruyisdk/ruyisdk-website/issues

- Github Discussions: https://github.com/ruyisdk/ruyisdk-website/discussions



感谢您的支持!RuyiSDK团队
Binary file added static/news-images/pic1.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/news-images/pic10.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/news-images/pic2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/news-images/pic3.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/news-images/pic4.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/news-images/pic5.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/news-images/pic6.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/news-images/pic7.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/news-images/pic8.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/news-images/pic9.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit c32a731

Please sign in to comment.