打印
[ZLG-ARM]

请教周公 关于LPC213X的回写

[复制链接]
1736|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mklwcai|  楼主 | 2007-4-24 08:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
芯片使用手册上说 
“SRAM控制器包含一个回写缓冲区,它用于防止CPU在连续的写操作时停止运行。”

有一个问题想不通
写SRAM比指令慢,所以连续写操作会让CPU stall,
但是 回写缓冲器并没有提高写SRAM的速度,作为缓冲而且只有一个字节
那么 他是如何防止CPU Stall的呢?

相关帖子

沙发
lenglx| | 2007-4-25 14:00 | 只看该作者

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

就算是象memset()这样的函数,在2个写指令的中间,也有1条修改地址的指令.
这样,至少CPU有2个指令周期的缓冲余地.

何况大多少情况下,在2个写指令期间,要修改写数据,要修改写地址,CPU能获得的缓冲时间更多.

使用特权

评论回复
板凳
zlgARM| | 2007-4-25 22:47 | 只看该作者

mklwcai

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

个人意见。

使用特权

评论回复
地板
airwill| | 2007-4-26 08:32 | 只看该作者

TO: 2楼

如果象堆栈压栈一样的操作, 不就连续2个写指令在一起了吗

使用特权

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

本版积分规则

4

主题

16

帖子

0

粉丝