JPH1185466A - プロセッサ - Google Patents
プロセッサInfo
- Publication number
- JPH1185466A JPH1185466A JP10183649A JP18364998A JPH1185466A JP H1185466 A JPH1185466 A JP H1185466A JP 10183649 A JP10183649 A JP 10183649A JP 18364998 A JP18364998 A JP 18364998A JP H1185466 A JPH1185466 A JP H1185466A
- Authority
- JP
- Japan
- Prior art keywords
- input
- adder
- multiplier
- input terminal
- output
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Discrete Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】
【課題】 高速フーリエ変換を行うのに適したデジタル
信号プロセッサアーキテクチャを提供すること。 【解決手段】 本発明のプロセッサは、デジタル信号を
受信する第1と第2の入力と、前記第1と第2の入力に
入力された信号の積を出力する出力とを有する第1と第
2の乗算器と、デジタル信号を受領する第1と第2と第
3の入力と、前記入力で前記複数の信号のうちの少なく
とも2つの和を出力する出力とを有する第1と第2の加
算器とからなり、前記第1の乗算器の出力は、前記第1
加算器の第1入力と前記第2加算器の第2入力に接続さ
れ、前記第2の乗算器の出力は、前記第2加算器の第1
入力と前記第1加算器の第2入力に接続されることを特
徴とする。
信号プロセッサアーキテクチャを提供すること。 【解決手段】 本発明のプロセッサは、デジタル信号を
受信する第1と第2の入力と、前記第1と第2の入力に
入力された信号の積を出力する出力とを有する第1と第
2の乗算器と、デジタル信号を受領する第1と第2と第
3の入力と、前記入力で前記複数の信号のうちの少なく
とも2つの和を出力する出力とを有する第1と第2の加
算器とからなり、前記第1の乗算器の出力は、前記第1
加算器の第1入力と前記第2加算器の第2入力に接続さ
れ、前記第2の乗算器の出力は、前記第2加算器の第1
入力と前記第1加算器の第2入力に接続されることを特
徴とする。
Description
【0001】
【発明の属する技術分野】本発明は、デジタル信号プロ
セッサのアーキテクチャに関し、特に高速フーリエ変換
を実行するプロセッサのアーキテクチャに関する。
セッサのアーキテクチャに関し、特に高速フーリエ変換
を実行するプロセッサのアーキテクチャに関する。
【0002】
【従来の技術】フーリエ変換は、信号を時間領域から周
波数領域に変換する公知の数学的操作である。フーリエ
変換は、時間的に変動する信号に対し、その信号の周波
数成分と振幅とを抽出する操作である。デジタル領域に
おいては、離散型フーリエ変換(discrete Fourier Tra
nsform(DFT))を用いて時間領域から周波数領域に
変換している。
波数領域に変換する公知の数学的操作である。フーリエ
変換は、時間的に変動する信号に対し、その信号の周波
数成分と振幅とを抽出する操作である。デジタル領域に
おいては、離散型フーリエ変換(discrete Fourier Tra
nsform(DFT))を用いて時間領域から周波数領域に
変換している。
【0003】フーリエ変換特に離散型フーリエ変換は多
くのアプリケーションを有している。1つの共通なアプ
リケーションとしては、デジタル音声処理である。例え
ばワイアレス通信の分野においては、特にセルラ電話通
信の分野においては、過去数年に亘ってデータトラフィ
ックで指数関数的な成長が観られた。しかし、ワイアレ
ス通信においては、使用できるバンド幅は極めて限られ
ている。
くのアプリケーションを有している。1つの共通なアプ
リケーションとしては、デジタル音声処理である。例え
ばワイアレス通信の分野においては、特にセルラ電話通
信の分野においては、過去数年に亘ってデータトラフィ
ックで指数関数的な成長が観られた。しかし、ワイアレ
ス通信においては、使用できるバンド幅は極めて限られ
ている。
【0004】したがって、多くの努力が音声データを高
圧縮の伝送用形態に符号化するのに費やされている。例
えば、人が音声をデジタル化する回路および/またはソ
フトウェアを含むデジタルセルラ電話機に向かって話す
ことにより、それを高圧縮のデジタルフォーマットに圧
縮し、そしてこの圧縮されたデジタルデータを送信する
ことができる。
圧縮の伝送用形態に符号化するのに費やされている。例
えば、人が音声をデジタル化する回路および/またはソ
フトウェアを含むデジタルセルラ電話機に向かって話す
ことにより、それを高圧縮のデジタルフォーマットに圧
縮し、そしてこの圧縮されたデジタルデータを送信する
ことができる。
【0005】受信装置は、この圧縮されたデジタルデー
タを元のデジタルデータに戻す回路(ハードウエア)お
よび/またはソフトウェアを有しており、そしてそれを
アナログ形態に変換し、聴取者に提供している。一方、
高圧縮されたビデオ(画像)信号用のデジタル符号化系
も今日では幅広く用いられている。MPEGとJPEG
がよく知られた圧縮標準である。
タを元のデジタルデータに戻す回路(ハードウエア)お
よび/またはソフトウェアを有しており、そしてそれを
アナログ形態に変換し、聴取者に提供している。一方、
高圧縮されたビデオ(画像)信号用のデジタル符号化系
も今日では幅広く用いられている。MPEGとJPEG
がよく知られた圧縮標準である。
【0006】ある研究者は、音声データ,ビデオデータ
あるいは他のデータ用に周波数領域の圧縮アルゴリズム
の開発に努力している。例えば、アナログ信号はまずデ
ジタル化され、圧縮する前に周波数領域に変換される。
したがって、できるだけ速くフーリエ変換を行う方法お
よび装置が必要とされている。特に、音声信号用におい
てセルラ電話で周波数領域の圧縮アルゴリズムを具体化
するために、フーリエ変換をリアルタイムで実行しなけ
ればならない。
あるいは他のデータ用に周波数領域の圧縮アルゴリズム
の開発に努力している。例えば、アナログ信号はまずデ
ジタル化され、圧縮する前に周波数領域に変換される。
したがって、できるだけ速くフーリエ変換を行う方法お
よび装置が必要とされている。特に、音声信号用におい
てセルラ電話で周波数領域の圧縮アルゴリズムを具体化
するために、フーリエ変換をリアルタイムで実行しなけ
ればならない。
【0007】離散型フーリエ変換を実行する高速の方法
は、高速フーリエ変換(Fast Fourier Transform(FF
T))方法として公知である。このFFTを実行する様
々な種類のアルゴリズムが存在するが、これらのアルゴ
リズムは全て異なる変数でもって何回も繰り返す基本的
標準ユニット動作を共有し、そして同一の基本的な数学
的操作を共有している。このFFTアルゴリズムは、プ
ログラマブル環境下あるいは専用のハードウェアで実行
することができる。
は、高速フーリエ変換(Fast Fourier Transform(FF
T))方法として公知である。このFFTを実行する様
々な種類のアルゴリズムが存在するが、これらのアルゴ
リズムは全て異なる変数でもって何回も繰り返す基本的
標準ユニット動作を共有し、そして同一の基本的な数学
的操作を共有している。このFFTアルゴリズムは、プ
ログラマブル環境下あるいは専用のハードウェアで実行
することができる。
【0008】プログラマブル環境とは、汎用機械上で動
くソフトウェア、例えば標準のPC上で動くFFTソフ
トウェアアルゴリズムにより主として実行される操作を
言う。今日まで、高速フーリエ変換を実行する専用のハ
ードウェアが開発中で、リアルタイムのアプリケーショ
ンに必要とされるスピードに近付きつつある。しかし、
専用のハードウェアは高価であり、他の目的には使用す
ることができず専らFFT用のみである。これに対し高
速フーリエ変換アルゴリズムをプログラマブル環境下で
解決する方法は、専用のハードウェアよりも高価ではな
いがその操作速度は遅い。
くソフトウェア、例えば標準のPC上で動くFFTソフ
トウェアアルゴリズムにより主として実行される操作を
言う。今日まで、高速フーリエ変換を実行する専用のハ
ードウェアが開発中で、リアルタイムのアプリケーショ
ンに必要とされるスピードに近付きつつある。しかし、
専用のハードウェアは高価であり、他の目的には使用す
ることができず専らFFT用のみである。これに対し高
速フーリエ変換アルゴリズムをプログラマブル環境下で
解決する方法は、専用のハードウェアよりも高価ではな
いがその操作速度は遅い。
【0009】
【発明が解決しようとする課題】したがって本発明の目
的は、高速フーリエ変換を実行するハードウェアを改良
することである。さらに本発明の他の目的は、高速フー
リエ変換を実行するデジタルプロセッサを改良すること
である。さらに本発明の他の目的は、高速フーリエ変換
を非常に高速で実行できるアーキテクチャを有する汎用
のデジタルプロセッサを改良することである。さらに本
発明の目的は、プログラマブル環境下で高速フーリエ変
換を極めて速く実行できるアーキテクチャを有する汎用
のデジタルプロセッサを改良することである。
的は、高速フーリエ変換を実行するハードウェアを改良
することである。さらに本発明の他の目的は、高速フー
リエ変換を実行するデジタルプロセッサを改良すること
である。さらに本発明の他の目的は、高速フーリエ変換
を非常に高速で実行できるアーキテクチャを有する汎用
のデジタルプロセッサを改良することである。さらに本
発明の目的は、プログラマブル環境下で高速フーリエ変
換を極めて速く実行できるアーキテクチャを有する汎用
のデジタルプロセッサを改良することである。
【0010】
【課題を解決するための手段】本発明は、高速フーリエ
変換を極めて効率的に行う汎用のデジタルプロセッサア
ーキテクチャを提供する。本発明のアーキテクチャを採
用したプロセッサデバイスを用いて、プログラム環境下
で極めて効率的に高速フーリエ変換を実行することがで
きる。
変換を極めて効率的に行う汎用のデジタルプロセッサア
ーキテクチャを提供する。本発明のアーキテクチャを採
用したプロセッサデバイスを用いて、プログラム環境下
で極めて効率的に高速フーリエ変換を実行することがで
きる。
【0011】特に、本発明のアーキテクチャは、2個の
並列に配置した乗算蓄積(multiplyand accumulate
(MAC))ユニットを用い、これら2つのユニットを
交差結合している。
並列に配置した乗算蓄積(multiplyand accumulate
(MAC))ユニットを用い、これら2つのユニットを
交差結合している。
【0012】本発明のFFTアルゴリズムの標準ユニッ
トは、バタフライ操作であり、この操作においては2個
の複素数積の和と差が生成される。本発明のアーキテク
チャにおいては、2個の並列に配置されたMACがバタ
フライ操作のコアにおいて、2つの乗算操作(multipli
cation operation)を同時に実行する。各MACの乗算
回路の後に加算回路が配置される。この2個の加算回路
の出力が、共通の蓄積レジスタファイルにフォワードさ
れる。各乗算ユニットの出力は、それに対応する加算器
の1個の入力端末に、および他のMACユニットの加算
器の1個の入力端末に結合される。各加算回路への第3
の入力端末は、共通アキュムレータの出力に接続され
る。
トは、バタフライ操作であり、この操作においては2個
の複素数積の和と差が生成される。本発明のアーキテク
チャにおいては、2個の並列に配置されたMACがバタ
フライ操作のコアにおいて、2つの乗算操作(multipli
cation operation)を同時に実行する。各MACの乗算
回路の後に加算回路が配置される。この2個の加算回路
の出力が、共通の蓄積レジスタファイルにフォワードさ
れる。各乗算ユニットの出力は、それに対応する加算器
の1個の入力端末に、および他のMACユニットの加算
器の1個の入力端末に結合される。各加算回路への第3
の入力端末は、共通アキュムレータの出力に接続され
る。
【0013】このようにしてFFT計算の全標準バタフ
ライユニットの半分の計算(即ち、複素数計算の実部ま
たは虚部)が、1個のインストラクションサイクル中で
実行できる。
ライユニットの半分の計算(即ち、複素数計算の実部ま
たは虚部)が、1個のインストラクションサイクル中で
実行できる。
【0014】
【発明の実施の形態】図1は電磁信号の振幅と時間との
関係を表すグラフである。信号は固定周波数ω0 のサイ
ン波形の信号である。この信号はフーリエ変換手段によ
り周波数領域に変換され、このアナログ信号内の周波数
成分を決定している。このアナログ信号はまたサンプル
間の固定周期でもって時間的に異なる点でもって信号を
サンプリングすることによりデジタル化される。エイリ
アシングを回避するために、ナイキスト条件に適合しな
ければならない。即ち、サンプリングレートは、その信
号の最大周波数成分の2倍以上でなければならない。
関係を表すグラフである。信号は固定周波数ω0 のサイ
ン波形の信号である。この信号はフーリエ変換手段によ
り周波数領域に変換され、このアナログ信号内の周波数
成分を決定している。このアナログ信号はまたサンプル
間の固定周期でもって時間的に異なる点でもって信号を
サンプリングすることによりデジタル化される。エイリ
アシングを回避するために、ナイキスト条件に適合しな
ければならない。即ち、サンプリングレートは、その信
号の最大周波数成分の2倍以上でなければならない。
【0015】デジタル領域においては、信号のデジタル
サンプルは、離散型フーリエ変換(DFT)アルゴリズ
ムを通して、離散的方法で信号の周波数成分を決定して
いる。特にDFT解析においては、信号は所望の期間の
連続するセグメントに分割される、そして各セグメント
が複数のサンプルを有している。図1に示した例におい
は、信号はセグメント毎に16個のサンプリングポイン
トを与える周期でサンプリングされる。
サンプルは、離散型フーリエ変換(DFT)アルゴリズ
ムを通して、離散的方法で信号の周波数成分を決定して
いる。特にDFT解析においては、信号は所望の期間の
連続するセグメントに分割される、そして各セグメント
が複数のサンプルを有している。図1に示した例におい
は、信号はセグメント毎に16個のサンプリングポイン
トを与える周期でサンプリングされる。
【0016】DFTアルゴリズムを用いて信号の各セグ
メントは、周波数領域に変換される。周波数領域内で区
別できる離散型の周波数成分の数は、セグメント内のサ
ンプル数に等しい。したがって、信号の各セグメントの
離散型フーリエ変換は、周波数バンド全体に亘って16
個の異なる等間隔に離間した周波数成分に区別される。
この周波数バンド全域は、サンプリング周波数と信号の
バンド幅によって支配される。そして特に周波数バンド
は、0ヘルツから信号のバンド幅で正規化されたサンプ
リング周波数の2分の1まで広がる。
メントは、周波数領域に変換される。周波数領域内で区
別できる離散型の周波数成分の数は、セグメント内のサ
ンプル数に等しい。したがって、信号の各セグメントの
離散型フーリエ変換は、周波数バンド全体に亘って16
個の異なる等間隔に離間した周波数成分に区別される。
この周波数バンド全域は、サンプリング周波数と信号の
バンド幅によって支配される。そして特に周波数バンド
は、0ヘルツから信号のバンド幅で正規化されたサンプ
リング周波数の2分の1まで広がる。
【0017】図2は、図1の時間領域の信号がDFT解
析により周波数領域に変換された状態を表す。図2は、
信号の振幅対周波数の関係をプロットしている。時間領
域の信号は、固定周波数のサイン波形であるので周波数
領域は1個の周波数成分、即ち周波数ω0 の成分のみを
有する。
析により周波数領域に変換された状態を表す。図2は、
信号の振幅対周波数の関係をプロットしている。時間領
域の信号は、固定周波数のサイン波形であるので周波数
領域は1個の周波数成分、即ち周波数ω0 の成分のみを
有する。
【0018】他の例として図3は、若干複雑な時間領域
の信号を示す。これはω0 のキャリア周波数上に周波数
ωm の情報信号を載せた振幅変調信号である。この信号
は、周波数領域に変換されると、次の3種類の周波数成
分を有する。 ω0−ωm,ω0,ω0+ωm
の信号を示す。これはω0 のキャリア周波数上に周波数
ωm の情報信号を載せた振幅変調信号である。この信号
は、周波数領域に変換されると、次の3種類の周波数成
分を有する。 ω0−ωm,ω0,ω0+ωm
【0019】
【数1】 デジタルフーリエ変換は上記の式で表される。ここで、
Nは、指定された時間セグメントのサンプル数である
(そして周波数領域信号の個別の周波数成分の数でもあ
る)。nは、時間領域サンプルの指数で、n=0からn
=N−1である。x(n)は、nに対応する時間サンプ
ル点における時間領域信号の振幅である。kは、特定の
周波数領域の成分で、k=0からk=N−1である。X
(k)は、kに対応する周波数における周波数成分の振
幅である。
Nは、指定された時間セグメントのサンプル数である
(そして周波数領域信号の個別の周波数成分の数でもあ
る)。nは、時間領域サンプルの指数で、n=0からn
=N−1である。x(n)は、nに対応する時間サンプ
ル点における時間領域信号の振幅である。kは、特定の
周波数領域の成分で、k=0からk=N−1である。X
(k)は、kに対応する周波数における周波数成分の振
幅である。
【0020】上記の式から分かるように、DFTアルゴ
リズムを実行する計算量は、6N2に比例する。各x
(n)と、ej2πkn/Nは複素数である。したがって、各
乗算操作は、全部で6回の操作に対し、4回の乗算と2
回の加算を含む。各x(k)に対しては、4回の乗算と
2回の加算がN回実行される。さらにx(k)は、k=
1からNまで計算しなければならない。かくして計算負
荷は6N2 に比例する。
リズムを実行する計算量は、6N2に比例する。各x
(n)と、ej2πkn/Nは複素数である。したがって、各
乗算操作は、全部で6回の操作に対し、4回の乗算と2
回の加算を含む。各x(k)に対しては、4回の乗算と
2回の加算がN回実行される。さらにx(k)は、k=
1からNまで計算しなければならない。かくして計算負
荷は6N2 に比例する。
【0021】高速フーリエ変換アルゴリズムは、この6
N2 に比例する計算量をNlog2Nに低減するもので
ある。FFTを実行する様々な種類のアルゴリズムが存
在するが、これら全てFFTバタフライ操作として公知
の基本標準型計算操作を共有している。FFTアルゴリ
ズムは、N=2R である必要がある。ここでRは、正整
数である。
N2 に比例する計算量をNlog2Nに低減するもので
ある。FFTを実行する様々な種類のアルゴリズムが存
在するが、これら全てFFTバタフライ操作として公知
の基本標準型計算操作を共有している。FFTアルゴリ
ズムは、N=2R である必要がある。ここでRは、正整
数である。
【0022】図5は、標準的なFFTバタフライ操作を
表し、下記の式2,3が数学的操作を表す。 X(m+1)=X(m)+W(N,k)Y(m) (式2) Y(m+1)=X(m)−W(N,k)Y(m) (式3)
表し、下記の式2,3が数学的操作を表す。 X(m+1)=X(m)+W(N,k)Y(m) (式2) Y(m+1)=X(m)−W(N,k)Y(m) (式3)
【0023】X,Yは、入力信号である。Wは、W=e
-j2πk/Nで表される複素数変数である。図5から分かる
ように、バタフライという用語は、標準ユニットが2個
の入力信号X,Yと第3の変数W(N,k)との間の操
作に関連する2個の式に関連しているという事実から来
ている。具体的に説明すると、第1の結果は、入力信号
Yと変数W(N,k)の積を他の入力信号Xに加算し、
一方第2の結果は、この積を同一の入力信号(即ち、第
1の入力信号)から減算することにより得られる。
-j2πk/Nで表される複素数変数である。図5から分かる
ように、バタフライという用語は、標準ユニットが2個
の入力信号X,Yと第3の変数W(N,k)との間の操
作に関連する2個の式に関連しているという事実から来
ている。具体的に説明すると、第1の結果は、入力信号
Yと変数W(N,k)の積を他の入力信号Xに加算し、
一方第2の結果は、この積を同一の入力信号(即ち、第
1の入力信号)から減算することにより得られる。
【0024】X(m),Y(m),W(N,k)は、複
素数であるため次のように仮定する。 X(m)=b1+jc1 (式4) Y(m)=b2+jc2 (式5) W(N,k)=b0+jc0 (式6) かくして、 X(m+1)=b1+b0b2−c0c2+j(c1+b0c2+c0b2) (式7) Y(m+1)=b1−b0b2+c0c2+j(c1−b0c2−c0b2) (式8) となる。
素数であるため次のように仮定する。 X(m)=b1+jc1 (式4) Y(m)=b2+jc2 (式5) W(N,k)=b0+jc0 (式6) かくして、 X(m+1)=b1+b0b2−c0c2+j(c1+b0c2+c0b2) (式7) Y(m+1)=b1−b0b2+c0c2+j(c1−b0c2−c0b2) (式8) となる。
【0025】X(m+1)とY(m+1)の実部の計算
は、それぞれ4回の乗算と4回の加算を必要とする。し
かし、X(m+1)に対する式の4回の乗算は、Y(m
+1)に対する式の乗算と同一である(即ち、b0b2,
c0c2,b0c2,c0b2の計算は同一である)。
は、それぞれ4回の乗算と4回の加算を必要とする。し
かし、X(m+1)に対する式の4回の乗算は、Y(m
+1)に対する式の乗算と同一である(即ち、b0b2,
c0c2,b0c2,c0b2の計算は同一である)。
【0026】全てのFFTアルゴリズムにおいては、標
準的なFFTバタフライ操作が、異なる変数X,Y,W
に対し何回も実行され、そして時間領域の信号セグメン
トの高速フーリエ変換に到達することになる。図6は、
小型の完全なFFT数学操作を表す。同図において図6
の左側の入力は、図1の時間領域サンプルX(0)から
X(15)である。式2,3の入力変数X,Yに対応す
る。
準的なFFTバタフライ操作が、異なる変数X,Y,W
に対し何回も実行され、そして時間領域の信号セグメン
トの高速フーリエ変換に到達することになる。図6は、
小型の完全なFFT数学操作を表す。同図において図6
の左側の入力は、図1の時間領域サンプルX(0)から
X(15)である。式2,3の入力変数X,Yに対応す
る。
【0027】16個のサンプルの例では、FFT操作
は、4段m=1からm=4を行う。式2,3から分かる
ように、バタフライ操作は、入力の対に対して実行され
る。16個のサンプルがあるため各段m=1からm=4
においては、バタフライ動作は8回実行される。例え
ば、m=1段においては、8個の入力対は次のようにな
る。 (1) X(0)とX(1), (2) X(2)とX(3), (3) X(4)とX(5), (4) X(6)とX(7), (5) X(8)とX(9), (6) X(10)とX(11), (7) X(12)とX(13), (8) X(14)とX(15)。
は、4段m=1からm=4を行う。式2,3から分かる
ように、バタフライ操作は、入力の対に対して実行され
る。16個のサンプルがあるため各段m=1からm=4
においては、バタフライ動作は8回実行される。例え
ば、m=1段においては、8個の入力対は次のようにな
る。 (1) X(0)とX(1), (2) X(2)とX(3), (3) X(4)とX(5), (4) X(6)とX(7), (5) X(8)とX(9), (6) X(10)とX(11), (7) X(12)とX(13), (8) X(14)とX(15)。
【0028】かくして例えば図6において、第1のバタ
フライ操作においては、時間領域サンプルX(0)は、
式2,3のX(m)に対応し、時間領域サンプルX
(1)は、式2,3のY(m)に対応する。m=1段に
おいては、例えば入力X(0)とX(1)は、実際の時
間領域サンプルであり、そのため複素数ではない。即ち
実部しか含まない。しかし、変数W(N,k)は複素数
である。したがって、m=1段の元の入力が実部のみで
も操作は複素数で行われる。さらにまたその後の全ての
段m=2からm=4においては全ての数は複素数であ
る。
フライ操作においては、時間領域サンプルX(0)は、
式2,3のX(m)に対応し、時間領域サンプルX
(1)は、式2,3のY(m)に対応する。m=1段に
おいては、例えば入力X(0)とX(1)は、実際の時
間領域サンプルであり、そのため複素数ではない。即ち
実部しか含まない。しかし、変数W(N,k)は複素数
である。したがって、m=1段の元の入力が実部のみで
も操作は複素数で行われる。さらにまたその後の全ての
段m=2からm=4においては全ての数は複素数であ
る。
【0029】第2段m=2においては、X(0)の横列
に対応する第1段の出力は、バタフライ操作によりX
(2)に対応する第3横列の出力と組み合わされる。同
様にX(1)の横列はX(3)の横列と組み合わされ、
X(4)の横列はX(6)の横列と組み合わされ、X
(5)の横列はX(7)の横列と組み合わされ、X
(8)の横列はX(10)の横列と組み合わされ、X
(9)の横列はX(11)の横列と組み合わされ、X
(12)の横列はX(14)の横列と組み合われ、X
(13)の横列はX(15)の横列と組み合わされる。
に対応する第1段の出力は、バタフライ操作によりX
(2)に対応する第3横列の出力と組み合わされる。同
様にX(1)の横列はX(3)の横列と組み合わされ、
X(4)の横列はX(6)の横列と組み合わされ、X
(5)の横列はX(7)の横列と組み合わされ、X
(8)の横列はX(10)の横列と組み合わされ、X
(9)の横列はX(11)の横列と組み合わされ、X
(12)の横列はX(14)の横列と組み合われ、X
(13)の横列はX(15)の横列と組み合わされる。
【0030】第3段においては、X(0)の横列はX
(4)の横列と組み合わされ、同様にX(1)の横列は
X(5)の横列と組み合わされ、X(2)の横列はX
(6)の横列と組み合わされ、X(3)の横列はX
(7)の横列と組み合わされ、X(8)の横列はX(1
2)の横列と組み合わされ、X(9)の横列はX(1
3)の横列と組み合わされ、X(10)の横列はX(1
4)の横列と組み合われ、X(11)の横列はX(1
5)の横列と組み合わされる。
(4)の横列と組み合わされ、同様にX(1)の横列は
X(5)の横列と組み合わされ、X(2)の横列はX
(6)の横列と組み合わされ、X(3)の横列はX
(7)の横列と組み合わされ、X(8)の横列はX(1
2)の横列と組み合わされ、X(9)の横列はX(1
3)の横列と組み合わされ、X(10)の横列はX(1
4)の横列と組み合われ、X(11)の横列はX(1
5)の横列と組み合わされる。
【0031】最終段m=4においては、X(0)の横列
はX(8)の横列と組み合わされ、同様にX(1)の横
列はX(9)の横列と組み合わされ、X(2)の横列は
X(10)の横列と組み合わされ、X(3)の横列はX
(11)の横列と組み合わされ、X(4)の横列はX
(12)の横列と組み合わされ、X(5)の横列はX
(13)の横列と組み合わされ、X(6)の横列はX
(14)の横列と組み合われ、X(7)の横列はX(1
5)の横列と組み合わされる。
はX(8)の横列と組み合わされ、同様にX(1)の横
列はX(9)の横列と組み合わされ、X(2)の横列は
X(10)の横列と組み合わされ、X(3)の横列はX
(11)の横列と組み合わされ、X(4)の横列はX
(12)の横列と組み合わされ、X(5)の横列はX
(13)の横列と組み合わされ、X(6)の横列はX
(14)の横列と組み合われ、X(7)の横列はX(1
5)の横列と組み合わされる。
【0032】かくして図示した例においては、16個の
サンプルが時間領域信号のセグメント毎に取られ、バタ
フライ操作が各段において8回実行されそしてそれが4
段ある。したがって、バタフライ操作は、8×4=32
回実行される。
サンプルが時間領域信号のセグメント毎に取られ、バタ
フライ操作が各段において8回実行されそしてそれが4
段ある。したがって、バタフライ操作は、8×4=32
回実行される。
【0033】多くの実際の状況においては、サンプル数
は16よりはるかに大きく、例えば256,512,1
024個のサンプルを含むセグメントが通常用いられ
る。
は16よりはるかに大きく、例えば256,512,1
024個のサンプルを含むセグメントが通常用いられ
る。
【0034】図7は、本発明のプロセッサのアーキテク
チャを示し、2個の並列に配置した乗算蓄積ユニット
(MAC)を有し、その間を交差結合し、これによりF
FTのバタフライ操作を2回のみの指示サイクル中で行
うことができるようになる。
チャを示し、2個の並列に配置した乗算蓄積ユニット
(MAC)を有し、その間を交差結合し、これによりF
FTのバタフライ操作を2回のみの指示サイクル中で行
うことができるようになる。
【0035】このアーキテクチャは、2個の並列に配置
しかつ相互に接続したMAC−AとMAC−Bを有す
る。この2個の並列に配置したMACは同一である。M
ACーAは、データレジスタ12,14を有し、メモリ
バス80を介してメモリ100からデータを受領する。
MACーBは、同じく同一の2個のレジスタ16,18
を有する。レジスタ12,14,16,18への入力
は、全てメモリバス80に接続されている。レジスタ1
2の出力は、乗算ユニット22の第1入力に接続され、
レジスタ14の出力は乗算ユニット22の第2入力に接
続される。
しかつ相互に接続したMAC−AとMAC−Bを有す
る。この2個の並列に配置したMACは同一である。M
ACーAは、データレジスタ12,14を有し、メモリ
バス80を介してメモリ100からデータを受領する。
MACーBは、同じく同一の2個のレジスタ16,18
を有する。レジスタ12,14,16,18への入力
は、全てメモリバス80に接続されている。レジスタ1
2の出力は、乗算ユニット22の第1入力に接続され、
レジスタ14の出力は乗算ユニット22の第2入力に接
続される。
【0036】同様な構成が第2のMAC−Bユニットに
もあり、レジスタ16,18の出力は、それぞれ乗算ユ
ニット24の第1入力と、第2入力に接続される。乗算
ユニット22,24の出力は、それぞれ乗積アキュムレ
ータ26,28に接続される。この乗積アキュムレータ
26、28の後方には、それぞれ論理演算ユニット(ar
ithmetic logic unit(ALU)) 30,32が配置さ
れる。この2個のALUの出力は共通のアキュムレータ
レジスタファイル34に結合される。
もあり、レジスタ16,18の出力は、それぞれ乗算ユ
ニット24の第1入力と、第2入力に接続される。乗算
ユニット22,24の出力は、それぞれ乗積アキュムレ
ータ26,28に接続される。この乗積アキュムレータ
26、28の後方には、それぞれ論理演算ユニット(ar
ithmetic logic unit(ALU)) 30,32が配置さ
れる。この2個のALUの出力は共通のアキュムレータ
レジスタファイル34に結合される。
【0037】次にALU30の詳細を説明するが、本発
明の実施例においては、ALU32は特に異なる指摘し
た点以外はALU30と同一である。ALU30は、3
個の入力端末とS0,S1,S2を有する。ALU30
はまた入力S1に対する3個の入力ソースパスから1つ
を選択するマルチプレクサを有する。入力端末S0は、
アキュムレータレジスタファイル34の出力に接続され
てインストラクションサイクル毎にラップアラウンド
(wrap-around) 演算操作を行う。ALU30の端末S
1は、MAC−Aの対応する乗積アキュムレータ26の
出力に接続される。ALU30の端末S2は、並列に配
置されたMACーBの乗積アキュムレータ28に接続さ
れる。
明の実施例においては、ALU32は特に異なる指摘し
た点以外はALU30と同一である。ALU30は、3
個の入力端末とS0,S1,S2を有する。ALU30
はまた入力S1に対する3個の入力ソースパスから1つ
を選択するマルチプレクサを有する。入力端末S0は、
アキュムレータレジスタファイル34の出力に接続され
てインストラクションサイクル毎にラップアラウンド
(wrap-around) 演算操作を行う。ALU30の端末S
1は、MAC−Aの対応する乗積アキュムレータ26の
出力に接続される。ALU30の端末S2は、並列に配
置されたMACーBの乗積アキュムレータ28に接続さ
れる。
【0038】端末S1は、アキュムレータレジスタファ
イル34とアキュムレータレジスタ16の出力からの信
号を受信するよう接続されている。しかし、本発明に関
しては、ALU30の端末S1への関連入力ソースのみ
が乗積アキュムレータ26の出力である。他の接続は、
このプロセッサアーキテクチャを様々な種類の演算操
作,論理操作用に用いることができる汎用アーキテクチ
ャにするために具備されている。
イル34とアキュムレータレジスタ16の出力からの信
号を受信するよう接続されている。しかし、本発明に関
しては、ALU30の端末S1への関連入力ソースのみ
が乗積アキュムレータ26の出力である。他の接続は、
このプロセッサアーキテクチャを様々な種類の演算操
作,論理操作用に用いることができる汎用アーキテクチ
ャにするために具備されている。
【0039】MAC−Bは、構造的にはMAC−Aと同
一である。ALU32の入力端末S2は、MAC−Aの
乗積アキュムレータ26の出力に接続され、ALU32
の入力端末S1は、MAC−Bの乗積アキュムレータ2
8の出力を受領する。
一である。ALU32の入力端末S2は、MAC−Aの
乗積アキュムレータ26の出力に接続され、ALU32
の入力端末S1は、MAC−Bの乗積アキュムレータ2
8の出力を受領する。
【0040】この交差接続アーキテクチャを有する二重
MACにおいては、基準となるFFTバタフライ操作
は、わずか2サイクル実行されるだけである。特に前出
の式7,8は、ここで再度記載するが、式7,8の実部
の結果は1回のサイクルで計算されるが、その理由は式
7の実部に必要とされる2回の乗算は、式8の実部の2
回の乗算と同一だからである。 X(m+1)=b1+b0b2−c0c2+j(c1+b0c2+c0b2) (式7) Y(m+1)=b1−b0b2+c0c2+j(c1−b0c2−c0b2) (式8)
MACにおいては、基準となるFFTバタフライ操作
は、わずか2サイクル実行されるだけである。特に前出
の式7,8は、ここで再度記載するが、式7,8の実部
の結果は1回のサイクルで計算されるが、その理由は式
7の実部に必要とされる2回の乗算は、式8の実部の2
回の乗算と同一だからである。 X(m+1)=b1+b0b2−c0c2+j(c1+b0c2+c0b2) (式7) Y(m+1)=b1−b0b2+c0c2+j(c1−b0c2−c0b2) (式8)
【0041】したがって、積b0b2 ,c0c2 が同時に
計算され、その後同時にb1 に加算されたりb1 から減
算されたりすると、バタフライ操作の半分が1回のイン
ストラクションサイクル中で行うことができる。図7の
アーキテクチャは、このようなことを行うものである。
計算され、その後同時にb1 に加算されたりb1 から減
算されたりすると、バタフライ操作の半分が1回のイン
ストラクションサイクル中で行うことができる。図7の
アーキテクチャは、このようなことを行うものである。
【0042】特に、データレジスタ14にはメモリシス
テム100からb0 が与えられ、一方、データレジスタ
16にはメモリ100からb2 が与えられる。同時にデ
ータレジスタ18にはc2 が与えられ、データレジスタ
20にはc0 が与えられる。乗算ユニット22は、積b
0b2を計算して出力し、一方乗算ユニット22は、同時
に積c0c2を計算し出力する。この出力b0b2は、乗積
アキュムレータ26を通ってALU30の入力端末S1
におよびALU32の入力端末S2に与えられる。
テム100からb0 が与えられ、一方、データレジスタ
16にはメモリ100からb2 が与えられる。同時にデ
ータレジスタ18にはc2 が与えられ、データレジスタ
20にはc0 が与えられる。乗算ユニット22は、積b
0b2を計算して出力し、一方乗算ユニット22は、同時
に積c0c2を計算し出力する。この出力b0b2は、乗積
アキュムレータ26を通ってALU30の入力端末S1
におよびALU32の入力端末S2に与えられる。
【0043】同様に積c0c2は、乗積アキュムレータ2
8を通ってALU32の入力端末S1とALU30の入
力端末S2に与えられる。b1 はアキュムレータレジス
タファイル34からALU30とALU32の両方の入
力S0に与えられる。ALU30はその3個の入力端に
全ての3個の値を加えることができる。本明細書におい
ては、一般にプロセッサの技術分野において「加算」お
よび「和」は、一般的に加算と減算の両方を含むものと
する。
8を通ってALU32の入力端末S1とALU30の入
力端末S2に与えられる。b1 はアキュムレータレジス
タファイル34からALU30とALU32の両方の入
力S0に与えられる。ALU30はその3個の入力端に
全ての3個の値を加えることができる。本明細書におい
ては、一般にプロセッサの技術分野において「加算」お
よび「和」は、一般的に加算と減算の両方を含むものと
する。
【0044】したがって、ALU30はb1+b0b2−
c0c2 を計算し、一方ALU32は同時にb1−b0b2
+c0c2 を計算する。したがって、式7,8のX(m
+1)とY(m+1)の解の実部全体が1回のサイクル
でMAC内で同時に計算できる。次のサイクルで同一の
操作がX(m+1)とY(m+1)の虚部について行わ
れる。したがって、この構成でFFTバタフライ操作全
部が2回のインストラクションサイクルで実行できる。
c0c2 を計算し、一方ALU32は同時にb1−b0b2
+c0c2 を計算する。したがって、式7,8のX(m
+1)とY(m+1)の解の実部全体が1回のサイクル
でMAC内で同時に計算できる。次のサイクルで同一の
操作がX(m+1)とY(m+1)の虚部について行わ
れる。したがって、この構成でFFTバタフライ操作全
部が2回のインストラクションサイクルで実行できる。
【0045】本発明のアーキテクチャは、様々な種類の
演算操作および論理操作を汎用プロセッサアーキテクチ
ャとして実行できる汎用プロセッサアーキテクチャであ
る。
演算操作および論理操作を汎用プロセッサアーキテクチ
ャとして実行できる汎用プロセッサアーキテクチャであ
る。
【0046】データ負荷サイクルを含む完全なFFTア
ルゴリズムを考慮した場合、このFFTバタフライ操作
は4回のサイクルで実行できる。交差接続のない二重の
並列配置のMACにおいては、バタフライ操作は少なく
とも6回のサイクルが必要であり、その結果効率が50
%低下する。
ルゴリズムを考慮した場合、このFFTバタフライ操作
は4回のサイクルで実行できる。交差接続のない二重の
並列配置のMACにおいては、バタフライ操作は少なく
とも6回のサイクルが必要であり、その結果効率が50
%低下する。
【0047】
【発明の効果】実際の完全なFFTアルゴリズム用に本
発明により行われるインストラクションサイクルの全体
的な節約状態を計算するために、統計的解析を実行し
た。本発明のアーキテクチャは、2個の並列配置でかつ
交差接続のないプロセッサを同時に動作させるようなア
ーキテクチャに必要とされる時間のわずか37%でFF
T操作全体を実行できる。
発明により行われるインストラクションサイクルの全体
的な節約状態を計算するために、統計的解析を実行し
た。本発明のアーキテクチャは、2個の並列配置でかつ
交差接続のないプロセッサを同時に動作させるようなア
ーキテクチャに必要とされる時間のわずか37%でFF
T操作全体を実行できる。
【図1】時間領域のサイン波形信号を表す図
【図2】図1のサイン波形信号を周波数領域に変換した
状態を表す図
状態を表す図
【図3】時間領域の振幅変調信号を表す図
【図4】図3の振幅変調信号を周波数領域に変換した状
態を表す図
態を表す図
【図5】高速フーリエ変換アルゴリズムの標準型バタフ
ライ演算ユニットを表す図
ライ演算ユニットを表す図
【図6】完全な形の高速フーリエ変換アルゴリズムを表
す図
す図
【図7】本発明によるデジタル信号プロセッサのアーキ
テクチャを表す図
テクチャを表す図
12,14,16,18 データレジスタ 22,24 乗算ユニット 26,28 乗積アキュムレータ 30,32 論理演算ユニット 34 アキュムレータレジスタファイル 80 メモリバス 100 メモリシステム
───────────────────────────────────────────────────── フロントページの続き (71)出願人 596077259 600 Mountain Avenue, Murray Hill, New Je rsey 07974−0636U.S.A. (72)発明者 ホサハリー アール.スリニヴァス アメリカ合衆国,18104 ペンシルヴァニ ア,アレンタウン,ベンナー ロード 554,アパートメント ナンバー102
Claims (22)
- 【請求項1】 (A) デジタル信号を受信する第1と
第2の入力と、前記第1と第2の入力に入力された信号
の積を出力する出力とを有する第1と第2の乗算器(2
2,24)と、 (B) デジタル信号を受領する第1と第2と第3の入
力(S1、S2、S3)と、前記入力で前記複数の信号
のうちの少なくとも2つの和を出力する出力とを有する
第1と第2の加算器(30、32)と、 からなるプロセッサにおいて、 前記第1乗算器(22)の出力は、前記第1加算器(3
0)の第1入力(S1)と前記第2加算器(32)の第
2入力(S2)に接続され、 前記第2乗算器(24)の出力は、前記第2加算器(3
2)の第1入力(S1)と前記第1加算器(30)の第
2入力(S2)に接続されることを特徴とするプロセッ
サ。 - 【請求項2】 (C) 前記第1と第2の加算器(3
0、32)の出力にそれぞれ接続される第1と第2の入
力と、前記第1と第2の加算器の第3の入力(S3)に
接続される出力とを有するアキュムレータ(34)をさ
らに有することを特徴とする請求項1記載のプロセッ
サ。 - 【請求項3】 (D) 前記第1と第2の乗算器(2
2,24)の前記第1と第2の入力にそれぞれ接続さ
れ、前記デジタル信号を前記乗算器(22,24)に与
えるメモリ(100)を有し、前記デジタル信号から前
記第1と第2の積が計算されることを特徴とする請求項
2記載のプロセッサ。 - 【請求項4】 前記アキュムレータ(34)の出力は、
さらにメモリシステム(100)に接続されることを特
徴とする請求項3記載のプロセッサ。 - 【請求項5】 前記メモリシステム(100)は、前記
第1と第2のレジスタに結合される第1メモリと、前記
第3と第4のレジスタに結合される第2メモリとを有す
ることを特徴とする請求項4記載のプロセッサ。 - 【請求項6】 前記第1と第2の加算器(30、32)
は、論理演算ユニットを有することを特徴とする請求項
5記載のプロセッサ。 - 【請求項7】 (E) 前記メモリシステムと前記第1
乗算器(22)の第1入力との間に接続される第1レジ
スタ(12)と、 (F) 前記メモリシステムと前記第1乗算器(22)
の第2入力との間に接続される第2レジスタ(14)
と、 (G) 前記メモリシステムと前記第2乗算器(24)
の第1入力との間に接続される第3レジスタ(16)
と、 (H) 前記メモリシステムと前記第2乗算器(24)
の第2入力との間に接続される第4レジスタ(18)と
を有することを特徴とする請求項6記載のプロセッサ。 - 【請求項8】 (I) 前記第1乗算器の出力に接続さ
れる入力と、前記第1加算器の第1入力と、前記第2加
算器の第2入力に接続される出力とを有する第5レジス
タ(26)と、 (J) 前記第2乗算器の出力に接続される入力と、前
記第1加算器の第2入力と、前記第2加算器の第1入力
に接続される出力とを有する第6レジスタ(28)とを
さらに有することを特徴とする請求項7記載のプロセッ
サ。 - 【請求項9】 デジタルプロセッサ装置内で、 X=b1+b0b2−c0c2 Y=b1−b0b2+c0c2 を計算する方法において、 (1) 第1と第2の並列配置の乗算器内で、それぞれ
b0b2とc0c2を同時に乗算するステップと、 (2) 第1と第2の並列配置の加算器内で、それぞれ
b1+b0b2−c0c2と、b1−b0b2+c0c2を同時に
計算するステップとを有することを特徴とするデジタル
プロセッサ装置内での計算方法。 - 【請求項10】 前記(2)のステップは、 (2.1) 前記第1乗算器からb0b2を前記第1加算
器の第1入力端末と第2加算器の第2入力端末に与える
ステップと、 (2.2) 前記第2乗算器からc0c2を前記第1加算
器の第2入力端末と第2加算器の第1入力端末に与える
ステップと、 (2.3) b1 を前記第1と第2の加算器を第3入力
端末に与えるステップと、 (2.4) 前記各加算器が個々にb1+b0b2−c0c
2とb1−b0b2+c0c2に応じて、それぞれの入力端末
に加えられた値をそれぞれ別個に計算するステップを有
することを特徴とする請求項9記載の方法。 - 【請求項11】 前記(1)のステップは、 (1.1) メモリからb0 を前記第1乗算器の第1入
力端末に与えるステップと、 (1.2) 前記メモリからb2 を前記第1乗算器の第
2入力端末に与えるステップと、 (1.3) 前記メモリからc0 を前記第2乗算器の第
1入力端末に与えるステップと、 (1.4) 前記メモリからc2 を前記第2乗算器の第
2入力端末に与えるステップと、 (1.5) 各第1と第2の乗算器が、個々にそれぞれ
それらの入力端末に与えられた値を乗算するステップと
を有することを特徴とする請求項10記載の方法。 - 【請求項12】 デジタルプロセッサ装置内で、 X(m+1)=b1+b0b2−c0c2+j(c1+b0b2
+c0b2) Y(m+1)=b1−b0b2+c0c2+j(c1−b0c2
−c0b2) を計算する方法において、 (1) 第1と第2の並列配置の乗算器内で、それぞれ
b0b2とc0c2を同時に乗算するステップと、 (2) 第1と第2の並列配置の加算器内で、それぞれ
b1+b0b2+c0c2とb1−b0b2+c0c2を同時に計
算するステップと、 (3) 第1と第2の並列配置の乗算器内で、それぞれ
b0c2とc0b2を同時に乗算するステップと、 (4) 第1と第2の並列配置の加算器内で、それぞれ
c1+b0c2+c0b2と、c1−b0b2−c0b2を同時に
計算するステップとを有することを特徴とするデジタル
プロセッサ装置内での計算方法。 - 【請求項13】 前記(2)のステップは、 (2.1) 前記第1乗算器からb0b2を前記第1加算
器の第1入力端末と、第2加算器の第2入力端末に与え
るステップと、 (2.2) 前記第2乗算器からc0c2を前記第1加算
器の第2入力端末と、第2加算器の第1入力端末に与え
るステップと、 (2.3) b1 を前記第1と第2の各加算器を第3入
力端末に与えるステップと、 (2.4) 前記各加算器が個々にb1+b0b2−c0c
2とb1−b0b2+c0c2に応じて、それぞれの入力端末
に加えられた値をそれぞれ別個に計算するステップとを
有することを特徴とする請求項12記載の方法。 - 【請求項14】 前記(1)のステップは、 (1.1) メモリからb0 を前記第1乗算器の第1入
力端末に与えるステップと、 (1.2) 前記メモリからb2 を前記第1乗算器の第
2入力端末に与えるステップと、 (1.3) 前記メモリからc0 を前記第2乗算器の第
1入力端末に与えるステップと、 (1.4) 前記メモリからc2 を前記第2乗算器の第
2入力端末に与えるステップと、 (1.5) 各第1と第2の乗算器は、個々にそれぞれ
それらの入力端末に与えられた値を乗算するステップと
を有することを特徴とする請求項13記載の方法。 - 【請求項15】 前記(4)のステップは、 (4.1) 前記第1乗算器からb0c2を前記第1加算
器の第1入力端末と、前記第2加算器の第2入力端末に
与えるステップと、 (4.2) 前記第2乗算器からc0b2を前記第1加算
器の第2入力端末と、前記第2加算器の第1入力端末に
与えるステップと、 (4.3) c1 を前記第1と第2の各加算器を第3入
力端末に与えるステップと、 (4.4) 前記第1と第2の各加算器が個々にc1+
b0c2+c0b2とc1−b0b2−c0b2に応じて、それ
ぞれの入力端末に加えられた値をそれぞれ別個に計算す
るステップとを有することを特徴とする請求項14記載
の方法。 - 【請求項16】 前記(3)のステップは、 (3.1) メモリからb0 を前記第1乗算器の第1入
力端末に与えるステップと、 (3.2) 前記メモリからc2 を前記第1乗算器の第
2入力端末に与えるステップと、 (3.3) 前記メモリからc0 を前記第2乗算器の第
1入力端末に与えるステップと、 (3.4) 前記メモリからb2 を前記第2乗算器の第
2入力端末に与えるステップと、 (3.5) 各第1と第2の乗算器は、個々にそれぞれ
それらの入力端末に与えられた値を乗算するステップと
を有することを特徴とする請求項15記載の方法。 - 【請求項17】 デジタルプロセッサ装置内で、高速フ
ーリエ変換のバタフライ操作を行う方法において、 (1) 第1と第2の並列配置の乗算器内でそれぞれ第
1積と第2積を同時に計算するステップと、 (2) 前記第1積を第1加算器の第1入力端末と第2
加算器の第2入力端末に与えるステップと、 (3) 前記ステップ(2)と同時に、前記第2積を第
1加算器の第2入力端末と第2加算器の第1入力端末に
与えるステップと、 (4) 前記ステップ(2)と(3)と同時に、前記第
1と第2の加算器のそれぞれの第3入力端末に値を与え
るステップと、 (5) 前記第1加算器内で前記値を前記第1の積に加
算し、そこから前記第2の積を減算するステップと、 (6) 前記(5)のステップと同時に、前記第2加算
器内で前記第1の積を前記値から減算し、第2の積をそ
れに加算するステップと、 (7) 第3の積と第4の積と第2の値に対し、ステッ
プ(1)ないし(6)を繰り返すステップとを有するこ
とを特徴とする高速フーリエ変換のバタフライ操作を行
う方法。 - 【請求項18】 (A) デジタル信号を受信する第1
と第2の入力と、前記第1と第2の入力に入力された信
号の積を出力する出力とを有する第1と第2の乗算器
と、 (B) デジタル信号を受領する第1と第2と第3の入
力と、前記第1と第2と第3の信号の和を出力する出力
とを有する第1と第2の加算器と、 からなる高速フーリエ変換を行うプロセッサにおいて、 前記第1の乗算器の出力は、前記第1加算器の第1入力
と前記第2加算器の第2入力に接続され、 前記第2の乗算器の出力は、前記第2加算器の第1入力
と前記第1加算器の第1入力に接続されることを特徴と
する高速フーリエ変換を行うプロセッサ。 - 【請求項19】 (A) デジタル信号を受信する第1
と第2の入力と、前記第1と第2の入力に入力された信
号の積を出力する出力とを有する第1と第2の乗算器
と、 (B) デジタル信号を受領する第1と第2と第3の入
力と、前記第1と第2と第3の信号の和を出力する出力
とを有する第1と第2の論理演算ユニットと、 からなる中央処理ユニットを有するコンピュータにおい
て、 前記第1の乗算器の出力は、前記第1論理演算ユニット
の前記第1入力と前記第2論理演算ユニットの前記第2
入力に接続され、 前記第2の乗算器の出力は、前記第2論理演算ユニット
の前記第1入力と前記第1論理演算ユニットの前記第1
入力に接続されることを特徴とする中央処理ユニットを
有するコンピュータ。 - 【請求項20】 (C) 前記第1と第2の論理演算ユ
ニットの出力にそれぞれ接続される第1と第2の入力
と、前記第1と第2の論理演算ユニットの第3の入力に
接続される出力とを有するアキュムレータをさらに有す
ることを特徴とする請求項19記載のコンピュータ。 - 【請求項21】 前記アキュームレータの出力は、さら
に前記メモリに接続されることを特徴とする請求項20
記載のコンピュータ。 - 【請求項22】 (D) 前記第1と第2の乗算器の前
記第1と第2の入力にそれぞれ接続されるメモリを有す
ることを特徴とする請求項21記載のコンピュータ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/884,691 US5941940A (en) | 1997-06-30 | 1997-06-30 | Digital signal processor architecture optimized for performing fast Fourier Transforms |
US08/884691 | 1997-06-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1185466A true JPH1185466A (ja) | 1999-03-30 |
Family
ID=25385158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10183649A Pending JPH1185466A (ja) | 1997-06-30 | 1998-06-30 | プロセッサ |
Country Status (3)
Country | Link |
---|---|
US (1) | US5941940A (ja) |
EP (1) | EP0889416A3 (ja) |
JP (1) | JPH1185466A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10387118B2 (en) | 2017-03-16 | 2019-08-20 | Fujitsu Limited | Arithmetic operation unit and method of controlling arithmetic operation unit |
Families Citing this family (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6317770B1 (en) | 1997-08-30 | 2001-11-13 | Lg Electronics Inc. | High speed digital signal processor |
EP1049025B1 (en) * | 1998-01-21 | 2009-08-19 | Panasonic Corporation | Method and apparatus for arithmetic operations |
FR2775368B1 (fr) * | 1998-02-26 | 2000-04-14 | Sgs Thomson Microelectronics | Coprocesseur d'arithmetique modulaire permettant de realiser des operations non modulaires rapidement |
JP3287305B2 (ja) * | 1998-04-23 | 2002-06-04 | 日本電気株式会社 | 積和演算装置 |
US7587582B1 (en) * | 1998-12-03 | 2009-09-08 | Sun Microsystems, Inc. | Method and apparatus for parallel arithmetic operations |
US6859872B1 (en) | 1999-05-12 | 2005-02-22 | Analog Devices, Inc. | Digital signal processor computation core with pipeline having memory access stages and multiply accumulate stages positioned for efficient operation |
US6820189B1 (en) | 1999-05-12 | 2004-11-16 | Analog Devices, Inc. | Computation core executing multiple operation DSP instructions and micro-controller instructions of shorter length without performing switch operation |
US7111155B1 (en) | 1999-05-12 | 2006-09-19 | Analog Devices, Inc. | Digital signal processor computation core with input operand selection from operand bus for dual operations |
US7107302B1 (en) | 1999-05-12 | 2006-09-12 | Analog Devices, Inc. | Finite impulse response filter algorithm for implementation on digital signal processor having dual execution units |
US6532484B1 (en) | 1999-06-21 | 2003-03-11 | Sun Microsystems, Inc. | Parallel system and method for performing fast fourier transform |
US6557022B1 (en) * | 2000-02-26 | 2003-04-29 | Qualcomm, Incorporated | Digital signal processor with coupled multiply-accumulate units |
US6625630B1 (en) * | 2000-06-05 | 2003-09-23 | Dsp Group Ltd. | Two cycle FFT |
US7062523B1 (en) * | 2000-08-01 | 2006-06-13 | Analog Devices, Inc. | Method for efficiently computing a fast fourier transform |
US7613529B1 (en) | 2000-09-09 | 2009-11-03 | Harman International Industries, Limited | System for eliminating acoustic feedback |
US6483343B1 (en) * | 2000-12-29 | 2002-11-19 | Quicklogic Corporation | Configurable computational unit embedded in a programmable device |
JP3935678B2 (ja) * | 2001-01-31 | 2007-06-27 | 富士通株式会社 | Simd積和演算方法、積和演算回路、および、半導体集積回路装置 |
US6677786B2 (en) * | 2001-02-28 | 2004-01-13 | Brecis Communications Corporation | Multi-service processor clocking system |
US7010558B2 (en) * | 2001-04-19 | 2006-03-07 | Arc International | Data processor with enhanced instruction execution and method |
US6601160B2 (en) | 2001-06-01 | 2003-07-29 | Microchip Technology Incorporated | Dynamically reconfigurable data space |
US6728856B2 (en) | 2001-06-01 | 2004-04-27 | Microchip Technology Incorporated | Modified Harvard architecture processor having program memory space mapped to data memory space |
US6604169B2 (en) | 2001-06-01 | 2003-08-05 | Microchip Technology Incorporated | Modulo addressing based on absolute offset |
US6552625B2 (en) | 2001-06-01 | 2003-04-22 | Microchip Technology Inc. | Processor with pulse width modulation generator with fault input prioritization |
US20020184566A1 (en) | 2001-06-01 | 2002-12-05 | Michael Catherwood | Register pointer trap |
JP2003016051A (ja) * | 2001-06-29 | 2003-01-17 | Nec Corp | 複素ベクトル演算プロセッサ |
KR100416641B1 (ko) * | 2001-07-20 | 2004-02-05 | 학교법인대우학원 | 프로그래머블 프로세서에서 고속 에프에프티 연산을 위한에프에프티 연산방법 및 그 연산을 실행하기 위한에프에프티 연산회로 |
WO2003012739A1 (en) * | 2001-07-27 | 2003-02-13 | Koninklijke Philips Electronics N.V. | Embedding auxiliary data in a signal |
US6981073B2 (en) * | 2001-07-31 | 2005-12-27 | Wis Technologies, Inc. | Multiple channel data bus control for video processing |
US7085320B2 (en) * | 2001-07-31 | 2006-08-01 | Wis Technologies, Inc. | Multiple format video compression |
US7219173B2 (en) * | 2001-07-31 | 2007-05-15 | Micronas Usa, Inc. | System for video processing control and scheduling wherein commands are unaffected by signal interrupts and schedule commands are transmitted at precise time |
US20050207663A1 (en) * | 2001-07-31 | 2005-09-22 | Weimin Zeng | Searching method and system for best matching motion vector |
US6996702B2 (en) * | 2001-07-31 | 2006-02-07 | Wis Technologies, Inc. | Processing unit with cross-coupled ALUs/accumulators and input data feedback structure including constant generator and bypass to reduce memory contention |
US6970509B2 (en) * | 2001-07-31 | 2005-11-29 | Wis Technologies, Inc. | Cell array and method of multiresolution motion estimation and compensation |
US7035332B2 (en) * | 2001-07-31 | 2006-04-25 | Wis Technologies, Inc. | DCT/IDCT with minimum multiplication |
US7184101B2 (en) * | 2001-07-31 | 2007-02-27 | Micronas Usa, Inc. | Address generation for video processing |
US7142251B2 (en) * | 2001-07-31 | 2006-11-28 | Micronas Usa, Inc. | Video input processor in multi-format video compression system |
US20040021483A1 (en) * | 2001-09-28 | 2004-02-05 | Brian Boles | Functional pathway configuration at a system/IC interface |
US6552567B1 (en) | 2001-09-28 | 2003-04-22 | Microchip Technology Incorporated | Functional pathway configuration at a system/IC interface |
US20030074383A1 (en) * | 2001-10-15 | 2003-04-17 | Murphy Charles Douglas | Shared multiplication in signal processing transforms |
US20030145030A1 (en) * | 2002-01-31 | 2003-07-31 | Sheaffer Gad S. | Multiply-accumulate accelerator with data re-use |
KR100492091B1 (ko) | 2002-12-10 | 2005-06-01 | 삼성전자주식회사 | 프로그래머블 프로세서에서의 고속 푸리에 변환 연산회로및 연산방법 |
EP1538533A3 (en) * | 2003-12-05 | 2006-02-22 | STMicroelectronics Pvt. Ltd | Improved FFT/IFFT processor |
JP4408712B2 (ja) * | 2004-01-26 | 2010-02-03 | 富士通マイクロエレクトロニクス株式会社 | 多倍長データ積和演算処理回路及びモンゴメリ積和剰余演算回路 |
US8860722B2 (en) * | 2004-05-14 | 2014-10-14 | Nvidia Corporation | Early Z scoreboard tracking system and method |
US8736628B1 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Single thread graphics processing system and method |
US8687010B1 (en) | 2004-05-14 | 2014-04-01 | Nvidia Corporation | Arbitrary size texture palettes for use in graphics systems |
US8736620B2 (en) * | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Kill bit graphics processing system and method |
US8711155B2 (en) * | 2004-05-14 | 2014-04-29 | Nvidia Corporation | Early kill removal graphics processing system and method |
US8743142B1 (en) | 2004-05-14 | 2014-06-03 | Nvidia Corporation | Unified data fetch graphics processing system and method |
US20060224652A1 (en) * | 2005-04-05 | 2006-10-05 | Nokia Corporation | Instruction set processor enhancement for computing a fast fourier transform |
US7570704B2 (en) * | 2005-11-30 | 2009-08-04 | Intel Corporation | Transmitter architecture for high-speed communications |
KR100835173B1 (ko) * | 2006-09-20 | 2008-06-05 | 한국전자통신연구원 | 곱셈 누적 연산을 위한 디지털 신호처리 장치 및 방법 |
US8537168B1 (en) | 2006-11-02 | 2013-09-17 | Nvidia Corporation | Method and system for deferred coverage mask generation in a raster stage |
US8117247B1 (en) | 2007-07-19 | 2012-02-14 | Xilinx, Inc. | Configurable arithmetic block and method of implementing arithmetic functions in a device having programmable logic |
US8010590B1 (en) * | 2007-07-19 | 2011-08-30 | Xilinx, Inc. | Configurable arithmetic block and a method of implementing a configurable arithmetic block in a device having programmable logic |
US8539011B1 (en) | 2007-07-19 | 2013-09-17 | Xilinx, Inc. | Device having programmable logic for implementing arithmetic functions |
US20090046105A1 (en) * | 2007-08-15 | 2009-02-19 | Bergland Tyson J | Conditional execute bit in a graphics processor unit pipeline |
US8599208B2 (en) * | 2007-08-15 | 2013-12-03 | Nvidia Corporation | Shared readable and writeable global values in a graphics processor unit pipeline |
US8775777B2 (en) * | 2007-08-15 | 2014-07-08 | Nvidia Corporation | Techniques for sourcing immediate values from a VLIW |
US8521800B1 (en) * | 2007-08-15 | 2013-08-27 | Nvidia Corporation | Interconnected arithmetic logic units |
US8314803B2 (en) | 2007-08-15 | 2012-11-20 | Nvidia Corporation | Buffering deserialized pixel data in a graphics processor unit pipeline |
US8736624B1 (en) | 2007-08-15 | 2014-05-27 | Nvidia Corporation | Conditional execution flag in graphics applications |
US9183607B1 (en) | 2007-08-15 | 2015-11-10 | Nvidia Corporation | Scoreboard cache coherence in a graphics pipeline |
US8438204B2 (en) * | 2008-12-18 | 2013-05-07 | Lsi Corporation | Apparatus for calculating an N-point discrete fourier transform |
US9411595B2 (en) | 2012-05-31 | 2016-08-09 | Nvidia Corporation | Multi-threaded transactional memory coherence |
CN103631759B (zh) * | 2012-08-22 | 2018-02-13 | 中兴通讯股份有限公司 | 一种实现快速傅立叶变换/离散傅立叶变换的装置及方法 |
US9824009B2 (en) | 2012-12-21 | 2017-11-21 | Nvidia Corporation | Information coherency maintenance systems and methods |
US10102142B2 (en) | 2012-12-26 | 2018-10-16 | Nvidia Corporation | Virtual address based memory reordering |
US9317251B2 (en) | 2012-12-31 | 2016-04-19 | Nvidia Corporation | Efficient correction of normalizer shift amount errors in fused multiply add operations |
US9569385B2 (en) | 2013-09-09 | 2017-02-14 | Nvidia Corporation | Memory transaction ordering |
CN104462016B (zh) * | 2013-09-22 | 2018-06-05 | 南京中兴软件有限责任公司 | 一种矢量运算核以及矢量处理器 |
US9672192B2 (en) * | 2014-11-11 | 2017-06-06 | Texas Instruments Incorporated | High performance implementation of the FFT butterfly computation |
CN106652998B (zh) * | 2017-01-03 | 2021-02-02 | 中国农业大学 | 一种基于fft短时傅里叶算法的语音综合电路结构及其控制方法 |
US10372417B2 (en) * | 2017-07-13 | 2019-08-06 | International Business Machines Corporation | Multiply-add operations of binary numbers in an arithmetic unit |
CN113378108B (zh) * | 2020-02-25 | 2023-04-18 | 珠海市煊扬科技有限公司 | 音频处理装置的快速傅立叶变换电路 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3777131A (en) * | 1972-02-08 | 1973-12-04 | Westinghouse Electric Corp | High base multiple rail fourier transform serial stage |
US4354249A (en) * | 1980-03-24 | 1982-10-12 | Motorola Inc. | Processing unit for multiplying two mathematical quantities including at least one complex multiplier |
US4612626A (en) * | 1983-12-27 | 1986-09-16 | Motorola Inc. | Method of performing real input fast fourier transforms simultaneously on two data streams |
US4996661A (en) * | 1988-10-05 | 1991-02-26 | United Technologies Corporation | Single chip complex floating point numeric processor |
US5038311A (en) * | 1990-08-10 | 1991-08-06 | General Electric Company | Pipelined fast fourier transform processor |
SG52303A1 (en) * | 1993-12-20 | 1998-09-28 | Motorola Inc | Arithmetic engine |
-
1997
- 1997-06-30 US US08/884,691 patent/US5941940A/en not_active Expired - Lifetime
-
1998
- 1998-06-23 EP EP98304936A patent/EP0889416A3/en not_active Ceased
- 1998-06-30 JP JP10183649A patent/JPH1185466A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10387118B2 (en) | 2017-03-16 | 2019-08-20 | Fujitsu Limited | Arithmetic operation unit and method of controlling arithmetic operation unit |
Also Published As
Publication number | Publication date |
---|---|
EP0889416A3 (en) | 2000-02-09 |
EP0889416A2 (en) | 1999-01-07 |
US5941940A (en) | 1999-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH1185466A (ja) | プロセッサ | |
KR100551111B1 (ko) | 파이프라인 고속 푸리에 변환 프로세서 | |
US5270953A (en) | Fast convolution multiplier | |
JPH01237765A (ja) | ディジタル信号処理プロセッサおよびディシタル信号処理プロセッサシステム | |
CN106656103B (zh) | 一种fir滤波器组及滤波方法 | |
Diaz et al. | Spike-based compact digital neuromorphic architecture for efficient implementation of high order FIR filters | |
EP0817006A3 (en) | Parallel multiply accumulate array circuit | |
EP1176516A2 (en) | Recursive discrete fourier transformation apparatus | |
CN1149495C (zh) | 信号处理器 | |
WO2016133274A2 (ko) | 의료 영상 신호를 위한 필터 조립체 및 이를 이용한 동적 데시메이션 방법 | |
US7653676B2 (en) | Efficient mapping of FFT to a reconfigurable parallel and pipeline data flow machine | |
US4760540A (en) | Adaptive interference cancelling system and method | |
JPS5981761A (ja) | シストリツク計算配列 | |
RU148684U1 (ru) | Устройство фильтрации векторного сигнала | |
JPH01295365A (ja) | デジタル計算用集積回路 | |
CN112748898A (zh) | 一种复数向量运算装置及运算方法 | |
JP2529229B2 (ja) | コサイン変換装置 | |
JP2869668B2 (ja) | ディジタルデータの離散フーリエ又はコサイン変換装置 | |
JP3684314B2 (ja) | 複素乗算器および複素相関器 | |
TWI564735B (zh) | 資料分配裝置、訊號處理裝置及其資料分配方法 | |
EP0865682B1 (en) | Use of single channel fir filter architecture to perform combined/parallel filtering of multiple (quadrature) signals | |
JP3620887B2 (ja) | データ処理装置 | |
JP3715665B2 (ja) | 直交変換装置 | |
JP3715666B2 (ja) | 直交変換装置及び方法 | |
JP3865469B2 (ja) | バタフライ演算器 |