JP4912789B2 - マルチプロセッサシステム,システムボードおよびキャッシュリプレース要求処理方法 - Google Patents

マルチプロセッサシステム,システムボードおよびキャッシュリプレース要求処理方法 Download PDF

Info

Publication number
JP4912789B2
JP4912789B2 JP2006222990A JP2006222990A JP4912789B2 JP 4912789 B2 JP4912789 B2 JP 4912789B2 JP 2006222990 A JP2006222990 A JP 2006222990A JP 2006222990 A JP2006222990 A JP 2006222990A JP 4912789 B2 JP4912789 B2 JP 4912789B2
Authority
JP
Japan
Prior art keywords
request
cache replacement
replacement request
issued
cpu
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.)
Active
Application number
JP2006222990A
Other languages
English (en)
Other versions
JP2008046949A (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
Priority to JP2006222990A priority Critical patent/JP4912789B2/ja
Priority to KR1020070018303A priority patent/KR100865102B1/ko
Priority to US11/790,265 priority patent/US8090912B2/en
Priority to EP07107214A priority patent/EP1895420B1/en
Priority to DE602007012028T priority patent/DE602007012028D1/de
Priority to CNB2007101039687A priority patent/CN100538665C/zh
Publication of JP2008046949A publication Critical patent/JP2008046949A/ja
Application granted granted Critical
Publication of JP4912789B2 publication Critical patent/JP4912789B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • 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)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

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

Description

本発明は,マルチプロセッサシステムにおいて各CPUからのリクエストを制御する技術に関するものであり,特に,キャッシュリプレース要求を効率良く処理するマルチプロセッサシステム,システムボードおよびキャッシュリプレース要求処理方法に関するものである。
近年,情報処理装置が各分野で広く利用されるようになったことに伴い,マルチプロセッサ構成のチップセットの処理能力の高さが求められるようになっている。
図11は,マルチプロセッサシステムの構成例を示す図である。図11に示すマルチプロセッサシステムは,4つのシステムボード100(a〜d)と,アドレスクロスバボード200から構成されている。各システムボード100(a〜d)とアドレスクロスバボード200とは,ローカルバス300(a〜d),グローバルバス301,ローカル通知パス302(a〜d),グローバル通知パス303等で接続される。
システムボード100aは,システムコントローラ110と,4つのCPU120(a〜d)とを備える。CPU120aとCPU120bはCPUバス130aで,CPU120cとCPU120dはCPUバス130cで,システムコントローラ110に接続される。システムボード100(b〜d)も,システムボード100aと同様の構成となる。
各CPU120(a〜d)は,それぞれキャッシュメモリ121(a〜d)と,キャッシュタグ122(a〜d)とを備える。この例では,キャッシュメモリ121は,4Wayセットアソシアティブ方式で制御されているものとする。
システムコントローラ110は,スヌープタグ111(a〜d),CPU発行リクエストキュー112(a,c),ローカルアービタ113,リクエスト処理部114,リクエスト実行部115を備える。
スヌープタグ111(a〜d)は,それぞれキャッシュタグ122(a〜d)に対応する。CPU発行リクエストキュー112は,CPU120が発行するリクエストをCPUバス130ごとに保持する。ここでは,CPU120(a,b)が発行するリクエストをCPU発行リクエストキュー112aが保持し,CPU120(c,d)が発行するリクエストをCPU発行リクエストキュー112cが保持する。ローカルアービタ113は,CPU発行リクエストキュー112に保持されたリクエストを,ローカルバス300aに出力する。
リクエスト処理部114は,グローバルバス301から送られてきたリクエストに対する処理を行う。リクエスト処理部114は,資源管理部116,リクエスト実行起動部117を備える。資源管理部116は,リクエストを処理するための資源等のチェックを行う。リクエスト実行起動部117は,リクエスト実行部115の起動や,スヌープタグ111の更新を行う。
アドレスクロスバボード200は,グローバルアービタ210,実行可否判定回路220を備える。グローバルアービタ210は,ローカルバス300(a〜d)から入力されたリクエストを,グローバルバス301を介して,すべてのシステムボード100(a〜d)に出力する。実行可否判定回路220は,ローカル通知パス302(a〜d)から入力された通知をもとにリクエストの実行の可否判定を行い,その結果とリクエストの実行に必要な情報とをグローバル通知パス303を介して各システムボード100(a〜d)に通知する。
ここで,CPU120aがリード要求を行う場合を例に,図11に示すシステムの動作を説明する。ここでは,CPU120aが1000番地のリードを行うものとする。なお,キャッシュコヒーレンシには,MESIプロトコルが用いられるものとする。MESIプロトコルは,キャッシュコヒーレンシプロトコルの一種であり,キャッシュの各ラインを,M(更新状態:Modeified),E(排他状態:Exclusive),S(共有状態:Shared),I(無効状態:Invalid)に分けて制御する。
CPU120aは,自身のキャッシュメモリ121aに1000番地のデータが存在するかを確認するために,まずキャッシュタグ122aの検索を行う。検索の結果,自身のキャッシュメモリ121aに有効なデータがないと判断すると,CPU120aは,CPUバス130aにリード要求のリクエストを発行する。
CPU120aから発行されたリクエストはCPU発行リクエストキュー112a,ローカルアービタ113,ローカルバス300aを介し,グローバルアービタ210に入力される。グローバルアービタ210に入力されたリクエストは,グローバルバス301を介し,すべてのシステムボード100(a〜d)に同時に通知される。
システムボード100aでは,グローバルバス301からリクエスト処理部114にリクエストが入力される。リクエスト処理部114は,各スヌープタグ111を読み込み,リクエストを処理するための資源等があるかのチェックを資源管理部116によって行う。それらの結果は,ローカル通知パス302aを介して実行可否判定回路220に送られる。
実行可否判定回路220は,すべてのローカル通知パス302(a〜d)からの通知をもとにリクエスト実行の可否判定を行い,その結果とリクエストの実行に必要な情報とを,グローバル通知パス303を介して,リクエスト実行起動部117に通知する。リクエスト実行起動部117は,リクエスト実行の可否判定の結果とリクエストの実行に必要な情報とをもとに,スヌープタグ111の更新やリクエスト実行部115の起動を行う。
例えば,資源確保ができ,スヌープタグ111の検索結果がすべてInvalidであった場合,リクエスト実行起動部117は,スヌープタグ111aに1000番地を登録する。なお,登録される状態は,発行リクエストによって決定される。同時に,リクエスト実行部115は,メモリの1000番地のリードを行い,得られたデータをCPU120aに送る。CPU120aは,キャッシュタグ122aを更新する。
また,例えば,資源確保ができ,スヌープタグ111の検索結果,1000番地がスヌープタグ111cにM(更新状態)で登録されていた場合,リクエスト実行起動部117は,スヌープタグ111aに1000番地を登録する。なお,登録される状態は,発行リクエストによって決定される。また,スヌープタグ111cの1000番地の状態をS(共有状態)またはI(無効状態)に変更する。このときに変更される状態は発行リクエストによって決定される。同時に,リクエスト実行部115は,CPU120cに1000番地のMデータを送出する指示を出し,出力されたデータをCPU120aに送る。CPU120aはキャッシュタグ122aを更新し,CPU120cはキャッシュタグ122cを更新する。
図12は,キャッシュリプレース要求への対応の例を説明する図である。図12には,図11において,CPU120a,CPU120b,システムコントローラ110を中心としたシステムボード100aと,グローバルアービタ210を中心としたアドレスクロスバボード200とに着目した例が示されている。ここでは,CPU120aがキャッシュリプレース要求を発行するものとする。
図12において,太線矢印は,キャッシュリプレース要求が伝達されるルートを示す。CPU120aから発行されたキャッシュリプレース要求は,他のリクエストと同様に,CPUバス130a,CPU発行リクエストキュー112a,ローカルアービタ113,ローカルバス300a,グローバルアービタ210,グローバルバス301を介し,各システムボード100(a〜d)のシステムコントローラ110のリクエスト処理部114に伝えられる。
図13は,Evictionを説明する図である。Evictionとは,システムコントローラ110側からCPU120に対してキャッシュの排出処理の指示を行うことである。以下,図13の例を用いてEvictionを説明する。
まず,段階0に示すように,キャッシュタグ122とスヌープタグ111のある同一インデックスが,いずれも空であるものとする。このとき,CPU120がA番地をリードすると,段階1に示すように,キャッシュタグ122,スヌープタグ111には,それぞれA番地が登録される。さらにCPU120がB番地,C番地,D番地と同一インデックスのリードを続けていくと,段階2に示すように,Wayフルとなる。
このようなWayフルの状態において,CPU120がさらに同一インデックスのE番地をリードしたい場合には,まずキャッシュタグ122内のいずれかのデータを消さなくてはならない。ここではA番地を消すものとする。CPU120がキャッシュリプレース要求をサポートしておらず,かつA番地の状態がM(更新状態)でない場合には,CPU120内でA番地のサイレントドロップが発生する。段階3に示すように,キャッシュタグ122のA番地が削除される。なお,サイレントドロップとは,他に通知することなくデータを削除することをいう。
同様に,CPU120からのE番地のリードを受けたシステムコントローラ110でもE番地を登録することになるので,スヌープタグ111からいずれか1つのデータを消さなくてはならない。ここではB番地を消すものとする。このとき,“キャッシュタグ122にあるものはスヌープタグ111になくてはならない”というインクルージョンルールがあるため,システムコントローラ110は,自分が消したものをCPU120にも消させなくてはならないので,段階4に示すように,CPU120に対して吐き出し要求を発行する必要がある。この吐き出し要求をEvictionと呼ぶ。最終的に,キャッシュタグ122とスヌープタグ111のいずれにも空きができるので,段階5に示すように,それぞれにE番地を登録することができる。
なお,マルチプロセッサシステムに関する技術が記載された先行技術文献としては,例えば特許文献1などがある。特許文献1には,各ノードがリング状に結合された多重プロセッサコンピュータシステムに関する技術が記載されている。ただし,特許文献1に記載された技術では,後述の課題を解決することはできない。
特表2002−522827号公報
多くのシステムボード100から構成されるマルチプロセッサシステムでは,グローバルバス301に非常に大きな負荷がかかってしまい,そのグローバルバス301にキャッシュリプレース要求を流すと,その他のリクエストの処理能力が落ちてしまうという問題がある。また,キャッシュリプレース要求はその親となるリード要求より先に処理しないとEvictionが発生してしまう可能性があるため,本来のキャッシュリプレース要求の効果がなくなってしまうという問題がある。
本発明は,上記の問題点の解決を図り,キャッシュリプレース要求によってグローバルバスに負荷がかかることを防ぎ,不要なEvictionの発生を防ぐことが可能となる技術を提供することを目的とする。
本発明は,上記の課題を解決するため,マルチプロセッサシステムにおいて,システムボードは,自システムボードのCPUから発行されたリクエストがキャッシュリプレース要求である場合に,そのリクエストをアドレスクロスバボードに送らず,自システムボード内部で折り返して処理することを特徴とする。
具体的には,本発明は,CPUとそのCPUから発行されたリクエストに対する処理を行うリクエスト処理部とをそれぞれ有する複数のシステムボードと,各システムボードからのリクエストをアービトレーションするアドレスクロスバボードとを備えるマルチプロセッサシステムであって,システムボードは,自システムボードのCPUから発行されたリクエストがキャッシュリプレース要求であるか否かを判定し,キャッシュリプレース要求でなければそのリクエストをアドレスクロスバボードに送り,キャッシュリプレース要求であればそのリクエストを自システムボード内部からリクエスト処理部に送るキャッシュリプレース要求折り返し回路を備えることを特徴とする。
これにより,キャッシュリプレース要求がグローバルバスに出力されなくなるので,グローバルバスのスループット負荷を軽減することが可能となる。また,キャッシュリプレース要求は自システムボード内で折り返されてその親となるリード要求より先に処理されるため,不要なEvictionの発生を防ぐことが可能となる。
また,本発明は,上記のマルチプロセッサシステムであって,キャッシュリプレース要求折り返し回路は,自システムボードのCPUから発行されたキャッシュリプレース要求のリクエストを保持する折り返し部キューを備えることを特徴とする。これにより,グローバルバスが混雑してキャッシュリプレース要求をすぐに処理できない状態であっても,キャッシュリプレース要求以外のリクエストの発行が滞ることを防ぐことができる。
また,本発明は,上記のマルチプロセッサシステムであって,キャッシュリプレース要求折り返し回路は,折り返し部キューの全エントリにすでにキャッシュリプレース要求のリクエストが保持されているときに,自システムボードのCPUから新たにキャッシュリプレース要求のリクエストが発行された場合に,折り返し部キューのいずれかのエントリに保持されたキャッシュリプレース要求のリクエストを,新たに発行されたキャッシュリプレース要求のリクエストで上書きすることを特徴とする。これにより,折り返し部キューのエントリ数が少なくても,キャッシュリプレース要求以外のリクエストの発行が滞ることを効果的に防ぐことができる。
本発明により,キャッシュリプレース要求によってグローバルバスに負荷がかかることを防ぎ,不要なEvictionの発生を防ぐことが可能となる。よって,キャッシュリプレース要求を効率的に処理することができるようになり,システム性能が向上する。
以下,本発明の実施の形態について,図を用いて説明する。
図1は,本実施の形態によるマルチプロセッサシステムの構成例(1)を示す図である。図1の例のマルチプロセッサシステムは,図11に示す構成において,特にCPU120a,CPU120a,CPU120b,システムコントローラ110を中心としたシステムボード100と,グローバルアービタ210を中心としたアドレスクロスバボード200とに着目したものであり,その他の構成については従来技術と同様であるため省略している。
図1に示すマルチプロセッサシステムは,4つのシステムボード100(a〜d)と,アドレスクロスバボード200から構成されている。各システムボード100(a〜d)とアドレスクロスバボード200とは,ローカルバス300(a〜d),グローバルバス301等で接続される。
システムボード100aは,システムコントローラ110と,2つのCPU120(a,b)とを備える。2つのCPU120(a,b)はCPUバス130aでシステムコントローラ110に接続される。システムボード100(b〜d)も,システムボード100aと同様の構成となる。
各CPU120(a,b)は,それぞれキャッシュメモリ121(a,b)と,キャッシュタグ122(a,b)とを備える。本実施の形態では,キャッシュメモリ121は,4Wayセットアソシアティブ方式で制御されているものとする。
システムコントローラ110は,CPU発行リクエストキュー112a,ローカルアービタ113,リクエスト処理部114,キャッシュリプレース要求折り返し回路140を備える。
CPU発行リクエストキュー112aは,CPU120(a,b)が発行するリクエストを保持する。ローカルアービタ113は,CPU発行リクエストキュー112aに保持されたリクエストを,ローカルバス300aに出力する。リクエスト処理部114は,CPU120から発行されたリクエストに対する処理を行う。
キャッシュリプレース要求折り返し回路140は,キャッシュリプレース要求のみをシステムコントローラ110内で折り返してリクエスト処理部114に送るための手段であり,折り返し判定回路141,セレクタ142を備える。折り返し判定回路141は,ローカルアービタ113から発行されたリクエストを,システムコントローラ110内部に折り返すキャッシュリプレース要求と,ローカルバス300aに出力するキャッシュリプレース要求以外のリクエストとに振り分ける。セレクタ142は,グローバルバス301に有効なリクエストがあれば,それをリクエスト処理部114に送り,グローバルバス301に有効なリクエストがなければ,キャッシュリプレース要求をリクエスト処理部114に送る。
アドレスクロスバボード200は,グローバルアービタ210を備える。グローバルアービタ210は,ローカルバス300(a〜d)から入力されたリクエストを,グローバルバス301を介して,すべてのシステムボード100(a〜d)に出力する。
図1において,太線矢印は,キャッシュリプレース要求が伝達されるルートを示す。ここでは,CPU120aがキャッシュリプレース要求を発行するものとする。CPU120aから発行されたキャッシュリプレース要求は,CPUバス130a,CPU発行リクエストキュー112a,ローカルアービタ113,折り返し判定回路141,セレクタ142を介し,リクエスト処理部114に伝えられる。リード要求などのキャッシュリプレース要求以外のリクエストは,ローカルバス300aからグローバルアービタ210,グローバルバス301を介して各システムボード100(a〜d)のセレクタ142に入力される。
キャッシュリプレース要求は,他のリクエストとは異なり,アドレスクロスバボード200を経由しない。キャッシュリプレース要求は,発行元であるCPU120に対応するスヌープタグ111の該当アドレス部分をI(無効状態)にする命令であるため,自システムボード100以外には伝達する必要がない。
図2は,キャッシュリプレース要求折り返し回路の例(1)を説明する図である。ローカルアービタ113から発行されるリクエストの信号は,バリッド信号(V),オペレーションコード(OP),その他アドレス等(ADR等)からなる。折り返し判定回路141は,キャッシュリプレース要求判定回路150,AND回路151,AND回路152から構成される。
キャッシュリプレース要求判定回路150は,ローカルアービタ113から発行されたリクエストのオペレーションコード(OP)でキャッシュリプレース要求か否かを判定する。キャッシュリプレース要求であれば有効信号を送り,キャッシュリプレース要求でなければ無効信号を送る。AND回路151は,キャッシュリプレース要求判定回路150からの信号を反転して受け取り,AND回路152は,キャッシュリプレース要求判定回路150からの信号をそのまま受け取る。
AND回路151は,ローカルアービタ113から発行されたリクエストのバリッド信号(V)が有効であり,かつキャッシュリプレース要求判定回路150からの信号を反転したものが有効であれば,有効信号を発信する。それ以外の場合には無効信号を発信する。AND回路151から発信されたバリッド信号(V)と,ローカルアービタ113から発行されたリクエストのオペレーションコード(OP)およびその他アドレス等(ADR等)とからなるリクエストの信号は,ローカルバス300に出力される。
AND回路152は,ローカルアービタ113から発行されたリクエストのバリッド信号(V)が有効であり,かつキャッシュリプレース要求判定回路150からの信号が有効であれば,有効信号を発信する。それ以外の場合には無効信号を発信する。AND回路152から発信されたバリッド信号(V)と,ローカルアービタ113から発行されたリクエストのオペレーションコード(OP)およびその他アドレス等(ADR等)とからなるリクエストの信号は,セレクタ142に出力される。
セレクタ142は,グローバルアービタ210から出力されたリクエストのバリッド信号(V)が有効“1”であれば,グローバルアービタ210から出力されたリクエスト(キャッシュリプレース要求以外)をリクエスト処理部114に送る。グローバルアービタ210から出力されたリクエストのバリッド信号(V)が無効“0”であれば,すなわちグローバルバス301に空きがあれば,折り返し判定回路141から出力されたリクエスト(キャッシュリプレース要求)をリクエスト処理部114に送る。
図3は,本実施の形態によるキャッシュリプレース要求折り返し処理フローチャート(1)である。ローカルアービタ113がローカルバス300に発行するリクエストを選択すると(ステップS10),キャッシュリプレース要求折り返し回路140は,選択されたリクエストがキャッシュリプレース要求であるか否かを判定する(ステップS11)。選択されたリクエストがキャッシュリプレース要求でなければ,ローカルバス300に選択されたリクエストを送信する(ステップS12)。
ステップS11の判定において,選択されたリクエストがキャッシュリプレース要求であれば,グローバルバス301に有効なリクエストがあるかを判定する(ステップS13)。グローバルバス301に有効なリクエストがなければ,ステップS10で選択されたリクエスト(キャッシュリプレース要求)をセレクタ142で選択する(ステップS14)。
ステップS13の判定において,グローバルバス301に有効なリクエストがあれば,そのグローバルバス301からのリクエストをセレクタ142で選択する(ステップS15)。このとき,ステップS10で選択されたリクエスト(キャッシュリプレース要求)は発行不可となる(ステップS16)。その発行は,次回以降に持ち越される。
図4は,キャッシュリプレース要求をシステムコントローラ内部に折り返すことの効果を説明する図である。図4において,“Read”はリード要求を示し,“Replace”はキャッシュリプレース要求を示す。
図4(A)に示すように,各システムボード100(a〜d)から,それぞれがグローバルバス301で使用率の20%を占めることとなるリード要求が発行されるものとすると,グローバルバス301の使用率は,合計で80%となる。
ここで,さらに各システムボード100(a〜d)から,リード要求と同時に,それぞれがグローバルバス301の使用率の20%を占めるキャッシュリプレース要求が発行されるものとする。システムボード100にキャッシュリプレース要求折り返し回路140がない場合には,キャッシュリプレース要求もリード要求と同様に,ローカルバス300,アドレスクロスバボード200,グローバルバス301へと伝送される。すべてのリクエストが同時にグローバルバス301に流れ込むものとすると,使用率の合計は,
(〔Readの使用率〕+〔Replaceの使用率〕)×〔システムボード数〕
=(20+20)×4=160[%]
となり,グローバルバス301のスループットを超えてしまう。そのため,図4(B)に示すように,リード性能が12.5%まで落ちてしまう。
これに対し,システムボード100にキャッシュリプレース要求折り返し回路140がある場合には,キャッシュリプレース要求がグローバルバス301に流れ込まないので,グローバルバス301の性能は劣化しない。図4(C)に示すように,キャッシュリプレース要求は,システムボード100内で折り返される。グローバルバス301の性能は80%を保ち,空いている20%にシステムボード100内で折り返されたキャッシュリプレース要求をセレクタ142でマージする形になるので,性能劣化は発生しない。
図5は,本実施の形態によるマルチプロセッサシステムの構成例(2)を示す図である。図5の例のマルチプロセッサシステムは,図1に示す構成において,さらにキャッシュリプレース要求折り返し回路140に折り返し部キュー143が設けられた構成となっている。折り返し部キュー143は,ローカルアービタ113から出力されたキャッシュリプレース要求を保持する。
図5において,太線矢印は,キャッシュリプレース要求が伝達されるルートを示す。ここでは,CPU120aがキャッシュリプレース要求を発行するものとする。CPU120aから発行されたキャッシュリプレース要求は,CPUバス130a,CPU発行リクエストキュー112a,ローカルアービタ113,折り返し判定回路141を介し,折り返し部キュー143に保持される。セレクタ142は,グローバルバス301に有効なリクエストがないタイミングで,折り返し部キュー143に保持されたキャッシュリプレース要求をリクエスト処理部114に送り出す。
図6は,キャッシュリプレース要求折り返し回路の例(2)を説明する図である。図6に示す折り返し判定回路141は,図2に示す折り返し判定回路141と同様に動作する。ただし,AND回路152から発信されたバリッド信号(V)と,ローカルアービタ113から発行されたリクエストのオペレーションコード(OP)およびその他アドレス等(ADR等)とからなるリクエストの信号は,折り返し部キュー143に保持される。なお,グローバルアービタ210から出力されたリクエストのバリッド信号(V)が無効“0”であるときに,折り返し部キュー143が空である場合には,キャッシュリプレース要求のリクエストは,折り返し部キュー143で保持されずに,セレクタ144を介してセレクタ142に送られる。
セレクタ142は,グローバルアービタ210から出力されたリクエストのバリッド信号(V)が有効“1”であれば,グローバルアービタ210から出力されたリクエスト(キャッシュリプレース要求以外)をリクエスト処理部114に送る。グローバルアービタ210から出力されたリクエストのバリッド信号(V)が無効“0”であれば,折り返し部キュー143に保持されたリクエスト(キャッシュリプレース要求)をリクエスト処理部114に送る。
図7は,本実施の形態によるキャッシュリプレース要求折り返し処理フローチャート(2)である。なお,ここでは,図6のセレクタ144の機能を,セレクタ142に含めて説明する。
ローカルアービタ113がローカルバス300に発行するリクエストを選択すると(ステップS20),キャッシュリプレース要求折り返し回路140は,選択されたリクエストがキャッシュリプレース要求であるか否かを判定する(ステップS21)。選択されたリクエストがキャッシュリプレース要求でなければ,ローカルバス300に選択されたリクエストを送信する(ステップS22)。
ステップS21の判定において,選択されたリクエストがキャッシュリプレース要求であれば,グローバルバス301に有効なリクエストがあるかを判定する(ステップS23)。グローバルバス301に有効なリクエストがなく,折り返し部キュー143が空であれば(ステップS24でYESの場合),ステップS20で選択されたリクエスト(キャッシュリプレース要求)をセレクタ142で選択し,リクエスト処理部114へ送る(ステップS25)。
折り返し部キュー143が空でなければ(ステップS24でNOの場合),折り返し部キュー143に保持されたリクエスト(キャッシュリプレース要求)をセレクタ142で選択し(ステップS26),その選択されたリクエストを折り返し部キュー143から削除する(ステップS27)。ステップS20で選択されたリクエストを,折り返し部キュー143に保持する(ステップS28)。
ステップS23の判定において,グローバルバス301に有効なリクエストがあれば,そのグローバルバス301からのリクエストをセレクタ142で選択し,リクエスト処理部114へ送る(ステップS29)。このとき,折り返し部キュー143がフルでなければ(ステップS30でNOの場合),ステップS20で選択されたリクエストを,折り返し部キュー143に保持する(ステップS28)。
折り返し部キュー143がフルであれば(ステップS30でYESの場合),ステップS20で選択されたリクエスト(キャッシュリプレース要求)は発行不可となる(ステップS31)。その発行は次回以降に持ち越される。
図8は,キャッシュリプレース要求折り返し回路に折り返し部キューが設けられたことの効果を説明する図である。図8(A)は,キャッシュリプレース要求折り返し回路140に折り返し部キュー143が設けられていない場合の例を示し,図8(B)は,キャッシュリプレース要求折り返し回路140に折り返し部キュー143が設けられた場合の例を示す。図8において,横に並んだ数字は時間の進行を示す。ここでは,時間#1に,キャッシュリプレース要求(Replace1),キャッシュリプレース要求(Replace2),リード要求(Read1)の順に,ローカルアービタ113からリクエストが出力可能な状態となっている。グローバルバス301の“Valid”は,その時間にグローバルバス301に有効なリクエストがあることを示す。
キャッシュリプレース要求折り返し回路140に折り返し部キュー143が設けられていない場合には,キャッシュリプレース要求を一時的に保持することができない。そのため,図8(A)に示すように,キャッシュリプレース要求(Replace1)は,グローバルバス301に有効なリクエストがない時間#4に,はじめてセレクタ142からリクエスト処理部114に送られることとなる。同様に,キャッシュリプレース要求(Replace2)は,時間#6にセレクタ142からリクエスト処理部114に送られる。リード要求(Read1)は,時間#7になって,やっとローカルバス300に出力されることとなる。
このように,キャッシュリプレース要求折り返し回路140に折り返し部キュー143が設けられていない場合には,リード要求の発行が遅れてしまう。
これに対してキャッシュリプレース要求折り返し回路140に折り返し部キュー143が設けられた場合には,図8(B)に示すように,キャッシュリプレース要求(Replace1)は,グローバルバス301に有効なリクエストがあるかないかに関係なく,時間#2に折り返し部キュー143に保持される。折り返し部キュー143に保持されたキャッシュリプレース要求(Replace1)は,グローバルバス301に有効なリクエストがない時間#4に,セレクタ142からリクエスト処理部114に送られることとなる。同様に,キャッシュリプレース要求(Replace2)は,時間#3に折り返し部キュー143に保持され,時間#6にセレクタ142からリクエスト処理部114に送られる。リード要求(Read1)は,時間#4にはローカルバス300に出力されることとなる。
このように,キャッシュリプレース要求折り返し回路140に折り返し部キュー143を設けることにより,ローカルアービタ113でキャッシュリプレース要求の発行を待つ必要がないので,リード要求の発行を早めることが可能となる。
ここまでは,折り返し部キュー143が上書き機能を持たないことを前提に説明したが,折り返し部キュー143が上書き機能を持つことも可能である。図5,図6に示す構成において,折り返し部キュー143のエントリがフルのときに新たにローカルアービタ113からキャッシュリプレース要求が発行されると,折り返し部キュー143では,1エントリのキャッシュリプレース要求が削除され,新たに発行されたキャッシュリプレース要求が保持される。折り返し部キュー143に上書き機能を持たせることで,折り返し部キュー143のエントリ数を少なくすることができる。
図9は,本実施の形態によるキャッシュリプレース要求折り返し処理フローチャート(3)である。なお,ここでは,図6のセレクタ144の機能を,セレクタ142に含めて説明する。
ローカルアービタ113がローカルバス300に発行するリクエストを選択すると(ステップS40),キャッシュリプレース要求折り返し回路140は,選択されたリクエストがキャッシュリプレース要求であるか否かを判定する(ステップS41)。選択されたリクエストがキャッシュリプレース要求でなければ,ローカルバス300に選択されたリクエストを送信する(ステップS42)。
ステップS41の判定において,選択されたリクエストがキャッシュリプレース要求であれば,グローバルバス301に有効なリクエストがあるかを判定する(ステップS43)。グローバルバス301に有効なリクエストがなく,折り返し部キュー143が空であれば(ステップS44でYESの場合),ステップS40で選択されたリクエスト(キャッシュリプレース要求)をセレクタ142で選択し,リクエスト処理部114へ送る(ステップS45)。
折り返し部キュー143が空でなければ(ステップS44でNOの場合),折り返し部キュー143に保持されたリクエスト(キャッシュリプレース要求)をセレクタ142で選択してリクエスト処理部114へ送り(ステップS46),その選択されたリクエストを折り返し部キュー143から削除する(ステップS47)。ステップS40で選択されたリクエストを,折り返し部キュー143に保持する(ステップS48)。
グローバルバス301に有効なリクエストがあれば(ステップS43でYESの場合),そのグローバルバス301からのリクエストをセレクタ142で選択し,リクエスト処理部114へ送る(ステップS49)。このとき,折り返し部キュー143がフルでなければ(ステップS50でNOの場合),ステップS40で選択されたリクエストを,折り返し部キュー143に保持する(ステップS48)。
折り返し部キュー143がフルであれば(ステップS50でYESの場合),折り返し部キュー143の1エントリのリクエストを削除し(ステップS51),ステップS40で選択されたリクエストを,折り返し部キュー143に保持する(ステップS48)。
図10は,折り返し部キューが上書き機能を持つ場合の効果を説明する図である。図10(A)は,折り返し部キュー143が上書き機能を持たない場合の例を示し,図10(B)は,折り返し部キュー143が上書き機能を持つ場合の例を示す。図10において,横に並んだ数字は時間の進行を示す。ここでは,時間#1に,キャッシュリプレース要求(Replace1),キャッシュリプレース要求(Replace2),キャッシュリプレース要求(Replace3),リード要求(Read1)の順に,ローカルアービタ113からリクエストが出力可能な状態となっている。グローバルバス301の“Valid”は,その時間にグローバルバス301に有効なリクエストがあることを示す。なお,折り返し部キュー143のエントリ数は,2個であるものとする。
折り返し部キュー143が上書き機能を持たない場合には,図10(A)に示すように,キャッシュリプレース要求(Replace1)は,時間#2に折り返し部キュー143に保持され,同様に,キャッシュリプレース要求(Replace2)は,時間#3に折り返し部キュー143に保持される。
ここで,折り返し部キュー143のエントリに空きがないため,キャッシュリプレース要求(Replace3)を,ローカルアービタ113から出力することができない。折り返し部キュー143に保持されたキャッシュリプレース要求(Replace1)は,グローバルバス301に有効なリクエストがない時間#6に,セレクタ142からリクエスト処理部114に送られることとなる。時間#7になってやっとキャッシュリプレース要求(Replace3)が折り返し部キュー143に保持され,リード要求(Read1)は,時間#8にローカルバス300に出力されることとなる。
このように,折り返し部キュー143が上書き機能を持たない場合には,折り返し部キュー143に空きがなくなったときに,リード要求の発行が遅れてしまう。
これに対して折り返し部キュー143が上書き機能を持つ場合には,図10(B)に示すように,折り返し部キュー143に空きがなくても,キャッシュリプレース要求(Replace3)を,時間#4に折り返し部キュー143に上書きで保持することができる。このとき,キャッシュリプレース要求(Replace1)が上書きにより消滅するが,システムがEviction機能を実装していれば問題はない。上書きされたキャッシュリプレース要求(Replace1)に対応するリード要求は,キャッシュリプレース要求なしのリード要求として扱われる。リード要求(Read1)は,時間#5にはローカルバス300に出力されることとなる。
このように,折り返し部キュー143が上書き機能を持つ場合には,折り返し部キュー143に空きがなくなったときでも,リード要求の発行を早めることが可能となる。また,折り返し部キュー143が上書き機能を持つ場合には,折り返し部キュー143に多くのエントリを用意しなくても,リードの発行能力は落ちない。逆に折り返し部キュー143のエントリ数が多くなるとそこでの滞在時間が延びてしまうため,キャッシュリプレース要求が,グローバルバス301経由の親リード要求より後に処理されるようになってしまうことも考えられる。そのため,折り返し部キュー143のエントリ数は,より少ないほうが望ましい。
以上,本発明の実施の形態について説明したが,本発明はこれに限られるものではない。例えば,本実施の形態では,折り返し部キュー143がフルのときに新たにキャッシュリプレース要求を発行された場合に,折り返し部キュー143に保持されたキャッシュリプレース要求を発行されたキャッシュリプレース要求で上書きしているが,新たに発行されたキャッシュリプレース要求の方を破棄するようにしてもよい。
本実施の形態によるマルチプロセッサシステムの構成例(1)を示す図である。 キャッシュリプレース要求折り返し回路の例(1)を説明する図である。 本実施の形態によるキャッシュリプレース要求折り返し処理フローチャート(1)である。 キャッシュリプレース要求をシステムコントローラ内部に折り返すことの効果を説明する図である。 本実施の形態によるマルチプロセッサシステムの構成例(2)を示す図である。 キャッシュリプレース要求折り返し回路の例(2)を説明する図である。 本実施の形態によるキャッシュリプレース要求折り返し処理フローチャート(2)である。 キャッシュリプレース要求折り返し回路に折り返し部キューが設けられたことの効果を説明する図である。 本実施の形態によるキャッシュリプレース要求折り返し処理フローチャート(3)である。 折り返し部キューが上書き機能を持つ場合の効果を説明する図である。 マルチプロセッサシステムの構成例を示す図である。 キャッシュリプレース要求への対応の例を説明する図である。 Evictionを説明する図である。
符号の説明
100 システムボード
110 システムコントローラ
112 CPU発行リクエストキュー
113 ローカルアービタ
114 リクエスト処理部
120 CPU
121 キャッシュメモリ
122 キャッシュタグ
130 CPUバス
140 キャッシュリプレース要求折り返し回路
141 折り返し判定回路
142 セレクタ
143 折り返し部キュー
200 アドレスクロスバボード
210 グローバルアービタ
300 ローカルバス
301 グローバルバス

Claims (9)

  1. CPUとそのCPUから発行されたリクエストに対する処理を行うリクエスト処理部とをそれぞれ有する複数のシステムボードと,各システムボードからのリクエストをアービトレーションするアドレスクロスバボードとを備えるマルチプロセッサシステムであって,
    前記システムボードは,
    自システムボードのCPUから発行されたリクエストがキャッシュリプレース要求であるか否かを判定し,キャッシュリプレース要求でなければそのリクエストを前記アドレスクロスバボードに送り,キャッシュリプレース要求であればそのリクエストを自システムボード内部から前記アドレスクロスバボードに送ることなく,当該システムボード内にある前記リクエスト処理部に送るキャッシュリプレース要求折り返し回路を備える
    ことを特徴とするマルチプロセッサシステム。
  2. 請求項1に記載されたマルチプロセッサシステムであって,
    前記キャッシュリプレース要求折り返し回路は,
    自システムボードのCPUから発行されたキャッシュリプレース要求のリクエストを保持する折り返し部キューを備える
    ことを特徴とするマルチプロセッサシステム。
  3. 請求項2に記載されたマルチプロセッサシステムであって,
    前記キャッシュリプレース要求折り返し回路は,前記折り返し部キューの全エントリにすでにキャッシュリプレース要求のリクエストが保持されているときに,自システムボードのCPUから新たにキャッシュリプレース要求のリクエストが発行された場合に,前記折り返し部キューのいずれかのエントリに保持されたキャッシュリプレース要求のリクエストを,新たに発行されたキャッシュリプレース要求のリクエストで上書きする
    ことを特徴とするマルチプロセッサシステム。
  4. CPUとそのCPUから発行されたリクエストに対する処理を行うリクエスト処理部とをそれぞれ有する複数のシステムボードと,各システムボードからのリクエストをアービトレーションするアドレスクロスバボードとを備えるマルチプロセッサシステムにおけるシステムボードであって,
    自システムボードのCPUから発行されたリクエストがキャッシュリプレース要求であるか否かを判定し,キャッシュリプレース要求でなければそのリクエストを前記アドレスクロスバボードに送り,キャッシュリプレース要求であればそのリクエストを自システムボード内部から前記アドレスクロスバボードに送ることなく,当該システムボード内にある前記リクエスト処理部に送るキャッシュリプレース要求折り返し回路を備える
    ことを特徴とするシステムボード。
  5. 請求項4に記載されたシステムボードであって,
    前記キャッシュリプレース要求折り返し回路は,
    自システムボードのCPUから発行されたキャッシュリプレース要求のリクエストを保持する折り返し部キューを備える
    ことを特徴とするシステムボード。
  6. 請求項5に記載されたシステムボードであって,
    前記キャッシュリプレース要求折り返し回路は,前記折り返し部キューの全エントリにすでにキャッシュリプレース要求のリクエストが保持されているときに,自システムボードのCPUから新たにキャッシュリプレース要求のリクエストが発行された場合に,前記折り返し部キューのいずれかのエントリに保持されたキャッシュリプレース要求のリクエストを,新たに発行されたキャッシュリプレース要求のリクエストで上書きする
    ことを特徴とするシステムボード。
  7. CPUとそのCPUから発行されたリクエストに対する処理を行うリクエスト処理部とをそれぞれ有する複数のシステムボードと,各システムボードからのリクエストをアービトレーションするアドレスクロスバボードとを備えるマルチプロセッサシステムによるキャッシュリプレース要求処理方法であって,
    前記システムボードが,自システムボードのCPUから発行されたリクエストがキャッシュリプレース要求であるか否かを判定する過程と,
    前記システムボードが,前記発行されたリクエストがキャッシュリプレース要求でなければ,前記発行されたリクエストを前記アドレスクロスバボードに送る過程と,
    前記システムボードが,前記発行されたリクエストがキャッシュリプレース要求であれば,前記発行されたリクエストを自システムボード内部から前記アドレスクロスバボードに送ることなく,当該システムボード内にある前記リクエスト処理部に送る過程とを有する
    ことを特徴とするキャッシュリプレース要求処理方法。
  8. 請求項7に記載されたキャッシュリプレース要求処理方法であって,
    前記システムボードが,前記発行されたリクエストがキャッシュリプレース要求であれば,前記発行されたリクエストを,前記リクエスト処理部に送る前に,前記システムボードが備える折り返し部キューに保持する過程を有する
    ことを特徴とするキャッシュリプレース要求処理方法。
  9. 請求項8に記載されたキャッシュリプレース要求処理方法であって,
    前記発行されたリクエストを前記折り返し部キューに保持する過程では,前記折り返し部キューの全エントリにすでにキャッシュリプレース要求のリクエストが保持されているときに,前記折り返し部キューのいずれかのエントリに保持されたキャッシュリプレース要求のリクエストを,前記発行されたキャッシュリプレース要求のリクエストで上書きする
    ことを特徴とするキャッシュリプレース要求処理方法。
JP2006222990A 2006-08-18 2006-08-18 マルチプロセッサシステム,システムボードおよびキャッシュリプレース要求処理方法 Active JP4912789B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2006222990A JP4912789B2 (ja) 2006-08-18 2006-08-18 マルチプロセッサシステム,システムボードおよびキャッシュリプレース要求処理方法
KR1020070018303A KR100865102B1 (ko) 2006-08-18 2007-02-23 멀티프로세서 시스템, 시스템 보드 및 캐시 대체 요구 처리방법
US11/790,265 US8090912B2 (en) 2006-08-18 2007-04-24 Multiprocessor system, system board, and cache replacement request handling method
EP07107214A EP1895420B1 (en) 2006-08-18 2007-04-30 Multiprocessor system, system board, and cache replacement request handling method
DE602007012028T DE602007012028D1 (de) 2006-08-18 2007-04-30 Multiprozessorsystem, Systemplatte und Verfahren zur Handhabung von Anforderungen zum Austauschen des Cachespeichers
CNB2007101039687A CN100538665C (zh) 2006-08-18 2007-05-17 多处理器系统、系统板和高速缓存替换请求处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006222990A JP4912789B2 (ja) 2006-08-18 2006-08-18 マルチプロセッサシステム,システムボードおよびキャッシュリプレース要求処理方法

Publications (2)

Publication Number Publication Date
JP2008046949A JP2008046949A (ja) 2008-02-28
JP4912789B2 true JP4912789B2 (ja) 2012-04-11

Family

ID=38691924

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006222990A Active JP4912789B2 (ja) 2006-08-18 2006-08-18 マルチプロセッサシステム,システムボードおよびキャッシュリプレース要求処理方法

Country Status (6)

Country Link
US (1) US8090912B2 (ja)
EP (1) EP1895420B1 (ja)
JP (1) JP4912789B2 (ja)
KR (1) KR100865102B1 (ja)
CN (1) CN100538665C (ja)
DE (1) DE602007012028D1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070005725A1 (en) * 2005-06-30 2007-01-04 Morris Robert P Method and apparatus for browsing network resources using an asynchronous communications protocol
JP5011885B2 (ja) * 2006-08-18 2012-08-29 富士通株式会社 スヌープタグの制御装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4695943A (en) * 1984-09-27 1987-09-22 Honeywell Information Systems Inc. Multiprocessor shared pipeline cache memory with split cycle and concurrent utilization
JP3078303B2 (ja) * 1990-07-12 2000-08-21 沖電気工業株式会社 キャッシュメモリ制御回路
JPH0683712A (ja) * 1992-09-03 1994-03-25 Nec Ic Microcomput Syst Ltd マイクロプロセッサ
US5875472A (en) * 1997-01-29 1999-02-23 Unisys Corporation Address conflict detection system employing address indirection for use in a high-speed multi-processor system
US6112283A (en) 1998-08-06 2000-08-29 Intel Corporation Out-of-order snooping for multiprocessor computer systems
US6615323B1 (en) * 1999-09-02 2003-09-02 Thomas Albert Petersen Optimizing pipelined snoop processing
KR20020048513A (ko) * 2000-12-18 2002-06-24 구자홍 캐시 메모리의 데이터 제어 회로
US6901485B2 (en) * 2001-06-21 2005-05-31 International Business Machines Corporation Memory directory management in a multi-node computer system
JP2003030048A (ja) * 2001-07-18 2003-01-31 Hitachi Ltd マルチプロセッサシステム
US7114043B2 (en) 2002-05-15 2006-09-26 Broadcom Corporation Ambiguous virtual channels
US7290093B2 (en) * 2003-01-07 2007-10-30 Intel Corporation Cache memory to support a processor's power mode of operation
US7194587B2 (en) * 2003-04-24 2007-03-20 International Business Machines Corp. Localized cache block flush instruction
JP4522817B2 (ja) * 2004-10-25 2010-08-11 富士通株式会社 システム制御装置、情報処理装置及び情報処理装置の制御方法。
JP4882233B2 (ja) * 2005-01-24 2012-02-22 富士通株式会社 メモリ制御装置及び制御方法
US20060179174A1 (en) * 2005-02-02 2006-08-10 Bockhaus John W Method and system for preventing cache lines from being flushed until data stored therein is used
JP3843116B2 (ja) * 2005-05-26 2006-11-08 株式会社日立製作所 ネットワーク

Also Published As

Publication number Publication date
JP2008046949A (ja) 2008-02-28
US20080046656A1 (en) 2008-02-21
EP1895420A1 (en) 2008-03-05
CN101127006A (zh) 2008-02-20
KR20080016419A (ko) 2008-02-21
US8090912B2 (en) 2012-01-03
EP1895420B1 (en) 2011-01-19
KR100865102B1 (ko) 2008-10-24
DE602007012028D1 (de) 2011-03-03
CN100538665C (zh) 2009-09-09

Similar Documents

Publication Publication Date Title
US6351784B1 (en) System for determining whether a subsequent transaction may be allowed or must be allowed or must not be allowed to bypass a preceding transaction
US7120755B2 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
US9471532B2 (en) Remote core operations in a multi-core computer
JP2008117388A (ja) キャッシュ及びキャッシュバイパス機能法
EP1650667B1 (en) Apparatus for controlling a multi-processor system, scalable node, scalable multi-processor system, and method of controlling a multi-processor system
US20060053255A1 (en) Apparatus and method for retrieving data from a data storage system
JP2008046958A (ja) システムコントローラ,同一アドレスリクエストキューイング防止方法および情報処理装置
JP5505516B2 (ja) 情報処理システムおよび情報送信方法
JP5360061B2 (ja) マルチプロセッサシステム及びその制御方法
US6587924B2 (en) Scarfing within a hierarchical memory architecture
WO2007096979A1 (ja) 情報処理装置およびデータ転送方法
JP5499987B2 (ja) 共有キャッシュメモリ装置
KR100280862B1 (ko) 명령처리추적방법및장치
JPH10232828A (ja) 連想式キャッシュ
US6347349B1 (en) System for determining whether a subsequent transaction may be allowed or must be allowed or must not be allowed to bypass a preceding transaction
JP2010244580A (ja) 外部デバイスアクセス装置
JP4912789B2 (ja) マルチプロセッサシステム,システムボードおよびキャッシュリプレース要求処理方法
JP4912790B2 (ja) システムコントローラ,スヌープタグ更新方法および情報処理装置
CN114761932A (zh) 扩展对某些请求的一致性保护的高速缓存窥探模式
JP2001109662A (ja) キャッシュ装置及び制御方法
JP5168800B2 (ja) マルチプロセッサシステム
KR100900012B1 (ko) 정보 처리 시스템, 정보 처리 기판, 및 캐시 태그 및스누프 태그의 갱신 방법
JP2004280677A (ja) バス制御装置及びそのデータアクセス制御方法
JP2000047939A (ja) バスブリッジ回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090409

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111227

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4912789

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150127

Year of fee payment: 3