Будут ли данные в регистрах изменяться со скоростью света и, возможно, станут нестабильными/неопределенными, или процессор вообще перестанет изменять состояние?
Чтобы дать всем гейтам время изменить состояние из всей цепочки, мы используем часы. Часы являются входом для ЦП, переключающегося между 0 и 1 (сигнал становится низким, сигнал становится высоким, сигнал становится низким и т. д.), что заставляет ЦП выполнять операции.
Если увеличить тактовую частоту до 100 ГГц, цикл будет равен 0,01 наносекунды... Что происходит, когда это ограничение размера нарушается? Что происходит, так это то, что некоторые части вашей схемы находятся в «текущем» цикле, а другие части — в «предыдущем» цикле. С такими распределенными системами становится очень сложно работать.
Но тогда этот пост говорит :
это просто остановится
Так что я запутался в результате.
Если я представлю себе простое timer register
подключение к сумматору, и каждый такт его данные обрабатываются ++1
, не означает ли постоянный высокий уровень, что данные регистра циклически проходят через сумматор и возвращаются к себе со скоростью света, добавляя сами к себе бесконечно? а не останавливаться?
Ваши сомнения возникают из-за непонимания основ синхронных последовательных логических сетей , частными примерами которых являются современные ЦП и связанные с ними базовые блоки, такие как счетчики.
Как уже указывал кто-то другой, такие сети могут изменять состояние только вследствие фронта тактового сигнала, т. е. перехода тактового сигнала.
Я предлагаю вам изучить базовое поведение триггеров с запуском по фронту (т. е. 1-битная статическая память, немного упрощая :-) и другие базовые понятия о требованиях синхронизации синхронной сети, таких как время установки, время удержания и задержка распространения .
РЕДАКТИРОВАТЬ (Чтобы ответить на некоторые комментарии OP @Dan)
Вы продолжаете упоминать «скорость света», но вы действительно должны выбросить этот термин из своей системы.
Скорость света есть "скорость" в физическом смысле, т.е. отношение пространства ко времени. Скорость описывает, насколько быстро движутся физические тела. В цифровой логике мы говорим о скорости обработки , т.е. сколько битов в секунду обрабатывается.
Соотнести их совсем не тривиально (куча движущихся зарядов не обязательно совпадает с кучкой «движущихся» битов).
Асинхронная (т.е. «бестактовая») логика теоретически быстрее, потому что устройства могут реагировать, не дожидаясь фронта тактового сигнала. Это не означает, что одно устройство «бесконечно» быстрое. С той же технологией и той же сложностью схемы избавление от часов просто экономит время, которое некоторые устройства с синхронизацией тратят впустую на ожидание фронта часов, когда их входы уже «готовы». Это не увеличивает скорость переключения состояний одного транзистора. Таким образом, у вас все еще будут задержки распространения. ( https://en.wikipedia.org/wiki/Асинхронная_схема#Асинхронная_схема ).
OTOH, проектирование сложной асинхронной системы — это кошмар по времени, поскольку любая подсистема может среагировать в любой момент, и вам все равно нужно соблюдать требования по времени установки и удержания,другие блоки переключат свои выходы, так как у вас нет сигнала синхронизации. Более того, вам все равно понадобится синхронизация , так как некоторые задачи придется ждать завершения других. Без тактовых сигналов это будет намного сложнее.
Вы можете найти это интересным:
https://en.wikipedia.org/wiki/Asynchronous_circuit#Asynchronous_CPU .
Часы должны переходить от низкого уровня к высокому и повторяться в регулярном порядке.
Именно эти переходы вызывают изменения в логике, а не на высоком уровне. Нет переходов = нет логического изменения. Так что без переходов он перестанет работать.
Это включает в себя «сверхвысокое» напряжение (оно, вероятно, будет повреждено).
Если задействованы только статические элементы, то работа будет полностью "зависать" на все время удаления часов. Перезапустите часы, и они продолжат работу именно с того места, где остановились (как будто время вообще не прошло).
Если задействованы динамические элементы (вероятно, сегодня, такие как сторожевые таймеры, прерывание при изменении, обновление памяти DRAM и т. д.), то что-то, вероятно, будет пропущено или повреждено во время долгой паузы часов. В случае потери DRAM текущий выполняемый код теперь будет мусором, поэтому процессор быстро выйдет из строя из-за попытки запустить мусорный код.
Именно переходы часов сигнализируют процессору «выполнить следующий шаг». Низкий-высокий переход или край (устаревший), а также верхний-низкий край (современный) теперь оба что-то делают.
В современных современных процессорах несколько ядер с несколькими потоками означают, что каждый тактовый цикл выполняет сотни, даже тысячи операций параллельно на каждом фронте тактовой частоты.
Тактовые фронты должны использоваться, потому что они являются последовательными , и эти фронты должны быть разделены некоторым количеством времени, чтобы позволить «шагу» полностью распространиться или завершиться до того, как начнется следующий. «Разгон» — это увеличение тактовой частоты выше нормального значения. Типичная тактовая частота включает в себя запас прочности, поэтому обычно ее можно несколько увеличить. Его увеличение заставляет процессор работать интенсивнее, поэтому для продолжения работы обычно требуется небольшое повышение напряжения. Но слишком большое увеличение тактовой частоты в конечном итоге приведет к нарушению этих временных интервалов, особенно во всех возможных диапазонах температур.
clock helps with transitions
. Как оно это делает? часы представляют собой непрерывный образец 1 и 0. Подаются ли 1 и 0 в ворота в качестве одного из их входов, чтобы потенциально изменить свое состояние на основе других их входов?Обычно мне не нравятся аналогии с водой для электричества, но...
Часы на синхронной логике — это что-то вроде насоса для колодезной воды. Насосное действие не непрерывное, оно происходит очередями. Когда вы поднимаете рычаг насоса вверх, насос всасывает немного воды снизу, а когда вы снова опускаете рычаг насоса, он выбрасывает эту воду вверх по течению. Многократно перемещайте рукоятку насоса вверх и вниз, и она может перекачивать довольно много воды вверх по течению. Остановитесь с поднятой рукой, и больше ничего не произойдет. Остановитесь с опущенной рукой, и больше ничего не произойдет.
Также существует оптимальная скорость накачки (это справедливо и для синхронных логических схем). Слишком медленная пульсация насоса приводит к потере импульса, поэтому давление и скорость воды не достигают своего полного потенциала. Но пульсирует насос слишком быстро, и вода просто не может достаточно быстро попасть в крыльчатку. Метафора немного ломается, потому что цепи не имеют вязкости...
В синхронных схемах у нас есть так называемые цифровые схемы, которые на самом деле являются аналоговыми схемами, притворяющимися, что они следуют хорошим правилам чистого цифрового дизайна. Цифровые схемы имеют особенность, называемую « помехоустойчивостью».": высокий логический уровень или низкий логический уровень представляют собой диапазон напряжений. Что касается цифрового разработчика, нет существенной разницы между высоким логическим уровнем 2,6 В и 2,8 В, если он находится в диапазоне напряжения VIH входного сигнала. гарантированно обрабатывает его как высокий логический уровень. Но базовая схема состоит из транзисторов, и всякий раз, когда она переключается между высоким и низким уровнями, она должна переключаться между всеми напряжениями между ними. Реальные схемы не переключаются мгновенно. Так что Для установления правильного значения сигнала требуется некоторый конечный период времени, который называется задержкой распространения .. Сложите все времена задержки распространения всех различных элементов комбинационной логической схемы, через которые должен пройти сигнал, и это определяет самый короткий (самый быстрый) период синхронизации, который может выдержать схема. Работа на более высокой тактовой частоте не даст внутренней комбинационной логике достаточно времени, чтобы всегда достигать правильного значения. Он всегда имеет какое-то значение, просто не гарантируется, что оно будет правильным , пока не пройдет все время задержки распространения.
Существует множество факторов, определяющих требуемое время задержки распространения. Некоторые из них зависят от номинальных расчетных значений, таких как емкостная нагрузка, сопротивление проводов и тому подобное. Эти факторы зависят от законов физики, формы и размеров материалов, других характеристик материалов и температуры; поэтому мы можем оценить задержку распространения. Но в выпускаемых устройствах есть небольшие вариации от одного блока к другому. В 1970-х годах эти производственные допуски не были такими жесткими, как сегодня, но все еще существуют некоторые непредсказуемые различия от одного устройства к другому. Таким образом, это привело к тенденции компьютерного хобби под названием «разгон», о чем вы, кажется, спрашиваете.
Энтузиасты разгона в основном шли на небольшой риск, модифицируя свой персональный компьютер для работы с более высокой тактовой частотой, например, запуская процессор с частотой 6 МГц на частоте 8 МГц. Это не гарантирует работу. Также не гарантируется очевидный сбой, что может быть хуже, чем если бы это не сработало сразу. Если вы запускали большую симуляцию, и была какая-то небольшая необнаруженная ошибка в вычислениях, которая происходит только после того, как она выполнила кучу больших вычислений и получила горячую точку, то вы можете не знать, что получили плохой результат. С другой стороны, если вы используете его только для игр, никакого вреда не будет. Тем не менее, даже такой хак, как разгон, по-прежнему должен обеспечивать постоянно меняющийся тактовый вход. Простое подключение тактового входа «всегда низкий» или «всегда высокий» — это не какое-то волшебство.
Вот еще немного подробностей о том, во что на самом деле входит тактовый сигнал. Простейшей идеей синхронной логической схемы может быть конечный автомат, состоящий из нескольких D-триггеров и логических вентилей. Все D-триггеры получают тактовый сигнал. Выходы триггеров управляют входами лабиринта логических элементов, а выходы запутанной логики возвращаются на входы D-триггеров. Таким образом, существует своего рода петля обратной связи, но триггеры прерывают эту петлю обратной связи, налагая временную дисциплину. Триггер в значительной степени игнорирует все, что происходит на его входных данных, пока только передний фронт тактового сигнала не, а затем внезапно выходные данные меняются в соответствии со значением входных данных. Это происходит очень быстро, в идеале это похоже на снимок входных данных и непрерывное управление этим значением до конца тактового цикла. Если бы триггер постоянно обновлял свои выходы, чтобы соответствовать своим входам, пока на входе тактового сигнала был высокий уровень, это не был бы триггер; это будет прозрачная защелка. И нам нужны триггеры, а не прозрачные защелки, чтобы строить конечные автоматы.Нет никаких изменений на заднем фронте часов. В конце концов комбинационная логика определяет новое значение для входов триггера. Но единственный способ, которым машина «узнает» о том, что новое значение прибыло, - это то, что происходит нарастающий фронт часов. Это то, что управляет процессом обновления значения регистра, так что остальная логика может начать вычисление следующего шага. Это основной принцип работы всех конечных автоматов и всей другой синхронной логики.
Часы синхронизируют работу всех внутренних компонентов любого процессора. Если он останавливается (или становится постоянно высоким), процессор тоже должен просто остановиться. По крайней мере микроконтроллер 8051 так себя ведет. Он определенно не будет «разгонять» процессор (он же не будет работать максимально быстро). Все неприятные побочные эффекты, такие как очистка/изменение регистров, неопределенное состояние и т. д., тоже могут произойти.
Часы остановлены: если регистры и логика статичны, машина сохраняет свое состояние. Если они динамические, состояние в конечном итоге будет повреждено или потеряно.
(Динамическая логика используется в некоторых архитектурах для уменьшения площади. Как и в случае с DRAM, для обновления своего состояния она должна циклически обновляться. Она была более распространена в эпоху NMOS, хотя до сих пор используется в CMOS.)
Часы работают за пределами машины: нестабильная работа, так как время установки триггеров не соблюдается, поэтому их состояние непредсказуемо.
Базовое время цикла должно быть не меньше, чем в наихудшем случае тактовая частота флопа к выходу + задержка маршрутизации + установка на следующую стадию флопа.
Также существует некоторое ограничение на высокий и низкий уровень тактовой частоты, поскольку флопы состоят из защелок, которые активируются на противоположных уровнях тактовой частоты: им требуется минимальное время импульса для распространения.
Очаг
джсотола
light speed
не является мерой временного интервала, если не указано расстояниепользователь1850479
Дэн
пользователь1850479
взломщик
Мэтью Уотсон
Джон Доти
Навин