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