(57)【要約】      （修正有）【課題】プロセッサによって実行可能なプログラムを有する読み出し専用メモリが、アドレスバスに接続された連想メモリ装置と一緒に、その内部情報に基づいて、前記プロセッサによって要求されたアドレスをアドレスのベクトルの要素と比較することによってパッチングされる。【解決手段】一致検出に適した当該操作は、このベクトルの全ての要素に対して同時に実行され、一般には１クロックサイクル未満内に実行される。一致が発見されたときに、前記連想メモリ装置１６０が、フラッシュメモリから代わりの機械コード要素を修正するために使用される変更アドレスを出力する。この代わりの機械コード要素が、前記読み出し専用メモリ１２０内のアドレス付けされた１つの機械コード要素の代わりに前記プロセッサ１７０に提供される。このパッチング方法は、全体的に透過性であり、オーバーヘッドがほとんどなく、且つ際立ったグラニュラリティを有する。【選択図】図１
2012238312.tif 000002
【特許請求の範囲】
【請求項１】
実行可能な命令又はデータを有する読み出し専用メモリと、前記読み出し専用メモリをアドレス付け可能であり且つバスを通じて前記実行可能な命令又はデータをフェッチ可能であるプロセッサと、前記バスに接続され且つ前記プロセッサによって要求されたアドレスをパッチングすべき複数のアドレスのベクトルと比較するために配置されている連想メモリとを備える情報処理装置であって、前記プロセッサによって要求されたアドレスが、前記ベクトルの要素のうちの１つの要素に一致したときに、前記読み出し専用メモリの、前記プロセッサによってアドレス付けされた実行可能な１つの命令又はデータの場所内の代わりに実行可能な１つの命令又はデータを、前記プロセッサに提供する当該情報処理装置において、
前記連想メモリ装置は、複数の磁気ランダムアクセスメモリセルから構成される１つの磁気ランダムアクセスメモリ装置であり、各磁気ランダムアクセスメモリセルが、少なくとも１つの磁気トンネル接合を有する、当該情報処理装置。
【請求項２】
前記連想メモリ装置は、前記プロセッサによって要求されたアドレスが、パッチングされるべきアドレスのベクトルの要素のうちの１つの要素に一致したときに、前記プロセッサによってアドレス付けされたデータの実行可能な命令の読み出しを阻止するように、このプロセッサに割り込むために配置されている、請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、パッチングされた命令又はデータを有する第２メモリを備え、
前記連想メモリ装置が、パッチングされるべきアドレスのベクトルの各要素に対して、代わりに実行可能な命令又はデータの、第２メモリ内のアドレスを記憶するターゲットベクトルを有する、請求項１に記載の情報処理装置。
【請求項４】
前記情報処理装置は、スマートカードに属する、請求項１に記載の情報処理装置。
【請求項５】
プロセッサによってアクセス可能な読み出し専用メモリ内の実行可能な命令又はデータをパッチングする方法であって、当該方法は、
前記読み出し専用メモリ内でパッチングされなければならない磁気ランダムアクセスメモリセルのアドレスのベクトルを記憶する連想メモリ装置を提供するステップと、
前記読み出し専用メモリ内の実行可能な命令又はデータのアドレスを、前記連想メモリ装置内に記憶されたベクトルの要素と比較するステップとを有し、
前記プロセッサによって要求されたアドレスが、パッチングされるべきアドレスの前記ベクトル内の要素のうちの１つの要素に一致したときに、前記読み出し専用メモリの、前記プロセッサによってアドレス付けされた実行可能な１つの命令又はデータの場所内の代わりに実行可能な１つの命令又はデータを、前記プロセッサに提供する当該方法において、
前記連想メモリ装置は、複数の磁気ランダムアクセスメモリセルから構成される１つの磁気ランダムアクセスメモリ装置、特に１つの磁気ランダムアクセスメモリの三値連想メモリ装置であり、各磁気ランダムアクセスメモリセルが、少なくとも１つの磁気トンネル接合を有する、当該方法。
【請求項６】
前記方法は、前記プロセッサによって要求されたアドレスが、前記ベクトルの要素のうちの１つの要素に一致したときに、前記プロセッサによってアドレス付けされたデータの実行可能な命令の読み出しを阻止するように、このプロセッサに割り込むステップを有する、請求項５に記載の方法。
【請求項７】
前記方法は、前記連想メモリ装置内にある１つのターゲットベクトル内に記憶された１つのアドレスに基づいて、第２メモリから、代わりに実行可能な命令又はデータを修正するステップを有する、請求項５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム命令又はデータを有する読み出し専用メモリと、この読み出し専用メモリ内に記憶されたプログラム又はデータを修正するパッチ命令を有する第２メモリとを備える情報処理装置に関する。また、本発明は、読み出し専用メモリをパッチングする方法にする。
【背景技術】
【０００２】
情報処理装置は、一般にはプロセッサとこのプロセッサによって実行されるプログラムが記憶されているデジタルメモリとを有する。当該プログラムは、例えば、プロセッサによってフェッチされて実行され得る実行可能な命令を有してもよく又はプロセッサの所定の関数を実行するためにこのプロセッサによって必要とされるデジタルデータを有してもよい。様々な形態のデジタル記憶装置が、入手可能であり且つ情報処理装置内で使用される。読み出し専用メモリ（ＲＯＭ）は、読み出しを可能にするものの、この読み出し専用メモリが記憶するデータを変更しない。
【０００３】
マスクＲＯＭが、当該マスクＲＯＭ内に永久に記憶される希望するデータと一緒に通常は製造され、大量生産されたときに非常に安価である利点を提供する。この理由のために、読み出し専用メモリは、永久的なファームウェアを有しなければならない多くのスマートカードチップ又はその他の情報処理装置で使用される。しかしながら、最終の読み出し専用メモリが大量に生産された後に、避けがたいプログラムの誤りを修正するため又はその他の理由のために、記憶されたプログラム及びデータの一部を変更することが一般に必要である。
【０００４】
それ故に、読み出し専用メモリをパッチングする幾つかの方法及び装置が開発されている。これらの方法及び装置では、最初の読み出し専用メモリ内に格納された命令が、プログラムの実行中にこの読み出し専用メモリから独立した再書き込み可能なメモリ（大抵は、フラッシュメモリ）内に格納された命令と交換される。
【０００５】
決定された命令セットが読み出し専用メモリ内に記憶されている通りに実行されるかどうかを実行時間に確認するため、すなわちパッチングされた命令と交換するため、多くの公知のパッチング方法は、読み出し専用メモリをマスクする時に予防的な特別のソフトウェア命令を追加することに依存している。
【０００６】
例えば、公知のパッチングシステムが、関数ｃｈｅｃｋ（ｘ）に対する自動呼出しを各関数の最初に挿入してもよい。挿入された関数ｃｈｅｃｋ（ｘ）が、引数ｘと一緒にハードコード化されている場合、当該ｃｈｅｃｋ（ｘ）は、埋め込まれた関数を意味する。この関数ｃｈｅｃｋ（ｘ）は、その引数ｘがパッチメモリ内の間接テーブルの１つの項目に一致するかどうかを検索し、ヒットされたならば、当該実行をフラッシュメモリ内のパッチルーチンのアドレスに変更させ、ヒットされなかったときは、呼び出し側に戻される。このフラッシュメモリの当該項目アドレスは、間接テーブル内に記憶されている。
【０００７】
上記の公知の機構は、読み出し専用メモリをマスクした後にバグがコードの任意の特別な関数で発見されたときに当該実行を変更することを可能にする。これらの技術及び類似の技術の例が、例えば国際公開第２００９１５６７９０号パンフレット、米国特許第６２６０１５７号明細書又は当該明細書中の参考文献で見つけることができる。しかしながら、当該パッチング方法には、幾つかの欠点がある：このパッチング方法は、自動呼出しを関数ｃｈｅｃｋ（ｘ）に挿入するための特に複雑な方法を要求する；関数ｃｈｅｃｋ（ｘ）に対する余分の呼び出しと、パッチングが実行されなくても間接テーブルの確認中に費やされる余分のサイクルとに起因して、このパッチング方法は、コードサイズを増大させ、性能劣化を引き起こす。上記の事項に関連して、当該方法の粒度（グラニュラリティ）が、必然的にかなり粗い：バグが発生すると、全ての関数が、フラッシュメモリ内で再書き込みされなければならない。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】国際公開第２００９１５６７９０号パンフレット
【特許文献２】米国特許第６２６０１５７号明細書
【特許文献３】米国特許第７５９６７２１号明細書
【特許文献４】米国特許公開第２０１０１１０７４４号明細書
【特許文献５】欧州特許第２２７０８１２号明細書
【特許文献６】国際公開第９８５４６３９号パンフレット
【特許文献７】米国特許公開第２００６１７４２４４号明細書
【特許文献８】欧州特許第２２０４８１４号明細書
【特許文献９】米国特許第６９５０３３５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００９】
したがって、上述した欠点を有さないパッチング方法及び対応する情報処理装置が必要である。特に、複雑で特殊なツールに依存せず、且つ、パッチングが実行されないときにコードを増大させることなしに又はプログラムの実行を遅くすることなしに、特定のアセンブリ命令又は当該アセンブリ命令のグループをパッチングすることを可能にする方法及び装置が必要である。
【００１０】
米国特許第７５９６７２１号明細書は、オーバーヘッドを回避しつつ埋め込まれた読み出し専用メモリのファームウェアに対してパッチングを提供するための方法及び構成を記し且つ連想メモリの使用に言及している。米国特許公開第２０１０１１０７４４号明細書及び欧州特許第２２７０８１２号明細書は、三値連想磁気ランダムアクセスメモリを記す。国際公開第９８５４６３９号パンフレットは、連想メモリを使用するソフトウェアパッチを記す。米国特許公開第２００６１７４２４４号明細書は、連想メモリを通じてファームウェアに制御を移行させることを可能にする方法を記す。
【課題を解決するための手段】
【００１１】
この課題は、本発明により、特許請求の範囲に記載の対象によって解決され、特に、実行可能な命令又はデータを有する読み出し専用メモリ１２０と、前記読み出し専用メモリ１２０をアドレス付け可能であり且つバス２８，４８を通じて前記実行可能な命令又はデータをフェッチ可能であるプロセッサ１７０と、前記バスに接続され且つ前記プロセッサ１７０によって要求されたアドレスをパッチングすべき複数のアドレスのベクトルｘｉと比較するために配置されている連想メモリ１６０とを備える情報処理装置であって、前記プロセッサによって要求されたアドレスが、前記ベクトルｘｉの要素うちの１つの要素に一致したときに、読み出し専用メモリの、前記プロセッサ１７０によってアドレス付けされた実行可能な１つの命令又はデータの場所内の代わりに実行可能な１つの命令又はデータを、前記プロセッサに提供する当該情報処理装置によって解決され、且つ、対応する方法によって解決される。
【図面の簡単な説明】
【００１２】
【図１】本発明に係る情報処理装置を簡略化した形態で示す。
【図２】本発明の実施の形態で使用される磁気ランダムアクセスメモリに基づく連想メモリを示す。
【図３】本発明の実施の形態で使用される磁気ランダムアクセスメモリに基づく連想メモリを示す。
【発明を実施するための形態】
【００１３】
本発明は、例によって与えられ且つ図面によって示された実施の形態の説明の助けでより良好に理解される。
【００１４】
図１によれば、本発明の実施の形態は、プロセッサ１７０を備えたスマートカード（ＩＣカード）を有する。このプロセッサ１７０は、読み出し専用メモリ１２０内に固定記憶されたソフトウェアを実行する。マスクＲＯＭの非常に適したコストに起因して、このマスクＲＯＭが、当該状況で選択される。
【００１５】
従来の方法では、プロセッサ１７０が、アドレスバス２５を通じて読み出し専用メモリ１２０をアドレス付けし、対応する命令又は命令要素を命令／データバス２８上でフェッチする。本発明は、プログラム命令及びデータ用の１つの外部記憶装置を有するプロセッサ（フォン・ノイマン・アーキテクチャー）と独立したプログラムメモリとデータメモリとを有するシステム（ハーバード・アーキテクチャー）との双方に対して適応され得る。以下の例は、実行可能な命令のパッチングを扱う。しかし、本発明のシステム及び方法は、データのパッチングにも適合され且つ属され得る点が理解される必要がある。
【００１６】
アドレスバス２５上で書き込まれたアドレスが、読み出し専用メモリ１２０に加えて連想メモリ（Content-Addressable-Memory）装置１６０に提供される。この連想メモリ装置１６０は、パッチングされなければならない当該読み出し専用メモリ内のアドレスのベクトルを記憶する。本発明によれば、当該連想メモリ装置は、磁気ランダムアクセスメモリに基づいた連想メモリ（ＭＲＡＭ−ＣＡＭ）である。ワードのアドレスに基づいてこのワードにアクセスするランダムアクセスメモリとは違って、連想メモリは、ワードの内容に基づいてこのワードにアクセスする。連想メモリが、従来のランダムアクセスメモリと同様な方法でデータを記憶する。しかしながら、連想メモリを「読み出すこと」は、一致するアドレスが出力され得るように、一致すべき入力データを提供し、次いで当該一致のためにこの連想メモリを検索することを含む。ユーザーが１つのデータワードを供給し、そのデータワードが連想メモリの内のどこに記憶されているかを知るために、当該連想メモリがそのメモリ全体を同時に検索するように、この連想メモリは構成されている。当該データワードが発見された場合は、この連想メモリは、当該データワードが発見された１つ以上の記憶アドレスのリストを戻す。
【００１７】
磁気ランダムアクセスメモリに基づく連想メモリは、特に本出願人に付与された欧州特許第２２０４８１４号明細書中に記載されている。この連想メモリの全体が、当該明細書中に記載されている。さらなる情報のためには、閲覧者は、この明細書を入手のこと。
【００１８】
図２及び３は、本発明の連想メモリ装置に適する磁気ランダムアクセスメモリセル１０を概略的に示す。当該磁気ランダムアクセスメモリに基づく連想メモリセル１０は、記憶層２３と感知層２１との間に配置された絶縁層２２によって形成された磁気トンネル接合２０を有する。好ましくは、記憶層２３は、強磁性材料から作製される一方で、感知層は、低い飽和保磁力の軟磁性材料から作製される。好ましくは、磁気ランダムアクセスメモリセル１０は、記憶層２３の下に反強磁性のピニング層２４も有する。
【００１９】
磁気ランダムアクセスメモリに基づく連想メモリセル１０の書き込み操作は、例えば米国特許第６９５０３３５号明細書中に記されているように熱アシストされるスイッチング法（ＴＡＳ）に基づく。当該書き込みは、選択トランジスタ６０をオンにして加熱電流３１のパルスをトンネル接合２０に通電させるために、電流５１をフィールド線５０中に通電し、同時にワード線７０を通電させることによって達成される。したがって、当該磁気接合の温度が、所定の高温閾値で上昇する一方で、当該磁気接合が、フィールド線５０中の電流５１によって生成された磁場に曝される。当該所定の高温閾値では、記憶層２３の磁化が、磁場内で整合され得る。次いで、トンネル接合２０が、接合電流パルス３１を抑制することによって低温閾値に向かって冷却される。その結果、記憶層２３の磁化が、磁化の方向及び界磁電流の極性に応じて「１」又は「０」として一般に示される新たに記憶された論理状態に固定される。
【００２０】
上述した方法の代わりに、当該書き込みが、外部磁場に依存しないスピン偏極した磁流（ＳＴＴスイッチングつまりスピン注入スイッチング）によって若しくは電流誘導磁化スイッチング（ＣＩＭＳ）法によって又はその他の任意の方法によって実行され得る。これらのバリエーションも、本発明の範囲内で構成される。
【００２１】
磁気ランダムアクセスメモリに基づく連想メモリセル１０の検索操作中では、検索ビットが、フィールド線５０を通じて感知層２１に提供される。当該読み出し操作中にこのフィールド線５０中で循環する電流が、感知層２１の極性を変更するために十分であるものの、記憶層２３の極性を変更するには十分でない磁場を発生させる。次いで、感知層２１の磁化方向が、磁気トンネル接合２０の抵抗を測定することによって当該記憶層の磁化方向と比較される。低抵抗は、記憶層の分極と感知層の分極とが平行であること、したがってこれらの双方が「１」又は「０」を有することを示す。その一方で、「１」及び「０」の場合では、高抵抗が測定される。磁気ランダムアクセスメモリに基づく連想メモリセル１０が、追加の構成要素なしに、記憶されたビットと検索ビットとのＸＮＯＲ（否定排他的論理和）を本質的に実現することが分かる。当該連想メモリセル１０の構造を複製することによって、１つの検索パターンを多数のキーと適切に且つ同時に比較することができる連想メモリ装置を実現することが可能である。一致検出に適した当該操作は、非常に速く、一般にマイクロプロセッサの１クロックサイクル内で実行される。
【００２２】
本発明の磁気ランダムアクセスメモリに基づく連想メモリセルは、第１フィールド線５０の方向に対して垂直の方向に沿って記憶層又は感知層を分極させるために使用される第２フィールド線４０をオプションで有してもよい。好ましくは、このことは、「０」及び「１」のほかの第３論理値「Ｘ」を許容する三値連想メモリ装置（ＴＣＡＭ）の実現を可能にする。この第３論理値は、ワイルドカード値として処理される。記さなかったバリエーションによれば、当該連想メモリ装置は、各々が２つのトンネル接合を有する異なるセルを使用してもよい。
【００２３】
記さなかった実施の形態では、当該三値連想メモリ装置は、欧州特許出願第１１２９０１５０号明細書の下で本出願人によって出願された未公開欧州特許出願中に記されたような、いわゆる「双方向結合」を有し得る。さらに、当該双方向結合三値連想メモリの磁気トンネル接合２０が、第２記憶層と、感知層２１とこの第２記憶層との間に形成された第２トンネル障壁層とから構成される。この第２記憶層は、第２高温閾値で任意に指向され得て、一般に低温閾値より低い磁化を呈する。このとき、当該論理値「Ｘ」は、２つの記憶層２１の磁化を反平行に指向させることによって達成され得る。
【００２４】
図１を再び参照すると、アドレスバス２５上に存在するアドレスが、連想メモリ装置１６０の入力部にも供給され、この連想メモリ装置内に記憶された複数の記憶アドレス（ｘｉ）のベクトルと比較される。当該アドレスバス２５上に存在するアドレスが、これらの記憶アドレスのうちのいずれにも一致しない場合は、連想メモリ装置が割り込まず、操作の処理が通常通りに続く：プロセッサが、命令／データバス２８を通じて読み出し専用メモリ１２０内に格納されたアドレス付けされた命令又は命令要素をフェッチし、このアドレス付けされた命令又は命令要素を実行する。
【００２５】
一方で、アドレスバス２５上に存在するアドレスが、記憶アドレスｘｉのうちの１つの記憶アドレスに一致した場合は、連想メモリ装置が、割込み２６をプロセッサ２８に発行するか（又は発行されるべき割込みを引き起こす）。結果として、命令／データバス２８中に存在する機械コード要素が読み出されない。同時に、連想メモリ装置１６０が、その記憶アドレスｘｉに対応する変更アドレスｙｉを出力し（例えば、ｘｉは、変更アドレスｙｉを訂正するための、連想メモリ装置１６０内のアドレスキーとして使用される）、この変更アドレスは、パッチメモリ２２０内の１つのメモリ位置を選択するために使用される。このパッチメモリ２２０は、好ましくは不揮発性の記憶装置、例えばフラッシュメモリであるものの、磁気ランダムアクセスメモリでもよい。別の実施の形態では、当該チェックインプレイス連想メモリ装置１６０及びパッチメモリ２２０が、単一のユニット内に組み込まれてもよい。記憶アドレスｘｉのうちの１つの記憶アドレスに一致した場合に、このユニットは、代わりの１つの機械コード要素のアドレスではなくて、当該代わりの１つの機械コード要素の値を直接に出力する。
【００２６】
次いで、当該パッチングされた機械コード要素が、プロセッサの、最初にアドレス付けされた場所（矢印４８）に提供される。この時点では、割込み２６が、不活動状態である。あたかも読み出し専用メモリが、十分に透過性に当該パッチングされた機械コード要素を最初から有していたかのように、プロセッサ１７０が、プログラムの実行を再開する。
【００２７】
当該技術に関すれば、提唱した解決手段は、バグが修正されないときはコードの増大又は性能ペナルティーを引き起こさず、複雑で特殊なツールを必要としない。バグがパッチングされるときは、性能に関するオーバーヘッドが最小であり、最初の命令を放棄するための１クロックサイクルの損失が減少する。さらに、当該提唱された方法の粒度（グラニュラリティ）が極めて細かい。要求されるならば、全ての関数を再書き込みすることの必要なしに、単一の機械コード要素が変更され得る。磁気ランダムアクセスメモリの不揮発性に起因して、ベクトルｘｉ，ｙｉが、電力なしに永久に保持される。
【００２８】
本発明の提唱された磁気ランダムアクセスメモリに基づく連想メモリは、電力消費、密度及びコストに関して極めて効率が良く、当該連想メモリ自体が、小型化された装置、低電力装置及びスマートカードのパッチングに特に適している。この場合の磁気ランダムアクセスメモリ装置の別の利点は、不揮発性であることである：ベクトルｘｉ及びｙｉが、一度プログラミングされると、これらのベクトルｘｉ及びｙｉは、電力なしでも永久に保持される。
【符号の説明】
【００２９】
ｘｉ    ＲＯＭ命令中のアドレス
ｙｉ    ＤＲＡＭパッチメモリ中のアドレス
１０    磁気ランダムアクセスメモリに基づく連想メモリセル、磁気ランダムアクセスメモリセル
２０    磁気トンネル接合
２１    感知層
２２    絶縁層
２３    記憶層
２４    ピニング層
２５    アドレスバス
２６    割込み
２８    命令／データバス
３１    加熱電流
３８    第２メモリのアドレス付け
４０    第２フィールド線
４８    パッチ命令
５０    第１フィールド線
５１    電流
６０    選択トランジスタ
７０    ワード線
１２０  読み出し専用メモリ
１６０  チェックインプレイス連想メモリ装置
１７０  プロセッサ
２２０  パッチメモリ
【図１】
2012238312.tif 000003
【図２】
2012238312.tif 000004
【図３】
2012238312.tif 000005
【外国語明細書】
2012238312000001.pdf