RISC-V 指令集架构规范的 F# 实现开源

7 月份,RISC-V 基金会宣布批准 RISC-V 基础指令集架构特权架构规范,为 RISC-V 的可扩展性进一步奠定了基础。而近日,有开发者在此基础上开源了一份以 F# 实现的 RISC-V 正式 ISA(指令集架构)规范(实现)。

RISC-V 基础指令集架构是应用软件与硬件之间的接口,编码为此规范的软件将继续在 RISC-V 处理器上永久使用,即使架构通过开发新扩展而发展也不受影响。

官方表示 RISC-V 采用简单的固定基础 ISA 和模块化固定标准扩展设计,有助于防止碎片化,同时支持定制,RISC-V 生态已经在此前的各种实现上展示了很大程度的互操作性,而现在批准了基础架构规范,开发人员可以进一步放心,他们为 RISC-V 编写的软件将可以一直运行在所有类似的 RISC-V 核心上。

特权架构则用于在软件堆栈的不同组件之间提供保护,并且尝试执行当前权限模式不允许的操作将导致引发异常。RISC-V 特权架构涵盖了非特权 ISA 之外的 RISC-V 系统的所有方面,包括特权指令以及运行操作系统和连接外部设备所需的其它功能。每个权限级别都有一组核心的特权 ISA 扩展,带有可选的扩展和变体,包括机器 ISA、主管 ISA 和管理程序 ISA。

此次开源的是 RISC-V 指令集架构的正式规范编码实现(可执行),以纯 F# 编写,根据介绍,项目使用极端基础的 F# 实现,这样可以使不了解 F# 且不打算学习 F# 的广大读者都可以阅读并使用该规范实现。

该实现还在演进中,目前的特性与状态如下:

  • 支持以下特性
    • 基础指令集:RV32I
  • 开发中的特性
    • 基础指令集:RV64I
    • 标准扩展 M(整数乘/除)
    • 标准扩展 A(原子内存操作)
    • 标准扩展 C(精简的 16 位指令)
    • 标准扩展 F(单精度浮点数)
    • 标准扩展 D(双精度浮点数)
    • 特权级 M(Machine)
    • 特权级 U(User)
    • 特权级 S(Supervisor)
      • 虚拟内存方案 SV32、SV39 与 SV48
  • 可以将应用作为具有 CLI(命令行界面)支持的 F# 程序灵活地执行,该程序又执行 RISC-V ELF 二进制文件。这是一种顺序解释:一次一指令的顺序存储器模型。
  • 正在开发中的 RISC-V 测试:
    • 基本指令流
    • rv32ui-p-*, rv64ui-p-*(基本指令集)
    • rv32um-p-*, rv64um-p-* (M 扩展)
    • rv32ua-p-*, rv64ua-p-* (A 扩展)
    • rv32uc-p-*, rv64uc-p-* (C 扩展)

详情查看项目:

https://github.com/mrLSD/riscv-fs

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/110748/riscv-fs

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。