Rodzaje cykli - zegarowy i maszynowy
Sygnał zegarowy powoduje, że procesor realizuje jakiekolwiek instrukcje. Często jednak zdarza się, że sygnał zegarowy doprowadzany z zewnątrz ma inną częstotliwość niż wewnętrzny, sterujący pobieraniem i realizacją przez CPU procesora poleceń. W związku z tym wprowadzono dwa pojęcia: cykl zegarowy i cykl maszynowy.
Ten pierwszy jest po prostu odwrotnością częstotliwości generatora zegarowego. Ten drugi uzyskuje się w wyniku uwzględnienia ewentualnych wewnętrznych podziałów sygnału zegarowego. Bardzo dobrym przykładem jest popularny mikrokontroler 8051, który w podstawowym wykonaniu ma cykl maszynowy 12-tokrotnie dłuższy, niż cykl zegarowy. Również, chociaż nastawa domyślna jest inna, procesor AVR może mieć cykl maszynowy różny od zegarowego.
Pojęcia cyklu maszynowego nie należy utożsamiać z czasem realizacji instrukcji. W pewnych przypadkach może tak być, jednak większości popularnych mikrokontrolerów, realizacja pojedynczej instrukcji zajmuje od dwóch do kilku cykli maszynowych i od 8 do kilkudziesięciu cykli zegarowych. Mikrokontroler AVR, został zastosowany w sterowniku SU 1.2 oraz sterowniku SU 1.5, większość instrukcji wykonuje w czasie pojedynczego cyklu zegarowego.
Jego nowoczesna konstrukcja jest jednym z przykładów, gdy cykl zegarowy jest równy cyklowi maszynowemu. Jak łatwo wywnioskować, im szybszy jest zegar procesora, tym więcej instrukcji jest on w stanie wykonać w jednostce czasu. Jest to twierdzenie prawdziwe, jeśli porównuje się procesory o identycznych lub bardzo zbliżonych architekturach. Dla różnych architektur wynik porównania może być diametralnie różny.
Cykl zegarowy to okres wytwarzanego na bazie rezonatora kwarcowego, elementów RC itp. sygnału zegarowego. Można go obliczyć jako odwrotność częstotliwości generatora zegarowego. cykl zegarowy = 1/FGEN |
Cykl maszynowy to okres wewnętrznego sygnału zegarowego. Oblicza się go po uwzględnieniu wewnętrznych podziałów częstotliwości sygnału zegarowego. W mikrokontrolerze AVR cykl maszynowy = cyklowi zegarowemu. cykl maszynowy = wewnętrzny podział x 1/FGEN |
Dla uproszczenia porównań różnych procesorów wprowadzono pojęcie mocy obliczeniowej, dla której zwykło się używać jednostki zwanej MIPS. 1 MIPS to nic innego, jak 1 milion operacji na sekundę. W związku z tym, że w mikrokontrolerze AVR cykl maszynowy jest równy cyklowi zegarowemu, AVR taktowany sygnałem o częstotliwości 8 MHz ma moc obliczeniową w przybliżeniu równą 8 MIPS. Standardowy 8051 ma przy takich samych parametrach sygnału zegarowego, ma moc obliczeniową około 0,667 MIPS. |