(57)【要約】【課題】ＲＯＭ中のデータ項目にアクセスするためのデータ・アクセス要求を再マッピングするための方法およびデータ処理装置を提供する。【解決手段】本方法は：置換データ項目をＲＡＭメモリ・ブロックの一部に記憶する工程；プロセッサからＲＯＭへのデータ・アクセス要求をインターセプトする工程；インターセプトされたデータ・アクセス要求のアドレスの一部を、ＲＯＭに記憶されているデータ項目を指定する識別子と比較する工程；更に前記比較に依存して、置換データ項目にアクセスするか、あるいはＲＯＭ上のアドレスに対応する場所に位置するデータ項目にアクセスするかのいずれかの工程を含む。【選択図】図３
2004318886.tif 000002
【特許請求の範囲】
【請求項１】
ＲＯＭに記憶されているデータ項目に対してアクセスするためにプロセッサによって発行された選ばれたデータ・アクセス要求を再マッピングするための方法であって、前記方法は次の工程：
（ｉｉ）少なくとも１つのデータ項目に対応し、また前記少なくとも１つのデータ項目とは異なる少なくとも１つの置換データ項目を、ＲＡＭメモリ・ブロックの一部に記憶する工程であって、前記ＲＡＭメモリ・ブロックは前記プロセッサによってアクセスされるようになっており、また前記一部は前記少なくとも１つの置換データ項目を記憶するように定義されている工程；
（ｉｉｉ）前記プロセッサから前記ＲＯＭへのデータ・アクセス要求をインターセプトする工程；
（ｉｖ）前記インターセプトされたデータ・アクセス要求のアドレスの少なくとも一部を、記憶されている少なくとも１つの識別子と比較する工程であって、前記記憶されている少なくとも１つの識別子は前記ＲＯＭ上に記憶されている少なくとも１つのデータ項目のアドレスを指定している工程；
更に前記比較に依存して、
（ｖa）前記データ・アクセス要求を前記ＲＡＭメモリ・ブロックに再マッピングして、前記比較がアドレスの少なくとも一部が前記少なくとも１つの識別子によって指定されるアドレスに対応することを示す場合は、前記メモリ・ブロックに記憶されている置換データ項目がアクセスされるようにする工程、または
（ｖb）前記比較がアドレスの前記少なくとも一部が前記少なくとも１つの記憶されている識別子によって指定されるアドレスではないことを示す場合は、前記ＲＯＭ上の前記アドレスに対応する場所に位置するデータ項目にアクセスする工程;のいずれかの工程、
を含んでいる方法。
【請求項２】
請求項１に記載の方法であって、更に、
（ｉ）工程（ｉｉ）の前に実行され、前記ＲＯＭ上に記憶されている少なくとも１つのデータ項目のアドレスを指定する少なくとも１つの識別子を記憶する工程、
を含む方法。
【請求項３】
請求項１に記載の方法であって、前記方法が：
工程（ｉｉ）を実行する前に、前記少なくとも１つの置換データ項目を記憶するために、ＲＡＭメモリ・ブロックの一部を定義する前記更に別の工程、
を含んでいる方法。
【請求項４】
請求項１に記載の方法であって、工程（ｉｉ）が、前記ＲＯＭに記憶されている複数のデータ項目に対応する複数の置換データ項目を前記ＲＡＭに記憶し、また前記複数の置換データ項目の各々に関連付けて、前記対応するデータ項目の前記アドレスの少なくとも一部を記憶する工程を含んでいる方法。
【請求項５】
請求項４に記載の方法であって、工程（ｖa）の実行に先立って、前記関連付けて記憶された前記アドレスの少なくとも一部を、対応する前記データ項目・アドレスの少なくとも一部と比較して、もし前記比較が一致しなければ、前記方法の工程（ｖa）ではなくて工程（ｖb）を実行する方法。
【請求項６】
請求項１に記載の方法であって、前記少なくとも１つの識別子が前記少なくとも１つのデータ項目の前記アドレスの一部を含んでいる方法。
【請求項７】
請求項１に記載の方法であって、工程（ｉ）が１つの識別子を含んでおり、前記識別子が、複数のデータ項目が記憶されている前記ＲＯＭ中のデータ領域を指定している方法。
【請求項８】
請求項４に従属するときに、請求項６に記載の方法であって、前記識別子が、前記置換データ項目に関連付けて記憶された前記アドレスの前記部分とは異なる前記アドレスの部分を含んでいる方法。
【請求項９】
請求項８に記載の方法であって、前記識別子が前記アドレスの上位部分を含んでおり、前記置換データ項目に関連付けて記憶された前記アドレスの前記部分が前記アドレスの下位部分を含んでいる方法。
【請求項１０】
請求項１に記載の方法であって、前記方法が工程（ｖ）の後に別の工程：
（ｖｉ）前記アクセスされたデータを前記プロセッサに転送する工程、
を含んでいる方法。
【請求項１１】
請求項１に記載の方法であって、前記少なくとも１つの置換データ項目がブレーク・ポイント命令を含んでおり、それによって前記少なくとも１つの置換データ項目に対するアクセスが前記プロセッサにデバッグあるいはテストの実行を引き起こす方法。
【請求項１２】
請求項１に記載の方法であって、前記少なくとも１つのデータ項目がリテラル定数、命令、あるいはその他のデータを含み、また前記少なくとも１つの置換データ項目が前記ＲＯＭ中に記憶されている前記リテラル定数、命令、あるいはその他のデータを置き換える新しいリテラル定数、命令、あるいはその他のデータを含んでいる方法。
【請求項１３】
請求項２に記載の方法であって、前記方法の工程（ｉｉ）が、プロセッサから受信した要求に応答して実行される方法。
【請求項１４】
請求項１に記載の方法であって、前記ＲＯＭがフラッシュ・デバイスあるいはその他のプログラマブルＲＯＭを含んでいる方法。
【請求項１５】
請求項１０に従属するときに、請求項１４に記載の方法であって、工程（ｖｉ）が前記アクセスされるデータを前記プロセッサに転送する前に遅延工程を含んでおり、前記遅延工程は、前記フラッシュ・デバイスへのデータ・アクセスのタイミングと同じタイミングで前記データが前記プロセッサに転送されるようにアレンジされている方法。
【請求項１６】
請求項１に記載の方法であって、前記ＲＡＭメモリ・ブロックがＳＲＡＭを含んでいる方法。
【請求項１７】
データ処理装置であって、
プロセッサ；
データ項目を記憶するための読み出し専用メモリであって、前記プロセッサによってアクセスできる読み出し専用メモリ；
前記プロセッサによってアクセス可能であって、前記ＲＯＭに記憶されている少なくとも１つのデータ項目に対応し、またＲＡＭメモリ・ブロックの一部中の前記少なくとも１つのデータ項目と異なる少なくとも１つの置換データ項目を記憶するように動作するＲＡＭのメモリ・ブロックであって、前記一部が前記少なくとも１つの置換データ項目を記憶するために定義されているＲＡＭメモリ・ブロック；
データ記憶装置および比較器を含むデータ要求インターセプタ；
を含み、ここで
前記データ記憶装置が少なくとも１つの識別子を記憶するように動作し、前記少なくとも１つの識別子が前記ＲＯＭに記憶されている前記少なくとも１つのデータ項目のアドレスを指定しており；更に
前記データ要求インターセプタは、前記プロセッサによって前記ＲＯＭに発行されたデータ・アクセス要求をインターセプトし、また前記比較器を使用して前記インターセプトされたデータ・アクセス要求のアドレスの一部を前記記憶されている少なくとも１つの識別子と比較して、前記比較に依存して、前記データ要求インターセプタは：もし前記比較がアドレスの前記少なくとも一部が前記少なくとも１つの記憶されている識別子によって指定されたアドレスではないことを示していれば、前記ＲＯＭの前記インターセプトされたデータ・アクセス要求アドレスに対応する場所に位置するデータにアクセスするし；あるいはもし前記比較がアドレスの前記少なくとも一部が前記少なくとも１つの記憶されている識別子によって指定されたアドレスであることを示していれば、前記少なくとも１つの置換データ項目にアクセスする前記データ・アクセス要求を再マッピングするかのいずれかを行う、
データ処理装置。
【請求項１８】
請求項１７に記載のデータ処理装置であって、前記識別子を含む前記データ記憶装置がＲＯＭであるデータ処理装置。
【請求項１９】
請求項１７に記載のデータ処理装置であって、前記データ要求インターセプタが前記ＲＡＭメモリ・ブロックの一部を定義するように動作し、また前記データ要求インターセプタが前記少なくとも１つの置換データ項目を前記定義された部分に記憶するように動作するデータ処理装置。
【請求項２０】
請求項１９に記載のデータ処理装置であって、前記データ要求インターセプタが、前記ＲＯＭ中に記憶されている複数のデータ項目に対応する複数の置換データ項目を前記ＲＡＭの前記定義された部分に記憶するように動作し、また前記複数の置換データ項目の各々に関連付けて前記対応するデータ項目の前記アドレスの少なくとも一部を記憶するように動作し、前記データ要求インターセプタは前記関連付けて記憶されたアドレスの少なくとも一部を使用して、アクセスすべき前記置換データ項目を同定するように動作するデータ処理装置。
【請求項２１】
請求項２０に記載のデータ処理装置であって、前記比較器が前記関連付けて記憶されたアドレスの少なくとも一部を、前記データ項目の対応する少なくとも一部と比較するように動作し、もし前記アドレスが一致すれば前記ＲＡＭに記憶されている前記置換データ項目にアクセスし、またもし前記アドレスが一致しなければ前記ＲＯＭに記憶されている前記データ項目にアクセスするように動作するデータ処理装置。
【請求項２２】
請求項１７に記載のデータ処理装置であって、前記少なくとも１つの識別子が前記少なくとも１つのデータ項目の前記アドレスの一部を含んでいるデータ処理装置。
【請求項２３】
請求項１に記載のデータ処理装置であって、前記データ記憶装置が前記識別子を記憶するように動作し、前記識別子は複数のデータ項目を記憶している前記ＲＯＭ上の１つのデータ領域を指定しているデータ処理装置。
【請求項２４】
請求項２１に従属するときに、請求項２３に記載のデータ処理装置であって、前記識別子が前記置換データ項目に関連付けて記憶された前記アドレスの前記一部とは異なる前記アドレスの一部を含んでいるデータ処理装置。
【請求項２５】
請求項２４に記載のデータ処理装置であって、前記識別子が前記アドレスの上位部分を含み、また前記置換データ項目に関連付けて記憶された前記アドレスの前記部分が前記アドレスの下位部分を含んでいるデータ処理装置。
【請求項２６】
請求項１７に記載のデータ処理装置であって、前記データ要求インターセプタが更に前記データにアクセスした後で前記アクセスされたデータを前記プロセッサに転送するように動作するデータ処理装置。
【請求項２７】
請求項１７に記載のデータ処理装置であって、前記少なくとも１つの置換データ項目がブレーク・ポイント命令を含んでおり、それによって前記少なくとも１つの置換データ項目に対するアクセスが前記プロセッサのデバッグあるいはテスト工程の実行を開始させるデータ処理装置。
【請求項２８】
請求項１７に記載のデータ処理装置であって、前記少なくとも１つのデータ項目がリテラル定数、命令、あるいはその他のデータを含み、また前記少なくとも１つの置換データ項目が、前記ＲＯＭに記憶されている前記リテラル定数、命令、あるいはその他のデータを置き換える新しいリテラル定数、命令、あるいはその他のデータを含んでいるデータ処理装置。
【請求項２９】
請求項１７に記載のデータ処理装置であって、前記ＲＯＭがフラッシュ・デバイスあるいはその他のプログラマブルＲＯＭを含んでいるデータ処理装置。
【請求項３０】
請求項２６に従属するときに、請求項２９に記載のデータ処理装置であって、前記データ・アクセス・インターセプタが前記アクセスされたデータの前記プロセッサへの転送を遅らせるように動作し、それによって前記データが前記フラッシュ・デバイスへのデータ・アクセスのタイミングと同じタイミングで転送されるデータ処理装置。
【請求項３１】
請求項１７に記載のデータ処理装置であって、前記ＲＡＭメモリ・ブロックがＳＲＡＭを含んでいるデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理システム分野に関連する。更に詳細には、本発明は選ばれたデータ・アクセス要求の再マッピングに関する。
【背景技術】
【０００２】
データ処理システムは情報を記憶するためにしばしば読み出し専用メモリすなわちＲＯＭを利用する。そのようなＲＯＭの一例はフラッシュ・デバイスであり、これは特定の非常に制限された条件下でのみ書き込みできることから、等価的に読み出し専用メモリとみなすことができる。多くのＲＯＭおよび特にフラッシュ・デバイスにおける１つの欠点は、それがアクセスするのが遅い場合があることである。従って、フラッシュに記憶されているコードを動作させるときは、それは一般に実行される前にＳＲＡＭにコピーされる。これによってそのコードの実行速度を上げるだけでなく、それの一部を上書きできるようにもなる。こうすれば、コード中のリテラル定数を更新できるし、コードをデバッグするときはコード中にブレーク・ポイントを挿入することもできる。
【０００３】
しかし一定の環境では、特に移動電話のような小型の処理システムでは、フラッシュはそこに記憶されているコードを実行するためにも使用されよう。このことは、コードの効率的デバッグあるいはリテラル定数、命令あるいはデータの任意のシステム上書きが実現できないことを意味する。
【０００４】
この問題に取り組む１つの方法は、コアからフラッシュへのデータ・アクセス要求をインターセプトする手段を設けることであり、それには選ばれた環境においてインターセプトされたデータ・アクセス要求を捕捉して、置換データが記憶されている特別の記憶場所から供給する機能が備わっている。これはコアに関する限り、記憶されているデータの等価的上書きを可能にするが、実際には記憶データは変更されない。従来は、これはキャッシュとして構成され、置換データのブロック範囲（“ライン”）を含むインターセプト・デバイスを、コアからフラッシュ・デバイスへのデータ要求経路を決めるバス中に挿入することによって行われてきた。このデバイスはコアからフラッシュへのデータ・アクセス要求をインターセプトし、アクセスすべきデータ項目のアドレスを、それが記憶しているいくつかのアドレスと比較する。もし一致があれば、それはそれ自身の記憶のうちからデータを供給する。この置換データ項目はＤ型フリップ・フロップを含む特別な記憶場所に記憶されている。このように、特定のデータ項目へのデータ・アクセス要求はフラッシュに到達せず、その代わりにＤ型フリップ・フロップに記憶されている置換アイテムがコアに返される。コアに関する限り、データ項目は上書きされたことになる。この従来技術デバイスを模式的に示す図が図１に示されている。図面から明らかなように、データ・インターセプタはフラッシュとコアとの間のバス中に位置しており、置換データ項目を記憶するために使用される１組のＤ型フリップ・フロップにつながれている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来技術のこれらの装置に付随する問題点は、必要とされる数の置換データ項目を記憶するのに十分な個数の専用Ｄ型フリップ・フロップが必要であることである。それらはこの目的のためだけに使用されるので、データ・アクセス要求の置換を提供するこのような方法は高価なものとなる。
【課題を解決するための手段】
【０００６】
１つの態様から見ると、本発明はＲＯＭに記憶されているデータ項目にアクセスするために、プロセッサによって発行される選ばれたデータ・アクセス要求を再マッピングするための方法を提供し、前記方法は次の工程：（ｉｉ）少なくとも１つのデータ項目に対応し、また前記少なくとも１つのデータ項目とは異なる少なくとも１つの置換データ項目を、ＲＡＭメモリ・ブロックの一部に記憶する工程であって、前記ＲＡＭメモリ・ブロックは前記プロセッサによってアクセスされるようになっており、また前記一部は前記少なくとも１つの置換データ項目を記憶するように定義されている工程；（ｉｉｉ）前記プロセッサから前記ＲＯＭへのデータ・アクセス要求をインターセプトする工程；（ｉｖ）前記インターセプトされたデータ・アクセス要求のアドレスの少なくとも一部を、記憶されている少なくとも１つの識別子と比較する工程であって、前記記憶されている少なくとも１つの識別子は前記ＲＯＭ上に記憶されている少なくとも１つのデータ項目のアドレスを指定している工程；更に前記比較に依存して、（ｖａ）前記データ・アクセス要求を前記ＲＡＭメモリ・ブロックに再マッピングして、前記比較がアドレスの少なくとも一部が前記少なくとも１つの識別子によって指定されるアドレスに対応することを示す場合は、前記メモリ・ブロックに記憶されている置換データ項目がアクセスされるようにする工程、あるいは（ｖｂ）前記比較がアドレスの前記少なくとも一部が前記少なくとも１つの記憶されている識別子によって指定されるアドレスではないことを示す場合は、前記ＲＯＭ上の前記アドレスに対応する場所に位置するデータ項目にアクセスする工程のいずれかの工程；および（ｖｉ）前記アクセスされたデータを前記プロセッサに転送する工程；を含む。
【発明の効果】
【０００７】
本発明は、置換データを記憶するために専用のＤ型フリップ・フロップを使用することはプロセッサ・エリアでは高くつくという上述の問題点を認識しており、この問題に対処するために、置換データを記憶するのに、ＲＡＭメモリ・ブロックの特定の部分を使用する。この方法はいくつかの特徴を有する。ＲＡＭメモリは既にデバイス中に存在しているため、この問題に対する解決策は処理装置に付加すべき追加デバイスの数を減らす。更に、置換データを記憶するために定義されるＲＡＭメモリの部分は置換データが必要な間だけこの目的で定義すればよく、従って、置換データが最早必要とされないときには、別のデータを記憶するために使用することができる。別のポイントは、定義されるメモリの量は、実行されるタスクおよび必要とされる置換データ項目の数に依存して選ぶことができるということである。このことはメモリの非常に効率的な利用につながるし、この種のパッチの使用が従来負わせていたオーバーヘッドをかなり軽減することにつながる。更に、キャッシュ的な機構と違って、再マッピングは標準的なバス・プロトコルおよび行動様式を使用する。
【０００８】
いくつかの実施の形態では、前記方法は、更に工程（ｉｉ）の前に実行される次のような１つの工程、（ｉ）前記ＲＯＭに記憶されている少なくとも１つのデータ項目のアドレスを指定する少なくとも１つの識別子を記憶する工程を含む。
【０００９】
前記ＲＯＭに記憶されている少なくとも１つのデータ項目を指定する識別子は本方法によって設定することが可能であり、例えば、それはデバッグ用プログラムによって入力されよう。あるいは、その他の実施の形態では、この識別子はプロセッサの永久メモリ上の或る場所に記憶されており、従って工程（ｉ）はこの方法では実行されない。
【００１０】
同様に、いくつかの実施の形態では、前記方法は；工程（ｉｉ）を実行する前に、前記少なくとも１つの置換データ項目を記憶するために、ＲＡＭメモリ・ブロックの一部を定義する前記更に別の工程を含む。
【００１１】
ＲＡＭメモリ・ブロックの一部は、本方法によって、例えばホスト上のデバッガによって定義されよう。あるいは、その他の実施の形態では、ＲＡＭメモリの定義されるその部分はプロセッサの或る永久メモリに記憶される定数であって、従ってこの方法でもこの工程は実行されない。
【００１２】
いくつかの実施の形態では、工程（ｉｉ）は前記ＲＡＭ中に単一の置換データ項目を記憶する工程を含んでいるが、好ましくは、工程（ｉｉ）は前記ＲＯＭ中に記憶された複数のデータ項目に対応する複数の置換データ項目を前記ＲＡＭ中に記憶する工程を含んでいる。この場合、前記対応するデータ項目の前記アドレスの少なくとも一部が前記複数の置換データ項目の各々に関連付けて記憶される。注意すべき点は、複数の置換データ項目は一般に不連続であることである。
【００１３】
注意すべきことは、特定の応用では、必要な置換データ項目（例えば、ブレーク・ポイント）の数を設計者が選ぶことができることである。これは割り当てる必要のあるＳＲＡＭの大きさに影響するし、また比較すべきアドレス部分の大きさにも、従って比較器のゲート数にも影響する。
【００１４】
好適な実施の形態では、前記アドレスの少なくとも一部に記憶された関連物を前記データ項目のアドレスの少なくとも一部に対応するものと比較した結果が、アクセスされるデータ項目に対応する置換データ項目がＲＡＭに記憶されていないことを示すときは、前記方法の工程（ｖａ）よりむしろ工程（ｖｂ）が実行される。
【００１５】
好適な実施の形態では、前記少なくとも１つの識別子は、前記少なくとも１つのデータ項目の前記アドレスの一部を含んでいる。
【００１６】
好ましくは、工程（ｉ）は、複数のデータ項目が記憶されている前記ＲＯＭ中の１つのデータ領域を指定する１つの識別子を記憶する工程を含んでいる。
【００１７】
複数のデータ項目を指定するために複数の識別子を使用することができるが、好適な実施の形態では、１つの識別子のみを使用している。この識別子は複数のデータ項目が記憶されている前記ＲＯＭ上の１つのデータ領域を指定する。小領域ＲＯＭの場合は、ＲＯＭ全体がパッチ可能ならそれはＲＯＭ全体を示すかもしれないが、一般にはそれはＲＯＭ内部の特別な“パッチ可能な”領域を指定する。実際には、識別子は、その特別なデータ領域に共通するデータ項目のアドレスの特定ビットに関連する。このように、実際にはＲＯＭ上の特定のパッチ可能領域が定義され、その領域のデータ項目に対するデータ・アクセス要求は置換データ項目に経路変更できる。注意すべきことは、識別子に必要なビット数はシステム、フラッシュのサイズ、およびパッチされる領域のサイズに依存することである。
【００１８】
好適な実施の形態では、前記識別子は前記アドレスの異なる部分あるいは前記置換データ項目に関連付けて記憶された前記アドレスの前記部分を含む。好ましくは、前記識別子は前記アドレスの上位部分を含み、前記置換データ項目に関連付けて記憶された前記アドレスの前記部分は前記アドレスの下位部分を含む。
【００１９】
一般に、アドレスの上位部分はいくつかのデータ項目に共通しており、それらが記憶されている領域に関連するし、またアドレスの下位部分はタグと見ることができ、それは各々のデータ項目に特有のものである。更に、置換データ項目に関連し、それを一意的に指定するために必要なアドレスの記憶された部分のサイズは、“パッチ可能な”ＲＯＭのサイズ（すなわち、その領域に存在する記憶場所の数）に依存しよう。これはアプリケーション・スペースのほか、使用される実際の埋め込みフラッシュに依存して、システム設計者が設定できる。これはアドレスのこの部分を比較するために必要なゲート数に影響する。従ってこれは本発明の実施の形態がシステム設計者によってどのように高度にパラメータ化できるかの別の例である。システム設計者は手持ちのタスクのためにできる限り少数のゲートを使用するように、特定の実施の形態を適合させることができる。
【００２０】
いくつかの実施の形態では、本発明の方法は読み出し専用メモリに記憶されたコードのデバッグを援助するために使用できる。この場合、少なくとも１つの置換データ項目はブレーク・ポイントを含み、それによって前記少なくとも１つの置換データ項目へのアクセスがデバッグ状態の起動を引き起こすようになる。このように、本発明に従う方法は、読み出し専用メモリに記憶されたコード中の指定された場所にブレーク・ポイントを挿入するために使用できる。
【００２１】
その他の実施の形態では、前記少なくとも１つのデータ項目は命令、リテラル定数、あるいはその他のデータを含み、また前記少なくとも１つの置換データ項目は、前記ＲＯＭに記憶された、前記命令、リテラル定数、あるいはその他データを置換する新しい命令、リテラル定数、あるいはその他のデータを含む。
【００２２】
本発明の実施の形態は読み出し専用メモリに記憶された命令、リテラル定数、あるいはその他のデータを等価的に上書きするために使用できる。こうすれば、データは永久メモリに記憶されていても、本発明の実施の形態を利用して、それを等価的に更新したり、メモリを等価的に“パッチしたり”できる。
【００２３】
いくつかの実施の形態では、前記方法の工程（ｉｉ）はプロセッサから受信される要求に応じて実行される。外部の処理システムにとって、工程（ｉｉ）を起動できて、それによってリテラル定数等の更新を要するデータ項目が処理システムからの信号に応答して入力できることは有利である。例えば、自動車制御システムで、例えば窓ガラスワイパーを制御する１つの装置が、特定の状況では自動車システムの異なる部品からそれのリテラル定数を更新できるようにすることは便利である。
【００２４】
いくつかの実施の形態では、ＲＯＭはフラッシュ・デバイスあるいはその他のプログラマブルＲＯＭを含む。フラッシュ・デバイスは、それらが上書きを極端に敬遠することから、一般に読み出し専用メモリとみなされる。本発明の実施の形態に従うパッチする方法は、従って、そのようなデバイスで使用するのに特に適している。
【００２５】
いくつかの実施の形態では、工程（ｖｉ）は前記アクセス・データ項目を前記プロセッサに転送する前に遅延工程を含んでおり、前記遅延工程は前記フラッシュ・デバイスへのデータ・アクセスのタイミングと等しいタイミングでデータが転送されるように構成される。
【００２６】
フラッシュ・デバイスへのアクセスは非常に遅いため、本発明の実施の形態の１つの特徴は、データのインターセプトやデータ・アクセスの再マッピングのすべてが、元のデータ・アクセスがフラッシュから返される前に実行できるということである。特定の状況では、再マッピングしたデータ・アクセスを遅延させて、データ項目があたかもフラッシュ・デバイスそれ自身がアクセスされたかのようなタイミングで処理に送られるようにすることが有利かもしれない。そうすれば、プロセッサは再マッピングが発生したことに気づかず、通常のように機能しよう。
【００２７】
好適な実施の形態では、前記ＲＡＭメモリ・ブロックはＳＲＡＭを含む。
【００２８】
本発明の別の態様は、プロセッサ；データ項目を記憶するための読み出し専用メモリであって、前記プロセッサによってアクセスできる読み出し専用メモリ；前記プロセッサによってアクセス可能であって、前記ＲＯＭに記憶されている少なくとも１つのデータ項目に対応し、またＲＡＭメモリ・ブロックの一部中の前記少なくとも１つのデータ項目とは異なる少なくとも１つの置換データ項目を記憶するように動作するＲＡＭのメモリ・ブロックであって、前記一部が前記少なくとも１つの置換データ項目を記憶するために定義されているＲＡＭメモリ・ブロック；データ記憶装置および比較器を含むデータ要求インターセプタ；を含み、ここで前記データ記憶装置が少なくとも１つの識別子を記憶するように動作し、前記少なくとも１つの識別子は前記ＲＯＭに記憶されている前記少なくとも１つのデータ項目のアドレスを指定しており；更に前記データ要求インターセプタは、前記プロセッサによって前記ＲＯＭに発行されたデータ・アクセス要求をインターセプトするように動作し、また前記比較器を使用して前記インターセプトされたデータ・アクセス要求のアドレスの一部を前記記憶されている少なくとも１つの識別子と比較して、前記比較に依存して、前記データ要求インターセプタは：もし前記比較がアドレスの前記少なくとも一部が前記少なくとも１つの記憶されている識別子によって指定されたアドレスではないことを示していれば、前記ＲＯＭの前記インターセプトされたデータ・アクセス要求のアドレスに対応する場所に位置するデータにアクセスするし；あるいはもし前記比較がアドレスの前記少なくとも一部が前記少なくとも１つの記憶されている識別子によって指定されたアドレスであることを示していれば、前記少なくとも１つの置換データ項目にアクセスするように前記データ・アクセス要求を再マッピングする、のいずれかを行うように動作する。
【００２９】
本発明の上述およびその他の目的、特徴および利点は、添付図面と関連付けて読むようになった例示的実施の形態についての以下の詳細な説明から明らかになろう。
【実施例】
【００３０】
図２は本発明の実施の形態の簡単な実施を模式的に示す。図２はプロセッサ・コア２０、アクセス要求再マッピング装置３０、フラッシュ４０、およびＳＲＡＭ５０を示す。アクセス要求再マッピング装置は、フラッシュ４０に記憶されているデータにアクセスしようと試みる選ばれたデータ・アクセス要求をＳＲＡＭ５０に記憶されている置換データに再マッピングするように機能する。
【００３１】
この実施の形態で、データ処理装置１０のコアあるいはプロセッサ２０はデータ・アクセス要求を発行する。このアクセス要求はアクセス要求再マッピング装置３０によってインターセプトされる。アクセス要求再マッピング装置はアクセス要求アドレスの少なくとも一部を、記憶されている識別子と比較する。記憶されている識別子は、置換アイテムで置き換えるべきデータ項目を指定するために使用され、一般には置換すべきデータ項目のアドレスの一部である。比較の結果に依存して、データ・アクセス要求はフラッシュ中のアドレスに転送されるか、あるいはＳＲＡＭの割り当て部分に記憶されている置換データ項目をアクセスするように再マッピングされる。コアに関する限り、コアは再マッピングが発生したことに気づかないため、前にフラッシュに記憶されていたデータ項目は置換データ項目によって上書きされる。
【００３２】
フラッシュ４０へのアクセス時間が遅いため、フラッシュに対するデータ・アクセス要求を再マッピングでき、また置換データもフラッシュ４０へのデータ・アクセスが通常発生する時間内にすべてアクセスできる。いくつかの実施の形態では、データ・アクセスが特別な時間を要することが重要であり、従って遅延（６０）がＳＲＡＭへ再マッピングされたアクセス要求あるいはコアへのデータ・リターン・ラインに入力され（図示のように）、それによってデータは、ＳＲＡＭ中の置換データではなくフラッシュそれ自身がアクセスされた場合にそれが返されるのと同じ時間枠で返される。
【００３３】
図３は本発明の実施の形態に従うデータ・アクセス要求再マッピング装置３１を模式的に示す。この装置はアクセス要求インターセプタ、アドレス識別子を記憶するためのデータ記憶装置３２、およびデータ・アクセス要求のアドレスの一部をデータ記憶装置３２中に記憶されている識別子と比較するための比較器３４を含む。この実施の形態で、プロセッサによって発行されるデータ・アクセス要求はアクセス要求インターセプタによってインターセプトされ、データ・アクセス要求のアドレスの一部が、データ記憶装置３２に記憶されているアドレス識別子と比較される。
【００３４】
アドレス識別子は一般に、再マッピングすべきデータ項目のアドレスの上位ビット部分である。この部分はフラッシュ上の１つの領域に関連し、この領域中のすべてのデータ項目はそれらのアドレスのこの部分によって特定可能である。この場合、フラッシュ上のこの領域内の任意のデータ項目は以下で概略を述べる或る別の条件に依存して再マッピングされよう。実際には、このデータ領域にパッチすることができて、この領域内に記憶されている任意のデータ項目に対して置換データ項目を提供できる。
【００３５】
もしアドレス比較器３４が一致を記録すれば、アクセスすべきデータ項目がフラッシュのパッチ可能な領域に記憶されており、アドレスの別の部分あるいは“タグ”が、記憶されているタグ・データと比較される。記憶されているタグ・データおよび比較器はブロック３６で示されている。ＳＲＡＭに記憶されている置換データ項目の各々に対してタグ・データが記憶されており、記憶されたタグ・データはデータ項目・アドレスの別の部分を含んでいる。このアドレスの更に別の部分は、フラッシュのパッチ可能領域のどこでそのデータ項目を見出せるかを一意的に同定するのに十分なものでなければならない。従って、この部分のために必要なビット数はパッチ可能なデータ領域の大きさに依存する。もしタグ・データの一致が発生すれば、データ・アクセス要求は置換データ項目をアクセスするように経路変更される。置換データ項目はＳＲＡＭの定義された部分、一般にはアドレスのタグ部分によって指定される場所に記憶されている。もし一致が見出されなければ、これは、再マッピング可能なフラッシュの一部に見出されるのではあるが、その特別なデータ項目に対する置換データ項目は存在しないことを意味する。この場合、そのデータ・アクセス要求はそのフラッシュに経路変更され、再マッピングは発生しない。
【００３６】
図４は予め割り当てられたフラッシュおよびＳＲＡＭ領域を有するメモリ制御ユニットを示す。この実施の形態では、まず“上位一致”があり、それはアドレスの上位部分と記憶されている値との比較を含む。この比較は正確なビットの比較でもよいが、多くのどうでもいいビットを含むこともできる（例えば図５の実施の形態を参照）。フラッシュおよびＳＲＡＭ領域が予め割り当てられるため、この値はアクセスされるデータ項目がフラッシュまたはＳＲＡＭで見つかるかどうかを示している。もしそれがフラッシュで見つかるのであれば、それは本発明の実施の形態に従ってデータ・インターセプタへ経路変更される。データ・インターセプタはアドレスの更に別の部分を、記憶されている識別子と比較する。これは図３のアドレス比較と類似しており、フラッシュ上でアクセスすべきデータ項目が、データ項目が再マッピングされる領域において見つかるかどうかを示す。もし一致があれば、アドレスのタグが、記憶されているタグと比較されて、そのデータ項目に対する置換データ項目が存在するかどうかが調べられる。もし存在しなければ、データ・アクセス命令はフラッシュに経路変更され、そのアドレスに記憶されているデータ項目がアクセスされる。もしタグの一致があれば、そのデータ・アクセス要求はＳＲＡＭに経路変更され、置換データ項目がアクセスされる。
【００３７】
この実施の形態で、置換データ項目はＳＲＡＭの固定された領域に記憶されている。この領域の大きさはシステム設計者によって設定されるが、アプリケーション・スペースのほかに、使用される実際の埋め込みフラッシュに依存しよう。この領域の大きさは必要とされるタグのサイズに影響を及ぼし、従って必要なゲートの数に影響する。このように、タグはＳＲＡＭ中の置換データ項目を指定するために必要なアドレスよりも小さくすることができる。比較器のゲートを少なくすることができるので、このことは１つの利点である。ＳＲＡＭに記憶されている置換データ項目が設定領域で見つかれば、置換データのアドレスの上位部分はこの領域を示しており、それはすべての置換データ項目について同じである。アドレスの次の部分は、各々の置換データ項目を個々に指定するためのタグ・データとして使用される。ＳＲＡＭ中の置換アイテムにマッピングするときに、アドレスの最下位の複数ビットが比較時に使用されるアドレスの部分に追加される。これはＳＲＡＭがバイト単位でアドレス指定されるために必要であり、他方、パッチはワード単位で指定される。
【００３８】
図５は本発明の実施の形態に従うデータ・アクセス再マッピング・システムの別の実施の形態を示す。この実施の形態では、図４の実施の形態と同じように、フラッシュ４０およびＳＲＡＭ５０領域は予め割り当てられる。しかし、このケースは最も特殊なもので、ＳＲＡＭおよびフラッシュに対して最大領域が固定されており、それはこの実施の形態ではフラッシュで２５６Ｋ、ＳＲＡＭで２５６Ｋである。アクセスすべきデータ項目がフラッシュ４０中にあるかどうかを示す上位一致５２では、１つのデータ項目に関するアドレスがＳＲＡＭ、フラッシュ、あるいはどこかの周辺機器のどれに記憶されているかを指定するために２ビットだけが必要とされる。すなわち、図４の上位一致は２ビット・デコーダである。このデコーダからの０はデータがフラッシュに記憶されていることを示すので、この時点でデータ・アクセス要求の選択的な再マッピングを提供するためのデータ・インターセプタが導入される。次にブロック一致を使用して、アクセスすべきデータ項目がパッチ可能な領域にあるかどうかを決定することができる。この領域のサイズは任意でよいが、３２Ｋあるいは６４Ｋが多い。もしアクセスすべきデータ項目がこの領域に存在すれば、次にタグ一致を実行してこのアイテムに対する置換データ項目が存在するかどうかが調べられる。固定されたサイズ例えば２５６Ｋのフラッシュで、固定されたパッチ可能な領域が３２Ｋのシステムでは、ブロック一致および上位アドレス一致で使用されるアドレス部分はＲＯＭ定数であり、それらは比較器に入力され、フラッシュ・バス・ラッパと共有されよう。
【００３９】
図６は本発明の別の実施の形態を示す。この実施の形態は固定された小型フラッシュを含む。この実施の形態は図３のそれと類似している。初期の上位一致５２は上位ビットを含むアドレス部分について実行される。もし一致が存在すれば、データはフラッシュに記憶されている。フラッシュが小型なので、セグメント化して、そこにおいてデータ項目が再マッピングされる領域とそうでない領域とを分けることはない。すなわち、図４および５の“ブロック一致”を省略して、直ちにタグ一致が実行される。タグ一致は図４および５に関して述べたものと同じである。
【００４０】
図７は本発明の実施の形態によって実行される工程の概要を与えるフロー図を示す。最初に、プロセッサがデータ・アクセス要求を発行し、これがインターセプトされる。次に、データ・アクセス要求のアドレスの一部が、記憶されている識別子と比較され、もしそれらが等しくなければ、フラッシュのデータ項目がアクセスされる。もしそれらが等しければ、アクセスすべきデータ項目はフラッシュ内のパッチ可能領域に記憶されており、アドレスの更に下位のビット部分が、記憶されている“タグ”と比較される。もし一致がなければ、それはそのデータ項目に対する置換データは記憶されていないことを意味し、フラッシュ上のデータ項目がアクセスされる。もし一致があれば、置換データ項目がＳＲＡＭに記憶されており、アクセスされるのはこれである。
【００４１】
図８はフラッシュ中で実行されるコードのデバッグにおいて実行される工程の概要を示すフロー図を示す。この実施の形態では、デバッガは、フラッシュ中で再マッピングが必要なデータ項目のアドレスを指定するアドレス識別子をセットする。デバッガは次に、ブレーク・ポイントを記憶するために使用することができるＳＲＡＭの一部を定義する。デバッガは次にそれらのブレーク・ポイントを、それらに付随するタグと一緒に記憶するが、それらには一般にブレーク・ポイントを置き換えるデータ項目のアドレスの一部が含まれる。従って、フラッシュ中のコードが実行されるときは、それはデバッグできる準備ができている。フラッシュに対するすべてのデータ・アクセス要求はインターセプトされて、もしデータ・アクセス要求の上位アドレス部分が、記憶されているアドレス識別子と一致すれば、これはそのデータ項目がブレーク・ポイントによって置き換える必要があることを示す。次にこのアドレスの別の部分が、記憶されているタグと比較されて、もし一致があればＳＲＡＭの対応領域がアクセスされて、１つのブレーク・ポイントがプロセッサに転送される。もし識別子あるいはタグとのいずれかとの一致がなければ、フラッシュ中のそのアドレスに記憶されているデータ項目がアクセスされ、プロセッサに転送される。このように、プロセッサに関する限り、ブレーク・ポイントがフラッシュ中のコードに効率的に挿入されることになる。
【００４２】
本発明の例示的実施の形態についてここに添付図面を参照しながら詳細に説明してきたが、本発明はこれらの実施の形態自体に限定されないこと、および当業者によって、特許請求の範囲に定義された本発明のスコープおよび精神から外れることなく、それらに対して各種の変更および修正を実施できることを理解されるべきである。
【図面の簡単な説明】
【００４３】
【図１】従来技術に従うデータ・アクセス要求再マッピング装置の模式図。
【図２】本発明の実施の形態に従う簡単なデータ・アクセス要求再マッピング装置の模式図。
【図３】本発明の実施の形態に従う別のデータ・アクセス要求再マッピング装置の模式図。
【図４】フラッシュおよびＳＲＡＭ領域が予め割り当てられた、本発明の実施の形態に従うデータ・アクセス要求再マッピング装置の模式図。
【図５】フラッシュおよびＳＲＡＭ領域が予め割り当てられ固定された最大値を有する、本発明の実施の形態に従うデータ・アクセス要求再マッピング装置の模式図。
【図６】固定された小フラッシュ領域を有する、本発明の実施の形態に従うデータ・アクセス要求再マッピング装置の模式図。
【図７】本発明の実施の形態に従う方法によって実行される主要工程を示す模式的フロー図。
【図８】フラッシュ中で実行されるコードのデバッグの間に実行される工程の概略を示すフロー図。
【符号の説明】
【００４４】
１０  データ処理装置
２０  プロセッサ・コア
３０  アクセス要求再マッピング装置
３１  データ・アクセス要求再マッピング装置
３２  データ記憶装置
３４  比較器
４０  フラッシュ
５０  ＳＲＡＭ
５２  上位一致
６０  遅延
【図１】
2004318886.tif 000003
【図２】
2004318886.tif 000004
【図３】
2004318886.tif 000005
【図４】
2004318886.tif 000006
【図５】
2004318886.tif 000007
【図６】
2004318886.tif 000008
【図７】
2004318886.tif 000009
【図８】
2004318886.tif 000010
【外国語明細書】
2004318886000001.pdf