JP2008181535A - ディジタル信号処理装置 - Google Patents
ディジタル信号処理装置 Download PDFInfo
- Publication number
- JP2008181535A JP2008181535A JP2008033236A JP2008033236A JP2008181535A JP 2008181535 A JP2008181535 A JP 2008181535A JP 2008033236 A JP2008033236 A JP 2008033236A JP 2008033236 A JP2008033236 A JP 2008033236A JP 2008181535 A JP2008181535 A JP 2008181535A
- Authority
- JP
- Japan
- Prior art keywords
- functional units
- control unit
- control
- digital signal
- functional
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 51
- 238000004891 communication Methods 0.000 claims abstract description 9
- 238000000034 method Methods 0.000 claims description 39
- 230000006870 function Effects 0.000 claims description 10
- 239000000872 buffer Substances 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 239000012086 standard solution Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
Abstract
【課題】複数の動作を行うディジタル信号処理装置を提供する。
【解決手段】本装置は各々が動作を行う複数の機能ユニット10と機能ユニット10を制御する制御手段とを有する。制御手段は、複数の制御ユニット12を有し、制御ユニット12は各々その機能を制御するよういずれかの機能ユニット10と動作可能なように結合されており、各機能ユニット10は、その結合された制御ユニット12の制御の下、自律的に動作を実行させられる。また付加的又は代替的に、機能ユニット10同士のデータフロー通信をサポートするよう構成されるFIFO(先入れ/先出し)レジスタ手段14が設けられる。
【選択図】 図5
【解決手段】本装置は各々が動作を行う複数の機能ユニット10と機能ユニット10を制御する制御手段とを有する。制御手段は、複数の制御ユニット12を有し、制御ユニット12は各々その機能を制御するよういずれかの機能ユニット10と動作可能なように結合されており、各機能ユニット10は、その結合された制御ユニット12の制御の下、自律的に動作を実行させられる。また付加的又は代替的に、機能ユニット10同士のデータフロー通信をサポートするよう構成されるFIFO(先入れ/先出し)レジスタ手段14が設けられる。
【選択図】 図5
Description
本発明は、複数の動作を実行するディジタル信号処理装置であって、それぞれ動作を実行するよう適応させられる複数の機能ユニットと、前記機能ユニットを制御する制御手段とを有する処理装置に関する。また、本発明は、各々が動作を行うよう構成される複数の機能ユニットを有するディジタル信号処理装置においてディジタル信号を処理する方法に関する。
かかる装置及び方法は、ディジタル信号処理器(DSP)において実現されるのが普通である。その性能を向上させるため、ディジタル信号処理器は、小ループにて通常動作する幾つかの処理ユニットを含んでいる。2つの典型的な方策があり、
(1)複数の機能ユニットと中央制御部とを有するVLIWプロセッサの具備
(2)固定の機能を各々が自律的に行う共有プロセッサを備えた中央プロセッサの具備
である。
(1)複数の機能ユニットと中央制御部とを有するVLIWプロセッサの具備
(2)固定の機能を各々が自律的に行う共有プロセッサを備えた中央プロセッサの具備
である。
欧州特許出願公開公報EP 0 403 729Aは、命令メモリ、データメモリ又は係数メモリの少なくとも1つに関連付けられた2つ以上のアドレスレジスタと、演算ブロックに関連付けられた2つ以上のデータレジスタとを含むディジタル信号処理装置を開示している。これら2つ以上のレジスタは、当該演算ブロックにより並行に処理されている異なるジョブ間で反復した切り換えが行われ、高速処理又は低速処理に適したジョブのような異なる処理速度で処理され得るジョブの単一チップにおいて効率的な処理を可能としている。
Los Alamitos, CA, USAにおいて2000年に発表された会議論文"Proceedings Sixth International Symposium on Advanced Research in Asynchronous Circuits and Systems (ASYNC 2000)"の176頁から186頁には、Brackenbuty氏がGSM(ディジタル式小型携帯移動電話機)チップセットの対象アプリケーションのために設けられるべき低電力非同期ディジタル信号処理器のためのアーキテクチャを説明している。このアーキテクチャの肝要な部分は、予め取り込まれる命令の記憶を行うこととハードウェアのループ形成を行うことの双方をなす命令バッファである。これは、短い待ち時間と相当に高速なサイクルタイムとを必要とするが、他にも低電力化された構成とすることが必要である。この文献の中では、ワードスライス型FIFO(先入れ/先出し方式)体系に基づいた構成が提供されている。これにより、線形なマイクロパイプラインFIFOに関係する消費電力及び入力待ち時間の問題は回避され、かかる体系は、必要なルーピング動作に簡単に反作用的に適したものとなる。この構成の待ち時間、サイクルタイム及び電力消費は、単純なマイクロパイプラインFIFOのものと比較される。当該命令バッファのサイクルタイムは、そのマイクロパイプラインFIFOよりも約3倍低速なものである。しかしながら、かかる命令バッファは、動作当たりのエネルギーが(かなり能力の低い)マイクロパイプライン構造のものの48%から62%の間を呈している。空(エンプティ)のFIFOに伴う入力から出力の待ち時間は、マイクロパイプライン構成よりも10分の1短い。
米国特許公報第5,655,090A号は、システム環境に対し非同期かつ独立して動作する入出力FIFOを備えた外部制御ディジタル信号処理器を開示している。ディジタル信号処理機能をなす手段は、当該システムプロセッサとは独立して機能し、ハードウェアFIFOの如く振る舞う。このシステムのアーキテクチャは、第1のFIFOバッファのデータ出力と第2のFIFOバッファのデータ入力との間に接続されるディジタル信号処理手段と、当該第1FIFOバッファ及び第2FIFOバッファにおけるデータの存否と制御信号源から受信した制御信号との関数として当該ディジタル信号処理手段を制御する制御手段とを有する。データ処理は、当該システム環境に対し非同期かつ独立して行われ、次のようなステップを有する。すなわち第1FIFOバッファのデータ入力部のデータを受信するステップと、そのデータをディジタル信号処理器に伝送するステップと、そのデータを処理するステップと、その後に当該データレシーバがそのデータを受け取る準備ができたときに出力されるよう当該第2FIFOバッファにその処理されたデータを伝送するステップである。
公報第5,515,329A号においては、内部にディジタル信号処理器と、関連付けられるダイナミックランダムアクセスメモリとを含むことによりデータ処理機能を呈するメモリシステムが示されている。このディジタル信号処理器は、急速になされる主要なデータ処理をなす一方、当該ダイナミックランダムアクセスメモリアレイは、付加的なバッファリング機能を担う。入力及び出力FIFOは、ディジタル信号処理器のデータ及びアドレスバスに接続される。このディジタル信号処理器の制御は、シリアル通信リンクによりホストプロセッサを介してディジタル信号処理器に接続される。
米国特許公報第5,845,093A号には、集積回路におけるディジタル信号処理器が開示されており、かかる処理器は、取込ポートと呼ばれる4つのポート、2つのデータポート及び係数ポートによって特徴付けられるマルチポートデータフロー構造を用いている。4つのポート全部を双方向性のものとすることができ、これにより当該DSPシステムによるそれぞれのポートに対してのデータの読み出し及び書き込みをなすことができる。このアーキテクチャは、データをその取込ポート又は当該データポートのいずれか1つを通じてプロセッサに入れるようにしたデータフロー管理方法を可能とするものである。当該データが処理されると、データポート間で又はデータポートと取込ポートとの間でピンポン伝送可能となる。DSPアルゴリズムの終わりには、その出力データが当該特定のアプリケーションの必要性に応じてその取込ポート又はデータポートを通じて供給される。係数ポートは大抵、DSPアルゴリズム用の回転因子又は係数を提供するのに用いられる。各データポートは、専用の独立したデータメモリに設けられる。これは、マルチパスアルゴリズムの最適化に備えるものである。
サン社は、同時に実行する複数のスレッドを可能とする「MAJC」と称されるマルチスレッドプロセッサを開発した。このプロセッサでは、各機能ユニットが1つ以上のスレッドに対する命令を受け取り、それらを順次実行する。これら機能ユニットは、単一の制御(手段)によって、同時に同じスレッドに対する命令を実行するよう強制される。スレッドは連続して交互に実行されるので、自律的なタスクは存在しない。但し、MAJCプロセッサは上述した意義の処理ではなく、ネットワーク処理を行うよう構成されている。
図1は、ワイドクラスのDSPアルゴリズム(例えばFIRフィルタリング)をよく表すベクトル積を計算するディジタル信号プロセッサ(DSP)ループの簡単な例を示している。図1aは、包括的なDSPコアの包括的アセンブリコードにコンパイル可能なオリジナルのCコードを示しており、図1bには、アセンブリコードが示されている。
図2aには、標準のDSPコアがブロック図として示されている。前述したコードを実行する極めて簡単な標準のDSPコアは、1度に1つ命令を読みこれをパイプライン式に実行するシーケンシャルマシン(スカラープロセッサと呼ぶこともある)である。命令のフローは、単一の制御ポイントたる取込ユニット2(図2a参照)によって定められる。かかるユニットは、どの命令をメモリ6から取り込み処理部4に実行のために発生するかを決定するものである。
現代のDSPコアは、1度に複数の命令を実行することによって、このような順次動作の形態から外れようとしている。このことは、幾つかの順次の命令はリソースを共有せず、またデータ交換もしない(すなわち独立している)ので可能である。こうしたアプローチの中で好評なのは、非常に大きな命令ワード(VLIW:very large instruction word)アーキテクチャに基づいている。この場合、そうした命令は、バンドル(束)にグループ化される。各バンドルは1度にメモリから取り込まれ、同じバンドルの命令は同期して実行、すなわち同時に発生され、解読されかつ実行される。図2bには、VLIW−DSPコアのブロック図の例が示されている。この図2bからは、取込ユニット2が図2aの簡単なDSPコアにおけるものと同じ態様で命令フローを受け持つ制御ポイントを呈することが分かる。
VLIW−DSPについて図1に示される演算のベクトル積は、図3に示されるコードのようなものとなる。バンドルはカンマで分離された命令によって構成されるとともに、バンドルとバンドルはセミコロンで分離される。バンドルの数が元のコードにおける命令の数よりも少なくても(図1bと図3とを対比)、基本命令の数は増大したものとなっている。実際、当該バンドルを満たすよう独立した命令を見つけることは、常に可能である訳ではなく、したがっていわゆる「ノーオペレーション(no-operation)」(nop)命令が必要である。
本発明の目的は、性能をさらに向上させることであり、特に、VLIWプロセッサの汎用性と共通プロセッサを設けることによって得られる粗い並行処理とを組み合わせたディジタル信号処理装置及び方法を得ることである。
上記目的及びその他の目的を達成するため、本発明の第1の態様においては、複数の動作を同時に実行するディジタル信号処理装置であって、それぞれ動作を実行するよう適応させられる複数の機能ユニットと、前記機能ユニットを制御する制御手段と、を有し、前記制御手段は、いずれかの機能ユニットに動作可能に関連付けられてその機能を制御するようにした少なくとも1つの制御ユニットを含む複数の制御ユニットを有し、当該各機能ユニットは、これに関連付けられた制御ユニットによる制御の下で自律的な態様で動作を実行するよう適応させられる、処理装置が提供される。本発明の第2の態様においては、それぞれ動作を実行するよう適応させられる複数の機能ユニットを有するディジタル信号処理装置においてディジタル信号を処理する方法であって、前記機能ユニットは、それぞれ複数の制御ユニットにより制御され、少なくとも1つの制御ユニットは、いずれかの機能ユニットに動作可能に関連付けられて、各機能ユニットが、これに関連付けられた制御ユニットによる制御の下で自律的な態様で動作を実行することが可能となるようにした、方法も提供される。
したがって、各機能ユニットは、1つの専用の制御ユニットを有する。換言すれば、各機能ユニットには、「プライベート」制御手段が設けられ、各機能ユニットにその機能を制御するそれ自身の専用モジュールを与えるようにしている。かかる機能ユニットは、(典型的なプロセッサにおけるが如き)通常の命令か又はいわゆるプロセス又はタスクを自律的に実行させる特別な命令(いわゆる指令)かのどちらかを実行することができる。ここで、プロセス又はタスクは、指定された回数だけ所定の動作(その通常の命令のうち1つ以上)を実行することを意味する。
上記目的及びその他の目的を達成するため、本発明の第3の態様においては、複数の動作を実行するディジタル信号処理装置であって、それぞれ動作を実行するよう適応させられる複数の機能ユニットと、前記機能ユニットを制御する制御手段と、を有し、前記機能ユニット間のデータフロー通信をサポートするよう適応させられる先入れ/先出しFIFOレジスタ手段を有する、処理装置が提供される。本発明の第4の態様においては、それぞれ動作を実行するよう適応させられる複数の機能ユニットを有するディジタル信号処理装置においてディジタル信号を処理する方法であって、前記機能ユニット間のデータフロー通信は、先入れ/先出しFIFOレジスタ手段によってサポートされる、方法も提供される。
本発明の上記第1及び第3の態様の双方並びに上記第2及び第4の態様の双方をそれぞれ互いに組み合わせ、機能ユニットごとの局部的(ローカル)制御ユニットによる分散(型)制御の他に、FIFOによるデータフローサポートをも有するディジタル信号処理装置及びディジタル信号処理方法を提供するようにすることも可能であることは勿論である。
典型的なVLIWプロセッサと比較すると、本発明の利点は、当該機能ユニットをビジー(使用中状態)に保つことを容易にするタスクレベル並列処理による高いスケーラビリティ及び高い性能である。さらに、プログラムメモリのアクセスは少なくて済み、小電力及びメモリ帯域幅(メモリがサポートする単位時間当たりの最大アクセス数)をもたらす。
フィリップス社の「R.E.A.L」ディジタル信号プロセッサのような他の現行ディジタル信号プロセッサと比較すると、本発明は、当該命令セットが規則的でかつカスタマイズ可能なVLIWすなわち上述したプロセッサのためのASICが不必要であるのでコンパイルするのが簡単になる、という利点を有する。
かくして、本発明はVLIWプロセッサの汎用性と共通プロセッサにより提供される粗い並列処理とを組み合わせた解決策を提供するものである。
本発明によれば、独立して、並行(パラレル)に、同期して及び/又は同時に動作を実行することができる。さらに、本発明により、当該アーキテクチャの非同期式の実施例、当該アーキテクチャの同期式の実施例又はこれらの混合形式の実施例がオプションとして可能である。
本発明によってFIFOを設ける例では、そうしたFIFOは構成可能である。通常、ディジタルプロセッサ装置は、レジスタファイルを有し、かかるレジスタファイルがFIFOレジスタ手段により拡張可能で当該FIFOレジスタ手段が分離/独立したアドレスを持つことができ又は当該レジスタファイルの一部となり得るものである。故に、この典型的レジスタに加えてFIFOレジスタ手段を設けることができるのである。普通、FIFOレジスタ手段は、複数のFIFOレジスタを有する。したがって、かかるレジスタファイルは、機能ユニット中のデータフロー通信をサポートする多数のFIFOにより拡張され得るのである。なお、ここで注記するに、レジスタとFIFOとの違いは、FIFOが送信側及び受信側を「同期」(synchronize)させる手段を有している点である。
複数の段階(ステージ)からなるパイプラインを設け、各段階は機能ユニットにより実行されるようにするのが好ましい。特に、FIFOを介してサブタスクを結合させることによって、ソフトウェアレベルでパイプラインを形成することができる。
機能ユニット間のFIFOは、斯く様にして形成されたパイプラインを通じたデータフローだけでなく、制御フローにも用いられる。これがどのようにして利用され得るかの例は、機能ユニットのパイプラインにおいてどの時期に各ユニットが同一数の動作を行わなければならないかということである。この数を知る必要があるのはパイプラインのヘッドだけであり、これはデータによるものとすることができる。その他の機能ユニットは、例えばFIFOにおけるデータに付加されるエキストラビットを検査することによって当該データ終端部(エンドオブデータ)について知りうることになる。もう1つの例は、ある機能ユニットにおいて反復数が未知のものである場合であり、例えばサンプルが加えられ又は時として使い捨てられる必要がある場合である。
なお、VLIWプロセッサにおけるパイプラインをセットアップするための前処理(prologue)及び後処理(epilogue)は、FIFOの同期化より本来的に得られるので不必要である。例を挙げて説明すると、例えばそれぞれF1,F2及びF3として示される機能ユニットにより各々実行される3つの段階からなるパイプラインを実行するのにVLIWプロセッサを用いることが考えられる。例えば、F1はメモリから値を読み出しそれらをF2に送る。F2は計算をしその結果をF3に転送する。F3は当該結果をメモリに戻し書き込む。本例における3つの機能ユニット全ては、1つのVLIW命令によって同時制御されるそれらの機能をフルスピードで行う。但し、当該ループが開始される前においては、当該ループを初期化するための2つの命令があり、その最初の命令はF1に対する命令であり、これに後続する命令はF1及びF2に対する命令(いわゆる前処理(prologue))である。当該ループの後には、F2及びF3に対する最初の命令とF3に対する最後の命令(いわゆる後処理(epilogue))とを実行することにより当該パイプラインを空(エンプティ)にしなければならない、という同様の状況になる。既に上述したように、本発明のアーキテクチャにおいては、このような前処理及び後処理が不必要である。むしろ本発明のアーキテクチャは、パイプラインにて命令レベル並列処理(当該パイプラインにおけるサブタスクは命令レベルにおいて伝達)も、タスクレベル並列処理(幾つかのパイプラインは、メインスレッドと同時にかつ互いに同時にアクティブとなることが可能)もサポートするものである。
本発明のさらに他の好ましい実施例においては、制御ユニット毎に命令レジスタ及びカウンタが設けられる。ここで当該カウンタは、命令レジスタに記憶される命令は該当の機能ユニットにより何回実行されなければならないかを示す。かかる命令レジスタは、1つの動作(オペレーション)又は複数の動作(オペレーション)からなるシーケンスを保持し、当該カウンタは、何回その動作をなおも実行しなければならないかを示す。さらに、制御ユニットは、大抵、アドレスレジスタも含むことができる。カウンタは、別個の(又は分離した)デバイスとして又は関連(結合)付けられた制御ユニットの一部として実現可能である。但し、別の構成も可能である。例えば、XORを基礎とする動作(ガロア体(Galois Field)表現を使用)もあり、また、限界に達するまでカウントアップすることも同じく有望である。
本発明のまたさらに別の好ましい実施例においては、プログラムメモリ手段が主プログラムを記憶するために設けられるが、その主プログラムは、制御ユニットを指示するための指令ないしは指示語を含んでいる。本発明によれば、機能ユニットは、既にこれまで指摘したように、それら自身の制御ロジックを有し、その主プログラムは、この制御ロジックを指示する指令ないしは指示語(いわば「n回この動作を実行」といったようなもの)を含む。したがって、通常は、この主プログラムのプログラムカウンタを含む中央制御部が設けられる。この中央制御部は、マスタ制御ユニットと呼ばれるのに対し、機能ユニットの制御ユニットは、スレーブ制御ユニットと呼ばれる。このマスタ制御ユニットは、当該命令を取り込み、これに応じてそのスレーブ制御ユニットを指示する。中央又はマスタ制御ユニットがパイプラインを設定すると、処理を進め他のパイプラインを開始させることができる。このような並列処理は、タスクレベル並列処理と呼ばれる。故に、本発明による機能ユニットの分散制御は、命令レベル並列処理をサポートするのに対し、当該中央制御は、タスクレベル並列処理(階層的制御構造)を扱うことができる。
なお、局部制御ユニットにおける局部メモリに記憶されるような命令の符号化については、当該符号化が当該中央制御により観察されるような主命令ストリームにおける命令の符号化とは(別個)独立して選定可能である。例えば、局部制御ユニットのオプションを符号化するのに必要なビットは局部制御ユニットについて用意されたものよりも少ないので「狭い」符号化が選定可能である。したがって、所定の局部制御ユニットの基本的動作のみをプロセスが用いる場合、当該局部的制御ユニット自体が、その指令そのものから与えられるものに比し当該プロセスにおいて比較的短いバージョンの命令だけを記憶する。もう1つのオプションとしては、当該中央制御(部)により多くのビットを潜在的に含みうる部分的に符号化された命令を局部制御ユニットに送らせることである。
以下、本発明の上述した内容及びその他の目的及び特徴を、添付図面を参照しつつ好ましい実施例を挙げて詳しく説明する。
図3にあるコードは、各機能ユニットがそこで与えられたコードのサブセットについてのみ実際に動作することを示している。このループの本体が分離されると、3つのタスク又はプロセスが実際上認識され得る。かかるタスク又はプロセスは、それぞれ3つの機能ユニットによって実行される。これらは、プロセス(process)A,B及びC(図4参照)と称される。さらに、各プロセスは、当該DSPコアの同じ機能ユニットによって常に実行されることを前提としている。
図5に示されるのは、図2bのDSPコアと同類のDSPコアであるが、これと相違するのは、各機能ユニット(図5において実行部10と名付けられている)にある所定回数所定の処理を実行することのできるプライベート制御ロジック(図5においてローカルコントロール12と名付けられている)が設けられている点である。各局部制御部12は、1つの動作(オペレーション)又は複数動作(オペレーション)のシーケンスを保持する命令レジスタ又はメモリと、何回その動作がまだ実行されなければならないかを示すカウンタと、アドレスレジスタ(これは必要に応じて)とを含む。なお、局部制御(ローカルコントロール)の構造ないし形態は、図5には示されていない。各機能ユニット又は実行部10に結合されるプライベート制御ロジック又は局部制御部12に加えて、取込ユニット2には中央制御ロジック(図5においてグローバルコントロールと名付けられている)が設けられる。図2に示される標準又は現世代のVLIW−DSPコアの取込ユニット2は、専用の制御手段としての中央制御ロジックを概に含んでいる。かかる制御ロジックは、こうして標準又は現代のVLIW−DSPコア(図2)の場合と同様に中央に集中化するのが普通である。すなわち、1つの命令は1度に取り込まれ、その後に1つの機能ユニット又は実行部に発せられる。但し、図5に示されるDSPコアにおいては、ループが初期化されると、各実行部10の局部制御部12に制御が送られる。
局部制御の他にも、プロセスを規定するサポートが含まれていなければならない。簡単な命令は、簡単かつ小規模な形でプロセスを、それが例えばロード、ストア及び乗算(図6参照)の如き簡単なオペレーションだけを含む限りにおいて規定するのに設けられる。プロセスは、当該ループが初期化される前に常に規定される。但し、当該プロセスのうちの1つ(例えば図4のC)がそのループそのものによって定義される場合もある。プロセスが終了するときは取込ユニットに制御が送られる。この方策によって、当該ループ本体における命令数が減り、概して外部の命令メモリへのアクセスが減り、時として当該ループを唯1回その命令メモリにアクセスする反復ステートメントに変換することになる。これによって、コードディメンションについて特段の作用を伴うことなく消費電力の低減及び高速動作が導かれる。また、当該局部制御は、このようにレジスタの負担を軽減する(プログラマから隠れた)局部レジスタによって当該ループに用いられるインデックスを取り扱う。例えば、図6では、レジスタ$r1は当該プロセスを規定するのには実際上使われないが、その代わりそのインクリメント+1は規定される。
但し、局部制御(ローカルコントロール)を採用すると、同じバンドルのVLIW−DSPコア(図7a参照)における命令どうしの同期に対応した時間的に特定の順序で命令を実行することが必要となる。したがって、全ての機能ユニット又は実行部は、各ループに含まれる。このような制約を緩和するため、データへの同期は遅延させられる。新しいデータを持っているプロセスにおける命令は、ストール(機能停止)させられるだけである。そのようなデータ同期を簡単に含ませるために、局部制御の供給に付加されるのは、レジスタの形態で用いられる先入れ/先出し(FIFO)キュー(図3及び図6の例における標準的レジスタについての$rに代えて図7の例においては$fと表される)である。FIFOレジスタの命令書込動作はFIFOがフルである場合にのみストールされる一方、FIFOレジスタの命令読出動作はデータ取得可能でない場合にのみストールされる。この態様において、図7bに示されるように、当該FIFOを通じて命令がデータを交換し、このプロセスにおいては、追加の「nop」命令は要らなくなる。同期データによって、スーパースカラープロセッサの様式で順序を崩して処理を実行することができる。
図8は、オリジナルの標準DSPコア(a)及び局部制御及びFIFOレジスタを用いたDSPコア(b)におけるベクトル積ループを実現するための想定されるコードを示している。図8aによれば、各命令は32ビットに符号化されうる。但し図8bによると「define_process」命令は3命令処理を規定している。この命令自体は32ビットであり、局部制御部12(図5参照)は、図8aにより必要となる96ビットに代えて、その18ビットの情報だけをストアする。アドレス♯bを保持するレジスタは、そのタグの中に情報{$f3,Read,first_instruction}等をストアする。勿論、当該タグのサイズは、この情報がどのように符号化され合成されているかによる。
図9は、図5のものと同じ構成を有するDSPコアを示しているが、FIFOレジスタ14が追加で設けられている。
図8より明らかになるように、図3及び図4と比較すると、最終的なコードはオリジナルのものよりも短く、処理Bを反復本体(repeat body)と定義する反復のものとそのループステートメントを置き換えている。データ及び局部制御についての双方の同期化のため、プロセスに拘束されない全ての機能ユニット又は実行部(この場合、プロセスが完了しているか又は(プロセスCとして)用いられない)は、当該取込ユニットに制御を送り、それから当該ループ自体と並行してそのループに後続したそれら命令を実行することができる。これは、実際上計算に係わりのないユニットはタイミングの制約を重んずるために「nop」動作を実行したり又はストールさせられたりする標準のソリューション(例えば典型的なVLIW−DSP)においては不可能である。
Claims (15)
- 複数の動作を実行するディジタル信号処理装置であって、
それぞれ動作を実行するよう適応させられる複数の機能ユニットと、
前記機能ユニットを制御する制御手段と、
を有し、
前記制御手段は、いずれかの機能ユニットに動作可能に関連付けられてその機能を制御するようにした少なくとも1つの制御ユニットを含む複数の制御ユニットを有し、当該各機能ユニットは、これに関連付けられた制御ユニットによる制御の下で自律的な態様で動作を実行するよう適応させられる、
処理装置。 - 請求項1に記載の処理装置であって、前記機能ユニット間のデータフロー通信をサポートするよう適応させられる先入れ/先出しFIFOレジスタ手段を有することを特徴とする装置。
- 複数の動作を実行するディジタル信号処理装置であって、
それぞれ動作を実行するよう適応させられる複数の機能ユニットと、
前記機能ユニットを制御する制御手段と、
を有し、
前記機能ユニット間のデータフロー通信をサポートするよう適応させられる先入れ/先出しFIFOレジスタ手段を有する、
処理装置。 - 請求項2又は3に記載の装置であって、レジスタファイルを有し、前記レジスタファイルは、前記FIFOレジスタ手段により拡張される、ことを特徴とする装置。
- 請求項2ないし4のうちいずれか1つに記載の装置であって、前記FIFOレジスタ手段は、複数のFIFOレジスタを有する、ことを特徴とする装置。
- 請求項1ないし5のうちいずれか1つに記載の装置であって、前記機能ユニットの各々は、少なくとも1つの制御ユニットを具備する、ことを特徴とする装置。
- 請求項1ないし6のうちいずれか1つに記載の装置であって、複数の段階により構成されるパイプラインを実行するよう適応させられ、当該段階の各々は、機能ユニットにより実行される、装置。
- 請求項1ないし7のうちいずれか1つに記載の装置であって、各制御ユニットに対し命令レジスタ及びカウンタが設けられ、前記カウンタは、前記命令レジスタに記憶される命令が、対応する機能ユニットによって何回実行されなければならないかを示す、ことを特徴とする装置。
- 請求項1ないし8のうちいずれか1つに記載の装置であって、主プログラムを記憶するプログラムメモリ手段をさらに有し、前記主プログラムは、前記制御ユニットを指示する指令を含む、ことを特徴とする装置。
- それぞれ動作を実行するよう適応させられる複数の機能ユニットを有するディジタル信号処理装置においてディジタル信号を処理する方法であって、
前記機能ユニットは、それぞれ複数の制御ユニットにより制御され、少なくとも1つの制御ユニットは、いずれかの機能ユニットに動作可能に関連付けられて、各機能ユニットが、これに関連付けられた制御ユニットによる制御の下で自律的な態様で動作を実行することが可能となるようにした、方法。 - 請求項9に記載の方法であって、前記機能ユニット間のデータフロー通信は、先入れ/先出しFIFOレジスタ手段によってサポートされる、ことを特徴とする方法。
- それぞれ動作を実行するよう適応させられる複数の機能ユニットを有するディジタル信号処理装置においてディジタル信号を処理する方法であって、前記機能ユニット間のデータフロー通信は、先入れ/先出しFIFOレジスタ手段によってサポートされる、方法。
- 請求項11又は12に記載の方法であって、複数の段階からなるパイプラインが設けられ、各段階が機能ユニットにより実行される、方法。
- 請求項10ないし13のうちいずれか1つに記載の方法であって、記憶された命令が機能ユニットによって実行されなければならない回数が、対応する制御ユニットにより計数される、ことを特徴とする方法。
- 請求項9ないし14のうちいずれか1つに記載の方法であって、主プログラムは、プログラムメモリ手段に記憶され、前記主プログラムは、前記制御ユニットを命令する指令を含む、ことを特徴とする方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP00310905 | 2000-12-07 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002548578A Division JP2004515856A (ja) | 2000-12-07 | 2001-11-22 | ディジタル信号処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008181535A true JP2008181535A (ja) | 2008-08-07 |
Family
ID=8173433
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002548578A Pending JP2004515856A (ja) | 2000-12-07 | 2001-11-22 | ディジタル信号処理装置 |
JP2008033236A Pending JP2008181535A (ja) | 2000-12-07 | 2008-02-14 | ディジタル信号処理装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002548578A Pending JP2004515856A (ja) | 2000-12-07 | 2001-11-22 | ディジタル信号処理装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20020083306A1 (ja) |
EP (1) | EP1346279A1 (ja) |
JP (2) | JP2004515856A (ja) |
CN (1) | CN1255721C (ja) |
WO (1) | WO2002046917A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2013080289A1 (ja) * | 2011-11-28 | 2015-04-27 | 富士通株式会社 | 信号処理装置及び信号処理方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8161461B2 (en) * | 2005-03-24 | 2012-04-17 | Hewlett-Packard Development Company, L.P. | Systems and methods for evaluating code usage |
US7782991B2 (en) * | 2007-01-09 | 2010-08-24 | Freescale Semiconductor, Inc. | Fractionally related multirate signal processor and method |
US9804995B2 (en) * | 2011-01-14 | 2017-10-31 | Qualcomm Incorporated | Computational resource pipelining in general purpose graphics processing unit |
JP6292324B2 (ja) * | 2017-01-05 | 2018-03-14 | 富士通株式会社 | 演算処理装置 |
US20210311779A1 (en) * | 2018-12-27 | 2021-10-07 | Mitsubishi Electric Corporation | Data processing device, data processing system, data processing method, and program |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01124028A (ja) * | 1987-10-30 | 1989-05-16 | Internatl Business Mach Corp <Ibm> | コンピユータ・システム |
JPH11203137A (ja) * | 1998-01-07 | 1999-07-30 | Sharp Corp | プログラム制御方法及びプログラム制御装置 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6057090B2 (ja) * | 1980-09-19 | 1985-12-13 | 株式会社日立製作所 | データ記憶装置およびそれを用いた処理装置 |
JPH0535507A (ja) * | 1991-07-26 | 1993-02-12 | Nippon Telegr & Teleph Corp <Ntt> | 中央処理装置 |
JPH0683578A (ja) | 1992-03-13 | 1994-03-25 | Internatl Business Mach Corp <Ibm> | 処理システム、及びデータスループット制御方法 |
US5845093A (en) * | 1992-05-01 | 1998-12-01 | Sharp Microelectronics Technology, Inc. | Multi-port digital signal processor |
US5665090A (en) * | 1992-09-09 | 1997-09-09 | Dupuy Inc. | Bone cutting apparatus and method |
JPH07110769A (ja) * | 1993-10-13 | 1995-04-25 | Oki Electric Ind Co Ltd | Vliw型計算機 |
US5632023A (en) * | 1994-06-01 | 1997-05-20 | Advanced Micro Devices, Inc. | Superscalar microprocessor including flag operand renaming and forwarding apparatus |
US5515329A (en) * | 1994-11-04 | 1996-05-07 | Photometrics, Ltd. | Variable-size first in first out memory with data manipulation capabilities |
US6237082B1 (en) * | 1995-01-25 | 2001-05-22 | Advanced Micro Devices, Inc. | Reorder buffer configured to allocate storage for instruction results corresponding to predefined maximum number of concurrently receivable instructions independent of a number of instructions received |
US6029242A (en) * | 1995-08-16 | 2000-02-22 | Sharp Electronics Corporation | Data processing system using a shared register bank and a plurality of processors |
JPH09106346A (ja) * | 1995-10-11 | 1997-04-22 | Oki Electric Ind Co Ltd | 並列計算機 |
JPH09265397A (ja) * | 1996-03-29 | 1997-10-07 | Hitachi Ltd | Vliw命令用プロセッサ |
US6216223B1 (en) * | 1998-01-12 | 2001-04-10 | Billions Of Operations Per Second, Inc. | Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor |
US6990570B2 (en) * | 1998-10-06 | 2006-01-24 | Texas Instruments Incorporated | Processor with a computer repeat instruction |
EP0992916A1 (en) * | 1998-10-06 | 2000-04-12 | Texas Instruments Inc. | Digital signal processor |
US6269440B1 (en) * | 1999-02-05 | 2001-07-31 | Agere Systems Guardian Corp. | Accelerating vector processing using plural sequencers to process multiple loop iterations simultaneously |
US6598155B1 (en) * | 2000-01-31 | 2003-07-22 | Intel Corporation | Method and apparatus for loop buffering digital signal processing instructions |
US6574725B1 (en) * | 1999-11-01 | 2003-06-03 | Advanced Micro Devices, Inc. | Method and mechanism for speculatively executing threads of instructions |
US7178013B1 (en) * | 2000-06-30 | 2007-02-13 | Cisco Technology, Inc. | Repeat function for processing of repetitive instruction streams |
US6898693B1 (en) * | 2000-11-02 | 2005-05-24 | Intel Corporation | Hardware loops |
US6732253B1 (en) * | 2000-11-13 | 2004-05-04 | Chipwrights Design, Inc. | Loop handling for single instruction multiple datapath processor architectures |
-
2001
- 2001-11-22 JP JP2002548578A patent/JP2004515856A/ja active Pending
- 2001-11-22 CN CNB018046258A patent/CN1255721C/zh not_active Expired - Fee Related
- 2001-11-22 WO PCT/EP2001/013689 patent/WO2002046917A1/en active Application Filing
- 2001-11-22 EP EP01994717A patent/EP1346279A1/en not_active Withdrawn
- 2001-12-07 US US10/020,019 patent/US20020083306A1/en not_active Abandoned
-
2008
- 2008-02-14 JP JP2008033236A patent/JP2008181535A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01124028A (ja) * | 1987-10-30 | 1989-05-16 | Internatl Business Mach Corp <Ibm> | コンピユータ・システム |
JPH11203137A (ja) * | 1998-01-07 | 1999-07-30 | Sharp Corp | プログラム制御方法及びプログラム制御装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2013080289A1 (ja) * | 2011-11-28 | 2015-04-27 | 富士通株式会社 | 信号処理装置及び信号処理方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2002046917A1 (en) | 2002-06-13 |
US20020083306A1 (en) | 2002-06-27 |
EP1346279A1 (en) | 2003-09-24 |
JP2004515856A (ja) | 2004-05-27 |
CN1398369A (zh) | 2003-02-19 |
CN1255721C (zh) | 2006-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2441013B1 (en) | Shared resource multi-thread processor array | |
TWI758770B (zh) | 靜止可重組態的資料處理器 | |
JP6243935B2 (ja) | コンテキスト切替方法及び装置 | |
US8667252B2 (en) | Method and apparatus to adapt the clock rate of a programmable coprocessor for optimal performance and power dissipation | |
JP2002535747A (ja) | 間接超長命令語スケーラブルプロセッサの命令パイプラインを動的に再構成する方法及び装置 | |
US7136989B2 (en) | Parallel computation processor, parallel computation control method and program thereof | |
EP1840742A2 (en) | Method and apparatus for operating a computer processor array | |
JP2010067278A (ja) | プロセッサでの条件付き実行をサポートする装置及びその方法 | |
KR20050088995A (ko) | 향상된 컴퓨팅 아키텍쳐를 위한 파이프라인 가속기 및 관련시스템 및 방법 | |
JP2008181535A (ja) | ディジタル信号処理装置 | |
US7383419B2 (en) | Address generation unit for a processor | |
CN108475196A (zh) | 数据处理 | |
US11782760B2 (en) | Time-multiplexed use of reconfigurable hardware | |
US8171259B2 (en) | Multi-cluster dynamic reconfigurable circuit for context valid processing of data by clearing received data with added context change indicative signal | |
US9075768B2 (en) | Hierarchical multi-core processor and method of programming for efficient data processing | |
US8631173B2 (en) | Semiconductor device | |
Yang et al. | A communication library for mapping dataflow applications on manycore architectures | |
CN113568665B (zh) | 一种数据处理装置 | |
JP2006085574A (ja) | データ処理システムおよびその制御方法 | |
RU2198422C2 (ru) | Асинхронная синергическая вычислительная система | |
JP2002318689A (ja) | 資源使用サイクルの遅延指定付き命令を実行するvliwプロセッサおよび遅延指定命令の生成方法 | |
CN116303226A (zh) | 粗粒度可重构阵列数据流处理器的高效执行方法及系统 | |
Gregoretti et al. | Design and Implementation of the Control Structure of the PAPRICA-3 Processor | |
Azarian et al. | An FPGA-based Fine-grained Data Synchronization for Pipelining Computing Stages | |
JP2004326710A (ja) | 演算処理装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101215 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110104 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110726 |