JP4339914B2 - エラー訂正コード生成方法及びメモリ管理装置 - Google Patents

エラー訂正コード生成方法及びメモリ管理装置 Download PDF

Info

Publication number
JP4339914B2
JP4339914B2 JP2007556737A JP2007556737A JP4339914B2 JP 4339914 B2 JP4339914 B2 JP 4339914B2 JP 2007556737 A JP2007556737 A JP 2007556737A JP 2007556737 A JP2007556737 A JP 2007556737A JP 4339914 B2 JP4339914 B2 JP 4339914B2
Authority
JP
Japan
Prior art keywords
store
data
error correction
correction code
ecc
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
JP2007556737A
Other languages
English (en)
Other versions
JPWO2007088597A1 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2007088597A1 publication Critical patent/JPWO2007088597A1/ja
Application granted granted Critical
Publication of JP4339914B2 publication Critical patent/JP4339914B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、キャッシュメモリへ書き込むデータのエラー訂正コードの生成方法及びメモリ管理装置に関する。
メインメモリから読み出したデータをキャッシュメモリに記憶しておき、キャッシュメモリのデータをアクセスすることでCPUの処理速度を高めることが行われている。キャッシュメモリのデータに対してはエラー訂正コード(Error Correcting Code)を付加してデータの保護を図っている。
特許文献1には、チェックビット生成の対象となるデータ幅より小さいデータをメモリに書き込む場合に、それらのデータをマルチプレクサで組み合わせて1つのデータにし、ECC生成ユニットでそのデータからチェックビットを生成してメモリに書き込みを行うことが記載されている。これにより、パーシャルライト時のリードモディファイライト動作のアクセス時間を短縮できるという効果が得られる。
また、特許文献2には、ダブル・ワード境界を越える部分書き込みを行う場合に、該当するアドレスがキャッシュに無いときには、チャネルからのデータはスワップバッファに記憶され、部分書き込みに関連したダブル・ワードとスワップバッファのチャネルからのデータとマージされてメインメモリに書き込まれることが記載されている。
図16は、データRAMとECCRAMとを有するメモリシステムにおける、従来のエラー訂正コード生成方法の説明図である。
命令処理装置(図示せず)からストア命令が出力されると、ストア対象のデータがデータRAM(キャッシュメモリ)13に存在するか否かを確認し、ストア対象のデータが存在する場合には、ストア対象のデータを含む8バイトのデータを読み出してエラーのチェックを行う。このとき、ストア命令に対応するストアデータはストアバッファSTB11に書き込まれる。
その後、命令処理装置からストア許可が発行されると、ストアバッファSTB11のデータがライトバッファWB12に書き込まれ、さらにそのデータがデータRAM13に書き込まれる。この書き込みと同時にデータRAM13から8バイトのデータを読み出し、8バイトのデータの中のストア対象領域外のデータからエラー訂正コードECC1を生成する。さらに、8バイトのデータの中のストア対象領域のデータからエラー訂正コードECC2を生成する。この2つのECCをマージしてストア更新後のデータに対するエラー訂正コードECCを生成し、生成したエラー訂正コードをECCRAM14に格納する。
上記の従来のエラー訂正コード生成方法は、以下のような問題点を有している。
ストア命令を受けてキャッシュメモリを検索したときのエラーチェックではエラーが検出されず、キャッシュメモリへのデータの書き込み後に読み出したデータのエラーチェックでエラーが検出されたときには、書き込み後のデータに対するエラー訂正コードを正しく生成することができない。このときECCRAM14に保存されているのはストア命令の実行前のデータから生成したエラー訂正コードであり、ストア命令の実行前のデータはこの時点では失われているので、エラーが検出されたとしてもデータの1ビットエラーを訂正することができないという問題点があった。
上記のエラーは、例えば、SRAM(Static Random Access Memory)に対して書き込みと読み出しを行う場合に、書き込み直後に読み出しを行った場合、読み出し直前のデータがビット線に残留して次のサイクルの読み出しのマージンを低下させることが1つの原因と考えられる。設計上は、書き込み後にデータが残留しないようにビット線をプリチャージトランジスタを用いて規定時間内で電源電圧VDDまで充電させる構造となっている。具体的に説明すると、書き込み時は、メモリセルに接続されるビット線対を書き込みデータに応じて片側をローレベルにしてメモリセルに書き込みを行う。書き込みが終了したなら、次サイクルの読み出し開始時までにビット線対を電源電圧VDDにショートすることで書き込みデータを一掃している。
しかしながら、SRAMを設計値以上の動作サイクルで動作させたとき、あるいはトランジスタの製造バラツキによりプリチャージトランジスタの特性が悪いためにビット線対を電源電圧VDDまでプリチャージできないと、次サイクルの読み出し時にエラーが発生する。
特開平10−232789号公報 特公小58−21353号公報
本発明の課題は、キャッシュメモリのデータのエラーを正確に訂正できるようにすることである。
本発明のメモリ管理装置は、ストア命令のストアデータを格納するバッファと、キャッシュメモリを検索して前記ストア命令のストア対象のデータがキャッシュメモリに存在するか否かを判定する判定回路と、前記判定回路により前記キャッシュメモリに前記ストア対象となるデータが存在すると判定された場合には、前記キャッシュメモリの検索時に前記キャッシュメモリから読み出したストア対象領域外のデータに基づいて第1のエラー訂正コードを生成し、生成した前記第1のエラー訂正コードを前記バッファに格納する第1のエラー訂正コード生成回路と、前記バッファの前記ストアデータのストア対象領域のデータに基づいて第2のエラー訂正コードを生成する第2のエラー訂正コード生成回路と、前記第1のエラー訂正コードと前記第2のエラー訂正コードとをマージして前記ストアデータのエラー訂正コードを生成するマージ回路と備える。
この発明によれば、キャッシュメモリにデータを書き込んだ後にエラーが検出された場合でも、キャッシュメモリの検索時にキャッシュメモリから読み出したストア対象領域外のデータから生成した第1のエラー訂正コードと、ストアデータのストア対象領域のデータから生成した第2のエラー訂正コードとから生成したエラー訂正コードを用いてデータのエラーを正確に訂正することができる。
本発明のメモリ管理装置において、前記第1のエラー訂正コード生成回路は、先行するストア命令のストアアドレスが現在のストア命令のストアアドレスと一致するか否か、現在のストア命令のストアデータのデータ幅が所定のデータ幅と一致するか否かを判定し、同一のストアアドレスを有する先行するストア命令が存在し、かつ現在のストア命令のストアデータのデータ幅が所定のデータ幅未満のときには、前記第1のエラー訂正コードが適正か否かを示すECC有効情報を無効に設定し、該ECC有効情報を前記ストアデータと前記第1のエラー訂正コードと対応づけて記憶する。
このように構成することで、ECC有効情報が有効か、無効かを判定することで、第1のエラー訂正コードが適正か否かを判定できる。
本発明のメモリ管理装置において、前記バッファは複数のバッファからなり、前記複数のバッファに同一のストアアドレスが存在するか否か、現在のストア命令のストアデータのデータ幅が所定のデータ幅と一致するか否かを判定し、前記複数のバッファに同一のストアアドレスが存在し、かつ現在のストア命令のストアデータのデータ幅が所定のデータ幅未満のときには、前記ECC有効情報を無効に設定し、該ECC有効情報を前記ストアデータと前記第1のエラー訂正コードと対応づけて該当するバッファの前記ストアアドレスに格納する。
このように構成することで複数のバッファに同一のストアアドレスが存在し、かつ現在のストア命令のストアデータのデータ幅が所定のデータ幅未満のときには、先行するストア命令が完了してから、第1のエラー訂正コードを生成し、その第1のエラー訂正コードと、ストアデータのストア対象領域のデータから生成する第2のエラー訂正コードを用いて適正なエラー訂正コードを生成することができる。
本発明のメモリ管理装置において、前記マージ回路は、前記バッファの前記ECC有効情報が有効か、無効かを判定し、前記ECC有効情報が有効に設定されているときには、前記第1のエラー訂正コードと前記第2のエラー訂正コードをマージして前記ストアデータのエラー訂正コードを生成する。
このように構成することでECC有効情報が有効で適正な第1のエラー訂正コードが生成されている場合に、その第1のエラー訂正コードとストアデータから生成する第2のエラー訂正コードをマージして正しいエラー訂正コードを生成することができる。
本発明のメモリ管理装置において、前記バッファの前記ECC有効情報が無効に設定された状態で、先行するストア命令が完了したときには、前記バッファの該当するストアアドレスの前記ECC有効情報を有効に書き替える。
このように構成することで、同一のストアアドレスに対してデータの書き込みを行う先行するストア命令が存在する場合でも、そのストア命令が完了したときに処理の待ち時間を生じることなく、後続のストア命令のストアデータをキャッシュメモリに書き込むことができる。
メモリ管理装置の基本構成を示す図である。 実施の形態のエラー訂正コード生成方法の説明図である。 ストアバッファとライトバッファのデータ構成を示す図である。 IU−REQ時の動作フローチャートである。 IU−REQ時の動作説明図である。 IU−REQ時の動作を示すタイムチャートである。 ECC−VALの設定回路のブロック図である。 WB−GO時の動作説明図である。 ST1−REQ時の動作フローチャートである。 ST1−REQ時の動作説明図である。 ST1−REQ時の動作を示すタイムチャートである。 ST2−REQ時の動作フローチャートである。 ST2−REQ時の動作説明図である。 ST2−REQ時の動作を示すフローチャートである。 ECC生成回路のブロック図である。 従来のエラー訂正コード生成方法の説明図である。
以下、本発明の実施の形態を図面を参照して説明する。図1は、本発明の一実施形態に係るエラー訂正コード生成方法に従って動作するメモリ管理装置の基本構成を示す図である。
図1において、メモリ管理装置は、判定回路1と第1のエラー訂正コード生成回路2と第2のエラー訂正コード生成回路3とマージ回路4とバッファ5とを有する。
ストア命令のストアデータはバッファ5に格納される。判定回路1は、キャッシュメモリ6を検索してストア命令のストア対象のデータがキャッシュメモリ6に存在するか否かを判定する。
第1のエラー訂正回路2は、判定回路1によりキャッシュメモリ6にストア対象となるデータが存在すると判定された場合には、キャッシュメモリ6の検索時にキャッシュメモリ6から読み出したストア対象領域外のデータに基づいて第1のエラー訂正コードを生成する。
第2のエラー訂正コード生成回路3は、バッファ5のストアデータのストア対象領域のデータに基づいて第2のエラー訂正コードを生成する。
マージ回路4は、第1のエラー訂正コードと第2のエラー訂正コードとをマージしてストアデータのエラー訂正コードを生成しECCメモリ7に書き込む。
上記のメモリ管理装置によれば、キャッシュメモリ6の検索時に読み出したストア対象領域外のデータから生成した第1のエラー訂正コードと、キャッシュメモリに書き込むストアデータから生成した第2のエラー訂正コードをマージしてエラー訂正コードを生成しているので、キャッシュメモリにデータを書き込んだ後にエラーが検出された場合でも、データのエラー(例えば、1ビットのエラー)を正確に訂正することができる。
従って、従来は、キャッシュメモリ6からのデータの読み出しは、検索時と、ストア許可後に第1のエラー訂正コードを生成する場合との2回であったが、本実施の形態では、キャッシュメモリ6からのデータの読み出しは、検索時のデータチェックと第1のエラー訂正コードの生成のための1回で良い。
次に、図2は、実施の形態のエラー訂正コード生成方法の説明図である。この実施の形態は、キャッシュメモリを有し、パイプライン方式で命令を実行するCPUに関するものである。
命令処理装置22からストア命令が出力され、演算器23からストアデータが出力されと、記憶処理装置24はストア命令に含まれるストア情報に基づいてストアバイトマークSTBMを作成し、ストアアドレスと共にストアバッファ25に格納する。ストアバイトマークSTBMとは、所定幅のデータ(実施の形態では8バイトのデータ)のどのバイトをストアするかを示すデータでありバイト単位に作成される。
ストア命令のストア情報には、ストアアドレス、ストアデータ幅、データを左詰に格納するか、右詰で格納するかを指定するアライン情報などが含まれる。
記憶処理装置24は、ストア対象のキャッシュラインがデータRAM(キャッシュメモリ)27に存在するか否かを判定する。さらに、先行するストア命令のストアアドレスと現在のストア命令のストアドレスが一致するか否か、現在のストア命令のストアデータのデータ幅が所定のデータ幅と一致するか否かを判定する。同一のストアアドレスの先行するストア命令が存在し、かつ現在のストア命令のストアデータのデータ幅が所定のデータ幅未満のときには、先行するストア命令が完了しないとストア対象外のデータから生成するnt−ECCが確定しないので、そのストア命令をストア・ストア・インターロックSSIの対象とする。ストア・ストア・インターロックの対象と判断されたストア命令は、先行するストア命令のストアが完了した後、ストア・ストア・インターロックが解除される。
記憶処理装置24は、データRAM27の検索時にデータRAM27の該当するアドレスから読み出したストア対象領域外のデータからエラー訂正コードnt−ECC(第1のエラー訂正コードに対応する)を算出して、演算器23から出力されるストアデータと共にストアバッファ25に書き込む。このとき、現在のストア命令がストア・ストア・インターロックの対象であるときには、先行するストア命令が完了しないと正しいnt−ECCが得られないのでECC有効情報ECC−VALを無効(例えば、「0」)に設定し、それ以外のときはECC有効情報ECC−VALを有効(例えば、「1」)に設定する。
図3(A)、(B)は、ストアバッファ25とライトバッファ26のデータ構成を示す図である。
図3(A)に示すように、ストアバッファ25の各アドレスには、8バイトのデータと、その8バイトのデータのエラー訂正コードである1バイトのnt−ECCと、8バイトのデータのどのバイトのデータをストアするかを示すストアバイトマークSTMBと、ストアアドレスADRSと、キャッシュヒットしたか否かを示すLIDと、ECC有効情報ECC−VALとが対応づけて記憶されている。LIDには、キャッシュヒットしたとき「1」が設定され、キャッシュミスのとき「0」が設定される。ECC有効情報ECCーVALは、ストアバッファ25に適正なnt−ECCが格納されているか否かを示す情報である。同一ストアアドレスに対する先行するストア命令が存在し、かつストアデータのデータ幅が8バイト未満のときには、先行するストア命令が完了しないと正しいnt−ECCを生成することができないので、その場合にはECC有効情報ECC−VALを無効(「0」)に設定し、それ以外のときは有効(「1」)に設定する。
図8(B)に示すように、ライトバッファ26のアドレスは、偶数(EVEN)アドレスと奇数(ODD)アドレスに分けられており、それぞれ8バイトのデータと、1バイトのnt−ECCと、ストアバイトマークSTBMと、ストアアドレスADRSと、LIDと、ECC有効情報ECC−VALとが記憶される。
図2に戻り、記憶処理装置24は、命令処理装置22からストア許可を受け取ると、ストアバッファ25のデータをライトバッファタ26に書き込む。そして、ライトバッファ26のECC有効情報が有効(「1」)で、かつLIDが「1」のとき、対応するストアデータをライトバッファ26から読み出し、読み出したストアデータに基づいてストア対象領域のデータのエラー訂正コードt−ECC(第2のエラー訂正コードに対応する)を生成する。そして、生成したt−ECCとライトバッファ26に格納されているnt−ECCをマージしてマージ結果をECCRAM28に書き込む。
次に、実施の形態のエラー訂正コード生成方法ついてより詳細に説明する。以下の説明では、記憶処理装置24がエラー訂正コードを生成してECCRAM28に書き込むまでの動作を、IU−REQ(Instruction Unit-Request)と、WB−GO(Write Buffer-GO)と、ST1−REQ(Store 1-Request)と、ST2−REQ(Store 2-Request)の4つに分けて説明する。
最初に、IU−REQ時の記憶処理装置24の動作を図4の動作フローチャートを参照して説明する。
IU−REQ時の処理動作とは、記憶処理装置24が命令処理装置22からストア命令を受け取り、nt−ECC、LID、ECC有効情報等を生成してストアバッファ25に格納するときの動作である。
記憶処理装置24は、命令処理装置22からストア命令を受け取ると、ストア対象データがデータRAM27に存在するか否か、つまりキャッシュヒットしたか否かを判定する(図4,S11)。
キャッシュヒットした場合には(S11,YES)、ストア命令のストア情報からストアバイトマークSTBMを作成し、キャッシュヒットしたか否かを示すLIDに「1」を設定し(S12)、それらのデータをストアバッファ25に格納する(S13)。
キャッシュヒットしなかった場合には(S11,NO)、ステップS14に進み、LIDに「0」を設定した後、上記のステップ13に進み、LIDを=0をストアバッファ25に格納する。この場合、キャッシュミスであるのでCPUにストア命令で指定されたデータをメインメモリから読み出すように指示する。
次に、ストア命令のストアデータがストア・ストア・インターロックSSIの対象か否かを判定する(S15)。
上記のステップS15の処理では、先行するストア命令のストアアドレスと現在のストア命令のストアアドレスを比較してストアアドレスが同一か否かを判定する。ストアアドレスが同一の場合、つまり複数のストアバッファ25とライトバッファ26に同一のストアアドレスが存在する場合には、現在のストア命令のストアデータのデータ幅が所定のデータ幅(実施の形態では、8バイトのデータ幅)と一致するか否かを判定する。ストアデータのデータ幅が所定のデータ幅と一致するか否かは、例えば、ストアバイトマークSTBMの値により行う。ストアデータのデータ幅が所定のデータ幅未満のときには、そのストア命令をストア・ストア・インターロックの対象と判断する。それ以外の場合は、ストア・ストア・インターロックの対象ではないと判断する。
ストア命令がストア・ストア・インターロックの対象と判定されたときには(S15,YES)、ステップ16に進み、ECC有効情報ECC−VALに「0」を設定してECC有効情報を無効にした後、次のステップ17で、設定したECC有効情報ECC−VALをストアバッファ25に格納する。
ストアデータがストア・ストア・インターロックの対象ではないと判定されたときには(S15,NO)、ステップS18に進み、ECC有効情報ECC−VALに「1」を設定する。その後、上記のステップS17に進み、設定したECC有効情報ECC−VALをストアバッファ25に格納する。
ステップS11でキャッシュヒットと判定された場合には、ステップS19において、キャッシュの検索時に読み出したストア対象外のデータからエラー訂正コードnt−ECCを生成する。そして、生成したnt−ECCをストアバッファ25に格納する(S20)。
上記のようにしてnt−ECCと、LIDと、ECC有効情報ECC−VALをストアデータと対応づけてストアバッファ25に格納してストアバッファ25の状態を確定させる(S21)。
ここで。上述したIU−REQ時の動作を図5の動作説明図と、図6のタイムチャートを参照して説明する。
記憶処理装置24は、命令処理装置22からのストア命令を受け取ると、ストア対象データがデータRAM27に存在するか否かを判定する。ストア対象データがデータRAM27に存在する場合、つまりキャッシュヒットした場合には、さらに、先行するストア命令のストアアドレスと現在のストア命令のストアアドレスが一致するか否か、ストアデータのデータ幅が所定のデータ幅(例えば、8バイト)と一致するか否かを判定する(図6の(1))。
他のストアバッファ25とライトバッファ26に同一のストアアドレスが存在し、かつ現在のストア命令のストアデータのデータ幅が所定のデータ幅未満のときには(例えば、8バイトのフルストアでないとき)、そのストア命令はストア・ストア・インターロックSSIの対象と判定する(図6の(2)のSSIの検出)。
キャッシュヒットし、ストア・ストア・インターロックの対象でない場合には、キャッシュの検索時にデータRAM27のストアアドレスから読み出したストア対象領域外のデータ(ストアバイトマークで指定されるデータ以外のデータ)に基づいてエラー訂正コードnt−ECCを生成し、ECC有効情報ECC−VALに「1」を設定し、LIDに「1」を設定する。そして、ストアバイトマークSTBMと、nt−ECCと、LIDと、ECC有効情報とをストアデータと対応づけてストアバッファ25に格納する(図6の(3))。
キャッシュミスした場合、あるいはストア命令がストア・ストア・インターロックの対象の場合には、LIDを「0」に、あるいはECC有効情報を「0」に設定し、それらのデータをストアバッファ25に格納する(図6の(3))。
図7は、ECC有効情報ECC−VALの設定回路のブロック図である。
アドレスマッチ回路31は、IU−REQまたはST1−REQ時のストアアドレスと先行するストア命令のストアアドレスが一致するか否かを判定する。このアドレスマッチ回路31は、IU−REQまたはST1−REQ時のストアアドレスが先行するストア命令のストアアドレスと一致するとき「1」を、不一致のとき「0」を出力する。
インバータ32は、IU−REQまたはST1−REQ時のストアデータ幅が8バイトか否かを示す信号の反転信号を出力する。従って、インバータ32からは、IU−REQまたはST1−REQ時のストアデータ幅が8バイトのとき「0」が、ストアデータのデータ幅が8バイト未満のとき「1」が出力される。
ナンドゲート33は、アドレスマッチ回路31のストアアドレスの比較結果と、インバータ32のストアデータのデータ幅が8バイトか否かを示す信号とに基づいて、ストア・ストア・インターロックの対象であるか否かを示す信号(以下、この信号をSSI検出信号と呼ぶ)を出力する。
すなわち、IU−REQまたはST1−REQ時のストアアドレスと先行するストア命令のストアアドレスが一致し、かつIU−REQまたはST1−REQ時のストアデータのデータ幅が8バイト未満のときには、SSI検出信号を「0」にしてストア・ストア・インターロックの対象であることを示す。また、IU−REQまたはST1−REQ時のストアアドレスと先行するストア命令のストアアドレスが不一致、あるいはIU−REQまたはST1−REQ時のストアデータ幅が8バイトのときには、SSI検出信号を「1」にする。
アンドゲート34は、SSI検出信号が「0」のとき、すなわち、ストアデータがストア・ストア・インターロックの対象のときには、ECC有効情報ECC−VALを「0」にする。また、SSI検出信号が「1」のとき、すなわち、ストア・ストア・インターロックの対象ではないときには、ECC有効情報ECC−VALを「1」にして正しいnt−ECCが設定されていることを示す。
次に、WB−GO時の記憶処理装置24の動作を図8の動作説明図を参照して説明する。WB−GOとは、ストアバッファ25のデータをライトバッファ26へ書き込むときの動作である。
記憶処理装置24は、命令処理装置22からストア許可を受け取ると、対象となるストアバッファ25の処理の優先順位が最も高いか、空いているライトバッファ26が存在するか否かを判断し、優先順次が最も高く、空いているライトバッファ26が存在する場合には、ストアバッファ25の対象となるデータと、nt−ECCと、ストアバイトマークSTBMと、ストアアドレスADRSと、LIDと、ECC有効情報をライトバッファ26に書き込む。
次に、ST1−REQ時の動作を図9の動作フローチャートを参照して説明する。ST1−REQは、LIDが「0」でキャッシュミスした場合、あるいはECC有効情報ECC−VALが「0」でnt−ECCが確定していない場合の処理動作である。
ライトバッファ26の指定されたストアアドレスのデータを読み出しライトバッファ26の状態を確認する(図9,S31)。
次に、ライトバッファ26から読み出したLIDが「0」か否か、ECC有効情報ECC−VALが「0」か否かを判別する(S32)。
LIDが「0」でキャッシュミスのとき、あるいはECC有効情報ECC−VALが「0」のときには(S32,YES)、ステップS33に進み、ST1−REQを起動する。
ST1−REQが起動されると、ステップS34において、キャッシュヒットしたか否かを判定する。キャッシュヒットした場合には(S34,YES)、ステップS35に進み、LIDに「1」を設定する。次に、「1」を設定したLIDをライトバッファ26に格納する(S36)。ステップS34でキャッシュミスと判定された場合には(S34,NO)、ステップS37に進み、LIDに「0」を設定し、上記のステップS36に進み、LID=0をライトバッファ26に格納する。この場合、キャッシュミスであるのでデータをメインメモリから読み出すように命令処理装置22に通知する。
次に、ストア命令がストア・ストア・インターロックSSIの対象か否かを判定する(S38)。このストア・ストア・インターロックの対象か否かの判定は、同一のストアアドレスが複数のライトバッファ26に存在するか否か、後続のストア命令のストアデータのデータ幅が所定のデータ幅未満か否かにより行う。
ストア命令がストア・ストア・インターロックの対象の場合には(S38,YES)、ステップS39に進み、ECC有効情報ECC−VALに「0」を設定する。そして、設定したECC有効情報ECC−VALを該当するライトバッファ26に格納する(S39)。
ステップS38でストア命令がストア・ストア・インターロックの対象ではないと判定された場合には(S38,NO)、ステップS41に進み、ECC有効情報ECC−VALに「1」を設定する。
なお、同一のストアアドレスに対してデータの書き込みを行う先行するストア命令が存在し、後続のストア命令がストア・ストア・インターロックの対象となっている場合でも、先行するストア命令が完了すると、後続のストア命令はストア・ストア・インターロックの対象ではなくなるので、上記のステップS41において、ECC有効情報ECC−VALが「1」に変更される。ECC有効情報ECC−VALが変更された場合には、後述するステップS43及びS44において、更新後のデータRAM27のデータのストア対象領域外のデータに基づいて新たなnt−ECCが生成され、生成されたnt−ECCがライトバッファ26に格納される。
上述したLID及びECC有効情報ECC−VALの設定等によりライトバッファ26の状態が確定する(S42)。
ステップS34でキャッシュヒットと判定された場合には、ステップS43において、キャッシュの検索時にデータRAM27のストアアドレスから読み出したストア対象外のデータのnt−ECCを生成する。そして、生成したnt−ECCをライトバッファ26に格納する(S44)。
ここで、ST1−REQ時の記憶処理装置24の動作を、図10の動作説明図と図11のタイムチャートを参照して説明する。
記憶処理装置24は、図10に示すように、ライトバッファ26のストアアドレスのLIDとECC有効情報ECC−VALを読み出し、LID=0、またはECC−VAL=0と判定した場合にはST1−REQの動作を行う。
キャッシュヒットしているときには、現在のストア命令のストアアドレスと同一のストアアドレスが他のライトバッファ26に存在するか否かを判定する(図11の(1))。
同一のストアアドレスが他のライトバッファ26に存在する場合には、さらにストアデータのデータ幅が所定のデータ幅か否かを判定する。ストアデータのデータ幅が所定のデータ幅未満であれば、ストア・ストア・インターロックの対象と判断する(図11の(2))。
ストア命令がストア・ストア・インターロックの対象と判断した場合には、ライトバッファ26の該当するストアアドレスにECC有効情報ECC−VALとして「0」を書き込み、データRAM27の該当するストアアドレスのストア対象領域外のデータから生成したnt−ECCをライトバッファ26の該当するストアアドレスに書き込む(図11の(3))。
次に、ST2−REQ時の記憶処理装置24の動作を図12の動作フローチャートを参照して説明する。
最初に、ライトバッファ26のLID=1、かつECC−VAL=1か否かを判別する(図12,S51)。
LID=1,かつECC−VAL=1のとき(S51,YES)、すなわち、データRAM(キャッシュメモリ)27にストア対象のデータが存在、かつストア命令がストア・ストア・インターロックの対象でない場合には、ステップS52に進み、ST2−REQが起動される。
ST2−REQが起動されると、ステップS53において、ライトバッファ26のストアデータをデータRAM27に格納する。次に、ライトバッファ26のストアデータに基づいてt−ECCを生成する(S54)。
次に、生成したt−ECCと、ライトバッファ26の該当するストアアドレスに格納されているnt−ECCをマージする(S55)。
最後に、マージして得られるエラー訂正コードECCをECCRAM28に格納する(S56)。
ここで、ST2−REQ時の動作を図13の動作説明図と図14のタイムチャート並びに図15のECC生成回路のブロック図を参照して説明する。
記憶処理装置24は、図13に示すように、ライトバッファ26の指定されたストアアドレスのLIDとECC有効情報ECC−VALを読み出し、LID=1、かつECC−VAL=1か否かを判定し、両者を「1」と判定した場合にはST2−REQの動作を行う。
先ず、ライトバッファ26の該当するストアアドレスのデータに基づいてストアデータのt−ECCを生成する(図14の(1))。
次に、ライトバッファ26の該当するストアアドレスからストア対象領域外のデータのエラー訂正コードnt−ECCを読み出し、そのnt−ECCと、ライトバッファ26のストアデータから生成したストア対象領域のデータのエラー訂正コードt−ECCをマージする(図14の(2))。このとき、同時にライトバッファ26のストアデータをデータRAM27に書き込む。
次に、t−ECCとnt−ECCをマージしたデータをECCRAM28に格納する(図14の(3))。
図15は、ECC生成回路のブロック図である。図15において、ライトバッファ26の8バイトのデータと、各バイトのストアバイトマークSTBMの値との論理積を求め、ストア対象領域外のバイトデータを「0」にする。そして、SEC−DED(Single bit Error Correcting-Double bit Error Detecting)方式により、ストア領域のデータのエラー訂正コードt−ECCを生成して排他的論理和回路EX−OR41に出力する。EX−OR41の他方の入力端子には、ライトバッファ26に格納されているnt−ECC(SEC−DED方式で生成されている)が入力し、EX−OR41はそれらのデータの排他的論理和を取り、その結果をストア後のデータのECCとしてECCRAM28に出力する。
上記のECC生成回路により、ライトバッファ26に格納されているストアデータのエラー訂正コードt−ECCと、データRAM27の検索時に読み出した該当するストアアドレスのストア対象領域外のデータから生成したエラー訂正コードnt−ECCがマージされ、マージ結果のエラー訂正コードECCがECCRAM28に書き込まれる。
上述した実施の形態は、キャッシュメモリの検索時にデータRAM(キャッシュメモリ)27から読み出したストアアドレスのストア対象領域外のデータに基づいてエラー訂正コードnt−ECCを生成し、生成したnt−ECCをストアデータと対応づけてストアバッファ25に格納する。さらに、ストアバッファ25のストアデータとnt−ECCをライトバッファ26に書き込み、ライトバッファ26のストアデータのストア対象領域のデータに基づいてエラー訂正コードt−ECCを生成する。そして、nt−ECCとt−ECCをマージしてマージ結果をストアデータのエラー訂正コードとしてECCRAM28に書き込んでいる。
上記のように構成することで、データRAM(キャッシュメモリ)27にストアデータを書き込んだ後にエラーチェックを行ってエラーが検出された場合でも、キャッシュメモリの検索時にデータRAM27から読み出したストア対象領域外のデータから生成したnt−ECCと、データRAM27に書き込むストアデータから生成したt−ECCをマージして得られるエラー訂正コードを用いてエラー訂正を行うことでデータの1ビットのエラーを正確に訂正することができる。
さらに、先行するストア命令のストアアドレスが現在のストア命令のストアアドレスと同一で、現在のストア命令のデータ幅が所定のデータ幅(例えば、8ビット)未満のときには、ECC有効情報ECC−VALを無効(例えば、「0」)に設定し、そのECC有効情報ECC−VALをnt−ECCとストアデータと対応づけてストアバッファ25に格納する。ストアアドレスが不一致またはデータ幅が所定のデータ幅と一致する場合には、ECC有効情報ECC−VALを有効(例えば、「1」)に設定してストアデータとnt−ECCと対応づけてストアバッファ25に格納する。
上記のように構成することで、例えば、同一のストアドレスを有する先行のストア命令が存在し、かつ現在のストア命令のストアデータのデータ幅が所定のデータ幅未満で、現在のストア命令の実行が待たされる場合でも、先行するストア命令が完了した時点で、現在のストア命令に対応するECC有効情報ECC−VALを無効(「0」)から有効(「1」)に書き替えることで、ストア・ストア・インターロック制御による待ち状態から解放することができる。これにより、ストア・ストア・インターロック制御を行ったときにストア命令の実行に不要な待ち時間が発生するのを防止できる。
本発明によれば、キャッシュメモリにデータを書き込んだ後にエラーが検出された場合でも、データを書き込む前のストア対象領域外のデータから生成した第1のエラー訂正コードと、ストアデータのストア対象領域のデータから生成した第2のエラー訂正コードから生成したエラー訂正コードを用いてデータのエラーを正確に訂正することができる。
本発明は上述した実施の形態に限らず、問えば、以下のように構成しても良い。
(1)本発明は、キャッシュメモリを有するCPU等及びそのCPUが実装された情報処理装置に適用できる。また、SEC−DED方式のエラー訂正コードに限らず、他の方式のエラー訂正コードにも適用できる。実施の形態は、複数のストアバッファ25と複数のライトバッファ26の2種類のバッファを用いる場合について説明したが、ストアバッファ25のみ、または、ライトバッファ26のみを用いる場合にも本発明は適用できる。
(2)実施の形態では、記憶処理装置24の動作をIU−REQ、WB−GO、ST1−REQ、ST2−REQの4つの動作に分けて説明したが、この4種の動作に限定されるものではない。
(3)また、実施の形態では、データRAM27のストア対象領域以外のデータから生成したエラー訂正コードnt−ECCをストアバッファ25及びライトバッファ26に格納するようにしたが、ストアバッファ25またはライトバッファ26以外の別のレジスタに格納するようにしても良い。

Claims (10)

  1. ストア命令のストアデータをバッファに格納し、
    キャッシュメモリを検索して前記ストア命令のストア対象のデータが前記キャッシュメモリに存在するか否かを判定し、
    前記キャッシュメモリに前記ストア対象のデータが存在すると判定された場合に、前記キャッシュメモリの検索時に前記キャッシュメモリから読み出したストア対象領域外のデータに基づいて第1のエラー訂正コードを生成し、生成した前記第1のエラー訂正コードを前記バッファに格納し、
    前記バッファの前記ストアデータのストア対象領域のデータに基づいて第2のエラー訂正コードを生成し、
    前記第1のエラー訂正コードと前記第2のエラー訂正コードとをマージして前記ストアデータのエラー訂正コードを生成するエラー訂正コード生成方法。
  2. 先行するストア命令のストアアドレスが現在のストア命令のストアアドレスと一致するか否か、現在のストア命令のストアデータのデータ幅が所定のデータ幅と一致するか否かを判定し、同一のストアアドレスを有する先行するストア命令が存在し、かつ現在のストア命令のストアデータのデータ幅が所定のデータ幅未満のときには、前記第1のエラー訂正コードが適正か否かを示すECC有効情報を無効に設定し、該ECC有効情報を前記ストアデータと前記第1のエラー訂正コードと対応づけて記憶する請求項1記載のエラー訂正コード生成方法。
  3. 前記バッファは複数のバッファからなり、前記複数のバッファに同一のストアアドレスが存在するか否か、現在のストア命令のストアデータのデータ幅が所定のデータ幅と一致するか否かを判定し、前記複数のバッファに同一のストアアドレスが存在し、かつ現在のストア命令のストアデータのデータ幅が所定のデータ幅未満のときには、前記ECC有効情報を無効に設定し、該ECC有効情報を前記ストアデータと前記第1のエラー訂正コードと前記ストアアドレスとに対応づけて前記バッファに格納する請求項2記載のエラー訂正コード生成方法。
  4. 前記ECC有効情報が有効か、無効かを判定し、前記ECC有効情報が有効に設定されているときには、前記第1のエラー訂正コードと前記第2のエラー訂正コードをマージしてストアデータのエラー訂正コードを生成する請求項2記載のエラー訂正コード生成方法。
  5. 前記バッファの前記ECC有効情報が無効に設定された状態で、先行するストア命令が完了したときには、前記バッファの該当するストアアドレスの前記ECC有効情報を有効に書き替える請求項2記載のエラー訂正コード生成方法。
  6. ストア命令により指定されるストアデータを格納するバッファと、
    キャッシュメモリを検索して前記ストア命令のストア対象のデータが前記キャッシュメモリに存在するか否かを判定する判定回路と、
    前記判定回路により前記キャッシュメモリに前記ストア対象となるデータが存在すると判定された場合には、前記キャッシュメモリの検索時に前記キャッシュメモリから読み出したストア対象領域外のデータに基づいて第1のエラー訂正コードを生成し前記バッファに格納する第1のエラー訂正コード生成回路と、
    前記バッファの前記ストアデータのストア対象領域のデータに基づいて第2のエラー訂正コードを生成する第2のエラー訂正コード生成回路と、
    前記第1のエラー訂正コードと前記第2のエラー訂正コードとをマージして前記ストアデータのエラー訂正コードを生成するマージ回路と備えるメモリ管理装置。
  7. 前記第1のエラー訂正コード生成回路は、先行するストア命令のストアアドレスが現在のストア命令のストアアドレスと一致するか否か、現在のストア命令のストアデータのデータ幅が所定のデータ幅と一致するか否かを判定し、同一のストアアドレスを有する先行するストア命令が存在し、かつ現在のストア命令のストアデータのデータ幅が所定のデータ幅未満のときには、前記第1のエラー訂正コードが適正か否かを示すECC有効情報を無効に設定し、該ECC有効情報を前記ストアデータと前記第1のエラー訂正コードと対応づけて記憶させる請求項6記載のメモリ管理装置。
  8. 前記バッファは複数のバッファからなり、
    前記第1のエラー訂正コード生成回路は、前記複数のバッファに同一のストアアドレスが存在するか否か、現在のストア命令のストアデータのデータ幅が所定のデータ幅と一致するか否かを判定し、前記複数のバッファに同一のストアアドレスが存在し、かつ現在のストア命令のストアデータのデータ幅が所定のデータ幅未満のときには、前記ECC有効情報を無効に設定し、該ECC有効情報を前記ストアデータと前記第1のエラー訂正コードと前記ストアアドレスとに対応づけて前記バッファに格納する請求項7記載のメモリ管理装置。
  9. 前記マージ回路は、前記ECC有効情報が有効か、無効かを判定し、前記ECC有効情報が有効に設定されているときには、前記第1のエラー訂正コードと前記第2のエラー訂正コードをマージして前記ストアデータのエラー訂正コードを生成する請求項7記載のメモリ管理装置。
  10. 前記ECC有効情報が無効に設定された状態で、先行するストア命令が完了したとき、前記バッファの該当するストアアドレスの前記ECC有効情報を有効に書き替える請求項7記載のメモリ管理装置。
JP2007556737A 2006-01-31 2006-01-31 エラー訂正コード生成方法及びメモリ管理装置 Expired - Fee Related JP4339914B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/301590 WO2007088597A1 (ja) 2006-01-31 2006-01-31 エラー訂正コード生成方法及びメモリ管理装置

Publications (2)

Publication Number Publication Date
JPWO2007088597A1 JPWO2007088597A1 (ja) 2009-06-25
JP4339914B2 true JP4339914B2 (ja) 2009-10-07

Family

ID=38327185

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007556737A Expired - Fee Related JP4339914B2 (ja) 2006-01-31 2006-01-31 エラー訂正コード生成方法及びメモリ管理装置

Country Status (6)

Country Link
US (1) US8245110B2 (ja)
EP (1) EP1980946B1 (ja)
JP (1) JP4339914B2 (ja)
KR (1) KR100972807B1 (ja)
CN (1) CN101336418B (ja)
WO (1) WO2007088597A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007133986A (ja) * 2005-11-11 2007-05-31 Nec Electronics Corp 半導体記憶装置
WO2008155850A1 (ja) 2007-06-20 2008-12-24 Fujitsu Limited キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム
JP5163298B2 (ja) 2008-06-04 2013-03-13 富士通株式会社 情報処理装置、データ伝送装置及びデータ伝送方法
JP2010204828A (ja) * 2009-03-02 2010-09-16 Renesas Electronics Corp データ保護回路及び方法、並びにデータ処理装置
US8694862B2 (en) * 2012-04-20 2014-04-08 Arm Limited Data processing apparatus using implicit data storage data storage and method of implicit data storage
JP6140093B2 (ja) * 2014-03-18 2017-05-31 株式会社東芝 キャッシュメモリ、誤り訂正回路およびプロセッサシステム
JP6718294B2 (ja) * 2016-04-25 2020-07-08 アズビル株式会社 レジスタ異常検出装置
US10769013B1 (en) * 2018-06-11 2020-09-08 Cadence Design Systems, Inc. Caching error checking data for memory having inline storage configurations

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5298434A (en) 1976-02-14 1977-08-18 Hitachi Ltd Correction for memory error
US4298929A (en) * 1979-01-26 1981-11-03 International Business Machines Corporation Integrated multilevel storage hierarchy for a data processing system with improved channel to memory write capability
DD159377A1 (de) 1981-05-28 1983-03-02 Reiner Hesse Anordnung zur positionierung
JPS603046A (ja) 1983-06-17 1985-01-09 Hitachi Ltd 記憶制御方式
JPH0756640B2 (ja) * 1985-03-01 1995-06-14 株式会社日立製作所 記憶装置
US4768197A (en) * 1986-09-15 1988-08-30 Amdahl Corporation Cache error code update
JPS63231553A (ja) 1987-03-19 1988-09-27 Nec Corp 部分書込み方式
JPH01134548A (ja) 1987-11-19 1989-05-26 Fujitsu Ltd 記憶装置
JPH0460734A (ja) 1990-06-29 1992-02-26 Hitachi Ltd 記憶装置
US5664148A (en) * 1995-08-17 1997-09-02 Institute For The Development Of Emerging Architectures L.L.C. Cache arrangement including coalescing buffer queue for non-cacheable data
JPH10232789A (ja) * 1997-02-19 1998-09-02 Hitachi Ltd Eccパーシャルライト制御ユニット
US6725343B2 (en) * 2000-10-05 2004-04-20 Hewlett-Packard Development Company, L.P. System and method for generating cache coherence directory entries and error correction codes in a multiprocessor system
JP4234361B2 (ja) * 2002-06-28 2009-03-04 富士通株式会社 記憶制御装置およびデータ格納方法
US7203890B1 (en) * 2004-06-16 2007-04-10 Azul Systems, Inc. Address error detection by merging a polynomial-based CRC code of address bits with two nibbles of data or data ECC bits
US7392456B2 (en) * 2004-11-23 2008-06-24 Mosys, Inc. Predictive error correction code generation facilitating high-speed byte-write in a semiconductor memory
US7617437B2 (en) * 2006-02-21 2009-11-10 Freescale Semiconductor, Inc. Error correction device and method thereof
US7930615B2 (en) * 2007-05-31 2011-04-19 Agere Systems Inc. Memory device with error correction capability and preemptive partial word write operation
US7836262B2 (en) * 2007-06-05 2010-11-16 Apple Inc. Converting victim writeback to a fill

Also Published As

Publication number Publication date
EP1980946A1 (en) 2008-10-15
JPWO2007088597A1 (ja) 2009-06-25
EP1980946B1 (en) 2013-05-29
WO2007088597A1 (ja) 2007-08-09
US20090031188A1 (en) 2009-01-29
KR20080089619A (ko) 2008-10-07
CN101336418B (zh) 2011-02-09
US8245110B2 (en) 2012-08-14
EP1980946A4 (en) 2009-07-29
KR100972807B1 (ko) 2010-07-29
CN101336418A (zh) 2008-12-31

Similar Documents

Publication Publication Date Title
JP4339914B2 (ja) エラー訂正コード生成方法及びメモリ管理装置
US8065555B2 (en) System and method for error correction in cache units
US7921339B2 (en) Flash storage device with data correction function
US7810016B2 (en) Semiconductor storage device equipped with ECC function
US7272773B2 (en) Cache directory array recovery mechanism to support special ECC stuck bit matrix
EP2275939B1 (en) Processor and address translating method
US20130346671A1 (en) On-Chip Bad Block Management for NAND Flash Memory
JP5202130B2 (ja) キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法
US8117395B1 (en) Multi-stage pipeline for cache access
JPS60179851A (ja) デ−タ処理装置
JPS6324428A (ja) キヤツシユメモリ
JP2001075865A (ja) キャッシュtag制御方法及びこの制御方法を用いた情報処理装置
US20160371189A1 (en) Cache memory and processor system
CN112181712B (zh) 一种提高处理器核可靠性的方法及装置
JP2011257966A (ja) キャッシュ装置及び情報処理装置
US11704055B2 (en) Storage device, controller and method for operating thereof
US8359528B2 (en) Parity look-ahead scheme for tag cache memory
US7093190B1 (en) System and method for handling parity errors in a data processing system
JP3997404B2 (ja) キャッシュメモリ及びその制御方法
JPH05165719A (ja) メモリアクセス処理装置
JP2006286135A (ja) 半導体記憶装置及びその読み書き制御方法
JP6337570B2 (ja) 演算処理装置及び演算処理装置の制御方法
JPH01273152A (ja) キャッシュメモリ制御方式
JPH06266618A (ja) エラー訂正・検出機能付きの主記憶コントローラを備えた情報処理装置
CN114756404A (zh) 数据处理方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090414

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090615

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120710

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120710

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130710

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees