본문 바로가기

기술 용어 검색

Cycle Stealing

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 : 중단된 프로그램의 상태 보존.
                 인터럽트 처리 종료후 보존된 프로그램의 상태를 복구.

'기술 용어 검색' 카테고리의 다른 글

MTTF(Mean Time To Failure)  (0) 2008.06.23
메모리 인터리빙 (Memory Interleaving)  (0) 2008.06.23
Priority Inversion  (1) 2008.06.23