제16강 입출력시스템 1
강의내용 입출력시스템의 개요 입출력시스템의 구성요소 입출력장치 입출력장치 제어기 입출력 제어기 입출력장치 인터페이스
입출력시스템의 개요 개 요 입출력시스템 : 입력장치와 출력장치로 구성되며, 주변장치(I/O peripherals)라고도 함. 개 요 입출력시스템 : 입력장치와 출력장치로 구성되며, 주변장치(I/O peripherals)라고도 함. - 입력장치 : 입력정보를 컴퓨터 내부로 읽어 들이는 장치 - 출력장치 : 중앙처리장치가 처리한 결과, 즉 정보를 외부로 전달하는 장치
입출력시스템의 구성 구 성 요 소 구 성 도 입출력 장치( I/O device) 입출력장치 제어기 (I/O device controller) 입출력 제어기(I/O controller) 입출력장치 인터페이스 (I/O interface) 입출력 버스(I/O bus)
입출력시스템의 구성 기본 입출력 시스템 구 성 도 키보드 입력장치와 모니터 출력장치 를 가지고 있는 모든 컴퓨터 시스템 에서 볼 수 있는 입출력 시스템 입출력 제어기가 없기 때문에 모든 입출력 제어기능은 중앙처리장치에 두는 입출력 시스템 중앙처리장치가 입출력을 수행하기 때문에 중앙처리장치에서 수행하는 프로그램의 수행이 지연되므로 기본 입출력 시스템은 비효율적인 시스템 키보드나 모니터와 같은 속도가 느린 입출력장치에만 사용될 수 있다.
입출력시스템의 구성 구 성 도 입출력제어기를 사용한 입출력 시스템 중앙처리장치가 입출력의 수행에 개입함으로써 프로그램의 수행을 기본 입출력시스템을 개선 중앙처리장치가 입출력의 수행에 개입함으로써 프로그램의 수행을 지연시키는 비효율성을 극복한 입출력 시스템 중앙처리장치가 입출력 제어기능을 수행하지 않고 중앙처리장치 대신에 별도의 입출력 제어기를 두어서 입출력에 개입하지 않게 한다.
입출력장치 입출력장치 분 류 사용자와 컴퓨터 시스템과의 인터페이스 중앙처리장치 또는 기억장치와 외부의 입출력 매체 사이에 분 류 사용자와 컴퓨터 시스템과의 인터페이스 중앙처리장치 또는 기억장치와 외부의 입출력 매체 사이에 정보를 전송 중앙처리장치나 기억장치에 비해 속도가 느리고, 처리하는 데이터의 단위도 다르며, 오류의 발생률도 높으나 동작의 자율성 을 보장할 수 있다. 분 류 종 류 속 도 (문자/초) 저속장치 키보드, CRT 1,000이하 중속장치 프린터 10,000이하 고속장치 디스크, 고속프린터 100,000이하
입출력장치 제어기 입출력장치 제어기 구 성 도 입출력에 필요한 입출력장치 고 유의 기능만을 다루는 제어기 (입출력 장치를 구동시키는 작업 을 수행하는 기기) 입출력 장치의 하드웨어 기능을 제어하는 목적으로 필요 다른 모든 장치들이 논리회로로 되어 있는 것과 달리 아날로그 회로를 포함한다.
입출력 제어기 입출력 제어기 구 성 도 입출력 장치의 공통적인 기능을 다루는 제어기 입출력 장치 인터페이스와 컴퓨터 시스템 사이에 데이터의 전송을 제어하는 장치 입출력 제어기의 구현은 컴퓨터 시스템의 성능에 따라 매우 다양(중앙처리장치, DMA 제어기, 체널 혹은 채널 제어기, 입출력 프 로세서, 입출력 컴퓨터 혹은 전단 프로세서) 자체의 프로그램 수행능력을 갖고 있으며, 이는 중앙처리장치의 개입 없이 입출력이 자율적으로 행해지도록 하기 위함이다.
입출력장치 인터페이스 모 형 도 입출력장치 인터페이스 입출력 포트(I/O port)라고도 한다. 컴퓨터 내부 장치(CPU, 주기억장치)와 외부장치(입출력장치)와의 올바른 정보의 전송을 위한 방법을 제공하기 위한 입출력 시스템의 구성요소 컴퓨터 내부 장치와 입출력 장치의 여러 가지 차이점을 해결하기 위한 장치 - 데이터 전송 속도의 차이 - 데이터 처리 단위의 차이 - 에러율의 차이
입출력장치 인터페이스 모 형 도 ‘데이터 전송속도의 차이’ 해결방법 입출력장치와 중앙처리장치는 동작속도 ‘데이터 전송속도의 차이’ 해결방법 모 형 도 입출력장치와 중앙처리장치는 동작속도 에 있어 큰 차이가 난다. 해결방법 - 두 장치 사이에 입출력 데이터 버퍼(I/O data buffer)를 두고, 이 버퍼의 상태를 나타내는 B(busy)와 D(done) 플래그를 둔다. B: 입출력 장치의 사용여부를 나타낸다. D: 입출력 버퍼의 상태를 나타낸다.
입출력장치 인터페이스 입출력 데이터 버퍼와 플래그의 동작 입출력 과정 플래그와 데이터 버퍼의 상태 입력과정 B D 입출력 과정 플래그와 데이터 버퍼의 상태 입력과정 ① 입력을 위해 입력제어기가 플래그 변경 (B←1) ② D플래그가 0이면 입력 장치가 입력 데이터 버퍼에 데이터 기억 ③ D플래그 변경(D←1) ④ 데이터를 일기 위해 입력제어기가 플래그 확인 (B, D)=(1, 1), 다른 값이면 입력 보류 ⑤ 입력제어기가 입출력 버퍼에서 데이터 가져옴 ⑥ 다음 데이터 입력을 위해 D플래그 변경 (D←0) ⑦ 마지막 데이터이면 B 플래그 변경(B←0), 아니면 ②번부터 다시 실행 B D 입출력 데이터 버퍼의 상태 0 0 입출력 장치 휴지 상태 0 1 금지된 상태 1 0 입출력장치가 입출력 작업중임을 나타내는 상태 1 1 입력 데이터버퍼에서 입력 데이터를 읽거나 출력 데이터버퍼에 데이터를 기억시킬 수 있는 상태
입출력장치 인터페이스 입출력 데이터 버퍼와 플래그의 동작 입출력 과정 플래그와 데이터 버퍼의 상태 출력과정 B D 입출력 과정 플래그와 데이터 버퍼의 상태 출력과정 ① 출력을 위해 출력 제어기가 플래그 변경(B←1) ② D 플래그의 값이 1이면 출력 제어기가 출력 데이터 버퍼에 데이터 기억, 아니면 출력 보류 ③ 다음 데이터 출력을 위해 D플래그 변경(D←0) ④ 출력장치가 출력 데이터 버퍼에서 데이터 가져옴 ⑤ 계속해서 출력할 데이터가 있다면 출력 제어 기가 D플래그 변경(D←1) ⑥ 마지막 데이터이면 B 플래그 변경(B←0), 아니면 ②번부터 다시 실행 B D 입출력 데이터 버퍼의 상태 0 0 입출력 장치 휴지 상태 0 1 금지된 상태 1 0 입출력장치가 입출력 작업중임을 나타내는 상태 1 1 입력 데이터버퍼에서 입력 데이터를 읽거나 출력 데이터버퍼에 데이터를 기억시킬 수 있는 상태
입출력장치 인터페이스 모 형 도 . ‘데이터 처리단위의 차이’ 해결방법 주기억장치에서 데이터의 단위는 단어 ‘데이터 처리단위의 차이’ 해결방법 모 형 도 주기억장치에서 데이터의 단위는 단어 입출력장치가 다루는 데이터의 단위는 문자(1 byte) 따라서 입출력장치 인터페이스에 있는 입출력 데이터 버퍼의 크기는 1바이트 입출력장치 인터페이스와 입출력 제어기 사이의 데이터 전달 : 병렬전송 입출력 장치와 입출력장치 인터페이스 사이의 데이터의 전달: 직렬과 병렬전송 (입출력장치의 종류에 따라) 직렬전송 입출력 장치 1 입출력 제어기 입출력장치 인터페이스 . 입출력 장치 2 … 병렬전송
입출력장치 인터페이스 데이터 전달방법 직렬 전송(serial transmission)방식 - 비트별로 한 비트씩 직렬로 전송 - 주로 속도가 느린 키보드나 모니터와 같은 입출력장치에 사용 - 데이터 전달회선의 수가 한 개이면 되기 때문에 입출력장치 인터페이스와 입출력장치의 거리가 비교적 멀어도 회선 비용이 저렴 병렬 전송(parallel transmission)방식 - 한 바이트를 한꺼번에 전송하므로 최소 8개의 데이터 전달회선이 필요 - 입출력 장치와 그 인터페이스의 거리가 가까운 경우에만 사용 - 디스크에 사용(거리를 짧게 하기 위해 본체에 포함)
입출력장치 인터페이스 입출력장치 인터페이스의 데이터 전달 입출력 데이터 버퍼의 구성도 직렬 전송방식 직렬 전송 방식을 사용하는 경우 - 입출력장치 인터페이스 내에 있는 입출력 데이터 버퍼는 쉬프트 레지스터 - 이때 쉬프트 레지스터는 입출력 제어기에 서 병렬로 데이터를 읽을 수 있고, 입력장 치에서 직렬로 데이터를 입력시킬 수 있어 야 된다.(입력과 출력장치를 위한 각각의 인터페이스 필요) - 따라서 입출력장치 모두에 사용할 수 있 는 입출력 데이터 버퍼는 위의 두 가지 기능을 모두 가지고 있는 쉬프트 레지스터 를 사용한다.
입출력장치 인터페이스 모 형 도 장치번호 디코더 컴퓨터 시스템 내에는 여러 개의 입력 장치와 출력 장치가 있을 수 있다. 따라서 입출력 명령어에서 입력 혹은 출력 하고자 하는 입출력장치를 지정할 수 있는 방법이 있어야 한다. - 장치번호(device code) : 입출력 장치들 각각에는 고유의 번호가 부여됨 - 장치번호 디코더(device code decoder) : 해당 장치를 지정할 수 있도록 장치번호 를 해독하는 회로
입출력장치 인터페이스 입출력 데이터에 대한 오류 검사 ‘에러율의 차이’ 해결 방법 ‘에러율의 차이’ 해결 방법 입출력 데이터에 대한 오류 검사 - 입출력되는 단위 정보인 한 바이트마다 하나 이상의 비트를 추가하여 데이터 바이트와 동시에 전달하는 방법을 사용 - 데이터를 송신하는 쪽에서 데이터의 오류를 검출을 가능하게 하는 비트를 첨부하여 송신하며, 수신하는 쪽에서 이들 비트들의 조합을 시험하여 오류의 유무를 식별한다. - 데이터의 첨부하는 비트가 한 비트일 때 패리티(parity)비트라 한다.
입출력장치 인터페이스 패리티 비트를 이용하는 방법 - 홀수 패리티 방법 - 짝수 패리티 방법 되울림(echo back)방법 에러검사및 수정 방법 패리티 비트를 이용하는 방법 - 홀수 패리티 방법 - 짝수 패리티 방법 되울림(echo back)방법 입출력 반복(retry)방법 오류검사/수정코드(error detection/correction code)방법
입출력장치 인터페이스 되울림 방법 입출력 반복 방법 주로 키보드 입력 장치에서 입력하는 경우에 사용 키보드에서 입력된 문자를 CRT 화면에 나타내어 확인 입출력 반복 방법 자기 디스크나 자기 테이프에서 입력할 때 사용되는 방법 만일 한 데이터 바이트가 잘못 읽어지면 몇 번이고, 다시 읽어서 옳은 데이터 바이트가 읽어질 때까지 반복 미리 정해 놓은 입출력 반복 회수만큼 반복해도 오류가 지속될 때 타임아웃(time out)되었다고 한다.
입출력장치 인터페이스 오류검사/수정코드 방법 패리티 비트를 사용하는 것과 유사 - 오류검사 코드 : 데이터에 몇 개의 비트를 첨부하여 데이터에 있을 수 있는 오류를 검사할 수 있게 한다. - 오류수정 코드 : 오류검사뿐만 아니라 오류가 검출되었을 때 이를 수정할 수 있는 기능까지 갖고 있다. 데이터에 첨부해야 하는 코드의 길이가 길기 때문에 보통 입출력 데이터에 사용되지는 않으며, 주기억장치에 있는 정보에 이용된다.
다음 강의 <제17강 입출력시스템 2> 수고하셨습니다. 다음 강의 <제17강 입출력시스템 2>