- 입, 출력 제어장치
: 입, 출력 장치와 컴퓨터 사이의 자료 전송을 제어하는 장치
: 데이터 버퍼 레지스터를 이용하여 두 장치 간의 속도 차를 조절
: 제어 신호의 논리적, 물리적 변환 그리고 오류를 제어
: DMA, 채널, 입출력 프로세서, 입출력 컴퓨터 등이 입출력 제어장치에 해당
- 입, 출력 인터페이스
: 동작 방식이나 데이터 형식이 서로 다른 컴퓨터 내부의 주기억 장치나 CPU의 레지스터와 외부 입출력장치간의 정보를 원활하게 전송하기 위한 방법을 제공
- 각 주변장치와의 다은과 같은 차이점을 해결하는 것이 목적
: 주변장치와 CPU나 메모리 간 동작 방식 차이
: 주변장치와 CPU간의 데이터 전송 속도의 차이
: 주변장치와 데이터 코드와 CPU나 메모리의 워드형식의 차이
: 전송 사이클 길이 등 동작방식이 다른 주변 장치들의 간섭 없는 제어
- 입, 출력 버스
: 주기억장치와 입출력 장치 사이의 데이터전송을 위해 모든 주변장치의 인터페이스에 공통으로 연결된 버스
: 데이터 버스, 주소 버스, 제어 버스로 구성
- 입, 출력장치의 종류
: 입력장치 - 키보드, 마우스, 스캐너, OMR, OCR, MICR, BCR, COM 등
: 출력장치 - 모니터, 프린터, 플로터, 마이크로 필름 출력장치(COM) 등
: 보조기억장치 - 자기 디스크, 자기 테이프, 자기드럼, 하드디스크 등
- 기억장치와 입출력장치의 동작차이
- 비동기 데이터 전송
: 두 개의 독립적인 장치사이의 비동기적인 데이터 전송을 이루기 위해서는 데이터 전송시각을 알기 위한 제어 신호를 서로 교환하여 송, 수신 상태를 서로 맞추어야 하는데, 그 방법으로 스트로브 펄스에 의한 방식, 핸드셰이킹에 의한 방식이 있다.
1) 스트로브 펄스(Strobe Pulse) 방식
: 데이터 버스와 한개의 제어선을 이용
: 두 개의 독립적인 장치사이의 비동기적인 데이터 전송을 이루기 위해 전송시각을 알리는 제어 신로를 스트로브 신호라고 하며, 한 개의 제어선을 통해 상호 교환한다.
2) 핸드셰이킹(Handshaking) 방식
: 전송을 시작한 장치에 응답하는 제2의 제어 신호를 전송함으로써 스트로브 제어방법보다 높은 융통성과 신뢰성을 갖는다.
: 2~3개의 제어선을 이용
- 스풀링(Spooling)
: 고속의 CPU와 저속의 입출력장치가 동시에 독립적으로 동작하게 하여 높은 효율로 여러작업을 병행수행할 수 있도록 해줌으로써, 다중 프로그래밍 시스템의 성능향상을 가져옴.
- 스풀링과 버퍼링의 차이
2. 입, 출력 제어방식
1) Program에 의한 I/O
: CPU가 직접 처리하는 I/O 방식
: I/O 작업시 CPU는 계속 작업에 관려해야 하기 때문에 다른 작업을 할 수 없다
2) Interrupt에 의한 I/O: 데이터를 전송할 준비가 되면 입, 출력 인터페이스가 컴퓨터에게 알려 입출력이 이루어지는 방식
: 입, 출력 인터페이스는 CPU에게 인터럽트 신호를 보내 입출력이 있음을 알림
3) DMA(Direct Memory Access)에 의한 I/O
: 입출력장치가 직접 주기억장치를 접근하여 입출력하는 방식
: 인터럽트 신호를 발생시켜 CPU에게 입출력 종료를 알림
: 블록으로 대용량의 데이터 전송이 가능
: Cycle Steal 방식을 이용하여 데이터 전송
4) Channel에 의한 I/O
: CPU 관여 없이 주기억장치와 입출력장치 사이에서 입출력을 제어하는 입출력 전용 프로세서
: CPU로부터 입출력 전송을 위한 명령어를 받으면 CPU와는 독립적으로 동작하여 입출력을 완료한다
: 주기억장치에 기억되어 있는 채널 프로그램의 수행과 자료의 전송을 위하여 주기억장치에 직접 접근
: CPU와 인터럽트로 통신
4-1) 채널의 종류
- Selector Channel
: 고속의 입출력장치와 입출력하기 위해 사용, 특정한 한개의 장치를 독점하여 입출력
- Multiplexer Channel
: 저속의 입출력장치를 제어하는 채널, 동시에 여러 개의 입출력장치를 제어
- Block Multiplexer Channel
: 고속의 입출력장치를 제어, 동시에 여러 개의 입출력장치를 제어
3. 인터럽트(Interrupt)
: 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우, 현재 실행중인 작업을 일시 중단 하고 발생된 상황을 우선처리한 후 실행 중이던 작업으로 복귀하여 계속 처리하는 것을 말함
- 인터럽트 종류 및 발생 원인
1) 외부 인터럽트 : 입출력장치, 타이밍 장치, 전원 등 외부적인 요인에 의해 발생
: 전원 이상 인터럽트(Power Fail Interrupt)
: 기계 착오 인터럽트(Machine Check Interrupt)
: 외부 신호 인터럽트(External Interrupt)
: 입출력 인터럽트(I/O Interrupt)
2) 내부 인터럽트 : 잘못된 명령이나 데이터를 사용할 때 발생, 트랩(Trap)이라고 한다
: 프로그램 검사 인트럽트(Program Check Interrupt)
3) 소프트웨어 인터럽트 : 프로그램 처리 중 명령의 요청에 의해 발생
: SVC(Supervisor Call) 인터럽트
- 인터럽트 발생 시 CPU가 확인할 사항
: 프로그램 카운터의 내용
: 사용한 모든 레지스터의 내용
: PSW의 내용
- Polling : 소프트웨어적인 인터럽트 우선순위 판별방법
: 인터럽트 발생 시 우선순위가 가장 높은 인터럽트부터 차례로 검사하여 찾고 이에 해당하는 인터럽트 서비스 루틴을 수행하는 방식
: 우선 순위 변경이 쉽고, 회로가 간단
: 융통성이 있으며, 별도의 하드웨어가 필요 없다
: 많은 인터럽트가 있을 때 시간이 오래 결려 반응 시간이 느리다는 단점이 있다
- Vectored Interrupt : 하트 웨어적인 인터럽트 우선순위 판별방법
: CPU와 인터럽트를 요철할 수 있는 장치사이에 장치번호에 해당하는 버스를 병렬이나 직력로 연결하여 요청장치의 번호를 CPU에게 알리는 방식
: 별도의 프로그램 루틴이 없어 응답속도가 빠르다
: 회로가 복잡하고 융통성이 없고, 추가적인 하드웨어가 필요하여 비경제적
: 직렬과 병렬 우선순위 부여 방식이 있다
- 직렬(Serial) 우선순위 부여 방식 : 데이지 체인 방식
: 인터럽트가 발생하는 모든 장치를 한 개의 회선에 직렬로 연결
: 우선순위가 높은 장치를 먼저 위치시킨다
- 병렬(Parallel) 우선순위 부여 방식
: 인터럽트가 발생하는 각 장치를 개별적인 회선으로 연결
: 각 장치의 인터럽트 요청에 따라 각 비트가 개별적으로 Set될 수 있는 Mask Register사용
: 우선순위는 마스크 레지스터의 비트 위치에 의해 결정
: 우선순위가 높은 인터럽트는 낮은 인터럽트가 처리되는 중에도 우선 처리된다
댓글 없음:
댓글 쓰기