Notice
Recent Posts
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
관리 메뉴

교대최소제곱법

[컴퓨터 시스템 part 4] 입출력장치 본문

CS 기초/컴퓨터 구조

[컴퓨터 시스템 part 4] 입출력장치

옐라크레 2023. 9. 8. 01:38

입출력장치

보조기억장치도 입출력장치임!

장치 컨트롤러 → 입출력장치와 cpu를 연결해주는 장치 + 데이터 버퍼

장치 컨트롤러 : 버스에 연결됨 - 데이터, 상태, 제어 레지스터

장치 드라이버 : 장치 컨트롤러를 제어하는 프로그램 + 운영체제가 이해할 수 있도록

 

입출력 방식

  1. 프로그램 입출력 : 명령어로 장치 컨트롤러를 제어 → 레지스터에 직접 씀
    1. 메모리 맵 입출력 : 같은 메모리 위치에 입출력장치를 위한 주소 공간을 사용
    2. 고립형 입출력 : 메모리를 두 개 사용 (메모리, 입출력장치) → 대신 입출력 전용 명령어를 사용
    문제는 주기적으로 장치 컨트롤러에 접근해서 준비 여부를 확인해야함 → 그래서 인터럽트를 사용하기로 함

  2. 인터럽트 기반 입출력
    1. 순차적으로 처리하는건 현실적이지 않음PIC는 여러 장치 컨트롤러와 연결 → 인터럽트가 하나로 모여서 정리해서 cpu에게 알려줌
    2. PIC → PIC → cpu 같이 여러개의 PIC를 활용하기도 함
    3. 우선순위를 반영하여 기존에 인터럽트를 처리하고 있어도 멈추고 진행시킴 → PIC 하드웨어를 사용

  3. DMA 입출력 : cpu를 거치지 않고 메모리에 직접적으로 접근
    1. DMA 컨트롤러 = 척수, 세컨 브레인 같은거네 외주를 주는거임
    2. 근데 DMA도 시스템버스를 활용하는데?
      1. cpu가 시스템 버스를 안 쓸 때 이용
      2. 허락을 구하고 시스템 버스를 이용(사이클 스틸링)

 

근데 시스템 버스는 하나인데 너무 많이 연결되는거 아님?

= 입출력 버스를 사용하자 → PCI 버스, PCI express(PCIe)

 

+ 요즘에는 DMA가 발전해서 DMA가 cpu급으로 발전

DMA : 입출력장치에 달린 CPU라고 생각