请教一个Cache的问题
时间:10-02
整理:3721RD
点击:
小弟目前正在研究Cache相关的东西,遇到一个问题想请教一下各位大侠。假如内核要向外设读取数据,比如向UART的接收寄存器读取数据或者向一个I/O口读取数据。第一次读取的时候,cache不会命中,此时内核直接读取外设的数据,并把该数据写入到cache内;但是如果再次读取的时候,cache里存储的是一个上一刻的值(过时的值),而外设中的值是一个新值,这种情况应该怎么避免呢?或者有什么机制可以避免这种情况呢?
cache可以设置某些地址段使用cache,有些地址段不使用cache的。
你把UART的地址段设置为不使用cache好了。
怎么配置的忘记了,得查查ARM的说明文档
研究下cache一致性问题吧,这个得从硬件机制上保证,不然很容易出错,觉得这是设计的问题,一般外设更新时有时得同时更新cache里的值或者无效里面的值
