1.프로그램 입출력(programmed I/O)
1)정의: 프로그램 속 명령어로 입출력장치를 제어하는 방법.
2)과정
-첫째. CPU가 하드디스크 컨트롤러의 제어 레지스터에 쓰기 명령을 보냅니다.

-둘째.하드디스크 컨트롤러는 하드 디스크 상태를 확인합니다. 하드 디스크가
준비된 상태라면 하드디스크는 상태 레지스터에 준비완료 상태를 저장합니다.

-셋째. CPU는 상태 레지스터를 지속적으로 읽으며 하드디스크의 준비여부를 확인.
하드디스크가 준비됐음을 CPU가 알게 되면 백업할 메모리의 정보를
데이터 레지스터에 씁니다. 작업이 완료될 때까지 지금까지의 과정을 반복합니다.

-CPU는 상대적으로 먼 장치 컨트롤 간의 명령어를 다 알고 있지 않다.
그래서 명령어를 저장하는 방식 중 메모리 맵 입출력 및 고립형 입출력 방법이 있다.
2.메모리 맵 입출력
1)정의: CPU가 장치컨트롤러의 사이의 명령어를 저장하는 방법 중 하나.
-메모리에 접근하기 위한 주소공간과 입출력 장치에 접근하기 위한 주소공간을
하나의 간주하는 방법.
-메모리공간의 축소되는 단점이 있다.

3.고정 입출력 장치(isolated I/O)
1)정의:메모리를 위한 주소공간과 입출력장치를 위한 주소공간을 분리하는 방법.
메모리 축소가 되지 않는다.
-메모리에 접근하는 읽고 쓰는 통로와 입출력출력 장치의 읽고 쓰는 통로를 따로하고
입출력 전용 명령어를 사용한다.


4.인터럽트 기반 입출력(interrupt-Driven I/O)
1)정의
-CPU가 장치 컨트롤러를 통해 명령어를 전달하고 입출력장치가 작업을 완료했다는
메시지(인터럽트)를 보내면 다시 CPU가 작업(인터럽트 서비스 루틴)을 수행하는 방식.
메시지를 받기 전까지 CPU가 다른 일을 수행할 수 있다.


-
-입출력 장치는 여러 개를 사용하게 된다. 그만큼 인터럽트가 발생하는 수도 늘어난다.
-여러 개의 인터럽트를 순차적으로 처리할 수 있지만 먼저 처리해야할 인터럽트도 존재하므로
좋은 방법은 아니다.
-CPU는 인터럽트간의 우선순위를 정하여 수행한다.


2)NMI(Non-Maskable-Interrupt)
-인터럽트 비트가 비활성화 되있어도 무시할 수 없는 인터럽트(우선순위가 제일 높은 인터럽트)
3)프로그래머블 인터럽트 컨트롤러 : PIC(Programmuable Interrupt Controller)
-장치컨트롤러에서 보낸 인터럽트 요청들의 우선순위를 판별하고 알려주는 장치.

-PIC의 작동과정


5.DMA 입출력
1)정의 및 개요
-프로그램 입출력과 인터럽트 입출력 방식은 데이터 이동 및 데이터 명령처리를 모두 CPU를 거친다.
-모든 작업이 CPU를 거치기 때문에 CPU의 부담이 크다.
-DMA(Direct Meomory Access)는 CPU를 거치지 않고 입출력장치와 메모리가
상호작용하는 입출력 방식이다.
-DMA컨트롤러: DMA 입출력방식에 필요한 하드웨어

2)DMA입출력 과정


3)입출력 버스(input/output bus)
-시스템버스는 공용자원으로 DMA컨트롤러가 작업을 수행함에 있어 CPU를 방해를 해선 안된다.
-그래서 DMA버스와 장치컨트롤러들을 입출력 버스라는 별도의 버스를 연결할 수 있다.
-입출력 버스에는 PCI(Peripheral Component Interconnect)버스와 PCI Express(PCle)버스 등
여러종류가 있다. 그리고 PCIe 입출력버스와 여러 입출력 버스를 연결하는 PCIe슬롯이 있다.



'컴퓨터 공학 > 혼자 공부하는 컴퓨터 구조 +운영체제' 카테고리의 다른 글
| 20.운영체제의 큰 그림 (0) | 2023.07.17 |
|---|---|
| 19.운영체제를 알아야 하는 이유 (0) | 2023.07.15 |
| 17.장치 컨트롤러와 장치 드라이버 (0) | 2023.07.11 |
| 16.RAID의 정의와 종류 (0) | 2023.07.09 |
| 15.다양한 보조기억장치 (0) | 2023.07.08 |