세 가지 입출력 방식

1) 프로그램 입출력
: 프로그램 속 명령어로 입출력장치를 제어하는 방법 = 입출력 명령어로써 장치 컨트롤러와 상호작용함.
메모리에 저장된 정보를 하드 디스크에 백업 = 하드디스크에 새로운 정보 쓰기
즉, CPU가 장치 컨트롤러의 레지스터 값을 읽고 씀으로써 이루어진다.



Q) CPU가 많은 장치 컨트롤러들 중 원하는 장치 컨트롤러를 하나 찾고 또 그 안에 레지스터들 중에서 주소 정보를 가진 레지스터를 어떻게 알 수 있는걸까?

인식하는 방법(프로그램 입출력 방식): 메모리 맵 입출력 / 고립형 입출력
- 메모리 맵 입출력


- 고립형 입출력




2) 인터럽트 기반 입출력
- 인터럽트: 이벤트가 발생할 때만 CPU가 작업을 처리하도록 하는 방식 (효율적, 실시간 응답성)
- 폴링: CPU가 주기적으로 장치나 조건을 확인하여 이벤트 발생 여부를 판단하는 방식 (단순, 비효율적일 수 있음)









3) DMA 입출력
Q) 프로그램 입출력, 인터럽트 기반 입출력의 공통점?
입출력장치와 메모리 간의 데이터 이동은 CPU가 주도하고, 이동하는 데이터도 반드시 CPU를 거친다.
즉, CPU는 넘 바쁨...








Q) 장치 컨트롤러가 시스템 버스에 직접 연결되어도 괜찮을까?



'CONCEPT > Computer Architecture' 카테고리의 다른 글
[컴퓨터구조] 장치 컨트롤러 / 장치 드라이버 (0) | 2025.02.20 |
---|---|
[컴퓨터구조] RAID의 정의와 종류 (0) | 2025.02.19 |
[컴퓨터구조] 다양한 보조기억장치(하드 디스크, 플래시 메모리) (0) | 2025.02.19 |
[컴퓨터구조] 캐시 메모리 (0) | 2025.02.19 |
[컴퓨터구조] 메모리의 주소 공간 (0) | 2025.02.19 |
댓글