Скачиваний:
153
Добавлен:
16.07.2022
Размер:
11.41 Mб
Скачать

1 Матричные делители

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

1.1 Матричные устройства

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

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

1.2 Алгоритм деления без восстановления остатка

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

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

Рисунок 1.1 – Пример выполнения операции деления

Перечислим этапы алгоритма деления без восстановления остатка:

  1. вычитание прямого значения делителя из старших разрядов делимого;

  2. результат вычитания сдвигается влево, а старший разряд частичного остатка передаётся в буферную ячейку для передачи в следующую строку на мультиплексор;

  3. в младший разряд уменьшаемого передаётся следующий разряд делимого;

  4. в зависимости от старшего разряда сдвинутого частичного остатка инициализируется вычитание прямого (при единице) или инверсного (при нуле) значения делителя;

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

Для вышеописанного выполнения алгоритма деления на рисунке 1.1 [2, 3] приведён пример деления двоичных чисел.

На рисунке 1.2 [2, 3] приведена структурная схема, соответствующая вышеописанному примеру выполнения деления (рисунок 1.1). Для упрощения восприятия в схеме отсутствует входные регистры и буферные каскады для более просто восприятия. Вторая глава ВКР данную схему рассматривает в полном формате.

1.3 Конвейерные делители

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

Быстродействие – это временной показатель прохода информации, а производительность – это количественный прохода информации за единицу времени. То есть одна схема может работать медленнее, но пропускать больше информации, и тогда за один и тот же промежуток времени, две схемы могут выдать одинаковое количество обработанной информации.

Для неконвейированного делителя достигается максимальное быстродействие, так как процесс вычисления определяется движением зарядов по проводнику, что ускорить обычно не получается [9]. Но после прихода входных сигналов, схема начинает работать: переключаются транзисторы, проводники передают сигналы, ёмкости перезаряжаются, но не вся схема работает одновременно. Не работает, например, та часть которая ждёт сигнал от предыдущей части. Из-за этого мы наблюдаем, что какие-то части ещё не начинали работу, а какие-то уже завершили её, и у нас образуется простой схемы. В эти моменты схема просто хранит в себе промежуточный результат.

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

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

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

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

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

Рисунок 1.2 – Структурная схема матричного делителя