JP5082479B2 - データ一貫性制御システム及びデータ一貫性制御方法 - Google Patents

データ一貫性制御システム及びデータ一貫性制御方法 Download PDF

Info

Publication number
JP5082479B2
JP5082479B2 JP2007029248A JP2007029248A JP5082479B2 JP 5082479 B2 JP5082479 B2 JP 5082479B2 JP 2007029248 A JP2007029248 A JP 2007029248A JP 2007029248 A JP2007029248 A JP 2007029248A JP 5082479 B2 JP5082479 B2 JP 5082479B2
Authority
JP
Japan
Prior art keywords
snoop
response
request
cache
network
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
JP2007029248A
Other languages
English (en)
Other versions
JP2008197716A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2007029248A priority Critical patent/JP5082479B2/ja
Priority to US12/027,671 priority patent/US20080215823A1/en
Publication of JP2008197716A publication Critical patent/JP2008197716A/ja
Application granted granted Critical
Publication of JP5082479B2 publication Critical patent/JP5082479B2/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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、データ一貫性制御システム及びデータ一貫性制御方法において、少ないHW(hard ware)量でデッドロックを起こすことなくデータの一貫性制御を行うデータ一貫性制御システム及びデータ一貫性制御方法に関する。
従来、データ一貫性制御システムにおいて、デッドロック(dead lock)を起こすことなくデータの一貫性制御を行うためのものが、「特許第3751741号マルチプロセッサシステム(特開平11−219343号公報)」(以下、これを特許文献1と言う。)に開示されている。
ここで、特許文献1によるデータ一貫性制御システムの構成例を、図12に示す。
図12に示すように、特許文献1に記載のデータ一貫性制御システムは、複数のキャッシュエージェント1021(1021−1から1021−n)と、複数のホームエージェント1031(1031−1から1031−m)とがネットワーク1011によって接続された構成である。
なお、nとmは、自然数であり、ここでは、nとmは、割り当てられた番号を意味するものとし、以下、同様である。
キャッシュエージェント1021−1は、キャッシュエージェントでのデータ一貫性制御を行うキャッシュ制御部1055と、メッセージの送受信バッファであるスヌープ要求受信バッファ1051と、アクセス応答受信バッファ1052と、アクセス要求・スヌープ応答送信バッファ1053とを有する。
ホームエージェント1031−1は、ホームエージェント1031−1でのデータ一貫性制御を行うホーム制御部1065と、キャッシュエージェントが発行したアクセス要求を記録し処理中の状態を管理するアクセス要求管理テーブル1064と、メッセージの送受信バッファであるアクセス要求・スヌープ応答受信バッファ1061と、スヌープ要求・アクセス応答送信バッファ1062とを有する。
アクセス要求管理テーブル1064に管理される各エントリは、アクセス要求情報1071と、応答カウンタ1072とを有する(図13参照)。
キャッシュエージェント1021−1は、ホームエージェント1031−1が保持するデータにアクセスし、そのデータのコピーを保持する。
複数のキャッシュエージェント1021−nが同じデータのコピーを保持するので、複数のコピーとメモリにあるデータとの間で、データの一貫性をとる必要が生じる。そこで、このデータの一貫性を取るための制御を、データ一貫性制御と呼ぶこととする。
このデータ一貫性制御は、キャッシュエージェント1021−nと、ホームエージェント1031−mとの間で、ネットワーク1011を介してメッセージをやり取りすることにより、行われる。
例えば、キャッシュエージェント1021−1が、あるホームエージェント1031−m(ここでは、1031−1とする。)のデータに新たにアクセスする場合、キャッシュ制御部1055が該ホームエージェント1031−1宛てのアクセス要求メッセージを生成し、アクセス要求・スヌープ応答送信バッファ1053にメッセージを出力する。
アクセス要求・スヌープ応答送信バッファ1053に蓄積されたアクセス要求メッセージは、ネットワーク1011を介して該ホームエージェント1031−1のアクセス要求・スヌープ応答受信バッファ1061に渡される。
該ホームエージェント1031−1は、アクセス要求・スヌープ応答受信バッファ1061からアクセス要求メッセージを受け取り、アクセス要求管理テーブル1064にアクセス要求情報1071(図13)を登録する。
また、該ホームエージェント1031−1は、該キャッシュエージェント1021―1を除くその他全てのキャッシュエージェントそれぞれを宛先とする複数のスヌープ要求メッセージを生成し、スヌープ要求・アクセス応答送信バッファ1062に出力する。同時に、発行したスヌープ要求メッセージの数を、アクセス要求管理テーブル1064の応答カウンタ1072(図13)に設定する。
なお、キャッシュエージェントの構成は、キャッシュエージェント1021−1の構成例を流用して、他のキャッシュエージェント1021−nを説明することとする。
スヌープ要求・アクセス応答送信バッファ1062に蓄積された複数のスヌープ要求メッセージは、それぞれ、ネットワーク1011を介して宛先のキャッシュエージェントのスヌープ要求受信バッファ1051に渡される。
スヌープ要求受信バッファ1051からスヌープ要求メッセージを受け取ったキャッシュ制御部1055は、データ一貫性処理を行ってスヌープ応答メッセージを生成し、アクセス要求・スヌープ応答送信バッファ1053に出力する。
アクセス要求・スヌープ応答送信バッファ1053に蓄積されたスヌープ応答メッセージは、ネットワーク1011を介して該ホームエージェント1031−1のアクセス要求・スヌープ応答受信バッファ1061に渡される。
該ホームエージェント1031−1は、アクセス要求・スヌープ応答受信バッファ1061からスヌープ応答メッセージを受け取り、アクセス要求管理テーブル1064の該当エントリの応答カウンタ1072(図13)の値をデクリメントする。
そして、ホームエージェント1031−1は、複数のキャッシュエージェント1021−nからスヌープ応答を受け取り、発行したスヌープ要求に対するスヌープ応答を全て受け取ると、即ち応答カウンタをデクリメントした結果値が0になれば、アクセス要求を発行したキャッシュエージェント1021−1宛てにアクセス応答メッセージを生成し、スヌープ要求・アクセス応答送信バッファ1062に出力する。
スヌープ要求・アクセス応答送信バッファ1062に蓄積されたアクセス応答メッセージは、ネットワーク1011を介して宛先のキャッシュエージェント1021−1のアクセス応答受信バッファ1052に渡される。
キャッシュエージェント1021−1は、アクセス応答受信バッファ1052からアクセス応答メッセージを受け取りデータのアクセス処理を完了する。
このように、このデータ一貫性制御システムでは、各キャッシュエージェント1021−nが、それぞれ複数のアクセス要求を発行するため、システム内では同時に複数のデータ一貫性制御が平行して行われる。
そのため、各種メッセージが複数発生し、ネットワーク1011を介してキャッシュエージェント1021(1021−1から1021−n)およびホームエージェント1031(1031−1から1031−m)間でやり取りが行われる。
また、各ホームエージェント1031(1031−1から1031−m)が、アクセス要求・スヌープ応答受信バッファ1061からアクセス要求メッセージを取り出し処理を行う場合、アクセス要求管理テーブル1064に空きのエントリが存在し、スヌープ要求メッセージをスヌープ要求・アクセス応答送信バッファ1062に出力できる必要がある。
また、各ホームエージェント1031(1031−1から1031−m)が、スヌープ応答メッセージを取り出し処理を行う場合は、アクセス応答メッセージをスヌープ要求・アクセス応答送信バッファ1062に出力できる必要がある。
また、各キャッシュエージェント1021(1021−1から1021−n)が、スヌープ要求受信バッファ1051からメッセージを取り出し処理を行う場合、スヌープ応答メッセージをアクセス要求・スヌープ応答送信バッファ1053に出力できる必要がある。
このように、データ一貫性制御システムでは、各メッセージの受信・処理・送信に依存があるため、デッドロックの発生が一つの問題となる。
該特許文献1に開示されている先行技術は、キャッシュエージェント1021−1のスヌープ要求受信バッファ1051およびホームエージェント1031−1のスヌープ要求・アクセス応答送信バッファ1062が溢れることがない様に、十分大きなサイズに設定することにより、デッドロックの発生を防いでいる。
このため、ネットワークに複数の仮想チャネルを設けずに済んでいる。
しかしながら、この方法では両バッファのサイズが非常に大きくなってしまうため、実現に問題が生じるケースがある。
具体的には例えば、両バッファをチップ内の回路として実現する場合、両バッファのサイズがチップのハードウェア量を増大させてしまう。
該特許文献1では、そのような場合には、該チップに外付けのメモリ装置を接続し、そのメモリ装置に退避領域を設けることにより、チップのハードウェア量が増大してしまうのを防いでいる。
しかしながら、この方法もチップに外付けのメモリ装置を接続することが困難な場合は対応できない。
一方、複数のキャッシュエージェント1021(1021−1から1021−n)が、ほぼ同時期に同一のデータに対するアクセスを行った場合には、それらのアクセス間で競合が発生するケースが存在する。
該特許文献1に開示されている先行技術は、ネットワーク1011を一つのチャネルで構成して、ポイント・ツー・ポイントでメッセージの追い越しが発生するのを防いでいる。
これにより、メッセージの追い越しにより生じる競合状態がなくなり、データ一貫性制御を単純化することができている。
また、上述に示した特許文献1のマルチプロセッサシステムの他に、特許文献2には、一般的なマルチプロセッサシステムが記載されている。
特開平11−219343号公報 特開2003−150573号公報
しかしながら、特許文献1及び2に記載されたものでは、データ一貫性制御を単純化することはできているが、デッドロックを防止するためにキャッシュエージェントに十分大きなサイズのバッファを必要とするという問題があった。
本発明は、上記問題点に鑑みてなされたものであり、データ一貫性制御を単純なものとしつつ、キャッシュエージェントにデッドロックを防止するための十分大きなサイズのバッファを持つ必要のないデータ一貫性制御システムおよびデータ一貫性制御方法を提供することを目的とする。
本発明にかかるデータ一貫性制御システムは、複数のキャッシュエージェントと、少なくとも1つのホームエージェントとが複数のネットワークで接続され、前記キャッシュエージェントと前記ホームエージェントとのデータの一貫性制御を行うデータ一貫性制御システムであって、前記複数のネットワークは、少なくともスヌープ応答を配送する第1のネットワークと、スヌープリトライ応答を配送する第2のネットワークと、を備え、前記ホームエージェントは、前記キャッシュエージェントからのアクセス要求を前記第1のネットワークを介して受けると、当該アクセス要求を行ったキャッシュエージェント以外の複数のキャッシュエージェントに対して前記第1のネットワークを介してスヌープ要求を発行するスヌープ要求発行手段を備え、前記キャッシュエージェントは、前記第1のネットワークを介して前記スヌープ要求を受け取ると、前記データの一貫性制御を行うと共に、前記ホームエージェントに対して前記第1のネットワークを介して前記スヌープ応答を発行するスヌープ応答発行手段と、前記ホームエージェントに対してスヌープ要求の再試行を求め、前記第2のネットワークを介して前記スヌープリトライ応答を発行するスヌープリトライ応答発行手段と、を備え、前記ホームエージェントは、前記スヌープリトライ応答を前記第2のネットワークを介して受けて、どのキャッシュエージェントから再試行を求められたかを管理する管理手段と、当該管理手段によって管理する情報により、該当するキャッシュエージェントに対して前記スヌープ要求を前記第1のネットワークを介して再発行するスヌープ要求再発行手段と、を更に備えることを特徴とする。
更に、本発明にかかるデータ一貫性制御方法は、複数のキャッシュエージェントと、少なくとも1つのホームエージェントとが複数のネットワークで接続され、前記キャッシュエージェントと前記ホームエージェントとのデータの一貫性制御を行うデータ一貫性制御システムにおけるデータ一貫性制御方法であって、前記複数のネットワークは、少なくともスヌープ応答を配送する第1のネットワークと、スヌープリトライ応答を配送する第2のネットワークと、を備え、前記ホームエージェントが、前記キャッシュエージェントからのアクセス要求を前記第1のネットワークを介して受けると、当該アクセス要求を行ったキャッシュエージェント以外の複数のキャッシュエージェントに対して前記第1のネットワークを介してスヌープ要求を発行するスヌープ要求発行ステップと、前記キャッシュエージェントが、前記第1のネットワークを介して前記スヌープ要求を受け取ると、前記データの一貫性制御を行うと共に、前記ホームエージェントに対して前記第1のネットワークを介して前記スヌープ応答を発行するスヌープ応答発行ステップと、前記キャッシュエージェントが、前記ホームエージェントに対してスヌープ要求の再試行を求め、前記第2のネットワークを介して前記スヌープリトライ応答を発行するスヌープリトライ応答発行ステップと、前記ホームエージェントが、前記スヌープリトライ応答を前記第2のネットワークを介して受けて、どのキャッシュエージェントから再試行を求められたかを管理する管理ステップと、前記ホームエージェントが、当該ステップによって管理する情報により、該当するキャッシュエージェントに対して前記スヌープ要求を前記第1のネットワークを介して再発行するスヌープ要求再発行ステップと、を備えることを特徴とする。
本発明によれば、データ一貫性制御を単純なものとしつつ、キャッシュエージェントにデッドロックを防止するための十分大きなサイズのバッファを持つ必要のない、データ一貫性制御システム及びデータ一貫性制御方法を実現できる。
次に、本発明の実施の形態の構成について図面を参照して詳細に説明する。
(第1の実施の形態)
(1)第1の実施の形態によるデータ一貫性制御システム
(1−1)データ一貫性制御システムの構成
図1に示すように、データ一貫性制御システムは、複数(n個)のキャッシュエージェント21(21−1から21−n:nは、1からnまでの個数を表す番号を意味する。)と、複数(m個)のホームエージェント31(31−1から31−m:mは、1からmまでの個数を表す番号を意味する。)とが、ネットワーク11と、リトライ応答ネットワーク12とによって接続されている。
キャッシュエージェント21(ここでは、図中の21−1を例示として説明する。)は、データ一貫性制御を行うキャッシュ制御部55と、メッセージの送受信バッファであるスヌープ要求受信バッファ51と、アクセス応答受信バッファ52と、アクセス要求・スヌープ応答送信バッファ53と、スヌープリトライ応答送信バッファ54とを有している。
各バッファのうち、スヌープリトライ応答送信バッファ54のみが、リトライ応答ネットワーク12に接続されており、他のバッファは、ネットワーク11に接続されている。
更に、キャッシュ制御部55は、もしスヌープ要求を受け付けて処理しスヌープ応答を発行したとするとデッドロックが発生する危険性があるかを判断する、スヌープデッドロック判定部56を有している。
ここで、リトライ応答ネットワーク12は、ネットワーク11の仮想チャネルとして実現されても良い。
ホームエージェント31(ここでは、図中の31−1を例示として説明する。)は、データ一貫性制御を行うホーム制御部65と、キャッシュエージェント21が発行したアクセス要求を記録し処理中の状態を管理するアクセス要求管理テーブル64と、メッセージの送受信バッファであるアクセス要求・スヌープ応答受信バッファ61と、スヌープ要求・アクセス応答送信バッファ62と、スヌープリトライ応答受信バッファ63とを有している。
各バッファのうち、スヌープリトライ応答受信バッファ63のみがリトライ応答ネットワーク12に接続され、他のバッファはネットワーク11に接続される。
また、図2に示すように、アクセス要求管理テーブル64のエントリにはアクセス要求情報71と応答カウンタ72を格納している。
また、ホーム制御部65(図1)は、リトライ応答管理テーブル67と、スヌープ要求リトライ部66とを有している。
リトライ応答管理テーブル67(図1)のエントリはアクセス要求管理テーブル64のエントリと1対1で対応し、またそのエントリには、図3に示すように、例えばキャッシュエージェント数分のビット81からなるビットベクタを格納している。
(1−2)データ一貫性制御システムの動作
データ一貫性制御システムにおけるデータ一貫性制御は、キャッシュエージェント21とホームエージェント31との間で、ネットワーク11およびリトライ応答ネットワーク12を介して、メッセージをやり取りすることにより行われる。以降、本実施の形態の特徴となる動作を説明する。
キャッシュエージェント21は、ホームエージェント31のデータを新たにアクセスする場合、キャッシュ制御部55が該ホームエージェント31宛てのアクセス要求メッセージを生成し、アクセス要求・スヌープ応答送信バッファ53にメッセージを出力する。
アクセス要求・スヌープ応答送信バッファ53に蓄積されたアクセス要求メッセージは、ネットワーク11を介して該ホームエージェント31のアクセス要求・スヌープ応答受信バッファ61に渡される。
該ホームエージェント31は、アクセス要求・スヌープ応答受信バッファ61からアクセス要求メッセージを受け取り、アクセス要求管理テーブル64の該当するエントリのアクセス要求情報71(図2)を設定する。
また、該キャッシュエージェント21を除くその他のキャッシュエージェント21−nのそれぞれを宛先とする複数のスヌープ要求メッセージを生成し、スヌープ要求・アクセス応答送信バッファ62に出力する。同時に、発行したスヌープ要求メッセージの数をアクセス要求管理テーブル64の応答カウンタ72(図2)に設定する。
スヌープ要求・アクセス応答送信バッファ62に蓄積された複数のスヌープ要求メッセージは、それぞれ、ネットワーク11を介して宛先のキャッシュエージェント21−nのスヌープ要求受信バッファ51に渡される。
ここで、スヌープ要求受信バッファ51からスヌープ要求メッセージを受け取ったキャッシュ制御部55の動作を図4のフローチャートに示す。
図4のフローチャートを参照すると、まず、キャッシュ制御部55がスヌープ要求メッセージを受信すると(ステップS01)、スヌープデッドロック判定部56(図1)は、デッドロックが発生する可能性があるか否かを検査する(ステップS02)。
具体的には例えば、アクセス要求・スヌープ応答送信バッファ53にスヌープ応答メッセージを出力できるだけの空きスペースがあるかどうかを検査する(ステップS03)。ここで、空きが無い場合はデッドロックが発生する危険があると判断してステップS04へ進む。一方、空きがある場合はデッドロックが発生する危険がないと判断してステップS05へ進む。
ステップS04でキャッシュ制御部55は、データ一貫性処理を行ってスヌープ応答メッセージを生成し、アクセス要求・スヌープ応答送信バッファ53に出力する。
一方ステップS05でキャッシュ制御部55は、データ一貫性処理を行わず、スヌープリトライ応答メッセージを生成し、スヌープリトライ応答送信バッファ54に出力する。
ステップS04において、アクセス要求・スヌープ応答送信バッファ53に蓄積されたスヌープ応答メッセージは、ネットワーク11を介して該ホームエージェント31のアクセス要求・スヌープ応答受信バッファ61に渡される。
一方、ステップS05において、スヌープリトライ応答送信バッファ54に蓄積されたスヌープリトライ応答メッセージは、リトライ応答ネットワーク12を介して該ホームエージェント31のスヌープリトライ応答受信バッファ63に渡される。
該ホームエージェント31は、アクセス要求・スヌープ応答受信バッファ61からスヌープ応答メッセージを受け取り、アクセス要求管理テーブル64の該当エントリの応答カウンタ72(図2)の値をデクリメントする。
ここで、スヌープリトライ応答受信バッファ63からスヌープリトライ応答メッセージを受け取った該ホームエージェント31の動作を図5のフローチャートに示す。
図5を参照すると、該ホームエージェント31は、スヌープリトライ応答受信バッファ63からスヌープリトライ応答メッセージを受け取ると(ステップS10)、アクセス要求管理テーブル64の該当エントリの応答カウンタ72(図2)の値をデクリメントし、リトライ応答管理テーブル67(図1)の該当するエントリのビット81(図3)に‘1’を設定する(ステップS11)。
次に、該ホームエージェント31のスヌープ要求リトライ部66の動作について、図6のフローチャートを用いて説明する。
図6を参照すると、スヌープ要求リトライ部66(図1)は、リトライ応答管理テーブル67を検査し(ステップS20)、‘1’が存在するエントリおよびそのビット81の記録位置を調べる(ステップS21)。
ここで、全ビット81が‘0’の場合は、処理を終了する。
一方、ビット81が‘1’に設定されているエントリが存在する場合は、ステップS22へ移動し何れかのエントリを選択し、該エントリに対応するアクセス要求管理テーブル64(図1)のエントリからアクセス要求情報71(図2)を読み出し、該ビット81に対応するキャッシュエージェント21に対するスヌープ要求メッセージを生成し、スヌープ要求・アクセス応答送信バッファ62に出力する(ステップS22)。
また、リトライ応答管理テーブル67の該ビット81を‘0’に設定し(ステップS23)、アクセス要求管理テーブル64の該応答カウンタ72(図2)に‘1’を足しこむ。
上記が該ホームエージェント31のスヌープ要求リトライ部66の動作である。
ホーム制御部65は、複数のキャッシュエージェント21(21−1から21−nを含む)からスヌープ応答メッセージを受け取り、発行したスヌープ要求に対するスヌープ応答を全て受け取ると、即ちスヌープ応答を受け取って、応答カウンタ72(図2)をデクリメントした結果値が‘0’になり、且つ、リトライ応答管理テーブル67の該当するエントリの全ビット81が‘0’になると、アクセス要求を発行したキャッシュエージェント21(すなわち、キャッシュエージェント21−1である。)宛てのアクセス応答メッセージを生成し、スヌープ要求・アクセス応答送信バッファ62に出力する。
スヌープ要求・アクセス応答送信バッファ62に蓄積されたアクセス応答メッセージは、ネットワーク11を介して宛先のキャッシュエージェント21のアクセス応答受信バッファ52に渡される。
該キャッシュエージェント21は、アクセス応答受信バッファ52からアクセス応答メッセージを受け取りデータのアクセス処理を完了する。
(1−3)データ一貫性制御システムの効果
本実施の形態によれば、アクセス要求・スヌープ要求・スヌープ応答・アクセス応答の4種類のメッセージは、全て一つのネットワーク11を介して送られる。そのため、それらのメッセージについてはポイント・ツー・ポイントでのメッセージの到着順序を保障することができるので、データ一貫性制御を確実で、かつ単純に行うことができる。
またキャッシュエージェント21はスヌープ要求に対してスヌープリトライ応答を発行し、そのスヌープリトライ応答はネットワーク12を介して送られる。そのため、複数のキャッシュエージェント21(21−1から21−n)のスヌープ要求受信バッファ51を溢れることがない様に十分大きなサイズにしなくても、デッドロックの発生を防ぐことができる。
(第2の実施の形態)
(2)第2の実施の形態によるデータ一貫性制御システム
(2−1)データ一貫性制御システムの構成
第1の実施の形態で示した例では、リトライ応答管理テーブル67のエントリには、キャッシュエージェント数分のビット81からなるビットベクタを格納している。
そのため、キャッシュエージェント21の数nが大きくなると、リトライ応答管理テーブル67のサイズも膨大なものとなってしまう。
そこで、リトライ応答管理テーブル67のサイズが膨大なものとならないように改良した、第2の実施の形態のホーム制御部165の構成を図7に示す。
図7に示すホーム制御部165は、第1の実施形態に含まれるスヌープ要求リトライ部166と、リトライ応答管理テーブル167とに加えて、リトライ抑止部168と、リトライデッドロック判定部169とを更に有する。
リトライ抑止部168は、スヌープ要求リトライ部166が、スヌープ要求メッセージを生成することを抑止する部分(図示せず)を有する。
リトライデッドロック判定部169(図7)は、もしホーム制御部165がリトライ応答メッセージを受信して、リトライ応答管理テーブル167にリトライ応答を記録せずにスヌープ要求メッセージを再発行したとするとデッドロックが発生する危険性があるか否かを判断する。
図8には、リトライ応答管理テーブル167のエントリの構成例を示す。
まず、複数のキャッシュエージェント21(21−1から21−n)を備えたキャッシュエージェントグループを定義する。
具体的には例えば、1024個のキャッシュエージェント21を備えたシステムである場合に、128個のキャッシュエージェント21からなる8個のキャッシュエージェントグループを構成する。
リトライ応答管理テーブル167(図7)のエントリには、キャッシュエージェントグループ数分のビット181からなるビットベクタを格納し(図8)、あるビット181が‘1’である場合、対応するキャッシュエージェントグループ内に含まれる少なくとも一つのキャッシュエージェント21からスヌープリトライ応答を受け取ったことを示している。
この第2の実施の形態では、以上のように構成されており、次のように動作する。
(2−2)データ一貫性制御システムの動作
図9のフローチャートには、ホーム制御部165が、スヌープリトライ応答を受け取った場合の動作を示す。
図9のフローチャートを参照すると、まず、ホーム制御部65は、スヌープリトライ応答を受けると(ステップS30)、リトライデッドロック判定部169(図7)でデッドロックが発生する危険があるかを検査する(ステップS31)。
具体的には例えば、スヌープ要求・アクセス応答送信バッファ62(図1)に、スヌープ要求メッセージを出力できるだけの空きスペースがあるかどうかを検査する(ステップS32)。
ここで、空きが無い場合にはデッドロックが発生する危険があると判断してステップS34へ進み、これに対し空きがある場合にはデッドロックが発生する危険がないと判断してステップS33へ進む。
ステップS34では、アクセス要求管理テーブル64の該当エントリの応答カウンタ72(図2)の値をデクリメントし、リトライ応答管理テーブル167(図7)の該当するエントリの該当するビット181に‘1’を設定する。
一方、ステップS33では、アクセス要求管理テーブル64(図1)の該当エントリからアクセス要求情報71を読み出し、該キャッシュエージェント21宛のスヌープ要求メッセージを生成し、スヌープ要求・アクセス応答送信バッファ62に出力する。
これにより、リトライ応答管理テーブル167(図7)にリトライ応答を記録してスヌープ要求リトライ部166にスヌープ要求メッセージを生成される場合と比べ、アクセス要求管理テーブル64へのアクセス回数を減らすことができるので、性能を向上させることができる。
また、後述するが、スヌープ要求リトライ部166(図7)は、該当するキャッシュエージェントグループに含まれる複数のキャッシュエージェント21に対してスヌープ要求メッセージを生成している。ステップS33では生成するスヌープ要求メッセージを一つに限定しているので、生成するスヌープ要求メッセージ数を抑えることができるという効果も有する。
次に、スヌープ要求リトライ部166(図7)の動作を、図10のフローチャートに示す。
図10のフローチャートを参照すると、スヌープ要求リトライ部166(図7)は、リトライ応答管理テーブル167(図7)を検査し(ステップS40)、‘1’が存在するエントリおよびそのビット181の位置を調べる(ステップS41)。
全ビット181が‘0’の場合には、ステップS46へ進み、処理を終了する。
一方、ビット181が‘1’に設定されているエントリが存在する場合には、ステップS42へ進み、何れかのエントリを選択し、次にリトライ抑止部168(図7)によりスヌープ要求の再発行を抑止するか否かを検査する(ステップS42)。
具体的には例えば、アクセス要求管理テーブル64(図1)の該当するエントリの応答カウンタ72の値が‘0’であるかどうかを検査し、‘0’でなければ再発行を抑止する(ステップS43)。
また別の例としては、応答カウンタ72(図2)の値が、スヌープ要求をキャッシュエージェントグループに対して再発行し、その発行したスヌープ要求メッセージ数を応答カウンタ72に足しこんだ場合にはオーバーフローするかどうかを検査し、オーバーフローする場合に発行を抑止する。そして、このように発行が抑止された場合には、処理を終了する(ステップS43)。
これらの抑止に対し、発行が抑止されなかった場合には、スヌープ要求リトライ部166(図7)によりスヌープ要求メッセージを再発行する(ステップS44)。
この例では、アクセス要求管理テーブル64(図1)の該当するエントリのアクセス要求情報71を読み出し、該ビット181に対応するキャッシュエージェントグループ内の複数のキャッシュエージェント21に対して、それぞれスヌープ要求メッセージを生成し、スヌープ要求・アクセス応答送信バッファ62に出力する。
また同時に、該ビット181を‘0’に設定し、該応答カウンタ72(図2)に発行したスヌープ要求メッセージ数を足し込む。
これにより、リトライ応答管理テーブル167のサイズを抑えることができると共に、応答カウンタ72のオーバーフローが発生することによる動作異常を防ぐことができる。
また、以上のように構成し動作させることにより、第1の実施の形態と同様に、アクセス要求・スヌープ要求・スヌープ応答・アクセス応答の4種類のメッセージについては、ポイント・ツー・ポイントでのメッセージの追い越しが発生せず、データ一貫性制御を単純にすることができる。
また、キャッシュエージェント21のスヌープ要求受信バッファ51を溢れることがない様に十分大きなサイズにしなくても、デッドロックの発生を防ぐことができる。
(第3の実施の形態)
(3)第3の実施の形態によるデータ一貫性制御システム
第2の実施の形態のリトライ抑止部168では、全てのスヌープ応答あるいはスヌープリトライ応答を刈り取るまでスヌープ要求の再発行を抑止する、あるいはキャッシュエージェントグループに含まれる複数のキャッシュエージェント21から複数のスヌープリトライ応答が合った場合に、何度も該複数のキャッシュエージェント21に対してスヌープ要求メッセージを再発行することになり、ネットワーク11が輻輳し性能が劣化するという問題が発生し得る。
そこで、第3の実施の形態は、この問題を解決する方法を示すものである。
(3−1)データ一貫性制御システムの構成
第2の実施の形態の変形例として、リトライ応答管理テーブル167を図11に示すように構成する。ここでは、キャッシュエージェントグループ数分のビット281とグループ応答カウンタ282で構成することとする。
ホーム制御部165(図7)が、スヌープ要求メッセージを送信する場合、該当するエントリの各グループ応答カウンタ282(図11)のそれぞれに、そのキャッシュエージェントグループに含まれる複数のキャッシュエージェント21に対して何個のスヌープ要求メッセージを発行したかどうかを記録する。
ホーム制御部165(図7)がスヌープ応答メッセージを受信した場合には、該当するエントリの該当するグループ応答カウンタ282(図11)の値をデクリメントする。
また、スヌープリトライ応答メッセージを受信してリトライ応答管理テーブル167(図7)に記録した場合にも、グループ応答カウンタ282(図11)の値をデクリメントする。
また、リトライ抑止部168(図7)は、グループ応答カウンタ282(図11)の値が‘0’で無い場合には、リトライ応答を抑止する。
これにより、キャッシュエージェントグループ内の全てのスヌープ応答あるいはスヌープリトライ応答を刈り取ることができればスヌープ要求を再発行可能になるため、全てのスヌープ応答あるいはスヌープリトライ応答を刈り取るまで待つ必要がなくなる。
また、キャッシュエージェントグループに含まれる複数のキャッシュエージェント21から複数のスヌープリトライ応答が合った場合にも、何度も該複数のキャッシュエージェント21に対してスヌープ要求メッセージを再発行することがなくなり、ネットワーク11が輻輳するのを防ぐことができる。
また、以上のように構成し動作させることにより、第1の実施の形態と同様に、アクセス要求・スヌープ要求・スヌープ応答・アクセス応答の4種類のメッセージについては、ポイント・ツー・ポイントでのメッセージの追い越しが発生せず、データ一貫性制御を単純にすることができる。
また、キャッシュエージェント21のスヌープ要求受信バッファ51を溢れることがない様に十分大きなサイズにしなくても、デッドロックの発生を防ぐことができる。
本発明は、データの一貫性制御が必要なシステムに適用できる。
本発明における第1の実施の形態によるデータ一貫性制御システムの構成を示す図である。 本発明における第1の実施の形態によるアクセス要求管理テーブルのエントリ構成を示す図である。 本発明における第1の実施の形態によるリトライ応答管理部のエントリ構成を示す図である。 本発明における第1の実施の形態によるキャッシュエージェントの動作を示す図である。 本発明における第1の実施の形態によるホームエージェントのスヌープリトライ応答受信動作を示す図である。 本発明における第1の実施の形態によるホームエージェントのスヌープ要求再発行動作を示す図である。 本発明における第2の実施の形態によるホーム制御部の構成を示す図である。 本発明における第2の実施の形態によるリトライ応答管理部のエントリ構成を示す図である。 本発明における第2の実施の形態によるホームエージェントのスヌープリトライ応答受信動作を示す図である。 本発明における第2の実施の形態によるホームエージェントのスヌープ要求再発行動作を示す図である。 本発明における第3の実施の形態によるリトライ応答管理部のエントリ構成を示す図である。 従来のデータ一貫性制御システムの構成を示す図である。 従来のデータ一貫性制御システムにおけるアクセス要求管理テーブルのエントリ構成を示す図である。
符号の説明
11 ネットワーク
12 リトライ応答ネットワーク
21、21−1、21−2、21−n キャッシュエージェント
31、31−1、31−2、31−m ホームエージェント
51 スヌープ要求受信バッファ
52 アクセス応答受信バッファ
53 アクセス要求・スヌープ応答送信バッファ
54 スヌープリトライ応答送信バッファ
55 キャッシュ制御部
56 スヌープデッドロック判定部
61 アクセス要求・スヌープ応答受信バッファ
62 スヌープ要求・アクセス応答送信バッファ
63 スヌープリトライ応答受信バッファ
64 アクセス要求管理テーブル
65 ホーム制御部
66 スヌープ要求リトライ部
67 リトライ応答管理テーブル
71 アクセス要求情報
72 応答カウンタ
81 ビット
165 ホーム制御部
166 スヌープ要求リトライ部
167 リトライ応答管理テーブル
168 リトライ抑止部
169 リトライデッドロック判定部
181 ビット
281 ビット
282 グループ応答カウンタ
1011 ネットワーク
1021、1021−1、1021−2、1021−n キャッシュエージェント
1031、1031−1、1031−2、1031−m ホームエージェント
1051 スヌープ要求受信バッファ
1052 アクセス応答受信バッファ
1053 アクセス要求・スヌープ応答送信バッファ
1055 キャッシュ制御部
1061 アクセス要求・スヌープ応答送信バッファ
1062 スヌープ要求・アクセス応答送信バッファ
1064 アクセス要求管理テーブル
1065 ホーム制御部
1071 アクセス要求情報
1072 応答カウンタ

Claims (8)

  1. 複数のキャッシュエージェントと、少なくとも1つのホームエージェントとが複数のネットワークで接続され、前記キャッシュエージェントと前記ホームエージェントとのデータの一貫性制御を行うデータ一貫性制御システムであって、
    前記複数のネットワークは、少なくともスヌープ応答を配送する第1のネットワークと、
    スヌープリトライ応答を配送する第2のネットワークと、を備え、
    前記ホームエージェントは、
    前記キャッシュエージェントからのアクセス要求を前記第1のネットワークを介して受けると、当該アクセス要求を行ったキャッシュエージェント以外の複数のキャッシュエージェントに対して前記第1のネットワークを介してスヌープ要求を発行するスヌープ要求発行手段を備え、
    前記キャッシュエージェントは、
    前記第1のネットワークを介して前記スヌープ要求を受け取ると、前記データの一貫性制御を行うと共に、前記ホームエージェントに対して前記第1のネットワークを介して前記スヌープ応答を発行するスヌープ応答発行手段と、
    前記ホームエージェントに対してスヌープ要求の再試行を求め、前記第2のネットワークを介して前記スヌープリトライ応答を発行するスヌープリトライ応答発行手段と、を備え、
    前記ホームエージェントは、
    前記スヌープリトライ応答を前記第2のネットワークを介して受けて、どのキャッシュエージェントから再試行を求められたかを管理する管理手段と、
    当該管理手段によって管理する情報により、該当するキャッシュエージェントに対して前記スヌープ要求を前記第1のネットワークを介して再発行するスヌープ要求再発行手段と、
    を更に備えることを特徴とするデータ一貫性制御システム。
  2. 前記キャッシュエージェントは、前記スヌープ要求を受けると共に、当該スヌープ要求を処理した場合にデッドロックが発生するかを検査するキャッシュ側デッドロック検査手段を更に備え、
    当該キャッシュ側デッドロック検査手段により前記デッドロックが発生する可能性があると判断した場合には、前記スヌープリトライ応答を発行する
    ことを特徴とする請求項1記載のデータ一貫性制御システム。
  3. 前記ホームエージェントは、スヌープリトライ抑止手段を更に備え、
    前記スヌープ要求再発行手段が前記スヌープ要求を再発行すると動作異常が発生する或いはネットワークの輻輳が発生すると判断した場合には、前記スヌープリトライ抑止手段が前記スヌープ要求の再発行処理を抑止する
    ことを特徴とする請求項1又は2に記載のデータ一貫性制御システム。
  4. 前記ホームエージェントは、前記スヌープリトライ応答を受けて、スヌープ要求の再発行を行った場合にデッドロックが発生するかを検査するホーム側デッドロック検査手段を更に備え、
    当該ホーム側デッドロック検査手段により前記デッドロックが発生する可能性があると判断した場合には、前記管理手段に前記スヌープリトライ応答を記録し、一方、前記デッドロックが発生しないと判断した場合には、前記管理手段に前記スヌープリトライ応答を記録せず前記スヌープ要求を再発行する
    ことを特徴とする請求項1に記載のデータ一貫性制御システム。
  5. 複数のキャッシュエージェントと、少なくとも1つのホームエージェントとが複数のネットワークで接続され、前記キャッシュエージェントと前記ホームエージェントとのデータの一貫性制御を行うデータ一貫性制御システムにおけるデータ一貫性制御方法であって、
    前記複数のネットワークは、少なくともスヌープ応答を配送する第1のネットワークと、
    スヌープリトライ応答を配送する第2のネットワークと、を備え、
    前記ホームエージェントが、前記キャッシュエージェントからのアクセス要求を前記第1のネットワークを介して受けると、当該アクセス要求を行ったキャッシュエージェント以外の複数のキャッシュエージェントに対して前記第1のネットワークを介してスヌープ要求を発行するスヌープ要求発行ステップと、
    前記キャッシュエージェントが、前記第1のネットワークを介して前記スヌープ要求を受け取ると、前記データの一貫性制御を行うと共に、前記ホームエージェントに対して前記第1のネットワークを介して前記スヌープ応答を発行するスヌープ応答発行ステップと、
    前記キャッシュエージェントが、前記ホームエージェントに対してスヌープ要求の再試行を求め、前記第2のネットワークを介して前記スヌープリトライ応答を発行するスヌープリトライ応答発行ステップと、
    前記ホームエージェントが、前記スヌープリトライ応答を前記第2のネットワークを介して受けて、どのキャッシュエージェントから再試行を求められたかを管理する管理ステップと、
    前記ホームエージェントが、当該ステップによって管理する情報により、該当するキャッシュエージェントに対して前記スヌープ要求を前記第1のネットワークを介して再発行するスヌープ要求再発行ステップと、
    を備えることを特徴とするデータ一貫性制御方法。
  6. 前記キャッシュエージェントは、前記スヌープ要求を受けると共に、当該スヌープ要求を処理した場合にデッドロックが発生するかを検査するキャッシュ側デッドロック検査ステップを更に備え、
    当該デッドロック検査ステップによりデッドロックが発生する可能性があると判断した場合には、前記スヌープリトライ応答を発行する
    ことを特徴とする請求項5記載のデータ一貫性制御方法。
  7. 前記ホームエージェントは、スヌープリトライ抑止ステップを更に備え、
    前記再発行ステップが前記スヌープ要求を再発行すると動作異常が発生する或いはネットワークの輻輳が発生すると判断した場合には、前記スヌープリトライ抑止ステップが前記スヌープ要求の再発行処理を抑止する
    ことを特徴とする請求項5又は6に記載のデータ一貫性制御方法。
  8. 前記ホームエージェントは、前記スヌープリトライ応答を受けて、スヌープ要求の再発行を行った場合にデッドロックが発生するかを検査するホーム側デッドロック検査ステップを更に備え、
    当該ホーム側デッドロック検査ステップにより前記デッドロックが発生する可能性があると判断した場合には、前記管理ステップにおいて前記スヌープリトライ応答を記録し、一方、前記デッドロックが発生しないと判断した場合には、前記管理ステップにおいて前記スヌープリトライ応答を記録せず前記スヌープ要求を再発行する
    ことを特徴とする請求項5記載のデータ一貫性制御方法。
JP2007029248A 2007-02-08 2007-02-08 データ一貫性制御システム及びデータ一貫性制御方法 Expired - Fee Related JP5082479B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007029248A JP5082479B2 (ja) 2007-02-08 2007-02-08 データ一貫性制御システム及びデータ一貫性制御方法
US12/027,671 US20080215823A1 (en) 2007-02-08 2008-02-07 Data consistency control system and data consistency control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007029248A JP5082479B2 (ja) 2007-02-08 2007-02-08 データ一貫性制御システム及びデータ一貫性制御方法

Publications (2)

Publication Number Publication Date
JP2008197716A JP2008197716A (ja) 2008-08-28
JP5082479B2 true JP5082479B2 (ja) 2012-11-28

Family

ID=39733958

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007029248A Expired - Fee Related JP5082479B2 (ja) 2007-02-08 2007-02-08 データ一貫性制御システム及びデータ一貫性制御方法

Country Status (2)

Country Link
US (1) US20080215823A1 (ja)
JP (1) JP5082479B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5630825B2 (ja) * 2010-12-28 2014-11-26 Necプラットフォームズ株式会社 マルチプロセッサシステム、リクエスト処理方法、及びノード
US8972667B2 (en) * 2011-06-28 2015-03-03 International Business Machines Corporation Exchanging data between memory controllers
US9361257B2 (en) 2011-09-30 2016-06-07 Intel Corporation Mechanism for facilitating customization of multipurpose interconnect agents at computing devices
CN105980979B (zh) * 2014-12-13 2018-11-20 上海兆芯集成电路有限公司 用于检测暂停的逻辑分析器
US9606925B2 (en) * 2015-03-26 2017-03-28 Intel Corporation Method, apparatus and system for optimizing cache memory transaction handling in a processor
US9990291B2 (en) * 2015-09-24 2018-06-05 Qualcomm Incorporated Avoiding deadlocks in processor-based systems employing retry and in-order-response non-retry bus coherency protocols
US20190087333A1 (en) * 2017-09-15 2019-03-21 Qualcomm Incorporated Converting a stale cache memory unique request to a read unique snoop response in a multiple (multi-) central processing unit (cpu) processor to reduce latency associated with reissuing the stale unique request

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748463B1 (en) * 1996-03-13 2004-06-08 Hitachi, Ltd. Information processor with snoop suppressing function, memory controller, and direct memory access processing method
TW386192B (en) * 1997-04-14 2000-04-01 Ibm Method and system for speculatively sourcing cache memory data within a data-processing system
JP3751741B2 (ja) * 1998-02-02 2006-03-01 日本電気株式会社 マルチプロセッサシステム
JP3676934B2 (ja) * 1998-12-15 2005-07-27 株式会社日立製作所 プロセッサおよびマルチプロセッサシステム
US6604178B1 (en) * 1999-11-30 2003-08-05 International Business Machines Corporation Hard disk drive employing neural network for performing expected access time calculations
JP3772690B2 (ja) * 2001-04-25 2006-05-10 日本電気株式会社 サービスシステム及びそれに用いるサービス方法
JP2003216597A (ja) * 2002-01-23 2003-07-31 Hitachi Ltd マルチプロセッサシステム
US6986013B2 (en) * 2002-12-05 2006-01-10 International Business Machines Corporation Imprecise cache line protection mechanism during a memory clone operation
JP4085389B2 (ja) * 2003-12-24 2008-05-14 日本電気株式会社 マルチプロセッサシステム、マルチプロセッサシステムにおける一貫性制御装置及び一貫性制御方法
US7395374B2 (en) * 2004-01-20 2008-07-01 Hewlett-Packard Company, L.P. System and method for conflict responses in a cache coherency protocol with ordering point migration
WO2006004196A1 (ja) * 2004-07-02 2006-01-12 Nec Corporation マルチプロセッサシステムおよびメモリアクセス処理方法

Also Published As

Publication number Publication date
JP2008197716A (ja) 2008-08-28
US20080215823A1 (en) 2008-09-04

Similar Documents

Publication Publication Date Title
JP5082479B2 (ja) データ一貫性制御システム及びデータ一貫性制御方法
US6971098B2 (en) Method and apparatus for managing transaction requests in a multi-node architecture
US20160314018A1 (en) Method for work scheduling in a multi-chip system
US8898665B2 (en) System, method and computer program product for inviting other virtual machine to access a memory space allocated to a virtual machine
JP3074636B2 (ja) 並列計算機システム
KR102212269B1 (ko) I/o 패킷 압축을 위한 레지스터 파일
US20050144399A1 (en) Multiprocessor system, and consistency control device and consistency control method in multiprocessor system
US10423530B2 (en) Partial cache coherence
JP5941168B2 (ja) 第1および第2のプロトコルドメインを有するデータ処理装置およびデータ処理装置に関する方法
US9015380B2 (en) Exchanging message data in a distributed computer system
US20160179720A1 (en) Device table in system memory
US20180300076A1 (en) Method, device, and computer readable storage medium for managing storage
EP2568379A1 (en) Method for preventing node controller deadlock and node controller
US20150261679A1 (en) Host bridge with cache hints
JP6115455B2 (ja) 並列計算機システム、並列計算機システムの制御方法、情報処理装置、演算処理装置および通信制御装置
US10942865B2 (en) Snooping with access permissions
JP4985512B2 (ja) 分散共有メモリ型マルチプロセッサシステム及びマルチプロセッサシステムにおける負荷分散方法
US10318424B2 (en) Information processing device
US8131943B2 (en) Structure for dynamic initial cache line coherency state assignment in multi-processor systems
US10565004B2 (en) Interrupt and message generation independent of status register content
US8838909B2 (en) Dynamic initial cache line coherency state assignment in multi-processor systems
JP2022549095A (ja) キャッシュ禁止書き込みオペレーション
US20130290654A1 (en) Data writing control device, data writing control method, and information processing device
JP4924970B2 (ja) データ処理システム
JP4295815B2 (ja) マルチプロセッサシステムおよびマルチプロセッサシステムの動作方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080618

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100119

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100908

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100908

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120719

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

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

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees