JP2007079696A - 浮動小数点数のベクトル演算方法 - Google Patents
浮動小数点数のベクトル演算方法 Download PDFInfo
- Publication number
- JP2007079696A JP2007079696A JP2005263815A JP2005263815A JP2007079696A JP 2007079696 A JP2007079696 A JP 2007079696A JP 2005263815 A JP2005263815 A JP 2005263815A JP 2005263815 A JP2005263815 A JP 2005263815A JP 2007079696 A JP2007079696 A JP 2007079696A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- data
- exponent
- floating
- point number
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Landscapes
- Digital Transmission Methods That Use Modulated Carrier Waves (AREA)
Abstract
【課題】 浮動小数点数のベクトル積演算に必要な処理が軽減され、固定小数点型DSPによる演算処理が適用できるようにした浮動小数点数のベクトル演算方法を提供すること。
【解決手段】 N次の行ベクトルXとN次の列ベクトルYからなるベクトル積XYを求める浮動小数点数のベクトル演算方法において、入力端子1のバッファに格納するベクトルXの成分である各データx1〜xN の仮数部m1〜mN に対して、その指数部については予め各データx1〜xN で共通の指数eにしておき、ベクトルYの成分である各データy1〜yN の仮数部l1〜lN に対しても、その指数部については予め各データy1〜yN でこれも共通の指数e′にしておいてベクトル積XYを演算するようにしたもの。
予めベクトルの指数部を共通化しておくと演算処理量が軽減される。
【選択図】 図1
【解決手段】 N次の行ベクトルXとN次の列ベクトルYからなるベクトル積XYを求める浮動小数点数のベクトル演算方法において、入力端子1のバッファに格納するベクトルXの成分である各データx1〜xN の仮数部m1〜mN に対して、その指数部については予め各データx1〜xN で共通の指数eにしておき、ベクトルYの成分である各データy1〜yN の仮数部l1〜lN に対しても、その指数部については予め各データy1〜yN でこれも共通の指数e′にしておいてベクトル積XYを演算するようにしたもの。
予めベクトルの指数部を共通化しておくと演算処理量が軽減される。
【選択図】 図1
Description
本発明は、浮動小数点数をベクトル演算する方法に係り、特に、デジタル信号の変復調処理における浮動小数点数のベクトル演算方法に関する。
近年、デジタル無線機器にも浮動小数点型DSP(Digital Signal Processor)が適用されるようになっているが、このとき、主としてデジタル信号の変復調処理に使用されている。そこで、近年、例えば伝送系でのマルチパス対策のため、受信側の復調処理に、この浮動小数点型DSPによる適応等化技術を適用し、受信データ系列に対して伝送路の歪みの補償が与えられるようにし、送信ビット系列が精度良く推定できるようにしている。
そして、このとき、補償最適値を伝送路の変化に追従して算出するため、RLSアルゴリズムが用いられているが、このアルゴリズムでは、その中でベクトル積演算処理を行なう際、浮動小数点数のベクトル演算が必要である(例えば、特許文献1〜特許文献3など参照)。
そこで、次に、このRLSアルゴリズムの中で行われる浮動小数点数のベクトル演算について説明する。なお、ここでは、一例として、N次の行ベクトルXとN次の列ベクトルYからなるベクトル積XYを求める際の演算方法について説明することにする。
そうすると、この場合、ベクトルの各成分は式(1)に示す通りになる。そして、このための演算処理には、例えば図3の論理ブロック構成が適用でき、このとき入力端子1にはデータx1〜xN が入力され、入力端子2にはデータy1〜yN が入力され、各々バッファに格納されることになる。
このとき、図示のように、ベクトルXの成分である各データx1〜xN の仮数部は各々m1〜mN で、その指数部は各々e1〜eN であり、ベクトルYの成分である各データy1〜yN の仮数部は各々l1〜lN で、その指数部は各々e1′〜eN′であり、従って、詳細は図4に示すようになっている。
そして、この場合のベクトル積XYは、上記した入力データx1〜xN と入力データy1〜yN の各成分の積(x1y1,x2y2,x3y3,……,xNyN)を求めた上で、これらの各積の加算結果(x1+y1,x2+y2,x3+y3,……,xN+yN)として得ることができ、従って、このときの演算回路(図3)演算手順は次の通りになる。
・手順1
ベクトルXの各成分の仮数部m1〜mN とベクトルYの各成分の仮数部
l1〜lN を各々の乗算部31〜3N により演算し、各成分の仮数部の積
m1l1,m2l2,m3l3,……,mNlN とする。
ベクトルXの各成分の仮数部m1〜mN とベクトルYの各成分の仮数部
l1〜lN を各々の乗算部31〜3N により演算し、各成分の仮数部の積
m1l1,m2l2,m3l3,……,mNlN とする。
・手順2
ベクトルXの各成分の指数部e1〜eN とベクトルYの各成分の指数部
e1′〜eN′を各々の加算部41〜4N により演算し、各成分の指数部の和
e1+e1′,e2+e2′,e3+e3′,……,eN+eN′とする。
ベクトルXの各成分の指数部e1〜eN とベクトルYの各成分の指数部
e1′〜eN′を各々の加算部41〜4N により演算し、各成分の指数部の和
e1+e1′,e2+e2′,e3+e3′,……,eN+eN′とする。
・手順3
各指数部の和e1+e1′〜eN+eN′を最大値検出部5に入力し、それら
の中から最大値を検索してemax とする。
各指数部の和e1+e1′〜eN+eN′を最大値検出部5に入力し、それら
の中から最大値を検索してemax とする。
・手順4
同じく各指数部の和e1+e1′〜eN+eN′を各加算部61〜6N に入力し、
最大値emax を減算して、各々の指数部の和の減算値(e1+e1′)−emax ,
(e2+e2′)−emax,(e3+e3′)−emax,……,(eN+eN′)−emax
とする。
同じく各指数部の和e1+e1′〜eN+eN′を各加算部61〜6N に入力し、
最大値emax を減算して、各々の指数部の和の減算値(e1+e1′)−emax ,
(e2+e2′)−emax,(e3+e3′)−emax,……,(eN+eN′)−emax
とする。
・手順5
各減算値(e1+e1′)−emax〜(eN+eN′)−emax を夫々のシフタ71
〜7N によりべき乗処理し、べき乗値2(e1+e1′)-emax,2(e2+e2′)-emax,
2(e3+e3′)-emax,……,2(eN+eN′)-emax とする。
各減算値(e1+e1′)−emax〜(eN+eN′)−emax を夫々のシフタ71
〜7N によりべき乗処理し、べき乗値2(e1+e1′)-emax,2(e2+e2′)-emax,
2(e3+e3′)-emax,……,2(eN+eN′)-emax とする。
・手順6
各々のべき乗値2(e1+e1′)-emax〜2(eN+eN′)-emaxを乗算器81〜8N に入
力し、これらの各々に積m1l1〜mNlN を乗算する。そして指数部が共通化さ
れた演算結果m1l1×2(e1+e1′)-emax,m2l2×2(e2+e2′)-emax,
m3l3×2(e3+e3′)-emax,……,mNlN×2(eN+eN′)-emax を得る。
各々のべき乗値2(e1+e1′)-emax〜2(eN+eN′)-emaxを乗算器81〜8N に入
力し、これらの各々に積m1l1〜mNlN を乗算する。そして指数部が共通化さ
れた演算結果m1l1×2(e1+e1′)-emax,m2l2×2(e2+e2′)-emax,
m3l3×2(e3+e3′)-emax,……,mNlN×2(eN+eN′)-emax を得る。
・手順7
手順6の演算結果を加算器9で処理し、処理結果m1l1×2(e1+e1′)-emax+
m2l2×2(e2+e2′)-emax+Λ+mNlN×2(eN+eN′)-emax を新たな仮数部Aと
し、最大値検出部5で求めたemax を共通の指数部BとしてXY=AB を得る。
手順6の演算結果を加算器9で処理し、処理結果m1l1×2(e1+e1′)-emax+
m2l2×2(e2+e2′)-emax+Λ+mNlN×2(eN+eN′)-emax を新たな仮数部Aと
し、最大値検出部5で求めたemax を共通の指数部BとしてXY=AB を得る。
上記従来技術は、演算処理量の低減に配慮がされておらず、固定小数点型DSPによる処理に問題があった。
前述のベクトル演算方法は、浮動小数点数によるベクトル積の演算処理に指数部の共通化処理が含まれている。このため処理量が増加し、固定小数点型DSPによる処理が困難になってしまうのである。
本発明の目的は、浮動小数点数のベクトル積演算に必要な処理が軽減され、固定小数点型DSPによる演算処理が適用できるようにした浮動小数点数のベクトル演算方法を提供することにある。
上記目的は、 受信装置の復調処理に用いられるRLSアルゴリズムの中で行われる浮動小数点数のベクトル演算方法において、処理すべきベクトルの各成分の指数部を予め前記各成分の全てについて共通化する処理を実行した後、当該ベクトルの演算処理を開始させることにより達成される。
本発明によれば、演算処理量が抑えられるので、固定小数点型DSPによる処理が可能になり、演算規模の増大を抑えることができる。
以下、本発明による浮動小数点数のベクトル積演算方法について、図示の実施の形態により詳細に説明する。
図1は、本発明の一実施形態が適用された論理ブロックを示したものであるが、このとき比較のため、ここでも上記した従来技術の場合と同じく、式(1)に示すN次の行ベクトルXとN次の列ベクトルYからなるベクトル積XYを求める際の演算方法について説明することにする。
そうすると、この図1の論理ブロックでも、入力端子1には、式(1)に示すN次の行ベクトルXの各成分のデータx1〜xN が入力され、入力端子2には列ベクトルYの各成分のデータy1〜yN が入力され、各々バッファに格納されることになるが、しかし、この実施形態では、このとき予めベクトルXの各データx1〜xN とベクトルYの各データy1〜yN の各々の指数部についての共通化処理が施されていて、その後で各入力端子1、2から各々のバッファに格納されるようになっている。
詳しく説明すると、この場合も、ベクトルXの各データx1〜xN とベクトルYの各データy1〜yN は、元々は図4に示す通りで、指数部も、仮数部と同じく各データ毎に独立して異なったものになっていたのであるが、各入力端子1、2から入力して各々のバッファに格納される前に指数部の共通化処理を施しておくのである。なお、このときの指数部の共通化処理は、従来技術で説明した手順1から手順6までの処理と同じで良い。
従って、このときベクトルXの成分である各データx1〜xN の仮数部は、図示のように、各々m1〜mN であるが、その指数部は、例えばeで、各データx1〜xN で共通になっている。また、ベクトルYについて見ても、その成分である各データy1〜yN の仮数部は各々l1〜lN であるが、その指数部は、これも例えばe′で、各データy1〜yN で共通になっている。よって、このとき各々のバッファに格納されるデータの詳細は図2に示すようになる。
そして、ベクトル積XYは、この実施形態の場合も、上記の従来技術の場合と同様にして求める。すなわち、ベクトルXの各成分の仮数部m1〜mN とベクトルYの各成分の仮数部l1〜lN の積m1l1,m2l2,m3l3,……,mNlN に、ベクトルXの各成分の指数部e1〜eN とベクトルYの各成分の指数部e1′〜eN′の各々の2のべき乗値、すなわち2(e1+e1′)-emax〜2(eN+eN′)-emax を乗算して求めるのであるが、しかし、この実施形態では、これらベクトルXの各成分とベクトルYの各成分の指数部は、事前に各々で共通化されている。
従って、このときの全成分の加算は、この実施形態の場合、仮数部同士の積の和であるm1l1+m2l2+m3l3+Λ+mNlN に、各指数部の和の2のべき乗2(e+e′)を乗算するだけで求まることになる。
そこで、以上の実施形態による処理について、図1の論理ブロックにより説明すると、以下の通りになる。
・手順I
ベクトルXの各成分の仮数部m1〜mN とベクトルYの各成分の仮数部
l1〜lN を各々の乗算部31〜3N により演算し、各成分の仮数部の積
m1l1,m2l2,m3l3,……,mNlN とする。
ベクトルXの各成分の仮数部m1〜mN とベクトルYの各成分の仮数部
l1〜lN を各々の乗算部31〜3N により演算し、各成分の仮数部の積
m1l1,m2l2,m3l3,……,mNlN とする。
・手順II
ベクトルXの成分データx1の指数部eとベクトルYの成分データy
の指数部e′を加算部4 により演算し、指数部の和e+e′とする。
ベクトルXの成分データx1の指数部eとベクトルYの成分データy
の指数部e′を加算部4 により演算し、指数部の和e+e′とする。
・手順III
各成分の仮数部の積m1l1,m2l2,m3l3,……,mNlN を加算部
9により演算し、仮数部の積の和m1l1+m2l2+m3l3+Λ+mNlN
を得る。
各成分の仮数部の積m1l1,m2l2,m3l3,……,mNlN を加算部
9により演算し、仮数部の積の和m1l1+m2l2+m3l3+Λ+mNlN
を得る。
・手順IV
仮数部の積の和m1l1+m2l2+m3l3+Λ+mNlN を新たな仮数部
Aとし、指数部の和e+e′の2のべき乗2(e+e′)を共通の指数部Bとし
て、XY=A×Bを得る。
仮数部の積の和m1l1+m2l2+m3l3+Λ+mNlN を新たな仮数部
Aとし、指数部の和e+e′の2のべき乗2(e+e′)を共通の指数部Bとし
て、XY=A×Bを得る。
1:入力端子(バッファ)
2:入力端子(バッファ)
3:乗算器
4:加算器
5:最大値検出器
6:加算器
7:シフタ
8:乗算器
9:加算器
2:入力端子(バッファ)
3:乗算器
4:加算器
5:最大値検出器
6:加算器
7:シフタ
8:乗算器
9:加算器
Claims (1)
- 受信装置の復調処理に用いられるRLSアルゴリズムの中で行われる浮動小数点数のベクトル演算方法において、
処理すべきベクトルの各成分の指数部を予め前記各成分の全てについて共通化する処理を実行した後、当該ベクトルの演算処理を開始させることを特徴とする浮動小数点数のベクトル演算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005263815A JP2007079696A (ja) | 2005-09-12 | 2005-09-12 | 浮動小数点数のベクトル演算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005263815A JP2007079696A (ja) | 2005-09-12 | 2005-09-12 | 浮動小数点数のベクトル演算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007079696A true JP2007079696A (ja) | 2007-03-29 |
Family
ID=37939969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005263815A Pending JP2007079696A (ja) | 2005-09-12 | 2005-09-12 | 浮動小数点数のベクトル演算方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007079696A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2483902A (en) * | 2010-09-24 | 2012-03-28 | Advanced Risc Mach Ltd | Method of reducing floating point vectors arguments |
JP7476175B2 (ja) | 2018-09-19 | 2024-04-30 | ザイリンクス インコーポレイテッド | 乗算累積回路 |
-
2005
- 2005-09-12 JP JP2005263815A patent/JP2007079696A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2483902A (en) * | 2010-09-24 | 2012-03-28 | Advanced Risc Mach Ltd | Method of reducing floating point vectors arguments |
US9146901B2 (en) | 2010-09-24 | 2015-09-29 | Arm Limited | Vector floating point argument reduction |
GB2483902B (en) * | 2010-09-24 | 2018-10-24 | Advanced Risc Mach Ltd | Vector floating point argument reduction |
JP7476175B2 (ja) | 2018-09-19 | 2024-04-30 | ザイリンクス インコーポレイテッド | 乗算累積回路 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8626813B1 (en) | Dual-path fused floating-point two-term dot product unit | |
US9841948B2 (en) | Microarchitecture for floating point fused multiply-add with exponent scaling | |
US8078660B2 (en) | Bridge fused multiply-adder circuit | |
US5880983A (en) | Floating point split multiply/add system which has infinite precision | |
US7720899B2 (en) | Arithmetic operation unit, information processing apparatus and arithmetic operation method | |
KR101603471B1 (ko) | 디지털 신호 프로세서들에서의 신호 처리를 위한 시스템 및 방법 | |
US9696964B2 (en) | Multiply adder | |
US5993051A (en) | Combined leading one and leading zero anticipator | |
KR102591638B1 (ko) | 3-경로 단일 곱셈-누산기 설계를 위한 고속 근경로 솔루션 | |
US9952829B2 (en) | Binary fused multiply-add floating-point calculations | |
US20140095568A1 (en) | Fused Multiply-Adder with Booth-Encoding | |
JP2008510229A (ja) | 効率的浮動小数点式aluのための方法及び装置 | |
KR101560340B1 (ko) | 포화가 적용된 정수 곱셈 연산 및 곱셈-덧셈 연산 | |
US10489115B2 (en) | Shift amount correction for multiply-add | |
US20050228844A1 (en) | Fast operand formatting for a high performance multiply-add floating point-unit | |
JP2007163318A (ja) | レーダ信号処理装置とその一定誤警報確率検出方法 | |
US9400635B1 (en) | Methods and apparatus for performing dynamic data alignment for floating-point operations | |
JP2007079696A (ja) | 浮動小数点数のベクトル演算方法 | |
JP2010218197A (ja) | 浮動小数点積和演算装置、浮動小数点積和演算方法、及び浮動小数点積和演算用プログラム | |
JPH0540605A (ja) | 浮動小数点乗算装置 | |
US11494165B2 (en) | Arithmetic circuit for performing product-sum arithmetic | |
JP3064405B2 (ja) | 複素数の演算処理方式 | |
KR0176883B1 (ko) | 복소수 승산기 | |
KR100974190B1 (ko) | 부동 소수점을 이용한 복소수 곱셈방법 | |
Bisoyi et al. | Design of a Novel Fused Add-Sub Module for IEEE 754-2008 Floating Point Unit in High Speed Applications |