Регистры, счетчики и сумматоры
При построении ЭВМ широко используются функциональные схемы, обеспечивающие операции хранения и преобразования информации над группами битов (машинными словами). Такие сложные схемы называются узлами. К типовым узлам относят: регистры, счетчики, сумматоры.
Регистром называется узел, предназначенный для приема, временного хранения и выдачи машинного слова. Регистры могут также использоваться для некоторых операций преобразования данных: для сдвига кода числа (слова) на определенное число разрядов влево или вправо, для преобразования последовательного кода числа в параллельный и наоборот и т.д.
Регистры представляют собой совокупность триггеров, число которых соответствует числу разрядов в слове, и вспомогательных схем, обеспечивающих выполнение различных операций над словом.
На рис.3.14 показана функциональная схема n-разрядного регистра, построенного на RS-триггерах.
Рис. 3.14. Схема регистра на RS-триггерах: а - функциональная схема; б - условное обозначение регистра
Информация в регистр записывается под действием сигнала "Запись". Предварительно перед установкой кода на регистр обычно на все разряды R подается сигнал сброса. На рисунке показано, что подключение к входам R дополнительных инверторов позволяет избежать этой предварительной операции. Здесь на вход каждого разряда поступает парафазный код двоичной цифры (xi - на вход Si и хi - на вход Ri), т.е. прямое и инверсное значения кода подаются в противофазе.
На рис.3.15 изображена функциональная схема того же регистра, дополненная логическими элементами для преобразования хранящегося на регистре кода.
Рис. 3.15. Схема выдачи информации из регистра
По сигналу "Прямой код" с регистра считывается прямой код хранящихся данных, а по сигналу "Обратный код" - инверсное значение каждого разряда слова. Если оба эти сигнала поступают одновременно, то считывается парафазный код хранящейся информации. Более сложная логика на входе и выходе запоминающих элементов позволяет строить сдвигающие регистры.
Счетчик – узел ЭВМ, позволяющий осуществлять подсчет поступающих на его вход сигналов и фиксацию результата в виде многоразрядного двоичного числа. Счетчик, состоящий из n-триггеров, дает возможность подсчитывать до N сигналов, связанных зависимостью: n = log2 N или N = 2n.
В ЭВМ счетчики используются для подсчета импульсов, сдвигов, формирования адресов и т.д. Функционально различают суммирующие, вычитающие, реверсивные счетчики.
В основу построения любого счетчика положено свойство Т-триггеров изменять свое состояние при подаче очередного сигнала на счетный вход Т. На рис.3.16 показана схема трех разрядов суммирующего счетчика, построенного на Т-триггерах. Логика его работы представлена в табл. 3.10.
Таблица 3.10. Таблица переходов трехразрядного счетчика
Вход х | Состояние | ||||||||
Режим | |||||||||
Хранение Счет |
Рис. 3.16. Организация счетчика на Т-триггерах: а - функциональная схема; б - временная диаграмма
Сумматор - узел ЭВМ, в котором суммируются коды чисел. Как правило, любой сумматор представляет собой комбинацию одноразрядных сумматоров. Сумматоры различают по принципам построения: накапливающего типа и комбинационного типа.
Сумматоры накапливающего типа строят на сложных JKRS-триггерах, дополняя их выходы достаточно сложными схемами формирования и распространения переносов. Процесс сложения при этом осуществляется поэтапно. Сначала на триггерах сумматора фиксируется код первого операнда, затем на счетные коды разрядов подается код второго операнда. По зависимостям (3.3) на каждом триггере формируются одноразрядные суммы и значения переносов между разрядами. Учет возникающих переносов задерживает формирование окончательного результата суммы и может требовать дополнительных тактов сложения. Из-за этого многоразрядные схемы сумматора накапливающего типа используются достаточно редко.
Более часто для построения сумматоров используются сумматоры комбинационного типа. Обычно у такого сумматора на входе и выходе имеются регистры для хранения и преобразования кодов операндов и результата (рис.3.17).
Рис. 3.17. Упрощенная схема сумматора ЭВМ
Регистр Рг1 предназначается для хранения кода первого операнда, регистр Рг2 - для хранения кода второго операнда. Сумматор по сигналам из устройства управления настраивается на выполнение определенной машинной операции, соответствующей коду операции, находящемуся в коде команды. Результат выполняемой операции фиксируется в регистре Рг3. При необходимости этот результат может использоваться для продолжения вычислений. Для этого предусматривается возможность перезаписи содержимого регистра Рг3 на Рг1 в качестве значения одного из операндов при выполнении очередной операции.