打印

单片机cpu里有乘法器吗

[复制链接]
3708|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
niufen556|  楼主 | 2019-10-5 14:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
mcu5i51| | 2019-10-5 17:37 | 只看该作者
都是对的,只是说的不是一个芯片

使用特权

评论回复
板凳
尚格小马哥| | 2019-10-5 18:48 | 只看该作者
都是对的,这个问题比较复杂,哥们你不用太纠结
51单片机不支持硬件乘法器,M0内核的支持硬件单周期乘法器,M3内核的支持硬件乘法器和硬件除法器,M4内核的支持乘除法和浮点。
然而这些硬件乘法器都是用加法器的原理做的
FPGA和带DSP的会有专用的硬件乘法器

顺便推广一下GD32 MCU,有M3 M4 M23 RISC-V内核的产品,有项目用到可以咨询代理商马R 13823341202微信同号

使用特权

评论回复
评论
xmar 2019-10-8 15:00 回复TA
Atera公司大多数FPGA不支持硬件CPU核,当然更没有硬件乘法器了,只有软核CPU。 
地板
niufen556|  楼主 | 2019-10-5 20:24 | 只看该作者
是不是专门的硬件乘法器要比用加法器多次加实现的要快一些?在性能和成本及实现难易程度上做了个取舍

使用特权

评论回复
5
dirtwillfly| | 2019-10-5 22:25 | 只看该作者
看具体的mcu型号吧。
有些mcu有专门的硬件乘法器,有些没有。
硬件乘法器也分很多种,包括16位的、32位的等等,还有支持浮点数的。

使用特权

评论回复
6
dog_xin| | 2019-10-6 08:21 | 只看该作者
尚格小马哥 发表于 2019-10-5 18:48
都是对的,这个问题比较复杂,哥们你不用太纠结
51单片机不支持硬件乘法器,M0内核的支持硬件单周期乘法器 ...

C8051FXXX,有的也带硬件乘法器的

使用特权

评论回复
7
xyz549040622| | 2019-10-6 08:26 | 只看该作者
有硬件乘法器在做乘法的时候肯定比没硬件乘法器的要快点的。

使用特权

评论回复
8
雪山飞狐D| | 2019-10-6 14:58 | 只看该作者
    M4带有单精度浮点

使用特权

评论回复
9
xcvista| | 2019-10-7 10:44 | 只看该作者
本帖最后由 xcvista 于 2019-10-7 21:28 编辑

这个要看具体什么单片机了。ARM 和 AVR 有乘法指令,自然需要一个乘法器来实现之;某些诸如 PIC 的单片机虽没有乘法指令,但有乘法器外设。不过乘法器有两种实现方式,一种是在乘法器内部用时序电路,用多个时钟周期靠多次加实现;还有一种则是靠组合逻辑,做成单周期的矩阵乘法器。一样是乘法,前者消耗的逻辑门少,硅片面积占用小,便宜,但计算慢;后者逻辑门多,大量占用硅片面积,造价昂贵,但计算快。

使用特权

评论回复
10
kingTek| | 2019-10-7 10:55 | 只看该作者
本帖最后由 kingTek 于 2019-10-7 10:57 编辑

屁克的没乘法指令,这是事实,说51的没乘法指令,那就无知了,多年51就是以硬件乘法指令著称的
mul  AB  指令是啥?不明白么

使用特权

评论回复
11
gx_huang| | 2019-10-7 10:57 | 只看该作者
硬件乘法器是怎么定义的?
为何说51没有硬件乘法器,标准51都支持乘法和除法指令的,无非速度慢一些而已。

使用特权

评论回复
12
coody| | 2019-10-7 15:37 | 只看该作者
说51没有乘法器的朋友是对51不了解。
51有乘法器、除法器,乘法指令是1字节x1字节结果为两个字节,除法指令是1字节除以1字节结果为商1字节和余数1字节。多字节乘法是用乘法指令和加法指令实现,多字节除法指令是用移位减实现。

STM32M0有乘法指令,但没有除法指令的。

使用特权

评论回复
13
xcvista| | 2019-10-7 21:28 | 只看该作者
kingTek 发表于 2019-10-7 10:55
屁克的没乘法指令,这是事实,说51的没乘法指令,那就无知了,多年51就是以硬件乘法指令著称的
mul  AB  指 ...

抱歉了,修改了。

使用特权

评论回复
14
xcvista| | 2019-10-7 21:33 | 只看该作者
gx_huang 发表于 2019-10-7 10:57
硬件乘法器是怎么定义的?
为何说51没有硬件乘法器,标准51都支持乘法和除法指令的,无非速度慢一些而已。 ...

我前面也说了乘法器有两种:移位乘法器和矩阵乘法器。移位乘法器是时序电路,靠的是一个移位寄存器,n 位乘法需要 n 个时钟周期,但结构简单体积小;矩阵乘法器是纯组合电路,只受传输延迟约束,基本都可以做到单周期的,但结构复杂体积比较大。

8051 的乘法指令我看到了,原帖已修改。

使用特权

评论回复
15
airwill| | 2019-10-7 22:05 | 只看该作者
MCS51 是有乘法器的, 并有除法器

使用特权

评论回复
16
kingTek| | 2019-10-8 08:42 | 只看该作者
本帖最后由 kingTek 于 2019-10-11 09:10 编辑

从本贴可以得证,为何本人一直强调51是基础,基本的各种运算的代码实现更是基础中的基础
51的设计思想比其他很多的cpu都要超前很多,intel不是浪得虚名,

51的毛病有一些,比如数据加工传输的瓶颈问题,都要经过Acc,等等,但其速度在一般的工业应用中绰绰有余了!
我看其他家的,很多都想改进51,升级51,可惜不少都改到马蹄子上了,

我用同档的屁克,比较跳转指令只能向前跳两步,乘法,除法指令都被取消,比起51来说,编写稍复杂的代码那痛苦简直难以言状,

屁克最搞笑之一的中端处理,必须得软件挨个判断一下是哪里发生了中断,有多少中断源就得延时多少周期,这就是最典型的新手低级设计思维综合征的表现,各位自己翻翻,我不必费时间细细解释了。

感觉很多设计芯片的家伙好像就没怎么写过代码,不知道什么是一线人员的核心关切,

再一个就是某些所谓的大品牌,所谓的大创新,说穿了忽悠的成分可能更多,忽悠不谙世事的小青年,忽悠银子,倾销一些不太先进到家的东西到中国来。


使用特权

评论回复
17
gx_huang| | 2019-10-8 09:44 | 只看该作者
上世纪80年代末90年代初,还是搞过好几个MCU的汇编的,Z80、8086、8051,对汇编的指令和技巧还是比较熟悉的。
无非以前的MCU,不定周期的指令,复杂的指令执行周期长一些而已,功能还是很全的,比RISC的要全多了。

使用特权

评论回复
评论
kingTek 2019-10-8 09:59 回复TA
gx_huang兄的话,算是找到知音,现在的小青年都不学汇编,怕苦怕难 
18
99520| | 2019-10-8 10:07 | 只看该作者
要区别一下 乘法指令和硬件乘法器,大多数的单片机可能都带乘法指令,带有独立硬件乘法器的较少

使用特权

评论回复
19
ayb_ice| | 2019-10-8 14:52 | 只看该作者
尚格小马哥 发表于 2019-10-5 18:48
都是对的,这个问题比较复杂,哥们你不用太纠结
51单片机不支持硬件乘法器,M0内核的支持硬件单周期乘法器 ...

谁告诉你51不支持硬件乘法器了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

117

帖子

1

粉丝