(57)【要約】【課題】  安全なブートＲＯＭパッチのためのシステム及び方法を提供する。【解決手段】  データ処理システム（１００）は、ブートコードを記憶するように構成されているブート読み出し専用メモリ（ＲＯＭ）（１０４）と、パッチ命令を記憶するように構成されているワンタイムプログラマブル（ＯＴＰ）記憶回路（１１６）と、ランダムアクセスメモリ（ＲＡＭ）（１１０）と、ブートＲＯＭ、ＯＴＰ記憶回路及びＲＡＭに結合されているプロセッサ（１０２）とを含む。プロセッサは、データ処理システムのリセットに応答して、ＯＴＰ記憶回路からの１つ以上のパッチ命令をＲＡＭにコピーし、ブートコードの実行中、ブートコードのブート命令の代わりにＲＡＭからのパッチ命令を実行するように構成されている。【選択図】  図１
2015049906.tif 000002
【特許請求の範囲】
【請求項１】
データ処理システムであって、
ブートコードを記憶するように構成されているブート読み出し専用メモリ（ＲＯＭ）と、
パッチ命令を記憶するように構成されているワンタイムプログラマブル（ＯＴＰ）記憶回路と、
ランダムアクセスメモリ（ＲＡＭ）と、
前記ブートＲＯＭ、前記ＯＴＰ記憶回路及び前記ＲＡＭに結合されているプロセッサであり、
前記データ処理システムのリセットに応答して、前記ＯＴＰ記憶回路からの１つ以上のパッチ命令を前記ＲＡＭにコピーし、
前記ブートコードの実行中、前記ブートコードのブート命令の代わりに前記ＲＡＭからの前記パッチ命令のうちの１つ以上を実行するように構成されているプロセッサと、
を含むデータ処理システム。
【請求項２】
ＲＯＭロックビットを記憶するように構成されている記憶回路をさらに含み、前記プロセッサは、前記１つ以上のパッチ命令が前記ＯＴＰ記憶回路から前記ＲＡＭにコピーされた後に、前記ＲＯＭロックビットをアサートするように構成されている、請求項１に記載のデータ処理システム。
【請求項３】
前記ＲＯＭに結合されているＲＯＭコントローラをさらに含み、前記ＯＴＰ記憶回路は、ＲＯＭコントローラ構成データを記憶するように構成されている、請求項１に記載のデータ処理システム。
【請求項４】
前記プロセッサは、前記データ処理システムの前記リセットに応答して、前記ＲＯＭコントローラ構成データを使用して前記ＲＯＭコントローラを構成するようにさらに構成されており、前記ＲＯＭコントローラ構成データは、前記パッチ命令の前記ＲＡＭ内の場所を示す、請求項３に記載のデータ処理システム。
【請求項５】
前記ブートコードは、ＲＯＭコントローラ構成命令を含み、前記プロセッサは、前記データ処理システムの前記リセットに応答して、前記ＲＯＭコントローラ構成データを使用して、前記ＲＯＭからの前記ＲＯＭコントローラ構成命令の実行に応答して前記ＲＯＭコントローラを構成するように構成されている、請求項４に記載のデータ処理システム。
【請求項６】
前記プロセッサは、前記データ処理システムの前記リセットに応答して、前記ブートコードに対する少なくとも１つのパッチ命令が利用可能であるか否かを判定するように構成されており、前記ＯＴＰ記憶回路からの前記１つ以上のパッチ命令を前記ＲＡＭにコピーすることは、前記ブートコードに対する少なくとも１つのパッチ命令が利用可能であるという判定に応答して実行される、請求項１に記載のデータ処理システム。
【請求項７】
前記プロセッサは、前記データ処理システムの前記リセットに応答して、パッチ命令が利用可能でない場合にＲＯＭパッチングをディセーブルするように構成されている、請求項１に記載のデータ処理システム。
【請求項８】
前記ブートコードは、パッチコピー命令を含み、前記プロセッサは、前記データ処理システムの前記リセットに応答して、前記ＯＴＰ記憶回路からの前記１つ以上のパッチ命令を、前記ＲＯＭからの前記パッチコピー命令の実行に応答して前記ＲＡＭにコピーするように構成されている、請求項１に記載のデータ処理システム。
【請求項９】
ブート読み出し専用メモリ（ＲＯＭ）と、ワンタイムプログラマブル（ＯＴＰ）記憶回路と、ランダムアクセスメモリ（ＲＡＭ）とを有するデータ処理システムにおいて、
システムリセット信号を受信する工程と、
前記システムリセット信号に応答して、前記ＯＴＰ記憶回路からの少なくとも１つのパッチ命令を前記ＲＡＭにコピーする工程と、
前記ブートＲＯＭからのブートコードを実行する工程であって、前記ブートコードの実行中、前記ＲＡＭ内の前記少なくとも１つのパッチ命令のうちの１つのパッチ命令が、前記ブートコードのブート命令の代わりに実行される、実行工程と、
を含む方法。
【請求項１０】
前記システムリセット信号に応答して、前記ブートコードの構成命令を実行して、前記ＯＴＰ記憶回路内に記憶されている構成データを使用して前記ＲＯＭに結合されているＲＯＭコントローラを構成する、実行工程をさらに含む、請求項９に記載の方法。
【請求項１１】
前記ＲＯＭ構成データは、前記パッチ命令の前記ＲＡＭ内の場所を示す、請求項１０に記載の方法。
【請求項１２】
前記ＯＴＰ記憶回路からの前記少なくとも１つのパッチ命令を前記ＲＡＭにコピーした後、前記ＲＯＭコントローラのロックビットをアサートして前記ＲＯＭの構成の完了を示す、アサート工程をさらに含む、請求項１０に記載の方法。
【請求項１３】
前記システムリセット信号に応答して、前記ブートＲＯＭ内の前記ブートコードの場所を示すリセットベクトルを受信する工程をさらに含む、請求項９に記載の方法。
【請求項１４】
前記システムリセット信号に応答して、前記ＯＴＰ記憶回路からの前記少なくとも１つのパッチ命令を前記ＲＡＭにコピーする前に、前記ＯＴＰ記憶回路が１つ以上の利用可能なパッチ命令を有すると判定する工程をさらに含む、請求項９に記載の方法。
【請求項１５】
データ処理システムであって、
パッチコピー命令を含むブートコードを記憶するように構成されているブート読み出し専用メモリ（ＲＯＭ）と、
前記ブートＲＯＭに結合されているＲＯＭコントローラと、
パッチ命令を記憶するように構成されているワンタイムプログラマブル（ＯＴＰ）記憶回路と、
ランダムアクセスメモリ（ＲＡＭ）と、
前記ブートＲＯＭ、前記ＲＯＭコントローラ、前記ＯＴＰ記憶回路及び前記ＲＡＭに結合されているプロセッサであり、前記データ処理システムのリセットに応答して、
前記ＲＯＭコントローラから受信されるリセットベクトルが示す場所において前記ブートコードの実行を開始し、
前記パッチコピー命令を実行して前記ＯＴＰ記憶回路からの少なくとも１つのパッチ命令を前記ＲＡＭにコピーし、
前記ブートコードの実行を継続し、前記ブートコードの実行中、前記ＲＡＭからの前記少なくとも１つのパッチ命令は、前記ブートコードのブート命令の代わりに実行されるように構成されているプロセッサと、
を含む、データ処理システム。
【請求項１６】
ＲＯＭロックビットを記憶するように構成されている記憶回路をさらに含み、前記プロセッサは、前記少なくとも１つのパッチ命令が前記ＯＴＰ記憶回路から前記ＲＡＭにコピーされた後に、前記ＲＯＭロックビットをアサートするように構成されている、請求項１５に記載のデータ処理システム。
【請求項１７】
前記ブートコードはＲＯＭコントローラ構成命令を含み、前記ＯＴＰ記憶回路はＲＯＭコントローラ構成データを記憶するように構成されている、請求項１５に記載のデータ処理システム。
【請求項１８】
前記プロセッサは、前記ＲＯＭコントローラ構成命令を実行して、前記ＲＯＭコントローラ構成データを使用して前記ＲＯＭコントローラを構成するようにさらに構成されており、前記ＲＯＭコントローラ構成データは、前記パッチ命令の前記ＲＡＭ内の場所を示す、請求項１７に記載のデータ処理システム。
【請求項１９】
前記プロセッサは、前記データ処理システムの前記リセットに応答して、前記ブートコードに対する何らかのパッチ命令が利用可能であるか否かを判定するように構成されており、前記ＯＴＰ記憶回路からの前記少なくとも１つのパッチ命令を前記ＲＡＭにコピーすることは、前記ブートコードに対する１つ以上のパッチ命令が利用可能であるという判定に応答して実行される、請求項１５に記載のデータ処理システム。
【請求項２０】
前記プロセッサは、前記データ処理システムの前記リセットに応答して、前記ＯＴＰ記憶回路内でパッチ命令が利用可能でない場合にＲＯＭパッチングをディセーブルするように構成されている、請求項１５に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して半導体デバイスに関し、より具体的には、システムオンチップ（ＳｏＣ）デバイスのためのブート読み出し専用メモリに安全にパッチを当てることに関する。
【背景技術】
【０００２】
開発が進められているシステムオンチップ（ＳｏＣ）は、プロセッサ、メモリ、周辺機器及びバスのような多くの構成要素を含む。いくつかのＳｏＣは、オンチップブート読み出し専用メモリ（ＲＯＭ）を実装するが、他者はそうではなく、プロセッサをブートストラップするための命令を記憶するためにオンチップフラッシュを実装するか、又はオフチップメモリを使用する。セキュリティが懸案事項であり、オンチップフラッシュが選択肢にない場合、ＳｏＣが一度製造されるとＲＯＭを変更することはできないため、ブートＲＯＭが好ましい。ブートＲＯＭは、プロセッサ上で動作するソフトウェアを認証するための信頼されるコードとしての役割も果たすことができる。電源が切られるか又はリセットされた後にプロセッサが起動するとき、初期化プロセスは、命令及び／又は既知の問題を訂正するかもしくは追加の機能を加えるデータによって、ＳｏＣ上のＲＯＭの領域にパッチを当てることを含む。セキュリティ懸案事項に起因して、既存のオンチップＲＯＭパッチメカニズムは、安全なブートをサポートするすべてのブートＲＯＭに対してディセーブルにされる。基本的な問題は、パッチングが注意深く行われない場合、ＲＯＭコードの信頼性を弱める可能性があるということである。イネーブルなままである場合、既存のパッチメカニズムは、許可されていない、試験されていない変更が導入される可能性に起因して安全なブートプロセスを損なう可能性がある。
【０００３】
オンチップＲＯＭにパッチを使用することなく問題を修正するには改良された回路マスクが必要であり、縮小加工技術によって、ＲＯＭ修正のために１つ以上のマスクを改良することにより費用がかかるようになっている。Ｃ４０  ＲＯＭマスクは、たとえば、Ｃ６５シリコンウェハマスクの２倍高価である。そのようなＲＯＭ改良は、多大な開発、検証試行及び顧客の統合をも必要とし、それによって、製品の発売がさらに著しく遅延し、それゆえ収益が遅延する。ＳｏＣが新たなシリコンウェハマスクを作成する必要なしに製造されると、問題及び変化する要件に対処するための安全なオンチップＲＯＭパッチメカニズムを有することが非常に望ましい。
【図面の簡単な説明】
【０００４】
本開示は例として示されており、添付の図面によって限定されない。図面において、同様の参照符号は類似の要素を示す。図面内の要素は簡潔かつ明瞭にするために示されており、必ずしも原寸に比例して描かれてはいない。
【０００５】
【図１】本開示に応じたシステムオンチップ（ＳｏＣ）の一実施形態のブロック図。
【図２】図１のＳｏＣに使用することができる読み出し専用メモリ（ＲＯＭ）コントローラの一実施形態のブロック図。
【図３】安全ブートＲＯＭ機能を使用して製造中の図１のＳｏＣを構成するための方法のフロー図。
【図４】本開示に応じた図１のＳｏＣのブートＲＯＭにパッチを当てるための方法のフロー図。
【発明を実施するための形態】
【０００６】
システムオンチップ（ＳｏＣ）半導体デバイス内のオンチップ読み出し専用メモリ（ＲＯＭ）に安全にパッチを当てる機能を提供するシステム及び方法の実施形態が開示される。いくつかの実施形態において、ＲＯＭパッチコード又は命令が、ＳｏＣ上に存在する電子ヒューズのようなワンタイムプログラマブル（ＯＴＰ）記憶回路内で安全にプログラムされる。したがって、ＲＯＭパッチコードは、既存のブートＲＯＭと同じ安全属性を有し、ロックメカニズムが、ＳｏＣが製造者によって一度生産されるとＲＯＭパッチコードが改変されるのを防止する。安全ブートプロセスの完全性に影響をおよぼすことなく、新たなブートＲＯＭコード発行に安全にパッチを当てることができる。ＳｏＣのために新たなシリコンウェハマスクを開発及び修正する必要なしに、本明細書に記載するように安全ブートＲＯＭコードにパッチを当てることができることによって、費用の節約になり、効率が改善する。
【０００７】
図１は、プロセッサ１０２と、ＲＯＭコントローラ（ＲＯＭＣ）構成命令１０６及びパッチデータコピー命令１０７を有するブートＲＯＭ１０４と、ＲＯＭロックビットを記憶するためのレジスタ１０９を有するＲＯＭコントローラ１０８と、メモリコントローラ１１１及びパッチデータ１１２を有する内部メモリ１１０と、ワンタイムプログラム（ＯＴＰ）コントローラ１１４と、ブートＲＯＭパッチデータ１１８、ＲＯＭＣ構成データ１２０及びＯＴＰロックビット１２２を記憶するためのレジスタ又は要素を有するＯＴＰ記憶要素１１６とを含む、本開示に応じたシステムオンチップ（ＳｏＣ）処理システム１００の一実施形態のブロック図を示す。
【０００８】
ＳｏＣ１００は、独立した計算能力を１者以上のユーザに与えるように設計されることができる情報取扱システムである。ＳｏＣ１００は、メインフレーム、ミニコンピュータ、サーバ、ワークステーション、パーソナルコンピュータ、ノートパッド、電子リーダ、携帯情報端末、電子ゲーム、自動車、航空機、機械装置、埋め込みシステム、ならびに携帯電話及びさまざまな他の無線デバイスを含む多くのデバイスに使用されてもよいが、これらには限定されない。ＳｏＣ１００は少なくとも１つのプロセッサ１０２を含む。ＳｏＣ１００は、プログラムに従って情報を処理し、Ｉ／Ｏデバイスを介して結果得られる出力情報を生成する。プログラムは、特定のアプリケーションプログラム及び／又はオペレーティングシステムのような、命令のリストである。コンピュータプログラムは、一般的に、コンピュータ可読記憶媒体上に内部的に記憶されるか、あるいはコンピュータ可読伝送媒体を介してコンピュータシステムに送信される。コンピュータプロセスは通常、実行している（動作している）プログラム又はプログラムの一部、現在のプログラム値及び状態情報、ならびにプロセスの実行を管理するためにオペレーティングシステムによって使用されるリソースを含む。親プロセスが、親プロセスの機能全体を実行するのを助けるための他の子プロセスを生成させてもよい。
【０００９】
ＳｏＣ１００は、互いに相互接続される任意の数の別個の集積回路又は別個のデバイスを含むことができる。たとえば、内部メモリ１１０はプロセッサ１０２と同じ集積回路上に位置してもよい。追加のメモリが別個の集積回路上に位置してもよく、あるいはＳｏＣ１００の他の要素から離散的に分離されている別の周辺機器もしくはスレーブ内に位置してもよい。いくつかの実施形態において、パッチデータ１１２は、パッチデータ１１２の許可されていない改ざんの可能性を低減するために、ＳｏＣ１００の内部にあるメモリ内にのみ記憶される。
【００１０】
ブートＲＯＭ１０４は、データを一度プログラムされ、必要に応じて都度読み出すことができる任意の適切なタイプのＲＯＭを使用して実装することができる。ＲＯＭＣ構成命令１０６は、ＲＯＭ構成データ１２０を読み出し、構成データをＲＯＭコントローラ１０８内でプログラムするプロセッサ命令を含む。ＲＯＭＣ構成データ１２０は、他の情報の中でも、パッチが開始し得る内部メモリ１１０内の目標アドレスを構成するのに使用することができる。パッチデータコピー命令１０７は、プロセッサ１０２がブートＲＯＭパッチデータ１１８を内部メモリ１１０のパッチデータ１１２にコピーするのに使用してもよい実行可能命令を含む。
【００１１】
ＲＯＭコントローラ１０８は、他の機能の中でも、レジスタ１０９内のＲＯＭロックビットをアサート又はアサート停止する論理命令を有する処理装置である。たとえば、安全ブートＲＯＭパッチが利用可能であるとき、ＲＯＭコントローラ１０８は、ＲＯＭロックビットを、ＲＯＭコントローラ１０８の構成をロックするように設定することができる。
【００１２】
内部メモリ１１０は、メモリコントローラ１１１と、パッチデータ１１２を記憶するための記憶要素とを含む任意の適切なランダムアクセスメモリ（ＲＡＭ）とすることができる。メモリコントローラ１１１は、他の機能の中でも、パッチデータ１１２に対する書き込みアクセスを制御する。
【００１３】
ＯＴＰコントローラ１１４は、他の機能の中でも、ブートＲＯＭパッチデータ１１８、ＲＯＭＣ構成データ１２０及びＯＴＰロックビット１２２に対してＯＴＰ記憶要素１１６にアクセスするための論理命令を実行する処理モジュール又は回路を含む。ＯＴＰ記憶要素１１６は、一度書き込まれ、必要に応じて都度読み出すことができる任意の適切なデバイスを使用して実装することができる。たとえば、ＯＴＰ記憶要素１１６は、電子ヒューズ又は他のワンタイムプログラマブル不揮発性メモリを使用して実装することができる。
【００１４】
ＯＴＰロックビット１２２は、ブートＲＯＭパッチデータ１１８及びＲＯＭＣ構成データ１２０が一度ＯＴＰ記憶要素１１６に書き込まれると、ブートＲＯＭパッチデータ１１８及びＲＯＭＣ構成データ１２０に対する変更を防止するのに使用することができる。
【００１５】
図２は、ＲＯＭ制御論理２０２、ＲＯＭパッチアドレス比較論理２０４、マルチプレクサ２０６、及びＲＯＭＣレジスタ２０８を含む、図１のＳｏＣ１００内で使用することができる読み出し専用メモリ（ＲＯＭ）コントローラ１０８の一実施形態のブロック図を示す。ＲＯＭ制御論理２０２は、プロセッサ１０２からアドレス及び制御信号を受信し、ＲＯＭアドレスをブートＲＯＭ１０４に提供し、ブートＲＯＭ１０４からＲＯＭデータを受信し、ＲＥＡＤＹ信号をプロセッサ１０２に送信する。ＲＥＡＤＹ信号は、ＲＯＭコントローラ１０８が命令のアドレスを提供すると、プロセッサ１０２が実行を開始することを可能にするのに使用することができる。ＲＯＭ制御論理２０２に提供されるアドレスは、ブートＲＯＭ命令の開始アドレスである。
【００１６】
ＲＯＭＣレジスタ２０８は、ブートＲＯＭ１０４内に存在する命令のアドレスに一致するアドレスを含むＲＯＭＣ構成データ１２０を記憶する。
【００１７】
ＲＯＭパッチアドレス比較論理２０４は、ＲＯＭＣレジスタ２０８及びＲＯＭ制御論理２０２からそれぞれのアドレス信号を受信し、マルチプレクサ２０６の動作を制御するためのパッチオーバーライド信号を提供する。たとえば、ＲＯＭ制御論理２０２からのアドレスがＲＯＭＣレジスタ２０８からのアドレスのうちの１つに一致するとき、パッチオーバーライド信号は、パッチデータをマルチプレクサ２０６の出力として選択するように設定される。ＲＯＭ制御論理２０２からのアドレスがＲＯＭＣレジスタ２０８からのアドレスに一致しないとき、パッチオーバーライド信号は、ＲＯＭデータをマルチプレクサ２０６の出力として選択するように設定される。
【００１８】
図３は、製造中に安全ブートＲＯＭを使用して図１のＳｏＣ１００を構成するための方法３００の流れ図を示す。プロセス３０２は、ＯＴＰ記憶要素１１６がプログラムされていない集積回路又はＳｏＣを受け入れることを含む。
【００１９】
プロセス３０４は、たとえば、製造されているＩＣダイに関する修正情報にアクセスすることができる自動システムによって、ブートＲＯＭパッチが必要とされており、かつ実装することができるか否かを判定することを含む。その特定のＩＣダイについてパッチデータが利用可能であると修正情報が示す場合、プロセス３０６は、そのパッチデータをＯＴＰ記憶要素１１６（図１）にプログラミングすることを含む。ＲＯＭパッチが必要とされているか否かにかかわらず、その後、プロセス３０８は、ＯＴＰ記憶要素１１６内のブートＲＯＭパッチデータ１１８及びＲＯＭＣ構成データ１２０がそれ以上プログラミングされるのを防止するように、ＯＴＰロックビット１２２を設定することができる。プロセス３１０は、従来実行されているように製造プロセスを継続することを含む。
【００２０】
図１及び図４を参照すると、図４は、本開示に応じた図１のＳｏＣ１００のブートＲＯＭ１０４にパッチを当てるための方法４００の流れ図を示している。プロセス４０２は、ユーザによる電源投入又はリセット開始のような、リセット事象の結果として、ＳｏＣ１００内でＲＥＳＥＴ信号を受信することを含む。プロセス４０４は、ＲＯＭコントローラ１０８からリセットベクトルを受信することを含む。リセットベクトルは、プロセッサ又はコア１０２が実行を開始するための命令のアドレスを含む。プロセス４０６は、スタックポインタを設定してランタイム初期化を完了することを含み、これによって、プロセッサ１０２が起動手順を開始するのに必要とする情報が提供される。
【００２１】
プロセス４０８は、ブートＲＯＭ１０４にとって安全なパッチデータが利用可能であるか否かを判定することを含む。いくつかの実施形態において、プロセッサ１０２は、ＯＴＰ記憶要素１１６にアクセスして、安全なパッチデータに対する１つ以上の指定された識別子がＯＴＰ記憶要素１１６内でプログラムされているか否かを調べることができる。ブートＲＯＭパッチデータ１１８は、パッチデータの複数のセットを含むことができ、パッチデータの各セットは、特定のパッチに対する一意の識別子と、パッチが使用されるブートＲＯＭ１０４のアドレスと、ＯＰＣＯＤＥ又はデータパッチのようなパッチのタイプと、パッチのサイズと、パッチデータとを含むことができる。他の適切な情報がパッチデータ内に含まれることができる。安全なブートＲＯＭパッチデータが利用可能であるとき、プロセス４１０は、対応するパッチデータコピー命令１０７を使用して、ＯＴＰ記憶要素１１６からのブートＲＯＭパッチデータ１１８を内部メモリ１１０内のパッチデータ１１２にコピーすることを含む。
【００２２】
プロセス４１０が完了すると、プロセス４１２は、ＲＯＭＣ構成データ１２０を使用してＲＯＭコントローラ１０８をプログラムするためにＲＯＭＣ構成命令１０６を使用することができる。その後、プロセス４１４がＲＯＭロックビットをアサートし、プロセス４１６が安全ブートプロセスを継続する。
【００２３】
再びプロセス４０８を参照して、ブートＲＯＭ１０４の安全なパッチデータが利用可能でない場合、プロセス４０８はプロセス４１８に遷移して、ブートＲＯＭ１０４のパッチングをディセーブルする。その後、プロセス４１８はＲＯＭロックビットをアサートするためのプロセス４１４及び安全ブートプロセスを継続するためのプロセス４１６に遷移する。
【００２４】
ここまでで、一実施形態において、ブートコードを記憶するように構成されているブート読み出し専用メモリ（ＲＯＭ）と、パッチ命令を記憶するように構成されているワンタイムプログラマブル（ＯＴＰ）記憶回路と、ランダムアクセスメモリ（ＲＡＭ）と、ブートＲＯＭ、ＯＴＰ記憶回路及びＲＡＭに結合されているプロセッサとを含むことができるデータ処理システムが提供されたことが諒解されるべきである。処理システムは、データ処理システムのリセットに応答して、ＯＴＰ記憶回路からの１つ以上のパッチ命令をＲＡＭにコピーし、ブートコードの実行中、ブートコードのブート命令の代わりにＲＡＭからのパッチ命令を実行するように構成されている。
【００２５】
別の態様において、データ処理システムは、ＲＯＭロックビットを記憶するように構成されている記憶回路をさらに含むことができる。プロセッサは、１つ以上のパッチ命令がＯＴＰ記憶回路からＲＡＭにコピーされた後に、ＲＯＭロックビットをアサートするように構成することができる。
【００２６】
別の態様において、データ処理システムは、ＲＯＭに結合されているＲＯＭコントローラをさらに含むことができる。ＯＴＰ記憶回路は、ＲＯＭコントローラ構成データを記憶するように構成されている。
【００２７】
別の態様において、プロセッサは、データ処理システムのリセットに応答して、ＲＯＭコントローラ構成データを使用してＲＯＭコントローラを構成するようにさらに構成することができる。ＲＯＭコントローラ構成データは、パッチ命令のＲＡＭ内の場所を示すことができる。
【００２８】
別の態様において、ブートコードは、ＲＯＭコントローラ構成命令を含むことができる。プロセッサは、データ処理システムのリセットに応答して、ＲＯＭコントローラ構成データを使用して、ＲＯＭからのＲＯＭコントローラ構成命令の実行に応答してＲＯＭコントローラを構成するように構成することができる。
【００２９】
別の態様において、プロセッサは、データ処理システムのリセットに応答して、ブートコードに対する少なくとも１つのパッチ命令が利用可能であるか否かを判定するように構成することができる。ＯＴＰ記憶回路からの１つ以上のパッチ命令をＲＡＭにコピーすることは、ブートコードに対する少なくとも１つのパッチ命令が利用可能であるという判定に応答して実行することができる。
【００３０】
別の態様において、プロセッサは、データ処理システムのリセットに応答して、パッチ命令が利用可能でない場合にＲＯＭパッチングをディセーブルするように構成することができる。
【００３１】
別の態様において、ブートコードは、パッチコピー命令を含むことができる。プロセッサは、データ処理システムのリセットに応答して、ＯＴＰ記憶回路からの１つ以上のパッチ命令を、ＲＯＭからのパッチコピー命令の実行に応答してＲＡＭにコピーするように構成することができる。
【００３２】
別の実施形態では、ブート読み出し専用メモリ（ＲＯＭ）と、ワンタイムプログラマブル（ＯＴＰ）記憶回路と、ランダムアクセスメモリ（ＲＡＭ）とを有するデータ処理システムにおいて、方法は、システムリセットを受信する工程と、システムリセットに応答して、ＯＴＰ記憶回路からの少なくとも１つのパッチ命令をＲＡＭにコピーする工程と、ブートＲＯＭからのブートコードを実行する工程とを含むことができる。ブートコードの実行中、ＲＡＭ内の少なくとも１つのパッチ命令のうちの１つのパッチ命令を、ブートコードのブート命令の代わりに実行することができる。
【００３３】
別の態様において、方法は、システムリセットに応答して、ブートコードの構成命令を実行して、ＯＴＰ記憶回路内に記憶されている構成データを使用してＲＯＭに結合されているＲＯＭコントローラを構成する工程をさらに含むことができる。
【００３４】
別の態様において、ＲＯＭ構成データは、パッチ命令のＲＡＭ内の場所を示すことができる。
【００３５】
別の態様において、方法は、ＯＴＰ記憶回路からの少なくとも１つのパッチ命令がＲＡＭにコピーされた後、ＲＯＭコントローラのロックビットをアサートしてＲＯＭの構成の完了を示す工程をさらに含むことができる。
【００３６】
別の態様において、方法は、システムリセットに応答して、ブートＲＯＭ内のブートコードの場所を示すリセットベクトルを受信する工程をさらに含むことができる。
【００３７】
別の態様において、方法は、システムリセットに応答して、ＯＴＰ記憶回路からの少なくとも１つのパッチ命令がＲＡＭにコピーされる前に、ＯＴＰ記憶回路が１つ以上の利用可能なパッチ命令を有すると判定する工程をさらに含むことができる。
【００３８】
別の実施形態において、データ処理システムは、パッチコピー命令を含むブートコードを記憶するように構成されているブート読み出し専用メモリ（ＲＯＭ）と、ブートＲＯＭに結合されているＲＯＭコントローラと、パッチ命令を記憶するように構成されているワンタイムプログラマブル（ＯＴＰ）記憶回路と、ランダムアクセスメモリ（ＲＡＭ）と、ブートＲＯＭ、ＲＯＭコントローラ、ＯＴＰ記憶回路及びＲＡＭに結合されているプロセッサとを含むことができる。データ処理システムは、データ処理システムのリセットに応答して、ＲＯＭコントローラから受信されるリセットベクトルが示す場所においてブートコードの実行を開始し、パッチコピー命令を実行してＯＴＰ記憶回路からの少なくとも１つのパッチ命令をＲＡＭにコピーし、ブートコードの実行を継続するように構成することができる。ブートコードの実行中、ＲＡＭからのパッチ命令を、ブートコードのブート命令の代わりに実行することができる。
【００３９】
別の態様において、データ処理システムは、ＲＯＭロックビットを記憶するように構成されている記憶回路をさらに含むことができる。プロセッサは、少なくとも１つのパッチ命令がＯＴＰ記憶回路からＲＡＭにコピーされた後に、ＲＯＭロックビットをアサートするように構成することができる。
【００４０】
別の態様において、ブートコードはＲＯＭコントローラ構成命令を含むことができ、ＯＴＰ記憶回路はＲＯＭコントローラ構成データを記憶するように構成することができる。
【００４１】
別の態様において、プロセッサは、ＲＯＭコントローラ構成命令を実行して、ＲＯＭコントローラ構成データを使用してＲＯＭコントローラを構成するようにさらに構成することができる。ＲＯＭコントローラ構成データは、パッチ命令のＲＡＭ内の場所を示すことができる。
【００４２】
別の態様において、データ処理システムは、データ処理システムのリセットに応答して、ブートコードに対する何らかのパッチ命令が利用可能であるか否かを判定するようにさらに構成することができる。ＯＴＰ記憶回路からの少なくとも１つのパッチ命令をＲＡＭにコピーすることは、ブートコードに対する１つ以上のパッチ命令が利用可能であるという判定に応答して実行することができる。
【００４３】
別の態様において、データ処理システムは、データ処理システムのリセットに応答して、ＯＴＰ記憶回路内でパッチ命令が利用可能でない場合にＲＯＭパッチングをディセーブルするようにさらに構成することができる。
【００４４】
「アサート」又は「設定」及び「ネゲート」（あるいは「アサート停止」もしくは「クリア」）という用語は、本明細書においては、信号、ステータスビット又は類似の装置をそれぞれ、その論理的に真あるいは論理的に偽の状態にレンダリングすることを指す場合に使用される。論理的に真の状態が論理レベル１である場合、論理的に偽の状態は論理レベル０である。そして、論理的に真の状態が論理レベル０である場合、論理的に偽の状態は論理レベル１である。
【００４５】
本開示を実装する装置は、大部分について、当業者に既知の電子コンポーネント及び回路から成っているため、本開示の基礎となる概念の理解及び諒解のために、ならびに本開示の教示を分かりにくくせず当該教示から注意を逸らさせないために、回路の詳細は上記で例示されているように必要と考えられる範囲を超えては説明されない。
【００４６】
その上、本明細書及び特許請求の範囲における「正面（ｆｒｏｎｔ）」、「裏（ｂａｃｋ）」、「上部（ｔｏｐ）」、「底（ｂｏｔｔｏｍ）」、「上（ｏｖｅｒ）」、「下（ｕｎｄｅｒ）」などの用語は、存在する場合、説明を目的として使用されており、必ずしも永久的な相対位置を記述するために使用されてはいない。このように使用される用語は、本明細書に記載されている本開示の実施形態がたとえば、本明細書において例示又は他の様態で記載されている以外の方向で動作することが可能であるように、適切な状況下で置き換え可能であることが理解される。
【００４７】
「プログラム」という用語は、本明細書において使用される場合、コンピュータシステム上での実行のために設計される一連の命令として定義される。プログラム又はコンピュータプログラムは、サブルーチン、関数、プロシージャ、オブジェクトメソッド、オブジェクトインプリメンテーション、実行可能アプリケーション、アプレット、サーブレット、ソースコード、オブジェクトコード、共有ライブラリ／動的ロードライブラリ及び／又はコンピュータシステム上での実行のために設計される他の一連の命令を含み得る。
【００４８】
上記の実施形態のうちのいくつかは、規定通り、さまざまな異なる情報処理システムを使用して実装することができる。たとえば、図１及びその議論は、例示的な情報処理アーキテクチャを記載しているが、この例示的なアーキテクチャは本開示のさまざまな態様の議論における有用な参照を提供するためにのみ提示されている。無論、このアーキテクチャの記載は議論の目的のために簡略化されており、これは、本開示に従って使用することができる多くの異なる種類の適切なアーキテクチャのうちのほんの１つに過ぎない。論理ブロック間の境界は例示にすぎないこと、及び、代替的な実施形態は、論理ブロックもしくは回路要素を融合し、あるいはさまざまな論理ブロックもしくは回路要素に対する代替的な機能の分解を課してもよいことを、当業者は認識しよう。
【００４９】
したがって、本明細書において描写したアーキテクチャは例示にすぎないこと、及び、事実、同じ機能を達成する多くの他のアーキテクチャを実装することができることは理解されたい。要約すると、ただし依然として明確な意味で、同じ機能を達成するための構成要素の任意の構成が、所望の機能が達成されるように効果的に「関連付けられる」。したがって、本明細書における、特定の機能を達成するために結合される任意の２つの構成要素は互いに「関連付けられる」とみなすことができ、それによって、中間の構成要素又はアーキテクチャにかかわりなく、所望の機能が達成される。同様に、そのように関連付けられる任意の２つの構成要素も、所望の機能を達成するために互いに「動作可能に接続されている」又は「動作可能に結合されている」とみなすことができる。
【００５０】
さらに、上述の動作の機能間の境界は例示にすぎないことを当業者は認識しよう。複数の動作の機能を単一の動作に組み合わせることができ、かつ／又は単一の動作の機能を追加の動作に分散させることができる。その上、代替的な実施形態は、特定の動作の複数のインスタンスを含んでもよく、動作の順序はさまざまな他の実施形態においては変更してもよい。
【００５１】
本明細書において、具体的な実施形態を参照して本開示を説明したが、添付の特許請求の範囲に明記されているような本開示の範囲から逸脱することなくさまざまな改変及び変更を為すことができる。したがって、本明細書及び図面は限定的な意味ではなく例示とみなされるべきであり、すべてのこのような改変が本開示の範囲内に含まれることが意図されている。本明細書において具体的な実施形態に関して記載されているいかなる利益、利点又は問題に対する解決策も、任意の又はすべての請求項の重要な、必要とされるあるいは基本的な特徴又は要素として解釈されるようには意図されていない。
【００５２】
さらに、本明細書において使用される場合、「１つ（“ａ”ｏｒ“ａｎ”）」という用語は、１つ又は２つ以上として定義される。また、特許請求の範囲における「少なくとも１つの」及び「１つ以上の」のような前置きの語句の使用は、不定冠詞「１つの（“ａ”ｏｒ“ａｎ”）」による別の請求項要素の導入が、このように導入された請求項要素を含む任意の特定の請求項を、たとえ同じ請求項が前置きの語句「１つ以上の」又は「少なくとも１つの」及び「１つの（“ａ”ｏｒ“ａｎ”）」のような不定冠詞を含む場合であっても、１つだけのこのような要素を含む開示に限定することを暗示するように解釈されるべきではない。同じことが、定冠詞の使用についても当てはまる。
【００５３】
別途記載されない限り、「第１の」及び「第２の」のような用語は、そのような用語が説明する要素間で適宜区別するように使用される。したがって、これらの用語は必ずしも、このような要素の時間的な又は他の優先順位付けを示すようには意図されていない。
【図１】
2015049906.tif 000003
【図２】
2015049906.tif 000004
【図３】
2015049906.tif 000005
【図４】
2015049906.tif 000006