AXI3 - multiple outstanding / out-of-order

yy_engineer·2026년 4월 27일

AMBA

목록 보기
2/2

Transaction ID

  • 각 트랜잭션 채널은 자체적인 transaction ID를 가진다.
    (WID 신호는 AXI3에서만 존재)

Write Channel (ID)


Read Channel (ID)


Transaction order

마스터는 AWID/ARID를 사용해 ordering 요구사항을 나타낸다.

  • 서로 다른 마스터에서 발생한 트랜잭션 간에는 ordering 제한이 없다.
  • 동일한 마스터에서 발생한 서로 다른 ID 값을 가진 트랜잭션은 ordering 제한이 없다.
  • 동일한 ARID를 가지는 트랜잭션은 마스터가 주소를 발행한 순서대로 처리 되어야 한다.
  • 동일한 AWID를 가지는 트랜잭션은 마스터가 주소를 발행한 순서대로 처리 되어야 한다.
  • read/write 트랜잭션은 서로 ordering dependency가 없다.
    (같은 ID값을 가진다해도 서로 독립적으로 완료될 수 있다.)

Read ordering


[Master/Slave]

  • 동일한 ARID 값을 가진 트랜잭션 데이터는 주소발행 순서대로 도착(반환)해야 한다.
  • 서로 다른 ARID값을 가진 트랜잭션 데이터는 어느순서로든 도착(반환)가능하다.
  • 서로 다른 ARID 값을 가진 트랜잭션 데이터는 interleave 될 수 있다.
  • 반환되는 RID값은 ARID 값과 일치해야 한다.
  • read data ordering depth는 슬레이브 내부에서 재정렬될 수 있는 보류 중인 주소의 갯수
    (read data reordering depth = 1이면, 모든 트랜잭션을 순서대로 처리하는 슬레이브)
    => 이는, 슬레이브 설계자가 지정해야하는 정적 값

interleave (사전적 의미 : ~사이에 끼워 넣다)
: 서로 다른 A*ID 값을 가진 데이터들은 섞여서 전달 될 수 있다는 의미


서로 다른 ID를 가진 트랜잭션은 어떤 순서로든 완료될 수 있음

  • A 트랜잭션이 먼저 시작되었음에도, B 트랜잭션이 먼저 완료됨

Write

  • A, C 트랜잭션은 ID가 같으므로, 발행된 순서대로 완료되어야 함 (A 완료 후, C 완료)
  • B 트랜잭션은 ID가 다르기 때문에 어느 시점에서든 완료될 수 있음

Read 채널에서 데이터를 읽을 때는 순서제한이 없음

  • A 트랜잭션이 먼저 수신
  • 하지만, B 트랜잭션을 먼저 처리

Read 트랜잭션 시, ARID 값이 서로 다르면 인터리빙 가능

  • 트랜잭션 A와 B에 대한 데이터가 교차(Interleave)되어 나타남
  • Interleave를 통해 빠르게 처리할 수 있는 것들을 우선적으로 처리하는 것이 Performance에는 좋다.

인터리빙 시 동일한 ID를 가진 트랜잭션의 경우, 주소발행 순서대로 반환되어야 함

  • 주소 발행순서는 A, B, C 순으로 이루어 짐
  • 트랜잭션 A와 C의 RID값이 동일
  • 트랜잭션 A보다 C가 먼저 요청 됨
  • 슬레이브는 트랜잭션 C에 대한 데이터를 반환하기 전에 A에 대한 RDATA 값을 모두 반환해야 함.

dd

profile
RTL Design Verification Engineer

0개의 댓글