-
AMBA - (Advanced Microcontroller Bus Architecture)카테고리 없음 2022. 12. 28. 00:03
머리말 : 오래전에 산 임베디드 레시피 책을 다시 읽어보게 만들었던 주제이다. 그 당시 읽었을 때는 잘 몰랐었던 것들이 지금 와서야 이해할 수 있었다. 그 동안 많은 배경지식이과 경험이 쌓였을 것이다.
고성능의 ARM 계열 MCU를 다루게 되면서 간과했던 부분을 정리해보고자 이 글을 작성하게 되었다. 임베디드 엔지니어라고 하면서 ARM 구조에 대해서 제대로 파악하고 있지 않다는 점. 또한 FPGA 엔지니어와 소통을 조금 더 잘 할 수 있지 않을까 하는 생각에서 말이다. 다른 사람이 보면 이 정도는 기본이 아닌가 라는 생각이 들 수 도 있겠다. 아무튼...
AMBA?
암바? A.M.B.A? 사실 이 명칭을 뭐라고 부르는지 잘 모르겠다. 나는 편의상 암바라고 부르기로 했다. (이게 조금 더 기억하기에 용이할 것 같다.)
그래서 AMBA가 무엇이냐. ARM에서 개발한 SoC용 버스 규격이라고 한다. (Advanced Microcontroller Bus Architecture) 이 머리글자를 따와서 AMBA 로 지은 것이다. 일반적인 SoC에는 CPU, GPU, Memory, DSP, Video Serial Interface 등 여러 장치들이 단일 칩에 포함되어 있다. 이렇게 다양한 Block 또는 IP 간 통신을 효율적으로 운용하기 위해 개발되었다.
AMBA의 첫 번째 버전인 AMBA 1.0은 1996년에 공개 되었으며 무료로 제공한다. 1999년 AMBA 2.0버전에서 ASP가 사라지고 AHB가 최초로 도입되며 해가 지날수록 발전한다. 2003년 AMBA 3.0에서 AXI가 도입되었다. AMBA 4.0은 2010년에 ACE 프로토콜을 도입했으며 2013년에 CHI를 추가로 출시한다.
- APB (Advanced Peripheral Bus)
- APB는 주변장치들과 통신 위한 Bus이다. 저전력, 저대역폭으로 고성능을 필요로 하지 않는 주변장치들(UART, LCD 등)에 주로 사용된다.
- AHB (Advanced High-perfromance Bus)
- AHB는 이름에서 볼 수 있듯 고성능을 필요로 하는 장치와 통신하기 위해 사용하는 Bus이다. 주로 DMA, DSP, 메모리와 같은 장치들과 통신하기 위해 사용한다.
- ASB (Advanced System Bus)
- 위의 도표를 참고해보자. AHB가 등장하기 이전에 고성능을 필요로 하는 장치에서 사용된 Bus이다. AHB가 등장한 이후부터는 AHB보다 낮은 성능을 필요로 하는 장치에서 사용된다.
- AXI (Advanced eXtensible Interface)
- AHB의 단점을 보완하고 업그레이드 된 인터페이스이다. Read/Write, Address 등 독립된 채널을 통해서 데이터를 전송 할 수 있다. 메모리 컨트롤러의 initial access latency에 이점이 있다.
- ACE (AXI Coherency Extension)
- ACE는 AXI4의 확장판으로 생각 할 수 있다. 주로 캐시 엑세스, 트랜잭션 관련 기능인 것 같다.
- CHI (Coherent Hub Interface)
- ACE의 업그레이드 버전이다. 모바일, 네트워킹, 자동차, 데이터 센터 등 일관성이 필요한 어플리케이션에 사용된다고 나와있다. (네트워크 I/O, 노드 클러스터 등)
정리
버스가 나누어진 이유는 각 장치마다 전송속도가 다르기 때문이다.기술 발전에 의해서 고성능을 필요로 하는 버스를 사용해야 할 때도 있고, 이미 충분한 자원으로 인해 저성능의 버스를 사용해야 할 때도 있을 것이다. 닭 잡는데 소 잡는 칼을 쓸 수 없으니..잘 공부해서 인터페이스 별로 알맞게 사용하면 된다.! 비용적인 측면도 아낄 수 있을 것이다.
Reference◇ http://egloos.zum.com/donghyun53/v/4087409
◇ https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=esoclab&logNo=20174360379
◇http://recipes.egloos.com/4991780
◇ https://wh00300.tistory.com/1◇ https://developer.arm.com/Architectures/AMBA
◇ https://electronic-hwan.tistory.com/entry/AMBA-Bus-AXI-Bus
- APB (Advanced Peripheral Bus)