[ZLG-ARM] 请教周公 关于LPC213X的回写

[复制链接]
2504|3
 楼主| mklwcai 发表于 2007-4-24 08:36 | 显示全部楼层 |阅读模式
芯片使用手册上说&nbsp;<br />“SRAM控制器包含一个回写缓冲区,它用于防止CPU在连续的写操作时停止运行。”<br /><br />有一个问题想不通<br />写SRAM比指令慢,所以连续写操作会让CPU&nbsp;stall,<br />但是&nbsp;回写缓冲器并没有提高写SRAM的速度,作为缓冲而且只有一个字节<br />那么&nbsp;他是如何防止CPU&nbsp;Stall的呢?
lenglx 发表于 2007-4-25 14:00 | 显示全部楼层

正常情况下,不可能连续2个写指令在一起吧.

就算是象memset()这样的函数,在2个写指令的中间,也有1条修改地址的指令.<br />这样,至少CPU有2个指令周期的缓冲余地.<br /><br />何况大多少情况下,在2个写指令期间,要修改写数据,要修改写地址,CPU能获得的缓冲时间更多.
zlgARM 发表于 2007-4-25 22:47 | 显示全部楼层

mklwcai

内部RAM的访问速度极快的。<br />芯片设计者在设计芯片的时候,会考虑到CPU执行写操作指令和写内部RAM的同步问题的,务必让用户在访问内部RAM时无需考虑同步问题,这种问题也不应该让用户来考虑。回写缓冲区是解决同步问题的机制之一,应该还有其它机制保证同步(比如写一个数据到RAM,还包括写地址、然后才是写数据),但作为普通用户似乎不必深究了,毕竟资料欠缺,我们无法猜测NXP是如何解决这个问题的。<br /><br />个人意见。
airwill 发表于 2007-4-26 08:32 | 显示全部楼层

TO: 2楼

如果象堆栈压栈一样的操作,&nbsp;不就连续2个写指令在一起了吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

16

帖子

0

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