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

2019 年 10 月 22 日

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

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



今年 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-* (M 扩展)

  • rv32ua-p-*, rv64ua-p-*(A 扩展)

  • rv32uc-p-*, rv64uc-p-*(C 扩展)


2019 年 10 月 22 日 19:011068
用户头像
张之栋 InfoQ编辑

发布了 91 篇内容, 共 33.0 次阅读, 收获喜欢 151 次。

关注

评论

发布
暂无评论
发现更多内容

作业 - 第三周

Happy-Coming

老板不断加需求、改需求的四种应对方法

金刚小书童

项目管理 需求管理

单例模式的三种

王锟

架构师训练营第三周作业

好名字

作业

macOS Big Sur、iOS14测试版描述文件

Winann

iOS14 macOS Big Sur 描述文件

腾讯健康码16亿亮码背后的Elasticsearch系统调优实践【>>戳文章免费体验Elasticsearch服务30天】

小小的一朵云

大数据 elasticsearch

数据库周刊29│2020数据库研究报告;Oracle取消今年技术大会;腾讯云DBbridge发布支持一键迁库;饿了么迁至阿里云;PG数组查询;Oracle被比特币勒索;DM8 安全管理…

墨天轮

MySQL 数据库 postgresql 腾讯云 阿里云

命题作业—第三周

于江水

极客大学架构师训练营

案例篇:服务吞吐量下降很厉害,怎么分析?

王传义

第三周总结

Linuxer

架构师培训营第三周总结

王锟

Kotlin实现组合模式

Acker飏

极客大学架构师训练营

架构师三期作业

老姜

设计模式是架构师的必备武器

老姜

是时候扔掉 Postman 了,Apifox 真香!

狐哥说技术

Postman 面向接口编程 Apifox 接口文档 接口测试

架构师训练营第 3 周作业

在野

极客大学架构师训练营

Apache Zeppelin:可能是开源届最好的Flink开发平台

章剑锋_Jeff

大数据 flink 流计算 Zeppelin

新基建核心技术人才缺口将达420万

CECBC区块链专委会

新基建 人才缺口 核心技术人才

关于区块链的那些事,看完可以防忽悠

CECBC区块链专委会

分布式 区块链技术 共识与信任

架构师训练营-W3-作业一

柳旭

极客大学架构师训练营

拍一拍,微信史上最短一行代码,是如何被网友玩坏的!

程序员生活志

c++ 微信

KairosDB Client使用总结

刘先强

学习总结—第三周

于江水

极客大学架构师训练营

第三周作业

赵龙

架构师训练营——第三周作业

jiangnanage

冒泡排序

wjchenge

冒泡排序

几种设计模式的使用场景

Acker飏

极客大学架构师训练营

手写一个单例

Acker飏

极客大学架构师训练营

设计模式代码实现

dony.zhang

职能合约将如何在未来掀起一场革命?

CECBC区块链专委会

智能合约 区块链技术 去中心化 防篡改 自动执行

week03 架构师培训营总结

李锦

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