dmb for data cache maintenance

Hi experts:

      AFAIK, DMB can only ensure relative orders.

      But in https://developer.arm.com/documentation/100941/0101/Barriers?lang=en,  it says:

      It also ensures that any explicit preceding data or unified cache maintenance operations have completed before any subsequent data accesses are executed.

    

     Does DMB can ensure this? I'am a little confused.

Parents
  • Hi ,

    So, the reason for saying that is due to the implemention of data cache maintenance operations.

    For D-cache clean and invalidate operations,We can speak DMB is sufficient(no need using DSB).

    I want to learn more about how dmb affects cpu's pipeline.

    for examle:

          memory access instr1;

          dmb;

          memory access instr2;

    Does it mean the cpu will issue instr1/2 in-order?

    Thank you very much.

Reply
  • Hi ,

    So, the reason for saying that is due to the implemention of data cache maintenance operations.

    For D-cache clean and invalidate operations,We can speak DMB is sufficient(no need using DSB).

    I want to learn more about how dmb affects cpu's pipeline.

    for examle:

          memory access instr1;

          dmb;

          memory access instr2;

    Does it mean the cpu will issue instr1/2 in-order?

    Thank you very much.

Children