📚 관련 독서/혼자 공부하는 컴퓨터구조 + 운영체제
섹션8 | 장치 컨트롤러와 장치 드라이버
imname1am
2024. 1. 4. 21:53
반응형
입출력장치, CPU나 메모리보다 다루기 더 까다롭다.
WHY?
1) 입출력장치, 종류가 너무 많기 때문 → 규격화 어려움
2) 입출력 장치의 데이터 전송률은 CPU와 메모리에 비해 낮기 때문
(* 전송률 : 데이터를 얼마나 빨리 교환할 수 있는지 나타내는 지표)
🧩 장치 컨트롤러
입출력 장치를 연결해 컴퓨터 내부와 정보를 주고 받음
○ 하드디스크
- 역할
- CPU와 입출력 장치 간 통신중개
- 오류 검출
- 데이터 버퍼링
- 버퍼링 : 전송률 높은 장치와 낮은 장치 간 주고받는 데이터를 버퍼에 저장해 전송률을 비슷하게 맞추는 방법
- 구조
: 데이터 레지스터, 상태 레지스터, 제어 레지스터
🧩 장치 드라이버
장치 컨트롤러의 동작을 감지하고 제어하는 프로그램 (SW적 통로)
입출력 방식
1. 프로그램 입출력
프로그램 속 명령어로 입출력장치 제어
- 입출력 명령어로써 장치 컨트롤러와 상호작용
- 예) 메모리에 저장된 정보를 하드 디스크에 백업 (= 하드 디스크에 새 정보 쓰기)
- CPU가 장치 컨트롤러의 레지스터 값을 읽고 씀으로써 이뤄짐
- HOW? 메모리 맵 입출력, 고립형 입출력
2. 인터럽트 기반 입출력
- HW인터럽트, 장치 컨트롤러에 의해 발생
- 동시다발적 인터럽트도 우선순위 반영해 실행
- PIC (Programmable Interrupt Controller)
- 여러 장치 컨트롤러에 의해 연결되어
- 장치 컨트롤러의 HW인터럽트 우선순위 판단 후
- CPU에게 지금 처리해야 하는 인터럽트가 무엇인지 판단하는 HW
3. DMA 입출력
위 두 입출력 방식과 달리
CPU를 거치지 않고 입출력장치가 메모리에 직접적으로 접근하는 기능
[DMA 입출력 과정]
1. CPU, DMA 컨트롤러에 입출력 작업 명령
2. DMA 컨트롤러, CPU 대신 장치 컨트롤러와 상호 작용하며 입출력 작업 수행
3. CPU, 입출력 작업의 시작과 끝만 참여
≫ 시스템 버스, 공용 자원이므로 동시 사용 불가 문제 발생
DMA 컨트롤러,
- CPU가 시스템 버스를 이용하지 않을 때마다 조금씩 시스템 버스 이용
- CPU가 일시적으로 시스템 버스 이용하지 않도록 허락 구하고 시스템 버스 이용 (*Cycle Stealing)
+ 입출력 버스 : PCI버스와 입출력 장치를 연결짓는 슬롯. 시스템 버스 이용 빈도 낮춤
└ 슬롯 → 입출력 버스 → 시스템 버스
(참고)
https://youtu.be/1Pp6PJ1kSqI?feature=shared
https://youtu.be/RRgGVu8OCP4?feature=shared
반응형