Santos의 개발블로그

입출력시스템 본문

CS(Computer science)/컴퓨터 구조&운영체제

입출력시스템

Santos 2020. 1. 22. 13:06

입출력 시스템 

컴퓨터는 외부 데이터를 중앙처리치나 기억장치로 읽어들이기도 하고, 외부로 출력하기도 하는데 이러한 일련의 과정들이 입출력 시스템에 의해 처리 된다. 

입출력 시스템의 구성요소 

- 입출력 시스템의 구성요소 -

아래와 같이 입출력 시스템은 5개의 구성요소로 나누어져 있다. 

 

1. 입출력장치

2. 입출력장치 제어기 

3. 입출력장치 인터페이스 

4. 입출력 버스

5. 입출력 제어기 

 

1. 입출력 장치 

사용자와 컴퓨터 시스템의 인터페이스

가. 입출력 장치의 특징

 - 사용자는 입력장치를 이용하여 컴퓨터 시스템에 프로그램과 데이터를 제공할 수 있다. 

 - 출력장치는 컴퓨터 시스템이 처리한 결과를 사용자에게 제공한다. 

 - 컴퓨터 시스템의 사용은 출력장치의 사용에서 종료된다. 

 

나. 입출력 장치의 분류 

- 입출력 장치의 분류 -

 1) 입력장치 

- 키보드: 주로 문자를 입력하거나 현재 커서의 위치를 이동하는데 사용된다. 

- 마우스: 영역을 지정하거나, 아이콘 메뉴를 선택하는데 사용된다. 

- 스캐너: 사진이나 문서를 빛을 이용하여 디지털화하여 입력한다. 

 

 2) 출력장치 

- 모니터: 프로그램의 결과를 시각적으로 직접 확인할 수 있다. 

- 프린터: 결과물을 종이로 인쇄한다. 

 

2. 입출력장치 제어기 

입출력에 필요한 입출력장치 고유의 기능만 다루는 입출력 제어기 

가. 입출력장치 제어기의 특징

 - 입출력 매체를 입출력할 수 있는 위치에 정렬시키거나, 입출력장치 내에 있는 기계적인 요소를 이동시키는 작업을 수행한다.

 - 입출력장치 제어기는 입출력 제어기처럼 주기억장치와 입출력 장치의 특성의 많은 차이를 보완해 주는 용도로 사용되지만, 기능에 따라 이름이 달리 불린다. 

 

* 입출력장치 제어기 = 입출력에 필요한 입출력장치 고유의 기능만 다루는 입출력 제어기 

* 입출력 제어기 = 입출력장치의 공통적인 기능을 다루는 제어기 

 

3. 입출력장치 인터페이스 

입력장치 인터페이스: 입력장치에서 입력된 디지털 형태의 데이터와 컴퓨터 시스템 내에 있는 중앙처리장치나 주기억장치 내에서 다루는 형태의 데이터의 차이점을 해결하는 장치 
출력장치 인터페이스: 중앙처리장치나 주기억장치 내에서 다루는 데이터와 출력장치가 출력하기 위하여 다루는 데이터의 차이점을 해결하는 장치

 

가. 입출력장치 인터페이스 특징

 - 입출력장치와 주기억장치는 여러 가지 동작의 차이점이 있기 때문에 입출력장치 제어기를 직접 주기억장치 버스 혹은 입출력 버스에 접속이 불가능한데, 입출력장치 제어기는 입출력 인터페이스를 통하여 버스에 접속을 한다. 

 

  * 여러 가지 동작의 차이점

   (1) 데이터 전송 속도의 차이 

   (2) 데이터 처리 단위의 차이

   (3) 에러율의 차이 

 

- 입출력 포트라고도 한다.

 

 

4. 입출력 버스  

입출력장치 인터페이스와 컴퓨터 시스템 사이에 위치하여 데이터를 전달하는 경로

가. 입출력 버스의 특징

- 입출력 버스는 대부분의 경우 입출력 제어기를 통해 주기억장치 버스에 접속이 된다. 

- 매우 간단한 컴퓨터의 경우에는 입출력 버스가 직접 중앙처리장치에 연결되기도 한다. 

- 입출력 버스도 주기억장치버스와 마찬가지로 기능별로 데이터버스, 주소버스, 제어버스로 구성된다. 

- 입출력 버스의 한쪽에는 입출력장치 인터페이스가 연결되어있고, 다른 한 쪽에는 입출력 제어기가 연결되어 있다. 

- 입출력 버스를 주기억장치버스에 연결시켜야 하는데, 직접 연결이 불가능하며 입출력 제어기를 사용하여 연결해야 한다. 

 

 나. 입출력 버스의 연결 형태의 따른 분류 

- 독립 입출력 버스 -

  독립 입출력버스 : 주기억장치버스와 입출력버스를 구분하여 사용하는 버스 

 

- 주기억장치 입출력 공용버스 -

  주기억장치 입출력 공용버스 : 주기억장치버스와 입출력버스를 구분하지 않고 공유해서 사용하는 버스 

 

다. 입출력 버스의 버스 중재기 

- 버스는 여러 장치가 하나의 데이터 전달회선을 시간에 따라 멀티플렉싱하여 사용하는 것이기 때문에 한 순간에 하나의 데이터만 전달이 되야만하는데 이떄 버스 사용의 중재기능을 가진 버스 중재기가 필요한다. 

-  데이터 전달을 위하여 버스를 사용하려면 우선 버스 중재기에 버스 사용을 요청해야 하며, 중개기에 의하여 요청이 승인되어야만 이용을 할 수 있다. 

 

라. 버스 중재기의 중재방식 

 

1) 중앙집중식 중재 방식

한 버스의 하나의 중재기를 사용하는 방식으로 모든 장치는 독립된 버스 요청과 버스 허용회선에 의하여 중재기에 연결된다. 

- BR(Bus Request) = 어느 장치가 버스 사용을 요청할 때 중재기에 보내는 신호 

- BG(Bus Grant) = 버스 중재기가 버스 요청신호를 보낸 장치에 사용을 허락하는 신호 

- BB(Bus Busy) =  버스가 사용 중이라는 신호

 

* 중앙집중식 병렬중재기를 사용할 경우에는 중재기 내에 장치들의 우선순위를 정하는 논리회로가 있어야 한다. 

* 중앙집중식 병렬중재기를 사용할 경우에는 높은 우선순위의 장치가 버스 사용을 독접하는 것을 방지할 수 있는 알고리즘이 구현되어 있어야 한다. 

 

 2) 데이지 체인 중재방식

 직렬중재 방식으로 각 장치의 버스 요청신호가 OR로 연결되어 있다.

- 데이지 체인 중재 방식 -

<데이지 체인 중재방식 순서>

 (1) 중재기가 버스 요청을 인식하면 버스 허용신호를 출력하는데, 이 신호는 버스 중재기에서 가장 가까운 곳에 있는 장치에 보내지게 된다. 

 (2) 버스 중재기에서 가까운 순으로 우선순위가 주어지기 때문에 멀리 있는 장치는 신호를 받을 수 없게되는 문제가 발생한다. 

 (3) 우선순위는 버스 중재기 내부에서 결정하는 것이 아닌 외부에 있는 데이지 체인 하드웨어에 의하여 결정된다. 

 

 3) 플링에 의한 중재방식 

하나의 폴링회선이 버스 중재기에서부터 각 장치에 연결되어 있다. 

- 폴링에 의한 중재방식 -

<폴링에 의한 중재방식 순서> 

 (1) 버스 중재기가 버스 요청을 인식하면 어느 장치가 요청했는지 파악하기 위하여 폴링선을 이용하여 폴링계수를 한다. 

 * 폴링계수를 한다 : 각 장치에 부여된 고유번호를 일정한 순서로 폴링선에 보낸다는 의미

 (2) 장치는 폴링선에 나타난 장치번호를 디코드하여 자신의 장치번호와 일치시킨다. 

 (3) 만약 하나의 장치가 요청을 한다면 버스 사용중(BB) 번호를 중재기로 보내고 버스를 사용한다. 

 

5. 입출력 제어기 

주기억장치와 입출력장치 사이에 데이터 전달이 이루어지게 하는 제어기 

- 입출력 제어기 -

가. 입출력 제어기 특징

- 저렴한 컴퓨터 시스템에서는 별도의 입출력 제어기를 두지 않고 그 기능을 중앙처리장치가 수행한다. 

- 중간급 성능의 컴퓨터에서는 별도의 입출력 제어기를 두는데, 중앙처리 장치는 입출력을 시작할 때와 끝날 때만 개입을 하고, 실제 입출력을 수행하는 것은 입출력 제어기가 한다. 

- 입출력은 입출력장치와 주기억장치 사이의 정보 전달을 의미하는데, 정보 전달 시 동작속도, 정보의 단위, 동작의 자율성 등 여러 측면에서 다른 특성을 갖게된다. 이런 특성의 차이를 보완해 줄 수 있는 장치이다.

 

나. 입출력장치와 주기억장치 사이의 다른 특성들 

 동작속도: 입출력 장치는 전자기적인 장치로 되어 있어 속도가 주기억장치에 비해 상당히 느리다. 
  정보의 단위: 주기억장치는 워드(word)이며, 입출력장치는 바이트(byte)이다. 
동작의 자율성:입출력장치는 주기억장치와 달리 자율적으로 동작한다. 
오류 발생률
- 주기억장치는 기억 소자들이 하나의 칩 또는 하나의 보드 내에 포함되므로 오류 검사 및 수정이 가능하기 때문에 오류 발생률이 적다.
- 입출력장치는 전자 기계로 구성되어 있으므로 동작과정에서 전자회로 되어 있는 주기억장치보다 오류 발생률이 높다.

 

다. 입출력제어기의 종류 

 1) 중앙처리장치 제어 방식 

독립된 입출력 제어기가 없고, 중앙처리장치가 입출력 제어기 역할을 하는 시스템

- 중앙처리장치가 입출력 제어기의 역할을 하기때문에 간단한 입출력 제어기의 기능만 포함된다. 

- 2가지 기능이 포함되는데 프로그램에 의한 입출력과 인터럽트 처리에 의한 입출력이다.

 

< 중앙처리장치 제어 방식 단점 >

- 중앙처리장치의 추가적인 작업들이 필요하기 때문에 많은 시간을 낭비하게 된다. 

 

 2) DMA 제어 방식 

DMA제어기를 이용하여 중앙처리장치의 개입 없이 주기억장치에 직접 접근하여 입출력을 행하는 방식 

- DMA 제어기의 내부구조 -

< DMA 제어방식 순서 >

(1) DMA 제어기가 주기억장치에 접근하기 위해 먼저 중앙처리장치에 주기억장치 사이클 요청을 해야 한다. 

(2) 요청신호를 받은 중앙처리장치는 현재 명령어의 실행을 끝낸 후 주기억장치 사이클 허용신호를 보낸다. 

(3) 허용신호에는 주소버스, 데이터버스, 제어버스에 대한 사용권이 포함되어 있다. 

(4) 허용신호를 받은 DMA 제어기는 중앙처리장치의 개입 없이 주기억장치의 버스 제어권을 갖고 데이터 전송을 수행한다. 

(5) 데이터 전송이 끝나면 중앙처리장치에 인터럽트 신호를 보내어 버스 제어권을 다시 중앙처리장치에 넘긴다. 

 

< DMA 제어방식의 단점 > 

- DMA 제어방식은 중앙처리장치에 의한 입출력 방식보다는 효율적이라고 할 수 있지만, 중앙처리장치가 전송에 관여하지 않기 때문에 지능적이지 않다. 

- DMA 제어기는 데이터 전송 사이즈를 다양하게 할 수 없으며, 가상주소나 다양한 계층의 캐시를 제대로 사용할 수 었다. 

- DMA 채널을 정확하게 설정하지 않으면 DMA 전송 중 메모리나 입출력 장치에 있는 데이터 일관성에 문제가 생기고, 다른 장치와 심각한 충돌이 발생한다. 

 

 3) 채널 제어방식

채널이라는 일종의 입출력 프로세서를 이용하여 입출력 작업을 지능적으로 전담하도록 하는 방식

- 채널 제어 방식 -

< 채널 제어 방식 순서 >

(1) 주변장치에서 채널을 통해 주기억장치로 데이터를 전송한다. 

(2) 이때 주변 장치의 데이터 형식은 주기억장치와 중앙처리장치의 데이터 형식과 다르므로 입출력 프로세서는 중간에서 데이터를 재구성한다. ( byte -----> word )

(3) 재구성된 데이터를 주기억장치로 전송한다. 

(4) 전송이 완료되면 입출력 프로세서는 인터럽트를 통해 중앙처리장치와 통신한다. 

 

* 중앙처리장치는 채널이 입출력을 시작하도록 지시하고, 채널이 일을 수행하기 시작하면 중앙처리장치와는 독립적으로 동작한다. 

 

< 채널 제어방식의 단점 >

- 하드웨어적인 비용이 증가한다. 


< 참고자료 >

 

https://www.youtube.com/watch?v=EdTtGv9w2sA&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4

[도서] 컴퓨터구조  - 김형근, 손진곤 지음 -

 

<Computer structures> chapter 15 입출력 장치 end>

 


'CS(Computer science) > 컴퓨터 구조&운영체제' 카테고리의 다른 글

Deadlock  (0) 2020.02.15
프로세스 동기화 및 상호배제  (0) 2020.02.02
가상기억장치  (0) 2020.01.17
기억장치  (0) 2020.01.14
제어장치  (0) 2020.01.14
Comments