JP5070206B2 - ハードウェア資源のシステム内再構成 - Google Patents

ハードウェア資源のシステム内再構成 Download PDF

Info

Publication number
JP5070206B2
JP5070206B2 JP2008513733A JP2008513733A JP5070206B2 JP 5070206 B2 JP5070206 B2 JP 5070206B2 JP 2008513733 A JP2008513733 A JP 2008513733A JP 2008513733 A JP2008513733 A JP 2008513733A JP 5070206 B2 JP5070206 B2 JP 5070206B2
Authority
JP
Japan
Prior art keywords
hardware
function
upgrade
status
fuse
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008513733A
Other languages
English (en)
Other versions
JP2008542882A (ja
Inventor
シャヒドザデー、シャハロフ
カービー、ウィリアム
ダグラス、ジョナサン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2008542882A publication Critical patent/JP2008542882A/ja
Application granted granted Critical
Publication of JP5070206B2 publication Critical patent/JP5070206B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/085Payment architectures involving remote charge determination or related payment systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • G06F9/44542Retargetable

Description

発明の実施形態は、コンピュータシステムなどにおいて利用されるハードウェアコンポーネントに関しており、特にこれらコンポーネントのアップグレード可能性に関する。
より具体的にはパソコン(PCs)、サーバ、携帯端末(PDAs)、および携帯電話を含む、プロセッサに基づく多くのシステムは、ハードウェアコンポーネントとソフトウェアコンポーネントの混合を含む。典型的にシステムは、例えばメモリその他の記憶媒体、チップセットその他のプロセスデバイス、入力/出力(I/O)デバイスを含む関連コンポーネントとともに、プロセス操作の大半を手がける一般に中央処理装置(CPU)と称されるマイクロプロセッサを含む。
エンドユーザは典型的にこのようなシステムを様々なプロセス、娯楽、通信その他のアクティビティに利用する。しばしばユーザは、オペレーティングシステム(OS)、ウィルス対策プログラムなどのアプリケーションプログラムなどを含む、システムのソフトウェアコンポーネントをアップグレードする。さらにユーザは、ハードウェアを制御するために新たなソフトウェア(例えば、ドライバあるいはソフトウェアパッチ)をダウンロードさもなくばインストールして、追加的なメモリなどの新たなコンポーネントを追加して、高度なグラフィックカードなどの新たなデバイスを組み込み、あるいはマイクロプロセッサあるいはハードディスクドライブなどの古いコンポーネントを新たなコンポーネントに置き換えることにより、システムのハードウェアをアップグレードすることもある。しかし、先に構成されたシステム内のハードウェアコンポーネントについて販売後のアップグレード(post-point of sale upgrades)は出来ない。
マイクロプロセッサ、チップセットなどのハードウェアコンポーネントのハードウェア機能の適用は、ユーザの大半によりこれら機能が適用される何年も先を行くことが多い。例えば、ハードウェア機能はこれら機能がソフトウェアにより採用されるずっと前、および/またはこれら機能を実施するソフトウェアの成熟のずっと前から入手可能でありハードウェアコンポーネント内に現存することが多い。言い換えると、新たなハードウェア技術は、ソフトウェアがその技術を採用するより早く導入されることが多い、ということである。そのようなハードウェア機能に対するソフトウェア支援およびユーザの需要なくしては、これら新たなハードウェア機能を含むハードウェアコンポーネントは、しばしば、ボード上の技術が未開発のまま宝の持ち腐れとなる。
従い、システム内のハードウェア機能のアップグレード可能性を改善する必要が存在する。
図1を参照すると、システムの一以上のハードウェア機能をアップグレードするシステムのブロック図が示されている。図1に示すように、システムは、対象システム100と通信する遠隔サーバ10を含む。一例として、遠隔サーバ10は、PCの製造者あるいは転売人、あるいはその他のベンダーなどの相手先商標製品製造会社(OEM)のウェブサーバであってよい。あるいは、遠隔サーバ10は、ハードウェアコンポーネントの独立ベンダーと関連付けられていてもよい。また別の実施形態においては、遠隔サーバ10は、ある種のハードウェアコンポーネントの公認転売人などの、独立サービスプロバイダと関連付けられていてもよい。ここでは遠隔サーバとして記載されるが、他の実施形態においては、本発明の一実施形態によるアップグレードを実現するのに別の種類のシステムが利用できることは理解されよう。
遠隔サーバ10は、例えばインターネットあるいはその他のネットワークに基づく相互接続を介すものを含む様々な手段を利用して対象システム100と通信してよい。幾らかの実施形態においては、遠隔サーバ10は、対象システム100と通信すべく安全インタフェース20を含んでもよい。安全インタフェース20は、対象システム100と安全に通信すべく、ウェブに基づく金融その他の安全な取引に利用されるような、暗号技術を利用してもよい。
様々な実施形態においては、対象システム100は、PC、サーバコンピュータ、PDA、携帯電話などであってよい。対象システム100は様々なハードウェア・ソフトウェアコンポーネントを含んでよい。様々な実施形態においては、異なるハードウェア機能のステータスを示す複数のマシンステータスレジスタ(MSR)を含む支援構成テーブル110を含んでよい。一実施形態においては、支援構成テーブル110は、対象システム100のマイクロプロセッサの内部にあって、マイクロプロセッサ自身の異なるハードウェア機能を示すのに利用されてよい。幾らかの実施形態においては、支援構成テーブル110内の情報の少なくとも幾つかが該プロセッサの他の箇所に含まれてもよい。例えば、他のステータスレジスタは、プロセッサの特定の性能を識別する情報を含んで、適切なソフトウェア、マイクロコードなどがその性能を利用できるようにしてもよい。しかし、このようなステータスレジスタ内の情報は遠隔サーバには見えない。
他の実施形態において支援構成テーブル110は、例えばチップセットコンポーネント、永続性メモリ、あるいはその他の位置である、対象システムの他の箇所に位置してよい。対象システム100はさらに、本発明の一実施形態による様々なアップグレードアクティビティを取り扱う再構成可能なロジックブロック120を含んでよい。
操作中、遠隔サーバ10はハードウェアコンポーネントのシステム内再構成のリクエストを起動してよい。例えば、遠隔サーバ10は、システム100のユーザがマイクロプロセッサのハードウェア機能のアップグレードを望んでいるかを判断するためのリクエストを対象システム100へ送ってよい。遠隔サーバ10は様々な方法で対象システム100と通信してよい。例えば、幾らかの実施形態において遠隔サーバ10は、任意のモデルおよび/または構成の全ての既知の対象システムへの放送送信といった、幾つものシステムに対する放送通信を送ってよい。例えば、一OEMの、特定のプロセッサおよび/または特定のソフトウェア画像を含む全てのモデルXが放送パケットとして送信されてよい。
幾らかの実施形態においては、これらの放送パケットは、システムのユーザがパケット受信に気づかないよう、透過的に対象システム100へ送られてよい。これら実施形態においては、放送パケットは、支援構成テーブル110へのアクセス情報に加えて、該パケットの送信者を識別する情報を含んでよい。特に、放送パケットは、対象システム100のプロセッサが任意のハードウェア機能のアップグレードステータスの判断目的で支援構成テーブル110へアクセスするために実行する命令を含んでよい。例えば、放送パケットは、ハードウェア機能Bに関する情報についての遠隔サーバ10からのリクエストを含んでよい。故に、対象システム100は、機能Bを実現するためのアップグレードが対象システム100と互換性を持つか判断すべく支援構成テーブル110へアクセスしてよい。そうである場合には、対象システム100はそのような情報を遠隔サーバ10へ通信してよい。幾らかの実施形態においては、この通信もまた対象システム100のユーザには透過的であってよい。
遠隔サーバ10がこのようにして対象システム100が機能Bに対してアップグレード可能であると確かめると、遠隔サーバ10はその後、機能Bに対する該システムのアップグレードを対象システム100のユーザ(担当の情報技術(IT)マネージャ)が望むかどうか判断するための通信を、対象システム100へ送ってよい。幾らかの実施形態においては、メッセージはポップアップあるいは他の動的なメッセージであってよい。これら実施形態においては、このような動的メッセージを受信するにあたり、対象システム100が動的なアップグレードを実現できるようされてよい。アップグレードの利用可能性をアドバイスするメッセージの形式は多くの形式をとることができるが、幾らかの実施形態においては、従前のソフトウェア/OSアップグレードなどのポップアップ表示を提示してもよい。一例としては、メッセージは以下のように機能Bの利用可能性を報告してよい「お持ちのIntel(登録商標)Pentium(登録商標)システムにおける機能Bの実現に興味がおありですか?」「この機能の利点を見たい場合、ここをクリックすると、あなたのシステムで既に利用可能な利用モデル列を見ることができます」。すると、機能の利点を説明するデモンストレーションがコストとともに提示されてよい。そして、「既にお持ちのPCのアップグレードはX分で$Yかかります」などのメッセージが表示されてよい。ユーザの応答に基づき、遠隔サーバ10への返信がなされる。このようにして、サービスプロバイダは、この販売時点後の金額に対する請求をして、完売チャンス(sell up opportunity)に乗じることができる。
ハードウェア機能は任意の機能を実現する任意の望ましいハードウェア回路であってよい。あくまで例示であり限定ではないが、幾らかの実施形態においてはアップグレードするハードウェア機能は、プロセッサ速度、安全機能などを含んでよい。アップグレードする他のハードウェア機能には、ハイパスレッドあるいは他のマルチプルスレッド技術、仮想化技術、64ビット命令計算、高度技術などが含まれてよい。
幾らかの実施形態においては、遠隔サーバ10は安全インタフェース20を利用して対象システム100にリクエストを送ってよい。そのお返しに、対象システム100は該システムがアップグレード可能であるか、およびどの機能がアップグレードできるのか、を判断すべくチェックをする。上述のように、幾らかの実施形態においては、支援構成テーブル110の異なるレジスタを調べてシステムのアップグレードステータスを判断することができる。
図1に示すように、支援構成テーブル110は、複数のマシンステータスレジスタ(MSR)を含んでよい。幾らかの実施形態においては、MSR各々は多数のビットを含んでよく、各ビットが異なる機能と関連付けられていてよいが、もちろん他の制御スキームも利用できる。
第一のMSR112は製品機能ステータスレジスタと言及されてもよい。製品機能MSR112は、ハードウェアコンポーネントの製造業者(プロセッサ製造業者)により設定され、任意のハードウェアコンポーネントが任意の機能に対応する回路を含むかを示してよい。図1に示す実施形態においては、製品機能MSR112は複数のビットを含む。ビットA、B、Cが設定されているとして示されており、これは製造されたままのプロセッサがハードウェア機能A、B、C用の回路を含むことを示す。もちろん他の実施形態においては、異なる構成が可能であり、示された機能数以上の機能が存在してよい。
さらに図1を参照すると、支援構成テーブル110は第二のMSR114を含み、これはシステム機能MSRと言及されてよい。システム機能MSR114はどのシステムがOEMを支援するかを、あるいは構成されたままのシステムに利用可能な他のベンダを報告することができる。つまり、機能のなかには、追加的なハードウェアあるいはソフトウェア(例としては、OS機能、ドライバ、信用できるプラットフォームモジュール(TPM)あるいは帯域外(OOB)管理可能性エンジンなどの追加的ハードウェア)のようなシステムレベル支援が必要となるものもある、ということである。故に、システム機能MSR114は、構成されたままの対象システム100が均一のアップグレードできるか否かについての情報を提供してよい。様々な実施形態においては、システム機能MSR114は、対象システムの異なるハードウェア機能についてのアップグレード可能性を示すように、OEMその他のシステムベンダにより、例えばシステム製造中に書き込まれてよい。故に、第二のMSR114は任意のハードウェア機能についてシステムの認証/検証を提供するよう利用されてよい。任意の機能が第二のMSR114に設定される場合、対象システム100は、任意のシステムの様々なハードウェアおよびソフトウェアの観点から、任意の機能のアップグレードに対してそれを支援するよう確実に相互利用可能であってよい。
故に様々な実施形態においてはシステムは、OEM、相手先ブランド設計製造業者(ODM)、および/またはインテグレータにより、あるクラスの機能についてアップグレード可能であると販売時点で認証されてよい。このようなアップグレード可能性は、販売時点で、システムに対応するコアモデルが多くのフレーバで利用可能であってよい(たとえば、様々なハードウェアコンポーネントおよびソフトウェアコンポーネントを含み、そのようなコンポーネントに様々なレベルがある)という前提に基づき提供できる。ユーザのなかには、全ての機能をイネーブルな形で(つまり、ラインシステムのトップ)購入することを希望する人もいよう。しかしユーザのなかには、生態系および利用モデルが熟し主流のユーザに対して価格をつりあげている間は、ハードウエアで利用可能な全ての機能のサブセットをもつシステムを購入することを望む人もいよう。故に、特定のシステム構成に基づくと、ベンダは販売時点ではシステム機能MSR114を設定することにしてもよい。
アップグレードMSR116はシステム内でイネーブルできる対象コンポーネントの機能を示してもよい。幾らかの実施形態においては、MSR116は販売後アップグレードMSRであってよい。つまり、アップグレードMSR116は、MSR112、114間の論理積演算を示してもよい。故に、図1に示すように、機能BはアップグレードMSR116に設定され、これは機能Bが販売後アップグレードであることを示す。
故に、対象システム100がアップグレードできユーザがそのアップグレードを望む場合、対象システム100および遠隔サーバ10は対象システムをアップグレードさせてよい。幾らかの実施形態においては、任意のハードウェアアップグレードが許可される前にユーザがOEM提供画像を変更した場合、ハードウェア機能が途切れなく実現できることを確かめるべく現画像を再インストールしてもよい。つまり、遠隔サーバ10が対象システム100をアップグレードできる前に、第一に対象システム100は現画像を再インストールされてもよい。
ハードウェアアップグレードを達成すべく、対象システム100は、ハードウェア機能Bがイネーブルおよび/またはアップグレードを望まれているという示唆とともに、暗号鍵を遠隔サーバ10へ送ってよい。様々な実施形態においては、アップグレード対象のシステムコンポーネントは(例えばCPUあるいはチップセットコンポーネント)、対象システム100特有の固有暗号鍵を提供してよい。幾らかの実施形態においては、固有暗号鍵は製品シリアル番号、あるいは各製造コンポーネントを一意に識別するよう提供される別の固有識別子であってよい。固有識別子を提供することで、著作権侵害防止およびその他の安全機構への準拠が施行される。
対象システム100から入手された情報に基づき、遠隔サーバ10はマイクロコード命令を暗号化して、機能B(一例である)を対象システム100でアップグレードすることができる。図1の実施形態においては、遠隔サーバ10内のコード暗号ロジックブロック30を利用することで、アップグレードをするマイクロコードを入手して、該マイクロコードを対象システム100から受信した暗号鍵により暗号化してよい。そして遠隔サーバ10は、コードおよび検証通信ロジックブロック40を介して暗号化された命令を送信してよい。様々な実施形態においては、送られる情報は、対象コンポーネントをテストしてアップグレードの成功を確かめるための追加的な命令とともに、ハードウェア機能(一又は複数)をイネーブルする暗号化されたマイクロコード命令を含んでよい。
さらに図1を参照すると、暗号化された命令を対象システム100の再構成可能なロジックブロック120により利用することができる。再構成可能なロジックブロック120は、機能アップグレードを達成するために様々なコンポーネントを含むことができる。特に、図1に示すように、再構成可能なロジックブロック120は、遠隔サーバ10が送るマイクロコードを復号するコード復号ロジック122を含んでよい。様々な実施形態において、コード復号ロジック122は、対象システム100が送信する暗号鍵に対応する復号鍵を利用してよい。マイクロコードを復号すると、システム内イネーブルロジック124は機能Bを実現してよい。様々な実施形態においては、さらに以下に説明するように、ヒューズプログラミング可能性ロジックを利用して機能をイネーブルしてもよい。
機能のイネーブルを完成すると、システム内検証ロジック126は、ハードウェア機能のイネーブルが実際に成功したかどうか確かめてよい。成功である場合には、システム内検証ロジック126は、支援構成テーブル110内の機能イネーブル済みMSR118内に対応する機能ビットを設定して、イネーブルされたステータスを示してもよい。例えば図1は、機能イネーブル済みMSR118が機能Bに対応するビット内にロジック「ゼロ」を含むことを示す。機能Bを提供するアップグレードが成功すると、機能Bに対応するビットがロジック「1」状態に設定されてよい。機能イネーブル済みMSR118を設定すると、対象システム100は、遠隔サーバ10の確認および請求ロジックブロック(確認ブロック)50に確認メッセージを送ってもよい。様々な実施形態においては、確認メッセージはさらに、ハードウェア機能が対象システム100で機能したことを確認してもよい。故に、サーバ10に戻る検証メッセージは、対象システム100へのハードウェア機能の実施が成功したことを確認する署名を含んでよい。これによりユーザは、アップグレードの支払いを避ける試みから、ハードウェア機能のアップグレードが不成功に終わったと後に主張することはできない。
確認メッセージを受け取ると、遠隔サーバ10は成功したアップグレードについて対象システム100に関連付けられる勘定を請求することができる。さらに、確認ブロック50は、対象システム100へのアップグレードを示すステータスメッセージを中央データベース60へ送ることができる。幾らかの実施形態においては、中央データベース60はコンポーネント製造者(例えばマイクロプロセッサ製造者)と関連付けられたデータベースであってよい。このようにして製造者は、保証その他の目的で特定のプロセッサの実際の構成をトラックすることができる。例えば、ユーザが任意のハードウェア機能をイネーブルすると、プロセッサ製造者はそのシステムを、さらなるアップグレード、その任意のハードウェア機能アップグレードとの共用に適しているアクセサリを提供するソフトウェアその他のコンポーネントの対象としてよい。またさらには、プロセッサ製造者は特定のユーザが達成したアップグレードあるいはアップグレード選択全体に関する情報を利用して、将来の製品およびアップグレードの開発に利用するマーケティング情報を抽出してもよい。
図1には遠隔サーバ10とともに実施されるとして示したが、他の実施形態においては、対象システム100のアップグレードは他の方法で行われてもよい。例えば、ユーザは本発明の一実施形態によるアップグレードを実施する命令を含むディスクあるいはその他の記憶媒体を購入してもよい。
図2を参照すると、本発明の一実施形態による方法のフロー図が示されている。図2に示すように、方法200を利用して、対象システムのハードウェア機能をアップグレードすることができる。方法200は、対象システムと通信することで始められてよい(ブロック205)。例えば、OEMの遠隔サーバ、転売者などが対象システムと通信してよい。様々な実施形態においては、通信はシステムのユーザには透過的であってよい。特に、遠隔サーバは対象システムの構成に関する情報をリクエストして、該システムがアップグレード可能であるかの判断をしてもよい。
故に、対象システムがアップグレードを承認されるかどうか判断してもよい(ダイアモンド210)。様々な実施形態においては、支援構成テーブル内の情報は、遠隔サーバからのリクエストに応じて遠隔サーバへ戻されてよい。ここでも、遠隔サーバ・対象システム間のこの通信はエンドユーザに対して透過的であってよい。対象システムから受信される情報に基づき、遠隔サーバは対象システムがアップグレードを承認されるか判断してよい。承認されない場合には、方法200は終了されてよい。
対象システムがアップグレードを承認されると判断される場合には、次に、ユーザがシステムのアップグレードを望むかどうか判断してよい(ダイアモンド215)。システムがアップグレードを望まれているかを判断するのには様々な方法が存在しうるが、多くの実施形態においては、遠隔サーバから対象システムへメッセージが送られてよい。メッセージは例えばポップアップその他のメッセージブロックにより対象システムにおいて表示され、アップグレードの利用可能性を示してよい。ユーザがアップグレードを望まない場合、方法200は終了されてよい。
あるいは、ユーザがアップグレードを望む場合、対象システムは遠隔サーバに暗号鍵を送ってよい(ブロック220)。様々な実施形態においては、暗号鍵は、対象システムおよび/またはシステムの特定のハードウェアコンポーネント(例えばプロセッサあるいはチップセット)を識別する固有コードであってよい。
暗号鍵を利用して、遠隔サーバはアップグレードをイネーブルする暗号化命令を生成してよい。より具体的には、遠隔サーバはマイクロコード命令を生成してよく、さらには、命令への不当アクセスを妨げるために命令を暗号化してよい。マイクロコード命令は対象システムが、適切に一以上のハードウェアコンポーネントをプログラミングして、操作機能(一又は複数)をイネーブルするのに利用されてもよい。遠隔システムはさらに、検証命令を生成して、これを対象システムに送信してアップグレードが成功したこと、および対象システムが所望の機能を実施するコードを実行することができることを確かめてよい。故に、遠隔サーバは対象システムに暗号化アップグレード命令を送信してよい(ブロック225)。
暗号化命令に対応する復号鍵を利用して、対象システムはアップグレード命令を復号して、これにより対象システムをプログラミングしてよい(ブロック230)。特に、復号化マイクロコード命令を利用すると、安全違反をあまり気にすることなくアップグレードを安全に行うことができる。つまり、マイクロコード命令を復号して直接プロセッサコアに送ってよく、ここでマイクロコード命令を内部的に実行してプログラミングを始めてよい。送信された命令はこれら実施形態でマイクロコード内にあってよいので、ユーザが命令を抽出して、該命令を権限のない者に送ることは顕著に減らされよう。
幾らかの実施形態においては、マイクロコード命令はプロセッサにより実行されて、アップグレードする機能(一又は複数)のプログラミングを始めてよい。例えば、幾らかの実施形態においては、マイクロコード命令は動的ヒューズプログラミングロジックをプロセッサその他のハードウェアコンポーネント内で起動して、一以上のヒューズをバーニング(burn)して前に利用不可能であった回路への経路をイネーブルしてもよい。これら実施形態においては、動的ヒューズプログラミングロジックは、電源電圧をヒューズバンクなどへ起こし、選択されたヒューズをバーニングして(つまりイネーブルして)よい。バーニングが成功すると、経路は機能を実行する回路へ生成される。
コンポーネントをプログラミングして機能をイネーブルした後、次にはアップグレードが成功したかを判断してよい(ダイアモンド235)。様々な実施形態においては、遠隔サーバが送信したコードを利用して、イネーブルされた機能の操作を検証してもよい。例えば、幾らかの実施形態においては、検証コードをマイクロコード命令とともに送ってよい。プログラミングが完成すると、対象システムは検証コードを実行してよい。検証コードは新たにイネーブルされた回路を実行して、意図する目的で操作されるか検証してもよく、より具体的には、対象システムの特定の構成で操作されるかを検証してよい。
アップグレードが不成功だったと判断される場合(ダイアモンド235)、制御はブロック240へ移行し、ここでエラー対処処理が行われてよい。様々な実施形態においては、エラー対処コードが対象システム上で実施されて、エラーに対処してよい。幾らかの実施形態においては、エラー対処処理は遠隔発信元からダウンロードされてよい。エラー処理コードが実行された後、今度はアップグレードプロセスを再試行するかどうか判断してよい(ダイアモンド245)。例えば、エラー対処ルーチンがエラーを訂正すると、アップグレードプロセスを再試行することができる。あるいは、今の時点ではアップグレードを行わないと判断されてもよく、そうするとこの時点で方法200が終了されてよい。アップグレードを再試行する場合には、制御はブロック230へ戻る。
一方、ダイアモンド235においてアップグレードが成功したと判断された場合には、アップグレードを遠隔サーバへ報告してよい(ブロック250)。特に、支援構成テーブルからの情報を遠隔サーバに送り、アップグレードが成功裏に完了したことを示してよい。支援構成テーブルからの情報に加えて、対象システムを識別する情報を含めて、遠隔サーバが適切な方策を講じることができるようにしてよい。
特に、遠隔サーバはアップグレードについて対象システムに関連付けられる勘定を請求することができる(ブロック260)。例えば、会社のIT部は遠隔サーバを実施するOEMの勘定を保持することができる。他の実施形態においては、アップグレード支払いについて異なる方策が可能であってよい。例えば、幾らかの実施形態においては、個々のエンドユーザが該エンドユーザが望むアップグレードに対する課金を認可するクレジットカード情報を提供してよい。
アップグレードに対する課金に加えて、遠隔サーバは、例えば対象システムの識別に関する情報、達成されたアップグレード、プラットフォーム、構成、画像などの対象システムに関する追加的情報含む、アップグレードに関する情報を記憶してよい。さらに図2に示すように、遠隔サーバは中央データベースにアップグレード情報を通信してよい(ブロック270)。
図3を参照すると、本発明の一実施形態による、動的ヒューズプログラミングロジックの一箇所のブロック図が示されている。図3に示すように、回路300aは、様々なレジスタ、ロジックゲート、異なるハードウェア機能をイネーブルすべくヒューズのバーニングを制御するコントローラを含んでよい。図3に示すように、回路300aはヒューズをバーニングすべくデータ受信するよう連結されている。データは、遠隔サーバから受信されるマイクロコード命令の制御下で回路300aに送信されてよい。図3に示すように、入力されるデータは複数のラッチ310a、b、cで受信されてよい。様々な実施形態においては、1ビットラッチを利用して、アップグレードできる各機能についてのデータ受信をしてもよい。図3には例示をし易くするためにこのようなラッチを三つ含むとして示したが、本発明の範囲はこれに限定されないことは理解されるべきである。ラッチ310を連結して、例えばプロセッサクロック信号(CPU Clock)などの、入力されるクロック信号でクロックする。入力されるクロック信号はさらに、制御信号を受信するよう連結される制御ラッチ315をクロックするのに利用することもできる。特に、制御信号(つまりReadyToUpgrade)を、実行されるマイクロコード命令から受信してもよい。
選択されたヒューズのバーニングを制御すべく、ヒューズバーニングコントローラ325が存在してもよい。様々な実施形態においては、コントローラ325はヒューズバーニング列を起動する、プログラム可能なロジックであってよい。図3の実施形態においては、コントローラ325はリセット信号(つまりCPU Reset)および制御信号(つまりStartBurnSequence)を受信するよう連結され、ラッチ315からのヒューズバーニング列を起動する。さらには、コントローラ325は入力されるクロック信号を受信するよう連結する。最後に、図3に示すように、コントローラ325は電圧ステータス信号(つまりVCCIsGood)を受信するために連結される。電圧ステータス信号は比較器320により出力されてよく、比較器320はプロセッサ供給電圧(CPU VCC)を、例えば参照電圧と比較する。図3に示す実施形態においては、参照電圧(つまりStable VREF)は供給電圧の三分の二に略等しくてよい。
制御信号(つまりStartBurnSequence)が起動され、およびリセット信号が受信され、電圧ステータス信号がアクティブであるということを仮定した場合、コントローラ325は選択されたヒューズをバーニングしてよい。より具体的には、コントローラ325は先ず、起動チャージ制御信号(つまりStartChargePump)を設定してよい。そして、これに続くクロックサイクル(例えばCPU Clockの1マイクロセカンド(μs)サイクル)において、コントローラ325は選択された機能について複数の重複ヒューズの各々について信号を設定してよい。図3に示すように、送られた信号は複数ライン上に発行してよい(つまりBurnFuse「3:0」)。バーニング列がなされると、バーニング列完了制御信号(つまりBurnSeqDone)が生成されてよい。そしてコントローラ325は、その全ての出力をゼロに設定する。
今度は図4に着目すると、本発明の一実施形態による動的ヒューズプログラミングロジックの第二の箇所が示されている。図4に示すように、回路300bは回路300aと同じロジックの一部であってよい。
図4に示すように、回路300bは起動されるとヒューズバーニング電圧を生成するチャージポンプ330を含む。チャージポンプ330は供給電圧(CPU VCC)およびANDゲート328からの出力であるイネーブル信号(PumpVoltage)を受信するよう連結される。図4に示すように、ANDゲート328は、チャージ制御信号および反転バーニング列完了制御信号を(つまりインバータから327)受信するよう連結される。故に、ANDゲート328からの出力がロジック「1」であり、供給電力が存在する場合、チャージポンプ330はチャージポンプ電圧信号(ChargePumpOut)を生成して、ヒューズバーニング電圧を第一のヒューズバンク40および第二のヒューズバンク345へ提供してよい。図4の実施形態にはプロセッサ供給電圧(CPU VCC)から電源電圧を受け取るように示したが、他の実施形態においては補助的電圧供給を利用してもよい。さらには、ポンプアップされた電圧をチャージポンプ330を介して利用する代わりに、専用プラットフォーム電源電圧を利用することもできる。もしくは他の実施形態においては、名目供給電圧(CPU VCC)を利用することもできる。
図4の実施形態には二つのヒューズバンクだけを含むように示したが、本発明の範囲がそれに限定されないことは理解されるべきであり、任意の実施形態では任意の所望数のヒューズバンクが存在してよい。様々な実施形態においては、各ヒューズバンクは、各ヒューズに別個のバーニング制御がなされる、重複ヒューズのバンクであってよい(例えば、四つの重複ヒューズ)。さらに、様々な実施形態においては、ヒューズバンクは各潜在的機能に存在して、イネーブルあるいはアップグレードされてよい。しかし、他の構成も可能であることは理解されるべきである。
任意のヒューズバンクにおいて選択されたヒューズをバーニングすべく、バンク内の選択されたヒューズに対応するラインに入力される信号は論理高レベルであってよい。特に、図4に示すように、ロジックゲート335および337(ANDゲート)はヒューズバンク340、345のデータ入力にそれぞれ連結される。ANDゲート335、337は、ラッチ310からの機能バーニング選択信号(FeatureBurnRegister[X])およびコントローラ325からのヒューズバーニング信号を受信するように連結される。論理高レベルがANDゲート335、337のいずれかから出力され、チャージポンプ電圧信号が存在する場合、適切なヒューズがバーニングされる。このようにして、任意のハードウェア機能に対応する複数の重複ヒューズが命令(マイクロコード命令)の制御下に設定されてよい。
さらに図3、4を参照すると、回路300a、300bをさらに利用して、ヒューズバーニングが適切に実行されたことを検証してよい。故に、ヒューズ検証コントローラ360が存在してもよい(回路300a中に)。図3に示すように、コントローラ360は、入力されるクロック信号、電圧ステータス信号、およびリセット信号を含む、様々な入力を受信するよう連結されてよい。さらに、コントローラ360はコントローラ325からバーニング列完了信号を受信するよう連結されてよい。様々な実施形態においては、コントローラ360は、バーニング列の完了を示すよう、アクティブな高いバーニング列完了信号を受信するまでは、全ての自身の出力をゼロに設定したままアイドル状態であってよい。
このようなとき、一実施形態においては、コントローラ360は以下の機能を遂行してもよい。つまり、先ず、コントローラ360はヒューズ感知信号(Fuse Sense)を論理高に設定してよい。そして、ヒューズロード信号(Fuse Load)をアクティブ高値に設定してよい。ヒューズ感知信号がアクティブなとき、ヒューズバンク340、345は各バンク内の個々のヒューズ各々のバーニングステータスを示す出力を生成する。これら出力信号はその後、今度はORゲート348、349を介して論理和をとられて、その出力はそれぞれラッチ350、352と連結される。これらラッチはヒューズロード信号によりイネーブルされ、該ラッチはヒューズ出力信号を出力する(FuseOut[x])。
図4に示すように、インバータ354を介して、ヒューズ出力信号は反転されて、「全ヒューズ信号」(AllFuse=Zero)、および「いずれのヒューズ信号も非反転信号」(AnyFuse=One)を形成する。図3を参照すると、ANDゲート356(つまり、ANDゲート)は、ヒューズコントローラ360が生成する検証列完了信号(VerfySequenceDone)とともに、任意のヒューズ信号を受信するよう連結される。これら信号の両方が論理高に設定されると、ANDゲート356はラッチ374a、b、cそれぞれに提供される高出力を生成し、各ラッチ374a、b、cは各ハードウェア機能に対応している。ラッチ374のうちの一つが機能有効ビット(FeatureValidBits)を生成する場合、これは対応するハードウェア機能のヒューズのプログラミングが成功していることを示す。
対して、全てのヒューズ信号が論理高レベルであり、コントローラ360からの検証列完了信号も論理高である場合、ANDゲート368は出力高信号を生成して値を、それぞれが任意の機能に対応しているラッチ370a、b、cのうちの対応するものに提供してもよい。これらラッチ370の一つが論理高信号を出力するとき、これは、任意のハードウェア機能のプログラムを試みた際にヒューズバーニングエラーが生じたことを示す。最後に、ORゲート364は電源失敗信号を受信すべく連結されてよい。特に、二つのこのような電源失敗信号が(つまり、ヒューズバーニングコントローラ325からのVCCFailBeforeBurn信号と、ヒューズ検証コントローラ360からのVCCFailBeforeDone信号)、ORゲート364の入力に提供されてよい。これら信号のいずれかが高に設定され、供給電圧失敗を示すと、ORゲート364は論理高信号を出力する。これにより、今度はラッチ372が電力失敗エラーを示すよう設定される。
様々な実施形態においては、機能有効ビット(例えば、ラッチ374a、b、cの一つを介して)を利用して、支援構成テーブル110の機能イネーブルMSR118を設定することができる。例えば、機能Bのヒューズバンクのプログラミングが成功したとすると、機能イネーブルMSR118内の機能Bに対応するビットを設定することができる。すると今度は、対象システム100が遠隔サーバ10に対して、選択された機能のプログラミングが成功したことを示すメッセージを送ってよい。
故に、様々な実施形態においては、ハードウェア機能は製造時点でハードウェアコンポーネント内に実施されてよく、ユーザは販売後に一以上のハードウェア機能の利用を選択することができる。本発明の様々な実施形態によると、機能をイネーブルにしその機能を対象システムで検証する際のセーフ/安全な様式が提供されてよい。このようなアップグレードはOEM、IT顧客、およびエンドユーザに付加価値を提供することができる。さらに、ハードウェア製造業者、OEMなどは、既にハードウェアに実施されているが販売時点ではイネーブルではない、より最近の機能アップグレードにより、追加的な収入を生むことができる。さらに、ハードウェア機能をアップグレードするエンドユーザは、彼等のアップグレードプランをさらに速いエンドプラットフォームにおいて速めることができ、PC交換サイクルを減らすことができる。
さらに、ユーザは購入時点で高額を払わなくてよくなり、かつ後で提供されるハードウェア機能をアップグレードすることができる柔軟性および可能性を留保することができる。例えば、ある種のアプリケーション/用途モデルがより成熟したそのときに、ユーザは一以上のハードウェアコンポーネントをアップグレードしてさらなるハードウェア機能を提供する選択をすることができる。
様々な実施形態をコンピュータプログラムに実施できる。こういう訳なので、これら実施形態は、実施形態を実行するようシステムをプログラムするのに利用することのできる命令を記憶する記憶媒体に記憶することができる。記憶媒体は、それらに限定されるわけではないが、フロッピー(登録商標)ディスク、光ディスク、コンパクトディスク読み取り専用メモリ(CD−ROMs)、書き換え型コンパクトディスク(CD−RWs)、光磁気ディスクを含む任意の種類のディスク、読み取り専用メモリ(ROMs)などの半導体デバイス、動的RAMs(DRAMs)などのランダムアクセスメモリ(RAMs)、消去可能PROM(EPROMs)、電気的消去可能なPROM(EEPROMs)、フラッシュメモリ、磁気あるいは光カード、電子命令を記憶するのに適した任意の種類の媒体を含む。同様に、実施形態は、プログラム可能な制御デバイスにより実行されるソフトウェアモジュールとして実施されてもよい(コンピュータプロセッサあるいはカスタム設計状態マシンなど)。
実施形態はそれぞれ異なるシステムにおいて実施されてもよい。例えば、幾らかの実施形態はマルチプロセッサシステムで実施されてもよい(例えば共通システムインタフェース(CSI)システムなどのポイントツーポイントバスシステム)。図5を参照すると、本発明の一実施形態によるマルチプロセッサシステムのブロック図が示されている。図5に示すように、マルチプロセッサシステム400はポイントツーポイントバスシステムであり、ポイントツーポイント相互接続450を介して連結された第一のプロセッサ470と第二のプロセッサ480とを含む。図5に示すように、プロセッサ470、480の各々が複数のマルチコアプロセッサであり、第一および第二のプロセッサコアを含んでよい(プロセッサコア474a、bおよびプロセッサコア484a、b)。第一のプロセッサ470はさらに、メモリコントローラハブ(MCH)472およびポイントツーポイント(P−P)インタフェース476、478を含む。同様に、第二のプロセッサ480は、MCH482、P−Pインタフェース486、488を含む。図5に示すように、MCH472、482は前述のプロセッサ同士をメモリそれぞれへ連結し、メモリとはつまりメモリ432およびメモリ434であり、これらはプロセッサそれぞれにローカルに取り付けられた主メモリの箇所であってよい。
図5に示すように、プロセッサ470は、本発明の一実施形態によるとテーブル473を含んでよい。より具体的には、テーブル473は、様々なハードウェア機能およびそれらのアップグレードステータスを識別する複数のMSRを含む支援構成テーブルであってよい。さらに、プロセッサ470は、本発明の一実施形態により再構成可能なロジック475を含んでよい。再構築可能なロジック475は遠隔サーバから命令を受信して、システム内に命令による一以上のハードウェア機能をイネーブルするのに利用されてよい。図5にさらに示すように、プロセッサ480は同様に、本発明の一実施形態によるテーブル483および再構成可能なロジック485を含んでよい。
第一のプロセッサ470および第二のプロセッサ480は、それぞれチップセット490にP−Pインタフェース452、454を介して連結されてよい。図5に示すように、チップセット490はP−Pインタフェース494、498を含む。さらにチップセット490は、チップセット490と高性能グラフィックエンジン438とを連結するインタフェース492を含む。一実施形態においては、高度グラフィックスポート(Advanced Graphics Port(AGP))バス439を利用してグラフィックエンジン438をチップセット490に連結してよい。AGPバス439は1998年5月4日にカリフォルニア州Santa ClaraのIntel Corporationから発行されたAccelerated Graphics Port Interface Specification, Revision2.0に準拠していてもよい。もしくは、ポイントツーポイント相互接続439がこれらコンポーネントを連結してもよい。
また、チップセット490が第一のバス416にインタフェース496を介して連結されてもよい。一実施形態においては、第一のバス416は、1995年6月付のPCI Local Bus Specification, Production Version, Revision2.1が定義するPeripheral Component Interconnect(PCI)バス、あるいはPCI Expressバスあるいは別の第三世代I/O相互接続バスなどのバスであってよいが、本発明の範囲はそれに限定されない。
図5に示すように、様々な入力/出力(I/O)デバイス414を、第一のバス416を第二のバス420に連結するバスブリッジ418とともに、第一のバス416に連結することができる。一実施形態においては、第二のバス420は低ピンカウント(LPC)バスであってよい。一実施形態においては、様々なデバイスを、キーボード/マウス422、通信デバイス426、コード430を含むことのできるデータ記憶部428を含む、第二のバス420に連結することができる。通信デバイス426はネットワークインタフェースカード、無線インタフェースなどを含み、システム400に遠隔システムと通信させてアップグレード命令を受信させてよい。さらに、音声I/O424は第二のバス420に連結されてよい。
ここでは限定数の実施形態の観点から本発明を記載したが、当業者であればそこから幾らもの変形例および変更例を理解するだろう。添付の請求項はそのような変形例および変更例全てを、本発明の真の精神および範囲に含めるよう網羅することを意図している。
本発明の一実施形態によりハードウェアアップグレードを行うシステムのブロック図である。
本発明の一実施形態による方法のフロー図である。
本発明の一実施形態による、動的ヒューズプログラミング回路の第一箇所のブロック図である。
図3の動的ヒューズプログラミング回路の第二箇所のブロック図である。
本発明の一実施形態によるシステムのブロック図である。

Claims (20)

  1. システムのハードウェアコンポーネントが有する支援構成テーブルであって、前記システムの複数のハードウェア回路のうちの1つのハードウェア回路についてのシステム支援ステータスに関する情報を記憶する第一のステータスレジスタであって、前記システムのベンダにより、前記ベンダが構成したままの前記システムが前記ハードウェア回路を支援することができるかを承認する目的で設定される第一のステータスレジスタと、前記ハードウェア回路についての機能イネーブルステータスに関する情報を記憶する第二のステータスレジスタであって、前記ハードウェアコンポーネントの製造者により、前記ハードウェア回路に対応する前記ハードウェアコンポーネント内の回路の存在を示す目的で設定される第二のステータスレジスタとを含む前記支援構成テーブルにアクセスすることによって、前記システムが前記ハードウェア回路のアップグレードに互換性を持つか判断する工程と、
    前記システムが互換性を持つ場合に前記ハードウェア回路をアップグレードする遠隔システムからの複数の命令を受信する工程と、
    前記ハードウェア回路を前記複数の命令に基づきプログラミングする工程と、
    を含む方法。
  2. 前記システムが互換性を持つと判断された後に、前記システムの暗号鍵を前記遠隔システムへ送る工程と、
    前記遠隔システムから、複数の暗号化命令を受信する工程と、をさらに含み、
    前記複数の命令はマイクロコードを含む、請求項1に記載の方法。
  3. 前記ハードウェア回路をプログラミングする工程は、前記ハードウェア回路を、前記マイクロコードの命令により行われる動的ヒューズにより永久的にプログラミングすることを含む、請求項2に記載の方法。
  4. 前記動的ヒューズは、経路を前記アップグレードに対応する前記ハードウェア回路にイネーブルすることを含む、請求項3に記載の方法。
  5. 前記遠隔システムから検証コードを受信する工程と、
    受信した前記検証コードを実行することができることを確認する工程と、
    確認した結果を前記遠隔システムに送信する工程と、
    をさらに含む請求項1から4のいずれか1項に記載の方法。
  6. システムであって、ハードウェアコンポーネントを含み、
    前記ハードウェアコンポーネントは、システムの販売後にイネーブルされる、前記ハードウェアコンポーネントが含む一以上のハードウェア機能のステータスに関する情報を記憶する機能テーブルを持ち、
    前記機能テーブルは、
    前記ハードウェア機能のうちの1つについてのシステム支援ステータスに関する情報を記憶する第一のステータスレジスタであって、前記システムのベンダにより、前記ベンダが構成したままの前記システムが前記ハードウェア機能を支援することができるかを承認する目的で設定される第一のステータスレジスタと、
    前記ハードウェア機能についての機能イネーブルステータスに関する情報を記憶する第二のステータスレジスタであって、前記ハードウェアコンポーネントの製造者により、前記ハードウェア機能に対応する前記ハードウェアコンポーネント内の回路の存在を示す目的で設定される第二のステータスレジスタと、を含み、
    前記システムは、前記機能テーブルにアクセスすることによって、前記システムが前記ハードウェアコンポーネントのアップグレードに互換性を持つと判断した場合に、前記ハードウェアコンポーネントをアップグレードする遠隔システムからの複数の命令を受信して、前記ハードウェアコンポーネントを前記複数の命令に基づきプログラミングする
    システム
  7. 前記機能テーブルは、前記ハードウェア機能についてのアップグレードされたステータスに関する情報を記憶する第三のステータスレジスタを含み、前記第三のステータスレジスタの少なくとも一箇所は、前記ハードウェア機能のうちの一つについてのイネーブルが成功した際に設定される、請求項6に記載のシステム
  8. 遠隔発信元から受信したマイクロコードにより前記ハードウェア機能の少なくとも一つをイネーブルするために前記ハードウェアコンポーネントをプログラムする動的ヒューズプログラミングロジックをさらに含む、請求項6または7に記載のシステム
  9. 前記動的ヒューズプログラミングロジックは、前記マイクロコードに基づき前記ハードウェア機能の前記少なくとも一つをイネーブルするために少なくとも一つのヒューズをバーニングするヒューズバーニングコントローラと、前記バーニングを検証するためにヒューズ検証コントローラとを含む、請求項8に記載のシステム
  10. 前記ハードウェアコンポーネントはプロセッサを含み、前記システムは、前記ハードウェア機能の前記少なくとも一つを実行する目的で、前記プロセッサの一ブロックをさらに含み、前記ブロックが前記少なくとも一つのヒューズを介してプロセッサコアに連結されている、請求項9に記載のシステム
  11. 前記ハードウェアコンポーネントは前記ハードウェア機能を含み、前記ハードウェア機能は前記動的ヒューズプログラミングロジックによりプログラミングされる場合以外にはイネーブルされない、請求項8に記載のシステム
  12. 前記機能テーブルは、前記ハードウェアコンポーネントの複数のレジスタ内で利用可能なステータス情報用の中央記憶装置を含み、前記機能テーブルは外部システムに対して透過的である、請求項6から11のいずれか1項に記載のシステム
  13. コンピュータに、
    対象システムが前記対象システムのハードウェアコンポーネントをアップグレードする資格があるかを、前記ハードウェアコンポーネントが有する複数のハードウェア機能のうちの1つのハードウェア機能についてのシステム支援ステータスに関する情報を記憶する第一のステータスレジスタであって、前記対象システムのベンダにより、前記ベンダが構成したままの前記対象システムが前記ハードウェア機能を支援することができるかを承認する目的で設定される第一のステータスレジスタと、前記ハードウェア機能についての機能イネーブルステータスに関する情報を記憶する第二のステータスレジスタであって、前記対象システムのハードウェアコンポーネントの製造者により、前記ハードウェア機能に対応する前記ハードウェアコンポーネント内の回路の存在を示す目的で設定される第二のステータスレジスタとを含む機能テーブルの分析により判断する手順と、
    前記対象システムへ複数のアップグレード命令を準備および送信する手順と、を実行させるためのプログラムであって、
    前記複数のアップグレード命令は前記対象システムに対して、前記アップグレードをイネーブルするよう前記ハードウェアコンポーネントをプログラミングさせる、プログラム。
  14. 前記コンピュータに、
    前記対象システムに、前記対象システムに対する前記アップグレードが成功したことを確かめる複数の検証命令を提供する手順
    をさらに実行させるための請求項13に記載のプログラム。
  15. 前記コンピュータに、
    前記アップグレードが成功したと確かめた際に、前記アップグレードについて前記対象システムに関連付けられた勘定を請求する手順と、
    前記ハードウェアコンポーネントの製造者によりアクセス可能な中央データベースに、前記対象システムおよび前記アップグレードに関する情報を記録する手順と、をさらに実行させるための請求項14に記載のプログラム。
  16. 前記複数のアップグレード命令を準備および送信する手順は、前記対象システムから受信した暗号鍵により暗号化された様式で準備および送信する請求項13に記載のプログラム。
  17. システムであって、
    前記システムの販売時点でイネーブルでないハードウェア機能を含むプロセッサと、
    前記ハードウェア機能に連結され、前記ハードウェア機能を販売後にイネーブルにするプログラマと、
    前記システムを遠隔システムに接続するインタフェースと、を含み、
    前記インタフェースは、前記遠隔システムから前記システムへの、前記システムの構成に関する情報をリクエストする第1通信、および前記システムが前記ハードウェア機能を実行可能であることを示すべく、前記第1通信に応じて前記システムの機能テーブルから取得された情報を、前記システムから前記遠隔システムへと提供するための第2通信を実現し、
    前記機能テーブルは、前記ハードウェア機能のうちの1つについてのシステム支援ステータスに関する情報を記憶する第一のステータスレジスタであって、前記システムのベンダにより、前記ベンダが構成したままの前記システムが前記ハードウェア機能を支援することができるかを承認する目的で設定される第一のステータスレジスタと、前記ハードウェア機能についての機能イネーブルステータスに関する情報を記憶する第二のステータスレジスタであって、前記プロセッサの製造者により、前記ハードウェア機能に対応する前記プロセッサ内の回路の存在を示す目的で設定される第二のステータスレジスタとを含む、システム。
  18. 前記プログラマは、前記遠隔システムから受信した複数の命令によって前記ハードウェア機能をイネーブルにする動的ヒューズプログラミングロジックを含む、請求項17に記載のシステム。
  19. 前記動的ヒューズプログラミングロジックは、前記ハードウェア機能をプロセッサコアに連結すべく少なくとも一つのヒューズをバーニングするコントローラを含む、請求項18に記載のシステム。
  20. 前記ハードウェア機能は、安全機能を含む、請求項17から19のいずれか1項に記載のシステム。
JP2008513733A 2005-05-23 2006-05-23 ハードウェア資源のシステム内再構成 Expired - Fee Related JP5070206B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/135,158 US7640541B2 (en) 2005-05-23 2005-05-23 In-system reconfiguring of hardware resources
US11/135,158 2005-05-23
PCT/US2006/020334 WO2006127949A1 (en) 2005-05-23 2006-05-23 In-system reconfiguring of hardware resources

Publications (2)

Publication Number Publication Date
JP2008542882A JP2008542882A (ja) 2008-11-27
JP5070206B2 true JP5070206B2 (ja) 2012-11-07

Family

ID=36992319

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008513733A Expired - Fee Related JP5070206B2 (ja) 2005-05-23 2006-05-23 ハードウェア資源のシステム内再構成

Country Status (8)

Country Link
US (2) US7640541B2 (ja)
JP (1) JP5070206B2 (ja)
KR (1) KR100962747B1 (ja)
CN (1) CN101180608B (ja)
DE (1) DE112006001308T5 (ja)
GB (1) GB2439889B (ja)
TW (1) TWI328189B (ja)
WO (1) WO2006127949A1 (ja)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7450242B2 (en) * 2004-12-10 2008-11-11 Fujifilm Corporation Optical tomography apparatus
US7716501B2 (en) * 2006-06-30 2010-05-11 Advanced Micro Devices, Inc. Method of providing a customer with increased integrated circuit performance
US20080115217A1 (en) * 2006-10-31 2008-05-15 Hewlett-Packard Development Company, L.P. Method and apparatus for protection of a computer system from malicious code attacks
US8296849B2 (en) * 2006-10-31 2012-10-23 Hewlett-Packard Development Company, L.P. Method and apparatus for removing homogeneity from execution environment of computing system
US7809926B2 (en) * 2006-11-03 2010-10-05 Cornell Research Foundation, Inc. Systems and methods for reconfiguring on-chip multiprocessors
US7857222B2 (en) 2007-08-16 2010-12-28 Hand Held Products, Inc. Data collection system having EIR terminal interface node
CN101946452A (zh) 2007-12-13 2011-01-12 塞尔蒂卡姆公司 用于控制器件上的特征的系统和方法
US7663957B2 (en) * 2008-05-27 2010-02-16 Via Technologies, Inc. Microprocessor with program-accessible re-writable non-volatile state embodied in blowable fuses of the microprocessor
US8402279B2 (en) * 2008-09-09 2013-03-19 Via Technologies, Inc. Apparatus and method for updating set of limited access model specific registers in a microprocessor
US8341419B2 (en) * 2008-09-09 2012-12-25 Via Technologies, Inc. Apparatus and method for limiting access to model specific registers in a microprocessor
CN102648471B (zh) 2008-11-24 2015-05-27 塞尔蒂卡姆公司 用于基于硬件的安全的系统和方法
US20100329188A1 (en) * 2009-06-29 2010-12-30 Yu-Chih Jen Method for Handling Transmission Status and Related Communication Device
WO2011003199A1 (en) 2009-07-10 2011-01-13 Certicom Corp. System and method for managing electronic assets
JP5502198B2 (ja) 2009-07-10 2014-05-28 サーティコム コーポレーション デバイスのシリアライゼーションを実行するためのシステムおよび方法
EP2282263A1 (fr) * 2009-07-31 2011-02-09 Gemalto SA Procédé de configuration fonctionnelle d'un circuit intégré pour carte à puce en vue d'une utilisation optimale de ses ressources
US8316243B2 (en) * 2009-08-07 2012-11-20 Via Technologies, Inc. Apparatus and method for generating unpredictable processor-unique serial number for use as an encryption key
US9497092B2 (en) 2009-12-08 2016-11-15 Hand Held Products, Inc. Remote device management interface
EP2405376B1 (en) 2010-07-09 2017-01-04 BlackBerry Limited Utilization of a microcode interpreter built in to a processor
US9690941B2 (en) * 2011-05-17 2017-06-27 Microsoft Technology Licensing, Llc Policy bound key creation and re-wrap service
US9331855B2 (en) 2011-07-01 2016-05-03 Intel Corporation Apparatus, system, and method for providing attribute identity control associated with a processor
US20130055228A1 (en) * 2011-08-29 2013-02-28 Fujitsu Limited System and Method for Installing a Patch on a Computing System
US8621123B2 (en) 2011-10-06 2013-12-31 Honeywell International Inc. Device management using virtual interfaces
US8539123B2 (en) 2011-10-06 2013-09-17 Honeywell International, Inc. Device management using a dedicated management interface
WO2013119065A1 (en) * 2012-02-10 2013-08-15 Samsung Electronics Co., Ltd. Securely upgrading or downgrading platform components
US8667270B2 (en) 2012-02-10 2014-03-04 Samsung Electronics Co., Ltd. Securely upgrading or downgrading platform components
US8949818B2 (en) * 2012-06-29 2015-02-03 Intel Corporation Mechanism for facilitating dynamic and trusted cloud-based extension upgrades for computing systems
US20140068561A1 (en) * 2012-09-05 2014-03-06 Caterpillar Inc. Control system having automatic component version management
US9348690B2 (en) 2013-08-21 2016-05-24 Via Alliance Semiconductor Co., Ltd. Correctable configuration data compression and decompression system
US9223715B2 (en) 2013-08-21 2015-12-29 Via Alliance Semiconductor Co., Ltd. Microprocessor mechanism for decompression of cache correction data
US9716625B2 (en) 2013-10-09 2017-07-25 International Business Machines Corporation Identifying compatible system configurations
US9306805B2 (en) 2013-11-07 2016-04-05 International Business Machines Corporation Dynamic conversion of hardware resources of a server system
US9606933B2 (en) 2014-05-22 2017-03-28 Via Alliance Semiconductor Co., Ltd. Multi-core apparatus and method for restoring data arrays following a power gating event
US9524241B2 (en) 2014-05-22 2016-12-20 Via Alliance Semiconductor Co., Ltd. Multi-core microprocessor power gating cache restoral mechanism
US9665490B2 (en) 2014-05-22 2017-05-30 Via Alliance Semiconductor Co., Ltd. Apparatus and method for repairing cache arrays in a multi-core microprocessor
US9395802B2 (en) 2014-05-22 2016-07-19 Via Alliance Semiconductor Co., Ltd. Multi-core data array power gating restoral mechanism
US9874927B2 (en) * 2014-06-26 2018-01-23 Intel Corporation Method and apparatus for precision CPU maximum power detection
US20150381368A1 (en) * 2014-06-27 2015-12-31 William A. Stevens, Jr. Technologies for secure offline activation of hardware features
US9768599B2 (en) 2014-07-17 2017-09-19 Honeywell International Inc. Separable wallbox device and memory
US9748708B2 (en) 2014-10-14 2017-08-29 Honeywell International Inc. Poke-in electrical connector
CN104317613A (zh) * 2014-10-15 2015-01-28 广西大学 广播电视发射台远程监控系统的采集控制器软件升级方法
US9461994B2 (en) 2014-11-26 2016-10-04 Intel Corporation Trusted computing base evidence binding for a migratable virtual machine
EP3128383B1 (de) * 2015-08-03 2020-06-03 Schneider Electric Industries SAS Feldgerät
US9897339B2 (en) 2016-02-12 2018-02-20 Honeywell International Inc. HVAC wall mountable connector with memory
US9941183B2 (en) 2016-02-12 2018-04-10 Honeywell International Inc. Wall mountable connector with wall covering plate
US9735482B1 (en) 2016-02-12 2017-08-15 Honeywell International Inc. Wall mountable connector with commonly used field wire terminals spaced from one another
US9735518B1 (en) 2016-02-12 2017-08-15 Honeywell International Inc. Wall mountable connector terminal configuration
US9768564B2 (en) 2016-02-12 2017-09-19 Honeywell International Inc. HVAC wall mountable connector with mounting features
US9667009B1 (en) 2016-02-12 2017-05-30 Honeywell International Inc. HVAC wall mountable connector with movable door
US9780511B2 (en) 2016-02-12 2017-10-03 Honeywell International Inc. Jumper switch for an HVAC wall mountable connector
US9989273B2 (en) 2016-02-12 2018-06-05 Honeywell International Inc. Wall covering plate for use with an HVAC controller
US10359790B2 (en) 2016-02-12 2019-07-23 Ademco Inc. Multi piece HVAC controller housing with latches and guiding features
US9774158B2 (en) 2016-02-12 2017-09-26 Honeywell International Inc. Wall mountable connector with built in jumper functionality
US9686880B1 (en) 2016-02-12 2017-06-20 Honeywell International Inc. Thermostat housing with pc board locating apertures
US10208972B2 (en) 2016-02-12 2019-02-19 Ademco Inc. Automatic detection of jumper switch position of a wall mount connector
USD843324S1 (en) 2016-02-12 2019-03-19 Ademco Inc. Wall mountable connector with terminal labels
US9960581B2 (en) 2016-02-12 2018-05-01 Honeywell International Inc. Adapter plate with mounting features for a wall mountable connector
US10054326B2 (en) 2016-02-12 2018-08-21 Honeywell International Inc. Wall mountable connector for an HVAC controller
US20170257369A1 (en) * 2016-03-04 2017-09-07 Altera Corporation Flexible feature enabling integrated circuit and methods to operate the integrated circuit
US10268844B2 (en) 2016-08-08 2019-04-23 Data I/O Corporation Embedding foundational root of trust using security algorithms
US10895883B2 (en) 2016-08-26 2021-01-19 Ademco Inc. HVAC controller with a temperature sensor mounted on a flex circuit
US10024568B1 (en) 2017-09-14 2018-07-17 Honeywell International Inc. Lock box for a building controller
US11288124B2 (en) 2019-03-30 2022-03-29 Intel Corporation Methods and apparatus for in-field mitigation of firmware failures
CN114924776A (zh) * 2022-04-20 2022-08-19 阿里巴巴(中国)有限公司 可编程逻辑器件升级方法、装置、系统、设备及程序产品

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530753A (en) * 1994-08-15 1996-06-25 International Business Machines Corporation Methods and apparatus for secure hardware configuration
US5850518A (en) * 1994-12-12 1998-12-15 Northrup; Charles J. Access-method-independent exchange
US6279153B1 (en) * 1995-10-16 2001-08-21 Nec Corporation Multi-user flash ROM update
US5771287A (en) * 1996-08-01 1998-06-23 Transcrypt International, Inc. Apparatus and method for secured control of feature set of a programmable device
US6694317B1 (en) * 1997-12-31 2004-02-17 International Business Machines Corporation Method and apparatus for high-speed access to and sharing of storage devices on a networked digital data processing system
US6954777B1 (en) * 1999-07-29 2005-10-11 International Business Machines Corporation Method for extending capabilities of an arbitrary web server
US6718407B2 (en) * 1999-09-30 2004-04-06 Intel Corporation Multiplexer selecting one of input/output data from a low pin count interface and a program information to update a firmware device from a communication interface
US6687734B1 (en) * 2000-03-21 2004-02-03 America Online, Incorporated System and method for determining if one web site has the same information as another web site
US6744450B1 (en) * 2000-05-05 2004-06-01 Microsoft Corporation System and method of providing multiple installation actions
US6698018B1 (en) * 2000-05-10 2004-02-24 Microsoft Corporation System and method of multiple-stage installation of a suite of applications
US7526762B1 (en) * 2000-06-30 2009-04-28 Nokia Corporation Network with mobile terminals as browsers having wireless access to the internet and method for using same
US8087014B1 (en) * 2000-10-26 2011-12-27 Qualcomm Incorporated Method and apparatus for configuration management for a computing device
US7133822B1 (en) * 2001-03-29 2006-11-07 Xilinx, Inc. Network based diagnostic system and method for programmable hardware
US20030110484A1 (en) * 2001-12-10 2003-06-12 David Famolari Method and apparatus utilizing bluetooth transmission protocols to update software resident on a network of computing devices
US7133874B2 (en) * 2001-12-13 2006-11-07 Microsoft Corporation Prototyping model for components of a software program
US7562208B1 (en) * 2002-02-07 2009-07-14 Network Appliance, Inc. Method and system to quarantine system software and configuration
US6954930B2 (en) 2002-02-19 2005-10-11 International Business Machines Corporation Remote validation of installation input data
JP3906735B2 (ja) * 2002-04-19 2007-04-18 株式会社デンソー 車載通信システム
US20040010643A1 (en) * 2002-07-09 2004-01-15 Thomas William John Method for providing multiple configurations in a computer system with multiple components
US7814476B2 (en) * 2002-10-31 2010-10-12 Oracle America, Inc. Systems and methods for updating software
US7146610B2 (en) * 2003-03-27 2006-12-05 Taiwan Semiconductor Manufacturing Company, Ltd. Method for upgrading software components without system shutdown
US7324450B2 (en) * 2003-03-31 2008-01-29 Intel Corporation Method and apparatus for programming a functionality of an integrated circuit (IC)
US20050240919A1 (en) * 2004-04-27 2005-10-27 Kim Kyoug I Firmware update using memory card reader
US7269829B2 (en) * 2004-07-30 2007-09-11 Signature Control Systems, Inc. Method and system for remote update of microprocessor code for irrigation controllers
US7937696B2 (en) * 2004-12-16 2011-05-03 International Business Machines Corporation Method, system and program product for adapting software applications for client devices
US8001527B1 (en) * 2004-12-21 2011-08-16 Zenprise, Inc. Automated root cause analysis of problems associated with software application deployments
US20060195832A1 (en) * 2005-02-25 2006-08-31 Microsoft Corporation Modules for composing computer systems
US7917894B2 (en) * 2005-06-03 2011-03-29 International Business Machines Corporation Constraining source code and objects for analysis tools
US7849455B2 (en) * 2006-08-23 2010-12-07 Sap Ag Synchronization and transmission of distributed user interfaces over computer networks
US8166469B2 (en) * 2007-08-20 2012-04-24 Red Hat, Inc. Method and an apparatus to conduct software release

Also Published As

Publication number Publication date
US20070006213A1 (en) 2007-01-04
GB2439889A (en) 2008-01-09
KR20080005567A (ko) 2008-01-14
US20100058323A1 (en) 2010-03-04
CN101180608A (zh) 2008-05-14
US7640541B2 (en) 2009-12-29
KR100962747B1 (ko) 2010-06-10
TW200713028A (en) 2007-04-01
GB0721237D0 (en) 2007-12-05
DE112006001308T5 (de) 2008-04-17
CN101180608B (zh) 2012-05-09
WO2006127949A1 (en) 2006-11-30
GB2439889B (en) 2009-10-28
JP2008542882A (ja) 2008-11-27
TWI328189B (en) 2010-08-01
US8375380B2 (en) 2013-02-12

Similar Documents

Publication Publication Date Title
JP5070206B2 (ja) ハードウェア資源のシステム内再構成
CN101714200B (zh) 强化计算机系统的装置和方法
JP2021072116A (ja) ブロックチェーンに基づく資産権利管理システムとその方法
CN100561437C (zh) 用于对系统bios本地及远程更新及配置的独立于芯片组的方法
TWI599973B (zh) 用於將預安裝之軟體連結至一線上商店之一使用者帳戶之系統及方法
US20130019237A1 (en) System and method for linking pre-installed software to a user account on an online store
US20100235265A1 (en) Process for the on-line sale of a software product
US20090183245A1 (en) Limited Functionality Mode for Secure, Remote, Decoupled Computer Ownership
US20100250400A1 (en) Apparatus and methods for the sale of software products
TW201224841A (en) Software activation using digital licenses
US20070234073A1 (en) Random password automatically generated by bios for securing a data storage device
US20020124168A1 (en) Method and system for upgrading a user environment
US9292664B2 (en) Key injection tool
CN100530027C (zh) 整合安全角色的系统和方法
TW201610749A (zh) 用於硬體特徵之安全離線活化的技術
KR20160019436A (ko) 제3자 제품에 대한 교차 스토어 라이센싱 기법
US20080077420A1 (en) System and Method for Securely Updating Remaining Time or Subscription Data for a Rental Computer
US20090018962A1 (en) Method for activating application module
CN113449283A (zh) 由主机软件下载的基于非rom的ip固件验证
US20220237297A1 (en) Secure coprocessor enforced system firmware feature enablement
US20080184026A1 (en) Metered Personal Computer Lifecycle
US11593462B2 (en) Baseboard management controller firmware security system
CN114925376A (zh) 设备使用时融入的智能技术
KR20130037096A (ko) 중고 거래 시스템 및 중고 애플리케이션 실행 방법
Gerrits Implementing a DRM-Preserving Digital Content Redistribution System

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120221

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120516

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120523

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120612

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120731

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120820

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150824

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees