JP5568939B2 - 演算処理装置及び制御方法 - Google Patents

演算処理装置及び制御方法 Download PDF

Info

Publication number
JP5568939B2
JP5568939B2 JP2009234391A JP2009234391A JP5568939B2 JP 5568939 B2 JP5568939 B2 JP 5568939B2 JP 2009234391 A JP2009234391 A JP 2009234391A JP 2009234391 A JP2009234391 A JP 2009234391A JP 5568939 B2 JP5568939 B2 JP 5568939B2
Authority
JP
Japan
Prior art keywords
data
arithmetic processing
processing unit
signal
address
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
JP2009234391A
Other languages
English (en)
Other versions
JP2011081662A (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 JP2009234391A priority Critical patent/JP5568939B2/ja
Priority to US12/899,186 priority patent/US20110087841A1/en
Priority to EP10187024A priority patent/EP2309394A3/en
Publication of JP2011081662A publication Critical patent/JP2011081662A/ja
Application granted granted Critical
Publication of JP5568939B2 publication Critical patent/JP5568939B2/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/0817Cache consistency protocols using directory methods
    • 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache

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)
  • Multi Processors (AREA)

Description

本発明は、演算処理装置及び制御方法に関する。
近年、命令実行部及びL1キャッシュ(Level−1 Cache Memory):一次キャッシュメモリ)を組み合わせた演算処理部であるプロセッサコアを、複数搭載する演算処理装置としてのCentral Processing Unit(CPU)が使用されている。そのようなCPUは、マルチコアプロセッサと呼ばれる。搭載するプロセッサコアの数を増やすことで、マルチコアプロセッサ全体の処理速度は、向上する。
一方で、マルチコアプロセッサでは、複数のプロセッサコアが、同時に同じデータに対する演算処理を実行し演算結果をメモリに格納しようとする場合がある。各プロセッサコアが、同じデータに対して異なる演算処理を同時に変更すると、データの不一致が生じる。そのため、何れかのプロセッサコアがデータを変更する場合、他のプロセッサコアによるデータの変更を抑止し、且つ他のプロセッサコアに変更されたデータを反映する動作が行われる。このような、各プロセッサコアが保持するデータの不一致を防止する「メモリ一貫性(キャッシュコヒーレンシ:cache coherency)」が重要となっている。
メモリ一貫性の維持は、複数のプロセッサコアの各々が保持するL1キャッシュと、L1キャッシュに保持されたデータを包含するL2キャッシュ(Level−2 Cache Memory:2次キャッシュメモリ)との間で行う必要がある。
メモリ一貫性を維持するために、キャッシュメモリ及びメインメモリで使用されるプロトコルとして、例えば、MESIプロトコルがある。MESIプロトコルによれば、キャッシュメモリはライン毎に、「M(Modified:変更)」、「E(Exclusive:排他)」、「S(Shared:共有)」、「I(Invalidated:無効)」の4つの状態情報のうちの1つを取ることができる。状態情報を取得することで、どのプロセッサコアに最新のデータが存在するかが明確になる。そして、各プロセッサコアが必要なときに最新のデータを取得できるように、各キャッシュ自身の状態情報を遷移する。
マルチコアプロセッサではないが、従来、複数のCPUを制御するシステムコントローラ(SC:System Controller)が知られている。また、システムコントローラは、メインメモリを有し、メインメモリへメモリ制御信号を供給するメモリコントローラとして動作する。システムコントローラは、システムコントローラに接続された複数のCPUの各々が有するキャッシュメモリと、システムコントローラが有するメインメモリとの間の「メモリ一貫性」制御を行う。
システムコントローラは、読み出し要求をあるCPUから受け取ると、読み出し対象となるデータの状態を確認する。読み出し対象のデータの状態が、「S」状態(共有状態)の場合、システムコントローラは、他のCPUに対して「S」状態のデータの読み出す動作を行わず、システムコントローラのメインメモリで保持された対象データを、読み出し元のCPUに供給する処理を行う。このようにすることで、CPUとシステムコントローラと間の不要なデータ転送動作を少なくすることが出来る。
特開平9−22383号公報
しかしながら、システムコントローラは、「E」状態(排他状態)のデータに対してCPUから読み出し要求があった場合、「E」状態のデータを排他的に占有するCPUに対して、読み出し要求を行う。そして、システムコントローラは、読み出した「E」状態のデータを、要求を行ったCPUに供給する。
開示の演算処理装置は、要求先の演算処理部のL1キャッシュから、L2キャッシュへの不要なデータ転送動作を無くすことを目的とする。
開示の演算処理装置は、第1の記憶部を有し、演算処理を行う第1の演算処理部と、演算処理を行う第2の演算処理部と、第1の記憶部が保持するデータを包含すると共に、第1の記憶部に保持されたデータの状態を特定する状態情報を保持する第2の記憶部と、第2の演算処理部から第1アドレスのデータに対する第1のアクセス要求を受け取ると、第1アドレスのデータの第1の状態情報が、第1アドレスのデータが第1の記憶部に排他又は所有状態で保持されることを示す場合、第1アドレスのデータの読み出しを要求する要求信号を第1の演算処理部に出力するとともに、第1の演算処理部から第1アドレスのデータが変更されていないことを示すデータ未変更通知信号を受け取ったとき、第2の記憶部に包含された第1アドレスのデータに対する第2の演算処理部からのアクセスを許可する制御部と、を有する。
開示の演算処理装置は、要求先の演算処理部のL1キャッシュから、L2キャッシュへの不要なデータ転送動作を無くすという効果を奏する。
演算処理装置の構成の一例を示す図である。 プロセッサコアの一例を示す図である。 L1キャッシュの状態情報の状態遷移の一例を示す図である。 プロセッサコア及びL2キャッシュコントローラ間で送信される信号と、状態情報との関係の一例を示す図である。 L1キャッシュRAMの一例を示す図である。 L1キャッシュのタグRAMのデータ構造、及びTLBのデータ構造の一例を示す図である。 L2キャッシュRAMの一例を示す図である。 L2キャッシュのタグRAMのデータ構造の一例を示す図である。 L2キャッシュの状態情報の状態遷移の一例を示す図である。 コアデータ要求制御部の一例を示す図である。 コアデータ応答制御部の第1の実施例を示す図である。 コアデータ応答制御部の第2の実施例を示す図である。 多重化転送回路の一例を示す図である。 演算処理装置の各機能部の配置位置の一例を示す図である。 演算処理装置によるデータ処理の一例を示すフローチャートである。 演算処理装置によるデータ処理の一例を示すフローチャートである。 演算処理装置によるデータ処理の一例を示すフローチャートである。
以下、図面を参照して、演算処理装置の一実施形態を説明する。図1は、演算処理装置の構成の一例を示す図である。図1に示す演算処理装置1は、プロセッサコア10〜40、L2キャッシュ本体の制御を行うL2キャッシュコントローラ120、L2キャッシュ本体であるL2キャッシュRAM(Random Access Memory)140、及びメモリアクセス制御部160を有する。演算処理装置1は、システムバス220を介して、メインメモリ240及び外部記憶装置260に接続される。L2キャッシュコントローラ120及びL2キャッシュRAM140は、L2キャッシュ100と称される。
プロセッサコア10〜40のそれぞれは、命令制御部、命令実行部、L1キャッシュコントローラ、及びL1キャッシュRAMを有する。プロセッサコア10〜40は、L1キャッシュRAMから命令を読み出して、命令を実行する。プロセッサコア10〜40の一例は、図2を用いて後述される。L1キャッシュコントローラは、MESIプロトコルに従って、L1キャッシュRAMに記憶されたデータにアクセスする。MESIプロトコルに従うL1キャッシュコントローラの動作は、図3を用いて後述される。
L2キャッシュコントローラ120は、L1キャッシュRAM及びメインメモリ240へのデータの読み出し(ロード)要求又は書き込み(ストア)要求を行い、又は、L2キャッシュRAM140へのデータのロード又はストアを行う。L2キャッシュコントローラ120は、MESIプロトコルに従って、L1キャッシュ又はメインメモリ240に記憶されたデータと、L2キャッシュに保持されたデータとの整合性を維持するように、データのロード又はストアを行う。
L2キャッシュRAM140は、メインメモリ240が記憶するデータの一部を保持する。また、L2キャッシュRAM140は、L1キャッシュが保持するデータを包含する。L2キャッシュコントローラ120及びL2キャッシュRAM140の一例は、図5を用いて後述される。MESIプロトコルに従うL2キャッシュコントローラ120の動作は、図9を用いて後述される。
メモリアクセス制御部160は、メインメモリ240からのデータのロード、メインメモリ240へのデータのストア、及びメインメモリ240のリフレッシュなどの動作を制御する回路である。メモリアクセス制御部160は、L2キャッシュコントローラ120から受け取ったロード命令又はストア命令に従って、メインメモリ240に対して、ロード又はストアを行う。
システムバス220は、演算処理装置1と、外部記憶装置260とを繋ぐバスである。システムバス220は、AGP(Accelerated Graphics Port)又はPCI(Peripheral Component Interconnect) Expressなどの規格に従って機能する回路である。
メインメモリ240は、例えば、DRAM(Dynamic Random Access Memory)である。外部記憶装置260は、磁気ディスクのディスクアレイ、又はフラッシュメモリを用いたSSD(Solid State Drive)等である。
図2は、プロセッサコアの一例を示した図である。図2を用いて、プロセッサコア10を、L2キャッシュコントローラにキャッシュデータを要求する「要求元プロセッサコア」として説明し、プロセッサコア20を、L2キャッシュコントローラにコアデータを要求される「要求先プロセッサコア」として説明する。
プロセッサコア10は、命令制御部(IU:Instruction Unit)12、命令実行部(EU:Execution Unit)14、L1キャッシュコントローラ16、L1キャッシュRAM18を有する。L1キャッシュコントローラ16は、コアデータ応答制御部17を有する。
プロセッサコア20は、IU12a、EU14a、L1キャッシュコントローラ16a、L1キャッシュRAM18aを有する。プロセッサコア20の有するこれらの構成要素は、上記したプロセッサコア10の同じ名称の構成要素と同機能を有する。
命令制御部12は、L1キャッシュRAM18から読み出した命令を、デコードして、デコード命令及び命令実行に使用されるオペランドを格納するソースレジスタ及び命令実行結果を格納するディスティネーションレジスタを特定するレジスタアドレスを「演算制御信号」として、命令実行部14に供給する。デコードする命令は、例えば、L1キャッシュRAM18へのロード命令、ストア命令等である。命令制御部12は、データ要求信号をL1キャッシュコントローラ16に供給することで、L1キャッシュRAM18から命令を読み出す。
命令実行部14は、レジスタアドレスで特定される命令実行部14の内部にあるレジスタからデータを取り出し、デコードした命令に従って演算する。命令実行部14は、デコードされた命令に従って、「データ要求信号」として、ロード命令又はストア命令を、L1キャッシュコントローラ16に供給する。L1キャッシュコントローラ16は、ロード命令に従って、データを命令実行部14に供給する。命令実行部14は、命令の実行を終了すると、次の演算制御信号を受け取るために、演算完了信号を命令制御部12に供給する。
要求元プロセッサコアであるプロセッサコア10のL1キャッシュコントローラ16は、キャッシュデータ要求信号CRQを、信号線w16−3を介してL2キャッシュコントローラ120に供給する。そして、プロセッサコア10は、完了通知であるキャッシュデータ応答信号CRS、及び、データ又は命令を、信号線w16−4を介してL2キャッシュコントローラ120から受け取る。キャッシュデータ要求信号CRQの詳細例は、図4を用いて後述される。
要求先プロセッサコアであるプロセッサコア20のL1キャッシュコントローラ16aは、コアデータ要求信号CORQを、信号線w26−2を介してL2キャッシュコントローラ120から受け取る。そして、プロセッサコア20は、コアデータ応答信号CORS、及び要求対象のデータをL2キャッシュコントローラ120に送信する。コアデータ要求信号CORQの詳細例は、図4を用いて後述される。
コアデータ応答制御部17は、L2キャッシュコントローラ120から受け取ったコアデータ要求信号CORQから、コアデータ応答信号CORSを生成する。コアデータ応答制御部17の一例は、図11又は図12を用いて後述される。コアデータ要求信号CORQ及びコアデータ応答信号CORSの詳細例は、図4を用いて後述される。
L1キャッシュRAM18は、命令及び/又はデータを記憶し、メインメモリと比して高速な読み出し又は書き込み動作可能な記憶装置である。L1キャッシュRAM18の一例は、図5を用いて後述される。
L2キャッシュコントローラ120は、キャッシュデータ要求信号CRQから、コアデータ要求信号CORQを生成するコアデータ応答制御部127を有する。コアデータ応答制御部127の一例は、図10を用いて後述される。
多重化転送回路130は、プロセッサコア10又は20から受け取った複数のコアデータ応答信号CORSを多重化して、多重化した信号を、プロセッサコア10、20が共通して利用する信号線w26−3を介して送信する回路である。多重化転送回路130は、プロセッサコア10から供給されるコアデータ応答信号CORS、並びにデータを信号線w16−1から受け取り、他コアであるプロセッサコア20からコアデータ応答信号CORS、並びにデータを信号線w26−1から受け取る。
そして、コアデータ応答信号CORSを多重化することで、信号線w26−3の本数を少なくすることが出来る。キャッシュデータ要求信号CRQ、及びコアデータ要求信号CORQと異なり、コアデータ応答信号CORSは、データを転送する信号であるため、ビット幅が大きい。そのため、多重化転送回路130が、多重化により信号線w26−1又は信号線w26−2を選択することで、信号線w26−3の本数の増加をなくすことが出来る。多重化転送回路130の実施例は、図13を用いて後述される。
図3は、L1キャッシュの状態情報の状態遷移の一例を示す図である。状態情報は、「M(Modified:変更状態)」、「E(Exclusive:排他状態)」、「S(Shared:共有状態)」、「I(Invalidated:無効状態)」の4つの状態のいずれかにある。なお、状態情報の例は、MESIプロトコルに基づいて説明するが、本実施形態で使用可能な状態情報は、MESIプロトコルに限定されず、MESIプロトコルに「O(Owned:所有状態)」の状態を加えたMOESIプロトコルであっても良い。または、MESIプロトコルの「E」の代わりに「O」を用いたMOSIプロトコルであっても良い。そのため、MOESIプロトコル又はMOSIプロトコルが使用される場合は、「E」の代わりに「O」が使用される。よって、そのような場合、下記に示す「E」の説明は、「O」の説明として理解しても良い。
「I」は、L1キャッシュRAM18のラインは、無効状態になっていることを示す。タグの初期状態は「I」であり、データRAMのラインには「0」が登録される。
複数のプロセッサコアの各々が有するL1キャッシュRAMのラインと、メインメモリ240のラインとは、図6で後述されるように物理アドレスにより識別される。「S」は、メインメモリ240のラインのデータと、メインメモリ240のラインのデータと同じ物理アドレスにより識別され、且つ複数のプロセッサコアの各々が有するL1キャッシュRAMのラインのデータと、が全て一致する状態を示す。
「E」は、「E」として登録されているL1キャッシュRAM18のラインのデータと同じ物理アドレスにより識別されるメインメモリ240に記憶されるラインのデータとが一致するが、他のL1キャッシュRAMのラインのデータとは一致しない状態を示す。「E」として登録されているデータに対して、プロセッサコアは、他プロセッサコアに対して制御信号を送信することなくデータを変更することが可能である。このとき、プロセッサコアは、データ変更と同時に、データの状態情報を「E」から「M」へ変更し(状態遷移a7)、他プロセッサコアの状態情報を「I」にするよう要求する。
「M」は、「M」として登録されている1つのプロセッサコアが有するL1キャッシュRAM18のラインだけにデータが存在することを示す。言い換えれば、「M」として登録されているL1キャッシュRAM18のデータは、他のプロセッサコアが有するL1キャッシュRAM又はメインメモリ240に保持された同物理アドレスのデータから変更されていることを示す。
「M」から「I」への状態遷移a1、「S」から「I」への状態遷移a2、及び「E」から「I」への状態遷移a3は、他のデータをキャッシュメモリに登録するために、ラインを無効状態にすることにより空きを作成する状態遷移である。
「I」から「S」への状態遷移a4は、プロセッサコアが、他のキャッシュメモリ上にあるデータを登録したため、データの状態情報が「I」から「S」に遷移したことを示す。
「E」から「S」への状態遷移a5、及び「M」から「S」への状態遷移a6は、他のプロセッサコアが、L1キャッシュRAM18のデータを要求したため、ラインの状態情報が「E」又は「M」から、「S」に遷移したことを示す。その結果、「S」として登録されているラインの物理アドレスにより識別されるL1キャッシュRAMのラインのデータ及びメインメモリ240のラインのデータは、共有状態になる。
「E」から「M」への状態遷移a7は、プロセッサコアが、L1キャッシュRAM18のデータを書き換えたため、データの状態情報が「E」から「M」に遷移したことを示す。
「I」から「E」への状態遷移a8は、プロセッサコアが、他のプロセッサコアが保持していないデータをL1キャッシュRAM18に登録したため、データの状態情報が「I」から「E」に遷移したことを示す。
「S」から「E」への状態遷移a9は、プロセッサコアが、他のプロセッサコアに対してデータの無効化を要求したため、データの状態情報が「S」から「E」に遷移したことを示す。
図4は、プロセッサコア及びL2キャッシュコントローラ間で送信される信号と、状態情報との関係の一例を示した図である。図4に示す表500は、図2を用いて説明したキャッシュデータ要求信号CRQの種類と、コアデータ要求信号CORQの種類と、コアデータ応答信号CORSの種類と、L1キャッシュの状態情報と、L2キャッシュの状態情報との関係が説明される。
列501には、行を特定する行番号が示される。列502には、要求元プロセッサコアが出力するキャッシュデータ要求信号CRQの種類が示される。キャッシュデータ要求信号CRQは、ロード命令LDを示す信号であるロード信号LDs、ストア命令STを示す信号であるストア信号STs、及びロードストア命令LDSを特定する信号であるロードストア信号LDSsのいずれかである。
ストア命令STは、要求元プロセッサコアがデータをL2キャッシュRAMに書き込む要求を行う命令である。ロードストア命令LDSは、要求元プロセッサコアがデータを読み出す要求を行う命令であって、読み出したデータを変更してストア命令STを発行する可能性が高いことを示す要求を行う命令である。ロード命令LDは、要求元プロセッサコアがデータを読み出す要求を行う命令であって、読み出したデータを変更してストア命令STを発行する可能性が無いことを示す命令である。
なお、要求元プロセッサコアのL1キャッシュコントローラ16は、実行部14からロード命令を受け取ると、図5を用いて後述されるTLB310のデータ種別情報1110を参照することで、ロードストア命令及びロード命令の何れかを生成する。対象データが変更可能な場合、要求元プロセッサコアがデータを取得した後に、データを変更し且つストア命令を発行する可能性が高いため、要求元プロセッサコアは、ロードストア命令を出力する。
一方、対象データが変更可能ではない場合、要求元プロセッサコアは、ロード命令LDを出力する。
列503には、L2キャッシュコントローラ120から要求先プロセッサコアに供給されるコアデータ要求信号CORQが示される。
コアデータ要求信号CORQは、MB−SH信号、MB−SH−IV信号、及びMB−IV信号のいずれかである。
MB−SH信号は、L1及びL2キャッシュの状態情報を、「S」にすることを要求する信号である。要求先プロセッサコアが、MB−SH信号を、L2キャッシュコントローラ120に送信するときは、同時に要求対象のデータも送信する。
MB−IV信号は、L1及びL2キャッシュの状態情報を、「I」にすることを要求する信号である。要求先プロセッサコアが、MB−IV信号を、L2キャッシュコントローラ120に送信するときは、同時に要求対象のデータも送信する。
MB−SH−IV信号は、要求先プロセッサコアのL1キャッシュの状態情報を「S」又は「I」にすることを要求する信号である。
L2キャッシュコントローラ120は、キャッシュデータ要求信号CRQの種類に従って、上記したMB−SH信号、MB−SH−IV信号、及びMB−IV信号のいずれかを要求先プロセッサコアに供給する。なお、要求先プロセッサコアとして特定されるプロセッサコアは、要求対象データを状態情報「E」で保持するプロセッサコアである。図8で後述されるように、L2キャッシュコントローラ120は、L2キャッシュRAMで保持されたデータの状態情報が「E」の場合、「E」で保持するプロセッサコアを特定するコア特定情報1210を、「E」で示されるラインと同じラインに保持している。そのため、L2キャッシュコントローラ120は、コア特定情報1210を参照することで、要求対象データを状態情報「E」で保持するプロセッサコアを特定することが出来る。
行番号511及び512に示されるように、L2キャッシュコントローラ120は、ロード命令LDを受け取った場合、MB−SH信号を要求先プロセッサコアに供給する。
行番号513〜515に示されるように、L2キャッシュコントローラ120は、ロードストア信号LDSsを受け取った場合、MB−SH−IV信号を要求先プロセッサコアに供給する。
行番号516及び517に示されるように、L2キャッシュコントローラ120は、ストア命令STを受け取った場合、MB−IV信号を要求先プロセッサコアに供給する。
列504には、要求先プロセッサコアが、コアデータ要求信号CORQを受け取る前のL1キャッシュRAMの状態情報が示される。列504に示す要求先コア状態情報には、「E」又は「M」が示される。
列505には、要求先プロセッサコアがコアデータ応答信号CORSをL2キャッシュコントローラに送信した後で、要求先プロセッサコアが更新した状態情報が示される。
列506には、要求先プロセッサコアからL2キャッシュコントローラ120へ送信されるコアデータ応答信号CORSが示される。列507には、要求先プロセッサコアからL2キャッシュコントローラ120に要求対象のデータが転送されたか否かが示される。列508には、キャッシュデータ応答信号CRSを受け取った後で、更新される要求元プロセッサコアの状態情報が示される。
コアデータ応答信号CORSは、MB−SH信号、MB−IV信号、NO−MB−SH信号、及びNO−MB−IV信号がある。MB−SH信号及びMB−IV信号は、上記説明した通りである。
NO−MB−SH信号は、要求先プロセッサコアから要求対象データを送信せずに、L1及びL2キャッシュの要求対象データと同じ物理アドレスにより特定されるラインの状態情報を、「S」にすることを要求する信号である。NO−MB−SH信号は、「データ未変更通知信号」とも呼ばれる。
NO−MB−IV信号は、要求先プロセッサコアから要求対象となるデータを送信せずに、L1及びL2キャッシュの要求対象データと同じ物理アドレスにより特定されるラインの状態情報を、「I」にすることを要求する信号である。
要求先プロセッサコアのL1キャッシュコントローラ16aは、保持する要求対象データの状態情報に従って、MB−SH信号、MB−IV信号、NO−MB−SH信号、及びNO−MB−IV信号のいずれかを出力する。
行番号511には、キャッシュデータ要求信号CRQが「ロード命令」であり、要求先プロセッサコアの対象データ状態情報が「E」のケースにおいて、転送される信号と、状態情報の遷移とが示される。このケースでは、要求先プロセッサコアは、NO−MB−SH信号をL2キャッシュコントローラ120に送信し、要求対象データを送信しない。
要求先プロセッサコアが要求対象データを送信しないのは、要求先プロセッサコアで保持する要求対象データの状態情報が「M」ではないため、L2キャッシュで保持するデータと、要求先プロセッサコアで保持するデータが一致するためである。NO−MB−SHを受け取ったL2キャッシュコントローラ120は、L2キャッシュRAMで保持する対象データを、要求元プロセッサコアに送信する。このように、演算処理装置1は、未更新のデータを、要求先プロセッサコアからL2キャッシュコントローラ120へ送信するという、不要なデータ転送を無くすことが出来る。
また、要求先プロセッサコアは、NO−MB−SH信号送信後、要求対象データの状態情報を、「S」に更新する。また、キャッシュデータ応答信号CRSを受け取った要求元プロセッサコアは、要求対象データの状態情報を、「S」に更新する。
行番号512には、キャッシュデータ要求信号CRQが「ロード命令」であり、要求先プロセッサコアの対象データ状態情報が「M」のケースにおいて、転送される信号と、状態情報の遷移とが示される。このケースでは、要求先プロセッサコアは、MB−SH信号及び要求対象データをL2キャッシュコントローラ120に送信する。さらに、要求先プロセッサコアは、MB−SH信号送信後に、要求対象データの状態情報を、「S」に更新する。また、キャッシュデータ応答信号CRSを受け取った要求元プロセッサコアは、要求対象データの状態情報を、「S」に更新する。
このように、MB−SH信号を送信後、要求先プロセッサコア及び要求元プロセッサコアのデータの状態情報を「S」に更新するのは、ロード命令LDは、データの変更を行わないことを特定したロード命令であるためである。状態情報が「S」であるため、他のプロセッサコア30、40が要求元プロセッサコアになり、同じデータにアクセスする際に、要求先プロセッサコアの状態情報を「I」又は「M」から、「S」に変更するという制御信号の送信を不要にすることが出来る。
行番号513に示す例は、図11に示す第1の実施例に係るコアデータ応答制御部により、コアデータ応答信号CORSを送信する例である。
行番号513に示すように、コアデータ要求信号CORQがMB−SH−IVであり、且つL1キャッシュで保持された要求対象データの状態情報が「E」のケースでは、NO−MB−SH信号が送信される。要求先プロセッサコアは、NO−MB−SH信号送信後に、要求対象データの状態情報を、「S」に更新する。また、キャッシュデータ応答信号CRSを受け取った要求元プロセッサコアは、要求対象データの状態情報を、「S」に更新する。
行番号511に示すケースと同様に、要求先プロセッサコアの状態情報が「E」の場合、要求先プロセッサコアで保持する要求対象データと、L2キャッシュで保持する要求対象データが一致する。そのため、要求先プロセッサコアからL2キャッシュコントローラ120へのデータ転送を行わないことで、演算処理装置1は、不要なデータ転送を無くすことが出来る。
行番号514に示す信号生成は、図12に示す第2の実施例に係るコアデータ応答制御部により、コアデータ応答信号CORSを送信する例である。
行番号514に示すように、コアデータ要求信号CORQがMB−SH−IVであり、且つL1キャッシュで保持された要求対象データの状態情報が「E」のケースでは、NO−MB−IV信号が送信される。要求先プロセッサコアは、NO−MB−SH信号送信後に、要求対象データの状態情報を、「I」に更新する。また、キャッシュデータ応答信号CRSを受け取った要求元プロセッサコアは、要求対象データの状態情報を、「E」に更新する。
このように、要求先プロセッサコアの状態情報を「I」に更新することで、要求元プロセッサコアの状態情報を「E」に更新することが出来る。ロードストア信号LDSsで取得したデータは、変更可能なデータであるため、要求元プロセッサコアによりデータが変更され、ストア命令が出力される可能性が高い。そのため、データ送信後に、要求先プロセッサコアの状態を「I」に更新することで、要求元プロセッサコアは、要求先プロセッサコアの状態情報を、「S」から「I」に遷移させるように制御信号を送信する必要は無い。よって、演算処理装置1は、無駄な制御信号の送信を不要にすることが出来る。
行番号515に示すように、コアデータ要求信号CORQがMB−SH−IVであり、且つL1キャッシュで保持された要求対象データの状態情報が「M」のケースでは、MB−IV信号が送信される。
要求先プロセッサコアは、MB−IV信号送信と同時に、要求対象データの状態情報を、「I」に更新する。また、キャッシュデータ応答信号CRSを受け取った要求元プロセッサコアは、要求対象データの状態情報を、「E」に更新する。これらは、行番号514で説明した状態遷移と同じである。ロードストア信号LDSsで取得したデータが、変更可能なデータであるためである。
データ送信後に、要求先プロセッサコアの状態を「I」に更新することで、要求先プロセッサコアは、ロードストア信号LDSsで取得したデータの状態を「S」から「I」に遷移させることなく、変更することが出来る。よって、演算処理装置1は、無駄な制御信号の送信を不要にすることが出来る。
行番号516に示すように、コアデータ要求信号CORQがMB−IVであり、且つL1キャッシュで保持された要求対象データの状態情報が「E」のケースでは、NO−MB−IV信号が送信される。要求先プロセッサコアは、NO−MB−IV信号送信後に、要求対象データの状態情報を、「I」に更新する。また、キャッシュデータ応答信号CRSを受け取った要求元プロセッサコアは、要求対象データの状態情報を、「E」に更新する。
行番号511及び513に示す例と同様に、要求先プロセッサコアの状態情報が「E」の場合、要求先プロセッサコアで保持する要求対象データと、L2キャッシュで保持する要求対象データが一致する。そのため、要求先プロセッサコアからL2キャッシュコントローラへのデータ転送を行わないことで、演算処理装置1は、不要なデータ転送を無くすことが出来る。
行番号517に示すように、コアデータ要求信号CORQがMB−IVであり、且つL1キャッシュで保持された要求対象データの状態情報が「M」のケースでは、MB−IV信号が送信される。要求先プロセッサコアは、MB−IV信号送信後に、要求対象データの状態情報を、「I」に更新する。また、キャッシュデータ応答信号CRSを受け取った要求元プロセッサコアは、要求対象データの状態情報を、「E」に更新する。
図5は、L1キャッシュRAMの一例を示す図である。L1キャッシュRAM18は、Translation Lookaside Buffer(TLB)310、タグRAM320、L1データRAM340、等価性比較回路350、及びヒットウェイ信号選択回路360、及びウェイ選択回路370を有する。
ロード動作では、L1キャッシュコントローラ16は、タグRAM320又はL1データRAM340へインデックスアドレスを供給して、インデックスアドレスで特定されるラインからデータを読み出す。
ストア動作では、L1キャッシュコントローラ16は、書き込み許可信号WE、インデックスアドレス、及び書込データWDをタグRAM320又はL1データRAM340へ供給して、インデックスアドレスで特定されるラインに登録する。
TLB310は、論理アドレス(仮想アドレス)を物理アドレスに変換する。言い換えれば、TLB310は、L1キャッシュコントローラ16より供給される仮想アドレスと一意に対応する物理アドレスを、等価性比較回路390に供給する。
TLB310は、インデックスアドレスにより特定されるラインから、物理アドレスの上位アドレスを出力する回路である。TLB310は、仮想ページ番号を構成する仮想アドレスの上位アドレスを保持するタグ部と、物理アドレスの上位アドレスを保持するデータ部を有する。TLB310は、L1キャッシュコントローラ16より仮想アドレスを受け取る。TLB310は、受け取った仮想アドレスの一部を、タグ部及びデータ部のエントリを選択するインデックスアドレスとして使用する。TLB310は、L1キャッシュコントローラから受け取った仮想アドレスの上位アドレスと、タグ部に保持された仮想アドレスの上位アドレスとが一致する場合、同じエントリのデータ部の物理アドレスを、等価性比較回路350に供給する。TLB310に保持されたデータのデータ構造は、図6で後述される。
タグRAM320は、例えば、nウェイセットアソシアティブ型のRAMである。nウェイセットアソシアティブ型RAMとは、1つのインデックスアドレスにより、nのラインが選択されるRAMをいう。タグRAM320は、n個のウェイを有するが、説明の容易のため、図5には1つのウェイが示される。タグRAM320は、ライトアンプ321、ロウデコーダ322、メモリセル323、カラムデコーダ324、列選択回路326、及びセンスアンプ328を有する。
タグRAM320は、L1キャッシュコントローラ16より仮想アドレスを受け取る。タグRAM320は、受け取った仮想アドレスの一部を、タグ部及びデータ部のエントリを選択するインデックスアドレスとして使用する。
インデックスアドレスは、メモリセルのワード線及びビット線を特定する。ロウデコーダ322は、インデックスアドレスの上位アドレスであるロウアドレスをデコードすることで、メモリセル323のワード線を活性化する。活性化したワード線に接続されたメモリセルは、ビット線の電位を変化させる。カラムデコーダ324は、インデックスアドレスの下位ビットであるカラムアドレスをデコードすることで、ビット線を特定し、特定したビット線特定信号を列選択回路326に供給する。列選択回路326は、ビット線特定信号により示されるビット線を選択する。
センスアンプ328は、ビット線の電位変化を増幅する。センスアンプ328は、書き込み許可信号WE(Write Enable)が供給されていないときに増幅動作を行う。ライトアンプ321は、書き込み許可信号WEが供給されている場合、書込データWD(Write Data)の信号を、カラムデコーダが特定するビット線に供給する。ビット線に書込データWDの信号が供給されると、ビット線と、ロウデコーダ322により活性化されたワード線とで特定されるメモリセルにデータが書き込まれる。
タグRAM320のラインは、物理アドレスの上位アドレスを特定するタグ並びに状態情報を保持する。タグRAM320のラインに保持されたデータの構造は、図6を用いて後述される。
等価性比較回路350は、センスアンプ328から出力されたタグと、TLB310から出力されたタグを比較する。2つのタグが一致する(以下、「キャッシュヒット」といつ)と、等価性比較回路350は、キャッシュヒット信号をヒットウェイ信号選択回路360に供給する。タグが不一致になる(以下、「キャッシュミス」という)と、キャッシュミス信号をL1キャッシュコントローラ16に供給する。
ヒットウェイ信号選択回路360は、複数のウェイから出力されたキャッシュヒット信号を受け取って、どのウェイでキャッシュヒットが生じたかを特定するヒットウェイ選択信号を、ウェイ選択回路370に供給する。
L1データRAM340は、ライトアンプ341、ロウデコーダ342、メモリセル343、カラムデコーダ344、列選択回路346、及びセンスアンプ348を有する。ライトアンプ341、ロウデコーダ342、メモリセル343、カラムデコーダ344、列選択回路346、及びセンスアンプ348は、それぞれタグRAM320で説明した同じ名前の要素と同じ動作をするため説明を省略する。
L1データRAMのラインは、データ又は命令が記憶される。タグRAM320と同一のインデックスアドレスで特定されるラインからデータが、センスアンプ348により読み出される。
ウェイ選択回路370は、各ウェイから読み出したデータ(RD:Read Data)を受け取る。そして、ウェイ選択回路370は、ヒットウェイ信号選択回路360から供給されるヒット選択信号により、読出データRDを選択する。ウェイ選択回路370は、選択された読出データRDを、L1キャッシュコントローラ16に供給する。
図6は、L1キャッシュのタグRAMのデータ構造、及びTLBのデータ構造の一例を示す図である。1000は、タグRAM320のラインのデータ構造を示し、1100は、TLB310のラインのデータ構造を示す。
タグRAM320のデータ構造1000は、状態情報1020、及び物理アドレスの上位アドレス1030を有する。図3で示したように、状態情報1020は、ラインの状態が「M」、「E」、「S」、「I」の4つの状態のいずれかにあるかを特定する。状態情報1020は、例えば、2ビットである。1030に示されるように、タグは、物理アドレスの上位アドレスである。
TLB310のデータ構造1100は、データ種別情報1110、物理アドレスの上位アドレス1120、及び仮想アドレスの上位アドレス1130を有する。データ種別情報1110は、物理アドレスで特定されるデータが変更可能なデータか、又は変更不可能なデータかを特定する情報である。例えば、データが、プログラムの命令に関する場合、当該データを変更することは出来ないので、データ種別情報1110は無効を示す。一方、データが、変更可能なデータの場合、データ種別情報1110は有効を示す。
仮想アドレスの上位アドレス1130は、L1キャッシュコントローラ16から供給される仮想アドレスとの比較に使用される。物理アドレスの上位アドレス1120は、等価性比較回路350で、タグRAM320から出力される物理アドレスとの比較に使用される。
図7は、L2キャッシュRAMの一例を示す図である。L2キャッシュRAM140は、タグRAM420、L2データRAM440、等価性比較回路450、及びヒットウェイ信号選択回路460、及びウェイ選択回路470を有する。
L2キャッシュRAM140は、L1キャッシュコントローラ16から供給される、キャッシュデータ要求信号CRQには、物理アドレスが含まれるため、TLBは有さない。図7に示されるL2キャッシュRAM140の構成要素は、L1キャッシュRAM18において説明された同じ名前で特定される構成要素と同じ動作をするので、説明を省略する。
図8は、L2キャッシュのタグRAMに保持されたデータのデータ構造の一例を示す図である。1200は、図7に示すタグRAM420に保持されたデータのデータ構造を示し、1210は、データを保持するプロセッサコアを特定するコア特定情報を示す。1230は、物理アドレスを示す。コア特定情報1210は、状態情報が「E」又は「M」のデータを保持するプロセッサコアを特定する。状態情報1220は、ラインの状態が「E」、「S」、「I」の3つの状態のいずれにあるかを特定する。
プロセッサコアで保持するデータの状態情報1020が「E」又は「M」の場合、状態情報1220は、「I」である。そのため、L2キャッシュコントローラ120が、要求先プロセッサコアにコアデータを要求する場合、タグRAM420の状態情報1220は、「I」である。状態情報1220は、例えば、2ビットである。物理アドレス1230は、タグRAM420のインデックスアドレスで特定されるデータが記憶されるメインメモリの物理アドレスを特定する。
上記説明では、コア特定情報1210と、状態情報1220とを区別して説明されたが、コア特定情報1210と、状態情報1220とを合わせて、「状態情報」と称されても良い。
図9は、L2キャッシュの状態情報の状態遷移の一例を示す図である。状態情報は、「E」、「S」、「I」の3つの状態のいずれかにある。
「I」から「S」への状態遷移a11は、他プロセッサコアからデータを取得したため、取得したデータを記憶するL2データRAM440のラインの状態情報が「I」から「S」に遷移したことを示す。
「S」から「I」への状態遷移a12は、他のデータを登録するためにラインを無効化するため、状態情報が「S」から「I」に遷移したことを示す。
「I」から「E」への状態遷移a13は、他プロセッサコアからデータを取得し、且つ他のプロセッサコアのラインを「I」に変更したため、取得したデータを記憶するL2データRAM440のラインの状態情報が「I」から「E」に遷移したことを示す。
「E」から「I」への状態遷移a14は、他のデータを登録するためにラインを無効化するため、状態情報が「S」から「I」に遷移したことを示す。
「E」から「S」への状態遷移a15は、他コアからのコアデータ要求によって、コア内データを他コアに転送することで、転送データを記憶するラインの状態情報が「E」から「S」へ遷移したことを示す。
「S」から「E」への状態遷移a16は、他コアへデータの無効化要求を行うことで、当該無効化の対象となったデータを記憶するラインの状態情報が「S」から「E」へ遷移したことを示す。
図10は、コアデータ応答制御部127の一例を示す図である。コアデータ応答制御部127は、コアデータ要求信号CORQの種類に応じて、要求先プロセッサコアからデータを読み出す信号を選択する。そして、コアデータ応答制御部127は、L2キャッシュタグの状態情報が「E」のときだけ、コアデータ要求信号CORQを要求先プロセッサコアに供給する回路である。図10に示すように、コアデータ応答制御部127は、要求判別回路131、L2状態情報判別回路132、及びAND回路(論理積回路)133A、133B、133Cを有する。
要求判別回路131は、キャッシュデータ要求信号CRQを受け取ると、キャッシュデータ要求信号CRQのうち信号種類を特定するビット信号を用いて、信号種類を判別する。判別した信号種類がLDである場合、要求判別回路131は、AND回路133Aにロード信号LDsを出力する。判別した信号種類がLDSである場合、要求判別回路131は、AND回路133Bにロードストア信号LDSsを出力する。判別した信号種類がSTである場合、要求判別回路131は、AND回路133Cにストア信号STsを出力する。
また、要求判別回路131は、キャッシュデータ要求信号CRQのうち要求アドレスを特定する信号をL2状態情報判別回路に供給する。
L2状態情報判別回路132は、要求アドレスを受け取ると、要求アドレスをもとに、図7に示すタグRAM420から状態情報を取得する。取得した状態情報が「E」である場合、状態情報が「E」を示すEs信号を出力する。状態情報が「E」以外の場合、L2状態情報判別回路132は、Es信号を出力しない。
AND回路133Aは、ST信号及びEs信号を受け取ると、MB−SH信号を要求先プロセッサコア20に供給する。AND回路133Bは、ロードストア信号LDSs及びEs信号を受け取ると、MB−SH信号を要求先プロセッサコア20に供給する。AND回路133Cは、ロード信号LDs及びEs信号を受け取ると、MB−IV信号を要求先プロセッサコア20に供給する。
図11は、コアデータ応答制御部の第1の実施例を示す図である。第1の実施例に係るコアデータ応答制御部17aは、コアデータ応答制御部17aは、コアデータ要求信号CORQの種類、並びに、要求されたコアデータの状態情報に従って決まるコアデータ応答信号CORSをL2キャッシュコントローラに供給する回路である。また、コアデータ応答制御部17aは、図4の行番号513に示すNO−MB−SH信号の生成を行う。
図11に示すように、コアデータ応答制御部17aは、要求判別回路171a、L1状態情報判別回路172a、AND回路(論理積回路)173A〜176A、及びOR回路(論理和回路)181A、及び182Aを有する。
要求判別回路171aは、コアデータ要求信号CORQを受け取ると、コアデータ要求信号CORQが、MB−SH信号、MB−SH−IV信号、及びMB−IV信号のいずれであるかを判別する。判別した信号種類がMB−SH信号である場合、要求判別回路171は、OR回路181A及びAND回路173AにMB−SH信号を供給する。判別した信号種類がMB−SH−IV信号である場合、要求判別回路171aは、OR回路181A及びOR回路182AにMB−SH−IV信号を供給する。判別した信号種類がMB−IV信号である場合、要求判別回路171aは、OR回路182A及びAND回路174AにMB−SH信号を供給する。
また、要求判別回路171aは、受け取った要求アドレスを、L1状態情報判別回路172に供給する。
L1状態情報判別回路172aは、要求アドレスを受け取ると、要求アドレスをもとに、タグRAM420から対象となるコアデータの状態情報を取得する。取得した状態情報が「E」である場合、L1状態情報判別回路172aは、Es信号をAND回路173A及びAND回路174Aに出力する。取得した状態情報が「M」である場合、L1状態情報判別回路172aは、状態情報が「M」であることを示すMs信号をAND回路175A及びAND回路176Aに供給する。
OR回路181Aは、MB−SH信号及びMB−SH−IV信号を受け取ると、出力信号を173Aに供給する。OR回路182Aは、MB−IV信号及びMB−SH−IV信号を受け取ると、出力信号を176Aに供給する。
AND回路173Aは、OR回路181Aの出力信号、及びEs信号を受け取ると、NO−MB−SH信号をL2キャッシュコントローラに供給する。AND回路174Aは、Es信号及びMB−IV信号を受け取ると、NO−MB−IV信号をL2キャッシュコントローラに供給する。AND回路175Aは、Ms信号及びMB−SH信号を受け取ると、MB−SH信号をL2キャッシュコントローラに供給する。AND回路176Aは、OR回路182Aの出力信号、及びMs信号を受け取ると、MB−IV信号をL2キャッシュコントローラに供給する。
図12は、コアデータ応答制御部の第2の実施例を示す図である。第2の実施例に係るコアデータ応答制御部17bは、コアデータ要求信号CORQの種類、並びに、要求されたコアデータの状態情報に従って決まるコアデータ応答信号CORSをL2キャッシュコントローラに供給する回路である。また、コアデータ応答制御部17bは、図4の行番号514に示すNO−MB−SH信号の生成を行う。
図12に示すように、コアデータ応答制御部17bは、要求判別回路171B、L1状態情報判別回路172B、AND回路173B〜176B、及びOR回路181B、及び182Bを有する。
要求判別回路171Bは、コアデータ要求信号CORQを受け取ると、コアデータ要求信号CORQが、MB−SH信号、MB−SH−IV信号、及びMB−IV信号のいずれであるかを判別する。判別した信号種類がMB−SH信号である場合、要求判別回路171は、AND回路173B、175BにMB−SH信号を供給する。判別した信号種類がMB−SH−IV信号である場合、要求判別回路171Bは、OR回路181B及びOR回路182BにMB−SH−IV信号を供給する。判別した信号種類がMB−IV信号である場合、要求判別回路171Bは、OR回路181B及びOR回路182BにMB−SH信号を供給する。
また、要求判別回路171Aは、受け取った要求アドレスを、L1状態情報判別回路172Bに供給する。
L1状態情報判別回路172Aは、要求アドレスを受け取ると、要求アドレスをもとに、タグRAM420から対象となるコアデータの状態情報を取得する。取得した状態情報が「E」である場合、L1状態情報判別回路172aは、Es信号をAND回路173B及びAND回路174Bに出力する。取得した状態情報が「M」である場合、L1状態情報判別回路172Bは、Ms信号をAND回路175B及びAND回路176Bに供給する。
OR回路181Aは、MB−SH−IV信号及びMB−IV信号を受け取ると、出力信号を174Bに供給する。OR回路182Aは、MB−SH−IV信号及びMB−IV信号を受け取ると、出力信号を176Bに供給する。
AND回路173Bは、MB−SH信号、及びEs信号を受け取ると、NO−MB−SH信号をL2キャッシュコントローラに供給する。AND回路174Bは、Es信号及びOR回路181Bの出力信号を受け取ると、NO−MB−IV信号をL2キャッシュコントローラに供給する。AND回路175Bは、Ms信号及びMB−SH信号を受け取ると、MB−SH信号をL2キャッシュコントローラに供給する。AND回路176Bは、OR回路182Bの出力信号、及びMs信号を受け取ると、MB−IV信号をL2キャッシュコントローラに供給する。
図13は、多重化転送回路の一例を示す図である。多重化転送回路130は、バスセレクタ136、及び干渉制御バッファ137を有する。バスセレクタ136は、プロセッサコア10からの転送データ、及び、プロセッサコア20からの転送データの何れかを選択して、L2キャッシュコントローラ120に供給するように動作する。転送データは、コアデータ応答信号CORS、及びコアデータである。
プロセッサコアからの転送データは、システムクロック2サイクルのうち1つのサイクルと同期して転送される。バスセレクタ136は、選択された信号線を伝送する転送データの「ハイ」又は「ロー」の変化を検出して、未選択の信号線に切り替える。バスセレクタ136は、いずれの信号線を選択しているかを特定する選択信号を、干渉制御バッファ137に供給する。
干渉制御バッファ137は、転送データが同じシステムクロックに同期して転送された場合、選択信号により特定される未選択の信号線を伝送する転送データをバッファリングする。そして、バスセレクタ136が、未選択の信号線に切り替えたとき、バッファリングした信号を、バスセレクタ136に供給する。
なお、信号線w16−1、及びw26−1は、データを送信する信号バスであるため、64ビットの信号が転送される場合、バス幅は、例えば、64本になる。バスセレクタ136とL2キャッシュコントローラ120とを繋ぐ信号線w26−3の本数は、バスセレクタ136における多重化により、信号線w26−1又は信号線w26−2を選択することで、信号線w26−3の本数を64本にすることが出来る。
上記のように、NO−MB−SH信号又はNO−MB−IV信号を、L2キャッシュコントローラ120に転送するとき、データは、L2キャッシュコントローラ120に伝送されない。そのため、NO−MB−SH信号又はNO−MB−IV信号の転送は、2つのプロセッサコアから、L2キャッシュコントローラへ同時にデータが伝送される機会を減少させる。よって、演算処理装置1は、多重化転送回路130により、信号線w26−1又は信号線w26−2を選択することで、信号線w26−3の本数を64本にすることが出来る。このように、演算処理装置1は、配線密度が高くなる場所の上流部に、多重化転送回路130を設けることで、チップ面積を小さくすることが出来る。
図14は、演算処理装置の各機能部の配置位置の一例を示す図である。
領域150A〜150Dは、2つのプロセッサコアとL2キャッシュコントローラとの間の信号線の密度が高くなる狭窄部である。狭窄部145A〜Bには、2つのプロセッサコアから信号線が配置される。そこで、狭窄部145A〜Bのデータ応答信号の入力側に多重化転送回路130を配置することで、2つのプロセッサコアから出力するバス幅を、半分にすることが出来る。そのため、多重化転送回路130により、狭窄部の配線密度を下げ、各機能部を効率的に配置することが出来る。
図15Aは、演算処理装置によるデータ処理の一例を示すフローチャートである。最初に、L2キャッシュコントローラ120は、要求元プロセッサコアからL2キャッシュRAM140に記憶されたデータへのアクセス要求であるキャッシュデータ要求信号CRQを受信する(S601)。
L2キャッシュコントローラ120は、キャッシュデータ要求信号CRQがロード命令LDか否かを判断する(S602)。
キャッシュデータ要求信号CRQがロード命令LDの場合(S602 Yes)、L2キャッシュコントローラ120は、MB−SH信号を、要求先プロセッサコアに供給し(S603)、後述されるS621に示す動作を行う。
キャッシュデータ要求信号CRQがロード命令LDでは無い場合(S602 No)、L2キャッシュコントローラ120は、キャッシュデータ要求信号CRQがロードストア命令LDSか否かを判断する(S604)。L2キャッシュコントローラ120は、キャッシュデータ要求信号CRQがロードストア命令LDSである場合(S604、Yes)、MB−SH−IV信号を、要求先プロセッサコアに供給し(S605)、後述されるS621に示す動作を行う。
キャッシュデータ要求信号CRQがロードストア命令LDSでは無い場合(S604 No)、L2キャッシュコントローラ120は、MB−IV信号を、要求先プロセッサコアに供給し(S606)、後述されるS621に示す動作を行う。
L1キャッシュコントローラ16は、L2キャッシュコントローラ120からコアデータ要求信号CORQを受信する(S621)。
L1キャッシュコントローラ16は、L1キャッシュRAM18を参照して、要求対象のデータの状態情報が、「E」であるかを判定する(S622)。
L1キャッシュコントローラ16は、状態情報が「E」の場合(S622 Yes)、コアデータ要求信号CORQがロード命令LDか否かを判断する(S623)。L1キャッシュコントローラ16は、状態情報が「E」ではない場合(S622 No)、後述されるS651に示す動作を行う。
コアデータ要求信号CORQがMB−SH信号の場合(S623 Yes)、L1キャッシュコントローラ16は、NO−MB−SH信号を、L2キャッシュコントローラ120に供給する(S624)。さらに、L1キャッシュコントローラ16は、対象データの状態情報を「E」から「S」に変更する(S628)。そして、L2キャッシュコントローラは、後述されるS631に示す動作を行う。
コアデータ要求信号CORQがMB−SH信号では無い場合(S623 No)、L1キャッシュコントローラ16は、コアデータ要求信号CORQがMB−SH−IV信号か否かを判断する(S625)。L1キャッシュコントローラ16は、コアデータ要求信号CORQがMB−SH−IV信号である場合(S625 Yes)、NO−MB−SH信号を、L2キャッシュコントローラ120に供給する(S626)。さらに、L1キャッシュコントローラ16は、対象データの状態情報を「E」から「S」に変更し(S628)、後述されるS631に示す動作を行う。
コアデータ要求信号CORQがMB−SH−IV信号では無い場合(S625 No)、L1キャッシュコントローラ16は、NO−MB−IV信号を、L2キャッシュコントローラ120に供給する(S627)。さらに、L1キャッシュコントローラ16は、対象データの状態情報を「E」から「I」に変更する(S630)。そして、L2キャッシュコントローラは、後述されるS631に示す動作を行う。
NO−MB−IV信号又はNO−MB−SH信号を受け取ると、L2キャッシュコントローラ120は、L2キャッシュRAMに保持する対象データを、要求元プロセッサコアに供給し(S631)、処理を終了する。
L1キャッシュコントローラ16は、状態情報が「M」の場合(S622 No)、コアデータ要求信号CORQがMB−SH信号か否かを判断する(S651)。コアデータ要求信号CORQがMB−SH信号の場合(S651 Yes)、L1キャッシュコントローラ16は、MB−SH信号並びにL1キャッシュRAMに記憶した対象データを、L2キャッシュコントローラ120に供給する(S652)。さらに、L1キャッシュコントローラ16は、対象データの状態情報を「M」から「S」に変更する(S653)。
コアデータ要求信号CORQがMB−SH信号では無い場合(S651 No)、L1キャッシュコントローラ16は、コアデータ要求信号CORQがMB−SH−IV信号か否かを判断する(S654)。コアデータ要求信号CORQがMB−SH−IV信号である場合(S654 Yes)、コアデータ応答信号CORSとしてMB−IV信号並びにL1キャッシュRAMに保持した対象データを、L2キャッシュコントローラ120に供給する(S655)。さらに、L1キャッシュコントローラ16は、対象データの状態情報を「M」から「I」に変更する(S656)。
コアデータ要求信号CORQがMB−SH−IV信号では無い場合(S654 No)、L1キャッシュコントローラ16は、コアデータ応答信号CORSとしてMB−IV信号並びにL1キャッシュRAMに保持した対象データを、L2キャッシュコントローラに供給する(S657)。さらに、L1キャッシュコントローラ16は、対象データの状態情報を「M」から「I」に変更する(S656)。
修正された対象データ、及びMB−IV信号又はMB−SH信号を受け取ると、L2キャッシュコントローラ120は、修正された対象データを、要求元プロセッサコアに供給し(S657)、処理を終了する。
以上の実施形態に関し、更に以下の付記を開示する。
[付記1]
第1の記憶部を有し、演算処理を行う第1の演算処理部と、
演算処理を行う第2の演算処理部と、
前記第1の記憶部が保持するデータを包含すると共に、前記第1の記憶部に保持されたデータの状態を特定する状態情報を保持する第2の記憶部と、
前記第2の演算処理部から第1アドレスのデータに対する第1のアクセス要求を受け取ると、前記第1アドレスのデータの第1の状態情報が、前記第1アドレスのデータが前記第1の記憶部に排他又は所有状態で保持されることを示す場合、前記第1アドレスのデータの読み出しを要求する要求信号を前記第1の演算処理部に出力するとともに、前記第1の演算処理部から前記第1アドレスのデータが変更されていないことを示すデータ未変更通知信号を受け取ったとき、前記第2の記憶部に包含された前記第1アドレスのデータに対する前記第2の演算処理部からのアクセスを許可する制御部と、
を有することを特徴とする演算処理装置。
[付記2]
前記演算処理装置において、
前記第1の記憶部は、前記第1の記憶部に保持されたデータの状態を特定する第2の状態情報を保持し、
前記第1のアクセス要求が、前記第2の演算処理部による前記第1アドレスのデータの読み出し後に、前記第2の演算処理部が前記第1アドレスのデータを変更することを示す場合、
前記要求信号は、前記第1アドレスのデータの読み出しの要求に加えて、前記第1の記憶部に保持された前記第2の状態情報を無効状態にすることを要求することを特徴とする付記1に記載の演算処理装置。
[付記3]
前記演算処理装置において、
前記第2の演算処理部はさらに、第3の記憶部を有し、
前記制御部は、前記第1の演算処理部から前記第1アドレスのデータを読み出した後に、前記第3の記憶部に保持され、且つ前記第1アドレスのデータの状態を特定する第3の状態情報を排他状態にすることを要求する応答信号を、前記第2の演算処理部に出力することを特徴とする付記2に記載の演算処理装置。
[付記4]
前記制御部と、前記第1の演算処理部から入出力するデータ、又は、前記第2の演算処理部から入出力するデータ、を伝送する共通信号線と、
前記第1の演算処理部から入出力するデータ、又は、前記第2の演算処理部から入出力するデータを選択し、且つ選択したデータを前記共通信号線に出力する選択回路と、
前記選択回路により選択されないデータを一時的に記憶する記憶回路と、
を有することを特徴とする付記2又は3に記載の演算処理装置。
[付記5]
第1の記憶部を有し演算処理を行う第1の演算処理部と、演算処理を行う第2の演算処理部と、前記第1の記憶部が保持するデータを包含すると共に、前記第1の記憶部に保持されたデータの状態を特定する状態情報を保持する第2の記憶部と、前記第2の記憶部に包含された前記第1アドレスのデータに対する前記第2の演算処理部からのアクセスを制御する制御部を有することを特徴とする演算処理装置の制御方法において、
前記第1の演算処理部が、前記第2の演算処理部から第1アドレスのデータに対する第1のアクセス要求を受け取るステップと、
前記第1アドレスのデータの第1の状態情報が、前記第1アドレスのデータが前記第1の記憶部に排他又は所有状態で保持されることを示す場合、前記制御部が、前記第1アドレスのデータの読み出しを要求する要求信号を前記第1の演算処理部に出力するステップと、
前記第1の演算処理部が、前記制御部から前記要求信号を受け取るステップと、
前記第1アドレスのデータが前記第1の演算処理部により変更されていない場合、前記第1の演算処理部が、前記第1アドレスのデータが変更されていないことを示すデータ未変更通知信号を前記制御部に出力するステップと、
前記制御部が、前記第1の演算処理部から前記データ未変更通知信号を受け取った場合、前記第2の記憶部に包含された前記第1アドレスのデータに対する前記第2の演算処理部によるアクセスを許可するステップと、
を有することを特徴とする制御方法。
[付記6]
前記演算処理相違の制御方法において、
前記第1の記憶部は、前記第1の記憶部に保持されたデータの状態を特定する第2の状態情報を保持するとともに、
前記第1のアクセス要求が、前記第2の演算処理部による前記第1アドレスのデータの読み出し後に、前記第2の演算処理部が前記第1アドレスのデータを変更することを示す場合、前記要求信号は、前記第1アドレスのデータの読み出しの要求に加えて、前記第1の記憶部に保持され且つ前記第1アドレスのデータの状態を特定する前記第2の状態情報を無効状態にすることを要求することを特徴とする付記5に記載の制御方法。
[付記7]
前記演算処理装置の制御方法において、
前記第2の演算処理部は、さらに第3の記憶部を有し、
前記制御部は、前記第1の演算処理部から前記第1アドレスのデータを読み出した後に、前記第3の記憶部に保持され、且つ前記第1アドレスのデータの状態を特定する状態情報を排他状態にすることを要求する応答信号を、前記第2の演算処理部に出力することを特徴とする付記6に記載の制御方法。
1 演算処理装置
10〜40 プロセッサコア
12 命令部
14 実行部
16 L1キャッシュコントローラ
17 コアデータ応答制御部
17b コアデータ応答制御部
18 L1キャッシュRAM
100 L2キャッシュ
120 L2キャッシュコントローラ
127 コアデータ応答制御部
130 多重化転送回路
131 要求判別回路
136 バスセレクタ
137 干渉制御バッファ
140 L2キャッシュRAM
160 メモリアクセス制御部
171 要求判別回路
240 メインメモリ
310 TLB

Claims (7)

  1. 1次キャッシュメモリを有し、演算処理を行う第1の演算処理部と、
    演算処理を行う第2の演算処理部と、
    前記第1の演算処理部と前記第2の演算処理部とに接続され、前記1次キャッシュメモリが保持するデータを包含して記憶するとともに、前記1次キャッシュメモリに保持されたデータの状態を特定する状態情報を保持する2次キャッシュメモリと、
    前記第2の演算処理部から第1アドレスのデータに対する第1のアクセス要求を受け取ると、前記第1アドレスのデータの第1の状態情報が、前記第1アドレスのデータが前記1次キャッシュメモリに排他又は所有状態で保持されることを示す場合、前記第1アドレスのデータの読み出しを要求する読み出し要求を前記第1の演算処理部に出力するとともに、前記第1の演算処理部から前記第1アドレスのデータが変更されていないことを示すデータ未変更通知を受け取ったとき、前記1次キャッシュメモリから前記第1アドレスのデータを読み出させる代わりに、前記2次キャッシュメモリに記憶された前記第1アドレスのデータを前記第2の演算処理部に送信するとともに前記第1アドレスのデータの第1の状態情報の変更後の状態情報である第2の状態情報を共有状態に変更する制御部と、
    を有することを特徴とする演算処理装置。
  2. 前記演算処理装置において
    記第1のアクセス要求が、前記第2の演算処理部による前記第1アドレスのデータの読み出し後に、前記第2の演算処理部が前記第1アドレスのデータを変更することを示す場合、
    前記要求信号は、前記第1アドレスのデータの読み出しの要求に加えて、前記1次キャッシュメモリに保持された前記第2の状態情報を共有状態から無効状態にすることを要求することを特徴とする請求項1に記載の演算処理装置。
  3. 前記演算処理装置において、
    前記第2の演算処理部はさらに、第3の記憶部を有し、
    前記制御部は、前記第1の演算処理部から前記第1アドレスのデータを読み出した後に、前記第3の記憶部に保持され、且つ前記第1アドレスのデータの状態を特定する第3の状態情報を排他状態にすることを要求する応答通知を、前記第2の演算処理部に出力することを特徴とする請求項2に記載の演算処理装置。
  4. 前記演算処理装置はさらに、
    前記制御部と、前記第1の演算処理部から入出力するデータ、又は、前記第2の演算処理部から入出力するデータ、を伝送する共通信号線と、
    前記第1の演算処理部から入出力するデータ、又は、前記第2の演算処理部から入出力するデータを選択し、且つ選択したデータを前記共通信号線に出力する選択回路と、
    前記選択回路により選択されないデータを一時的に記憶する記憶回路と、
    を有することを特徴とする請求項2又は3に記載の演算処理装置。
  5. 1次キャッシュメモリを有し、演算処理を行う第1の演算処理部と、演算処理を行う第2の演算処理部と、前記第1の演算処理部と前記第2の演算処理部とに接続され、前記1次キャッシュメモリが保持するデータを包含して記憶するとともに、前記1次キャッシュメモリに保持されたデータの状態を特定する状態情報を保持する2次キャッシュメモリと、を有する演算処理装置の制御方法において、
    前記演算処理装置が有する制御部が、前記第2の演算処理部から第1アドレスのデータに対する第1のアクセス要求を受け取り、
    前記第1アドレスのデータの第1の状態情報が、前記第1アドレスのデータが前記1次キャッシュメモリに排他又は所有状態で保持されることを示す場合、前記制御部が、前記第1アドレスのデータの読み出しを要求する読み出し要求を前記第1の演算処理部に出力するとともに、前記第1の演算処理部から前記第1アドレスのデータが変更されていないことを示すデータ未変更通知を受け取ったとき、前記1次キャッシュメモリから前記第1アドレスのデータを読み出させる代わりに、前記2次キャッシュメモリに記憶された前記第1アドレスのデータを前記第2の演算処理部に送信するとともに前記第1アドレスのデータの第1の状態情報の変更後の状態情報である第2の状態情報を共有状態に変更することを特徴とする演算処理装置の制御方法。
  6. 前記演算処理装置の制御方法において
    記第1のアクセス要求が、前記第2の演算処理部による前記第1アドレスのデータの読み出し後に、前記第2の演算処理部が前記第1アドレスのデータを変更することを示す場合、前記要求信号は、前記第1アドレスのデータの読み出しの要求に加えて、前記1次キャッシュメモリに保持され且つ前記第1アドレスのデータの状態を特定する前記第2の状態情報を共有状態から無効状態にすることを要求することを特徴とする請求項5に記載の演算処理装置の制御方法。
  7. 前記演算処理装置の制御方法において、
    前記第2の演算処理部は、さらに第3の記憶部を有し、
    前記制御部は、前記第1の演算処理部から前記第1アドレスのデータを読み出した後に、前記第3の記憶部に保持され、且つ前記第1アドレスのデータの状態を特定する状態情報を排他状態にすることを要求する応答通知を、前記第2の演算処理部に出力することを特徴とする請求項6に記載の演算処理装置の制御方法。
JP2009234391A 2009-10-08 2009-10-08 演算処理装置及び制御方法 Expired - Fee Related JP5568939B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009234391A JP5568939B2 (ja) 2009-10-08 2009-10-08 演算処理装置及び制御方法
US12/899,186 US20110087841A1 (en) 2009-10-08 2010-10-06 Processor and control method
EP10187024A EP2309394A3 (en) 2009-10-08 2010-10-08 Processor and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009234391A JP5568939B2 (ja) 2009-10-08 2009-10-08 演算処理装置及び制御方法

Publications (2)

Publication Number Publication Date
JP2011081662A JP2011081662A (ja) 2011-04-21
JP5568939B2 true JP5568939B2 (ja) 2014-08-13

Family

ID=43500966

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009234391A Expired - Fee Related JP5568939B2 (ja) 2009-10-08 2009-10-08 演算処理装置及び制御方法

Country Status (3)

Country Link
US (1) US20110087841A1 (ja)
EP (1) EP2309394A3 (ja)
JP (1) JP5568939B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8495091B2 (en) * 2011-07-01 2013-07-23 Intel Corporation Dynamically routing data responses directly to requesting processor core
US8966172B2 (en) 2011-11-15 2015-02-24 Pavilion Data Systems, Inc. Processor agnostic data storage in a PCIE based shared storage enviroment
US9652182B2 (en) 2012-01-31 2017-05-16 Pavilion Data Systems, Inc. Shareable virtual non-volatile storage device for a server
JP5971036B2 (ja) * 2012-08-30 2016-08-17 富士通株式会社 演算処理装置及び演算処理装置の制御方法
KR102179385B1 (ko) 2013-11-29 2020-11-16 삼성전자주식회사 명령어를 실행하는 방법 및 프로세서, 명령어를 부호화하는 방법 및 장치 및 기록매체
US9565269B2 (en) 2014-11-04 2017-02-07 Pavilion Data Systems, Inc. Non-volatile memory express over ethernet
US9712619B2 (en) 2014-11-04 2017-07-18 Pavilion Data Systems, Inc. Virtual non-volatile memory express drive
US11361813B2 (en) 2016-09-16 2022-06-14 Aspiring Sky Co. Limited Nonvolatile memory structures with DRAM
US10559344B2 (en) 2016-09-16 2020-02-11 Aspiring Sky Co. Limited Hybrid non-volatile memory devices with static random access memory (SRAM) array and non-volatile memory (NVM) array
US10402342B2 (en) 2016-10-20 2019-09-03 Aspiring Sky Co., Limited Re-configurable non-volatile memory structures and systems

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69628493T2 (de) 1995-03-31 2004-05-19 Sun Microsystems, Inc., Santa Clara Cache-kohärentes Computersystem, das Entwertungs- und Rückschreiboperationen minimiert
US6094709A (en) * 1997-07-01 2000-07-25 International Business Machines Corporation Cache coherence for lazy entry consistency in lockup-free caches
US6324622B1 (en) * 1998-08-24 2001-11-27 International Business Machines Corporation 6XX bus with exclusive intervention
JP2002055881A (ja) * 2000-08-08 2002-02-20 Hitachi Ltd キャッシュ一致制御の実現方法およびこれを用いたデータ処理装置
US6651145B1 (en) * 2000-09-29 2003-11-18 Intel Corporation Method and apparatus for scalable disambiguated coherence in shared storage hierarchies
JP4507563B2 (ja) * 2003-11-10 2010-07-21 株式会社日立製作所 マルチプロセッサシステム
US20060053258A1 (en) * 2004-09-08 2006-03-09 Yen-Cheng Liu Cache filtering using core indicators
JP4851958B2 (ja) * 2007-02-19 2012-01-11 エヌイーシーコンピュータテクノ株式会社 バスインタフェースアダプタ、データ転送方法、データ転送システム及び情報処理装置
US20080244189A1 (en) * 2007-03-30 2008-10-02 Allison Brian D Method, Apparatus, System and Program Product Supporting Directory-Assisted Speculative Snoop Probe With Concurrent Memory Access
US8122195B2 (en) * 2007-12-12 2012-02-21 International Business Machines Corporation Instruction for pre-fetching data and releasing cache lines

Also Published As

Publication number Publication date
JP2011081662A (ja) 2011-04-21
US20110087841A1 (en) 2011-04-14
EP2309394A2 (en) 2011-04-13
EP2309394A3 (en) 2011-07-13

Similar Documents

Publication Publication Date Title
JP5568939B2 (ja) 演算処理装置及び制御方法
US6757784B2 (en) Hiding refresh of memory and refresh-hidden memory
CN101097544B (zh) 虚拟化事务存储器的全局溢出方法
US7305522B2 (en) Victim cache using direct intervention
US4484267A (en) Cache sharing control in a multiprocessor
US9477600B2 (en) Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode
US7305523B2 (en) Cache memory direct intervention
JP2837804B2 (ja) 完全統合型キャッシュ・アーキテクチャ
US8185695B2 (en) Snoop filtering mechanism
US8131935B2 (en) Virtual barrier synchronization cache
US8095733B2 (en) Virtual barrier synchronization cache castout election
EP1399823B1 (en) Using an l2 directory to facilitate speculative loads in a multiprocessor system
KR100228940B1 (ko) 메모리 일관성 유지 방법
US8918591B2 (en) Data processing system having selective invalidation of snoop requests and method therefor
US8099557B2 (en) Push for sharing instruction
US8117399B2 (en) Processing of coherent and incoherent accesses at a uniform cache
US20060053258A1 (en) Cache filtering using core indicators
US20070168620A1 (en) System and method of multi-core cache coherency
US20090019306A1 (en) Protecting tag information in a multi-level cache hierarchy
JP5319049B2 (ja) キャッシュシステム
US10628312B2 (en) Producer/consumer paced data transfer within a data processing system having a cache which implements different cache coherency protocols
US8473685B2 (en) Cache memory device, processor, and control method for cache memory device to reduce power unnecessarily consumed by cache memory
US7464227B2 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
US6976130B2 (en) Cache controller unit architecture and applied method
US20020042860A1 (en) Cache system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120605

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130917

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131118

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140114

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140411

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140418

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140609

R150 Certificate of patent or registration of utility model

Ref document number: 5568939

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees