혼공컴운 챕터 8. 입출력장치

김민영·2023년 1월 27일
0

혼공학습단

목록 보기
6/22
post-thumbnail

8-1 장치 컨트롤러와 장치 드라이버

장치 컨트롤러

  • 종류가 많고, 데이터 전송률이 낮음.

장치 컨트롤러

  • 입출력장치와 컴퓨터를 연결하는 하드웨어
  • == 입출력 제어기 I/O controller == 입출력 모듈 I/O module

역할

  1. CPU와 입출력장치 간 통신 중개
  2. 오류 검출
  3. 데이터 버퍼링

데이터 버퍼링

  • 버퍼링 : 전송률이 높은 장치(CPU)와 낮은 장치(입출력장치)의 전송률을 맞추기 위해 버퍼라는 임시 저장 공간에 저장하는 방식.

데이터 레지스터

  • CPU와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터

상태 레지스터

  • 입출력 장치의 상태 정보가 저장
    • 입출력 작업 준비가 되었는지, 작업 완료 되었는지, 오류 없는지

제어 레지스터

  • 입출력 장치가 수행할 내용에 대한 제어 정보와 명령 저장

장치 드라이버

  • 장치 컨트롤러의 동작 감지, 제어. 장치 컨트롤러와 컴퓨터 내부의 정보 교환하는 프로그램

8-2 다양한 입출력 방법

  • 장치 컨트롤러와 CPU가 정보를 주고받는 방법

프로그램 입출력

  • 프로그램 속 명령어로 입출력 제어
  1. CPU는 제어 레지스터에 명령
  2. 장치 컨트롤러의 상태 레지스터에 준비완료 표시
  3. CPU는 상태 레지스터에 준비완료 표시를 보고, 데이터 레지스터에 데이터 보냄.
  • CPU가 장치 컨트롤러의 레지스터는 아는 방법

메모리 맵 입출력

메모리에 접근하기 위한 주소 공간과
입출력 장치에 접근하기 위한 주소 공간을
하나의 주소 공간으로 간주

  • 메모리 주소 공간 축소
  • 메모리와 입출력장치에 같은 명령어 사용

고립형 입출력

메모리를 위한 주소 공간과
입출력 장치를 위한 주소 공간을
분리

  • 메모리 주소 공간 축소되지 않음
  • 입출력 전용 명령어 사용

인터럽트 기반 입출력

  • CPU가 장치 컨트롤러에 입출력 명령 보냄
  • 장치 컨트롤러가 입출력 작업을 끝낸 뒤 CPU에 인터럽트 요청을 보냄
  • CPU는 인터럽트 서비스 루틴 실행
  • NMI Non-Maskable Interrupt : 인터럽트 비트를 비활성화해도 무시할 수 없는 인터럽트
    • CPU는 우성순위가 높은 인터럽트부터 처리
  • 프로그래머블 인터럽트 컨트롤러 PIC
    • 여러 장치 컨트롤러에 연결되어 있음
    • 인터럽트 요청들의 우선순위를 판별하고, CPU에게 순서대로 알림.
    • CPU는 PIC에 인터럽트 확인 신호 보냄
    • PIC는 데이터 버스를 통해 CPU에 인터럽트 벡터를 보냄
    • CPU는 인터럽트 서비스 루틴 실행

DMA 입출력

  • DMA : Direct Memory Access
    • 입출력장치와 메모리가 CPU를 거치지 않고 상호작용 하는 방식. (CPU 부담 적음)
    • 메모리에 직접 접근할 수 있는 입출력 기능
    • DMA 컨트롤러 하드웨어 필요 (시스템 버스에 연결되어있음)

입출력 버스

  • DMA 컨트롤러와 장치 컨트롤러를 연결
  • 시스템 버스 사용 빈도 줄임. (CPU가 시스템 버스 사용할 수 있도록)
profile
노션에 1차 정리합니당 - https://cream-efraasia-f3c.notion.site/4fb02c0dc82e48358e67c61b7ce8ab36?v=

0개의 댓글