AHB(Advanced High-performance Bus)는 ARM의 AMBA(Advanced Microcontroller Bus Architecture) 표준 중 하나로, 고성능 장치 간의 데이터 전송을 위해 설계된 버스입니다. AHB는 고속, 고효율 데이터 전송을 지원하며 특히 메모리와 고속 주변 장치 간 통신에 자주 사용됩니다. AHB 버스는 마스터, 슬레이브, 그리고 여러 제어 신호들로 구성된 포트를 가지고 있습니다. 아래는 AHB 포트에 대한 주요 설명입니다.

1. 마스터 포트 (Master Port)

  • HADDR: 마스터가 슬레이브로 주소를 보내는 포트입니다.
  • HWRITE: 읽기/쓰기 신호를 보내며, 1이면 쓰기(write), 0이면 읽기(read)를 의미합니다.
  • HSIZE: 전송할 데이터의 크기를 나타내며, 8비트, 16비트, 32비트 등으로 설정됩니다.
  • HBURST: 버스트 전송 유형을 나타내며, Single, Increment, Wrap 등의 모드가 있습니다.
  • HPROT: 보호 신호로, 데이터를 보호하는 데 사용됩니다. 예를 들어, 캐시 가능성, 버퍼링 가능성 등을 나타냅니다.
  • HTRANS: 전송의 상태를 나타내는 신호로, IDLE, BUSY, NONSEQ, SEQ 등의 상태로 분류됩니다.
  • HWDATA: 마스터가 슬레이브로 쓰기 작업을 할 때 사용하는 데이터 포트입니다.

2. 슬레이브 포트 (Slave Port)

  • HRDATA: 슬레이브가 마스터에게 데이터를 반환하는 포트입니다.
  • HREADY: 슬레이브가 전송 작업이 완료되었음을 알리는 신호입니다. HREADY가 LOW일 경우, 마스터는 대기해야 합니다.
  • HRESP: 전송에 대한 응답 신호로, OKAY, ERROR 등으로 표시되며, 성공적인 전송 여부를 나타냅니다.

3. 공통 신호

  • HCLK: 시스템의 클럭 신호로, 모든 AHB 구성 요소는 이 신호를 통해 동기화됩니다.
  • HRESETn: 시스템 리셋 신호로, LOW일 때 시스템 전체가 리셋됩니다.

4. 버스트 전송

AHB는 버스트 전송을 지원하는데, 이 버스트는 여러 개의 연속된 데이터 전송을 처리하는 기능입니다. 이를 통해 데이터를 더 빠르게 전송할 수 있으며, 효율성을 높이는 데 기여합니다.

AHB의 주요 특징

  • 단일 클럭 에지 동작: AHB는 모든 전송이 단일 클럭 에지에서 이루어져, 설계가 간단하고 속도가 빠릅니다.
  • 파이프라인 지원: AHB는 파이프라인 방식으로 작동해, 주소와 데이터가 동시에 전송될 수 있어 성능을 최적화합니다.
  • 멀티마스터 지원: AHB는 여러 마스터 장치가 버스를 공유할 수 있도록 지원합니다. 이 경우, 아비터(arbiter)가 각 마스터에 대한 우선순위를 정해 버스를 할당합니다.

이 포트들은 고성능이 요구되는 SoC 설계에서 매우 중요한 역할을 하며, 특히 고속 메모리 액세스, DMA, 고속 주변 장치와 CPU 간 데이터 전송에 많이 사용됩니다.

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

07. AHB Read Operation  (0) 2024.09.27
06. AHB Write Operation  (0) 2024.09.27
04. APB Read Transfer  (0) 2024.09.27
03. APB Write Transfer  (0) 2024.09.27
02. APB interface  (0) 2024.09.27

APB Read Transfer 과정

1. Setup 단계

  • 읽기 전송을 시작하기 위한 초기 설정 단계입니다. 마스터가 슬레이브에게 접근할 주소를 지정하고 읽기 명령을 설정합니다.
  • 신호:
    • PADDR: 마스터가 읽고자 하는 슬레이브의 레지스터 주소를 설정합니다.
    • PSEL: 마스터는 특정 슬레이브를 선택하기 위해 PSEL 신호를 활성화합니다. 슬레이브는 이 신호가 활성화되면 자신이 선택되었음을 인지합니다.
    • PWRITE: 읽기 동작이므로 PWRITE 신호는 0으로 설정됩니다. 이 신호는 쓰기(1) 또는 읽기(0) 동작을 결정합니다.

2. Access 단계

  • Access 단계는 트랜잭션이 유효해지며, 실제로 데이터가 슬레이브에서 마스터로 전송되는 단계입니다. 마스터는 PENABLE 신호를 활성화하고, 슬레이브는 요청된 데이터를 PRDATA 버스를 통해 마스터에게 전달합니다.
  • 신호:
    • PENABLE: 마스터는 트랜잭션을 진행하기 위해 PENABLE 신호를 활성화합니다.
    • PRDATA: 슬레이브는 마스터가 요청한 주소의 데이터를 PRDATA 버스를 통해 전송합니다.
    • PREADY: 슬레이브는 PREADY 신호를 통해 마스터에게 데이터를 준비했음을 알립니다. 이 신호가 1일 때 마스터는 데이터를 읽을 수 있습니다.

3. Completion 단계

  • 트랜잭션이 완료되면 마스터는 트랜잭션을 종료하고 슬레이브는 데이터를 성공적으로 전송했음을 확인합니다.
  • 신호:
    • PENABLE: 마스터는 트랜잭션이 종료되었음을 알리기 위해 PENABLE 신호를 비활성화(0)합니다.
    • PSEL: 마스터는 슬레이브 선택을 해제하기 위해 PSEL 신호를 비활성화합니다.
    • PREADY: 슬레이브가 준비 상태에서 벗어나면 PREADY 신호를 비활성화할 수 있습니다.

APB Read Transfer 신호 타이밍 요약

  1. Cycle 1 (Setup 단계):
    • PADDR: 마스터가 읽고자 하는 슬레이브 주소를 설정.
    • PSEL: 슬레이브 선택 신호가 활성화됨.
    • PWRITE: 읽기 작업이므로 0으로 설정.
  2. Cycle 2 (Access 단계):
    • PENABLE: 활성화(1)되어 트랜잭션이 시작됨.
    • PREADY: 슬레이브가 데이터를 전송할 준비가 완료되면 1이 됨.
    • PRDATA: 슬레이브는 해당 주소에서 읽은 데이터를 PRDATA 버스로 마스터에게 전송.
  3. Cycle 3 (Completion 단계):
    • PENABLE: 비활성화(0)되어 트랜잭션이 종료됨.
    • PSEL: 비활성화(0), 트랜잭션이 종료되었음을 나타냄.
    • PREADY: 슬레이브는 PREADY를 1로 유지하며 전송 완료를 확인함.

APB Read Transfer의 주요 특징

  • 단순한 트랜잭션 구조: APB 프로토콜에서의 읽기 동작은 2개의 클럭 사이클을 필요로 합니다. 첫 번째 사이클에서는 주소 설정과 슬레이브 선택이 이루어지고, 두 번째 사이클에서는 데이터 전송이 이루어집니다.
  • 비파이프라인 처리: APB는 파이프라인 처리를 지원하지 않기 때문에, 한 번에 하나의 트랜잭션만 처리됩니다. 마스터는 하나의 트랜잭션이 완료된 후에야 다음 트랜잭션을 시작할 수 있습니다.
  • 데이터 전송의 단순성: 읽기 전송은 마스터가 슬레이브의 특정 주소에 접근하여 데이터를 읽어오는 방식으로, 슬레이브는 요청된 데이터를 PRDATA 버스를 통해 전송하고, 마스터는 이를 수신하여 처리합니다.
  • PREADY 신호의 역할: PREADY 신호는 슬레이브가 데이터를 읽어올 준비가 되었는지를 나타냅니다. 슬레이브가 준비되지 않았다면 PREADY 신호는 0으로 유지되며, 준비가 완료되면 1로 설정됩니다. PREADY가 1이 되면 트랜잭션이 진행됩니다.

* https://verificationforall.wordpress.com/apb-protocol/

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

06. AHB Write Operation  (0) 2024.09.27
05. AHB Interface  (0) 2024.09.27
03. APB Write Transfer  (0) 2024.09.27
02. APB interface  (0) 2024.09.27
01. Common sense (What is bus)  (0) 2024.09.27

APB Write Transfer 과정

1. Setup 단계

  • 이 단계는 쓰기 작업이 시작되기 전에 마스터가 슬레이브와 통신을 설정하는 단계입니다. 설정 단계에서 마스터는 슬레이브가 요청을 받을 준비가 될 때까지 기다립니다.
  • 신호:
    • PADDR: 마스터가 슬레이브에게 접근하려는 레지스터의 주소를 설정합니다.
    • PSEL: 마스터는 특정 슬레이브를 선택하기 위해 PSEL 신호를 활성화합니다. 슬레이브는 이 신호를 보고 자신이 선택되었는지 확인합니다.
    • PWRITE: 쓰기 동작이므로 PWRITE 신호는 1로 설정됩니다. 이 신호는 읽기/쓰기 작업 중 어떤 것이 수행될지 결정하는데, 쓰기 작업이므로 1입니다.
    • PWDATA: 마스터는 슬레이브에 쓰고자 하는 데이터를 PWDATA 버스에 올립니다.

2. Access 단계

  • Access 단계에서는 실제로 데이터가 슬레이브로 전송됩니다. 이 단계에서 트랜잭션이 유효하며, PENABLE 신호가 활성화됩니다. PENABLE 신호는 트랜잭션의 유효성을 나타내며, 슬레이브는 이 신호가 활성화되면 데이터를 처리하기 시작합니다.
  • 신호:
    • PENABLE: 마스터는 PENABLE 신호를 1로 설정하여 트랜잭션이 진행 중임을 알립니다.
    • PADDR, PWDATA: 슬레이브는 여전히 이 신호들을 보고 데이터를 받아 처리합니다.
    • PREADY: 슬레이브가 데이터를 받을 준비가 되었는지 여부를 나타내는 신호입니다. PREADY 신호가 1이면 슬레이브는 데이터를 수신할 준비가 된 상태이며, 트랜잭션이 진행됩니다.

3. Completion 단계

  • 트랜잭션이 완료되면 마스터는 트랜잭션을 종료하고 슬레이브는 데이터를 처리 완료합니다. 이때 PREADY 신호가 활성화되어 슬레이브가 데이터를 성공적으로 처리했음을 알립니다.
  • 신호:
    • PENABLE: 마스터는 PENABLE 신호를 비활성화(0)하여 트랜잭션이 종료되었음을 알립니다.
    • PSEL: 마스터는 슬레이브 선택을 해제하기 위해 PSEL 신호를 비활성화합니다.
    • PREADY: 슬레이브는 PREADY 신호를 1로 유지하며, 이는 트랜잭션이 성공적으로 끝났다는 의미입니다.

APB Write Transfer 신호 타이밍 요약

  1. Cycle 1 (Setup 단계):
    • PADDR: 슬레이브의 주소가 설정됨.
    • PSEL: 특정 슬레이브를 선택.
    • PWRITE: 쓰기 동작이므로 1.
    • PWDATA: 마스터가 쓸 데이터를 설정.
  2. Cycle 2 (Access 단계):
    • PENABLE: 활성화(1)되어 데이터 전송이 시작.
    • PREADY: 슬레이브가 준비되면 1.
  3. Cycle 3 (Completion 단계):
    • PENABLE: 비활성화(0)되어 트랜잭션 종료.
    • PSEL: 비활성화(0).
    • PREADY: 1로 유지되며, 전송이 완료됨.

* https://verificationforall.wordpress.com/apb-protocol/

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

06. AHB Write Operation  (0) 2024.09.27
05. AHB Interface  (0) 2024.09.27
04. APB Read Transfer  (0) 2024.09.27
02. APB interface  (0) 2024.09.27
01. Common sense (What is bus)  (0) 2024.09.27

1. PCLK (Peripheral Clock)

  • Source: 외부 클록 신호 (일반적으로 시스템 전체에서 동일한 클록)
  • 역할: 마스터와 슬레이브 모두 PCLK에 동기화되어 동작합니다. 즉, 마스터슬레이브 모두 이 클록 신호를 받아야 정상적으로 데이터를 주고받을 수 있습니다.

2. PRESETn (Peripheral Reset, Active Low)

  • Source: 외부 리셋 신호 (시스템 또는 마스터가 리셋을 제어할 수 있음)
  • 역할: 슬레이브마스터 모두 이 리셋 신호에 의존하여 초기화됩니다. 일반적으로 시스템 리셋 시, 이 신호가 '0'으로 설정되어 모든 APB 장치가 리셋됩니다.

3. PADDR (Peripheral Address)

  • Source: 마스터 (마스터에서 슬레이브로 전송)
  • 역할: 마스터가 슬레이브에 액세스할 특정 메모리 주소나 레지스터를 지정하는 신호입니다. 마스터는 이 신호를 통해 명령어를 전송하고, 슬레이브는 해당 주소를 수신하여 적절한 동작을 수행합니다.

4. PSEL (Peripheral Select)

  • Source: 마스터 (마스터에서 슬레이브로 전송)
  • 역할: 마스터가 여러 슬레이브 중에서 하나를 선택할 때 사용하는 신호입니다. 슬레이브는 이 신호가 활성화될 때만 데이터를 수신하거나 전송하며, 선택된 슬레이브만 동작에 참여합니다.

5. PENABLE (Peripheral Enable)

  • Source: 마스터 (마스터에서 슬레이브로 전송)
  • 역할: 마스터가 트랜잭션을 시작하거나 계속하기 위한 제어 신호입니다. PSEL 신호가 활성화된 후에 PENABLE 신호가 활성화되면 데이터 전송이 시작되며, 슬레이브는 이 신호를 기반으로 준비 상태를 파악합니다.

6. PWRITE (Peripheral Write)

  • Source: 마스터 (마스터에서 슬레이브로 전송)
  • 역할: 읽기/쓰기 작업을 구분하는 신호입니다. 마스터는 이 신호를 통해 쓰기 동작을 수행할지, 읽기 동작을 수행할지를 결정합니다. ‘1’이면 쓰기, ‘0’이면 읽기 작업입니다. 슬레이브는 이 신호를 해석하여 적절한 동작을 수행합니다.

7. PWDATA (Peripheral Write Data)

  • Source: 마스터 (마스터에서 슬레이브로 전송)
  • 역할: 쓰기 작업 시 마스터슬레이브로 전송하는 데이터입니다. 마스터가 데이터를 전송하고, 슬레이브는 이를 수신하여 해당 주소의 레지스터나 메모리에 저장합니다.

8. PRDATA (Peripheral Read Data)

  • Source: 슬레이브 (슬레이브에서 마스터로 전송)
  • 역할: 읽기 작업 시 슬레이브마스터에게 전달하는 데이터입니다. 마스터는 이 데이터를 수신하고 처리합니다. 슬레이브는 마스터가 요청한 주소의 데이터를 반환합니다.

9. PREADY (Peripheral Ready)

  • Source: 슬레이브 (슬레이브에서 마스터로 전송)
  • 역할: 슬레이브가 데이터를 전송하거나 수신할 준비가 되었을 때 활성화되는 신호입니다. 슬레이브는 이 신호를 통해 마스터에게 작업이 완료되었거나 처리할 준비가 되었음을 알립니다. 마스터는 이 신호가 '1'일 때 데이터 전송을 진행합니다.

10. PSLVERR (Peripheral Slave Error)

  • Source: 슬레이브 (슬레이브에서 마스터로 전송)
  • 역할: 슬레이브가 오류가 발생했을 때 마스터에게 오류를 알리는 신호입니다. 슬레이브가 요청된 작업을 처리하지 못할 경우 이 신호를 '1'로 설정하여 마스터에게 에러를 통지합니다.

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

06. AHB Write 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
01. Common sense (What is bus)  (0) 2024.09.27

 

 

AMBA (Advanced Microcontroller Bus Architecture)는 ARM이 개발한 버스 프로토콜로, SoC 설계에서 다양한 컴포넌트들이 효율적으로 통신할 수 있도록 설계되었습니다.

 

1. AMBA 버스 프로토콜 종류

1.1 APB (Advanced Peripheral Bus)

  • 용도: 저속 주변 장치와 통신
  • 특징: 간단한 인터페이스와 낮은 전력 소비, 주로 타이머, UART, GPIO 같은 저속 주변 장치에 사용
  • 동작 방식: 비파이프라인 방식으로, 한 번에 하나의 데이터 전송을 수행하며 주로 클록이 느린 슬레이브와 연결

1.2 AHB (Advanced High-performance Bus)

  • 용도: 고속 메모리 및 주변 장치와의 통신
  • 특징: 고성능 버스, 여러 마스터가 버스에 연결될 수 있으며, 파이프라인 지원
  • 동작 방식: 파이프라인된 주소, 데이터 전송, 멀티플렉싱 지원, 버스트 전송 가능
  • AMBA 버전: AMBA 2에서 처음 도입

1.3 AXI (Advanced eXtensible Interface)

  • 용도: 고성능, 고효율의 데이터 전송을 필요로 하는 시스템
  • 특징: 분리된 읽기/쓰기 채널, 버스트 모드 지원, 높은 데이터 처리량
  • 동작 방식: 읽기/쓰기 채널이 독립적으로 작동하며, 더 높은 대역폭과 낮은 레이턴시를 제공

2. AMBA 프로토콜 구성 요소 (Component)

2.1 Master

  • 버스 상에서 데이터를 요청하는 컴포넌트. CPU, DMA 컨트롤러 등이 대표적인 Master 장치입니다.
  • 역할: 버스를 통해 슬레이브 장치로 데이터를 전송하거나 데이터를 읽어옴.

2.2 Slave

  • Master의 요청을 처리하는 컴포넌트. 메모리, 주변 장치들이 슬레이브로 연결될 수 있습니다.
  • 역할: Master가 보낸 데이터를 수신하거나 Master에게 데이터를 전달.

2.3 Arbiter

  • 여러 Master가 동시에 버스 사용을 요청할 때, 그 요청을 조정하는 역할을 합니다.
  • 역할: 우선순위에 따라 버스를 할당하여 시스템의 효율을 높임.

2.4 Decoder

  • Master의 주소 요청에 따라, 해당 주소가 어떤 슬레이브에 연결되어 있는지를 결정하는 컴포넌트입니다.
  • 역할: 주소 매핑을 통해 데이터 흐름을 관리.

2.5 Interconnect

  • 여러 개의 Master와 여러 개의 Slave가 동시에 통신할 수 있도록 다중 버스 구조를 지원합니다.
  • 역할: 효율적인 데이터 전송을 위해 복잡한 인터커넥션 구조를 구현.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

06. AHB Write 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
02. APB interface  (0) 2024.09.27

+ Recent posts