IT보안 학습

입출력 인터페이스 총정리

김구티2 2023. 12. 15. 21:14

1. 입출력 인터페이스의 개념

컴퓨터 시스템의 입출력 처리는 메인 메모리와 보조 메모리 사이에서 입출력을 수행하는 것이다.

 

2. 입출력 인터페이스의 방법

ㄱ. 프로그램에 의한 입출력

CPU가 연산 도중에 입출력이 필요하면 보조 메모리에서 데이터를 읽어와 메인 메모리에 적재하고, CPU는 메인 메모리를 참조해서 데이터를 읽어오는 방법이다. 이 방법은 입출력을 수행할 때 모든 작업을 CPU가 하기 때문에 CPU는 입출력 동안 다른 작업을 할 수 없다는 치명적인 단점을 지닌다. 소개할 방법 중 가장 프로세서의 시간을 낭비하고 처리 효율이 낮다고 볼 수 있다.

 

ㄴ. 인터럽트 입출력

입출력 인터럽트가 발생되는 소프트웨어 혹은 하드웨어 방식으로 인터럽트를 식별하고 인터럽트 처리 루틴에 의해서 입출력을 수행한다. 이 방법은 프로그램에 의한 입출력에 비해 CPU의 관여가 적지만, 그래도 CPU가 관여를 한다는 사실 자체는 여전하기 때문에 CPU는 입출력을 대기해야만 하는 문제가 발생한다. 앞선 프로그램에 의한 입출력에 대한 방안이라고 하기가 애매한 수준인 것이다. CPU는 주변 장치들의 데이터 전송을 위한 인터럽트 요청을 감지하면 수행 중이던 작업을 중단하며 데이터 전송을 우선적으로 처리하게 된다.

 

ㄷ. DMA(Direct Memory Access)

DMA는 DMA 제어기를 두어 메인 메모리와 입출력 장치를 다이렉트로 연결한다. 그래서 CPU의 개입을 없게 만드는 것이다. CPU는 데이터 전송에 관여하지 않게 되므로, 전반적인 컴퓨터 작동 속도는 향상될 것이다.

 

DMA의 동작 방식으로는 Burst Mode와 Cycling Stealing, Transparent Mode가 있다. Burst Mode는 CPU가 DMA 제어기에 시스템 버스에 대한 엑세스 권한을 부여하면 DMA 제어기는 전체 데이터 블록을 하나의 연속 시퀀스로 전송한다. 전송이 완료되면 버스 제어가 다시 CPU로 돌아간다. Cycling Stealing은 DMA 제어기와 CPU가 버스를 공유하는 것이다. CPU가 버스를 사용하지 않는 사이클에만 접근하고 CPU보다 높은 우선순위를 갖는다. 마지막으로 Transparent Mode에서 DMA 컨트롤러는 CPU가 버스를 사용하지 않는 작업을 실행할 때만 데이터를 전송한다. 이 DMA 전송 방법을 사용하면 CPU가 작업 수행을 중단할 필요가 없게 된다. 투명 모드 DMA 작업은 데이터 블록을 전송하는 데 있어 가장 오랜 시간이 걸리지만, 시스템 성능 측면에서는 오히려 가장 효율적이라 할 수 있다.

 

한편, DMA의 대안이라고도 할 수 있는 Ultra DMA도 있는데, Ultra DMA는 DMA의 방식을 확장하여 한 번에 2회의 전송을 할 수 있게 만드는 방식이다. 이 방식을 사용함으로써 동기 신호의 종료 시점에서만 데이터를 전송했던 종래의 DMA 방식의 2배인 33 Mbps의 전송 속도를 실현할 수 있게 되었다. 또 전송된 데이터의 순환 중복 검사(Cyclic Redundancy Check)에 의해서 데이터의 신뢰성도 한층 향상되었다.

 

ㄹ. 입출력 채널

채널에 의한 입출력은 크게 Selector 채널과 Multiplexer 채널로 구분된다. 이름에서도 이미 눈치를 챌 수 있는데, Selector 채널은 한 번에 1개의 데이터를 메인 메모리에 보내는 방식이다. 그리고 Burst Mode로 동작한다. 반면, Multiplexer 채널은 동시에 많은 데이터를 전송할 수 있는 방식이며, 전송 단위에 따라 Byte Multiplexer, Block Multiplexer로 또 나눠진다. Byte Multiplexer 채널은 한 개의 채널에 여러 개의 입출력 장치를 연결하여 시분할 공유하는 방식이다. 저속 입출력 방식이기도 하다. Block Multiplexer 채널은 일종의 하이브리드 모드라 할 수 있는데, 동시에 여러 입출력을 처리하는 것이다. 이름에서 알 수 있듯, 블록 단위로 처리한다.

 

728x90

'IT보안 학습' 카테고리의 다른 글

Sendmail 보안 총정리  (0) 2023.12.19
운영체제(OS) 총정리  (2) 2023.12.16
메모리 시스템 총정리  (0) 2023.12.14
이메일 보안 기법 총정리  (0) 2023.12.13
CPU에 대한 구조적 이해 총정리  (0) 2023.12.12