happem

从存储器映射的I/O取指

不同ARM的实现在存储器指令取指时会相当大的区别,因此强烈建议存储器映射的I/O位置只用于数据的装载和保存,不用与指令取指,任何依赖于从存储器映射I/O位置取指的系统设计都可能难以移植到将来的ARM实现。

2.    对存储器映射I/O数据访问:

一个指令序列在执行时,会在不同的点访问数据存储器,产生装载和保存访问的时序,如果这些装载和保存访问是正常的存储器位置,那么在它们访问相同的存储器位置时,只是执行交互操作,结果,对不同存储器位置保存和装载可以按照不同于指令的顺序执行,但不会改变最终的结果,这种改变存储器访问顺序的自由被存储器系统用来提高性能。

此外,对同一存储器位置的访问拥有其他可用提升性能的特性,其中包括:

1) 从相同的位置连续加载产生相同的结果。

2) 从一个位置执行加载操作,将返回最后保存到该位置的值。

3) 对某个数据规格的多次访问有时可合并成单个的更大规模的访问,例如,分别存储一个字所包含两个半字可合并成单个字的存储。

但如果存储器字、半字或字节访问的对象是存储器映射的I/O位置。一次访问会产生副作用,使后续访问改变成一个不同的地址。如果是这样,那么不同时间顺序的访问将会使代码序列产生不同的最终结果,因此访问存储器映射I/O位置时不能进行优化,它们的时间顺序绝对不能改变。http://www.lirenedu.org/index.php?ack=xinwen&id=1081 

posted on 2012-07-04 09:36 happem 阅读(1154) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理