버스 중재

IT 위키
Bus Arbitration; 버스 조정
여러 장치가 버스를 동시에 쓰려 할 때 누가 먼저 쓸지를 정하는 방식

시스템 버스는 여러 장치가 나눠 쓰는 공용 통로라 한 번에 하나만 전송할 수 있다. 그래서 버스를 쓰겠다고 요청한 장치(버스 마스터 후보) 중 하나를 골라 사용권을 주어야 한다.

중재기의 위치

[편집 | 원본 편집]
  • 중앙 집중식 : 중재기 하나가 모든 요청을 받아 판정한다
    • 데이지 체인 : 버스 승인 신호를 장치에 직렬로 연결한다. 앞쪽 장치가 우선순위가 높다. 회선이 적게 들지만 앞쪽 장치가 고장나면 뒤쪽이 모두 막힌다
    • 폴링 : 중재기가 장치를 차례로 물어본다. 순서를 바꿔 우선순위를 조정할 수 있다
    • 독립 요청 : 장치마다 요청·승인 회선을 따로 둔다. 가장 빠르지만 회선이 많이 필요하다
  • 분산식 : 장치들이 스스로 우선순위를 비교해 결정한다

우선순위 방식

[편집 | 원본 편집]
  • 고정 우선순위 : 장치마다 우선순위를 미리 정해 두고 바꾸지 않는다. 구현이 단순하지만 우선순위가 낮은 장치가 계속 밀리는 기아 상태가 생긴다
  • 가변 우선순위 : 상황에 따라 우선순위를 계속 바꾼다. 기아 상태를 막고 장치들에 고르게 기회를 준다

가변 우선순위의 종류

[편집 | 원본 편집]
  • 회전 우선순위(Rotating Priority) : 버스를 쓴 장치를 맨 뒤로 보내 순서를 돌린다
  • 임의 우선순위(Random Priority) : 난수로 고른다
  • 동등 우선순위(Equal Priority) : 모든 장치를 같은 순위로 두고 요청 순서대로 처리한다
  • 최소 최근 사용(LRU, Least Recently Used) : 가장 오래 쓰지 않은 장치에 먼저 준다
  • 최초 요구 우선(FIFO) : 먼저 요청한 장치에 먼저 준다

같이 보기

[편집 | 원본 편집]