사이클 도용
Cycle stealing이 글은 검증을 위해 인용구가 추가로 필요하다. – · · · · (2009년 12월) (이 템플릿 |
컴퓨팅에서 전통적으로 사이클 절도는 CPU에 간섭하지 않고 컴퓨터 메모리(RAM)나 버스에 접속하는 방법이다.CPU 개입 없이 I/O 컨트롤러가 RAM을 읽거나 쓸 수 있도록 하는 DMA(Direct Memory Access)와 비슷하다.특정 CPU 또는 버스 타이밍에 대한 현명한 공격은 외부 디바이스가 CPU의 현재 활동에 능동적으로 참여하지 않는 메모리에 접근하여 CPU 충돌이 발생하기 전에 작업을 완료하는 경우 CPU를 지체 없이 최대 속도로 실행할 수 있게 할 수 있다.이러한 시스템은 고속 RAM의 비용이 들지 않는 거의 이중 포트 RAM이다.대부분의 시스템은 훔치는 동안 CPU를 정지시켜, 본질적으로 CPU를 다른 이름으로 DMA의 형태로 만든다.
예를 들어, 별도의 명령과 데이터 메모리 뱅크가 있는 시스템은 두 가지 액세스가 동시에 시작될 경우 CPU가 명령 뱅크로부터 명령을 가져오는 동안 외부 장치가 데이터 뱅크에 하나의 메모리 액세스를 허용할 수 있다.메모리 관리 장치는 필수적이지 않다. 예를 들어, Zilog Z80의 M1 라인은 명령과 데이터 액세스를 구별하기 위해 사용될 수 있기 때문에 CPU가 명령-RAM 또는 ROM으로부터 명령을 읽는 동안 데이터 RAM은 CPU 처리에 지장을 주지 않고 다른 장치에서 사용할 수 있다.
근대건축
현대 시스템에서는 프리페치와 동시 요소가 지속적으로 메모리에 접근하여 예측 가능한 유휴 시간을 거의 남겨두지 않는 파이프라이닝과 같은 많은 요소들로 인해 사이클 도난을 달성하기가 어렵다.DMA는 외부 장치가 RAM에 접근할 수 있는 유일한 공식적이고 예측 가능한 방법이다.
이 용어는 다양한 외부 버스와 컨트롤러가 일반적으로 서로 다른 속도로 운행되고 CPU 내부 운영이 더 이상 I/O 버스 운영과 밀접하게 결합되지 않는 현대의 컴퓨터 아키텍처(66-100 MHz 이상)에서 덜 흔하다.
실제 컴퓨터 시스템의 예
하강 중 랑데부 레이더에 의한 예상치 못한 사이클 도용은 아폴로 11호 착륙을 거의 중단시킬 뻔 했으나, 유도 컴퓨터의 설계는 우선순위가 낮은 작업을 떨어뜨려 착륙을 계속하도록 했다.
IBM 1130의 "사이클 스틸"은 메모리 액세스 중에 CPU 시계가 정지되기 때문에 정말로 DMA이다.여러 I/O 컨트롤러가 이러한 방식으로 RAM에 액세스한다.그들은 고정된 우선 순위 계획을 통해 자기획득한다.대부분의 컨트롤러는 시스템의 명령 실행 능력에 미치는 영향을 최소화하기 위해 의도적으로 RAM 액세스 속도를 높이지만, 그래픽 비디오 어댑터와 같은 다른 컨트롤러는 더 빠른 속도로 작동하며 시스템 속도를 늦출 수 있다.
1130의 사이클 스털링 개념은 CPU 프로그램이 I/O 장치에서 작업을 시작한 다음 I/O 장치가 작동을 수행하는 동안 메인라인 프로그램을 계속 진행할 수 있도록 한다.이러한 방식으로 작동하는 각 I/O 장치는 필요할 때 CPU로부터 사이클을 받는다(스틸).
CPU는 데이터 문자가 전송되는 동안 단 한 사이클만 "티업"된다.장치의 도용 주기는 장치의 유형에 따라 달라진다.
CPU는 시스템의 어떤 I/O 장치보다 훨씬 빠르기 때문에 CPU는 I/O 연산이 수행되는 동시에 산술과 같은 다른 기능을 수행할 수 있다.실제로 여러 I/O 작업이 서로, 그리고 다른 CPU 기능과 중복될 수 있다.[1]
사이클 절도는 Sinclair QL과 같은 기계의 주요 성능 저하의 원인이 되어왔다. 경제상의 이유로 비디오 RAM은 이중 액세스가 되지 않았다.결과적으로, M68008 CPU는 ZX8301 "마스터 컨트롤러"가 메모리에 접근할 때 메모리 버스에 대한 접근이 거부되었고, 유사한 속도로 유사한 프로세서를 사용하는 기계와 비교했을 때 기계 성능이 좋지 않았다.