13장. 시스템 버스 다루는 내용 시스템 버스의 개념 다중버스 계층 구조 버스 중재
Section 01 시스템 버스의 연결 보기 [그림 13-1] 시스템 버스의 개념도
컴퓨터의 구성 요소들을 연결하는 공유 전송 매체 Section 02 버스 컴퓨터의 구성 요소들을 연결하는 공유 전송 매체 버스 선의 수는 버스 폭이라고 하며, 한 번에 전송하는 데이터 비트들의 수를 나타냄 버스 선의 수는 기억장치 주소 비트들의 수 및 제어 신호들의 수에 따라 결정 소형 컴퓨터 50 ∼ 100 개의 신호선 중대형급 시스템 100 개 이상의 신호선
버스 대역폭 버스의 속도를 나타내는 척도 단위 시간당 전송할 수 있는 데이터 양 버스 클럭의 주기에 의해 결정 [예] 버스 클럭 주기가 50 nsec (클럭 주파수: 20 MHz) 데이터 버스 폭이 64 비트(8 바이트) 버스 대역폭 8 byte / (50 × 10-9 sec) = 160 [Mbytes/sec]
다중화 버스(Multiplexed bus) 버스의 유형별 분류 전용 버스(Dedicated bus) 기능이 지정되는 버스 데이터 버스, 주소 버스, 제어 버스 다중화 버스(Multiplexed bus) 제어 신호에 의해 여러 목적으로 사용할 수 있는 버스 선의 수가 적기 때문에 공간과 비용을 절감 제어 회로가 복잡하고, 시분할(time multiplexing)방식으로 인한 성능 저하
버스의 기능별 분류 데이터 버스(Data bus) 주소 버스(Address bus) 제어버스(Control bus) [그림 13-2] 시스템 버스의 기능별로 분류된 연결
버스의 기능별 분류 데이터 버스(data bus) 주소 버스(address bus) 시스템 요소 사이에 데이터를 전송하는 데 사용되는 선들의 집합 연결된 장치간에 양방향 전송의 특징 주소 버스(address bus) 기억장치 장소를 지정하는 주소를 전송하기 위한 선들의 집합 CPU에서 기억장치 및 입출력 제어기로의 단방향 전송만이 존재 주소 버스의 비트 수는 기억장치의 주소 수를 결정 주소 버스의 폭이 16-비트 주소지정 가능한 최대 기억장소들의 수 = 216 = 65,536 개 주소 버스의 폭이 24 비트 주소지정 가능한 최대 기억장소들의 수 = 224 = 16,777,216 개
버스의 기능별 분류 제어버스 프로세서와 기억장치와 관련된 제어신호 프로세서와 입출력 장치와 관련된 신호 기억장치 쓰기(memory write) 신호 기억장치 읽기(memory read) 신호 프로세서와 입출력 장치와 관련된 신호 입출력 쓰기(I/O write) 신호 입출력 읽기(I/O read) 신호 전송 확인(transfer acknowledge) 신호 버스 중재에서 사용되는 제어 신호 버스 요구(bus request) 신호 버스 승인(bus grant) 신호 버스 사용 중(bus busy) 신호
버스의 기능별 분류 제어버스 인터럽트 버스에서 사용되는 제어 신호 그 밖의 제어신호 인터럽트 요구(interrupt request) 신호 인터럽트 확인(interrupt acknowledge) 신호 그 밖의 제어신호 버스 클럭(bus clock) 리셋(reset)
동작과 타이밍에 따른 분류 시스템 버스의 기본동작 버스의 동작 타이밍에 따른 분류 쓰기 동작(write operation) 과정 버스 사용권을 획득, 주소와 데이터 및 쓰기 신호를 전송 읽기 동작(read operation)의 과정 버스 사용권을 획득, 주소와 읽기 신호를 보내고 데이터가 전송되어 올 때까지 대기 버스의 동작 타이밍에 따른 분류 동기식 버스(synchronous bus) 모든 버스 동작들이 공통의 버스 클럭을 기준으로 발생 비동기식 버스(asynchronous bus) 버스 동작들의 발생 시간이 관련된 다른 버스 동작의 발생 여부에 따라 결정
동기식 버스와 비동기식 버스 동기식 버스의 특징과 동작 비동기식 버스의 특징과 동작 인터페이스 회로가 간단 버스 클럭 주기가 가장 긴 버스 동작의 소요 시간을 기준으로 결정 짧은 시간이 걸리는 버스 동작의 경우에는 동작이 완료된 후에도 다음 주기가 시작될 때까지 대기 비동기식 버스의 특징과 동작 각 버스 동작이 완료 즉시 연관된 다음 동작이 발생 동기식 버스에서와 같이 낭비되는 시간이 없음 연속적 동작을 처리하기 위한 인터페이스 회로가 복잡 소규모 컴퓨터시스템 : 비동기식 버스를 사용 중형급 이상의 시스템 : 동기식 버스를 사용
Section 03 다중버스 계층 구조 단일버스 구조 전통적인 계층적 다중 버스 3계층의 계층적 다중 버스
단일버스 구조 한 종류의 시스템 버스에 여러 가지 모듈이 연결 많은 장치가 버스에 연결 조정하거나 또는 중재하는 시간 오래 걸림 전파 지연(propagation delay)이 증가 버스 병목 현상이 발생 데이터 전송률을 증가시키거나 버스 폭의 확대로 부분적으로는 해결 가능
CPU는 지역버스(Local Bus)를 이용해서 지역 입출력 제어기(Local I/O controller)와 캐쉬와 연결 전통적인 계층적 다중버스 단일 버스 문제점의 해결책 CPU는 지역버스(Local Bus)를 이용해서 지역 입출력 제어기(Local I/O controller)와 캐쉬와 연결 액세스가 많이 일어나는 기억장치를 위해서 시스템 버스에 단독으로 연결 전파지연과 병목현상을 방지 액세스의 빈도가 적고, 처리 속도가 저속이 장치들은 확장 버스를 거쳐서 연결
전통적인 계층적 다중버스 [그림 13-4] 전통적인 계층적 다중 버스 구조
3계층의 계층적 다중 버스 지역 버스(local Bus) 시스템 버스 고속 버스 브리지 확장버스 그래픽 장치, 비디오 장치, 고속의 통신 장치가 연결 브리지 시스템 버스와 고속 버스에서 전달되는 데이터를 CPU 내의 지역버스로 전달 확장버스 고속을 요하지 않은 외부장치들이 연결
3계층의 계층적 다중 버스 [그림 13-5] 고성능 계층적 다중 버스 구조
여러 개의 버스 마스터가 동시에 버스 사용을 요구 Section 04 버스 중재 여러 개의 버스 마스터가 동시에 버스 사용을 요구 버스 경합(bus contention)상태가 발생 버스 중재 버스 마스터들이 정해진 순서대로 한 개씩 버스를 사용할 수 있게 해주는 동작
제어 신호들의 연결 구조에 따른 중재 방식의 분류 버스 중재 방식의 분류 제어 신호들의 연결 구조에 따른 중재 방식의 분류 병렬 중재 방식: 각 버스마스터마다 독립적인 요구/승인 신호선 직렬 중재 방식: 하나의 요구/승인 신호선을 공유 버스 중재기의 위치에 따른 분류 중앙집중식 중재 방식 : 하나의 버스중재기 존재 분산식 중재 방식: 여러 개의 버스 중재기 존재 우선순위의 결정 방식에 따른 분류 우선 순위가 높은 버스 마스터가 버스를 먼저 사용할 수 있게 한 방법 고정-우선순위 방식 : 버스 마스터에 지정된 우선순위가 고정 가변-우선순위 방식 : 버스 마스터의 우선순위를 상황 따라 변경
버스 요구/승인 신호 등의 제어 신호들이 병렬로 연결 버스 마스터의 수만큼 버스 요구/승인 신호의 제어선 들이 존재하는 방식 병렬 중재 방식 버스 요구/승인 신호 등의 제어 신호들이 병렬로 연결 버스 마스터의 수만큼 버스 요구/승인 신호의 제어선 들이 존재하는 방식 중앙집중식 고정-우선순위 방식(centralized fixed-priority arbitration scheme) 분산식 고정-우선순위 방식(decentralized fixed-priority arbitration scheme) 가변 우선순위 방식
버스 중재기는 미리 정해진 우선 순위 원칙에 따라서 선택된 버스 마스터에게만 승인 신호를 발생 중앙집중식 고정 우선 순위 방식 버스 중재기는 미리 정해진 우선 순위 원칙에 따라서 선택된 버스 마스터에게만 승인 신호를 발생 승인 신호를 수신한 버스 마스터는 버스를 사용 우선 순위가 최초에 결정이 되면 변경 불가능 [그림 13-6] 우선 순위 방식에서 중재 버스 [그림 13-7] 우선 순위 회로도
분산식 고정우선 순위 방식 모든 버스 마스터들이 중재기를 한 개씩 보유 우선 순위를 조사해서 해당 순서가 되었을 때 버스를 사용 중앙집중식에 비하여 중재 회로가 간단하므로 동작 속도가 빠름 한 중재기의 고장이 전체 시스템의 동작에 영향을 미칠 수 있음 [그림 13-8] 분산식 고정 우선 순위 방식의 구성도
시스템의 상태 또는 조건에 따라서 각 버스 마스터들의 우선순위를 계속 변화 가변 우선순위 방식 시스템의 상태 또는 조건에 따라서 각 버스 마스터들의 우선순위를 계속 변화 중재 회로가 복잡 모든 버스 마스터들이 공정하게 버스를 사용 회전 우선순위 방식 임의 우선순위 방식 동등 우선순위 방식 최소 최근 사용(Least-Recently Used : LRU) 방식
회전 우선 순위 방식의 동작 [그림 13-9] 회전 우선 순위 방식의 동작
버스 마스터들이 버스 요구와 승인 신호선과 같은 제어선들에 직렬로 연결 직렬 중재 방식 버스 마스터들이 버스 요구와 승인 신호선과 같은 제어선들에 직렬로 연결 중앙집중식 직렬 중재 방식 분산식 직렬 중재 방식
하나의 중재 신호선(BGNT)이 데이지-체인(daisy-chain)형태로 모든 버스 마스터들을 직렬로 연결 중앙 집중식 직렬 중재 방식 하나의 중재 신호선(BGNT)이 데이지-체인(daisy-chain)형태로 모든 버스 마스터들을 직렬로 연결 우선순위는 버스 승인 신호선이 연결된 순서대로 결정되는 방식 [그림 13-10] 중앙집중식 직렬 중재 방식
버스를 사용하는 중재기의 우측에 DBGNT신호를 활성화 사용을 원하면 BGNT신호를 마스터에 전송 분산식 직렬 중재 방식 데이지-체인 버스 승인 신호(daisy-chained bus grant signal: DBGNT)가 버스 중재기들을 순환형(circular)으로 접속하는 구조 버스를 사용하는 중재기의 우측에 DBGNT신호를 활성화 사용을 원하면 BGNT신호를 마스터에 전송 [그림 13-11] 분산식 직렬 중재 방식
폴링(Polling) 방식 버스 사용을 원하는 버스 마스터가 있는지를 버스 중재기가 주기적으로 검사 하드웨어 폴링 방식 버스 중재기와 각 버스 마스터 간에는 별도의 폴링 선이 존재 2진 코드화된 폴링 주소(binary encoded polling address)를 이용 버스 중재기는 폴링 주소를 발생 검사할 버스 마스터를 지정 그 마스터가 버스 사용을 원하는지 요청 마스터가 버스 사용을 원하면 BREQ 신호를 활성화 버스 중재기는 현재 검사 중인 마스터에게 버스 사용을 허가 마스터가 버스 사용을 원하지 않으면 다음 마스터 소프트웨어 폴링 방식 폴링의 순서와 과정을 버스 중재기내의 프로세서가 관리하는 방식 하드웨어 방식에 비하여 속도가 느림 우선순위 또는 폴링 순서의 변경이 용이
하드웨어 폴링 방식 [그림 13-12] 하드웨어 폴링 방식