(57)【要約】【課題】  ＣＰＵを備えたデータ処理ユニット間のデータ交換を高速で行えると共に、データ交換に関連するプログラムを簡略化できるデータ処理装置を提供する。【解決手段】  第１のデータ処理ユニット１から第２のデータ処理ユニット２にデータを転送するために利用される第１の記憶部３１と、第２のデータ処理ユニット２から第１のデータ処理ユニット１にデータを転送するために利用される第２の記憶部３２とを備えた通信ユニット４を有するデータ処理装置３を提供する。これにより、データ処理ユニット間のデータ交換を、それぞれのデータ処理ユニットのＣＰＵ同士を協調制御することなく、非同期で行うことが可能となり、各ユニット間のデータ交換の制御が簡略化できる。【選択図】        図１
2010152926.tif 000002
【特許請求の範囲】
【請求項１】
第１のＣＰＵを備えた第１のデータ処理ユニットと、
第２のＣＰＵを備えた第２のデータ処理ユニットと、
これら第１および第２のデータ処理ユニットの間でデータ交換が可能な通信手段とを有し、
この通信手段は、前記第１のデータ処理ユニットから前記第２のデータ処理ユニットにデータを転送するために利用される第１の記憶手段と、前記第２のデータ処理ユニットから前記第１のデータ処理ユニットにデータを転送するために利用される第２の記憶手段とを有するデータ処理装置。
【請求項２】
請求項１において、前記通信手段は、前記第１の記憶手段にデータが書き込まれると前記第２のＣＰＵに信号を送り、当該第１の記憶手段からデータが読み出されると前記第１のＣＰＵに信号を送る第１の信号出力手段と、
前記第２の記憶手段にデータが書き込まれると前記第１のＣＰＵに信号を送り、当該第２の記憶手段からデータが読み出されると前記第２のＣＰＵに信号を送る第２の信号出力手段とを備えているデータ処理装置。
【請求項３】
請求項１において、前記第１の記憶手段は、前記第１のデータ処理ユニットから前記第２のデータ処理ユニットにバルクデータを転送する第１のバッファと、コマンドデータを転送する第２のバッファとを備えており、
前記第２の記憶手段は、前記第２のデータ処理ユニットから前記第１のデータ処理ユニットにバルクデータを転送する第３のバッファと、コマンドデータを転送する第４のバッファとを備えているデータ処理装置。
【請求項４】
請求項３において、前記通信手段は、前記第１のバッファにデータが書き込まれると前記第２のＣＰＵに信号を送り、当該第１のバッファのデータが読み出されると前記第１のＣＰＵに信号を送る第１の管理手段と、
前記第２のバッファにデータが書き込まれると前記第２のＣＰＵに信号を送り、当該第２のバッファのデータが読み出されると前記第１のＣＰＵに信号を送る第２の管理手段と、
前記第３のバッファにデータが書き込まれると前記第１のＣＰＵに信号を送り、当該第３のバッファのデータが読み出されると前記第２のＣＰＵに信号を送る第３の管理手段と、
前記第４のバッファにデータが書き込まれると前記第１のＣＰＵに信号を送り、当該第４のバッファのデータが読み出されると前記第２のＣＰＵに信号を送る第４の管理手段とを備えているデータ処理装置。
【請求項５】
請求項３において、前記第１のデータ処理ユニットは、前記第１のバッファにバルクデータを入力し、前記第３のバッファからバルクデータを出力するＤＭＡ機能を備えているデータ処理装置。
【請求項６】
請求項３において、前記第２のデータ処理ユニットは、前記第３のバッファにバルクデータを入力し、前記第１のバッファからバルクデータを出力するＤＭＡ機能を備えているデータ処理装置。
【請求項７】
請求項３において、前記第１のデータ処理ユニットは、外部インターフェイスと、前記外部インターフェイスから前記第１のバッファにバルクデータを転送し、前記第３のバッファから前記外部インターフェイスにバルクデータを転送するＤＭＡ機能を備えているデータ処理装置。
【請求項８】
請求項７において、前記第２のデータ処理ユニットは、前記第３のバッファにバルクデータを入力し、前記第１のバッファからバルクデータを出力するＤＭＡ機能を備えているデータ処理装置。
【請求項９】
請求項３において、前記第２のデータ処理ユニットは、外部インターフェイスと、前記外部インターフェイスから前記第３のバッファにバルクデータを転送し、前記第１のバッファから前記外部インターフェイスにバルクデータを転送するＤＭＡ機能を備えているデータ処理装置。
【請求項１０】
請求項９において、前記第１のデータ処理ユニットは、前記第１のバッファにバルクデータを入力し、前記第３のバッファからバルクデータを出力するＤＭＡ機能を備えているデータ処理装置。
【請求項１１】
データを入力および／または出力可能な第１のデータ入出力手段と、
データを入力および／または出力可能な第２のデータ入出力手段と、
前記第１のデータ入出力手段を制御する第１のＣＰＵを備えた第１のデータ処理ユニットと、
前記第２のデータ入出力手段を制御する第２のＣＰＵを備えた第２のデータ処理ユニットと、
これら第１および第２のデータ処理ユニットの間でデータ交換可能な通信手段とを有し、
この通信手段は、前記第１のデータ処理ユニットから前記第２のデータ処理ユニットにデータを転送するために利用される第１の記憶手段と、前記第２のデータ処理ユニットから前記第１のデータ処理ユニットにデータを転送するために利用される第２の記憶手段とを有するデータ入出力装置。
【請求項１２】
請求項１１において、前記通信手段は、前記第１の記憶手段にデータが書き込まれると前記第２のＣＰＵに信号を送り、当該第１の記憶手段のデータが読み出されると前記第１のＣＰＵに信号を送る第１の信号出力手段と、
前記第２の記憶手段にデータが書き込まれると前記第１のＣＰＵに信号を送り、当該第２の記憶手段のデータが読み出されると前記第２のＣＰＵに信号を送る第２の信号出力手段とを備えているデータ入出力装置。
【請求項１３】
請求項１１において、前記第１の記憶手段は、前記第１のデータ処理ユニットから前記第２のデータ処理ユニットにバルクデータを転送する第１のバッファと、コマンドデータを転送する第２のバッファとを備えており、
前記第２の記憶手段は、前記第２のデータ処理ユニットから前記第１のデータ処理ユニットにバルクデータを転送する第３のバッファと、コマンドデータを転送する第４のバッファとを備えているデータ入出力装置。
【請求項１４】
請求項１３において、前記通信手段は、前記第１のバッファにデータが書き込まれると前記第２のＣＰＵに信号を送り、当該第１のバッファのデータが読み出されると前記第１のＣＰＵに信号を送る第１の管理手段と、
前記第２のバッファにデータが書き込まれると前記第２のＣＰＵに信号を送り、当該第２のバッファのデータが読み出されると前記第１のＣＰＵに信号を送る第２の管理手段と、
前記第３のバッファにデータが書き込まれると前記第１のＣＰＵに信号を送り、当該第３のバッファのデータが読み出されると前記第２のＣＰＵに信号を送る第３の管理手段と、
前記第４のバッファにデータが書き込まれると前記第１のＣＰＵに信号を送り、当該第４のバッファのデータが読み出されると前記第２のＣＰＵに信号を送る第４の管理手段とを備えているデータ入出力装置。
【請求項１５】
請求項１３において、前記第１のデータ処理ユニットは、前記第１のデータ入出力手段から前記第１のバッファにバルクデータを転送する処理および／または、前記第３のバッファから前記第１のデータ入出力手段にバルクデータを転送する処理を実行するＤＭＡ機能を備えているデータ入出力装置。
【請求項１６】
請求項１３において、前記第２のデータ処理ユニットは、前記第２のデータ入出力手段から前記第３のバッファにバルクデータを転送する処理および／または、前記第１のバッファから前記第２のデータ入出力手段にバルクデータを転送する処理を実行するＤＭＡ機能を備えているデータ入出力装置。
【請求項１７】
請求項１３において、前記第１のデータ処理ユニットは、外部インターフェイスと、この外部インターフェイスから前記第１のバッファにバルクデータを転送する処理および／または、前記第３のバッファから前記外部インターフェイスにバルクデータを転送する処理を実行するＤＭＡ機能とを備えているデータ入出力装置。
【請求項１８】
請求項１７において、前記第２のデータ処理ユニットは、前記第２のデータ入出力手段から前記第３のバッファにバルクデータを転送する処理および／または、前記第１のバッファから前記第２のデータ入出力手段にバルクデータを転送する処理を実行するＤＭＡ機能を備えているデータ入出力装置。
【請求項１９】
請求項１３において、前記第２のデータ処理ユニットは、外部インターフェイスと、この外部インターフェイスから前記第３のバッファにバルクデータを転送する処理および／または、前記第１のバッファから前記外部インターフェイスにバルクデータを転送する処理を実行するＤＭＡ機能とを備えているデータ入出力装置。
【請求項２０】
請求項１９において、前記第１のデータ処理ユニットは、前記第１のデータ入出力手段から前記第１のバッファにバルクデータを転送する処理および／または、前記第３のバッファから前記第１のデータ入出力手段にバルクデータを転送する処理を実行するＤＭＡ機能を備えているデータ入出力装置。
【請求項２１】
請求項１１において、前記第１のデータ入出力手段は用紙に印刷する手段であり、前記第２のデータ入出力手段は用紙の画像データを読み取る手段であるデータ入出力装置。
【請求項２２】
請求項１３において、前記第１のデータ処理ユニットは、外部インターフェイスと、この外部インターフェイスを介して外部装置から受信したデータを保持する受信バッファと、当該外部装置に送信するデータを保持する送信バッファとを備えており、
前記第１のバッファと前記送信バッファは同じ記憶容量であり、前記第３のバッファと前記受信バッファは同じ記憶容量であるデータ入出力装置。
【請求項２３】
請求項１３において、前記第２のデータ処理ユニットは、外部インターフェイスと、この外部インターフェイスを介して外部装置から受信したデータを保持する受信バッファと、当該外部装置に送信するデータを保持する送信バッファとを備えており、
前記第１のバッファと前記受信バッファは同じ記憶容量であり、前記第３のバッファと前記送信バッファは同じ記憶容量であるデータ入出力装置。
【請求項２４】
第１のＣＰＵを備えた第１のデータ処理ユニットと、第２のＣＰＵを備えた第２のデータ処理ユニットとの間のデータ入出力方法であって、
第１の記憶手段を用いて前記第１のデータ処理ユニットから前記第２のデータ処理ユニットにデータを転送する第１の工程と、
前記第１の記憶手段と異なる第２の記憶手段を用いて前記第２のデータ処理ユニットから前記第１のデータ処理ユニットにデータを転送する第２の工程とを有するデータ入出力方法。
【請求項２５】
請求項２４において、前記第１の記憶手段にデータが書き込まれると前記第２のＣＰＵに信号を送り、当該第１の記憶手段からデータが読み出されると前記第１のＣＰＵに信号を送る工程と、
前記第２の記憶手段にデータが書き込まれると前記第１のＣＰＵに信号を送り、当該第２の記憶手段からデータが読み出されると前記第２のＣＰＵに信号を送る工程とをさらに有するデータ入出力方法。
【請求項２６】
請求項２４において、前記第１の記憶手段は第１のバッファと第２のバッファとを備えており、前記第２の記憶手段は、第３のバッファと第４のバッファとを備えており、
前記第１の工程では、前記第１のバッファを用いて前記第１のデータ処理ユニットから前記第２のデータ処理ユニットにバルクデータを転送し、前記第２のバッファを用いて前記第１のデータ処理ユニットから前記第２のデータ処理ユニットにコマンドデータを転送し、
前記第２の工程では、前記第３のバッファを用いて前記第２のデータ処理ユニットから前記第１のデータ処理ユニットにバルクデータを転送し、前記第４のバッファを用いて前記第２のデータ処理ユニットから前記第１のデータ処理ユニットにコマンドデータを転送するデータ入出力方法。
【請求項２７】
請求項２６において、前記第１のバッファにデータが書き込まれると前記第２のＣＰＵに信号を送り、当該第１のバッファのデータが読み出されると前記第１のＣＰＵに信号を送る工程と、
前記第２のバッファにデータが書き込まれると前記第２のＣＰＵに信号を送り、当該第２のバッファのデータが読み出されると前記第１のＣＰＵに信号を送る工程と、
前記第３のバッファにデータが書き込まれると前記第１のＣＰＵに信号を送り、当該第３のバッファのデータが読み出されると前記第２のＣＰＵに信号を送る工程と、
前記第４のバッファにデータが書き込まれると前記第１のＣＰＵに信号を送り、当該第４のバッファのデータが読み出されると前記第２のＣＰＵに信号を送る工程とをさらに有するデータ入出力方法。
【請求項２８】
請求項２６において、前記第２のデータ処理ユニットは、外部インターフェイスを備えており、
前記第１の工程では、前記第１のデータ処理ユニットから前記第１のバッファにバルクデータをＤＭＡ転送し、前記第１のバッファから前記外部インターフェイスへバルクデータをＤＭＡ転送するデータ入出力方法。
【請求項２９】
請求項２６において、前記第２のデータ処理ユニットは、外部インターフェイスを備えており、
前記第２の工程では、前記外部インターフェイスから前記第３のバッファにバルクデータをＤＭＡ転送し、前記第３のバッファからバルクデータを前記第１のデータ処理ユニットへＤＭＡ転送するデータ入出力方法。
【請求項３０】
請求項２６において、前記第１のデータ処理ユニットは、外部インターフェイスを備えており、
前記第１の工程では、前記外部インターフェイスから前記第１のバッファにバルクデータをＤＭＡ転送し、前記第１のバッファからバルクデータを前記第２のデータ処理ユニットへＤＭＡ転送するデータ入出力方法。
【請求項３１】
請求項２６において、前記第１のデータ処理ユニットは、外部インターフェイスを備えており、
前記第２の工程では、前記第２のデータ処理ユニットから前記第３のバッファにバルクデータをＤＭＡ転送し、前記第３のバッファから前記外部インターフェイスへバルクデータをＤＭＡ転送するデータ入出力方法。
【請求項３２】
請求項２１において、前記データ入出力装置は、ＰＯＳプリンタであり、前記第１のデータ入出力手段は、チェックに印刷するプリンタであり、前記第２のデータ入出力手段は、印刷された前記チェックの画像を読み取るスキャナであるデータ入出力装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵを備えたデータ処理装置におけるＣＰＵ間のデータ交換の技術に関するものである。
【背景技術】
【０００２】
複数のＣＰＵが搭載されたデータ処理装置においては、それらのＣＰＵの間でデータを交換する必要があるケースがある。たとえば、複数のＣＰＵの間でコマンドデータを交換したり、処理すべきデータを交換するケースがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭５４−１２４９４３号公報
【特許文献２】特開昭６３−０３４６６５号公報
【特許文献３】特開平０７−３０６８４０号公報
【特許文献４】特開昭６３−２００２３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
データを転送する方法としてはバスで接続することが一般的である。しかしながら、複数のＣＰＵでバスを共用すると、一方のＣＰＵがバスを使用しているときに他方のＣＰＵはバスを使用できないので効率が悪く、複数のＣＰＵを採用しているメリットがなくなる。このため、レジスタやメモリなどのバッファを用いてデータ交換を行なうことが望ましい。この場合でも、それぞれのＣＰＵが同時にバッファにデータを書き込まないようにしたり、一方のＣＰＵがバッファに書き込んだデータを他方のＣＰＵが読み込まないうちに一方のＣＰＵが次のデータを書き込んだり、あるいは、他方のＣＰＵがデータを書き込んだりしないようにする必要がある。したがって、バッファを共用している複数のＣＰＵに対しては、適当なタイミングでバッファに対しデータの入出力を行なわなければならず、バッファを共用しているＣＰＵ同士がデータ交換に関して協調制御される必要がある。
【０００５】
このため、複数のＣＰＵの間でタイミングを調整するための制御信号を交換する必要があり、また、それに基づいて、双方のＣＰＵが望むタイミングでデータの入出力を行うように各ＣＰＵのプログラムを構成する必要がある。したがって、プログラムは複雑となり、プログラムを作成する際に考慮すべきファクタが増大する。さらに、データの入出力が競合するような状況になるとデータが喪失しないように、相手のＣＰＵの処理を待つ必要も生ずる可能性があるので、処理速度も低下する可能性が高い。
【０００６】
そこで、本発明においては、このような複数のＣＰＵの間でのデータ交換を高速で行えると共に、各ＣＰＵのプログラムの作成も容易なデータ処理装置およびデータ入出力方法を提供することを目的としている。
【課題を解決するための手段】
【０００７】
このため、本発明においては、第１のＣＰＵを備えた第１のデータ処理ユニットに対しては書き込み専用で第２のＣＰＵを備えた第２のデータ処理ユニットに対しては読み出し専用となる第１の記憶手段と、第１のデータ処理ユニットに対しては読み出し専用で第２のデータ処理ユニットに対しては書き込み専用となる第２の記憶手段とを備えた通信手段を仲介させてデータ処理ユニット間のデータ交換を行なうようにしている。すなわち、本発明のデータ処理装置は、第１のＣＰＵを備えた第１のデータ処理ユニットと、第２のＣＰＵを備えた第２のデータ処理ユニットと、これら第１および第２のデータ処理ユニットの間でデータ交換が可能な通信手段とを有し、この通信手段は、第１のデータ処理ユニットから第２のデータ処理ユニットにデータを転送するために利用される第１の記憶手段と
、第２のデータ処理ユニットから第１のデータ処理ユニットにデータを転送するために利用される第２の記憶手段とを有する。このようなアーキテクチャを採用することにより、第１のデータ処理ユニットから第２のデータ処理ユニットにデータを転送するときには第１の記憶手段を用い、第２のデータ処理ユニットから第１のデータ処理ユニットにデータを転送するときには第２の記憶手段を用いる本発明のデータ入出力方法を採用できる。
【０００８】
このデータ処理装置であると、第１および第２のＣＰＵの間で交換するデータの入出力が競合した場合でも、同時に出力したり、同時に入力することは可能となる。また、転送されたデータを読み出さなくても、相手となるＣＰＵに対しデータを出力することが可能となり、データ転送の自由度が大幅に向上する。このため、第１の記憶手段にデータが書き込まれると第２のＣＰＵに信号を送り、第１の記憶手段からデータが読み出されると第１のＣＰＵに信号を送る第１の信号出力手段あるいは工程と、第２の記憶手段にデータが書き込まれると第１のＣＰＵに信号を送り、第２の記憶手段からデータが読み出されると第２のＣＰＵに信号を送る第２の信号出力手段あるいは工程とを設け、各信号出力手段あるいは工程で各ＣＰＵに送られてくる信号に基づき、第１および第２の記憶手段に所望の
データを入出力することにより第１および第２のＣＰＵの間でデータを交換することができる。したがって、双方のＣＰＵの処理動作を協調制御しなくても、通信手段の第１および第２の記憶手段に対してデータを入力あるいは出力することにより双方のＣＰＵの間でデータを交換することができる。このため、双方のＣＰＵのプログラミングは簡易になり、また、双方のＣＰＵの処理を待たなくてもデータを入出力できるので、処理速度を向上できる。
【０００９】
さらに、第１の記憶手段に、第１のデータ処理ユニットから第２のデータ処理ユニットにバルクデータを転送する第１のバッファと、コマンドデータを転送する第２のバッファを設け、第２の記憶手段に、第２のデータ処理ユニットから第１のデータ処理ユニットにバルクデータを転送する第３のバッファと、コマンドデータを転送する第４のバッファを設けることが望ましい。そして、バルクデータはコマンドデータと比べるとデータサイズが大きいので、バルクデータを転送するための第１および第３のバッファは記憶容量の大きなバッファとし、一方、コマンドデータを転送する第２および第４のバッファは記憶容量の小さなバッファとすることが望ましい。
【００１０】
第１および第２の記憶手段に、用途と容量の異なるバッファを設け、転送するデータの種別に応じて使い分けることにより、各データ処理ユニットのＣＰＵでは、データが転送されたバッファを判別するだけで転送されたデータの種別を認識できる。したがって、第１のバッファにデータが書き込まれると第２のＣＰＵに信号を送り、第１のバッファのデータが読み出されると第１のＣＰＵに信号を送る第１の管理手段または工程と、第２のバッファにデータが書き込まれると第２のＣＰＵに信号を送り、第２のバッファのデータが読み出されると第１のＣＰＵに信号を送る第２の管理手段または工程と、第３のバッファにデータが書き込まれると第１のＣＰＵに信号を送り、第３のバッファのデータが読み出されると第２のＣＰＵに信号を送る第３の管理手段または工程と、第４のバッファにデー
タが書き込まれると第１のＣＰＵに信号を送り、第４のバッファのデータが読み出されると第２のＣＰＵに信号を送る第４の管理手段または工程とを設けることにより、各ＣＰＵは、送信元のＣＰＵから情報を得なくても、また、転送されたデータをすべてＣＰＵで解析しなくても、転送されたデータの種類を判別できる。このため、第２および第４のバッファにより転送されたコマンドデータについては解釈するとしても、第１および第３のバッファにより転送されたバルクデータについてはＣＰＵで解釈する処理を省き、コマンドデータなどで指定された処理をバルクデータに施すことができる。
【００１１】
したがって、第１および第２のデータ処理ユニットの間で交換される全てのデータについて各々のデータ処理ユニットが解釈する必要がなくなるので、データ転送のパフォーマンスを向上できる。それと共に、転送されたデータをすべて解釈しなくて良いので、転送先のＣＰＵの負荷を低減することができ、トータルの処理速度をさらに向上することができる。
【００１２】
バルクデータの転送が容易に行うことができる本発明のデータ処理装置の好適な例は、データを入力および／または出力可能な第１のデータ入出力手段と、データを入力および／または出力可能な第２のデータ入出力手段とを有するデータ入出力装置である。たとえば、ＰＯＳシステムの分野では、チェックに印刷するプリンタと、印刷したチェックの画像を取得するスキャナとが複合された装置が検討されている。そして、本発明のデータ入出力装置であると、プリンタおよびスキャナを制御するＣＰＵをそれぞれ備えたデータ処理ユニットの間で、プリンタあるいはスキャナのステータスや各メカ部分を動作させるための動作コマンドデータや、プリンタ用の印刷データやスキャナで読み取ったチェックの画像データなどのバルクデータを非常に効率よく交換でき、各々のＣＰＵの処理効率も確保できる。
【００１３】
第１および／または第２のデータ処理ユニットにより第１のバッファにバルクデータを入力したり出力したりする処理、また、第３のバッファにバルクデータを入力したり出力したりする処理はＤＭＡ転送を用いることによりさらに高速に処理することができる。ＤＭＡコントローラとしては、第１または第２のＣＰＵを用いても良く、あるいは、第１または第２のデータ処理ユニットにＤＭＡＣを設けておいても良い。第１または第２のデータ処理ユニットの一方に外部インターフェイスが設けられている場合は、これらのバッファを用いて第１または第２の入出力手段で入出力されたデータを外部インターフェイスを介して入出力することができる。第２のデータ処理ユニットに外部インターフェイスがある場合は、第１のデータ処理ユニットから第１のバッファにバルクデータをＤＭＡ転送し、第１のバッファから外部インターフェイスへバルクデータをＤＭＡ転送することにより、第１のデータ処理ユニットで管理するデータ、すなわち、第１のデータ入出力手段で得られたデータを外部インターフェイスを介して出力できる。また、外部インターフェイスから第３のバッファにバルクデータをＤＭＡ転送し、第３のバッファからバルクデータを第１のデータ処理ユニットへＤＭＡ転送することにより、第１のデータ処理ユニットで管理するデータ、すなわち、第１のデータ入出力手段で出力するデータを外部インターフェイスを介して入力できる。
【００１４】
第１のデータ処理ユニットに外部インターフェイスが設けられている場合も同様であり、外部インターフェイスから第１のバッファにバルクデータをＤＭＡ転送し、第１のバッファからバルクデータを第２のデータ処理ユニットへＤＭＡ転送することにより、第２のデータ入出力手段に外部インターフェイスを介してデータを供給できる。また、第２のデータ処理ユニットから第３のバッファにバルクデータをＤＭＡ転送し、第３のバッファから外部インターフェイスへバルクデータをＤＭＡ転送することにより、第２の入出力手段で得られたデータを外部インターフェイスを介して出力できる。さらに、外部インターフェイスを設けた場合は、送信または受信バッファと、第１のバッファまたは第３のバッファを同一の記憶容量とすることにより、外部インターフェイスに対する制御と、通信手段のこれらのバッファに対する制御を同じように設計することができる。
【００１５】
したがって、第１のデータ入出力手段を、用紙に印刷する手段、たとえばプリンタとし、第２のデータ入出力手段を、用紙の画像データを取得する手段、たとえばスキャナとすることにより、先に述べたＰＯＳシステムでチェックを取り扱うのに適した複合装置を提供できる。
【発明の効果】
【００１６】
以上に説明したように、本発明においては、第１のデータ処理ユニットから第２のデータ処理ユニットにデータを転送するために利用される第１の記憶手段と、第２のデータ処理ユニットから第１のデータ処理ユニットにデータを転送するために利用される第２の記憶手段とを有するアーキテクチャを提供している。これにより、第１のデータ処理ユニットから第２のデータ処理ユニットにデータを転送するときには第１の記憶手段を用い、第２のデータ処理ユニットから第１のデータ処理ユニットにデータを転送するときには第２の記憶手段を用いるデータ入出力方法を採用でき、第１および第２のＣＰＵの間で交換するデータの入出力が競合した場合でも、同時に出力したり、同時に入力することは可能となる。また、転送されたデータを読み出さなくても、相手となるＣＰＵに対しデータを出
力することが可能となり、データ転送を非同期に実行でき、データ転送の自由度が大幅に向上する。このため、双方のＣＰＵの処理動作を協調制御しなくても、通信手段の第１および第２の記憶手段に対してデータを入力あるいは出力することにより双方のＣＰＵの間でデータを交換することができる。したがって、双方のＣＰＵのプログラミングは簡易になり、また、双方のＣＰＵの処理を待たなくてもデータを入出力できるので、処理速度を向上できる。
【図面の簡単な説明】
【００１７】
【図１】本発明に係るデータ処理装置を有するＰＯＳプリンタの概略構成を示す図である。
【図２】本例の通信ユニットの詳細を示す図である。
【図３】通信ユニットの第１のバッファの詳細を示す図である。
【図４】第１のバッファを用いてデータ転送する時の処理を示すフローチャートである。
【図５】第１のバッファに対するデータのリード／ライトのタイミングを示すタイミングチャートである。
【図６】第３のバッファの詳細を示す図である。
【図７】第３のバッファを用いてデータ転送する時の処理を示すフローチャートである。
【図８】第３のバッファに対するデータのリード／ライトのタイミングを示すタイミングチャートである。
【図９】図１に示すデータ処理装置において、第１のバッファを用いて第１のデータ処理ユニットから第２のデータ処理ユニットにバルクデータが転送される様子を示す図である。
【図１０】図１に示すデータ処理装置において、第２のバッファを用いて第１のデータ処理ユニットから第２のデータ処理ユニットにコマンドデータが転送される様子を示す図である。
【図１１】図１に示すデータ処理装置において、第３のバッファを用いて第２のデータ処理ユニットから第１のデータ処理ユニットにバルクデータが転送される様子を示す図である。
【図１２】図１に示すデータ処理装置において、第４のバッファを用いて第２のデータ処理ユニットから第１のデータ処理ユニットにコマンドデータが転送される様子を示す図である。
【図１３】図１に示すデータ処理装置において、第４のバッファを用いて第２のデータ処理ユニットの側のデータが第１のデータ処理ユニットを経由してホスト装置に送信される様子を示す図である。
【発明を実施するための形態】
【００１８】
以下に図面を参照して本発明をさらに詳しく説明する。図１に本発明に係るデータ処理装置、およびそれを備えたデータ入出力装置を示してある。本例のデータ入出力装置１０は、ＰＯＳシステムにおいてパーソナルチェックを取り扱うのに適したスキャナ付きプリンタ（または、ＰＯＳプリンタ、複合装置）である。
この複合装置１０は、第１のデータ入出力手段として、チェックの表面に使用日付や使用金額などを印刷するプリンタ機構６と、第２のデータ入出力手段として、使用日付などが印刷されたチェックの画像データを取得するスキャナ機構７を備えている。さらに、これらのプリンタ機構６とスキャナ７機構とを制御する本発明に係るデータ処理装置３を備えている。このデータ処理装置３は、プリンタ機構６を制御する第１のデータ処理ユニット１、およびスキャナ機構７を制御する第２のデータ処理ユニット２を備えており、さらに、これら第１のデータ処理ユニット１と第２のデータ処理ユニット２との間のデータ交換を行う通信ユニット４とを有している。
【００１９】
本例の複合装置１０は、ＰＯＳマシンあるいはホストマシンとなるパーソナルコンピュータ５の周辺装置として稼動する。このため、データ処理装置３は、ホスト５との間でデータの送受信を行うインターフェイスを備えており、プリンタ機構６およびスキャナ機構７を制御するためのコマンドデータをホスト５から受信すると共に、プリンタ機構６で印刷するための印刷データをホスト装置５から取得でき、一方、スキャナ機構７で生成された画像データをホスト装置５に送信することができる。そのためのインターフェイス１９および２９が、第１のデータ処理ユニット１および第２のデータ処理ユニット２の各々に設けられており、いずれか一方のインターフェイスが選択されて利用される。
【００２０】
第１のデータ処理ユニット１は、プリンタ機構６を制御するためのメインＣＰＵ１１と、メインＣＰＵ１１の実行用のプログラムが記録されているプログラムＲＯＭ１３と、メインＣＰＵ１１の作業領域やデータを記録する領域となるＳＲＡＭやＤＲＡＭなどのＲＡＭ１２と、プリンタ機構６をメインＣＰＵ１１の下で制御するための駆動回路などを含んだゲートアレイ（Ｇ／Ａ）１４と、ホスト装置５との外部インターフェイス（ＵＩＢ１）１９とを有している。さらに、メインＣＰＵ１１、プログラムＲＯＭ１３、ＲＡＭ１２およびゲートアレイ１４がデータバスおよびアドレスバスを含むバス１６を介して接続されている。
【００２１】
一方、第２のデータ処理ユニット２は、スキャナ機構７を制御するサブＣＰＵ２１と、サブＣＰＵ２１の実行用のプログラムが記録されているプログラムＲＯＭ２３と、サブＣＰＵ２１の作業領域やデータを記録する領域となるＳＲＡＭやＤＲＡＭなどのＲＡＭ２２と、ホスト装置５との外部インターフェイス（ＵＩＢ２）２９と、この外部インターフェイス２９をコントロールするＵＳＢコントローラなどのインターフェイス用のコントローラ２４と、スキャナ機構７をサブＣＰＵ２１の下で制御する駆動回路などを含むゲートアレイ（Ｇ／Ａ）２５とを有している。さらに、サブＣＰＵ２１、プログラムＲＯＭ２３、ＲＡＭ２２、ゲートアレイ２５およびコントローラ２４がデータバスおよびアドレスバスを含むバス２６を介して接続されている。
【００２２】
これらのデータ処理ユニット２および３の間のデータ交換を行う通信ユニット４は、第１のデータ処理ユニット１のバス１６と第２のデータ処理ユニット２のバス２６とが接続された第１の記憶部３１と第２の記憶部３２とを備えている。第１の記憶部３１は、第１のデータ処理ユニット１から第２のデータ処理ユニット２にデータを転送するために利用され、第２の記憶部３２は、第２のデータ処理ユニット２から第１のデータ処理ユニット１にデータを転送するために利用される。
【００２３】
第１の記憶部３１は、さらに、第１のデータ処理ユニット１から第２のデータ処理ユニット２を介してプリンタ機構６のステータス情報などのバルクデータを転送する４バイトの第１のバッファ４１と、プリンタ機構６のエラーコマンドデータやホスト５から受信したスキャナ機構７のコマンドデータを転送する１バイトの第２のバッファ４２を備えている。第２の記憶部３２は、第２のデータ処理ユニット２を介してホスト５から第１のデータ処理ユニット１にプリンタ機構６で印刷するためのバルクデータを転送する８バイトの第３のバッファ４３と、ホスト５からプリンタ機構のコマンドデータを転送する１バイトの第４のバッファ４４とを備えている。
【００２４】
図２に通信ユニット４の概略構成を示してある。本例の通信ユニット４は、第１および第２の記憶部３１および３２を備えた通信機能部３３と、第１のデータ処理ユニット１のバス１６とのバスインターフェイス３４と、第２のデータ処理ユニット２のバス２６とのバスインターフェイス３５とを備えており、第１および第２の記憶部３１の各バッファ４１〜４４はバスインターフェイス３４および３５を介して第１のデータ処理ユニット１のバス１６と第２のデータ処理ユニット２のバス２６に接続されている。さらに、バスインターフェイス３４を介して、メインＣＰＵ１１から通信機能部３３に対し、バッファ４１〜４４にデータを入出力するためのアドレス、バッファ４１〜４４のいずれかを選択するチップセレクト信号ＣＥ、選択されたバッファに対してデータを入出力するためのライト
信号ＷＲおよびリード信号ＲＤが供給され、また、通信機能部３３からメインＣＰＵ１１に対しライトイネーブル示す割込み信号(φ２、φ４)やリードイネーブルを示す割込み信号(φ６、φ８)が出力される。一方、バスインターフェイス３５を介して、サブＣＰＵ２１から通信機能部３３に対し、バッファ４１〜４４にデータを入出力するためのアドレス、バッファ４１〜４４のいずれかを選択するチップセレクト信号ＣＥ、選択されたバッファに対してデータを入出力するためのライト信号ＷＲおよびリード信号ＲＤが供給され、また、通信機能部３３からサブＣＰＵ２１に対しライトイネーブル示す割込み信号(φ５、φ７)やリードイネーブルを示す割込み信号(φ１、φ３)が出力される。
【００２５】
各々のバッファ４１〜４４は、これらの信号に基づいてデータを記憶するために、データを記憶するメモリブロック５１、７１、６１および７５と、信号に基づいてこれらのメモリブロックを管理する管理ブロック５９、７２、６９および７６を備えている。
【００２６】
図３に第１のバッファ４１のさらに詳細な構成を示してある。第１のバッファ４１は、４個の８ビットのフリップフロップからなるメモリブロック５１と、このメモリブロック５１を管理する管理ブロック５９を備えている。管理ブロック５９は、メモリブロック５１に対するリードポインタやライトポインタの指定およびメモリブロック５１に格納されたデータ数をカウントする機能を備えたコントローラ５２と、このコントローラ用の各種の設定値またはパラメータを第１のデータ処理ユニット１のバス１６を介して設定可能なフリップフロップ５４とを備えている。また、コントローラ５２の制御の下でメインＣＰＵ１１に対する書き込みを許可する割込み信号φ２、およびサブＣＰＵ２１に対する読み出しを許可する割込み信号φ１を出力する割込み発生シーケンサ５３と、メインＣＰＵ１
１からメモリブロック５１へ書き込むデータを一時的に保持するフリップフロップ５５と、メインＣＰＵ１１からのチップセレクト信号ＣＥによりバス１６に含まれるアドレスバス１６ａに出力されたアドレスをデコードしてアクティブ信号ＡＣＴ１を出力する書き込み側のアドレスデコーダ５６と、サブＣＰＵ２１からのチップセレクト信号ＣＥによりバス２６に含まれるアドレスバス２６ａに出力されたアドレスをデコードしてアクティブ信号ＡＣＴ２を出力する読み出し側のアドレスデコーダ５７とを備えている。
【００２７】
したがって、管理ブロック５９では、メモリブロック５１に対するデータのリード／ライトがフリップフロップ５４の設定値にしたがってコントローラ５２により制御される。図４に、その制御動作をフローチャートを用いて示す。また、図５に、そのタイミングチャートを示す。まず、ステップ１０１において、コントローラ５２のデータカウンタがゼロ、すなわち、メモリブロック５１にデータが格納されていない状態で、アドレスデコーダ５６からのアクティブ信号ＡＣＴ１がコントローラ５２に入力され、メインＣＰＵ１１からのデータの書き込み要求が確認されると、ステップ１０２において、データカウンタがフルでないことを確認し、ステップ１０３でメモリブロック５１に１バイトのデータが書き込まれる（時刻ｔ１またはｔ９）。そして、ステップ１０４においてデータカウンタ
をアップさせ、ステップ１０５においてエンプティフラグを解除する。メインＣＰＵ１１からの書き込みが継続し、データカウンタがフルになるまで、１バイト単位でメモリブロック５１に書き込まれる（時刻ｔ１０、ｔ１１およびｔ１２）。
【００２８】
データカウンタがフルになるとメインＣＰＵ１１は書き込めなくなるので、時刻ｔ１３においてメインＣＰＵ１１からスタートトリガ（MC＿SND＿TRG）φ１０が出力される。ステップ１０６でそのトリガφ１０があると、ステップ１０７において、サブＣＰＵ２１に対して、リード許可の割込み信号（MCIF＿WR＿INT）φ１が出力される（時刻ｔ１４）。割込み要求φ１が出力された後、ステップ１０８において、アドレスデコーダ５７からのアクティブ信号ＡＣＴ２に基づいてサブＣＰＵ２１からのデータの読み出し要求があると、ステップ１０９において、データの読み出しが行なわれる（時刻ｔ１５）。読み出しが１バイト単位で行なわれると、ステップ１１０において、データカウンタをダウンさせ、データカウンタがゼロになるまでステップ１１２において、サブＣＰＵ２１に対して割込み信号（MCIF＿WR＿INT）φ１を出力し（時刻ｔ１６、ｔ１８、ｔ２０）し、サブＣＰＵ２１によりデータが読み出せるようにする（時刻ｔ１７、ｔ１９、ｔ２１）。
【００２９】
ステップ１１１において、データカウンタがゼロになると、ステップ１１３において、メインＣＰＵ１１に対して、書き込み許可の割込み信号（SCIF＿RD＿INT）φ２が出力され（時刻ｔ２２）、ステップ１１４において、エンプティフラグがセットされる。このため、メインＣＰＵ１１からデータが再び書き込める状態になる。
【００３０】
また、データカウンタがフルになっていない状態、たとえば、時刻ｔ１およびｔ２に書き込みがあっても、メインＣＰＵ１１からのスタートトリガ（MC＿SND＿TRG）φ１０が確認される（時刻ｔ３）と、上述したステップ１０７以降の処理が行なわれる。すなわち、サブＣＰＵ２１に対する読み出し許可の割込み信号φ１が出力され（時刻ｔ４）、サブＣＰＵ２１によるデータの読み出しが行われる。そして、読み出しが終了すると、データカウンタがゼロになるので、メインＣＰＵ１１に対して、再び、書き込み許可の割込み要求φ２が出力され（時刻ｔ８）、メインＣＰＵ１１からデータを書き込める状態になる。
【００３１】
図６に第３のバッファ４３の詳細を示してある。第３のバッファ４３は、８バイトのフリップフロップからなるメモリブロック６１と、これを管理する管理ブロック６９を備えている。管理ブロック６９は、リードポインタやライトポインタの指定およびメモリブロック６１に格納されたデータ数をカウントする機能を備えたコントローラ６２と、このコントローラ用の各種の設定値またはパラメータを第２のデータ処理ユニット２の内部バス２６を介して設定可能なフリップフロップ６４と、コントローラ６２の制御の下にメインＣＰＵ１１に対し読み出しを許可する割込み信号φ６およびサブＣＰＵ２１に対し書き込みを許可する割込み信号φ５を出力する割込み発生シーケンサ６３と、メインＣＰＵ１１からメモリブロック６１へ書き込むデータを一時的に保持するフリップフロップ６５と、
サブＣＰＵ２１からのチップセレクト信号ＣＥによりバス２６に含まれるアドレスバス２６ａに出力されたアドレスをデコードしてアクティブ信号ＡＣＴ３を出力する書き込み側のアドレスデコーダ６６と、メインＣＰＵ１１からのチップセレクト信号ＣＥによりバス１６に含まれるアドレスバス１６ａに出力されたアドレスをデコードしてアクティブ信号ＡＣＴ４を出力する読み出し側のアドレスデコーダ６７とを備えている。
【００３２】
第１のバッファ４１ではメインＣＰＵ１１によるデータの書き込みはデータカウンタがゼロのときにのみ行なわれるようになっていたのに対し、第３のバッファ４３ではデータカウンタがゼロ以外のときにもサブＣＰＵ２１によるデータの書き込みを行うことができる。このため、第３のバッファ４３は、ライトポインタカウンタ６８ａおよびリードポインタカウンタ６８ｂを備え、これらのカウンタ６８ａおよび６８ｂがコントローラ６２に制御されることにより、メモリブロック６１に書き込まれたデータが書き込まれた順番で読み出され、バッファ全体としては、一つのＦＩＦＯ（First In First Out）が構成される。
【００３３】
図７に管理ブロック６９の動作をフローチャートを用いて示してある。また、図８に、タイミングチャートを示してある。第２のデータ処理ユニット２のインターフェイス２９を介してホスト５からデータを受信し、第１のデータ処理ユニット１に第３のバッファ４３を介して供給するケースを考える。本例のデータ処理装置３では、ＣＰＵ１１および２１がＤＭＡコントローラ１１ａ、２１ａとしても機能し、データをＤＭＡ転送することができる。もちろん、これらのＣＰＵに加えてＤＭＡＣを各々のバス１６および２６に設けても良い。まず、管理ブロック６９が、サブＣＰＵ２１がＤＭＡリクエストの許可信号（DMA＿EN）φ１３を受け取ると（時刻ｔ３１）、ステップ１２２において、書き込み許可の割込み信号φ５（S_DREQ）をサブＣＰＵ２１に対してアサートする（時刻ｔ３２）。ステップ１２３において、サブＣＰＵ２１からチップセレクト信号ＣＥおよびアドレスを第３のバッファ４３に出力することによりデータの書き込み要求があると、ステップ１２４でデータカウンタがフルでなければ、ステップ１２５においてデータがメモリブロック６１に書き込まれる（時刻ｔ３３）。この時に、サブＣＰＵ２１に対してＤＭＡリクエストをネゲートする。データが書き込まれると、ステップ１２６でデータカウンタをアップし、ステップ１２７において、ライトポインタをアップする。そして、ステップ１２８において、エンプティフラグを解除し、ステップ１３０において、メインＣＰＵ１１に対して読み出し許可の割込み信号φ６を出力する（時刻ｔ３４）。この割込み信号φ６は、ステップ１２９において、データカウンタが「１」、すなわち、メモリブロック６１に１バイトのデータが書き込まれた時点で出力される。
【００３４】
ステップ１２３で、サブＣＰＵ２１からのデータの書き込み要求がなくなり、ステップ１３１で、割込み信号φ６を受けたメインＣＰＵ１１からチップセレクト信号ＣＥおよびアドレスを第３のバッファ４３に出力することによりデータの読み出し要求があると、メモリブロック６１のデータが読み出される。一方、サブＣＰＵ２１からデータを書き出している途中でも、メインＣＰＵ１１から読み出しの要求があると、メインＣＰＵ１１がデータを読み出せるようにする機能を備えている（時刻ｔ３５）。なお、サブＣＰＵ２１に対してＤＭＡリクエストがネゲートされていても、データカウンタがフルでなければ、サブＣＰＵ２１からのデータの書き込みは中断しない。
【００３５】
ステップ１３１において、メインＣＰＵ１１から読み出し要求があり、ステップ１３２でメモリブロック６１が空でないことが確認されると、コントローラ６２およびリードポインタカウンタ６８ｂによりメモリブロック６１の所定のポインタが指定され、ステップ１３３において、メインＣＰＵ１１のＤＭＡ機能によりデータが読み出される（時刻ｔ３６）。データが読み出されると、ステップ１３４において、データカウンタをダウンし、ステップ１３５において次に読み出すべきポインタの設定を行なう。本例では、１バイト単位でデータが読みされ、データの読み出しが終了するたびにメインＣＰＵ１１に対して割込み要求φ６が出力される。したがって、時刻ｔ３６でデータの読み出しがあると、時刻ｔ３７で再び割込み要求φ６がメインＣＰＵ１１に対して出力され、時刻ｔ３８でデー
タが読み出される。
【００３６】
このデータの読み出しが終了すると、ステップ１３２において、データカウンタがゼロになるので、ステップ１３６でサブＣＰＵ２１に対して書き込み許可の割り込み信号φ５が出力され、φ５が再びアサートされる（時刻ｔ３８）。その後、時刻ｔ３９、ｔ４１、ｔ４２およびｔ４７で１バイトのデータがメモリブロック６１にそれぞれ書き込まれ、データが書き込まれるたびにデータカウンタやライトポインタの設定が行なわれる。そして、時刻ｔ３９で１回目のデータの書き込みが終わると、時刻ｔ４０でサブＣＰＵ２１に対してφ５をネゲートし、メインＣＰＵ１１に対しては割込み要求φ６を出力する。この割込み要求φ６により、時刻ｔ４３でデータの読み出しが行なわれ、この後は、データカウンタがゼロになるまで、割込み要求φ６が出力され（時刻ｔ４４、ｔ４６およびｔ４９）、データの読み出しが繰り返される（時刻ｔ４５、ｔ４８およびｔ５０）。データカウンタがゼロになると、再びφ５をサブＣＰＵ２１に対してアサートし（時刻ｔ５１）、上記の処理を繰り返すことにより、第１のＣＰＵ１１の側に全てのデータが転送される。
【００３７】
コマンドデータ用の第２のバッファ４２および第４のバッファ４４は、１バイト（８ビット）のメモリブロック７１および７５をそれぞれ備えており、それらのメモリブロックを各々管理する管理ブロック７２および７６を備えている（図２参照）。そして、管理ブロック７２および７６は、上記と同様にコントローラと割込み発生シーケンサを備えている。このため、第２のバッファ４２の管理ブロック７２からはメインＣＰＵ１１に対して書き込みを許可する割込み信号φ４と、サブＣＰＵ２１に対して読み出しを許可する割込み信号φ３が出力され、第４のバッファ４４の管理ブロック７６からはサブＣＰＵ２１に対して書き込みを許可する割込み信号φ７と、メインＣＰＵ１１に対して読み出しを許可する割込み信号φ８が出力される。
【００３８】
本例のデータ処理装置３は、通信ユニット４に設けられた複数のバッファ４１〜４４を利用して第１のデータ処理ユニット１および第２のデータ処理ユニット２の間でデータの交換が行なわれる。そして、これらのバッファ４１〜４４は、メインＣＰＵ１１からサブＣＰＵ２１に対してデータを転送するバッファ４１および４２と、サブＣＰＵ２１からメインＣＰＵ１１に対してデータを転送するバッファ４３および４４に特化しているので、これらのＣＰＵ１１および２１の間で交換するデータの入出力が競合した場合でも、同時に出力したり、同時に入力することが可能となる。また、転送相手のＣＰＵから転送されたデータを読み出さなくても、転送相手のＣＰＵに対しデータを出力することが可能となり、データ転送の自由度が大幅に向上する。
【００３９】
このため、各バッファにデータが書き込まれて読み出し可能になったか否か、あるいはデータが読み出されて書き込み可能になったか否かを、書き込み側のＣＰＵあるいは読み出し側のＣＰＵにそれぞれ通知するだけでメインＣＰＵ１１およびサブＣＰＵ２１の間でデータを交換することができる。たとえば、上記では、バッファ４１においては、管理ブロック５９からサブＣＰＵ２１に対して読み出し許可の割込み信号φ１が供給され、メインＣＰＵ１１に対して書き込み許可の割込み信号φ２が供給されることにより、メモリブロック５１を介してデータがメインＣＰＵ１１からサブＣＰＵ２１に対して転送される。そして、各々のＣＰＵ１１および２１においては、転送相手のＣＰＵの処理状況を把握する必要はなく、書き込みが可能になれば書き込み、読み出しが可能になれば読み出すとい
う単純な処理でＣＰＵ１１および２１の間でデータを交換できる。
【００４０】
同様に、バッファ４３においては、管理ブロック６９からサブＣＰＵ２１に対して書き込み許可の割込み信号φ５が出力され、メインＣＰＵ１１に対して読み出し許可の割込み信号φ６が出力されることにより、メモリブロック６１を介してサブＣＰＵ２１からメインＣＰＵ１１に対してデータを非同期に転送することができる。また、バッファ４２においては、管理ブロック７２からサブＣＰＵ２１に対して読み出し許可の割込み信号φ３が出力され、メインＣＰＵ１１に対して書き込み許可の割込み信号φ４が出力されることにより、メモリブロック７１を介してメインＣＰＵ１１からサブＣＰＵ２１に対してコマンドデータを転送することができる。さらに、バッファ４４においては、管理ブロック７６からサブＣＰＵ２１に対して書き込み許可の割込み信号φ７が出力され、メインＣＰＵ１
１に対して読み出し許可の割込み信号φ８が出力されることにより、メモリブロック７５を介してサブＣＰＵ２１からメインＣＰＵ１１に対してコマンドデータを非同期で転送することができる。
【００４１】
さらに、メインＣＰＵ１１からサブＣＰＵ２１に対してプリンタのステータスなどのバルクデータを転送するバッファ４１と、コマンドデータを転送するバッファ４２とが別々に用意されており、また、サブＣＰＵ２１からメインＣＰＵ１１に印字データや画像データなどバルクデータを転送するバッファ４３と、コマンドデータを転送するバッファ４４とが別々に用意されている。このため、転送先のＣＰＵは、データを読み出すバッファが判別されることにより、すなわち、読み出し許可が通知される割込み信号をデコードすることにより、転送されるデータがＣＰＵによりデコードする必要があるコマンドデータか、デコードする必要がないバルクデータであるかを事前に判断することができる。一方、転送元のＣＰＵは、コマンドデータかバルクデータに応じて転送するバッファのアドレスを切り替えることにより、その種別を転送先のＣＰＵに伝達できることになる。
したがって、転送先のＣＰＵに対して、転送するデータの種類を、そのデータを書き込むバッファを変えることにより伝達することができる。そして、それぞれのバッファを用いたデータの転送は、読み出し許可の割込み信号および書き込み許可の割込み信号により、各々のＣＰＵが独立して制御することができる。
【００４２】
したがって、本例のデータ処理装置３では、第１のデータ処理ユニット１と第２のデータ処理ユニット２との間でバッファ４１〜４４を用いて非同期でバルクデータおよびコマンドデータを転送できるにも関わらず、転送されるデータの種別をＣＰＵがデコードしなくても判断することができるという機能を備えている。このため、各ＣＰＵは、送信元のＣＰＵから情報を得なくても、また、転送されたデータをすべて転送先のＣＰＵが解析しなくても、転送されたデータの種類を判別できる。したがって、コマンドデータ用のバッファにより転送されたデータについては転送先のＣＰＵが解釈するとしても、バルクデータ用のバッファにより転送されたデータについては転送先のＣＰＵでは解釈する処理を省くことが可能となり、データ転送にかかるＣＰＵの負荷を軽減することが可能となる。
【００４３】
したがって、本例のデータ処理装置３を採用した複合装置１０では、双方のＣＰＵ１１および２１の処理動作を協調制御しなくても、通信ユニット４のバッファ４１〜４４に対して各々のＣＰＵ１１および２１が独立してデータを入力あるいは出力することにより双方のＣＰＵ１１および２１の間でデータを交換することができるようになっている。このため、双方のＣＰＵ１１および２１、すなわち、プリンタ機構６を制御する第１のデータ処理ユニット１のプログラミングと、スキャナ機構７を制御する第２のデータ処理ユニット２のプログラミングは非常に簡易になる。また、データ交換が必要な処理が発生しても、双方のＣＰＵ１１および２１は双方の処理を待たなくてもデータを入出力できるので、データの処理速度の低下を防止することができ、処理速度の速い複合装置１０を提供できる。
【００４４】
図９〜図１２は、複合装置がＰＯＳプリンタ１０として稼動したときに、第２のデータ処理ユニット２の外部インターフェイス２９を介してホスト装置５との間でプリンタ機構６およびスキャナ機構７に関するコマンドデータおよびバルクデータを交換するように接続されている例である。このケースでは、第１のデータ処理ユニット１に関するバルクデータおよびコマンドデータが通信ユニット４を介して入出力される。まず、第１のデータ処理ユニット１から出力されるバルクデータは、図９に示すように、第１のバッファ４１を用いて第１のデータ処理ユニット１から第２のデータ処理ユニット２に転送される。バルクデータとしては、プリンタ機構６の状態を通知するデータ（ＡＳＢデータ）があり、このデータは第２のデータ処理ユニット２の外部インターフェイス２９からホスト装置５にフィードバックされるデータである。
ＡＳＢデータの他にも、第１のデータ処理ユニット１で、チェックの磁気インクデータの読取機構（ＭＩＣＲ）を制御する場合は、そのＭＩＣＲで読み取ったデータなどがある。
【００４５】
第１のデータ処理ユニット１から第２のデータ処理ユニット２に第１のバッファ４１を介してデータ転送する場合、バッファ内が空であることを示す、書き込みを許可する割込み信号φ２を受け取ると、第１のデータ処理ユニット１のメインＣＰＵ１１によりデータが書き込まれる。第１のバッファ４１にメインＣＰＵ１１からデータの書き込みがあると読み出しを許可する割込み信号φ１が第２のデータ処理ユニット２のサブＣＰＵ２１に供給され、サブＣＰＵ２１は第１のバッファ４１からデータを読み出す。そして、一旦、ＲＡＭ２２に読み出したデータを記憶してからＵＳＢコントローラ２４の制御の元にインターフェイス２９からホスト５に出力するか、あるいは、バッファ４１が読み出し可能となった時点で、ＵＳＢコントローラ２４の制御の元にインターフェイス２９からホスト５に出力する。第１のバッファ４１は、サブＣＰＵ２１がデコードあるいは解釈する必要のないデータに割り当てられているので、そのバッファ４１が割込み信号φ１により読み出し可能になるとサブＣＰＵ２１は転送されたデータをデコードすることなく、インターフェイス２９から出力することができる。
【００４６】
第１のデータ処理ユニット１から第２のデータ処理ユニット２に対するコマンドデータは、図１０に示したように、第２のバッファ４２を介して転送される。
このように転送されるコマンドデータとしては、プリンタ機構６と連動してスキャナ機構７を制御する必要がある場合に、メインＣＰＵ１１からサブＣＰＵ２１に供給されるコマンドデータがある。あるいは、複合装置１０の動作コマンドデータが全てメインＣＰＵ１１により解釈されるようになっていると、インターフェイス２９を介してホスト５から受信したコマンドデータはいったん第１のデータ処理ユニット１に転送された後に、第２のデータ処理ユニット２に戻されることになる。第２のバッファ４２を用いてコマンドデータを転送する場合も、上記と同様であり、書き込みを許可する割込み信号φ４によりメインＣＰＵ１１がコマンドデータをバッファ４２に書き込み、読み込みを許可する割込み信号φ３によりサブＣＰＵ２１がコマンドデータを読み込む。そして、このケースでは、割込み信号φ３がコマンドデータが転送される第２のバッファ４２にデータが入力されたことを示しているので、サブＣＰＵ２１は第２のバッファ４２から読み込んだデータをデコードし、それに応じた処理を第２のデータ処理ユニット２で行う。
【００４７】
第１のデータ処理ユニット１に入力されるバルクデータは、図１１に示すように、第３のバッファ４３を用いて第２のデータ処理ユニット２から第１のデータ処理ユニット１に転送される。バルクデータの例としては、ホスト装置５から送信される印刷データがあり、本例では、通信ユニット４を介して８バイト単位で第１のデータ処理ユニット１に入力される。この第３のバッファ４３を用いてデータを転送する場合も、第２のデータ処理ユニット２に出力される書き込み許可を示す割込み信号φ５と、第１のデータ処理ユニット１に出力される読み出し許可を示す割込み信号φ６により第３のバッファ４３に対するサブＣＰＵ２１の書き込みとメインＣＰＵ１１によりデータの読み出しとが非同期で制御される。そして、第３のバッファ４３はバルクデータの転送に割り当てられているので、各々のＣＰＵ２１および１１では転送するデータの内容を解釈する必要がなく、上記にて説明したようにＤＭＡ転送が可能であり、本例ではサブＣＰＵ２１およびメインＣＰＵ１１がＤＭＡＣとして機能する。したがって、サブＣＰＵ２１がＤＭＡＣとなってインターフェイス２９から第３のバッファ４３に印刷データをＤＭＡ転送し、一方、メインＣＰＵ１１がＤＭＡＣとなって第３のバッファ４３からＲＡＭ１２に印刷データをＤＭＡ転送する。そして、ＤＭＡリクエスト用の信号として割込み信号φ５およびφ６が使用される。
【００４８】
第２のデータ処理ユニット２から第１のデータ処理ユニット１に対するコマンドデータは、図１２に示したように、第４のバッファ４４を介して転送される。
このように転送されるコマンドデータとしては、ホスト５からプリンタ機構６を制御するためのコマンドデータがある。第４のバッファ４４を用いてコマンドデータを転送する場合も、上記と同様であり、書き込みを許可する割込み信号φ７によりサブＣＰＵ２１がコマンドデータをバッファ４４に書き込み、読み込みを許可する割込み信号φ８によりメインＣＰＵ１１がコマンドデータを読み込む。
そして、そのコマンドデータに従ってプリンタ機構６を制御する。上述したＭＩＣＲなどの、複合装置１０を構成する他の機構も第１のデータ処理ユニット１で制御している場合、それらの機構に対するコマンドデータを受信し解釈して制御する。
【００４９】
このような複合装置１０は、たとえば、第１のデータ処理ユニット１を中心としてプリンタ機構６をベースに多機能な装置を開発する場合に適している。本例では、スキャナ機構７の機能とそれを制御する第２のデータ処理ユニット２とを追加することにより、プリンタ機構６とスキャナ機構７との機能を備え、ホスト５からは１つの周辺機器として制御することができる複合装置１０を提供している。このような複合装置１０を開発する場合に、すべての機能、すなわち、プリンタ機構６とスキャナ機構７とを制御する単一のデータ処理ユニットを開発することも可能であり、処理効率などの点からは望ましいといえる。しかしながら、開発期間が長くなり、開発費用も高くなる。さらに、プリンタ機構６として開発し、実績のある制御ユニット１を利用することができないし、スキャナ機構７の
ために開発した第２のデータ処理ユニット２があったとしても、その資源も利用できない。
【００５０】
これに対し、本例の複合装置１０では、それぞれに実績のある制御ユニット１および２を通信ユニット４で組み合わせることにより、プリンタおよびスキャナとしての機能を有する装置を提供している。したがって、開発期間およびコストは大幅に低減することが可能であり、さらに、プリンタおよびスキャナとして実績のある制御ユニットを利用できるために信頼性の高い複合装置を提供できる。
そして、ホスト５との通信インターフェイスとしても、各々の制御ユニット１および２に、種類の異なる通信インターフェイスが搭載されているのであれば、それらのいずれか適した方の通信インターフェイスを利用して、プリンタ機構６およびスキャナ機構７を制御できるというメリットもある。たとえば、プリンタ用として開発された第１のデータ処理ユニット１であれば、パラレルインターフェイスであるセントロニクスインターフェイスが多くの場合、搭載されている。一方、スキャナ用として開発された第２のデータ処理ユニット２であれば、高速シリアル転送が可能なＵＳＢインターフェイスやＩＥＥＥ１３９４インターフェイス、あるいは、ＳＣＳＩやＲＳ２３２Ｃなどが搭載されている場合が多い。したがって、これらのインターフェイスのうち、適当なものを選択して利用すること
ができる。
【００５１】
そして、本例の複合処理装置１０であれば、それぞれのデータ処理ユニット１および２に搭載されているＣＰＵ１１および２１が独立してバッファ４１〜４４にデータを書き込みあるいは読み出すことによりデータ処理ユニット１および２の間でデータ転送できる。このため、複合装置１０として機能させるプログラミングも極めて容易となり、また、各々のＣＰＵ１１および２１が独立してデータを入出力できるので、複合化することによりデータ処理速度が低下することも防止できる。
【００５２】
さらに、コマンドデータとバルクデータでバッファを分離してあるので、ＣＰＵは解釈が不要なバルクデータについては解釈せずにそのデータを取り扱うことができる。このため、読み出した全てのデータについて解釈することが不要になり、印刷データなどのバルクデータを解釈する処理がボトルネックとなってデータ処理ユニット間のデータ交換の効率が低下するのを防ぐことができる。したがって、第２のデータ処理ユニット２で取得したホスト装置５からの印刷データを第１のデータ処理ユニット１で解釈することなく、ゲートアレイ１４に転送してプリンタ機構６で印刷することが可能であり、印刷データを受信してからプリントが開始されるまでの間隔が短い複合装置としてＰＯＳプリンタ１０を実現できる。
【００５３】
上記では、第２のデータ処理ユニット２に設けられている外部インターフェイス２９を用いてホスト５と通信する例を説明したが、第１のデータ処理ユニット１に設けられている外部インターフェイス１９を用いてホスト装置５と通信することももちろん可能である。この場合、スキャナ機構７で生成された画像データを第２のデータ処理ユニット２から通信ユニット４を介して第１のデータ処理ユニット１の外部インターフェイス１９からホスト装置５に送信することになる。
したがって、バルクデータ転送用の第３のバッファ４３を用いて第２のデータ処理ユニット２から第１のデータ処理ユニット１にデータ転送することが望ましい。
【００５４】
しかしながら、本例のデータ処理ユニット１においては、ホスト装置５から受信した印刷データをプリンタ機構６で印刷する用途して設計されているために、データ処理ユニット１の外部インターフェイス１９がホスト装置５から高速で印刷データを受信できるが、データ処理ユニット１からホスト装置５に対して大量のデータを送信できる仕様となっていない。したがって、８バイトの第３のバッファ４３を用いてデータ転送を行っても、第１のデータ処理ユニット１とホスト装置５との通信がボトルネックとなる可能性がある。このため、本例においては、図１３に示すように、外部インターフェイス１９を使用してスキャナのデータをホスト装置５に送信する場合は、通信ユニット４の１バイトの第４のバッファ４４を使用している。
【００５５】
第４のバッファ４４はコマンドデータ用であり、第４のバッファ４４から読み出されたスキャナのデータがメインＣＰＵ１１でデコードされる。このため、スキャナのデータを第２のデータ処理ユニット２から第１のデータ処理ユニット１に転送する前処理として、第２のデータ処理ユニット２からスキャナのデータを転送する処理を開始するコマンドデータを第１のデータ処理ユニット１に送信し、第１のデータ処理ユニット１では、そのコマンドデータを解釈した後は、第４のバッファ４４をバルクデータ送信用として処理するようにしている。
【００５６】
本例の第１のデータ処理ユニット１は、さらに、外部インターフェイス１９として、非同期のシリアルタイプ（ＲＳ２３２Ｃ）の通信と、それ以外、たとえばパラレル通信を選択することができる。非同期シリアル転送の場合は、図１３の破線Ｘで示すように、メインＣＰＵ１１に内蔵されているＵＡＲＴ（Universal Asynchronous Receiver Transmitter）機能を利用して外部インターフェイス１９からホスト装置５にデータを送信する。非同期シリアル転送以外の場合は、一点鎖線Ｙで示すように、メインＣＰＵ１１はゲートアレイ１４にホスト装置５に送信すべきデータを書き込み、次に、ゲートアレイ１４に搭載された通信方式に応じたコントロールデバイスにより外部インターフェイス１９からホスト装置５に対しデータが送信される。
【００５７】
このような構成となっている第１のデータ処理ユニット１を考慮すると、第２のデータ処理装置２にデータを転送する通信ユニット４のバッファ構成はゲートアレイ１４の送信バッファおよび受信バッファと同一の記憶容量であることが望ましい。このため、本例の複合装置１０においては、通信ユニット４の第１のバッファ４１が４バイト、第３のバッファが８バイトになっている。このように、外部インターフェイス１９のバッファ容量と、第２のデータ処理ユニット２に転送するための通信ユニット４のバッファ容量を一致させておくと、メインＣＰＵ１１においては、送受信先にバッファのアドレスを変更するだけで、第２のデータ処理ユニット２とのデータ転送に対応することが可能になり、さらに、第２のデータ処理ユニット２を組み合わせた複合装置１０の設計が容易となる。
【００５８】
したがって、上記で説明した各バッファの記憶容量は例示にすぎず、本発明を限定するものではない。また、バルクデータをＤＭＡ転送する例を説明しているがこれに限定されるものでもない。また、本発明のデータ入出力装置は、上述したＰＯＳプリンタに適した複合装置に限定されることはなく、ＣＰＵを搭載した複数のデータ処理ユニットの間でデータ転送を行うデータ処理装置の全てに対して好適なものである。
【符号の説明】
【００５９】
１    第１のデータ処理ユニット
２    第２のデータ処理ユニット
３    データ処理装置
４    通信ユニット
５    ホスト装置
６    プリンタ機構
７    スキャナ機構
１０  ＰＯＳプリンタ（データ入出力装置）
１１  メインＣＰＵ
１１ａ、２１ａ  ＤＭＡ機能
１９、２９  外部インターフェイス
２１  サブＣＰＵ
３１  第１の記憶部
３２  第２の記憶部
４１  第１のバッファ
４２  第２のバッファ
４３  第３のバッファ
４４  第４のバッファ
【図１】
2010152926.tif 000003
【図２】
2010152926.tif 000004
【図３】
2010152926.tif 000005
【図４】
2010152926.tif 000006
【図５】
2010152926.tif 000007
【図６】
2010152926.tif 000008
【図７】
2010152926.tif 000009
【図８】
2010152926.tif 000010
【図９】
2010152926.tif 000011
【図１０】
2010152926.tif 000012
【図１１】
2010152926.tif 000013
【図１２】
2010152926.tif 000014
【図１３】
2010152926.tif 000015
【手続補正書】
【提出日】平成22年3月25日(2010.3.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データを入力および／または出力可能なプリンタ機構と、
データを入力および／または出力可能なスキャナー機構と、
前記プリンタ機構を制御する第１のＣＰＵを備えた第１のデータ処理ユニットと、
前記スキャナー機構を制御する第２のＣＰＵを備えた第２のデータ処理ユニットと、
これら第１および第２のデータ処理ユニットの間でデータ交換可能な通信手段とを有し、
この通信手段は、前記第１のデータ処理ユニットから前記第２のデータ処理ユニットにデータを転送するために利用される第１の記憶手段と、前記第２のデータ処理ユニットから前記第１のデータ処理ユニットにデータを転送するために利用される第２の記憶手段とを有する複合装置と、
当該複合装置の前記第１のデータ処理ユニットに接続されたホスト装置とからなる、
ことを特徴とするデータ入出力装置。
【請求項２】
前記第１の記憶手段は、前記第１のデータ処理ユニットから前記第２のデータ処理ユニットに第１のバルクデータを転送する第１のバッファと、コマンドデータを転送する第２のバッファとを備え、
前記第２の記憶手段は、前記第２のデータ処理ユニットから前記第１のデータ処理ユニットに第２のバルクデータを転送する第３のバッファと、コマンドデータを転送する第４のバッファとを備え、
前記スキャナ機構で生成された画像データを前記第２のデータ処理ユニットから前記通信手段及び前記第１のデータ処理ユニットの外部インタフェースを介して前記ホスト装置に転送する際に、前記通信手段の第４のバッファを使用して前記画像データを転送する、  ことを特徴とする請求項１に記載のデータ入出力装置。
【請求項３】
前記画像データを第２のデータ処理ユニット２から第１のデータ処理ユニット１に転送する前処理として、第２のデータ処理ユニット２から前記画像データを転送する処理を開始するコマンドデータを第１のデータ処理ユニット１に送信し、第１のデータ処理ユニット１では、そのコマンドデータを解釈した後は、第４のバッファを画像データ送信用として処理する、
ことを特徴とする請求項２に記載のデータ入出力装置。
【請求項４】
前記外部インターフェイスとして非同期のシリアルタイプの場合は、、前記第１のデータ処理ユニットに内蔵されているＵＡＲＴ機能を利用して前記外部インターフェイスから前記ホスト装置に前記画像データを転送する、
ことを特徴とする請求項３に記載のデータ入出力装置。
【請求項５】
前記外部インターフェイスとして非同期のシリアルタイプ以外の場合は、
前記第１のデータ処理ユニットのゲートアレイに前記ホスト装置に送信すべきデータを書き込み、次に、当該ゲートアレイに搭載された通信方式に応じたコントロールデバイスにより前記外部インターフェイスからホスト装置に対して前記画像データを転送する、
ことを特徴とする請求項３に記載のデータ入出力装置。
【請求項６】
前記第４のバッファの容量と、前記外部インタフェースのバッファ容量とを、一致させる、
ことを特徴とする請求項４又は５に記載のデータ入出力装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
このため、本発明においては、
データを入力および／または出力可能なプリンタ機構と、
データを入力および／または出力可能なスキャナー機構と、
前記プリンタ機構を制御する第１のＣＰＵを備えた第１のデータ処理ユニットと、
前記スキャナー機構を制御する第２のＣＰＵを備えた第２のデータ処理ユニットと、
これら第１および第２のデータ処理ユニットの間でデータ交換可能な通信手段とを有し、
この通信手段は、前記第１のデータ処理ユニットから前記第２のデータ処理ユニットにデータを転送するために利用される第１の記憶手段と、前記第２のデータ処理ユニットから前記第１のデータ処理ユニットにデータを転送するために利用される第２の記憶手段とを有する複合装置と、
当該複合装置の前記第１のデータ処理ユニットに接続されたホスト装置とからなる、
ことを特徴とする。
また、前記第１の記憶手段は、前記第１のデータ処理ユニットから前記第２のデータ処理ユニットに第１のバルクデータを転送する第１のバッファと、コマンドデータを転送する第２のバッファとを備え、
前記第２の記憶手段は、前記第２のデータ処理ユニットから前記第１のデータ処理ユニットに第２のバルクデータを転送する第３のバッファと、コマンドデータを転送する第４のバッファとを備え、
前記スキャナ機構で生成された画像データを前記第２のデータ処理ユニットから前記通信手段及び前記第１のデータ処理ユニットの外部インタフェースを介して前記ホスト装置に転送する際に、前記通信手段の第４のバッファを使用して前記画像データを転送する、  ことを特徴とする請求項１に記載のデータ入出力装置。
また、前記画像データを第２のデータ処理ユニット２から第１のデータ処理ユニット１に転送する前処理として、第２のデータ処理ユニット２から前記画像データを転送する処理を開始するコマンドデータを第１のデータ処理ユニット１に送信し、第１のデータ処理ユニット１では、そのコマンドデータを解釈した後は、第４のバッファを画像データ送信用として処理する、
ことを特徴とする請求項２に記載のデータ入出力装置。
また、前記外部インターフェイスとして非同期のシリアルタイプの場合は、、前記第１のデータ処理ユニットに内蔵されているＵＡＲＴ機能を利用して前記外部インターフェイスから前記ホスト装置に前記画像データを転送する、
ことを特徴とする請求項３に記載のデータ入出力装置。
また、前記外部インターフェイスとして非同期のシリアルタイプ以外の場合は、
前記第１のデータ処理ユニットのゲートアレイに前記ホスト装置に送信すべきデータを書き込み、次に、当該ゲートアレイに搭載された通信方式に応じたコントロールデバイスにより前記外部インターフェイスからホスト装置に対して前記画像データを転送する、
ことを特徴とする請求項３に記載のデータ入出力装置。
また、前記第４のバッファの容量と、前記外部インタフェースのバッファ容量とを、一致させることを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
参考例では、第１のＣＰＵを備えた第１のデータ処理ユニットに対しては書き込み専用で第２のＣＰＵを備えた第２のデータ処理ユニットに対しては読み出し専用となる第１の記憶手段と、第１のデータ処理ユニットに対しては読み出し専用で第２のデータ処理ユニットに対しては書き込み専用となる第２の記憶手段とを備えた通信手段を仲介させてデータ処理ユニット間のデータ交換を行なうようにしている。すなわち、本発明のデータ処理装置は、第１のＣＰＵを備えた第１のデータ処理ユニットと、第２のＣＰＵを備えた第２のデータ処理ユニットと、これら第１および第２のデータ処理ユニットの間でデータ交換が可能な通信手段とを有し、この通信手段は、第１のデータ処理ユニットから第２のデータ処理ユニットにデータを転送するために利用される第１の記憶手段と
、第２のデータ処理ユニットから第１のデータ処理ユニットにデータを転送するために利用される第２の記憶手段とを有する。このようなアーキテクチャを採用することにより、第１のデータ処理ユニットから第２のデータ処理ユニットにデータを転送するときには第１の記憶手段を用い、第２のデータ処理ユニットから第１のデータ処理ユニットにデータを転送するときには第２の記憶手段を用いる本発明のデータ入出力方法を採用できる。
このデータ処理装置であると、第１および第２のＣＰＵの間で交換するデータの入出力が競合した場合でも、同時に出力したり、同時に入力することは可能となる。また、転送されたデータを読み出さなくても、相手となるＣＰＵに対しデータを出力することが可能となり、データ転送の自由度が大幅に向上する。このため、第１の記憶手段にデータが書き込まれると第２のＣＰＵに信号を送り、第１の記憶手段からデータが読み出されると第１のＣＰＵに信号を送る第１の信号出力手段あるいは工程と、第２の記憶手段にデータが書き込まれると第１のＣＰＵに信号を送り、第２の記憶手段からデータが読み出されると第２のＣＰＵに信号を送る第２の信号出力手段あるいは工程とを設け、各信号出力手段あるいは工程で各ＣＰＵに送られてくる信号に基づき、第１および第２の記憶手段に所望の
データを入出力することにより第１および第２のＣＰＵの間でデータを交換することができる。したがって、双方のＣＰＵの処理動作を協調制御しなくても、通信手段の第１および第２の記憶手段に対してデータを入力あるいは出力することにより双方のＣＰＵの間でデータを交換することができる。このため、双方のＣＰＵのプログラミングは簡易になり、また、双方のＣＰＵの処理を待たなくてもデータを入出力できるので、処理速度を向上できる。