找回密码
 立即注册
查看: 766|回复: 10

新版的 MPU32D 指令, 非常不错!!!

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-11-14 07:31:15 | 显示全部楼层 |阅读模式
新版的 STC8H手册已下载, 增加了对 MDU32D 指令的描述, 看后觉得非常不错!!!
下面是观后感, 个人观点, 仅供参考.

新版的 MDU32D 指令, 如应用于 C251, 那么, 单有 32位x32位=64位 指令, 就显得不够(仅能加速 双精度浮点乘法运算),
还要有 64位/32位=64位 指令配套, 这样, 才能同时加速 双精度浮点除法运算.

另外, 我对比 DPU32 和 MDU32D 指令, 发现 MDU32D 是 DPU32D 指令一个子集,
新版的 MDU32D 指令, 如应用于 51, 方便的话, 是否把 DPU32D 指令多搬 几条上去?  
比如:
交换指令 R0-R3 <--> R4-R7 , 可加快 单精度浮点加/减法运算的速度(单条指令, 可缩短 20多条指令执行周期, 超值!!!).
其他:
CMP比较指令, 可弥补 51比较指令的不足, 加快运算速度
对 R0-R3 清0指令, 可加快对 R3赋值 10, 用于 BCD,BIN 码之间的快速转换(用于乘/除法定数运算)
......

回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-04-29 08:28:25
已绑定手机

17

主题

446

回帖

1173

积分

金牌会员

积分
1173
发表于 2024-11-14 08:54:11 | 显示全部楼层
64位除法别想了
64位/32位=32位,这明显不行,结果可能是64位的,怎么办?

点评

应该是笔误,结果是64位最佳,使用方便,结果是32位商也能接受(英特尔PC指令标准格式除法),只是想要64位商,需做2次除法,慢一些,对以前来说,可大幅降低芯片的晶体管数量,现在无所谓了,不再乎这个门电路。  详情 回复 发表于 2024-11-14 10:38
可扩展位数使用,用于双精度浮点除法运算,或者64位长整数除法。  详情 回复 发表于 2024-11-14 10:33
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-11-14 10:33:23 | 显示全部楼层
bkeu*** 发表于 2024-11-14 08:54
64位除法别想了
64位/32位=32位,这明显不行,结果可能是64位的,怎么办?

可扩展位数使用,用于双精度浮点除法运算,或者64位长整数除法。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-11-14 10:38:41 | 显示全部楼层
bkeu*** 发表于 2024-11-14 08:54
64位除法别想了
64位/32位=32位,这明显不行,结果可能是64位的,怎么办?

应该是笔误,结果是64位最佳,使用方便,结果是32位商也能接受(英特尔PC指令标准格式除法),
只是想要64位商,需做2次除法,慢一些,对以前来说,可大幅降低芯片的晶体管数量,
现在无所谓了,不再乎这个门电路。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-04-29 08:28:25
已绑定手机

17

主题

446

回帖

1173

积分

金牌会员

积分
1173
发表于 2024-11-14 10:39:13 | 显示全部楼层
LAO*** 发表于 2024-11-14 10:33
可扩展位数使用,用于双精度浮点除法运算,或者64位长整数除法。

我的意思是不能64/32=32位,结果必须是至少64位,否则某些调用结果就是64位,这样会引起错误的

点评

PC机的CPU,标准除法就是这种格式标准,使用略为麻烦点(比没有要强),顶楼是笔误,我修改一下,这上面没啥讨论的意义。  详情 回复 发表于 2024-11-14 10:49
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-11-14 10:49:23 | 显示全部楼层
bkeu*** 发表于 2024-11-14 10:39
我的意思是不能64/32=32位,结果必须是至少64位,否则某些调用结果就是64位,这样会引起错误的 ...

PC机的CPU,标准除法就是这种格式标准,使用略为麻烦点(比没有要强),顶楼是笔误,我修改一下,这上面没啥讨论的意义。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-11-14 11:29:20 来自手机 | 显示全部楼层
新版的 32位x32位=64位乘法,可代替小除乘法,在51中,计算 单精度浮点数,做一次乘法即可,运算速度快,否则,需用16位的乘除法,组合运算数次,再累加后得出结果,速度慢,当然,这种组合算法,比常规的移加模拟算法,还是要快几倍。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-11-17 14:07:06 | 显示全部楼层
关于 32位 PC机(x86芯片, 64位/32位 --> 商32位,余数32位), 扩展到 64位/32位 除法算法。

非常简单,算法如下。

1.  计算x = x / y,其中x是64位,y是32位。
2.  x.l是x的低32位,x.h是x的高32位。
3.  h <- x.h / y
4.  x.h <- x.h % y
5.  x.l <- x / y
6.  x.h <- h
7.  return x

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

717

主题

1万

回帖

1万

积分

管理员

积分
15617
发表于 2024-11-17 15:06:16 | 显示全部楼层

Ai8052U-144K256-LQFP100/64/48, DSP 功能已验证完成
截图202411171500213763.jpg


截图202411171502384353.jpg


截图202411171503344017.jpg


截图202411171504016657.jpg


截图202411171504227328.jpg


截图202411171505036875.jpg


截图202411171505481646.jpg


截图202411171506134234.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:513
  • 最近打卡:2025-05-01 04:31:49

24

主题

515

回帖

986

积分

荣誉版主

积分
986
发表于 2024-11-17 20:31:20 | 显示全部楼层
DSP的32位乘除复合运算指令,很nice!

点评

确实不错, 可大幅提升 双数度浮点数 的运算速度  详情 回复 发表于 2024-11-18 03:35
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 08:52 , Processed in 0.208091 second(s), 114 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表