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

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

AXI Write Operation 단계

  1. Write Address Phase (쓰기 주소 단계)
  2. Write Data Phase (쓰기 데이터 단계)
  3. 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

AXI(Advanced eXtensible Interface) 프로토콜은 각 채널마다 특정한 포트를 통해 데이터 전송 및 제어를 수행합니다. AXI는 5개의 주요 채널을 가지고 있으며, 각 채널은 서로 다른 역할과 포트를 가집니다. 아래에서 각 채널별 포트를 설명하겠습니다.

1. Write Address Channel (AW)

  • 포트
    • AWADDR: 쓰기 주소를 전달합니다. 슬레이브가 데이터를 쓸 메모리 주소입니다.
    • AWLEN: 전송할 데이터의 길이입니다. 이 값에 따라 연속된 여러 데이터 전송을 설정할 수 있습니다.
    • AWSIZE: 각 데이터 전송의 크기를 나타냅니다 (예: 8비트, 16비트 등).
    • AWBURST: 버스트 전송 방식을 지정합니다 (예: 연속, 비연속).
    • AWVALID: 쓰기 주소가 유효하다는 신호입니다. 슬레이브가 이 신호를 수신하면 읽기를 진행합니다.
    • AWREADY: 슬레이브가 쓰기 주소를 수신할 준비가 되었음을 나타내는 신호입니다.

2. Write Data Channel (W)

  • 포트
    • WDATA: 전송할 실제 데이터를 포함합니다.
    • WSTRB: 데이터의 바이트별 유효성을 나타내는 비트 마스크입니다. 어떤 바이트가 유효한지 지정합니다.
    • WLEN: 전송할 데이터의 길이(버스트 전송을 설정할 때 사용).
    • WVALID: 전송할 데이터가 유효하다는 신호입니다.
    • WREADY: 슬레이브가 데이터를 수신할 준비가 되었음을 나타내는 신호입니다.

3. Write Response Channel (B)

  • 포트
    • BRESP: 쓰기 응답 상태를 나타냅니다. 일반적으로 성공 또는 오류 상태를 표시합니다.
    • BVALID: 응답 데이터가 유효하다는 신호입니다. 슬레이브가 응답을 마스터에 보낼 준비가 되었음을 나타냅니다.
    • BREADY: 마스터가 응답을 수신할 준비가 되었음을 나타내는 신호입니다.

4. Read Address Channel (AR)

  • 포트
    • ARADDR: 읽기 주소를 전달합니다. 슬레이브에서 데이터를 읽어올 메모리 주소입니다.
    • ARLEN: 전송할 데이터의 길이입니다.
    • ARSIZE: 각 데이터 전송의 크기를 나타냅니다.
    • ARBURST: 버스트 전송 방식을 지정합니다.
    • ARVALID: 읽기 주소가 유효하다는 신호입니다.
    • ARREADY: 슬레이브가 읽기 주소를 수신할 준비가 되었음을 나타내는 신호입니다.

5. Read Data Channel (R)

  • 포트
    • RDATA: 슬레이브가 마스터에게 전송할 실제 읽기 데이터를 포함합니다.
    • RRESP: 읽기 응답 상태를 나타냅니다. 일반적으로 성공 또는 오류 상태를 표시합니다.
    • RLAST: 마지막 데이터 전송을 나타내는 신호입니다. 버스트 전송의 경우, 마지막 데이터 전송임을 표시합니다.
    • RVALID: 응답 데이터가 유효하다는 신호입니다.
    • RREADY: 마스터가 응답을 수신할 준비가 되었음을 나타내는 신호입니다.

포트 간의 상호작용

  • 각 포트는 유효(valid)준비(ready) 신호를 통해 서로의 상태를 확인합니다. 예를 들어, AWVALID가 활성화되면 슬레이브는 AWREADY를 통해 쓰기 주소를 수신할 준비가 되었음을 알립니다. 마찬가지로, WVALID가 활성화되면 슬레이브는 WREADY를 통해 데이터를 수신할 준비가 되었음을 알립니다.

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

13. AXI Read Operation  (0) 2024.09.27
12. AXI Write Operation  (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

AXI(Advanced eXtensible Interface) 프로토콜에서 채널 간의 독립성은 시스템의 효율성을 극대화하는 중요한 특성 중 하나입니다. 이 독립성 덕분에 각 채널이 다른 채널과 상관없이 작동할 수 있으며, 이를 통해 다중 작업이 병렬로 처리됩니다. 각 채널 간의 독립성을 좀 더 구체적으로 살펴보면 아래와 같습니다:

1. Write Address Channel (AW) vs Write Data Channel (W)

  • 독립성: 쓰기 주소(AW)와 쓰기 데이터(W) 채널은 서로 독립적입니다. 즉, 마스터가 먼저 쓰기 주소를 전송한 후, 그 주소에 데이터를 쓸 필요 없이 쓰기 데이터는 별도로 전송될 수 있습니다.
  • 예시: 마스터가 슬레이브에게 여러 쓰기 주소를 빠르게 보내면서 동시에 각 주소에 해당하는 데이터를 별도로 전송할 수 있습니다. 이로 인해 쓰기 작업이 병렬로 처리될 수 있으며, 성능이 향상됩니다.

2. Write Address/Write Data Channels vs Write Response Channel (B)

  • 독립성: 쓰기 주소 및 데이터 전송과는 별개로, 슬레이브가 데이터를 수신한 후 **쓰기 응답(B 채널)**을 보냅니다. 슬레이브는 데이터 쓰기가 완료되면 비동기적으로 B 채널을 통해 응답을 전달할 수 있습니다.
  • 예시: 마스터는 여러 쓰기 작업을 동시에 처리하면서, 나중에 슬레이브로부터 각 작업의 완료 여부를 확인할 수 있습니다. 마스터는 쓰기 응답(B)을 기다리지 않고 다른 작업을 계속 처리할 수 있습니다.

3. Read Address Channel (AR) vs Read Data Channel (R)

  • 독립성: 읽기 주소(AR)와 읽기 데이터(R) 채널도 독립적입니다. 읽기 요청을 한 뒤 즉시 데이터를 받을 필요 없이, 슬레이브는 비동기적으로 데이터를 준비한 후 읽기 데이터 채널을 통해 데이터를 전달할 수 있습니다.
  • 예시: 마스터는 여러 읽기 주소를 슬레이브에 보내면서 데이터를 동시에 받아올 수 있습니다. 읽기 요청을 여러 번 보내고, 슬레이브가 준비된 데이터를 천천히 R 채널로 전송하는 구조로, 병목 현상을 줄이고 효율성을 높입니다.

4. Read vs Write Channel의 독립성

  • 독립성: 읽기 작업(Read Channels)과 쓰기 작업(Write Channels)은 완전히 별개의 채널을 사용하므로, 동시에 병렬로 처리될 수 있습니다. 마스터는 읽기 요청을 보낸 후, 별도의 쓰기 작업을 하거나, 쓰기 작업이 진행되는 동안 읽기 데이터를 받을 수 있습니다.
  • 예시: 마스터가 쓰기 작업을 수행하는 동안, 다른 주소에 대한 읽기 작업을 동시에 수행할 수 있어 데이터 처리가 병렬로 이루어집니다.

5. 핸드셰이킹 메커니즘의 독립성

  • AXI의 각 채널은 독립적인 핸드셰이킹 메커니즘(Valid, Ready 신호)을 사용합니다. 각 채널이 자신의 데이터 전송과 관련된 신호만 주고받으면 되기 때문에, 다른 채널의 상태에 영향을 받지 않고 데이터 전송이 가능합니다.
  • 예시: 쓰기 주소 채널이 데이터 전송을 완료하지 않았어도, 쓰기 데이터 채널은 이미 유효한 데이터를 전송하고 다른 처리를 진행할 수 있습니다.

6. 비동기적 동작

  • 각 채널은 비동기적으로 동작할 수 있기 때문에 서로 다른 클럭 도메인에서도 데이터가 정상적으로 전송됩니다. 마스터와 슬레이브가 독립적인 클럭 도메인을 가질 경우, 각 채널이 개별적으로 동작하여 클럭 도메인 간의 타이밍 이슈를 최소화합니다.

* https://habr.com/en/articles/572926/

결론

AXI 프로토콜에서 각 채널 간의 독립성은 성능을 높이고 복잡한 SoC 환경에서 다중 작업을 동시에 처리할 수 있도록 합니다. 특히 자동차 SoC와 같은 고성능 시스템에서는 이러한 독립성이 전체 시스템의 효율성을 크게 개선하며, 다양한 클럭 도메인 간의 데이터 전송에도 유리한 구조입니다.

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

12. AXI Write Operation  (0) 2024.09.27
11. AXI Interface  (0) 2024.09.27
09. AXI Channel  (0) 2024.09.27
08. AHB (HTRANS, HSIZE, HBURST)  (0) 2024.09.27
07. AHB Read Operation  (0) 2024.09.27

AXI(Advanced eXtensible Interface) 프로토콜은 ARM에서 개발한 인터커넥트 표준으로, 고성능 SoC(System on Chip) 설계에서 널리 사용됩니다. AXI는 5개의 독립적인 채널을 가지고 있으며, 각 채널은 서로 독립적으로 동작할 수 있습니다. 이 독립성은 AXI가 고성능을 제공하는 중요한 이유 중 하나입니다.

AXI의 5개 채널

  1. Write Address Channel (AW)
    • 쓰기 주소를 전송하는 채널입니다. 이 채널을 통해 마스터는 슬레이브에게 데이터를 쓸 주소와 컨트롤 정보를 전달합니다.
  2. Write Data Channel (W)
    • 실제로 데이터를 전송하는 채널입니다. 쓰기 데이터는 이 채널을 통해 마스터에서 슬레이브로 전송됩니다.
  3. Write Response Channel (B)
    • 쓰기 작업이 완료되면 슬레이브가 마스터에게 완료 여부를 응답하는 채널입니다. 마스터는 이 채널을 통해 슬레이브로부터 오류 발생 여부를 확인할 수 있습니다.
  4. Read Address Channel (AR)
    • 읽기 주소를 전송하는 채널입니다. 마스터는 이 채널을 통해 슬레이브에게 데이터를 읽을 주소와 관련 컨트롤 정보를 전달합니다.
  5. Read Data Channel (R)
    • 실제로 데이터를 전송하는 채널입니다. 슬레이브는 이 채널을 통해 마스터에게 요청한 데이터를 전달하며, 오류나 완료 신호를 포함할 수 있습니다.

 

* https://www.allaboutcircuits.com/technical-articles/introduction-to-the-advanced-extensible-interface-axi/

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

11. AXI Interface  (0) 2024.09.27
10. AXI Channel Dependencies  (0) 2024.09.27
08. AHB (HTRANS, HSIZE, HBURST)  (0) 2024.09.27
07. AHB Read Operation  (0) 2024.09.27
06. AHB Write Operation  (0) 2024.09.27

1. HTRANS (Transfer Type Signal)

  • 정의: HTRANS는 현재 전송의 타입을 정의하는 2비트 신호입니다. 이 신호는 AHB에서 발생하는 각 전송의 성격을 나타냅니다.
  • :
    • 00 : IDLE - 현재 전송이 없음을 나타냅니다.
    • 01 : BUSY - 현재 전송이 진행 중임을 나타냅니다.
    • 10 : NONSEQ - 비순차적인 전송으로, 새로운 주소에서 데이터 전송이 이루어짐을 나타냅니다.
    • 11 : SEQ - 순차적인 전송으로, 연속적인 주소에서 데이터 전송이 이루어짐을 나타냅니다.
  • 용도: HTRANS는 마스터와 슬레이브 간의 전송 상태를 조정하여 효율적인 데이터 흐름을 가능하게 합니다. 예를 들어, NONSEQ 전송은 새로운 주소에서 데이터를 전송할 때 사용되고, SEQ 전송은 이전 전송과 연결된 주소에서 데이터를 계속 전송할 때 사용됩니다.

2. HSIZE (Transfer Size Signal)

  • 정의: HSIZE는 전송하는 데이터의 크기를 정의하는 3비트 신호입니다.
  • :
    • 000 : 1 byte (8 bits)
    • 001 : 2 bytes (16 bits)
    • 010 : 4 bytes (32 bits)
    • 011 : 8 bytes (64 bits)
    • 100 : 16 bytes (128 bits)
  • 용도: HSIZE는 전송할 데이터의 크기를 지정하여 슬레이브가 필요한 만큼의 데이터를 수신하거나 전송할 수 있도록 합니다. 이 신호는 메모리 접근의 효율성을 높이는 데 기여합니다.

3. HBURST (Burst Type Signal)

  • 정의: HBURST는 연속 전송이 이루어질 경우의 전송 방식과 전송 수를 정의하는 3비트 신호입니다.
  • :
    • 000 : SINGLE - 단일 전송, 하나의 데이터만 전송합니다.
    • 001 : INCR - 연속적인 주소에서 데이터를 전송하는 증가형 전송입니다.
    • 010 : WRAP4 - 4개의 데이터 전송 후 주소가 다시 시작 주소로 돌아갑니다.
    • 011 : INCR4 - 4개의 연속 데이터 전송입니다.
    • 100 : WRAP8 - 8개의 데이터 전송 후 주소가 다시 시작 주소로 돌아갑니다.
    • 101 : INCR8 - 8개의 연속 데이터 전송입니다.
    • 110 : WRAP16 - 16개의 데이터 전송 후 주소가 다시 시작 주소로 돌아갑니다.
    • 111 : INCR16 - 16개의 연속 데이터 전송입니다.
  • 용도: HBURST는 데이터 전송의 효율성을 높이고 메모리 대역폭을 극대화하기 위해 사용됩니다. 이를 통해 마스터는 여러 데이터를 한 번에 전송할 수 있어 전송 속도를 개선합니다.

이 세 가지 신호는 AHB 프로토콜에서 데이터 전송의 효율성을 극대화하고, 슬레이브가 마스터의 요청에 적절히 반응할 수 있도록 합니다. 이러한 신호를 적절히 활용하면 시스템의 성능을 향상시킬 수 있습니다.

 

*https://slideplayer.com/slide/10885119/

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

10. AXI Channel Dependencies  (0) 2024.09.27
09. AXI Channel  (0) 2024.09.27
07. AHB Read Operation  (0) 2024.09.27
06. AHB Write Operation  (0) 2024.09.27
05. AHB Interface  (0) 2024.09.27

1. 주소 페이즈 (Address Phase)

주소 페이즈는 마스터가 슬레이브로부터 데이터를 읽기 위해 요청하는 주소와 제어 신호를 설정하는 단계입니다. 이 단계에서 마스터는 슬레이브로부터 데이터를 읽기 위한 주소와 관련된 신호를 설정하여 전송합니다.

신호 설명:

  • HADDR: 마스터가 슬레이브에서 읽고자 하는 주소를 나타냅니다.
  • HTRANS: 전송 상태를 나타내는 신호로, IDLE, BUSY, NONSEQ, SEQ 등의 상태로 나뉩니다. 읽기 작업에서는 NONSEQ(비연속 전송) 또는 SEQ(연속 전송) 상태를 사용합니다.
  • HWRITE: 읽기/쓰기 구분 신호로, 읽기 작업에서는 0으로 설정됩니다.
  • HSIZE: 읽을 데이터의 크기를 나타내며, 8비트, 16비트, 32비트 등으로 설정됩니다.
  • HBURST: 버스트 전송 유형을 나타냅니다. Single, Incrementing, Wrapping 등의 모드를 선택할 수 있습니다.
  • HPROT: 보호 정보를 제공하며, 캐시 가능성, 버퍼링 가능성 등을 나타냅니다.

2. 데이터 페이즈 (Data Phase)

데이터 페이즈는 슬레이브가 마스터로 데이터를 반환하는 단계입니다. 데이터는 주소 페이즈 이후 한 클럭 사이클에서 슬레이브에 의해 마스터로 전송됩니다. 파이프라인 방식이므로 주소 페이즈와 데이터 페이즈가 겹쳐 진행될 수 있습니다.

신호 설명:

  • HRDATA: 슬레이브가 마스터에게 전송하는 읽은 데이터입니다.
  • HREADY: 슬레이브가 데이터를 준비했는지를 나타내며, HREADY가 LOW일 경우 마스터는 기다려야 합니다. HREADY가 HIGH일 경우 슬레이브는 데이터를 준비해 마스터로 보냅니다.
  • HRESP: 슬레이브의 응답 상태를 나타내며, OKAY, ERROR, RETRY 등이 있습니다. OKAY는 성공적인 전송을, ERROR는 실패를 의미합니다.

3. 전송 완료

슬레이브가 데이터 전송을 완료하면, HREADY 신호를 HIGH로 설정하여 마스터에게 데이터를 읽을 준비가 완료되었음을 알립니다. 그 후 마스터는 HRDATA 포트로 슬레이브에서 전송된 데이터를 읽습니다. 만약 슬레이브가 데이터를 즉시 준비할 수 없다면, HREADY 신호를 LOW로 설정하여 마스터가 대기해야 하며, 슬레이브가 준비될 때까지 전송이 지연됩니다.

4. 파이프라인 구조

AHB는 파이프라인 구조로 동작하여, 주소와 데이터가 다른 클럭 사이클에 독립적으로 전송될 수 있습니다. 예를 들어, 첫 번째 클럭 사이클에서는 주소가 전송되고, 그 다음 클럭 사이클에서는 데이터가 준비되어 전송됩니다. 이렇게 하면 동시에 여러 전송 작업을 처리할 수 있어 버스 효율이 극대화됩니다.

AHB Read Operation 순서

  1. 마스터는 HADDR, HTRANS, HWRITE(0), HSIZE 등의 주소 및 제어 신호를 설정하여 슬레이브로 보냅니다.
  2. 슬레이브는 HREADY 신호를 통해 데이터를 준비 중임을 알립니다.
  3. 슬레이브가 데이터 준비를 완료하면, HREADY를 HIGH로 설정하고 HRDATA에 데이터를 출력하여 마스터에게 전송합니다.
  4. 슬레이브는 HRESP 신호로 전송 성공 여부를 알리며, OKAY 상태가 되면 전송이 성공적으로 완료됩니다.
  5. 마스터는 데이터를 수신한 후, 다음 전송 작업을 진행할 수 있습니다.

AHB Read Operation의 주요 특징

  • 파이프라인 방식: 주소와 데이터가 서로 다른 클럭 사이클에서 전송되므로, 여러 작업을 동시에 진행할 수 있어 성능을 높입니다.
  • 버스트 전송 지원: AHB는 연속된 메모리 주소에 대해 여러 데이터를 읽어오는 버스트 전송을 지원합니다. 이는 대용량 데이터를 효율적으로 처리하는 데 유용합니다.
  • HREADY 신호: 슬레이브가 데이터를 준비하지 못한 경우, HREADY 신호를 LOW로 설정하여 마스터가 대기하도록 합니다. 마스터는 HREADY가 HIGH로 설정될 때까지 기다려야 합니다.

파이프라인 동작 예시

  • Cycle 1: 마스터가 슬레이브로 읽기 작업을 요청하며, 주소를 HADDR에 전송.
  • Cycle 2: 슬레이브가 데이터를 준비 중이며, HREADY는 LOW. 마스터는 대기.
  • Cycle 3: 슬레이브가 HRDATA에 데이터를 준비하고, HREADY는 HIGH. 마스터는 데이터를 읽음.
  • Cycle 4: 마스터는 새로운 읽기 작업을 시작할 수 있음.

* https://slideplayer.com/slide/10885119/

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

09. AXI Channel  (0) 2024.09.27
08. AHB (HTRANS, HSIZE, HBURST)  (0) 2024.09.27
06. AHB Write Operation  (0) 2024.09.27
05. AHB Interface  (0) 2024.09.27
04. APB Read Transfer  (0) 2024.09.27
AHB(Advanced High-performance Bus)에서의 Write Operation은 마스터가 슬레이브로 데이터를 전송하는 과정입니다. AHB는 파이프라인 구조를 사용하여 주소와 데이터의 전송이 분리되며, 효율적으로 동작할 수 있도록 설계되었습니다. AHB의 write operation을 단계별로 설명하겠습니다.

1. 주소 페이즈 (Address Phase)

주소 페이즈는 마스터가 슬레이브로 데이터를 쓰기 위한 주소와 제어 신호를 설정하는 단계입니다. 이 단계에서 마스터는 슬레이브로 주소를 전송하고 전송이 쓰기인지, 읽기인지, 데이터 크기 등이 포함된 제어 신호를 보냅니다.

신호 설명:

  • HADDR: 마스터가 슬레이브에 전달할 주소를 설정합니다.
  • HTRANS: 전송의 상태를 나타내는 신호로, IDLE, BUSY, NONSEQ, SEQ 중 하나를 나타냅니다. 쓰기 작업에서는 NONSEQ(비연속 전송) 또는 SEQ(연속 전송) 상태를 사용합니다.
  • HWRITE: 쓰기 신호로, 이 값이 1이면 쓰기 작업임을 의미합니다.
  • HSIZE: 전송할 데이터의 크기(8비트, 16비트, 32비트 등)를 나타냅니다.
  • HBURST: 버스트 전송 유형을 나타냅니다. Single, Incrementing, Wrapping 등의 버스트 모드를 사용할 수 있습니다.
  • HPROT: 보호 정보를 제공하며, 캐시 가능성, 버퍼링 가능성 등의 정보가 포함됩니다.

2. 데이터 페이즈 (Data Phase)

데이터 페이즈는 마스터가 슬레이브로 실제 데이터를 전송하는 단계입니다. 이때 데이터 전송이 주소와 독립적으로 발생합니다. 즉, 주소가 전송된 후에 데이터가 별도로 전달됩니다. 주소 페이즈와 데이터 페이즈는 파이프라인 방식으로 동시에 발생할 수 있습니다.

신호 설명:

  • HWDATA: 마스터가 슬레이브로 보내는 실제 데이터입니다.
  • HREADY: 슬레이브가 전송을 완료할 준비가 되었는지를 나타냅니다. 이 신호가 LOW이면 마스터는 대기해야 하며, HREADY가 HIGH일 때 마스터는 다음 전송을 시작할 수 있습니다.
  • HRESP: 슬레이브의 응답 상태로, OKAY, ERROR 등의 값이 있을 수 있습니다. OKAY는 성공적인 전송을, ERROR는 실패를 의미합니다.

3. 전송 완료

슬레이브가 데이터 전송을 수신하고 완료되면, HREADY 신호를 HIGH로 설정하여 마스터에게 전송이 성공적으로 완료되었음을 알립니다. 그 후, 마스터는 새로운 주소 페이즈를 시작하거나 다른 작업을 수행할 수 있습니다.

4. 파이프라인 구조

AHB는 파이프라인 방식으로 동작하여, 마스터가 한 번에 주소와 데이터를 연속적으로 보낼 수 있습니다. 주소 페이즈와 데이터 페이즈가 분리되어 있기 때문에, 주소가 전송되는 동안 이전 데이터가 전송될 수 있어 성능이 최적화됩니다. 이 파이프라인 방식은 AHB의 높은 처리량을 유지하는 데 중요한 역할을 합니다.

AHB Write Operation 순서

  1. 마스터는 HADDR, HTRANS, HWRITE, HSIZE 등의 주소 및 제어 신호를 슬레이브로 보냅니다.
  2. 마스터는 HWDATA로 실제 데이터를 슬레이브로 보냅니다.
  3. 슬레이브는 HREADY 신호를 통해 데이터 수신 준비 상태를 알리고, 성공적으로 데이터를 수신하면 HRESPOKAY로 응답합니다.
  4. 마스터는 전송 완료 후, 다음 전송 작업을 시작합니다.

AHB Write Operation의 주요 특징

  • 파이프라인 구조: 주소와 데이터 전송이 분리되므로, 주소와 데이터가 동시에 처리될 수 있어 고속 전송이 가능합니다.
  • 버스트 모드 지원: AHB는 여러 데이터를 연속으로 전송할 수 있는 버스트 모드를 지원해, 효율적인 데이터 전송이 가능합니다.
  • HREADY 신호: 슬레이브가 준비되었을 때만 전송이 완료되며, 슬레이브가 준비되지 않으면 마스터는 대기합니다.

이러한 구조 덕분에 AHB는 메모리와 고속 주변 장치 간의 데이터 전송에 적합하며, 성능이 중요한 SoC 설계에 자주 사용됩니다.

* https://slideplayer.com/slide/10885119/

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

08. AHB (HTRANS, HSIZE, HBURST)  (0) 2024.09.27
07. AHB Read Operation  (0) 2024.09.27
05. AHB Interface  (0) 2024.09.27
04. APB Read Transfer  (0) 2024.09.27
03. APB Write Transfer  (0) 2024.09.27

+ Recent posts