This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

What is the reason to have been dropped the entire dcache invalidation?

Hi ARM experts,

I have just remembered that the entire dcache could not be invalidated by one instruction from ARMv7.

I would like to know the reason.

Can anyone answer this question?

Thank you and best regards,

Yasuhiko Koumoto.

Parents
  • I don't know but for the data cache what one would want normally is a clean and invalidate and the clean can take a long time - so the instruction can be interrupted and will restart from the beginning on ARMv6. Often there is no need to redo all the cache lines already done even if an interrupt fills some, and the problem only gets worse with larger caches. I'm not at all sure extra hardware could help much considering the time it takes to clear a line when needed and software might be able to do something intelligent about leaving parts of the cache alone. The whole business about allowing interrupts and restarting sounds to me like a bug waiting to manifest itself.

Reply
  • I don't know but for the data cache what one would want normally is a clean and invalidate and the clean can take a long time - so the instruction can be interrupted and will restart from the beginning on ARMv6. Often there is no need to redo all the cache lines already done even if an interrupt fills some, and the problem only gets worse with larger caches. I'm not at all sure extra hardware could help much considering the time it takes to clear a line when needed and software might be able to do something intelligent about leaving parts of the cache alone. The whole business about allowing interrupts and restarting sounds to me like a bug waiting to manifest itself.

Children