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

7494
Gael

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

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

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

51
Дисперсия не является функцией процессора, она больше связана с материнской платой, колебаниями температуры и т. Д. Насколько вам нужна точность, за какой период? mpez0 9 лет назад 0
Существует много разных типов процессоров. Большинство из них используют кристалл, который вибрирует на определенной частоте для измерения времени. Это означает, что большинство из них примерно такие же точные, как цифровые наручные часы (которые используют кристаллы того же типа, чтобы сохранять время). http://en.wikipedia.org/wiki/Crystal_oscillator krowe 9 лет назад 7
Какая бы разница, это не проблема для моих личных потребностей: я веб-разработчик, так что это далеко от меня :) Gael 9 лет назад 0
Даже если кристалл, безусловно, имеет стабильную частоту, мой вопрос более специфичен для процессора: точно ли синхронизирована длительность команды процессора с вибрацией кристалла? Или процессор должен быть просто уверен, что должен выполнить инструкцию до следующей отметки? Gael 9 лет назад 0
Чем больше я об этом думаю, тем больше мне нравится этот вопрос. misha256 9 лет назад 0
@ Гель некоторые инструкции требуют сотни тиков, или часов * циклов *, чтобы завершить. misha256 9 лет назад 5
@Gael: Кроме того, процессоры довольно часто замедляются или ускоряются, и они делают это довольно часто. Хотя я точно не знаю, как это относится к клещам. Mooing Duck 9 лет назад 1
Голосуете за это как за * поиск продукта, услуги или рекомендации учебного материала *? Действительно люди? a CVn 9 лет назад 18
Это *** законный вопрос *, чтобы выяснить, как работает оборудование. ** studiohack 9 лет назад 30
Многие компьютерные системы ускоряют или замедляют тактовую частоту процессора в зависимости от обстоятельств. Например, поскольку выделяемое тепло примерно пропорционально производительности, часы часто замедляются, когда процессор слишком сильно нагревается. Кроме того, некоторые портативные системы работают медленнее от батареи (и, что любопытно, некоторые работают медленнее, когда батарея извлечена). Обычно эти изменения осуществляются путем изменения тактовой частоты. Но следует понимать, что большинство «современных» систем имеют некоторую схему для независимого поддержания точности «часов реального времени», которые предоставляют программное обеспечение службам времени, несмотря на вышесказанное. Daniel R Hicks 9 лет назад 0
@krowe: Как правило, высокочастотные кристаллы менее точны, чем низкочастотные (среди прочего, последние используются для часов). Например, в часах обычно используются кристаллы 32 кГц. Таким образом, микроконтроллер, работающий на частоте 20 МГц, не сможет рассчитывать время так же точно, как выделенная схема RTC (часы реального времени). ПК могут рассчитывать время точно, потому что материнские платы имеют (полностью отделенный от процессора) встроенный RTC для отслеживания времени; плюс они могут помочь с NTP, если настроены на это. Tim Čas 9 лет назад 0

4 ответа на вопрос

49
misha256

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

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

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

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

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

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

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

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

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

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

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

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

Комментарии не для расширенного обсуждения; этот разговор был [перемещен в чат] (http://chat.stackexchange.com/rooms/20977/discussion-on-answer-by-misha256-are-cpu-clock-ticks-strictly-periodic-in-nature) , Sathya 9 лет назад 1
Очень хорошо. Конечно, «но все время процессор на 100% привязан к тактовому сигналу» относится только к синхронным процессорам. Глупо говорить о тиках в асинхронном (без тактовом) процессоре, но для меня это было упущением :) Luaan 9 лет назад 4
@Luaan - Верно. Я думаю, что настоящие асинхронные процессоры все еще довольно редки, но они существуют (или были в прошлом). Правда, актуально только для исследователей и компьютерных фанатов. Daniel R Hicks 9 лет назад 1
@DanielRHicks Они представляли некоторый интерес для встраиваемых устройств (есть несколько старых асинхронных процессоров MIPS и ARM), но да, на самом деле, не так уж и много на потребительском рынке. В конце концов, зачем заботиться о энергопотреблении процессора смартфона, когда рядом с ним стоит энергосберегающий дисплей. Экономия энергии (и другие функции) может быть очень полезной для некоторых других приложений - IBM SyNAPSE выглядит как крутой проект для научных целей. Luaan 9 лет назад 0
@Luaan - Интересным моментом, когда они впервые были изобретены, было то, что компьютер работал так же быстро / медленно, как это требовалось для выполнения вычислений. Но более сложные схемы синхронизации в основном выполняли то же самое, Сорта. Daniel R Hicks 9 лет назад 0
@DanielRHicks Да, многие хитрости, такие как микроинструкции, работают довольно хорошо. Вероятно, мы сможем выжать дополнительную производительность из асинхронных процессоров, но это, вероятно, не стоит затрат. И разница в стоимости должна быть значительной, если, например, затраты на питание (и охлаждение) суперкомпьютеров все же стоят. Время покажет, может быть. Luaan 9 лет назад 0
29
David Hammen

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

Конечно, нет. Даже самые, самые лучшие часы не являются строго периодическими. Законы термодинамики говорят иначе:

  • Закон Зеро: Есть противная маленькая игра, в которую вселенная играет на вас.
  • Первый закон: ты не можешь победить.
  • Второй закон: Но вы можете быть безубыточным, в очень холодный день.
  • Третий закон: никогда не бывает так холодно.

Разработчики самых, самых лучших часов стараются изо всех сил преодолеть законы термодинамики. Они не могут победить, но они очень, очень близки к безубыточности. Часы на вашем процессоре? Это мусор по сравнению с этими лучшими атомными часами. Вот почему существует протокол сетевого времени .


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

+1, смешно и информативно. И тема [Leap Second] (http://en.wikipedia.org/wiki/Leap_second) также является хорошим чтением. jimm-cl 9 лет назад 9
Что ж, IIRC, неуверенность в себе вызвана тем, что подпрограммы тактового генератора ядра * знали * о возможности високосных секунд, но реализовали настройку как вызов подпрограммы настройки тактового генератора, которую нельзя было вызывать во время синхронизации уже настраивался ... И, конечно, системные часы не имеют ничего общего с процессором. Hagen von Eitzen 9 лет назад 9
Лол, классно Я должен добавить кое-что к вашему * «Часы процессора - это мусор по сравнению с атомными часами» * Замечание: Действительно! Но это все очень субъективно, не говоря уже об относительном. Мы можем удивляться превосходной точности наших лучших атомных часов, но где-то там (за пределами нашей уютной реальности) может существовать технология, которая делает наши атомные часы похожими на «мусор» :-p misha256 9 лет назад 1
@ misha256 реальность такова, что не может быть * точных * часов. Время относительно. Keltari 9 лет назад 2
Тактовая частота процессора может быть мусором, но нет ничего лучше, чем позволить переполнению 8-битного регистра просто дать некоторое время 7-сегментному драйверу дисплея в неизвестном состоянии, чтобы сжать вашу инструкцию перед тем, как вы выполните следующую. Нам не нужны никакие кристаллы для этого. Или, что еще более важно, нет ничего лучше, чем ждать наносекунды, пока ALU завершит свои вычисления, прежде чем вы запишете результаты в регистр (или на шину, ведущую к другому ALU). John Dvorak 9 лет назад 0
22
pjc50

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

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

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

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

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

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

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

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

Neither. The instruction duration will be some number of clock ticks, but that number can vary based on the requirements of the instruction. For example, if an instruction can't make forward progress until a particular memory location is in the L1 cache, then the instruction will not be completed before the next clock tick. No forward progress on that instruction will be made until that happens.

But when the CPU does decide to do something, the basic method by which it does it is to set up its internal switches so that a particular piece of information goes to a particular portion of the CPU. The it waits for the input to arrive at that portion and the output to arrive at the next portion. This waiting portion is the purpose of the clock.

Imagine a physical circuit that takes two binary inputs and sums them, outputting the sum on some third set of wires. To do an addition, the CPU must arrange for the two numbers to be added to get to this adder and the outputs to go to, say, a CPU register latch. The CPU can't tell the latch to store the output until the inputs reach the adder, the adder produces the output, and the output reaches the latch. This is the purpose of the clock -- to set the wait time between arranging input to go somewhere and expecting the output to be ready to use.

Похожие вопросы