@daniil14056

Как именно работает Сумматор в процессоре? Сигналы же не могут одновременно прийти, то есть будет 2 работы?

И все другие логические устройства.
Интересует когда именно происходит вычисления.
Допустим приходит 2 сигнала, но они же 100% не одновременно же придут?
То есть допустим на входах были до 1 и 1 сигналы, и приходят сигналы 0 0, но сначала же придет первый 0, и он там пойдет дальше по цепи 0 + 1 , а потом(через 0.0000000001 секунды) придет второй 0-0й и произойдет вычисление 0+0. То есть первое лишние вычисление.
  • Вопрос задан
  • 395 просмотров
Решения вопроса 1
@nehrung
Не забывайте кликать кнопку "Отметить решением"!
Я уже отвечал недавно на вопрос, как работает сумматор, и вопрос этот был ваш. Видимо, вы не поняли мой ответ, хотя мне казалось, он сформулирован достаточно просто. Ну что ж, придётся разжёвывать.
Прежде всего, сам по себе сумматор - комбинационная цифровая схема, и как таковой, он в тактовых импульсах не нуждается. Подали на его входы два операнда, и спустя время задержки на выходе появляется сумма. Но разжуём уже до мельчайших косточек - возьмём идеальный сумматор, составленный из идеальных логических элементов, не имеющих задержек распространения сигнала. Исходное состояние - на входах нули. На выходе, естественно, тоже нуль. Подаём первый операнд. Задержек нет, поэтому на выходе тут же появляется этот же операнд (он суммировался с нулём на другом входе). Затем подаём второй операнд - на выходе тут же (т.е. опять-таки без задержек) появляется сумма. Надеюсь, тут всё понятно (собственно, это мой ответ на эти ваши 0.0000000001 секунды - да хоть 0.00000000000000000000000000000001 сек, в идеальном сумматоре это без разницы).
Теперь рассмотрим сумматор из реальных логических элементов, имеющих задержку распространения. В нём всё точно так же, вот только на время суммарной задержки его составных частей на выходе будет неизвестно что. Вот так, буквально - подали первый операнд, на выходе неизвестно что (какая-то каша, которой нельзя доверять), и спустя время задержки каша успокаивается, и мы обнаруживаем на выходе этот самый первый операнд, который суммирован с нулём. Подали второй операнд - то же самое: сумму видим на выходе, когда период задержек закончился.
Именно по этой причине реальный сумматор в реальном процессоре снабжается входными и выходным регистрами - они позволяют отсеять те его состояния, которым нельзя доверять. Записали в первый регистр первый операнд по тактовому импульсу 1, затем второй по импульсу 2 (впрочем, можно и одновременно), и только потом по тактовому импульсу 3 записываем сумму в выходной регистр и пускаем дальше туда, где она понадобилась. Время между тактами должно быть заведомо больше, чем общие задержки в сумматоре - только при этом условии мы можем быть уверены в точности его работы. Попытки уменьшить тактовое время (мол, вот я счас сделаю мой проц более быстрым) неизбежно приведут к сбоям, т.е. к ошибкам в вычислениях.
Теперь понятно? Если всё ещё нет, задавайте вопросы, только не в виде программного кода - на этом уровне рассмотрения он не нужен.
И ещё: вы сделали два одинаковых вопроса - так тут не делается. Настоятельно советую удалить второй, который сейчас заблокирован.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@rPman
Приходит именно одновременно, даже если есть какие то различие из-за скорости света, времени там прилично, например между тактами.

Операция сложения делится на кучу мелких, типа поместить значение ячейки памяти в регистр, сложить, переместить результат, все они складываются в очередь и исполняются как получится, порядок определяет специальный модуль, если он решит что можно одновременно то так и сделает.
Ответ написан
Комментировать
begemot_sun
@begemot_sun
Программист в душе.
К любому мало-мальки сложному устройству внутри процессора подводится тактовая частота.
И все элементы внутри такого устройства работают исходя из этой частоты.
Пусть имеется сумматор с 2 входами. Третий вход такого сумматора всегда будет тактовым. Т.о.
сумматор будет выполнять свою работу только при изменении тактового сигнала скажем с 0 на 1.
т.о. неважно когда приходят (на самом деле не приходят, а выставляются) уровни на входах. Важно какие они в момент прихода тактового импульса.

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 07:20
2000 руб./за проект
26 апр. 2024, в 06:46
1000 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект