打印

单片机指令大比拼

[复制链接]
楼主: machunshui
手机看帖
扫描二维码
随时随地手机跟帖
121
machunshui|  楼主 | 2008-8-5 09:10 | 只看该作者 回帖奖励 |倒序浏览

欢迎说道理

欢迎说道理,说指令.

单片机选购的讨论,还是不要说了吧.

否则,帖子,就变味了.

使用特权

评论回复
122
machunshui|  楼主 | 2008-8-5 09:21 | 只看该作者

讨论单片机选型可以另开一个帖子

51的fans也不要见不到别人提51.

比较的也不止一家单片机.



指令系统不代表单片机综合性能的强弱,

说白了,比较比较,是交流学习,好玩.


还有一点,知道C常见的程序结构都怎么实现的,

了解指令和汇编多少对用C编程的有好处.


讨论单片机选型和应用用范围可以另开一个帖子.

使用特权

评论回复
123
machunshui|  楼主 | 2008-8-5 09:22 | 只看该作者

欢迎有网友说说AVR指令

欢迎有网友说说AVR指令

使用特权

评论回复
124
machunshui|  楼主 | 2008-8-5 09:53 | 只看该作者

关于乘除法指令的问题

"对现在的精简指令集单片机,虽然单clock,不过往往是把51的一条指令拆成几条来用,另外大部分不带乘除法运算,所以在涉及要乘除法的领域,要么用DSP,要么用51."


现在的单片机系列没有乘法器的不多,更多的是一个系列里面的某些品种带乘法,某些品种不带.

象msp430,avr是这样,pic18都带乘法器.


除法指令的带的不多,但是现在cortex M3,dspic,pic24系列都实现了乘法和除法指令.

还有就是DSP不一定都实现了除法指令或者硬件除法模块,象TI的某些DSP.

使用特权

评论回复
125
machunshui|  楼主 | 2008-8-5 10:42 | 只看该作者

关于精简指令

"对现在的精简指令集单片机,虽然单clock,不过往往是把51的一条指令拆成几条来用"


标准51的单周期指令又是如何实现的呢?

仔细看看51的单字节单周期指令会发现其后6个时钟是浪费的,是无效的读操作,

就是通过对单字节单周期指令的扩大,把部分双字节的指令变成单周期.(这类双字

节指令包含一次取操作数的操作).


精简指令集单片机51的一条指令拆成几条来用,实际是缩短了指令的时钟数目,

总体来说来讲是效率并不见得降低,

相反硬件实现应该比较简单,内核小,高频率下的功耗容易得到控制,

实际产品的综合性能应该是设计和实际制造能力的叠加.


单看51的指令甚至是很完美,但是51容易实现单时钟周期指令吗?

不容易!

C8051F所谓单周期51实际是把51的指令周期增大了,
许多51的单周期指令到了C8051F那里,成了多周期.
只不过是寄存器之间的操作是单周期的,(这类似于精简指令)
别的都变成了多个周期指令,
甚至是累加器读写存储器指令都是两周期.

C8051F并不是"不失真的"单时钟周期51.

使用特权

评论回复
126
ayb_ice| | 2008-8-5 11:14 | 只看该作者

c8051f實際比標準的51快約8位

算法是把所有的標準51指令周期全加起來再除以c8051f的指令周期,這個我算過的,就是這樣也遠比其它mcu快(pic,freescale,avr,430...),理論是最快可以達到標準51的12位倍...

使用特权

评论回复
127
machunshui|  楼主 | 2008-8-5 11:53 | 只看该作者

应该快不了8倍

"算法是把所有的標準51指令周期全加起來再除以c8051f的指令周期"

就指令的使用频繁程度来说,应该用常用的指令来度量,应该快不了8倍.

即使新华龙,给出的快8倍的图,也是指峰值.

使用特权

评论回复
128
aceice| | 2008-8-5 11:58 | 只看该作者

话说上次无聊给同事出了个题目

基于51的相控阵雷达系统

基于51的合成孔径雷达系统
--------------------------
当时就郁闷鸟.......^_^

使用特权

评论回复
129
machunshui|  楼主 | 2008-8-5 12:00 | 只看该作者

不讨论性能了

不讨论性能了,

实际选型还是首先确定自己要求的速度,再看外围功能模块的需求,flash,RAM容量,
抗干扰,功耗,价格等...

除此以外,很重要的一点是开发环境的熟悉程度.

普通应用性能其实只是不需要做太多考虑的一个方面.(5-20MIPS的单片机多的是,普通应用够了).

使用特权

评论回复
130
ayb_ice| | 2008-8-5 12:49 | 只看该作者

其實標準51的1mips性能已經夠用了

當然是針對51的產品了,我用c8051f一般跑4mhz...

使用特权

评论回复
131
machunshui|  楼主 | 2008-8-5 13:28 | 只看该作者

标准51的1MIPS

标准51的1MIPS还是太慢了一点.

使用特权

评论回复
132
zhiwei| | 2008-8-5 20:32 | 只看该作者

AVR的指令

长度是双字节、四直接,所以如果简单比较一下加减、逻辑判断的时候可能会处于劣势。AVR的优势在于单周期指令系统、多寄存器等。在大规模程序中寄存器多速度当然快,代码也简练。

使用特权

评论回复
133
machunshui|  楼主 | 2008-8-5 21:54 | 只看该作者

看了一下AVR指令

看了一下AVR指令.

感觉和msp430类似,效率比430稍微高一些.

寄存器之间的操作  1 指令周期
直接寻址的数据输入输出 3时钟周期
间接寻址的数据输入输出 2时钟周期

优点是多个通用寄存器都可以作为类似51的累加器参与运算,这和430是类似的.

32个通用寄存器(真多!)应该在比较复杂的大量数据运算时,有优势.


使用特权

评论回复
134
ayb_ice| | 2008-8-6 08:24 | 只看该作者

AVR根本沒有直接尋址功能

而在低端應用這很重要,比430差遠了,而且寄存器太多,沒有必要,保存起來費時費力....

使用特权

评论回复
135
machunshui|  楼主 | 2008-8-6 08:50 | 只看该作者

ayb_ice说话没有考证

ayb_ice说话没有考证.

google 一下 AVR 寻址,

只要看看书籍的目录就知道有没有直接寻址了.

或者看看:

LDS – Load Direct from Data Space
Description:
Loads one byte from the data space to a register. For parts with SRAM, the data space consists of the Register File, I/O
memory and internal SRAM (and external SRAM if applicable). For parts without SRAM, the data space consists of the register
file only. The EEPROM has a separate address space.
A 16-bit address must be supplied. Memory access is limited to the current data segment of 64K bytes. The LDS instruction
uses the RAMPD Register to access memory above 64K bytes. To access another data segment in devices with more than
64K bytes data space, the RAMPD in register in the I/O area has to be changed.
This instruction is not available in all devices. Refer to the device specific instruction set summary.
Operation:
(i) Rd ← (k)
Syntax: Operands: Program Counter:
(i) LDS Rd,k 0 ≤ d ≤ 31, 0 ≤ k ≤ 65535 PC ← PC + 2


使用特权

评论回复
136
wlq_9| | 2008-8-6 08:56 | 只看该作者

应该

把430不放入这里面比较,怎么说也是16位机.涉及到运算的时候有明显的优势,而且在大范围寻址的时候也有优势.
要比就拿8位机来比,怎么没人讲讲moto的单片机的?

使用特权

评论回复
137
yewuyi| | 2008-8-6 08:58 | 只看该作者

AVR的指令过于罗嗦,呵呵,用ASM写很伤脑筋

呵呵,这点和MSP430有的一拼,所以MSP430和AVR推广的时候都鼓励大家用C写代码。


使用特权

评论回复
138
dld2| | 2008-8-6 09:09 | 只看该作者

一知半解乱发议论

使用特权

评论回复
139
machunshui|  楼主 | 2008-8-6 09:12 | 只看该作者

欢迎高人,高屋建瓴的讲讲

欢迎高人,高屋建瓴的讲讲

使用特权

评论回复
140
machunshui|  楼主 | 2008-8-6 09:21 | 只看该作者

其实不是要比较单片机实际性能

其实不是要比较单片机实际性能,也不影响选型.

就是想看看指令特点,比较比较,是一个加深理解的好方法.

指令系统代替不了实际性能.

关于430的优点,大家都知道,当然在16位数据运算的时候比8位机厉害很多.

就是控制也不差,

毕竟搞到了8,16MIPS的速度,比pic16,pic18,51还是要厉害.

pic16,pic18,51,分别是5,10,<5 MIPS的速度.

avr的速度速度也不错.

使用特权

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

本版积分规则