입출력 시스템

minhee·2020년 7월 8일
0

컴퓨터에서 가장 중요한 두가지 작업은 연산작업, 입출력 작업입니다. 그 중 입출력 시스템에 대해서 알아보겠습니다. 입출력 장치는 저장 장치, 전송 장치, 사용자 인터페이스 장치를 가지고 있으며 모든 제어기는 레지스터를 가지고 있습니다. 컴퓨터의 프로세서는 제어기의 레지스터에 비트 패턴을 쓰거나 읽음으로 입출력을 실행합니다

입출력 방법

  1. 하드웨어 장치
  • 케이블 또는 무선으로 신호를 보냄으로써 컴퓨터 시스템과 통신하며 컴퓨터에 접속한다
  • 하나 이상의 장치들이 공동으로 여러 선을 사용한다. 버스와 프로토콜까지 포함하는 개념이다.
  • 입출력 장치를 제어하는 전자회로의 집합체를 제어기라고 하는데 입출력 장치는 제어기를 내장하고 있다.
  1. 메모리 맵 입출력
  • 장치 제어 레지스터를 프로세서의 주소 공간으로 사상하는 방법이다.
  • 레지스터들이 메모리 주소와 일대일 대응하여 메모리 주소에 데이터를 읽고 쓰는 것으로 장치 제어기의 레지스터에 직접 데이터를 읽고 쓰는 역할을 수행한다.
  • 메모리 맵 입출력은 명령어를 이용하는 것보다 훨씬 더 빠른 성능이다.
  • 메모리에 직접 수백만 바이트를 기록하는 방식이다. 하지만 잘못된 포인터 오류로 입출력 시스템에 문제가 생길 수 있다는 단점이 있다.

입출력 전송

  1. 폴링
  • 컴퓨터가 시시때때로 장치가 사용중인지 검사하기 위하여 비지비트를 검사해야하는데 이 행동을 폴링이라고 한다
  • 장치 제어기의 레지스터에는 비지비트라는 것이 존재하는데 이것은 현재 장치가 사용 가능한 상태인지 파악하고 제어기가 바쁠 땐 1, 준비중일 때 0으로 설정한다.
  • 폴링에는 준비하는 시간이 길어지면 매우 비효율적이므로 인터럽트를 사용한다.
  1. 인터럽트
  • 하드웨어가 제어기의 상태가 바뀔 때 컴퓨터에게 통보하여 처리하는 과정이다. 우선 순위를 구분하고 긴급핞 정도에 따라 응답하기 위한 다양한 수준의 인터럽트가 필요하다.
  1. DMA (=직접 메모리 접근)
  • 방법
    1. 호스트가 DMA 명령을 쓰면 전송하여 수신지의 포인터와 데이터 크기를 기록한다.
    2. CPU는 DMA에게 알려준 후 다른 일을 진행한다.
    1. DMA가 버스를 통해 입출력 연산을 진행한다.
    2. 연산이 끝난 후 CPU에게 완료 인터럽트를 보낸다.
  1. 채널에 의한 데이터 전송
  • CPU와 완전히 독립되어 이루어진다.
  • CPU를 경유하지 않고 CPU와 동시에 동작이 가능한 방법으로 채널 제어기에 입출력 명령을 전달하여 수행한다

0개의 댓글