|
发表于 2014-4-18 21:40:40
|
显示全部楼层
51是CISC的指令系统, 设计理念有根本区别.
不过不管是51还是ARM, 非关键场合还是交给C编译器吧, 特别是ARM这种RISC.
(我反而觉得ARM的指令集难用呢, 加载个32位立即数还要4条指令, 比x86弱暴了)
51, PIC, Cortex-M这种是一个档次的, CPU非常简单, 都是顺序发射的流水线 (经典的51还不是), 没有缓存和MMU, 重在成本低功耗, 谈不上性能 (DMIPS在1点几那个样子)
A8 A9那些, 都是一个CPU加上l1 l2 i-cache/d-cache, 都有MMU TLB, 现代点的(比如A9)是乱序的, 还有浮点和SIMD协处理器, 这种是和x86之类的是一个档次.
"即便是相同的时钟速率,32位机的处理一些数据的速度也要快于8位机,如一个32 位的加法运算,8位机至少需要4个周期,而32位机只需要一个周期即可完成。"
这和几位有毛关系. ARM快是因为都用了流水线, 经典的51不是. 一个指令是要不要做成单周期也是要有考量的, 一味追求“单周期”, 导致过长的组合逻辑, 制约的最大频率, 反而会降低整体性能.
"ARM的位 操作是通过移位,与或等操作之后实现的,而51单片机则又位寻址空间,是真正的位操作"
CM3 CM4都是支持bit-band alias的, 希望不要胡诌.
我一直觉得, 学了CM3 CM4, 还是自称"单片机工程师"比较号, 别动不动ARM ARM. |
|