我编写了一个测试代码,如果向同一个地址写入数据不进行回写不会产生一致性问题,但是在对这块地址进行了一次读操作之后在对这块地址进行写操作则会出现一致性问题。
我想知道问什么一直写是不会出现一致性问题,而读一次之后则会产生一致性问题。
望不吝赐教
Andy Yin1:
你用的是哪款芯片?
主要取决于cache的属性,如C66x L1 cache都是read-allocate,即只有在read miss的时候才能经过cache,在write miss时是直接写回memory;L2 cache是read and write allocate,即在read and write miss时都会经过cache。
你所谓的cache一致性问题是啥问题?只有当多个master去操作同一块cacheable memory时才可能需要维护cache一致性。