상세 컨텐츠

본문 제목

[AXI] ARM의 AMBA BUS 란?

programming/AXI

by 보라돌멩이 2020. 8. 3. 11:41

본문

"BUS란?"

BUS : CPU에서 메모리나 입출력 기기에 데이터를 송출하거나 반대로 메모리나 입출력 기기에서 CPU에 데이터를 읽을 때 필요한 전송로이다. CPU와 메모리 또는 입출력 기기 간에 어떤 곳으로도 데이터를 전송할 수 있으므로 쌍방향 버스라고 한다.

"여러 블록들이 상호 데이터를 전송하기 위해 이들 블록들을 전기적으로 연결한 공유 신호선"

 

* Peripheral : 주변기기

 

"AMBA(Advanced Microcontroller Bus Architecture)란?"

ARM사의 BUS protocol이다.

종류로는 AHB, ASB, APB, AXI가 있다.

 

* AHB(Advanced High Performance Bus) 

 : 고속으로 동작하는 장치들이 연결되는 버스

 

* ASB(Advanced System Bus)

 : 고속으로 동작된다. AHB와 달리 Rising Edge와 Falling Edge를 모두 사용한다.

 

*APB(Advanced Peripheral Bus)

 : 비교적 느린 속도의 주변장치를 제어한다. 전력소모를 줄이기 위해 간단한 인터페이스를 갖는다.

 

 

###############################################################################################

버스가 3개로 나누어진 이유는 각 장치마다 전송속도가 다르기 때문이다.

만약 통신속도가 느린 디바이스가 AHB버스와 통신하고 있는데, 통신속도가 빠른 디바이스가 통신하려고 해도

AHB버스는 이미 앞의 느린 디바이스가 사용중이기 때문에 앞의 통신이 종료 될 때까지 기다려야 한다.

이는 고속디바이스의 효율을 살릴 수 없다.

따라서 저속 버스도 만들어서 통신속도가 느린 장비는 저속으로 동작되는 버스와 통신하고

고속 디바이스들은 고속으로 통시하는 버스를 사용하게 된다.

 

AHB버스는 Multiplex Bus 기반이다.

이는 주소라인과 제어라인 그리고 데이터 라인까지 모두 공유하는 것을 의미한다.

처음에 주소를 전송한 다음에 데이터를 전송해준다.

ASB버스는 주소, 제어, 데이터라인이 모두 분리되어 있는데 AHB보다 효율면에서는 떨어진다.

###############################################################################################

 

*AXI(Advanced eXtensible Interface)

 : 다중채널 버스로, 읽기/쓰기에 최적화 되어있는 버스이다. 채널 도입으로 독립적으로 작동이 가능하다. 

  AHB버스는 저속 디바이스와의 데이터 전송이 존재하면 후속 디바이스와의 데이터 전송을 기다려야 한다.

  저속장치가 통신하고 후에 고속 디바이스가 후속으로 전송할 경우 서비스의 속도를 살릴 수 없다.

  하지만 AXI의 채널의 경우 제약이 없어 더 빠르게 정보를 전달할 수 있다.

 

<AXI는 다음 게시물에서 더 다루도록 한다.>

 

 

[출처] wh00300.tistory.com/1

 

ARM의 AMBA BUS 종류

BUS란 CPU에서 메모리나 입출력 기기에 데이터를 송출하ㅓ나 반대로 메모리나 입출력 기기에서 CPU에 데이터를 읽어들일 때 필요한 전송로이다. CPU와 메모리 또는 입출력 기기 간에 어떤 곳으로도

wh00300.tistory.com

 

'programming > AXI' 카테고리의 다른 글

[AXI] AXI protocol에 대하여...(1)  (1) 2020.08.13
[AXI] AXI4-Lite Interface란?  (0) 2020.08.03
[AXI] AXI버스란?  (0) 2020.08.03

관련글 더보기