|
|
|
|
移动端

2.2.1 模块化的指令子集

《手把手教你设计CPU——RISC-V处理器篇》第2章大道至简——RISC-V架构之魂,本章将对RISC-V架构的设计思想进行深入浅出的介绍。本节为大家介绍模块化的指令子集。

作者:胡振波来源:人民邮电出版社|2018-05-23 13:13

技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战

2.2.1 模块化的指令子集

RISC-V的指令集使用模块化的方式进行组织,每一个模块使用一个英文字母来表示。RISC-V最基本也是唯一强制要求实现的指令集部分是由I字母表示的基本整数指令子集。使用该整数指令子集,便能够实现完整的软件编译器。其他的指令子集部分均为可选的模块,具有代表性的模块包括M/A/F/D/C,如表2-1所示。

表2-1 RISC-V的模块化指令集

基本指令集

指令数

描述

RV32I

47

32位地址空间与整数指令,支持32个通用整数寄存器

RV32E

47

RV32I的子集,仅支持16个通用整数寄存器

RV64I

59

64位地址空间与整数指令及一部分32位的整数指令

RV128I

71

128位地址空间与整数指令及一部分64位和32位的指令

扩展指令集

指令数

描述

M

8

整数乘法与除法指令

A

11

存储器原子(Atomic)操作指令和Load-Reserved/Store-Conditional指令

F

26

单精度(32比特)浮点指令

D

26

双精度(64比特)浮点指令,必须支持F扩展指令

C

46

压缩指令,指令长度为16位


以上模块的一个特定组合“IMAFD”,也被称为“通用”组合,用英文字母G表示。因此RV32G表示RV32IMAFD,同理RV64G表示RV64IMAFD。

为了提高代码密度,RISC-V架构也提供可选的“压缩”指令子集,用英文字母C表示。压缩指令的指令编码长度为16比特,而普通的非压缩指令的长度为32比特。

为了进一步减少面积,RISC-V架构还提供一种“嵌入式”架构,用英文字母E表示。该架构主要用于追求极低面积与功耗的深嵌入式场景。该架构仅需要支持16个通用整数寄存器,而非嵌入式的普通架构则需要支持32个通用整数寄存器。

通过以上的模块化指令集,能够选择不同的组合来满足不同的应用。例如,追求小面积、低功耗的嵌入式场景可以选择使用RV32EC架构;而大型的64位架构则可以选择RV64G。

除了上述模块,还有若干的模块如L、B、P、V和T等。目前这些扩展大多数还在不断完善和定义中,尚未最终确定,因此不做详细论述。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Visual Studio 2005+SQL Server 2005数据库应用系

本书主要介绍采用Visual Studio 2005的C#语言为前台,SQL Server 2005数据库为后台的数据库系统开发技术。 全书分为15章,内容包括走进.NE...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊