제 7 장 입출력 시스템과 인터럽트

7장 입출력 시스템

ꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏ

7.1	개 요

7.2	입출력 방법

7.3	채널과 입출력 프로세서

7.4	인터럽트

7.5	멀티미디어

7.6	압 축

ꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏꠏ

○ 입력장치와 출력장치의 데이터 전달기능과 변환기능

○ 입력장치, 출력장치와 기억장치들 사이의 동작의 차이

○ 인터페이스의 역할

○ 멀티미디어 입력장치, 출력장치와 압축기술

○  개 요

7장 입출력 시스템

입력 장치:	CPU 가 필요로 하는 프로그램과 데이터를 외부로부터 받는 장치

출력 장치:	CPU 에 의해서 처리된 결과를 컴퓨터 사용자들이 인식 할	수 있는 형태로 표현하는 장치

입출력 주변장치(I/O peripheral)

입출력 주변 장치 외에도 주기억 장치에 상주할 필요성이 적은 프로그램이나 복구(backup)용 프로그램 또는 데이터를 저장하는데 이용되는 비소멸성( nonvolatile) 기억 장치들을 저장 주변장치(storage peripherals)

주변장치:	입출력 주변장치와 저장 주변장치

― 시스템 버스를 통해서 CPU 와 직접 연결되지 않고 입출력 인터페이스(I/O interface)를 통해서 간접적으로 연결

표 7-1. 주변장치의 특징

● 입출력 지시어(I/O commands)

― CPU 의 입출력 명령어를 처리 과정

1. 주기억 장치로부터 입출력 명령어를 인출하여 해석

2. 주변 장치가 해당 입출력 명령어를 실행할 수 있도록 입출력 인터페이스를 통해서 필요한 일련의	신호(입출력 지시어)를 발생

― CPU 가 생성하는 지시어의 종류

제어 지시어,	상태 검사 지시어,	읽기 지시어,	쓰기 지시어

― 입출력 지시어의 동작

입출력 인터페이스에 의해서 해석되고 그 결과는 입출력 포트(I/O port)를 통해서 각 주변장치 제어기(peripheral controller)에게 전달. 해당 입출력 장치는 물리적으로 데이터 입출력 동작 수행.

● 입출력 인터페이스

― 주변장치가 CPU 나 주기억 장치와 데이터를 서로 교환하기 위해서 필요한 기능 블록

― 데이터의 운반 통로인 입출력 포트와, 입출력 방법에 따라서 특별한 기능을 실행하는데 필요한 기능 모듈(인터럽트 기능과 DMA	기능)을 포함

― 입출력포트에는	주소해석기,	data input register,	data output register, 상태 레지스터, 지시어 레지스터(command register)가 포함

― 주변 장치와 CPU의 연결

병렬 입출력 포트나 직렬 입출력 포트를 통해서 연결

― 주기억 장치와 CPU의 연결:	DMA 채널을 통해서 연결

― 입출력 인터페이스의  구현방법

별도의 회로 혹은

필요한 기능들을 하나의 대규모 집적회로 칩 내부에 일체화	시킨 제어기(controller)를 사용

― 입출력 포트

직렬(serial) port :	데이터 전송 방법을 기준으로 키보드, 마우스, 모뎀 등의 연결에 사용

병렬(parallel) port:	하드 디스크와 CD-ROM 등의 연결에 사용

― 입출력 포트의 폭(width):	입출력 포트를 구성하는 데이터 입력/출력 레지스터의 크기에 해당되는 비트의 수

― 포트의 대역폭(band width) :

시스템 버스를 구성하는 데이터 버스의 대역폭과 같을 수	있으며 일반적으로 포트의 크기는 8 비트에서 32 비트 범위

그림 7-1. 입출력 인터페이스의 구성

● 입출력 주소공간(I/O address space)

― 입출력 포트의 주소들의 집합으로 형성되는 주소 공간

― 입출력 포트의 수와 포트 당 비트 수는 입출력 장치의 종류와 수에 따라 다름

― 포트 주소 :	CPU 가 입출력 포트를 구별하기 위해서 입출력 장치마다 부여한 고유 주소

― 포트 주소를 명시하는 방법

직접 포트 주소 모드(direct port addressing mode) :

입출력 명령어 내부에 주변장치의 주소를 명시

간접 포트 주소 모드(indirect port addressing mode) :

입출력 포트 주소의 값이 미리 정해진 CPU의 레지	스터에 저장

(a) 주기억 장치 사상 입출력

(b) 고립형 입출력

그림 7-2. 주기억 장치 사상 입출력과 고립형 입출력

사상 입출력의 특징과 고립형 입출력의 특징(p.297-298)

● 데이터 전송 방법

― 입출력 포트를 통한 데이터 전송방법: 병렬 전송, 직렬 전송

병렬전송: 두개이상의 신호선, 단거리 고속 데이터 전송

직렬전송: 하나의 신호선, 장거리 전송방법

** 병렬 전송에 대해서는 버스를 이용한 네트워크 구조에서 설명 하고, 여기서는 직렬 전송만을 설명한다.

표 7-2. 주변 장치들의 데이터 전송률

*8배속 CD 기준(1996년도)

장치명	용도	데이터 전송률(바이트/초)
키보드	입력	0.01KB
마우스	입력	0.02KB
스캐너	입력	200KB
프린터	출력	1KB
레이저 프린터	출력	100KB
그래픽 디스플레이	출력	30MB
중앙처리장치, 주기억장치	입출력	200MB～400MB
네트워크-LAN카드	입출력	1.2MB～12MB
CD-ROM*	입력	1.2MB
하드디스크	입출력	2.5MB
자기테이프	입출력	2MB

― 직렬 전송 :	하나의 데이터 선을 이용해서 데이터를 전송

― 프로토콜(protool) :	데이터의 시작과 끝을 명시하는 방법과 송/수신자를 명시하는 방법 및 오류 검출 방법 등을 규정한 규칙

― 직렬 전송 프로토콜의 구분:	비동기(asynchronous) 전송 프로토콜과 동기 전송 프로토콜	(문자 중심(character-oriented)/	비트중심 (bit-oriented))

(a) 비동기 전송 프로토콜

(b) IBM의 BSC

(c) ISO의 HDLC

그림 7-3. 직렬 전송 프로토콜

비동기 전송: 워드사이 간격 일정치 않음, start bit(1bit), stop bit(2 bit), 고속전송에 부적합

동기전송: 비트 사이 간격 일정, 송/수신자 사이 동기화 필요(공통클럭 혹은 동기 정보를 사용). 프리/포스트 엠블이 블록의 시작과 끝을 나타내기 위해 사용됨. 하나의 전송 단위를 프레임이라 함. 데이터 블록 구성 단위 기준으로 문자중심/비트중심 프로토콜로 구분됨.

● 주변 장치 제어기(peripheral controller)

입출력 인터페이스를 통해서 CPU 에 접속되며, 입출력 인터페이스로부터 받은 입출력 지시어의 해석 결과에 따라 실제 주변장치들의 입출력 동작을 제어하는 장치

그림 7-4. 주변장치 제어기의 구성

○  입출력 방법

― 입출력 방법의 종류:	프로그램된 입출력, 인터럽트에 의한 입출력, DMA(direct memory access) 입출력

● 프로그램된 입출력

CPU가 계속 주기적으로 I/O장치를 검사. CPU의 효율이 나쁨

(a) 장치간의 상호 작용	(b) 프로토콜

그림 7-5. 프로그램된 입출력(p. 301)

● 인터럽트 구동 입출력

(a) 장치간의 상호 작용	(b) 프로토콜

그림 7-6. 인터럽트 구동 입출력

입출력 인터페이스가 CPU를 대신해서 주변장치의 상태를 검사하다가 준비완료 상태에 이르게 되면, 이 사실을 인터럽트 신호를 구동시켜 CPU에게 보고함으로 시작되는 입출력 방법. 데이터 발생이나 전송이 끝나면 인터럽트를 발생시킴. CPU idle time을 줄일 수 있어 효율이 좋음. 상대적으로 우선순위가 높은 인터럽트가 접수될 때마다 동적실행정보전환과정이 필요하게 되므로 다중레벨 인터럽트를 처리하기 위해서 복귀주소를 스택방식으로 관리해야 한다.

그림 7-7. 인터럽트 벡터를 처리하는 타이밍

● DMA 입출력

전술한 두 가지의 입출력 방법의 문제점 :

① 입출력을 통한 데이터의 전송률은 CPU가 입출력 장치의 상태를 검사하고 서비스할 수 있는 속도에 의해서 제한된다는 점

② CPU가 입출력을 통한 데이터 전송을 위해서 많은 수의 명령어에 대한 처리에 얽매여 다른 일을 진행할 수 없다는 점

― CPU 와 입출력 인터페이스 사이에서는 상태 정보와 제어 정보만을 교환하게 하고, 입출력 데이터는 주변장치와 주기억 장치간에 직접 교환되게 하는 방법으로, 입출력 인터페이스는 인터럽트 기능 및 직접 주기억 장치로 데이터 전송을 위해서 필요한 기능을 위해 확장되어야 한다.

(a) 장치간의 상호 작용	(b) 프로토콜

그림 7-8. DMA 입출력

(1) DMA 인터페이스의 기능

― DMA 인터페이스:	하나의 DMA제어기에 여러 개의 입출력 장치와 인터페이스	들을 연결

그림 7-9. DMA 인터페이스 제어기의 구성

― 입출력 인터페이스가 DMA 기능을 실행하기 위해서 필요로 하는 부가 하드웨어 :	워드 카운터 레지스터(word counter register), 주기억 장치 시작 주소 레지스터 (memory starting address register), 지시어 레지스터(command register),	상태 및 제어 논리 회로, 주기억 장치 읽기/쓰기 신호 생성 및 주변장치 제어기와	의 접속에 필요한 타이밍 및 제어 논리 회로(timing and control logic)

인터럽트 구동 입출력 방법과 달리 동적실행정보전환과정이 필요 없다.

고속의 입출력 환경에 널리 이용

DMA 방법에 의한 입출력 과정(p. 304)

(2) DMA 인터페이스의 데이터 전송 모드

― DMA 인터페이스가 제어하는 데이터 전송 과정

대량 전송(burst) 모드 :	고속의 입출력 장치를 대상으로 데이터들을 블럭 단위로 전송, 버스 사용권 획득 후 버스 사이클을 독점함.

사이클 스틸(cycle stealing) 모드 :	저속의 입출력 장치에서 볼 수 있는 한 워드를 데이터 전송 단위로 함. 한 워드 전송 후 버스 사용권을 CPU에게 돌려줌.

CPU가 버스를 사용하고자 하는 시점에 버스 사이클을 DMA 인터페이스가 차지하게 되어 CPU가 사용할 버스 사이클이 지연되는 사이클 스틸 현상이 나타남.

그림 7-10. DMA 요청과 인터럽트 요청에대한 처리 지연시간

DMA 인터페이스는 버스 사이클이 종료되는 시점에 버스를 사용할 수 있다.

인터럽트의 경우, p. 274의 그림 6-8을 보면 ICC=10의 종료 시 ICC=11이 될 수 있으며, 이때 인터럽트 처리가 된다.

○  채널과 입출력 프로세서

.입출력 과정은 CPU의 개입을 필요로 함.

.입출력 과정을 보다 개선하기 위해서는 CPU의 개입을 최소로 할 수 있는 방법과, 나아가서는 입출력과 CPU 에 의한 연산 과정이 동시에 진행될 수 있게 하는 방법이 필요

.DMA는 CPU의 과부하를 줄이고 어느 정도 동시성을 허용

. 입출력 제어기로 직접 주변 장치를 지원하게 함.(입출력 제어기를 입출력 채널이라 함)

― 특수 목적의 입출력 채널을 갖는 대신에 범용 컴퓨터가 독립	적인 입출력 프로세서(I/O  processor : IOP)의 역할을 하며 이러한 IOP는  CPU와 병렬로 동작하며, CPU는 입출력 작업에 간여하지 않고, 연산과 사용자 프로그램만을 독자적으로 수행할 수 있게 한다.

― 다수의 DMA 채널을 포함하고 있는 입출력 프로세서는 자신의 CPU와 명령어 집합을 가지고 있으며, 그들의 프로그램을 CPU와 병행 수행

[1] 입출력 채널

입출력 채널(I/O channel)은 DMA 장치보다 좀더 정교한 제어기이지만,  어떤 것은 DMA 방법으로 입출력 동작을 수행한다. 입출력 채널은 보통 하나의 장치지만 연결해주는 DMA와는 달리, 여러 입출력 장치와 메모리를 인터페이스하기 위하여 구성된, 제한된 기능을 갖는 특수 목적의 프로세서. 부가적으로 오류검출, 수정, 코드 변환, 데이터 형식화 등을 수행할 수 있다.

― 입출력 채널을 사용하기 위하여 입출력 시스템은 그림 7-11 과 같이 계층적으로 구성되며, 각각의 채널은 입출력 동작으로 제한하는 명령어 집합을 가지는 특수 목적 컴퓨터이며	사이클 스틸링 기반 하에서 동작

그림 7-11.  채널을 통한 입출력의 계층적 구조

고속 입출력 장치: 전용 인터페이스를 통해 입출력	장치와 통신

저속 장치 : 인터페이스를 공유

메모리 액세스 제어기: CPU와 입출력 채널 메모리 액세스를 조정

입출력 채널: DMA 장치와 같이 CPU와 통신하며 입출력 장치와는 마치 자신이 CPU 인 것처럼 통신하다.

채널의 작업 수행

(1) 입출력 전송을 위해 특별한 장치를 선택하고 이 장치의 상태를 검사한다.

(2) 입출력 동작을 수행하기 위해 명령어(수행 프로그램)를	실행한다.

(3) 어떤 데이터 블록을 전송할 것인지, 그 메모리의 기억	장소를 정의한다.

(4) 데이터 형식화와 코딩 장치를 제공한다.

(5) 전송의 끝을 제어한다.

― 채널 :	데이터 전송률 차이 때문에 멀티플렉서 채널(바이트와 블록 멀티플렉서로 구분)와 셀렉터 채널로 분류됨

― 멀티플렉서 채널 :	하나의 채널이 여러 개의 저속 입출력 장치를 동시에 관리	하며 바이트 단위로 전송(카드리더, 프린터)

― 셀렉터 채널 :	하나의 채널이 고속 입출력 장치를 하나씩 순차적으로 관리하며 블록 단위로 전송(자기 테이프, 디스크)하며 입출력 과정에서 채널 제어가 임의의 지점에서만 입출력 장치의 전용인 것처럼 사용되는 채널

※버스트 모드 : 고속의 데이터 입출력이지만 채널 하나를 독점하여 사용하고 난 다음에는 그 다음 채널이 독점해서 사용하는 방식

블록 멀티플렉서 채널: 버스트 모드에서 고속 멀티플렉서 채널로서 동작하며 데이터를 블록으로 인터리빙 함.

[2] 입출력 프로세서

입출력 프로세서(IOP)는 자율적인 프로세서로서, 만약 완전히 독립적으로 동작을 못하면, IOP는 동작의 시작과 입출력에 관한 결정을 하는 데, CPU의 도움을 요구한다. IOP는 범용 컴퓨터로서, 시스템 버스를 통해서 DMA 장치로 주기억 장치와 통신을 하며, 하나 이상의 입출력 버스를 통해서 입출력 장치들과 통신

(a) 공유 버스

(b) 스위칭 행렬 버스

그림 7-12. 입출력 버스의 구조

― IOP 명령어:	CPU명령어와 구분하기 위하여 command라고 함

― IOP 명령어의 세 가지 기본 형태

(1) 입/출력, 상태 정보를 읽기 위한 데이터 전송 명령어들.

(2) 산술, 논리, 분기명령어와 같은 범용 명령어들.

(3) 데이터 전송에 포함되는 여타의 특수 입출력 장치 기능을 취급하는 제어 명령어들.

― IOP 명령어의 전형적인 형식의 구성.

(1) 요구된 데이터 전송 동작의 내용을 명시하는 명령코드(opcode)

(2) 전송을 위해 지정된 메모리 블록의 시작 주소를 알려주는 메모리 주소부분.

(3) 전송될 워드 수(메모리 블록의 길이)를 알려주는 워드 계수기 부분.

(4) 특수 입출력 장치 기능을 수행하기 위하여, 입출력에 특별한 요구를 명시하는 제어 부분.

(5) 통신 목적이나 상태 기록을 위해 사용되는 상태 부분. 전형적으로 이러한 부분은 IOP 에 응용되는 인터럽트를 발생하기 위한 플래그.

○ 인터럽트

컴퓨터가 수행하는 동안에 응급 사태가 발생했을 때 CPU는 현재의 처리를 중단하고 응급사태를 처리하는 과정

● 발생 원인

인터럽트의 발생 원인은 컴퓨터의 응용부문에 따라 다양하나 일반적으로 다음과 같은 경우를 말한다.

(1) 정전 혹은 데이터 전송 과정에서 오류의 발생과 같은 컴퓨터 자체 내에서의 기계적인 문제가 발생하는 경우

(2) 보호된 기억 공간에 접근 혹은 불법적인 명령어의 수행 등과 같은 프로그램 상의 문제가 발생하는 경우

(3) 컴퓨터 조작자가 의도적으로 중단시키는 경우

(4) 입출력 장치들의 동작에 CPU의 기능이 요청되는 경우

● 인터럽트의 필요성

(1) 정전시: 프로그램의 수행 도중 정전시 그때까지의 처리결과 보존. 전원 회복 후에 나머지 수행 가능

(2) 입출력시: 중앙처리장치와 주변장치 사이의 속도차이 해결. 입력 필요시 중앙ㅈ처리장치는 입력 장치에 원하는 정보를 읽도록 요청한 후 수행 가능한 인스트럭션 수행. 원하는 정보가 준비되면 입력 장치가 인터럽트 요청. 중앙 처리 장치와 입출력 장치의 병행 동작으로 하드웨어 운영 효율 증대

● 인터럽트의 종류

[1] 외부 인터럽트(external interrupt)

타이머 종료, Operator의 키 조작, 전원 문제

[2] 기계 착오 인터럽트(machine check intrrupt)

기계고장

[3] 프로그램 검사 인터럽트(program check interrupt)

프로그램의 명령 사용법이나 지정법에 잘못이 있을 때

[4] 입출력 인터럽트(I/O interrupt)

데이터의 I/O

[5] 감시 프로그램 호출 인터럽트(supervisor call interrupt)

사용자 모드에서 감시 관리 모드로 CPU의 상태를 변화시킴

● 인터럽트 동작 원리와 체제

일반적인 인터럽트를 처리하는 방법

(1) 인터럽트 발생 장치로부터 인터럽트를 요청 받고,

(2) 현재 수행 중인 프로그램의 상태를 안전한 장소에 기억

(3) 인터럽트의 원인을 찾은 후 인터럽트 취급 루틴을 수행

(4) 인터럽트 취급루틴 수행을 통해 인터럽트에 대한 조치

(5) 미리 보존한 프로그램의 상태를 복구 수행을 계속

(2)~(5): 인터럽트 처리 루틴

(2),(3),(5)를 수행하는 중에는 다른 인터럽트를 받지 않는다.

(4)번 인터럽트 취급 루틴의 수행 중에는 우선순위가 높은 인터럽트를 처리하기도 한다.

[1] 인터럽트 요청 및 처리

그림 7-12. 인터럽트 요청 회선 연결 방법

ㄱ) 단일 회선 체제 : 그림 7-12 의 (ㄱ) 와 같이 인터럽트 요청이 가능한 모든 장치들로부터의 인터럽트 요청 신호들을 모두 논리적으로 합하여 단일 회선으로 CPU 에 연결하는 체제.

ㄴ) 다중 회선 체제 :  그림 7-12 의 (ㄴ) 와 같이 모든 장치들과 CPU 사이를 고유의 인터럽트 요청 회선들이 연결하는 체제.

ㄷ) 혼합 체제 : 그림 7-12 의 (ㄷ) 와 같이 (ㄱ) 와 (ㄴ) 를 혼합한 체제

인터럽트 당한 프로그램의 상태보전(인터럽트 취급 루틴에서 그 내용이 변경되는 레지스터의 내용, 특히 PC 내용을 저장)

(1) 소프트웨어 방식(폴링 방식)

하나의 인터럽트 처리루틴으로	어느 장치가 인터럽트를 요청하였는지 판별

그림 7-13. 소프트웨어 방식

― 인터럽트 처리 순서:	(1) 인터럽트 요청,	(2) PC 보관(0번지),	(3) 인터럽트 처리 루틴으로 점프,	(4) 인터럽트 원인 판별,	(5) 원인에 따라 인터럽트 취급 루틴 수행

그림 7-14  소프트웨어 방식을 위한 인터페이스 구조

― IR(Interrupt Request) 플래그: 해당 인터페이스가 인터럽트를 요청하였는가의 여부를 나타내는 플래그

― D 플래그:	해당 인터페이스에 연결된 장치가 인터페이스로 하여금 인터럽트를 요청할 준비가 되어 있는가를 나타내는 플래그

― 폴링: 어떤 장치가 인터럽트를 요청하면 인터럽트 처리 루틴에서는 각 장치의 D 플래그를 시험하는 인스트럭션을 수행하여 인터럽트를 요청한 장치 판별

그림 7-15. 폴링에 의한 인터럽트 처리

·일정한 순서로 각 장치의 D 플래그를 시험하여 최초로 D=1인장치를 인터럽트의 원인으로 판단

·인터럽트 취급이 시작되면 IR와 D를 0으로 만든다.

(2) 하드웨어 방식(벡터 인터럽트 방식)

● 장치번호 버스

인터럽트를 요청한 장치가 자기의 장치 번호를 중앙 처리 장치에 알리는데 사용

그림 7-16. 하드웨어적 인터럽트 요청 판별 장치 인터페이스

1) CPU에 인터럽트 요청 신호를 보냄. (IR=1)

2) CPU는 하드웨어에 의해 인터럽트 인정신호(INTACK)를 보냄.

3) 인터럽트를 요청한 장치 인터페이스는 INTACK 신호에 의해 장치번호를 전송.

4) CPU가 인터럽트 요청 장치를 식별하여 인터럽트를 받아들이면 IR=0으로 함.

― 인터럽트 벡터:	기억장치 내의 특정한 곳에 있는 연속된 단어들로서 인터럽트 취급 루틴으로 분기하는 인스트럭션을 저장

― 인터럽트 벡터 주소 결정 회로:	여러 가지 벡터 인터럽트 방식

(a) PC : 기억 장치 내에 존재

(b) PC : STACK을 이용

(c) PC : 인터럽트 벡터 내에 존재

그림 7-17. 벡터 인터럽트 방식

인터럽트 반응시간: 인터럽트 요청 신호를 발생한 후부터 해당 인터럽트 취급 루틴의 수행이 시작될 때 까지의 시간

[2] 인터럽트 메이저 상태

표 7-3. INTERRUPT 상태에서의 마이크로 오퍼레이션들

INTERRUPT
TS6	0→MAR
TS0
TS1
TS2
TS3	PC→MBR
TS4	1→PC
TS5
TS6	PC→MAR

― PC를 기억장치 주소 0에 기억

― 기억장치 주소 1에 기억된 인스트럭션을 수행하도록 PC 변경

[3] 시스템 보호

*** Interrupt ⇒ Interrupt 상태 변천의 경우

― 주소 0에 PC 기억, 인터럽트 처리 루틴에 의해 인터럽트 요청	장치 판별 등의 동작 수행

― 반드시 Interrupt 후에 Fetch 상태로 변천

*** IEN(Interrupt Enable) 플래그

― IEN=1 일 때만 인터럽트 요청 가능

― IEN=0 이면 인터럽트 불가능

-인터럽트 처린 루틴이나 취급 루틴에서 PC와 필요한 레지	스터의 내용을 저장하는 동안

-인터럽트의 취급이 완료되어 저장해 놓은 PC와 레지스터	를	복구시키는 동안

● 우선 순위 체제

― 근착 우선(last come first serve) 형식

― 선착 우선(first come first serve) 형식

― 인터럽트 우선 순위 부과체제

-인터럽트 요청 가능한 장치들을 유사성에 따라 몇 개의	군으로 분류

-각 장치가 요구하는 인터럽트의 중요성 혹은 응급성에 근	거하여 우선 순위 부과

― 우선순위체제를 위한 기능

(1) 각 장치에 우선순위를 부과하는 기능

(2) 인터럽트를 요청한 장치의 우선 순위를 판별하는 기능

(3) 우선 순위가 높은 것을 먼저 처리할 수 있는 기능

[1] 단일 회선 체제에서의 우선 순위

(1) 소프트웨어에 위한 우선 순위

Interrupt mask와 ID(Interrupt Disable) 플래그 사용

-ID=1이면 그 장치는 인터럽트 요청 불가

-높은 우선 순위의 장치가 인터럽트를 요청하면 그보다	낮은	순위의 장치들의 ID를 0으로 하여 인터럽트를 요	청할 수 없게 함.

― 마스크를 이용한 우선순위는 모든 장치를 세 개의 우선순위 등급으로 구분하는 것과 같다. 즉, 인터럽트 취급 루틴이 수행 중일 때 그 인터럽트를 요청한 장치가 하나의 등급이고, 그때 ID가 0인 모근 장치가 높은 등급이고, ID가 1인 모든 장치가 이보다 낮은 등급이다.

― 소프트웨어에 의한 우선 순위 체제의 특징

① 우선 순위는 프로그램 상에서 결정하므로 융통성이 있다.

② 우선 순위의 설정을 위한 하드웨어가 없으므로 경제적이다.

③ 인터럽트 반응 속도가 느리다.

(2) 하드웨어 방법

― 하드웨어에 의한 우선 순위 설정 방법

-인터럽트 요청 체인(interrupt request chain): 우선 순위 등급이 높은 장치가 인터럽트 요청을 할 때 등급이 낮은 장치로부터의 요청 불가

-인터럽트 우선 순위 체인(interrupt priority chain): 장치들이 인터럽트 요청 신호를 내보낸 후 그림 7-16과 같이 인터럽트 요청 장치들이 장치 번호를 장치 번호 버스에 나타나도록 할 때 가장 우선 순위가 높은 장치만이 장치 번호 버스를 사용

― 인터럽트 요청 체인

그림 7-18.  인터럽트 요청 체인

- 인터럽트 요청 신호 발생시 폴링의 순서는 인터럽트 요청체인에서 설정한 우선 순위대로 해야 하며 인터럽트 처리 중에는	낮은 우선 순위의 장치들은 인터럽트 마스크를 통하여 인터럽트 요청을 하지 못하게 한다.

- 인터럽트 우선 순위 체인 체제는 인터럽트 요청 체인보다 인터럽트 반응 속도가 빠른 잇점이 있지만 추가적인 하드웨어가 필요하므로 비용이 크다.

[2] 다중 회선  체제에서의 우선 순위

2 bit register들

C : 현재 취급중인 인터럽트의 우선 순위 등급

I : 현재 인터럽트를 요청한 장치 중에서 우선 순위 등급이 가장 높은 것

Q : 현재 다른 것에 의해 인터럽트 처리가 지연되고 있는 프로그램의 우선 순위

그림 7-19. 인터럽트 요청에 대한 반응

그림 7-20. 인터럽트 취급 루틴 완료시의 처리

그림 7-21. 우선 순위 식별 회로

X : 등급 3(high)

Y : 등급 2

Z : 등급 1(low)

○ 멀티미디어

문자, 영상, 화상, 소리 등 다양한 표현 미디어를 디지털화 된 단일한 형태로 통합하여 여러 가지 전달 미디어를 이용하여 사용자가 다양한 대용량의 정보를 쉽게 이용할 수 있도록 하는 시스템

― 멀티미디어가 실현될 수 있었던 다섯가지 배경

(1) 각종 미디어 처리 기술의 발달

(2) 데이터 입출력 장치의 기술 발전

(3) 컴퓨터 처리 속도의 향상

(4) 대용량 저장 장치의 실현

(5) 새 미디어 서비스 요구의 급증

표 7-4. 멀티미디어 시스템의 구조

도구 및 기본 응용 소프트웨어	멀티미디어 응용
	멀티미디어 문서 처리		그룹웨어(groupware)			저작 도구
	사용자 인터페이스용 도구
시스템 소프트웨어	하이퍼미디어 시스템 미디어 변환 소프트웨어, 멀티미디어 DBMS
	운영 체제
하드웨어	기억 장치	입력 장치		비디오/오디오 프로세서, 마이크로 프로세서, 주기억 장치	출력 장치		압축 장치, 통합 인터페이스

● 오디오와 비디오

멀티미디어 시스템에서는 문자나 그래픽 위주의 기존 미디어 처리와는 달리 데이터 양이 많은 오디오와 비디오를 처리

[1] 오디오

아날로그(analog) 음성 데이터가 컴퓨터에서 사용되기 위해서 디지탈로 변환되어야 한다.

― 오디오 데이터의 형식 :

- 음성 변조 방식을 사용하는 경우: 녹음되어 있는 아날로그 데이터를 디지털로 변조하는 것	이	일반적으로 PCM(pulse code modulation) 변조 방법과 ADPCM (adaptive differential pulse code modulation) 방식이 사용

- MIDI(musical instrument digital interface) 형식: 미디 형식으로 디지털화된 데이터는 크기가 대단히 작아 CD 1장에 음악 300 곡 이상을 수록할 수 있을 정도이나 음질은 기계음의 속성을 가지고 있기 때문에 고품질의 음질을	원할 때는 음성 변조 방식을 많이 사용

― 사운드 편집용 프로그램 :	아날로그 사운드를 디지털화 하거나 미디용 파일로 변환하는 곳에 사용하며, 사운드 상태를 웨이브 형으로 시각화하여 출력함으로써 사운드의 한 부분을 잘라 내거나 복사하거나 하여 사운드의 일부를 편집가능

― 윈도우즈 : windows multimedia development kit

― 매킨토시 :

사운드 에디터 프로

패스트포트사의 앨키미(alchemy)/오디오트랙스(audiotrex)

[2] 그래픽과 비디오

― 그래픽 및 이미지 : pixel에 의한 2 차원 배열의 형태로 표시

― 비디오 : 평면적인 이미지가 연속적으로 표현된 것으로 비디오(또는 동영상) 데이터를 디지털로 표현할 경우 막대한 양의 대역폭과 저장 장치가 필요하다. 일반적으로 정지된 이미지의 경우 픽셀의 해상도가 512×480과 256 color 이상이 되어야하며, NTSC (national television standard committee) TV는 4.5 ㎒ 의 대역폭에 대해 525 개 수평선과 360 개 수직 화소를 가지나, 주사 방법과 TV 구성 제한 때문에 해상도는 보다 작은 360×240 픽셀을 사용하며, CD-I를 위한 정상 해상도라 부름

― CCIR(international radio consultative committee)의

권고 601 :

디지탈 비디오의 국제 표준율 720 라인으로 규정

― 한개 라인당 픽셀의 수는 TV 방식에 따라 다름

NTSC 방식 : 480 픽셀

PAL 방식 : 576 픽셀

CCITT 의 비디오 전화 : 352×288 픽셀의 CIF(common	intermediate format)나 176×144 픽셀의 해상도를 갖는	QCIF (quarter CIF) 사용을 권고

수퍼 VHS 캠코더 : 400 라인

고품위 TV : 약 1,000 라인

동영상(motion video) : 초당 25～30 프레임을 필요

PAL 과 SECAM(sequential coieur avert memoire 의 약자	로, 프랑스에서 사용되는 표준임) : 초당 25 프레임

NTSC : 초당 30 프레임

비인터레이스 디스플레이(noninterlaced display) : 초당 60	프레임(컴퓨터 모니터)

● 멀티미디어 시스템

대화형 멀티미디어 시스템은 멀티미디어 응용 프로그램 또는 제작된 타이틀을 실연(play back)시킬 수 있는 시스템

[1] CD-I 와 CDTV

CD-I 는 소비자 시장을 겨냥한 최초의 대화형 멀티미디어 시스템으로 1986년에 Philips와 Sony사에서 처음 발표되어, 1987 년에 프로토타입이 개발되었으나 공식적인 상품은 1991년 가을에 발표

코모도(Commodore)사 에서는 1991 년 CD-I와 유사한 CDTV	(commodore dynamic to television)를 발표

[2] DVI

Intel사의 DVI 는 CD-I 나 CDTV와 달리 일반적인 비디오 압축 복원 기술을 사용하고 있으며 이를 실현할 수 있는 시스템이 DVI(digital video interactive) 플레이어이다. 현재 DVI 기술은 25 MIPS 픽셀 프로세서(82750PB)를 사용한다. 마이크로 프로세서에 비해 10배 빠른 처리 속도를 갖는 특수한 구조로서, DVI 는 MPEG 표준을 지원

[3] MPC(multimedia personal computer)

MPC는 가장 널리 보급된 IBM PC 호환 기종에 근거한 멀티미디어 시스템으로 현재 MPC 레벨 3, 4 까지 소개되고 있으며, 기존에 사용되는 80386 이상의 기종에 CD-ROM 드라이브와 오디오 기능을 추가

표 7-5. MPC 의 규격

특징	MPC 레벨 1	MPC 레벨 2
프로세서	16 ㎒ 386 SX 이상	25 ㎒ 486 SX 이상
운영 체제	MS 윈도우즈 3.0 이상 멀티미디어 확장	MS 윈도우즈 3.1 이상
주기억 장치	2 MB	4 MB
하드디스크	30 MB	160 MB
그래픽스	640×480 16 칼라m 256 칼러 권고	640× 480 64 K 칼러
CD-ROM 드라이브	전송률: 150 KB/초 접근 시간: 1000 ㎳ 이하	전송률: 300 KB/초 접근시간: 400 ㎳ 이하
사운드	8 비트, 11 KHz MIDI 호환	16 비트, 44.1 KHz MIDI 호환
포트	MIDI IfO, 조이스틱(Joystick)	좌동
기타	101 키보드, 마우스 프린터 포트, MIDI 포트	101 키보드,마우스 프린터 포트, MIDI 포
발표일	91년 3월	93년 5월

● 네트워킹

멀티미디어 데이터는 대용량이기 때문에 전송 품질을 보장하기 위해 매우 빠른 통신 프로토콜과 전송 미디어를 필요

전송 미디어의 대표적인 것이 광 케이블

― 네트워크 :

FDDI(fiber distributed data interface) :

100 Mbps 의 전송대역폭을 지원하는 프로토콜로서 LAN	들을 연결하는 백본(backbone) 망으로 사용될 수 있으며	최	대 4,500 바이트의 가변적 길이를 갖는 패킷을 전송

ATM(Asynchronous Tranfer Mode) :

초고속 통신망의 하부구조와 B-ISDN 의 기초로서 가변	과 고정의 전송률 서비스를 모두 제공하며, ATM 은	초당 1	Gbps 이상의 전송이 현재 가능하며 국제적 통신	을 위한 기	간망으로 적합

○ 압축

디지탈 멀티미디어 응용에서 압축 기법은 저장 장치의 절약 뿐 만 아니라 데이터 전송의 효율 측면에서 필수적인 기술로서 화상 및 비디오의 압축(compression) 및 복원(decompression) 기술

― 압축 방식 :

-손실 압축(lossy compression) 방식

압축된 데이터가 비교적 작은 저장 공간을 차지하는 압	축 기법이다. JPEG, MPEG, H.261 등이 이에 속하며 높	은 압축률을 갖는다. 손실 압축 기술로는 예측	(prediction)압축 기법, 주파수 위주(frequency oriented)	기법, 중요성 위주(importance oriented)기법, 여러 코딩	방법을 결합하여 만들어진 혼성 코딩 기법 등이 있다.

-무손실 압축(lossless compression) 방식

무잡음(noiseless) 혹은 엔트로피(entropy) 코딩이라고 부	른다. 일반적인 메시지 심벌에 대해서 더 적은 비트를 사	용하는 허프만 코딩과 RLE (run length encoding) 기법	등이 있다. PCX(picture), TIFF, GIF(graphic interface	format) 등이 이 부류에 속한다.

― 압축과 복원하는 알고리즘의 적용 방식 :

-대칭형 압축 알고리즘 :

압축 알고리즘과 해제 알고리즘이 동일

-비대칭형 압축 알고리즘 :

압축 알고리즘과 압축을 풀어 원상 복구하는 해제 알고	리즘이 다른 것

― 압축 알고리즘 선정시 고려해야할  4 가지 요소 :

(1)  압축률 : 저장 공간

(2) 압축 알고리즘의 정확성

(3) 영상의 질

(4) 속도 : 실시간 압축 알고리즘의 제공

― 인디오(INDEO-intel video techmology) :

1988 년 인텔사에서 제안한 것으로 80386 이상의 CPU에서	별도의 하드웨어 없이 소프트웨어적으로 맙축하고 해제하는	기술로서 영상 기판에 많이 사용되고 있다. 마이크로 소프	트사의 윈도우즈에서 이 방식을 사용

― H.261 또는 Px64 :

화상 회의에서 많이 사용되는 압축 표준, 비디오 정지 화상	및 고해상도 그래픽을 위해 CIF(common interactive	format)로 알려진 형식을 확립. CIF 는 352×288 의 해상도	를 가지고 있고 QCIF 는 176×144 의 해상도를 가짐

― MPEG :

동화상을 표현하는 압축 표준으로 움직이는 화상의 압축 방	식으로 비디오 기술과 관련하여 이미 MPEG-1 의 경우는	실용화되어, CD-VISION 과 CD-I 에 사용되는 기술

― JPEG(join photographic expert group) :

정지 화상을 위한 대표적인 압축 및 복원 알고리즘으로서	약 20 : 1의 압축률로 그레이 스케일(gray scale) 및 칼러	영상, 정지 영상의 디지탈 압축에 관한 표준으로 사용

표 7-6. 화상데이터 압축 표준의 비교

특성	JPEG	MPEG	H.261(Px64)
대칭적 압축	가능	불가능	불가능
프레임간 압축	불가능	가능	가능
프레임 내부 압축	가능	가능	가능
화상 품질	고품질	중․저품질	중․저품질
압축률	70:1 이상	200:1 이상
무손실 압축률	20～25:1	50～70:1
임의접근		불가능	불가능
인코더 가격	저가	고가	고가
디코더 가격	저가	저가	고가

― 그래픽 데이터에 주로 사용되는 압축 기술 :

PCX, BMP(bitmap), TGA(targa), GIF, TIFF 등

― DSP(digital signal processor) :

1980 년대 초에 개발된 아날로그 신호를 디지털 신호로 변	환해 실시간으로 고속 처리해 주는 전용 프로세서로 CPU	의 부담을 최소화