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

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

На мой взгляд, оно должно быть не стабильным и не нестабильным. So is there any information available about the variance for a CPU?

Is a CPU's cycle duration strictly synchronized to the crystal vibration? Or does the CPU just have to be sure to achieve a cycle before the next tick?

5 ответов

Решение

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

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

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

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

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

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

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

То, что вы просите, - это техническая информация. Intel не публикует полную или точную информацию о задержке / пропускной способности команд процессора.

Есть исследователи, которые взяли на себя, чтобы попытаться понять это. Вот два PDF-файла, которые могут представлять интерес:

К сожалению, сложно получить данные о дисперсии. Цитата из первого PDF:

перечисленные числа являются минимальными значениями. Пропуски кэша, смещение и исключения могут значительно увеличить счетчик часов.

Интересное чтение тем не менее!

Are CPU clock ticks strictly periodic in nature?

Конечно, нет. Even the very, very best clocks aren't strictly periodic. The laws of thermodynamics say otherwise:

  • Zeroth law: There's a nasty little game the universe plays on you.
  • First law: You can't win.
  • Second law: But you just might break even, on a very cold day.
  • Third law: It never gets that cold.

The developers of the very, very best clocks try very, very hard to overcome the laws of thermodynamics. They can't win, but they do come very, very close to breaking even. The clock on your CPU? It's garbage in comparison to those best atomic clocks. This is why the Network Time Protocol exists.


Прогноз: Мы снова увидим хаос, когда лучшие атомные часы в мире будут работать с 2015 года 30 июня 23:59:59 UTC до 2015 года 30 июня 23:59:60 UTC до 2015 года 1 июля 2015 00:00:00 УНИВЕРСАЛЬНОЕ ГЛОБАЛЬНОЕ ВРЕМЯ. Слишком много систем не распознают високосные секунды и имеют уровень безопасности, равный двум (что предотвращает изменение времени более чем на одну секунду). Дрожание тактовых импульсов в этих системах означает, что високосная секунда сетевого протокола времени будет отклонена. Ряд компьютеров обанкротится, как в 2012 году.

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

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам