(57)【要約】【課題】オンダイのプログラム可能なヒューズを提供するためのコンピュータにより実行される方法等を提供する【解決手段】本願で記載される一実施形態では、オンダイのプログラム可能なヒューズが使用されてよい。本発明の実施形態に従う方法は、ダイ上のプログラマにより前記ダイ上にあるヒューズアレイをプログラミングするステップを有する。オンダイのプログラム可能なヒューズは、ヒューズが製造されて出荷された後に、チップ製造者以外の者によってプログラム可能であってよい。なお、他の不揮発性メモリも使用されてよい。【選択図】図１
2014174997.tif 000002
【特許請求の範囲】
【請求項１】
ダイ上のプログラマにより前記ダイ上にあるヒューズアレイをプログラミングするステップ
を有するコンピュータにより実行される方法。
【請求項２】
オンダイのプログラム可能なヒューズアレイを有する第１ヒューズアレイにおいてヒューズアドレスを選択し、前記第１ヒューズアレイとは別にのみアクセス可能な第２ヒューズアレイを含めるステップ
を更に有する請求項１に記載のコンピュータにより実行される方法。
【請求項３】
複数のインターフェースの中の１つが前記プログラマへ信号を供給することを可能にするステップ
を更に有する請求項１に記載のコンピュータにより実行される方法。
【請求項４】
１よりも多いインターフェースが信号を同時に前記プログラマへ供給することを防ぐステップ
を更に有する請求項３に記載のコンピュータにより実行される方法。
【請求項５】
前記複数のインターフェースが異なるプログラミング電圧又はプログラミング存続期間を使用することを可能にするステップ
を更に有する請求項３に記載のコンピュータにより実行される方法。
【請求項６】
少なくとも１つの補数ビットを含む、ヒューズ状態を記録するためのビットの第１列を供給するステップと、
アドレスラインに沿って前記第１列を、及び異なる方向におけるアドレスラインにおいて前記第１列の補数である第２列を記憶して、前記第１列及び前記第２列の一方が横列において記憶され、他方が縦列において記憶されるようにするステップと
を更に有する請求項１に記載のコンピュータにより実行される方法。
【請求項７】
記憶するビットを受け取り、該ビットからマルチビットの第１列を生成するステップ
を更に有する請求項６に記載のコンピュータにより実行される方法。
【請求項８】
前記横列を読み出し、前記ビットを取り出し、前記縦列を読み出すステップ
を更に有する請求項７に記載のコンピュータにより実行される方法。
【請求項９】
ヒューズアレイと、
ヒューズ製造者が前記ヒューズアレイをプログラミングすることを可能にする第１ヒューズコントローラと、
前記第１ヒューズコントローラから分離され、ユーザが前記ヒューズアレイをプログラミングすることを可能にする第２ヒューズコントローラと
を有する装置。
【請求項１０】
少なくとも２つの異なる状態のビットの列として第１アドレスラインに沿って値を記憶し、前記第１アドレスラインに垂直な第２アドレスラインにおいて補数列を記憶する制御を有する請求項９に記載の装置。
【請求項１１】
記憶するビットを受け取り、該ビットからマルチビットの第１列を生成する、
請求項１０に記載の装置。
【請求項１２】
前記制御は、前記第１アドレスラインを読み出し、前記ビットを取り出し、前記第２アドレスラインを読み出す、
請求項１１に記載の装置。
【請求項１３】
前記制御は、コード及びその補数を比較する、
請求項１２に記載の装置。
【請求項１４】
前記制御は、前記ビットの列と前記補数列とがコード及びコード補数と一致しない場合に前記コードを拒絶する、
請求項１３に記載の装置。
【請求項１５】
前記制御は、ヒューズ検知を開始するようヒューズアドレスをランダムに選択する、
請求項９に記載の装置。
【請求項１６】
前記ヒューズアレイは、オンダイのプログラム可能なヒューズアレイである、
請求項９に記載の装置。
【請求項１７】
オンダイでプログラム可能でない第２のアレイを有し、
前記ヒューズアレイ及び前記第２のアレイは異なるパスワードによりアクセスされる、
請求項９に記載の装置。
【請求項１８】
オペレーティングシステムを有する請求項９に記載の装置。
【請求項１９】
バッテリを有する請求項９に記載の装置。
【請求項２０】
ファームウェアと、該ファームウェアを更新するモジュールとを有する請求項９に記載の装置。
【請求項２１】
プロセッサが
オンダイのプログラマによりヒューズアレイをプログラミングするシーケンス
を実行することを可能にする命令を記憶する１又はそれ以上の非一時的なコンピュータ可読媒体。
【請求項２２】
前記シーケンスは、オンダイのプログラム可能なヒューズアレイを有する第１ヒューズアレイにおいてヒューズアドレスを選択し、前記第１ヒューズアレイとは別にのみアクセス可能な第２ヒューズアレイを含める、
請求項２１に記載のコンピュータ可読媒体。
【請求項２３】
前記シーケンスは、複数のインターフェースの中の１つが前記プログラマへ信号を供給することを可能にする、
請求項２１に記載のコンピュータ可読媒体。
【請求項２４】
前記シーケンスは、１よりも多いインターフェースが信号を同時に前記プログラマへ供給することを防ぐ、
請求項２３に記載のコンピュータ可読媒体。
【請求項２５】
前記シーケンスは、前記複数のインターフェースが異なるプログラミング電圧又はプログラミング存続期間を使用することを可能にする、
請求項２３に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は概して、ヒューズ検知に関する。
【背景技術】
【０００２】
ヒューズ検知とは、総称的に、横列及び縦列において配置されるビットを含むメモリアレイの検知を指す。一般的に、横列は一度に検知されてよく、その横列のアドレスは多数の異なる方法において選択されてよい。
【０００３】
ヒューズ検知を使用する記憶素子の例には、ヒューズ、不揮発性メモリ、ワンタイムプログラム可能メモリ、及びオンダイのプログラム可能なヒューズがある。現在のヒューズ検知プロトコルの１つの特徴は、ヒューズ検知が毎回同じ順序で実行されることである。選択される横列の順序又はシーケンスは常に同じである。
【０００４】
これは、ヒューズ検知プロトコルを、例として、ＤＥＭＡ（Differential  Electromagnetic  Analysis）、ＤＰＡ（Differential  Power  Analysis）、及びＬＴＭ（Latent  Trait  Models）のような所謂サイドチャネル攻撃メソッドにさらす。ヒューズの値は、ヒューズ検知の間に決定され得る。デバイスを無限リセットに置き、各ループのリセットからの同じ時点にデバイスの同じ場所で測定を行うことによって、ハッカーはデバイス内のヒューズ値のシグニチャを組み上げることができる。細心の注意を払うべきアセットが時々ヒューズに記憶されるので、そのような攻撃に対する保護は極めて重要である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
然るに、本発明は、オンダイのプログラム可能なヒューズを提供するためのコンピュータにより実行される方法、装置、及び非一時的なコンピュータ可読媒体を提供する。
【課題を解決するための手段】
【０００６】
上記の目的を達成するよう、本発明の実施形態は、ダイ上のプログラマにより前記ダイ上にあるヒューズアレイをプログラミングするステップを有するコンピュータにより実行される方法を提供する。
【０００７】
本発明の他の実施形態は、ヒューズアレイと、ヒューズ製造者が前記ヒューズアレイをプログラミングすることを可能にする第１ヒューズコントローラと、前記第１ヒューズコントローラから分離され、ユーザが前記ヒューズアレイをプログラミングすることを可能にする第２ヒューズコントローラとを有する装置を提供する。
【０００８】
本発明の更なる他の実施形態は、プロセッサがオンダイのプログラマによりヒューズアレイをプログラミングするシーケンスを実行することを可能にする命令を記憶する１又はそれ以上の非一時的なコンピュータ可読媒体を提供する。
【発明の効果】
【０００９】
本発明の実施形態によれば、オンダイのプログラム可能なヒューズを提供することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態のための概略図である。
【図２】一実施形態に従う、図１に示されたシーケンスの概略図である。
【図３】一実施形態に従うヒューズアレイの図である。
【図４】一実施形態に従う冗長ヒュージングに関するフローチャートである。
【図５】一実施形態に従ってヒューズアレイを読み出すシーケンスに関するフローチャートである。
【図６】一実施形態に従うオンダイのプログラム可能なヒューズアレイのためのシーケンスに関するフローチャートである。
【図７】一実施形態に従うヒューズアレイのブロック図である。
【図８】本発明の一実施形態の概略図である。
【図９】一実施形態に従うヒューズ検知アレイに関するフローチャートである。
【図１０】一実施形態のための概略図である。
【図１１】一実施形態の正面図である。
【発明を実施するための形態】
【００１１】
幾つかの実施形態が、添付の図面に関連して記載される。
【００１２】
本願で記載される一実施形態では、オンダイのプログラム可能なヒューズが使用されてよい。オンダイのプログラム可能なヒューズは、ヒューズが製造されて出荷された後に、チップ製造者以外の者によってプログラム可能であってよい。なお、他の不揮発性メモリも使用されてよい。
【００１３】
図１を参照すると、ダイ１０は、原の機器製造者（ＯＥＭ；Original  Equipment  Manufacturer）のためのヒューズコントローラ１２と、オンダイの又はユーザによりプログラム可能なヒューズコントローラ１４とを有してよい。オンダイのヒューズコントローラ１４は、個々のヒューズバスへのヒューズマッピング２２へ結合されてよい。これは、異なるインターフェースがオンダイのヒューズコントローラ１４と相互作用することを可能にする。それらのインターフェースは以下で記載及び図示される。
【００１４】
オンダイのヒューズコントローラ１４は、オンダイのプログラム可能なヒューズモジュール３０の自動プログラミングを実行するシーケンサ１６を有してよい。つまり、ユーザは、自身が望むプログラミングを簡単に示すことができ、シーケンサ１６は、ヒューズプログラミングを実際に実行し進めるために必要とされる全てのステップの実施を自動的に引き受ける。またシーケンサ１６はパワーオン状態機械（ＰＯＳＭ）１８へ結合されている。ＰＯＳＭ１８は、ヒューズモジュールの横列をランダムに選択／プログラミングすることに関与してよい。すなわち、プログラミングのための横列の選択は、ハッカーがそのプログラミングと接点を持つことを防ぐ（か又はその可能性を減らす）よう自動的且つランダムに行われてよい。コントローラ１４はまた、ＪＴＡＧ（Joint  Test  Action  Group）ブロックのためのレジスタ２０を有する。
【００１５】
ダイ１０は、ヒューズ電圧レギュレータ２４へ、次いでオンダイのプログラム可能なヒューズモジュール３０へ結合される。外部電圧レギュレータ２６は、ＯＥＭヒューズモジュール２８へ結合されてよい。
【００１６】
幾つかの実施形態において、オンダイのヒューズコントローラ１４及びオンダイのプログラム可能なヒューズモジュール３０は、ＯＥＭヒューズコントローラ１２及びＯＥＭヒューズモジュール２８とは完全に分離され、それらから独立している。これは、ハッカーがＯＥＭヒューズモジュールにアクセスする他の手段を遮断する。
【００１７】
よって、図２を参照すると、一実施形態において、オンダイのプログラム可能なヒューズのための４つの異なるインターフェースが表されている。第１のインターフェースはホストコンピュータ３２である。他はセキュリティコントローラ（ＳＥＣ）インターフェース３４である。更なる他のインターフェースはＯＥＭ  ＪＴＡＧインターフェース３６であり、最後はカスタマＪＴＡＧインターフェース３８である。インターフェース３２〜３８の夫々は、ＯＲゲート４２を介してシーケンサ１６と通信する専用のレジスタ４０へ情報を供給してよい。
【００１８】
ＯＲゲート４２は、一度に１つのインターフェースのみがシーケンサ１６へ信号を供給することができるように制御される。シーケンサ１６との通信は、アービタ４４によって実行されるようなアトミックアクセスのみを介する。アービタ４４は、選択されたインターフェースからのデータをレジスタ４８に記憶する交差検出器４６へ結合される。
【００１９】
データをヒューズモジュール５８へ書き込む時である場合に、ヒューズ読み出し／書き込み（ＲＷ）状態機械５０は、正確な初期電圧が達成されるか又は所望の電圧レベルが多段階ヒューズプログラミングにおいて達成される場合に、電圧レギュレータ（ＶＲ）起動信号をヒューズ電圧レギュレータ（ＶＲ）状態機械５２へ発行する。電圧レギュレータ（ＶＲ）完了信号がヒューズ書き込み／読み出し状態機械５０へ発行される。次いで、ヒューズ書き込み／読み出し状態機械５０は、選択されるヒューズモジュール５８の適切なブロックへプログラミング信号を発行する。同時に、ヒューズ電圧レギュレータ状態機械５２は、一実施形態においてシリアルパラレルインターフェース（ＳＰＩ）マスタバス５４を介して、選択されたヒューズブロックへのプログラミング電圧ＶＣＣＦＨＶを駆動するよう信号をヒューズ電圧レギュレータ５６へ発行する。
【００２０】
レジスタ４０は、インターフェース毎に、電圧レベル及びプログラミング存続期間を含むヒュージング方法の全ての態様を制御する。加えて、各インターフェースは、夫々のインターフェースを無効にするようＯＲゲート４２のようなメカニズムを有してよい。アービタ４４は、１よりも多いインターフェースが同時にトランザクションを発行する場合に、どのインターフェース及びトランザクションのタイプがアクセスを得るのかを決定するために使用されてよい。
【００２１】
幾つかの実施形態において、４つのインターフェースと、２つのトランザクションタイプとが存在する。１つのトランザクションタイプはヒューズアクセスであり、他のトランザクションタイプはヒューズ電圧レギュレータアクセスであり、夫々ＳＰＩマスタを介する。各トランザクションタイプは、各インターフェースによって使用され得る。４つのインターフェースの夫々からのヒューズアクセスに関し、アドレスレジスタのビット３１は、トランザクションが用意できているとアービタ４４に示すために使用されてよい。
【００２２】
アービタ４４は、ビット３１が設定されていると確認すると、トランザクションを受け入れ、それをシーケンサ１６へ送信する。アービタ４４が情報をシーケンサへ送信した後、アービタ４４は、完了ビットが設定されるまで待機する。次いで、アービタ４４は、何らかの送り返された情報を捕捉し、その情報を、トランザクションを開始したインターフェースへ出力する。トランザクションが完了すると、アービタ４４は次のトランザクションを受け入れる。
【００２３】
状態機械５０は、アービタ４４からの入力の全てを取り込み、ユーザによって要求されるように適切なトランザクションを実行する。幾つかの実施形態において、それはヒューズ５８及び電圧レギュレータ状態機械５２と通信し、全ての動作のために適切なタイミングを保つ。幾つかの実施形態において、ヒューズ電圧レギュレータ状態機械５２は、読み出し／書き込み状態機械５０と電圧レギュレータ５６との間の全てのトランザクションを扱い、全てのタイミング要件に関与する。
【００２４】
ヒューズ状態機械書き込みのための擬似コードは、一実施形態において次のとおりである：
【００２５】
【数１】
2014174997.tif 000003
ヒューズ状態機械読み出しのための擬似コードは、一実施形態において次のとおりである：
【００２６】
【数２】
2014174997.tif 000004
ヒューズアレイにおいて重要情報を記憶するために使用されるビットの数は増大しうる。一例として、シングルビットは、ビットの一部が残りのビットにとって補完的であるビットの列へと増大しうる。幾つかの実施形態において、１つのアクセス可能な横列に沿ってビットの列を記憶することに加えて、ビットはまた、一連の横列の読み出しに成功することで読み出される縦列に沿って広げられてよい。加えて、縦列におけるビットはまた、横列における対応するビットを補完するよう作られてよい。その場合、横列にある列ビットと、縦列にあるビットの補列とを読み出し、それらのビット列を比較することによって、攻撃が特定され得る。
【００２７】
例えば、電圧が高められる攻撃では、攻撃者は、縦列におけるビットの夫々を変更するために適切な時に三度電圧を高める必要がある。そして、単に全てのビットを１に変えることは、夫々のコードが１及び０の両方から成るので、不適切なヒューズ値として認識される。同様に、他の攻撃が阻止され得る。
【００２８】
図３を参照すると、ヒューズアレイ集積回路１１０は、頁に沿って縦方向に延在する行と、頁にわたって水平方向に延在する列とにおいて配置され得るビットを含むメモリ又はヒューズアレイ１１２を有してよい。列は、列アドレス回路１１４によって読み出し又は書き込みのためにアクセスされてよい。行は、行アドレス回路１１６によって読み出し又は書き込みのためにアクセスされてよい。回路１１４及び１１６並びにセンス増幅器１１８の動作は、制御１２０によって制御されてよい。制御１２０は、２つの例として、マイクロコントローラ又はマイクロプロセッサであってよい。
【００２９】
図４を参照すると、冗長ヒュージングのためのシーケンス１２２は、ソフトウェア、ファームウェア、又はハードウェアにおいて実施されてよい。ソフトウェア及びファームウェアの実施形態では、それは、磁気、光又は半導体記憶装置のような１又はそれ以上の非一時的なコンピュータ可読媒体において記憶されるコンピュータにより実行される命令によって実施されてよい。一実施形態として、シーケンス１２２は、制御１２０によって実施されてよい。他の変形例も考えられる。
【００３０】
シーケンス１２２は、ダイヤモンド１２４において示されるように、記憶されるべきビットがあるかどうかを決定することで開始する。記憶されるべきビットがある場合は、マルチビットコード列が、ブロック１２６において示されるように作成されてよい。よって、例えば、０がサービス提供を示すよう意図される場合は、コード列は１よりも多いビットから構成され得、例えば、列において中央のビットはコードを示し、他のビットは単にそのコードの補数である。他の変形例は当業者によって考えられてよい。次いで、マルチビットコード列は、ブロック１２８において示されるように、行に沿ってアドレス可能な場所に記憶される。
【００３１】
次に、コード列は、ブロック１３０において示されるように補数へ変換される。例えば、コード０１０は１０１に変換される。次いで、補数コード列は列に沿って記憶されてよい。結果として、列ではなく行が常に読み出される実施形態において、コード補数列を記憶した列全体を取り出すには、一連の行の読み出しに成功しなければならない。次いで、補数コードは、ブロック１３２において示されるように列に記憶される。
【００３２】
コード列にアクセスする時がくると、図５に示されるシーケンス１３４が使用されてよい。図４のシーケンス１２２と同じく、このシーケンス１３４は、ソフトウェア、ファームウェア、及び／又はハードウェアにおいて実施されてよい。ソフトウェア及びファームウェアの実施形態では、それは、磁気、光又は半導体記憶装置のような１又はそれ以上の非一時的なコンピュータ可読媒体において記憶されるコンピュータにより実行される命令によって実施されてよい。先と同じく、幾つかの実施形態において、それは、図３に示される制御１２０によって実施されてよい。
【００３３】
図５のシーケンス１３４は、ブロック１３６において示されるように行を次々に読み出すことで開始する。行は、順次読み出されてよく、あるいは、行を読み出す順序はランダム化されてよく、それにより、行が読み出されるたびに異なる順序が使用される。次いで、コード列及びその補数が、ブロック１３８において示されるように、コードを含む一連の行と、補数を含む一連の列とを読み出すことによって取り出される。コード列及びその補数は、ブロック１４０において示されるように比較される。ダイヤモンド１４２で一致が決定される場合は、コード列は、ブロック１４４において示されるように、有効又は真であるとして受け入れられてよい。そうでない場合は、コード列は、ブロック１４６において示されるように拒絶されてよく、サービスは保留する。
【００３４】
図６を参照すると、幾つかの実施形態に従って、ヒューズ状態機械書き込みプロトコル６０は、ソフトウェア、ファームウェア、及び／又はハードウェアにおいて実施されてよい。ソフトウェア及びファームウェアの実施形態では、それは、磁気、光又は半導体記憶装置のような１又はそれ以上の非一時的なコンピュータ可読媒体において記憶されるコンピュータにより実行される命令によって実施されてよい。例えば、それは、一実施形態において、コントローラ１４のような適切なコントローラ内に記憶されてよい。
【００３５】
状態機械６０のシーケンスは、ブロック６２において示されるように、ユーザがプログラミングされるよう要求するデータをシフトインすることで開始してよい。次いで、電圧レギュレータの電圧が、ブロック６４において示されるように高められる。一度に１つのビットが、ブロック６６において示されるように、選択された電圧レベルでプログラミングされる。これが最後のレベルである場合は、ダイヤモンド６８において決定されるように、フローは終了する。そうでない場合は、電圧レギュレータの電圧は、ブロック６４において次のレベルへ高められ、フローは繰り返す。
【００３６】
プログラミングが完了された後、エラー訂正及び制御（ＥＣＣ；Error  Correction  and  Control）ビットが、ブロック７０において示されるようにプログラミングされる。次いで、まさにプログラミングされたデータが、ブロック７２において示されるように読み出される。最後に、読み出されたプログラミングされたデータはＥＣＣビットを用いて確認される（ブロック７４）。データが正しい場合は（ダイヤモンド７６）、フローは終了し、そうでない場合は、プログラミングを再度行うためにフローは繰り返す。
【００３７】
読み出し動作の間、プログラミングされた各行はリードバックされて比較される。ＥＣＣデータが一致する場合は、データは有効であり、使用可能である。
【００３８】
図７に示されるヒューズアレイアーキテクチャ８０は、通常、複数のモジュールを有する。各モジュールは４つのグループを有してよい。各グループは、通常夫々１０００ビットである４つのヒューズブロックを有してよい。各ヒューズブロックは夫々、３２ビットの３２の行を有してよい。よって、図７に示されるように、参照符号８１を付されたモジュール０は、参照符号８２を付された４つのグループ０〜３を有してよい。各グループは複数のブロック（ＢＬＫ）８４を有する。モジュールはいくつでもヒューズアレイ８０を生成するために組み合わされてよい。
【００３９】
ヒューズブロックへのアクセスはアドレッシングを介する。検知される行のアドレスは、モジュール番号、グループ番号、ブロック番号及び行番号の連続として導出される。ヒューズ行がアドレスを用いてヒューズブロックから検知されると、同じアドレスが、ヒューズの内容をオンチップのランダムアクセスメモリに記憶するために使用されてよい。
【００４０】
従来のヒューズ検知技術の予測可能性は、通常、サイドチャネル攻撃においてハッカーの強みとして使用される。この攻撃手段は、ヒューズ検知アルゴリズムをランダム化することによって制限され得る。一実施形態において、このランダム化は、ヒューズ検知が実行されるたびに線形帰還シフトレジスタカウンタ（ＬＦＳＲ）にシードを与えるために乱数発生器（ＲＮＧ）を使用してよい。ＬＦＳＲは、１つの最上位ビットから次の最上位ビットへレジスタにより信号を進めるようクロック制御される。次いで、一部の出力は排他的論理和をとられ、シフトレジスタ入力へ帰還される。カウンタは、検知すべき次のヒューズ行のアドレスを供給するために使用される。次の擬似コードはアルゴリズムを示す：
【００４１】
【数３】
2014174997.tif 000005
図８に示されるヒューズ検知状態機械８６におけるロジックの全ては、ランダムに計算されたアドレスから基づいてよい。従って、ヒューズが検知されランダムアクセスメモリに記憶される順序は、ロジックに対する影響を有さない。初期ヒューズ検知アドレスをランダム化するために線形帰還シフトレジスタカウンタを用いることは、ハッカーがヒューズの状態を決定することを防ぎ、安全なアセットを守る。
【００４２】
よって、図８に示されるように、状態機械８６は、シードを線形帰還シフトレジスタ（ＬＦＳＲ）カウンタ９０へ供給する乱数発生器（ＲＮＧ）９８を有してよい。このシードは、行選択の開始順序を変更し、ＬＦＳＲの性質のために、行のブロックが検知されるたびに行を検知する順序を変更する。シフトレジスタカウンタ９０はヒューズインターフェース（Ｉ／Ｆ）９２へ供給され、ヒューズインターフェース９２は次いでアドレスをヒューズアレイ８０に供給する。ヒューズアレイ８０の出力は、一実施形態においてランダムアクセスメモリ（ＲＡＭ）９１に記憶されてよい。なお、アドレッシングプロトコルをランダム化するために如何なる技術も使用されてよい。ＲＮＧ９８を伴う１よりも多いＬＦＳＲが幾つかの実施形態において使用されてよい。
【００４３】
ランダム化されたヒューズ検知を実施するための、図９に示されるシーケンス９４は、ソフトウェア、ファームウェア、及び／又はハードウェアにおいて実施されてよい。ソフトウェア及びファームウェアの実施形態では、それは、磁気、光又は半導体記憶装置のような１又はそれ以上の非一時的なコンピュータ可読媒体において記憶されるコンピュータにより実行される命令によって実施されてよい。そのようなデバイスの例には状態機械８６に加えて、他の例として、従来のプロセッサ及び従来のランダムアクセスメモリがある。幾つかの実施形態において、例えば、線形帰還シフトレジスタカウンタはハードウェアデバイスであってよく、他の実施形態では、それは全体として又は部分的にソフトウェアにおいて実施されてよい。
【００４４】
図９に示されるシーケンス９４は、ブロック９６において示されるように、乱数発生されたシードを得ることで開始する。通常、これは、ヒューズアレイにアクセスする要求に応答して起こる。次いで、シードは、ブロック９９において示されるように、アドレスを得るために使用される。一実施形態において、シードは、ランダム生成されたアドレスをヒューズ行アドレスの形で出力する線形帰還シフトレジスタカウンタへ供給されてよい。次いで、このアドレスは、ブロック１００において示されるように、ヒューズアレイ８０へのアドレスを駆動することによってヒューズの選択された行を検知するよう第１の行を選ぶために使用される。続く行は、一実施形態において順番に次々にＬＦＳＲによってランダムに選択されてよい。ＬＦＳＲは同じ行を二度選択せず、むしろそれは毎回、選択されていない行を選択する。ヒューズアレイは、一実施形態において、選択されたデータをランダムアクセスメモリ９１へ出力する。他の実施形態では、列検知が使用されてよい。加えて、二次元ブロック検知も使用されてよく、開始ブロックアドレスはランダムに選択される。
【００４５】
ダイヤモンド１０２での確認は、全ての行がその時点で検知されているかどうかを決定する。そうでない場合は、フローは繰り返し、さもなければフローは終了してよい。
【００４６】
幾つかの実施形態において、複数のランダム選択技術が使用されてよい。例えば、モジュール、グループ及びブロックの１又はそれ以上が、選択されたブロックのランダムに選択された行に加えて選択されてよい。すなわち、幾つかの実施形態において、乱数生成されたシードを伴う別個のＬＳＦＲが、行からブロック、グループ又はモジュールまでの所望の細かさの夫々について使用されてよい。
【００４７】
他の実施形態はＬＦＳＲ以外の他の技術を使用してよい。例えば、乱数発生器が、扱うべき行を選択してよい。記憶装置又はスコアボードは、既に選択された行を記憶してよい。故に、スコアボードを確認することで決定されるように、行が再度選択される場合は、ランダムセレクタはランダムに他の行を選ぶよう命令される。
【００４８】
ヒューズのハッキングに対処する他の技術は、幾つかの場合において、上記のランダム検知順序の概念と組み合わせて使用されてよい。そのような組み合わせは幾つかの場合に相乗効果をもたらし得る。
【００４９】
幾つかの実施形態において、ハッキングに対する複数の防御は組み合わされ得る。例えば、一実施形態において、ヒューズアレイのランダムアドレッシングは、別個にアクセス可能なオンダイ及び非オンダイのプログラム可能ヒューズアレイと組み合わされ得る。他の実施形態では、ランダムにアドレッシングされるヒューズアレイは、冗長ヒューズ符号化を使用してよい。他の実施形態では、ランダムアドレッシング技術は、上記の技術のいずれかと組み合わされてよい。本発明は、オンダイのプログラム可能ヒューズの技術に制限されない。
【００５０】
図１０はシステム７００の実施形態を表す。実施形態において、システム７００はメディアシステムであってよいが、システム７００はこれに限られない。例えば、システム７００は、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、携帯型コンピュータ、パームトップコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、携帯電話機、携帯電話機とＰＤＡの複合機、テレビ受像機、スマートデバイス（例えば、スマートフォン、スマートタブレット又はスマートテレビジョン）、モバイルインターネットデバイス（ＭＩＤ）、メッセージングデバイス、データ通信デバイス、等に組み込まれてよい。
【００５１】
実施形態において、システム７００は、ディスプレイ７２０へ結合されるプラットフォーム７０２を有する。プラットフォーム７０２は、コンテンツサービスデバイス７３０若しくはコンテンツ配信デバイス７４０又は他の同様のコンテンツ源のようなコンテンツデバイスからコンテンツを受信してよい。１又はそれ以上のナビゲーション機能を備えるナビゲーションコントローラ７５０は、例えば、プラットフォーム７０２及び／又はディスプレイ７２０と相互作用するために使用されてよい。それらの構成要素の夫々は以下でより詳細に記載される。
【００５２】
実施形態において、プラットフォーム７０２は、チップセット７０５、プロセッサ７１０、メモリ７１２、記憶装置７１４、グラフィクスサブシステム７１５、アプリケーション７１６及び／又はラジオ７１８の如何なる組み合わせも有してよい。チップセット７０５は、プロセッサ７１０、メモリ７１２、記憶装置７１４、グラフィクスサブシステム７１５、アプリケーション７１６及び／又はラジオ７１８の間の相互通信を提供してよい。例えば、チップセット７０５は、記憶装置７１４との相互通信を提供することができる記憶装置アダプタ（図示せず。）を有してよい。
【００５３】
プロセッサ７１０は、ＣＩＳＣ（Complex  Instruction  Set  Computer）若しくはＲＩＳＣ（Reduced  Instruction  Set  Computer）プロセッサ、ｘ８６命令セット互換プロセッサ、マルチコア、又はあらゆる他のマイクロプロセッサ若しくは中央演算処理装置（ＣＰＵ）として実施されてよい。実施形態において、プロセッサ７１０は、デュアルコアプロセッサ、デュアルコアモバイルプロセッサ、等を有してよい。プロセッサ７１０は、メモリ７１２とともに図４、５、６及び９のシーケンスを実施してよい。
【００５４】
メモリ７１２は、ランダムアクセスメモリ（ＲＡＭ）、動的ＲＡＭ（ＤＲＡＭ）又は静的ＲＡＭ（ＳＲＡＭ）のような揮発性メモリデバイスとして実施されてよい（しかし、それらに限られない）。
【００５５】
記憶装置７１４は、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、内部記憶デバイス、付属記憶デバイス、フラッシュメモリ、バッテリによりバックアップされるＳＤＲＡＭ（同期ＤＲＡＭ）、及び／又はネットワークによりアクセス可能な記憶装置のような不揮発性記憶デバイスとして実施されてよい（しかし、それらに限られない）。実施形態において、記憶装置７１４は、例えば、複数のハードドライブが含まれる場合に、貴重なデジタル媒体のための、記憶性能を強化された保護を高める技術を有してよい。
【００５６】
グラフィクスサブシステム７１５は、表示のために静止画又はビデオのような画像の処理を実行してよい。グラフィクスサブシステム７１５は、例えば、グラフィクス処理ユニット（ＧＰＵ）又はビジュアル処理ユニット（ＶＰＵ）であってよい。アナログ又はデジタルインターフェースが、グラフィクスサブシステム７１５及びディスプレイ７２０を通信上結合するために使用されてよい。例えば、インターフェースは、高精細マルチメディアインターフェース（ＨＤＭＩ）、ディスプレイポート、無線ＨＤＭＩ（登録商標）、及び／又は無線ＨＤに従う技術のいずれであってもよい。グラフィクスサブシステム７１５はプロセッサ７１０又はチップセット７０５に組み込まれてよい。グラフィクスサブシステム７１５は、チップセット７０５へ通信上結合されるスタンドアローンのカードであってよい。
【００５７】
本願で記載されるグラフィクス及び／又はビデオ処理技術は、様々なハードウェアアーキテクチャにおいて実施されてよい。例えば、グラフィクス及び／又はビデオ機能はチップセット７０５内に組み込まれてよい。代替的に、個別のグラフィクス及び／又はビデオプロセッサが使用されてよい。更なる他の実施形態として、グラフィクス及び／又はビデオ機能は、マルチコアプロセッサを含む汎用のプロセッサによって実施されてよい。更なる実施形態では、機能はコンシューマエレクトロニクス機器において実施されてよい。
【００５８】
ラジオ７１８は、様々な適切な無線通信技術により信号を送信及び受信することができる１又はそれ以上のラジオを有してよい。そのような技術は、１又はそれ以上の無線ネットワークにわたる通信を伴ってよい。例となる無線ネットワークには、無線ローカルエリアネットワーク（ＷＬＡＮ）、無線パーソナルエリアネットワーク（ＷＰＡＮ）、無線メトロポリタンエリアネットワーク（ＷＭＡＮ）、セルラーネットワーク、及び衛星ネットワークがある（しかし、それらに限られない）。そのようなネットワークにわたる通信において、ラジオ７１８は、あらゆるバージョンにおける１又はそれ以上の適用可能な標準規格に従って動作してよい。
【００５９】
実施形態において、ディスプレイ７２０は、あらゆるテレビジョンタイプモニタ又はディスプレイを有してよい。ディスプレイ７２０は、例えば、コンピュータディスプレイスクリーン、タッチスクリーンディスプレイ、ビデオモニタ、テレビ受像機のような装置、及び／又はテレビ受像機を有してよい。ディスプレイ７２０はデジタル及び／又はアナログであってよい。実施形態において、ディスプレイ７２０はホログラフィックディスプレイであってよい。また、ディスプレイ７２０は、視覚投影を受けることができる透明な面であってよい。そのような投影は、様々な形態の情報、画像及び／又はオブジェクトを伝えてよい。例えば、そのような投影は、モバイル拡張現実（ＭＡＲ）アプリケーションのための視覚オーバレイであってよい。１又はそれ以上のソフトウェアアプリケーション７１６の制御下で、プラットフォーム７０２はユーザインターフェース７２２をディスプレイ７２０に表示してよい。
【００６０】
実施形態において、コンテンツサービスデバイス７３０は、如何なる国家的な、国際的な及び／又は独立したサービスによってもホストされてよく、よって、例えば、インターネットを介してプラットフォーム７０２がアクセス可能である。コンテンツサービスデバイス７３０は、プラットフォーム７０２へ及び／又はディスプレイ７２０へ結合されてよい。プラットフォーム７０２及び／又はコンテンツサービスデバイス７３０は、ネットワーク７６０との間でメディア情報を通信（例えば、送信及び／又は受信）するようネットワーク７６０へ結合されてよい。コンテンツ配信デバイス７４０はまたはプラットフォーム７０２へ及び／又はディスプレイ７２０へ結合されてよい。
【００６１】
実施形態において、コンテンツサービスデバイス７３０は、デジタル情報及び／又はコンテンツを配信することができるケーブルテレビジョンボックス、パーソナルコンピュータ、ネットワーク、電話機、インターネット可能な装置又は機器と、ネットワーク７６０を介して又は直接にコンテンツプロバイダとプラットフォーム７０２及び／又はディスプレイ７２０との間で一方向に又は双方向にコンテンツを通信することができる何らかの他の装置とを有してよい。コンテンツが、システム７００における構成要素のいずれか１つ及びコンテンツプロバイダとの間でネットワーク７６０を介して単一方向に及び／又は双方向に通信されてよいことは明らかである。コンテンツの例には、例えば、ビデオ、音楽、医療及びゲームの情報、等を含む如何なるメディア情報も含まれてよい。
【００６２】
コンテンツサービスデバイス７３０は、メディア情報、デジタル情報、及び／又は他のコンテンツを含むケーブルテレビジョン番組のようなコンテンツを受信する。コンテンツプロバイダの例には、ケーブル若しくは衛星テレビジョン又はラジオ又はインターネットコンテンツプロバイダが含まれ得る。与えられる例は、本発明の実施形態を制限する意図はない。
【００６３】
実施形態において、プラットフォーム７０２は、１又はそれ以上のナビゲーション機能を備えるナビゲーションコントローラ７５０から制御信号を受信してよい。コントローラ７５０のナビゲーション機能は、例えば、ユーザインターフェース７２２と相互作用するために使用されてよい。実施形態において、ナビゲーションコントローラ７５０は、ユーザが空間（例えば、連続的且つ多次元の）データをコンピュータに入力することを可能にするコンピュータハードウェア部品（具体的に、ヒューマンインターフェースデバイス）であってよいポインティングデバイスであってよい。グラフィカルユーザインターフェース（ＧＵＩ）、並びにテレビ受像機及びモニタのような多くのシステムは、ユーザが肉体的なジェスチャによりコンピュータ又はテレビ受像機を制御しデータを供給することを可能にする。
【００６４】
コントローラ７５０のナビゲーション機能の動きは、ポインタ、カーソル、フォーカスリンク、又はディスプレイ上に表示される他の視覚的なインジケータの動きによってディスプレイ（例えば、ディスプレイ７２０）において反響されてよい。例えば、ソフトウェアアプリケーション７１６の制御下で、ナビゲーションコントローラ７５０に置かれたナビゲーション機能は、例えば、ユーザインターフェース７２２において表示される視覚的なナビゲーション機能にマッピングされてよい。実施形態において、コントローラ７５０は、別個の構成要素ではなく、プラットフォーム７０２及び／又はディスプレイ７２０に組み込まれてよい。なお、実施形態は、本願で図示又は記載される実施形態に又はその意味において制限されない。
【００６５】
実施形態において、ドライバ（図示せず。）は、ユーザが、テレビ受像機のようなプラットフォーム７０２を、例えば、有効にされている場合に最初の起動後にボタンのタッチにより即座にオン及びオフすることを可能にする技術を有してよい。プログラムロジックは、プラットフォーム７０２が、プラットフォームがオフされる場合に、メディアアダプタ又は他のコンテンツサービスデバイス７３０若しくはコンテンツ供給デバイス７４０へコンテンツをストリーミングすることを可能にしてよい。加えて、チップセット７０５は、例えば、５．１ｃｈサラウンドサウンドオーディオ及び／又は高精細７．１サラウンドサウンドオーディオのためのハードウェア及び／又はソフトウェアサポートを有してよい。ドライバは、集積されたグラフィクスプラットフォームのためのグラフィクスドライバを有してよい。実施形態において、グラフィクスドライバは、ＰＣＩ（Peripheral  Component  Interconnect）エクスプレスグラフィクスカードを有してよい。
【００６６】
様々な実施形態において、システム７００において示される構成要素のいずれか１つ又はそれ以上は一体化されてよい。例えば、プラットフォーム７０２及びコンテンツサービスデバイス７３０は一体化されてよく、あるいは、プラットフォーム７０２及びコンテンツ供給デバイス７４０は一体化されてよく、プラットフォーム７０２、コンテンツサービスデバイス７３０、及びコンテンツ供給デバイス７４０は一体化されてよい。様々な実施形態において、プラットフォーム７０２及びディスプレイ７２０は一体化されたユニットであってよい。例えば、ディスプレイ７２０及びコンテンツサービスデバイス７３０は一体化されてよく、あるいは、ディスプレイ７２０及びコンテンツ供給デバイス７４０は一体化されてよい。これらの例は本発明を制限するよう意図されない。
【００６７】
様々な実施形態において、システム７００は、無線システム、有線システム、又はその組み合わせとして実施されてよい。無線システムとして実施される場合に、システム７００は、１又はそれ以上のアンテナ、トランスミッタ、受信器、送信器、増幅器、フィルタ、制御ロジック、等のような、無線共有媒体を介して通信するのに適した構成要素及びインターフェースを有してよい。無線共有媒体の例には、ＲＦスペクトル等のような無線スペクトルの部分がある。有線システムとして実施される場合に、システム７００は、入力／出力（Ｉ／Ｏ）アダプタ、Ｉ／Ｏアダプタを対応する有線通信媒体と接続するための物理コネクタ、ネットワークインターフェースカード（ＮＩＣ）、ディスクコントローラ、ビデオコントローラ、オーディオコントローラ、等のような、有線通信にわたって通信するのに適した構成要素及びインターフェースを有してよい。有線通信媒体の例には、ワイヤ、ケーブル、金属リード、印刷回路基板（ＰＣＢ）、バックプレーン、スイッチ構造、半導体金属、ツイストペア線、同軸ケーブル、光ファイバ、等がある。
【００６８】
プラットフォーム７０２は、情報を通信するよう１又はそれ以上の論理又は物理チャネルを確立してよい。情報は、メディア情報及び制御情報を含んでよい。メディア情報は、ユーザに向けられたコンテンツを表すあらゆるデータを指してよい。コンテンツの例には、例えば、音声会話、ビデオ会議、ストリーミングビデオ、電子メール（Ｅメール）メッセージ、音声メールメッセージ、英数字記号、グラフィクス、画像、ビデオ、テキスト等からのデータがある。音声会話からのデータは、例えば、発話情報、無音期間、背景ノイズ、コンフォートノイズ、トーン等であってよい。制御情報は、自動化されたシステムに向けられたコマンド、命令又は制御語を表すあらゆるデータを指してよい。例えば、制御情報は、メディア情報をシステムを通して送るか、又はノードに所定の方法でメディア情報を処理するよう命じるために使用されてよい。なお、実施形態は、図１０に図示又は記載される要素に又はその意味において制限されない。
【００６９】
上述されたように、システム７００は、様々な物理的スタイル又はフォームファクタにおいて具現されてよい。図１１は、システム７００が具現され得るスモールフォームファクタ装置８００の実施形態を表す。実施形態において、例えば、装置８００は、無線機能を備えるモバイルコンピュータ装置として実施されてよい。モバイルコンピュータ装置は、例えば、処理システム及び１又はそれ以上のバッテリのようなモバイル電源又は供給を備えるあらゆる装置を指してよい。
【００７０】
上述されたように、モバイルコンピュータ装置の例には、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、携帯型コンピュータ、パームトップコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、携帯電話機、携帯電話機とＰＤＡの複合機、テレビ受像機、スマートデバイス（例えば、スマートフォン、スマートタブレット、又はスマートテレビジョン）、モバイルインターネットデバイス（ＭＩＤ）、メッセージングデバイス、データ通信装置等がある。
【００７１】
モバイルコンピュータ装置の例にはまた、手首装着式コンピュータ、指装着式コンピュータ、指輪型コンピュータ、めがね型コンピュータ、ベルトチップ型コンピュータ、アームバンド型コンピュータ、靴型コンピュータ、洋服型コンピュータ、及び他の着脱可能なコンピュータのような、ヒトが身につけられるよう配置されるコンピュータがある。実施形態において、例えば、モバイルコンピュータ装置は、コンピュータアプリケーションとともに、音声通信及び／又はデータ通信を実行することができるスマートフォンとして実施されてよい。幾つかの実施形態は、一例としてスマートフォンとして実施されるモバイルコンピュータ装置により記載され得るが、他の実施形態が同様に他の無線モバイルコンピュータ装置を用いて実施されてよいことは明らかである。実施形態はこれに関して制限されない。
【００７２】
プロセッサ７１０は、幾つかの実施形態において、カメラ７２３及びグローバルポジショニングシステム（ＧＰＳ）センサ７２１と通信してよい。プロセッサ７１０へ結合されるメモリ７１２は、ソフトウェア及び／又はファームウェアの実施形態において、図２で示されたシーケンスを実施するためのコンピュータ可読命令を記憶してよい。
【００７３】
図１１で示されるように、装置８００は、筐体８０２、ディスプレイ８０４、入力／出力（Ｉ／Ｏ）デバイス８０６、及びアンテナ８０８を有してよい。装置８００はナビゲーション機能８１２を更に有してよい。ディスプレイ８０４は、モバイルコンピュータ装置に適した情報を表示するための如何なる適切なディスプレイユニットも有してよい。Ｉ／Ｏデバイス８０６は、情報をモバイルコンピュータ装置に入力するための如何なる適切なＩ／Ｏデバイスも有してよい。Ｉ／Ｏデバイス８０６のための例には、英数字キーボード、数字キーパッド、タッチパッド、入力キー、ボタン、スイッチ、ロッカースイッチ、マイクロホン、スピーカ、音声認識デバイス及びソフトウェア、等がある。情報はまたマイクロホンによって装置８００に入力されてよい。そのような情報は音声認識デバイスによってデジタル化されてよい。実施形態はこれに関して制限されない。
【００７４】
様々な実施形態がハードウェア要素、ソフトウェア要素、又はそれらの組み合わせを用いて実施されてよい。ハードウェア要素の例には、プロセッサ、マイクロプロセッサ、回路、回路素子（例えば、トランジスタ、抵抗、キャパシタ、インダクタ、等）、集積回路、特定用途向け集積回路（ＡＳＩＣ）、プログラム可能ロジックデバイス（ＰＬＤ）、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット、等がある。ソフトウェアの例には、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、ファンクション、メソッド、プロシージャ、ソフトウェアインターフェース、アプリケーションプログラムインターフェース（ＡＰＩ）、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、又はそれらの組み合わせがある。実施形態がハードウェア要素及び／又はソフトウェア要素により実施されるかどうかの決定は、所望の計算レート、電力レベル、耐熱性、処理サイクル量、入力データレート、出力データレート、メモリリソース、データバス速度及び他の設計又は性能制約のようなあらゆる数の要因に従って変化しうる。
【００７５】
本願で記載されるグラフィクス処理技術は、様々なハードウェアアーキテクチャにおいて実施されてよい。例えば、グラフィクス機能はチップセット内に組み込まれてよい。代替的に、個別グラフィクスプロセッサが使用されてよい。更なる他の実施形態として、グラフィクス機能は、マルチコアプロセッサを含む汎用のプロセッサによって実施されてよい。
【００７６】
本明細書全体を通して「一実施形態」又は「実施形態」との言及は、その実施形態に関連して記載される特定の特徴、機能又は特性が本発明に包含される少なくとも１つの実施態様に含まれることを意味する。よって、「一実施形態」又は「実施形態において」との表現の出現は、必ずしも同じ実施形態に言及しているわけではない。更に、特定の特徴、構造又は特性は、表されている特定の実施形態以外の他の適切な形態において実施されてよく、全てのそのような形態は、本願の特許請求の範囲内に包含されてよい。
【００７７】
本発明は有限な数の実施形態に関して記載されてきたが、当業者はそれらから多数の改良及び変形を認識するであろう。添付の特許請求の範囲は、全てのそのような改良及び変形を、本発明の真の精神及び適用範囲の中にあるよう網羅することが意図される。
【符号の説明】
【００７８】
１０    ダイ
１２    ＯＥＭヒューズコントローラ
１４    オンダイヒューズコントローラ
１６    シーケンサ
３０    オンダイプログラム可能ヒューズモジュール
５８    ヒューズモジュール
１１０  ヒューズアレイ集積回路
１１２  ヒューズアレイ
１１４  列アドレス回路
１１６  行アドレス回路
１２０  制御
７００  システム
７０２  プラットフォーム
７１２  メモリ
７１４  記憶装置
７２０  ディスプレイ
７２２  ユーザインターフェース
７７０  オペレーティングシステム
７８０  バッテリ
７９０  ファームウェア
８００  モバイルコンピュータ装置
【図１】
2014174997.tif 000006
【図２】
2014174997.tif 000007
【図３】
2014174997.tif 000008
【図４】
2014174997.tif 000009
【図５】
2014174997.tif 000010
【図６】
2014174997.tif 000011
【図７】
2014174997.tif 000012
【図８】
2014174997.tif 000013
【図９】
2014174997.tif 000014
【図１０】
2014174997.tif 000015
【図１１】
2014174997.tif 000016