(57)【要約】【解決手段】電子デバイスは、電子部品と集積回路とを備える。集積回路は、システムクロックと、前記システムクロックからプログラム可能な遅延を有する外部クロックとを生成し、前記外部クロックを前記電子部品に提供し、前記集積回路と電子部品とが通信可能な、外部クロックとシステムクロックとの間の遅延範囲を決定し、前記遅延範囲に基づいて、予め定めた複数の遅延値のうちの１つを用いて、前記外部クロックをプログラムするように構成されている。【選択図】      図４
2008519457.tif 000002
【特許請求の範囲】
【請求項１】
電子部品と、
システムクロックと、前記システムクロックからプログラム可能な遅延を有する外部クロックとを生成し、前記外部クロックを前記電子部品に提供し、集積回路と電子部品とが通信可能な、外部クロックとシステムクロックとの間の遅延範囲を決定し、前記遅延範囲に基づいて、予め定めた複数の遅延値のうちの１つを用いて、前記外部クロックをプログラムするように構成された集積回路と
を備える電子デバイス。
【請求項２】
前記集積回路は更に、前記予め定めた遅延値を格納するように構成された請求項１の電子デバイス。
【請求項３】
前記電子部品は、少なくとも１つのメモリデバイスを備える請求項１の電子デバイス。
【請求項４】
前記電子部品は、ＳＤＲＡＭ、バーストＮＯＲ、バーストＰＳＲＡＭ、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、又はＶＲＡＭのうちの少なくとも１つを備える請求項３の電子デバイス。
【請求項５】
前記集積回路は更に、電子部品との複数の読取／書込動作を通じて、前記遅延範囲を決定するように構成された請求項３の電子デバイス。
【請求項６】
前記集積回路は更に、前記読取動作の各々を、合格状態又は失敗状態として評価することにより、前記遅延範囲を決定するように構成された請求項５の電子デバイス。
【請求項７】
前記遅延範囲は上部境界及び下部境界を備え、前記集積回路は更に、前記遅延範囲の境界に基づき、予め定めた複数の遅延値のうちの１つを用いて、前記外部クロックをプログラムするように構成された請求項１の電子デバイス。
【請求項８】
前記集積回路は更に、前記遅延範囲の上部境界が、前記システムクロックと前記外部クロックとの間のプログラム可能な最大遅延を超えているかの関数として、前記予め定めた複数の遅延値のうちの１つを決定するように構成された請求項７の電子デバイス。
【請求項９】
前記集積回路は更に、前記遅延範囲の下部境界が、前記システムクロックと前記外部クロックとの間のプログラム可能な最小遅延未満であるかの関数として、前記予め定めた複数の遅延値のうちの１つを決定するように構成された請求項７の電子デバイス。
【請求項１０】
前記予め定めた遅延値の各々は、前記集積回路を特徴付ける速度の範囲、および前記電子部品を特徴付ける速度の範囲と関連する請求項１の電子デバイス。
【請求項１１】
無線電話、携帯情報端末、電子メールデバイス、又はウェブ対応デバイスを備える請求項１の電子デバイス。
【請求項１２】
システムクロックを有する集積回路を電子部品に較正する方法であって、
前記システムクロックからプログラム可能な遅延を有する外部クロックを前記集積回路に生成することと、
前記集積回路から前記電子部品へ外部クロックを提供し、それらの間の通信をサポートすることと、
前記集積回路と前記電子部品とが通信することができる、前記システムクロックと前記外部クロックとの間の遅延範囲を決定することと、
前記遅延範囲に基づいて、予め定めた複数の遅延値のうちの１つを用いて、前記外部クロックをプログラムすることと
を含む方法。
【請求項１３】
前記予め定めた遅延値を格納することを更に含む請求項１２の方法。
【請求項１４】
前記電子部品は、少なくとも１つのメモリデバイスを備える請求項１２の方法。
【請求項１５】
前記電子部品は、ＳＤＲＡＭ、バーストＮＯＲ、バーストＰＳＲＡＭ、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、又はＶＲＡＭのうちの少なくとも１つを備える請求項１４の方法。
【請求項１６】
電子部品との複数の読取／書込動作を通じて、前記遅延範囲を決定することを更に含む請求項１４の方法。
【請求項１７】
前記読取動作の各々を、合格状態又は失敗状態として評価することにより、前記遅延範囲を決定することを更に含む請求項１６の方法。
【請求項１８】
前記遅延範囲の上部境界及び下部境界を決定することと、
前記遅延範囲の境界に基づき、予め定めた複数の遅延値のうちの１つを用いて、前記外部クロックをプログラムすることと
を更に含む請求項１２の方法。
【請求項１９】
前記遅延範囲の上部境界が、前記システムクロックと前記外部クロックとの間のプログラム可能な最大遅延を超えているかの関数として、前記予め定めた複数の遅延値のうちの１つを決定することを更に含む請求項１８の方法。
【請求項２０】
前記遅延範囲の下部境界が、前記システムクロックと前記外部クロックとの間のプログラム可能な最小遅延未満であるかの関数として、前記予め定めた複数の遅延値のうちの１つを決定することを更に含む請求項１８の方法。
【請求項２１】
前記予め定めた遅延値の各々は、前記集積回路を特徴付ける速度の範囲、および前記電子部品を特徴付ける速度の範囲と関連する請求項１２の方法。
【請求項２２】
前記電子デバイスは、無線電話、携帯情報端末、電子メールデバイス、又はウェブ対応デバイスを備える請求項１２の方法。
【請求項２３】
電子部品と、
システムクロックを生成する手段、
前記システムクロックからプログラム可能な遅延を有する外部クロックを前記集積回路に生成する手段、
前記集積回路から前記電子部品に外部クロックを提供し、それらの間の通信をサポートする手段、
前記集積回路と前記電子部品とが通信可能な、前記外部クロックと前記システムクロックとの間の遅延範囲を決定する手段、
前記遅延範囲に基づいて、予め定めた複数の遅延値のうちの１つを用いて、前記外部クロックをプログラムする手段
を備える集積回路と
を備える電子デバイス。
【請求項２４】
前記予め定めた遅延値を格納する手段を更に備える請求項２３の電子デバイス。
【請求項２５】
前記電子部品は、少なくとも１つのメモリデバイスを備える請求項２３の電子デバイス。
【請求項２６】
前記電子部品は、ＳＤＲＡＭ、バーストＮＯＲ、バーストＰＳＲＡＭ、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、又はＶＲＡＭのうちの少なくとも１つを備える請求項２５の電子デバイス。
【請求項２７】
電子部品との複数の読取／書込動作を通じて、前記遅延範囲を決定する手段を更に備える請求項２５の電子デバイス。
【請求項２８】
前記読取動作の各々を、合格状態又は失敗状態として評価することにより、前記遅延範囲を決定する手段を更に備える請求項２７の電子デバイス。
【請求項２９】
前記遅延範囲の上部境界及び下部境界を決定する手段と、
前記遅延範囲の境界に基づき、予め定めた複数の遅延値のうちの１つを用いて、前記外部クロックをプログラムする手段と
を更に備える請求項２３の電子デバイス。
【請求項３０】
前記遅延範囲の上部境界が、前記システムクロックと前記外部クロックとの間のプログラム可能な最大遅延を超えているかの関数として、前記予め定めた複数の遅延値のうちの１つを決定する手段を更に備える請求項２９の電子デバイス。
【請求項３１】
前記遅延範囲の下部境界が、前記システムクロックと前記外部クロックとの間のプログラム可能な最小遅延未満であるかの関数として、前記予め定めた複数の遅延値のうちの１つを決定する手段を更に備える請求項２９の電子デバイス。
【請求項３２】
前記予め定めた遅延値の各々は、前記集積回路を特徴付ける速度の範囲、および前記電子部品を特徴付ける速度の範囲と関連する請求項２３の電子デバイス。
【請求項３３】
無線電話、携帯情報端末、電子メールデバイス、又はウェブ対応デバイスを備える請求項２３の電子デバイス。
【請求項３４】
集積回路を電子部品に較正する方法を実行する、プロセッサによって実行可能な命令からなるプログラムを組み込んだコンピュータ読取可能媒体であって、
前記集積回路は、システムクロックと、前記システムクロックからプログラム可能な遅延を有する外部クロックとを含み、前記外部クロックは、前記電子部品に提供され、それらの間の通信をサポートし、
前記方法は、
前記集積回路と前記電子部品とが通信可能な、前記外部クロックと前記システムクロックとの間の遅延範囲を決定することと、
前記遅延範囲に基づいて、予め定めた複数の遅延値のうちの１つを用いて、前記外部クロックをプログラムすることと
を含むコンピュータ読取可能媒体。
【請求項３５】
前記電子部品はメモリを備え、前記集積回路は更に、前記システムクロックからプログラム可能な遅延を有するフィードバッククロックを更に含み、
前記集積回路と前記メモリとの間の通信は、前記メモリとの読み書きのために前記外部クロックを使用し、かつ前記集積回路において前記メモリから読み取られたデータをサンプルするために前記フィードバッククロックを使用することによって実施され、
前記方法は更に、前記遅延範囲の関数として前記フィードバッククロック遅延を較正することを含む請求項３４のコンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、集積回路を電子部品に較正するためのシステム及び技術に関する。
【背景技術】
【０００２】
集積回路は、ディスクリートデバイスで可能ではなかった新たな用途を可能にすることによって、エレクトロニクス産業を革新した。集積化によって、何百万もの電子部品から成る複雑な回路を、シングルチップの半導体材料へパッケージすることが可能となった。更に、集積化は、単一のシリコンウェハ上に、何百ものチップを製造するという利点を与える。これは、完成した回路の各々のコストを大幅に低減し、かつその信頼性を高める。
【０００３】
集積回路は、例えば汎用目的及び特定用途のプロセッサのような精巧な回路を実装するために、今日、電子デバイスにおいて広く使用されている。チップ上に統合されたコントローラは、例えば外部メモリ等のようなオフチップ部品に様々なプロセッサをインタフェースさせるために使用されうる。コントローラによって生成されるクロックは、これらオフチップ部品にアクセスするために使用されうる。これらクロックは、最悪ケースの温度及び電圧条件の下でコントローラがオフチップ部品と通信できることを保証するために、ある許容差内で、特定の公称速度で動作すべきである。
【０００４】
シリコンウェハ製造処理における固有の処理により、単一のウェハから生成されたチップのセットは、異なる処理速度能力の範囲に陥るかもしれない。用途によって、幾つかの製造者は、公称許容範囲外の低速チップ及び高速チップを廃棄するように強いられうる。これは、大量の無駄をもたらし、コスト的にも非常に無駄である。
【０００５】
公称チップを製造しないウェハの一部を持ち続けようとする際、幾つかの製造者は、速度ビニング方法を適用する。ここでは、単一ウェハから製造された様々なチップが、等級付けられた（graded）処理速度に従ってテストされバッチされる。速度に従ってチップをバッチするこの方法は、時間の浪費であり、コストがかかる。割引価格で低速チップ及び高速チップを販売すると、更なるコストを招く。
【０００６】
遅延は、電子デバイスを構築する集積回路と外部部品との間の誤りのない通信を保証するために必要とされるタイミングを実現するために使用される。遅延は、集積回路の速度と電圧、及び外部部品の速度を含む多くの要因の関数である。これら遅延は、例えば、そのような通信をテストし、このテストの結果から遅延を導出する較正処理を用いて決定される。多くの集積回路及び外部部品にわたるそのようなパラメータの変化は、所定の電子デバイスに最適ではない予め定めた遅延となりうる。しかし、各集積回路の実際の速度と電圧、あるいは外部部品の速度を前もって知ることは現実的ではない。従って、チップメーカは、そのように予め定めた遅延が、多くの電子デバイスに最適ではなくても、そのようなパラメータの予測される範囲にわたって、誤りなく動作するプログラム遅延を決定することを受け入れなければならなかった。
【発明の開示】
【０００７】
本特許出願は、本明細書の譲受人に譲渡され、本明細書に参照によって明確に組み込まれた２００４年１１月５日出願の「Adaptive Memory Calibration Using Bins」と題された仮出願６０／６２５，２２９号の優先権を主張する。
【０００８】
本発明の１つの局面では、電子デバイスは、電子部品と集積回路とを備える。集積回路は、システムクロックと、前記システムクロックからプログラム可能な遅延を有する外部クロックとを生成するように構成されている。この集積回路は更に、外部クロックを電子部品に提供し、集積回路と電子部品とは通信することができる、システムクロックと外部クロックとの間の遅延範囲を決定し、遅延範囲に基づいて、予め定めた複数の遅延値のうちの１つを用いて、外部クロックをプログラムするように構成されている。
【０００９】
本発明の別の局面では、システムクロックを有する集積回路を電子部品へ較正する方法は、集積回路に外部クロックを生成することを含む。この外部クロックは、システムクロックからプログラム可能な遅延を有する。この方法は更に、集積回路から電子部品へ外部クロックを提供し、それらの間の通信をサポートすることと、集積回路と電子部品とが通信することができる、システムクロックと外部クロックとの間の遅延範囲を決定することと、この遅延範囲に基づいて、予め定めた複数の遅延値のうちの１つを用いて、外部クロックをプログラムすることとを含む。
【００１０】
また本発明の別の局面では、電子デバイスは、電子部品と集積回路とを備える。この集積回路は、システムクロックを生成する手段と、システムクロックからプログラム可能な遅延を有する外部クロックを集積回路に生成する手段と、集積回路から電子部品へ外部クロックを提供し、それらの間の通信をサポートする手段と、集積回路と電子部品とが通信することができる、システムクロックと外部クロックとの間の遅延範囲を決定する手段と、この遅延範囲に基づいて、予め定めた複数の遅延値のうちの１つを用いて、外部クロックをプログラムする手段とを備える。
【００１１】
本発明の別の局面では、コンピュータ読取可能媒体が、プロセッサによって、集積回路を電子部品へ較正する方法を実行することが可能な命令からなるプログラムを組み込んでいる。この集積回路は、システムクロックと、前記システムクロックからのプログラム可能な遅延を有する外部クロックとを含む。外部クロックは、電子部品に提供され、それらの間の通信をサポートする。この方法は、集積回路と電子部品とが通信することができる、システムクロックと外部クロックとの間の遅延範囲を決定することと、この遅延範囲に基づいて、予め定めた複数の遅延値のうちの１つを用いて、外部クロックをプログラムすることとを含む。
【００１２】
本発明の様々な実施形態が示され、例示によって説明された以下の詳細記載から、本発明の他の実施形態が、当業者に容易に明らかになるであろうことが理解される。理解されるように、本発明は、本発明の精神及び範囲から逸脱することなく、その他の異なる実施形態を実施することができ、その幾つかの詳細が、他の様々な観点において変更することが可能である。従って、図面及び詳細説明は、本質的な例示として見なされるべきであり、限定と見なされるべきではない。
【発明を実施するための最良の形態】
【００１３】
本発明の局面は、添付図面中において、一例として例示され、限定として例示されない。
【００１４】
添付図面に関連して以下に記載される詳細記述は、本発明の様々な実施形態の説明として意図されており、本発明が実現される唯一の実施形態を表すことを意図していない。詳細説明は、本発明の完全な理解を提供する目的で具体的な詳細を含んでいる。しかしながら、本発明が、これら具体的な詳細無しで実現されうることが、当業者にとって明らかであろう。幾つかの実例では、本発明の概念を不明瞭にしないために、周知の構造及びデバイスが、ブロック図形式で示される。単に便宜性及び明確性のために頭辞語及びその他の記述的用語が使用されうるが、本発明の範囲を制限することを意図してはいない。
【００１５】
次の詳細説明では、本発明の様々な局面が、例えば記憶デバイスのような電子部品に接続されるように構成された集積回路に関して記述されうる。集積回路は、例えば、少なくとも１つのプロセッサを含む特定用途向けＩＣ（ＡＳＩＣ）でありうる。記憶デバイスは、例えば、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）又は同様のデバイスでありうる。これら発明的局面が、これら部品とともに使用するのに好適でありうる一方、当業者であれば、これら発明的局面は、その他様々な電子デバイスにも同様に適用可能であることを容易に理解するであろう。従って、そのような発明的局面は広範な用途を持つという理解の下、集積回路又は電子部品（例えば、外部メモリ又はオフチップメモリ）の具体的種類に対するあらゆる参照は、この発明的局面を例示することのみ意図されている。
【００１６】
図１は、ＡＳＩＣのような集積回路１０２を使用する電子デバイス１００の概念ブロック図である。集積回路１０２は、マイクロプロセッサ１０４、デジタル信号プロセッサ（ＤＳＰ）１０６、トランシーバ１０８、入力／出力（Ｉ／Ｏ）インタフェース１１０、及び外部バスインタフェース（ＥＢＩ）１１２を含みうる。これら部品は全て、内部システムバス（ＩＳＢ）１１４を用いて共に接続されうる。クロックジェネレータ１１６は、システムタイミング用のシステムクロック信号（又は「システムクロック」）を生成するために使用されうる。図１は、電子デバイス１００、又はその部品のどのような具体的な物理的レイアウトをも必要とすると解釈されるべきではない。
【００１７】
マイクロプロセッサ１０４は、電子デバイス１００のためのシステム全体の管理機能と、ユーザ制御とを提供するアプリケーションプログラムを実行するためのプラットフォームとして使用されうる。ＤＳＰ１０６は、マイクロプロセッサ１０４上の処理デマンドを低減するために、アプリケーション特有のアルゴリズムを実行する組込式通信ソフトウェアレイヤを用いて実現されうる。マイクロプロセッサ１０４及びＤＳＰ１０６の何れか一方、又はその両方もまた、ここに記載したアルゴリズムを実行するために使用される。トランシーバ１０８は、無線電話、端末、例えば携帯情報端末又は他の類似のデバイスのような電子メールデバイス又はＷｅｂ対応デバイスの場合におけるラジオリンクのような外部媒体へのアクセスを提供するために使用されうる。幾つかの実施形態では、トランシーバ１０８は、イーサネット（登録商標）、ケーブルモデム線、光ファイバ、デジタル加入者回線（ＤＳＬ）、公衆交換電話網（ＰＳＴＮ）、あるいはその他の通信媒体へのアクセスを提供しうる。他の実施形態では、電子デバイスは、トランシーバの無い独立型であり、外部通信をサポートしうる。Ｉ／Ｏインタフェース１１０は、様々なユーザインタフェースをサポートするために使用されうる。ユーザインタフェースは、キーパッド、マウス、タッチスクリーン、オーディオスピーカ又はヘッドセット、マイクロホン、カメラ等を含みうる。
【００１８】
ＥＢＩ１１２は、ＩＳＢ１１４の上の部品間のアクセスを提供するために使用されうる。ＥＢＩ１１２は、ＩＳＢ１１４と、例えば外部部品１１８のような１又は複数のオフチップ部品のような集積回路１０２の外部部品との間のインタフェースを提供するコントローラ１１３を含みうる。インタフェースは、クロックバス１２０、アドレスバス１２２、制御バス１２４、及びデータバス１２６を含みうる。図示していないが、ＥＢＩ１１２は更に、液晶ディスプレイ（ＬＣＤ）及び／又はその他のユーザインタフェースデバイスへインタフェースを供給しうる。
【００１９】
電子デバイス１００の少なくとも１つの実施形態では、外部部品１１８は、ＳＤＲＡＭのようなメモリでありうる。あるいは、この外部部品は、バーストＮＯＲ、バーストＰＳＲＡＭ、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＶＲＡＭ、あるいは他のメモリ部品又はデバイス、あるいはメモリアレイでありうる。前述した何れの場合においても、コントローラ１１３は、クロックジェネレータ１１６から、システムクロックの関数として、フィードバッククロック信号（あるいは「フィードバッククロック」）、及び外部クロック信号（あるいは「外部クロック」）を生成するために使用されうる。外部クロックは、以降ＳＤＲＡＭ１１８として示す外部部品１１８との読み書きのために、クロックバス１２０によって外部部品１１８へ提供される。フィードバッククロックは、ＳＤＲＡＭ１１８から読まれるデータをサンプルするために、コントローラ１１３によって使用されうる。
【００２０】
ＳＤＲＡＭ１１８に書き込むためのタイミング要求の一例が図２に示される。外部クロック２０４によって表される外部クロックは、システムクロック２０２によって表されるシステムクロックから遅れる。ＳＤＲＡＭ１１８に書き込まれるデータは、データ２０６（又はデータ信号）によって表され、システムクロックの遷移直後に、時間ｔ０において、コントローラ１１３からデータバス１２０（図１参照）へリリースされる。システムクロックの遷移と、ｔ０との間の短い遅延２１０は、コントローラ１１３の伝播遅延による。データバス１２０（図１参照）は、追加伝搬遅延を加えることにより、データ２０６を、時間ｔ１におけるＳＤＲＡＭへの入力時に到着させる。ＳＤＲＡＭへの入力データは、図２において、データ２０６のクロスハッチングで示される。
【００２１】
信頼できる動作を保証するために、データ２０６は、外部クロック遷移前の短時間の間、ＳＤＲＡＭ１１８への入力時において安定していなければならない。これは「最小セットアップ時間」と呼ばれ、図２においてｔｓｅｔ−ｕｐと示される。また、データ２０６が、外部クロック遷移に続いて、すなわち、ｔｓｅｔ−ｕｐ後に安定を維持しなければならない期間が存在する。これは「最小ホールド時間」と呼ばれ、図２においてｔｈｏｌｄと示される。最小セットアップ時間及び最小ホールド時間が満足されない場合、ＳＤＲＡＭへの書込動作は保証されない。従って、図２より、最小セットアップ時間を満足するために、システムクロック２０２と外部クロック２０４との間に最小遅延要求が存在すること、及び最小ホールド時間を満足するために、これら２つの間に最大遅延が存在することが容易に理解される。遅延はプログラム可能かもしれないし、外部クロック２０４の影部分２０８によって図２に示すように、これらの境界の間の任意の場所に設定することもできる。
【００２２】
ＳＤＲＡＭ１１８からの読取タイミング要求の一例を図３に示す。図２に関して以前に説明したように、外部クロック２０４は、システムクロック２０２から遅れうる。フィードバッククロック３０２もまた、図３に示すように、システムクロック２０２から遅れうる。フィードバッククロック３０２は、ＳＤＲＡＭ１１８からコントローラ１１３にデータを読み取るために使用されうる。データ２０６は、外部クロック２０４の遷移後直ちに、時間ｔ０において、ＳＤＲＡＭ１１８からデータバス１２０（図１参照）へリリースされうる。ＳＤＲＡＭ１１８及びデータバス１２０（図１参照）の伝播遅延により、データ２０６は、時間ｔ１において、コントローラ１１３への入力時に到着する。コントローラ１１３への入力時におけるデータ（データ２０６のクロスハッチングによって示される）は、フィードバッククロック遷移前の短期間の間、安定を保たねばならない。この期間は、コントローラ１１３の最小セットアップ時間ｔｓｅｔ−ｕｐによって定義される。データ２０６はまた、フィードバッククロック３０２遷移の後、コントローラ１１３の最小ホールド時間ｔｈｏｌｄによって定義される期間の間、安定を保たねばならない。このデータが一旦、フィードバッククロック３０２の遷移とともにコントローラ１１３に読み取られると、システムクロックによって再サンプルされうる。この再サンプル処理は、最小セットアップ時間を含むそれ自身の要求を持ち、サンプルされたデータは、システムクロック２０２の次の遷移の前、安定を保たねばならない。従って、図３より、最小セットアップ時間を満足するために、システムクロック２０２とフィードバッククロック３０２との間に最小遅延要求が存在すること、及び最小ホールド時間と再サンプリングセットアップ時間を満足するために、これら２つの間に最大遅延が存在することが容易に理解される。遅延はコントローラ１１３内でプログラム可能かもしれないし、影部分３０４によって図３に示すように、これらの境界の間の任意の場所に設定することもできる。
【００２３】
図４は、コントローラ１１３の実施形態の機能ブロック図である。図示する実施形態では、コントローラ１１３は、同期コントローラ４０２及び非同期コントローラ４０４に分割されうる。この分割は単に設計上の選択であり、当業者であれば、本開示の全体にわたって記載された様々な機能を実行するために任意の構成が適用されうることを理解するであろう。コントローラ４０２，４０４は、アドレスバス１２２、制御バス１２４、及びデータバス１２６を、当該技術で周知の手段によってＩＳＢ１１４にインタフェースする。
【００２４】
コントローラ１１３は、外部クロック２０４及びフィードバッククロック３０２を生成するために使用されうる。マルチプレクサ４０８は、データ２０６が同期コントローラ又は非同期コントローラからクロック出力されるかに依存して、適切なシステムクロック２０２を選択するために使用されうる。図示された実施形態では、マルチプレクサ４０８は、ＳＤＲＡＭ１１８にインタフェースするために、同期コントローラ４０２によって使用されるシステムクロックを選択するように設定される。排他的ＯＲゲート４１０は、反転又は非反転のシステムクロック２０２を出力に提供することによって、柔軟性を備えるために使用されうる。プログラム可能な遅延セル４１２が、外部クロック２０４の遅延を設定するために使用されてもよい。外部クロックの遅延と同様に、マルチプレクサ及び排他的ＯＲゲート制御は、例えば、マイクロプロセッサ１０４上で実行するソフトウェア、あるいはその他任意の手段によってプログラムされうる。バスドライバ４１４は、ＳＤＲＡＭ１１８へ外部クロック２０４を提供するために使用されうる。
【００２５】
フィードバッククロック３０２は、システムクロック２０２あるいは外部クロック２０４の何れかから生成されうる。両クロックは、ソフトウェアプログラマに対して幾つかの多用途性を提供するために、マルチプレクサ４１６に提供される。説明した実施形態では、選択されたシステムクロックは、排他的ＯＲゲート４１８に供給されうる。排他的ＯＲゲート４１８によって、反転クロック又は非反転クロックの何れかが使用されるようになる。プログラム可能な遅延セル４２０が、フィードバッククロックを遅延させるために使用されうる。そして、フィードバッククロック３０２は、コントローラ４０２，４０４にフィードバックされうる。フィードバッククロックの遅延と同様に、マルチプレクサ及び排他的ＯＲゲート制御も、マイクロプロセッサ１０４上で動作するソフトウェア、あるいはその他任意の手段によってプログラムされうる。
【００２６】
既に説明したように、コントローラ１１３及びＳＤＲＡＭ１１８によって課せられるあるタイミング制約は、外部クロック及びフィードバッククロックのための可能な遅延設定を制限しうる。例えば、外部クロックの遅延設定は、ＳＤＲＡＭ１１８のための最小セットアップ時間と最小ホールド時間によって制約されうる。同様に、フィードバッククロックの遅延設定は、コントローラ１１３のための最小セットアップ時間、最小ホールド時間、及び再サンプリングセットアップ時間によって制約されうる。これらのタイミング制約は、処理、電圧、および温度（ＰＶＴ）に応じて変わる場合がある。
【００２７】
集積回路へプログラムされた較正アルゴリズムは、デバイス単位ベースで遅延セルをプログラムするために使用されうる。このアプローチは、個々の電子デバイスに最適なクロック設定を提供しうる。較正アルゴリズムは、電子デバイスの起動の際、あるいは動作中定期的に、フィールド内でイネーブルされる。較正アルゴリズムは、メモリ内にプログラムされた統計情報に部分的に依存しうる。この統計情報は、工場において、電子デバイスの十分なサンプルをテストすることにより得られたデータの収集から導かれうる。この処理は、「キャラクタリゼーション処理」と呼ばれるだろう。
【００２８】
キャラクタリゼーション処理は、電子デバイスのサンプルについてのフィードバッククロックと外部クロックとの間の遅延（Ｋ）の計算で始まる。図３に戻って示すように、読取動作の場合、コントローラ１１３のセットアップ時間ｔｓｅｔ−ｕｐは、フィードバッククロックの遷移に対する、外部クロックの遷移からの遅延に基づくことが容易に分かるであろう。また、ホールド時間ｔｈｏｌｄは、外部クロックの次の遷移に対する、フィードバッククロックの遷移からの遅延に基づくことも分かる。従って、外部クロックとフィードバッククロックとの間の遅延が短縮される場合、セットアップ時間ｔｓｅｔ−ｕｐは減少し、ホールド時間ｔｈｏｌｄ増加する。反対に、外部クロックとフィードバッククロックとの間の遅延が増加する場合、セットアップ時間ｔｓｅｔ−ｕｐは増加し、ホールド時間ｔｈｏｌｄは減少する。従って、キャラクタリゼーション処理の最初のステップは、電子デバイスのサンプルについて、最悪ケースの最小のセットアップ時間及びホールド時間を満足する外部クロックと、フィードバッククロックとの間の遅延を計算することであろう。
【００２９】
フィードバッククロックデバイスと外部クロックデバイスとの間の遅延は、読取動作中、コントローラの最小のセットアップ時間及びホールド時間を満足するように設定されると仮定すると、読取動作の失敗又は成功は、最小の再サンプリングセットアップ時間ｔｓｅｔ−ｕｐが満足されるかどうかに全て依存するであろう。図３に示すように、システムクロックとフィードバッククロックとの間の遅延が小さい場合、再サンプリングセットアップ時間ｔｓｅｔ−ｕｐは非常に長い。しかしながら、２つのクロック間の遅延が大きくなると、再サンプリングセットアップ時間ｔｓｅｔ−ｕｐは、最小の再サンプリングセットアップ時間ｔｓｅｔ−ｕｐに達するまで減少する。これは、システムクロックとフィードバッククロックとの間の「最大遅延」であり、読取動作を保証することができる。
【００３０】
図２に再び示すように、書込動作の成功又は失敗は、２つのタイミングパラメータ、すなわち、ＳＤＲＡＭ１１８への書込のための最小ホールド時間ｔｈｏｌｄ及び最小セットアップ時間ｔｓｅｔ−ｕｐに依存するであろう。しかしながら、実際問題として、最小ホールド時間ｔｈｏｌｄは、通常は、制限因子ではない。なぜなら、このホールド時間は、クロック周期からセットアップ時間ｔｓｅｔ−ｕｐを引いたものにほぼ等しく、最小のホールド時間ｔｈｏｌｄよりも極めて大きいからである。従って、ＳＤＲＡＭ１１８の最小セットアップ時間ｔｓｅｔ−ｕｐは、外部クロック（又はフィードバック）とシステムクロックとの間の「最小遅延」を判定し、書込動作を保証することができる。
【００３１】
キャラクタリゼーション処理中、サンプル内の各電子デバイスについてテスト処理が実行され、システムクロックとフィードバッククロックとの間の遅延値の範囲が判定され、コントローラ１１３は、ＳＤＲＡＭ１１８への書込、及びＳＤＲＡＭ１１８からの読取をすることができる。この範囲は、コントローラ１１３の最小再サンプリングセットアップ時間ｔｓｅｔ−ｕｐによって設定された「最大遅延」と、ＳＤＲＡＭ１１８の最小セットアップ時間ｔｓｅｔ−ｕｐによって設定された「最小遅延」とによって境界付けられた連続的な範囲である。このテスト処理は、テスト中の電子デバイスの各々について、フィードバッククロックと外部クロックとの間の計算された遅延を、コントローラ１１３のプログラム可能な遅延セルにプログラムすることを含みうる。次に、各電子デバイスについて、プログラム可能な遅延セルの調整範囲が、フィードバッククロックと外部クロックとの間の遅延を維持しながら、調整範囲全体にわたってスイープされる。より具体的には、各電子デバイスについて、フィードバッククロックのプログラム可能な遅延セル４２０が、遅延ゼロに設定され、外部クロックのプログラム可能な遅延セル４１２が、Ｋに設定されうる。そして、これらプログラム可能な遅延セルの遅延はともに、インクリメントにより増加されうる。個々のインクリメント遅延について、コントローラ１１３は、ＳＤＲＡＭ１１８への読み書きを行い、その結果に基づいて、成功又は失敗として、各読取及び書込を分類する。
【００３２】
実際問題として、特定の集積回路の速度、及びＳＤＲＡＭの速度には変動があり、特定の電子デバイスに対する最適なフィードバッククロック遅延及び外部クロック遅延に悪影響を与えうる。例えば、図５Ａおよび図５Ｂは、キャラクタリゼーション処理中のサンプルからの２つの異なる電子デバイスからのテスト処理結果を示す。図５Ａおよび図５Ｂの各々では、各棒グラフは、それぞれの電子デバイスが動作するフィードバッククロック遅延の範囲を表す。明らかに、集積回路の周波数（すなわち、クロック速度）の相違が、著しく異なるフィードバッククロック遅延要求を生み出しうる。外部クロック遅延は、図５Ａおよび図５Ｂの各々で示されているが、これらの結果は、代わりに、外部クロック遅延について表すこともできる。なぜなら、例示する実施形態では、外部クロックとフィードバッククロックとの間に既知の関係があるからである。
【００３３】
図５Ａに示すように、キャラクタリゼーション処理中、電子デバイスのテスト処理は、電子デバイスのための最適な電圧を設定することによって開始されうる。そして、フィードバッククロック遅延がゼロに設定される（ｎｆｂ＝０）。ここで、ｎｆｂは、フィードバッククロックについて遅延セルにプログラムされたデジタル値である。更に、外部クロックがＫに設定される（ｎｅｘｔ＝Ｋ）。ここで、ｎｅｘｔは、外部クロックについて遅延セルにプログラムされたデジタル値である。これらの条件の下では、データはＳＤＲＡＭに書き込まれ、次に、ＳＤＲＡＭから読み取られる。読み取られたデータが有効な場合、つまり、誤りがないのであれば、ｎの値に対して「ｐａｓｓ」が記録される。有効でない場合、ｎの値に対して「ｆａｉｌ」が記録される。そして、ｎの値はインクリメントされ、例えばｎ＝１となる。一方、電圧及び周波数は変わらない。そして、この書込、読取、及びｐａｓｓ／ｆａｉｌ記録の各ステップが、新たなｎについて実行される。これは、最大値であるｎ＝３１まで続けられる。これらの結果は、例えば、図５Ａの棒グラフに示される。棒グラフの影部分は、合格（ｐａｓｓ）した値を表し、これは、ほぼｎ＝１からｎ＝２８までに至る。失敗（ｆａｉｌ）した値は、ｎ＝１未満か、あるいはｎ＝２８より上である。システムクロックとフィードバッククロックとの間の「最小遅延」は、最低合格値（ＬＰＶ：lowest passing value）と称されうる。システムクロックとフィードバッククロックとの間の「最大遅延」は、最大合格値（ＨＰＶ：highest passing value）と称されうる。
【００３４】
同じテスト処理が、最適な電圧において、第２の電子デバイスについて行なわれうる。この場合、第２の電子デバイス内の集積回路は、第１のものよりも高速である。この結果は、図５Ｂの棒グラフに示される。棒グラフの影部分は、合格した値を表わし、これは、ほぼｎ＝４からｎ＝３１に至る。失敗した値は、ｎ＝４未満、あるいはｎ＝３１より上になる。図５Ａ及び図５Ｂの第１及び第２の電子デバイスの結果を比較すると、高速な集積回路を備えた第２の電子デバイスのフィードバッククロックとシステムクロックとの間の様々なクロック遅延設定は、低速な集積回路を備えた第１の電子デバイスには作用しないことが明らかである。
【００３５】
キャラクタリゼーション処理は、フィードバッククロック遅延解決のより多くの母集団（population）に達するために、多くの電子デバイスについて実施されうる。このデータは、電子デバイスの異なる分類値に対する遅延範囲を決定するために使用されうる。これらの分類は「値域」（ｂｉｎ）と呼ばれ、電子デバイス用の集積回路およびＳＤＲＡＭの速度に基づく。各値域は、テストされたデバイスの組合せを表しうる。実例となる実施形態では、以下に示すように集積回路とＳＤＲＡＭとの組み合わせを表す４つの値域が定義されている。（１）低速集積回路と高速ＳＤＲＡＭ、（２）低速／公称集積回路と低速ＳＤＲＡＭ、（３）高速／公称集積回路と高速ＳＤＲＡＭ、（４）高速／公称集積回路と低速ＳＤＲＡＭ）。もちろん、その他の組合せも定義することが可能であり、幾つかの値域が定義されうる。
【００３６】
キャラクタリゼーション処理の間、電子デバイスの十分多くのサンプルをテストすることによって、集積回路及びＳＤＲＡＭの各組み合わせに対する遅延値の分布が生成される。そのような分布から値域が定義されうる。もちろん、値域の幅（すなわち、システムクロックとフィードバッククロックとの間の遅延値の範囲）を決定するために、テストデータに適用されうる多くの周知の統計的アプローチが存在する。十分なテストデータが利用可能ではない場合、値域幅及び対応する遅延を推定するために外挿が使用されうる。
【００３７】
図５Ｃは、値域１，２，３および４を示す棒グラフ５５０である。ここでは、各値域は、それぞれ定義された値域幅を持つ。値域１の幅は約４〜８、値域２の幅は約８〜１２、値域３の幅は約１２〜１６、値域４の幅は約１６〜２０である。各値域内では、システムクロックとフィードバッククロックとの間の遅延設定が選択されうる。この遅延設定は、値域の中心から選択されうる。一例として、低速集積回路と高速ＳＤＲＡＭとを有するものとして特徴付けられた電子デバイスは、値域１として分類される。そして、システムクロックとフィードバッククロックとの間の遅延（すなわち、値域１の中心における遅延値）が６に設定されれば、この電子デバイスは、適切に動作すべきである。この場合、システムクロックと外部クロックとの間の遅延は６＋Ｋになるだろう。約２ナノ秒のセットアップ時間と１ナノ秒のホールド時間を達成するため、Ｋが４に設定されると、以下に示すような遅延設定が各値域について設定される。値域１→低速集積回路と高速ＳＤＲＡＭ、フィードバッククロック遅延＝６、外部クロック遅延＝１０。値域２→低速／公称集積回路と低速ＳＤＲＡＭ、フィードバッククロック遅延＝１０、外部クロック遅延＝１４。値域３→公称／高速集積回路と高速ＳＤＲＡＭ、フィードバッククロック遅延＝１４、外部クロック遅延＝１８。値域４→公称／高速集積回路と低速ＳＤＲＡＭ、フィードバッククロック遅延＝１８、外部クロック遅延＝２２。
【００３８】
キャラクタリゼーション処理中に決定されたクロック設定は、フィードバックデバイスと外部デバイスとの遅延を、デバイスベースでフィールド内に設定するために電子デバイスにプログラムされた適応性較正アルゴリズムによって処理されうる。これらのクロック設定及び値域定義は、電子デバイス内のメモリに格納される。あるいは、適応性較正アルゴリズムに含まれる。
【００３９】
図６は、フィールド内で、特定の電子デバイスと共に使用される適応性較正アルゴリズムを示すフローチャート６００を提供する。本明細書で説明した他の全てのアルゴリズム、処理、及び方法とともに、この適応性較正アルゴリズム７００は、ソフトウェア、ハードウェア、ファームウェア、又はこれら任意の組み合わせで具体化されうる。適応性較正アルゴリズム６００は、図５Ａおよび図５Ｂの棒グラフの決定のための上述したものと類似している。適応性較正アルゴリズム６００は、電子デバイス１００の最初の起動時に実行されうる。適応性較正アルゴリズム６００はまた、次の起動時に、ランダムに、周期的に、あるいは電圧、温度、速度のような感知条件の変動に応じて実行されうる。
【００４０】
この例では、適応性較正アルゴリズムはまず、ステップ６０４において、システムクロックとフィードバックとの間の遅延をゼロに（ｎｆｂ＝０）、システムクロックと外部クロックとの間の遅延をＫ（ｎｅｘｔ＝Ｋ）に設定する。ステップ６０６では、フィードバッククロックが、調整範囲全体にわたってスイープされたかをテストする。これは、ｎｆｂが３１を超えたかを判定することによってなされうる。ステップ６０６において、フィードバッククロック遅延が、調整範囲全体にわたってスイープされていないと仮定すると、処理６００はステップ６０８に進み、集積回路１０２がＳＤＲＡＭ１１８にテストデータを書き込む。そして、この処理６００は、ステップ６１０に続き、集積回路１０２が、ＳＤＲＡＭ１１８からテストデータを読み取る。
【００４１】
読み取られたテストデータは、書き込まれたものと比較される。ステップ６１２では、読み取られたデータが有効であれば（すなわち、正しければ）、処理６００はステップ６１４に進み、フィードバック及び外部クロックの設定における動作について「ｐａｓｓ」状態が付される。読み取られたデータが、書き込まれたものと一致しなかった場合、テストは失敗し、ステップ６１６において、フィードバック及び外部クロックの設定について、「ｆａｉｌ」状態が記録される。何れの場合も、その後、ステップ６１８において、フィードバッククロック遅延値及び外部クロック遅延値がインクリメントされ、処理６００はステップ６０６に戻る。このように、適応性較正アルゴリズム６００は、遅延範囲全体をスイープする。一旦完了すると、処理６００はステップ６２０に進み、電子デバイスについて得られたＬＰＶとＨＰＶとが決定される。
【００４２】
ＬＰＶとＨＰＶとが一旦明らかになると、適応性較正アルゴリズム７００は、最終的なクロック設定を決定するために使用されうる。適応性較正アルゴリズム７００は、上述した値域定義で反映されたようなメモリデバイス及び集積回路の速度と、ＬＰＶと、ＨＰＶとの間の関係の周知の原則に基づいてテストを実行する。
【００４３】
ステップ７０２では、電子デバイス１００のＬＰＶおよびＨＰＶが取得される。この例示する実施形態が、図６の処理を用いてＬＰＶとＨＰＶとを決定する一方、適応性較正アルゴリズムは、電子デバイス１００のＬＰＶおよびＨＰＶが、図６の処理によって決定されることを必要としない。ＬＰＶ値とＨＰＶ値とがその他の手法で決定されることも可能である。ＬＰＶとＨＰＶとは、電子デバイス１００にどの値域が適切であるか、更に、その電子デバイス１００にどの遅延設定が適切であるかを判定するために使用される。これは、調整範囲全体に対してＬＰＶとＨＰＶとをテストする（すなわち、ｎｆｂが０〜３１からスイープされる）ことによって達成される。
【００４４】
ステップ７０４では、ＨＰＶが３１以上であるかが判定される。ステップ７０４においてテストが偽であれば、処理はステップ７０６に進み、ＬＰＶが０以下であるか否かが判定される。ＬＰＶが０以上である場合、電子デバイス１００は、ステップ７０８の値域１に属する。ＬＰＶが０未満である場合、電子デバイス１００は、ステップ７１０に値域２に属する。ステップ７０４では、ＨＰＶが３１以上である場合、アルゴリズムはステップ７１２に進み、ＬＰＶに関する判定がなされる。ＬＰＶが０以下である場合、電子デバイス１００は、ステップ７１４の値域３に属する。そうでない場合、電子デバイス１００は、ステップ７１６の値域４に属する。
【００４５】
一旦適切な値域が決定されると、集積回路１０２は、その値域のために、予め定めた設定でクロック遅延を設定する。この例では、値域の中心が、遅延設定である。ステップ７２０では、フィードバッククロック遅延が得られる。また、ステップ７２２では、フィードバッククロック遅延およびオフセットＫから外部クロックが決定される。ステップ７２４では、プログラム可能な外部クロック遅延セル４１２およびプログラム可能なフィードバッククロック遅延セル４２０が、ステップ７２２からの値を用いて設定される。
【００４６】
明らかであるが、上述したアルゴリズムは、フィードバッククロック遅延＝外部クロック遅延−Ｋであり、外部クロック遅延を決定し、この外部クロック遅延からフィードバッククロック遅延を決定するものとして表される。フィードバッククロックと外部クロックとの間には定義された関係があり、一方が与えられると、他方が得られるので、何れか一方のアプローチで十分であろう。
【００４７】
図７に戻り、かつ図５Ｃに関して上述した値域定義を用いると、電子デバイス１００が値域１になる場合、フィードバッククロック遅延＝６、外部クロック遅延＝１０となり、電子デバイス１００が値域２になる場合、フィードバッククロック遅延＝１０、外部クロック遅延＝１４となり、電子デバイス１００が値域３になる場合、フィードバッククロック遅延＝１４、外部クロック遅延＝１８となり、電子デバイス１００が値域４になる場合、フィードバッククロック遅延＝１８、フィードバッククロック遅延＝２２となる。
【００４８】
上述したように、この処理は、最初の起動時のみならず、以後の起動時においても同様に実行されうる。例えば、適応性較正アルゴリズムは、起動時毎に、周期的に、ランダムに、あるいは感知条件に応じて実行されうる。そのような感知条件は、集積回路又は外部部品の速度、温度、電圧、あるいは集積回路と外部部品との間の通信の誤りの感知でありうる。
【００４９】
ここで開示された実施形態に関連して記述された様々の説明的論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、アプリケーションに固有の集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）あるいはその他のプログラマブル論理デバイス、ディスクリートゲートあるいはトランジスタロジック、ディスクリートハードウェア部品、又は上述された機能を実現するために設計された上記何れかの組み合わせを用いて実現又は実行されうる。汎用プロセッサとしてマイクロプロセッサを用いることが可能であるが、代わりに、従来技術によるプロセッサ、コントローラ、マイクロコントローラ、あるいは状態機器を用いることも可能である。プロセッサは、たとえばＤＳＰとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアに接続された１つ以上のマイクロプロセッサ、またはこのような任意の構成である計算デバイスの組み合わせとして実現することも可能である。
【００５０】
ここで開示された実施形態に関連して記述された方法は、ハードウェアや、プロセッサによって実行されるソフトウェアモジュールや、これらの組み合わせによって直接的に具現化される。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、あるいは当該技術分野で知られているその他の型式の記憶媒体に収納されうる。記憶媒体は、プロセッサがそこから情報を読み取り、またそこに情報を書き込むことができるようにプロセッサに結合される。または、記憶媒体はプロセッサに統合されうる。このプロセッサと記憶媒体は、ＡＳＩＣ内に存在することができる。
【００５１】
開示された実施形態における上述の記載は、当該技術分野におけるいかなる人であっても、本発明の活用または利用を可能とするように提供される。これらの実施形態への様々な変形例もまた、当該技術分野における熟練者に対しては明らかであって、ここで定義された一般的な原理は、本発明の主旨または範囲を逸脱せずに他の実施形態にも適用されうる。このように、本発明は、ここで示された実施形態に制限されるものではなく、ここで記載された原理と新規の特徴に一致した最も広い範囲に相当するものを意図している。
【図面の簡単な説明】
【００５２】
【図１】図１は、集積回路を使用する電子デバイスの例を図示する概念ブロック図である。
【図２】図２は、オフチップメモリに書き込むタイミングパラメータの例を図示するタイミングブロック図である。
【図３】図３は、オフチップメモリから読み取るタイミングパラメータの例を図示するタイミングブロック図である。
【図４】図４は、コントローラの動作の例を図示する機能ブロック図である。
【図５Ａ】図５Ａは、異なる電圧および速度における集積回路の代表的な遅延範囲を示す棒グラフである。
【図５Ｂ】図５Ｂは、異なる電圧および速度における集積回路の代表的な遅延範囲を示す棒グラフである。
【図５Ｃ】図５Ｃは、本発明に従って値域に分割された遅延範囲を示す棒グラフである。
【図６】図６は、図７の適応性較正アルゴリズムに先行する較正アルゴリズムの例を図示するフローチャートである。
【図７】図７は、本発明に従った適応性較正アルゴリズムの例を図示するフローチャートである。
【図１】
2008519457.tif 000003
【図２】
2008519457.tif 000004
【図３】
2008519457.tif 000005
【図４】
2008519457.tif 000006
【図５Ａ】
2008519457.tif 000007
【図５Ｂ】
2008519457.tif 000008
【図５Ｃ】
2008519457.tif 000009
【図６】
2008519457.tif 000010
【図７】
2008519457.tif 000011
【国際調査報告】
2008519457.tif 000012
2008519457.tif 000013