JP2006350892A - Multi-cpu device and inter-cpu communication method - Google Patents

Multi-cpu device and inter-cpu communication method Download PDF

Info

Publication number
JP2006350892A
JP2006350892A JP2005178976A JP2005178976A JP2006350892A JP 2006350892 A JP2006350892 A JP 2006350892A JP 2005178976 A JP2005178976 A JP 2005178976A JP 2005178976 A JP2005178976 A JP 2005178976A JP 2006350892 A JP2006350892 A JP 2006350892A
Authority
JP
Japan
Prior art keywords
task
data
central processing
unit
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2005178976A
Other languages
Japanese (ja)
Inventor
Makoto Koyanagi
誠 小柳
Kanako Ide
加奈子 井手
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2005178976A priority Critical patent/JP2006350892A/en
Publication of JP2006350892A publication Critical patent/JP2006350892A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To reduce communication volume among chips of a plurality of central processing units without depending on a shared RAM. <P>SOLUTION: A data storage means 23 stores data. A central processing unit 2 and another central processing unit 1 are connected to each other via a communication path 3. The central processing unit 2 transmits the data stored in the data storage means 23, via the communication path 3, to another central processing unit 1 based on data writing to the data storage means 23. When receiving notification requesting a callback from another central processing unit 1 connected via the communication path 3, the central processing unit 2 registers a task, which executes the notification, with a task storage means 23. When data is written to the data storage means 23, the central processing unit 2 transmits the written data to another central processing unit 1, and then executes the notification for the callback based on the registration in the task storage means 23. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、マルチCPU装置およびCPU間通信方法に関する。   The present invention relates to a multi-CPU device and an inter-CPU communication method.

特許文献1は、プリンタを開示する。このプリンタは、複数の「タスク」(「プロセス」と呼ばれることもある)のいずれかを排他的に実行するCPUを有する。具体的にはたとえば、CPUは、印刷処理言語解釈タスク、印刷処理タスク、遅延タスク、印刷制御タスク、印刷タスクなどのタスクを排他的に選択して実行する。   Patent Document 1 discloses a printer. This printer has a CPU that exclusively executes any of a plurality of “tasks” (sometimes referred to as “processes”). Specifically, for example, the CPU exclusively selects and executes tasks such as a print processing language interpretation task, a print processing task, a delay task, a print control task, and a print task.

特開2001−1598号公報(発明の詳細な説明、図面など)JP 2001-1598 A (Detailed description of the invention, drawings, etc.)

特許文献1にあるように、プリンタなどの各種のコンピュータ制御機器は、その中央処理装置が、各種のタスクを実行することで所望の機能を実現している。このようなコンピュータ制御機器においてその処理能力や処理速度を向上させる場合、1つの選択肢として、複数の中央処理装置を用い、その複数の中央処理装置に機能を分散させることが考えられる。   As disclosed in Patent Document 1, various computer control devices such as a printer realize a desired function by the central processing unit executing various tasks. When improving the processing capability and processing speed in such a computer control device, as one option, it is conceivable to use a plurality of central processing units and distribute the functions to the plurality of central processing units.

しかしながら、たとえば1つの装置の機能を複数の中央処理装置に分散させて実現しようとする場合、以下のような課題がある。   However, for example, when the function of one device is to be distributed to a plurality of central processing units, there are the following problems.

1つの装置の機能を複数の中央処理装置にて実現する場合、その複数の中央処理装置同士をたとえば通信路で接続する。そして、ある中央処理装置は、そのタスク実行に基づいて、他の中央処理装置が保持するデータへアクセスすることになる。この場合、各中央処理装置は、他の中央処理装置が保持するデータを利用する度に、通信路を用いて他の中央処理装置に頻繁にアクセスしなければならない。複数の中央処理装置を使用することによるパフォーマンスの向上効果を、期待通りに得ることは難しい。   When the function of one device is realized by a plurality of central processing units, the plurality of central processing units are connected to each other through a communication path, for example. A certain central processing unit accesses data held by other central processing units based on the execution of the task. In this case, each central processing unit must frequently access the other central processing unit using the communication path every time the data held by the other central processing unit is used. It is difficult to obtain the performance improvement effect by using a plurality of central processing units as expected.

このような問題を解決するための1つの手法として、複数の中央処理装置が共通してアクセス可能な共有RAM(Random Access Memory)を使用することが考えられる。しかしながら、共有RAMは一般的なRAMに比べて割高であり、また、共有RAMへのアクセスの排他制御などの処理が必要である。その結果、共有RAMを使用した場合、システムの高価格化や複雑化を避けることができない。また、共有RAMへのアクセスの排他制御により、メモリアクセスレイテンシによるパフォーマンス低下が発生し、複数の中央処理装置を使用したことによるメリットを得難くなってしまう。   As one method for solving such a problem, it is conceivable to use a shared RAM (Random Access Memory) that can be accessed in common by a plurality of central processing units. However, the shared RAM is more expensive than a general RAM, and processing such as exclusive control of access to the shared RAM is necessary. As a result, when a shared RAM is used, it is impossible to avoid an increase in system cost and complexity. Further, due to exclusive control of access to the shared RAM, performance degradation due to memory access latency occurs, and it becomes difficult to obtain the merit of using a plurality of central processing units.

本発明は、共有RAMに頼ることなく、複数の中央処理装置のチップ間通信を減らすことができるマルチCPU装置およびCPU間通信方法を得ることを目的とする。   An object of the present invention is to obtain a multi-CPU device and an inter-CPU communication method capable of reducing inter-chip communication of a plurality of central processing units without relying on a shared RAM.

本発明に係るマルチCPU装置は、データを記憶するデータ記憶手段と、通信路を介して他の中央処理装置が接続され、データ記憶手段へのデータ書込みに基づいて、データ記憶手段に記憶されているデータを、当該通信路を介して当該他の中央処理装置へ送信する中央処理装置と、を有するものである。   The multi-CPU device according to the present invention is connected to a data storage means for storing data and another central processing unit through a communication path, and is stored in the data storage means based on data writing to the data storage means. And a central processing unit that transmits data to the other central processing unit via the communication path.

この構成を採用すれば、中央処理装置は、データ記憶手段に記憶されるデータを他の中央処理装置へ送信することができる。他の中央処理装置は、その受信したデータを使用することができる。その結果、他の中央処理装置は、データ記憶手段に記憶されるデータを利用する度に、データ記憶手段にアクセスする必要がなくなる。共有RAMに頼ることなく、複数の中央処理装置によるチップ間通信の回数を減らすことができる。   If this structure is employ | adopted, the central processing unit can transmit the data memorize | stored in a data storage means to another central processing unit. Other central processing units can use the received data. As a result, the other central processing unit does not need to access the data storage unit every time the data stored in the data storage unit is used. The number of inter-chip communications by a plurality of central processing units can be reduced without relying on a shared RAM.

本発明に係るマルチCPU装置は、上述した発明の構成に加えて、中央処理装置に実行させるタスクを記憶するタスク記憶手段を有し、中央処理装置が、通信路により接続された他の中央処理装置からコールバックを要求する通知があると、その通知を実行するタスクをタスク記憶手段に登録し、データ記憶手段へのデータ書込みがあると、その書込み後のデータを他の中央処理装置へ送信した後に、タスク記憶手段の登録に基づいてコールバックのための通知を実行するものである。   In addition to the configuration of the invention described above, the multi-CPU device according to the present invention has task storage means for storing tasks to be executed by the central processing unit, and the central processing unit is connected to another central processing unit connected by a communication path. When there is a notification requesting a callback from the device, the task for executing the notification is registered in the task storage means, and when the data is written to the data storage means, the data after the writing is transmitted to another central processing unit. After that, a notification for callback is executed based on the registration of the task storage means.

この構成を採用すれば、中央処理装置は、データ記憶手段へのデータ書込みに基づいて、他の中央処理装置へコールバックのための通知を実行することができる。これにより、他の中央処理装置は、コールバック通知に基づいて、更新されたデータを用いて、タスクを実行することができる。   By adopting this configuration, the central processing unit can execute notification for callback to another central processing unit based on the data writing to the data storage means. Thus, the other central processing unit can execute the task using the updated data based on the callback notification.

本発明に係るマルチCPU装置は、上述した発明の各構成に加えて、中央処理装置が、他の中央処理装置からのコールバックの通知に基づく処理の完了が通知された後に、コールバックの通知を実行するタスクの実行の後に実行するタスクを実行するものである。
この構成を採用すれば、中央処理装置で実行されるタスクおよび他の中央処理装置で実行されるタスクを、それらのタスクを1つの中央処理装置で実行した場合と同様の順番で実行することができる。
In the multi-CPU device according to the present invention, in addition to each configuration of the above-described invention, the central processing unit notifies the callback after the completion of the processing based on the notification of the callback from another central processing unit is notified. The task to be executed is executed after the execution of the task for executing.
If this configuration is adopted, tasks executed by the central processing unit and tasks executed by other central processing units can be executed in the same order as when those tasks are executed by one central processing unit. it can.

本発明に係るCPU間通信方法は、通信路を介して他の中央処理装置が接続される中央処理装置により、データ記憶手段にデータを書き込むステップと、データの書込みに基づいて、データ記憶手段に記憶されているデータを他の中央処理装置へ送信するステップと、を有するものである。   The inter-CPU communication method according to the present invention includes a step of writing data in the data storage means by a central processing unit connected to another central processing unit via a communication path, and a data storage means based on the data writing. Transmitting the stored data to another central processing unit.

この方法を採用すれば、データ記憶手段が記憶するデータが書込みにより更新されると、他の中央処理装置へ送信される。他の中央処理装置は、その受信したデータを使用することができる。その結果、他の中央処理装置は、データ記憶手段に記憶されるデータを利用する度に、データ記憶手段にアクセスする必要がなくなる。共有RAMに頼ることなく、複数の中央処理装置によるチップ間通信の回数を減らすことができる。   If this method is employed, when the data stored in the data storage means is updated by writing, it is transmitted to another central processing unit. Other central processing units can use the received data. As a result, the other central processing unit does not need to access the data storage unit every time the data stored in the data storage unit is used. The number of inter-chip communications by a plurality of central processing units can be reduced without relying on a shared RAM.

以下、本発明の実施の形態に係るマルチCPU装置およびCPU間通信方法を、図面に基づいて説明する。CPU間通信方法は、マルチCPU装置の動作の一部として説明する。   Hereinafter, a multi-CPU device and an inter-CPU communication method according to embodiments of the present invention will be described with reference to the drawings. The inter-CPU communication method will be described as a part of the operation of the multi-CPU device.

図1は、本発明の実施の形態に係るマルチCPU装置を示す装置構成図である。マルチCPU装置は、フロントエンドチップ1と、バックエンドチップ2との2つのICチップを有する。   FIG. 1 is an apparatus configuration diagram showing a multi-CPU apparatus according to an embodiment of the present invention. The multi-CPU device has two IC chips, a front-end chip 1 and a back-end chip 2.

フロントエンドチップ1は、中央処理装置11と、RAM12と、データ記憶手段およびタスク記憶手段としての記憶デバイス13と、LVDS(Low Voltage Differential Signaling)I/F14と、これらを接続するシステムバス15と、を有する。また、バックエンドチップ2は、中央処理装置21と、RAM22と、データ記憶手段およびタスク記憶手段としての記憶デバイス23と、LVDSI/F24と、これらを接続するシステムバス25と、を有する。   The front-end chip 1 includes a central processing unit 11, a RAM 12, a storage device 13 as a data storage unit and a task storage unit, an LVDS (Low Voltage Differential Signaling) I / F 14, and a system bus 15 for connecting them, Have The back-end chip 2 includes a central processing unit 21, a RAM 22, a storage device 23 as a data storage unit and a task storage unit, an LVDSI / F 24, and a system bus 25 for connecting them.

フロントエンドチップ1のLVDSI/F14は、バックエンドチップ2のLVDSI/F24と、通信路としての信号線3により接続される。LVDSI/F14,24は、送信するデータが供給されると、差動電圧信号を信号線3へ出力する。差動電圧信号は、たとえば約0.9V程度の振幅を有する正弦波が、送信データに応じて変調された信号であればよい。LVDSI/F14,24は、信号線3から差動電圧信号を受信する。LVDSI/F14,24は、受信した差動電圧信号から、受信データを生成する。   The LVDSSI / F 14 of the front end chip 1 is connected to the LVDSI / F 24 of the back end chip 2 by a signal line 3 as a communication path. The LVDSI / F 14, 24 outputs a differential voltage signal to the signal line 3 when data to be transmitted is supplied. The differential voltage signal may be a signal obtained by modulating a sine wave having an amplitude of about 0.9 V in accordance with transmission data, for example. The LVDSI / F 14 and 24 receive the differential voltage signal from the signal line 3. The LVDSI / F 14, 24 generates reception data from the received differential voltage signal.

フロントエンドチップ1の記憶デバイス13は、フロントエンドAP(アプリケーション)プログラム31と、RTOS(リアルタイムオペレーティングシステム)ブリッジプログラム32と、RTOSプログラム33と、通信プロトコルハンドラプログラム34と、I/O(Input/Output)ドライバプログラム35と、を記憶する。   The storage device 13 of the front-end chip 1 includes a front-end AP (application) program 31, an RTOS (real-time operating system) bridge program 32, an RTOS program 33, a communication protocol handler program 34, and an I / O (Input / Output). ) The driver program 35 is stored.

バックエンドチップ2の記憶デバイス23は、バックエンドAPプログラム41と、RTOSブリッジプログラム42と、RTOSプログラム43と、通信プロトコルハンドラプログラム44と、I/Oドライバプログラム45と、を記憶する。   The storage device 23 of the back-end chip 2 stores a back-end AP program 41, an RTOS bridge program 42, an RTOS program 43, a communication protocol handler program 44, and an I / O driver program 45.

フロントエンドチップ1の中央処理装置11は、記憶デバイス13に記憶されるこれらのプログラムをRAM12に読み込んで実行することで、各種の機能を実現する。バックエンドチップ2の中央処理装置21は、記憶デバイス23に記憶されるこれらのプログラムをRAM22に読み込んで実行することで、各種の機能を実現する。   The central processing unit 11 of the front end chip 1 implements various functions by reading these programs stored in the storage device 13 into the RAM 12 and executing them. The central processing unit 21 of the back-end chip 2 implements various functions by reading these programs stored in the storage device 23 into the RAM 22 and executing them.

図2は、図1のマルチCPU装置に実現される機能のスタック構造を示す図である。   FIG. 2 is a diagram showing a stack structure of functions realized in the multi-CPU device of FIG.

フロントエンドチップ1の中央処理装置11は、具体的には、フロントエンドAPプログラム31をRAM12に読み込んで実行することで、フロントエンドAP部51を実現する。中央処理装置11は、RTOSブリッジプログラム32をRAM12に読み込んで実行することで、RTOSブリッジ部52を実現する。中央処理装置11は、RTOSプログラム33をRAM12に読み込んで実行することで、RTOS部53を実現する。中央処理装置11は、通信プロトコルハンドラプログラム34をRAM12に読み込んで実行することで、通信プロトコルハンドラ部54を実現する。中央処理装置11は、I/Oドライバプログラム35をRAM12に読み込んで実行することで、I/Oドライバ部55を実現する。   Specifically, the central processing unit 11 of the front-end chip 1 implements the front-end AP unit 51 by reading the front-end AP program 31 into the RAM 12 and executing it. The central processing unit 11 implements the RTOS bridge unit 52 by reading the RTOS bridge program 32 into the RAM 12 and executing it. The central processing unit 11 implements the RTOS unit 53 by reading the RTOS program 33 into the RAM 12 and executing it. The central processing unit 11 implements the communication protocol handler unit 54 by reading the communication protocol handler program 34 into the RAM 12 and executing it. The central processing unit 11 implements the I / O driver unit 55 by reading the I / O driver program 35 into the RAM 12 and executing it.

バックエンドチップ2の中央処理装置21は、具体的には、バックエンドAPプログラム41をRAM22に読み込んで実行することで、バックエンドAP部61を実現する。中央処理装置21は、RTOSブリッジプログラム42をRAM22に読み込んで実行することで、RTOSブリッジ部62を実現する。中央処理装置21は、RTOSプログラム43をRAM22に読み込んで実行することで、RTOS部63を実現する。中央処理装置21は、通信プロトコルハンドラプログラム44をRAM22に読み込んで実行することで、通信プロトコルハンドラ部64を実現する。中央処理装置21は、I/Oドライバプログラム45をRAM22に読み込んで実行することで、I/Oドライバ部65を実現する。   Specifically, the central processing unit 21 of the back-end chip 2 implements the back-end AP unit 61 by reading the back-end AP program 41 into the RAM 22 and executing it. The central processing unit 21 implements the RTOS bridge unit 62 by reading the RTOS bridge program 42 into the RAM 22 and executing it. The central processing unit 21 implements the RTOS unit 63 by reading the RTOS program 43 into the RAM 22 and executing it. The central processing unit 21 implements the communication protocol handler unit 64 by reading the communication protocol handler program 44 into the RAM 22 and executing it. The central processing unit 21 implements the I / O driver unit 65 by reading the I / O driver program 45 into the RAM 22 and executing it.

I/Oドライバ部55,65は、送信データをLVDSI/F14,24へ供給する。I/Oドライバ部55,65は、LVDSI/F14,24から受信データを供給される。   The I / O driver units 55 and 65 supply transmission data to the LVDSI / F 14 and 24. The I / O driver units 55 and 65 are supplied with received data from the LVDSI / F 14 and 24.

通信プロトコルハンドラ部54,64は、送信するデータが供給されると、そのデータを元データとして、所定の通信プロトコルにより送信するための送信データを生成する。通信プロトコルハンドラ部54,64は、生成した送信データを、I/Oドライバ部55,65へ供給する。通信プロトコルハンドラ部54,64は、I/Oドライバ部55,65から受信データが供給されると、そのデータを所定の通信プロトコルにより処理し、元データを生成する。   When the data to be transmitted is supplied, the communication protocol handlers 54 and 64 generate transmission data for transmission according to a predetermined communication protocol using the data as original data. The communication protocol handler units 54 and 64 supply the generated transmission data to the I / O driver units 55 and 65. When the received data is supplied from the I / O driver units 55 and 65, the communication protocol handler units 54 and 64 process the data according to a predetermined communication protocol to generate original data.

RTOS部53,63は、中央処理装置11,21によるプログラムの実行を管理する。中央処理装置11,21は、上述した各種のプログラムを実行することで、タスクを生成する。RTOSを使用する場合、上述した各種のプログラムは、一般的に複数の関数の集合体として記述される。関数は、たとえば機能に対応する。中央処理装置11,21は、たとえばこの関数毎にタスクを生成する。   The RTOS units 53 and 63 manage the execution of programs by the central processing units 11 and 21. The central processing units 11 and 21 generate tasks by executing the various programs described above. When the RTOS is used, the various programs described above are generally described as a collection of a plurality of functions. A function corresponds to a function, for example. The central processing units 11 and 21 generate a task for each function, for example.

タスクの管理状態としては、実行状態、実行可能状態、待ち状態、休止状態などがある。タスクの実行状態とは、現在、そのタスクが中央処理装置11,21により実行されている状態である。タスクの実行可能状態とは、タスク側の実行準備が整っているが、中央処理装置11,21により実行されていない状態である。実行可能状態にあるタスクが複数ある場合において、実行状態のタスクの実行が終了すると、中央処理装置11,21は、その実行可能状態にあるタスクの中の最も優先度が高いタスクを実行する。タスクの待ち状態とは、タスク側の実行準備が整っていない状態である。たとえば、タスクが、イベントフラグのクリアを待っている状態である。タスクの休止状態とは、タスクが起動されていない状態である。一般的なタスクは、新しく生成されると、まずこの状態になる。   The task management state includes an execution state, an executable state, a waiting state, and a hibernation state. The task execution state is a state in which the task is currently being executed by the central processing units 11 and 21. The task executable state is a state where the task side is ready for execution but is not being executed by the central processing units 11 and 21. When there are a plurality of tasks in the executable state, when the execution of the tasks in the execution state ends, the central processing units 11 and 21 execute the task having the highest priority among the tasks in the executable state. The task wait state is a state where the task side is not ready for execution. For example, the task is waiting for the event flag to be cleared. The task dormant state is a state in which the task is not activated. When a general task is newly created, it first enters this state.

RTOS部53,63は、プログラムに基づいて中央処理装置11,21により生成されるタスクの状態を管理する。RTOS部53,63は、たとえば、待ち状態にあるタスクや休止状態にあるタスクを、実行可能状態にする。RTOS部53,63は、実行状態のタスクの実行が完了すると、実行可能状態にあるタスクの中から優先度が高いものを、次に実行するタスクとして選択する。中央処理装置11,21は、RTOS部53,63により選択されたタスクを実行する。RTOS部53,63は、実行が完了した不要なタスクを、休止状態にする。   The RTOS units 53 and 63 manage the state of tasks generated by the central processing units 11 and 21 based on programs. For example, the RTOS units 53 and 63 make a task in a waiting state or a task in a dormant state executable. When the execution of the task in the execution state is completed, the RTOS units 53 and 63 select a task having a higher priority from the tasks in the executable state as a task to be executed next. The central processing units 11 and 21 execute the task selected by the RTOS units 53 and 63. The RTOS units 53 and 63 put unnecessary tasks that have been executed into a dormant state.

また、RTOS部53,63は、タスク間通信機能を有する。タスク間通信機能には、たとえばタスク間メッセージや、イベントフラグなどがある。タスク間通信機能を用いることで、あるタスク(以下、タスクAとよぶ)は、他のタスク(以下、タスクBとよぶ)へデータを供給したり、そのタスクの状態を通知したりすることができる。   The RTOS units 53 and 63 have an inter-task communication function. Examples of the inter-task communication function include an inter-task message and an event flag. By using the inter-task communication function, a certain task (hereinafter referred to as “task A”) may supply data to another task (hereinafter referred to as “task B”) or notify the status of the task. it can.

タスク間メッセージを使用する場合、たとえばRTOS部53は、タスクBへ引き渡すパラメータデータを、パラメータブロックとして、RAM12のメモリ空間に書き込む。RTOS部53は、そのパラメータブロックの先頭アドレスの情報などをパラメータとする、タスク間メッセージを生成する。RTOS部53は、生成したタスク間メッセージをタスクBへ供給する。タスクBを実行するとき、中央処理装置11は、タスク間メッセージにて指定される先頭アドレスから、パラメータデータを読み込む。中央処理装置11は、読み込んだパラメータデータを使用して、タスクBを実行する。   When the inter-task message is used, for example, the RTOS unit 53 writes the parameter data delivered to the task B as a parameter block in the memory space of the RAM 12. The RTOS unit 53 generates an inter-task message using information such as the top address information of the parameter block as a parameter. The RTOS unit 53 supplies the generated inter-task message to the task B. When executing the task B, the central processing unit 11 reads the parameter data from the head address specified by the inter-task message. The central processing unit 11 executes the task B using the read parameter data.

なお、供給元のタスクは、供給先のタスクへのタスク間メッセージの内容として、パラメータブロックの先頭アドレスの情報を通知する。タスク間メッセージにより、パラメータブロックのデータそのものは供給されない。そのため、供給元のタスクは、タスク間メッセージを使用することで、任意のデータ量のデータを供給先のタスクへ供給することができる。   Note that the supply source task notifies the information of the head address of the parameter block as the content of the inter-task message to the supply destination task. The parameter block data itself is not supplied by the inter-task message. For this reason, the supply source task can supply an arbitrary amount of data to the supply destination task by using the inter-task message.

以上のように、RTOSを実行する中央処理装置11,21は、プログラムを実行すると、そのプログラムに基づいてタスクを生成し、生成したタスクを所定の順番で実行する。また、RTOSを実行する中央処理装置11,21は、タスク間メッセージなどを使用して、タスク間で必要なデータを供給する。その結果、中央処理装置11,21は、プログラムを実行することで、そのプログラムにコード化されている機能を実現する。   As described above, when the central processing units 11 and 21 executing RTOS execute a program, they generate a task based on the program, and execute the generated task in a predetermined order. Further, the central processing units 11 and 21 that execute RTOS supply necessary data between tasks by using an inter-task message or the like. As a result, the central processing units 11 and 21 execute the program, thereby realizing the functions encoded in the program.

また、RTOS部53,63は、割込ハンドラ部57,67を有する。   The RTOS units 53 and 63 have interrupt handler units 57 and 67, respectively.

割込ハンドラ部57,67は、中央処理装置11,21に割込要求があるとき、割込処理を実行する。中央処理装置11,21に割込要求をするものとしては、たとえばLVDSI/F14,24がある。LVDSI/F14,24から割込要求があると、割込ハンドラ部57,67は、通信プロトコルハンドラ部54,64およびI/Oドライバ部55,65を用いて、LVDSI/F14,24からデータを取得する。   The interrupt handler units 57 and 67 execute an interrupt process when the central processing unit 11 or 21 has an interrupt request. For example, there is an LVDSI / F14, 24 as an interrupt request to the central processing unit 11, 21. When there is an interrupt request from the LVDS / F 14, 24, the interrupt handler units 57, 67 use the communication protocol handler units 54, 64 and the I / O driver units 55, 65 to transfer data from the LVDS / F 14, 24. get.

なお、これらRTOS部53,63、割込ハンドラ部57,67なども、中央処理装置11,21がRTOSプログラム33,43を実行することで実現される。そのため、中央処理装置11,21によりタスクとして実行される。ただし、RTOS部53,63のタスクは、一般的に、他のプログラムに基づく他のタスクより優先度が高いタスクとして、中央処理装置11,21により実行される。   The RTOS units 53 and 63 and the interrupt handler units 57 and 67 are also realized by the central processing units 11 and 21 executing the RTOS programs 33 and 43. Therefore, it is executed as a task by the central processing units 11 and 21. However, the tasks of the RTOS units 53 and 63 are generally executed by the central processing units 11 and 21 as tasks having higher priority than other tasks based on other programs.

また、割込ハンドラ部57,67などは、RTOSプログラム33,43による他の機能と同様に、RTOSプログラム33,43において複数の関数の集合体として記述される。RTOS部53,63は、割込ハンドラ部57,67などをRTOS部53,63の外部のプログラムから直接的あるいは間接的に呼び出すための、システムコールと呼ばれる関数を有する。   Further, the interrupt handler units 57 and 67 are described as a set of functions in the RTOS programs 33 and 43 in the same manner as other functions by the RTOS programs 33 and 43. The RTOS units 53 and 63 have a function called a system call for directly or indirectly calling the interrupt handler units 57 and 67 from a program outside the RTOS units 53 and 63.

RTOSブリッジ部52,62は、システムコールで不足するAPI(アプリケーションプログラムインターフェイス)を、フロンドエンドAP部51あるいはバックエンドAP部61に提供する。RTOSブリッジ部52,62は、たとえば、RTOS部53,63により定義されていない、マルチCPU装置が組み込まれる機器で特有に使用する、新たな関数を提供する。この関数は、RTOSブリッジ部52,62の外部のプログラム、たとえばフロントエンドAPプログラム31などから呼び出し可能な関数である。   The RTOS bridge units 52 and 62 provide an API (application program interface) that is insufficient for system calls to the front-end AP unit 51 or the back-end AP unit 61. The RTOS bridge units 52 and 62 provide a new function that is not defined by the RTOS units 53 and 63, and is used specifically in a device in which a multi-CPU device is incorporated. This function is a function that can be called from a program external to the RTOS bridge units 52 and 62, such as the front-end AP program 31.

RTOSブリッジ部52,62は、DSM(Default Setting status Manager)部58,68を有する。DSM部58,68は、タスクの実行を管理する。DSM部58,68は、タスク登録データ60,70と、ステータス設定データ59,69と、を有する。タスク登録データ60,70およびステータス設定データ59,69は、データ記憶手段およびタスク記憶手段としての記憶デバイス13,23に記憶される。なお、タスク登録データ60,70およびステータス設定データ59,69は、RAM12,22に記憶されてもよい。   The RTOS bridge units 52 and 62 include DSM (Default Setting status Manager) units 58 and 68. The DSM units 58 and 68 manage task execution. The DSM units 58 and 68 have task registration data 60 and 70 and status setting data 59 and 69. The task registration data 60 and 70 and the status setting data 59 and 69 are stored in the storage devices 13 and 23 as data storage means and task storage means. The task registration data 60 and 70 and the status setting data 59 and 69 may be stored in the RAMs 12 and 22.

後述する図5などに示すように、タスク登録データ60,70は、複数のタスク管理番号を有する。タスク登録データ60,70には、タスク管理番号毎に、中央処理装置11,21が実行するタスク管理ブロック71が登録される。タスク管理ブロック71は、たとえば、そのタスクに対応する実行プログラムが記憶されている記憶デバイス13,23の先頭アドレス、そのタスクの実行ステータス設定データなどが含まれる。各タスク管理番号には、複数のタスク管理ブロック71が登録可能である。1つのタスク管理番号に複数のタスク管理ブロック71が登録されている場合、たとえばその登録順番にてタスクは実行される。   As shown in FIG. 5, which will be described later, the task registration data 60, 70 has a plurality of task management numbers. In the task registration data 60 and 70, a task management block 71 executed by the central processing units 11 and 21 is registered for each task management number. The task management block 71 includes, for example, the top addresses of the storage devices 13 and 23 in which the execution program corresponding to the task is stored, the execution status setting data of the task, and the like. A plurality of task management blocks 71 can be registered in each task management number. When a plurality of task management blocks 71 are registered in one task management number, for example, tasks are executed in the registration order.

ステータス設定データ59,69は、たとえばタスク登録データ60,70に登録されるタスクのステータスデータ、設定データなどを有する。   The status setting data 59 and 69 include, for example, task status data and setting data registered in the task registration data 60 and 70.

DSM部58,68は、たとえばコールバック関数登録メッセージなどによるタスクの登録依頼があると、その依頼されたタスクのタスク管理ブロック71をタスク登録データ60,70に登録し、その依頼されたタスクに関するステータスデータ、設定データなどを初期値とともにステータス設定データ59,69に登録する。その後、DSM部58,68は、コールバック関数登録メッセージなどに基づいて、必要なメッセージ構造体を生成する。   For example, when a task registration request is issued by a callback function registration message or the like, the DSM units 58 and 68 register the task management block 71 of the requested task in the task registration data 60 and 70, and relate to the requested task. Status data, setting data, and the like are registered in the status setting data 59 and 69 together with initial values. Thereafter, the DSM units 58 and 68 generate a necessary message structure based on the callback function registration message or the like.

図3は、DSM部58,68が生成するメッセージ構造体のデータ構造を示す説明図である。図3のメッセージ構造体は、新たなコールバック関数を登録したときにDSM部58,68が生成するものであり、コールバック通知を要求するものである。メッセージ構造体は、複数のパラメータを有する。図3のメッセージ構造体では、パラメータのデータとして、コールバック関数を新たに登録したことを通知するデータ、そのコールバック関数を登録したタスク管理番号(図3では「1」)のデータと、CPU番号(図3では「1」)のデータなどを有する。なお、CPU番号とは、マルチCPU装置において、中央処理装置毎に割り当てられる識別番号である。この実施の形態において以下の説明では、フロントエンドチップ1にCPU番号「1」が割り当てられ、バックエンドチップ2にCPU番号「2」が割り当てられているものとして説明する。   FIG. 3 is an explanatory diagram showing the data structure of the message structure generated by the DSM units 58 and 68. The message structure shown in FIG. 3 is generated by the DSM units 58 and 68 when a new callback function is registered, and requests a callback notification. The message structure has a plurality of parameters. In the message structure of FIG. 3, as parameter data, data notifying that a callback function is newly registered, data of a task management number (“1” in FIG. 3) in which the callback function is registered, and CPU The data of the number (“1” in FIG. 3) is included. The CPU number is an identification number assigned to each central processing unit in the multi-CPU device. In this embodiment, the following description will be made assuming that the CPU number “1” is assigned to the front end chip 1 and the CPU number “2” is assigned to the back end chip 2.

フロントエンドAP部51およびバックエンドAP部61は、マルチCPU装置が組み込まれる機器で必要とする機能を実現する。たとえば、マルチCPU装置が組み込まれる機器において機能Aおよび機能Bの2つの機能が必要である場合、フロントエンドAP部51のタスクとして機能Aが実現され、バックエンドAP部61のタスクとして機能Bが実現される。   The front-end AP unit 51 and the back-end AP unit 61 realize functions required for a device in which a multi-CPU device is incorporated. For example, when two functions of function A and function B are required in a device in which a multi-CPU device is incorporated, function A is realized as a task of the front-end AP unit 51, and function B is performed as a task of the back-end AP unit 61. Realized.

フロントエンドAP部51およびバックエンドAP部61は、RTOS部53,63により、機能毎にあるいは機能を更に細分化した関数毎に機能タスクが生成される。この機能タスクの実行は、RTOS部53,63により管理される。また、機能タスクは、RTOS部53,63およびRTOSブリッジ部52,62が提供するAPIとしての関数を使用し、タスク間メッセージなどを使用してタスク間通信を行う。   In the front-end AP unit 51 and the back-end AP unit 61, functional tasks are generated by the RTOS units 53 and 63 for each function or for each function obtained by further subdividing the function. The execution of this functional task is managed by the RTOS units 53 and 63. The function task uses functions as an API provided by the RTOS units 53 and 63 and the RTOS bridge units 52 and 62, and performs inter-task communication using inter-task messages.

次に、以上の構成を有する、実施の形態に係るマルチCPU装置の動作を説明する。   Next, the operation of the multi-CPU device according to the embodiment having the above configuration will be described.

図4は、フロントエンドチップ1で実行されるフロントエンドAP部51のタスクAが所謂コールバック関数のタスクである場合のシーケンスを示す図である。すなわち、タスクAは、バックエンドチップ2で実行されるバックエンドAP部61のタスクBによるステータス設定データ69への書込み処理に基づいて処理を実行する。   FIG. 4 is a diagram showing a sequence when the task A of the front-end AP unit 51 executed by the front-end chip 1 is a so-called callback function task. That is, the task A executes processing based on the write processing to the status setting data 69 by the task B of the back-end AP unit 61 executed by the back-end chip 2.

この場合、バックエンドチップ2の中央処理装置21が、中央処理装置に相当し、フロントエンドチップ1の中央処理装置11が、他の中央処理装置に相当する。   In this case, the central processing unit 21 of the back end chip 2 corresponds to a central processing unit, and the central processing unit 11 of the front end chip 1 corresponds to another central processing unit.

フロントエンドチップ1で実行されるタスクAについてのコールバック関数登録メッセージが供給される(ステップST1)と、フロントエンドチップ1のDSM部58は、タスクAの情報を、フロントエンドチップ1のタスク登録データ60およびステータス設定データ59に登録する(ステップST2)。なお、図4では、タスクAについてのコールバック関数登録メッセージは、タスクA自身により生成されているが、この他にもたとえば、コールバック関数登録メッセージは、フロントエンドチップ1で実行されるタスクA以外のタスクにより生成されてもよい。   When the callback function registration message for the task A executed by the front end chip 1 is supplied (step ST1), the DSM unit 58 of the front end chip 1 uses the task A information as the task registration of the front end chip 1. Data 60 and status setting data 59 are registered (step ST2). In FIG. 4, the callback function registration message for the task A is generated by the task A itself. However, for example, the callback function registration message is a task A executed by the front end chip 1. It may be generated by a task other than

図5は、フロントエンドチップ1のタスク登録データ60に、タスクAのタスク管理ブロック71が登録される直前における、フロントエンドチップ1のタスク登録データ60およびバックエンドチップ2のタスク登録データ70を示す図である。それぞれのタスク登録データ60,70は、0〜nまでの(n+1)個のタスク管理番号を有する。バックエンドチップ2のタスク登録データ70のタスク管理番号「1」には、タスクBのタスク管理ブロック71が登録されている。   FIG. 5 shows the task registration data 60 of the front end chip 1 and the task registration data 70 of the back end chip 2 immediately before the task management block 71 of task A is registered in the task registration data 60 of the front end chip 1. FIG. Each of the task registration data 60 and 70 has (n + 1) task management numbers from 0 to n. The task management block 71 of task B is registered in the task management number “1” of the task registration data 70 of the back-end chip 2.

図6は、フロントエンドチップ1のタスク登録データ60に、タスクAのタスク管理ブロック71が登録された直後における、フロントエンドチップ1のタスク登録データ60およびバックエンドチップ2のタスク登録データ70を示す図である。図6において、フロントエンドチップ1のタスク登録データ60には、タスク管理番号「1」に、タスクAのタスク管理ブロック71が登録される。   FIG. 6 shows the task registration data 60 of the front end chip 1 and the task registration data 70 of the back end chip 2 immediately after the task management block 71 of task A is registered in the task registration data 60 of the front end chip 1. FIG. In FIG. 6, the task management block 71 of task A is registered in the task registration data 60 of the front-end chip 1 with the task management number “1”.

コールバック関数であるタスクAのタスク管理ブロック71をタスク登録データ60に登録した後、DSM部58は、そのコールバック通知待ちのタスクAが、フロントエンドチップ1で実行されるタスクからのコールバック通知待ちであるか、あるいは、バックエンドチップ2で実行されるタスクからのコールバック通知待ちであるか、を判断する(ステップST3)。なお、DSM部58は、たとえばフロントエンドチップ1で実行されるタスクのリストなどを有し、そのリスト中にコールバック通知元のタスクが含まれていないことを確認することで、コールバック通知元のタスクがフロントエンドチップ1で実行されるタスクでないと判断すればよい。   After registering the task management block 71 of the task A, which is a callback function, in the task registration data 60, the DSM unit 58 calls back the task A waiting for the callback notification from the task executed in the front end chip 1. It is determined whether it is waiting for notification or waiting for callback notification from a task executed by the back-end chip 2 (step ST3). Note that the DSM unit 58 has, for example, a list of tasks to be executed by the front-end chip 1, and by confirming that the task of the callback notification source is not included in the list, the callback notification source It may be determined that these tasks are not tasks executed by the front-end chip 1.

コールバック通知元のタスクBがフロントエンドチップ1で実行されるタスクでない場合、DSM部58は、コールバック通知を要求するメッセージ構造体を生成する。コールバック通知を要求するメッセージ構造体は、図3に示すように、そのパラメータとして、コールバック関数のタスクAを登録したことを通知するデータと、コールバック関数のタスクAを登録したタスク管理番号「1」と、CPU番号「1」などを有する。   When the callback notification source task B is not a task executed by the front end chip 1, the DSM unit 58 generates a message structure for requesting the callback notification. As shown in FIG. 3, the message structure for requesting the callback notification includes, as its parameters, data for notifying that the callback function task A is registered, and the task management number for which the callback function task A is registered. “1”, CPU number “1”, and the like are included.

DSM部58は、生成したメッセージ構造体を、図2に示すように、通信プロトコルハンドラ部54へ供給する。フロントエンドチップ1の通信プロトコルハンドラ部54は、供給されたメッセージ構造体を所定の通信プロトコルにより送信するための送信データを生成し、I/Oドライバ部55へ供給する。フロントエンドチップ1のI/Oドライバ部55は、送信データをLVDSI/F14へ供給する。フロントエンドチップ1のLVDSI/F14は、送信するデータに応じた差動電圧信号を、信号線3へ出力する。   The DSM unit 58 supplies the generated message structure to the communication protocol handler unit 54 as shown in FIG. The communication protocol handler unit 54 of the front end chip 1 generates transmission data for transmitting the supplied message structure by a predetermined communication protocol, and supplies it to the I / O driver unit 55. The I / O driver unit 55 of the front end chip 1 supplies transmission data to the LVDSI / F 14. The LVDSI / F 14 of the front end chip 1 outputs a differential voltage signal corresponding to the data to be transmitted to the signal line 3.

フロントエンドチップ1のLVDSI/F14が出力した差動電圧信号は、バックエンドチップ2のLVDSI/F24により受信される。バックエンドチップ2のLVDSI/F24は、バックエンドチップ2の中央処理装置21に割込み要求を出力する。   The differential voltage signal output from the LVDSSI / F 14 of the front end chip 1 is received by the LVDSI / F 24 of the back end chip 2. The LVDSSI / F 24 of the back end chip 2 outputs an interrupt request to the central processing unit 21 of the back end chip 2.

バックエンドチップ2の中央処理装置21に割込要求があると、バックエンドチップ2の割込ハンドラ部67は、割込処理を実行する。割込ハンドラ部67は、通信プロトコルハンドラ部64およびI/Oドライバ部65を用いて、LVDSI/F24からデータを取得する。バックエンドチップ2のI/Oドライバ部65は、LVDSI/F24から受信データを供給されると、これを通信プロトコルハンドラ部64へ供給する。通信プロトコルハンドラ部64は、受信データを割込ハンドラ部67へ供給する。   When there is an interrupt request in the central processing unit 21 of the back-end chip 2, the interrupt handler unit 67 of the back-end chip 2 executes an interrupt process. The interrupt handler unit 67 acquires data from the LVDSI / F 24 using the communication protocol handler unit 64 and the I / O driver unit 65. When the reception data is supplied from the LVDSI / F 24, the I / O driver unit 65 of the back-end chip 2 supplies this to the communication protocol handler unit 64. The communication protocol handler unit 64 supplies the received data to the interrupt handler unit 67.

これにより、フロントエンドチップ1のDSM部58は、バックエンドチップ2の割込ハンドラ部67へ、コールバック通知を要求するメッセージ構造体を送信する(ステップST4)。   As a result, the DSM unit 58 of the front-end chip 1 transmits a message structure requesting a callback notification to the interrupt handler unit 67 of the back-end chip 2 (step ST4).

メッセージ構造体を受信した割込ハンドラ部67は、メッセージ構造体の内容を解析する。そして、メッセージ構造体がコールバック通知を要求するものである場合、メッセージ構造体の送信先として、バックエンドチップ2のDSM部68を特定する。割込ハンドラ部67は、メッセージ構造体のパラメータに基づくコールバック関数登録メッセージを生成し、DSM部68へ供給する(ステップST5)。このコールバック関数登録メッセージには、たとえば、メッセージ構造体に含まれる情報として、コールバック関数を登録したタスク管理番号「1」と、CPU番号「1」などが含まれる。   The interrupt handler unit 67 that has received the message structure analyzes the contents of the message structure. If the message structure is a request for callback notification, the DSM unit 68 of the back-end chip 2 is specified as the transmission destination of the message structure. The interrupt handler unit 67 generates a callback function registration message based on the parameters of the message structure and supplies it to the DSM unit 68 (step ST5). The callback function registration message includes, for example, a task management number “1” in which the callback function is registered, a CPU number “1”, and the like as information included in the message structure.

バックエンドチップ2のDSM部68は、割込ハンドラ部67からコールバック関数登録メッセージが供給されると、このコールバック関数登録メッセージに基づいて、バックエンドチップ2のタスク登録データ70に、コールバック通知を実行するタスクのタスク管理ブロック71を追加登録する(ステップST6)。   When the callback function registration message is supplied from the interrupt handler unit 67, the DSM unit 68 of the back-end chip 2 stores the callback in the task registration data 70 of the back-end chip 2 based on the callback function registration message. The task management block 71 of the task that executes the notification is additionally registered (step ST6).

図7は、バックエンドチップ2のDSM部68が、フロントエンドチップ1へコールバック通知を実行するタスクのタスク管理ブロック71をタスク登録データ70に追加登録したときの状態を示す図である。バックエンドチップ2のタスク登録データ70のタスク管理番号「1」には、タスクBのタスク管理ブロック71の次に、コールバック通知を実行するタスクのタスク管理ブロック71が登録される。コールバック通知を実行するタスクのタスク管理ブロック71は、コールバック先のタスク(ここではタスクA)が実行されるCPUの番号「CPU1(フロントエンドチップ1のCPU番号)」、タスク管理番号「01(タスクAが登録された番号)」などが登録される。   FIG. 7 is a diagram showing a state when the DSM unit 68 of the back-end chip 2 additionally registers the task management block 71 of the task for executing the callback notification to the front-end chip 1 in the task registration data 70. In the task management number “1” of the task registration data 70 of the back-end chip 2, the task management block 71 of the task that executes the callback notification is registered after the task management block 71 of the task B. The task management block 71 of the task that executes the callback notification includes the CPU number “CPU1 (CPU number of the front end chip 1)” in which the callback destination task (task A in this case) is executed, and the task management number “01”. (The number at which task A is registered) "is registered.

バックエンドチップ2のタスク登録データ70にコールバック通知を実行するタスクのタスク管理ブロック71が追加登録されている状態で、たとえばバックエンドチップ2の中央処理装置21が、タスク管理番号「1」のタスクBを実行する。   In the state where the task management block 71 of the task for executing the callback notification is additionally registered in the task registration data 70 of the back-end chip 2, for example, the central processing unit 21 of the back-end chip 2 has the task management number “1”. Task B is executed.

図8は、バックエンドチップ2のタスク登録データ70に、タスクCのタスク管理ブロック71を登録した状態を示す図である。タスクCのタスク管理ブロック71は、たとえばタスクBの実行に伴って、タスク登録データ70に登録される。   FIG. 8 is a diagram showing a state in which the task management block 71 of task C is registered in the task registration data 70 of the back-end chip 2. The task management block 71 of task C is registered in the task registration data 70 as task B is executed, for example.

また、タスクBの実行により、中央処理装置21は、ステータス設定データ69に対して、Writeメッセージにより書込みアクセス(Writeアクセス)する。DSM部68は、ステータス設定データ69に、そのWriteメッセージにより指定されたデータを書き込む(ステップST7)。   Further, by executing task B, the central processing unit 21 makes a write access (write access) to the status setting data 69 by a write message. The DSM unit 68 writes the data designated by the Write message in the status setting data 69 (step ST7).

Writeメッセージによりステータス設定データ69を更新すると、バックエンドチップ2のDSM部68は、ステータス設定データ69の同期処理を開始する(ステップST8)。バックエンドチップ2のDSM部68は、具体的には、それが管理するステータス設定データ69を、フロントエンドチップ1のDSM部58へ送信する。   When the status setting data 69 is updated by the Write message, the DSM unit 68 of the back-end chip 2 starts a synchronization process of the status setting data 69 (step ST8). Specifically, the DSM unit 68 of the back-end chip 2 transmits the status setting data 69 managed by the DSM unit 68 to the DSM unit 58 of the front-end chip 1.

バックエンドチップ2のDSM部68が管理するステータス設定データ69は、具体的には、バックエンドチップ2の通信プロトコルハンドラ部64、I/Oドライバ部65、LVDSI/F24、信号線3、フロントエンドチップ1のLVDSI/F14、I/Oドライバ部55、通信プロトコルハンドラ部54および割込ハンドラ部57を介して、フロントエンドチップ1のDSM部58へ送信される。   Specifically, the status setting data 69 managed by the DSM unit 68 of the back-end chip 2 includes the communication protocol handler unit 64, the I / O driver unit 65, the LVDSI / F 24, the signal line 3, and the front-end of the back-end chip 2. The data is transmitted to the DSM unit 58 of the front-end chip 1 via the LVDSI / F 14 of the chip 1, the I / O driver unit 55, the communication protocol handler unit 54 and the interrupt handler unit 57.

フロントエンドチップ1のDSM部58は、バックエンドチップ2のDSM部68からステータス設定データ69を受信すると、受信したステータス設定データ69で、自分のステータス設定データ59を更新する。これにより、フロントエンドチップ1のステータス設定データ59の内容は、バックエンドチップ2のステータス設定データ69の内容と一致する。ステータス設定データ59,69は、同期する。   When the DSM unit 58 of the front end chip 1 receives the status setting data 69 from the DSM unit 68 of the back end chip 2, it updates its own status setting data 59 with the received status setting data 69. As a result, the content of the status setting data 59 of the front end chip 1 matches the content of the status setting data 69 of the back end chip 2. The status setting data 59 and 69 are synchronized.

ステータス設定データ69の同期処理が完了すると、バックエンドチップ2のDSM部68は、フロントエンドチップ1へのコールバック通知の要否を判断する(ステップST9)。DSM部68は、具体的には、タスク登録データ70においてタスクBのタスク管理ブロック71の次に登録されているタスク管理ブロック71が、フロントエンドチップ1へのコールバック通知を実行するタスクのタスク管理ブロック71であるか否かを判断する。図8では、タスクBのタスク管理ブロック71の次には、タスクAへコールバック通知するタスクのタスク管理ブロック71が登録されている。   When the synchronization processing of the status setting data 69 is completed, the DSM unit 68 of the backend chip 2 determines whether or not a callback notification to the frontend chip 1 is necessary (step ST9). Specifically, in the DSM unit 68, the task management block 71 registered next to the task management block 71 of the task B in the task registration data 70 performs a task task for executing a callback notification to the front-end chip 1. It is determined whether it is the management block 71 or not. In FIG. 8, the task management block 71 of the task that notifies the task A of the callback is registered after the task management block 71 of the task B.

タスク登録データ70に基づいてコールバック通知が必要であると判断すると、バックエンドチップ2のDSM部68は、タスクBの実行が完了した後に、タスクBの次にタスク管理ブロック71が登録されているタスクを実行し、コールバック通知のためのメッセージ構造体を生成する。コールバック通知のためのメッセージ構造体には、タスク登録データ70に登録されているコールバック通知先のタスク管理番号「01」、CPU番号「CPU1」などが含まれる。   If it is determined that the callback notification is necessary based on the task registration data 70, the DSM unit 68 of the backend chip 2 registers the task management block 71 next to the task B after the execution of the task B is completed. Execute the existing task and generate a message structure for callback notification. The message structure for the callback notification includes the task management number “01”, the CPU number “CPU1”, and the like of the callback notification destination registered in the task registration data 70.

図9は、バックエンドチップ2からフロントエンドチップ1へ、コールバック通知を実行するときの状態を示す図である。バックエンドチップ2の中央処理装置21は、タスク管理番号「1」に登録されているタスク管理ブロック71に基づいてタスクを実行し、メッセージ構造体によりコールバック通知を実行する。   FIG. 9 is a diagram illustrating a state when a callback notification is executed from the back-end chip 2 to the front-end chip 1. The central processing unit 21 of the back-end chip 2 executes a task based on the task management block 71 registered in the task management number “1”, and executes a callback notification using a message structure.

DSM部68は、生成したメッセージ構造体を、フロントエンドチップ1の割込ハンドラ部57へ送信する(ステップST10)。コールバック通知のためのメッセージ構造体は、具体的には、バックエンドチップ2の通信プロトコルハンドラ部64、I/Oドライバ部65、LVDSI/F部24、信号線3、フロントエンドチップ1のLVDSI/F14、I/Oドライバ部55、および通信プロトコルハンドラ部54を介して、割込ハンドラ部57へ送信される。   The DSM unit 68 transmits the generated message structure to the interrupt handler unit 57 of the front end chip 1 (step ST10). Specifically, the message structure for the callback notification includes the communication protocol handler unit 64 of the back end chip 2, the I / O driver unit 65, the LVDSI / F unit 24, the signal line 3, and the LVDSI of the front end chip 1. / F14, the I / O driver unit 55, and the communication protocol handler unit 54 to be transmitted to the interrupt handler unit 57.

また、DSM部68は、生成したメッセージ構造体を送信した後、そのコールバック通知をしたタスクのタスク管理ブロック71が登録されていたタスク管理番号の実行を禁止(ロック)する(ステップST11)。   Further, after transmitting the generated message structure, the DSM unit 68 prohibits (locks) the execution of the task management number in which the task management block 71 of the task that has notified the callback is registered (step ST11).

コールバック通知のためのメッセージ構造体が供給されると、割込ハンドラ部57は、タスク管理番号「1」を含むWriteメッセージを生成し、DSM部58へ供給する(ステップST12)。   When the message structure for the callback notification is supplied, the interrupt handler unit 57 generates a Write message including the task management number “1” and supplies it to the DSM unit 58 (step ST12).

フロントエンドチップ1のDSM部58は、Writeメッセージが供給されると、タスクAに対してコールバック通知メッセージを供給する(ステップST13)。フロントエンドチップ1の中央処理装置11は、タスクAを実行する(ステップST14)。   When the Write message is supplied, the DSM unit 58 of the front-end chip 1 supplies a callback notification message to the task A (step ST13). The central processing unit 11 of the front-end chip 1 executes task A (step ST14).

以上の一連の処理により、フロントエンドチップ1の中央処理装置11は、バックエンドチップ2で実行されるタスクBからのコールバック通知により、コールバック関数のタスクAを実行することができる。また、そのフロントエンドチップ1のステータス設定データ59は、そのコールバック関数のタスクを実行する前に同期処理されているので、フロントエンドチップ1は、その更新後に同期処理されたステータス設定データ59にアクセスし、コールバック関数のタスクAを適切に実行することができる。   Through the series of processes described above, the central processing unit 11 of the front end chip 1 can execute the task A of the callback function by the callback notification from the task B executed by the back end chip 2. Further, since the status setting data 59 of the front end chip 1 is synchronously processed before executing the callback function task, the front end chip 1 stores the status setting data 59 that has been synchronously processed after the update. Can access and properly execute task A of the callback function.

コールバック関数のタスクとしてのタスクAの実行が完了する(ステップST15)と、フロントエンドチップ1のDSM部58は、そのタスクAの実行が、バックエンドチップ2からのコールバック通知に基づいて実行されたものであるか否かを判断する(ステップST16)。DSM部58は、たとえば、そのタスクAが割込みハンドラ部57からのWriteメッセージに基づいて実行されている場合、バックエンドチップ2からのコールバック通知に基づいて実行されたものであると判断すればよい。   When the execution of the task A as the callback function task is completed (step ST15), the DSM unit 58 of the front-end chip 1 executes the execution of the task A based on the callback notification from the back-end chip 2. It is determined whether it has been done (step ST16). If the DSM unit 58 determines that the task A is executed based on the callback notification from the back-end chip 2 when the task A is executed based on the Write message from the interrupt handler unit 57, for example. Good.

バックエンドチップ2からのコールバック通知に基づいてタスクAを実行したと判断すると、フロントエンドチップ1のDSM部58は、コールバック実行完了通知のメッセージ構造体を生成し、バックエンドチップ2の割込ハンドラ部67へ送信する(ステップST17)。割込ハンドラ部67は、このメッセージ構造体に基づいて、DSM部68へコールバック実行完了通知メッセージを供給する(ステップST18)。   If it is determined that the task A has been executed based on the callback notification from the back-end chip 2, the DSM unit 58 of the front-end chip 1 generates a message structure of the callback execution completion notification and allocates the back-end chip 2. This is transmitted to the embedded handler section 67 (step ST17). Based on this message structure, the interrupt handler unit 67 supplies a callback execution completion notification message to the DSM unit 68 (step ST18).

図10は、フロントエンドチップ1からバックエンドチップ2へ、コールバック実行完了通知を実行するときの、タスク登録データ60,70の状態を示す図である。   FIG. 10 is a diagram showing the state of the task registration data 60 and 70 when the callback execution completion notification is executed from the front end chip 1 to the back end chip 2.

割込ハンドラ部67からコールバック実行完了通知メッセージが供給されると、DSM部68は、コールバック通知をしたタスクのタスク管理ブロック71が登録されていたタスク管理番号のロックを解除し(ステップST19)、タスク登録データ70においてコールバック通知のタスクのタスク管理ブロック71の次に登録されるタスク管理ブロック71のタスクCを実行する。   When the callback execution completion notification message is supplied from the interrupt handler unit 67, the DSM unit 68 releases the lock of the task management number in which the task management block 71 of the task that has notified the callback is registered (step ST19). ), The task C of the task management block 71 registered after the task management block 71 of the task of the callback notification in the task registration data 70 is executed.

これにより、フロントエンドチップ1においてコールバック関数であるタスクAが実行され、バックエンドチップ2は、その実行の完了を待ってタスクCを実行することができる。フロントエンドチップ1とバックエンドチップ2とは、それらが実行する複数のタスクを1つの中央処理装置で実行した場合と同様の順番で実行することができる。   As a result, the task A, which is a callback function, is executed in the front-end chip 1, and the back-end chip 2 can execute the task C after waiting for completion of the execution. The front-end chip 1 and the back-end chip 2 can execute a plurality of tasks executed by them in the same order as when executed by one central processing unit.

なお、以上の説明では図4に基づいてバックエンドチップ2のタスクBからフロントエンドチップ1のタスクAへ、ステータス設定データ69と、コールバック通知のためのメッセージ構造体とを送信する場合を説明している。逆に、フロントエンドチップ1のタスクからバックエンドチップ2のタスクへ、図4と同様の動作シーケンスにより、ステータス設定データ59と、コールバック通知のためのメッセージ構造体とを送信することもできる。   In the above description, the case where the status setting data 69 and the message structure for callback notification are transmitted from the task B of the backend chip 2 to the task A of the frontend chip 1 will be described with reference to FIG. is doing. Conversely, status setting data 59 and a message structure for callback notification can be transmitted from the task of the front end chip 1 to the task of the back end chip 2 by the same operation sequence as in FIG.

次に、図1のマルチCPU装置を組み込んだ組込機器の一例として、プリンタ複合機を説明する。   Next, a printer multifunction peripheral will be described as an example of an embedded device incorporating the multi-CPU device of FIG.

図11は、図1に示すマルチCPU装置をプリンタ複合機に適用する場合における、フロントエンドAP部51とバックエンドAP部61との機能切り分けの一例を示す図である。プリンタ複合機は、図示外のコンピュータに接続され、そのコンピュータからの印刷指示に基づいて画像を印刷する他にも、たとえばそれに装着された図示外のフラッシュメモリなどの半導体メモリに記憶される画像ファイルの画像を印刷する機能や、図示外のスキャナで読み込んだ画像を印刷する機能などを有するものである。   FIG. 11 is a diagram illustrating an example of functional separation between the front-end AP unit 51 and the back-end AP unit 61 when the multi-CPU device illustrated in FIG. 1 is applied to a printer multifunction peripheral. The multifunction printer is connected to a computer (not shown) and prints an image based on a print instruction from the computer. In addition to the image file stored in a semiconductor memory such as a flash memory (not shown) attached to the printer And a function for printing an image read by a scanner (not shown).

プリンタ複合機の中央処理装置は、アプリケーションプログラムを実行することで、基本的に、ファイルシステム管理部81、ユーザインタフェース部82、ファイルリスト管理部83、画像デコード部84、画像レイアウト部85、二値化処理部86、インターレース処理部87、データ処理コントローラ部88、カードプリントファンクション部89などを実現する必要がある。   The central processing unit of the multifunction printer basically executes the application program, so that the file system management unit 81, user interface unit 82, file list management unit 83, image decoding unit 84, image layout unit 85, binary It is necessary to realize the conversion processing unit 86, the interlace processing unit 87, the data processing controller unit 88, the card print function unit 89, and the like.

ファイルシステム管理部81は、プリンタ複合機の図示外の画像ファイルを管理する。プリンタ複合機の画像ファイルは、たとえばプリンタ複合機に装着された半導体メモリに記憶される画像ファイルである。   The file system management unit 81 manages image files (not shown) of the multifunction printer. The image file of the printer multifunction device is an image file stored in a semiconductor memory mounted on the printer multifunction device, for example.

ユーザインタフェース部82は、プリンタ複合機の図示外の入力デバイスおよび表示デバイスを制御する。ユーザインタフェース部82は、ユーザ操作により印刷する画像を選択したり、その画像を印刷する用紙やレイアウトを選択したりする。   The user interface unit 82 controls an input device and a display device (not shown) of the printer multifunction peripheral. The user interface unit 82 selects an image to be printed by a user operation, and selects a sheet and a layout for printing the image.

ファイルリスト管理部83は、ユーザインタフェース部82が選択した印刷設定情報を保持する。印刷設定情報には、たとえば選択された画像ファイルのファイル名や、印刷する用紙のサイズやレイアウト、画像補正処理の要否などの印刷条件などが含まれる。   The file list management unit 83 holds the print setting information selected by the user interface unit 82. The print setting information includes, for example, the file name of the selected image file, the size and layout of the paper to be printed, and printing conditions such as whether image correction processing is necessary.

画像デコード部84は、印刷する画像ファイルのデータを読み込み、その読込データに基づいて画像データを生成する。   The image decoding unit 84 reads image file data to be printed, and generates image data based on the read data.

画像レイアウト部85は、ファイルリスト管理部83が保持する印刷設定情報を読み込み、用紙毎のデータを生成する。画像レイアウト部85は、読み込んだ印刷設定情報に基づいて用紙の印刷範囲などを特定し、その印刷範囲内に印刷する画像をレイアウトした印刷イメージデータを生成する。   The image layout unit 85 reads the print setting information held by the file list management unit 83 and generates data for each sheet. The image layout unit 85 specifies a print range of the paper based on the read print setting information, and generates print image data in which an image to be printed within the print range is laid out.

二値化処理部86は、画像レイアウト部85が生成した印刷イメージデータを、二値化データへ変換する。   The binarization processing unit 86 converts the print image data generated by the image layout unit 85 into binarized data.

インターレース処理部87は、二値化処理部86が生成した二値化データを印刷エンジン90が印刷する順番に並べ替え、必要な制御コードを挿入し、印刷制御データを生成する。インターレース処理部87が生成した印刷制御データは、印刷エンジン90へ供給される。印刷エンジン90は、印刷制御データに基づいて用紙への印刷を実行する。   The interlace processing unit 87 rearranges the binarized data generated by the binarization processing unit 86 in the order in which the print engine 90 prints, inserts necessary control codes, and generates print control data. The print control data generated by the interlace processing unit 87 is supplied to the print engine 90. The print engine 90 executes printing on a sheet based on the print control data.

データ処理コントローラ部88は、画像レイアウト部85、画像デコード部84、二値化処理部86およびインターレース処理部87の間でのデータフローを管理し、制御する。たとえば、二値化処理部86が生成した二値化データは、インターレース処理部87へ供給される。データ処理コントローラ部88は、この二値化データなどのデータの流れを管理する。二値化データの場合、二値化処理部86は、生成した二値化データをデータ処理コントローラ部88へ供給する。データ処理コントローラ部88は、供給された二値化データをインターレース処理部87へ供給する。このようにデータフローを管理し、制御することで、データ処理コントローラ部88は、印刷処理のどの工程までの処理が完了しているか否かなどを一元的に管理することができる。   The data processing controller unit 88 manages and controls the data flow among the image layout unit 85, the image decoding unit 84, the binarization processing unit 86, and the interlace processing unit 87. For example, the binarized data generated by the binarization processing unit 86 is supplied to the interlace processing unit 87. The data processing controller unit 88 manages the flow of data such as the binarized data. In the case of binarized data, the binarization processing unit 86 supplies the generated binarized data to the data processing controller unit 88. The data processing controller unit 88 supplies the supplied binarized data to the interlace processing unit 87. By managing and controlling the data flow in this way, the data processing controller unit 88 can centrally manage up to which process of the printing process has been completed.

カードプリントファンクション部89は、データ処理コントローラ部88にデータフローの制御(ジョブの連続起動やキャンセル処理など)や動作条件などを設定したり、データ処理コントローラ部88から印刷の進捗状況情報を取得したりする。   The card print function unit 89 sets data flow control (continuous job start-up and cancellation processing) and operation conditions in the data processing controller unit 88, and acquires printing progress status information from the data processing controller unit 88. Or

図11のプリンタ複合機では、プリンタ用のアプリケーションプログラムに基づくこれらの基本的な機能を、フロントエンドチップ1とバックエンドチップ2とで分散して実行する。具体的には、フロントエンドAP部51は、ファイルシステム管理部81、ユーザインタフェース部82、ファイルリスト管理部83、カードプリントファンクション部89を有する。バックエンドAP部61は、画像デコード部84、画像レイアウト部85、二値化処理部86、インターレース処理部87、データ処理コントローラ部88を有する。   In the printer multifunction machine shown in FIG. 11, these basic functions based on the printer application program are executed by the front end chip 1 and the back end chip 2 in a distributed manner. Specifically, the front end AP unit 51 includes a file system management unit 81, a user interface unit 82, a file list management unit 83, and a card print function unit 89. The back-end AP unit 61 includes an image decoding unit 84, an image layout unit 85, a binarization processing unit 86, an interlace processing unit 87, and a data processing controller unit 88.

そのため、図11のプリンタ複合機では、ファイルリスト管理部83は、ユーザインタフェース部82が選択した画像や用紙などの印刷に関する情報を印刷設定情報として保持し、画像レイアウト部85へ送信する。画像レイアウト部85は、その情報やファイルシステム管理部81から取得した画像に関する情報に基づいて、印刷レイアウトなどを決定する。また、画像デコード部84は、ファイルシステム管理部81から印刷する画像の画像データを取得する。画像レイアウト部85は、画像デコード部84によりデコードされた画像を、印刷レイアウトにしたがって割り付けた用紙サイズの印刷イメージを生成する。二値化処理部86は、印刷イメージデータを、二値化データへ変換する。インターレース処理部87は、二値化データから印刷制御データを生成する。印刷エンジン90は、印刷制御データに基づいて用紙への印刷を実行する。   For this reason, in the multifunction printer of FIG. 11, the file list management unit 83 retains information relating to printing such as an image or paper selected by the user interface unit 82 as print setting information and transmits it to the image layout unit 85. The image layout unit 85 determines a print layout and the like based on the information and information on the image acquired from the file system management unit 81. Further, the image decoding unit 84 acquires image data of an image to be printed from the file system management unit 81. The image layout unit 85 generates a print image having a paper size in which the image decoded by the image decoding unit 84 is allocated according to the print layout. The binarization processing unit 86 converts the print image data into binarized data. The interlace processing unit 87 generates print control data from the binarized data. The print engine 90 executes printing on a sheet based on the print control data.

また、図11のプリンタ複合機において、フロントエンドチップ1およびバックエンドチップ2は共に、RTOS部53,63の割込ハンドラ部57,67と、RTOSブリッジ部52,62のDSM部58,68とを有する。プリンタ複合機の上述した各機能は、タスク単位で実行され、メッセージ構造体などを用いたタスク間通信機能により、互いにデータを送受する。   11, both the front end chip 1 and the back end chip 2 include interrupt handler sections 57 and 67 of the RTOS sections 53 and 63, and DSM sections 58 and 68 of the RTOS bridge sections 52 and 62. Have The above-described functions of the multifunction printer are executed in units of tasks, and data is transmitted / received to / from each other by an inter-task communication function using a message structure or the like.

そして、たとえば、ファイルシステム管理部81は、画像データを所定のデータ量毎に分割して送信したい場合がある。この場合、コールバック通知機能を利用すればよい。   For example, the file system management unit 81 may wish to divide and transmit image data by a predetermined amount of data. In this case, a callback notification function may be used.

具体的には、フロントエンドチップ1のDSM部58は、ファイルシステム管理部81が所定のデータ量のデータをバックエンドチップ2へ送信すると、コールバック通知を要求するメッセージ構造体をバックエンドチップ2へ送信する。バックエンドチップ2のDSM部68は、画像レイアウト部85や画像デコード部84がその所定のデータ量のデータに対する処理が完了すると、コールバック通知をフロントエンドチップ1へ送信する。   Specifically, when the file system management unit 81 transmits a predetermined amount of data to the back-end chip 2, the DSM unit 58 of the front-end chip 1 transmits a message structure that requests a callback notification to the back-end chip 2. Send to. The DSM unit 68 of the back-end chip 2 transmits a callback notification to the front-end chip 1 when the image layout unit 85 and the image decoding unit 84 complete the processing for the predetermined amount of data.

これにより、ファイルシステム管理部81と、画像レイアウト部85や画像デコード部84とは、互いに処理の同期をとりながら、それぞれの処理を適切に実行することができる。   Accordingly, the file system management unit 81, the image layout unit 85, and the image decoding unit 84 can appropriately execute the respective processes while synchronizing the processes with each other.

このように、図11のプリンタ複合機においてフロントエンドチップ1およびバックエンドチップ2は協働して動作し、1つのチップにおいてプリンタ複合機用のアプリケーションプログラムを実行する場合と同様に、印刷処理を実行することができる。   As described above, the front end chip 1 and the back end chip 2 operate in cooperation with each other in the printer multi-function apparatus of FIG. Can be executed.

以上のように、この実施の形態では、フロントエンドチップ1とバックエンドチップ2とは、記憶デバイス13,23に記憶されるステータス設定データ59,69に対して書込みアクセスがあると、その書込み更新後のステータス設定データ59,69を互いに送受する。したがって、フロントエンドチップ1の中央処理装置11およびバックエンドチップ2の中央処理装置21は、それぞれの記憶デバイス13,23に記憶されるステータス設定データ59,69へアクセスすることで、所定の処理を実行することができる。中央処理装置11,21は、データを利用する度に、他方のチップの記憶デバイス13,23にアクセスする必要がなくなる。また、共有RAMに頼ることなく、2つの中央処理装置11,21によるチップ間通信の回数を減らすことができる。   As described above, in this embodiment, when the front-end chip 1 and the back-end chip 2 have write access to the status setting data 59 and 69 stored in the storage devices 13 and 23, the write update The subsequent status setting data 59 and 69 are transmitted and received. Therefore, the central processing unit 11 of the front-end chip 1 and the central processing unit 21 of the back-end chip 2 access the status setting data 59 and 69 stored in the respective storage devices 13 and 23 to perform predetermined processing. Can be executed. The central processing units 11 and 21 do not need to access the storage devices 13 and 23 of the other chip every time data is used. Further, the number of inter-chip communications by the two central processing units 11 and 21 can be reduced without relying on the shared RAM.

この実施の形態では、フロントエンドチップ1の中央処理装置11およびバックエンドチップ2の中央処理装置21は互いに、記憶デバイス13,23のステータス設定データ59,69への書込みアクセスに基づいて、コールバック通知のためのメッセージ構造体を送受する。これにより、中央処理装置11,21は、コールバック通知に基づいて、且つ、同期処理により更新されたステータス設定データ59,69を用いて、コールバック通知を要求するタスクを実行することができる。   In this embodiment, the central processing unit 11 of the front-end chip 1 and the central processing unit 21 of the back-end chip 2 mutually call back based on write access to the status setting data 59 and 69 of the storage devices 13 and 23. Send and receive message structures for notification. Thereby, the central processing units 11 and 21 can execute a task for requesting the callback notification based on the callback notification and using the status setting data 59 and 69 updated by the synchronization processing.

この実施の形態では、フロントエンドチップ1の中央処理装置11およびバックエンドチップ2の中央処理装置21は互いに、コールバック通知に基づいてタスクを実行した後に、そのコールバック実行完了を通知するメッセージ構造体を送受する。したがって、2つの中央処理装置11,21により実行されるタスクは、それらのタスクを1つの中央処理装置で実行した場合と同様の順番で実行される。   In this embodiment, the central processing unit 11 of the front-end chip 1 and the central processing unit 21 of the back-end chip 2 execute a task based on the callback notification and then notify the completion of the callback execution. Send and receive body. Therefore, the tasks executed by the two central processing units 11 and 21 are executed in the same order as when those tasks are executed by one central processing unit.

また、フロントエンドチップ1のフロントエンドAP部51のタスクと、バックエンドチップ2のバックエンドAP部61のタスクとは、それぞれに提供されるAPIを用いて、互いにデータおよびメッセージを送受する。したがって、フロントエンドチップ1とバックエンドチップ2との間でのステータス設定データやメッセージ構造体の送受信処理は、タスク間メッセージを送受する動作に隠蔽される。したがって、フロントエンドAP部51およびバックエンドAP部61として、1つのメモリ空間を使用する中央処理装置上で動作するプログラムを流用することができる。1つのメモリ空間を使用する中央処理装置上で動作するソフトウェア資産を流用することができる。   Further, the task of the front-end AP unit 51 of the front-end chip 1 and the task of the back-end AP unit 61 of the back-end chip 2 send and receive data and messages to each other using APIs provided to them. Therefore, the status setting data and message structure transmission / reception processing between the front-end chip 1 and the back-end chip 2 are hidden in the operation of transmitting and receiving messages between tasks. Therefore, as the front-end AP unit 51 and the back-end AP unit 61, a program that operates on a central processing unit that uses one memory space can be used. Software assets running on a central processing unit that uses one memory space can be diverted.

その結果、タスク間メッセージを送受することで1つの中央処理装置上で動作可能な複数の機能タスクを実現するプログラムを用いて、フロントエンドAP部51およびバックエンドAP部61を容易に実現し、マルチCPU装置で動作する複数の機能タスクを容易に実現することができる。また、フロントエンドAP部51と、バックエンドAP部61とは、フロントエンドチップ1とバックエンドチップ2とが共にアクセス可能な共用RAMを用いなくとも、データや指示の送受が可能である。   As a result, the front-end AP unit 51 and the back-end AP unit 61 can be easily realized by using a program that realizes a plurality of functional tasks operable on one central processing unit by sending and receiving messages between tasks. A plurality of functional tasks operating on the multi-CPU device can be easily realized. Further, the front-end AP unit 51 and the back-end AP unit 61 can send and receive data and instructions without using a shared RAM that can be accessed by both the front-end chip 1 and the back-end chip 2.

また、フロントエンドチップ1とバックエンドチップ2との間でのタスク間メッセージの送受には、割り込み処理を使用している。したがって、フロントエンドチップ1およびバックエンドチップ2として、割り込み処理機能を有する汎用的な中央処理装置を用いることができる。   In addition, interrupt processing is used for sending and receiving messages between tasks between the front-end chip 1 and the back-end chip 2. Therefore, a general-purpose central processing unit having an interrupt processing function can be used as the front end chip 1 and the back end chip 2.

以上の実施の形態は、本発明の好適な実施の形態の例であるが、本発明は、これに限定されるものではなく、発明の要旨を逸脱しない範囲において種々の変形、変更が可能である。   The above embodiment is an example of a preferred embodiment of the present invention, but the present invention is not limited to this, and various modifications and changes can be made without departing from the scope of the invention. is there.

上記実施の形態では、フロントエンドチップ1とバックエンドチップ2とは、LVDSI/F14,24を有し、差動電圧信号によりデータを送受している。この他にもたとえば、フロントエンドチップ1と、バックエンドチップ2とは、TTL(Transistor−Transistor Logic)I/Fを有し、0〜5Vの電圧を有するTTL信号によりデータを送受するようにしてもよい。   In the above embodiment, the front end chip 1 and the back end chip 2 have the LVDSI / F 14, 24, and transmit and receive data using differential voltage signals. In addition to this, for example, the front-end chip 1 and the back-end chip 2 have a TTL (Transistor-Transistor Logic) I / F, and transmit and receive data using a TTL signal having a voltage of 0 to 5 V. Also good.

上記実施の形態では、フロントエンドチップ1とバックエンドチップ2とは、タスク間メッセージの内容を、図3に例示するメッセージ構造体により送受している。この他にもたとえば、フロントエンドチップ1とバックエンドチップ2とは、タスク間メッセージそのものを送受するようにしてもよい。また、上記実施の形態では、メッセージ構造体によりタスク間メッセージの内容を送受しているが、この他にもたとえばメッセージ構造体により、イベントフラグの内容などの所謂タスク間通信機能に用いる情報を送受してもよい。この場合であっても、ステータス設定データ59,69の更新をデータの変化タイミングとし、そのデータの変化タイミングをトリガとしてタスクを実行することができる。   In the above embodiment, the front-end chip 1 and the back-end chip 2 transmit and receive the contents of the inter-task message using the message structure illustrated in FIG. In addition, for example, the front-end chip 1 and the back-end chip 2 may send and receive intertask messages themselves. In the above embodiment, the contents of the inter-task message are transmitted / received by the message structure. In addition to this, for example, the information used for the so-called inter-task communication function such as the contents of the event flag is transmitted / received by the message structure. May be. Even in this case, the update of the status setting data 59 and 69 can be used as the data change timing, and the task can be executed using the data change timing as a trigger.

上記実施の形態では、フロントエンドチップ1のDSM部58とバックエンドチップ2のDSM部68とは、タスク登録データ60,70に、コールバック通知を実行するタスクのタスク管理ブロック71を登録し、その後この登録の有無に基づいて、コールバック通知を実行している。この他にもたとえば、DSM部58,68は、タスク登録データ60,70とは別の、たとえばコールバック関数有無テーブルを設け、このコールバック関数有無テーブルにコールバック通知の要求を登録し、この登録の有無に基づいてコールバック通知を実行するようにしてもよい。   In the above embodiment, the DSM unit 58 of the front-end chip 1 and the DSM unit 68 of the back-end chip 2 register the task management block 71 of the task that executes callback notification in the task registration data 60 and 70, Thereafter, a callback notification is executed based on the presence or absence of the registration. In addition to this, for example, the DSM units 58 and 68 provide, for example, a callback function presence / absence table different from the task registration data 60 and 70, and register a callback notification request in the callback function presence / absence table. You may make it perform callback notification based on the presence or absence of registration.

上記実施の形態では、マルチCPU装置は、フロントエンドチップ1とバックエンドチップ2との2つのICチップにより構成されている。この他にもたとえば、マルチCPU装置は、3つ以上のICチップにより構成されていてもよい。また、中央処理装置とRAMとを有するCPUユニットが、1つのICチップ内に複数組実装されているICチップであってもよい。さらには、マルチCPU装置は、複数組のCPUユニットを有するICチップと、他のICチップとにより構成されていてもよい。   In the above embodiment, the multi-CPU device is constituted by two IC chips, the front end chip 1 and the back end chip 2. In addition to this, for example, the multi-CPU device may be configured by three or more IC chips. The CPU unit having the central processing unit and the RAM may be an IC chip in which a plurality of sets are mounted in one IC chip. Furthermore, the multi-CPU device may be configured by an IC chip having a plurality of sets of CPU units and another IC chip.

上記実施の形態では、マルチCPU装置を、プリンタ複合機へ応用した場合を例示している。この他にもたとえば、マルチCPU装置は、プリンタ、スキャナ、デジタルカメラ、プロジェクタ、携帯電話端末、その他のコンピュータ制御により動作する組込機器などに応用するようにしてもよい。   In the above-described embodiment, the case where the multi-CPU device is applied to a printer multifunction device is illustrated. In addition, for example, the multi-CPU device may be applied to a printer, a scanner, a digital camera, a projector, a mobile phone terminal, and other embedded devices that operate under computer control.

本発明は、プリンタ複合機、プリンタ、スキャナ、デジタルカメラ、プロジェクタ、携帯電話端末、その他のコンピュータ制御により動作する組込機器などで利用することができる。   The present invention can be used in a multifunction printer, a printer, a scanner, a digital camera, a projector, a mobile phone terminal, and other embedded devices that operate under computer control.

本発明の実施の形態に係るマルチCPU装置を示す装置構成図である。1 is a device configuration diagram showing a multi-CPU device according to an embodiment of the present invention. 図1のマルチCPU装置に実現される機能のスタック構造を示す図である。It is a figure which shows the stack structure of the function implement | achieved by the multi CPU apparatus of FIG. DSM部が生成するメッセージ構造体のデータ構造を示す説明図である。It is explanatory drawing which shows the data structure of the message structure which a DSM part produces | generates. コールバック処理の流れを示すシーケンス図である。It is a sequence diagram which shows the flow of a callback process. タスク登録データの、コールバック関数タスクA登録前の初期状態である。This is an initial state of the task registration data before registration of the callback function task A. タスク登録データに、コールバック関数タスクAが登録された状態である。The callback function task A is registered in the task registration data. タスクAへのコールバック通知タスクが登録された状態である。This is a state in which a callback notification task to task A is registered. コールバック通知タスクの後にタスクCが登録された状態である。Task C is registered after the callback notification task. タスク登録データの、コールバック通知時の状態である。This is the state of the task registration data at the time of callback notification. タスク登録データの、コールバック実行完了通知時の状態である。This is the state of the task registration data at the time of callback execution completion notification. 図1に示すマルチCPU装置をプリンタ複合機に適用した例である。This is an example in which the multi-CPU device shown in FIG. 1 is applied to a multifunction printer.

符号の説明Explanation of symbols

3 信号線(通信路)、11,21 中央処理装置(中央処理装置および他の中央処理装置)、13,23 記憶デバイス(データ記憶手段、タスク記憶手段)、59,69 ステータス設定データ(データ)、60,70 タスク登録データ   3 Signal line (communication path), 11, 21 Central processing unit (central processing unit and other central processing units), 13, 23 Storage device (data storage unit, task storage unit), 59, 69 Status setting data (data) , 60, 70 Task registration data

Claims (4)

データを記憶するデータ記憶手段と、
通信路を介して他の中央処理装置が接続され、上記データ記憶手段へのデータ書込みに基づいて、上記データ記憶手段に記憶されているデータを、当該通信路を介して当該他の中央処理装置へ送信する中央処理装置と、
を有することを特徴とするマルチCPU装置。
Data storage means for storing data;
Another central processing unit is connected via the communication path, and the data stored in the data storage unit is transferred to the other central processing unit via the communication path based on the data writing to the data storage unit. A central processing unit to transmit to,
A multi-CPU device comprising:
前記中央処理装置に実行させるタスクを記憶するタスク記憶手段を有し、
前記中央処理装置は、前記通信路により接続された前記他の中央処理装置からコールバックを要求する通知があると、その通知を実行するタスクを上記タスク記憶手段に登録し、前記データ記憶手段へのデータ書込みがあると、その書込み後のデータを前記他の中央処理装置へ送信した後に、上記タスク記憶手段の登録に基づいて上記コールバックのための通知を実行すること、
を特徴とする請求項1記載のマルチCPU装置。
Task storage means for storing a task to be executed by the central processing unit;
When there is a notification requesting a callback from the other central processing unit connected by the communication path, the central processing unit registers a task for executing the notification in the task storage unit, and sends it to the data storage unit. If there is a data write of, after sending the data after the write to the other central processing unit, executing notification for the callback based on the registration of the task storage means,
The multi-CPU device according to claim 1.
前記中央処理装置は、前記他の中央処理装置からの前記コールバックの通知に基づく処理の完了が通知された後に、前記コールバックの通知を実行するタスクの実行の後に実行するタスクを実行することを特徴とする請求項1または2記載のマルチCPU装置。   The central processing unit executes a task to be executed after execution of the task for executing the callback notification after the completion of the processing based on the callback notification from the other central processing unit is notified. The multi-CPU device according to claim 1, wherein: 通信路を介して他の中央処理装置が接続される中央処理装置により、データ記憶手段にデータを書き込むステップと、
上記データの書込みに基づいて、上記データ記憶手段に記憶されているデータを他の中央処理装置へ送信するステップと、
を有することを特徴とするCPU間通信方法。
Writing data into the data storage means by a central processing unit connected to another central processing unit via a communication path;
Transmitting the data stored in the data storage means to another central processing unit based on the writing of the data;
A communication method between CPUs, comprising:
JP2005178976A 2005-06-20 2005-06-20 Multi-cpu device and inter-cpu communication method Withdrawn JP2006350892A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005178976A JP2006350892A (en) 2005-06-20 2005-06-20 Multi-cpu device and inter-cpu communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005178976A JP2006350892A (en) 2005-06-20 2005-06-20 Multi-cpu device and inter-cpu communication method

Publications (1)

Publication Number Publication Date
JP2006350892A true JP2006350892A (en) 2006-12-28

Family

ID=37646622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005178976A Withdrawn JP2006350892A (en) 2005-06-20 2005-06-20 Multi-cpu device and inter-cpu communication method

Country Status (1)

Country Link
JP (1) JP2006350892A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012056132A (en) * 2010-09-07 2012-03-22 Seiko Epson Corp Data storage processing device for printer, printer and data storage processing method
JP2015032249A (en) * 2013-08-06 2015-02-16 富士ゼロックス株式会社 Information processor and program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012056132A (en) * 2010-09-07 2012-03-22 Seiko Epson Corp Data storage processing device for printer, printer and data storage processing method
JP2015032249A (en) * 2013-08-06 2015-02-16 富士ゼロックス株式会社 Information processor and program

Similar Documents

Publication Publication Date Title
US7538901B2 (en) Multifunction peripheral with efficient use of memory resources
US20120216063A1 (en) Network communication device, peripheral apparatus, and network communication method
JP2016143330A (en) Electronic apparatus, control device, and program
JP2007293772A (en) Printer control system and printer driver
JP6098389B2 (en) Electronic device, control device and program
JP2006350892A (en) Multi-cpu device and inter-cpu communication method
JP4501788B2 (en) Multi-CPU device and inter-CPU communication method
US8526039B2 (en) Image processing apparatus, and control method thereof and program
US10277765B2 (en) Information processing device, control method, and program
JP2005038011A (en) Network system and its control method
JP7259348B2 (en) Information processing device, method for starting information processing device, and start program for information processing device
US11403112B2 (en) Information processing apparatus, method of starting up an information processing apparatus
JP4498460B2 (en) Network device and control method thereof
KR20080113957A (en) Job control apparatus and multi-function product, and operating method thereof
JP2018142261A (en) Information processing system, information processing apparatus, and program
JP2009044232A (en) Image processor, scan data split transmission method, and scan data split transmission program
JP2023020341A (en) printer driver
JP2013050911A (en) Communication apparatus, communication method and program
JP2022122677A (en) Information processor and method for controlling information processor
JP2004246571A (en) Information processor
JP2011107922A (en) Information processing system
JP5580584B2 (en) PRINT CONTROL DEVICE, CONTROL METHOD FOR PRINT CONTROL DEVICE, AND PROGRAM
JP2005038010A (en) Network system and its control method
JP2014204380A (en) Image forming device and control method
CN117234972A (en) Host data reading method and system

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070404

A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080902