E906的指令|学习笔记

本文涉及的产品
数据传输服务 DTS,同步至DuckDB 3个月
简介: 快速学习 E906的指令

开发者学堂课程【高校精品课-大连理工大学-计算机组织与结构:E906的指令】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/3/detail/16052


E906的指令

 

内容介绍

一、E906的指令系统

二、RV32IMAFDCP 指令集

三、平头哥扩展指令集

四、RV32I 整型指令集

 

一、E906的指令系统

E906采用了16/32位混编的 RV32IMAC 指令集,在此基础上扩展了平头哥自定义指令,形成RV32IMAFDCP指令集

- l :整数指令

- M :乘除法指令

- A :原子操作指令

- F :单精度浮点指令

- D :双精度浮点指令

- C :压缩指令

- P : DSP 指令

采用的是16位和32位混编的 RV321MAC 指令集也就是支持整形乘除法原子运算以及压缩指令集在此基础上又扩展了平头哥自定义的指令集,形成了 RV32MAFDCP 指令集各个字母的含义如下所示,l整形指令M乘除法指令,A原子操作指令F单精度浮点指令D 双精度浮点指令C 压缩指令,P 是 DSP 指令。

 

二、RV32IMAFDCP 指令集

口加减法指令

口逻辑操作指令

口移位指令

ロ比较指令

口数据传输指令

ロ分支跳转指令

口内存存取指令

口控制寄存器操作指令

口低功耗指令

口异常返回指令

口特殊功能指令

指令集中包括指令有加减法逻辑操作、移位、比较数据传输分支跳转内存存取控制寄存器的操作低功耗指令异常返回指令和一些特殊功能的指令。

 

三、平头哥扩展指令集

口Cache 操作指令

口同步指令

口扩展算术运算指令

口位操作指令

口访存指令

口双精度浮点高位数据传输指令

口中断加速指令

平头哥给它扩展了一些指令包括 Cache 操作指令同步指令扩展算术运算指令、位操作访存指令,还有双精度浮点高位数据传输指令以及中断加速指令,这是它的指令系统的全貌。

 

四、RV32I 整型指令集

加减法指令

ADD 有符号加法指令

ADDI 有符号立即数加法指令

SUB 有符号减法指令

第一类是加减法指令,包括 ADD 有符号加法,ADD 后面加个 I 就是有符号立即数加法指令,带I的就有一个立即数的运算减法就是 SUB 有符号减法指令逻辑操作呢就是典型的与操作或操作和异或操作。

口移位指令

-SLL 逻辑左移指令

-SLLI 立即数逻辑左移指令

-SRL 逻辑右移指令

-SRLI 立即数逻辑右移指令

-SRA 算术右移指令

-SRAI立即数算术右移指令

移位指令包括逻辑左移、立即数逻辑左移逻辑右移、立即数逻辑右移算术右移和立即数的算术右移。一般的处理器里面算术左移和逻辑左移的功能是一样的,所以没有涉及这条指令。

比较指令

-SLT 有符号比较小于置位指令

-SLTU 无符号比较小于置位指令

-SLTI 有符号立即数比较小于置位指令

-SLTIU 无符号立即数比较小于置位指令

数据传输指令

-LUI 高位立即数装载指令

AUIPC PC 高位立即数加法指令

有符号比较小于置位指令无符号比较小置位指令,有符号数无符号整数的立即数比较小于置位指令

口分支跳转指令

-BEQ 相等分支指令

-BNE 不等分支指令

-BLT 有符号小于分支指令

-BGE 有符号大于等于分支指令

-BLTU 无符号小于分支指令

-BGEU 无符号大于等于分支指令

-JAL 直接跳转子程序指令

-JALR 寄存器跳转子程序指令

内存存取指令

-LB 有符号扩展字节加载指令

-LBU 无符号扩展字节加载指令

-LH 有符号扩展半字加载指令

-LHU 无符号扩展半字加载指令

-LW 有符号扩展字加载指令

-SB 字节存储指令

-SH 半字存储指令

-SW 字存储指令

口低功耗指令

-WFI 进入低功耗模式指令

口异常返回指令

-MRET 机器模式异常返回指令

口特殊功能指令

-FENCE 存储同步指令不可预期

-FENCE .1指令流同步指令阻塞执行

-ECALL 环境异常调用指令

-EBREAK 断点指令

RV32M 乘除法指令如下

-MUL 有符号乘法指令

-MULH 有符号乘法取高位指令

-MULHSU 有符号与无符号乘法取高位指令

-MULHU 无符号乘法取高位指令

-DIV 有符号除法指令

-DIVU 无符号除法指令

-REM 有符号取余指令

-REMU 无符号取余指令

一个处理器支持乘除法的就意味着它内部有硬件的乘法器除法器,MUL 是乘法指令,DIV 是除法指令,取余数指令和除法是一回事,只不过一个要商一个要余数还有原子操作的指令还有压缩指令。

相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
存储 缓存 人工智能
玄铁 E906处理器简介|学习笔记
快速学习玄铁 E906处理器简介
3466 0
玄铁 E906处理器简介|学习笔记
|
Java 数据库连接 Maven
IDEA下Maven骨架(archetype)搭建
通过Maven生成骨架(通用项目目录结构)流程记录
2029 1
Kali 换源(国内优质镜像源地址)2023最新
Kali 换源(国内优质镜像源地址)2023最新
5861 0
|
芯片 开发者 SoC
E906的中断系统|学习笔记
快速学习 E906的中断系统
902 0
E906的中断系统|学习笔记
|
6月前
|
安全 Linux 数据安全/隐私保护
​如何安装 telnet-0.17-65.el7_8.x86_64.rpm(CentOS 7 RPM 安装详细步骤)​
Telnet是用于远程登录的客户端工具,适用于测试网络连接,但因不加密,存在安全风险,建议在受控环境中使用。本文介绍在CentOS/RHEL 7系统上通过rpm或yum命令安装Telnet的方法,并验证安装结果。
1783 0
|
监控 安全 测试技术
监理20-25章
课件
337 15
【第二章】信号与槽——connect函数的用法
【第二章】信号与槽——connect函数的用法
|
监控 NoSQL 网络协议
OpenOCD(四):OpenOCD服务器配置
OpenOCD(四):OpenOCD服务器配置
1168 1
|
存储 算法 JavaScript
递归的递归之书:引言到第四章
递归的递归之书:引言到第四章
455 0
|
存储 搜索推荐 API
Electron-store本地存储功能
【10月更文挑战第18天】Electron-store 无疑为我们的 Electron 应用开发提供了强大的支持。它的本地存储功能不仅方便实用,而且性能优异,为我们打造高质量的应用提供了坚实的基础。