(57)【要約】【課題】  複数のバンクのプリチャージ動作を効率的に実行し、半導体メモリのアクセス効率を向上する。【解決手段】  メモリコントローラは、アクセスアドレスを含むアクセス要求を順次に保持する。半導体メモリは、複数のページを各々有する複数のバンクで構成される。メモリコントローラは、保持しているアクセスアドレスの各々に対応するバンクのページヒット／ページミスを判定する。また、メモリコントローラは、連続するアクセスアドレスを解析することによりアクセス効率が向上すると判定したときに、全てのバンクのプリチャージ動作を実行するオールバンクプリチャージコマンドを出力する。１回のオールバンクプリチャージコマンドにより、複数のバンクをプリチャージできるため、コマンドを挿入する空きサイクルが少ない場合にもバンクの状態に応じて、コマンドを効率的に半導体メモリに供給できる。【選択図】    図１
2008210088.tif 000002
【特許請求の範囲】
【請求項１】
複数のページを各々有する複数のバンクで構成される半導体メモリをアクセスするメモリコントローラであって、
アクセスするメモリセルを示すアクセスアドレスを含み、システムコントローラから供給されるアクセス要求を順次に保持する要求保持部と、
前記要求保持部に保持された複数のアクセスアドレスを受け、前記各アクセスアドレスに対応するバンクのページヒット／ページミスを判定するとともに、前記複数のアクセスアドレスを解析することによりアクセス効率が向上すると判定したときに、全てのバンクのプリチャージ動作を実行するオールバンクプリチャージコマンドを出力するアドレス解析部とを備えていることを特徴とするメモリコントローラ。
【請求項２】
請求項１記載のメモリコントローラにおいて、
前記アドレス解析部は、前記要求保持部に保持された複数のアクセスアドレスのうち先頭のアクセスアドレスに対応するバンクのページがページミスのとき、２番目以降の複数のアクセスアドレスに対応する各バンクのページヒット／ページミスに応じて、オールバンクプリチャージコマンドを出力するか否かを判定することを特徴とするメモリコントローラ。
【請求項３】
請求項２記載のメモリコントローラにおいて、
前記アドレス解析部は、２番目以降の複数のアクセスアドレス毎にオールバンクプリチャージコマンドを出力するときに、アクセスに必要なサイクルが減るか否かを示すスコアを求め、前記スコアはサイクルが減るときに相対的に大きく、前記スコアの合計が予め設定された基準値を超える場合にオールバンクプリチャージコマンドを出力することを特徴とするメモリコントローラ。
【請求項４】
請求項３記載のメモリコントローラにおいて、
前記バンクの状態に対応する前記スコアをプログラム可能に記憶するスコア記憶部を備え、
前記アドレス解析部は、前記スコア記憶部に記憶されている前記スコアを参照することで、前記スコアの合計と前記基準値とを比較することを特徴とするメモリコントローラ。
【請求項５】
請求項２記載のメモリコントローラにおいて、
前記アドレス解析部は、オールバンクプリチャージコマンドを、先頭のアクセスアドレスに対応するバンクのアクティブコマンドの前に出力することを特徴とするメモリコントローラ。
【請求項６】
請求項１記載のメモリコントローラにおいて、
前記アドレス解析部は、オールバンクプリチャージコマンドを出力した後、前記各アクセスアドレスに対応するアクティブコマンドとリードまたはライトコマンドとの間にコマンドを挿入可能な空きサイクルが存在するときに、２番目以降の複数のアクセスアドレスに対応するバンクの少なくともいずれかをアクティブにするためにアクティブコマンドを前記空きサイクルに対応して出力することを特徴とするメモリコントローラ。
【請求項７】
複数のページを各々有する複数のバンクで構成される半導体メモリのアクセス制御方法であって、
アクセスするメモリセルを示すアクセスアドレスを含み、システムコントローラから供給されるアクセス要求を順次に保持し、
保持している複数のアクセスアドレスの各々に対応するバンクのページヒット／ページミスを判定し、
前記複数のアクセスアドレスを解析することによりアクセス効率が向上すると判定したときに、全てのバンクのプリチャージ動作を実行するオールバンクプリチャージコマンドを出力することを特徴とすることを特徴とする半導体メモリのアクセス制御方法。
【請求項８】
請求項７記載の半導体メモリのアクセス制御方法において、
保持している複数のアクセスアドレスのうち先頭のアクセスアドレスに対応するバンクのページがページミスのとき、２番目以降の複数のアクセスアドレスに対応する各バンクのページヒット／ページミスに応じて、オールバンクプリチャージコマンドを出力するか否かを判定することを特徴とする半導体メモリのアクセス制御方法。
【請求項９】
請求項８記載の半導体メモリのアクセス制御方法において、
２番目以降の複数のアクセスアドレス毎にオールバンクプリチャージコマンドを出力するときに、アクセスに必要なサイクルが減るか否かを示すスコアを求め、前記スコアはサイクルが減るときに相対的に大きく、
前記スコアの合計が予め設定された基準値を超える場合にオールバンクプリチャージコマンドを出力することを特徴とする半導体メモリのアクセス制御方法。
【請求項１０】
複数のページを各々有する複数のバンクで構成される半導体メモリと、前記半導体メモリをアクセスするためのアクセス要求を出力する少なくとも１つのシステムコントローラと、前記アクセス要求を前記半導体メモリに出力するメモリコントローラとを備えたシステムであって、
前記メモリコントローラは、
アクセスするメモリセルを示すアクセスアドレスを含み、前記システムコントローラから供給されるアクセス要求を順次に保持する要求保持部と、
前記要求保持部に保持された複数のアクセスアドレスを受け、前記各アクセスアドレスに対応するバンクのページヒット／ページミスを判定するとともに、前記複数のアクセスアドレスを解析することによりアクセス効率が向上すると判定したときに、全てのバンクのプリチャージ動作を実行するオールバンクプリチャージコマンドを出力するアドレス解析部とを備えていることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリのアクセスを制御するメモリコントローラおよびシステムに関する。
【背景技術】
【０００２】
ＳＤＲＡＭ等の半導体メモリは、アクセス効率を向上するために独立に動作可能な複数のバンクを持つ場合が多い。また、この種の半導体メモリでは、メモリセルをアクセスするために、アクティブコマンドと、リードまたはライトコマンドと、プリチャージコマンドが必要である。アクティブコマンドは、ワード線を選択し、選択されたワード線に接続されたメモリセルに保持されているデータをセンスアンプにラッチするコマンドである。リードコマンドは、センスアンプにラッチされているデータを読み出すコマンドである。ライトコマンドは、メモリセルにデータを書き込むために、センスアンプにラッチされているデータを書き換えるコマンドである。プリチャージコマンドは、メモリセルをセンスアンプに接続するビット線を所定の電圧にリセットするコマンドである。
【０００３】
一般に、センスアンプに一度にラッチされるデータの単位は、ページと称されている。メモリセルが１ビットのデータを記憶する場合、１ページのビット数は、１つのワード線に接続されたメモリセルの数に等しい。センスアンプにラッチされているデータを読み出し、あるいは書き換える場合、リードコマンドまたはライトコマンドをメモリに供給するだけでよい。これに対して、センスアンプにラッチされていないデータを読み出し、あるいは書き換える場合、リードコマンドまたはライトコマンドの前にアクティブコマンドを供給する必要がある。センスアンプが別のページのデータをラッチしている場合、アクティブコマンドの前にさらにプリチャージコマンドを供給する必要がある。
【０００４】
リードコマンドまたはライトコマンドだけで、データが入出力可能な状態は、ページヒットと称される。これに対して、リードコマンドまたはライトコマンドの前にアクティブコマンドが必要な状態は、ページミスと称される。半導体メモリが複数のバンクを有する場合、ページヒットおよびページミスは、バンク毎に判定される。
【０００５】
従来、アクセス時間を短縮するために、あるバンクのページミスが判明したときに、そのバンクのプリチャージ動作を、別のバンクのリード動作またはライト動作の後に実行する手法が提案されている（例えば、特許文献１参照）。また、アクセス要求に応答してあるバンクにアクティブコマンドおよびリードコマンドを供給するときに、次のアクセス要求に対応するバンクがページミスの場合、ページミスのバンクへのプリチャージコマンドを、リードコマンドの前に供給する手法が提案されている（例えば、特許文献２参照）。
【特許文献１】特開平９−２３７４９０号公報
【特許文献２】特開２００２−３４２１５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１の手法では、ページミスのバンクでは、アクセス要求からアクセスを開始するまでの時間が長くなる。したがって、複数のバンクで構成されるメモリ全体では、アクセス効率は向上しない。特許文献２の手法では、アクティブコマンドとリードコマンドの間へのプリチャージコマンドの挿入は、次にアクセスされるバンクがページミスであり、クロックサイクルに空きがある場合に常に行われる。換言すれば、３番目以降にアクセスされる複数のバンクの状態（ページヒットまたはページミス）は、プリチャージコマンドの挿入の判定に使用されない。このため、プリチャージコマンドは、バンク毎に１つずつ
挿入する必要があり、クロックサイクルに空きがない場合には挿入できない。この結果、アクセス効率を十分に向上できない場合がある。
【０００７】
本発明の目的は、複数のバンクのプリチャージ動作を効率的に実行し、半導体メモリのアクセス効率を向上することである。
【課題を解決するための手段】
【０００８】
本発明の一形態では、半導体メモリをアクセスするメモリコントローラは、アクセスするメモリセルを示すアクセスアドレスを含み、システムコントローラから供給されるアクセス要求を順次に保持する。半導体メモリは、複数のページを各々有する複数のバンクで構成される。メモリコントローラは、保持している複数のアクセスアドレスの各々に対応するバンクのページヒット／ページミスを判定する。また、メモリコントローラは、複数のアクセスアドレスを解析することによりアクセス効率が向上すると判定したときに、全てのバンクのプリチャージ動作を実行するオールバンクプリチャージコマンドを出力する。連続して供給される複数のアクセス要求に基づいてオールバンクプリチャージコマンドを出力するか否かが判定されるため、バンクの状態（ページヒット／ページミス）に応じて、コマンドを効率的に半導体メモリに供給できる。また、１回のオールバンクプリチャージコマンドにより、複数のバンクをプリチャージできるため、コマンドを挿入する空きサイクルが少ない場合にも全てのバンクをプリチャージでき、アクセス効率を向上できる。
【０００９】
例えば、オールバンクプリチャージコマンドは、保持している複数のアクセスアドレスのうち先頭のアクセスアドレスに対応するバンクのページがページミスのとき、２番目以降の複数のアクセスアドレスに対応する各バンクのページヒット／ページミスに応じて出力される。換言すれば、オールバンクプリチャージコマンドは、先にアクセスされるバンクのプリチャージが必要なときに、２番目以降にアクセスされる各バンクの状態に応じて出力される。これにより、先にアクセスされるバンクがページミスのときにも、コマンドを効率的に半導体メモリに供給できる。
【００１０】
例えば、オールバンクプリチャージコマンドを出力するか否かは、２番目以降の複数のアクセスアドレス毎に付けられるスコアの合計に応じて判定される。ここで、スコアは、オールバンクプリチャージコマンドを出力するときにアクセスに必要なサイクルが減るか否かを示す。スコアはサイクルが減るときに相対的に大きい。オールバンクプリチャージコマンドは、スコアの合計が予め設定された基準値を超える場合に出力される。スコアにより生成するコマンドを管理することにより、オールバンクプリチャージコマンドを出力するか否かの制御論理を簡易にできる。また、スコアをプログラム可能に記憶することにより、スコアの重み付けを容易に変更でき、オールバンクプリチャージコマンドを出力するための判定基準を容易に変更できる。
【発明の効果】
【００１１】
本発明では、複数のバンクのプリチャージ動作を効率的に実行でき、半導体メモリのアクセス効率を向上できる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態を図面を用いて説明する。信号が伝達される信号線には、信号名と同じ符号を使用する。先頭に”／”の付いている信号は、負論理を示している。
【００１３】
図１は、本発明の第１の実施形態を示している。この実施形態では、システムＳＹＳは、システムバスＳＢＵＳに接続されたマスタコントローラＭＳＴ１、ＭＳＴ２（システムコントローラ）、周辺回路ＰＥＲＩ、入出力インタフェースＩ／Ｏおよびメモリコントロ
ーラＭＣＮＴと、メモリコントローラＭＣＮＴによりアクセスされるＳＤＲＡＭ（半導体メモリ）とを有している。マスタコントローラＭＳＴ１、ＭＳＴ２は、システムＳＹＳの全体の動作を制御するＣＰＵやＤＭＡＣ等である。周辺回路ＰＥＲＩは、例えば、ＭＰＥＧコントローラ等の画像制御回路である。入出力インタフェースＩ／Ｏは、例えば、ＵＳＢインタフェース回路である。ＳＤＲＡＭは、複数のページを各々有する４つのバンクＢＫＡ、ＢＫＢ、ＢＫＣ、ＢＫＤを有している。ＳＤＲＡＭの詳細は、図５に示す。
【００１４】
システムＳＹＳは、例えば、携帯電話やデジタルカメラなどの制御基板により構成される。例えば、マスタコントローラＭＳＴ１、ＭＳＴ２、周辺回路ＰＥＲＩ、入出力インタフェースＩ／ＯおよびメモリコントローラＭＣＮＴは、ＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）として１つのＬＳＩチップ上に形成され、制御基板に搭載される。ＳＤＲＡＭは、単体のチップとして制御基板に搭載される。なお、図に示した全ての構成をＳｏＣとして形成してもよい。なお、システムＳＹＳの構成は、図１に限定されるものではない。システムＳＹＳの最小構成は、マスタコントローラＭＳＴ１、メモリコントローラＭＣＮＴおよびＳＤＲＡＭ等の半導体メモリである。
【００１５】
マスタコントローラＭＳＴ１−２は、ＳＤＲＡＭからのデータＲＤＴを読み出すときにリードデータバッファＲＤＢＦ２をアクセスし、ＳＤＲＡＭにデータＷＤＴを書き込むときにライトデータバッファＷＤＢＦ１をアクセスする。ＳＤＲＡＭへのデータの入出力は、アドレス情報バッファＡＩＢＦ１にアドレス情報ＡＤＩを書き込むことで行われる。
【００１６】
メモリコントローラＭＣＮＴにおいて、リードデータ制御部ＲＤＣ１は、ＳＤＲＡＭから順次に読み出されるリードデータ（ＤＱ０−１５）をリードデータバッファＲＤＢＦ１に転送するためのインタフェース回路である。リードデータ制御部ＲＤＣ２は、リードデータバッファＲＤＢＦ１に保持されているリードデータの形式を、システムバスＳＢＵＳの仕様（タイミング仕様およびデータの転送数など）およびリード要求を出力したコントローラＭＳＴ１またはＭＳＴ２の仕様（データのビット数など）に合わせて変更し、リードデータバッファＲＤＢＦ２に転送するためのインタフェース回路である。
【００１７】
ライトデータバッファＷＤＢＦ１は、システムバスＳＢＵＳから供給されるライトデータを順次に保持する。ライトデータ制御部ＷＤＣ１は、ライトデータバッファＷＤＢＦ１に保持されているライトデータの形式をＳＤＲＡＭの仕様（データのビット数など）に合わせて変更しライトデータバッファＷＤＢＦ２に転送するためのインタフェース回路である。ライトデータ制御部ＷＤＣ２は、ライトデータバッファＷＤＢＦ２に保持されているライトデータを、ＳＤＲＡＭの仕様（タイミング仕様など）に合わせて出力するためのインタフェース回路である。なお、バッファＲＤＢＦ１−２、ＷＤＢＦ１−２は、例えば、ＦＩＦＯメモリである。
【００１８】
アドレス情報バッファＡＩＢＦ１は、システムバスＳＢＵＳから供給されるアドレス情報ＡＤＩを順次に保持する。アドレス情報ＡＤＩは、一般にトランザクションと称され、アクセスの開始アドレス、リード／ライト情報、データサイズ（ビット幅）、バースト長およびバーストタイプ等を含む。バースト長は、１回のアクセス要求で連続して入力または出力されるデータのワード数である。バーストタイプは、複数のメモリ領域をまたいでバーストアクセスを実行するか、１つのメモリ領域内で巡回的にバーストアクセスを実行するかを示す。
【００１９】
要求生成部ＲＥＱＧは、アドレス情報バッファＡＩＢＦ１に保持されているアドレス情報（トランザクション）を分割してＳＤＲＡＭのコマンド体系に従ったアドレス情報（アクセス要求）に変換し、変換したアドレス情報をアドレス情報バッファＡＩＢＦ２に転送する。アドレス情報バッファＡＩＢＦ２に保持されているアドレス情報は、連続する複数
のアクセス要求に対応するアクセスアドレスＡＤ（ＡＤ１、ＡＤ２、ＡＤ３、ＡＤ４、...）およびリード／ライト情報ＲＷを含む。アクセスアドレスＡＤ１−４は、アクセスするＳＤＲＡＭのバンクを示すバンクアドレスおよびページを示すページアドレスを含む。アドレス情報バッファＡＩＢＦ１−２および要求生成部ＲＥＱＧは、マスタコントローラＭＳＴ１またはＭＳＴ２からのアクセスアドレスＡＤ１−４を含むアクセス要求を順次に保持する要求保持部として機能する。
【００２０】
アドレス解析部ＡＤＡは、ミスヒット判定回路ＭＨＤ、オールバンクプリチャージ制御回路ＰＲＥＡＣおよびスコア記憶部ＳＣＲを有している。ミスヒット判定回路ＭＨＤは、アドレス情報バッファＡＩＢＦ２に保持されている連続する複数のアクセス要求に対応する４つのアクセスアドレスＡＤ１−４を受け、現在のバンクの状態に応じて各アクセスアドレスＡＤ１−４に対応するバンクのページヒット／ページミスを判定する。このため、ミスヒット判定回路ＭＨＤは、直前にＳＤＲＡＭに出力したアクセスアドレスにより現在の各バンクの状態を保持する保持部（図３のバンク状態部ＢＫＳＴ）を有する。ミスヒット判定回路ＭＨＤは、アクセスアドレスＡＤ１に応じてコマンド／アドレス生成部ＣＡＧにアクティブコマンドＡＣＴ０またはプリチャージコマンドＰＲＥ０を出力する。
【００２１】
オールバンクプリチャージ制御回路ＰＲＥＡＣは、ミスヒット判定回路ＭＨＤからのページヒット／ページミスの情報と、スコア記憶部ＳＣＲに記憶されているスコア情報とに応じて、全てのバンクのプリチャージ動作を実行するオールバンクプリチャージコマンドＰＲＥＡ０をコマンド／アドレス生成部ＣＡＧに出力するか否かを判定する。すなわち、アドレス解析部ＡＤＡは、複数のアクセスアドレスＡＤ１−４を解析することによりアクセス効率が向上すると判定したときに、オールバンクプリチャージコマンドＰＲＥＡ０を出力する。
【００２２】
スコア記憶部ＳＣＲは、例えば、システムＳＹＳのパワーオン時に所定のスコアが設定される書き換え可能（プログラム可能）なレジスタである。なお、スコア記憶部ＳＣＲは、ＳｏＣの製造工程でプログラムされるヒューズを有するヒューズ回路により構成してもよい。スコア記憶部ＳＣＲを書き換え可能に形成することにより、スコア記憶部ＳＣＲに記憶されるスコアを、ＳｏＣの設計後に変更できる。あるいは、スコア記憶部ＳＣＲは、ＳｏＣの設計時にパラメータに応じてスコアを変更可能な論理回路で構成されてもよい。この場合、仕様が異なる複数種のＳｏＣにアドレス解析部ＡＤＡを搭載する場合にも、わずかな論理変更によりスコア記憶部ＳＣＲをそれぞれのＳｏＣに対応して構成できる。オールバンクプリチャージコマンドＰＲＥＡを出力するか否かの判断基準は、後述する。
【００２３】
コマンド／アドレス生成部ＣＡＧは、アドレス情報バッファＡＩＢＦ２からのアクセスアドレスＡＤ１およびリード／ライト情報ＲＷと、アドレス解析部ＡＤＡからのコマンドＡＣＴ０、ＰＲＥ０、ＰＲＥＡ０に応じて、ＳＤＲＡＭにコマンドＣＭＤおよびアドレスＡ０−１３を出力する。この際、コマンド／アドレス生成部ＣＡＧは、タイミング調整部ＴＡＤＪからの制御信号に応じて、コマンドＣＭＤの供給間隔（クロックサイクル数）を調整する。なお、アドレスＡ０−１３のビット数は、１４ビットに限定されるものではなく、ＳＤＲＡＭのメモリ容量とデータＤＱのビット数に依存して変化する。ここで、コマンドＣＭＤとして、リードコマンドＲＤ、ライトコマンドＷＲ、アクティブコマンドＡＣＴ、プリチャージコマンドＰＲＥ、オールバンクプリチャージコマンドＰＲＥＡ等がある。
【００２４】
ＳＤＲＡＭは、クロックＣＬＫに同期して動作するＤＲＡＭであり、上述した以外に、クロックイネーブル端子ＣＫＥ、ロウアーデータマスク端子ＬＤＱＭおよびアッパーデータマスク端子ＵＤＱＭ等を有している。これ等端子の機能は、既知であり、本発明と直接関係しないため説明を省略する。
【００２５】
図２は、図１に示したアドレス情報バッファＡＩＢＦ１−２の詳細を示している。アドレス情報バッファＡＩＢＦ１は、各アドレス情報ＡＤＩ（開始アドレスＳＡＤ、リード／ライト情報ＲＷ、データサイズＤＳ、バースト長ＢＬおよびバーストタイプＢＴ）を保持する複数のメモリ領域を有し、ＦＩＦＯとして機能する。
【００２６】
アドレス情報バッファＡＩＢＦ２は、要求生成部ＲＥＱＧにより生成されたアクセス要求（アクセスアドレスＡＤおよびリード／ライト情報ＲＷ）を保持する複数のメモリ領域を有し、ＦＩＦＯとして機能する。ｎの値は、ＳＤＲＡＭに供給される順序を示している。ｎ＝１のアクセス要求は、最も早くＳＤＲＡＭに供給される。アクセスアドレスＡＤは、ＳＤＲＡＭのバンク（図４のＢＫＡ、ＢＫＢ、ＢＫＣ、ＢＫＤ）を示すバンクアドレス（Ａ１２−１３）、各バンク内のページ（ワード線）を示すロウアドレス（例えば、Ａ０−１１）および各バンク内のビット線群を示すコラムアドレス（例えば、Ａ０−９）で構成される。アドレス端子Ａ０−９は、ロウアドレスおよびコラムアドレスに共通である（アドレスマルチプレクス方式）。
【００２７】
この実施形態では、例えば、アドレス情報バッファＡＩＢＦ１に保持されているアクセス要求のうち、１番目から４番目（ｎ＝１、２、３、４）のアクセス要求に含まれるアクセスアドレスＡＤ（ＡＤ１−４）が、アドレス解析部ＡＤＡに供給される。なお、アドレス解析部ＡＤＡに供給されるアクセスアドレスＡＤは、バンクアドレスおよびロウアドレスのみでよい。
【００２８】
なお、図１に示したコマンド／アドレス生成部ＣＡＧは、アクセス要求によりアクセスされるバンクの状態がページヒットのとき、リード／ライト情報ＲＷに応じてリードコマンドまたはライトコマンドを出力する。コマンド／アドレス生成部ＣＡＧは、アクセス要求によりアクセスされるバンクの状態がページミスでアクティブ状態のとき、リード／ライト情報ＲＷに応じてプリチャージコマンドＰＲＥ（またはオールバンクプリチャージコマンドＰＲＥＡ）とアクティブコマンドＡＣＴとリードコマンドまたはライトコマンドとを出力する。また、コマンド／アドレス生成部ＣＡＧは、アクセス要求によりアクセスされるバンクの状態がページミスでアイドル状態（非アクティブ状態）のとき、リード／ライト情報ＲＷに応じて少なくともアクティブコマンドＡＣＴとリードコマンドまたはライトコマンドとを出力する。
【００２９】
図３は、図１に示したアドレス解析部ＡＤＡの詳細を示している。ミスヒット判定回路ＭＨＤは、バンク状態部ＢＫＳＴおよび判定部ＤＣ１を有している。バンク状態部ＢＫＳＴは、バンクＢＫＡ、ＢＫＢ、ＢＫＣ、ＢＫＤの現在の状態を保持し、状態信号ＳＴＡ、ＳＴＢ、ＳＴＣ、ＳＴＤとしてそれぞれ出力する。具体的には、バンク状態部ＢＫＳＴは、アクセスアドレスＡＤ１−４およびコマンドＡＣＴ０、ＰＲＥ０、ＰＲＥＡ０に応じて各バンクＢＫＡ、ＢＫＢ、ＢＫＣ、ＢＫＤのどのページがアクティブ状態であるかを記憶し、あるいは各バンクＢＫＡ、ＢＫＢ、ＢＫＣ、ＢＫＤがアイドル状態であることを記憶し、記憶している状態を状態信号ＳＴＡ、ＳＴＢ、ＳＴＣ、ＳＴＤとしてそれぞれ出力する。このため、状態信号ＳＴＡ−ＳＴＤは、アクティブ状態のページ（ロウアドレス）を示す情報を含んでいる。
【００３０】
判定部ＤＣ１は、アクセスアドレスＡＤ１−４に対応するバンクＢＫ（ＢＫＡ、ＢＫＢ、ＢＫＣ、ＢＫＤの少なくともいずれか）のページヒット／ページミスを、状態信号ＳＴＡ、ＳＴＢ、ＳＴＣ、ＳＴＤに応じて判定し、判定結果を状態信号ＳＴ１−４として出力する。状態信号ＳＴ１−４は、１番目から４番目（ｎ＝１、２、３、４）のアクセスアドレスＡＤ１−４に対応して出力される。また、判定部ＤＣ１は、判定結果とオールバンクプリチャージ制御回路ＰＲＥＡＣからのオールバンクプリチャージコマンドＰＲＥＡ０に
基づいてプリチャージコマンドＰＲＥ０およびアクティブコマンドＡＣＴ０を出力する。
【００３１】
オールバンクプリチャージ制御回路ＰＲＥＡＣは、判定部ＤＣ２、加算部ＡＤＤ、比較部ＣＯＭＰおよび基準設定部ＳＴＤを有している。判定部ＤＣ２は、スコア記憶部ＳＣＲに記憶されているスコア情報を参照して、状態信号ＳＴ１−４に応じたスコアＳ１−４をそれぞれ求める。スコアＳ１−４の詳細は、図７、図９、図１１、図１２および図１３で説明する。なお、先頭のアクセスアドレスＡＤ１に対応するスコアＳ１は、常に”０”に設定される。このため、例えば、判定部ＤＣ１は、状態信号ＳＴ１を生成しなくてもよく、判定部ＤＣ２は、スコアＳ１を生成しなくてもよい。
【００３２】
加算部ＡＤＤは、スコアＳ１−４を加算し、合計値Ｓｓｕｍとして出力する。比較部ＣＯＭＰは、合計値Ｓｓｕｍが基準設定部ＳＴＤに設定された基準値より大きい場合にオールバンクプリチャージコマンドＰＲＥＡ０を出力し、合計値Ｓｓｕｍが基準値以下の場合にオールバンクプリチャージコマンドＰＲＥＡ０を出力しない。この例では、基準値は”０”である。基準設定部ＳＴＤは、変更できない固定の基準値を記憶してもよく、基準値を書き換え可能（プログラム可能）に記憶してもよい。基準設定部ＳＴＤに固定の基準値（例えば”０”）を記憶する場合、基準判定部ＳＴＤは、例えば、比較部ＣＯＭＰ中の接地線により形成可能である。
【００３３】
図４は、図１に示したスコア記憶部ＳＣＲの概要を示している。スコア記憶部ＳＣＲは、状態信号ＳＴ１−４で示されるバンクＢＫの状態（図の縦方向に並ぶ３つの状態）と、オールバンクプリチャージコマンドＰＲＥＡ０の実行後のバンクＢＫの状態（図の横方向に並ぶ３つの状態）との組み合わせに応じたスコアを記憶している。状態信号ＳＴ１−４は、上述したように、現在のバンクＢＫの状態に対するアクセスアドレス（アクセス要求）のページヒット／ページミスを示す。バンクＢＫの状態は、ページヒットＰＨ、バンクアイドル状態でページミスＰＭ（ＢＩ）およびバンクアクティブ状態でページミスＰＭ（ＢＡ）のいずれかである。図中の斜線の組み合わせは存在しないため、スコアも存在しない。
【００３４】
例えば、ページヒット状態のバンクＢＫ（ＰＨ）にＰＲＥＡコマンドを実行するとき、バンクＢＫの状態はページミスＰＭ（ＢＩ）になる。このとき、ＡＣＴコマンドが余分に必要になり不利であるため、スコアは”−１”に設定される。アイドル状態のバンクＢＫ（ＰＭ（ＢＩ））にコマンドＰＲＥＡを実行するとき、バンクＢＫの状態は変わらないため、スコアは”０”に設定される。同様に、”ＰＨからＰＨ”、”ＰＭ（ＢＡ）からＰＭ（ＢＡ）”も状態が変わらないため、スコアは”０”に設定される。アクティブ状態のバンクＢＫ（ＰＭ（ＢＡ））にコマンドＰＲＥＡを実行するとき、バンクＢＫの状態はページミスＰＭ（ＢＩ）になる。このとき、ＰＲＥコマンドが不要になり有利であるため、スコアは”＋１”に設定される。この例では、スコアの増減は、コマンドに応答するアクティブ動作およびプリチャージ動作の回数の増減で定義される。
【００３５】
図５は、図１に示したＳＤＲＡＭの詳細を示している。ＳＤＲＡＭは、例えば、独立に動作可能な４つのバンクＢＫ（ＢＫＡ、ＢＫＢ、ＢＫＣ、ＢＫＤ）、アドレスバッファＡＤＢＦ、リフレッシュアドレスカウンタＲＥＦＣ、タイミングジェネレータＴＧＥＮおよびデータ入出力バッファＩ／ＯＢＵＦ等を有している。ＳＤＲＡＭは、コマンドＣＭＤとしてクロックＣＬＫ、クロックイネーブル信号ＣＫＥ、チップセレクト信号／ＣＳ、ロウアドレスストローブ信号／ＲＡＳ、コラムアドレスストローブ信号／ＣＡＳおよびライトイネーブル信号／ＷＥを受ける。各信号の機能は既知のため、説明は省略する。
【００３６】
各バンクＢＫは、メモリセルアレイＡＲＹ、ロウデコーダＲＤＥＣ、センスアンプＳＡ、コラムデコーダＣＤＥＣおよび図示しないプリチャージ回路を有している。メモリセル
アレイＡＲＹは、複数のダイナミックメモリセルＭＣ、図の横方向に並ぶメモリセルＭＣに接続されたワード線ＷＬ、図の縦方向に並ぶメモリセルＭＣに接続されたビット線ＢＬ、／ＢＬを有している。メモリセルＭＣは、データを電荷として保持するためのキャパシタと、このキャパシタに一端をビット線ＢＬ（または／ＢＬ）に接続するための転送トランジスタとを有している。転送トランジスタのゲートは、ワード線ＷＬに接続されている。
【００３７】
図６は、第１の実施形態のメモリコントローラＭＣＮＴの動作を示している。図では、特に、図１に示したアドレス解析部ＡＤＡおよびコマンド／アドレス生成部ＣＡＧの動作を示している。図中の太枠で示した菱形は、図１に示したタイミング調整部ＴＡＤＪからの情報に基づいて、コマンドを実行可能なクロックサイクルか否かを判定することを示している。換言すれば、菱形は、図８に示すタイミング仕様ｔＲＰ、ｔＲＣＤに基づいてＳＤＲＡＭを動作させる処理を含んでいる。
【００３８】
まず、ステップＳ１０において、アドレス解析部ＡＤＡは、アクセス要求がアドレス情報バッファＡＩＢＦ２に保持されているか否かを判定する。アクセス要求が保持されていない場合、ステップＳ１０が繰り返される。アクセス要求が保持されている場合、ステップＳ１２において、アドレス解析部ＡＤＡは、先頭のアクセス要求（ｎ＝１）によりアクセスされるバンクＢＫの状態がページヒットか否かを判定する。ページミスの場合、処理はステップＳ１４に移行する。ページヒットの場合、リードコマンドＲＤまたはライトコマンドＷＲを供給するのみでＳＤＲＡＭをアクセスできるため、処理はステップＳ３０に移行する。
【００３９】
ステップＳ１４において、先頭のアクセス要求（ｎ＝１）によりアクセスされるバンクＢＫがアクティブ状態か否かが判定される。アイドル状態（非アクティブ状態）のとき、アクティブコマンドＡＣＴを実行するために（センスアンプＳＡにデータをラッチするために）、処理はステップＳ２６に移行する。アクティブ状態の場合、ステップＳ１６において、アドレス解析部ＡＤＡは、先頭のアクセス要求に応答するアクセス動作を実行するために、プリチャージコマンドＰＲＥまたはオールバンクプリチャージコマンドＰＲＥＡのいずれを実行すべきかを判定する（プリチャージ判定）。プリチャージ判定は、図４に示したスコアに基づいて行われる。プリチャージ判定の詳細は、図７、図９、図１１−図１３で説明する。
【００４０】
プリチャージコマンドＰＲＥを実行すべきとき、ステップＳ１８において、アドレス解析部ＡＤＡは、コマンド／アドレス生成部ＣＡＧにプリチャージコマンドＰＲＥ０を出力する。コマンド／アドレス生成部ＣＡＧは、タイミング調整部ＴＡＤＪによりプリチャージコマンドＰＲＥを実行可能と判定したとき、ステップＳ２０においてプリチャージコマンドＰＲＥをＳＤＲＡＭに出力する。同様に、オールバンクプリチャージコマンドＰＲＥＡを実行すべきとき、ステップＳ２２において、アドレス解析部ＡＤＡは、コマンド／アドレス生成部ＣＡＧにオールバンクプリチャージコマンドＰＲＥＡ０を出力する。コマンド／アドレス生成部ＣＡＧは、タイミング調整部ＴＡＤＪにより、オールバンクプリチャージコマンドＰＲＥＡを実行可能と判定したとき、ステップＳ２４においてオールバンクプリチャージコマンドＰＲＥＡをＳＤＲＡＭに出力する。ステップＳ１８、Ｓ２２において、コマンドＰＲＥ、ＰＲＥＡが実行できない場合、処理はステップＳ１６に戻る。ＳＤＲＡＭは、コマンドＰＲＥ、ＰＲＥＡに応答してバンクＢＫのいずれかのプリチャージ動作または全てのバンクＢＫのプリチャージ動作を実行する。
【００４１】
コマンドＰＲＥ、ＰＲＥＡの出力後、処理はステップＳ２６に移行する。ステップＳ２６において、アドレス解析部ＡＤＡは、コマンド／アドレス生成部ＣＡＧにオールバンクプリチャージコマンドＰＲＥＡ０を出力する。コマンド／アドレス生成部ＣＡＧは、タイ
ミング調整部ＴＡＤＪからの情報に基づいて、アクティブコマンドＡＣＴを実行可能などうか判定する。実行可能なとき、コマンド／アドレス生成部ＣＡＧは、ステップＳ２８において、アクティブコマンドＡＣＴをＳＤＲＡＭに出力する。ＳＤＲＡＭは、コマンドＡＣＴに応答してアクセスアドレスＡＤ（バンクアドレスとロウアドレス）により示されるバンクＢＫのページをアクティブ状態にする。アクティブコマンドＡＣＴが実行不可能なとき、次のクロックサイクルで再びステップＳ２６の判定が実施される。
【００４２】
次に、ステップＳ３０において、コマンド／アドレス生成部ＣＡＧは、タイミング調整部ＴＡＤＪからの情報に基づいて、リードコマンドＲＤまたはライトコマンドＷＲを実行可能かどうか判定する。実行可能なとき、コマンド／アドレス生成部ＣＡＧは、ステップＳ３２において、リードコマンドＲＤまたはライトコマンドＷＲをＳＤＲＡＭに出力する。ＳＤＲＡＭは、コマンドＲＤ／ＷＲに応答してアクセスアドレスＡＤ（コラムアドレス）により示されるデータを入出力する。リードコマンドＲＤまたはライトコマンドＷＲが実行不可能なとき、次のクロックサイクルで再びステップＳ３０の判定が実施される。
【００４３】
図７は、図３に示したアドレス解析部ＡＤＡの動作の一例を示している。図中の四角枠は、各バンクＢＫＡ−ＢＫＤの状態を示している。四角枠内の太線は、ワード線ＷＬ（ページ）が活性化されていることを示す。太線の位置は、ワード線ＷＬの位置を示している。図中の上側は、オールバンクプリチャージコマンドＰＲＥＡを実行しない場合のバンクＢＫの状態の変化を示す。図中の下側は、オールバンクプリチャージコマンドＰＲＥＡを実行する場合のバンクＢＫの状態の変化を示す。
【００４４】
この例では、全てのバンクＢＫＡ−ＢＫＤがアクティブ状態ＢＡのときに、バンクＢＫＡ、ＢＫＢ、ＢＫＣ、ＢＫＤに対するアクセス要求が発生する。図３に示した判定回路ＤＣ１は、現在のバンクＢＫの状態とアクセスアドレス（ｎ＝１−４）とから、オールバンクプリチャージコマンドＰＲＥＡを実行しない場合のバンクＢＫのページヒット／ページミスを判定し、状態信号ＳＴ１−４として出力する。判定回路ＤＣ２は、状態信号ＳＴ１−４とスコア記憶部ＳＣＲに記憶された値（図４）とに応じて２番目から４番目のアクセス要求のスコアＳ２−４を求める。そして、スコアＳ２−Ｓ４の合計値Ｓｓｕｍに応じてオールバンクプリチャージコマンドＰＲＥＡを発生するか否かが判定される。この例では、合計値Ｓｓｕｍは、基準値”０”より大きい”＋３”であるため、コマンド／アドレス生成部ＣＡＧは、オールバンクプリチャージコマンドＰＲＥＡを出力する。ここで、合計値Ｓｓｕｍは、オールバンクプリチャージコマンドＰＲＥＡを出力することにより減少するクロックサイクル数に相当する。このため、合計値Ｓｓｕｍが負の値になる場合（例えば、図９）、オールバンクプリチャージコマンドＰＲＥＡを出力することにより、クロックサイクル数が増えて、不利になることを意味する。
【００４５】
図８は、図７に対応するメモリコントローラＭＣＮＴおよびＳＤＲＡＭの動作を示している。図中の仕様ｔＲＰは、プリチャージコマンドＰＲＥまたはＰＲＥＡからアクティブコマンドＡＣＴを供給するまでのクロックサイクルの最小数である。仕様ｔＲＣＤは、アクティブコマンドＡＣＴからリードコマンドＲＤまたは図示しないライトコマンドＷＲを供給するまでのクロックサイクルの最小数である。仕様ＣＬは、リードコマンドＲＤの供給からデータの出力が開始されるまでのクロックサイクル数である。図中の符号Ａ、Ｂ、Ｃ、Ｄは、バンクＢＫＡ、ＢＫＢ、ＢＫＣ、ＢＫＤをそれぞれ示している。
【００４６】
上述したアドレス解析部ＡＤＡの動作により、まずオールバンクプリチャージコマンドＰＲＥＡが発行され、この後、バンクＢＫＡのアクティブコマンドＡＣＴおよびリードコマンドＲＤと、バンクＢＫＢのアクティブコマンドＡＣＴおよびリードコマンドＲＤと、バンクＢＫＣのアクティブコマンドＡＣＴおよびリードコマンドＲＤと、バンクＢＫＤのアクティブコマンドＡＣＴおよびリードコマンドＲＤとが順次に発行され、各バンクＢＫ
からデータＤ０−Ｄ３が読み出される。これにより、アクセス効率を改善でき、所定数のクロックサイクル中のデータの入出力数であるデータ転送レートを向上できる。
【００４７】
これに対して、本発明前のメモリコントローラでは、複数のアクセスアドレスに基づいてオールバンクプリチャージコマンドＰＲＥＡを発行するか否かを判定するアドレス解析部ＡＤＡが存在しない。このため、プリチャージコマンドＰＲＥがバンクＢＫ毎に発行され、アクセス効率が悪く、データ転送レートが悪い。なお、ライトコマンドＷＲが供給された場合の動作（ライト動作）は、最初の書き込みデータＤ０がライトコマンドＷＲに同期して供給され、その後書き込みデータＤ１−３が順次供給されることを除き、リード動作と同じである。ライトコマンドＷＲは、リードコマンドＲＤと同じタイミングで供給される。
【００４８】
図９は、図３に示したアドレス解析部ＡＤＡの動作の別の例を示している。図中の表記は、図７と同じである。この例では、全てのバンクＢＫＡ−ＢＫＤがアクティブ状態ＢＡのときに、バンクＢＫＡ、ＢＫＢ、ＢＫＣ、ＢＫＤに対するアクセス要求が発生する。２番目から４番目のアクセスアドレス（ロウアドレス）は、アクティブ状態のアクセスアドレスと同じであるため、状態信号ＳＴ２−４は、ページヒットＰＨを示す。このため、スコアＳ２−４は、いずれも”−１”になり、合計値Ｓｓｕｍは、基準値”０”より小さい”−３”になる。このため、コマンド／アドレス生成部ＣＡＧは、オールバンクプリチャージコマンドＰＲＥＡを出力せず、１番目のアクセス要求に対応してバンクＢＫＡにプリチャージコマンドＰＲＥを出力する。すなわち、オールバンクプリチャージコマンドＰＲＥＡの出力によりアクセス効率が低下すると判定された場合に、プリチャージコマンドＰＲＥが出力される。これにより、２番目以降のアクセス要求に対応する動作において不要なプリチャージ動作が実行されることを防止でき、アクセス効率が低下することを防止できる。
【００４９】
図１０は、図９に対応するメモリコントローラＭＣＮＴおよびＳＤＲＡＭの動作を示している。この例では、上述したアドレス解析部ＡＤＡの動作により、まずバンクＢＫＡのプリチャージコマンドＰＲＥが発行され、この後、バンクＢＫＡのアクティブコマンドＡＣＴおよびリードコマンドＲＤが発行される。ページヒットのバンクＢＫＢ、ＢＫＣ、ＢＫＤは、リードコマンドＲＤのみを順次に受けてリード動作を順次実行する。この例では、アドレス解析部ＡＤＡが、オールバンクプリチャージコマンドＰＲＥＡを出力しない判定をすることにより、無駄なアクティブコマンドＡＣＴが発行されることを防止できる。
【００５０】
図１１は、図３に示したアドレス解析部ＡＤＡの動作の別の例を示している。図中の表記は、図７と同じである。この例では、全てのバンクＢＫＡ−ＢＫＤがアクティブ状態ＢＡのときに、バンクＢＫＡ、ＢＫＢ、ＢＫＣ、ＢＫＤに対するアクセス要求が発生する。２番目から４番目のアクセスアドレス（ロウアドレス）は、それぞれページヒットＰＨ、ページミスＰＭ（ＢＡ）、ページミスＰＭ（ＢＡ）を示す。スコアＳ２−４の合計値Ｓｓｕｍは、基準値”０”より大きい”＋１”になる。このため、コマンド／アドレス生成部ＣＡＧは、オールバンクプリチャージコマンドＰＲＥＡを出力する。
【００５１】
図１２は、図３に示したアドレス解析部ＡＤＡの動作の別の例を示している。図中の表記は、図７と同じである。この例では、全てのバンクＢＫＡ−ＢＫＤがアクティブ状態ＢＡのときに、バンクＢＫＡ、ＢＫＡ、ＢＫＣ、ＢＫＤに対するアクセス要求が発生する。２番目から４番目のアクセスアドレス（ロウアドレス）は、それぞれページヒットＰＨ、ページミスＰＭ（ＢＡ）、ページミスＰＭ（ＢＡ）を示す。ここで、２番目のアクセスアドレス（ロウアドレス）は、１番目のアクセスアドレスと同じため、オールバンクプリチャージコマンドＰＲＥＡが実行された後も、ページヒットＰＨになる。このため、スコアＳ２は”０”である。スコアＳ２−４の合計値Ｓｓｕｍは、基準値”０”より大きい”＋
２”になるため、オールバンクプリチャージコマンドＰＲＥＡが出力される。
【００５２】
図１３は、図３に示したアドレス解析部ＡＤＡの動作の別の例を示している。図中の表記は、図７と同じである。この例では、全てのバンクＢＫＡ−ＢＫＤがアクティブ状態ＢＡのときに、バンクＢＫＡ、ＢＫＢ、ＢＫＢ、ＢＫＢに対するアクセス要求が発生する。２番目から４番目のアクセスアドレス（ロウアドレス）は、それぞれページミスＰＭ（ＢＡ）、ページヒットＰＨ、ページミスＰＭ（ＢＡ）を示す。ここで、３番目のアクセスアドレス（ロウアドレス）は、２番目のアクセスアドレスと同じため、オールバンクプリチャージコマンドＰＲＥＡが実行された後も、ページヒットＰＨになる。また、４番目のアクセスアドレス（ロウアドレス）は、３番目のアクセスアドレスと異なるため、オールバンクプリチャージコマンドＰＲＥＡが実行された後も、ページミスＰＭ（ＢＡ）状態は変わらない。このため、スコアＳ３、Ｓ４はともに”０”である。スコアＳ２−４の合計値Ｓｓｕｍは、基準値”０”より大きい”＋１”になるため、オールバンクプリチャージコマンドＰＲＥＡが出力される。
【００５３】
以上、第１の実施形態では、アドレス解析部ＡＤＡにより、２番目から４番目のアクセス要求に基づいてオールバンクプリチャージコマンドＰＲＥＡを出力するか否かが判定されるため、バンクＢＫの状態（ページヒット／ページミス）に応じて、コマンドを効率的にＳＤＲＡＭに供給できる。１回のオールバンクプリチャージコマンドＰＲＥＡにより、全てのバンクＢＫをプリチャージできるため、コマンドを挿入する空きサイクルが少ない場合にもアクセス効率を向上できる。換言すれば、コマンドの供給に使用されるクロックサイクルを最小限にでき、ＳＤＲＡＭのデータ転送レートを向上できる。
【００５４】
オールバンクプリチャージコマンドＰＲＥＡは、先にアクセスされるバンクＢＫのプリチャージが必要なときに（＝ページミス）、２番目以降にアクセスされる各バンクＢＫの状態に応じて出力される。これにより、先にアクセスされるバンクがページヒットのときは、オールバンクプリチャージコマンドＰＲＥＡは出力されない。このため、先にアクセスされるバンクＢＫのリード動作またはライト動作を遅らせることなく、アクセス効率を向上できる。
【００５５】
オールバンクプリチャージコマンドＰＲＥＡを出力するか否かの判定をスコアＳ２−４の合計値Ｓｓｕｍに応じて行うことで、判定の制御論理を簡易にできる。また、スコアＳ２−４を記憶するスコア記憶部ＳＣＲをプログラム可能なレジスタまたはヒューズ回路で構成することにより、スコアＳ２−４の重み付けをシステムＳＹＳの仕様に合わせて容易に変えることができる。すなわち、オールバンクプリチャージコマンドＰＲＥＡを出力するための判定基準をシステムＳＹＳの仕様に応じて容易に変更できる。
【００５６】
オールバンクプリチャージコマンドＰＲＥＡの出力を決定したときに、オールバンクプリチャージコマンドＰＲＥＡは、先頭のアクセス要求に対応するアクティブコマンドＡＣＴの前に出力される。これにより、先頭のアクセス要求に対応するバンクのプリチャージ動作と２番目以降のアクセス要求に対応するバンクＢＫのプリチャージ動作を同時に実行でき、アクセス効率を向上できる。
【００５７】
オールバンクプリチャージコマンドＰＲＥＡの出力によりアクセス効率が低下すると判定された場合に、プリチャージコマンドＰＲＥを出力し、先頭のアクセス要求に対応するバンクＢＫのみをプリチャージする。これにより、２番目以降のアクセス要求に対応するバンクＢＫの少なくともいずれかがページヒット状態のときに、不要なプリチャージ動作が実行されることを防止でき、アクセス効率が低下することを防止できる。
【００５８】
図１４は、第２の実施形態におけるスコア記憶部ＳＣＲの概要を示している。スコア記
憶部ＳＣＲを除く構成は、第１の実施形態と同じである。第１の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【００５９】
スコア記憶部ＳＣＲは、アクティブ状態のバンクＢＫ（ＰＭ（ＢＡ））にコマンドＰＲＥＡを実行し、バンクＢＫの状態をページミスＰＭ（ＢＩ）にするとき、スコアは、第１の実施形態より多い”＋２”に設定される。すなわち、第１の実施形態に比べてスコアの重み付けが変更されている。比較部ＣＯＭＰで比較される基準値は”０”である。スコア記憶部ＳＣＲは、プログラム可能なレジスタあるいはプログラム可能なヒューズ回路で構成されているため、スコアの重み付けの変更をシステムＳＹＳの仕様に合わせて、システムＳＹＳ毎に容易に変更できる。また、スコア記憶部ＳＣＲをパラメータに応じてスコアを変更可能な論理回路で構成する場合にも、スコアの重み付けの変更をシステムＳＹＳの仕様に合わせて、システムＳＹＳ毎に容易に変更できる。
【００６０】
なお、スコア記憶部ＳＣＲに設定するスコアは、図４および図１４に示した以外の値でもよい。例えば、動作に必要なクロックサイクル数の増減に応じてスコアを設定してよい。具体的には、アクティブコマンドＡＣＴに応答してバンクＢＫがアクティブ状態になるクロックサイクル数を”１”、プリチャージコマンドＰＲＥ、ＰＲＥＡに応答してバンクＢＫがプリチャージ状態（アイドル状態）になるクロックサイクル数を”２”とする。この場合、スコアは、アクティブコマンドＡＣＴに応答する動作が減る場合に”＋１”に設定され、増える場合に”−１”に設定され、プリチャージコマンドＰＲＥ、ＰＲＥＡに応答する動作が減る場合に”＋２”に設定され、増える場合に”−２”に設定される。
【００６１】
以上、第２の実施形態においても、上述した第１の実施形態と同様の効果を得ることができる。さらに、この実施形態では、ＳＤＲＡＭの動作仕様、ＳＤＲＡＭに供給されるクロックＣＬＫの周波数あるいは、システムＳＹＳの仕様により、スコアの重み付けを変えることにより、アクセス効率の高い最適なシステムＳＹＳを構築できる。
【００６２】
図１５は、第３の実施形態におけるアドレス解析部ＡＤＡの詳細を示している。ミスヒット判定回路ＭＨＤを除く構成は、第１の実施形態と同じである。第１の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【００６３】
ミスヒット判定回路ＭＨＤは、先頭のアクセスアドレスＡＤ１に対応するアクティブコマンドＡＣＴ０１だけでなく、アクティブコマンドＡＣＴ０２−０４を出力する。アクティブコマンドＡＣＴ０２−０４は、２番目から４番目のアクセスアドレスＡＤ２−４がページミスのときに、コマンド／アドレス生成部ＣＡＧに対応するバンクＢＫのアクティブコマンドＡＣＴの出力を要求するために出力される。さらに、ミスヒット判定回路ＭＨＤのバンク状態部ＢＫＳＴは、判定部ＤＣ１からのアクティブコマンドＡＣＴ０１だけでなく、コマンド／アドレス生成部ＣＡＧが２番目から４番目のアクセスアドレスＡＤ２−４に対応してアクティブコマンドＡＣＴを出力したときに、そのアクティブコマンドＡＣＴに応答して、対応するバンクＢＫがアクティブ状態になったことを記憶する。
【００６４】
図１６は、第３の実施形態におけるメモリコントローラＭＣＮＴの動作の要部を示している。図では、特に、コマンド／アドレス生成部ＣＡＧの動作を示している。図１６は、図６のステップＳ３０以降の動作が第１の実施形態と相違している。ステップＳ３０までの動作は、第１の実施形態と同じである。図中の太枠で示した菱形は、図１に示したタイミング調整部ＴＡＤＪからの情報に基づいて、コマンドを実行可能なクロックサイクルか否かを判定することを示している。第１の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【００６５】
この実施形態では、ステップＳ３０において、リードコマンドＲＤまたはライトコマンドＷＲが実行不可能と判定されたとき、処理はステップＳ４０−Ｓ５６に移行する。ステップＳ４０では、コマンド／アドレス生成部ＣＡＧは、ミスヒット判定回路ＭＨＤから２番目のアクセス要求に対応するアクティブコマンドＡＣＴ０２を受けたときに、ステップＳ４２においてアクティブコマンドＡＣＴを出力可能か否か判定する。アクティブコマンドＡＣＴが出力可能なとき、ステップＳ４４において、２番目のアクセス要求に応答するアクティブコマンドＡＣＴを出力する。ステップＳ４０でアクティブコマンドＡＣＴ０２が出力されていないとき、処理はステップＳ４６に移行する。
【００６６】
ステップＳ４６、Ｓ４８、Ｓ５０では、３番目のアクセス要求に対応するアクティブコマンドＡＣＴ０３について、上述したステップＳ４０、Ｓ４２、Ｓ４４と同じ処理が実施される。同様に、ステップＳ５２、Ｓ５４、Ｓ５６では、４番目のアクセス要求に対応するアクティブコマンドＡＣＴ０４について、上述したステップＳ４０、Ｓ４２、Ｓ４４と同じ処理が実施される。
【００６７】
図１７は、第３の実施形態におけるメモリコントローラＭＣＮＴおよびＳＤＲＡＭの動作を示している。この例では、図１６に示した処理フローにより、アクティブコマンドＡＣＴとリードコマンドＲＤの間に、２番目から４番目のアクセス要求に応答するアクティブコマンドＡＣＴを挿入可能である。
【００６８】
以上、第３の実施形態においても、上述した第１の実施形態と同様の効果を得ることができる。さらに、この実施形態では、アドレス解析部ＡＤＡにより、２番目から４番目のアクセス要求に応答するアクティブコマンドＡＣＴを、アクティブコマンドＡＣＴとリードコマンドＲＤの間に挿入することで、アクセス効率をさらに向上できる。
【００６９】
なお、上述した実施形態では、本発明をクロックに同期して動作するＳＤＲＡＭに適用する例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、本発明を、クロック非同期のＤＲＡＭに適用してもよい。ＳＤＲＡＭおよびＤＲＡＭは、チップの形態でもよく、ＳｏＣに搭載されるマクロでもよい。
【００７０】
上述した実施形態では、比較部ＣＯＭＰで比較される基準値を”０”に設定する例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、クロックサイクル数が２以上減少するときにオールバンクプリチャージコマンドＰＲＥＡを出力する場合、基準値は”１”に設定される。この場合、合計値Ｓｓｕｍが”＋２”以上の場合に、オールバンクプリチャージコマンドＰＲＥＡが出力される。このように、基準値を変えることで、アドレス解析部ＡＤＡの判定基準を容易に変更できる。
【００７１】
上述した実施形態では、オールバンクプリチャージコマンドＰＲＥＡを出力するか否かを、２番目から４番目のアクセス要求に基づいて判定する例について述べた。あるいは、２番目以降のアクセス要求に対応するアクティブコマンドＡＣＴを先行して実行するか否かを、２番目から４番目のアクセス要求に基づいて判定する例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、アドレス解析部ＡＤＡでの判定は、４番目以降のアクセス要求について行ってもよい。この場合にも、スコア記憶部ＳＣＲの変更は不要である。
【００７２】
以上の実施形態において説明した発明を整理して、付記として開示する。
（付記１）
複数のページを各々有する複数のバンクで構成される半導体メモリをアクセスするメモリコントローラであって、
アクセスするメモリセルを示すアクセスアドレスを含み、システムコントローラから供給されるアクセス要求を順次に保持する要求保持部と、
前記要求保持部に保持された複数のアクセスアドレスを受け、前記各アクセスアドレスに対応するバンクのページヒット／ページミスを判定するとともに、前記複数のアクセスアドレスを解析することによりアクセス効率が向上すると判定したときに、全てのバンクのプリチャージ動作を実行するオールバンクプリチャージコマンドを出力するアドレス解析部とを備えていることを特徴とするメモリコントローラ。
（付記２）
付記１記載のメモリコントローラにおいて、
前記アドレス解析部は、前記要求保持部に保持された複数のアクセスアドレスのうち先頭のアクセスアドレスに対応するバンクのページがページミスのとき、２番目以降の複数のアクセスアドレスに対応する各バンクのページヒット／ページミスに応じて、オールバンクプリチャージコマンドを出力するか否かを判定することを特徴とするメモリコントローラ。
（付記３）
付記２記載のメモリコントローラにおいて、
前記アドレス解析部は、２番目以降の複数のアクセスアドレス毎にオールバンクプリチャージコマンドを出力するときに、アクセスに必要なサイクルが減るか否かを示すスコアを求め、前記スコアはサイクルが減るときに相対的に大きく、前記スコアの合計が予め設定された基準値を超える場合にオールバンクプリチャージコマンドを出力することを特徴とするメモリコントローラ。
（付記４）
付記３記載のメモリコントローラにおいて、
前記バンクの状態に対応する前記スコアをプログラム可能に記憶するスコア記憶部を備え、
前記アドレス解析部は、前記スコア記憶部に記憶されている前記スコアを参照することで、前記スコアの合計と前記基準値とを比較することを特徴とするメモリコントローラ。（付記５）
付記２記載のメモリコントローラにおいて、
前記アドレス解析部は、オールバンクプリチャージコマンドを、先頭のアクセスアドレスに対応するバンクのアクティブコマンドの前に出力することを特徴とするメモリコントローラ。
（付記６）
付記２記載のメモリコントローラにおいて、
前記アドレス解析部は、オールバンクプリチャージコマンドを出力しないと判定したときに、先頭のアクセスアドレスに対応するバンクのみにプリチャージ動作を実行するプリチャージコマンドを出力することを特徴とするメモリコントローラ。
（付記７）
付記１記載のメモリコントローラにおいて、
前記アドレス解析部は、オールバンクプリチャージコマンドを出力した後、前記各アクセスアドレスに対応するアクティブコマンドとリードまたはライトコマンドとの間にコマンドを挿入可能な空きサイクルが存在するときに、２番目以降の複数のアクセスアドレスに対応するバンクの少なくともいずれかをアクティブにするためにアクティブコマンドを前記空きサイクルに対応して出力することを特徴とするメモリコントローラ。
（付記８）
複数のページを各々有する複数のバンクで構成される半導体メモリのアクセス制御方法であって、
アクセスするメモリセルを示すアクセスアドレスを含み、システムコントローラから供給されるアクセス要求を順次に保持し、
保持している複数のアクセスアドレスの各々に対応するバンクのページヒット／ページ
ミスを判定し、
前記複数のアクセスアドレスを解析することによりアクセス効率が向上すると判定したときに、全てのバンクのプリチャージ動作を実行するオールバンクプリチャージコマンドを出力することを特徴とすることを特徴とする半導体メモリのアクセス制御方法。
（付記９）
付記８記載の半導体メモリのアクセス制御方法において、
保持している複数のアクセスアドレスのうち先頭のアクセスアドレスに対応するバンクのページがページミスのとき、２番目以降の複数のアクセスアドレスに対応する各バンクのページヒット／ページミスに応じて、オールバンクプリチャージコマンドを出力するか否かを判定することを特徴とする半導体メモリのアクセス制御方法。
（付記１０）
付記９記載の半導体メモリのアクセス制御方法において、
２番目以降の複数のアクセスアドレス毎にオールバンクプリチャージコマンドを出力するときに、アクセスに必要なサイクルが減るか否かを示すスコアを求め、前記スコアはサイクルが減るときに相対的に大きく、
前記スコアの合計が予め設定された基準値を超える場合にオールバンクプリチャージコマンドを出力することを特徴とする半導体メモリのアクセス制御方法。
（付記１１）
付記９記載の半導体メモリのアクセス制御方法において、
オールバンクプリチャージコマンドを、先頭のアクセスアドレスに対応するバンクのアクティブコマンドの前に出力することを特徴とする半導体メモリのアクセス制御方法。
（付記１２）
付記９記載の半導体メモリのアクセス制御方法において、
オールバンクプリチャージコマンドを出力しないと判定したときに、先頭のアクセスアドレスに対応するバンクのみにプリチャージ動作を実行するプリチャージコマンドを出力することを特徴とする半導体メモリのアクセス制御方法。
（付記１３）
付記８記載の半導体メモリのアクセス制御方法において、
オールバンクプリチャージコマンドを出力した後、前記各アクセスアドレスに対応するアクティブコマンドとリードまたはライトコマンドとの間にコマンドを挿入可能な空きサイクルが存在するときに、２番目以降の複数のアクセスアドレスに対応するバンクの少なくともいずれかをアクティブにするためにアクティブコマンドを前記空きサイクルに対応して出力することを特徴とする半導体メモリのアクセス制御方法。
（付記１４）
複数のページを各々有する複数のバンクで構成される半導体メモリと、前記半導体メモリをアクセスするためのアクセス要求を出力する少なくとも１つのシステムコントローラと、前記アクセス要求を前記半導体メモリに出力するメモリコントローラとを備えたシステムであって、
前記メモリコントローラは、
アクセスするメモリセルを示すアクセスアドレスを含み、前記システムコントローラから供給されるアクセス要求を順次に保持する要求保持部と、
前記要求保持部に保持された複数のアクセスアドレスを受け、前記各アクセスアドレスに対応するバンクのページヒット／ページミスを判定するとともに、前記複数のアクセスアドレスを解析することによりアクセス効率が向上すると判定したときに、全てのバンクのプリチャージ動作を実行するオールバンクプリチャージコマンドを出力するアドレス解析部とを備えていることを特徴とするシステム。
（付記１５）
付記１４記載のシステムにおいて、
前記アドレス解析部は、前記要求保持部に保持された複数のアクセスアドレスのうち先頭のアクセスアドレスに対応するバンクのページがページミスのとき、２番目以降の複数
のアクセスアドレスに対応する各バンクのページヒット／ページミスに応じて、オールバンクプリチャージコマンドを出力するか否かを判定することを特徴とするシステム。
（付記１６）
付記１５記載のシステムにおいて、
前記アドレス解析部は、２番目以降の複数のアクセスアドレス毎にオールバンクプリチャージコマンドを出力するときに、アクセスに必要なサイクルが減るか否かを示すスコアを求め、前記スコアはサイクルが減るときに相対的に大きく、前記スコアの合計が予め設定された基準値を超える場合にオールバンクプリチャージコマンドを出力することを特徴とするシステム。
（付記１７）
付記１６記載のシステムにおいて、
前記バンクの状態に対応する前記スコアをプログラム可能に記憶するスコア記憶部を備え、
前記アドレス解析部は、前記スコア記憶部に記憶されているスコアを参照することで、スコアの合計と前記基準値とを比較することを特徴とするシステム。
（付記１８）
付記１５記載のシステムにおいて、
前記アドレス解析部は、オールバンクプリチャージコマンドを、先頭のアクセスアドレスに対応するバンクのアクティブコマンドの前に出力することを特徴とするシステム。
（付記１９）
付記１５記載のシステムにおいて、
前記アドレス解析部は、オールバンクプリチャージコマンドを出力しないと判定したときに、先頭のアクセスアドレスに対応するバンクのみにプリチャージ動作を実行するプリチャージコマンドを出力することを特徴とするシステム。
（付記２０）
付記１４記載のシステムにおいて、
前記アドレス解析部は、オールバンクプリチャージコマンドを出力した後、前記各アクセスアドレスに対応するアクティブコマンドとリードまたはライトコマンドとの間にコマンドを挿入可能な空きサイクルが存在するときに、２番目以降の複数のアクセスアドレスに対応するバンクの少なくともいずれかをアクティブにするためにアクティブコマンドを前記空きサイクルに対応して出力することを特徴とするシステム。
【００７３】
以上、本発明について詳細に説明してきたが、上記の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【産業上の利用可能性】
【００７４】
本発明は、半導体メモリのアクセスを制御するメモリコントローラおよびシステムに適用可能である。
【図面の簡単な説明】
【００７５】
【図１】本発明の第１の実施形態を示すブロック図である。
【図２】図１に示したアドレス情報バッファの詳細を示すブロック図である。
【図３】図１に示したアドレス解析部の詳細を示すブロック図である。
【図４】図１に示したスコア記憶部の概要を示す説明図である。
【図５】図１に示したＳＤＲＡＭの詳細を示すブロック図である。
【図６】第１の実施形態におけるメモリコントローラの動作を示すフロー図である。
【図７】図３に示したアドレス解析部の動作の一例を示す説明図である。
【図８】図７に対応するメモリコントローラおよびＳＤＲＡＭの動作を示すタイミング図である。
【図９】図３に示したアドレス解析部の動作の別の例を示す説明図である。
【図１０】図９に対応するメモリコントローラおよびＳＤＲＡＭの動作を示すタイミング図である。
【図１１】図３に示したアドレス解析部の動作の別の例を示す説明図である。
【図１２】図３に示したアドレス解析部の動作の別の例を示す説明図である。
【図１３】図３に示したアドレス解析部の動作の別の例を示す説明図である。
【図１４】第２の実施形態におけるスコア記憶部の概要を示す説明図である。
【図１５】第３の実施形態におけるアドレス解析部の詳細を示すブロック図である。
【図１６】第３の実施形態におけるメモリコントローラの動作の要部を示すフロー図である。
【図１７】第３の実施形態におけるメモリコントローラおよびＳＤＲＡＭの動作を示すタイミング図である。
【符号の説明】
【００７６】
ＡＤＡ‥アドレス解析部；ＡＩＢＦ１、ＡＩＢＦ２‥アドレス情報バッファ；ＣＡＧ‥コマンド／アドレス生成部；Ｉ／Ｏ‥入出力インタフェース；ＭＣＮＴ‥メモリコントローラ；ＭＨＤ‥ミスヒット判定回路；ＭＳＴ１、ＭＳＴ２‥マスタコントローラ；ＰＥＲＩ‥周辺回路；ＰＲＥＡＣ‥オールバンクプリチャージ制御回路；ＲＤＢＦ１、ＲＤＢＦ２‥リードデータバッファ；ＲＤＣ１、ＤＲＣ２‥リードデータ制御部；ＲＥＱＧ‥要求生成部；ＳＢＵＳ‥システムバス；ＳＣＲ‥スコア記憶部；ＳＹＳ‥システム；ＴＡＤＪ‥タイミング調整部；ＷＤＢＦ１、ＷＤＢＦ２‥ライトデータバッファ；ＷＤＣ１、ＷＤＣ２‥ライトデータ制御部
【図１】
2008210088.tif 000003
【図２】
2008210088.tif 000004
【図３】
2008210088.tif 000005
【図４】
2008210088.tif 000006
【図５】
2008210088.tif 000007
【図６】
2008210088.tif 000008
【図７】
2008210088.tif 000009
【図８】
2008210088.tif 000010
【図９】
2008210088.tif 000011
【図１０】
2008210088.tif 000012
【図１１】
2008210088.tif 000013
【図１２】
2008210088.tif 000014
【図１３】
2008210088.tif 000015
【図１４】
2008210088.tif 000016
【図１５】
2008210088.tif 000017
【図１６】
2008210088.tif 000018
【図１７】
2008210088.tif 000019