0-7803-7057-0/01/$10.00 ©2001 IEEE АСИНХРОННЫЕ УМНОЖИТЕЛИ СО СЧЕТЧИКАМИ С ПЕРЕМЕННОЙ ЗАДЕРЖКОЙ (Asynchronous Multipliers with Variable-Delay Counters) Gianluca Cornetta Computer Architecture Dept., Universitat Polit`ecnica de Catalunya, 08034 Barcelona— Spain E-mail: cornetta@ac.upc.es Jordi Cortadella Software Dept., Universitat Polit`ecnica de Catalunya, 08034 Barcelona—Spain E-mail: jordic@lsi.upc.es Эта работа была частично поддержана Ministry of Education Испании под CICYT, TIC 980410, ACiD-WG (ESPRIT-21949) и Intel Corporation. Перевод, техническое и литературное редактирование Гринфельд Ф.И., ИПИ РАН Резюме Хотя умножение - интенсивно изучаемое арифметическое действие, и для него есть много быстрых алгоритмов и реализаций, оно все еще является одним из главных узких мест многих цифровых систем, требующих интенсивных и быстрых вычислений. Эта статья представляет новый проектный подход, основанный на известном алгоритме Baugh и Wooley, в частности обращающемся к асинхронным реализациям, и это может быть легко отображено в схеме VLSI. Эта техника применялась к устройству быстродействующего умножителя с переменной задержкой и дала результат более быстрый, чем другие синхронные и асинхронные реализации. 1. Введение Умножение - существенно медленная операция, так как для получения окончательного результата должно быть сложено большое количество частичных продуктов. Обычные методы ускорения умножения стремятся для уменьшения времени выполнения сократить число частичных продуктов. Это может быть достигнуто кодированием умножителя [4] или использованием параллельных счетчиков [10]. Реализация алгоритма, предлагаемого в этой статье, инспирирована [7], но, в отличие от [7], время его выполнения зависит от данных. Идея путей данных с переменным временем выполнения уже применялась к реализации некоторых арифметических операций типа деления и извлечения квадратного корня [18, 9], сложения [11, 15] и умножения [13], а общий метод синтеза конвейеризованных путей данных с переменной задержкой был описан в [3]. Например умножитель, описанный в [13] - двумерное множество полных сумматоров с двумя возможными задержками. Определяет задержку ряда множества соответствующий бит умножителя. Этот проектный подход ограничивает выполнение только массивами по основанию 2. 2 Время вычислений, зависимых от данных, определяется функцией предположения, как предложено в [9]. Однако в этом случае не нужно изменять время алгоритма, чтобы параллельно выполнять предположение, обнаружение ошибки и коррекцию. Кроме того, в отличие от [13], архитектура, описанная в этой статье, не нуждается в сумматоре на последней стадии, так как цифры произведены в избыточной форме, начиная со старшей, и преобразование в неизбыточную форму может быть выполнено "на ходу" [12]. Синхронизация достигается посредством кодирования битов данных по двум проводам [6]. Это подразумевает использование дифференциальной логики. Мы хотим выполнять основные ячейки c использованием элементов CPL [2]. Использование дополнительных элементов транзистора прохода особенно требует применений с низким энергопотреблением. Кроме того, CPL может быть быстрее, чем логика conventionalCMOS. Однако уменьшенная амплитуда выходного напряжения требует использования буферов для получения полной амплитуды выходного напряжения. Кроме того, дополнительный выход, нужный для реализации двухпроводного протокола, требует дополнительных транзисторов и ведет к использованию большей площади по сравнению со стандартным CMOS. Как и в [7], предлагаемая схема умножения базируется на триангулярном множестве счетчиков с переменной задержкой. При выполнении вычислений, зависимых от данных, время выполнения – переменное. Зависимость от данных получается с помощью функции предположения, которая пробует предсказывать результат, ассимилируя уменьшенное число входных битов. Это ведет к ускорению выполнения. Однако, поскольку выход счетчика предположительный, он может быть неправильным, и тогда необходима коррекция результата. Предложенный подход лучше других подобных реализаций тем, что в нашем случае предсказание, обнаружение и коррекция ошибки проходят параллельно, и поскольку функция обнаружения ошибки выполняется быстрее, чем функция предположения, мы можем активизировать стадию коррекции до выдачи предсказанного значения. Поэтому в случае ошибки предсказания логика коррекции не даст издержек времени выполнения. Это ведет к высоким скоростям выполнения сравнительно с другими реализациями. Остальная часть статьи организована так: в разделе 2 мы описываем выполнение стандартного умножителя, основанного на параллельных счетчиках, и выделяем различия между этим стандартным выполнением и предложенной схемой умножения. В разделе 3 даны детали выполнения. В разделе 4 наш проект сравнивается с другими синхронными и асинхронными проектами. Наконец, в разделе 5 даются некоторые заключения. 2. Проект умножителей массивов на базе параллельных счетчиков В этом разделе мы имеем дело с схемой умножения, основанной на параллельных счетчиках. Использование счетчиков или компрессоров позволяет уменьшить время выполнения умножения, так как уменьшается общее число суммируемых частичных продуктов. Опишем сначала общую архитектуру умножителя массивов, основанного на параллельных счетчиках и осуществлении алгоритма Baugh-Wooley. Затем будем говорить о проектном подходе, которым предлагаем производить вычисления с временем, зависимым от данных. Таким образом, мы представим показатель производительности, используемый для оценки проекта, и сосредоточим внимание на некоторых важных проблемах проекта, а также на проекте счетчиков с переменным временем выполнения. 3 2.1. Основная схема умножения Рисунок 1 показывает архитектуру умножителя 8 8 [7], который осуществляет продукт A B с A (a7 , a6 ,...a0 ) , B (b7 , b6 ,...b0 ) и ai , bi {0,1} , используя алгоритм BaughWooley [1]. Топология массива – триангулярная, так что старшая и младшая половины продукта могут вычисляться параллельно. Старшие pi цифр результата генерируются в избыточной форме с хранением переноса и питают устройство с преобразованием «на ходу»(OTFC – on-the-fly conversion), которое работает параллельно с умножителем. Устройство OTFC преобразует результат из избыточного в обычное представление [12]. Линия разрыва отделяет часть умножителя с переменной задержкой от логики интерфейса к устройству OTFC и от логики, которая генерирует младшую часть результата. Каждый элемент множества – параллельный счетчик (m, n) [10], арифметическая схема с m битами входа веса 2w и n выходами (n [log 2 (m 1)]) с весами от 2w до 2w+n-1, которая представляет арифметическую сумму входных битов. Счетчики широко используются в умножении массивов, так как позволяют уменьшить общее число суммируемых частичных продуктов, сокращая, таким образом, время выполнения алгоритма. Рисунок 1. Выполнение множества умножителя 8 8 На рисунке 1 (3, 2)b и (2, 3, 3) обозначают двоичный полный сумматор и двухбитный полный сумматор соответственно. Каждая избыточная цифра pt умножителя b b составлена из log 2 r 1 битов. Избыточная i-тая цифра по основанию 4 pi формируются тремя битами: два из них мы обозначаем si ,1 и ci ,1 с весом 2 2b2i 1 , а третий – c i , 0 с весом 2 2b 2i . Ассимиляция этих битов производит pi [0,5] , который должен быть преобразован «на ходу» в неизбыточную цифру с основанием 4. Алгоритм OTFC подробно описан в [8] и получен из описания в [7]. 2.2. Критерии площади и времени выполнения Проекты реализованы с использованием набора полностью заказных ячеек CMOS CPL. Задержки и площадь представлены как множество задержек и площадей двухвходовых ячеек XOR-XNOR. Чтобы сделать моделирование реальным, были удалены паразитные сопротивления и емкости, и при принятии плана расположения была оценена нагрузка RC случая, худшего с точки зрения монтажа [14]. Была также оценена площадь трассировки с шагом 5 между двумя смежными проводами METAL I и с учетом ширины провода 2 . 4 2.3. Получение задержек, зависящих от данных Мы предлагаем умножитель, который производит результат с сокращенной задержкой [3]. Зависимость от данных достигается с помощью функции предсказания. Для простоты рассмотрим случай счетчиков (5, 3) с прямым расширением на другие типы счетчиков. Счетчик (5, 3) имеет пять входов и три выхода; пусть y = (y4;:::; y0) – входной вектор, z = (z2; z1; z0) – выходной вектор. Чтобы сократить время выполнения, мы хотим вычислять сумму, ассимилируя уменьшенное число битов. В случае счетчика (5, 3) мы используем биты (y4; y3; y2) для предсказания результата и биты (y1; y0) для обнаружения и коррекции ошибки. Мы можем определить функцию предсказания как: Fp(y4; y3; y2) = 4 i 2 yi , где – предсказание значения суммы y1+y0 отброшенных битов. Предположительная сумма получается по статистическому распределению значений суммы y1 + y0. Поскольку 0 y1 y0 2 , наша цель находится в небольшом интервале [ 1; 2], чтобы: 1) максимизировать P( 1 y1 y0 2 ) ; 2) получить быструю и простую реализацию. К сожалению, эти требования взаимно исключаются: чем выше число правильных предсказаний, тем сложнее функция предсказания. Следовательно, нужно найти компромисс между числом правильных предсказаний и сложностью аппаратуры. В [8] было показано, что при однородном распределении операндов вероятность P(yi = 0) для счетчиков первого и второго ряда умножителя 8 8 на рисунке 1 – та же, что указана в таблице 1. Согласно этим значениям мы нашли, что P( yi y 0 1) 0,9 для счетчиков первых двух рядов [8]. Таким образом, очень хорош был бы выбор 1 =0 и 2 1. Это также означает, что вероятна, чем 4 y или i 2 i 4 i 2 4 i 0 yi более yi 1. Следовательно, с каждой комбинацией (y4; y3; y2) мы можем ассоциировать два возможных значения, а именно 4 i 2 yi или 4 i 2 yi 1 (более подробно показано в разделе 2.4). Эта более высокая степень свободы позволяет нам синтезировать функции предсказания с очень высоким числом правильных предсказаний и коротким временем выполнения (будет показано в следующем разделе). Моделирование показало, что P( yi y 0 1) 0,9 также для счетчиков (5, 3) больших умножителей. Ряд 1 2 P(y1 = 0) 0,75 0,75 P(y0 = 0) 0,75 0,984 Таблица 1. Вероятности отброшенных битов для счетчиков (5,3) 2.4. Счетчики с переменной задержкой На рисунке 2 изображена возможная реализация счетчиков (5, 3). Это не та реализация, что используется здесь. Это объясняется легкостью описания современного подхода. В схеме, которая напоминает сумматор условных сумм [16], все возможные значения сумм вычисляются в битах параллельного использования y4, y3; y2, при том что биты y1 и y0 используются для выбора правильного значения. Предложенная схема очень похожа 5 на показанную на рисунке 2, но вычисляются только наиболее вероятные значения сумм. Этот выбор делается согласно статистическим соображениям. Поскольку вычисляются не все возможные суммы, то выполненное в действительности - предположение результата, и, следовательно, при неправильном предсказании может быть необходима коррекция. Рисунок 2. Возможная реализация счетчика (5, 3) Так как этот класс счетчиков представляет поведение с переменной задержкой, мы называем их счетчиками с переменной задержкой (VDC – variable delay counter). 2.4.1. Булевы соотношения для быстрого предсказания Рассмотрим случай VDC (5; 3). Предсказание выполняется функцией F ( y 4 , y3 , y 2 ) i 2 yi , где ( y 4 , y3 , y 2 ) – функция, возвращающая такое p 4 целочисленное значение, что [0,1] . Это означает что для каждой комбинации (y4; y3; y2) мы можем выбирать между двумя предсказуемыми значениями, а именно ассоциировать 4 4 F p ( y 4 , y 3 , y 2 ) с i 2 yi или с i 2 yi 1; это может быть определено с использованием Булевых соотношений [5]. Булевы соотношения позволяют более высокую степень свободы во время синтеза, так как разрешают ассоциировать с каждой комбинацией входных переменных Булевой функции f несколько достоверных выходных значений. Среди всех возможных выходных значений выбирается производящее f с самой простой реализацией. Однако "классический" подход к предсказанию и коррекции, как в [9], не намного улучшает среднее время выполнения, поскольку в каждый момент времени предсказывается только одно значение, и степень правильных предсказаний не может быть достаточно высока. Но если мы ожидаем вычисления значений, не предсказанных Fp, посредством других функций, работающих параллельно, то могут быть два предсказуемых значения одновременно. Это приведет к более высокой скорости правильных предсказаний и, следовательно, к меньшей средней задержке счетчика. Эта задача выполняется функциями Fp1 ( y 4 , y3 , y 2 ) i 2 yi 1 и F 4 идентифицировать функцию p 1 ( y 4 , y3 , y 2 ) i 2 yi 1 . Кроме того, необходимо ( y 4 , y3 , y 2 ) 4 со значением, предсказанным функцией F ( y 4 , y 3 , y 2 ) , чтобы выполнить выбор из предсказанных значений и коррекцию в случае p неправильного предсказания. Правильный выбор 1 и 2 критичен, так как определяет: 1) ( 2 - 1 )+1 – число возможных выходных комбинаций Fp, которые могут ассоциироваться с каждой комбинацией входных переменных посредством Булевых соотношений; 2) [log2( 2 - 1 )]+1 – число битов, необходимых для кодирования ; 6 3) 2( 2 - 1 ) – число функций F jp . Наконец, в таблице 2 показаны истинные значения функции предсказания. Центральная колонка содержит выходную спецификацию, использующую Булевы соотношения, а правая показывает выбор, выполненный решающей программой Булевых соотношений [17]. y4y3y2 000 001 010 011 100 101 110 111 z2z1z0 Возможные выходы (0000;0011) (0010;0101) (0010;0101) (0100;0111) (0010;0101) (0100;0111) (0100;0111) (0110;1001) Выбранный 0000 0101 0101 0100 0010 0111 0111 0110 Таблица 2. Таблица истинности функции предсказания VDC (5, 3) для Булевых соотношений 2.4.2. Архитектура На рисунке 3(a) изображена базовая схема VDC (5; 3). Функция предсказания 4 4 4 F i 2 yi работает параллельно с функциями Fp1 i 2 yi 1 , Fp1 i 2 yi 1 p и . Таким образом, функция Fp1 управляет случаем, в котором F p i 2 yi 1 и y0+y1 = 0, 4 а функция Fp1 управляет случаем F p i 2 yi и y0+y1 = 1. Поскольку [0,1] , единственная 4 комбинация y1 и y0, производящая ошибку предсказания – (y1y0) = (1; 1), она такова, что y1 y0 2 [ 1 , 2 ] ; следовательно, функция обнаружения ошибки e(y1; y0) – просто e = y1 ^ y0, а функция коррекции – F c ( F p , ) F p (2 ) . Входные комбинации ( y1 , y0 ) {( 0,0), (0,1), (1,0)} идентифицируют хорошее предсказание. Случай, в котором y1+y0 = 0, управляется функцией s0(y1; y0) = (y1 y0)’, а случай y1+y0 = 1 управляется функцией s0(y1; y0) = y1 y0. Например, если рассматривать схему на рисунке 3(a) и упрощенную таблицу истинности на рисунке 3(b), Fp выбирается, если и только если s0 = δ’ = 1 или s1 = δ = 1. Согласно этим соображениям, приходим к выводу, что VDC (5; 3) выполняет следующий выбор: F p , если ( si ) (s0 ' ) 4 y i 0 i = Fp1 , если (s1 ' ) (1) Fp1 , если ( s0 ) F c , если с. Из уравнения (1) и рисунка 3 делаем вывод, что биты y1, y0 и δ разрешают 7 переключаться на две различные задержки: короткую в случае правильного предсказания и длинную в случае неправильного предсказания. Таблица 3 показывает Булевы уравнения VDC (5; 3). Уравнения всех разработанных VDC могут быть найдены в [8]. y4y3y2 000 001 010 011 100 101 110 111 y i 1 y --001 001 ----010 010 --- (a) i y 000 010 010 010 001 011 011 011 i 1 001 ----011 010 ----100 δ 0 1 1 0 0 1 1 0 (b) Рисунок 3. VDC (5, 3): (a) – основная схема; (b) – таблица истинности упрощенной функции предсказания δ Fp Fp1 y3 y2 (0; y3 y2, y4) (0; y4; y4') Fp1 Fc† (y4^y2; y4 y2, y4') † (p1^(δ' p0), (δ^p0') p1', δ p0) Мы определяем Fp как Fp = (p2; p1; p0). Таблица 3. Функции предсказания и коррекции VDC (5, 3) 3. Выполнение Мы спроектировали массив по основанию 4 для умножения. Все основные элементы обработки реализованы с использованием элементарных вентилей CPL [2], так как они быстрее и потребляют меньше мощности, чем стандартная CMOS-логика. Спроектированные вентили были изменены, чтобы можно было использовать 0,8 мкм и чтобы разрешить предзагрузку выходных узлов. Полное устройство моделировалось с использованием HSPICE. Функции предсказания были синтезированы с использованием Булевых соотношений [17], чтобы получить функцию минимальной стоимости. В [8] мы доказываем также, что разработанные ячейки ведут себя монотонно, что критично в смысле гарантии корректности двухпроводного протокола [6]. Для получения оценок, независимых от технологии, задержки и площади нормализованы по задержке худшего случая и площади ненагруженного вентиля XORXNOR. Оценки площади учитывают площадь взаимосвязей ячеек. Должно быть также указано, что предложенная схема, как и описанная в [7], производит старшую половину 8 результата в избыточной форме с хранением переноса. Следовательно, результат конвертируется «на ходу» в неизбыточную форму, как описано в [8]. 3.1. Синхронизация и выбор времени Рисунок 4 изображает эскиз выполнения. На рисунке 5 показан протокол с четырехфазным квитированием для предложенной схемы умножения, а также время ее сброса (2tXOR). Пока входные операнды недостоверны, схема поддерживается в состоянии предзагрузки, устанавливая выходы всех VDC в логический "0". Когда операнды становятся достоверными, сигнал P/E’ падает, и схема входит в фазу оценки. Логика обнаружения завершения (ее действие описано в разделе 3.2) вызывает высокий RDY, как только произведен достоверный результат. RDY падает, когда входные операнды перестают быть достоверными, т.е. когда схема должна перейти в состояние предзагрузки с повышающимся P/E’. Чтобы эффективно генерировать корректный сигнал RDY и использовать меньше аппаратных ресурсов, массив с хранением переноса и OTFC должны быть синхронизированы. Для достижения этого мы используем тот факт, что массив с хранением переноса генерирует цифры результата последовательно от старшей к младшей. Следовательно, мы можем задерживать последнюю стадию модуля OTFC, храня его предзагруженным, пока младшая цифра не станет достоверной. Все детали выполнения могут быть найдены в [8]. Рисунок 4. Эскиз выполнения Рисунок 5. Выбор времени 3.2. Обнаружение завершения Чтобы обнаружить конец умножения, мы должны обнаружить конец преобразования в неизбыточную форму. Это делает схема обнаружения завершения, основа которой предложена в [15] и изображена на рисунке 6. В фазе предзагрузки выход RDY устанавливается в "0", и, поскольку дифференциальные выходы OTFC mi и mi’ инверсные, все n-mos падают, сохраняя выход низким. В фазе оценки, как только последний 9 дифференциальный выход станет достоверным, всякое понижение будет запрещено, и p-mos поднимет выход RDY в логическую "1". Дополнительная задержка, представленная логикой обнаружения завершения – только tXOR,tXOR, задержка вентиля XOR. Рисунок 6. Логика обнаружения завершения 3.3. Расширение для более высоких оснований системы счисления В этой статье мы имели дело исключительно с VDC (5; 3) в качестве основных процессорных элементов умножения массивов различных размеров. Однако предложенный проектный подход может быть расширен на более высокие основания системы счисления. В [8] сообщается также о Булевых уравнениях для VDC (6; 3) и (7; 3) с использованием умножителей по основанию 8 и 16. Мы должны отметить, что в предложенной схеме умножения каждый ряд массива с хранением переноса, который вычисляет младшую половину результата, должен произвести log2r битов в форме с ассимилируемым переносом. Эта задача выполняется быстрым сумматором с распространением переноса. Для высоких значений radix r задержка, представляемая сумматором, может быть критична, ограничивая нашу методологию проекта основаниями системы счисления не больше 16. 4. Сравнение Мы будем сравнивать проекты и в терминах задержки, и в терминах площади, даже если реализация, описанная в [13], не требует дополнительной аппаратуры для преобразования «на ходу», как это сделано в [7] и в схеме умножения, представленной в этой статье. Фактически использование модуля OTFC требует дополнительной площади по сравнительно с проектом, подобным [13], который использует сумматор в заключительной стадии массива. Для согласованности оценок все проекты были реализованы с использованием одной и той же технологии и вентилей CPL. По той же причине мы ограничим наш анализ случаем с основанием 4, т.е. случаем схемы умножения из [7]. С другой стороны, хотя реализация, предложенная в [13] – схема с основанием 2, мы все равно сравним с ней наш проект, так как с нашим подходом невозможно синтезировать счетчики, зависимые от данных, меньше чем (4; 3), а подход, описанный в [13], годится только для массивов с основанием 2. Задержки и площади будут выражены как кратные задержки и площади двухвходовых вентилей XOR-XNOR. Средние задержки асинхронных реализаций были вычислены моделированием 104 умножений со случайно генерируемыми операндами, где принималось однородное распределение. 4.1. Оценка задержки Предложенная схема умножения имеет задержку VDCM (где VDCM означает умножитель счетчика с переменной задержкой), которая является суммой четырех членов: VDCM t array t otfc nt buf t sync , 10 где tarray – задержка массива; totfc – задержка из-за логики преобразования; n [0; 3] – число буферов (с задержкой tbuf), которые необходимы для ведения стадии модуля OTFC, расположенного на критическом пути; tsync – издержки времени, представляемые логикой синхронизации. Задержка CM архитектуры, описанной в [7]: CM t array,CM t otfc nt buf , а задержка . KB схемы, описанной в [13]: KB t array, KB t MADD , t MADD является задержкой b-битного Манчестерского сумматора с разрешением переноса. Согласно [8] мы можем оценивать задержку Манчестерского сумматора: (7 b ) t MADD 1,22 t XOR 2 1,22 – коэффициент, учитывающий задержку монтажа и определяемый моделированием при нагрузке реальных вентилей. Часть хранения переноса схемы, описанная в [13], имеет минимальную задержку 1,51tXOR и максимальную задержку 4,13tXOR. Глубина массива нашей схемы умножения и схемы, предложенной в [7], может быть вычислена, как показано в [8], а для комбинационной схемы, описанной в [13], она равна размеру операнда. К задержке массива должны быть добавлены время преобразования или (в случае схемы умножения, предложенной в [13]) задержка Манчестерского сумматора.. К нашей реализации и к описанной в [13] должна быть также добавлена дополнительная задержка 2tXOR на логику обнаружения завершения. Таблица 4 содержит задержки для всех реализованных умножителей, а также измеренные ускорения. По таблице 4 мы видим, что предложенное выполнение имеет ускорение S, которое составляет от 1,32 до 1,45 с учетом синхронной реализации, описанный в [7], и ускорение в пределах от 1,32 до 1,57 по сравнению с асинхронной реализацией, описанной в [13]. Увеличение производительности зависит от размера b операндов. Чем больше b, тем больше измеренное ускорение. b n 8 16 24 32 0 1 2 3 VDCM 25,51 42,86 59,79 76,69 Задержка [CM96] 33,71 59,76 85,81 111,86 [KB97] 33,71 61,15 88,59 121,13 Ускорение [CM96] [KB97] 1,32 1,32 1,40 1,43 1,43 1,48 1,45 1,57 Таблица 4. Нормализованные средние задержки умножителей Экспериментальные результаты, показанные на рисунке 4, представлены графически на рисунке 7. Рисунок 7. Ускорение разработанных умножителей для размера операндов 11 4.2. Оценка площади В этом разделе мы оцениваем площадь, занятую модулем OTFC и массивом умножения множества. Таблица 5 показывает полную площадь реализованных схем умножения, полученных с учетом площадей массива для генерации частичных продуктов, массива основных элементов обработки и модуля преобразования или оконечного сумматора в случае [13]. Площадь выражена кратной площади вентиля XOR-XNOR. b 8 16 24 32 Полная площадь VDCM [CM96] [KB97] 654,7 491,9 559,2 3109,6 2151 2116,8 7551,6 5144,1 4672,8 14068,4 9516,1 8227,2 Таблица 5. Нормализованная полная площадь реализованных умножителей 5. Заключение Счетчики с переменной задержкой (VDC) - база для проекта асинхронного умножителя, представленного в этой статье. Для спецификации и минимизации режима VDC исследовался компромисс между точностью предсказания и скоростью вычисления, при этом использовались Булевы соотношения. Результатом стал новый проект, который впервые, по мнению авторов, выигрывает по эффективности сравнительно с синхронными умножителями. В арифметических схемах широко используются счетчики. Мы думаем, что представили только одно возможное применение, и что комбинация построения блоков с переменной задержкой и исследования выполнения посредством Булевых соотношений может быть использована во многих других областях, извлекающих выгоду из случая средней производительности, предлагаемого асинхронными схемами. Ссылки [1] C. R. Baugh and R. A. Wooley. A Two's Complement Parallel Array Multiplication Algorithm. IEEE Transaction on Computers, C-22(12):1045–1047, December 1973. [2] A. Bellaouar and M. I. Elmasry. Low-Power Digital VLSI Design. Kluwer Academic Publisher, Norwell, MA, 1995. [3] L. Benini, G. De Micheli, A. Lioy, et al. Automatic Synthesis of Large Telescopic Units Based on Near-Minimum Timed Supersetting. IEEE Transaction on Computers, C-48(8):769–779, August 1999. [4] A. D. Booth. A Signed Binary Multiplication Technique. Quarterly Journal Mech. Appl. Math., 4, Part2:236–240, 1951. [5] R. K. Brayton and F. Somenzi. Boolean Relations and the Incomplete Specification of Logic Networks. In Int. Conf. Very Large Scale Integration, 1989. [6] J. A. Brzozowski and C.-J. H. Seger. Asynchronous Circuits. Springer-Verlag, New York, 1994. [7] L. Ciminiera and P. Montuschi. Carry-Save Multiplication Schemes Without Final Addition. IEEE Transaction on Computers, C- 45(9):1050–1055, September 1996. 12 [8] G. Cornetta. Design and Analysis of Variable-Delay Arithmetic Units. PhD thesis, Polythecnic University of Catalonia-Dept. Of Computer Architecture, Barcelona, September 2001. [9] J. Cortadella and T. Lang. High-Radix Division and Square Root with Speculation. IEEE Transaction on Computers, C-43(8):919–931, August 1994. [10] L. Dadda. Some Schemes for Parallel Multipliers. Alta Frequenza, 34:349–356, March 1965. [11] A. De Gloria and M. Olivieri. Statistical Carry Lookahead Adders. IEEE Transaction on Computers, C-45(3):340–347, March 1996. [12] M. D. Ercegovac and T. Lang. On the Fly Conversion of Redundant into Conventional Representations. IEEE Transaction on Computers, C-36(7):895–897, July 1987. [13] D. Kearney and N. W. Bergmann. Bundled Data Asynchronous Multipliers with Data Dependent Computation Times. In 3rd IEEE Symposium on Advanced Research in Asynchronous Circuit and Systems, pages 186–197, 1997. [14] G. Matsubara and N. Ide. A Low Power Zero-Overhead Self-Timed Division and Square Root Unit Combining a Singe-Rail Static Circuit with a Dual-Rail Dynamic Circuit. In Symposium on Advanced Research in Asynchronous Circuit and Systems, pages 198–209, 1997. [15] S. M. Nowick, K. Y. Yun, P. A. Beerel, and A. E. Dooply. Speculative Completion for the Design of High-Performance Asynchronous Dynamic Adders. In Symposium on Advanced Research in Asynchronous Circuit and Systems, pages 210–223, 1997. [16] J. Sklansky. Conditional Sum Addition Logic. IRE Transaction on Electronics Computers, EC9:226–231, June 1960. [17] Y.Watanabe and R. E. Brayton. Heuristic Minimization of Multiple-Valued Relations. IEEE Transaction on Computer-Aided Design of Integrated Circuits, 12(10):1458–1472, October 1993. [18] T. E. Williams and M. Horowitz. A 160ns 54-bit CMOS Division Implementation Using SelfTiming and Simmetrically Overlapped SRT Stages. In 10th IEEE Symposium on Computer Arithmetic, pages 210–217, 1991.