Category: производство

Category was added automatically. Read all entries about "производство".

wall

Верхний пост

Всем привет.

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

Я не пишу под замок. Сейчас "под глазиком" лежит n штук недописанных постов, под замком один пост с оффлайновыми контактами. И может быть ещё что-то случайное из давней древности.

Если хочется сказать что-то не по теме, это можно сделать тут.
Если что, писать можно на толстый-крокодил@yandex.ru -- как название журнала, но не подчёркивание а дефис.
wall

Немного про сумматоры

Основная особенность железок -- их количество и состав не меняется в процессе работы. Сколько проектировщик нарисовал, столько и есть, всё время. Это довольно-таки очевидно, но следствия интересны.

Раз железка есть, значит к ней и от неё идут какие-то проводочки, на которых есть какое-то напряжение. Напряжения не может не быть, оно может быть нулевым, но это ничего не меняет.

А это значит, что все они всё время как-то работают. Чтобы железка перестала работать, у неё должен быть специальный вход, который её "выключает". Почему в кавычках -- потому что это достаточно условное отключение. Грубо говоря, это блокирование выходов, т.е. перевод в такое состояние, когда она другим не мешает. Если же их не отключать, то они все работают одновременно, как рабочие на конвейере; только таких "конвейеров" несколько и соединения не линейное-последовательные, а посложнее.

Обычный n-разрядный сумматор складывает два n-разрядных числа и имеет 2n входов и (n+1) выход. Он состоит из n одноразрядных сумматоров. Одноразрядный сумматор имеет три входа и два выхода. На входе у него i-е разряды чисел и перенос из младшего разряда. На выходе -- i-й разряд результата и перенос в старший разряд, который цепляется к (i+1)-му одноразрядному сумматору.

Выглядит это как-то так (нарисовано, скорее всего, не по стандарту, ну да ладно):
2.38 КБ
Слева -- младшие разряды, справа -- старшие. Входы у сумматоров слева, выходы справа.

Что в этой картинке печально: маленькие сумматоры работаю быстро, но не мгновенно. Значит перенос в следующий разряд они вычисляют с задержкой. Значит результат работы следующего сумматора становится адекватным только тогда, когда до него дойдёт перенос... В общем, чтобы посчитать последний разряд, нужно дождаться пока до него дойдёт перенос от самого первого. В результате время работы n-разрядного сумматора что-то около n * время_работы_одноразрядного_сумматора. Хотя, казалось бы, у нас их n штук и все могли бы одновременно... Но вот не получается.

Сумматор -- основное рабочее устройство в процессоре, ускорять его -- почётно и важно. Есть всякие схемы "предсказания переноса", они позволяют старшим разрядам получать актуальный перенос немного раньше, чем он до них дошёл бы естественным путём. Но это сложные и не интересные решения. А есть простое и красивое: с помощью грубой силы.

Collapse )

Проигрыш в количестве железа -- 1,5 раз; выигрыш во времени -- 2 раза.

Мультиплексор относительно простая и быстрая штука, им при подсчётах пренебрегли. Это можно делать только до какой-то степени; например, при помощи мультиплексоров довести время работы до времени работы одноразрядного сумматора точно не получится.