(57)【要約】【課題】複数の動作を行うディジタル信号処理装置を提供する。【解決手段】本装置は各々が動作を行う複数の機能ユニット１０と機能ユニット１０を制御する制御手段とを有する。制御手段は、複数の制御ユニット１２を有し、制御ユニット１２は各々その機能を制御するよういずれかの機能ユニット１０と動作可能なように結合されており、各機能ユニット１０は、その結合された制御ユニット１２の制御の下、自律的に動作を実行させられる。また付加的又は代替的に、機能ユニット１０同士のデータフロー通信をサポートするよう構成されるＦＩＦＯ（先入れ／先出し）レジスタ手段１４が設けられる。【選択図】  図５
2008181535.tif 000002
【特許請求の範囲】
【請求項１】
複数の動作を実行するディジタル信号処理装置であって、
それぞれ動作を実行するよう適応させられる複数の機能ユニットと、
前記機能ユニットを制御する制御手段と、
を有し、
前記制御手段は、いずれかの機能ユニットに動作可能に関連付けられてその機能を制御するようにした少なくとも１つの制御ユニットを含む複数の制御ユニットを有し、当該各機能ユニットは、これに関連付けられた制御ユニットによる制御の下で自律的な態様で動作を実行するよう適応させられる、
処理装置。
【請求項２】
請求項１に記載の処理装置であって、前記機能ユニット間のデータフロー通信をサポートするよう適応させられる先入れ／先出しＦＩＦＯレジスタ手段を有することを特徴とする装置。
【請求項３】
複数の動作を実行するディジタル信号処理装置であって、
それぞれ動作を実行するよう適応させられる複数の機能ユニットと、
前記機能ユニットを制御する制御手段と、
を有し、
前記機能ユニット間のデータフロー通信をサポートするよう適応させられる先入れ／先出しＦＩＦＯレジスタ手段を有する、
処理装置。
【請求項４】
請求項２又は３に記載の装置であって、レジスタファイルを有し、前記レジスタファイルは、前記ＦＩＦＯレジスタ手段により拡張される、ことを特徴とする装置。
【請求項５】
請求項２ないし４のうちいずれか１つに記載の装置であって、前記ＦＩＦＯレジスタ手段は、複数のＦＩＦＯレジスタを有する、ことを特徴とする装置。
【請求項６】
請求項１ないし５のうちいずれか１つに記載の装置であって、前記機能ユニットの各々は、少なくとも１つの制御ユニットを具備する、ことを特徴とする装置。
【請求項７】
請求項１ないし６のうちいずれか１つに記載の装置であって、複数の段階により構成されるパイプラインを実行するよう適応させられ、当該段階の各々は、機能ユニットにより実行される、装置。
【請求項８】
請求項１ないし７のうちいずれか１つに記載の装置であって、各制御ユニットに対し命令レジスタ及びカウンタが設けられ、前記カウンタは、前記命令レジスタに記憶される命令が、対応する機能ユニットによって何回実行されなければならないかを示す、ことを特徴とする装置。
【請求項９】
請求項１ないし８のうちいずれか１つに記載の装置であって、主プログラムを記憶するプログラムメモリ手段をさらに有し、前記主プログラムは、前記制御ユニットを指示する指令を含む、ことを特徴とする装置。
【請求項１０】
それぞれ動作を実行するよう適応させられる複数の機能ユニットを有するディジタル信号処理装置においてディジタル信号を処理する方法であって、
前記機能ユニットは、それぞれ複数の制御ユニットにより制御され、少なくとも１つの制御ユニットは、いずれかの機能ユニットに動作可能に関連付けられて、各機能ユニットが、これに関連付けられた制御ユニットによる制御の下で自律的な態様で動作を実行することが可能となるようにした、方法。
【請求項１１】
請求項９に記載の方法であって、前記機能ユニット間のデータフロー通信は、先入れ／先出しＦＩＦＯレジスタ手段によってサポートされる、ことを特徴とする方法。
【請求項１２】
それぞれ動作を実行するよう適応させられる複数の機能ユニットを有するディジタル信号処理装置においてディジタル信号を処理する方法であって、前記機能ユニット間のデータフロー通信は、先入れ／先出しＦＩＦＯレジスタ手段によってサポートされる、方法。
【請求項１３】
請求項１１又は１２に記載の方法であって、複数の段階からなるパイプラインが設けられ、各段階が機能ユニットにより実行される、方法。
【請求項１４】
請求項１０ないし１３のうちいずれか１つに記載の方法であって、記憶された命令が機能ユニットによって実行されなければならない回数が、対応する制御ユニットにより計数される、ことを特徴とする方法。
【請求項１５】
請求項９ないし１４のうちいずれか１つに記載の方法であって、主プログラムは、プログラムメモリ手段に記憶され、前記主プログラムは、前記制御ユニットを命令する指令を含む、ことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の動作を実行するディジタル信号処理装置であって、それぞれ動作を実行するよう適応させられる複数の機能ユニットと、前記機能ユニットを制御する制御手段とを有する処理装置に関する。また、本発明は、各々が動作を行うよう構成される複数の機能ユニットを有するディジタル信号処理装置においてディジタル信号を処理する方法に関する。
【背景技術】
【０００２】
かかる装置及び方法は、ディジタル信号処理器（ＤＳＰ）において実現されるのが普通である。その性能を向上させるため、ディジタル信号処理器は、小ループにて通常動作する幾つかの処理ユニットを含んでいる。２つの典型的な方策があり、
（１）複数の機能ユニットと中央制御部とを有するＶＬＩＷプロセッサの具備
（２）固定の機能を各々が自律的に行う共有プロセッサを備えた中央プロセッサの具備
である。
【０００３】
欧州特許出願公開公報ＥＰ ０ ４０３ ７２９Ａは、命令メモリ、データメモリ又は係数メモリの少なくとも１つに関連付けられた２つ以上のアドレスレジスタと、演算ブロックに関連付けられた２つ以上のデータレジスタとを含むディジタル信号処理装置を開示している。これら２つ以上のレジスタは、当該演算ブロックにより並行に処理されている異なるジョブ間で反復した切り換えが行われ、高速処理又は低速処理に適したジョブのような異なる処理速度で処理され得るジョブの単一チップにおいて効率的な処理を可能としている。
【０００４】
Los Alamitos, CA, USAにおいて２０００年に発表された会議論文"Proceedings Sixth International Symposium on Advanced Research in Asynchronous Circuits and Systems (ASYNC 2000)"の１７６頁から１８６頁には、Brackenbuty氏がＧＳＭ（ディジタル式小型携帯移動電話機）チップセットの対象アプリケーションのために設けられるべき低電力非同期ディジタル信号処理器のためのアーキテクチャを説明している。このアーキテクチャの肝要な部分は、予め取り込まれる命令の記憶を行うこととハードウェアのループ形成を行うことの双方をなす命令バッファである。これは、短い待ち時間と相当に高速なサイクルタイムとを必要とするが、他にも低電力化された構成とすることが必要である。この文献の中では、ワードスライス型ＦＩＦＯ（先入れ／先出し方式）体系に基づいた構成が提供されている。これにより、線形なマイクロパイプラインＦＩＦＯに関係する消費電力及び入力待ち時間の問題は回避され、かかる体系は、必要なルーピング動作に簡単に反作用的に適したものとなる。この構成の待ち時間、サイクルタイム及び電力消費は、単純なマイクロパイプラインＦＩＦＯのものと比較される。当該命令バッファのサイクルタイムは、そのマイクロパイプラインＦＩＦＯよりも約３倍低速なものである。しかしながら、かかる命令バッファは、動作当たりのエネルギーが（かなり能力の低い）マイクロパイプライン構造のものの４８％から６２％の間を呈している。空（エンプティ）のＦＩＦＯに伴う入力から出力の待ち時間は、マイクロパイプライン構成よりも１０分の１短い。
【０００５】
米国特許公報第５，６５５，０９０Ａ号は、システム環境に対し非同期かつ独立して動作する入出力ＦＩＦＯを備えた外部制御ディジタル信号処理器を開示している。ディジタル信号処理機能をなす手段は、当該システムプロセッサとは独立して機能し、ハードウェアＦＩＦＯの如く振る舞う。このシステムのアーキテクチャは、第１のＦＩＦＯバッファのデータ出力と第２のＦＩＦＯバッファのデータ入力との間に接続されるディジタル信号処理手段と、当該第１ＦＩＦＯバッファ及び第２ＦＩＦＯバッファにおけるデータの存否と制御信号源から受信した制御信号との関数として当該ディジタル信号処理手段を制御する制御手段とを有する。データ処理は、当該システム環境に対し非同期かつ独立して行われ、次のようなステップを有する。すなわち第１ＦＩＦＯバッファのデータ入力部のデータを受信するステップと、そのデータをディジタル信号処理器に伝送するステップと、そのデータを処理するステップと、その後に当該データレシーバがそのデータを受け取る準備ができたときに出力されるよう当該第２ＦＩＦＯバッファにその処理されたデータを伝送するステップである。
【０００６】
公報第５，５１５，３２９Ａ号においては、内部にディジタル信号処理器と、関連付けられるダイナミックランダムアクセスメモリとを含むことによりデータ処理機能を呈するメモリシステムが示されている。このディジタル信号処理器は、急速になされる主要なデータ処理をなす一方、当該ダイナミックランダムアクセスメモリアレイは、付加的なバッファリング機能を担う。入力及び出力ＦＩＦＯは、ディジタル信号処理器のデータ及びアドレスバスに接続される。このディジタル信号処理器の制御は、シリアル通信リンクによりホストプロセッサを介してディジタル信号処理器に接続される。
【０００７】
米国特許公報第５，８４５，０９３Ａ号には、集積回路におけるディジタル信号処理器が開示されており、かかる処理器は、取込ポートと呼ばれる４つのポート、２つのデータポート及び係数ポートによって特徴付けられるマルチポートデータフロー構造を用いている。４つのポート全部を双方向性のものとすることができ、これにより当該ＤＳＰシステムによるそれぞれのポートに対してのデータの読み出し及び書き込みをなすことができる。このアーキテクチャは、データをその取込ポート又は当該データポートのいずれか１つを通じてプロセッサに入れるようにしたデータフロー管理方法を可能とするものである。当該データが処理されると、データポート間で又はデータポートと取込ポートとの間でピンポン伝送可能となる。ＤＳＰアルゴリズムの終わりには、その出力データが当該特定のアプリケーションの必要性に応じてその取込ポート又はデータポートを通じて供給される。係数ポートは大抵、ＤＳＰアルゴリズム用の回転因子又は係数を提供するのに用いられる。各データポートは、専用の独立したデータメモリに設けられる。これは、マルチパスアルゴリズムの最適化に備えるものである。
【０００８】
サン社は、同時に実行する複数のスレッドを可能とする「ＭＡＪＣ」と称されるマルチスレッドプロセッサを開発した。このプロセッサでは、各機能ユニットが１つ以上のスレッドに対する命令を受け取り、それらを順次実行する。これら機能ユニットは、単一の制御（手段）によって、同時に同じスレッドに対する命令を実行するよう強制される。スレッドは連続して交互に実行されるので、自律的なタスクは存在しない。但し、ＭＡＪＣプロセッサは上述した意義の処理ではなく、ネットワーク処理を行うよう構成されている。
【０００９】
図１は、ワイドクラスのＤＳＰアルゴリズム（例えばＦＩＲフィルタリング）をよく表すベクトル積を計算するディジタル信号プロセッサ（ＤＳＰ）ループの簡単な例を示している。図１ａは、包括的なＤＳＰコアの包括的アセンブリコードにコンパイル可能なオリジナルのＣコードを示しており、図１ｂには、アセンブリコードが示されている。
【００１０】
図２ａには、標準のＤＳＰコアがブロック図として示されている。前述したコードを実行する極めて簡単な標準のＤＳＰコアは、１度に１つ命令を読みこれをパイプライン式に実行するシーケンシャルマシン（スカラープロセッサと呼ぶこともある）である。命令のフローは、単一の制御ポイントたる取込ユニット２（図２ａ参照）によって定められる。かかるユニットは、どの命令をメモリ６から取り込み処理部４に実行のために発生するかを決定するものである。
【００１１】
現代のＤＳＰコアは、１度に複数の命令を実行することによって、このような順次動作の形態から外れようとしている。このことは、幾つかの順次の命令はリソースを共有せず、またデータ交換もしない（すなわち独立している）ので可能である。こうしたアプローチの中で好評なのは、非常に大きな命令ワード（ＶＬＩＷ：very large instruction word）アーキテクチャに基づいている。この場合、そうした命令は、バンドル（束）にグループ化される。各バンドルは１度にメモリから取り込まれ、同じバンドルの命令は同期して実行、すなわち同時に発生され、解読されかつ実行される。図２ｂには、ＶＬＩＷ−ＤＳＰコアのブロック図の例が示されている。この図２ｂからは、取込ユニット２が図２ａの簡単なＤＳＰコアにおけるものと同じ態様で命令フローを受け持つ制御ポイントを呈することが分かる。
【００１２】
ＶＬＩＷ−ＤＳＰについて図１に示される演算のベクトル積は、図３に示されるコードのようなものとなる。バンドルはカンマで分離された命令によって構成されるとともに、バンドルとバンドルはセミコロンで分離される。バンドルの数が元のコードにおける命令の数よりも少なくても（図１ｂと図３とを対比）、基本命令の数は増大したものとなっている。実際、当該バンドルを満たすよう独立した命令を見つけることは、常に可能である訳ではなく、したがっていわゆる「ノーオペレーション（no-operation）」（ｎｏｐ）命令が必要である。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明の目的は、性能をさらに向上させることであり、特に、ＶＬＩＷプロセッサの汎用性と共通プロセッサを設けることによって得られる粗い並行処理とを組み合わせたディジタル信号処理装置及び方法を得ることである。
【課題を解決するための手段】
【００１４】
上記目的及びその他の目的を達成するため、本発明の第１の態様においては、複数の動作を同時に実行するディジタル信号処理装置であって、それぞれ動作を実行するよう適応させられる複数の機能ユニットと、前記機能ユニットを制御する制御手段と、を有し、前記制御手段は、いずれかの機能ユニットに動作可能に関連付けられてその機能を制御するようにした少なくとも１つの制御ユニットを含む複数の制御ユニットを有し、当該各機能ユニットは、これに関連付けられた制御ユニットによる制御の下で自律的な態様で動作を実行するよう適応させられる、処理装置が提供される。本発明の第２の態様においては、それぞれ動作を実行するよう適応させられる複数の機能ユニットを有するディジタル信号処理装置においてディジタル信号を処理する方法であって、前記機能ユニットは、それぞれ複数の制御ユニットにより制御され、少なくとも１つの制御ユニットは、いずれかの機能ユニットに動作可能に関連付けられて、各機能ユニットが、これに関連付けられた制御ユニットによる制御の下で自律的な態様で動作を実行することが可能となるようにした、方法も提供される。
【００１５】
したがって、各機能ユニットは、１つの専用の制御ユニットを有する。換言すれば、各機能ユニットには、「プライベート」制御手段が設けられ、各機能ユニットにその機能を制御するそれ自身の専用モジュールを与えるようにしている。かかる機能ユニットは、（典型的なプロセッサにおけるが如き）通常の命令か又はいわゆるプロセス又はタスクを自律的に実行させる特別な命令（いわゆる指令）かのどちらかを実行することができる。ここで、プロセス又はタスクは、指定された回数だけ所定の動作（その通常の命令のうち１つ以上）を実行することを意味する。
【００１６】
上記目的及びその他の目的を達成するため、本発明の第３の態様においては、複数の動作を実行するディジタル信号処理装置であって、それぞれ動作を実行するよう適応させられる複数の機能ユニットと、前記機能ユニットを制御する制御手段と、を有し、前記機能ユニット間のデータフロー通信をサポートするよう適応させられる先入れ／先出しＦＩＦＯレジスタ手段を有する、処理装置が提供される。本発明の第４の態様においては、それぞれ動作を実行するよう適応させられる複数の機能ユニットを有するディジタル信号処理装置においてディジタル信号を処理する方法であって、前記機能ユニット間のデータフロー通信は、先入れ／先出しＦＩＦＯレジスタ手段によってサポートされる、方法も提供される。
【００１７】
本発明の上記第１及び第３の態様の双方並びに上記第２及び第４の態様の双方をそれぞれ互いに組み合わせ、機能ユニットごとの局部的（ローカル）制御ユニットによる分散（型）制御の他に、ＦＩＦＯによるデータフローサポートをも有するディジタル信号処理装置及びディジタル信号処理方法を提供するようにすることも可能であることは勿論である。
【００１８】
典型的なＶＬＩＷプロセッサと比較すると、本発明の利点は、当該機能ユニットをビジー（使用中状態）に保つことを容易にするタスクレベル並列処理による高いスケーラビリティ及び高い性能である。さらに、プログラムメモリのアクセスは少なくて済み、小電力及びメモリ帯域幅（メモリがサポートする単位時間当たりの最大アクセス数）をもたらす。
【００１９】
フィリップス社の「Ｒ.Ｅ.Ａ.Ｌ」ディジタル信号プロセッサのような他の現行ディジタル信号プロセッサと比較すると、本発明は、当該命令セットが規則的でかつカスタマイズ可能なＶＬＩＷすなわち上述したプロセッサのためのＡＳＩＣが不必要であるのでコンパイルするのが簡単になる、という利点を有する。
【００２０】
かくして、本発明はＶＬＩＷプロセッサの汎用性と共通プロセッサにより提供される粗い並列処理とを組み合わせた解決策を提供するものである。
【００２１】
本発明によれば、独立して、並行（パラレル）に、同期して及び／又は同時に動作を実行することができる。さらに、本発明により、当該アーキテクチャの非同期式の実施例、当該アーキテクチャの同期式の実施例又はこれらの混合形式の実施例がオプションとして可能である。
【００２２】
本発明によってＦＩＦＯを設ける例では、そうしたＦＩＦＯは構成可能である。通常、ディジタルプロセッサ装置は、レジスタファイルを有し、かかるレジスタファイルがＦＩＦＯレジスタ手段により拡張可能で当該ＦＩＦＯレジスタ手段が分離／独立したアドレスを持つことができ又は当該レジスタファイルの一部となり得るものである。故に、この典型的レジスタに加えてＦＩＦＯレジスタ手段を設けることができるのである。普通、ＦＩＦＯレジスタ手段は、複数のＦＩＦＯレジスタを有する。したがって、かかるレジスタファイルは、機能ユニット中のデータフロー通信をサポートする多数のＦＩＦＯにより拡張され得るのである。なお、ここで注記するに、レジスタとＦＩＦＯとの違いは、ＦＩＦＯが送信側及び受信側を「同期」（synchronize）させる手段を有している点である。
【００２３】
複数の段階（ステージ）からなるパイプラインを設け、各段階は機能ユニットにより実行されるようにするのが好ましい。特に、ＦＩＦＯを介してサブタスクを結合させることによって、ソフトウェアレベルでパイプラインを形成することができる。
【００２４】
機能ユニット間のＦＩＦＯは、斯く様にして形成されたパイプラインを通じたデータフローだけでなく、制御フローにも用いられる。これがどのようにして利用され得るかの例は、機能ユニットのパイプラインにおいてどの時期に各ユニットが同一数の動作を行わなければならないかということである。この数を知る必要があるのはパイプラインのヘッドだけであり、これはデータによるものとすることができる。その他の機能ユニットは、例えばＦＩＦＯにおけるデータに付加されるエキストラビットを検査することによって当該データ終端部（エンドオブデータ）について知りうることになる。もう１つの例は、ある機能ユニットにおいて反復数が未知のものである場合であり、例えばサンプルが加えられ又は時として使い捨てられる必要がある場合である。
【００２５】
なお、ＶＬＩＷプロセッサにおけるパイプラインをセットアップするための前処理（prologue）及び後処理（epilogue）は、ＦＩＦＯの同期化より本来的に得られるので不必要である。例を挙げて説明すると、例えばそれぞれＦ１，Ｆ２及びＦ３として示される機能ユニットにより各々実行される３つの段階からなるパイプラインを実行するのにＶＬＩＷプロセッサを用いることが考えられる。例えば、Ｆ１はメモリから値を読み出しそれらをＦ２に送る。Ｆ２は計算をしその結果をＦ３に転送する。Ｆ３は当該結果をメモリに戻し書き込む。本例における３つの機能ユニット全ては、１つのＶＬＩＷ命令によって同時制御されるそれらの機能をフルスピードで行う。但し、当該ループが開始される前においては、当該ループを初期化するための２つの命令があり、その最初の命令はＦ１に対する命令であり、これに後続する命令はＦ１及びＦ２に対する命令（いわゆる前処理（prologue））である。当該ループの後には、Ｆ２及びＦ３に対する最初の命令とＦ３に対する最後の命令（いわゆる後処理（epilogue））とを実行することにより当該パイプラインを空（エンプティ）にしなければならない、という同様の状況になる。既に上述したように、本発明のアーキテクチャにおいては、このような前処理及び後処理が不必要である。むしろ本発明のアーキテクチャは、パイプラインにて命令レベル並列処理（当該パイプラインにおけるサブタスクは命令レベルにおいて伝達）も、タスクレベル並列処理（幾つかのパイプラインは、メインスレッドと同時にかつ互いに同時にアクティブとなることが可能）もサポートするものである。
【００２６】
本発明のさらに他の好ましい実施例においては、制御ユニット毎に命令レジスタ及びカウンタが設けられる。ここで当該カウンタは、命令レジスタに記憶される命令は該当の機能ユニットにより何回実行されなければならないかを示す。かかる命令レジスタは、１つの動作（オペレーション）又は複数の動作（オペレーション）からなるシーケンスを保持し、当該カウンタは、何回その動作をなおも実行しなければならないかを示す。さらに、制御ユニットは、大抵、アドレスレジスタも含むことができる。カウンタは、別個の（又は分離した）デバイスとして又は関連（結合）付けられた制御ユニットの一部として実現可能である。但し、別の構成も可能である。例えば、ＸＯＲを基礎とする動作（ガロア体（Galois Field）表現を使用）もあり、また、限界に達するまでカウントアップすることも同じく有望である。
【００２７】
本発明のまたさらに別の好ましい実施例においては、プログラムメモリ手段が主プログラムを記憶するために設けられるが、その主プログラムは、制御ユニットを指示するための指令ないしは指示語を含んでいる。本発明によれば、機能ユニットは、既にこれまで指摘したように、それら自身の制御ロジックを有し、その主プログラムは、この制御ロジックを指示する指令ないしは指示語（いわば「ｎ回この動作を実行」といったようなもの）を含む。したがって、通常は、この主プログラムのプログラムカウンタを含む中央制御部が設けられる。この中央制御部は、マスタ制御ユニットと呼ばれるのに対し、機能ユニットの制御ユニットは、スレーブ制御ユニットと呼ばれる。このマスタ制御ユニットは、当該命令を取り込み、これに応じてそのスレーブ制御ユニットを指示する。中央又はマスタ制御ユニットがパイプラインを設定すると、処理を進め他のパイプラインを開始させることができる。このような並列処理は、タスクレベル並列処理と呼ばれる。故に、本発明による機能ユニットの分散制御は、命令レベル並列処理をサポートするのに対し、当該中央制御は、タスクレベル並列処理（階層的制御構造）を扱うことができる。
【００２８】
なお、局部制御ユニットにおける局部メモリに記憶されるような命令の符号化については、当該符号化が当該中央制御により観察されるような主命令ストリームにおける命令の符号化とは（別個）独立して選定可能である。例えば、局部制御ユニットのオプションを符号化するのに必要なビットは局部制御ユニットについて用意されたものよりも少ないので「狭い」符号化が選定可能である。したがって、所定の局部制御ユニットの基本的動作のみをプロセスが用いる場合、当該局部的制御ユニット自体が、その指令そのものから与えられるものに比し当該プロセスにおいて比較的短いバージョンの命令だけを記憶する。もう１つのオプションとしては、当該中央制御（部）により多くのビットを潜在的に含みうる部分的に符号化された命令を局部制御ユニットに送らせることである。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の上述した内容及びその他の目的及び特徴を、添付図面を参照しつつ好ましい実施例を挙げて詳しく説明する。
【００３０】
図３にあるコードは、各機能ユニットがそこで与えられたコードのサブセットについてのみ実際に動作することを示している。このループの本体が分離されると、３つのタスク又はプロセスが実際上認識され得る。かかるタスク又はプロセスは、それぞれ３つの機能ユニットによって実行される。これらは、プロセス（process）Ａ，Ｂ及びＣ（図４参照）と称される。さらに、各プロセスは、当該ＤＳＰコアの同じ機能ユニットによって常に実行されることを前提としている。
【００３１】
図５に示されるのは、図２ｂのＤＳＰコアと同類のＤＳＰコアであるが、これと相違するのは、各機能ユニット（図５において実行部１０と名付けられている）にある所定回数所定の処理を実行することのできるプライベート制御ロジック（図５においてローカルコントロール１２と名付けられている）が設けられている点である。各局部制御部１２は、１つの動作（オペレーション）又は複数動作（オペレーション）のシーケンスを保持する命令レジスタ又はメモリと、何回その動作がまだ実行されなければならないかを示すカウンタと、アドレスレジスタ（これは必要に応じて）とを含む。なお、局部制御（ローカルコントロール）の構造ないし形態は、図５には示されていない。各機能ユニット又は実行部１０に結合されるプライベート制御ロジック又は局部制御部１２に加えて、取込ユニット２には中央制御ロジック（図５においてグローバルコントロールと名付けられている）が設けられる。図２に示される標準又は現世代のＶＬＩＷ−ＤＳＰコアの取込ユニット２は、専用の制御手段としての中央制御ロジックを概に含んでいる。かかる制御ロジックは、こうして標準又は現代のＶＬＩＷ−ＤＳＰコア（図２）の場合と同様に中央に集中化するのが普通である。すなわち、１つの命令は１度に取り込まれ、その後に１つの機能ユニット又は実行部に発せられる。但し、図５に示されるＤＳＰコアにおいては、ループが初期化されると、各実行部１０の局部制御部１２に制御が送られる。
【００３２】
局部制御の他にも、プロセスを規定するサポートが含まれていなければならない。簡単な命令は、簡単かつ小規模な形でプロセスを、それが例えばロード、ストア及び乗算（図６参照）の如き簡単なオペレーションだけを含む限りにおいて規定するのに設けられる。プロセスは、当該ループが初期化される前に常に規定される。但し、当該プロセスのうちの１つ（例えば図４のＣ）がそのループそのものによって定義される場合もある。プロセスが終了するときは取込ユニットに制御が送られる。この方策によって、当該ループ本体における命令数が減り、概して外部の命令メモリへのアクセスが減り、時として当該ループを唯１回その命令メモリにアクセスする反復ステートメントに変換することになる。これによって、コードディメンションについて特段の作用を伴うことなく消費電力の低減及び高速動作が導かれる。また、当該局部制御は、このようにレジスタの負担を軽減する（プログラマから隠れた）局部レジスタによって当該ループに用いられるインデックスを取り扱う。例えば、図６では、レジスタ＄ｒ１は当該プロセスを規定するのには実際上使われないが、その代わりそのインクリメント＋１は規定される。
【００３３】
但し、局部制御（ローカルコントロール）を採用すると、同じバンドルのＶＬＩＷ−ＤＳＰコア（図７ａ参照）における命令どうしの同期に対応した時間的に特定の順序で命令を実行することが必要となる。したがって、全ての機能ユニット又は実行部は、各ループに含まれる。このような制約を緩和するため、データへの同期は遅延させられる。新しいデータを持っているプロセスにおける命令は、ストール（機能停止）させられるだけである。そのようなデータ同期を簡単に含ませるために、局部制御の供給に付加されるのは、レジスタの形態で用いられる先入れ／先出し（ＦＩＦＯ）キュー（図３及び図６の例における標準的レジスタについての＄ｒに代えて図７の例においては＄ｆと表される）である。ＦＩＦＯレジスタの命令書込動作はＦＩＦＯがフルである場合にのみストールされる一方、ＦＩＦＯレジスタの命令読出動作はデータ取得可能でない場合にのみストールされる。この態様において、図７ｂに示されるように、当該ＦＩＦＯを通じて命令がデータを交換し、このプロセスにおいては、追加の「ｎｏｐ」命令は要らなくなる。同期データによって、スーパースカラープロセッサの様式で順序を崩して処理を実行することができる。
【００３４】
図８は、オリジナルの標準ＤＳＰコア（ａ）及び局部制御及びＦＩＦＯレジスタを用いたＤＳＰコア（ｂ）におけるベクトル積ループを実現するための想定されるコードを示している。図８ａによれば、各命令は３２ビットに符号化されうる。但し図８ｂによると「define_process」命令は３命令処理を規定している。この命令自体は３２ビットであり、局部制御部１２（図５参照）は、図８ａにより必要となる９６ビットに代えて、その１８ビットの情報だけをストアする。アドレス♯ｂを保持するレジスタは、そのタグの中に情報｛$f3,Read,first_instruction｝等をストアする。勿論、当該タグのサイズは、この情報がどのように符号化され合成されているかによる。
【００３５】
図９は、図５のものと同じ構成を有するＤＳＰコアを示しているが、ＦＩＦＯレジスタ１４が追加で設けられている。
【００３６】
図８より明らかになるように、図３及び図４と比較すると、最終的なコードはオリジナルのものよりも短く、処理Ｂを反復本体（repeat body）と定義する反復のものとそのループステートメントを置き換えている。データ及び局部制御についての双方の同期化のため、プロセスに拘束されない全ての機能ユニット又は実行部（この場合、プロセスが完了しているか又は（プロセスＣとして）用いられない）は、当該取込ユニットに制御を送り、それから当該ループ自体と並行してそのループに後続したそれら命令を実行することができる。これは、実際上計算に係わりのないユニットはタイミングの制約を重んずるために「ｎｏｐ」動作を実行したり又はストールさせられたりする標準のソリューション（例えば典型的なＶＬＩＷ−ＤＳＰ）においては不可能である。
【図面の簡単な説明】
【００３７】
【図１ａ】Ｃコードとして表される、ベクトル積を演算するＤＳＰループの簡単な例を示す図。
【図１ｂ】包括的アセンブリコードとして表される、ベクトル積を演算するＤＳＰループの簡単な例を示す図。
【図２ａ】標準のＤＳＰコアのブロック図。
【図２ｂ】現代のＶＬＩＷ−ＤＳＰコアのブロック図。
【図３】ＶＬＩＷ−ＤＳＰコアのベクトル積ループを示す図。
【図４】プロセッサの識別及びコードの最終態様の一例を示す図。
【図５】ＦＩＦＯレジスタを伴うことなく局部制御ロジックを用いたＤＳＰのブロック図。
【図６】局部制御及び中央リソースを用いたプロセスの定義の一例を示す図。
【図７ａ】ＶＬＩＷ−ＤＳＰコアの形態のタイミング同期をなお必要とする局部制御を単独で用いた処理の一例を示す図。
【図７ｂ】プロセス定義を簡素化し必要な命令の数を減らすようにデータフローにおける同期を移動させるために局部制御及びＦＩＦＯレジスタを用いた処理の一例を示す図。
【図８ａ】オリジナルの標準ＤＳＰコアについてのベクトル積を示す図。
【図８ｂ】局部制御及びＦＩＦＯレジスタを用いたＤＳＰの同じコード片の可能性のあるバージョンを示す図。
【図９】ＦＩＦＯレジスタとともに局部制御ロジックを用いたＤＳＰのブロック図。
【図１ａ】
2008181535.tif 000003
【図１ｂ】
2008181535.tif 000004
【図２ａ】
2008181535.tif 000005
【図２ｂ】
2008181535.tif 000006
【図３】
2008181535.tif 000007
【図４】
2008181535.tif 000008
【図５】
2008181535.tif 000009
【図６】
2008181535.tif 000010
【図７ａ】
2008181535.tif 000011
【図７ｂ】
2008181535.tif 000012
【図８ａ】
2008181535.tif 000013
【図８ｂ】
2008181535.tif 000014
【図９】
2008181535.tif 000015
【手続補正書】
【提出日】平成20年3月14日(2008.3.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ループに含まれる複数の動作を実行するディジタル信号処理装置であって、
それぞれ動作を実行するよう適応させられる複数の機能ユニットと、
前記機能ユニットを制御する制御手段と、
を有し、
前記制御手段は、取込ユニット、デコードユニット及び前記デコードユニットに応答する複数の制御ユニットを有し、前記機能ユニットの各々は、当該機能の実行の反復数を制御することを含め前記各機能ユニットの機能を制御するプライベート制御ユニットを有し、前記機能ユニットの各々は、これに関連付けられた当該プライベート制御ユニットの制御の下で自律的な態様で動作を実行するよう適応させられ、これにより、前記ループに含まれる動作の完了による前記制御手段への制御の伝達、及びストール状態又はノーオペレーション命令の実行の代わりの後続ループの命令の実行を含め、外部命令メモリへのアクセスを少なくし、前記プライベート制御ユニットの各々は、１つの命令又は命令のシーケンスを保持するよう構成された命令メモリと前記１つの命令又は前記命令のシーケンスをあと何度実行させなければならないかを示すカウンタとを含む、
処理装置。
【請求項２】
請求項１に記載の処理装置であって、前記機能ユニット間のデータフロー通信をサポートするよう適応させられる先入れ／先出しＦＩＦＯレジスタ手段を有する、装置。
【請求項３】
ループに含まれる複数の動作を実行するディジタル信号処理装置であって、
それぞれ動作を実行するよう適応させられる複数の機能ユニットと、
単一の取込ユニット及び単一のデコードユニットに応答して互いに連係して前記機能ユニットを制御する前記機能ユニットの各々のための対応するプライベート制御手段と、
を有し、
前記機能ユニット間のデータフロー通信をサポートするよう適応させられる先入れ／先出しＦＩＦＯレジスタ手段を有し、前記機能ユニットは、前記ループに含まれる動作の終了により前記単一の取込ユニットへ制御を伝達しストール状態になること又はノーオペレーション命令を実行することに代えて後続ループの命令を実行し、前記機能ユニットの各々は、これに関連付けられたその対応のプライベート制御手段の制御の下で自律的な態様で命令のセットを実行するよう適応させられて外部命令メモリへのアクセスが少なくなるようにし、前記プライベート制御ユニットの各々は、１つの命令又は命令のシーケンスを保持するように構成された命令メモリと前記１つの命令又は前記命令のシーケンスをあと何度実行させなければならないかを示すカウンタとを含む、
処理装置。
【請求項４】
請求項２ないし３のうちいずれか１つに記載の装置であって、前記ＦＩＦＯレジスタ手段は、複数のＦＩＦＯレジスタを有する、装置。
【請求項５】
請求項１ないし４のうちいずれか１つに記載の装置であって、前記機能ユニットの各々は、少なくとも１つの制御ユニットを具備する、装置。
【請求項６】
請求項１ないし５のうちいずれか１つに記載の装置であって、当該装置は、複数の段階により構成されるパイプラインを形成するよう適応させられ、当該段階の各々は、機能ユニットを有する、装置。
【請求項７】
請求項１ないし６のうちいずれか１つに記載の装置であって、前記制御ユニットの各々に対し命令レジスタ及びカウンタが設けられ、前記カウンタは、前記命令レジスタに記憶される命令が、対応する機能ユニットによって何回実行されなければならないかを示す、装置。
【請求項８】
請求項１ないし７のうちいずれか１つに記載の装置であって、主プログラムを記憶するプログラムメモリ手段をさらに有し、前記主プログラムは、前記制御ユニットを指示する指令を含む、装置。
【請求項９】
それぞれループに含まれる動作を実行するよう適応させられる複数の機能ユニットを有するディジタル信号処理装置においてディジタル信号を処理する方法であって、
前記機能ユニットは、単一の取込ユニット、単一のデコードユニット及び複数のプライベート制御ユニットを含む制御手段により制御され、少なくとも１つのプライベート制御ユニットは、対応する機能ユニットに動作可能に関連付けられて、前記機能ユニットの各々が、これに関連付けられた当該プライベート制御ユニットの制御の下で自律的な態様で動作を実行することが可能となるようにし、これにより、前記ループに含まれる動作の完了による前記制御手段への制御の伝達、及びストール状態又はノーオペレーション命令の実行の代わりの後続ループの命令の実行を含め、外部命令メモリへのアクセスを少なくし、前記制御ユニットは、その関連付けられる機能ユニットの実行の反復数を制御し、前記プライベート制御ユニットの各々は、１つの命令又は命令のシーケンスを保持するよう構成された命令メモリと前記１つの命令又は前記命令のシーケンスをあと何度実行させなければならないかを示すカウンタとを含む、
方法。
【請求項１０】
請求項８に記載の方法であって、前記機能ユニット間のデータフロー通信は、先入れ／先出しＦＩＦＯレジスタ手段によってサポートされる、方法。
【請求項１１】
請求項９又は１０に記載の方法であって、複数の段階からなるパイプラインが設けられ、各段階が前記機能ユニットのうちの少なくとも１つにより実行される、方法。
【請求項１２】
請求項８ないし１１のうちいずれか１つに記載の方法であって、記憶された命令が前記機能ユニットのうちの少なくとも１つによって実行されなければならない回数が、対応する制御ユニットにより計数される、方法。
【外国語明細書】
2008181535000001.pdf