智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3399|回复: 8
打印 上一主题 下一主题

求解:8位MCU就一定比16位的慢吗???

[复制链接]

39

主题

593

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1694
威望
989
贡献
401
兑换币
86
注册时间
2008-12-13
在线时间
152 小时
跳转到指定楼层
1#
发表于 2009-10-3 00:05:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RT, 从用51,AVR。转到用16位的xs128以来,我就一直有这样的疑问。。这个慢不慢,是指MCU的CPU的处理速度。都知道,处理16位的数据时,16位的速度要比8位快,这个是没有争议的。。但是,从我做车,写的程序看,大多数的变量,包括AD数据,都是8位的,这我就不惊要问一下,16位的和8位的CPU处理8位的数据上,有区别吗?

另外,多问一下,HCS12执行代码的最小周期是多少?比如,51。就是晶振周期的12倍。

14

主题

929

帖子

1

精华

功勋会员

WJ

Rank: 10Rank: 10Rank: 10

积分
6304

特殊贡献奖章

威望
1456
贡献
4674
兑换币
17
注册时间
2008-4-6
在线时间
87 小时
2#
发表于 2009-10-3 09:51:47 | 只看该作者
1 核不一样,你说呢?
2 看处理速度,1看指令,2看CPU频率。寄存器8位和16位关系不大
3 16位上的资源多,最直观的,你可以找到一个8位的有112PIN的吗
HCS12执行代码最小周期是总线的2倍(记得是),
51的晶振周期的12倍,是出了名的效率低的。指令也不是精简指令集。
你们用的XS128,应该是精简指令集和常规指令结合的一个芯片。
回复 支持 反对

使用道具 举报

39

主题

593

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1694
威望
989
贡献
401
兑换币
86
注册时间
2008-12-13
在线时间
152 小时
3#
 楼主| 发表于 2009-10-3 10:33:03 | 只看该作者
恩,这样说基本上明白了, 其实我也基本理解,8位机本来就是对低端的,面向价格低廉的项目,所以,没有必要把资源做的很多。不是8位的不能有很多的资源,是因为没有必要给8位机配置那么多的资源。同样,由于价格的原因,也没有必要用高端的工艺,把8位的CPU的频率做的很高。
     应该是这样理解吧。
其实,我个人是比较喜欢用AVR的,特别是看到有个老外用这个来采集OV6620的数据。
回复 支持 反对

使用道具 举报

7

主题

262

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2478
威望
499
贡献
1803
兑换币
0
注册时间
2009-5-12
在线时间
88 小时
4#
发表于 2009-10-5 19:56:54 | 只看该作者
是这样的。8位和16位是有梯度的,能用8位就可以不用16位。一些智能卡都还在用8051,有些电池充电器甚至还在使用4位MCU。

频率 架构 指令集及其长度 寄存器长度和数量 cache 数据总线带宽 等等共同决定了CPU的速度
回复 支持 反对

使用道具 举报

1

主题

61

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
425
威望
332
贡献
51
兑换币
30
注册时间
2009-11-28
在线时间
21 小时
5#
发表于 2010-4-8 20:46:50 | 只看该作者
回复 2# whut_wj


   纠正下, 指令执行最小周期应该就是总线周期!!!
回复 支持 反对

使用道具 举报

39

主题

593

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1694
威望
989
贡献
401
兑换币
86
注册时间
2008-12-13
在线时间
152 小时
6#
 楼主| 发表于 2010-4-9 23:46:18 | 只看该作者
你确定?? 40M的总线就有40MIPS的速度? 也就是如果执行NOP指令的话,延迟的时间就是一个总线的周期???
回复 支持 反对

使用道具 举报

2

主题

47

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3669
威望
276
贡献
3355
兑换币
0
注册时间
2010-4-1
在线时间
19 小时
7#
发表于 2010-4-10 22:56:52 | 只看该作者
从我使用两种单片机的效果来看,其实单片机性能差距并不体现在单片机本身,而是使用单片机的人。我们学校有个队用的是DG128,另一个队用的是XS128,结果是用DG128的那个对速度明显快很多。关键是我们能不能充分利用单片机资源以及程序与自己的硬件的完美结合!
回复 支持 反对

使用道具 举报

2

主题

72

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
375
QQ
威望
302
贡献
53
兑换币
0
注册时间
2010-3-24
在线时间
10 小时
8#
发表于 2010-4-10 23:23:08 | 只看该作者
这不一定  如果你16位的用得不好  可能会比8位还差
回复 支持 反对

使用道具 举报

39

主题

593

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1694
威望
989
贡献
401
兑换币
86
注册时间
2008-12-13
在线时间
152 小时
9#
 楼主| 发表于 2010-4-11 23:47:36 | 只看该作者
本帖最后由 zouyf12 于 2010-4-11 23:48 编辑

其实,我是比较关心单纯的运算速度的,外设资源丰富不丰富先不谈,  单纯讲处理数据的速度,如处理一个8位的数字,  刚才看网上说,ARM7只有0.9MIPS  而AVR能有1MIPS ,不知道如果是单纯处理一个8位数的话,是不是后者多快一些。     还有,我记得很久以前看过一个文章说,XS128编程最好使用16位的变量,因为16位机处理16位比处理8位要快一点,不知道对不对。





其实,本人也就知道一些编程的皮毛,对于处理器的原理与构架之类的很模糊,所以问出的问题低档了点。哪位有空就给扫盲一下了
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-21 10:38 , Processed in 0.320661 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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