JP6252140B2 - タスク割り付けプログラム及びタスク割り付け方法 - Google Patents
タスク割り付けプログラム及びタスク割り付け方法 Download PDFInfo
- Publication number
- JP6252140B2 JP6252140B2 JP2013248325A JP2013248325A JP6252140B2 JP 6252140 B2 JP6252140 B2 JP 6252140B2 JP 2013248325 A JP2013248325 A JP 2013248325A JP 2013248325 A JP2013248325 A JP 2013248325A JP 6252140 B2 JP6252140 B2 JP 6252140B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- memory access
- socket
- information
- access rate
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/456—Parallelism detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/445—Exploiting fine grain parallelism, i.e. parallelism at instruction level
- G06F8/4452—Software pipelining
Description
図1は、情報処理装置の機能構成例を示す図である。図1に示す情報処理装置10は、例えば所定のアプリケーションに対応させて、プロセッサのソケットやコア等にタスクを割り付けて並列処理を実行する。図1の例に示す情報処理装置10は、入力手段11と、出力手段12と、記憶手段13と、割り付け手段14と、処理実行手段15と、プロファイル情報測定手段16と、算出手段17と、更新手段18と、通信手段19と、制御手段20とを有する。
図2は、情報処理装置のハードウェア構成例を示す図である。図2に示す情報処理装置10は、入力装置31と、出力装置32と、ドライブ装置33と、補助記憶装置34と、主記憶装置35と、各種制御を行うCPU36と、ネットワーク接続装置37とを有し、これらはシステムバスBで相互に接続されている。
次に、本実施形態におけるCPU36の具体例について説明する。図3は、CPUの具体例を示す図である。図3の例に示すCPU36は、マルチコアのプロセッサであり、1つのプロセッサ・パッケージ内に複数のコアを有する。例えば、CPU36は、メモリ41と、1又は複数のソケット42(図3の例では、2つのソケット#1,#2)とを有する。また、各ソケット42は、1又は複数のコア43(図3の例では、4つのコア#0〜#3)を含むパッケージである。ソケット数やコア数については、図3の例に限定されるものではない。CPU36は、図3に示すようなマルチコアプロセッサによる並列処理によって性能を向上させる。
次に、本実施形態における情報処理装置10における処理(タスク割り付け処理)の一例について、フローチャートを用いて説明する。図4は、情報処理装置の処理の一例を示すフローチャートである。
ここで、本実施形態におけるタスク割り付けの具体例について説明する。図5は、本実施形態におけるタスク割り付け手法の具体例を示す図である。図5の例において、図3に示すようなマルチコアプロセッサの一例であるCPU36は、所定のアプリケーションに対応する実行可能ファイルを実行する。ここで、CPU36は、タスクの構文単位でのコアへの割り付けを行う場合に、タスク別プロファイル情報を取得する。
次に、本実施形態におけるタスク構文について説明する。例えば、従来手法におけるタスクの実行では、図3に示すようなプロセッサ(CPU36)の構成において、OSレベル単純な先入れ先出し方式やラウンドロビン方式等により適当なソケットにタスクを割り付けて実行していた。そのため、従来手法では、処理効率や処理性能の向上にも限界があった。そこで、本実施形態では、OpenMPのタスクを構文のネスト(入れ子)レベルまで分けてコアに割り付ける。したがって、例えばOpenMPのタスクのネストレベル別の動作特定を用いた割り付け制御を行うことができる。
次に、上述した割り付け手段14におけるコアの割り付け例について、図を用いて説明する。図8は、割り付け手段における処理の一例を示すフローチャートである。図8の例において、割り付け手段14は、まず過去のタスク別プロファイル情報があるか否かを判断する(S11)。なお、過去のタスク別プロファイル情報は、例えば同一のプログラム(タスク群)において実行されたアプリケーションに対するハードウェアモニタ情報から得られるタスク別プロファイル情報等であることが好ましいが、これに限定されるものではない。
次に、本実施形態におけるメモリアクセス率に基づくソケットやコアへの割り付け例について、図を用いて説明する。図9、図10は、メモリアクセス率に基づくソケットやコアへの割り付け例を示す図(その1、その2)である。なお、図9の例では、実行するタスクが親子関係にある場合を示し、図10の例では、実行するタスクが親子関係にない場合を示している。タスクの親子関係とは、例えば親(レベル0)のタスクの実行結果を子(レベル1)のタスクで入力データとして利用する場合等であるが、これに限定されるものではない。
次に、プロファイル情報測定手段16におけるタスク処理の開始から終了までの処理内容について説明する。まず割り付け手段14は、上述したコア選択処理における適正制御により、タスクを予め設定されたソケットやコアに割り付ける。処理実行手段15は、割り付け手段14によりタスク単位でコアに割り付けられたタスク処理を開始(実行)する。このとき、プロファイル情報測定手段16は、タスク別プロファイル情報を更新するために、ハードウェアモニタ情報を使用したタスクのプロファイル情報の測定も開始する。なお、タスクの初回実行では、タスク別プロファイル情報が存在しないため、例えば従来方式(例えば、単純な先入れ先出し方式やラウンドロビン方式等)でのコアの割り付けを行う。どの従来方式を用いるかについては、例えば予めユーザ等により設定しておくことができる。
次に、更新手段18における処理について説明する。更新手段18は、上述したプロファイル情報測定の結果を用いてタスク別プロファイル情報を更新する。例えば、本実施形態では、プログラム実行中にタスクの構文単位でソケットやコアへの割り付けを制御することができる。
次に、次回のタスクのソケットやコアへの割り付け例(各実施例)について、図を用いて説明する。
図11〜図13は、第1実施例における割り付け例を示す図(その1〜その3)である。図11(A)の例では、タスク割り付けN−1回目のタスクの内容と処理実行後のハードウェアモニタ情報の一例を示している。また、図11(B)の例では、タスク割り付けN回目のタスクの内容と処理実行後のハードウェアモニタ情報の一例を示している。
図14、図15は、第2実施例における割り付け例を示す図(その1、その2)である。第2実施例において、2スレッド並列プログラム(レベル:1階層)の場合で、タスクに親子関係なしの場合を示している点では、上述した第1実施例と同様である。更に、第2実施例では、ソケットやコアを他のアプリケーションプログラムと共有して実行する(例えば、タスク割り付け時に常に他のプログラムが任意のコアに割り付いている)場合を示している。なお、第2実施例でも、第1実施例と同様に、上述した図11に示したタスクの内容と処理実行後のハードウェアモニタ情報の一例を用いることとする。
(付記1)
アプリケーションの実行により得られるハードウェアモニタ情報からタスク毎のメモリアクセス率を算出し、
算出した前記メモリアクセス率に基づき、前記アプリケーションからのタスク指示に対して、前記アプリケーションを実行するプログラムにおける前記タスクの構文単位で、プロセッサのソケット又はコアへの割り付けを行う、処理をコンピュータに実行させるためのタスク割り付けプログラム。
(付記2)
前記ハードウェアモニタ情報から得られる前記タスクに対するメモリアクセス率と、前記ソケットにすでに割り付けられているタスクのメモリアクセス率とに基づいて、前記タスクを割り付けるソケットを選択することを特徴とする付記1に記載のタスク割り付けプログラム。
(付記3)
前記メモリアクセス率が高いタスクは、メモリアクセス率が低いタスクが存在するソケットに割り付け、前記メモリアクセス率が低いタスクはメモリアクセス率が高いタスクが存在するソケットに割り付けることを特徴とする付記2に記載のタスク割り付けプログラム。
(付記4)
前記メモリアクセス率は、前記ハードウェアモニタ情報に含まれるメモリアクセス待ち時間又はキャッシュミス情報と、前記タスクの命令実行に要した経過時間とを用いて算出することを特徴とする付記1乃至3の何れか1項に記載のタスク割り付けプログラム。
(付記5)
前記タスクの親子関係の有無に応じて、前記ソケット又は前記コアに対する割り付けを行うことを特徴とする付記1乃至4の何れか1項に記載のタスク割り付けプログラム。
(付記6)
前記タスクに親子関係がある場合は、前記親子関係にある複数のタスクを同一ソケットに割り付け、前記タスクに親子関係がない場合は、各ソケットにおける前記メモリアクセス率が均等になるように、前記ソケットに割り付けることを特徴とする付記5に記載のタスク割り付けプログラム。
(付記7)
情報処理装置が、
アプリケーションの実行により得られるハードウェアモニタ情報からタスク毎のメモリアクセス率を算出し、
算出した前記メモリアクセス率に基づき、前記アプリケーションからのタスク指示に対して、前記アプリケーションを実行するプログラムにおける前記タスクの構文単位で、プロセッサのソケット又はコアへの割り付けを行うことを特徴とするタスク割り付け方法。
(付記8)
アプリケーションの実行により得られるハードウェアモニタ情報からタスク毎のメモリアクセス率を算出する算出手段と、
前記算出手段により算出した前記メモリアクセス率に基づき、前記アプリケーションからのタスク指示に対して、前記アプリケーションを実行するプログラムにおける前記タスクの構文単位で、プロセッサのソケット又はコアへの割り付けを行う割り付け手段とを有することを特徴とする情報処理装置。
11 入力手段
12 出力手段
13 記憶手段
14 割り付け手段
15 処理実行手段
16 プロファイル情報測定手段
17 算出手段
18 更新手段
19 通信手段
20 制御手段
31 入力装置
32 出力装置
33 ドライブ装置
34 補助記憶装置
35 主記憶装置
36 CPU
37 ネットワーク接続装置
38 記録媒体
41 メモリ
42 ソケット
43 コア
Claims (5)
- アプリケーションの実行により得られるハードウェアモニタ情報からタスク毎の、タスクの親子関係の有無を示す情報と、メモリアクセス率と、を含むタスク別プロファイル情報を生成し、
前記タスク別プロファイル情報に基づき、前記アプリケーションからのタスク指示に対して、前記アプリケーションを実行するプログラムにおける前記タスクの構文単位で、プロセッサのソケット又はコアへの割り付けを行って、前記タスクを実行した結果に基づき、前記タスク別プロファイル情報を更新し、
更新された前記タスク別プロファイル情報に基づき、次のタスク指示により実行されるタスクの構文単位で、プロセッサのソケット又はコアへ割り付ける、処理をコンピュータに実行させるためのタスク割り付けプログラム。 - 更新された前記タスク別プロファイル情報に含まれるメモリアクセス率に基づいて、前記タスクを割り付けるソケットを選択することを特徴とする請求項1に記載のタスク割り付けプログラム。
- 前記メモリアクセス率が高いタスクは、メモリアクセス率が低いタスクが存在するソケットに割り付け、前記メモリアクセス率が低いタスクはメモリアクセス率が高いタスクが存在するソケットに割り付けることを特徴とする請求項2に記載のタスク割り付けプログラム。
- 前記タスクの親子関係の有無に応じて、前記ソケット又は前記コアに対する割り付けを行うことを特徴とする請求項1乃至3の何れか1項に記載のタスク割り付けプログラム。
- 情報処理装置が、
アプリケーションの実行により得られるハードウェアモニタ情報からタスク毎の、タスクの親子関係の有無を示す情報と、メモリアクセス率と、を含むタスク別プロファイル情報を生成し、
前記タスク別プロファイル情報に基づき、前記アプリケーションからのタスク指示に対して、前記アプリケーションを実行するプログラムにおける前記タスクの構文単位で、プロセッサのソケット又はコアへの割り付けを行って、前記タスクを実行した結果に基づき、前記タスク別プロファイル情報を更新し、
更新された前記タスク別プロファイル情報に基づき、次のタスク指示により実行されるタスクの構文単位で、プロセッサのソケット又はコアへの割り付ける、ことを特徴とするタスク割り付け方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013248325A JP6252140B2 (ja) | 2013-11-29 | 2013-11-29 | タスク割り付けプログラム及びタスク割り付け方法 |
US14/520,557 US9733982B2 (en) | 2013-11-29 | 2014-10-22 | Information processing device and method for assigning task |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013248325A JP6252140B2 (ja) | 2013-11-29 | 2013-11-29 | タスク割り付けプログラム及びタスク割り付け方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015106298A JP2015106298A (ja) | 2015-06-08 |
JP6252140B2 true JP6252140B2 (ja) | 2017-12-27 |
Family
ID=53265403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013248325A Active JP6252140B2 (ja) | 2013-11-29 | 2013-11-29 | タスク割り付けプログラム及びタスク割り付け方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9733982B2 (ja) |
JP (1) | JP6252140B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10031771B2 (en) * | 2015-06-15 | 2018-07-24 | Nxp Usa, Inc. | Multiple processor core interrupt priority levels |
US10649810B2 (en) | 2015-12-28 | 2020-05-12 | Advanced Micro Devices, Inc. | Data driven scheduler on multiple computing cores |
CN107528871B (zh) * | 2016-06-22 | 2020-05-26 | 伊姆西Ip控股有限责任公司 | 存储系统中的数据分析 |
CN106775975B (zh) * | 2016-12-08 | 2020-02-14 | 青岛海信移动通信技术股份有限公司 | 进程调度方法及装置 |
JP6879625B2 (ja) * | 2016-12-27 | 2021-06-02 | 東芝インフラシステムズ株式会社 | プログラマブルコントローラ、管理装置および制御システム |
JP2019049843A (ja) * | 2017-09-08 | 2019-03-28 | 富士通株式会社 | 実行ノード選定プログラム、実行ノード選定方法及び情報処理装置 |
KR102520596B1 (ko) * | 2018-02-27 | 2023-04-12 | 삼성전자주식회사 | 전자 장치, 전자 장치의 태스크 처리 방법 및 컴퓨터 판독 가능 매체 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3789215T2 (de) * | 1986-12-22 | 1994-06-01 | American Telephone & Telegraph | Gesteuerter dynamischer Belastungsausgleich für ein Multiprozessorsystem. |
JPH11134082A (ja) * | 1997-10-24 | 1999-05-21 | Oki Data Corp | 電子回路の出力タイミング制御方法 |
JP2003006175A (ja) | 2001-06-26 | 2003-01-10 | Hitachi Ltd | プロセス実行時のプログラム動作特性に基づくプロセススケジューリング方法及びこれを用いたプログラム及びデータ処理装置 |
WO2004044745A1 (ja) * | 2002-11-13 | 2004-05-27 | Fujitsu Limited | マルチスレッディングプロセッサにおけるスケジューリング方法およびマルチスレッディングプロセッサ |
US20070143759A1 (en) * | 2005-12-15 | 2007-06-21 | Aysel Ozgur | Scheduling and partitioning tasks via architecture-aware feedback information |
US7861068B2 (en) * | 2006-03-07 | 2010-12-28 | Intel Corporation | Method and apparatus for using dynamic workload characteristics to control CPU frequency and voltage scaling |
US8108844B2 (en) * | 2006-06-20 | 2012-01-31 | Google Inc. | Systems and methods for dynamically choosing a processing element for a compute kernel |
US8443348B2 (en) * | 2006-06-20 | 2013-05-14 | Google Inc. | Application program interface of a parallel-processing computer system that supports multiple programming languages |
JP2008084009A (ja) | 2006-09-27 | 2008-04-10 | Toshiba Corp | マルチプロセッサシステム |
US8132172B2 (en) * | 2007-03-26 | 2012-03-06 | Intel Corporation | Thread scheduling on multiprocessor systems |
US20090165007A1 (en) * | 2007-12-19 | 2009-06-25 | Microsoft Corporation | Task-level thread scheduling and resource allocation |
US9858053B2 (en) * | 2008-02-08 | 2018-01-02 | Reservoir Labs, Inc. | Methods and apparatus for data transfer optimization |
JP5322038B2 (ja) * | 2009-02-13 | 2013-10-23 | 日本電気株式会社 | 演算資源割当装置、演算資源割当方法、及び、演算資源割当プログラム |
US8869126B2 (en) * | 2009-10-20 | 2014-10-21 | Bull Hn Information Systems Inc. | Method and apparatus enabling multi threaded program execution for a Cobol program including OpenMP directives by utilizing a two-stage compilation process |
US20110271265A1 (en) * | 2010-04-28 | 2011-11-03 | Drozdov Alexander Y | Method of automatic generation of executable code for multi-core parallel processing |
JP5708003B2 (ja) * | 2011-02-14 | 2015-04-30 | 富士通株式会社 | 演算処理装置、計算ノード、並列計算機システム、演算処理方法および演算処理プログラム |
US8881159B2 (en) * | 2011-03-24 | 2014-11-04 | International Business Machine Corporation | Constant time worker thread allocation via configuration caching |
US9086925B2 (en) * | 2013-01-18 | 2015-07-21 | Nec Laboratories America, Inc. | Methods of processing core selection for applications on manycore processors |
US9268609B2 (en) * | 2013-04-30 | 2016-02-23 | Hewlett Packard Enterprise Development Lp | Application thread to cache assignment |
US9329899B2 (en) * | 2013-06-24 | 2016-05-03 | Sap Se | Parallel execution of parsed query based on a concurrency level corresponding to an average number of available worker threads |
US20150066988A1 (en) * | 2013-08-30 | 2015-03-05 | Nec Laboratories America, Inc. | Scalable parallel sorting on manycore-based computing systems |
JP6427054B2 (ja) * | 2015-03-31 | 2018-11-21 | 株式会社デンソー | 並列化コンパイル方法、及び並列化コンパイラ |
-
2013
- 2013-11-29 JP JP2013248325A patent/JP6252140B2/ja active Active
-
2014
- 2014-10-22 US US14/520,557 patent/US9733982B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20150154054A1 (en) | 2015-06-04 |
US9733982B2 (en) | 2017-08-15 |
JP2015106298A (ja) | 2015-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6252140B2 (ja) | タスク割り付けプログラム及びタスク割り付け方法 | |
US9965324B2 (en) | Process grouping for improved cache and memory affinity | |
KR101651871B1 (ko) | 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치 | |
JP5245722B2 (ja) | スケジューラ、プロセッサシステム、プログラム生成装置およびプログラム生成用プログラム | |
JP5911286B2 (ja) | ハードウェア・アクセラレータに対する関数の実行時割り当ての装置、方法、およびプログラム | |
JP5744909B2 (ja) | アクセラレータ・リソースを動的に管理するための方法、情報処理システム、およびコンピュータ・プログラム | |
JP6294586B2 (ja) | 命令スレッドを組み合わせた実行の管理システムおよび管理方法 | |
JP6241300B2 (ja) | ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム | |
KR101640848B1 (ko) | 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치 | |
JP2018533122A (ja) | マルチバージョンタスクの効率的なスケジューリング | |
JP2008191949A (ja) | マルチコアシステムおよびマルチコアシステムの負荷分散方法 | |
JP5718378B2 (ja) | 一又は複数のタスクを実行するために使用するシステム及び方法 | |
CN110546612B (zh) | 一种用于资源管理的方法和系统 | |
KR20180034440A (ko) | 효율적인 병렬 컴퓨팅을 위한 단순화된 태스크-기반 런타임을 위한 방법 | |
KR20100074920A (ko) | 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법 | |
Cheng et al. | Precise contention-aware performance prediction on virtualized multicore system | |
KR101177059B1 (ko) | 병렬 제어 모듈을 동적으로 할당하는 방법 | |
US10203988B2 (en) | Adaptive parallelism of task execution on machines with accelerators | |
US20110055831A1 (en) | Program execution with improved power efficiency | |
Chen et al. | Contention and locality-aware work-stealing for iterative applications in multi-socket computers | |
Hoffmann et al. | Dynamic task scheduling and load balancing on cell processors | |
KR101755154B1 (ko) | 이종 연산 처리 장치에 대한 동적 작업 할당 방법 및 장치 | |
JP6156379B2 (ja) | スケジューリング装置、及び、スケジューリング方法 | |
Rodrigo Álvarez et al. | A2l2: An application aware flexible hpc scheduling model for low-latency allocation | |
Seo et al. | {MLB}: A Memory-aware Load Balancing for Mitigating Memory Contention |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160804 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170524 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170613 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170810 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170822 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171017 |
|
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: 20171031 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171113 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6252140 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |