JPWO2020174581A1 - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents
情報処理装置、情報処理方法及び情報処理プログラム Download PDFInfo
- Publication number
- JPWO2020174581A1 JPWO2020174581A1 JP2021501432A JP2021501432A JPWO2020174581A1 JP WO2020174581 A1 JPWO2020174581 A1 JP WO2020174581A1 JP 2021501432 A JP2021501432 A JP 2021501432A JP 2021501432 A JP2021501432 A JP 2021501432A JP WO2020174581 A1 JPWO2020174581 A1 JP WO2020174581A1
- Authority
- JP
- Japan
- Prior art keywords
- parallelization
- program
- information
- schedule
- generation unit
- 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.)
- Granted
Links
- 230000010365 information processing Effects 0.000 title claims description 49
- 238000003672 processing method Methods 0.000 title claims description 3
- 238000012545 processing Methods 0.000 claims abstract description 104
- 238000000034 method Methods 0.000 claims abstract description 39
- 230000008569 process Effects 0.000 claims abstract description 30
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000003860 storage Methods 0.000 description 12
- 230000006872 improvement Effects 0.000 description 11
- 238000012790 confirmation Methods 0.000 description 10
- 230000009977 dual effect Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000000605 extraction Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/43—Checking; Contextual analysis
-
- 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/70—Software maintenance or management
- G06F8/77—Software metrics
-
- 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/466—Transaction processing
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/314—Parallel programming languages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
例えば、プログラマーが並列性を考慮せずにタスクの独立性が低いプログラムを作成した場合は、並列化を行っても、各プロセッサユニットが独立して動作できる箇所が限定される。このため、プロセッサユニット間で同期をとるための通信が頻繁に発生し、演算性能が改善されない。
特に、PLC(Programmable Logic Controller)のようなシステムでは、複数のプロセッサユニットがそれぞれメモリをもつため、同期のための通信によるオーバーヘッドが大きくなる。このため、PLCのようなシステムでは、並列化による演算性能の改善度合いが、プログラムにおけるタスクの独立性及び制御構造に大きく依存する。
プログラムを実行する際に可能な処理の並列化数を並列化可能数として判定する判定部と、
前記プログラムを実行する際の前記プログラムの実行スケジュールを並列化実行スケジュールとして生成するスケジュール生成部と、
前記並列化実行スケジュールで前記プログラムを実行する際の前記プログラムの実行に要する時間である並列化実行時間を算出する算出部と、
前記並列化可能数と前記並列化実行スケジュールと前記並列化実行時間とが示される並列化情報を生成し、生成した前記並列化情報を出力する情報生成部とを有する。
***構成の説明***
図1は、本実施の形態に係るシステムの構成例を示す。
本実施の形態に係るシステムは、情報処理装置100、制御機器200、設備(1)301、設備(2)302、設備(3)303、設備(4)304、設備(5)305、ネットワーク401及びネットワーク402で構成される。
なお、情報処理装置100により行われる動作は、情報処理方法及び情報処理プログラムに相当する。
制御機器200は、例えばPLCである。また、制御機器200は、一般的なPC(Personal Computer)であってもよい。
図1では、5つの設備が示されているが、工場ライン300に配置される設備の数は5つに限らない。
情報処理装置100はコンピュータであり、情報処理装置100のソフトウェア構成をプログラムで実現することができる。情報処理装置100のハードウェア構成としては、バスに、プロセッサ11、メモリ12、ストレージ13、通信装置14、入力装置15及び表示装置16が接続されている。
プロセッサ11は、例えばCPU(Central Processing Unit)である。
メモリ12は、例えばRAM(Random Access Memory)である。
ストレージ13は、例えばハードディスク装置、SSD、メモリカード読み書き装置である。
通信装置14は、例えばEthernet(登録商標)通信ボード、CC−Linkなどのフィールドネットワーク用の通信ボードである。
入力装置15は、例えばマウス、キーボードである。
表示装置16は、例えばディスプレイである。
また、入力装置15と表示装置16をあわせたタッチパネルを用いてもよい。
ストレージ13には、後述する入力処理部101、行プログラム取得部104、ブロック生成部106、タスクグラフ生成部108、タスクグラフ枝切り部109、スケジュール生成部112及び表示処理部114の機能を実現するプログラムが記憶されている。
これらプログラムは、ストレージ13からメモリ12にロードされる。そして、プロセッサ11がこれらプログラムを実行して、後述する入力処理部101、行プログラム取得部104、ブロック生成部106、タスクグラフ生成部108、タスクグラフ枝切り部109、スケジュール生成部112及び表示処理部114の動作を行う。
図2では、プロセッサ11が入力処理部101、行プログラム取得部104、ブロック生成部106、タスクグラフ生成部108、タスクグラフ枝切り部109、スケジュール生成部112及び表示処理部114の機能を実現するプログラムを実行している状態を模式的に表している。
本実施の形態では、入力処理部101は、図5に例示するプログラムをストレージ13からプログラムデータベース102に格納する。
図5のプログラムでは、第一引数及び第二引数がステップ数情報である。また、図5のプログラムでは、第三引数が命令であり、第四引数以降がデバイスである。ステップ数とはプログラムの規模を測るための指標となる数値である。命令とは制御機器200のプロセッサが行う動作を定義する文字列である。また、デバイスとは命令の対象となる変数である。
命令の種類には、行プログラムの命令が参照命令及び書出し命令のいずれであるかが示される。
実行時間には、行プログラムの実行に要する時間が示される。
先頭フラグには、行プログラムが後述するブロックの先頭に位置するか否かが示される。つまり、先頭フラグが「1」である行プログラムはブロックの先頭に位置することになる。
終端フラグには、行プログラムがブロックの終端に位置するか否かが示される。つまり、終端フラグが「1」である行プログラムはブロックの終端に位置することになる。
そして、ブロック生成部106は、先頭フラグ及び終端フラグに基づいて、複数の行プログラムをグループ化して1つのブロックを構成する。
つまり、ブロック生成部106は、先頭フラグが「1」の行プログラムから終端フラグが「1」の行プログラムまでをグループ化して、1つのブロックを生成する。
ブロック生成部106によるブロックの生成の結果、プログラムは複数のブロックに分割されることになる。
また、ブロック生成部106は、ブロック間の依存関係を判定する。ブロック間の依存関係の詳細については後述する。
また、ブロック生成部106は、ブロックごとに、ブロックに含まれる行プログラム、ブロックに含まれる行プログラムのデバイス、命令の種類、実行時間が示されるブロック情報と、ブロック間の依存関係を示す依存関係情報を生成する。
そして、ブロック生成部106は、ブロック情報と依存関係情報を依存関係データベース107に格納する。
また、タスクグラフ枝切り部109は、枝切り後のタスクグラフを解析して、プログラムを実行する際に可能な処理の並列化数を並列化可能数として判定する。より具体的には、タスクグラフ枝切り部109は、枝切り後のタスクグラフにおけるブロック間の接続数のうちの最大の接続数に従って並列化可能数を判定する。
タスクグラフ枝切り部109は、枝切り後のタスクグラフと、並列化可能数が示される並列化可能数情報をタスクグラフデータベース110に格納する。
なお、タスクグラフ枝切り部109は、判定部に相当する。また、タスクグラフ枝切り部109により行われる処理は、判定処理に相当する。
本実施の形態では、スケジュール生成部112は、並列化実行スケジュールが示されるガントチャートを生成する。
スケジュール生成部112は、生成したガントチャートをスケジュールデータベース113に格納する。
なお、スケジュール生成部112により行われる処理は、スケジュール生成処理に相当する。
そして、表示処理部114は、並列化実行スケジュールでプログラムを実行する際のプログラムの実行に要する時間である並列化実行時間を算出する。
また、表示処理部114は、並列化情報を生成する。例えば、表示処理部114は、図6に示す並列化情報を生成する。図6の並列化情報は、基本情報、タスクグラフ、並列化実行スケジュール(ガントチャート)で構成される。図6の並列化情報の詳細は後述する。
表示処理部114は、生成した並列化情報を表示装置16に出力する。
なお、表示処理部114は、算出部及び情報生成部に相当する。また、表示処理部114により行われる処理は、算出処理及び情報生成処理に相当する。
次に、図4のフローチャートを参照して、本実施の形態に係る情報処理装置100の動作例を説明する。
つまり、行プログラム取得部104は、プログラムデータベース102から1行ずつプログラムを取得する。
つまり、行プログラム取得部104は、ステップS103で取得した行プログラムからデバイスを取得する。また、行プログラム取得部104は、命令データベース103から、ステップS103で取得した行プログラムに対応する、命令の種類と実行時間と先頭フラグと終端フラグを取得する。
前述したように、命令データベース103には、行プログラムごとに、命令の種類、実行時間、先頭フラグ及び終端フラグが定義されている。このため、行プログラム取得部104は、ステップS103で取得した行プログラムに対応する、命令の種類と実行時間と先頭フラグと終端フラグを命令データベース103から取得することができる。
そして、行プログラム取得部104は、行プログラム、デバイス、命令の種類、実行時間、先頭フラグ及び終端フラグを重み付きプログラムデータベース105に格納する。
行プログラム取得部104は、プログラムの全ての行についてステップS103及びステップS104を繰り返す。
そして、ブロック生成部106は、ブロックを生成する(ステップS105)。
より具体的には、ブロック生成部106は、先頭フラグが「1」の行プログラムから終端フラグが「1」の行プログラムまでをグループ化して、1つのブロックを生成する。
ブロック生成部106は、プログラムの全体が複数のブロックに分割されるまで、ステップS105を繰り返す。
本実施の形態では、依存関係の抽出は、命令語の内容と命令語に対応するデバイス名のラベリングによって行われる。順守しなければならない実行順序を守ることをこの手順で担保するには、複数のブロックで使用されるデバイス(以降は共通デバイスと表記)の実行順序を守ることである。命令毎にデバイスに与える影響は異なり、本実施の形態では、ブロック生成部106は、以下のようにデバイスへの影響を判定する。
・接点命令、比較演算命令など :入力
・出力命令、ビット処理命令など :出力
ここで、入力とは命令で使用されたデバイスの情報を読み込む処理であり、出力とは命令で使用されたデバイスの情報を書き変える処理である
本実施の形態では、ブロック生成部106が、プログラムに記載されているデバイスを入力に用いられるデバイスと出力に用いられるデバイスに分けラベリングをすることで、依存関係の抽出を行う。
ステップS152において、ブロック生成部106は、ステップS151で読み込んだ行プログラムのデバイスが入力に用いられるデバイスであるか否かを判定する。つまり、ブロック生成部106は、ステップS151で読み込んだ行プログラムに、「接点命令+デバイス名」の記述または「比較演算命令+デバイス名」の記述が含まれているか否かを判定する。
ステップS151で読み込んだ行プログラムに、「接点命令+デバイス名の記述」または「比較演算命令+デバイス名」の記述が含まれている場合(ステップS152でYES)は、ブロック生成部106は、ステップS151で読み込んだ行プログラムのデバイスが入力に用いられるデバイスであることを規定の記憶領域に記録する。
一方、ステップS151で読み込んだ行プログラムに、「接点命令+デバイス名」の記述及び「比較演算命令+デバイス名」の記述のいずれも含まれていない場合(ステップS152でNO)は、ステップS154において、ブロック生成部106は、ステップS151で読み込んだ行プログラムのデバイスが出力に用いられるデバイスであるか否かを判定する。つまり、ブロック生成部106は、ステップS151で読み込んだ行プログラムに、「出力命令+デバイス名」の記述または「ビット処理命令+デバイス名」の記述が含まれているか否かを判定する。
ステップS151で読み込んだ行プログラムに、「出力命令+デバイス名」の記述または「ビット処理命令+デバイス名」の記述が含まれている場合(ステップS154でYES)は、ブロック生成部106は、ステップS151で読み込んだ行プログラムのデバイスが出力に用いられるデバイスであることを規定の記憶領域に記録する。
一方、ステップS151で読み込んだ行プログラムに、「出力命令+デバイス名」の記述及び「ビット処理命令+デバイス名」の記述のいずれも含まれていない場合(ステップS154でNO)は、ステップS156において、ブロック生成部106は、未だ読み込んでない行プログラムがあるか否かを判定する。
未だ読み込んでいない行プログラムがある場合(ステップS156でYES)は、処理がステップS151に戻る。一方、全ての行プログラムを読み込んでいる場合(ステップS156でNO)は、ブロック生成部106は処理を終了する。
図11のブロック名:N1の一行目に注目すると、命令にLD、デバイス名にM0が使用されている。LDは接点命令であるため、デバイスM0はブロックN1で入力として使用されたことが記録される。同様の処理を全ての行に対して行うことで、図11の下段に示す抽出結果が得られる。
共通デバイスにおいて、以下のような場合に、ブロック生成部106はブロック間に依存関係があると判定する。
・前:入力、後:出力
・前:出力、後:入力
・前:出力、後:出力
なお、「前」は共通デバイスが用いられているブロック間において実行順番が先のブロックを意味する。また、「後」は共通デバイスが用いられているブロック間において実行順番が後のブロックを意味する。
ある特定の共通デバイスにおいて、比較する2つのブロックが共に入力の場合、参照する共通デバイスの値は同じ値であるため、実行順序を変更しても実行結果に影響を及ぼさない(図12のM1におけるN1とN3)。それに対して、上記の三パターンは参照する共通デバイスの値が変化するため、実行順序を変更すると意図しない実行結果となる。例えば、図12の共通デバイスM0に注目すると、ブロックN1で入力、ブロックN3で出力として使用されている。このため、ブロックN1とブロックN3に依存関係がある。同様の処理を全ての共通デバイスに対して行うことで、図12のブロック間の依存関係が得られる
ブロック間の依存関係をもとに、依存関係のあるブロック同士をつなぐと、データフローグラフ(DFG)が得られる。
前述したように、ブロック情報では、ブロックごとに、ブロックに含まれる行プログラム、ブロックに含まれる行プログラムのデバイス、命令の種類、実行時間が示される。依存関係情報には、ブロック間の依存関係が示される。
タスクグラフ生成部108は、依存関係データベース107からブロック情報と並列化可能数情報と依存関係情報を取得し、ブロック情報と並列化可能数情報と依存関係情報を参照して、タスクグラフを生成する。
つまり、タスクグラフ枝切り部109は、タスクグラフにおけるブロック間の依存関係を整理することで、タスクグラフでの余分な経路を削除する。
タスクグラフ枝切り部109は、枝切り後のタスクグラフにおけるブロック間の接続数のうちの最大の接続数を並列化可能数に指定する。接続数は、1つの先行するブロックに接続する後続のブロックの数である。
例えば、枝切り後のタスクグラフにおいて、先行するブロックAと後続するブロックBが接続され、先行するブロックAと後続するブロックCが接続され、先行するブロックAと後続するブロックDが接続されている場合は、接続数は3である。そして、接続数3が枝切り後のタスクグラフ内で最大の接続数であれば、タスクグラフ枝切り部109は、並列化可能数を3と判定する。
このようにして、タスクグラフ枝切り部109は、プログラムに含まれる複数のブロックでの並列化可能数を判定する。
タスクグラフ枝切り部109は、枝切り後のタスクグラフと、並列化可能数が示される並列化可能数情報をタスクグラフデータベース110に格納する。
より具体的には、スケジュール生成部112は、枝切り後のタスクグラフを参照し、スケジューリングアルゴリズムを用いて、プログラマーにより指定されたCPUコア数でプログラムを実行させる場合の並列化実行スケジュール(ガントチャート)を生成する。スケジュール生成部112は、例えば、クリティカルパスを抽出し、クリティカルパスが赤色で表示されるように並列化実行スケジュール(ガントチャート)を生成する。
スケジュール生成部112は、生成した並列化実行スケジュール(ガントチャート)をスケジュールデータベース113に格納する。
より具体的には、表示処理部114は、スケジュールデータベース113からスケジュール(ガントチャート)を取得し、また、依存関係データベース107からブロック情報を取得する。そして、表示処理部114は、ブロック情報を参照して、ブロックごとに行プログラムの実行時間を積算して、ブロックごとの実行時間を算出する。そして、表示処理部114は、スケジュール(ガントチャート)に従ってブロックごとの実行時間を積算して、プログラマーにより指定されたCPUコア数でプログラムを実行した場合の実行時間(並列化実行時間)を得る。
例えば、表示処理部114は図6に示す並列化情報を生成する。
図6の並列化情報は、基本情報、タスクグラフ、並列化実行スケジュール(ガントチャート)で構成される。
プログラムの総ステップ数は、図5に示すステップ数情報に示されるステップ数の合計値である。表示処理部114は、依存関係データベース107からブロック情報を取得し、ブロック情報に含まれる行プログラムのステップ数情報を参照することで、総ステップ数を得ることができる。
また、並列化実行時間はステップS111で得られた値である。
並列化可能数はステップS107で得られた値である。表示処理部114は、タスクグラフデータベース110から並列化可能数情報を取得し、並列化可能数情報を参照することで並列化可能数を得ることができる。
更に、図10の手順により抽出された共通デバイスの個数を並列化情報に含ませてもよい。
また、表示処理部114はCPUコアごとにROM使用数を算出し、算出したCPUコアごとのROM使用数を並列化情報に含ませてもよい。表示処理部114は、例えば、ブロック情報に含まれる行プログラムのステップ数情報を参照することで、ブロックごとのステップ数を得る。そして、表示処理部114は、並列化実行スケジュール(ガントチャート)に示されるCPUコアごとに、対応するブロックのステップ数を積算することで、CPUコアごとのROM使用数を得る。
表示処理部114は、制約条件データベース111から制約条件を取得する。
表示処理部114は、タスクグラフデータベース110から枝切り後のタスクグラフを取得する。
図6において、「A」から「F」の各々は、ブロックを表す。また、ブロックの表示の上に示される「0.2」、「0.4」等は、ブロック単位の実行時間である。
また、図6に示すように、タスクグラフに重畳して共通デバイスが示されてもよい。図6の例では、ブロックAとブロックBでは、デバイス「M0」とデバイス「M1」が共通に用いられていることが示される。
このように、本実施の形態では、並列化実行時間、並列化可能数、並列化実行スケジュール等で構成される並列化情報が表示される。このため、プログラマーは、並列化情報を参照することで、現在作成中のプログラムにおける並列化実行時間及び並列化可能数を把握することができ、現在検討中の並列化が十分であるか否かを検討することができる。また、プログラマーは、並列化実行スケジュールによって、並列化による演算性能の改善状況及びプログラム中の演算性能の改善に影響を与える箇所を把握することができる。このように、本実施の形態によれば、プログラマーに並列化の改善のための指針を提供することができ、効率的な並列化を実現することができる。
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
本実施の形態に係るシステム構成は図1に示す通りである。
本実施の形態に係る情報処理装置100のハードウェア構成例は図2に示す通りである。
本実施の形態に係る情報処理装置100の機能構成例は図3に示す通りである。
図7は、本実施の形態に係る情報処理装置100の動作例を示す。
図7を参照して、本実施の形態に係る情報処理装置100の動作例を説明する。
プログラムがセーブされた場合(ステップS201でYES)、図4に示すステップS102からステップS110に示す処理が行われる(ステップS202)。
ステップS102からステップS110の処理は、実施の形態1に示した通りなので説明を省略する。
例えば、図6の基本情報に示される制約条件が用いられる場合は、表示処理部114は、並列化実行時間が、制約条件に示されるスキャンタイムの要求値(「スキャンタイムは1.6[μs]以下」)を満たすか否かを判定する。また、表示処理部114は、プログラムの総ステップ数が、制約条件に示されるROM使用数の要求値(「ROM使用量は1000[STEP]以下」)を満たすか否かを判定する。更に、表示処理部114は共通デバイスの個数が、制約条件に示される共通デバイスの要求値(「共通デバイスは10[個]以下」)を満たすか否かを判定する。
例えば、図6の「スキャンタイムは1.6[μs]以下」が不成立の場合は、当該制約条件に対応する項目である「並列化実行時間」を赤字で表示する並列化情報を生成する。
また、図6の「スキャンタイムは1.6[μs]以下」が不成立の場合は、表示処理部114は、例えば、不成立の原因となるブロックを並列化実行スケジュール(ガントチャート)上で青字で表示する並列化情報を生成してもよい。
また、例えば、図6の「ROM使用量は1000[STEP]以下」が不成立の場合は、表示処理部114は、当該制約条件に対応する項目である「プログラムの総ステップ数」を赤字で表示する並列化情報を生成する。
更に、例えば、図6の「共通デバイスは10[個]以下」が不成立の場合は、表示処理部114は、当該制約条件に対応する項目である「共通デバイスの個数」を赤字で表示する並列化情報を生成する。
また、制約条件が不成立の場合は、表示処理部114は、不成立の原因となるブロックのプログラムコードを青色で表示するようにしてもよい。
本実施の形態によれば、制約条件が不成立の項目を強調表示する並列化情報が表示されるため、改善すべき項目をプログラマーに認識させることができ、プログラムのデバッグに要する時間を短縮することができる。
また、プログラマーがプログラムを1行作成するごとに図7のステップS202以降の処理を開始させるようにしてもよい。
更に、一定時間(例えば、1分)ごとに、図7のステップS202以降の処理を開始させるようにしてもよい。また、プログラマーが特定のプログラム部品(接点命令など)をプログラムに挿入したことをトリガーにして図7のステップS202以降の処理を開始させるようにしてもよい。
本実施の形態では、主に実施の形態1及び実施の形態2との差異を説明する。
なお、以下で説明していない事項は、実施の形態1又は実施の形態2と同様である。
本実施の形態に係るシステム構成は図1に示す通りである。
本実施の形態に係る情報処理装置100のハードウェア構成例は図2に示す通りである。
本実施の形態に係る情報処理装置100の機能構成例は図3に示す通りである。
図8は、本実施の形態に係る情報処理装置100の動作例を示す。
図8を参照して、本実施の形態に係る情報処理装置100の動作例を説明する。
確認ボタンが押された場合(ステップS301でYES)は、図4に示すステップS102からステップS109に示す処理が行われる(ステップS302)。
ステップS102からステップS109の処理は、実施の形態1に示した通りなので説明を省略する。
例えば、プログラマーがデュアルコア、トリプルコア及びクアッドコアの採用を検討している場合は、スケジュール生成部112はプログラムをデュアルコアで実行させる場合の並列化実行スケジュール(ガントチャート)、プログラムをトリプルコアで実行させる場合の並列化実行スケジュール(ガントチャート)、及びクアッドコアで実行させる場合の並列化実行スケジュール(ガントチャート)を生成する。
組合せとは、制約条件とCPUコア数との組み合わせである。
本実施の形態では、プログラマーは、制約条件のバリエーションを複数パターン設定する。例えば、プログラマーは、パターン1として、スキャンタイム、ROM使用量及び共通デバイスの各々の要求値が緩やかなパターンを設定する。また、プログラマーは、パターン2として、スキャンタイムの要求が厳格であるが、ROM使用量及び共通デバイスの各々の要求値は緩やかなパターンを設定する。また、プログラマーは、パターン3として、スキャンタイム、ROM使用量及び共通デバイスの各々の要求値が厳格なパターンを設定する。
表示処理部114は、例えば、図9に示すように、デュアルコアとパターン1、パターン2及びパターン3の各々との組合せ、トリプルコアとパターン1、パターン2及びパターン3の各々との組合せ、クアッドコアとパターン1、パターン2及びパターン3の各々との組合せで、並列化情報を生成する。
図9に示す並列化情報では、コア数とパターンとの組合せごとにタブが設けられている。プログラマーは、所望する組合せのタブに対してマウスクリックを行うことで、所望する組合せにおける並列化実行スケジュール(ガントチャート)、制約条件の成否状況等を参照することができる。図9の例では、デュアルコアとパターン1の組合せの並列化情報が表示されている。
なお、コア数が共通していれば、並列化実行スケジュール(ガントチャート)は同じである。つまり、デュアルコアとパターン1との組合せに対応する並列化情報、デュアルコアとパターン2との組合せに対応する並列化情報、及びデュアルコアとパターン3との組合せに対応する並列化情報の各々で示される並列化実行スケジュール(ガントチャート)は同じである。
一方で、基本情報の記述はパターンごとに異なる可能性がある。表示処理部114は、パターンごとに制約条件が成立するか否かを判定する。そして、表示処理部114は、パターンごとに制約条件が成立したか否かが基本情報に示される並列化情報を生成する。
例えば、デュアルコアとパターン2の組合せでは、スキャンタイムの要求値が満たされず、ROM使用量及び共通デバイスの各々の要求値は満たされているとする。この場合は、当該制約条件に対応する項目である「並列化実行時間」が例えば赤色で表示される。また、例えば、デュアルコアとパターン3の組合せでは、スキャンタイム、ROM使用量及び共通デバイスの各々の要求値が満たされないとする。この場合は、スキャンタイム、ROM使用量及び共通デバイスの各々に対応する項目が例えば赤色で表示される。
また、図9に示す並列化情報では、改善率が示される。表示処理部114は、並列化せずにプログラムを実行する際(シングルコアでプログラムを実行する際)のプログラムの実行に要する時間(非並列化実行時間)を算出する。そして、表示処理部114は、並列化実行スケジュールでプログラムを実行する際のプログラムの実行に要する時間(並列化実行時間)と非並列化実行時間との差異状況として改善率を算出する。つまり、表示処理部114は、「{(非並列化実行時間/並列化実行時間)−1}*100」を計算して改善率を得る。表示処理部114は、デュアルコア、トリプルコア及びクアッドコアの各々に対して改善率を算出し、各々の並列化情報に改善率を表示する。
本実施の形態では、CPUコア数と制約条件のパターンの組合せごとに並列化情報を表示する。このため、本実施の形態によれば、プログラマーは制約条件を満たす並列化数を早期に把握することができる。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
最後に、情報処理装置100のハードウェア構成の補足説明を行う。
そして、OSの少なくとも一部がプロセッサ11により実行される。
プロセッサ11はOSの少なくとも一部を実行しながら、入力処理部101、行プログラム取得部104、ブロック生成部106、タスクグラフ生成部108、タスクグラフ枝切り部109、スケジュール生成部112及び表示処理部114の機能を実現するプログラムを実行する。
プロセッサ11がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、入力処理部101、行プログラム取得部104、ブロック生成部106、タスクグラフ生成部108、タスクグラフ枝切り部109、スケジュール生成部112及び表示処理部114の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、メモリ12、ストレージ13、プロセッサ11内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、入力処理部101、行プログラム取得部104、ブロック生成部106、タスクグラフ生成部108、タスクグラフ枝切り部109、スケジュール生成部112及び表示処理部114の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記録媒体に格納されていてもよい。そして、入力処理部101、行プログラム取得部104、ブロック生成部106、タスクグラフ生成部108、タスクグラフ枝切り部109、スケジュール生成部112及び表示処理部114の機能を実現するプログラムが格納された可搬記録媒体を商業的に流通させてもよい。
また、情報処理装置100は、処理回路により実現されてもよい。処理回路は、例えば、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)である。
この場合は、入力処理部101、行プログラム取得部104、ブロック生成部106、タスクグラフ生成部108、タスクグラフ枝切り部109、スケジュール生成部112及び表示処理部114は、それぞれ処理回路の一部として実現される。
なお、本明細書では、プロセッサと処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
Claims (14)
- プログラムを実行する際に可能な処理の並列化数を並列化可能数として判定する判定部と、
前記プログラムを実行する際の前記プログラムの実行スケジュールを並列化実行スケジュールとして生成するスケジュール生成部と、
前記並列化実行スケジュールで前記プログラムを実行する際の前記プログラムの実行に要する時間である並列化実行時間を算出する算出部と、
前記並列化可能数と前記並列化実行スケジュールと前記並列化実行時間とが示される並列化情報を生成し、生成した前記並列化情報を出力する情報生成部とを有する情報処理装置。 - 前記情報処理装置は、更に、
前記プログラムを構成する複数のブロックのブロック間の依存関係に基づき、前記複数のブロックのタスクグラフを生成するタスクグラフ生成部を有し、
前記判定部は、
前記タスクグラフを解析して前記並列化可能数を判定する請求項1に記載の情報処理装置。 - 前記判定部は、
前記タスクグラフの枝切りを行い、枝切り後のタスクグラフにおけるブロック間の接続数のうちの最大の接続数に従って前記並列化可能数を判定する請求項2に記載の情報処理装置。 - 前記情報生成部は、
前記枝切り後のタスクグラフが示される並列化情報を生成する請求項3に記載の情報処理装置。 - 前記情報生成部は、
前記並列化実行時間の要求値が示される並列化情報を生成する請求項1に記載の情報処理装置。 - 前記情報生成部は、
前記並列化実行時間が前記要求値を満たしているか否かが示される並列化情報を生成する請求項5に記載の情報処理装置。 - 前記情報生成部は、
前記プログラムを構成する複数のブロックのうちの2以上のブロックで共通に用いられている変数の個数である共通変数個数と、前記プログラムを実行する際のメモリ使用量とが示される並列化情報を生成する請求項1に記載の情報処理装置。 - 前記情報生成部は、
前記共通変数個数が前記共通変数個数の要求値を満たしているか否か、及び前記メモリ使用量が前記メモリ使用量の要求値を満たしているか否かが示される並列化情報を生成する請求項7に記載の情報処理装置。 - 前記スケジュール生成部は、
前記プログラムを実行するCPU(Central Processing Unit)コアの数であるCPUコア数ごとに、前記並列化実行スケジュールを生成し、
前記算出部は、
前記CPUコア数ごとに、対応する並列化実行スケジュールで前記プログラムを実行する際の並列化実行時間を算出し、
前記情報生成部は、
前記CPUコア数ごとに、並列化実行スケジュールと並列化実行時間とが示される並列化情報を生成する請求項1に記載の情報処理装置。 - 前記情報生成部は、
前記並列化実行時間の複数の要求値が示され、前記並列化実行時間が各要求値を満たしているか否かが示される並列化情報を生成する請求項1に記載の情報処理装置。 - 前記情報生成部は、
前記プログラムを構成する複数のブロックのうちの2以上のブロックで共通に用いられている変数の個数である共通変数個数の複数の要求値が示され、前記プログラムを実行する際のメモリ使用量の複数の要求値が示され、前記共通変数個数が各要求値を満たしているか否か、及び前記メモリ使用量が各要求値を満たしているか否かが示される並列化情報を生成する請求項1に記載の情報処理装置。 - 前記算出部は、
処理を並列化せずに前記プログラムを実行する際の前記プログラムの実行に要する時間である非並列化実行時間を算出し、
前記情報生成部は、
前記並列化実行時間と前記非並列化実行時間との差異状況が示される並列化情報を生成する請求項1に記載の情報処理装置。 - コンピュータが、プログラムを実行する際に可能な処理の並列化数を並列化可能数として判定し、
前記コンピュータが、前記プログラムを実行する際の前記プログラムの実行スケジュールを並列化実行スケジュールとして生成し、
前記コンピュータが、前記並列化実行スケジュールで前記プログラムを実行する際の前記プログラムの実行に要する時間である並列化実行時間を算出し、
前記コンピュータが、前記並列化可能数と前記並列化実行スケジュールと前記並列化実行時間とが示される並列化情報を生成し、生成した前記並列化情報を出力する情報処理方法。 - プログラムを実行する際に可能な処理の並列化数を並列化可能数として判定する判定処理と、
前記プログラムを実行する際の前記プログラムの実行スケジュールを並列化実行スケジュールとして生成するスケジュール生成処理と、
前記並列化実行スケジュールで前記プログラムを実行する際の前記プログラムの実行に要する時間である並列化実行時間を算出する算出処理と、
前記並列化可能数と前記並列化実行スケジュールと前記並列化実行時間とが示される並列化情報を生成し、生成した前記並列化情報を出力する情報生成処理とをコンピュータに実行させる情報処理プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/007312 WO2020174581A1 (ja) | 2019-02-26 | 2019-02-26 | 情報処理装置、情報処理方法及び情報処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6890738B2 JP6890738B2 (ja) | 2021-06-18 |
JPWO2020174581A1 true JPWO2020174581A1 (ja) | 2021-09-13 |
Family
ID=72239160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021501432A Active JP6890738B2 (ja) | 2019-02-26 | 2019-02-26 | 情報処理装置、情報処理方法及び情報処理プログラム |
Country Status (7)
Country | Link |
---|---|
US (1) | US20210333998A1 (ja) |
JP (1) | JP6890738B2 (ja) |
KR (1) | KR102329368B1 (ja) |
CN (1) | CN113439256A (ja) |
DE (1) | DE112019006739B4 (ja) |
TW (1) | TW202032369A (ja) |
WO (1) | WO2020174581A1 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007048052A (ja) * | 2005-08-10 | 2007-02-22 | Internatl Business Mach Corp <Ibm> | コンパイラ、制御方法、およびコンパイラ・プログラム |
JP2009129179A (ja) * | 2007-11-22 | 2009-06-11 | Toshiba Corp | プログラム並列化支援装置およびプログラム並列化支援方法 |
JP2015106233A (ja) * | 2013-11-29 | 2015-06-08 | 三菱日立パワーシステムズ株式会社 | 並列化支援装置、実行装置、制御システム、並列化支援方法及びプログラム |
JP2016143378A (ja) * | 2015-02-05 | 2016-08-08 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、及び、電子装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05257709A (ja) * | 1992-03-16 | 1993-10-08 | Hitachi Ltd | 並列化判別方法およびそれを用いた並列化支援方法 |
JP3664473B2 (ja) | 2000-10-04 | 2005-06-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラムの最適化方法及びこれを用いたコンパイラ |
US7281192B2 (en) | 2004-04-05 | 2007-10-09 | Broadcom Corporation | LDPC (Low Density Parity Check) coded signal decoding using parallel and simultaneous bit node and check node processing |
EP1763748A1 (en) * | 2004-05-27 | 2007-03-21 | Koninklijke Philips Electronics N.V. | Signal processing apparatus |
CN1300699C (zh) * | 2004-09-23 | 2007-02-14 | 上海交通大学 | 并行程序可视化调试方法 |
JP4082706B2 (ja) | 2005-04-12 | 2008-04-30 | 学校法人早稲田大学 | マルチプロセッサシステム及びマルチグレイン並列化コンパイラ |
EP2352087A4 (en) * | 2008-10-24 | 2012-08-08 | Ibm | PROCESS, SYSTEM AND PROGRAM FOR SOURCE COD PROCESSING |
CN103250135A (zh) * | 2010-12-21 | 2013-08-14 | 松下电器产业株式会社 | 编译装置、编译程序及循环并列化方法 |
US9830164B2 (en) * | 2013-01-29 | 2017-11-28 | Advanced Micro Devices, Inc. | Hardware and software solutions to divergent branches in a parallel pipeline |
US20140282572A1 (en) * | 2013-03-14 | 2014-09-18 | Samsung Electronics Co., Ltd. | Task scheduling with precedence relationships in multicore systems |
JP6303626B2 (ja) * | 2014-03-07 | 2018-04-04 | 富士通株式会社 | 処理プログラム、処理装置および処理方法 |
US10374970B2 (en) * | 2017-02-01 | 2019-08-06 | Microsoft Technology Licensing, Llc | Deploying a cloud service with capacity reservation followed by activation |
US10719902B2 (en) * | 2017-04-17 | 2020-07-21 | Intel Corporation | Thread serialization, distributed parallel programming, and runtime extensions of parallel computing platform |
US10325022B1 (en) * | 2018-03-13 | 2019-06-18 | Appian Corporation | Automated expression parallelization |
US10768904B2 (en) * | 2018-10-26 | 2020-09-08 | Fuji Xerox Co., Ltd. | System and method for a computational notebook interface |
US20200184366A1 (en) * | 2018-12-06 | 2020-06-11 | Fujitsu Limited | Scheduling task graph operations |
-
2019
- 2019-02-26 CN CN201980091996.2A patent/CN113439256A/zh active Pending
- 2019-02-26 WO PCT/JP2019/007312 patent/WO2020174581A1/ja active Application Filing
- 2019-02-26 JP JP2021501432A patent/JP6890738B2/ja active Active
- 2019-02-26 KR KR1020217025783A patent/KR102329368B1/ko active IP Right Grant
- 2019-02-26 DE DE112019006739.7T patent/DE112019006739B4/de active Active
- 2019-06-06 TW TW108119698A patent/TW202032369A/zh unknown
-
2021
- 2021-07-02 US US17/366,342 patent/US20210333998A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007048052A (ja) * | 2005-08-10 | 2007-02-22 | Internatl Business Mach Corp <Ibm> | コンパイラ、制御方法、およびコンパイラ・プログラム |
JP2009129179A (ja) * | 2007-11-22 | 2009-06-11 | Toshiba Corp | プログラム並列化支援装置およびプログラム並列化支援方法 |
JP2015106233A (ja) * | 2013-11-29 | 2015-06-08 | 三菱日立パワーシステムズ株式会社 | 並列化支援装置、実行装置、制御システム、並列化支援方法及びプログラム |
JP2016143378A (ja) * | 2015-02-05 | 2016-08-08 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、及び、電子装置 |
Also Published As
Publication number | Publication date |
---|---|
KR102329368B1 (ko) | 2021-11-19 |
CN113439256A (zh) | 2021-09-24 |
DE112019006739B4 (de) | 2023-04-06 |
WO2020174581A1 (ja) | 2020-09-03 |
US20210333998A1 (en) | 2021-10-28 |
TW202032369A (zh) | 2020-09-01 |
JP6890738B2 (ja) | 2021-06-18 |
KR20210106005A (ko) | 2021-08-27 |
DE112019006739T5 (de) | 2021-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4965995B2 (ja) | プログラム処理方法、処理プログラム及び情報処理装置 | |
US20220229762A1 (en) | Robotic Process Automation (RPA) Debugging Systems And Methods | |
US9621679B2 (en) | Operation task managing apparatus and method | |
CN114637511A (zh) | 代码测试系统、方法、装置、电子设备及可读存储介质 | |
JP6427055B2 (ja) | 並列化コンパイル方法、及び並列化コンパイラ | |
TW201730786A (zh) | 執行以時間序列資料與分析資料當中的至少一部分作為輸入資料之分析處理的分析系統及分析方法 | |
JP6890738B2 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
US10996987B2 (en) | Progress visualization of computational job | |
JP7172986B2 (ja) | 構成管理装置、構成管理方法および構成管理プログラム | |
CN110737438A (zh) | 一种数据处理方法和装置 | |
EP3940483A1 (en) | Graph display device, graph display method, and graph display program | |
CN114385155A (zh) | vue项目可视化工具生成方法、装置、设备及存储介质 | |
JP2014228990A (ja) | 制御プログラム作成装置および制御プログラム作成方法 | |
JPH11134307A (ja) | プログラム開発支援装置及び方法並びにプログラム開発支援用ソフトウェアを記録した記録媒体 | |
JP2018163574A (ja) | ログ管理装置及びログ管理用プログラム | |
JP2018124901A (ja) | プログラム分析装置、プログラム分析方法及びプログラム分析プログラム | |
US11921496B2 (en) | Information processing apparatus, information processing method and computer readable medium | |
JP7023439B2 (ja) | 情報処理装置、情報処理方法および情報処理プログラム | |
JP7021401B1 (ja) | ロギング支援装置、ロギングシステム、ロギング支援方法及びプログラム | |
JP7501570B2 (ja) | ログ解析装置 | |
US9870257B1 (en) | Automation optimization in a command line interface | |
JP6659472B2 (ja) | 情報処理装置、jcl生成方法、プログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP2003108405A (ja) | 試験仕様の作成支援装置及びプログラム | |
WO2019163915A1 (ja) | プロジェクト分析装置及びプログラム | |
JP2023105908A (ja) | 情報処理装置、情報処理システム、及び情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210304 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210304 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20210304 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20210420 |
|
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: 20210427 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210525 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6890738 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |