오늘은 맑음

ARM의 AMBA 종류 본문

Processor

ARM의 AMBA 종류

자전거 타는 구구 2017. 11. 5. 22:17
반응형

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

 

AMBA는 ARM사의 BUS protocol이다.

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

 

AHB(Advanced High Performance Bus)

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

 

ASB(Advanced System Bus)

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

 

APB(Advanced Peripheral Bus)

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

 

 버스가 3개로 나누어진 이유는 각 장치마다 전송 속도가 다르기 때문이다. 만약 통신 속도가 느린 디바이스가 AHB 버스와 통신하고 있다고 하자, 이 때 통신속도가 빠른 디바이스가 통신하려고 해도 AHB버스는 이미 앞의 느린 디바이스가 사용중이기 떄문에 앞의 통신이 종료 될 때 까지 기다려야 한다. 이는 고속디바이스의 효율을 살릴 수 없다. 

 따라서 저속버스도 만들어 통신속도가 느린 장비는 저속으로 동작되는 버스와 통신하고 고속 디바이스들은 고속으로 통신하는 버스를 사용하게 된다.

 

 AHB 버스는  Multiplex Bus 기반이다. 이는 주소라인과 제어라인 그리고 데이터 라인까지 모두 공유하는 것을 의미한다. 처음에 주소를 전송한 다음에 데이터를 전송해준다. 이는 주소, 제어, 데이터 라인이 모두 분리되어 있는 ASB버스보다 효율이 좋다. 

 

 AXI버스도 있는데 이는 AHB의 신호와 타이밍은 일반적인 CPU의 버스 인터페이스와 비슷하나 AXI사양은 약간 구조가 다르다.

 

AXI는 채널을 도입하여 차별화 하였다.  AHB 버스는 저속 디바이스와의 데이터 전송이 존재하면 후속 디바이스와의 데이터 전송을 기다려야 한다. 저속장치가 통신하고 후에 고속 디바이스가 후속을 전송할 경우 서비스의 속도를 살릴 수 없다. 하지만 AXI의 채널의 경우 제약이 없어 계속 정보를 전달할 수 있다.

반응형

'Processor' 카테고리의 다른 글

Data Hazard/RAW, WAR, WAW  (1) 2019.02.19
SIMT 교착상태(deadlock), 기아(starvation)  (0) 2019.02.18
thread, warp 그리고 SIMT  (0) 2019.02.18
cash? cache? 캐시란 무엇인가  (1) 2019.02.18
AXI버스란?  (1) 2017.11.12
Comments