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

AMBA3 AXI - Exclusive access - 04/16/2015

In document on AXI3:

"The exclusive access monitor records the address and ARID value of any exclusive read

operation. Then it monitors that location until either a write occurs to that location or

until another exclusive read with the same ARID value resets the monitor to a different

address."

I have an example.

I have 2 Master and 2 bit ID per master. (out of order data & out standing address support)

M0 have master number is 0.

M1 have master number is 1.

When M0 is selected by the Arbiter, then M0 issue exclusive read to S0 with start address is 16h0000.

And then M1 is selected by the Arbiter, then M1 issue exclusive read to S0 with start address is 16h0000.

In two cases above, 2 exclusive read with same address is 16h0000 but different ARID.

What will happen with the monitor in my example???

After that, I assume that M1 issue exclusive write before M0.

What will S0 response to M0 and M1???

Best regards,

** Cao Phi

Parents
  • Hi yasuhikokoumoto,

    your answer is however different from in another thread AXI 3/AXI 4 Exclusive Access (thread 2600: AXI 3/AXI 4 exclusive access).

    The first-come-first-served principle what you explained is applied to the exclusive reads. According to the explanation by mharnisch in Thread 2600, this is applied to exclusive writes. And I am for mharnisch's opinion.

    My understanding is for both exclusive reads, S0 should send back EXOKAY. If it sends OKAY to M1, M1 would consider S0 as a slave which does not support exclusive at all.

    When M1 sends the exclusive write before M0, it should get EXOKAY and the address is not monitored anymore. Later M0 will be get OKAY as response.

    I think "First-come-first-served" makes more sense for exclusive writes, because the basic idea of the mutual execution is to ensure that the address is not modified by others before the current master writes it. It does not matter which one first writes the address. What do you think?

    But what confuses me in the specification, is the purpose of AWID in the exclusive write. It seems to be redundant, as the monitored address is unique enough for judging the written address is monitored or not.

    Please let me know if I understand it wrongly. Can you share your opinion?

    Thank you.

    Best regards

    Diandian

Reply
  • Hi yasuhikokoumoto,

    your answer is however different from in another thread AXI 3/AXI 4 Exclusive Access (thread 2600: AXI 3/AXI 4 exclusive access).

    The first-come-first-served principle what you explained is applied to the exclusive reads. According to the explanation by mharnisch in Thread 2600, this is applied to exclusive writes. And I am for mharnisch's opinion.

    My understanding is for both exclusive reads, S0 should send back EXOKAY. If it sends OKAY to M1, M1 would consider S0 as a slave which does not support exclusive at all.

    When M1 sends the exclusive write before M0, it should get EXOKAY and the address is not monitored anymore. Later M0 will be get OKAY as response.

    I think "First-come-first-served" makes more sense for exclusive writes, because the basic idea of the mutual execution is to ensure that the address is not modified by others before the current master writes it. It does not matter which one first writes the address. What do you think?

    But what confuses me in the specification, is the purpose of AWID in the exclusive write. It seems to be redundant, as the monitored address is unique enough for judging the written address is monitored or not.

    Please let me know if I understand it wrongly. Can you share your opinion?

    Thank you.

    Best regards

    Diandian

Children