AXI(Advanced eXtensible Interface) 프로토콜의 **Write Operation(쓰기 연산)**은 마스터에서 슬레이브로 데이터를 전송하는 과정입니다. 이 과정은 세 가지 주요 단계로 이루어지며, 각각의 단계에서 독립적인 채널을 사용합니다. AXI의 쓰기 연산은 파이프라인 방식으로 동작하여 성능을 높이며, 여러 단계가 동시에 병렬로 처리될 수 있습니다.
AXI Write Operation 단계
- Write Address Phase (쓰기 주소 단계)
- Write Data Phase (쓰기 데이터 단계)
- Write Response Phase (쓰기 응답 단계)
1. Write Address Phase (쓰기 주소 단계)
- 목적: 마스터가 슬레이브에게 데이터를 쓸 메모리 주소 및 관련 정보를 전송합니다.
- 채널: Write Address Channel (AW)
동작 순서
- 마스터는 쓰기 주소, 전송할 데이터의 길이, 크기 등의 정보를 AWADDR, AWLEN, AWSIZE 등의 신호를 통해 슬레이브로 전송합니다.
- 마스터는 AWVALID 신호를 활성화하여 쓰기 주소가 유효함을 알립니다.
- 슬레이브가 쓰기 주소를 받을 준비가 되면 AWREADY 신호를 활성화하여 마스터에게 수신 준비가 되었음을 알립니다.
주요 신호
- AWADDR: 쓰기할 메모리 주소.
- AWVALID: 쓰기 주소 정보가 유효함을 나타냄.
- AWREADY: 슬레이브가 주소 정보를 수신할 준비가 되었음을 나타냄.
이 단계에서 주소 전송이 완료되면, 마스터는 쓰기 데이터 전송을 시작할 수 있습니다. 쓰기 주소 단계와 쓰기 데이터 단계는 병렬로 동작할 수 있습니다, 즉 쓰기 데이터 전송 중에도 새로운 쓰기 주소를 보낼 수 있습니다.
2. Write Data Phase (쓰기 데이터 단계)
- 목적: 마스터가 슬레이브에게 실제로 전송할 데이터를 보냅니다.
- 채널: Write Data Channel (W)
동작 순서
- 마스터는 데이터를 WDATA 신호를 통해 전송하며, WSTRB 신호로 각 바이트의 유효성을 표시합니다.
- 데이터가 유효함을 나타내는 WVALID 신호가 활성화됩니다.
- 슬레이브가 데이터를 받을 준비가 되면 WREADY 신호를 활성화하여 데이터를 받을 준비가 되었음을 마스터에게 알립니다.
- 만약 버스트 모드로 여러 데이터를 연속 전송하는 경우, WLAST 신호가 활성화되면 해당 전송이 마지막 데이터임을 나타냅니다.
주요 신호
- WDATA: 전송할 실제 데이터.
- WSTRB: 각 바이트의 유효성을 나타내는 신호.
- WVALID: 전송할 데이터가 유효함을 나타냄.
- WREADY: 슬레이브가 데이터를 수신할 준비가 되었음을 나타냄.
- WLAST: 마지막 데이터 전송임을 나타냄.
이 과정에서 여러 데이터를 버스트 모드로 연속해서 전송할 수 있으며, 슬레이브는 각각의 데이터를 WREADY 신호를 통해 순차적으로 수신합니다.
3. Write Response Phase (쓰기 응답 단계)
- 목적: 슬레이브가 데이터를 성공적으로 수신했는지 여부를 마스터에게 알립니다.
- 채널: Write Response Channel (B)
동작 순서
- 슬레이브는 데이터 전송이 완료되면 BRESP 신호를 통해 쓰기 작업의 성공 또는 오류 상태를 마스터에게 전송합니다.
- 슬레이브는 응답이 유효함을 나타내는 BVALID 신호를 활성화하여 마스터에게 응답이 준비되었음을 알립니다.
- 마스터는 BREADY 신호를 활성화하여 응답을 수신할 준비가 되었음을 알립니다.
주요 신호
- BRESP: 쓰기 응답 코드(정상, 오류).
- BVALID: 응답 데이터가 유효함을 나타냄.
- BREADY: 마스터가 응답을 수신할 준비가 되었음을 나타냄.
AXI Write Operation의 병렬성
AXI 프로토콜은 각 채널이 독립적으로 동작하기 때문에, 쓰기 주소와 쓰기 데이터가 병렬로 전송될 수 있으며, 마스터는 여러 번의 쓰기 작업을 동시에 처리할 수 있습니다. 또한, 마스터는 슬레이브가 쓰기 응답을 보내기 전에 다른 쓰기 작업을 진행할 수 있어 고성능 시스템에서 유용하게 사용됩니다.

* https://adaptivesupport.amd.com/s/article/1053914?language=en_US
'SoC Protocol > AMBA' 카테고리의 다른 글
| 13. AXI Read Operation (0) | 2024.09.27 |
|---|---|
| 11. AXI Interface (0) | 2024.09.27 |
| 10. AXI Channel Dependencies (0) | 2024.09.27 |
| 09. AXI Channel (0) | 2024.09.27 |
| 08. AHB (HTRANS, HSIZE, HBURST) (0) | 2024.09.27 |