RV32M添加了整数乘法和除法指令

除法指令

  • div、divu: 有符号和无符号整数的除法指令,它们将商放入目标寄存器
  • rem、remu: 将余数写入目标寄存器
  • beqz: 测试除数是否为零

乘法指令

积=被乘数×乘数
积的长度是乘数和被乘数长度的和,将两个32位数相乘得到的是64位乘积

  • mul:要得到整数32位成绩(64位中的低32位)
  • mulh:得到高32位,有符号
  • mulhu:操作数都是无符号数
  • mulhus:一个有符号,一个无符号

mulh和mulhu可以检查乘法的溢出

在一条指令中完成把64位积写入两个32位寄存器的操作会使硬件设计变得复杂,所以RV32M需要两条乘法指令才能都得到一个完整的64位积。

结束语

为了为嵌入式提供最小的RISC-V处理器,乘法和除法被归入RISC-V的第一个可选标志扩展的一部分RV32M。许多RISC-V处理器将包括RV32M。

RV32F和RV32D:单精度和双精度浮点数

浮点寄存器

  • 32F和32D使用32个独立的f寄存器而不是x寄存器

  • 主要原因:处理器在不增加RISC-V之林那个格式中寄存器描述符所占空间的情况下使用两组寄存器来将寄存器容量和带宽是乘2,着可以提高处理器性能

  • 主要影响:必须添加新的指令来加载和存储数据f寄存器,还需要添加新指令用于在x和f寄存器之间传递数据

  • 如果同时支持扩展,则单精度数据仅仅使用f寄存器的低32位,寄存器f0不是硬连线到常量0,而是和所有其他31个f寄存器一样是可变寄存器

浮点加载,存储和算术指令

  • flw,fld:加载指令
  • fsw fsd:存储指令

他们和lw和sw拥有相同的寻址模式和指令格式

  • 标准运算指令:fadd.s,fadd.s,fsub.s,fsub.d,fmul.s,fmul.d,fdiv.s,fdiv.d
  • 平方根指令:fsqrt.s fsqrt,d
  • 最大值和最小值:fmin.s fmin.d fmax.s fmax.d

这些指令在不适用分支指令进行比较的情况下,将一对源操作数中的较小值或较大值写入目的寄存器

32F和32D没有提供浮点分支指令,而提供了浮点比较指令,这些指令根据两个浮点的比较结果将一个整数寄存器设置为1或0

feq.s ffeq.d flt.s flt.d fle.s fle.d

浮点转换和搬运

  • 32F和32D支持在32位有符号整数,32位无符号整数,32位浮点和64位浮点之间进行所有组合的转换
  • 32F还提供了将数据从f寄存器(fmv.x.w)移动到x寄存器的指令,以及反方向移动数据的指令(fmv.w.x)

其他浮点指令

除了有助于数学库中的符号操作,还提供了三种流行的浮点伪指令:

结束语

IEEE754-2008浮点标准定义了浮点数据类型,计算精度和所需操作。它的广泛流行大大降低了移植浮点数程序的难度。

嵌入式系统(五):RISC-V4相关推荐

  1. 嵌入式系统考试复习大全

    1.嵌入式系统的三要素 (1)嵌入性:嵌入到对象体系中,有对象环境要求 . (2)专用性:软.硬件按对象要求裁减. (3)计算机:实现对象的智能化功能 . 2.嵌入式系统的定义 目前国内一个普遍被认同 ...

  2. 嵌入式系统的组成、嵌入式处理器分类总结、ARM处理器系列总结、ARM Cortex-M3体系结构总结!

    一.嵌入式系统的组成 嵌入式系统的组成主要由:嵌入式硬件系统.嵌入式软件系统. (1)嵌入式硬件系统主要包括:嵌入式处理器.存储器.模拟电路.电源.接口控制器.接插件等 1)嵌入式处理器:是嵌入式系统 ...

  3. 嵌入式系统概论-考试总结

    Exam-嵌入式总结 1. 简答题 1.1. 什么是CPS?请画出典型结构,尝试描述典型应用[2015] CPS,信息物理系统,计算进程和物理进程的统一体,集计算.通信.控制于一体的下一代智能系统,由 ...

  4. 嵌入式系统与硬件安全知识小记

    目录 嵌入式系统概述 第一节 嵌入式系统概念 第二节 嵌入式系统与台式计算机 第三节 嵌入式系统与单片机 嵌入式处理器 第一节 从传统处理器到片上系统 第二节 嵌入式处理器之ARM 第三节 嵌入式处理 ...

  5. 嵌入式系统的应用领域

    嵌入式系统技术具有非常广阔的应用前景,其应用领域可以包括: 1.工业控制: 基于嵌入式芯片的工业自动化设备将获得长足的发展,目前已经有大量的8.16.32 位嵌入式微控制器在应用中,网络化是提高生产效 ...

  6. 嵌入式系统开发-学习路线

    嵌入式系统开发 课程链接 随着嵌入式设备的普及,嵌入式应用的需求量也随之增大,本课程将重点培养基于linux系统下的嵌入式应用开发,包括5个阶段,其中课程涵盖了linux系统下的多进程.多线程嵌入式开 ...

  7. 嵌入式系统求职回忆录

    嵌入式系统求职回忆录 欧浩源(ohy3686@qq.com)  20081029 一.引言 一年前的这个时候,我开始了人生的真正求职历程.在这个过程中,有幸参加过广嵌.迈瑞.华为.智光.周立功.理邦等 ...

  8. 嵌入式系统求职回忆录757740595

    http://blog.mcuol.com/User/ohy3686/Article/7577_1.htm 嵌入式系统求职回忆录 欧浩源(ohy3686@qq.com)  20081029 一.引言 ...

  9. 嵌入式系统开发笔记91:认识ARM微控制器架构

    文章目录 前言 一.ARM 二.ARM微控制器的市场占有率 1.95%的智能手机 2.90%的平板电脑 3.96%的硬盘驱动器 4.85%的无人机 5.83%的数字电视 6.75%的工业机器人 三.A ...

  10. 嵌入式系统考试题库(CSU)

    一.选择题(10分) 1.下列描述不属于RISC计算机的特点的是( C). A.流水线每周期前进一步. B.更多通用寄存器. C.指令长度不固定,执行需要多个周期.// 指令长度固定,指令格式种类少, ...

最新文章

  1. Altium Designer原理图和PCB中对元件垂直、水平镜像翻转
  2. rpm的使用 怎样查看rpm安装包的安装路径
  3. 【收藏】QGIS加载xyz格式地图(以高德影像图和路网为例)
  4. mvc登录设计的详细设计_产品设计:APP指纹密码登录设计
  5. CRM Excel导出技术实现的调试截图
  6. ofbiz中的数据模型
  7. 公司网络搭建及×××到公司配置
  8. 信息学奥赛一本通 2055:【例3.5】收费
  9. 信息学奥赛一本通 1140:验证子串 | OpenJudge NOI 1.7 18
  10. 初级java程序员怎样快速提升自己
  11. Django:视图装饰器
  12. python中valueerror怎么改_Python:ValueError:使用序列设置数组元素
  13. 2021-05-14
  14. 使用python给微信推送信息(一)
  15. 高数篇:06零点问题与微分不等式
  16. 微信开放平台注册和添加应用操作指南
  17. 量化投资中常用python代码分析(一)
  18. STM32F4 CAN总线通信资料参考,提供源码参考快速上手CAN总线通信
  19. 【开发教程3】AI语音人脸识别(会议记录仪/人脸打卡机)-CC3200简介
  20. 《 指数基金投资指南 》by 银行螺丝钉 - 笔记 - 4 - 第一部分

热门文章

  1. android管理自启动,Android自启动管理原理
  2. 大学生变身建筑工人:在家隔离的美国学生们,正在Minecraft中复现一座座大学校园...
  3. 华为liteos内存管理源码以及架构分析
  4. M.2、mSATA、NGFF、miniPCI-e接口引脚定义
  5. 用java计算某年某月的天数
  6. 有效管理自己知识,多总结和分享——2018七月份的尾巴
  7. 30岁的测试工程师,青春饭还能吃吗?
  8. 3个月疫情倒闭了近90000家企业,为什么互联网公司每天都在招人?招聘一个程序员要多少成本
  9. Redis源码剖析和注释(二十四)--- Redis Sentinel实现(哨兵操作的深入剖析)
  10. conda使用清华源解决pytorch安装过慢问题5分钟安装成功!!!!!!!