(57)【要約】【課題】  半導体メモリのアクセス効率を向上し、システムの性能を向上する。【解決手段】  並べ替え判定部は、半導体メモリのアクセス単位である少なくとも１つのメモリブロックをラップアクセスするためのアクセス要求アドレスが、メモリブロックの先頭アドレスと異なるときに並べ替え信号を活性化する。アドレス変換部は、並べ替え信号が活性化されたときに、メモリブロックの先頭アドレスをアクセス開始アドレスに設定する。リードデータ並び替え部は、並べ替え信号が活性化されたときに、アクセス開始アドレスに応じて半導体メモリから順次に読み出されるリードデータを、アクセス要求アドレスに対応するリードデータを先頭にして並び替える。バス出力部は、並び替えられたリードデータを外部リードバスに出力する。この結果、半導体メモリのアクセス効率を向上でき、システムの性能を向上できる。【選択図】    図１
2010277216.tif 000002
【特許請求の範囲】
【請求項１】
半導体メモリのアクセス単位である少なくとも１つのメモリブロックをラップアクセスするためのアクセス要求アドレスが、前記メモリブロックの先頭アドレスと異なるときに並べ替え信号を活性化する並べ替え判定部と、
前記並べ替え信号が活性化されたときに、前記メモリブロックの先頭アドレスをアクセス開始アドレスに設定するアドレス変換部と、
前記並べ替え信号が活性化されたときに、前記アクセス開始アドレスに応じて前記半導体メモリから順次に読み出されるリードデータを、前記アクセス要求アドレスに対応するリードデータを先頭にして並び替えるリードデータ並び替え部と、
並び替えられたリードデータを外部リードバスに出力するバス出力部と
を備えていることを特徴とするメモリコントローラ。
【請求項２】
前記並べ替え判定部は、並び替えられたリードデータを前記外部リードバスに早く出力する高速モード中に、前記並べ替え信号の非活性化すること
を特徴とする請求項１記載のメモリコントローラ。
【請求項３】
前記アドレス変換部は、複数の前記メモリブロックが連続してリードアクセスされ、前記アクセス要求アドレスが前記先頭アドレスと異なるときに、前記アクセス要求アドレスを含むメモリブロックの先頭アドレスを前記アクセス開始アドレスに設定すること
を特徴とする請求項１または請求項２記載のメモリコントローラ。
【請求項４】
前記リードデータ並べ替え部は、
前記半導体メモリからのリードデータを保持するリードバッファ回路と、
前記半導体メモリからのリードデータまたは前記リードバッファ回路に保持されたリードデータを選択的に出力するリード並べ替えセレクタと
を備えていることを特徴とする請求項３記載のメモリコントローラ。
【請求項５】
前記並べ替え信号が活性化されたときに、前記アクセス要求アドレスに対応して外部ライトバスから順次に供給されるライトデータを、前記アクセス開始アドレスに対応するライトデータを先頭にして並び替えるライトデータ並び替え部と、
並び替えられたライトデータを前記半導体メモリに出力するメモリ出力部と
備えていること
を特徴とする請求項１ないし請求項４のいずれか１項記載のメモリコントローラ。
【請求項６】
前記並べ替え判定部は、ライトデータを前記半導体メモリに早く書き込む高速モード中に、前記並び替え信号を非活性化すること
を特徴とする請求項５記載のメモリコントローラ。
【請求項７】
前記アドレス変換部は、複数の前記メモリブロックが連続してライトアクセスされ、前記アクセス要求アドレスが前記先頭アドレスと異なるときに、前記アクセス要求アドレスを含むメモリブロックの次のメモリブロックの先頭アドレスを前記アクセス開始アドレスに設定すること
を特徴とする請求項５または請求項６記載のメモリコントローラ。
【請求項８】
前記ライトデータ並べ替え部は、
前記外部ライトバスからのライトデータを保持可能なライトバッファ回路と、
前記外部ライトバスからのライトデータまたは前記ライトバッファ回路に保持されたライトデータを選択的に出力するライト並べ替えセレクタと
を備えていることを特徴とする請求項７記載のメモリコントローラ。
【請求項９】
請求項１ないし請求項８のいずれか１項記載のメモリコントローラと、
前記メモリコントローラを介して前記半導体メモリをアクセスするマスタコントローラと
を備えていることを特徴とするシステム。
【請求項１０】
半導体メモリのアクセス単位である少なくとも１つのメモリブロックをラップアクセスするためのアクセス要求アドレスが、前記メモリブロックの先頭アドレスと異なるときに、前記メモリブロックの先頭アドレスをアクセス開始アドレスに設定し、
前記アクセス開始アドレスに応じて前記半導体メモリから順次に読み出されるリードデータを、前記アクセス要求アドレスに対応するリードデータを先頭にして並び替え、
並び替えたリードデータを外部リードバスに出力すること
を特徴とする半導体メモリのアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリにアクセスするメモリコントローラおよびシステムに関する。
【背景技術】
【０００２】
ＳＤＲＡＭ等の半導体メモリは、アクセス効率を向上するためにバースト転送機能を有している。この種の半導体メモリは、バースト転送機能として、インクリメントバースト転送およびラップバースト転送を有している（例えば、特許文献１参照）。インクリメントバースト転送では、アクセスアドレスが順次インクリメントされ、バースト動作が実施される。ラップバースト転送では、アクセスアドレスが所定の範囲内で巡回され、バースト動作が実施される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１７２２４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
メモリコントローラによりアクセスされる領域が、複数のバースト転送領域を含むとき、メモリコントローラは、複数のアクセスコマンドを半導体メモリに出力する。ラップバースト転送において、アクセス要求アドレスがバースト転送領域の途中にあるとき、メモリコントローラは、アクセス要求アドレスの前後の領域毎にラップバースト転送を実施しなくてはならない。これにより、半導体メモリのアクセス効率は下がり、バスの使用効率は下がる。この結果、システムの性能は低下する。
【課題を解決するための手段】
【０００５】
並べ替え判定部は、半導体メモリのアクセス単位である少なくとも１つのメモリブロックをラップアクセスするためのアクセス要求アドレスが、メモリブロックの先頭アドレスと異なるときに並べ替え信号を活性化する。アドレス変換部は、並べ替え信号が活性化されたときに、メモリブロックの先頭アドレスをアクセス開始アドレスに設定する。リードデータ並び替え部は、並べ替え信号が活性化されたときに、アクセス開始アドレスに応じて半導体メモリから順次に読み出されるリードデータを、アクセス要求アドレスに対応するリードデータを先頭にして並び替える。バス出力部は、並び替えられたリードデータを外部リードバスに出力する。
【発明の効果】
【０００６】
アクセス要求アドレスが先頭アドレスと異なるときにも、アクセス要求アドレスを含むメモリブロックを１回リードアクセスしてリードデータを読み出すだけで、アクセス要求アドレスに対応するリードデータを順に出力できる。この結果、半導体メモリのアクセス効率を向上でき、システムの性能を向上できる。
【図面の簡単な説明】
【０００７】
【図１】一実施形態におけるシステムの例を示している。
【図２】図１に示したリードデータ並び替え部およびライトデータ並び替え部の例を示している。
【図３】図１に示したメモリコントローラの動作の例を示している。
【図４】図１に示したＳＤＲＡＭにアクセスする例を示している。
【図５】図１に示したＳＤＲＡＭにアクセスする別の例を示している。
【図６】図１に示したＳＤＲＡＭにアクセスする別の例を示している。
【図７】図１に示したＳＤＲＡＭのメモリマップの例を示している。
【図８】図１に示したＳＤＲＡＭにライトアクセスする例を示している。
【図９】図１に示したＳＤＲＡＭにライトアクセスする別の例を示している。
【図１０】図１に示したＳＤＲＡＭにライトアクセスする別の例を示している。
【図１１】図１に示したＳＤＲＡＭにリードアクセスする例を示している。
【図１２】図１に示したＳＤＲＡＭにリードアクセスする別の例を示している。
【図１３】図１に示したＳＤＲＡＭにリードアクセスする別の例を示している。
【図１４】図１に示したＳＤＲＡＭにライトアクセスする別の例を示している。
【図１５】図１に示したＳＤＲＡＭにライトアクセスする別の例を示している。
【図１６】図１に示したＳＤＲＡＭにリードアクセスする別の例を示している。
【図１７】図１に示したＳＤＲＡＭにリードアクセスする別の例を示している。
【図１８】別の実施形態におけるシステムの例を示している。
【図１９】別の実施形態におけるシステムの例を示している。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態を図面を用いて説明する。信号が伝達される信号線には、信号名と同じ符号を使用する。
【０００９】
図１は、一実施形態におけるシステムＳＹＳの例を示している。例えば、システムＳＹＳは、バスＢＵＳに接続されたマスタコントローラＭＳＴ、周辺回路ＰＥＲＩ、入出力インタフェースＩ／ＯおよびメモリコントローラＭＣＮＴと、メモリコントローラＭＣＮＴによりアクセスされるＳＤＲＡＭとを有している。なお、半導体メモリの一例としてＳＤＲＡＭが採用されているが、半導体メモリは、ラップバースト転送機能を有する他の半導体メモリ（ＳＲＡＭや強誘電体メモリなど）でもよい。ここで、ラップバースト転送は、１つのアクセスコマンドに応答して所定の領域を有するメモリブロックにライトデータを巡回的に書き込む手法である。あるいは、ラップバースト転送は、１つのアクセスコマンドに応答して所定の領域を有するメモリブロックからリードデータを巡回的に読み出す手法である。
【００１０】
マスタコントローラＭＳＴは、システムＳＹＳの全体の動作を制御するＣＰＵやＤＭＡＣ等である。周辺回路ＰＥＲＩは、例えば、ＭＰＥＧコントローラ等の画像制御回路である。入出力インタフェースＩ／Ｏは、例えば、ＵＳＢインタフェース回路である。ＳＤＲＡＭは、高レベルのクロックイネーブル信号ＣＫＥを受けている間に、クロック信号ＣＬＫに同期して動作する。クロックイネーブル信号ＣＫＥは、メモリコントローラＭＣＮＴが出力しているが、マスタコントローラＭＳＴが出力してもよい。ＳＤＲＡＭは、複数のコマンド端子ＣＭＤ、複数のアドレス端子ＡＤ、データマスク端子ＤＭおよび複数のデータ端子ＤＱを有している。例えば、コマンド端子ＣＭＤは、チップセレクト信号、ライトネーブル信号およびアウトプットイネーブル信号をそれぞれ受ける。データマスク端子ＤＭは、バースト転送において、ライトデータをマスクするためのデータマスク信号を受ける。
【００１１】
システムＳＹＳは、例えば、携帯電話やデジタルカメラなどの制御基板の少なくとも一部を含む。例えば、マスタコントローラＭＳＴ、周辺回路ＰＥＲＩ、入出力インタフェースＩ／Ｏ、メモリコントローラＭＣＮＴおよびＳＤＲＡＭは、ＳｏＣ（System on Chip）として１つのＬＳＩチップ上に形成され、制御基板に搭載される。なお、ＳＤＲＡＭは、単体のチップとして制御基板に搭載されてもよい。システムＳＹＳの最小構成は、マスタコントローラＭＳＴ、メモリコントローラＭＣＮＴおよびＳＤＲＡＭ等の半導体メモリである。
【００１２】
メモリコントローラＭＣＮＴは、バッファ部ＦＩＦＯ１、ＦＩＦＯ２および制御部ＣＮＴ１、ＣＮＴ２を有している。バッファ部ＦＩＦＯ１は、リードデータバッファＲＤＢＦ１、ライトデータバッファＷＤＢＦ１およびアドレス情報バッファＡＩＢＦ１を有している。バッファ部ＦＩＦＯ２は、リードデータバッファＲＤＢＦ２、ライトデータバッファＷＤＢＦ２およびアドレス情報バッファＡＩＢＦ２を有している。
【００１３】
制御部ＣＮＴ１は、リードデータ制御部ＲＤＣＮＴ１、リードデータ並び替え部ＲＤＥＸＣ、リードセレクタＳＥＬ１、ライトデータ並び替え部ＷＤＥＸＣ、ライトセレクタＳＥＬ２、ライトデータ制御部ＷＤＣＮＴ１、アドレス情報変換部ＡＩＣＮＶ、アドレスセレクタＳＥＬ３、アドレス情報制御部ＡＩＣＮＴ１、並べ替え判定部ＪＤＧおよびレジスタＲＥＧを有している。制御部ＣＮＴ２は、リードデータ制御部ＲＤＣＮＴ２、ライトデータ制御部ＷＤＣＮＴ２、アドレス情報制御部ＡＩＣＮＴ２、ページヒット判定部ＰＨＪＤＧおよびタイミング調整部ＴＡＤＪを有している。
【００１４】
マスタコントローラＭＳＴからのアクセス要求は、アドレス情報ＡＤＩとしてアドレス情報バッファＡＩＢＦ１（ＦＩＦＯ）に順次に保持される。特に限定されないが、アドレス情報ＡＤＩは、一般にトランザクションと称され、リード／ライト情報ＲＷ（リードアクセス要求／ライトアクセス要求）、アクセス要求アドレスＢＧＮ、データ転送サイズＤＳＩＺＥ、バースト長ＢＢＬおよびバーストタイプＢＴＹＰを含む。データ転送サイズＤＳＩＺＥは、２のｎ乗（ｎは正の整数）に設定される。バースト長ＢＢＬは、マスタコントローラＭＳＴとメモリコントローラＭＣＮＴの間でのデータ転送数を示す。
【００１５】
バーストタイプＢＴＹＰは、インクリメント、ラッピング、フィックスドのいずれかに設定される。インクリメントは、アクセス要求アドレスＢＧＮから順にＳＤＲＡＭのメモリ領域にアクセスするときに設定される。ラッピングは、データ転送サイズＤＳＩＺＥで設定されるメモリ領域内を巡回的にアクセスするときに設定される。フィックスドは、ステータスフラグのモニタ等をするために、１つのアドレスを繰り返し読み出すときに設定される。バーストタイプＢＴＹＰは、マスタコントローラＭＳＴからメモリコントローラＭＣＮＴに設定される情報であり、ＳＤＲＡＭに設定される情報ではない。
【００１６】
並べ替え判定部ＪＤＧは、ＳＤＲＡＭを効率的にアクセスするために、ライトデータまたはリードデータを並び替えるか否かを判定し、アクセス要求アドレスＢＧＮを変更するか否かを判定する。並べ替え判定部ＪＤＧは、データを並び替え、アドレスを変更するときに論理１（活性化レベル）を示す並び替え信号ＥＸＣを出力する。並べ替え判定部ＪＤＧは、データを並び替えず、アドレスを変更しないときに論理０（非活性化レベル）を示す並び替え信号ＥＸＣを出力する。
【００１７】
並べ替え判定部ＪＤＧは、アドレス情報ＡＤＩ、レジスタＲＥＧからのバス幅ＢＷ、バースト長ＢＬおよび高速モードＨＳに応じて、並べ替えの有無を決定する。バースト長ＢＬは、１回のアクセスコマンドに応答してＳＤＲＡＭに連続して書き込まれるデータ数または１回のアクセスコマンドに応答してＳＤＲＡＭから連続して読み出されるデータ数である。バス幅ＢＷは、ＳＤＲＡＭのデータ端子ＤＱのビット数である。データの並び替えおよびアドレスの変更により、後述するように、ＳＤＲＡＭに供給するアクセスコマンドの数が最小限になり、データ転送レートが向上する。
【００１８】
例えば、アクセス要求アドレスＢＧＮが１回のバースト転送でアクセスされるＳＤＲＡＭのメモリ領域（図４に示すメオリブロックＭＢ）の先頭アドレスのとき、データの並び替えおよびアドレスの変更は実施されない。アクセス要求アドレスＢＧＮが先頭アドレスか否かは、ＳＤＲＡＭのバス幅ＢＷとバースト長ＢＬから判断される。具体的には、並べ替え判定部ＪＤＧは、バス幅ＢＷとバースト長ＢＬの積からメモリ領域の大きさを求める。これにより、複数のメモリ領域の先頭アドレス、または先頭アドレスの間隔が求められる。そして、並べ替え判定部ＪＤＧは、アクセス要求アドレスＢＧＮが先頭アドレスと異なるときに、データの並び替えおよびアドレスの変更を実施するために並び替え信号ＥＸＣを論理１に活性化する。
【００１９】
なお、バーストタイプＢＴＹＰがインクリメントまたはフィックスドのとき、データの並び替えおよびアドレスの変更は実施されない。このとき、並べ替え判定部ＪＤＧは、並び替え信号ＥＸＣを論理０に非活性化する。バーストタイプＢＴＹＰがラッピングであっても、データ転送サイズが１回のバースト転送でアクセスされるＳＤＲＡＭのメモリ領域以下のときにはデータの並び替えおよびアドレスの変更は実施されない。
【００２０】
さらに、高速モードＨＳが設定されているとき、並べ替え信号ＥＸＣは非活性化され、データの並び替えおよびアドレスの変更は実施されない。高速モードＨＳは、ライトアクセスにおいて、ライトデータＷＤＴをできるだけ早くＳＤＲＡＭに書き込みたいときに設定される。すなわち、ライトレイテンシＷＬを少なくしたいとき、データの並び替えは実施されない。ライトレイテンシＷＬは、マスタコントローラＭＳＴがライトアクセス要求ＷＲ（トランザクション）をメモリコントローラＭＣＮＴに出力してから最初のライトデータがＳＤＲＡＭに出力されるまでのクロックサイクル数である。
【００２１】
あるいは、高速モードＨＳは、リードアクセスにおいて、リードデータＲＤＴをできるだけ早くバスＢＵＳに出力したいときに設定される。すなわち、リードレイテンシＲＬを少なくしたいとき、データの並び替えは実施されない。リードレイテンシＲＬは、バスＢＵＳからメモリコントローラＭＣＮＴにアクセス要求（トランザクション）が供給されてからリードデータＲＤＴがメモリコントローラＭＣＮＴからバスＢＵＳに出力されるまでクロック数ある。なお、リードデータＲＤＴは、バスＢＵＳ上の外部リードバスに出力される。ライトデータＷＤＴは、バスＢＵＳ上の外部ライトバスに出力される。この実施形態では、外部リードバスと外部ライトバスは、独立に配線されている。しかし、外部リードバスと外部ライトバスは、共通の信号線としてもよい。
【００２２】
なお、高速モードＨＳの情報は、レジスタＲＥＧに設定するのではなく、バスＢＵＳから並べ替え判定部ＪＤＧに直接供給してもよい。さらに、並べ替え判定部ＪＤＧは、アクセスされるメモリ領域に応じて高速モードＨＳを識別してもよい。このとき、データを早く読み出す必要があるメモリ領域がアクセスされるとき、並べ替えを禁止するために並び替え信号ＥＸＣが非活性化される。
【００２３】
アドレス情報変換部ＡＩＣＮＶは、並び替え信号ＥＸＣが活性化されているとき、アドレス情報バッファＡＩＢＦ１から受けたアクセス要求アドレスＢＧＮの値を変更するアドレス変換部としての機能を含む。アドレスセレクタＳＥＬ３は、並び替え信号ＥＸＣが非活性化されているときアドレス情報バッファＡＩＢＦ１からのアクセス要求アドレスＢＧＮを選択して出力する。アドレスセレクタＳＥＬ３は、並び替え信号ＥＸＣが活性化されているときアドレス情報変換部ＡＩＣＮＶからのアクセス要求アドレスＢＧＮを選択して出力する。すなわち、並び替え信号ＥＸＣが論理０のとき、アクセス要求アドレスＢＧＮは、アドレス情報変換部ＡＩＣＮＶを介さずにアドレス情報制御部ＡＩＣＮＴ１に転送される。リード／ライト情報ＲＷ、データ転送サイズＤＳＩＺＥ、バースト長ＢＢＬおよびバーストタイプＢＴＹＰは、アドレス情報バッファＡＩＢＦ１からアドレス情報制御部ＡＩＣＮＴ１に直接転送される。
【００２４】
アドレス情報制御部ＡＩＣＮＴ１は、アドレスセレクタＳＥＬ３からのアドレス情報（トランザクション）を分割してＳＤＲＡＭのコマンド体系に従ったアドレス情報（アクセス要求）に変換する。アドレス情報バッファＡＩＢＦ２は、アドレス情報制御部ＡＩＣＮＴ１からのアドレス情報を順次に保持する。アドレス情報バッファＡＩＢＦ２に保持されているアドレス情報は、連続する複数のアクセスコマンド（リードコマンド、ライトコマンド）およびアクセスコマンドに対応するアクセス開始アドレスを含む。
【００２５】
アドレス情報制御部ＡＩＣＮＴ２は、アドレス情報バッファＡＩＢＦ２からのアドレス情報を受け、ページヒット判定部ＰＨＪＤＧおよびタイミング調整部ＴＡＤＪからの情報に基づいて、ＳＤＲＡＭに出力するアクセスコマンドおよびアクセス開始アドレスを生成する。ここで、アクセスコマンドとして、リードコマンド、ライトコマンド、アクティブコマンド、プリチャージコマンド、オールバンクプリチャージコマンド等がある。アクセスされるアドレスの範囲が、ＳＤＲＡＭの１回のバースト転送動作でアクセスされる範囲より狭いとき、アドレス情報制御部ＡＩＣＮＴ２は、アクセスしてはならないメモリ領域に対応してデータマスク信号ＤＭを出力する。
【００２６】
ページヒット判定部ＰＨＪＤＧは、ＳＤＲＡＭがアクティブ状態で、アクセス開始アドレスがアクティブ中のページ内のアドレスに含まれるとき、ページヒットを示す情報をアドレス情報制御部ＡＩＣＮＴ２に出力する。ここで、ＳＤＲＡＭの１ページは、アクティブコマンドに応答してセンスアンプにラッチされるデータ群である。すなわち、１ページは、アクティブコマンドに応答して選択されるワード線に接続されたメモリセルに保持されるデータ群を示す。
【００２７】
ＳＤＲＡＭがスタンバイ状態（＝プリチャージ状態）のとき、ページヒット判定部ＰＨＪＤＧは、ページミスを示す情報をアドレス情報制御部ＡＩＣＮＴ２に出力する。このとき、アドレス情報制御部ＡＩＣＮＴ２は、アクセスコマンドＣＭＤ（ライトコマンドまたはリードコマンド）を出力する前に、アクセス開始アドレスＡＤ（ロウアドレス）とともにアクティブコマンドＣＭＤを出力する。アクセス開始アドレスが、既にアクティブ状態のページ内のアドレスに含まれないとき、ページヒット判定部ＰＨＪＤＧは、ページミスを示す情報をアドレス情報制御部ＡＩＣＮＴ２に出力する。このとき、アドレス情報制御部ＡＩＣＮＴ２は、アクセスコマンドＣＭＤ（ライトコマンドまたはリードコマンド）を出力する前に、プリチャージコマンドＣＭＤを出力して、アクティブ状態のページをスタンバイ状態に設定する。この後、アドレス情報制御部ＡＩＣＮＴ２は、アクセス開始アドレスＡＤ（ロウアドレス）とともにアクティブコマンドＣＭＤを出力し、新たなページをアクティブ状態に設定する。アクセス開始アドレスが既にアクティブ状態のページ内のアドレスに含まれるとき、ページヒット判定部ＰＨＪＤＧは、ページヒットを示す情報をアドレス情報制御部ＡＩＣＮＴ２に出力する。このとき、アドレス情報制御部ＡＩＣＮＴ２は、アクセスコマンドＣＭＤ（ライトコマンドまたはリードコマンド）およびアクセス開始アドレスＡＤ（コラムアドレス）を出力する。
【００２８】
タイミング調整部ＴＡＤＪは、アドレス情報制御部ＡＩＣＮＴ２から出力されるアクセスコマンドＣＭＤおよびアクセス開始アドレスＡＤの供給間隔（クロックサイクル数）を調整する。例えば、タイミング調整部ＴＡＤＪは、プリチャージコマンドの後、所定の時間後にアクティブコマンドを出力するために、アドレス情報制御部ＡＩＣＮＴ２を制御する。
【００２９】
一方、ライトアクセス要求とともにマスタコントローラＭＳＴから供給されるライトデータＷＤＴは、ライトデータバッファＷＤＢＦ１（ＦＩＦＯ）に順次に保持される。ライトデータ並び替え部ＷＤＥＸＣは、並び替え信号ＥＸＣが活性化レベルのとき、ライトデータを並び替える。ライトデータは、ＳＤＲＡＭの１回のバースト転送でアクセスされるメモリ領域にライトデータが纏めて書き込まれるように並び替えられる。
【００３０】
ライトセレクタＳＥＬ２は、並び替え信号ＥＸＣが活性化されているときにライトデータ並び替え部ＷＤＥＸＣからのライトデータを選択して出力する。並び替え信号ＥＸＣが非活性化されているときにライトデータバッファＷＤＢＦ１からのライトデータを選択して出力する。すなわち、並び替え信号ＥＸＣが論理０のとき、ライトデータは、ライトデータ並び替え部ＷＤＥＸＣを介さずにライトデータ制御部ＷＤＣＮＴ１に転送される。なお、バースト転送において、バスＢＵＳからのライトデータの供給頻度がＳＤＲＡＭへのライトデータの書き込み頻度より高いとき、メモリコントローラＭＣＮＴは、ビジー信号ＢＳＹを出力する。ビジー信号ＢＳＹを受けたマスタコントローラＭＳＴは、現在出力中のライトデータを保持し、新たなライトデータの出力を禁止する。
【００３１】
ライトデータ制御部ＷＤＣＮＴ１は、ライトセレクタＳＥＬ２からのライトデータの形式をＳＤＲＡＭの仕様（データのビット数など）に合わせて変更し、ライトデータバッファＷＤＢＦ２に出力する。ライトデータバッファＷＤＢＦ２（ＦＩＦＯ）は、ライトデータ制御部ＷＤＣＮＴ１からのライトデータを順次に保持する。ライトデータ制御部ＷＤＣＮＴ２は、ライトデータバッファＷＤＢＦ２に保持されているライトデータを、ＳＤＲＡＭの仕様（タイミング仕様など）に合わせてデータ端子ＤＱに出力する。すなわち、ライトデータ制御部ＷＤＣＮＴ２は、ライトデータ並び替え部ＷＤＥＸＣにより並び替えられたライトデータをＳＤＲＡＭに出力するメモリ出力部としての機能を有している。
【００３２】
リードデータ制御部ＲＤＣＮＴ２は、リードアクセス要求に応答してＳＤＲＡＭのデータ端子ＤＱから出力されるリードデータをリードデータバッファＲＤＢＦ２に順次に転送する。リードデータバッファＲＤＢＦ２（ＦＩＦＯ）は、リードデータを順次に保持し、リードデータ制御部ＲＤＣＮＴ１に出力する。リードデータ制御部ＲＤＣＮＴ１は、リードデータバッファＲＤＢＦ２に保持されているリードデータの形式を、バスＢＵＳの仕様（タイミング仕様、データのビット数およびデータの転送数など）に合わせて変更する。
【００３３】
リードデータ並び替え部ＲＤＥＸＣは、並び替え信号ＥＸＣが活性化レベルのとき、リードデータを並び替える。リードデータは、１回のバースト転送でアクセスされる領域からリードデータが纏めて読み出されるように並び替えられる。リードセレクタＳＥＬ１は、並び替え信号ＥＸＣが活性化されているときにリードデータ並び替え部ＲＤＥＸＣからのリードデータを選択して出力する。リードセレクタＳＥＬ１は、並び替え信号ＥＸＣが非活性化されているときにリードデータ制御部ＲＤＣＮＴ１からのリードデータを選択して出力する。すなわち、並び替え信号ＥＸＣが論理０のとき、リードデータは、データ並び替え部ＲＤＥＸＣを介さずにリードデータバッファＲＤＢＦ１に転送される。リードデータバッファＲＤＢＦ１（ＦＩＦＯ）は、リードセレクタＳＥＬ１からのリードデータを順次に保持し、リードデータＲＤＴとしてバスＢＵＳに出力する。リードデータバッファＲＤＢＦ１は、リードデータ並び替え部ＲＤＥＸＣにより並び替えられたリードデータをバスＢＵＳに出力するバス出力部としての機能を有している。
【００３４】
図２は、図１に示したリードデータ並び替え部ＲＤＥＸＣおよびライトデータ並び替え部ＷＤＥＸＣの例を示している。リードデータ並び替え部ＲＤＥＸＣは、ＳＤＲＡＭからのリードデータの一部を順次に保持するリードバッファ回路（ＦＩＦＯ）およびリード並び替えセレクタＳＥＬ４を有している。リードバッファ回路（ＦＩＦＯ）は、バースト転送によりＳＤＲＡＭから順次に読み出されたリードデータのうち、後からバスＢＵＳに出力すべきリードデータを一時的に保持する。具体的には、リードバッファ回路（ＦＩＦＯ）は、リードホールド信号ＲＨＯＬＤが論理１に活性化されているときに供給されるリードデータのみを保持する。
【００３５】
リード並び替えセレクタＳＥＬ４は、リードホールド信号ＲＨＯＬＤが論理０に非活性化されているとき、リードデータ制御部ＲＤＣＮＴ１からのリードデータを選択して出力する。リード並び替えセレクタＳＥＬ４は、リードホールド信号ＲＨＯＬＤが論理１に活性化されているとき、リードバッファ回路（ＦＩＦＯ）からのリードデータを選択して出力する。例えば、リードホールド信号ＲＨＯＬＤは、アドレス情報制御部ＡＩＣＮＴ１から出力される。リードデータの一部をリードバッファ回路（ＦＩＦＯ）に迂回させてることで、迂回させるリードデータの読み出しに必要なクロックサイクル数を増加させるだけで、リードデータを並べ替えることができる。すなわち、リードデータを少ないクロックサイクル数で並び替えることができる。
【００３６】
ライトデータ並び替え部ＷＤＥＸＣは、バスＢＵＳからのライトデータを順次に保持するライトバッファ回路（ＦＩＦＯ）およびライト並び替えセレクタＳＥＬ５を有している。ライトバッファ回路（ＦＩＦＯ）は、バースト転送によりバスＢＵＳから順次に受けるライトデータのうち、後からにＳＤＲＡＭに書き込むべきライトデータを一時的に保持する。具体的には、ライトバッファ回路（ＦＩＦＯ）は、ライトホールド信号ＷＨＯＬＤが論理１に活性化されているときに供給されるライトデータのみを保持する。
【００３７】
ライト並び替えセレクタＳＥＬ５は、ライトホールド信号ＷＨＯＬＤが論理０に非活性化されているとき、ライトデータバッファＷＤＢＦ１からのライトデータを選択して出力する。ライト並び替えセレクタＳＥＬ５は、ライトホールド信号ＷＨＯＬＤが論理１に活性化されているとき、ライトバッファ回路（ＦＩＦＯ）からのライトデータを選択して出力する。例えば、ライトホールド信号ＷＨＯＬＤは、アドレス情報制御部ＡＩＣＮＴ１から出力される。ライトデータの一部をライトバッファ回路（ＦＩＦＯ）に迂回させてライトデータを並び替えることで、迂回させるライトデータの書き込みに必要なクロックサイクル数を増加させるだけで、ライトデータを並べ替えることができる。すなわち、ライトデータを少ないクロックサイクル数で並び替えることができる。
【００３８】
図３は、図１に示したメモリコントローラＭＣＮＴの動作の例を示している。まず、ステップＳ１０において、メモリコントローラＭＣＮＴは、マスタコントローラＭＳＴからのアクセス要求（トランザクション）がライトアクセス要求ＷＲかリードアクセス要求ＲＤかを判定する。メモリコントローラＭＣＮＴは、ライトアクセス要求ＷＲを受けたとき、ステップＳ２０において、アクセス要求アドレスＢＧＮが、ラップバースト転送によってアクセスされるメモリブロックＭＢの先頭アドレスか否かを判定する。アクセス要求アドレスＢＧＮが先頭アドレスのとき、処理はステップＳ２８に移行する。アクセス要求アドレスＢＧＮが先頭アドレスと異なるとき、処理はステップＳ２２に移行する。
【００３９】
ステップＳ２２において、メモリコントローラＭＣＮＴは、高速モードＨＳが設定されているか否かを判定する。高速モードＨＳが設定されているとき、ライトレイテンシＷＬを少なくするために、処理はステップＳ２８に移行する。高速モードＨＳが設定されていないとき、ライトレイテンシＷＬが重視されないと判断され、ライトデータの並び替えをするために、処理はステップＳ２４に移行する。
【００４０】
ステップＳ２４において、メモリコントローラＭＣＮＴは、アドレス情報変換部ＡＩＣＮＶを用いて、ＳＤＲＡＭに供給するアドレスＡＤ（アクセス開始アドレス）を、ラップバースト転送によって２番目にアクセスされるメモリブロックＭＢの先頭アドレスに設定する。ステップＳ２６において、メモリコントローラＭＣＮＴは、ライトデータ並び替え部ＷＤＥＸＣを用いて、ライトデータＷＤＴを並び替える。
【００４１】
次に、ステップＳ２８において、メモリコントローラＭＣＮＴは、アドレス情報制御部ＡＩＣＮＴ１を用いて、ＳＤＲＡＭに供給するライトコマンドＷＲおよびライトアドレスＡＤを生成する。ステップＳ３０において、メモリコントローラＭＣＮＴは、アドレス情報制御部ＡＩＣＮＴ２およびライトデータ制御部ＷＤＣＮＴ２を用いて、ＳＤＲＡＭにライトコマンドＷＲ、ライトアドレスＡＤおよびライトデータＷＤＴを出力する。
【００４２】
一方、リードアクセス要求ＲＤがメモリコントローラＭＣＮＴに供給されたとき、処理は、ステップＳ４０に移行する。ステップＳ４０において、メモリコントローラＭＣＮＴは、アクセス要求アドレスＢＧＮがラップバースト転送によってアクセスされるＳＤＲＡＭのメモリブロックＭＢの先頭アドレスか否かを判定する。アクセス要求アドレスＢＧＮが先頭アドレスのとき、処理はステップＳ５４に移行する。アクセス要求アドレスＢＧＮが先頭アドレスと異なるとき、処理はステップＳ４２に移行する。
【００４３】
ステップＳ４２において、メモリコントローラＭＣＮＴは、高速モードＨＳが設定されているか否かを判定する。高速モードＨＳが設定されているとき、リードレイテンシＲＬを少なくするために、処理はステップＳ５４に移行する。高速モードＨＳが設定されていないとき、リードレイテンシＲＬが重視されないと判断され、リードデータの並び替えをするために、処理はステップＳ４４に移行する。
【００４４】
ステップＳ４４において、メモリコントローラＭＣＮＴは、アドレス情報変換部ＡＩＣＮＶを用いて、ＳＤＲＡＭに供給するアドレスＡＤ（アクセス開始アドレス）を、ラップバースト転送によって最初にアクセスされるメモリブロックＭＢの先頭アドレスに設定する。ステップＳ４６において、メモリコントローラＭＣＮＴは、アドレス情報制御部ＡＩＣＮＴ１を用いて、ＳＤＲＡＭに供給するリードコマンドＲＤおよびリードアドレスＡＤを生成する。ステップＳ４８において、メモリコントローラＭＣＮＴは、アドレス情報制御部ＡＩＣＮＴ２を用いて、ＳＤＲＡＭにリードコマンドＲＤおよびリードアドレスＡＤを出力する。次に、ステップＳ５０において、メモリコントローラＭＣＮＴは、リードデータ並び替え部ＲＤＥＸＣを用いて、ＳＤＲＡＭから出力されるリードデータＲＤＴを並び替える。
【００４５】
一方、ステップＳ５４では、ステップＳ４６と同様に、メモリコントローラＭＣＮＴは、アドレス情報制御部ＡＩＣＮＴ１を用いて、ＳＤＲＡＭに供給するリードコマンドＲＤおよびリードアドレスＡＤを生成する。ステップＳ５６では、ステップＳ４８と同様に、メモリコントローラＭＣＮＴは、アドレス情報制御部ＡＩＣＮＴ２を用いて、ＳＤＲＡＭにリードコマンドＲＤおよびリードアドレスＡＤを出力する。そして、ステップ５２において、メモリコントローラＭＣＮＴは、リードデータバッファＲＤＢＦ１を用いて、リードデータＲＤＴをバスＢＵＳに出力する。
【００４６】
図４は、図１に示したＳＤＲＡＭにアクセスする例を示している。各メモリブロックＭＢは、ＳＤＲＡＭの１回のバースト転送によりアクセスされるアクセス単位を示している。予め、マスタコントローラＭＳＴは、メモリコントローラＭＣＮＴのバーストタイプＢＴＹＰとしてラッピングを指定している。このため、１回のアクセス要求に応答して、データ転送サイズＤＳＩＺＥに対応するＳＤＲＡＭのメモリ領域が常にアクセスされる。図中の網掛けは、アクセスされるデータを示している。枠内の数字は、メモリコントローラＭＣＮＴによるメモリブロックＭＢのアクセス順序を示している。
【００４７】
この例では、アクセス要求（トランザクション）毎に転送されるデータ転送サイズＤＳＩＺＥは、ＳＤＲＡＭの２回のラップバースト転送によってアクセスされる２つのメモリブロックＭＢの大きさに等しい。バスＢＵＳからメモリコントローラＭＣＮＴに供給されるアクセス要求アドレスＢＧＮは、メモリブロックＭＢｎに含まれ、かつメモリブロックＭＢｎの先頭アドレスと異なる。換言すれば、アクセス要求アドレスＢＧＮは、メモリブロックＭＢｎの先頭アドレスと異なる。
【００４８】
ライトアクセス要求ＷＲ（ライトコマンド）に応答するライトアクセス動作おいて、ライトデータの並び替えが実施されるとき、メモリコントローラＭＣＮＴは、メモリブロックＭＢｎ＋１にアクセスした後にメモリブロックＭＢｎにアクセスする。すなわち、メモリコントローラＭＣＮＴは、アクセス要求アドレスＢＧＮを含むメモリブロックＭＢｎの次にアクセスされるべきメモリブロックＭＢｎ＋１の先頭アドレスをアクセス開始アドレスＡＤに設定する。これにより、アクセス要求アドレスＢＧＮがメモリブロックＭＢｎの先頭アドレスと異なるときにも、ＳＤＲＡＭへの２回のライトアクセス要求ＷＲによって、データ転送サイズＤＳＩＺＥに対応するメモリブロックＭＢｎ、ＭＢｎ＋１にライトデータを書き込みできる。
【００４９】
リードアクセス要求ＲＤ（リードコマンド）に応答するリードアクセス動作おいて、リードデータの並び替えが実施されるとき、メモリコントローラＭＣＮＴは、メモリブロックＭＢｎにアクセスした後にメモリブロックＭＢｎ＋１にアクセスする。すなわち、アクセス要求アドレスＢＧＮを含むメモリブロックＭＢｎの先頭アドレスをアクセス開始アドレスＡＤに設定する。これにより、アクセス要求アドレスＢＧＮがメモリブロックＭＢｎの先頭アドレスと異なるときにも、ＳＤＲＡＭへの２回のリードアクセス要求ＲＤによって、データ転送サイズＤＳＩＺＥに対応するメモリブロックＭＢｎ、ＭＢｎ＋１からリードデータを読み出しできる。
【００５０】
これに対して、ライトアクセス動作またはリードアクセス動作において、データの並び替えが実施されないとき、メモリコントローラＭＣＮＴは、メモリブロックＭＢｎ、ＭＢｎ＋１を順次にアクセスした後、メモリブロックＭＢｎを再びアクセスする。これにより、アクセス要求アドレスＢＧＮから最終アドレスＬＳＴまでのメモリ領域が巡回的にアクセスされる。この場合、３回のライトアクセス要求ＷＲまたは３回のリードアクセス要求ＲＤが必要になる。
【００５１】
図５は、図１に示したＳＤＲＡＭにアクセスする別の例を示している。図４と同じ動作については、詳細な説明は省略する。この例では、アクセス要求アドレスＢＧＮは、メモリブロックＭＢｎ＋１に含まれ、かつメモリブロックＭＢｎ＋１の先頭アドレスと異なる。
【００５２】
ライトアクセス要求ＷＲに応答するライトアクセス動作おいて、ライトデータの並び替えが実施されるとき、メモリコントローラＭＣＮＴは、図４と同様に、アクセス要求アドレスＢＧＮを含むメモリブロックＭＢｎ＋１の次にアクセスされるべきメモリブロックＭＢｎを最初にアクセスする。これにより、アクセス要求アドレスＢＧＮがメモリブロックＭＢｎ＋１の先頭アドレスと異なるときにも、ＳＤＲＡＭへの２回のライトアクセス要求ＷＲによって、ＳＤＲＡＭにライトデータを書き込みできる。
【００５３】
リードアクセス要求ＲＤに応答するリードアクセス動作おいて、リードデータの並び替えが実施されるとき、メモリコントローラＭＣＮＴは、図４と同様に、アクセス要求アドレスＢＧＮを含むメモリブロックＭＢｎ＋１を最初にアクセスする。これにより、アクセス要求アドレスＢＧＮがメモリブロックＭＢｎ＋１の先頭アドレスと異なるときにも、ＳＤＲＡＭへの２回のリードアクセス要求ＲＤによって、ＳＤＲＡＭからリードデータを読み出しできる。
【００５４】
これに対して、ライトアクセス動作またはリードアクセス動作において、データの並び替えが実施されないとき、メモリコントローラＭＣＮＴは、メモリブロックＭＢｎ＋１、ＭＢｎを順次にアクセスした後、メモリブロックＭＢｎ＋１を再びアクセスする。これにより、アクセス要求アドレスＢＧＮから最終アドレスＬＳＴまでのメモリ領域が巡回的にアクセスされる。この場合、３回のライトアクセス要求ＷＲまたは３回のリードアクセス要求ＲＤが必要になる。
【００５５】
図６は、図１に示したＳＤＲＡＭにアクセスする別の例を示している。図４と同じ動作については、詳細な説明は省略する。この例では、アクセス要求毎に転送されるデータ転送サイズＤＳＩＺＥは、ＳＤＲＡＭの４回のラップバースト転送によってアクセスされる４つのメモリブロックＭＢに等しい。アクセス要求アドレスＢＧＮは、メモリブロックＭＢｎ＋１に含まれ、かつメモリブロックＭＢｎ＋１の先頭アドレスと異なる。バーストタイプＢＴＹＰとしてラッピングが指定されているとき、１回のアクセス要求に応答して、データ転送サイズＤＳＩＺＥに対応するＳＤＲＡＭのメモリ領域がアクセスされる。
【００５６】
ライトアクセス要求ＷＲに応答するライトアクセス動作おいて、ライトデータの並び替えが実施されるとき、メモリコントローラＭＣＮＴは、図４と同様に、アクセス要求アドレスＢＧＮを含むメモリブロックＭＢｎ＋１の次のメモリブロックＭＢｎ＋２を最初にアクセスする。これにより、アクセス要求アドレスＢＧＮがメモリブロックＭＢｎ＋１の先頭アドレスと異なるときにも、ＳＤＲＡＭへの４回のライトアクセス要求ＷＲによって、ＳＤＲＡＭにライトデータを書き込みできる。
【００５７】
リードアクセス要求ＲＤに応答するリードアクセス動作おいて、リードデータの並び替えが実施されるとき、メモリコントローラＭＣＮＴは、図４と同様に、アクセス要求アドレスＢＧＮを含むメモリブロックＭＢｎ＋１を最初にアクセスする。これにより、アクセス要求アドレスＢＧＮがメモリブロックＭＢｎ＋１の先頭アドレスと異なるときにも、ＳＤＲＡＭへの４回のリードアクセス要求ＲＤによって、ＳＤＲＡＭからリードデータを読み出しできる。
【００５８】
これに対して、ライトアクセス動作またはリードアクセス動作において、データの並び替えが実施されないとき、メモリコントローラＭＣＮＴは、メモリブロックＭＢｎ＋１、ＭＢｎ＋２、ＭＢｎ＋３、ＭＢｎを順次にアクセスした後、メモリブロックＭＢｎ＋１を再びアクセスする。これにより、アクセス要求アドレスＢＧＮから最終アドレスＬＳＴまでのメモリ領域が巡回的にアクセスされる。この場合、５回のライトアクセス要求ＷＲまたは５回のリードアクセス要求ＲＤが必要になる。
【００５９】
図７は、図１に示したＳＤＲＡＭのメモリマップの例を示している。アドレスを示す数字は、１６進数である。例えば、ＳＤＲＡＭのデータ端子ＤＱは３２ビットである。ＳＤＲＡＭのモードレジスタ等に設定されるバースト長ＢＬが”８”のとき、１回のバースト転送でアクセスされるメモリブロックＭＢは、２５６ビットである。このとき、１つのメモリブロックＭＢは、”００”から”１Ｆ”までのアドレス空間を有している。
【００６０】
バスＢＵＳとメモリコントローラＭＣＮＴの間でアクセス要求毎に転送されるデータ転送サイズＤＳＩＺＥは、２つのメモリブロックＭＢの大きさに等しい。例えば、バスＢＵＳ上のデータ線が６４ビットである。バスＢＵＳ上のデータのバースト長（以下、バスバースト長ＢＢＬとも称する）は”８”に設定されている。
【００６１】
図８は、図１に示したＳＤＲＡＭにライトアクセスする例を示している。図８では、メモリコントローラＭＣＮＴは、３２ビットのデータ端子ＤＱ０−３１を有するＤＤＲ（Double Data Rate）タイプのＳＤＲＡＭにアクセスする。ＳＤＲＡＭのバースト長ＢＬは、予め”８”に設定されている。この例では、マスタコントローラＭＳＴからバスＢＵＳに供給されるアクセス要求アドレスＢＧＮ（１０、５８；１６進数）は、図７に示したように、メモリブロックＭＢの先頭アドレスと異なる。このため、並べ替え判定部ＪＤＧは、マスタコントローラＭＳＴからのライトアクセス要求ＷＲに応答して、ライトデータの並び替えをするために並び替え信号ＥＸＣを活性化する。ライトアクセス要求ＷＲ（トランザクション）は、アドレス情報ＡＤＩとして示される（図８（ａ、ｂ））。この例では、リード／ライト情報ＲＷはライトアクセス要求ＷＲ、バーストタイプＢＴＹＰはラッピングＷＰ、アクセス要求アドレスＢＧＮは”１０”または”５８”、データ転送サイズＤＳＩＺＥは６４ビット、バスバースト長ＢＢＬは”８”である。
【００６２】
最初のライトアクセス要求ＷＲに対応して、マスタコントローラＭＳＴは、２番目のクロックサイクルから６４ビットのライトデータＷＤＴ０−６３を８回続けてバスＢＵＳに出力する（図８（ｃ））。この例では、説明を分かりやすくするために、各ライトデータＷＤＴ０−６３は、下位の３２ビット（例えば、Ｄ０Ｌ）と上位の３２ビット（例えば、Ｄ０Ｈ）に分けて記載している。ライトデータを示す枠内の数字は、バスＢＵＳに供給される順序を示している。ライトデータを示す枠の上と枠の下に括弧で示した数字は、ライトデータが書き込まれるＳＤＲＡＭのアドレスを示している。ここでは、説明を分かりやすくするために、マスタコントローラＭＳＴからバスＢＵＳに供給されるアドレスは、ＳＤＲＡＭのアドレスと同じとしている。
【００６３】
アドレス情報変換部ＡＩＣＮＶは、図３のステップＳ２４に示したように、アクセス開始アドレスＡＤを次のメモリブロックＭＢの先頭（２０）に設定する（図８（ｄ））。ライトデータＤ０Ｌ、Ｄ０Ｈ、Ｄ１Ｌ、Ｄ１Ｈがライトデータ並び替え部ＷＤＥＸＣに供給される２クロックサイクルの間、ライトホールド信号ＷＨＯＬＤは活性化される。このため、ライトデータ並び替え部ＷＤＥＸＣは、１番目と２番目に供給されるライトデータＤ０Ｌ、Ｄ０Ｈ、Ｄ１Ｌ、Ｄ１Ｈをライトバッファ回路（ＦＩＦＯ）に保持する。このように、ライトバッファ回路（ＦＩＦＯ）は、アクセス要求アドレスＢＧＮから、アクセス要求アドレスＢＧＮを含むメモリブロックＭＢの最終アドレスまでに対応するライトデータを順次に保持する。
【００６４】
ライトデータ並び替え部ＷＤＥＸＣのライト並べ替えセレクタＳＥＬ５は、ライトデータＤ２Ｌ、Ｄ２ＨからＤ７Ｈ、Ｄ７Ｌまでを、ライトセレクタＳＥＬ２を介してライトデータ制御部ＷＤＣＮＴ１に順次に出力する（図８（ｅ））。ライトデータ並び替え部ＷＤＥＸＣのライト並べ替えセレクタＳＥＬ５は、ライトデータＤ７Ｈ、Ｄ７Ｌに続いて、ライトバッファ回路（ＦＩＦＯ）に保持しているライトデータＤ０Ｌ、Ｄ０Ｈ、Ｄ１Ｌ、Ｄ１Ｈを、ライトセレクタＳＥＬ２を介してライトデータ制御部ＷＤＣＮＴ１に順次に出力する（図８（ｆ））。すなわち、図３のステップＳ２６に示したように、ライトデータの並び替えが実施される。このように、ライト並べ替えセレクタＳＥＬ５は、アクセス要求アドレスＢＧＮを含むメモリブロックＭＢの次のメモリブロックＭＢの先頭アドレスから、アクセス要求アドレスＢＧＮの１つ前までに対応するライトデータを順次に選択して出力し、この後、ライトバッファ回路（ＦＩＦＯ）に保持されているライトデータを順次に選択して出力する。
【００６５】
次に、アドレス情報制御部ＡＩＣＮＴ２は、ライトコマンドＷＲとともに、変換されたアドレスＡＤ（２０）をＳＤＲＡＭに出力する（図８（ｇ））。バンクアドレスＢＡは、例えば、”０”である。なお、ＳＤＲＡＭは、予めアクティブコマンドを受け、アクティブ状態（ページヒット状態）であるとする。ライトデータ制御部ＷＤＣＮＴ２は、ライトコマンドＷＲから２クロック後に、ライトデータＤ２Ｌ、Ｄ２Ｈ、...、Ｄ５Ｌ、Ｄ５ＨをＳＤＲＡＭに順次に出力する（図８（ｈ））。ライトデータは、クロック信号ＣＬＫの立ち上がりエッジと立ち下がりエッジに同期して、ＳＤＲＡＭに書き込まれる。この例では、ＳＤＲＡＭへのライトレイテンシＷＬは”７”である。
【００６６】
この後、次のライトコマンドＷＲとともにアドレスＡＤ（００）がＳＤＲＡＭが供給される（図８（ｉ））。ライトデータＤ６Ｌ、Ｄ６Ｈ、...、Ｄ０Ｌ、Ｄ０Ｈ、Ｄ１Ｌ、Ｄ１ＨがＳＤＲＡＭに順次に供給され、ＳＤＲＡＭに書き込まれる（図８（ｊ））。ここで、バスＢＵＳ上に最初に供給されたライトデータＤ０Ｌは、ライトアクセス要求ＷＲ（トランザクション）から１４クロック後、すなわち、１５番目のクロック信号ＣＬＫに同期してＳＤＲＡＭに書き込まれる。
【００６７】
次のライトアクセス要求ＷＲに対応して、マスタコントローラＭＳＴは、１０番目のクロックサイクルから６４ビットのライトデータＷＤＴ０−６３を８回続けてバスＢＵＳに出力する（図８（ｋ））。この際、前のライトサイクルにおけるデータの並び替えにより、ライトデータ並び替え部ＷＤＥＸＣからのライトデータの出力が本来より２クロックサイクル遅れる。このため、メモリコントローラＭＣＮＴは、例えば、１１番目のクロック信号ＣＬＫの立ち下がりエッジに同期してビジー信号ＢＳＹを１クロックサイクル出力する。マスタコントローラＭＳＴは、出力中のライトデータＤ１Ｌ、Ｄ１Ｈを、ビジー信号ＢＳＹを受けた次のクロックサイクルも出力し続ける（図８（ｌ））。これにより、ライトデータが並び替えられるときにも、メモリコントローラＭＣＮＴ内でライトデータが衝突することを防止でき、メモリコントローラＭＣＮＴが誤動作することを防止できる。
【００６８】
２番目のアドレス情報ＡＤＩによるライトサイクルでは、アドレス情報変換部ＡＩＣＮＶは、アクセス開始アドレスＡＤを次のメモリブロックＭＢの先頭（６０）に設定する（図８（ｍ））。ライトデータ並び替え部ＷＤＥＸＣは、最初に供給されるライトデータＤ０Ｌ、Ｄ０Ｈをライトバッファ回路（ＦＩＦＯ）に保持する。ライトデータ並び替え部ＷＤＥＸＣは、ライトデータＤ１Ｌ、Ｄ１ＨからＤ７Ｈ、Ｄ７Ｌまでをライトデータ制御部ＷＤＣＮＴ１に順次に出力する（図８（ｎ））。ライトデータ並び替え部ＷＤＥＸＣは、ライトデータＤ７Ｈ、Ｄ７Ｌに続いて、ライトバッファ回路（ＦＩＦＯ）に保持しているライトデータＤ０Ｌ、Ｄ０Ｈをライトデータ制御部ＷＤＣＮＴ１に出力する（図８（ｏ））。メモリコントローラＭＣＮＴは、最初のライトサイクルと同様に、ライトコマンドＷＲおよび並び替えられたライトデータをＳＤＲＡＭに供給し、ＳＤＲＡＭにライトアクセスする。
【００６９】
例えば、マスタコントローラＭＳＴは、次のライトアクセス要求（トランザクション）を、１５番目のクロック信号ＣＬＫに同期して供給できる。後述する図９との比較により分かるように、ライトデータを並び替える場合、マスタコントローラＭＳＴからメモリコントローラＭＣＮＴへのライトアクセス要求の頻度を向上できる。
【００７０】
以上により、アクセス要求アドレスＢＧＮがメモリブロックＭＢの先頭アドレスと異なるときにも、マスタコントローラＭＳＴからの各ライトアクセス要求ＷＲに対応する５１２ビットのライトデータを２つのライトコマンドＷＲによりＳＤＲＡＭに書き込むことができる。これにより、ＳＤＲＡＭのデータバスＤＱの使用効率を向上できる。さらに、メモリコントローラＭＣＮＴからマスタコントローラＭＳＴへのビジー信号ＢＳＹの出力頻度を低くできるため、バスＢＵＳ上のデータ線の使用効率を向上できる。この結果、ＳＤＲＡＭのアクセス効率を向上でき、システムＳＹＳの性能を向上できる。
【００７１】
図９は、図１に示したＳＤＲＡＭにライトアクセスする別の例を示している。図８と同じ動作については、詳細な説明は省略する。メモリコントローラＭＣＮＴがアクセスするＳＤＲＡＭは、図８と同じである。マスタコントローラＭＳＴからメモリコントローラＭＣＮＴに供給されるアドレス情報ＡＤＩは、図８と同じである。すなわち、マスタコントローラＭＳＴからバスＢＵＳに供給されるアクセス要求アドレスＢＧＮ（１０、５８；１６進数）は、メモリブロックＭＢの先頭アドレスと異なる。但し、図９では、図１に示したレジスタＲＥＧに高速モードＨＳが設定されており、並べ替え信号ＥＸＣは非活性化されている。このため、ライトデータの並び替えは実施されない。ＳＤＲＡＭは、予めアクティブコマンドを受け、アクティブ状態（ページヒット状態）であるとする。
【００７２】
ライトデータの並び替えを実施しないとき、メモリコントローラＭＣＮＴは、１つのメモリブロックＭＢを、２つのアドレスＡＤ（１０）、（００）を用いて、２回に分けてアクセスする（図９（ａ、ｂ））。あるいは、メモリコントローラＭＣＮＴは、１つのメモリブロックＭＢを、２つのアドレスＡＤ（５８）、（４０）を用いて、２回に分けてアクセスする（図９（ｃ、ｄ））。ＳＤＲＡＭは、ライトアクセス毎に、バースト長ＢＬに対応する８個のライトデータを受ける。ここで、バスＢＵＳ上に最初に供給されたライトデータＤ０Ｌは、ライトアクセス要求ＷＲ（トランザクション）から５クロック後に（すなわち、７番目のクロック信号ＣＬＫに同期して）ＳＤＲＡＭに書き込まれる。すなわち、ライトレイテンシＷＬは”５”である。これは、図８に示したライトレイテンシＷＬ（＝７）より少ない。
【００７３】
アドレスＡＤ（１０）によるバースト転送では、アドレスＡＤ（００、０４、０８、０Ｃ）に対応する後半の４個のライトデータは、マスタコントローラＭＳＴから受けていない。このため、メモリコントローラＭＣＮＴは、後半のライトデータの書き込みを禁止するために、データマスク信号ＤＭをＳＤＲＡＭに出力する（図９（ｅ））。ライトデータが書き込まれないデータマスク期間ＤＭに対応して、メモリコントローラＭＣＮＴは、マスタコントローラＭＳＴにビジー信号ＢＳＹを出力する。
【００７４】
マスタコントローラＭＳＴは、ビジー信号ＢＳＹを受けている間、出力中のライトデータ（例えば、Ｄ２Ｌ、Ｄ２Ｈ）を出力し続ける（図９（ｆ））。他のライトサイクルにおいても、１つのメモリブロックＭＢが２回に分けてアクセスされるとき、データマスク期間ＤＭが発生する。これにより、ビジー信号ＢＳＹの出力頻度が高くなり、バスＢＵＳ上のデータ線が高い頻度で占有される。ＳＤＲＡＭのデータバスＤＱの使用効率は低下し、バスＢＵＳ上のデータ線の使用効率は低下する。
【００７５】
例えば、マスタコントローラＭＳＴは、次のライトアクセス要求（トランザクション）を、２１番目のクロックサイクル以降でなければ供給できない。すなわち、ライトデータを並び替えない場合、マスタコントローラＭＳＴからメモリコントローラＭＣＮＴへのライトアクセス要求の頻度が下がる。この結果、ＳＤＲＡＭのアクセス効率は低下する。
【００７６】
なお、高速モードＨＳでは、バスＢＵＳ上に最初に供給されたライトデータＤ０Ｌを、ＳＤＲＡＭに早く書き込みできる。このため、最初のライトデータを早くＳＤＲＡＭに書き込む必要があるとき、メモリコントローラＭＣＮＴは高速モードＨＳに設定される。
【００７７】
図１０は、図１に示したＳＤＲＡＭにライトアクセスする別の例を示している。図８と同じ動作については、詳細な説明は省略する。メモリコントローラＭＣＮＴがアクセスするＳＤＲＡＭは、図８と同じである。マスタコントローラＭＳＴからメモリコントローラＭＣＮＴに供給されるアドレス情報ＡＤＩは、アクセス要求アドレスＢＧＮ（００、４０）がメモリブロックＭＢの先頭を示すことを除き、図８と同じである。ＳＤＲＡＭは、予めアクティブコマンドを受け、アクティブ状態（ページヒット状態）であるとする。
【００７８】
アクセス要求アドレスＢＧＮ（００、４０）がメモリブロックＭＢの先頭を示すため、図１０では、並べ替え判定部ＪＤＧは、ライトデータの並び替えが不要であることを示す並び替え信号ＥＸＣ（論理０）を出力する。したがって、図８と同様に、メモリコントローラＭＣＮＴは、マスタコントローラＭＳＴからのライトアクセス要求ＷＲ毎に、２つのライトコマンドＷＲをＳＤＲＡＭに供給し、ＳＤＲＡＭにライトアクセスする。換言すれば、上述した図８では、アクセス要求アドレスＢＧＮがメモリブロックＭＢの先頭アドレスと異なるときにも、最小のサイクル時間でＳＤＲＡＭにライトアクセスできる。
【００７９】
図１１は、図１に示したＳＤＲＡＭにリードアクセスする例を示している。図８と同じ動作については、詳細な説明は省略する。メモリコントローラＭＣＮＴがアクセスするＳＤＲＡＭは、図８と同じである。マスタコントローラＭＳＴからメモリコントローラＭＣＮＴに供給されるアドレス情報ＡＤＩは、リード／ライト情報ＲＷがリードアクセスＲＤであることを除き、図８と同じである。マスタコントローラＭＳＴからバスＢＵＳに供給されるアクセス要求アドレスＢＧＮ（１０、５８；１６進数）は、メモリブロックＭＢの先頭アドレスと異なる。このため、並べ替え判定部ＪＤＧは、マスタコントローラＭＳＴからのリードアクセス要求ＲＤに応答して、並び替えをするために並び替え信号ＥＸＣを活性化する。なお、ＳＤＲＡＭは、予めアクティブコマンドを受け、アクティブ状態（ページヒット状態）であるとする。
【００８０】
アドレス情報変換部ＡＩＣＮＶは、図３のステップＳ４４に示したように、アクセス開始アドレスＡＤをメモリブロックＭＢの先頭（００、２０）に設定する。メモリコントローラＭＣＮＴは、リードコマンドＲＤとともに、アドレス信号ＡＤ（００）、ＡＤ（２０）をＳＤＲＡＭに順次に出力する（図１１（ａ、ｂ））。メモリコントローラＭＣＮＴは、ＳＤＲＡＭから出力されるリードデータＤ０Ｌ、Ｄ０Ｈ、...、Ｄ７Ｌ、Ｄ７Ｈを順次に受ける（図１１（ｃ、ｄ））。
【００８１】
リードデータＤ０Ｌ、Ｄ０Ｈ、Ｄ１Ｌ、Ｄ１Ｈがリードデータ並び替え部ＲＤＥＸＣに供給される２クロックサイクルの間、リードホールド信号ＲＨＯＬＤは活性化される。このため、リードデータ並び替え部ＲＤＥＸＣは、１番目と２番目に受けたリードデータＤ０Ｌ、Ｄ０Ｈ、Ｄ１Ｌ、Ｄ１Ｈをリードバッファ回路（ＦＩＦＯ）に保持する。このように、リードバッファ回路（ＦＩＦＯ）は、アクセス要求アドレスＢＧＮを含むメモリブロックＭＢの先頭アドレスからアクセス要求アドレスＢＧＮの１つ前までに対応するＳＤＲＡＭからのリードデータを順次に保持する。
【００８２】
リードデータ並び替え部ＲＤＥＸＣのリード並べ替えセレクタＳＥＬ４は、リードデータＤ２Ｌ、Ｄ２ＨからＤ７Ｈ、Ｄ７Ｌまでを、リードセレクタＳＥＬ１を介してリードデータバッファＲＤＢＦ１に順次に出力する（図１１（ｅ））。リードデータ並び替え部ＲＤＥＸＣのリード並べ替えセレクタＳＥＬ４は、リードデータＤ７Ｈ、Ｄ７Ｌに続いて、リードバッファ回路（ＦＩＦＯ）に保持しているリードデータＤ０Ｌ、Ｄ０Ｈ、Ｄ１Ｌ、Ｄ１Ｈを、リードセレクタＳＥＬ１を介してリードデータバッファＲＤＢＦ１に順次に出力する（図１１（ｆ））。すなわち、図３のステップＳ５０に示したように、リードデータの並び替えが実施される。このように、リード並べ替えセレクタＳＥＬ４は、アクセス要求アドレスＢＧＮから、アクセス要求アドレスＢＧＮを含むメモリブロックＭＢの先頭アドレスの１つ前までに対応するＳＤＲＡＭからのリードデータを順次に選択して出力した後、リードバッファ回路（ＦＩＦＯ）に保持されているリードデータを順次に選択して出力する。
【００８３】
次に、アドレス情報変換部ＡＩＣＮＶは、アクセス要求アドレスＢＧＮ（５８）を受け、アクセス開始アドレスＡＤをメモリブロックＭＢの先頭（４０、６０）に設定する。この後、メモリコントローラＭＣＮＴからＳＤＲＡＭに２つのリードコマンドＲＤが供給され、ＳＤＲＡＭからリードデータＤ０Ｌ、Ｄ０Ｈ、...、Ｄ７Ｌ、Ｄ７Ｈが順次に出力される（図１１（ｇ、ｈ））。リードデータ並び替え部ＲＤＥＸＣは、１番目から３番目に受けたリードデータＤ０Ｌ、Ｄ０Ｈ、Ｄ１Ｌ、Ｄ１Ｈ、Ｄ２Ｌ、Ｄ２Ｈをリードバッファ回路（ＦＩＦＯ）に保持する。リードデータ並び替え部ＲＤＥＸＣは、リードデータＤ３Ｌ、Ｄ３ＨからＤ７Ｈ、Ｄ７ＬまでをリードデータバッファＲＤＢＦ１に順次に出力する（図１１（ｉ））。
【００８４】
リードバッファ回路（ＦＩＦＯ）に保持されるリードデータ量が多いとき、リードデータ並び替え部ＲＤＥＸＣは、最初にバスＢＵＳに出力すべきリードデータＤ３Ｌ、Ｄ３Ｈをリードデータ制御部ＲＤＣＮＴ１から遅く受ける。このとき、メモリコントローラＭＣＮＴは、ビジー信号ＢＳＹをバスＢＵＳに出力し、マスタコントローラＭＳＴにリードデータの受信を待たせる（図１１（ｊ））。リードデータ並び替え部ＲＤＥＸＣは、リードデータＤ７Ｈ、Ｄ７Ｌに続いて、リードバッファ回路（ＦＩＦＯ）に保持しているリードデータＤ０Ｌ、Ｄ０Ｈ、Ｄ１Ｌ、Ｄ１Ｈ、Ｄ２Ｌ、Ｄ２ＨをリードデータバッファＲＤＢＦ１に順次に出力する（図１１（ｋ））。図１０に示したリードアクセスにおいて、バスＢＵＳ上のリードレイテンシＲＬは、”１２”と”１３”である。バスＢＵＳ上のリードレイテンシＲＬは、マスタコントローラＭＳＴがリードアクセス要求ＲＤ（トランザクション）をメモリコントローラＭＣＮＴに出力してから最初のリードデータがバスＢＵＳに出力されるまでのクロックサイクル数である。
【００８５】
例えば、マスタコントローラＭＳＴは、次のリードアクセス要求（トランザクション）を、１７番目のクロック信号ＣＬＫに同期して供給できる。後述する図１２との比較により分かるように、リードデータを並び替える場合、マスタコントローラＭＳＴからメモリコントローラＭＣＮＴへのリードアクセス要求の頻度を向上できる。
【００８６】
以上により、アクセス要求アドレスＢＧＮがメモリブロックＭＢの先頭アドレスと異なるときにも、マスタコントローラＭＳＴからの各リードアクセス要求ＲＤに対応する５１２ビットのリードデータを２つのリードコマンドＲＤによりＳＤＲＡＭから読み出すことができる。これにより、ＳＤＲＡＭのデータバスＤＱの使用効率を向上できる。リードアクセスの途中にバスＢＵＳ上のデータ線が空く期間を最小限にできるため、バスＢＵＳ上のデータ線の使用効率を向上できる。この結果、ＳＤＲＡＭのアクセス効率を向上でき、システムＳＹＳの性能を向上できる。
【００８７】
図１２は、図１に示したＳＤＲＡＭにリードアクセスする別の例を示している。図８および図１１と同じ動作については、詳細な説明は省略する。メモリコントローラＭＣＮＴがアクセスするＳＤＲＡＭは、図８と同じである。マスタコントローラＭＳＴからメモリコントローラＭＣＮＴに供給されるアドレス情報ＡＤＩは、図１１と同じである。マスタコントローラＭＳＴからバスＢＵＳに供給されるアクセス要求アドレスＢＧＮ（１０、５８；１６進数）は、メモリブロックＭＢの先頭アドレスと異なる。但し、図１２では、図１に示したレジスタＲＥＧに高速モードＨＳが設定されており、並べ替え信号ＥＸＣは非活性化されている。このため、リードデータの並び替えは実施されない。ＳＤＲＡＭは、予めアクティブコマンドを受け、アクティブ状態（ページヒット状態）であるとする。
【００８８】
リードデータの並び替えを実施しないとき、メモリコントローラＭＣＮＴは、図９と同様に、１つのメモリブロックＭＢを、２つのアドレスＡＤ（１０）、（００）を用いて、２回に分けてアクセスする（図１２（ａ、ｂ））。あるいは、メモリコントローラＭＣＮＴは、１つのメモリブロックＭＢを、２つのアドレスＡＤ（５８）、（４０）を用いて、２回に分けてアクセスする（図１２（ｃ、ｄ））。
【００８９】
図中に網掛けで示したリードデータＤＱ０−３１は、マスタコントローラＭＳＴに転送すべきデータである。一方、９番目および１０番目のクロック信号ＣＬＫに同期してＳＤＲＡＭから出力されるリードデータＤ２Ｌ、Ｄ２Ｈ、Ｄ３Ｌ、Ｄ３Ｈは、このタイミングではマスタコントローラＭＳＴに転送する必要はない（図１２（ｅ））。このため、メモリコントローラＭＣＮＴは、リードデータＤ２Ｌ、Ｄ２Ｈ、Ｄ３Ｌ、Ｄ３Ｈを受け取らない（図１２（ｆ））。メモリコントローラＭＣＮＴは、リードデータをバスＢＵＳに出力できない期間、ビジー信号ＢＳＹを出力する。マスタコントローラＭＳＴは、ビジー信号ＢＳＹを受けている間、次のリードデータの受信を待つ（図１２（ｇ））。
【００９０】
リードデータ制御部ＲＤＣＮＴ１は、次のリードデータＤ４Ｌ、Ｄ４Ｈを、リードデータＤ１Ｌ、Ｄ２Ｈの受信から２クロックサイクル後に受け取る（図１２（ｈ））。これ以降も、アクセス要求アドレスＢＧＮがメモリブロックＭＢの途中にあるリードアクセスでは、リードデータは間欠的に読み出される。図１２に示したリードアクセスにおいて、バスＢＵＳ上のリードレイテンシＲＬは、”１０”と”１４”である。最初のリードアクセスのリードレイテンシＲＬは、図１１に示した最初のリードアクセスのリードレイテンシＲＬより”２”だけ少ない。このように、リードデータの並び替えをしない高速モードＨＳでは、マスタコントローラＭＳＴは、最初のリードデータを早く受信できる。換言すれば、最初のリードデータを早く受信する必要があるとき、メモリコントローラＭＣＮＴは高速モードＨＳに設定される。
【００９１】
例えば、マスタコントローラＭＳＴは、次のリードアクセス要求（トランザクション）を、２５番目のクロックサイクル以降でなければ供給できない。すなわち、リードデータを並び替えない場合、マスタコントローラＭＳＴからメモリコントローラＭＣＮＴへのリードアクセス要求の頻度が下がる。この結果、ＳＤＲＡＭのアクセス効率は低下する。
【００９２】
図１３は、図１に示したＳＤＲＡＭにリードアクセスする別の例を示している。図８および図１１と同じ動作については、詳細な説明は省略する。メモリコントローラＭＣＮＴがアクセスするＳＤＲＡＭは、図８と同じである。マスタコントローラＭＳＴからメモリコントローラＭＣＮＴに供給されるアドレス情報ＡＤＩは、アクセス要求アドレスＢＧＮ（００、４０）がメモリブロックＭＢの先頭を示すことを除き、図１０と同じである。ＳＤＲＡＭは、予めアクティブコマンドを受け、アクティブ状態（ページヒット状態）であるとする。
【００９３】
アクセス要求アドレスＢＧＮ（００、４０）がメモリブロックＭＢの先頭を示すため、図１３では、並べ替え判定部ＪＤＧは、リードデータの並び替えが不要であることを示す並び替え信号ＥＸＣ（論理０）を出力する。したがって、図８と同様に、メモリコントローラＭＣＮＴは、マスタコントローラＭＳＴからのリードアクセス要求ＲＤ毎に、２つのリードコマンドＲＤをＳＤＲＡＭに供給することで、リードデータをＳＤＲＡＭから読み出しできる。換言すれば、上述した図１０では、アクセス要求アドレスＢＧＮがメモリブロックＭＢの先頭アドレスと異なるときにも、最小のサイクル時間でＳＤＲＡＭにリードアクセスできる。
【００９４】
図１４は、図１に示したＳＤＲＡＭにライトアクセスする別の例を示している。図８と同じ動作については、詳細な説明は省略する。図１４では、メモリコントローラＭＣＮＴは、６４ビットのデータ端子ＤＱ０−６３を有するＳＤＲ（Single Data Rate）タイプのＳＤＲＡＭにアクセスする。ＳＤＲＡＭのバースト長ＢＬは、予め”４”に設定されている。マスタコントローラＭＳＴからメモリコントローラＭＣＮＴに供給されるアドレス情報ＡＤＩは、図８と同じである。すなわち、マスタコントローラＭＳＴからバスＢＵＳに供給されるアクセス要求アドレスＢＧＮ（１０、５８；１６進数）は、メモリブロックＭＢの先頭アドレスと異なる。ＳＤＲＡＭは、予めアクティブコマンドを受け、アクティブ状態（ページヒット状態）であるとする。
【００９５】
図８と同様に、アドレス情報変換部ＡＩＣＮＶは、アクセス開始アドレスＡＤを次のメモリブロックＭＢの先頭（２０）に設定する（図１４（ａ））。ライトデータ並び替え部ＷＤＥＸＣは、１番目と２番目に供給されるライトデータＤ０、Ｄ１をライトバッファ回路（ＦＩＦＯ）に保持し、他のライトデータＤ２からＤ７までをライトデータ制御部ＷＤＣＮＴ１に順次に出力する（図１４（ｂ））。ライトレイテンシＷＬは、図８と同じである。ライトデータ並び替え部ＷＤＥＸＣは、ライトデータＤ７に続いて、ライトバッファ回路（ＦＩＦＯ）に保持しているライトデータＤ０、Ｄ１をライトデータ制御部ＷＤＣＮＴ１に順次に出力する（図１４（ｃ））。すなわち、図３のステップＳ２６に示したように、ライトデータの並び替えが実施される。ＳＤＲタイプのＳＤＲＡＭにライトアクセスするときにも、ライトデータを並べ替えることで、データバスＤＱの使用効率およびバスＢＵＳ上のデータ線の使用効率を向上できる。
【００９６】
図１５は、図１に示したＳＤＲＡＭにライトアクセスする別の例を示している。図９および図１４と同じ動作については、詳細な説明は省略する。メモリコントローラＭＣＮＴがアクセスするＳＤＲＡＭは、図１４と同じである。マスタコントローラＭＳＴからメモリコントローラＭＣＮＴに供給されるアドレス情報ＡＤＩは、図１４と同じである。すなわち、マスタコントローラＭＳＴからバスＢＵＳに供給されるアクセス要求アドレスＢＧＮ（１０、５８；１６進数）は、メモリブロックＭＢの先頭アドレスと異なる。但し、図１５では、図１に示したレジスタＲＥＧに高速モードＨＳが設定されており、並べ替え信号ＥＸＣは非活性化されている。このため、ライトデータの並び替えは実施されない。ＳＤＲＡＭは、予めアクティブコマンドを受け、アクティブ状態（ページヒット状態）であるとする。
【００９７】
図１５に示したタイミングチャートは、クロック信号ＣＬＫの立ち上がりエッジのみに同期して６４ビットのライトデータがＳＤＲＡＭに書き込まれることを除き、図９と同じである。ライトレイテンシＷＬは、図９と同じである。すなわち、アクセス要求アドレスＢＧＮがメモリブロックＭＢの途中にあるとき、データマスク期間ＤＭが発生し、ビジー信号ＢＳＹの出力頻度が高くなる。これにより、ＳＤＲＡＭのデータバスＤＱの使用効率は低下し、バスＢＵＳ上のデータ線の使用効率は低下する。この結果、ＳＤＲＡＭのアクセス効率は低下し、システムＳＹＳの性能は低下する。一方、ライトレイテンシＷＬを少なくできるため、最初のライトデータをＳＤＲＡＭに早く書き込みできる。
【００９８】
図１６は、図１に示したＳＤＲＡＭにリードアクセスする別の例を示している。図１１および図１４と同じ動作については、詳細な説明は省略する。メモリコントローラＭＣＮＴがアクセスするＳＤＲＡＭは、図１４と同じである。マスタコントローラＭＳＴからメモリコントローラＭＣＮＴに供給されるアドレス情報ＡＤＩは、リード／ライト情報ＲＷがリードアクセス要求ＲＤであることを除き、図１４と同じである。すなわち、マスタコントローラＭＳＴからバスＢＵＳに供給されるアクセス要求アドレスＢＧＮ（１０、５８；１６進数）は、メモリブロックＭＢの途中にあり、リードデータは並び替えられる。ＳＤＲＡＭは、予めアクティブコマンドを受け、アクティブ状態（ページヒット状態）であるとする。
【００９９】
図１６に示したタイミングチャートは、クロック信号ＣＬＫの立ち上がりエッジのみに同期して６４ビットのリードデータがＳＤＲＡＭから読み出されることを除き、図１１と同じである。バスＢＵＳ上のリードレイテンシＲＬも、図１１と同じである。ＳＤＲタイプのＳＤＲＡＭにリードアクセスするときにも、リードデータを並べ替えることで、データバスＤＱの使用効率およびバスＢＵＳ上のデータ線の使用効率を向上できる。
【０１００】
図１７は、図１に示したＳＤＲＡＭにリードアクセスする別の例を示している。図１２および図１４と同じ動作については、詳細な説明は省略する。メモリコントローラＭＣＮＴがアクセスするＳＤＲＡＭは、図１４と同じである。マスタコントローラＭＳＴからメモリコントローラＭＣＮＴに供給されるアドレス情報ＡＤＩは、図１４と同じである。すなわち、マスタコントローラＭＳＴからバスＢＵＳに供給されるアクセス要求アドレスＢＧＮ（１０、５８；１６進数）は、メモリブロックＭＢの先頭アドレスと異なる。但し、図１７では、図１に示したレジスタＲＥＧに高速モードＨＳが設定されており、並べ替え信号ＥＸＣは非活性化されている。このため、リードデータの並び替えは実施されない。ＳＤＲＡＭは、予めアクティブコマンドを受け、アクティブ状態（ページヒット状態）であるとする。
【０１０１】
図１７に示したタイミングチャートは、クロック信号ＣＬＫの立ち上がりエッジのみに同期して６４ビットのリードデータがＳＤＲＡＭから読み出されることを除き、図１２と同じである。バスＢＵＳ上のリードレイテンシＲＬも、図１２と同じである。ＳＤＲタイプのＳＤＲＡＭにおいても、アクセス要求アドレスＢＧＮがメモリブロックＭＢの先頭アドレスと異なるとき、メモリコントローラＭＣＮＴを高速モードＨＳに設定することにより、最初のリードアクセスのリードレイテンシＲＬを少なくできる。
【０１０２】
以上、この実施形態では、アクセス要求アドレスＢＧＮがメモリブロックＭＢの先頭アドレスと異なるときにも、アクセス要求アドレスＢＧＮを含むメモリブロックＭＢを１回リードアクセスするだけで、アクセス要求アドレスＢＧＮに対応するリードデータを順にバスＢＵＳに出力できる。また、アクセス要求アドレスＢＧＮがメモリブロックＭＢの先頭アドレスと異なるときにも、アクセス要求アドレスＢＧＮを含むメモリブロックＭＢを１回ライトアクセスするだけで、アクセス要求アドレスＢＧＮに対応して順次に受けるライトデータをＳＤＲＡＭに書き込みできる。これにより、ＳＤＲＡＭに供給するリードコマンドＲＤおよびライトコマンドＷＲの数を減らすことができ、半導体メモリのアクセス効率を向上できる。
【０１０３】
ライトアクセスおよびリードアクセスにおけるＳＤＲＡＭのデータバスＤＱの使用頻度を下げることができる。すなわち、ＳＤＲＡＭのデータバスＤＱの使用効率を向上できる。さらに、メモリコントローラＭＣＮＴからマスタコントローラＭＳＴへのビジー信号ＢＳＹの出力頻度を低くできる。これにより、ライトアクセス中にバスＢＵＳ上のデータ線の使用頻度を下げることができる。リードアクセス中にＢＵＳ上のデータ線にリードデータが出力されない無駄なクロックサイクルを減らすことができる。この結果、バスの使用効率を向上できるため、ＳＤＲＡＭのアクセス効率を向上でき、システムＳＹＳの性能を向上できる。
【０１０４】
高速モードＨＳが設定されているときに、データの並び替えを強制的に禁止することで、リードレイテンシＲＬまたはライトレイテンシＷＬを優先して、ＳＤＲＡＭにリードアクセスまたはライトアクセスできる。
【０１０５】
図１８は、別の実施形態におけるシステムＳＹＳの例を示している。図１と同じ要素については、詳細な説明は省略する。なお、半導体メモリの一例としてＳＤＲＡＭが採用されているが、半導体メモリは、ラップバースト転送機能を有する他の半導体メモリ（ＳＲＡＭや強誘電体メモリなど）でもよい。
【０１０６】
システムＳＹＳは、バスＢＵＳに接続された２つのマスタコントローラＭＳＴ１、ＭＳＴ２を有している。バスＢＵＳを介してメモリコントローラＭＣＮＴに供給されるアドレス情報ＡＤＩは、アクセス要求（トランザクション）を発行するマスタコントローラＭＳＴ１−２を示す情報を含んでいる。メモリコントローラＭＣＮＴは、マスタコントローラＭＳＴ１、ＭＣＴ２毎に高速モードＨＳ１、ＨＳ２を保持するレジスタＲＥＧを有している。並べ替え判定部ＪＤＧは、アドレス情報ＡＤＩにマスタコントローラＭＳＴ１のＩＤが含まれるとき、高速モードＨＳ１に応じて並び替え信号ＥＸＣを出力する。並べ替え判定部ＪＤＧは、アドレス情報ＡＤＩにマスタコントローラＭＳＴ２のＩＤが含まれるとき、高速モードＨＳ２に応じて並び替え信号ＥＸＣを出力する。システムＳＹＳのその他の構成は、図１と同じである。
【０１０７】
なお、高速モードＨＳ１−２の情報は、レジスタＲＥＧに設定するのではなく、バスＢＵＳから並べ替え判定部ＪＤＧに直接供給してもよい。さらに、並べ替え判定部ＪＤＧは、アクセスされるメモリ領域に応じて高速モードＨＳ１−２を識別してもよい。このとき、データを早く読み出す必要があるメモリ領域がアクセスされるとき、並べ替えを禁止するために並び替え信号ＥＸＣが非活性化される。
【０１０８】
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。さらに、システムＳＹＳが複数のマスタコントローラＭＳＴ１−２を有するときにも、マスタコントローラＭＳＴ１−２毎に高速モードＨＳ１−２を判定し、ＳＤＲＡＭにアクセスできる。
【０１０９】
図１９は、別の実施形態におけるシステムＳＹＳの例を示している。図１と同じ要素については、詳細な説明は省略する。なお、半導体メモリの一例としてＳＤＲＡＭが採用されているが、半導体メモリは、ラップバースト転送機能を有する他の半導体メモリ（ＳＲＡＭや強誘電体メモリなど）でもよい。
【０１１０】
システムＳＹＳは、バスＢＵＳに接続された２つのマスタコントローラＭＳＴ１、ＭＳＴ２を有している。マスタコントローラＭＳＴ１、ＭＳＴ２は、メモリコントローラＭＣＮＴの独立のポートにアドレス情報ＡＤＩ１、ＡＤＩ２をそれぞれ出力する。メモリコントローラＭＣＮＴは、図中に破線で囲ったアドレス情報バッファＡＩＢＦ１、アドレス情報変換部ＡＩＣＮＶ、アドレスセレクタＳＥＬ３、アドレス情報制御部ＡＩＣＮＴ１、並べ替え判定部ＪＤＧおよびレジスタＲＥＧを、マスタコントローラＭＳＴ１−２毎に有している。これにより、高速モードＨＳを、マスタコントローラＭＳＴ１−２毎に設定できる。
【０１１１】
なお、高速モードＨＳの情報は、レジスタＲＥＧに設定するのではなく、アドレス情報ＡＤＩ１、ＡＤＩ２に含めてバスＢＵＳから並べ替え判定部ＪＤＧに直接供給してもよい。さらに、並べ替え判定部ＪＤＧは、アクセスされるメモリ領域に応じて高速モードＨＳを識別してもよい。このとき、データを早く読み出す必要があるメモリ領域がアクセスされるとき、並べ替えを禁止するために並び替え信号ＥＸＣが非活性化される。以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。
【０１１２】
なお、上述した実施形態では、並べ替え判定部ＪＤＧは、高速モードＨＳの情報に応じて、データの並び替えおよびアドレスの変更の要否を決定する例について述べた。しかし、例えば、並べ替え判定部ＪＤＧは、高速モードＨＳの情報を受けることなく、アドレス情報ＡＤＩ、レジスタＲＥＧからのバス幅ＢＷおよびバースト長ＢＬに応じて、データの並び替えおよびアドレスの変更の要否を決定してもよい。
【０１１３】
図１８に示した実施形態では、複数の高速モードＨＳ１−２の情報に応じて、複数のマスタコントローラＭＳＴ１−２毎にデータの並び替えおよびアドレスの変更の要否を決定する例について述べた。図１９に示した実施形態では、マスタコントローラＭＳＴ１−２毎に供給される複数のアドレス情報ＡＤＩ１−２に応じて、複数のマスタコントローラＭＳＴ１−２毎にデータの並び替えおよびアドレスの変更の要否を決定する例について述べた。しかし、例えば、メモリコントローラＭＣＮＴは、マスタコントローラＭＳＴ１−２に固有のアクセスパターンを検出し、検出結果に基づいてデータの並び替えおよびアドレスの変更の要否を決定してもよい。あるいは、マスタコントローラＭＳＴ１−２毎にアクセスされる領域が異なるとき、アクセスアドレス（例えば、アクセス要求アドレスＢＧＮ）に基づいてデータの並び替えおよびアドレスの変更の要否を決定してもよい。
【０１１４】
上述した実施形態に関して、さらに以下の付記を開示する。
（付記１）
半導体メモリのアクセス単位である少なくとも１つのメモリブロックをラップアクセスするためのアクセス要求アドレスが、前記メモリブロックの先頭アドレスと異なるときに並べ替え信号を活性化する並べ替え判定部と、
前記並べ替え信号が活性化されたときに、前記メモリブロックの先頭アドレスをアクセス開始アドレスに設定するアドレス変換部と、
前記並べ替え信号が活性化されたときに、前記アクセス開始アドレスに応じて前記半導体メモリから順次に読み出されるリードデータを、前記アクセス要求アドレスに対応するリードデータを先頭にして並び替えるリードデータ並び替え部と、
並び替えられたリードデータを外部リードバスに出力するバス出力部と
を備えていることを特徴とするメモリコントローラ。
（付記２）
前記並べ替え判定部は、並び替えられたリードデータを前記外部リードバスに早く出力する高速モード中に、前記並べ替え信号の非活性化すること
を特徴とする付記１記載のメモリコントローラ。
（付記３）
前記並べ替え信号が活性化されたときに前記リードデータ並び替え部からのリードデータを選択し、前記並べ替え信号が非活性化されたときに前記半導体メモリからのリードデータを選択するリードセレクタを備えていること
を特徴とする付記１または付記２記載のメモリコントローラ。
（付記４）
前記アドレス変換部は、複数の前記メモリブロックが連続してリードアクセスされ、前記アクセス要求アドレスが前記先頭アドレスと異なるときに、前記アクセス要求アドレスを含むメモリブロックの先頭アドレスを前記アクセス開始アドレスに設定すること
を特徴とする付記１ないし付記３のいずれか１項記載のメモリコントローラ。
（付記５）
前記リードデータ並べ替え部は、
前記半導体メモリからのリードデータを保持するリードバッファ回路と、
前記半導体メモリからのリードデータまたは前記リードバッファ回路に保持されたリードデータを選択的に出力するリード並べ替えセレクタと
を備えていることを特徴とする付記４記載のメモリコントローラ。
（付記６）
前記リードバッファ回路は、前記アクセス要求アドレスを含むメモリブロックの前記先頭アドレスから前記アクセス要求アドレスの１つ前までに対応する前記半導体メモリからのリードデータを順次に保持し、
前記リード並べ替えセレクタは、前記アクセス要求アドレスから、前記アクセス要求アドレスを含むメモリブロックの先頭アドレスの１つ前までに対応する前記半導体メモリからのリードデータを順次に選択した後、前記リードバッファ回路に保持されているリードデータを順次に選択すること
を特徴とする付記５記載のメモリコントローラ。
（付記７）
前記並べ替え信号が活性化されたときに、前記アクセス要求アドレスに対応して外部ライトバスから順次に供給されるライトデータを、前記アクセス開始アドレスに対応するライトデータを先頭にして並び替えるライトデータ並び替え部と、
並び替えられたライトデータを前記半導体メモリに出力するメモリ出力部と
備えていること
を特徴とする付記１ないし付記６のいずれか１項記載のメモリコントローラ。
（付記８）
前記並べ替え判定部は、ライトデータを前記半導体メモリに早く書き込む高速モード中に、前記並び替え信号を非活性化すること
を特徴とする付記７記載のメモリコントローラ。
（付記９）
前記並べ替え信号が活性化されたときに前記ライトデータ並び替え部からのライトデータを選択し、前記並べ替え信号が非活性化されたときに前記外部ライトバスからのライトデータを選択するライトセレクタを備えていること
を特徴とする付記７または付記８記載のメモリコントローラ。
（付記１０）
前記アドレス変換部は、複数の前記メモリブロックが連続してライトアクセスされ、前記アクセス要求アドレスが前記先頭アドレスと異なるときに、前記アクセス要求アドレスを含むメモリブロックの次のメモリブロックの先頭アドレスを前記アクセス開始アドレスに設定すること
を特徴とする付記７ないし付記９のいずれか１項記載のメモリコントローラ。
（付記１１）
前記ライトデータ並べ替え部は、
前記外部ライトバスからのライトデータを保持可能なライトバッファ回路と、
前記外部ライトバスからのライトデータまたは前記ライトバッファ回路に保持されたライトデータを選択的に出力するライト並べ替えセレクタと
を備えていることを特徴とする付記１０記載のメモリコントローラ。
（付記１２）
前記ライトバッファ回路は、前記アクセス要求アドレスから、前記アクセス要求アドレスを含むメモリブロックの最終アドレスまでに対応するライトデータを順次に保持し、
前記ライト並べ替えセレクタは、前記アクセス要求アドレスを含むメモリブロックの次のメモリブロックの先頭アドレスから、前記アクセス要求アドレスの１つ前までに対応するライトデータを順次に選択した後、前記ライトバッファ回路に保持されているライトデータを順次に選択すること
を特徴とする付記１１記載のメモリコントローラ。
（付記１３）
前記並べ替え判定部は、前記半導体メモリのデータ端子のバス幅およびバースト長から前記メモリブロックの先頭アドレスを求め、前記アクセス要求アドレスが求めた先頭アドレスと異なるときに、前記並べ替え信号を活性化すること
を特徴とする付記１ないし付記１２のいずれか１項記載のメモリコントローラ。
（付記１４）
付記１ないし付記１３のいずれか１項記載のメモリコントローラと、
前記メモリコントローラを介して前記半導体メモリにアクセスするマスタコントローラと
を備えていることを特徴とするシステム。
（付記１５）
半導体メモリのアクセス単位である少なくとも１つのメモリブロックをラップアクセスするためのアクセス要求アドレスが、前記メモリブロックの先頭アドレスと異なるときに、前記メモリブロックの先頭アドレスをアクセス開始アドレスに設定し、
前記アクセス開始アドレスに応じて前記半導体メモリから順次に読み出されるリードデータを、前記アクセス要求アドレスに対応するリードデータを先頭にして並び替え、
並び替えたリードデータを外部リードバスに出力すること
を特徴とする半導体メモリのアクセス制御方法。
（付記１６）
複数の前記メモリブロックが連続してリードアクセスされ、前記アクセス要求アドレスが前記先頭アドレスと異なるときに、前記アクセス要求アドレスを含むメモリブロックの先頭アドレスを前記アクセス開始アドレスに設定すること
を特徴とする付記１５記載の半導体メモリのアクセス制御方法。
（付記１７）
前記アクセス要求アドレスに対応して順次に受けるライトデータを、前記アクセス開始アドレスに対応するライトデータを先頭にして並び替え、
並び替えたデータを前記半導体メモリに出力すること
を特徴とする付記１５または付記１６記載の半導体メモリのアクセス制御方法。
（付記１８）
複数の前記メモリブロックが連続してライトアクセスされ、前記アクセス要求アドレスが前記先頭アドレスと異なるときに、前記アクセス要求アドレスを含むメモリブロックの次のメモリブロックの先頭アドレスを前記アクセス開始アドレスに設定すること
を特徴とする付記１７記載の半導体メモリのアクセス制御方法。
【０１１５】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１１６】
ＡＤＩ、ＡＤＩ１−２‥並び替え信号ＥＸＣアドレス情報；ＡＩＢＦ１−２‥アドレス情報バッファ；ＡＩＣＮＴ１−２‥アドレス情報制御部；ＡＩＣＮＶ‥アドレス情報変換部；ＢＧＮ‥アクセス要求アドレス；ＢＬ‥バースト長；ＢＵＳ‥バス；ＢＷ‥バス幅；ＣＮＴ１−２‥制御部；ＤＳＩＺＥ‥データ転送サイズ；ＦＩＦＯ１−２‥バッファ部；ＨＳ、ＨＳ１−２‥高速モード；Ｉ／Ｏ‥入出力インタフェース；ＪＤＧ‥並べ替え判定部；ＬＳＴ‥最終アドレス；ＭＢ‥メモリブロック；ＭＣＮＴ‥メモリコントローラ；ＭＳＴ‥マスタコントローラ；ＰＥＲＩ‥周辺回路；ＰＨＪＤＧ‥ページヒット判定部；ＲＤＢＦ１−２‥リードデータバッファ；ＲＤＣＮＴ１−２‥リードデータ制御部；ＲＤＥＸＣ‥リードデータ並び替え部；ＲＤＴ‥リードデータ；ＲＥＧ‥レジスタ；ＳＥＬ１‥リードセレクタ；ＳＥＬ２‥ライトセレクタ；ＳＥＬ３‥アドレスセレクタ；ＳＥＬ４‥リード並び替えセレクタ；ＳＥＬ５‥ライト並び替えセレクタ；ＳＹＳ‥システム；ＴＡＤＪ‥タイミング調整部；ＷＤＢＦ１−２‥ライトデータバッファ；ＷＤＣＮＴ１−２‥ライトデータ制御部；ＷＤＥＸＣ‥ライトデータ並び替え部；ＷＤＴ‥ライトデータ
【図１】
2010277216.tif 000003
【図２】
2010277216.tif 000004
【図３】
2010277216.tif 000005
【図４】
2010277216.tif 000006
【図５】
2010277216.tif 000007
【図６】
2010277216.tif 000008
【図７】
2010277216.tif 000009
【図８】
2010277216.tif 000010
【図９】
2010277216.tif 000011
【図１０】
2010277216.tif 000012
【図１１】
2010277216.tif 000013
【図１２】
2010277216.tif 000014
【図１３】
2010277216.tif 000015
【図１４】
2010277216.tif 000016
【図１５】
2010277216.tif 000017
【図１６】
2010277216.tif 000018
【図１７】
2010277216.tif 000019
【図１８】
2010277216.tif 000020
【図１９】
2010277216.tif 000021