Чи чіпкі годинники процесора строго періодичні?


51

Чи частота центрального процесора є середнім значенням приблизно того, скільки годинних тиків за секунду чи має більш сильну фізичну стабільність?

На мою думку, він не повинен бути стабільним і нестабільним. Так чи є інформація про дисперсію для процесора?

Чи тривалість циклу процесора суворо синхронізована з вібрацією кристала? Або CPU просто повинен бути впевнений, щоб досягти циклу перед наступною галочкою?


7
Є багато різних типів процесора. Більшість використовують кристал, який вібрує на певній для себе частоті. Це означає, що більшість є настільки ж точними, як цифровий наручний годинник (який використовує той же тип кристала, щоб зберігати час). en.wikipedia.org/wiki/Crystal_oscillator
krowe

5
@Gael Деякі інструкції потребують сотні кліщів або годинних циклів .
misha256

1
@Gael: Крім того, процесори досить часто сповільнюють себе або прискорюють роботу, і вони роблять це досить часто. Хоча я точно не знаю, як це стосується кліщів.
Mooing Duck

18
Голосування за те, щоб закрити це як пошук рекомендацій щодо товарів, послуг чи навчальних матеріалів ? Дійсно, люди?
CVn

30
Це законне питання, яке прагне уточнити, як працює апаратне забезпечення.
studiohack

Відповіді:


49

Як і будь-яка складна річ, ви можете описати спосіб роботи процесора на різних рівнях.

На самому фундаментальному рівні процесор керується точними годинниками. Частота годинника може змінюватися; подумайте, що швидкість Step Intel. Але в будь-який час процесор абсолютно на 100% заблокований на тактовий сигнал.

Інструкції з процесора працюють на набагато вищому рівні. Одна команда є складною річчю і може зайняти від менш ніж за один цикл до тисяч циклів , щоб закінчити , як описано тут , у Вікіпедії .

Тому в основному інструкція буде споживати деяку кількість циклів годин . У сучасних центральних процесорах, завдяки таким технологіям, як декілька ядер, HyperThreading, конвеєрне кешування, кешування, нестандартне та спекулятивне виконання, точна кількість тактових циклів для однієї інструкції не гарантується, і вона буде змінюватися щоразу, коли ви видаєте таку інструкцію !

EDIT

чи є інформація про дисперсію для конкретного процесора?

Так і ні. 99,99% кінцевих користувачів зацікавлені в загальній продуктивності , яку можна кількісно оцінити, використовуючи різні орієнтири.

Те, що ви просите, - це високо технічна інформація. Intel не публікує повної або точної інформації про затримку / пропускну здатність інструкцій процесора .

Є дослідники, які взяли це на себе, щоб спробувати зрозуміти це. Ось два PDF-файли, які можуть зацікавити:

На жаль, важко отримати дані про дисперсію . Цитування з першого PDF:

Перелічені числа - мінімальні значення. Пропуски кеш-пам'яті, вирівнювання та винятки можуть значно збільшити кількість годин.

Цікаве читання все-таки!


1
Коментарі не для розширеного обговорення; ця розмова переміщена до чату .
Сатьядхіт Бхат

4
Дуже хороша. Звичайно, But at all times the CPU is absolutely 100% locked to the clock signalстосується лише синхронних процесорів. Дурно говорити про тиків в асинхронному (без годинника) процесорі, але мені здалося, що це упущення :)
Luaan

1
@Luaan - Правда. Я думаю, що справжні асинхронні процесори все ще досить рідкісні, але вони існують (або були в минулому). Однак справді актуально лише для дослідників та апаратних вундов.
Даніель Р Хікс

@DanielRHicks Вони мали певний інтерес для вбудованих пристроїв (є декілька старих асинхронних процесорів MIPS та ARM навколо), але так, не дуже велика річ на споживчому ринку. Зрештою, навіщо дбати про споживання енергії процесора смартфона, коли поруч з ним є голодний дисплей. Економія електроенергії (та інші функції) може бути дуже привабливою для деяких інших програм - IBM SyNAPSE виглядає як класний проект в наукових цілях.
Луань

@Luaan - Цікавим моментом, коли вони були вперше винайдені, було те, що комп'ютер працював так само швидко / повільно, як це потрібно для виконання обчислень. Але більш детальні схеми тактики роботи в основному виконували те саме, сорта.
Даніель Р Хікс

29

Чи суттєво періодичні тикові годинники процесора?

Звичайно, ні. Навіть самі, найкращі годинники не є строго періодичними. Закони термодинаміки говорять інакше:

  • Закон Зерота: Існує гарна маленька гра, яку Всесвіт грає на вас.
  • Перший закон: Ви не можете перемогти.
  • Другий закон: Але ви просто можете зламати навіть у дуже холодний день.
  • Третій закон: Ніколи не стає таким холодним.

Розробники самих, найкращих годинників намагаються дуже і дуже важко долати закони термодинаміки. Вони не можуть виграти, але вони дійсно дуже близькі до беззбитковості. Годинник на вашому процесорі? Це сміття порівняно з тими найкращими атомними годинниками. Ось чому існує Мережевий протокол часу .


Прогноз: Ми знову побачимо трохи хаосу, коли найкращі атомні годинники у світі вийдуть з 2015 року 30 червня 23:59:59 UTC до 2015 30 червня 23:59:60 UTC до 2015 1 липня 2015 00:00:00 UTC Занадто багато систем не розпізнають високосні секунди та встановлюють рівень безпеки на два (що запобігає зміні часу більше однієї секунди). Тремтіння годинника в цих системах означає, що стрибок секундної протоколу мережі буде відхилений. Ряд комп’ютерів підійде животом, як і в 2012 році.


9
+1, смішно та інформативно. І тема Leap Second - теж добре читання.
jimm-cl

9
Ну, IIRC, піднімання живота було викликано тому, що підпрограми годинника ядра усвідомлювали можливість стрибків секунд, але реалізували коригування як виклик режиму регулювання годин, який не дозволялося викликати, поки годинник вже був регулюється ... І звичайно, системний годинник не має нічого спільного з тактовою частотою процесора.
Хаген фон Ейтцен

1
Лол, приголомшливий. Я повинен додати щось до вашого "годинник процесора сміття порівняно з атомними годинниками" : "Дійсно! Але все це дуже суб’єктивно, не кажучи вже про відносне. Ми можемо дивуватися чудовій точності наших кращих атомних годин, але десь там (поза нашою затишною реальністю) може бути технологія, яка робить наші атомні годинники схожими на "сміття" :-p
misha256

2
@ misha256 реальність не може бути точним годинником. Час відносний.
Келтарі

Годинник процесора може бути сміттям, але немає нічого подібного до того, щоб 8-розрядний реєстр переповнювався просто для того, щоб дати деякий час 7-сегментному драйверу дисплея в невідомому стані, щоб сформувати ваші інструкції, перш ніж випустити наступний. Для цього нам не потрібні кристали. Або, що ще важливіше, немає нічого, як чекати наносекунди для АЛУ, щоб завершити його обчислення, перш ніж приховати його результати в реєстр (або на шину, що веде до іншого АЛУ).
Джон Дворак

22

Близько 2000 року, коли швидкості процесорних процесорів почали потрапляти в діапазон, де також працювали мобільні телефони, стало звичайним додавати зміни до фактичної тактової частоти. Причина проста: якщо годинник процесора рівно 900 МГц, всі електронні перешкоди генеруються на цій частоті. Тактова частота трохи варіюється між 895 і 905 МГц, а перешкоди також розподіляються в цьому діапазоні.

Це стало можливим, оскільки сучасні процесори обмежені теплом. У них немає проблем працювати трохи швидше протягом короткого періоду часу, оскільки вони можуть охолонути, коли годинник сповільниться пізніше.


13
У BIOS ви часто бачите цей параметр, описаний як "Розкидайте спектр"
Марк Совул

1
Я читав, що в багатоядерних процесорах ядра також використовують зсувні тактові частоти, оскільки це допомагає уникнути радіошуму, допомагає розподілити потужність і уникає гармонік побудови ядер.
Зан Лінкс

3
@MarkSowul дякую, нарешті хтось розповідає про практичне використання цього "розповсюдженого спектру".

22

Цифровий логічний дизайнер тут. Фактичний час, необхідний для зміни логічної мережі у відповідь на вхідний сигнал, є затримкою поширення . Подумайте про систему як:

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

"Годинник запуску" - це тактова грань, в який час змінюється перший набір регістрів. Через один період "годинник захоплення" - це наступний край годинника. Для того, щоб система працювала, вихід логічної хмари повинен бути стабільним до появи годинника захоплення.

Процес переконання в цьому працює - це аналіз часу. Використовуючи фізичне моделювання системи, опрацюйте найгірший час прибуття будь-якого вводу на будь-який вихід. Найбільша з цих цифр у системі встановлює мінімальний тактовий період.

Зверніть увагу на найгірший випадок . Фактичний час розповсюдження буде коротшим, але це залежить від зміни виробничого процесу, температури струму та напруги струга ( ПВТ ). Це означає, що на практиці ви можете застосувати швидший годинник (розгін), і він може працювати. Він також може почати створювати помилки, наприклад вирішити, що 0x1fffffff + 1 = 0x1f000000якщо переносний біт не надійде вчасно.

На мікросхемі також може бути більше одного годинника (як правило, FSB повільніше, ніж основний), а фактичний годинник може бути збільшений вгору або вниз для цілей термічного управління або змінюватися (відповідь MSalter про використання спектру розширення для проходження тестів на ЕМС).


У деяких випадках годинник захоплення може бути другим чи пізнішим циклом, а не наступним. Деякі конструкції припускають, що дані завжди потребуватимуть хоча б деякої мінімальної кількості часу (наприклад, якщо відомо, що затримка розповсюдження становить від 2,1 до 2,9 циклів, дані можуть бути виведені та результати вибірки на кожному циклі; кожен вибірений результат відображатиме дані з 3 цикли раніше); інші більш консервативні конструкції змінюють вихідні дані повільніше і ігнорують результат, поки гарантується його стабільність.
supercat

2

Чи чітко синхронізована тривалість інструкції процесора з вібрацією кристала? Або CPU просто повинен бути впевнений, щоб досягти інструкції перед наступною галочкою?

Ні. Тривалість інструкції буде деякою кількістю годинників, але це число може змінюватися залежно від вимог інструкції. Наприклад, якщо інструкція не може досягти прогресу до тих пір, поки певне місце пам’яті не буде в кеші L1, інструкція не буде виконана перед наступним галочкою годинника. Поки не буде досягнуто прогресу в цій інструкції, поки це не відбудеться.

Але коли ЦП вирішить щось зробити, основний метод, яким він це робить, - це встановити свої внутрішні комутатори, щоб певна інформація потрапляла до певної частини процесора. Він чекає, коли вхід прибуде до цієї частини, а вихід надійде до наступної частини. Ця частина очікування - ціль годинника.

Уявіть фізичну схему, яка приймає два двійкові входи і підсумовує їх, виводячи суму на деякий третій набір проводів. Щоб зробити додавання, ЦП повинен домовитись про додавання двох номерів, щоб дістатися до цього суматора, а виходи - до, скажімо, засувки регістра CPU. Центральний процесор не може сказати засувці зберігати вихід, поки входи не доходять до суматора, суматор виробляє висновок, а вихід досягне засувки. Це мета годинника - встановити час очікування між впорядкуванням входу, щоб кудись піти, і очікуванням, що вихід буде готовий до використання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.