Czy taktowanie zegara procesora jest ściśle okresowe?

51

Czy częstotliwość procesora to średnia wartość o liczbie taktów zegara na sekundę, czy ma on silniejszą fizyczną stabilność?

Moim zdaniem nie musi być stabilny ani niestabilny. Czy są dostępne informacje na temat wariancji procesora?

Czy czas trwania cyklu procesora jest ściśle zsynchronizowany z drganiami kryształu? Czy też procesor musi po prostu upewnić się, że wykona cykl przed następnym tyknięciem?

Gael
źródło
7
Istnieje wiele różnych rodzajów procesorów. Większość z nich używa kryształu, który wibruje z określoną częstotliwością, by sami mierzyć czas. Oznacza to, że większość z nich jest tak samo dokładna jak cyfrowy zegarek na rękę (który używa tego samego rodzaju kryształu, aby zachować czas). en.wikipedia.org/wiki/Crystal_oscillator
krowe
5
@Gael, niektóre instrukcje wymagają wykonania setek tyknięć lub cykli zegara .
misha256
1
@Gael: Poza tym procesory często spowalniają się lub przyspieszają i robią to dość często. Chociaż nie wiem dokładnie, jak to się ma do kleszczy.
Kaczka Mooing
18
Głosujesz, aby to zakończyć jako szukanie rekomendacji dotyczących produktów, usług lub materiałów szkoleniowych ? Naprawdę ludzie?
CVn
30
To uzasadnione pytanie mające na celu wyjaśnienie, jak działa sprzęt.
studiohack

Odpowiedzi:

49

Jak każda skomplikowana rzecz, możesz opisać sposób działania procesora na różnych poziomach.

Na najbardziej podstawowym poziomie procesor napędzany jest przez dokładny zegar. Częstotliwość zegara może się zmieniać; pomyśl SpeedStep Intela. Ale przez cały czas procesor jest całkowicie w 100% zablokowany na sygnał zegara.

Instrukcje procesora działają na znacznie wyższym poziomie. Pojedyncza instrukcja jest złożoną rzeczą i może trwać od mniej niż jednego cyklu do tysięcy cykli do zakończenia , jak wyjaśniono tutaj na Wikipedii .

Zasadniczo więc instrukcja zużyje pewną liczbę cykli zegara . W nowoczesnych procesorach, ze względu na technologie takie jak wiele rdzeni, HyperThreading, potokowanie, buforowanie, poza kolejnością i wykonywanie spekulacyjne, dokładna liczba cykli zegara dla pojedynczej instrukcji nie jest gwarantowana i będzie się zmieniać za każdym razem, gdy wydasz taką instrukcję !

EDYTOWAĆ

czy są dostępne informacje na temat wariancji dla konkretnego procesora?

Tak i nie. 99,99% użytkowników końcowych jest zainteresowanych ogólną wydajnością , którą można określić ilościowo, przeprowadzając różne testy porównawcze.

To, o co prosisz, to wysoce techniczne informacje. Intel nie publikuje pełnych lub dokładnych informacji na temat opóźnienia / przepustowości instrukcji procesora .

Są naukowcy, którzy podjęli się tego, aby spróbować to zrozumieć. Oto dwa pliki PDF, które mogą być interesujące:

Niestety trudno jest uzyskać dane dotyczące wariancji . Cytowanie z pierwszego pliku PDF:

podane liczby są wartościami minimalnymi. Chybienia w pamięci podręcznej, niewspółosiowość i wyjątki mogą znacznie zwiększyć liczbę zegarów.

Mimo to ciekawa lektura!

misha256
źródło
1
Komentarze nie są przeznaczone do rozszerzonej dyskusji; ta rozmowa została przeniesiona do czatu .
Sathyajith Bhat
4
Bardzo dobrze. Oczywiście But at all times the CPU is absolutely 100% locked to the clock signaldotyczy tylko synchronicznych procesorów. Głupio jest mówić o tyknięciach w asynchronicznym (bez zegara) procesorze, ale czułem się jak pominięcie :)
Luaan
1
@Luaan - Prawda. Myślę, że prawdziwe asynchroniczne procesory są wciąż dość rzadkie, ale istnieją (lub miały w przeszłości). Jednak tylko bardzo istotne dla badaczy i maniaków sprzętu.
Daniel R Hicks,
@DanielRHicks Byli zainteresowani urządzeniami wbudowanymi (wokół jest kilka starych asynchronicznych procesorów MIPS i ARM), ale tak, nie jest to naprawdę wielka sprawa na rynku konsumenckim. W końcu, po co dbać o zużycie energii procesora przez smartfona, gdy tuż obok niego jest energochłonny wyświetlacz. Oszczędności energii (i inne funkcje) mogą być jednak bardzo fajne w niektórych innych aplikacjach - IBM SyNAPSE wygląda jak fajny projekt do celów naukowych.
Luaan,
@Luaan - Interesującym punktem, kiedy powstawały pierwsze wynalazki, było to, że komputer działał dokładnie tak szybko / wolno, jak było to konieczne do wykonania obliczeń. Ale bardziej skomplikowane schematy taktowania w zasadzie osiągnęły to samo.
Daniel R Hicks,
29

Czy tyknięcia zegara procesora mają charakter ściśle okresowy?

Oczywiście nie. Nawet bardzo najlepsze zegary nie są ściśle okresowe. Prawa termodynamiki mówią inaczej:

  • Prawo Zerotha: Istnieje wstrętna, niewielka gra, w którą wszechświat na ciebie gra.
  • Pierwsze prawo: nie możesz wygrać.
  • Drugie prawo: Ale może się zdarzyć, nawet w bardzo zimny dzień.
  • Trzecie prawo: nigdy nie robi się tak zimno.

Twórcy bardzo najlepszych zegarów starają się bardzo, bardzo ciężko pokonać prawa termodynamiki. Nie mogą wygrać, ale są bardzo, bardzo blisko progu rentowności. Zegar na twoim procesorze? To śmieci w porównaniu do tych najlepszych zegarów atomowych. Właśnie dlatego istnieje Network Time Protocol .


Przewidywanie: Po raz kolejny zobaczymy trochę chaosu, gdy najlepsze zegary atomowe na świecie będą działać od 2015 30 czerwca 23:59:59 UTC do 2015 30 czerwca 23:59:60 UTC do 2015 1 lipca 2015 00:00:00 UTC. Zbyt wiele systemów nie rozpoznaje sekund przestępnych i ich poziom bezpieczeństwa jest ustawiony na dwa (co zapobiega zmianie czasu o więcej niż jedną sekundę). Jitter zegara w tych systemach oznacza, że ​​drugi krok przestępstwa w protokole sieciowym zostanie odrzucony. Liczba komputerów upadnie, podobnie jak w 2012 roku.

David Hammen
źródło
9
+1, zabawny i pouczający. A Leap Drugi wątek to dobry odczyt, too.
jimm-cl
9
No cóż, IIRC, bo-brzuch-up spowodował, ponieważ procedury zegara jądra były świadome możliwości sekund przestępnych, ale zaimplementowały dostosowanie jako wywołanie procedury regulacji zegara, której nie można było wywołać, gdy zegar był już ustawiony jest dostosowywany ... I oczywiście zegar systemowy nie ma nic wspólnego z zegarem procesora.
Hagen von Eitzen,
1
Lol, super. Muszę dodać coś do twojego spostrzeżenia „Zegar procesora to śmieć w porównaniu do zegarów atomowych” : Rzeczywiście! Ale wszystko to jest bardzo subiektywne, nie wspominając o krewnych. Możemy dziwić się niezwykłej dokładności naszych najlepszych zegarów atomowych, ale gdzieś tam (poza naszą przytulną rzeczywistością) może istnieć technologia, która sprawia, że ​​nasze zegary atomowe wyglądają jak „śmieci” :-p
misha256
2
@ misha256 rzeczywistość jest taka, że ​​nie może być dokładnego zegara. Czas jest względny.
Keltari
Zegar procesora może być śmieciem, ale nie ma nic lepszego niż przepełnienie rejestru 8-bitowego, aby dać czas 7-segmentowemu sterownikowi wyświetlania w nieznanym stanie na zebranie instrukcji przed wydaniem następnego. Nie potrzebujemy do tego żadnych kryształów. A co ważniejsze, nie ma nic lepszego niż czekanie nanosekundy na zakończenie obliczeń przez ALU, zanim schowasz wyniki do rejestru (lub na autobus prowadzący do innej ALU).
John Dvorak,
22

Około 2000 r., Kiedy prędkości taktowania procesorów zaczęły docierać do zakresu, w którym działały również telefony komórkowe, powszechne stało się dodawanie zmian do rzeczywistej częstotliwości taktowania. Powód jest prosty: jeśli zegar procesora ma dokładnie 900 MHz, wszystkie zakłócenia elektroniczne są generowane na tej częstotliwości. Zmieniaj częstotliwość taktowania nieco między 895 a 905 MHz, a zakłócenia są również rozłożone w tym zakresie.

Było to możliwe, ponieważ nowoczesne procesory mają ograniczoną temperaturę. Nie mają problemu z bieganiem nieco szybciej przez krótki czas, ponieważ mogą ostygnąć, gdy zegar zwolni później.

MSalters
źródło
13
W BIOS-ie często widzisz tę opcję opisaną jako „Spectrum Spectrum”
Mark Sowul,
1
Czytałem, że w procesorach wielordzeniowych rdzenie również używają zegarów przesuniętych, ponieważ pomaga to uniknąć szumów radiowych, pomaga w dystrybucji energii i unika harmonicznych budynku.
Zan Lynx,
3
@ MarkSowul dzięki, w końcu ktoś mówi o praktycznym wykorzystaniu tego „rozproszonego spektrum”.
22

Projektant logiki cyfrowej tutaj. Rzeczywistym czasem potrzebnym na zmianę sieci logicznej w odpowiedzi na sygnał wejściowy jest opóźnienie propagacji . Pomyśl o systemie jako:

registers A,B,C... ---> logic cloud ---> registers A',B',C'

„Zegar uruchamiania” to krawędź zegara, w której zmienia się pierwszy zestaw rejestrów. „Zegar przechwytywania” jest następnym zboczem zegara jeden okres później. Aby system działał, wyjście chmury logicznej musi być stabilne przed nadejściem zegara przechwytywania.

Proces sprawdzania, czy to działa, jest analizą czasową. Korzystając z opartej na fizyce symulacji systemu, oblicz najgorszy możliwy czas dostarczenia danych wejściowych do dowolnego wyjścia. Największa z tych liczb w całym systemie określa minimalny okres zegara.

Uwaga najgorszy przypadek . Rzeczywisty czas propagacji będzie krótszy, ale zależy to od zmienności procesu produkcyjnego, aktualnej temperatury i napięcia chipa ( PVT ). W praktyce oznacza to, że możesz zastosować szybszy zegar (podkręcanie) i może działać. Może także zacząć generować błędy, takie jak decyzja, że 0x1fffffff + 1 = 0x1f000000jeśli bit przeniesienia nie dotrze na czas.

Chipy mogą mieć również więcej niż jeden zegar na pokładzie (zwykle FSB jest wolniejszy niż rdzeń), a rzeczywisty zegar może być zwiększany lub zmniejszany w celu kontroli termicznej lub zmieniany (odpowiedź MSaltera na temat wykorzystania widma rozproszonego do zaliczenia testów EMC).

pjc50
źródło
W niektórych przypadkach zegar przechwytywania może być drugim lub późniejszym cyklem, a nie następnym. Niektóre projekty zakładają, że dane zawsze zajmą co najmniej pewien minimalny czas (np. Jeśli wiadomo, że opóźnienie propagacji wynosi od 2,1 do 2,9 cykli, dane mogą być wysyłane, a wyniki próbkowane w każdym cyklu; każdy próbkowany wynik odzwierciedla dane z 3 cykle wcześniej); inne bardziej konserwatywne projekty zmieniają dane wyjściowe wolniej i ignorują wynik, dopóki nie będzie stabilny.
supercat
2

Czy czas trwania instrukcji procesora jest ściśle zsynchronizowany z drganiami kryształu? Czy też procesor musi po prostu upewnić się, że wykona instrukcję przed następnym tyknięciem?

Ani. Czas trwania instrukcji będzie wynosił pewną liczbę tyknięć zegara, ale liczba ta może się różnić w zależności od wymagań instrukcji. Na przykład, jeśli instrukcja nie może wykonać postępu do przodu, dopóki określona pamięć nie znajdzie się w pamięci podręcznej L1, wówczas instrukcja nie zostanie ukończona przed następnym tyknięciem zegara. Dopóki tak się nie stanie, nie nastąpi żaden postęp w tej instrukcji.

Ale kiedy procesor zdecyduje się coś zrobić, podstawową metodą jest skonfigurowanie wewnętrznych przełączników, tak aby określona część informacji trafiała do określonej części procesora. Oczekuje na wejście do tej części i wyjście do następnej części. Ta część oczekiwania jest celem zegara.

Wyobraź sobie fizyczny obwód, który pobiera dwa wejścia binarne i sumuje je, generując sumę na jakimś trzecim zestawie przewodów. Aby dokonać dodania, procesor musi ustawić dwie liczby, które mają zostać dodane, aby dostać się do tego sumatora, a wyjścia przejść do, powiedzmy, zatrzasku rejestru procesora. CPU nie może powiedzieć zatrzaskowi, aby przechowywał dane wyjściowe, dopóki dane wejściowe nie osiągną sumatora, sumator wygeneruje dane wyjściowe, a dane wyjściowe osiągną zatrzask. Jest to cel zegara - ustawianie czasu oczekiwania między ustawieniem wejścia, aby gdzieś pójść, a oczekiwaniem, że wyjście będzie gotowe do użycia.

David Schwartz
źródło