读后感:ARM Cortex-M3处理器简介

[复制链接]
 楼主| dld2 发表于 2008-1-23 16:17 | 显示全部楼层 |阅读模式
原文链接:http://www.zlgmcu.com/luminary/Stellaris/ARM-Cortex-M3.pdf<br /><br />首先谈谈我对这个系列先入为主的感觉。<br />Cortex-M3是ARM7的升级版本。<br />个人认为:ARM7本身并不是完全针对MCU来设计的,但是众多芯片厂家以ARM7为内核做了很多32位MCU芯片。例如Atmel和NXP的ARM7系列。Cortex-M3是真正针对MCU应用来设计的,这一点在功能取舍和性能偏向上得到反映。<br /><br />那么与ARM7相比较,Cortex-M3有哪些区别和特点呢?<br /><br />加速设计:<br />哈佛结构替代ARM7的冯.诺伊曼结构。<br />&nbsp;&nbsp;&nbsp;&nbsp;哈佛结构就是指令和数据总线分开。<br />&nbsp;&nbsp;&nbsp;&nbsp;这样取指令和取数据可以同时进行。<br />&nbsp;&nbsp;&nbsp;&nbsp;很适合将指令放在片内FLASH,将数据放在片内SRAM的MCU结构。<br />在ARM7的3级流水线之上增加了分支预测。<br />&nbsp;&nbsp;&nbsp;&nbsp;减少了程序跳转时流水线被打断的时间消耗。<br />ALU支持硬件乘法和硬件除法。数学计算能力增强。<br />&nbsp;&nbsp;&nbsp;&nbsp;单周期32位乘法。<br />Bit-Band技术:<br />&nbsp;&nbsp;&nbsp;&nbsp;简单地说,就是增强了位操作性能。<br />&nbsp;&nbsp;&nbsp;&nbsp;SRAM中有专门的Bit-Band区域,可以按位进行寻址(使用别名地址)。<br />&nbsp;&nbsp;&nbsp;&nbsp;而且,这样的位操作是原子操作。这在实现互斥功能时有用。<br />&nbsp;&nbsp;&nbsp;&nbsp;一些DSP运算专用的位操作指令,比如bit翻转。<br /><br />节省存储器使用量的技术:<br />&nbsp;&nbsp;&nbsp;&nbsp;位寻址是可以节省bool型变量的存储器使用的。<br />&nbsp;&nbsp;&nbsp;&nbsp;ARM7的short变量要16位对齐、int变量要32位对齐。Cortex-M3不用对齐。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个问题,一般看法是,对齐可以简化设计。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;个人认为这个好处有限。<br />&nbsp;&nbsp;&nbsp;&nbsp;指令集的优化。现在叫Thumb-2了。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ARM7有两种指令集:ARM和Thumb,两种指令模式可以切换。个人感觉比较怪。<br /><br />处理器模式的简化:<br />&nbsp;&nbsp;&nbsp;&nbsp;我们知道ARM7有很多种处理器模式,目的主要应该是支持复杂的操作系统。<br />&nbsp;&nbsp;&nbsp;&nbsp;Cortex-M3的处理器模式现在有两个:Thread模式和handler模式。<br />&nbsp;&nbsp;&nbsp;&nbsp;Thread模式相当于用户模式了,有两种访问方式:有特权方式和无特权方式。<br /><br />结构区别:<br />&nbsp;&nbsp;&nbsp;&nbsp;ARM7是个纯内核,中断控制器和存储器接口是芯片厂家扩展的。<br />&nbsp;&nbsp;&nbsp;&nbsp;Cortex-M3包含了中断控制器(NVIC)和存储器接口单元。当然,在结构上仍然可以看作核心和外围两个部分。<br /><br />最最重要的改变:中断处理<br />&nbsp;&nbsp;&nbsp;&nbsp;ARM7只有两个中断请求信号:IRQ和FIQ。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对多个外部中断请求的支持是通过不属于ARM7的外部的中断控制器实现的。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不直接支持基于优先级的中断抢占。<br />&nbsp;&nbsp;&nbsp;&nbsp;Cortex-M3的中断控制器叫NVIC,是Cortex-M3的一个完整的部分。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;可以支持一个NMI和32个物理中断。可抢占,有优先级。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;中断向量表可重定位。<br />&nbsp;&nbsp;&nbsp;&nbsp;中断处理时的寄存器保护采用基于堆栈的方式,在响应中断和退出中断时,硬件自动对寄存器进行压栈和出栈。<br />&nbsp;&nbsp;&nbsp;&nbsp;在连续处理两个中断时,通过末尾连锁(tail_chaining)技术,减少压栈和出栈的操作。<br />&nbsp;&nbsp;&nbsp;&nbsp;所以,中断响应的延时显著减少了。这个对控制系统来说很重要。<br />&nbsp;&nbsp;&nbsp;&nbsp;当然,增加复杂性容易出BUG。有待观察。<br /><br />存储器保护单元MPU:<br />&nbsp;&nbsp;&nbsp;&nbsp;可支持操作系统对进程空间的保护。<br />&nbsp;&nbsp;&nbsp;&nbsp;个人对此持保留态度。<br />关于操作系统:<br />&nbsp;&nbsp;&nbsp;&nbsp;个人认为,linux和wince在这个处理器上是无法运行的。这是它的产品定位。<br />&nbsp;&nbsp;&nbsp;&nbsp;其它喜欢在扁平(flat)内存模式下运行的RTOS,要看怎么移植了。未必能充分使用Cortex-M3的特性。<br /><br />总线接口:<br />&nbsp;&nbsp;&nbsp;&nbsp;有说法它目前不支持外部存储器接口。这个好象有点严重。待确认。<br /><br />有了新架构的处理器,就看开发环境、调试工具、操作系统对它的支持了。<br /><br /><br />最后,俺才疏学浅,又喜欢望文生义。有错误大家指出或一笑吧,谢谢。
 楼主| dld2 发表于 2008-1-23 16:24 | 显示全部楼层

沙发自己坐

  
machunshui 发表于 2008-1-23 16:35 | 显示全部楼层

学习

学习.<br /><br />在响应中断和退出中断时,硬件自动对寄存器进行压栈和出栈,<br />不错,<br />会大大的加快中断响应速度。<br /><br />位操作也很好.
lelee007 发表于 2008-1-23 20:07 | 显示全部楼层

这个应该能撼动51了吧

哈哈,期待<br />不过老是当单片机或者一直玩单片机感觉没什么意思
mohanwei 发表于 2008-1-23 20:23 | 显示全部楼层

不同的应用,要求是不一样的,撼动51还远远谈不上

  
香水城 发表于 2008-1-23 20:40 | 显示全部楼层

楼主说的不错,值得关注,顶!

说的不错,但不全对;不过对推广这个新的内核是非常有益的。
hotpower 发表于 2008-1-24 08:15 | 显示全部楼层

哈哈~~俺被震撼彻底地放弃了51~~~

  
 楼主| dld2 发表于 2008-1-24 08:23 | 显示全部楼层

香大侠,如果有硬伤还请指出

俺也怕误导观众。<br /><br />谢谢大家的支持了。看了更详细的资料后俺会继续补充。
香水城 发表于 2008-1-24 08:37 | 显示全部楼层

回8楼:没有原则性的错误

有些需要使用中才能体会出来,有些东西还是让事实说话比较好,哈哈~~~<br /><br /><hr>做个小广告:STM32是目前少有的带Cortex-M3内核的MCU之一,欢迎各位试用评估。
zlgmcu 发表于 2008-1-24 10:13 | 显示全部楼层

这幅表格最能说明问题

<img src="http://bbs.21ic.com/upfiles/img/200712/200712219230789.gif"> <br /> 相关链接:<a href='http://www.zlgmcu.com/LUMINARY/Stellaris.asp'>http://www.zlgmcu.com/LUMINARY/Stellaris.asp</a>
群星2008 发表于 2008-1-24 10:38 | 显示全部楼层

看到了吧:《ARM Cortex-M3处理器简介》(中文)还是老周翻译的

《ARM&nbsp;Cortex-M3处理器简介》英文原文是ARM公司撰写的。目前做Cortex-M3的有Luminary、ST等公司。但上baidu/google搜搜,发现只有老周把这篇**及时地翻译成中文,这足以证明老周的推广实力!
wlq_9 发表于 2008-1-24 11:06 | 显示全部楼层

11楼的人

有点EX.
qjy_dali 发表于 2008-1-25 13:29 | 显示全部楼层

到时候我一定要跑OS的,这样以后开发就更容易了,哈哈

  
平常人 发表于 2008-1-25 16:00 | 显示全部楼层

哈哈,11楼的言外之意是。。。。

“我整理翻译了这张表格,我比老周更有推广实力。”
dandywang 发表于 2008-1-28 09:49 | 显示全部楼层

呵呵,11楼和老周应该是一家的吧

据说STM32正在免费送开发板,有没有这事?
ruraliter 发表于 2008-1-28 12:28 | 显示全部楼层

有点意思

考虑移植一下来看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

74

主题

2442

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部