JPH11272631A - データ処理システムおよびその方法 - Google Patents

データ処理システムおよびその方法

Info

Publication number
JPH11272631A
JPH11272631A JP11027804A JP2780499A JPH11272631A JP H11272631 A JPH11272631 A JP H11272631A JP 11027804 A JP11027804 A JP 11027804A JP 2780499 A JP2780499 A JP 2780499A JP H11272631 A JPH11272631 A JP H11272631A
Authority
JP
Japan
Prior art keywords
data
coprocessor
memory
digital signal
signal processor
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
Application number
JP11027804A
Other languages
English (en)
Inventor
E Hosber Dale
イー.ホスバー デール
Alan Gatherer
ギャザラー アラン
E Lemondos Carl Jr
イー.ルモンドス,ジュニア. カール
Yuu Fun Chin
− ユー フン チン
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments 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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPH11272631A publication Critical patent/JPH11272631A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path

Abstract

(57)【要約】 【課題】 データ処理システムを提供する。 【解決手段】 本システムはデジタル信号プロセッサコ
ア110およびコプロセッサ140を含む。コプロセッ
サはデジタル信号プロセッサコアのアドレス空間内にロ
ーカルメモリ141、145、147を有し、デジタル
信号プロセッサコアからのコマンドに応答する。ダイレ
クトメモリアクセス回路120がローカルメモリとの間
で自主的なデータのやりとりを行う。コプロセッサコマ
ンドは予め定められたメモリアドレスへマッピングされ
たコマンド用FIFOメモリ141中に記憶され、制御
コマンドはローカルメモリへのメモリ転送が完了するま
でコプロセッサを停止させる受信データ同期コマンドを
含む。送信データ同期コマンドは、コプロセッサにロー
カルメモリから外部へのメモリ転送をトリガーさせる信
号をダイレクトメモリアクセス回路へ発行させる。イン
タラプトコマンドは、コプロセッサにデジタル信号プロ
セッサコアを中断させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明の技術分野はデジタル
信号処理であって、更に詳細にはコアとなるデータプロ
セッサおよび再構成可能コプロセッサを備えるデジタル
信号プロセッサである。
【0002】
【従来の技術】デジタル信号処理は、音声および映像処
理用として益々普及している。多くの場合、従来の個別
アナログ部品の一群をデジタルプロセッサで置換するこ
とができる。デジタル信号プロセッサによってもたらさ
れる処理容量の増大のお陰で、益々多くの種類、多くの
機能の従来技術デバイスが実現されるようになってき
た。この傾向は、現状のデバイスに対して更に複雑な機
能や特徴を加えること、あるいは新しい種類のデバイス
を生成することに対する要求を喚起するようになってき
た。いくつかのケースでは、この要求は、完全にプログ
ラム可能なデジタル信号プロセッサで以て、所望の関数
をコスト効率的に実現する能力を凌駕するまでになって
いる。
【0003】この需要に対する1つの対応は、デジタル
信号プロセッサを特定用途向け集積回路(ASIC)と
組み合わせるものである。デジタル信号プロセッサは制
御関数およびいくつかの信号処理を取り扱うようにプロ
グラムされる。デジタル信号プロセッサの完全なプログ
ラム可能性は、プログラムを変更することによって製品
を差別化することを可能とする。ASICは、普通に実
行される、時間的に厳しい特定のコア関数に対する処理
ハードウエアを提供するように構築される。集積回路の
密度が向上するにつれて、今やデジタル信号プロセッサ
とASICハードウエアコプロセッサ(co−proc
essor)とを同一チップ上へ配置することが可能と
なっている。
【0004】
【発明の解決しようとする課題】この方式には2つの問
題がある。この方式では、ハードウエアコプロセッサA
SICとデジタル信号プロセッサとの間に効率的な接続
が得られることが希有である。デジタル信号プロセッサ
をプログラムすることによってインターフェースのほと
んどを取り扱うことが普通である。多くの場合、デジタ
ル信号プロセッサは、ハードウエアコプロセッサが動作
するのにあわせて実時間で、データポインタおよびコマ
ンドを供給しなければならない。安全な設計とするため
に、デジタル信号プロセッサがハードウエアコプロセッ
サに対してサービスを提供するための予備の時間を設け
ることが普通である。このことは、ハードウエアコプロ
セッサが完全には利用されていないということを意味す
る。第2の問題は設計に要する時間の問題から発生す
る。異なる機能性を設計する能力が増大するにつれて、
製品サイクルが減少する。このことは、新しい機能を迅
速に設計することに対してプレミアムを与えることにな
る。プログラムおよびインターフェースを再利用するこ
とができれば、設計サイクルを短縮するのに役立つはず
である。しかし、ASICハードウエアコプロセッサ中
に組み込まれた固定された関数は容易には再利用できな
い。典型的なASICハードウエアコプロセッサは、狭
い範囲の問題に適した限定された関数セットしかもたな
い。それらの設計は、密接に関連する関数を実現するた
めにさえ、迅速に再利用することが不可能である。加え
て、デジタル信号プロセッサとASICハードウエアコ
プロセッサとの間のインターフェースは、特定の製品に
対して固有の、その場しのぎの技術を利用する傾向があ
る。
【0005】
【課題を解決するための手段】本発明はデジタル信号プ
ロセッサコアとコプロセッサとを含むデータ処理システ
ムである。コプロセッサは前記デジタル信号プロセッサ
コアのアドレス空間内にローカルメモリを有する。コプ
ロセッサはデジタル信号プロセッサコアからのコマンド
に対して応答して、前記ローカルメモリ中に記憶されて
いるデータに対して予め定められたデータ処理演算を、
デジタル信号プロセッサコアと並列的に実行する。本デ
ータ処理システムは、デジタル信号プロセッサコアの制
御下にあるダイレクトメモリアクセス回路を含む。ダイ
レクトメモリアクセス回路は、コプロセッサのローカル
メモリとの間で自主的なデータのやりとりを行う。
【0006】コプロセッサはコマンドに応答して、関連
するデータ処理演算組を実行するようにそれ自身を構成
する。コプロセッサコマンドは、コマンド用の先入れ先
出しメモリ中に記憶される。このコマンド用FIFOメ
モリは、予め定められたメモリアドレスへマッピングさ
れている。
【0007】コプロセッサは各種の制御コマンドに対し
て応答する。受信データ同期コマンドは、ダイレクトメ
モリアクセス回路がローカルメモリへのメモリ転送が完
了したことを信号として表明するまでは処理コマンドを
中断させる。送信データ同期コマンドによって、コプロ
セッサはダイレクトメモリアクセス回路に対して、ロー
カルメモリから外部への予め定められたメモリ転送をト
リガーする信号を出力する。インターラプトコマンド
は、コプロセッサに働きかけてデジタル信号プロセッサ
コアをインタラプトさせる。
【0008】各々のコマンドはローカルメモリ内のデー
タ入力場所の指示を含んでいる。コプロセッサは、指示
されたデータ入力場所から始まるローカルメモリからデ
ータを呼び出す。各コマンドは、ローカルメモリ内のデ
ータ出力場所の指示を含んでいる。コプロセッサは指示
されたデータ入力場所から始まるデータローカルメモリ
に結果を記憶する。入力データは入力バッファとして機
能する環状に構成されたメモリエリアに記憶してもよ
い。結果のデータは出力バッファとして機能する環状に
構成されたメモリエリアに記憶されよう。
【0009】本発明のこれらおよびその他の態様が図面
に示されている。
【0010】
【発明の実施の形態】図1は、デジタル信号プロセッサ
コア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の好ましいデ
ータスループットを実現するために必要とされる幅広い
メモリバスを使用するために必要である。
【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バッファはフル状態となってそれ以上のコマンドを受
け入れることができない。
【0013】データメモリ145および係数メモリ14
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にとって一般に効率的であろう。
【0015】処理すべきデータの転送に続いて、デジタ
ル信号プロセッサコア110は再構成可能ハードウエア
コプロセッサ140に対して、所望される信号処理アル
ゴリズムに関するコマンドを信号として供給する。既に
述べたように、コマンドは予め定められたアドレスへの
メモリ書き込みによって、再構成可能ハードウエアコプ
ロセッサ140へ送られる。受信されたコマンドは先入
れ先出し方式でコマンドメモリ141中へ記憶される。
【0016】再構成可能ハードウエアコプロセッサ14
0の各計算コマンドには、実行すべきその特定の関数を
指定するやり方が含まれていることが好ましい。好適実
施例では、再構成可能ハードウエアコプロセッサ140
は再構成可能なように構築される。再構成可能ハードウ
エアコプロセッサ140は、異なるが関連のある関数を
実行するように互いに異なるやり方で接続することので
きる乗算器や加算器等の関数ユニットの組を有する。各
再構成可能ハードウエアコプロセッサに対して選ばれる
そのような関連関数の組は、それらの関数の数学的類似
性に基づいていよう。この数学的類似性によって、類似
したハードウエアを複数の関数用として再構成すること
が可能となる。コマンドは、データプロセッサ命令と同
じように、演算コードを介してその特定の計算を指示す
ることができる。
【0017】各計算コマンドには、その計算で使用され
るはずのデータの場所を指定するやり方が含まれてい
る。データ空間を指定するのには、いくつかの適した方
法が存在する。例えば、コマンドは、開始アドレスおよ
びそのブロック内のデータワードまたはサンプルの個数
を指定することができる。データサイズを1つのパラメ
ータとして指定することができる。あるいはデータサイ
ズは計算タイプを定義する演算コードによって指定する
こともできる。それ以外の例として、コマンドによって
データサイズ、入力データの開始アドレスおよび終了ア
ドレスを指定してもよい。注意すべきことは、入力デー
タがどこに記憶されているかを指定するために、間接的
な方法を使用しても構わないということである。コマン
ドは、開始アドレス、データサイズ、データブロック中
のサンプル数、および終了アドレスのようなそれらのパ
ラメータの任意のものを記憶するメモリ場所またはレジ
スタへのポインタを含むことができる。
【0018】各計算コマンドは、更に、その特別なコマ
ンドに関するデータを記憶するメモリアドレスの範囲を
指示する必要がある。この指示は上で入力データの記憶
場所に関して挙げたもののうちの任意の方法によって行
うことができる。多くの場合、計算関数はフィルタ関数
であろうから、処理の後の出力データ量は入力データ量
とほぼ等しい。その他の場合には、出力データ量は入力
データ量よりも多かったり少なかったりする。いずれに
しろ、結果のデータ量は、入力データ量と要求される計
算関数のタイプとから知ることができる。こうして、単
に開始アドレスを指定するだけで、すべての結果データ
をどこに記憶すべきかを指示するのに十分な情報が提供
される。処理の間に入力データを上書きする破壊的なや
り方で出力データを記憶することも可能である。あるい
は、出力データをメモリの異なる部分へ書き込んで、入
力データを少なくとも一次的に保存しておくようにする
こともできる。それらのいくつかのやり方からどれを選
ぶかは、入力データが再利用されるかどうかに依存す
る。
【0019】図3は2つのメモリエリアを交互に使用す
ることを含む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との組み合わせを要
求することになろう。時代の後の時点において、命令セ
ット互換デジタル信号プロセッサコアの利用可能な計算
容量は増大し、それとともに、以前には再構成可能ハー
ドウエアコプロセッサを必要とした関数はデジタル信号
プロセッサコアによってソフト的に実行できるかもしれ
ない。その製品用の以前のプログラムコードは、新しい
より強力なデジタル信号プロセッサへ容易に変換できよ
う。このことは、置換される再構成可能ハードウエアコ
プロセッサによってサポートされるコマンドの各々に対
して独立したサブルーチンを提供することによって実現
される。従って、元々のプログラムが再構成可能ハード
ウエアコプロセッサへコマンドを送信するためにサブル
ーチンスタブを採用している各々の箇所は、対応するサ
ブルーチン呼び出しで以て置き換えられる。こうするこ
とで膨大な再プログラミングが回避される。
【0021】データの1ブロックに対する処理が完了し
た後で、そのデータはデータメモリ145または統合メ
モリ149から外部へ転送される。この第2の転送は、
出力メモリ場所に記憶されているデータを読み出すデジ
タル信号プロセッサコア110の直接的な動作によっ
て、あるいはダイレクトメモリアクセス回路120の助
けをかりて発生し得る。この出力データはこの処理の出
力を表すものであろう。この場合に、データは利用装置
へ転送される。あるいは、再構成可能ハードウエアコプ
ロセッサ140の出力データで以て、進行中の作業を表
すことができる。この場合には、一般的に、データは一
時的に集積回路100の外部にあるメモリ中に記憶され
て、後に取り出され、更に処理が続けられる。
【0022】再構成可能ハードウエアコプロセッサ14
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用に選ばれたブロックサイズとは独立である。
【0024】ブロック処理の有効性はこの例から分か
る。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によって実行される
プロセスだけが変動するだろうと予想される。
【0026】図4は動作をより良くインタラプトさせる
ためのメモリ管理技法を示している。データブロック4
01、402、および403を含むデータ400は有限
インパルスフィルタの窓410を通過する。そのような
フィルタはデータの時間履歴(timehistor
y)に対して作用する。3つの処理A、B、およびC
は、データメモリ145内のそれぞれ環状バッファ42
1、431、および441中で実行される。そのような
環状バッファは履歴の保存を許容する。こうして、他の
処理に続いて次のブロックを処理する時に、予測可能な
アドレスにおいて履歴データが得られ使用できる。この
履歴データは次のブロックのために新たに書き込まれる
データの直前にある。
【0027】この技法は、別のタスクを許可するために
メモリ空間をクリアする必要がある時を除いて、うまく
働く。この場合には、履歴データはフラッシュされて、
フィルタ処理が再び施されることによって再ロードされ
よう。あるいは、次のブロックで必要とされる履歴デー
タはメモリ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つのデータブロックを記憶するのにちょ
うど十分なだけまで減らすことを可能とする。
【0029】音声および映像信号処理に有用な多くのア
ルゴリズムでは係数の適合化が行われる。すなわち、時
間軸で実行される関数を変化させる何らかのフィードバ
ック経路が存在する。そのようなアルゴリズムの一例
は、採用された特別なラインおよび遠隔端モデムの動作
に適合するための時間を必要とするモデムである。最
初、それはブロックモードでそのような適合的な関数を
実行することがそれらの適合性関数の収束に悪い影響を
及ぼすのではないかと思われるかもしれない。多くのそ
のような関数に含まれる数学を再調査した結果はそれと
違う。特定の一時に実行できる適合化の量は、適合化を
計算するために利用可能なデータ量に依存する。この利
用可能なデータ量は、そのデータがサンプル毎に処理さ
れるのか、あるいはサンプルのブロック毎に処理される
のかに依存しない。実際には、適合化の速度はほとんど
同じである。サンプル毎に適合化を行う方式では、多く
の小さいステップで、完全に適合化された係数に向かっ
て収束するという結果が得られる。データブロック毎に
適合化を行う方式では、より少数のより大きいステップ
で収束する。これは利用可能なデータ量が多ければ、ブ
ロック処理の場合に、修正のためのより大きいエラー項
が生ずるであろうためである。しかし、平均した収束の
勾配は2つの場合で同じであろう。例えば、先のモデム
の例のように、適合化のほとんどが初期化時に発生する
場合、そしてほとんどの処理が安定した状態において発
生する場合には、実際上の差はほとんどない。適合性フ
ィルタが移動標的を追随しなければならない場合に、サ
ンプル毎の適合化がブロック毎の適合化よりも優れてい
るかどうかは分からない。もし、例えば、続く処理がブ
ロックサイズの時間の逆数よりも高い周波数で変化すれ
ば、サンプル毎の適合化に比べてブロック毎の適合化は
小さいステップでの無用のハンチング(huntin
g)を阻止することができる。このように、ブロック毎
の適合性フィルタリングは、サンプル毎の適合性フィル
タリングと比べて何等普遍的な欠点を有するわけではな
い。
【0030】再構成可能ハードウエアコプロセッサ14
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チャンネルを指示する時だ
け、次のコマンドへと処理を継続しよう。
【0032】この完了信号に続いて、再構成可能ハード
ウエアコプロセッサ140はコマンドメモリ141中の
次のコマンドへと進む。この場合、この次のコマンドは
ちょうどロードされたばかりのデータを使用する計算コ
マンドである。この計算コマンドは前の受信データ同期
コマンドが完了するまでスタートできないので、これは
正しいデータがロードされることを保証することにな
る。
【0033】受信データ同期コマンドと計算コマンドと
のこの組み合わせは、デジタル信号プロセッサコア11
0に対する制御負担を軽減する。デジタル信号プロセッ
サコア110は、入力データ転送を行い、そのコマンド
対を再構成可能ハードウエアコプロセッサ140へ送る
ためにダイレクトメモリアクセス回路120をセットア
ップするだけでよい。このことが、入力データ転送が計
算動作の開始前に完了することを保証する。これは再構
成可能ハードウエアコプロセッサ140の関数を制御す
るためにデジタル信号プロセッサコア110によって必
要とされるソフトウエアオーバーヘッド量を大幅に減ら
す。そうでなければ、デジタル信号プロセッサコアは、
入力データローディング動作の完了を表示する、ダイレ
クトメモリアクセス回路120からのインタラプト信号
を受信する必要があろう。このインタラプトサービスを
提供するためには、インタラプトサービスルーチンを書
き込んでおく必要がある。加えて、そのようなインタラ
プトは、コマンドメモリへコプロセッサコマンドを送る
コンテクスト切り替えと、そのインタラプトから戻るた
めの別のコンテクスト切り替えとを必要としよう。従っ
て、受信データ同期コマンドはデジタル信号プロセッサ
コア内のかなりの容量をより生産的な用途のために解放
する。
【0034】別の非計算コマンドは送信データ同期コマ
ンドである。送信データ同期コマンドはほぼ受信データ
同期コマンドの逆である。送信データ同期コマンドに到
達すると、再構成可能ハードウエアコプロセッサ140
はダイレクトメモリアクセスをトリガーする。このダイ
レクトメモリアクセス動作は、別のシステム場所へ記憶
するために、データメモリ145または統合メモリ14
9からデータを読み出す。このダイレクトメモリアクセ
ス動作はデジタル信号プロセッサコア110によってプ
リセットしてもよく、送信データ同期コマンドに遭遇す
ることによって再構成可能ハードウエアコプロセッサ1
40から信号を単に受信することによって開始させられ
る。ダイレクトメモリアクセス回路120が多重DMA
チャンネルをサポートする場合には、送信データ同期コ
マンドはトリガーされたDMAチャンネルを指定しなけ
ればならない。あるいは、送信データ同期コマンドは、
もし2以上のチャンネルがサポートされていればそのD
MAチャンネルを含む、ダイレクトメモリアクセス回路
120のための制御パラメータを指定するであろう。そ
のような送信データ同期コマンドに遭遇すると、再構成
可能ハードウエアコプロセッサはダイレクトメモリアク
セス回路120と直接交信して、適切なダイレクトメモ
リアクセス動作をセットアップおよび開始させる。
【0035】別の可能な非計算コマンドは同期完了コマ
ンドである。同期完了コマンドに遭遇すると、再構成可
能ハードウエアコプロセッサ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を解放する。
【0037】図6ないし図9は再構成可能ハードウエア
コプロセッサの一例の構成を示す。この特別なコプロセ
ッサは多重乗算累算器と呼ばれる。乗算累算動作は、そ
こで複数の積の和が生成されるが、信号処理において広
く用いられている。多くのフィルタルゴリズムがそれら
の関数の周辺に構築されている。
【0038】図6は多重乗算累算器140全体の一般的
な構造を示す。データメモリ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を出力する。
【0040】これら3つのデータフローはデータ経路
(datapath)170へ供給される。データ経路
170はコプロセッサの演算部分である。後で詳しく説
明するが、データ経路170は複数のハードウエア乗算
器および加算器を含み、それらは多様な乗算累算動作を
実行できるように各種のやり方で接続できるようになっ
ている。データ経路170は2つの加算器データストリ
ームを出力する。それらの各々は4個の32ビットデー
タワードである。
【0041】これらの2つのデータストリームが出力フ
ォーマッタ180への入力を供給する。出力フォーマッ
タ180は、2つのデータストリームを、2つのメモリ
中へ書き戻すために2個の128ビットデータワードへ
再アレンジする。これらの書き込み動作のためのアドレ
スはアドレス発生器150によって計算される。この再
アレンジはメモリのワード境界での位置合わせの作業を
含むことができる。
【0042】コプロセッサ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入力を形成する。
【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ビットが供給され
る。
【0045】二重乗算加算器ユニット310、320、
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ビットへ符号拡張される。
【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の別の一部を形成する。
【0048】図9は図6に示された出力フォーマッタの
構造を示す。
【0049】図10ないし図13は多重乗算累算コプロ
セッサ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によって提供され
る典型的には単一の積累算と比べて、このデータフロー
におけるスループットを大幅に増大させた。
【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の対が、乗算累算動作の実数部および虚数部を
生成する。
【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として
出力が生成される。
【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の和出力によって与えられる。
【0054】次のリストは図3ないし図6に示される多
重乗算累算ユニット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)Scal
ar_vector_mpy_32b(len,pdata,pcoeff,pout)
【0056】これらの演算に関して、演算の名称がデー
タサイズを示している。パラメータフィールド“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”は関数のサイズを定義する。他
のパラメータフィールドは上で説明した通りである。
【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)
【0060】有限インパルス応答フィルタ動作はデータ
および係数のタイプが異なる。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ビットしか要求
しない。ほんの限られた数の特別なフィルタセッティン
グしか必要としないため、これは実現可能である。
【0062】以上の説明に関して更に以下の項を開示す
る。 (1)単一の集積回路上へ作製されたデータ処理システ
ムであって、データバス、アドレスバス、前記データバ
スおよび前記アドレスバスへつながれたデジタル信号プ
ロセッサコアであって、コプロセッサコマンドを生成す
るように動作可能なデジタル信号プロセッサコア、およ
び前記データバス、前記アドレスバス、および前記デジ
タル信号プロセッサコアへつながれたコプロセッサであ
って、前記デジタル信号プロセッサコアのアドレス空間
内にローカルメモリを有し、前記デジタル信号プロセッ
サコアによって生成されるコマンドに応答して、前記ロ
ーカルメモリ中に記憶されているデータに対して予め定
められたデータ処理を、前記デジタル信号プロセッサコ
アと並列的に実行するコプロセッサ、を含むデータ処理
システム。
【0063】(2)第1項記載のデータ処理システムで
あって、更に、前記デジタル信号プロセッサの制御下に
あるダイレクトメモリアクセス回路であって、前記コプ
ロセッサの前記ローカルメモリとの間でのデータ転送を
含む、メモリ中の予め定められたアドレス間での自主的
なデータ転送を行うことができるダイレクトメモリアク
セス回路、を含むデータ処理システム。
【0064】(3)第2項記載のデータ処理システムで
あって、ここにおいて、前記コプロセッサが、受信デー
タ同期コマンドに応答して、前記ダイレクトメモリアク
セス回路が、前記ローカルメモリへのデータの予め定め
られたメモリ転送の完了を知らせる信号を発するまで
は、コマンドの処理を中断させるようになった、データ
処理システム。
【0065】(4)第2項記載のデータ処理システムで
あって、ここにおいて、前記コプロセッサが、送信デー
タ同期コマンドに応答して、前記ダイレクトメモリアク
セス回路に対して前記ローカルメモリから外部へのデー
タの予め定められたメモリ転送をトリガーさせる信号を
発するようになった、データ処理システム。
【0066】(5)第1項記載のデータ処理システムで
あって、ここにおいて、前記コプロセッサが、更に、予
め定められたメモリアドレスに書き込まれたデータの応
答する入力と、前記コプロセッサの動作を制御する出力
とを有する、コマンド用先入れ先出しメモリを含んでい
る、データ処理システム。
【0067】(6)第1項記載のデータ処理システムで
あって、ここにおいて、前記コプロセッサが、前記コマ
ンドに応答して、それに応じて自身を構成して、それに
よって関連するデータ処理動作の組を実行できるように
なった、データ処理システム。
【0068】(7)第1項記載のデータ処理システムで
あって、ここにおいて、前記コプロセッサが、インタラ
プトコマンドに応答して、前記デジタル信号プロセッサ
コアに対してインタラプト信号を送信するようになっ
た、データ処理システム。
【0069】(8)第1項記載のデータ処理システムで
あって、ここにおいて、各コマンドが前記ローカルメモ
リ内のデータ入力場所の指示を含んでおり、そして、前
記コプロセッサが、前記コマンドに応答して、前記指示
されたデータ入力場所から始まる前記ローカルメモリか
らデータを呼び出すようになった、データ処理システ
ム。
【0070】(9)第1項記載のデータ処理システムで
あって、ここにおいて、各コマンドが前記ローカルメモ
リ内のデータ出力場所の指示を含んでおり、そして、前
記コプロセッサが、前記コマンドに応答して、前記コマ
ンドに対応するデータ処理動作からの結果のデータを、
前記指示されたデータ入力場所から始まるローカルメモ
リ中へ記憶するようになった、データ処理システム。
【0071】(10)データ処理の方法であって、デジ
タル信号プロセッサコアのメモリマップ内にアドレスを
有するコプロセッサ内にローカルメモリを配置する工
程、前記ローカルメモリへデータを転送する工程、前記
コプロセッサへコマンドを送信して、それによって前記
コプロセッサに、対応するデータ処理動作を前記デジタ
ル信号プロセッサコアと並列的に実行させて、結果を前
記ローカルメモリに記憶させる工程、および前記コプロ
セッサの前記ローカルメモリから外部へ前記結果を転送
する工程、を含む方法。
【0072】(11)第10項記載の方法であって、こ
こにおいて、前記ローカルメモリへデータを転送する前
記工程が、入力バッファとして機能する環状に構成され
たメモリエリアの次の場所へデータを記憶する工程を含
んでいる、方法。
【0073】(12)第10項記載の方法であって、こ
こにおいて、前記ローカルメモリへデータを記憶する前
記工程が、出力バッファとして機能する環状に構成され
たメモリエリアの次の場所へデータを記憶する工程を含
んでいる、方法。
【0074】(13)第12項記載の方法であって、更
に、前記ローカルメモリへ結果を記憶する前記工程と本
質的に並列的に行われる前記対応するデータ処理動作の
時間幅に対応するサイズを有する、環状に構成された履
歴バッファ内へ入力データを記憶する工程、を含む方
法。
【0075】(14)データ処理システムはデジタル信
号プロセッサコア(110)およびコプロセッサ(14
0)を含む。コプロセッサ(140)は前記デジタル信
号プロセッサコア(110)のアドレス空間内にローカ
ルメモリ(141、145、147)を有する。コプロ
セッサ(140)はデジタル信号プロセッサコア(11
0)からのコマンドに応答する。ダイレクトメモリアク
セス回路(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つのコプロセッサを含む実施例。
【図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 履歴バッファ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 カール イー.ルモンドス,ジュニア. アメリカ合衆国 テキサス州ガーランド, キャッスル ロック 3322 (72)発明者 チン − ユー フン アメリカ合衆国 テキサス州プラノ,ボー ルドウイン レーン 4633

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 単一の集積回路上へ作製されたデータ処
    理システムであって、 データバス、 アドレスバス、 前記データバスおよび前記アドレスバスへつながれたデ
    ジタル信号プロセッサコアであって、コプロセッサコマ
    ンドを生成するように動作可能なデジタル信号プロセッ
    サコア、および前記データバス、前記アドレスバス、お
    よび前記デジタル信号プロセッサコアへつながれたコプ
    ロセッサであって、前記デジタル信号プロセッサコアの
    アドレス空間内にローカルメモリを有し、前記デジタル
    信号プロセッサコアによって生成されるコマンドに応答
    して、前記ローカルメモリ中に記憶されているデータに
    対して予め定められたデータ処理を、前記デジタル信号
    プロセッサコアと並列的に実行するコプロセッサ、を含
    むデータ処理システム。
  2. 【請求項2】 データ処理の方法であって、 デジタル信号プロセッサコアのメモリマップ内にアドレ
    スを有するコプロセッサ内にローカルメモリを配置する
    工程、 前記ローカルメモリへデータを転送する工程、 前記コプロセッサへコマンドを送信して、それによって
    前記コプロセッサに、対応するデータ処理動作を前記デ
    ジタル信号プロセッサコアと並列的に実行させて、結果
    を前記ローカルメモリに記憶させる工程、および前記コ
    プロセッサの前記ローカルメモリから外部へ前記結果を
    転送する工程、を含む方法。
JP11027804A 1998-02-04 1999-02-04 データ処理システムおよびその方法 Pending JPH11272631A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US7366898P 1998-02-04 1998-02-04
US073668 1998-02-04

Publications (1)

Publication Number Publication Date
JPH11272631A true JPH11272631A (ja) 1999-10-08

Family

ID=22115061

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11027804A Pending JPH11272631A (ja) 1998-02-04 1999-02-04 データ処理システムおよびその方法

Country Status (5)

Country Link
US (1) US6256724B1 (ja)
EP (1) EP0945788B1 (ja)
JP (1) JPH11272631A (ja)
KR (1) KR100572945B1 (ja)
DE (1) DE69919059T2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007316940A (ja) * 2006-05-25 2007-12-06 Sony Computer Entertainment Inc マルチプロセッサシステム、ライブラリモジュール、および描画処理方法
JP2008071093A (ja) * 2006-09-13 2008-03-27 Fujitsu Ltd マルチプロセッサシステム
US7630388B2 (en) 2005-05-04 2009-12-08 Arm Limited Software defined FIFO memory for storing a set of data from a stream of source data
JP2009544224A (ja) * 2006-07-14 2009-12-10 インターデイジタル テクノロジー コーポレーション シンボルレートハードウェアアクセラレータ
US7920584B2 (en) 2005-05-04 2011-04-05 Arm Limited Data processing system
US7924858B2 (en) 2005-05-04 2011-04-12 Arm Limited Use of a data engine within a data processing apparatus
WO2013136857A1 (ja) * 2012-03-13 2013-09-19 日本電気株式会社 データ処理システム、半導体集積回路およびその制御方法
JP5949977B1 (ja) * 2015-02-19 2016-07-13 日本電気株式会社 情報処理装置、情報処理方法、メインプロセッサコア、プログラム、情報処理方法、サブプロセッサコア
JP2017224342A (ja) * 2012-09-27 2017-12-21 インテル・コーポレーション プロセッサ及び装置

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
DE19651075A1 (de) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
EP1329816B1 (de) 1996-12-27 2011-06-22 Richter, Thomas Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
US6339819B1 (en) * 1997-12-17 2002-01-15 Src Computers, Inc. Multiprocessor with each processor element accessing operands in loaded input buffer and forwarding results to FIFO output buffer
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
WO2000077652A2 (de) 1999-06-10 2000-12-21 Pact Informationstechnologie Gmbh Sequenz-partitionierung auf zellstrukturen
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
US6606700B1 (en) * 2000-02-26 2003-08-12 Qualcomm, Incorporated DSP with dual-mac processor and dual-mac coprocessor
AU2001266571A1 (en) * 2000-05-11 2001-11-20 Hanna, Michael Cryptographic data processing systems, computer program products, and methods of operating same, using parallel execution units
EP2226732A3 (de) 2000-06-13 2016-04-06 PACT XPP Technologies AG Cachehierarchie für einen Multicore-Prozessor
US7075565B1 (en) * 2000-06-14 2006-07-11 Landrex Technologies Co., Ltd. Optical inspection system
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
WO2005045692A2 (en) 2003-08-28 2005-05-19 Pact Xpp Technologies Ag Data processing device and method
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7152151B2 (en) * 2002-07-18 2006-12-19 Ge Fanuc Embedded Systems, Inc. Signal processing resource for selective series processing of data in transit on communications paths in multi-processor arrangements
US7657877B2 (en) 2001-06-20 2010-02-02 Pact Xpp Technologies Ag Method for processing data
DE10139610A1 (de) 2001-08-11 2003-03-06 Daimler Chrysler Ag Universelle Rechnerarchitektur
US7996827B2 (en) * 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US20030041300A1 (en) * 2001-08-23 2003-02-27 Koninklijke Philips Electronics N.V. Universal device for processing Reed-Solomon forward error-correction encoded messages
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US7577822B2 (en) * 2001-12-14 2009-08-18 Pact Xpp Technologies Ag Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization
US7234144B2 (en) * 2002-01-04 2007-06-19 Microsoft Corporation Methods and system for managing computational resources of a coprocessor in a computing system
AU2003208266A1 (en) 2002-01-19 2003-07-30 Pact Xpp Technologies Ag Reconfigurable processor
AU2003214003A1 (en) 2002-02-18 2003-09-09 Pact Xpp Technologies Ag Bus systems and method for reconfiguration
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
GB0215033D0 (en) * 2002-06-28 2002-08-07 Critical Blue Ltd Instruction set translation method
US7802108B1 (en) * 2002-07-18 2010-09-21 Nvidia Corporation Secure storage of program code for an embedded system
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
US7394284B2 (en) 2002-09-06 2008-07-01 Pact Xpp Technologies Ag Reconfigurable sequencer structure
EP1573515A2 (en) * 2002-10-31 2005-09-14 Lockheed Martin Corporation Pipeline accelerator and related system and method
US7418574B2 (en) 2002-10-31 2008-08-26 Lockheed Martin Corporation Configuring a portion of a pipeline accelerator to generate pipeline date without a program instruction
US8667252B2 (en) * 2002-11-21 2014-03-04 Stmicroelectronics, Inc. Method and apparatus to adapt the clock rate of a programmable coprocessor for optimal performance and power dissipation
JP2004355049A (ja) * 2003-05-26 2004-12-16 Sony Corp プロセッサシステム
US7130967B2 (en) * 2003-12-10 2006-10-31 International Business Machines Corporation Method and system for supplier-based memory speculation in a memory subsystem of a data processing system
US8892821B2 (en) * 2003-12-10 2014-11-18 International Business Machines Corporation Method and system for thread-based memory speculation in a memory subsystem of a data processing system
JP2005202767A (ja) * 2004-01-16 2005-07-28 Toshiba Corp プロセッサシステム、dma制御回路、dma制御方法、dmaコントローラの制御方法、画像処理方法および画像処理回路
US7619541B2 (en) 2004-10-01 2009-11-17 Lockheed Martin Corporation Remote sensor processing system and method
US7281118B2 (en) * 2005-08-05 2007-10-09 International Business Machines Corporation Sending thread message generated using DCR command pointed message control block storing message and response memory address in multiprocessor
WO2007082730A1 (de) 2006-01-18 2007-07-26 Pact Xpp Technologies Ag Hardwaredefinitionsverfahren
US7949801B2 (en) * 2007-01-31 2011-05-24 Pitney Bowes Inc. Main processor initiating command timing signal via DMA to coprocessor in order to synchronize execution of instructions
US8095735B2 (en) 2008-08-05 2012-01-10 Convey Computer Memory interleave for heterogeneous computing
US8156307B2 (en) * 2007-08-20 2012-04-10 Convey Computer Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set
US9710384B2 (en) 2008-01-04 2017-07-18 Micron Technology, Inc. Microprocessor architecture having alternative memory access paths
DE102009037158B4 (de) * 2009-08-04 2016-01-21 Lenze Automation Gmbh Steuervorrichtung zur Steuerung eines elektrischen Antriebs
KR101867336B1 (ko) * 2011-07-11 2018-06-15 삼성전자주식회사 다중 프로세서를 지원하는 인터럽트 발생을 위한 장치 및 방법
DE102013212842A1 (de) * 2013-07-02 2015-01-08 Robert Bosch Gmbh Verfahren zum Betreiben eines Steuergeräts sowie Steuergerät mit einer Modellberechnungseinheit
US9785444B2 (en) 2013-08-16 2017-10-10 Analog Devices Global Hardware accelerator configuration by a translation of configuration data
CN105824706B (zh) * 2015-12-31 2020-11-06 华为技术有限公司 一种配置加速器的方法和装置
US11704067B2 (en) 2021-08-02 2023-07-18 Nvidia Corporation Performing multiple point table lookups in a single cycle in a system on 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
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
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
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
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
US11954496B2 (en) 2021-08-02 2024-04-09 Nvidia Corporation Reduced memory write requirements in a system on a chip using automatic store predication
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

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01226066A (ja) * 1988-03-04 1989-09-08 Hitachi Ltd ディジタル信号処理プロセッサ
US5420989A (en) * 1991-06-12 1995-05-30 Cyrix Corporation Coprocessor interface supporting I/O or memory mapped communications
KR940011504B1 (ko) * 1991-12-07 1994-12-19 삼성전자주식회사 2채널 음장재생 장치 및 방법
KR940011049B1 (ko) * 1992-04-17 1994-11-22 주식회사 금성사 마스터/슬레이브 메모리 공유장치와 공유 제어방법
TW243568B (en) * 1993-11-16 1995-03-21 At & T Corp Digital signal processor with an embedded viterbi co-processor
US5784532A (en) * 1994-02-16 1998-07-21 Qualcomm Incorporated Application specific integrated circuit (ASIC) for performing rapid speech compression in a mobile telephone system
KR100362061B1 (ko) * 1996-04-25 2003-03-03 삼성탈레스 주식회사 로칼 버스 제어 장치
US5706013A (en) * 1996-08-09 1998-01-06 The United States Of America As Represented By The Secretary Of The Air Force Nonhomogeneity detection method and apparatus for improved adaptive signal processing
US5805536A (en) * 1996-11-07 1998-09-08 Eastman Kodak Company Method for bandwidth reduction in writeable optical data storage apparatus

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7630388B2 (en) 2005-05-04 2009-12-08 Arm Limited Software defined FIFO memory for storing a set of data from a stream of source data
US7920584B2 (en) 2005-05-04 2011-04-05 Arm Limited Data processing system
US7924858B2 (en) 2005-05-04 2011-04-12 Arm Limited Use of a data engine within a data processing apparatus
JP2007316940A (ja) * 2006-05-25 2007-12-06 Sony Computer Entertainment Inc マルチプロセッサシステム、ライブラリモジュール、および描画処理方法
WO2007138735A1 (ja) * 2006-05-25 2007-12-06 Sony Computer Entertainment Inc. マルチプロセッサシステム、ライブラリモジュール、および描画処理方法
JP2009544224A (ja) * 2006-07-14 2009-12-10 インターデイジタル テクノロジー コーポレーション シンボルレートハードウェアアクセラレータ
JP2008071093A (ja) * 2006-09-13 2008-03-27 Fujitsu Ltd マルチプロセッサシステム
JPWO2013136857A1 (ja) * 2012-03-13 2015-08-03 日本電気株式会社 データ処理システム、半導体集積回路およびその制御方法
WO2013136857A1 (ja) * 2012-03-13 2013-09-19 日本電気株式会社 データ処理システム、半導体集積回路およびその制御方法
JP2017224342A (ja) * 2012-09-27 2017-12-21 インテル・コーポレーション プロセッサ及び装置
US10901748B2 (en) 2012-09-27 2021-01-26 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
US10963263B2 (en) 2012-09-27 2021-03-30 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
US11494194B2 (en) 2012-09-27 2022-11-08 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
JP5949977B1 (ja) * 2015-02-19 2016-07-13 日本電気株式会社 情報処理装置、情報処理方法、メインプロセッサコア、プログラム、情報処理方法、サブプロセッサコア
WO2016132416A1 (ja) * 2015-02-19 2016-08-25 日本電気株式会社 情報処理装置、情報処理方法、メインプロセッサコア、プログラム、情報処理方法、サブプロセッサコア
US10565135B2 (en) 2015-02-19 2020-02-18 Nec Corporation Information processing device, information processing method, main processor core, program, information processing method, and sub processor core

Also Published As

Publication number Publication date
EP0945788B1 (en) 2004-08-04
US6256724B1 (en) 2001-07-03
DE69919059D1 (de) 2004-09-09
KR100572945B1 (ko) 2006-04-24
EP0945788A2 (en) 1999-09-29
DE69919059T2 (de) 2005-01-27
EP0945788A3 (en) 2002-06-26
KR19990072400A (ko) 1999-09-27

Similar Documents

Publication Publication Date Title
JPH11272631A (ja) データ処理システムおよびその方法
JPH11296493A (ja) デ―タ処理システム用再構成可能コプロセッサ
JP3983857B2 (ja) ベクトルレジスタの複数バンクを用いた単一命令複数データ処理
JP3785218B2 (ja) コンピュータシステム
KR100267091B1 (ko) 비대칭싱글-칩이중멀티프로세서의정합및동기화
US4507728A (en) Data processing system for parallel processing of different instructions
TWI234738B (en) Re-configurable streaming vector processor
KR19980069869A (ko) 벡터 프로세서용 로드 및 저장 유니트
JPH11154114A (ja) 複数データ・フェッチのアーキテクチャを使ってテーブル・ルックアップを実行するためのシステムおよび方法
US6029242A (en) Data processing system using a shared register bank and a plurality of processors
US10303399B2 (en) Data processing apparatus and method for controlling vector memory accesses
US11816485B2 (en) Nested loop control
JP2005527035A (ja) 幅の広いメモリへのアクセス
WO2000076119A1 (en) Cryptographic processing system
US20060015701A1 (en) Arithmetic node including general digital signal processing functions for an adaptive computing machine
CN111183418B (zh) 可配置硬件加速器
US20060265571A1 (en) Processor with different types of control units for jointly used resources
US6327648B1 (en) Multiprocessor system for digital signal processing
US11782760B2 (en) Time-multiplexed use of reconfigurable hardware
EP1220091A2 (en) Circuit and method for instruction compression and dispersal in VLIW processors
JP2008090455A (ja) マルチプロセッサ信号処理装置
EP3559803B1 (en) Vector generating instruction
JPH10143494A (ja) スカラ/ベクトル演算の組み合わせられた単一命令複数データ処理
KR19980018071A (ko) 멀티미디어 신호 프로세서의 단일 명령 다중 데이터 처리
EP0935189B1 (en) Reconfigurable co-processor with multiple multiply-accumulate units

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: 20070629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070731

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071031

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071105

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071130

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071227

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080129