input/output devices

입출력 장치

Apr 03, 2024

장치 컨트롤러

  • 속도 조절: 장치와 컴퓨터 사이의 속도 차이를 조절하고 데이터를 적절하게 버퍼링하여 데이터의 정확한 전송을 보장
  • 오류 감지 및 복구: 전송 중에 발생할 수 있는 오류를 감지하고 이를 복구
  • 프로토콜 호환성: 다른 장치와의 통신에서 발생할 수 있는 호환성 문제를 해결하고 전송률을 유지

데이터 레지스터(data register)

  • CPU와 입출력장치 사이에 주고 받을 데이터가 담김

상태 레지스터(status register)

  • 입출력장치의 준비, 완료, 오류 등의 상태를 저장

제어 레지스터(control register)

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

장치 드라이버

  • 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게하는 프로그램
  • 새로운 장치를 컴퓨터에 연결하려면 장치 드라이버를 설치해야하고 프로그램이기 때문에 메모리에 저장된다
  • 장치 컨트롤러 -> 하드웨어적인 통로 / 장치드라이버 -> 소프트웨어적인 통로

입출력 방법

프로그램 입출력(programmed I/O)

  • 프로그램 속 명령어로 입출력 장치 제어
메모리 맵 입출력(memory-mapped I/O)고립형 입출력(isolated I/O)
메모리와 입출력 장치는 같은 주소 공간 사용메모리와 입출력장치는 분리된 주소 공간 사용
메모리 주소 공간이 축소됨메모리 주소 공간이 축소되지 않음
메모리와 입출력장치에 같은 명령어 사용 가능입출력 전용 명령어 사용

인터럽트 기반 입출력

  • 입출력 장치에 의한 인터럽트는 장치 컨트롤러에 의해 발생

  • 장치 컨트롤러가 입출력 작업을 끝낸 뒤 CPU에게 인터럽트 요청 신호를 보내면 CPU는 하던 일을 잠시 백업하고 인터럽트 서비스 루틴 실행 이전글 참고: CPU 작동원리 | 비동기 인터럽트

    폴링(Polling): CPU가 주기적으로 장치 컨트롤러의 상태 레지스터를 확인하여 입출력장치의 상태는 어떤지, 처리할 데이터가 있는지 주기적으로 확인하는 방식

프로그래머블 인터럽트 컨트롤러(PIC: Programmable Interupt Controller)

  • PIC에 연결된 장치 컨트롤러들이 동시에 하드웨어 인터럽트 요청을 보내면 PIC는 이들의 우선순위를 판단하여 CPU에 가장 먼저 처리할 인터럽트를 알려줌

DMA(Direct Memory Access) 입출력

  • 프로그램 기반 입출력, 인터럽트 기반 입출력 방식은 모두 입출력장치와 메모리 사이에 전송되는 모든 데이터가 CPU를 거침
  • DMA 방식은 직접 메모리에 접근하여 CPU의 부담을 줄임
  • DMA 컨트롤러라는 하드웨어 필요
  • 사이클 스틸링(cycle stealing): DMA 컨트롤러는 시스템 버스를 사용하는데, 시스템 버스는 동시에 사용이 불가능하기 때문에 CPU와 DMA 컨트롤러는 시스템 버스를 교차로 사용함

입출력 버스

  • DMA 컨트롤러와 장치 컨트롤러들을 입출력 버스라는 별도의 버스에 연결
  • DMA 컨트롤러와 장치 컨트롤러가 서로 데이터를 전송할 때 시스템 버스가 아닌 입출력버스를 사용하게 함으로써 시스템 버스의 사용빈도를 줄임
  • PCI(Peripheral Component Interconnect) 버스, PCI Express(PCIe) 버스 등

출처:
개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제

Go toor?