JP4501788B2 - マルチcpu装置およびcpu間通信方法 - Google Patents

マルチcpu装置およびcpu間通信方法 Download PDF

Info

Publication number
JP4501788B2
JP4501788B2 JP2005171961A JP2005171961A JP4501788B2 JP 4501788 B2 JP4501788 B2 JP 4501788B2 JP 2005171961 A JP2005171961 A JP 2005171961A JP 2005171961 A JP2005171961 A JP 2005171961A JP 4501788 B2 JP4501788 B2 JP 4501788B2
Authority
JP
Japan
Prior art keywords
task
unit
central processing
inter
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.)
Expired - Fee Related
Application number
JP2005171961A
Other languages
English (en)
Other versions
JP2006350406A (ja
Inventor
誠 小柳
加奈子 井手
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2005171961A priority Critical patent/JP4501788B2/ja
Publication of JP2006350406A publication Critical patent/JP2006350406A/ja
Application granted granted Critical
Publication of JP4501788B2 publication Critical patent/JP4501788B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

本発明は、マルチCPU装置およびCPU間通信方法に関する。
特許文献1は、プリンタを開示する。このプリンタは、複数の「タスク」(「プロセス」と呼ばれることもある)のいずれかを排他的に実行するCPUを有する。具体的にはたとえば、CPUは、印刷処理言語解釈タスク、印刷処理タスク、遅延タスク、印刷制御タスク、印刷タスクなどのタスクを排他的に選択して実行する。
特開2001−1598号公報(発明の詳細な説明、図面など)
特許文献1にあるように、プリンタなどの各種のコンピュータ制御機器は、その中央処理装置が、各種のタスクを実行することで所望の機能を実現している。このようなコンピュータ制御機器においてその処理能力や処理速度を向上させる場合、1つの選択肢として、複数の中央処理装置を用い、その複数の中央処理装置に機能を分散させることが考えられる。
しかしながら、たとえば1つの装置の機能を複数の中央処理装置に分散させて実現しようとする場合、以下のような課題がある。
第一に、1つの装置の機能を複数の中央処理装置にて実現する場合、その複数の中央処理装置同士をたとえば通信路で接続し、この通信路を介してタスク間の通信のためのコマンドデータなどを送受することが考えられる。この場合、各機能のタスクは、他のタスクへの指示やデータが発生した場合、その送信先のタスクが自分と同じ中央処理装置にて実現されている場合と、他のいずれかの中央処理装置にて実現されている場合とを区別して処理しなければならない。他のタスクが他のいずれかの中央処理装置にて実現されている場合には、タスクは、チップ間通信として処理しなければならない。
第二に、1つの装置の機能を複数の中央処理装置にて実現する場合、それら複数の中央処理装置が共通してアクセス可能な共有RAM(Random Access Memory)を使用することが考えられる。この場合、各機能のタスクは、他のタスクへの指示やデータが発生した場合、その送信先のタスクが自分と同じ中央処理装置にて実現されている場合と、他のいずれかの中央処理装置にて実現されている場合とを区別して、送信先のタスクが取得することができる場所に、その指示やデータを書き込まなければならない。
なお、複数の中央処理装置が使用するメモリをすべて共有RAMにて実現した場合、各機能のタスクは、指示やデータの送信先のタスクがどの中央処理装置にて実現されているか否かを区別することなく、指示やデータを共有RAMに書き込めば良いことになる。しかしながら、共有RAMは割高であり、また、共有RAMへのアクセスの排他制御などの処理が必要であり、システムの高価格化や複雑化を避けることができない。また、共有RAMへのアクセスの排他制御により、メモリアクセスレイテンシによるパフォーマンス低下が著しくなり、複数の中央処理装置を使用したことによるメリットを得難くなってしまう。
このように、第一機能タスクおよび第二機能タスクとが、1つの中央処理装置上で動作する場合と、複数の中央処理装置上で分散して動作する場合とでは、装置として実現する機能が同じものであったとしても、それぞれのタスクが実際に実行しなければならない具体的な処理内容が互いに異なる。
そのため、たとえば1つの中央処理装置上で動作する第一機能タスクおよび第二機能タスクを流用して、複数の中央処理装置上で動作させようとする場合、それらの機能タスクを実現するプログラムの抜本的な変更が必要となる。プログラムの抜本的な変更が必要となるため、1つの中央処理装置上で動作する第一機能タスクと第二機能タスクとが実現されている場合であっても、それらを容易に、複数の中央処理装置上で動作させることはできない。
本発明は、複数の中央処理装置において動作する複数の機能タスクを容易に実現することができるマルチCPU装置およびCPU間通信方法を得ることを目的とする。
本発明に係るマルチCPU装置は、所定のアドレス範囲のメモリ空間を使用する第一中央処理装置により、そのメモリ空間へアクセスするアドレスの指定を伴うタスク間メッセージを供給する第一機能タスク手段が実現されるとともに、その第一中央処理装置と通信路により接続され、且つ、第一中央処理装置が使用するメモリ空間のアドレス範囲と重ならないアドレス範囲のメモリ空間を使用する第二中央処理装置により、第一機能タスク手段が供給するタスク間メッセージに基づいてメモリ空間へのアクセス処理を実行する第二機能タスク手段が実現されている構成を、前提とする。そして、本発明に係るマルチCPU装置は、このような前提となる構成に加えて、第一中央処理装置により実現され、第一機能タスク手段が供給するタスク間メッセージの内容を、通信路を介して第二中央処理装置へ送信する第一送信手段と、第二中央処理装置により実現され、第一送信手段が送信したタスク間メッセージの内容を、通信路を介して受信し、その受信した内容のタスク間メッセージを第二機能タスク手段へ供給する受信手段と、第二中央処理装置により実現され、アドレスエラーによるメモリ空間のアクセスエラー発生時に、第一中央処理装置から通信路を介してそのエラーとなったアドレスに格納されるデータを取得し、第二機能タスク手段に、その取得したデータを格納したアドレスへのタスク間メッセージに基づくアクセス処理を実行させるエラー処理手段と、を有するものである。
この構成を採用すれば、第一中央処理装置により実現される第一機能タスク手段と、第二中央処理装置により実現される第二機能タスク手段とは、1つのメモリ空間を使用する中央処理装置上で動作する複数の機能タスク手段を流用して実現することができる。したがって、1つの中央処理装置上で動作可能な複数の機能タスク手段を流用して、複数の中央処理装置において動作する複数の機能タスクを容易に実現することができる。
本発明に係るマルチCPU装置は、上述した発明の構成に加えて、第一送信手段が、第二中央処理装置に割り込み処理を要求し、受信手段が、割り込み処理の要求に基づいて、第一送信手段が送信するタスク間メッセージの内容を、通信路から受信するものである。
この構成を採用すれば、割り込み処理により、第一送信手段から受信手段へタスク間メッセージの内容を送信することができる。したがって、第一中央処理装置および第二中央処理装置として、割り込み処理機能を有する汎用的な中央処理装置を用いることができる。
本発明に係るマルチCPU装置は、上述した発明の各構成に加えて、エラー処理手段が、エラーとなったアドレスに格納されるデータを格納するための領域を、第二中央処理装置が使用するメモリ空間に確保し、そのメモリ空間に当該データが格納されたら、第二機能タスク手段に、そのデータを格納したアドレスへのタスク間メッセージに基づくアクセス処理を実行させるものである。
この構成を採用すれば、エラー処理手段は、第二機能タスク手段に、処理を再開させることができる。
本発明に係るマルチCPU装置は、上述した発明の各構成に加えて、エラー処理手段が、受信手段が第二機能タスク手段へ供給するタスク間メッセージにおいて指定されているアドレスを、確保したメモリ空間のアドレスへ変更することで、第二機能タスク手段に、データを格納したアドレスへのタスク間メッセージに基づくアクセス処理を実行させるものである。
この構成を採用すれば、エラー処理手段は、第二機能タスク手段に、アドレスエラーが発生した処理から、処理を再開させることができる。
本発明に係るマルチCPU装置は、上述した発明の各構成に加えて、第二中央処理装置により実現され、第二機能タスク手段により、第一中央処理装置から取得したデータを格納するメモリ空間が開放されたら、第一機能タスク手段がタスク間メッセージにより指定したアドレスのメモリ空間の開放を指示するタスク間メッセージの内容を、通信路を開始して第一中央処理装置へ送信する第二送信手段を有するものである。
この構成を採用すれば、第一中央処理装置は、第二中央処理装置におけるメモリ空間の開放に同期して、それが使用するメモリ空間を開放することができる。
本発明に係るCPU間通信方法は、所定のアドレス範囲のメモリ空間を使用する第一中央処理装置において生成され、そのメモリ空間へアクセスするアドレスの指定を伴うタスク間メッセージの内容を、第一中央処理装置と通信路により接続され、且つ、第一中央処理装置が使用するメモリ空間のアドレス範囲と重ならないアドレス範囲のメモリ空間を使用する第二中央処理装置へ送信するステップと、第二中央処理装置が通信路を介して受信した内容に基づくタスク間メッセージを、第二中央処理装置により実現されて、第一機能タスク手段が供給するタスク間メッセージに基づいてメモリ空間へのアクセス処理を実行する第二機能タスク手段へ供給するステップと、第一機能タスク手段が供給するタスク間メッセージに基づく第二機能タスク手段のメモリ空間へのアクセス処理によりアドレスエラーが発生したら、第一中央処理装置から通信路を介してそのエラーとなったアドレスに格納されるデータを取得するステップと、第二機能タスク手段に、その取得したデータを格納したアドレスへのタスク間メッセージに基づくアクセス処理を実行させるステップと、を有するものである。
この方法を採用すれば、第一中央処理装置により実現される第一機能タスク手段と、第二中央処理装置により実現される第二機能タスク手段とは、1つのメモリ空間を使用する中央処理装置上で動作する複数のタスク手段を流用して実現することができる。したがって、1つの中央処理装置上で動作可能な複数の機能タスク手段を流用して、複数の中央処理装置において動作する複数の機能タスクを容易に実現することができる。
以下、本発明の実施の形態に係るマルチCPU装置およびCPU間通信方法を、図面に基づいて説明する。CPU間通信方法は、マルチCPU装置の動作の一部として説明する。
図1は、本発明の実施の形態に係るマルチCPU装置を示す装置構成図である。マルチCPU装置は、第一中央処理装置としてのフロントエンドチップ1と、第二中央処理装置としてのバックエンドチップ2との2つのICチップを有する。
フロントエンドチップ1は、中央処理装置11と、RAM12と、記憶デバイス13と、LVDS(Low Voltage Differential Signaling)I/F14と、これらを接続するシステムバス15と、を有する。また、バックエンドチップ2は、中央処理装置21と、RAM22と、記憶デバイス23と、LVDSI/F24と、これらを接続するシステムバス25と、を有する。
図2は、図1中のフロントエンドチップ1のRAM12にマッピングされるメモリ空間マップである。フロントエンドチップ1のRAM12は、16進数の「400000」番地から「500000」番地までのアドレスを有する。
図3は、図1中のバックエンドチップ2のRAM22にマッピングされるメモリ空間マップである。バックエンドチップ2のRAM22は、16進数の「100000」番地から「200000」番地までのアドレスを有する。
フロントエンドチップ1のLVDSI/F14は、バックエンドチップ2のLVDSI/F24と、通信路としての信号線3により接続される。LVDSI/F14,24は、送信するデータが供給されると、差動電圧信号を信号線3へ出力する。差動電圧信号は、たとえば約0.9V程度の振幅を有する正弦波が、送信データに応じて変調された信号であればよい。LVDSI/F14,24は、信号線3から差動電圧信号を受信する。LVDSI/F14,24は、受信した差動電圧信号から、受信データを生成する。
フロントエンドチップ1の記憶デバイス13は、フロントエンドAP(アプリケーション)プログラム31と、RTOS(リアルタイムオペレーティングシステム)ブリッジプログラム32と、RTOSプログラム33と、通信プロトコルハンドラプログラム34と、I/O(Input/Output)ドライバプログラム35と、を記憶する。
バックエンドチップ2の記憶デバイス23は、バックエンドAPプログラム41と、RTOSブリッジプログラム42と、RTOSプログラム43と、通信プロトコルハンドラプログラム44と、I/Oドライバプログラム45と、を記憶する。
フロントエンドチップ1の中央処理装置11は、記憶デバイス13に記憶されるこれらのプログラムをRAM12に読み込んで実行することで、各種の機能を実現する。バックエンドチップ2の中央処理装置21は、記憶デバイス23に記憶されるこれらのプログラムをRAM22に読み込んで実行することで、各種の機能を実現する。
図4は、図1のマルチCPU装置に実現される機能のスタック構造を示す図である。
フロントエンドチップ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を実現する。
バックエンドチップ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を実現する。
I/Oドライバ部55,65は、送信データをLVDSI/F14,24へ供給する。I/Oドライバ部55,65は、LVDSI/F14,24から受信データを供給される。
通信プロトコルハンドラ部54,64は、送信するデータが供給されると、そのデータを元データとして、元データを所定の通信プロトコルにより送信するための送信データを生成する。通信プロトコルハンドラ部54,64は、生成した送信データを、I/Oドライバ部55,65へ供給する。通信プロトコルハンドラ部54,64は、I/Oドライバ部55,65から受信データが供給されると、そのデータを所定の通信プロトコルにより処理し、元データを生成する。
RTOS部53,63は、中央処理装置11,21によるプログラムの実行を管理する。中央処理装置11,21は、上述した各種のプログラムを実行することで、タスクを生成する。RTOSを使用する場合、上述した各種のプログラムは、一般的に複数の関数の集合体として記述される。関数は、たとえば機能に対応する。中央処理装置11,21は、たとえばこの関数毎にタスクを生成する。
タスクの管理状態としては、実行状態、実行可能状態、待ち状態、休止状態などがある。タスクの実行状態とは、現在、そのタスクが中央処理装置11,21により実行されている状態である。タスクの実行可能状態とは、タスク側の実行準備が整っているが、中央処理装置11,21により実行されていない状態である。実行可能状態にあるタスクが複数ある場合において、実行状態のタスクの実行が終了すると、中央処理装置11,21は、その実行可能状態にあるタスクの中の最も優先度が高いタスクを実行する。タスクの待ち状態とは、タスク側の実行準備が整っていない状態である。たとえば、タスクが、イベントフラグのクリアを待っている状態である。タスクの休止状態とは、タスクが起動されていない状態である。一般的なタスクは、新しく生成されると、まずこの状態になる。
RTOS部53,63は、プログラムに基づいて中央処理装置11,21により生成されるタスクの状態を管理する。RTOS部53,63は、たとえば、待ち状態にあるタスクや休止状態にあるタスクを、実行可能状態にする。RTOS部53,63は、実行状態のタスクの実行が完了すると、実行可能状態にあるタスクの中から優先度が高いものを、次に実行するタスクとして選択する。中央処理装置11,21は、RTOS部53,63により選択されたタスクを実行する。RTOS部53,63は、実行が完了した不要なタスクを、休止状態にする。
また、RTOS部53,63は、タスク間通信機能を有する。タスク間通信機能には、たとえばタスク間メッセージや、イベントフラグなどがある。タスク間通信機能を用いることで、あるタスク(以下、タスクAとよぶ)は、他のタスク(以下、タスクBとよぶ)へデータを供給したり、そのタスクの状態を通知したりすることができる。
タスク間メッセージを使用する場合、たとえばRTOS部53は、図2に示すように、タスクBへ引き渡すパラメータデータを、パラメータブロックとして、RAM12のメモリ空間に書き込む。RTOS部53は、そのパラメータブロックの先頭アドレス(図2では16進数の「400100」)の情報などをパラメータとする、タスク間メッセージを生成する。RTOS部53は、生成したタスク間メッセージをタスクBへ供給する。タスクBを実行するとき、中央処理装置11は、タスク間メッセージにて指定される先頭アドレスから、パラメータデータを読み込む。中央処理装置11は、読み込んだパラメータデータを使用して、タスクBを実行する。
なお、供給元のタスクは、供給先のタスクへのタスク間メッセージの内容として、パラメータブロックの先頭アドレスの情報を通知する。タスク間メッセージにより、パラメータブロックのデータそのものは供給されない。そのため、供給元のタスクは、タスク間メッセージを使用することで、任意のデータ量のデータを供給先のタスクへ供給することができる。
以上のように、RTOSを実行する中央処理装置11,21は、プログラムを実行すると、そのプログラムに基づいてタスクを生成し、生成したタスクを所定の順番で実行する。また、RTOSを実行する中央処理装置11,21は、タスク間メッセージなどを使用して、タスク間で必要なデータを供給する。その結果、中央処理装置11,21は、プログラムを実行することで、そのプログラムにコード化されている機能を実現する。
また、RTOS部53,63は、例外管理部56,66と、受信手段としての割込ハンドラ部57,67と、を有する。
例外管理部56,66は、タスクの実行によりたとえばアドレスエラーなどの各種のエラーが発生したとき、例外処理を実行する。例外管理部56,66は、エラーに応じた例外処理を選択する。選択される例外処理には、そのエラーを回復するための復旧処理である場合や、装置全体を強制的にリセットする場合などがある。例外管理部56,66は、選択した例外処理を実行する。あるいは、例外管理部56,66は、選択した例外処理の実行を、その例外処理を実際に実行するタスクへ指示する。
割込ハンドラ部57,67は、中央処理装置11,21に割込要求があるとき、割込処理を実行する。中央処理装置11,21に割込要求をするものとしては、たとえばLVDSI/F14,24がある。LVDSI/F14,24から割込要求があると、割込ハンドラ部57,67は、通信プロトコルハンドラ部54,64およびI/Oドライバ部55,65を用いて、LVDSI/F14,24からデータを取得する。
なお、これらRTOS部53,63、例外管理部56,66、割込ハンドラ部57,67なども、中央処理装置11,21がRTOSプログラム33,43を実行することで実現される。そのため、中央処理装置11,21によりタスクとして実行される。ただし、RTOS部53,63のタスクは、一般的に、他のプログラムに基づく他のタスクより優先度が高いタスクとして、中央処理装置11,21により実行される。
また、例外管理部56,66、割込ハンドラ部57,67などは、RTOSプログラム33,43による他の機能と同様に、RTOSプログラム33,43において複数の関数の集合体として記述される。RTOS部53,63は、例外管理部56,66、割込ハンドラ部57,67などをRTOS部53,63の外部のプログラムから直接的あるいは間接的に呼び足すための、システムコールと呼ばれる関数を有する。
RTOSブリッジ部52,62は、システムコールで不足するAPI(アプリケーションプログラムインターフェイス)を、フロンドエンドAP部51あるいはバックエンドAP部61に提供する。RTOSブリッジ部52,62は、たとえば、RTOS部53,63により定義されていない、マルチCPU装置が組み込まれる機器で特有に使用する、新たな関数を提供する。この関数は、RTOSブリッジ部52,62の外部のプログラムから呼び出し可能な関数である。
RTOSブリッジ部52,62は、自分が動作するチップにおいて実行されないタスクへのタスク間メッセージが提供されたら、このタスク間メッセージを他のチップへ送信する機能を有する。RTOSブリッジ部52,62は、たとえば、自分が動作するチップにおいて実行されないタスクのIDリストを有し、そのIDリストを参照して、そのタスク間メッセージが自チップ内のタスクへのものであるか、他チップ内のタスクへのものであるかを判断すればよい。RTOSブリッジ部52,62は、タスク間メッセージに基づいてメッセージ構造体を生成し、それを通信プロトコルハンドラ部54,64へ供給する。
図5は、RTOSブリッジ部52,62が、タスク間メッセージに基づいて通信プロトコルハンドラ部54,64へ供給するメッセージ構造体のデータ構造を示す説明図である。メッセージ構造体は、複数のパラメータのデータを有する。そして、その複数のパラメータの中の1つのパラメータとして、パラメータブロックの先頭アドレスを有する。図5に例示するメッセージ構造体は、パラメータブロックの先頭アドレスとして、図2に示すパラメータブロックの先頭アドレスである「400100(16進数)」を有する。
RTOSブリッジ部52,62は、エラー処理手段としてのアドレスエラー処理部58,68を有する。アドレスエラー処理部58,68は、アドレスエラーが発生したときに、例外管理部56,66により呼び出される。たとえば、図2に示すフロントエンドチップ1のRAM12のメモリ空間は、16進数の「400000」番地から「500000」番地までのアドレスを有する。このメモリ空間に対して、あるタスクに基づいて中央処理装置11がたとえば16進数の「100100」を指定したメモリアクセスをすると、アドレスエラーが発生する。
アドレスエラー処理部58,68は、例外管理部56,66に呼び出されると、後述する所定のアドレスエラー処理を実行する。
フロントエンドAP部51およびバックエンドAP部61は、マルチCPU装置が組み込まれる機器で必要とする機能を実現する。たとえば、マルチCPU装置が組み込まれる機器において機能Aおよび機能Bの2つの機能が必要である場合、フロントエンドAP部51は機能Aを実現し、バックエンドAP部61は機能Bを実現する。
フロントエンドAP部51およびバックエンドAP部61は、RTOS部53,63により、機能毎にあるいは機能を更に細分化した関数毎に機能タスクが生成される。この機能タスクの実行は、RTOS部53,63により管理される。また、機能タスクは、RTOS部53,63およびRTOSブリッジ部52,62が提供するAPIとしての関数を使用し、タスク間メッセージなどを使用してタスク間通信を行う。
次に、以上の構成を有する、実施の形態に係るマルチCPU装置の動作を説明する。
図6は、フロントエンドチップ1で実行されるフロントエンドAP部51の、第一機能タスク手段としてのタスクAが、バックエンドチップ2で実行されるバックエンドAP部61の、第二機能タスク手段としてのタスクBへのタスク間メッセージを生成した場合の動作シーケンスを示す図である。
タスクAは、タスクBへのタスク間メッセージを生成する(ステップST1)と、このタスク間メッセージを、フロントエンドチップ1のRTOSブリッジ部52へ供給する(ステップST2)。
RTOSブリッジ部52は、タスク間メッセージの送信先タスクであるタスクBが、フロントエンドチップ1において実行されないタスクであると判断する。RTOSブリッジ部52は、タスク間メッセージに基づいて図5に示すようなメッセージ構造体を生成し、このメッセージ構造体を通信プロトコルハンドラ部54へ供給する。
フロントエンドチップ1の通信プロトコルハンドラ部54は、メッセージ構造体が供給されると、それを所定の通信プロトコルにより送信するための送信データを生成し、I/Oドライバ部55へ供給する。フロントエンドチップ1のI/Oドライバ部55は、送信データをLVDSI/F14へ供給する。フロントエンドチップ1のLVDSI/F14は、送信するデータに応じた差動電圧信号を、信号線3へ出力する。
フロントエンドチップ1のLVDSI/F14が出力した差動電圧信号は、バックエンドチップ2のLVDSI/F24により受信される。バックエンドチップ2のLVDSI/F24は、バックエンドチップ2の中央処理装置21に割込み要求を出力する。
バックエンドチップ2の中央処理装置21に割込要求があると、バックエンドチップ2の割込ハンドラ部67は、割込処理を実行する。割込ハンドラ部67は、通信プロトコルハンドラ部64およびI/Oドライバ部65を用いて、LVDSI/F24からデータを取得する。バックエンドチップ2のI/Oドライバ部65は、LVDSI/F24から受信データを供給されると、これを通信プロトコルハンドラ部64へ供給する。通信プロトコルハンドラ部64は、受信データを割込ハンドラ部67へ供給する。
これにより、フロントエンドチップ1のRTOSブリッジ部52は、バックエンドチップ2の割込ハンドラ部67へ、タスク間メッセージの内容を有するメッセージ構造体を送信する(ステップST3)。
メッセージ構造体を受信した割込ハンドラ部67は、メッセージ構造体の内容を解析する。そして、メッセージ構造体の送信先としてタスクBを特定する。割込ハンドラ部67は、タスク間メッセージを生成し、タスクBへ供給する(ステップST4)。
この割込ハンドラ部67が生成するタスク間メッセージには、メッセージ構造体に記述されるパラメータブロックの先頭アドレス(図5で言えば「400100(16進数)」)が情報として含まれる。
バックエンドAP部61のタスクBは、割込ハンドラ部67が生成したタスク間メッセージが供給されると、このタスク間メッセージで指定されたパラメータブロックの先頭アドレスにアクセスする(ステップST5)。
バックエンドチップ2のメモリ空間のアドレスは、図3に示すように、「100000」番地から「200000」番地までである。そのため、この「400100」番地へのアクセスにより、バックエンドチップ2では、アドレスエラーが発生する(ステップST6)。タスクBの処理は、アドレスエラーが発生した時点で中断される。
バックエンドチップ2の例外管理部66は、アドレスエラーがあると、それに応じたエラー処理としてアドレスエラー処理部68を選択する(ステップST7)。例外管理部66は、アドレスエラー処理部68に実行を指示する(ステップST8)。アドレスエラー処理部68は、所定のアドレスエラー処理を実行する。
バックエンドチップ2のアドレスエラー処理部68は、具体的には、まず、パラメータブロックのサイズ取得要求を生成し、この要求をフロントエンドチップ1のRTOSブリッジ部52へ送信する(ステップST9)。
パラメータブロックのサイズ取得要求は、実際には、バックエンドチップ2の通信プロトコルハンドラ部64、I/Oドライバ部65、LVDSI/F24、信号線3、フロントエンドチップ1のLVDSI/F14、I/Oドライバ部55、通信プロトコルハンドラ部54および割込ハンドラ部57を介して、フロントエンドチップ1のRTOSブリッジ部52へ送信される。
フロントエンドチップ1のRTOSブリッジ部52は、図2に示すメモリ空間に記憶されるパラメータブロックのサイズ情報を生成し、これをバックエンドチップ2のアドレスエラー処理部68へ送信する(ステップST10)。
フロントエンドチップ1のRAM12に記憶されるパラメータブロックのサイズ情報を取得すると、バックエンドチップ2のアドレスエラー処理部68は、次に、タスクBへ供給されたタスク間メッセージなどの退避処理を実行する(ステップST11)。
引き続き、アドレスエラー処理部68は、図3に示すバックエンドチップ2のRAM22のメモリ空間に、取得したパラメータブロックのサイズ情報に相当する記憶領域を確保する(ステップST12)。図3では、「100400(16進数)」番地から、パラメータブロックの記憶領域が確保されている。
バックエンドチップ2のRAM22のメモリ空間に、パラメータブロックの記憶領域が確保されると、フロントエンドチップ1は、バックエンドチップ2へ、パラメータブロックのデータをDMA(Direct Memory Access)転送する(ステップST13)。これにより、バックエンドチップ2のRAM22には、フロントエンドチップ1のRAM12に記憶されているパラメータブロックと同じ内容のデータが記憶される。
バックエンドチップ2のRAM22にパラメータブロックの内容が記憶され、DMA転送完了通知を受信する(ステップST14)と、バックエンドチップ2のアドレスエラー処理部68は、先に退避したタスクBへのタスク間メッセージのパラメータブロックの先頭アドレスを、先にバックエンドチップ2のRAM22に確保した記憶領域の先頭アドレス(図3で言えば「100400(16進数)」番地)へ変更する(ステップST15)。
バックエンドチップ2のアドレスエラー処理部68は、以上の一連のアドレスエラー処理が完了すると、その完了を例外管理部66に通知する(ステップST16)。例外管理部66は、タスクBに、処理の再開を指示する(ステップST17)。
バックエンドAP部61のタスクBは、アドレスエラーが発生して中断した処理から、処理を再開する。タスクBは、タスク間メッセージで指定されているパラメータブロックの先頭アドレスにアクセスする(ステップST18)。
タスク間メッセージで指定されているパラメータブロックの先頭アドレスは、アドレスエラー処理部68により、バックエンドチップ2のRAM22に確保した記憶領域の先頭アドレスへ変更されている。したがって、タスクBは、アドレスエラーを発生することなくパラメータブロックのデータを読み込み、中断した処理以降の処理を順番に処理することができる。
タスクBは、それによる処理がすべて終了すると、RTOSブリッジ部62に、パラメータブロックの開放を通知する(ステップST19)。RTOSブリッジ部62は、パラメータブロックの開放通知を、フロントエンドチップ1のRTOSブリッジ部52へ通知する(ステップST20)。
これにより、図3のバックエンドチップ2のRAM22に確保されていたパラメータブロックの記憶領域と、図2のバックエンドチップ2のRAM22に確保されていたパラメータブロックの記憶領域とが開放される。
なお、以上の説明では図6に基づいてフロントエンドチップ1のタスクAからバックエンドチップ2のタスクBへ、タスク間メッセージに対応するメッセージ構造体及びパラメータブロックのデータを送信する場合を説明している。逆に、バックエンドチップ2のタスクBからフロントエンドチップ1のタスクAへ、図6と同様の動作シーケンスにより、タスク間メッセージに対応するメッセージ構造体及びパラメータブロックのデータを送信することができる。
次に、図1のマルチCPU装置を組み込んだ組込機器の一例として、プリンタ複合機を説明する。
図7は、図1に示すマルチCPU装置をプリンタ複合機に適用する場合における、フロントエンドAP部51とバックエンドAP部61との機能切り分けの一例を示す図である。プリンタ複合機は、図示外のコンピュータに接続され、そのコンピュータからの印刷指示に基づいて画像を印刷する他にも、たとえばそれに装着された図示外のフラッシュメモリなどの半導体メモリに記憶される画像ファイルの画像を印刷する機能や、図示外のスキャナで読み込んだ画像を印刷する機能などを有するものである。
プリンタ複合機の中央処理装置は、アプリケーションプログラムを実行することで、基本的に、ファイルシステム管理部71、ユーザインタフェース部72、ファイルリスト管理部73、画像デコード部74、画像レイアウト部75、二値化処理部76、インターレース処理部77、データ処理コントローラ部78、カードプリントファンクション部79などを実現する必要がある。
ファイルシステム管理部71は、プリンタ複合機の図示外の画像ファイルを管理する。プリンタ複合機の画像ファイルは、たとえばプリンタ複合機に装着された半導体メモリに記憶される画像ファイルである。
ユーザインタフェース部72は、プリンタ複合機の図示外の入力デバイスおよび表示デバイスを制御する。ユーザインタフェース部72は、ユーザ操作により印刷する画像を選択したり、その画像を印刷する用紙やレイアウトを選択したりする。
ファイルリスト管理部73は、ユーザインタフェース部72が選択した印刷設定情報を保持する。印刷設定情報には、たとえば選択された画像ファイルのファイル名や、印刷する用紙のサイズやレイアウト、画像補正処理の要否などの印刷条件などが含まれる。
画像デコード部74は、印刷する画像ファイルのデータを読み込み、その読込データに基づいて画像データを生成する。
画像レイアウト部75は、ファイルリスト管理部73が保持する印刷設定情報を読み込み、用紙毎のデータを生成する。画像レイアウト部75は、読み込んだ印刷設定情報に基づいて用紙の印刷範囲などを特定し、その印刷範囲内に印刷する画像をレイアウトした印刷イメージデータを生成する。
二値化処理部76は、画像レイアウト部75が生成した印刷イメージデータを、二値化データへ変換する。
インターレース処理部77は、二値化処理部76が生成した二値化データを印刷エンジン80が印刷する順番に並べ替え、必要な制御コードを挿入し、印刷制御データを生成する。インターレース処理部77が生成した印刷制御データは、印刷エンジン80へ供給される。印刷エンジン80は、印刷制御データに基づいて用紙への印刷を実行する。
データ処理コントローラ部78は、画像レイアウト部75、画像デコード部74、二値化処理部76およびインターレース処理部77の間でのデータフローを管理し、制御する。たとえば、二値化処理部76が生成した二値化データは、インターレース処理部77へ供給される。データ処理コントローラ部78は、この二値化データなどのデータの流れを管理する。二値化データの場合、二値化処理部76は、生成した二値化データをデータ処理コントローラ部78へ供給する。データ処理コントローラ部78は、供給された二値化データをインターレース処理部77へ供給する。このようにデータフローを管理し、制御することで、データ処理コントローラ部78は、印刷処理のどの工程までの処理が完了しているか否かなどを一元的に管理することができる。
カードプリントファンクション部79は、データ処理コントローラ部78にデータフローの制御(ジョブの連続起動やキャンセル処理など)や動作条件などを設定したり、データ処理コントローラ部78から印刷の進捗状況情報を取得したりする。
図7のプリンタ複合機では、プリンタ用のアプリケーションプログラムに基づくこれらの基本的な機能を、フロントエンドチップ1とバックエンドチップ2とで分散して実行する。具体的には、フロントエンドAP部51は、ファイルシステム管理部71、ユーザインタフェース部72、ファイルリスト管理部73、カードプリントファンクション部79を有する。バックエンドAP部61は、画像デコード部74、画像レイアウト部75、二値化処理部76、インターレース処理部77、データ処理コントローラ部78を有する。
また、図7のプリンタ複合機において、フロントエンドチップ1およびバックエンドチップ2は共に、RTOS部53,63およびRTOSブリッジ部52,62を有する。バックエンドチップ2のRTOSブリッジ部62は、ファイルリスト取得ブリッジ部81と、ファイルシステムブリッジ部82と、を有する。フロントエンドチップ1のRTOSブリッジ部52は、データ処理コントローラブリッジ部83を有する。これらの各機能は、タスク単位で実行され、タスク間メッセージなどを用いたタスク間通信機能により、互いにデータを送受する。
ファイルリスト取得ブリッジ部81は、たとえば、フロントエンドチップ1のファイルリスト管理部73のタスクからタスク間メッセージが提供されたら、このタスク間メッセージによるメモリ空間へのアクセス処理を実行する。
ファイルシステムブリッジ部82は、たとえば、フロントエンドチップ1のファイルシステム管理部71のタスクからタスク間メッセージが提供されたら、このタスク間メッセージによるメモリ空間へのアクセス処理を実行する。
データ処理コントローラブリッジ部83は、たとえば、データ処理コントローラ部78のタスクからタスク間メッセージが提供されたら、このタスク間メッセージによるメモリ空間へのアクセス処理を実行する。
次に、図7のプリンタ複合機の動作について説明する。
フロントエンドチップ1のユーザインタフェース部72は、ユーザ操作により印刷する画像を選択したり、その画像を印刷する用紙やレイアウトを選択したりする。ファイルリスト管理部73は、その選択された印刷設定情報を保持する。ファイルリスト管理部73は、印刷を指示するタスク間メッセージを生成し、ファイルリスト取得ブリッジ部81へ送信する。
バックエンドチップ2のファイルリスト取得ブリッジ部81は、図示外のバックエンドチップ2の割込処理部を介してフロントエンドチップ1からタスク間メッセージが供給される。ファイルリスト取得ブリッジ部81は、供給されたタスク間メッセージに基づいて、バックエンドチップ2のRAM22にアクセスする。ファイルリスト取得ブリッジ部81は、このアクセスにおいて、タスク間メッセージにて指定されるフロントエンドチップ1のメモリ空間のアドレスを用いる。
フロントエンドチップ1のメモリ空間と、バックエンドチップ2のメモリ空間とは、アドレス範囲が互いに重ならない。そのため、バックエンドチップ2では、アクセスエラーが発生し、アドレスエラー処理部68が実行される。
バックエンドチップ2のアドレスエラー処理部68により、フロントエンドチップ1からバックエンドチップ2へ、タスク間メッセージにて指定されたパラメータブロックが転送される。アドレスエラー処理部68は、タスク間メッセージのアドレスを、この転送先のアドレスへ変更する。
ファイルリスト取得ブリッジ部81は、アドレスエラーにより中断した処理から処理を再開する。ファイルリスト取得ブリッジ部81は、転送されたパラメータブロックが格納されるアドレスにアクセスする。ファイルリスト取得ブリッジ部81は、アクセスエラーを発生することなく、バックエンドチップ2のRAM22に記憶されるパラメータブロックにアクセスする。ファイルリスト取得ブリッジ部81は、印刷する画像ファイルのリストなどを取得する。
ファイルリスト取得ブリッジ部81は、取得した画像ファイルのリストなどの印刷設定情報を、タスク間通信機能により、画像レイアウト部75へ供給する。画像レイアウト部75は、まず、ファイルシステムブリッジ部82へ印刷設定情報により指定されるファイル名を指定し、画像データの取得を指示する。印刷設定情報により指定されるファイル名としては、たとえば画像ファイルのファイル名や、レイアウト情報ファイルのファイル名などがある。
ファイルシステムブリッジ部82は、フロントエンドチップ1のファイルシステム管理部71に、画像レイアウト部75により指定されたファイル名のデータを要求する。
フロントエンドチップ1のファイルシステム管理部71は、たとえば画像ファイルのファイル名を指定した要求があると、フロントエンドチップ1の図示外のファイルシステムに記憶されている、そのファイル名の画像ファイルの先頭アドレスを、タスク間メッセージによりファイルシステムブリッジ部82へ通知する。
バックエンドチップ2のファイルシステムブリッジ部82は、ファイルシステム管理部71から供給されたタスク間メッセージに基づいて、バックエンドチップ2のRAM22にアクセスする。バックエンドチップ2では、アクセスエラーが発生し、アドレスエラー処理部68が実行される。アドレスエラー処理部68の処理により、フロントエンドチップ1からバックエンドチップ2へ、ファイルシステム管理部71がタスク間メッセージにて指定した画像ファイルが転送される。その後、ファイルシステムブリッジ部82は、中断した処理から処理を再開する。ファイルシステムブリッジ部82は、アドレスエラーを発生することなく画像データの取得を完了し、その旨を画像レイアウト部75へ通知する。
指定したファイル名のファイルのデータの取得完了などが通知されると、画像レイアウト部75は、画像の印刷レイアウトを決定する。画像レイアウト部75は、決定した印刷レイアウトに基づいて、タスク間通信機能により、印刷する画像のデコードを画像デコード部74に指示する。
画像デコード部74は、タスク間通信機能により、ファイルシステムブリッジ部82に画像ファイルの取得を指示する。ファイルシステムブリッジ部82は、先の画像レイアウト部75の指示の場合と同様の処理により、フロントエンドチップ1のファイルシステム管理部71とタスク間メッセージを用いて通信し、画像デコード部74により指示された画像ファイルを取得する。画像デコード部74は、ファイルシステムブリッジ部82が取得した画像ファイルのデータをデコードし、画像データを生成する。デコードが完了すると、画像デコード部74は、タスク間通信機能により、デコード完了を画像レイアウト部75に通知する。
タスク間通信機能によりデコード完了が通知されると、画像レイアウト部75は、先に決定している印刷レイアウトにデコードされた画像を割り付け、印刷イメージデータを生成する。
なお、画像デコード部74は、画像データのすべてを一度にデコードするものであっても、画像データを複数のエリアに分け、そのエリア毎にデコードするようにしてもよい。画像デコード部74が分割したエリア毎にデコードする場合、画像レイアウト部75は、そのデコードが済んだ画像データを順番に割り付けるようにしてもよい。
画像レイアウト部75が生成した印刷イメージデータは、タスク間通信機能により、データ処理コントローラ部78を介して、二値化処理部76へ供給される。二値化処理部76は、印刷イメージデータを、二値化データへ変換する。二値化データは、タスク間通信機能により、データ処理コントローラ部78を介して、インターレース処理部77へ供給される。インターレース処理部77は、二値化データから、プリンタの印刷する順番に並べ替え印刷制御データを生成する。印刷エンジン80は、印刷制御データに基づいて給紙した用紙に画像を印刷する。
また、フロントエンドチップ1のカードプリントファンクション部79は、必要に応じてデータ処理コントローラブリッジ部83に、印刷の進捗状況情報の取得などを指示する。データ処理コントローラブリッジ部83は、バックエンドチップ2のデータ処理コントローラ部78に、進捗状況情報の取得を要求する。
データ処理コントローラ部78は、印刷の進捗状況情報が記憶されているアドレスを指定したタスク間メッセージを生成し、これをデータ処理コントローラブリッジ部83に送信する。データ処理コントローラブリッジ部83は、タスク間メッセージが提供されると、そのタスク間メッセージに基づいて、フロントエンドチップ1のRAM12にアクセスする。
フロントエンドチップ1では、アクセスエラーが発生し、アドレスエラー処理部58が実行される。フロントエンドチップ1のアドレスエラー処理部58の処理により、バックエンドチップ2からフロントエンドチップ1へ、データ処理コントローラ部78がタスク間メッセージにて指定した進捗状況情報が転送される。その後、データ処理コントローラブリッジ部83は、中断した処理から処理を再開する。データ処理コントローラブリッジ部83は、アドレスエラーを発生することなく進捗状況情報の取得を完了し、その旨をカードプリントファンクション部79へ通知する。
カードプリントファンクション部79は、データ処理コントローラブリッジ部83が取得した進捗状況情報に基づいて所定の処理を実行する。
以上のように図7のプリンタ複合機においてフロントエンドチップ1およびバックエンドチップ2は協働して動作し、1つのチップにおいてアプリケーションプログラムを実行する場合と同様に、印刷処理を実行することができる。
また、ファイルリスト管理部73と画像レイアウト部75との間に、ファイルリスト取得ブリッジ部81を設け、ファイルシステム管理部71と画像レイアウト部75および画像デコード部74との間に、ファイルシステムブリッジ部82を設けている。このため、フロントエンドチップ1とバックエンドチップ2との間において、印刷する画像ファイルなどのデータは、1回送受されればよい。通信時間を必要最小限に抑えることができる。
これに対して、たとえば、バックエンドチップ2に二値化処理部76のみを実現した場合、フロントエンドチップ1とバックエンドチップ2との間では、印刷イメージデータと二値化データとの2つの大きなデータを送受することになる。通信時間がかかり、印刷時間の長期化の影響が大きくなってしまう。
以上のように、この実施の形態では、フロントエンドチップ1のフロントエンドAP部51のタスクと、バックエンドチップ2のバックエンドAP部61のタスクとは、メッセージ構造体により、タスク間メッセージの内容を互いに送受する。また、フロントエンドAP部51のタスクあるいはバックエンドAP部61のタスクが、他のチップのタスクへのタスク間メッセージを生成すると、RTOSブリッジ52,62が、メッセージ構造体を生成する。メッセージ構造体の送受信処理は、タスク間メッセージを送受する動作に隠蔽される。
したがって、フロントエンドAP部51とバックエンドAP部61は、タスク間メッセージにより、互いに必要なデータや指示を送受することができる。フロントエンドAP部51およびバックエンドAP部61として、1つのメモリ空間を使用する中央処理装置上で動作するプログラムを流用することができる。1つのメモリ空間を使用する中央処理装置上で動作するソフトウェア資産を流用することができる。
その結果、タスク間メッセージを送受することで1つの中央処理装置上で動作可能な複数の機能タスクを実現するプログラムを用いて、フロントエンドAP部51およびバックエンドAP部61を容易に実現し、マルチCPU装置で動作する複数の機能タスクを容易に実現することができる。また、フロントエンドAP部51と、バックエンドAP部61とは、フロントエンドチップ1とバックエンドチップ2とが共にアクセス可能な共用RAMを用いなくとも、データや指示の送受が可能である。
この実施の形態では、フロントエンドチップ1とバックエンドチップ2との間でのタスク間メッセージの送受に、割り込み処理を使用している。したがって、フロントエンドチップ1およびバックエンドチップ2として、割り込み処理機能を有する汎用的な中央処理装置を用いることができる。
この実施の形態では、タスク間メッセージに基づくメモリ空間へのアクセスによりアドレスエラーが発生したら、アドレスエラー処理部58,68は、そのタスク間メッセージのアドレスに格納されるデータを取得し、そのアドレスへのタスク間メッセージに基づくメモリ空間へのアクセスを再度実行させる。したがって、アドレスエラー処理部58,68は、受信したタスク間メッセージの送信先であるタスクに、アドレスエラーが発生した処理から、処理を再開させることができる。
この実施の形態では、タスク間メッセージの送信先のタスクが、パラメータブロックの開放を通知したら、RTOSブリッジ部52,62は、他方のチップのRTOSブリッジ部62,52に、パラメータブロックの開放を通知する。したがって、タスク間メッセージを送信したチップは、それを受信したチップにおけるメモリ空間の開放に同期して、それが使用するメモリ空間を開放することができる。
以上の実施の形態は、本発明の好適な実施の形態の例であるが、本発明は、これに限定されるものではなく、発明の要旨を逸脱しない範囲において種々の変形、変更が可能である。
上記実施の形態では、フロントエンドチップ1とバックエンドチップ2とは、LVDSI/F14,24を有し、差動電圧信号によりデータを送受している。この他にもたとえば、フロントエンドチップ1と、バックエンドチップ2とは、TTL(Transistor−Transistor Logic)I/Fを有し、0〜5Vの電圧を有するTTL信号によりデータを送受するようにしてもよい。
上記実施の形態では、フロントエンドチップ1とバックエンドチップ2とは、タスク間メッセージの内容を、図5に例示するメッセージ構造体により送受している。この他にもたとえば、フロントエンドチップ1とバックエンドチップ2とは、タスク間メッセージそのものを送受するようにしてもよい。また、上記実施の形態では、メッセージ構造体によりタスク間メッセージの内容を送受しているが、この他にもたとえばメッセージ構造体により、イベントフラグの内容などの所謂タスク間通信機能に用いる情報を送受してもよい。
上記実施の形態では、マルチCPU装置は、フロントエンドチップ1とバックエンドチップ2との2つのICチップにより構成されている。この他にもたとえば、マルチCPU装置は、3つ以上のICチップにより構成されていてもよい。また、中央処理装置とRAMとを有するCPUユニットが、1つのICチップ内に複数組実装されているICチップであってもよい。さらには、マルチCPU装置は、複数組のCPUユニットを有するICチップと、他のICチップとにより構成されていてもよい。
上記実施の形態では、マルチCPU装置を、プリンタ複合機へ応用した場合を例示している。この他にもたとえば、マルチCPU装置は、プリンタ、スキャナ、デジタルカメラ、プロジェクタ、携帯電話端末、その他のコンピュータ制御により動作する組込機器などに応用するようにしてもよい。
本発明は、プリンタ複合機、プリンタ、スキャナ、デジタルカメラ、プロジェクタ、携帯電話端末、その他のコンピュータ制御により動作する組込機器などで利用することができる。
本発明の実施の形態に係るマルチCPU装置を示す装置構成図である。 フロントエンドチップのメモリ空間マップである。 バックエンドチップのメモリ空間マップである。 機能のスタック構造を示す図である。 メッセージ構造体のデータ構造を示す説明図である。 チップ間のタスク間メッセージに基づく動作シーケンスを示す図である。 マルチCPU装置をプリンタ複合機に適用した場合の一例を示す図である。
符号の説明
1 フロントエンドチップ(第一中央処理装置)、2 バックエンドチップ(第二中央処理装置)、51 フロントエンドAP部(第一機能タスク手段)、52,62 RTOSブリッジ部(第一送信手段、第二送信手段)、57,67 割込ハンドラ部(受信手段)、58,68 アドレスエラー処理部(エラー処理手段)、61 バックエンドAP部(第二機能タスク手段)

Claims (3)

  1. 所定のアドレス範囲のメモリ空間を使用する第一中央処理装置により実現され、そのメモリ空間へアクセスするアドレスの指定を伴うタスク間メッセージを供給する第一機能タスク手段と、
    上記第一中央処理装置と通信路により接続され、且つ、上記第一中央処理装置が使用するメモリ空間のアドレス範囲と重ならないアドレス範囲のメモリ空間を使用する第二中央処理装置により実現され、上記第一機能タスク手段が供給するタスク間メッセージに基づいてメモリ空間へのアクセス処理を実行する第二機能タスク手段と、
    上記第一中央処理装置により実現され、上記第一機能タスク手段が供給する上記タスク間メッセージの内容を、上記通信路を介して上記第二中央処理装置へ送信する第一送信手段と、
    上記第二中央処理装置により実現され、上記第一送信手段が送信した上記タスク間メッセージの内容を、上記通信路を介して受信し、その受信した内容のタスク間メッセージを上記第二機能タスク手段へ供給する受信手段と、
    上記第二中央処理装置により実現され、アドレスエラーによるメモリ空間のアクセスエラー発生時に、上記第一中央処理装置から上記通信路を介してそのエラーとなったアドレスに格納されるデータを取得し、上記第二機能タスク手段に、その取得したデータを格納したアドレスへのタスク間メッセージに基づくアクセス処理を実行させるエラー処理手段と、
    を有し、
    前記エラー処理手段は、エラーとなったアドレスに格納されるデータを格納するための領域を、前記第二中央処理装置が使用するメモリ空間に確保し、そのメモリ空間に当該データが格納されたら、前記第二機能タスク手段に、そのデータを格納したアドレスへのタスク間メッセージに基づくアクセス処理を実行させることを特徴とするマルチCPU装置。
  2. 前記第一送信手段は、前記第二中央処理装置に割り込み処理を要求し、
    前記受信手段は、上記割り込み処理の要求に基づいて、前記第一送信手段が送信するタスク間メッセージの内容を、前記通信路から受信するものであること、
    を特徴とする請求項1記載のマルチCPU装置。
  3. 前記エラー処理手段は、前記受信手段が前記第二機能タスク手段へ供給する前記タスク間メッセージにおいて指定されているアドレスを、前記確保したメモリ空間のアドレスへ変更することで、前記第二機能タスク手段に、データを格納したアドレスへのタスク間メッセージに基づくアクセス処理を実行させることを特徴とする請求項1記載のマルチCPU装置。
JP2005171961A 2005-06-13 2005-06-13 マルチcpu装置およびcpu間通信方法 Expired - Fee Related JP4501788B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005171961A JP4501788B2 (ja) 2005-06-13 2005-06-13 マルチcpu装置およびcpu間通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005171961A JP4501788B2 (ja) 2005-06-13 2005-06-13 マルチcpu装置およびcpu間通信方法

Publications (2)

Publication Number Publication Date
JP2006350406A JP2006350406A (ja) 2006-12-28
JP4501788B2 true JP4501788B2 (ja) 2010-07-14

Family

ID=37646217

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005171961A Expired - Fee Related JP4501788B2 (ja) 2005-06-13 2005-06-13 マルチcpu装置およびcpu間通信方法

Country Status (1)

Country Link
JP (1) JP4501788B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008186175A (ja) * 2007-01-29 2008-08-14 Toyota Motor Corp オペレーティングシステムの起動制御方法及び情報処理装置
JP5673278B2 (ja) * 2011-03-24 2015-02-18 日油株式会社 ホスホリルコリン類似構造を有する化合物および化粧料

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2526776B2 (ja) * 1993-03-08 1996-08-21 日本電気株式会社 遠隔手続き呼出し装置
JPH081627B2 (ja) * 1993-05-12 1996-01-10 日本電気株式会社 遠隔手続き呼び出しにおけるデータアクセス制御方法および装置
JP2820189B2 (ja) * 1993-07-15 1998-11-05 三菱電機株式会社 数値制御装置の制御ソフトウェア実行システム
JP3312362B2 (ja) * 1994-08-26 2002-08-05 日本電信電話株式会社 マルチプロセッサシステム

Also Published As

Publication number Publication date
JP2006350406A (ja) 2006-12-28

Similar Documents

Publication Publication Date Title
CN202394219U (zh) 便于无驱动打印的打印机和系统
US8839014B2 (en) Apparatus and method for shortening time for transitioning power mode of network communication device by utilizing a shared storage unit, a socket, and a socket wrapper
JP3809216B2 (ja) ネットワークインタフェースボード及びディジタル複写機及びコンピュータ可読メモリ
JP5178282B2 (ja) 情報処理装置、制御方法及びプログラム
JP3769449B2 (ja) キャプチャコントローラおよび画像キャプチャ処理方法
JP2006123511A (ja) 画像形成装置、ハードウェア制御方法、および、ハードウェア制御プログラム
JP4501788B2 (ja) マルチcpu装置およびcpu間通信方法
JP3639022B2 (ja) 複合画像形成装置
US10277765B2 (en) Information processing device, control method, and program
US20190286398A1 (en) Information processing device, information processing method, and recording medium
JP2006350892A (ja) マルチcpu装置およびcpu間通信方法
JP2004094493A (ja) 記憶媒体処理装置およびその制御方法
JP7259348B2 (ja) 情報処理装置、情報処理装置の起動方法、及び、情報処理装置の起動プログラム
JP2018097522A (ja) 集積回路、情報処理装置、情報処理装置における割り込み制御方法、およびプログラム
US11403112B2 (en) Information processing apparatus, method of starting up an information processing apparatus
JP2004058501A (ja) 印刷制御システム
JP2001047706A (ja) ネットワーク環境における画像形成システム
JP2004246571A (ja) 情報処理装置
JP2007058417A (ja) プリントシステム
JP2965686B2 (ja) 印刷制御装置
JP2004192628A (ja) 画像形成装置,プログラム起動方法及びプログラム起動プログラム
JP2022122677A (ja) 情報処理装置および情報処理装置の制御方法
JP5580584B2 (ja) 印刷制御装置、印刷制御装置の制御方法、およびプログラム
CN114661253A (zh) 一种用微软系统直接驱动的打印系统、装置及方法
JP2004234130A (ja) 印刷システム、印刷方法およびこの方法をコンピュータに実行させるためのプログラム

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070404

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080421

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100226

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100330

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100412

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130430

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130430

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140430

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees