(57)【要約】【課題】プロセッサコア間の通信を行う印刷装置であって、共有メモリーを介したコア間通信によるデータの受け渡しを効率的に行うことのできる印刷装置等を提供する。【解決手段】印刷装置が、第１ファームウェアで操作される第１プロセッサコアと、第２ファームウェアで操作される第２プロセッサコアと、前記第１プロセッサコアと前記第２プロセッサコアとの間で受け渡されるデータを記憶する共有メモリーと、を備え、前記第２プロセッサコアは、前記共有メモリーにおけるデータの書き始めのアドレスと、前記共有メモリーに記憶が可能なデータのサイズを前記第１プロセッサコアに指定し、前記第１プロセッサコアは、前記第２プロセッサコアが指定した前記アドレスと前記サイズに基づいて、前記共有メモリーへデータを記憶する。【選択図】図１
2018030283.tif 000002
【特許請求の範囲】
【請求項１】
第１ファームウェアで操作される第１プロセッサコアと、
第２ファームウェアで操作される第２プロセッサコアと、
前記第１プロセッサコアと前記第２プロセッサコアとの間で受け渡されるデータを記憶
する共有メモリーと、を備え、
前記第２プロセッサコアは、前記共有メモリーにおけるデータの書き始めのアドレスと
、前記共有メモリーに記憶が可能なデータのサイズを前記第１プロセッサコアに指定し、
前記第１プロセッサコアは、前記第２プロセッサコアが指定した前記アドレスと前記サ
イズに基づいて、前記共有メモリーへデータを記憶する
ことを特徴とする印刷装置。
【請求項２】
請求項１において、
指定される前記アドレスは、前記共有メモリーに最後に記憶されたデータの直後のアド
レスである
ことを特徴とする印刷装置。
【請求項３】
請求項１または２において、
前記第１ファームウェアはネットワークの制御を行わせ、前記第２ファームウェアは、
印刷処理の制御を行わせる
ことを特徴とする印刷装置。
【請求項４】
請求項１乃至３のいずれか１項において、
指定される前記サイズは、印刷に係る１トランザクション分の印刷データが収まるサイ
ズである
ことを特徴とする印刷装置。
【請求項５】
請求項１乃至４のいずれか１項において、
前記第１プロセッサコアは、ホスト装置からネットワークを介して印刷データを受信し
、前記共有メモリーへ前記印刷データを記憶し、
前記第２プロセッサコアは、前記共有メモリーから前記印刷データを読み出す
ことを特徴とする印刷装置。
【請求項６】
第１ファームウェアで操作される第１プロセッサコアと、第２ファームウェアで操作さ
れる第２プロセッサコアと、前記第１プロセッサコアと前記第２プロセッサコアとの間で
受け渡されるデータを記憶する共有メモリーと、を有する印刷装置の制御方法であって、
前記第２プロセッサコアが、前記共有メモリーにおけるデータの書き始めのアドレスと
、前記共有メモリーに記憶が可能なデータのサイズを前記第１プロセッサコアに指定し、
前記第１プロセッサコアが、前記第２プロセッサコアが指定した前記アドレスと前記サイ
ズに基づいて、前記共有メモリーへデータを記憶する
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサコア間の通信を行う印刷装置等に関し、特に、共有メモリーを介
したコア間通信によるデータの受け渡しを効率的に行うことのできる印刷装置等に関する
。
【背景技術】
【０００２】
従来、印刷処理やネットワーク制御等の複数処理を並行して実行するために、少なくと
も２つのプロセッサコアを用いた印刷装置が知られている。このように複数のプロセッサ
コアを用いた印刷装置においては、コア間通信の際、共有メモリーを使用する場合がある
。その場合の一例として、共有メモリーとして、固定サイズ（例えば、４キロバイト）の
メモリーを２面（２ブロック分、合計で８キロバイト）備え、それらを交互に使用してデ
ータの受け渡しをする場合がある。このような２面の構成の場合、具体的には最初のデー
タを１面で受信すると、次のデータはもう１つの面で受信する。そして、その後のデータ
は、最初のデータを受信した面においてデータが読み出されてから受信する、というよう
に、プロセッサコア間のデータの受け渡し処理が行われていく。
【０００３】
なお、本発明に関連する技術として、メモリーに書き込まれるべきデータが取り得る最
大データ量が所定のデータ量以上である場合、メモリーを最大データ量で分割した固定領
域を生成し、空いている固定領域にデータを書き込む固定長制御処理を行う技術が提案さ
れている（下記特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１９４８４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来の２面構成の場合、ホスト装置から少量のサイズ（例えば
、１バイト）が連続して送られ、共有メモリーの２面の両方を使用した場合には、１面で
受信したデータが読み出されるまでは、その後のデータを共有メモリーに送れずに処理が
止まってしまい、結果、データの受け渡しの処理が滞ってしまうという課題がある。また
、データの受け渡しの処理が滞ってしまうと、読み出し側の処理が滞り、例えば、印刷処
理の速度にデータの供給が間に合わず、印刷処理の中断を招いてしまう虞がある。この場
合、印刷結果に白筋が入ってしまう等の弊害が生じる可能性がある。
【０００６】
そこで、本発明の目的は、プロセッサコア間の通信を行う印刷装置であって、共有メモ
リーを介したコア間通信によるデータの受け渡しを効率的に行うことのできる印刷装置、
等を提供することである。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために、本発明の一つの側面は、印刷装置が、第１ファームウェ
アで操作される第１プロセッサコアと、第２ファームウェアで操作される第２プロセッサ
コアと、前記第１プロセッサコアと前記第２プロセッサコアとの間で受け渡されるデータ
を記憶する共有メモリーと、を備え、前記第２プロセッサコアは、前記共有メモリーにお
けるデータの書き始めのアドレスと、前記共有メモリーに記憶が可能なデータのサイズを
前記第１プロセッサコアに指定し、前記第１プロセッサコアは、前記第２プロセッサコア
が指定した前記アドレスと前記サイズに基づいて、前記共有メモリーへデータを記憶する
、ことである。
【０００８】
これにより、第１プロセッサコア及び第２プロセッサコアのコア間通信において、共有
メモリーを効率よく使用することができ、共有メモリーへのデータの書き込みが滞ること
を減少させることができ、通信パフォーマンスを向上させることができる。
【０００９】
更に、上記発明において、その好ましい態様は、指定される前記アドレスは、前記共有
メモリーに最後に記憶されたデータの直後のアドレスである、ことを特徴とする。
【００１０】
これにより、データが共有メモリーに隙間なく書きこまれ、共有メモリーのリソースを
無駄なく効率的に使用できる。
【００１１】
更にまた、上記発明において、その好ましい態様は、前記第１ファームウェアはネット
ワークの制御を行わせ、前記第２ファームウェアは、印刷処理の制御を行わせる、ことを
特徴とする。
【００１２】
これにより、ネットワーク通信の制御と印刷処理の制御を並行して実行している印刷装
置において、コア間通信を効率的に行うことができる。
【００１３】
また、上記発明において、その好ましい態様は、指定される前記サイズは、指定される
前記サイズは、印刷に係る１トランザクション分の印刷データが収まるサイズである、こ
とを特徴とする。
【００１４】
これにより、１トランザクションの印刷処理を中断させることなく実行できる。
【００１５】
また、上記発明において、その好ましい態様は、前記第１プロセッサコアは、ホスト装
置からネットワークを介して印刷データを受信し、前記共有メモリーへ前記印刷データを
記憶し、前記第２プロセッサコアは、前記共有メモリーから前記印刷データを読み出す、
ことを特徴とする。
【００１６】
これにより、ネットワーク通信による印刷要求について印刷データを効率良く第２プロ
セッサコアに引き渡すことができ、印刷処理のパフォーマンスを向上させることができる
。
【００１７】
上記目的を達成するために、本発明の更に別の側面は、第１ファームウェアで操作され
る第１プロセッサコアと、第２ファームウェアで操作される第２プロセッサコアと、前記
第１プロセッサコアと前記第２プロセッサコアとの間で受け渡されるデータを記憶する共
有メモリーと、を有する印刷装置の制御方法であって、前記第２プロセッサコアが、前記
共有メモリーにおけるデータの書き始めのアドレスと、前記共有メモリーに記憶が可能な
データのサイズを前記第１プロセッサコアに指定し、前記第１プロセッサコアが、前記第
２プロセッサコアが指定した前記アドレスと前記サイズに基づいて、前記共有メモリーへ
データを記憶する、ことである。
【００１８】
本発明の更なる目的及び、特徴は、以下に説明する発明の実施の形態から明らかになる
。
【図面の簡単な説明】
【００１９】
【図１】本発明を適用した印刷装置の実施の形態例に係る構成図である。
【図２】プリンター２におけるコア間通信のＣＰＵ２２１側の処理の手順を例示したフローチャートである。
【図３】ＣＰＵ２１１とＣＰＵ２２１とのコア間通信におけるデータの流れを例示した図である。
【図４】ＣＰＵ２１１とＣＰＵ２２１とのコア間通信におけるデータの流れを例示した図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して本発明の実施の形態例を説明する。しかしながら、かかる実施の
形態例が、本発明の技術的範囲を限定するものではない。なお、図において、同一又は類
似のものには同一の参照番号又は参照記号を付して説明する。
【００２１】
図１は、本発明を適用した印刷装置の実施の形態例に係る構成図である。図１に示すプ
リンター２が本発明を適用した印刷装置である。プリンター２は、印刷処理やネットワー
ク制御等の複数処理を並行して実行するために、少なくとも２つのプロセッサコアを搭載
している。
【００２２】
なお、厳密には、ＣＰＵの中心的な演算処理等を行う部分をプロセッサコアと呼ぶが、
本明細書中においては、１つのＣＰＵの中に１つのプロセッサコアが備えられるものとし
、プロセッサコアとＣＰＵとは同義であるものとする。つまり、コア間通信とは、ＣＰＵ
間通信を意味するものとする。
【００２３】
本プリンター２においては、ネットワーク制御を行うプロセッサコア（ＣＰＵ２１１）
（第１プロセッサコア）と、印刷処理を制御するプロセッサコア（ＣＰＵ２２１）（第２
プロセッサコア）の間で、ＲＡＭ２１０（共有メモリー）を介したコア間通信によってデ
ータの受け渡しを行う。ＣＰＵ２２１は、ＲＡＭ２１０に最も新しく記憶されたデータの
直後のアドレスと所定の容量（サイズ）を次のデータの書き込み先として指定し、ＣＰＵ
２１１は、その指定に従って、データを書き込む（記憶する）。ＣＰＵ２２１は、書き込
まれたデータを順次読み出し、読み出しの処理を行っている間も、上記指定したサイズが
書き込み可能な容量があれば、ＣＰＵ２１１へ書き込みの指示を出す。これにより、デー
タは、ＲＡＭ２１０に隙間なく書きこまれることになり、順次、書き込みと読み出しの処
理が行われ、データの受け渡しが滞るのを防ぐことができる。これにより、ＲＡＭ２１０
のリソースを無駄なく効率的に利用しつつ、上述したような白筋発生の弊害等を防ぐこと
ができる。
【００２４】
図１に示す本実施の形態例に係る印刷装置を備える印刷システムは、ホストコンピュー
ター１（ホスト装置）とプリンター２を備える。
【００２５】
ホストコンピューター１は、プリンター２にレシート等の印刷命令を行うプリンター２
のホスト装置であり、ここでは、ホストコンピューター１は、一例として、いわゆるレジ
端末である。
【００２６】
図示していないが、ホストコンピューター１は、一例として、ＣＰＵ、ＲＡＭ、ＲＯＭ
、ＨＤＤ、表示装置、通信インターフェース、操作装置、バーコードリーダー等の入力装
置、現金を収納するドロワー等を備えている。
【００２７】
プリンター２は、ホストコンピューター１の命令に従ってレシート等を印刷する、いわ
ゆるＰＯＳプリンターである。プリンター２は、ここでは一例として、サーマル方式のラ
インプリンターである。また、プリンター２は、図１に示すように、印刷処理やネットワ
ーク制御等の複数処理を並行して実行するために、少なくとも２つのプロセッサコア（Ｃ
ＰＵ２１１及びＣＰＵ２２１）を備えている。更に、ＣＰＵ２１１及びＣＰＵ２２１の間
にＲＡＭ２１０を搭載し、ＣＰＵ２１１及びＣＰＵ２２１は、当該ＲＡＭ２１０を介した
コア間通信によって印刷データ等のデータの受け渡しを行う。コア間通信によるデータの
受け渡しの処理の詳細は後述する。
【００２８】
図１に示すように、プリンター２は、ＣＰＵ２１１、ＲＡＭ２１３、ＲＯＭ２１５、Ｒ
ＡＭ２１０、ＣＰＵ２２１、ＲＡＭ２２３、ＲＯＭ２２５、及び、印刷機構２３１を備え
る。他に、ＮＶＲＡＭ、ＡＳＩＣ等を備え、更に、ユーザーへの表示装置、ユーザーの操
作装置、警告音を発する装置、及び、通信インターフェース等（いずれも図示せず）を備
える。
【００２９】
ＣＰＵ２１１（第１プロセッサコア）は、プリンター２の主にネットワーク通信の制御
を行う部分である。具体的には、例えば、ホストコンピューター１からネットワークを介
して送られるレシートのデータ受信に関する制御を司る。また、ＣＰＵ２１１は、後述す
るＲＯＭ２１５に記憶されたファームウェア（以降、第１ファームウェアと称す）によっ
て操作される。換言すれば、第１ファームウェアに従って通信制御の処理を行う。また、
ＣＰＵ２１１は、ＣＰＵ２２１とコア間通信が可能なように接続される。
【００３０】
ＲＡＭ２１３は、ホストコンピューター１からプリンター２へ送信された印刷データ等
を一時的に受信（記憶）するメモリーである。印刷データ等は、ＲＡＭ２１３にて受信後
、ＲＡＭ２１０へ書き込まれる。
【００３１】
ＲＯＭ２１５は、プリンター２の第１ファームウェア（プログラム）を記憶する不揮発
性のメモリーである。
【００３２】
ＣＰＵ２２１（第２プロセッサコア）は、プリンター２のメインプロセッサであり、各
部の制御を行う。ＣＰＵ２２１は、具体的には、主に、ＲＡＭ２１０を介したＣＰＵ２１
１とのコア間通信の制御、及び、印刷制御を司る。このコア間通信の制御では、ＣＰＵ２
２１は、データの書き込み先（書き始め）のアドレス及び所定の容量（サイズ）をＣＰＵ
２１１へ指定する。当該指定は、ＣＰＵ２１１によるＲＡＭ２１０への書き込みの終了を
検知する度に行われる。また、ＣＰＵ２１１によるデータの書き込みが終了すると、後述
する書き込み先アドレスを書き込んだデータの直後のアドレスへ更新し、保持する。また
、ＣＰＵ２２１は、ＲＡＭ２１０へ記憶されたデータを読み出す。データを読み出すと、
後述するＲＡＭ２２３へ読み出したデータを記憶する。ＣＰＵ２２１は、データの読み出
しが終了すると、後述する読み出し終了アドレスを読み出しが終了した末端（最後）のア
ドレスへ更新し、保持する。このようにＣＰＵ２２１は、ＲＡＭ２１０におけるデータの
書き込み処理と読み出し処理の管理を行う。
【００３３】
また、印刷制御として、ＣＰＵ２２１は、ＲＡＭ２１０から読み出した印刷データのコ
マンドを解釈し、コマンドに従って印刷データを画素毎のデータに展開する。その後、Ｃ
ＰＵ２２１は、展開したデータを印刷機構２３１へ渡して印刷を実行させる。
【００３４】
また、ＣＰＵ２２１は、後述するＲＯＭ２２５に記憶されたファームウェア（以降、第
２ファームウェアと称す）によって操作される。換言すれば、第２ファームウェアに従っ
てコア間通信の制御、印刷制御等を行う。ＣＰＵ２２１（第２プロセッサコア）は、ＣＰ
Ｕ２１１とコア間通信が可能なように接続される。
【００３５】
ＲＡＭ２２３は、ＣＰＵ２１１によってＲＡＭ２１０に記憶されたデータ等、ＣＰＵ２
２１が扱うデータを一時的に記憶するメモリーである。
【００３６】
ＲＯＭ２２５は、プリンター２の第２ファームウェア（プログラム）を記憶する不揮発
性のメモリーである。
【００３７】
ＲＡＭ２１０は、ＣＰＵ２１１及びＣＰＵ２２１がコア間通信をする際に使用される共
有メモリー（ＲＡＭ）であり、ＣＰＵ２１１からＣＰＵ２２１へ引き渡されるデータを一
時的に記憶する。
【００３８】
印刷機構２３１は、ＣＰＵ２２１の指示に従って印刷媒体（ここでは、ロール紙）に印
字処理を実行する部分である。具体的には、上述したＲＡＭ２２３から渡されたデータを
印刷媒体（ロール紙）に印字する。ここでは、一例として、レシートを印刷する。また、
印刷機構２３１は、印刷ヘッド（印字ヘッド）（図示せず）を備え、当該印刷ヘッドが搬
送された印刷媒体に対して印字を行う。また、印刷機構２３１は、搬送ローラー、その駆
動装置、搬送路等（いずれも図示せず）を備え、印刷媒体を印字位置まで搬送し、印字後
の印刷媒体を排出する。
【００３９】
以上のような構成を備えるプリンター２は、ＣＰＵ２１１とＣＰＵ２２１の間における
コア間通信の処理に特徴があり、以下、その具体的な処理手順について説明する。
【００４０】
図２は、プリンター２におけるコア間通信のＣＰＵ２２１側の処理の手順を例示したフ
ローチャートである。図２に基づいて、プリンター２の電源がオンにされた後のＣＰＵ２
２１側の処理について説明する。
【００４１】
なお、ここで、書き込み先アドレスiとは、ＣＰＵ２２１がＣＰＵ２１１へデータの書
き込みを指示する際に指定するＲＡＭ２１０のアドレスのことである。また、読み出し終
了アドレスjとは、ＣＰＵ２２１によって読み出されたデータの末端（最後）の位置を示
すＲＡＭ２１０のアドレスのことである。
【００４２】
まず、プリンター２の電源がオンにされる（図２のステップＳ１）。
【００４３】
ＣＰＵ２２１は、保持している書き込み先アドレスiを０（０番地（先頭アドレス））
にし、読み出し終了アドレスjをＲＡＭ２１０の最終アドレスにする（図２のステップＳ
３）。
【００４４】
ＣＰＵ２２１は、ＣＰＵ２１１へデータを書き込み先アドレスiから所定のデータ量Ｋ
（キロバイト）以内でＲＡＭ２１０へデータを書き込むように指示（指定）する（図２の
ステップＳ５）。
【００４５】
ここで、所定のデータ量Ｋとは、予め決められた固定の容量（データサイズ）である。
例えば、レシート印刷を行う場合には、１レシート分（１トランザクション分）の印刷デ
ータが概ね収まる容量とすることができる。また、所定のデータ量Ｋ（キロバイト）は、
ＲＡＭ２１０の総容量よりも小さく設定される。
【００４６】
当該ステップＳ５の指示は、ＲＡＭ２１０の書き込み先アドレスi以降に、所定のデー
タ量Ｋ（キロバイト）を書き込み可能なスペースがある場合に行われ、プリンター２の電
源をオンにした直後においては、ＲＡＭ２１０は空の状態なので、ＣＰＵ２２１は直ぐに
この指示を出す。なお、書き込み可能と判断されるスペースは、空である、または、ＣＰ
Ｕ２１１によって既に読み出されたデータが記憶されているスペースである。
【００４７】
当該指示を受けたＣＰＵ２１１は、ネットワークを介してホストコンピューター１等か
らデータを受信した場合には、一時的にＲＡＭ２１３に記憶した後、指示に従ってＲＡＭ
２１０へ受信したデータの書き込みを行う。
【００４８】
次に、ＣＰＵ２２１は、ＣＰＵ２１１によってＲＡＭ２１０にデータが書き込まれたか
否かについて判断する（図２のステップＳ９）。書き込みが終わっていなければ（図２の
ステップＳ９のＮｏ）、所定の容量ずつデータの読み出しを行い（図２のステップＳ１０
）、読み出し終了アドレスjの更新（図２のステップＳ１１）を繰り返し行って、ＣＰＵ
２１１によるデータの書き込みが終了するのを待つ。
【００４９】
書き込み処理が終了した場合（図２のステップＳ９のＹｅｓ）、ＣＰＵ２２１は、書き
込み先アドレスiを更新する（図２のステップＳ１３）。具体的には、ＣＰＵ２２１は、
今回ＣＰＵ２１１によって書き込まれたデータ（最も新しく書き込まれたデータ）の直後
のアドレスにiを更新する。
【００５０】
次に、ＣＰＵ２２１は、次のデータの書き込み指示を行うために、ＲＡＭ２１０に所定
のデータ量Ｋ（キロバイト）を書き込み可能な容量（スペース）があるか否かの確認を行
う（図２のステップＳ１５）。具体的には、現在の書き込み先アドレスiからＲＡＭ２１
０の最終アドレスまでの容量が所定のデータ量Ｋ（キロバイト）よりも大きく、かつ、現
在の書き込み先アドレスiと読み出し終了アドレスjとの間の容量に、所定のデータ量Ｋ（
キロバイト）が収まる容量がある場合には、書き込み可能な容量があると判断し（図２の
ステップＳ１５のＹｅｓ）、処理はステップＳ５へ戻る。その後、ＣＰＵ２２１は、ＲＡ
Ｍ２１０の現在の書き込み先アドレスiからデータを書き込むようＣＰＵ２１１へ指示を
出す。
【００５１】
なお、書き込み先アドレスiと読み出し終了アドレスjとの間の容量とは、読み出し終了
アドレスjが書き込み先アドレスiよりもＲＡＭ２１０の最終アドレスに近い場合には、読
み出し終了アドレスjから書き込み先アドレスiの差分（j-i）の容量を意味する。また、
書き込み終了アドレスiが読み出し終了アドレスjよりもＲＡＭ２１０の最終アドレスに近
い場合には、書き込み先アドレスiと読み出し終了アドレスjとの間に所定のデータ量Ｋ（
キロバイト）が収まる容量があるか否かの判断はしない。
【００５２】
ステップＳ１５において、書き込み可能な容量が無いと判断した場合（図２のステップ
Ｓ１５のＮｏ）、ＣＰＵ２２１は、書き込み先アドレスiを０番地（先頭アドレス）に更
新する（図２のステップＳ１７）。換言すれば、次のデータを、再び、ＲＡＭ２１０の先
頭から書き込むようにする。
【００５３】
次に、ＣＰＵ２２１は、現在の書き込み先アドレスiの位置から所定のデータ量Ｋ（キ
ロバイト）を書き込み可能な容量があるか否かの確認を行う（図２のステップＳ１９）。
具体的には、ステップＳ１７にて更新した書き込み先アドレスi（０番地）（先頭アドレ
ス）と現在の読み出し終了アドレスjまでの間に、所定のデータ量Ｋ（キロバイト）以上
の容量があるか否かの確認を行う。書き込み可能な容量がある場合には（図２のステップ
Ｓ１９のＹｅｓ）、処理はステップＳ５へ戻る。その後、ＣＰＵ２２１は、ＲＡＭ２１０
の０番地（先頭アドレス）からデータを書き込むようＣＰＵ２１１へ指示を出す。
【００５４】
書き込み可能な容量が無い場合は（図２のステップＳ１９のＮｏ）、ＣＰＵ２２１は、
ＲＡＭ２１０へ書き込まれたデータを所定量ずつ読み出して（図２のステップＳ２１）、
読み出し終了アドレスjを更新し（図２のステップＳ２３）、ＲＡＭ２１０に空きが出来
るのを待つ。ＣＰＵ２２１による読み出しが行われて、ＲＡＭ２１０に所定のデータ量Ｋ
（キロバイト）を書き込み可能な容量が出来た場合には（図２のステップＳ１９のＹｅｓ
）、処理はステップＳ５に戻る。その後、ＣＰＵ２２１は、ＲＡＭ２１０の０番地（先頭
アドレス）からデータを書き込むようＣＰＵ２１１へ指示を出す。
【００５５】
このようにして、プリンター２のコア間通信の処理が、ホストコンピューター１からの
データの受信が終了するまで繰り返し行われる。
【００５６】
なお、ステップＳ１０またはステップＳ２１において、ＣＰＵ２２１によって読み出さ
れたデータは、ＲＡＭ２２３へ記憶される。その後、データに含まれるコマンドの解釈が
されて、コマンドに従った処理が実行される。データに印刷データが含まれている場合は
、画素毎のデータに展開され、それらのデータは、順次、印刷機構２３１へ渡されて印刷
処理がなされる。
【００５７】
以上のようにして、プリンター２におけるＲＡＭ２１０を介したコア間通信の処理が行
われる。
【００５８】
次に、上述した図２のフローチャートの処理に基づくコア間通信の具体例を説明する。
【００５９】
図３及び図４は、ＣＰＵ２１１とＣＰＵ２２１とのコア間通信におけるデータの流れを
例示したものである。
【００６０】
ここで、ＲＡＭ２１０に書き込まれるデータは、全て印刷データであるとし、図３に示
す印刷データＡ、印刷データＢ、及び、印刷データＣの順番でＲＡＭ２１０に書き込まれ
るものとする。また、ＲＡＭ２１０の総量をＳ（キロバイト）とする。また、ＣＰＵ２２
１によって指定される所定のデータ量Ｋ（キロバイト）は、例えば、レシート印刷を行う
場合には、１レシート分のデータ量が概ね収まる容量とする。また、所定のデータ量Ｋ（
キロバイト）はＲＡＭ２１０の総量Ｓ（キロバイト）よりも小さく設定される。
【００６１】
まず、図３を用いて、印刷データＡ、及び、印刷データＢの流れを説明する。
【００６２】
プリンター２の電源がオンされると、ＣＰＵ２２１は、図３に示すように、書き込み先
アドレスをＲＡＭ２１０のi０（先頭アドレス）番地、読み出し終了アドレスをｊｆ（最
終アドレス）番地へ更新する。
【００６３】
ＣＰＵ２２１は、データの書き込み先（書き始め）のアドレスiと書き込む所定のデー
タ量Ｋ（キロバイト）を指定（指示）する。すなわち、ここでは、ＣＰＵ２２１は書き込
み先アドレスi０（先頭アドレス）番地からデータの書き込みを指示する。
【００６４】
ホストコンピューター１から印刷要求がなされ、ＣＰＵ２１１は、印刷データＡをＲＡ
Ｍ２１３にて受信する。
【００６５】
ＣＰＵ２１１は、ＣＰＵ２２１から、上述した書き込みの指示を受け、ＲＡＭ２１０の
i０番地（先頭アドレス）から、ＲＡＭ２１３に記憶した印刷データＡを書き込む。
【００６６】
ＣＰＵ２２１は、ＣＰＵ２１１によって印刷データＡの書き込みが終了すると、書き込
み先アドレスを図３に示すi１へ更新する。
【００６７】
そして、ＣＰＵ２２１は、ＲＡＭ２１０に書き込み可能な容量があるので、書き込み先
アドレスをi１として、所定のデータ量Ｋ（キロバイト）を指定して書き込みの指示をす
る。指示を受けたＣＰＵ２１１は、ＲＡＭ２１３にて次の印刷データＢを受信していれば
、印刷データＢを書き込み先アドレスi１から書き込む。
【００６８】
ＣＰＵ２２１は書き込みの指示を出した後、ＣＰＵ２１１による次の印刷データＢの書
き込み終了を待ち、印刷データＡを所定の容量ずつＲＡＭ２２３へ読み出す。ＣＰＵ２２
１は、印刷データＡの読み出しが終了する度に、読み出し終了アドレスをｊｆからj１へ
更新する。
【００６９】
ＣＰＵ２２１は、印刷データＢの書き込みが終了すると、書き込み先アドレスi１を図
３に示すi２へ更新する。
【００７０】
次に、図３及び図４を用いて、印刷データＣの処理の流れについて説明する。
【００７１】
ＣＰＵ２２１は、書き込み先アドレスをi２として、所定のデータ量Ｋ（キロバイト）
を指定して書き込みの指示ができるか確認を行う。ここで、印刷データＡ及び印刷データ
Ｂの書き込みが終了した時点で、ＲＡＭ２１０の最終アドレスまでの残容量は、Ｒ（キロ
バイト）しかない（図３参照）。この残容量Ｒ（キロバイト）は所定のデータ量Ｋ（キロ
バイト）よりも小さく、Ｐ（キロバイト）（＝Ｋ−Ｒ）分、ＲＡＭ２１０に書き込み可能
な容量が足りない状態である。したがって、ＣＰＵ２２１は、書き込み先アドレスiを図
３に示す書き込み先アドレスi２から、図４に示す書き込み先アドレスii０（０番地）（
先頭アドレス）へ更新する。
【００７２】
その時点で、図４に示すように、ＣＰＵ２２１は、印刷データＡの読み出しを終了し、
印刷データＢの読み出しをＱ（キロバイト）分終了しているものとする。このとき、読み
出し終了アドレスjは図３に示すj１の位置から更新されて、図４に示すjj１の位置になっ
ており、現在の書き込み先アドレスii０からjj１の間には、所定のデータ量Ｋ（キロバイ
ト）を書き込み可能な容量があるものとする。
【００７３】
この場合には、ＣＰＵ２２１は、書き込み可能な容量があると判断して、図４に示す書
き込み先アドレスii０と所定のデータ量Ｋ（キロバイト）を指定し、ＣＰＵ２２１へ書き
込みの指示をする。指示を受けたＣＰＵ２１１は、印刷データＣを書き込み先アドレスii
０から書き込む。
【００７４】
以上説明したようなＣＰＵ２１１及びＣＰＵ２２１のコア間通信によって、印刷データ
Ａ、印刷データＢ、及び、印刷データＣがＣＰＵ２１１からＣＰＵ２２１へ引き渡され、
その後、各印刷データは、画素毎のデータに展開されて印刷機構２３１へ渡され、順次、
印刷処理がなされる。
【００７５】
以上説明したように、本実施の形態例におけるプリンター２においては、ネットワーク
制御を行うＣＰＵ２１１と、印刷処理を制御するＣＰＵ２２１の間でＲＡＭ２１０を介し
たコア間通信によってデータの受け渡しを行う。ＣＰＵ２２１は、ＲＡＭ２１０に最も新
しく記憶されたデータの直後のアドレスを次のデータの書き込み先のアドレスとして指定
し、ＣＰＵ２１１は、データを書き込む。ＣＰＵ２２１は、書き込まれたデータを順次読
み出し、読み出しの処理を行っている間も、指定したサイズが書き込み可能な容量があれ
ば、ＣＰＵ２１１へ書き込みの指示を出す。これにより、データは、ＲＡＭ２１０に隙間
なく書きこまれることになり、順次、書き込みと読み出しの処理が行われる。
【００７６】
これにより、ＣＰＵ２１１及びＣＰＵ２２１のコア間通信において、ＲＡＭ２１０を効
率よく使用することができ、ＲＡＭ２１０へのデータの書き込みが滞ることを減少させる
ことができ、通信パフォーマンスを向上させることができる。
【００７７】
また、ＣＰＵ２１１側での書き込み処理が滞ることがなくなると、データを読み出す量
と印刷のスピードに不均衡が生じにくくなるため、印刷処理の中断等がなくなり、一旦印
刷が停止した後、印刷が再開したときの紙送りピッチの乱れによる、いわゆる白筋が発生
する等の印刷不良を防ぐことができる。
【００７８】
また、ＲＡＭ２１０に書き込むデータは、最も新しく書き込まれたデータの直後のアド
レスを指定するため、データが隙間なく書きこめるため、ＲＡＭ２１０のリソースを無駄
なく効率的に使用できる。
【００７９】
また、ＣＰＵ２２１にて指定するデータの所定の容量を印刷の１トランザクションとす
ることで、１レシート分の印刷処理を中断させることなく実行できる。
【００８０】
また、ネットワークを介したデータのやり取りを行うシステム（例えば、ＰＯＳシステ
ム）で使用されるプリンターにおいて、印刷データを効率良くＣＰＵ２２１に引き渡すこ
とができ、印刷処理のパフォーマンスを向上させることができる。
【００８１】
なお、以上説明した本実施の形態例におけるプリンター２においては、予め定めた所定
のデータ量Ｋ（キロバイト）が、ＲＡＭ２１０の残りの容量を超えた場合には、次のデー
タの書き込み先をＲＡＭ２１０の０番地（先頭アドレス）へ戻す処理を行うが、より効率
的にＲＡＭ２１０を使用するように、書き込み先として、２箇所を指定するような方法と
しても良い。具体的には、１箇所目として、図３に示すＲＡＭ２１０の現在の残容量Ｒ（
キロバイト）へ書き込み先アドレスi２からデータを書き込む指示をし、２箇所目として
書き込み先アドレスi０（０番地）（先頭アドレス）から差分Ｐ（キロバイト）のデータ
を書き込む指示をする。
【００８２】
更に、その変形例として、上述した２箇所の指示を１箇所ずつ指示するようにしても良
い。具体的には、例えば、まず、図３に示す書き込み先アドレスi２からＲＡＭ２１０の
残容量Ｒ（キロバイト）に収まるデータの書き込みを指示し、その後、書き込み先アドレ
スi０からデータを書き込むよう指示するようにしても良い。
【００８３】
また、プリンター２は、印刷方式としてサーマル方式を採用しているが、インクジェッ
ト方式等の他の印刷方式を搭載したプリンターとしても良い。
【００８４】
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発
明とその均等物に及ぶものとする。
【符号の説明】
【００８５】
１…ホストコンピューター、２…プリンター、２１０…ＲＡＭ（共有メモリー）、２１
１…ＣＰＵ（第１プロセッサコア）、２１３…ＲＡＭ、２１５…ＲＯＭ、２２１…ＣＰＵ
（第２プロセッサコア）、２２３…ＲＡＭ、２２５…ＲＯＭ、２３１…印刷機構。
【図１】
2018030283.tif 000003
【図２】
2018030283.tif 000004
【図３】
2018030283.tif 000005
【図４】
2018030283.tif 000006