AXI(Advanced eXtensible Interface) 프로토콜에서 **Read Operation(읽기 연산)**은 마스터가 슬레이브로부터 데이터를 읽어오는 과정입니다. 이 과정도 두 가지 주요 단계로 이루어지며, 각각의 단계에서 독립적인 채널을 사용합니다. AXI의 읽기 연산은 파이프라인 방식으로 동작하여 주소 전송과 데이터 전송이 병렬로 처리될 수 있습니다.

AXI Read Operation 단계

  1. Read Address Phase (읽기 주소 단계)
  2. Read Data Phase (읽기 데이터 단계)

1. Read Address Phase (읽기 주소 단계)

  • 목적: 마스터가 슬레이브에게 읽어올 메모리 주소 및 관련 정보를 전송합니다.
  • 채널: Read Address Channel (AR)

동작 순서

  • 마스터는 읽고자 하는 메모리의 주소를 ARADDR 신호를 통해 슬레이브로 전송합니다. 이때 읽기 데이터의 길이, 크기 및 버스트 타입 등의 정보를 함께 전달할 수 있습니다.
  • 마스터는 ARVALID 신호를 활성화하여 주소 정보가 유효하다는 신호를 보냅니다.
  • 슬레이브가 주소 정보를 받을 준비가 되면 ARREADY 신호를 활성화하여 수신 준비가 되었음을 마스터에게 알립니다.
  • 주소 전송이 완료되면, 슬레이브는 해당 주소의 데이터를 준비하기 시작합니다.

주요 신호

  • ARADDR: 읽고자 하는 메모리의 주소.
  • ARLEN: 버스트 전송 시 전송할 데이터의 길이.
  • ARSIZE: 전송할 데이터의 크기 (예: 8비트, 16비트 등).
  • ARBURST: 버스트 모드일 때, 버스트 타입을 지정.
  • ARVALID: 읽기 주소가 유효함을 나타내는 신호.
  • ARREADY: 슬레이브가 읽기 주소를 받을 준비가 되었음을 나타내는 신호.

2. Read Data Phase (읽기 데이터 단계)

  • 목적: 슬레이브가 해당 메모리 주소에서 데이터를 준비하여 마스터에게 전달합니다.
  • 채널: Read Data Channel (R)

동작 순서

  • 슬레이브는 읽기 주소를 수신한 후 해당 주소의 데이터를 준비하여 RDATA 신호를 통해 마스터에게 전송합니다.
  • 슬레이브는 RVALID 신호를 활성화하여 데이터가 유효함을 나타냅니다.
  • 마스터는 RREADY 신호를 활성화하여 데이터를 받을 준비가 되었음을 알립니다.
  • 슬레이브는 버스트 모드로 여러 데이터를 전송할 수 있으며, RLAST 신호를 통해 버스트 전송의 마지막 데이터를 나타냅니다.
  • RRESP 신호는 데이터 전송의 성공 여부나 오류 여부를 나타냅니다.

주요 신호

  • RDATA: 마스터에게 전송할 실제 읽기 데이터.
  • RRESP: 데이터 전송이 성공했는지, 오류가 있었는지 나타내는 응답 신호.
  • RVALID: 읽기 데이터가 유효함을 나타내는 신호.
  • RREADY: 마스터가 데이터를 받을 준비가 되었음을 나타내는 신호.
  • RLAST: 버스트 전송일 때 마지막 데이터를 나타내는 신호.

AXI Read Operation의 병렬성

AXI 프로토콜에서 읽기 주소 전송과 읽기 데이터 전송이 병렬로 처리될 수 있습니다. 즉, 마스터는 여러 번의 읽기 요청을 동시에 보내고, 슬레이브는 각 요청에 대해 데이터를 차례로 전송할 수 있습니다. 또한, 읽기 작업은 비동기적으로 동작하므로, 마스터는 슬레이브로부터 응답을 기다리는 동안 다른 작업을 진행할 수 있습니다.

AXI Read Operation의 예시

  1. 주소 전송:
    • 마스터가 슬레이브에게 메모리 주소 ARADDR = 0x1000에서 데이터를 읽어오라고 요청합니다.
    • 마스터는 ARVALID 신호를 활성화하여 슬레이브에게 주소가 유효함을 알립니다.
    • 슬레이브는 ARREADY 신호를 활성화하여 읽기 주소를 수신할 준비가 되었음을 마스터에게 알립니다.
  2. 데이터 전송:
    • 슬레이브는 해당 주소의 데이터를 읽어 준비한 후 RDATA 신호로 데이터를 마스터에게 전송합니다.
    • 슬레이브는 RVALID 신호를 활성화하여 데이터가 유효함을 나타냅니다.
    • 마스터는 RREADY 신호를 통해 데이터를 받을 준비가 되었음을 알립니다.
    • 만약 버스트 모드로 여러 데이터를 연속적으로 전송하는 경우, 슬레이브는 RLAST 신호를 통해 마지막 데이터를 전송했음을 알립니다.

AXI Read Operation의 효율성

  • 파이프라인 동작: 읽기 주소 단계와 읽기 데이터 단계가 독립적으로 동작하기 때문에, 마스터는 여러 주소를 슬레이브에 보낸 후 동시에 데이터를 받을 수 있습니다.
  • 병렬성: 읽기 작업 중 마스터는 다른 읽기 또는 쓰기 작업을 동시에 처리할 수 있습니다.
  • 핸드셰이킹: 각 단계는 ValidReady 신호를 통해 서로 간의 준비 상태를 확인하므로, 데이터 전송의 정확성과 효율성을 높입니다.

주요 특징 요약

  • 주소 전송데이터 전송은 독립적으로 이루어지며, 두 단계는 동시에 처리될 수 있어 성능이 향상됩니다.
  • Valid-Ready 핸드셰이킹을 통해 마스터와 슬레이브는 각자의 상태에 따라 유연하게 동작할 수 있습니다.
  • RRESP 신호를 통해 읽기 작업의 성공 여부를 확인할 수 있으며, 오류 처리가 가능합니다.

결론

AXI의 **읽기 연산(Read Operation)**은 마스터가 슬레이브로부터 데이터를 읽어오는 과정으로, 주소 전송과 데이터 전송이 독립적으로 처리됩니다. 읽기 주소와 데이터 전송은 병렬로 수행되며, 이로 인해 전체 시스템의 성능이 크게 향상됩니다.

 

 

* https://adaptivesupport.amd.com/s/article/1053914?language=en_US

'SoC Protocol > AMBA' 카테고리의 다른 글

12. AXI Write 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

+ Recent posts