JP7327076B2 - Information processing device, information processing method, and program - Google Patents

Information processing device, information processing method, and program Download PDF

Info

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
Application number
JP2019190570A
Other languages
Japanese (ja)
Other versions
JP2021067984A (en
Inventor
文幸 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2019190570A priority Critical patent/JP7327076B2/en
Publication of JP2021067984A publication Critical patent/JP2021067984A/en
Application granted granted Critical
Publication of JP7327076B2 publication Critical patent/JP7327076B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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 Patent Document 1, a system call is issued each time a program that executes a predetermined process calls a function, which has the problem of greatly affecting the processing performance of the information processing apparatus.

本発明の一実施形態は、上記の問題点に鑑みてなされたものであって、所定の処理を実行する情報処理装置において、所定の処理の処理性能への影響を抑制しつつ、所定の処理を実行するプログラムの履歴情報を取得できるようにする。 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.

一実施形態に係る情報処理装置の概要について説明するための図である。1 is a diagram for explaining an overview of an information processing device according to an embodiment; FIG. 一実施形態に係る画像形成装置のハードウェア構成の例を示す図である。1 illustrates an example hardware configuration of an image forming apparatus according to an embodiment; FIG. 一実施形態に係る画像形成装置のソフトウェア構成の例を示す図である。1 is a diagram illustrating an example of a software configuration of an image forming apparatus according to one embodiment; FIG. 一実施形態に係る画像形成装置の機能構成の一例を示す図である。1 illustrates an example functional configuration of an image forming apparatus according to an embodiment; FIG. 一実施形態に係る共有メモリについて説明するための図である。FIG. 4 is a diagram for explaining a shared memory according to one embodiment; FIG. 一実施形態に係る起動時の処理の例を示すシーケンス図である。FIG. 7 is a sequence diagram illustrating an example of processing at startup according to one embodiment; 一実施形態に係る履歴情報の書込処理の例を示すフローチャートである。6 is a flowchart illustrating an example of history information write processing according to an embodiment; 一実施形態に係る関数呼び出し時の処理の例を示すシーケンス図である。FIG. 7 is a sequence diagram showing an example of processing when calling a function according to one embodiment; 一実施形態に係る処理実行部の処理の例を示すシーケンス図である。FIG. 5 is a sequence diagram showing an example of processing by a processing execution unit according to one embodiment; 一実施形態に係るコンパイラによる処理の埋込について説明するための図である。FIG. 4 is a diagram for explaining embedding of processing by a compiler according to one embodiment; 一実施形態に係る画像形成装置の機能構成の別の一例を示す図である。3 is a diagram illustrating another example of the functional configuration of the image forming apparatus according to one embodiment; FIG.

以下、本発明の実施形態について、図面を参照しながら詳細に説明する。 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 information processing apparatus 100 is a computer that includes a processor 110 that includes a plurality of CPU (Central Processing Unit) cores 111a, 111b, 111c, . . . and executes one or more programs 121a, 121b, . In the following description, "CPU core 111" is used when indicating an arbitrary CPU core among the plurality of CPU cores 111a, 111b, 111c, . Also, when indicating an arbitrary program among the one or more programs 121a, 121b, . . . , "program 121" is used.

プロセッサ110は、互いに独立して機能する演算装置であるCPUコア111を複数備えたマルチコアプロセッサであり、例えば、CPU、MPU(Micro Processing Unit)等とも呼ばれる。なお、CPUコア111の数は、2つ以上の他の数であっても良い。また、プロセッサ110は、1つ以上のCPUコア111を備えた複数のプロセッサによって構成されるものであっても良い。 The processor 110 is a multi-core processor including a plurality of CPU cores 111, which are arithmetic devices that function independently of each other, and is also called a CPU, MPU (Micro Processing Unit), or the like, for example. Note that the number of CPU cores 111 may be two or more. Also, the processor 110 may be composed of a plurality of processors having one or more CPU cores 111 .

メモリ120は、プロセッサ110のワークエリア等として用いられる主記憶装置(一次記憶装置)であり、例えば、RAM(Random Access Memory)等によって実現される。ストレージ130は、例えば、OS(Operating System)、アプリケーションプログラム、及び各種のデータ等を記憶する不揮発性の大容量の記憶装置(二次記憶装置)であり、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)等のストレージデバイスによって実現される。 The memory 120 is a main storage device (primary storage device) used as a work area or the like of the processor 110, and is realized by, for example, a RAM (Random Access Memory) or the like. The storage 130 is, for example, a nonvolatile large-capacity storage device (secondary storage device) that stores an OS (Operating System), application programs, various data, and the like. (Solid State Drive) or other storage device.

例えば、情報処理装置100は、汎用のOS、又はリアルタイムOSを用いた組み込みシステムであり、プロセッサ110で、1つ以上のプログラム121a、121b、・・・を実行する。このような情報処理装置100では、一般的に、障害が発生したときの障害解析の難易度が高い傾向があり、また、障害発生時に残る解析用の情報は、断片的なログ情報のみである場合が多い。したがって、このような情報処理装置100で障害が発生したときには、障害解析が長期化し、例えば、解析コストの上昇や、顧客満足度の低下等につながる場合がある。 For example, the information processing apparatus 100 is an embedded system using a general-purpose OS or a real-time OS, and the processor 110 executes one or more programs 121a, 121b, . In such an information processing apparatus 100, in general, when a failure occurs, failure analysis tends to be difficult, and information for analysis that remains when a failure occurs is only fragmentary log information. often. Therefore, when a failure occurs in such an information processing apparatus 100, the failure analysis takes a long time, which may lead to an increase in analysis costs and a decrease in customer satisfaction, for example.

このようなリスクを軽減するために、有効なデバッグ機能が望まれており、その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 Patent Document 1, a system call is issued each time the program 121 calls a function.

そこで、本実施形態に係る情報処理装置100は、予め決定した特定のCPUコア111(例えば、CPUコア111a)で、関数トレース機能を実現するプログラムである関数トレーサ123を実行する。また、情報処理装置100は、例えば、CPUコア111aとは異なる他のCPUコア111b、111c、・・・で、1つ以上のプログラム121を実行する。 Therefore, in the information processing apparatus 100 according to the present embodiment, a predetermined specific CPU core 111 (for example, the CPU core 111a) executes the function tracer 123, which is a program that implements the function tracing function. Further, the information processing apparatus 100 executes one or more programs 121 by, for example, CPU cores 111b, 111c, . . . different from the CPU core 111a.

また、各プログラム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 memory 122, each time the function is called. This history information writing process performs only the process of writing the history information to the shared memory 122 on the memory 120 such as RAM, and does not write the history information to the secondary storage device such as the storage 130 or the like. This is because the process of storing the history information in the secondary storage generally takes time, and the processing performance of each program 121 is significantly degraded.

さらに、関数トレーサ123は、各プログラム121によって共有メモリ122に書き込まれた履歴情報を、各プログラム121の履歴情報131を蓄積するストレージ130に記憶するトレース処理を実行する。これにより、関数トレーサ123は、1つ以上のプログラム121が実行する処理の処理性能への影響を低減しつつ、1つ以上のプログラム121の履歴情報を取得することができる。 Further, the function tracer 123 executes trace processing for storing the history information written in the shared memory 122 by each program 121 in the storage 130 that accumulates the history information 131 of each program 121 . As a result, the function tracer 123 can acquire history information of the one or more programs 121 while reducing the influence of processing executed by the one or more programs 121 on the processing performance.

このように、本実施形態によれば、所定の処理を実行する情報処理装置100において、所定の処理の処理性能への影響を低減しつつ、所定の処理を実行する各プログラムの履歴情報を取得できるようになる。 As described above, according to the present embodiment, in the information processing apparatus 100 that executes a predetermined process, the history information of each program that executes the predetermined process is acquired while reducing the influence of the predetermined process on the processing performance. become able to.

<ハードウェア構成>
ここでは、一例として、情報処理装置100が、例えば、スキャン機能、コピー機能、印刷機能、ファクシミリ機能等を一つの筐体に搭載したMFP(Multifunction Peripheral)等の画像形成装置であるものとして、以下の説明を行う。
<Hardware configuration>
Here, as an example, the information processing apparatus 100 is assumed to be an image forming apparatus such as an MFP (Multifunction Peripheral) having a scan function, a copy function, a print function, a facsimile function, etc. in one housing. to explain.

ただし、これに限られず、情報処理装置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 information processing apparatus 100 is not limited to this, and is not limited to an image forming apparatus as long as it is an apparatus having a plurality of CPU cores 111 . For example, the information processing apparatus 100 may be a PJ (Projector), an IWB (Interactive White Board), a digital signage, or an output device such as a HUD (Head Up Display) device. It may be a device. Further, the information processing device 100 may be, for example, an industrial machine, an imaging device, a sound collector, a medical device, a network appliance, a connected car, or the like. Further, the information processing apparatus 100 is, for example, an information terminal such as a notebook PC (Personal Computer), a mobile phone, a smartphone, a tablet terminal, a game machine, a PDA (Personal Digital Assistant), a digital camera, a wearable PC, or a desktop PC. can be

図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 image forming apparatus 200 includes a controller 210, a short-range communication circuit 220, an engine control section 230, an operation panel 240, a network I/F 250, and a fax control unit (hereinafter referred to as FCU). 260 and so on.

これらのうち、コントローラ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 controller 210 includes a CPU 201, a system memory (MEM-P) 202, a north bridge (NB) 203, a south bridge (SB) 204, an ASIC (Application Specific Integrated Circuit) 205, and a local memory. (MEM-C) 206 , HDD controller 207 , HD 208 , etc., and NB 203 and ASIC 205 are connected by an AGP (Accelerated Graphics Port) bus 211 .

これらのうち、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 CPU 201 is a control unit that performs overall control of the image forming apparatus 200 . Note that the CPU 201 is an example of the processor 110 in FIG. 1 and has a plurality of CPU cores 111a, 111b, 111c, . The NB 203 is a bridge for connecting the CPU 201, the MEM-P 202, the SB 204, and the AGP bus 211, and is a memory controller that controls reading and writing with respect to the MEM-P 202, a PCI (Peripheral Component Interconnect) master, and an AGP target. have

MEM-P202は、コントローラ210の各機能を実現させるプログラムやデータの格納用メモリであるROM202a、プログラムやデータの展開、及びメモリ印刷時の描画用メモリなどとして用いるRAM202bとからなる。なお、MEM-P202は、図1のメモリ120の一例である。RAM202bに記憶されているプログラムは、コンピュータで読み取り可能な記録媒体に記録して提供するように構成しても良い。 The MEM-P 202 is composed of a ROM 202a, which is a memory for storing programs and data for realizing each function of the controller 210, and a RAM 202b, which is used as a drawing memory for expanding the programs and data and for memory printing. Note that the MEM-P 202 is an example of the memory 120 in FIG. The program stored in the RAM 202b may be configured to be recorded on a computer-readable recording medium and provided.

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 NB 203 with PCI devices and peripheral devices. The ASIC 205 is an IC (Integrated Circuit) for image processing that has hardware elements for image processing, and serves as a bridge that connects the AGP bus 211, PCI bus 212, HDD controller 207, and MEM-C 206, respectively. . This ASIC 205 includes a PCI target and AGP master, an arbiter (ARB) that forms the core of the ASIC 205, a memory controller that controls the MEM-C 206, and a plurality of DMACs (Direct Memory Access Controllers) that rotate image data using hardware logic. , and a PCI unit that transfers data between the scanner unit 231 and the printer unit 232 via the PCI bus 212 . Note that the ASIC 205 may be connected to a USB (Universal Serial Bus) interface or an IEEE 1394 (Institute of Electrical and Electronics Engineers 1394) interface.

MEM-C206は、コピー用画像バッファ及び符号バッファとして用いるローカルメモリである。HD208は、図1のストレージ130の一例であり、各種のプログラム、データ、画像データ、印刷時に用いるフォントデータ、フォーム等の各種のデータ、及び履歴情報131等を記憶する大容量の記憶装置である。HDDコントローラ207は、CPU201の制御に従ってHD208に対するデータの読出又は書込を制御する。AGPバス211は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレータカード用のバスインタフェースであり、MEM-P202に高スループットで直接アクセスすることにより、グラフィックスアクセラレータカードを高速化することができる。 MEM-C 206 is a local memory used as an image buffer for copying and an encoding buffer. The HD 208 is an example of the storage 130 in FIG. 1, and is a large-capacity storage device that stores various programs, data, image data, font data used for printing, various data such as forms, history information 131, and the like. . The HDD controller 207 controls reading or writing of data to the HD 208 under the control of the CPU 201 . The AGP bus 211 is a bus interface for graphics accelerator cards proposed for speeding up graphics processing, and can speed up the graphics accelerator card by directly accessing the MEM-P 202 with high throughput. .

近距離通信回路220は、アンテナ220aを用いて、例えば、NFC(Near Field Communication)、Bluetooth(登録商標)等の近距離無線通信の規格に従って通信を行う高周波回路、信号処理回路、及び通信制御回路等を含む。エンジン制御部230は、例えば、スキャナ部231及びプリンタ部232等によって構成されている。スキャナ部231は、原稿等を読み取る読取装置である。プリンタ部232は、印刷データを印刷媒体に印刷する印刷装置である。スキャナ部231又はプリンタ部232には、例えば、誤差拡散やガンマ変換等の画像処理部分が含まれている。 The short-range communication circuit 220 is a high-frequency circuit, a signal processing circuit, and a communication control circuit that perform communication according to near-field wireless communication standards such as NFC (Near Field Communication) and Bluetooth (registered trademark) using an antenna 220a. etc. The engine control unit 230 is composed of, for example, a scanner unit 231, a printer unit 232, and the like. The scanner unit 231 is a reading device that reads an original or the like. The printer unit 232 is a printing device that prints print data on a print medium. The scanner unit 231 or printer unit 232 includes, for example, image processing such as error diffusion and gamma conversion.

操作パネル240は、現在の設定値や選択画面等を表示させ、操作者からの入力を受け付けるタッチパネル等のパネル表示部240a、並びに、濃度の設定条件などの画像形成に関する条件の設定値を受け付けるテンキー及びコピー開始指示を受け付けるスタートキー等からなる操作ボタン240bを備えている。コントローラ210は、画像形成装置200全体の制御を行い、例えば、描画、通信、操作パネル240からの入力等を制御する。 The operation panel 240 includes a panel display unit 240a such as a touch panel for displaying current setting values, a selection screen, and the like, and for receiving input from an operator, and a numeric keypad for receiving setting values of image forming conditions such as density setting conditions. and an operation button 240b such as a start key for accepting a copy start instruction. The controller 210 controls the entire image forming apparatus 200, such as drawing, communication, input from the operation panel 240, and the like.

なお、画像形成装置200は、操作パネル240のアプリケーション切り替えキーにより、ドキュメントボックス機能、コピー機能、プリンタ機能、及びファクシミリ機能を順次に切り替えて選択することが可能となる。ドキュメントボックス機能の選択時にはドキュメントボックスモードとなり、コピー機能の選択時にはコピーモードとなり、プリンタ機能の選択時にはプリンタモードとなり、ファクシミリモードの選択時にはファクシミリモードとなる。 Note that the image forming apparatus 200 can switch and select the document box function, the copy function, the printer function, and the facsimile function in sequence using the application switching key of the operation panel 240 . The document box mode is set when the document box function is selected, the copy mode is set when the copy function is selected, the printer mode is set when the printer function is selected, and the facsimile mode is set when the facsimile mode is selected.

ネットワークI/F250は、通信ネットワークを利用してデータ通信をするためのインタフェースである。FCU260は、ファクス通信のプロトロルに従って、ファクスデータの送受信等を行う。近距離通信回路220、ネットワークI/F250、及びFCU260等は、例えば、PCIバス212を介してASIC205に電気的に接続されている。 Network I/F 250 is an interface for data communication using a communication network. The FCU 260 performs transmission and reception of fax data according to the protocol of fax communication. The short-range communication circuit 220, the network I/F 250, the FCU 260, and the like are electrically connected to the ASIC 205 via the PCI bus 212, for example.

<ソフトウェア構成>
図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 image forming apparatus 200 includes, for example, a software group 301, an engine 302, hardware resources 303, and the like. Note that the engine 302 corresponds to, for example, the engine control unit 230, scanner unit 231, and printer unit 232 in FIG. Also, the hardware resource 303 corresponds to, for example, the CPU 201, the operation panel 240, the network I/F 250, the MEM-P 202, the HDD controller 207, and the HD 208 shown in FIG.

ソフトウェア群301は、OS341上に起動されているアプリケーション層304と、プラットフォーム305とを含む。アプリケーション層304は、例えば、印刷アプリ311、コピーアプリ312、スキャナアプリ313、・・・等のアプリケーションプログラム(以下、アプリと呼ぶ)を含む。なお、印刷アプリ311、コピーアプリ312、スキャナアプリ313、・・・等は、図1の1つ以上のプログラム121a、121b、・・・の一例である。 A software group 301 includes an application layer 304 running on an OS 341 and a platform 305 . The application layer 304 includes application programs (hereinafter referred to as applications) such as a print application 311, a copy application 312, a scanner application 313, and so on. Note that the print application 311, the copy application 312, the scanner application 313, . . . are examples of the one or more programs 121a, 121b, .

印刷アプリ311は、印刷処理を実行するためのアプリである。コピーアプリ312は、コピー処理を実行するためのアプリである。スキャナアプリ313は、スキャン機能を実行するためのアプリである。 The print application 311 is an application for executing print processing. The copy application 312 is an application for executing copy processing. A scanner application 313 is an application for executing a scanning function.

プラットフォーム305は、アプリケーション層304からの処理要求を解釈してハードウェア資源303の獲得要求を発生するサービス層306、ハードウェア資源303の管理を行い、サービス層306からの獲得要求を調停するSRM(System Resource Manager)331、及びメモリの割り振り及び管理を行うIMH(Image Memory handler)332等を含む。 The platform 305 includes a service layer 306 that interprets processing requests from the application layer 304 and generates acquisition requests for hardware resources 303, and an SRM that manages the hardware resources 303 and arbitrates acquisition requests from the service layer 306. System Resource Manager) 331, and IMH (Image Memory Handler) 332 that allocates and manages memory.

サービス層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 service layer 306 includes, for example, 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, etc. Contains service modules.

また、プラットフォーム305は予め定義されている関数により、アプリケーション層304からの処理要求を受信可能とするAPI(Application Programming Interface)351を有する。 The platform 305 also has an API (Application Programming Interface) 351 that can receive processing requests from the application layer 304 using a predefined function.

OS341は、アプリケーション層304、及びプラットフォーム305の各ソフトウェアをプロセスとして並列に実行する。なお、ここでは、OS341が、Linux(登録商標)であるものとして、以下の説明を行うが、OS341は、Linuxに限られず、他のOSであっても良い。init342は、OS341が起動したとき等に最初に実行されるプログラムであり、アプリケーション層304、プラットフォーム505等を起動させる。 The OS 341 executes each software of the application layer 304 and the platform 305 in parallel as processes. Here, the OS 341 is assumed to be Linux (registered trademark), but the OS 341 is not limited to Linux, and may be another OS. The init 342 is a program that is executed first when the OS 341 is activated, and activates the application layer 304, the platform 505, and the like.

ECS321のプロセスは、エンジン302、及びハードウェア資源303等の制御を行う。MCS322のプロセスは、メモリの取得、開放、及びHD208の利用等のメモリに関する制御を行う。OCS323のプロセスは、利用者と本体制御との間の情報伝達手段となる操作パネル240等の制御を行う。NCS324のプロセスは、通信ネットワークによるデータの送受信を行うアプリに対して、共通に利用できるネットワークサービスを提供する。LCS325のプロセスは、例えば、履歴情報131等のログ情報の管理と保持を行う。 The ECS 321 process controls the engine 302, hardware resources 303, and the like. The MCS 322 process controls memory, such as memory acquisition, freeing, and use of the HD 208 . The process of the OCS 323 controls the operation panel 240 and the like, which serve as information transmission means between the user and the main body control. The NCS 324 process provides commonly available network services to applications that send and receive data over a communication network. The LCS 325 process manages and retains log information such as history information 131, for example.

SRM331のプロセスは、システムの制御、及びハードウェア資源303の管理を行う。例えばSRM331のプロセスは、エンジン302に含まれるプリンタ部232、スキャナ部231等や、ハードウェア資源303等を利用する上位層からの獲得要求に従って調停を行い、実行を制御する。SRM331は、予め定義されている関数によりエンジン302等に対する処理要求を送信可能とするエンジンI/F352を利用して、エンジン302に対する処理要求を行う。 The SRM 331 process controls the system and manages the hardware resources 303 . For example, the process of the SRM 331 arbitrates according to acquisition requests from upper layers that use the printer unit 232, scanner unit 231, etc., hardware resources 303, etc. included in the engine 302, and controls execution. The SRM 331 issues a processing request to the engine 302 using an engine I/F 352 that enables transmission of a processing request to the engine 302 or the like using a predefined function.

<機能構成>
図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 image forming apparatus 200 according to one embodiment. An image forming apparatus (an example of an information processing apparatus) 200 includes, for example, one or more processing execution units 401a, 401b, . It has a control unit 405, an exception handler 406, and the like. In the following description, "processing execution unit 401" is used when indicating an arbitrary processing execution unit among the one or more processing execution units 401a, 401b, . . .

処理実行部401は、例えば、CPU201に含まれるCPUコア111b、111c、・・・で実行されるプログラム(例えば、図1のプログラム121a、121b、又は図3の印刷アプリ311、コピーアプリ312等)によって実現される。処理実行部401は、所定の処理を実行し、処理の実行に伴う履歴情報を、履歴情報を一時的に記憶する第1の記憶部402に記憶する。例えば、処理実行部401は、関数を呼び出すごとに、呼び出した関数の履歴である履歴情報を、第1の記憶部402に含まれる共有メモリ122等に書き込む。 The processing execution unit 401 includes, for example, programs executed by the CPU cores 111b, 111c, . realized by The process execution unit 401 executes a predetermined process and stores history information associated with the execution of the process in the first storage unit 402 that temporarily stores history information. For example, each time a function is called, the process execution unit 401 writes history information, which is the history of the called function, to the shared memory 122 or the like included in the first storage unit 402 .

なお、処理実行部401を実現するプログラムは、アプリケーション層304のアプリに限られず、プラットフォーム305のサービスや、SRM331、IMH332等であっても良い。 Note that the program that implements the processing execution unit 401 is not limited to the application of the application layer 304, and may be a service of the platform 305, the SRM 331, the IMH 332, or the like.

第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 OS 341, etc.), the RAM 202b, and the like. The first storage unit 402 includes, for example, a shared memory 122 that temporarily stores history information that is a history of functions called by the process execution unit 401 .

図5は、一実施形態に係る共有メモリについて説明するための図である。第1の記憶部402には、例えば、図5(A)~(C)に示すような共有メモリ122が含まれる。共有メモリ122は、RAM領域のうち、実行中の複数のプログラムから読み書きが可能(共有可能)な領域であり、本実施形態では、例えば、関数の呼び出し履歴である履歴情報を記憶するため等に用いられる。 FIG. 5 is a diagram for explaining a shared memory according to one embodiment. The first storage unit 402 includes, for example, a shared memory 122 as shown in FIGS. 5(A) to 5(C). The shared memory 122 is a RAM area that can be read from and written to (shared) by a plurality of running programs. Used.

共有メモリ122は、例えば、図5(A)に示すように、複数のメモリページ(記憶領域)501で構成される。共有メモリ122は、初期状態では、例えば、図5(A)に示すように、先頭ページ(ページ1)のみが「読込/書込可能」に、他のページ(ページ2、ページ3、・・・)は「読込のみ可能」にアクセス属性が設定されている。 The shared memory 122 is composed of a plurality of memory pages (storage areas) 501 as shown in FIG. 5A, for example. In the initial state of the shared memory 122, for example, as shown in FIG. ) has the access attribute set to "read only".

このアクセス属性は、CPU201に搭載されているMMUによって、メモリページ501単位で設定することができる。なお、メモリページ501の典型的なサイズは4kバイトであるが、他のサイズであっても良い。 This access attribute can be set for each memory page 501 by the MMU installed in the CPU 201 . Note that a typical size of memory page 501 is 4 kbytes, but other sizes are possible.

図5(A)の状態では、処理実行部401は、ページ1に対して履歴情報の書き込みが可能である。また、処理実行部401は、複数回の履歴情報の書き込みにより、ページ1の空き容量を使い切ると、図8(B)に示すように、次のページ2に、履歴情報の書き込みを試みる。これにより、読み込みのみ可能なページ2に書き込みが行われるため、例外が発生し、メモリページ501を使い切ったこと、すなわち、「所定のサイズの履歴情報が、共有メモリ122に書き込まれたこと」が検知される。 In the state of FIG. 5A , the process execution unit 401 can write history information to page 1 . When the processing execution unit 401 uses up the free space of page 1 by writing the history information a plurality of times, the processing execution unit 401 attempts to write the history information to the next page 2 as shown in FIG. 8B. As a result, since page 2, which can only be read, is written, an exception occurs, and it is notified that the memory page 501 has been used up, that is, "history information of a predetermined size has been written to the shared memory 122". detected.

また、例外が発生すると、発生した例外に対応する例外ハンドラ406が起動され、例外ハンドラ406には、例外を起こす原因となったメモリアドレスが渡される。これに応じて、例外ハンドラ406は、例えば、図5(C)に示すように、ページ2のアクセス属性を、「読込/書込可能」に設定し、ページ1のアクセス属性を「読込のみ可能」に設定する。これにより、処理実行部401は、共有メモリ122のページ2に、履歴情報を書き込むことができるようになる。 Also, when an exception occurs, the exception handler 406 corresponding to the exception that occurred is activated, and the memory address that caused the exception is passed to the exception handler 406 . In response to this, the exception handler 406 sets the access attribute of page 2 to "read/write enabled" and the access attribute of page 1 to "read only," as shown in FIG. 5C, for example. ”. As a result, the process execution unit 401 can write history information to page 2 of the shared memory 122 .

ここで、図4に戻り、画像形成装置200の機能構成の説明を続ける。 Here, returning to FIG. 4, the description of the functional configuration of the image forming apparatus 200 is continued.

トレース実行部(関数トレーサ)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 CPU core 111a included in the CPU 201 (eg, the function tracer 123 in FIG. 1 or the LCS 325 in FIG. 3, etc.). For example, the trace execution unit 403 executes trace processing to store the history information stored in the first storage unit 402 in the second storage unit 404 that stores the history information of one or more process execution units 401. .

例えば、トレース実行部403は、図5(B)で説明したように、共有メモリ122で例外が発生したとき等に、共有メモリ(第1の記憶部)500に記憶されている履歴情報を取得し、取得した履歴情報を第2の記憶部404に記憶する。 For example, the trace execution unit 403 acquires history information stored in the shared memory (first storage unit) 500 when an exception occurs in the shared memory 122, as described with reference to FIG. 5B. and stores the acquired history information in the second storage unit 404 .

第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 OS 341, etc.) and a storage device (eg, the storage 130 in FIG. 1, or the HD 208 in FIG. 2, etc.). The second storage unit 404 sequentially stores (accumulates) information such as functions called by each of the one or more process execution units 401 and the time of the call as log information. Note that the second storage unit 404 may be an external device (for example, a storage server, a management server, etc.) provided outside the image forming apparatus 200 and capable of communicating with the image forming apparatus 200 .

実行制御部405は、例えば、CPU201で実行されるプログラム(例えば、init342等)によって実現される。実行制御部405は、CPU201に含まれる複数のCPUコア111のうち、1つのCPUコア111(例えば、CPUコア111a)に、トレース実行部(関数トレーサ)403が実行するトレース処理を実行させる。また、実行制御部405は、他のCPUコア111(例えば、CPUコア111b、111c、・・・)に、処理実行部401a、401b、・・・が実行する各処理を実行させる。 The execution control unit 405 is realized by, for example, a program (for example, init 342 etc.) executed by the CPU 201 . The execution control unit 405 causes one CPU core 111 (for example, the CPU core 111 a ) among the plurality of CPU cores 111 included in the CPU 201 to execute the trace processing executed by the trace execution unit (function tracer) 403 . Also, the execution control unit 405 causes the other CPU cores 111 (for example, the CPU cores 111b, 111c, . . . ) to execute the processes executed by the process execution units 401a, 401b, .

なお、所定のプロセスを実行する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 OS 341, the CPU core 111 that executes the process can be arbitrarily designated or restricted. be able to.

例外ハンドラ406は、例えば、CPU201で実行されるプログラムによって実現され、例えば、図5(B)で説明したように、共有メモリ122で例外が発生したときに、トレース実行部403を起動させる。 The exception handler 406 is implemented, for example, by a program executed by the CPU 201, and activates the trace execution unit 403 when an exception occurs in the shared memory 122, for example, as described with reference to FIG. 5B.

<処理の流れ>
続いて、本実施形態に係る情報処理方法の処理の流れについて説明する。
<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 image forming apparatus 200 when the image forming apparatus 200 or the OS 341 is activated.

ステップS601において、OS341が起動すると、OS341は、OS341自身を初期化する処理化処理を実行する。 In step S601, when the OS 341 is activated, the OS 341 executes processing processing for initializing the OS 341 itself.

ステップS602において、OS341は、初期化処理が終了すると、CPU201に所定のプログラム(例えば、図3のinit342)を実行させる。これにより、CPU201で実行されるプログラムによって、実行制御部405が実現される。 In step S602, the OS 341 causes the CPU 201 to execute a predetermined program (for example, init 342 in FIG. 3) after completing the initialization process. As a result, the execution control unit 405 is implemented by the program executed by the CPU 201 .

ステップS603において、実行制御部405は、CPUコア111aを指定して、所定のプログラム(例えば、図3のLCS325)を実行させる。これにより、CPUコア111aで実行されるプログラムによって、トレース処理を実行するトレース実行部403が実現される。 In step S603, the execution control unit 405 designates the CPU core 111a to execute a predetermined program (for example, the LCS 325 in FIG. 3). As a result, the program executed by the CPU core 111a realizes the trace execution unit 403 that executes trace processing.

ステップS604において、実行制御部405は、CPUコア111a以外のCPUコア111(例えば、CPUコア111b、111c、・・・)を指定して、所定のプログラム(例えば、図3の印刷アプリ311)を実行させる。これにより、CPUコア111b、111c、・・・で実行されるプログラムによって、所定の処理を実行する処理実行部401aが実現される。 In step S604, the execution control unit 405 designates the CPU cores 111 other than the CPU core 111a (for example, the CPU cores 111b, 111c, . . . ) and executes a predetermined program (for example, the print application 311 in FIG. let it run. Thus, the processing execution unit 401a that executes predetermined processing is realized by the programs executed by the CPU cores 111b, 111c, . . .

ステップS605において、実行制御部405は、CPUコア111a以外のCPUコア111(例えば、CPUコア111b、111c、・・・)を指定して、所定のプログラム(例えば、コピーアプリ312等)を実行させる。これにより、CPUコア111b、111c、・・・で実行されるプログラムによって、所定の処理を実行する処理実行部401bが実現される。 In step S605, the execution control unit 405 designates the CPU cores 111 other than the CPU core 111a (eg, the CPU cores 111b, 111c, . . . ) to execute a predetermined program (eg, the copy application 312, etc.). . As a result, the processing execution unit 401b that executes predetermined processing is realized by the programs executed by the CPU cores 111b, 111c, . . .

上記の処理により、実行制御部405は、CPU201に含まれる複数のCPUコア111のうち、一のCPUコア111aにトレース処理を実行させるとともに、他のCPUコア111b、111c、・・・に、所定の処理を実行させることができる。 Through the above processing, the execution control unit 405 causes one CPU core 111a among the plurality of CPU cores 111 included in the CPU 201 to execute the trace processing, and causes the other CPU cores 111b, 111c, . process can be executed.

<履歴情報の書込処理>
図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 processing execution unit 401 according to the present embodiment executes history information writing processing as shown in FIG. 7 each time a function is called.

ステップS701において、画像形成装置200の処理実行部401は、関数の呼び出しが、初回の呼び出しであるか否かを判断する。例えば、処理実行部401は、グローバル変数を用いたフラグで、初回の呼び出しであるか否かを判断することができる。具体的には、C言語のグローバル変数は、初期値が「0」なので、値が「0」であれば、初回の呼び出しであると判断する。 In step S701, the process execution unit 401 of the image forming apparatus 200 determines whether the function call is the first call. For example, the processing execution unit 401 can determine whether or not the call is the first call by using a flag using a global variable. Specifically, since the initial value of a global variable in C language is "0", if the value is "0", it is determined to be the first call.

初回の呼び出しである場合、処理実行部401は、処理をステップS702に移行させる。一方、初回の呼び出しでない場合、処理実行部401は、処理をステップS705に移行させる。 If it is the first call, the processing execution unit 401 shifts the processing to step S702. On the other hand, if it is not the first call, the processing execution unit 401 shifts the processing to step S705.

ステップS702に移行すると、処理実行部401は、例えば、図5(A)に示すような共有メモリ122、及び共有メモリ122を識別する識別情報(以下、IDと呼ぶ)を取得する。例えば、OS341がLinuxである場合、shmget()という標準関数を用いることにより、共有メモリ122と、共有メモリ122のIDを取得することができる。なお、ここで取得した共有メモリ122は、例えば、図4の第1の記憶部(共有メモリ)402に含まれる。 After shifting to step S702, the processing execution unit 401 acquires the shared memory 122 and identification information (hereinafter referred to as ID) for identifying the shared memory 122 as shown in FIG. 5A, for example. For example, when the OS 341 is Linux, the shared memory 122 and the ID of the shared memory 122 can be obtained by using the standard function shmget(). Note that the shared memory 122 acquired here is included in, for example, the first storage unit (shared memory) 402 in FIG.

ステップS703において、処理実行部401は、取得した共有メモリ122のIDを、トレース実行部(関数トレーサ)403に通知する。 In step S<b>703 , the processing execution unit 401 notifies the trace execution unit (function tracer) 403 of the acquired ID of the shared memory 122 .

ステップS704において、処理実行部401は、初回の呼び出しを実行したことを記録する。例えば、処理実行部401は、前述したグローバル変数の値を「0」から「1」等に変更する。 In step S704, the process execution unit 401 records that the first call has been made. For example, the process execution unit 401 changes the value of the above-described global variable from "0" to "1" or the like.

ステップS705において、処理実行部401は、取得した共有メモリ122に、呼び出した関数の履歴である履歴情報を書き込む。 In step S<b>705 , the process execution unit 401 writes history information, which is the history of the called function, to the acquired shared memory 122 .

上記の処理により、処理実行部401が、関数を呼び出すと、呼び出した関数の履歴である履歴情報が、第1の記憶部(共有メモリ)402に書き込まれる。 Through the above process, when the process execution unit 401 calls a function, history information, which is the history of the called function, is written to the first storage unit (shared memory) 402 .

なお、本実施形態に係る処理実行部401は、2回目以降の関数の呼び出し時には、RAM領域の共有メモリ122に、履歴情報を書き込む処理を行う処理のみを行い、例えば、システムコールの呼び出しや、ストレージデバイスへの書き込みを行わない。したがって、処理実行部401が実行する所定の処理の処理性能への影響を抑制することができる。 It should be noted that the processing execution unit 401 according to the present embodiment only performs processing for writing history information to the shared memory 122 in the RAM area when calling the function for the second and subsequent times. Do not write to storage devices. Therefore, it is possible to suppress the influence of the predetermined process executed by the process execution unit 401 on the processing performance.

<関数呼び出し時の処理>
図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 image forming apparatus 200 when the process execution unit 401 calls the function.

ステップS801において、処理実行部401が関数を呼び出したとき、ステップS802において、処理実行部401は、図7に示すような履歴情報の書込処理を実行する。これにより、例えば、図5(A)に示すように、アクセス属性が、「読込/書込可能」であるメモリページに書き込みが行われた場合、共有メモリ122に履歴情報が記憶される。 In step S801, when the process execution unit 401 calls a function, in step S802, the process execution unit 401 executes history information writing processing as shown in FIG. As a result, for example, as shown in FIG. 5A, history information is stored in the shared memory 122 when writing is performed to a memory page whose access attribute is “readable/writable”.

一方、これにより、図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 exception handler 406 is activated in step S812.

ステップS813において、例外ハンドラ406は、共有メモリ122のアクセス属性を変更する。例えば、図5(B)に示すように、ページ2に書き込みが行われたときに例外が発生した場合、例外ハンドラ406は、図5(C)に示すように、ページ2のアクセス属性を「読込/書込可能」に変更し、ページ1のアクセス属性を「読込のみ可能」に変更する。これにより、処理実行部401は、ページ2に履歴情報を書き込みができるようになる。 At step S813, the exception handler 406 changes the access attribute of the shared memory 122. FIG. For example, as shown in FIG. 5B, if an exception occurs when page 2 is written, the exception handler 406 sets the access attribute of page 2 to " Read/Write" and change the access attribute of page 1 to "Read Only". As a result, the process execution unit 401 can write history information to page 2 .

ステップS814において、例外ハンドラ406は、トレース実行部(関数トレーサ)403に処理の実行を要求する。これにより、ステップS815において、トレース実行部403は、共有メモリ122に記憶されている履歴情報を読み込む。 In step S814, the exception handler 406 requests the trace execution unit (function tracer) 403 to execute processing. As a result, in step S815, the trace execution unit 403 reads the history information stored in the shared memory 122. FIG.

ステップS816において、トレース実行部403は、共有メモリ122から読み込んだ履歴情報を、第2の記憶部(ストレージ)404に記憶する。また、ステップS817において、トレース実行部403は、処理が完了したことを示す完了通知を、例外ハンドラ406に通知する。 In step S<b>816 , the trace execution unit 403 stores history information read from the shared memory 122 in the second storage unit (storage) 404 . Also, in step S817, the trace execution unit 403 notifies the exception handler 406 of a completion notification indicating that the processing has been completed.

ステップS818において、例外から復帰すると、ステップS819において、処理実行部401は、アクセス属性が「読込/書込可能」になった共有メモリ122に、履歴情報の書込処理を実行する。 In step S818, when returning from the exception, in step S819, the process execution unit 401 executes the process of writing history information to the shared memory 122 whose access attribute has become "readable/writable".

上記の処理により、トレース実行部(関数トレーサ)403は、共有メモリ122の1つのメモリページに空き容量がなくなると、当該メモリページに記憶された履歴情報を取得し、第2の記憶部(ストレージ)404に記憶することができる。 As a result of the above processing, when one memory page of the shared memory 122 runs out of free space, the trace execution unit (function tracer) 403 acquires the history information stored in the memory page and stores it in the second storage unit (storage ) 404 .

<処理実行部の処理>
図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 image forming apparatus 200 from when the processing execution unit 401 is activated by the execution control unit 405 until the processing ends.

ステップS901において、実行制御部405が処理実行部401を起動すると、ステップS902において、処理実行部401は、main()関数を実行する前に、プログラムを実行する環境を整えるための処理(環境セットアップ)を実行する。 In step S901, the execution control unit 405 activates the process execution unit 401. In step S902, the process execution unit 401 performs processing (environment setup) for preparing an environment for executing the program before executing the main( ) function. ).

ステップS903において、処理実行部401は、main()関数を呼び出し、所定の処理の実行を開始する。これにより、例えば、ステップS904~S910の処理が実行される。 In step S903, the processing execution unit 401 calls the main( ) function and starts executing predetermined processing. As a result, for example, the processes of steps S904 to S910 are executed.

ステップS904において、処理実行部401は、最初の関数(例えば、関数A)を呼び出し、実行する。これに応じて、処理実行部401は、図7で説明した履歴情報の書き込み処理を実行する。ここでは、関数Aは、初回の関数呼び出しに該当するので、図7のステップS702~S705の処理が実行される。 In step S904, the processing execution unit 401 calls and executes the first function (for example, function A). In response to this, the process execution unit 401 executes the history information writing process described with reference to FIG. Here, since the function A corresponds to the first function call, the processing of steps S702 to S705 in FIG. 7 is executed.

ステップS905において、処理実行部401は、第1の記憶部402から共有メモリ122、及び共有メモリ122のIDを取得する。この処理は、図7のステップS702の処理に対応している。 In step S<b>905 , the process execution unit 401 acquires the shared memory 122 and the ID of the shared memory 122 from the first storage unit 402 . This process corresponds to the process of step S702 in FIG.

ステップS906において、処理実行部401は、取得した共有メモリ122のIDをトレース実行部(関数トレーサ)403に通知する。この処理は、図7のステップS703の処理に対応している。 In step S<b>906 , the process execution unit 401 notifies the trace execution unit (function tracer) 403 of the acquired ID of the shared memory 122 . This process corresponds to the process of step S703 in FIG.

ステップS907において、処理実行部401は、関数Aを呼び出したことを示す履歴情報を第1の記憶部402に含まれる共有メモリ122に書き込む。これにより、例えば、図5(A)に示すような共有メモリ122に履歴情報が記憶される。なお、この処理は、図7のステップS705の処理に対応している。 In step S<b>907 , the process execution unit 401 writes history information indicating that the function A has been called into the shared memory 122 included in the first storage unit 402 . As a result, the history information is stored in the shared memory 122 as shown in FIG. 5A, for example. Note that this process corresponds to the process of step S705 in FIG.

ステップS908において、処理実行部401は、2回目以降の関数(例えば、関数B)を呼び出し、実行する。これに応じて、処理実行部401は、図7で説明した履歴情報の書き込み処理を実行する。ここでは、関数Bは、初回の関数呼び出しに該当しないので、図7のステップS705の処理が実行される。 In step S<b>908 , the process execution unit 401 calls and executes the second and subsequent functions (for example, function B). In response to this, the process execution unit 401 executes the history information writing process described with reference to FIG. Here, function B does not correspond to the first function call, so the process of step S705 in FIG. 7 is executed.

ステップS909において、処理実行部401は、関数Bを呼び出したことを示す履歴情報を第1の記憶部402に含まれる共有メモリ122に書き込む。これにより、例えば、図5(A)に示すような共有メモリ122に履歴情報が追記される。 In step S<b>909 , the process execution unit 401 writes history information indicating that the function B has been called into the shared memory 122 included in the first storage unit 402 . As a result, the history information is added to the shared memory 122 as shown in FIG. 5A, for example.

処理実行部401は、ステップS908、S909と同様にして、関数を呼び出すごとに、履歴情報を共有メモリ122に書き込み、ステップS910において、main()関数の実行を終了、又はexit()関数が実行すると、ステップS911以降の処理が実行される。 As in steps S908 and S909, the process execution unit 401 writes history information to the shared memory 122 each time a function is called, and in step S910, terminates execution of the main() function or terminates execution of the exit() function. Then, the processing after step S911 is executed.

ステップS911において、処理実行部401は、履歴情報の書き込みが終了したことを、トレース実行部403に通知する。この通知には、例えば、共有メモリ122のIDが含まれる。 In step S911, the processing execution unit 401 notifies the trace execution unit 403 that writing of the history information has ended. This notification includes, for example, the ID of the shared memory 122 .

ステップS912において、トレース実行部403は、書き込みが終了した共有メモリ122に記憶されている履歴情報を取得する。また、ステップS913において、トレース実行部403は、共有メモリ122に記憶されている履歴情報の取得を完了したことを示す完了通知を、処理実行部401に通知する。さらに、ステップS914において、トレース実行部(関数トレーサ)403は、取得した履歴情報を、第2の記憶部(ストレージ)404に記憶する。 In step S912, the trace execution unit 403 acquires the history information stored in the shared memory 122 for which writing has ended. In step S<b>913 , the trace execution unit 403 notifies the process execution unit 401 of completion notification indicating that acquisition of the history information stored in the shared memory 122 has been completed. Furthermore, in step S<b>914 , the trace execution unit (function tracer) 403 stores the acquired history information in the second storage unit (storage) 404 .

ステップS915において、処理実行部401は、完了通知を受け付けると、共有メモリ122を解放し、ステップS916において、処理が終了したことを示す終了通知を、実行制御部405に通知する。 In step S915, the process execution unit 401, upon receiving the completion notification, releases the shared memory 122, and in step S916, notifies the execution control unit 405 of an end notification indicating that the process has ended.

上記の処理により、処理実行部401は、処理の実行するときに、呼び出した関数の履歴である履歴情報を、第1の記憶部402に含まれる共有メモリ122に記憶することができる。 Through the above process, the process execution unit 401 can store the history information, which is the history of the function called, in the shared memory 122 included in the first storage unit 402 when executing the process.

また、トレース実行部403は、処理実行部401が所定の処理を終了するときに、共有メモリが解放される前に、共有メモリ122に記憶された履歴情報を取得し、第2の記憶部404に記憶することができる。 Further, when the processing execution unit 401 finishes predetermined processing, the trace execution unit 403 acquires the history information stored in the shared memory 122 before the shared memory is released, and stores the history information in the second storage unit 404 . can be stored in

<コンパイラによる処理の埋込>
前述したように、処理実行部401は、関数を呼び出すごとに、図7に示すような履歴情報の書き込み処理を実行する。一例として、処理実行部401は、関数を呼び出すごとに、履歴情報の書き込み処理を実行する関数を明示的に呼び出しても良い。
<Embedding processing by compiler>
As described above, the process execution unit 401 executes the history information write process as shown in FIG. 7 each time the function is called. As an example, the process execution unit 401 may explicitly call a function that executes the history information writing process each time the function is called.

また、好適な一例として、プログラムをコンパイルするときに、履歴情報の書き込み処理を実行する関数が自動的に呼び出されるように、プログラムに処理を埋め込んでも良い。 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 image forming apparatus 200 described with reference to FIG. 4 is an example. For example, in the example of FIG. 4, the image forming apparatus 200 includes the second storage unit 404. The second storage unit 404 is connected to the image forming apparatus via the communication network 1103 as shown in FIG. An external device 1102 or the like that can communicate with 200 may be used.

図11において、通信部1101は、例えば、図2のCPU201で実行されるプログラム、及びネットワークI/F250等によって実現され、画像形成装置200を通信ネットワーク1103に接続して、外部装置1102等と通信を行う。 In FIG. 11, a communication unit 1101 is implemented by, for example, a program executed by the CPU 201 in FIG. I do.

外部装置(第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 communication network 1103, and stores history information transmitted from the image forming apparatus 200. It functions as a second storage unit that stores data. The external device 1102 may be, for example, a general storage server or the like, or may be a management server or the like that manages history information of a plurality of image forming apparatuses 200 .

以上、本発明の各実施形態によれば、所定の処理を実行する画像形成装置200において、所定の処理の処理性能への影響を低減しつつ、所定の処理を実行するプログラムの履歴情報を取得できるようになる。 As described above, according to each embodiment of the present invention, in the image forming apparatus 200 that executes predetermined processing, the history information of the program that executes the predetermined processing is acquired while reducing the influence of the processing performance of the predetermined processing. become able to.

なお、前述したように、画像形成装置200は、複数のコアを有するCPUを備えた情報処理装置100の一例である。情報処理装置100は、複数のコアを有するCPUを備えた、他の電子機器、情報端末等であっても良い。 Note that, as described above, the image forming apparatus 200 is an example of the information processing apparatus 100 including a CPU having multiple cores. The information processing apparatus 100 may be another electronic device, an information terminal, or the like that includes a CPU having multiple cores.

<補足>
上記で説明した各実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計された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 information processing device 110 processor 111a, 111b, 111c CPU core 130 storage (storage device)
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 process execution unit 402 first storage unit 403 trace execution unit 404 second storage unit 405 execution control unit 500 shared memory 501 memory page (storage area)
1102 external device

特開2014-41419号公報JP 2014-41419 A

Claims (10)

複数のCPUコアを有するプロセッサを備えた情報処理装置であって、
所定の処理を実行し、前記処理の実行に伴う履歴情報を、前記履歴情報を一時的に記憶する第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.
前記第1の記憶部は、前記情報処理装置で実行される複数の処理で共有可能な共有メモリを含む、請求項1に記載の情報処理装置。 2. The information processing apparatus according to claim 1, wherein said first storage unit includes a shared memory that can be shared by a plurality of processes executed by said information processing apparatus. 前記処理実行部は、
前記所定の処理を開始するときに、前記共有メモリと前記共有メモリの識別情報とを取得し、
取得した前記共有メモリの識別情報を前記トレース実行部に通知し、
取得した前記共有メモリに前記履歴情報を記憶する、
請求項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乃至5のいずれか一項に記載の情報処理装置。 6. The information processing apparatus according to claim 1, wherein said history information includes a function call history by said process execution unit. 前記トレース実行部は、前記処理実行部の前記履歴情報を順次に前記第2の記憶部に記憶する、請求項1乃至6のいずれか一項に記載の情報処理装置。 7. The information processing apparatus according to claim 1, wherein said trace execution unit sequentially stores said history information of said process execution unit in said second storage unit. 前記第2の記憶部は、前記情報処理装置が備えるストレージデバイス、又は前記情報処理装置と通信可能な外部装置を含む、請求項1乃至7のいずれか一項に記載の情報処理装置。 The information processing apparatus according to any one of claims 1 to 7, wherein said second storage unit includes a storage device included in said information processing apparatus, or an external device capable of communicating with said information processing apparatus. 複数のCPUコアを有するプロセッサを備えた情報処理装置が、
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
複数のCPUコアを有するプロセッサを備えた情報処理装置を、
所定の処理を実行し、前記処理の実行に伴う履歴情報を、前記履歴情報を一時的に記憶する第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
JP2019190570A 2019-10-17 2019-10-17 Information processing device, information processing method, and program Active JP7327076B2 (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012070137A1 (en) 2010-11-25 2012-05-31 トヨタ自動車株式会社 Processor, electronic control device, creation program

Patent Citations (1)

* Cited by examiner, † Cited by third party
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