Где находится сумматор в компьютере
Рассмотрим уравнения и структуры серийно выпускаемых ИС сумматоров. Функциональное обозначение полного одноразрядного двоичного сумматора типа ИМ1 (`80), реализуемого в отечественных сериях 133, К155, КМ155, представлена на рис. 1. Его отличительной чертой является развитая логика на входах разрядов a и b чисел А и В (рис. 2). Структура данной ИС реализуется по следующим уравнениям:
(1) |
(2) |
(3) |
(4) |
(5) |
При использовании данной ИС между входами a3 и b3 и источником питания +5 В нужно включить резистор R, сопротивление которого определяется требуемыми динамическими параметрами (типичные значения 1–5,1 кОм). В дальнейшем на схемах, построенных на этой ИС, резистор опущен.
Реализация прямой суммы и инверсных суммы и переноса в данной ИС обусловлена двумя обстоятельствами: во-первых, задержки распространения логического элемента И-ИЛИ-НЕ меньше, чем у элемента И-ИЛИ, так как последний фактически реализуется по структуре И-ИЛИ-НЕ-НЕ, что позволяет строить параллельные многоразрядные сумматоры с последовательным переносом с относительно небольшими задержками распространения в цепи выходного переноса; во-вторых, используется свойство самодвойственности функций S и P [1].
Наличие входов a1, a2 и b1, b2 позволяет маскировать нулём один разряд, любую группу разрядов или все разряды чисел А и В. Наличие входов a3 и b3 позволяет подключить к ним дополнительную логику, реализованную на элементах, выходы которых выполнены с открытым коллектором. Наличие входов a4 и b4 даёт возможность преобразовывать прямые коды многоразрядных чисел А и В в обратный или дополнительный коды, а также строить схемы не только сумматоров, но и вычитателей.
Рис. 3
В качестве примера на рис. 3 показана схема, поясняющая принцип действия 4-разрядного параллельного сумматора с последовательным переносом, в котором использованы ИС типа ИМ1 (133, 155). Разряд a0 числа А подан на объединённые входы a1 и a2, хотя в общем случае на вход a2 можно подать уровень “1” либо использовать его для маскирования. То же можно сказать о разряде b0 числа В. На входы a4 и b4 ИС младшего разряда необходимо подать уровень “1” (выражения (4) и (5)). Младший разряд суммы снимается с выхода S0 сумматора. Несмотря на то, что перенос из младшего разряда поступает с инверсией, мы подаём его непосредственно на вход переноса следующего разряда.
Учитывая свойство самодвойственности, вторые разряды слагаемых a1 и b1 чисел А и В соответственно подадим на входы a4 и b4 ИС, причём на один или оба входа a1, a2 и b1, b2 необходимо подать уровень “0” (выражения (4) и (5)). Так как все три входа этой ИС имеют инверсные переменные, то на выходе реализуется инверсия суммы, однако, если снимать её с выхода S одноразрядного сумматора, то получим прямое значение разряда S1 суммы. Кроме этого, получится инверсия выходного переноса, но поскольку он снимается с инверсного переноса, то фактически реализуется прямой выходной перенос. Дальнейшие связи остальных разрядов осуществляются аналогично.
Функциональное обозначение двухразрядного двоичного сумматора типа ИМ2 ( `82), реализуемого в отечественных сериях 133, К155, КМ155, представлена на рис. 4.
Рис. 4
Структура данной ИС реализуется по следующим уравнениям:
(пользователю не доступен) | (6) |
(структура И-ИЛИ-НЕ-НЕ) | (7) |
(8) | |
(9) |
Выражения (8) и (9) записаны на основании свойства самодвойственности. Инверсия входных разрядов a1 и b1 осуществляется дополнительно встроенными в ИС инверторами.
Как видно из выражений (6)–(9), логическая структура этой ИС соответствует двум младшим разрядам схемы (рис. 3), в которых отсутствует входная логика, реализующая выражения (4) и (5).
Быстродействие многоразрядных (n > 4) сумматоров с последовательным переносом, которые можно построить на рассмотренных выше ИС, ограничено задержкой его распространения, так как формирование сигнала переноса на выходе старшего разряда не может произойти до тех пор, пока сигнал переноса младшего разряда не распространится последовательно через все разряды сумматора.
Параллельный перенос в i-ом разряде многоразрядного сумматора определяется как функция разрядов слагаемых i-го и всех предыдущих младших разрядов и входного переноса. Для реализации этого принципа в каждом двоичном разряде сумматора специально формируются два дополнительных сигнала: функция генерации переноса в данном i-ом разряде Di и функция распространения переноса через данный i-ый разряд Fi. Представим перенос из i-го разряда в виде:
Переключательные схемы
В ЭВМ используются электрические схемы, которые состоят из большого количества переключателей. Переключатель, находясь в замкнутом состоянии ток пропускает, в разомкнутом – не пропускает. Работа таких схем удобно описывается при помощи алгебры логики. В зависимости от состояния переключателя можно регулировать получение или неполучение сигналов на выходах.
Пример реализации логической схемы
Алгоритм реализации:
-
Определим количество переменных данного выражения, значит столько входов будет иметь схема. В данном случае это входы $A, B, C$.
С помощью базовых логических элементов реализуются основные операции в порядке их следования:
I – инверсия переменных $A, B, C$ реализуется логическим элементом «НЕ»;
II – логическое умножение реализуется логическим элементом «И»;
III – логическое сложение реализуется логическим элементом «ИЛИ».
На выходе каждого элемента прописывается логическое выражение, которое реализуется данным элементом, что позволяет осуществить обратную задачу, т.е. по готовой схеме составить логическое выражение, которое реализует данная схема.
В целях максимального упрощения работы компьютера всё многообразие математических операций в процессоре сводится к сложению двоичных чисел. Поэтому главной частью процессора является сумматор, который как раз и обеспечивает такое сложение. Сумматор составляется из базовых логических элементов.
Полусумматор. При сложении двоичных чисел образуется сумма в данном разряде, при этом возможен перенос в старший разряд. Обозначим слагаемые — А и В, перенос — Р и сумму — S. Таблица сложения одноразрядных двоичных чисел с учетом переноса в старший разряд выглядит следующим образом (табл. 3.4).
Таблица 3.4. Таблица сложения одноразрядных двоичных чисел
Из этой таблицы видно, что перенос можно реализовать с помощью операции логического умножения:
Получим теперь формулу для вычисления суммы. Значения суммы более всего совпадают с результатом операции логического сложения (кроме случая, когда на входы подаются две единицы, а на выходе должен получиться ноль).
Нужный результат достигается, если результат логического сложения умножить на инвертированный перенос. Таким образом, для определения суммы можно применить следующую логическую функцию:
Построим таблицу истинности для данной логической функции и убедимся в правильности нашего предположения (табл. 3.5).
Таблица 3.5. Таблица истинности логической функции
Теперь на основе полученных логических формул можно построить из базовых логических элементов схему сложения одноразрядных двоичных чисел.
По логической формуле переноса можно определить, что для получения переноса необходимо использовать логический элемент «И».
Анализ логической формулы для суммы показывает, что на выходе должен стоять элемент логического умножения «И», который имеет два входа. На один из входов подается результат логического сложения исходных величин A v В, т. е. на него должен подаваться сигнал с элемента логического сложения «ИЛИ».
На второй вход требуется подать результат инвертированного логического умножения исходных сигналов , т. е. на второй вход подается сигнал с элемента «НЕ», на вход которого поступает сигнал с элемента логического умножения «И» (рис. 3.7).
Данная схема называется полусумматором, так как реализует суммирование одноразрядных двоичных чисел А и В без учета переноса из младшего разряда.
Рис. 3.7. Полусумматор двоичных чисел
Для сложения многоразрядных двоичных чисел служит сумматор, который составляется из полусумматоров.
Pi = aibi + aipi + bipi = aibi + (ai + bi) pi = Di + Fipi ,
где Di = aibi; Fi = ai + bi . Иногда функция Fi реализуется так: Fi = ai Е bi (докажите справедливость последнего выражения самостоятельно). Смысл функций Di и Fi ясен из следующего числового примера:
Перенос, возникший в младшем разряде D0 = a0b0 = 1.1 = 1, распространяется до разряда с индексом i = 4, а перенос, возникший в разряде с индексом i = 5 : D5 = a5b5 = 1.1 = 1, распространяется до разряда с индексом i = 7.
С учётом вышеизложенного запишем выражения, описывающие структуру 4-разрядного параллельного сумматора с параллельным (быстрым, fast) переносом:
Вентили
Среди логических элементов компьютеров выделяют электронные схемы И, ИЛИ, НЕ, И–НЕ, ИЛИ–НЕ и другие (их называют вентили).
Эти схемы позволяют реализовать любую логическую функцию, которая описывает работу устройств ПК. Обычно вентили имеют $2–8$ входов и $1$ или $2$ выхода.
Для представления двух логических состояний ($1$ и $0$) в вентилях, входные и выходные сигналы имеют разные уровни напряжения. Например, $+3 \ B$ (вольт) для состояния $«1»$ и $0 \ B$ для состояния $«0»$.
У каждого логического элемента есть условное обозначение, выражающее его логическую функцию, но не указывающее на электронную схему, которая в нем реализована. Такой подход реализован для упрощения записи и понимания сложных логических схем.
Готовые работы на аналогичную тему
Работа логических элементов описывается таблицами истинности.
Контрольные вопросы
1. Какие значения будут иметь перенос и сумма при суммировании одноразрядных двоичных чисел, равных 1, и переноса из младшего разряда?
Cкачать материалы урока
Сумматорами называют логические устройства, выполняющие арифметические суммирование кодов двоичного числа. Символическое изображение одноразрядного двоичного сумматора показано на рис.10.29. Сумматор имеет три входа, где - слагаемые одинакового разряда, – слагаемое переноса; на выходе формируется – сумма cлагаемых и – слагаемое переноса в старший разряд.
Функционирование однозарядного сумматора показано в таблице, приведённой на рис.10.30. В этом случае при сложении слагаемых используется перевод десятичных чисел в двоичные числа.
Pиc.10.29. Символическое изображение одноразрядного двоичного сумматора
Рассмотрим пример:
При сложении слагаемых или 0+1+0 получается десятичное число 1. Такому числу соответствует двоичное число 01, при этом Аналогично, 1+1+0 = 2, которому соответствует двоичное число 10, при этом . При сложении чисел 1+1+1 = 3, которому соответствует двоичное число 11, при этом и так далее.
Сумматоры могут быть последовательного и параллельного действия. В сумматорах последовательного действия коды двоичных чисел вводятся в последовательной форме слагаемое за слагаемым, начиная с младшего разряда.
На рис.10.31 изображена схема сумматора последовательного действия, предназначенного для суммирования четырёхразрядных двоичных чисел. Сумматор построен на трёх регистрах сдвига, D-триггере и на одноразрядном сумматоре.
Рис.10.30. Таблица функционирования одноразрядного сумматора
Рис.10.31. Схема сумматора последовательного действия
Функционирование сумматора приведено в таблице рис.10.32, где слагаемое pi для первого разряда всегда равно нулю.
Рис.10.32. Таблица функционирования сумматора
Для ускорения операции сложения используются сумматоры параллельного действия, которые состоят из нескольких однозарядных сумматоров. В таких сумматорах слагаемые поступают одновременно на соответствующие входы однозарядных сумматоров, при этом каждый из однозарядных сумматоров формирует на своих выходах суммы соответствующих разрядов и слагаемые переноса, передаваемых на входы старших разрядов. Схема четырёхразрядного сумматора параллельного действия приведена на рис.10.33.
Триггер
Триггеры и сумматоры состоят из вентилей.
Триггер – важнейшая структурная единица оперативной памяти ПК и внутренних регистров процессора.
Триггер – логическая схема, которая способна хранить $1$ бит информации ($1$ или $0$). Строится на $2$-х элементах ИЛИ–НЕ или на $2$-х элементах И–НЕ.
Самый распространённый тип триггера – $RS$-триггер (Reset/Set), который имеет $2$ входа $S$ и $R$ и два выхода $Q$ и $\bar$. На каждый из входов $S$ и $R$ могут подаваться входные сигналы в виде кратковременных импульсов (рис.3): есть импульс – $1$, нет импульса – $0$.
Рисунок 3. Кратковременный импульс
Pi = aibi + aipi + bipi = aibi + (ai + bi) pi = Di + Fipi ,
где Di = aibi; Fi = ai + bi . Иногда функция Fi реализуется так: Fi = ai Е bi (докажите справедливость последнего выражения самостоятельно). Смысл функций Di и Fi ясен из следующего числового примера:
Перенос, возникший в младшем разряде D0 = a0b0 = 1.1 = 1, распространяется до разряда с индексом i = 4, а перенос, возникший в разряде с индексом i = 5 : D5 = a5b5 = 1.1 = 1, распространяется до разряда с индексом i = 7.
С учётом вышеизложенного запишем выражения, описывающие структуру 4-разрядного параллельного сумматора с параллельным (быстрым, fast) переносом:
Сумматор
Сумматоры широко применяются в арифметико-логических устройствах процессора и отвечают за суммирование двоичных разрядов.
Сумматор – логическая схема, которая способна суммировать 2 одноразрядных двоичных числа с переносом из предыдущего разряда.
Сумматор может находить применение и в других устройствах машины.
Для суммирования двоичных слов длиной от двух бит можно использовать последовательное соединение многоразрядных сумматоров, причём для двух соседних сумматоров выход переноса одного сумматора является входом для другого.
P0 = D0 + F0pвх ,
где P0 — выходной перенос из разряда с индексом i = 0; pвх — входной перенос в разряд с индексом i = 0.
Логические элементы служат основой для создания более сложных цифровых устройств, одним из которых является триггер. Триггер – это целый класс электронных устройств, которые могут длительно находиться в одном из двух устойчивых состояний после прекращения сигнала, меняющего состояние. Состояние выхода триггера определяется не только сигналами на его входах, но и предыдущим состоянием устройства. Таким образом, триггер является простейшей однобитной ячейкой памяти.
RS-триггер
Самый простой триггер можно получить из двух логических элементов 2ИЛИ-НЕ:
Такая схема представляет собой асинхронный RS-триггер.
Он имеет два входа: S (set) – установка, R (reset) – сброс, и два выхода: Q (прямой) и Q с чертой сверху (инверсный, НЕ_Q).
При подаче сигнала логического нуля на оба входа триггера, его выходы будут установлены в произвольное состояние. Допустим, Q = 0, а НЕ_Q =1. Если на вход S подать «1», то состояние выхода Q скачкообразно изменится на «1», а НЕ_Q — на «0». И это состояние будет поддерживаться в независимости от того «0» или «1» подано на вход S, что и является проявлением свойства памяти.
Соответственно, при подаче уровня «1» на вход R выход Q станет «0», а НЕ_Q – «1».
Длительность устанавливающих импульсов может быть очень короткой, и ограничена физическим быстродействием логических модулей, из которых построен триггер.
Ситуация, когда на входах R и S действует высокий уровень, является недопустимой, поскольку при этом схема не может работать корректно. В этом есть недостаток RS-триггера.
RS-триггер также можно построить из двух элементов И-НЕ, такие элементы более распространены:
Установка и сброс триггера на элементах 2И-НЕ, в отличие от предыдущего, производится низким уровнем входного сигнала.
Если к последней схеме добавить еще два вентиля 2И-НЕ, то мы получим синхронный RS-триггер.
Изменение состояния такого триггера производится только при воздействии на вход С (Clock) синхронизирующего (тактового) импульса.
D-триггер
Немного изменив схему синхронного RS-триггера, можно получить D-триггер. (D-delay, задержка). У него только один информационный вход D.
Если на этот вход подать «1», а затем подать импульс на вход C, то на выходе Q будет «1», если на вход подать «0», затем импульс на C, то на выходе Q будет «0». Таким образом, D-триггер осуществляет задержку информации, поступающей на вход.
Если вход D соединить с выходом НЕ_Q, то триггер будет менять свое состояние при каждом изменении состояния входа С от «0» к «1» . При изменении от «1» к «0» состояние триггера меняться не будет. Таким образом, частота выходных импульсов будет вдвое меньше частоты входных импульсов. Такой триггер называется счетным или T-триггером. Делитель частоты используется очень широко в цифровой технике.
Существует разновидность синхронного RS-триггера, не имеющая запрещенной комбинации – JK-триггер. Он имеет три входа: J (вместо R), K (вместо S), и C. Если на оба информационных входа подана «1», то JK-триггер работает как счетный T-триггер с входом C.
Регистр хранения
На триггерах можно строить более сложные цифровые устройства, например такие, как регистры. Регистры предназначены для хранения многобитовой информации, то есть чисел, записанных в двоичном коде.
Рассмотри трех битовый регистр хранения на D-триггерах:
Регистр сдвига
Другой разновидностью регистров является регистр сдвига. Он предназначен для преобразования информации путем ее побитного сдвига в ту или иную сторону. На следующем рисунке приведена схема простейшего регистра сдвига информации вправо (по схеме):
В отличие от регистра хранения выход предыдущего триггера соединен с входом последующего. Информация в виде логического уровня подается на вход первого (крайнего слева) триггера. При воздействии импульса на входе C присутствующая на входе D информация записывается в первый триггер. При подаче второго импульса информация из первого триггера переписывается во второй триггер, а в первый записывается информация, которая в этот момент присутствует на входе D, и так далее. Таким образом, с подачей каждого синхроимпульса информация в регистре сдвигается вправо на 1 разряд.
Сдвиговые регистры используются во многих схемотехнических решениях при построении цифровых устройств, прежде всего для преобразования последовательного кода в параллельный, а также для выполнения арифметических операций (умножения и деления на 2)с двоичными числами, организации линий задержки, формирования импульсов заданной длительности, генерирования псевдослучайных последовательностей (кодов) и т.п.
Счетчик
Еще один класс цифровых устройств, которые можно построить на триггерах – счетчики. Как следует из названия, они осуществляют счет входных импульсов в заданном коде и могут хранить результат.
Простейший счетчик с последовательным переносом можно получить с помощью счетных T-триггеров:
Подачей импульса на вход R счетчик приводится в исходное состояние, когда на выходах Q1-Q3 – уровень логического нуля.
На вход C подаются импульсы для счета. С приходом заднего фронта первого импульса первый (левый) по схеме триггер устанавливается в «1». Если читать код справа налево, то он соответствует единице. Для нашего трехразрядного счетчика это код 001. С приходом второго импульса в «1» переключается второй триггер, а первый переключается в «0». Таким образом, код на выходах счетчика будет 010, что соответствует десятичной цифре 2. Следующий импульс установит код 011, то есть 3. Трехразрядный счетчик может досчитать до кода 111, что соответствует десятичной цифре 7. При этом наступает так называемое переполнение счетчика, и с приходом следующего импульса счетчик обнулится.
Поскольку триггеры счетчика соединены последовательно, то и переключаться они будут также последовательно. Этот процесс отображен на графике, из которого видно, что время задержки переключения tз будет удваиваться и утраиваться. С увеличением числа разрядов задержка может оказаться неприемлемой, что является недостатком счетчиков с последовательным переносом.
Для повышения быстродействия применяются счетчики с параллельным переносом, что достигается одновременной подачей входных импульсов на входы всех триггеров счетчика. Это реализуется с помощью введения в схему логических элементов И:
Из схемы видно, что на вход второго триггера счетный импульс поступит только тогда, когда на выходе первого триггера будет «1», а на третий – когда «1» будет на выходах и первого, и второго триггеров. Очевидно, что с увеличением числа разрядов необходимо увеличивать как число логических элементов И, так и число их входов, что, в свою очередь, является недостатком такого типа счетчиков.
Регистры и счетчики, в свою очередь, могут применяться для построения более сложных цифровых устройств: сумматоров, ОЗУ и ПЗУ (оперативных и постоянных запоминающих устройств), АЛУ (арифметическо-логических устройств), входящих в состав процессоров, и так далее, к все более сложным цифровым устройствам.
Сумматор – это узел, в котором выполняется арифметическая операция суммирования цифровых кодов двух двоичных чисел.
Используя одноразрядные сумматоры можно построить многоразрядные сумматоры.
Основные логические элементы реализуют 3 основные логические операции:
- логическое умножение;
- логическое сложение;
- инверсию (отрицание).
Устройства компьютера, которые выполняют обработку и хранение информации, могут быть собраны из базовых логических элементов, у которых $2$ входа и $1$ выход. К логическим устройствам компьютера относятся группы переключателей, триггеры, сумматоры.
Связь между алгеброй логики и компьютерной техникой также лежит в двоичной системе счисления, которая используется в ЭВМ. Поэтому в устройствах ПК можно хранить и обрабатывать как числа, так и значения логических переменных.
Логический элемент компьютера – это часть электронной схемы, которая выполняет элементарную логическую функцию.
Читайте также: