JP4740553B2 - データ・アクセス要求再マッピング・システム - Google Patents

データ・アクセス要求再マッピング・システム Download PDF

Info

Publication number
JP4740553B2
JP4740553B2 JP2004119216A JP2004119216A JP4740553B2 JP 4740553 B2 JP4740553 B2 JP 4740553B2 JP 2004119216 A JP2004119216 A JP 2004119216A JP 2004119216 A JP2004119216 A JP 2004119216A JP 4740553 B2 JP4740553 B2 JP 4740553B2
Authority
JP
Japan
Prior art keywords
data
address
stored
data item
processor
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 - Lifetime
Application number
JP2004119216A
Other languages
English (en)
Other versions
JP2004318886A (ja
JP2004318886A5 (ja
Inventor
キメルマン ポール
フィールド イアン
Original Assignee
エイアールエム リミテッド
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 エイアールエム リミテッド filed Critical エイアールエム リミテッド
Publication of JP2004318886A publication Critical patent/JP2004318886A/ja
Publication of JP2004318886A5 publication Critical patent/JP2004318886A5/ja
Application granted granted Critical
Publication of JP4740553B2 publication Critical patent/JP4740553B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

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

Claims (2)

  1. ROMに記憶されているデータ項目に対してアクセスするためにプロセッサによって発行された選ばれたデータ・アクセス要求を再マッピングするための方法であって、前記方法は次の工程:
    (ii)少なくとも1つのデータ項目に対応し、また前記少なくとも1つのデータ項目とは異なる少なくとも1つの置換データ項目を、RAMメモリ・ブロックの一つの部分に記憶する工程であって、前記RAMメモリ・ブロックは、前記再マッピング以外の処理を行うときに前記プロセッサによってアクセス可能なもう一つの部分を有し、また前記一つの部分は前記少なくとも1つの置換データ項目を記憶するように定義されている工程;
    (iii)前記プロセッサから前記ROMへのデータ・アクセス要求をインターセプトする工程;
    (iv)前記インターセプトされたデータ・アクセス要求のアドレスの少なくとも一部を、記憶されている少なくとも1つの識別子と比較する工程であって、前記記憶されている少なくとも1つの識別子は前記ROM上に記憶されている少なくとも1つのデータ項目のアドレスを指定している工程;
    更に前記比較に依存して、
    (v)前記データ・アクセス要求を前記RAMメモリ・ブロックに再マッピングして、前記比較がアドレスの少なくとも一部が前記少なくとも1つの識別子によって指定されるアドレスに対応することを示す場合は、前記メモリ・ブロックに記憶されている置換データ項目がアクセスされるようにする工程、または
    (v)前記比較がアドレスの前記少なくとも一部が前記少なくとも1つの記憶されている識別子によって指定されるアドレスではないことを示す場合は、前記ROM上の前記アドレスに対応する場所に位置するデータ項目にアクセスする工程;のいずれかの工程、
    を含み、工程(v)の後に別の工程:
    (vi)前記アクセスされたデータを前記プロセッサに転送する工程、
    を含み、工程(vi)が前記アクセスされるデータを前記プロセッサに転送する前に遅延工程を含んでおり、前記遅延工程は、前記フラッシュ・デバイスへのデータ・アクセスのタイミングと同じタイミングで前記データが前記プロセッサに転送されるようにアレンジされている方法であって、前記ROMがフラッシュ・デバイスあるいはその他のプログラマブルROMを含んでいる方法。
  2. データ処理装置であって、
    プロセッサ;
    データ項目を記憶するための読み出し専用メモリであって、前記プロセッサによってアクセスできる読み出し専用メモリ;
    前記プロセッサによってアクセス可能であって、前記読み出し専用メモリに記憶されている少なくとも1つのデータ項目に対応し、前記少なくとも1つのデータ項目と異なる前記少なくとも1つの置換データ項目を記憶するよう定義された1つの部分を有するRAMのメモリ・ブロックであって、前記少なくとも1つの置換データ項目をアクセス記憶する以外の処理を実行する前記プロセッサによりアクセス可能な部分を更に有しているRAMメモリ・ブロック;
    データ記憶装置および比較器を含むデータ要求インターセプタ;
    を含み、ここで
    前記データ記憶装置が少なくとも1つの識別子を記憶するように動作し、前記少なくとも1つの識別子が前記読み出し専用メモリに記憶されている前記少なくとも1つのデータ項目のアドレスを指定しており;更に
    前記データ要求インターセプタは、前記プロセッサによって前記読み出し専用メモリに発行されたデータ・アクセス要求をインターセプトし、また前記比較器を使用して前記インターセプトされたデータ・アクセス要求のアドレスの一部を前記記憶されている少なくとも1つの識別子と比較して、前記比較に依存して、前記データ要求インターセプタは:もし前記比較がアドレスの前記少なくとも一部が前記少なくとも1つの記憶されている識別子によって指定されたアドレスではないことを示していれば、前記読み出し専用メモリの前記インターセプトされたデータ・アクセス要求アドレスに対応する場所に位置するデータにアクセスするし;あるいはもし前記比較がアドレスの前記少なくとも一部が前記少なくとも1つの記憶されている識別子によって指定されたアドレスであることを示していれば、前記少なくとも1つの置換データ項目にアクセスする前記データ・アクセス要求を再マッピングするかのいずれかを行い、前記データ要求インターセプタが更に前記データにアクセスした後で前記アクセスされたデータを前記プロセッサに転送するように動作し、前記データ・アクセス・インターセプタが前記アクセスされたデータの前記プロセッサへの転送を遅らせるように動作し、それによって前記データが前記フラッシュ・デバイスへのデータ・アクセスのタイミングと同じタイミングで転送されるデータ処理装置であって、前記読み出し専用メモリがフラッシュ・デバイスあるいはその他のプログラマブル読み出し専用メモリを含んでいるデータ処理装置
JP2004119216A 2003-04-14 2004-04-14 データ・アクセス要求再マッピング・システム Expired - Lifetime JP4740553B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US412693 1989-09-26
US10/412,693 US7243206B2 (en) 2003-04-14 2003-04-14 Method and apparatus for using a RAM memory block to remap ROM access requests

Publications (3)

Publication Number Publication Date
JP2004318886A JP2004318886A (ja) 2004-11-11
JP2004318886A5 JP2004318886A5 (ja) 2006-09-07
JP4740553B2 true JP4740553B2 (ja) 2011-08-03

Family

ID=32326260

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004119216A Expired - Lifetime JP4740553B2 (ja) 2003-04-14 2004-04-14 データ・アクセス要求再マッピング・システム

Country Status (3)

Country Link
US (1) US7243206B2 (ja)
JP (1) JP4740553B2 (ja)
GB (1) GB2400701B (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062598B1 (en) * 2003-04-29 2006-06-13 Advanced Micro Devices, Inc. Bypass custom array and related method for implementing ROM fixes in a data processor
US20050223292A1 (en) * 2004-02-17 2005-10-06 Lee Chee S Single instruction type based hardware patch controller
KR101472797B1 (ko) * 2007-07-16 2014-12-15 삼성전자주식회사 데이터를 읽거나 쓰기 위한 방법 및 장치
US7861030B2 (en) * 2007-08-08 2010-12-28 Microchip Technology Incorporated Method and apparatus for updating data in ROM using a CAM
US20090119444A1 (en) * 2007-11-01 2009-05-07 Zerog Wireless, Inc., Delaware Corporation Multiple write cycle memory using redundant addressing
US20120254552A1 (en) * 2011-03-30 2012-10-04 Arm Limited Memory access remapping
CN104380259B (zh) * 2012-10-17 2018-09-21 华为技术有限公司 降低内存系统功耗的方法和内存控制器
US9490031B2 (en) * 2014-02-26 2016-11-08 Freescale Semiconductor, Inc. High-speed address fault detection using split address ROM
FR3012898A1 (fr) * 2014-06-03 2015-05-08 Continental Automotive France Procede de prototypage rapide d'une fonction d'un vehicule
US9697908B1 (en) 2016-06-10 2017-07-04 Arm Limited Non-discharging read-only memory cells

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS519535A (ja) * 1974-07-12 1976-01-26 Mitsubishi Electric Corp
US4141068A (en) * 1977-03-24 1979-02-20 Xerox Corporation Auxiliary ROM memory system
JPS567276A (en) * 1979-06-27 1981-01-24 Toshiba Corp Rom unit
US4982360A (en) * 1983-09-22 1991-01-01 Digital Equipment Corporation Memory subsystem
US4603399A (en) * 1983-12-27 1986-07-29 International Business Machines Corporation Data processing apparatus for address substitution
US4610000A (en) * 1984-10-23 1986-09-02 Thomson Components-Mostek Corporation ROM/RAM/ROM patch memory circuit
JPS62118439A (ja) * 1985-11-19 1987-05-29 Matsushita Electric Ind Co Ltd パツチ機構
US4802119A (en) * 1987-03-17 1989-01-31 Motorola, Inc. Single chip microcomputer with patching and configuration controlled by on-board non-volatile memory
JPH01155599A (ja) * 1987-12-11 1989-06-19 Nec Home Electron Ltd 記憶装置
JPH01184533A (ja) * 1988-01-19 1989-07-24 Nec Corp 主記憶のデータ変更方式
JPH02201648A (ja) * 1989-01-31 1990-08-09 Nec Corp メモリアクセス制御方式
JPH03266141A (ja) * 1990-03-16 1991-11-27 Nec Corp マイクロプロセッサシステム
US5212693A (en) * 1990-08-02 1993-05-18 Ibm Corporation Small programmable array to the on-chip control store for microcode correction
JPH04107630A (ja) * 1990-08-28 1992-04-09 Nec Corp 中央処理装置
WO1992008231A1 (en) * 1990-11-02 1992-05-14 Transcomputer, Inc. Rom patch device
US5408672A (en) * 1991-11-18 1995-04-18 Matsushita Electric Industrial Co. Microcomputer having ROM to store a program and RAM to store changes to the program
JPH089435A (ja) 1994-06-15 1996-01-12 Nec Corp 選択呼出受信機
JPH09160768A (ja) * 1995-12-05 1997-06-20 Sharp Corp プログラム実行装置
US5950012A (en) * 1996-03-08 1999-09-07 Texas Instruments Incorporated Single chip microprocessor circuits, systems, and methods for self-loading patch micro-operation codes and patch microinstruction codes
US5829012A (en) * 1996-04-19 1998-10-27 Unisys Corporation System for programmably providing modified read signals within a ROM-based memory
GB2317972A (en) 1996-10-07 1998-04-08 Andrew James Moir Supplementing or replacing data in a ROM
US5757690A (en) * 1997-04-23 1998-05-26 Exponential Technology, Inc. Embedded ROM with RAM valid bits for fetching ROM-code updates from external memory
US6073252A (en) * 1997-09-25 2000-06-06 Motorola, Inc. Data processing system with memory patching and method thereof
US6158018A (en) * 1997-11-25 2000-12-05 Philips Semiconductor, Inc. Integrated circuit including patching circuitry to bypass portions of an internally flawed read only memory and a method therefore
JP4083903B2 (ja) * 1998-12-16 2008-04-30 株式会社ルネサステクノロジ マイクロコンピュータ
JP2001005658A (ja) * 1999-06-18 2001-01-12 Toshiba Corp 組込型データ処理システムおよびシステムプログラム修正方法
JP2001125781A (ja) * 1999-10-29 2001-05-11 Matsushita Electric Ind Co Ltd マイクロプロセッサ、およびマイクロプロセッサにおけるプログラム変更方法
DE19964003A1 (de) * 1999-12-30 2001-07-12 Micronas Gmbh Schaltungsanordnung und Verfahren zur Erzeugung und zum Auslesen von Ersatzdaten
JP2001256044A (ja) * 2000-03-14 2001-09-21 Sony Corp データ処理装置
US6804772B2 (en) * 2000-06-12 2004-10-12 Broadcom Corporation Dynamic field patchable microarchitecture
US6463549B1 (en) * 2000-09-28 2002-10-08 Motorola, Inc. Device and method for patching code residing on a read only memory module utilizing a random access memory for storing a set of fields, each field indicating validity of content of a group, and for receiving an address of a memory portion of the read only memory
DE10055096A1 (de) 2000-11-07 2002-05-16 Infineon Technologies Ag Speicherverwaltungslogik zur erweiterten Nutzung von Festwertspeichern
JP2002149431A (ja) * 2000-11-07 2002-05-24 Nec Corp マイクロコンピュータ
US7310800B2 (en) * 2001-02-28 2007-12-18 Safenet, Inc. Method and system for patching ROM code
US20040015939A1 (en) * 2001-05-16 2004-01-22 Cheah Jonathon Y. Updateable memory module
DE10127179A1 (de) 2001-06-05 2002-12-19 Infineon Technologies Ag Verfahren zur Verwaltung eines Speichers einer Chipkarte
JP2003076566A (ja) * 2001-08-31 2003-03-14 Hitachi Ltd 半導体集積回路
US6925521B2 (en) * 2001-09-10 2005-08-02 Texas Instruments Incorporated Scheme for implementing breakpoints for on-chip ROM code patching

Also Published As

Publication number Publication date
JP2004318886A (ja) 2004-11-11
GB2400701B (en) 2007-10-10
US20040205318A1 (en) 2004-10-14
GB2400701A (en) 2004-10-20
US7243206B2 (en) 2007-07-10
GB0408327D0 (en) 2004-05-19

Similar Documents

Publication Publication Date Title
US7310800B2 (en) Method and system for patching ROM code
US8453015B2 (en) Memory allocation for crash dump
US7290081B2 (en) Apparatus and method for implementing a ROM patch using a lockable cache
JP5030796B2 (ja) データ転送中にキャッシュへのアクセスを制限するシステムおよびその方法
US6691308B1 (en) Method and apparatus for changing microcode to be executed in a processor
US8356210B2 (en) Programming in a simultaneous multi-threaded processor environment including permitting apparently exclusive access to multiple threads and disabling processor features during thread testing
US20070016719A1 (en) Memory device including nonvolatile memory and memory controller
US6272587B1 (en) Method and apparatus for transfer of data between cache and flash memory in an internal combustion engine control system
CN109426619A (zh) 访问快闪存储器模块的方法及相关闪存控制器与电子装置
KR20040014971A (ko) 비휘발성 메모리의 제어방법
JP4740553B2 (ja) データ・アクセス要求再マッピング・システム
US20190324912A1 (en) Cache memory shared by software having different time-sensitivity constraints
US6009503A (en) Cache memory indexing using virtual, primary and secondary color indexes
US6925522B2 (en) Device and method capable of changing codes of micro-controller
US8635603B2 (en) Handling debugger breakpoints in a shared instruction system
US7356647B1 (en) Cache with integrated capability to write out entire cache
EP3759606B1 (en) An apparatus and method for accessing metadata when debugging a device
KR101502827B1 (ko) 컴퓨터 시스템에서의 캐시 무효화 방법
US7234039B1 (en) Method, system, and apparatus for determining the physical memory address of an allocated and locked memory buffer
JP2000030375A (ja) データ処理システム、アクセス装置及び記録媒体
US20130124925A1 (en) Method and apparatus for checking a main memory of a processor
JP7369701B2 (ja) 処理回路上で実行されるべきプログラムをデバッグするときにメタデータにアクセスする方法
US10559359B2 (en) Method for rewriting data in nonvolatile memory and semiconductor device
CN112732309B (zh) Flash存储器的更新方法、装置和电子设备
US7996598B2 (en) Memory management module

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060725

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091106

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100208

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100301

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110310

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110316

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: 20110405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110502

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4740553

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term