(57)【特許請求の範囲】
【請求項１】
画像処理システムにおいて、
時系列的に記述された一連の命令によって画像処理の手順が規定され、当該時系列的な記述中に外部情報を取得するためのジャンプ命令を含む主ディスプレイリストを発行する上位装置と、
時系列的に記述された一連の命令によって画像処理の手順が規定され、前記主ディスプレイリストの前記外部情報となる従ディスプレイリストを格納するメモリと、
前記上位装置に接続された第１のバスと、
前記メモリに接続され、前記第１のバスとは異なる第２のバスと、
前記上位装置によって発行された前記主ディスプレイリストを先読みして順次解析し、前記ジャンプ命令を抽出する第１の解析回路と、
前記第１の解析回路によって抽出された前記ジャンプ命令に対応する前記従ディスプレイリストを前記メモリより第２のバスを介して取得するバス制御回路と、
前記第１の解析回路の後段に設けられ、前記主ディスプレイリストを順次解析し、当該解析結果に基づいて、命令を順次出力する第２の解析回路と、
前記第２の解析回路から順次出力された命令に従って、画像処理を行う画像処理部とを有し、
前記第２の解析回路は、
前記主ディスプレイリストの前記ジャンプ命令が記述されたジャンプ部分で、前記バス制御回路によって取得された前記従ディスプレイリストを前記主ディスプレイリストの一部とみなして解析することを特徴とする画像処理システム。
【請求項２】
前記ジャンプ命令は、取得すべき前記従ディスプレイリストの指定を含み、
前記バス制御回路は、
前記ジャンプ命令によって指定された前記従ディスプレイリストを前記メモリより取得することを特徴とする請求項１に記載された画像処理システム。
【請求項３】
前記ジャンプ命令は、取得すべき前記従ディスプレイリストのデータサイズを含み、
前記第２の解析回路は、
前記主ディスプレイリストを順次解析して前記ジャンプ部分に到達した場合、前記主ディスプレイリストの解析を中断して、データの取得先を前記バス制御回路に切り替え、
前記バス制御回路から取得したデータ量が前記ジャンプ命令によって指定された前記データサイズに到達した場合、前記バス制御回路からのデータ取得を終了して、前記ディスプレイリストにおける前記ジャンプ部分以降の解析を再開することを特徴とする請求項１または２に記載された画像処理システム。
【請求項４】
前記メモリは、複数のメモリセルが直列接続されたメモリであることを特徴とする請求項１から３のいずれかに記載された画像処理システム。
【請求項５】
前記第１の解析回路によって抽出された前記ジャンプ命令を先入れ先出しのリスト構造で保持するキューバッファをさらに有し、
前記バス制御回路は、前記キューバッファにおける前記ジャンプ命令の保持順序に従って、前記ジャンプ命令のそれぞれに対応する前記従ディスプレイリストを順次取得することを特徴とする請求項１から４のいずれかに記載された画像処理システム。
【請求項６】
前記第２のバスに設けられたダブルバッファをさらに有し、
前記バス制御回路は、あるジャンプ命令に対応する前記従ディスプレイリストに関する一方のバッファからのリードと、次のジャンプ命令に対応する前記従ディスプレイリストに関する他方のバッファへのロードとを並行して行うことを特徴とする請求項５に記載された画像処理システム。
【請求項７】
画像処理方法において、
時系列的に記述された一連の命令によって画像処理の手順が規定され、当該時系列的な記述中に外部情報を取得するためのジャンプ命令を含む主ディスプレイリストを、第１のバスを介して取得する第１のステップと、
前記主ディスプレイリストを先読みして順次解析し、前記ジャンプ命令を抽出する第２のステップと、
前記抽出されたジャンプ命令に対応し、時系列的に記述された一連の命令によって画像処理の手順が規定され、前記主ディスプレイリストの前記外部情報となる従ディスプレイリストを、前記第１のバスとは異なる第２のバスを介して取得する第３のステップと、
前記主ディスプレイリストを順次解析するとともに、前記主ディスプレイリストにおける前記ジャンプ命令が記述されたジャンプ部分で、前記取得された従ディスプレイリストを前記主ディスプレイリストの一部とみなして解析し、当該解析結果に基づいて、命令を順次出力する第４のステップと、
前記順次出力された命令に従って、画像処理を行う第５のステップと
を有することを特徴とする画像処理方法。
【請求項８】
前記ジャンプ命令は、取得すべき前記従ディスプレイリストの指定を含み、
前記第４のステップは、
前記ジャンプ命令によって取得された従ディスプレイリストを読み込むステップを有することを特徴とする請求項７に記載された画像処理方法。
【請求項９】
前記ジャンプ命令は、取得すべき前記従ディスプレイリストのデータサイズを含み、
前記第４のステップは、
前記主ディスプレイリストを順次解析して前記ジャンプ部分に到達した場合、前記主ディスプレイリストの解析を中断して、前記取得された従ディスプレイリストを読み込むステップと、
前記読み込まれた従ディスプレイリストのデータ量が前記ジャンプ命令によって指定された前記データサイズに到達した場合、前記従ディスプレイリストの読み込みを終了して、前記主ディスプレイリストにおける前記ジャンプ部分以降の解析を再開するステップとを有することを特徴とする請求項７または８に記載された画像処理方法。
【請求項１０】
前記第３のステップは、
前記抽出されたジャンプ命令を先入れ先出しのリスト構造で保持するステップとを有し、
前記第４のステップは、
前記保持されたジャンプ命令の保持順序に従って、前記ジャンプ命令のそれぞれに対応する前記従ディスプレイリストを順次取得するステップを有することを特徴とする請求項７から９のいずれかに記載された画像処理方法。
【請求項１１】
前記第３のステップは、
あるジャンプ命令に対応する前記従ディスプレイリストのリードと、次のジャンプ命令に対応する前記従ディスプレイリストのロードとを並行して行うステップを有することを特徴とする請求項１０に記載された画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上位装置によって発行されたディスプレイリストに基づいて、画像処理を行う画像処理システムおよび画像処理方法に関する。
【背景技術】
【０００２】
例えば、特許文献１には、上位装置であるＣＰＵ（Central Processing Unit）によって発行されたディスプレイリストに基づいて、転送元メモリに格納された素材（オブジェクト）を用いた描画処理を行う画像プロセッサが開示されている。この画像プロセッサは、それぞれ別個のバスを介して、ＣＰＵおよび転送元メモリに接続されている。この画像プロセッサにおいて、転送回路は、ＣＰＵによって発行された一連の転送命令に従って、転送元メモリに格納された圧縮形式または非圧縮形式の素材を読み出し、これを内部の転送先メモリに書き込む。描画回路は、転送先メモリから素材を読み出し、これを用いた描画処理を行うことによって、出力すべき表示画像を生成する。また、特許文献２には、上位のプロセッサ（ホストＣＰＵ）によって生成された一連の命令（コマンド）を一時的に格納するＦＩＦＯメモリを備えた画像プロセッサが開示されている。ＦＩＦＯメモリに格納された命令は、このＦＩＦＯメモリに書き込まれた順序（入力順序）で時系列的に古いものから読み出され、これに応じた描画処理が順次実行される。
【０００３】
【特許文献１】特許第３９７０２９１号公報
【特許文献２】特開２００１−２９１０９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、特許文献１のような画像処理システムでは、ディスプレイリストの転送時の帯域によって、単位フレームあたりに描画可能な図形の量が制限されてくる。この制限を緩和するためには、ディスプレイリスト中のサブルーチンに相当する部分（固定データ）を切り離し、その転送系をディスプレイリストの転送系とは別バス化すればよい。しかしながら、ディスプレイリストを複数のサブルーチンに完全に分割して別バス上に配置するのは困難である。なぜなら、描画内容はフレーム毎に刻々と変化するので、どのサブルーチンが読み出されるかを一意に決めてしまうと、描画内容の柔軟性が著しく制限されるからである。
【０００５】
また、画像処理に必要な固定データを格納するメモリとして、通常のＲＯＭよりも安価なＮＡＮＤメモリを使用したいという市場ニーズが高まっている。ＮＡＮＤメモリとは、不揮発性を持つ素子（メモリセル）が複数直列に接続された構造を有し、その代表例として、浮遊ゲートに対するキャリア（電子）の注入量をデータに応じて制御するＮＡＮＤ型フラッシュメモリが知られている。一般に、ＮＡＮＤメモリは、リードアクセス時における初期オーバーヘッド時間（ロード時間）がとても長く、初期オーバーヘッド時間後のバーストアクセスはそれなりに高速であるという特性を有する。このようなメモリに複数のサブルーチンを固定データとして格納し、これらを順次呼び出す場合、前のサブルーチンの終端アドレスと次のサブルーチンの先頭アドレスとが連続していない限り、サブルーチンを呼び出す毎にロード時間がかかってしまう。これにより、リード時におけるロードのペナルティが画像処理上のボトルネックとして顕在化する。
【０００６】
そこで、本発明の目的は、分散したディスプレイリストを呼び出す際におけるロードのペナルティを隠蔽し、画像処理の高速化を図ることである。
【課題を解決するための手段】
【０００７】
かかる課題を解決すべく、第１の発明は、上位装置と、メモリと、第１および第２のバスと、第１および第２の解析回路と、バス制御回路と、画像処理部とを有する画像処理システムを提供する。上位装置は、時系列的に記述された一連の命令によって画像処理の手順が規定され、この時系列的な記述中に外部情報を取得するためのジャンプ命令を含む主ディスプレイリストを発行する。メモリは、時系列的に記述された一連の命令によって画像処理の手順が規定され、主ディスプレイリストの外部情報となる従ディスプレイリストを格納する。第１のバスは、上位装置に接続されており、第１のバスと異なる第２のバスは、メモリに接続されている。第１の解析回路は、上位装置によって発行された主ディスプレイリストを先読みして順次解析し、ジャンプ命令を抽出する。バス制御回路は、第１の解析回路によって抽出されたジャンプ命令に対応する従ディスプレイリストをメモリより第２のバスを介して取得する。第２の解析回路は、第１の解析回路の後段に設けられ、主ディスプレイリストを順次解析し、この解析結果に基づいて、命令を順次出力する。画像処理部は、第２の解析回路から順次出力された命令に従って、画像処理を行う。ここで、第２の解析回路は、主ディスプレイリストのジャンプ命令が記述されたジャンプ部分で、バス制御回路によって取得された従ディスプレイリストを主ディスプレイリストの一部とみなして解析する。
【０００８】
ここで、第１の発明において、ジャンプ命令は、取得すべき従ディスプレイリストの指定を含んでいてもよい。この場合、バス制御回路は、ジャンプ命令によって指定された従ディスプレイリストをメモリより取得することが好ましい。
【０００９】
第１の発明において、ジャンプ命令は、取得すべき従ディスプレイリストのデータサイズを含んでいてもよい。ここで、第２の解析回路は、主ディスプレイリストを順次解析してジャンプ部分に到達した場合、主ディスプレイリストの解析を中断して、データの取得先をバス制御回路に切り替えることが好ましい。また、第２の解析回路は、バス制御回路から取得したデータ量がジャンプ命令によって指定されたデータサイズに到達した場合、バス制御回路からのデータ取得を終了して、ディスプレイリストにおけるジャンプ部分以降の解析を再開することが好ましい。
【００１０】
第１の発明において、メモリは、複数のメモリセルが直列接続されたメモリであることが好ましい。
【００１１】
第１の発明において、第１の解析回路によって抽出されたジャンプ命令を先入れ先出しのリスト構造で保持するキューバッファをさらに設けてもよい。この場合、バス制御回路は、キューバッファにおけるジャンプ命令の保持順序に従って、ジャンプ命令のそれぞれに対応する従ディスプレイリストを順次取得することが好ましい。
【００１２】
第１の発明において、第２のバスに設けられたダブルバッファをさらに設けてもよい。この場合、バス制御回路は、あるジャンプ命令に対応する従ディスプレイリストに関する一方のバッファからのリードと、次のジャンプ命令に対応する従ディスプレイリストに関する他方のバッファへのロードとを並行して行うことが好ましい。
【００１３】
第２の発明は、時系列的に記述された一連の命令によって画像処理の手順が規定され、この時系列的な記述中に外部情報を取得するためのジャンプ命令を含む主ディスプレイリストを、第１のバスを介して取得する第１のステップと、主ディスプレイリストを先読みして順次解析し、ジャンプ命令を抽出する第２のステップと、抽出されたジャンプ命令に対応し、時系列的に記述された一連の命令によって画像処理の手順が規定され、主ディスプレイリストの外部情報となる従ディスプレイリストを、第１のバスとは異なる第２のバスを介して取得する第３のステップと、主ディスプレイリストを順次解析するとともに、主ディスプレイリストにおけるジャンプ命令が記述されたジャンプ部分で、取得された従ディスプレイリストを主ディスプレイリストの一部とみなして解析し、この解析結果に基づいて、命令を順次出力する第４のステップと、順次出力された命令に従って、画像処理を行う第５のステップとを有する画像処理方法を提供する。
【００１４】
ここで、第２の発明において、ジャンプ命令は、取得すべき従ディスプレイリストの指定を含んでいてもよい。この場合、第４のステップは、ジャンプ命令によって取得された従ディスプレイリストを読み込むステップを有することが好ましい。
【００１５】
第２の発明において、ジャンプ命令は、取得すべき従ディスプレイリストのデータサイズを含んでいてもよい。この場合、第４のステップは、主ディスプレイリストを順次解析してジャンプ部分に到達した場合、主ディスプレイリストの解析を中断して、取得された従ディスプレイリストを読み込むステップと、読み込まれた従ディスプレイリストのデータ量がジャンプ命令によって指定されたデータサイズに到達した場合、従ディスプレイリストの読み込みを終了して、主ディスプレイリストにおけるジャンプ部分以降の解析を再開するステップとを有することが好ましい。
【００１６】
第２の発明において、第３のステップは、抽出されたジャンプ命令を先入れ先出しのリスト構造で保持するステップとを有し、第４のステップは、保持されたジャンプ命令の保持順序に従って、ジャンプ命令のそれぞれに対応する従ディスプレイリストを順次取得するステップを有することが好ましい。
【００１７】
第２の発明において、第３のステップは、あるジャンプ命令に対応する従ディスプレイリストのリードと、次のジャンプ命令に対応する従ディスプレイリストのロードとを並行して行うステップを有することが好ましい。
【発明の効果】
【００１８】
第１または第２の発明によれば、主ディスプレイリストとは別個にリスト化された従ディスプレイリストを、主ディスプレイリストの転送系とは別個の第２のバスにて供給する。従ディスプレイリストは、主ディスプレイリストに記述されたジャンプ命令によって、主ディスプレイリストと紐付けられ、主ディスプレイリストの記述体系の一部として組み込まれる。また、ディスプレイリストの解析系は、主ディスプレイリストの前処理としてその記述内容を先読みして、ジャンプ命令に対応する従ディスプレイリストを取得しておく。そして、主ディスプレイリストのジャンプ命令が記述されたジャンプ部分で、前もって取得された従ディスプレイリストを主ディスプレイリストの一部とみなして解析する。このような従ディスプレイリストのプリフェッチにより、分散した従ディスプレイリストを呼び出す際のロードのペナルティが隠蔽され、画像処理の高速化を図ることができる。
【発明を実施するための最良の形態】
【００１９】
（第１の実施形態）
図１は、本実施形態に係る画像処理システムの全体的なブロック図である。この画像処理システムは、ＣＰＵ１と、メインメモリ２と、ＮＡＮＤメモリ３と、画像プロセッサ４と、表示装置５と、ダブルバッファ１１とを主体に構成されている。
【００２０】
上位装置であるＣＰＵ１は、画像プロセッサ４に実行させるべき主ディスプレイリスト６を発行する。この主ディスプレイリスト６は、時系列的に記述された一連の命令によって画像処理の手順が規定されている。ただし、この主ディスプレイリスト６が従来の構成と異なる点は、それ単独で処理手順を完全に規定するのではなく、これ以外の外部情報と連携することによって、はじめて完全なものになる点である。このような連携を可能にすべく、主ディスプレイリスト６に記述可能な命令として、ジャンプ命令が新規に追加されている。主ディスプレイリスト６にジャンプ命令を記述することにより、このジャンプ命令が記述されたジャンプ部分で、外部情報が参照される。ＣＰＵ１から出力された主ディスプレイリスト６は、ＣＰＵバス７を介して、メインメモリ２または画像プロセッサ４の内部メモリに出力される。なお、主ディスプレイリスト６は、例えば１フレーム毎といった如く、ＣＰＵ１によって随時更新される。
【００２１】
メインメモリ２は、ＣＰＵバス７に接続されており、ＣＰＵ１の指定に応じて主ディスプレイリスト６を格納・保持する。一方、固定データを格納するＮＡＮＤメモリ３は、従来のＣＧＲＯＭに代わりに用いられ、例えばＮＡＮＤ型フラッシュメモリを用いることができる。このＮＡＮＤメモリ３は、ＣＰＵバス７とは異なるＣＧバス８に接続されている。ＮＡＮＤメモリ３に格納される固定データとしては、画像プロセッサ４が描画を行う際に用いられ画像データ（以下、素材（オブジェクト）と呼ばれる画像データ９（以下「素材９」という）や従ディスプレイリスト１０が挙げられる。ここで、素材９は、圧縮形式または非圧縮形式で多数存在し、主ディスプレイリスト６の指定に応じてＮＡＮＤメモリ３から読み出されたものがＣＧバス８を介して画像プロセッサ４内に取り込まれる。
【００２２】
一方、従ディスプレイリスト１０は、上述した主ディスプレイリスト６が参照する外部情報に相当し、時系列的に記述された一連の命令によって画像処理の手順を規定する。この従ディスプレイリスト１０は、主ディスプレイリスト６と同一の記述形式で記述されている。主ディスプレイリスト６をメインルーチンとすると、従ディスプレイリスト１０は、そのサブルーチンに該当する。本実施形態において、従ディスプレイリスト１０は、可変データ（ＣＰＵ１によって随時更新されるデータ）ではなく固定データ（ＣＰＵ１によって随時更新されないデータ）として取り扱われる。また、従ディスプレイリスト１０は、複数存在してもよく、主ディスプレイリスト６の指定に応じてＮＡＮＤメモリ３から読み出されたものがＣＧバス８を介して画像プロセッサ４に取り込まれる。
【００２３】
ＣＧバス８上に存在するダブルバッファ１１は、一対のバッファによって構成されている。ダブルバッファ１１は、一方のバッファからのデータの読み出しと、他方のバッファへのデータの書き込みとを独立して行うことができる。ロード対象となるバッファと、リード対象となるバッファとは、交互に切り替わる。これにより、時系列的に連続する２つの従ディスプレイリスト１０を取得する際、先の従ディスプレイリスト１０に関するＮＡＮＤメモリ３からダブルバッファ１１へのデータ転送（ロード）と、後の従ディスプレイリスト１０に関するダブルバッファ１１から画像プロセッサ４へのデータ転送（リード）とを並行して実行することができる。
【００２４】
画像プロセッサ４は、ディスプレイリスト解析部４ａと、画像処理部４ｂと、ＲＡＭ４ｃと、各種インターフェイス４ｄ〜４ｆとを主体に構成されている。ディスプレイリスト解析部４ａは、ＣＰＵ１によって発行された主ディスプレイリスト６を取得するとともに、取得した主ディスプレイリスト６の記述内容を順次解析する。そして、この解析結果に基づいて、画像処理部４ｂに命令が順次出力される。その際、ディスプレイリスト解析部４ａは、主ディスプレイリスト６におけるジャンプ命令が記述されたジャンプ部分で、従ディスプレイリスト１０を取得し、取得した従ディスプレイリスト１０を主ディスプレイリスト６の一部とみなして解析する。ここで、ディスプレイリスト解析部４ａが主ディスプレイリスト６を取得する経路は２つ存在し、ＣＰＵ１によるモード指定によって、いずれかの取得経路が選択される。ただし、モードの実行中は経路の切り替えが禁止されている。
【００２５】
図２は、第１のモードにおけるディスプレイリスト取得経路を示す図である。主ディスプレイリスト６は、プログラムの内容に応じて、ＣＰＵ１によってメインメモリ２に構築・格納される。ディスプレイリスト解析部４ａは、図１に示したＣＰＵバスインターフェイス４ｄの制御下で、メインメモリ２に格納された主ディスプレイリスト６をＣＰＵバス７を介して取得するとともに、取得した主ディスプレイリスト６の記述内容を解析する。この解析結果に応じて、ディスプレイリスト解析部４ａは、図１に示したＣＧバスインターフェイス４ｅの制御下で、ＮＡＮＤメモリ３に格納された従ディスプレイリスト１０をＣＧバス８を介して取得する。これにより、主ディスプレイリスト６はメインメモリ２より取得され、従ディスプレイリスト１０はメインメモリ２への格納を経ることなく、ＮＡＮＤメモリ３より直接取得されることになる。ここで留意すべきは、主従のディスプレイリスト６，１０の取得経路が別バス化されている点である。このようなバスの帯域分散を図ることによって、画像プロセッサ４に対する全体的な命令量が増大しても、単位フレームあたりに描画可能な図形の量に制限が生じることを有効に抑制できる。
【００２６】
図３は、第２のモードにおけるディスプレイリスト取得経路を示す図である。この場合、ＣＰＵ１によって発行された主ディスプレイリスト６は、ＣＰＵバス７を介して画像プロセッサ４内に取り込まれ、図１に示したＣＰＵバスインターフェイス４ｄおよびＲＡＭインターフェイス４ｆを経て、内部のＲＡＭ４ｃに格納される。そして、ディスプレイリスト解析部４ａは、ＲＡＭ４ｃに格納された主ディスプレイリスト６を取得するとともに、取得した主ディスプレイリスト６の記述内容を解析する。この解析結果に応じて、ディスプレイリスト解析部４ａは、図１に示したＣＧバスインターフェイス４ｅの制御下で、ＮＡＮＤメモリ３に格納された従ディスプレイリスト１０をＣＧバス８を介して取得する。
【００２７】
図４は、ディスプレイリスト解析部４ａのブロック図である。ディスプレイリスト解析部４ａは、前段解析回路４ｇと、後段解析回路４ｈと、キューバッファ４ｉと、バス制御回路４ｊとを有する。この構成の特徴点は、後段解析回路４ｈよりも先行して主ディスプレイリスト６を解析する前段解析回路４ｇを設け、前段解析回路４ｇによって、従ディスプレイリスト１０のサブルーチンコールだけをロードキューとして抽出する点である。
【００２８】
前段解析回路４ｇは、上述した図２または図３の経路のいずれかによって取得した主ディスプレイリスト６を時系列的な記述に即した処理順序（例えば、リストの上から下に向かって１ラインずつ）で先読みして順次解析しつつ、後段解析回路４ｈへ主ディスプレイリスト６をそのままスルー出力する。この解析によって、主ディスプレイリスト６に記述されたジャンプ命令が抽出され時系列的に記述された一連の命令によって画像処理の手順が規定され、抽出されたジャンプ命令がロードキューとしてキューバッファ４ｉに出力される。キューバッファ４ｉは、前段解析回路４ｇから出力されたジャンプ命令を先入れ先出しのリスト構造で保持する。ジャンプ命令の格納先としてキューバッファ４ｉを用いることで、ジャンプ命令の抽出順序を維持でき、これがキューバッファ４ｉからの出力順序として反映される。
【００２９】
ジャンプ命令は、従ディスプレイリスト１０の指定アドレス（ＮＡＮＤメモリ３の格納アドレス）およびそのデータサイズを含む。従ディスプレイリスト１０の指定をジャンプ命令で行うことによって、従ディスプレイリスト１０の選択に関する柔軟性を確保できる。また、データサイズは、指定アドレスを基準としたどこまでの範囲内のデータが従ディスプレイリスト１０なのかを特定するために用いられる。
【００３０】
バス制御回路４ｊは、前段解析回路４ｇによって抽出されたジャンプ命令に対応する従ディスプレイリスト１０をＮＡＮＤメモリ３よりＣＧバス８を介して取得する。従ディスプレイリスト１０の取得順序は、キューバッファ４ｉにおけるジャンプ命令の保持順序であり、ジャンプ命令のそれぞれに対応する従ディスプレイリスト１０が順次取得される。具体的には、前段解析回路４ｇから出力された指定アドレスからデータサイズ相当に至るまでの範囲内のデータ、すなわち、従ディスプレイリスト１０がＣＧバスインターフェイス４ｅより取得され、後段解析回路４ｈに転送される。
【００３１】
図５は、バス制御回路４ｊの状態遷移図である。バス制御回路４ｊの状態は、（１）待機状態、（２）ロードフロー、（３）リードフロー、（４）クリアフローといった順序の基本サイクルで遷移する。ただし、あるロードキューのリード時に、次のロードキューのロードを並行して行う場合には、（５）インタラプトロードフローに移行する。
【００３２】
（１）待機状態
キューバッファ４ｉにロードキューがあれば、（２）のロードフローへ移行する。待機状態において、ロード終了の有無を示すネクストロード完了フラグは０とする。また、ダブルバッファ１１のどちらを格納先とするかを指定するリードデータ選択フラグも０とする。このリードデータ選択フラグによって、ロード先となるバッファとリード元となるバッファとが排他的に制御される。
【００３３】
（２）ロードフロー
ＣＧバスインターフェイス４ｅに対して、リードデータ選択フラグと同じデータセレクト信号とともにロード要求を送る。このロード要求がＣＧバスインターフェイス４ｅによって受け付けられたら、（３）のリードフローへ移行する。
【００３４】
（３）リードフロー
ネクストロード完了フラグは０の場合、キューバッファ４ｉにロードキューがあれば、（５）のインタラプトロードフローに移行する。ＣＧバスインターフェイス４ｅに対して、リードデータ選択フラグと同じデータセレクト信号とともに、リード要求を送り、帰ってきたデータ（リードデータ）を後段解析回路４ｈに出力する。これによって、あるジャンプ命令に対応する従ディスプレイリスト１０がダブルバッファ１１の一方からリードしている過程において、次のジャンプ命令に対応する従ディスプレイリスト１０のロードが並行して行われ、そのためのバッファとして、リードされていない方のバッファが用いられる。リード用バッファおよびロード用バッファは交互に反転する。
【００３５】
（４）クリアフロー
ネクストロード完了フラグが０であれば、（１）の待機状態へ移行する。また、ネクストロード完了フラグが１であれば、リードデータ選択フラグをトグルして、ネクストロード完了フラグを０として、（３）のリードフローへ移行する。
【００３６】
（５）インタラプトロードフロー
ＣＧバスインターフェイス４ｅに対して、リードデータ選択フラグと反対のデータセレクト信号とともにロード要求を送る。このロード要求がＣＧバスインターフェイス４ｅによって受け付けられたら、ネクストロード完了フラグを１として、（３）のリードフローへ移行する。
【００３７】
図４に示した後段解析回路４ｈは、前段解析回路４ｇよりスルー出力された主ディスプレイリスト６を時系列的な記述に即した処理順序で順次解析する。そして、処理対象となるラインに記述された命令が通常の命令（非ジャンプ命令）の場合、この命令が画像処理部４ｂに出力される。この通常命令には、ＮＡＮＤメモリ３に格納された素材９をＲＡＭ４ｃに転送する手順を規定する転送命令と、ＲＡＭ４ｃに格納された素材９を用いた描画手順を規定する描画命令とが存在する。一方、処理対象となるラインに記述された命令がジャンプ命令の場合、リスト供給元を前段解析回路４ｇからバス制御回路４ｊに変更される。これによって、このジャンプ命令が記述されたジャンプ部分で、主ディスプレイリスト６の解析が一旦中断され、ジャンプ命令によって指定された従ディスプレイリスト１０がバス制御回路４ｊより供給される。これを受けた後段解析回路４ｈは、従ディスプレイリスト１０のデータサイズに到達するまで、バス制御回路４ｊからの従ディスプレイリスト１０を主ディスプレイリスト６の一部とみなして解析を続け、その各ラインに記述された命令を画像処理部４ｂに順次出力する。そして、データサイズに到達した時点で、リスト供給元がバス制御回路４ｊから前段解析回路４ｇに変更される。これによって、データの中断していた主ディスプレイリスト６のジャンブ部分以降の解析が再開される。
【００３８】
図１に示したように、画像処理部４ｂは、ディスプレイリスト解析部４ａから順次出力された命令に応じた処理を行う。具体的には、ディスプレイリスト解析部４ａからの命令が転送命令の場合、この転送命令によって指定された素材９がＮＡＮＤメモリ３からＲＡＭ４ｃに転送される。また、描画命令の場合、この描画命令によって指定された素材９がＲＡＭインターフェイス４ｆを介して読み出され、描画命令に応じた描画処理が行われた後、ＲＡＭ４ｃ内に構築されたフレームバッファに画像が書き込まれる。特に、描画命令が３Ｄ描画命令の場合、この描画命令に応じた三次元描画、例えば三角形ストリップによる多角形ポリゴンの生成等が行われた後、フレームバッファに画像が書き込まれる。フレームバッファに格納された表示画像は、ＲＡＭインターフェイス４ｆを介して表示装置５に出力され、これによって、表示装置５に画像が表示される。
【００３９】
つぎに、ディスプレイリスト解析の一例を図６に示したフローチャートを参照しつつ具体的に説明する。ここでは、特に、主ディスプレイリスト６におけるジャンプ部分と、トライアングル描画部分を一例とした従ディスプレイリスト１０について説明する。
【００４０】
まず、前段解析回路４ｇによって、主ディスプレイリスト６が先読みで解析され、ステップ５のジャンプ命令（JUNPCGB）が抽出される。図７に示すジャンプ命令（JUMPCGB）は、ＣＧバス８上に存在する従ディスプレイリスト１０へのジャンプと、データサイズによる主ディスプレイリスト６への復帰とを指示する命令である。ここで、「CGBADR」は、ＣＧバス８上の従ディスプレイリスト１０の開始点を設定するパラメータであり、「CGBDTSZ」は、ＣＧバス８上の従ディスプレイリスト１０のデータサイズを設定するパラメータである。これによって、後段解析回路４ｈにおけるステップ５の実行に先立ち、ステップ６，７の手順を規定した従ディスプレイリスト１０が予め取得される。それとともに、ステップ５のジャンプ命令（JUNPCGB）の抽出に続いて、ステップ１１のジャンプ命令（JUNPCGB）が抽出される。これによって、後段解析回路４ｈにおけるステップ１１の実行に先立ち、ステップ１２〜１４の手順を規定した従ディスプレイリスト１０も予め取得される。これらの取得された従ディスプレイリスト１０は、主ディスプレイリスト６の記述順序、換言すれば、ジャンプ命令の抽出順序で後段解析回路４ｈに出力される。
【００４１】
このような前段解析回路４ｇによる先読みに続き、後段解析回路４ｈは、主ディスプレイリスト６の記述内容を解析する。これによって、ステップ１の描画領域設定（SETAREA）、ステップ２の光源設定（SETLIGHT）、ステップ３の座標変換設定（SETMATRIX）、ステップ４の描画エフェクト設定（SETEFFECT）が順次出力される。
【００４２】
ステップ５において、図７に示すジャンプ命令（JUMPCGB）が記述されたジャンプ部分に到達した場合、バス制御回路４ｊによって取得済みの従ディスプレイリスト１０が読み込まれる。そして、テクスチャ設定（SETTEXTURE）が出力された後（ステップ６）、図８に示すトライアングル描画（TRIANGLE3D）が出力される（ステップ７）。このトライアングル描画（TRIANGLE3D）は、三次元空間に三角形ポリゴンを描画する命令である。ここで、「CL」は背面カリングの有無、「TX」はテクスチャマッピングの有無、「FS」はポリゴン描画方法（三角形ポリゴン描画、三角形ファン描画、三角形リスト描画等）「TRINUM」は三角形の数ｎをそれぞれ設定するパラメータである。また、（ＴＸn，ＴＹn，ＴＺn）は頂点の法線ベクトル、（ＮＸn，ＮＹn，ＮＺn）は頂点の法線ベクトル、MTRXCE0n〜MTRXCE3nはマトリクスブレンディング係数、MTRXID0n〜MTRXID3Nはマトリクスブレンディングインデックス、（ＴＵn，ＴＶn）はテクスチャ座標、（ＴＶＣ_Ａn，ＴＶＣ_Ｒn，ＴＶＣ_Ｇn，ＴＶＣ_Ｂn）は頂点カラーをそれぞれ設定するパラメータである。ここで、添字ｎが付されたパラメータは、三次元図形を規定する頂点情報に相当し、描画すべき三次元図形が複雑になるほど記述量も増大する。したがって、主ディスプレイリスト６と切り離して、従ディスプレイリスト１０として管理することが有効である。
【００４３】
そして、上述したデータサイズ相当のデータ量を取得し、その解析が終了した時点で主ディスプレイリスト６に復帰する。これによって、光源設定（SETLIGHT）、座標変換設定（SETMATRIX）、描画エフェクト設定（SETEFFECT）が順次出力される（ステップ８〜１０）。
【００４４】
ステップ１１において、ジャンプ命令（JUMPCGB）が記述されたジャンプ部分に再び到達した場合、バス制御回路４ｊによって取得済みの従ディスプレイリスト１０が読み込まれる。そして、テクスチャ設定（SETTEXTURE）が出力された後（ステップ１２）、図９に示す頂点インデックス登録（SET3DVTXIDX）が出力される（ステップ１３）。この頂点インデックス登録（SET3DVTXIDX）は、３Ｄトライアングルまたは３Ｄライン描画でインデックス頂点を用いる場合の頂点情報を登録する命令である。ここで、「VTXIDXST」は登録インデックス開始位置、「VTXIDXED」は登録インデックス終了位置をそれぞれ設定するパラメータであり、それ以外はトライアングル描画（TRIANGLE3D）のパラメータと同じである。この命令に関しても、トライアングル描画（TRIANGLE3D）と同様、描画すべき三次元図形が複雑になるほど記述量も増大するので、主ディスプレイリスト６と切り離して、従ディスプレイリスト１０として管理することが有効である。
【００４５】
そして、ステップ１４において、図１０に示す頂点インデックスによるトライアングル描画（TRIANGLE3D_idx）が出力される。このトライアングル描画（TRIANGLE3D_idx）は、３D空間に頂点インデックスを使用した三角形を描画する命令である。ここで、「ＶＴＸＩＤn」は頂点インデックス番号を整数で設定するパラメータであり、それ以外はトライアングル描画（TRIANGLE3D）のパラメータと同じである。この命令に関しても、描画すべき三次元図形が複雑になるほど記述量も増大するので、主ディスプレイリスト６と切り離して、従ディスプレイリスト１０として管理することが有効である。そして、上述したデータサイズ相当のデータ量を取得し、その解析が終了した時点で主ディスプレイリスト６に復帰し、ジャンブ部分以降の解析が再開される。
【００４６】
図１１は、本実施形態に係るディスプレイリスト解析処理のタイミングチャートである。以下、主ディスプレイリスト６を「メインルーチン」と称し、２つの従ディスプレイリスト１０をそれぞれ「サブルーチンＳＲa」，「サブルーチンSRb」と称する。前段解析回路４ｇによる先行解析によって、メインルーチン中にサブルーチンＳＲaが検出されると、キューバッファ４ｉにロードキューＳＲaが貯まる。その後、サブルーチンＳＲbが検出されると、キューバッファ４ｉにロードキューＳＲaに続いてロードキューＳＲbが貯まる。これに続いて、サブルーチンＳＲaのロード要求がＣＧバスインターフェイス４ｅに送られる。このロード要求が受け付けられたら、続いてサブルーチンＳＲbのロード要求がＣＧバスインターフェイス４ｅに送られる。そして、ＣＧバスインターフェイス４ｅがサブルーチンＳＲaのロードを終えると、後段解析回路４ｈにサブルーチンＳＲaが送られる。後段解析回路４ｈがサブルーチンＳＲaを解析している間に、ＣＧバスインターフェイス４ｅはサブルーチンＳＲbのロードを行う。これにより、後段解析回路４ｈによる解析時間と、それに続くサブルーチンＳＲa，ＳＲbのロード時間が重なるため、ＮＡＮＤメモリ３の欠点であるロード時間が隠蔽される。これに対して、図１２に示すように、メインルーチンの先行解析を行わない比較例の場合、サブルーチンＳＲa，ＳＲbのロードオーバーヘッドおよびデータロードが、待機状態にそのまま直結してしまうので、上述したロード時間の短縮を図ることができない。
【００４７】
このように、本実施形態によれば、主ディスプレイリスト６とは別個にリスト化された従ディスプレイリスト１０を、主ディスプレイリスト６の転送系とは別個のＣＧバス８にて供給する。従ディスプレイリスト１０は、主ディスプレイリスト６に記述されたジャンプ命令によって、主ディスプレイリスト６と紐付けられ、主ディスプレイリスト６の記述体系の一部として組み込まれる。また、前段解析回路４ｇは、主ディスプレイリスト６の前処理としてその記述内容を先読みして、ジャンプ命令に対応する従ディスプレイリスト１０を先行して取得する。そして、後段解析回路４ｈは、主ディスプレイリスト６のジャンプ命令が記述されたジャンプ部分で、前もって取得された従ディスプレイリスト１０を主ディスプレイリスト６の一部とみなして解析する。このような従ディスプレイリスト１０のプリフェッチにより、分散した従ディスプレイリスト１０を呼び出す際のロードのペナルティが隠蔽され、画像処理の高速化を図ることができる。
【００４８】
また、本実施形態によれば、素材９および従ディスプレイリスト１０をＮＡＮＤメモリ３に共通して格納・保持することによって、従ディスプレイリスト１０を格納するためのデバイスを別個に設ける必要がない。これにより、画像処理システムのコストを有効に低減することができる。
【００４９】
さらに、本実施形態によれば、ＣＧバス８に設けられたバッファをダブルバッファ化し、ロード対象となるバッファとリード対象となるバッファとを交互に切り替える。これにより、ある従ディスプレイリスト１０のリードと、その次の従ディスプレイリスト１０のロードとを並行して行うことができるので、複数の従ディスプレイリスト１０を取得すべき状態が生じても、これらを高速に取得することができる。
【００５０】
（第２の実施形態）
ＮＡＮＤ型フラッシュメモリに代表されるＮＡＮＤメモリ３は、シーケンシャルなアドレスに対する連続リードであっても、所定のアドレス（ＮＡＮＤ境界アドレス）毎にロード時間がかかることが知られている。したがって、１つのサブルーチンのサイズがこのアドレスを跨ぐ場合も考慮する必要がある。図１３は、この条件を考慮したバス制御回路４ｊの状態遷移図である。この場合、図５との最大の相違としては、（６）ユニットクリアフローを新規に追加した点にある。また、それに伴い、上記（１）〜（５）についても変更が生じる。以下、図５に示した状態遷移図との相違点を示す（これ以外は図５の場合と同様）。
【００５１】
（１）待機状態
ＮＡＮＤ境界アドレスはレジスタ値で選択可能とする。
【００５２】
（２）ロードフロー
ロードアドレスに、ロードしようとしているサブルーチン先頭アドレスの後ろで、もっとも近いＮＡＮＤ境界アドレスを代入する。
【００５３】
（３）リードフロー
ネクストロード完了フラグが０である場合、ロードアドレスが、サブルーチン終端アドレスを超えていない場合、ユニットロードフローへと移行する。それとともに、ロードアドレスが、サブルーチン終端アドレスを超えている場合で、CGBLQにロードキューがあれば、インタラプトロードフローへと移行する。また、 境界アドレスを越えてリードしようとした場合、ユニットクリアフローへと移行する。
【００５４】
（４）クリアフロー
ネクストロード完了フラグが１であれば、リードデータ選択フラグをトグルして、ネクストロード完了フラグを０として、ロードアドレスにインタラプトロードアドレスを代入して、リードフローへと移行する。
【００５５】
（５）インタラプトロードフロー
インタラプトロードアドレスに、ロードしようとしているサブルーチン先頭アドレスの後ろで、もっとも近いＮＡＮＤ境界アドレスを代入する。
【００５６】
（６）ユニットクリアフロー
リードデータ選択フラグをトグルして、ネクストロード完了フラグを0として、リードフローへと移行する。
【００５７】
なお、上述した各実施形態では、一般的なＣＧＲＯＭの代わりにＮＡＮＤメモリ３を用いる例について説明した。ＮＡＮＤメモリ３は、不揮発性を有する複数の記憶素子（メモリセル）が直列接続された構造のメモリであり、その代表例として、浮遊ゲートに対するキャリア（電子）の注入量をデータに応じて制御するタイプや、強誘電体を用いたタイプ等が知られている。また、ＮＡＮＤメモリ３に代えて、これと類似した接続構造を有するＡＮＤメモリを用いてもよい。これらの直列接続型メモリはいずれも、初期のロードのペナルティが大きいという欠点があるが、本発明を適用すれば、このペナルティを有効に隠蔽することができる。また、このような直列接続型メモリへの適用は、本発明の最適な実施例の一つではあるものの、本発明はこれに限定されるものではなく、通常のＣＧＲＯＭを含めて各種のメモリに適用することも可能である。
【図面の簡単な説明】
【００５８】
【図１】画像処理システムの全体的なブロック図
【図２】第１のモードにおけるディスプレイリスト取得経路を示す図
【図３】第２のモードにおけるディスプレイリスト取得経路を示す図
【図４】ディスプレイリスト解析部のブロック図
【図５】第１の実施形態に係るバス制御回路の状態遷移図
【図６】ディスプレイリスト解析の一例を示すフローチャート
【図７】主ディスプレイリストのジャンプ命令の記述例を示す図
【図８】従ディスプレイリストの記述例を示す図
【図９】従ディスプレイリストの記述例を示す図
【図１０】従ディスプレイリストの記述例を示す図
【図１１】本実施形態に係るディスプレイリスト解析処理のタイミングチャート
【図１２】比較例におけるディスプレイリスト解析処理のタイミングチャート
【図１３】第２の実施形態に係るバス制御回路の状態遷移図
【符号の説明】
【００５９】
１  ＣＰＵ
２  メインメモリ
３  ＮＡＮＤメモリ
４  画像プロセッサ
５  表示装置
６  主ディスプレイリスト
７  ＣＰＵバス
８  ＣＧバス
９  素材（画像データ）
１０  従ディスプレイリスト
１１  ダブルバッファ
４ａ  ディスプレイリスト解析部
４ｂ  画像処理部
４ｃ  ＲＡＭ
４ｄ  ＣＰＵバスインターフェイス
４ｅ  ＣＧバスインターフェイス
４ｆ  ＲＡＭインターフェイス
４ｇ  前段解析回路
４ｈ  後段解析回路
４ｉ  キューバッファ
４ｊ  バス制御回路
【図１】
0004669948.tif 000002
【図２】
0004669948.tif 000003
【図３】
0004669948.tif 000004
【図４】
0004669948.tif 000005
【図５】
0004669948.tif 000006
【図６】
0004669948.tif 000007
【図７】
0004669948.tif 000008
【図８】
0004669948.tif 000009
【図９】
0004669948.tif 000010
【図１０】
0004669948.tif 000011
【図１１】
0004669948.tif 000012
【図１２】
0004669948.tif 000013
【図１３】
0004669948.tif 000014