(57)【要約】【課題】  高速で動作するメモリにメモリスピードに合わせたターミネータを配置し、波形のなまりを防止することによってメモリの確実な動作を実現するメモリスピード最適化方法を提供する。【解決手段】  ＣＰＵ１とメモリ２を接続するメモリ信号線３にターミネータ４を配置するメモリスピード最適化方法であって、メモリスピードに対応、あるいはメモリスピードと信号線３に対応したターミネータ４のターミネータ値を複数用意し、この中から最適なターミネータ値をＢＩＯＳあるいはアプリケーションプログラムによって選択する。【選択図】  図１
2007011632.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵとメモリを接続するメモリ信号線にターミネータを配置するメモリスピード最適化方法であって、メモリスピードに対応したターミネータを用意し、前記メモリのメモリスピードに合わせたターミネータを選択することを特徴とするメモリスピード最適化方法。
【請求項２】
前記ターミネータは、メモリ信号線ごとに用意されることを特徴とする、請求項１に記載のメモリスピード最適化方法。
【請求項３】
前記ターミネータは、メモリスピード毎に複数のターミネータ値が用意され、それらから最適なものが選択されることを特徴とする、請求項１または請求項２のいずれかに記載のメモリスピード最適化方法。
【請求項４】
ＢＩＯＳにより、最適なターミネータ値をもつターミネータが選択されることを特徴とする、請求項１〜３のいずれかに記載のメモリスピード最適化方法。
【請求項５】
ＢＩＯＳによるターミネータの選択が、ＢＩＯＳによってＳＰＤから抽出された情報に基づいて、自動的に行われることを特徴とする、請求項４に記載のメモリスピード最適化方法。
【請求項６】
アプリケーションプログラムにより、最適なターミネータ値をもつターミネータが選択されることを特徴とする、請求項１〜３のいずれかに記載のメモリスピード最適化方法。
【請求項７】
ＣＰＵとメモリを接続するメモリ信号線に配置するターミネータとして、最適な値のターミネータを選択することを特徴とするメモリスピード最適化のためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
高速で動作するメモリに対し、メモリスピードに合わせたターミネータを配置し、波形の品質劣化を防止することによってメモリの確実な動作を実現するメモリスピード最適化方法に関する。
【背景技術】
【０００２】
ＣＰＵは、年々高速化され、ＣＰＵ内部クロックの高速化、ＣＰＵバス幅の拡張等がなされている。これに伴いメモリの高速化も要求されている。
例えば、ＡＭＤ社のＯｐｔｅｒｏｎ（商標）は、主としてサーバ用途のＣＰＵであるが、これに接続される８本のメモリは現状の標準がＤＤＲ３３３である。ここで、ＤＤＲ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）とは、外部クロック信号の立ち上がりエッジと立下りエッジの両方のタイミングを利用し、同じクロックで２倍のデータ転送を実現することにより、動作の高速化を図るＳＤＲＡＭの規格であり、ＤＤＲ３３３は３３３ＭＨｚのメモリクロックに対応する。しかし、高速な動作が要求されるＯｐｔｅｒｏｎ（商標）のようなＣＰＵでは、４００ＭＨｚのメモリクロックに対応するＤＤＲ４００のようなメモリの使用が望まれる。
【０００３】
【特許文献１】特開平８−２７２５０１号公報
【特許文献２】特開２００２−８２７４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＣＰＵとメモリを接続する信号線に関し、次のような問題点がある。
図５は、従来の一般的な回路を示したものであるが、ＣＰＵ１０１からメモリ１０２に至るまでの間の線路１０３は、Ｌ成分（リアクタンス）、Ｒ成分（抵抗）およびＣ成分（浮遊容量）をもっている。これらの成分の影響で線路１０３を伝わる波形がなまり、入力信号が“１”か“０”かを判別できないことがある。これではメモリの安定的な動作は保証されない。
波形の品質を確保するためには、ＣＰＵ１０１からメモリ１０２に至る線路１０３のＬ・Ｒ・Ｃ成分をできるだけ小さくすることが必要である。そのためには、線路１０３の長さを短くしたり、他の線路との相互干渉を少なくしたりするような配慮が必要である。しかし、Ｌ・Ｒ・Ｃ成分には、使用するメモリボードなどの基板材料、ＣＰＵからメモリまでの配線材料、メモリコネクタ接点材料、メモリ自身の入力インピーダンス、浮遊容量と入力容量なども影響を与えるので、Ｌ・Ｒ・Ｃ成分を小さくすることには限界がある。
このような事情を考慮し、波形品質確保の手段として、ターミネータ１０４を設けることが行われる。ターミネータ１０４は、不要な反射波をカットすることにより、波形のなまりを防止し、波形の立ち上がりや立下りを確実に捕捉できるようにするものである。
【０００５】
そのため、メモリにもターミネータを設けることが行われるようになり、これに関する発明が特許文献１などで提案されている。
特許文献１に記載の発明では、実装されているメモリモジュールのうちで、バス信号ドライブＩＣの出力端から最も遠いものの近傍にとりつけたターミネータを動作させ、波形品質を良好に確保しようとしている。
また、特許文献２に記載の発明では、メモリスロット毎に終端回路を具備して構成されるメモリ用終端回路が提案されている。
【０００６】
しかし、特許文献１、特許文献２に記載のいずれの発明も、ターミネータ値の最適化についての考慮がなされていない。良好な波形品質の確保という観点からは、メモリにターミネータを設けるにとどまらず、ターミネータ値として、メモリスピードに応じた最適な値を設定することが望まれる。
また、同一の基板に装着されるメモリであっても、メモリスピードが異なるものが混在していることもある。さらに、同一メーカの同一ロットで生産された同一型番のメモリであっても、浮遊容量などが異なるものもある。そのため、信号線毎に最適なターミネータ値が設定されるならば、一層好ましい。
【０００７】
例えば、ＡＭＤ社のＯｐｔｅｒｏｎ（商標）のフルスペックでは、ＤＤＲ４００のメモリを最大８本まで実装可能とされているが、現状では安定動作できるのは、８本ではなく、６本までである。もし、メモリスピードに応じて、さらには信号線ごとに、きめ細かく最適なターミネータを選択して配置すれば、８本のメモリを実装しても、メモリの動作を安定させることが可能である。
このように、最適な値をもつターミネータを選択することにより、ＣＰＵの能力を最大に引き出すメモリスピードの確保、つまり、該ＣＰＵにとってのメモリスピードの最適化が実現される。
【０００８】
したがって、本発明は、信号線ごとに配置した各ターミネータに最適な値を設定することを目的とする。また、ユーザの便宜を考慮し、最適値の設定を、ＢＩＯＳによってシステムの初期起動時に行えるとともに、アプリケーションプログラムによって起動後にも行えることも目的とする。
【課題を解決するための手段】
【０００９】
このような目的を実現するために、本発明は、ＣＰＵとメモリを接続するメモリ信号線にターミネータを配置するメモリスピード最適化方法であって、メモリスピードに対応したターミネータを用意し、前記メモリのメモリスピードに合わせたターミネータを選択することを特徴とする。
【００１０】
また、前記ターミネータは、メモリ信号線ごとに用意されてもよい。さらに、メモリスピード毎に複数のターミネータ値が用意され、それらから最適なものが選択されてもよい。
【００１１】
本発明は、ＢＩＯＳにより、最適なターミネータ値をもつターミネータが選択されることを特徴としてもよく、このＢＩＯＳによるターミネータの選択が、ＢＩＯＳによってＳＰＤ（Ｓｅｒｉａｌ  Ｐｒｅｓｅｎｃｅ  Ｄｅｔｅｃｔ）から抽出された情報に基づいて、自動的に行われるようにしてもよい。
さらに、ＢＩＯＳではなく、アプリケーションプログラムにより、最適なターミネータ値をもつターミネータが選択されるようにしても構わない。
【００１２】
本発明は、ＣＰＵとメモリを接続するメモリ信号線に配置するターミネータとして、最適な値を選択することを特徴とするメモリスピード最適化のためのコンピュータプログラムとして構成してもよい。
なお、このコンピュータプログラムには、ＢＩＯＳとして実装されている場合と、各種記憶媒体に格納され、起動後に、メモリ上に読み出されて実行されるプログラムとがある。
【発明の効果】
【００１３】
請求項１に記載の発明によれば、メモリ信号線に、メモリスピードに対応したターミネータを配置できる。
また、請求項２に記載の発明によれば、メモリスピードに合わせ、かつ、メモリ信号線ごとに、複数のターミネータ値が用意されているので、そのメモリ信号線にとって、より適切なターミネータ値を選択できる。
さらに、請求項３に記載の発明によれば、同一のメモリスピードに対応したターミネータとして、ターミネータ値の異なる複数が用意されているので、適切なターミネータ値を選択できる。
【００１４】
請求項４に記載の発明によれば、システムの起動時に、最適なターミネータ値を選択するので、ユーザは、このシステムを動作が安定した状態で使用することができる。
また、請求項５に記載の発明によれば、ＢＩＯＳが、自動的に最適なターミネータ値を選択するので、ユーザの負担が省かれる。
【００１５】
請求項６に記載の発明によれば、システム起動後に、アプリケーションプログラムにより、最適なターミネータ値の選択ができるので、なんらかのトラブルが発生した場合などに、システムを再起動することなく、ターミネータ値の微調整ができる。
【００１６】
請求項７に記載の発明によれば、ソフトウェアでターミネータ値の最適化が実現できるので、その最適化の方法の見直しがなされるような場合は、ハードウェアに変更を加えなくても、コンピュータプログラムの更新ですむ。
【発明を実施するための最良の形態】
【００１７】
〈第１の実施形態〉
図１に従い、本発明の第１の実施の形態を説明する。
ＣＰＵ１とメモリモジュール２とを接続する信号線３に、ターミネータ４を配置する。また、信号線３はメモリモジュール２の端子５と接続している。
【００１８】
図１では、説明の便宜上、メモリモジュール２が１個だけ図示されているが、通常メモリモジュールは複数個ある。同様に、信号線は複数あるが、図１では、２本の信号線３のみ記してある。
なお、信号線には、データバス、制御バスなどの複数種類があり、これらのすべてにターミネータ４の配置が必須というわけではない。しかし、メモリの安定動作のため、個々のデータバスには、ターミネータ４を設けることは必須である。ｎビットのデータは、１ビットずつメモリモジュール２のｎ個の端子５にパラレルに入力される。もし、どれか１ビット分でも遅延したり、波形がなまっていたりし、その結果、その端子５に入力された信号が“０”か“１”か判別できなければ、このようなメモリモジュール２を搭載したシステムは信頼できなくなる。そのため、データバスの１本ずつにターミネータ４を設けることが必要である。
【００１９】
この実施の形態では、最適値の選択はＢＩＯＳによって自動的に行われる。この自動設定について図２のブロック図を参照しながら説明する。
この実施形態のＣＰＵ１とメモリモジュール２とを搭載したシステムに電源が入れられると、ＢＩＯＳ６が起動する。ＢＩＯＳ６は、メモリモジュール２のＳＰＤ（図示せず）を参照し、メモリ識別情報を読み取る。この識別情報にはメモリスピードも含まれる。ＢＩＯＳ６は、例えば、メモリスピードと最適なターミネータ値との対応テーブル（図示せず）を持ち、このテーブルを参照して得た最適なターミネータ値をターミネータ部７に送信する。
【００２０】
ターミネータ部７の構成の仕方は、特に限定するものではないが、例えば、ターミネータ選択回路８と、いろいろな値をもつ複数のターミネータ４ａ、４ｂ、・・・が用意されている。同一のメモリスピードであっても、ターミネータの最適化の観点からは、標準的な値のターミネータ、及び、これよりも１％大きい値あるいは１％小さい値というように複数の値を用意しておくことが望ましい。複数種類が用意されていれば、最適なターミネータを選択する余地が広がるからである。
ターミネータ選択回路８は、ＢＩＯＳ６によってターミネータ値が指定されると、このターミネータ値をもつターミネータを信号線３の本数分だけ選択する。
すべての信号線３に同一のターミネータ値をもつターミネータ４を配置するときは、ＢＩＯＳ６はターミネータ値のみをターミネータ部７に指示すればよい。
【００２１】
なお、このターミネータ部７は、基板上の回路で実現しても、ＩＣチップ化してもよい。
また、ターミネータ選択回路８によるターミネータの選択は、ＩＯ命令によって行っても、コマンドによって行ってもよい。
【００２２】
ターミネータ４は、抵抗で実現しても、半導体の等価抵抗で実現してもよい。もっとも、ターミネータ選択回路８とターミネータ４とをあわせてターミネータ部７としてＩＣチップ化するならば、半導体の等価抵抗で実現するのが通常である。
ここで、ターミネータ４の選択方式について付言する。
抵抗の接続・削除による方式と、アクティブ選択方式とがある。まず、前者について、図４を参照しながら説明する。
並列に接続した抵抗Ｒ１とＲ２を、抵抗Ｒ３と直列に接続し、これを１個のユニットＲＵとする。必要に応じて、このユニットＲＵ同士を直列に接続したり、並列に接続したりする。このようにすれば、所望の値をもつターミネータを選択できる。
アクティブ選択方式は、半導体で等価抵抗とするものであるが、この等価抵抗同士も直列あるいは並列に接続して、所望の値を選択できることは言うまでもない。
【００２３】
〈第２の実施形態〉
前記の第１の実施の形態では、ＢＩＯＳ６がＳＰＤを参照して自動的にターミネータの選択を行っていた。
この第２の実施形態は、第１の実施形態と比べ、ＢＩＯＳ６の設定画面を介してユーザが最適なターミネータを選択する点で異なるだけである。したがって、図１および図２で用いる符号は、第２の実施形態にもあてはまる。
【００２４】
この第２の実施形態では、ＢＩＯＳ６の設定画面（図示せず）を介して、ユーザの判断で、ターミネータ値をターミネータ部７に指示するものである。指示の仕方は、ユーザが数値を入力してもよく、あるいは、ＢＩＯＳ側で用意した選択可能なターミネータ値のリストから選択するといった方法でもよい。
ユーザは、ターミネータ部７に対し、どの信号線にも共通なターミネータ値を指示してもよいし、信号線とターミネータ値との対応を指示してもよい。後者の場合は、メモリスピードに対応した複数の値をもつターミネータ４が用意されるだけでなく、信号線にも対応したターミネータ４が用意されていることが必要である。同一のメモリモジュール２の端子５であっても、Ｌ・Ｒ・Ｃ成分にはばらつきがありうるので、信号線ごとにターミネータ値を選択できるならば、これらのばらつきを吸収でき、メモリスピードの最適化という本発明の目的に一層好都合である。
【００２５】
〈第３の実施形態〉
前記の第１、第２の実施形態では、ＢＩＯＳを介してターミネータ値の最適化を行っていた。
この第３の実施形態では、図３に示すように、ターミネータ値の最適化を、システム起動後に、アプリケーションプログラム９によって行おうとするものである。その他の点では、第２の実施形態と相違することはない。したがって、図２と図３との相違は、ＢＩＯＳ６のかわりにアプリケーションプログラム９が、ターミネータ部７に対してターミネータ値を指示する点にある。
【００２６】
このようにアプリケーションプログラム９によってターミネータ値を設定する利点は次のとおりである。コンピュータ稼動中に何らかのトラブルが発生した場合、原因はソフトかハードか、ハードとしてメモリかそれ以外か、等を解析して処置しなければならない。
メモリに何らかの原因があると推測できる場合、例えば、信号の波形の表示などができるツールによって、波形を表示させたり、エラー発生の有無を表示させたりしながら、ターミネータ値を微調整しつつ、原因を特定していく作業となる。このような作業は、起動後にできることが望ましい。そのために、初期起動時にのみ実行されるＢＩＯＳ６ではなく、アプリケーションプログラム９によるターミネータの選択が必要となる。
【００２７】
〈その他の実施形態〉
前記の第１の実施形態では、ＳＰＤを参照してＢＩＯＳが自動的にターミネータの最適化を行っていたが、このような自動設定は、ＢＩＯＳによらず、アプリケーションプログラムによって行われるようにしても構わない。この場合、ユーザは、ターミネータ値などの指示が不要であり、このアプリケーションプログラムの実行のためのコマンドを投入するだけでよい。
【００２８】
前記のいずれの実施形態でも、ソフトウェアによってターミネータ値の最適化を行っているが、ターミネータ値の最適化済みの実装基板を用意してもよい。例えば、サーバ用途の場合は、注文生産が多いので、あらかじめ、基板に抵抗を実装しておき、顧客からの注文を受けてから、装着するメモリに適するように抵抗同士を接続したり切断したりするだけでターミネータ値の最適化ができる。
【００２９】
また、本発明は、特定のＣＰＵや特定のメモリモジュールの規格、特定のメモリチップの規格にのみ適用されるものではない。
【００３０】
つまり、前記のように開示された実施の形態はすべての点で例示であって、制限的なものではない。したがって、種々の変形が可能である。しかし、その変形が特許請求の範囲に記載された技術思想に基づくものである限り、その変形は本発明の技術的範囲に含まれる。
【図面の簡単な説明】
【００３１】
【図１】本発明の実施形態の概略を説明する図である。
【図２】第１および第２の実施形態の最適ターミネータの選択を説明する図である。
【図３】第３の実施形態の最適ターミネータの選択を説明する図である。
【図４】抵抗で実現するターミネータの選択方式を説明する図である。
【図５】一般的な回路を示す図である。
【符号の説明】
【００３２】
１  ＣＰＵ
２  メモリ
３  メモリ信号線
４  ターミネータ
６  ＢＩＯＳ
９  アプリケーションプログラム
【図１】
2007011632.tif 000003
【図２】
2007011632.tif 000004
【図３】
2007011632.tif 000005
【図５】
2007011632.tif 000006
【図４】
2007011632.tif 000007