Kradzież cyklu - Cycle stealing

W komputerach tradycyjnie kradzież cyklu jest metodą uzyskiwania dostępu do pamięci komputera (RAM) lub magistrali bez ingerencji w procesor. Jest podobny do bezpośredniego dostępu do pamięci (DMA), umożliwiając kontrolerom we / wy odczyt lub zapis pamięci RAM bez interwencji procesora. Sprytne wykorzystanie określonych taktowań procesora lub magistrali może pozwolić procesorowi na działanie z pełną prędkością bez żadnych opóźnień, jeśli urządzenia zewnętrzne uzyskują dostęp do pamięci, która nie bierze aktywnego udziału w bieżącej aktywności procesora i kończą operacje przed ewentualnym konfliktem procesora. Takie systemy to prawie dwuportowa pamięć RAM bez kosztów szybkiej pamięci RAM. Większość systemów zatrzymuje procesor podczas kradzieży , zasadniczo czyniąc go formą DMA pod inną nazwą.

Na przykład, system z oddzielnymi bankami instrukcji i pamięci danych może umożliwić zewnętrznym urządzeniom dostęp do jednej pamięci do banku danych, podczas gdy CPU pobierał instrukcje z banku instrukcji, jeżeli oba te dostępu są inicjowane jednocześnie. Jednostka zarządzania pamięcią nie jest niezbędna, na przykład, Zilog Z80 „s M1 linia może być używana do odróżnienia dyspozycję z dostępem do danych, więc podczas gdy CPU jest czytanie instrukcji z instrukcją-RAM lub ROM, dane RAM jest dostępna dla innych urządzenia bez ingerencji w przetwarzanie procesora.

Architektura nowoczesna

Kradzież cykli jest trudna do osiągnięcia w nowoczesnych systemach ze względu na wiele czynników, takich jak potokowanie , gdzie wstępne pobieranie i elementy współbieżne stale uzyskują dostęp do pamięci, pozostawiając kilka przewidywalnych czasów bezczynności, aby wkraść się w dostęp do pamięci. DMA to jedyna formalna i przewidywalna metoda uzyskiwania dostępu do pamięci RAM przez urządzenia zewnętrzne.

Termin ten jest mniej powszechny w nowoczesnej architekturze komputerowej (powyżej 66-100 MHz), w której różne zewnętrzne magistrale i kontrolery generalnie działają z różnymi szybkościami, a wewnętrzne operacje procesora nie są już ściśle powiązane z operacjami magistrali we / wy.

Przykłady w rzeczywistych systemach komputerowych

Niespodziewana kradzież cykli przez radar rendezvous podczas zniżania prawie spowodowała przerwanie lądowania Apollo 11 , ale konstrukcja komputera naprowadzającego pozwoliła na kontynuowanie lądowania poprzez zrzucenie zadań o niskim priorytecie.

Kradzież cyklu” IBM 1130 to tak naprawdę DMA, ponieważ zegar procesora jest zatrzymywany podczas dostępu do pamięci. W ten sposób kilka kontrolerów we / wy uzyskuje dostęp do pamięci RAM. Dokonują arbitrażu w oparciu o ustalony schemat priorytetów. Większość kontrolerów celowo przyspiesza dostęp do pamięci RAM, aby zminimalizować wpływ na zdolność systemu do uruchamiania instrukcji, ale inne, takie jak graficzne karty wideo, działają z większą prędkością i mogą spowalniać system.

Koncepcja kradzieży cyklu 1130 umożliwia programowi CPU rozpoczęcie operacji na urządzeniu we / wy, a następnie kontynuowanie programu głównego, podczas gdy urządzenie we / wy wykonuje swoje działanie. Każde urządzenie we / wy, które działa w ten sposób, pobiera (kradnie) jeden cykl z procesora, gdy jest potrzebne.

Procesor jest „związany” tylko przez jeden cykl podczas przesyłania znaku danych. Częstotliwość, z jaką urządzenia kradną cykle, zależy od typu urządzenia.

Ponieważ procesor CPU jest znacznie szybszy niż jakiekolwiek urządzenie we / wy w systemie, procesor może wykonywać inną funkcję, taką jak arytmetyka, w tym samym czasie, gdy wykonywana jest operacja we / wy. W rzeczywistości kilka operacji we / wy może nakładać się na siebie i na inne funkcje procesora.

Kradzież cykli była przyczyną poważnego spadku wydajności na maszynach takich jak Sinclair QL , gdzie ze względów ekonomicznych pamięć RAM wideo nie była podwójna . W konsekwencji procesor M68008 nie uzyskał dostępu do magistrali pamięci, gdy „kontroler główny” ZX8301 uzyskiwał dostęp do pamięci, a maszyna działała słabo w porównaniu z maszynami używającymi podobnych procesorów przy podobnych szybkościach.

Bibliografia