主题 : 请教!一个arm920t缓存的问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 50500
精华: 0
发帖: 1
金钱: 5 两
威望: 1 点
综合积分: 2 分
注册时间: 2011-06-23
最后登录: 2017-09-13
楼主  发表于: 2011-06-23 08:37

 请教!一个arm920t缓存的问题

arm的io、内存是统一编址的,io地址的内容是易变的,不应该被cache缓存的,内存为了提高效率,应该被缓存的,我的问题是cpu怎样区分io、内存地址的,以便被缓存或不被缓存?当开启mmu时,情况又怎样?
级别: 新手上路
UID: 39770
精华: 1
发帖: 32
金钱: 220 两
威望: 44 点
综合积分: 84 分
注册时间: 2011-03-12
最后登录: 2014-11-04
1楼  发表于: 2011-07-01 11:59
缓存开启与关闭是程序控制的,要开启缓存机制就要开启MMU,而开启MMU就要设置相应的页表,某一段内存(或者IO空间)是否缓存就是在该页表的对应页表项里面设置的,页表项中的有一个B位和C位,其中C位就是cache的开关位,想进一步了解可以看看MMU页表相关的类容。