백엔드 개발자 블로그

8. 입출력장치 본문

독서/혼자 공부하는 컴퓨터 구조+운영체제

8. 입출력장치

backend-dev 2024. 7. 23. 17:55

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

  • 장치 컨트롤러
    • 장치 컨트롤러란? : 입출력장치와 컴퓨터 내부와 정보를 주고받음
    • 장치 컨트롤러 사용하는 이유 : 입출력장치 규격화가 어려움, 전송률 차이
    • 장치 컨트롤러 기능 : 
      • CPU와 입출력장치 간의 통신 중개
      • 오류 검출
      • 데이터 버퍼링 : 임시 저장공간에 저장하여 장치간 전송률을 비슷하게 맞추는 방식
    • 장치 컨트롤러 구조
      • 데이터 레지스터 : CPU와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터
        • 상태 레지스터 : 입출력 장치 상태(준비,완료,오류) 저장하는 레지스터
        • 제어 레지스터 : 입출력장치가 수행할 내용에 대한 제어 정보와 명령을 저장
  • 장치 드라이버 : 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램

 

2. 다양한 입출력 방법

  1. 프로그램 입출력 : 프로그램 속 명령어로 입출력장치를 제어하는 방법
    • 메모리 맵 입출력 : 메모리에 접근하기 위한 주소 공간과 입출력장치에 접근하기 위한 주소 공간을 하나의 주소 공간으로 간주하는 방법
    • 고립형 입출력 : 메모리를 위한 주소 공간과 입출력장치를 위한 주소 공간을 분리하는 방법
  2. 인터럽트 기반 입출력 : 인터럽트로써 입출력을 수행하는 방법
    • 선착순
    • 우선순위 순 -> PIC가 판별해줌(프로그래머블 인터럽트 컨트롤러)
  3.  DMA 입출력 : CPU를 거치지 않고 메모리와 입출력장치 간의 데이터를 주고받는 입출력 방식
    • DMA 컨트롤러 필요

 

  • 입출력 버스 : 입출력장치와 컴퓨터 내부를 연결 짓는 통로
    • 시스템 버스 사용 빈도를 줄임
    • 종류
      • PCI 버스
      • PCI Express(PCIe) 버스

'독서 > 혼자 공부하는 컴퓨터 구조+운영체제' 카테고리의 다른 글

9. 운영체제  (0) 2024.07.24
7. 보조기억장치  (0) 2024.07.22
6. 메모리와 캐시 메모리  (0) 2024.07.19
5. CPU 성능 향상 기법  (0) 2024.07.18
4. CPU 작동원리  (1) 2024.07.17