오늘은 맑음

AXI버스란? 본문

Processor

AXI버스란?

자전거 타는 구구 2017. 11. 12. 01:55
반응형

AXI(Advanced eXtensible Interface)

 : 다중 채널 버스로, 읽기/쓰기에 최적화 되어 있는 버스이다.

 

AXI 버스와 AHB버스의 가장 다른 점은 채널의 도입이다.

  • Read Address Channel
  • Write Address Channel
  • Read Data Channel
  • Write Data Channel
  • Write Response Channel
 AHB버스의 경우 위의 채널들이 버스로 구성되어 있어 독립적으로 작동할 수 없으나  AXI의 경우에는 채널이 도입되어 독립적으로 작동할 수있다.

 

 AHB버스의 경우 앞의 디바이스가 버스와 데이터 전송을 하고 있는 경우 후속 디바이스가 앞의 데이터 전송이 다 끝날 때 까지 기다려야 했다. 이는 저속디바이스가 데이터 전송중이라면 고속 디바이스가 데이터 전송을 위해 기다려야 하기 때문에 효율이 떨어졌다.

 하지만 AXI버스의 경우 채널의 도입으로 각자의 채널이 독립적으로 작동 할 수 있어 데이터를 지속적으로 전송할 수 있다.

 

 다음으로는 AXI버스의 데이터 전송방법에 대해 알아보자.

 

*********************************************************************

valid : 채널 상에서 유효한 data와 control information 사용 가능 여부

ready : 데이터가 수락 가능한지 여부

last : transaction에서 마지막 데이터 아이템의 전송을 의미

BRESP : transaction이 정상적으로 완료 되었다.

*********************************************************************

초록색은 master_to_slave 신호이고파란색 신호는 slave_to_master 신호이다.또한 clk는 rising edge에서 활성화 된다.

 

  • AR은 "Read Address" 
  • AW는 "writem Address". 
  • R과 W는 DATA에 대한 R/W

 

1. master가 slave에 데이터를 전송하는 방법이다.

  1. master가 slave에게 데이터를 보낼 때 T2에서와 같이 address와 control information을 전송한다. 이에 따라 slave는 ready신호를 통해 받을 준비가 되었다고 신호를 준다. 이 때 BREADY 시그널이 HIGH가 된다.
  2. ready신호가 master에게 전해지게 되면 데이터의 전송이 시작된다
  3. T9에서 보게 되면 데이터의 전송이 종료 되었으므로 WLAST의 값이 전송이 되었다.
  4. WLAST의 값을 받은 slave는 transaction이 완료 되었다는 의미의 BRESP신호를 보내게 되고 동시에 BREADY의 신호가 LOW가 된다.
 

2. slave가 master에게 데이터를 전송하는 방법이다.

  1. T0에서 control information(ARVALID)의 값이 HIGH가 되고 slave의 ARREADY의 값이 low로 바뀌는 순간 address를 전송하고 ARVALID의 값은 low가 된다.
  2. T3사이클을 보게 되면 RREADY가 HIGH를 유지하고 있는데 이는 master가 data를 읽을 준비가 되어 있다는 의미이다. T6에서 데이터를 전송하자 RREADY는 다시 low로 떨어진다. 
  3. T7에서 다시 RREADY는 HIGH가 되고 앞의 방법과 동일하게 데이터를 읽는다.
  4. T13에서는 RLAST의 값이 HIGH가 되어 slave의 데이터 전송이 종료 되었음을 알리고 RREADY는 low가 된다.

위의 그림은 A프로세서와 B프로세서가 동시에 데이터를 전송하는 모습을 보여준 그래프이다. A는 address를 전송해 주지만 data를 모두 전송하지 않은 상태에서 B의 address를 전송해 준다. 이 후 A의 data가 모두 전송이 된 후 B의 데이터가 이어서 전송이 되는 것을 볼 수 있다. 이와 같은 점이 AXI가 채널의 개념을 가짐으로 써 address채널과 data채널이 분리되어 갖는 장점이다.

 

위의 모든 read/write 동작은 모두 master에 의해 시작이 된다. 이는 모든 버스의 동작은 항상 master에 의해 시작 된다는 것을 알 수 있다. master가 아비터에게서 버스 사용 권한을 획득하여 valid signal과 address signal을 slave에게 보냄으로 써 버스의 동작이 실행된다고 볼 수 있다.

 

반응형

'Processor' 카테고리의 다른 글

Data Hazard/RAW, WAR, WAW  (1) 2019.02.19
SIMT 교착상태(deadlock), 기아(starvation)  (0) 2019.02.18
thread, warp 그리고 SIMT  (0) 2019.02.18
cash? cache? 캐시란 무엇인가  (1) 2019.02.18
ARM의 AMBA 종류  (2) 2017.11.05
Comments