(57)【要約】【課題】実際の実装及び接続環境に応じた、システムクロックに同期化したデータの有効範囲を正確に決定できるようにする。【解決手段】ダブルデータレートのメモリとの間で伝送されるクロック信号ＣＫ、ＣＫ＃及びデータストローブ信号ＤＱＳの到達時間を伝送路の反射波を利用して取得し、取得したクロック信号及びデータストローブ信号の到達時間に基づいて同期化するデータの有効範囲を求めるようにして、実際の実装及び接続環境に応じてシステムクロックに同期化するデータの有効範囲を決定できるようにする。【選択図】図４
2007280289.tif 000002
【特許請求の範囲】
【請求項１】
ダブルデータレートのメモリに係るインタフェースを有する半導体装置であって、
メモリとの間で伝送されるクロック信号及びデータストローブ信号の到達時間を当該信号の伝送路における反射波を利用して取得する到達時間取得部と、
上記到達時間取得部にて取得したクロック信号及びデータストローブ信号の到達時間に基づいて、システムクロックに同期化するデータの有効範囲を求める演算部と、
上記演算部により求められた有効範囲のデータを同期化する同期化処理部とを備えることを特徴とする半導体装置。
【請求項２】
上記到達時間取得部は、上記各信号の伝送路における反射波の観測を行い観測時間を計測する観測時間計測部と、
上記観測時間計測部により得られた観測時間に基づいて、予め準備した上記観測時間と上記到達時間の相関を示すテーブル又は計算式を用いて上記クロック信号及びデータストローブ信号の到達時間を取得する到達時間出力部とを有することを特徴とする請求項１記載の半導体装置。
【請求項３】
上記観測時間計測部は、上記信号の伝送路に探索パルスを出力した後に当該伝送路をハイインピーダンス状態にしてから反射波が検出されるまでの時間を上記観測時間として計測することを特徴とする請求項２記載の半導体装置。
【請求項４】
上記探索パルスを信号の伝送路に出力してから当該伝送路をハイインピーダンス状態にするまでの期間を制御可能にしたことを特徴とする請求項３記載の半導体装置。
【請求項５】
上記クロック信号は、１組の正論理クロック信号及び負論理クロック信号からなり、
出力をハイインピーダンス状態にすることが可能であるとともに、上記クロック信号を出力する差動双方向入出力部を備えることを特徴とする請求項１記載の半導体装置。
【請求項６】
上記演算部は、上記到達時間取得部にて取得したクロック信号及びデータストローブ信号の到達時間に基づいてラウンドトリップディレイを算出し、それを用いて同期化するデータの有効範囲を決定することを特徴とする請求項１記載の半導体装置。
【請求項７】
上記同期化処理部は、上記演算部により求められた有効範囲に応じてマスク処理されたシステムクロックを用いてデータを取り込み同期化することを特徴とする請求項１記載の半導体装置。
【請求項８】
上記演算部は、上記データの有効範囲を示すマスク信号を生成し、
上記演算部により生成されたマスク信号で上記システムクロックにマスク処理を施し、上記同期化処理部に出力するクロックマスク部を備えることを特徴とする請求項１記載の半導体装置。
【請求項９】
ダブルデータレートのメモリに係るインタフェースを有する半導体装置における信号処理方法であって、
メモリとの間で伝送されるクロック信号及びデータストローブ信号の到達時間を当該信号の伝送路における反射波を利用して取得し、
上記取得したクロック信号及びデータストローブ信号の到達時間に基づいて、上記メモリに対する読み出し動作時のラウンドトリップディレイを算出し、
上記算出したラウンドトリップディレイを用いて、上記メモリからデータを読み出した場合に同期化するデータの有効範囲を求め、
上記求められた有効範囲に従ってデータを同期化することを特徴とする信号処理方法。
【請求項１０】
上記各信号の伝送路における反射波の観測を行い観測時間を計測し、
上記計測して得られた観測時間に基づいて、予め準備した上記観測時間と上記到達時間の相関を示すテーブル又は計算式を用いて上記クロック信号及びデータストローブ信号の到達時間を取得することを特徴とする請求項９記載の信号処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置及び信号処理方法に関し、特に、ダブルデータレート（ＤＤＲ：Double Data Rate）のＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）に係るインタフェースを有する半導体装置に用いて好適なものである。
【背景技術】
【０００２】
ＤＤＲ−ＳＤＲＡＭ、ＤＤＲ２−ＳＤＲＡＭなどに対応するメモリコントローラ回路の設計においては、特に、メモリから出力されたリードデータを内部のフリップフロップによりキャプチャーする部分、及びそのフリップフロップからシステムクロックに同期化させる部分の設計が難しい。同期化したデータの有効範囲を決定するには、メモリコントローラから出力したクロックが、メモリ（ＳＤＲＡＭ）を経由して、データストローブ信号ＤＱＳとしてメモリコントローラに戻ってくるまでのラウンドトリップディレイ（Round-Trip-Delay）の算出が重要となる。そのタイミング設計には、数十〜数百ピコ秒の精度でのシミュレーション及び検証を行う必要があり、メモリコントローラの遅延設計及びプリント基板（ＰＣＢボード）のタイミング設計に多大な時間を要する。
【０００３】
また、メモリコントローラに接続されるメモリ素子、ＤＩＭＭモジュールの個数や型格、プリント基板の材質や層数は、一意に決められるものではない。また、ＤＤＲ−ＳＤＲＡＭ、ＤＤＲ２−ＳＤＲＡＭのトレンドも、ＤＤＲ２００，２６６，３３３，４００、ＤＤＲ２  ４００，５３３，６６７というようにデータレートが上がってきている。そのため、製造ばらつきや温度条件のすべての領域で、実現可能なあらゆるメモリ搭載構成でシミュレーション検証を行うことは困難である。
【０００４】
ＤＤＲ−ＳＤＲＡＭ用のメモリコントローラに関し、実際のＰＣＢ伝送路（プリント配線）を模した線路にメモリ素子に相当する容量を設け、実際にメモリをダミーリードサイクルでリードし、その応答波形を計測してデータストローブ信号ＤＱＳの位相を合わせることによりタイミング調整を行う方法が提案されている（例えば、特許文献１参照。）。
【０００５】
また、特許文献２には、伝送線における特性インピーダンスの不連続やミスマッチングなどによる信号の反射及びそれに伴うリンギングを抑制する技術について記載されている。
【０００６】
【特許文献１】特開２００５−７８５４７号公報
【特許文献２】特開２００１−１８３４２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載のものは、実際の伝送路を模したＰＣＢ線路を追加し、負荷として負荷容量のみを設けている。そのため、伝送路を介して接続される負荷容量が、直付けＤＲＡＭであるのかＤＩＭＭモジュールであるのかや、ＤＲＡＭの個数、ＤＩＭＭモジュールのランク、ＤＩＭＭモジュールのコンポーネント数によって大きな制約を受け、単純に負荷だけにした擬似の伝送路の遅延と実際の伝送路の遅延とは、数十〜千ピコ秒程度ずれる可能性がある。
【０００８】
また、実際のデータストローブ信号やクロック信号を用いておらず、実際の伝送路の形状を反映していないため、データストローブ信号やクロック信号のフライトタイムを計測することができない。
また、ダミーリードサイクルを用いるため、メモリコントローラ側の設計が複雑になるとともに、メモリを接続しないと実際の回路動作の試験を行うことができない。
【０００９】
本発明は、このような事情に鑑みてなされたものであり、実際の実装及び接続環境に応じた、システムクロックに同期化するデータの有効範囲を正確に決定できるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明の半導体装置は、ダブルデータレートのメモリとの間で伝送されるクロック信号及びデータストローブ信号の到達時間を反射波を利用して取得する到達時間取得部と、取得したクロック信号及びデータストローブ信号の到達時間に基づいて、システムクロックに同期化するデータの有効範囲を求める演算部と、求められた有効範囲のデータを同期化する同期化処理部とを備える。
【発明の効果】
【００１１】
本発明によれば、実際に搭載された状態でかつ実際の伝送路を用いて取得したクロック信号及びデータストローブ信号の到達時間に基づいて、同期化するデータの有効範囲を求めて同期化するので、実際の実装及び接続環境に応じて同期化するデータの有効範囲を正確に決定することができ、有効な範囲のデータだけをシステムクロックに同期化することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態を図面に基づいて説明する。
まず、本発明の一実施形態による半導体装置を適用したメモリコントローラＬＳＩの概要を説明する。
【００１３】
本実施形態におけるメモリコントローラＬＳＩは、ＰＣＢボード上に搭載された状態で実際のＰＣＢ伝送路（クロック信号ＣＫ、ＣＫ＃及びデータストローブ信号ＤＱＳに係るそれぞれの伝送路）に探索パルスを発信し、その反射波が検出されるまでの時間を計測する。これに関して、双方向Ｉ／Ｏ（入出力回路）を使用し、その双方向Ｉ／Ｏをハイインピーダンス状態にするタイミングを最適化することにより、ＰＣＢ伝送路上に現れる反射波を大きくした状態を作り出して反射波の観測を行う。
【００１４】
次に、メモリコントローラＬＳＩは、反射波が検出されるまでの時間とクロック信号ＣＫ、ＣＫ＃及びデータストローブ信号ＤＱＳのフライトタイム（到達時間）との相関性に基づいて、実装された接続環境下における実際のクロック信号ＣＫ、ＣＫ＃及びデータストローブ信号ＤＱＳのフライトタイムを求める。このフライトタイムの取得は、相関性を示したマップや計算式に基づいて行う。
【００１５】
続いて、メモリコントローラＬＳＩは、求めたクロック信号ＣＫ、ＣＫ＃及びデータストローブ信号ＤＱＳのフライトタイムに基づいて、ラウンドトリップディレイ（Round-Trip-Delay）を算出し、それを用いて同期化する有効なデータの範囲を決定する。
【００１６】
（データストローブ信号ＤＱＳのフライトタイムの取得原理）
図１を参照して、データストローブ信号ＤＱＳのフライトタイムの取得原理について説明する。
【００１７】
図１（Ａ）は、データストローブ信号ＤＱＳの伝送に係る構成を示す図である。
図１（Ａ）において、１１０はコントローラ側（メモリコントローラＬＳＩ）が具備する双方向Ｉ／Ｏ、１２０はメモリ（ＳＤＲＡＭ）が具備する双方向Ｉ／Ｏ、１３０はコントローラ側とメモリの間でデータストローブ信号ＤＱＳが伝送されるＰＣＢ伝送路である。
【００１８】
双方向Ｉ／Ｏ１１０は、２つのバッファ１１１、１１２を有する。バッファ１１１、１１２は、ハイインピーダンス（Ｈｉ−Ｚ）制御信号に応じて出力をハイインピーダンス状態にする、いわゆるトライステートバッファである。
バッファ１１１は、入力端がデータストローブ信号ＤＱＳの信号発生回路に接続され、出力端がＰＣＢ伝送路１３０に接続される。バッファ１１２は、入力端がＰＣＢ伝送路１３０に接続され、出力端が反射波観測モニター及びＤＬＬ（Delay Locked Loop）に接続される。
【００１９】
双方向Ｉ／Ｏ１２０は、簡略化して図示しているが、双方向Ｉ／Ｏ１１０と同様に、出力をハイインピーダンス状態にすることが可能な２つのバッファを有し、一方のバッファの入力端及び他方のバッファの出力端がＰＣＢ伝送路１３０に接続される。
【００２０】
図１（Ｂ）は、ＰＣＢ伝送路１３０に係る信号波形を示す図である。
ＰＣＢ伝送路１３０にて反射波が検出されるまでの時間を計測する際、図１（Ｂ）に示すように、コントローラ側から双方向Ｉ／Ｏ１１０におけるバッファ１１１を介して“０”→“１”→“０”と変化する（すなわちパルス状の）探索パルスＳＰを出力する。探索パルスＳＰの出力終了（“１”→“０”の遷移ポイント）後、Ｈｉ−Ｚ制御信号によりバッファ１１１の出力をハイインピーダンス状態にし反射波の検出が行われる。そして、そのＨｉ−Ｚ制御信号の出力から、ＰＣＢ伝送路１３０での反射波が検出されるまでの反射波観測時間T_hiZ_flyが観測される。
【００２１】
ここで、反射波の観測には、データストローブ信号ＤＱＳに係るコントローラ側内部端子が使用される。反射波が乗ることによりコントローラ側内部端子にリファレンス電圧（Ｖｒｅｆ）±閾値電圧〔ｍＶ〕を超える揺れが発生する場合、信号の状態変化（０／１）により反射波が乗ったことを感知することができる。つまり、反射波観測時間T_hiZ_flyは、バッファ１１１の出力をハイインピーダンス状態にするためのＨｉ−Ｚ制御信号を出力してから、コントローラ側内部端子の状態が変化するまでの時間となる。
【００２２】
また、図１（Ｂ）から、ＰＣＢ伝送路１３０上の波形は、探索パルスＳＰの発信により伝送路上にデータが転送され駆動されている期間に、バッファ１１１の出力がハイインピーダンス状態に切り替わると、行き場を失った電荷が伝送路での反射を繰り返して減衰し、伝送路にリンギングが多く発生していることが見てとれる。
【００２３】
この反射波の発生量と、探索パルスＳＰの出力終了から双方向Ｉ／Ｏ１１０のバッファ１１１をハイインピーダンス状態にするまでの時間T_skewには依存関係が存在する。そこで、反射波の観測においては、探索パルスＳＰの出力終了からバッファ１１１をハイインピーダンス状態にするまでの時間T_skewを変化させ（ｓｗｅｅｐし）、反射波が多く観測される時間を求める。
【００２４】
図１（Ｃ）は、データストローブ信号ＤＱＳに係る反射波観測時間T_hiZ_fly（DQS）とフライトタイムT_DRAM（DQS）の相関性を示す図である。探索パルスＳＰの出力終了からＨｉ−Ｚ制御信号を出力するまでの時間、すなわち時間T_skewを一定として、伝送路の長さを幾通りか替えると、図１（Ｃ）に示すように反射波観測時間T_hiZ_fly（DQS）とメモリ（ＳＤＲＡＭ）から出力されるデータストローブ信号ＤＱＳのフライトタイムT_DRAM（DQS）の関係は、伝送路の長さに比例する。この関係を時間T_skewを変えるたびに作成してテーブル又は計算式により持つことで、反射波観測時間T_hiZ_fly（DQS）を基にフライトタイムT_DRAM（DQS）を求めることができる。
【００２５】
（クロック信号ＣＫ、ＣＫ＃のフライトタイムの取得原理）
図２を参照して、クロック信号ＣＫ、ＣＫ＃のフライトタイムの取得原理について説明する。
【００２６】
図２（Ａ）は、クロック信号ＣＫ、ＣＫ＃の伝送に係る構成を示す図である。
図２（Ａ）において、２１０はコントローラ側（メモリコントローラＬＳＩ）が具備するクロック信号（ポジクロック信号）ＣＫを出力するための双方向Ｉ／Ｏ、２２０はコントローラ側が具備するクロック信号（ネガクロック信号）ＣＫ＃を出力するための双方向Ｉ／Ｏである。２３０はメモリ（ＳＤＲＡＭ）が具備するクロックバッファ、２４０、２５０はコントローラ側からメモリにクロック信号ＣＫ、ＣＫ＃が伝送されるＰＣＢ伝送路である。
【００２７】
一般に、クロック信号ＣＫ、ＣＫ＃を出力する場合には、Ｈｉ−Ｚ状態を有しない出力専用の差動Ｉ／Ｏが使用されるが、本実施形態では、ＰＣＢ伝送路２４０、２５０における反射波の観測を可能にするために双方向Ｉ／Ｏ２１０、２２０及びインバータＩＮＶ１により構成されるＨｉ−Ｚ状態付きの双方向差動Ｉ／Ｏが用いられる。
【００２８】
双方向Ｉ／Ｏ２１０は、２つのバッファ２１１、２１２を有する。バッファ２１１、２１２は、ハイインピーダンス（Ｈｉ−Ｚ）制御信号に応じて出力をハイインピーダンス状態にする、いわゆるトライステートバッファである。バッファ２１１は、入力端がクロック信号ＣＫの信号発生回路に接続され、出力端がＰＣＢ伝送路２４０に接続される。バッファ２１２は、入力端がＰＣＢ伝送路２４０に接続され、出力端が反射波観測モニターに接続される。
【００２９】
同様に、双方向Ｉ／Ｏ２２０は、２つのバッファ２２１、２２２を有する。バッファ２２１、２２２は、Ｈｉ−Ｚ制御信号に応じて出力をハイインピーダンス状態にする、いわゆるトライステートバッファである。バッファ２２１は、入力端がインバータＩＮＶ１を介してクロック信号ＣＫの信号生成回路に接続され、出力端がＰＣＢ伝送路２５０に接続される。バッファ２２２は、入力端がＰＣＢ伝送路２５０に接続され、出力端が反射波観測モニターに接続される。
【００３０】
図２（Ｂ）は、ＰＣＰ伝送路２４０、２５０に係る信号波形を示す図である。
ＰＣＢ伝送路２４０、２５０にて反射波が検出されるまでの時間を計測する際、図２（Ｂ）に示すように、コントローラ側から双方向Ｉ／Ｏ２１０（２２０）におけるバッファ２１１（２２１）を介して“０”→“１”→“０”（“１”→“０”→“１”）と変化する探索パルスＳＰを出力する。探索パルスＳＰの出力終了後、Ｈｉ−Ｚ制御信号によりバッファ２１１、２２１の出力をハイインピーダンス状態にし反射波の検出が行われる。そして、そのＨｉ−Ｚ制御信号の出力から、ＰＣＢ伝送路２４０、２５０での反射波が検出されるまでの反射波観測時間T_hiZ_flyが観測される。
【００３１】
なお、ＰＣＢ伝送路２４０、２５０での反射波の観測においては、ＰＣＢ伝送路２４０、２５０を介したメモリ（ＳＤＲＡＭ）へのクロック信号ＣＫ、ＣＫ＃の供給を停止して行う必要がある。そのため、ＰＣＢ伝送路２４０、２５０における反射波の観測は、メモリへのクロック供給停止を実現できる、メモリに対するアクセスが行われていない期間（例えば電源投入時のパワーオンリセット後）に、メモリに対してイニシャル動作をさせる前にキャリブレーションの一環として行うことが望ましい。
【００３２】
反射波の観測には、クロック信号ＣＫ、ＣＫ＃に係るコントローラ側内部端子が使用される。コントローラ側内部端子における信号の状態変化（０／１）により反射波が乗ったことを感知することができる。つまり、反射波観測時間T_hiZ_flyは、バッファ２１１、２２１の出力をハイインピーダンス状態にするためのＨｉ−Ｚ制御信号を出力してから、コントローラ側内部端子の状態が変化するまでの時間となる。
【００３３】
また、図２（Ｂ）に示されるように、クロック信号ＣＫ、ＣＫ＃を駆動されている期間において、伝送路上にハイレベル／ロウレベルの電位を保っている状態でバッファ２１１、２２１の出力がハイインピーダンス状態に切り替わると、行き場を失った電荷によりリンギングが発生する。クロック信号ＣＫ、ＣＫ＃に関しても、クロック信号ＣＫ、ＣＫ＃の０／１の遷移ポイントから双方向Ｉ／Ｏ２１０、２２０のバッファ２１１、２２１をハイインピーダンス状態にするまでの時間T_skewには依存関係が存在する。そこで、反射波の観測においては、探索パルスＳＰの出力終了からバッファ２１１、２２１をハイインピーダンス状態にするまでの時間T_skewを変化させ（ｓｗｅｅｐし）、反射波が多く観測される時間を求める。
【００３４】
図２（Ｃ）は、クロック信号ＣＫ、ＣＫ＃に係る反射波観測時間T_hiZ_fly（CK）とフライトタイムT_DRAM（CK）の相関性を示す図である。時間T_skewを一定として、伝送路の長さを幾通りか替えると、図２（Ｃ）に示すように反射波観測時間T_hiZ_fly（CK）とコントローラ側からメモリ（ＳＤＲＡＭ）に供給されるクロック信号ＣＫ、ＣＫ＃のフライトタイムT_DRAM（CK）の関係は、伝送路の長さに比例する。この関係を時間T_skewを変えるたびに作成してテーブル又は計算式により持つことで、反射波観測時間T_hiZ_fly（CK）を基にフライトタイムT_DRAM（CK）を求めることができる。
【００３５】
図３は、データストローブ信号ＤＱＳに係る反射波観測時間T_hiZ_fly（DQS）とフライトタイムT_DRAM（DQS）の相関性に対するプロセスばらつきの関係を示す図である。縦軸及び横軸ともに、同一のＩ／Ｏセルの遅延であるため、Ｉ／Ｏセル内のばらつきが小さいと仮定すると、入出力Ｉ／Ｏの入力遅延と出力遅延は、チップ間、ウェハ間、及びロット間ばらつきのみを考えれば良く、ＰＣＢ伝送路の距離だけに依存するものとなる。シミュレーションによれば、フライトタイムが２ｎｓｅｃ程度の伝送路（コントローラからメモリまで１０cm程度）において、Fast-Slow差は２００ｐｓ以内であり、反射波観測時間T_hiZ_fly（DQS）とフライトタイムT_DRAM（DQS）の関係は、伝送路の距離に応じて一意に決めることができるといえる。クロック信号ＣＫ、ＣＫ＃に係る反射波観測時間T_hiZ_fly（CK）とフライトタイムT_DRAM（CK）について同様である。
【００３６】
図４は、本実施形態におけるメモリコントローラＬＳＩ１の構成例を示す図であり、図５は、本実施形態におけるメモリコントローラＬＳＩ１のリード動作を示すタイミングチャートである。
【００３７】
図４に示すように、メモリコントローラＬＳＩ１は、ＰＣＢ伝送路１３０、２４０、２５０、３３０を介してダブルデータレートのメモリ（ＳＤＲＡＭ）２に接続可能となっている。なお、メモリコントローラ１とメモリ２との間では、図示していないが他の制御信号（コマンド）もＰＣＢ伝送路を介して送受信されている。
【００３８】
メモリコントローラ１において、１１はＰＣＢ伝送路に出力する探索パルスＳＰを生成する探索パルス発生器、１２は双方向Ｉ／Ｏ１１０、２１０、２２０に出力されるＨｉ−Ｚ制御信号を生成するＨｉ−Ｚ信号発生器、１３は探索パルス発生器１１による探索パルスＳＰの出力終了からＨｉ−Ｚ信号発生器１２によりＨｉ−Ｚ制御信号を出力するまでの時間T_skewを制御するスキュー制御回路である。１４はクロック信号ＣＫを生成するクロック信号発生器、１５はデータストローブ信号ＤＱＳを生成するストローブ信号発生器である。
【００３９】
１６はＰＣＢ伝送路２４０、２５０における反射波観測時間T_hiZ_fly（CK）を計測するための計数器、１７はＰＣＢ伝送路１３０における反射波観測時間T_hiZ_fly（DQS）を計測するための計数器である。計数器１６、１７は、逓倍器１８によりシステムクロック信号の周期を（１／Ｎ）倍した、システムクロック信号よりも十分に速いクロック信号で動作する。
【００４０】
１９はクロック信号ＣＫ、ＣＫ＃及びデータストローブ信号ＤＱＳに係る時間T_skewに応じた反射波観測時間T_hiZ_flyとフライトタイムT_DRAMの関係を示すマップ（テーブル）を記憶する記憶部であり、例えばＲＡＭやＲＯＭ等で構成される。
【００４１】
２０はスキュー制御回路１３から供給される時間T_skewの情報に基づいて、記憶部１９から時間T_skewに応じたマップを検索するマップ検索部である。また、マップ検索部２０は、検索して得られたマップを参照し、計数器１６、１７より供給される反射波観測時間T_hiZ_flyを基にフライトタイムT_DRAMを求めて出力する。
【００４２】
２１はラウンドトリップディレイ（Round-Trip-delay）を計算する遅延計算部である。遅延計算部２１は、マップ検索部２０より出力されたフライトタイムT_DRAM（CK）、T_DRAM（DQS）及びコントロールレジスタ２２、２３に記憶されているバースト長（ＢＬ）、ＣＡＳレイテンシ（ＣＬ）等に基づいてラウンドトリップディレイ（Round-Trip-delay）を計算する。さらに、遅延計算部２１は、算出したラウンドトリップディレイ（Round-Trip-Delay）を用いて、同期化する有効なデータの範囲を決定し、その範囲を示すマスク信号を生成し出力する。
【００４３】
２４はメモリ２から入力されたデータストローブ信号ＤＱＳの位相を９０°シフトして出力するＤＬＬ（Delay Locked Loop）、２５はＤＬＬ２４の出力及びインバータＩＮＶ２により反転したＤＬＬ２４の出力を用いてメモリ２から入力されたデータをキャプチャーするキャプチャーフリップフロップである。
【００４４】
２６は遅延計算部２１からのマスク信号に基づいてシステムクロックをマスクし出力するクロックバッファであり、例えばＡＮＤゲートなどロジック回路を用いて構成される。２７はクロックバッファ２６から出力されるマスク処理されたシステムクロックに基づいて、キャプチャーフリップフロップ２５より出力される有効データをシステムクロックに同期化する同期化フリップフロップである。
【００４５】
１１０はデータストローブ信号ＤＱＳに係る双方向Ｉ／Ｏであり、Ｈｉ−Ｚ制御信号に応じて出力をハイインピーダンス状態にする２つのバッファ１１１、１１２を有する。バッファ１１１は、入力端がストローブ信号発生器１５に接続され、出力端が端子ＤＱＳ＿Ｃを介してＰＣＢ伝送路１３０に接続される。バッファ１１２は、入力端が端子ＤＱＳ＿Ｃを介してＰＣＢ伝送路１３０に接続され、出力端が計数器１７及びＤＬＬ２４に接続される。
【００４６】
２１０はクロック信号ＣＫに係る双方向Ｉ／Ｏであり、Ｈｉ−Ｚ制御信号に応じて出力をハイインピーダンス状態にする２つのバッファ２１１、２１２を有する。バッファ２１１は、入力端がクロック信号発生器１４に接続され、出力端が端子ＣＫ＿Ｃを介してＰＣＢ伝送路２４０に接続される。バッファ２１２は、入力端が端子ＣＫ＿Ｃを介してＰＣＢ伝送路２４０に接続され、出力端が計数器１６に接続される。
【００４７】
同様に、２２０はクロック信号ＣＫ＃に係る双方向Ｉ／Ｏであり、Ｈｉ−Ｚ制御信号に応じて出力をハイインピーダンス状態にする２つのバッファ２２１、２２２を有する。バッファ２２１は、入力端がインバータＩＮＶ１を介してクロック信号発生器１４に接続され、出力端が端子ＣＫ＃＿Ｃを介してＰＣＢ伝送路２５０に接続される。バッファ２２２は、入力端が端子ＣＫ＃＿Ｃを介してＰＣＢ伝送路２５０に接続され、出力端が計数器１６に接続される。
【００４８】
３１０はデータ信号ＤＱに係る双方向Ｉ／Ｏであり、Ｈｉ−Ｚ制御信号に応じて出力をハイインピーダンス状態にする２つのバッファ３１１、３１２を有する。バッファ３１１は、出力端が端子ＤＱ＿Ｃを介してＰＣＢ伝送路３３０に接続される。バッファ３１２は、入力端が端子ＤＱ＿Ｃを介してＰＣＢ伝送路３３０に接続され、出力端がキャプチャーフリップフロップ２５に接続される。なお、データ信号ＤＱに係る双方向Ｉ／Ｏは１つのみ図示しているが、データ幅に応じて複数有していることは言うまでもない。
【００４９】
また、１２０はデータストローブ信号ＤＱＳに係る双方向Ｉ／Ｏであり、端子ＤＱＳ＿Ｍを介してＰＣＢ伝送路１３０に接続されている。２３０はクロック信号ＣＫ、ＣＫ＃に係るクロックバッファであり、端子ＣＫ＿Ｍ、ＣＫ＃＿Ｍを介してＰＣＢ伝送路２４０、２５０に接続されている。３２０はデータ信号ＤＱに係る双方向Ｉ／Ｏであり、端子ＤＱ＿Ｍを介してＰＣＢ伝送路３３０に接続されている。
【００５０】
次に、動作について説明する。
まず、例えば電源投入直後などのメモリ２に対してクロック信号ＣＫ、ＣＫ＃の供給を行っていないイニシャライズシーケンス等において、クロック信号ＣＫ、ＣＫ＃及びデータストローブ信号ＤＱＳに係るＰＣＢ伝送路に探索パルスＳＰを発信し、伝送路の応答を調査する。
【００５１】
メモリコントローラＬＳＩ１は、クロック信号ＣＫ、ＣＫ＃の伝送路２４０、２５０に対して、探索パルス発生器１１により、クロック信号発生器１４及び双方向Ｉ／Ｏ２１０、２２０を介して探索パルスＳＰを発信する。そして、その反射波を検出して計数器１６でカウントを行うことにより、反射波観測時間T_hiZ_fly（CK）を計測する。なお、反射波観測時間T_hiZ_fly（CK）の計測は、探索パルスＳＰの出力終了から双方向Ｉ／Ｏ２１０、２２０におけるバッファ２１１、２２１の出力をＨｉ−Ｚにする時間T_skewを振りながら行う。
【００５２】
同様に、メモリコントローラＬＳＩ１は、データストローブ信号ＤＱＳの伝送路１３０に対して、探索パルス発生器１１によりストローブ信号発生器１５及び双方向Ｉ／Ｏ１１０を介して探索パルスＳＰを発信する。その反射波を検出して計数器１６でカウントを行うことにより、反射波観測時間T_hiZ_fly（CK）を計測する。なお、反射波観測時間T_hiZ_fly（CK）の計測は、探索パルスＳＰの出力終了から双方向Ｉ／Ｏ１１０におけるバッファ１１１の出力をＨｉ−Ｚにする時間T_skewを振りながら行う。
【００５３】
次に、マップ検索部２０は、スキュー制御回路１３から供給される時間T_skewの情報に基づいて記憶部１９から所望のマップを検索して取得し、計測された反射波観測時間T_hiZ_fly（CK）、T_hiZ_fly（DQS）を基にフライトタイムT_DRAM(CK)、T_DRAM(DQS)をそれぞれ求める。計算式としては、例えばT_DRAM＝α×T_hiZ_fly＋β（α、βは任意の定数）などの近似式等を用いてもよい。
【００５４】
なお、マップ検索部２０は、反射波観測時間T_hiZ_flyとフライトタイムT_DRAMの関係を示すマップに代えて、反射波観測時間T_hiZ_flyからフライトタイムT_DRAMを算出する計算式に基づいてフライトタイムT_DRAM(CK)、T_DRAM(DQS)をそれぞれ求めるようにしても良い。
【００５５】
続いて、遅延計算部２１は、マップ検索部２０で求められたフライトタイムT_DRAM（CK）、T_DRAM（DQS）及びコントロールレジスタ２２、２３が有するバースト長（ＢＬ）、ＣＡＳレイテンシ（ＣＬ）等に基づいて、ラウンドトリップディレイ及び同期化するデータの有効範囲を求める。
【００５６】
ラウンドトリップディレイ及び同期化するデータの有効範囲は以下のようにして求められる。
T_valid_start＝T_DRAM(CK)+t_DQSCK(DRAM規格)+T_DRAM(DQS)+CL
T_valid_end＝T_valid_start+BL
ここで、t_DQSCKはメモリの規格によって定められる値であり、ＣＬはＣＡＳレイテンシに相当する時間、ＢＬはバーストデータ長のデータ転送に要する時間である。
T_valid_startは、ラウンドトリップディレイそのものであり、同期化するデータの有効範囲の開始位置に対応する。また、T_valid_endは、同期化するデータの有効範囲の終了位置に対応する。
【００５７】
次に、メモリコントローラＬＳＩ１によるリード動作について、図５を参照して説明する。
まず、時刻Ｔ１において、メモリコントローラＬＳＩ１がメモリ２に対してリードコマンドを発行する。メモリコントローラＬＳＩ１からメモリ２に供給されるクロック信号ＣＫ、ＣＫ＃は、クロック信号ＣＫ、ＣＫ＃のフライトタイムT_DRAM（CK）経過後、メモリ２に到達する。また、リードコマンドも、アドレス、コマンドのフライトタイム後にメモリ２に到達する。
【００５８】
メモリ２は、メモリコントローラＬＳＩからのリードコマンドを受けると、ＣＡＳレイテンシとして規定された時間が経過し、さらにメモリ２のＡＣ規格値（tDQSCK、例えば±０．７５ｎｓ）後に、データストローブ信号ＤＱＳ及びデータ信号ＤＱを出力する。
【００５９】
一般的に、ダブルデータレートのメモリ（ＳＤＲＡＭ）においては、データストローブ信号ＤＱＳグループごとに、等長、等ディレイ配線を実現しているので、データストローブ信号ＤＱＳとデータ信号ＤＱのおおよそのフライトタイムは等しくなる。したがって、メモリ２から出力されたデータストローブ信号ＤＱＳ及びデータ信号ＤＱは、フライトタイムT_DRAM（DQS）後にメモリコントローラＬＳＩ１に到着する。
【００６０】
メモリ２からの入力されたデータストローブ信号ＤＱＳは、ＤＬＬ２４により一定の遅延を付加され、キャプチャーフリップフロップ２５に供給される。また、ＤＬＬ２４の出力は、インバータＩＮＶ２により反転されてキャプチャーフリップフロップ２５に供給される。なお、ＤＬＬ２４による遅延量は、データ信号ＤＱの真ん中にデータストローブ信号ＤＱＳのエッジが対応するように、９０°だけ位相をずらしているものとする。また、ＤＬＬ２４に代えて、ディレイラインを用いて入力されたデータストローブ信号ＤＱＳに一定の遅延を付加するようにしても良い。
【００６１】
また、メモリ２からの入力されたデータ信号ＤＱは、キャプチャーフリップフロップ２５に供給され、ＤＬＬ２４の出力信号及びその反転信号に基づいてキャプチャーフリップフロップ２５に取り込まれ出力される。
【００６２】
ＤＬＬ２４の出力信号及びその反転信号には、その伝送経路においてハイインピーダンス状態であるときにノイズがのる可能性がある。そのため、その信号をストローブ信号としてデータ信号ＤＱを取り込むと、意味のある有効なデータとノイズに起因した無意味なデータの区別がつかなくなってしまう。
【００６３】
そこで、キャプチャーフリップフロップ２５の出力を同期化フリップフロップ２７により取り込んでシステムクロックに同期化する際には、上述のようにして求めたT_valid_start及びT_valid_endにより定められる範囲内のデータを取り込むようにする。具体的には、遅延計算部２１によりマスク信号を生成し、同期化フリップフロップ２７に供給されるシステムクロックを、同期化するデータの有効範囲T_valid_start〜T_valid_endまでの期間だけマスク（有効に）する。
【００６４】
これにより、時刻Ｔ１からT_valid_startの時間が経過した時刻Ｔ２と、時刻Ｔ２からバースト長に対応する時間が経過した時刻Ｔ３との間だけ有効となるようにマスク処理された同期化用のシステムクロックが、同期化フリップフロップ２７に入力される。このマスク処理されたシステムクロックを用いてキャプチャーフリップフロップ２５の出力を取り込むことにより、同期化フリップフロップ２７は、有効データと無効データの織り交ぜられたデータ列の中から有効な範囲のデータを切り出して同期化することができる。
【００６５】
以上、説明したように本実施形態によれば、実際に実装されメモリに接続された状態で、実際に信号が伝送される伝送路を用いて、クロック信号ＣＫ、ＣＫ＃及びデータストローブ信号ＤＱＳの伝播遅延を求めることにより、ＤＲＡＭ個数、ＰＣＢボードの層数、伝送路長などが様々に変化し多様な構造・構成を持つ場合においても、実際の伝送路におけるクロック信号ＣＫ、ＣＫ＃及びデータストローブ信号ＤＱＳの伝播遅延を求めることが可能となる。これにより、プロセスばらつき、ＤＲＡＭ構成、伝送路長に意識を払うことなく、同期化するデータの有効範囲を正確に決定することができ、システムクロックに同期化する有効な範囲のデータを切り出し同期化することができる。
【００６６】
また、上述した本実施形態におけるメモリコントローラＬＳＩは、既存のメモリコントローラ回路を流用し、データストローブ信号ＤＱＳ及びクロック信号ＣＫ，ＣＫ＃を出力するＩ／Ｏポートブロックに付加回路を設けることで実現することができる。これにより既存のポート部の設計へ影響を最小にしながらも、容易に実際の実装及び接続環境に応じた同期化するデータの有効範囲を正確に決定することができる。
【００６７】
ここで、上述したように本実施形態においては、時間T_skewを変化させて（振って）、反射波を大きくした状態を作り出して反射波の観測を行う。したがって、逆に反射波が観測されにくい、すなわち反射が小さい時間T_skewについても得られることになる。そこで、実際の通常動作時には、データストローブ信号やデータ信号に係る双方向Ｉ／Ｏを反射が小さい時間T_skewに基づいて制御することでノイズに対して強い伝送を実現することもできる。
【００６８】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の諸態様を付記として以下に示す。
【００６９】
（付記１）ダブルデータレートのメモリに係るインタフェースを有する半導体装置であって、
メモリとの間で伝送されるクロック信号及びデータストローブ信号の到達時間を当該信号の伝送路における反射波を利用して取得する到達時間取得部と、
上記到達時間取得部にて取得したクロック信号及びデータストローブ信号の到達時間に基づいて、システムクロックに同期化するデータの有効範囲を求める演算部と、
上記演算部により求められた有効範囲のデータを同期化する同期化処理部とを備えることを特徴とする半導体装置。
（付記２）上記到達時間取得部は、上記各信号の伝送路における反射波の観測を行い観測時間を計測する観測時間計測部と、
上記観測時間計測部により得られた観測時間に基づいて、予め準備した上記観測時間と上記到達時間の相関を示すテーブル又は計算式を用いて上記クロック信号及びデータストローブ信号の到達時間を取得する到達時間出力部とを有することを特徴とする付記１記載の半導体装置。
（付記３）上記観測時間計測部は、上記信号の伝送路に探索パルスを出力した後に当該伝送路をハイインピーダンス状態にしてから反射波が検出されるまでの時間を上記観測時間として計測することを特徴とする付記２記載の半導体装置。
（付記４）上記探索パルスを信号の伝送路に出力してから当該伝送路をハイインピーダンス状態にするまでの期間を制御可能にしたことを特徴とする付記３記載の半導体装置。
（付記５）上記探索パルスを信号の伝送路に出力してから当該伝送路をハイインピーダンス状態にするまでの期間毎に、上記クロック信号に係る上記観測時間と上記到達時間の相関を示すテーブル又は計算式を設けることを特徴とする付記４記載の半導体装置。
（付記６）上記探索パルスを信号の伝送路に出力してから当該伝送路をハイインピーダンス状態にするまでの期間毎に、上記データストローブ信号に係る上記観測時間と上記到達時間の相関を示すテーブル又は計算式を設けることを特徴とする付記４記載の半導体装置。
（付記７）上記信号の伝送路における反射波の観測を上記探索パルスを信号の伝送路に出力してから当該伝送路をハイインピーダンス状態にするまでの期間を変化させて行い、通常動作時は反射波の検出頻度が低い期間に応じたタイミングで信号の入出力部を制御することを特徴とする付記４記載の半導体装置。
（付記８）上記クロック信号の到達時間の取得は、電源投入時に行われることを特徴とする付記１記載の半導体装置。
（付記９）上記クロック信号は、１組の正論理クロック信号及び負論理クロック信号からなり、
出力をハイインピーダンス状態にすることが可能であるとともに、上記クロック信号を出力する差動双方向入出力部を備えることを特徴とする付記１記載の半導体装置。
（付記１０）上記演算部は、上記到達時間取得部にて取得したクロック信号及びデータストローブ信号の到達時間に基づいてラウンドトリップディレイを算出し、それを用いて同期化するデータの有効範囲を決定することを特徴とする付記１記載の半導体装置。
（付記１１）上記同期化処理部は、上記演算部により求められた有効範囲に応じてマスク処理されたシステムクロックを用いてデータを取り込み同期化することを特徴とする付記１記載の半導体装置。
（付記１２）上記演算部は、上記データの有効範囲を示すマスク信号を生成し、
上記演算部により生成されたマスク信号で上記システムクロックにマスク処理を施し、上記同期化処理部に出力するクロックマスク部を備えることを特徴とする付記１記載の半導体装置。
（付記１３）ダブルデータレートのメモリに係るインタフェースを有する半導体装置における信号処理方法であって、
メモリとの間で伝送されるクロック信号及びデータストローブ信号の到達時間を当該信号の伝送路における反射波を利用して取得し、
上記取得したクロック信号及びデータストローブ信号の到達時間に基づいて、上記メモリに対する読み出し動作時のラウンドトリップディレイを算出し、
上記算出したラウンドトリップディレイを用いて、上記メモリからデータを読み出した場合に同期化するデータの有効範囲を求め、
上記求められた有効範囲に従ってデータを同期化することを特徴とする信号処理方法。
（付記１４）上記各信号の伝送路における反射波の観測を行い観測時間を計測し、
上記計測して得られた観測時間に基づいて、予め準備した上記観測時間と上記到達時間の相関を示すテーブル又は計算式を用いて上記クロック信号及びデータストローブ信号の到達時間を取得することを特徴とする付記１３記載の信号処理方法。
【図面の簡単な説明】
【００７０】
【図１】本発明の実施形態におけるデータストローブ信号のフライトタイムの取得原理を説明するための図である。
【図２】本発明の実施形態におけるクロック信号のフライトタイムの取得原理を説明するための図である。
【図３】データストローブ信号に係る反射波観測時間とフライトタイムの相関性に対するプロセスばらつきの関係を示す図である。
【図４】本実施形態におけるメモリコントローラＬＳＩの構成例を示す図である。
【図５】本実施形態におけるメモリコントローラＬＳＩのリード動作を示すタイミングチャートである。
【符号の説明】
【００７１】
１  メモリコントローラＬＳＩ
２  メモリ
１１  探索パルス発生器
１２  Ｈｉ−Ｚ信号発生器
１３  スキュー制御回路
１４  クロック信号発生器
１５  ストローブ信号発生器
１６、１７  計数器
１９  記憶部
２０  マップ検索部
２１  遅延計算部
２５  キャプチャーフリップフロップ
２６  クロックバッファ
２７  同期化フリップフロップ
１１０、２１０、２２０  双方向Ｉ／Ｏ
１３０、２４０、２５０、３３０  ＰＣＢ伝送路
【図１】
2007280289.tif 000003
【図２】
2007280289.tif 000004
【図３】
2007280289.tif 000005
【図４】
2007280289.tif 000006
【図５】
2007280289.tif 000007