최근 수정 시각 : 2026-10-09 19:53:10

AMBA



파일:다른 뜻 아이콘.svg  
#!if 넘어옴1 != null
'''AMBA'''{{{#!if 넘어옴2 == null
{{{#!if 넘어옴1[넘어옴1.length - 1] >= 0xAC00 && 넘어옴1[넘어옴1.length - 1] <= 0xD7A3
{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴1[넘어옴1.length - 1] < 0xAC00 || 넘어옴1[넘어옴1.length - 1] > 0xD7A3
은(는)}}}}}}{{{#!if 넘어옴2 != null
, ''''''{{{#!if 넘어옴3 == null
{{{#!if 넘어옴2[넘어옴2.length - 1] >= 0xAC00 && 넘어옴2[넘어옴2.length - 1] <= 0xD7A3
{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴2[넘어옴2.length - 1] < 0xAC00 || 넘어옴2[넘어옴2.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴3 != null
, ''''''{{{#!if 넘어옴4 == null
{{{#!if 넘어옴3[넘어옴3.length - 1] >= 0xAC00 && 넘어옴3[넘어옴3.length - 1] <= 0xD7A3
{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴3[넘어옴3.length - 1] < 0xAC00 || 넘어옴3[넘어옴3.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴4 != null
, ''''''{{{#!if 넘어옴5 == null
{{{#!if 넘어옴4[넘어옴4.length - 1] >= 0xAC00 && 넘어옴4[넘어옴4.length - 1] <= 0xD7A3
{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴4[넘어옴4.length - 1] < 0xAC00 || 넘어옴4[넘어옴4.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴5 != null
, ''''''{{{#!if 넘어옴6 == null
{{{#!if 넘어옴5[넘어옴5.length - 1] >= 0xAC00 && 넘어옴5[넘어옴5.length - 1] <= 0xD7A3
{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴5[넘어옴5.length - 1] < 0xAC00 || 넘어옴5[넘어옴5.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴6 != null
, ''''''{{{#!if 넘어옴7 == null
{{{#!if 넘어옴6[넘어옴6.length - 1] >= 0xAC00 && 넘어옴6[넘어옴6.length - 1] <= 0xD7A3
{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴6[넘어옴6.length - 1] < 0xAC00 || 넘어옴6[넘어옴6.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴7 != null
, ''''''{{{#!if 넘어옴8 == null
{{{#!if 넘어옴7[넘어옴7.length - 1] >= 0xAC00 && 넘어옴7[넘어옴7.length - 1] <= 0xD7A3
{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴7[넘어옴7.length - 1] < 0xAC00 || 넘어옴7[넘어옴7.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴8 != null
, ''''''{{{#!if 넘어옴9 == null
{{{#!if 넘어옴8[넘어옴8.length - 1] >= 0xAC00 && 넘어옴8[넘어옴8.length - 1] <= 0xD7A3
{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴8[넘어옴8.length - 1] < 0xAC00 || 넘어옴8[넘어옴8.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴9 != null
, ''''''{{{#!if 넘어옴10 == null
{{{#!if 넘어옴9[넘어옴9.length - 1] >= 0xAC00 && 넘어옴9[넘어옴9.length - 1] <= 0xD7A3
{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴9[넘어옴9.length - 1] < 0xAC00 || 넘어옴9[넘어옴9.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴10 != null
, ''''''{{{#!if 넘어옴10[넘어옴10.length - 1] >= 0xAC00 && 넘어옴10[넘어옴10.length - 1] <= 0xD7A3
{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴10[넘어옴10.length - 1] < 0xAC00 || 넘어옴10[넘어옴10.length - 1] > 0xD7A3
은(는)}}}}}} 여기로 연결됩니다. 
#!if 설명 == null && 리스트 == null
{{{#!if 설명1 == null
다른 뜻에 대한 내용은 아래 문서를}}}{{{#!if 설명1 != null
{{{#!html 경영대학 협회}}}에 대한 내용은 [[MBA 협회]] 문서{{{#!if (문단1 == null) == (앵커1 == null)
를}}}{{{#!if 문단1 != null & 앵커1 == null
의 [[MBA 협회#s-|]]번 문단을}}}{{{#!if 문단1 == null & 앵커1 != null
의 [[MBA 협회#|]] 부분을}}}}}}{{{#!if 설명2 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단2 == null) == (앵커2 == null)
를}}}{{{#!if 문단2 != null & 앵커2 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단2 == null & 앵커2 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명3 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단3 == null) == (앵커3 == null)
를}}}{{{#!if 문단3 != null & 앵커3 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단3 == null & 앵커3 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명4 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단4 == null) == (앵커4 == null)
를}}}{{{#!if 문단4 != null & 앵커4 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단4 == null & 앵커4 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명5 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단5 == null) == (앵커5 == null)
를}}}{{{#!if 문단5 != null & 앵커5 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단5 == null & 앵커5 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명6 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단6 == null) == (앵커6 == null)
를}}}{{{#!if 문단6 != null & 앵커6 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단6 == null & 앵커6 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명7 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단7 == null) == (앵커7 == null)
를}}}{{{#!if 문단7 != null & 앵커7 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단7 == null & 앵커7 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명8 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단8 == null) == (앵커8 == null)
를}}}{{{#!if 문단8 != null & 앵커8 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단8 == null & 앵커8 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명9 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단9 == null) == (앵커9 == null)
를}}}{{{#!if 문단9 != null & 앵커9 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단9 == null & 앵커9 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명10 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단10 == null) == (앵커10 == null)
를}}}{{{#!if 문단10 != null & 앵커10 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단10 == null & 앵커10 != null
의 [[#|]] 부분을}}}}}}
#!if 설명 == null
{{{#!if 리스트 != null
다른 뜻에 대한 내용은 아래 문서를}}} 참고하십시오.

#!if 리스트 != null
{{{#!if 문서명1 != null
 * {{{#!if 설명1 != null
경영대학 협회: }}}[[MBA 협회]] {{{#!if 문단1 != null & 앵커1 == null
문서의 [[MBA 협회#s-|]]번 문단}}}{{{#!if 문단1 == null & 앵커1 != null
문서의 [[MBA 협회#|]] 부분}}}}}}{{{#!if 문서명2 != null
 * {{{#!if 설명2 != null
: }}}[[]] {{{#!if 문단2 != null & 앵커2 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단2 == null & 앵커2 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명3 != null
 * {{{#!if 설명3 != null
: }}}[[]] {{{#!if 문단3 != null & 앵커3 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단3 == null & 앵커3 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명4 != null
 * {{{#!if 설명4 != null
: }}}[[]] {{{#!if 문단4 != null & 앵커4 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단4 == null & 앵커4 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명5 != null
 * {{{#!if 설명5 != null
: }}}[[]] {{{#!if 문단5 != null & 앵커5 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단5 == null & 앵커5 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명6 != null
 * {{{#!if 설명6 != null
: }}}[[]] {{{#!if 문단6 != null & 앵커6 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단6 == null & 앵커6 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명7 != null
 * {{{#!if 설명7 != null
: }}}[[]] {{{#!if 문단7 != null & 앵커7 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단7 == null & 앵커7 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명8 != null
 * {{{#!if 설명8 != null
: }}}[[]] {{{#!if 문단8 != null & 앵커8 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단8 == null & 앵커8 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명9 != null
 * {{{#!if 설명9 != null
: }}}[[]] {{{#!if 문단9 != null & 앵커9 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단9 == null & 앵커9 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명10 != null
 * {{{#!if 설명10 != null
: }}}[[]] {{{#!if 문단10 != null & 앵커10 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단10 == null & 앵커10 != null
문서의 [[#|]] 부분}}}}}}


1. 개요2. 역사3. 상세
3.1. AXI
3.1.1. AXI-Lite3.1.2. AXI-Stream
3.2. ACE3.3. CHI3.4. AHB3.5. APB
4. 기타5. 여담6. 관련 문서

1. 개요

Advanced Microcontroller Bus Architecture

AMBA는 칩 내부에서 사용되는 상호 연결 기술로, Arm이 개발한 개방형 표준 규격이다. SoC 내부에서 CPU, 메모리 컨트롤러, 주변장치 등 다양한 블록 간의 효율적인 통신을 위해 설계되었다. 구현에 로열티가 없어 ARM 기반 기기뿐만 아니라 업계 표준으로 널리 사용되고 있다.

현재 최신 버전은 AMBA 5이다.

2. 역사

1990년대 중반 SoC 설계가 본격화되면서 CPU 코어, 메모리 컨트롤러, 각종 주변장치를 서로 다른 회사에서 가져와 한 칩에 집적하게 되었고, 당시에는 통일된 표준 규격이 없었기 때문에 블록을 조합할 때마다 서로 다른 인터페이스를 잇는 회로를 새로 설계해야 했다.

CPU 코어 설계(IP) 라이선스가 본업인 ARM으로서는 자사 코어가 다른 회사에서 설계한 주변장치들과 바로 연결되는 표준 인터페이스가 필요했고, 1996년 AMBA를 공개했다.

AMBA 1은 시스템 버스인 ASB와 주변장치용 APB로 구성되었으며, 이후 미세공정에서 ASB의 동작 문제로 AMBA 2에서 AHB가 추가되어 ASB를 대체하였다.

2003년 공개된 AMBA 3에서 고성능 인터페이스 AXI가 추가되었다.

3. 상세

AMBA는 APB, AHB, AXI, CHI 등 여러 프로토콜을 포함한다.

3.1. AXI

Advanced eXtensible Interface

AMBA 3에서 도입된 고성능 인터페이스. AMBA 3 시절의 AXI는 그냥 AXI였다가 AXI4가 나오면서 구버전이 AXI3로 재명명되었다.

읽기 주소(AR)/읽기 데이터(R)/쓰기 주소(AW)/쓰기 데이터(W)/쓰기 응답(B)의 5개 독립 채널로 구성된다. 채널마다 VALID/READY 핸드셰이크로 흐름을 제어한다.

전송은 버스트 단위로 이루어진다.

3.1.1. AXI-Lite

AXI의 단순화된 버전으로, 복잡한 버스트 기능을 제거하였다.

3.1.2. AXI-Stream

주소 지정 없이 valid(TVALID), ready(TREADY), last(TLAST) 신호를 사용하여 데이터를 전송하는 프로토콜이다.

비디오 파이프라인이나 DSP 데이터패스처럼 한 방향으로 흘러가는 설계에서 사용된다.

3.2. ACE

AXI Coherency Extensions

AMBA 4에서 추가된 AXI의 캐시 일관성 확장. 멀티코어 시스템에서는 같은 주소의 데이터가 여러 코어의 캐시에 복사되는데, 소프트웨어가 이를 일일이 관리하지 않아도 되도록 하드웨어가 캐시 사이의 일관성을 유지해 준다.

AXI의 5개 채널에 AC, CR, CD 3개 채널을 추가하여 스누핑을 구현하였다. 캐시 라인 상태는 MOESI로 관리된다.

3.3. CHI

Coherent Hub Interface

AMBA 5에서 도입된 일관성 인터커넥트 프로토콜로, Arm이 서버 시장에 진출하며 ACE의 한계를 보완하기 위해 만들었다.

기존 스눕 기반 일관성 관리 대신 디렉토리 구조를 도입하였으며, 보내는 쪽이 받는 쪽의 상태를 확인해야 했던 기존 VALID/READY 방식 대신 크레딧 기반 제어를 사용한다.

Arm 서버 칩 및 Armv9 레퍼런스 코어 기반 SoC에서 사용한다.

3.4. AHB

Advanced High-performance Bus

AMBA 2에서 도입된 시스템 버스로, AMBA 1의 ASB를 대체한다.

AXI 도입 이후 주류에서는 밀려났지만, 단순한 만큼 구현 면적이 작아 MCU에서는 여전히 주력으로 사용된다.

3.5. APB

Advanced Peripheral Bus

주변장치 제어용 인터페이스이다. 전송 하나에 최소 2사이클이 걸리는 가장 단순한 프로토콜로, 속도가 느려도 되는 주변장치의 제어 레지스터 접근에 쓰인다.

일반적으로 AHB나 AXI 아래에 브리지를 거쳐 연결되며, Arm 기반 MCU에서 ADC, SPI, I2C 등을 사용할 때 자주 볼 수 있다.

4. 기타

  • AXI 사양에서는 데드락 방지를 위해 보내는 쪽이 상대의 READY 신호에 의존해서 VALID 신호를 올리는 것을 금지한다.
  • AXI 버스트는 4KB 경계를 넘을 수 없다. 4KB는 페이지 크기의 최소 단위라서 버스트가 경계를 넘으면 주소 변환 결과와 메모리 속성이 중간에 바뀔 수 있기 때문이다.

5. 여담

  • Zynq-7000의 PS 포트는 AXI4가 아니라 AXI3이다. 이는 칩 설계 시점에 AXI4가 확정되기 전이었기 때문으로, Vivado를 통해 제공되는 PL 쪽 IP는 대부분 AXI4라서 툴이 중간에 프로토콜 변환 로직을 삽입한다.
  • Altera FPGA에는 Avalon이라는 자체 버스가 있지만 AXI도 함께 지원하며, Platform Designer가 두 규격 사이의 브리지를 자동 생성한다.
  • RISC-V 진영에는 SiFive가 만든 TileLink라는 자체 프로토콜이 있지만, RISC-V SoC 중 AXI/APB를 쓰는 경우도 꽤 있다.
  • 2021년 무렵부터 Arm은 당시의 DEI 분위기에 맞춰 규격의 master/slave 용어를 manager/subordinate로 바꿨다.

6. 관련 문서