(57)【特許請求の範囲】
【請求項１】
信号が入力されてから出力するまでの遅延量を変更可能な可変遅延回路であって、
該信号を第１遅延量だけ遅延させる第１遅延部と、
該遅延量に基づき入力される第１選択信号に従って、複数種類のタイミング信号のうちのいずれかを選択する選択回路と、該選択回路により選択された該タイミング信号に応じて、該信号を該第１遅延量よりも大きい第２遅延量だけ遅延させる順序回路とをそなえる第２遅延部と、
入力される第２選択信号に従って、該遅延量が該第１遅延部で遅延可能な最大遅延量を超える場合に、該遅延量が該第１遅延量と該第２遅延量との和になる信号経路を選択する遅延量選択部とをそなえることを特徴とする、可変遅延回路。
【請求項２】
ライトレベリング機能をそなえ、複数のメモリに対して制御を行なうメモリ制御回路であって、
前記複数のメモリに対応してそれぞれ、
該メモリに出力するデータストローブ出力信号を、該ライトレベリング機能を用いて設定された出力遅延量だけ遅延させる出力用可変遅延回路をそなえ、
該出力用可変遅延回路が、
該データストローブ出力信号を第１出力遅延量だけ遅延させる第１出力遅延部と、
該出力遅延量に基づき入力される第１選択信号に従って、複数種類のタイミング信号のうちのいずれかを選択する出力用選択回路と、該出力用選択回路により選択された該タイミング信号に応じて、該データストローブ出力信号を該第１遅延量よりも大きい第２出力遅延量だけ遅延させる出力用順序回路とをそなえる第２出力遅延部と、
入力される第２選択信号に従って、該出力遅延量が該第１出力遅延部で遅延可能な最大出力遅延量を超える場合に、該出力遅延量が該第１出力遅延量と該第２出力遅延量との和になる信号経路を選択する出力遅延量選択部とをそなえることを特徴とする、メモリ制御回路。
【請求項３】
該タイミング信号が、該メモリに対してリード（read）／ライト（write）動作の制御
を行なう際に用いられるクロック信号であることを特徴とする、請求項２に記載のメモリ制御回路。
【請求項４】
ライトレベリング機能をそなえ、複数のメモリに対して制御を行なうメモリ制御回路であって、
前記複数のメモリに対応してそれぞれ、
該メモリから入力されるデータ入力信号を、該ライトレベリング機能を用いて設定された該メモリに出力するデータストローブ出力信号の出力遅延量に応じて設定された入力遅延量だけ遅延させる入力用可変遅延回路をそなえ、
該入力用可変遅延回路が、
該データ入力信号を第１入力遅延量だけ遅延させる第１入力遅延部と、
該入力遅延量に基づき入力される第１選択信号に従って、複数種類のタイミング信号のうちのいずれかを選択する入力用選択回路と、該入力用選択回路により選択された該タイミング信号に応じて、該データ入力信号を該第１遅延量よりも大きい第２入力遅延量だけ遅延させる入力用順序回路とをそなえる第２入力遅延部と、
入力される第２選択信号に従って、該入力遅延量が該第１入力遅延部で遅延可能な最大入力遅延量を超える場合に、該入力遅延量が該第１入力遅延量と該第２入力遅延量との和になる信号経路を選択する入力遅延量選択部とをそなえることを特徴とする、メモリ制御回路。
【請求項５】
請求項２〜４に記載されたメモリ制御回路の該出力遅延量を、前記複数のメモリに対応してそれぞれ設定する遅延量設定装置であって、
一のメモリに対応する設定対象の出力遅延量を、他のメモリに対応する設定済の出力遅延量に基づいて設定する出力遅延量設定部をそなえることを特徴とする、遅延量設定装置。
【請求項６】
該出力遅延量設定部は、前記複数のメモリに対応するそれぞれの該出力遅延量を、クロック信号線の配線経路に沿って順次設定することを特徴とする、請求項５に記載の遅延量設定装置。
【請求項７】
請求項２〜４に記載されたメモリ制御回路の該出力遅延量を、前記複数のメモリに対応してそれぞれ設定する遅延量設定方法であって、
一のメモリに対応する設定対象の出力遅延量を、他のメモリに対応する設定済の出力遅延量に基づいて設定する出力遅延量設定ステップをそなえることを特徴とする、遅延量設定方法。
【請求項８】
請求項２〜４に記載されたメモリ制御回路の該出力遅延量を、前記複数のメモリに対応してそれぞれ設定する遅延量設定機能をコンピュータに実行させるための遅延量設定プログラムであって、
一のメモリに対応する設定対象の出力遅延量を、他のメモリに対応する設定済の出力遅延量に基づいて設定する出力遅延量設定部として、該コンピュータを機能させることを特徴とする、遅延量設定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号が入力されてから出力するまでの遅延量を制御する技術に関する。
【背景技術】
【０００２】
近年のメモリインタフェイスにおいては、ＪＥＤＥＣ（Joint Electron Device Engineering Council）で規格化されたＤＤＲ３（Double Data Rate 3）メモリインタフェイス等のように年々高速化が進んでいる。
このようなメモリインタフェイスを設計する場合には、ＤＬＬ（Delay Locked Loop）が必須となり、このＤＬＬの内部には、信号が入力されてから出力するまでの遅延量を変更可能な可変遅延回路が用いられている（例えば、下記特許文献１参照）。
【０００３】
図１４は従来の可変遅延回路の構成例を模式的に示す図であり、複数（図１４に示す例では１０個）の遅延素子９１−１〜９１−１０を直列に接続して構成された従来の可変遅延回路９０において、信号の遅延量を変更する手法を説明するための図である。
なお、以下、遅延素子を示す符号としては、複数の遅延素子のうち１つを特定する必要があるときは符号９１−１〜９１−１０を用いるが、任意の遅延素子を指すときには符号９１を用いる。
【０００４】
そして、従来の可変遅延回路９０は、各遅延素子９１−１〜９１−１０の各制御信号入力端子ＣＯＮＴに入力される制御信号に基づいて、最前段の遅延素子９１−１に入力された信号が通過する遅延素子９１の数を増減させることにより、信号が入力されてから出力するまでの遅延量を変更しうるようになっている。
例えば、図１４に示すように、遅延素子９１−８に対して制御信号としてその制御信号入力端子ＣＯＮＴにHigh信号（図１４の符号“Ｈ”参照）が入力されるとともに、遅延素子９１−８以外の各遅延素子９１−１〜９１−７，９１−９，９１−１０に対して制御信号として各制御信号入力端子ＣＯＮＴにLow信号（図１４の符号“Ｌ”参照）が入力された場合には、最前段の遅延素子９１−１から入力された信号が（図１４の符号“ＩＮ”参照）、複数の遅延素子９１−２〜９１−７を遅延素子９１−２から遅延素子９１−７にかけて順次通過して、遅延素子９１−８で折り返されて、複数の遅延素子９１−２〜９１−７を、今度は、遅延素子９１−７から遅延素子９１−２にかけて順次通過して、最前段の遅延素子９１−１から出力される（図１４の符号“ＯＵＴ”参照）。
【０００５】
このように、従来の可変遅延回路においては、信号が入力されてから出力するまでの遅延量を、信号が通過（伝搬）する遅延素子の数の増減によって変化させるようになっている。
【特許文献１】特開２００５−２８６４６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した可変遅延回路９０を用いて遅延量を設定する場合においては、大きな遅延量を設定したり、小刻みに遅延量を設定したりするためには、大量の遅延素子９１が必要となり、回路規模が増大することになる。
そして、遅延量を設定すべきデータ信号線の本数が多い場合や、複数のメモリインタフェイスを１のチップに集約したい場合等のように、上述した可変遅延回路９０の数が多くなると、回路規模がより増大し、製造コストが嵩む場合もある。
【０００７】
さらに、大量の遅延素子９１を制御する必要があることから、消費電力が増加するだけでなく、同時スイッチングノイズが増大することも懸念される。
本発明は、このような課題に鑑み創案されたもので、回路規模を抑えつつ、広範囲の遅延量を高精度に設定することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、開示の可変遅延回路は、信号を第１遅延量だけ遅延させる第１遅延部と、遅延量に基づき入力される第１選択信号に従って、複数種類のタイミング信号のうちのいずれかを選択する選択回路と、選択回路により選択されたタイミング信号に応じて、信号を第１遅延量よりも大きい第２遅延量だけ遅延させる順序回路とをそなえる第２遅延部と、入力される第２選択信号に従って、遅延量が第１遅延部で遅延可能な最大遅延量を超える場合に、遅延量が第１遅延量と第２遅延量との和になる信号経路を選択する遅延量選択部とをそなえている。
また、開示のメモリ制御回路は、ライトレベリング機能をそなえ、複数のメモリに対して制御を行なうメモリ制御回路であって、複数のメモリに対応してそれぞれ、メモリに出力するデータストローブ出力信号を、ライトレベリング機能を用いて設定された出力遅延量だけ遅延させる出力用可変遅延回路をそなえ、この出力用可変遅延回路が、データストローブ出力信号を第１出力遅延量だけ遅延させる第１出力遅延部と、出力遅延量に基づき入力される第１選択信号に従って、複数種類のタイミング信号のうちのいずれかを選択する出力用選択回路と、出力用選択回路により選択されたタイミング信号に応じて、データストローブ出力信号を第１遅延量よりも大きい第２出力遅延量だけ遅延させる出力用順序回路とをそなえる第２出力遅延部と、入力される第２選択信号に従って、出力遅延量が第１出力遅延部で遅延可能な最大出力遅延量を超える場合に、出力遅延量が第１出力遅延量と第２出力遅延量との和になる信号経路を選択する出力遅延量選択部とをそなえている。
【０００９】
さらに、開示のメモリ制御回路は、ライトレベリング機能をそなえ、複数のメモリに対して制御を行なうメモリ制御回路であって、複数のメモリに対応してそれぞれ、メモリから入力されるデータ入力信号を、ライトレベリング機能を用いて設定されたメモリに出力するデータストローブ出力信号の出力遅延量に応じて設定された入力遅延量だけ遅延させる入力用可変遅延回路をそなえ、この入力用可変遅延回路が、データ入力信号を第１入力遅延量だけ遅延させる第１入力遅延部と、入力遅延量に基づき入力される第１選択信号に従って、複数種類のタイミング信号のうちのいずれかを選択する入力用選択回路と、入力用選択回路により選択されたタイミング信号に応じて、データ入力信号を第１遅延量よりも大きい第２入力遅延量だけ遅延させる入力用順序回路とをそなえる第２入力遅延部と、入力される第２選択信号に従って、入力遅延量が第１入力遅延部で遅延可能な最大入力遅延量を超える場合に、入力遅延量が第１入力遅延量と第２入力遅延量との和になる信号経路を選択する入力遅延量選択部とをそなえている。
【００１０】
そして、開示の遅延量設定装置は、上述したメモリ制御回路の出力遅延量を、複数のメモリに対応してそれぞれ設定する遅延量設定装置であって、一のメモリに対応する設定対象の出力遅延量を、他のメモリに対応する設定済の出力遅延量に基づいて設定する出力遅延量設定部をそなえている。
また、開示の遅延量設定方法は、上述したメモリ制御回路の出力遅延量を、複数のメモリに対応してそれぞれ設定する遅延量設定方法であって、一のメモリに対応する設定対象の出力遅延量を、他のメモリに対応する設定済の出力遅延量に基づいて設定する出力遅延量設定ステップをそなえている。
【００１１】
さらに、開示の遅延量設定プログラムは、上述したメモリ制御回路の出力遅延量を、複数のメモリに対応してそれぞれ設定する遅延量設定機能をコンピュータに実行させるための遅延量設定プログラムであって、一のメモリに対応する設定対象の出力遅延量を、他のメモリに対応する設定済の出力遅延量に基づいて設定する出力遅延量設定部としてコンピュータを機能させるようになっている。
【発明の効果】
【００１２】
開示の技術によれば、以下の少なくともいずれか１つの効果ないし利点がある。
（１）回路規模を小さくできる。
（２）広範囲の遅延量を高精度に設定できる。
（３）消費電力を低減することができる。
（４）同時スイッチングノイズを低減することができる。
【発明を実施するための最良の形態】
【００１３】
〔１〕本発明の第１実施形態の説明
以下、図面を参照しながら本発明の第１実施形態について説明する。
図１は本発明の第１実施形態としての可変遅延回路の構成例を模式的に示す図、図２はその動作を説明するためのタイミングチャートである。
本発明の第１実施形態に係る可変遅延回路１００は、信号が入力されてから出力するまでの遅延量ＴＤＬを変更可能なものであって、図１に示すように、第１遅延回路（第１遅延部）１０１，第２遅延回路（第２遅延部）１０２およびセレクタ（遅延量選択部）１０３をそなえた回路として構成されている。
【００１４】
第１遅延回路１０１は、入力された信号を第１遅延量（第１遅延時間）ＤＬ１だけ遅延させるものであって、例えば、設定すべき遅延量ＴＤＬに基づき入力される遅延制御信号ＳＥＬｄｌｙに基づいて、後述するセレクタ１０３から入力された信号ＩＮｓｅｌを、直列に接続された所定数の遅延素子（図示省略）に通過させることにより第１遅延量ＤＬ１だけ遅延させてデータ出力信号ＯＵＴとして出力するデジタル遅延回路で構成されている。なお、デジタル遅延回路は既知であるため、その詳細な説明を省略する。
【００１５】
また、第１遅延量ＤＬ１には、第１遅延回路１０１を構成する遅延素子の総数に対応する最大遅延量ＭＤＬを上限として、信号ＩＮｓｅｌを通過させる遅延素子の数が設定される。
そして、この第１遅延回路１０１では、信号ＩＮｓｅｌを通過させる遅延素子の数を段階的に変更して第１遅延量ＤＬ１を設定可能に構成されており、例えば、第１遅延回路１０１が８個の遅延素子で構成されている場合には、８段階の第１遅延量ＤＬ１を設定可能に構成されている。
【００１６】
第２遅延回路１０２は、入力された信号を第１遅延量ＤＬ１よりも大きい第２遅延量（第２遅延時間）ＤＬ２だけ遅延させるものであって、例えば、セレクタ（選択回路）１０４およびＤフリップフロップ（順序回路）１０５をそなえて構成されている。
セレクタ１０４は、位相が異なる複数（（ｍ＋１）個；但し、ｍは１以上の自然数）種類のタイミング信号ＴＳ０〜ＴＳｍが入力され、設定すべき遅延量ＴＤＬに基づいて、これらの入力された複数種類のタイミング信号ＴＳ０〜ＴＳｍのうちのいずれかを選択するものである。
【００１７】
また、これらの複数種類のタイミング信号ＴＳ０〜ＴＳｍは、互いに同じ波形（波長と振幅）を有し、第０タイミング信号ＴＳ０から第ｍタイミング信号ＴＳｍにかけて第１遅延回路１０１の最大遅延量ＭＤＬよりも大きい間隔で順次遅延してセレクタ１０４に入力されるようになっている。
例えば、本実施形態においては、複数種類のタイミング信号ＴＳ０〜ＴＳｍは、第０タイミング信号ＴＳ０から第ｍタイミング信号ＴＳｍにかけて位相αで順次遅延してセレクタ１０４に入力されるようになっている。そして、位相αとタイミング信号の個数ｍ＋１との間では、ｍ＋１＝３６０／αの関係式が成立する。本実施形態においては、α＝９０°の例について説明するものであり、ｍ＋１＝３６０／９０であることから、ｍ＝３となる。
【００１８】
従って、セレクタ１０４は、例えば、設定すべき遅延量ＴＤＬに基づき入力される第１選択信号ＳＥＬｔｓに基づいて、位相が異なる複数のタイミング信号ＴＳ０〜ＴＳｍの中から一のタイミング信号を選択し、選択タイミング信号ＴＳｓｅｌ（ＣＬＫノード）として出力するようになっている。
Ｄフリップフロップ１０５は、セレクタ１０４により選択された選択タイミング信号ＴＳｓｅｌに応じて、入力された信号を第２遅延量ＤＬ２だけ遅延させるものであって、例えば、セレクタ１０４から入力される選択タイミング信号ＴＳｓｅｌの立上り（もしくは立下り）エッジに同期して、データ入力信号ＩＮを信号ｔｄＩＮとして出力するようになっている。そして、Ｄフリップフロップ１０５は、セレクタ１０４から入力される選択タイミング信号ＴＳｓｅｌの次の立上り（もしくは立下り）エッジが現れるまで、信号ｔｄＩＮの値を保持するようになっている。
【００１９】
セレクタ１０３は、設定すべき遅延量ＴＤＬと第１遅延回路１０１で遅延可能な最大遅延量ＭＤＬとに基づき入力される第２選択信号ＳＥＬｉｎに基づいて、信号の経路を選択するものである。
本実施形態においては、セレクタ１０３は、例えば、遅延量ＴＤＬが最大遅延量ＭＤＬを超えない場合には、データ入力信号ＩＮを信号ＩＮｓｅｌとして第１遅延回路１０１に出力する経路を選択し、遅延量ＴＤＬが最大遅延量ＭＤＬを超える場合には、Ｄフリップフロップ１０５から入力される信号ｔｄＩＮを信号ＩＮｓｅｌとして第１遅延回路１０１に出力する経路を選択するようになっている。
【００２０】
即ち、本実施形態においては、セレクタ１０３は、遅延量ＴＤＬが最大遅延量ＭＤＬを超えない場合には、遅延量ＴＤＬが第１遅延量ＤＬ１になる信号の経路を選択し、遅延量ＴＤＬが最大遅延量ＭＤＬを超える場合には、遅延量ＴＤＬが第１遅延量ＤＬ１と第２遅延量ＤＬ２との和になる信号の経路を選択するのである。
なお、上述したセレクタ１０３およびセレクタ１０４においては、出力信号にグリッジが生じることが懸念されるが、例えば、トレーニング期間を設けてその期間中の送受信データを無効としたり、グリッジが出ないように第１選択信号ＳＥＬｔｓや第２選択信号ＳＥＬｉｎの切替タイミングを考慮して設計したりすることにより、グリッジによる影響を回避することができる。
【００２１】
上述の如く構成された本発明の第１実施形態に係る可変遅延回路１００における、選択タイミング信号ＴＳｓｅｌとして第２タイミング信号ＴＳ２を選択した場合の動作について、図２を参照しながら説明する。なお、以下、α＝９０°の例について示す。
セレクタ１０４には、第０タイミング信号ＴＳ０がＤａｔａ０としてのデータ入力信号ＩＮと同じもしくはほぼ同じタイミングで入力され（図２の時間“Ａ１”参照）、第１タイミング信号ＴＳ１が第０タイミング信号ＴＳ０から位相をα遅延させた状態（タイミング）で入力され（図２の時間“Ａ２”参照）、以下同様に、第２タイミング信号ＴＳ２〜第ｍタイミング信号ＴＳｍが、第２タイミング信号ＴＳ２から第ｍタイミング信号ＴＳｍにかけて位相をαずつ順次遅延させた状態でそれぞれ入力されている（図２の時間“Ａ３”および“Ａ５”参照）。
【００２２】
この状態において、セレクタ１０４は、第１選択信号ＳＥＬｔｓに基づいて、第２タイミング信号ＴＳ２を選択しているので（図２の符号“ＳＥＬｔｓ”参照）、Ｄフリップフロップ１０５には、選択タイミング信号ＴＳｓｅｌが第２タイミング信号ＴＳ２の立ち上がりに合わせたタイミングで入力される（図２の時間“Ａ３”，“Ａ７”，“Ａ１０”および“Ａ１３”参照）。
【００２３】
Ｄフリップフロップ１０５は、Ｄａｔａ０がデータ入力信号ＩＮとして入力され、選択タイミング信号ＴＳｓｅｌが第２タイミング信号ＴＳ２の立ち上がりに合わせたタイミングで入力されると、信号ｔｄＩＮを出力する（図２の時間“Ａ３”参照）。即ち、Ｄフリップフロップ１０５は、Ｄａｔａ０がデータ入力信号ＩＮとして入力されてから第２遅延量ＤＬ２（図２の時間“Ａ１”〜“Ａ３”参照）だけ遅延して信号ｔｄＩＮを出力する。
【００２４】
そして、セレクタ１０３は、第２選択信号ＳＥＬｉｎに基づいて（図２の符号“ＳＥＬｉｎ”参照）、その立ち上がりのタイミングでＤフリップフロップ１０５から入力された信号ｔｄＩＮを信号ＩＮｓｅｌとして第１遅延回路１０１に出力し（図２の時間“Ａ３”参照）、第１遅延回路１０１は、遅延制御信号ＳＥＬｄｌｙに基づいて、信号ＩＮｓｅｌを第１遅延量ＤＬ１だけ遅延させてデータ出力信号ＯＵＴとして出力する（図２の時間“Ａ４”参照）。
【００２５】
以下、同様に、Ｄａｔａ１〜Ｄａｔａ３のそれぞれについて、Ｄフリップフロップ１０５は、Ｄａｔａ１〜Ｄａｔａ３としてのデータ入力信号ＩＮが入力されてから（図２の時間“Ａ６”，“Ａ９”および“Ａ１２”参照）第２遅延量ＤＬ２だけ遅延して信号ｔｄＩＮを出力し（図２の時間“Ａ７”，“Ａ１０”および“Ａ１３”参照）、第１遅延回路１０１は、Ｄａｔａ１〜Ｄａｔａ３に対応する各信号ＩＮｓｅｌを第１遅延量ＤＬ１だけ遅延させてデータ出力信号ＯＵＴとして出力する（図２の時間“Ａ８”，“Ａ１１”および“Ａ１４”参照）。
これにより、Ｄａｔａ０〜Ｄａｔａ３は、第１遅延量ＤＬ１と第２遅延量ＤＬ２との和になる遅延量ＴＤＬだけ遅延してデータ出力信号ＯＵＴとして出力されるのである。
【００２６】
このように、本発明の第１実施形態としての可変遅延回路１００によれば、位相が異なる複数のタイミング信号ＴＳ０〜ＴＳｍを第１遅延回路１０１の最大遅延量ＭＤＬよりも大きい間隔で順次遅延してセレクタ１０４に入力することにより、大きい間隔で第２遅延量ＤＬ２を設定した後に、小さい間隔で第１遅延量ＤＬ１を設定することができるので、広範囲の遅延量ＴＤＬを高精度に設定でき、利便性が向上する。又、第１遅延回路１０１だけで遅延量ＴＤＬを設定する場合に比べて、第１遅延回路１０１の遅延素子の数を削減することができる。従って、回路規模を抑えつつ、広範囲の遅延量ＴＤＬを高精度に設定できる。
また、セレクタ１０４にて複数のタイミング信号ＴＳ０〜ＴＳｍの中から一のタイミング信号を選択し、セレクタ１０４にて選択したタイミング信号の立ち上がりに合わせて信号ＩＮを第２遅延量ＤＬ２だけ遅延させることにより、大量の遅延素子を設ける必要がなくなり、これにより、消費電力を低減するとともに、同時スイッチングノイズを低減することができる。
【００２７】
〔２〕本発明の第２実施形態の説明
図３および図４は本発明の第２実施形態としての情報処理装置の構成例を模式的に示す図であり、図３はメモリコントローラとＤＩＭＭとの関係を示す図、図４は処理部とメモリコントローラとＤＩＭＭとの関係を示す図である。又、図５および図６はそのメモリコントローラの回路構成例を模式的に示す図である。
【００２８】
本発明の第２実施形態に係る情報処理装置（遅延量設定装置）１０ａは、図３および図４に示すように、ＤＩＭＭ（Dual Inline Memory Module）１１，メモリコントローラ（メモリ制御回路）１２および処理部１３（図４参照）をそなえたコンピュータとして構成されている。
ＤＩＭＭ１１は、複数のメモリを搭載したメモリモジュールであって、本実施形態においては、図３および図４に示すように、複数（ｎ+１個；ｎは１以上の自然数）のＳＤＲＡＭ（Synchronous DRAM；メモリ）３００−０〜３００−ｎをそなえて構成されている。又、ｎ＋１はｃｈ（チャンネル）の数を示しており、以下、図中においては、便宜上、一部のＳＤＲＡＭ（例えば、ＳＤＲＡＭ３００−０とＳＤＲＡＭ３００−ｎ）のみを示している。なお、ＳＤＲＡＭは既知の技術であり、その詳細な説明を省略する。
【００２９】
また、以下、ＳＤＲＡＭを示す符号としては、複数のＳＤＲＡＭのうち１つを特定する必要があるときは符号３００−０〜３００−ｎを用いるが、任意のＳＤＲＡＭを指すときには符号３００を用いる。
そして、本実施形態においては、メモリコントローラ１２と複数のＳＤＲＡＭ３００−０〜３００−ｎとの一部の配線にフライバイトポロジが採用されている。
【００３０】
フライバイトポロジとは、図３に示すように、メモリコントローラ１２と複数のＳＤＲＡＭ３００−０〜３００−ｎとをデイジーチェーンで配線することをいう。
従って、本実施形態においては、後述する第１クロック信号生成部１４によって生成されるクロック信号ＣＫ１を出力（供給）するためのクロック信号線がＳＤＲＡＭ３００−０〜３００−ｎに対してデイジーチェーンで配線されており、図３および図４に示すように、第１クロック信号生成部１４（図４参照）に接続されたクロック信号線が、ＳＤＲＡＭ３００−０からＳＤＲＡＭ３００−ｎにかけて数珠つなぎに接続されている。又、アドレス信号Ａｄｄおよびコマンド信号ＣＭＤを出力するための信号線についても、クロック信号線と同様に、ＳＤＲＡＭ３００−０〜３００−ｎに対してデイジーチェーンで配線されている。
【００３１】
そして、メモリコントローラ１２と複数のＳＤＲＡＭ３００−０〜３００−ｎとの間をつなぐデータ信号線は、メモリコントローラ１２から複数のＳＤＲＡＭ３００−０〜３００−ｎのそれぞれに並列に接続されており、図４に示す例では、各ＳＤＲＡＭ３００には、メモリコントローラ１２から、データストローブ信号ＤＱＳを伝送するための１本のＤＱＳ信号線（データ信号線）とデータ信号ＤＱを伝送するためのｋ+１本（ｋは１以上の自然数）のＤＱ信号線（データ信号線）とがそれぞれ並列に接続されており、又、複数のＳＤＲＡＭ３００−０〜３００−ｎにおいては、これらのデータ信号線は互いに等しい線長（等長）に構成されている。即ち、メモリコントローラ１２と複数のＳＤＲＡＭ３００−０〜３００−ｎとの間をつなぐ複数のデータ信号線は、等長接続されている。
【００３２】
なお、図４〜６においては、便宜上、クロック信号線とアドレス信号Ａｄｄおよびコマンド信号ＣＭＤを出力するための信号線（例えば、図４の符号“Ａｄｄ”および“ＣＭＤ”参照）とがＤＩＭＭ１１の端部付近（紙面上部）において接続されていることを示しているが、実際には、図３に示すように、これらの信号線がＤＩＭＭ１１の中央部（紙面中央）に接続されているものとする。
【００３３】
メモリコントローラ１２は、クロック信号線がデイジーチェーンで接続された複数のＳＤＲＡＭ３００−０〜３００−ｎに対して、クロック信号線を介してクロック信号ＣＫ１を供給することにより、リード（read）／ライト（write）動作の制御を行なうＤＤＲ３（Double Data Rate 3）メモリインタフェイスであって、例えば、図４に示すように、第１クロック信号生成部１４および複数の制御回路ユニット１５−０〜１５−ｎをそなえて構成されている。
【００３４】
また、メモリコントローラ１２は、ライトレベリング機能をそなえている。なお、このライトレベリング機能の詳細については後述する。
複数の制御回路ユニット１５−０〜１５−ｎは、上述した複数のＳＤＲＡＭ３００−０〜３００−ｎのそれぞれに対応して構成されている。即ち、メモリコントローラ１２は、例えば、図４に示すように、ＳＤＲＡＭ３００−０に対応する制御回路ユニット１５−０や、ＳＤＲＡＭ３００−ｎに対応する制御回路ユニット１５−ｎをそなえて構成されている。
【００３５】
なお、以下、制御回路ユニットを示す符号としては、複数の制御回路ユニットのうち１つを特定する必要があるときは符号１５の後に“−（ハイフン）”とともに符号０〜ｎを用いるが、任意の制御回路ユニットを指すときには符号１５を用いる。
また、図中においては、便宜上、制御回路ユニット１５−０と制御回路ユニット１５−ｎのみを示している。
【００３６】
第１クロック信号生成部１４は、後述する処理部１３から入力されるクロック信号ＣＬＫに基づいて所定周期のクロック信号ＣＫ１を生成・出力するものであって、例えば、図５および図６に示すように、クロック信号線（図５および図６の符号“ＣＫ１”参照）を介してＤＩＭＭ１１（ＳＤＲＡＭ３００−０〜３００−ｎ）に出力するとともに、複数の制御回路ユニット１５−０〜１５−ｎのそれぞれにも出力するようになっている。この第１クロック信号生成部１４は、クロック信号ＣＬＫと同じクロック周期のクロック信号をクロック信号ＣＫ１として出力してもよく、又、クロック信号ＣＬＫを１／２や１／４等の他のクロック周期に変換したクロック信号ＣＫ１を出力してもよい。
【００３７】
制御回路ユニット１５は、データストローブ信号ＤＱＳやデータ信号ＤＱの入出力を制御するものであって、例えば、図４〜図６に示すように、ＤＱＳ信号生成部１６，リード側ＤＱＳ遅延回路ＤＲ０（図５，図６参照），複数（ｋ+１個；ｋは１以上の自然数）のＤＱ信号制御部１７−０〜１７−ｋおよび論理和回路ＯＲ（図５，図６参照）をそなえて構成されている。
【００３８】
なお、以下、ＤＱ信号制御部を示す符号としては、ＤＱ信号制御部のうち１つを特定する必要があるときは符号１７の後に“−（ハイフン）”とともに符号０〜ｋを用いるが、任意のＤＱ信号制御部を指すときには符号１７を用いる。
また、図中においては、便宜上、ＤＱ信号制御部１７−０とＤＱ信号制御部１７−ｋのみを示している。
【００３９】
ＤＱＳ信号生成部１６は、ＳＤＲＡＭ３００に出力するためのデータストローブ信号（データストローブ出力信号）ＤＱＳを生成するものであって、制御回路ユニット１５に１つそなえられ、例えば、制御回路ユニット１５−０においては、図５に示すように、データストローブ信号ＤＱＳ−０を生成してＳＤＲＡＭ３００−０に出力するようになっており、制御回路ユニット１５−ｎにおいては、図６に示すように、データストローブ信号ＤＱＳ−ｎを生成してＳＤＲＡＭ３００−ｎに出力するようになっている。
【００４０】
なお、以下、データストローブ信号を示す符号としては、複数のデータストローブ信号のうち１つを特定する必要があるときは符号ＤＱＳ−０〜ＤＱＳ−ｎを用いるが、任意のデータストローブ信号を指すときには符号ＤＱＳを用いる。
このＤＱＳ信号生成部１６は、例えば、図５および図６に示すように、出力用可変遅延回路ＤＷ０，第２クロック信号生成部１８およびフリップフロップＦＦ０をそなえて構成されている。
【００４１】
出力用可変遅延回路ＤＷ０は、上述した第１実施形態に係る可変遅延回路１００で構成されるものであって、後述する出力遅延量設定部２３からの出力制御信号ｄ１に基づいて、後述する処理部１３から入力されたクロック信号ＣＬＫ（図１の符号“ＩＮ”に相当）を、後述する出力遅延量設定部２３によって設定された出力遅延量だけ遅延させて第２クロック信号生成部１８に出力するようになっており（図１の符号“ＯＵＴ”に相当）、これにより、出力用可変遅延回路ＤＷ０は、ＳＤＲＡＭ３００に出力するデータストローブ信号ＤＱＳを出力遅延量だけ遅延させるといえる。
【００４２】
なお、本実施形態においては、複数の制御回路ユニット１５−０〜１５−ｎに対してそれぞれ出力遅延量が設定されている。具体的には、制御回路ユニット１５−０における出力用可変遅延回路ＤＷ０には出力遅延量Ｄｔ１−０が設定されており、同様に、制御回路ユニット１５−ｎにおける出力用可変遅延回路ＤＷ０には出力遅延量Ｄｔ１−ｎが設定されている。
【００４３】
なお、以下、出力遅延量を示す符号としては、複数の出力遅延量のうち１つを特定する必要があるときは符号Ｄｔ１−０〜Ｄｔ１−ｎを用いるが、任意の出力遅延量を指すときには符号Ｄｔ１を用いる。
そして、本実施形態の出力用可変遅延回路ＤＷ０においては、出力制御信号ｄ１が、上述した第１実施形態における遅延制御信号ＳＥＬｄｌｙ，第１選択信号ＳＥＬｔｓおよび第２選択信号ＳＥＬｉｎに相当し、出力遅延量Ｄｔ１が、上述した第１実施形態における遅延量ＴＤＬに相当する。
【００４４】
また、本実施形態の出力用可変遅延回路ＤＷ０では、“０”〜“７”の８段階で第１遅延量ＤＬ１（上記第１実施形態参照）を設定可能な第１遅延回路（第１出力遅延部）１０１が用いられており、最大遅延量ＭＤＬが“７”となっている。
さらに、本実施形態の出力用可変遅延回路ＤＷ０には、第１クロック信号生成部１４から取り出された（抽出された）複数のクロック信号ＣＫ１−０〜ＣＫ１−ｍが入力されるようになっており、これらの複数のクロック信号ＣＫ１−０〜ＣＫ１−ｍが、上述した第１実施形態における複数のタイミング信号ＴＳ０〜ＴＳｍに相当する。
【００４５】
なお、本実施形態においては、これらの複数のクロック信号ＣＫ１−０〜ＣＫ１−ｍは、第０クロック信号ＣＫ１−０から第ｍクロック信号ＣＫ１−ｍにかけてα（＝９０°）の位相で順次遅延するように、例えば、第１クロック信号生成部１４における所定位置からそれぞれ取り出して出力用可変遅延回路ＤＷ０に入力されるようになっている。
なお、第１クロック信号生成部１４から複数のクロック信号ＣＫ１−０〜ＣＫ１−ｍを取り出す手法については、既知の種々の手法を用いることができる。例えば、第１クロック信号生成部１４が複数の遅延素子（図示省略）を直列に接続して構成された可変遅延回路である場合には、複数のクロック信号ＣＫ１−０〜ＣＫ１−ｍは、第０クロック信号ＣＫ１−０から第ｍクロック信号ＣＫ１−ｍにかけてα（＝９０°）の位相で順次遅延するように、各遅延素子の接点からそれぞれ取り出されて出力用可変遅延回路ＤＷ０に入力されるようになっている。このように、第１クロック信号生成部１４を構成する遅延素子を設計時にマージンを持たせた数（段数）で作り込んでおき、第１クロック信号生成部１４を構成する可変遅延回路（即ち、ＤＬＬ（Delay Locked Loop）内で使用されている可変遅延回路）が出力用可変遅延回路ＤＷ０と同等の回路で構成されることにより、例えば、製造プロセスよるばらつき・電源電圧変動等の影響によって出力用可変遅延回路ＤＷ０の出力遅延量Ｄｔ１が変動したとしても、出力用可変遅延回路ＤＷ０において最大遅延量ＭＤＬ（＝α）となる条件を容易に求めることができる。
【００４６】
また、図中においては、便宜上、複数のクロック信号ＣＫ１−０〜ＣＫ１−ｍを符号ＣＫ１で示している。
従って、出力用可変遅延回路ＤＷ０は、データストローブ信号ＤＱＳを第１遅延量（第１出力遅延量）ＤＬ１だけ遅延させる第１遅延回路１０１と、データストローブ信号ＤＱＳを第１遅延量ＤＬ１よりも大きい第２遅延量（第２出力遅延量）ＤＬ２だけ遅延させる第２遅延回路（第２出力遅延部）１０２と、出力遅延量Ｄｔ１が第１遅延回路１０１で遅延可能な最大遅延量（最大出力遅延量）ＭＤＬを超える場合に、出力遅延量Ｄｔ１が第１遅延量ＤＬ１と第２遅延量ＤＬ２との和になる信号経路を選択するセレクタ（出力遅延量選択部）１０３とをそなえるのである（図１参照）。
【００４７】
そして、第２遅延回路１０２においては、セレクタ（出力用選択回路）１０４が、出力遅延量Ｄｔ１に基づいて、位相が異なる複数種類のクロック信号ＣＫ１−０〜ＣＫ１−ｍのうちのいずれかを選択し、Ｄフリップフロップ（出力用順序回路）１０５が、セレクタ１０４により選択されたタイミング信号に応じて、データストローブ信号ＤＱＳを第２遅延量ＤＬ２だけ遅延させるのである（図１参照）。
【００４８】
第２クロック信号生成部１８は、後述する処理部１３から入力されるクロック信号ＣＬＫに基づいてクロック信号ＣＫ２を生成・出力（供給）するものであって、例えば、図５および図６に示すように、クロック信号ＣＬＫが入力されると、所定周期のクロック信号ＣＫ２をフリップフロップＦＦ０および後述するフリップフロップＦＦ２に出力するようになっている。この第２クロック信号生成部１８は、クロック信号ＣＬＫと同じクロック周期のクロック信号をクロック信号ＣＫ２として出力してもよく、又、クロック信号ＣＬＫを１／２や１／４等の他のクロック周期に変換したクロック信号ＣＫ２を出力してもよい。
【００４９】
フリップフロップＦＦ０は、第２クロック信号生成部１８から入力されたクロック信号ＣＫ２に基づいて、データストローブ信号ＤＱＳを生成して出力するものであって、例えば、図５および図６に示すように、クロック信号ＣＫ２が入力されると、データストローブ信号ＤＱＳを生成してＳＤＲＡＭ３００に出力するようになっている。
リード側ＤＱＳ遅延回路ＤＲ０は、ＳＤＲＡＭ３００から入力されたデータストローブ信号ＤＱＳを遅延させるものであって、例えば、ＳＤＲＡＭ３００から入力されたデータストローブ信号ＤＱＳを、直列に接続された所定数の遅延素子（図示省略）に通過させることにより遅延させるデジタル遅延回路で構成されており、この遅延させたデータストローブ信号ＤＱＳを後述するフリップフロップＦＦ５およびフリップフロップＦＦ７に出力するようになっている。
【００５０】
ＤＱ信号制御部１７は、データ信号ＤＱの入出力を制御するものであって、例えば、図５および図６に示すように、ＤＱ信号出力制御部１９とＤＱ信号入力制御部２０とをそなえて構成されている。具体的には、図５および図６に示すように、複数（ｎ＋１個）の制御回路ユニット１５−０〜１５−ｎのそれぞれにおいて、ＤＱ信号制御部１７−０には、ＤＱ信号出力制御部１９−０とＤＱ信号入力制御部２０−０とがそなえられており、同様に、ＤＱ信号制御部１７−ｋには、ＤＱ信号出力制御部１９−ｋとＤＱ信号入力制御部２０−ｋとがそなえられている。
【００５１】
なお、以下、ＤＱ信号出力制御部を示す符号としては、複数（ｋ＋１個）のＤＱ信号出力制御部のうち１つを特定する必要があるときは符号１９−０〜１９−ｋを用いるが、任意のＤＱ信号出力制御部を指すときには符号１９を用いる。又、以下、ＤＱ信号入力制御部を示す符号としては、複数のＤＱ信号入力制御部のうち１つを特定する必要があるときは符号２０−０〜２０−ｋを用いるが、任意のＤＱ信号入力制御部を指すときには符号２０を用いる。
【００５２】
ＤＱ信号出力制御部１９は、ライト動作時において、後述する処理部１３から入力されたデータ信号ＤＱをＳＤＲＡＭ３００に出力する制御を行なうものであって、例えば、制御回路ユニット１５−０においては、図５に示すように、複数（ｋ+１個）のＤＱ信号出力制御部１９−０〜１９−ｋに対応してそれぞれ、後述する処理部１３から入力された第１のデータ信号I_DQe-0 [0]または第２のデータ信号I_DQo-0 [0]をデータ信号DQ-0[0]としてＳＤＲＡＭ３００−０に出力する制御を行なうようになっており、同様に、後述する処理部１３から入力された第１のデータ信号I_DQe-0 [k]または第２のデータ信号I_DQo-0 [k]をデータ信号DQ-0[k]としてＳＤＲＡＭ３００−０に出力する制御を行なうようになっている。
【００５３】
また、ＤＱ信号出力制御部１９は、例えば、制御回路ユニット１５−ｎにおいては、図６に示すように、複数のＤＱ信号出力制御部１９−０〜１９−ｋに対応してそれぞれ、後述する処理部１３から入力された第１のデータ信号I_DQe-n [0]または第２のデータ信号I_DQo-n [0]をデータ信号DQ-n[0]としてＳＤＲＡＭ３００−ｎに出力する制御を行なうようになっており、同様に、後述する処理部１３から入力された第１のデータ信号I_DQe-n [k]または第２のデータ信号I_DQo-n [k]をデータ信号DQ-n[k]としてＳＤＲＡＭ３００−ｎに出力する制御を行なうようになっている。
【００５４】
なお、以下、第１のデータ信号を示す符号としては、複数の第１のデータ信号のうち１つを特定する必要があるときは符号I_DQe-0 [0]〜I_DQe-0 [k]や、符号I_DQe-n [0]〜I_DQe-n [k]を用いるが、任意の第１のデータ信号を指すときには符号I_DQeを用いる。又、以下、第２のデータ信号を示す符号としては、複数の第２のデータ信号のうち１つを特定する必要があるときは符号I_DQo-0 [0]〜I_DQo-0 [k]や、I_D Qo-n [0]〜I_DQo-n [k]を用いるが、任意の第２のデータ信号を指すときには符号I_DQoを用いる。
【００５５】
そして、以下、データ信号を示す場合において、第１のデータ信号および第２のデータ信号を特定する必要があるときは、第１のデータ信号を示す符号I_DQeおよびI_DQe-0 [0]〜I_DQe-0 [k]， I_DQe-n [0]〜I_DQe-n [k]や、第２のデータ信号を示す符号I_DQoおよびI_DQo-0 [0]〜I_DQo-0 [k]，I_DQo-n [0]〜I_DQo-n [k]を用いるが、第１のデータ信号および第２のデータ信号を特定する必要がないときは、ＳＤＲＡＭ３００−０〜ＳＤＲＡＭ３００−ｎのそれぞれに対応するデータ信号を示す符号DQ-0[0]〜DQ-0[k]，DQ-n[0]〜DQ-n[k]を用い、更に、任意のデータ信号を指すときには符号ＤＱを用いる。又、第１のデータ信号および第２のデータ信号を特定する必要がない場合において、便宜上、ＳＤＲＡＭ３００−０〜３００−ｎのそれぞれに対応するデータ信号を示す符号DQ-0 [0]〜DQ-0 [k]，DQ-n [0]〜DQ-n [k]に代えて符号ＤＱ−０〜ＤＱ−ｎを用いる場合もある。
【００５６】
即ち、ＳＤＲＡＭ３００−０に対応する第１のデータ信号I_DQe-0 [0]〜I_DQe-0 [k]が、第１のデータ信号I_DQe，データ信号DQ-0[0]〜DQ-0[k]，データ信号ＤＱ−０およびデータ信号ＤＱに対応しており、ＳＤＲＡＭ３００−ｎに対応する第１のデータ信号I_DQe-n [0]〜I_DQe-n [k]が、第１のデータ信号I_DQe，データ信号DQ-n[0]〜DQ-n[k]，データ信号ＤＱ−ｎおよびデータ信号ＤＱに対応している。又、ＳＤＲＡＭ３００−０に対応する第２のデータ信号I_DQo-0 [0]〜I_DQo-0 [k]が、第２のデータ信号I_DQo，データ信号DQ-0[0]〜DQ-0[k]，データＤＱ−０およびデータ信号ＤＱに対応しており、ＳＤＲＡＭ３００−ｎに対応する第２のデータ信号I_DQo-n [0]〜I_DQo-n [k]が、第２のデータ信号I_DQo，データ信号DQ-n[0]〜DQ-n[k]，データＤＱ−ｎおよびデータ信号ＤＱに対応している。
【００５７】
このＤＱ信号入力制御部１９は、第１のデータ信号I_DQeおよび第２のデータ信号I_DQoを多重化してＳＤＲＡＭ３００に出力する制御を行なうようになっている。
なお、第１のデータ信号I_DQeおよび第２のデータ信号I_DQoを多重化してＳＤＲＡＭに出力する手法は既知の技術であるので、その詳細な説明は省略する。
そして、ＤＱ信号出力制御部１９は、例えば、図５および図６に示すように、フリップフロップＦＦ１，出力用可変遅延回路ＤＷ１およびフリップフロップＦＦ２をそなえて構成されている。
【００５８】
フリップフロップＦＦ１は、第１クロック信号生成部１４から入力されたクロック信号ＣＫ１が入力されると、後述する処理部１３から入力された第１のデータ信号I_DQeまたは第２のデータ信号I_DQoを出力用可変遅延回路ＤＷ１に出力するようになっている。
出力用可変遅延回路ＤＷ１は、上述した第１実施形態に係る可変遅延回路１００で構成されるものであって、後述する出力遅延量設定部２３からの出力制御信号ｄ１に基づいて、フリップフロップＦＦ１から入力された第１の入力データ信号I_DQeまたは第２のデータ信号I_DQo（図１の符号“ＩＮ”に相当）を、後述する出力遅延量設定部２３によって設定された出力遅延量Ｄｔ１だけ遅延させてフリップフロップＦＦ２に出力するようになっている（図１の符号“ＯＵＴ”に相当）。
【００５９】
なお、この出力用可変遅延回路ＤＷ１は上述した出力用可変遅延回路ＤＷ０と同様に構成されているため、その詳細な説明を省略する。
フリップフロップＦＦ２は、第２クロック信号生成部１８からクロック信号ＣＫ２が入力されると、出力用可変遅延回路ＤＷ１から入力された第１のデータ信号I_DQeまたは第２のデータ信号I_DQoをＳＤＲＡＭ３００に出力するようになっている。
【００６０】
なお、本実施形態においては、複数のＳＤＲＡＭ３００−０〜３００−ｎのそれぞれに対応して同じ出力遅延量Ｄｔ１が設定されているものとする。
具体的には、図５に示す制御回路ユニット１５−０にそなえられた各出力用可変遅延回路ＤＷ０，ＤＷ１には、出力遅延量Ｄｔ１−０が設定されており、同様に、図６に示す制御回路ユニット１５−ｎにそなえられた各出力用可変遅延回路ＤＷ０，ＤＷ１には、出力遅延量Ｄｔ１−ｎが設定されている。
【００６１】
また、以下、出力用可変遅延回路を示す符号としては、複数の出力用可変遅延回路のうち１つを特定する必要があるときは符号ＤＷ０，ＤＷ１等を用いるが、任意の出力用可変遅延回路を指すときには符号ＤＷを用いる。
なお、以下の説明においては、便宜上、１ｃｈのＳＤＲＡＭ３００−０に対応する出力用可変遅延回路として符号ＤＷ−０を用いる場合があり、同様に、ｎｃｈのＳＤＲＡＭ３００−ｎに対応する出力用可変遅延回路として符号ＤＷ−ｎを用いる場合もある。
【００６２】
ＤＱ信号入力制御部２０は、リード動作時において、ＳＤＲＡＭ３００から入力されたデータ信号（データ入力信号）ＤＱを後述する処理部１３に出力する制御を行なうものであって、例えば、制御回路ユニット１５−０においては、図５に示すように、複数のＤＱ信号入力制御部２０−０〜２０−ｋに対応してそれぞれ、ＳＤＲＡＭ３００−０から入力されたデータ信号DQ-0[0]を第３のデータ信号O_DQe-0 [0]または第４のデータ信号O_DQo-0 [0]として後述する処理部１３に出力する制御を行なうようになっており、同様に、ＳＤＲＡＭ３００−０から入力されたデータ信号DQ-0[k]を第３のデータ信号O_DQe-0 [k]または第４のデータ信号O_DQo-0 [k]として後述する処理部１３に出力する制御を行なうようになっている。
【００６３】
また、ＤＱ信号入力制御部２０は、例えば、制御回路ユニット１５−ｎにおいては、図６に示すように、複数のＤＱ信号入力制御部２０−０〜２０−ｋに対応してそれぞれ、ＳＤＲＡＭ３００−ｎから入力されたデータ信号DQ-n[0]を第３のデータ信号O_DQe-n [0]または第４のデータ信号O_DQo-n [0]として後述する処理部１３に出力する制御を行なうようになっており、同様に、ＳＤＲＡＭ３００−nから入力されたデータ信号DQ-n[k]を第３のデータ信号O_DQe-n [k]または第４のデータ信号O_DQo-n [k]として後述する処理部１３に出力する制御を行なうようになっている。
【００６４】
なお、以下、第３のデータ信号を示す符号としては、複数の第３のデータ信号のうち１つを特定する必要があるときは符号O_DQe-0 [0]〜O_DQe-0 [k]や、符号O_DQe-n [0]〜O_DQe-n [k]を用いるが、任意の第３のデータ信号を指すときには符号O_DQeを用いる。又、以下、第４のデータ信号を示す符号としては、複数の第４のデータ信号のうち１つを特定する必要があるときは符号O_DQo-0 [0]〜O_DQo-0 [k]や、O_DQo-n [0]〜O_DQo-n [k]を用いるが、任意の第４のデータ信号を指すときには符号O_DQoを用いる。
【００６５】
そして、以下、データ信号を示す場合において、第３のデータ信号および第４のデータ信号を特定する必要があるときは、第３のデータ信号を示す符号O_DQeおよびO_DQe-0 [0]〜O_DQe-0 [k]， O_DQe-n [0]〜O_DQe-n [k]や、第４のデータ信号を示す符号O_DQoおよびO_DQo-0 [0]〜O_DQo-0 [k]，O_DQo-n [0]〜O_DQo-n [k]を用いるが、第３のデータ信号および第４のデータ信号を特定する必要がないときは、ＳＤＲＡＭ３００−０〜３００−ｎのそれぞれに対応するデータ信号を示す符号DQ-0 [0]〜DQ-0 [k]，DQ-n[0]〜DQ-n [k]を用い、更に、任意のデータ信号を指すときには符号ＤＱを用いる。又、第３のデータ信号および第４のデータ信号を特定する必要がない場合において、便宜上、ＳＤＲＡＭ３００−０〜３００−ｎのそれぞれに対応するデータ信号を示す符号DQ-0 [0]〜DQ-0 [k]，DQ-n [0]〜DQ-n [k]に代えて符号ＤＱ−０〜ＤＱ−ｎを用いる場合もある。
【００６６】
即ち、ＳＤＲＡＭ３００−０に対応する第３のデータ信号O_DQe-0 [0]〜O_DQe-0 [k]が、第３のデータ信号O_DQe，データ信号DQ-0[0]〜DQ-0[k]，データ信号ＤＱ−０およびデータ信号ＤＱに対応しており、ＳＤＲＡＭ３００−ｎに対応する第３のデータ信号O_DQe-n [0]〜O_DQe-n [k]が、第３のデータ信号O_DQe，データ信号DQ-n[0]〜DQ-n[k]，データ信号ＤＱ−ｎおよびデータ信号ＤＱに対応している。又、ＳＤＲＡＭ３００−０に対応する第４のデータ信号O_DQo-0 [0]〜O_DQo-0 [k]が、第４のデータ信号O_DQo，データ信号DQ-0[0]〜DQ-0[k]，データＤＱ−０およびデータ信号ＤＱに対応しており、ＳＤＲＡＭ３００−ｎに対応する第４のデータ信号O_DQo-n [0]〜O_DQo-n [k]が、第４のデータ信号O_DQo，データ信号DQ-n[0]〜DQ-n[k]，データＤＱ−ｎおよびデータ信号ＤＱに対応している。
【００６７】
このＤＱ信号入力制御部２０は、例えば、図５および図６に示すように、フリップフロップＦＦ５，入力用可変遅延回路ＤＲ１，フリップフロップＦＦ６，フリップフロップＦＦ７，入力用可変遅延回路ＤＲ２およびフリップフロップＦＦ８をそなえて構成されている。
フリップフロップＦＦ５は、データストローブ信号ＤＱＳがＳＤＲＡＭ３００から後述するリード側ＤＱＳ遅延回路ＤＲ０を介して入力されると、ＳＤＲＡＭ３００から入力された第３のデータ信号O_DQeを入力用可変遅延回路ＤＲ１に出力するようになっている。
【００６８】
入力用可変遅延回路ＤＲ１は、上述した第１実施形態に係る可変遅延回路１００で構成されるものであって、後述する入力遅延量設定部２４からの入力制御信号ｄ２に基づいて、フリップフロップＦＦ５から入力された第３のデータ信号O_DQe（図１の符号“ＩＮ”に相当）を、後述する入力遅延量設定部２４によって設定された入力遅延量だけ遅延させてフリップフロップＦＦ６に出力するようになっている（図１の符号“ＯＵＴ”に相当）。
【００６９】
なお、本実施形態においては、複数の制御回路ユニット１５−０〜１５−ｎに対してそれぞれ入力遅延量が設定されている。具体的には、制御回路ユニット１５−０における入力用可変遅延回路ＤＲ１には入力遅延量Ｄｔ２−０が設定されており、同様に、制御回路ユニット１５−ｎにおける入力用可変遅延回路ＤＲ１には入力遅延量Ｄｔ２−ｎが設定されている。
【００７０】
なお、以下、入力遅延量を示す符号としては、複数の入力遅延量のうち１つを特定する必要があるときは符号Ｄｔ２−０〜Ｄｔ２−ｎを用いるが、任意の入力遅延量を指すときには符号Ｄｔ２を用いる。
そして、本実施形態の入力用可変遅延回路ＤＲ１においては、入力制御信号ｄ２が、上述した第１実施形態における遅延制御信号ＳＥＬｄｌｙ，第１選択信号ＳＥＬｔｓおよび第２選択信号ＳＥＬｉｎに相当し、入力遅延量Ｄｔ２が、上述した第１実施形態における遅延量ＴＤＬに相当する。
【００７１】
また、本実施形態の入力用可変遅延回路ＤＲ１では、“０”〜“７”の８段階で第１遅延量ＤＬ１（上記第１実施形態参照）を設定可能な第１遅延回路（第１入力遅延部）１０１が用いられており、最大遅延量ＭＤＬが“７”となっている。
さらに、本実施形態の入力用可変遅延回路ＤＲ１には、リード側ＤＱＳ遅延回路ＤＲ０から取り出された複数のタイミング信号ＣＫ３−０〜ＣＫ３−ｍが入力されるようになっており、これらの複数のタイミング信号ＣＫ３−０〜ＣＫ３−ｍが、上述した第１実施形態における複数のタイミング信号ＴＳ０〜ＴＳｍに相当する。
【００７２】
なお、本実施形態においては、これらの複数のタイミング信号ＣＫ３−０〜ＣＫ３−ｍは、第０タイミング信号ＣＫ３−０から第ｍタイミング信号ＣＫ３−ｍにかけて９０°の位相で順次遅延するように、リード側ＤＱＳ遅延回路ＤＲ０における所定位置からそれぞれ取り出されて入力用可変遅延回路ＤＲ１に入力されるようになっている。
なお、リード側ＤＱＳ遅延回路ＤＲ０から複数のタイミング信号ＣＫ３−０〜ＣＫ３−ｍを取り出す手法については、既知の種々の手法を用いることができる。
【００７３】
また、図中においては、便宜上、複数のタイミング信号ＣＫ３−０〜ＣＫ３−ｍを符号ＣＫ３で示している。
従って、入力用可変遅延回路ＤＲ１は、データ信号ＤＱを第１遅延量（第１入力遅延量）ＤＬ１だけ遅延させる第１遅延回路（第１入力遅延部）１０１と、データ信号ＤＱを第１遅延量ＤＬ１よりも大きい第２遅延量（第２入力遅延量）ＤＬ２だけ遅延させる第２遅延回路（第２入力遅延部）１０２と、入力遅延量Ｄｔ２が第１遅延回路１０１で遅延可能な最大遅延量（最大入力遅延量）ＭＤＬを超える場合に、入力遅延量Ｄｔ２が第１遅延量ＤＬ１と第２遅延量ＤＬ２との和になる信号経路を選択するセレクタ（入力遅延量選択部）１０３とをそなえるのである（図１参照）。
【００７４】
そして、第２遅延回路１０２においては、セレクタ（入力用選択回路）１０４が、入力遅延量Ｄｔ２に基づいて、位相が異なる複数種類のタイミング信号ＣＫ３−０〜ＣＫ３−ｍのうちのいずれかを選択し、Ｄフリップフロップ（入力用順序回路）１０５が、セレクタ１０４により選択されたタイミング信号に応じて、データ信号ＤＱを第２遅延量ＤＬ２だけ遅延させるのである（図１参照）。
【００７５】
フリップフロップＦＦ６は、第１クロック信号生成部１４からクロック信号ＣＫ１が入力されると、入力用可変遅延回路ＤＲ１から入力された第３のデータ信号O_DQeを後述する処理部１３に出力するようになっている。
フリップフロップＦＦ７は、データストローブ信号ＤＱＳがＳＤＲＡＭ３００から後述するリード側ＤＱＳ遅延回路ＤＲ０を介して入力されると、ＳＤＲＡＭ３００から入力された第４のデータ信号O_DQoを入力用可変遅延回路ＤＲ２に出力するようになっている。
【００７６】
入力用可変遅延回路ＤＲ２は、上述した第１実施形態に係る可変遅延回路１００で構成されるものであって、後述する入力遅延量設定部２４からの入力制御信号ｄ２に基づいて、フリップフロップＦＦ７から入力された第４のデータ信号O_DQoを、後述する入力遅延量設定部２４によって設定された入力遅延量Ｄｔ２だけ遅延させてフリップフロップＦＦ８に出力するようになっている。
【００７７】
なお、この入力用可変遅延回路ＤＲ２は上述した入力用可変遅延回路ＤＲ１と同様に構成されているため、その詳細な説明を省略する。
なお、本実施形態においては、複数のＳＤＲＡＭ３００−０〜３００−ｎのそれぞれに対応して同じ入力遅延量Ｄｔ２が設定されているものとする。
具体的には、図５に示す制御回路ユニット１５−０にそなえられた各入力用可変遅延回路ＤＲ１およびＤＲ２には、入力遅延量Ｄｔ２−０が設定されており、同様に、図６に示す制御回路ユニット１５−ｎにそなえられた各入力用可変遅延回路ＤＲ１およびＤＲ２には、入力遅延量Ｄｔ２−ｎが設定されている。
【００７８】
また、以下、入力用可変遅延回路を示す符号としては、複数の入力用可変遅延回路のうち１つを特定する必要があるときは符号ＤＲ１，ＤＲ２等を用いるが、任意の入力用可変遅延回路を指すときには符号ＤＲを用いる。
なお、以下の説明においては、便宜上、１ｃｈのＳＤＲＡＭ３００−０に対応する入力用可変遅延回路として符号ＤＲ−１を用いる場合があり、同様に、ｎｃｈのＳＤＲＡＭ３００−ｎに対応する入力用可変遅延回路として符号ＤＲ−ｎを用いる場合もある。
【００７９】
フリップフロップＦＦ８は、第１クロック信号生成部１４からクロック信号ＣＫ１が入力されると、入力用可変遅延回路ＤＲ２から入力された第４のデータ信号O_DQoを後述する処理部１３に出力するようになっている。
論理和回路ＯＲは、後述するライトレベリング機能を用いた場合に、第３のデータ信号O_DQeおよび第４のデータ信号O_DQoに基づいて、応答信号（例えば、High信号）を後述する処理部１３に出力するようになっている。
【００８０】
具体的には、制御回路ユニット１５−０にそなえられた論理和回路ＯＲは、例えば、図５に示すように、後述するライトレベリング機能を用いた場合に、ＳＤＲＡＭ３００−０に対応する複数の第３のデータ信号O_DQe-0[0]〜O_DQe-0[k]およびＳＤＲＡＭ３００−０に対応する複数の第４のデータ信号O_DQo-0[0]〜O_DQo-0[k]のいずれかが入力されると、応答信号O_DQX-0を後述する処理部１３に出力するようになっている。
【００８１】
また、例えば、制御回路ユニット１５−ｎにそなえられた論理和回路ＯＲは、図６に示すように、後述するライトレベリング機能を用いた場合に、ＳＤＲＡＭ３００−ｎに対応する複数の第３のデータ信号O_DQe-n[0]〜O_DQe-n[k]およびＳＤＲＡＭ３００−ｎに対応する複数の第４のデータ信号O_DQo-n[0]〜O_DQo-n[k]のいずれかが入力されると、応答信号O_DQX-nを後述する処理部１３に出力するようになっている。
【００８２】
なお、以下、応答信号を示す符号としては、複数の応答信号のうち１つを特定する必要があるときは符号O_DQX-0〜O_DQX-nを用いるが、任意の応答信号を指すときには符号O_DQXを用いる。
処理部１３は、情報処理装置１０ａにおいて各種の数値計算，情報処理および機器制御等を行なうものであって、本実施形態においては、遅延時間制御部２２として機能するようになっている（図４参照）。又、処理部１３は、ＭＡＣ（Media Access Control；図示省略）をそなえて構成されており、このＭＡＣを介して各種信号（データ信号ＤＱ，クロック信号ＣＬＫ，応答信号ＤＱＸ等）の入出力を行なうようになっている。
【００８３】
遅延時間制御部２２は、制御回路ユニット１５−０〜１５−ｎのそれぞれにそなえられた出力用可変遅延回路ＤＷおよび入力用可変遅延回路ＤＲに対して、遅延量を設定する制御信号を出力するものであって、図４に示すように、出力遅延量設定部２３および入力遅延量設定部２４をそなえて構成されている。
出力遅延量設定部２３は、ライトレベリング機能を用いて、制御回路ユニット１５−０〜１５−ｎのそれぞれにそなえられた出力用可変遅延回路ＤＷに対して、出力遅延量Ｄｔ１の遅延を行なわせるべく制御を行なうものであって、出力遅延量Ｄｔ１を設定する出力制御信号ｄ１を出力するようになっている。又、出力遅延量設定部２３は、本実施形態においては、ライトレベリング機能を用いて、ライト動作時において複数のＳＤＲＡＭ３００−０〜３００−ｎのそれぞれに対して出力されるデータストローブ信号ＤＱＳ−０〜ＤＱＳ−ｎの各出力遅延量Ｄｔ１−０〜Ｄｔ１−ｎをそれぞれ設定するようになっている。
【００８４】
ここで、ライトレベリング機能とは、複数のＳＤＲＡＭ３００−０〜３００−ｎのそれぞれに対して、各データストローブ信号ＤＱＳ−０〜ＤＱＳ−ｎを、クロック信号ＣＫ１と同時もしくはほぼ同時に入力させるように調整（補正）する機能であり、クロック信号線がデイジーチェーンで配線された複数のＳＤＲＡＭ３００−０〜３００−ｎのそれぞれに対して出力されるデータストローブ信号ＤＱＳ−０〜ＤＱＳ−ｎの各出力遅延量Ｄｔ１−０〜Ｄｔ１−ｎを、これらのＳＤＲＡＭ３００−０〜３００−ｎから出力される各データ信号ＤＱ−０〜ＤＱ−ｎに基づいてそれぞれ設定することにより実現される。
【００８５】
図７は本発明の第２実施形態としての情報処理装置の出力遅延量設定部におけるライトレベリング機能を説明するための図である。
以下、出力遅延量設定部２３において、複数のＳＤＲＡＭ３００−０〜３００−ｎのそれぞれに対応する出力遅延量Ｄｔ１−０〜Ｄｔ１−ｎを、ライトレベリング機能を用いてそれぞれ設定する場合について、図７に示すような、０ｃｈのＳＤＲＡＭ３００−０に対応する出力遅延量Ｄｔ１−０とｎｃｈのＳＤＲＡＭ３００−ｎに対応する出力遅延量Ｄｔ１−ｎとを設定する例を用いて説明する。
【００８６】
また、各ＳＤＲＡＭ（図７に示す例では、ＳＤＲＡＭ３００−０，ＳＤＲＡＭ３００−ｎ）は、それぞれ、クロック信号ＣＫ１とデータストローブ信号ＤＱＳ（図７に示す例では、ＤＱＳ−０，ＤＱＳ−ｎ）とが同時もしくはほぼ同時に入力されると、メモリコントローラ１２にデータ信号ＤＱ（図７に示す例では、DQ-0 [0]〜[k]，DQ-n [0]〜[k]）を出力するようになっている。
【００８７】
先ず、メモリコントローラ１２は、クロック信号ＣＫ１を各ＳＤＲＡＭ（図７に示す例では、ＳＤＲＡＭ３００−０，ＳＤＲＡＭ３００−ｎ）に出力するとともに、これと同時もしくはほぼ同時に、各データストローブ信号ＤＱＳ（図７に示す例では、ＤＱＳ−０，ＤＱＳ−ｎ）を各ＳＤＲＡＭ（図７に示す例では、ＳＤＲＡＭ３００−０，ＳＤＲＡＭ３００−ｎ）のそれぞれに対して出力する（図７の時間“Ｔ０”参照）。
【００８８】
そして、例えば、ライトレベリング機能によって出力遅延量Ｄｔ１が調整される前においては、図７に示すように、０ｃｈのＳＤＲＡＭ３００−０には、クロック信号ＣＫ１が、データストローブ信号ＤＱＳ−０が入力されてから（図７の時間“Ｔ１”および点“Ａ”参照）、時間Ｄｔ１−０だけ遅延して入力され（図７の時間“Ｔ２”参照）、ｎｃｈのＳＤＲＡＭ３００−ｎには、クロック信号ＣＫ１が、データストローブ信号ＤＱＳ−ｎが入力されてから（図７の時間“Ｔ１”および点“Ｂ”参照）、時間Ｄｔ１−ｎだけ遅延して入力される（図７の時間“Ｔ３”参照）。
【００８９】
この場合において、データストローブ信号ＤＱＳ−０とクロック信号ＣＫ１とが同時もしくはほぼ同時に０ｃｈのＳＤＲＡＭ３００−０に入力されるように、出力遅延量Ｄｔ１−０が出力用可変遅延回路ＤＷ−０に設定される（図７の時間“Ｔ２”参照）。又、データストローブ信号ＤＱＳ−ｎとクロック信号ＣＫ１とが同時もしくはほぼ同時にｎｃｈのＳＤＲＡＭ３００−ｎに入力されるように、出力遅延量Ｄｔ１−ｎが出力用可変遅延回路ＤＷ−ｎに設定される（図７の時間“Ｔ３”参照）。
【００９０】
即ち、０ｃｈのＳＤＲＡＭ３００−０においては、出力遅延量設定部２３（図７において図示省略）は、クロック信号ＣＫ１とデータストローブ信号ＤＱＳ−０とが同時もしくはほぼ同時に入力されるまで、出力用可変遅延回路ＤＷ−０の遅延時間を少しずつ延ばしていき、ＳＤＲＡＭ３００−０からの各データ信号DQ-0[0]〜[k]のいずれかが論理和回路ＯＲ−０に入力されて、論理和回路ＯＲ−０が応答信号O_DQX-0を出力した時間を出力遅延量Ｄｔ１−０として出力用可変遅延回路ＤＷ−０に設定するようになっている。
【００９１】
また、ｎｃｈのＳＤＲＡＭ３００−ｎにおいては、出力遅延量設定部２３（図７において図示省略）は、クロック信号ＣＫ１とデータストローブ信号ＤＱＳ−ｎとが同時もしくはほぼ同時に入力されるまで、出力用可変遅延回路ＤＷ−ｎの遅延時間を少しずつ延ばしていき、ＳＤＲＡＭ３００−ｎからの各データ信号DQ-n[0]〜[k]のいずれかが論理和回路ＯＲ−ｎに入力されて、論理和回路ＯＲ−ｎが応答信号O_DQX-nを出力した時間を出力遅延量Ｄｔ１−ｎとして出力用可変遅延回路ＤＷ−ｎに設定するようになっている。
【００９２】
そのため、ＳＤＲＡＭ３００−０〜３００−ｎのそれぞれに対応する各出力遅延量Ｄｔ１−０〜Ｄｔ１−ｎが、０ｃｈのＳＤＲＡＭ３００−０からｎｃｈのＳＤＲＡＭ３００−ｎにかけて順に遅延量が大きくなるように設定されるのである。
そして、出力遅延量設定部２３は、設定した各出力遅延量Ｄｔ１−０〜Ｄｔ１−ｎとなるように出力制御信号ｄ１を出力用可変遅延回路ＤＷ−０〜ＤＷ−ｎのそれぞれに対して出力し、各出力用可変遅延回路ＤＷ−０〜ＤＷ−ｎが、これらの出力制御信号ｄ１に基づいて、各データストローブ信号ＤＱＳ−０〜ＤＱＳ−ｎをそれぞれ出力遅延量Ｄｔ１−０〜Ｄｔ１−ｎだけ遅延させるようになっている。
【００９３】
即ち、出力用可変遅延回路ＤＷは、ライト動作時において、ＳＤＲＡＭ３００に出力するデータストローブ信号ＤＱＳを、ライトレベリング機能を用いて設定された出力遅延量Ｄｔ１だけ遅延させるのである。
図８は本発明の第２実施形態としての情報処理装置の出力遅延量設定部において遅延量を設定する順序を説明するための図、図９はその遅延量を設定する順序を示すタイミングチャートである。
【００９４】
また、出力遅延量設定部２３は、複数のＳＤＲＡＭ３００−０〜３００−ｎに対応するそれぞれの出力遅延量Ｄｔ１−０〜Ｄｔ１−ｎを、クロック信号線の配線経路に沿って順次設定するようになっており、図８に示す例（Unbuffered DIMM）では、クロック信号ＣＫ１が最も早く入力されるＳＤＲＡＭ３００−０に対応する出力遅延量Ｄｔ１−０から、出力遅延量Ｄｔ１−１，出力遅延量Ｄｔ１−２，出力遅延量Ｄｔ１−３，出力遅延量Ｄｔ１−４，出力遅延量Ｄｔ１−５，出力遅延量Ｄｔ１−６の順に、クロック信号ＣＫ１が最も遅く入力されるＳＤＲＡＭ３００−７に対応する出力遅延量Ｄｔ１−７まで設定するようになっている。
【００９５】
さらに、出力遅延量設定部２３は、一のＳＤＲＡＭ３００（例えば、ＳＤＲＡＭ３００−２）と隣り合う他のＳＤＲＡＭ３００（例えば、ＳＤＲＡＭ３００−１）に対応する設定済の出力遅延量Ｄｔ１（例えば、Ｄｔ１−１）を開始遅延量Ｄｔ１ｓｔとして、この開始遅延量Ｄｔ１ｓｔを段階的に変更することにより、一のＳＤＲＡＭ３００（例えば、ＳＤＲＡＭ３００−２）に対応する設定対象の出力遅延量Ｄｔ１（例えば、Ｄｔ１−２）を設定するようになっている。
【００９６】
図９に示す例では、出力遅延量設定部２３は、先ず、０ｃｈのＳＤＲＡＭ３００−０に対応する出力用可変遅延回路ＤＷ−０に対して出力制御信号ｄ１を出力して、出力用可変遅延回路ＤＷ−０の出力遅延量Ｄｔ１−０を設定値“０”（図９の時間“Ｂ１”参照）から段階的に１，２，３，４，５，６と増加させ、論理和回路ＯＲ−０から応答信号O_DQX-0が出力された時点の設定値ＳＶ−０を出力遅延量Ｄｔ１−０として設定する（図９の時間“Ｂ２”参照）。
【００９７】
なお、設定値ＳＶ−０は、ＳＤＲＡＭ３００−０に対応する出力遅延量Ｄｔ１−０の設定値であって、図９に示すように、“ＳＥＬｄｌｙ（０）”，“ＳＥＬｉｎ（０）”および“ＳＥＬｔｓ（０）”で構成されている。同様に、設定値ＳＶ−１〜ＳＶ−ｎは、ＳＤＲＡＭ３００−１〜３００−ｎに対応する出力遅延量Ｄｔ１−１〜Ｄｔ１−ｎの設定値であって、それぞれ、“ＳＥＬｄｌｙ（１）”，“ＳＥＬｉｎ（１）”および“ＳＥＬｔｓ（１）”〜“ＳＥＬｄｌｙ（ｎ）”，“ＳＥＬｉｎ（ｎ）”および“ＳＥＬｔｓ（ｎ）”で構成されている。
【００９８】
“ＳＥＬｄｌｙ（０）”は、出力用可変遅延回路ＤＷ−０に入力された信号（図１の符号“ＩＮ”参照）の遅延量ＤＬ１（上記第１実施形態参照）を第１遅延回路１０１（図１参照）に設定する値であり、本実施形態においては、この値は、出力用可変遅延回路ＤＷ−０に入力された信号が第１遅延回路１０１を構成する遅延素子を通過する数を示している。“ＳＥＬｄｌｙ（１）”〜“ＳＥＬｄｌｙ（ｎ）”についても上記“ＳＥＬｄｌｙ（０）”と同様である。
【００９９】
“ＳＥＬｉｎ（０）”は、出力用可変遅延回路ＤＷ−０に入力された信号の信号経路をセレクタ１０３（図１参照）に設定する値であり、本実施形態においては、値“０”は、出力用可変遅延回路ＤＷ−０に入力された信号が直接セレクタ１０３に入力される信号経路を選択することを示し、値“１”は、出力用可変遅延回路ＤＷ−０に入力された信号が第２遅延回路１０２を介してセレクタ１０３に入力される信号経路を選択することを示している。“ＳＥＬｉｎ（１）”〜“ＳＥＬｉｎ（ｎ）”についても上記“ＳＥＬｉｎ（０）”と同様である。
【０１００】
“ＳＥＬｔｓ（０）”は、複数のクロック信号ＣＫ１−０〜ＣＫ１−ｍの中から選択される一のクロック信号をセレクタ１０４（図１参照）に設定する値である。本実施形態においては、値“０”は、第０クロック信号ＣＫ１−０を選択することを示しており、以下、同様に、値“１”は、第１クロック信号ＣＫ１−１を選択することを示し、値“ｎ”は、第ｎクロック信号ＣＫ１−ｎを選択することを示している。“ＳＥＬｔｓ（１）”〜“ＳＥＬｔｓ（ｎ）”についても上記“ＳＥＬｔｓ（０）”と同様である。
【０１０１】
そして、設定値ＳＶ−０は、“ＳＥＬｄｌｙ（０）”が値“６”に、“ＳＥＬｉｎ（０）”が値“０”に、“ＳＥＬｔｓ（０）”が値“１”に、それぞれ設定される。
次に、出力遅延量設定部２３は、０ｃｈのＳＤＲＡＭ３００−０に対応する出力遅延量Ｄｔ１−０として設定された設定値ＳＶ−０を開始遅延量Ｄｔ１ｓｔ（図９の時間“Ｂ２”参照）として、１ｃｈのＳＤＲＡＭ３００−１に対応する出力遅延量Ｄｔ１−１を設定する。具体的には、出力遅延量設定部２３は、１ｃｈのＳＤＲＡＭ３００−１に対応する出力用可変遅延回路ＤＷ−１に対して出力制御信号ｄ１を出力して、出力用可変遅延回路ＤＷ−１の出力遅延量Ｄｔ１−１を開始遅延量Ｄｔ１ｓｔ（設定値ＳＶ−０；図９の時間“Ｂ２”参照）から段階的に増加させ、論理和回路ＯＲ−１から応答信号O_DQX-1が出力された時点の設定値ＳＶ−１を出力遅延量Ｄｔ１−１として設定する（図９の時間“Ｂ４”参照）。
【０１０２】
この場合において、出力遅延量設定部２３は、遅延量ＴＤＬが最大遅延量ＭＤＬ（本実施形態では“７”）を超えると、第１遅延回路１０１の遅延量ＤＬ１をリセット（ＤＬ１＝“０”）するとともに、遅延量ＴＤＬが第１遅延量ＤＬ１と第２遅延量ＤＬ２（この場合、第０クロック信号ＣＫ１−０）との和になる信号の経路に切り替える出力制御信号ｄ１（“ＳＥＬｉｎ（１）”＝“１”）を出力する（図９の時間“Ｂ３”参照）。
従って、図９に示す例においては、設定値ＳＶ−１は、“ＳＥＬｄｌｙ（１）”が値“３”に、“ＳＥＬｉｎ（１）”が値“１”に、“ＳＥＬｔｓ（１）”が値“１”に、それぞれ設定される。
【０１０３】
以下、同様に、出力遅延量設定部２３は、２ｃｈ以降のＳＤＲＡＭ３００−２〜３００−ｎに対応する出力遅延量Ｄｔ１−２〜Ｄｔ１−ｎについて、それぞれの前段となるＳＤＲＡＭ３００−１〜３００−ｎ−１に対応する出力遅延量Ｄｔ１−１〜Ｄｔ１−ｎ−１（設定値ＳＶ−１〜ＳＶ−ｎ−１；設定値ＳＶ−１については図９の時間“Ｂ４”参照）を開始遅延量Ｄｔ１ｓｔに設定し、又、出力遅延量設定部２３は、これらの開始遅延量Ｄｔ１ｓｔから出力遅延量Ｄｔ１−１〜Ｄｔ１−ｎ−１を段階的に増加させ、各論理和回路ＯＲ−２〜ＯＲ−ｎから応答信号O_DQX-2〜O_DQX-nが出力された時点の設定値ＳＶ−２〜ＳＶ−ｎを各出力遅延量Ｄｔ１−２〜Ｄｔ１−ｎとしてそれぞれ順次設定する（図９の時間“Ｂ５”および“Ｂ７”参照）。
【０１０４】
そして、出力遅延量設定部２３は、遅延量ＴＤＬが最大遅延量ＭＤＬを超える都度、遅延量ＴＤＬが第１遅延量ＤＬ１と第２遅延量ＤＬ２との和になる信号の経路を選択した状態で、第１遅延回路１０１の遅延量ＤＬ１をリセットするとともに、第２遅延量ＤＬ２を現時点のクロック信号（例えば、第ｐ−１（ｐは１〜ｎの自然数）クロック信号ＣＫ１−ｐ−１）から次のクロック信号（例えば、第ｐクロック信号ＣＫ１−ｐ）に切り替える出力制御信号ｄ１（例えば、“ＳＥＬｔｓ（ｎ）”＝“ｐ”）を出力する（図９の時間“Ｂ５”および時間“Ｂ６”参照）。
【０１０５】
従って、設定値ＳＶ−２は、“ＳＥＬｄｌｙ（２）”が値“１”に、“ＳＥＬｉｎ（２）”が値“１”に、“ＳＥＬｔｓ（２）”が値“２”に、それぞれ設定される。又、設定値ＳＶ−ｎは、“ＳＥＬｄｌｙ（ｎ）”が値“２”に、“ＳＥＬｉｎ（ｎ）”が値“１”に、“ＳＥＬｔｓ（ｎ）”が値“３”に、それぞれ設定される。
このように、出力遅延量設定部２３は、一のＳＤＲＡＭ３００に対応する設定対象の出力遅延量Ｄｔ１を、他のＳＤＲＡＭ３００に対応する設定済の出力遅延量Ｄｔ１に基づいて設定するのである。
【０１０６】
以下、出力遅延量設定部２３において複数のＳＤＲＡＭ３００−０〜３００−ｎに対応する出力遅延量Ｄｔ１−０〜Ｄｔ１−ｎを設定する順序について、図１０に示すフローチャート（ステップＳ１１〜Ｓ２４）に従って説明する。
先ず、出力遅延量設定部２３は、設定対象のＳＤＲＡＭ３００を示す変数“ｎ”を初期化し（ｎ＝０；ステップＳ１１）、出力制御信号ｄ１を示す各変数“ＳＥＬｄｌｙ（ｎ）”，“ＳＥＬｉｎ（ｎ）”および“ＳＥＬｔｓ（ｎ）”を初期化する（ＳＥＬｄｌｙ（ｎ）＝０，ＳＥＬｉｎ（ｎ）＝０，ＳＥＬｔｓ（ｎ）＝１；ステップＳ１２）。
【０１０７】
次に、出力遅延量設定部２３は、応答信号O_DQX-nがLowからHighに遷移したか否かを判断し（ステップＳ１３）、応答信号O_DQX-nがLowからHighに遷移していない場合には（ステップＳ１３の“ＮＯ”ルート参照）、変数“ＳＥＬｄｌｙ（ｎ）”が最大であるか否かを判断する（ステップＳ１４）。
変数“ＳＥＬｄｌｙ（ｎ）”が最大ではない場合には（ステップＳ１４の“ＮＯ”ルート参照）、出力遅延量設定部２３は、変数“ＳＥＬｄｌｙ（ｎ）”に値“１”を加算して（ステップＳ１５）、ステップＳ１３に戻る。
【０１０８】
変数“ＳＥＬｄｌｙ（ｎ）”が最大である場合には（ステップＳ１４の“ＹＥＳ”ルート参照）、出力遅延量設定部２３は、変数“ＳＥＬｉｎ（ｎ）”が値“１”であるか否かを判断する（ステップＳ１６）。
変数“ＳＥＬｉｎ（ｎ）”が値“１”ではない場合には（ステップＳ１６の“ＮＯ”ルート参照）、出力遅延量設定部２３は、変数“ＳＥＬｉｎ（ｎ）”を値“１”に設定し（ステップＳ１７）、変数“ＳＥＬｄｌｙ（ｎ）”をリセット（ＳＥＬｄｌｙ（ｎ）＝０）して（ステップＳ１８）、ステップＳ１３に戻る。
【０１０９】
変数“ＳＥＬｉｎ（ｎ）”が値“１”である場合には（ステップＳ１６の“ＹＥＳ”ルート参照）、出力遅延量設定部２３は、変数“ＳＥＬｔｓ（ｎ）”が最大であるか否かを判断する（ステップＳ１９）。
変数“ＳＥＬｔｓ（ｎ）”が最大ではない場合には（ステップＳ１９の“ＮＯ”ルート参照）、出力遅延量設定部２３は、変数“ＳＥＬｔｓ（ｎ）”に値“１”を加算し（ステップＳ２０）、変数“ＳＥＬｄｌｙ（ｎ）”をリセット（ＳＥＬｄｌｙ（ｎ）＝０）して（ステップＳ１８）、ステップＳ１３に戻る。
【０１１０】
変数“ＳＥＬｔｓ（ｎ）”が最大である場合には（ステップＳ１９の“ＹＥＳ”ルート参照）、出力遅延量設定部２３は、所望の遅延量を付加できず、各変数“ＳＥＬｄｌｙ（ｎ）”，“ＳＥＬｉｎ（ｎ）”および“ＳＥＬｔｓ（ｎ）”の設定範囲を超えたことになるため、ステップＳ１１に戻って再実行を行なうかもしくはアラームを発行し、処理を終了する（異常終了）。
【０１１１】
また、応答信号O_DQX-nがLowからHighに遷移した場合、即ち、応答信号O_DQX-nを受信すると（ステップＳ１３の“ＹＥＳ”ルート参照）、出力遅延量設定部２３は、各変数“ＳＥＬｄｌｙ（ｎ）”，“ＳＥＬｉｎ（ｎ）”および“ＳＥＬｔｓ（ｎ）”に設定された値をロック（直前の状態を保持）する（ステップＳ２１）。
そして、出力遅延量設定部２３は、変数“ｎ”が最大であるか否かを判断する（ステップＳ２２）。
【０１１２】
変数“ｎ”が最大ではない場合には（ステップＳ２２の“ＮＯ”ルート参照）、出力遅延量設定部２３は、各変数“ＳＥＬｄｌｙ（ｎ+１）”，“ＳＥＬｉｎ（ｎ+１）”および“ＳＥＬｔｓ（ｎ+１）”に対して、ステップＳ２１においてロックされた各変数“ＳＥＬｄｌｙ（ｎ）”，“ＳＥＬｉｎ（ｎ）”および“ＳＥＬｔｓ（ｎ）”の値を設定し（ステップＳ２３）、変数“ｎ”に値“１”を加算して（ステップＳ２４）、次のＳＤＲＡＭに移行し、ステップＳ１３に戻る。
【０１１３】
変数“ｎ”が最大である場合には（ステップＳ２２の“ＹＥＳ”ルート参照）、出力遅延量設定部２３は、処理を終了する（正常終了）。
これにより、全てのＳＤＲＡＭ３００−０〜３００−ｎに対して出力遅延量Ｄｔ１−０〜Ｄｔ１−ｎが設定されるのである。
入力遅延量設定部２４は、出力遅延量設定部２３によって設定された各出力遅延量Ｄｔ１−０〜Ｄｔ１−ｎに基づいて、制御回路ユニット１５−０〜１５−ｎのそれぞれにそなえられた入力用可変遅延回路ＤＲに対して、入力遅延量Ｄｔ２の遅延を行なわせるべく制御を行なうものであって、入力遅延量Ｄｔ２を設定する入力制御信号ｄ２（“ＳＥＬｄｌｙ（ｎ）”，“ＳＥＬｉｎ（ｎ）”および“ＳＥＬｔｓ（ｎ）”）を出力するようになっている。又、入力遅延量設定部２４は、本実施形態においては、出力遅延量設定部２３によって設定された各出力遅延量Ｄｔ１−０〜Ｄｔ１−ｎに基づいて、リード動作時において複数のＳＤＲＡＭ３００−０〜３００−ｎのそれぞれから入力されるデータ信号ＤＱ−０〜ＤＱ−ｎの入力遅延量Ｄｔ２をそれぞれ算出・設定するようになっている。
【０１１４】
本実施形態の入力遅延量設定部２４においては、一のＳＤＲＡＭ３００−ｘ（ｘは０〜ｎの変数）に対応する入力遅延量Ｄｔ２−ｘは、当該ＳＤＲＡＭ３００−ｘに対応する出力遅延量Ｄｔ１−ｘと入力遅延量Ｄｔ２−ｘとの和が、他のＳＤＲＡＭ３００−ｙ（ｙは０〜ｎの変数）に対応する出力遅延量Ｄｔ１−ｙと入力遅延量Ｄｔ２−ｙとの和と等しくなるように設定されている。
【０１１５】
従って、ＳＤＲＡＭ３００−０〜３００−ｎのそれぞれに対応する各入力遅延量Ｄｔ２−０〜Ｄｔ２−ｎが、０ｃｈのＳＤＲＡＭ３００−０からｎｃｈのＳＤＲＡＭ３００−ｎにかけて順に遅延量が小さくなるように設定されるのである。
そして、入力遅延量設定部２４は、設定した各入力遅延量Ｄｔ２−０〜Ｄｔ２−ｎとなるように入力制御信号ｄ２を入力用可変遅延回路ＤＲ−０〜ＤＲ−ｎのそれぞれに対して出力し、各入力用可変遅延回路ＤＲ−０〜ＤＲ−ｎが、これらの入力制御信号ｄ２に基づいて、各データ信号ＤＱ−０〜ＤＱ−ｎをそれぞれ入力遅延量Ｄｔ２−０〜Ｄｔ２−ｎだけ遅延させるようになっている。
【０１１６】
即ち、入力用可変遅延回路ＤＲは、リード動作時において、ＳＤＲＡＭ３００から入力されるデータ信号ＤＱを、ライトレベリング機能を用いて設定されたＳＤＲＡＭ３００に出力するデータストローブ信号ＤＱＳの出力遅延量Ｄｔ１に応じて設定された入力遅延量Ｄｔ２だけ遅延させるのである。
このように、本発明の第２実施形態としての情報処理装置１０ａによれば、上述した本発明の第１実施形態と同様の作用効果を得ることができる他、位相が異なる複数のクロック信号ＣＫ１−０〜ＣＫ１−ｍおよび位相が異なる複数のタイミング信号ＣＫ３−０〜ＣＫ３−ｍをメモリコントローラ１２内の既存の回路から生成することにより、より回路規模を抑えることができ、又、より消費電力を低減することができる。
【０１１７】
また、クロック信号線がデイジーチェーンで配線された複数のＳＤＲＡＭ３００−０〜３００−ｎに対して、ライトレベリング機能を用いて設定された出力遅延量Ｄｔ１に基づいて、リード動作時においてＳＤＲＡＭ３００から入力されるデータ信号ＤＱの入力遅延量Ｄｔ２を設定することにより、クロック信号線がデイジーチェーンで配線された複数のＳＤＲＡＭ３００−０〜３００−ｎから出力されたデータ信号ＤＱの入力時間を容易に揃えることができ、従って、リード動作の制御を行なう場合において、データ信号ＤＱの伝播遅延による不具合を防止することができる。
【０１１８】
〔３〕本発明の第２実施形態の第１変形例
次に、図１１を参照しながら、本発明の第２実施形態の第１変形例における情報処理装置１０ｂについて説明する。
図１１は本発明の第２実施形態の第１変形例としての情報処理装置におけるメモリコントローラの回路構成例を模式的に示す図である。
【０１１９】
この図１１に示すように、本発明の第２実施形態の第１変形例としての情報処理装置１０ｂは、第２実施形態の出力用可変遅延回路ＤＷ０，ＤＷ１および入力用可変遅延回路ＤＲ１，ＤＲ２に代えて出力用可変遅延回路ＤＷ０ｂ，ＤＷ１ｂおよび入力用可変遅延回路ＤＲ１ｂ，ＤＲ２ｂをそなえ、更に、第４クロック信号生成部２５および第５クロック信号生成部２６をメモリコントローラ１２にそなえるものであり、その他の部分は第２実施形態の情報処理装置１０ａと同様に構成されている。
【０１２０】
なお、図中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は省略する。
また、図１１においては、便宜上、クロック信号線とアドレス信号Ａｄｄおよびコマンド信号ＣＭＤを出力するための信号線とがＤＩＭＭ１１の端部付近（紙面上部）において接続されていることを示しているが、実際には、図３に示すように、これらの信号線がＤＩＭＭ１１の中央部（紙面中央）に接続されているものとする。
【０１２１】
第４クロック信号生成部２５は、処理部１３から入力されるクロック信号ＣＬＫに基づいて所定周期のクロック信号ＣＫ４を生成・出力するものである。この第４クロック信号生成部２５は、クロック信号ＣＬＫと同じクロック周期のクロック信号をクロック信号ＣＫ４として出力してもよく、又、クロック信号ＣＬＫを１／２や１／４等の他のクロック周期に変換したクロック信号ＣＫ４を出力してもよい。
【０１２２】
第５クロック信号生成部２６は、ＳＤＲＡＭ３００から入力されるデータストローブ信号ＤＱＳに基づいて所定周期のクロック信号ＣＫ５を生成・出力するものである。
出力用可変遅延回路ＤＷ０ｂは、上述した第２実施形態の出力用可変遅延回路ＤＷ０と同様に、第１実施形態に係る可変遅延回路１００で構成されている。
そして、第１変形例においては、上述した第２実施形態の出力用可変遅延回路ＤＷ０とは異なり、出力用可変遅延回路ＤＷ０ｂには、第４クロック信号生成部２５から取り出された複数のクロック信号ＣＫ４−０〜ＣＫ４−ｍが入力されるようになっており、これらの複数のクロック信号ＣＫ４−０〜ＣＫ４−ｍが、上述した第１実施形態における複数のタイミング信号ＴＳ０〜ＴＳｍに相当する。
【０１２３】
また、これらの複数のクロック信号ＣＫ４−０〜ＣＫ４−ｍは、上述した第２実施形態の複数のクロック信号ＣＫ１−０〜ＣＫ１−ｍと同様に、第０クロック信号ＣＫ４−０から第ｍクロック信号ＣＫ４−ｍにかけて９０°の位相で順次遅延するように、第４クロック信号生成部２５における所定位置からそれぞれ取り出されて出力用可変遅延回路ＤＷ０ｂに入力されるようになっている。
【０１２４】
なお、出力用可変遅延回路ＤＷ０ｂにおけるその他の部分は、上述した第２実施形態の出力用可変遅延回路ＤＷ０と同様の機能構成をそなえており、その説明を省略する。
出力用可変遅延回路ＤＷ１ｂは、上述した第２実施形態の出力用可変遅延回路ＤＷ１と同様に、第１実施形態に係る可変遅延回路１００で構成されるものであって、出力遅延量設定部２３からの出力制御信号ｄ１に基づいて、フリップフロップＦＦ１から入力された第１の入力データ信号I_DQeまたは第２のデータ信号I_DQoを、出力遅延量設定部２３によって設定された出力遅延量Ｄｔ１だけ遅延させてフリップフロップＦＦ２に出力するようになっている。
【０１２５】
なお、この出力用可変遅延回路ＤＷ１ｂは上述した出力用可変遅延回路ＤＷ０ｂと同様に構成されているため、その詳細な説明を省略する。
入力用可変遅延回路ＤＲ１ｂは、上述した第２実施形態の入力用可変遅延回路ＤＲ１と同様に、第１実施形態に係る可変遅延回路１００で構成されるものである。
そして、第１変形例においては、上述した第２実施形態の入力用可変遅延回路ＤＲ１とは異なり、入力用可変遅延回路ＤＲ１ｂには、第５クロック信号生成部２６から取り出された複数のクロック信号ＣＫ５−０〜ＣＫ５−ｍが入力されるようになっており、これらの複数のクロック信号ＣＫ５−０〜ＣＫ５−ｍが、上述した第１実施形態における複数のタイミング信号ＴＳ０〜ＴＳｍに相当する。
【０１２６】
また、これらの複数のクロック信号ＣＫ５−０〜ＣＫ５−ｍは、上述した第２実施形態の複数のタイミング信号ＣＫ３−０〜ＣＫ３−ｍと同様に、第０クロック信号ＣＫ５−０から第ｍクロック信号ＣＫ５−ｍにかけて９０°の位相で順次遅延するように、第５クロック信号生成部２５における所定位置からそれぞれ取り出されて入力用可変遅延回路ＤＲ１ｂに入力されるようになっている。
【０１２７】
なお、入力用可変遅延回路ＤＲ１ｂにおけるその他の部分は、上述した第２実施形態の入力用可変遅延回路ＤＲ１と同様の機能構成をそなえており、その説明を省略する。
入力用可変遅延回路ＤＲ２ｂは、上述した第２実施形態の入力用可変遅延回路ＤＲ２と同様に、第１実施形態に係る可変遅延回路１００で構成されるものであって、入力遅延量設定部２４からの入力制御信号ｄ２に基づいて、フリップフロップＦＦ７から入力された第４のデータ信号O_DQoを、入力遅延量設定部２４によって設定された入力遅延量Ｄｔ２だけ遅延させてフリップフロップＦＦ８に出力するようになっている。
【０１２８】
なお、この入力用可変遅延回路ＤＲ２ｂは、上述した入力用可変遅延回路ＤＲ１ｂと同様に構成されているため、その詳細な説明を省略する。
このように、本発明の第２実施形態の第１変形例としての情報処理装置１０ｂによれば、上述した第２実施形態と同様の作用効果を得ることができる他、位相が異なる複数のクロック信号ＣＫ４−０〜ＣＫ４−ｍ，ＣＫ５−０〜ＣＫ５−ｍをメモリコントローラ１２内の回路から生成する場合よりも自由に生成することができる。
【０１２９】
〔４〕本発明の第２実施形態の第２変形例
次に、図１２を参照しながら、本発明の第２実施形態の第２変形例における情報処理装置１０ｃについて説明する。
図１２は本発明の第２実施形態の第２変形例としての情報処理装置におけるメモリコントローラの回路構成例を模式的に示す図である。
【０１３０】
この図１２に示すように、本発明の第２実施形態の第２変形例としての情報処理装置１０ｃは、第２実施形態の出力用可変遅延回路ＤＷ０，ＤＷ１および入力用可変遅延回路ＤＲ１，ＤＲ２に代えて出力用可変遅延回路ＤＷ０ｃ，ＤＷ１ｃおよび入力用可変遅延回路ＤＲ１ｃ，ＤＲ２ｃをそなえ、更に、第６クロック信号生成部２７および第７クロック信号生成部２８を処理部１３にそなえるものであり、その他の部分は第２実施形態の情報処理装置１０ａと同様に構成されている。
【０１３１】
なお、図中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は省略する。
また、図１２においては、便宜上、クロック信号線とアドレス信号Ａｄｄおよびコマンド信号ＣＭＤを出力するための信号線とがＤＩＭＭ１１の端部付近（紙面上部）において接続されていることを示しているが、実際には、図３に示すように、これらの信号線がＤＩＭＭ１１の中央部（紙面中央）に接続されているものとする。
【０１３２】
第６クロック信号生成部２７は、処理部１３の制御を行なうための所定周期のクロック信号ＣＫ６を生成・出力するものであり、第７クロック信号生成部２８は、処理部１３の制御を行なうための所定周期のクロック信号ＣＫ７を生成・出力するものである。
出力用可変遅延回路ＤＷ０ｃは、上述した第２実施形態の出力用可変遅延回路ＤＷ０と同様に、第１実施形態に係る可変遅延回路１００で構成されている。
そして、第２変形例においては、上述した第２実施形態の出力用可変遅延回路ＤＷ０とは異なり、出力用可変遅延回路ＤＷ０ｃには、第６クロック信号生成部２７から取り出された複数のクロック信号ＣＫ６−０〜ＣＫ６−ｍが入力されるようになっており、これらの複数のクロック信号ＣＫ６−０〜ＣＫ６−ｍが、上述した第１実施形態における複数のタイミング信号ＴＳ０〜ＴＳｍに相当する。
【０１３３】
また、これらの複数のクロック信号ＣＫ６−０〜ＣＫ６−ｍは、上述した第２実施形態の複数のクロック信号ＣＫ１−０〜ＣＫ１−ｍと同様に、第０クロック信号ＣＫ６−０から第ｍクロック信号ＣＫ６−ｍにかけて９０°の位相で順次遅延するように、第６クロック信号生成部２７における所定位置からそれぞれ取り出されて出力用可変遅延回路ＤＷ０ｃに入力されるようになっている。
【０１３４】
なお、出力用可変遅延回路ＤＷ０ｃにおけるその他の部分は、上述した第２実施形態の出力用可変遅延回路ＤＷ０と同様の機能構成をそなえており、その説明を省略する。
出力用可変遅延回路ＤＷ１ｃは、上述した第２実施形態の出力用可変遅延回路ＤＷ１と同様に、第１実施形態に係る可変遅延回路１００で構成されるものであって、出力遅延量設定部２３からの出力制御信号ｄ１に基づいて、フリップフロップＦＦ１から入力された第１の入力データ信号I_DQeまたは第２のデータ信号I_DQoを、出力遅延量設定部２３によって設定された出力遅延量Ｄｔ１だけ遅延させてフリップフロップＦＦ２に出力するようになっている。
【０１３５】
なお、この出力用可変遅延回路ＤＷ１ｃは上述した出力用可変遅延回路ＤＷ０ｃと同様に構成されているため、その詳細な説明を省略する。
入力用可変遅延回路ＤＲ１ｃは、上述した第２実施形態の入力用可変遅延回路ＤＲ１と同様に、第１実施形態に係る可変遅延回路１００で構成されるものである。
そして、第２変形例においては、上述した第２実施形態の入力用可変遅延回路ＤＲ１とは異なり、入力用可変遅延回路ＤＲ１ｃには、第７クロック信号生成部２８から取り出された複数のクロック信号ＣＫ７−０〜ＣＫ７−ｍが入力されるようになっており、これらの複数のクロック信号ＣＫ７−０〜ＣＫ７−ｍが、上述した第１実施形態における複数のタイミング信号ＴＳ０〜ＴＳｍに相当する。
【０１３６】
また、これらの複数のクロック信号ＣＫ７−０〜ＣＫ７−ｍは、上述した第２実施形態の複数のタイミング信号ＣＫ３−０〜ＣＫ３−ｍと同様に、第１クロック信号ＣＫ７−０から第ｍクロック信号ＣＫ７−ｍにかけて９０°の位相で順次遅延するように、第７クロック信号生成部２８における所定位置からそれぞれ取り出されて入力用可変遅延回路ＤＲ１ｃに入力されるようになっている。
【０１３７】
なお、入力用可変遅延回路ＤＲ１ｃにおけるその他の部分は、上述した第２実施形態の入力用可変遅延回路ＤＲ１と同様の機能構成をそなえており、その説明を省略する。
入力用可変遅延回路ＤＲ２ｃは、上述した第２実施形態の入力用可変遅延回路ＤＲ２と同様に、第１実施形態に係る可変遅延回路１００で構成されるものであって、入力遅延量設定部２４からの入力制御信号ｄ２に基づいて、フリップフロップＦＦ７から入力された第４のデータ信号O_DQoを、入力遅延量設定部２４によって設定された入力遅延量Ｄｔ２だけ遅延させてフリップフロップＦＦ８に出力するようになっている。
【０１３８】
なお、この入力用可変遅延回路ＤＲ２ｃは、上述した入力用可変遅延回路ＤＲ１ｃと同様に構成されているため、その詳細な説明を省略する。
このように、本発明の第２実施形態の第２変形例としての情報処理装置１０ｃによっても、上述した第２実施形態の第１変形例と同様の作用効果を得ることができる。
〔５〕その他
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
【０１３９】
例えば、上記実施形態では、第２遅延回路１０２の後段に第１遅延回路１０１をそなえる場合について説明しているが、それに限定されるものではなく、例えば、第２遅延回路１０２の前段に第１遅延回路１０１をそなえてもよく、例えば、第１遅延回路１０１から出力された信号が第２遅延回路１０２およびセレクタ１０３にそれぞれ入力されるように構成されていてもよい。
【０１４０】
また、上記実施形態では、複数種類のタイミング信号ＴＳ０〜ＴＳｍが９０°の位相（α＝９０）で順次遅延してセレクタ１０４に入力される場合について説明しているが、それに限定されるものではなく、データ入力信号ＩＮ（図１参照）に対して位相αだけ遅延した１以上のタイミング信号がセレクタ１０４に入力されていればよい。例えば、α＝１８０°の場合には、上記第１実施形態における計算式を参照してｍ＋１＝３６０／１８０であり、ｍ＝１となることから、データ入力信号ＩＮに対して１８０°遅延した１つのタイミング信号がセレクタ１０４に入力されていればよい。
【０１４１】
さらに、上記実施形態では、第２遅延回路１０２がＤフリップフロップ１０５をそなえて構成されている場合について説明しているが、それに限定されるものではなく、例えば、第２遅延回路１０２がＤフリップフロップ１０５に代えてＤラッチをそなえて構成されていてもよい。
図１３は本発明の第２実施形態の情報処理装置の他の構成例を模式的に示す図である。
【０１４２】
そして、上述した本発明の第２実施形態では、各ＳＤＲＡＭ３００−０〜３００−ｎがデイジーチェーンで配線されている場合について説明しているが、それに限定されるものではなく、クロック信号線がＤＩＭＭ１１内で２方向に分岐して配線されていてもよく、図１３に示す例（Registered DIMM）では、クロック信号ＣＫ１が、ＳＤＲＡＭ３００−３とＳＤＲＡＭ３００−４とにそれぞれ入力されて、ＳＤＲＡＭ３００−３からＳＤＲＡＭ３００−０にかけて順次入力されるとともに、ＳＤＲＡＭ３００−４からＳＤＲＡＭ３００−７にかけて順次入力されるように配線されている。この場合には、各出力遅延量Ｄｔ１−０〜Ｄｔ１−７は、出力遅延量Ｄｔ１−３から出力遅延量Ｄｔ１−０にかけて順次設定されるとともに、出力遅延量Ｄｔ１−４から出力遅延量Ｄｔ１−７にかけて順次設定されるようになっている。
【０１４３】
さらに、図示を省略するが、ＳＤＲＡＭ３００が両面実装されたＤＩＭＭにおいては、例えば、ＳＤＲＡＭ３００−０とＳＤＲＡＭ３００−１とが、ＳＤＲＡＭ３００−２とＳＤＲＡＭ３００−３とが、ＳＤＲＡＭ３００−４とＳＤＲＡＭ３００−５とが、ＳＤＲＡＭ３００−６とＳＤＲＡＭ３００−７とが、それぞれ両面実装されている場合には、各出力遅延量Ｄｔ１−０〜Ｄｔ１−７は、出力遅延量Ｄｔ１−２から出力遅延量Ｄｔ１−０に、出力遅延量Ｄｔ１−３から出力遅延量Ｄｔ１−１に、出力遅延量Ｄｔ１−４から出力遅延量Ｄｔ１−６に、出力遅延量Ｄｔ１−５から出力遅延量Ｄｔ１−７に、それぞれ順次設定されるようになっている。
【０１４４】
そして、上述した本発明の第２実施形態においては、処理部１３が、遅延時間制御プログラム（遅延量設定プログラム）を実行することにより、これらの出力遅延量設定部２３および入力遅延量設定部２４として機能するようになっている。
なお、これらの出力遅延量設定部２３および入力遅延量設定部２４としての機能を実現するためのプログラム（遅延時間制御プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ−ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【０１４５】
出力遅延量設定部２３および入力遅延量設定部２４としての機能を実現する際には、内部記憶装置に格納されたプログラムがコンピュータのマイクロプロセッサによって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
なお、本発明の第２実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ（Central Processing Unit）等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本発明の第２実施形態においては、情報処理装置１０ａ，１０ｂ，１０ｃがコンピュータとしての機能を有しているのである。
【０１４６】
さらに、本発明の第２実施形態における記録媒体としては、上述したフレキシブルディスク，ＣＤ，ＤＶＤ，ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスクのほか、ＩＣカード，ＲＯＭカートリッジ，磁気テープ，パンチカード，コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ），外部記憶装置等や、バーコードなどの符号が印刷された印刷物等のコンピュータ読取可能な種々の媒体を利用することができる。
〔６〕付記
上記実施形態に関し、更に以下の付記を開示する。
【０１４７】
（付記１）  信号が入力されてから出力するまでの遅延量を変更可能な可変遅延回路であって、
該信号を第１遅延量だけ遅延させる第１遅延部と、
該信号を該第１遅延量よりも大きい第２遅延量だけ遅延させる第２遅延部と、
該遅延量が該第１遅延部で遅延可能な最大遅延量を超える場合に、該遅延量が該第１遅延量と該第２遅延量との和になる信号経路を選択する遅延量選択部とをそなえることを特徴とする、可変遅延回路。
【０１４８】
（付記２）  該第２遅延部は、
該遅延量に基づいて、複数種類のタイミング信号のうちのいずれかを選択する選択回路と、
該選択回路により選択された該タイミング信号に応じて、該信号を該第２遅延量だけ遅延させる順序回路とをそなえることを特徴とする、付記１に記載の可変遅延回路。
【０１４９】
（付記３）  該第１遅延部は、該信号を、直列に接続された所定数の該遅延素子に通過させることにより該第１遅延量だけ遅延させるデジタル遅延回路で構成されていることを特徴とする、付記１または付記２に記載の可変遅延回路。
（付記４）  該順序回路がＤフリップフロップで構成されていることを特徴とする、付記１〜３のいずれか１項に記載の可変遅延回路。
【０１５０】
（付記５）  該順序回路がＤラッチで構成されていることを特徴とする、付記１〜３のいずれか１項に記載の可変遅延回路。
（付記６）  ライトレベリング機能をそなえ、複数のメモリに対して制御を行なうメモリ制御回路であって、
前記複数のメモリに対応してそれぞれ、
該メモリに出力するデータストローブ出力信号を、該ライトレベリング機能を用いて設定された出力遅延量だけ遅延させる出力用可変遅延回路をそなえ、
該出力用可変遅延回路が、
該データストローブ出力信号を第１出力遅延量だけ遅延させる第１出力遅延部と、
該データストローブ出力信号を該第１出力遅延量よりも大きい第２出力遅延量だけ遅延させる第２出力遅延部と、
該出力遅延量が該第１出力遅延部で遅延可能な最大出力遅延量を超える場合に、該出力遅延量が該第１出力遅延量と該第２出力遅延量との和になる信号経路を選択する出力遅延量選択部とをそなえることを特徴とする、メモリ制御回路。
【０１５１】
（付記７）  前記複数のメモリは、クロック信号線がデイジーチェーンで配線されていることを特徴とする、付記６に記載のメモリ制御回路。
（付記８）  該第２出力遅延部は、
該出力遅延量に基づいて、複数種類のタイミング信号のうちのいずれかを選択する出力用選択回路と、
該出力用選択回路により選択された該タイミング信号に応じて、該データストローブ出力信号を該第２出力遅延量だけ遅延させる出力用順序回路とをそなえることを特徴とする、付記６または付記７に記載のメモリ制御回路。
【０１５２】
（付記９）  該タイミング信号が、該メモリに対してリード（read）／ライト（write）動作の制御を行なう際に用いられるクロック信号であることを特徴とする、付記８に記載のメモリ制御回路。
（付記１０）  ライトレベリング機能をそなえ、複数のメモリに対して制御を行なうメモリ制御回路であって、
前記複数のメモリに対応してそれぞれ、
該メモリから入力されるデータ入力信号を、該ライトレベリング機能を用いて設定された該メモリに出力するデータストローブ出力信号の出力遅延量に応じて設定された入力遅延量だけ遅延させる入力用可変遅延回路をそなえ、
該入力用可変遅延回路が、
該データ入力信号を第１入力遅延量だけ遅延させる第１入力遅延部と、
該データ入力信号を該第１入力遅延量よりも大きい第２入力遅延量だけ遅延させる第２入力遅延部と、
該入力遅延量が該第１入力遅延部で遅延可能な最大入力遅延量を超える場合に、該入力遅延量が該第１入力遅延量と該第２入力遅延量との和になる信号経路を選択する入力遅延量選択部とをそなえることを特徴とする、メモリ制御回路。
【０１５３】
（付記１１）  前記複数のメモリは、クロック信号線がデイジーチェーンで配線されていることを特徴とする、付記１０に記載のメモリ制御回路。
（付記１２）  該第２入力遅延部は、
該入力遅延量に基づいて、複数種類のタイミング信号のうちのいずれかを選択する入力用選択回路と、
該入力用選択回路により選択された該タイミング信号に応じて、該データ入力信号を該第２入力遅延量だけ遅延させる入力用順序回路とをそなえることを特徴とする、付記１０または付記１１に記載のメモリ制御回路。
【０１５４】
（付記１３）  該タイミング信号が、該メモリに対してリード（read）／ライト（write）動作の制御を行なう際に用いられる信号であることを特徴とする、付記１２に記載のメモリ制御回路。
（付記１４）  付記６〜１３に記載されたメモリ制御回路の該出力遅延量を、前記複数のメモリに対応してそれぞれ設定する遅延量設定装置であって、
一のメモリに対応する設定対象の出力遅延量を、他のメモリに対応する設定済の出力遅延量に基づいて設定する出力遅延量設定部をそなえることを特徴とする、遅延量設定装置。
【０１５５】
（付記１５）  該出力遅延量設定部は、前記複数のメモリに対応するそれぞれの該出力遅延量を、クロック信号線の配線経路に沿って順次設定することを特徴とする、付記１４に記載の遅延量設定装置。
（付記１６）  該出力遅延量設定部は、前記一のメモリと隣り合う前記他のメモリに対応する設定済の出力遅延量を開始遅延量として、当該開始遅延量を段階的に変更することにより、前記設定対象の出力遅延量を設定することを特徴とする、付記１５に記載の遅延量設定装置。
【０１５６】
（付記１７）  付記６〜１３に記載されたメモリ制御回路の該出力遅延量を、前記複数のメモリに対応してそれぞれ設定する遅延量設定方法であって、
一のメモリに対応する設定対象の出力遅延量を、他のメモリに対応する設定済の出力遅延量に基づいて設定する出力遅延量設定ステップをそなえることを特徴とする、遅延量設定方法。
【０１５７】
（付記１８）  該出力遅延量設定ステップにおいて、前記複数のメモリに対応するそれぞれの該出力遅延量を、クロック信号線の配線経路に沿って順次設定することを特徴とする、付記１７に記載の遅延量設定方法。
（付記１９）  該出力遅延量設定ステップにおいて、前記一のメモリと隣り合う前記他のメモリに対応する設定済の出力遅延量を開始遅延量として、当該開始遅延量を段階的に変更することにより、前記設定対象の出力遅延量を設定することを特徴とする、付記１８に記載の遅延量設定方法。
【０１５８】
（付記２０）  付記６〜１３に記載されたメモリ制御回路の該出力遅延量を、前記複数のメモリに対応してそれぞれ設定する遅延量設定機能をコンピュータに実行させるための遅延量設定プログラムであって、
一のメモリに対応する設定対象の出力遅延量を、他のメモリに対応する設定済の出力遅延量に基づいて設定する出力遅延量設定部として、該コンピュータを機能させることを特徴とする、遅延量設定プログラム。
【図面の簡単な説明】
【０１５９】
【図１】本発明の第１実施形態としての可変遅延回路の構成例を模式的に示す図である。
【図２】本発明の第１実施形態としての可変遅延回路の動作を説明するためのタイミングチャートである。
【図３】本発明の第２実施形態としての情報処理装置の構成例を模式的に示す図である。
【図４】本発明の第２実施形態としての情報処理装置の構成例を模式的に示す図である。
【図５】本発明の第２実施形態としての情報処理装置のメモリコントローラの回路構成例を模式的に示す図である。
【図６】本発明の第２実施形態としての情報処理装置のメモリコントローラの回路構成例を模式的に示す図である。
【図７】本発明の第２実施形態としての情報処理装置の出力遅延量設定部におけるライトレベリング機能を説明するための図である。
【図８】本発明の第２実施形態としての情報処理装置の出力遅延量設定部において遅延量を設定する順序を説明するための図、
【図９】本発明の第２実施形態としての情報処理装置の出力遅延量設定部において遅延量を設定する順序を示すタイミングチャートである。
【図１０】本発明の第２実施形態としての情報処理装置の出力遅延量設定部において出力遅延量を設定する順序を示すフローチャートである。
【図１１】本発明の第２実施形態の第１変形例としての情報処理装置におけるメモリコントローラの回路構成例を模式的に示す図である。
【図１２】本発明の第２実施形態の第２変形例としての情報処理装置におけるメモリコントローラの回路構成例を模式的に示す図である。
【図１３】本発明の第２実施形態の情報処理装置の他の構成例を模式的に示す図である。
【図１４】従来の可変遅延回路の構成例を模式的に示す図である。
【符号の説明】
【０１６０】
１００  可変遅延回路
１０１  第１遅延回路（第１遅延部，第１出力遅延部，第１入力遅延部）
１０２  第２遅延回路（第２遅延部，第２出力遅延部，第２入力遅延部）
１０３  セレクタ（遅延量選択部，出力遅延量選択部，入力遅延量選択部）
１０４  セレクタ（選択回路，出力用選択回路，入力用選択回路）
１０５  Ｄフリップフロップ（順序回路，出力用順序回路，入力用順序回路）
１０ａ，１０ｂ，１０ｃ  情報処理装置（遅延量設定装置）
１１  ＤＩＭＭ
３００，３００−０〜３００−ｎ  ＳＤＲＡＭ
１２  メモリコントローラ（メモリ制御回路）
１３  処理部
１４  第１クロック信号生成部
１５−０〜１５−ｎ  制御回路ユニット
１６  ＤＱＳ信号生成部
１７，１７−０〜１７−ｋ  ＤＱ信号制御部
１８  第２クロック信号生成部
１９，１９−０〜１９−ｋ  ＤＱ信号出力制御部
２０，２０−０〜２０−ｋ  ＤＱ信号入力制御部
２２  遅延時間制御部
２３  出力遅延量設定部
２４  入力遅延量設定部
２５  第４クロック信号生成部
２６  第５クロック信号生成部
２７  第６クロック信号生成部
２８  第７クロック信号生成部
ｄ１  出力制御信号
ｄ２  入力制御信号
ＤＷ，ＤＷ０，ＤＷ１，ＤＷ０ｂ，ＤＷ１ｂ，ＤＷ０ｃ，ＤＷ１ｃ  出力用可変遅延回路（可変遅延回路）
ＤＲ，ＤＲ１，ＤＲ２，ＤＲ１ｂ，ＤＲ２ｂ，ＤＲ１ｃ，ＤＲ２ｃ  入力用可変遅延回路（可変遅延回路）
ＤＲ０  リード側ＤＱＳ遅延回路
【図１】
0005369430.tif 000002
【図２】
0005369430.tif 000003
【図３】
0005369430.tif 000004
【図４】
0005369430.tif 000005
【図５】
0005369430.tif 000006
【図６】
0005369430.tif 000007
【図７】
0005369430.tif 000008
【図８】
0005369430.tif 000009
【図９】
0005369430.tif 000010
【図１０】
0005369430.tif 000011
【図１１】
0005369430.tif 000012
【図１２】
0005369430.tif 000013
【図１３】
0005369430.tif 000014
【図１４】
0005369430.tif 000015