The reason why a read response channel is not needed in 'read' is that if the slave doesn't send data, it can be considered that all the data has been sent. In cases where data might be interrupted, arrive out of order, or be interleaved — where the data momentarily pauses and then resumes — how does the master determine that the data has been completely sent?
https://developer.arm.com/documentation/102202/0300/Transfer-behavior-and-transaction-ordering
In this case, how does master know "C", "D" has been completed transfer from R channel without response?
Maybe Slave can transfer as the below:
Or: