(57)【特許請求の範囲】
【請求項１】
CPUと、主記憶装置と、表示装置への表示を制御する表示制御装置とを備え、
前記表示制御装置が読み出して前記表示装置に表示する表示データを格納するフレームバッファとして前記主記憶装置の記憶領域の一部を用いるデータ処理装置であって、
前記主記憶装置に接続したメモリバスと、前記CPUに接続したCPUバスと、表前記示制御装置に接続したローカルバスに接続し、前記CPUバスと前記メモリバス間における前記CPUの前記主記憶装置へのメモリアクセスシーケンスの中継を行い、前記ローカルバスと前記メモリバス間における前記表示制御装置の主記憶装置へのメモリアクセスシーケンスの中継を行うメモリコントローラを備え、
前記メモリコントローラは、
前記表示制御装置のメモリアクセスシーケンスの前記メモリバスへの中継中に、前記CPUの主記憶装置へのメモリアクセスシーケンスが前記CPUバス上で開始した場合に、前記表示制御装置の主記憶装置へのメモリアクセスシーケンスの実行を凍結させ、前記CPUの主記憶装置へのメモリアクセスシーケンスの終了後に、前記表示制御装置の主記憶装置へのメモリアクセスシーケンスの実行の凍結を解除し、メモリアクセスシーケンスの未実行の部分を実行させる手段と、
前記表示制御装置に前記主記憶装置へのメモリアクセスシーケンスの実行を凍結させた後に、凍結前の前記表示制御装置から前記主記憶装置へのメモリアクセスシーケンスに対して前記主記憶装置から前記メモリバスに出力されるデータを保持するバッファメモリと、
前記表示制御装置の主記憶装置へのメモリアクセスシーケンスの実行の凍結の解除後に、前記バッファメモリに保持したデータを前記ローカルバスを介して前記表示制御装置に送る手段と、を有することを特徴とするデータ処理装置。
【請求項２】
CPUと、主記憶装置と、表示装置への表示を制御する表示制御装置とを備え、
前記表示制御装置が読み出して前記表示装置に表示する表示データを格納するフレームバッファとして前記主記憶装置の記憶領域の一部を用いるデータ処理装置であって、
前記主記憶装置に接続したメモリバスと、前記CPUに接続したCPUバスと、前記表示制御装置に接続したローカルバスに接続し、前記CPUバスと前記メモリバス間における前記CPUの前記主記憶装置へのメモリアクセスシーケンスの中継を行い、前記ローカルバスと前記メモリバス間における前記表示制御装置の主記憶装置へのメモリアクセスシーケンスの中継を行うメモリコントローラを備え、
前記主記憶装置は、ページモードのアクセスシーケンスでアクセスされるメモリであって、
前記メモリコントローラは、
前記表示制御装置のメモリアクセスシーケンスの前記メモリバスへの中継中に、前記CPUの主記憶装置へのメモリアクセスシーケンスが前記CPUバス上で開始した場合に、前記表示制御装置の主記憶装置へのメモリアクセスシーケンスの実行を凍結させ、前記CPUの主記憶装置へのメモリアクセスシーケンスの終了後に、前記表示制御装置の主記憶装置へのメモリアクセスシーケンスの実行の凍結を解除し、メモリアクセスシーケンスの未実行の部分を実行させる手段と、
前記メモリバスに中継した前記表示制御手段のメモリシーケンスに含まれるロウアドレスを記憶するバッファメモリと、
前記CPUの主記憶装置へのメモリアクセスシーケンスの終了後、前記表示制御装置の主記憶装置へのメモリアクセスシーケンスの実行の凍結の解除に先だって、前記バッファメモリに保持したロウアドレスを前記メモリバスを介して前記主記憶装置に送る手段と、を有すること
を特徴とするデータ処理装置。
【請求項３】
請求項１または２記載のデータ処理装置であって、
前記メモリコントローラは、データを圧縮して記憶する主記憶装置のアドレス範囲を登録したアドレス記憶手段と、
データを圧縮する圧縮手段と、
圧縮されたデータを復元する復元手段と、
CPUバス上のCPUの主記憶装置へのメモリアクセスシーケンスが主記憶装置の前記アドレス記憶手段に登録されたアドレス範囲にデータを書き込むメモリシーケンスである場合に、当該メモリアクセスシーケンスに代えて、当該データを前記圧縮手段を圧縮したデータを前記主記憶装置に書き込むメモリシーケンスを中継する手段と、
ローカルバス上の表示制御装置の主記憶装置へのメモリアクセスシーケンスが主記憶装置の前記アドレス記憶手段に登録されたアドレス範囲からデータを読み出すメモリシーケンスである場合に、当該メモリアクセスシーケンスに代えて、当該アドレス範囲のデータを圧縮したデータを記憶した主記憶装置のアドレス範囲からデータを読み出すメモリシーケンスをメモリバスに中継し、当該中継したメモリアクセスシーケンスで主記憶装置から読み出したデータに代えて、当該データを前記復元手段で復元したデータをローカルバスに中継する手段と、を有することを特徴とするデータ処理装置。
【請求項４】
請求項１または２記載のデータ処理装置であって、
前記データを圧縮して記憶する主記憶装置のアドレス範囲は、前記フレームバッファとして用いる前記主記憶装置の記憶領域の範囲であり、
前記圧縮は、３以上の画素に対応する３以上のデータのうち、２つのデータを第１のデータ、第２のデータとして選択し、前記３以上のデータを、第１のデータと、第１のデータと第２のデータの差分値を表すデータと、前記３以上のデータの各々が、前記第１のデータと第２のデータのどちらに近いかを表すデータとに変換する圧縮であることを特徴とするデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像表示用のフレームバッファメモリとして、演算処理を行うＣＰＵの主記憶装置の一部を用いる統合化メモリ方式（ＵＭＡ；  Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ）を用いるデータ処理装置に関し、特に、データ処理装置における処理性能を向上する技術に関するものである。
【０００２】
【従来の技術】
統合化メモリ方式を採用した従来のデータ処理装置の技術としては、特開平４−８４１９２号公報記載の技術が知られている
この技術では、ＣＰＵと主記憶装置間で転送するデータを一旦バッファするメモりを設けることにより、主記憶装置がＣＰＵのアクセスで占有されることを防ぎ、表示装置への表示を制御する表示コントローラが表示のために主記憶装置からデータを読み出す期間を確保している。
【０００３】
また、統合化メモリ方式を採用した従来のデータ処理装置の技術としては、フレームメモリの他、３次元グラフィックスに必要となるＺバッファやテクスチャメモリとして、主記憶装置の一部を用い、これを３次元グラフィックス処理を行うレンダリングプロセッサやジオメトリプロセッサがアクセスするように構成した装置も知られている。
【０００４】
【発明が解決しようとする課題】
上記従来の各技術によれば、ＣＰＵの主記憶装置へのアクセスが、表示コントローラやレンダリングプロセッサによって実行中の主記憶装置へのアクセスために待たされてしまい、装置全体の処理性能が劣化してしまうという問題があった。しかも、表示コントローラやレンダリングプロセッサによって実行されるアクセスに、ＣＰＵの主記憶装置へのアクセスが待たされる期間が依存することになるため、どの程度、ＣＰＵの主記憶装置へのアクセスが待たされることになるのかを前もって把握することができない。このため、従来の技術によれば、装置全体の処理性能の劣化を一定限度以下に保証することができない。
【０００５】
そこで、本発明は、統合化メモリ方式を採用したデータ処理装置において、装置全体の処理性能の劣化を軽減することを目的とする。
【０００６】
【課題を解決するための手段】
前記目的達成のために、本発明は、たとえば、ＣＰＵと、主記憶装置と、表示装置への表示を制御する表示制御装置とを備え、表示制御装置が読み出して表示装置に表示する表示データを格納するフレームバッファとして前記主記憶装置の記憶領域の一部を用いるデータ処理装置であって、
主記憶装置に接続したメモリバスと、ＣＰＵに接続したＣＰＵバスと、表示制御装置に接続したローカルバスに接続し、ＣＰＵの主記憶装置へのメモリアクセスシーケンスのＣＰＵバスとメモリバス間における中継を行い、表示制御装置の主記憶装置へのメモリアクセスシーケンスのローカルバスとメモリバス間における中継を行うメモリコントローラを備え、
前記メモリコントローラは、ＣＰＵバスとメモリバス間のメモリアクセスシーケンスの中継をローカルバスとメモリバス間のメモリアクセスシーケンスの中継に優先して行い、
ＣＰＵバスのスループットによって制限される最大頻度で、ＣＰＵの主記憶装置へのメモリアクセスが発生した場合にも、前記表示装置への表示に必要となる表示制御装置の主記憶装置へのメモリアクセスの頻度が確保されるように、前記メモリバスのスループットは、前記ＣＰＵバスのスループットより大きく設定されていることを特徴とするデータ処理装置を提供する。
【０００７】
このような構成によれば、ＣＰＵバスとメモリバス間のメモリアクセスシーケンスの中継をローカルバスとメモリバス間のメモリアクセスシーケンスの中継に優先して行うことによりＣＰＵの主記憶装置のアクセス待ちによる性能劣化を防止すると共に、ＣＰＵバスとメモリバスのスループットを上記のごとく設定することにより、表示制御装置による表示が支障なく行われることを保証することができる。
【０００８】
また、上記目的達成のために、本発明は、たとえば、ＣＰＵと、主記憶装置と、表示装置への表示を制御する表示制御装置とを備え、表示制御装置が読み出して表示装置に表示する表示データを格納するフレームバッファとして前記主記憶装置の記憶領域の一部を用いるデータ処理装置であって、
主記憶装置に接続したメモリバスと、ＣＰＵに接続したＣＰＵバスと、表示制御装置に接続したローカルバスに接続し、ＣＰＵバスとメモリバス間におけるＣＰＵの主記憶装置へのメモリアクセスシーケンスの中継を行い、ローカルバスとメモリバス間における表示制御装置の主記憶装置へのメモリアクセスシーケンスの中継を行うメモリコントローラを備え、
前記メモリコントローラは、
前記表示制御装置のメモリアクセスシーケンスのメモリバスへの中継中に、前記ＣＰＵの主記憶装置へのメモリアクセスシーケンスが前記ＣＰＵバス上で開始した場合に、前記表示制御装置の主記憶装置へのメモリアクセスシーケンスの実行を凍結させ、ＣＰＵの主記憶装置へのメモリアクセスシーケンスの終了後に、表示制御装置の主記憶装置へのメモリアクセスシーケンスの実行の凍結を解除し、メモリアクセスシーケンスの未実行の部分を実行させる手段を有することを特徴とするデータ処理装置を提供する。
【０００９】
このような構成によれば、ＣＰＵの主記憶装置へのアクセスが生じた場合に、表示制御装置のアクセスを凍結させることにより、ＣＰＵの主記憶装置へのアクセス待ちを凍結の処理に必要なサイクル以下に保証できると共に、中断させた表示制御装置の主記憶装置へのアクセスを凍結を解除することによ、凍結を解除した時点から再開させることができるので、表示制御装置の主記憶装置へのアクセス効率の劣化を軽減することができる。
【００１０】
【発明の実施の形態】
以下、本発明に係るデータ処理装置の実施形態について説明する。
【００１１】
なお、示すデータ処理装置は、パーソナルコンピュータなどの電子計算機やゲーム装置に適用することができる。
【００１２】
まず、第１の実施形態について説明する。
【００１３】
図示に、本実施形態に係るデータ処理装置の構成を示す。
【００１４】
図１において、１００はＣＰＵ、１５０はＣＲＴ、２００はメモリ、４００はメモリコントローラ、５００はＣＰＵインタフェース回路、５１０は内部バス調停回路、５２０はメモリインタフェース回路、５５０はＤＡＣ、５６０は表示コントローラ、５７０はレンダリングプロセッサ、７００はメモリバス制御回路、８００は保持バッファ、１００１はバスブリッジ、１００２はシステムバス、１００２はＩ／Ｏ、１００４はハードディスクドライブ、１００５はＣＤ−ＲＯＭドライブ、１００６はキーボードやマウスや入力タブレットやジョイステックなどの入力装置である。
【００１５】
ＣＰＵバス３１０、メモリバス３５０、内部バス５３０、システムバス１００２は、それぞれアドレスバスとデータバスから構成されている。また、メモリ２００の記憶空間は、ＣＰＵ１００が動作するために必要なプログラム、データをＣＤ−ＲＯＭドライブ１００５やハードディスクドライブ１００４からバスブリッジ１００１を介してロードしたり、ＣＰＵ１００が作業領域として用いたりする記憶空間である主記憶部２１０と、ＣＲＴ１５０に表示する表示データを記憶する記憶空間であるフレームバッファ２２０に分割されている。
【００１６】
このような構成において、ＣＰＵ１００は、主記憶部２１０にアクセスしながらデータ処理を入力装置１００６からの入力などに従いながら実行し、ＣＲＴ１５０に表示する表示データをフレームバッファ２２０に記憶する。また、レンダリングプロセッサ５７０も、主記憶部２１０に記憶されたテクスチャデータなどにアクセスしながらレンダリング処理を行い、ＣＲＴ１５０に表示する表示データをフレームバッファ２２０に記憶する。フレームバッファ２２０に記憶された表示データは、表示コントローラ５６０に読み出されＣＲＴ１５０に表示される。
【００１７】
以下、まず本データ処理装置の動作の概要について説明する。
【００１８】
なお以下の説明では、ＣＰＵバス３１０はバス幅３２ｂｉｔ、周波数３３ＭＨｚ、メモリバス３５０はバス幅３２ｂｉｔ、周波数６６ＭＨｚで動作するものとして説明する。
【００１９】
（１）まずメモリバス３５０が何も有効なメモリアクセスを実行していないときに、ＣＰＵ１００が主記憶２１０をアクセスする場合の動作
この場合、ＣＰＵ１００の内蔵キャッシュメモリのキャッシュミスなどでＣＰＵ１００から主記憶２１０への読み出しが必要になると、ＣＰＵ１００は読み出し要求をＣＰＵバス３１０に出力する。メモリコントローラ４００は、ＣＰＵバス３１０から読み出し要求を読み込み、ＣＰＵインタフェース回路５００を経由してメモリインタフェース回路５２０に転送する。
【００２０】
メモリインタフェース回路５２０は、メモリバス制御回路７００から出力される切換信号７５０が“１”になるまでＣＰＵ１００からの読み出し要求を一時保持する。一方、ＣＰＵバス３１０に出力された読み出し要求は、ＣＰＵバス制御信号３２０としてメモリバス制御回路７００にも入力される。メモリバス制御回路７００は、ＣＰＵバス制御信号３２０が入力されると切換信号７５０を“１”にして出力し、メモリバス３５０をＣＰＵ１００のアクセス用に使えるようにする。また、メモリバス制御回路７００は内部バス調停回路５１０にＣＰＵバスアクセス有効信号７２０を“１”にして出力し、ＣＰＵ１００のアクセスが終了するまで内部バス５３０からのアクセスが実行されないようにする。
【００２１】
メモリインタフェース回路５２０は、切換信号７５０が“１”になると一時保持していたＣＰＵ１００からの読み出し要求をメモリバス３５０を経由してメモリ２００に出力する。メモリ２００内の主記憶２１０から該当するデータが読み出されると、メモリバス３５０、メモリインタフェース回路５２０を経由してＣＰＵインタフェース回路５００へ転送される。ＣＰＵインタフェース回路５００はＣＰＵバス３１０に同期して、読み出されたデータをＣＰＵバス３１０を通してＣＰＵ１００に出力する。
【００２２】
ＣＰＵ１００の主記憶２１０への読み出しアクセス終了後メモリバス制御回路７００は、ＣＰＵバスアクセス有効信号７２０を“０”に、切換信号７５０を“０”にして、内部バス５３０からのメモリバス３５０へのアクセスを許可する。
【００２３】
ＣＰＵ１００から主記憶２１０への書き込みアクセスが発生した場合も、同様に、ＣＰＵ１００は、書き込み要求と、書き込みデータをＣＰＵバス３１０に出力する。メモリコントローラ４００は、ＣＰＵバス３１０を介して書き込み要求と書き込みデータを読み込み、ＣＰＵインタフェース回路５００を経由してメモリインタフェース回路５２０に転送する。メモリインタフェース回路５２０は、メモリバス制御回路７００から出力される切換信号７５０が“１”になるまでＣＰＵ１００からの書き込み要求と書き込みデータを一時保持する。一方、ＣＰＵバス３１０に出力された書き込み要求は、ＣＰＵバス制御信号３２０としてメモリバス制御回路７００にも入力される。メモリバス制御回路７００は、ＣＰＵバス制御信号３２０が入力されると切換信号７５０を“１”にして出力し、メモリバス３５０をＣＰＵ１００のアクセス用に使えるようにする。また、メモリバス制御回路７００は内部バス調停回路５１０にＣＰＵバスアクセス有効信号７２０を“１”にして出力し、ＣＰＵ１００のアクセスが終了するまで内部バス５３０からのアクセスが実行されないようにする。
【００２４】
メモリインタフェース回路５２０は、切換信号７５０が“１”になると一時保持していたＣＰＵ１００からの書き込み要求と書き込みデータをメモリバス３５０を経由してメモリ２００に出力する。また、ＣＰＵ１００の主記憶２１０への書き込みアクセス終了後メモリバス制御回路７００は、ＣＰＵバスアクセス有効信号７２０を“０”に、切換信号７５０を“０”にして、内部バス５３０からのメモリバス３５０へのアクセスを許可する。
【００２５】
（２）メモリバス３５０が何も有効なメモリアクセスを実行していないときに（メモリバス３５０がメモリアクセスに使用されていないときに）、表示コントローラ５６０またはレンダリングプロセッサ５７０がフレームバッファ２２０をアクセスする場合の動作
この場合、表示コントローラ５６０がフレームバッファ２２０へアクセス（読み出しのみ）するには、まず内部バス調停回路５１０への信号ｒｅｑＡを“１”にして出力し、アクセス許可を要求する。内部バス調停回路５１０は、ＣＰＵバスアクセス有効信号７２０が“０”であればａｃｋＡを“１”にして表示コントローラ５６０にアクセスを許可する。表示コントローラ５６０はａｃｋＡが“１”になったのを受けて、内部バス５３０に読み出しコマンド、読み出しアドレス、要求データ数からなる読み出し要求を出力する。切換信号７５０はＣＰＵ１００のアクセスがない場合は“０”になっているため、内部バス５３０へ出力された読み出し要求はメモリインタフェース回路５２０、メモリバス３５０を経由してメモリ２００に出力される。
【００２６】
メモリ２００内のフレームバッファ２２０から該当するデータが読み出されると、メモリバス３５０、メモリインタフェース回路５２０、内部バス５３０を経由して表示コントローラ５６０へ転送される。表示コントローラ５６０はアクセスを終了するとｒｅｑＡを“０”にしてアクセス終了を内部バス調停回路５１０に通知し、内部バス調停回路５１０はａｃｋＡを“０”にする。
【００２７】
表示コントローラ５６０がフレームバッファ２２０から読み出したデータは、ＤＡＣ５５０を経由してＣＲＴ１５０に出力される。
【００２８】
ここで、レンダリングプロセッサ５７０からメモリ２００へのアクセスは読み出し／書き込みの両方があるが、読み出し時の処理は表示コントローラ５６０と同じである。
【００２９】
一方、レンダリングプロセッサ５７０がメモリ２００へ書き込みアクセスをする場合は、内部バス調停回路５１０へｒｅｑＢを“１”にして出力し、内部バス調停回路５１０がａｃｋＢを“１”にするのを待って内部バス５３０に書き込みコマンド、書き込みアドレス、要求データ数からなる書き込み要求と、書き込みデータを出力する。切換信号７５０はＣＰＵ１００のアクセスがない場合は“０”になっているため、内部バス５３０へ出力された書き込み要求はメモリインタフェース回路５２０、メモリバス３５０を経由してメモリ２００に出力される。レンダリングプロセッサ５７０はアクセスを終了するとｒｅｑＢを“０”にしてアクセス終了を内部バス調停回路５１０に通知し、内部バス調停回路５１０はａｃｋＢを“０”にする。
【００３０】
なお、内部バス調停回路５１０は、ａｃｋＡ、ａｃｋＢを用いてレンダリングプロセッサ５７０と表示コントローラ５６０の内部バス５３０のアクセスの可否を制御することにより両者の内部バス５３０使用の調停を行う。
【００３１】
（３）メモリバス３５０がＣＰＵ１００からのアクセス実行中に内部バス５３０からのアクセス要求があった場合の動作
この場合は、ＣＰＵバスアクセス有効信号７２０が“１”になっており、ＣＰＵバスアクセス有効信号７２０が“０”になるまで内部バス５３０からのアクセスは実行されない。
【００３２】
（４）メモリバス３５０が内部バス５３０からのアクセス実行中にＣＰＵ１００からのアクセス要求があった場合の動作
ここではメモリバス３５０がレンダリングプロセッサ５７０のメモリ２００のアクセス実行中に、ＣＰＵ１００からのアクセス要求が発生したものとする。
【００３３】
まず、レンダリングプロセッサ５７０の読み出しアクセス実行中にＣＰＵ１００からのアクセス要求（読み出し要求または書き込み要求）があった場合の動作について説明する。ＣＰＵ１００からアクセス要求が出力されると、ＣＰＵバス制御信号３２０がメモリバス制御回路７００に入力される。メモリバス制御回路７００では、前述したメモリバス３５０が何も有効なメモリアクセスを実行していないときの動作と同じタイミングで切換信号７５０を“１”にしてＣＰＵ１００からのアクセスを実行させるが、現在実行中のレンダリングプロセッサ５７０のアクセス実行が切換信号７５０が“１”になるまでに終了しない場合には切換信号７５０を“１”にするのに先立って停止信号７３０を“１”にし、現在実行中のアクセスを一時中断することをレンダリングプロセッサ５７０に通知する。
【００３４】
ここで、読み出しアクセスでは、読み出し要求に対して読み出しデータが遅れてメモリ２００から転送されてくるため、停止信号７３０を“１”にした後も停止信号７３０が“０”の間にレンダリングプロセッサ５７０から出力された読み出し要求に対する読み出しデータがメモリ２００からメモリバス３５０、メモリインタフェース回路５２０を経由して転送されてくる。また、停止信号７３０が“１”になった後に、それ以前にメモリ２００に発行された読み出し要求に対して転送される読み出しデータの数は、読み出し要求がメモリ２００に発行されたタイミングとＣＰＵ１００からのアクセスの要求タイミングによって異なる。そこで、メモリバス制御回路７００はＣＰＵバス制御信号３２０と内部バス制御信号５４０に基づいて、停止信号７３０が“１”になった後に読み出しデータが転送されてくるタイミングでｐｕｓｈ信号を出力する。そして、保持バッファ８００では、ｐｕｓｈ信号に基づいて転送されてくる読み出しデータを保持する。なお、保持バッファ８００には、メモリ２００に発行された読み出し要求も保持するようになっている。
【００３５】
さて、保持バッファ８００にメモリ２００から転送されたデータが格納されると、メモリバス制御回路７００は、実行中のアクセスを中断し、メモリ２００をプリチャージするための制御信号を内部バス制御信号５４０として内部バス５３０、メモリインタフェース回路５２０、メモリバス３５０を経由してメモリ２００に出力する。この後でメモリバス制御回路７００は切換信号７５０を“１”にして、ＣＰＵ１００のアクセスを実行させる。ＣＰＵ１００のアクセス実行後、メモリバス制御回路７００は切換信号７５０を“０”にして内部バス５３０からのアクセスを実行できるようにする。保持バッファ８００は切換信号７５０が“１”→“０”になるタイミングに同期して、中断していたレンダリングプロセッサ５７０のアクセスを再開するために、保持してあった読み出し要求を内部バス５３０に出力する。メモリバス制御回路７００は停止信号７３０を“０”にするのに先立って、停止信号７３０が“１”になった後にメモリ２００から読み出されて保持バッファ８００に保持したデータを内部バス５３０に出力するために、ｐｏｐ信号を出力する。保持バッファ８００はｐｏｐ信号に同期して、保持してあった読み出しデータを出力する。
【００３６】
この後でメモリバス制御回路７００は停止信号７３０を“０”にすると、レンダリングプロセッサ５７０は中断していたアクセスを続行する。
【００３７】
以上の動作は、表示コントローラ５６０からのメモリアクセスの実行中にＣＰＵ１００のアクセス要求が生じた場合も同様である。
【００３８】
次に、レンダリングプロセッサ５７０の書き込みアクセス実行中にＣＰＵ１００からのアクセス要求があった場合の動作について説明する。書き込みアクセスの場合は、書き込みアドレスと書き込みデータは同時にメモリ２００に送られるため、読み出しアクセス時のように停止信号７３０が“１”で、切換信号７５０が“０”である間にメモリ２００と内部バス５３０の間で転送される書き込みデータはない。そのため、保持バッファ８００には書き込みコマンドと書き込みアドレスのみが保持される。それ以外は読み出しアクセスを中断した場合と同様に処理される。
【００３９】
以上のような動作によって、ＣＰＵ１００が常に一定の時間でメモリ２００にアクセスすることを保証できる。また、保持バッファ８００にアクセスを中断したときの状態を保持することで、再開時に中断したアドレスからアクセスを続行することができ、アクセスを中断することによるオーバヘッドを最小限に抑えることができる。
【００４０】
以下、上述した動作を実現するメモリコントローラ４００の各部の詳細について説明する。
【００４１】
ただし、以下では、メモリのアクセスシーケンスが次のようなものであるとして説明する。
【００４２】
すなわち、読み出し（ｒｅａｄ）アクセスの場合は、第１のサイクルで、読み出しコマンドと要求データ数（バースト長）を含むアクセス要求（Ａｃｔｉｖｅコマンド）を、メモリのｒｏｗアドレスと共にメモリに与え、読み出しＲＡＳ−ＣＡＳレイテンシサイクル分サイクルをあけた後の各サイクルで順次読み出しコマンドｒｅａｄコマンドと目的とするデータのｃｏｌｕｍｎアドレスを同時に与え、最後のサイクルで次のアクセスシーケンスのためにプリチャージコマンドを与える。ここで、読み出しＲＡＳ−ＣＡＳレイテンシは、Ａｃｔｉｖｅコマンドとｒｏｗアドレスを与えた後に、最初のｒｅａｄコマンドとｃｏｌｕｍｎアドレスを与えることができるようになるまでのサイクル数を表し、読み出しＣＡＳレイテンシはｒｅａｄコマンドとｃｏｌｕｍｎアドレスを与えてから当該ｃｏｌｕｍｎアドレスのデータがメモリ２００から出力されるまでのサイクル数を表し、プリチャージレイテンシは、前回プリチャージコマンドを与えてから、次の読み出しコマンドを含むＡｃｔｉｖｅコマンドを与えることができるようになるまでのサイクル数を表す。
【００４３】
また、書き込み（ｗｒｉｔｅ）アクセスの場合は、第１のサイクルで、書き込みコマンドと要求データ数（バースト長）を含むアクセス要求（Ａｃｔｉｖｅコマンド）を、メモリのｒｏｗアドレスと共にメモリに与え、書き込みＲＡＳ−ＣＡＳレイテンシサイクル分サイクルをあけた後の各サイクルで順次書き込みコマンド（ｗｒｉｔｅコマンド）と目的とするデータのｃｏｌｕｍｎアドレスとデータを同時に与え、最後のサイクルで次のアクセスシーケンスのためにプリチャージコマンドを与える。ここで、書き込みしＲＡＳ−ＣＡＳレイテンシは、Ａｃｔｉｖｅコマンドとｒｏｗアドレスを与えた後に、最初のｗｒｉｔｅコマンドとｃｏｌｕｍｎアドレスを与えることができるようになるまでのサイクル数を表し、書き込みＣＡＳレイテンシはｗｒｉｔｅコマンドとｃｏｌｕｍｎアドレスを与えてから当該ｃｏｌｕｍｎアドレスのデータを与えるまでのサイクル数（通常は０）を表し、プリチャージレイテンシは、前回プリチャージコマンドを与えてから、次の書き込みコマンドを含むＡｃｔｉｖｅコマンドを与えることができるようになるまでのサイクル数を表す。
【００４４】
ただし、前述したように書き込み時のＣＡＳレイテンシは通常存在せず、ＲＡＳ−ＣＡＳレイテンシは読み出しも書き込みも通常同じ値をとるので、以下で、単にＲＡＳ−ＣＡＳレイテンシと記載した場合は読み出し書き込みに共通したＡＳ−ＣＡＳレイテンシの値を表し、単にＣＡＳレイテンシと記載した場合は読み出し時のＣＡＳレイテンシを表すものとする。
【００４５】
まず、図２にＣＰＵインタフェース回路５００の構成を示す。
【００４６】
図２において、２１００は読み出しバッファである。
【００４７】
ＣＰＵバス３１０からのアクセス要求は、ＣＰＵインタフェース回路５００をスルーし、そのままメモリインタフェース回路５２０に転送される。一方、メモリバス３５０からＣＰＵバス３１０に転送される読み出しデータは、読み出しバッファ２１００へ書き込まれる。読み出しバッファ２１００へ書き込まれたデータはＣＰＵバス３１０のバスクロックに同期してＣＰＵバス３１０に出力される。
【００４８】
次に、図３にメモリインタフェース回路５２０の構成を示す。
【００４９】
図３において、３１００はアドレスバッファ、３２００はデータバッファである。
【００５０】
ＣＰＵ１００からの読み出し要求があった場合には、ＣＰＵインタフェース回路５００を経由して転送されてきた読み出し要求がアドレスバッファ３１００に保持され、切換信号７５０が“１”になったタイミングからメモリバス３５０に出力される。読み出し要求に対してメモリ２００から読み出されたデータは、そのままＣＰＵインタフェース回路５００へ転送される。
【００５１】
また、ＣＰＵ１００から書き込み要求があった場合には、ＣＰＵインタフェース回路５００を経由して転送されてきた書き込み要求と書き込みデータが、それぞれアドレスバッファ３１００とデータバッファ３２００に保持され、切換信号７５０が“１”になったタイミングからメモリバス３５０に出力される。
【００５２】
次に、図４にメモリバス制御回路７００の構成を示す。
【００５３】
図４において、４１００，４１１０はデコーダ、４２００はＣＰＵアクセスバッファ、４２１０はＣＰＵバス用アクセス長計算回路、４２２０は内部バスアクセスカウンタ、４２３０は内部バス用アクセス長計算回路、４３００は停止判定回路、４４００は切換信号発生回路、４４１０は停止処理回路、４４２０は再開処理回路である。
【００５４】
デコーダ４１００はＣＰＵバス制御信号３２０をデコードして、ＣＰＵ１００からアクセス要求があったときに“１”になるＣＰＵバスアクセス要求信号と、ＣＰＵ１００からのアクセス要求が読み出し／書き込みのいずれであるかを示すコマンドと、読み出し／書き込みのデータ数を示すバースト長を出力する。
【００５５】
ＣＰＵアクセスバッファ４２００は、ＣＰＵバスアクセス要求信号を受けてＣＰＵバスアクセス有効信号７２０を“１”にして出力する。ＣＰＵバスアクセス有効信号７２０はＣＰＵ１００からのアクセス実行中は“１”に保持され、アクセス終了後に切換信号７５０が“０”になると“０”に戻される。ＣＰＵバス用アクセス長計算回路４２１０は、コマンドとバースト長からＣＰＵ１００からのアクセスが何サイクルかかるかを計算し、ＣＰＵアクセス長として出力する。
【００５６】
デコーダ４１１０は内部バス制御信号５４０をデコードして、内部バス５３０からのアクセス要求があったときに“１”になる内部バスアクセス開始信号と、内部バス５３０からのアクセス要求が読み出し／書き込みのいずれであるかを示すコマンドと、読み出し／書き込みのデータ数を示すバースト長を出力する。内部バス用アクセスカウンタ４２２０は、内部バスアクセス開始信号を受けたタイミングで内部のカウンタをリセットし、内部バスアクセス実行中のサイクル数をカウントして内部アクセスサイクルとして出力する。内部バス用アクセスカウンタ４２２０はさらに、ＣＰＵバスアクセス要求信号が“１”になったときの内部のカウンタのカウント値を停止要求サイクルとして出力する。内部バス用アクセス長計算回路４２３０は、コマンドとバースト長から内部バス５３０からのアクセスが何サイクルかかるかを計算し、内部アクセス長として出力する。停止判定回路４３００は、デコーダ４１１０から出力されるコマンドと、停止要求サイクル、内部アクセス長に基づいて切換信号７５０を“１”にするタイミングを示す切換開始サイクル、停止信号７３０を“１”にするタイミングを示す停止開始サイクル、内部バス５３０からの実行中アクセスが読み出しアクセスの場合に停止信号７３０が“１”になってから切換信号７５０が“１”になるまでの期間にメモリ２００から内部バス５３０に転送される読み出しデータの有無を示すデータ保持信号を出力する。
【００５７】
切換信号発生器４４００は、ＣＰＵアクセス長、内部アクセスサイクル、切換開始サイクルに基づいて切換信号７５０の値を制御する。停止処理回路４４１０は、デコーダ４１１０から出力されるコマンド、ＣＰＵアクセス長、内部アクセスサイクル、停止開始サイクル、データ保持信号に基づいて停止信号７３０を出力する。停止処理回路４４１０はまた、停止信号７３０が“１”になってから切換信号７５０が“１”になるまでの期間にメモリ２００から内部バス５３０に転送される読み出しデータがある場合にはｐｕｓｈ信号を出力し、現在実行中の内部バス５３０からのアクセスを中断する必要がある場合にはメモリ２００をプリチャージするための信号を制御信号として内部バス５３０に出力する。再開処理回路４４２０は、中断していた内部バス５３０からのアクセスがあり、かつ中断したアクセスが読み出しアクセスだった場合には、ＣＰＵアクセス長、内部アクセスサイクル、切換信号７５０、停止信号７３０に基づいて、保持バッファ８００に保持した読み出しデータを内部バス５３０に出力することを要求する信号をｐｏｐ信号として出力する。
【００５８】
図４のＣＰＵアクセスバッファ４２００の構成を図５にに示す。
【００５９】
図中、５１００はラッチ、５１１０はＡＮＤ回路、５２００はＣＰＵアクセス要求バッファである。
【００６０】
図５において、ＣＰＵバスアクセス要求信号が“１”になったタイミングで、ＣＰＵアクセス要求バッファ５２００に“１”がセットされる。ＣＰＵアクセス要求バッファ５２００は、セットされた値をＣＰＵバスアクセス有効信号７２０として出力する。ＣＰＵアクセス要求バッファ５２００の内容は、切換信号７５０が“１”→“０”になるタイミングで“０”にリセットされる。
【００６１】
図６に図４のＣＰＵバス用アクセス長計算回路４２１０の構成例を示す。
【００６２】
図６において、６１００はメモリ特性テーブル、６１１０は加算器である。
【００６３】
図６において、メモリ特性テーブル６１００にはコマンドが読み出し（ｒｅａｄ）／書き込み（ｗｒｉｔｅ）のときのそれぞれについて、ＲＡＳ−ＣＡＳレイテンシ、ＣＡＳレイテンシ、プリチャージレイテンシが登録されている。デコーダ４１００から出力されたコマンドに基づいてメモリ特性テーブル６１００から各パラメータを読み出し、デコーダ４１００から出力されたバースト長と加算器６１１０で合計し、ＣＰＵアクセス長として出力する。
【００６４】
図７に図４の内部バスアクセスカウンタ４２２０の構成を示す。
【００６５】
図７において、７１００はカウンタ、７１１０はセレクタである。
【００６６】
図７において、カウンタ７１００は内部バスアクセス開始信号によって“１”にリセットされ、その後は内部バス５３０からのアクセスの実行サイクル数をカウントし、内部アクセスサイクルとして出力する。ＣＰＵバスアクセス要求信号が“１”になったタイミングからカウンタ７１００からの出力を停止要求サイクルとして出力する。その他のときは、十分に大きなディフォルト値として”１０００”を出力する。
【００６７】
図８に図４における内部バス用アクセス用計算回路４２３０の構成を示す。
【００６８】
図８において、８１００はメモリ特性テーブル、８１１０は加算器である。
【００６９】
図８において、メモリ特性テーブル８１００にはコマンドが読み出し（ｒｅａｄ）／書き込み（ｗｒｉｔｅ）のときのそれぞれについて、ＲＡＳ−ＣＡＳレイテンシ、ＣＡＳレイテンシ、プリチャージレイテンシが登録されている。デコーダ４１１０から出力されたコマンドに基づいてメモリ特性テーブル８１００から各パラメータを読み出し、デコーダ４１１０から出力されたバースト長をあわせて加算器８１１０で合計し、内部アクセス長として出力する。
【００７０】
図９に図４の停止判定回路４３００の構成を示す。
【００７１】
図９において、９１００は転送時間レジスタ、９１１０はメモリ特性レジスタ、９２００は読み出し用停止判定回路、９３００は書き込み用停止判定回路である。
【００７２】
図９において、転送時間レジスタ９１００には、表示コントローラ５６０やレンダリングプロセッサ５７０によるメモリバス３５０の使用中にＣＰＵ１００からのアクセスが生じた場合に、メモリコントローラー４００のメモリインタフェース回路５２０によって生じさせる、ＣＰＵバス３１０からメモリバス３５０へのはじめのコマンドの転送時間（遅延時間）を登録してある。メモリ特性レジスタ９１１０には、ＲＡＳ−ＣＡＳレイテンシ、ＣＡＳレイテンシ、読み出し（ｒｅａｄ）／書き込み（ｗｒｉｔｅ）それぞれのプリチャージレイテンシが登録してある。読み出し用停止判定回路９２００は、停止要求サイクル、内部アクセス長、転送時間、ＲＡＳ−ＣＡＳレイテンシ、ＣＡＳレイテンシ、読み出し（ｒｅａｄ）プリチャージレイテンシに基づいて、読み出しアクセス実行時の切換信号７５０を“１”にするタイミングを示す切換開始サイクル、停止信号７３０を“１”にするタイミングを示す停止開始サイクル、保持バッファ８００に内部バス５３０上のデータを保持するかどうかを示すデータ保持信号を出力する。
【００７３】
書き込み用停止判定回路９３００は、停止要求サイクル、内部アクセス長、転送時間、書き込み（ｗｒｉｔｅ）プリチャージレイテンシに基づいて、書き込みアクセス実行時の切換開始サイクル、停止開始サイクルを出力する。読み出し用停止判定回路９２００及び書き込み用停止判定回路９３０から出力されたこれらの信号は、デコーダ４１１０から出力されたコマンドによって、セレクタ９４００〜９４２０で選択されて出力される。
【００７４】
図１０に図９における読み出し用停止判定回路９２００の構成を示す。
【００７５】
図１０において、１０１００，１０１５０は比較器、１０１１０は加算器、１０１２０，１０１４０は減算器、１０１３０はカウンタ、１０１６０はセレクタ、１０１７０はＡＮＤ回路である。
【００７６】
図１０において、比較器１０１００は内部アクセス長が停止要求サイクル以上であれば“１”を、そうでなければ“０”を出力する。加算器１０１１０は、停止要求サイクルと転送時間から切換開始サイクルを計算し出力する。減算器１０１２０は、切換開始サイクルから読み出し（ｒｅａｄ）プリチャージレイテンシを引いた値を計算し出力する。カウンタ１０１３０は、（減算器１０１２０の出力値）から（減算器１０１２０の出力値＋読み出し（ｒｅａｄ）プリチャージレイテンシ−１）までの値をカウントする。減算器１０１４０はカウンタ１０１３０の出力値からＣＡＳレイテンシを引いた値を出力する。比較器１０１５０は減算器１０１４０の出力値がＲＡＳ−ＣＡＳレイテンシよりも大きければ“１”を、そうでなければ“０”を出力する。セレクタ１０１６０は、比較器１０１００の出力値が“１”であれば停止開始サイクルとして減算器１０１２０の出力値を、そうでなければ停止開始サイクルとして“０”を出力する。ＡＮＤ回路１０１７０は、比較器１０１００と比較器１０１５０の出力値の論理積をデータ保持信号として出力する。
【００７７】
図１１に図９の書き込み用停止判定回路９３００の構成を示す。
【００７８】
図１１において、１１１００は比較器、１１１１０は加算器、１１１２０は減算器、１１１３０はセレクタである。
【００７９】
図１１において、比較器１１１００は内部アクセス長が停止要求サイクル以上であれば“１”を、そうでなければ“０”を出力する。加算器１１１１０は、停止要求サイクルと転送時間の和を切換開始サイクルとして出力する。減算器１１１２０は、切換開始サイクルと書き込み（ｗｒｉｔｅ）プリチャージレイテンシの差を出力する。セレクタ１１１３０は、比較器１１１００の出力値が“１”であれば停止開始サイクルとして減算器１１１２０の出力値を、そうでなければ停止開始サイクルとして“０”を出力する。
【００８０】
次に、図４のメモリバス制御回路７００の切換信号発生回路４４００の構成例を示す。
【００８１】
図１２において、１２１００，１２１２０は比較器、１２１１０は加算器、１２２００は切換レジスタである。
【００８２】
図１２において、比較器１２１００は内部アクセスサイクルと切換開始サイクルが等しいときに“１”を出力する。加算器１２１１０は切換開始サイクルとＣＰＵアクセス長の和を出力する。比較器１２１２０は内部アクセスサイクルと加算器１２１１０の出力値が等しいときに“１”を出力する。切換レジスタ１２２００は、比較器１２１００の出力値が“１”のときに“１”にセットされ、比較器１２１２０の出力値が“１”のときに“０”にリセットされる。切換レジスタ１２２００は、保持している値を切換信号７５０として出力する。
【００８３】
次に、図１３に図４の停止処理回路４４１０の構成を示す。
【００８４】
図１３において、１３１００はメモリ特性レジスタ、１３２００，１３２２０は比較器、１３２１０は加算器、１３２３０はカウンタ、１３２４０はＦＩＦＯバッファ、１３２５０はセレクタ、１３３００は停止レジスタ、１３３１０はプリチャージ発行回路である。
【００８５】
図１３において、メモリ特性レジスタ１３１００は、ＲＡＳ−ＣＡＳレイテンシ、読み出し（ｒｅａｄ）プリチャージレイテンシ、書き込み（ｗｒｉｔｅ）プリチャージレイテンシを保持するレジスタである。比較器１３２００は、内部アクセスサイクルと停止開始サイクルが等しいとき“１”を出力する。セレクタ１３２５０は、デコーダ４１１０が出力したコマンドによって読み出し（ｒｅａｄ）または書き込み（ｗｒｉｔｅ）プリチャージレイテンシを出力する。加算器１３２１０は、停止開始サイクル、ＣＰＵアクセス長、ＲＡＳ−ＣＡＳレイテンシ、セレクタ１３２５０の出力値の和を出力する。比較器１３２２０は、内部アクセスサイクルと加算器１３２１０の和が等しいときに”１”を出力する。カウンタ１３２３０は、比較器１３２００の出力値が“１”になったタイミングから、セレクタ１３２５０の出力値が示す回数だけ、“１”を出力する。ＦＩＦＯバッファ１３２４０は、データ保持信号を保持し、カウンタ１３２３０の出力値が“１”になったタイミングで保持していたデータ保持信号をｐｕｓｈ信号として出力する。停止レジスタ１３３００は比較器１３２００の出力値が“１”のとき“１”にセットされ、比較器１３２２０の出力値が“１”のとき“０”にリセットされる。停止レジスタ１３３００に保持される値は、停止信号７３０として出力される。プリチャージ発行回路１３３１０は、比較器１３２００の出力値が“１”になったタイミングで内部バス５３０にメモリ２００をプリチャージするための制御信号を出力する。
【００８６】
図１４に図４の再開処理回路４４２０の構成例を示す。図１４において、１４１００はメモリ特性レジスタ、１４２００はラッチ、１４２１０，１４２２０はＡＮＤ回路、１４２３０はカウンタである。
【００８７】
図１４において、メモリ特性レジスタ１４１００は、ＲＡＳ−ＣＡＳレイテンシを保持するレジスタである。ＡＮＤ回路１４２１０は、切換信号７５０が“１”→“０”になったタイミングで“１”を出力する。ＡＮＤ回路１４２２０は、ＡＮＤ回路１４２１０の出力値が“１”で、かつ停止信号７３０が“１”のときに“１”を出力する。カウンタ１４２３０は、ＡＮＤ回路１４２２０の出力値が“１”になったタイミングから、ＲＡＳ−ＣＡＳレイテンシサイクルだけｐｏｐ信号として“１”を出力する。
【００８８】
以上、メモリバス制御回路７００について説明した。
【００８９】
次に、図１の保持バッファ８００の構成を図１５に示す。
【００９０】
図１５において、１５１００はデコーダ、１５２００は中断アクセスレジスタ、１５３００は書き込み許可バッファ、１５４００はデータ保持レジスタ、１５５００，１５５３０，１５５５０はＡＮＤ回路、１５５１０，１５５２０，１５５４０はラッチである。
【００９１】
図１５において、デコーダ１５１００は、内部バス５３０から読み出したアクセス要求をデコードして中断されたアクセスが読み出し／書き込みのいずれであるかを示すコマンドと、中断されたアクセスの中断アドレスを出力する。ＡＮＤ回路１５５００は、切換信号７５０が“１”→“０”になり、かつ停止信号７３０が“１”のタイミングで“１”を出力する。中断アクセスレジスタ１５２００は、コマンドと、中断アドレスを保持し、ＡＮＤ回路１５５００の出力値が“１”になったタイミングで、保持していたコマンドと中断アドレスを内部バス５３０に出力する。ＡＮＤ回路１５５３０は、停止信号７３０が“０”→“１”になるタイミングで“１”を出力する。ＡＮＤ回路１５５５０は、切換信号７５０が“０”→“１”になるタイミングで“１”を出力する。書き込み許可バッファ１５３００は、ＡＮＤ回路１５５３０の出力値が“１”のときに“１”にセットされ、ＡＮＤ回路１５５５０の出力値が“１”のときに“０”にリセットされる。書き込み許可バッファ１５３００は、保持している値を書き込み許可信号として出力する。データ保持レジスタ１５４００は、書き込み許可信号が“１”である間、内部バス５３０からデータを読み出し、ｐｕｓｈ信号をｖａｌｉｄフラグとして同時に保持する。データ保持レジスタ１５４００はまた、ｐｏｐ信号が“１”である間、保持しているデータを読み込んだ順に内部バス５３０に出力する。その時、ｖａｌｉｄフラグが“１”の場合のみ有効なデータを出力する。
【００９２】
以上、メモリコントローラ４００の各部の詳細について説明した。
【００９３】
先に概要を述べた本データ処理装置の動作の以上の各部の動作によって実現される詳細を以下に示す。
【００９４】
図１６に、内部バス５３０からの読み出しアクセス実行中に、ＣＰＵバス３１０から読み出しアクセス要求があった場合を示す。また、図１６では、転送時間５サイクル、ＲＡＳ−ＣＡＳレイテンシ２サイクル、ＣＡＳレイテンシ３サイクル、読み出しプリチャージレイテンシ３サイクルとして示している。メモリバス３５０の動作タイミングＴを１サイクルとして表してある。
【００９５】
図１６において、Ｔ＝１で内部バス５３０からの読み出しアクセスが開始される。このタイミングで保持バッファ８００には、読み出しアクセスの読み出しコマンドとＲｏｗアドレスが登録される。Ｔ＝３でＣＰＵバス３１０から読み出しアクセス要求が発生するが、転送時間５サイクルでＣＰＵバス３１０からのアクセスを実行するためにはＴ＝８からメモリバス３５０をＣＰＵバス３１０からのアクセス用に切換なければならず、実行中の読み出しアクセスを中断する必要がある。そのためにＴ＝５で停止信号７３０が“１”となる。切換信号７５０はＴ＝８で“１”となるが、Ｔ＝３，４のタイミングで発行された読み出しコマンドによりＴ＝６，７のタイミングにメモリ２００から読み出しデータが転送されてくるため、Ｔ＝６，７でｐｕｓｈ信号を“１”にして保持バッファ８００にデータｄ０とｄ１を保持する。また実行中のアクセスを中断し、Ｔ＝８からＣＰＵバス３１０からのアクセスを実行するため、Ｔ＝５でメモリバス制御回路７００からプリチャージコマンドを内部バス５３０に出力する。Ｔ＝８で切換信号７５０を“１”にし、Ｔ＝１６までＣＰＵバス３１０からの読み出しアクセスを実行する。Ｔ＝１７で切換信号７５０が“０”になり、このタイミングで保持バッファ８００に保持されていたコマンドとＲｏｗアドレスが内部バス５３０に出力される。Ｔ＝１９で停止信号７３０が“０”になり、それに同期してｐｏｐ信号が“１”になる。ｐｏｐ信号はＴ＝１９〜２１まで“１”になるが、有効なデータが保持されていないためにＴ＝１９では内部バス５３０にはデータが出力されない。Ｔ＝２０，２１ではデータｄ０とｄ１が内部バス５３０に出力される。
【００９６】
次に、図１７に内部バス５３０からの書き込みアクセス実行中に、ＣＰＵバス３１０から読み出しアクセス要求があった例で、転送時間５サイクル、ＲＡＳ−ＣＡＳレイテンシ２サイクル、ＣＡＳレイテンシ０サイクル、書き込みプリチャージレイテンシ２サイクルのときのタイムチャートである。また図１７では、メモリバス３５０の動作タイミングＴを基準に表してある。
【００９７】
図１７において、Ｔ＝１で内部バス５３０からの書き込みアクセスが開始される。このタイミングで保持バッファ８００には、書き込みアクセスの書き込みコマンドとＲｏｗアドレスが登録される。Ｔ＝３でＣＰＵバス３１０から読み出しアクセス要求が発生するが、転送時間５サイクルでＣＰＵ３１０からのアクセスを実行するためにはＴ＝８からメモリバス３５０をＣＰＵバス３１０からのアクセス用に切換えねばならず、実行中の書き込みアクセスを中断する必要がある。そのためＴ＝６で停止信号７３０が“１”となる。また、Ｔ＝８からＣＰＵバス３１０からのアクセスを実行するため、Ｔ＝６でメモリバス制御回路７００からプリチャージコマンドを内部バス５３０に出力する。Ｔ＝８で切換信号７５０を“１”にして、Ｔ＝１６までＣＰＵバス３１０からの読み出しアクセスを実行する。Ｔ＝１７で切換信号７５０が“０”になり、このタイミングで保持バッファ８００に保持されていたコマンドとＲｏｗアドレスが内部バス５３０に出力される。Ｔ＝１９で停止信号７３０が“０”になり、それに同期してｐｏｐ信号が“１”になる。ｐｏｐ信号はＴ＝１９〜２１まで“１”になるが、中断したアクセスが書き込みコマンドの場合には保持バッファ８００に保持されているデータはないために、保持バッファ８００からは有効なデータは出力されない。
【００９８】
以上、本発明の第１実施形態について説明した。
【００９９】
ここで、図１におけるＣＰＵインタフェース回路５００は、図１８に示すように構成するようにしてもよい。
【０１００】
図１８において、２１００は読み出しバッファ、１８１００はキャッシュメモリ制御回路、１８２００はキャッシュメモリである。
【０１０１】
図１８において、キャッシュメモリ制御回路１８１００とキャッシュメモリ１８２００は二次キャッシュを構成しており、キャッシュメモリ制御回路１８１００はＣＰＵバス３１０からのアクセス要求をデコードして、該当するデータがキャッシュメモリ１８２００に登録されているかを調べる。登録されている場合には、メモリインタフェース回路５２０へＣＰＵバス３１０からのアクセス要求を転送せずに、読み出しアクセスの場合にはキャッシュメモリ１８２００からデータをＣＰＵバス３１０へ出力し、書き込みアクセスの場合にはキャッシュメモリ１８２００へＣＰＵバス３１０からのデータを登録する。登録されていない場合には、メモリインタフェース回路５２０へアクセス要求を転送し、読み出されたデータｗ記憶する。また、キャッシュメモリ制御回路１８１００は、キャッシュメモリの内容のリプレースの制御を行うために、キャッシュメモリ１８２００の内容をメモリ２００に書き込む制御なども行う。キャッシュメモリ制御回路１８１００の発行する書き込み要求は、メモリコントローラ４００内において、ＣＰＵ１００からの書き込み要求と同様に処理される。
【０１０２】
ここで、キャッシュメモリ１８２００は、ＣＰＵ１００に内蔵しているキャッシュメモリよりも容量が大きいものであり、ＣＰＵインタフェース回路５００内に大容量のキャッシュメモリ１８２００を二次キャッシュとして、内蔵することでメモリ２００に対するＣＰＵ１００からのアクセスを減らすことができるため、内部バス５３０からのアクセスを中断する頻度を下げることが可能となり、メモリ統合化による表示や描画の性能劣化を小さくすることができる。
【０１０３】
以上のように、本第１実施形態によれば、ＣＰＵ１００のメモリ２００のアクセスの待ち時間を、上述した転送時間数に保証することができる。したがって、従来に比べ、その処理性能の劣化を軽減することができる。また、内部バス５３０側からのアクセスは、ＣＰＵ１００からのアクセスが発生すると強制的に中断させられるが、ＣＰＵ１００からのアクセス終了後は、中断したところからアクセスシーケンスを再開することができるので、本実施形態の構成を採用したことによる内部バス側からのアクセス効率の極めて小さい。
【０１０４】
以下、本発明に係るデータ処理装置の第２の実施形態について説明する。
【０１０５】
図１９に、本第２実施形態に係るデータ処理装置の構成を示す。
【０１０６】
図示するように、本第２実施形態に係るデータ処理装置の構成は、ほぼ、図１に示した第１実施形態に係るデータ処理装置の構成と同様であり、メモリインタフェース回路１９５２０の構成と、メモリインタフェース回路１９５２０からＣＰＵ１００、表示コントローラ１９５６０、レンダリングプロセッサ１９５７０に取り消し信号を送信するようにした点のみが異なる。
【０１０７】
メモリインタフェース回路１９５２０は、あらかじめ定めた、ＣＰＵ１００にアクセスが許可されるメモリ２００のアドレス領域と、表示コントローラ１９５６０およびレンダリングプロセッサ１９５７０にアクセスが許可されるメモリ２００のアドレス領域を管理し、許可されたアドレス領域以外のアドレスにアクセス要求が発行された場合には、ＣＰＵバス３１０からのアクセス要求に対しては取り消し信号１９６００、内部バス５３０からのアクセスに対しては取り消し信号１９６００を出力する。
【０１０８】
図２０に、このようなメモリインタフェース回路１９５２０の構成を示す。
【０１０９】
図２０において、２０１００はアドレス監視回路２０２００は許可アドレスレジスタである。
【０１１０】
図２０に図１９におけるメモリインタフェース回路１９５２０の構成例を示す。図２０において、２０１００はアドレス監視回路、２０２００は許可アドレスレジスタである。他の要素は、第１実施形態において同符号を付して示した要素と同じ要素である。
【０１１１】
図２０において、許可アドレスレジスタ２０２００はＣＰＵ１９１００、表示コントローラ１９５６０、レンダリングプロセッサ１９５７０のアクセス許可アドレスが登録されている。アドレス監視回路２０１００は、ＣＰＵバス３１０と内部バス５３０からのアクセス要求を調べて、許可されている領域外へのアクセスがあった場合には、取消信号１９６００または１９６１０を出力し、不正アクセスであることを通知する。
【０１１２】
このように、アドレスを監視し、アクセス許可アドレス領域以外へのアクセス要求があった際に取消信号１９６００及び１９６１０を出力するメモリインタフェース回路１９５２０を設けることによって、メモリ２００上のデータの不正なアクセスによる誤書き込みなどを防ぐことが可能となり、システムの信頼性を向上することができる。
【０１１３】
以下、本発明の第３の実施形態について説明する。
【０１１４】
図２１に、本第３実施形態に係るデータ処理装置の構成を示す。
【０１１５】
図２１において、３６５６０は表示ゴントローヲ、３６５７０はレンダリングプロセッサ、３６７００はメモリバス制御回路である。他部は、図１において同符号を付して示した部位と同じ部位である。図示するように、本第３実施形態は、図１に示した第１実施形態の構成より保持バッファ８００を省略した構成となっている。
【０１１６】
まず、本第３実施形態に係るデータ処理装置の動作の概要について説明する。
【０１１７】
データ処理装置において、メモリバス３５０が何も有効なメモリアクセスを実行していない時に、ＣＰＵ１００、表示コントローラ３６５６０、レンダリングプロセッサ）いずれかがメモリ２００をアクセスする場合の動作は第１実施形態の動作と同一である。また、ＣＰＵ１００がメモリアクセス中に内部バス５３０からのアクセス要求があった場合の動作も、第１実施形態の場合と同様である。
【０１１８】
一方、メモリバス３５０が内部バス５３０からのアアクセス実行中に、ＣＰＵｌ００からのアクセス要求があった場合は、次のように動作する。
【０１１９】
内部バス５３０からメモリバス３５０へのアクセス、読み出し要求によるものあっても書き込み要求によるものであっても動作の中心となるメモリコントローラ４００の動作は変わらないので、ここではレンダリングプロセッサ３６５７０がヂ売み出しアクセス実行中に、ＣＰＵ１００からのアクセス要求が発生した場合を例にとり説明する。
【０１２０】
ＣＰＵｌ００からアクセス要求が出力されると、第１実施形態の場合と同様にＣＰＵバス制御信号３２０がメモリバス制御回路３６７００に入力する。メモリバス劉御画路３６７００は、メモリバス３５０が何も有効なメモリアクセスを実行していないときと同じタイミングで切換信号７５０を”１”にしてＣＰＵ１００からのアクセスを実行させるが、切襖信号７５０が”１”になるまでに、レンダリングプロセッサ３６５７０のメモリアクセスが柊了しない場合には、切換信号７５０を”ｌ”にするのに先立って停止信号７３０を”ｌ”にし、現在実行中のアクセスを一時中断することをレンダリングプロセッサ３６５７０に通知する。レンダリングプロセッサ３６５７０はアクセス実行中に停止信号フ３０が”ｌ”になると、途中まで読み込んだデータを無効化し、停止信号７３０が”０”になるまで停止する。
【０１２１】
メモリバス制御回路３６７００は、このようにしてレンダリングプロセッサ３６５７０のメモリアクセスを停止させた後、切換信号７５０を”１”にしてＣＰＵ１００のアクセスを実行させる。そして、ＣＰＵ１００のアクセスが終了すると、メモリバス簡御画路３６７００は切換信号７５０を”０”にし、内部バス５３０からのメモリ２００のアクセスが実行できるようにする。また、メモリバス制御回路３６７００は、切換信号７５０を”０”とするのと同時に、停止信号７３０も”０”にする。停止信号７３０が”０”になると、停止していたレンダリングプロセッサ３６５７０は、停止信号７３０の”０”から”１”への変化によって中断されたアクセスをサイド初めから実行する。
【０１２２】
このような動作を制御するメモリバス制御回路３６７００の構成を図２２に示す。
【０１２３】
図２２において、３７３００は停止判定回路、３７４１０は停止処理画路である。他の要素は、第１実施形態において同符号を付して示した要素と同じ要素である。
【０１２４】
停止判定回路３フ３００はデコーダ４４１１０から出力されるコマンド、内部バス用アクセスカウンタ４２２０から出力される停止要求サイクル、内部バス用アクセスス長計算回路４２３０から出力される内部アクセス長に基づいて、切切換信号７５０を”ｌ”にするタイミングを示す切換開始サイクル、停止信号７３０を”ｌ”にす
ングを示す停止開始サイクルを出力する。停止処理回路３７４１０は、デコーダ４１１０から出力されるコマンド、ＣＰＵバス用アクセス長計算回路４２ｌ０から出力されるＣＰＵアクセス長、内部バス用アクセスカウンタ４２２０から出力される内部アクセスサイクルと、停止開始サイクルに基づいて、停止信号７３０を出力する。また、停止処理回路３７４１０は、現在実行中の内部バス５３０からのアクセスを中断する必要がある場合には、メモリ２００をプリチャージするための信号を制御信号として内部バス５３０に出力する。
【０１２５】
図２３に、図２２の停止判定回路３７３００の構成を示す。
【０１２６】
図中、３８１１０はメモリ特性レジスタ、３８２００は読み出し用停止判定化路である。他の要素は、第１実施形態において同符号を付して示した要素と同じ要素である。
【０１２７】
メモリ特性レジスタ３８１１０には、読み出し（ｒｅａｄ）／書き込み（ｗｒｉｔｅ）それぞれのプリチャージレイテンシが保持される。読み出し用停止判定回路３８２００は、停止要求サイクル、内部アクセス長、転送時間、読み出し（ｒｅａｄ）レイテンシに基づいて、読み出しアクセス実行時の切換信号７５０を”１”にするタイミングを示す切換開始サイクル、停止信号７３０を”１”にするタイミングを示す停止開始サイクルを出力する。
【０１２８】
セレクタ９４００およびセレクタ９４１０は、デコーダ４１１０から出力されたコマンドによって、読み出し用停止判定回路３８２００からの出力か、書き込み用停止判定回路９３００からの出力を選択し、切換開始サイクル、停止開始サイクルとして出力する。
【０１２９】
図２４に、図２３の読み出し用停止判定回路３８２００の構成を示す。
【０１３０】
図中、比較器１０１００は内部アクセス長が停止要求サイクル以上であれば”１：を、層でなければ”０”を出力する。加算機１０１１０は、停止要求サイクルとテンス時間から切換開始サイクルを計算し出力する。減算器１０１２０は、切換開始サイクルから読み出し（ｒｅａｄ）プリチャージレイテンシを引いた値を計算し出力する。セレクタ１０１６０は、比較器１０１００の出力値が”１”であれば、停止開始サイクルとして減算器１０１２０の出力値を、そうでなければ停止開始サイクルとしてディフォルト値の”０”を出力する。
【０１３１】
次に、図２２の停止処理回路３７４１０の構成を図２５に示す。
【０１３２】
図中、４０１００はメモリ特性レジスタ、４０２ｌ０は加算器である。
【０１３３】
メモリ特佐レジスタ４０１００は、読み出し（ｒｅａｄ）／書き込み（ｅｒｉｔｅ）それぞれのプリチャージレイテンシを保持する。比較器１３２００は、内部アクセスサイクルと停止開始サイクルが等しいとき”ｌ”を出力する。加算器４０２１０は、停止開始サイクル、ＣＰＵアクセス長、セレクタｌ３２５０の出力値の和を出力する。比較器１３２２０は、内部アクセスサイクルと加算機４０２ｌ０の出力値が等しいとき”１”を出力する。停止レジスタｌ３３００は、比較器１３２００の出力が”１”のときにセットされ、比較器ｌ３２２０の出力値が”ｌ”のときに””０”にリセットされる。停止レジスタｌ３３００に保持される値は、停止信号７３０として出力される。
【０１３４】
以上のような構成によって実現される、先に概要を示した動作の具体例を示す。
【０１３５】
図２６は、内部バス５３０からの読み出しアクセス実行中に、ＣＰＵバス３ｌ０から読み出しアクセス要求が発生した場合のタイミングチャートを示しており、この例では、転送時間５サイクル、ＲＡＳ‐ＣＡＳレイテンシ２サイクル、ＣＡＳレイテンシ３サイクル、読み出しプリチャージレイテンシ３サイクルとしている。
【０１３６】
図２６では、Ｔ＝ｌで内部バス５３０からの読み出しアグセスが開始される。Ｔ＝３において、ＣＰＵバス３１０からの読み出し要求が発生するが、転送時間５サイクルでＣＰＵパス３１０からのアクセスを実行するためには、Ｔ＝８からメモリバスをＣＰＵバス３１０からのアクセス用に切換なければならない。そのため、Ｔ＝５で停止信号７３０を”１”として、実行中の内部バス５３０からのアクセスを中断させ、Ｔ＝８からのＣＰＵバス３１０からのアクセスを可能するために、Ｔ＝５でメモリバス制御回路３６７００からプリチャージコマンドを内部バス５３０に出力することによりメモリ２００にプリチャージコマンドを送る。そして、Ｔ＝８で、切換信号７５０を”１”とし、Ｔ＝１６まで、ＣＰＵバス３１０からの読み出しアクセスを実行し、読み出しアクセスが終了したＴ＝１７で切換寝具７５０を”１”とすると共に停止信号７３０を”０”とし、停止した内部バス５３０からのアクセスを再開させる。
【０１３７】
以上、本発明の第３の実施形態について説明した。
【０１３８】
以下、本発明の第４の実施形態について説明する。
【０１３９】
図２７に本第４実施形態に係るデータ処理装置の構成を示す。
【０１４０】
図示するように、本第４実施形態に係るデータ処理装置は、図１に示した第１実施形態に係るデータ処理装置に、圧縮・復元回路２１１００を付加した構成となっている。
【０１４１】
このような構成において、圧縮・復元回路２１１００は、内部バス５３０からメモリ２００への書き込みアクセス時には、書き込みアドレスが。予め定めた圧縮処理の対象とするアドレスと一致する場合には内部バス５３０から送られたデータを圧縮し、一致しない場合には内部バス５３０から送られたデータをそのままメモリバス３５０に出力する。
【０１４２】
また、内部バス５３０からメモリ２００への読み出しアクセス時には、読み出しアドレスが圧縮処理の対象とするアドレスと一致する場合にはメモリバス３５０から送られたデータを展開し、一致しない場合にはメモリバス３５０から送られたデータをそのまま内部バス５３０に出力する。
【０１４３】
上記のように、内部バス５３０からのアクセスのアドレスを監視し、アドレスによって圧縮／展開処理の実施するかどうかを選択できる圧縮・復元回路２１１００を設けることにより、例えばフレームバッファ２２０やテクスチャのソースデータに対するアクセスは圧縮／展開処理を行うが、レンダリングプロセッサ５７０のディスプレイリストに対するアクセスは圧縮／展開処理を行わないような制御が可能となる。このため、ディスプレイリストのように圧縮前のデータと圧縮後に展開したデータが一致する必要があるデータはそのまま転送し、フレームバッファ２２０内の画素データのように圧縮前のデータと、圧縮後に展開したデータが必ずしも一致しなくてもよいデータは圧縮／展開処理をして転送するといった制御が可能となる。
【０１４４】
したがって、必要に応じてデータの精度を保ちながら内部バス５３０からのメモリバス３５０へのアクセス時間を短縮することが可能となり、内部バス５３０からのアクセス実行中にＣＰＵバス３１０からのアクセス発生によって内部バス５３０からのアクセスを中断する頻度を減らすことができ、表示や描画の性能劣化を、それが生じるような構成においても小さくすることができる。また、メモリ２００の有効利用といった利点や、圧縮や復元処理からＣＰＵ１００を解放することができるという利点もある。
【０１４５】
なお、以下の説明では、４つの画素の色を、４つの画素のうちから選択した二つの画素の色で近似することにより、画素のデータ量を削減する圧縮を行う場合を例にとる。したがって、以下の例では、圧縮したデータを復元した場合に、圧縮前元の画像が、そのまま復元されるわけではない。
【０１４６】
図２８にこのような処理を担う圧縮・復元回路２１１００の構成を示す。
【０１４７】
図中、２２１００はアドレス変換回路、２２２００は圧縮回路、２２３００は復元回路、３６１００はアドレス監視回路、３６２００は圧縮実行アドレスレジスタ、３６３００，３６３１０はセレクタである。
【０１４８】
図２８において、圧縮実行アドレスレジスタ３６２００は、圧縮処理を行うアドレスが登録されているレジスタである。アドレス監視回路３６１００は、内部バス５３０からのアクセス要求を監視し、圧縮実行アドレスレジスタ３６２００に登録されているアドレスと比較し、その結果を選択信号として出力する。
【０１４９】
アドレス変換回路２２１００は、選択信号により内部バス５３０から送られたアドレスを、当該アドレスと圧縮前後のデータサイズによって定まる、当該アドレスが目的とするデータを圧縮したデータ記憶しているメモリ２００のアドレスに、変換するかどうかを選択してメモリインタフェース回路５２０を経由してメモリバス３５０に出力する。圧縮回路２２２００は、内部バス５３０から送られたデータを圧縮して出力する。復元回路２２３００は、メモリバス３５０から送られたデータを展開して内部バス５３０に出力する。セレクタ３６３００，３６３１０は、選択信号に従って圧縮／復元を行ったデータか、もしくは入力されたデータの一方を選択して出力する。
【０１５０】
図２９に、図２８の圧縮回路２２２００の構成を示す。
【０１５１】
図２９において、２３１００は原色レジスタ、２３２００は圧縮処理回路、２３３００は圧縮レジスタである。
【０１５２】
ここでは圧縮前のデータは画素単位のデータで、１画素当たり１６ｂｉｔ、Ｒ（赤；５ｂｉｔ）、Ｇ（緑；６ｂｉｔ）、Ｂ（青；５ｂｉｔ）の各フィールドからなるとし、表示コントローラ５６０がこの画素データをフレームバッファ２２０から読み出しアクセスする場合を例にとり説明する。
【０１５３】
図２９において、原色レジスタ２３１００は、内部バス５３０から出力された圧縮前のデータを４画素分保持するレジスタである。原色レジスタ２３１００は、保持しているデータを原色データとして出力する。圧縮処理回路２３２００は、原色データに対して圧縮処理を行って代表色（１６ｂｉｔ）、補助色（１２ｂｉｔ）、選択番号（４ｂｉｔ）を出力する。圧縮レジスタ２３３００は、代表色、補助色、選択番号を保持するレジスタである。圧縮レジスタ２３３００は、保持しているデータをメモリインタフェース回路５２０に出力する。
【０１５４】
図３０に図２９の圧縮処理回路２３２００の構成を示す。
【０１５５】
図３０において、２４１００は比較データ作成回路、２４２００〜２４２５０，２４５２０は比較器、２４３００は補助色作成回路、２４５００，２４５１０は減算器である。
【０１５６】
比較データ作成回路２４１００は、原色データの大小判定を行うための比較データを作成して出力する。比較データは、各画素のデータがＲ、Ｇ、Ｂの異なるの３つのフィールドから構成されるために、比較時の大小関係が色によって偏らないようにするように原色データを加工したデータである。４つの原色データに対する比較データを作成後、比較器２４２００〜２４２２０および各比較器の出力で制御されるセレクタで最大の比較データに対応する原色データを選択して第１色とし、比較器２４２３０〜２４２５０および各比較器の出力で制御されるセレクタで最小の比較データに対応する原色データを選択して第２色とする。
【０１５７】
補助色作成回路２４３００は、第１色と第２色の差分を１２ｂｉｔの補助色を作成して出力する。減算器２４５００，２４５１０と比較器２４５２０は、原色データが第１色と第２色のどちらに近いかを判定し、第１色に近い場合には“１”を、第２色に近い場合には“０”を選択番号として出力する。選択番号は、現職レジスタ２３１００に格納された４つの原色データごとに出力されるため、合計４ｂｉｔ出力される。
【０１５８】
図３１に図３０における比較データ回路２４１００の構成を示す。
【０１５９】
図中、２５１００〜２５１２０は乗算器、２５１３０は加算器である。
【０１６０】
乗算器２５１００は、原色データのＲ成分の２乗を出力する。同様に乗算器２５１１０と２５１２０は、Ｇ、Ｂ成分の２乗を出力する。加算器２５１３０は、乗算器２５１００〜２５１２０の出力値の和を出力する。この構成では比較データとして、Ｒ、Ｇ、Ｂの３つの独立な変数の２乗和を計算するため、原色データの大小関係を判定するときの精度を高くできる。
【０１６１】
図３２に図３０の補助色作成回路２４３００の構成を示す。
【０１６２】
図中、２６１００〜２６１２０は減算器、２６１３０〜２６１５０は比較器、２６１６０〜２６１８０はセレクタである。
【０１６３】
減算器２６１００は第１色のＲ成分から第２色のＲ成分の差を出力する。比較器２６１３０は、減算器２６１３０の出力値が１５（４ｂｉｔで表せる最大値）より大きければ“０”を、そうでなければ“１”を出力する。セレクタ２６１６０は、比較器２６１３０の出力値によって減算器２６１００の出力値または１５をＲ成分の補助色として出力する。Ｇ成分、Ｂ成分についても同様に４ｂｉｔづつの補助色として出力する。この構成例では補助色作成のため第１色と第２色の色成分の差を求めるときに、第１色と第２色の差が１５より大きい場合には１５にクランプする。
【０１６４】
このようにして図２９に示すように１６ビットの代表色、１２ビットの補助色、４ビットの選択番号として圧縮された４つの原色データを復元するのが図２８の圧縮回路２２２００である。
【０１６５】
図３３に、この圧縮回路２２２００の構成を示す。
【０１６６】
図３３において、３２１００は圧縮レジスタ、３２２００は復元処理回路、３２３００は復元レジスタである。
【０１６７】
圧縮レジスタ３２１００はメモリインタフェース回路５２０から送られたデータを保持するレジスタである。圧縮レジスタ３２１００は、代表色（１６ｂｉｔ）、補助色（１２ｂｉｔ）、選択番号（４ｂｉｔ）を出力する。復元処理回路３２２００は、代表色、補助色、選択番号に基づいて原色データを復元し出力する。復元レジスタ３２３００は、復元された原色データを保持するレジスタである。復元レジスタ３２３００は、保持している復元された原色データを内部バス５３０に出力する。
【０１６８】
図３４に図３３における復元処理回路３２２００の構成を示す。
【０１６９】
図３４において、３３１００は処理回路である。
【０１７０】
図３４において、処理回路３３１００は、代表色、補助色、選択番号に基づいて圧縮されたデータを展開する復元処理を行い、復元色データを出力する。
【０１７１】
図３５に図３４の処理回路３３１００の構成を示す。
【０１７２】
図３５において、３４１００〜３４１２０はセレクタ、３４１３０〜３４１５０は加算器である。
【０１７３】
セレクタ３４１００は選択番号が“０”の場合には“０”を、“１”の場合には補助色のＲ成分を出力する。加算器３４１３０は代表色のＲ成分とセレクタ３４１００の出力する代表色のＲ成分の和を復元した原色データのＲのフィールドとして出力する。Ｇ成分、Ｂ成分についても同様に処理が行われる。
【０１７４】
以上、本発明の第４の実施形態について説明した。
【０１７５】
なお、図３０の比較データ作成回路２４１は、図３６または図３７のように構成するようにしてもよい。
【０１７６】
図３６の構成は、ｂｉｔ数の少ないＲ成分、Ｂ成分を２倍し、Ｇ成分と最上位ｂｉｔの重みを揃えてから和を求めて比較データとするものである。この構成では、図３１の構成に対し、Ｇ成分の乗算器が必要でないこと、またＲ成分、Ｂ成分の乗算器は×２倍の演算のみできればよく、これはシフト器で構成できるためハードウエアの物量を削減できる。
【０１７７】
また、図３７の構成は、Ｒ成分、Ｇ成分、Ｂ成分そのままの和を求めて比較データとするものである。この構成では、図３１の構成に対し各成分の乗算器が必要でないためハードウエアの物量を削減できる。Ｒ成分、Ｂ成分に対しＧ成分の最上位ｂｉｔの重みが２倍あるが、表示データをフレームバッファ２２０から読み出す場合、比較するのは連続した４画素の色データであり各色成分の変化分は少ないため、このようにして作成した比較データを用いてもよい。
【０１７８】
また、図３０の補助色作成回路２４３００は、図３８のように構成するようにしてもよい。
【０１７９】
図３８において、２９１００〜２９１２０は減算器であり、図３８の構成は、第１色と第２色の下位４ｂｉｔのみを対象にして差を求めて補助色を作成する方式である。この構成では、図３２の構成例に対し比較器とセレクタが必要でなくなるためハードウエアの物量を削減できる。また、表示データをフレームバッファ２２０から読み出す場合、差を求めるのは連続した４画素中の２画素の色データであり各色成分の変化分は少なく、各色の第５ビット、第６ビット目の値は連続した４画素では等しく減算によって相殺されるため、このようにして求めた補助色を第２色（代表色）に加算することにより第１色を正しく復元できる。
【０１８０】
また、図３０の補助色作成回路２４３００を図３９のように構成し、かつ、図３４の処理回路を図４０に示すように構成するようにしてもよい。
【０１８１】
図３９に示した補助色作成回路２４３００は、第１色と第２色の上位４ｂｉｔのみを対象にして差を求めて補助色を作成するようにしたものである。
【０１８２】
また、図４０の処理回路３３１００において、３５１００〜３５１２０は乗算器、３５１３０〜３５１５０はセレクタ、３５１６０〜３５１８０は加算器である。
【０１８３】
図４０において、乗算器３５１００は補助色のＲ成分を２倍した結果を出力する。セレクタ３５１３０は、選択信号が“０”の場合には“０”を、“１”の場合には乗算器３５１００の出力値を出力する。加算器３５１６０は、代表色のＲ成分とセレクタ３５１３０の出力値の和を求め復元色データとして出力する。同様にＢ成分についても復元色データを出力する。Ｇ成分については、乗算器２３５１０が補助色のＧ成分の４倍を出力すること以外はＲ成分と同様である。
【０１８４】
図３９、４０の構成は、補助色作成回路２４３００に関し、図３２の構成に対し比較器とセレクタが必要でなくなるためハードウエアの物量を削減できる。また、このようにすると、第１色は、下位ビットの精度まで正しく復元することはできなくなるが、視認上大きな問題は生じない。
【０１８５】
また、図３０の圧縮処理回路２３２００全体は、図４１に示すように構成するようにしてもよい。
【０１８６】
図４１の構成は、原色データの中から任意の２つを選択して比較データを作成し、比較データが大きな原色データを第１色、他方を第２色とするものである。この構成では、図３０の場合に比べ、幾分画質は劣化するが、図３０の構成例に対し比較器５つ、セレクタ４つが必要でなくなるためハードウエアの物量を削減できる。
【０１８７】
最後に、以上の各実施形態の構成において、たとえば表示コントローラ５６０によるＣＲＴ１５０への表示が支障なく行うことができることを示す。
【０１８８】
図１などに示したように、以上の各実施形態では、ＣＰＵバス３１０を３２ｂｉｔ×３３ＭＨｚのスループットとし、メモリバス３５０を３２ｂｉｔ×６６ＭＨｚのスループットとしている。したがって、もし、ＣＰＵ１００がＣＰＵバス３１０のスループットの限界までメモリ２００のアクセスを行ったとしても、メモリバス３２０のスループットの半分しか、メモリバス３２０の能力を使用することがない。したがって、レンダリングププロセッサ５７０がメモリ２００アクセスを行わないとして、概算でいって残る（６６−３３）ＭＨｚ×３２ｂｉｔ＝１０５６Ｍｂｉｔ／ｓｅｃは、表示コントローラ５６０のメモリアクセスに用いることができる。ここで、ＣＲＴ１５０に８００ドット×６００ドットの２４ビットフルカラーの画像をリフレッシュレート６０Ｈｚで表示する場合、表示コントローラ５６０がメモリ２００から読み出さなければならないビットレートは、（８００×６００）×６０Ｈｚ×２４ビット＝６９１．２Ｍｂｉｔ／ｓｅｃとなる。したがって、ＣＰＵ１００がＣＰＵバス３１０のスループットの限界までメモリ２００のアクセスを行ったとしても、ＣＲＴ１５０への表示を支障なく行い、レンダリングプロセッサ５７０のメモリ２００のアクセスの機会も充分に確保できる。
【０１８９】
なお、本実施形態では、ＣＰＵバス３１０のスループットとメモリバス３２０のスループットを上記のように設定したが、メモリバス３２０のスループットとＣＰＵバス３１０のスループットの差が、表示コントローラ５６０が表示のために必要とするメモリ２００からの読み出しレート以上であれば、上記以外の設定でよい。
【０１９０】
また、実際には、ＣＰＵ１００がＣＰＵバス３１０のスループットの限界までメモリ２００のアクセスを行うことはありえないので、メモリバス３２０のスループットをＣＰＵバス３１０の最大使用レートと表示コントローラ５６０が表示のために必要とするメモリ２００からの読み出しレート以上とするような設定とするようにしてもよい。
【０１９１】
【発明の効果】
以上説明したように、本発明によれば、化メモリ方式を採用したデータ処理装置において、装置全体の処理性能の劣化を軽減することができる。
【図面の簡単な説明】
【図１】第１実施形態に係るデータ処理装置の構成を示すブロック図である。
【図２】第１実施形態に係るＣＰＵインタフェース回路の構成を示すブロック図である。
【図３】第１実施形態に係るメモリインタフェース回路の構成を示すブロック図である。
【図４】第１実施形態に係るメモリバス制御回路の構成を示すブロック図である。
【図５】第１実施形態に係るＣＰＵアクセスバッファの構成を示すブロック図である。
【図６】第１実施形態に係るＣＰＵバス用アクセス長計算回路の構成を示すブロック図である。
【図７】第１実施形態に係る内部バス用アクセスカウンタの構成を示すブロック図である。
【図８】第１実施形態に係る内部バス用アクセス長計算回路の構成を示すブロック図である。
【図９】第１実施形態に係る停止判定回路の構成を示すブロック図である。
【図１０】第１実施形態に係る読み出し用停止判定回路の構成を示すブロック図である。
【図１１】第１実施形態に係る書き込み用停止判定回路の構成を示すブロック図である。
【図１２】第１実施形態に係る切換信号発生回路の構成を示すブロック図である。
【図１３】第１実施形態に係る停止処理回路の構成を示すブロック図である。
【図１４】第１実施形態に係る再開処理回路の構成を示すブロック図である。
【図１５】第１実施形態に係る保持バッファの構成を示すブロック図である。
【図１６】第１実施形態の動作例を示すタイミングチャートである。
【図１７】第１実施形態の動作例を示すタイミングチャートである。
【図１８】第１実施形態に係るＣＰＵインタフェース回路の第２の構成を示す図ロック図である。
【図１９】第２実施形態に係るデータ処理装置の構成を示すブロック図である。
【図２０】第２実施形態に係るメモリインタフェース回路の構成を示すブロック図である。
【図２１】第３実施形態に係るデータ処理装置の構成を示すブロック図である。
【図２２】第３実施形態に係るメモリバス制御回路の構成を示すブロック図である。
【図２３】第３実施形態に係る停止判定回路の構成を示すブロック図である。
【図２４】第２実施形態に係る読み出し用停止判定回路の構成を示すブロック図である。
【図２５】第３実施形態に係る停止処理回路の構成を示すブロック図である。
【図２６】第３実施形態の動作例を示すタイミングチャートである。
【図２７】第４実施形態に係るデータ処理装置の構成を示すブロック図である。
【図２８】第４実施形態に係る圧縮復元回路の構成を示すブロック図である。
【図２９】第４実施形態に係る圧縮回路の構成を示すブロック図である。
【図３０】第４実施形態に係る圧縮処理回路の構成を示すブロック図である。
【図３１】第４実施形態に係る比較データ作成回路の構成を示す図である。
【図３２】第４実施形態に係る補助色作成回路の構成を示すブロック図である。
【図３３】第４実施形態に係る復元回路の構成を示すブロック図である。
【図３４】第４実施形態に係る復元処理回路の構成を示すブロック図である。
【図３５】第４実施形態に係る処理回路の構成を示すブロック図である。
【図３６】第４実施形態に係る比較データ作成回路の第２の構成を示すブロック図である。
【図３７】第４実施形態に係る比較データ作成回路の第３の構成を示すブロック図である。
【図３８】第４実施形態に係る補助色作成回路の第２の構成を示したブロック図である。
【図３９】第４実施形態に係る補助色作成回路の第３の構成を示したブロック図である。
【図４０】第４実施形態に係る処理回路の第２の構成を示したブロック図である。
【図４１】第４実施形態に係る圧縮処理回路の第２の構成を示したブロック図である。
【符号の説明】
１００  ＣＰＵ、１５０  ＣＲＴ、２００  メモリ、２１０  主記憶、２２０  フレームバッファ、３１０  ＣＰＵバス、３２０  ＣＰＵバス制御信号、３５０メモリバス、４００  メモリコントローラ、５００ＣＰＵインタフェース回路、５１０  内部バス調停回路、５２０，１９５２０  メモリインタフェース回路、５３０  内部バス、５４０  内部バス制御信号、５５０  ＤＡＣ、５６０  表示コントローラ、５７０  レンダリングプロセッサ、７００  メモリバス制御回路、７２０  ＣＰＵバスアクセス有効信号、７３０  停止信号、７４０  ｐｕｓｈ／ｐｏｐ信号、７５０  切換信号、８００  保持バッファ、２１００  読み出しバッファ、３１００  アドレスバッファ、３２００  データバッファ、４１００，４１１０  デコーダ、４２００  ＣＰＵアクセスバッファ、４２１０  ＣＰＵバス用アクセス長計算回路、４２２０  内部バス用アクセスカウンタ、４２３０  内部バス用アクセス長計算回路、４３００  停止判定回路、４４００  切換信号発生回路、４４１０  停止処理回路、４４２０  再開処理回路
【図１】
0003573586.tif 000002
【図２】
0003573586.tif 000003
【図３】
0003573586.tif 000004
【図４】
0003573586.tif 000005
【図５】
0003573586.tif 000006
【図６】
0003573586.tif 000007
【図７】
0003573586.tif 000008
【図８】
0003573586.tif 000009
【図９】
0003573586.tif 000010
【図１０】
0003573586.tif 000011
【図１１】
0003573586.tif 000012
【図１２】
0003573586.tif 000013
【図１３】
0003573586.tif 000014
【図１４】
0003573586.tif 000015
【図１５】
0003573586.tif 000016
【図１６】
0003573586.tif 000017
【図１７】
0003573586.tif 000018
【図１８】
0003573586.tif 000019
【図１９】
0003573586.tif 000020
【図２０】
0003573586.tif 000021
【図２１】
0003573586.tif 000022
【図２２】
0003573586.tif 000023
【図２３】
0003573586.tif 000024
【図２４】
0003573586.tif 000025
【図２５】
0003573586.tif 000026
【図２６】
0003573586.tif 000027
【図２７】
0003573586.tif 000028
【図２８】
0003573586.tif 000029
【図２９】
0003573586.tif 000030
【図３０】
0003573586.tif 000031
【図３１】
0003573586.tif 000032
【図３２】
0003573586.tif 000033
【図３３】
0003573586.tif 000034
【図３４】
0003573586.tif 000035
【図３５】
0003573586.tif 000036
【図３６】
0003573586.tif 000037
【図３７】
0003573586.tif 000038
【図３８】
0003573586.tif 000039
【図３９】
0003573586.tif 000040
【図４０】
0003573586.tif 000041
【図４１】
0003573586.tif 000042