智能车制作

标题: 求解:8位MCU就一定比16位的慢吗??? [打印本页]

作者: zouyf12    时间: 2009-10-3 00:05
标题: 求解:8位MCU就一定比16位的慢吗???
RT, 从用51,AVR。转到用16位的xs128以来,我就一直有这样的疑问。。这个慢不慢,是指MCU的CPU的处理速度。都知道,处理16位的数据时,16位的速度要比8位快,这个是没有争议的。。但是,从我做车,写的程序看,大多数的变量,包括AD数据,都是8位的,这我就不惊要问一下,16位的和8位的CPU处理8位的数据上,有区别吗?

另外,多问一下,HCS12执行代码的最小周期是多少?比如,51。就是晶振周期的12倍。
作者: whut_wj    时间: 2009-10-3 09:51
1 核不一样,你说呢?
2 看处理速度,1看指令,2看CPU频率。寄存器8位和16位关系不大
3 16位上的资源多,最直观的,你可以找到一个8位的有112PIN的吗
HCS12执行代码最小周期是总线的2倍(记得是),
51的晶振周期的12倍,是出了名的效率低的。指令也不是精简指令集。
你们用的XS128,应该是精简指令集和常规指令结合的一个芯片。
作者: zouyf12    时间: 2009-10-3 10:33
恩,这样说基本上明白了, 其实我也基本理解,8位机本来就是对低端的,面向价格低廉的项目,所以,没有必要把资源做的很多。不是8位的不能有很多的资源,是因为没有必要给8位机配置那么多的资源。同样,由于价格的原因,也没有必要用高端的工艺,把8位的CPU的频率做的很高。
     应该是这样理解吧。
其实,我个人是比较喜欢用AVR的,特别是看到有个老外用这个来采集OV6620的数据。
作者: peilet    时间: 2009-10-5 19:56
是这样的。8位和16位是有梯度的,能用8位就可以不用16位。一些智能卡都还在用8051,有些电池充电器甚至还在使用4位MCU。

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

作者: samanthazl    时间: 2010-4-8 20:46
回复 2# whut_wj


   纠正下, 指令执行最小周期应该就是总线周期!!!
作者: zouyf12    时间: 2010-4-9 23:46
你确定?? 40M的总线就有40MIPS的速度? 也就是如果执行NOP指令的话,延迟的时间就是一个总线的周期???
作者: 过去时石头    时间: 2010-4-10 22:56
从我使用两种单片机的效果来看,其实单片机性能差距并不体现在单片机本身,而是使用单片机的人。我们学校有个队用的是DG128,另一个队用的是XS128,结果是用DG128的那个对速度明显快很多。关键是我们能不能充分利用单片机资源以及程序与自己的硬件的完美结合!
作者: kangluoyi    时间: 2010-4-10 23:23
这不一定  如果你16位的用得不好  可能会比8位还差
作者: zouyf12    时间: 2010-4-11 23:47
本帖最后由 zouyf12 于 2010-4-11 23:48 编辑

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





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




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2