JP2006350892A - Multi-cpu device and inter-cpu communication method - Google Patents
Multi-cpu device and inter-cpu communication method Download PDFInfo
- 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
Links
Images
Landscapes
- Record Information Processing For Printing (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
本発明は、マルチCPU装置およびCPU間通信方法に関する。 The present invention relates to a multi-CPU device and an inter-CPU communication method.
特許文献1は、プリンタを開示する。このプリンタは、複数の「タスク」(「プロセス」と呼ばれることもある)のいずれかを排他的に実行するCPUを有する。具体的にはたとえば、CPUは、印刷処理言語解釈タスク、印刷処理タスク、遅延タスク、印刷制御タスク、印刷タスクなどのタスクを排他的に選択して実行する。
特許文献1にあるように、プリンタなどの各種のコンピュータ制御機器は、その中央処理装置が、各種のタスクを実行することで所望の機能を実現している。このようなコンピュータ制御機器においてその処理能力や処理速度を向上させる場合、1つの選択肢として、複数の中央処理装置を用い、その複数の中央処理装置に機能を分散させることが考えられる。
As disclosed in
しかしながら、たとえば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-
フロントエンドチップ1は、中央処理装置11と、RAM12と、データ記憶手段およびタスク記憶手段としての記憶デバイス13と、LVDS(Low Voltage Differential Signaling)I/F14と、これらを接続するシステムバス15と、を有する。また、バックエンドチップ2は、中央処理装置21と、RAM22と、データ記憶手段およびタスク記憶手段としての記憶デバイス23と、LVDSI/F24と、これらを接続するシステムバス25と、を有する。
The front-
フロントエンドチップ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
フロントエンドチップ1の記憶デバイス13は、フロントエンドAP(アプリケーション)プログラム31と、RTOS(リアルタイムオペレーティングシステム)ブリッジプログラム32と、RTOSプログラム33と、通信プロトコルハンドラプログラム34と、I/O(Input/Output)ドライバプログラム35と、を記憶する。
The
バックエンドチップ2の記憶デバイス23は、バックエンドAPプログラム41と、RTOSブリッジプログラム42と、RTOSプログラム43と、通信プロトコルハンドラプログラム44と、I/Oドライバプログラム45と、を記憶する。
The
フロントエンドチップ1の中央処理装置11は、記憶デバイス13に記憶されるこれらのプログラムをRAM12に読み込んで実行することで、各種の機能を実現する。バックエンドチップ2の中央処理装置21は、記憶デバイス23に記憶されるこれらのプログラムをRAM22に読み込んで実行することで、各種の機能を実現する。
The central processing unit 11 of the
図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-
バックエンドチップ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
I/Oドライバ部55,65は、送信データをLVDSI/F14,24へ供給する。I/Oドライバ部55,65は、LVDSI/F14,24から受信データを供給される。
The I /
通信プロトコルハンドラ部54,64は、送信するデータが供給されると、そのデータを元データとして、所定の通信プロトコルにより送信するための送信データを生成する。通信プロトコルハンドラ部54,64は、生成した送信データを、I/Oドライバ部55,65へ供給する。通信プロトコルハンドラ部54,64は、I/Oドライバ部55,65から受信データが供給されると、そのデータを所定の通信プロトコルにより処理し、元データを生成する。
When the data to be transmitted is supplied, the
RTOS部53,63は、中央処理装置11,21によるプログラムの実行を管理する。中央処理装置11,21は、上述した各種のプログラムを実行することで、タスクを生成する。RTOSを使用する場合、上述した各種のプログラムは、一般的に複数の関数の集合体として記述される。関数は、たとえば機能に対応する。中央処理装置11,21は、たとえばこの関数毎にタスクを生成する。
The
タスクの管理状態としては、実行状態、実行可能状態、待ち状態、休止状態などがある。タスクの実行状態とは、現在、そのタスクが中央処理装置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
RTOS部53,63は、プログラムに基づいて中央処理装置11,21により生成されるタスクの状態を管理する。RTOS部53,63は、たとえば、待ち状態にあるタスクや休止状態にあるタスクを、実行可能状態にする。RTOS部53,63は、実行状態のタスクの実行が完了すると、実行可能状態にあるタスクの中から優先度が高いものを、次に実行するタスクとして選択する。中央処理装置11,21は、RTOS部53,63により選択されたタスクを実行する。RTOS部53,63は、実行が完了した不要なタスクを、休止状態にする。
The
また、RTOS部53,63は、タスク間通信機能を有する。タスク間通信機能には、たとえばタスク間メッセージや、イベントフラグなどがある。タスク間通信機能を用いることで、あるタスク(以下、タスクAとよぶ)は、他のタスク(以下、タスクBとよぶ)へデータを供給したり、そのタスクの状態を通知したりすることができる。
The
タスク間メッセージを使用する場合、たとえばRTOS部53は、タスクBへ引き渡すパラメータデータを、パラメータブロックとして、RAM12のメモリ空間に書き込む。RTOS部53は、そのパラメータブロックの先頭アドレスの情報などをパラメータとする、タスク間メッセージを生成する。RTOS部53は、生成したタスク間メッセージをタスクBへ供給する。タスクBを実行するとき、中央処理装置11は、タスク間メッセージにて指定される先頭アドレスから、パラメータデータを読み込む。中央処理装置11は、読み込んだパラメータデータを使用して、タスクBを実行する。
When the inter-task message is used, for example, the
なお、供給元のタスクは、供給先のタスクへのタスク間メッセージの内容として、パラメータブロックの先頭アドレスの情報を通知する。タスク間メッセージにより、パラメータブロックのデータそのものは供給されない。そのため、供給元のタスクは、タスク間メッセージを使用することで、任意のデータ量のデータを供給先のタスクへ供給することができる。 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
また、RTOS部53,63は、割込ハンドラ部57,67を有する。
The
割込ハンドラ部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
なお、これらRTOS部53,63、割込ハンドラ部57,67なども、中央処理装置11,21がRTOSプログラム33,43を実行することで実現される。そのため、中央処理装置11,21によりタスクとして実行される。ただし、RTOS部53,63のタスクは、一般的に、他のプログラムに基づく他のタスクより優先度が高いタスクとして、中央処理装置11,21により実行される。
The
また、割込ハンドラ部57,67などは、RTOSプログラム33,43による他の機能と同様に、RTOSプログラム33,43において複数の関数の集合体として記述される。RTOS部53,63は、割込ハンドラ部57,67などをRTOS部53,63の外部のプログラムから直接的あるいは間接的に呼び出すための、システムコールと呼ばれる関数を有する。
Further, the interrupt
RTOSブリッジ部52,62は、システムコールで不足するAPI(アプリケーションプログラムインターフェイス)を、フロンドエンドAP部51あるいはバックエンドAP部61に提供する。RTOSブリッジ部52,62は、たとえば、RTOS部53,63により定義されていない、マルチCPU装置が組み込まれる機器で特有に使用する、新たな関数を提供する。この関数は、RTOSブリッジ部52,62の外部のプログラム、たとえばフロントエンドAPプログラム31などから呼び出し可能な関数である。
The
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
後述する図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
ステータス設定データ59,69は、たとえばタスク登録データ60,70に登録されるタスクのステータスデータ、設定データなどを有する。
The
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
図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
フロントエンドAP部51およびバックエンドAP部61は、マルチCPU装置が組み込まれる機器で必要とする機能を実現する。たとえば、マルチCPU装置が組み込まれる機器において機能Aおよび機能Bの2つの機能が必要である場合、フロントエンドAP部51のタスクとして機能Aが実現され、バックエンドAP部61のタスクとして機能Bが実現される。
The front-
フロントエンドAP部51およびバックエンドAP部61は、RTOS部53,63により、機能毎にあるいは機能を更に細分化した関数毎に機能タスクが生成される。この機能タスクの実行は、RTOS部53,63により管理される。また、機能タスクは、RTOS部53,63およびRTOSブリッジ部52,62が提供するAPIとしての関数を使用し、タスク間メッセージなどを使用してタスク間通信を行う。
In the front-
次に、以上の構成を有する、実施の形態に係るマルチ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-
この場合、バックエンドチップ2の中央処理装置21が、中央処理装置に相当し、フロントエンドチップ1の中央処理装置11が、他の中央処理装置に相当する。
In this case, the
フロントエンドチップ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
図5は、フロントエンドチップ1のタスク登録データ60に、タスクAのタスク管理ブロック71が登録される直前における、フロントエンドチップ1のタスク登録データ60およびバックエンドチップ2のタスク登録データ70を示す図である。それぞれのタスク登録データ60,70は、0〜nまでの(n+1)個のタスク管理番号を有する。バックエンドチップ2のタスク登録データ70のタスク管理番号「1」には、タスクBのタスク管理ブロック71が登録されている。
FIG. 5 shows the
図6は、フロントエンドチップ1のタスク登録データ60に、タスクAのタスク管理ブロック71が登録された直後における、フロントエンドチップ1のタスク登録データ60およびバックエンドチップ2のタスク登録データ70を示す図である。図6において、フロントエンドチップ1のタスク登録データ60には、タスク管理番号「1」に、タスクAのタスク管理ブロック71が登録される。
FIG. 6 shows the
コールバック関数であるタスクAのタスク管理ブロック71をタスク登録データ60に登録した後、DSM部58は、そのコールバック通知待ちのタスクAが、フロントエンドチップ1で実行されるタスクからのコールバック通知待ちであるか、あるいは、バックエンドチップ2で実行されるタスクからのコールバック通知待ちであるか、を判断する(ステップST3)。なお、DSM部58は、たとえばフロントエンドチップ1で実行されるタスクのリストなどを有し、そのリスト中にコールバック通知元のタスクが含まれていないことを確認することで、コールバック通知元のタスクがフロントエンドチップ1で実行されるタスクでないと判断すればよい。
After registering the
コールバック通知元のタスクBがフロントエンドチップ1で実行されるタスクでない場合、DSM部58は、コールバック通知を要求するメッセージ構造体を生成する。コールバック通知を要求するメッセージ構造体は、図3に示すように、そのパラメータとして、コールバック関数のタスクAを登録したことを通知するデータと、コールバック関数のタスクAを登録したタスク管理番号「1」と、CPU番号「1」などを有する。
When the callback notification source task B is not a task executed by the
DSM部58は、生成したメッセージ構造体を、図2に示すように、通信プロトコルハンドラ部54へ供給する。フロントエンドチップ1の通信プロトコルハンドラ部54は、供給されたメッセージ構造体を所定の通信プロトコルにより送信するための送信データを生成し、I/Oドライバ部55へ供給する。フロントエンドチップ1のI/Oドライバ部55は、送信データをLVDSI/F14へ供給する。フロントエンドチップ1のLVDSI/F14は、送信するデータに応じた差動電圧信号を、信号線3へ出力する。
The
フロントエンドチップ1のLVDSI/F14が出力した差動電圧信号は、バックエンドチップ2のLVDSI/F24により受信される。バックエンドチップ2のLVDSI/F24は、バックエンドチップ2の中央処理装置21に割込み要求を出力する。
The differential voltage signal output from the LVDSSI /
バックエンドチップ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
これにより、フロントエンドチップ1のDSM部58は、バックエンドチップ2の割込ハンドラ部67へ、コールバック通知を要求するメッセージ構造体を送信する(ステップST4)。
As a result, the
メッセージ構造体を受信した割込ハンドラ部67は、メッセージ構造体の内容を解析する。そして、メッセージ構造体がコールバック通知を要求するものである場合、メッセージ構造体の送信先として、バックエンドチップ2のDSM部68を特定する。割込ハンドラ部67は、メッセージ構造体のパラメータに基づくコールバック関数登録メッセージを生成し、DSM部68へ供給する(ステップST5)。このコールバック関数登録メッセージには、たとえば、メッセージ構造体に含まれる情報として、コールバック関数を登録したタスク管理番号「1」と、CPU番号「1」などが含まれる。
The interrupt
バックエンドチップ2のDSM部68は、割込ハンドラ部67からコールバック関数登録メッセージが供給されると、このコールバック関数登録メッセージに基づいて、バックエンドチップ2のタスク登録データ70に、コールバック通知を実行するタスクのタスク管理ブロック71を追加登録する(ステップST6)。
When the callback function registration message is supplied from the interrupt
図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
バックエンドチップ2のタスク登録データ70にコールバック通知を実行するタスクのタスク管理ブロック71が追加登録されている状態で、たとえばバックエンドチップ2の中央処理装置21が、タスク管理番号「1」のタスクBを実行する。
In the state where the
図8は、バックエンドチップ2のタスク登録データ70に、タスクCのタスク管理ブロック71を登録した状態を示す図である。タスクCのタスク管理ブロック71は、たとえばタスクBの実行に伴って、タスク登録データ70に登録される。
FIG. 8 is a diagram showing a state in which the
また、タスクBの実行により、中央処理装置21は、ステータス設定データ69に対して、Writeメッセージにより書込みアクセス(Writeアクセス)する。DSM部68は、ステータス設定データ69に、そのWriteメッセージにより指定されたデータを書き込む(ステップST7)。
Further, by executing task B, the
Writeメッセージによりステータス設定データ69を更新すると、バックエンドチップ2のDSM部68は、ステータス設定データ69の同期処理を開始する(ステップST8)。バックエンドチップ2のDSM部68は、具体的には、それが管理するステータス設定データ69を、フロントエンドチップ1のDSM部58へ送信する。
When the
バックエンドチップ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
フロントエンドチップ1のDSM部58は、バックエンドチップ2のDSM部68からステータス設定データ69を受信すると、受信したステータス設定データ69で、自分のステータス設定データ59を更新する。これにより、フロントエンドチップ1のステータス設定データ59の内容は、バックエンドチップ2のステータス設定データ69の内容と一致する。ステータス設定データ59,69は、同期する。
When the
ステータス設定データ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
タスク登録データ70に基づいてコールバック通知が必要であると判断すると、バックエンドチップ2のDSM部68は、タスクBの実行が完了した後に、タスクBの次にタスク管理ブロック71が登録されているタスクを実行し、コールバック通知のためのメッセージ構造体を生成する。コールバック通知のためのメッセージ構造体には、タスク登録データ70に登録されているコールバック通知先のタスク管理番号「01」、CPU番号「CPU1」などが含まれる。
If it is determined that the callback notification is necessary based on the
図9は、バックエンドチップ2からフロントエンドチップ1へ、コールバック通知を実行するときの状態を示す図である。バックエンドチップ2の中央処理装置21は、タスク管理番号「1」に登録されているタスク管理ブロック71に基づいてタスクを実行し、メッセージ構造体によりコールバック通知を実行する。
FIG. 9 is a diagram illustrating a state when a callback notification is executed from the back-
DSM部68は、生成したメッセージ構造体を、フロントエンドチップ1の割込ハンドラ部57へ送信する(ステップST10)。コールバック通知のためのメッセージ構造体は、具体的には、バックエンドチップ2の通信プロトコルハンドラ部64、I/Oドライバ部65、LVDSI/F部24、信号線3、フロントエンドチップ1のLVDSI/F14、I/Oドライバ部55、および通信プロトコルハンドラ部54を介して、割込ハンドラ部57へ送信される。
The
また、DSM部68は、生成したメッセージ構造体を送信した後、そのコールバック通知をしたタスクのタスク管理ブロック71が登録されていたタスク管理番号の実行を禁止(ロック)する(ステップST11)。
Further, after transmitting the generated message structure, the
コールバック通知のためのメッセージ構造体が供給されると、割込ハンドラ部57は、タスク管理番号「1」を含むWriteメッセージを生成し、DSM部58へ供給する(ステップST12)。
When the message structure for the callback notification is supplied, the interrupt
フロントエンドチップ1のDSM部58は、Writeメッセージが供給されると、タスクAに対してコールバック通知メッセージを供給する(ステップST13)。フロントエンドチップ1の中央処理装置11は、タスクAを実行する(ステップST14)。
When the Write message is supplied, the
以上の一連の処理により、フロントエンドチップ1の中央処理装置11は、バックエンドチップ2で実行されるタスクBからのコールバック通知により、コールバック関数のタスクAを実行することができる。また、そのフロントエンドチップ1のステータス設定データ59は、そのコールバック関数のタスクを実行する前に同期処理されているので、フロントエンドチップ1は、その更新後に同期処理されたステータス設定データ59にアクセスし、コールバック関数のタスクAを適切に実行することができる。
Through the series of processes described above, the central processing unit 11 of the
コールバック関数のタスクとしてのタスク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
バックエンドチップ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-
図10は、フロントエンドチップ1からバックエンドチップ2へ、コールバック実行完了通知を実行するときの、タスク登録データ60,70の状態を示す図である。
FIG. 10 is a diagram showing the state of the
割込ハンドラ部67からコールバック実行完了通知メッセージが供給されると、DSM部68は、コールバック通知をしたタスクのタスク管理ブロック71が登録されていたタスク管理番号のロックを解除し(ステップST19)、タスク登録データ70においてコールバック通知のタスクのタスク管理ブロック71の次に登録されるタスク管理ブロック71のタスクCを実行する。
When the callback execution completion notification message is supplied from the interrupt
これにより、フロントエンドチップ1においてコールバック関数であるタスクAが実行され、バックエンドチップ2は、その実行の完了を待ってタスクCを実行することができる。フロントエンドチップ1とバックエンドチップ2とは、それらが実行する複数のタスクを1つの中央処理装置で実行した場合と同様の順番で実行することができる。
As a result, the task A, which is a callback function, is executed in the front-
なお、以上の説明では図4に基づいてバックエンドチップ2のタスクBからフロントエンドチップ1のタスクAへ、ステータス設定データ69と、コールバック通知のためのメッセージ構造体とを送信する場合を説明している。逆に、フロントエンドチップ1のタスクからバックエンドチップ2のタスクへ、図4と同様の動作シーケンスにより、ステータス設定データ59と、コールバック通知のためのメッセージ構造体とを送信することもできる。
In the above description, the case where the
次に、図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-
プリンタ複合機の中央処理装置は、アプリケーションプログラムを実行することで、基本的に、ファイルシステム管理部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
ファイルシステム管理部81は、プリンタ複合機の図示外の画像ファイルを管理する。プリンタ複合機の画像ファイルは、たとえばプリンタ複合機に装着された半導体メモリに記憶される画像ファイルである。
The file
ユーザインタフェース部82は、プリンタ複合機の図示外の入力デバイスおよび表示デバイスを制御する。ユーザインタフェース部82は、ユーザ操作により印刷する画像を選択したり、その画像を印刷する用紙やレイアウトを選択したりする。
The
ファイルリスト管理部83は、ユーザインタフェース部82が選択した印刷設定情報を保持する。印刷設定情報には、たとえば選択された画像ファイルのファイル名や、印刷する用紙のサイズやレイアウト、画像補正処理の要否などの印刷条件などが含まれる。
The file
画像デコード部84は、印刷する画像ファイルのデータを読み込み、その読込データに基づいて画像データを生成する。
The
画像レイアウト部85は、ファイルリスト管理部83が保持する印刷設定情報を読み込み、用紙毎のデータを生成する。画像レイアウト部85は、読み込んだ印刷設定情報に基づいて用紙の印刷範囲などを特定し、その印刷範囲内に印刷する画像をレイアウトした印刷イメージデータを生成する。
The
二値化処理部86は、画像レイアウト部85が生成した印刷イメージデータを、二値化データへ変換する。
The
インターレース処理部87は、二値化処理部86が生成した二値化データを印刷エンジン90が印刷する順番に並べ替え、必要な制御コードを挿入し、印刷制御データを生成する。インターレース処理部87が生成した印刷制御データは、印刷エンジン90へ供給される。印刷エンジン90は、印刷制御データに基づいて用紙への印刷を実行する。
The
データ処理コントローラ部88は、画像レイアウト部85、画像デコード部84、二値化処理部86およびインターレース処理部87の間でのデータフローを管理し、制御する。たとえば、二値化処理部86が生成した二値化データは、インターレース処理部87へ供給される。データ処理コントローラ部88は、この二値化データなどのデータの流れを管理する。二値化データの場合、二値化処理部86は、生成した二値化データをデータ処理コントローラ部88へ供給する。データ処理コントローラ部88は、供給された二値化データをインターレース処理部87へ供給する。このようにデータフローを管理し、制御することで、データ処理コントローラ部88は、印刷処理のどの工程までの処理が完了しているか否かなどを一元的に管理することができる。
The data
カードプリントファンクション部89は、データ処理コントローラ部88にデータフローの制御(ジョブの連続起動やキャンセル処理など)や動作条件などを設定したり、データ処理コントローラ部88から印刷の進捗状況情報を取得したりする。
The card
図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
そのため、図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
また、図11のプリンタ複合機において、フロントエンドチップ1およびバックエンドチップ2は共に、RTOS部53,63の割込ハンドラ部57,67と、RTOSブリッジ部52,62のDSM部58,68とを有する。プリンタ複合機の上述した各機能は、タスク単位で実行され、メッセージ構造体などを用いたタスク間通信機能により、互いにデータを送受する。
11, both the
そして、たとえば、ファイルシステム管理部81は、画像データを所定のデータ量毎に分割して送信したい場合がある。この場合、コールバック通知機能を利用すればよい。
For example, the file
具体的には、フロントエンドチップ1のDSM部58は、ファイルシステム管理部81が所定のデータ量のデータをバックエンドチップ2へ送信すると、コールバック通知を要求するメッセージ構造体をバックエンドチップ2へ送信する。バックエンドチップ2のDSM部68は、画像レイアウト部85や画像デコード部84がその所定のデータ量のデータに対する処理が完了すると、コールバック通知をフロントエンドチップ1へ送信する。
Specifically, when the file
これにより、ファイルシステム管理部81と、画像レイアウト部85や画像デコード部84とは、互いに処理の同期をとりながら、それぞれの処理を適切に実行することができる。
Accordingly, the file
このように、図11のプリンタ複合機においてフロントエンドチップ1およびバックエンドチップ2は協働して動作し、1つのチップにおいてプリンタ複合機用のアプリケーションプログラムを実行する場合と同様に、印刷処理を実行することができる。
As described above, the
以上のように、この実施の形態では、フロントエンドチップ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-
この実施の形態では、フロントエンドチップ1の中央処理装置11およびバックエンドチップ2の中央処理装置21は互いに、記憶デバイス13,23のステータス設定データ59,69への書込みアクセスに基づいて、コールバック通知のためのメッセージ構造体を送受する。これにより、中央処理装置11,21は、コールバック通知に基づいて、且つ、同期処理により更新されたステータス設定データ59,69を用いて、コールバック通知を要求するタスクを実行することができる。
In this embodiment, the central processing unit 11 of the front-
この実施の形態では、フロントエンドチップ1の中央処理装置11およびバックエンドチップ2の中央処理装置21は互いに、コールバック通知に基づいてタスクを実行した後に、そのコールバック実行完了を通知するメッセージ構造体を送受する。したがって、2つの中央処理装置11,21により実行されるタスクは、それらのタスクを1つの中央処理装置で実行した場合と同様の順番で実行される。
In this embodiment, the central processing unit 11 of the front-
また、フロントエンドチップ1のフロントエンドAP部51のタスクと、バックエンドチップ2のバックエンドAP部61のタスクとは、それぞれに提供されるAPIを用いて、互いにデータおよびメッセージを送受する。したがって、フロントエンドチップ1とバックエンドチップ2との間でのステータス設定データやメッセージ構造体の送受信処理は、タスク間メッセージを送受する動作に隠蔽される。したがって、フロントエンドAP部51およびバックエンドAP部61として、1つのメモリ空間を使用する中央処理装置上で動作するプログラムを流用することができる。1つのメモリ空間を使用する中央処理装置上で動作するソフトウェア資産を流用することができる。
Further, the task of the front-
その結果、タスク間メッセージを送受することで1つの中央処理装置上で動作可能な複数の機能タスクを実現するプログラムを用いて、フロントエンドAP部51およびバックエンドAP部61を容易に実現し、マルチCPU装置で動作する複数の機能タスクを容易に実現することができる。また、フロントエンドAP部51と、バックエンドAP部61とは、フロントエンドチップ1とバックエンドチップ2とが共にアクセス可能な共用RAMを用いなくとも、データや指示の送受が可能である。
As a result, the front-
また、フロントエンドチップ1とバックエンドチップ2との間でのタスク間メッセージの送受には、割り込み処理を使用している。したがって、フロントエンドチップ1およびバックエンドチップ2として、割り込み処理機能を有する汎用的な中央処理装置を用いることができる。
In addition, interrupt processing is used for sending and receiving messages between tasks between the front-
以上の実施の形態は、本発明の好適な実施の形態の例であるが、本発明は、これに限定されるものではなく、発明の要旨を逸脱しない範囲において種々の変形、変更が可能である。 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
上記実施の形態では、フロントエンドチップ1とバックエンドチップ2とは、タスク間メッセージの内容を、図3に例示するメッセージ構造体により送受している。この他にもたとえば、フロントエンドチップ1とバックエンドチップ2とは、タスク間メッセージそのものを送受するようにしてもよい。また、上記実施の形態では、メッセージ構造体によりタスク間メッセージの内容を送受しているが、この他にもたとえばメッセージ構造体により、イベントフラグの内容などの所謂タスク間通信機能に用いる情報を送受してもよい。この場合であっても、ステータス設定データ59,69の更新をデータの変化タイミングとし、そのデータの変化タイミングをトリガとしてタスクを実行することができる。
In the above embodiment, the front-
上記実施の形態では、フロントエンドチップ1のDSM部58とバックエンドチップ2のDSM部68とは、タスク登録データ60,70に、コールバック通知を実行するタスクのタスク管理ブロック71を登録し、その後この登録の有無に基づいて、コールバック通知を実行している。この他にもたとえば、DSM部58,68は、タスク登録データ60,70とは別の、たとえばコールバック関数有無テーブルを設け、このコールバック関数有無テーブルにコールバック通知の要求を登録し、この登録の有無に基づいてコールバック通知を実行するようにしてもよい。
In the above embodiment, the
上記実施の形態では、マルチ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
上記実施の形態では、マルチ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.
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.
上記データの書込みに基づいて、上記データ記憶手段に記憶されているデータを他の中央処理装置へ送信するステップと、
を有することを特徴とする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:
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)
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 |
-
2005
- 2005-06-20 JP JP2005178976A patent/JP2006350892A/en not_active Withdrawn
Cited By (2)
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 |
---|---|---|
US7231638B2 (en) | Memory sharing in a distributed data processing system using modified address space to create extended address space for copying data | |
US7538901B2 (en) | Multifunction peripheral with efficient use of memory resources | |
JP2007293772A (en) | Printer control system and printer driver | |
JP2015005097A (en) | Electronic equipment, 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 | |
JP2020027509A (en) | Relay system | |
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 | |
JP2018097522A (en) | Integrated circuit, information processing apparatus, interrupt control method in 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 | |
JP2000242594A (en) | Information transmission system for terminal device | |
JP5580584B2 (en) | PRINT CONTROL DEVICE, CONTROL METHOD FOR PRINT CONTROL DEVICE, AND PROGRAM | |
JP2005038010A (en) | Network system and its control method |
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 |