관리 메뉴

공부 기록장 💻

[컴퓨터구조] 시스템 버스, I/O 및 인터럽트 본문

# CS Study/Computer Architecture

[컴퓨터구조] 시스템 버스, I/O 및 인터럽트

dream_for 2021. 6. 6. 01:10

 

시스템 버스(System Bus)

 

버스(Bus)

- 컴퓨터 시스템의 구성 요소들(CPU, 기억장치, I/O 장치들) 을 상호 연결해주는 중심 통로

 

버스 대역폭(Bus Bandwidth)

- 버스의 속도를 나타내는 척도

- 단위 시간당 전송할 수 있는 데이터 양

    - 버스 클록 주기 * 버스폭(BYTE단위)

  •     버스 클록의 주파수가 50MHz(클록주기 20ns), 데이터 버스 폭이 64비트(8바이트)인 경우, 버스 대역 폭은 8 *(50*10^6) = 400[Mbytes/sec] 

- 버스 클록의 주기에 의해 결정

 

 

기능에 따른 버스의 종류

 

1. 데이터 버스(Data bus)

- 시스템 요소들 사이에 데이터(값)를 전송하는데 사용되는 선들의 집합

- 양방향 전송(Bidirectional Transfer)

- 버스 폭(선들의 수) = CPU와 기억장치 사이에 한번에 전송되는 비트 수

 

2. 주소 버스(Address Bus)

 

3. 제어 버스(Control Bus)

 

데이터 버스(data bus)
– 시스템 요소들 사이에 데이터를 전송하는 데 사용되는 선들의 집합
– 양방향 전송(bidirectional transfer)
– 버스 폭(선들의 수) = CPU와 기억장치 사이에 한 번에 전송되는 비트 수
• 주소 버스(address bus)
– CPU가 기억장치로 (또는 기억장치로부터) 데이터 쓰기 (또는 읽기) 동작을 할
때, 해당 기억장소를 지정하는 주소를 전송하기 위한 선들의 집합
– 단방향 전송(unidirectional transfer) : CPU → 기억장치 및 I/O 제어기
– 주소 버스의 비트 수에 의해 시스템에 접속될 수 있는 전체 기억장치 용량이
결정됨
– 직접 주소지정 할 수 있는 기억장소의 단위 : 바이트(byte) 혹은 단어(word)
• 제어 버스(control bus)
– CPU와 기억장치 및 I/O 장치 사이에 제어 신호들을 전송하는 선들의 집합

 


제어 버스

- 기억 장치 및 I/O 장치와의 데이터 교환을 위한 제어 신호들 (기억장치 쓰기/읽기 신호, I/O 쓰기/읽기 신호)

- 버스 중재를 위한 제어 신호들

0 인터럽트 메커니즘을 위한 제어 신호들

 

중재 버스(Arbitration Bus)

- 버스 마스터(Bus Master) : 시스템 버스에 접속되는 요소들 중에서 버스 사용의 주체가 되는 요소들(CPU< 기억장치 모듈, I/O 제어기)

- 버스 중재(Bus Arbitration) : 시스템 버스에 접속된 두 개 이상의 버스 마슽들이 동시에 버스를 사용하고자 할 때 순서대로 한 개의 마스터씩 버스를 사용할 수 있게 해주는 동작

- 중재 버스 - 1) 버스요구신호(Bus request)  / 2) 버스승인신호(Bus Grant) / 3) 버스 사용중 신호(Bus Busy)

 

인터럽트 버스(Interrupt Bus)

인터럽트 메커니즘을 위한 제어 신호선들의 집합

1) 인터럽트 요구신호 (Interrupt Request) : I/O 장치가 인터럽트를 요구했음을 알리는 신호

2) 인터럽트 확인신호 (Interrupt Acknowledge) : CPU가 인터럽트 요구를 인식했음을 알리는 신호

- 버스 클록 신호(Bus Clock) : 동기식 버스에서 버스 동작들의 시작시간을 일치시키기 위하여 제공되는 공통 클록 신호

- 리셋 신호(Reset) : 모든 시스템 요소들의 동작을 초기화시키는 신호

 

 


시스템 버스의 기본 동작

 

- 쓰기 동작(Write Operation) 순서

1) 버스 마스터가 버스 사용권 획득

2) 버스를 통하여 주소 데이터 및 쓰기 신호 전송

 

- 읽기 동작(Read Operation) 순서

1) 버스 마스터가 버스 사용권 획득

2) 주소읽기 신호를 보내고, 데이터가 전송되어 올 때 까지 대기

 

 

- 버스 동작의 타이밍에 따른 버스의 분류

1) 동기식 버스(Synchronous Bus) : 시스템 버스에서 모든 버스 동작들이 공통의 버스 클럭을 기준으로 발생

2) 비동기식 버스(Asynchronous Bus) : 버스 동작들의 발생 시간이 관련된 다른 버스 동작의 발생 여부에 따라 결정

 

 

 

 


버스 중재 (Bus Arbitration)

 

- 버스 경합(Bus Contention) : 한 개의 시스템 버스에 접속된 여러 개의 버스 마스터들이 동시에 버스 사용을 요구하는 현상

- 버스 중재(Bus Arbitration) : 버스 경합 발생 시, 어떤 기준에 따라 버스 마스터들 중에서 한 개씩만 선택하여 순서대로 버스를 사용할 수 있게 해주는 동작 -> 버스 중재기(Bus Arbiter) : 버스를 중재하는 하드웨어 모듈

 

 

 

 

< 버스 중재 방식의 분류>

 

제어 신호들의 연결 구조에 따른 중재 방식의 분류

 

1. 병렬 중재 방식(Parallel Arbitration Scheme)

- 각 버스 마스터들이 독립적인 버스 요구 신호를 발생하고, 버스 승인 신호를 받아옴

 

- 1) 고정-우선순위 방식(Fixed-Priority Scheme) : 각 버스 마스터에 지정된 우선순위가 고정되어 있는 방식

- 2) 가변-우선순위 방식(Dynamic-Priority Scheme) : 우선순위를 변경할 수 있는 방식

 

2. 직렬 중재 방식(Seiral Arbitration Scheme)

- 버스 요구와 승인 신호 선이 각각 한 개씩만 존재하며, 각 신호 선을 버스 마스터들 간에 직렬로 접속하는 방식

 

- 1) 중앙집중식 직렬 중재 방식 - 하나의 중재 신호선(BGNT)이 데이지-체인(dasiy chain) 형태로 모든 버스마스터들을 직렬로 연결

- 2) 분산식 직렬 중재 방식 - 데이지-체인 버스 승인 신호(Daisy-chained Bus Grant Signal: DBGNT)가 버스 중재기들을 순환형(circular) 으로 접속

  

 

 

버스 중재기의 위치에 따른 분류

 

1. 중앙집중식 중재 방식(Centralized Arbitration Scheme) 

- 시스템 내에 버스 중재기가 한 개만 존재하는 방식

- 버스 마스터들이 발생하는 버스 요구 신호들은 하나의 중재기로 보내지고, 중재기는 정해진 중재 원칙에 따라 버스마스터에게 승인 신호를 발생

 

2. 분산식 중재 방식(Decentralized Arbitration Scheme)

- 여러 개의 버스 중재기들이 존재하며(일반적으로 각 버스마스터가 중재기를 한 개씩 가짐), 버스 중재 동작이 각 마스터의 중재기에 의하여 이루어지는 방식


 

1) 중앙집중식 고정-우선순위 중재방식

- 모든 버스 마스터들이 하나의 버스 중재기에 접속

- 중재기와 가장 가까이 위치한 버스마스터 1 이 가장 높은 우선순위, 버스마스터4가 가장 낮은 운선순위를 가지는 것으로 가정

 

 

2) 분산식 고정-우선순위 방식

- 모든 버스 마스터들이 중재기를 한 개씩 보유

- 중재 동작

 

 

3) 가변 우선순위 방식

- 시스템의 상태(또는 조건)에 따라 각 버스 마스터들의 우선순위를 계속 변화시키는 방식

회전 우선순위(rotating priority) 방식 

 


폴링 방식(Polling Scheme)

- 폴링 방식: 버스 사용을 원하는 마스터가 있는지를 버스 중재기가 주기적으로 검사하여 사용 승인 여부를 결정

 

1) 하드 웨어 폴링 방식

- 버스 중재기오 버스 마스터 간에 별도의 폴링 선(polling line)이 존재

 

2) 소프트웨어 폴링 방식

- 폴링의 순서와 과정을 버스 중재기 내 프로세서가 관장하는 방식(프로그램 실행)

 

 


 

I/O 장치의 접속

 

I/O 제어

- I/O 장치가 시스템 버스에 직접 접속되지 못하는 이유:

=> 인터 페이스 장치인 I/O 제어기 (I/O Controller) 사용

 

I/O 제어기의 주요 기능

- I/O 장치의 제어와 타이밍 조정

- CPU와의 통신 담당

- I/O 장치와의 통신 담당

- 데이터 버퍼링(Data Buffering) 기능 수행

- 오류 검출

 

 

 

프로그램을 이용한 I/O (Programmed I/O)

- CPU가 반복적으로 I/O 장치의 상태를 검사하며 I/O 동작을 처리하는 방식

 

 


인터럽트를 이용한 I/O

 

- 인터럽트-구동(Interruptive-driven I/O) : 인터럽트 메커니즘을 이용

 

 

1. 다중-인터럽트 방식

- 각 I/O 제어기와 CPU 사이에 별도의 인터럽트 요구(INTR: Interrupt Request)선과 인터럽트 확인(INTA: Interrupt Acknowledge) 선을 접속하는 방법

 

2. 데이지-체인 방식

- CPU로부터 발생되는 INTA 출력 선을 I/O 제어기들에 직렬로 접속하는 방식

- 인터럽트를 요구한 I/O 장치는 AIn 입력을 받는 즉시 자신의 고유 ID 번호 (인터럽트 벡터: Interrupt Vecotr)를 데이터 버스를 통해 CPU로 전송

 

3. 소프트웨어 폴링 방식

- CPU가 모든 I/O 제어기들에 접속된 TEST I/O 선을 이용하여 인터럽트를 요구한 장치를 검사하는 방식 (인터럽트 플래그 세트되어 있는지 검사)

 


직접기억장치액세스(Direct Memory Access: DMA)

 

DMA

CPU의 개입 없이 I/O 장치와 기억장치 사이에 데이터를 전송하는 방식 - 사이클 스틸링(Cycle Stealing)

- 방법: CPU가 주기억장치를 액세스 하지 않는 시간 동안 시스템 버스를 사용해 주기억장치와 I/O 장치 간의 데이터 전송

 

DMA 제어기의 내부 구조

- 문제점1, 2

 

 

I/O 프로세서 (I/O 채널)

- IOP 보드에 포함될 요소들

 

 

728x90
반응형
Comments