JP7327076B2 - Information processing device, information processing method, and program - Google Patents
Information processing device, information processing method, and program Download PDFInfo
- Publication number
- JP7327076B2 JP7327076B2 JP2019190570A JP2019190570A JP7327076B2 JP 7327076 B2 JP7327076 B2 JP 7327076B2 JP 2019190570 A JP2019190570 A JP 2019190570A JP 2019190570 A JP2019190570 A JP 2019190570A JP 7327076 B2 JP7327076 B2 JP 7327076B2
- Authority
- JP
- Japan
- Prior art keywords
- processing
- history information
- information
- execution unit
- execution
- 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
Landscapes
- Debugging And Monitoring (AREA)
- Memory System (AREA)
Description
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。 The present invention relates to an information processing device, an information processing method, and a program.
複数の処理を実行する情報処理装置において、各処理を実行するプログラムによる関数の呼び出し履歴(以下、履歴情報と呼ぶ)を取得することにより、障害解析等を容易にする技術が知られている。 2. Description of the Related Art In an information processing apparatus that executes a plurality of processes, there is known a technique for facilitating fault analysis and the like by acquiring a function call history (hereinafter referred to as history information) by a program that executes each process.
例えば、アプリケーションプログラムに含まれるいずれかの関数が実行される際に、履歴情報を取得するための共通処理を呼び出し、OS(Operating System)に履歴情報の保存を依頼する技術が知られている(例えば、特許文献1参照)。 For example, when any function included in an application program is executed, there is a known technique of calling a common process for acquiring history information and requesting an operating system (OS) to store the history information ( For example, see Patent Document 1).
特許文献1に示されるような従来の技術では、所定の処理を実行するプログラムが関数を呼び出すごとにシステムコールが発行されるため、情報処理装置の処理性能への影響が大きいという問題がある。
In the conventional technology disclosed in
本発明の一実施形態は、上記の問題点に鑑みてなされたものであって、所定の処理を実行する情報処理装置において、所定の処理の処理性能への影響を抑制しつつ、所定の処理を実行するプログラムの履歴情報を取得できるようにする。 An embodiment of the present invention has been made in view of the above problems, and is an information processing apparatus that executes predetermined processing, while suppressing the influence of the predetermined processing on the performance of the predetermined processing. to be able to obtain history information for programs that run
上記課題を解決するため、本発明の一実施形態に係る情報処理装置は、複数のCPUコアを有するプロセッサを備えた情報処理装置であって、所定の処理を実行し、前記処理の実行に伴う履歴情報を、前記履歴情報を一時的に記憶する第1の記憶部に記憶する1つ以上の処理実行部と、前記第1の記憶部に記憶された前記履歴情報を、前記1つ以上の処理実行部の前記履歴情報を蓄積する第2の記憶部に記憶するトレース処理を実行するトレース実行部と、前記複数のCPUコアのうち、一のCPUコアに前記トレース処理を実行させるとともに、前記一のCPUコアとは異なる1つ以上の他のCPUコアに前記所定の処理を実行させる実行制御部と、を有する。 In order to solve the above problems, an information processing apparatus according to one embodiment of the present invention is an information processing apparatus including a processor having a plurality of CPU cores, executing predetermined processing, and one or more processing execution units that store history information in a first storage unit that temporarily stores the history information; and one or more processing execution units that store the history information stored in the first storage unit a trace execution unit for executing trace processing stored in a second storage unit for accumulating the history information of the process execution unit; causing one of the plurality of CPU cores to execute the trace processing; and an execution control unit that causes one or more CPU cores different from the one CPU core to execute the predetermined process.
本発明の一実施形態に係る情報処理装置によれば、所定の処理を実行する情報処理装置において、所定の処理の処理性能への影響を抑制しつつ、所定の処理を実行するプログラムの履歴情報を取得できるようになる。 According to an information processing apparatus according to an embodiment of the present invention, in an information processing apparatus that executes a predetermined process, history information of a program that executes the predetermined process is suppressed while suppressing the influence of the predetermined process on the processing performance. can be obtained.
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。 BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
<情報処理装置の概要>
図1は、一実施形態に係る情報処理装置の概要について説明するための図である。情報処理装置100は、複数のCPU(Central Processing Unit)コア111a、111b、111c、・・・を備えるプロセッサ110を備え、1つ以上のプログラム121a、121b、・・・を実行するコンピュータである。なお、以下の説明において、複数のCPUコア111a、111b、111c、・・・のうち、任意のCPUコアを示す場合、「CPUコア111」を用いる。また、1つ以上のプログラム121a、121b、・・・のうち、任意のプログラムを示す場合、「プログラム121」を用いる。
<Overview of Information Processing Device>
FIG. 1 is a diagram for explaining an overview of an information processing apparatus according to an embodiment. The
プロセッサ110は、互いに独立して機能する演算装置であるCPUコア111を複数備えたマルチコアプロセッサであり、例えば、CPU、MPU(Micro Processing Unit)等とも呼ばれる。なお、CPUコア111の数は、2つ以上の他の数であっても良い。また、プロセッサ110は、1つ以上のCPUコア111を備えた複数のプロセッサによって構成されるものであっても良い。
The
メモリ120は、プロセッサ110のワークエリア等として用いられる主記憶装置(一次記憶装置)であり、例えば、RAM(Random Access Memory)等によって実現される。ストレージ130は、例えば、OS(Operating System)、アプリケーションプログラム、及び各種のデータ等を記憶する不揮発性の大容量の記憶装置(二次記憶装置)であり、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)等のストレージデバイスによって実現される。
The
例えば、情報処理装置100は、汎用のOS、又はリアルタイムOSを用いた組み込みシステムであり、プロセッサ110で、1つ以上のプログラム121a、121b、・・・を実行する。このような情報処理装置100では、一般的に、障害が発生したときの障害解析の難易度が高い傾向があり、また、障害発生時に残る解析用の情報は、断片的なログ情報のみである場合が多い。したがって、このような情報処理装置100で障害が発生したときには、障害解析が長期化し、例えば、解析コストの上昇や、顧客満足度の低下等につながる場合がある。
For example, the
このようなリスクを軽減するために、有効なデバッグ機能が望まれており、その1つとして、各プログラム121の関数の呼び出し履歴を取得する関数トレース機能が知られている。しかし、例えば、特許文献1に示されるような従来の技術では、プログラム121が関数を呼び出すごとにシステムコールが発行されるため、情報処理装置100の処理性能への影響が大きいという問題がある。
In order to reduce such risks, an effective debug function is desired, and one of them is known as a function trace function for acquiring the function call history of each program 121 . However, for example, in the conventional technique disclosed in
そこで、本実施形態に係る情報処理装置100は、予め決定した特定のCPUコア111(例えば、CPUコア111a)で、関数トレース機能を実現するプログラムである関数トレーサ123を実行する。また、情報処理装置100は、例えば、CPUコア111aとは異なる他のCPUコア111b、111c、・・・で、1つ以上のプログラム121を実行する。
Therefore, in the
また、各プログラム121は、関数を呼び出すごとに、呼び出した関数の履歴を共有メモリ122に書き込む処理である履歴情報の書込処理を実行する。この履歴情報の書込処理は、RAM等のメモリ120上の共有メモリ122に履歴情報を書き込む処理のみを行い、ストレージ130等の二次記憶装置への履歴情報の書込を行わない。これは、二次記憶装置への履歴情報を記憶処理には、一般的に、時間を要するため、各プログラム121の処理性能が著しく劣化するためである。
Each program 121 also executes a history information write process, which is a process of writing the history of the called function to the shared
さらに、関数トレーサ123は、各プログラム121によって共有メモリ122に書き込まれた履歴情報を、各プログラム121の履歴情報131を蓄積するストレージ130に記憶するトレース処理を実行する。これにより、関数トレーサ123は、1つ以上のプログラム121が実行する処理の処理性能への影響を低減しつつ、1つ以上のプログラム121の履歴情報を取得することができる。
Further, the
このように、本実施形態によれば、所定の処理を実行する情報処理装置100において、所定の処理の処理性能への影響を低減しつつ、所定の処理を実行する各プログラムの履歴情報を取得できるようになる。
As described above, according to the present embodiment, in the
<ハードウェア構成>
ここでは、一例として、情報処理装置100が、例えば、スキャン機能、コピー機能、印刷機能、ファクシミリ機能等を一つの筐体に搭載したMFP(Multifunction Peripheral)等の画像形成装置であるものとして、以下の説明を行う。
<Hardware configuration>
Here, as an example, the
ただし、これに限られず、情報処理装置100は、複数のCPUコア111を備えた装置であれば、画像形成装置に限られない。例えば、情報処理装置100は、PJ(Projector:プロジェクタ)、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)、デジタルサイネージ、又はHUD(Head Up Display)装置等の出力装置であっても良い。また、情報処理装置100は、例えば、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、自動車(Connected Car)等の装置であっても良い。さらに、情報処理装置100は、例えば、ノートPC(Personal Computer)、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPC、又はデスクトップPC等の情報端末であっても良い。
However, the
図2は、一実施形態に係る画像形成装置のハードウェア構成の例を示す図である。画像形成装置200は、例えば、図2に示されるように、コントローラ210、近距離通信回路220、エンジン制御部230、操作パネル240、ネットワークI/F250、及びファクスコントロールユニット(以下、FCUと呼ぶ)260等を備えている。
FIG. 2 is a diagram illustrating an example of a hardware configuration of an image forming apparatus according to one embodiment; For example, as shown in FIG. 2, the
これらのうち、コントローラ210は、コンピュータの主要部であるCPU201、システムメモリ(MEM-P)202、ノースブリッジ(NB)203、サウスブリッジ(SB)204、ASIC(Application Specific Integrated Circuit)205、ローカルメモリ(MEM-C)206、HDDコントローラ207、及び、HD208等を有し、NB203とASIC205との間をAGP(Accelerated Graphics Port)バス211で接続した構成となっている。
Among these, the
これらのうち、CPU201は、画像形成装置200の全体制御を行う制御部である。なお、CPU201は、図1のプロセッサ110の一例であり、複数のCPUコア111a、111b、111c、・・・を有しているものとする。NB203は、CPU201と、MEM-P202、SB204、及びAGPバス211とを接続するためのブリッジであり、MEM-P202に対する読み書きなどを制御するメモリコントローラと、PCI(Peripheral Component Interconnect)マスタ及びAGPターゲットとを有する。
Among them, the
MEM-P202は、コントローラ210の各機能を実現させるプログラムやデータの格納用メモリであるROM202a、プログラムやデータの展開、及びメモリ印刷時の描画用メモリなどとして用いるRAM202bとからなる。なお、MEM-P202は、図1のメモリ120の一例である。RAM202bに記憶されているプログラムは、コンピュータで読み取り可能な記録媒体に記録して提供するように構成しても良い。
The MEM-
SB204は、NB203とPCIデバイス、周辺デバイスとを接続するためのブリッジである。ASIC205は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)であり、AGPバス211、PCIバス212、HDDコントローラ207、及びMEM-C206をそれぞれ接続するブリッジの役割を有する。このASIC205は、PCIターゲット及びAGPマスタ、ASIC205の中核をなすアービタ(ARB)、MEM-C206を制御するメモリコントローラ、ハードウェアロジック等により画像データの回転などを行う複数のDMAC(Direct Memory Access Controller)、並びに、スキャナ部231及びプリンタ部232との間でPCIバス212を介したデータ転送を行うPCIユニットとからなる。なお、ASIC205には、USB(Universal Serial Bus)のインタフェースや、IEEE1394(Institute of Electrical and Electronics Engineers 1394)のインタフェースを接続するようにしても良い。
The SB 204 is a bridge for connecting the
MEM-C206は、コピー用画像バッファ及び符号バッファとして用いるローカルメモリである。HD208は、図1のストレージ130の一例であり、各種のプログラム、データ、画像データ、印刷時に用いるフォントデータ、フォーム等の各種のデータ、及び履歴情報131等を記憶する大容量の記憶装置である。HDDコントローラ207は、CPU201の制御に従ってHD208に対するデータの読出又は書込を制御する。AGPバス211は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレータカード用のバスインタフェースであり、MEM-P202に高スループットで直接アクセスすることにより、グラフィックスアクセラレータカードを高速化することができる。
MEM-
近距離通信回路220は、アンテナ220aを用いて、例えば、NFC(Near Field Communication)、Bluetooth(登録商標)等の近距離無線通信の規格に従って通信を行う高周波回路、信号処理回路、及び通信制御回路等を含む。エンジン制御部230は、例えば、スキャナ部231及びプリンタ部232等によって構成されている。スキャナ部231は、原稿等を読み取る読取装置である。プリンタ部232は、印刷データを印刷媒体に印刷する印刷装置である。スキャナ部231又はプリンタ部232には、例えば、誤差拡散やガンマ変換等の画像処理部分が含まれている。
The short-
操作パネル240は、現在の設定値や選択画面等を表示させ、操作者からの入力を受け付けるタッチパネル等のパネル表示部240a、並びに、濃度の設定条件などの画像形成に関する条件の設定値を受け付けるテンキー及びコピー開始指示を受け付けるスタートキー等からなる操作ボタン240bを備えている。コントローラ210は、画像形成装置200全体の制御を行い、例えば、描画、通信、操作パネル240からの入力等を制御する。
The
なお、画像形成装置200は、操作パネル240のアプリケーション切り替えキーにより、ドキュメントボックス機能、コピー機能、プリンタ機能、及びファクシミリ機能を順次に切り替えて選択することが可能となる。ドキュメントボックス機能の選択時にはドキュメントボックスモードとなり、コピー機能の選択時にはコピーモードとなり、プリンタ機能の選択時にはプリンタモードとなり、ファクシミリモードの選択時にはファクシミリモードとなる。
Note that the
ネットワークI/F250は、通信ネットワークを利用してデータ通信をするためのインタフェースである。FCU260は、ファクス通信のプロトロルに従って、ファクスデータの送受信等を行う。近距離通信回路220、ネットワークI/F250、及びFCU260等は、例えば、PCIバス212を介してASIC205に電気的に接続されている。
Network I/
<ソフトウェア構成>
図3は、一実施形態に係る画像形成装置のソフトウェア構成の例を示す図である。画像形成装置200は、例えば、ソフトウェア群301、エンジン302、及びハードウェア資源303等を含む。なお、エンジン302は、例えば、図2のエンジン制御部230、スキャナ部231、及びプリンタ部232等に対応している。また、ハードウェア資源303は、例えば、図2のCPU201、操作パネル240、ネットワークI/F250、MEM-P202、HDDコントローラ207、及びHD208等に対応している。
<Software configuration>
FIG. 3 is a diagram illustrating an example of a software configuration of an image forming apparatus according to one embodiment; The
ソフトウェア群301は、OS341上に起動されているアプリケーション層304と、プラットフォーム305とを含む。アプリケーション層304は、例えば、印刷アプリ311、コピーアプリ312、スキャナアプリ313、・・・等のアプリケーションプログラム(以下、アプリと呼ぶ)を含む。なお、印刷アプリ311、コピーアプリ312、スキャナアプリ313、・・・等は、図1の1つ以上のプログラム121a、121b、・・・の一例である。
A
印刷アプリ311は、印刷処理を実行するためのアプリである。コピーアプリ312は、コピー処理を実行するためのアプリである。スキャナアプリ313は、スキャン機能を実行するためのアプリである。
The
プラットフォーム305は、アプリケーション層304からの処理要求を解釈してハードウェア資源303の獲得要求を発生するサービス層306、ハードウェア資源303の管理を行い、サービス層306からの獲得要求を調停するSRM(System Resource Manager)331、及びメモリの割り振り及び管理を行うIMH(Image Memory handler)332等を含む。
The
サービス層306は、例えば、ECS(Engine Control Service)321、MCS(Memory Control Service)322、OCS(Operation Control Service)323、NCS(Network Control Service)324、LCS(Log Control Service)325等の複数のサービスモジュールを含む。
The
また、プラットフォーム305は予め定義されている関数により、アプリケーション層304からの処理要求を受信可能とするAPI(Application Programming Interface)351を有する。
The
OS341は、アプリケーション層304、及びプラットフォーム305の各ソフトウェアをプロセスとして並列に実行する。なお、ここでは、OS341が、Linux(登録商標)であるものとして、以下の説明を行うが、OS341は、Linuxに限られず、他のOSであっても良い。init342は、OS341が起動したとき等に最初に実行されるプログラムであり、アプリケーション層304、プラットフォーム505等を起動させる。
The
ECS321のプロセスは、エンジン302、及びハードウェア資源303等の制御を行う。MCS322のプロセスは、メモリの取得、開放、及びHD208の利用等のメモリに関する制御を行う。OCS323のプロセスは、利用者と本体制御との間の情報伝達手段となる操作パネル240等の制御を行う。NCS324のプロセスは、通信ネットワークによるデータの送受信を行うアプリに対して、共通に利用できるネットワークサービスを提供する。LCS325のプロセスは、例えば、履歴情報131等のログ情報の管理と保持を行う。
The
SRM331のプロセスは、システムの制御、及びハードウェア資源303の管理を行う。例えばSRM331のプロセスは、エンジン302に含まれるプリンタ部232、スキャナ部231等や、ハードウェア資源303等を利用する上位層からの獲得要求に従って調停を行い、実行を制御する。SRM331は、予め定義されている関数によりエンジン302等に対する処理要求を送信可能とするエンジンI/F352を利用して、エンジン302に対する処理要求を行う。
The
<機能構成>
図4は、一実施形態に係る画像形成装置200の機能構成の一例を示す図である。画像形成装置(情報処理装置の一例)200は、例えば、1つ以上の処理実行部401a、401b、・・・、第1の記憶部402、トレース実行部403、第2の記憶部404、実行制御部405、及び例外ハンドラ406等を有している。なお、以下の説明において、1つ以上の処理実行部401a、401b、・・・のうち、任意の処理実行部を示す場合、「処理実行部401」を用いる。
<Functional configuration>
FIG. 4 is a diagram showing an example of the functional configuration of the
処理実行部401は、例えば、CPU201に含まれるCPUコア111b、111c、・・・で実行されるプログラム(例えば、図1のプログラム121a、121b、又は図3の印刷アプリ311、コピーアプリ312等)によって実現される。処理実行部401は、所定の処理を実行し、処理の実行に伴う履歴情報を、履歴情報を一時的に記憶する第1の記憶部402に記憶する。例えば、処理実行部401は、関数を呼び出すごとに、呼び出した関数の履歴である履歴情報を、第1の記憶部402に含まれる共有メモリ122等に書き込む。
The
なお、処理実行部401を実現するプログラムは、アプリケーション層304のアプリに限られず、プラットフォーム305のサービスや、SRM331、IMH332等であっても良い。
Note that the program that implements the
第1の記憶部(共有メモリ)402は、例えば、CPU201で実行されるプログラム(例えば、OS341等)、及びRAM202b等によって実現される。第1の記憶部402には、例えば、処理実行部401が呼び出した関数の履歴である履歴情報を一時的に記憶する共有メモリ122等を含む。
The first storage unit (shared memory) 402 is realized by, for example, programs executed by the CPU 201 (for example, the
図5は、一実施形態に係る共有メモリについて説明するための図である。第1の記憶部402には、例えば、図5(A)~(C)に示すような共有メモリ122が含まれる。共有メモリ122は、RAM領域のうち、実行中の複数のプログラムから読み書きが可能(共有可能)な領域であり、本実施形態では、例えば、関数の呼び出し履歴である履歴情報を記憶するため等に用いられる。
FIG. 5 is a diagram for explaining a shared memory according to one embodiment. The
共有メモリ122は、例えば、図5(A)に示すように、複数のメモリページ(記憶領域)501で構成される。共有メモリ122は、初期状態では、例えば、図5(A)に示すように、先頭ページ(ページ1)のみが「読込/書込可能」に、他のページ(ページ2、ページ3、・・・)は「読込のみ可能」にアクセス属性が設定されている。
The shared
このアクセス属性は、CPU201に搭載されているMMUによって、メモリページ501単位で設定することができる。なお、メモリページ501の典型的なサイズは4kバイトであるが、他のサイズであっても良い。
This access attribute can be set for each
図5(A)の状態では、処理実行部401は、ページ1に対して履歴情報の書き込みが可能である。また、処理実行部401は、複数回の履歴情報の書き込みにより、ページ1の空き容量を使い切ると、図8(B)に示すように、次のページ2に、履歴情報の書き込みを試みる。これにより、読み込みのみ可能なページ2に書き込みが行われるため、例外が発生し、メモリページ501を使い切ったこと、すなわち、「所定のサイズの履歴情報が、共有メモリ122に書き込まれたこと」が検知される。
In the state of FIG. 5A , the
また、例外が発生すると、発生した例外に対応する例外ハンドラ406が起動され、例外ハンドラ406には、例外を起こす原因となったメモリアドレスが渡される。これに応じて、例外ハンドラ406は、例えば、図5(C)に示すように、ページ2のアクセス属性を、「読込/書込可能」に設定し、ページ1のアクセス属性を「読込のみ可能」に設定する。これにより、処理実行部401は、共有メモリ122のページ2に、履歴情報を書き込むことができるようになる。
Also, when an exception occurs, the
ここで、図4に戻り、画像形成装置200の機能構成の説明を続ける。
Here, returning to FIG. 4, the description of the functional configuration of the
トレース実行部(関数トレーサ)403は、例えば、CPU201に含まれるCPUコア111aで実行されるプログラム(例えば、図1の関数トレーサ123、又は図3のLCS325等)によって実現される。トレース実行部403は、例えば、第1の記憶部402に記憶された履歴情報を、1つ以上の処理実行部401の履歴情報を記憶する第2の記憶部404に記憶するトレース処理を実行する。
The trace execution unit (function tracer) 403 is implemented by, for example, a program executed by the
例えば、トレース実行部403は、図5(B)で説明したように、共有メモリ122で例外が発生したとき等に、共有メモリ(第1の記憶部)500に記憶されている履歴情報を取得し、取得した履歴情報を第2の記憶部404に記憶する。
For example, the
第2の記憶部(ストレージ)404は、例えば、CPU201で実行されるプログラム(例えば、OS341等)、及びストレージデバイス(例えば、図1のストレージ130、又は図2のHD208等)によって実現される。第2の記憶部404には、例えば、1つ以上の処理実行部401の各々が、呼び出した関数、呼び出した時間等の情報が、ログ情報として順次に記憶(蓄積)される。なお、第2の記憶部404は、例えば、画像形成装置200の外部に設けられ、画像形成装置200と通信可能な外部装置(例えば、ストレージサーバ、管理サーバ等)であっても良い。
The second storage unit (storage) 404 is implemented by, for example, programs executed by the CPU 201 (eg, the
実行制御部405は、例えば、CPU201で実行されるプログラム(例えば、init342等)によって実現される。実行制御部405は、CPU201に含まれる複数のCPUコア111のうち、1つのCPUコア111(例えば、CPUコア111a)に、トレース実行部(関数トレーサ)403が実行するトレース処理を実行させる。また、実行制御部405は、他のCPUコア111(例えば、CPUコア111b、111c、・・・)に、処理実行部401a、401b、・・・が実行する各処理を実行させる。
The
なお、所定のプロセスを実行するCPUコア111を指定するためには、例えば、OS341のアフィニティ(又はCPUアフィニティ)を設定することにより、プロセスが実行されるCPUコア111を任意に指定、又は制限することができる。
In addition, in order to specify the CPU core 111 that executes a predetermined process, for example, by setting the affinity (or CPU affinity) of the
例外ハンドラ406は、例えば、CPU201で実行されるプログラムによって実現され、例えば、図5(B)で説明したように、共有メモリ122で例外が発生したときに、トレース実行部403を起動させる。
The
<処理の流れ>
続いて、本実施形態に係る情報処理方法の処理の流れについて説明する。
<Process flow>
Next, the flow of processing of the information processing method according to this embodiment will be described.
<起動時の処理>
図6は、一実施形態に係る起動時の処理の例を示すシーケンス図である。この処理は、画像形成装置200、又はOS341が起動したときに、画像形成装置200が実行する処理の例を示している。
<Startup processing>
FIG. 6 is a sequence diagram illustrating an example of processing at startup according to one embodiment. This processing shows an example of processing executed by the
ステップS601において、OS341が起動すると、OS341は、OS341自身を初期化する処理化処理を実行する。
In step S601, when the
ステップS602において、OS341は、初期化処理が終了すると、CPU201に所定のプログラム(例えば、図3のinit342)を実行させる。これにより、CPU201で実行されるプログラムによって、実行制御部405が実現される。
In step S602, the
ステップS603において、実行制御部405は、CPUコア111aを指定して、所定のプログラム(例えば、図3のLCS325)を実行させる。これにより、CPUコア111aで実行されるプログラムによって、トレース処理を実行するトレース実行部403が実現される。
In step S603, the
ステップS604において、実行制御部405は、CPUコア111a以外のCPUコア111(例えば、CPUコア111b、111c、・・・)を指定して、所定のプログラム(例えば、図3の印刷アプリ311)を実行させる。これにより、CPUコア111b、111c、・・・で実行されるプログラムによって、所定の処理を実行する処理実行部401aが実現される。
In step S604, the
ステップS605において、実行制御部405は、CPUコア111a以外のCPUコア111(例えば、CPUコア111b、111c、・・・)を指定して、所定のプログラム(例えば、コピーアプリ312等)を実行させる。これにより、CPUコア111b、111c、・・・で実行されるプログラムによって、所定の処理を実行する処理実行部401bが実現される。
In step S605, the
上記の処理により、実行制御部405は、CPU201に含まれる複数のCPUコア111のうち、一のCPUコア111aにトレース処理を実行させるとともに、他のCPUコア111b、111c、・・・に、所定の処理を実行させることができる。
Through the above processing, the
<履歴情報の書込処理>
図7は、一実施形態に係る履歴情報の書込処理の例を示すフローチャートである。本実施形態に係る処理実行部401は、関数を呼び出すごとに、図7に示すような履歴情報の書込処理を実行する。
<Write process of history information>
FIG. 7 is a flowchart illustrating an example of history information write processing according to an embodiment. The
ステップS701において、画像形成装置200の処理実行部401は、関数の呼び出しが、初回の呼び出しであるか否かを判断する。例えば、処理実行部401は、グローバル変数を用いたフラグで、初回の呼び出しであるか否かを判断することができる。具体的には、C言語のグローバル変数は、初期値が「0」なので、値が「0」であれば、初回の呼び出しであると判断する。
In step S701, the
初回の呼び出しである場合、処理実行部401は、処理をステップS702に移行させる。一方、初回の呼び出しでない場合、処理実行部401は、処理をステップS705に移行させる。
If it is the first call, the
ステップS702に移行すると、処理実行部401は、例えば、図5(A)に示すような共有メモリ122、及び共有メモリ122を識別する識別情報(以下、IDと呼ぶ)を取得する。例えば、OS341がLinuxである場合、shmget()という標準関数を用いることにより、共有メモリ122と、共有メモリ122のIDを取得することができる。なお、ここで取得した共有メモリ122は、例えば、図4の第1の記憶部(共有メモリ)402に含まれる。
After shifting to step S702, the
ステップS703において、処理実行部401は、取得した共有メモリ122のIDを、トレース実行部(関数トレーサ)403に通知する。
In step S<b>703 , the
ステップS704において、処理実行部401は、初回の呼び出しを実行したことを記録する。例えば、処理実行部401は、前述したグローバル変数の値を「0」から「1」等に変更する。
In step S704, the
ステップS705において、処理実行部401は、取得した共有メモリ122に、呼び出した関数の履歴である履歴情報を書き込む。
In step S<b>705 , the
上記の処理により、処理実行部401が、関数を呼び出すと、呼び出した関数の履歴である履歴情報が、第1の記憶部(共有メモリ)402に書き込まれる。
Through the above process, when the
なお、本実施形態に係る処理実行部401は、2回目以降の関数の呼び出し時には、RAM領域の共有メモリ122に、履歴情報を書き込む処理を行う処理のみを行い、例えば、システムコールの呼び出しや、ストレージデバイスへの書き込みを行わない。したがって、処理実行部401が実行する所定の処理の処理性能への影響を抑制することができる。
It should be noted that the
<関数呼び出し時の処理>
図8は、一実施形態に係る関数呼び出し時の処理の例を示すシーケンス図である。この処理は、処理実行部401が関数を呼び出したときに、画像形成装置200が実行する処理の例を示している。
<Processing when calling a function>
FIG. 8 is a sequence diagram illustrating an example of processing when a function is called according to one embodiment. This process shows an example of the process executed by the
ステップS801において、処理実行部401が関数を呼び出したとき、ステップS802において、処理実行部401は、図7に示すような履歴情報の書込処理を実行する。これにより、例えば、図5(A)に示すように、アクセス属性が、「読込/書込可能」であるメモリページに書き込みが行われた場合、共有メモリ122に履歴情報が記憶される。
In step S801, when the
一方、これにより、図5(B)に示すように、アクセス属性が、「読込のみ可能」なメモリページに書き込みが行われた場合、図8のステップS811~S818に示す処理800が実行される。 On the other hand, as a result, as shown in FIG. 5B, when writing is performed to a memory page whose access attribute is "read only", processing 800 shown in steps S811 to S818 in FIG. 8 is executed. .
ステップS811において、例えば、図5(B)に示すように、アクセス属性が、「読込のみ可能」なメモリページに書き込みが行われることにより、例外が発生する。これに応じて、ステップS812において、例外ハンドラ406が起動する。
In step S811, for example, as shown in FIG. 5B, an exception is generated by writing to a memory page whose access attribute is "read only". In response, the
ステップS813において、例外ハンドラ406は、共有メモリ122のアクセス属性を変更する。例えば、図5(B)に示すように、ページ2に書き込みが行われたときに例外が発生した場合、例外ハンドラ406は、図5(C)に示すように、ページ2のアクセス属性を「読込/書込可能」に変更し、ページ1のアクセス属性を「読込のみ可能」に変更する。これにより、処理実行部401は、ページ2に履歴情報を書き込みができるようになる。
At step S813, the
ステップS814において、例外ハンドラ406は、トレース実行部(関数トレーサ)403に処理の実行を要求する。これにより、ステップS815において、トレース実行部403は、共有メモリ122に記憶されている履歴情報を読み込む。
In step S814, the
ステップS816において、トレース実行部403は、共有メモリ122から読み込んだ履歴情報を、第2の記憶部(ストレージ)404に記憶する。また、ステップS817において、トレース実行部403は、処理が完了したことを示す完了通知を、例外ハンドラ406に通知する。
In step S<b>816 , the
ステップS818において、例外から復帰すると、ステップS819において、処理実行部401は、アクセス属性が「読込/書込可能」になった共有メモリ122に、履歴情報の書込処理を実行する。
In step S818, when returning from the exception, in step S819, the
上記の処理により、トレース実行部(関数トレーサ)403は、共有メモリ122の1つのメモリページに空き容量がなくなると、当該メモリページに記憶された履歴情報を取得し、第2の記憶部(ストレージ)404に記憶することができる。
As a result of the above processing, when one memory page of the shared
<処理実行部の処理>
図9は、一実施形態に係る処理実行部の処理の例を示すシーケンス図である。この処理は、実行制御部405によって処理実行部401が起動され、処理を終了するまでの間に画像形成装置200が実行する処理の例を示している。
<Processing of processing execution part>
FIG. 9 is a sequence diagram illustrating an example of processing by a processing execution unit according to an embodiment; This processing shows an example of processing executed by the
ステップS901において、実行制御部405が処理実行部401を起動すると、ステップS902において、処理実行部401は、main()関数を実行する前に、プログラムを実行する環境を整えるための処理(環境セットアップ)を実行する。
In step S901, the
ステップS903において、処理実行部401は、main()関数を呼び出し、所定の処理の実行を開始する。これにより、例えば、ステップS904~S910の処理が実行される。
In step S903, the
ステップS904において、処理実行部401は、最初の関数(例えば、関数A)を呼び出し、実行する。これに応じて、処理実行部401は、図7で説明した履歴情報の書き込み処理を実行する。ここでは、関数Aは、初回の関数呼び出しに該当するので、図7のステップS702~S705の処理が実行される。
In step S904, the
ステップS905において、処理実行部401は、第1の記憶部402から共有メモリ122、及び共有メモリ122のIDを取得する。この処理は、図7のステップS702の処理に対応している。
In step S<b>905 , the
ステップS906において、処理実行部401は、取得した共有メモリ122のIDをトレース実行部(関数トレーサ)403に通知する。この処理は、図7のステップS703の処理に対応している。
In step S<b>906 , the
ステップS907において、処理実行部401は、関数Aを呼び出したことを示す履歴情報を第1の記憶部402に含まれる共有メモリ122に書き込む。これにより、例えば、図5(A)に示すような共有メモリ122に履歴情報が記憶される。なお、この処理は、図7のステップS705の処理に対応している。
In step S<b>907 , the
ステップS908において、処理実行部401は、2回目以降の関数(例えば、関数B)を呼び出し、実行する。これに応じて、処理実行部401は、図7で説明した履歴情報の書き込み処理を実行する。ここでは、関数Bは、初回の関数呼び出しに該当しないので、図7のステップS705の処理が実行される。
In step S<b>908 , the
ステップS909において、処理実行部401は、関数Bを呼び出したことを示す履歴情報を第1の記憶部402に含まれる共有メモリ122に書き込む。これにより、例えば、図5(A)に示すような共有メモリ122に履歴情報が追記される。
In step S<b>909 , the
処理実行部401は、ステップS908、S909と同様にして、関数を呼び出すごとに、履歴情報を共有メモリ122に書き込み、ステップS910において、main()関数の実行を終了、又はexit()関数が実行すると、ステップS911以降の処理が実行される。
As in steps S908 and S909, the
ステップS911において、処理実行部401は、履歴情報の書き込みが終了したことを、トレース実行部403に通知する。この通知には、例えば、共有メモリ122のIDが含まれる。
In step S911, the
ステップS912において、トレース実行部403は、書き込みが終了した共有メモリ122に記憶されている履歴情報を取得する。また、ステップS913において、トレース実行部403は、共有メモリ122に記憶されている履歴情報の取得を完了したことを示す完了通知を、処理実行部401に通知する。さらに、ステップS914において、トレース実行部(関数トレーサ)403は、取得した履歴情報を、第2の記憶部(ストレージ)404に記憶する。
In step S912, the
ステップS915において、処理実行部401は、完了通知を受け付けると、共有メモリ122を解放し、ステップS916において、処理が終了したことを示す終了通知を、実行制御部405に通知する。
In step S915, the
上記の処理により、処理実行部401は、処理の実行するときに、呼び出した関数の履歴である履歴情報を、第1の記憶部402に含まれる共有メモリ122に記憶することができる。
Through the above process, the
また、トレース実行部403は、処理実行部401が所定の処理を終了するときに、共有メモリが解放される前に、共有メモリ122に記憶された履歴情報を取得し、第2の記憶部404に記憶することができる。
Further, when the
<コンパイラによる処理の埋込>
前述したように、処理実行部401は、関数を呼び出すごとに、図7に示すような履歴情報の書き込み処理を実行する。一例として、処理実行部401は、関数を呼び出すごとに、履歴情報の書き込み処理を実行する関数を明示的に呼び出しても良い。
<Embedding processing by compiler>
As described above, the
また、好適な一例として、プログラムをコンパイルするときに、履歴情報の書き込み処理を実行する関数が自動的に呼び出されるように、プログラムに処理を埋め込んでも良い。 Further, as a preferred example, processing may be embedded in a program so that a function for executing history information writing processing is automatically called when the program is compiled.
図10は、一実施形態に係るコンパイラによる処理の埋込について説明するための図である。例えば、オープンソースのコンパイラであるGCC(GNU Compiler Collection)では、特定のコンパイルオプションを指定することで、関数の先頭と末尾に、それぞれ特定の関数を呼び出すように指定することができる。 FIG. 10 is a diagram for explaining embedding of processing by a compiler according to one embodiment. For example, in GCC (GNU Compiler Collection), which is an open-source compiler, by specifying a specific compile option, it is possible to specify to call specific functions at the beginning and end of each function.
これにより、例えば、図10のステップS1001において、呼び出し元関数が、読み出し先関数を呼び出すと、ステップS1002において、関数「_cyg_profile_func_enter()」が自動的に呼び出される。このとき、例えば、第1引数には「呼び出し先関数」のアドレスが、第2引数には「呼び出し元関数」のアドレスが渡される。 As a result, for example, when the caller function calls the read destination function in step S1001 of FIG. 10, the function "_cyg_profile_func_enter( )" is automatically called in step S1002. At this time, for example, the address of the "callee function" is passed as the first argument, and the address of the "caller function" is passed as the second argument.
また、図10のステップS1003において、呼び出し先関数を終了する前に、関数「_cyg_profile_func_exit()」が自動的に呼び出され、その後に、ステップS1004において、呼び出し先関数から呼び出し元関数に対して戻り値が通知される。 Also, in step S1003 of FIG. 10, the function "_cyg_profile_func_exit()" is automatically called before the callee function is terminated. is notified.
例えば、前述した特定のオプション(例えば、「-finstrument-functions」)を指定することにより、ステップS1002、S1003の処理が自動的に付加される。ただし、関数「_cyg_profile_func_exit()」、「_cyg_profile_func_exit()」等は、開発者が実装しなければならない。 For example, the processes of steps S1002 and S1003 are automatically added by designating the aforementioned specific option (for example, "-finstrument-functions"). However, functions such as "_cyg_profile_func_exit()" and "_cyg_profile_func_exit()" must be implemented by the developer.
<機能構成の別の一例>
図4で説明した画像形成装置200の機能構成は一例である。例えば、図4の例では、画像形成装置200が第2の記憶部404を備えていたが、第2の記憶部404は、図11に示すように、通信ネットワーク1103を介して、画像形成装置200と通信可能な外部装置1102等であっても良い。
<Another example of functional configuration>
The functional configuration of the
図11において、通信部1101は、例えば、図2のCPU201で実行されるプログラム、及びネットワークI/F250等によって実現され、画像形成装置200を通信ネットワーク1103に接続して、外部装置1102等と通信を行う。
In FIG. 11, a
外部装置(第2の記憶部の別の一例)1102は、一般的なコンピュータ、又は複数のコンピュータを含むシステムであり、通信ネットワーク1103に接続され、画像形成装置200から送信された履歴情報を記憶する第2の記憶部として機能する。外部装置1102は、例えば、一般的なストレージサーバ等であっても良いし、複数の画像形成装置200の履歴情報を管理する管理サーバ等であっても良い。
An external device (another example of the second storage unit) 1102 is a general computer or a system including a plurality of computers, is connected to the
以上、本発明の各実施形態によれば、所定の処理を実行する画像形成装置200において、所定の処理の処理性能への影響を低減しつつ、所定の処理を実行するプログラムの履歴情報を取得できるようになる。
As described above, according to each embodiment of the present invention, in the
なお、前述したように、画像形成装置200は、複数のコアを有するCPUを備えた情報処理装置100の一例である。情報処理装置100は、複数のコアを有するCPUを備えた、他の電子機器、情報端末等であっても良い。
Note that, as described above, the
<補足>
上記で説明した各実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
<Supplement>
Each function of each embodiment described above can be realized by one or more processing circuits. Here, the "processing circuit" in this specification means a processor programmed by software to perform each function, such as a processor implemented by an electronic circuit, or a processor designed to perform each function described above. ASICs (Application Specific Integrated Circuits), DSPs (digital signal processors), FPGAs (field programmable gate arrays) and devices such as conventional circuit modules.
100 情報処理装置
110 プロセッサ
111a、111b、111c CPUコア
130 ストレージ(ストレージデバイス)
200 画像形成装置(情報処理装置の一例)
201 CPU(プロセッサの一例)
208 HD(ストレージデバイスの一例)
401a、401b 処理実行部
402 第1の記憶部
403 トレース実行部
404 第2の記憶部
405 実行制御部
500 共有メモリ
501 メモリページ(記憶領域)
1102 外部装置
100
200 image forming apparatus (an example of an information processing apparatus)
201 CPU (an example of a processor)
208 HD (an example of a storage device)
401a, 401b
1102 external device
Claims (10)
所定の処理を実行し、前記処理の実行に伴う履歴情報を、前記履歴情報を一時的に記憶する第1の記憶部に記憶する1つ以上の処理実行部と、
前記第1の記憶部に記憶された前記履歴情報を、前記1つ以上の処理実行部の前記履歴情報を蓄積する第2の記憶部に記憶するトレース処理を実行するトレース実行部と、
前記複数のCPUコアのうち、一のCPUコアに前記トレース処理を実行させるとともに、前記一のCPUコアとは異なる1つ以上の他のCPUコアに前記所定の処理を実行させる実行制御部と、
を有する、情報処理装置。 An information processing device comprising a processor having a plurality of CPU cores,
one or more processing execution units that execute predetermined processing and store history information associated with execution of the processing in a first storage unit that temporarily stores the history information;
a trace execution unit that executes trace processing for storing the history information stored in the first storage unit in a second storage unit that accumulates the history information of the one or more process execution units;
an execution control unit that causes one CPU core among the plurality of CPU cores to execute the trace processing, and causes one or more other CPU cores different from the one CPU core to execute the predetermined processing;
An information processing device.
前記所定の処理を開始するときに、前記共有メモリと前記共有メモリの識別情報とを取得し、
取得した前記共有メモリの識別情報を前記トレース実行部に通知し、
取得した前記共有メモリに前記履歴情報を記憶する、
請求項2に記載の情報処理装置。 The processing execution unit
Acquiring the shared memory and identification information of the shared memory when starting the predetermined process;
notifying the trace execution unit of the acquired identification information of the shared memory;
storing the history information in the acquired shared memory;
The information processing apparatus according to claim 2.
前記トレース実行部は、前記処理実行部が前記所定の処理を終了するときに、前記処理実行部から通知された前記共有メモリの識別情報に対応する前記共有メモリから、前記履歴情報を取得し、前記第2の記憶部に記憶する、
請求項3に記載の情報処理装置。 The processing execution unit notifies the trace execution unit that the predetermined processing is to be completed when the predetermined processing is completed;
the trace execution unit acquires the history information from the shared memory corresponding to the identification information of the shared memory notified from the processing execution unit when the processing execution unit finishes the predetermined processing; storing in the second storage unit;
The information processing apparatus according to claim 3.
前記トレース実行部は、前記複数の記憶領域のうち、一の記憶領域に空き領域がなくなったときに、前記一の記憶領域に記憶された前記履歴情報を取得し、前記第2の記憶部に記憶する、
請求項2乃至4のいずれか一項に記載の情報処理装置。 The shared memory includes a plurality of storage areas,
The trace execution unit acquires the history information stored in the one storage area when one of the plurality of storage areas runs out of free space, and stores the history information in the second storage unit. Remember,
The information processing apparatus according to any one of claims 2 to 4.
1つ以上の所定の処理と、
前記所定の処理の実行に伴う履歴情報を、前記履歴情報を一時的に記憶する第1の記憶部に記憶する処理と、
前記第1の記憶部に記憶された前記履歴情報を、前記1つ以上の処理実行部の前記履歴情報を記憶する第2の記憶部に記憶するトレース処理と、
前記複数のCPUコアのうち、一のCPUコアに前記トレース処理を実行させるとともに、前記一のCPUコアとは異なる1つ以上の他のCPUコアに前記所定の処理を実行させる処理と、
を実行する、情報処理方法。 An information processing device equipped with a processor having a plurality of CPU cores,
one or more predetermined processes;
A process of storing history information associated with execution of the predetermined process in a first storage unit that temporarily stores the history information;
a tracing process of storing the history information stored in the first storage unit in a second storage unit that stores the history information of the one or more process execution units;
a process of causing one CPU core among the plurality of CPU cores to execute the trace process and causing one or more other CPU cores different from the one CPU core to execute the predetermined process;
A method of processing information that performs
所定の処理を実行し、前記処理の実行に伴う履歴情報を、前記履歴情報を一時的に記憶する第1の記憶部に記憶する1つ以上の処理実行部、
前記第1の記憶部に記憶された前記履歴情報を、前記1つ以上の処理実行部の前記履歴情報を蓄積する第2の記憶部に記憶するトレース処理を実行するトレース実行部、及び
前記複数のCPUコアのうち、一のCPUコアに前記トレース処理を実行させるとともに、前記一のCPUコアとは異なる1つ以上の他のCPUコアに前記所定の処理を実行させる実行制御部、
として機能させる、プログラム。 an information processing device comprising a processor having a plurality of CPU cores,
one or more processing execution units that execute predetermined processing and store history information associated with the execution of the processing in a first storage unit that temporarily stores the history information;
a trace execution unit for executing trace processing for storing the history information stored in the first storage unit in a second storage unit for accumulating the history information of the one or more process execution units; and an execution control unit that causes one CPU core among the CPU cores to execute the trace processing and causes one or more other CPU cores different from the one CPU core to execute the predetermined processing;
A program that functions as
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019190570A JP7327076B2 (en) | 2019-10-17 | 2019-10-17 | Information processing device, information processing method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019190570A JP7327076B2 (en) | 2019-10-17 | 2019-10-17 | Information processing device, information processing method, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021067984A JP2021067984A (en) | 2021-04-30 |
JP7327076B2 true JP7327076B2 (en) | 2023-08-16 |
Family
ID=75637217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019190570A Active JP7327076B2 (en) | 2019-10-17 | 2019-10-17 | Information processing device, information processing method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7327076B2 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012070137A1 (en) | 2010-11-25 | 2012-05-31 | トヨタ自動車株式会社 | Processor, electronic control device, creation program |
-
2019
- 2019-10-17 JP JP2019190570A patent/JP7327076B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012070137A1 (en) | 2010-11-25 | 2012-05-31 | トヨタ自動車株式会社 | Processor, electronic control device, creation program |
Also Published As
Publication number | Publication date |
---|---|
JP2021067984A (en) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7886268B2 (en) | Information processing apparatus and computer product | |
US20130219261A1 (en) | Apparatus, information processing system, and information processing method | |
US8988722B2 (en) | Cooperative processing system and method for acquiring device attributes using QR codes and interface connection function | |
US20120215828A1 (en) | Information processing system, information processing device, and recording medium | |
JP6421499B2 (en) | Information processing system, information storage device, program, and location information storage method | |
US11106857B2 (en) | Computer readable recording medium, information processing terminal device, and control method of information processing terminal device | |
JP7293652B2 (en) | Information processing system, server device, information processing method, and program | |
EP3255545A1 (en) | Control method | |
US20140019859A1 (en) | System, information processing apparatus, and method of controlling display | |
CN109660684A (en) | Image processing apparatus and its control method and storage medium | |
JP7327076B2 (en) | Information processing device, information processing method, and program | |
JP6052452B2 (en) | Information processing system, information storage apparatus and method | |
US11436299B2 (en) | Information processing system, server apparatus, and information processing method | |
JP7147580B2 (en) | Information processing system, information processing device, parameter setting method and program | |
JP7188129B2 (en) | Information processing system and method | |
JP7354793B2 (en) | Information processing device, control method, and program | |
US11194907B2 (en) | Information processing apparatus, control method, and recording medium | |
JP7396067B2 (en) | Information processing device, log management method, and program | |
US11729340B2 (en) | Information processing server, method, and recording medium | |
JP7155948B2 (en) | Information processing device, image forming device, image forming system and program | |
JP7434840B2 (en) | Information processing system, information processing device, information processing method and program | |
JP7439570B2 (en) | Information processing device, control method, and program | |
JP2023035686A (en) | Information processing device, information processing method, and program | |
JP7318401B2 (en) | Cooperative processor, method and program | |
JP2022143514A (en) | Information processing system, information processing apparatus, terminal device, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220824 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230614 |
|
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: 20230704 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230717 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7327076 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |