cached地址和uncached地址的区别
来源:互联网 发布:玛格丽特古缇耶 知乎 编辑:程序博客网 时间:2024/05/18 11:16
cached地址和uncached地址的区别是,对cached地址的访问是委托给CPU进行的,也就是说你的操作到底是提交给真正的外设或内存,还是转到CPU缓存,是由CPU决定的。CPU有一套缓存策略来决定什么时候从缓存中读取数据,什么时候同步缓存。对unchached地址的访问是告诉CPU忽略缓存,访问操作直接反映到外设或内存上。 对于IO设备一定要用uncached地址访问,是因为你的IO输出操作肯定是希望立即反映到IO设备上,不希望让CPU缓存你的操作;另一方面,IO设备的状态是独立于CPU的,也就是说IO口状态的改变CPU是不知道,这样就导致缓存和外设的内容不一致,你从IO设备读取数据时,肯定是希望直接读取IO设备的当前状态,而不是CPU缓存的过期值。 一般只有对主内存的访问才用cached地址,因为内存里的数据一般是通过CPU来改的,它不会自己变,所以CPU知道什么时候可以用缓存代替内存,什么时候应该同步。当然一个重要的例外是DMA,DMA显然也会不通过CPU而改变内存数据。也就是说,DMA在内存和内存之间,或者内存和外设之间搬运数据时,也会导致缓存和内存数据的不一致。这个不一致可以由硬件方法或软件方法解决,硬件方法是说DMA搬运数据时自动通知CPU把相关缓存设为无效,软件方法是程序员要在启动DMA前自己清缓存。
转自CSDN的帖子。
- cached地址和uncached地址的区别
- cached地址和uncached地址的区别
- cached地址和uncached地址的区别
- 关于 Cached Physical Memory 和 Uncached Physical Memory
- MAC地址和IP地址的区别
- MAC地址和IP地址的区别
- 逻辑地址、线性地址、物理地址和虚拟地址的区别
- 逻辑地址、线性地址、物理地址和虚拟地址的区别
- 指针和地址的区别
- Linux Buffers和Cached的区别
- Linux Buffers和Cached的区别
- Linux Kernel: buffers和cached的区别
- Win CE/Mobile Physical/Virtual cached/uncached
- IP地址和MAC地址的区别与联系
- 内核逻辑地址和内核虚拟地址的区别
- MAC地址和IP地址的区别与联系
- 网关IP地址和IP地址的区别
- 物理地址、虚拟地址和逻辑地址之间的区别
- 1. Debug 和 Release 编译方式的本质区别
- 重新配置notes客户端
- Linux 时间同步 ntpd
- 用LotusScript编写导出Excel参考实例
- 程序员进阶
- cached地址和uncached地址的区别
- update replace语句的使用
- RTF域在b/s下的一些使用技巧
- 小卖家网店推广经验谈
- C#中用SYSTEM.XML读写XML说明与代码
- 电脑小故障
- json.jar下载
- 使用google在线备份通讯录
- VMWARE的三种模式学习