(57)【要約】効率的なメモリ制御装置12である。制御装置12は１以上の入力コマンドシーケンスを１以上の対応する値に関連付けるための第１の機構18、28を含んでいる。第２の機構20、32は信号に応答して、選択的に１以上のコマンドシーケンスの１つをメモリ16へ順序付ける。第３の機構30は１以上の値のそれぞれを第２の機構20、32の状態と比較し、それに応答して信号を提供する。特定の実施形態では、１以上の対応する値は実行時間コード値であり、第２の機構20、32は第２の機構20、32の状態をシーケンサ時間コードとして提供するシーケンサ状態マシン32を含んでいる。特定の実施形態では、比較モジュール30は次に利用可能なコマンドシーケンスおよび実行時間コード対に関連する時間コードとシーケンサ時間コードとを比較し、それに応答して信号を提供する。【選択図】      図１
2007524146.tif 000002
【特許請求の範囲】
【請求項１】
１以上の入力コマンドシーケンスを１以上の対応する値に関連付けるための第１の機構（18、28、18’、28’）と、
信号に応答して、選択的に１以上のコマンドシーケンスの１つをメモリ（16、16’）へ順序付ける第２の機構（20、20’、32、32’）と、
１以上の値のそれぞれを第２の機構（20、20’、32、32’）の状態と比較し、それに応答して信号を提供する第３の機構（30、30’）とを具備していることを特徴とする効率的なメモリ制御装置。
【請求項２】
１以上の対応する値は実行時間コード値である請求項１記載の制御装置。
【請求項３】
第２の機構（20、20’、32、32’）はシーケンサ状態マシン（32、32’）を含んでおり、そのシーケンサ状態マシン（32、32’）はシーケンサ時間コードとして状態を提供する請求項２記載の制御装置。
【請求項４】
第３の機構（30、30’）は次に利用可能なコマンドシーケンスおよび実行時間コード対に関連する時間コードに対してシーケンサ時間コードを比較し、それに応答して信号を提供する比較モジュール（30、30’）を含んでいる請求項３記載の制御装置。
【請求項５】
比較モジュール（30、30’）はシーケンサ状態マシン（32、32’）を含んでいるシーケンサ（20、20’）内に組込まれている請求項４記載の制御装置。
【請求項６】
第１の機構（18、28、18’、28’）は命令復号器（18、18’）に含まれている復号モジュール（24、24’）を含んでおり、その命令復号器（18、18’）は次に利用可能なコマンドシーケンスおよび実行時間コード対とを提供するための発生器（28、28’）をさらに含んでいる請求項５記載の制御装置。
【請求項７】
復号モジュール（24、24’）および比較モジュール（30、30’）は、シーケンサ状態マシン（32、32’）からのフィードバックとして、シーケンサ状態時間コードデータを受信する請求項６記載の制御装置。
【請求項８】
命令復号器（18、18’）はさらに、復号モジュール（24、24’）と通信するメモリ状態追跡モジュール（26、26’）を含んでいる請求項７記載の制御装置。
【請求項９】
命令復号器（18、18’）とシーケンサ（20、20’）は、パイプラインとして構成されたマスター・スレーブ構造で接続され、そのシーケンサ（20、20’）は命令復号器（18、18’）に対してスレーブとして動作する請求項６記載の制御装置。
【請求項１０】
メモリ（16）は同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、強化されたＳＤＲＡＭ（ＥＳＤＲＡＭ）またはその変形である請求項９記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリ装置に関し、特にメモリ制御装置に関する。
【背景技術】
【０００２】
本出願は米国特許出願第60/484,025号明細書（発明の名称“CYCLE TIME IMPROVED ESDRAM/SDRAM CONTROLLER FOR FREQUENT CROSS-PAGE AND SEQUENTIAL ACCESS APPLICATION”、2003年６月３０日）についての優先権を主張しており、この文献はここで参考文献とされている。本出願はまた米国特許出願第60/483,999号明細書（発明の名称“DATA LEVEL BASED ESDRAM/SDRAM MEMORY ARBITRATOR TO ENABLE SINGLE MEMORY FOR ALL VIDEO FUNCTIONS”、2003年６月３０日）についても優先権を主張しており、この文献はここで参考文献とされている。
【０００３】
同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、強化されたＳＤＲＡＭ（ＥＳＤＲＡＭ）、バーチャルチャンネルメモリ（ＶＣＭ）制御装置のようなメモリ制御装置は、パーソナルコンピュータ、宇宙および航空機搭載コンピュータシステム、戦略的赤外線センサシステム、無人航空機誘導システムを含んだ種々の需要のある応用で使用されている。このような応用はスペースに対する要求と、設計の複雑性と、価格を最小にしながらメモリアクセス速度を最大にする効率的なメモリ制御装置を要求している。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
メモリ制御装置は読取および書込みコマンドシーケンスのようなコマンドシーケンスをメモリに対して出力する。通常、メモリへコマンドシーケンスを発生するとき、制御装置はその次のコマンドシーケンスを発生する前に、コマンドシーケンスの完了を待機する。しかしながら、コマンドシーケンスがサービスされているとき、メモリとの間のデータ流がないことがしばしばあり、結果としてメモリの帯域幅と効率を減少する不所望なデータギャップが生じる。
【０００５】
幾つかのメモリ制御装置はデータギャップを減少するためのパイプライン状態マシンを使用している。パイプライン状態マシンは２つのインターリーブしている状態マシンを使用し、これはデータ転送中に、限定されたメモリコマンド、アドレス、データ流のオーバーラップを可能にし、メモリ帯域幅の改善を行う。インターリーブしている状態マシンから出力されたメモリコマンドはデータギャップを減少するために所望の時間でメモリへ選択的に多重化される。残念ながら、現在利用可能なメモリ制御装置、特にＥＳＤＲＡＭとＳＤＲＡＭ制御装置はメモリサイクルの時間が最適化されていない。したがってこれらの制御装置は典型的に、メモリコマンドとデータ流とのオーバーラップを最大にできず、データギャップを不所望に長くしてメモリの帯域幅と妥協している。
【０００６】
通常のメモリ制御装置、特に通常のＥＳＤＲＡＭとＳＤＲＡＭ制御装置はしばしばメモリページ内で逐次的なデータアクセスを行うように設計されている。ランダムなクロスページアクセスを含む応用では、メモリの効率は典型的に付随するメモリ制御装置の複雑性によって変化する。したがって、複雑で高価なメモリ制御装置はしばしば効率的に頻繁なランダムクロスページのアクセスに適応することを必要とされる。
【０００７】
逐次的およびクロスページの両アクセス用として最適であり、必要なボードスペースと制御装置の複雑性を最小にする効率的なメモリ制御装置またはサイクル時間最適化装置が技術で必要とされている。さらに、最適化されていないメモリコマンドとデータ流のオーバーラップによって生じるデータギャップを効率的に最小にするメモリ制御装置が必要とされている。
【課題を解決するための手段】
【０００８】
この技術の要求は本発明の効率的なメモリ制御装置によって解決される。例示的な実施形態では、本発明の制御装置はＥＳＤＲＡＭおよび／またはＳＤＲＡＭと共に使用されるように構成されている。制御装置は１以上の入力コマンドシーケンスを１以上の対応する値に関連付けるための第１の機構を含んでいる。第２の機構は信号に応答して、１以上のコマンドシーケンスの１つをメモリへ選択的に順序付ける。第３の機構は１以上の値のそれぞれを第２の機構の状態と比較し、それに応答して信号を出力する。
【０００９】
さらに特別な実施形態では、１以上の対応する値は実行時間コード値である。第２の機構はシーケンサ時間コードとして状態を提供するシーケンサ状態マシンを含んでいる。第１の機構はシーケンサ時間コードにしたがって実行時間コード値を選択する。第３の機構はシーケンサ時間コードを、次に利用可能なコマンドシーケンスおよび実行時間コード対に関連された実行時間コードに対して比較し、それに応答して信号を提供する比較モジュールを含んでいる。比較モジュールはシーケンサ状態マシンを含んでいるシーケンサ内に組込まれている。
【００１０】
特別な実施形態では、第１の機構は命令復号器内に復号モジュールを含んでいる。この命令復号器はさらに次に利用可能なコマンドシーケンスと実行時間コード対とを提供する発生器を含んでいる。復号モジュールおよび比較モジュールは、シーケンサ状態マシンの状態が変化したときフィードバックとして、シーケンサ状態時間コードデータを受信する。命令復号器はさらに復号モジュールと通信するメモリ状態追跡モジュールを含んでいる。第１の機構は命令復号器を介して実行され、第２の機構および第３の機構はシーケンサを介して実行される。命令復号器とシーケンサはパイプラインとして構成されたマスター・スレーブ構造で接続され、シーケンサは命令復号器に対してスレーブとして動作する。
【００１１】
例示的な実施形態では、制御装置は、ＥＳＤＲＡＭ／ＳＤＲＡＭメモリ管理システムの一部であり、そのＥＳＤＲＡＭ／ＳＤＲＡＭメモリ管理システムはさらにシーケンサ状態マシンから制御入力を受信し、それに応答して選択的にデータをメモリへ提供またはメモリから受取るメモリデータアービトレータを含んでいる。コンピュータシステムは選択的に入力コマンドシーケンスを第１の機構に提供し、所定の応用の要求を満たすために必要なときに、選択的にメモリアービトレータへデータを提供し、および／またはメモリアービトレータからデータを受取る。
【００１２】
メモリ管理システムはさらにコンピュータシステムからコマンドを受信し、選択的に対応するコマンドを第１の機構に提供するコマンドアービトレータを含んでいる。このコマンドアービトレータは対応するコマンドが第１の機構に転送される前に対応するコマンドの優先順位を決定し、順序を定める優先順位符号化器を含んでいる。優先順位符号化器もコマンド開始信号をメモリ制御装置へ提供する。
【００１３】
本発明の１実施形態の新規な設計は第１および第３の機構により容易にされ、これらの機構は、最新の、および現在の入来メモリコマンド、ターゲットメモリの状態、サービスされているコマンドの完了の現在状態に対応するシーケンサの現在の状態にしたがって、入来するメモリコマンドが最適な時間にサービスされることを可能にする。計略的に実行時間コードを入来するメモリコマンドに割当て、シーケンサ状態情報をシーケンサから第３の機構へのフィードバックとして使用することによって、メモリコマンドは最適の時間に処理されることができる。この結果、コマンド、アドレス、およびデータ間のオーバーラップが最大にされるので、データバスのギャップは少なくなる。本発明の実施形態で開示しているように、双方向の可変タイミングハンドシェイクを有するマスター・スレーブ独立マシンアーキテクチャは理論的に最大のメモリ帯域幅と、制御装置の寸法および設計の複雑性の減少とを可能にする。
【発明を実施するための最良の形態】
【００１４】
ここで本発明を特定の応用についての実施形態を参照して説明するが、本発明はそれに限定されるものと理解すべきではない。当業者は本発明の技術的範囲内に含まれる付加的な変形、応用、実施形態および本発明が非常に有効である付加的な分野を認識するであろう。
【００１５】
図１は本発明の１実施形態にしたがった効率的なメモリ制御装置12を使用するシステム10のブロック図である。明瞭にするために、増幅器、電源、フリップフロップ等の種々の部品は図面から省略されている。しかしながら当業者は所定の応用の要求を満たすためにいずれのコンポーネントおよび特徴が構成され、どのようにしてこれらを構成するかを知るであろう。
【００１６】
システム10はメモリ管理装置22およびメモリ制御装置12を介してメモリ16と通信するコンピュータシステム14を含んでいる。コンピュータシステム14は直接的にメモリ管理装置22と通信し、メモリ管理装置22はアドレス、メモリ開始、読取／書込みコマンドを含むメモリコマンドを制御装置12を介してメモリ16へ伝送する。メモリ管理装置22はメモリ制御装置12で動作するシーケンサ状態マシン32からの制御通報信号に応答して、データバス34を介してコンピュータシステム14とメモリ16との間で選択的にデータを伝送する。効率的なメモリ制御装置12はメモリサイクル時間最適化装置とも呼ばれている。本発明の目的に対しては、メモリ制御装置はメモリへまたはメモリから転送されるメモリコマンドおよび／またはデータの流れまたは動作を行う装置、ハードウェア、ソフトウェア、またはファームウェアシステムのような任意のシステムである。
【００１７】
制御装置12はシーケンサ20とのマスター・スレーブ構造による命令復号器18を含んでいる。本発明の説明の目的では、マスター・スレーブ関係はマスターモジュールと呼ばれる第１のモジュールと、スレーブモジュールと呼ばれる第２のモジュールとの関係であり、スレーブモジュールの動作はマスターモジュールからの入力に応じて制御されるか、その他の方法でそれにしたがっている。マスター・スレーブ関係を有する２つのモジュールはマスター・スレーブ構造で接続される。
【００１８】
命令復号器18はアドレス（Ａｄｄｒ．）、コマンド開始、制御（Ｒ／Ｗ，Ｃｔｒｌ．）入力をメモリ管理装置22から受信する。命令復号器18は本発明の技術的範囲から逸脱せずに、データマスク（ＤＱＭ）のような付加的な入力を受信できる。
【００１９】
シーケンサ20は選択的にアドレス（Ａｄｄｒ．）、制御（Ｒ／Ｗ，Ｃｔｒｌ．）入力をメモリ16へ提供する。シーケンサ20を介してメモリ16に供給される制御入力は列選択（ＣＳ）、行選択（ＲＳ）、クロックエネーブル（ＣＫＥ）、行アクセスストローブ（ＲＡＳ）、および列アクセスストローブ（ＣＡＳ）信号のような種々のサブレベルのインターフェース信号を含むことができる。
【００２０】
命令復号器18は復号モジュール24を含んでおり、それはメモリ状態追跡装置26から入力を受信し、出力を次のコマンドおよび時間コード発生器28へ提供し、これら両者は共に命令復号器18中に含まれている。復号モジュール24はまたデータおよび制御入力をメモリ管理装置22から受信し、シーケンサ状態入力をシーケンサ20から受信し、そのシーケンサ状態入力はロードコマンド（Ｌｄ  Ｃｍｄ）信号とも呼ばれるシーケンサ状態時間コードおよび新しいコマンドシーケンスエネーブル信号（Ｅｎａｂｌｅ）を含んでいる。
【００２１】
シーケンサ20は、命令復号器18中の次のコマンドおよび時間コード発生器28から実行時間コード入力を受信し、エネーブル出力（Ｅｎａｂｌｅ）をシーケンサ状態マシン32へ供給する比較器30を含んでいる。シーケンサ状態マシン32はコマンドシーケンスを含むコマンド信号を次のコマンドおよび時間コード発生器28から受信し、このコマンドシーケンスは初期シーケンサ開始コマンド（Ｓｅｑ．Ｓｔａｒｔ  Ｃｏｍｍａｎｄ）コマンドを含んでいる。シーケンサ状態マシン32は制御出力をメモリ管理装置22へ与え、シーケンサ状態時間コードとして符号化されるシーケンサ状態情報を命令復号器18の復号モジュール24へ供給する。シーケンサ状態マシン32はまた、制御入力をメモリ22へ供給し、メモリ管理装置22を介してコンピュータシステム14からメモリ16へのデータ流を選択的に可能にする。
【００２２】
動作において、コンピュータプロセッサまたは他のシステムであることができるコンピュータシステム14上で動作するソフトウェア、ハードウェアまたはファームウェア（図示せず）はメモリ管理装置22とメモリ制御装置12を介して選択的にデータをメモリ装置16に記憶し、メモリ16から検索する。メモリ16へデータを記憶し、或いはメモリ16からデータを検索するコンピュータシステム14からのリクエストはメモリ管理装置22に転送される。メモリ管理装置22はそのリクエストを処理し、その後、アドレスおよび制御入力としてメモリ制御装置12中に含まれている命令復号器18の復号モジュール24へ選択的にそれらを転送する。
【００２３】
復号モジュール24は受信されたアドレスおよび制御情報をフォーマットし、その情報をサービスされるように特定のコマンドまたはコマンドシーケンスへ組込む。本発明の目的では、コマンドはシーケンサスタートコマンドのような単一のコマンドであってもよく、またはコマンドのシーケンスであってもよい。
【００２４】
復号モジュール24はメモリ状態追跡装置26からの入力、シーケンサ状態マシン32からのシーケンサ状態時間コード、および比較器30の出力からのエネーブル信号に基づいてメモリ16の現在の状態を決定する。好ましい実施形態では、メモリ状態追跡装置26はメモリの構成後、メモリ16の内部状態を追跡する。メモリ状態追跡装置26はメモリ16の最初の構造と、メモリ16の予測可能な性質に基づいてメモリ16の現在の状態を予測する。メモリ16からフィードバックされた物理的なメモリ状態信号は必要とされない。しかしながら、本発明の技術的範囲を逸脱せずに状態出力を提供するメモリを使用することができる。当業者は過剰な実験をせずにメモリ状態追跡装置26を容易に構成することができる。
【００２５】
比較器30から出力されたエネーブル信号はシーケンサ状態マシン32が新しいコマンドを受取るためにエネーブルされているか否かを示す。復号モジュール24は必要なときにメモリ管理装置22からの入力をフォーマットし、選択的にそれらを次のコマンドおよび時間コード発生器28へ提供する。
【００２６】
これらの入力に基づいて、次のコマンドおよび時間コード発生器28は実行時間コードを各検索されたコマンドシーケンスへ割当て、コマンドおよび実行時間コード対を生成する。実行時間コードは、コマンドが最良の時間に、最良の順序で順序付けられるようにシーケンサ状態時間コードを参照にして割当てられる。最適なコマンド順序の決定と、コマンドシーケンスへの実行時間コードの割当てについての正確な詳細はメモリおよび用途特定であり、所定の応用の必要性を満たすために当業者によって決定されることができる。
【００２７】
用途特定パラメータはクロック速度とデータフォーマットを含んでいる。クロック速度は利用可能なメモリ動作モードに影響する。データフォーマットもまた用途特定である。例えばパーソナルコンピュータ内のペンティアム（登録商標）の中央処理装置（ＣＰＵ）は典型的に各メモリバーストの読取または書込み４ピースである。他のコンピュータ応用はメモリの帯域幅を最適化するためにバースト当り２５６読取／書込（対４）を有するフルページバーストを使用できる。さらに他の応用は頻繁なクロスバンクおよびクロスページメモリアクセス応用に対しては８のバーストを使用できる。
【００２８】
メモリの動作速度とデータフォーマットが規定されるとき、コマンド／データのオーバーラップの詳細はメモリに特定している。標準的なインターフェースタイミングはＳＤＲＡＭに対して規定されるが、全てのモードが所定のメモリ装置によりサポートされるわけではない。例えば、列アクセスストローブ待ち時間（ＣＬ）＝１モードは５０ＭＨｚまでの幾つかの製造業者によりサポートされるが、多くは６６ＭＨｚまではサポートされない。
【００２９】
クロック速度、データフォーマット、メモリが選択されるとき、最大のデータ帯域幅に対して最大のメモリコマンドおよびデータのオーバーラップを実現するために理想的なタイミングは製造業者のデータシートから決定されることができる。その後、メモリ制御装置の設計は理想的なタイミングが実現されることができるか否かを決定する。メモリ制御装置12の使用は理想的なメモリタイミングの実現を促進する。
【００３０】
種々のファクターが最適な時間コード割当てを容易にする。好ましくは、次のコマンドおよび時間コード発生器28は特に既存のコマンドが実行されているとき、入来する新しいコマンドをできる限りすぐに検索する。次のコマンドおよび時間コード発生器28はメモリ16によりサポートされたタイミング選択肢に基づいて、データの帯域幅を最大にするために最適のコマンド／データのオーバーラップタイミングを選択するように現在および次の（入来）コマンドを解析することが好ましい。
【００３１】
命令復号器18はある連続するコマンド間の時間変化関係に適合するためにシーケンサフィードバックを使用する。ＳＤＲＡＭとＥＳＤＲＡＭのデータギャップを最小にするように最良のコマンド／データオーバーラップを得るために、次のコマンドの組合せが復号器18により受信されるときに応じて、あるコマンドの組合せがシーケンサ20の現在の状態に関して異なって処理される。メモリ制御装置12は類似の連続的なコマンドのセットで異なるコマンドシーケンスをメモリ16に発生することができる。シーケンサ20からメモリ16へ送られるコマンドシーケンスは全て新しいコマンド入力時間と現在のシーケンサ状態に基づいている。
【００３２】
以下の表は、読取コマンド（ＣＭＤのＲＤ参照）が後続する書込みバースト（Ｗ０乃至Ｗ３）の最後のデータ（Ｗ３）におけるデータマスク（ＤＱＭ）アクティビティ（ＤＱＭ＝Ｈ、即ち１またはハイ）を有する書込みコマンド（行ＣＭＤ中のＷＲを参照）に応答してシーケンサ20によって発生されるＮＯＰ−ＲＤ（読取りが後続する動作なし）状態を示している。  
【表１】
2007524146.tif 000003
【００３３】
書込み動作のデータマスク（ＤＱＭ）は遅延を有しない。読取動作では、データマスク（ＤＱＭ）は２クロックサイクルだけデータ（ＤＱ）をリードする（ＺＺとＺＺはデータ（Ｄ０乃至Ｄ３）が送信される前の２クロックサイクル遅延を表している）。第１の読取データがＤＱＭ＝Ｈの２クロックサイクル内で生じたならば、書込みマスクは最後の書込みデータ（Ｗ３）と第１の読取データ（Ｄ０）をマスクアウトする。上記の表１では、読取コマンドは書込みサイクルの早い時期に生じる。結果として、シーケンサ20は動作なし（ＮＯＰ）状態と、それに続く読取（ＲＤ）状態とを発生して、第１の読取データ（Ｄ０）がマスクされるのを阻止しなければならない。
【００３４】
以下の表２では、読取コマンド（ＲＤ）は書込みサイクルの後の時期に、復号／コマンド発生遅延後に生成する。読取コマンドが以下の表２に示されているように行われることを想定する。過剰なクロックサイクルが遅延によって挿入されるので、メモリ制御装置12は第１の読取データ（Ｄ０）がマスクされないことを保証するためにＮＯＰ−読取の組合せの代りに直接的に読取りコマンドを発生することができる。  
【表２】
2007524146.tif 000004
【００３５】
命令復号器18とシーケンサ20との間のマスター・スレーブ関係は効率的なコマンド実行シーケンスのパイプライン化を可能にする。シーケンサ状態マシン32からのシーケンサ状態のフィードバックは状態の先取りを強化する。
【００３６】
シーケンサ20は多くの制御装置がするようにコマンド毎にメモリページを開閉しない。次のコマンドおよび時間コード発生器28は新しいコマンドが現在のコマンドの処理の早期の段階に到着したならば、最良の新しいコマンドエントリタイミングのための時間コードを使用する。新しいコマンドが現在のコマンドサイクルの後期に到着したならば、割当てられた時間コードは新しいコマンドが可能な限りすぐに（事後の最良）実行されることを確実にする。
【００３７】
次のコマンドおよび時間コード発生器28は、特定のコマンドシーケンスをシーケンサ状態マシン32へ転送し始めるときを決定するために、復号モジュール24を介して受信される比較器30のシーケンサ状態時間コードと出力（Ｅｎａｂｌｅ）を監視する。本発明の特定の実施形態では、次のコマンドおよび時間コード発生器28は、シーケンサ20の比較器30へ順序付けされる次のコマンドに対応する実行時間コードを転送する。比較器30は現在のシーケンサ状態時間コードを、順序付けされる次のコマンドの実行時間コードに対して比較する。
【００３８】
本発明の特定の実施形態では、シーケンサ状態時間コードが実行時間コードよりも大きいならば、比較器30はシーケンサ状態マシン32が次のコマンドおよび時間コード発生器28から次のコマンドシーケンスを受信することを可能にする。別の構造では、シーケンサ状態時間コードが実行時間コードよりも小さいならば、比較器30はシーケンサ状態マシン32が次のコマンドシーケンスを受信することを可能にする。以下、さらに十分に説明する別の代りの構造では、シーケンサ状態時間コードが実行時間コードよりも大きいか等しいならば、比較器30はシーケンサ状態マシン32が次のコマンドシーケンスを受信することを可能にする。
【００３９】
シーケンサ状態マシン32はその後、次のコマンドシーケンスのサービスを開始する。比較器30から出力された結果的なエネーブル信号は、コマンドの順序付けおよび／または実行時間コード割当てを容易にするための復号モジュール24を含んだ上流の電子装置へ転送される。
【００４０】
シーケンサ状態マシン32がコマンドシーケンスをサービスするとき、これはコマンドシーケンスに対応するアドレスおよび制御通報をメモリ16へ提供する。シーケンサ状態マシン32はまた制御信号をメモリ管理装置22へ供給し、シーケンサ状態マシン32によりサービスされているコマンドシーケンスによって必要とされるとき、メモリ管理装置22がコンピュータシステム14とメモリ16との間で選択的にデータを転送することを可能にする。
【００４１】
本発明のメモリ制御装置12の設計は、命令復号器18へのフィードバックとしてのシーケンサ状態時間コードの新規の使用により容易にされ、これはコマンドシーケンスに割当てられた実行時間コードにしたがって適切なコマンドシーケンスを選択するためにフィードバックを使用する。選択的にシーケンサ状態フィードバックを命令復号器18に与える結果として、先取り効果は命令復号器18とシーケンサ20が最適にコマンドを順序付けるために共に動作することを可能にする。
【００４２】
例えば、本発明の特別な実施形態では、シーケンサ状態時間コードは整数１乃至８のセットにより示される８つの可能な状態の１つを表すことができる。さらに、所定のコマンドシーケンスに割当てられる実行時間コードもまた整数１乃至８のセットにより示される８つの可能な状態の１つにより表されることができる。例示的な構造では、コマンドがサービスされておらず、命令復号器18がスケジュールするコマンドシーケンスをもたないときには、実行時間コードとシーケンサ状態時間コードは８の値を割当てられる。したがって、比較器30により決定されるとき、シーケンサ状態時間コードが実行時間コードよりも大きくないならば、シーケンサ状態マシン32はアクチブではない。この例では、新しいコマンドシーケンスが到着したとき、実行時間コードが５の値を割当てられることを想定している。
【００４３】
比較器30はその後、実行時間コード（５）がシーケンサ状態時間コード（８）よりも小さいことを決定し、それにしたがってシーケンサ状態マシン32を付勢する。シーケンサ状態マシン32はその後、これは次のコマンドおよび時間コード発生器28からの出力であるコマンドシーケンスをサービスする。コマンドシーケンスがシーケンサ状態マシン32にロードされるとき、シーケンサ状態マシン32はロードされたコマンドシーケンスに基づいてシーケンサ時間コードを変更する。コマンドシーケンスがサービスされているとき、シーケンサ状態マシン32はサービスされているコマンドシーケンスの進行にしたがってシーケンサ状態時間コードをインクリメントし続ける。しかしながら、８に到達したとき、シーケンサ状態時間コードは８に留まり、シーケンサ状態マシン32が所定のコマンドを完了したことを示す。
【００４４】
次のコマンドが命令復号器18に到着し、シーケンサ20およびメモリ状態追跡装置26からの入力に基づいて６の実行時間コードを割当てられることを想定する。現在サービスされているコマンドシーケンスは５のシーケンサ状態時間コードを生成すると想定する。シーケンサ状態時間コード（５）は６より大きくないので、次のコマンドシーケンスはサービスされない。シーケンサ状態時間コードが６を通過し、即ち７以上に到達するとき、次のコマンドシーケンスはサービスされる。次のコマンドシーケンスのサービスが開始されることを示す信号は比較器30からのエネーブル信号（Ｅｎａｂｌｅ）出力を介して復号モジュール24へフィードバックされる。これは命令復号器18による実行時間コードの割当てを容易にする。エネーブル信号（Ｅｎａｂｌｅ）はまた実行されているコマンドの反復的な実行を阻止するように実行時間コードを８にリセットする。コマンドおよび時間コード発生器28は新しいコマンドが到着したとき新しい実行時間コードを発生する。
【００４５】
代りに、命令復号器からシーケンサ20へのコマンド待機信号は、図４を参照して以下詳しく説明するように、新しいコマンドがシーケンサ20によりロードされるのを待機しているか否かを示す。次のコマンドおよび時間コード発生器28が新しいコマンドおよび時間コードを発生するとき、コマンド待機信号は１に設定され、コマンドがシーケンサ20によりサービスされるとき、リセットされる。
【００４６】
復号モジュール24は現在および次のメモリリクエスト（コマンドシーケンス）、シーケンサ状態変数、およびメモリ状態変数をコマンドおよび時間コード発生器28への適切な入力に変換する。コマンドおよび時間コード発生器28はその後、検索表（図示せず）の徹底的な検索によって、最良のシーケンサ開始コマンドと実行時間コードの組合せを全部で１２８の異なる組合せから選択する。シーケンサ20はその後、その固有の状態時間コードを比較器30によって実行時間コードと比較する。
【００４７】
命令復号器18はメモリリクエストがサービスされるとき、メモリ状態追跡装置26によって内部メモリ状態を追跡し、現在および以前のメモリサイクル、メモリ状態、およびシーケンサ状態に基づいて最良のコマンドおよび実行時間コードの組合せを計算する。シーケンサ20は実行時間コードに関連するコマンドを実行するときを決定するために実行時間コードをそれ自身の状態と比較する。
【００４８】
シーケンサ20が新しいコマンドを受取るとき、命令復号器18は次のメモリリクエストを自由にサービスする。新しいコマンドシーケンスがメモリ16に送信されるとき、シーケンサ20は以下詳しく説明するように、コマンド送信信号を命令復号器18またはメモリ管理装置22のようなアップストリームまたはダウンストリームの電子装置へ転送し、次のメモリリクエストに対するデータ開始および時間を示す。この実施形態では、シーケンサ状態マシン32はワンショットマシンである。
【００４９】
別の構成では、一定のアイドル状態で、命令復号器18とシーケンサ20の両者は最初に同一の時間コード１を有し、シーケンサ状態時間コードは１に到達するまで処理の進行と共に減少され、１に到達するとコードは１に留まる。この場合、比較器30はシーケンサ状態が実行時間コードよりも小さくなるとき次のコマンドシーケンスのサービスを選択的に可能にする。第１のコマンドシーケンスを受信するとき、シーケンサ状態時間コードは１であり、一方実行時間コードは順序付けされるコマンドの特性にしたがって、６のようなより高い値に設定される。実行時間コードの割当てに使用される方法の正確な詳細は用途特定であり、過剰に実験せずに当業者により決定されることができる。したがって、シーケンサ状態時間コードが実行時間コードよりも小さいので、コマンドシーケンスは直ちにサービスされる。コマンドが処理のためにシーケンサ20に送信された後、次のコマンドおよび時間コード発生器28に関連される実行時間コードは１にリセットされる。
【００５０】
したがって別の構成では、シーケンサ状態マシン32が現在のメモリリクエストを実行しているとき、その状態時間コードはそれがコマンドシーケンスにある場所を示すように変化（減少）される。シーケンサ20が現在のコマンドシーケンスでロードした後、命令復号器18は自由に新しいメモリリクエストを受取る。次のメモリリクエストが命令復号器18に到着したとき、新しい実行時間コードがコマンドシーケンスに割当てられる。シーケンサ状態時間コードが実行時間コードよりも大きいならば、新しいコマンドシーケンス、即ちメモリリクエストはまだ実行されることができない。シーケンサ20は新しいコマンドシーケンスを最適時にメモリ16に送信する前に、シーケンサ開始時間コードが実行時間コードよりも小さくなるまで、現在のコマンドシーケンスを継続する。したがってコンピュータシステム14とメモリ16との間で流れるデータのギャップは制御装置12による効率的なコマンドの順序付けにより最小にされる。
【００５１】
当業者は、値を割当て、その値を調節して、シーケンサ状態マシン32と他の機構の現在の状態を示し、シーケンサ状態のフィードバックに応答してエネーブル信号を発生する方法が本発明の技術的範囲を逸脱せずに使用されることができることを認識するであろう。さらに、システム10を実行するのに必要な種々のモジュールが、過剰に実験せずに当業者により構成されるか、またはそうでなければ本発明の考察の実行によって得られる。例えばデータアービトレータ、コマンドアービトレータ、および付随するメモリバスとコマンド発生器のようなメモリ管理装置22の実行に使用される種々のモジュールが容易に利用可能である。
【００５２】
この実施形態では、メモリ制御装置12はメモリ管理装置22により実行される付加的なメモリ制御機能と共に使用するのに適している。付加的なメモリ制御機能は種々のアドレスおよびコマンド発生器（図示せず）と通信するコマンドアービトレータモジュールを含むことができ、その出力は選択的に制御装置12へ多重化される。メモリ管理装置22の実行を容易にするために使用されることのできる例示的なデータアービトレータを以下詳しく説明し、これは同時出願の米国特許明細書（発明の名称“SYSTEM AND METHOD FOR SELECTIVELY AFFECTING DATA FLOW TO OR FROM A MEMORY DEVICE”）に記載されており、この文献は本発明の出願人に譲渡され、ここで参考文献とされている。
【００５３】
本発明の特定の実施形態では、メモリ16は同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）または強化されたＳＤＲＡＭ（ＥＳＤＲＡＭ）であり、これを以下さらに詳しく説明する。特有のサイクル時間最適化装置12は特に２つの連続的なＥＳＤＲＡＭまたはＳＤＲＡＭメモリサイクル間のコマンド、アドレス、データのオーバーラップを最大にするのに適しており、それによってメモリの帯域幅を最適にする。
【００５４】
市販の制御装置の命令復号器と異なって、命令復号器18はシーケンサ20がフィードバックとして状態情報を提供するので、シーケンサ状態を決定するために特別なモジュールを組込むことを必要とされない。これはある通常の制御装置に関連する状態マシンの長いターンアラウンド時間または状態マシンのピンポン時間を除去し、それによって最適なコマンド／アドレスオーバーラップと、設計の複雑性の減少を容易にする。
【００５５】
発生器28による次のコマンドおよび実行時間コードの発生のシーケンサ状態フィードバックの使用は、メモリサイクル間の最良の可能なコマンド／アドレスのオーバーラップに対する状態先取り効果を与える。しかしながら、シーケンサ20から命令復号器18へのシーケンサ状態のフィードバックは本発明の技術的範囲から逸脱せずに省略されることができる。
【００５６】
本発明の種々の実施形態で使用される時間コード発生および関連するコマンド実行タイミング方式は制御装置の設計の複雑性を著しく減少させる。さらに、比較器30により実行される時間コード比較は、シーケンサ状態マシン32が時間コードの発生時とは無関係に、命令復号器18により命令されるとき最適時に、または可能な限り早く次のコマンドシーケンスを実行することを確実にする助けをする。さらに比較器30による時間コード比較は、現在のコマンドシーケンスがメモリ16に送信されている間に、命令復号器18に自由に次のメモリリクエストをサービスさせる。これはメモリ16が先のコマンドに関連するデータをバーストしながら行われる。したがって実質的に３つの全てのパイプライン化されたマシン18、20、16は十分に同時に使用され、それによってデータギャップを最小にし、メモリの利用を最大にする。本発明の実施形態にしたがって構成されたメモリ制御装置を使用するコンピュータシステムは所望のメモリ帯域幅を実現するために必要とするＥＳＤＲＡＭおよび／またはＳＤＲＡＭ装置の数はより少数である。
【００５７】
図２は図１のメモリ制御装置12により制御される例示的なＳＤＲＡＭ16のより詳細な図である。ＳＤＲＡＭはＮ個の種々のメモリバンク50を含んでいる。第１のメモリバンク52およびＮ番目のメモリバンク54は例示の目的で示されている。各Ｎ個のメモリバンク50は図１のシーケンサ20からアドレス（Ａｄｄｒ．）、読取／書込み（Ｒ／Ｗ）、および制御（Ｃｔｒｌ．）入力を受信する。特定のアドレスに対応するデータは、感知増幅器とも呼ばれる対応する能動バッファを介してメモリバンク50へ、およびメモリバンク50から選択的に転送され、これらの能動バッファは第１のメモリバンク52に対応する第１の能動バッファ60とＮ番目のメモリバンク54に対応するＮ番目の能動バッファ62により示されている。各能動バッファ60、62はそれらのバッファ60、62を通ってデータの選択的な移動を容易にするために読取／書込み（Ｒ／Ｗ）および／または図１のシーケンサ32からのその他の制御入力を含むことができる。バッファ60、62はそれぞれ図１のシーケンサ32からの制御シグナリングに応答して、必要なときに能動バッファ60、62の出力および／または入力間で選択的に切換えるマルチプレクサ64と通信する。
【００５８】
動作において、メモリバンク50のうち１つの休止メモリ領域に読取り、書込みを行うために、第１のメモリバンク52の行ｉ56またはＮ番目のメモリバンクの行ｋ58のようなデータの行を休止メモリ52、54から対応する能動バッファ60、62へ移動するための付勢コマンドが発生されなければならない。読取または書込みコマンドはその後、メモリバンク52、54との間でデータ転送を行うために能動バッファ60、62へ発生されることができる。
【００５９】
新しい行に書込むとき、能動バッファ60、62の内容をメモリバンク52、54へ書込む準備のために、メモリバンク52、54の新しい行を付勢する前に、プレチャージコマンドが図１のシーケンサ32から発生される。１つのメモリバンクが所定の時間にプレチャージされるか、または、全てのメモリバンクが同時にプレチャージされることができる。しかしながら、書込まれるメモリバンクだけがプレチャージされることが多い。各ＥＳＤＲＡＭバッファ60、62は対応する休止ＲＡＭ52、54の類似する、または異なるページからのデータを含むことができる。したがって複数のメモリページは同時に開かれ、それはページを探す時間を減少する。
【００６０】
異なるメモリの内部状態および異なる連続的なメモリリクエストに対しては、種々のメモリタイミング限定により、メモリサイクル間にデータギャップが生じ、これは最適なメモリ帯域幅を得るために最小にされなければならない。図１の制御装置12はこの機能を実行する。
【００６１】
メモリ制御装置12は特に多くのページを探す動作を含む応用で有効であり、その場合には通常の制御装置が多数の望ましくないデータギャップを発生する可能性が大きい。いわゆるクロスページ動作では、ページとも呼ばれる最初にメモリバンクの特定の行が能動バッファへロードされる。異なる行（ページ）をアクセスしてクロスページ動作を完了するために、ロードされたバッファの内容はメモリバンクへ返送されなければならず、その後、新しい行がバッファに書込まれなければならない。通常の制御装置はクロスページ動作を非効率的に処理することが多く、データバスに過剰なデータギャップを生じ、それによってメモリの帯域幅を減少させる。
【００６２】
当業者はＥＳＤＲＡＭメモリおよび仮想チャンネルメモリ（ＶＣＭ）のような他のタイプのメモリが本発明の技術的範囲を逸脱せずに本発明の目的で使用されることができることを認識するであろう。ＥＳＤＲＡＭ、ＳＤＲＡＭ、ＶＣＭは広く使用されているメモリである。
【００６３】
図２のＳＤＲＡＭ16のようなＳＤＲＡＭでは、各メモリバンク52、54は読取りまたは書込みされることのできる単一の能動バッファ60、62を有する。ＥＳＤＲＡＭ（図示せず）では、各メモリバンクは読取専用バッファと、それと分離された書込み専用バッファとを含んでいる能動領域を有している。各能動領域は対応する休止ＲＡＭの同一または異なるページからのデータを含むことができ、両者は同時にアクチブに維持されることができる。したがって、ＥＳＤＲＡＭは特に本発明の種々の実施形態に開示されているメモリサイクル時間最適化装置12、12’では有効である。
【００６４】
仮想チャンネルＳＤＲＡＭ（ＶＣＳＤＲＡＭまたはＶＣＭ）メモリはそれぞれ多数のバッファにアクセスできるメモリバンクを有している。ＶＣＭはしばしば仮想チャンネルと呼ばれるプログラム可能なバッファを有する。仮想チャンネルは任意のメモリバンクに接続するようにプログラムされることができる。これは必要なときに異なる数のバッファが異なるバンクへ接続されることを可能にする。したがってメモリ帯域幅は強化される。ＶＣＭメモリを使用するシステムは本発明の実施形態では非常に有効である。
【００６５】
図３はさらに詳細にメモリ管理装置22’を示している図１のシステム10の別の実施形態10’のブロック図である。別のメモリ管理装置22’はコマンドアービトレータ70とデータアービトレータ72とを含んでおり、その両者はコンピュータシステム14と通信する。
【００６６】
コマンドアービトレータ70は優先順位符号器76から制御入力を受信するマルチプレクサ（ＭＵＸ）74を含んでいる。優先順位符号器76はまたメモリ制御装置12’へコマンド開始入力を提供し、そこからコマンド送信入力を受信する。ＭＵＸ74は種々の入力および出力メモリリクエストコマンドを受信し、それらはコンピュータシステム14から発生したがコマンドアービトレータ70で動作するモジュール（図示せず）により必要とされるようにフォーマットされている。優先順位符号器76はまた対応する入力および出力メモリリクエスト（コマンド）を受信し、それらを予め定められたアルゴリズムにしたがって優先順位を定める。メモリリクエストは優先順位の順に一度に一つづつメモリ制御装置12’へ送信され、それによって高い優先順位に関連するコマンドが最初にメモリ制御装置12’によりサービスされる。
【００６７】
優先順位符号器76は受信された各コマンドの優先順位にしたがって選択信号をＭＵＸ74へ発生する。例えば、優先順位符号器76により決定される最高の優先順位のコマンドはＭＵＸエネーブル信号を発生し、この信号によって対応するコマンドがＭＵＸ74の出力に現れる。メモリ制御装置12’へ入力されるＭＵＸ74の出力は優先順位符号器76により決定される入力コマンドの中で最高の優先順位コマンドを表している。各コマンドはデータアドレス、読取／書込、データマスク情報のような情報を含むことができる。
【００６８】
それ故、優先順位符号器76は信号処理モジュール（コンピュータシステム）14からのメモリリクエストの優先順位を定め、適切なリクエストを選択し、コマンド開始信号をメモリ制御装置12’へ送信し、メモリ制御装置12’はメモリサイクルを最適化する。現在のコマンドの実行後、メモリ制御装置12’はコマンド送信信号を優先順位符号器76に発生し、別のメモリコマンドがメモリ制御装置12’により受信されることができることを承諾する。メモリ制御装置12’はまたデータアービトレータ72とメモリ16との間でデータバス34に沿ったデータ流を制御するために制御信号をデータアービトレータ72へ提供する。
【００６９】
データアービトレータ72はメモリ読取バッファ78およびメモリ書込みバッファ80を含み、これは読取／書込み制御入力をメモリ制御装置12’から受信する。メモリ読取バッファ78とメモリ書込みバッファ80とはそれぞれ入力／出力（Ｉ／Ｏ）スイッチ82とデータバス34を介して、それぞれデータをメモリ16から受信し、メモリ16へデータを提供する。Ｉ／Ｏスイッチ82はデータバス34に沿って読取動作と書込み動作との間の切換えを容易にするためにメモリ制御装置12’から制御入力を受信する。メモリ読取バッファ78はメモリ16から読取られているデータをコンピュータシステム14へ提供する。同様に、メモリ16へ書込まれるデータはコンピュータシステム14からメモリ書込みバッファ80によって受信される。読取および書込みデータのフォーマットに使用されるフォーマットモジュール（図示せず）のような種々の他のモジュールが本発明の技術的範囲を逸脱せずに使用されることができる。
【００７０】
本発明の実施形態では、メモリ制御装置12’はメモリ管理装置22’の一部として考慮される。ＭＵＸ74と優先順位符号器76は本発明の技術的範囲を逸脱せずにメモリ制御装置12’の一部として組込まれることができる。さらに、メモリバッファ78、80は先に参照した米国特許明細書と、ここで参考により組込まれている対応する出願にしたがって先入れ先出し（ＦＩＦＯ）バッファとして構成されることができる。
【００７１】
図４は、図３のメモリ制御装置12’の別の実施形態12’のより詳細なブロック図である。図３および４を参照すると、メモリ制御装置12’はマスタースレーブ関係で配置されている別の命令復号器18’およびシーケンサ20’を含んでいる。別の復号モジュール24’はメモリ状態追跡装置26’と通信し、そのメモリ状態追跡装置26’は図３のメモリ16の種々のページの開／閉状態に関する情報88を維持する。復号モジュール24’はサービスされる次のコマンドに関連するマスク入力をメモリ管理装置22’から受信し、選択的に対応するデータマスク制御（ＤＱＭ）入力をメモリ16に提供するデータマスク（ＤＱＭ）発生器98を含んでいる。
【００７２】
サービスされる次のコマンドの読取／書込み信号（次のコマンド）は復号モジュール24’に入力され、その復号モジュール24’は次のコマンドが現在サービスされているコマンドによりクロスバンク状態を発生させるか否かを決定するためにバンク比較器90を使用する。復号モジュール24’は次のコマンド（新しいメモリリクエスト）がメモリ16中でクロスページ状態を生じるか否かを決定する行比較器92を含んでいる。クロスバンクおよび／またはクロスページ状態が明白であるならば、復号モジュール24’は更新信号をメモリ状態追跡装置26’に送信し、そのメモリ状態追跡装置26’はメモリ16の内部状態を追跡する。
【００７３】
メモリ状態追跡装置26’は更新信号、バンク情報、および行情報をアドレスバス（Ａｄｄｒ．）から受信し、コマンドがシーケンサ状態マシン20’により実行されるとき（Ｃｍｄ送信＝１のとき）対応するバンク開／閉フラグ88を更新する。メモリ状態追跡装置26’からの出力信号は最後および新しいコマンドに対するバンク開／閉情報を提供する。この情報は予め定められた用途特定アルゴリズムにしたがって、最良のシーケンサ開始コマンドと実行時間コードとの決定を助けるために次のコマンドおよび時間コード発生器28’によって使用されることができる。
【００７４】
適切な信号は、クロスバンクまたはクロスページ状態が生じるか否かにかかわりなく復号モジュール24’から次のコマンドおよび時間コード発生器28’へ送信される。次のコマンドおよび時間コード発生器28’はその後、それに応答して適切な実行時間コードを次のコマンドに割当てる。
【００７５】
メモリ管理装置22’から受信され、次のコマンドに対応するメモリアドレス情報はメモリ状態追跡装置26’と復号モジュール24’とに供給される。復号モジュール24’はクロスバンクおよびクロスページ比較を容易にするためにアドレス情報を使用する。
【００７６】
図３の優先順位復号器76からのコマンド開始信号は次のコマンドおよび時間コード発生器28’およびコマンド待機発生器94に送信される。次のコマンドおよび時間コード発生器28’は対応するシーケンサ開始コマンドをシーケンサ状態マシン32’へ選択的に転送する。コマンド待機発生器94はコマンド待機信号をシーケンサ比較器30’へ転送し、シーケンサ状態マシン32’がコマンドをロードされたとき、ロードされたコマンド信号をシーケンサ比較器30’から受信する。シーケンサ状態マシン32’がコマンドをメモリに送信するとき、コマンド送信信号は復号モジュール24’へフィードバックされる。
【００７７】
現在のコマンドに関連する行および列アドレスもまたアドレスＭＵＸ96の入力へ転送され、このアドレスＭＵＸ96はシーケンサ状態マシン32’から制御入力を受信する。アドレスＭＵＸ96はシーケンサ状態マシン32’からの制御信号に応答して、バンク番号および行アドレス、またはバンク番号および列アドレスをメモリに選択的に出力する。
【００７８】
シーケンサ状態マシン32’はまた現在のメモリリクエスト（コマンド）に対応する列選択（ＣＳ）、行アクセスストローブ（ＲＡＳ）、列アクセスストローブ（ＣＡＳ）、Ｒ／Ｗ、クロックエッジ選択（ＣＫＥ）、データマスク（ＤＱＭ）信号のような種々の制御入力をメモリ16に提供する。データバスおよびメモリバッファ制御信号はシーケンサ20’から図３のデータアービトレータ72へフィードバックされる。コマンド送信信号もまた図３のコマンドアービトレータ70の優先順位符号器76へフィードバックされる。
【００７９】
本発明の別の実施形態では、メモリ制御装置12’はシーケンサ20’と命令復号器18’との間で双方向ハンドシェイクおよびフィードバックによるマスター・スレーブパイプラインマシンである。マスターは命令復号器18’であり、シーケンサ20’はスレーブモジュールである。入力アドレスはＥＳＤＲＡＭ／ＳＤＲＡＭアドレスの時間多元化要求に適応するために行および列アドレスに分割する。
【００８０】
命令復号器18’の出力は時間依存性である。命令復号器18’は現在およびその次のメモリリクエスト、シーケンサ状態変数、メモリ状態変数、データマスク状態を次のコマンドおよび時間コード発生器28’への適切な入力に変換する。当業者はデータマスク（ＤＱＭ）発生器98の使用がシーケンサ設計の複雑度を減少できることを認識するであろう。
【００８１】
次のコマンドおよび時間コード発生器28’は図３のメモリ管理装置22’からのコマンド開始信号がエネーブルされるとき、検索表によって最良のシーケンサ開始コマンドおよび実行時間コードの組合せを選択する。コマンド待機発生器94は新しいコマンドがサービスされるために待機している場合には、シーケンス20’に通知するコマンド待機信号を選択的に発生する。メモリ状態追跡装置26’はＥＳＤＲＡＭ／ＳＤＲＡＭメモリ16の内部状態を追跡し、メモリ16の各バンクの開閉状態と、各バンク（図２）の開かれたページのアドレスを追跡する。メモリ状態追跡装置26’はメモリコマンドがシーケンサ20’により実行されるときに更新される。
【００８２】
シーケンサ比較器30’は、コマンド待機発生器94からのコマンド待機信号により示されるように、新しいコマンドが実行を待機しているとき、シーケンサ30’はシーケンサ状態時間コードを実行状態時間コードと比較する。本発明の別の実施形態では、シーケンサ状態時間コードが待機しているコマンドに関連する実行時間コード以上であるならば、シーケンサ状態コマンドは実行のためシーケンサ状態マシン32’へロードされる。
【００８３】
シーケンサ状態マシン32’はワンショット状態マシンである。アイドル状態においてシーケンサ状態時間コードは最大値に設定される。コマンドがシーケンサ状態マシン32’にロードされるとき、シーケンサ状態時間コードは最小値のような低い値でロードされ、コマンドの実行が完了したときに最大値まで増加しつづける。シーケンサ状態マシン32’はその後、アイドル状態に戻る。
【００８４】
定常のアイドル状態では、コマンド待機発生器94からのコマンド待機信号はディスエーブルされ、シーケンサ状態マシン32’は最大時間コードを示し、コマンドをサービスしていない。新しいメモリリクエストが命令復号器18’に到着するとき、シーケンサ比較器30’に入力されるコマンド待機信号はエネーブルされる。最大よりも小さい実行時間コードはその後、シーケンサ比較器30’によってシーケンサ状態時間コードに比較され、これは最初に最大値に設定される。したがって新しいコマンドはシーケンサ20’により直ちに実行される。シーケンサ状態マシン32’が現在のメモリリクエストを実行しているとき、新しいメモリリクエストが発生されるならば、時間コード比較特性は新しいコマンドが適切な実行時間まで実行されるのを待機することを確実にする。
【００８５】
図５は図１、３、４のメモリ制御装置12、12’を使用するように適合された方法100のフロー図である。図１および５を参照すると、最初のコマンド開始ステップ110において、命令復号器18はメモリリクエストが保留中であることを示すコマンド開始信号がエネーブルされているか否かを決定する。メモリリクエストが保留中であるとき、制御は受信ステップ102へ進む。
【００８６】
受信ステップ102では、メモリ制御装置12の命令復号器18は（コマンドシーケンスとも呼ぶ）メモリリクエスト、（シーケンサ状態時間コードを含む）シーケンサ状態変数、メモリ状態追跡装置26を介して維持されるメモリ状態変数を受信して選択的にフォーマットする。
【００８７】
結果的な選択的にフォーマットされた情報は後続するフォーマット化ステップ104で使用される。フォーマット化ステップ104では、結果的な情報は、次のコマンドおよび時間コード発生器28により使用され、実行時間コードをメモリリクエストに対応している受信されたコマンドシーケンスへ最適に割当てられる。結果的なコマンドシーケンスおよび実行時間コード対は、命令復号器18が次に処理される最適なコマンドシーケンスを決定することを可能にするために特別な優先順位符号器（図３の76を参照）を介して解析されることができる。その代りに、コマンドは一度に一つづつ命令復号器18により受信されて処理され、それによって与えられ受信されたコマンドシーケンスは実行時間コードを割当てられ、これはシーケンサ20によりサービスされるときに決定される。この場合、コマンドの優先順位の順序付けは命令復号器18が実行時間コードを割当てる前に、図３の優先順位符号器76などによって行われることができる。与えられたコマンドシーケンスが処理される時間はその割当てられる実行時間コードと現在のシーケンサ状態時間コードの関数である。
【００８８】
その後の比較ステップ106では、次に処理されるコマンドシーケンスの実行時間コードは、比較よりも大きいか等しいかのように、１以上の予め定められた比較基準に基づいてシーケンサ状態時間コードと比較される。比較結果が所望の基準を満たしているか、または所望の条件が満たされているならば、制御はサービスステップ108へ進む。満たしていないならば、制御は比較ステップ106に戻る。図５には示されていないが、方法100の動作中、シーケンサ20は所定のコマンドを処理するので、シーケンサ20の状態は連続してシーケンサ20により更新されることに注意すべきである。したがって、方法は静的なシーケンサ状態によって、ステップ106で無限のループに入らない。
【００８９】
サービスステップ108では、比較ステップ106で、１以上の所望の条件または基準を満たす実行時間コードに関連するコマンドシーケンスはシーケンサ20によりサービスされる。シーケンサ状態時間コードはサービス中に更新される。続いて、制御はコマンドチェックステップ112へ進み、ここでシーケンサ状態マシン（図４の32’参照）から出力されたコマンド送信信号はコマンドがシーケンサ20または20’によりメモリに送信されているか否かを決定するようにチェックされる。コマンドが送信されているならば、制御は最初のコマンド開始ステップ110へ戻る。送信されていないならば、制御はコマンド送信チェックステップ112へ戻る。方法100の動作中、図１のシーケンサ20の状態はシーケンサ20が与えられたコマンドを処理するとき、シーケンス20により連続的に更新されることに注意すべきである。したがって方法100は静的なシーケンサ状態のために、ステップ112で無限ループに入らない。
【００９０】
図６は本発明の１実施形態にしたがって構成されるＳＤＲＡＭ制御装置（図３の12および図４の12’参照）用の図３のＳＤＲＡＭデータバス34上の最小のデータギャップを示しているタイミング図である。このタイミング図120は例示的なクロック信号122、コマンド開始信号124、シーケンサ開始コマンド信号126、実行時間コード値128、コマンド待機信号130、シーケンサ状態時間コード132、コマンド送信信号134、ＳＤＲＡＭコマンドシーケンス136、ＳＤＲＡＭアドレス138、ＳＤＲＡＭデータバスシーケンス144を含んでいる。データバスシーケンス144は図１、２、３のＳＤＲＡＭデータバス34に沿って送信される。
【００９１】
タイミング図120は図４の制御装置12’と図３のシステム10’の動作を示している。図３、４、６を参照すると、ＥＳＤＲＡＭ／ＳＤＲＡＭ16は列アクセスストローブ待ち時間（ＣＬ）＝１およびバースト長（ＢＬ）＝８で動作するように設定されている。全てのメモリリクエスト、即ちコマンドシーケンス136は読取（Ｒｄ）動作に関連されている。
【００９２】
タイミング図120により示されている例示的なシナリオは定常状態で開始し、ここで信号コマンド待機信号130は０（ディスエーブル）であり、シーケンサ状態132は１１（最大）である。新しいコマンドが開始され、コマンド開始信号124は１に設定される。コマンド待機信号130はその後、エネーブルされ、新しい開始コマンド126（アクチブ（ＡＣＴ））と実行時間コード（５）の組合せ（ＡＣＴ、５）が次のクロックサイクルで発生される。
【００９３】
コマンド待機信号130がエネーブルされるとき、シーケンサ状態132は１１であり、これは５である実行時間コード128よりも大きい。したがって、シーケンサ開始コマンド126（ＡＣＴ）は次のクロックサイクルで図４のシーケンサ状態マシン32’へロードされ、新しいＳＤＲＡＭコマンドシーケンス136（ＡＣＴバンク１（Ｂ１）、ＲｄＢ１）は直ちに実行される。
【００９４】
コマンド待機信号130はさらにコマンドがシーケンサ20’へロードされるのを停止するために新しいＳＤＲＡＭコマンドシーケンス136（ＡＣＴ  Ｂ１、ＲｄＢ１）のロード時にディスエーブルされる。シーケンサ20’が図３のＳＤＲＡＭ16へのメモリ制御コマンドの送信を完了したとき、コマンド送信信号134は１クロックサイクルだけエネーブルにされ、それによって制御装置12’が別のメモリコマンドを受けることができることを通報する。
【００９５】
現在のＳＤＲＡＭコマンド136（ＡＣＴ  Ｂ１、ＲｄＢ１）が実行され、ＳＤＲＡＭ16がデータバーストモードにある一方で、コマンド開始信号124により示される第２のメモリコマンドは図４の命令復号器18’によって受信される。次のコマンドおよび時間コード発生器28’は最適の実行時間コード128（７）をシーケンサ開始コマンド126（プレチャージ（ＰＣｈ））へ割当て、図４のコマンド待機発生器94からのコマンド待機信号130がエネーブルにされる。新しい（第２の）シーケンサ開始コマンド126（ＰＣｈ）はシーケンサ状態時間コード132が最適なコマンドのオーバーラップの７に到達するまで実行されない。第２のＳＤＲＡＭコマンドシーケンス136（ＰＣｈ  Ｂ１、ＡＣＴ  Ｂ１、Ｒｄ  Ｂ１）はシーケンサ状態時間コードが７に到達するときに実行される。コマンド送信信号34はコマンドの実行の完了後にエネーブルにされる。第２のＳＤＲＡＭコマンドシーケンス136（ＰＣｈ  Ｂ１、ＡＣＴ  Ｂ１、Ｒｄ  Ｂ１）は対応するＳＤＲＡＭアドレス138（行Ｂ、列Ｘ）にオーバーラップし、対応するデータ（Ｘ１．．．Ｘ８）はその後、データバス34に沿って送信される。２クロックサイクルの最小のデータギャップ140は第１のコマンド136（Ａｃｔ  Ｂ１、ＲｄＢ１）による送信されるデータ（Ｍ１．．．Ｍ８）と、第２のコマンドシーケンス136（ＰＣｈ  Ｂ１、ＡＣＴ  Ｂ１、ＲｄＢ１）による送信されるデータ（Ｘ１．．．Ｘ８）との間で生じる。
【００９６】
本発明の実施例では、第２のメモリコマンドシーケンス136（ＰＣｈ  Ｂ１、ＡＣＴ  Ｂ１、ＲｄＢ１）はバンクＢ１の異なる行を読取ることを含んでおり、即ち行Ｂ（ＳＤＲＡＭアドレス138参照）の代りに行Ａを読取ることを含んでいることに注意すべきである。これは読取後に同一のバンク（Ｂ１）のクロスページアクセス動作において読取ミスが続くことを表しており、ここでは異なる行（行Ｂ）は同じバンク（Ｂ１）から読取られる。これは最初にプレチャージ（ＰＣｈ）動作を介して行Ａ（ページＡ）を閉じ、その後付勢（ＡＣＴ）動作を介して新しいページを開き、その後読取動作（Ｒｄ）によって新しいページ（ページＢ）から読取ることを必要とする。第２のコマンドシーケンス136（ＰＣｈ  Ｂ１、ＡＣＴ  Ｂ１、ＲｄＢ１）に関連するクロスページアクセスに対する最適のデータギャップは２クロックサイクルである。通常の状態マシン制御装置またはパイプライン化された制御装置は以下で詳しく説明するように、それぞれこのようなクロスページ動作中にしばしば４または３クロックサイクルのデータギャップを生じる。
【００９７】
第３のメモリコマンドシーケンス136（ＰＣｈ  Ｂ２、ＡＣＴ  Ｂ２、ＲｄＢ２）は第３のコマンド開始シーケンス126（ＰＣｈ）が付勢され、５の最適な実行時間コードを割当てられた後に、コマンド待機信号130がエネーブルにされた後、シーケンサ状態時間コード132が実行時間コード（５）に等しいか大きくなった後に開始される。しかしながら、この例では、第３のシーケンサ開始コマンド126（ＰＣｈ）および対応する実行時間コード割当て128（５）は１クロックサイクル後に到着する。コマンド待機信号130はシーケンサ開始時間コード132が５ではなく６であるときにエネーブルにされる。
【００９８】
シーケンサ12’は可能な限り速やかに第３のメモリコマンド136（ＰＣｈ  Ｂ２、ＡＣＴ  Ｂ２、ＲｄＢ２）を実行するが、１クロックサイクル142のデータギャップはデータバースト間のデータバスシーケンス144に存在する。第３のメモリコマンドシーケンス136（ＰＣｈ  Ｂ２、ＡＣＴ  Ｂ２、ＲｄＢ２）は第２のコマンドとは異なるバンク（Ｂ２）から読取られる。したがって、（ＰＣｈ、５）のシーケンサ開始コマンド126と時間コード128の組合せが時間内、即ち１クロックサイクル早く到着したならば、データギャップ142は存在しない。
【００９９】
図４の次のコマンドおよび時間コード発生器28’はコマンドシーケンス136全体を発生してそれをシーケンサ状態マシン32’へ転送し、シーケンサ状態マシン32’はその後直列にコマンドを出力する。その代りに、次のコマンドおよび時間コード発生器28’は開始コマンド126を発生し、シーケンサ状態マシン32’は次のコマンド136を発生する。これはさらにコンパクトで簡単な設計を与える。
【０１００】
コマンドシーケンス136はまたメモリ制御バスとも呼ばれる。メモリ制御バス136はメモリアドレスバス138と共にコマンドシーケンスバスを形成する。したがって、第１のコマンドはＡＣＴ  Ｂ１行Ａ、ＲｄＢ１  Ｃｏｌ  Ｍとして考慮されることができる。
【０１０１】
例示的なタイミング図120はメモリ制御装置12’の内部動作を示し、それは連続的なメモリサイクル間のデータギャップを最小にすることができる。
【０１０２】
図７はそれぞれ通常の状態マシンメモリ制御装置およびパイプラインメモリ制御装置により示される並列データギャップ152、154、140に対する本発明の１実施形態12’により示される並列データギャップのタイミング図150である。データギャップ152、154、140は図６の第２のメモリコマンドシーケンス136（ＰＣｈ  Ｂ１、ＡＣＴ  Ｂ１、ＲｄＢ１）に関連しており、これは同じバンク（Ｂ１）のクロスページアクセスシナリオ上に読取ミスが後続する読取を表している。
【０１０３】
図３、４、６、７を参照すると、ＥＳＤＲＡＭ／ＳＤＲＡＭ16はＣＬ＝１およびＢＬ＝８モードに設定され、全てのメモリリクエストは読取動作である。図６を参照して説明したように、データバスシーケンス144のデータギャップ140は２クロックサイクルだけである。
【０１０４】
通常の状態マシンデータバス156は４クロックサイクルのデータギャップ152を示す。この過剰なデータギャップ152はメモリの帯域幅と性能を減少する。通常の状態マシンデータバス156に対応する状態158の例示的なシーケンスが示されている。
【０１０５】
Ｅｕｒｅｋａ  Ｔｅｃｈのパイプライン化された制御装置のデータバス160は（それらの仕様にしたがって）３クロックサイクルのデータギャップ154を示す。それ故、図４に説明されているメモリ制御装置12’は小さいデータギャップと高いメモリ帯域幅を生じる。
【０１０６】
したがって本発明を特定の応用に対する特定の実施形態を参照してここで説明した。当業者は付加的な変形、応用、実施形態をその技術的範囲内で認識するであろう。
【０１０７】
それ故、特許請求の範囲は本発明の技術的範囲内で任意のおよび全てのこのような応用、変形、実施形態をカバーすることを意図している。
【図面の簡単な説明】
【０１０８】
【図１】本発明の１実施形態にしたがった効率的なメモリ制御装置を使用するシステムのブロック図。
【図２】図１のメモリ制御装置により制御される例示的なＳＤＲＡＭのさらに詳細なブロック図。
【図３】さらに詳細にメモリ管理装置を示している図１のシステムの別の実施形態のブロック図。
【図４】図３のメモリ制御装置の別の実施形態のさらに詳細なブロック図。
【図５】図１、３、４のメモリ制御装置と共に使用するように適合された方法のフロー図。
【図６】本発明の１実施形態にしたがって構成されるＳＤＲＡＭ制御装置用のＳＤＲＡＭデータバス上の最小のデータギャップを示しているタイミング図。
【図７】通常の状態マシンメモリ制御装置およびパイプラインとして構成されたメモリ制御装置により示される並列データギャップ対本発明の１実施形態により示される並列データギャップのタイミング図。
【図１】
2007524146.tif 000005
【図２】
2007524146.tif 000006
【図３】
2007524146.tif 000007
【図４】
2007524146.tif 000008
【図５】
2007524146.tif 000009
【図６】
2007524146.tif 000010
【図７】
2007524146.tif 000011
【国際調査報告】
2007524146.tif 000012
2007524146.tif 000013