-
정의
DMA가 메모리 데이터 전송을 위해 CPU의 한 메모리 사이클 동안 버스 사용권을 우선하여 갖게 하는 것
-
-
사용 목적
DMA가 메모리에 접근하려면 버스를 사용해야 하는데, CPU가 우선하여 사용하게 됨으로써, DMA는 사용할 수 없는 상태가 지속되는 자원 부족(Starvation) 현상의 문제를 해결하기 위함
-
-
사이클 스틸링을 이용한 DMA의 문제점
-
사이클 스틸링의 구현 방법
-
사이클 스틸링과 인터럽트의 차이
- 사이클 스틸링은 한 사이클 동안만 사용하고, 프로그램의 상태는 보존할 필요가 없음
- 인터럽트는 중단된 프로그램의 상태를 보존하고, 인터럽트 처리가 종료된 후 보존된 프로그램의 상태를 복구해야 함
폴링(Polling) |
인터럽트(Interrupt) |
사이클 스틸링(Cycle Stealing) |
- CPU가 수시로 각각의 주변 장치들의 인터럽트 요구를 확인
- 주면 장치의 상태 보존을 저장하지 않음
- CPU 시간 낭비, 처리 효율 감소
- 프로그램 제어 하의 직접 입.출력 방식
|
- CPU가 주변 장치로부터 들어오는 보고만 접수
- 주변 장치의 상태 보존이 필요
- CPU처리의 효율 증대
- 인터럽트 서비스 루틴에 의한 처리
|
- DMA 모듈이 버스 사용권을 위해 CPU 동작을 일시 중단
- 상태 정보를 저장하지 않음
- 버스 사이클 동안 잠시 CPU를 제어
|
▶ 사이클 스틸링과 유사 개념 비교
- 인터럽트 : 컴퓨터에 장착된 장치나 컴퓨터 내의 프로그램으로부터 오는 신호로, 운영체계가 하던 일을 멈추고 다음에 무엇을 할 것인지를 결정하게 하는 기술