20

扩展性短板不再?RISC-V 指令集架构规范的 F#实现已在 GitHub 上开源

 4 years ago
source link: https://www.tuicool.com/articles/yqUV3a7
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

近日,有开发者在 RISC-V 基础指令集架构与特权架构规范 的基础上开源了一份以 F# 实现的 RISC-V ISA(指令集架构)规范,并发布在了 GitHub 上,其主要内容包括“功能和当前状态”、“代码示例”以及实际“操作方式”等。

BRNZbu3.png!web

今年 7 月份, RISC-V 基金会 在官网上发布 公告 ,宣布批准 RISC-V 基础指令集架构与特权架构规范。而本次开源的内容,则是以 RISC-V 基金会发布的 RISC-V ISA 规范为基础,利用 F#编写而成。

RISC-V 基础指令集架构与特权架构规范

RISC-V 基础指令集架构与特权架构规范 发布于今年 7 月,这被认为是 RISC-V 生态系统发展过程中的一个重要里程碑。

RISC-V 基础指令集架构应用于软件与硬件之间,是连接两者的“桥梁”。而 RISC-V ISA 规范的发布,则意味着,只要按照该规范编码的软件都将能够在 RISC-V 处理器上持续使用,即使其处理器架构通过开发新扩展模块也不受到影响。

基础指令集架构获得批准,开发者可以进一步放心,他们为 RISC-V 编写的软件将可以一直运行在所有类似的 RISC-V 核心上。

——RISC-V 基金会董事会主席 Krste Asanović

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

RISC-V 特权架构是 RISC-V 硬件和软件(如 Linux 和 FreeBSD)之间的一种契约。对 RISC-V 来说,这些标准获得通过是一个里程碑标志。
——RISC-V 特权架构任务组主席 Andrew Waterman

RISC-V ISA 规范的 F# 实现

F#是由微软发展的为.NET 语言提供运行环境的程序设计语言,是一种函数编程语言(FP,Functional Programming)。目前,F#已经接近成熟,支持高阶函数、柯里化、惰性求值、Continuations、模式匹配、闭包、列表处理、元编程等。

此次 开源的RISC-V ISA 规范编 码实现 ,使用“非常基础”的 F# 编写,目的是为了让不了解 F# 且不打算学习 F# 的开发者们也可以阅读并使用该规范实现。

目前,该实现还在不断的完善中,现在的功能与状态如下:

  1. 支持以下功能
  • 基本指令集:RV32I
  1. 正在开发中的功能
  • 基本指令集:RV64I
  • 标准扩展 M(整数乘 / 除)
  • 标准扩展 A(原子内存操作)
  • 标准扩展 C(精简的 16 位指令)
  • 标准扩展 F(单精度浮点数)
  • 标准扩展 D(双精度浮点)
  • M 级特权(Machine)
  • U 级特权(User)
  • S 级特权(Supervisor),虚拟内存方案 SV32,SV39 和 SV48
  1. 应用程序可以作为一个灵活的具有 CLI(命令行界面)支持的 F#程序被执行,它会依次执行 RISC-V ELF 二进制文件。这是一种顺序解释:一次一个指令的顺序存储器模型。

  2. 正在开发中的 RISC-V 测试:

rv32ui-p-*, rv64ui-p-*
rv32um-p-*, rv64um-p-*
rv32ua-p-*, rv64ua-p-*
rv32uc-p-*, rv64uc-p-*

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK