RU2473961C1 - Устройство нормировки вектора - Google Patents

Устройство нормировки вектора Download PDF

Info

Publication number
RU2473961C1
RU2473961C1 RU2011150584/08A RU2011150584A RU2473961C1 RU 2473961 C1 RU2473961 C1 RU 2473961C1 RU 2011150584/08 A RU2011150584/08 A RU 2011150584/08A RU 2011150584 A RU2011150584 A RU 2011150584A RU 2473961 C1 RU2473961 C1 RU 2473961C1
Authority
RU
Russia
Prior art keywords
adder
input
subtractor
shift
circuit
Prior art date
Application number
RU2011150584/08A
Other languages
English (en)
Inventor
Виктор Николаевич Бабенко
Original Assignee
Виктор Николаевич Бабенко
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Виктор Николаевич Бабенко filed Critical Виктор Николаевич Бабенко
Priority to RU2011150584/08A priority Critical patent/RU2473961C1/ru
Application granted granted Critical
Publication of RU2473961C1 publication Critical patent/RU2473961C1/ru

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

Изобретение относится к вычислительной технике и предназначено для использования в высокопроизводительных вычислительных системах, в частности в системах цифровой обработки сигналов, работающих в режиме реального времени, в системах управления быстро протекающими процессами, в персональных компьютерах в качестве средства повышения их производительности, реализуемого как подсхема в составе арифметического процессора или же в составе отдельного устройства (спецпроцессора). Техническим результатом является повышение скорости выполнения операции нормировки n-мерного вектора. Устройство содержит n блоков нормировки, каждый из которых содержит схемы сдвига и сумматоры-вычитатели, и блок инверсии радикала, содержащий схемы сдвига, схемы формирования кода сдвига, схемы формирования кода установления режима работы сумматоров-вычитателей, сдвоенные сумматоры-вычитатели. 1 ил.

Description

Изобретение относится к вычислительной (процессорной) технике и может быть использовано:
1) в высокопроизводительных вычислительных системах,
2) в системах управления быстро протекающими процессами,
3) в персональных компьютерах в качестве средства повышения их производительности, реализуемого как подсхема в составе арифметического процессора или же в составе отдельного устройства (спецпроцессора).
Высокопроизводительные вычислительные системы имеют в своем составе n умножителей, которые предназначены прежде всего для быстрого выполнения операции умножения компонент n-мерного вектора на произвольное число, поэтому эту совокупность умножителей называют векторным умножителем [1]. На первый вход i-го умножителя подается i-я компонента вектора х (i=1, n), на второй вход каждого умножителя подается произвольное число a, на выходе векторного умножителя получают вектор y=ax, причем вычисления на всех умножителях производятся параллельно (одновременно). На векторном умножителе можно выполнять и операцию векторного деления. Для этого все умножители переводятся в режим деления, на первый вход i-го умножителя подается i-я компонента вектора х, на второй вход каждого умножителя подается произвольное число b, на выходе векторного умножителя получают вектор y=[x1/b…xn/b]. Однако операция деления на умножителе выполняется медленнее, чем умножение на порядок числа m, где m - число разрядов, отводимых под мантиссу машинных чисел. В математике умножение вектора x на произвольное число a называется нормировкой вектора. В вычислительной математике операция нормировки вектора выполняется очень часто (является так называемой базовой операцией), при этом, к сожалению, обычно известен не нормирующий множитель a, а число b, связанное с a равенством a=1/b, поэтому в этом случае, чтобы выполнить нормировку вектора, приходится переводить векторный умножитель в режим деления. С другой стороны, осуществление деления компонент вектора на умножителях дорого и недостаточно быстро (значительно медленнее умножения).
Известно устройство (Cordic) [2], в котором осуществляется нормировка двумерного вектора. Это устройство предназначено для осуществления поворота двумерного вектора. Устройство Cordic реализует два этапа вычислений: 1) этап псевдовращений и 2) этап нормировки. На первом этапе выполняются вычисления по формулам:
Figure 00000001
Реализация последних формул выполняется в блоке псевдовращений. Второй этап осуществляет нормировку вектора [xm-1ym-1] с целью устранения растяжения исходного вектора [x, y], обусловленного этапом псевдовращений. Коэффициент растяжения b определяется формулой
Figure 00000002
. Вычисления второго этапа состоят в следующем
Figure 00000003
Они обусловлены представлением инверсии числа b в виде произведения
Figure 00000004
. Такое представление является простой задачей, так как число b фиксировано. Как мы видим, в устройстве Cordic при осуществлении нормировки вектора удалось избежать выполнения двух операций: извлечения квадратного корня
Figure 00000005
и деления компонент вектора [xm-1, ym-1] на число b. Технически формулы (2) реализуются в блоках нормировки, каждый из которых представляет цепочку пар (регистр сдвига, сумматор-вычитатель), причем выход сумматора-вычитателя i-й пары соединен с первым входом сумматора-вычитателя i+1-й пары, а также с входом регистра сдвига i+1-й пары, кроме того, выход регистра сдвига i+1-й пары соединен со вторым входом сумматора-вычитателя i+1-й пары. Таким образом, устройство Cordic состоит из трех блоков: блока псевдовращений и двух блоков нормировки, причем первый и второй выходы блока псевдовращений соединены соответственно с входами первого и второго блоков нормировки. На вход устройства подается вектор [x, y], на выходе получают вектор [um-1, νm-1], компоненты которого связаны с вектором [x, y] соотношениями (1) и (2). Недостатком описанного блока нормировки является узость решаемой им задачи: 1) размерность нормируемого вектора фиксирована и равна двум, 2) делитель
Figure 00000006
является фиксированным числом.
Часто в вычислительной математике нормировка состоит в реализации формулы
Figure 00000007
(базовая операция), где x - n-мерный вектор. Чтобы осуществить нормировку, определяемую последней формулой, в вычислительной практике прибегают к реализации операции извлечения квадратного корня (алгоритм Герона), а затем - к применению векторного умножителя, переводя последний в режим деления. Недостатком такого способа нормировки является предварительное применение очень медленной процедуры извлечения квадратного корня, которая осуществляется программно [3] и, предшествуя по времени операции деления компонент вектора x на делитель b
Figure 00000008
, дополнительно замедляет процесс рассматриваемой нормировки.
Наиболее близким по технической сущности к заявляемому изобретению является блок нормировки, входящий в состав устройства вращения плоскости (Cordic).
Приведенные выше характеристики аналогов и определяют цель изобретения: создание специализированного высокопроизводительного устройства нормировки n-мерного вектора, в котором вычисления выполнялись бы по формулам, структура которых указана в (2), при этом число a было бы произвольным.
Поставленная цель достигается включением в состав заявляемого устройства специально разработанного блока инверсии радикала. На его вход поступает число a. Этот блок реализует вычисления по формулам: a 1=a,
Figure 00000009
, i=1 [m/2], где [m/2] - целая часть числа m/2, σi∈{-1,0,1}. Кроме этого блока в состав устройства входят n блоков нормировки. На входы блоков нормировки поступают компоненты вектора x=[x1…xn]. Блоки нормировки реализуют формулы:
Figure 00000010
, i=1 [m/2],
Figure 00000011
, j=1, n. На выходе устройства нормировки получают вектор
Figure 00000012
. Блок инверсии радикала и блоки нормировки представляют собой цепочки последовательно соединенных каскадов. Каждый каскад блока инверсии радикала (кроме последнего) содержит схему формирования кода сдвига, схему сдвига, схему формирования кода установления режима работы сумматора-вычитателя и сдвоенный сумматор-вычитатель. Внутрикаскадные соединения: выход схемы формирования кода сдвига соединен со вторым входом схемы сдвига, выход схемы сдвига соединен со вторым входом сумматора-вычитателя, выход схемы формирования кода установки режима работы сумматора-вычитателя соединен с входом установки режима работы сумматора-вычитателя. Межкаскадные соединения: первый вход сумматора-вычитателя, вход схемы формирования кода сдвига, первый вход схемы сдвига и вход схемы формирования кода установки режима работы сумматора-вычитателя i+1-го каскада соединены с выходом сумматора-вычитателя i-го каскада. На первый вход сдвоенного сумматора-вычитателя, вход схемы формирования кода сдвига, первый вход схемы сдвига и вход схемы формирования кода установки режима работы сумматора-вычитателя 1-го каскада подается число a. Последний каскад (его номер [m/2]) содержит схему формирования кода сдвига и схему формирования кода установления режима работы. Входы этих схем соединены с выходом сумматора-вычитателя предпоследнего каскада. Каждый каскад блока нормировки имеет схему сдвига и сумматор-вычитатель. Внутрикаскадные соединения: выход схемы сдвига соединен со вторым входом сумматора-вычитателя. Межкаскадные соединения: первый вход сумматора-вычитателя и первый вход схемы сдвига i+1-го каскада соединены с выходом сумматора-вычитателя i-го каскада. Наконец, межблочные соединения: все блоки нормировки соединены с блоком инверсии, причем выход схемы формирования кода сдвига i-го каскада блока инверсии соединен со вторым входом схемы сдвига i-го каскада каждого блока нормировки, а выход схемы формирования кода установления режима работы сумматора-вычитателя i-го каскада блока инверсии соединен с входом установки режима работы сумматора-вычитателя i-го каскада каждого блока нормировки.
Сопоставительный анализ с прототипом показывает, что заявляемое устройство отличается как составом, так и способом соединения входящих в него элементов.
Таким образом, заявляемое устройство соответствует критерию «новизна».
Сравнение заявляемого технического решения не только с прототипом, но и с другими техническими решениями позволяет сделать вывод о соответствии заявляемого технического решения критерию «существенные отличия».
Изобретение поясняется структурной схемой, изображенной на рис.1.
Устройство нормировки вектора содержит блок инверсии радикала и n блоков нормировки. Блок инверсии радикала представляет собой цепочку из [m/2] каскадов, каждый из которых, за исключением последнего, содержит схему формирования кода сдвига 1, схему сдвига 2, схему формирования кода установления режима работы сумматора-вычитателя 3 и сдвоенный сумматор-вычитатель 4, соединенных как показано на рис.1. Последний каскад содержит схему формирования кода сдвига 1 и схему формирования кода установления режима работы сумматора-вычитателя 3. Каждый блок нормировки также представляет собой цепочку из m/2 каскадов, каждый из которых содержит схему сдвига 2 и сумматор-вычитатель 5 (см. рис.1).
Устройство спроектировано для 32-разрядных чисел, представленных в формате с плавающей запятой (24 разряда отведено под мантиссу и 8 - под порядок). На вход заявляемого устройства подаются число a и компоненты вектора x=(x1…xn), где n≥2. На выходе устройства получают компоненты вектора u=(u1…un), определяемые соотношениями
Figure 00000013
.
Для обеспечения точности выходных величин промежуточные вычисления осуществлялись на (m+r)-разрядных сумматорах, где r - число дополнительных младших разрядов, выделяемых под мантиссу. При r=5 погрешность вычисления выходных величин не превышает цены их младшего разряда.
Для обеспечения сходимости процесса вычислений в состав каждого блока нормировки входит всего лишь [m/2] сумматоров. Всего же в состав устройства входит
Figure 00000014
сумматоров.
При n=2 устройство было аппаратно реализовано на программируемой логической интегральной схеме (ПЛИС) "EP1K50FC484-1" семейства ACEX1K производства фирмы "Altera". Технические характеристики этого устройства:
1) максимально допустимая тактовая частота - 2.78·107 Гц,
2) пиковая производительность - 5.56·107 операций в сек,
3) время отклика (заполнения конвейера) - 432·10-9 сек.
Источники информации
1. Ортега Дж. Введение в параллельные и векторные методы решения линейных систем. М., Мир.
2. Сверхбольшие интегральные схемы и современная обработка сигналов. Под ред. С.Гуна, X.Уайтхауса, Т.Кайлата, М., Радио и связь, 1989, стр.269-271.
3. Годунов С.К., Антонов А.Г., Кирилюк О.П., Костин В.И. Гарантированная точность решения систем линейных уравнений в евклидовых пространствах. Новосибирск, Наука, 1988.

Claims (1)

  1. Устройство нормировки n-мерного вектора, содержащее блок инверсии радикала и n блоков нормировки, причем каждый блок представляет собой цепочку из [m/2] последовательно соединенных каскадов, при этом каждый каскад блока инверсии радикала (кроме последнего) содержит схему формирования кода сдвига, схему сдвига, схему формирования кода установления режима работы сумматора-вычитателя и сдвоенный сумматор-вычитатель, а каждый каскад блока нормировки - схему сдвига и сумматор-вычитатель, при этом элементы устройства соединены следующим образом: внутрикаскадные соединения блока инверсии радикала: выход схемы формирования кода сдвига соединен со вторым входом схемы сдвига, выход схемы сдвига соединен со вторым входом сумматора-вычитателя, выход схемы формирования кода установки режима работы сумматора-вычитателя соединен с входом установки режима работы сумматора-вычитателя; межкаскадные соединения блока инверсии радикала: первый вход сумматора-вычитателя, вход схемы формирования кода сдвига, первый вход схемы сдвига и вход схемы формирования кода установки режима работы сумматора-вычитателя i+1-го каскада соединены с выходом сумматора-вычитателя i-го каскада; на первый вход сумматора-вычитателя, вход схемы формирования кода сдвига, первый вход схемы сдвига и вход схемы формирования кода установки режима работы сумматора-вычитателя l-го каскада подается число α; последний каскад (его номер [m/2]) содержит схему формирования кода сдвига и схему формирования кода установления режима работы, причем входы этих схем соединены с выходом сумматора-вычитателя предпоследнего каскада; внутрикаскадные соединения блока нормировки: выход схемы сдвига соединен со вторым входом сумматора-вычитателя; межкаскадные соединения блока нормировки: первый вход сумматора-вычитателя и первый вход схемы сдвига i+1-го каскада соединены с выходом сумматора-вычитателя i-го каскада; межблочные соединения: все блоки нормировки соединены с блоком инверсии радикала, причем выход схемы формирования кода сдвига i-го каскада блока инверсии радикала соединен со вторым входом схемы сдвига i-го каскада каждого блока нормировки, а выход схемы формирования кода установления режима работы сумматора-вычитателя i-го каскада блока инверсии радикала соединен с входом установки режима работы сумматора-вычитателя i-го каскада каждого блока нормировки; на первый вход сумматора-вычитателя и первый вход схемы сдвига 1-го каскада j-го блока нормировки (j=1, n) подается j-я компонента нормируемого вектора х, а на выходе последнего каскада j-го блока нормировки (его номер [m/2]) получают j-ю компоненту нормированного вектора u.
RU2011150584/08A 2011-12-12 2011-12-12 Устройство нормировки вектора RU2473961C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2011150584/08A RU2473961C1 (ru) 2011-12-12 2011-12-12 Устройство нормировки вектора

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2011150584/08A RU2473961C1 (ru) 2011-12-12 2011-12-12 Устройство нормировки вектора

Publications (1)

Publication Number Publication Date
RU2473961C1 true RU2473961C1 (ru) 2013-01-27

Family

ID=48807126

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2011150584/08A RU2473961C1 (ru) 2011-12-12 2011-12-12 Устройство нормировки вектора

Country Status (1)

Country Link
RU (1) RU2473961C1 (ru)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1109742A1 (ru) * 1982-08-11 1984-08-23 Предприятие П/Я В-8751 Вычислительное устройство дл поворота вектора
RU2079879C1 (ru) * 1994-08-23 1997-05-20 Евгений Иванович Духнич Матричный спецпроцессор
US20100161697A1 (en) * 2008-12-19 2010-06-24 Industrial Technology Research Institute Method of cordic computing vector angle and electronic apparatus using the same
US20110010408A1 (en) * 2008-03-06 2011-01-13 Katsutoshi Seki Cordic computation circuit and method
US20110264721A1 (en) * 2009-05-22 2011-10-27 Maxlinear, Inc. Signal processing block for a receiver in wireless communication

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1109742A1 (ru) * 1982-08-11 1984-08-23 Предприятие П/Я В-8751 Вычислительное устройство дл поворота вектора
RU2079879C1 (ru) * 1994-08-23 1997-05-20 Евгений Иванович Духнич Матричный спецпроцессор
US20110010408A1 (en) * 2008-03-06 2011-01-13 Katsutoshi Seki Cordic computation circuit and method
US20100161697A1 (en) * 2008-12-19 2010-06-24 Industrial Technology Research Institute Method of cordic computing vector angle and electronic apparatus using the same
US20110264721A1 (en) * 2009-05-22 2011-10-27 Maxlinear, Inc. Signal processing block for a receiver in wireless communication

Similar Documents

Publication Publication Date Title
Rezai et al. High-throughput modular multiplication and exponentiation algorithms using multibit-scan–multibit-shift technique
Bansal et al. High speed vedic multiplier designs-A review
Kasianchuk et al. Algorithms of findings of perfect shape modules of remaining classes system
Jagadeshwar Rao et al. A high speed wallace tree multiplier using modified booth algorithm for fast arithmetic circuits
Jain et al. Binary division algorithm and high speed deconvolution algorithm (Based on Ancient Indian Vedic Mathematics)
Das et al. Hardware design of optimized large integer schoolbook polynomial multiplications on FPGA
RU2473961C1 (ru) Устройство нормировки вектора
CN103888246A (zh) 低功耗小面积的数据处理方法及其数据处理装置
Vestias et al. Parallel decimal multipliers and squarers using Karatsuba-Ofman's algorithm
CN104615404A (zh) 一种基于查表操作的高速浮点除法部件装置
Laxman et al. FPGA implementation of different multiplier architectures
Xie et al. Low latency systolic multipliers for finite field GF (2 m) based on irreducible polynomials
RU2449354C1 (ru) Устройство нормировки вектора
Hiasat Efficient residue to binary converter
Bokade et al. CLA based 32-bit signed pipelined multiplier
Wei Computation of modular multiplicative inverses using residue signed-digit additions
RU2797164C1 (ru) Конвейерный умножитель по модулю
CN104461469A (zh) 一种采用gpu并行化实现sm2算法的方法
Kaur et al. Review of Booth Algorithm for Design of Multiplier
RU2559772C2 (ru) Устройство для основного деления модулярных чисел в формате системы остаточных классов
CN109388372A (zh) 一种基于最小模块的三值光学处理器msd乘法计算方法
Turner A fast binary logarithm algorithm
MaheswaraSainath et al. High Speed Vedic Multiplier
Garg et al. Comparative analysis of 8 X 8 Bit Vedic and Booth Multiplier
Vergos et al. Efficient modulo 2 n+ 1 squarers