forum speccy.pl

ZX Spectrum => HARDWARE => Wątek zaczęty przez: Frodo w 2015.12.23, 01:55:31

Tytuł: Cycles a States
Wiadomość wysłana przez: Frodo w 2015.12.23, 01:55:31
Podawane są dwa rodzaje ticków, State to 3.5 Mhz a Cycle to 1 MHz, co oznacza to drugie?
Tytuł: Odp: Cycles a States
Wiadomość wysłana przez: matofesi w 2015.12.23, 09:44:08
Nie wiem gdzie znalazłeś ten 1MHz...

Zegar liczy się w t-state'ach i jeden t-state to jeden pełen cykl zegara (np 3.5MHz) oraz w "machine cycle'ach", które zależnie od instrukcji mają od 4 do 6 cykli. Każda instrukcja składa się z przynajmniej jednego cyklu (M1 - op-code fetch - pobieranie rozkazu z pamięci) a instrukcje z dodatkowymi parametrami i operujące na pamięci mają dodatkowo cykle M2 - odczyt pamięci i/lub M2 - zapis do pamięci. Do tego oczywiście dochodzi stan magistrali - urządzenia zewnętrzne mogą wystawiać sygnały IOREQ/BUSREQ, które wstrzymują procesor w odpowiednim cyklu. No i oczywiście w wypadku Spectrum jest jeszcze to, że zegar generuje ULA, i tam też może nastąpić wstrzymanie pracy.

Gdyby przeliczyć cykle na t-state'y i jakoś to uśrednić pewnie można uznać, że poszczególne cykle zmieniają się średnio z częstotliwością 1MHz, ale nijak się to będzie miało do rzeczywistości ;)