説明

デジタル信号処理のデータ転送

【課題】デジタル信号処理システムにおいてデータを転送する技術を提供する。
【解決手段】一例では、デジタル信号処理システムは、メモリアクセスコントローラにそれぞれ接続され、メモリデバイスからデータを読み取り、データにおいて1つ以上の動作を実行し、データをメモリデバイスに書き込むようにそれぞれ構成された複数のハードウェア周辺装置を有する。ハードウェア周辺装置を共に配線結合することを回避するため、且つ、構成可能なデジタル信号処理システムを提供するため、マルチスレッドのプロセッサは、ハードウェア周辺装置とメモリとの間のデータの転送を制御する。各プロセッサのスレッドは、メモリアクセスチャネルに割り当てられ、スレッドは、イベントの発生を検出し、これに応じて、選択されたハードウェア周辺装置がそのメモリアクセスチャネルを介してメモリデバイスからデータを読み取ること又はメモリデバイスにデータを書き込むことを可能にするように、メモリアクセスコントローラを制御するように構成される。

【発明の詳細な説明】
【背景技術】
【0001】
デジタル信号処理は、広範囲のアプリケーションで使用されている。これらのアプリケーションの多くは、エンドユーザにとって意味があるため又は有用であるためにデータの処理に時間の制約が存在するという意味でリアルタイムである。この一例は、デジタルテレビ及びデジタルラジオのようなデジタル放送ストリームである。デジタル信号処理システムは、データが受信されると同時くらいに早く出力される(バッファリングを禁止する)ことを可能にするほど、リアルタイムストリームを迅速に処理及び復号化できる必要がある。
【0002】
デジタル信号処理システムは、より汎用のデジタル信号プロセッサに加えて、しばしば1つ以上の専用ハードウェア周辺装置を利用する。ハードウェア周辺装置は、迅速且つ効率的に特定の信号処理タスク(例えば、特定の種類の誤り訂正)を実行するように設計された処理ブロックである。デジタル信号処理システムは、特定の種類のリアルタイムデータのニーズを満たすために、ハードウェア周辺装置を所定の順序で共に直接的に接続する(すなわち、配線結合する)ことができる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかし、異なる種類のリアルタイムデータの要件は、かなり変化する可能性がある。例えば、世界中で使用される様々な異なるデジタルテレビ及びラジオ標準は、しばしば、例えば符号化、インターリーブ、等化等に異なるタイプ又はパラメータを使用して、異なるように構成されたリアルタイムデータを有する。従って、専用の相互接続されたハードウェア周辺装置が使用された場合、リアルタイムデータの種類毎に異なるデジタル信号処理システムが構築される必要がある。
【0004】
以下に記載の実施例は、既知のデジタル信号処理システムの欠点の一部又は全部を解決する実装に限定されない。
【課題を解決するための手段】
【0005】
この概要は、以下に発明の詳細な説明に更に記載する簡単な形式の概念の抜粋を紹介するために提供される。概要は、特許請求の範囲の対象の主な特徴又は不可欠な特徴を特定することを意図するものではなく、特許請求の範囲の対象の範囲を判定する際の支援として使用されることを意図するものでもない。
【0006】
デジタル信号処理システムでデータを転送する技術が記載される。一例では、デジタル信号処理システムは、メモリアクセスコントローラにそれぞれ接続され、メモリデバイスからデータを読み取り、データにおいて1つ以上の動作を実行し、データをメモリデバイスに書き込むようにそれぞれ構成された複数のハードウェア周辺装置を有する。ハードウェア周辺装置を共に配線結合することを回避するため、且つ、構成可能なデジタル信号処理システムを提供するため、マルチスレッドのプロセッサは、ハードウェア周辺装置とメモリとの間のデータの転送を制御する。各プロセッサのスレッドは、メモリアクセスチャネルに割り当てられ、スレッドは、イベントの発生を検出し、これに応じて、選択されたハードウェア周辺装置がそのメモリアクセスチャネルを介してメモリデバイスからデータを読み取ること又はメモリデバイスにデータを書き込むことを可能にするように、メモリアクセスコントローラを制御するように構成される。
【0007】
一態様によれば、メモリデバイスと、メモリデバイスにアクセスする複数のチャネルを提供するメモリアクセスコントローラと、メモリアクセスコントローラにそれぞれ接続され、チャネルのうち1つを介してメモリデバイスからデータを読み取り、データにおいて1つ以上の動作を実行し、チャネルのうち1つを介してデータをメモリデバイスに書き込むようにそれぞれ構成された複数の専用ハードウェアブロックと、メモリアクセスコントローラに接続され、チャネルのうち1つを制御するようにそれぞれ構成された複数のスレッドを実行するように構成されたプロセッサとを有するデジタル信号処理システムが提供される。スレッドのうち少なくとも1つは、イベントの発生を検出し、これに応じて、スレッドの関連するチャネルを使用してメモリデバイスから選択された専用ハードウェアブロックへのデータの提供を制御するように構成される。
【0008】
他の態様によれば、デジタル信号処理システムにおいてデータを転送する方法が提供され、プロセッサで複数のスレッドを実行するステップであり、各スレッドは、所定のイベントが検出されるまで待機し、所定のイベントに応じて、専用ハードウェアブロックがそのスレッドに関連するメモリアクセスチャネルを介してメモリデバイスからデータを読み取ること又はメモリデバイスにデータを書き込むことを可能にするように、メモリアクセスコントローラを制御することを有する一連の動作を独立して実行するステップを有する。
【0009】
ここに記載の方法は、有形の記憶媒体上の機械可読形式(例えば、プログラムがコンピュータで実行され、コンピュータプログラムがコンピュータ可読媒体に具現されてもよい場合に、ここに記載のいずれかの方法の全てのステップを実行するように適合されたコンピュータプログラムコード手段を有するコンピュータプログラムの形式)のソフトウェアにより実行されてもよい。有形の(又は過渡的ではない)記憶媒体の例は、ディスク、サムドライブ、メモリカード等を含み、伝搬信号を含まない。ソフトウェアは、方法のステップがいずれかの適切な順序又は同時に実行され得るように、並列プロセッサ又はシリアルプロセッサでの実行に適してもよい。
【0010】
このことは、ファームウェア及びソフトウェアが有用な別々に取引可能な商品になり得ることを認める。これは、所望の機能を実行するために、“ダム(dumb)”ハードウェア若しくは標準ハードウェアで実行するソフトウェア又は“ダム”若しくは標準ハードウェアを制御するソフトウェアを含むことを意図する。また、所望の機能を実行するために、シリコンチップの設計又はユニバーサルプログラマブルチップの構成に使用されるようなHDL(hardware description language)ソフトウェアのように、ハードウェアの構成を“記述”又は規定するソフトウェアを含むことを意図する。
【0011】
当業者に明らかなように、前述の特徴は、必要に応じて組み合わされてもよく、例示の態様のいずれかと組み合わされてもよい。
【図面の簡単な説明】
【0012】
【図1】構成可能なデジタル信号処理システム
【図2】例示のリアルタイム信号のために構成可能なデジタル信号処理システムにより実行される一連の動作
【図3】構成可能なデジタル信号処理システムの制御シグナリング構造
【図4】例示のイベントフラグエンジン構造
【図5】スレッドにより制御シグナリング構造においてイベントで動作するために実行される方法のフローチャート
【図6】例示のスレッドに基づく構成及びハードウェア周辺装置のデータの転送
【図7】図6のハードウェア周辺装置を制御する例示的な一式のキュー、フラグ及び命令
【発明を実施するための形態】
【0013】
実施例について、図面を参照して一例として説明する。
【0014】
同様の特徴を示すために、図面を通じて共通の参照符号が使用される。
【0015】
実施例について、以下に一例のみとして説明する。これらの例は、出願人に現在知られている実施例を実施する最善の方法を表しているが、これらは、実現され得る唯一の方法ではない。説明は、例示の機能を示し、例示を構成して動作するステップの順序を示している。しかし、同じ又は等価な機能又は順序が異なる例により実現されてもよい。
【0016】
以下に説明するものは、汎用デジタル信号プロセッサ及び専用ハードウェア周辺装置の双方を使用する構成可能なデジタル信号処理システムであり、このシステムは、これらの要素を特定の構成に配線結合することを回避し、従って、システムの構成可能性を制限することを回避する。これは、ハードウェア周辺装置が迅速且つ効率的にデータを処理するように構成及び使用されることを可能にするために、高速データ転送システムを使用することにより実現される。これは、ハードウェア周辺装置へのメモリ転送及びハードウェア周辺装置からのメモリ転送を制御するマルチスレッドのプロセッサと、システム要素がイベントの発生を通信することを可能にする効率的なシグナリングシステムとの組み合わせを利用する。これは、リアルタイムデータを扱うために必要な計算上の性能を維持しつつ、デジタル信号処理システムが異なる標準に適合されるように十分に構成可能になることを可能にする。
【0017】
まず図1を参照すると、図1は、例示の構成可能なデジタル信号処理システムの構造を示している。システムは、データの記憶に使用されるメモリデバイス102を有する。図1の例では、メモリデバイス102は、処理されているデータとデジタル信号処理システムを動作するための構成データとの双方を格納するために使用されてもよい。他の例では、これらの2つの種類のデータは、異なるメモリデバイスの間に分離されてもよい。メモリデバイス102は、如何なる適切な形式のランダムアクセスメモリ(RAM:random access memory)でもよい。
【0018】
メモリデバイス102には1つ以上のデジタル信号プロセッサ(DSP:digital signal processor)104が接続される。DSP104は、例えば高速フーリエ変換及び等化のようなデータにおける信号処理計算を実行するようにプログラム可能なプロセッサである。汎用プロセッサとは考えられないが、DSP104は、以下に説明するハードウェア周辺装置よりも構成可能性が高い。DSP104は、メモリデバイス102からデータを読み取り、データにおいて信号処理動作を実行し、データをメモリデバイス102に書き戻すプログラムコード/命令を実行する。
【0019】
また、メモリデバイス102にはメモリアクセスコントローラ106が接続され、メモリアクセスコントローラ106は、複数のハードウェア周辺装置108のためのメモリデバイス102へのアクセスを提供する。或る例では、メモリアクセスコントローラ106は、ダイレクトメモリアクセス(DMA:direct memory access)コントローラの形式でもよい。メモリアクセスコントローラ106は、メモリデバイス102からのデータの読み取り又はメモリデバイス102へのデータの書き込みを可能にするためにハードウェア周辺装置108により使用され得る複数のメモリアクセスチャネル(例えば、DMAチャネル)を提供する。ハードウェア周辺装置とメモリデバイスとの間のデータの転送に加えて、或る例では、メモリアクセスコントローラはまた、1つのハードウェア周辺装置から他のハードウェア周辺装置に直接的にデータを転送するように構成されてもよい点に留意すべきである。
【0020】
前述のように、ハードウェア周辺装置108は、特定の信号処理タスクを実行するように構成された特化された専用ハードウェアブロックである。例えば、1つのハードウェア周辺装置は、特化されたViterbi復号化ブロックでもよく、他のものは、特化されたデインターリーブブロックでもよい。ハードウェア周辺装置はまた、固定関数アクセラレータとして知られてもよい。ハードウェア周辺装置のそれぞれは、互いに独立して動作する。ハードウェア周辺装置は、そのタスクに特有の動作パラメータを備えるほど十分に構成可能でもよいが、そのタスクを変更するほど十分には構成可能ではない(例えば、Viterbiブロックは、デインターリーブブロックとして再構成されることは不可能である)。従って、ハードウェア周辺装置は、DSP104より特定のタスクに特化している。しかし、ハードウェア周辺装置は、非常に迅速且つ効率的に特化されたタスクを実行するように構成される。
【0021】
また、メモリデバイス102には全体制御プロセッサ110が接続され、全体制御プロセッサ110は、以下に詳細に説明するように、デジタル信号処理システムの動作を初期化、構成及び制御するために使用されてもよい。
【0022】
前述のデジタル信号処理システムは、信号処理動作における柔軟性を提供する。例えば、異なるDSP104及びハードウェア周辺装置108がいずれかの所望の構成又は順序でデータを処理するように、システムが動作するように構成されてもよい。各ハードウェア周辺装置又はDSPは、システムの他の部分により提供され、メモリデバイスに格納された1つ以上のデータのブロック(ここではデータのバッファとも呼ばれる)で動作してもよく、システムの他の要素により使用される1つ以上のデータのバッファを生成及び格納する。このことにより、デジタル信号処理システムは、様々な異なる種類の信号(例えば、異なる放送/通信標準)に使用されることが可能になる。
【0023】
図2は、どのように図1のシステムが特定の種類の信号を処理するように構成され得るかを示している。図2の例では、システムは、単に例示の目的で、入来するデジタルTV信号を処理するために使用されている。デジタル化されたベースバンド信号は、デジタル信号処理システムで受信され、システムは、まず第1のDSP(DSP(0)202で示す)を使用してこのデータを処理し、高速フーリエ変換(FFT:fast fourier transform)を実行するように構成される。これに続いて、第2のDSP(DSP(2)204で示す)は、DSP(0)202から出力されたデータで等化及びデマッピングを実行する。次に、ハードウェア周辺装置HW(1)206は、データでデインターリーブを実行し、これは、Viterbi復号化を実行する他のハードウェア周辺装置HW(3)208に渡される。更なるハードウェア周辺装置HW(0)210はViterbi復号化からデータを取得し、リードソロモン復号化を実行する。次に、復号化されたデータは、図2には示さないが、必要に応じて更なるDSP、ハードウェア周辺装置又は他のプロセッサにより更に処理されてもよい。
【0024】
図2の例は、特定の種類の信号に適した全体での信号処理システムを形成するために、図1のシステムの異なるブロックがどのように共に結合され得るかを示している。図2のブロックは共に配線結合されておらず、図1のメモリデバイス102を使用してデータを交換するため、同じ信号処理システムが異なる種類の信号について異なる方法で動作するように構成されてもよい。
【0025】
図1のシステムが図2に示す種類の順序で動作するために、ハードウェア周辺装置又はDSPが処理を終了すると、新たに生成されたデータで動作する次のハードウェア周辺装置が構成され、その処理動作を実行するために活性化される。これらのハードウェア周辺装置の構成及び活性化におけるいずれかの遅延は、システムスループットを劣化させ、これは、リアルタイム信号の場合には好ましくない。従って、これらの遅延は最小化されるべきであり、これは、図3を参照して以下に示す制御シグナリング構造の使用を通じて実現される。
【0026】
図3は、システムの異なる要素が迅速且つ効率的にメッセージ及びシグナリングを渡すことを可能にする構成可能なデジタル信号処理システムの制御シグナリング構造を示している。この構造はまた、ハードウェア周辺装置が必要な場合にかなりの遅延なしに構成及び活性化され得るように、要素がイベントに対して迅速に反応することを可能にする。
【0027】
ハードウェア周辺装置108の構成及び活性化は、マルチスレッドのプロセッサ302により制御される。或る例では、マルチスレッドのプロセッサ302は、DMA制御プロセッサ(DCP:DMA control processor)と呼ばれてもよい。マルチスレッドのプロセッサは、複数のスレッドを実行するように構成される。各スレッドは、一連の命令又は動作を独立して実行するが、これらはプロセッサリソースを共有してもよく、全てがプロセッサ302で実行する広い処理の一部になる。
【0028】
マルチスレッドのプロセッサ302は、図1のメモリアクセスコントローラ106に結合され、メモリアクセスコントローラ106の動作を制御してもよい。或る例では、マルチスレッドのプロセッサ302は、メモリアクセスコントローラ106と通信する別々のハードウェア要素であるが、別の例では、マルチスレッドのプロセッサ302は、メモリアクセスコントローラ106と統合される。
【0029】
以下では、マルチスレッドのプロセッサ302のスレッドは、DCP(0),DCP(1),...,DCP(k)として示される。各スレッドは、メモリアクセスコントローラ106により提供されるメモリアクセスチャネル(DMAチャネル)のうち1つを直接的に制御するように構成される。換言すると、各スレッドは、その関連するメモリアクセスチャネルを介して1つ以上のハードウェア周辺装置108及びメモリデバイス102への又は1つ以上のハードウェア周辺装置108及びメモリデバイス102からのデータの転送を制御することができる。
【0030】
マルチスレッドのプロセッサ302は、イベントフラグエンジン304に接続され、イベントフラグエンジン304については以下に詳細に説明する。イベントフラグエンジン304は、デジタル信号処理システム内で指定のイベントが生じた場合にマルチスレッドのプロセッサ302に通知するように構成される。スレッドは、イベントフラグエンジン304からの情報を読み取り、それに従って反応してもよい。例えば、スレッドは、イベント(イベントフラグエンジンにより通知される)が生じるまでスレッドの動作の実行を一時停止させる“待機(wait)”命令を実行してもよい。イベントが生じた場合、このことは、スレッドを活性化させ、待機命令に続くスレッドの命令/動作を実行させる。
【0031】
これは、ハードウェア周辺装置へ及びハードウェア周辺装置からデータを迅速に転送するために使用されてもよい。特定のスレッドは、イベント(前のシステム要素の終了処理等)を待機し、イベントの発生に応じて、その関連するメモリアクセスチャネルを使用してハードウェア周辺装置に渡される構成データ及びデータを転送するように、メモリアクセスコントローラを制御するように構成されてもよい。他のスレッドは、ハードウェア周辺装置により処理されるデータを待機し、その関連するメモリアクセスチャネルを使用して処理されたデータをメモリデバイスに転送し戻すように、メモリアクセスコントローラを制御するように構成されてもよい。この例は、以下の図5〜7を参照して詳細に説明する。
【0032】
優先度を各スレッドに割り当てることにより、競合管理技術が実施されてもよい。例えば、前述のように、各スレッドは、0〜kの順序識別子を割り当てられる。同時の1つより多くのスレッドの実行が全て動作を実行できないようにクラッシュする場合、例えば最低の識別子を備えたスレッドに優先度が与えられる。明らかに、別の例では、最高の優先度のように異なる優先システムが適用されてもよい。システムは、競合の場合にサービス提供されることを確保するため、最も重要なハードウェア周辺装置又はシステムに不可欠なハードウェア周辺装置が最高優先度のスレッドにより処理されるように構成されてもよい。
【0033】
スレッドを独立して実行することでメモリアクセスチャネルのそれぞれを管理させることにより、応答時間は、通常の単一スレッドのプロセッサがハードウェア周辺装置への/ハードウェア周辺装置からのデータの転送を全て管理していた場合より、かなり速くなる。更に、スレッドは、次のシステム要素が活性化される前の遅延を低減するその制御ソフトウェアの部分に待機命令を配置させるように構成されてもよい。例えば、イベントの待機の前にスレッドにより実行されることを可能にするために、できるだけ多くの動作が待機命令の前に配置されてもよい。これにより、イベントが発生した後に実行される必要のある動作の数を低減する。換言すると、可能な場合には、事前の計算がスレッドにより実行されてもよい。
【0034】
マルチスレッドのプロセッサ302に加えて、DSP104及び全体制御プロセッサ110はまた、イベントフラグエンジン304から入力を受信し、これらの要素が同様にイベントに反応することを可能にする。このことは以下に詳細に説明する。
【0035】
デジタル信号処理システムの要素がイベントに反応することを可能にするため、システムの異なる要素の間での通信を可能にする効率的なシグナリングシステムが使用される。シグナリングシステムは、システムの部分の間で信号を伝達する一式のキュー306に基づく。例えば、キュー306は、複数のFIFOキューを有してもよい。各キューは、システムの1つの要素から他の要素に渡される情報に関係する複数のデータアイテムを保持してもよい。例えば、キューの情報は、データが特定のハードウェア周辺装置又はDSPにより処理される用意ができていることを示してもよい。データアイテムは、例えば、命令アドレス若しくは他の識別子、分岐ラベル、メモリアドレス、又はシステム要素が他の要素に渡そうとする他の種類の情報の形式でもよい。
【0036】
データアイテムは、マルチスレッドのプロセッサ302、DSP104又は全体制御プロセッサ110によりキューに書き込まれてもよい。更に、いずれかのキューの先頭のデータアイテムは、マルチスレッドのプロセッサ302、DSP104又は全体制御プロセッサ110により読み取られてもよく、いずれかのキューの先頭のデータアイテムは、これらのシステム要素のいずれかにより削除されてもよい。マルチスレッドのプロセッサ302、DSP104及び全体制御プロセッサ110は、データバスを使用してキュー306を読み取り、書き込み及び/又は変更する。バスへのアクセスは、バスアービター(bus arbiter)308により管理され、バスアービター308はバスの競合を処理する。
【0037】
各キューは、関連する通知ロジック(図3に図示せず)を有する。通知ロジックは、いつその関連するキューが少なくとも1つのアイテムを含むかを示すためのフラグ(又は他の適切なバイナリインジケータ)をアサート(assert)するように構成される。換言すると、フラグは、その関連するキューが空であるか否かを示す。
【0038】
キューの通知ロジックからのフラグは、イベントフラグエンジン304に提供される。イベントフラグエンジン304はまた、例えばハードウェア周辺装置又はポートの状態を示す更なるフラグの形式の入力を受信してもよい。一般的に、イベントフラグエンジン304は、キューをキューの情報で動作する処理要素に結び付けるマトリクス又はメッシュとして動作する。或る例では、キューとスレッド及びDSPとの間のイベントフラグエンジン304の接続は、全体制御プロセッサ110により構成されてもよい。
【0039】
イベントフラグエンジン304に適用され得る構成可能ロジックの種類の例が、図4から分かる。或る例では、いずれかのDCPスレッドは、402で示すように、イベントフラグエンジンに提供されるいずれかのフラグの状態を検査してもよい。このことにより、いずれかのスレッドは、アサートされるいずれかのフラグ(特定のキューにおけるアイテムの存在を示す)を待機するように構成されることが可能になる。更に又は別法では、イベントが所定の一式の場合にのみシステム要素に通知されるように、様々なフラグが組み合わされることを可能にするため、ブールロジック(Boolean logic)のレイヤがフラグに適用されてもよい。
【0040】
例えば、図4は、イベント通知をDSP(0)に提供するために使用される論理ゲート404の組み合わせを示している。他の例では、イベント通知を他の処理要素(マルチスレッドのプロセッサ302のDCPスレッド、全体制御プロセッサ110又は他のDSP104等)に提供するために、同様の組み合わせのゲートが使用されてもよい。図4の例では、ゲート404は、ANDゲートのレイヤに続いてORレイヤのゲートで構成されており、その間に構成可能な接続が存在する。
【0041】
この例では、第1のANDゲート406は、Q1で示すキューに関連するフラグ及びQ3で示すキューに関連するフラグから入力を受信する。従って、これらのフラグの双方がアサートされる場合、双方のキューがその中にアイテムを有していることを示し、ANDゲート406の出力が真になる。同様に、第2のANDゲート408は、Q7で示すキューに関連するフラグ及びキューに関連しないが、例えばF3で示すハードウェア周辺装置の状態を示す他のフラグから入力を受信する。この場合にも同様に、これらのフラグの双方がアサートされる場合、ANDゲート408の出力が真になる。
【0042】
2つのANDゲート406、408からの出力は、ORゲート410に提供される。ORゲート410はまた、ANDゲートを通過せずに直接的に、Q12で示す他のキューのフラグから第3の入力を受信する。従って、ORゲート410の出力は、3つの入力のうち1つ以上がアサートされる場合には常にアサートされる。ORゲートからのこの出力は、(この例では)DSP(0)に提供され、イベントを示して動作を起動するために使用される。
【0043】
或る例では、ORゲートから出力を受信するシステム要素は、ORゲートへのどの入力により出力がアサートされることになったかを知りたいと思う可能性がある。これは、どれによりORゲートの出力がアサートされることになったかに応じて、要素が異なる動作を実行してもよいためである。これを可能にするために、このことを処理要素に示すために更なるロジック(図4に図示せず)が含まれてもよい。例えば、これは、マルチプレクサの形式でもよい。
【0044】
更に、ORゲートへの1つより多くの入力が同時にアサートされてもよいため、どのイベントに対してシステム要素が反応するかを判定するために、優先システムがORゲートの入力に適用されてもよい。例えば、図4では、ORゲート410は、3つの入力を有し、これらのうち(図示の)最上位の入力412が最高の優先度を割り当てられ、最下位の入力414が最低の優先度を割り当てられ、中間の入力416が中間の優先度を有する。従って、ORゲートの出力がアサートされた場合、処理要素は、どのORゲートの入力がアサートされているかを判定するために更なるロジックを使用し、最高の優先度のものに反応してもよい。フラグ、ANDゲート及びORゲートの入力の間の接続は構成可能であるため、これらは、最も重要なフラグがORゲートの最高の優先度の入力に接続されるように構成されてもよい。
【0045】
前述のイベントフラグエンジン構造は、異なる処理要素がシステムで生じるイベント(キューで待機する情報等)を通知される柔軟な方法を可能にする。論理ゲートの使用は非常に高速であり、通知における低い遅延を確保し、ORゲートの入力の優先付けは、処理要素が最も緊急のイベントに反応することを可能にする。前述のように、システム要件に応じて、システム要素のいずれかについて図示のものと異なるゲート及びフラグの組み合わせが構成されてもよい。
【0046】
次に図5〜7を参照すると、図5〜7は、どのようにスレッド及びシグナリング構造が共に動作し、データのバッファでの何らかの処理を実行するためにハードウェア周辺装置を構成及び利用するかの例示の処理を示している。まず図5は、マルチスレッドのプロセッサ302で実行されるスレッドにより実行される動作のハイレベルなフローチャートを示している。ステップ502において、スレッドは、所定のイベントが生じることを待機する。前述のように、これは、イベントフラグエンジン304により規定され、イベントフラグエンジン304は、所定の条件でマルチスレッドのプロセッサ302への出力をアサートする。これは、アサートされるキューに関係する特定のフラグの待機の形式でもよく、論理ゲートにより規定されたフラグの組み合わせの待機の形式でもよい。
【0047】
ステップ504において、イベントが検出されたか否かが判定される。検出されていない場合、スレッドは待機し続ける。イベントが検出された場合、ステップ506において、スレッドは、イベントの通知を引き起こすフラグ(又は複数のフラグ)に関連するキュー(又は複数のキュー)の先頭からデータアイテムを読み取る。ステップ508において、読み取られたデータアイテムは、キュー(又は複数のキュー)から削除される。次にステップ510において、キューから読み取られたデータアイテムは、イベントに関連する命令を実行するためにスレッドにより使用される。例えば、データアイテムは、どのような種類の動作をスレッドが実行するかを判定する。これは、例えば、ハードウェア周辺装置の構成(ステップ512)、処理のためのメモリデバイスからハードウェア周辺装置へのデータの転送(ステップ514)、及びハードウェア周辺装置からメモリデバイスへの処理されたデータの転送(ステップ516)を含んでもよい。前述のように、スレッドは、メモリデバイスとハードウェア周辺装置との間でデータを転送するために、その関連するメモリアクセスチャネルを使用する。
【0048】
次に図6を参照すると、図6は、図5に示すような動作を実行するときにスレッドにより転送されるデータの種類の例を示している。この純粋に例示的な例では、ハードウェア周辺装置HW(1)206は、メモリデバイスからデータのバッファを処理するように構成及び使用されており、処理されたデータは、メモリデバイス102に書き戻される。DCP(1)602で示す例示のスレッドは、HW(1)206へのデータの転送を制御するために使用され、DCP(2)604で示す例示のスレッドは、HW(1)206からのデータの転送を制御するために使用される。この例では、スレッドDCP(1)602は、動作を開始及び制御するという点で“マスター”として動作し、スレッドDCP(2)604は、DCP(1)602により制御されるという点で“スレーブ”として動作する。これは、DCP(1)602が1つ以上のキュー306を通じてDCP(2)604にシグナリングし、以下の図7において詳細に説明するように、DCP(2)に対して所要の命令を実行させることにより実現されてもよい。ハードウェア周辺装置HW(1)206は、ハードウェア周辺装置を構成するためにデータでロードされる構成レジスタ606と、処理されているデータを保持するデータ記憶装置608とを有する。或る例では、ハードウェア周辺装置のデータ記憶装置608は、内部バッファでもよいが、処理されている入来するデータ及び出力するデータを保持するパイプラインバッファの形式でもよい点に留意すべきである。パイプラインバッファの使用は、ハードウェア周辺装置が処理される全てのデータを保持する必要性を回避し、また、入力及び出力DMA動作が同時に実行され得ることを意味する。
【0049】
3つのデータのブロックは、メモリデバイス102に格納され、この動作で使用される。第1のデータのブロックは、DMA構成データ610である。DMA構成データ610は、ハードウェア周辺装置への又はハードウェア周辺装置からのデータの転送を構成及び開始するために、スレッドによりメモリアクセスコントローラ106にロードされるデータを有する。このことを以下に詳細に説明する。第2のデータのブロックは、ハードウェア周辺装置レジスタ構成データ612である。このデータのブロックは、ハードウェア周辺装置が特定のタスクを実行するように構成するためのデータを有し、特定のDMA構成データ610に応じてメモリアクセスコントローラ106によりハードウェア周辺装置構成レジスタ606にロードされる。第3のデータのブロックは、ハードウェア周辺装置により処理されるデータ又は処理されたデータを有するデータバッファ614である。これは、特定のDMA構成データ610に応じてメモリアクセスコントローラ606によりハードウェア周辺装置のデータ記憶装置608にロードされる又はハードウェア周辺装置のデータ記憶装置608から読み取られる。
【0050】
図6の構造を使用した例示の動作は以下のように行われる。スレッドDCP(1)602は、イベントに反応し、HW1regDMA616で示すDMA構成データ610のブロックをメモリデバイス102からメモリアクセスコントローラ106にロードさせる。HW1regDMA616構成データは、4つのデータアイテム((i)ハードウェア周辺装置のレジスタ構成データを保持するメモリデバイス102内のメモリアドレス(この例ではHW1regConfigA618で示す)、(ii)ハードウェア周辺装置のレジスタ構成データがどこにロードされるかを示すハードウェア周辺装置のレジスタアドレス(この例ではHW1regStartで示す)、(iii)転送の方向(すなわち、メモリデバイスからハードウェア周辺装置へ又はその逆)を示すモードインジケータ(この例ではmem2peripで示す)、(iv)転送されるデータの長さを示す長さ値(この例ではHW1numRegsで示す))を有する。
【0051】
HW1regDMA616をメモリアクセスコントローラ106にロードすることは、メモリアクセスコントローラ106に対して、スレッドDCP(1)602に関連するメモリアクセスチャネルを使用して指定のメモリアドレスHW1regConfigA618(ハードウェア周辺装置のレジスタ構成データ612の一部)からハードウェア周辺装置のレジスタ606にデータを転送し始めることをもたらす。HW1regConfigA618は、ハードウェア周辺装置のレジスタが所望のタスクを実行するように構成する複数のデータアイテムを有する。
【0052】
ハードウェア周辺装置HW(1)がこのように構成された場合、スレッドDCP(1)は、HW1inDMA620で示すDMA構成データ610の第2のブロックをメモリデバイス102からメモリアクセスコントローラ106にロードさせる。HW1inDMA620構成データも同様に4つのデータアイテム((i)データのバッファを保持するメモリデバイス102内のメモリアドレス(この例ではHW1ipA622で示す)、(ii)データのバッファがどこにロードされるかを示すハードウェア周辺装置のレジスタアドレス(この例ではHW1inRegで示す)、(iii)転送の方向(すなわち、メモリデバイスからハードウェア周辺装置へ又はその逆)を示すモードインジケータ(この例ではmem2peripで示す)、(iv)転送されるデータの長さを示す長さ値(この例ではHW1jobLengthで示す))を有する。
【0053】
HW1inDMA620をメモリアクセスコントローラ106にロードすることは、メモリアクセスコントローラに対して、スレッドDCP(1)602に関連するメモリアクセスチャネルを使用して指定のメモリアドレスHW1ipA622(データバッファ614の一部)からハードウェア周辺装置のデータ記憶装置608にデータを転送し始めることをもたらす。スレッドDCP(1)602は、ハードウェア周辺装置に転送されるデータバッファ及び構成データの双方に使用される点に留意すべきである。HW1ipA622は、その構成に従ってハードウェア周辺装置により実行されるデータを有する。
【0054】
前述の動作は、DCP(1)602を使用したハードウェア周辺装置206へのデータの入力をカバーしている。DCP(2)604は、以下に説明するようにハードウェア周辺装置からのデータの転送を制御する。或る例では、ハードウェア周辺装置からデータを転送するためのメモリアクセスチャネルの開始及び確立は、データがハードウェア周辺装置に入力される前に実行されてもよい。これにより、データが処理されるとすぐに用意ができて環境が整う。スレッドDCP(1)602(マスター)は、DCP(2)604(スレーブ)に対して、HW1outDMA624で示すDMA構成データ610の第3のブロックがメモリデバイス102からメモリアクセスコントローラ106にロードされるように制御することをもたらす。HW1outDMA624構成データも同様に4つのデータアイテム((i)データのバッファのメモリデバイス102内のメモリアドレス(この例ではHW1opA626で示す)、(ii)データのバッファがどこにあるかを示すハードウェア周辺装置のメモリアドレス(この例ではHW1outRegで示す)、(iii)転送の方向(すなわち、ハードウェア周辺装置からメモリ)を示すモードインジケータ(この例ではperip2memで示す)、(iv)転送されるデータの長さを示す長さ値(この例ではHW1jobLengthで示す))を有する。
【0055】
HW1outDMA624をメモリアクセスコントローラ106にロードすることは、メモリアクセスコントローラに対して、スレッドDCP(2)604に関連するメモリアクセスチャネルを使用して指定のハードウェア周辺装置のメモリアドレスHW1outReg622(データ記憶装置608の一部)からメモリデバイス102のデータバッファ614にデータを転送し始めることをもたらす。スレッドDCP(2)604(DCP(1)ではない)は、ハードウェア周辺装置からのデータの転送に使用される点に留意すべきである。HW1opA626は、その構成に従ってハードウェア周辺装置により処理されたデータを有する。
【0056】
従って、図6は、ハードウェア周辺装置への及びハードウェア周辺装置からのデータの移動がどのようにメモリアクセスチャネルに関連するスレッドにより管理され得るかを示している。ハードウェア周辺装置の構成は構成データの所定のブロックの直接メモリ転送により実現されるため、このことは、非常に迅速に実行され、構成の遅延を最小化してもよい。図6についての前述の説明は、実行される動作の特定の順序を説明しているが、或る例では、この順序は異なってもよい。例えば、順序の或る側面は、高速動作のためにパイプライン化されてもよい。
【0057】
次に図7を参照すると、図7は、図6に示すものと同じ処理を実施するためにスレッドにより実行され得る一式の例示のキュー状態及び命令を示している。この例では、列702は、Q2で示すキューの内容を示している(単に例示の目的である)。この例での処理は、アイテム“HW1inHandler”がQ2に配置されたときに開始する。これは、例えば、システムの他の要素がタスクを終了し、HW(1)による更なる処理のために用意のできたデータを生成することによりもたされてもよい。Q2へのHW1inHandlerの配置は、列704に示すように、Q2に関連するフラグをアサートさせる。このフラグは、イベントフラグエンジン304に提供され、イベントフラグエンジン304は、イベントをスレッドDCP(1)に通知するように構成される。イベントフラグエンジン304は、ORvecで示すレジスタの値を設定し、どのキューがイベントを生じさせるフラグを引き起こすか(例えば、前述のようにORゲートの入力から)を示す。ORvecの状態は列706に示されており、これは、イベントを引き起こすキューの識別情報が2であることを示す。
【0058】
列708は、スレッドDCP(1)により実行される例示の擬似コードを示している。DCP(1)は、このイベントがイベントフラグエンジン304から通知されたときに、ラベル“Despatcher”を備えたルーチンを実行するように構成される。Despatcherコードは、ORvec値(すなわち、2)を読み取り、この値を変数Qnumとして格納する。次に、識別情報Qnum(すなわち、Q2)を備えたキューの先頭からアイテムを読み取り、これを変数StartAddrM(これは値HW1inHandlerを有する)として格納する。Q2の先頭のアイテムは、それぞれ列702及び704のアイテム及びフラグのクリアで示すように削除される。次に、Despatcherコードは、スレッドがキューの先頭から読み取られたラベル(すなわち、HW1inHandler)を備えたコードの部分にジャンプするように命令する。
【0059】
HW1inHandlerコードは、ハードウェア周辺装置へのデータの構成及び読み取りを制御する。しかし、これは、適当な時期に準備ができるように、ハードウェア周辺装置からのデータの出力を管理するように他のスレッドを用意することにより開始する。換言すると、DCP(1)(マスタースレッド)は、スレーブスレッドDCP(2)が他の方向にデータを転送するように準備することを起動する。これは、データアイテム“HW1outHandler”を例示のキューQ4に書き込むことにより行われる。この状態が列710に示されている。このことは、列712のQ4のフラグがアサートされることをもたらす。スレーブスレッドDCP(2)は、列714に示す“SlaveWait”というラベルのコードを実行しており、これは、アイテムがQ4に配置されるまでDCP(2)を待機させる。DCP(2)はQ4のフラグを検出し、起動し、Q4の先頭のアイテムを変数StartAddrSに読み取る。Q4からアイテムが削除され、キュー及びフラグをクリアする。次に、DCP(2)は、以下に説明するように、キューから読み取られたコードラベル“HW1outHandler”にジャンプする。
【0060】
その間に、列708のDCP(1)に戻り、DCP(1)は、コマンドStartDMAjob(HW1regDMA)でハードウェア周辺装置HW(1)の構成を開始する。これは、図6を参照して前述したように、構成ブロックHW1regDMA616がメモリアクセスコントローラ106にロードされ、構成がハードウェア周辺装置に転送されることをもたらす。スレッドDCP(1)は、これが終了するのを待機し、コマンドStartDMAjob(HW1inDMA)でメモリデバイス102からハードウェア周辺装置HW(1)へのデータバッファの転送を開始する。これは、図6を参照して前述したように、構成ブロックHW1inDMA620がメモリアクセスコントローラ106にロードされ、データバッファがハードウェア周辺装置に転送されることをもたらす。データバッファは、ハードウェア周辺装置により処理される。この場合にも同様に、スレッドは、この動作が終了するのを待機し、スレーブスレッドDCP(2)が終了したというQ5の通知を待機する。
【0061】
再び列714のスレッドDCP(2)に戻り、HW1outHandlerコードが実行され、DCP(2)は、コマンドStartDMAjob(HW1outDMA)でハードウェア周辺装置HW(1)からメモリデバイスへの(用意ができた場合に)処理されたデータの転送を開始する。これは、図6を参照して前述したように、構成ブロックHW1outDMA624がメモリアクセスコントローラ106にロードされ、データバッファがメモリデバイス102に転送されることをもたらす。スレッドDCP(2)はこれが終了するのを待機し、値“Finished”をQ5に書き込むことにより、DCP(1)に通知する。これは、列716のQ5の状態により示されており、その関連するフラグが列718でアサートされる。スレッドDCP(2)は、ラベル“SlaveWait”に分岐して戻ることにより、待機に戻る。
【0062】
前述のように、マスタースレッドDCP(1)は、Q5フラグがアサートされるのを待機しており、これに応じてQ5及びそのフラグをクリアする。スレッドDCP(1)は、次の開始アドレス(nextStartAddrで示す)の値を使用される次のキュー(nextQで示す)に書き込むことにより、ハードウェア周辺装置の動作が終了したことを次のシステム要素に通知する。次に、DCP(1)はDespatcherコードに戻り、Q2が次に書き込まれたときに処理が繰り返される。
【0063】
前述の動作は、どのように実行スレッドが反応し、ハードウェア周辺装置への及びハードウェア周辺装置からのデータの転送及び構成を管理するためにキューの情報を使用することができるかを示している。このコードはコンパクトであり迅速に実行されるが、デジタル信号処理システムが異なる種類のデータ、ハードウェア周辺装置及び処理要件について構成されることを可能にするのに十分に柔軟性がある。シグナリングシステムは、プロセッサリソースの優先付けされた共有を提供し、イベントを処理する際のプロセッサのオーバーヘッドは非常に低くなる一方、依然としてシステム要素が最も重要なイベントに反応することを可能にする。
【0064】
ここでは“プロセッサ”及び“コンピュータ”という用語は、命令を実行できるような処理機能を備えたいずれかのデバイスを示すために使用される。当業者は、このような処理機能が多くの異なるデバイスに組み込まれることを認識しており、従って、“コンピュータ”という用語は、セットトップボックス、メディアプレイヤ、デジタルラジオ、PC、サーバ、移動電話、パーソナルデジタルアシスタント及び多くの他のデバイスを含む。
【0065】
当業者は、プログラム命令又はデータを格納するために利用される記憶装置は、ネットワークを通じて分散されてもよいことを認識する。例えば、遠隔コンピュータは、ソフトウェアとして記述される処理の例を格納してもよい。ローカル又は端末コンピュータは、遠隔コンピュータにアクセスし、プログラムを実行するためにソフトウェアの一部又は全部をダウンロードしてもよい。或いは、ローカルコンピュータは、必要に応じてソフトウェアの部分をダウンロードしてもよく、ローカル端末の或るソフトウェア命令を実行して遠隔コンピュータ(又はコンピュータネットワーク)の或るソフトウェア命令を実行してもよい。当業者はまた、当業者に知られている通常の技術を利用することにより、ソフトウェア命令の全部又は一部が専用回路、プログラム可能論理アレイ等により実行されてもよいことを認識する。
【0066】
当業者に明らかなように、ここに提供される如何なる範囲又はデバイスの値は、考えられる効果を失うことなく拡張又は変更されてもよい。
【0067】
前述の恩恵及び利点は、1つの実施例に関係してもよく、複数の実施例に関係してもよいことが分かる。実施例は、前述の問題のいずれか又は全部を解決するものに限定されず、前述の恩恵及び利点のいずれか又は全部を有するものに限定されない。
【0068】
1つのアイテムへの言及は、1つ以上のこれらのアイテムを示す。ここでは“有する”という用語は、特定された方法のブロック又は要素を含むが、このようなブロック又は要素が排他的なリストを有さず、方法又は装置が更なるブロック又は要素を含んでもよいことを意味する。
【0069】
ここに記載の方法のステップは、如何なる適切な順序で実行されてもよく、必要に応じて同時に実行されてもよい。更に、ここに記載の対象の要旨及び範囲を逸脱することなく、個々のブロックは方法のいずれかから削除されてもよい。考えられる効果を失うことなく、前述の例のいずれかの態様は、更なる例を形成するために、記載の他の例のいずれかの態様と組み合わされてもよい。
【0070】
好ましい実施例の前述の説明は、一例のみとして与えられており、様々な変更が当業者により行われてもよいことが分かる。様々な実施例は特定の程度の詳細で上記に記載されているが、例示の要旨及び範囲を逸脱することなく、当業者は開示の実施例に様々な変更を行ってもよい。
【符号の説明】
【0071】
102 メモリデバイス
104 デジタル信号プロセッサ
106 メモリアクセスコントローラ
108 ハードウェア周辺装置
110 全体制御プロセッサ

【特許請求の範囲】
【請求項1】
メモリデバイスと、
前記メモリデバイスにアクセスする複数のチャネルを提供するメモリアクセスコントローラと、
前記メモリアクセスコントローラにそれぞれ接続され、前記チャネルのうち1つを介して前記メモリデバイスからデータを読み取り、前記データにおいて1つ以上の動作を実行し、前記チャネルのうち1つを介してデータを前記メモリデバイスに書き込むようにそれぞれ構成された複数の専用ハードウェアブロックと、
前記メモリアクセスコントローラに接続され、前記チャネルのうち1つを制御するようにそれぞれ構成された複数のスレッドを実行するように構成されたプロセッサと
を有し、
前記スレッドのうち少なくとも1つは、イベントの発生を検出し、これに応じて、前記スレッドの関連するチャネルを使用して前記メモリデバイスから選択された専用ハードウェアブロックへのデータの提供を制御するように構成されるデジタル信号処理システム。
【請求項2】
前記少なくとも1つのスレッドは、前記イベントが検出されるまで、前記スレッドに対して更なる命令を実行することを中止させる待機命令を実行する、請求項1に記載のデジタル信号処理システム。
【請求項3】
前記イベントは、前記専用ハードウェアブロック又はデジタル信号プロセッサのうち1つにより実行される動作の終了を特定する、請求項1又は2に記載のデジタル信号処理システム。
【請求項4】
動作の終了に応じて前記プロセッサにより書き込まれた1つ以上のアイテムを保持するように構成された複数のキューと、関連するキューが少なくとも1つのアイテムを含む場合に示すためのフラグをアサートするように構成されたキュー毎の通知ロジックとを更に有する、請求項1ないし3のうちいずれか1項に記載のデジタル信号処理システム。
【請求項5】
前記少なくとも1つのスレッドは、前記フラグのうち少なくとも1つのアサートに応じて前記イベントの発生を検出するように構成される、請求項4に記載のデジタル信号処理システム。
【請求項6】
前記イベントの発生を検出する条件を規定する一連の論理ゲートを使用して、複数のキューからのフラグ状態を組み合わせ、前記イベントが生じたときに出力を前記少なくとも1つのスレッドに提供するように構成された構成可能なイベントフラグエンジンを更に有する、請求項4に記載のデジタル信号処理システム。
【請求項7】
前記論理ゲートは、複数のイベントに関するフラグを受信するように構成された複数の入力を有する少なくとも1つのORゲートを有する、請求項6に記載のデジタル信号処理システム。
【請求項8】
前記ORゲートの各入力は、優先度を割り当てられ、前記少なくとも1つのスレッドは、前記ORゲートのどの入力がアサートされたかを判定し、最高の優先度のフラグに対して入力をアサートさせるイベントに関する動作を実行するように構成される、請求項7に記載のデジタル信号処理システム。
【請求項9】
前記少なくとも1つのスレッドは、アサートしたフラグに関連するキューからアイテムを読み取り、前記アイテムを使用して前記選択された専用ハードウェアブロックを選択及び構成するように更に構成される、請求項5ないし8のうちいずれか1項に記載のデジタル信号処理システム。
【請求項10】
前記少なくとも1つのスレッドは、前記メモリデバイスからのデータの読み取り、前記データにおける動作の実行、及び前記メモリデバイスへのデータの書き込みのうち少なくとも1つに応じて、アイテムを前記キューのうち1つに書き込むように更に構成される、請求項4ないし9のうちいずれか1項に記載のデジタル信号処理システム。
【請求項11】
前記複数のスレッドのうち少なくとも1つの更なるスレッドは、更なるイベントの発生を検出し、これに応じて、関連するチャネルを使用して前記選択された専用ハードウェアブロックから前記メモリデバイスへのデータの提供を制御するように構成される、請求項1ないし10のうちいずれか1項に記載のデジタル信号処理システム。
【請求項12】
前記プロセッサは、順序識別子を各スレッドに順に割り当て、1つより多くのスレッドが前記メモリデバイスへのアクセスを競合した場合に、その識別子に基づいてスレッドに優先度を与えるように構成される、請求項1ないし11のうちいずれか1項に記載のデジタル信号処理システム。
【請求項13】
デジタル信号処理システムにおいてデータを転送する方法であって、
プロセッサで複数のスレッドを実行するステップであり、各スレッドは、所定のイベントが検出されるまで待機し、前記所定のイベントに応じて、専用ハードウェアブロックがそのスレッドに関連するメモリアクセスチャネルを介してメモリデバイスからデータを読み取ること又はメモリデバイスにデータを書き込むことを可能にするように、メモリアクセスコントローラを制御することを有する一連の動作を独立して実行するステップを有する方法。
【請求項14】
前記所定のイベントは、更なる専用ハードウェアブロック又はデジタル信号プロセッサが前記メモリデバイス内の前記データにおいて動作を終了したことを示す、請求項13に記載の方法。
【請求項15】
前記所定のイベントは、フラグを監視することにより検出され、前記フラグのアサートは、前記所定のイベントの発生を示す、請求項13又は14に記載の方法。
【請求項16】
前記一連の動作は、前記所定のイベントの検出に応じて、アサートしたフラグに関連するキューからイベント情報を読み取ることを更に有する、請求項15に記載の方法。
【請求項17】
前記一連の動作は、前記イベント情報を読み取った後に、前記キューから前記イベント情報を削除することを更に有する、請求項16に記載の方法。
【請求項18】
メモリアクセスコントローラを制御するステップは、構成データを前記メモリデバイスから前記メモリアクセスコントローラに転送するために前記イベント情報を使用することを有する、請求項16又は17に記載の方法。
【請求項19】
前記構成データは、前記メモリアクセスコントローラに対して、前記メモリデバイスから前記専用ハードウェアブロックへの構成データの転送、前記メモリデバイスから前記専用ハードウェアブロックへのデータのブロックの転送、及び前記専用ハードウェアブロックから前記メモリデバイスへの処理されたデータのブロックの転送のうち少なくとも1つを実行させるように構成されたパラメータを有する、請求項18に記載の方法。
【請求項20】
プログラムがコンピュータ上で実行された場合に、請求項13ないし19のうちいずれか1項に記載の方法の全てのステップを実行するように構成されたコンピュータプログラムコード手段を有するコンピュータプログラム。
【請求項21】
コンピュータ可読媒体に具現された請求項20に記載のコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2013−93026(P2013−93026A)
【公開日】平成25年5月16日(2013.5.16)
【国際特許分類】
【出願番号】特願2012−232839(P2012−232839)
【出願日】平成24年10月22日(2012.10.22)
【出願人】(512272786)イマジネーション テクノロジーズ リミティッド (1)
【Fターム(参考)】