可以在cache空间中访问外部硬件的寄存器么?为什么
这个问题要看cache空间是什么意思,在什么状态下。如果cache空间已经被初始化了并且作为了cahe使用,那是不可以的。
如果cache空间没有被作为cache使用,只是作为普通的内存空间使用,那就可以。
外部硬件寄存器的值是会经常变化的。当第一次把数据从外部硬件寄存器读入到cache后,如果外部硬件寄存器的值在此时发生了变化,导致cpu从cache中读取的数值不正确。
可不可以访问外部硬件的寄存器和在不在cache里没有任何关系,因为cache对用户是透明的。用户感觉不到cathe的存在,一般情况下也无法控制cathe对代码或数据的缓冲存储。硬件在cathe替换的时候会检查cathe和内存的一致性,也就是说如果cathe的内容变了,在cathe内容替换的的时候会自动更新内存。