birmaga.ru
добавить свой файл

1

УДК 621.382(06) Микроэлектроника




С.А. НИКОЛКО

НИИ системных исследований РАН, Москва
СОВМЕЩЁННЫЙ БЛОК ДЕЛЕНИЯ И ВЫЧИСЛЕНИЯ КВАДРАТНОГО КОРНЯ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ ДВОЙНОЙ ТОЧНОСТИ
В статье описаны трудности, вставшие перед автором во время добавления в блок деления функции вычисления квадратного корня.
В настоящее время в НИИСИ РАН разрабатывается 64 разрядный RISC процессор К3. Перед автором была поставлена задача - добавить в уже имеющийся блок деления [1] функцию вычисления квадратного корня. Объединение этих двух вычислителей в один блок обусловлено однотипностью алгоритма их работы.

Техническое задание:




Разрядность операндов

53 бита

Выполняемые команды

деление, квадратный корень

Алгоритм работы

SRT radix 4, цифровой набор {-3,…3}

Быстродействие

4 бита за такт

Рабочая частота

100Мгц (10нс)

Технология

CMOS, 0,35мкм, 3,3В

Расчётные условия

наихудший случай, топология

Отличие алгоритма деления [1] от алгоритма вычисления квадратного корня [2] заключается в том, что из остатка мы вычитаем не (GuessD), а (Guess2+GuessQ), где Guess – предположение о двух следующих битах результата со знаком, D – делитель, Q – результат в текущем такте.

Guess может принимать значения {-3, -2, -1, -0, 0, 1, 2, 3}. Критическим местом в этой формуле является умножение на 3. В блоке деления использовался тот факт, что делитель не меняется во время работы и 3D подсчитывается один раз в “Setup” такте. Для квадратного корня так сделать не получиться, так как Q меняется во время работы. Поэтому для вычисления 3D используется “преобразование на лету”.

Критический блок SRT_Guess, задержка на котором составляет 4200 пс, состоит из блока предсказания Guess, сумматора R_Short и мультиплексора. Основное увеличение задержки при добавлении функции квадратного корня произошло из-за усложнения блока предсказания, теперь он содержит две функции и мультиплексор. Задержка на сумматоре R_Short осталась такой же.

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

Ещё одной проблемой стало то, что мультиплексор является блоком ручного синтеза, то есть, написан с помощью элементов библиотеки и синтезатору запрещено его менять. У триггера Guess есть прямой и инверсный выходы. Вместо того чтобы менять местами входы мультиплексора и равномерно нагружать прямой и инверсный выходы триггера Synopsys design compiler нагрузил только прямой выход триггера. Эту проблема тоже была решена вручную.

После синтеза топологии была получена указанная в ТЗ рабочая частота 100МГц, с запасом 70 пс.

Список литературы
1. Николко С.А. Реализация алгоритма деления чисел с плавающей запятой двойной точности //Электроника, микро – и наноэлектроника. Сборник научных трудов. М.: МИФИ, 2004.- С.209-212

2. Square root theory - http://www.dattalo.com/technical/theory/sqrt.html




______________________________________________________________________

ISBN 5-7262-0555-3. НАУЧНАЯ СЕССИЯ МИФИ-2005. Том 1