1two13 / CS

혼자 공부하는 컴퓨터 구조 + 운영체제
2 stars 0 forks source link

[입출력장치] 다양한 입출력 방법 #19

Open 1two13 opened 1 year ago

1two13 commented 1 year ago

CPU와 장치 컨트롤러가 정보를 주고 받는 방법 3️⃣

1. 프로그램 입출력

2. 인터럽트 기반 입출력

3. DMA 입출력

1two13 commented 1 year ago

1. 프로그램 입출력

CPU는 여러 장치 컨트롤러 속 레지스터들을 모두 알고 있기는 어렵다.

1two13 commented 1 year ago

2. 인터럽트 기반 입출력

여러 입출력장치에서 인터럽트가 동시에 발생한 경우에는 인터럽트를 어떻게 처리해야 할까? 2️⃣

1. 인터럽트가 발생한 순서대로 인터럽트 처리하는 방법

우선순위를 반영하여 다중 인터럽트를 처리하는 방법

1two13 commented 1 year ago

PIC의 다중 인터럽트 처리 과정

1two13 commented 1 year ago

+ 폴링(인터럽트와 자주 비교되는 개념)

1two13 commented 1 year ago

3. DMA(Direct Memory Access) 입출력

DMA 입출력 과정

  1. CPU는 DMA 컨트롤러에 입출력장치의 주소, 수행할 연산(읽기/쓰기), 읽거나 쓸 메모리의 주소 등과 같은 정보로 입출력 작업을 명령한다.
  2. DMA 컨트롤러는 CPU 대신 장치 컨트롤러와 상호작용하며 입출력 작업을 수행한다. 이때 DMA 컨트롤러는 필요한 경우 메모리에 직접 접근하여 정보를 읽거나 쓴다.
  3. 입출력 작업이 끝나면 DMA 컨트롤러는 CPU에 인터럽트를 걸어 작업이 끝났음을 알린다.
1two13 commented 1 year ago

입출력 버스(별도의 버스)