본문 바로가기
전자/임베디드 시스템

Arbiter Circuit

by Begi 2018. 9. 30.
반응형

아비터

아비터 (Arbiter)는 공유 자원을 사용할 때 엑세스를 제어하는 장치를 의미한다. 복수의 프로세서가 하나의 장치를 공유할 때 엑세스 권한을 얻기 위해 아비터를 사용한다.

 

버스 아비터 (Bus Arbiter)는 멀티 마스터 버스에서 버스 사용 권한을 얻기 위해 사용된다. 각각의 프로세스에서 버스를 요구 (Request)하면 아비터는 한번에 하나의 프로세서만 버스를 사용할 수 있도록 승인 (Grant) 한다.

 

아비터는 크게 동기 아비터 (Synchronous Arbiter)와 비동기 아비터 (Asynchronous Arbiter)가 있다. 비동기 아비터는 Metastability 문제가 있고 아비터 승인을 위한 지연 시간이 고정되어 있지 않고 유동적이고 예측할 수 없는 문제가 있다.

 

아비터 로직

다음 그림과 같이 2개의 프로세서로 구성된 시스템에서 버스의 권한을 얻기 위해 REQ 신호를 사용한다.

 

 

A가 버스 권한을 얻는 과정은 다음과 같이 A에서 REQ_A 신호를 B로 보낸 후 버스를 사용한다. B에서는 REQ_A 신호를 읽어 A가 버스를 사용하고 있음을 인식하고 대기 한다.

 

 

이와 같은 로직에서 A와 B가 동시에 버스 권한을 요청하면 다음 그림과 같이 A와 B가 동시에 버스를 사용하여 충돌이 발생하는 문제가 있다.

 

 

이와 같은 버스 충돌을 방지하기 위해서는 각각의 프로세서에서 REQ 값을 보낸 후 일정 지연시간 후 다시 한번 검사하고 만약 충돌이 감지되면 정해진 우선순위에 따라 REQ를 철회하는 것이다. 아래 그림에서는 B가 REQ를 철회했다.

 

 

☞ 상호배제 알고리즘

 

반응형

'전자 > 임베디드 시스템' 카테고리의 다른 글

Watchdog 프로그램에서 위치  (0) 2019.03.09
ATmega128 입출력 포트와 클럭  (0) 2018.10.12
BeagleBoard, BeagleBone 보드  (0) 2018.09.07
JTAG과 cJTAG과 SWD  (0) 2018.07.28
AVR 마이크로 컨트롤러  (0) 2018.07.27

댓글