본문 바로가기

컴퓨터구조

컴퓨터구조: 입출력 명령

728x90
반응형

입출력 장치가 매우 다양한 만큼 입출력 명령도 다양하다.

개인용 컴퓨터에서는 1) 프로그래밍에 의한 입출력, 2) 인터럽트 구동 입출력(interrupt-driven), 3) DMA 입출력 세 가지 입출력 방식이 사용된다.

1) 프로그래밍에 의한 입출력

임베디드 시스템이나 외부 변경에 신속하게 응답해야 하는 실시간 시스템 같은 저사양 마이크로프로세서에서 일반적으로 사용된다.

주요 단점은 장치가 준비되기를 기다리는 긴 시간을 CPU가 낭비하게 된다. 이를 사용 대기(busy waiting)라고 한다.

2) 인터럽트 구동 입출력

프로세서가 입출력 장치에 작업을 지시하고 완료되면 인터럽트를 생성하도록 명령하는 것이다.

장치 레지스터에 인터럽트 활성화 비트를 설정함으로써 소프트웨어는 입출력이 완료되면 하드웨어가 신호를 제공하도록 요청할 수 있다.

단점으로는 전송된 모든 문자에 인터럽트가 필요한데 인터럽트 처리는 비용이 많이 든다.

3) DMA 입출력

버스에 직접 액세스할 수 있는 새로운 방법인 DMA(Direct Memory Access) 제어기를 시스템에 추가하는 것이다.

DMA칩은 내부에 레지스터를 최소 4개 가지고 있다. 프로세서에서 실행되는 소프트웨어로 로드할 수 있다.

a) 읽거나 쓸 메모리 주소를 포함

b) 얼마나 많은 바이트(또는 워드)(가 전송되는지 계산

c) 사용할 장치 번호 또는 입출력 공간 주소를 지정하여 원하는 장치를 지정

d) 입출력 장치에서 데이터를 읽거나 쓰는 여부를 알려줌

DMA가 프로세서 입출력의 부담을 크게 덜어 주지만 프로세서는 완전히 자유롭지 못하다. 왜냐하면 디스크 같은 고속 장치가 DMA로 실행되는 경우 메모리 참조 및 장치 참조를 위한 버스 사이클이 많이 필요하다. 이러한 사이클 동안 CPU는 대기햐아 한다.

DMA 제어기가 CPU에서 버스 사이클을 제거하는 프로세스를 사이클 스틸링(cycle stealing)이라고 한다.

그럼에도 바이트(또는 워드)당 하나의 인터럽트를 처리하지 않다도 된다는 이득은 사이클 스틸링으로 입은 손실보다 훨씬 크다.

반응형

'컴퓨터구조' 카테고리의 다른 글

컴퓨터 구조: CISC와 RISC  (0) 2023.04.15
컴퓨터구조: 주소 지정 방식  (0) 2023.04.15
컴퓨터구조: 명령어  (1) 2023.04.15
컴퓨터구조: 레지스터  (0) 2023.04.15
컴퓨터구조: 산술 논리 연산 장치  (1) 2023.04.15