(57)【要約】【課題】図形処理装置において、分離したバス上のデータ転送を高速化する。【解決手段】２ポートマイクロプロセッサ１は、システムバス９に接続される第１のポート１０２と、ローカルバス２に接続される第２のポート１０３を有する。そして、第１のポート１０２および第２のポート１０３を介して、システムメモリ１０およびフレームメモリ４に同時にアクセス可能に構成される。【選択図】図１
2006260590.tif 000002
【特許請求の範囲】
【請求項１】
アドレス、データ、制御の各バスからなるシステムバスにそれぞれ接続されたＣＰＵおよびシステムメモリと、
アドレス、データ、制御の各バスからなるローカルバスにそれぞれ接続されたローカルメモリおよびフレームメモリと、
上記システムバスに接続される第１のポートおよび上記ローカルバスに接続される第２のポートを有する図形処理用プロセッサとを具備し、
該図形処理用プロセッサは、上記第１および第２のポートを介して上記第１のメモリおよび第２のメモリに同時にアクセス可能であることを特徴とする図形処理装置。
【請求項２】
請求項１記載の図形処理装置の使用方法であって、
上記システムメモリまたはローカルメモリ上に図形転送プログラムを格納しておくとともに、上記システムメモリ上に各種図形データを格納しておき、
上記システムメモリ上の図形データを上記フレームメモリへ転送する際には、上記ＣＰＵにより当該図形転送プログラムの先頭アドレスおよびパラメータの先頭アドレスを上記システムメモリまたは上記ローカルメモリに書き込み、
上記図形処理用プロセッサに、上記図形転送プログラムおよびパラメータに従い、上記第１及び第２のポートを介して上記システムメモリ上の図形データを上記フレームメモリ上へ転送させることを特徴とする図形処理装置の使用方法。
【請求項３】
上記図形データの転送の際に上記図形処理用プロセッサは、システムメモリの転送元領域の図形データに対応するフレームメモリの転送先領域のデータを読みだして両データに論理演算を施し、当該論理演算結果を上記フレームメモリの転送先領域に書き込むことを特徴とする請求項２記載の図形処理装置の使用方法。
【請求項４】
請求項１記載の図形処理装置の使用方法であって、
上記システムメモリまたはローカルメモリ上に各種図形描画プログラムを格納しておき、
上記フレームメモリへの図形描画時には、上記ＣＰＵにより当該図形描画プログラムの先頭アドレスとパラメータの先頭アドレスとからなるワークリストを上記システムメモリまたは上記ローカルメモリ上に作成し、
上記ＣＰＵの指令により上記図形処理用プロセッサに上記ワークリストの内容を読み込ませ、上記図形処理用プロセッサに上記ワークリストにより指示された図形描画プログラムおよびパラメータに従って上記フレームメモリ上に図形描画を行わせることを特徴とする図形処理装置の使用方法。
【請求項５】
アドレス、データ、制御の各バスからなるシステムバスにそれぞれ接続されたＣＰＵおよび第１のメモリと、
アドレス、データ、制御の各バスからなるローカルバスに接続された第２のメモリと、
上記システムバスに接続される第１のポート、上記ローカルバスに接続される第２のポートおよび複数の内部レジスタを有する図形処理用プロセッサとを具備し、
該図形処理用プロセッサは、上記第１のポートを介して上記第１および第２のメモリの一方から一の内部レジスタに図形データをロードする処理と、他の内部レジスタから上記第１および第２のメモリの他方へデータをストアする処理とを並行して実行可能であることを特徴とする図形処理装置。
【請求項６】
アドレス、データ、制御の各バスからなるシステムバスにそれぞれ接続されたＣＰＵおよび第１のメモリと、
アドレス、データ、制御の各バスからなるローカルバスに接続された第２のメモリと、
上記システムバスに接続される第１のポート、上記ローカルバスに接続される第２のポート、および複数の内部レジスタを有する特定処理専用プロセッサとを具備し、
該特定処理専用プロセッサは、上記第１のポートを介して上記第１および第２のメモリの一方から一の内部レジスタにデータをロードする処理と、他の内部レジスタから上記第１および第２のメモリの他方へデータをストアする処理とを並行して実行可能であることを特徴とする情報処理装置。
【請求項７】
命令の解読、実行を行うプロセッサ部と、
アドレス、データ、制御信号をメモリとの間で授受する２つのポートと、
上記プロセッサ部からの書き込みおよび２つのポートへの読み出しが可能なアドレスバッファと、
２つのポートからの読み出し、書き込みおよび上記プロセッサ部による命令読み出しが可能なデータバッファと、
上記プロセッサ部からのメモリアクセス要求およびポート指定信号により、指定されたポートを介して上記アドレスバッファからメモリへのアドレス転送、およびデータバッファとメモリとの間のデータ転送を制御する手段とを備え、
命令フェッチおよびデータアクセスを２つのメモリに対して行えることを特徴とするマイクロプロセッサ。
【請求項８】
上記プロセッサ部からも上記データバッファを読み出し書き込み可能としたことを特徴とする請求項７記載のマイクロプロセッサ。
【請求項９】
上記プロセッサ部は、
ビットマップメモリのＸ方向のワード数(メモリ幅)を記憶するレジスタと、
ビットマップメモリ上に定義した３つの矩形領域(転送元領域、パターン領域、転送先領域)のワードアドレスを記憶するレジスタ(転送元アドレスレジスタ、パターンアドレスレジスタ、転送先アドレスレジスタ)と、
転送元領域と転送先領域のビット位置の差を記憶する転送元シフト数レジスタと、
パターン領域と転送先領域のビット位置の差を記憶するパターンシフト数レジスタと、
転送元データを転送元シフト数レジスタに基いてシフトし、またはパターンデータをパターンシフト数レジスタに基いてシフトする手段と、
該シフト後の転送元データ、パターンデータと転送先データとの論理演算を行う手段と、
転送先領域の左端、右端で、書き込み禁止領域を指定するマスク手段と、
該マスク手段に基いて、演算結果と転送先データとを合成する手段を備え、
３オペランドの矩形領域転送をポート間で任意に行うことを特徴とする請求項７記載のマイクロプロセッサ。
【請求項１０】
上記ポート指定信号を、メモリアドレスに基づいて生成するポート指定手段を設けたことを特徴とする請求項７記載のマイクロプロセッサ。
【請求項１１】
命令の解読、実行を行うプロセッサ部と、
アドレス、データ、制御信号をメモリとの間で授受する２つのポートと、
各ポートに専用のアドレスバッファ、データバッファと、
各ポートの動作状況を管理する手段と、
メモリより読みだしたデータを上記プロセッサ部内のレジスタに書き込む手段とを備え、
上記２つのポートを介して２つのメモリに同時にアクセスを行なえることを特徴とするマイクロプロセッサ。
【請求項１２】
固定長命令を実行するマイクロプロセッサにおいて、
プログラムから読みだされた主命令を保持する第１の命令保持手段と、
上記主命令に付随する従命令を保持する第２の命令保持手段と、
上記主命令および従命令を解読する解読手段と、
上記主命令の解読の結果、当該主命令が従命令を使用する命令である場合に、上記従命令保持手段に保持された従命令を解読して実行することを特徴とするマイクロプロセッサ。
【請求項１３】
リードモディファイライト命令を上記主命令および従命令で表わし、主命令により、従命令を保持するレジスタの指定およびメモリアドレスを保持するレジスタの指定を行い、従命令により、メモリから読みだされたデータを格納するレジスタの指定および演算内容の指定を行い、主命令に従ってメモリからデータが読み出されると直ちに上記従命令を実行し、該実行結果をメモリに書き込むことにより、連続する２回のメモリサイクルでリードモディファイライト処理を行なえることを特徴とする請求項１２記載のマイクロプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、図形処理方式に係り、特にバス分離されたメモリ間の図形データの転送に好適な処理方式に関する。
【背景技術】
【０００２】
従来、アドレス、データ、制御信号の各バスを２組有するマイクロプロセッサの方式としては、ハーバードアーキテクチャが知られており、この方式は命令バスとデータバスとを分離することにより命令フェッチとデータアクセスとの競合を避けるようにしたものである。
【０００３】
また、図形処理用のＬＳＩとしては、東芝レビュー43巻12号(1988年)第932頁から第935頁において論じられているビットマップコントロールプロセッサＢＭＣＰがある。このＢＭＣＰは、ＣＰＵおよびシステムメモリが接続されるシステムバスに８ビットのデータバスを有し、これとは別に64本のローカルメモリデータバスと24本のアドレスバスを有し、このアドレスバスおよびローカルメモリデータバスにより８面のプレーン方式のローカルメモリ(画像メモリ)をアクセスする。また、アドレスをラッチすることによりＢＭＣＰがシステムメモリをアクセスすることも可能である。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記従来技術のうち、ハーバードアーキテクチャは命令バスとデータバスが専用化されており、図形処理の中で最も頻繁に行われるシステムメモリとフレームメモリとの間の図形転送のように、２組のバスを共にデータアクセスに使用する点については配慮がされていない。
【０００５】
一方、前記ＢＭＣＰは２組のバスをデータアクセスに使用できるが、アドレスバスが１つであり、２つのメモリを同時にアクセスできるかどうかは不明である。
【０００６】
また、あるメモリ番地のデータを読みだして処理を施した後、元の番地に書き戻すという図形処理でよく用いられるいわゆるリードモディファイライト処理の実行において、従来の汎用マイクロプロセッサでは、以下のような問題があった。
【０００７】
すなわち、まず、ＣＩＳＣ(Complexed Instruction Set Computer)型の汎用プロセッサでは、演算命令のソースオペランドとデステイネーションオペランドにメモリアドレスを指定でき、１命令でリードモディファイライト処理を記述することが可能であるが、命令長が長くなるという問題があり、また、リードサイクルとライトサイクルの間にウエイトサイクルを入れずに実行できるか否かは明らかでない。グラフィックス処理専用のプロセッサには、リードモディファイライト処理を連続２メモリサイクルで実行するものがあるが、モディファイの機能は限られたものである。ＲＩＳＣ(Reduced Instruction Set Computer)型のプロセッサでは、固定長命令が基本であり、オペランドの対象をメモリにできるのはロード命令とストア命令である。したがって、リードモディファイライト処理を実行するには、ロード命令、演算命令、ストア命令の３つの命令が必要であり、ロードとストアとを連続２メモリサイクルで実行することができなかった。
【０００８】
本発明の目的は、図形処理装置あるいは情報処理装置において、分離したバス上のメモリアクセスを同時に行ない、２つのメモリ間の図形あるいはデータ転送を高速化することにある。
【０００９】
また、本発明の他の目的は、ＲＩＳＣ型プロセッサにおいて、図形処理で多用されるリードモディファイライトの処理を、リードサイクルとライトサイクルとの間に空きサイクルを入れずに実行可能とすることにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明による図形処理装置は、アドレス、データ、制御の各バスからなるシステムバスにそれぞれ接続されたＣＰＵおよびシステムメモリと、アドレス、データ、制御の各バスからなるローカルバスにそれぞれ接続されたローカルメモリおよびフレームメモリと、上記システムバスに接続される第１のポートおよび上記ローカルバスに接続される第２のポートを有する図形処理用プロセッサとを具備し、該図形処理用プロセッサは、上記第１および第２のポートを介して上記第１のメモリおよび第２のメモリに同時にアクセス可能としたものである。
【００１１】
この図形処理装置の使用方法としては、上記システムメモリまたはローカルメモリ上に図形転送プログラムを格納しておくとともに、上記システムメモリ上に各種図形データを格納しておき、上記システムメモリ上の図形データを上記フレームメモリへ転送する際には、上記ＣＰＵにより当該図形転送プログラムの先頭アドレスおよびパラメータの先頭アドレスを上記システムメモリまたは上記ローカルメモリに書き込み、上記図形処理用プロセッサに、上記図形転送プログラムおよびパラメータに従い、上記第１及び第２のポートを介して上記システムメモリ上の図形データを上記フレームメモリ上へ転送させることが考えられる。この図形データの転送の際に上記図形処理用プロセッサは、システムメモリの転送元領域の図形データに対応するフレームメモリの転送先領域のデータを読みだして両データに論理演算を施し、当該論理演算結果を上記フレームメモリの転送先領域に書き込むことができる。
【００１２】
上記図形処理装置の他の使用方法としては、上記システムメモリまたはローカルメモリ上に各種図形描画プログラムを格納しておき、上記フレームメモリへの図形描画時には、上記ＣＰＵにより当該図形描画プログラムの先頭アドレスとパラメータの先頭アドレスとからなるワークリストを上記システムメモリまたは上記ローカルメモリ上に作成し、上記ＣＰＵの指令により上記図形処理用プロセッサに上記ワークリストの内容を読み込ませ、上記図形処理用プロセッサに上記ワークリストにより指示された図形描画プログラムおよびパラメータに従って上記フレームメモリ上に図形描画を行わせる方法が考えられる。
【００１３】
本発明による図形処理装置は、他の見地によれば、アドレス、データ、制御の各バスからなるシステムバスにそれぞれ接続されたＣＰＵおよび第１のメモリと、アドレス、データ、制御の各バスからなるローカルバスに接続された第２のメモリと、上記システムバスに接続される第１のポート、上記ローカルバスに接続される第２のポートおよび複数の内部レジスタを有する図形処理用プロセッサとを具備し、該図形処理用プロセッサは、上記第１のポートを介して上記第１および第２のメモリの一方から一の内部レジスタに図形データをロードする処理と、他の内部レジスタから上記第１および第２のメモリの他方へデータをストアする処理とを並行して実行可能である。
【００１４】
また、本発明による情報処理装置は、アドレス、データ、制御の各バスからなるシステムバスにそれぞれ接続されたＣＰＵおよび第１のメモリと、アドレス、データ、制御の各バスからなるローカルバスに接続された第２のメモリと、上記システムバスに接続される第１のポート、上記ローカルバスに接続される第２のポート、および複数の内部レジスタを有する特定処理専用プロセッサとを具備し、該特定処理専用プロセッサは、上記第１のポートを介して上記第１および第２のメモリの一方から一の内部レジスタにデータをロードする処理と、他の内部レジスタから上記第１および第２のメモリの他方へデータをストアする処理とを並行して実行可能であることを特徴とするものである。
【００１５】
本発明によるマイクロプロセッサは、命令の解読、実行を行うプロセッサ部と、アドレス、データ、制御信号をメモリとの間で授受する２つのポートと、上記プロセッサ部からの書き込みおよび２つのポートへの読み出しが可能なアドレスバッファと、２つのポートからの読み出し、書き込みおよび上記プロセッサ部による命令読み出しが可能なデータバッファと、上記プロセッサ部からのメモリアクセス要求およびポート指定信号により、指定されたポートを介して上記アドレスバッファからメモリへのアドレス転送、およびデータバッファとメモリとの間のデータ転送を制御する手段とを備え、命令フェッチおよびデータアクセスを２つのメモリに対して行えることを特徴とするものである。上記プロセッサ部からも上記データバッファを読み出し書き込み可能としてもよい。
【００１６】
上記プロセッサ部は、例えば、ビットマップメモリのＸ方向のワード数(メモ
リ幅)を記憶するレジスタと、ビットマップメモリ上に定義した３つの矩形領域(転送元領域、パターン領域、転送先領域)のワードアドレスを記憶するレジスタ(転送元アドレスレジスタ、パターンアドレスレジスタ、転送先アドレスレジスタ)と、転送元領域と転送先領域のビット位置の差を記憶する転送元シフト数レジスタと、パターン領域と転送先領域のビット位置の差を記憶するパターンシフト数レジスタと、転送元データを転送元シフト数レジスタに基いてシフトし、またはパターンデータをパターンシフト数レジスタに基いてシフトする手段と、該シフト後の転送元データ、パターンデータと転送先データとの論理演算を行う手段と、転送先領域の左端、右端で、書き込み禁止領域を指定するマスク手段と、該マスク手段に基いて、演算結果と転送先データとを合成する手段を備え、３オペランドの矩形領域転送をポート間で任意に行うことを特徴とするものである。
【００１７】
上記ポート指定信号を生成する手段として、メモリアドレスに基づいて当該信号を生成するポート指定手段を設けてもよい。
【００１８】
本発明によるマイクロプロセッサは、他の見地によれば、命令の解読、実行を行うプロセッサ部と、アドレス、データ、制御信号をメモリとの間で授受する２つのポートと、各ポートに専用のアドレスバッファ、データバッファと、各ポートの動作状況を管理する手段と、メモリより読みだしたデータを上記プロセッサ部内のレジスタに書き込む手段とを備え、上記２つのポートを介して２つのメモリに同時にアクセスを行なえることを特徴とするものである。
【００１９】
本発明による他のマイクロプロセッサは、固定長命令を実行するマイクロプロセッサにおいて、プログラムから読みだされた主命令を保持する第１の命令保持手段と、上記主命令に付随する従命令を保持する第２の命令保持手段と、上記主命令および従命令を解読する解読手段と、上記主命令の解読の結果、当該主命令が従命令を使用する命令である場合に、上記従命令保持手段に保持された従命令を解読して実行することを特徴とするものである。
【００２０】
このマイクロプロセッサにおいて、リードモディファイライト命令を上記主命令および従命令で表わし、主命令により、従命令を保持するレジスタの指定およびメモリアドレスを保持するレジスタの指定を行い、従命令により、メモリから読みだされたデータを格納するレジスタの指定および演算内容の指定を行い、主命令に従ってメモリからデータが読み出されると直ちに上記従命令を実行し、該実行結果をメモリに書き込むことにより、連続する２回のメモリサイクルでリードモディファイライト処理を行なえるようにすることができる。
【００２１】
（作用）
上記２ポートを有するマイクロプロセッサは、命令の読み出し、解読、実行、データの格納を好ましくはパイプライン処理し、メモリアクセス命令の場合は、メモリアクセス処理専用のユニットに処理を委託した後、次の命令実行を行なう。メモリアクセスを処理するユニットは、２つのポートの動作状態を管理しておくことによって、ポートに既に処理の委託がなされている場合は、ポートが使用可能になるまで、命令を実行するユニットに次の命令実行を待たせる。したがって、１つのポートが動作中でも、他のポートを使用するメモリアクセスは受付けられる。
【００２２】
２ポートマイクロプロセッサは２組のバスを任意に命令フェッチおよびデータアクセスに使用でき、かつ、同時にメモリのアクセスができるので、メモリアクセス効率が向上し、特に図形処理装置に適用した場合にシステムメモリとフレームメモリとの間の図形転送が高速化される。
【００２３】
また、リードライトの命令はメモリ中のプログラムに置き、演算処理命令は、通常の命令バッファとは別の従命令バッファに入れておき、リードデータが用意されたタイミングで上記バッファから演算命令を取りだし実行することにより、読みだしデータの演算をライトサイクルに間にあわせ、連続２メモリサイクルのリードモディファイライト処理が可能になる。
【００２４】
ＣＰＵから２ポートマイクロプロセッサへの図形描画、論理演算付き矩形領域転送等のパラメータは、直接ＣＰＵが２ポートマイクとプロセッサに与えるのではなく、ＣＰＵがメモリ上に連続して書き込むとともに、その先頭アドレスをメモリ上のワークリスト内に含ませておくことにより、以後の図形描画、転送等の図形処理はすべて２ポートマイクロプロセッサに委任することができる。すなわち、２ポートマイクロプロセッサは、ＣＰＵから図形処理の起動を受けると、ワークリストに指定された処理を、順次、当該処理プログラムおよびパラメータを参照して実行する。ＣＰＵは、複数の図形処理をワークリストとして予め作成しておくことにより、各図形処理ごとに２ポートマイクロプロセッサにパラメータを与える必要がないので、その負担が軽減される。
【発明の効果】
【００２５】
本発明によれば、２ポートマイクロプロセッサの２組のバスを任意に命令フェッチおよびデータアクセスに使用でき、かつ、同時にメモリのアクセスができるので、メモリアクセス効率が向上し、特に図形処理装置に適用した場合にはシステムメモリとフレームメモリとの間の図形転送が高速化される。また、図形処理で頻度の高いリードモディファイライト処理もリードサイクルとライトサイクルとの間に空きサイクルなしに実行できるので、図形処理装置の性能が向上する。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施例について、添付図面を参照して詳細に説明する。
【００２７】
第１図に、本発明の一実施例の図形表示装置のブロック図を示す。
【００２８】
図中、８は、装置全体の制御を行なう中央処理装置(ＣＰＵ)である。
【００２９】
１は、図形描画およびＣＲＴ６への図形表示を指示するマイクロプロセッサであり、マイクロ命令を実行するプロセッサ部101と２組のポート102、103を内部に有する。
【００３０】
３は、図形描画を行なうためのマイクロ命令およびデータを記憶するローカルメモリである。
【００３１】
４は、図形データを記憶するフレームメモリである。
【００３２】
５は、マイクロプロセッサ１がフレームメモリ４へ図形表示アクセスを行なうことにより読み出された複数画素分の表示データを、ＣＲＴ６に１画素ずつ出力するシフト回路である。
【００３３】
７は、２ポートマイクロプロセッサ１、ローカルメモリ３、フレームメモリ４、シフト回路５が動作するためのクロックを供給する回路である。
【００３４】
10は、ＣＰＵ８が実行するマイクロ命令およびデータの記憶と、マイクロプロセッサ１が処理する図形描画コマンドおよびデータの記憶を行なうシステムメモリである。
【００３５】
11は、マイクロプロセッサ１がシステムメモリ10にアクセスを行うに先立って出力するシステムバス９の使用要求信号を受けて、ＣＰＵ８にバスを要求し、バス使用許可が与えられた場合、これをマイクロプロセッサ１に通知するバス調停回路である。
【００３６】
12は、ＣＰＵ８がプロセッサ部101内のレジスタをアクセスする場合およびローカルバス２に接続されるローカルメモリ３またはフレームメモリ４をアクセスする場合に、ＣＰＵ８が出力するアドレスをデコードしてマイクロプロセッサ１に割込み要求および割込み処理内容を出力するデコーダである。
【００３７】
13は、マイクロプロセッサ１のシステムバス９への入出力タイミングの調整、およびＣＰＵ８、システムメモリ10、バス調停回路11が動作するためのクロックを出力する回路である。
【００３８】
次に、第１図におけるシステムメモリ、ローカルメモリおよびフレームメモリの番地割り付け方法について第２図を用いて説明する。
【００３９】
２ポートマイクロプロセッサは、自身がアドレス指定可能なメモリ空間を２分割して、第１のシステムメモリ空間20とローカルメモリ空間フレームメモリ空間40に割り付ける。
【００４０】
第２のシステムメモリ空間30は、ＣＰＵのみがアクセス可能である。
【００４１】
301は、２ポートマイクロプロセッサが内蔵するレジスタであり、ＣＰＵのメモリ空間に番地割り付けして、ＣＰＵからアクセスすることができる。このレジスタ301の中で、Ｒ０レジスタとＲ１レジスタは専用目的に使用するものであり
、第３図を用いてこれらを説明する。
【００４２】
第３図において、Ｒ０レジスタはコントロールレジスタと呼び、２ポートマイクロプロセッサの動作制御に関する情報を記憶する。すなわち、Ｒ０レジスタの最上位ビットは動作制御ビットと呼び、"０"が記憶されていれば停止状態、"１"が記憶されていれば動作状態すなわち、マイクロ命令の実行状態にある。０ビットから23ビットまではワークリストアドレスを記憶するフィールドであり、ワークリストとは、２ポートマイクロプロセッサが実行する描画プログラムと図形パラメータとのメモリアドレスを記述したものである。２ポートマイクロプロセッサがワークリストを読み出したい場合に、Ｒ０レジスタをアドレスレジスタとして使用する。ただし、アドレスとして有効なのは０ビットから23ビットまでである。Ｒ０レジスタは、ＣＰＵのアクセス、または２ポートマイクロプロセッサの命令実行によって読み出し、書き込みが可能である。
【００４３】
Ｒ１レジスタはプログラムカウンタと呼び、２ポートマイクロプロセッサが読み出すマイクロ命令のメモリアドレスを記憶し、命令読み出しがなされると自動的に値を増加させるカウンタである。Ｒ１レジスタでは、０ビットから23ビットまでが有効であり、２ポートマイクロプロセッサの全メモリ空間をプログラム領域に使用できる。
【００４４】
次に、第１図の実施例装置の図形描画方式について説明する。
【００４５】
本実施例装置は、ＣＰＵがメモリ上にワークリストと図形パラメータとを生成し、２ポートマイクロプロセッサがこのワークリスト等を参照して図形描画等を行うものである。
【００４６】
第４図は、２ポートマイクロプロセッサが図形描画を行うに必要なコマンドとプログラムのメモリマップを表わしたものである。
【００４７】
ワークリスト10-1は、２ポートマイクロプロセッサがＣＰＵから与えられるコマンド列であり、描画したい図形のパラメータが格納されたメモリの先頭アドレスとその描画プログラムが格納されたメモリの先頭アドレスとを、描画する図形の分だけ連続して有するものである。
【００４８】
10-1-1は図形"ｃ"のパラメータが格納されたメモリの先頭アドレスを表わし、10-1-2は、図形"ｃ"の描画プログラムが格納されたメモリの先頭アドレスを表わす。10-1-2に続く部分は別の図形のパラメータおよびプログラムの先頭アドレスが記憶されている。10-1-3は最後の図形"ｈ"のパラメータ先頭アドレスを、10-1-4はその描画プログラム先頭アドレスを表わす。10-1-5はワークリストの最後を表わしており、リストエンドと呼ぶ。リストエンドの値は、任意に決定することができる。
【００４９】
10-2は図形"ｃ"のパラメータであり、パラメータの数と順番は、図形"ｃ"の描画プログラムに対応している。
【００５０】
同様に10-3は、図形"h"のパラメータである。
【００５１】
以上、ワークリスト10-1、図形パラメータ10-2,10-3はシステムメモリ10上に定義したが、これをローカルメモリ３上に定義することもできる。
【００５２】
３-1はワークリスト参照プログラムであり、ワークリストから図形パラメータ先頭アドレスを読みだして、図形描画プログラムへ実行を移すプログラムである。３-2-1,３-2-2,３-2-3は、図形描画プログラムである。
【００５３】
以上、プログラム３-1,３-2-1,３-2-2,３-2-3はローカルメモリ３上に定義したが、これをシステムメモリ10上に定義することもできる。
【００５４】
２ポートマイクロプロセッサ１は、Ｒ０レジスタ1101-1内にワークリストのアドレスを記憶し、ワークリスト参照時にアドレスレジスタとして使用する。Ｒ１レジスタ1101-2は、プログラムアドレスを記憶する。Ｒ２レジスタ1101-3は、図形パラメータの読み出し時にアドレスレジスタとして使用する。
【００５５】
次に、２ポートマイクロプロセッサの図形描画方法を第５図を用いて説明する。
【００５６】
50は、ＣＰＵが２ポートマイクロプロセッサに図形描画処理を開始させる手順を示したフローチャートである。
【００５７】
まず、ＣＰＵがメモリ上にワークリストと図形パラメータとを生成する(50-1)。次に、ＣＰＵは、２ポートマイクロプロセッサのＲ１レジスタ(プログラムカウンタ)に、ワークリスト参照プログラムの先頭アドレスを書き込む(50-2)。続いて、ＣＰＵは２ポートマイクロプロセッサのＲ０レジスタ(コントロールレジスタ)中の動作制御ビットを"１"に、また同じくＲ０レジスタ中のワークリストアドレスフィールドにワークリストの先頭アドレスを書き込む(50-3)。ＣＰＵの処理は以上で終了する。以後の図形描画処理は２ポートマイクロプロセッサに任されるので、その間、ＣＰＵは他の処理を実行することができる。
【００５８】
２ポートマイクロプロセッサは、Ｒ０レジスタ中の動作制御ビットが"１"になることで動作を開始する。
【００５９】
第５図中、60は、２ポートマイクロプロセッサの処理を示したものである。２ポートマイクロプロセッサは、前記ステップ50-2でＲ１レジスタを設定されたことによりワークリスト参照プログラムを実行する。まず、Ｒ０レジスタのワークリストアドレスフィールドをメモリアドレスとしてデータを読み出し、Ｒ２レジスタに書き込む(60-1)。同時にＲ０レジスタのワークリストアドレスの値に"１"を加える。次に、Ｒ２レジスタの内容とワークリストの最後を意味するリストエンド値とを比較する(60-2)。等しければ、Ｒ０レジスタの動作制御ビットを"０"に書き換え(60-3-b)、２ポートマイクロプロセッサは動作停止状態となる(60-6)。Ｒ２レジスタの内容とリストエンド値とが等しくなければ、Ｒ０レジスタのワークリストアドレスフィールドをメモリアドレスとしてデータを読み出し、Ｒ１レジスタに書き込む(60-3-a)。同時に、Ｒ０レジスタのワークリストアドレスの値に"１"を加える。このステップ60-3-aで書き換えられたＲ１レジスタの値に従って、２ポートマイクロプロセッサの処理はステップ60-4-a,60-4-b,60-4-cに示す図形描画プログラムのいずれかへ移る。この各プログラムでは、Ｒ２レジスタをアドレスレジスタとして使用することによりパラメータをメモリから読み出すことができる。描画プログラムが終了すると、Ｒ１レジスタをワークリスト参照プログラムの先頭アドレスに書き換えることにより(60-5)、再びステップ60-1の処理に移る。２ポートマイクロプロセッサは、ワークリスト中からリストエンドを検出するまで上記の処理を実行する。
【００６０】
次に、第６図を用いて２ポートマイクロプロセッサの内部構成を説明する。
【００６１】
1101は命令フェッチユニットであり、マイクロ命令のフェッチを行う。キャッシュメモリを内蔵し、キャッシュメモリに該当する命令が存在しない場合には外部メモリから命令を取り込む。
【００６２】
1102はデコーダであり、命令フェッチユニットから与えられた命令コードを解読し、演算制御を行う。
【００６３】
1103は演算ユニットであり、レジスタと演算器とを有し、演算の実行を行う。
【００６４】
1104はメモリアクセス管理ユニットであり、２ポートマイクロプロセッサ内で発生するメモリアクセス要求と、ＣＰＵ８の割り込みを処理する。
【００６５】
102はポート１であり、ＣＰＵ８からのアクセス応答およびシステムメモリ10へのアクセスを行う。
【００６６】
103はポート２であり、ローカルメモリ３、フレームメモリ４へのアクセスを行う。
【００６７】
1105はバススイッチであり、演算ユニット1103とポート１(102)およびポート２(103)との間のバス接続を行う。
【００６８】
以下、各ユニットの詳細な説明を行う。
【００６９】
命令フェッチユニット1101は、キャッシュコントロール部1101-1、命令フェッチ制御部1101-2、命令バッファ1101-3から成る。動作制御の中心となるのは命令フェッチ制御部1101-2であり、演算ユニット1103内のＲ０レジスタ1103-1の動作制御ビットの状態によって、命令フェッチの実行の可否を決定する。すなわち、動作制御ビットが"０"であれば命令フェッチを実行せず、"１"であれば命令フェッチを実行する。
【００７０】
命令フェッチ制御部1101-2は、キャッシュコントロール部1101-1にフェッチ要求を出す。キャッシュコントロール部1101-1は、演算ユニット1103内のＲ１レジスタ1103-2をプログラムアドレスとして、キャッシュコントロール部1101-1内のキャッシュメモリを検索する。キャッシュメモリ中に命令が存在すれば、キャッシュコントロール部1101-1は、命令フェッチ制御部1101-2に命令コードと共に応答信号を返す。命令フェッチ制御部1101-2は、命令バッファ1101-3に命令を格納すると共に演算ユニット1103内のＲ１レジスタ1103-2のプログラムアドレスをインクリメントさせる。キャッシュメモリ中に命令が存在しない場合は、キャッシュコントロール部1101-1はメモリアクセス管理ユニット1104に命令フェッチ要求を出す。
【００７１】
デコーダ1102は、命令フェッチユニットから与えられる命令を解読し、演算ユニット1103内のレジスタの読み出し制御、書き込み制御と、演算器の制御を行う他、ロードまたはストア(以下、総称してロード/ストア)命令の場合には、メモリアクセス管理ユニット1104に、ロード/ストア信号、ポート番号、およびロードの場合にはロードしたデータを書き込むレジスタの番号(ロードレジスタ番号)(以上図面符号A)を与える。ポート番号とは、アクセスするメモリがポート1(102)上にあるか、ポート２(103)上にあるかを指定する信号である。ポートの指定方法について図を用いて説明する。
【００７２】
第７図に、デコーダ1102内のポート番号指定回路を示す。1102-1がポート番号指定回路であり、ロード/ストア命令を解読すると、演算ユニット内のｎ個のレジスタの中からアドレスレジスタ番号で指定されるレジスタの値を選択回路1102-1-aで選び、比較器1102-1-dに入力する。比較器1102-1-dの他の入力には比較データ1102-1-cが入力され、条件ビット1102-1-bに従って両入力値が比較され、その結果がポート番号として出力される。比較データは、第２図に示した２ポートマイクロプロセッサのシステム空間20とローカルメモリ空間40との境界のアドレスに対応し、条件ビットはその境界のいずれの側をシステムメモリに割当てるかを決定するものである。
【００７３】
条件ビット1102-1-bとポート番号指定方法との対応表を第８図に示す。条件ビットが"０"の場合は、アドレスレジスタのデータが比較データより大きいか等しい場合にポート１を指定し、それ以外はポート２を指定する。逆に条件ビットが"１"の場合は、アドレスレジスタのデータが比較データより大きいか等しい場合にポート２を指定し、それ以外はポート１を指定する。比較データと条件ビットとは任意に設定でき、これにより２ポートマイクロプロセッサのアクセスできるメモリ空間のメモリマップを任意に定めることができる。
【００７４】
第６図に戻ってデコーダ1102の説明を続ける。
【００７５】
デコーダ1102がメモリアクセス管理ユニット1104にロード/ストアを要求すると、もしそのポートが使用中あるいは予約済みの場合はウエイト信号(D)が返され、命令フェッチユニット1101およびデコーダ1102はウエイト状態になる。ロード/ストア要求が受け付けられると、デコーダ1102は続く命令の解読を行う。
【００７６】
ロード命令の場合には、メモリからデータが読み込まれると、メモリアクセス管理ユニット1104からデコーダ1102にウエイト信号(D)、強制レジスタ書き込み信号およびそのレジスタ番号が与えられ、デコーダ1102はデコード中の命令実行を保留し、メモリから読み出されたデータのレジスタ書き込みを優先して行う。この回路を第９図に示す。
【００７７】
第９図の回路において、命令によるレジスタの読み出し、書き込みは、命令解読回路1102-2が制御回路1102-3,1102-4,1102-5,1102-6,1102-7にレジスタ番号を与えて実行させる。メモリアクセス管理ユニット1104から強制的なレジスタアクセス信号とウエイト信号を受けると、命令解読回路1102-2は命令実行を停止し、レジスタ読み出し制御回路４(1102-6)またはレジスタ書き込み制御回路1102-7が強制アクセスレジスタ番号で指定されるレジスタに読み出し、書き込みを実行する。
【００７８】
なお、ロード命令がメモリアクセス管理ユニットに受け付けられた後、メモリからレジスタにデータが書き込まれるまでに、後続の命令実行によってそのレジスタが読み出しレジスタとして使用される可能性がある。この場合には、メモリからデータがレジスタにロードされるまで、その命令の実行を待たせる必要がある。そこで、デコーダ1102は、読み出しレジスタの番号を命令実行より早くメモリアクセス管理ユニット1104に与え、ロードレジスタ番号との比較を行わせる。もし一致した場合にはウエイト信号(D)が返され、その命令実行にウエイトをかける。
【００７９】
次に、第６図に戻り、演算ユニット1103の説明を行う。
【００８０】
前述したように、ｎ個のレジスタのうちＲ０レジスタ1103-1とＲ１レジスタ1103-2とは専用レジスタであり、Ｒ２レジスタからＲn-1レジスタは汎用レジスタ1103-3である。バレルシフタ1103-4は、32ビットのデータを連結して64ビットにし、６ビットのシフト数で指定された分だけシフトして生成した32ビットデータを出力する。３オペランドＬＵ1103-5は、３つの入力データ間で256種の論理演算を行う。ＡＬＵ1103-6は、２つの入力データ間で算術論理演算を行う。内部バスは、読み出し用が４本（R3B,R2B,R1B,R0B)と、書き込み用が１本(WB)であり、このうちＲ１Ｂはバレルシフタ1103-4のシフト数および３オペランドＬＵ1103-5の演算モードを与えるのに使用する。ストア命令実行時には、Ｒ２Ｂはアドレス転送に、Ｒ３Ｂはデータ転送に使用する。ロード命令実行時には、Ｒ２Ｂは同じくアドレス転送に、ＷＢをデータ転送に使用する。
【００８１】
次に、メモリアクセス管理ユニット1104について第10図を用いて説明する。
【００８２】
まず、ロード/ストア管理回路1104-2を説明する。1104-2-aは、ポート１で実行中の状態を示す３ビットの状態レジスタ１であり、Ｆ１は命令フェッチ、Ｌ１はロード、Ｓ１はストアを意味する。"１"が設定されていればその動作中であることを意味する。1104-2-bは、ロード命令実行によりデータを書き込むレジスタの番号を記憶するレジスタである。
【００８３】
ポート２についても同様に状態レジスタ２(1104-2-c)とロードレジスタ番号レジスタ２(1104-2-d)とを有している。ただし、状態レジスタ２(1104-2-c)は４ビットのレジスタであり、Ｆ２，Ｌ２，Ｓ２の各ビットに加えてさらにインタフェース実行中を意味するビットＩを持つ。
【００８４】
デコーダ1102からロード／ストア要求とポート番号とが与えられると、指定されたポートの状態レジスタ1104-2-a、1104-2-cを調べ、ポートが動作中であれば直ちにポート使用中を意味する信号をオア回路1104-5に与える。その結果ウエイト信号が出力され、実行しようとしているロード/ストア命令の実行にウエイトをかける。状態レジスタ1104-2-a、1104-2-cが全ビット"０"の場合には、ロードあるいはストアのビットを"１"にセットする。またロード要求の場合には、デコーダが出力するロードレジスタ番号を指定されたポートのロードレジスタ番号レジスタ1104-2-b、1104-2-dに書き込む。
【００８５】
ロード／ストア管理回路1104-2は、指定されたポートにロードまたはストアの指示を与える。また、ポート内のアドレスバッファにアドレスを書き込む制御信号を出力する。ストアの場合には、ポート内のデータバッファにデータを書き込む制御信号も出力する。
【００８６】
メモリアクセスはロード／ストア命令だけでなく、命令フェッチユニットで命令キャッシュのミスヒットが起きた場合にも生じる。命令フェッチユニットは命令フェッチ要求とポート番号とを出力する。ロード／ストア管理回路1104-2は、指定されたポートの状態レジスタ1104-2-a、1104-2-cを調べる。ポートが未使用であれば、命令フェッチユニットにプログラムアドレスの読み出し信号を与え、ポート内のアドレスバッファに書き込みを行う。
【００８７】
該当するポートからアクノリッジが返ると、ストア命令の場合にはそのポートの状態レジスタ1104-2-a、1104-2-cのストアビットＳ１またはＳ２を"０"にクリアする。ロード命令の場合には、レジスタ強制アクセス回路1104-3に処理を指示して、そのポートの状態レジスタ1104-2-a、1104-2-cのロードビットＬ１またはＬ２を"０"にクリアする。また、ロード／ストア管理回路1104-2は、ＣＰＵによるローカルバスアクセス時にも動作する。ポート１からバスインタフェース要求を受けると、ポート２が未使用になり次第、状態レジスタ２(1104-2-c)のビットＩをセットし、ポート１にバスインタフェースレディを返す。ＣＰＵのローカルバス使用が終了し、バスインタフェース要求が取り下げられると状態レジスタ1104-2-cのインタフェースビットＩをクリアする。
【００８８】
1104-3はレジスタ強制アクセス回路であり、ロード命令の実行によってメモリからポート内のデータバッファにデータが書き込まれた後、前記ロード／ストア管理回路1104-2からロードレジスタ要求およびロードレジスタ番号を受けて、デコーダ1102に強制レジスタ書き込みを実行させる。このときポート内にあるデータバッファの読み出し制御も行う。
【００８９】
レジスタ強制アクセス回路1104-3は、ＣＰＵが２ポートマイクロプロセッサ内のレジスタをアクセスする場合にも動作する。ＣＰＵのレジスタ書き込み信号または読み出し信号とレジスタ番号とを受け取ると、デコーダ1102に強制レジスタ書き込みまたは読み出しを実行させる。このとき、ポート１内にあるＣＰＵの読み出しデータまたは書き込みデータを一時蓄えるデータバッファ1202-1の書き込み、読み出し制御も行う。
【００９０】
1104-4はバススイッチ制御回路であり、ロード/ストア実行時に演算ユニットと各ポートとの間のデータ転送のためのバス接続制御を行う。
【００９１】
1104-1はレジスタ読み出し禁止回路であり、デコーダ1102から読み出しが行われるレジスタ番号を実行より早いタイミングで受け、ロード／ストア管理回路1104-2で保持しているロードレジスタ番号と比較する。演算ユニット1103には４つの読み出しバスがあるため、最大で４つの読み出しレジスタ番号とロードレジスタ番号とを比較する。一致する番号があれば、これから実行しようとする命令実行にウエイトをかける。
【００９２】
次に、第６図に戻り、ポート１(102)の説明を行う。
【００９３】
ポート１(102)は、メモリアクセスユニット1201、ＣＰＵ応答ユニット1202、アドレスラッチ1203、データラッチ1204、端子1205から成る。
【００９４】
メモリアクセスユニット1201は、前記メモリアクセス管理ユニット1104のロード/ストア指示(G-1)を受けて、システムメモリ10へのアクセスを実行する。演算ユニット1103から与えられるアドレスおよびストアデータを保持するために、アドレスバッファ１(1201-1)とＷデータバッファ１(1201-2)とを有する。また、システムメモリ10から読み出したデータを保持するためにＲデータバッファ１(1201-3)を有する。
【００９５】
メモリアクセスユニット1201は、メモリアクセスに先立って、まずシステムバス9の使用権を獲得する。バス使用権を得て、アクセスを開始した後、システムメモリ10から応答が来ると、メモリアクセス管理ユニット1104にアクノリッジ(G-2)を返す。ロードの場合には、メモリアクセス管理ユニット1104からＲデータバッファ１(1201-3)の読み出し(G-3)が行われる。
【００９６】
ＣＰＵ応答ユニット1202は、ＣＰＵ８が２ポートマイクロプロセッサ内のレジスタ1103-1〜1103-3をアクセスする場合、およびローカルメモリ３またはフレームメモリ４をアクセスする場合に動作する。
【００９７】
レジスタアクセスの場合は、メモリアクセス管理ユニット1104にレジスタアクセス信号およびレジスタ番号(H-1)を出力する。レジスタ書き込みの場合は、メモリアクセス管理ユニット1104が命令フェッチユニット1101およびデコーダ1102にウエイトをかけ、ＣＰＵデータバッファ1202-1のデータをバスＭＲＢに読み出し(H-2)、指定されたレジスタに強制書き込みを行う。レジスタ読み出しの場合は、メモリアクセス管理ユニット1104がやはり命令フェッチユニット1101およびデコーダ1102にウエイトをかけ、レジスタを強制的に読み出し、ＣＰＵデータバッファ1202-1に書き込む(H-3)。ＣＰＵ応答ユニット1202は、データをラッチ1204に書き込み、アクノリッジをＣＰＵに返して、データ読み出しを行わせる。
【００９８】
ＣＰＵがローカルメモリ３、フレームメモリ４をアクセスする場合は、ＣＰＵ応答ユニットがメモリアクセス管理ユニット1104にバスインタフェース要求(I-1)を出力する。次のメモリサイクルでローカルバス2が空くことがわかると、メモリアクセス管理ユニット1104は、バスインタフェースレディ(I-2)を返す。ＣＰ
Ｕ応答ユニット1202は、ポート２(103)のメモリアクセスユニット1301にロードまたはストア信号を出力し、アドレスをポート１(102)内のラッチ1203からポート２(103)内のラッチ1302に転送する。ストアの場合は、データをポート１(102)内のラッチ1204からポート２(103)内のラッチ1303に転送する。ローカルメモリ3、フレームメモリ4のアクセスは、メモリアクセスユニット２(1301)が実行する。ＣＰＵ応答ユニット1202は、ストアの場合はメモリアクセスが開始されると、ＣＰＵ8にアクノリッジを返し、ＣＰＵ8のバスサイクルを終了させる。ロードの場合はメモリアクセス終了後、ラッチ1303に読み込まれたデータをポート１(102)内のラッチ1204に転送し、ＣＰＵ8にアクノリッジを返してシステムバス9からデータの読み出しを行わせる。
【００９９】
次に、ポート２(103)の説明を行う。
【０１００】
ポート２(103)は、メモリアクセスユニット２(1301)、アドレスラッチ1302、
データラッチ1303、端子1304から成る。
【０１０１】
メモリアクセスユニット２(1301)は、前記メモリアクセス管理ユニット1104または前記ＣＰＵ応答ユニット1202の指示を受けて、ローカルメモリ３、フレームメモリ4へのアクセスを実行する。演算ユニット1103から与えられるアドレスおよびストアデータを保持するために、アドレスバッファ２(1301-1)およびＷデータバッファ２(1301-2)を有する。また、ローカルメモリ3、フレームメモリ4から読み出したデータを保持するためにＲデータバッファ２(1301-3)を有する。ローカルバス２は同期式のバスであり、内部クロックの６倍を１回のメモリサイクルとして使用する。
【０１０２】
次に、第11図を用いて、２ポートマイクロプロセッサの２つのメモリへの同時アクセスについて説明する。
【０１０３】
内部クロックｋで命令キャッシュからフェッチされた命令ｎをデコードした結果、その命令がロード命令でありポート１が指定されたとする。メモリアクセス管理ユニットは、ポート１の動作状況を調べ、空きと判断した場合、メモリアクセスユニット１にロード１(第１１図中、符号１)を出力する。また、演算ユニットは、アドレスレジスタに指定されたレジスタの内容をバスに読み出し、メモリアクセス管理ユニットはバススイッチを接続して、アドレスバッファ1にバス上のアドレスを書き込む(２)。
【０１０４】
メモリアクセスユニット１はシステムバス獲得を要求し、バス権が与えられると矢印３に示すように、アドレスバッファ１からメモリアドレスをシステムバスに出力し、システムメモリに対して読み出しアクセスを実行する。システムメモリから応答が返ると、メモリアクセス管理ユニットにアクノリッジ１(４)を返す。また、システムバスからは、矢印５が示すように、Ｒデータバッファ１にデータを読み込む。アクノリッジ１(４)を受けたメモリアクセス管理ユニットは演算ユニット内のレジスタに強制書き込みを行い、ロード１を取り下げる(６)。
【０１０５】
一方、内部クロックｋ＋１でフェッチされた命令ｎ＋１は、ポート２へのロード命令であるとする。メモリアクセス管理ユニットは、ポート２の動作状況を調べ、メモリアクセスユニット２にロード２(11)を出力する。また演算ユニットはアドレスレジスタに指定されたレジスタの内容をバスに読み出し、メモリアクセス管理ユニットがこれをメモリアクセスユニット２のアドレスバッファに書き込む(12)。メモリアクセスユニット２は、クロックｋ＋７で開始するメモリサイクルでメモリアドレスを出力し(13)、クロックｋ＋11でデータをＲデータバッファ２に読み込む(15)。メモリアクセス管理ユニットは、クロックｋ＋10のアクノリッジ２(14)に応じてＲデータバッファ２を読み出し、演算ユニット内のレジスタに強制書き込みを行う。
【０１０６】
このように、２ポートマイクロプロセッサは、メモリアクセス管理ユニットが２つのポートの動作状態を管理し、メモリから読み出したデータのレジスタ強制書き込みを行う機能を有することによって、２つのポートを同時に使用したメモリアクセスを行うことができる。
【０１０７】
次に、ＣＰＵの２ポートマイクロプロセッサ内のレジスタアクセスについて説明する。
【０１０８】
第12図は、ＣＰＵが２ポートマイクロプロセッサ内のＲ０レジスタの内容を読み出して、モディファイし、再びＲ０レジスタに書き込むタイムチャートを示している。外部デコーダ12によってＣＰＵからのレジスタ読み出し要求を受けると、ＣＰＵ応答ユニットはメモリアクセス管理ユニットに、ＣＰＵレジスタ読み出し信号(第12図中１)およびレジスタ番号を出力する。メモリアクセス管理ユニットは、これに応じて直ちに命令フェッチユニットおよびデコーダにウエイトをかけ（図では命令j+1にウエイトがかかっている)、演算ユニット内のＲ０レジスタを強制的に読み出し、ＣＰＵデータバッファに書き込む(２)。ＣＰＵ応答ユニットは、ＣＰＵデータバッファのデータをシステムバスに出力し、ＣＰＵに応答を返す。ＣＰＵは読み出したデータをモディファイし、引き続いて書き込みサイクルを開始する。
【０１０９】
ＣＰＵのレジスタ書き込み要求を受けたＣＰＵ応答ユニットは、システムバス上のデータをＣＰＵデータバッファに読み込み(11)、メモリアクセス管理ユニットにＣＰＵレジスタ書き込み信号およびレジスタ番号を出力する(12)。メモリアクセス管理ユニットは、直ちに命令フェッチユニットとデコーダにウエイトをかけ(図では命令k+1にウエイトがかかっている)、演算ユニット内のＲ０レジスタ
に強制書き込みを行う(13)。
【０１１０】
図中に示したマイクロ命令の実行ステージからわかるように、強制読み出し(２)はＣＰＵレジスタ読み出し信号(１)が与えられた次のサイクルで実行し、強制書き込み(13)はＣＰＵレジスタ書き込み信号(12)が与えられた２つ後のサイクルで実行する。
【０１１１】
次に、ＣＰＵによるローカルメモリ、フレームメモリへのアクセスについて説明する。
【０１１２】
第13図は、ＣＰＵがローカルメモリをリードアクセスする場合のタイムチャートを示している。外部デコーダによってＣＰＵのローカルメモリアクセス要求を受けると、ＣＰＵ応答ユニットはメモリアクセス管理ユニットに、バスインタフェース要求(１)を出力する。
【０１１３】
メモリアクセス管理ユニットは、ポート２の動作状況を調べる。クロックｋ＋４でメモリアクセスユニット２からアクノリッジ２(２)が返り、メモリアクセス管理ユニット内にあるポート２の状態レジスタがクリアされると、バスインタフェース要求を受付け、状態レジスタのビットＩをセットし、ＣＰＵ応答ユニットにバスインタフェースレディを返す(３)。ＣＰＵ応答ユニットは、バスインタフェース要求を取り下げ(４)、ポート１内のアドレスラッチに読み込まれたメモリアドレスをポート２内のアドレスラッチへ転送し(５)、メモリアクセスユニット２にロード要求を出す。メモリアクセスユニット２は、ローカルメモリからデータを読み出し、ＣＰＵ応答ユニットにアクノリッジを返す(６)。ＣＰＵ応答ユニットは、ポート２内のデータラッチに読み込まれたデータをポート１内のデータラッチに転送し、システムバスに出力する(７)。ＣＰＵはポート１からの応答を受けて、システムバス上のデータを読み込む。
【０１１４】
次に、２ポートマイクロプロセッサのリードモディファイライト命令について説明する。
【０１１５】
この命令は、メモリから読み出したデータに演算を行ない、結果を元のメモリアドレスに書き戻す処理を連続２メモリサイクルで実行するための命令である。まず、使用する図の概略説明を行う。第14図は、リードモディファイライト命令のリードサイクル時の各ユニット間の信号伝達を表わしている。第15図は、続くモディファイライトサイクル時の各ユニット間の信号伝達を表わしている。第16図は、第14図、第15図の動作のタイムチャートである。また、第17図はモディファイバッファを用いる本発明のマイクロプロセッサの概念図である。
【０１１６】
まず、第14図、第16図を用いて、リードサイクルの説明を行なう。
【０１１７】
命令デコーダは、内部クロックｋでフェッチされたリードモディファイライト命令(第14図、第16図中１)を解読すると、直ちにウエイト信号(２)を命令フェッチユニットに返す。この信号は、モディファイを実行するまで命令フェッチユニットに出力し続ける。命令デコーダは、Ｒｉレジスタの内容をメモリアドレスとしてＲ２Ｂに出力させ、メモリアクセス管理ユニットにロード要求、ストア要求およびポート番号を与える(３)。また、Ｒｓレジスタの内容をＲ３Ｂに出力させ、命令デコーダ内部のモディファイバッファ1102-9に取り込む(４)。一方、ロード/ストア要求を受けたメモリアクセス管理ユニットは、指定されたポートの状態レジスタのロードビットとストアビットとを共に"１"にセットし、ロード信号(７)を出力するとともに、バススイッチを接続制御して(５)、アドレスバッファにメモリアドレスを書き込む(６)。指定されたポートは、アドレスバッファのメモリアドレスをラッチし(８)、メモリに出力して(９)、リードサイクルを開始する。メモリからデータが読み出されると、ポートはこれをラッチし(10)、Ｒデータバッファに読み込み(11)、メモリアクセス管理ユニットにアクノリッジ(12)を返す。メモリアクセス管理ユニットは、命令デコーダに強制書き込み信号を与え(13)、バススイッチを接続制御して、Ｒデータバッファから読み出したデータをＲｑレジスタに書き込ませる(14)。
【０１１８】
続いての処理は、第15図と第16図を用いて説明する。
【０１１９】
メモリアクセス管理ユニットは、状態レジスタのロードビットを"０"にリセットし、ポートにストア信号を与える(第15図、第16図中15)。ポートは、アドレスバッファのメモリアドレスをラッチし(16)、メモリに出力して(17)、ライトサイクルを開始する。
【０１２０】
命令デコーダは、命令フェッチユニットへのウエイト信号を取り下げ(18)、演算ユニットにモディファイバッファの命令を実行させる(19)。この例は、ＲｑレジスタとＲｒレジスタの両内容についてＡＬＵで演算し、結果をＲｑレジスタに格納する命令である。
【０１２１】
メモリアクセス管理ユニットは、ＡＬＵが演算結果を出力するタイミングでバススイッチを接続制御し(20)、ＷＢ上のデータをポート内のＷデータバッファに書き込む(21)。
【０１２２】
ポートは、Ｗデータバッファのデータをラッチし(22)、メモリに出力する(23)。また、メモリアクセス管理ユニットにアクノリッジ(24)を返し、状態レジスタのストアビットを"０"にクリアさせる。
【０１２３】
第17図の概念図に示すように、プログラムの命令を保持する通常の命令バッファとは別個に予めいずれかのレジスタに設定した従命令を保持するモディファイバッファを設け、命令バッファの命令デコード結果に応じて、従命令の実行を要する場合には直ちにモディファイバッファの命令をデコードすることにより、第16図のタイムチャートから分かるように、リードサイクルで読み込んだデータのモディファイ結果を次のライトサイクルに間にあわせることができる。また、モディファイバッファに取り込む命令は、Ｒ2〜Ｒn-1の任意のレジスタから読み出すことが可能である。なお、第17図では概念を明確にするためにモディファイバッファをデコーダとは別個のブロックで示してある。
【０１２４】
次に、第18図を用いてシステムメモリからフレームメモリへの矩形転送方式を説明する。
【０１２５】
10-1は、システムメモリ10をＸ−Ｙ座標空間で表したものである。転送元メモリ幅ＭＷＳとは、矩形領域の転送元であるシステムメモリのＸ−Ｙ座標空間10-1の幅である。ＯＲＧＳとは、転送元のＸ−Ｙ座標空間10-1の原点であり、その値はシステムメモリ10上のビットアドレスである。10-2は転送元矩形領域であり、Ｘss、Ｙssはそれぞれ転送開始位置のＸ座標及びＹ座標であり、Ｘse、Ｙseはそれぞれ転送終了位置のＸ座標及びＹ座標である。
【０１２６】
4-1は、フレームメモリ４をＸ−Ｙ座標空間で表したものである。転送先メモ
リ幅ＭＷＤとは、矩形領域の転送先であるフレームメモリのＸ−Ｙ座標空間4-1
の幅である。ＯＲＧＤとは、転送先のＸ−Ｙ座標空間4-1の原点であり、その値
はフレームメモリ4上のビットアドレスである。4-2は転送先矩形領域であり、Ｘds、Ｙdsはそれぞれ転送開始位置のＸ座標及びＹ座標である。
【０１２７】
まず、ＣＰＵ８は図中符号50に示すように、システムメモリ10上に、図形転送プログラムの先頭アドレスおよび図形パラメータの先頭アドレスからなるワークリストを生成する。また、ワークリスト中のパラメータ先頭アドレスが指すアドレス以降の連続したアドレスに図形転送に必要なパラメータを生成する。
【０１２８】
次に、ＣＰＵ８が起動をかけると(60)、２ポートマイクロプロセッサ１は、実行すべきプログラムの先頭アドレスをワークリストから読み込んで、ローカルメモリ３から図形転送プログラムをフェッチする(70)。矩形領域の転送元アドレスは、システムメモリ10から読み込んだ座標値、ＯＲＧＳおよび転送元メモリ幅(80)から計算する。同様に、矩形領域の転送先アドレスは、フレームメモリ4から読み込んだ座標値、ＯＲＧＤおよび転送先メモリ幅(80)から計算する。
【０１２９】
転送元の矩形領域のデータと転送先矩形領域のデータとの間で論理演算を伴うデータ転送を行うには、第14図〜第16図で説明したリードモディファイライト命令を利用して、システムメモリ10から読み込んだ転送元データ(90-1)を転送先であるフレームメモリ上のデータ(90-2)との間でデータ演算を実行し、結果を転送先アドレスに書き込む(90-3)。以上のアドレス計算とデータ演算とを転送する矩形領域について実行することにより、システムメモリ10からフレームメモリ４への矩形領域の転送を高速に行わせることができる。
【０１３０】
なお、演算ユニットの構成については第６図によりその概略を説明したが、参考のためにこの矩形領域のデータ転送に使用される演算ユニット部の具体的構成を第１９図に示す。演算ユニットの具体的構成要素は、ビットマップメモリのＸ方向のワード数(メモリ幅)を記憶するレジスタと、ビットマップメモリ上に定義した３つの矩形領域(転送元領域、パターン領域、転送先領域)のワードアドレスを記憶するレジスタ(転送元アドレスレジスタ、パターンアドレスレジスタ、転送先アドレスレジスタ)と、転送元領域と転送先領域のビット位置の差を記憶する転送元シフト数レジスタと、パターン領域と転送先領域のビット位置の差を記憶するパターンシフト数レジスタと、転送元データを転送元シフト数レジスタに基いてシフトし、またはパターンデータをパターンシフト数レジスタに基いてシフトするバレルシフタと、シフト後の転送元データ、パターンデータおよび転送先データ間で論理演算を行う３オペランドＬＵと、転送先領域の左端、右端で、書き込み禁止領域を指定するマスク手段と、このマスク手段に基いて、演算結果と転送先データとを合成する合成回路等からなる。
【０１３１】
以上、発明の好適な実施例についてのみ説明したが、発明の要旨を逸脱することなく種々の変更を加えることは可能である。例えば、モディファイバッファを用いるマイクロプロセッサの構成は、必ずしも２ポートを必要とするものではなく、従来の１ポートのプロセッサにも適用することができる。また、図形処理装置についてのみ説明したが、分離されたバス間のデータ転送を伴う用途、例えば、プリンタ制御、通信制御等の特定処理専用のプロセッサとして利用することができる。
【図面の簡単な説明】
【０１３２】
【図１】本発明の２ポートマイクロプロセッサを使用した図形処理装置のブロック図である。
【図２】第１図の装置のメモリマップである。
【図３】第１図のプロセッサ１の内部レジスタの説明図である。
【図４】第１図のプロセッサ１のコマンドとプログラムのメモリマップである。
【図５】第１図のプロセッサ１の動作フロー図である。
【図６】第１図のプロセッサ１の内部構成を示すブロック図である。
【図７】第６図内のデコーダ1102内のポート番号指定回路のブロック図である。
【図８】第７図の回路の動作説明図である。
【図９】第６図内のデコーダ1102内のレジスタ強制アクセス実行回路のブロック図である。
【図１０】第６図内のメモリアクセス管理ユニット1104の内部構成を示すブロック図である。
【図１１】第６図のプロセッサのメモリアクセスタイムチャートである。
【図１２】第６図のプロセッサのメモリアクセスタイムチャートである。
【図１３】第６図のプロセッサのメモリアクセスタイムチャートである。
【図１４】リードモディファイライトの動作説明図である。
【図１５】リードモディファイライトの動作説明図である。
【図１６】リードモディファイライトの動作説明図である。
【図１７】モディファイバッファを使用する本発明の概念図である。
【図１８】システムメモリからフレームメモリへの図形転送の説明図である。
【図１９】２ポートマイクロプロセッサ内の演算ユニットの詳細を示すブロック図である。
【符号の説明】
【０１３３】
1…２ポートマイクロプロセッサ、2…ローカルバス、3…ローカルメモリ、4…フレームメモリ、6…ＣＲＴ、8…ＣＰＵ、9…システムバス、101…プロセッサ、102…ポート１、103…ポート２、1101…命令フェッチユニット、1102…デコーダ、1103…演算ユニット、1104…メモリ管理ユニット。
【図１】
2006260590.tif 000003
【図２】
2006260590.tif 000004
【図３】
2006260590.tif 000005
【図４】
2006260590.tif 000006
【図５】
2006260590.tif 000007
【図６】
2006260590.tif 000008
【図７】
2006260590.tif 000009
【図８】
2006260590.tif 000010
【図９】
2006260590.tif 000011
【図１０】
2006260590.tif 000012
【図１１】
2006260590.tif 000013
【図１２】
2006260590.tif 000014
【図１３】
2006260590.tif 000015
【図１４】
2006260590.tif 000016
【図１５】
2006260590.tif 000017
【図１６】
2006260590.tif 000018
【図１７】
2006260590.tif 000019
【図１８】
2006260590.tif 000020
【図１９】
2006260590.tif 000021
【手続補正書】
【提出日】平成18年5月24日(2006.5.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アドレス、データ、制御の各バスからなるシステムバスにそれぞれ接続されたＣＰＵおよび第１のメモリと、
アドレス、データ、制御の各バスからなるローカルバスに接続された第２のメモリと、
上記システムバスに接続される第１のポート、上記ローカルバスに接続される第２のポート、および複数の内部レジスタを有する図形処理用プロセッサとを具備し、
上記図形処理用プロセッサは、上記第１のポートを介して上記第１のメモリと上記内部レジスタとの間で行われる図形データの転送処理と、上記第２のポートを介して上記第２のメモリと上記内部レジスタとの間で行われる図形データの転送処理とを並行して実行可能であること
を特徴とする図形処理装置。
【請求項２】
アドレス、データ、制御の各バスからなるシステムバスにそれぞれ接続されたＣＰＵおよび第１のメモリと、
アドレス、データ、制御の各バスからなるローカルバスに接続された第２のメモリと、
上記システムバスに接続される第１のポート、上記ローカルバスに接続される第２のポート、および複数の内部レジスタを有する特定処理専用プロセッサとを具備し、
上記特定処理専用プロセッサは、上記第１のポートを介して上記第１のメモリと上記内部レジスタとの間で行われるデータの転送処理と、上記第２のポートを介して上記第２のメモリと上記内部レジスタとの間で行われるデータの転送処理とを並行して実行可能であること
を特徴とする情報処理装置。
【請求項３】
アドレス、データ、制御の各バスからなるシステムバスに接続される第１のポートと、
アドレス、データ、制御の各バスからなるローカルバスに接続される第２のポートと、
複数の内部レジスタを有するプロセッサ部とを備え、
上記システムバスには第１のメモリが接続され、上記ローカルバスには第２のメモリが接続されていて、
上記プロセッサ部は、上記第１のポートを介して上記第１のメモリと上記内部レジスタとの間で行われるデータの転送処理と、上記第２のポートを介して上記第２のメモリと上記内部レジスタとの間で行われるデータの転送処理とを並行して実行可能であること
を特徴とするマイクロプロセッサ。
【請求項４】
アドレス、データ、制御の各バスからなるシステムバスに接続される第１のポートと、アドレス、データ、制御の各バスからなるローカルバスに接続される第２のポートと、複数の内部レジスタとを備えたマイクロプロセッサと、
上記ローカルバスに接続される第２のメモリと、を有し、
上記システムバスには、第１のメモリが接続されていて、
上記マイクロプロセッサは、上記第１のポートを介して上記第１のメモリと上記内部レジスタとの間で行われるデータの転送処理と、上記第２のポートを介して上記第２のメモリと上記内部レジスタとの間で行われるデータの転送処理とを並行して実行可能であること
を特徴とする情報処理装置。