3.4. Узлы ЭВМ

При построении ЭВМ широко используются функциональные схемы, обеспечивающие операции хранения и преобразования информации над группами битов (машинными словами). Такие сложные схемы называются узлами. К типовым узлам относят:

  • регистры,
  • счетчики,
  • сумматоры.

Все они также принадлежат к регулярным структурам, состоящим из одинаковых параллельно работающих одноразрядных схем.

 Регистры

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

  • для сдвига кода числа (слова) на определенное число разрядов влево или вправо,
  • для преобразования последовательного кода числа в параллельный и наоборот;
  • для подсчета синхроимпульсов и т.д.

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

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

На рисунке ниже показана функциональная схема n-разрядного регистра, построенного на RS-триггерах. Информация в регистр записывается под действием сигнала «Запись». Предварительно перед установкой кода на регистр обычно на все разряды R подается сигнал сброса. На рисунке показано, что подключение к входам R дополнительных инверторов позволяет избежать этой предварительной операции. Здесь на вход каждого разряда поступает парафазный код двоичной цифры (xi — на вход Si и хi - на вход Ri), т.е. прямое и инверсное значения кода подаются в противофазе.

Схема регистра на RS-триггерах:  а - функциональная схема; б - условное обозначение регистра
Схема регистра на RS-триггерах:
а — функциональная схема; б — условное обозначение регистра

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

Схема выдачи информации из регистра
Схема выдачи информации из регистра

Регистр хранения – внутреннее запоминающее устройство процессора или внешнего устройства, предназначенное для временного хранения обрабатываемой или управляющей информации.

Регистры представляют собой совокупность триггеров, количество которых равняется разрядности регистра, и вспомогательных схем, обеспечивающих выполнение некоторых элементарных операций. Набор этих операций, в зависимости от функционального назначения регистра, может включать в себя одновременную установку всех разрядов регистра в «0», параллельную или последовательную загрузку регистра, сдвиг содержимого регистра влево или вправо на требуемое число разрядов, управляемую выдачу информации из регистра (обычно используется при работе нескольких схем на общую шину данных) и т.д.

Регистры хранения используются для приема, хранения и выдачи многоразрядного кода. Они представляют собой совокупность одноступенчатых триггеров (как правило, D-типа) с общим входом синхронизации. Иногда в регистре имеется также и общий вход асинхронной установки всех триггеров в «0».

Структура четырехразрядного регистра хранения  с асинхронным входом установки в «0»
Структура четырехразрядного регистра хранения
с асинхронным входом установки в «0»
Условно-графическое обозначение четырехразрядного регистра хранения с асинхронным входом установки в «0»
Условно-графическое обозначение четырехразрядного регистра хранения с асинхронным входом установки в «0»

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

Регистры сдвига строятся на двухступенчатых триггерах. Ввод информации в данный регистр – последовательный через внешний вход D0. Регистр имеет вход асинхронной установки всех разрядов в «0». Для наглядности каждый двухступечатый регистр представлен двумя одноступенчатыми с соответствующей организацией синхронизации первой и второй ступеней. Пунктиром обозначен реальный двухступенчатый триггер.

Условно-графическое обозначение четырехразрядного регистра сдвига с асинхронным входом установки в «0»
Условно-графическое обозначение четырехразрядного регистра сдвига с асинхронным входом установки в «0»

Работа регистра сдвига в каждом периоде сигнала синхронизации разбивается на две фазы: при высоком и при низком значении синхросигнала:

  • При высоком уровне синхросигнала проводится запись значения выхода (i–1)-го разряда регистра в первую ступень i-го разряда. Вторая ступень каждого разряда сохраняет свое прежнее значение. В этой фазе состояние первой ступени i-го триггера повторяет состояние второй ступени (i – 1)-го триггера. Вторые ступени каждого триггера, а, следовательно, и выходы регистра в целом, остаются неизменными.
  • При низком уровне синхросигнала значение, записанное в первой ступени каждого триггера, перезаписывается в его вторую ступень. Запись в первую ступень триггера запрещена. В этой фазе состояния первой и второй ступеней каждого триггера становятся одинаковыми.
  • Поступление сигнала R = 0 вне зависимости от значения сигнала на входе синхронизации С и сигнала на входе D0 устанавливает все разряды регистра в нулевое состояние.

 

Структура регистра сдвига
Структура регистра сдвига
Временная диаграмма работы регистра сдвига
Временная диаграмма работы регистра сдвига

Счетчик узел ЭВМ, позволяющий осуществлять подсчет поступающих на его вход сигналов и фиксацию результата в виде многоразрядного двоичного числа. Счетчик, состоящий из n-триггеров, дает возможность подсчитывать до N сигналов, связанных зависимостью:

n = log2 N или N = 2n.

В ЭВМ счетчики используются для подсчета импульсов, сдвигов, формирования адресов и т.д. Функционально различают:

  • суммирующие,
  • вычитающие,
  • реверсивные счетчики.

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

В основу построения любого счетчика положено свойство Т-триггеров изменять свое состояние при подаче очередного сигнала на счетный вход Т. На рисунке 3.30 показана схема трех разрядов суммирующего счетчика, построенного на Т-триггерах. Логика его работы представлена в таблице:

Таблица переходов трехразрядного счетчика

Вход

х

Состояние

000

001 010 011 100 101 110 111

Режим

0

1

000

001

001

010

010

011

011

100

100

101

101

110

110

111

111

000

Хранение

Счет

Организация счетчика на Т-триггерах:  а - функциональная схема; б - временная диаграмма
Организация счетчика на Т-триггерах:
а — функциональная схема; б — временная диаграмма

Сумматор - узел ЭВМ, в котором суммируются коды чисел. Как правило, любой сумматор представляет собой комбинацию одноразрядных сумматоров. Сумматоры различают по принципам построения:

  • накапливающего типа;
  • комбинационного типа.

Сумматоры накапливающего типа строят на сложных JK и/или RS-триггерах, дополняя их выходы достаточно сложными схемами формирования и распространения переносов. Процесс сложения при этом осуществляется поэтапно. Сначала на триггерах сумматора фиксируется код первого операнда, затем на счетные коды разрядов подается код второго операнда. На каждом триггере формируются одноразрядные суммы и значения переносов между разрядами. Учет возникающих переносов задерживает формирование окончательного результата суммы и может требовать дополнительных тактов сложения. Из-за этого многоразрядные схемы сумматора накапливающего типа используются достаточно редко.

Более часто для построения сумматоров используются сумматоры комбинационного типа. Обычно у такого сумматора на входе и выходе имеются регистры для хранения и преобразования кодов операндов и результата:

Упрощенная схема сумматора ЭВМ
Упрощенная схема сумматора ЭВМ

Регистр Рг1 предназначается для хранения кода первого операнда, регистр Рг2 — для хранения кода второго операнда. Сумматор по сигналам из устройства управления настраивается на выполнение определенной машинной операции, соответствующей коду операции, находящемуся в коде команды. Результат выполняемой операции фиксируется в регистре РгЗ. При необходимости этот результат может использоваться для продолжения вычислений. Для этого предусматривается возможность перезаписи содержимого регистра РгЗ на Рг1 в качестве значения одного из операндов при выполнении очередной операции.

Арифметико-логическое устройство (АЛУ)

Классическая ЭВМ состоит из трех основных устройств:

  • арифметико-логического устройства,
  •  устройства управления,
  • запоминающего устройства.

Рассмотрим особенности организации арифметико-логического устройства.

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

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

Пусть операнды имеют вид:

[X]пк = x0x1x2…xn

[Y]пк = y0y1y2…yn

где x0, y0 – знаковые разряды.

Операция умножения чисел с фиксированной запятой, заданных в прямом коде, со старших разрядов множителя выполняется по следующей формуле:

Sign Z = Sign X  Sign Y

|Z| = y1•|X|•2-1+ y2•|X|•2-2 +…+yn•|X|•2-n

[X]пк = 0.1101 ; Sign X = 0

[Y]пк = 1.1011 ; Sign Y = 1

Sign Z = 0  1 = 1

|X| = 0. 1 1 0 1

|Y|  = 0. 1 0 1 1

          y1y2y3y4

        +0.00000000  |Z| = 0

y1 = 1   0.01101000  1•|X|•2-1

        +0.01101000  |Z| = |Z| + |X|•2-1

y2 = 0   0.00000000  0*|X |•2-2

        +0.01101000  |Z| = |Z| + 0

y3 = 1   0.00011010  1•|X|•2-3

        +0.10000010  |Z| = |Z| + |X|•2-3

y4 = 1   0.00001101  1•|X|•2-4

         0.10001111  |Z| = |Z| + |X|•2-4

Алгоритм операции умножения чисел с фиксированной запятой, заданных в прямом коде, со старших разрядов множителя
Алгоритм операции умножения чисел с фиксированной запятой,
заданных в прямом коде, со старших разрядов множителя

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

Исходя из этого, определим состав оборудования, необходимого для реализации АЛУ заданного типа для n = 4.

Таблица 3.10 – Состав оборудования для АЛУ

Схема

Разрядность Функции Управляющий сигнал
Регистр модуля множимого RGX 8 Загрузка. Сдвиг в сторону младших разрядов. УС1 УС2

Регистр модуля множителя RGY

4 Загрузка. Сдвиг в сторону старших разрядов. УС3 УС4
Регистр модуля результата RGZ

8

Загрузка. Установка в «0».

УС5 УС6

Триггер знака множимого TX

Загрузка УС7
Триггер знака множителя TY Загрузка

УС8

Триггер знака результата TZ

Загрузка

УС9

АЛУ 8 Комбинационный сумматор

Комбинационные схемы Получение на входе АЛУ сигналов «0» или RGX в зависимости от значения yi

Структурная схема АЛУ для выполнения операции умножения со старших разрядов множителя чисел, заданных в прямом коде
Структурная схема АЛУ для выполнения операции умножения со старших разрядов множителя чисел, заданных в прямом коде
Временная диаграмма управляющих сигналов
Временная диаграмма управляющих сигналов

Работа схемы

Такт 1. Загрузка модулей операндов в регистры RGX, RGY, а их знаков – в триггеры TX и TY. Сброс в «0» регистра результата RGZ.

Такт 2. Запись знака результата в триггер TZ.

Такт 3. Сдвиг регистра RGX на один разряд вправо. Через время, равное задержке на переключение регистров и комбинационных схем, на выходе комбинационного сумматора и, следовательно, на входе регистра RGZ устанавливается результат 0+y1• |X|•2-1.

Такт 4. Загрузка RGZ: |Z|=|Z|+y1• |X|•2-1.

Такт 5. Сдвиг RGX на 1 разряд вправо: |X| = |X|•2-1.

Сдвиг RGY на 1 разряд влево: i=i+1.

Устройство управления проверяет условие окончания операции: i > n.

Такты (6,7), (8,9), (10,11) … Повтор действий тактов (4,5) с анализом других значений yi. В такте 10 в регистре RGZ формируется модуль произведения. Такт 11 используется лишь для определения условия окончания операции умножения.

Устройство управления

Компьютер условно можно разделить на два основных блока:

  1. Операционный.
  2. Управляющий.

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

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

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

Например, в спроектированном АЛУ для умножения чисел в первом такте выполняются следующие микрооперации: TX=0, TY=0, RGX=|X|, RGY=|Y|, RGZ=0.

Совокупность микроопераций, выполняемых в одном такте, называется микрокомандой (МК).

Если все такты должны иметь одну и ту же длину, а именно это имеет место при работе компьютера, то она устанавливается по самой продолжительной микрооперации.

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

Например, микропрограмму образует набор микрокоманд для выполнения команды умножения.

Устройство управления предназначено для выработки управляющих сигналов, под воздействием которых происходит преобразование информации в арифметико-логическом устройстве, а также операции по записи и чтению информации в/из запоминающего устройства.

Устройства управления делятся на:

  • УУ с жесткой, или схемной логикой;
  • УУ с программируемой логикой (микропрограммные УУ).

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

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

Схемное устройство управления

Устройство управления схемного типа состоит из:

  • датчика сигналов, вырабатывающего последовательность импульсов, равномерно распределенную во времени по своим шинам (рисунок 3.36) (n — общее количество управляющих сигналов, необходимых для выполнения любой операции; m — количество тактов, за которое выполняется самая длинная операция);
  • блока управления операциями, осуществляющего выработку управляющих сигналов, то есть коммутацию сигналов, поступающих с ДС, в соответствующем такте на нужную управляющую шину;
  • дешифратора кода операций, который дешифрирует код операции команды, присутствующей в данный момент в регистре команд, и возбуждает одну шину, соответствующую данной операции; этот сигнал используется блоком управления операциями для выработки нужной последовательности управляющих сигналов.
Функциональная схема схемного устройства управления
Функциональная схема схемного устройства управления
Временная диаграмма работы датчика сигналов
Временная диаграмма работы датчика сигналов

Датчик сигналов обычно реализуется на основе счетчика с дешифратором или на сдвиговом регистре.

Датчик сигналов на основе счетчика с дешифратором

Схема датчика сигналов на основе счетчика с дешифратором
Схема датчика сигналов на основе счетчика с дешифратором
Временная диаграмма работы датчика сигналов на основе счетчика с дешифратором
Временная диаграмма работы датчика сигналов на основе счетчика с дешифратором

Датчик сигналов на сдвиговом регистре

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

3.44
Схема датчика сигналов на основе регистра сдвига
Временная диаграмма работы датчика сигналов на основе регистра сдвига
Временная диаграмма работы датчика сигналов на основе регистра сдвига

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

Структурная схема микропрограммного устройства управления

Функциональная схема микропрограммного устройства управления  (УСi - управляющие сигналы, вырабатываемые устройством управления)
Функциональная схема микропрограммного устройства управления
(УСi — управляющие сигналы, вырабатываемые устройством управления)

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

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

Микропрограмма выполнения операции умножения

Адрес МК

УС1 УС2 УС3 УС4 УС5 УС6 Сигнал записи в РК Адрес следующей МК

300

1 0 1 0 0 1 0 301
301 0 0 0 0 1 0 0

302

302

0 1 0 1 0 0 0 303
303 0 0 0 0 1 0 0

304

304 0 1 0 1 0 0 1

Х

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

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