(57)【要約】メモリユニットのコントローラをプログラミングする方法が開発された。本方法はメモリユニットの可変初期化パラメータと、各パラメータに対するクロック遅延及びコマンド遅延とを入力するステップを含む。クロック遅延とコマンド遅延との各ペアに基づいて、読出しコマンドと書込みコマンドとに対する遅延のセットを計算する。読出し及び書込み遅延に基づいてクロック及びコマンド遅延の各ペアに対するシステム性能を計算し、最適なシステム性能を提供する初期パラメータを選択する。
2004527819.tif 000002
【特許請求の範囲】
【請求項１】
メモリユニットのコントローラをプログラミングする方法であって、
メモリユニットの複数の初期化パラメータを入力するステップと、
各初期化パラメータに対してクロック遅延とコマンド遅延とを計算するステップと、
クロック遅延とコマンド遅延との各ペアに対して読出しコマンドパラメータのセットを計算するステップと、
クロック遅延とコマンド遅延との各ペアに対して書込みコマンドパラメータのセットを計算するステップと、
クロック遅延とコマンド遅延との各ペアに対してシステム性能を計算するステップと、
最適なシステム性能を提供する初期化パラメータを選択するステップと、
を含む方法。
【請求項２】
前記複数の初期化パラメータが、
システムパラメータと、
ＳＤＲＡＭユニットのデバイスパラメータと、
システムクロックとＳＤＲＡＭユニットクロックとの時間周期比と、
を備える、請求項１記載の方法。
【請求項３】
前記システム性能が、
帯域幅性能と、
マージン性能と、
を備える、請求項１記載の方法。
【請求項４】
読出しコマンド遅延のセットが、
サンプル遅延と、
ＲＡＳからＣＡＳまでの遅延と、
有効部の期間延長遅延と、
プリチャージ遅延と、
オートリフレッシュ遅延と、
現在のコマンドの後の他のバンクに対する遅延と、
備える、請求項１記載の方法。
【請求項５】
書込みコマンド遅延のセットが、
プッシュ遅延と、
ＲＡＳからＣＡＳまでの遅延と、
有効部の期間延長遅延と、
プリチャージ遅延と、
オートリフレッシュ遅延と、
現在のコマンドの後の他のバンクに対する遅延と、
備える、請求項１記載の方法。
【請求項６】
前記メモリユニットが単一のマイクロプロセッサをサポートする、請求項１記載の方法。
【請求項７】
前記メモリユニットが複数のマイクロプロセッサをサポートする、請求項１記載の方法。
【発明の詳細な説明】
【発明の分野】
【０００１】
本発明はコンピュータシステム用のメモリコントローラをプログラミングすることに関する。
【発明の背景】
【０００２】
コンピュータシステムの動作において、中央処理装置（ＣＰＵ）により駆動されるメモリコントローラ（ＭＣ）は外部メモリと相互作用する。単一集積回路チップにおけるＣＰＵはマイクロプロセッサと呼ぶことが多い。メモリコントローラはマイクロプロセッサチップの外部にあっても、又はその内部にあってもよい。マイクロプロセッサチップの内部にあるＭＣはプロセッサクロックの速度で動作でき、その速度はコンピュータ速度を示す。現代の高性能コンピュータシステムにおいて、シンクロナス・ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）は、通常は外部メモリとして使用される。ＳＤＲＡＭ用のクロックはプロセッサクロックより数分の１の低い速度で動作する。
【０００３】
ＭＣとＳＤＲＡＭとの間を移動する信号は伝わるのに有限時間がかかり、ＭＣとＳＤＲＡＭの両方とも応答するのに有限時間がかかる。従って、信号伝達の有限速度と、デバイス又はシステムの有限の応答時間とに時間遅延が関連する。これらの時間遅延は、コンピュータシステムを構成する電子デバイスの構造及び動作に関わる物理的なプロセスにその原因がある。したがって、コンピュータ動作において見られる種々の時間遅延を最小すなわち最適にすることは可能であるが、取り除くことはできない。信頼性のあるコンピュータ設計においてはコンピュータ動作に影響する重要な時間遅延をすべて考慮する必要がある。
【０００４】
いくつかの時間遅延は常に重要であり、従って、入出力動作に対するＭＣの設計において考慮されなければならない。他のいくつかの時間遅延の重要性はプロセッサクロックの時間周期に対して評価される。それ故、コンピュータ速度が増すにつれて、種々の追加的な時間遅延を考慮して、ＭＣの信頼性のある動作を保証する必要がある。ＭＣ及びＳＤＲＡＭに関わるコンピュータ入出力動作において、伝搬遅延のため、ＭＣから生じる信号はＳＤＲＡＭに即座に現れず、ＳＤＲＡＭから生じる信号はＭＣに即座に現れない。更に、ＳＤＲＡＭに関連した種々の時間遅延は、その特定のＳＤＲＡＭと、コンピュータ回路基板におけるそのＳＤＲＡＭの実際の物理的なレイアウトとによる。従って、ＭＣとＳＤＲＡＭとの間の信号遅延は、システム構成及びメモリ性能規格のタイプが異なるためシステム毎に変わる。
【０００５】
入出力（Ｉ／Ｏ）動作などのコンピュータ動作はプロセッサクロックと同期させられる。Ｉ／Ｏ動作はデジタルデバイス及びシステムを構成する論理ゲート及びフリップフロップにおける正確なデジタル遷移を基礎にして行われる。コンピュータ動作を信頼性のあるものにするため（例えば、メモリからのデータ読出し）、正確な遷移時刻の前後の短時間、関与する信号（例えば、コマンド信号）を安定にホールドする必要がある。前に述べた種々の時間遅延と共に、かかる時間の考慮はクロック時間周期の重要な一部を構成する。
【０００６】
デジタルコンピュータにおけるメモリコントローラは一般には時間周期の半分だけ遅延したプロセッサクロック信号のレプリカを生成する機能を有する。これによりプロセッサクロック周期の半分のデジタル時間遅延単位が生成される。コンピュータシステムに本質的に存在する前述のアナログ時間遅延と共にこのデジタル時間遅延単位により、ＳＤＲＡＭとの信頼性のある入出力動作のためのプログラミングされたＭＣの設計は左右される。
【０００７】
ＭＣとＳＤＲＡＭとの通信用のデジタル信号は３つの範疇に入る：クロック信号；コマンド信号；及びデータ信号。コンピュータシステムにおいて、多重信号線はコマンド経路及びデータ経路の両方を構成する。適切な時刻に適切なデジタル遷移を作りだすため、すべての通信Ｉ／Ｏ信号は一致して流れるように設計する必要がある。これらすべての信号の正確なタイミング設計は、例えば、消去可能プログラム可能読出し専用メモリ（ＥＰＲＯＭ）又はフラッシュメモリに包含された埋め込みソフトウエアである“ファームウエア”により行うことができる。現在のＭＣプログラミング設計の技術は、スプレッドシートを使用して可能性のあるタイミング組み合わせをすべて記憶し、適切な解を手動で設計することであった。かかる実践は特定のシステム構成に固有のものである。これは、考慮すべき時間遅延要素の数が、プロセッサクロック速度の増加に伴い増すにつれて一層困難になり、達成可能な最高の性能のために設計を最適化できない。したがって、数学的な精度で設計問題を明確にして、その問題を解決するため一般的なアルゴリズムを作りだすことが必要である。
【発明の概要】
【０００８】
一態様において、本発明はメモリユニットのコントローラをプログラミングする方法に関し、前記方法はメモリユニットの複数の初期化パラメータを入力するステップと、各初期化パラメータに対してクロック遅延とコマンド遅延とを計算するステップと、クロック遅延とコマンド遅延との各ペアに対して読出しコマンド遅延のセットを計算するステップと、クロック遅延とコマンド遅延との各ペアに対して書込みコマンド遅延のセットを計算するステップと、クロック遅延とコマンド遅延との各ペアに対してシステム性能を計算するステップと、最適なシステム性能を提供する初期化パラメータを選択するステップとを備える。
【０００９】
本発明の他の態様及び利点は以下の記述及び添付の特許請求の範囲から明らかである。
【００１０】
本発明は、ＳＤＲＡＭのような外部メモリとの入出力動作を正しく且つ最適に行うためにメモリコントローラをプログラミングする方法に関する。本発明の方法は、ＳＤＲＡＭのようなデバイス及びシステムの動作に本質的に存在する種々の時間遅延及び時間制約の系統的な分析を提供する。意図的なプログラマブル時間遅延要素をＭＣにおいて導入し、設計要素として利用する。かかる時間遅延要素の１つはプロセッサクロック時間周期であり、より小さいデジタル時間単位である。他の時間遅延はＳＤＲＡＭクロック時間周期であり、より大きいデジタル時間単位である。そこでアナログ遅延要素（伝搬遅延に関わるＳＤＲＡＭデバイスパラメータ及びシステム入力パラメータ）と共に、これら２つのデジタル時間遅延入力パラメータを用いて、ＭＣとＳＤＲＡＭとの間の通信における正しく且つ最適なタイミングを系統的に設計する。外部メモリとの高速で且つ効率的な入出力動作を提供するためのＭＣをプログラミングする、この系統的な方法の例示的実施形態について、添付図面を参照して以下に説明する。
【００１１】
図１ａは外部メモリコントローラ（ＭＣ）１５と接続された（１３）プロセッサ１１を示すコンピュータシステムの概略図である。ＭＣ１５は入出力動作のため外部メモリ１９に接続される（１７）。
【００１２】
図１ｂはプロセッサ２１を示すコンピュータシステムの概略図で、プロセッサ内にはメモリコントローラ２３がある。ＭＣは外部メモリ２７と通信する（２５）。マイクロプロセッサチップの内部にＭＣを有することにより、ＭＣがプロセッサクロック速度で動作できるようになる。そこで、ＭＣは入出力（Ｉ／Ｏ）動作のためより速い外部メモリ（ＳＤＲＡＭ）アクセスを有するように設計できる。
【００１３】
図２は代表的なＳＤＲＡＭコントローラの接続配置３０を描写する。ＭＣ３１とＳＤＲＡＭ３３との間の通信信号は３つのグループに物理的に分類される：クロック信号３５；一方向（ＭＣからＳＤＲＡＭへ）コマンドバス３７；及び双方向データバス３９。コマンド信号とデータ信号とは同期的にサンプリングされる。クロック信号は同期的なコンピュータ動作を可能にする。
【００１４】
図３は基本的なＳＤＲＡＭ読出し及び書込みアクセス４０を示す。３つの信号がプロットに示されている：クロック信号４１；コマンド信号４３；及びデータ信号４５。それらの３つの信号はＳＤＲＡＭ  Ｉ／Ｏピンにおける信号を表す。３つの信号は図２で論じた信号グループに対応する。ＳＤＲＡＭはクロックと同期して動作するので、コマンドはクロックエッジ、例えば、図でＡ４７、Ｂ４９、Ｄ５３及びＥ５５として示した立ち上がりエッジでサンプリングする必要がある。ＳＤＲＡＭ読出し又はＳＤＲＡＭ書込みの場合、ＳＤＲＡＭはＲＡＳ（行アドレスストローブ）５７及びＣＡＳ（列アドレスストローブ）５９コマンドを受信する。同様に、ＳＤＲＡＭ読出し又はＳＤＲＡＭ書込みの場合、ＳＤＲＡＭはＲＡＳ６１及びＣＡＳ６３コマンドを受信する。ＲＡＳからＣＡＳまでの遅延はＲＡＳ−ＣＡＳ遅延として定義され、それはＳＤＲＡＭ製造者から与えられたＳＤＲＡＭパラメータである。システムは最小の与えられたＲＡＳ−ＣＡＳ遅延を使用して最良の性能を達成する。コマンドを正しくサンプリングするため、クロックとコマンドとは、製造者から与えられた最小のセットアップ時間Ｆ６５及び最小のホールド時間Ｇ６７を満たす必要がある。読出し動作の場合、データはクロック立ち上がりエッジＣ５１（キャッシュレイテンシ２のみを示す）でデータバス上に現れる。書込み動作の場合、書込みデータ７１がＣＡＳコマンドと同時にサンプリングされるように、書込まれるデータはＣＡＳコマンド６３と同時にドライブされる必要がある。
【００１５】
正しくＭＣをプログラミングするアルゴリズムを設計するには、ＳＤＲＡＭのようなメモリデバイスの物理的動作に関連した種々の時間遅延及び時間制約（アナログ型時間要素）を規定する必要がある。
【００１６】
表１はＳＤＲＡＭの例示的な仕様である。記載したパラメータの全てがこのアルゴリズム開発のため必要というわけではない。
【表１】
2004527819.tif 000003
ＭＣとＳＤＲＡＭとの正しく且つ最適なＩ／Ｏ動作に要求されるＭＣ用のプログラマブルパラメータを規定する必要がある。表２はＭＣにおける関連する１７個のプログラマブルパラメータを記載し説明している。リフレッシュ制御パラメータ及びＳＤＲＡＭ初期化パラメータなどの他のプログラマブルパラメータは記載していない。これらのタイミングパラメータはメモリ読出し、メモリ書込み、同じバンクアクセス、異なるバンクアクセスなどのＩ／Ｏ動作に必要である。
【表２】
2004527819.tif 000004
表３はＭＣプログラミングパラメータを計算するための所要のシステム入力パラメータを記載している。１０個の重要なパラメータを記載し説明している。これらのシステムパラメータは設計方法に対する入力として必要である。この表は例示的な開発プロセスを説明している。
【表３】
2004527819.tif 000005
表２で説明した設計開発のための設計パラメータを評価する際、種々の設計入力パラメータを特徴付け、評価することが必要である。いくつかの時間遅延要素は信号伝搬遅延から生じる。電気信号は集積回路内の有限の距離を伝わるために有限の時間量がかかる。プロセッサクロック速度が増すと、これらの時間遅延要素がより重要になる。伝搬遅延がプロセッサクロック周期の相当な割合になると、ＭＣ及びＳＤＲＡＭに関わる、正しく且つ信頼性のあるＩ／Ｏタイミング設計を通して伝搬遅延を評価する必要がある。これらの時間遅延要素はコンピュータハードウエアの物理的なレイアウトに依存するアナログ型である。
【００１７】
図４はＭＣとＳＤＲＡＭとの間のアナログ遅延を示す。６個の信号波形がプロット８０に示され、ＭＣ及びＳＤＲＡＭ  Ｉ／Ｏピンの両方における信号を表す。上の３個の信号８１、８５、及び８９は図２のＭＣ  Ｉ／Ｏピンにおける信号グループに対応する。下の３個の信号８３、８７、及び９１は図２のＳＤＲＡＭ  Ｉ／Ｏピンにおける信号グループに対応する。クロック信号８１及び８３はＭＣからＳＤＲＡＭへの一方向である。コマンドバス信号８５及び８７はＭＣからＳＤＲＡＭへの一方向である。データバス信号８９及び９１はＭＣとＳＤＲＡＭとの間の双方向である
アナログｃｌｏｃｋ＿ｄｅｌａｙ９３はＭＣからＳＤＲＡＭへのクロック信号の遅延である。ｃｌｏｃｋ＿ｄｅｌａｙはシステム入力パラメータ（表３）として供給されたｃｌｏｃｋ＿ｄｅｌａｙ＿ｍｉｎとｃｌｏｃｋ＿ｄｅｌａｙ＿ｍａｘとの範囲内で変わる。下記の関係が成り立つ：
【数１】
2004527819.tif 000006
アナログｃｍｄ＿ｄｅｌａｙ１０３はＭＣからＳＤＲＡＭまでのコマンドバス信号の遅延である。ｃｍｄ＿ｄｅｌａｙはシステム入力パラメータ（表３）としてのｃｍｄ＿ｄｅｌａｙ＿ｍｉｎとｃｍｄ＿ｄｅｌａｙ＿ｍａｘとの範囲内で変わる。下記の関係が成り立つ：
【数２】
2004527819.tif 000007
アナログｓｄｒａｍ＿ｍｃ＿ｄａｔａ＿ｄｅｌａｙ１０９は読出し動作に対するＳＤＲＡＭからＭＣまでのデータ遅延である。ｓｄｒａｍ＿ｍｃ＿ｄａｔａ＿ｄｅｌａｙはシステム入力パラメータ（表３）として供給されたｓｄｒａｍ＿ｍｃ＿ｄａｔａ＿ｄｅｌａｙ＿ｍｉｎとｓｄｒａｍ＿ｍｃ＿ｄａｔａ＿ｄｅｌａｙ＿ｍａｘとの範囲内で変わる。この遅延に対して下記の関係が成り立つ：
【数３】
2004527819.tif 000008
アナログｍｃ＿ｓｄｒａｍ＿ｄａｔａ＿ｄｅｌａｙ１１３は書込み動作に対するＭＣからＳＤＲＡＭまでのデータ遅延である。ｍｃ＿ｓｄｒａｍ＿ｄａｔａ＿ｄｅｌａｙはシステム入力パラメータ（表３）として供給されたｍｃ＿ｓｄｒａｍ＿ｄａｔａ＿ｄｅｌａｙ＿ｍｉｎとｍｃ＿ｓｄｒａｍ＿ｄａｔａ＿ｄｅｌａｙ＿ｍａｘとの範囲内で変わる。この遅延に対して下記の関係が成り立つ：
【数４】
2004527819.tif 000009
ＭＣはコマンド及びデータがＭＣ及び／又はＳＤＲＡＭにおいて正しくサンプリングされることを保証する必要がある。コマンドはＳＤＲＡＭ規格で与えられたセットアップ時間１１９及びホールド時間１２１を満たさなければならない。図４に示すように、読出し動作の場合、ＭＣは遅延１０８でサンプリングし、セットアップ時間１０４及びホールド時間１０６でデータを取得し、ＭＣ Ｉ／Ｏ規格を満たすように内部的にプログラミングされる必要がある。前に注記したように、ＭＣにおけるデータ１０７はＳＤＲＡＭにおけるデータ１０５と同じであり、時間遅延１０９で到達している。書込み動作の場合、ＭＣは、データ１１１がＳＤＲＡＭ規格を満たすセットアップ時間１１２及びホールド時間１１４でＳＤＲＡＭにおいてサンプリングされるように制御する必要がある。
【００１８】
さまざまなシステム設計に対して適切な時刻に上記セットアップ時間及びホールド時間を満たすため、ＭＣはプログラマブルでなければならない。表２で説明したプログラマブルパラメータは正しい量により然るべき時間遅延を補正し、ＭＣからＳＤＲＡＭへのＩ／Ｏ動作における最良のタイミング及び性能を達成する。
【００１９】
図５はＭＣのクロック及びコマンドプログラミング２００を描写する。それは図４で論じたような伝搬経路遅延によるアナログ遅延を含まない。マイクロプロセッサ内にあるＭＣは、ＣＰＵクロック解像度でのクロック２０１の遅延（ｃｌｋ＿ｄｌｙ）２０５だけ遅延したバージョン２０３を生成することができる。ＣＰＵクロック解像度でのこのプログラマブルデジタル遅延２０５により、ＭＣ出力においてコマンド信号２０６における対応するプログラミングされた遅延２１３が作りだされる。
【００２０】
内部的に、ＭＣは、常にクロックと同期し且つＳＤＲＡＭクロック解像度を有するベース信号を有する。ＳＤＲＡＭクロックレートはＣＰＵ（マイクロプロセッサ）クロックレートより低い（通常は１５分の１乃至４分の１）。なお、ＭＣはＳＤＲＡＭ入力クロック２０７においてＳＤＲＡＭクロック解像度でプログラマブル遅延（ｃｍｄ＿ｄｌｙ）２０９を有するコマンドを生成でき、その遅延はＳＤＲＡＭで入力されるコマンド信号２１５における対応するプログラミングされた遅延２１７となる。したがって、ＣＰＵクロック解像度でｃｌｋ＿ｄｌｙ２０５を、またＳＤＲＡＭクロック解像度でｃｍｄ＿ｄｌｙ２０９をプログラミングし、且つ、図４に示したアナログ遅延ｃｌｋ＿ｄｅｌａｙ及びｃｍｄ＿ｄｅｌａｙを考慮することにより（図５には含まれない）、ＳＤＲＡＭへのコマンドはＳＤＲＡＭクロック２０７の立ち上がりエッジ２１９においてサンプリングされることになる。ｔＳＳをＳＤＲＡＭ規格で規定されたセットアップ時間とし、ｔＳＨを同規格で規定されたホールド時間とし、ｃｌｋｒを、プロセッサに対するＳＤＲＡＭクロック周期比と同じであるプロセッサとＳＤＲＡＭとのクロック周波数比とする。セットアップ時間に対して、下記の関係が成り立つ：
【数５】
2004527819.tif 000010
また、ホールド時間に対して、下記の関係が成り立つ：
【数６】
2004527819.tif 000011
ここでＮは両方の不等式を満たす整数である。プログラマブル遅延ｃｌｋ＿ｄｌｙ及びｃｍｄ＿ｄｌｙは範囲｛０，１，．．．，ｃｌｋｒ−１｝において離散的単位で作り出す必要がある。ｃｌｋ＿ｄｌｙ及びｃｍｄ＿ｄｌｙに対する適法な設定を得るには下記のステップを実行する必要がある：
（i）  ｃｍｄ＿ｄｌｙ＝｛０，１，．．．，ｃｌｋｒ−１｝を設定する。
（ii）  ｃｌｏｃｋ＿ｄｌｙを０からｃｌｋｒ−１まで変化させる。
（iii）  書込みセットアップ時間について以下で導出される（数１９）のｗｒ＿ｐｓｈ＿ｄｌｙ（プロセッサクロック単位での書込みデータアウトをプッシュするためのウエイト時間）に関わる関係に上記値を代入し、アイドルレイテンシに関して可能な最良の性能を得る。選択した現在のｃｍｄ＿ｄｌｙ及びｓｄｒａｍ＿ｃｌｋ＿ｄｌｙ値の有効性をチェックする。有効な設定は上記３つのステップの繰り返しに基づいて得ることができる。
【００２１】
次に、読出し動作に関わる正しいＭＣプログラマブルパラメータを生成するために、読出し動作について考える。この目的のため、図６のＳＤＲＡＭ読出しタイミング図３００を考える。この図は最近の実際のＣＰＵ：ＵｌｔｒａＳＰＡＲＣ−IIIのＳＤＲＡＭ読出しタイミングの簡素化したバージョンである。
【００２２】
第１信号３０１はプロセッサ内部クロックである。第２信号３０３はＭＣ内部ベースＳＤＲＡＭクロックである。ＳＤＲＡＭクロック周期は常にプロセッサクロック周期の倍数である。第３信号ライン３０５はＭＣ Ｉ／ＯピンにおけるＳＤＲＡＭクロックを表す。それは内部ＳＤＲＡＭクロックベースに対してプログラマブル遅延（ｃｌｋ＿ｄｌｙ）３０７を有する。第４信号３０９はＳＤＲＡＭコマンド同期信号である。ＳＤＲＡＭコマンドはすべてこの信号に同期する必要がある。それは内部ＳＤＲＡＭクロックベースに対してプログラマブル遅延（ｃｍｄ＿ｄｌｙ）３１１を有する。第５信号３１５はＭＣ Ｉ／ＯピンにおけるＭＣＵコマンド出力を表す。コマンドバス上の３つのコマンドはＲＡＳコマンド３１７と、ＣＡＳコマンド３１９と、ＣＫＥ ＤＩＳデアサーションコマンド３２１とである。ＣＫＥをデアサーションすると、データの有効性は１つのＳＤＲＡＭサイクルだけ延長される。第６信号３２７はデータサンプリング信号である．メモリ読出しデータは、ＳＤＲＡＭ内部ベースクロック３０３に対してｒｄ＿ｓｍｐ＿ｄｌｙ３２９でＭＣにサンプリングされる。第７信号３３３は、時間遅延（ｓｄｒａｍ＿ｍｃ＿ｄａｔａ＿ｄｌｙ）３４１後にＭＣ Ｉ／Ｏピンに到達するＳＤＲＡＭデータ３３９である。データ信号の白抜き部分は有効部を表す。それはＭＣ読出しデータセットアップ時間３３５とＭＣ読出しデータホールド時間３３７とからなる。第８信号３３９は、ＳＤＲＡＭ Ｉ／Ｏピンから送り出されるＳＤＲＡＭデータである。第９信号３４７は、時間遅延（ｃｍｄ＿ｄｌｙ）３５５後にＳＤＲＡＭ  Ｉ／Ｏピンに到達するＳＤＲＡＭコマンド信号である。第１０信号３６７は時間遅延（ｃｌｋ＿ｄｌｙ）３５１後にＳＤＲＡＭピンに到達するＳＤＲＡＭクロックである。時間（ｃｌｋｒ  ｘ  ｒｄ＿ｒｄ＿ｄｌｙ）３６９の期間中、新しい読出しＣＡＳがなく、時間（ｃｌｋｒ  ｘ  ｒｄ＿ｗｒ＿ｄｌｙ）３７１の期間中、新しい書込みＣＡＳがない。図６でマークされた遅延、セット時間及びホールド時間は既に表２及び３で説明されている。
【００２３】
読出し動作の場合、下記のパラメータが計算されるものとする：
ａｃｔ＿ｒｄ＿ｄｌｙ（読出しコマンドＲＡＳからＣＡＳまでの遅延）；
ｒｄ−ｗａｉｔ（読出しデータ有効部の期間延長）；
ｒｄ＿ｓｍｐ＿ｄｌｙ（読出しデータをサンプリングするまでのウエイト）。
【００２４】
読出しコマンド動作の場合、下記の関係を満足しなければならない：
【数７】
2004527819.tif 000012
したがって、
【数８】
2004527819.tif 000013
とする。
ａｃｔ＿ｒｄ＿ｄｌｙは可能な最小の適法な設定であるので、（数８）のａｃｔ＿ｒｄ＿ｄｌｙは読出しアイドルレイテンシに関して可能な最良の性能を与える。
読出しセットアップ時間の場合、下記の関係を満足しなければならない：
【数９】
2004527819.tif 000014
また、読出しホールド時間の場合、下記の関係を満足しなければならない：
【数１０】
2004527819.tif 000015
与えられた正数Ｘ及びＹに対して、剰余(Reminder)関数は、Ｒが下記を満たす正数であるように定義される：
【数１１】
2004527819.tif 000016
ここでＰは整数で、且つ０＜Ｒ＜Ｙである。Ｒを以下のように表す：
【数１２】
2004527819.tif 000017
よって、以下のようにして：
【数１３】
2004527819.tif 000018
この結果、以下のようになる。
【数１４】
2004527819.tif 000019
論理回路は過去の性能を制御できないので、ＲＤ＿ＷＡＩＴは正数として維持される必要がある。したがって、
【数１５】
2004527819.tif 000020
【数１６】
2004527819.tif 000021
書込みパラメータの設定は同様な形で得ることができる。
【００２５】
図７はＳＤＲＡＭ書込みタイミング図の簡略化したバージョン４００である（実際のＣＰＵ、ＵｌｔｒａＳＰＡＲＣ−IIIで使用されている）。第１信号４０１はプロセッサ内部クロックである。第２信号４０３はＭＣ内部ベースＳＤＲＡＭクロックである。ＳＤＲＡＭクロック周期は常にプロセッサクロック周期の倍数である。第３信号ライン４０５はＭＣ Ｉ／ＯピンにおけるＳＤＲＡＭクロックを表す。それは内部ＳＤＲＡＭクロックベースに対してプログラマブル遅延４０７を有する。第４信号４０９はＳＤＲＡＭコマンド同期信号である。ＳＤＲＡＭコマンドはすべてこの信号に同期する必要がある。それは内部ＳＤＲＡＭクロックベースに対してプログラマブル遅延（ｃｍｄ＿ｄｌｙ）４１１を有する。第５信号４１５はＭＣ Ｉ／ＯピンにおけるＭＣＵコマンド出力を表す。コマンドバス上に２つのコマンドがある。それらのコマンドはＲＡＳコマンド４１７と、ＣＡＳコマンド４１９である。第６信号４２５はデータドライブ信号である．メモリ読出しデータはＳＤＲＡＭ内部ベースクロックに対してｗｒ＿ｐｓｈ＿ｄｌｙ４２７でＭＣから送り出されることになる。第７信号４２９は、ＭＣ Ｉ／ＯピンにおけるＳＤＲＡＭデータアウトである。第８信号４３３は、時間遅延（ｍｃ＿ｓｄｒａｍ＿ｄａｔａ＿ｄｌｙ）４３７後にＳＤＲＡＭ Ｉ／Ｏピンに到達するＳＤＲＡＭデータである。第９信号４３９は、伝搬経路時間遅延（ｃｌｏｃｋ＿ｄｅｌａｙ）４４３後にＳＤＲＡＭピンに到達するＳＤＲＡＭクロックである。第１０信号４４５は伝搬経路時間遅延（ｃｍｄ＿ｄｅｌａｙ）４５１後にＳＤＲＡＭ Ｉ／Ｏピンに到達するＳＤＲＡＭコマンド信号である。図でマークされた遅延、セット時間及びホールド時間は既に表２及び３で説明されている。
メモリＷＲＩＴＥ動作は下記のパラメータにより制御される：
ａｃｔ＿ｗｒ＿ｄｌｙ（書込みコマンドＲＡＳからＣＡＳまでの遅延）；
ｗｒ＿ｍｓｅｌ＿ｄｌｙ；
ｗｒｄａｔａ＿ｔｈｌｄ（書込みデータの有効部の期間延長）。
【数１７】
2004527819.tif 000022
したがって、
【数１８】
2004527819.tif 000023
ａｃｔ＿ｗｒ＿ｄｌｙは可能な最小の適法な設定であるので、数１８のａｃｔ＿ｗｒ＿ｄｌｙはアイドルレイテンシに関して可能な最良の性能を与える。
書込みセットアップ時間の場合、下記の関係を満足しなければならない：
【数１９】
2004527819.tif 000024
ホールド時間：
【数２０】
2004527819.tif 000025
よって、以下のようにして、
【数２１】
2004527819.tif 000026
この結果、以下のようになる。
【数２２】
2004527819.tif 000027
次に、コンフリクトを避けるプログラマブルパラメータを考える。
同じバンクアクセスの場合、下記のパラメータが重要である：
ｒｄ＿ｃｙｃｌ＿ｄｌｙ（読出しコマンドの発行後の行プリチャージ時間ｔＲＰのためのウエイト）；
ｗｒ＿ｃｙｃｌ＿ｄｌｙ（書込みコマンドの発行後の行プリチャージ時間ｔＲＰのためのウエイト）；
ａｕｔｏ＿ｒｆｒ＿ｃｙｃｌｅ（オートリフレッシュの終了のためのウエイト）。
【００２６】
バンクアクセスの場合、下記のようになる：
【数２３】
2004527819.tif 000028
【数２４】
2004527819.tif 000029
【数２５】
2004527819.tif 000030
したがって、
【数２６】
2004527819.tif 000031
【数２７】
2004527819.tif 000032
【数２８】
2004527819.tif 000033
異なるバンクアクセスの場合：
ｒｄ＿ｒｄ＿ｄｌｙ（現在の読出し後他のバンクに許可される読出しに対する遅延）
ｒｄ＿ｗｒ＿ｄｌｙ（現在の読出し後他のバンクに許可される書込みに対する遅延）
ｗｒ＿ｒｄ＿ｄｌｙ（現在の書込み後他のバンクに許可される読出しに対する遅延）
ｗｒ＿ｗｒ＿ｄｌｙ（現在の書込み後他のバンクに許可される書込みに対する遅延）
下記の数式は、読出し及び書込み動作中にデータバスを使用するための開始点と終了点を計算する：
【数２９】
2004527819.tif 000034
【数３０】
2004527819.tif 000035
【数３１】
2004527819.tif 000036
【数３２】
2004527819.tif 000037
したがって、
【数３３】
2004527819.tif 000038
【数３４】
2004527819.tif 000039
【数３５】
2004527819.tif 000040
【数３６】
2004527819.tif 000041
【数３７】
2004527819.tif 000042
上記導出において、ＭＣに対する最良のアイドルレイテンシを達成する適法な設定は数学的に得られる。その時、全ての適法な設定はピーク帯域幅性能についてチェックされる。メモリシステム性能は読出し帯域幅及び書込み帯域幅に関して測定され、バイト／秒で表される。帯域幅はメモリから（読出し）又はメモリへ（書込み）のデータ転送のレートを表す。ピーク帯域幅性能により、上記式により得られた全ての適法な設定の中から最良の設定が最終的に決まる。
単一バンクの場合：
【数３８】
2004527819.tif 000043
【数３９】
2004527819.tif 000044
１つのＤＩＭＭセット上に２つのバンク：
【数４０】
2004527819.tif 000045
【数４１】
2004527819.tif 000046
２つのＤＩＭＭセット上に２つのバンク：
【数４２】
2004527819.tif 000047
【数４３】
2004527819.tif 000048
２つのＤＩＭＭセット上に４つのバンク：
【数４４】
2004527819.tif 000049
【数４５】
2004527819.tif 000050
３つのペアの不等式から、下記のマージンを計算できる：
コマンドセットアップマージン：
【数４６】
2004527819.tif 000051
ホールド時間の場合：
【数４７】
2004527819.tif 000052
ＭＣデータセットアップマージン：
【数４８】
2004527819.tif 000053
ＭＣデータホールドマージン：
【数４９】
2004527819.tif 000054
ＳＤＲＡＭセットアップマージン：
【数５０】
2004527819.tif 000055
ＳＤＲＡＭホールドマージン：
【数５１】
2004527819.tif 000056
これらのマージン性能数値により最良の設定を容易に得ることができる。
【００２７】
今、ＭＣプログラミング方法を実行できる準備が完了した。ＭＣプログラマブルパラメータ計算のためのフローチャート５００を図８で説明する。第１のステップ５０１は、表１のＳＤＲＡＭパラメータと、表３のシステムパラメータと、時間周期比パラメータｃｌｋｒとを含む全ての入力の初期化である。次のステップ５０３は表３で説明した全ての適法な設定の記憶と、プログラマブル時間遅延ｃｌｋ＿ｄｌｙ及びｃｍｄ＿ｄｌｙの計算とを含む。第３のステップ５０５において、ｃｌｋ＿ｄｌｙとｃｍｄ＿ｄｌｙとの各ペアに対して、パラメータｒｄ＿ｓｍｐ＿ｄｌｙ、ｒｄ＿ａｃｔ＿ｄｌｙ、ｒｄ＿ｗａｉｔ、ｗｒ＿ｐｓｈ＿ｄｌｙ、ｗｒ＿ａｃｔ＿ｄｌｙ及びｗｒ＿ｔｈｌｄを計算する。これらの計算したパラメータに基づいて、パラメータｒｄ＿ｃｙｃｌｅ＿ｄｌｙ、ｗｒ＿ｃｙｃｌｅ＿ｄｌｙ、ａｕｔｏ＿ｒｆｒ＿ｃｙｃｌｅ、ｒｄ＿ｒｄ＿ｄｌｙ、ｗｒ＿ｗｒ＿ｄｌｙ、ｒｄ＿ｗｒ＿ｄｌｙ及びｗｒ＿ｒｄ＿ｄｌｙを計算する。計算したパラメータはすべて記憶される。
【００２８】
最終ステップ５０７において、ｃｌｋ＿ｄｌｙとｃｍｄ＿ｄｌｙとの各ペアに対して、メモリ帯域幅性能とマージンとが上記式から計算される。その後、最良の性能及び最良のマージンを与えるパラメータのセットを選択する。
【００２９】
本発明を限られた数の実施形態により説明したが、当業者はここに開示された本発明の範囲から逸脱しない他の実施形態が考えられることを理解するであろう。従って、本発明の範囲は添付の特許請求の範囲によってのみ限定されるべきである。
【図面の簡単な説明】
【００３０】
【図１ａ】外部メモリコントローラ及びメモリ（ＳＤＲＡＭ）と相互接続したプロセッサを示すコンピュータシステムの概略図である。
【図１ｂ】メモリ（ＳＤＲＡＭ）と接続した内部メモリコントローラ付きプロセッサを示すコンピュータシステムの概略図である。
【図２】メモリコントローラによるＳＤＲＡＭへのアクセスを説明するブロック図である。
【図３】ＳＤＲＡＭ読出し及び書込み動作を説明するタイミング図である。
【図４】種々のコンピュータ信号のアナログ遅延を描写するタイミング図である。
【図５】クロック及びコマンド信号プログラミングを示すタイミング図である。
【図６】ＳＤＲＡＭ読出し動作を説明するタイミング図である。
【図７】ＳＤＲＡＭ書込み動作を説明するタイミング図である。
【図８】本発明の一実施形態による、メモリコントローラをプログラミングするためのタイミングパラメータ計算を説明する算法フローチャートである。
【符号の説明】
【００３１】
１１、２１：プロセッサ、１５、２３、３１：メモリコントローラ（ＭＣ）、１９、２７：外部メモリ、３３：ＳＤＲＡＭ、３５、４１、２０１、２０３、２０７：クロック信号、３７：コマンドバス、３９：データバス、４３、２０６、２１１、２１５：コマンド信号、４５：データ信号、４７、４９、５１、５３、５５：立ち上がりエッジ、５７、６１：ＲＡＳ、５９、６３：ＣＡＳ、６５：最小セットアップ時間、６７：最小ホールド時間、１０５、１０７：読出しデータ、７１、１１１：書込みデータ、８１、８３：クロック信号、８５、８７：コマンドバス信号、８９、９１：データバス信号、９３：アナログｃｌｏｃｋ＿ｄｅｌａｙ、１０３：アナログｃｍｄ＿ｄｅｌａｙ、１０４、１１２、１１９、３３５：セットアップ時間、１０６、１１４、１２１、３３７：ホールド時間、１０８：遅延、１０９：アナログｓｄｒａｍ＿ｃｍ＿ｄａｔａ＿ｄｅｌａｙ、１１３：アナログｍｃ＿ｓｄｒａｍ＿ｄａｔａ＿ｄｅｌａｙ、２０５、３０７、３５１：遅延（ｃｌｋ＿ｄｌｙ）、２０９、３１１、３５５、４１１：遅延（ｃｍｄ＿ｄｌｙ）、２１３、２１７：プログラミングされた遅延、２１９：立ち上がりエッジ、３０１、４０１：プロセッサクロック、３０３、４０３：ＳＤＲＡＭベースクロック、３０５、４０５：ＳＤＲＡＭクロックアウト、３０９、４０９：コマンド同期、３１５、４１５：コマンドアウト、３１７、４１７：ＲＡＳコマンド、３１９、４１９：ＣＡＳコマンド、３２１：ＣＫＥ  ＤＩＳデアサーションコマンド、３２７：ＭＣデータサンプル、３２９：遅延（ｒｄ＿ｓｍｐ＿ｄｌｙ）、３３３：ＭＣデータ、３３９：ＳＤＲＡＭデータ、３４１：遅延（ｓｄｒａｍ＿ｍｃ＿ｄａｔａ＿ｄｌｙ）、３４７：ＳＤＲＡＭにおけるコマンド、３６７：ＳＤＲＡＭにおけるクロック、３６９：遅延（ｃｌｋｒ  ｘ  ｒｄ＿ｄｌｙ）、３７１：遅延（ｃｌｋｒ  ｘ  ｗｒ＿ｄｌｙ）、４０７：プログラマブル遅延、４２５：データプッシュ、４２７：遅延（ｗｒ＿ｐｓｈ＿ｄｌｙ）、４２９：ＭＣデータアウト、４３３：ＳＤＲＡＭイン、４３７：遅延（ｍｃ＿ｓｄｒａｍ＿ｄａｔａ＿ｄｌｙ）、４３９：ＳＤＲＡＭクロックイン、４４３：伝搬経路時間遅延（ｃｌｏｃｋ＿ｄｅｌａｙ）、４４５：ＳＤＲＡＭコマンド、４５１：伝搬経路時間遅延（ｃｍｄ＿ｄｅｌａｙ）
【図１ａ】
2004527819.tif 000057
【図１ｂ】
2004527819.tif 000058
【図２】
2004527819.tif 000059
【図３】
2004527819.tif 000060
【図４】
2004527819.tif 000061
【図５】
2004527819.tif 000062
【図６】
2004527819.tif 000063
【図７】
2004527819.tif 000064
【図８】
2004527819.tif 000065
【国際公開パンフレット】
2004527819.tif 000066
2004527819.tif 000067
2004527819.tif 000068
2004527819.tif 000069
2004527819.tif 000070
2004527819.tif 000071
2004527819.tif 000072
2004527819.tif 000073
2004527819.tif 000074
2004527819.tif 000075
2004527819.tif 000076
2004527819.tif 000077
2004527819.tif 000078
2004527819.tif 000079
2004527819.tif 000080
2004527819.tif 000081
2004527819.tif 000082
2004527819.tif 000083
2004527819.tif 000084
2004527819.tif 000085
2004527819.tif 000086
2004527819.tif 000087
2004527819.tif 000088
2004527819.tif 000089
2004527819.tif 000090
2004527819.tif 000091
2004527819.tif 000092
2004527819.tif 000093
2004527819.tif 000094
2004527819.tif 000095
2004527819.tif 000096
2004527819.tif 000097
【国際公開パンフレット（コレクトバージョン）】
2004527819.tif 000098
2004527819.tif 000099
【国際調査報告】
2004527819.tif 000100
2004527819.tif 000101