(57)【要約】【課題】メモリモジュールの構成や種類の違いにより信号に対する負荷が変化する回路において、リード時のデータ信号のセットアップ時間とホールド時間の確保を行うことを目的としたメモリ制御手段の提供。【解決手段】着脱可能なメモリモジュールを有する回路において、リード時のデータ信号のセットアップとホールド時間を調整する回路と、前記メモリモジュールを含めたデータ信号線の負荷を確認する手段とを備え、前記メモリモジュールを含めたデータ信号線の負荷に応じて自動的に最適なデータ信号のセットアップとホールド時間の設定を行うことを特徴としたメモリ制御手段。【選択図】        なし【特許請求の範囲】
【請求項１】
着脱可能なメモリモジュールを有する回路において、リード時のデータ信号のセットアップとホールド時間を調整する回路と、前記メモリモジュールを含めたデータ信号線の負荷を確認する手段とを備え、前記メモリモジュールを含めたデータ信号線の負荷に応じて自動的に最適なデータ信号のセットアップとホールド信号を設定することを特徴とするセットアップ／ホールド時間設定手段。
【請求項２】
前記メモリモジュールを含めたデータ信号線の負荷を確認をメモリモジュールの構成の変更時に実行することを特徴とする請求項１に記載のセットアップ／ホールド時間設定手段。
【請求項３】
メモリモジュールの構成の変更をメモリモジュールのＳＰＤファイルから判別することを特徴とする請求項２に記載のセットアップ／ホールド時間設定手段。
【請求項４】
メモリモジュールを含めたデータ信号線の負荷をメモリモジュールのバンク数をＳＰＤファイルから読み取ることで判断することを特徴とする請求項１〜３に記載のセットアップ／ホールド時間設定手段。
【請求項５】
メモリモジュールを含めたデータ信号線の負荷をメモリモジュールの型名をＳＰＤファイルから読み取ることで判断することを特徴とする請求項１〜３に記載のセットアップ／ホールド時間設定手段。
【請求項６】
リード時のデータ信号のセットアップとホールド時間の調整を、データ信号の入力端に接続されたフリップフロップに与えられるクロック位相を可変にすることで行うことを特徴とする請求項１〜５に記載のセットアップ／ホールド時間設定手段。
【請求項７】
データ信号の入力端に接続されたフリップフロップに与えられるクロック位相の調整を、クロック信号を複数の遅延時間を設けて出力できる遅延時間回路と、複数の位相の違うクロック信号から選択を行う回路を備えることで行われることを特徴とする請求項１〜５に記載のセットアップ／ホールド時間設定手段。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はメモリモジュールを使用した情報処理装置に関し、リード時のデータ信号のセットアップ／ホールド時間を自動的に調整する技術に関する。
【０００２】
【従来の技術】
パーソナルコンピュータを代表として情報処理装置の多くは、ＣＰＵ１の他に、メインメモリ、ＲＯＭ、メモリコントローラ２など多数のデバイスで構成されている。ＣＰＵ１とデバイスとの間は、アドレス信号線、データ信号線、コントロール信号線などからなる共通信号伝送路（いわゆる「バス」）で連絡しており、ＣＰＵ１や各デバイスは信号線にロー／ハイ・レベルの組合せで構成される信号を交換することによって意思を伝達できるようになっている。そしてメインメモリには、大容量を低コストで製造できるＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５が用いられるのが一般的である。また最近ではメモリの増設を許す構造になっているものが多い。ＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）３は増設メモリの代表例であり、長方形のプリント基板上に複数のメモリチップ５を並べて構成されるメモリカードである。ＤＩＭＭ３は基板上に設置されたＤＩＭＭ３のカード・エッジ端子を収容するためのスロットにより、必要に応じて挿脱できるようになっている。図１には、情報処理装置のメモリ周辺の構成要素を模式的に表している。ＣＰＵ１からＤＩＭＭ３へのアクセス要求は、システムバス７を介してメモリコントローラ２が処理するようになっている。メモリコントローラ２からＤＩＭＭ３には、メモリの基準クロックとなるメモリクロック（ＭＣＬＫ）バス９、メモリアドレスを特定するためのメモリアドレス（ＭＡ）バス１０と、各メモリ・チップの制御するためのメモリコントロールバス１１、データを授受するためのメモリデータバス１２が結ばれている。これらの信号線を総称してメモリバス８という。
【０００３】
またＳＰＤ（Ｓｅｒｉａｌ  Ｐｒｅｓｅｎｃｅ  Ｄｅｔｅｃｔ）コントローラ４は各ＤＩＭＭ３と接続して、各ＤＩＭＭ３がバッファ回路を持っているかどうかや、メモリ容量等の識別情報を、各ＤＩＭＭ３に設置されたＲＯＭ６からシリアルインタフェイス１３を介して読み出す回路である。最近では一般にＳＰＤコントローラ１３としてＩ２Ｃコントローラ、シリアルインタフェイス１３としてＩ２Ｃバス、各ＤＩＭＭ３に設置されたＲＯＭ６としてＥＥＰＲＯＭがよく使われている。
【０００４】
最近ではＣＰＵ１やメモリコントローラ２、ＳＰＤコントローラ４は１つの集積回路に集約されていることも多い。
【０００５】
そしてクロックジェネレータ１４からクロックバス９を介して、ＣＰＵ１、メモリコントローラ２とメモリチップ（ＳＤＲＡＭ）５にクロック信号が供給され、クロック信号に同期させてデータやアドレス、コマンド信号の送受信を行う。このときクロックの位相は各デバイス間でほぼ同相になるように調整される。
【０００６】
図２は従来のメモリコントローラにおける、データ入出力の同期式インターフェイス回路の一例を示す図である。
【０００７】
内部回路から供給される出力データ２４は、フリップフロップ回路２１のデータ入力端に入力し、ここでシステムクロック２２により取り込まれた後、入／出力セル群の一部であるデータ出力バッファ２６を介してデータとして外部に出力し、外部配線２７を介してメモリに供給される。メモリからの出力データは外部配線２７を介して、入／出力セル群の一部であるデータ入力バッファ２５を入力され、この入力バッファ２５の出力はフリップフロップ回路１９のデータ入力端に入力され、システムクロック２２により取り込まれた後、入力データ２３として内部回路に供給される。
【０００８】
しかし、ＤＩＭＭ３は必要に応じて増設して所望のメモリ容量とすることができ、信号に対する負荷はＤＩＭＭ３の実装数によって変わってくる。また、ＤＩＭＭ３には実装されている複数のメモリチップ３への信号を分配するためのバッファ回路を搭載するタイプのものと、バッファ回路を搭載しないタイプのものがある。バッファ回路を搭載するタイプでは信号の負荷はバッファ回路分の１つとなるが、バッファ回路を搭載しないタイプでは信号の負荷はＤＩＭＭ３に搭載されているメモリチップ５に信号が分配されている数となる。このため、ＤＩＭＭ３の種類によってメモリチップ５に供給される信号線の負荷が大きく変わってくる。
【０００９】
このため、ＤＩＭＭ３の構成や種類の違いにより、バンク数が変わるとデータ信号の負荷が変わり、データ信号の立ち上がりと立下り時間が変わる。そのため図２のメモリーコントローラにおけるデータ信号線の入力端に接続されたフリップフロップ１９において、図４のようにセットアップ時間１７とホールド時間１８が確保できなくなる問題があった。
【００１０】
【特許文献１】
特開平６−２５１１３６号公報
【００１１】
【発明が解決しようとする課題】
そこで本発明が解決しようとする課題は、メモリモジュールの構成や種類の違いによりデータ信号に対する負荷が変化する回路において、リード時のデータ信号のセットアップ時間とホールド時間の確保を行うこととする。
【００１２】
【課題を解決するための手段】
着脱可能なメモリモジュールを有する回路において、リード時のデータ信号のセットアップとホールド時間を調整する回路と、前記メモリモジュールを含めたデータ信号線の負荷を確認する手段とを備え、前記メモリモジュールを含めたデータ信号線の負荷に応じて自動的に最適なデータ信号のセットアップとホールド時間の設定を行う。
【００１３】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。図１は本発明の実施におけるメモリ周辺の構成要素のブロック図である。ＣＰＵからメイン・メモリへのアクセスの概要は上記従来例にて説明した内容と同様である。
次に図３〜５を用いて、データ信号の負荷に応じてセットアップ・ホールドの時間を調整する方法を説明する。
【００１４】
図３は、本発明のメモリコントローラにおける、データ入出力の同期式インターフェイス回路を示すブロック図である。システムクロック２２は、遅延時間がそれぞれ違う４つの遅延回路３１〜３４に入力され、４種類のクロック位相に調整される。そしてセレクタ３５により４種類のクロック信号から１つに選択を行いフリップフロップ１９に供給される。
【００１５】
図４のように従来ではデータ信号線の負荷が大きいためデータ信号の立ち上がりが遅くセットアップ時間を満足できない場合でも、本発明の構成により入力データの第一段のフリップフロップ１９のクロック位相の遅延量を増やすことで図６のようにセットアップ時間を満足することができます。つまりバンク数が大きいほど入力データの第一段のフリップフロップ１９のクロック位相を遅らせる、つまり大きな遅延時間をもった遅延器を通したクロックを選択することでセットアップ時間１８のマージンを稼ぐことができます。
【００１６】
例として
バンク数１の場合、位相遅延器（位相遅延時間０．５ｎｓ）を選択。
【００１７】
バンク数２の場合、位相遅延器（位相遅延時間１．０ｎｓ）を選択。
【００１８】
バンク数３〜４の場合、位相遅延器（位相遅延時間１．５ｎｓ）を選択。
【００１９】
バンク数５以上の場合、位相遅延器（位相遅延時間２．０ｎｓ）を選択。
【００２０】
というようにバンク数に応じて位相遅延器を選択することで各メモリ構成に応じたセットアップ・ホールド時間の設定を行うことが出来ます。
【００２１】
またセットアップ時間１８のマージンを稼ぐことはホールド時間１９とのトレードオフの関係にあるため注意が必要です。また、入力データの第一段のフリップフロップ１９のクロック位相を遅らせるとその後段のフリップフロップ２０のセットアップ時間１８のマージンがなくなる方向になるため注意が必要です。
【００２２】
実際にバンク数と入力データの第一段のフリップフロップ１９のクロック位相の調整の関係はデータ信号の波形測定とメモリ動作確認を統計的に求めておき、最適な遅延時間の配分を行う必要があります。
【００２３】
またセットアップ・ホールド時間を調整は、最初にＤＩＭＭ３を実装したときと、その後のＤＩＭＭ３の増減や交換によりＤＩＭＭ３を変更したときに実施する必要がある。
【００２４】
図６はセットアップ・ホールド時間の設定方法を説明したフローチャートである。
【００２５】
始めにシステムの立ち上がり時にセットアップ・ホールド時間の設定シーケンスを開始する（Ｓ１００）。
【００２６】
ＳＰＤコントローラ４により各ＤＩＭＭ３の識別情報を読み出す（Ｓ１０１）。
【００２７】
次に読み出した各ＤＩＭＭ３の識別情報からメモリコントローラに繋がっているＤＩＭＭ３の数、各ＤＩＭＭ３がバッファ回路を搭載するタイプか否か、また各ＤＩＭＭ３の物理的なバンク数を調べ、データバスの負荷を算出する（Ｓ１０２）。
【００２８】
バッファ回路を搭載するタイプであればＤＩＭＭ３の数だけ、バッファ回路を搭載しないタイプであれば各ＤＩＭＭのバンク数を合わせた数に負荷が増減する。そしてデータバスの負荷（バンク数）をもとに入力データの第一段のフリップフロップ１９の位相遅延器の選択を行う（Ｓ１０３）。
【００２９】
セットアップ・ホールド時間の設定終了（Ｓ１０４）後、システム起動動作を引き続き行う。
【００３０】
このようにシステム起動時にメモリ構成を毎回確認をするためメモリ構成の変更が行われてもそのメモリ構成に適したリード時におけるデータ信号のセットアップとホールド時間の設定を行うことができる。
【００３１】
【発明の効果】
以上詳記したように、本発明に係るセットアップとホールド時間調整方法により、ＤＩＭＭ３の構成や種類の違いに応じて自動的にリード時のデータ信号の最適なセットアップ時間１７とホールド時間１８の調整を行うことができるため、ユーザーに手間を掛けさせずにＤＩＭＭ３の構成や種類の違いに拘わらず一定の品質を提供できる。
【図面の簡単な説明】
【図１】本発明又は従来例の実施形態のブロック図である。
【図２】従来例のメモリコンローラのデータ入出力の同期式インターフェイス回路を示すブロック図である。
【図３】本発明のメモリコンローラのデータ入出力の同期式インターフェイス回路を示すブロック図である。
【図４】従来例のメモリコンローラのデータ入出力の同期式インターフェイス回路における入力データとクロックの関係を示すタイミングチャートである。
【図５】本発明のメモリコンローラのデータ入出力の同期式インターフェイス回路における入力データとクロックの関係を示すタイミングチャートである。
【図６】本発明の実施形態を示すフローチャートである。
【符号の説明】
１  ＣＰＵ
２  メモリコントローラ
３  ＤＩＭＭ
４  ＳＰＤコントローラ
５  メモリチップ
６  ＲＯＭ
７  システムバス
８  メモリバス
９  クロックバス
１０  メモリアドレスバス
１１  メモリコントロールバス
１２  メモリデータバス
１３  シリアルバス
１４  クロックジェネレータ
１７  セットアップ時間
１８  ホールド時間
１９  入力データの第一段のフリップフロップ
２０  入力データの第二段のフリップフロップ
２１  出力データの最後段のフリップフロップ
２２  システムクロック
２３  内部回路への入力データ
２４  内部回路からの出力データ
２５  データ入力バッファ
２６  データ出力バッファ
２７  外部配線
３１  位相遅延器１
３２  位相遅延器２
３３  位相遅延器３
３４  位相遅延器４
３５  セレクタ
【図１】
2004334675.tif 000002
【図２】
2004334675.tif 000003
【図３】
2004334675.tif 000004
【図４】
2004334675.tif 000005
【図５】
2004334675.tif 000006
【図６】
2004334675.tif 000007