Являются ли тактовые частоты процессора строго периодическими?


51

Является ли частота ЦП средним значением, равным примерно количеству тактов в секунду, или он обладает более сильной физической стабильностью?

На мой взгляд, оно должно быть не стабильным и не нестабильным. Так есть ли какая-либо информация о дисперсии для процессора?

Точно ли синхронизирована длительность цикла процессора с вибрацией кристалла? Или процессор просто должен быть уверен, что цикл будет достигнут до следующего такта?


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

5
@ Гэль, чтобы выполнить некоторые инструкции, требуются сотни тактов или тактов .
misha256

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

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

30
Это законный вопрос, цель которого - выяснить, как работает оборудование.
studiohack

Ответы:


49

Как и любая сложная вещь, вы можете описать, как процессор работает на разных уровнях.

На самом фундаментальном уровне процессор управляется точными часами. Частота часов может меняться; думаю, что Intel's SpeedStep. Но процессор все время на 100% привязан к тактовому сигналу.

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

Таким образом, в основном инструкция будет использовать некоторое количество тактов . В современных процессорах благодаря таким технологиям, как многоядерные технологии, HyperThreading, конвейерная обработка, кэширование, неупорядоченное и умозрительное выполнение, точное количество тактов для одной инструкции не гарантируется и будет изменяться каждый раз, когда вы выполняете такую ​​инструкцию !

РЕДАКТИРОВАТЬ

Есть ли какая-либо информация о дисперсии для конкретного процессора?

И да и нет. 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 УНИВЕРСАЛЬНОЕ ГЛОБАЛЬНОЕ ВРЕМЯ. Слишком много систем не распознают високосные секунды и имеют уровень безопасности, равный двум (что предотвращает изменение времени более чем на одну секунду). Дрожание тактовых импульсов в этих системах означает, что високосная секунда сетевого протокола времени будет отклонена. Ряд компьютеров обанкротится, как в 2012 году.


9
+1, смешно и информативно. И тема « Прыжок второй» - тоже хорошее чтение.
Jimm-Cl

9
Что ж, IIRC, неуверенность в себе вызвана тем, что подпрограммы часов ядра знали о возможности дополнительных секунд, но реализовали настройку как вызов подпрограммы настройки часов, которую нельзя было вызывать, когда часы уже были настраивается ... И, конечно, системные часы не имеют ничего общего с процессором.
Хаген фон Айцен

1
Лол, классно Я должен добавить кое-что к вашему наблюдению «ЦП - мусор по сравнению с атомными часами» : Действительно! Но это все очень субъективно, не говоря уже об относительном. Мы можем удивляться превосходной точности наших лучших атомных часов, но где-то там (вне нашей уютной реальности) может существовать технология, которая делает наши атомные часы похожими на «мусор» :-p
misha256

2
@ misha256 реальность такова, что не может быть точных часов. Время относительно.
Келтари

Часы процессора могут быть мусором, но нет ничего лучше, чем позволить переполнению 8-битного регистра просто дать некоторое время 7-сегментному драйверу дисплея в неизвестном состоянии, чтобы сжать вашу инструкцию перед тем, как вы выполните следующую. Нам не нужны никакие кристаллы для этого. Или, что еще более важно, нет ничего лучше, чем ждать наносекунды, пока ALU завершит свои вычисления, прежде чем вы сохраните результаты в регистр (или на шину, ведущую к другому ALU).
Джон Дворак

22

Примерно в 2000 году, когда тактовые частоты процессоров начали достигать диапазона, в котором также работали мобильные телефоны, стало обычным добавлять вариации к фактической тактовой частоте. Причина проста: если частота процессора составляет ровно 900 МГц, все электронные помехи генерируются на этой частоте. Измените тактовую частоту немного между 895 и 905 МГц, и помехи также распределены по этому диапазону.

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


13
В BIOS вы часто будете видеть эту опцию, описанную как «Spread Spectrum»
Марк Соул

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

3
@MarkSowul спасибо, наконец-то кто-то рассказывает о практическом использовании этого "расширенного спектра".

22

Дизайнер цифровой логики здесь. Фактическое время, необходимое для изменения логической сети в ответ на входной сигнал, представляет собой задержку распространения . Думайте о системе как:

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

«Часы запуска» - это край времени, в который изменяется первый набор регистров. «Часы захвата» - это следующий фронт синхронизации один период спустя. Чтобы система работала, выход логического облака должен быть стабильным до того, как поступят часы захвата.

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

Обратите внимание на худший случай . Фактическое время распространения будет меньше, но оно зависит от изменения производственного процесса, текущей температуры и напряжения на микросхеме ( PVT ). Это означает, что на практике вы можете использовать более быстрые часы (разгон), и это может работать. Это может также привести к возникновению ошибок, таких как принятие решения, 0x1fffffff + 1 = 0x1f000000если бит переноса не прибывает вовремя.

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


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

2

Синхронизирована ли длительность инструкций ЦП с вибрацией кристалла? Или процессор просто должен быть уверен, что выполнил инструкцию до следующего такта?

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

Но когда ЦП действительно решает что-то сделать, основной метод, которым он это делает, - это настроить свои внутренние переключатели так, чтобы определенный фрагмент информации попадал в определенную часть ЦП. Он ожидает поступления ввода в эту часть, а выхода - в следующую. Эта часть ожидания является целью часов.

Представьте себе физическую схему, которая принимает два двоичных входа и суммирует их, выводя сумму на некоторый третий набор проводов. Чтобы сделать сложение, ЦП должен организовать добавление двух чисел, чтобы добраться до этого сумматора, и выходов, чтобы перейти, скажем, в защелку регистра ЦП. Процессор не может сказать защелке сохранить выходные данные, пока входы не достигнут сумматора, сумматор выдает выходные данные, и выход достигает защелки. Это цель часов - установить время ожидания между подготовкой ввода куда-то и ожиданием того, что выход будет готов к использованию.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.