(57)【特許請求の範囲】
【請求項１】
データを記憶するためのメモリと、第１のバスを介して外部装置と接続され、第２のバスを介して前記メモリと接続されたコントローラと、第３のバスを介して前記コントローラに接続され、前記第３のバス、前記コントローラ及び前記第２のバスを介して前記メモリに対してデータのリード／ライトを行いつつ所望のデータ処理を行うデータ処理部とが同一集積回路内に集積され、前記コントローラは前記メモリに対するリード／ライトのために前記第１のバスを経由して入力される第１のアクセス要求と前記第３のバスを経由して前記データ処理部から入力される第２のアクセス要求の調停処理を行って前記メモリに対してアクセスを行うメモリ内蔵データ処理部を一つの単位とする複数の第１データ処理ユニットと；
前記複数の第１データ処理ユニット内のメモリ全体を一つのメモリ空間と見なしてアクセス可能に構成され、前記メモリに対してデータのリード／ライトを行いつつ所望のデータ処理を行う少なくとも一つの第２データ処理ユニットと；
前記第２データ処理ユニットと外部装置とを接続するインタフェースと；を具備し、
前記第２データ処理ユニットは、前記外部装置から前記インタフェースを介して入力されるポリゴンデータのポリゴンサイズを判断し、該ポリゴンデータが前記第１データ処理ユニットで描画できるポリゴンサイズである場合は、該ポリゴンデータで示されるポリゴンの位置に応じて選択した第１データ処理ユニットに該ポリゴンの描画を行わせ、該ポリゴンデータが前記第１データ処理ユニットで描画できないポリゴンサイズである場合は、前記第２データ処理ユニット自身が該ポリゴンデータで示されるポリゴンの描画を行うメモリ内蔵データ処理装置。
【請求項２】
データを記憶するためのメモリ、第１のバスを介して外部装置と接続され、第２のバスを介して前記メモリと接続されたコントローラ、第３のバスを介して前記コントローラに接続され、前記第３のバス、前記コントローラ及び前記第２のバスを介して前記メモリに対してデータのリード／ライトを行いつつ所望のデータ処理を行うデータ処理部とが同一集積回路内に集積され、前記コントローラは前記メモリに対するリード／ライトのために前記第１のバスを経由して入力される第１のアクセス要求と前記第３のバスを経由して前記データ処理部から入力される第２のアクセス要求の調停処理を行って前記メモリに対してアクセスを行うメモリ内蔵データ処理部を一つの単位とする複数の第１データ処理ユニットと；
前記複数の第１データ処理ユニット内のメモリ全体を一つのアドレス空間と見なしてアクセス可能に構成され、前記メモリに対してデータのリード／ライトを行いつつ所望のデータ処理を行う複数の第２データ処理ユニットと；
前記複数の第１データ処理ユニットと前記複数の第２データ処理ユニットとを交換接続する交換部と；
前記複数の第２データ処理ユニットと外部装置とを接続するインタフェースと；を具備するメモリ内蔵データ処理装置。
【請求項３】
データを記憶するためのメモリ、第１のバスを介して外部装置と接続され、第２のバスを介して前記メモリと接続されたコントローラ、第３のバスを介して前記コントローラに接続され、前記第３のバス、前記コントローラ及び前記第２のバスを介して前記メモリに対してデータのリード／ライトを行いつつ所望のデータ処理を行うデータ処理部とが同一集積回路内に集積され、前記コントローラは前記メモリに対するリード／ライトのために前記第１のバスを経由して入力される第１のアクセス要求と前記第３のバスを経由して前記データ処理部から入力される第２のアクセス要求の調停処理を行って前記メモリに対してアクセスを行うメモリ内蔵データ処理部を一つの単位とする複数の第１データ処理ユニットと；
前記複数の第１データ処理ユニット内のメモリ全体を一つのアドレス空間と見なしてアクセス可能に構成され、前記メモリに対してデータのリード／ライトを行いつつ所望のデータ処理を行う複数の第２データ処理ユニットと；
前記複数の第１データ処理ユニットと前記複数の第２データ処理ユニット間の交換接続、前記複数の第１データ処理ユニット相互間の交換接続、及び前記複数の第２データ処理ユニット相互間の交換接続を行うクロスバ部と；
前記第２データ処理ユニットと外部装置とを接続するインタフェースと；を具備するメモリ内蔵データ処理装置。
【請求項４】
データを記憶するためのメモリと、第１のバスを介して外部装置と接続され、第２のバスを介して前記メモリと接続されたコントローラと、第３のバスを介して前記コントローラに接続され、前記第３のバス、前記コントローラ及び前記第２のバスを介して前記メモリに対してデータのリード／ライトを行いつつ所望のデータ処理を行うデータ処理部とが同一集積回路内に集積され、前記コントローラは前記メモリに対するリード／ライトのために前記第１のバスを経由して入力される第１のアクセス要求と前記第３のバスを経由して前記データ処理部から入力される第２のアクセス要求の調停処理を行って前記メモリに対してアクセスを行うメモリ内蔵データ処理部を一つの単位とする複数の第１データ処理ユニットと；
前記複数の第１データ処理ユニット内のメモリ全体を一つのアドレス空間と見なしてアクセス可能に構成され、前記メモリに対してデータのリード／ライトを行いつつ所望のデータ処理を行う少なくとも一つの第２データ処理ユニットと；
前記複数の第１データ処理ユニット相互間の交換接続、及び前記複数の第１データ処理ユニットと前記第２のデータ処理ユニット間の交換接続を行うクロスバ部と；
前記第２データ処理ユニットと外部装置とを接続するインタフェースと；
前記複数の第２データ処理ユニットにそれぞれ接続され、前記メモリ内蔵データ処理部を一つの単位とする複数の第３データ処理ユニットと；を具備し、
前記複数の第２データ処理ユニットはそれぞれに接続された前記第３データ処理ユニット内のメモリに対してデータのリード／ライトを行いつつ所望のデータ処理を行うメモリ内蔵データ処理装置。
【請求項５】
データを記憶するためのメモリ、第１のバスを介して外部装置と接続され、第２のバスを介して前記メモリと接続されたコントローラ、第３のバスを介して前記コントローラに接続され、前記第３のバス、前記コントローラ及び前記第２のバスを介して前記メモリに対してデータのリード／ライトを行いつつ所望のデータ処理を行うデータ処理部とが同一集積回路内に集積され、前記コントローラは前記メモリに対するリード／ライトのために前記第１のバスを経由して入力される第１のアクセス要求と前記第３のバスを経由して前記データ処理部から入力される第２のアクセス要求の調停処理を行って前記メモリに対してアクセスを行うメモリ内蔵データ処理部を一つの単位とする複数の第１データ処理ユニットと；
前記複数の第１データ処理ユニット内のメモリ全体を一つのアドレス空間と見なしてアクセス可能に構成され、前記メモリに対してデータのリード／ライトを行いつつ所望のデータ処理を行う複数の第２データ処理ユニットと；
前記複数の第１データ処理ユニットと前記複数の第２データ処理ユニット間の交換接続、前記複数の第１データ処理ユニット相互間の交換接続、及び前記複数の第２データ処理ユニット相互間の交換接続を行うクロスバ部と；
前記第２データ処理ユニットと外部装置とを接続するインタフェースと；
前記複数の第２データ処理ユニットにそれぞれ接続され、前記メモリ内蔵データ処理部を一つの単位とする複数の第３データ処理ユニットと；を具備し、
前記複数の第２データ処理ユニットはそれぞれに接続された前記第３データ処理ユニット内のメモリに対してデータのリード／ライトを行いつつ所望のデータ処理を行うメモリ内蔵データ処理装置。
【請求項６】
前記コントローラは、前記第１及び第２のアクセス要求のそれぞれのアクセス先が前記メモリ内の同一エリアの場合には、前記第１及び第２のアクセス要求のいずれかの要求を優先させてアクセスを行い、前記第１及び第２のアクセス要求のそれぞれのアクセス先が前記メモリ内の異なるエリアの場合には、それぞれのエリアに対して同時アクセスを行う請求項１乃至５のいずれか１項記載のメモリ内蔵データ処理装置。
【請求項７】
前記コントローラは、前記メモリを複数のエリアに分割して管理し、前記第１及び第２のアクセス要求のそれぞれのアクセス先を異なるエリアに設定する請求項１乃至５のいずれか１項記載のメモリ内蔵データ処理装置。
【請求項８】
前記複数の第１データ処理ユニットと前記第２データ処理ユニットとの間に接続され、前記第２データ処理ユニットからのアクセス要求に応じて一つの第１データ処理ユニットを選択し、かつ該アクセス要求により示されるアドレスを前記アドレス空間における該選択した第１データ処理ユニットに割り当てられたアドレスに変換して該選択した第１データ処理ユニットに分配する分配部をさらに有する請求項１乃至５のいずれか１項記載のメモリ内蔵データ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内蔵メモリを用いて所望の画像処理などのデータ処理を行うメモリ内蔵データ処理装置に関する。
【０００２】
【従来の技術】
ＬＳＩの大規模化に伴い、ＤＲＡＭに代表される半導体メモリとロジック回路を一つの集積回路チップ内に混在させて高速のデータ処理を実現する半導体集積回路、いわゆるメモリ混載ロジックＬＳＩが開発されている。このようなメモリ混載ロジックＬＳＩは、例えば特開平１１−１８５４６７、特開２０００−６７５７３等に記載されている。
【０００３】
メモリ混載ロジックＬＳＩの特徴は、内蔵メモリとロジック回路を広バンド幅のバスで結び、外部メモリよりはるかに高速のメモリアクセスを可能とし、それにより高速のデータ処理を実現できることにある。
【０００４】
【発明が解決しようとする課題】
ＬＳＩにおける動作クロックの高速化が進むにつれ、ＬＳＩ全体を高速クロックで同期動作させることが難しくなってきている。単純な仮定では、同じ大きさのＬＳＩでクロック周波数が２倍になれば、ＬＳＩの安定して同期動作させることができる領域の面積は１／４になってしまう。この問題を解決するためには、ＬＳＩ内部を複数のブロックに分割し、各ブロック内部で閉じた処理だけを行うようにすればよい。
【０００５】
このようにブロック内部で閉じた処理を行うように構成したメモリ混載ロジックＬＳＩでは、クロックを高速化できる反面、各ブロックの狭い領域に配置可能な小容量のメモリに対してしか同時にアクセスすることができなくなる。このため、小さなメモリに格納できる量のデータを扱う処理量の比較的小さいデータ処理のみしか行うことができず、データ処理の内容が限定されてしまうというという問題がある。
【０００６】
本発明は、内蔵メモリによる広バンド幅を有効に活用しつつ、処理内容の多様なデータ処理を可能としたメモリ内蔵データ処理装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記の課題を解決するため、本発明に係る第１の態様のメモリ内蔵データ処理装置は、データを記憶するためのメモリと、第１のバスを介して外部装置と接続され、第２のバスを介してメモリと接続されたコントローラと、第３のバスを介してコントローラに接続され、第３のバス、コントローラ及び第２のバスを介してメモリに対してデータのリード／ライトを行いつつ所望のデータ処理を行うデータ処理部とが同一集積回路内に集積され、コントローラは、メモリに対するリード／ライトのために第１のバスを経由して入力される第１のアクセス要求と第３のバスを経由してデータ処理部から入力される第２のアクセス要求の調停処理を行ってメモリに対してアクセスを行うように構成される。
【０００８】
本発明に係る第２の態様のメモリ内蔵データ処理装置は、上述した基本構成のメモリ内蔵データ処理装置を一つの単位とする複数の第１データ処理ユニットと、各第１データ処理ユニット内のメモリ全体を一つのメモリ空間と見なしてアクセス可能に構成され、メモリに対してデータのリード／ライトを行いつつ所望のデータ処理を行う少なくとも一つの第２データ処理ユニットと、第２データ処理ユニットと外部装置とを接続するインタフェースとを有する。
【０００９】
また、各第１データ処理ユニットと第２データ処理ユニットとの間に接続され、第２データ処理ユニットからのアクセス要求に応じて一つの第１データ処理ユニットを選択し、かつ該アクセス要求により示されるアドレスをアドレス空間における該選択した第１データ処理ユニットに割り当てられたアドレスに変換して該選択した第１データ処理ユニットに分配する分配部をさらに有してもよい。
【００１０】
本発明に係る第３の態様のメモリ内蔵データ処理装置は、基本構成のメモリ内蔵データ処理装置を一つの単位とする複数のデータ処理ユニットと、各データ処理ユニットと外部装置とを接続し、外部装置からのアクセス要求に対して、複数のデータ処理ユニット内のメモリ全体を一つのアドレス空間と見なしてアクセス可能に構成されたインタフェースとを有する。
【００１１】
各データ処理ユニットとインタフェースとの間に接続され、外部装置からのアクセス要求に応じて一つのデータ処理ユニットを選択し、かつ該アクセス要求により示されるアドレスをアドレス空間における該選択したデータ処理ユニットに割り当てられたアドレスに変換して該選択したデータ処理ユニットに分配する分配部をさらに有していもよい。
【００１２】
本発明に係る第４の態様のメモリ内蔵データ処理装置は、第１データ処理ユニットと第２データ処理ユニットをそれぞれ複数個有し、かつ各第１データ処理ユニットと各第２データ処理ユニットとを交換接続する交換部を有する。
【００１３】
本発明に係る第４の態様のメモリ内蔵データ処理装置は、複数の第１データ処理ユニット相互間の交換接続、及び複数の第１データ処理ユニットと少なくとも一つの第２のデータ処理ユニット間の交換接続を行うクロスバ部を有する。
【００１４】
本発明に係る第５の態様のメモリ内蔵データ処理装置は、第１データ処理ユニットと第２データ処理ユニットをそれぞれ複数個有し、かつ各第１データ処理ユニットと各第２データ処理ユニット間の交換接続、各第１データ処理ユニット相互間の交換接続、及び各第２データ処理ユニット相互間の交換接続を行うクロスバ部を有する。
【００１５】
さらに、各第２データ処理ユニットにそれぞれ接続され、基本構成のメモリ内蔵データ処理装置を一つの単位とする複数の第３データ処理ユニットを有し、各第２データ処理ユニットはそれぞれに接続された第３データ処理ユニット内のメモリに対してデータのリード／ライトを行いつつ所望のデータ処理を行うようにしてもよい。
【００１６】
本発明によると、メモリとコントローラ及びデータ処理部からなる基本構成のメモリ内蔵データ処理装置の内部では、高速のデータ転送による高速処理を実現でき、基本構成の複数のメモリ内蔵データ処理装置の内蔵メモリ全体を一つのアドレス空間を持つ大容量メモリと見なしてアクセスするようにすると、処理速度は遅くてよいが、大量のデータを扱うような処理を実現することができる。
【００１７】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。
図１は、本発明のメモリ内蔵データ処理装置が適用可能なシステムの例としての画像処理システムを示している。メインのバス１０にユーザ入力機器としてのコントローラ１１、ＤＶＤドライブ１２、ハードディスクドライブ１３、画像入力装置１４及び通信ユニット１５が接続されている。ＤＶＤドライブ１２は、ゲームのようなアプリケーションソフトウェアまたは映画・音楽データなどを格納したＤＶＤ（ディジタルバーサタイルディスク）からの再生、あるいは書き込み可能なＤＶＤへの再生を行う。ハードディスクドライブ１３は大容量の外部記憶装置として用いられ、例えば画像データの蓄積を行う。画像入力装置１４は、ディジタルスチルカメラ、ディジタルビデオカメラあるいはスキャナであり、画像処理対象の静止画または動画の画像信号を出力する。通信ユニット１５は、インターネットなどのネットワークを介して外部と通信を行うためのものである。
【００１８】
バス１０には、さらにバスブリッジ１６を介してＣＰＵ１７及び画像処理装置２０が接続される。ＣＰＵ１６にはメインメモリ１７が接続され、画像処理装置２０には必要に応じて外部メモリ１９が接続される。画像処理装置２０には、さらにＤ／Ａコンバータ２１が接続される。
【００１９】
画像処理システムが例えばコンピュータゲーム機などに用いられるリアルタイム３次元グラフィックスシステムの場合を例にとると、画像処理装置２０は描画演算処理に用いられる。ＤＶＤに格納されたゲームソフトウェアは、ＤＶＤドライブ１２により読み取られてＣＰＵ１６によってメインメモリ１７を用いて実行され、コントローラ１１から入力されるユーザの操作に応じて様々の処理が行われる。これによって３次元空間データが更新され、ＣＰＵ１６から画像処理装置２０に形状プリミティブデータが送られ、レンダリングと呼ばれる描画演算処理が実行される。
【００２０】
レンダリングとは、狭い意味ではポリゴンと呼ばれる平面多角形をオブジェクトの形状プリミティブとして用い、これに描画（塗り潰し）を行うことで３次元空間を表現する処理である。より一般的には、３次元ＣＧの分野で良く知られている、テクスチュアマッピング、隠面消去、ライティング（照明の輝度計算）、シェーディング（影付け）、アンチエイリアシング、透視変換及びクリッピングなどの処理をレンダリングと称し、さらには頂点処理を含める場合もある。頂点処理とは、ポリゴンメッシュの頂点毎にポリゴンに対するピクセル単位の描画に必要なパラメータを算出する処理である。この頂点処理については、画像処理装置２０で行ってもよいが、ＣＰＵ１６により行ってもよい。
【００２１】
一方、画像入力装置１４から入力される静止画または動画の画像信号に対しては、画像処理装置２０は各種フィルタ処理などの加工処理を行うことができる。画像処理装置２０から出力される画像データは、Ｄ／Ａコンバータ２１を通してビデオ信号出力となり、図示しないディスプレイに送られて表示されたり、必要に応じてハードコピーとして出力される。
【００２２】
本発明によるメモリ内蔵データ処理装置は、例えば図１のような画像処理システムにおける画像処理装置２０に適用される。以下、メモリ内蔵データ処理装置の具体的な実施形態について説明する。
【００２３】
（第１の実施形態）
図２は、本発明の最も基本的な第１の実施形態に係るメモリ内蔵データ処理装置の構成を示している。図２のメモリ内蔵データ処理装置３０は、ＤＲＡＭのような内蔵メモリ３１とデータ処理部３２及びコントローラ３３が一つのＬＳＩ（大規模半導体集積回路）に集積された、いわゆるメモリ混載ロジックＬＳＩによって実現される。データ処理部３２は、例えば前述のようにポリゴンに描画処理を行うレンダリング部や、画像処理などを行うＳＩＭＤ（単一命令多重処理）型並列プロセッサであり、コントローラ３３を介して内蔵メモリ３１に対してアクセス、すなわちデータのリード／ライト（読み出し及び書き込み）を行いつつ、これらの処理を実行する。
【００２４】
内蔵メモリ３１とコントローラ３３とはメモリバス３４により接続され、データ処理部３２とコントローラ３３とはローカルバス３５により接続されている。コントローラ３３と外部装置とはグローバルバス３６により接続される。これらのバス３４〜３６のうち、バス３４，３５及びバス３６の一部は、いずれもメモリ混載ロジックＬＳＩの内部配線として実現される。メモリ内蔵データ処理装置３０が例えば図１の画像処理システムにおける画像処理装置２０である場合を例にとると、ここでいう外部装置とは図１におけるバスブリッジ１６を介して接続されるＣＰＵ１７、及び外部メモリ１９等である。
【００２５】
メモリバス３４及びローカルバス３５は、上述のようにＬＳＩ内部の配線で実現されるため、外部装置との接続のためのグローバルバス３６に比較して配線長が短く、広いデータバス幅と高いバスクロックを持つ。従って、メモリバス３４及びローカルバス３５は、グローバルバス３６に比較して広バンド幅での高速データ転送ができ、データ処理部３２はローカルバス３５、コントローラ３３及びメモリバス３４を経由して広バンド幅で内蔵メモリ３１に高速アクセスできる。
【００２６】
コントローラ３３は、内蔵メモリ３１に対するデータのリード／ライトのために複数経路でなされるアクセス要求の調停処理、すなわちローカルバス３５経由のアクセス要求とグローバルバス３６経由のアクセス要求との調停処理を行いつつ、メモリバス３４を経由して内蔵メモリ３１に対しアクセスしてリード／ライトを行う。アクセス要求の調停方法としては、以下の４種類が挙げられる。
【００２７】
［グローバル優先アクセス］
グローバルバス３６経由で外部からのアクセス要求を受けると、データ処理部３２からのローカルバス３５経由のアクセス要求を止め、グローバルバス３６経由のアクセス要求に対してアクセスを行い、一連の処理が終了すると、ローカルバス３５経由のアクセス要求を受け付ける。
【００２８】
［ローカル優先アクセス］
データ処理部３２からのローカルバス３５経由のアクセス要求を受けると、外部からのグローバルバス３６経由のアクセス要求を止め、ローカルバス３５経由のアクセス要求に対してアクセスを行い、一連の処理が終了すると、グローバルバス３６経由のアクセス要求を受け付ける。
【００２９】
［混合アクセス］
データアクセス単位毎に、グローバルバス３６経由のアクセス要求とローカルバス３５経由のアクセス要求のいずれかを逐次受け付ける。
【００３０】
［同時アクセス］
ローカルバス３５経由のアクセス要求とグローバルバス３６経由のアクセス要求を同時に受けた場合、すなわち同時アクセス要求を受けた場合、それらのアクセス先アドレスが内蔵メモリ３１の異なるバンクの場合には、この同時アクセスを受け付けて処理を行い、アクセス先アドレスが異なるバンクの場合には、いずれか一方のアクセス要求を優先し、他方のアクセス要求を待たせる。
【００３１】
図３を用いて、本実施形態における内蔵メモリ３１に対するアクセス要求の調停処理の好ましい例を説明する。図３では調停処理をフローチャートで示しているが、メモリ内蔵データ処理装置３０全体の処理の高速化を図るため、この調停処理は実際にはコントローラ３３内でのハードウェアによって行われる。
【００３２】
コントローラ３３では、まずローカルバス３５からのアクセス要求の有無を調べる（ステップＳ１０１）。ここで、ローカルバス３５からのアクセス要求が無ければ、引き続きグローバスバス３６からのアクセス要求の有無を調べ（ステップＳ１０２）、グローバルバス３６からのアクセス要求があれば、グローバルバス３６からのアクセス要求に対する処理（グローバルアクセス処理）を行う（ステップＳ１０３）。
【００３３】
一方、ステップＳ１０１でローカルバス３５からのアクセス要求があれば、引き続きグローバルバス３６からのアクセス要求の有無を調べ（ステップＳ１０４）、グローバルバス３６からのアクセス要求がなければ、ローカルバス３５からのアクセス要求に対する処理（ローカルアクセス処理）を行う（ステップＳ１０５）。
【００３４】
ステップＳ１０４でグローバルバス３６からのアクセス要求があれば、すなわちローカルバス３５からのアクセス要求とグローバルバス３６からのアクセス要求を同時に受けた場合には、これらのアクセス要求のアクセス先（アドレス）が同一エリア（バンク）かどうかを調べる。ここで、ローカルバス３５からのアクセス要求とグローバルバス３６からのアクセス要求のアクセス先が異なるアリアであれば、これらのエリアに対する同時アクセスを行う（ステップＳ１０７）。
【００３５】
ステップＳ１０６において、ローカルバス３５からのアクセス要求とグローバルバス３６からのアクセス要求のアクセス先が同一エリアの場合には、さらに前述のローカルバスアクセスが設定されているかどうかを調べ（ステップＳ１０８）、ローカル優先アクセスが設定されていれば、ローカルアクセス処理を行い（ステップＳ１０９）、ローカル優先アクセスが設定されていなければ、グローバルアクセス処理を行う（ステップＳ１１０）。
【００３６】
なお、図３ではステップＳ１０６においてローカルバス３５からのアクセス要求とグローバルバス３６からのアクセス要求のアクセス先が同一エリアの場合、ステップＳ１０８でローカル優先アクセスが設定されているかどうかを調べ、それに応じてローカルアクセス処理及びグローバルアクセス処理のいずれかを行うものとしたが、ステップＳ１０８でグローバル優先アクセスが設定されているかどうかを調べるようにしてもよい。その場合、グローバル優先アクセスが設定されていれば、グローバルアクセス処理を行い、グローバル優先アクセスが設定されていなければ、ローカルアクセス処理を行うようにすればよい。
【００３７】
コントローラ３３は、内蔵メモリ３１に対するローカルバス３５及びグローバルバス３６からのアクセス要求に関して上述したような調停処理を行う。また、コントローラ３３は図３のステップＳ１０７による同時アクセスを可能とするため、図２中に破線で示すように、内蔵メモリ３１を複数の領域（エリア）に分けて管理する機能、すなわち各エリアをローカルバス３５経由でアクセスできるエリアと、グローバルバス３６経由でアクセスできるエリアとに選択的に管理する機能を有する。
【００３８】
このような機能をコントローラ３３が有することにより、同時アクセス効率を上げると共に、内蔵メモリ３１に対して、ローカルバス３５経由でアクセスできるエリアをグローバルバス３６経由でアクセスしてしまったり、逆にグローバルバス３６経由でアクセスできるエリアをローカルバス３５経由でアクセスしてしまったりすることによるデータの破壊を防止でき、内蔵メモリ３１に記憶されているデータ保護の観点から好ましい。
【００３９】
（第２の実施形態）
図４に、本発明の第２の実施形態に係るメモリ内蔵データ処理装置の構成を示す。図４に示すメモリ内蔵データ処理装置４０Ａは、図２に示した第１の実施形態に係るメモリ内蔵データ処理装置３０を一つのデータ処理ユニット（第１データ処理ユニット、以後これをローカル部と呼ぶ）として複数個用い、さらに別のデータ処理ユニット（第２データ処理ユニット、以後これをグローバル部と呼ぶ）を組み合わせて構成されている。すなわち、メモリ内蔵処理装置４０には、図２に示したメモリ内蔵データ処理装置３０と同一構成の複数のローカル部４１Ａ〜４１Ｎが設けられている。
【００４０】
グローバル部４２は、例えば汎用プロセッサまたはレンダリング部のようなデータ処理ユニットであり、分配部４３、及びローカル部４１Ａ〜４１Ｎから引き出されたグローバルバス４４Ａ〜４４Ｎを介してローカル部４１Ａ〜４１Ｎに接続されている。グローバル部４２は分配部４３及びグローバル４４Ａ〜４４Ｎを経由して、ローカル部４１Ａ〜４１Ｎの内蔵メモリ（図２中の内蔵メモリ３１）全体を一つのアドレス空間と見なしてアクセス（リード／ライト）できるように構成されている。
【００４１】
グローバル部４２は、外部インタフェース４５を介して外部装置との間でデータを授受することが可能である。メモリ内蔵データ処理装置４０Ａが図１のような画像処理システムにおける画像処理装置２０の場合を例にとると、外部インタフェース４５に接続される外部装置とは、例えば図１中のバスブリッジ１６を介して接続されるＣＰＵ１７、及び外部メモリ１９等である。
【００４２】
分配部４３は、グローバル部４２からのアクセス要求に応じてローカル部４１Ａ〜４１Ｎの選択と内蔵メモリのアドレッシングを行う機能を有する。具体的には、分配部４３はグローバル部４２からアクセス要求を受け取ると、ローカル部４１Ａ〜４１Ｎのうちの適切なローカル部を選択すると共に、グローバル部４２からのアクセス要求により示されるアドレスを、ローカル部４１Ａ〜４１Ｎの内蔵メモリ全体のアドレス空間内における選択したローカル部に割り当てられたアドレスに変換して、選択したローカル部に分配することにより、その内蔵メモリにアクセスする。
【００４３】
図５は、グローバル部４２からの制御に従って分配部４３がローカル部４１Ａ〜４１Ｎに対してアドレッシング（メモリマッピング）を行う方法の具体例を示した図であり、（ａ）は１次元ストライプ型、（ｂ）は１次元ブロック型と呼ばれる方式である。図５（ａ）（ｂ）では、ローカル部４１Ａ〜４１Ｎをローカル部１〜Ｎと表記している。１次元ストライプ型アドレッシングでは、図５（ａ）に示すように同じローカル部の各アドレスをストライプ状に、つまり異なるローカル部のアドレスの間に位置するように並べ、異なるローカル部のアドレスｉ（ｉ＝１，２，…，Ｎ）を連続的に配置している。１次元ブロック型アドレッシングでは、図５（ｂ）に示すように同じローカル部のアドレスｉ（ｉ＝１，２，…，Ｎ）を連続的に配置してブロック化している。
【００４４】
アドレッシングの方式としては、他にグラフィクス処理に向く２次元でのストライプ型とブロック型のアドレッシングも知られており、これら方式も本実施形態では用いることができる。分配部４３は、これら複数のアドレッシング方式のうち任意の一つの方式をメモリ内蔵データ処理装置の用途や処理内容等に応じて選択的に用いてもよいし、一つの方式を固定して用いてもよい。
【００４５】
本実施形態によると、各ローカル部４１Ａ〜４１Ｎのそれぞれの内部では、第１の実施形態で説明したように広バンド幅のメモリバス及びローカルバスを経由した高速のデータ転送による高速処理を実現できる。一方、メモリ内蔵データ処理装置４０Ａ全体としては、グローバル部４２から分配部４３を介してローカル部４１Ａ〜４１Ｎを見たとき、各ローカル部４１Ａ〜４１Ｎの内蔵メモリを全体として一つのアドレス空間を持つ大容量メモリと見なしてアクセスできるため、例えば処理速度は遅くてよいが、大量のデータを扱うような処理を実現することが可能となる。すなわち、処理内容に応じてメモリ内蔵データ処理装置４０Ａにおける動作形態を選択することが可能となり、融通性の富んだデータ処理装置とすることができる。
【００４６】
本実施形態のより具体的な応用として、ローカル部４１Ａ〜４１Ｎ及びグローバル部４２の両方にレンダリング部の機能を持たせることにより、メモリ内蔵処理装置４０Ａを３次元グラフィックスシステムにおける描画装置として機能させることができる。この場合、外部装置から外部インタフェース４５を介してポリゴンデータがグローバル部４２に入力される。グローバル部４２は大きなポリゴンについては自身で描画を行い、ローカル部４１Ａ〜４１Ｎには小さなポリゴンのみを描画させる。これによって、ローカル部４１Ａ〜４１Ｎ内のレンダリング部の回路をグローバル部４２のそれより小さくすることが可能となる。
【００４７】
図６は、入力されたポリゴンデータのポリゴンサイズに応じてローカル部４１Ａ〜４１Ｎ及びグローバル部４２のいずれのレンダリング部で描画するかを選択する処理を示している。この選択処理は、外部インタフェース４５を介して入力されたポリゴンデータ（形状プリミティブデータ）の大きさ（ポリゴンサイズ）に従って、グローバル部４２において行われる。
【００４８】
まず、入力されたポリゴンデータのポリゴンサイズがローカル部４１Ａ〜４１Ｎで処理できるサイズか否かを判断する（ステップＳ２０１）。入力されたポリゴンデータがローカル部４１Ａ〜４１Ｎで処理できるサイズであるとステップＳ２０１で判断したならば、そのポリゴンの位置に基づいてローカル部４１Ａ〜４１Ｎのうちの適切な一つを選択して、そのローカル部にポリゴンデータを送り、描画を行わせる（ステップＳ２０２〜Ｓ２０３）。一方、ステップＳ２０１において入力されたポリゴンデータがローカル部４１Ａ〜４１Ｎで処理できないサイズであると判断したならば、グローバル部４２自身が描画を行う。
【００４９】
図６では、入力されたポリゴンデータのポリゴンサイズに応じて、ローカル部４１Ａ〜４１Ｎ及びグローバル部４２のいずれのレンダリング部で描画するかの選択処理をフローチャートで示したが、メモリ内蔵データ処理装置４０Ａ全体の処理の高速化を図るために、この選択処理はグローバル部４２のハードウェアによって実現されることが望ましい。
【００５０】
（第３の実施形態）
図７は、本発明の第３の実施形態に係るメモリ内蔵データ処理装置４０Ｂの構成を示す図であり、図５に示した第２の実施形態に係るメモリ内蔵データ処理装置４０Ａからグローバル部４２を除去し、外部インタフェース４５と分配部４２を直結している。本実施形態の構成は、外部インタフェース４５がレンダリングのようなデータ処理機能を持たないグローバル部であると見なすことができる。
【００５１】
本実施形態によると、各ローカル部４１Ａ〜４１Ｎのそれぞれの内部では、第２の実施形態と同様に広バンド幅のメモリバス及びローカルバスを経由した高速のデータ転送による高速処理を実現できる。メモリ内蔵データ処理装置４０Ｂ全体としては、外部装置から外部インタフェース４５及び分配部４３を介してローカル部４１Ａ〜４１Ｎを見たとき、各ローカル部４１Ａ〜４１Ｎの内蔵メモリを全体として一つのアドレス空間を持つ大容量メモリと見なしてアクセスできる。従って、入力されたポリゴンデータに応じてローカル部及びグローバル部で選択的に描画を行う点を除いて、第２の実施形態と同様の効果が基本的に得られる。
【００５２】
（第４の実施形態）
図８は、本発明の第４の実施形態に係るメモリ内蔵データ処理装置４０Ｃの構成を示す図である。本実施形態のメモリ内蔵データ処理装置４０Ｃは、複数のローカル部４１Ａ〜４１Ｎと複数のグローバル部４２Ａ〜４２Ｍを有し、ローカル部４１Ａ〜４１Ｎとグローバル部４２Ａ〜４２Ｍとは、交換部４６によって任意に接続される。
【００５３】
交換部４６はローカル部４１Ａ〜４１Ｎとグローバル部４２Ａ〜４２Ｍとの交換接続、すなわちローカル部４１Ａ〜４１Ｎの各々をグローバル部４２Ａ〜４２Ｍの任意の一つ（または複数）に接続する操作を行うためのものであり、公知のクロスバ型または共有バス型のいずれを用いてもよい。
【００５４】
交換部４６は、外部からの制御信号に従って上記の交換接続を行う。図１に示した画像処理システムを例にとると、この外部からの制御信号は例えば図１中のコントローラ１１を介して入力されるユーザからの指示に従ってＣＰＵ１７で発生され、本実施形態のメモリ内蔵データ処理装置４０Ｃである画像処理装置２０に入力される。
【００５５】
一方、外部インタフェース４５は、本実施形態では分配・合成機能を有し、外部装置からのデータや信号をグローバル部４２Ａ〜４２Ｍに分配したり、あるいはグローバル部４２Ａ〜４２Ｍからのデータや信号を共通のバス上に合成して外部装置へ送出する。
【００５６】
本実施形態によると、複数のローカル部４１Ａ〜４１Ｎに加えて、グローバル部４２Ａ〜４２Ｍも複数設けられていることにより、両者を交換部４６により交換接続することによって、図４に示した第２の実施形態に係るメモリ内蔵データ処理装置４０Ｂに比較してさらにデータ処理能力を拡張でき、データ処理のトータルパフォーマンスを高めることができる。
【００５７】
（第５の実施形態）
図９には、本発明の第５の実施形態に係るメモリ内蔵データ処理装置４０Ｄの構成を示す。本実施形態のメモリ内蔵データ処理装置４０Ｄは、図８に示した第４の実施形態に係るメモリ内蔵データ処理装置４０Ｃに、グローバル部４２Ａ〜４２Ｍと一対一で対応するさらに別のデータ処理ユニット（第３のデータ処理ユニット）であるローカル部４７Ａ〜４７Ｍが追加された構成となっている。グローバル部４２Ａ〜４２Ｍとローカル部４７Ａ〜４７Ｍとは、グローバルバス４８Ａ〜４８Ｍによりそれぞれ接続される。追加されたローカル部４７Ａ〜４７Ｍは、ローカル部４１Ａ〜４１Ｎと同様に、図２に示したメモリ内蔵データ処理装置と同一の構成を有する。
【００５８】
第２の実施形態では、図６に示したメモリ内蔵データ処理装置４０Ｂにおいてローカル部４１Ａ〜４１Ｎ及びグローバル部４２Ａ〜４２Ｍの両方にレンダリング部の機能を持たせる態様について説明した。これに対し、本実施形態ではグローバル部４２Ａ〜４２Ｍからレンダリング機能を切り離し、この機能を新たに追加したローカル部４７Ａ〜４７Ｍに持たせている。
【００５９】
言い換えれば、グローバル部４２Ａ〜４２Ｍに交換部４６を介して接続されるローカル部４１Ａ〜４１Ｎは、グローバル部４２Ａ〜４２Ｍに対して共通に使用される共用ローカル部であるのに対して、追加されたローカル部４７Ａ〜４７Ｍは、それぞれに接続されたグローバル部４２Ａ〜４２Ｍによってのみ使用される専用ローカル部となっている。
【００６０】
すなわち、本実施形態では例えば第２の実施形態の応用例で説明したようなレンダリング処理を行う場合、共用ローカル部４１Ａ〜４１Ｎによってポリゴンサイズの小さなポリゴンの描画を行い、グローバル部４２Ａ〜４２Ｍの各々とこれらのそれぞれ対応する専用ローカル部４７Ａ〜４７Ｍの各々とのペアによってポリゴンサイズの大きなポリゴンの描画を行う、といった処理態様をとることができる。
【００６１】
本実施形態によると、図８に示した第４の実施形態に係るメモリ内蔵データ処理装置４０Ｃと同様のパフォーマンスを発揮しつつ、共用ローカル部４１Ａ〜４１Ｎと専用ローカル部４７Ａ〜４７Ｍを同一アーキテクチャとすることによって、装置の開発効率を上げることができるという効果が期待できる。
【００６２】
（第６の実施形態）
図１０は、本発明の第６の実施形態に係るメモリ内蔵データ処理装置４０Ｅの構成を示す図であり、グローバル部４２とローカル部４１Ａ〜４１Ｎがクロスバ部４９を介して接続されている。これは第２の実施形態に係る図４に示したメモリ内蔵データ処理装置４０Ｂにおける分配部４３をクロスバ部４９に置き換えた構成である。
【００６３】
クロスバ部４９は、外部からの制御信号に従ってグローバル部４２とローカル部４１Ａ〜４１Ｎ間の交換接続及びローカル部４１Ａ〜４１Ｎ相互間の交換接続を行う。図１に示した画像処理システムを例にとると、この外部からの制御信号は例えば図１中のコントローラ１１を介して入力されるユーザからの指示に従ってＣＰＵ１７で発生され、本実施形態のメモリ内蔵データ処理装置４０Ｅである画像処理装置２０に入力される。
【００６４】
本実施形態によると、図４に示したようにグローバル部４２とローカル部４１Ａ〜４１Ｎを分配部４３を介して接続した構成に比較して、より多様な処理態様をとることができる。例えば、メモリ内蔵データ処理装置４０Ｅの処理内容に応じてクロスバ部４９によりグローバル部４２とローカル部４１Ａ〜４１Ｎとの間の接続関係を変更することが可能となる。
【００６５】
また、クロスバ部４９によってローカル部４１Ａ〜４１Ｎ相互間を任意に接続し、ローカル部４１Ａ〜４１Ｎ間の通信も可能となる。これによりローカル部４１Ａ〜４１Ｎ間で相互にデータコピーを行うことができ、例えば図１の画像入力装置１４によって入力された画像データに対して画像処理装置２０でフィルタリングなどの処理を行う場合に有利である。
【００６６】
フィルタリングに際しては、例えば、あるローカル部の内蔵メモリに、あるフレームの画像データを蓄積し、次のフレームの画像データを別のローカル部の内蔵メモリに蓄積した状態で、一つのローカル部の内蔵メモリに別のローカル部の内蔵メモリに蓄積されている画像データをコピーして足し合わせることにより、両フレームの画像データの平均をとるなどの処理が可能となる。
【００６７】
（第７の実施形態）
図１１は、本発明の第７の実施形態に係るメモリ内蔵データ処理装置４０Ｆの構成を示す図であり、第６の実施形態の図１０に示した構成を拡張し、複数のグローバル部４２Ａ〜４２Ｍ及びローカル部４１Ａ〜４１Ｎをクロスバ部４９を介して接続した構成となっている。
【００６８】
クロスバ部４９は、外部からの制御信号に従ってグローバル部４２とローカル部４１Ａ〜４１Ｎ間の交換接続及びローカル部４１Ａ〜４１Ｎ相互間の交換接続を行う。図１に示した画像処理システムを例にとると、この外部からの制御信号は例えば図１中のコントローラ１１を介して入力されるユーザからの指示に従ってＣＰＵ１７で発生され、本実施形態のメモリ内蔵データ処理装置４０Ｅである画像処理装置２０に入力される。すなわち、クロスバ部４９によってメモリ内蔵データ処理装置４０Ｆの処理内容に応じてグローバル部４２〜４２Ｍとローカル部４１Ａ〜４１Ｎとの間の接続関係を変更したり、ローカル部４１Ａ〜４１Ｎ相互間を任意に接続してローカル部４１Ａ〜４１Ｎ間の通信も可能とする。
【００６９】
本実施形態によると、第６の実施形態と同様の効果が得られることに加えて、図９に示した第５の実施形態と同様の処理態様をとることもできる。すなわち、ローカル部４１Ａ〜４１Ｎの一部（４１Ａ〜４１Ｍとする）をグローバル部４２Ａ〜４２Ｍと一対一で対応させ、ローカル部４１Ａ〜４１Ｍにグローバル部４２Ａ〜４２Ｍから切り離したレンダリング機能を持たせて、ローカル部４１Ａ〜４１Ｍをグローバル部４２Ａ〜４２Ｍによってのみ使用される専用ローカル部ローカル部とする。一方、ローカル部４１Ａ〜４１Ｎの他の一部をグローバル部４２Ａ〜４２Ｍに対して共通に使用される共用ローカル部とする。
【００７０】
このようにすることにより、図８に示した第４の実施形態に係るメモリ内蔵データ処理装置４０Ｃと同様のパフォーマンスを発揮しつつ、共用ローカル部４１Ａ〜４１Ｎと専用ローカル部４７Ａ〜４７Ｍを同一アーキテクチャとすることで、開発効率を上げることができるという効果も期待することができる。
【００７１】
【発明の効果】
以上説明したように、本発明によれば内蔵メモリによる広バンド幅を有効に活用しつつ、処理内容の多様なデータ処理を可能としたメモリ内蔵データ処理装置を提供することができる。
【００７２】
より具体的には、例えばローカル部として説明した基本構成のメモリ内蔵データ処理装置では、高速のデータ転送による高速処理を実現できる。一方、複数のローカル部の内蔵メモリ全体を一つのアドレス空間を持つ大容量メモリと見なしてアクセス可能な構成とすると、例えば処理速度は遅くてよいが、大量のデータを扱うような処理を実現することが可能となる。
【図面の簡単な説明】
【図１】本発明に係るメモリ内蔵データ処理装置が適用され得る画像処理システムの構成を示すブロック図
【図２】本発明の第１の実施形態に係るメモリ内蔵データ処理装置の構成を示すブロック図
【図３】同実施形態におけるローカルバス経由及びグローバルバス経由の内蔵メモリへのアクセス要求に対するコントローラによる調停処理を示すフローチャート
【図４】本発明の第２の実施形態に係るメモリ内蔵データ処理装置の構成を示すブロック図
【図５】同実施形態における分配部によるローカル部に対する１次元ストライプ型及び１次元ブロック型のアドレッシング方式について示す図
【図６】同実施形態における入力ポリゴンに応じてローカル部及びグローバル部のいずれのレンダリング部で描画するかを選択する処理を説明するためのフローチャート
【図７】本発明の第３の実施形態に係るメモリ内蔵データ処理装置の構成を示すブロック図
【図８】本発明の第４の実施形態に係るメモリ内蔵データ処理装置の構成を示すブロック図
【図９】本発明の第５の実施形態に係るメモリ内蔵データ処理装置の構成を示すブロック図
【図１０】本発明の第６の実施形態に係るメモリ内蔵データ処理装置の構成を示すブロック図
【図１１】本発明の第７の実施形態に係るメモリ内蔵データ処理装置の構成を示すブロック図
【符号の説明】
３０…メモリ内蔵データ処理装置
３１…内蔵メモリ
３２…データ処理部
３３…コントローラ
３４…メモリバス
３５…ローカルバス
３６…グローバルバス
４０Ａ〜４０Ｆ…メモリ内蔵データ処理装置
４１Ａ〜４１Ｎ…ローカル部（第１のデータ処理ユニット）
４２，４２Ａ〜４２Ｍ…グローバル部（第２のデータ処理ユニット）
４３…分配部
４４Ａ〜４４Ｎ…グローバルバス
４５…外部インタフェース
４６…交換部
４７Ａ〜４７Ｍ…ローカル部（第３のデータ処理ユニット）
４８Ａ〜４８Ｍ…グローバルバス
４９…クロスバ部
【図１】
0003793062.tif 000002
【図２】
0003793062.tif 000003
【図３】
0003793062.tif 000004
【図４】
0003793062.tif 000005
【図５】
0003793062.tif 000006
【図６】
0003793062.tif 000007
【図７】
0003793062.tif 000008
【図８】
0003793062.tif 000009
【図９】
0003793062.tif 000010
【図１０】
0003793062.tif 000011
【図１１】
0003793062.tif 000012