Как процессор решает, какие транзисторы использовать?

Как процессор решает, какие транзисторы использовать?

Возможно, я не правильно об этом думаю, но когда вы даете ЦП команду, например, Умножить регистры (MR) R2,R4, как он решает, какие логические вентили он будет использовать, это просто первые доступные вентили или есть что-то, о чем я не знаю, что происходит под капотом. Я понимаю, что у ЦП есть миллионы логических вентилей, так как же он управляет их использованием правильно?

решение1

Ваш вопрос на самом деле больше относится к области электротехники, чем к информатике, так что он немного не по теме, но я посмотрю, что можно сделать.

Ваша инструкция умножения будет поставлена ​​в очередьАрифметический процессорна одном из его входных/выходных соединений.

АЛУ используетКомбинационная логикав его компоновке, так что электричество течет по всей схеме, а его выход изменяется в зависимости от полученного входа. Он не выбирает набор вентилей для использования, все вентили получают сигнал, но компоновка схемы создает воспроизводимое преобразование входного сигнала, несущего результат. Обратите внимание, что на этом уровне вы работаете с аналоговым сигналом так же, как и с цифровыми битами, поэтому электричество течет как вода по сети труб, а схема пропускает больше или меньше воды по разным путям.

Исполнительный блок, управляющий инструкцией, отправляет ее в АЛУ для обработки и на следующем такте ожидает, что результат будет доступен в одном из выходных регистров АЛУ. Подробнее см. здесь:https://en.wikipedia.org/wiki/Арифметическая_логическая_единица#Работа_схемы

решение2

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

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

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

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

Связанный контент