정보처리기사 필기 - 2과목 전자계산기 구조


5장 입력 및 출력


1. 입·출력장치의 구성


· 입·출력 제어 장치

- 입·출력 장치의 인터페이스와 컴퓨터 시스템 사이에 데이터의 전송을 제어하는 장치

· 입·출력 인터페이스

- 주변장치와 CPU나 메모리의 동작 방식의 차이, 전송 속도의 차이, 데이터 형식 등의 차이점을 해결하는 것이 목적

- 기억장치는 빠르고 입·출력 장치는 느림

- 입·출력장치에 포함되어야 하는 하드웨어

= 데이터 레지스터, 장치의 동작 상태를 나타내는 플래그, 장치 번호 디코더(단어 계수기X)

· 입출력 제어 방식 중 프로그램에 의한 I/O

- 상태 레지스터 읽기 → 값이 set 상태이면 단계 3

- 그렇지 않으면 단계 1 → 데이터 레지스터 읽기


버퍼링

스풀링

목적

고속의 CPU와 저속의 입·출력 장치의 속도 차이를 해결

저장 위치

주기억장치

보조기억장치(=디스크)

운영 방식

단일작업

다중작업

입·출력 방식



2. 입출력 제어 방식


· Interrupt I/O

- 인터페이스가 CPU에 입·출력을 요구하고 입·출력 전송이 완료되면 CPU는 수행중이던 프로그램으로 돌아가서 수행을 재개

- CPU의 상태 보존 필요

- 인터럽트 제어 방식 : 비동기 제어 방식


· DMA(Direct Memory Access)에 의한 I/O

- 주기억장치와 I/O 장치 간의 정보 교환 때, CPU의 개입 없이 직접 정보 교환이 이루어지는 방식(CPU의 부하 증가X)

- CPU가 어떤 명령과 다음 명령을 수행하는 사이 하나의 데이터 워드를 직접 전송

- DMA의 구성

= 인터페이스 회로, 주소 레지스터, 워드 카운트 레지스터, 제어 레지스터, 데이터 레지스터

- DMA의 전송 절차

① CPU가 DMA에게 명령

② CPU에게 버스 사용 요구

③ CPU가 버스 사용 허가

④ 데이터 전송

⑤ DMA 제어기가 자료 전송을 종료했을 때 CPU에게 인터럽트 신호 발생

- 사이클 스틸(Cycle Steal) 이용

= 중앙처리장치와 입출력장치가 동시에 주기억장치를 접근하려고 할 때, 주기억장치가 입출력장치에 우선순위를 부여하여 중앙처리장치는 주기억장치에 접근 불가


사이클 스틸과 인터럽트의 차이점

#DMA의 사이클스틸은 CPU의 상태 보존 필요 없고, CPU는 메모리 참조가 필요없는 오퍼레이션을 계속 수행

#인터럽트가 발생하면 CPU는 인터럽트를 처리하지만 사이클 스틸은 instruction 수행 도중 사이클스틸이 발생하면 CPU는 그 사이클 스틸동안 정지상태가 됨

- 인터럽트와 비교하여 DMA 방식에 의한 사이클 스틸의 가장 특징적인 차이점 : 주기억장치 사이클의 한 주기만 정지


· Channel에 의한 I/O

-입출력을 위한 명령어를 입출력 프로세서에게 수행토록 하여 CPU 관여 없이 입출력 수행

- 채널은 CPU외 별도의 하드웨어적인 장치라서 CPU와 독립적 처리가 이루어짐

- 자체적으로 자료 수정 또는 코드 변환 가능

- 채널의 종류

= Selector Channel : 고속 입출력장치 / 어느 한 입·출력 장치의 전용인 것처럼 운용

= Multiplexer Channel : 저속 입출력장치 여러개를 동작시킬 수 있으

= block multiplexer channel : 위의 두 개를 결합

- 채널 명령어(CCW)의 구성 요소

=Data Address, Flag, Op-code(처리속도X, 전송속도X)

- 채널 명령어로 알 수 있는 내용

= 명령코드, 데이터 주소, 데이터 크기


· 프로그램 제어 방식은 CPU가 상태 플래그를 계속 조사하여 I/O가 완료되었으면 MBR과 AC사이의 자료 전송도 CPU가 직접 처리

· 데이터 버스는 CPU와 메모리 또는 입출력기기 사이에서 데이터를 전송하는 전송선으로 입출력 제어장치에 포함될 뿐 따로 분류되지는 않음

· 고립형 I/O

- 고립형 I/O는 기억장치의 주소공간과 전혀 다른 입·출력 포트를 갖는 형태

· 스루풋(중앙처리장치의 데이터 처리 능력) : 채널>DMA>인터럽트

※ 디멀티플렉서(demultiplexer) : 1개의 input line과 n개의 selection line을 갖음



3. 인터럽트


· 인터럽트

- 예기치 않은 상황이 발생할 경우 먼저 처리하고 실행중이던 작업으로 복귀

- 이때 복귀주소, PC의 값은 스택에 저장

- 인터럽트의 실질적인 조치를 하는 서비스 루틴을 실행할 때 인터럽트 플래그를 0으로 하면 인터럽트 발생 방지 가능

- 페이지폴트-CPU가 액세스한 가상 페이지가 주기억장치에 없는 경우에도 인터럽트 발생

- 인터럽트 종류

= 외부 인터럽트

# 컴퓨커 자체 내의 기계적인 장애

# 타이머(주어진 CPU사용시간을 해당 프로세스가 모두 소진할 경우)

# 오퍼레이터가 콘솔상의 인터럽트

# 정전

= 내부 인터럽트(=트랩)

# 불법적인 명령

# 0으로 나누기

# overflow / underflow 발생한 경우

# 보호 영역 내의 기억장소 참조

# 인터럽트의 우선순위결정과 관련 없음

= SVC 시스템 호출 인터럽트

# 사용자가 의도적으로 호출한 경우

※ 프린터에 용지 부족 : PC 하드웨어 인터럽트


- 인터럽트 발생 시 CPU가 확인할 사항

= 프로그램 카운터의 내용

= 사용한 모든 레지스터의 내용

= PSW(상태 조건의 내용)


- 인터럽트 동작 순서

① 인터럽트 요청 신호 발생

② 현재 실행중이던 명령어는 끝까지 실행

③ 현재의 프로그램 상태 보존 : 다음 실행할 명령의 번지는 PC가 가지고 있음, 스택에 기억

처리루틴

서비스(취급)루틴

 ④ 인터럽트를 요청한 장치를 식별, 인지

 ⑤ 인터럽트의 실질적인 조치

 ⑥ 상태 복구 : 보존 시켰던 PC의 값을 복구

 

 인터럽트 실행 중에 우선순위가 높은 인터럽트(정전이 우선순위가 가장 높음)를 발생하면 그거 먼저 처리

- 인터럽트 서비스 루틴의 기능 : 상대적으로 낮은 레벨의 마스크 레지스터 클리어


· 인터럽트 백터 Vectored

- 인터럽트를 발생한 장치가 프로세서에게 분기할 곳의 정보를 제공

- 인터럽트가 발생했을 때 특정 장소로 점프하도록 분기번지가 기억, 특정 번지의 서브루틴을 수행하는 것

- 분기 번지가 필수

· 인터럽트 체제의 기본 요소

- 인터럽트 요청, 인터럽트 처리 루틴, 인터럽트 취급 루틴

· 인터럽트 우선순위 판별 방법

- 소프트웨어적인 방법

= 폴링 Polling(인터럽트 요청 신호 플래그를 차례로 검사하여 인터럽트 원인 판별)

= 반응 속도 : 저속

= 회로 복잡도 : 간단

= 경제적임

= 우선 순위 변경이 쉬움

- 하드웨어적인 방법

= 데이지체인(인터럽트가 발생하는 모든 장치를 직렬로 연결), 벡터, 병렬(Parallel)우선순위 부여 방식

= 반응 속도 : 고속

= 회로 복잡도 : 복잡

= 비경제적임

= 융통성 없음


· 인터럽트 우선순위 운영 방식

- LCFS, FCFS, Masking Scheme

'정보처리기사 > 전자계산기 구조' 카테고리의 다른 글

7장 병령 컴퓨터  (0) 2017.02.22
6장 기억장치  (0) 2017.02.22
4장 명령 실행과 제어  (0) 2017.02.22
3장 프로세서  (0) 2017.02.21
2장 자료의 표현  (0) 2017.02.21

+ Recent posts