컴퓨터구조론#13

LeeMir, 24 May 2021

제7장 시스템버스, I/O 및 인터럽트(이어서)


시스템 버스의 기본 동작
  • 읽기 동작 순서
    • 버스 마스터가 버스 사용권 획득
    • 주소와 읽기 신호를 보내고 데이터가 전송되어 올 때까지 대기
  • 쓰기 동작 순서
    • 버스 마스터가 버스 사용권 획득
    • 버스를 통하여 주소와 데이터 및 쓰기 신호 전송
  • 버스 동작의 타이밍에 따른 버스의 분류
    • 동기식 버스
      • 시스템 버스에서 모든 버스 동작들이 공통의 버스 클럭을 기준으로 발생
      • 버스 클럭의 주기는 가장 오래 걸리는 버스 동작의 소요 시간을 기준으로 결정
        • 클럭 주기보다 더 짧은 시간이 걸리는 버스 동작의 경우에는 동작이 완료된 후에도 다음 주기가 시작할 때까지 대기해야 함
    • 비동기식 버스
      • 버스 동작들의 발생 시간이 관련된 다른 버스 동작의 발생 여부에 따라 결정
      • 버스 클럭이 아닌 MSYN(master, CPU)과 SSYN(slave, DRAM)이 존재
        • 읽기 요구 MSYN 0 => 1
        • 요구 확인 및 데이터 전송 SSYN 0 => 1
        • 데이터 확인 MSYN 1 => 0
        • 데이터 확인 확인 SSYN 1 => 0
      • 각 버스 동작이 완료 즉시 연관된 다음 동작이 발생하기 때문에 동기식 버스에서와 같이 낭비되는 시간이 없음
      • 연속적 동작을 처리하기 위한 인터페이스 회로가 요구되어, 복잡해짐
    • 소규모 컴퓨터에서는 비동기식 버스를, 일반적인 컴퓨터 시스템에서는 동기식 버스를 사용함
      • 슈퍼 컴퓨터, 중형급 이상에서도 비동기식 버스를 사용
버스 중재
  • 버스 경합
    • 한 개의 시스템 버스에 접속된 여러 개의 버스 마스터들이 동시에 버스 사용을 요구하는 현상
  • 버스 중재
    • 버스 경합이 발생하는 경우, 어떤 기준에 따라 버스 마스터들 중에서 한 개씩만 선택하여 순서대로 버스를 사용할 수 있게 해주는 동작
  • 버스 중재기(Bus Arbiter)
    • 버스를 중재하는 하드웨어 모듈
  • 버스 중재기의 위치에 따른 분류
    • 중앙집중식 중재 방식
      • 시스템 내에 버스 중재기가 한 개만 존재하는 방식
    • 분산식 중재 방식
      • 여러 개의 버스 중재기들이 존재
  • 제어 신호들의 연결 구조에 따른 중재 방식의 분류
    • 병렬 중재 방식
      • 각 버스 마스터들이 독립적인 요구 신호를 발생하고, 별도의 버스 승인 신호를 받음
        • 버스 마스터들의 수와 같은 개수의 버스 요구 선 및 승인 신호 선 필요
    • 직렬 중재 방식
      • 버스 요구와 승인 신호 선이 각각 한 개씩만 존재하며, 각 신호 선을 버스 마스터들 간에 직렬로 접속하는 방식
  • 병렬 중재 방식
    • 중앙집중식 고정-우선순위 중재 방식
      • 모든 버스 마스터들이 하나의 버스 중재기에 접속
      • 한 버스 마스터가 버스 사용 요구를 했는데 다른 버스 마스터가 버스를 사용중이라면, 그 동작이 끝나야 버스 사용 가능
    • 분산식 고정-우선순위 중재 방식
      • 모든 버스 마스터들이 하나씩의 중재기를 보유
      • 각 중재기는 자신보다 더 높은 우선순위를 가진 마스터들의 버스 요구 신호들을 받아서 검사하여, 그들이 버스 사용 요구를 하지 않은 경우에만 자신의 버스 마스터로 버스 승인 신호 발생
  • 직렬 중재 방식
    • 중앙집중식 직렬 중재 방식(CSA)
      • 버스 중개기 하나에 하나의 버스 사용승인 신호선(BGNT)이 데이지-체인 형태로 모든 버스 마스터들을 직렬로 연결
      • 우선 순위는 버스 신호선이 연결된 순서대로 결정
    • 분산식 직렬 중재 방식(DSA)
      • 여러 버스 중개기가 BGNT로 직렬로 연결됨
      • 데이지-체인 버스 승인 신호 선으로 버스 중재기들을 순환형으로 접속
  • 폴링 방식
    • 버스 사용을 원하는 마스터가 있는지를 버스 중재기가 주기적으로 검사해 사용 승인 여부를 결정
    • 중재기가 폴링 주소를 발생해 검사할 마스터를 지정한 후 그 마스터가 버스 사용을 원하는지 물어봄
    • 중재기가 마스터를 검사하는 순서에 의해 우선 순위 결정
    • 하드웨어 폴링 방식
      • 버스 중재기와 각 버스 마스터 간에 별도의 폴링 선이 존재
      • 2진 코드화된 폴링 주소를 이용하면 폴링 선의 수가 log N개로 감소
      • 공통의 BREQ 선과 BBUSY 선이 각각 한 개씩 존재
      • 한 번 설계하면 폴링의 우선 순위를 변경할 수 없음
    • 소프트웨어 폴링 방식
      • 폴링의 순서와 과정을 버스 중재기 내의 프로세서가 관장하는 방식
      • 프로그램을 실행해야 하므로 하드웨어 방식에 비해 속도가 더 느림
      • 우선 순위를 변경하기 용이함
    • 가변 우선순위 방식
      • 임의 우선순위 방식
        • 각 중재 동작이 끝날 때마다 우선운위를 임의(랜덤)로 결정
      • 동등 우선순위 방식
        • 모든 마스터들이 동등한 우선순위를 가지며, FIFO 알고리즘 사용
      • 최소-최근 사용(LRU) 방식
        • 최근 가장 오랫동안 버스를 사용하지 않은 버스 마스터에게 최상위 우선순위 할당
        • 회로가 매우 복잡함
      • 회로 우선순위 방식
        • 버스 사용 승인을 받은 마스터는 최하위 우선순위를 가지며, 바로 다음에 위치한 마스터가 최상위 우선 순위를 가지 도록 함