(57)【要約】    【課題】  多くのメモリデバイスを接続したときの負荷によるコマンドやアドレスの遅延による影響を吸収するとともに、安価に多くのメモリデバイスを接続することができるシステムを提供する。    【解決手段】  コマンドの発行サイクルを変更可能なメモリコントローラ２００と、メモリデバイス２０１の接続個数を通知するためのデバイス個数切替スイッチ２０３とを備える。メモリコントローラ２００内のデコーダ１０３−１，１０４−１は、メモリデバイス接続個数の通知結果より負荷レベルを判定し、負荷レベルが大きいと判定された場合はコマンド／アドレス系信号を発行するサイクル数を多くし、負荷レベルが少ないと判定された場合には前記サイクル数を少なくする。【選択図】        図１
2005346502.tif 000002
【特許請求の範囲】
【請求項１】
メモリデバイスの接続個数に対応した負荷情報に基づいて、コマンド処理の状態遷移を変化させる手段と、
前記状態遷移に基づいて、前記メモリデバイスに対するアクセス動作を行う手段とを備えたことを特徴とするメモリアクセス制御装置。
【請求項２】
メモリデバイスに対するアクセス制御を行うためのコマンド／アドレス系信号の発行サイクルを変更可能に構成したメモリアクセス制御装置と、
前記メモリデバイスの接続個数を通知する通知手段と、
前記通知手段の通知結果に対応して負荷の大小を判定する判定手段とを備え、
前記負荷の大小に応じて、前記コマンド／アドレス系信号の発行サイクルを変更したことを特徴とする情報処理システム。
【請求項３】
前記判定手段によって負荷が大きいと判定された場合はコマンド／アドレス系信号が変化する周波数を低くすることを特徴とする請求項２に記載の情報処理システム。
【請求項４】
コマンド／アドレス系信号によってメモリデバイスに対するアクセスを制御するメモリアクセス制御装置を有する情報処理システムにおいて、
前記メモリデバイスの接続個数を通知する通知手段を設け、
前記メモリアクセス制御装置は、
前記コマンド／アドレス系信号の発行サイクル数を切り替え可能に構成したコマンドサイクル制御手段と、
前記通知手段の通知結果に対応して負荷の大小を判定する判定手段と、
前記判定手段により負荷が大きいと判定された場合は前記コマンド／アドレス系信号の発行サイクル数を多くし、負荷が小さいと判定された場合は前記コマンド／アドレス系信号のクロックサイクル数を少なくするように前記コマンドサイクル制御手段に指示するコマンドサイクル指定手段とを有することを特徴とする情報処理システム。
【請求項５】
前記メモリアクセス制御装置はＬＳＩ内部に設け、前記通知手段は、ＬＳＩ外部にスイッチを有し、該スイッチの切り替え動作で前記メモリデバイスの接続個数を通知するように構成したことを特徴とする請求項４に記載の情報処理システム。
【請求項６】
前記メモリアクセス制御装置はＬＳＩ内部に設け、前記通知手段は、ＬＳＩ内部にレジスタを有し、ソフトウェアにより前記レジスタの設定を行って前記メモリデバイスの接続個数を通知するように構成したことを特徴とする請求項４に記載の情報処理システム。
【請求項７】
メモリデバイスの接続個数に対応した負荷情報に基づいて、コマンド処理の状態遷移を変化させる工程と、
前記状態遷移に基づいて、前記メモリデバイスに対するアクセス動作を行う工程とを備えたことを特徴とするメモリアクセス制御方法。
【請求項８】
メモリデバイスに対するアクセスを制御するメモリアクセス制御装置の制御方法を実行するための制御プログラムであって、
前記メモリデバイスの接続個数に対応した負荷情報に基づいて、コマンド処理の状態遷移を変化させるステップと、
前記状態遷移に基づいて、前記メモリデバイスに対するアクセス動作を行うステップとを備えたことを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＳＩ等に接続されるメモリデバイスに対するアクセスを制御するメモリアクセス制御装置及びメモリアクセス制御方法、前記メモリアクセス制御装置を有する情報処理システム、並びに前記メモリアクセス制御装置の制御方法を実行するための制御プログラムに関する。
【背景技術】
【０００２】
近年、ＬＳＩ等に接続されるメモリデバイスとして、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）がある。ＤＲＡＭの中でも、クロック信号に同期し、アドレス、コマンド及びデータの受け渡しを行うシンクロナスＤＲＡＭ（ＳＤＲＡＭ）は、高速アクセスを可能とするデバイスとして広く用いられている。
【０００３】
また、メモリデバイスをＬＳＩに接続する方法としては、ＬＳＩ等の実装基板にメモリデバイスを直に実装しＬＳＩとの接続を行う方法と、ＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）等のモジュールをセットする専用ソケットを実装基板上に実装し、この専用ソケットを介してメモリデバイスをＬＳＩに接続するといった方法が挙げられる。
【０００４】
メモリ容量を多く必要としないシステムにおいては、前者の方法を採るのが一般的であり、またメモリ容量を多く必要とするシステムにおいては後者の方法を採り、必要なメモリ容量に応じてメモリデバイスをソケットに増設するといった方法が用いられている。
【０００５】
ＬＳＩ実装基板に直にメモリデバイスを実装する場合と、ＤＩＭＭの専用ソケット（以下、ＤＩＭＭソケットと記す）を介してメモリデバイスを接続する場合とでは、各メモリインターフェースポートの負荷が大きく異なる。例えば、６４ビットバスのＳＤＲＡＭを接続する場合、メモリ容量を多く必要としないシステムではデータバス幅が３２ビットのメモリデバイスを２組用意してこれを実装基板上に実装して実現するのに対し、ＤＩＭＭソケットを用いるシステムでは、８ビットのメモリデバイスを１６組搭載したＤＩＭＭモジュールなどを使用して実現する。
【０００６】
前者の場合には、データバス信号の負荷は２、コマンド／アドレス系信号の負荷は３となり、後者の場合には、データバス信号の負荷は３、コマンド／アドレス系信号の負荷は１７となる。また、後者の場合は、使用するＤＩＭＭモジュールに依存し、ＤＩＭＭソケットを２組持つシステムでは最大データバス信号の負荷は５、コマンド／アドレス系信号の負荷は３３となる。すなわち、実装基板に直に接続するメモリデバイスではデータとコマンド／アドレス系信号との負荷の差は小さいのに対し、ＤＩＭＭモジュールを使用するシステムではデータとコマンド／アドレス系信号との負荷の差が大きくなる。
【０００７】
信号線の負荷が大きくなると、信号の立ち上がり／立ち下りの波形が鈍くなり、短時間でＬｏｗレベル／Ｈｉｇｈレベルを切り替える等の処理を行う場合には、各信号が確定するまでの時間に遅延が発生する傾向となる。各信号の信号変化の周波数が高くなると、信号の遅延は、制御側が期待したサイクルでの各信号の確定が困難となり、これは、クロック信号に同期してコマンド、アドレス、データの受け渡しを行うシステムにおいては致命的である。
【０００８】
特に近年はメモリ容量を多く必要とするシステムが一般的となりつつあり、コマンド／アドレス系信号の負荷は増加する方向であり、データとコマンド／アドレス系信号との関係を正常に保ちつつ同期関係を維持することが困難となりつつある。
【０００９】
負荷による同期関係の維持を保証する手法の１つとして、ＬＳＩ側の出力バッファの駆動能力を調整する手法が挙げられる（第１の従来手法：例えば特許文献１を参照）。すなわち、各信号の負荷が増加した場合には、出力バッファの駆動能力を強くすることで、信号の遅延を小さくすることが可能である。
【００１０】
また、負荷を軽減する手法としては、ＤＩＭＭモジュール側でコマンド／アドレス系信号を一旦レジスタに保持して、ＤＩＭＭモジュール内の各デバイスのコマンド／アドレス系信号用のポートに接続する、Ｒｅｇｉｓｔｅｒｅｄ−ＤＩＭＭを用いた手法が存在する（第２の従来手法：例えば特許文献２を参照）。この手法によれば、コマンド／アドレス系信号を一旦レジスタで受けることで、複数に分配されていた信号を１つのポートで受けることになり、負荷を軽減することができる。
【特許文献１】特開平８−３２１７６１号公報
【特許文献２】特開２００３−３４５６５２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、上記第１の従来手法では、出力バッファの駆動能力を調整するだけで、全てのＤＩＭＭモジュールの枚数や、一枚のＤＩＭＭモジュールに搭載されているメモリデバイス数の組み合わせを網羅して制御を行うことは非常に困難であり、メモリ容量を多く必要とするシステムにおいて、この方法によって、信号の遅延、鈍化の悪影響を無くすことは非常に難しい。
【００１２】
また、上記第２の従来手法では、ＤＩＭＭモジュール内にレジスタを実装するため、モジュール自体が高価となりシステムコストに影響を与える、という問題がある。
【００１３】
本発明は上記従来の問題点に鑑み、多くのメモリデバイスを接続したときの負荷によるコマンド／アドレス系信号の遅延による影響を吸収することができるメモリアクセス制御装置、メモリアクセス制御方法及び制御プログラムを提供することを目的とする。
【００１４】
また、多くのメモリデバイスを接続したときの負荷によるコマンド／アドレス系信号の遅延による影響を吸収することができるとともに、高価なメモリモジュールを用いなくとも多くのメモリデバイスを接続することができる情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、本発明のメモリアクセス制御装置は、メモリデバイスの接続個数に対応した負荷情報に基づいて、コマンド処理の状態遷移を変化させる手段と、前記状態遷移に基づいて、前記メモリデバイスに対するアクセス動作を行う手段とを備えたことを特徴とする。
【００１６】
本発明の情報処理システムは、メモリデバイスに対するアクセス制御を行うためのコマンド／アドレス系信号の発行サイクルを変更可能に構成したメモリアクセス制御装置と、前記メモリデバイスの接続個数を通知する通知手段と、前記通知手段の通知結果に対応して負荷の大小を判定する判定手段とを備え、前記負荷の大小に応じて、前記コマンド／アドレス系信号の発行サイクルを変更したことを特徴とする。
【００１７】
本発明の情報処理システムは、コマンド／アドレス系信号によってメモリデバイスに対するアクセスを制御するメモリアクセス制御装置を有する情報処理システムにおいて、前記メモリデバイスの接続個数を通知する通知手段を設け、前記メモリアクセス制御装置は、前記コマンド／アドレス系信号の発行サイクル数を切り替え可能に構成したコマンドサイクル制御手段と、前記通知手段の通知結果に対応して負荷の大小を判定する判定手段と、前記判定手段により負荷が大きいと判定された場合は前記コマンド／アドレス系信号の発行サイクル数を多くし、負荷が小さいと判定された場合は前記コマンド／アドレス系信号のクロックサイクル数を少なくするように前記コマンドサイクル制御手段に指示するコマンドサイクル指定手段とを有することを特徴とする。
【００１８】
本発明のメモリアクセス制御方法は、メモリデバイスに対するアクセスを制御するメモリアクセス制御装置の制御方法を実行するための制御プログラムであって、前記メモリデバイスの接続個数に対応した負荷情報に基づいて、コマンド処理の状態遷移を変化させるステップと、前記状態遷移に基づいて、前記メモリデバイスに対するアクセス動作を行うステップとを備えたことを特徴とする。
【００１９】
本発明の制御プログラムは、メモリデバイスに対するアクセスを制御するメモリアクセス制御装置の制御方法を実行するための制御プログラムであって、前記メモリデバイスの接続個数に対応した負荷情報に基づいて、コマンド処理の状態遷移を変化させるステップと、前記状態遷移に基づいて、前記メモリデバイスに対するアクセス動作を行うステップとを備えたことを特徴とする。
【発明の効果】
【００２０】
本発明によれば、多くのメモリデバイスを接続したときの負荷によるコマンド／アドレス系信号の遅延による悪影響を吸収することができ、安価に多くのメモリデバイスを接続することが可能になる。
【発明を実施するための最良の形態】
【００２１】
本発明のメモリアクセス制御装置、情報処理システム、メモリアクセス制御方法、及び制御プログラムの実施の形態について、図面を参照しながら説明する。
【００２２】
［第１の実施の形態］
図１は、本発明の第１の実施の形態に係るメモリアクセス制御装置を含むメモリコントローラの構成を示すブロック図であり、図２は、図１に示したメモリコントローラの特徴部分を示すブロック図である。また、図３は、本発明のメモリアクセス制御装置が適用される通常のメモリコントローラの一構成例を示すブロック図である。
【００２３】
＜通常のメモリコントローラの構成例＞
まず図３を参照しつつ、本発明が適用される通常のメモリコントローラの構成例について説明する。
【００２４】
図３に示すメモリコントローラ１０１は、ＬＳＩ外部に接続されたＳＤＲＡＭ等のメモリデバイスのアクセス制御を行うものであり、コマンド処理機構１０２、行コマンド制御シーケンサ１０３、列コマンド制御シーケンサ１０４、コマンド制御機構１０５、及びデータ制御機構１０６で構成されている。
【００２５】
コマンド処理機構１０２は、ＬＳＩ内部のマスタデバイスから転送されてきたコマンドをインターフェースして、メモリデバイスに対するアクセスのデコードやリフレッシュの制御を行うと共に、メモリコントローラ１０１自体の様々な設定機構や、メモリデバイス内部のページ管理を行う機構、ページヒット／ミスの判定を行う機構等を有する。ここで、リフレッシュとは、信号電荷の放電によってデータが消失しない時間内に定期的にデータの再書き込みを行う処理である。
【００２６】
コマンド処理機構１０２よりデコードされたマスタデバイスからのコマンドは、ページミスの場合は行コマンド制御シーケンサ１０３へ送られ、ページヒットの場合は列コマンド制御シーケンサ１０４へと送られる。またリフレッシュ等のコマンドは、行コマンド制御シーケンサ１０３へと送られる。
【００２７】
行コマンド制御シーケンサ１０３では、メモリデバイスの行コマンド、つまりアクティブ（Ａｃｔｉｖｅ）コマンド、リフレッシュ（Ｒｅｆｒｅｓｈ）コマンド、及びプリチャージ（Ｐｒｅｃｈａｒｇｅ）コマンド等の各コマンドを制御する。ここで、アクティブコマンドは、アクセス要求を受け付ける各アクセス系の回路をアクティブ状態にするコマンドであり、リフレッシュコマンドは、リフレッシュを行うためのコマンドであり、プリチャージコマンドは、“１”又は“０”のデータが記憶されるメモリセルに接続された信号線（ビット線）をプリチャージするためのコマンドである。
【００２８】
すなわち、行コマンド制御シーケンサ１０３は、コマンド処理機構１０２より発行されたコマンドを受け取り、指定された行コマンド制御を行うシーケンサであり、行コマンドとして発行するＣＳ信号（チップ・セレクト信号）１１７、ＲＡＳ信号（ロウ・アドレス・ストローブ信号）１１２、ＣＡＳ信号（カラム・アドレス・ストローブ信号）１１３、ＷＥ信号（ライト・イネーブル信号）１１４、及びアドレス１１５を行コマンド駆動信号１１６と共にコマンド制御機構１０５へと出力する。
【００２９】
行コマンド制御シーケンサ１０３は、行コマンドに関し、コマンド制御機構１０５に対してコマンド発行要求１１１を発行してコマンド発行許可１１０を受け取ることにより状態遷移を行い、この遷移結果に応じた行コマンド駆動信号１１６と共にコマンドをコマンド制御機構１０５に発行する。また、コマンド処理機構１０２より読み出しアクセス又は書き込みアクセスが指示された場合は、この指示を、アクティブ処理後に列コマンド制御シーケンサ１０４へコマンドと共に伝達する。
【００３０】
列コマンド制御シーケンサ１０４では、メモリデバイスの列コマンド、つまりリード（Ｒｅａｄ）コマンドや、ライト（Ｗｒｉｔｅ）コマンド等の各コマンドを制御する。ここで、リードコマンドは、メモリデバイスからデータを読み出すためのコマンドであり、ライトコマンドは、メモリデバイスに対してデータを書き込むためのコマンドである。
【００３１】
列コマンド制御シーケンサ１０４は、コマンド処理機構１０２あるいは行コマンド制御シーケンサ１０３より指示されたコマンドを受け取り、指定された列コマンド制御を行うシーケンサであり、列コマンドとして発行するＣＳ信号１２４、ＣＡＳ信号１２０、ＷＥ信号１２１及びアドレス１２２を列コマンド駆動信号１２３と共にコマンド制御機構１０５へと出力する。さらに、列コマンドに関し、コマンド制御機構１０５に対してコマンド発行要求１１９を発行してコマンド発行許可１１８を受け取ることにより状態遷移を行い、列コマンド駆動信号１２３と共にコマンド制御機構１０５にコマンドを発行する。
【００３２】
コマンド制御機構１０５は、行コマンド制御シーケンサ１０３及び列コマンド制御シーケンサ１０４より指示されたコマンドを受け取り、行コマンド及び列コマンドを選択しメモリデバイスに対してＲＡＳ信号１２５、ＣＡＳ信号１２６、ＷＥ信号１２７及びアドレス１２８を出力する。
【００３３】
コマンド制御機構１０５は、行コマンド制御シーケンサ１０３からのコマンド発行要求１１１と列コマンド制御シーケンサ１０４からのコマンド発行要求１１９を受け取ると、メモリバスの状態と各コマンドの発行タイミングより、行コマンド及び列コマンドが発行可能な状態になったときに、各シーケンサ１０３，１０４に対してそれぞれコマンド発行許可１１０，１１８を発行する。また、コマンド制御機構１０５は、行コマンド駆動信号１１６が発行されている期間において行コマンド制御シーケンサ１０４からのＣＳ信号１１７、ＲＡＳ信号１１２、ＣＡＳ信号１１３、ＷＥ信号１１４及びアドレス１１５をメモリデバイスに対して発行し、列コマンド駆動信号１２３が発行されている期間において列コマンド制御シーケンサ１０４からのＣＳ信号１２４、ＣＡＳ信号１２０、ＷＥ信号１２１及びアドレス１２２をメモリデバイスに対して発行する。また列コマンド駆動信号１２３が発行されている期間は、ＲＡＳ信号１２５を常に駆動しない（Ｈｉｇｈレベルを出力する）。
【００３４】
データ制御機構１０６は、メモリデバイスへの書き込みデータ及び読み込みデータの処理を行う。書き込みデータは、コマンド処理機構１０２からのライトコマンド時にデータ制御機構１０６に取り込まれ、列コマンド制御シーケンサ１０４からの出力データタイミング信号１０８よりメモリバス１２９へ出力される。読み込みデータは、リード時にコマンド処理機構１０２から発行される入力データタイミング信号１０９と、コマンド制御機構１０２からのＣａｓ  Ｌａｔｅｎｃｙ（ＣＡＳ信号の待ち時間）の指定とにより、メモリバス１２９から取り込まれてコマンド処理機構１０２に送られる。
【００３５】
＜本実施の形態のメモリコントローラ＞
上述した通常のメモリコントローラ１０１に本発明を適用した第１の実施の形態について、図１及び図２を参照して説明する。
【００３６】
本実施の形態に係るメモリコントローラ２００は、図１に示した通常のメモリコントローラ１０１に代えてＬＳＩ１００に搭載され、特に行コマンド制御シーケンサ１０３Ａと列コマンド制御シーケンサ１０４Ａの構成が通常のメモリコントローラ１０１のものとは異なっている。
【００３７】
このメモリコントローラ２００を有するシステムには、メモリデバイス２０１の接続個数に対応したモード切替信号ＭＳを出力するデバイス個数切替スイッチ２０３がＬＳＩ１００外部に設けられ、デバイス個数切替スイッチ２０３で指定されたモード切替信号ＭＳは、行コマンド制御シーケンサ１０３Ａと列コマンド制御シーケンサ１０４Ａへ入力されるようになっている。すなわち、モード切替信号ＭＳは、ＬＳＩ１００に接続されるメモリデバイス２０１の数が１６デバイス以下の場合はＬｏｗレベルに、１６デバイスを超える場合はＨｉｇｈレベルに、デバイス個数切替スイッチ２０３によって指定される。
【００３８】
そして、行コマンド制御シーケンサ１０３Ａ及び列コマンド制御シーケンサ１０４Ａには、デコーダ１０３−１，１０４−１と、行コマンドサイクル指定部１０３−２及び列コマンドサイクル指定部１０４−２とがそれぞれ設けられ、デコーダ１０３−１，１０４−１は、モード切替信号ＭＳがＨｉｇｈレベルであるときに負荷レベルが大きく、Ｌｏｗレベルであるときに負荷レベルが小さいと判定する。
【００３９】
行コマンドサイクル指定部１０３−２及び列コマンドサイクル指定部１０４−２は、それぞれデコーダ１０３−１，１０４−１による負荷レベルの判定結果に基づき、行コマンド制御シーケンサ１０３Ａと列コマンド制御シーケンサ１０４Ａの状態遷移を変化させる。すなわち、負荷レベルが大きいと判定された場合はアドレス及びコマンドを出力するクロックサイクル数が多くなるようにし、負荷レベルが少ないと判定された場合はアドレス及びコマンドを出力するクロックサイクル数が少なくなるように、状態遷移を変化させる。
【００４０】
＜本実施の形態の動作＞
以下、図４〜図７を参照しつつ本実施の形態の動作を説明する。
【００４１】
図４は、本実施の形態に係る行コマンド制御シーケンサ１０３Ａの状態遷移図であり、図５は、本実施の形態に係る列コマンド制御シーケンサ１０４Ａの状態遷移図である。図６は、本実施の形態の動作（負荷レベル小時）を示すタイミングチャートであり、図７は、本実施の形態の動作（負荷レベル大時）を示すタイミングチャートである。
【００４２】
Ｉ．行コマンド制御シーケンサ１０３Ａの動作
行コマンド制御シーケンサ１０３Ａは、コマンド処理機構１０２からコマンドを受け取ると、コマンド制御機構１０５に対してコマンド発行要求１１１を発行し、コマンド発行許可１１０を受け取った段階で、コマンド待機状態（以下、ＩＤＬＥ状態と呼ぶ）からコマンドを発行する状態へと遷移する。
【００４３】
図４に示すように、行コマンド制御シーケンサ１０３Ａは、アクティブコマンド、プリチャージコマンド、リフレッシュコマンド、オールプリチャージ（Ｐｒｅｃｈａｒｇｅ  ＡＬＬ）コマンド、モードセット（ＭｏｄｅＳｅｔ）コマンド、セルフリフレッシュ（Ｓｅｌｆ  Ｒｅｆｒｅｓｈ）コマンドを発行する状態に加え、それぞれの状態に遷移する前の前段状態と、列コマンド制御シーケンサ１０４にコマンドを発行する列コマンド駆動状態（図４中のＣＯＬ＿ＳＴＡＲＴ）が存在する。列コマンド駆動状態（ＣＯＬ＿ＳＴＡＲＴ）は、アクティブコマンドを発行する状態から遷移する（図４のＭ１）。
【００４４】
ここで、図４中のＡＣＴＩＶＥ＿ＳＴはアクティブコマンドを発行するアクティブ状態を示し、ＰＣＨＧ＿ＳＴはプリチャージコマンドを発行するプリチャージ状態を示し、ＲＥＦ＿ＳＴはリフレッシュコマンドを発行するリフレッシュ状態を示し、ＰＡＬＬ＿ＳＴは、オールプリチャージ（Ｐｒｅｃｈａｒｇｅ  ＡＬＬ）コマンドを発行するオールプリチャージ状態を示す。また、ＭＤＳ＿ＳＴはモードセット（ＭｏｄｅＳｅｔ）コマンドを発行するモードセット状態を示し、ＳＲＥＦ＿ＳＴはセルフリフレッシュ（Ｓｅｌｆ  Ｒｅｆｒｅｓｈ）コマンドを発行するセルフリフレッシュ状態を示す。
【００４５】
また、図４中のＡＣＴＩＶＥ＿ＰＲＥはアクティブコマンドを発行する状態に遷移する前の前段アクティブ状態を示し、ＰＣＨＧ＿ＰＲＥはプリチャージコマンドを発行する状態に遷移する前の前段プリチャージ状態を示し、ＲＥＦ＿ＰＲＥはリフレッシュコマンドを発行する状態に遷移する前の前段リフレッシュ状態を示し、ＰＡＬＬ＿ＰＲＥは、オールプリチャージ（Ｐｒｅｃｈａｒｇｅ  ＡＬＬ）コマンドを発行する状態に遷移する前の前段オールプリチャージ状態を示す。また、ＭＤＳ＿ＰＲＥはモードセット（ＭｏｄｅＳｅｔ）コマンドを発行する状態に遷移する前の前段モードセット状態を示し、ＳＲＥＦ＿ＰＲＥはセルフリフレッシュ（Ｓｅｌｆ  Ｒｅｆｒｅｓｈ）コマンドを発行する状態に遷移する前の前段セルフリフレッシュ状態を示す。
【００４６】
なお、オールプリチャージコマンドは、メモリデバイス２０１における全バンクの一括プリチャージを指示するコマンドであり、モードセットコマンドは、モードレジスタにモードパラメータの供給を指示するコマンドであり、セルフリフレッシュコマンドは、ＳＤＲＡＭから成るメモリデバイス２０１の内部でリフレッシュサイクルを実行するためのセルフリフレッシュ動作を指示するコマンドである。
【００４７】
各コマンドを発行する状態では、行コマンド駆動信号１１６と、それぞれのコマンドで必要とするＣＳ信号１１７、ＲＡＳ信号１１２、ＣＡＳ信号１１３、ＷＥ信号１１４及びアドレス１１５とをコマンド制御機構１０５に対して駆動するように制御される。
【００４８】
これに対して、それぞれの状態に遷移する前の前段状態では、行コマンド駆動信号１１６と、それぞれのコマンドで必要とするＲＡＳ信号１１２、ＣＡＳ信号１１３、ＷＥ信号１１４及びアドレス１１５とをコマンド制御機構１０５に対して駆動するように制御される。
【００４９】
ＩＤＬＥ状態から、各コマンドを発行する状態あるいは各状態へ遷移する前の前段状態へ遷移の選択は、デコーダ１０３−１による負荷レベルの判定に基づいて行われる。負荷レベルが小さいと判定された場合は、ＩＤＬＥ状態から直接各コマンドを発行する状態へと遷移（図４中のＳ１〜Ｓ６参照）するのに対して、負荷レベルが大きいと判定された場合は、ＩＤＬＥ状態から前段状態へと遷移（図４中のＴ１〜Ｔ５参照）が行われた後に、各コマンドを発行する状態へと遷移（図４中のＮ１〜Ｎ５参照）が行われる。
【００５０】
各前段状態では、ＲＡＳ信号１２５、ＣＡＳ信号１２６、ＷＥ信号１２７及びアドレス１２８が駆動状態となり、各コマンドを発行する状態では、前記の信号群に加え、ＣＳ信号１３０が駆動状態となる。
【００５１】
次に、このような行コマンド制御シーケンサ１０３Ａの動作について、リフレッシュコマンド及びアクティブコマンドの発行を例に説明する。
【００５２】
まずリフレッシュ動作について説明すると、リフレッシュコマンドは、ＣＳ信号１３０、ＲＡＳ信号１２５、ＣＡＳ信号１２６及びアドレス１２８を駆動する必要がある。リフレッシュコマンドの発行時はＩＤＬＥ状態であり、コマンド制御機構１０５からコマンド発行許可１１０を受け取った状態で状態遷移が行われる。
【００５３】
負荷レベルが小さいと判定された場合は、ＩＤＬＥ状態からリフレッシュ状態（ＲＥＦ＿ＳＴ）へと遷移が行われ（図４のＳ４）、リフレッシュ状態では、行アドレス駆動信号１１６、ＣＳ信号１１７、ＲＡＳ信号１１２、ＣＡＳ信号１１３及びアドレス１１５が駆動され、次のサイクルにおいてＩＤＬＥ状態へと遷移する（図４のＳ４ａ）。一方、負荷レベルが大きいと判定された場合は、ＩＤＬＥ状態から一旦前段リフレッシュ状態（ＲＥＦ＿ＰＲＥ）へと遷移が行われ（図４のＴ３）、前段リフレッシュ状態では、行アドレス駆動信号１１６、ＲＡＳ信号１１２、ＣＡＳ信号１１３及びアドレス１１５が駆動される。次のサイクルにおいてはリフレッシュ状態へと遷移が行われ（図４のＮ３）、行アドレス駆動信号１１６、ＣＳ信号１１７、ＲＡＳ信号１１２、ＣＡＳ信号１１３及びアドレス１１５が駆動され、さらに次のサイクルによってＩＤＬＥ状態へと遷移する（図４のＳ４ａ）。
【００５４】
以上により、負荷レベルが小さいと判定された場合には、コマンド制御機構１０５では、ＣＳ信号１３０、ＲＡＳ信号１２５、ＣＡＳ信号１２６及びアドレス１２８をそれぞれ１サイクル間に亘ってメモリデバイス２０１に対して駆動し（図６のＷ１を参照）、負荷レベルが大きいと判定された場合には、ＲＡＳ信号１２５、ＣＡＳ信号１２６及びアドレス１２８をそれぞれ２サイクル間に亘って駆動し（図７のＹ１を参照）、ＣＳ信号１３０は最後の１サイクル間のみ駆動するように、制御が行われる。
【００５５】
続いて、アクティブ動作について説明すると、アクティブコマンドは、ＣＳ信号１３０、ＲＡＳ信号１２５及びアドレス１２８を駆動する必要がある。アクティブコマンドの発行時はＩＤＬＥ状態であり、コマンド制御機構１０５よりコマンド発行許可１１０を受け取った段階で状態遷移が行われる。
【００５６】
負荷レベルが小さいと判定された場合は、ＩＤＬＥ状態からアクティブ状態（ＡＣＴＩＶＥ＿ＳＴ）へと遷移が行われる（図４のＳ２）。アクティブ状態では、行アドレス駆動信号１１６、ＣＳ信号１１７、ＲＡＳ信号１１２及びアドレス１１５が駆動され、列コマンド駆動状態（ＣＯＬ＿ＳＴＡＲＴ）へと遷移し（図４のＭ１）、列コマンド制御シーケンサ１０４を駆動し、後続のアクセスが無い場合はＩＤＬＥ状態へと遷移する（図４のＭ２）。
【００５７】
負荷レベルが大きいと判定された場合は、ＩＤＬＥ状態から一旦前段アクティブ状態（ＡＣＴＩＶＥ＿ＰＲＥ）へと遷移が行われ（図４のＴ２）、前段アクティブ状態では行アドレス駆動信号１１６、ＲＡＳ信号１１２及びアドレス１１５が駆動される。次のサイクルにおいてはアクティブ状態（ＡＣＴＩＶＥ＿ＳＴ）へと遷移が行われ（図４のＮ２）、行アドレス駆動信号１１６、ＣＳ信号１１７、ＲＡＳ信号１１２及びアドレス１１５が駆動され、列コマンド駆動状態（ＣＯＬ＿ＳＴＡＲＴ）へと遷移し（図４のＭ１）、列コマンド制御シーケンサ１０４を駆動し、後続のアクセスが無い場合はＩＤＬＥ状態へと遷移する（図４のＭ２）。
【００５８】
以上より、負荷レベルが小さいと判定された場合には、コマンド制御機構１０５では、ＣＳ信号１３０、ＲＡＳ信号１２５及びアドレス１２８を１サイクル間に亘ってメモリデバイス２０１に対して駆動し（図６のＷ２を参照）、負荷レベルが大きいと判定された場合には、ＲＡＳ信号１２５及びアドレス１２８を２サイクル間に亘って駆動し（図７のＹ２）、ＣＳ信号１３０は最後の１サイクル間のみ駆動するように、制御が行われる。
【００５９】
ＩＩ．列コマンド制御シーケンサ１０４Ａの動作
列コマンド制御シーケンサ１０４Ａは、行コマンド制御シーケンサ１０３Ａよりコマンドを受け取るとコマンド制御機構１０５に対してコマンド発行要求１１９を発行し、コマンド発行許可１１８を受け取った段階で、ＩＤＬＥ状態からコマンドを発行する状態へと遷移が行われる。
【００６０】
図５に示すように、列コマンド制御シーケンサ１０４Ａは、ライトコマンド、プリチャージ・ライトコマンド（Ｗｒｉｔｅ  ｗｉｔｈ  Ｐｒｅｃｈａｒｇｅ）、リードコマンド、プリチャージ・リードコマンド（Ｒｅａｄ  ｗｉｔｈ  Ｐｒｅｃｈａｒｇｅ）を発行する状態に加え、それぞれの状態に遷移する前の前段状態が存在する。
【００６１】
ここで、プリチャージ・ライトコマンドとは、ビット線をプリチャージしてデータを書き込むためのコマンドであり、プリチャージ・リードコマンドとは、ビット線をプリチャージしてデータを読み出すためのコマンドである。
【００６２】
また、図５中のＲＤ＿ＣＭＤはリードコマンドを発行するリード状態を示し、ＲＤＡ＿ＣＭＤはプリチャージ・リードコマンドを発行するプリチャージ・リード状態を示し、ＷＲ＿ＣＭＤはライトコマンドを発行するライト状態を示し、ＷＲＡ＿ＣＭＤはプリチャージ・ライトコマンドを発行するプリチャージ・ライト状態を示す。ＲＤ＿ＰＲＥはリードコマンドを発行する状態に遷移する前の前段リード状態を示し、ＲＤＡ＿ＰＲＥはプリチャージ・リードコマンドを発行する状態に遷移する前の前段プリチャージ・リード状態を示し、ＷＲ＿ＰＲＥはライトコマンドを発行する状態に遷移する前の前段ライト状態を示し、ＷＲＡ＿ＰＲＥはプリチャージ・ライトコマンドを発行する状態に遷移する前の前段プリチャージ・ライト状態を示す。
【００６３】
各コマンドを発行する状態では、列コマンド駆動信号１２３と、それぞれのコマンドで必要とするＣＳ信号１２４、ＣＡＳ信号１２０、ＷＥ信号１２１及びアドレス１２２とをコマンド制御機構１０５に対して駆動するように制御される。これに対して、それぞれの状態に遷移する前の前段状態では、列コマンド駆動信号１２３と、それぞれのコマンドで必要とするＣＡＳ信号１２０、ＷＥ信号１２１及びアドレス１２２とをコマンド制御機構１０５に対して駆動するように制御される。
【００６４】
ＩＤＬＥ状態から、各コマンドを発行する状態、あるいは各状態へ遷移する前の前段状態へ遷移の選択は、デコーダ１０４−１による負荷レベル判定に基づいて行われる。負荷レベルが小さいと判定された場合は、ＩＤＬＥ状態から直接各コマンドを発行する状態へと遷移（図５中のＳ１１〜Ｓ１４参照）するのに対して、負荷レベルが大きいと判定された場合は、ＩＤＬＥ状態から前段状態へと遷移（図５中のＴ１１〜Ｔ１４参照）が行われた後に、コマンドを発行する状態へと遷移（図５中のＮ１１〜Ｎ１４参照）が行われる。
【００６５】
各前段状態では、ＣＡＳ信号１２６、ＷＥ信号１２７及びアドレス１２８が駆動状態となり、各コマンドを発行する状態では、前記の信号群に加えてＣＳ信号１３０が駆動状態となる。
【００６６】
次に、このような列コマンド制御シーケンサ１０４Ａの動作について、ライトコマンド及びリードコマンドの発行を例に説明する。
【００６７】
まず、ライトコマンドの発行について説明すると、ライトコマンドは、ＣＳ信号１３０、ＣＡＳ信号１２６、ＷＥ信号１２７及びアドレス１２８を駆動する必要がある。ライトコマンドの発行時はＩＤＬＥ状態であり、コマンド制御機構１０５よりコマンド発行許可１１８を受け取った状態で状態遷移が行われる。
【００６８】
負荷レベルが小さいと判定された場合は、ＩＤＬＥ状態からライト状態へと遷移が行われ（図５のＳ１３）、ライト状態では列アドレス駆動信号１２３、ＣＳ信号１２４、ＣＡＳ信号１２０、ＷＥ信号１２１及びアドレス１２２が駆動され、後続のアクセスが無い場合はＩＤＬＥ状態へと遷移する（図５のＳ１３ａ）。一方、負荷レベルが大きいと判定された場合は、ＩＤＬＥ状態から一旦前段ライト状態へと遷移が行われ（図５のＴ１３）、前段ライト状態では列アドレス駆動信号１２３、ＣＡＳ信号１２０、ＷＥ信号１２１及びアドレス１２２が駆動される。次のサイクルにおいてはライト状態へと遷移が行われ（図５のＮ１３）、列アドレス駆動信号１２３、ＣＳ信号１２４、ＣＡＳ信号１２０、ＷＥ信号１２１及びアドレス１２２が駆動され、後続のアクセスが無い場合はＩＤＬＥ状態へと遷移する（図５のＳ１３ａ）。
【００６９】
以上より、負荷レベルが小さいと判定された場合は、ＣＳ信号１２４、ＣＡＳ信号１２０、ＷＥ信号１２１及びアドレス１２２をそれぞれ１サイクル間に亘ってメモリデバイス２０１に対して駆動し（図６のＷ３）、負荷レベルが大きいと判定された場合は、ＣＡＳ信号１２０、ＷＥ信号１２１及びアドレス１２２を２サイクル間に亘って駆動し（図７のＹ３）、ＣＳ信号１３０は最後の１サイクル間のみ駆動するように、制御が行われる。
【００７０】
また、ライト状態においては、データ制御機構１０６に対して出力データタイミング信号１０８を発行し、データ制御機構１０６は指定されたタイミングに従いデータをメモリデータバス１２９へ出力する。
【００７１】
続いて、リードコマンド動作について説明する。リードコマンドは、ＣＳ信号１２４、ＣＡＳ信号１２０及びアドレス１２２を駆動する必要がある。リードコマンドの発行時はＩＤＬＥ状態であり、コマンド制御機構１０５よりコマンド発行許可１１８を受け取った状態で状態遷移が行われる。
【００７２】
負荷レベルが小さいと判定された場合は、ＩＤＬＥ状態からリード状態へと遷移（図５のＳ１１）が行われ、リード状態では列アドレス駆動信号１２３、ＣＳ信号１２４、ＣＡＳ信号１２０及びアドレス１２２が駆動され、後続のアクセスが無い場合はＩＤＬＥ状態へと遷移する（図５のＳ１１ａ）。一方、負荷レベルが大きいと判定された場合は、ＩＤＬＥ状態から一旦前段リード状態へと遷移が行われ（図５のＴ１１）、前段リード状態では列アドレス駆動信号１２３、ＣＡＳ信号１２０及びアドレス１２２が駆動される。次のサイクルにおいてはリード状態へと遷移が行われ（図５のＮ１１）、列アドレス駆動信号１２３、ＣＳ信号１２４、ＣＡＳ信号１２０及びアドレス１２２が駆動され、後続のアクセスが無い場合はＩＤＬＥ状態へと遷移する（図５のＳ１１ａ）。
【００７３】
以上より、負荷レベルが小さいと判定された場合は、ＣＳ信号１２４、ＣＡＳ信号１２０及びアドレス１２２をそれぞれ１サイクル間に亘ってメモリデバイス２０１に対して駆動し（図６のＷ４）、負荷レベルが大きいと判定された場合は、ＣＡＳ信号１２０及びアドレス１２２をそれぞれ２サイクル間に亘って駆動し（図７のＹ４）、ＣＳ信号１２４は最後の１サイクル間のみ駆動するように、制御が行われる。
【００７４】
また、リード状態においては、データ制御機構１０６に対して入力データタイミング信号１０９を発行し、データ制御機構１０６は指定されたタイミングに従いデータをメモリデータバス１２９から取り込み、コマンド処理機構１０２に読み込みデータを返す。
【００７５】
このように本実施の形態では、ＣＳ信号、データ及びデータマスク等の負荷の小さい選択信号／データ系は、常に１サイクル間に亘って駆動し、ＲＡＳ信号、ＣＡＳ信号、ＷＥ信号及びアドレス等のデータ負荷の大きいコマンド／アドレス系信号は、メモリデバイス個数による負荷の大小判定により１サイクル駆動と２サイクル駆動に切り替えられる。すなわち、負荷の大きなコマンド／アドレス系の信号を２サイクルで駆動するように切替可能にして該コマンド／アドレス系信号が変化する周波数を低くするようにしたので、多くのメモリデバイスを接続した場合であっても、コマンド／アドレス系の信号と選択／データ系信号との負荷の差を吸収することが可能となり、高価なメモリモジュールを用いなくとも、それと等価なシステムを実現することが可能である。また、切替機構を有することで、メモリデバイスの接続個数に最適なシステム環境を構築することができる。
【００７６】
［第２の実施の形態］
第２の実施の形態は、メモリデバイス２０１の個数の判定をスイッチ回路ではなくソフトウェアにより行い、さらに１サイクル駆動と２サイクル駆動に切り替えをソフトウェアによって行うようにしたものである。
【００７７】
図８は、本発明の第２の実施の形態に係るメモリコントローラの構成を示すブロック図である。
【００７８】
本実施の形態のメモリコントローラ２００は、内部に負荷の大小レベルを指定するレジスタ１５０を有し、負荷の大きい場合にはレジスタ１５０をセットし、負荷が少ない場合はレジスタ１５０をクリアすることで、コマンドを発行するサイクルを制御するようになっている。その他の構成は、上記第１の実施の形態と同様である。
【００７９】
ＤＩＭＭモジュール等では、ＥＥＰＲＯＭに保持されるＤＩＭＭモジュール情報を有しており、ソフトウェアは、ＤＩＭＭモジュールのＥＥＰＲＯＭにアクセスすることでメモリデバイスの接続個数を知ることができる。また、ソフトウェアが、メモリデバイスの接続個数により負荷の大小を判定してレジスタ１５０を設定することで、コマンドの発行サイクルを変更することができる。
【００８０】
その際、レジスタ１５０の初期値として負荷が大きいことを指定し、メモリデバイス２０１の初期化時は２サイクル間に亘ってコマンドを発行し、負荷が小さいと判定された場合にはレジスタ１５０をクリアすることで、コマンドの発行サイクルを変更する。
【００８１】
なお、本発明は、上記各実施の形態に限定されるものではなく、その主旨を逸脱しない限り種々の変更が可能である。例えば、メモリコントローラ２００の構成は、負荷レベルに基づいてコマンド／アドレス系信号の出力サイクル数を変更できること以外は任意の構成で実現可能である。
【００８２】
本発明は、上述した実施形態の装置に限定されず、複数の機器から構成されるシステムに適用しても、１つの機器から成る装置に適用しても良い。前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体をシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、完成されることは言うまでもない。
【００８３】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−不揮発性メモリ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、不揮発性メモリを用いることができる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８４】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、次のプログラムコードの指示に基づき、その拡張機能を拡張ボードや拡張ユニットに備わるＣＰＵなどが処理を行って実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００８５】
【図１】第１の実施の形態に係るメモリコントローラの構成を示すブロック図である。
【図２】図１に示したメモリコントローラの特徴部分を示すブロック図である。
【図３】通常のメモリコントローラの一構成例を示すブロック図である。
【図４】行コマンド制御シーケンサの状態遷移図である。
【図５】列コマンド制御シーケンサの状態遷移図である。
【図６】実施の形態の動作（負荷レベル小時）を示すタイミングチャートである。
【図７】実施の形態の動作（負荷レベル大時）を示すタイミングチャートである。
【図８】第２の実施の形態に係るメモリコントローラの構成を示すブロック図である。
【符号の説明】
【００８６】
１０２  コマンド処理機構
１０３Ａ  行コマンド制御シーケンサ
１０４Ａ  列コマンド制御シーケンサ
１０５  コマンド制御機構
１０６  データ制御機構
１２５  ＲＡＳ信号
１２６  ＣＡＳ信号
１２７  ＷＥ信号
１２８  アドレス
１２９  データ信号
２００  メモリコントローラ
２０１  メモリデバイス
２０３  デバイス個数切替スイッチ
【図１】
2005346502.tif 000003
【図２】
2005346502.tif 000004
【図３】
2005346502.tif 000005
【図４】
2005346502.tif 000006
【図５】
2005346502.tif 000007
【図６】
2005346502.tif 000008
【図７】
2005346502.tif 000009
【図８】
2005346502.tif 000010