28.CPU가 어떤 명령과 다음 명령을 수행하는 사이를 이용하여 하나의 데이터 워드를 직접 전송하는 DMA 방식을 무엇이라고 하는가?
해설
1. Cycle Stealing의 개념 가. Cycle Stealing 의 정의 - CPU와 DMA가 동시에 버스를 사용하고자 할 때, 속도가 빠른 CPU가 속도 느린 DMA에게 Bus 사용권을 먼저 주는 것 - DMA가 메모리 데이터 전송을 위하여 프로세서의 한 메모리 사이클을 중지시키고 실행하는 것 나. Cycle stealing 의 사용목적 - DMA가 메모리에 접근하려면 Bus를 사용하여 하는데, CPU가 먼저 사용하면 DMA는 계속 사용할 수 없는 Starvation(자원부족) 현상이 일어날 수 있는 문제 해결다. Cycle Stealing 을 이용한 DMA의 문제점 - 데이터를 전송 때마다 시스템 버스를 두 번 이용하므로 성능 저하 - Read/Write 경우, Data block이 512byte보다 클 경우 데이터를 버퍼링하는 내부 기억장치 필요 - 해결책으로 I/O Processor(Channel) 를 사용하여 주요 프로세서와 독립적으로 입출력만을 제어함. 2. Cycle Stealing의 구현 방법 및 인터럽트와의 비교 가. Cycle Stealing 의 구현 방법 - DMA 제어기가 메모리 사이클 요청 : DMA제어기가 Memory Cycle Request 신호를 요청 - 메모리 제어기(CPU)가 메모리 사이클 허용 : CPU는 요청을 받으면 메모리의 다음 사이클을 제공(CPU는 한 사이클 동안 휴지 상태) 나. Cycle Stealing 과 인터럽트의 차이 - Cycle Stealing : 한 사이클 동안만 정지. 프로그램의 상태를 보존할 필요가 없음. - Interrupt : 중단된 프로그램의 상태 보존. 인터럽트 처리 종료후 보존된 프로그램의 상태를 복구.