Post

Chapter.08 - 입출력장치

모든 이미지의 저작권은 [혼자 공부하는 컴퓨터 구조 + 운영체제] 도서의 저자 강민철님에게 있습니다.

장치 컨트롤러

CPU와 입출력장치 간의 통신 중개 , 오류 검출 , 데이터 버퍼링 등의 역할을 수행하는 입출력장치의 하드웨어

일반적으로 입출력장치는 데이터 전송률이 낮다. ( = CPU & RAM 에 비해 주고받을 수 있는 데이터가 적다.) 그래서 데이터 버퍼링을 통해 전송률의 차이를 보완한다.

장치 컨트롤러 핵심 구조

8-1.png

데이터 레지스터
서로 주고 받을 데이터가 담기는 레지스터.
버퍼의 역할을 함
상태 레지스터
입출력장치의 상태를 저장
제어 레지스터
입출력장치가 수행할 내용에 대한 제어와 명령을 저장

장치 드라이버

장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램 (소프트웨어)

프로그램이기에 메모리를 사용한다.

8-2.png

입출력 방법

* 프로그램 입출력

프로그램 속에 입출력장치와 상호작용하는 명령어로 입출력장치를 제어하는 방법

여러 장치 컨트롤러의 레지스터 주소에 접근하기 위한 방법 2가지
8-3.png

* 인터럽트 기반 입출력

  • 원리
    1. CPU로부터 명령을 받은 장치 컨트롤러가 입출력장치에 일을 시킨다.
    2. 입출력장치의 작업이 완료되면 장치 컨트롤러가 CPU에 인터럽트를 보낸다.
    3. CPU 는 하던 일을 멈추고 인터럽트 서비스 루틴을 실행한다.
  • 여러 입출력장치에서 동시에 인터럽트가 발생한 경우

    8-4.png

    프로그래머블 인터럽트 컨트롤러 (PIC) 라는 하드웨어가 모든 인터럽트 신호를 받고 우선순위를 판별하여 CPU에 신호를 보내준다.

인터럽트 비트를 무시하는 인터럽트 : NMI (Non-Maskable Interrupt)

* DMA 입출력

입출력장치가 직접 메모리에 접근할 수 있도록 하는 DMA (Direct Memory Access) 기능을 이용한 입출력

DMA 컨트롤러 라는 하드웨어가 필요하다.

CPU 가 입출력 작업을 DMA 컨트롤러에게 명령하면 DMA 컨트롤러는 메모리에 직접 접근해서 입출력 작업을 수행하고 작업이 완료되면 CPU 에 인터럽트 신호를 보낸다.

  • 입출력 버스

    입출력장치 , DMA 컨트롤러와 연결된 버스

    시스템 버스의 사용 빈도를 줄여 CPU 가 더 많이 사용할 수 있도록 함

    PCI 버스 , PCIe 버스 등 여러 종류가 있다.

    PCIe 슬롯을 통해 입출력장치 와 입출력 버스를 연결한다.

8-5.png

This post is licensed under CC BY 4.0 by the author.