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

섹션8 | 장치 컨트롤러와 장치 드라이버

imname1am 2024. 1. 4. 21:53
반응형

 

입출력장치, CPU나 메모리보다 다루기 더 까다롭다.

 

WHY?

1) 입출력장치, 종류가 너무 많기 때문 → 규격화 어려움

2) 입출력 장치의 데이터 전송률은 CPU와 메모리에 비해 낮기 때문

(* 전송률 : 데이터를 얼마나 빨리 교환할 수 있는지 나타내는 지표)

 

 

🧩 장치 컨트롤러

입출력 장치를 연결해 컴퓨터 내부와 정보를 주고 받음

 

○ 하드디스크

  • 역할
    1. CPU와 입출력 장치 간 통신중개
    2. 오류 검출
    3. 데이터 버퍼링
      • 버퍼링 : 전송률 높은 장치와 낮은 장치 간 주고받는 데이터를 버퍼에 저장해 전송률을 비슷하게 맞추는 방법
  • 구조

: 데이터 레지스터, 상태 레지스터, 제어 레지스터

 

 

 

🧩 장치 드라이버

장치 컨트롤러의 동작을 감지하고 제어하는 프로그램 (SW적 통로)

 

입출력 방식

1. 프로그램 입출력

프로그램 속 명령어로 입출력장치 제어
  • 입출력 명령어로써 장치 컨트롤러와 상호작용
  • 예) 메모리에 저장된 정보를 하드 디스크에 백업 (= 하드 디스크에 새 정보 쓰기)
  • CPU가 장치 컨트롤러의 레지스터 값을 읽고 씀으로써 이뤄짐
    • HOW? 메모리 맵 입출력, 고립형 입출력

 

 

2. 인터럽트 기반 입출력

  • HW인터럽트, 장치 컨트롤러에 의해 발생
  • 동시다발적 인터럽트도 우선순위 반영해 실행
  • PIC (Programmable Interrupt Controller)
    1. 여러 장치 컨트롤러에 의해 연결되어
    2. 장치 컨트롤러의 HW인터럽트 우선순위 판단 후
    3. CPU에게 지금 처리해야 하는 인터럽트가 무엇인지 판단하는 HW

 

 

3. DMA 입출력

위 두 입출력 방식과 달리
CPU를 거치지 않고 입출력장치가 메모리에 직접적으로 접근하는 기능

 

 

[DMA 입출력 과정]

1. CPU, DMA 컨트롤러에 입출력 작업 명령

 

 

2. DMA 컨트롤러, CPU 대신 장치 컨트롤러와 상호 작용하며 입출력 작업 수행

 

 

3. CPU, 입출력 작업의 시작과 끝만 참여

 

시스템 버스, 공용 자원이므로 동시 사용 불가 문제 발생

 

 

DMA 컨트롤러, 

  1. CPU가 시스템 버스를 이용하지 않을 때마다 조금씩 시스템 버스 이용
  2. CPU가 일시적으로 시스템 버스 이용하지 않도록 허락 구하고 시스템 버스 이용 (*Cycle Stealing)

 

입출력 버스 : PCI버스와 입출력 장치를 연결짓는 슬롯. 시스템 버스 이용 빈도 낮춤
   └ 슬롯 → 입출력 버스 → 시스템 버스

 


(참고)

https://youtu.be/1Pp6PJ1kSqI?feature=shared

https://youtu.be/RRgGVu8OCP4?feature=shared

 

반응형