Hi Folks,
We need a clarification on Read Data Interleaving on AXI4
Read Data Interleaving is supported in AXI4 and following is my understanding on Data Interleaving:
Multiple Read commands can be executed simultaneously and data interleaving is supported as long as all condition for ordering are followed.
I think data interleaving should not be done within a single burst. In other words, any single burst should contain data from single read command and no burst should contain data from multiple command.
I tried to confirm it but could not find a reference for it.
Can anyone confirm it or point me to a reference document for confirmation.
Thanks,
Amit
Hello Amit,
>Multiple Read commands can be executed simultaneously and data interleaving is
>supported as long as all condition for ordering are followed.
Yes, your understanding is correct.
Read data interleaving can be considered as:
- RDATA for different IDs can be returned out of order.
- RDATA for different IDs can be returned in an interleaved way.
- RDATA for the same ID must be returned in the same order as the AR commands.
Suppose the master has issued two AR commands:
AR1: INCR4, ID=x
AR2: INCR4, ID=y
In this case, since the two commands have different IDs, the RDATA beats (4 beats for each command, 8 in total) can come back completely out of order and interleaved. In other words, on each cycle, either RDATA(ID=x) or RDATA(ID=y) may be returned, and the master must be able to accept them.
Hi Xingguang,
Thanks for the reply but I still have some concern on last line of your reply.
Let me get a reconfirmation on mixing of two bursts.
There are two two read transactions issued by Master X and Y, each with 4 beat of single burst.
I agree to your point of X and Y can start in any order, but what I thought is that
Once and of the transaction start, it will complete before other transaction can begin. As both the transactions are of single burst.
It can be
Seq 1: X1 X2 X3 X4 Y1 Y2 Y3 Y4
or
Seq 2: Y1 Y2 Y3 Y4 X1 X2 X3 X4
but not
Seq 3: X1 Y1 X2 Y2 X3 X4 Y3 Y4
Where X1 and Y1 represents one beat of a single burst.
If you are suggesting that data can come in Seq 3, can you please point me to a reference for that.
>Seq 1: X1 X2 X3 X4 Y1 Y2 Y3 Y4
>or
>Seq 2: Y1 Y2 Y3 Y4 X1 X2 X3 X4
>but not
>Seq 3: X1 Y1 X2 Y2 X3 X4 Y3 Y4
>Where X1 and Y1 represents one beat of a single burst.
>If you are suggesting that data can come in Seq 3, can you please point me to a reference for that.
Seq 3 is possible.
Confirmation can be found in the AXI/ACE specification (ARM IHI 0022E):
Section A5.3.1
===============================================================
Data from read transactions with different ARID values can arrive in any order. Read
data of transactions with different ARID values can be interleaved.
Regards,
Xingguang
<<ARM IHI 0022E>> is available at:
ARM Information Center
--> AMBA
--> AMBA specifications
--> AMBA AXI and ACE specification
--> Issue E
You may need to register as an ARM user before downloading.
View all questions in Embedded forum