JP4764945B2 - キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム - Google Patents

キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム Download PDF

Info

Publication number
JP4764945B2
JP4764945B2 JP2009520204A JP2009520204A JP4764945B2 JP 4764945 B2 JP4764945 B2 JP 4764945B2 JP 2009520204 A JP2009520204 A JP 2009520204A JP 2009520204 A JP2009520204 A JP 2009520204A JP 4764945 B2 JP4764945 B2 JP 4764945B2
Authority
JP
Japan
Prior art keywords
data
store
cache memory
stored
store data
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
JP2009520204A
Other languages
English (en)
Other versions
JPWO2008155850A1 (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 JPWO2008155850A1 publication Critical patent/JPWO2008155850A1/ja
Application granted granted Critical
Publication of JP4764945B2 publication Critical patent/JP4764945B2/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
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/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
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

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

この発明は、演算部から送信されるストアデータをキャッシュメモリに書き込むとともに、当該ストアデータのECCを生成するキャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラムに関する。
従来より、データ用キャッシュメモリ(DATA−RAM)は、8バイトのデータ毎に1バイトのECC(Error Check and Correct)を付加してデータ保護を行っている。また、ECCは、DATA−RAMとは別にECC専用に設けられたECC用キャッシュメモリ(ECC−RAM)に格納される。このECC−RAMは、キャッシュメモリへの登録とキャッシュメモリへの書き込みで更新される。
ここで、図17を用いてECCを生成する一般的な手法について説明する。図17に示すように、キャッシュメモリへの書き込みは、まず、命令処理装置からストア命令が記憶処理装置に要求される。そして、この要求を受信した記憶処理装置は、ストア対象のキャッシュラインがキャッシュメモリに存在するかどうかを確認し、同時にストア対象のキャッシュラインのデータをキャッシュメモリから読み出してデータエラーのチェックを行う。ここで、演算器などから発行されたストアデータは、ストアバッファ(STB)に書き込まれる。
その後、命令処理装置からストア許可が発行されれば、記憶処理装置は、ストアバッファのデータをライトバッファ(WB)に書き込み、さらに、ライトバッファからDATA−RAMへとストアデータを書き込む。この時、記憶処理装置は、書き込むと同時に、DATA−RAMから読み出した8バイトのフェッチデータの中のストア対象外バイトのデータからECCを生成(ECC生成1)する。さらに、記憶処理装置は、8バイトのストアデータの中のストア対象バイトのデータからECCを生成(ECC生成2)する。そして、記憶処理装置は、この2つのECCをマージして、ストア更新後のデータに対するECCを作成し、作成したECCをECC−RAMに格納する。
ところが、ストア要求によるキャッシュメモリの検索アクセスでキャッシュメモリのエラーチェックを行った時のDATA−RAMの読み出し結果と、ストア許可後にキャッシュメモリへの書き込みアクセスでECCの生成のためにDATA−RAMの読み出した結果とで、1ビットエラーの発生状況に差がある可能性が発生ある。つまり、検索実行時にエラーチェックを行ったときにはエラーが検出されず、書き込み実行時に読み出したときにエラーがあると、書き込み後のデータに対応するECCを正しく生成できない。また、この時点で残っているECCは書き込み前のデータに対応するECCであり、書き込み前のデータが失われているため、故障ビットの訂正ができない。このため、書き込み実行時の読み出しでは、1ビットエラーが訂正不能なエラーとなる。この訂正不能なエラーが発生する原因として、DATA−RAMを2回読み出しているためにそれぞれの結果が異なる可能性が存在することがあげられる。
そこで、1回の読み出しで、エラーチェックとECC生成までを実行する手法が開示されている(図18参照)。つまり、書き込み実行時には、DATA−RAMから読みだしたデータを使用しない記憶処理装置の構造が開示されている。具体的には、既に格納されているデータから作成されたECCを、STBに入力されたストアデータに付加して新たなストアデータを生成する。このようにして生成した新たなストアデータからECCを生成する(特許文献1〜4参照)。
特開平1−185753号公報 特開平3−108041号公報 特開平10−232789号公報 特表2004−514184号公報
しかしながら、上記した従来の技術は、同一アドレスで8バイト以下の連続ストアが発生した場合、SSI(Store-Store-interlock)が発生して性能が低下するという課題があった。具体的には、この構造を用いた記憶処理装置では、ストア対象外のデータをECCとして保持しているため、先行するストア命令が後続のストア命令と同一領域への書き込みを行う場合、先行するストアの終了を待たないとECCが作成されないため、8バイトフルストアを除く他のストアデータにおいてSSIを検出し、次のストアを実行することができなかった。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、同一アドレスで8バイト以下の連続ストアが発生した場合でも、SSIの発生を抑止することが可能であるとともに、正確なECCを生成することが可能であるキャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、発明は、演算部から送信されるストアデータをキャッシュメモリに書き込むとともに、当該ストアデータのECCを生成するキャッシュメモリ制御装置であって、前記演算部からストアデータが送信された場合に、当該ストアデータがストアされるキャッシュメモリ上の書込みアドレスと、当該ストアデータからストア対象となるストア領域と、ストア対象外となるストア対象外領域とを検出するデータ検出手段と、前記データ検出手段により検出された書込みアドレスに既に書き込まれているストア対象のデータが存在するか否かを判定するデータ判定手段と、前記データ判定手段により書込みアドレスにストア対象のデータが存在すると判定された場合に、当該書込みアドレスに書き込まれているデータのうち、前記データ検出手段によって検出されたストア対象外領域に書き込まれているデータをストア対象外既存データとして取得する対象外既存データ取得手段と、前記対象外既存データ取得手段によって取得されたストア対象外既存データと、前記データ検出手段によって検出されたストア対象領域のストア対象データとをマージして生成した新たなストアデータを、前記データ検出手段によって検出された書込みアドレスに書き込むストアデータ書込手段と、前記ストアデータ書込手段によって生成された新たなストアデータから、前記ストアデータ書込手段によってキャッシュメモリに書き込まれた新たなストアデータのECCを生成するECC生成手段と、を備えたことを特徴とする。
また、発明は、上記の発明において、前記データ判定手段によって前記キャッシュメモリの書込みアドレスにストア対象のデータが存在しないと判定された場合に、前記ストア対象のデータを登録した後に、前記データ検出手段によって検出されたキャッシュメモリ上のアドレスに既に格納されている格納済みデータを検出するデータ再検出手段をさらに備え、前記ストアデータ書込手段は、前記データ再検出手段によって前記キャッシュメモリ上の書込みアドレスに既に格納されている格納済みデータが検出された場合に、前記新たなストアデータと前記格納済みデータとをマージして生成したさらに新たなストアデータを、前記データ検出手段によって検出された書込みアドレスに書き込み、前記ECC生成手段は、前記ストアデータ書込手段によって生成されたさらに新たなストアデータから、前記ストアデータ書込手段によってキャッシュメモリに書き込まれたさらに新たなストアデータのECCを生成することを特徴とする。
また、発明は、上記の発明において、前記データ検出手段は、前記演算部からストアデータが送信された場合に、当該ストアデータより先に演算部から送信された先行する先行ストアデータがストアされるキャッシュメモリ上の書込みアドレスと、当該先行ストアデータからストア対象となる先行ストア領域とをさらに検出し、前記データ判定手段は、前記データ検出手段によって検出された当該ストアデータの書込みアドレスと、前記先行ストアデータの書込みアドレスとが一致するか否かをさらに判定し、前記ストアデータ書込手段は、前記データ判定手段によって当該ストアデータの書込みアドレスと、前記先行ストアデータの書込みアドレスとが一致すると判定された場合に、前記ストア対象外既存データと、前記ストア対象データと、前記データ検出手段によって検出された先行ストア領域の先行ストア対象データとをマージして生成した新たなストアデータを、前記キャッシュメモリ上の書込みアドレスに書き込み、前記ECC生成手段は、前記ストアデータ書込手段によって生成された新たなストアデータから、前記ストアデータ書込手段によってキャッシュメモリに書き込まれた新たなストアデータのECCを生成することを特徴とする。
また、発明は、演算部から送信されるストアデータをキャッシュメモリに書き込むとともに、当該ストアデータのECCを生成することに適するキャッシュメモリ制御方法であって、前記演算部からストアデータが送信された場合に、当該ストアデータがストアされるキャッシュメモリ上の書込みアドレスと、当該ストアデータからストア対象となるストア領域と、ストア対象外となるストア対象外領域とを検出するデータ検出ステップと、前記データ検出ステップにより検出された書込みアドレスに既に書き込まれているストア対象のデータが存在するか否かを判定するデータ判定ステップと、前記データ判定ステップにより書込みアドレスにストア対象のデータが存在すると判定された場合に、当該書込みアドレスに書き込まれているデータのうち、前記データ検出ステップによって検出されたストア対象外領域に書き込まれているデータをストア対象外既存データとして取得する対象外既存データ取得ステップと、前記対象外既存データ取得ステップによって取得されたストア対象外既存データと、前記データ検出ステップによって検出されたストア対象領域のストア対象データとをマージして生成した新たなストアデータを、前記データ検出ステップによって検出された書込みアドレスに書き込むストアデータ書込ステップと、前記ストアデータ書込ステップによって生成された新たなストアデータから、前記ストアデータ書込ステップによってキャッシュメモリに書き込まれた新たなストアデータのECCを生成するECC生成ステップと、を含んだことを特徴とする。
また、発明は、上記の発明において、前記データ判定ステップによって前記キャッシュメモリの書込みアドレスにストア対象のデータが存在しないと判定された場合に、前記ストア対象のデータを登録した後に、前記ストアデータ書込ステップによって前記新たなストアデータが書き込まれた後に、前記データ検出ステップによって検出されたキャッシュメモリ上のアドレスに既に格納されている格納済みデータを検出するデータ再検出ステップをさらに備え、前記ストアデータ書込ステップは、前記データ再検出ステップによって前記キャッシュメモリ上の書込みアドレスに既に格納されている格納済みデータが検出された場合に、前記新たなストアデータと前記格納済みデータとをマージして生成したさらに新たなストアデータを、前記データ検出ステップによって検出された書込みアドレスに書き込み、前記ECC生成ステップは、前記ストアデータ書込ステップによって生成されたさらに新たなストアデータから、前記ストアデータ書込ステップによってキャッシュメモリに書き込まれたさらに新たなストアデータのECCを生成することを特徴とする。
また、発明は、上記の発明において、前記データ検出ステップは、前記演算部からストアデータが送信された場合に、当該ストアデータより先に演算部から送信された先行する先行ストアデータがストアされるキャッシュメモリ上の書込みアドレスと、当該先行ストアデータからストア対象となる先行ストア領域とをさらに検出し、前記データ判定ステップは、前記データ検出ステップによって検出された当該ストアデータの書込みアドレスと、前記先行ストアデータの書込みアドレスとが一致するか否かをさらに判定し、前記ストアデータ書込ステップは、前記データ判定ステップによって当該ストアデータの書込みアドレスと、前記先行ストアデータの書込みアドレスとが一致すると判定された場合に、前記ストア対象外既存データと、前記ストア対象データと、前記データ検出ステップによって検出された先行ストア領域の先行ストア対象データとをマージして生成した新たなストアデータを、前記キャッシュメモリ上の書込みアドレスに書き込み、前記ECC生成ステップは、前記ストアデータ書込ステップによって生成された新たなストアデータから、前記ストアデータ書込ステップによってキャッシュメモリに書き込まれた新たなストアデータのECCを生成することを特徴とする。
また、発明は、演算部から送信されるストアデータをキャッシュメモリに書き込むとともに、当該ストアデータのECCを生成することをコンピュータに実行させるキャッシュメモリ制御プログラムであって、前記演算部からストアデータが送信された場合に、当該ストアデータがストアされるキャッシュメモリ上の書込みアドレスと、当該ストアデータからストア対象となるストア領域と、ストア対象外となるストア対象外領域とを検出するデータ検出手順と、前記データ検出手順により検出された書込みアドレスに既に書き込まれているストア対象のデータが存在するか否かを判定するデータ判定手順と、前記データ判定手順により書込みアドレスにストア対象のデータが存在すると判定された場合に、当該書込みアドレスに書き込まれているデータのうち、前記データ検出手順によって検出されたストア対象外領域に書き込まれているデータをストア対象外既存データとして取得する対象外既存データ取得手順と、前記対象外既存データ取得手順によって取得されたストア対象外既存データと、前記データ検出手順によって検出されたストア対象領域のストア対象データとをマージして生成した新たなストアデータを、前記データ検出手順によって検出された書込みアドレスに書き込むストアデータ書込手順と、前記ストアデータ書込手順によって生成された新たなストアデータから、前記ストアデータ書込手順によってキャッシュメモリに書き込まれた新たなストアデータのECCを生成するECC生成手順と、をコンピュータに実行させることを特徴とする。
また、発明は、上記の発明において、前記データ判定手順によって前記キャッシュメモリの書込みアドレスにストア対象のデータが存在しないと判定された場合に、前記ストア対象のデータを登録した後に、前記ストア対象のデータを登録した後に、前記データ検出手順によって検出されたキャッシュメモリ上のアドレスに既に格納されている格納済みデータを検出するデータ再検出手順をさらに備え、前記ストアデータ書込手順は、前記データ再検出手順によって前記キャッシュメモリ上の書込みアドレスに既に格納されている格納済みデータが検出された場合に、前記新たなストアデータと前記格納済みデータとをマージして生成したさらに新たなストアデータを、前記データ検出手順によって検出された書込みアドレスに書き込み、前記ECC生成手順は、前記ストアデータ書込手順によって生成されたさらに新たなストアデータから、前記ストアデータ書込手順によってキャッシュメモリに書き込まれたさらに新たなストアデータのECCを生成することを特徴とする。
また、発明は、上記の発明において、前記データ検出手順は、前記演算部からストアデータが送信された場合に、当該ストアデータより先に演算部から送信された先行する先行ストアデータがストアされるキャッシュメモリ上の書込みアドレスと、当該先行ストアデータからストア対象となる先行ストア領域とをさらに検出し、前記データ判定手順は、前記データ検出手順によって検出された当該ストアデータの書込みアドレスと、前記先行ストアデータの書込みアドレスとが一致するか否かをさらに判定し、前記ストアデータ書込手順は、前記データ判定手順によって当該ストアデータの書込みアドレスと、前記先行ストアデータの書込みアドレスとが一致すると判定された場合に、前記ストア対象外既存データと、前記ストア対象データと、前記データ検出手順によって検出された先行ストア領域の先行ストア対象データとをマージして生成した新たなストアデータを、前記キャッシュメモリ上の書込みアドレスに書き込み、前記ECC生成手順は、前記ストアデータ書込手順によって生成された新たなストアデータから、前記ストアデータ書込手順によってキャッシュメモリに書き込まれた新たなストアデータのECCを生成することを特徴とする。
本発明によれば、演算部からストアデータが送信された場合に、当該ストアデータがストアされるキャッシュメモリ上の書込みアドレスと、当該ストアデータからストア対象となるストア領域と、ストア対象外となるストア対象外領域とを検出し、検出された書込みアドレスに既に書き込まれているストア対象のデータが存在するか否かを判定し、書込みアドレスにストア対象のデータが存在すると判定された場合に、当該書込みアドレスに書き込まれているデータのうち、検出されたストア対象外領域に書き込まれているデータをストア対象外既存データとして取得し、取得されたストア対象外既存データと、検出されたストア対象領域のストア対象データとをマージして生成した新たなストアデータを、検出された書込みアドレスに書き込み、生成された新たなストアデータから、キャッシュメモリに書き込まれた新たなストアデータのECCを生成するので、同一アドレスで8バイト以下の連続ストアが発生した場合でも、SSIの発生を抑止することが可能であるとともに、正確なECCを生成することが可能である。
また、本発明によれば、キャッシュメモリの書込みアドレスにストア対象のデータが存在しないと判定された場合に、ストア対象のデータを登録した後に、検出されたキャッシュメモリ上のアドレスに既に格納されている格納済みデータを検出し、キャッシュメモリ上の書込みアドレスに既に格納されている格納済みデータが検出された場合に、新たなストアデータと格納済みデータとをマージして生成したさらに新たなストアデータを、前記データ検出手段によって検出された書込みアドレスに書き込み、生成されたさらに新たなストアデータから、キャッシュメモリに書き込まれたさらに新たなストアデータのECCを生成するので、キャッシュミスが発生した場合でも、正確なECCを生成することが可能である。
また、本発明によれば、演算部からストアデータが送信された場合に、当該ストアデータより先に演算部から送信された先行する先行ストアデータがストアされるキャッシュメモリ上の書込みアドレスと、当該先行ストアデータからストア対象となる先行ストア領域とをさらに検出し、検出された当該ストアデータの書込みアドレスと、前記先行ストアデータの書込みアドレスとが一致するか否かをさらに判定し、当該ストアデータの書込みアドレスと、先行ストアデータの書込みアドレスとが一致すると判定された場合に、ストア対象外既存データと、ストア対象データと、検出された先行ストア領域の先行ストア対象データとをマージして生成した新たなストアデータを、キャッシュメモリ上の書込みアドレスに書き込み、成された新たなストアデータから、キャッシュメモリに書き込まれた新たなストアデータのECCを生成するので、先行するストアデータを考慮して新たなストアデータおよびECCを生成することができる結果、同一アドレスで8バイト以下の連続ストアが発生した場合でも、SSIの発生をより確実に抑止することが可能であるとともに、より正確なECCを生成することが可能である。
図1は、実施例1に係るキャッシュメモリ制御装置の全体構成を示すシステム構成図である。 図2は、実施例1に係るキャッシュメモリ制御部の構成を示すブロック図である。 図3は、STBに記憶される情報の構成例を示す図である。 図4は、WBに記憶される情報の構成例を示す図である。 図5は、FCDRに記憶される情報の構成例を示す図である。 図6は、実施例1に係るキャッシュメモリ制御部における処理の流れを示すフローチャートである。 図7は、IU−REQ処理におけるデータの流れを示す図である。 図8は、WB−GO処理におけるデータの流れを示す図である。 図9は、ST1−REQ処理におけるデータの流れを示す図である。 図10は、ST2−REQ処理におけるデータの流れを示す図である。 図11は、IU−REQ処理の流れを示すフローチャートである。 図12は、WB−GO処理の流れを示すフローチャートである。 図13は、ST1−REQ処理の流れを示すフローチャートである。 図14は、ST2−REQ処理の流れを示すフローチャートである。 図15は、ストアデータのマージ例を示す図である。 図16は、データをマージする際に優先するデータ順位の例を示す図である。 図17は、従来技術を説明するための図である。 図18は、従来技術を説明するための図である。
10 キャッシュメモリ制御部
11 DATA−RAM
12 ECC−RAM
13 データ保持部
14 STB
15 WB
16 FCDR
20 処理部
21 データ検出部
22 データ判定部
23 対象外既存データ取得部
24 ストアデータ書込部
25 ECC生成部
以下に添付図面を参照して、この実施例に係るキャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラムの実施例を詳細に説明する。なお、以下では、本実施例に係るキャッシュ制御部の概要および特徴、キャッシュ制御部の構成および処理の流れを順に説明し、最後に本実施例に対する種々の変形例を説明する。
[キャッシュメモリ制御装置の概要および特徴]
まず最初に、図1を用いて、実施例に係るキャッシュメモリ制御装置の概要および特徴を説明する。図1は、実施例1に係るキャッシュメモリ制御装置の全体構成を示すシステム構成図である。
図1に示すように、このキャッシュメモリ制御装置は、演算器と命令処理部とに接続されて中央処理部(CPUまたはMPU)を構成している。また、中央処理部は、メインメモリに対してデータの読出しや書込みを行うメモリ制御部に接続されている。キャッシュメモリ制御部に接続される命令処理部は、ストアアドレス、ストアデータ幅、アライン情報などのストアに関する情報を付加したストア命令をキャッシュメモリ制御部に送信する。また、演算器は、8バイトのストアデータをキャッシュメモリ制御部に送信する。
そして、キャッシュメモリ制御部は、演算器より送信された8バイトのストアデータを保持する複数のSTB(ストアバッファ)と、DATA−RAMにストアする(書き込む)ストアデータを一時的に保持する複数のWB(ライトバッファ)と、8バイトのストアデータを記憶するキャッシュメモリであるDATA−RAMと、DATA−RAMから出力されたデータを保持する複数のFCDR(フェッチデータレジスタ:Fetch Data Register)と、DATA−RAMに記憶される8バイトのストアデータに対応したECCを記憶するECC−RAMとを備える。
このような構成において、このキャッシュメモリ制御部は、演算器から送信されるストアデータをキャッシュメモリに書き込むとともに、当該ストアデータのECCを生成することを概要とするものであり、特に、同一アドレスで8バイト以下の連続ストアが発生した場合でも、SSIの発生を抑止することが可能であるとともに、正確なECCを生成することが可能である点に主たる特徴がある。
この主たる特徴を具体的に説明すると、キャッシュメモリ制御部は、演算器からストアデータが送信された場合に、当該ストアデータがストアされるキャッシュメモリ上のアドレスと、当該ストアデータからストア対象となるストア領域と、ストア対象外となるストア対象外領域とを検出する(図1の(1)参照)。具体的に例を挙げると、DATA−RAMへの格納対象(ストア対象)となる6バイトのデータと格納対象外(ストア対象外)となる2バイトのデータから構成される8バイトのストアデータが演算器から送信された場合に、キャッシュメモリ制御部は、当該ストアデータがストアされる先のDATA−RAM上のアドレス「アドレスA」と、当該ストアデータからストア対象となるストア領域「6バイト」と、ストア対象外となるストア対象外領域「2バイト」などを検出して当該ストアデータをSTBに保持するとともに、ストアデータをWBに出力する。
続いて、キャッシュメモリ制御部は、検出されたキャッシュメモリ上のアドレスに既に書き込まれている他のデータが存在するか否かを判定する(図1の(2)参照)。上記した例で具体的に説明すると、キャッシュメモリ制御部は、検出されたDATA−RAM上のアドレス「アドレスA」を参照して、既に他のデータが書き込まれているか否かを判定する(キャッシュ検索を行う)。
そして、キャッシュメモリ制御部は、キャッシュメモリのアドレスに他のデータが存在すると判定された場合に当該アドレスに書き込まれているデータのうち、先に検出されたストア対象外領域に書き込まれているデータをストア対象外既存データとして取得する(図1の(3)参照)。上記した例で具体的に説明すると、キャッシュメモリ制御部は、DATA−RAMのアドレス「アドレスA」に他のデータが存在すると判定された場合に、つまり、キャッシュヒットした場合に、当該アドレスに書き込まれているデータのうち、検出されたストア対象外領域「2バイト」に書き込まれているデータをストア対象外既存データ(ここでは、2バイトのデータ)としてFCDRに格納する。なお、「2バイト」のストア対象外領域のデータだけでなく、この「2バイト」を含む「8バイト」全体をFCDRに格納するようにしてもよい。
その後、キャッシュメモリ制御部は、取得されたストア対象外既存データと、先に検出されたストア対象領域のストア対象データとをマージして生成した新たなストアデータを、検出されたキャッシュメモリ上のアドレスに書き込む(図1の(4)参照)。上記した例で具体的に説明すると、キャッシュメモリ制御部は、FCDRに保持されている取得されたストア対象外既存データ「2バイト」をWBに読み出して格納するとともに、このストア対象外既存データとストア対象データ「6バイト」とをマージして新たなストアデータ「8バイト」を生成してWBに格納する。そして、キャッシュメモリ制御部は、新たなストアデータ「8バイト」をWBから読み出して、検出されたDATA−RAM上のアドレス「アドレスA」に書き込む。
続いて、キャッシュメモリ制御部は、生成された新たなストアデータから、キャッシュメモリに書き込まれた新たなストアデータのECCを生成する(図1の(5)参照)。上記した例で具体的に説明すると、キャッシュメモリ制御部は、生成されてWBに保持される新たなストアデータ「8バイト」から、DATA−RAMに書き込まれた新たなストアデータの1バイトのECCを生成して、ECC−RAMに格納する。
このように、実施例1に係るキャッシュメモリ制御部は、DATA−RAMに既に格納されているデータから作成されたECCではなく、ストア対象外領域のデータ(ストアデータにより上書きされない領域のデータ)そのものを、ストア実行前にWBに保持しておき、ストア対象データとストア対象外領域のデータとをマージして新たなストアデータとECCとを生成することができる結果、上記した主たる特徴のごとく、同一アドレスで8バイト以下の連続ストアが発生した場合でも、SSIの発生を抑止することが可能であるとともに、正確なECCを生成することが可能である点に主たる特徴がある。
[キャッシュメモリ制御装置の構成]
次に、図2を用いて、図1に示したキャッシュメモリ制御部の構成を説明する。図2は、実施例1に係るキャッシュメモリ制御部の構成を示すブロック図である。図2に示すように、このキャッシュメモリ制御部10は、DATA−RAM11、ECC−RAM12と、データ保持部13と、処理部20とから構成される。
DATA−RAM11は、8バイト単位で複数のデータを記憶するキャッシュメモリであり、具体的には、命令処理部によって、演算器から出力されたデータを記憶したり、記憶されているデータが読み出されたりする。
ECC−RAM11は、後述するECC生成部25によって生成されたECCデータを記憶するメモリであり、具体的には、DATA−RAM11に記憶されるデータそれぞれに対してECC生成部25によって生成された1バイトのECCデータを、それぞれのデータに対応付けて記憶する。
データ保持部13は、演算器から送信されたストアデータに対して後述する処理部20が各処理を実施するために、当該ストアデータを一時的に保持するバッファであり、特に本実施例に密接に関連するものとしては、STB14と、WB15と、FCDR16とを備える。
STB14は、演算器から送信されたストアデータを一時的に保持するバッファである。具体的に例を挙げれば、STB14は、演算器からストアデータが送信され、命令処理部からストア命令とともにストアアドレス、ストアデータ幅、アライン情報などのストアに関する情報が出力されると、図3に示すように、後述するデータ検出部21によって検出(作成)されて格納されたストアデータのどのバイトをストアするかを示すストア対象データ(ストアバイトマーク:STBM)と、DATA−RAM上のどこにストアするかを示すストアアドレス(ADRS)とを記憶する。なお、図3は、STBに記憶される情報の構成例を示す図である。
WB15は、STB14からDATA−RAM11にストアデータを格納する際に、ストアデータ領域、ストア対象外領域、ストアアドレスが検出されると、STB14から出力されたストアデータを保持する。例えば、WB15は、図4に示すように、STB14と同様、ストア対象データ(ストアバイトマーク:STBM)と、ストアアドレス(ADRS)とを、EVENとODDとのそれぞれに対応付けて保持する。なお、図4は、WBに記憶される情報の構成例を示す図である。
FCDR16は、DATA−RAM11から出力されたストア対象外領域に書き込まれているデータをストア対象外既存データとして一時的に保持するバッファである。具体的には、FCDR16には、データ検出部21によって検出された当該ストアデータからストア対象外となるストア対象外領域に書き込まれているストア対象外既存データが、対象外既存データ取得部23によって当該ストアデータがストアされるDATA−RAM11上のアドレスから読み出されて格納される。例えば、FCDR16は、図5に示すように、8バイトの領域にDATA−RAM11から読み出されたストア対象外既存データを保持する。なお、図5は、FCDRに記憶される情報の構成例を示す図である。
処理部20は、種々の処理を実行する処理部であり、特に本実施例に密接に関連するものとしては、データ検出部21と、データ判定部22と、対象外既存データ取得部23と、ストアデータ書込部24と、ECC生成部25とを備える。
データ検出部21は、演算部からストアデータが送信された場合に、当該ストアデータがストアされるキャッシュメモリ上のアドレスと、当該ストアデータからストア対象となるストア領域と、ストア対象外となるストア対象外領域とを検出する。具体的には、データ検出部21は、演算器から8バイトのストアデータが送信されると、当該ストアデータからストア対象データ(ストアバイトマーク:STBM)と、ストアアドレス(ADRS)とをSTB14に格納するとともに、ストア対象外となるストア対象外領域を検出して、当該ストアデータをWB15に送信する。例えば、データ検出部21は、演算器から送信されたストアデータからストア対象領域(6バイト)のSTBMと、ストアアドレス(ADRS=アドレスA)とをSTB14に保持するとともに、ストア対象外となるストア対象外領域(2バイト)を検出して、当該ストアデータをWB15に送信する。
データ判定部22は、データ検出部21により検出されたキャッシュメモリ上のアドレスに既に書き込まれている他のデータが存在するか否かを判定する。具体的に例を挙げると、データ検出部21により検出されてSTB14に格納されるDATA−RAM11上のアドレス「ADRS」を参照して、既に他のデータが書き込まれているか否かを判定し、判定した結果を後述する対象外既存データ取得部23に通知する。
対象外既存データ取得部23は、データ判定部22によりキャッシュメモリのアドレスに他のデータが存在すると判定された場合に、当該アドレスに書き込まれているデータのうち、データ検出部21によって検出されたストア対象外領域に書き込まれているデータをストア対象外既存データとして取得する。上記した例で具体的に説明すると、対象外既存データ取得部23は、DATA−RAM11上のアドレス「ADRS(例えば、アドレスA)」に他のデータが存在するとデータ判定部22から通知された場合に、つまり、キャッシュヒットした場合に、当該アドレスに書き込まれているデータのうち、検出されたストア対象外領域(2バイト)に書き込まれているデータをストア対象外既存データ(ここでは、2バイトのデータ)としてFCDR16に格納する。
ストアデータ書込部24は、対象外既存データ取得部23によって取得されたストア対象外既存データと、データ検出部21によって検出されたストア対象領域のストア対象データとをマージして生成した新たなストアデータを、データ検出部21によって検出されたキャッシュメモリ上のアドレスに書き込む。上記した例で具体的に説明すると、ストアデータ書込部24は、FCDR16に格納されているストア対象外既存データ「2バイト」とWB15に格納されているストア対象領域のストア対象データ「6バイト」とをWB15上でマージ(例えば、EOR回路による処理)して新たなストアデータ「8バイト」を生成してWB15に格納する。そして、ストアデータ書込部24は、WB15から新たなストアデータ「8バイト」を読み出して、検出されたDATA−RAM11上のアドレス「ADRD(例えば、アドレスA)」に書き込む。
ECC生成部25は、ストアデータ書込部24によって生成された新たなストアデータから、ストアデータ書込部24によってキャッシュメモリに書き込まれた新たなストアデータのECCを生成する。上記した例で具体的に説明すると、ECC生成部25は、ストアデータ書込部24によって生成されてWB15に格納される新たなストアデータ「8バイト」を読み出し、DATA−RAMに書き込まれた新たなストアデータの1バイトのECCを生成して、ECC−RAM12に格納する。
[キャッシュメモリ制御部による処理]
次に、図6を用いて、キャッシュメモリ制御部による処理を説明する。図6は、実施例1に係るキャッシュメモリ制御部における処理の流れを示すフローチャートである。
図6に示すように、演算器からストアデータが送信されると(ステップS601肯定)、キャッシュメモリ制御部10のデータ検出部21は、当該ストアデータからストア対象データ(ストアバイトマーク:STBM)と、ストアアドレス(ADRS)とを、STB14に格納するとともに、ストア対象外となるストア対象外領域を検出して、当該ストアデータをWB15に送信する(ステップS602)。
続いて、データ判定部22は、データ検出部21により検出されてSTB14に保持されるDATA−RAM11上のアドレス「ADRS」を参照して、既に他のデータが書き込まれているか否かを判定する、つまり、キャッシュ検索を実施する(ステップS603)。
そして、既に他のデータが書き込まれている(キャッシュヒットした)場合(ステップS604肯定)、対象外既存データ取得部23は、当該アドレスに書き込まれているデータのうち、検出されたストア対象外領域に書き込まれているデータをストア対象外既存データとしてDATA−RAM11から取得し、取得したストア対象外既存データをFCDR16に格納する(ステップS605)。
その後、ストアデータ書込部24は、FCDR16に格納されているストア対象外既存データをWB15に読み出して、WB15に保持されているストア対象領域のストア対象データとWB15上でマージして新たなストアデータを生成し、検出されたDATA−RAM11上のアドレスに書き込む(ステップS606)。
そして、ECC生成部25は、ストアデータ書込部24によって生成された新たなストアデータから、ストアデータ書込部24によってDATA−RAM11に書き込まれた新たなストアデータのECCを生成してECC−RAM12に格納する(ステップS607)。
一方、ステップS604に戻り、ストア対象のデータが書き込まれていない(キャッシュミスした)場合(ステップS604否定)、ストデータ書き込み対象のデータを登録し(ステップS608)、再び、キャッシュ検索を実施する。(ステップS603)。
[実施例1による効果]
このように、実施例1によれば、演算部からストアデータが送信された場合に、当該ストアデータがストアされるキャッシュメモリ上の書込みアドレスと、当該ストアデータからストア対象となるストア領域と、ストア対象外となるストア対象外領域とを検出し、検出された書込みアドレスに既に書き込まれているストア対象のデータが存在するか否かを判定し、書込みアドレスにストア対象のデータが存在すると判定された場合に、当該書込みアドレスに書き込まれているデータのうち、検出されたストア対象外領域に書き込まれているデータをストア対象外既存データとして取得し、取得されたストア対象外既存データと、検出されたストア対象領域のストア対象データとをマージして生成した新たなストアデータを、検出された書込みアドレスに書き込み、生成された新たなストアデータから、キャッシュメモリに書き込まれた新たなストアデータのECCを生成するので、同一アドレスで8バイト以下の連続ストアが発生した場合でも、SSIの発生を抑止することが可能であるとともに、正確なECCを生成することが可能である。
具体的には、DATA−RAMに既に記憶されているデータから生成されるECCを用いずに、DATA−RAMに記憶されているデータそのものを用いて、新たなストアデータを生成するとともに、ECCを生成するので、先行するストアデータがECCを作成するのを待たずに処理することができる結果、同一アドレスで8バイト以下の連続ストアが発生した場合でも、SSIの発生を抑止することが可能であるとともに、正確なECCを生成することが可能である。また、RAM1ビットエラー完全救済が可能である。
ところで、実施例1では、DATA−RAMに既に格納されているストア対象外領域のデータそのものを、ストア実行前にFCDR又は、WBに保持しておき、ストアデータとストア対象外領域のデータとをマージして新たなストアデータとECCとを生成する場合について説明したが、本実施例はこれに限定されるものではなく、先行するストアデータが同じアドレスにストアされる場合に、この先行するストアデータのストア対象領域を予め考慮して、新たなストアデータとECCとを生成することもできる。
そこで、実施例2では、図7〜図14を用いて、ストアデータが処理されるバッファであるSTB、WB、FCDRやストアデータやECCが格納されるDATA−RAM、ECC−RAMとの間でやり取りされるデータの流れについて、詳細に説明するとともに、先行するストアデータが同じアドレスにストアされる場合に、この先行するストアデータのストア対象領域を予め考慮して、新たなストアデータとECCとを生成する。
[各処理におけるデータの流れ]
(演算器/命令処理部からのストア要求)
まず、図7を用いて、演算器/命令処理部からのストア要求が送信されると、実施されるIU−REQ(Instruction Unit-Request)処理の流れについて説明する。図7は、IU−REQ処理におけるデータの流れを示す図である。
図7に示すように、命令処理部は、ストアアドレス、ストアデータ幅、アライン情報などのストアに関するストア情報が付随したストア命令をキャッシュメモリ制御部に送信(発行)する。このストア命令の発行を受けたキャッシュメモリ制御部では、これらのストア情報からSTBMを作成し、ADRSとともにSTBに格納する。
続いて、キャッシュメモリ制御部は、ストア命令をパイプラインへと投入し、ストア対象のキャッシュラインがキャッシュメモリ(DATA−RAM)に存在するかどうかを確認する。また、キャッシュメモリ制御部は、ストアアドレスにより8バイトのデータキャッシュメモリから読み出すと同時に、このデータのエラーチェックを行う。そして、キャッシュヒットした場合、キャッシュメモリ制御部は、読み出したストア領域のデータをFCDRにセットし、キャッシュミスした場合は、主記憶(メインメモリ)に対してデータを要求する。
(STBからWBへの書き込み)
次に、図8を用いて、STBからWBへストアデータが書き込まれるWB−GO(Write-Buffer-GO)処理の流れについて説明する。図8は、WB−GO処理におけるデータの流れを示す図である。
図8に示すように、キャッシュメモリ制御部は、命令処理部からストア許可を受け取り、対象のSTBの優先順位が最も高く、空きのWBがあった場合に、WB−GO(書き込みリクエスト)を発行する。すると、キャッシュメモリ制御部は、ストア対象領域のデータをSTBから、ストア対象外領域のデータをFCDRから、それぞれ読み出してWBへ更新する。なお、キャッシュメモリ制御部は、STB−STBMからストア対象領域を判断する。
ここで、キャッシュメモリ制御部は、現在ストア対象となっているストアデータのWB−GO−ADRS(WB−GO対象のSTB−ADRS)と、現在のストアデータよりも先に演算器から送信されたストアデータを示す先行ストアデータのST2−ADRS(ST2−REQのアドレス)がアドレスマッチして、WB−GOとST2−REQのタイミングが同一の場合、ST2−STBMを参照してST2−DATAもさらにマージしてWBに書き込む。つまり、ここで、キャッシュメモリ制御部は、先行する先行ストアデータがストアされるDATA−RAMのアドレスと、現地点でのストアデータがストアされるDATA−RAMのアドレスとが一致する場合に、先行ストアデータのストア対象データをWBから取得して、現地点でのストア対象データとFCDRから取得したストア対象外既存データと先行ストアデータのストア対象データとをマージしてWBに書き込むこととなる。
(キャッシュメモリ検索)
次に、図9を用いて、図7においてキャッシュミスが発生した場合に実施されるST1−REQ(Store1-Request)処理の流れについて説明する。図9は、ST1−REQ処理におけるデータの流れを示す図である。
図9に示すように、キャッシュメモリ制御部は、ストアデータがWBに格納されても、ストア対象の領域がDATA−RAMにまだ存在しない場合は、WBからST1−REQを起動する。すると、キャッシュメモリ制御部は、WB−ADRSを用いて、キャッシュメモリを検索する。そして、キャッシュヒットし、かつ、DATA−RAMにエラーがない場合、キャッシュメモリ制御部は、WB−STBMにより、ストア対象外領域のデータのみをWBに書き込み、キャッシュミスした場合は、主記憶に対してデータ要求する。
(キャッシュメモリへの書き込み)
次に、図10を用いて、WBからキャッシュメモリへストアデータを書き込む際またはECCを生成する際に実施されるST2−REQ(Store2-Request)処理の流れについて説明する。図10は、ST2−REQ処理におけるデータの流れを示す図である。
図10に示すように、キャッシュメモリ制御部は、ストア対象の領域がキャッシュメモリに存在する場合は、WBからST2−REQを起動する。そして、キャッシュメモリ制御部は、ST2−REQを起動すると、ST2−REQ対象のWBからストアデータを取り出し、DATA−RAMに更新する。そして、キャッシュメモリ制御部は、このデータから8バイトデータに対する1バイトのECCを作成してECC−RAMに書き込む。
ここで、キャッシュメモリ制御部は、ST2-ADRSとSTB−ADRS(各ストアバッファのアドレス)がアドレスマッチした場合、対象のFCDRへこのストアデータを反映する。その場合、キャッシュメモリ制御部は、ST2−STBMによりストア対象領域のみ更新する。また、キャッシュメモリ制御部は、ST2−ADRSと他のWB−ADRS(ST2を実行する以外の各WBのアドレス)とがアドレスマッチした場合に、対象のWBへとストアデータを反映する。このときも、キャッシュメモリ制御部は、ST2−STBMによりストア対象領域のみ更新する。
さらに、ST2−REQが連続した場合、キャッシュメモリ制御部は、先行するストアのデータを後続のストアを実行するWBに反映することができないので、ECCの生成前に1τ前の先行するストアのアドレスであるST2−ADRSとST2−ADRSがマッチした場合は、1τ前の先行するストアのデータとマージする。
[各処理のおける処理フロー]
次に、図11〜図14を用いて、上記した各処理「演算器/命令処理部からのストア要求(IU−REQ)」、「STBからWBへの書き込み(WB−GO)」、「キャッシュメモリ検索(ST1−REQ)」、「キャッシュメモリへの書き込み(ST2−REQ)」の処理フローについて説明する。なお、各処理のフローチャートで用いる「LID」とは、ストアする領域がキャッシュメモリに排他型で存在することを示しており、この「LID」とは、キャッシュヒットした場合に更新され、STB、WBに格納される。
(IU−REQ処理フロー)
まず、図11を用いて、図7に示したIU−REQ処理フローについて説明する。図11は、IU−REQ処理の流れを示すフローチャートである。
図11に示すように、命令処理部からストア命令が送信(発行)されると(ステップS1101肯定)、キャッシュメモリ制御部は、ストア対象のデータがDATA−RAMに既に記憶されているか否か(キャッシュ検索)を判定する(ステップS1102)。
そして、キャッシュヒットした場合(ステップS1102肯定)、キャッシュメモリ制御部は、「LID」を「1」に更新し(ステップS1103)、受信したストアデータからSTBMを作成し、ADRSとともにSTBに格納する(ステップS1104)と同時に、キャッシュヒットしたストア対象データをDATA−RAMから読み出してFCDRに格納する(ステップS1105)。
一方、キャッシュヒットしなかった場合(ステップS1102否定)、キャッシュメモリ制御部は、「LID」を「0」に更新して、受信したストアデータからSTBMを作成し、ADRSとともにSTBに格納する(ステップS1106)。
(WB−GO処理フロー)
次に、図12を用いて、図8に示したWB−GO処理フローについて説明する。図12は、WB−GO処理の流れを示すフローチャートである。
図12に示すように、命令処理部からストア許可を受信すると(ステップS1201肯定)、キャッシュメモリ制御部は、WB−GOリクエストを発行してWB−GO処理を実行する(ステップS1202)。
すると、キャッシュメモリ制御部は、STBから取得したストア対象領域のデータであるストア対象データと、FCDRから取得したストア対象外領域のデータであるストア対象外既存データと、WB−GOとST2がアドレスマッチした場合に取得した他のWBのストア対象データ(先行ストアデータのストア対象データ)と、WB−GOと同一WBとがアドレスマッチした場合に取得した同一WBのストア対象データ(先行ストアデータのストア対象データ)とをマージして(ステップS1203〜ステップS1208)、マージしたストアデータをWBに格納する(ステップS1209)。
(ST1−REQ処理フロー)
次に、図13を用いて、図9に示したST1−REQ処理フローについて説明する。図13は、ST1−REQ処理の流れを示すフローチャートである。
図13に示すように、キャッシュミスが発生すると(ステップS1301肯定)、キャッシュメモリ制御部は、WBの状態を確認する(ステップS1302)。
そして、WBのLIDが「0」である場合(ステップS1303肯定)、キャッシュメモリ制御部は、ST1−REQを起動する(ステップS1304)。
そして、キャッシュメモリ制御部は、演算器から受信したストアデータのキャッシュ検索を再度行い(ステップS1305)、キャッシュヒットすると(ステップS1305肯定)、LIDを「1」に更新するとともに、キャッシュヒットしたストア対象データをDATA−RAMから読み出してWBに格納する(ステップS1306)。
一方、キャッシュヒットしなかった場合(ステップS1305否定)、キャッシュメモリ制御部は、受信したストアデータを主記憶に要求するとともに(ステップS1308)、当該ストアデータをDATA−RAMに書き込み(ステップS1309)、ステップS1302以降の処理を実施する。
ステップS1303に戻り、WBのLIDが「0」でない場合(ステップS1303否定)、キャッシュメモリ制御部は、ST2−REQを起動する(ステップS1307)。
(ST2−REQ処理フロー)
次に、図14を用いて、図10に示したST2−REQ処理フローについて説明する。図14は、ST2−REQ処理の流れを示すフローチャートである。
図14に示すように、キャッシュメモリ制御部は、WBの状態を確認し(ステップS1401)、LIDが「1」である場合に(ステップS1402肯定)、ST2−REQを起動する(ステップS1403)。
すると、キャッシュメモリ制御部は、WBのストアデータをDATA−RAMに格納する(ステップS1404)。同時に、キャッシュメモリ制御部は、WB−GOとST2とのアドレスがマッチする場合に(ステップS1405肯定)、ストア対象領域のデータを他のWBに格納するとともに(ステップS1406)、STBとST2とのアドレスがマッチする場合に(ステップS1407肯定)、ストア対象領域のデータをFCDRに格納し(ステップS1408)、他のWBとST2とのアドレスがマッチする場合に(ステップS1409肯定)、ストア対象領域のデータを他のWBに格納し(ステップS1410)、1τ前のST2とST2とのアドレスがマッチする場合に(ステップS1411肯定)、1τ前のデータと現地点でのストアデータとをマージして(ステップS1412)、当該マージしたストアデータからECCを作成してECC−RAMに格納する(ステップS1413)。
一方、ステップS1402に戻り、LIDが「1」でない場合に(ステップS1402否定)、計算機は、ST1−REQを起動する(ステップS1414)。
[実施例2による効果]
このように、実施例2によれば、キャッシュメモリの書込みアドレスにストア対象のデータが存在しないと判定された場合に、ストア対象を登録した後に、検出されたキャッシュメモリ上のアドレスに既に格納されている格納済みデータを検出し、キャッシュメモリ上の書込みアドレスに既に格納されている格納済みデータが検出された場合に、新たなストアデータと格納済みデータとをマージして生成したさらに新たなストアデータを、前記データ検出手段によって検出された書込みアドレスに書き込み、生成されたさらに新たなストアデータから、キャッシュメモリに書き込まれたさらに新たなストアデータのECCを生成するので、キャッシュミスが発生した場合でも、正確なECCを生成することが可能である。
また、実施例2によれば、演算部からストアデータが送信された場合に、当該ストアデータより先に演算部から送信された先行する先行ストアデータがストアされるキャッシュメモリ上の書込みアドレスと、当該先行ストアデータからストア対象となる先行ストア領域とをさらに検出し、検出された当該ストアデータの書込みアドレスと、前記先行ストアデータの書込みアドレスとが一致するか否かをさらに判定し、当該ストアデータの書込みアドレスと、先行ストアデータの書込みアドレスとが一致すると判定された場合に、ストア対象外既存データと、ストア対象データと、検出された先行ストア領域の先行ストア対象データとをマージして生成した新たなストアデータを、キャッシュメモリ上の書込みアドレスに書き込み、成された新たなストアデータから、キャッシュメモリに書き込まれた新たなストアデータのECCを生成するので、先行するストアデータを考慮して新たなストアデータおよびECCを生成することができる結果、同一アドレスで8バイト以下の連続ストアが発生した場合でも、SSIの発生をより確実に抑止することが可能であるとともに、より正確なECCを生成することが可能である。
ところで、実施例2では、現地点でのストアデータと、先行するストアデータや現地点でのストアデータを格納する先のWBに既に格納されているストアデータなどをマージして、新たなストアデータとを生成する場合について説明したが、本実施例では、マージする際にどのデータを優先するかについて説明する。
まず、図15を用いて、ストアデータのマージが発生する場合について説明する。図15は、ストアデータのマージ例を示す図である。なお、図15で示す「WB0」と「WB1」とは、物理的に異なるライトバッファであることを示している。
例えば、キャッシュメモリ制御部は、演算器から送信されたストアデータのストア対象データと、当該ストア対象外領域に対応するDATA−RAMに既に記憶されているデータであるストア対象外既存データとのデータマージを行う(図15の(1)参照)。
また、演算器から現地点で送信されたストアデータの書き込み先アドレスと、現地点で受信したストアデータより先にWBに格納されている先行ストアデータの書き込み先アドレスとが一致する場合に、キャッシュメモリ制御部は、演算器から送信されたストアデータのストア対象データと、当該ストア対象外領域に対応するDATA−RAMに既に記憶されているデータであるストア対象外既存データと、先行ストアデータのストア対象データとのデータマージを行う(図15の(2)参照)。
また、WB0に格納されているストアデータの書き込み先アドレスと、WB1に格納されているストアデータの書き込み先アドレスとが一致する場合に、キャッシュメモリ制御部は、WB0に格納されているストアデータのストア対象データと、WB1に格納されているストアデータのストア対象データとのデータマージを行う(図15の(3)参照)。
また、演算器から現地点で送信されたストアデータの書き込み先アドレスと、演算器から現地点で送信されたストアデータの格納先であるWB0に格納されているストアデータの書き込み先アドレスとが一致する場合に、キャッシュメモリ制御部は、演算器から送信されたストアデータのストア対象データと、当該ストア対象外領域に対応するDATA−RAMに既に記憶されているデータであるストア対象外既存データと、WB0に格納されているストアデータのストア対象データとのデータマージを行ってWB1に格納する(図15の(4)参照)。
また、図15の(4)で当該ストア対象外領域に対応するDATA−RAMに既に記憶されているデータであるストア対象外既存データと、WB0に格納されているストアデータのストア対象データとのデータマージを行ってWB1に格納する際に、新たに生成したストアデータの書き込み先アドレスと、新たに生成したストアデータの格納先であるWB1に既に格納されているストアデータの書き込み先アドレスとが一致する場合に、キャッシュメモリ制御部は、新たに生成したストアデータのストア対象データと、WB1に既に保存されているストアデータのストア対象データとのデータマージを行ってWB1に新たなストアデータを格納する(図15の(5)参照)。
次に、図16を用いて、上記した図15の(1)〜(5)において、マージする際に優先するストアデータについて説明する。なお、図16は、データをマージする際に優先するデータ順位の例を示す図である。
図16の(1)に示すように、データマージの優先順位として「STB−DATA(WB−GO)」に格納されるストアデータが最も優先され、順に「WB−DATA」、「ST2−DATA(ST2−REQ)」、「FCDR−DATA(WB−GO)」に格納されるストアデータが優先される。この優先度を適用すると、図15に示した各例では、図16の(2)に示したようなストアデータが作成されることとなる。
さて、これまで本実施例について説明したが、本実施例は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に示すように、(1)マージ処理データ選択、(2)システム構成等にそれぞれ区分けして異なる実施例を説明する。
(1)マージ処理選択
例えば、実施例2では、DATA−RAMに既に記憶されるデータや、キャッシュミスした後に再検索して検索されたデータや、先行するストアデータなどを、演算器により送信されたデータと全てマージする場合について説明したが、本実施例はこれに限定されるものではなく、いずれかのデータのみをマージするなど、マージ対象とするデータを任意に指定することもできる。
(2)システム構成等
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理(例えば、演算器からストアデータ出力処理など)の全部または一部を手動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報(例えば、図3〜図5)については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合(例えば、データ検出部とデータ判定部とを統合するなど)して構成することができる。
以上のように、本キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラムは、演算器から送信されるストアデータをキャッシュメモリに書き込むとともに、当該ストアデータのECCを生成することに有用であり、特に、同一アドレスで8バイト以下の連続ストアが発生した場合でも、SSIの発生を抑止することと、正確なECCを生成することに適する。

Claims (6)

  1. 演算部から送信されるストアデータをキャッシュメモリに書き込むとともに、当該ストアデータのECCを生成するキャッシュメモリ制御装置であって、
    前記演算部からストアデータが送信された場合に、当該ストアデータより先に演算部から送信された先行する先行ストアデータがストアされるキャッシュメモリ上の書込みアドレスと、当該先行ストアデータのうちストア対象となるデータが格納される先行ストア領域と、当該ストアデータがストアされるキャッシュメモリ上の書込みアドレスと、当該ストアデータのうちストア対象となるデータが格納されるストア領域と、ストア対象外となるデータが格納されるストア対象外領域とを検出するデータ検出手段と、
    前記データ検出手段によって検出された当該ストアデータの書込みアドレスと、前記先行ストアデータの書込みアドレスとが一致するか否か、及び、前記データ検出手段により検出された前記キャッシュメモリ上の書込みアドレスに既に書き込まれているマージ対象とすべき既存データが存在するか否かを判定するデータ判定手段と、
    前記データ判定手段により、前記キャッシュメモリ上の書込みアドレスにマージ対象とすべき既存データが存在すると判定された場合に、当該書込みアドレスに書き込まれているデータのうち、前記データ検出手段によって検出されたストア対象外領域に書き込まれているデータをストア対象外既存データとして取得する対象外既存データ取得手段と、
    前記データ判定手段によって当該ストアデータの書込みアドレスと、前記先行ストアデータの書込みアドレスとが一致すると判定された場合に、前記対象外既存データ取得手段によって取得されたストア対象外既存データと、前記データ検出手段によって検出されたストア領域のストア対象データと、前記データ検出手段によって検出された先行ストア領域の先行ストア対象データとをマージして生成した新たなストアデータを、前記データ検出手段によって検出された前記キャッシュメモリ上の書込みアドレスに書き込むストアデータ書込手段と、
    前記ストアデータ書込手段によって生成された新たなストアデータから、前記ストアデータ書込手段によってキャッシュメモリに書き込まれた新たなストアデータのECCを生成するECC生成手段と、
    を備えたことを特徴とするキャッシュメモリ制御装置。
  2. 前記データ判定手段によって前記キャッシュメモリの書込みアドレスにマージ対象とすべき既存データが存在しないと判定された場合に、前記ストア対象のデータを前記キャッシュメモリに登録した後に、前記データ検出手段によって検出されたキャッシュメモリ上のアドレスに既に格納されている格納済みデータを検出するデータ再検出手段をさらに備え、
    前記ストアデータ書込手段は、前記データ再検出手段によって前記キャッシュメモリ上の書込みアドレスに既に格納されている格納済みデータが検出された場合に、前記ストア対象データと前記格納済みデータとをマージして生成したさらに新たなストアデータを、前記データ検出手段によって検出された書込みアドレスに書き込み、
    前記ECC生成手段は、前記ストアデータ書込手段によって生成されたさらに新たなストアデータから、前記ストアデータ書込手段によってキャッシュメモリに書き込まれたさらに新たなストアデータのECCを生成することを特徴とする請求項1に記載のキャッシュメモリ制御装置。
  3. 演算部から送信されるストアデータをキャッシュメモリに書き込むとともに、当該ストアデータのECCを生成することに適するキャッシュメモリ制御方法であって、
    前記演算部からストアデータが送信された場合に、当該ストアデータより先に演算部から送信された先行する先行ストアデータがストアされるキャッシュメモリ上の書込みアドレスと、当該先行ストアデータのうちストア対象となるデータが格納される先行ストア領域と、当該ストアデータがストアされるキャッシュメモリ上の書込みアドレスと、当該ストアデータのうちストア対象となるデータが格納されるストア領域と、ストア対象外となるデータが格納されるストア対象外領域とを検出するデータ検出ステップと、
    前記データ検出ステップによって検出された当該ストアデータの書込みアドレスと、前記先行ストアデータの書込みアドレスとが一致するか否か、及び、前記データ検出ステップにより検出された前記キャッシュメモリ上の書込みアドレスに既に書き込まれているマージ対象とすべき既存データが存在するか否かを判定するデータ判定ステップと、
    前記データ判定ステップにより、前記キャッシュメモリ上の書込みアドレスにマージ対象とすべき既存データが存在すると判定された場合に、当該書込みアドレスに書き込まれているデータのうち、前記データ検出ステップによって検出されたストア対象外領域に書き込まれているデータをストア対象外既存データとして取得する対象外既存データ取得ステップと、
    前記データ判定ステップによって当該ストアデータの書込みアドレスと、前記先行ストアデータの書込みアドレスとが一致すると判定された場合に、前記対象外既存データ取得ステップによって取得されたストア対象外既存データと、前記データ検出ステップによって検出されたストア領域のストア対象データと、前記データ検出ステップによって検出された先行ストア領域の先行ストア対象データとをマージして生成した新たなストアデータを、前記データ検出ステップによって検出された前記キャッシュメモリ上の書込みアドレスに書き込むストアデータ書込ステップと、
    前記ストアデータ書込ステップによって生成された新たなストアデータから、前記ストアデータ書込ステップによってキャッシュメモリに書き込まれた新たなストアデータのECCを生成するECC生成ステップと、
    キャッシュメモリ制御装置に実行させることを特徴とするキャッシュメモリ制御方法。
  4. 前記データ判定ステップによって前記キャッシュメモリの書込みアドレスにマージ対象とすべき既存データが存在しないと判定された場合に、前記ストア対象のデータを前記キャッシュメモリに登録した後に、前記データ検出ステップによって検出されたキャッシュメモリ上のアドレスに既に格納されている格納済みデータを検出するデータ再検出ステップをさらにキャッシュメモリ制御装置に実行させ
    前記ストアデータ書込ステップは、前記データ再検出ステップによって前記キャッシュメモリ上の書込みアドレスに既に格納されている格納済みデータが検出された場合に、前記ストア対象データと前記格納済みデータとをマージして生成したさらに新たなストアデータを、前記データ検出ステップによって検出された書込みアドレスに書き込み、
    前記ECC生成ステップは、前記ストアデータ書込ステップによって生成されたさらに新たなストアデータから、前記ストアデータ書込ステップによってキャッシュメモリに書き込まれたさらに新たなストアデータのECCを生成することを特徴とする請求項に記載のキャッシュメモリ制御方法。
  5. 演算部から送信されるストアデータをキャッシュメモリに書き込むとともに、当該ストアデータのECCを生成することをコンピュータに実行させるキャッシュメモリ制御プログラムであって、
    前記演算部からストアデータが送信された場合に、当該ストアデータより先に演算部から送信された先行する先行ストアデータがストアされるキャッシュメモリ上の書込みアドレスと、当該先行ストアデータのうちストア対象となるデータが格納される先行ストア領域と、当該ストアデータがストアされるキャッシュメモリ上の書込みアドレスと、当該ストアデータのうちストア対象となるデータが格納されるストア領域と、ストア対象外となるデータが格納されるストア対象外領域とを検出するデータ検出手順と、
    前記データ検出手順によって検出された当該ストアデータの書込みアドレスと、前記先行ストアデータの書込みアドレスとが一致するか否か、及び、前記データ検出手順により検出された前記キャッシュメモリ上の書込みアドレスに既に書き込まれているマージ対象とすべき既存データが存在するか否かを判定するデータ判定手順と、
    前記データ判定手順により、前記キャッシュメモリ上の書込みアドレスにマージ対象とすべき既存データが存在すると判定された場合に、当該書込みアドレスに書き込まれているデータのうち、前記データ検出手順によって検出されたストア対象外領域に書き込まれているデータをストア対象外既存データとして取得する対象外既存データ取得手順と、
    前記データ判定手順によって当該ストアデータの書込みアドレスと、前記先行ストアデータの書込みアドレスとが一致すると判定された場合に、前記対象外既存データ取得手順によって取得されたストア対象外既存データと、前記データ検出手順によって検出されたストア領域のストア対象データと、前記データ検出手順によって検出された先行ストア領域の先行ストア対象データとをマージして生成した新たなストアデータを、前記データ検出手順によって検出された前記キャッシュメモリ上の書込みアドレスに書き込むストアデータ書込手順と、
    前記ストアデータ書込手順によって生成された新たなストアデータから、前記ストアデータ書込手順によってキャッシュメモリに書き込まれた新たなストアデータのECCを生成するECC生成手順と、
    をコンピュータに実行させることを特徴とするキャッシュメモリ制御プログラム。
  6. 前記データ判定手順によって前記キャッシュメモリの書込みアドレスにマージ対象とすべき既存データが存在しないと判定された場合に、前記ストア対象のデータを前記キャッシュメモリに登録した後に、前記データ検出手順によって検出されたキャッシュメモリ上のアドレスに既に格納されている格納済みデータを検出するデータ再検出手順をさらに備え、
    前記ストアデータ書込手順は、前記データ再検出手順によって前記キャッシュメモリ上の書込みアドレスに既に格納されている格納済みデータが検出された場合に、前記ストア対象データと前記格納済みデータとをマージして生成したさらに新たなストアデータを、前記データ検出手順によって検出された書込みアドレスに書き込み、
    前記ECC生成手順は、前記ストアデータ書込手順によって生成されたさらに新たなストアデータから、前記ストアデータ書込手順によってキャッシュメモリに書き込まれたさらに新たなストアデータのECCを生成することを特徴とする請求項に記載のキャッシュメモリ制御プログラム。
JP2009520204A 2007-06-20 2007-06-20 キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム Expired - Fee Related JP4764945B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/062464 WO2008155850A1 (ja) 2007-06-20 2007-06-20 キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム

Publications (2)

Publication Number Publication Date
JPWO2008155850A1 JPWO2008155850A1 (ja) 2010-08-26
JP4764945B2 true JP4764945B2 (ja) 2011-09-07

Family

ID=40156016

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009520204A Expired - Fee Related JP4764945B2 (ja) 2007-06-20 2007-06-20 キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム

Country Status (4)

Country Link
US (1) US8533565B2 (ja)
EP (1) EP2169555A4 (ja)
JP (1) JP4764945B2 (ja)
WO (1) WO2008155850A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11249842B2 (en) * 2019-05-24 2022-02-15 Texas Instruments Incorporated Error correcting codes for multi-master memory controller

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03108041A (ja) * 1989-09-19 1991-05-08 Internatl Business Mach Corp <Ibm> パイプライン式エラー検査/訂正キヤツシユ・メモリ及びキヤツシユ・メモリ・アレイ
JPH06119238A (ja) * 1992-10-07 1994-04-28 Hitachi Ltd 主記憶制御方法および装置
JPH08286977A (ja) * 1995-04-14 1996-11-01 Kofu Nippon Denki Kk ストアインキャッシュの障害処理システム
JPH09134314A (ja) * 1995-11-08 1997-05-20 Hitachi Ltd メモリアクセス制御装置
JP2004038341A (ja) * 2002-06-28 2004-02-05 Fujitsu Ltd 記憶制御装置およびデータ格納方法
JP2004514184A (ja) * 1999-08-17 2004-05-13 サン・マイクロシステムズ・インコーポレーテッド デジタル・データにおけるソフト・エラーを訂正するための方法および装置
WO2007088597A1 (ja) * 2006-01-31 2007-08-09 Fujitsu Limited エラー訂正コード生成方法及びメモリ管理装置
WO2007094045A1 (ja) * 2006-02-14 2007-08-23 Fujitsu Limited 読み出し処理装置および読み出し方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3814921A (en) * 1972-11-15 1974-06-04 Honeywell Inf Systems Apparatus and method for a memory partial-write of error correcting encoded data
JP2518333B2 (ja) 1988-01-21 1996-07-24 日本電気株式会社 記憶装置
US5313475A (en) * 1991-10-31 1994-05-17 International Business Machines Corporation ECC function with self-contained high performance partial write or read/modify/write and parity look-ahead interface scheme
JPH10232789A (ja) 1997-02-19 1998-09-02 Hitachi Ltd Eccパーシャルライト制御ユニット
US6366984B1 (en) * 1999-05-11 2002-04-02 Intel Corporation Write combining buffer that supports snoop request
US6751698B1 (en) * 1999-09-29 2004-06-15 Silicon Graphics, Inc. Multiprocessor node controller circuit and method
US6804162B1 (en) * 2001-04-05 2004-10-12 T-Ram, Inc. Read-modify-write memory using read-or-write banks
US6848071B2 (en) * 2001-04-23 2005-01-25 Sun Microsystems, Inc. Method and apparatus for updating an error-correcting code during a partial line store
US6988172B2 (en) * 2002-04-29 2006-01-17 Ip-First, Llc Microprocessor, apparatus and method for selectively associating store buffer cache line status with response buffer cache line status
US7392456B2 (en) * 2004-11-23 2008-06-24 Mosys, Inc. Predictive error correction code generation facilitating high-speed byte-write in a semiconductor memory
US20070044003A1 (en) * 2005-08-04 2007-02-22 Jack Doweck Method and apparatus of detecting and correcting soft error
US7617437B2 (en) * 2006-02-21 2009-11-10 Freescale Semiconductor, Inc. Error correction device and method thereof
US20080235461A1 (en) * 2007-03-22 2008-09-25 Sin Tan Technique and apparatus for combining partial write transactions
US7836262B2 (en) * 2007-06-05 2010-11-16 Apple Inc. Converting victim writeback to a fill
US8086936B2 (en) * 2007-08-31 2011-12-27 International Business Machines Corporation Performing error correction at a memory device level that is transparent to a memory channel

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03108041A (ja) * 1989-09-19 1991-05-08 Internatl Business Mach Corp <Ibm> パイプライン式エラー検査/訂正キヤツシユ・メモリ及びキヤツシユ・メモリ・アレイ
JPH06119238A (ja) * 1992-10-07 1994-04-28 Hitachi Ltd 主記憶制御方法および装置
JPH08286977A (ja) * 1995-04-14 1996-11-01 Kofu Nippon Denki Kk ストアインキャッシュの障害処理システム
JPH09134314A (ja) * 1995-11-08 1997-05-20 Hitachi Ltd メモリアクセス制御装置
JP2004514184A (ja) * 1999-08-17 2004-05-13 サン・マイクロシステムズ・インコーポレーテッド デジタル・データにおけるソフト・エラーを訂正するための方法および装置
JP2004038341A (ja) * 2002-06-28 2004-02-05 Fujitsu Ltd 記憶制御装置およびデータ格納方法
WO2007088597A1 (ja) * 2006-01-31 2007-08-09 Fujitsu Limited エラー訂正コード生成方法及びメモリ管理装置
WO2007094045A1 (ja) * 2006-02-14 2007-08-23 Fujitsu Limited 読み出し処理装置および読み出し方法

Also Published As

Publication number Publication date
JPWO2008155850A1 (ja) 2010-08-26
US8533565B2 (en) 2013-09-10
EP2169555A4 (en) 2011-01-05
US20100107038A1 (en) 2010-04-29
WO2008155850A1 (ja) 2008-12-24
EP2169555A1 (en) 2010-03-31

Similar Documents

Publication Publication Date Title
US9836403B2 (en) Dynamic cache allocation policy adaptation in a data processing apparatus
US8024496B2 (en) Enhanced memory migration descriptor format and method
CN102388372B (zh) 保证数据缓存与主存储器之间的一致性
KR101531078B1 (ko) 데이터 처리 시스템 및 데이터 처리 방법
US9836397B2 (en) Direct memory access of dynamically allocated memory
EP2016499B1 (en) Migrating data that is subject to access by input/output devices
US10114701B2 (en) Space efficient cascading point in time copying
JP3935885B2 (ja) 境界ワード格納機構を用いた読み取り−修正−書き込み動作を回避する方法及びシステム
US9830218B2 (en) Cache memory with fault tolerance
CN103988184A (zh) 元比特在系统存储器内的高效存储
JPS6324428A (ja) キヤツシユメモリ
US20070240021A1 (en) Method, system and program product for autonomous error recovery for memory devices
CN111208933A (zh) 数据访问的方法、装置、设备和存储介质
US9501243B2 (en) Method and apparatus for supporting wide operations using atomic sequences
US8533560B2 (en) Controller, data storage device and program product
KR20140108787A (ko) 텍스쳐 맵핑 파이프라인을 위한 논블로킹 방식의 텍스쳐 캐쉬 메모리 시스템 및 논블로킹 방식의 텍스쳐 캐쉬 메모리의 동작 방법
JP4764945B2 (ja) キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム
US7321964B2 (en) Store-to-load forwarding buffer using indexed lookup
US8495452B2 (en) Handling corrupted background data in an out of order execution environment
EP1510924A1 (en) Apparatus and method for handling transactions with writes and reads to EEPROM or Flash memories
JP3129224B2 (ja) キャッシュメモリ装置
EP3136245B1 (en) Computer
WO2022194021A1 (zh) 并发控制方法、网卡、计算机设备、存储介质
TWI394040B (zh) Host, memory device, and host access to the memory device
CN107977282B (zh) 一种SPI-Nand读取数据页的方法及装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100809

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

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

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

Free format text: PAYMENT UNTIL: 20140617

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees