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 |