JP6265041B2 - コンパイルプログラム、コンパイル方法およびコンパイル装置 - Google Patents
コンパイルプログラム、コンパイル方法およびコンパイル装置 Download PDFInfo
- Publication number
- JP6265041B2 JP6265041B2 JP2014101654A JP2014101654A JP6265041B2 JP 6265041 B2 JP6265041 B2 JP 6265041B2 JP 2014101654 A JP2014101654 A JP 2014101654A JP 2014101654 A JP2014101654 A JP 2014101654A JP 6265041 B2 JP6265041 B2 JP 6265041B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- access
- program
- evaluation value
- memory
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
- G06F8/4442—Reducing the number of cache misses; Data prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/453—Microcode or microprogram
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Devices For Executing Special Programs (AREA)
Description
式(1)のmodは剰余演算子である。すなわち、キャッシュライン番号CLは、”addr/LS”を”(WS×1024)/LS”で割った余りに対応する。
なお、式(2)のL(i)およびc(i)は、連続長管理テーブルTABL2のi番目の連続長Lおよび発生回数cをそれぞれ示す。また、式(2)のiは、例えば、連続長管理テーブルTABL2の要素数がm個(図9の例では、16個)の場合、1からmまでの整数である。式(2)で表される評価値Vaは、連続長Lと発生回数cとに基づいて算出される評価値の一例である。
重み係数w(i)は、固定値でもよいし、ユーザにより任意に設定される値でもよい。なお、式(3)で表される評価値Vaは、重み係数w(i)が連続長L(i)毎に設定されるため、連続長Lと発生回数cとに基づいて算出される評価値の一例である。
(付記1)
メモリに記憶されたデータを事前にキャッシュメモリに転送するハードウエアプリフェッチ機能を有するプロセッサで実行可能な機械語プログラムにソースプログラムを変換するコンパイル処理をコンピュータに実行させるコンパイルプログラムにおいて、
前記ソースプログラムを中間コードに変換し、
前記メモリに記憶された前記データを事前に前記キャッシュメモリに転送するプリフェッチ命令の挿入対象の前記データである対象データの中から、前記ハードウエアプリフェッチ機能の動作条件に対応するアクセスパターンを満たす前記データを、前記対象データのメモリアクセスに関するプロファイル情報に基づいて検出し、
前記アクセスパターンを満たす前記データが連続する長さに基づいて、前記対象データの評価値を算出し、
前記対象データに対する前記プリフェッチ命令の挿入を抑止するか否かを前記評価値に基づいて判定し、判定結果に基づいて前記中間コードを更新し、
更新された前記中間コードを前記機械語プログラムに変換する、
処理をコンピュータに実行させるコンパイルプログラム。
(付記2)
付記1に記載のコンパイルプログラムにおいて、
前記長さと前記アクセスパターンを満たす前記データの前記長さ毎の発生回数とに基づいて、前記評価値を算出する処理をコンピュータに実行させるコンパイルプログラム。
(付記3)
付記1または付記2に記載のコンパイルプログラムにおいて、
前記アクセスパターンを満たす前記データとして、前記キャッシュメモリのキャッシュラインをアクセス単位とした場合のアクセス先の変化が2ライン未満の変化量の前記データを検出する処理をコンピュータに実行させるコンパイルプログラム。
(付記4)
付記1または付記2に記載のコンパイルプログラムにおいて、
前記アクセスパターンを満たす前記データとして、アクセス先が一定のアクセス幅で昇順および降順のいずれか一方向に変化する前記データを検出する処理をコンピュータに実行させるコンパイルプログラム。
(付記5)
付記1ないし付記4のいずれか1項に記載のコンパイルプログラムにおいて、
前記対象データの中の各データのアクセスの順番を示すインデックスとアクセス先を示すアドレス情報とを含む前記プロファイル情報を、前記ソースプログラムを実行した前記プロセッサから前記対象データ毎に出力させるオブジェクトコードを生成する処理をコンピュータに実行させるコンパイルプログラム。
(付記6)
メモリに記憶されたデータを事前にキャッシュメモリに転送するハードウエアプリフェッチ機能を有するプロセッサで実行可能な機械語プログラムにソースプログラムを変換するコンパイル方法において、
コンピュータは、
前記ソースプログラムを中間コードに変換し、
前記メモリに記憶された前記データを事前に前記キャッシュメモリに転送するプリフェッチ命令の挿入対象の前記データである対象データの中から、前記ハードウエアプリフェッチ機能の動作条件に対応するアクセスパターンを満たす前記データを、前記対象データのメモリアクセスに関するプロファイル情報に基づいて検出し、
前記アクセスパターンを満たす前記データが連続する長さに基づいて、前記対象データの評価値を算出し、
前記対象データに対する前記プリフェッチ命令の挿入を抑止するか否かを前記評価値に基づいて判定し、判定結果に基づいて前記中間コードを更新し、
更新した前記中間コードを前記機械語プログラムに変換する
ことを特徴とするコンパイル方法。
(付記7)
付記6に記載のコンパイル方法において、
前記コンピュータは、前記長さと前記アクセスパターンを満たす前記データの前記長さ毎の発生回数とに基づいて、前記評価値を算出することを特徴とするコンパイル方法。
(付記8)
付記6または付記7に記載のコンパイル方法において、
前記コンピュータは、前記アクセスパターンを満たす前記データとして、前記キャッシュメモリのキャッシュラインをアクセス単位とした場合のアクセス先の変化が2ライン未満の変化量の前記データを検出することを特徴とするコンパイル方法。
(付記9)
付記6または付記7に記載のコンパイル方法において、
前記コンピュータは、前記アクセスパターンを満たす前記データとして、アクセス先が一定のアクセス幅で昇順および降順のいずれか一方向に変化する前記データを検出することを特徴とするコンパイル方法。
(付記10)
付記6ないし付記9のいずれか1項に記載のコンパイル方法において、
前記コンピュータは、前記対象データの中の各データのアクセスの順番を示すインデックスとアクセス先を示すアドレス情報とを含む前記プロファイル情報を、前記ソースプログラムを実行した前記プロセッサから前記対象データ毎に出力させるオブジェクトコードを生成することを特徴とするコンパイル方法。
(付記11)
メモリに記憶されたデータを事前にキャッシュメモリに転送するハードウエアプリフェッチ機能を有するプロセッサで実行可能な機械語プログラムにソースプログラムを変換するコンパイル処理を実行するコンパイル装置において、
前記ソースプログラムを中間コードに変換する変換部と、
前記中間コードを更新する最適化部と、
更新された前記中間コードを前記機械語プログラムに変換するコード生成部とを有し、
前記最適化部は、
前記メモリに記憶された前記データを事前に前記キャッシュメモリに転送するプリフェッチ命令の挿入対象の前記データである対象データの中から、前記ハードウエアプリフェッチ機能の動作条件に対応するアクセスパターンを満たす前記データを、前記対象データのメモリアクセスに関するプロファイル情報に基づいて検出する検出部と、
前記アクセスパターンを満たす前記データが連続する長さに基づいて、前記対象データの評価値を算出する算出部と、
前記対象データに対する前記プリフェッチ命令の挿入を抑止するか否かを前記評価値に基づいて判定し、判定結果に基づいて前記中間コードを更新する更新部とを有することを特徴とするコンパイル装置。
(付記12)
付記11に記載のコンパイル装置において、
前記算出部は、前記長さと前記アクセスパターンを満たす前記データの前記長さ毎の発生回数とに基づいて、前記評価値を算出することを特徴とするコンパイル装置。
(付記13)
付記11または付記12に記載のコンパイル装置において、
前記検出部は、前記アクセスパターンを満たす前記データとして、前記キャッシュメモリのキャッシュラインをアクセス単位とした場合のアクセス先の変化が2ライン未満の変化量の前記データを検出することを特徴とするコンパイル装置。
(付記14)
付記11または付記12に記載のコンパイル装置において、
前記検出部は、前記アクセスパターンを満たす前記データとして、アクセス先が一定のアクセス幅で昇順および降順のいずれか一方向に変化する前記データを検出することを特徴とするコンパイル装置。
(付記15)
付記11ないし付記14のいずれか1項に記載のコンパイル装置において、
前記最適化部は、前記対象データの中の各データのアクセスの順番を示すインデックスとアクセス先を示すアドレス情報とを含む前記プロファイル情報を、前記ソースプログラムを実行した前記プロセッサから前記対象データ毎に出力させるオブジェクトコードを生成することを特徴とするコンパイル装置。
(付記16)
メモリに記憶されたデータを事前にキャッシュメモリに転送するハードウエアプリフェッチ機能を有するプロセッサで実行可能な機械語プログラムにソースプログラムを変換するコンパイル処理をコンピュータに実行させるコンパイルプログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記ソースプログラムを中間コードに変換し、
前記メモリに記憶された前記データを事前に前記キャッシュメモリに転送するプリフェッチ命令の挿入対象の前記データである対象データの中から、前記ハードウエアプリフェッチ機能の動作条件に対応するアクセスパターンを満たす前記データを、前記対象データのメモリアクセスに関するプロファイル情報に基づいて検出し、
前記アクセスパターンを満たす前記データが連続する長さに基づいて、前記対象データの評価値を算出し、
前記対象データに対する前記プリフェッチ命令の挿入を抑止するか否かを前記評価値に基づいて判定し、判定結果に基づいて前記中間コードを更新し、
更新された前記中間コードを前記機械語プログラムに変換する、
処理をコンピュータに実行させるコンパイルプログラムを記録したコンピュータ読み取り可能な記録媒体。
(付記17)
付記16に記載のコンピュータ読み取り可能な記録媒体において、
前記長さと前記アクセスパターンを満たす前記データの前記長さ毎の発生回数とに基づいて、前記評価値を算出する処理をコンピュータに実行させるコンパイルプログラムを記録したコンピュータ読み取り可能な記録媒体。
(付記18)
付記16または付記17に記載のコンピュータ読み取り可能な記録媒体において、
前記アクセスパターンを満たす前記データとして、前記キャッシュメモリのキャッシュラインをアクセス単位とした場合のアクセス先の変化が2ライン未満の変化量の前記データを検出する処理をコンピュータに実行させるコンパイルプログラムを記録したコンピュータ読み取り可能な記録媒体。
(付記19)
付記16または付記17に記載のコンピュータ読み取り可能な記録媒体において、
前記アクセスパターンを満たす前記データとして、アクセス先が一定のアクセス幅で昇順および降順のいずれか一方向に変化する前記データを検出する処理をコンピュータに実行させるコンパイルプログラムを記録したコンピュータ読み取り可能な記録媒体。
(付記20)
付記16ないし付記19のいずれか1項に記載のコンピュータ読み取り可能な記録媒体において、
前記対象データの中の各データのアクセスの順番を示すインデックスとアクセス先を示すアドレス情報とを含む前記プロファイル情報を、前記ソースプログラムを実行した前記プロセッサから前記対象データ毎に出力させるオブジェクトコードを生成する処理をコンピュータに実行させるコンパイルプログラムを記録したコンピュータ読み取り可能な記録媒体。
Claims (4)
- メモリに記憶されたデータを事前にキャッシュメモリに転送するハードウエアプリフェッチ機能を有するプロセッサで実行可能な機械語プログラムにソースプログラムを変換するコンパイル処理をコンピュータに実行させるコンパイルプログラムにおいて、
前記ソースプログラムを中間コードに変換し、
前記メモリに記憶された前記データを事前に前記キャッシュメモリに転送するプリフェッチ命令の挿入対象の前記データである対象データの中から、前記ハードウエアプリフェッチ機能の動作条件に対応するアクセスパターンを満たす前記データを、前記対象データのメモリアクセスに関するプロファイル情報に基づいて検出し、
前記アクセスパターンを満たす前記データが連続する長さに基づいて、前記対象データの評価値を算出し、
前記対象データに対する前記プリフェッチ命令の挿入を抑止するか否かを前記評価値に基づいて判定し、判定結果に基づいて前記中間コードを更新し、
更新された前記中間コードを前記機械語プログラムに変換する、
処理をコンピュータに実行させるコンパイルプログラム。 - 請求項1に記載のコンパイルプログラムにおいて、
前記長さと前記アクセスパターンを満たす前記データの前記長さ毎の発生回数とに基づいて、前記評価値を算出する処理をコンピュータに実行させるコンパイルプログラム。 - メモリに記憶されたデータを事前にキャッシュメモリに転送するハードウエアプリフェッチ機能を有するプロセッサで実行可能な機械語プログラムにソースプログラムを変換するコンパイル方法において、
コンピュータは、
前記ソースプログラムを中間コードに変換し、
前記メモリに記憶された前記データを事前に前記キャッシュメモリに転送するプリフェッチ命令の挿入対象の前記データである対象データの中から、前記ハードウエアプリフェッチ機能の動作条件に対応するアクセスパターンを満たす前記データを、前記対象データのメモリアクセスに関するプロファイル情報に基づいて検出し、
前記アクセスパターンを満たす前記データが連続する長さに基づいて、前記対象データの評価値を算出し、
前記対象データに対する前記プリフェッチ命令の挿入を抑止するか否かを前記評価値に基づいて判定し、判定結果に基づいて前記中間コードを更新し、
更新した前記中間コードを前記機械語プログラムに変換する
ことを特徴とするコンパイル方法。 - メモリに記憶されたデータを事前にキャッシュメモリに転送するハードウエアプリフェッチ機能を有するプロセッサで実行可能な機械語プログラムにソースプログラムを変換するコンパイル処理を実行するコンパイル装置において、
前記ソースプログラムを中間コードに変換する変換部と、
前記中間コードを更新する最適化部と、
更新された前記中間コードを前記機械語プログラムに変換するコード生成部とを有し、
前記最適化部は、
前記メモリに記憶された前記データを事前に前記キャッシュメモリに転送するプリフェッチ命令の挿入対象の前記データである対象データの中から、前記ハードウエアプリフェッチ機能の動作条件に対応するアクセスパターンを満たす前記データを、前記対象データのメモリアクセスに関するプロファイル情報に基づいて検出する検出部と、
前記アクセスパターンを満たす前記データが連続する長さに基づいて、前記対象データの評価値を算出する算出部と、
前記対象データに対する前記プリフェッチ命令の挿入を抑止するか否かを前記評価値に基づいて判定し、判定結果に基づいて前記中間コードを更新する更新部とを有することを特徴とするコンパイル装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014101654A JP6265041B2 (ja) | 2014-05-15 | 2014-05-15 | コンパイルプログラム、コンパイル方法およびコンパイル装置 |
US14/638,351 US9483244B2 (en) | 2014-05-15 | 2015-03-04 | Compiling method and compiling device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014101654A JP6265041B2 (ja) | 2014-05-15 | 2014-05-15 | コンパイルプログラム、コンパイル方法およびコンパイル装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015219652A JP2015219652A (ja) | 2015-12-07 |
JP6265041B2 true JP6265041B2 (ja) | 2018-01-24 |
Family
ID=54538556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014101654A Active JP6265041B2 (ja) | 2014-05-15 | 2014-05-15 | コンパイルプログラム、コンパイル方法およびコンパイル装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9483244B2 (ja) |
JP (1) | JP6265041B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9104577B2 (en) * | 2013-08-27 | 2015-08-11 | International Business Machines Corporation | Optimizing memory bandwidth consumption using data splitting with software caching |
US10824342B2 (en) | 2014-02-28 | 2020-11-03 | Hewlett Packard Enterprise Development Lp | Mapping mode shift between mapping modes that provides continuous application access to storage, wherein address range is remapped between said modes during data migration and said address range is also utilized bypass through instructions for direct access |
US10824362B2 (en) * | 2015-03-27 | 2020-11-03 | Hewlett Packard Enterprise Development Lp | File migration to persistent memory |
CN107209720B (zh) | 2015-04-02 | 2020-10-13 | 慧与发展有限责任合伙企业 | 用于页面高速缓存的系统及方法以及存储介质 |
JP6974722B2 (ja) * | 2018-01-24 | 2021-12-01 | 富士通株式会社 | コンパイラプログラム、コンパイル方法及びコンパイルする情報処理装置 |
US11204875B1 (en) | 2020-07-17 | 2021-12-21 | International Business Machines Corporation | Software assisted data address prefetch |
EP4206937A1 (en) * | 2021-12-29 | 2023-07-05 | Samsung Electronics Co., Ltd. | Storage device including indirect access module, method of operating the same, and method of operating storage system including the same |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001166989A (ja) | 1999-12-07 | 2001-06-22 | Hitachi Ltd | プリフェッチ機構を有するメモリシステム及びその動作方法 |
JP3969009B2 (ja) | 2001-03-29 | 2007-08-29 | 株式会社日立製作所 | ハードウェアプリフェッチシステム |
US7669194B2 (en) * | 2004-08-26 | 2010-02-23 | International Business Machines Corporation | Fine-grained software-directed data prefetching using integrated high-level and low-level code analysis optimizations |
JP2006330813A (ja) | 2005-05-23 | 2006-12-07 | Hitachi Ltd | プリフェッチ起動命令挿入機能を備えたコンパイラ装置 |
JP2008071128A (ja) * | 2006-09-14 | 2008-03-27 | Hitachi Ltd | プリフェッチ制御方法及びコンパイル装置 |
US8260990B2 (en) | 2007-11-19 | 2012-09-04 | Qualcomm Incorporated | Selective preclusion of a bus access request |
US8285941B2 (en) * | 2008-02-25 | 2012-10-09 | International Business Machines Corporation | Enhancing timeliness of cache prefetching |
JP2009230374A (ja) | 2008-03-21 | 2009-10-08 | Fujitsu Ltd | 情報処理装置,プログラム,及び命令列生成方法 |
JP5251688B2 (ja) | 2009-04-02 | 2013-07-31 | 富士通株式会社 | コンパイラプログラムおよびコンパイラ装置 |
JP5238797B2 (ja) | 2010-12-20 | 2013-07-17 | パナソニック株式会社 | コンパイラ装置 |
GB2510763B (en) * | 2011-12-29 | 2020-05-20 | Intel Corp | Multi-level memory with direct access |
-
2014
- 2014-05-15 JP JP2014101654A patent/JP6265041B2/ja active Active
-
2015
- 2015-03-04 US US14/638,351 patent/US9483244B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20150331677A1 (en) | 2015-11-19 |
JP2015219652A (ja) | 2015-12-07 |
US9483244B2 (en) | 2016-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6265041B2 (ja) | コンパイルプログラム、コンパイル方法およびコンパイル装置 | |
JP4934267B2 (ja) | コンパイラ装置 | |
JP4374221B2 (ja) | コンピュータシステムおよび記録媒体 | |
US5797013A (en) | Intelligent loop unrolling | |
JP4844971B2 (ja) | インタープリタの最適化をプログラム・コード変換の間に実行する方法及び装置 | |
US20080127131A1 (en) | Software solution for cooperative memory-side and processor-side data prefetching | |
WO2005078579A1 (ja) | プログラム変換装置およびプログラム変換方法 | |
JP6245031B2 (ja) | コンパイルプログラム、コンパイル方法およびコンパイル装置 | |
Fuchs et al. | Loop-aware memory prefetching using code block working sets | |
JP6252348B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
JP2008293378A (ja) | プログラム書き換え装置 | |
JP6319739B2 (ja) | インライニングのための方法及びそのコンピュータ・プログラム、並びに、当該インライニングを実行するためのコンピュータ | |
JP2021051724A (ja) | デュアル空間パターンプリフェッチャについての装置、方法、およびシステム | |
JP2014112327A (ja) | 変換プログラム、変換装置及び変換方法 | |
JP5238797B2 (ja) | コンパイラ装置 | |
US20120159460A1 (en) | Preferred compilation | |
JP2000207224A (ja) | ソフトウェアプリフェッチ方法 | |
JP2008071128A (ja) | プリフェッチ制御方法及びコンパイル装置 | |
JP6442967B2 (ja) | 情報処理プログラム、情報処理装置、情報処理方法 | |
JP6974722B2 (ja) | コンパイラプログラム、コンパイル方法及びコンパイルする情報処理装置 | |
KR101084728B1 (ko) | 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서 | |
US20050144420A1 (en) | Data processing apparatus and compiler apparatus | |
Huang et al. | RLOP: a framework design for offset prefetching combined with reinforcement learning | |
WO2023237084A1 (zh) | 一种数据预取方法、编译方法及相关装置 | |
JP2009277243A (ja) | コンパイラ装置およびオペレーティングシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170206 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7426 Effective date: 20170803 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20170803 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20170804 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171117 |
|
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: 20171128 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171211 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6265041 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |