JPH11296493A - デ―タ処理システム用再構成可能コプロセッサ - Google Patents
デ―タ処理システム用再構成可能コプロセッサInfo
- Publication number
- JPH11296493A JPH11296493A JP11027805A JP2780599A JPH11296493A JP H11296493 A JPH11296493 A JP H11296493A JP 11027805 A JP11027805 A JP 11027805A JP 2780599 A JP2780599 A JP 2780599A JP H11296493 A JPH11296493 A JP H11296493A
- Authority
- JP
- Japan
- Prior art keywords
- data
- coprocessor
- adder
- output
- input
- 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】 (修正有)
【課題】 データ処理用コプロセッサを提供する。
【解決手段】 複数対の乗算器のそれぞれの積出力を受
信する複数の第1加算器、およびその一対からの和出力
を受信する第2加算器を有している。各乗算器出力の符
号拡張回路は積出力を符号拡張してその乗算器の入力幅
の2倍以上とする。各対の一方の乗算器は、予め定めら
れたビット数だけ積出力を左方シフトさせる固定長左方
シフト回路を有し、他方の乗算器は積出力を前記ビット
数だけ右方シフトさせる右方シフト回路を有する。各対
中の第1乗算器の出力におけるマルチプレクサは、符号
拡張されたあるいは左方シフトされた積を選択する。各
対中の第2乗算器の出力におけるマルチプレクサは、積
または右方シフトされた積を選択するか、あるいはその
入力を通過させる。
信する複数の第1加算器、およびその一対からの和出力
を受信する第2加算器を有している。各乗算器出力の符
号拡張回路は積出力を符号拡張してその乗算器の入力幅
の2倍以上とする。各対の一方の乗算器は、予め定めら
れたビット数だけ積出力を左方シフトさせる固定長左方
シフト回路を有し、他方の乗算器は積出力を前記ビット
数だけ右方シフトさせる右方シフト回路を有する。各対
中の第1乗算器の出力におけるマルチプレクサは、符号
拡張されたあるいは左方シフトされた積を選択する。各
対中の第2乗算器の出力におけるマルチプレクサは、積
または右方シフトされた積を選択するか、あるいはその
入力を通過させる。
Description
【0001】
【発明の属する技術分野】本発明の技術分野はデジタル
信号処理であって、更に詳細にはコアとなるデータプロ
セッサおよび再構成可能コプロセッサを備えるデジタル
信号プロセッサである。
信号処理であって、更に詳細にはコアとなるデータプロ
セッサおよび再構成可能コプロセッサを備えるデジタル
信号プロセッサである。
【0002】
【従来の技術】デジタル信号処理は、音声および映像処
理用として益々普及している。多くの場合、従来の個別
アナログ部品の一群をデジタルプロセッサで置換するこ
とができる。デジタル信号プロセッサによってもたらさ
れる処理容量の増大のお陰で、益々多くの種類、多くの
機能の従来技術デバイスが実現されるようになってき
た。この傾向は、現状のデバイスに対して更に複雑な機
能や特徴を加えること、あるいは新しい種類のデバイス
を生成することに対する要求を喚起するようになってき
た。いくつかのケースでは、この要求は、完全にプログ
ラム可能なデジタル信号プロセッサで以て、所望の関数
をコスト効率的に実現する能力を凌駕するまでになって
いる。
理用として益々普及している。多くの場合、従来の個別
アナログ部品の一群をデジタルプロセッサで置換するこ
とができる。デジタル信号プロセッサによってもたらさ
れる処理容量の増大のお陰で、益々多くの種類、多くの
機能の従来技術デバイスが実現されるようになってき
た。この傾向は、現状のデバイスに対して更に複雑な機
能や特徴を加えること、あるいは新しい種類のデバイス
を生成することに対する要求を喚起するようになってき
た。いくつかのケースでは、この要求は、完全にプログ
ラム可能なデジタル信号プロセッサで以て、所望の関数
をコスト効率的に実現する能力を凌駕するまでになって
いる。
【0003】この需要に対する1つの対応は、デジタル
信号プロセッサを特定用途向け集積回路(ASIC)と
組み合わせるものである。デジタル信号プロセッサは制
御関数およびいくつかの信号処理を取り扱うようにプロ
グラムされる。デジタル信号プロセッサの完全なプログ
ラム可能性は、プログラムを変更することによって製品
を差別化することを可能とする。ASICは、普通に実
行される、時間的に厳しい特定のコア関数に対する処理
ハードウエアを提供するように構築される。集積回路の
密度が向上するにつれて、今やデジタル信号プロセッサ
とASICハードウエアコプロセッサ(co−proc
essor)とを同一チップ上へ配置することが可能と
なっている。
信号プロセッサを特定用途向け集積回路(ASIC)と
組み合わせるものである。デジタル信号プロセッサは制
御関数およびいくつかの信号処理を取り扱うようにプロ
グラムされる。デジタル信号プロセッサの完全なプログ
ラム可能性は、プログラムを変更することによって製品
を差別化することを可能とする。ASICは、普通に実
行される、時間的に厳しい特定のコア関数に対する処理
ハードウエアを提供するように構築される。集積回路の
密度が向上するにつれて、今やデジタル信号プロセッサ
とASICハードウエアコプロセッサ(co−proc
essor)とを同一チップ上へ配置することが可能と
なっている。
【0004】
【発明の解決しようとする課題】この方式には2つの問
題がある。この方式では、ハードウエアコプロセッサA
SICとデジタル信号プロセッサとの間に効率的な接続
が得られることが希有である。デジタル信号プロセッサ
をプログラムすることによってインターフェースのほと
んどを取り扱うことが普通である。多くの場合、デジタ
ル信号プロセッサは、ハードウエアコプロセッサが動作
するのにあわせて実時間で、データポインタおよびコマ
ンドを供給しなければならない。安全な設計とするため
に、デジタル信号プロセッサがハードウエアコプロセッ
サに対してサービスを提供するための予備の時間を設け
ることが普通である。このことは、ハードウエアコプロ
セッサが完全には利用されていないということを意味す
る。第2の問題は設計に要する時間の問題から発生す
る。異なる機能性を設計する能力が増大するにつれて、
製品サイクルが減少する。このことは、新しい機能を迅
速に設計することに対してプレミアムを与えることにな
る。プログラムおよびインターフェースを再利用するこ
とができれば、設計サイクルを短縮するのに役立つはず
である。しかし、ASICハードウエアコプロセッサ中
に組み込まれた固定された関数は容易には再利用できな
い。典型的なASICハードウエアコプロセッサは、狭
い範囲の問題に適した限定された関数セットしかもたな
い。それらの設計は、密接に関連する関数を実現するた
めにさえ、迅速に再利用することが不可能である。加え
て、デジタル信号プロセッサとASICハードウエアコ
プロセッサとの間のインターフェースは、特定の製品に
対して固有の、その場しのぎの技術を利用する傾向があ
る。
題がある。この方式では、ハードウエアコプロセッサA
SICとデジタル信号プロセッサとの間に効率的な接続
が得られることが希有である。デジタル信号プロセッサ
をプログラムすることによってインターフェースのほと
んどを取り扱うことが普通である。多くの場合、デジタ
ル信号プロセッサは、ハードウエアコプロセッサが動作
するのにあわせて実時間で、データポインタおよびコマ
ンドを供給しなければならない。安全な設計とするため
に、デジタル信号プロセッサがハードウエアコプロセッ
サに対してサービスを提供するための予備の時間を設け
ることが普通である。このことは、ハードウエアコプロ
セッサが完全には利用されていないということを意味す
る。第2の問題は設計に要する時間の問題から発生す
る。異なる機能性を設計する能力が増大するにつれて、
製品サイクルが減少する。このことは、新しい機能を迅
速に設計することに対してプレミアムを与えることにな
る。プログラムおよびインターフェースを再利用するこ
とができれば、設計サイクルを短縮するのに役立つはず
である。しかし、ASICハードウエアコプロセッサ中
に組み込まれた固定された関数は容易には再利用できな
い。典型的なASICハードウエアコプロセッサは、狭
い範囲の問題に適した限定された関数セットしかもたな
い。それらの設計は、密接に関連する関数を実現するた
めにさえ、迅速に再利用することが不可能である。加え
て、デジタル信号プロセッサとASICハードウエアコ
プロセッサとの間のインターフェースは、特定の製品に
対して固有の、その場しのぎの技術を利用する傾向があ
る。
【0005】
【課題を解決するための手段】本発明は多重乗算累算動
作用として適合化された再構成可能なコプロセッサであ
る。本コプロセッサには複数対の乗算器、複数対の乗算
器からそれぞれの積出力を受信する複数の第1加算器、
および第1加算器の対応する一対からの和出力を受信す
る少なくとも1個の第2加算器が含まれている。コプロ
セッサには、各乗算器出力に符号拡張回路が含まれてい
る。符号拡張回路は積出力を符号拡張して、その乗算器
の入力幅の2倍以上とする。各対の一方の乗算器は、予
め定められたビット数だけ積出力を左方シフトさせる固
定長左方シフト回路を有する。各対の中の他方の乗算器
は積出力を前記ビット数だけ右方シフトさせる右方シフ
ト回路を含む。各対中の第1乗算器の出力におけるマル
チプレクサは、符号拡張されたあるいは左方シフトされ
た積を選択する。各対中の第2乗算器の出力におけるマ
ルチプレクサは、積または右方シフトされた積を選択す
るか、あるいはその入力を通過させる。入力の通過を選
択する場合には、A+B*C計算が許可される。これは
乗算器の1個をバイパスすることによって、係数更新に
おいて有用である。第2乗算器用の符号拡張回路がこの
マルチプレクサに続いている。
作用として適合化された再構成可能なコプロセッサであ
る。本コプロセッサには複数対の乗算器、複数対の乗算
器からそれぞれの積出力を受信する複数の第1加算器、
および第1加算器の対応する一対からの和出力を受信す
る少なくとも1個の第2加算器が含まれている。コプロ
セッサには、各乗算器出力に符号拡張回路が含まれてい
る。符号拡張回路は積出力を符号拡張して、その乗算器
の入力幅の2倍以上とする。各対の一方の乗算器は、予
め定められたビット数だけ積出力を左方シフトさせる固
定長左方シフト回路を有する。各対の中の他方の乗算器
は積出力を前記ビット数だけ右方シフトさせる右方シフ
ト回路を含む。各対中の第1乗算器の出力におけるマル
チプレクサは、符号拡張されたあるいは左方シフトされ
た積を選択する。各対中の第2乗算器の出力におけるマ
ルチプレクサは、積または右方シフトされた積を選択す
るか、あるいはその入力を通過させる。入力の通過を選
択する場合には、A+B*C計算が許可される。これは
乗算器の1個をバイパスすることによって、係数更新に
おいて有用である。第2乗算器用の符号拡張回路がこの
マルチプレクサに続いている。
【0006】第3の加算器が第2加算器の和出力を受信
して、第3和出力を生成する。これら第3加算器には、
それらの出力において、複数選択が可能な出力累算器お
よび可変長右方シフタが含まれている。第3加算器は4
個の乗算器の各々からの積の和を別々に加算することが
できる。あるいは、第3加算器は8個の乗算器の積を累
算することができる。
して、第3和出力を生成する。これら第3加算器には、
それらの出力において、複数選択が可能な出力累算器お
よび可変長右方シフタが含まれている。第3加算器は4
個の乗算器の各々からの積の和を別々に加算することが
できる。あるいは、第3加算器は8個の乗算器の積を累
算することができる。
【0007】高速フーリエ変換のために特別な構成が採
用される。一対の付加的入力および一対の付加的加算器
が設けられる。第1の付加的入力は対応する第2和と一
緒に一対の加算器へ供給される。第2の付加的入力は別
の第2和と一緒に加算器の第2の対へ供給される。
用される。一対の付加的入力および一対の付加的加算器
が設けられる。第1の付加的入力は対応する第2和と一
緒に一対の加算器へ供給される。第2の付加的入力は別
の第2和と一緒に加算器の第2の対へ供給される。
【0008】本構成によって、同じ基本的ハードウエア
を、実数および複素数の有限インパルス応答(FIR)
フィルタが、光速フーリエ変換(FFT)、および係数
更新のいずれか用として構成することが可能となる。
を、実数および複素数の有限インパルス応答(FIR)
フィルタが、光速フーリエ変換(FFT)、および係数
更新のいずれか用として構成することが可能となる。
【0009】本発明のこれらおよびその他の態様が図面
に示されている。
に示されている。
【0010】
【発明の実施の形態】図1は、デジタル信号プロセッサ
コア110と再構成可能ハードウエアコプロセッサ14
0とを含む回路100を示している。本発明の好適実施
例に従えば、これらの部品は単一の集積回路中に形成さ
れる。デジタル信号プロセッサコア110は従来設計の
ものでよい。好適実施例において、デジタル信号プロセ
ッサコア110は、ダイレクトメモリアクセス回路12
0がデジタル信号プロセッサコア110に関係なく自主
的にデータ転送を行うように制御するように適合化され
ている。外部メモリインターフェース130は、内部デ
ータバス101およびアドレスバス103と、それぞれ
それらの外部対応バスである外部データバス131およ
び外部アドレスバス133との間のインターフェースと
して働く。外部メモリインターフェース130は従来構
成のものである。集積回路100は、オプションとして
付加的な従来構造を備え、また従来回路を含むことがで
きる。特に注意して欲しいのは、集積回路100に対し
てキャッシュメモリを付加することが性能向上に本質的
に寄与するということである。図1に示される部品は、
その他の従来部品の装備を排除することを意図していな
い。図1に示されるこれらの従来部品は、単に、再構成
可能ハードウエアコプロセッサ140の付加によって最
も影響を受ける部品であるというだけである。
コア110と再構成可能ハードウエアコプロセッサ14
0とを含む回路100を示している。本発明の好適実施
例に従えば、これらの部品は単一の集積回路中に形成さ
れる。デジタル信号プロセッサコア110は従来設計の
ものでよい。好適実施例において、デジタル信号プロセ
ッサコア110は、ダイレクトメモリアクセス回路12
0がデジタル信号プロセッサコア110に関係なく自主
的にデータ転送を行うように制御するように適合化され
ている。外部メモリインターフェース130は、内部デ
ータバス101およびアドレスバス103と、それぞれ
それらの外部対応バスである外部データバス131およ
び外部アドレスバス133との間のインターフェースと
して働く。外部メモリインターフェース130は従来構
成のものである。集積回路100は、オプションとして
付加的な従来構造を備え、また従来回路を含むことがで
きる。特に注意して欲しいのは、集積回路100に対し
てキャッシュメモリを付加することが性能向上に本質的
に寄与するということである。図1に示される部品は、
その他の従来部品の装備を排除することを意図していな
い。図1に示されるこれらの従来部品は、単に、再構成
可能ハードウエアコプロセッサ140の付加によって最
も影響を受ける部品であるというだけである。
【0011】再構成可能ハードウエアコプロセッサ14
0は、データバス101およびアドレスバス103を介
して集積回路100のその他の部品とつながっている。
再構成可能ハードウエアコプロセッサ140は、コマン
ドメモリ141、コプロセッサ論理コア143、データ
メモリ145、および係数メモリ147を含む。コマン
ドメモリ141は、デジタル信号プロセッサコア110
がそれを通して再構成可能ハードウエアコプロセッサ1
40の動作を制御するためのコンジット(condui
t)として働く。この特徴については図2において再度
説明する。コプロセッサ論理コア143は、コマンドメ
モリ141中に記憶されているコマンドに応答してコプ
ロセッサ関数を実行する。それらのコプロセッサ関数に
は、コプロセッサ論理コア143とデータメモリ145
と係数メモリ147の相互間でのデータ交換が含まれ
る。データメモリ145は、再構成可能ハードウエアコ
プロセッサ140によって処理される入力データを記憶
し、更に、再構成可能ハードウエアコプロセッサ140
の演算結果を記憶する。このデータを記憶するやり方に
ついては、更に、図2に関連して後に説明する。係数メ
モリ147は、係数と呼ばれコプロセッサ論理コア14
3によって使用される、変化しないあるいは比較的変化
しない処理パラメータを記憶する。データメモリ145
および係数メモリ147を別々の部品として説明した
が、これらを、単一の統合化されたメモリの単に異なる
部分として採用することも容易である。後に述べるよう
に、以下に述べる多重乗算累算コプロセッサ用として
は、もしもそのような単一の統合されたメモリがデータ
および係数用の読み出しポートを2つと、出力データ書
き込み用の書き込みポート2つとを有していれば、それ
が最良である。再構成可能ハードウエアコプロセッサ1
40によってアクセス可能なメモリが、コプロセッサ論
理コア143に物理的に近接して同一集積回路上に配置
されているのが最良であると考えられている。この物理
的な接近は、コプロセッサ論理コア143の好ましいデ
ータスループットを実現するために必要とされる幅広い
メモリバスを使用するために必要である。
0は、データバス101およびアドレスバス103を介
して集積回路100のその他の部品とつながっている。
再構成可能ハードウエアコプロセッサ140は、コマン
ドメモリ141、コプロセッサ論理コア143、データ
メモリ145、および係数メモリ147を含む。コマン
ドメモリ141は、デジタル信号プロセッサコア110
がそれを通して再構成可能ハードウエアコプロセッサ1
40の動作を制御するためのコンジット(condui
t)として働く。この特徴については図2において再度
説明する。コプロセッサ論理コア143は、コマンドメ
モリ141中に記憶されているコマンドに応答してコプ
ロセッサ関数を実行する。それらのコプロセッサ関数に
は、コプロセッサ論理コア143とデータメモリ145
と係数メモリ147の相互間でのデータ交換が含まれ
る。データメモリ145は、再構成可能ハードウエアコ
プロセッサ140によって処理される入力データを記憶
し、更に、再構成可能ハードウエアコプロセッサ140
の演算結果を記憶する。このデータを記憶するやり方に
ついては、更に、図2に関連して後に説明する。係数メ
モリ147は、係数と呼ばれコプロセッサ論理コア14
3によって使用される、変化しないあるいは比較的変化
しない処理パラメータを記憶する。データメモリ145
および係数メモリ147を別々の部品として説明した
が、これらを、単一の統合化されたメモリの単に異なる
部分として採用することも容易である。後に述べるよう
に、以下に述べる多重乗算累算コプロセッサ用として
は、もしもそのような単一の統合されたメモリがデータ
および係数用の読み出しポートを2つと、出力データ書
き込み用の書き込みポート2つとを有していれば、それ
が最良である。再構成可能ハードウエアコプロセッサ1
40によってアクセス可能なメモリが、コプロセッサ論
理コア143に物理的に近接して同一集積回路上に配置
されているのが最良であると考えられている。この物理
的な接近は、コプロセッサ論理コア143の好ましいデ
ータスループットを実現するために必要とされる幅広い
メモリバスを使用するために必要である。
【0012】図2はデジタル信号プロセッサコア110
と再構成可能ハードウエアコプロセッサ140との間の
メモリマッピングされたインターフェースを示す。デジ
タル信号プロセッサコア110はコマンドメモリ141
を介して再構成可能ハードウエアコプロセッサ140を
制御する。好適実施例では、コマンドメモリ141は先
入れ先出し(FIFO)メモリである。コマンドメモリ
141の書き込みポートは、デジタル信号プロセッサコ
ア110のアドレス空間内の単一のメモリ場所へメモリ
マッピングされている。こうして、デジタル信号プロセ
ッサコア110は、コマンドメモリ141への入力とし
て働くアドレスへコマンドを書き込むことによって再構
成可能ハードウエアコプロセッサ140を制御する。コ
マンドメモリ141は2つの循環指向ポインタを含むこ
とが好ましい。書き込みポインタ151は、コマンドメ
モリ141内の、次に受信されるコマンドを記憶してお
く場所を指す。コマンドメモリ141の予め定められた
アドレスへ書き込みが行われる度に、書き込みポインタ
はそのデータを受信する物理的場所を選択する。そのよ
うなデータ書き込みに続いて、書き込みポインタ151
は、コマンドメモリ141中の次の物理的場所を指すよ
うに更新される。書き込みポインタ151は循環指向で
あって、最後の物理的場所から最初の物理的場所へと循
環する。再構成可能ハードウエアコプロセッサ140は
コマンドメモリ141からコマンドを、それらが読み出
しポインタ153を使用して受信された(FIFO)の
と同じ順序で読み出す。読み出しポインタ153は次に
読み出されるコマンドを記憶するコマンドメモリ141
中の物理的場所を指す。読み出しポインタ153は、そ
のような各々の読み出しに続いてコマンドメモリ141
中の次の物理的場所を参照するように更新される。注意
すべきことは、読み出しポインタ153もまた循環指向
であって、最後の物理的場所から最初の物理的場所へ循
環するようになっているということである。コマンドメ
モリ141は、書き込みポインタ151が読み出しポイ
ンタ153を追い越すことを防止するという仕組みを含
む。このことは、例えば、書き込みポインタ151と読
み出しポインタ153とが同じ物理的場所を参照してい
る時に、書き込みを拒否して、デジタル信号プロセッサ
コア110に対してメモリ故障信号を送り返すことによ
って発生する。すると、コマンドメモリ141のFIF
Oバッファはフル状態となってそれ以上のコマンドを受
け入れることができない。
と再構成可能ハードウエアコプロセッサ140との間の
メモリマッピングされたインターフェースを示す。デジ
タル信号プロセッサコア110はコマンドメモリ141
を介して再構成可能ハードウエアコプロセッサ140を
制御する。好適実施例では、コマンドメモリ141は先
入れ先出し(FIFO)メモリである。コマンドメモリ
141の書き込みポートは、デジタル信号プロセッサコ
ア110のアドレス空間内の単一のメモリ場所へメモリ
マッピングされている。こうして、デジタル信号プロセ
ッサコア110は、コマンドメモリ141への入力とし
て働くアドレスへコマンドを書き込むことによって再構
成可能ハードウエアコプロセッサ140を制御する。コ
マンドメモリ141は2つの循環指向ポインタを含むこ
とが好ましい。書き込みポインタ151は、コマンドメ
モリ141内の、次に受信されるコマンドを記憶してお
く場所を指す。コマンドメモリ141の予め定められた
アドレスへ書き込みが行われる度に、書き込みポインタ
はそのデータを受信する物理的場所を選択する。そのよ
うなデータ書き込みに続いて、書き込みポインタ151
は、コマンドメモリ141中の次の物理的場所を指すよ
うに更新される。書き込みポインタ151は循環指向で
あって、最後の物理的場所から最初の物理的場所へと循
環する。再構成可能ハードウエアコプロセッサ140は
コマンドメモリ141からコマンドを、それらが読み出
しポインタ153を使用して受信された(FIFO)の
と同じ順序で読み出す。読み出しポインタ153は次に
読み出されるコマンドを記憶するコマンドメモリ141
中の物理的場所を指す。読み出しポインタ153は、そ
のような各々の読み出しに続いてコマンドメモリ141
中の次の物理的場所を参照するように更新される。注意
すべきことは、読み出しポインタ153もまた循環指向
であって、最後の物理的場所から最初の物理的場所へ循
環するようになっているということである。コマンドメ
モリ141は、書き込みポインタ151が読み出しポイ
ンタ153を追い越すことを防止するという仕組みを含
む。このことは、例えば、書き込みポインタ151と読
み出しポインタ153とが同じ物理的場所を参照してい
る時に、書き込みを拒否して、デジタル信号プロセッサ
コア110に対してメモリ故障信号を送り返すことによ
って発生する。すると、コマンドメモリ141のFIF
Oバッファはフル状態となってそれ以上のコマンドを受
け入れることができない。
【0013】データメモリ145および係数メモリ14
7は両方ともに、デジタル信号プロセッサコア110の
アドレス空間内にマッピングされている。図2に示され
るように、データバス101はメモリ149と双方向的
につながれている。上に述べた代替え実施例に従えば、
データメモリ145と係数メモリ147は両方ともに、
メモリ147の一部として形成されている。メモリ14
7もまた、コプロセッサ論理コア143(図2には示さ
れていない)によってアクセス可能である。図2はメモ
リ149内の3つの区分されたメモリエリアを示してい
る。以下で詳しく説明するように、再構成可能ハードウ
エアコプロセッサ140は、好ましくは異なるメモリエ
リアを用いていくつかの関数を実行する。
7は両方ともに、デジタル信号プロセッサコア110の
アドレス空間内にマッピングされている。図2に示され
るように、データバス101はメモリ149と双方向的
につながれている。上に述べた代替え実施例に従えば、
データメモリ145と係数メモリ147は両方ともに、
メモリ147の一部として形成されている。メモリ14
7もまた、コプロセッサ論理コア143(図2には示さ
れていない)によってアクセス可能である。図2はメモ
リ149内の3つの区分されたメモリエリアを示してい
る。以下で詳しく説明するように、再構成可能ハードウ
エアコプロセッサ140は、好ましくは異なるメモリエ
リアを用いていくつかの関数を実行する。
【0014】集積回路100は次のように動作する。デ
ジタル信号プロセッサコア110は、再構成可能ハード
ウエアコプロセッサ140によって用いられるデータお
よび係数を、そのデータはデータメモリ145へ、また
係数は係数メモリ147へロードすることによって制御
する。あるいは、デジタル信号プロセッサコア110は
データおよび係数を統合メモリ149中へロードする。
デジタル信号プロセッサコア110は、このデータ転送
を直接実行するようにプログラムすることができる。デ
ジタル信号プロセッサコア110は、あるいは、このデ
ータ転送を実行するために、ダイレクトメモリアクセス
回路120を制御するようにプログラムすることもでき
る。特に音声または映像処理の応用においては、データ
フローは予期できる速度で、予期できる入力装置から受
信される。従って、外部メモリから、再構成可能ハード
ウエアコプロセッサ140によってアクセス可能なメモ
リへの転送を実行させるようにダイレクトメモリアクセ
ス回路120を制御することが、デジタル信号プロセッ
サコア110にとって一般に効率的であろう。
ジタル信号プロセッサコア110は、再構成可能ハード
ウエアコプロセッサ140によって用いられるデータお
よび係数を、そのデータはデータメモリ145へ、また
係数は係数メモリ147へロードすることによって制御
する。あるいは、デジタル信号プロセッサコア110は
データおよび係数を統合メモリ149中へロードする。
デジタル信号プロセッサコア110は、このデータ転送
を直接実行するようにプログラムすることができる。デ
ジタル信号プロセッサコア110は、あるいは、このデ
ータ転送を実行するために、ダイレクトメモリアクセス
回路120を制御するようにプログラムすることもでき
る。特に音声または映像処理の応用においては、データ
フローは予期できる速度で、予期できる入力装置から受
信される。従って、外部メモリから、再構成可能ハード
ウエアコプロセッサ140によってアクセス可能なメモ
リへの転送を実行させるようにダイレクトメモリアクセ
ス回路120を制御することが、デジタル信号プロセッ
サコア110にとって一般に効率的であろう。
【0015】処理すべきデータの転送に続いて、デジタ
ル信号プロセッサコア110は再構成可能ハードウエア
コプロセッサ140に対して、所望される信号処理アル
ゴリズムに関するコマンドを信号として供給する。既に
述べたように、コマンドは予め定められたアドレスへの
メモリ書き込みによって、再構成可能ハードウエアコプ
ロセッサ140へ送られる。受信されたコマンドは先入
れ先出し方式でコマンドメモリ141中へ記憶される。
ル信号プロセッサコア110は再構成可能ハードウエア
コプロセッサ140に対して、所望される信号処理アル
ゴリズムに関するコマンドを信号として供給する。既に
述べたように、コマンドは予め定められたアドレスへの
メモリ書き込みによって、再構成可能ハードウエアコプ
ロセッサ140へ送られる。受信されたコマンドは先入
れ先出し方式でコマンドメモリ141中へ記憶される。
【0016】再構成可能ハードウエアコプロセッサ14
0の各計算コマンドには、実行すべきその特定の関数を
指定するやり方が含まれていることが好ましい。好適実
施例では、再構成可能ハードウエアコプロセッサ140
は再構成可能なように構築される。再構成可能ハードウ
エアコプロセッサ140は、異なるが関連のある関数を
実行するように互いに異なるやり方で接続することので
きる乗算器や加算器等の関数ユニットの組を有する。各
再構成可能ハードウエアコプロセッサに対して選ばれる
そのような関連関数の組は、それらの関数の数学的類似
性に基づいていよう。この数学的類似性によって、類似
したハードウエアを複数の関数用として再構成すること
が可能となる。コマンドは、データプロセッサ命令と同
じように、演算コードを介してその特定の計算を指示す
ることができる。
0の各計算コマンドには、実行すべきその特定の関数を
指定するやり方が含まれていることが好ましい。好適実
施例では、再構成可能ハードウエアコプロセッサ140
は再構成可能なように構築される。再構成可能ハードウ
エアコプロセッサ140は、異なるが関連のある関数を
実行するように互いに異なるやり方で接続することので
きる乗算器や加算器等の関数ユニットの組を有する。各
再構成可能ハードウエアコプロセッサに対して選ばれる
そのような関連関数の組は、それらの関数の数学的類似
性に基づいていよう。この数学的類似性によって、類似
したハードウエアを複数の関数用として再構成すること
が可能となる。コマンドは、データプロセッサ命令と同
じように、演算コードを介してその特定の計算を指示す
ることができる。
【0017】各計算コマンドには、その計算で使用され
るはずのデータの場所を指定するやり方が含まれてい
る。データ空間を指定するのには、いくつかの適した方
法が存在する。例えば、コマンドは、開始アドレスおよ
びそのブロック内のデータワードまたはサンプルの個数
を指定することができる。データサイズを1つのパラメ
ータとして指定することができる。あるいはデータサイ
ズは計算タイプを定義する演算コードによって指定する
こともできる。それ以外の例として、コマンドによって
データサイズ、入力データの開始アドレスおよび終了ア
ドレスを指定してもよい。注意すべきことは、入力デー
タがどこに記憶されているかを指定するために、間接的
な方法を使用しても構わないということである。コマン
ドは、開始アドレス、データサイズ、データブロック中
のサンプル数、および終了アドレスのようなそれらのパ
ラメータの任意のものを記憶するメモリ場所またはレジ
スタへのポインタを含むことができる。
るはずのデータの場所を指定するやり方が含まれてい
る。データ空間を指定するのには、いくつかの適した方
法が存在する。例えば、コマンドは、開始アドレスおよ
びそのブロック内のデータワードまたはサンプルの個数
を指定することができる。データサイズを1つのパラメ
ータとして指定することができる。あるいはデータサイ
ズは計算タイプを定義する演算コードによって指定する
こともできる。それ以外の例として、コマンドによって
データサイズ、入力データの開始アドレスおよび終了ア
ドレスを指定してもよい。注意すべきことは、入力デー
タがどこに記憶されているかを指定するために、間接的
な方法を使用しても構わないということである。コマン
ドは、開始アドレス、データサイズ、データブロック中
のサンプル数、および終了アドレスのようなそれらのパ
ラメータの任意のものを記憶するメモリ場所またはレジ
スタへのポインタを含むことができる。
【0018】各計算コマンドは、更に、その特別なコマ
ンドに関するデータを記憶するメモリアドレスの範囲を
指示する必要がある。この指示は上で入力データの記憶
場所に関して挙げたもののうちの任意の方法によって行
うことができる。多くの場合、計算関数はフィルタ関数
であろうから、処理の後の出力データ量は入力データ量
とほぼ等しい。その他の場合には、出力データ量は入力
データ量よりも多かったり少なかったりする。いずれに
しろ、結果のデータ量は、入力データ量と要求される計
算関数のタイプとから知ることができる。こうして、単
に開始アドレスを指定するだけで、すべての結果データ
をどこに記憶すべきかを指示するのに十分な情報が提供
される。処理の間に入力データを上書きする破壊的なや
り方で出力データを記憶することも可能である。あるい
は、出力データをメモリの異なる部分へ書き込んで、入
力データを少なくとも一次的に保存しておくようにする
こともできる。それらのいくつかのやり方からどれを選
ぶかは、入力データが再利用されるかどうかに依存す
る。
ンドに関するデータを記憶するメモリアドレスの範囲を
指示する必要がある。この指示は上で入力データの記憶
場所に関して挙げたもののうちの任意の方法によって行
うことができる。多くの場合、計算関数はフィルタ関数
であろうから、処理の後の出力データ量は入力データ量
とほぼ等しい。その他の場合には、出力データ量は入力
データ量よりも多かったり少なかったりする。いずれに
しろ、結果のデータ量は、入力データ量と要求される計
算関数のタイプとから知ることができる。こうして、単
に開始アドレスを指定するだけで、すべての結果データ
をどこに記憶すべきかを指示するのに十分な情報が提供
される。処理の間に入力データを上書きする破壊的なや
り方で出力データを記憶することも可能である。あるい
は、出力データをメモリの異なる部分へ書き込んで、入
力データを少なくとも一次的に保存しておくようにする
こともできる。それらのいくつかのやり方からどれを選
ぶかは、入力データが再利用されるかどうかに依存す
る。
【0019】図3は2つのメモリエリアを交互に使用す
ることを含む1つの有用な方法を示している。1つのメ
モリエリア144はそのコプロセッサ関数のために必要
とされる入力データを記憶する。比較的変更されない係
数は係数メモリ147に記憶される。このデータは、コ
プロセッサ論理コア143によって使用するために呼び
出される(読み出し1)。出力データは第2のメモリエ
リア146へ書き込まれる(書き込み1)。データメモ
リエリア144の利用に続いて、ダイレクトメモリアク
セス回路120が次のブロックのためのデータを、以前
に使用されたデータ上へ上書きで書き込む(書き込み
2)。同時に、ダイレクトメモリアクセス回路120
は、メモリエリア146からのデータを、それが再構成
可能ハードウエアコプロセッサ140によって上書きさ
れる前に読み出す(読み出し2)。入力データおよび結
果データのためのこれら2つのメモリエリアは環状バッ
ファとして構築できよう。複数の関連関数を要求する製
品では、環状バッファとして定義される個別的メモリエ
リアを採用することができる。環状バッファとして構築
された1つのメモリエリアを各々の個別関数に割り当て
ることができる。
ることを含む1つの有用な方法を示している。1つのメ
モリエリア144はそのコプロセッサ関数のために必要
とされる入力データを記憶する。比較的変更されない係
数は係数メモリ147に記憶される。このデータは、コ
プロセッサ論理コア143によって使用するために呼び
出される(読み出し1)。出力データは第2のメモリエ
リア146へ書き込まれる(書き込み1)。データメモ
リエリア144の利用に続いて、ダイレクトメモリアク
セス回路120が次のブロックのためのデータを、以前
に使用されたデータ上へ上書きで書き込む(書き込み
2)。同時に、ダイレクトメモリアクセス回路120
は、メモリエリア146からのデータを、それが再構成
可能ハードウエアコプロセッサ140によって上書きさ
れる前に読み出す(読み出し2)。入力データおよび結
果データのためのこれら2つのメモリエリアは環状バッ
ファとして構築できよう。複数の関連関数を要求する製
品では、環状バッファとして定義される個別的メモリエ
リアを採用することができる。環状バッファとして構築
された1つのメモリエリアを各々の個別関数に割り当て
ることができる。
【0020】計算コマンドのフォーマットは高級言語で
のサブルーチン呼び出し命令のフォーマットに密接に類
似することが好ましい。すなわち、コマンドはサブルー
チン名と類似の機能を持つコマンド名を含み、それによ
って実行すべき特定の計算関数を指定する。各コマンド
はまた、そのコマンドタイプの内部で利用可能なオプシ
ョンを指定する1組のパラメータを含む。これらのパラ
メータは直接量あるいは変数の形をとることができ、そ
れらは所望量を記憶するメモリ場所あるいはレジスタへ
のポインタである。それらパラメータの数とタイプとは
コマンドタイプに依存する。このサブルーチン呼び出し
フォーマットは、デジタル信号プロセッサコア110用
に書かれたプログラムを再利用するうえで重要である。
使用にあたって、プログラマーあるいはコンパイラー
は、再構成可能ハードウエアコプロセッサ140を駆動
するためのスタブ(stub)サブルーチンを提供す
る。このスタブサブルーチンは、単にサブルーチンパラ
メータを受信して、それらのパラメータを使用して対応
するコプロセッサコマンドを作成する。スタブサブルー
チンは、次に、再構成可能ハードウエアコプロセッサ1
40への転送コマンド用に確保されている予め定められ
たメモリアドレスへこのコマンドを書き込み、そして戻
る。本発明は、デジタル信号プロセッサコアの計算容量
が時代とともに順調に増大することを想定している。従
って、1つの特別な製品の処理要求は、時代のその時点
における再構成可能ハードウエアコプロセッサ140と
デジタル信号プロセッサコア110との組み合わせを要
求することになろう。時代の後の時点において、命令セ
ット互換デジタル信号プロセッサコアの利用可能な計算
容量は増大し、それとともに、以前には再構成可能ハー
ドウエアコプロセッサを必要とした関数はデジタル信号
プロセッサコアによってソフト的に実行できるかもしれ
ない。その製品用の以前のプログラムコードは、新しい
より強力なデジタル信号プロセッサへ容易に変換できよ
う。このことは、置換される再構成可能ハードウエアコ
プロセッサによってサポートされるコマンドの各々に対
して独立したサブルーチンを提供することによって実現
される。従って、元々のプログラムが再構成可能ハード
ウエアコプロセッサへコマンドを送信するためにサブル
ーチンスタブを採用している各々の箇所は、対応するサ
ブルーチン呼び出しで以て置き換えられる。こうするこ
とで膨大な再プログラミングが回避される。
のサブルーチン呼び出し命令のフォーマットに密接に類
似することが好ましい。すなわち、コマンドはサブルー
チン名と類似の機能を持つコマンド名を含み、それによ
って実行すべき特定の計算関数を指定する。各コマンド
はまた、そのコマンドタイプの内部で利用可能なオプシ
ョンを指定する1組のパラメータを含む。これらのパラ
メータは直接量あるいは変数の形をとることができ、そ
れらは所望量を記憶するメモリ場所あるいはレジスタへ
のポインタである。それらパラメータの数とタイプとは
コマンドタイプに依存する。このサブルーチン呼び出し
フォーマットは、デジタル信号プロセッサコア110用
に書かれたプログラムを再利用するうえで重要である。
使用にあたって、プログラマーあるいはコンパイラー
は、再構成可能ハードウエアコプロセッサ140を駆動
するためのスタブ(stub)サブルーチンを提供す
る。このスタブサブルーチンは、単にサブルーチンパラ
メータを受信して、それらのパラメータを使用して対応
するコプロセッサコマンドを作成する。スタブサブルー
チンは、次に、再構成可能ハードウエアコプロセッサ1
40への転送コマンド用に確保されている予め定められ
たメモリアドレスへこのコマンドを書き込み、そして戻
る。本発明は、デジタル信号プロセッサコアの計算容量
が時代とともに順調に増大することを想定している。従
って、1つの特別な製品の処理要求は、時代のその時点
における再構成可能ハードウエアコプロセッサ140と
デジタル信号プロセッサコア110との組み合わせを要
求することになろう。時代の後の時点において、命令セ
ット互換デジタル信号プロセッサコアの利用可能な計算
容量は増大し、それとともに、以前には再構成可能ハー
ドウエアコプロセッサを必要とした関数はデジタル信号
プロセッサコアによってソフト的に実行できるかもしれ
ない。その製品用の以前のプログラムコードは、新しい
より強力なデジタル信号プロセッサへ容易に変換できよ
う。このことは、置換される再構成可能ハードウエアコ
プロセッサによってサポートされるコマンドの各々に対
して独立したサブルーチンを提供することによって実現
される。従って、元々のプログラムが再構成可能ハード
ウエアコプロセッサへコマンドを送信するためにサブル
ーチンスタブを採用している各々の箇所は、対応するサ
ブルーチン呼び出しで以て置き換えられる。こうするこ
とで膨大な再プログラミングが回避される。
【0021】データの1ブロックに対する処理が完了し
た後で、そのデータはデータメモリ145または統合メ
モリ149から外部へ転送される。この第2の転送は、
出力メモリ場所に記憶されているデータを読み出すデジ
タル信号プロセッサコア110の直接的な動作によっ
て、あるいはダイレクトメモリアクセス回路120の助
けをかりて発生し得る。この出力データはこの処理の出
力を表すものであろう。この場合に、データは利用装置
へ転送される。あるいは、再構成可能ハードウエアコプ
ロセッサ140の出力データで以て、進行中の作業を表
すことができる。この場合には、一般的に、データは一
時的に集積回路100の外部にあるメモリ中に記憶され
て、後に取り出され、更に処理が続けられる。
た後で、そのデータはデータメモリ145または統合メ
モリ149から外部へ転送される。この第2の転送は、
出力メモリ場所に記憶されているデータを読み出すデジ
タル信号プロセッサコア110の直接的な動作によっ
て、あるいはダイレクトメモリアクセス回路120の助
けをかりて発生し得る。この出力データはこの処理の出
力を表すものであろう。この場合に、データは利用装置
へ転送される。あるいは、再構成可能ハードウエアコプ
ロセッサ140の出力データで以て、進行中の作業を表
すことができる。この場合には、一般的に、データは一
時的に集積回路100の外部にあるメモリ中に記憶され
て、後に取り出され、更に処理が続けられる。
【0022】再構成可能ハードウエアコプロセッサ14
0は、次に、さらなる利用に対しての準備ができてい
る。このさらなる利用というのは、同じ関数の付加的な
処理でも構わない。その場合には、新しいデータブロッ
クに対して、上で述べた処理が同じように繰り返され
る。このさらなる利用は別の関数の処理であっても構わ
ない。その場合には、再構成可能ハードウエアコプロセ
ッサ140によってアクセス可能なメモリ中へ新しいデ
ータをロードし、新しいコマンドをロードし、更に処理
されたデータを出力あるいはさらなる処理のために読み
出さなければならない。
0は、次に、さらなる利用に対しての準備ができてい
る。このさらなる利用というのは、同じ関数の付加的な
処理でも構わない。その場合には、新しいデータブロッ
クに対して、上で述べた処理が同じように繰り返され
る。このさらなる利用は別の関数の処理であっても構わ
ない。その場合には、再構成可能ハードウエアコプロセ
ッサ140によってアクセス可能なメモリ中へ新しいデ
ータをロードし、新しいコマンドをロードし、更に処理
されたデータを出力あるいはさらなる処理のために読み
出さなければならない。
【0023】再構成可能ハードウエアコプロセッサ14
0は、その製品アルゴリズムの2以上の関数を実行でき
ることが好ましい。多くのデジタル信号処理タスクは同
様な関数の複数のインスタンスを使用するであろう。例
えば、その処理は多くの同様なフィルタ関数を含むかも
しれない。再構成可能ハードウエアコプロセッサ140
は、これらすべてのフィルタ関数を実時間で実行するの
に十分な処理容量を有することが好ましい。個別的なサ
ンプルよりも、データの複数ブロックに対して演算を施
すことの利点は、再構成可能ハードウエアコプロセッサ
140がそのようなシステムにおいて動作する時に明か
となろう。一例として、再構成可能ハードウエアコプロ
セッサ140が3つの関数A、B、およびCを実行する
場合を考えてみよう。これらの関数は逐次的であっても
よいが、デジタル信号プロセッサコア110によって実
行される関数とインターリーブ的に実行してもよい。再
構成可能ハードウエアコプロセッサ140は、データの
1つのブロックに対して関数Aをまず実行する。この関
数は上で概略を説明したように実行される。デジタル信
号プロセッサコア110は、直接的に、あるいはダイレ
クトメモリアクセス回路120の制御によって、メモリ
149のメモリエリア155へデータをロードする。処
理すべきデータ量を指定する、関数A用として再構成さ
せるためのコマンドの発行によって、再構成可能ハード
ウエアコプロセッサ140は関数Aを実行し、結果のデ
ータをコマンドによって指定されるメモリエリア155
の一部分へ記憶する。同様な処理が発生して、再構成可
能ハードウエアコプロセッサ140にメモリエリア15
7中に記憶されているデータに対して関数Bを実行させ
て、結果をメモリエリア157へ戻させる。関数B用の
データブロックサイズとは関係のないサイズを有するデ
ータブロックに対して関数実行が発生しよう。最後に、
再構成可能ハードウエアコプロセッサ140は、メモリ
エリア159内のデータに対して関数Cを実行して、結
果をメモリエリア159へ戻すようにコマンドを与えら
れる。関数Cを実行するブロックサイズは関数Aおよび
B用に選ばれたブロックサイズとは独立である。
0は、その製品アルゴリズムの2以上の関数を実行でき
ることが好ましい。多くのデジタル信号処理タスクは同
様な関数の複数のインスタンスを使用するであろう。例
えば、その処理は多くの同様なフィルタ関数を含むかも
しれない。再構成可能ハードウエアコプロセッサ140
は、これらすべてのフィルタ関数を実時間で実行するの
に十分な処理容量を有することが好ましい。個別的なサ
ンプルよりも、データの複数ブロックに対して演算を施
すことの利点は、再構成可能ハードウエアコプロセッサ
140がそのようなシステムにおいて動作する時に明か
となろう。一例として、再構成可能ハードウエアコプロ
セッサ140が3つの関数A、B、およびCを実行する
場合を考えてみよう。これらの関数は逐次的であっても
よいが、デジタル信号プロセッサコア110によって実
行される関数とインターリーブ的に実行してもよい。再
構成可能ハードウエアコプロセッサ140は、データの
1つのブロックに対して関数Aをまず実行する。この関
数は上で概略を説明したように実行される。デジタル信
号プロセッサコア110は、直接的に、あるいはダイレ
クトメモリアクセス回路120の制御によって、メモリ
149のメモリエリア155へデータをロードする。処
理すべきデータ量を指定する、関数A用として再構成さ
せるためのコマンドの発行によって、再構成可能ハード
ウエアコプロセッサ140は関数Aを実行し、結果のデ
ータをコマンドによって指定されるメモリエリア155
の一部分へ記憶する。同様な処理が発生して、再構成可
能ハードウエアコプロセッサ140にメモリエリア15
7中に記憶されているデータに対して関数Bを実行させ
て、結果をメモリエリア157へ戻させる。関数B用の
データブロックサイズとは関係のないサイズを有するデ
ータブロックに対して関数実行が発生しよう。最後に、
再構成可能ハードウエアコプロセッサ140は、メモリ
エリア159内のデータに対して関数Cを実行して、結
果をメモリエリア159へ戻すようにコマンドを与えら
れる。関数Cを実行するブロックサイズは関数Aおよび
B用に選ばれたブロックサイズとは独立である。
【0024】ブロック処理の有効性はこの例から分か
る。3つの関数A、B、およびCは、一般に、独立した
データフローレートを有しており、それらは必ずしも等
しくない。各関数用に対して特殊なハードウエアを提供
することは、再構成可能ハードウエアの関数能および再
利用性の汎用さを犠牲にしよう。更に、バランスをとり
ハードウエアの最適な利用を図るために、ハードウエア
中で各関数に許容される資源を整合させることは困難で
あろう。再構成可能ハードウエアが使用される時は、構
成間の切り替えを行うためのオーバーヘッドコストが不
可欠である。サンプル毎の演算方式の場合は、3つの関
数をすべて通して実行するために、そのような再構成の
切り替えの最大回数が必要になろう。これは明らかに最
適とは言い難い。従って、関数間で切り替えを行うため
の再構成の前にブロックデータに対して各関数を実行す
ることでこのオーバーヘッドを減らすことができるはず
である。更に、その場合、各関数に当てられる時間量を
選択することによって関数間で資源を割り当てることは
比較的容易であろう。最後に、そのようなブロック処理
は、一般に、サンプルレベルで関数間の切り替えを行う
よりも、デジタル信号プロセッサコアからのより少ない
制御オーバーヘッドを要求することになろう。
る。3つの関数A、B、およびCは、一般に、独立した
データフローレートを有しており、それらは必ずしも等
しくない。各関数用に対して特殊なハードウエアを提供
することは、再構成可能ハードウエアの関数能および再
利用性の汎用さを犠牲にしよう。更に、バランスをとり
ハードウエアの最適な利用を図るために、ハードウエア
中で各関数に許容される資源を整合させることは困難で
あろう。再構成可能ハードウエアが使用される時は、構
成間の切り替えを行うためのオーバーヘッドコストが不
可欠である。サンプル毎の演算方式の場合は、3つの関
数をすべて通して実行するために、そのような再構成の
切り替えの最大回数が必要になろう。これは明らかに最
適とは言い難い。従って、関数間で切り替えを行うため
の再構成の前にブロックデータに対して各関数を実行す
ることでこのオーバーヘッドを減らすことができるはず
である。更に、その場合、各関数に当てられる時間量を
選択することによって関数間で資源を割り当てることは
比較的容易であろう。最後に、そのようなブロック処理
は、一般に、サンプルレベルで関数間の切り替えを行う
よりも、デジタル信号プロセッサコアからのより少ない
制御オーバーヘッドを要求することになろう。
【0025】各種関数A、B、およびCのために選ばれ
るブロックサイズは、要求される相対的なデータレート
およびデータサイズに依存しよう。加えて、デジタル信
号プロセッサコア110に対して割り当てられるタスク
およびそれら各々の計算要求も考慮しなければならな
い。デジタル信号プロセッサコア110および再構成可
能ハードウエアコプロセッサ140の両方がほぼ完全に
フル状態にロードされるのが理想的である。その結果、
資源の最適な利用が図られる。デジタル信号プロセッサ
コア110および再構成可能ハードウエアコプロセッサ
140のそのようなバランスのとれたローディングは、
再構成可能ハードウエアコプロセッサ140を計算の約
50%で使用することのできる製品アルゴリズムにおい
てのみ達成されよう。再構成可能ハードウエアコプロセ
ッサ140が最小要求計算の半分以上を実行できる場合
には、ローディングの整合をとるために、デジタル信号
プロセッサコア110で実現される付加的な構造を加え
ることができる。この結果、デジタル信号プロセッサコ
ア110中で予備の計算資源が使用されることになろ
う。計算プロセスのローディングは静的に決定されよ
う。そのような静的な計算割り当ては、デジタル信号プ
ロセッサコア110と再構成可能ハードウエアコプロセ
ッサ140の両方が、固定された既知の関数を実行する
時に最も良く行われる。もし計算負荷が時間とともに変
化することが予想されれば、デジタル信号プロセッサコ
ア110と再構成可能ハードウエアコプロセッサ140
との間で計算資源を動的に割り当てるのが多分最良であ
ろう。再構成可能ハードウエアコプロセッサ140によ
って実行されるプロセスは比較的安定なままに留まり、
デジタル信号プロセッサコア110によって実行される
プロセスだけが変動するだろうと予想される。
るブロックサイズは、要求される相対的なデータレート
およびデータサイズに依存しよう。加えて、デジタル信
号プロセッサコア110に対して割り当てられるタスク
およびそれら各々の計算要求も考慮しなければならな
い。デジタル信号プロセッサコア110および再構成可
能ハードウエアコプロセッサ140の両方がほぼ完全に
フル状態にロードされるのが理想的である。その結果、
資源の最適な利用が図られる。デジタル信号プロセッサ
コア110および再構成可能ハードウエアコプロセッサ
140のそのようなバランスのとれたローディングは、
再構成可能ハードウエアコプロセッサ140を計算の約
50%で使用することのできる製品アルゴリズムにおい
てのみ達成されよう。再構成可能ハードウエアコプロセ
ッサ140が最小要求計算の半分以上を実行できる場合
には、ローディングの整合をとるために、デジタル信号
プロセッサコア110で実現される付加的な構造を加え
ることができる。この結果、デジタル信号プロセッサコ
ア110中で予備の計算資源が使用されることになろ
う。計算プロセスのローディングは静的に決定されよ
う。そのような静的な計算割り当ては、デジタル信号プ
ロセッサコア110と再構成可能ハードウエアコプロセ
ッサ140の両方が、固定された既知の関数を実行する
時に最も良く行われる。もし計算負荷が時間とともに変
化することが予想されれば、デジタル信号プロセッサコ
ア110と再構成可能ハードウエアコプロセッサ140
との間で計算資源を動的に割り当てるのが多分最良であ
ろう。再構成可能ハードウエアコプロセッサ140によ
って実行されるプロセスは比較的安定なままに留まり、
デジタル信号プロセッサコア110によって実行される
プロセスだけが変動するだろうと予想される。
【0026】図4は動作をより良くインタラプトさせる
ためのメモリ管理技法を示している。データブロック4
01、402、および403を含むデータ400は有限
インパルスフィルタの窓410を通過する。そのような
フィルタはデータの時間履歴(timehistor
y)に対して作用する。3つの処理A、B、およびC
は、データメモリ145内のそれぞれ環状バッファ42
1、431、および441中で実行される。そのような
環状バッファは履歴の保存を許容する。こうして、他の
処理に続いて次のブロックを処理する時に、予測可能な
アドレスにおいて履歴データが得られ使用できる。この
履歴データは次のブロックのために新たに書き込まれる
データの直前にある。
ためのメモリ管理技法を示している。データブロック4
01、402、および403を含むデータ400は有限
インパルスフィルタの窓410を通過する。そのような
フィルタはデータの時間履歴(timehistor
y)に対して作用する。3つの処理A、B、およびC
は、データメモリ145内のそれぞれ環状バッファ42
1、431、および441中で実行される。そのような
環状バッファは履歴の保存を許容する。こうして、他の
処理に続いて次のブロックを処理する時に、予測可能な
アドレスにおいて履歴データが得られ使用できる。この
履歴データは次のブロックのために新たに書き込まれる
データの直前にある。
【0027】この技法は、別のタスクを許可するために
メモリ空間をクリアする必要がある時を除いて、うまく
働く。この場合には、履歴データはフラッシュされて、
フィルタ処理が再び施されることによって再ロードされ
よう。あるいは、次のブロックで必要とされる履歴デー
タはメモリ145の別のエリアへ、あるいは外部メモリ
インターフェース130へ取り付けられた外部メモリへ
移動されよう。これらのいずれの方法も、それがデータ
の移動に時間を食うため不利である。このいずれの方法
も、インタラプトサービス提供あるいは元のタスクへの
復帰で遅れがでる。
メモリ空間をクリアする必要がある時を除いて、うまく
働く。この場合には、履歴データはフラッシュされて、
フィルタ処理が再び施されることによって再ロードされ
よう。あるいは、次のブロックで必要とされる履歴デー
タはメモリ145の別のエリアへ、あるいは外部メモリ
インターフェース130へ取り付けられた外部メモリへ
移動されよう。これらのいずれの方法も、それがデータ
の移動に時間を食うため不利である。このいずれの方法
も、インタラプトサービス提供あるいは元のタスクへの
復帰で遅れがでる。
【0028】好適実施例の代替え案が図4に模式的に示
されている。結果のデータをメモリ中のそれの場所へ書
き込む間に、現在のサンプルがメモリのより小さいエリ
アへ書き込まれる。例えば、環状バッファ421からの
入力データが履歴バッファ423中へ書き込まれ、環状
バッファ431からの入力データが履歴バッファ433
中へ書き込まれ、更に、環状バッファ441からの入力
データが履歴バッファ443中へ書き込まれる。履歴バ
ッファ423、433、および443の各々は、フィル
タ窓410のような対応するフィルタ窓の幅に従って、
履歴を記憶するのに必要なちょうどのサイズとなってい
る。データの1ブロックに対する処理が完了すると、最
新の履歴がこの制限されたエリアに記憶される。コプロ
セッサをインタラプトしなければならない時は、環状バ
ッファ421、431、および441内のデータは、履
歴バッファ423、433、および443中に記憶され
ている履歴データを消去することなしにクリアされよ
う。この方法は、インタラプトタスクを開始するのに先
だって、別の場所へデータを記憶するか、あるいはデー
タを再ロードする必要をなくする。多くのフィルタタス
クにおいて、追加のサイクルを必要とすることなしに、
履歴バッファへの書き込みを達成するのに十分な書き込
みメモリバンド幅が利用可能である。この方法の別の利
点は、以前よりも少ないメモリを環状バッファ421、
431、および441に対して割り当てする必要しかな
いということである。以前の方法では、環状バッファは
データの全ブロックと、必要な履歴データに等しい付加
的な量を含むのに十分大きい必要があった。図4に示さ
れる方法は、環状バッファ421、431、および44
1のサイズを1つのデータブロックを記憶するのにちょ
うど十分なだけまで減らすことを可能とする。
されている。結果のデータをメモリ中のそれの場所へ書
き込む間に、現在のサンプルがメモリのより小さいエリ
アへ書き込まれる。例えば、環状バッファ421からの
入力データが履歴バッファ423中へ書き込まれ、環状
バッファ431からの入力データが履歴バッファ433
中へ書き込まれ、更に、環状バッファ441からの入力
データが履歴バッファ443中へ書き込まれる。履歴バ
ッファ423、433、および443の各々は、フィル
タ窓410のような対応するフィルタ窓の幅に従って、
履歴を記憶するのに必要なちょうどのサイズとなってい
る。データの1ブロックに対する処理が完了すると、最
新の履歴がこの制限されたエリアに記憶される。コプロ
セッサをインタラプトしなければならない時は、環状バ
ッファ421、431、および441内のデータは、履
歴バッファ423、433、および443中に記憶され
ている履歴データを消去することなしにクリアされよ
う。この方法は、インタラプトタスクを開始するのに先
だって、別の場所へデータを記憶するか、あるいはデー
タを再ロードする必要をなくする。多くのフィルタタス
クにおいて、追加のサイクルを必要とすることなしに、
履歴バッファへの書き込みを達成するのに十分な書き込
みメモリバンド幅が利用可能である。この方法の別の利
点は、以前よりも少ないメモリを環状バッファ421、
431、および441に対して割り当てする必要しかな
いということである。以前の方法では、環状バッファは
データの全ブロックと、必要な履歴データに等しい付加
的な量を含むのに十分大きい必要があった。図4に示さ
れる方法は、環状バッファ421、431、および44
1のサイズを1つのデータブロックを記憶するのにちょ
うど十分なだけまで減らすことを可能とする。
【0029】音声および映像信号処理に有用な多くのア
ルゴリズムでは係数の適合化が行われる。すなわち、時
間軸で実行される関数を変化させる何らかのフィードバ
ック経路が存在する。そのようなアルゴリズムの一例
は、採用された特別なラインおよび遠隔端モデムの動作
に適合するための時間を必要とするモデムである。最
初、それはブロックモードでそのような適合的な関数を
実行することがそれらの適合性関数の収束に悪い影響を
及ぼすのではないかと思われるかもしれない。多くのそ
のような関数に含まれる数学を再調査した結果はそれと
違う。特定の一時に実行できる適合化の量は、適合化を
計算するために利用可能なデータ量に依存する。この利
用可能なデータ量は、そのデータがサンプル毎に処理さ
れるのか、あるいはサンプルのブロック毎に処理される
のかに依存しない。実際には、適合化の速度はほとんど
同じである。サンプル毎に適合化を行う方式では、多く
の小さいステップで、完全に適合化された係数に向かっ
て収束するという結果が得られる。データブロック毎に
適合化を行う方式では、より少数のより大きいステップ
で収束する。これは利用可能なデータ量が多ければ、ブ
ロック処理の場合に、修正のためのより大きいエラー項
が生ずるであろうためである。しかし、平均した収束の
勾配は2つの場合で同じであろう。例えば、先のモデム
の例のように、適合化のほとんどが初期化時に発生する
場合、そしてほとんどの処理が安定した状態において発
生する場合には、実際上の差はほとんどない。適合性フ
ィルタが移動標的を追随しなければならない場合に、サ
ンプル毎の適合化がブロック毎の適合化よりも優れてい
るかどうかは分からない。もし、例えば、続く処理がブ
ロックサイズの時間の逆数よりも高い周波数で変化すれ
ば、サンプル毎の適合化に比べてブロック毎の適合化は
小さいステップでの無用のハンチング(huntin
g)を阻止することができる。このように、ブロック毎
の適合性フィルタリングは、サンプル毎の適合性フィル
タリングと比べて何等普遍的な欠点を有するわけではな
い。
ルゴリズムでは係数の適合化が行われる。すなわち、時
間軸で実行される関数を変化させる何らかのフィードバ
ック経路が存在する。そのようなアルゴリズムの一例
は、採用された特別なラインおよび遠隔端モデムの動作
に適合するための時間を必要とするモデムである。最
初、それはブロックモードでそのような適合的な関数を
実行することがそれらの適合性関数の収束に悪い影響を
及ぼすのではないかと思われるかもしれない。多くのそ
のような関数に含まれる数学を再調査した結果はそれと
違う。特定の一時に実行できる適合化の量は、適合化を
計算するために利用可能なデータ量に依存する。この利
用可能なデータ量は、そのデータがサンプル毎に処理さ
れるのか、あるいはサンプルのブロック毎に処理される
のかに依存しない。実際には、適合化の速度はほとんど
同じである。サンプル毎に適合化を行う方式では、多く
の小さいステップで、完全に適合化された係数に向かっ
て収束するという結果が得られる。データブロック毎に
適合化を行う方式では、より少数のより大きいステップ
で収束する。これは利用可能なデータ量が多ければ、ブ
ロック処理の場合に、修正のためのより大きいエラー項
が生ずるであろうためである。しかし、平均した収束の
勾配は2つの場合で同じであろう。例えば、先のモデム
の例のように、適合化のほとんどが初期化時に発生する
場合、そしてほとんどの処理が安定した状態において発
生する場合には、実際上の差はほとんどない。適合性フ
ィルタが移動標的を追随しなければならない場合に、サ
ンプル毎の適合化がブロック毎の適合化よりも優れてい
るかどうかは分からない。もし、例えば、続く処理がブ
ロックサイズの時間の逆数よりも高い周波数で変化すれ
ば、サンプル毎の適合化に比べてブロック毎の適合化は
小さいステップでの無用のハンチング(huntin
g)を阻止することができる。このように、ブロック毎
の適合性フィルタリングは、サンプル毎の適合性フィル
タリングと比べて何等普遍的な欠点を有するわけではな
い。
【0030】再構成可能ハードウエアコプロセッサ14
0のコマンドセットには制御関数のための非計算命令が
いくつか含まれていることが好ましい。それらの制御関
数はデジタル信号プロセッサコア110と再構成可能ハ
ードウエアコプロセッサ140との協力時に有用であろ
う。それらの非計算コマンドの最初のものは受信データ
同期コマンドである。このコマンドは、ダイレクトメモ
リアクセス回路120によって取り扱われるデータ転送
に関連して使用されるのが普通である。デジタル信号プ
ロセッサコア110は、ダイレクトメモリアクセス回路
120を通して入力データ転送をセットアップすること
によってこのプロセスを制御するであろう。デジタル信
号プロセッサコア110は再構成可能ハードウエアコプ
ロセッサ140に対して2つのコマンドを送信しよう。
最初のコマンドは受信データ同期コマンドである。第2
のコマンドは所望される計算コマンドである。
0のコマンドセットには制御関数のための非計算命令が
いくつか含まれていることが好ましい。それらの制御関
数はデジタル信号プロセッサコア110と再構成可能ハ
ードウエアコプロセッサ140との協力時に有用であろ
う。それらの非計算コマンドの最初のものは受信データ
同期コマンドである。このコマンドは、ダイレクトメモ
リアクセス回路120によって取り扱われるデータ転送
に関連して使用されるのが普通である。デジタル信号プ
ロセッサコア110は、ダイレクトメモリアクセス回路
120を通して入力データ転送をセットアップすること
によってこのプロセスを制御するであろう。デジタル信
号プロセッサコア110は再構成可能ハードウエアコプ
ロセッサ140に対して2つのコマンドを送信しよう。
最初のコマンドは受信データ同期コマンドである。第2
のコマンドは所望される計算コマンドである。
【0031】再構成可能ハードウエアコプロセッサ14
0は、先入れ先出し方式でコマンドメモリ141に記憶
されているコマンドに対して作用する。受信データ同期
コマンドに到達すると、再構成可能ハードウエアコプロ
セッサは停止しよう。再構成可能ハードウエアコプロセ
ッサは、それが入力データ転送の完了を表示するダイレ
クトメモリアクセス回路120からの制御信号を受信す
るまではアイドル状態に留まるであろう。注意すべきこ
とは、この入力データ転送のそのような完了時には、次
のブロックのためのデータがデータメモリ145または
統合メモリ149中に記憶されているということであ
る。ダイレクトメモリアクセス回路120は複数の待機
中の(queued)データ転送を取り扱うことができ
よう。これは当業者には多重(plural)DMAチ
ャンネルとして知られている。この場合には、受信デー
タ同期コマンドは対応するDMAチャンネルを知らなけ
ればならず、それは受信データ同期コマンドの送信前に
デジタル信号プロセッサコア110には既知のはずであ
る。ダイレクトメモリアクセス回路120は各々の完了
したデータ転送のチャンネル番号を送信しよう。このこ
とで、再構成可能ハードウエアコプロセッサ140が、
完了したダイレクトメモリアクセスと、対応する受信デ
ータ同期コマンドとの整合をとることが許可される。再
構成可能ハードウエアコプロセッサは、完了したダイレ
クトメモリアクセス信号が受信データ同期コマンドの中
で指定されたのと同じDMAチャンネルを指示する時だ
け、次のコマンドへと処理を継続しよう。
0は、先入れ先出し方式でコマンドメモリ141に記憶
されているコマンドに対して作用する。受信データ同期
コマンドに到達すると、再構成可能ハードウエアコプロ
セッサは停止しよう。再構成可能ハードウエアコプロセ
ッサは、それが入力データ転送の完了を表示するダイレ
クトメモリアクセス回路120からの制御信号を受信す
るまではアイドル状態に留まるであろう。注意すべきこ
とは、この入力データ転送のそのような完了時には、次
のブロックのためのデータがデータメモリ145または
統合メモリ149中に記憶されているということであ
る。ダイレクトメモリアクセス回路120は複数の待機
中の(queued)データ転送を取り扱うことができ
よう。これは当業者には多重(plural)DMAチ
ャンネルとして知られている。この場合には、受信デー
タ同期コマンドは対応するDMAチャンネルを知らなけ
ればならず、それは受信データ同期コマンドの送信前に
デジタル信号プロセッサコア110には既知のはずであ
る。ダイレクトメモリアクセス回路120は各々の完了
したデータ転送のチャンネル番号を送信しよう。このこ
とで、再構成可能ハードウエアコプロセッサ140が、
完了したダイレクトメモリアクセスと、対応する受信デ
ータ同期コマンドとの整合をとることが許可される。再
構成可能ハードウエアコプロセッサは、完了したダイレ
クトメモリアクセス信号が受信データ同期コマンドの中
で指定されたのと同じDMAチャンネルを指示する時だ
け、次のコマンドへと処理を継続しよう。
【0032】この完了信号に続いて、再構成可能ハード
ウエアコプロセッサ140はコマンドメモリ141中の
次のコマンドへと進む。この場合、この次のコマンドは
ちょうどロードされたばかりのデータを使用する計算コ
マンドである。この計算コマンドは前の受信データ同期
コマンドが完了するまでスタートできないので、これは
正しいデータがロードされることを保証することにな
る。
ウエアコプロセッサ140はコマンドメモリ141中の
次のコマンドへと進む。この場合、この次のコマンドは
ちょうどロードされたばかりのデータを使用する計算コ
マンドである。この計算コマンドは前の受信データ同期
コマンドが完了するまでスタートできないので、これは
正しいデータがロードされることを保証することにな
る。
【0033】受信データ同期コマンドと計算コマンドと
のこの組み合わせは、デジタル信号プロセッサコア11
0に対する制御負担を軽減する。デジタル信号プロセッ
サコア110は、入力データ転送を行い、そのコマンド
対を再構成可能ハードウエアコプロセッサ140へ送る
ためにダイレクトメモリアクセス回路120をセットア
ップするだけでよい。このことが、入力データ転送が計
算動作の開始前に完了することを保証する。これは再構
成可能ハードウエアコプロセッサ140の関数を制御す
るためにデジタル信号プロセッサコア110によって必
要とされるソフトウエアオーバーヘッド量を大幅に減ら
す。そうでなければ、デジタル信号プロセッサコアは、
入力データローディング動作の完了を表示する、ダイレ
クトメモリアクセス回路120からのインタラプト信号
を受信する必要があろう。このインタラプトサービスを
提供するためには、インタラプトサービスルーチンを書
き込んでおく必要がある。加えて、そのようなインタラ
プトは、コマンドメモリへコプロセッサコマンドを送る
コンテクスト切り替えと、そのインタラプトから戻るた
めの別のコンテクスト切り替えとを必要としよう。従っ
て、受信データ同期コマンドはデジタル信号プロセッサ
コア内のかなりの容量をより生産的な用途のために解放
する。
のこの組み合わせは、デジタル信号プロセッサコア11
0に対する制御負担を軽減する。デジタル信号プロセッ
サコア110は、入力データ転送を行い、そのコマンド
対を再構成可能ハードウエアコプロセッサ140へ送る
ためにダイレクトメモリアクセス回路120をセットア
ップするだけでよい。このことが、入力データ転送が計
算動作の開始前に完了することを保証する。これは再構
成可能ハードウエアコプロセッサ140の関数を制御す
るためにデジタル信号プロセッサコア110によって必
要とされるソフトウエアオーバーヘッド量を大幅に減ら
す。そうでなければ、デジタル信号プロセッサコアは、
入力データローディング動作の完了を表示する、ダイレ
クトメモリアクセス回路120からのインタラプト信号
を受信する必要があろう。このインタラプトサービスを
提供するためには、インタラプトサービスルーチンを書
き込んでおく必要がある。加えて、そのようなインタラ
プトは、コマンドメモリへコプロセッサコマンドを送る
コンテクスト切り替えと、そのインタラプトから戻るた
めの別のコンテクスト切り替えとを必要としよう。従っ
て、受信データ同期コマンドはデジタル信号プロセッサ
コア内のかなりの容量をより生産的な用途のために解放
する。
【0034】別の非計算コマンドは送信データ同期コマ
ンドである。送信データ同期コマンドはほぼ受信データ
同期コマンドの逆である。送信データ同期コマンドに到
達すると、再構成可能ハードウエアコプロセッサ140
はダイレクトメモリアクセスをトリガーする。このダイ
レクトメモリアクセス動作は、別のシステム場所へ記憶
するために、データメモリ145または統合メモリ14
9からデータを読み出す。このダイレクトメモリアクセ
ス動作はデジタル信号プロセッサコア110によってプ
リセットしてもよく、送信データ同期コマンドに遭遇す
ることによって再構成可能ハードウエアコプロセッサ1
40から信号を単に受信することによって開始させられ
る。ダイレクトメモリアクセス回路120が多重DMA
チャンネルをサポートする場合には、送信データ同期コ
マンドはトリガーされたDMAチャンネルを指定しなけ
ればならない。あるいは、送信データ同期コマンドは、
もし2以上のチャンネルがサポートされていればそのD
MAチャンネルを含む、ダイレクトメモリアクセス回路
120のための制御パラメータを指定するであろう。そ
のような送信データ同期コマンドに遭遇すると、再構成
可能ハードウエアコプロセッサはダイレクトメモリアク
セス回路120と直接交信して、適切なダイレクトメモ
リアクセス動作をセットアップおよび開始させる。
ンドである。送信データ同期コマンドはほぼ受信データ
同期コマンドの逆である。送信データ同期コマンドに到
達すると、再構成可能ハードウエアコプロセッサ140
はダイレクトメモリアクセスをトリガーする。このダイ
レクトメモリアクセス動作は、別のシステム場所へ記憶
するために、データメモリ145または統合メモリ14
9からデータを読み出す。このダイレクトメモリアクセ
ス動作はデジタル信号プロセッサコア110によってプ
リセットしてもよく、送信データ同期コマンドに遭遇す
ることによって再構成可能ハードウエアコプロセッサ1
40から信号を単に受信することによって開始させられ
る。ダイレクトメモリアクセス回路120が多重DMA
チャンネルをサポートする場合には、送信データ同期コ
マンドはトリガーされたDMAチャンネルを指定しなけ
ればならない。あるいは、送信データ同期コマンドは、
もし2以上のチャンネルがサポートされていればそのD
MAチャンネルを含む、ダイレクトメモリアクセス回路
120のための制御パラメータを指定するであろう。そ
のような送信データ同期コマンドに遭遇すると、再構成
可能ハードウエアコプロセッサはダイレクトメモリアク
セス回路120と直接交信して、適切なダイレクトメモ
リアクセス動作をセットアップおよび開始させる。
【0035】別の可能な非計算コマンドは同期完了コマ
ンドである。同期完了コマンドに遭遇すると、再構成可
能ハードウエアコプロセッサ140はデジタル信号プロ
セッサコア110に対してインタラプトを送信する。そ
のようなインタラプトを受信すると、デジタル信号プロ
セッサコア110は、それまでに再構成可能ハードウエ
アコプロセッサ140へ送られたすべてのコマンドが完
了したことが保証される。応用に依存して、送信および
受信データ同期コマンドを介するよりも、インタラプト
を介して制御するほうが優れているかもしれない。送信
および受信データ同期コマンドを使用して、再構成可能
ハードウエアコプロセッサ140のためのいくつかの動
作を待機させて、その後に待ち行列の最後においてデジ
タル信号プロセッサコア110をインタラプトするほう
が優れているかもしれない。これは再構成可能ハードウ
エアコプロセッサによる待機動作に続く、デジタル信号
プロセッサコア110によるより高レベルの制御関数の
ために有用であるかもしれない。
ンドである。同期完了コマンドに遭遇すると、再構成可
能ハードウエアコプロセッサ140はデジタル信号プロ
セッサコア110に対してインタラプトを送信する。そ
のようなインタラプトを受信すると、デジタル信号プロ
セッサコア110は、それまでに再構成可能ハードウエ
アコプロセッサ140へ送られたすべてのコマンドが完
了したことが保証される。応用に依存して、送信および
受信データ同期コマンドを介するよりも、インタラプト
を介して制御するほうが優れているかもしれない。送信
および受信データ同期コマンドを使用して、再構成可能
ハードウエアコプロセッサ140のためのいくつかの動
作を待機させて、その後に待ち行列の最後においてデジ
タル信号プロセッサコア110をインタラプトするほう
が優れているかもしれない。これは再構成可能ハードウ
エアコプロセッサによる待機動作に続く、デジタル信号
プロセッサコア110によるより高レベルの制御関数の
ために有用であるかもしれない。
【0036】図5は回路100の別の可能な構成を示し
ている。図5に示される回路100は2つの再構成可能
ハードウエアコプロセッサを含んでいる。デジタル信号
プロセッサコア110は第1の再構成可能ハードウエア
コプロセッサ140および第2の再構成可能ハードウエ
アコプロセッサ181と一緒に動作する。第1の再構成
可能ハードウエアコプロセッサ140と第2の再構成可
能ハードウエアコプロセッサ181とを専用バス(pr
ivatebus)185がつないでいる。これらのコ
プロセッサはデジタル信号プロセッサコア110のメモ
リ空間を共有する専用メモリを有する。データは、他方
のコプロセッサの専用メモリに含まれるアドレス範囲へ
書き込みを行う一方のコプロセッサによって、専用バス
185を経由して転送することができる。あるいは、各
コプロセッサは他方のコプロセッサの入力ポートへ向け
られた出力ポートを有することができて、コプロセッサ
間には専用バス185に含まれるリンクが設けられてい
る。この構成は、1つのコプロセッサによって取り扱わ
れる1つのタイプの動作から、第2のコプロセッサによ
って取り扱われる別のタイプの動作へ向かってデータが
流れるようになった製品に対して特に有効であろう。こ
の専用バスは、直接に、あるいはダイレクトメモリアク
セス回路120を介して、データハンドオフ(hand
off)の取扱いからデジタル信号プロセッサコア11
0を解放する。
ている。図5に示される回路100は2つの再構成可能
ハードウエアコプロセッサを含んでいる。デジタル信号
プロセッサコア110は第1の再構成可能ハードウエア
コプロセッサ140および第2の再構成可能ハードウエ
アコプロセッサ181と一緒に動作する。第1の再構成
可能ハードウエアコプロセッサ140と第2の再構成可
能ハードウエアコプロセッサ181とを専用バス(pr
ivatebus)185がつないでいる。これらのコ
プロセッサはデジタル信号プロセッサコア110のメモ
リ空間を共有する専用メモリを有する。データは、他方
のコプロセッサの専用メモリに含まれるアドレス範囲へ
書き込みを行う一方のコプロセッサによって、専用バス
185を経由して転送することができる。あるいは、各
コプロセッサは他方のコプロセッサの入力ポートへ向け
られた出力ポートを有することができて、コプロセッサ
間には専用バス185に含まれるリンクが設けられてい
る。この構成は、1つのコプロセッサによって取り扱わ
れる1つのタイプの動作から、第2のコプロセッサによ
って取り扱われる別のタイプの動作へ向かってデータが
流れるようになった製品に対して特に有効であろう。こ
の専用バスは、直接に、あるいはダイレクトメモリアク
セス回路120を介して、データハンドオフ(hand
off)の取扱いからデジタル信号プロセッサコア11
0を解放する。
【0037】図6ないし図9は再構成可能ハードウエア
コプロセッサの一例の構成を示す。この特別なコプロセ
ッサは多重乗算累算器と呼ばれる。乗算累算動作は、そ
こで複数の積の和が生成されるが、信号処理において広
く用いられている。多くのフィルタルゴリズムがそれら
の関数の周辺に構築されている。
コプロセッサの一例の構成を示す。この特別なコプロセ
ッサは多重乗算累算器と呼ばれる。乗算累算動作は、そ
こで複数の積の和が生成されるが、信号処理において広
く用いられている。多くのフィルタルゴリズムがそれら
の関数の周辺に構築されている。
【0038】図6は多重乗算累算器140全体の一般的
な構造を示す。データメモリ145および係数メモリ1
47はワード当たり128ビットで書き込まれよう。こ
の書き込み動作はデジタル信号プロセッサコア110ま
たはダイレクトメモリアクセス回路120によって制御
される。アドレス発生器150が、コプロセッサによっ
て使用されるデータおよび係数の呼び出しのためのアド
レスを生成する。この読み出し動作は各メモリからの1
28ビットのデータワードに対して作用する。
な構造を示す。データメモリ145および係数メモリ1
47はワード当たり128ビットで書き込まれよう。こ
の書き込み動作はデジタル信号プロセッサコア110ま
たはダイレクトメモリアクセス回路120によって制御
される。アドレス発生器150が、コプロセッサによっ
て使用されるデータおよび係数の呼び出しのためのアド
レスを生成する。この読み出し動作は各メモリからの1
28ビットのデータワードに対して作用する。
【0039】これらの呼び出されたデータワードは入力
フォーマッタ160へ供給される。入力フォーマッタ1
60は、一般に128ビットの入力データワードを、所
望の計算で必要とされる順序に揃えるための各種移動や
位置合わせ操作を実行する。入力フォーマッタは、12
8ビット(8×16ビット)のDataX、128ビッ
ト(8×16ビット)のDataY、および64ビット
(2×32ビット)のDataZを出力する。
フォーマッタ160へ供給される。入力フォーマッタ1
60は、一般に128ビットの入力データワードを、所
望の計算で必要とされる順序に揃えるための各種移動や
位置合わせ操作を実行する。入力フォーマッタは、12
8ビット(8×16ビット)のDataX、128ビッ
ト(8×16ビット)のDataY、および64ビット
(2×32ビット)のDataZを出力する。
【0040】これら3つのデータフローはデータ経路
(datapath)170へ供給される。データ経路
170はコプロセッサの演算部分である。後で詳しく説
明するが、データ経路170は複数のハードウエア乗算
器および加算器を含み、それらは多様な乗算累算動作を
実行できるように各種のやり方で接続できるようになっ
ている。データ経路170は2つの加算器データストリ
ームを出力する。それらの各々は4個の32ビットデー
タワードである。
(datapath)170へ供給される。データ経路
170はコプロセッサの演算部分である。後で詳しく説
明するが、データ経路170は複数のハードウエア乗算
器および加算器を含み、それらは多様な乗算累算動作を
実行できるように各種のやり方で接続できるようになっ
ている。データ経路170は2つの加算器データストリ
ームを出力する。それらの各々は4個の32ビットデー
タワードである。
【0041】これらの2つのデータストリームが出力フ
ォーマッタ180への入力を供給する。出力フォーマッ
タ180は、2つのデータストリームを、2つのメモリ
中へ書き戻すために2個の128ビットデータワードへ
再アレンジする。これらの書き込み動作のためのアドレ
スはアドレス発生器150によって計算される。この再
アレンジはメモリのワード境界での位置合わせの作業を
含むことができる。
ォーマッタ180への入力を供給する。出力フォーマッ
タ180は、2つのデータストリームを、2つのメモリ
中へ書き戻すために2個の128ビットデータワードへ
再アレンジする。これらの書き込み動作のためのアドレ
スはアドレス発生器150によって計算される。この再
アレンジはメモリのワード境界での位置合わせの作業を
含むことができる。
【0042】コプロセッサ140の動作は制御ユニット
190の制御下にある。制御ユニット190はコマンド
メモリ141からコマンドを呼び出して、コプロセッサ
140内の対応する制御を提供する。
190の制御下にある。制御ユニット190はコマンド
メモリ141からコマンドを呼び出して、コプロセッサ
140内の対応する制御を提供する。
【0043】入力フォーマッタ160の構造が図7に示
されている。128ビットの2つのデータストリームの
各々はマルチプレクサ205および207の入力へ供給
される。各マルチプレクサは独立的に、それに対応する
レジスタ215および217中への記憶のために1つの
入力を選択する。マルチプレクサ205はレジスタ21
5の内容をリサイクルすることを選んでもよくまたいず
れかのデータストリームを選ぶことができる。マルチプ
レクサ207は入力データストリームの一方を選択でき
るのみである。マルチプレクサ201および203はレ
ジスタ215の内容を選択するか、あるいはそれら各々
のレジスタ211および213の内容のリサイクルを選
択することができる。マルチプレクサ219はレジスタ
211か213のいずれかの内容を選択して、シフタ2
21の上位ビットへ供給することができる。下位ビット
はレジスタ215から供給される。シフタ221はそれ
の256個の入力ビットのうちの128ビットだけをシ
フトおよび選択する。それら128ビットは複写/交換
ユニット223へ供給される。複写/交換ユニット22
3はそれの入力の一部を128フルビットへ複写する
か、あるいはデータの順序を再アレンジする。このよう
に分類されて、データは一時的にレジスタ225中に記
憶される。これはデータ経路170へのDataX入力
を供給する。マルチプレクサ207の出力はマルチプレ
クサ233へ直接供給され、他方、レジスタ217を介
しても供給される。マルチプレクサ233はそれへ供給
されるビットから192ビットを選択する。上位の12
8ビットはデータ経路170へのDataY入力を形成
する。これらのビットはマルチプレクサ235を経由し
て再循環させることができる。下位の64ビットはデー
タ経路170へのDataZ入力を形成する。
されている。128ビットの2つのデータストリームの
各々はマルチプレクサ205および207の入力へ供給
される。各マルチプレクサは独立的に、それに対応する
レジスタ215および217中への記憶のために1つの
入力を選択する。マルチプレクサ205はレジスタ21
5の内容をリサイクルすることを選んでもよくまたいず
れかのデータストリームを選ぶことができる。マルチプ
レクサ207は入力データストリームの一方を選択でき
るのみである。マルチプレクサ201および203はレ
ジスタ215の内容を選択するか、あるいはそれら各々
のレジスタ211および213の内容のリサイクルを選
択することができる。マルチプレクサ219はレジスタ
211か213のいずれかの内容を選択して、シフタ2
21の上位ビットへ供給することができる。下位ビット
はレジスタ215から供給される。シフタ221はそれ
の256個の入力ビットのうちの128ビットだけをシ
フトおよび選択する。それら128ビットは複写/交換
ユニット223へ供給される。複写/交換ユニット22
3はそれの入力の一部を128フルビットへ複写する
か、あるいはデータの順序を再アレンジする。このよう
に分類されて、データは一時的にレジスタ225中に記
憶される。これはデータ経路170へのDataX入力
を供給する。マルチプレクサ207の出力はマルチプレ
クサ233へ直接供給され、他方、レジスタ217を介
しても供給される。マルチプレクサ233はそれへ供給
されるビットから192ビットを選択する。上位の12
8ビットはデータ経路170へのDataY入力を形成
する。これらのビットはマルチプレクサ235を経由し
て再循環させることができる。下位の64ビットはデー
タ経路170へのDataZ入力を形成する。
【0044】図8はデータ経路170の構造をブロック
図の形で示す。入力フォーマッタから供給されるDat
aXおよびDataY入力の各セグメントは二重乗算加
算器310、320、330、および340へ供給され
る。図示のように、第1および第2の16ビットデータ
ワードDataX[0:1]およびDataY[0:
1]は二重乗算加算器310へつながれ、第3および第
4の16ビットデータワードDataX[2:3]およ
びDataY[2:3]は二重乗算加算器320へつな
がれ、第5および第6の16ビットデータワードDat
aX[4:5]およびDataY[4:5]は二重乗算
加算器330へつながれ、そして第7および第8の16
ビットデータワードDataX[6:7]およびDat
aY[6:7]は二重乗算加算器340へつながれてい
る。これらのユニットの各々は同じもので、二重乗算加
算器310のみについて詳細に説明することにしよう。
最下位の16個のDataXビットおよびDataYビ
ットは乗算器311への入力を供給する。乗算器311
は16ビット入力の対を受信して、32ビットの積を生
成する。この積はパイプライン出力レジスタの対に記憶
される。32ビット出力は符号拡張ユニット313およ
び8ビット左方シフタ314の両方へ供給される。符号
拡張ユニット313は最上位ビットである積の符号ビッ
トを繰り返して40ビットとする。8ビット左方シフタ
314は32ビットの積を左へシフトして、空席の下位
ビットをゼロで埋める。これらの2つの40ビット量の
一方はマルチプレクサ316中で選ばれて40ビット加
算器319の第1入力へ与えられる。同様にして、次の
最上位の16個のDataXビットおよびDataYビ
ットが乗算器312の各々の入力へ供給される。乗算器
312は2つの16ビット入力を受信して、32ビット
の積を生成する。この積は一対のパイプラインレジスタ
中に記憶される。8ビット右方シフタ315はこの積を
右へ8ビットだけシフトして、空席の最上位ビットをゼ
ロで埋める。マルチプレクサ317は3つの量の中から
選択を行う。第1量は入力における16個のDataX
ビットと16個のDataYビットとの連結である。こ
の入力は乗算器312がバイパスされることを許容す
る。もし選ばれれば、32ビット(符号拡張器318に
よって符号拡張されている)が、乗算器311によって
生成される積に対して加えられる。第2量は乗算器31
2によって供給される積である。第3量は8ビット右方
シフタ315のシフトされた出力である。マルチプレク
サ317から選ばれる量は、符号拡張ユニット318に
よって40ビットに符号拡張される。符号拡張された4
0ビット量は40ビットの加算器319への第2入力で
ある。16ビット入力因子は多重乗算累算器のダイナミ
ックレンジを提供するために32ビットしか生成しない
にも拘らず、加算器319には40ビットが供給され
る。
図の形で示す。入力フォーマッタから供給されるDat
aXおよびDataY入力の各セグメントは二重乗算加
算器310、320、330、および340へ供給され
る。図示のように、第1および第2の16ビットデータ
ワードDataX[0:1]およびDataY[0:
1]は二重乗算加算器310へつながれ、第3および第
4の16ビットデータワードDataX[2:3]およ
びDataY[2:3]は二重乗算加算器320へつな
がれ、第5および第6の16ビットデータワードDat
aX[4:5]およびDataY[4:5]は二重乗算
加算器330へつながれ、そして第7および第8の16
ビットデータワードDataX[6:7]およびDat
aY[6:7]は二重乗算加算器340へつながれてい
る。これらのユニットの各々は同じもので、二重乗算加
算器310のみについて詳細に説明することにしよう。
最下位の16個のDataXビットおよびDataYビ
ットは乗算器311への入力を供給する。乗算器311
は16ビット入力の対を受信して、32ビットの積を生
成する。この積はパイプライン出力レジスタの対に記憶
される。32ビット出力は符号拡張ユニット313およ
び8ビット左方シフタ314の両方へ供給される。符号
拡張ユニット313は最上位ビットである積の符号ビッ
トを繰り返して40ビットとする。8ビット左方シフタ
314は32ビットの積を左へシフトして、空席の下位
ビットをゼロで埋める。これらの2つの40ビット量の
一方はマルチプレクサ316中で選ばれて40ビット加
算器319の第1入力へ与えられる。同様にして、次の
最上位の16個のDataXビットおよびDataYビ
ットが乗算器312の各々の入力へ供給される。乗算器
312は2つの16ビット入力を受信して、32ビット
の積を生成する。この積は一対のパイプラインレジスタ
中に記憶される。8ビット右方シフタ315はこの積を
右へ8ビットだけシフトして、空席の最上位ビットをゼ
ロで埋める。マルチプレクサ317は3つの量の中から
選択を行う。第1量は入力における16個のDataX
ビットと16個のDataYビットとの連結である。こ
の入力は乗算器312がバイパスされることを許容す
る。もし選ばれれば、32ビット(符号拡張器318に
よって符号拡張されている)が、乗算器311によって
生成される積に対して加えられる。第2量は乗算器31
2によって供給される積である。第3量は8ビット右方
シフタ315のシフトされた出力である。マルチプレク
サ317から選ばれる量は、符号拡張ユニット318に
よって40ビットに符号拡張される。符号拡張された4
0ビット量は40ビットの加算器319への第2入力で
ある。16ビット入力因子は多重乗算累算器のダイナミ
ックレンジを提供するために32ビットしか生成しない
にも拘らず、加算器319には40ビットが供給され
る。
【0045】二重乗算加算器ユニット310、320、
330、および340の各々の中にある加算器319の
出力は第1加算器ステージ出力adder_st1_o
utpとして提供される。出力へは32個の最上位加算
器出力ビットだけがつながっている。これは4×32ビ
ット即ち128ビット出力を提供する。
330、および340の各々の中にある加算器319の
出力は第1加算器ステージ出力adder_st1_o
utpとして提供される。出力へは32個の最上位加算
器出力ビットだけがつながっている。これは4×32ビ
ット即ち128ビット出力を提供する。
【0046】40ビット加算器の第2ステージは加算器
353および355を含む。加算器353は二重乗算加
算器ユニット310および320の出力を加算する。加
算器355は二重乗算加算器ユニット330および34
0の出力を加算する。2つの他のデータ経路も第2の加
算器ステージで結合する。DataZ入力の最下位32
ビットは一時的にパイプラインレジスタ351中に記憶
される。この32ビット量は符号拡張ユニット352中
で40ビットへ符号拡張される。同様にして、Data
Z入力の最上位ビットは一時的にパイプラインレジスタ
357中に記憶される。この量は符号拡張ユニット35
8中で40ビットへ符号拡張される。
353および355を含む。加算器353は二重乗算加
算器ユニット310および320の出力を加算する。加
算器355は二重乗算加算器ユニット330および34
0の出力を加算する。2つの他のデータ経路も第2の加
算器ステージで結合する。DataZ入力の最下位32
ビットは一時的にパイプラインレジスタ351中に記憶
される。この32ビット量は符号拡張ユニット352中
で40ビットへ符号拡張される。同様にして、Data
Z入力の最上位ビットは一時的にパイプラインレジスタ
357中に記憶される。この量は符号拡張ユニット35
8中で40ビットへ符号拡張される。
【0047】第3の加算器ステージは加算器361、3
63、367、および368を含む。加算器361は4
0ビット幅である。それは加算器353の出力と符号拡
張された最下位DataZビットとを加算する。この和
のうちの32個の最上位ビットは第3ステージ出力ad
der_st3_outpの一部として供給される。同
様に、加算器363は40ビット幅であって、加算器3
55の出力と符号拡張された最上位DataZビットと
を加算する。この和のうちの32個の最上位ビットが第
3ステージ出力adder_st3_outpの一部と
して供給される。加算器367および368への接続は
これよりもずっと複雑である。加算器367への第1入
力は第2ステージの加算器353の出力か、あるいはマ
ルチプレクサ364によって選ばれる再循環出力のいず
れかである。マルチプレクサ371は再循環量として8
個のパイプラインレジスタの内から選択する。加算器3
67への第2入力はマルチプレクサ365によって選ば
れる。これは符号拡張ユニット353によって符号拡張
された最下位DataZ入力か、あるいは加算器368
の直接出力か、あるいは加算器355の出力か、それと
も固定された丸め量(roundingquantit
y)rnd_addのいずれかである。固定された丸め
量rnd_addを加えることは、その加算器がその量
を他方の入力で丸めることを引き起こす。加算器367
の出力は可変長右方シフタ375への入力を供給する。
可変長右方シフタ375は、その和を右へ0から15ビ
ットのうちの選ばれた量だけシフトする。その出力の3
2個の最上位ビットは第3ステージ出力adder_s
t3_outpの一部を形成する。加算器368への第
1入力は加算器355の出力である。加算器368への
第2入力はマルチプレクサ366によって選ばれる。マ
ルチプレクサ366は、加算器353の出力、符号拡張
ユニット358によって符号拡張された最上位Data
Z入力、再循環入力、あるいは固定された丸め量rnd
_addのいずれかを選択する。マルチプレクサ373
は加算器368の出力における8個のパイプラインレジ
スタのうちから再循環量を選択する。加算器368の出
力は可変長右方シフタ377への入力を供給する。可変
長右方シフタ377はその和を0から15ビットのうち
の選ばれた量だけ右へシフトする。それの出力の32個
の最上位ビットは第3ステージ出力adder_st3
−outpの別の一部を形成する。
63、367、および368を含む。加算器361は4
0ビット幅である。それは加算器353の出力と符号拡
張された最下位DataZビットとを加算する。この和
のうちの32個の最上位ビットは第3ステージ出力ad
der_st3_outpの一部として供給される。同
様に、加算器363は40ビット幅であって、加算器3
55の出力と符号拡張された最上位DataZビットと
を加算する。この和のうちの32個の最上位ビットが第
3ステージ出力adder_st3_outpの一部と
して供給される。加算器367および368への接続は
これよりもずっと複雑である。加算器367への第1入
力は第2ステージの加算器353の出力か、あるいはマ
ルチプレクサ364によって選ばれる再循環出力のいず
れかである。マルチプレクサ371は再循環量として8
個のパイプラインレジスタの内から選択する。加算器3
67への第2入力はマルチプレクサ365によって選ば
れる。これは符号拡張ユニット353によって符号拡張
された最下位DataZ入力か、あるいは加算器368
の直接出力か、あるいは加算器355の出力か、それと
も固定された丸め量(roundingquantit
y)rnd_addのいずれかである。固定された丸め
量rnd_addを加えることは、その加算器がその量
を他方の入力で丸めることを引き起こす。加算器367
の出力は可変長右方シフタ375への入力を供給する。
可変長右方シフタ375は、その和を右へ0から15ビ
ットのうちの選ばれた量だけシフトする。その出力の3
2個の最上位ビットは第3ステージ出力adder_s
t3_outpの一部を形成する。加算器368への第
1入力は加算器355の出力である。加算器368への
第2入力はマルチプレクサ366によって選ばれる。マ
ルチプレクサ366は、加算器353の出力、符号拡張
ユニット358によって符号拡張された最上位Data
Z入力、再循環入力、あるいは固定された丸め量rnd
_addのいずれかを選択する。マルチプレクサ373
は加算器368の出力における8個のパイプラインレジ
スタのうちから再循環量を選択する。加算器368の出
力は可変長右方シフタ377への入力を供給する。可変
長右方シフタ377はその和を0から15ビットのうち
の選ばれた量だけ右へシフトする。それの出力の32個
の最上位ビットは第3ステージ出力adder_st3
−outpの別の一部を形成する。
【0048】図9は図6に示された出力フォーマッタの
構造を示す。
構造を示す。
【0049】図10ないし図13は多重乗算累算コプロ
セッサ160を構成するいくつかのやり方を示す。これ
らの例の各々で、データフローはデータ経路170内の
マルチプレクサを正しく選択することによって実現でき
る。以下の説明は、所望のデータフローを実現するため
に適したものとした場合の、対応するマルチプレクサの
選択について述べている。
セッサ160を構成するいくつかのやり方を示す。これ
らの例の各々で、データフローはデータ経路170内の
マルチプレクサを正しく選択することによって実現でき
る。以下の説明は、所望のデータフローを実現するため
に適したものとした場合の、対応するマルチプレクサの
選択について述べている。
【0050】図10は実数の有限インパルスフィルタ
(FIR)でのデータフローを示している。データD0
ないしD7および係数C0ないしC7が各々の乗算器3
11、312、321、322、331、332、34
1、および342へ供給される。この場合、二重乗算加
算器ユニット310中のマルチプレクサ317に対応す
るマルチプレクサはそれぞれ乗算器312、322、3
32、および342の積を選択する。積の対同志の加算
が加算器319、329、339、および349中で求
められる。これらの和の対が更に加算器353および3
55中で加算される。加算器353および355によっ
て得られる和が加算器368中で加算される。この場
合、マルチプレクサ366が加算器353によって得ら
れる和を選択して加算器368への第2入力とする。加
算器367が累算演算を行う。マルチプレクサ364が
再循環のためのパイプラインレジスタを選択して、加算
器363への第1入力としてマルチプレクサ371の出
力を選択する。マルチプレクサ365は、加算器368
の出力と加算器363への第2入力を選択する。加算器
367がフィルタ出力を生成する。このデータフロー
が、先に加算された積によって形成される8個の積の和
を生成することに注意されたい。この動作は一般に乗算
累算として知られており、フィルタ関数では広く用いら
れている。図7に示されるようなデータ経路170の構
成は、8個の積の累算された和の計算を許容する。これ
はデジタル信号プロセッサコア110によって提供され
る典型的には単一の積累算と比べて、このデータフロー
におけるスループットを大幅に増大させた。
(FIR)でのデータフローを示している。データD0
ないしD7および係数C0ないしC7が各々の乗算器3
11、312、321、322、331、332、34
1、および342へ供給される。この場合、二重乗算加
算器ユニット310中のマルチプレクサ317に対応す
るマルチプレクサはそれぞれ乗算器312、322、3
32、および342の積を選択する。積の対同志の加算
が加算器319、329、339、および349中で求
められる。これらの和の対が更に加算器353および3
55中で加算される。加算器353および355によっ
て得られる和が加算器368中で加算される。この場
合、マルチプレクサ366が加算器353によって得ら
れる和を選択して加算器368への第2入力とする。加
算器367が累算演算を行う。マルチプレクサ364が
再循環のためのパイプラインレジスタを選択して、加算
器363への第1入力としてマルチプレクサ371の出
力を選択する。マルチプレクサ365は、加算器368
の出力と加算器363への第2入力を選択する。加算器
367がフィルタ出力を生成する。このデータフロー
が、先に加算された積によって形成される8個の積の和
を生成することに注意されたい。この動作は一般に乗算
累算として知られており、フィルタ関数では広く用いら
れている。図7に示されるようなデータ経路170の構
成は、8個の積の累算された和の計算を許容する。これ
はデジタル信号プロセッサコア110によって提供され
る典型的には単一の積累算と比べて、このデータフロー
におけるスループットを大幅に増大させた。
【0051】図11は複素数FIRフィルタのデータフ
ローを示す。このデータフローは図7に示される実数F
IRフィルタのそれと類似している。図8のデータフロ
ーは計算の実数部および虚数部に対して同時に作用す
る。データおよび係数はそれぞれ乗算器311、31
2、321、322、331、332、341および3
42へ供給される。二重乗算加算器ユニット310中の
マルチプレクサ317に対応するマルチプレクサはそれ
ぞれ乗算器312、322、332、および342の積
を選択する。積の対が加算器319、329、339、
および349中で加算される。これらの和の対が更に加
算器353および355中で加算される。実数部と虚数
部は加算器367と368中で別々に取り扱われる。マ
ルチプレクサ365は加算器367への第2入力として
加算器353の和を選択する。マルチプレクサ364は
再循環のためのパイプラインレジスタを選択して、マル
チプレクサ371の出力を加算器363への第1入力と
して選択する。加算器368はそれの第1入力として加
算器355の和を受信する。マルチプレクサ366は加
算器368への第2入力としてマルチプレクサ373の
再循環出力を選択する。このように、加算器367およ
び368の対が、乗算累算動作の実数部および虚数部を
生成する。
ローを示す。このデータフローは図7に示される実数F
IRフィルタのそれと類似している。図8のデータフロ
ーは計算の実数部および虚数部に対して同時に作用す
る。データおよび係数はそれぞれ乗算器311、31
2、321、322、331、332、341および3
42へ供給される。二重乗算加算器ユニット310中の
マルチプレクサ317に対応するマルチプレクサはそれ
ぞれ乗算器312、322、332、および342の積
を選択する。積の対が加算器319、329、339、
および349中で加算される。これらの和の対が更に加
算器353および355中で加算される。実数部と虚数
部は加算器367と368中で別々に取り扱われる。マ
ルチプレクサ365は加算器367への第2入力として
加算器353の和を選択する。マルチプレクサ364は
再循環のためのパイプラインレジスタを選択して、マル
チプレクサ371の出力を加算器363への第1入力と
して選択する。加算器368はそれの第1入力として加
算器355の和を受信する。マルチプレクサ366は加
算器368への第2入力としてマルチプレクサ373の
再循環出力を選択する。このように、加算器367およ
び368の対が、乗算累算動作の実数部および虚数部を
生成する。
【0052】図12は係数更新動作におけるデータフロ
ーを示す。エラー項E0ないしE3は、乗算器311、
321、331、および341中で対応する重み付け項
W0ないしW3を乗ぜられる。更新すべき現在の係数C
0ないしC3は、マルチプレクサ317、327、33
7、および347によって選択されて、加算器319、
329、339、および349へ直接入力される。それ
ぞれの積が加算器319、329、339、および34
9中で現在の値に対して加算される。この場合、加算器
319、329、339、および349によって、加算
器ステージ1出力adder_st1_outpとして
出力が生成される。
ーを示す。エラー項E0ないしE3は、乗算器311、
321、331、および341中で対応する重み付け項
W0ないしW3を乗ぜられる。更新すべき現在の係数C
0ないしC3は、マルチプレクサ317、327、33
7、および347によって選択されて、加算器319、
329、339、および349へ直接入力される。それ
ぞれの積が加算器319、329、339、および34
9中で現在の値に対して加算される。この場合、加算器
319、329、339、および349によって、加算
器ステージ1出力adder_st1_outpとして
出力が生成される。
【0053】図13は高速フーリエ変換(FFT)演算
におけるデータフローを示す。FFT演算は16ビット
×32ビットの乗算演算から開始する。このことは次の
ように行われる。各二重乗算加算器310、320、3
30、および340が、対になった乗算器311と31
2、321と322、331と332、および341と
342の各々の1つの入力においてそれぞれ16ビット
量A0ないしA3を受信する。乗算器311、321、
331、および341は32ビット量B0HないしB3
Hの最上位16ビットを受信する。乗算器312、32
2、332、および342は32ビット量B0Lないし
B3Lの最下位16ビットを受信する。シフタ314、
315、324、325、334、335、344、お
よび345を使用してこれらの積が揃えられる。マルチ
プレクサ316、326、336、および346はそれ
ぞれ加算器319、329、339、および349への
第1入力として、それぞれ8ビット左方シフタ314、
324、334、および344からの左へシフトされた
量を選択する。マルチプレクサ317、327、33
7、および347はそれぞれ加算器319、329、3
39、および349への第2入力として、それぞれ8ビ
ット右方シフタ315、325、335、および345
からの右へシフトされた量を選択する。これら互いに逆
向きの8ビットシフトは、16ビット×32ビット乗算
に対して部分積を揃えるための効果的な16ビットシフ
トを提供する。これらの和の対は更に加算器253およ
び255中で加算される。加算器261はDataZ0
入力と加算器253からの出力とを加算する。マルチプ
レクサ364は加算器267への第1入力として加算器
253の和を選択する。マルチプレクサ365は加算器
267への第2入力としてDataZ0入力を選択す
る。加算器268はそれの第1入力として加算器255
の和を受信する。マルチプレクサ366は加算器268
への第2入力としてDataZ1入力を選択する。加算
器263は加算器255の和とDataZ1入力とを加
算する。FFT演算の出力は加算器261、267、2
68、および263の和出力によって与えられる。
におけるデータフローを示す。FFT演算は16ビット
×32ビットの乗算演算から開始する。このことは次の
ように行われる。各二重乗算加算器310、320、3
30、および340が、対になった乗算器311と31
2、321と322、331と332、および341と
342の各々の1つの入力においてそれぞれ16ビット
量A0ないしA3を受信する。乗算器311、321、
331、および341は32ビット量B0HないしB3
Hの最上位16ビットを受信する。乗算器312、32
2、332、および342は32ビット量B0Lないし
B3Lの最下位16ビットを受信する。シフタ314、
315、324、325、334、335、344、お
よび345を使用してこれらの積が揃えられる。マルチ
プレクサ316、326、336、および346はそれ
ぞれ加算器319、329、339、および349への
第1入力として、それぞれ8ビット左方シフタ314、
324、334、および344からの左へシフトされた
量を選択する。マルチプレクサ317、327、33
7、および347はそれぞれ加算器319、329、3
39、および349への第2入力として、それぞれ8ビ
ット右方シフタ315、325、335、および345
からの右へシフトされた量を選択する。これら互いに逆
向きの8ビットシフトは、16ビット×32ビット乗算
に対して部分積を揃えるための効果的な16ビットシフ
トを提供する。これらの和の対は更に加算器253およ
び255中で加算される。加算器261はDataZ0
入力と加算器253からの出力とを加算する。マルチプ
レクサ364は加算器267への第1入力として加算器
253の和を選択する。マルチプレクサ365は加算器
267への第2入力としてDataZ0入力を選択す
る。加算器268はそれの第1入力として加算器255
の和を受信する。マルチプレクサ366は加算器268
への第2入力としてDataZ1入力を選択する。加算
器263は加算器255の和とDataZ1入力とを加
算する。FFT演算の出力は加算器261、267、2
68、および263の和出力によって与えられる。
【0054】次のリストは図3ないし図6に示される多
重乗算累算ユニット140のデータ経路170によって
実行することのできるコマンドのうちのいくつかを含む
部分的リストである。
重乗算累算ユニット140のデータ経路170によって
実行することのできるコマンドのうちのいくつかを含む
部分的リストである。
【0055】Vector_add_16b(len,pdata,pcoeff,pout) Vector_add_32b(len,pdata,pcoeff,pout) Vector_mpy_16b(len,pdata,pcoeff,pout) Vector_mpy_1632b(len,pdata,pcoeff,pout) Vector_mpy_32b(len,pdata,pcoeff,pout) Scalar_vector_add_16b(len,pdata,pcoeff,pout) Scalar_vector_add_32b(len,pdata,pcoeff,pout) Scalar_vector_mpy_16b(len,pdata,pcoeff,pout) Scalar_vector_mpy_1632b(len,pdata,pcoeff,pout) Scalar_vector_mpy_32b(len,pdata,pcoeff,pout)
【0056】これらの演算に関して、演算の名称がデー
タサイズを示している。パラメータフィールド“le
n”は関数の長さを示す。パラメータフィールド“pd
ata”は入力データを含む開始メモリアドレスへのポ
インタである。パラメータフィールド“pcoeff”
はフィルタの係数を含む開始メモリアドレスへのポイン
タである。パラメータフィールド“pout”は出力を
受信するための開始メモリアドレスへのポインタであ
る。既に述べたように、これらのポインタは、データメ
モリ145および係数メモリ147または統合メモリ1
49内のそれぞれの場所を指すことが好ましい。
タサイズを示している。パラメータフィールド“le
n”は関数の長さを示す。パラメータフィールド“pd
ata”は入力データを含む開始メモリアドレスへのポ
インタである。パラメータフィールド“pcoeff”
はフィルタの係数を含む開始メモリアドレスへのポイン
タである。パラメータフィールド“pout”は出力を
受信するための開始メモリアドレスへのポインタであ
る。既に述べたように、これらのポインタは、データメ
モリ145および係数メモリ147または統合メモリ1
49内のそれぞれの場所を指すことが好ましい。
【0057】FFT_real(fft_size,pdata,pcoeff,pout) FFT_complex(fft_size,pdata,pcoeff,pout)
【0058】高速フーリエ変換演算は、先に図10に関
連して述べたように、すべて32ビットデータと16ビ
ット係数とを含むことが好ましい。パラメータフィール
ド“fft_size”は関数のサイズを定義する。他
のパラメータフィールドは上で説明した通りである。
連して述べたように、すべて32ビットデータと16ビ
ット係数とを含むことが好ましい。パラメータフィール
ド“fft_size”は関数のサイズを定義する。他
のパラメータフィールドは上で説明した通りである。
【0059】 FIR_real(us,ds,len,blocksize,pdata,pcoeff,pout) FIR_complex_real(us,ds,len,blocksize,pdata,pcoeff,
pout) FIR_complex_real_sum(us,ds,len,blocksize,pdata,pco
eff,pout) FIR_complex(us,ds,len,blocksize,pdata,pcoeff,pout)
pout) FIR_complex_real_sum(us,ds,len,blocksize,pdata,pco
eff,pout) FIR_complex(us,ds,len,blocksize,pdata,pcoeff,pout)
【0060】有限インパルス応答フィルタ動作はデータ
および係数のタイプが異なる。FIR_real演算は
実数のデータと実数の係数とを採用する。FIR_co
mplex_real演算は複素数データと実数係数と
を採用する。FIR_complex_real_su
m演算は複素数データと実数係数とを採用しながら、複
素数部と実数部とを別々に加算する。FIR_comp
lex演算は両方とも複素数の複素数データと複素数係
数を採用する。パラメータフィールド“us”はアップ
サンプリング比(upsamplingratio)を
示す。パラメータフィールド“ds”はダウンサンプリ
ング比(downsamplingratio)を示
す。パラメータフィールド“blocksize”は採
用された演算ブロックのサイズを示す。その他のパラメ
ータフィールドは既に述べた通りである。
および係数のタイプが異なる。FIR_real演算は
実数のデータと実数の係数とを採用する。FIR_co
mplex_real演算は複素数データと実数係数と
を採用する。FIR_complex_real_su
m演算は複素数データと実数係数とを採用しながら、複
素数部と実数部とを別々に加算する。FIR_comp
lex演算は両方とも複素数の複素数データと複素数係
数を採用する。パラメータフィールド“us”はアップ
サンプリング比(upsamplingratio)を
示す。パラメータフィールド“ds”はダウンサンプリ
ング比(downsamplingratio)を示
す。パラメータフィールド“blocksize”は採
用された演算ブロックのサイズを示す。その他のパラメ
ータフィールドは既に述べた通りである。
【0061】これらすべてのコマンドのパラメータは実
際の値であるかあるいはデータ、係数、および出力場所
に関してはコプロセッサメモリへの16ビットアドレス
ポインタであるかのいずれかである。この選択は、最も
長い有限インパルスフィルタコマンドが約5個の16ビ
ットコマンドワードを要求するであろうことを意味す
る。これはバス伝送量としてさほど大きな混雑をもたら
すものではない。あるいは、これらのパラメータフィー
ルドは間接的なもの、すなわち、各パラメータに対して
限られたレジスタセットから1つのレジスタを指定する
ものでもよい。各パラメータに対して8個のレジスタ組
があってもコマンドワードの中で各々3ビットしか要求
しない。ほんの限られた数の特別なフィルタセッティン
グしか必要としないため、これは実現可能である。
際の値であるかあるいはデータ、係数、および出力場所
に関してはコプロセッサメモリへの16ビットアドレス
ポインタであるかのいずれかである。この選択は、最も
長い有限インパルスフィルタコマンドが約5個の16ビ
ットコマンドワードを要求するであろうことを意味す
る。これはバス伝送量としてさほど大きな混雑をもたら
すものではない。あるいは、これらのパラメータフィー
ルドは間接的なもの、すなわち、各パラメータに対して
限られたレジスタセットから1つのレジスタを指定する
ものでもよい。各パラメータに対して8個のレジスタ組
があってもコマンドワードの中で各々3ビットしか要求
しない。ほんの限られた数の特別なフィルタセッティン
グしか必要としないため、これは実現可能である。
【0062】以上の説明に関して更に以下の項を開示す
る。 (1)再構成可能コプロセッサであって、複数対の乗算
器であって、各対の各乗算器が、第1の予め定められた
ビット数を有するそれぞれ第1および第2入力を受信す
る第1および第2入力を有しており、また積出力を生成
する出力を有している、複数対の乗算器、複数の第1加
算器であって、各第1加算器が、前記複数対の乗算器の
うちの一対中の各乗算器のそれぞれの積出力を受信する
第1および第2入力を有しており、また第1和出力を生
成するようになっている、複数の第1加算器、および少
なくとも1個の第2加算器であって、各第2加算器が、
第1加算器の対応する対からのそれぞれ第1和出力を受
信する第1および第2入力を有しており、また第2和出
力を生成するようになっている、少なくとも1個の第2
加算器、を含む再構成可能コプロセッサ。
る。 (1)再構成可能コプロセッサであって、複数対の乗算
器であって、各対の各乗算器が、第1の予め定められた
ビット数を有するそれぞれ第1および第2入力を受信す
る第1および第2入力を有しており、また積出力を生成
する出力を有している、複数対の乗算器、複数の第1加
算器であって、各第1加算器が、前記複数対の乗算器の
うちの一対中の各乗算器のそれぞれの積出力を受信する
第1および第2入力を有しており、また第1和出力を生
成するようになっている、複数の第1加算器、および少
なくとも1個の第2加算器であって、各第2加算器が、
第1加算器の対応する対からのそれぞれ第1和出力を受
信する第1および第2入力を有しており、また第2和出
力を生成するようになっている、少なくとも1個の第2
加算器、を含む再構成可能コプロセッサ。
【0063】(2)第1項記載の再構成可能コプロセッ
サであって、更に、複数の符号拡張回路であって、各符
号拡張回路が、前記複数対の対応する一対中の各乗算器
の積出力を受信する入力と、前記対応する第1加算器の
前記対応する入力へつながれる符号拡張された出力を生
成する出力とを有しており、前記符号拡張出力が前記対
応する積出力であって、その最上位の1ビットが複製さ
れて最上位のビットのうち第2の予め定められたビット
数を埋めており、前記第2の予め定められたビット数が
前記第1の予め定められたビット数の2倍よりも大きい
ような、複数の符号拡張回路、を含む再構成可能コプロ
セッサ。
サであって、更に、複数の符号拡張回路であって、各符
号拡張回路が、前記複数対の対応する一対中の各乗算器
の積出力を受信する入力と、前記対応する第1加算器の
前記対応する入力へつながれる符号拡張された出力を生
成する出力とを有しており、前記符号拡張出力が前記対
応する積出力であって、その最上位の1ビットが複製さ
れて最上位のビットのうち第2の予め定められたビット
数を埋めており、前記第2の予め定められたビット数が
前記第1の予め定められたビット数の2倍よりも大きい
ような、複数の符号拡張回路、を含む再構成可能コプロ
セッサ。
【0064】(3)第1項記載の再構成可能コプロセッ
サであって、更に、複数の固定長左方シフト回路であっ
て、各固定長左方シフト回路が、前記複数対の乗算器の
うちの対応する一対の第1乗算器の積出力を受信する入
力と、前記対応する第1加算器の前記対応する入力へつ
ながれる左方シフトされた出力を生成する出力とを有し
ており、前記左方シフトされた出力が予め定められた左
方シフトビット数だけ左方シフトされた前記対応する積
出力である、複数の固定長左方シフト回路、を含む再構
成可能コプロセッサ。
サであって、更に、複数の固定長左方シフト回路であっ
て、各固定長左方シフト回路が、前記複数対の乗算器の
うちの対応する一対の第1乗算器の積出力を受信する入
力と、前記対応する第1加算器の前記対応する入力へつ
ながれる左方シフトされた出力を生成する出力とを有し
ており、前記左方シフトされた出力が予め定められた左
方シフトビット数だけ左方シフトされた前記対応する積
出力である、複数の固定長左方シフト回路、を含む再構
成可能コプロセッサ。
【0065】(4)第1項記載の再構成可能コプロセッ
サであって、更に、複数の固定長右方シフト回路であっ
て、各固定長右方シフト回路が、前記複数対の各対の中
の前記第1乗算器とは異なる前記複数対の乗算器の対応
する一対中の第2乗算器の積出力を受信する入力と、前
記対応する第1加算器の前記対応する入力へつながれる
右方シフトされた出力を生成する出力とを有しており、
前記右方シフトされた出力が前記予め定められたシフト
ビット数だけ右方シフトされた前記対応する積出力であ
る、複数の固定長右方シフト回路、を含む再構成可能コ
プロセッサ。
サであって、更に、複数の固定長右方シフト回路であっ
て、各固定長右方シフト回路が、前記複数対の各対の中
の前記第1乗算器とは異なる前記複数対の乗算器の対応
する一対中の第2乗算器の積出力を受信する入力と、前
記対応する第1加算器の前記対応する入力へつながれる
右方シフトされた出力を生成する出力とを有しており、
前記右方シフトされた出力が前記予め定められたシフト
ビット数だけ右方シフトされた前記対応する積出力であ
る、複数の固定長右方シフト回路、を含む再構成可能コ
プロセッサ。
【0066】(5)第4項記載の再構成可能コプロセッ
サであって、ここにおいて、前記第1の予め定められた
ビット数が16ビットであり、前記第2の予め定められ
たビット数が40ビットであり、更に前記予め定められ
たシフトビット数が8ビットである、再構成可能コプロ
セッサ。
サであって、ここにおいて、前記第1の予め定められた
ビット数が16ビットであり、前記第2の予め定められ
たビット数が40ビットであり、更に前記予め定められ
たシフトビット数が8ビットである、再構成可能コプロ
セッサ。
【0067】(6)第1項記載の再構成可能コプロセッ
サであって、更に、複数のマルチプレクサであって、各
マルチプレクサが、前記複数対の乗算器の対応する一対
の第1乗算器の前記積出力を受信する第1入力と、前記
対応する乗算器対の前記対応する第1乗算器への前記第
1および第2入力を受信する第2入力とを有しており、
また各マルチプレクサが、前記対応する第1乗算器の前
記積出力または前記対応する第1乗算器への前記第1お
よび第2入力のうちの選ばれた1つと等しい前記対応す
る第1加算器の前記対応する入力へつながれる出力を生
成している、複数のマルチプレクサ、を含む再構成可能
コプロセッサ。
サであって、更に、複数のマルチプレクサであって、各
マルチプレクサが、前記複数対の乗算器の対応する一対
の第1乗算器の前記積出力を受信する第1入力と、前記
対応する乗算器対の前記対応する第1乗算器への前記第
1および第2入力を受信する第2入力とを有しており、
また各マルチプレクサが、前記対応する第1乗算器の前
記積出力または前記対応する第1乗算器への前記第1お
よび第2入力のうちの選ばれた1つと等しい前記対応す
る第1加算器の前記対応する入力へつながれる出力を生
成している、複数のマルチプレクサ、を含む再構成可能
コプロセッサ。
【0068】(7)第6項記載の再構成可能コプロセッ
サであって、更に、前記第2加算器の各々の出力に対応
する複数のコプロセッサ出力、を含む再構成可能コプロ
セッサ。
サであって、更に、前記第2加算器の各々の出力に対応
する複数のコプロセッサ出力、を含む再構成可能コプロ
セッサ。
【0069】(8)第1項記載の再構成可能コプロセッ
サであって、更に、複数の第1符号拡張回路であって、
各符号拡張回路が、前記複数対の乗算器の対応する一対
中の第1乗算器の積出力を受信する入力と、第1の符号
拡張された出力を生成する出力とを有しており、前記符
号拡張出力が前記対応する積出力であって、その最上位
の1ビットが複製されて最上位のビットのうち第2の予
め定められたビット数を埋めており、前記第2の予め定
められたビット数が前記第1の予め定められたビット数
の2倍よりも大きいような、複数の第1符号拡張回路、
複数の固定長左方シフト回路であって、各固定長左方シ
フト回路が、前記複数対の乗算器の前記対応する一対の
前記第1乗算器の積出力を受信する入力と、左方シフト
された出力を生成する出力とを有しており、前記左方シ
フトされた出力が予め定められた左方シフトビット数だ
け左方シフトされた前記対応する積出力である、複数の
固定長左方シフト回路、複数の第1マルチプレクサであ
って、各第1マルチプレクサが、対応する第1符号拡張
回路の前記第1の符号拡張された出力を受信する第1入
力、対応する固定長左方シフタの前記左方シフトされた
出力を受信する第2入力とを有しており、各第1マルチ
プレクサが、前記符号拡張された出力または前記左方シ
フトされた出力の選ばれた1つと等しい前記対応する第
1加算器の前記対応する入力へつながれる出力を生成す
るようになっている、複数の第1マルチプレクサ、複数
の固定長右方シフト回路であって、各固定長右方シフト
回路が、前記複数対の各対の中の前記第1乗算器とは異
なる前記複数対の乗算器の対応する一対中の第2乗算器
の積出力を受信する入力と、右方シフトされた出力を生
成する出力とを有しており、前記右方シフトされた出力
が前記予め定められたシフトビット数だけ右方シフトさ
れた前記対応する積出力である、複数の固定長右方シフ
ト回路、複数の第2マルチプレクサであって、各第2マ
ルチプレクサが、前記複数対の乗算器の対応する一対の
前記乗算器の前記積出力を受信する第1入力、前記右方
シフトされた出力を受信する第2入力、および前記対応
する乗算器対のうちの前記対応する第1乗算器への前記
第1および第2入力を受信する第3入力を有しており、
各第2マルチプレクサが、前記対応する第2乗算器の前
記積出力、前記右方シフトされた出力、または前記対応
する第1乗算器への前記第1および第2入力のうちの選
ばれた1つと等しい出力を生成するようになっている、
複数の第2マルチプレクサ、および複数の第2符号拡張
回路であって、各第2符号拡張回路が、対応する第2マ
ルチプレクサの出力を受信する入力と、対応する第1加
算器の対応する入力へつながれる第2の符号拡張された
出力を生成する出力とを有しており、前記符号拡張され
た出力が前記第2マルチプレクサの前記対応する出力で
あって、その最上位の1ビットが複製されて最上位のビ
ットのうち前記第2の予め定められたビット数を埋めて
いる、複数の第2符号拡張回路、を含む再構成可能コプ
ロセッサ。
サであって、更に、複数の第1符号拡張回路であって、
各符号拡張回路が、前記複数対の乗算器の対応する一対
中の第1乗算器の積出力を受信する入力と、第1の符号
拡張された出力を生成する出力とを有しており、前記符
号拡張出力が前記対応する積出力であって、その最上位
の1ビットが複製されて最上位のビットのうち第2の予
め定められたビット数を埋めており、前記第2の予め定
められたビット数が前記第1の予め定められたビット数
の2倍よりも大きいような、複数の第1符号拡張回路、
複数の固定長左方シフト回路であって、各固定長左方シ
フト回路が、前記複数対の乗算器の前記対応する一対の
前記第1乗算器の積出力を受信する入力と、左方シフト
された出力を生成する出力とを有しており、前記左方シ
フトされた出力が予め定められた左方シフトビット数だ
け左方シフトされた前記対応する積出力である、複数の
固定長左方シフト回路、複数の第1マルチプレクサであ
って、各第1マルチプレクサが、対応する第1符号拡張
回路の前記第1の符号拡張された出力を受信する第1入
力、対応する固定長左方シフタの前記左方シフトされた
出力を受信する第2入力とを有しており、各第1マルチ
プレクサが、前記符号拡張された出力または前記左方シ
フトされた出力の選ばれた1つと等しい前記対応する第
1加算器の前記対応する入力へつながれる出力を生成す
るようになっている、複数の第1マルチプレクサ、複数
の固定長右方シフト回路であって、各固定長右方シフト
回路が、前記複数対の各対の中の前記第1乗算器とは異
なる前記複数対の乗算器の対応する一対中の第2乗算器
の積出力を受信する入力と、右方シフトされた出力を生
成する出力とを有しており、前記右方シフトされた出力
が前記予め定められたシフトビット数だけ右方シフトさ
れた前記対応する積出力である、複数の固定長右方シフ
ト回路、複数の第2マルチプレクサであって、各第2マ
ルチプレクサが、前記複数対の乗算器の対応する一対の
前記乗算器の前記積出力を受信する第1入力、前記右方
シフトされた出力を受信する第2入力、および前記対応
する乗算器対のうちの前記対応する第1乗算器への前記
第1および第2入力を受信する第3入力を有しており、
各第2マルチプレクサが、前記対応する第2乗算器の前
記積出力、前記右方シフトされた出力、または前記対応
する第1乗算器への前記第1および第2入力のうちの選
ばれた1つと等しい出力を生成するようになっている、
複数の第2マルチプレクサ、および複数の第2符号拡張
回路であって、各第2符号拡張回路が、対応する第2マ
ルチプレクサの出力を受信する入力と、対応する第1加
算器の対応する入力へつながれる第2の符号拡張された
出力を生成する出力とを有しており、前記符号拡張され
た出力が前記第2マルチプレクサの前記対応する出力で
あって、その最上位の1ビットが複製されて最上位のビ
ットのうち前記第2の予め定められたビット数を埋めて
いる、複数の第2符号拡張回路、を含む再構成可能コプ
ロセッサ。
【0070】(9)第1項記載の再構成可能コプロセッ
サであって、更に、少なくとも1個の第3加算器であっ
て、前記第2加算器の第1の対応する1個から前記第2
和出力を受信する第1入力、前記第2加算器の第2の対
応する1個から前記和出力を受信する第2入力とを有し
ており、更に第3和出力を生成する、少なくとも1個の
第3加算器、を含む再構成可能コプロセッサ。
サであって、更に、少なくとも1個の第3加算器であっ
て、前記第2加算器の第1の対応する1個から前記第2
和出力を受信する第1入力、前記第2加算器の第2の対
応する1個から前記和出力を受信する第2入力とを有し
ており、更に第3和出力を生成する、少なくとも1個の
第3加算器、を含む再構成可能コプロセッサ。
【0071】(10)第9項記載の再構成可能コプロセ
ッサであって、更に、少なくとも1個の累算レジスタで
あって、その各々が、前記少なくとも1個の第3加算器
の対応する1個の前記第3和出力を受信する入力を有し
ており、また累算出力を生成する、少なくとも1個の累
算レジスタ、および前記第2加算器の前記第1の対応す
る1個から前記第2和出力を受信する第1入力、前記対
応する累算レジスタの前記累算出力を受信する第2入
力、および対応する第3加算器の前記第1入力へつなが
れる出力を有するマルチプレクサであって、また前記対
応する累算レジスタの前記累算出力または前記対応する
第2加算器の前記第2和出力のうちの選ばれた1つと等
しい出力を生成するマルチプレクサ、を含む再構成可能
コプロセッサ。
ッサであって、更に、少なくとも1個の累算レジスタで
あって、その各々が、前記少なくとも1個の第3加算器
の対応する1個の前記第3和出力を受信する入力を有し
ており、また累算出力を生成する、少なくとも1個の累
算レジスタ、および前記第2加算器の前記第1の対応す
る1個から前記第2和出力を受信する第1入力、前記対
応する累算レジスタの前記累算出力を受信する第2入
力、および対応する第3加算器の前記第1入力へつなが
れる出力を有するマルチプレクサであって、また前記対
応する累算レジスタの前記累算出力または前記対応する
第2加算器の前記第2和出力のうちの選ばれた1つと等
しい出力を生成するマルチプレクサ、を含む再構成可能
コプロセッサ。
【0072】(11)第10項記載の再構成可能コプロ
セッサであって、ここにおいて、前記少なくとも1個の
累算レジスタが、各第3加算器に対応する複数の累算レ
ジスタを含んでおり、また更に、各第3加算器に対応す
る累算レジスタマルチプレクサであって、各累算レジス
タマルチプレクサが、前記第3加算器に対応する前記複
数の累算レジスタのそれぞれの累算出力を受信する複数
入力を有しており、また前記第3加算器に対応する前記
累算レジスタの選ばれた1つの前記累算出力と等しい出
力を生成する、累算レジスタ乗算器を含む、再構成可能
コプロセッサ。
セッサであって、ここにおいて、前記少なくとも1個の
累算レジスタが、各第3加算器に対応する複数の累算レ
ジスタを含んでおり、また更に、各第3加算器に対応す
る累算レジスタマルチプレクサであって、各累算レジス
タマルチプレクサが、前記第3加算器に対応する前記複
数の累算レジスタのそれぞれの累算出力を受信する複数
入力を有しており、また前記第3加算器に対応する前記
累算レジスタの選ばれた1つの前記累算出力と等しい出
力を生成する、累算レジスタ乗算器を含む、再構成可能
コプロセッサ。
【0073】(12)第9項記載の再構成可能コプロセ
ッサであって、更に、少なくとも1個の可変右方シフタ
であって、各可変右方シフタが、前記少なくとも1個の
第3加算器の対応する1個の前記第3和出力を受信する
入力と、可変右方シフトされた出力とを有しており、前
記可変右方シフトされた出力が選ばれたビット数だけ右
方シフトされた前記対応する第3和出力である、少なく
とも1個の可変右方シフタ、を含む再構成可能コプロセ
ッサ。
ッサであって、更に、少なくとも1個の可変右方シフタ
であって、各可変右方シフタが、前記少なくとも1個の
第3加算器の対応する1個の前記第3和出力を受信する
入力と、可変右方シフトされた出力とを有しており、前
記可変右方シフトされた出力が選ばれたビット数だけ右
方シフトされた前記対応する第3和出力である、少なく
とも1個の可変右方シフタ、を含む再構成可能コプロセ
ッサ。
【0074】(13)第1項記載の再構成可能コプロセ
ッサであって、更に、第2加算器の各対に対応する一対
の第3加算器であって、各第3加算器が、第1および第
2入力と、前記第1および第2入力の第3和出力を生成
する出力とを有している一対の第3加算器、各第3加算
器に対応する累算レジスタであって、各々が、前記対応
する第3加算器の前記第3和出力を受信する入力を有し
ており、また累算出力を生成するようになっている累算
レジスタ、第1マルチプレクサであって、第2加算器の
前記対応する対の第1の第2加算器の前記第2和出力を
受信する第1入力、前記対応する累算レジスタの前記累
算出力を受信する第2入力、および第3加算器の前記対
応する対の第1の第3加算器の第1入力へつながれる出
力を有しており、また前記対応する第2和出力または前
記対応する累算出力の選ばれた1つと等しい出力を生成
する第1マルチプレクサ、第2マルチプレクサであっ
て、第2加算器の前記対応する対の前記第1の第2加算
器とは異なる第2加算器の前記対応する対の第2の第2
加算器の前記第2和出力を受信する第1入力、第3加算
器の前記対応する対の前記第1の第3加算器とは異なる
第3加算器の前記対応する対の第2の第3加算器の前記
第3和出力を受信する第2入力、および前記第1の第3
加算器の前記第2入力へつながれる出力を有しており、
また前記第2の第2加算器の前記第2和出力または前記
第2の第3加算器の前記第3和出力の選ばれた1つと等
しい出力を生成する第2マルチプレクサ、前記第2の第
3加算器の各々の前記第1入力が、前記第2の第2加算
器の前記第2和出力を受信しており、第3のマルチプレ
クサであって、前記第1の第2加算器の前記第2和出力
を受信する第1入力、前記対応する累算レジスタの前記
累算出力を受信する第2入力、および前記第2の第3加
算器の前記第2入力へつながれる出力を有しており、ま
た前記第1の第2加算器の前記第2和出力または前記対
応する累算レジスタの前記累算出力の選ばれた1つと等
しい出力を生成する第3マルチプレクサ。を含む再構成
可能コプロセッサ。
ッサであって、更に、第2加算器の各対に対応する一対
の第3加算器であって、各第3加算器が、第1および第
2入力と、前記第1および第2入力の第3和出力を生成
する出力とを有している一対の第3加算器、各第3加算
器に対応する累算レジスタであって、各々が、前記対応
する第3加算器の前記第3和出力を受信する入力を有し
ており、また累算出力を生成するようになっている累算
レジスタ、第1マルチプレクサであって、第2加算器の
前記対応する対の第1の第2加算器の前記第2和出力を
受信する第1入力、前記対応する累算レジスタの前記累
算出力を受信する第2入力、および第3加算器の前記対
応する対の第1の第3加算器の第1入力へつながれる出
力を有しており、また前記対応する第2和出力または前
記対応する累算出力の選ばれた1つと等しい出力を生成
する第1マルチプレクサ、第2マルチプレクサであっ
て、第2加算器の前記対応する対の前記第1の第2加算
器とは異なる第2加算器の前記対応する対の第2の第2
加算器の前記第2和出力を受信する第1入力、第3加算
器の前記対応する対の前記第1の第3加算器とは異なる
第3加算器の前記対応する対の第2の第3加算器の前記
第3和出力を受信する第2入力、および前記第1の第3
加算器の前記第2入力へつながれる出力を有しており、
また前記第2の第2加算器の前記第2和出力または前記
第2の第3加算器の前記第3和出力の選ばれた1つと等
しい出力を生成する第2マルチプレクサ、前記第2の第
3加算器の各々の前記第1入力が、前記第2の第2加算
器の前記第2和出力を受信しており、第3のマルチプレ
クサであって、前記第1の第2加算器の前記第2和出力
を受信する第1入力、前記対応する累算レジスタの前記
累算出力を受信する第2入力、および前記第2の第3加
算器の前記第2入力へつながれる出力を有しており、ま
た前記第1の第2加算器の前記第2和出力または前記対
応する累算レジスタの前記累算出力の選ばれた1つと等
しい出力を生成する第3マルチプレクサ。を含む再構成
可能コプロセッサ。
【0075】(14)第13項記載の再構成可能コプロ
セッサであって、更に、第2加算器の各対に対応する第
1および第2の付加的入力、第1の第4加算器であっ
て、前記第1の付加的入力を受信する第1入力、前記第
1の第2加算器の前記第2和出力を受信する第2入力、
および第1の第4和出力を生成する出力を有する第1の
第4加算器、第2の第4加算器であって、前記第2の付
加的入力を受信する第1入力、前記第2の第2加算器の
前記第2和出力を受信する第2入力、および第2の第4
和出力を生成する出力を有する第2の第4加算器、を含
み、ここにおいて、前記第2マルチプレクサが、更に、
前記第1の付加的入力を受信する第3入力を含んでお
り、また前記第1の付加的入力と等しいであろう前記出
力を生成するようになっており、更に、ここにおいて、
前記第3マルチプレクサが、更に、前記第2の付加的入
力を受信する第3入力を含んでおり、また前記第2の付
加的入力と等しいであろう前記出力を生成するようにな
っている、再構成可能コプロセッサ。
セッサであって、更に、第2加算器の各対に対応する第
1および第2の付加的入力、第1の第4加算器であっ
て、前記第1の付加的入力を受信する第1入力、前記第
1の第2加算器の前記第2和出力を受信する第2入力、
および第1の第4和出力を生成する出力を有する第1の
第4加算器、第2の第4加算器であって、前記第2の付
加的入力を受信する第1入力、前記第2の第2加算器の
前記第2和出力を受信する第2入力、および第2の第4
和出力を生成する出力を有する第2の第4加算器、を含
み、ここにおいて、前記第2マルチプレクサが、更に、
前記第1の付加的入力を受信する第3入力を含んでお
り、また前記第1の付加的入力と等しいであろう前記出
力を生成するようになっており、更に、ここにおいて、
前記第3マルチプレクサが、更に、前記第2の付加的入
力を受信する第3入力を含んでおり、また前記第2の付
加的入力と等しいであろう前記出力を生成するようにな
っている、再構成可能コプロセッサ。
【0076】(15)データ処理システムはデジタル信
号プロセッサコア(110)およびコプロセッサ(14
0)を含む。コプロセッサ(140)は前記デジタル信
号プロセッサコア(110)のアドレス空間内にローカ
ルメモリ(141、145、147)を有している。コ
プロセッサ(140)はデジタル信号プロセッサコア
(110)からのコマンドに応答する。ダイレクトメモ
リアクセス回路(120)はコプロセッサ(140)の
ローカルメモリ(141、145、147)との間で自
主的にデータのやりとりを行う。コプロセッサコマンド
は予め定められたメモリアドレスへマッピングされたコ
マンド用FIFOメモリ(141)に記憶される。制御
コマンドには、ローカルメモリ(141、145、14
7)へのメモリ転送が完了するまでコプロセッサ(14
0)を機能停止させる受信データ同期コマンドが含まれ
る。送信データ同期コマンドは、コプロセッサ(14
0)に、ローカルメモリ(141、145、147)か
ら外部へのメモリ転送をトリガーさせる信号をダイレク
トメモリアクセス回路(120)に対して発生させる。
インタラプトコマンドはコプロセッサ(140)にデジ
タル信号プロセッサコア(110)を中断させる。
号プロセッサコア(110)およびコプロセッサ(14
0)を含む。コプロセッサ(140)は前記デジタル信
号プロセッサコア(110)のアドレス空間内にローカ
ルメモリ(141、145、147)を有している。コ
プロセッサ(140)はデジタル信号プロセッサコア
(110)からのコマンドに応答する。ダイレクトメモ
リアクセス回路(120)はコプロセッサ(140)の
ローカルメモリ(141、145、147)との間で自
主的にデータのやりとりを行う。コプロセッサコマンド
は予め定められたメモリアドレスへマッピングされたコ
マンド用FIFOメモリ(141)に記憶される。制御
コマンドには、ローカルメモリ(141、145、14
7)へのメモリ転送が完了するまでコプロセッサ(14
0)を機能停止させる受信データ同期コマンドが含まれ
る。送信データ同期コマンドは、コプロセッサ(14
0)に、ローカルメモリ(141、145、147)か
ら外部へのメモリ転送をトリガーさせる信号をダイレク
トメモリアクセス回路(120)に対して発生させる。
インタラプトコマンドはコプロセッサ(140)にデジ
タル信号プロセッサコア(110)を中断させる。
【図1】本発明に従う、デジタル信号プロセッサコアと
再構成可能ハードウエアコプロセッサとの組み合わせ。
再構成可能ハードウエアコプロセッサとの組み合わせ。
【図2】本発明の、デジタル信号プロセッサコアと再構
成可能ハードウエアコプロセッサとの間をつなぐメモリ
マップ論理。
成可能ハードウエアコプロセッサとの間をつなぐメモリ
マップ論理。
【図3】再構成可能ハードウエアコプロセッサメモリの
利用法。
利用法。
【図4】フィルタルゴリズムとして有用なメモリ管理技
法。
法。
【図5】図1の組み合わせの別の実施例であって、専用
バスを挟んで2つのコプロセッサを含む実施例。
バスを挟んで2つのコプロセッサを含む実施例。
【図6】多様なフィルタ関数を実現するように再構成可
能なハードウエアコプロセッサの構造。
能なハードウエアコプロセッサの構造。
【図7】図6に示された再構成可能ハードウエアコプロ
セッサの入力フォーマッタ。
セッサの入力フォーマッタ。
【図8】図6に示された再構成可能ハードウエアコプロ
セッサの再構成可能なデータ経路コア。
セッサの再構成可能なデータ経路コア。
【図9】図6に示された再構成可能ハードウエアコプロ
セッサの出力フォーマッタ。
セッサの出力フォーマッタ。
【図10】実数の有限インパルス応答フィルタを実現す
るための、データ経路コアを通るデータフロー接続。
るための、データ経路コアを通るデータフロー接続。
【図11】複素数の有限インパルス応答フィルタを実現
するための、データ経路コアを通るデータフロー接続。
するための、データ経路コアを通るデータフロー接続。
【図12】係数更新関数を実行するための、データ経路
コアを通るデータフロー接続。
コアを通るデータフロー接続。
【図13】高速フーリエ変換を実行するための、データ
経路コアを通るデータフロー接続。
経路コアを通るデータフロー接続。
100 データ処理システム 110 デジタル信号プロセッサコア 120 ダイレクトメモリアクセス回路 130 メモリインターフェース 101 データバス 103 アドレスバス 131 外部データバス 133 外部アドレスバス 140 再構成可能ハードウエアコプロセッサ 141 コマンド用FIFOメモリ 143 コプロセッサ論理コア 144 メモリエリア 145 データメモリ再構成 146 メモリエリア 147 係数メモリ 149 統合メモリ 150 アドレス発生器 151 書き込みポインタ 153 読み出しポインタ 155,157,159 メモリエリア 160 入力フォーマッタ 170 データ経路 180 再構成可能ハードウエアコプロセッサ 181 出力フォーマッタ 185 専用バス 190 制御ユニット 201,203 マルチプレクサ 205,207 マルチプレクサ 211,213 レジスタ 215,217 レジスタ 219 マルチプレクサ 221 シフタ 223 複写/交換ユニット 225 レジスタ 233,235 マルチプレクサ 310,320,330,340 二重乗算加算器 311,312,321,322,331,332,3
41,342 乗算器 313 符号拡張ユニット 314,315,324,325,334,335,3
44,345 シフタ 315,325,335,345 シフタ 316,326,336,346 マルチプレクサ 317,327,337,347 マルチプレクサ 318 符号拡張器 319,329,339,349 加算器 351 パイプラインレジスタ 352 符号拡張ユニット 357 パイプラインレジスタ 358 40ビット符号拡張ユニット 353,355 加算器 361,363,367,368 加算器 364,365,366 マルチプレクサ 371,373 マルチプレクサ 375,377 可変長右方シフタ 400 データ 401,402,403 データブロック 421,431,441 環状バッファ 423,433,443 履歴バッファ
41,342 乗算器 313 符号拡張ユニット 314,315,324,325,334,335,3
44,345 シフタ 315,325,335,345 シフタ 316,326,336,346 マルチプレクサ 317,327,337,347 マルチプレクサ 318 符号拡張器 319,329,339,349 加算器 351 パイプラインレジスタ 352 符号拡張ユニット 357 パイプラインレジスタ 358 40ビット符号拡張ユニット 353,355 加算器 361,363,367,368 加算器 364,365,366 マルチプレクサ 371,373 マルチプレクサ 375,377 可変長右方シフタ 400 データ 401,402,403 データブロック 421,431,441 環状バッファ 423,433,443 履歴バッファ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 デール イー.ホースバー アメリカ合衆国 テキサス州プラノ,シャ ーリイ ドライブ 3408 (72)発明者 チン − ユー フン アメリカ合衆国 テキサス州プラノ,ボー ルドウィン レーン 4633
Claims (1)
- 【請求項1】 再構成可能コプロセッサであって、 複数対の乗算器であって、各対の各乗算器が、第1の予
め定められたビット数を有するそれぞれ第1および第2
入力を受信する第1および第2入力を有しており、また
積出力を生成する出力を有している、複数対の乗算器、 複数の第1加算器であって、各第1加算器が、前記複数
対の乗算器のうちの一対中の各乗算器のそれぞれの積出
力を受信する第1および第2入力を有しており、また第
1和出力を生成するようになっている、複数の第1加算
器、および少なくとも1個の第2加算器であって、各第
2加算器が、第1加算器の対応する対からのそれぞれ第
1和出力を受信する第1および第2入力を有しており、
また第2和出力を生成するようになっている、少なくと
も1個の第2加算器、を含む再構成可能コプロセッサ。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US7364198P | 1998-02-04 | 1998-02-04 | |
| US073641 | 1998-02-04 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH11296493A true JPH11296493A (ja) | 1999-10-29 |
Family
ID=22114918
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11027805A Pending JPH11296493A (ja) | 1998-02-04 | 1999-02-04 | デ―タ処理システム用再構成可能コプロセッサ |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US6298366B1 (ja) |
| JP (1) | JPH11296493A (ja) |
| DE (1) | DE69927075T2 (ja) |
Families Citing this family (80)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6609143B1 (en) * | 1998-01-21 | 2003-08-19 | Matsushita Electric Industrial Co., Ltd | Method and apparatus for arithmetic operation |
| US6467009B1 (en) * | 1998-10-14 | 2002-10-15 | Triscend Corporation | Configurable processor system unit |
| US6493817B1 (en) * | 1999-05-21 | 2002-12-10 | Hewlett-Packard Company | Floating-point unit which utilizes standard MAC units for performing SIMD operations |
| US6594711B1 (en) * | 1999-07-15 | 2003-07-15 | Texas Instruments Incorporated | Method and apparatus for operating one or more caches in conjunction with direct memory access controller |
| US6542916B1 (en) * | 1999-07-28 | 2003-04-01 | Arm Limited | Data processing apparatus and method for applying floating-point operations to first, second and third operands |
| US7401205B1 (en) * | 1999-08-13 | 2008-07-15 | Mips Technologies, Inc. | High performance RISC instruction set digital signal processor having circular buffer and looping controls |
| US6789183B1 (en) * | 1999-09-28 | 2004-09-07 | Texas Instruments Incorporated | Apparatus and method for activation of a digital signal processor in an idle mode for interprocessor transfer of signal groups in a digital signal processing unit |
| US6658503B1 (en) * | 1999-12-07 | 2003-12-02 | Texas Instruments Incorporated | Parallel transfer size calculation and annulment determination in transfer controller with hub and ports |
| DE10003006A1 (de) * | 2000-01-25 | 2001-07-26 | Bosch Gmbh Robert | Anordnung und Verfahren zur Signalverarbeitung und Speicherung |
| US6721840B1 (en) | 2000-08-18 | 2004-04-13 | Triscend Corporation | Method and system for interfacing an integrated circuit to synchronous dynamic memory and static memory |
| US6725364B1 (en) | 2001-03-08 | 2004-04-20 | Xilinx, Inc. | Configurable processor system |
| US20030105617A1 (en) * | 2001-12-05 | 2003-06-05 | Nec Usa, Inc. | Hardware acceleration system for logic simulation |
| WO2004029793A1 (en) | 2002-09-24 | 2004-04-08 | Interdigital Technology Corporation | Computationally efficient mathematical engine |
| US8495122B2 (en) | 2003-12-29 | 2013-07-23 | Xilinx, Inc. | Programmable device with dynamic DSP architecture |
| US7870182B2 (en) | 2003-12-29 | 2011-01-11 | Xilinx Inc. | Digital signal processing circuit having an adder circuit with carry-outs |
| US7853636B2 (en) | 2003-12-29 | 2010-12-14 | Xilinx, Inc. | Digital signal processing circuit having a pattern detector circuit for convergent rounding |
| US7472155B2 (en) | 2003-12-29 | 2008-12-30 | Xilinx, Inc. | Programmable logic device with cascading DSP slices |
| US7865542B2 (en) | 2003-12-29 | 2011-01-04 | Xilinx, Inc. | Digital signal processing block having a wide multiplexer |
| US7840627B2 (en) | 2003-12-29 | 2010-11-23 | Xilinx, Inc. | Digital signal processing circuit having input register blocks |
| US7860915B2 (en) | 2003-12-29 | 2010-12-28 | Xilinx, Inc. | Digital signal processing circuit having a pattern circuit for determining termination conditions |
| US7844653B2 (en) | 2003-12-29 | 2010-11-30 | Xilinx, Inc. | Digital signal processing circuit having a pre-adder circuit |
| US7853634B2 (en) | 2003-12-29 | 2010-12-14 | Xilinx, Inc. | Digital signal processing circuit having a SIMD circuit |
| US7480690B2 (en) | 2003-12-29 | 2009-01-20 | Xilinx, Inc. | Arithmetic circuit with multiplexed addend inputs |
| US7840630B2 (en) * | 2003-12-29 | 2010-11-23 | Xilinx, Inc. | Arithmetic logic unit circuit |
| US7849119B2 (en) | 2003-12-29 | 2010-12-07 | Xilinx, Inc. | Digital signal processing circuit having a pattern detector circuit |
| US7567997B2 (en) | 2003-12-29 | 2009-07-28 | Xilinx, Inc. | Applications of cascading DSP slices |
| US7467175B2 (en) * | 2003-12-29 | 2008-12-16 | Xilinx, Inc. | Programmable logic device with pipelined DSP slices |
| US7882165B2 (en) | 2003-12-29 | 2011-02-01 | Xilinx, Inc. | Digital signal processing element having an arithmetic logic unit |
| US7853632B2 (en) | 2003-12-29 | 2010-12-14 | Xilinx, Inc. | Architectural floorplan for a digital signal processing circuit |
| US7437401B2 (en) * | 2004-02-20 | 2008-10-14 | Altera Corporation | Multiplier-accumulator block mode splitting |
| DE602004002554T2 (de) * | 2004-02-20 | 2007-10-25 | Altera Corp., San Jose | Block Modus Aufteilung eines Multiplizier-Akkumulators |
| US7873815B2 (en) * | 2004-03-04 | 2011-01-18 | Qualcomm Incorporated | Digital signal processors with configurable dual-MAC and dual-ALU |
| US7167971B2 (en) | 2004-06-30 | 2007-01-23 | International Business Machines Corporation | System and method for adaptive run-time reconfiguration for a reconfigurable instruction set co-processor architecture |
| US7444276B2 (en) * | 2005-09-28 | 2008-10-28 | Liga Systems, Inc. | Hardware acceleration system for logic simulation using shift register as local cache |
| US20070073999A1 (en) * | 2005-09-28 | 2007-03-29 | Verheyen Henry T | Hardware acceleration system for logic simulation using shift register as local cache with path for bypassing shift register |
| US20070074000A1 (en) * | 2005-09-28 | 2007-03-29 | Liga Systems, Inc. | VLIW Acceleration System Using Multi-state Logic |
| US20070074008A1 (en) * | 2005-09-28 | 2007-03-29 | Donofrio David D | Mixed mode floating-point pipeline with extended functions |
| US20070106720A1 (en) * | 2005-11-10 | 2007-05-10 | Samsung Electronics Co., Ltd. | Reconfigurable signal processor architecture using multiple complex multiply-accumulate units |
| US20070129924A1 (en) * | 2005-12-06 | 2007-06-07 | Verheyen Henry T | Partitioning of tasks for execution by a VLIW hardware acceleration system |
| US20070129926A1 (en) * | 2005-12-01 | 2007-06-07 | Verheyen Henry T | Hardware acceleration system for simulation of logic and memory |
| US7886969B2 (en) * | 2005-12-06 | 2011-02-15 | Visa U.S.A. Inc. | Method and system for loading and reloading portable consumer devices |
| US20070150702A1 (en) * | 2005-12-23 | 2007-06-28 | Verheyen Henry T | Processor |
| US20090063355A1 (en) * | 2007-08-31 | 2009-03-05 | Nizam Antoo | Method and system using reloadable portable consumer devices |
| US8479133B2 (en) | 2009-01-27 | 2013-07-02 | Xilinx, Inc. | Method of and circuit for implementing a filter in an integrated circuit |
| US8543635B2 (en) | 2009-01-27 | 2013-09-24 | Xilinx, Inc. | Digital signal processing block with preadder stage |
| US8805916B2 (en) * | 2009-03-03 | 2014-08-12 | Altera Corporation | Digital signal processing circuitry with redundancy and bidirectional data paths |
| US8549055B2 (en) | 2009-03-03 | 2013-10-01 | Altera Corporation | Modular digital signal processing circuitry with optionally usable, dedicated connections between modules of the circuitry |
| US8886696B1 (en) * | 2009-03-03 | 2014-11-11 | Altera Corporation | Digital signal processing circuitry with redundancy and ability to support larger multipliers |
| RU2411575C1 (ru) * | 2009-09-08 | 2011-02-10 | Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." | Подключаемый портативный сопроцессор с изменяемой системой команд и способ его применения |
| CN112602054B (zh) | 2018-08-31 | 2024-06-25 | 弗莱克斯-罗技克斯技术公司 | 乘法器累加器电路、用于乘法累加的逻辑瓦片架构和包括逻辑瓦片阵列的ic |
| US12165047B2 (en) | 2019-01-28 | 2024-12-10 | Rambus Inc. | Memory-integrated neural network |
| US11194585B2 (en) * | 2019-03-25 | 2021-12-07 | Flex Logix Technologies, Inc. | Multiplier-accumulator circuitry having processing pipelines and methods of operating same |
| US11314504B2 (en) | 2019-04-09 | 2022-04-26 | Flex Logix Technologies, Inc. | Multiplier-accumulator processing pipelines and processing component, and methods of operating same |
| US11416261B2 (en) | 2019-08-08 | 2022-08-16 | Blaize, Inc. | Group load register of a graph streaming processor |
| US11288076B2 (en) | 2019-09-13 | 2022-03-29 | Flex Logix Technologies, Inc. | IC including logic tile, having reconfigurable MAC pipeline, and reconfigurable memory |
| US11455368B2 (en) | 2019-10-02 | 2022-09-27 | Flex Logix Technologies, Inc. | MAC processing pipeline having conversion circuitry, and methods of operating same |
| US12015428B2 (en) | 2019-11-05 | 2024-06-18 | Flex Logix Technologies, Inc. | MAC processing pipeline using filter weights having enhanced dynamic range, and methods of operating same |
| US11307860B1 (en) | 2019-11-22 | 2022-04-19 | Blaize, Inc. | Iterating group sum of multiple accumulate operations |
| US11693625B2 (en) | 2019-12-04 | 2023-07-04 | Flex Logix Technologies, Inc. | Logarithmic addition-accumulator circuitry, processing pipeline including same, and methods of operation |
| US11960856B1 (en) | 2020-01-15 | 2024-04-16 | Flex Logix Technologies, Inc. | Multiplier-accumulator processing pipeline using filter weights having gaussian floating point data format |
| US11442881B2 (en) | 2020-04-18 | 2022-09-13 | Flex Logix Technologies, Inc. | MAC processing pipelines, circuitry to control and configure same, and methods of operating same |
| US12282748B1 (en) | 2020-05-26 | 2025-04-22 | Analog Devices, Inc. | Coarse floating point accumulator circuit, and MAC processing pipelines including same |
| US11604645B2 (en) | 2020-07-22 | 2023-03-14 | Flex Logix Technologies, Inc. | MAC processing pipelines having programmable granularity, and methods of operating same |
| US12282749B2 (en) | 2020-08-20 | 2025-04-22 | Analog Devices, Inc. | Configurable MAC pipelines for finite-impulse-response filtering, and methods of operating same |
| US12455723B2 (en) | 2021-02-02 | 2025-10-28 | Analog Devices, Inc. | MAC processing pipeline having activation circuitry, and methods of operating same |
| US12461713B2 (en) | 2021-03-03 | 2025-11-04 | Analog Devices, Inc. | MAC processing pipelines, circuitry to configure same, and methods of operating same |
| US11593290B1 (en) | 2021-08-02 | 2023-02-28 | Nvidia Corporation | Using a hardware sequencer in a direct memory access system of a system on a chip |
| US11636063B2 (en) | 2021-08-02 | 2023-04-25 | Nvidia Corporation | Hardware accelerated anomaly detection using a min/max collector in a system on a chip |
| US12602244B2 (en) | 2021-08-02 | 2026-04-14 | Nvidia Corporation | Offloading processing tasks to decoupled accelerators for increasing performance in a system on a chip |
| US11573921B1 (en) | 2021-08-02 | 2023-02-07 | Nvidia Corporation | Built-in self-test for a programmable vision accelerator of a system on a chip |
| US11593001B1 (en) | 2021-08-02 | 2023-02-28 | Nvidia Corporation | Using per memory bank load caches for reducing power use in a system on a chip |
| US12099439B2 (en) | 2021-08-02 | 2024-09-24 | Nvidia Corporation | Performing load and store operations of 2D arrays in a single cycle in a system on a chip |
| US12118353B2 (en) | 2021-08-02 | 2024-10-15 | Nvidia Corporation | Performing load and permute with a single instruction in a system on a chip |
| US11836527B2 (en) | 2021-08-02 | 2023-12-05 | Nvidia Corporation | Accelerating table lookups using a decoupled lookup table accelerator in a system on a chip |
| US11573795B1 (en) | 2021-08-02 | 2023-02-07 | Nvidia Corporation | Using a vector processor to configure a direct memory access system for feature tracking operations in a system on a chip |
| US11954496B2 (en) | 2021-08-02 | 2024-04-09 | Nvidia Corporation | Reduced memory write requirements in a system on a chip using automatic store predication |
| US11704067B2 (en) | 2021-08-02 | 2023-07-18 | Nvidia Corporation | Performing multiple point table lookups in a single cycle in a system on chip |
| US12517849B2 (en) | 2022-07-28 | 2026-01-06 | Microchip Technology Incorporated | System and methods for matrix multiplication |
| WO2024025618A1 (en) * | 2022-07-28 | 2024-02-01 | Microchip Technology Incorporated | System and methods for matrix multiplication |
| US12236245B2 (en) | 2023-06-12 | 2025-02-25 | Blaize Inc. | Group thread dispatch for graph streaming processor |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4524423A (en) * | 1981-11-06 | 1985-06-18 | Rca Corporation | Digital signal separation filters |
| EP0660245A3 (en) * | 1993-12-20 | 1998-09-30 | Motorola, Inc. | Arithmetic engine |
| US6078939A (en) * | 1997-09-30 | 2000-06-20 | Intel Corporation | Apparatus useful in floating point arithmetic |
-
1999
- 1999-02-03 DE DE69927075T patent/DE69927075T2/de not_active Expired - Lifetime
- 1999-02-04 US US09/244,973 patent/US6298366B1/en not_active Expired - Lifetime
- 1999-02-04 JP JP11027805A patent/JPH11296493A/ja active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| DE69927075T2 (de) | 2006-06-14 |
| DE69927075D1 (de) | 2005-10-13 |
| US6298366B1 (en) | 2001-10-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH11296493A (ja) | デ―タ処理システム用再構成可能コプロセッサ | |
| JPH11272631A (ja) | データ処理システムおよびその方法 | |
| JP3983857B2 (ja) | ベクトルレジスタの複数バンクを用いた単一命令複数データ処理 | |
| US6530010B1 (en) | Multiplexer reconfigurable image processing peripheral having for loop control | |
| US6065070A (en) | DMA configurable channel with memory width N and with steering logic comprising N multiplexors, each multiplexor having a single one-byte input and N one-byte outputs | |
| US12530196B2 (en) | Inserting null vectors into a stream of vectors | |
| US20250156185A1 (en) | Inserting predefined pad values into a stream of vectors | |
| US20250036411A1 (en) | Padding in a stream of matrix elements | |
| CN111183418B (zh) | 可配置硬件加速器 | |
| EP1047989A1 (en) | Digital signal processor having data alignment buffer for performing unaligned data accesses | |
| US11443014B1 (en) | Sparse matrix multiplier in hardware and a reconfigurable data processor including same | |
| JP2001516916A (ja) | デジタル信号処理能力を有するデータ処理装置 | |
| KR19980069869A (ko) | 벡터 프로세서용 로드 및 저장 유니트 | |
| WO2004040456A2 (en) | Distributed data cache architecture | |
| US6185633B1 (en) | DMA configurable receive channel with memory width N and with steering logic compressing N multiplexors | |
| CN1666174B (zh) | 用于信号处理的处理器 | |
| CN112633505A (zh) | 一种基于risc-v的人工智能推理方法和系统 | |
| JP2005527035A (ja) | 幅の広いメモリへのアクセス | |
| WO2000076119A1 (en) | Cryptographic processing system | |
| US20060015701A1 (en) | Arithmetic node including general digital signal processing functions for an adaptive computing machine | |
| CN113568851B (zh) | 访问存储器的方法及对应电路 | |
| JPH11212786A (ja) | レジスタベースデータ処理のためのデータパスおよび方法 | |
| EP3340037A1 (en) | A data processing apparatus and method for controlling vector memory accesses | |
| WO2018115807A1 (en) | Vector generating instruction | |
| Laufer et al. | PCI-PipeRench and the SwordAPI: A system for stream-based reconfigurable computing |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060206 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081030 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081104 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090331 |