AXI protocol은 BUS가 아니라 point to point입니다.
APB와 같은 BUS는 모든 slave에 address, data를 뿌려주는 broadcasting방식이지만
AXI protocol은 다릅니다.
master와 slave가 통신을 하고 싶으면 해당 slave에 하나만 보낸다는 차이점이 있습니다. 그런 점에서 BUS가 아니라 point to point라고 하는 것 입니다.
단 그 역할은 interconnector가 합니다.
(interconnector : Master에서 interconnector를 통해 slave와 통신합니다. )
AXI는 위 그림과 같은 채널 5개를 가지고 있습니다.
AW : write할 주소 채널입니다.
W : write할 데이터 채널입니다.
B : write을 할 경우 그에 대한 응답 채널입니다.
AR : read할 주소 채널입니다.
R : 읽을 데이터 채널입니다.
이렇게 write, read할 독립적인 포트가 따로 따로 있습니다. 따라서 Master의 포트가 굉장히 많아집니다.
이렇게 분리된 채널을 사용함으로써 interface의 bandwidth를 최대화 할 수 있습니다.
이 말은 write을 할 때 read, read를 할 때 write도 할 수 있다는 뜻 입니다.
각 채널 AW, W ,B, AR, R에 대한 hand shake에 대한 소개입니다.
각 채널의 source에서 보내는 데이터가 유효하다는 valid신호를, destination에서는 받았다는 ready신호를 줍니다.
이 handshake는 동기 신호(rising edge의 clk에 맞추어 동작)입니다.
transfer와 transaction의 차이점
transfer는 single exchange of inofrmation : 한 채널에 대한 신호를 주고 받는 것이고
transaction은 모든 transfer를 말하는 것입니다.
위 그림처럼 각 채널에 valid신호와 ready신호가 있습니다.
채널 통신에 대해 VALID, READY 타이밍입니다.
보통 그림1과 그림2를 많이 사용합니다
그림2를 보면 READY가 먼저 나와있습니다. 이로 인해 그림 1보다 1CLK 더 빠르게 동작할 수 있습니다.
AXI FSM
Write의 전체적이 Flow입니다.
1. AW channel : CPU에서 transfer와 write신호가 들어오면 master는 다음 CLK에 address와 valid신호를 slave에게 줍니다. 1CLK 뒤에 slave에서 ready신호를 master에게 줍니다.
handshake가 일어난 후 IDLE 상태로 돌아갑니다.
2. W channel : 마찬가지로 CPU에서 transfer와 write신호가 들어오면 master는 다음 CLK에 address와 valid 신호를 slave에게 줍니다. 이후 slave에서 master로 ready신호를 줍니다.
그림에는 WREADY가 먼저 1로 올라갔지만 올라가는 타이밍은 위에서 언급한대로 설계방식마다 다릅니다.
AW channel에서 address가 들어왔다는 것은 write을 할 것이라는 기대를 할 수 있기에 ready를 미리 올라가 있어도 되는 것입니다.
Master에서 data와 valid 신호를 slave로 보냅니다. 이후 slave에서 ready신호를 보내서 handshake가 일어난 후 IDLE로 돌아갑니다.
handshake가 일어난 후 IDLE 상태로 돌아갑니다.
3. B channel : write가 되고 난후 그에 대한 응답입니다.
마찬가지로 그림에서는 BREADY가 먼저 1로 올라가 있습니다.
마찬가지로 handshake가 일어난 후 IDLE 상태로 돌아갑니다.
write flow는 정리하면 아래 그림과 같다고 할 수 있습니다.
1. AR channel : master에서 slave로 address신호와 valid 신호를 보내고 slave에서 ready신호를 Master에게 보냅니다.
2. R channel : 마찬가지로 ready신호가 먼저 올라오고 이후 RVALID가 1로 올라가면서 handshake를 합니다. 동시에
DATA를 읽고 RESPONSE를 MASTER에게 줍니다. handshake를 했으므로 이후 master, slave는 IDLE 상태로 가게 됩니다.
read flow는 아래 그림과 같습니다.
'컴퓨터구조' 카테고리의 다른 글
SPI Slave Interfac 설계, MicroBlaze (0) | 2025.05.20 |
---|---|
SPI 통신 특징 및 다른 통신(UART, I2C와의 비교 (0) | 2025.05.19 |
0~10까지 더하는 Dedicated Processor 설계하기 v2 (0) | 2025.04.24 |
메모리 매핑 (0) | 2025.04.19 |
0~10까지 더하는 Dedicated Processor 설계하기 (0) | 2025.04.09 |