JPH0660106A - 共分散行列を生成する方法および装置 - Google Patents

共分散行列を生成する方法および装置

Info

Publication number
JPH0660106A
JPH0660106A JP5143721A JP14372193A JPH0660106A JP H0660106 A JPH0660106 A JP H0660106A JP 5143721 A JP5143721 A JP 5143721A JP 14372193 A JP14372193 A JP 14372193A JP H0660106 A JPH0660106 A JP H0660106A
Authority
JP
Japan
Prior art keywords
memory
covariance matrix
row
generating
values
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.)
Granted
Application number
JP5143721A
Other languages
English (en)
Other versions
JP3740516B2 (ja
Inventor
John G Bartkowiak
ジョーン・ジィ・バートコウィアック
Michael A Nix
マイケル・エイ・ニックス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JPH0660106A publication Critical patent/JPH0660106A/ja
Application granted granted Critical
Publication of JP3740516B2 publication Critical patent/JP3740516B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 共分散行列を生成する装置および方法を提供
する。 【構成】 この発明の一局面によると、装置は一般的
に、メモリ(12、48)、環状のバッファ、乗算アキ
ュムレータ(32)、および演算論理装置を含んで提供
される。そのメモリはアレイの複数個のサンプル代表値
を含み、その環状のバッファは予め定められた数のメモ
リ位置を与えるよう構成される。さらに共分散行列の生
成方法は、上に記載のアーキテクチュアを使用して、メ
モリ内で、値に基づく共分散行列を効率的に生成するよ
う提供される。この発明の一局面において、この方法
は、メモリ、環状のバッファ、乗算アキュムレータ、お
よび演算論理装置のすべてが並行して動作し、アーキテ
クチュアにより与えられる資源を十分に活用することを
可能にする。

Description

【発明の詳細な説明】
【0001】
【発明の分野】この発明は、CMOS集積回路に関し、
より特定的には、共分散行列を生成する方法および装置
に関する。
【0002】
【発明の背景】多数の応用は、ランダム変数の集合間の
変化を測定するステップを必要とするプロセスを含む。
これらの測定値は、2次元アレイの形態をとって記憶さ
れ、または表示されるかもしれない。そのようなアレイ
は、以下文中では、共分散行列として言及される。
【0003】共分散行列の生成を必要とする、応用の一
例は、IS−54米国ディジタルセルラー無線規格の実
現である。この規格は、「ベクトル和励起線形予測コー
ディング(Vector Sum Excited Linear Predictive Cod
ing:VSELP )」として知られる音声コーダを使用してお
り、それは、ディジタル音声サンプルのブロックを入力
として使用する共分散行列の計算を必要とする。音声サ
ンプルは、アナログ入力から、8KHzサンプリング率
で記憶される。IS−54規格の詳細は、EIA/TI
Aドキュメント2215(セルラーシステム−二重モー
ド移動局/1つの州互換性規格IS−54,1989年
12月)において論議される。
【0004】170の入力音声サンプルから、共分散行
列を生成する公式は、式(1)において示され、そこで
は、φ(i,k)は、共分散行列の、行i、列kでの値
を表わし、NA は、入力音声サンプルの総数を表わし
(NA =170)、NP は、共分散行列の、最大の行お
よび列の数を表わし(NP =10)、ならびにS(x)
はx番目の入力サンプルの値を表わす。
【0005】
【数1】
【0006】式(1)により生成される共分散行列の表
現は、図1(A)に示され、そこでは、x,yは、共分
散行列の、行x、列yで記憶された共分散測定値を表わ
す。
【0007】図1(B)は、ランダムアクセスメモリ
(RAM)内で、図1(A)に示される共分散行列の値
を記憶する可能な方法を示す。共分散行列は対称なの
で、11×11共分散行列を記憶するのに必要なのは6
6のRAM位置だけであることに注目されたい。したが
って、共分散行列中の各エレメントφ(i,k)につい
て言えば、φ(i,k)=φ(k,i)となる。結果と
して、共分散行列全体を表わすには、中心対角線に沿う
エレメント、および共分散行列の三角形上部(または下
部)のみが生成され、記憶される必要がある。
【0008】図2は、3つの行列F、B、およびCの記
憶構成を示しており、それらは、図1(B)に示される
ように記憶された共分散行列の部分集合である。これら
の3つの行列もまた対称である。
【0009】共分散行列の、行が0のエレメント(すな
わち、φ(0,0)ないしφ(0,10))が生成され
ると、残りのエレメントは下記の式(2)を使用して容
易に生成され得るという点で、式(1)は冗長を表す。
【0010】
【数2】
【0011】φ(1,1)について、式(2)から以下
の式が導かれる。
【0012】
【数3】
【0013】式(2)の実行は、一般的に、乗算累積ハ
ードウェアを用いた簡単なものである。しかしながら、
共分散行列の、行が0のエレメント(すなわち、φ
(0,0)ないしφ(0,10))は、行列の残りが式
(2)により生成される前に、まず、式(1)により生
成されねばならない。
【0014】式(1)により必要とされる乗算において
のオペランドは、固定数により互いからオフセットされ
たサンプルである。たとえば、φ(0,1)を生成する
式は、次のようになる。
【0015】
【数4】
【0016】この例では、すべての乗算のオペランド
は、1だけ互いにオフセットされたサンプルである。
【0017】先行技術によると、効率的に式(1)の形
をとる式を実行するには、共分散行列ジェネレータは、
170の音声サンプルを有する2つの別個のメモリ、ま
たは170のサンプルを有する1つのメモリのパイプラ
インのいずれかを含んでいなければならない。これらの
アーキテクチュアのブロック図は、それぞれ図3および
図4に示される。
【0018】パイプライニングは、機能単位がその処理
をいくつかのステップで行なう、処理形態である。第1
のステップが完了すると、その結果は別個のハードウェ
アを使用する第2のステップへと移される。したがって
第1のステップのハードウェアは、新しいデータ処理を
始めるのが自由である。パイプライン処理は一般に、順
次処理のために早いスループットを与えるが、それは典
型的には、コンピュータシステムの幾つかの機能単位を
通過するのに必要な時間が、別の方法ではデータが機能
単位に入力される間隔より長くなってしまうような、プ
ロセスのために使用される。
【0019】図3に示される二重メモリアーキテクチュ
アには、図4に示されるパイプラインアーキテクチュア
の2倍のメモリを必要とするという、明らかな不利益が
ある。しかしながら、図4に示されるパイプラインアー
キテクチュアを用いての共分散行列ジェネレータが、た
とえばφ(0,10)を生成するときには、10のレベ
ルのパイプラインが必要とされる。そのようなパイプラ
インは、共分散行列を速やかに生成するが、その目的
は、共分散行列を生成するためだけに制限される。その
ようなパイプラインは、たとえばVSELPに対する計
算上の要求の他の部分のような、他の計算にとっては
(いかなる自明の態様においても)役に立たない。
【0020】それゆえに、多目的の結果記憶装置として
容易に使用されるが、行列の基となるサンプルがメモリ
の2バンクに記憶されることを必要としない、効率的な
共分散行列ジェネレータを提供することが明らかに望ま
しい。
【0021】さらに望ましいのは、低いハードウェアの
コストで共分散計算を効率的に実行し、かつ、一時的な
結果を記憶するために、他の計算のためのシステムにお
いて役立つ「スクラッチパッド」メモリを供給する、共
分散行列ジェネレータを提供することである。
【0022】
【発明の概要】この発明の一局面によれば、共分散行列
の第1の行を生成する装置が提供される。この装置は、
一般的に、複数個のサンプルを表す値のアレイを有する
メモリと、そのメモリに結合される環状のバッファとを
含み、その環状のバッファは予め定められた数のメモリ
位置を与えるように構成されており、さらに第1のメモ
リおよび環状のバッファに結合される乗算アキュムレー
タを含む。
【0023】この発明のもう1つの局面によれば、共分
散行列の三角形部分の上部または下部を生成する装置が
提供される。この装置は、一般的に、第1、および第2
のメモリと、その第1のメモリに結合される環状のバッ
ファと、第1および第2のメモリ、ならびに環状のバッ
ファに結合される乗算アキュムレータと、第2のメモリ
および乗算アキュムレータに結合される演算論理装置と
を含む。第1のメモリは、複数個のサンプルを表す値の
アレイを有する。環状のバッファは、初めは、第1の予
め定められた数のメモリ位置を与えるように構成され
る。
【0024】この装置は、第1のメモリから乗算アキュ
ムレータへとアレイの値の順次部分集合を転送して、共
分散行列の第1の行の第1のエレメントを生成し、かつ
共分散行列の第1の行の第1のエレメントを第2のメモ
リ内に記憶する。
【0025】この装置は、第1のメモリからのアレイの
値の第1の一連の順次部分集合、および、環状のバッフ
ァからのアレイの値の第2の一連の順次部分集合を、乗
算アキュムレータへと同時に転送して、乗算アキュムレ
ータの出力において、共分散行列の第1の行の残りのエ
レメントを生成する。この装置は、第2のメモリ内に、
共分散行列の第1の行の残りのエレメントを記憶する。
【0026】さらにこの装置は、共分散行列の三角形部
分の上部または下部の残りのエレメントを、演算論理装
置内で生成し、かつ第2のメモリ内に記憶するように構
成される。
【0027】さらにこの発明は、共分散行列の生成方法
を提供する。この方法は、複数個のサンプルを表す値の
アレイを有するメモリを設けるステップと、乗算アキュ
ムレータを設けるステップと、予め定められた深さの環
状のバッファを設けるステップと、乗算アキュムレータ
内で、共分散行列の第1の行の第1のエレメントを生成
するステップとを含む。さらにこの方法は、第2のメモ
リ内に第1のエレメントを記憶するステップと、共分散
行列の第1の行の残りのエレメントを生成するステップ
と、第2のメモリ内に第1の行の残りのエレメントを記
憶するステップとを含む。さらにこの方法は、演算論理
装置内で、共分散行列の三角形部分の上部または下部
の、残りのエレメントを対角線ごとに生成するステップ
と、第2のメモリ内に、共分散行列の三角形部分の上部
または下部の、残りのエレメントを記憶するステップと
を含む。
【0028】以下、この発明は添付図面に関して述べら
れ、以下文中では、同じ数字は同じエレメントを表わ
す。
【0029】
【好ましい実施例の詳細な説明】図5を参照すると、共
分散行列ジェネレータ10が、この発明の好ましい例示
的な実施例に従って示されている。ジェネレータ10は
一般的に、複数個のランダムアクセスメモリ(RAM)
12および48と、複数個のアドレスジェネレータ1
4、16、および18と、二重ポートレジスタファイル
20と、複数個のマルチプレクサ24および26とを含
む。ジェネレータ10はさらに、2つのデータバス28
および30と、乗算アキュムレータ(以下MAC)32
とを含む。
【0030】MAC32は3レベルのパイプラインで、
2つの入力ポート、および1つの出力ポートを有する。
具体的には、2つのオペランドがMAC32の入力ポー
トに与えられて3サイクル後に、オペランドの乗算累積
または乗算の積が、その出力ポートで利用可能となる。
このアーキテクチュアは、MAC32のハードウェアの
構成を最小にし、1つの乗算累積を演算する計算時間に
3クロックサイクルのペナルティを課す。しかしなが
ら、170のサンプルのセットの各々の共分散測定は、
160の乗算累積計算を要求する(式(1)参照)た
め、1サイクルの乗算アキュムレータに対する、MAC
32の計算時間の増加のパーセンテージは、2%未満で
ある。
【0031】アドレスジェネレータ18は、レジスタフ
ァイル20の「読出」アドレスジェネレータであり、ア
ドレスジェネレータ16は、レジスタファイル20の
「書込」アドレスジェネレータである。ジェネレータ1
0を用いて、式(1)の数値を求める方法は、レジスタ
ファイル20を、10の位置の深さを持つ環状のバッフ
ァとして使用する。アドレスジェネレータ16および1
8は、限界アドレス(位置9)に達すると、それぞれの
アドレスポインタが与えられた開始アドレス(位置0)
に「ラップアラウンドする」ことを可能にするよう構成
されている。たとえば、アドレスジェネレータ16のポ
インタがレジスタファイル20の位置9を指すとき、増
加されるなら、ポインタはリセット、または「ラップア
ラウンド」して、レジスタファイル20の位置0を指
す。同様に、アドレスジェネレータ16のポインタが、
レジスタファイル20の位置0を指すとき、減少される
なら、ポインタは「ラップアラウンド」して、レジスタ
ファイル20の位置9を指す。アドレスジェネレータ1
8のポインタは、同様の態様で「ラップアラウンド」す
るよう構成されている。
【0032】MAC32への一方の入力は、データバス
28によって直接与えられ、他方は、マルチプレクサ2
4によって制御される。マルチプレクサ24は、データ
をデータバス28から、それが制御するMAC32の入
力へと向けるよう、初めは構成されている。マルチプレ
クサ26は、レジスタファイル20への入力を制御し、
データを、データバス28から、レジスタファイル20
内のアドレスジェネレータ16によって指された位置へ
と向けるよう初めは構成されている。
【0033】共分散行列の生成は、図6に示されるステ
ップ52、54、56、および58に従って実現され得
るだろう。ステップ52および54は、ジェネレータ1
0に関して説明され、一方ステップ56および58は図
12を参照して、後に詳しく説明される拡大されたジェ
ネレータに関して説明される。具体的には、ステップ5
2では、共分散行列の行0、列0、すなわちφ(0,
0)が生成される。ステップ54では、共分散行列の第
1の行(行0)、すなわちφ(0,1)ないしφ(0,
10)を完成する測定値が生成される。ステップ56で
は、行列の中心対角線のエレメント、すなわちφ(1,
1)ないしφ(10,10)が生成され、ステップ58
では、行列の残りのエレメントが生成される。これらの
ステップの各々は、図8−16を参照して、後により詳
しく説明される。
【0034】上述のように、ステップ52では、ジェネ
レータ10は、式(1)に従って、共分散行列のφ
(0,0)パラメータを最初に生成する。ステップ52
の実現のフローチャートは、図8に示される。具体的に
は、ステップ202では、RAM12のためのアドレス
ジェネレータであるアドレスジェネレータ14は、RA
M12の位置10を指すよう設定され、アドレスジェネ
レータ16は、レジスタファイル20の位置0を指すよ
う設定され、アドレスジェネレータ18は作動不可にさ
れる。マルチプレクサ24および26は、データバス2
8からデータを受取るように構成されている。こうして
初期化され、ジェネレータ10は、RAM12からのデ
ータが、データバス28を介して、MAC32の両方の
入力へと送られるように、構成されている。
【0035】ステップ204では、タイマが開始され
て、160の乗算累積を与え、ステップ206ないし2
14が、160の乗算累積が起こるまで、反復的に実行
される。
【0036】ステップ206では、RAM12内のアド
レスジェネレータ14が指す場所のサンプルが、MAC
32の両方の入力に入力され、レジスタファイル20に
書込まれる。MAC32は入力値を乗じて、その乗算の
積を、前の計算の和に加える。ステップ208では、ア
ドレスジェネレータ14および16は同期して増加す
る。
【0037】したがって、アドレスジェネレータ14
は、それぞれ値S(10)ないしS(169)を有する
RAM12のアドレス10ないし169を連続して指
す。前述のように、アドレスジェネレータ16のポイン
タはラップアラウンドするように構成されている。こう
して、ステップ210および212で、アドレスジェネ
レータ16が増加するにつれて、そのポインタは位置9
を指した後、位置0にラップアラウンドする。各々の
「ラップアラウンド」の後、レジスタファイル20に書
込まれた新しいデータは、そこに前に記憶されたデータ
をオーバライトする。
【0038】ステップ206ないし214までの反復の
間、データのサンプルS(10)ないしS(169)
が、MAC32の入力ポートに送り込まれ、それら自身
で乗算され、かつ前の計算の結果と累積されて、最終結
果φ(0,0)を生じる。同時に、S(10)ないしS
(169)が、レジスタファイル20に連続して書込ま
れる。レジスタファイル20は、10のメモリの位置の
みに書込むよう構成されているので、最後の10の入力
値のみがそこに記憶される。したがって、160の乗算
累積が完了すると、MAC32の出力はφ(0,0)を
含み、レジスタファイル20は図示のように構成されて
いる。ここでXは、それぞれのアドレスジェネレータが
指す、レジスタファイル20内の位置を表わす。(この
場合、アドレスジェネレータ18は作動不可で、アドレ
スジェネレータ16は位置9を指す。)
【0039】
【表1】
【0040】ステップ216では、MAC32の出力
(すなわちφ(0,0))は、データバス30を介し
て、RAM48に記憶され、ステップ218ではMAC
32の出力レジスタは、クリアされる。アドレスジェネ
レータ14は、ここではRAM12の位置169内のS
(169)を指しており、アドレスジェネレータ16
は、レジスタファイル20の位置9を指し、これもまた
S(169)を含む。
【0041】共分散行列の中心対角線上の他の10の項
(すなわちφ(1,1)ないしφ(10,10))を上
述の式(2)に従って生成するよりもむしろ、レジスタ
ファイル20のここでの構成を用いて、共分散行列の行
0の他の10のエレメント(すなわちφ(0,1)ない
しφ(0,10))を生成する(ステップ54)方が有
利である。
【0042】そのフローチャートが図9ないし図11に
示されるステップ54の実行は、ここでより詳細に説明
される。φ(0,1)の生成を始めるにあたり、ステッ
プ220で、マルチプレクサ24は、レジスタファイル
20から読出すよう構成されている。こうして、MAC
32への一方の入力は、ここではレジスタファイル20
からであり、MAC32への他方の入力は、まだRAM
12からである。
【0043】φ(0,0)の生成と同様に、行0の各々
のエレメントの生成は、160の乗算累積を要求する。
しかしながら、これらの計算に要求される乗算のオペラ
ンドは整列されない。より具体的には、すべての共分散
エレメントφ(0,k)に対して、φ(0,k)を生成
するため要求される乗算のオペランドは、kサンプルに
よってオフセットされる。たとえば、φ(0,1)を生
成するのに要求される乗算のオペランドは、1サンプル
だけ(たとえばS(10)S(9)、S(11)S(1
0)など)、オフセットされる。結果として、φ(0,
1)の生成においてこのオフセットを与えるため、ステ
ップ222で、アドレスジェネレータ14は再整列され
て、RAM12の位置168を指し、アドレスジェネレ
ータ16は再整列されて、レジスタファイル20の位置
8を指す(すなわち、アドレスジェネレータ14および
16は減少される。)。アドレスジェネレータ18は、
レジスタファイル20の位置9を指すよう設定される。
レジスタファイル20は、ここでは次のように構成され
ている。
【0044】
【表2】
【0045】したがって、φ(0,1)の生成を始める
ため、アドレスジェネレータ14は、RAM12内の値
S(168)を有する位置168を指し、アドレスジェ
ネレータ16は、レジスタファイル20内の値S(16
8)を有する位置8を指し、かつアドレスジェネレータ
18は、レジスタファイル20の値S(169)を有す
る位置9を指す。結果として、データバス28からの値
S(168)、およびレジスタファイル20内の位置9
からのS(169)は、初めは、MAC32の入力ポー
トへとロードされる。
【0046】ステップ224で、アドレスジェネレータ
14、16、および18は減少モードに置かれている。
マルチプレクサ26は、データバス28から、アドレス
ジェネレータ16によりアドレスされたレジスタファイ
ル20の書込ポートへとデータをまだ送っているため、
レジスタファイル20の書込ポートは、データバス28
からのS(168)を入力として有する。
【0047】ステップ226で、タイマが開始されて、
φ(0,1)の生成によって要求される160の乗算累
積のためのカウンタを与える。したがって、MAC32
は、S(169)とS(168)との積をS(168)
とS(167)との積と、というように集積し始める。
レジスタファイル20は、読出/書込モードにあり、こ
こで、クロックサイクルの前半の間アドレスジェネレー
タ18が指す位置から、データが読出され、クロックサ
イクルの後半の間アドレスジェネレータ16が指す位置
に、データが書込まれる。このタイミングは、図7に示
される。
【0048】したがって、φ(0,1)の生成の第1の
サイクルで、S(169)は、レジスタファイル20か
ら読出され、かつS(168)は、ステップ228でR
AM12から読出される。ステップ230においてMA
C32でこれらの値は乗じられ、累積される。それか
ら、ステップ232で、S(168)は、レジスタファ
イル20内のアドレスジェネレータ16によって指され
た位置8に書込まれる。次に、ステップ234で、アド
レスジェネレータ14、16、および18のポインタは
減少され、そのためアドレスジェネレータ14は、ここ
ではRAM12内の値S(167)を有する、位置16
7を指し、アドレスジェネレータ18は、レジスタファ
イル20内の値S(168)を有する、アドレス8を指
し、アドレスジェネレータ16はレジスタファイル20
内の、φ(0,0)の生成からの値S(167)を有す
る、アドレス7を指す。ステップ236および238
で、アドレスジェネレータ16およびアドレスジェネレ
ータ18のポインタは、それらのラップアラウンドの限
界を越えてしまうと、ラップアラウンドする。第1のサ
イクルでは越えていないので、実行はステップ240ま
で進む。ステップ240で、タイマの状態がチェックさ
れる。160の反復が完了していなければ、実行は分岐
してステップ228に戻る。
【0049】φ(0,1)の生成の第2のサイクルで、
ステップ228ないし240において、MAC32は、
RAM12からのS(167)を、レジスタファイル2
0からのS(168)と乗じ、その乗算の積を、S(1
69)とS(168)との積と累積する。MAC32で
φ(0,1)のすべての項が生成され、累積されるまで
(つまり160の乗算累積のため)、このプロセスは続
く。上述のように、これらの計算の間、同期して減少し
たアドレスジェネレータ16および18は、1の位置だ
けオフセットされ、位置0に達するごとにラップアラウ
ンドする。またレジスタファイル20の値は、継続的に
オーバライトされる。しかしながら、アドレスジェネレ
ータ18は、実質的にアドレスジェネレータ16より
「先に」あり、かつアドレスジェネレータ18は常に、
φ(0,1)の生成のための次のオペランドを指すた
め、φ(0,1)の生成は、効率的に実行される。
【0050】タイマの完了の際に、レジスタファイル2
0は以下のように構成されているだろう。
【0051】
【表3】
【0052】φ(0,1)の生成の最後の項は、S(1
0)S(9)である。したがって、値S(10)は、レ
ジスタファイル20内の現在アドレスジェネレータ18
によって指されている位置にあり、値S(9)は、レジ
スタファイル20の位置9に書込まれている。MAC3
2の出力レジスタは、ここでは値φ(0,1)を含み、
かつ、アドレスジェネレータ14は、RAM12内の値
S(9)を有する位置9を指す。
【0053】この時点で、実行はステップ242まで進
み、ここでφ(0,1)は、データバス30を介してR
AM48に書込まれ、かつMAC32の出力レジスタは
クリアされる。ステップ244で、アドレスジェネレー
タ14、およびアドレスジェネレータ16は、もう一度
減少され、RAM12からレジスタファイル20の位置
8へS(8)を書込むことを可能にする(S(18)を
オーバライトする)。ステップ246で、アドレスジェ
ネレータ14は、それからS(10)を指すよう設定さ
れ、アドレスジェネレータ16のポインタは、アドレス
ジェネレータ18のポインタと交換される。こうして、
アドレスジェネレータ14は、ここではRAM12の位
置10のS(10)を指し、アドレスジェネレータ16
は、レジスタファイル20の位置0のS(10)を指
し、アドレスジェネレータ18は、レジスタファイルの
20の位置8のS(8)を指す。アドレスジェネレータ
16、およびアドレスジェネレータ18は、所望の位置
を指すように、直接設定されてもよいし、またはそのア
ドレス出力がアドレスマルチプレクサ(図示せず)によ
って切換えられてもよい。アドレスジェネレータ16お
よびアドレスジェネレータ18のポインタは、ここでは
2だけステップから外れている。
【0054】ジェネレータ10は、ここで次の式によっ
てφ(0,2)を生成する。
【0055】
【数5】
【0056】この生成の始まりにおけるレジスタファイ
ル20の構成を以下に示す。
【0057】
【表4】
【0058】ステップ248で、アドレスジェネレータ
14、16、および18は、増加モードに入れられる。
マルチプレクサ24、および26の構成は変わらないま
まである。ステップ250で、タイマが開始され、φ
(0,2)の生成のため、160の乗算累積を与える。
φ(0,1)の生成のステップ228ないし240と同
様に、ステップ252ないし260で、MAC32は、
φ(0,2)の項を乗算累積し、かつレジスタファイル
20は継続的にその内容がオーバライトされる。具体的
には、アドレスジェネレータ18が、レジスタファイル
20の、S(17)を有する位置7を指しているとき、
アドレスジェネレータ16は、S(19)を位置9に書
込んでいる。前のクロックサイクルで、S(18)は位
置8に書込まれており、2クロックサイクル後に、アド
レスジェネレータ18が位置8にアクセスするときのた
めに備えている。
【0059】φ(0,2)の生成の完了の際に、レジス
タファイル20は、以下のように構成されている。
【0060】
【表5】
【0061】MAC32の出力レジスタは、φ(0,
2)を含む。実行はステップ262に続き、ここでMA
C32の出力はRAM48に記憶され、MAC32の出
力レジスタはクリアされる。
【0062】φ(0,3)の生成に先立って、ステップ
264で、アドレスジェネレータ14、18、および1
6のポインタはそれぞれ、RAM12の場所166、レ
ジスタファイル20の場所9、およびレジスタファイル
20の場所6を指すよう設定されている。こうして、ア
ドレスジェネレータ14はサンプルS(166)を指
し、アドレスジェネレータ18はサンプルS(169)
を指し、かつアドレスジェネレータ16はサンプルS
(166)を指す。アドレスジェネレータ16、および
アドレスジェネレータ18のポインタは、それぞれのポ
インタを示される位置に直接設定することによって設定
されてもよいし、またはアドレスジェネレータ18のポ
インタを1だけ減少させ、かつアドレスマルチプレクサ
(図示せず)を介して、アドレスジェネレータ18のポ
インタと、アドレスジェネレータ16のそれを切換える
ことによって、設定されてもよい。
【0063】ステップ266で、行0のすべてのエレメ
ントが生成されたかどうかが定められる。生成されてい
ないので、ステップ224に戻って実行が進む。ステッ
プ224で、アドレスジェネレータ14、16、および
18は、減少モードに置かれる。こうして、φ(0,
3)の生成を始めるにあたり、レジスタファイル20
は、以下のように構成される。
【0064】
【表6】
【0065】次に共分散行列のエレメントφ(0,3)
は、上述のステップ226ないし242に従って生成さ
れる。具体的には、ステップ226で、タイマが再び開
始され、160の乗算累積を与える。160の乗算累積
が完了すると、MAC32の出力は、値φ(0,3)を
有し、次にそれが、ステップ242に従ってRAM48
に記憶される。そしてMAC32の出力レジスタはクリ
アされる。φ(0,3)の生成の完了の際に、レジスタ
ファイル20は以下のように構成される。
【0066】
【表7】
【0067】φ(0,3)の生成の後、アドレスジェネ
レータ14、およびアドレスジェネレータ16は、ステ
ップ244に従って減少され、S(6)が位置6に書込
まれることを可能にする。そしてステップ246で、ア
ドレスジェネレータ14は、リセットされて、RAM1
2の位置10を指し、アドレスジェネレータ16および
18のポインタが交換される。したがって、φ(0,
4)の生成の初めに、アドレスジェネレータ14はS
(10)を指し、アドレスジェネレータ16はS(1
0)を指し、かつアドレスジェネレータ18はS(6)
を指す。ステップ248で、アドレスジェネレータ1
4、16、および18は、ここでは増加モードに置かれ
ている。
【0068】この操作のシーケンスは、共分散行列の行
0の最後のエレメント、φ(0,10)が生成されるま
で繰返される。具体的には、φ(0,9)の生成の完了
の際に、実行はステップ244にあり、レジスタファイ
ル20は以下のように構成される。
【0069】
【表8】
【0070】前述のように、ステップ244で、アドレ
スジェネレータ14およびアドレスジェネレータ16は
減少されて、そのためアドレスジェネレータ16は位置
0を指し、かつS(0)がレジスタファイル20の位置
0に書込まれる。そしてステップ246で、アドレスジ
ェネレータ14はS(10)にリセットされ、アドレス
ジェネレータ16および18は交換される。(両方とも
アドレス0を指している。)そしてステップ248で、
アドレスジェネレータ14、16、および18は、増加
モードに設定される。そして行0の最後の行列エレメン
ト、φ(0,10)は、次の式に従って、生成される。
【0071】
【数6】
【0072】具体的には、アドレスジェネレータ14
は、RAM12内のS(10)を指し、アドレスジェネ
レータ16および18の両方は、レジスタファイル20
の位置0のS(0)を指す。ジェネレータ10は、いか
なる与えられたクロックサイクルででも、書込より読出
が先に起こるよう構成されているため、ステップ252
で、S(0)はレジスタファイル20の位置0から最初
に読取られ、それからS(10)がレジスタファイル2
0の位置0でS(0)の上に書込まれる。φ(0,1
0)の生成を完了すると、MAC32の出力がRAM4
8に記憶され、MAC32の出力はステップ262に従
ってクリアされる。ステップ264は、この最後のサイ
クルの間、随意にスキップされてもよい。というのは、
アドレスジェネレータ14、16、および18のポイン
タはステップ56の開始の際に新しい値に設定されるか
らである。
【0073】ステップ54はこれで完了し、共分散行列
のエレメントφ(0,0)ないしφ(0,10)が生成
され、記憶された。ステップ56の間、共分散行列の中
心対角線の残りのエレメント、φ(1,1)ないしφ
(10,10)が式(2)に従って生成される。具体的
には、φ(1,1)は次の式に従って生成される。
【0074】
【数7】
【0075】ステップ56および58の実行は、図12
を参照して説明される。この図は、共分散行列ジェネレ
ータ100の、拡張された実施例を表わしている。ステ
ップ52および54が、ジェネレータ10に関して上述
したように、ジェネレータ100によって実行され得る
ことが当業者には容易に明らかになるであろう。ステッ
プ56および58の説明において、ステップ52および
54が、上述のようにジェネレータ100によって実行
されたと仮定する。
【0076】図12を参照すると、共分散行列ジェネレ
ータ100が、この発明の例示的な実施例に従って示さ
れている。ジェネレータ100は一般には、複数個のラ
ンダムアクセスメモリ(RAM)112、および152
と、複数個のアドレスジェネレータ114、116、1
18、および150と、二重ポートレジスタファイル1
20と、複数個のマルチプレクサ102、104、10
6、108、および126とを含む。ジェネレータ10
0はさらに、3つのデータバス128、130、および
154と、乗算アキュムレータ(MAC)132と、演
算論理装置(ALU)110とを含み、その出力レジス
タは、ALUの出力を保持する、またはそれをデータバ
ス130にトランスペアレントにパスすることができ
る。
【0077】MAC132は2つの入力ポート、および
1つの出力ポートを有し、上述のMAC32に類似した
3レベルのパイプラインとして設計されている。MAC
132の一方の入力は、マルチプレクサ102によって
制御され、他方はマルチプレクサ104によって制御さ
れる。その具体的な動作が図13、および図14に示さ
れているステップ56の開始の際、マルチプレクサ10
2、およびマルチプレクサ104の両方が、ステップ3
00に従ってデータバス128から、MAC132へと
データを送るよう構成されている。
【0078】レジスタファイル120は、20の位置の
深さを有する環状のバッファとして構成されている。ア
ドレスジェネレータ118は、レジスタファイル120
の「読出」アドレスジェネレータで、アドレスジェネレ
ータ116は、レジスタファイル120の「書込」アド
レスジェネレータである。アドレスジェネレータ116
および118は、上述のようにそれぞれのアドレスポイ
ンタが「ラップアラウンドする」ことを可能にするよう
設計されている。マルチプレクサ126は、レジスタフ
ァイル120への入力を制御し、レジスタファイル12
0のアドレスジェネレータ116によって指された位置
に、データバス128からデータを送るよう構成されて
いる。
【0079】ALU110は、マルチプレクサ106、
およびマルチプレクサ108によって制御される2つの
入力を有する。ステップ56および58の間、ALU1
10が用いられて、MAC132の出力を集積する。こ
うしてステップ54の完了の際に、MAC132は乗算
専用モードに置かれる。
【0080】アドレスジェネレータ114は、RAM1
12のアドレスジェネレータで、2つの修正可能なポイ
ンタを備えて構成されている。ステップ302では、ア
ドレスジェネレータ114の第1の修正可能なポインタ
は、RAM112の位置9を指すよう、初めに設定さ
れ、かつアドレスジェネレータ114の第2のアドレス
ポインタは、RAM112の位置169を指すよう初め
に設定されている。ステップ304において、アドレス
ジェネレータ114の両方のアドレスポインタは初めは
減少モードに設定されている。アドレスジェネレータ1
14はさらに、その2つのポインタの各々が以下に示さ
れるように交互のクロックサイクルでデータバス128
を駆動することを可能にするよう構成されている。
【0081】
【表9】
【0082】結果として、データバス128は、値S
(9)、S(169)、S(8)、S(168)、…、
S(0)、S(160)を順次与える。上で特定したよ
うに構成され、ジェネレータ100は、対角線のエレメ
ントφ(1,1)ないしφ(10,10)の生成を始め
る。具体的には、ステップ306でMAC132の両方
の入力は、値S(9)、S(169)、…、S(0)、
S(160)をデータバス128から連続して送り込
む。こうしてMAC132は、積S(9)S(9)、S
(169)S(169)、…、S(0)S(0)、S
(160)S(160)を連続して出力する。ステップ
306の交互の実行の間、データバス128を読出すこ
とによって、ファイルレジスタ120は値S(0)ない
しS(9)を入力する。
【0083】ステップ306の間でまた、MAC132
の出力は、データバス130を介してALU110のマ
ルチプレクサ108に順次送られる。ステップ308お
よび310で、RAM152は第1にデータバス154
を介してRAM152からマルチプレクサ106にφ
(0,0)を供給する。S(9)がMAC132の両方
の入力に送り込まれて3サイクル後に、MAC132は
S(9)S(9)を出力する。次のクロックサイクル
で、ステップ314に従って、ALU110のφ(0,
0)に、S(9)S(9)が加えられる。φ(0,0)
とS(9)S(9)との和は、同じサイクルにおいてA
LU110の出力で利用可能となる。ステップ316で
この和は、データバス154を介してマルチプレクサ1
06にその後のアクセスのため渡される。ALU110
の出力は、データバス130に接続されているが、この
プロセスの間、データバス130から切り離されてい
る。ステップ318で、MAC132はS(169)S
(169)を生成し、ステップ320でこれはマルチプ
レクサ108に転送される。ALU110の出力はデー
タバス154に直接送り込まれ、したがってステップ3
22に従ってマルチプレクサ106に送り込まれる。5
番目のサイクルで、積S(169)S(169)が、ス
テップ320に従ってデータバス130を介してMAC
132の出力からマルチプレクサ108に入力され、か
つステップ324でALU110はこの値を前の累積か
ら減じる。この演算はφ(0,0)+S(9)S(9)
−S(169)S(169)を生み、φ(1,1)に等
しくなる。サイクル5の間、ALU110の出力はデー
タバス154で利用可能となり、ステップ326でRA
M152に書込まれ、次の式に従ってφ(2,2)を生
成するのに用いるため、マルチプレクサ106に同時に
与えられる。
【0084】
【数8】
【0085】ステップ328で、中心対角線が完了した
かどうかが定められる。完了していないので実行が再び
ステップ306で始まる。
【0086】積S(8)S(8)、およびS(168)
S(168)がMAC132からの次の2つの出力であ
るので、ステップ306ないし328に関して説明した
プロセスは、φ(10,10)が生成されRAM152
で記憶されるまで、MAC132のパイプラインで、中
断なく繰返される。データバス128、130、および
154はすべて、この動作で矛盾なく利用される。
【0087】先に示したように、ステップ54の完了に
おいてレジスタファイル120はその10の位置で、値
S(160)ないしS(169)を含む。加えて、ステ
ップ56の実行中、値S(0)ないしS(9)がレジス
タファイル120の残りの10の位置に転送される。示
されるように、この転送においていかなるオーバヘッド
をも受けない。というのはφ(1,1)ないしφ(1
0,10)の生成の間、値S(0)ないしS(9)が、
RAM112からデータバス128にアクセスされるか
らである。さらに、ステップ56の終わりにRAM15
2は、ステップ52からφ(0,0)を、ステップ54
からφ(0,1)ないしφ(0,10)を、ステップ5
6からφ(1,1)ないしφ(10,10)を含む。
【0088】ステップ56の間、値S(0)ないしS
(10)がレジスタファイル120に転送されているの
で、レジスタファイル120はステップ58の間にMA
C132の一方の入力を供給する適切な値をもって構成
される。結果として、ステップ350で、マルチプレク
サ104はレジスタファイル120からデータをアクセ
スするよう構成されている。ステップ56の間と同様、
ステップ58の間、MAC132の他方の入力は、RA
M112からデータバス128を通って直接供給され
る。こうしてMAC132のパイプラインは、一杯に保
たれている。
【0089】φ(1,2)、および対角線の次の値を生
成するためには、レジスタファイル120に記憶された
値が用いられなくてはならない。レジスタファイル12
0が、マルチプレクサ104を介してMAC132の一
方の入力に供給できるので、データバスの矛盾はまだな
い。ステップ56のように、レジスタファイル120の
出力はデータバス130に接続されているが、しかし切
り離されている。
【0090】値φ(1,2)ないしφ(9,10)がそ
の間に生成されるステップ58を実行するため、レジス
タファイル120のアドレスジェネレータ118は2つ
のポインタを備えて構成されており、それらはいずれも
減少されることが可能である。また、アドレスジェネレ
ータ114は2つのアドレスポインタを有し、これらが
値S(169)ないしS(161)、およびS(9)な
いしS(1)を、データバス128に交互のサイクルで
供給する。
【0091】ステップ352で、レジスタファイル12
0のアドレスジェネレータ118のポインタは、値S
(168)ないしS(160)、およびS(8)ないし
S(0)を交互のサイクルで供給するよう構成されてい
る。
【0092】こうしてステップ354の間、RAM11
2はMAC132の一方の入力に、値S(9)、S(1
69)、S(8)、S(168)、…、S(1)、S
(161)を、データバス128およびマルチプレクサ
102を用いて供給し、一方レジスタファイル120
は、MAC132の他方の入力に値S(8)、S(16
8)、S(7)、S(167)、…、S(0)、S(1
60)をマルチプレクサ104を用いて供給する。MA
C132(まだ乗算のみをするよう構成されている)か
らの、結果として起こる出力は次のようになる。
【0093】
【数9】
【0094】ALU110は、ステップ356ないし3
60に従って、マルチプレクサ106を介してRAM1
52から値φ(0,1)を与えられ、マルチプレクサ1
08を介してMAC132の出力S(9)S(8)を与
えられる。ALU110はこれらの値を加える。次にス
テップ366ないし370で、ALU110はその最後
の計算の和、およびMAC132の次の出力、S(16
9)S(168)を与えられ、ステップ372で後者を
前者から減じて、φ(1,2)を生む。ステップ374
でφ(1,2)がRAM152に記憶される。このプロ
セスは図15ないし図16で示されるステップに従って
繰返され、ステップ376で定められるように、共分散
行列の三角形の上部のすべてのエレメントが生成される
まで、レジスタファイル120およびRAM112のポ
インタは適切に変化される。このプロセスの間、MAC
132のパイプラインは一杯に保たれ、すべての対角線
のエレメントφ(1,2)ないしφ(9,10)が効率
的に生成され、データバス154を介してALU110
の出力からRAM152に記憶される。
【0095】ジェネレータ100を用いてステップ52
および54を完了するためのマシンサイクルの数は約
1,763である。具体的には、φ(0,0)ないしφ
(0,10)の生成は、160の乗算累積を11回と、
パイプラインサイクルを3回必要とし、それは1,76
3サイクルに等しい。アドレス生成、およびリセットオ
ーバヘッドのために付加的なサイクルが要求されるかも
しれない。
【0096】ステップ52および54のペナルティは3
パイプラインサイクルである。というのはφ(0,0)
がRAM152で記憶するために利用可能となる3サイ
クル前に、φ(0,0)を生成する最終のアドレスがレ
ジスタファイル120、およびRAM112に与えられ
るからである。しかしながら、この3サイクルの遅延が
アドレス生成オーバヘッドを最小にするため使用され得
る。特に、3サイクルの遅延の間、レジスタファイル1
20およびRAM112のポインタは、次の共分散エレ
メントの計算を始めるのに要求される値にリセットされ
てもよい。
【0097】その間にエレメントφ(1,1)ないしφ
(10,10)が生成されるステップ56は、約20の
乗算演算を要求し、複数のパイプライン操作と並行し
て、ALUが加算/減算する。
【0098】その間に共分散行列の残りが生成されるス
テップ58は、約110の乗算、および3パイプライン
サイクルを要求する。したがって、ジェネレータ100
での共分散行列の生成が要求するのは合計僅か1,87
6サイクルに何らかのアドレスジェネレータのリセット
オーバヘッドをも加えたもののみである。
【0099】MAC132が、乗算を出力しながら乗算
を累積することができるように修正されるならば、共分
散行列を生成する上述の方法は約55サイクルを節約で
きるよう修正され得る。具体的には、行0のエレメン
ト、φ(0,0)ないしφ(0,10)を、それぞれの
対角線のエレメントから離れて生成するよりもむしろ、
MAC132は、行0のエレメントを生成しながら対角
線のエレメントを生成するよう構成されてもよく、こう
して55の冗長な計算を回避するのである。
【0100】たとえば、φ(0,0)の計算中、S(1
0)S(10)ないしS(169)S(169)の積
が、以下のように計算される。
【0101】
【数10】
【0102】しかしながら、φ(0,0)の生成で用い
られる10のファクタ、S(160)S(160)ない
しS(169)S(169)は、以下のように対角線の
エレメントφ(1,1)ないしφ(10,10)を生成
するために要求されるファクタでもある。
【0103】
【数11】
【0104】値S(160)S(160)ないしS(1
69)S(169)の各々を2回計算するよりむしろ、
共分散行列を生成する上述の方法を以下のように修正す
ることによって、これらの冗長な計算は回避され得る。
【0105】共分散エレメントφ(0,0)は、アドレ
スジェネレータ114が、RAM112内の値S(0)
を有する位置0を最初に指すよう設定され、かつタイマ
が、160ではなく170の演算を与えるよう設定され
る以外は、上述のように生成される。初めの10のクロ
ックサイクルの間、S(0)S(0)ないしS(9)S
(9)がMAC132によって生成されるが、累積はさ
れない。その代わりに、これらの10のパラメータは、
MAC132から直ちに出力され、データバス154を
介してRAM152に記憶される。データバス154
は、その他では、ステップ52で用いられて、最後に生
成されたエレメントをRAM48に記憶するのみなの
で、バスの矛盾が起こらない。
【0106】S(0)S(0)ないしS(9)S(9)
が記憶された後、φ(0,0)が先に述べたように生成
される。しかしながら、φ(0,0)の生成の最後の1
0の要素、S(160)S(160)ないしS(16
9)S(169)が、MAC132から利用可能である
とき、これらもまたデータバス154を介してRAM1
52に記憶される。一旦φ(0,0)が生成され、記憶
されると、RAM48はφ(0,0)、S(0)S
(0)ないしS(9)S(9)、およびS(160)S
(160)ないしS(169)S(169)を含む。し
たがって、RAM48は、対角線の要素φ(1,1)な
いしφ(10,10)を生成するのに必要なデータをす
べて含む。
【0107】行列の行0の次のエレメント、φ(0,
1)の生成の間、ALU110は、新たな行0のエレメ
ントの生成が完了したときを除いて、乗算の最初の群を
記憶する間、および乗算の最後の群を記憶する間のいか
なるときでも、バスの矛盾なしにデータバス154を介
してRAM152に記憶されたデータにアクセスするこ
とができるだろう。
【0108】具体的には、φ(0,1)を生成する間、
MAC132は操作の最初の9サイクルの間はデータバ
ス154を用いて、値S(1)S(0)ないしS(9)
S(8)をRAM152で記憶し、次の150サイクル
の間はデータバス154を用いないで、S(10)S
(9)ないしS(160)S(159)を集積し、再び
データバス154を用いてφ(0,1)の最後の9のフ
ァクタS(161)S(160)ないしS(169)S
(168)をRAM152に記憶する。データバス15
4およびRAM152が、MAC132によって使用さ
れない150のサイクルの中休みの間は、ALU110
はデータバス154およびRAM152を利用して、共
分散行列の第1の対角線の残りのエレメントであるφ
(1,1)ないしφ(10,10)を生成する。このよ
うに、MAC132がφ(0,1)を生成する間、AL
U110はデータバス154およびRAM152を用い
て、φ(1,1)ないしφ(10,10)を計算し、そ
の結果をRAM152に記憶する。
【0109】対角線の要素の各々の生成は4のサイクル
を要求するため、φ(1,1)ないしφ(10,10)
の生成は、10×4=40サイクルを必要とする。した
がって、これらの生成は、MAC132がφ(0,1)
の生成のためにデータバス154またはRAM152の
使用を要求しない150のサイクルの中休みの間、容易
に完了され得る。S(160)S(160)ないしS
(169)S(169)が、φ(0,0)の生成の間記
憶されるので、φ(1,1)ないしφ(10,10)の
生成のためのこれらの値の冗長な計算は回避され、10
の乗算が節約できる。
【0110】共分散行列のすべてのエレメントが生成さ
れるまでこのプロセスは繰返される。たとえば、φ
(0,1)がMAC132で生成されている間、対角線
のエレメントφ(1,1)ないしφ(10,10)が、
ALU110によって生成され、RAM152に記憶さ
れ、値S(1)S(0)ないしS(9)S(8)、およ
びS(161)S(160)ないしS(169)S(1
68)もまた、RAM152に記憶される。φ(0,
3)がMAC132で生成されている間、これらの値は
次にALU110によって用いられて、次の対角線のエ
レメント、φ(1,2)ないしφ(9,10)を生成す
る。
【0111】こうしてMAC132と、ALU110と
は、並行して動作し、ジェネレータ100の資源を効率
的に活用する。上述したのと同じアドレスの機構を用い
るため、これらの修正は簡単に実現される。全体的に、
上述の修正は第1のパスで10のサイクルの節約を、第
2のパスで9のサイクルの節約を、第3のパスで8のサ
イクルの節約を生むといった具合に、全体で55のサイ
クルの節約を生む。
【0112】こうして、このアーキテクチュアのパイプ
ラインの能力が十分に活用され、多数の機能装置の存在
を活用する並行処理が起こる。具体的には、レジスタフ
ァイル120と、ALU110と、MAC132と、R
AM112および152とは、すべて並行して動作し、
VSELPのための共分散行列計算の実現において、高
い性能を提供する。
【0113】この発明の特定の実施例を説明し、示した
が、前掲の特許請求の範囲に規定されたこの発明の真の
精神および範囲から逸脱することなく、特定して示し、
説明した実施例の詳細についての変更が可能であること
は明らかになるであろう。たとえば、上述のこの発明の
例示的な実施例は、170のサンプル値に基づく11×
11の行列に関して説明されている。しかしながら、こ
こで開示されたジェネレータのアーキテクチュア、およ
び生成方法は、容易に修正可能であり、いかなる数の入
力サンプルに基づくいかなる寸法の共分散行列をも生成
する。
【図面の簡単な説明】
【図1】共分散行列に関する図であり、(A)は、各1
対のペアになった数字X,Yが、共分散行列の行X、列
Yにおいてのエレメントの値を表わす、11×11共分
散行列の図であり、(B)は、対称性の結果として、メ
モリ内で11×11共分散行列がいかに記憶され得るか
を示す図である。
【図2】図1の(B)に示される共分散行列の、対称な
部分行列の図である。
【図3】2つの個別のメモリ内でサンプル値を記憶す
る、共分散行列ジェネレータのブロック図である。
【図4】1つのメモリ上にレジスタパイプラインを有す
る、共分散行列ジェネレータのブロック図である。
【図5】この発明の一局面による、共分散行列ジェネレ
ータのブロック図である。
【図6】この発明の一局面による、共分散行列ジェネレ
ータの動作のフローチャートの図である。
【図7】クロックサイクルに関しての、データ転送シー
ケンスの図である。
【図8】共分散行列の第1の行の、第1のエレメントを
生成するプロセスのフローチャートの図である。
【図9】共分散行列の第1の行の残りのエレメントを生
成するプロセスのフローチャートの図である。
【図10】共分散行列の第1の行の残りのエレメントを
生成するプロセスのフローチャートの図である。
【図11】共分散行列の第1の行の残りのエレメントを
生成するプロセスのフローチャートの図である。
【図12】この発明のもう1つの局面による、拡張され
た共分散行列ジェネレータのブロック図である。
【図13】共分散行列の中心対角線を生成するプロセス
のフローチャートの図である。
【図14】共分散行列の中心対角線を生成するプロセス
のフローチャートの図である。
【図15】共分散行列の残りのエレメントを生成するプ
ロセスのフローチャートの図である。
【図16】共分散行列の残りのエレメントを生成するプ
ロセスのフローチャートの図である。
【符号の説明】
12 ランダムアクセスメモリ 14 アドレスジェネレータ 16 アドレスジェネレータ 18 アドレスジェネレータ 20 レジスタファイル 32 乗算アキュムレータ 48 ランダムアクセスメモリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マイケル・エイ・ニックス アメリカ合衆国、78737 テキサス州、オ ースティン、エスパノーラ・トレイル、 7903

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 共分散行列の第1の行を生成する装置で
    あって、 複数個のサンプルを表す値のアレイを有するメモリと、 そのメモリに結合される環状のバッファとを含み、その
    環状のバッファは、予め定められた数のメモリ位置を与
    えるように構成され、さらに、 前記メモリおよび前記環状のバッファに結合される乗算
    アキュムレータと、 前記共分散行列の第1の行の第1のエレメントを生成す
    るために、前記メモリから前記乗算アキュムレータへ、
    アレイの値の順次部分集合を転送する手段と、 前記乗算アキュムレータへ、前記メモリからのアレイの
    値の、第1の一連の順次部分集合と、前記環状のバッフ
    ァからのアレイの値の、第2の一連の順次部分集合とを
    同時に転送し、前記共分散行列の第1の行の残りのエレ
    メントを生成する手段とを含む装置。
  2. 【請求項2】 前記環状のバッファが、二重ポートレジ
    スタファイルを含み、そのレジスタファイルは読出アド
    レスジェネレータおよび書込アドレスジェネレータを含
    み、それらのアドレスジェネレータはラップアラウンド
    するように構成されている、請求項1に記載の装置。
  3. 【請求項3】 共分散行列の上部または下部の三角形部
    分を生成する装置であって、 第1のおよび第2のメモリを含み、第1のメモリは複数
    個のサンプルを表す値のアレイを含み、さらに、 前記第1のメモリに結合される環状のバッファを含み、
    そのバッファは、初めは、第1の予め定められた数のメ
    モリ位置を与えるように構成され、さらに、 前記第1のおよび第2のメモリ、ならびに前記環状のバ
    ッファに結合される乗算アキュムレータと、 前記第2のメモリおよび前記乗算アキュムレータに結合
    される演算論理装置と、 前記第1のメモリから前記乗算アキュムレータへ、前記
    アレイの値の順次部分集合を転送し、前記共分散行列の
    第1の行の第1のエレメントを生成する手段と、 前記第2のメモリ内に、前記共分散行列の第1の行の第
    1のエレメントを記憶する手段と、 前記乗算アキュムレータへ、前記第1のメモリからの、
    前記アレイの値の第1の一連の順次部分集合、および前
    記環状のバッファからの前記アレイの値の第2の一連の
    順次部分集合を、同時に転送し、前記乗算アキュムレー
    タの出力において、前記共分散行列の第1の行の残りの
    エレメントを生成する手段と、 前記第2のメモリ内に、前記共分散行列の第1の行の残
    りのエレメントを記憶する手段と、 前記演算論理装置内で、前記共分散行列の上部または下
    部の三角形部分の残りのエレメントを生成する手段と、 前記第2のメモリ内で、前記共分散行列の上部または下
    部の三角形部分の残りのエレメントを記憶する手段とを
    含む装置。
  4. 【請求項4】 前記環状のバッファが、読出アドレスジ
    ェネレータおよび書込アドレスジェネレータを有する、
    二重ポートレジスタファイルを含み、それらのアドレス
    ジェネレータはラップアラウンドするように構成され
    る、請求項3に記載の装置。
  5. 【請求項5】 前記演算論理装置内で生成する手段が、
    前記第1のメモリおよび前記環状のバッファファイルか
    ら、前記乗算アキュムレータへ、データを選択的に適用
    する手段と、前記第2のメモリおよび前記乗算アキュム
    レータから、前記演算論理装置へ、データを選択的に適
    用する手段とを含む、請求項3に記載の装置。
  6. 【請求項6】 共分散行列の上部または下部の三角形部
    分の残りのエレメントが、前記共分散行列の第1の行が
    生成される間に、前記演算論理装置内で生成され、演算
    論理装置内で生成する手段が、前記第2のメモリからそ
    の演算論理装置へ、データを選択的に適用する手段を含
    む、請求項3に記載の装置。
  7. 【請求項7】 共分散行列を生成する方法であって、 複数個のサンプルを表す値のアレイを有するメモリを設
    けるステップと、 乗算アキュムレータを設けるステップと、 予め定められた深さで環状のバッファを設けるステップ
    と、 乗算アキュムレータ内でその共分散行列の第1の行の第
    1のエレメントを生成するステップと、 第2のメモリ内でその第1のエレメントを記憶するステ
    ップと、 前記共分散行列の第1の行の残りのエレメントを生成す
    るステップと、 前記第2のメモリ内に、第1の行の残りのエレメントを
    記憶するステップと、 演算論理装置内で、前記共分散行列の上部または下部の
    三角形部分の残りのエレメントを、対角線ごとに生成す
    るステップと、 前記第2のメモリ内に、前記共分散行列の上部または下
    部の三角形部分の残りのエレメントを記憶するステップ
    とを含む方法。
  8. 【請求項8】 前記第1のエレメントを生成するステッ
    プは、前記第1のメモリから前記乗算アキュムレータ
    へ、前記アレイの値の順次部分集合を転送するそのステ
    ップを含む、請求項7に記載の方法。
  9. 【請求項9】 前記第1の行の残りのエレメントを生成
    するステップは、前記第1のメモリから前記乗算アキュ
    ムレータへ、前記アレイの値の、第1の一連の順次部分
    集合を転送する一方で、前記環状のバッファから前記乗
    算アキュムレータへ、前記アレイの値の、第2の一連の
    順次部分集合を同時に転送するステップを含む、請求項
    7に記載の方法。
  10. 【請求項10】 前記共分散行列の上部または下部の三
    角形部分の残りのエレメントを対角線ごとに生成するス
    テップが、前記共分散行列の第1の行の残りのエレメン
    トを生成するステップと同時に行なわれる、請求項7に
    記載の方法。
  11. 【請求項11】 共分散行列の第1の行のエレメントを
    生成する方法であって、 複数個のサンプルを表す値のアレイを有する、第1のメ
    モリを設けるステップと、 乗算アキュムレータを設けるステップと、 予め定められた深さの環状のバッファを設けるステップ
    と、 前記第1のメモリから前記乗算アキュムレータへ、前記
    アレイの値の順次部分集合を連続的に入力することによ
    り、前記乗算アキュムレータ内で、前記共分散行列の第
    1の行の第1のエレメントを生成するステップと、 第2のメモリ内に前記第1のエレメントを記憶するステ
    ップと、 前記第1のメモリから、前記乗算アキュムレータへ、前
    記アレイの値の、第1の一連の順次部分集合を連続的に
    入力する一方で前記環状のバッファから前記乗算アキュ
    ムレータへ、前記アレイの値の、第2の一連の順次部分
    集合を同時に入力することにより、前記共分散行列の第
    1の行の残りのエレメントを生成するステップと、 前記第2のメモリ内に、前記第1の行の残りのエレメン
    トを記憶するステップとを含む方法。
  12. 【請求項12】 共分散行列の上部または下部の三角形
    部分の第1の行を生成する方法であって、 複数個のサンプルを表す値のアレイを有するメモリを設
    けるステップと、 乗算アキュムレータを設けるステップと、 予め定められた深さの環状のバッファを設けるステップ
    と、 前記メモリからの一連の値を前記乗算アキュムレータお
    よび前記環状のバッファへ同時に適用することにより、
    前記第1の行の第1のエレメントを生成するステップ
    と、 前記乗算アキュムレータおよび前記環状のバッファへ、
    前記メモリからの第1の一連の値を適用するステップ、
    ならびに、前記乗算アキュムレータへ前記環状のバッフ
    ァからの第2の一連の値を適用するステップを同時に実
    行することにより、前記第1の行の残りのエレメントの
    各々を生成するステップとを含む方法。
  13. 【請求項13】 共分散行列の三角形部分を生成する方
    法であって、その三角形部分は、第1の行のエレメント
    およびエレメントの複数個の対角線アレイを規定し、前
    記方法は、 第1のメモリおよび第2のメモリを設けるステップを含
    み、その第1のメモリはサンプルを表す複数個の値を含
    み、さらに乗算アキュムレータを設けるステップと、 予め定められた深さの環状のバッファを設けるステップ
    と、 前記乗算アキュムレータおよび前記環状のバッファへ、
    前記第1のメモリからの一連の値を同時に適用すること
    により、前記第1の行の第1のエレメントを生成するス
    テップと、 前記第2のメモリ内に、前記第1の行の第1のエレメン
    トを記憶するステップと、 前記乗算アキュムレータへ、前記第1のメモリからの第
    1の一連の値および前記環状のバッファからの第2の一
    連の値を同時に適用することにより、前記第1の行の残
    りのエレメントの各々を生成するステップと、 前記第2のメモリ内に、前記第1の行の残りのエレメン
    トの各々を記憶するステップと、 演算論理装置を設けるステップと、 その演算論理装置内で、対角線アレイの各々の残りのエ
    レメントを、対角線ごとに生成するステップと、 前記第2のメモリ内で、前記対角線アレイの各々の残り
    のエレメントを記憶するステップとを含む方法。
  14. 【請求項14】 2つの入力レジスタおよび1つの出力
    レジスタを有する乗算アキュムレータと、 第1および第2のマルチプレクサとを含み、前記第1の
    マルチプレクサは、前記乗算アキュムレータの、一方の
    入力レジスタに結合され、前記第2のマルチプレクサ
    は、前記乗算アキュムレータの、他方の入力レジスタに
    結合され、さらに、 読出アドレスジェネレータおよび書込アドレスジェネレ
    ータを有する、二重ポートレジスタファイルを含み、前
    記レジスタファイルの出力は、前記第2のマルチプレク
    サに結合され、さらに、 前記レジスタファイルの入力に結合される第3のマルチ
    プレクサと、 2つの入力レジスタおよび1つの出力レジスタを有する
    演算論理装置と、 第4および第5のマルチプレクサとを含み、前記第4の
    マルチプレクサは前記演算論理装置の、一方の入力レジ
    スタに結合され、前記第5のマルチプレクサは前記演算
    論理装置の、他方の入力レジスタに結合され、さらに、 前記第1、第2、第3、第4、および第5のマルチプレ
    クサに結合される第1のデータバスを含み、前記第1の
    データバスはさらに前記乗算アキュムレータの出力レジ
    スタ、前記ALU(演算論理装置)の出力レジスタ、お
    よび前記ファイルレジスタの出力に結合され、さらに、 前記第1、第2、および第4のマルチプレクサに結合さ
    れる第2のデータバスを含み、前記第2のデータバスは
    さらに前記乗算アキュムレータの出力レジスタ、前記演
    算論理装置の出力レジスタ、および前記レジスタファイ
    ルの出力に結合され、さらに、 前記第3のマルチプレクサおよび前記第5のマルチプレ
    クサに結合される第3のデータバスを含み、前記第3の
    データバスはさらに前記乗算アキュムレータの出力レジ
    スタ、前記演算論理装置の出力レジスタ、および前記レ
    ジスタファイルの出力に結合され、さらに、 アドレスレジスタを有する第1のメモリを含み、前記第
    1のメモリは前記第1のデータバスに結合され、さら
    に、 アドレスレジスタを有する第2のメモリを含み、前記第
    2のメモリは前記第2のデータバスに結合される、共分
    散行列ジェネレータ。
JP14372193A 1992-06-17 1993-06-15 共分散行列を生成する方法および装置 Expired - Fee Related JP3740516B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/900,000 US5299144A (en) 1992-06-17 1992-06-17 Architecture for covariance matrix generation
US900000 1992-06-17

Publications (2)

Publication Number Publication Date
JPH0660106A true JPH0660106A (ja) 1994-03-04
JP3740516B2 JP3740516B2 (ja) 2006-02-01

Family

ID=25411835

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14372193A Expired - Fee Related JP3740516B2 (ja) 1992-06-17 1993-06-15 共分散行列を生成する方法および装置

Country Status (4)

Country Link
US (1) US5299144A (ja)
EP (1) EP0575033B1 (ja)
JP (1) JP3740516B2 (ja)
DE (1) DE69325618T2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233853A (ja) * 1992-02-24 1993-09-10 Sharp Corp 演算処理装置
US7085320B2 (en) * 2001-07-31 2006-08-01 Wis Technologies, Inc. Multiple format video compression
US20050207663A1 (en) * 2001-07-31 2005-09-22 Weimin Zeng Searching method and system for best matching motion vector
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
US7035332B2 (en) * 2001-07-31 2006-04-25 Wis Technologies, Inc. DCT/IDCT with minimum multiplication
US7142251B2 (en) * 2001-07-31 2006-11-28 Micronas Usa, Inc. Video input processor in multi-format video compression system
US6981073B2 (en) * 2001-07-31 2005-12-27 Wis Technologies, Inc. Multiple channel data bus control for video processing
US6970509B2 (en) * 2001-07-31 2005-11-29 Wis Technologies, Inc. Cell array and method of multiresolution motion estimation and compensation
US7184101B2 (en) * 2001-07-31 2007-02-27 Micronas Usa, Inc. Address generation for video processing
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
US6952460B1 (en) * 2001-09-26 2005-10-04 L-3 Communications Corporation Efficient space-time adaptive processing (STAP) filter for global positioning system (GPS) receivers
US7327798B2 (en) 2001-10-19 2008-02-05 Lg Electronics Inc. Method and apparatus for transmitting/receiving signals in multiple-input multiple-output communication system provided with plurality of antenna elements
KR100463526B1 (ko) * 2002-01-04 2004-12-29 엘지전자 주식회사 다중 입력 다중 출력 시스템에서의 전력 할당 방법
US7441105B1 (en) * 2004-01-02 2008-10-21 Altera Corporation Reducing multiplexer circuitry for operand select logic associated with a processor
US7805301B2 (en) * 2005-07-01 2010-09-28 Microsoft Corporation Covariance estimation for pattern recognition
JP5659203B2 (ja) * 2012-09-06 2015-01-28 株式会社東芝 モデル学習装置、モデル作成方法及びモデル作成プログラム
US9069701B2 (en) * 2012-12-11 2015-06-30 International Business Machines Corporation Virtual machine failover
US9032157B2 (en) * 2012-12-11 2015-05-12 International Business Machines Corporation Virtual machine failover
US9721495B2 (en) * 2013-02-27 2017-08-01 E Ink Corporation Methods for driving electro-optic displays
US10386491B2 (en) 2015-11-23 2019-08-20 Honeywell International Inc. Efficient covariance matrix update
CN111596320B (zh) * 2020-05-28 2023-03-24 成都天奥信息科技有限公司 一种高性能的抗干扰方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4544919A (en) * 1982-01-03 1985-10-01 Motorola, Inc. Method and means of determining coefficients for linear predictive coding
US4545025A (en) * 1983-08-16 1985-10-01 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Auto covariance computer
AU588334B2 (en) * 1985-07-18 1989-09-14 Raytheon Company Digital sound synthesizer and method
JPS6273391A (ja) * 1985-09-27 1987-04-04 Toshiba Corp パタ−ン認識学習装置
DE3634239A1 (de) * 1986-10-08 1988-04-21 Bosch Gmbh Robert Schaltungsanordnung zur umwandlung eines durch eine stoerfunktion gestoertes messsignals in ein ungestoertes signal
JPH03120598A (ja) * 1989-10-03 1991-05-22 Canon Inc 音声認識方法及び装置

Also Published As

Publication number Publication date
EP0575033A1 (en) 1993-12-22
DE69325618D1 (de) 1999-08-19
EP0575033B1 (en) 1999-07-14
US5299144A (en) 1994-03-29
DE69325618T2 (de) 2000-04-06
JP3740516B2 (ja) 2006-02-01

Similar Documents

Publication Publication Date Title
JPH0660106A (ja) 共分散行列を生成する方法および装置
US3787673A (en) Pipelined high speed arithmetic unit
EP1047989B1 (en) Digital signal processor having data alignment buffer for performing unaligned data accesses
US5226171A (en) Parallel vector processing system for individual and broadcast distribution of operands and control information
US4547862A (en) Monolithic fast fourier transform circuit
US5081573A (en) Parallel processing system
EP0329023A2 (en) Apparatus for performing digital signal processing including fast fourier transform radix-4 butterfly computations
JPH03138759A (ja) 信号プロセツサ
JPH10187438A (ja) 乗算器の入力に対する遷移を減少させる方法
CN111353126A (zh) 分块矩阵乘法运算系统
JP2511914B2 (ja) 複素乗算器及び複素乗算方法
CN212112470U (zh) 一种矩阵乘法计算电路
CN111581595A (zh) 一种矩阵乘法计算方法及计算电路
JPH033262B2 (ja)
WO1990001743A1 (en) Apparatus and method for flexible control of digital signal processing devices
US4860249A (en) Multizone array processor implementing two sided zone buffers with each side being dynamically configured as a working or I/O side
JPS6248873B2 (ja)
EP1538533A2 (en) Improved FFT/IFFT processor
JPS58149555A (ja) 並列処理装置
EP3232321A1 (en) Signal processing apparatus with register file having dual two-dimensional register banks
EP0136218A2 (en) Multiple port pipelined processor
JPS62151940A (ja) レジスタ退避/復帰方式
JP2003244190A (ja) データフロー制御スイッチ用プロセッサ及びデータフロー制御スイッチ
US7447722B2 (en) Low latency computation in real time utilizing a DSP processor
JP2697619B2 (ja) Nポイントfft専用プロセッサ

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040406

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040705

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040708

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050303

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050317

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050913

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20051012

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20051012

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091118

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091118

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101118

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees