本文主要是介绍【AMBA Bus ACE 总线11 -- ACE DVM(Distributed Virtual Memory)使用介绍】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- ACE DVM 使用背景
- DVM Transactions 类型和作用
- DVM 消息使用场景
- DVM 示例
- Sumamry
ACE DVM 使用背景
当 Cache maintenance 指令操作完以后,落实到总线上的时候,它会有一组 cache maintenance transaction
出来,这组 cache maintenance transaction
主要是对 Dcache
的操作。
Dcache 特点:MOSI 或者 MESI DCache 会被更新,因此它可以是 Dirty 可以是 clean,可以是 share,那么ICache 怎么办? ICache 理论上是 clean 的,因为它是个只读的,它就是从 Memory 中把指令读回来。但是如果由于某些原因 Memory 中的指令和 ICache 中的没有保持一致,比如 self-modify code
, 那么就要对 ICache 进行一个 maintenance 操作,对于 ICache 的操作,在 CPU 的 instruction指令中其实是有对应的 ICache 指令的。
当一个 CPU 将ICache
中的数据清掉进行维护的的时候,需要把这个事情broadcast出去,给其他的CPU或者Cluster,让其他CPU也知道数据已经换了,需要将当前ICache
中的数据清掉,这个过程就是通过DVM来完成的。
对于DVM 来说,TLB 是个大头,TLB 里面存的内容其实是 VA 到 PA 的属性和地址变换的映射关系,这些对应关系的源头是来自于CPU
这篇关于【AMBA Bus ACE 总线11 -- ACE DVM(Distributed Virtual Memory)使用介绍】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!