(57)【要約】      （修正有）【課題】外付けメモリのデータバス幅より小さいデータサイズによる連続リードなどが多用される場合に対して外付けメモリバスのバススループットを向上させる。【解決手段】半導体装置は、複数バンクを持つ外付けメモリ６１をクロックに同期して制御可能なメモリ制御部１０と、前記メモリ制御部に接続されたバスと、前記バスに対応して設けられメモリアクセスを指示することが可能な回路モジュールとを備える。前記メモリ制御部１０は、回路モジュールから前記バスのビット数より小さいアクセスデータサイズでバーストリードが要求されたとき、前記要求されたバーストリードのバースト数より少ない回数で前記外付けメモリ６１にリード要求を連続的に発行可能である。【選択図】図３
2011090697.tif 000002
【特許請求の範囲】
【請求項１】
複数バンクを持つ外付けメモリをクロックに同期して制御可能なメモリ制御部と、前記メモリ制御部に接続されたバスと、前記バスに対応して設けられメモリアクセスを指示することが可能な回路モジュールとを備え、
前記メモリ制御部は、回路モジュールから前記バスのビット数より小さいアクセスデータサイズでバーストリードが要求されたとき、前記要求されたバーストリードのバースト数より少ない回数で前記外付けメモリにリード要求を連続的に発行可能である半導体装置。
【請求項２】
複数バンクを持つ外付けメモリをクロックに同期して制御可能なメモリ制御部と、前記メモリ制御部に接続されたバスと、前記バスに対応して設けられメモリアクセスを指示することが可能な回路モジュールとを備え、
前記メモリ制御部は、前記バスのビット数より小さいアクセスデータサイズでバースト数を指定した前記回路モジュールからのアクセス要求に応答して、外付けメモリに対し１回のリード要求で受信する全データを有効として連続的に複数回リード要求を発行可能である半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック同期で外付けメモリを制御可能なメモリ制御部を有する半導体装置に係り、例えばＤＤＲ（ダブルデータレート）メモリのインタフェースコントローラを備えたマイクロコントローラに適用して有効な技術に関する。
【背景技術】
【０００２】
ＳＤＲＡＭ（シンクロナス・ダイナミック・ランダム・アクセス・メモリ）などに代表されるクロックに同期動作されるシンクロナス・メモリはグラフィック用のフレームバッファやＣＰＵのメインメモリなどに広く利用されている。例えばＳＤＲＡＭは複数個のメモリバンクを有し、各メモリバンクはアドレスデコーダ、メモリアレイ、センスアンプアレイなどを有し、各々独立に制御可能にされ、複数メモリバンクがパイプライン的に動作されることによって、高速アクセス動作可能にされる。特にＤＤＲ形態のシンクロナスメモリはクロックの立ち上がり及び立ち下がりの両エッジに同期して外部とデータ入出力を行ない、ＳＤＲ（シングルデータレート）のシンクロナスメモリに比べて更に高速化されている。特許文献１にはマルチバンクＳＤＲＡＭの記載がある。特許文献２にはグラフィックポートやＳＤＲＡＭコントローラを搭載したシステムコントローラの記載が有る。シンクロナスメモリはそのようなシステムコントローラに接続されてアクセス制御される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１８９８８９号公報
【特許文献２】特開２０００−１３２５０３号公報（図６）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明者は外部に接続されるＤＤＲメモリに対してアクセスを行うＣＰＵ(中央処理装置)やグラフィック系モジュールを内蔵し、そのＤＤＲメモリへのアクセスを制御するＤＤＲメモリコントローラについて検討した。例えば３２ビットのデータ入出力端子を有するＤＤＲメモリの場合、１クロックサイクルでリード可能なデータはバス幅の２倍の６４ビットとされるが、アクセス主体がワード又はロングワードのアクセスデータサイズでメモリアクセスを要求して来る場合、ＤＤＲメモリから１クロックサイクルでリードしたデータの大半がアクセス要求外のデータになり、無効にされる。アクセスアドレスが連続する場合にはその無効データの中に後続のアクセス要求に係るデータを含む可能性が高い。例えば、ＣＰＵなどからのバーストアクセス要求のアクセスデータサイズが１クロックサイクルによるアクセスデータサイズよりも小さいとき、指定されたバーストアクセス回数分だけ毎回１クロックサイクルのメモリアクセスを繰り返すと、折角リードしても無効にされるデータが多くなる。このように、メモリコントローラに要求されるアクセスデータサイズが外部メモリの単位アクセスデータサイズに比べて小さいときバスのスループットが悪くなることが明らかにされた。
【０００５】
外部メモリのバススループットもしくはデータスループットの悪化に対してはＣＰＵのキャッシュメモリが効果を奏する場合がある。このようなＣＰＵキャッシュメモリにおいてはキャッシュミスによるエントリ若しくキャッシュラインのリプレースなどを行なうためのキャッシュミスペナルティーの処理が比較的重い為、繰り返し利用されるプログラム及びデータをキャッシュ対象とすることが重要になる。これを考慮すると、フレームバッファに対する描画データや画像データに代表されるような繰り返し利用されることの少ないデータ、或いは頻繁に利用されることのないサブルーチンプログラムや制御データなどに対してはＣＰＵキャッシュメモリによるキャッシュの対象としないことが得策になる。
【０００６】
本発明の目的は、外付けメモリのデータバス幅より小さいデータサイズによる連続リードなどが多用される場合に対して外付けメモリバスのバススループット若しくはデータスループットを向上させることができる半導体装置を提供することにある。
【０００７】
本発明の別の目的は、頻繁に繰り返しアクセスされずＣＰＵキャッシュメモリによるキャッシュの対象とされ難いようなデータやプログラムのアクセス要求に対してバススループット若しくはデータスループットを向上させることができる半導体装置を提供することにある。
【０００８】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１０】
〔１〕本発明に係る半導体装置は、各々独立に制御可能な複数バンクを持つ外付けメモリをクロックに同期して制御可能なメモリ制御部と、前記メモリ制御部に接続された複数のバスと、前記複数のバスの各々に対応して設けられメモリアクセスを指示することが可能な回路モジュールとを備える。前記メモリ制御部は、前記外付けメモリのバンクに各々対応する記憶領域としてのバンクキャッシュを有する。前記バンクキャッシュは対応するバンクのアドレスを連想キーとして当該バンクの一部のデータを記憶可能である。これにより、外付けメモリのデータバス幅より小さいデータサイズによる連続リードなどを行なう場合に、外付けメモリから読み出されたデータをバンクキャッシュに格納し、格納しデータを無効にすることなく利用することが可能であるから、外付けメモリバスのバススループット若しくはデータスループットを向上させることができる。外付けメモリのバンクに各々対応するバンクキャッシュを有するから、複数バンクをパイプライン的に動作させることによる連続的なデータ読み出し対しても各バンクからのデータの保持に対応することができる。
【００１１】
本発明の具体的な形態では、一つの回路モジュールとしてＣＰＵを有し、前記ＣＰＵと一つのバスとの間に配置されたキャッシュメモリを有し、前記メモリ制御部は、前記キャッシュメモリのキャッシュ非対象領域に対するアクセス要求に対して善意バンクキャッシュを有効とする。これにより、頻繁に繰り返しアクセスされず、前記キャッシュメモリのキャッシュの対象とすればキャッシュミスペナルティーによる大きな負担が強いられるような、ＣＰＵキャッシュメモリによるキャッシュの対象とされ難いようなデータやプログラムに対して、バススループット若しくはデータスループットを向上させることができる。さらにＣＰＵキャッシュとバンクキャッシュの双方でキャッシュ対象にする場合のようなコヒーレンシを保つ為の複雑な制御も必要ない。
【００１２】
本発明の更に別の具体的な形態では、前記外付けメモリは前記クロックに対してＤＤＲ動作されるメモリである。ＤＤＲ動作ではＳＤＲ動作に比べて単位クロックサイクル当り２倍のリードデータを得ることができ、そのリードデータに対してバンクキャッシュを利用することにより、外付けメモリに対するリードデータのスループットを更に向上させることができる。このとき、前記バンクキャッシュは、前記外付けメモリの１個のバンクに対して前記クロックの１サイクルでアクセス可能なデータサイズに対応されるデータ記憶部を有する。ＤＤＲ動作によるリードデータのラッチ機能を保証しつつキャッシュ制御の簡素化に資することができる。このバンクキャッシュの構成に対しては前記外付けメモリに対する１回のリードアクセス指示によるバーストアクセスによる全アクセスデータサイズが前記データ記憶部のデータサイズを超えるリードアクセス指示に対してバンクキャッシュを無効化することにより、更なるキャッシュ制御の簡素化に資することができる。前記バスの並列データビット数は例えば前記クロックの１サイクルで外付けメモリをＤＤＲ動作させて得られるデータサイズに等しくするのがよい。各々のバンクキャッシュのデータ記憶部のサイズと前記バスのサイズが整合してアクセス制御上好都合である。
【００１３】
〔２〕本発明の別の観点による半導体装置は、上記発明と同様に、複数バンクを持つ外付けメモリをクロックに同期して制御可能なメモリ制御部と、前記メモリ制御部に接続された複数のバスと、前記複数のバスの各々に対応して設けられメモリアクセスを指示することが可能な回路モジュールとを備える。そして、一つの回路モジュールとしてＣＰＵを有し、前記ＣＰＵと一つのバスとの間に配置されたキャッシュメモリを有する。このとき、前記メモリ制御部は、前記外付けメモリのバンクに各々対応するバンクキャッシュを有し、前記バンクキャッシュは対応するバンクのアドレスを連想キーとして当該バンクの一部のデータを記憶可能である。前記キャッシュメモリのキャッシュ非対象領域に対するアクセス要求に対してバンクキャッシュを有効とし、前記回路モジュールから前記外付けメモリのリードアクセス要求に対してバンクキャッシュを有効としたとき、前記リードアクセスがバンクキャッシュに対して連想ミスの場合には当該連想ミスに係るデータを前記外付けメモリからリードするリードコマンドを発行し、これによりリードしたデータを対応するバンクキャッシュに格納すると共に前記リードアクセス要求元に対するデータとして出力する。これにより、外付けメモリのデータバス幅より小さいデータサイズによる連続リードなどを行なう場合に、一旦外付けメモリから読み出したデータをバンクキャッシュに格納して無駄なく利用可能であるから、外付けメモリバスのバススループット若しくはデータスループットを向上させることができる。外付けメモリのバンクに各々対応するバンクキャッシュを有するから、複数バンクをパイプライン的に動作させることによる連続的なデータ読み出し対しても各バンクからのデータの保持に対応することができる。頻繁に繰り返しアクセスされず前記キャッシュメモリのキャッシュの対象とすればキャッシュミスペナルティーによる大きな負担が強いられるような、ＣＰＵキャッシュメモリによるキャッシュの対象とされ難いようなデータやプログラムに対して、バススループット若しくはデータスループットを向上させることができる。
【００１４】
本発明の具体的な形態では、前記メモリ制御部は、前記回路モジュールから前記外付けメモリのライトアクセス要求に対してバンクキャッシュを有効としたとき、前記ライトアクセスがバンクキャッシュに対して連想ヒットの場合には当該連想ヒットに係るキャッシュデータを無効化して、前記外付けメモリに当該連想ヒットに係るライトデータのライトコマンドを発行する。これにより、バンクキャッシュと外付けメモリとの間のコヒーレンシを維持するための複雑な制御が必要なくなる。メモリ制御部は複数のバスに接続されて複数の回路モジュールからのアクセス要求に応答して外付けメモリをアクセス制御し、どのバスからのアクセス要求に対しても全てキャッシュの対象にされるとは限らず、仮にこれを考慮してバンクキャッシュと外付けメモリとの間のコヒーレンシを維持する場合には複雑な制御が必要になる。
【００１５】
前記ライトアクセスがバンクキャッシュに対して連想ミスの場合には、前記外付けメモリに当該連想ミスに係るデータのライトコマンドを発行すればよい。
【００１６】
本発明の更に具体的な形態では、別の一つのバスには回路モジュールとして３次元描画用のグラフィックモジュールが接続され、更に別の一つのバスには回路モジュールとして２次元描画用のグラフィックモジュールが接続され、その他の一つのバスには回路モジュールとして表示コントローラが接続される。
【００１７】
本発明の別の具体的な形態では、アクセス要求に対して前記バンクキャッシュを有効にするバスと無効にするバスが混在する。例えばグラフィックモジュールによるアクセスでは同一ラスタ上で連続アドレスに配置されたデータを最大バースト数をもって連続リードするのが効率的であり、1クロックサイクルのアクセスデータサイズのバンクキャッシュのサイズを超えるデータサイズになるから、そのようなバスに関してはキャッシュ非対象にするのがよく、また、スタック領域に対する退避や復帰のためのデータサイズは１６ビットや３２ビットのようにＣＰＵなどのデータ処理単位に整合するのでそれらデータの転送用途とされるバスに関してはキャッシュ対象にするのがよいからである。
【００１８】
本発明の別の具体的な形態では、前記バス毎にバスＩＤが割当てられるとき、前記メモリ制御部は、アクセス要求に対してバンクキャッシュが有効にされるバスと無効にされるバスのバスＩＤを定義する回路を有するのがよい。バスＩＤはアクセス要求に含まれ、アクセス要求やそれに対する応答のルーティングに用いられる。バスＩＤを定義する回路は、ハードワイヤードロジックで固定的に構成してもよいし、コントロールレジスタによってプログラマブルな定義可能に構成してもよい。メモリ制御回路にアクセス要求を伝達するバス単位でキャッシュ有効／無効を決定できれば、バンクキャッシュのヒット率向上に寄与する。
【００１９】
本発明の別の具体的な形態では、前記メモリ制御部は、回路モジュールからアクセス要求があったとき、それに付随するアクセスデータサイズにしたがって前記バンクキャッシュの有効又は無効を決定してもよい。メモリ制御回路へのアクセス要求に付随するアクセスデータサイズに応じてキャッシュ有効／無効を決定できれば、バンクキャッシュのヒット率向上に寄与する。前記メモリ制御部は、バンクキャッシュの有効又は無効を決定するためのアクセスデータサイズを定義する回路を有する。そのようなアクセスデータサイズを定義する回路は、ハードワイヤードロジックで固定的に構成してもよいし、コントロールレジスタによってプログラマブルな定義可能に構成してもよい。
【００２０】
〔３〕本発明の更に別の観点による半導体装置は、複数バンクを持つ外付けメモリをクロックに同期して制御可能なメモリ制御部と、前記メモリ制御部に接続されたバスと、前記バスに対応して設けられメモリアクセスを指示することが可能な回路モジュールとを備え、前記メモリ制御部は、前記外付けメモリのバンクに各々対応するバンクキャッシュを有し、前記バンクキャッシュは対応するバンクのアドレスを連想キーとして当該バンクの一部のデータを記憶可能である。前記バスはスプリットトランザクション型のバスとされる。スプリットトランザクション型のバスでは、アクセス要求回路からのリクエストパケットをアクセス応答回路が受取り、その要求に応答するレスポンスパケットをアクセス要求回路に返すようになっており、リクエストパケットとレスポンスパケットを含んで構成される一連の処理（トランザクション）はアクセス要求回路に固有のトランザクションＩＤによってその他のトランザクションから識別可能にされる。前記メモリ制御部は、前記回路モジュールから前記外付けメモリへの連続する複数のリードアクセスの指示に応答する複数のリードデータを前記バスに返すとき、前記回路モジュールからのリードアクセスの指示順に対してリードアクセス要求元へのリードデータの出力順を変更するリオーダリングが可能である。これは、一つのトランザクションはそれに固有のトランザクションＩＤによってその他のトランザクションか識別できることによって可能になる。
【００２１】
アクセス要求順に応答を返さなければならないとすると、要するに上記リオーダリングを行なわないとするなら、バンクキャッシュにヒットしたアクセス要求の応答データは、バンクキャッシュに連想ミスする先のアクセス要求の応答データよりも早く取得することができるが、前者の応答をアクセス要求元に返すのに後者の応答が有るまで待たなければならず、結果として、システムのデータスループットを悪化させる。上記手段では、前記回路モジュールからのリードアクセスの指示順に対して、連想ヒットしたバンクキャッシュからのリードデータを、バンクキャッシュの連想ミスに係る外付けメモリからのリードデータよりも先行させてリードアクセス要求元へのデータとして出力することができる。アクセス要求に対する応答を受取るのに余計に待つことを要しない。
【００２２】
〔４〕本発明の更に別の観点による半導体装置は、複数バンクを持つ外付けメモリをクロックに同期して制御可能なメモリ制御部と、前記メモリ制御部に接続されたバスと、前記バスに対応して設けられメモリアクセスを指示することが可能な回路モジュールとを備え、前記メモリ制御部は、回路モジュールから前記バスのビット数より小さいアクセスデータサイズでバーストリードが要求されたとき、前記要求されたバーストリードのバースト数より少ない回数で前記外付けメモリにリード要求を連続的に発行可能である。換言すれば、前記バスのビット数より小さいアクセスデータサイズでバースト数を指定した前記回路モジュールからのアクセス要求に応答して、外付けメモリに対し１回のリード要求で受信する全データを有効として連続的に複数回リード要求を発行する。要するに、バス制御部は、回路モジュールからのアクセス要求に応じて外付けメモリに発行するリード要求をマージする。例えば、前記バスのビット数と、前記外付けメモリから１クロックサイクルでリード可能でデータビット数とが等しい場合、回路モジュールからのバーストリード要求のアクセスデータサイズがバスのビット数の１／ｎのとき、バス制御部は外付けメモリに対するｎ回路のリード要求を１回のリード要求にマージする。これにより、バス制御部が外付けメモリに発行するリード要求の回数が１／ｎとされ、バス制御部は外付けメモリからのリードデータを毎回全ビット有効とし、回路モジュールには要求されたアクセスデータサイズ毎に応答を返す。これにより、外付けメモリのバススループットを向上させることができ、外付けメモリに対する回路モジュール間でのアクセス競合の割合が低減し、システムのデータスループットが向上する。
【発明の効果】
【００２３】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００２４】
すなわち、外付けメモリのデータバス幅より小さいデータサイズによる連続リードなどが多用される場合に対して外付けメモリバスのバススループット若しくはデータスループットを向上させることができる。
【００２５】
頻繁に繰り返しアクセスされずＣＰＵのキャッシュメモリによるキャッシュの対象とされ難いようなデータやプログラムのアクセス要求に対してバススループット若しくはデータスループットを向上させることができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の一例に係る画像処理プロセッサを例示するブロック図である。
【図２】ＤＤＲ−ＳＤＲＡＭの概略ブロック図である。
【図３】ＤＤＲ−ＳＤＲＡＭコントローラのブロック図である。
【図４】バンクキャッシュのキャッシュエントリのデータ構造を示す説明図である。
【図５】ＤＤＲコントローラによるバンクキャッシュのヒットとミス時の制御処理フローである。
【図６】ＤＤＲ−ＳＤＲＡＭの代表的なアクセスタイミングを示すタイミングチャートである。
【図７】スーパーハイウェイバスからアクセスデータサイズ１６ビットのリードアクセスが連続アドレスに対して３回要求されときのタイミングチャートである。
【図８】図７と同じアクセス要求に対してバンクキャッシュを用いないで動作させたときのタイミングチャートである。
【図９】スーパーハイウェイバスからのバーストリードとシングルリードのアクセス要求に対して、ＤＤＲ−ＳＤＲＡＭコントローラがバンクキャッシュヒットのデータをリオーダリングしてアクセス要求元に返す動作を示すタイミングチャートである。
【図１０】図９のＳ１に係るシングルリードもバンクキャッシュミスとされる比較例の動作を示すタイミングチャートである。
【図１１】グラフィックモジュールからＤＤＲ−ＳＤＲＡＭへのリードアクセスフローを示すフローチャートである。
【図１２】グラフィックモジュールからＤＤＲ−ＳＤＲＡＭへのリードアクセス動作を示すフローチャートである。
【図１３】グラフィックモジュールからアクセスデータサイズ３２ビットでバースト長８のリードアクセス要求が行なわれたときリードアクセス要求のマージを行わない場合の動作を示すタイミングチャートである。
【図１４】図１３に対して途中でＤＤＲ−ＳＤＲＡＭに対するリフレッシュサイクルが発生する場合のタイミングチャーチである。
【図１５】アクセス要求のマージを行ってリードコマンドを発行する場合のタイミングチャートである。
【図１６】２個のグラフィックモジュールからＤＤＲ−ＳＤＲＡＭにリードアクセス要求があった場合の動作を示すフローチャートである。
【図１７】メモリアクセスを要求するモジュールが複数あるときアクセス要求をマージしない場合の動作タイミングを示すフローチャートである。
【図１８】メモリアクセスを要求するモジュールが複数あるときアクセス要求をマージする場合の動作タイミングを示すフローチャートである。
【図１９】グラフィックモジュールの動作周波数がＤＤＲ−ＳＤＲＡＭの動作周波数より高い場合にアクセス要求をマージしない場合の動作タイミングを示すフローチャートである。
【図２０】グラフィックモジュールの動作周波数がＤＤＲ−ＳＤＲＡＭの動作周波数より高い場合にアクセス要求をマージする場合の動作タイミングを例示するフローチャートである。
【発明を実施するための形態】
【００２７】
《画像処理プロセッサ》
図１には本発明の一例に係る画像処理プロセッサが例示される。同図に示される画像処理プロセッサ１は、特に制限されないが、相補型ＭＯＳ（ＣＭＯＳ）集積回路製造技術により、単結晶シリコンなどの１個の半導体基板（半導体チップ）に形成され、例えばカーナビゲーションに必要な画像処理および音声処理機能、並びにＤＤＲ−ＳＤＲＡＭ（ダブル・データ・レート・シンクロナス・ダイナミック・ランダム・アクセス・・メモリ：double data rate synchronous dynamic random access memory）インタフェース等を備える。
【００２８】
画像処理プロセッサ１は、プロセッサコア２及びクロック発生回路（ＣＰＧ）３を有し、プロセッサコア２が接続するスーパーハイウェイバス（ＳＨＢ）４にはバスブリッジ回路（ＢＢＲＧ）５、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）６、３次元画像の描画処理などの３次元画像処理を行う３Ｄエンジン（３ＤＧＦＣ）７、ＲＡＭ８、割り込みコントローラ（ＩＮＴＣＦ）９及びメモリ制御部としてのＤＤＲ―ＳＤＲＡＭコントローラ（ＮＣＥＭＩ）１０が接続される。プロセッサコア２は、フェッチした命令を実行する中央処理装置（ＣＰＵ）１１、浮動小数点演算ユニット（ＦＰＵ）１２及びキャッシュメモリユニット／メモリマネージメントユニット（ＣＡＣＨ／ＭＭＵ）１３を有する。キャッシュメモリユニット１３（ＣＡＣＨ）はキャッシュ対象アドレスエリアに配置されたメモリや入出力レジスタが保有するデータ及びプログラムをそのアクセス頻度に応じてリプレース可能に保持する連想記憶構造を有する。クロック発生回路（ＣＰＧ）３は画像処理プロセッサ１の各部に同期動作用のクロックＣＬＫｉを供給する。前記キャッシュメモリユニット１３（ＣＡＣＨ）は以下単にＣＰＵキャッシュメモリ１３（ＣＡＣＨ）とも記す。
【００２９】
前記ＤＤＲ―ＳＤＲＡＭコントローラ（ＮＣＥＭＩ）１０に接続されるＤＤＲ―ＳＤＲＡＭ６１はＣＰＵ１１のメインメモリ又はフレームバッファ等に利用される。前記バスブリッジ回路５には、第１周辺バス（ＰＢＦ）２１、第２周辺バス（ＰＢＳ）２２及び外部バス（ＥＸＢ）２３が接続される。３Ｄエンジン７は３Ｄバス（３ＤＢ）２４を介してＤＤＲ―ＳＤＲＡＭコントローラ（ＮＣＥＭＩ）１０に接続される。ＤＤＲ−ＳＤＲＡＭコントローラ（ＮＣＥＭＩ）１０には更にグラフィックバス（ＧＦＢ）２０が接続される。ＤＤＲ−ＳＤＲＡＭコントローラ（ＮＣＥＭＩ）１０は外部においてＤＤＲメモリバス（ＭＲＢ）２５に結合される。
【００３０】
前記スーパーハイウェイバス４はマルチマスターバス若しくはスプリットトランザクション型のバスとされる。スーパーハイウェイバス４に接続する夫々の回路モジュールはマスターポートとスレーブポートを独立に有しており、自回路モジュールからのリード／ライトの転送要求はマスターポートからリクエストパケットとして発行され、他回路モジュールからの転送要求はバス調停回路での調停を経た結果、スレーブポートにリクエストパケットとして通知され、バストランザクションが実行される。バス調停回路は特に図示はしないがスーパーハイウェイバス４の途中に配置されている。このマルチマスターバス制御方式により、スーパーハイウェイバス４はそれに接続される回路モジュール間の全ての組み合わせの転送が可能にされる。例えばＣＰＵ１１とＤＭＡＣ６、バスブリッジ回路５とＮＣＥＭＩ１０、バスブリッジ回路５とＣＰＵ１１、の間の転送等が可能である。
【００３１】
前記３Ｄバス２４に接続される３ＤＧＦＣ７はスーパーハイウェイバス４を介してＣＰＵ１１から３Ｄ描画コマンドなどの画像処理コマンドを受取って３Ｄ描画処理を行う。描画はＮＣＥＭＩ１０を介して図示を省略する前記ＤＤＲ−ＳＤＲＡＭ６１のフレームバッファ領域に対して行なわれる。
【００３２】
グラフィックバス２０には、２次元画像処理を行なう２Ｄエンジン（２ＤＧＦＣ）３０、表示制御回路（ＤＵ）３１、シリアルインタフェース回路（ＩＥＥＥ１３９４）３２、色空間変換ユニット（ＹＵＶ）３３、ＡＴアタッチメントパケットインタフェース回路（ＡＴＡＰＩ）３４、ビデオ信号入力回路（ＶＩＮ）３５、ユニバーサル・シリアル・バス・ファンクションコントローラ（ＵＳＢ）３６が接続される。表示制御回路３１はフレームバッファ領域に描画された画像データを順次読み出、ラスタスキャン型のディスプレイに表示タイミングに同期させて出力する制御を行う。ビデオ信号入力回路３５はディジタルビデオ信号を入力する。ＡＴＡＰＩ３４はハードディスクドライブ、ＤＶＤ又はＣＤ−ＲＯＭドライブ等のディスクドライブ装置とのインタフェース制御を行う。
【００３３】
グラフィックバス２０はスーパーハイウェイバス４と同様にスプリットトランザクション型のバスとされるが、バスのソース、デスティネーションの一方は必ずＤＤＲ−ＳＤＲＡＭコントローラ１０になっている。すなわち、バスブリッジ回路５、２ＤＧＦＣ３０、ＤＵ３１、シリアルインタフェース回路３２、ＹＵＶ３３、ＡＴＡＰＩ３４、ＶＩＮ３５、ＵＳＢ３６はＤＤＲ−ＳＤＲＡＭインタフェース１０を介してＤＤＲ−ＳＤＲＡＭ６１との間の転送のみを行う。それら画像系の回路モジュール３０などは自回路ブロックで画像処理を行った後にはＤＤＲ−ＳＤＲＡＭ６１に一旦データを格納する必要があるか、或いはＤＤＲ−ＳＤＲＡＭ６１のデータをＤＵ３１に転送する必要があり、全ての転送は必ずＤＤＲ−ＳＤＲＡＭコントローラ１０を経由する構成になっている。
【００３４】
第１周辺バス２１には前記ＩＮＴＣ３７、２ＤＧＦＣ３０、ＤＵ３１、シリアルインタフェース回路３２が接続される。
【００３５】
第２周辺バス２２には、調歩同期シリアルコミュニケーションインタフェース回路（ＳＣＩＦ）４０、パルス幅変更タイマ（ＰＷＭ）４１、ＩＥＣ６０９５８オーディオコントローラ（ＳＰＤＩＦ）４２、ソースレートコンバータ（ＳＲＣ）４３、ＧＰＳ（Global Positioning System）サーチ／トラッキングエンジン（ＧＰＳ）４４、及び前記クロック発生回路３が接続される。
【００３６】
前記第１周辺バス２１及び第２周辺バス２２はシングルマスターの３２ビットバスであり、バスブリッジ回路５がバスマスターになっている。
【００３７】
前記ＣＰＵ１１は例えば３２ビットＣＰＵでありデータ処理単位は３２ビットとされる。このＣＰＵ１１は１サイクルで複数の命令を発行するスーパースカラ構造を有することにより、動作周波数の約２倍の命令処理実行能力を有する。即ち、ＣＰＵ１１は所謂２ウェイ・スーパースカラ構造を有する。これに呼応して前記スーパーハイウェイバス４は６４ビットバスとされる。したがって、ＣＰＵ１１は並行に２命令を実行して夫々３２ビットのデータを２組用意し、用意された合計６４ビットの２組のデータを１バスサイクルでスーパーハイウェイバス４へ転送可能である。また、ＣＰＵ１１は１バスサイクルでスーパーハイウェイバス４から６４ビットのデータをリードし、リードした下位３２ビットと上位３２ビットを別々に並行して演算処理することも可能にされる。
【００３８】
図２にはＤＤＲ−ＳＤＲＡＭ６１の概略ブロックが示される。ＤＤＲ−ＳＤＲＡＭ６１は、特に制限されないが、４個のメモリバンクＢＮＫ０〜ＢＮＫ３を有する。各々のメモリバンクＢＮＫ０〜ＢＮＫ３はメモリアレイ（ＡＲＹ）６２、ロウアドレスデコーダ（ＲＤＥＣ）６３、センスアンプアレイ（ＳＡＡ）６４、カラム入出力回路（ＣＩＯ）６５及びカラムアドレスデコーダ（ＣＤＥＣ）６６を有する。各メモリアレイ６２は、マトリクス配置された多数のダイナミック型のメモリセルを備え、メモリセルの選択端子は列毎にワード線に接続され、メモリセルのデータ入出力端子はセンスアンプを介して折り返された一方の相補ビット線に結合される。
【００３９】
ロウアドレスデコーダ６３にはロウアドレスバッファ／リフレッシュカウンタ（ＲＡＢＦ／ＲＣＵＮＴ）６７から内部ロウアドレスが供給される。カラムアドレスデコーダ６６にはカラムアドレスバッファ／バーストカウンタ（ＣＡＢＦ／ＢＣＵＮＴ）６８から内部カラムアドレスが供給される。内部ロウアドレス及び内部カラムアドレスは選択的にアクティブにされるメモリバンクに供給される。カラム入出力回路６５はデータコントロールロジック（ＤＣＬＧＣ）７０を介して選択的にデータ入出力バッファ（ＤＩＯＢ）７１に接続され、メモリバンク単位でリードデータの出力、ライトデータの入力が可能にされる。データ入出力バッファ７１は３２ビットのデータ入出力端子ＤＱ０〜ＤＱ３１に接続される。
【００４０】
ＤＤＲ−ＳＤＲＡＭ６１は例えば１５ビットのアドレス入力端子Ａ０〜Ａ１４を有する。アドレス入力端子Ａ０〜Ａ１４にアドレスマルチプレクス形態で供給されるロウアドレス信号及びバンク選択信号はロウアドレスバッファに、カラムアドレス信号はカラムアドレスバッファ７に、モードレジスタ設定情報はタイミングコントローラに供給される。４個のメモリバンクＢＮＫ０〜ＢＮＫ３は２ビットのバンク選択信号の論理値にしたがってその動作が可能（バンクアクティブ）にされる。メモリバンクＢＮＫ０〜ＢＮＫ３は独立にその動作が制御可能にされる。
【００４１】
ＤＤＲ−ＳＤＲＡＭ６１の動作制御はタイミングコントローラ（ＴＣＮＴ）７２が行なう。タイミングコントローラ７２にはクロック信号ＣＬＫ、／ＣＬＫ、クロックイネーブル信号ＣＫＥ、チップセレクト信号／ＣＳ、カラムアドレスストローブ信号／ＣＡＳ、ロウアドレスストローブ信号／ＲＡＳ、ライトイネーブル信号／ＷＥ、及びデータストローブ信号ＤＱＳなどの外部制御信と共に、前記モードレジスタ設定情報が入力される。ＤＤＲ−ＳＤＲＡＭ６１の動作はそれら入力信号の状態の組み合わせによって規定されるコマンドで決定され、タイミングコントローラ７２は、そのコマンドで指示される動作に応じた内部タイミング信号を形成するための制御ロジックを有する。
【００４２】
クロック信号ＣＬＫ、／ＣＬＫはＤＤＲ−ＳＤＲＡＭ６１のマスタクロックとされ、その他の外部入力信号は当該クロック信号ＣＬＫの立ち上がりエッジに同期して有意とされる。チップセレクト信号／ＣＳはそのローレベルによってコマンド入力サイクルの開始を指示する。／ＲＡＳ，／ＣＡＳ，／ＷＥの各信号はコマンドサイクルを定義するための信号とされる。入力信号としての前記データストローブ信号ＤＱＳは書込み動作時にライトストローブ信号として外部から供給され、書込みデータの確定タイミングを規定する。出力信号としてのデータストローブ信号ＤＱＳは読み出しデータの外部出力に同期して変化されリードストローブ信号とされる。読み出しデータの出力タイミング及び出力信号ＤＱＳの変化は図示を省略するＤＬＬ（ディレイ・ロックド・ループ）回路を用いてクロック信号ＣＫに同期される。ＤＬＬ回路は、特に制限されないが、レプリカ回路技術と、位相同期技術とによって、クロックＣＬＫに対する内部回路の信号伝播遅延時間特性を補償した内部クロック信号を生成する。この内部クロック信号に同期してリードデータを出力すると共に出力信号ＤＱＳをクロック変化させる。結果として、クロックＣＬＫと出力クロックＤＱＳの位相は高精度で一致される。
【００４３】
アクセスコマンドにはロウアドレスストローブ・バンクアクティブコマン（ＲＡＳＢＡコマンド）、カラムアドレス・リードコマンド（ＣＡＲコマンド）、カラムアドレス・ライトコマンド（ＣＡＷコマンド）などが有る。
【００４４】
ＲＡＳＢＡコマンドは、メモリバンクの選択と選択されたメモリバンクのロウアドレスの指示を有効にするコマンドであり、これにより、指定されたメモリバンクにおけるワード線が選択され、当該ワード線に接続されたメモリセルが夫々対応する相補データ線に導通される。
【００４５】
ＣＡＲコマンドはリード動作のカラムアドレスを与える為のコマンドであり、これによってカラムアドレス信号がカラムアドレスバッファに取り込まれ、カラム系選択動作が行なわれる。バースト動作ではその次以降のカラム系選択動作ではバーストカウンタでインクリメントしたカラムアドレスを用いる。カラム系選択動作では、先にＲＡＳＢＡコマンドにてアクティブにされているメモリバンクで６４ビット単位のビット線選択動作が行なわれ、選択されたビット線のデータは出力信号ＤＱＳの立ち上がり及び立ち下がりに同期して３２ビット単位で外部に連続的に出力される。連続的に読出される回数は上記バースト数（バーストレングス）によって指定された回数とされる。ＤＤＲ−ＳＤＲＡＭ６１の場合、バースト数は整数の２の倍数とされる。また、データ出力回路からのデータ読出し開始はＣＡＳレイテンシーで規定されるクロック信号ＣＬＫのサイクル数を待って行われる。
【００４６】
ＣＡＷコマンドはライト動作のトライトアドレスを与えるためのコマンドであり、これによって取り込まれたカラムアドレス信号はアクティブにされているメモリバンクの書込みスタートアドレスとされ、そのアドレスには、入力信号ＤＱＳの立ち上がり及び立ち下がりに同期して３２ビット単位で供給される書込みデータが６４ビット単位で書込まれる。ライト動作にはＣＡＳレイテンシーの設定はなく、ライトデータの取り込は、当該ＣＡＷコマンドサイクルからクロック信号ＣＬＫの１サイクル遅れてデータストローブ信号ＤＱＳに同期して開始される。
【００４７】
ＤＤＲ−ＳＤＲＡＭ６１においては、一つのメモリバンクでバースト動作が行われているとき、その途中で別のメモリバンクを指定して、ロウアドレスストローブ・バンクアクティブコマンドが供給されると、当該実行中の一方のメモリバンクでの動作に何等影響を与えることなく、当該別のメモリバンクにおけるロウアドレス系の動作が可能にされる。即ち、バンクアクティブコマンドなどによって指定されるロウアドレス系動作とカラムアドレス・ライトコマンドなどによって指定されるカラムアドレス系動作とは、相違するメモリバンク間で並列可能になっている。したがって、データ入出力端子ＤＱ０〜ＤＱ３１においてデータが衝突しない限り、処理が終了していないコマンドの実行中に、当該実行中のコマンドが処理対象とするメモリバンクとは異なるメモリバンクに対するプリチャージやＲＡＳＢＡコマンドなどを発行して、内部動作を予め開始させることが可能である。ＤＤＲ−ＳＤＲＡＭ６１は、クロック信号ＣＬＫに同期するデータストローブ信号ＤＱＳの立ち上がり及び立ち下がりの両エッジに同期したデータ入出力が可能にされ、クロック信号ＣＬＫに同期してアドレス、制御信号を入出力できるため、ＤＲＡＭと同様の大容量メモリをＳＲＡＭに匹敵する高速で動作させることが可能であり、また、選択された１本のワード線に対して幾つのデータをアクセスするかをバーストレングスによって指定することによって、内蔵カラムアドレスカウンタ１０で順次カラム系の選択状態を切換えていって複数個のデータを連続的にリード又はライトすることもできる。
【００４８】
《ＤＤＲ−ＳＤＲＡＭコントローラ》
図３にはＤＤＲ−ＳＤＲＡＭコントローラ１０のブロック図が示される。ＤＤＲ−ＳＤＲＡＭコントローラ１０は、スーパハイウェイバスインタフェース（ＳＨＢＩＦ）８０、３Ｄバスインタフェース（３ＤＢＩＦ）８１、グラフィックバスインタフェース（ＧＦＢＩＦ）８２、バスアービタ（ＢＡＲＢＴ）８３、及びＤＤＲコントローラ（ＤＤＲＣＮＴ）８４を有する。
【００４９】
前記ＳＨＢインタフェース８０にはＳＨＢ４が接続され、３ＤＢインタフェース８１に３ＤＢ２４が接続され、ＧＦＢインタフェース８２にはＧＦＢ２０が接続される。ＧＦＢ２０は１２８ビット乃至３２ビットのモジュール間専用バスとして構成される。前記インタフェース８０〜８３はマスタポートとスレーブポートを有し、スプリットトランザクションバスのバストランザクションを実行する。バスアービタ８３は前記インタフェース８０〜８２を介する回路モジュールとＤＤＲコントローラ（ＤＤＲＣＮＴ））８４との間のデータ転送若しくはパケット転送を調停する。
【００５０】
ＤＤＲコントローラ８４はバスアービタで調停されたアクセス要求を満足するように、ＤＤＲ−ＳＤＲＡＭ６１に対するクロック同期のコマンド発行及びデータ入出力動作を制御する。その基本的な制御は図２に基づいて説明したＤＤＲ−ＳＤＲＡＭ６１のバーストリード動作やライト動作に対する一般的なＤＤＲ−ＳＤＲＡＭのアクセス制御であり、その制御ロジックはＤＤＲアクセス制御部（ＡＳＣＮＴ）８５が備える。ＤＤＲコントローラ８４にとって特徴的な構成は、ＤＤＲ−ＳＤＲＡＭ６１の４個のメモリバンクＢＮＫ０〜ＢＮＫ３に各々対応する記憶領域としてのバンクキャッシュＣＡＣＨＢ０〜ＣＡＣＨＢ３を有することである。前記バンクキャッシュＣＡＣＨＢ０〜ＣＡＣＨＢ３は対応するバンクのアドレスを連想キーとして当該バンクの一部のデータを記憶可能である。バンクキャッシュＣＡＣＨＢ０〜ＣＡＣＨＢ３に対する制御ロジックはキャッシュ制御部（ＣＨＣＮＴ）８６が備える。その他にＤＤＲコントローラ８４はリードデータの出力制御部（ＤＯＣＮＴ）８７、バンクキャッシュＣＡＣＨＢ０〜ＣＡＣＨＢ３のデータとＤＤＲ−ＳＤＲＡＭからのデータを選択するセレクタ（ＤＳＥＬ）８８を有する。バンクキャッシュＣＡＣＨＢ０〜ＣＡＣＨＢ３のうちの何れか一つ又はそれらを総称してバンクキャッシュＣＡＣＨＢとも記す。
【００５１】
バンクキャッシュＣＡＣＨＢ０〜ＣＡＣＨＢ３の各々は記憶領域として図４に例示されるアドレス部ＡＤＲ，Ｖとデータ部ＤＡＴを有する。データ部ＤＡＴはＤＤＲ−ＳＤＲＡＭのクロックＤＱＳの１サイクルでアクセス可能なデータサイズの記憶領域とされる。具体的には６４ビットとされる。アドレス部ＡＤＲにはＤＤＲＥ−ＳＤＲＡＭのメモリバンクに対して一つのロウアドレス及び２個のカラムアドレスで指定される範囲を定義するアドレス、即ちロウアドレス及びから最下位ビットを除くカラムアドレスが格納される。アドレス部Ｖには当該バンクキャッシュの有効性を示すバリッドビットが格納される。各々のバンクキャッシュＣＡＣＨＢ０〜ＣＡＣＨＢ３は１個のキャッシュエントリを保有する事ができる。前記バンクキャッシュＣＡＣＨＢ０〜ＣＡＣＨＢ３はＳＲＡＭ（スタティック・ランダム・アクセス・メモリ）やレジスタ等で構成される。
【００５２】
《バンクキャッシュ》
キャッシュ制御部（ＣＨＣＮＴ）８６によるバンクキャッシュに対する制御形態を説明する。バスアービタ８３で調停されて供給されるアクセス要求には、アクセス要求基におけるトランザクションＩＤ、アクセス要求が転送されたバスを特定するバスＩＤ、アクセスの種別を示すアクセスコマンド、アクセスアドレス、バースト長、書込みアクセスの場合には書込みデータを含む。
【００５３】
キャッシュ制御部８６は、アクセスアドレスがＣＰＵキャッシュメモリ１３（ＣＡＣＨ）のキャッシュ非対象領域であるときバンクキャッシュＣＡＣＨＢを動作可能にする。アクセスアドレスがＣＰＵキャッシュ対象領域であるときはバンクキャッシュＣＡＣＨＢを動作させない。これにより、頻繁に繰り返しアクセスされず、前記ＣＰＵキャッシュメモリ１３（ＣＡＣＨ）のキャッシュの対象とすればキャッシュミスペナルティーによる大きな負担が強いられるような、ＣＰＵキャッシュメモリ１３（ＣＡＣＨ）によるキャッシュの対象とされ難いようなデータやプログラムに対して、バススループット若しくはデータスループットを向上させることができる。さらにＣＰＵキャッシュメモリ１３（ＣＡＣＨ）とバンクキャッシュＣＡＣＨＢの双方でキャッシュ対象にする場合、記憶情報のコヒーレンシを保つ為の複雑な制御も必要ない。
【００５４】
また、キャッシュ制御部８６は、アクセス要求に対してバンクキャッシュＣＡＣＨＢを動作可能にするバスを限定する。例えばＳＨＢ４からのアクセス要求に対してだけバンクキャッシュＣＡＣＨＢ０〜ＣＡＣＨＢ３を動作可能にする。例えばＤＧＦＣ７や２ＤＧＦＣ３０等のグラフィックモジュールによるアクセスでは同一ラスタ上で連続アドレスに配置されたデータを大きなバースト数をもって連続リードするのが効率的であり、それによる一連のアクセスデータサイズがバンクキャッシュＣＡＣＨＢの記憶容量を超えることになるから、そのようなバスに関してはキャッシュ非対象にするのがよく、また、スタック領域に対する退避や復帰のためのデータサイズは１６ビットや３２ビットのようにＣＰＵ１１などのデータ処理単位に整合するのでそれらデータの転送用途とされるＳＨＢ４バスに関してはキャッシュ対象にするのがよいからである。
【００５５】
また、キャッシュ制御部８６は、前記ＤＤＲ−ＳＤＲＡＭ６１に対する１回のリードアクセス指示によるバーストアクセスによる全アクセスデータサイズが一つのバンクキャッシュＣＡＣＨＢのサイズを超えるリードアクセス指示に対してはバンクキャッシュＣＡＣＨＢ０〜ＣＡＣＨＢ３を動作させない。要するに、ＤＤＲ−ＳＤＲＡＭ６１に対する１回のリードアクセスコマンドによるアクセスがバースト数２でなければバンクキャッシュＣＡＣＨＢ０〜ＣＡＣＨＢ３を動作させない。同一メモリバンクからのバーストリードデータ長さが一つのバンクキャッシュＣＡＣＨＢのデータ部ＤＡＴの記憶容量を超えるようなアクセスに対する複雑な制御を行なわずに済む。
【００５６】
キャッシュ制御部８６はバンクキャッシュＣＡＣＨＢ０〜ＣＡＣＨＢ３を動作可能とするとき、アクセスアドレスに対応するバンクキャッシュＣＡＣＨＢ０〜ＣＡＣＨＢ３を参照し、そのアドレス部ＡＤＲのアドレスがアクセスアドレスに対応するか、アドレス部Ｖのバリッドビットが有効かを判定し、アドレスが対応し、バリッドビットが有効であるときキャッシュヒットと判別する。そうでなければキャッシュミスである。
【００５７】
リード動作では、キャッシュヒットであれば、メモリ制御部８５にはＤＤＲ−ＳＤＲＡＭ６１へのメモリリードコマンドの発行を抑制させ、対応する一つのバンクキャッシュＣＡＣＨＢのデータ部ＤＡＴのデータを読み出し、これをセレクタ８８に選択させる。ＤＤＲコントローラ８４から出力されたリードデータはアクセス要求元に繋がるＳＨＢＩＦ８０などを介して応答パケットとしてバスアクセス要求元に返される。キャッシュヒットであれば、ＤＤＲ−ＳＤＲＡＭに対するメモリアクセスを行わずに済むから、これによってＭＲＢ２５のバススループット向上に寄与し、リードアクセスのデータスループットが向上する。
【００５８】
リード動作において、キャッシュミスの場合には、メモリ制御部８５はミスに係るアクセスアドレスによってＤＤＲ−ＳＤＲＡＭ６１をリードアクセスし、リードアクセスしたデータをアクセス要求元に繋がるＳＨＢＩＦ８０などを介して応答パケットとしてバスアクセス要求元に返し、また、そのリードデータをメモリバンクに対応するバンクキャッシュＣＡＣＨＢのデータ部に格納し、対応するアドレス部ＡＤＲのアドレスを当該アクセスアドレスに更新し、対応するアドレス部Ｖのバリッドビットを有効を示す値にセットする。
【００５９】
ライト動作で、キャッシュヒットの場合、メモリ制御部８５は、ヒットに係る一つのバンクキャッシュＣＡＣＨＢのデータを無効化する。即ち、対応するバンクキャッシュＣＡＣＨＢのアドレス部Ｖのバリッドビットを無効を示す値に変更する。これと共に、ヒットに係るライトデータのライトコマンドをＤＤＲ−ＳＤＲＡＭ６１に発行する。ライト動作でキャッシュミスの場合には、ミスに係るライトデータのライトコマンドをＤＤＲ−ＳＤＲＡＭ６１に発行する。これにより、バンクキャッシュＣＡＣＨＢ０〜ＣＡＣＨＢ３とＤＤＲ−ＳＤＲＡＭ６１との間のコヒーレンシを維持するための複雑な制御が必要なくなる。ＤＤＲコントローラ１０は複数のバスに接続されて複数の回路モジュールからのアクセス要求に応答してＤＤＲ−ＳＤＲＡＭ６１をアクセス制御し、どのバスからのアクセス要求に対しても全てバンクキャッシュＣＡＣＨＢ０〜ＣＡＣＨＢ３の対象にされるとは限らず、その場合にはバンクキャッシュＣＡＣＨＢ０〜ＣＡＣＨＢ３とＤＤＲ−ＳＤＲＡＭ６１との間のコヒーレンシを維持する場合には複雑な制御が必要になるからである。
【００６０】
図５にはＤＤＲコントローラ１０による前記バンクキャッシュＣＡＣＨＢ０〜ＣＡＣＨＢ３のヒットとミス時の制御処理フローが例示される。前述の如く、アクセスリクエストがあると、リードアクセスか否かを判定し（Ｓ１）、リードの場合にバンクキャッシュヒットであれば（Ｓ２のＴ）、ヒットに係るデータを出力させるが（Ｓ３）、キャッシュミスであれば（Ｓ２のＦ）、ＤＤＲ−ＳＤＲＡＭに対するメモリリードを行い（Ｓ４）、ミスに係るバンクキャッシュを更新する（Ｓ５）。ライトの場合に（Ｓ１のＦ）、バンクキャッシュヒットであれば（Ｓ７のＴ）、ヒットに係るバンクキャッシュを無効化して（Ｓ８）、ＤＤＲ−ＳＤＲＡＭに対するメモリライトを行い（Ｓ９）、キャッシュミス（Ｓ７のＦ）のときはＤＤＲ−ＳＤＲＡＭ６１に対するメモリライトに移行する（Ｓ９）。
【００６１】
図６にはＤＤＲ−ＳＤＲＡＭ６１の代表的なアクセスタイミングが示される。クロックサイクルＣ１，Ｃ２，Ｃ３毎にアドレスを指定したバースト長２のリードコマンドが発行されている。コマンド発行後、ＤＤＲ−ＳＤＲＡＭの内部動作が確定するタイミングを待って、クロックサイクルＣ５，Ｃ６，Ｃ７でリードデータがクロックの半サイクル毎に３２ビット単位で出力される。
【００６２】
図７にはＳＨＢ４からアクセスデータサイズ１６ビットのリードアクセスが連続アドレス対して３回要求されときのタイミングチャートが示される。１６ビット単位のデータの連続アドレスは６４ビット単位ではその上位の共通アドレスとされる。図７ではそのような共通アドレスをＡ０として示している。例えばＳＨＢ４のＣＰＵ１１からアクセスアドレスＡ０のリードアクセス要求がクロックサイクルＣ１，Ｃ２，Ｃ３の３回連続して供給されると、ＤＤＲコントローラ１０はバンクキャッシュのヒット又はミスを判定し、最初のアクセス要求であるからバンクキャッシュミスとされ、ＤＤＲ−ＳＤＲＡＭ６１に対してクロックサイクルＣ２でアクセスアドレスＡ０のリードアクセスコマンドを発行する。コマンド発行後、ＤＤＲ−ＳＤＲＡＭ６１の内部動作が確定するタイミングを待って、ＤＤＲ−ＳＤＲＡＭ６１からクロックサイクルＣ６に同期してリードデータＤ０、Ｄ０１がクロックの半サイクル毎に３２ビット単位で出力される。Ｃ２、Ｃ３の要求は、ＤＤＲ−ＳＤＲＡＭコントローラ１０内蔵のバンクキャッシュＣＡＣＨＢ０〜ＣＡＣＨＢ３にヒットするため、ＤＤＲ−ＳＤＲＡＭ６１に対するメモリアクセスコマンドは発行されず、ＣＰＵ１１へのアクセスレスポンスとされるリードデータは、夫々バンクキャッシュＣＡＣＨＢが保持するデータＤ００，Ｄ０１から切出された連続アドレスの１６ビットデータとされる。図ではクロックサイクルＣ７、Ｃ８，Ｃ９で返されるレスポンスデータは便宜上Ｄ００，Ｄ０１というようにバンクキャッシュヒットに係る全部のデータを示している。これによりＭＲＢ２５のスループットが向上する。
【００６３】
図８には図７と同じアクセス要求に対してバンクキャッシュを用いないで動作させたときのタイミングチャートが示される。ＣＰＵからクロックサイクルＣ１、Ｃ２、Ｃ３で発行されたアクセス要求に応ずるアクセスコマンドが直接ＤＤＲ−ＳＤＲＡＭ６１に対してクロックサイクルＣ２、Ｃ３、Ｃ４で発行され、クロックサイクルＣ７、Ｃ８、Ｃ９のサイクルでＣＰＵ１１に転送されます。図７に比べてＭＲＢ２５を占有する時間が長くなり、バススループットが低くなっている。
【００６４】
図９にはＳＨＢ４からのバーストリードとシングルリードのアクセス要求に対して、ＤＤＲ−ＳＤＲＡＭコントローラ１０がバンクキャッシュヒットのデータをリオーダリングしてアクセス要求元に返す動作のタイミングが示される。クロックサイクルＣ０においてＣＰＵ１１から発行されるアクセス要求は、先頭アドレスＢ０とするバースト数４のリードアクセスとされる。次いでサイクルＣ２，Ｃ３ではＣＰＵ１１からアドレスＳ１，Ｓ２のシングルリードのアクセス要求が発行される。ＤＤＲ−ＳＤＲＡＭコントローラ１０はそのバーストリードアクセス要求に対しては、そのバースト数より全体のアクセスデータサイズがバンクキャッシュの記憶容量を超えるのでバンクキャッシュに対象とせず、クロックサイクルＣ２から順次アドレスＢ００，Ｂ０１，Ｂ０２，Ｂ０３とするリードコマンド（バースト数２）をＳＤＲＡＭ６１に発行する。このリードコマンドに応答するＳＤＲＡＭ６１はクロックサイクルＣ６から順次クロックの半サイクル毎に３２ビット単位でリードデータＤ００，Ｄ０１，Ｄ０３，Ｄ０４，Ｄ０５，Ｄ０５，Ｄ０６，Ｄ０７を出力することになる。ここでは前記アドレスＳ１に対するシングルリードはバンクキャッシュにヒットする。したがって、ＤＤＲ−ＳＤＳＲＡＭコントローラ１０は当該シングルリードに対してＤＤＲ−ＳＤＲＡＭ６１のアクセスコマンドを発行せず、バンクキャッシュからヒットに係るデータＤ１０，Ｄ１１を取得する。この取得タイミングはＳＤＲＡＭ６１からのリードデータＤ００，Ｄ０１をＣＰＵに返すことができるタイミングよりも早いので、当該バンクキャッシュヒットに係るデータＤ００，Ｄ０１をクロックサイクルＣ６で先にＣＰＵ１１に返す。前記アドレスＳ２に対するシングルリードはバンクキャッシュミスとされるので、クロックサイクルＣ６ではアドレスＳ２に対するリードコマンド（バースト数２）がＳＤＲＡＭ６１に発行される。このリードコマンドに応答するＳＤＲＡＭ６１からのデータＤ２０，Ｄ２１の出力はクロックサイクルＣ１０に同期される。ＤＤＲ−ＳＤＲＡＭコントローラ１０はクロックサイクルＣ７以降、順次ＳＤＲＡＭ６１からのリードデータＤ００，Ｄ０１，Ｄ０２，Ｄ０３，Ｄ０４，Ｄ０５，Ｄ０６，Ｄ０７，Ｄ２０，Ｄ２１をＣＰＵ１１に返す。
【００６５】
このように図９では、ＤＤＲ−ＳＤＲＡＭ６１のリードレーテンシのサイクル中に、バンクキャッシュヒットにされるシングルリードＳ１のアクセス要求に対するリードデータＤ１０，Ｄ１１をアクセス要求元のＣＰＵ１１に返すことが可能なため、ＣＰＵ１１アクセスに対するバススループットの向上、そしてＤＤＲ−ＳＤＲＡＭ６１のバスのバススループットが向上する。
【００６６】
特に、その場合に、スーパーハイウェイバス４はスプリットトランザクション型であるため、リードデータのリオーダリングに対応しているため、ＳＨＢインタフェース８０はＣ６のサイクルでＳ１のアクセス要求に係る応答データＤ１０，Ｄ１１を先のＢ０に係るアクセス要求に対する応答に先立って転送することが可能である。
【００６７】
スプリットトランザクション型のバスでは、アクセス要求回路からのリクエストパケットをアクセス応答回路が受取り、その要求に応答するレスポンスパケットをアクセス要求回路に返すようになっており、リクエストパケットとレスポンスパケットを含んで構成される一連の処理（トランザクション）はアクセス要求回路に固有のトランザクションＩＤによってその他のトランザクションから識別可能にされる。ＤＤＲ−ＳＤＲＡＭコントローラ１０は、前記回路モジュールから前記外付けメモリへの連続する複数のリードアクセスの指示に応答する複数のリードデータを前記バスに返すとき、前記回路モジュールからのリードアクセスの指示順に対してリードアクセス要求元へのリードデータの出力順を変更するリオーダリングが可能である。これは、一つのトランザクションはそれに固有のトランザクションＩＤによってその他のトランザクションか識別できることによって可能になる。
【００６８】
アクセス要求順に応答を返さなければならないとすると、要するに上記リオーダリングを行なわないなら、バンクキャッシュＣＡＣＨＢにヒットしたアクセス要求の応答データは、バンクキャッシュＣＡＣＨＢにミスする先のアクセス要求の応答データよりも早く取得できるが、前者の応答をアクセス要求元に返すのに後者の応答が有るまでまたなけれならず、結果として、システムのデータスループットを悪化させる。前記回路モジュールからのリードアクセスの指示順に対して、バンクキャッシュヒットに係るバンクキャッシュＣＡＣＨＢからのリードデータを、バンクキャッシュミスに係るＤＤＲ−ＳＤＲＡＭ６１からのリードデータよりも先行させてリードアクセス要求元へのデータとして出力することができる。アクセス要求に対する応答を受取るのに余計に待つことを要しない。
【００６９】
図１０には図９のＳ１に係るシングルリードもバンクキャッシュミスとされる場合の動作タイミングが示される。この場合は、ＣＰＵ１１からのアクセス要求をシーケンシャルに処理するため、ＣＰＵ１１に対する応答リードデータの転送もシーケンシャルになる。バンクキャッシュヒットも発生しないので、リオーダリングも生じない。
【００７０】
《アクセス要求のマージ》
次に、バンクキャッシュ非対象とされるグラフィックバス２０からのアクセス要求に対するＤＤＲ−ＳＤＲＡＭコントローラ１０による応答、特にアクセス要求のマージについて説明する。
【００７１】
図１１にグラフィックバス２０の回路モジュール（単にグラフィックモジュールとも称する）からＤＤＲ−ＳＤＲＡＭ６１へのリードアクセスフローが示される。グラフィックモジュールからグラフィックバス２０上にアドレスとバースト長が発行されると、ＤＤＲメモリバス２５を介してＤＤＲ−ＳＤＲＡＭ６１でメモリリードアクセスが行われ、リードデータがグラフィックデータとしてグラフィックバス２０上に返される。
【００７２】
図１２にはグラフィックモジュールからＤＤＲ−ＳＤＲＡＭ６１へのリードアクセスの動作フローが示される。
【００７３】
グラフィックモジュールからＤＤＲ−ＳＤＲＡＭ６１へのリードアクセスは、
（１）グラフィックモジュールからＤＤＲ−ＳＤＲＡＭコントローラ１０へのリードリクエストサイクル、
（２）ＤＤＲ−ＳＤＲＡＭコントローラ１０からＤＤＲ−ＳＤＲＡＭ６１にリードコマンドを発行するリードサイクル開始、
（３）ＤＤＲ−ＳＤＲＡＭ６１がＤＤＲ−ＳＤＲＡＭコントローラ１０にリードデータを出力してリードサイクルを終了するリードサイクル終了、
（４）ＤＤＲ−ＳＤＲＡＭコントローラ１０がグラフィックモジュールに対してメモリリードデータを返すリードレスポンスサイクル、の順に行われる。
【００７４】
図１３乃至図１５にはグラフィックモジュールからＤＤＲ−ＳＤＲＡＭへアクセスデータサイズ３２ビットでバースト長８のリードアクセス要求を行った場合の動作タイミングが示される。図１３及び図１４はリードアクセス要求のマージを行わない場合を示し、図１５にはリードアクセス要求のマージを行った場合を示す。
【００７５】
図１３において、グラフィックモジュールからグラフィックバス２０を介してＤＤＲ−ＳＤＲＡＭコントローラ１０に対し、Ｃ１サイクルにおいて、要求コマンド、アドレス、バースト長が発行される。ＤＤＲ−ＳＤＲＡＭコントローラ１０はＤＤＲメモリバス２５を介してＤＤＲ−ＳＤＲＡＭ６１に対し、Ｃ２からＣ９のサイクルにおいてリードコマンドを発行し、ＤＤＲ−ＳＤＲＡＭ６１はＣ４からＣ１１のサイクルにおいてクロック半サイクル毎に３２ビット単位でリードデータを出力する。このときＤＤＲ−ＳＤＲＡＭコントローラ１０は、ＤＤＲ−ＳＤＲＡＭ６１にバースト長の回数（８回）だけリードコマンドを発行し、ＤＤＲ−ＳＤＲＡＭ６１からバースト長の回数（８回）だけデータを受信する。つまり、３２ビットのデータを８回リードするために、リードコマンドを８回発行する。これに応じて、ＤＤＲメモリバス２５では、アドレスが連続する６４ビットのデータが３２ビットずつ２回に分けて１サイクル内で連続出力されるので、要求されているリードアクセスのようにアドレスが連続する３２ビットデータを８回リードの場合、Ｃ４とＣ５のサイクル、Ｃ６とＣ７のサイクル、Ｃ８とＣ９のサイクル、Ｃ１０とＣ１１のサイクルで同じデータが出力される。しかしながら、この場合に１回のリードアクセスで有効とされるのは３２ビットのみであるため、各サイクルで出力される前半または後半の３２ビットデータが無効とされる。これは取りも直さず、前サイクルで出力され無効とされるデータと同データを再度次のサイクルで出力して有効にするのと同じことである。作図上、無効データは太線枠によって有効データと区別している。ＤＤＲ−ＳＤＲＡＭコントローラ１０は、そのようにして取得したデータをグラフィックバス２０を介してＣ６からＣ１３サイクルでグラフィックモジュールに返す。このレスポンスサイクルは、バースト長の回数に対応する８回で行われ、各回３２ビットデータの転送とされる。
【００７６】
図１４には図１３に対して途中でＤＤＲ−ＳＤＲＡＭ６１に対するリフレッシュサイクルが発生する場合のタイミングチャーチが示される。図１３と同様に、グラフィックモジュールからＣ１のサイクルにおいて、要求コマンド、アドレス、バースト長が発行された後、ＤＤＲ−ＳＤＲＡＭコントローラ１０はＤＤＲメモリバス２５を介してＤＤＲ−ＳＤＲＡＭ６１に対し、Ｃ２のサイクルからバースト長の回数（８回）だけリードコマンドを発行し、Ｃ４のサイクルからバースト長の回数（８回）だけデータを受信する。ここでは、リードコマンドを８回発行する途中のＣ３のサイクルでリフレッシュが発生する。そうすると、残りのリードコマンドの発行サイクルが例えばＣ１０のサイクル以降に遅れる。また、ＤＤＲ−ＳＤＲＡＭ６１はリフレッシュが終了してからデータを出力するため、リフレッシュコマンドの後に発行したリードコマンドに対応するデータ出力は、図１３で示したリフレッシュが発生しない場合におけるＣ５からＣ１１のサイクルよりも大分遅れることになる。よって、図１２の場合よりグラフィックバス２０のデータスループットは悪化することになり。
【００７７】
図１５にはアクセス要求のマージを行ってリードコマンドを発行する場合のタイミングチャートを示す。グラフィックモジュールからは図１３の場合と同様にグラフィックバス２０を介してＤＤＲ−ＳＤＲＡＭコントローラ１０に対し、要求コマンド、アドレス、バースト長が発行される。ＤＤＲ−ＳＤＲＡＭコントローラ１０は、ＤＤＲメモリバス２５を介してＤＤＲ−ＳＤＲＡＭ６１に対してリードコマンドを発行し、これによってＤＤＲ−ＳＤＲＡＭ６１からデータが出力される。このときＤＤＲ−ＳＤＲＡＭコントローラ１０は、図１３及び図１４で発生する無効データを有効に使用するため、リードコマンドを４回にまとめて発行する。つまり、グラフィックモジュールからのアドレスが連続する３２ビットデータの８回リードというアクセス要求を、６４ビットデータの４回リードという要求に変換してＤＤＲ−ＳＤＲＡＭ６１にリードコマンドを発行する。これにより、図１３に比較して、ＤＤＲメモリバス２５が当該リードアクセスに使用されない期間が増え、その期間を次のアクセスや、プリチャージ、リフレッシュ等に使用することが可能となる。また、１つのリクエストに対するＤＤＲメモリバス２５の使用サイクルが少ないため、図１４の場合のようにメモリリードアクセスの途中でリフレッシュが発生する確率が少なくなる。これらの理由により、ＤＤＲメモリバス２５のデータスループットが大幅に向上する。
【００７８】
上記アクセス要求をマージしてＤＤＲ−ＳＤＲＡＭ６１から出力されたリードデータは前記ＲＤＯＣＮＴ８７に供給される。ＲＤＯＣＮＴ８７に供給されたデータは、ＡＳＣＮＴ８５からの指示に従ってグラフィックモジュールから要求されたデータサイズに切出され、セレクタ８８を介してＧＦＢＩＦ８２に供給され、レスポンスパケットにてアクセス要求元のグラフィックモジュールに転送される。
【００７９】
上記アクセス要求のマージに関する説明では、３２ビットデータの８回リードアクセスを例に挙げているが、この例に限らず、ＤＤＲ−ＳＤＲＡＭコントローラ１０に対するアクセス要求のデータビット数がデータバス２５の幅より小さい場合には、同様にＤＤＲメモリバス２５のデータスループット向上が実現される。バースト長も当然別の値であってよい。
【００８０】
次に、ＤＤＲ−ＳＤＲＡＭ６１へのアクセスを要求するモジュールが複数である場合の動作を説明する。
【００８１】
図１６には２個のグラフィックモジュールＡ、ＢからＤＤＲ−ＳＤＲＡＭ６１にリードアクセス要求があった場合の動作フローが示される。図１６において、２個のグラフィックモジュールＡ、ＢからＤＤＲ−ＳＤＲＡＭ６１へのリードアクセスは、
（１）グラフィックモジュールＡからＤＤＲ−ＳＤＲＡＭコントローラ１０へのリードリクエスト（Ａ）サイクル、
（２）ＤＤＲ−ＳＤＲＡＭコントローラ１０からＤＤＲ−ＳＤＲＡＭ６１に対して（１）に対応するリードコマンドを発行するリードサイクル（Ａ）開始、
（３）ＤＤＲ−ＳＤＲＡＭ６１がＤＤＲ−ＳＤＲＡＭコントローラ１０に（２）に対応するデータを出力してリードサイクル（Ａ）を終了するリードサイクル（Ａ）終了、
（４）ＤＤＲ−ＳＤＲＡＭコントローラ１０がグラフィックモジュールＡに対してメモリリードデータをレスポンスするリードレスポンス（Ａ）サイクル、
（５）グラフィックモジュールＢからＤＤＲ−ＳＤＲＡＭコントローラ１０へのリードリクエスト（Ｂ）サイクル、
（６）ＤＤＲ−ＳＤＲＡＭコントローラ１０からＤＤＲ−ＳＤＲＡＭ６１に対して（５）に対応するリードコマンドを発行するリードサイクル（Ｂ）開始、
（７）ＤＤＲ−ＳＤＲＡＭ６１がＤＤＲ−ＳＤＲＡＭコントローラ１０に（６）に対応するデータを出力してリードサイクル（Ｂ）を終了するリードサイクル（Ｂ）終了、
（８）ＤＤＲ−ＳＤＲＡＭコントローラ１０がグラフィックモジュールＢに対してメモリリードデータをレスポンスするリードレスポンス（Ｂ）サイクル、の順に行われる。（１）、（４）のサイクルはグラフィックモジュールＡのグラフィックバス（Ａ）を介し、（５）、（８）のサイクルはグラフィックモジュールＢのグラフィックバス（Ｂ）を介して、異なるバスを使用するため、サイクル（１）から（４）とサイクル（５）は、逆順あるいは同時にも行われ得る。
【００８２】
図１６ではグラフィックモジュールＡからのアクセス要求に対する応答が完結する前に、グラフィックモジュールＢからのアクセス要求が発生する。グラフィックバス（Ａ）及びグラフィックバス（Ｂ）のバススループットはＤＤＲメモリバス２５のバススループットによって決まることになる。
【００８３】
図１７にはメモリアクセスを要求するモジュールが複数あるときアクセス要求をマージしない場合の動作タイミングが例示される。
【００８４】
グラフィックモジュールＡとグラフィックモジュールＢが、それぞれグラフィックバス（Ａ）、グラフィックバス（Ｂ）を介してＤＤＲ−ＳＤＲＡＭコントローラ１０に対し、Ｃ１のサイクルで、要求コマンド、アドレス、バースト長を発行する。このときのアクセスデータサイズは３２ビットである。ＤＤＲ−ＳＤＲＡＭコントローラ１０は複数モジュールからのリクエストをバスアービタ８３で調停する。ここえは、グラフィックモジュールＡ、グラフィックモジュールＢの順にＤＤＲ−ＳＤＲＡＭ６１に対してアクセスリクエストを発行する。図１７ではＤＤＲ―ＳＤＲＡＭコントローラ１０は各アクセス要求についてバースト長の回数（８回）づつリードコマンドを発行し、バースト長の回数（８回）分だけリードデータを受信する。３２ビットデータを８回リードするためには、リードコマンドを８回発行する必要があるからである。グラフィックモジュールＡとグラフィックモジュールＢのアクセス分を合わせると、Ｃ２からＣ１７のサイクルで合計１６回のリードコマンドを発行し、Ｃ４からＣ１９のサイクルで１６回リードデータを受信する。図１３の場合と同様に、前サイクルで出力され無効とされるデータと同データを後から再度リードして有効にしている。ＤＤＲ−ＳＤＲＡＭコントローラ１０はこのように１６回リードしたデータを、グラフィックバス（Ａ）を介してグラフィックモジュールＡに、グラフィックバス（Ｂ）を介しグラフィックモジュールＢに返す。このレスポンス回数はバースト長の回数に一致される。
【００８５】
図１８にはメモリアクセスを要求するモジュールが複数あるときアクセス要求をマージする場合の動作タイミングが例示される。
【００８６】
グラフィックモジュールＡとグラフィックモジュールＢが、それぞれグラフィックバス（Ａ）、グラフィックバス（Ｂ）を介してＤＤＲ−ＳＤＲＡＭ１０コントローラ１０に、Ｃ１のサイクルで、要求コマンド、アドレス、バースト長を発行する。このときのアクセスデータサイズは３２ビットである。これに応答してＤＤＲ−ＳＤＲＡＭコントローラ１０は、グラフィックモジュールＡとグラフィックモジュールＢからのアクセス要求を調停し、グラフィックモジュールＡ、グラフィックモジュールＢの順にＤＤＲ−ＳＤＲＡＭ６１に対してアクセスリクエストを発行する。図１８の場合には、ＤＤＲ−ＳＤＲＡＭコントローラ１０は、図１７の無効データを有効活用するために、各グラフィックモジュールＡ，Ｂからのアドレスが連続する３２ビットの８回リードというアクセス要求を６４ビットの４回リードというアクセス要求にマージして、ＤＤＲ−ＳＤＲＡＭ６１にはリードコマンドを４回ずつにまとめて発行する。これにより、グラフィックモジュールＡとグラフィックモジュールＢのアクセス分を合わせて、Ｃ２からＣ９のサイクルで８回分リードコマンドを発行すればよく、ＤＤＲ−ＳＤＲＡＭコントローラ１０はＤＤＲ−ＳＤＲＡＭ６１からサイクルＣ４〜Ｃ１１で３２ビット×２のリードデータを８回受取る。ＤＤＲ−ＳＤＲＡＭ６１から受取ったデータには無効データはない。したがって、図１７に比べてＤＤＲメモリバス２５のデータスループットが向上する。この後、ＤＤＲ−ＳＤＲＡＭコントローラ１０は、グラフィックバス（Ａ）、グラフィックバス（Ｂ）を介し、グラフィックモジュールＡ、グラフィックモジュールＢにリードデータを返す。このアクセスレスポンスはバースト長の回数（８回）行われる。グラフィックバス（Ａ）、グラフィックバス（Ｂ）はグラフィックモジュールＡ、グラフィックモジュールＢに対応して個別化されているため、グラフィックモジュールＡ、グラフィックモジュールＢへのアクセスレスポンスを並行して行うことができる。これらにより、システム全体のデータスループットが向上する。
【００８７】
図１９にはグラフィックモジュールの動作周波数がＤＤＲ−ＳＤＲＡＭ６１の動作周波数より高い場合にアクセス要求をマージしない場合の動作タイミングが例示される。
【００８８】
ここではグラフィックモジュールの動作周波数はＤＤＲ−ＳＤＲＡＭ６１の動作周波数の２倍とされる。グラフィックモジュールがグラフィックバスを介してＤＤＲ−ＳＤＲＡＭコントローラ１０に対し、Ｃ１サイクルで、要求コマンド、アドレス、バースト長を発行する。このときのアクセスデータサイズは３２ビットである。ＤＤＲ−ＳＤＲＡＭコントローラ１０はＤＤＲメモリバス２５を介してＤＤＲ−ＳＤＲＡＭ６１に対し、Ｃ’１からＣ’８のサイクルにおいてバースト長の回数（８回）だけリードコマンドを発行し、Ｃ’３からＣ’１０の８サイクルに亘って３２ビット×２のデータを８回受信する。次にＤＤＲ−ＳＤＲＡＭ１０コントローラは、受信したデータを順にグラフィックバスを介してグラフィックモジュールに返すが、ＤＤＲ−ＳＤＲＡＭ１０からの遅いデータ受信に律速され連続サイクルでリードデータを返すことができない。この場合にはグラフィックバスのデータスループットが大幅に悪化する。
【００８９】
図２０にはグラフィックモジュールの動作周波数がＤＤＲ−ＳＤＲＡＭ６１の動作周波数より高い場合にアクセス要求をマージする場合の動作タイミングが例示される。
【００９０】
ここではグラフィックモジュールの動作周波数はＤＤＲ−ＳＤＲＡＭ６１の動作周波数の２倍とされる。グラフィックモジュールがグラフィックバスを介してＤＤＲ−ＳＤＲＡＭコントローラ１０に対し、Ｃ１のサイクルで、要求コマンド、アドレス、バースト長を発行する。このときのアクセスデータサイズは３２ビットである。ＤＤＲ−ＳＤＲＡＭコントローラ１０はＤＤＲメモリバス２５を介してＤＤＲ−ＳＤＲＡＭ６１にリードコマンドを発行するが、図１８の場合とは異なり、３２ビットの８回リードというアクセス要求を６４ビットの４回リードというアクセス要求にマージし、Ｃ’１からＣ’４のサイクルで４回だけリードコマンドを発行する。これに応答してＤＤＲ−ＳＤＲＡＭ６１からＣ’３〜Ｃ’６の４サイクルで３２ビット単位の全データが出力される。ＤＤＲ−ＳＤＲＡＭコントローラ１０は、グラフィックバスを介してグラフィックモジュールにそのリードデータを返すが、ＤＤＲ−ＳＤＲＡＭ６１からのリードデータの受信タイミングに律速されることなく連続してリードデータの応答を返すことができ、グラフィックバスのデータスループットが向上する。したがって、ＤＤＲメモリバス２５とグラフィックバスの両方のデータスループットが向上し、システム全体のデータスループットを大幅に向上させることができる。
【００９１】
特に図示はしないが、ＤＤＲ−ＳＤＲＡＭ６１へのアクセスを要求するモジュールが複数あり、且つ、モジュールの動作周波数がＤＤＲ−ＳＤＲＡＭの動作周波数より高い場合にも、上記と同じようにモジュールからのアクセス要求をマージすることによってバス及びシステムのデータスループットを向上させることができる。
【００９２】
また、前記ＳＨＢ４、グラフィックバス２０などの各バスにはバス毎にバスＩＤが与えられているが、バンクキャッシュの有効又は無効をバスＩＤによって設定するようにしてもよい。そのような設定は、バンクキャッシュ制御部８６のロジックで固定的に行ってもよいし、また、コントロールレジスタでプログラマブルに行うようにしてもよい。バンクキャッシュによるキャッシュの対象をバス単位で決めることがバンクキャッシュのヒット率向上に望ましいという場合に対処するのが容易になる。
【００９３】
また、ＳＨＢ４及びグラフィックバスは、パケット式のスプリットトランザクションバスを採用しており、アクセス要求時にアクセスサイズが決定している。アクセスサイズによってバンクキャッシュの有効または無効なアクセスサイズを設定するようにしてもよい。そのような設定は、バンクキャッシュ制御部８６のロジックで固定的に行ってもよいし、また、コントロールレジスタでプログラマブルに行うようにしてもよい。バンクキャッシュによるキャッシュの対象をアクセスサイズで決めることがバンクキャッシュのヒット率向上に望ましいという場合に対処するのが容易になる。
【００９４】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００９５】
例えば、本発明の半導体装置はカーナビゲーション用の画像処理プロセッサに限定されず、プリンタ用或いは携帯端末用の画像処理プロセッサに、通信制御用プロセッサ、エンジン制御用プロセッサ、汎用マイクロコンピュータ等、種々のデータ処理用の半導体装置に広く適用することができる。バスのビット、バスのデータ転送プロトコル、バスの本数、内蔵回路モジュールの種類についても種々変更可能である。複数バンクを持つメモリはＤＤＲ−ＳＤＲＡＭに限定されず、ＳＤＲ−ＳＤＲＡＭ、ＤＤＲ−ＳＲＡＭ、ＳＤＲ−ＳＲＡＭなど、その他のクロック同期型メモリであってよい。
【符号の説明】
【００９６】
１  画像処理プロセッサ
２  プロセッサコア
３  クロック発生回路
４  スーパーハイウェイバス
５  バスブリッジ回路
７  ３Ｄエンジン
１０  ＤＤＲ−ＳＤＲＡＭコントローラ
１１  ＣＰＵ
１３（ＣＡＣＨ）  ＣＰＵキャッシュメモリユニット
２０  グラフィックバス
２４  ３Ｄバス
２５  ＤＤＲメモリバス
３０  ２Ｄエンジン
３１  表示制御回路
６１  ＤＤＲ−ＳＤＲＡＭ
ＢＮＫ０〜ＢＮＫ３  メモリバンク
８０  スーパハイウェイバスインタフェース
８１  ３Ｄバスインタフェース
８２  グラフィックバスインタフェース
８３  バスアービタ
８４  ＤＤＲコントローラ
８５  ＤＤＲアクセス制御部
８６  キャッシュ制御部
ＣＡＣＨＢ０〜ＣＡＣＨＢ３  バンクキャッシュ
【図１】
2011090697.tif 000003
【図２】
2011090697.tif 000004
【図３】
2011090697.tif 000005
【図４】
2011090697.tif 000006
【図５】
2011090697.tif 000007
【図６】
2011090697.tif 000008
【図７】
2011090697.tif 000009
【図８】
2011090697.tif 000010
【図９】
2011090697.tif 000011
【図１０】
2011090697.tif 000012
【図１１】
2011090697.tif 000013
【図１２】
2011090697.tif 000014
【図１３】
2011090697.tif 000015
【図１４】
2011090697.tif 000016
【図１５】
2011090697.tif 000017
【図１６】
2011090697.tif 000018
【図１７】
2011090697.tif 000019
【図１８】
2011090697.tif 000020
【図１９】
2011090697.tif 000021
【図２０】
2011090697.tif 000022