728x90
반응형
장치 컨트롤러
컴퓨터 내부와 정보를 주고 받을 수 있도록 하는 하드웨어적인 통로
장치 컨트롤러의 역할
- CPU와 입출력장치 간의 통신 중개: CPU와 입출력장치간 데이터를 주고받을 수 있도록 해줌
- 오류 검출: 연결된 입출력 장치에 문제가 없는지 오류 검출 및 확인
- 데이터 버퍼링: 전송률이 다름으로써 생기는 문제를 해결하기 위해 데이터를 버퍼에 저장하여 전달
장치 컨트롤러의 데이터 입출력 방식
프로그램 입출력: 프로그램 속 명령어로 입출력 장치를 제어하는 방식
- 메모리 맵 입출력: 메모리 접근 주소공간과 입출력 접근용 주소공간을 함께 사용
- 고립형 입출력: 메모리 접근 주소 공간과 입출력 접근용 주소공간을 독립적으로 사용 (입출력장치 읽기/쓰기 선을 따로 둠으로써 가능해지는 방법임)
인터럽트 기반 입출력:
- 하드웨어 인터럽트란?
- CPU가 입출력 장치에게 장치 컨트롤러를 통해 업무 지시
- 입출력 장치가 업무 수행
- 업무가 끝나면 입출력 장치가 CPU에게 인터럽트를 날림으로써 작업이 끝남을 알림
- 인터럽트 동시 발생 시 처리 방식
- 순차 처리: 인터럽트가 발생한 순서에 따라서 처리
- 우선순위 처리: 우선순위가 높은 인터럽트를 우선으로 처리
- 이 때, 우선순위는 PIC(Programmable Interrupt Controller)를 통해 파악하고, PIC가 먼저 처리를 인터럽트를 CPU에게 전달한다. 무시할 수 없는 인터럽트인 NMI(Non-Maskable Interrupt)는 무조건 먼저 처리 된다
DMA 입출력: CPU를 거치지 않고 바로 입출력 장치와 메모리간 접근이 가능하도록 DMA 컨트롤러를 사용하는 방식
- 동작 방식
- CPU가 DMA 컨트롤러에게 명령을 내림
- DMA 컨트롤러가 CPU 대신 메모리, 입출력 장치와 데이터를 전송해가며 업무 수행
- 업무가 다 끝나면 DMA 컨트롤러가 CPU에게 인터럽트를 걸어 작업이 끝남을 알림
- 입출력 버스: DMA는 CPU와 시스템 버스를 공유하는데, 그러면 사이클 스틸링이 잦게 일어날 수 있음. 따라서 이를 최소한으로 줄이기 위해 DMA와 입출력 장치 간 서로 데이터를 전송할 수 있는 입출력 버스를 별도로 두었음 (예: PCI 버스, PCIe 버스)
장치 드라이버
장치 컨트롤러의 동작을 감지하고 제어하여 연결하기 위한 소프트웨어적인 통로
728x90
반응형
'Dev > CS 컴퓨터사이언스' 카테고리의 다른 글
[혼공컴운/OS] 메모리 | DRAM | SRAM | SDRAM | DDR | 논리주소와 물리주소 | 한계 레지스터 | 베이스 레지스터 (0) | 2023.06.05 |
---|---|
[혼공컴운/OS] CPU의 속도를 높이는 방법 | 클럭 | 멀티코어 | 멀티스레드 | 파이프라이닝 | 슈퍼스칼라 | OoOE | RISC | CISC (1) | 2023.05.27 |
[혼공컴운/OS] CPU | 레지스터의 종류 | CPU 명령어 사이클 | 인터럽트 (1) | 2023.05.20 |
[혼공컴운/OS] 명령어 | 고급언어와 저급언어 | 컴파일러와 인터프리터 | 명령어의 구성 (1) | 2023.05.16 |
[혼공컴운/OS] 컴퓨터 구조 | 숫자 데이터의 표현 | 문자 데이터의 표현 | 다양한 인코딩 방법 (1) | 2023.05.16 |