RU2473961C1 - Устройство нормировки вектора - Google Patents
Устройство нормировки вектора Download PDFInfo
- 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
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) этап нормировки. На первом этапе выполняются вычисления по формулам:
Реализация последних формул выполняется в блоке псевдовращений. Второй этап осуществляет нормировку вектора [xm-1ym-1] с целью устранения растяжения исходного вектора [x, y], обусловленного этапом псевдовращений. Коэффициент растяжения b определяется формулой . Вычисления второго этапа состоят в следующем
Они обусловлены представлением инверсии числа b в виде произведения . Такое представление является простой задачей, так как число b фиксировано. Как мы видим, в устройстве Cordic при осуществлении нормировки вектора удалось избежать выполнения двух операций: извлечения квадратного корня и деления компонент вектора [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) делитель является фиксированным числом.
Часто в вычислительной математике нормировка состоит в реализации формулы (базовая операция), где x - n-мерный вектор. Чтобы осуществить нормировку, определяемую последней формулой, в вычислительной практике прибегают к реализации операции извлечения квадратного корня (алгоритм Герона), а затем - к применению векторного умножителя, переводя последний в режим деления. Недостатком такого способа нормировки является предварительное применение очень медленной процедуры извлечения квадратного корня, которая осуществляется программно [3] и, предшествуя по времени операции деления компонент вектора x на делитель b , дополнительно замедляет процесс рассматриваемой нормировки.
Наиболее близким по технической сущности к заявляемому изобретению является блок нормировки, входящий в состав устройства вращения плоскости (Cordic).
Приведенные выше характеристики аналогов и определяют цель изобретения: создание специализированного высокопроизводительного устройства нормировки n-мерного вектора, в котором вычисления выполнялись бы по формулам, структура которых указана в (2), при этом число a было бы произвольным.
Поставленная цель достигается включением в состав заявляемого устройства специально разработанного блока инверсии радикала. На его вход поступает число a. Этот блок реализует вычисления по формулам: a 1=a, , i=1 [m/2], где [m/2] - целая часть числа m/2, σi∈{-1,0,1}. Кроме этого блока в состав устройства входят n блоков нормировки. На входы блоков нормировки поступают компоненты вектора x=[x1…xn]. Блоки нормировки реализуют формулы: , i=1 [m/2], , j=1, n. На выходе устройства нормировки получают вектор . Блок инверсии радикала и блоки нормировки представляют собой цепочки последовательно соединенных каскадов. Каждый каскад блока инверсии радикала (кроме последнего) содержит схему формирования кода сдвига, схему сдвига, схему формирования кода установления режима работы сумматора-вычитателя и сдвоенный сумматор-вычитатель. Внутрикаскадные соединения: выход схемы формирования кода сдвига соединен со вторым входом схемы сдвига, выход схемы сдвига соединен со вторым входом сумматора-вычитателя, выход схемы формирования кода установки режима работы сумматора-вычитателя соединен с входом установки режима работы сумматора-вычитателя. Межкаскадные соединения: первый вход сумматора-вычитателя, вход схемы формирования кода сдвига, первый вход схемы сдвига и вход схемы формирования кода установки режима работы сумматора-вычитателя 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), определяемые соотношениями .
Для обеспечения точности выходных величин промежуточные вычисления осуществлялись на (m+r)-разрядных сумматорах, где r - число дополнительных младших разрядов, выделяемых под мантиссу. При r=5 погрешность вычисления выходных величин не превышает цены их младшего разряда.
Для обеспечения сходимости процесса вычислений в состав каждого блока нормировки входит всего лишь [m/2] сумматоров. Всего же в состав устройства входит сумматоров.
При 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)
- Устройство нормировки 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.
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)
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 |
-
2011
- 2011-12-12 RU RU2011150584/08A patent/RU2473961C1/ru active
Patent Citations (5)
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 |