JP7016725B2 - 情報処理装置、制御方法及びプログラム - Google Patents

情報処理装置、制御方法及びプログラム Download PDF

Info

Publication number
JP7016725B2
JP7016725B2 JP2018035524A JP2018035524A JP7016725B2 JP 7016725 B2 JP7016725 B2 JP 7016725B2 JP 2018035524 A JP2018035524 A JP 2018035524A JP 2018035524 A JP2018035524 A JP 2018035524A JP 7016725 B2 JP7016725 B2 JP 7016725B2
Authority
JP
Japan
Prior art keywords
data
receive buffer
storage area
stored
address
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.)
Active
Application number
JP2018035524A
Other languages
English (en)
Other versions
JP2019152907A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2018035524A priority Critical patent/JP7016725B2/ja
Publication of JP2019152907A publication Critical patent/JP2019152907A/ja
Application granted granted Critical
Publication of JP7016725B2 publication Critical patent/JP7016725B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)
  • Record Information Processing For Printing (AREA)
  • Information Transfer Systems (AREA)
  • Storing Facsimile Image Data (AREA)

Description

本発明は、情報処理装置、制御方法及びプログラムに関する。
受信バッファを有する情報処理装置が知られている。そして、そのような情報処理装置においては、受信バッファによって、データの通信が行われる(特許文献1参照)。
特開平9-97164号公報
ところで、受信バッファによるデータ通信時に外来からのノイズが生じることで、通信されたデータが変質してしまうことがある。そして、データの変質が原因となって受信バッファに誤取り込みデータが蓄積した状態で、受信バッファによるデータ通信が実行されると、適正なデータ通信が実行されないことがある。受信バッファに誤取り込みデータが格納されていたならば、ユーザへの通知や、受信バッファを空にする等の処理が実行されるべきである。しかしながら、いずれの処理が実行されるにせよ、受信バッファに誤取り込みデータが格納されていたことを特定することが必要となる。受信バッファによる通信を行う情報処理装置が普及するにつれ、受信バッファに誤取り込みデータが格納されていたことを特定することが一層求められている。
そこで本発明は、上述の課題を解決するために、受信バッファに誤取り込みデータが格納されていたことを特定することを目的とする。
上記の課題を解決するための本発明の情報処理装置は、
少なくとも1つのプロセッサーと、
所定の記憶領域と、
データを受信し、受信したデータを前記所定の記憶領域に格納する第1受信バッファと、
データを受信し、受信したデータを前記少なくとも1つのプロセッサーに転送する第2受信バッファと、
を有する情報処理装置であって、
前記所定の記憶領域の第1のアドレスを格納先として指定して、第1のデータを前記第1受信バッファに送信する送信手段と、
前記所定の記憶領域の前記第1のアドレスに格納されているデータを、前記第2受信バッファによって、前記第1のデータが前記第1受信バッファに送信された後に受信する受信手段と、
前記所定の記憶領域の前記第1のアドレスに格納されているデータが前記第2受信バッファによって受信されたことに応じて前記少なくとも1つのプロセッサーに転送されたデータに基づいて、前記第1のデータが前記第1受信バッファに送信された時に前記第1受信バッファに既にデータが格納されていたか否かを判定する判定処理を実行する判定手段と、を有することを特徴とする。
本発明により、受信バッファに誤取り込みデータが格納されていたことを特定することができる。
情報処理装置の内部構成図である。 情報処理装置の制御構成を示すブロック図である。 内部通信部の受信バッファにデータが誤取り込みされたことが、ライト・トランザクションに与える影響を説明するためのブロック図である。 内部通信部の受信バッファにデータが誤取り込みされたことが、リード・トランザクションに与える影響を説明するためのブロック図である。 誤取り込み判定処理が実行されている状態の第2の集積回路チップ及び印刷部のブロック図である。 データの誤取り込みの判定結果と誤取り込みデータの有無の関係を示す表である。 情報処理装置によって実行される誤取り込み判定処理を示すフローチャートである。 誤取り込みデータが検出された場合に情報処理装置によって実行される回復処理を示すフローチャートである。 内部通信部間の通信時において、情報処理装置によって実行される処理を示すフローチャートである。 印刷制御部とEEPROMと間の通信(ライト)時において、情報処理装置によって実行される処理を示すフローチャートである。 印刷制御部とEEPROMと間の通信(リード)時において、情報処理装置によって実行される処理を示すフローチャートである。 印刷制御部とインク吐出部と間の通信時において、情報処理装置によって実行される処理を示すフローチャートである。 誤取り込みデータが検出された場合に情報処理装置によって実行される回復処理を示すフローチャートである。
(第1実施形態)
本実施形態の情報処理装置について説明する。情報処理装置として、本実施形態では、印刷サービスを提供可能な記録装置を例示しているが、これに限定されない。情報処理装置として、バッファを用いて装置内部ないし外部でデータ通信を行うことが可能な装置であれば、種々のものを適用可能である。例えば、プリンタであれば、インクジェットプリンタ、フルカラーレーザービームプリンタ、モノクロプリンタ等を適用可能である。また、プリンタのみならず複写機やファクシミリ装置、スマートホン、携帯端末、パーソナルコンピュータ、タブレット端末、PDA、デジタルカメラ、音楽再生デバイス、ストレージ、プロジェクタ等、印刷以外のサービスを提供可能な装置にも適用可能である。
図1は、本実施形態の情報処理装置であるインクジェット記録装置100(以下、記録装置100)の内部構成図である。図において、x方向は水平方向、y方向(垂直方向)は後述する記録ヘッド8において吐出口が配列される方向、z方向は鉛直方向をそれぞれ示す。
記録装置100は、プリント部2とスキャナ部3を備える複合機であり、記録動作と読取動作に関する様々な処理を、プリント部2とスキャナ部3で個別にあるいは連動して実行することができる。スキャナ部3は、ADF(オートドキュメントフィーダ)とFBS(フラットベッドスキャナ)を備えており、ADFで自動給紙される原稿の読み取りと、ユーザによってFBSの原稿台に置かれた原稿の読み取り(スキャン)を行うことができる。なお、本実施形態はプリント部2とスキャナ部3を併せ持った複合機であるが、スキャナ部3を備えない形態であってもよい。図1は、記録装置100が記録動作も読取動作も行っていない待機状態にあるときを示す。
プリント部2において、筐体4の鉛直方向下方の底部には、記録媒体(カットシート)Sを収容するための第1カセット5Aと第2カセット5Bが着脱可能に設置されている。第1カセット5AにはA4サイズまでの比較的小さな記録媒体が、第2カセット5BにはA3サイズまでの比較的大きな記録媒体が、平積みに収容されている。第1カセット5A近傍には、収容されている記録媒体を1枚ずつ分離して給送するための第1給送ユニット6Aが設けられている。同様に、第2カセット5B近傍には、第2給送ユニット6Bが設けられている。記録動作が行われる際にはいずれか一方のカセットから選択的に記録媒体Sが給送される。
搬送ローラ7、排出ローラ12、ピンチローラ7a、拍車7b、ガイド18、インナーガイド19およびフラッパ11は、記録媒体Sを所定の方向に導くための搬送機構である。搬送ローラ7は、記録ヘッド8の上流側および下流側に配され、不図示の搬送モータによって駆動される駆動ローラである。ピンチローラ7aは、搬送ローラ7と共に記録媒体Sをニップして回転する従動ローラである。排出ローラ12は、搬送ローラ7の下流側に配され、不図示の搬送モータによって駆動される駆動ローラである。拍車7bは、記録ヘッド8の下流側に配される搬送ローラ7及び排出ローラ12と共に記録媒体Sを挟持して搬送する。
ガイド18は、記録媒体Sの搬送経路に設けられ、記録媒体Sを所定の方向に案内する。インナーガイド19は、y方向に延在する部材で湾曲した側面を有し、当該側面に沿って記録媒体Sを案内する。フラッパ11は、両面記録動作の際に、記録媒体Sが搬送される方向を切り替えるための部材である。排出トレイ13は、記録動作が完了し排出ローラ12によって排出された記録媒体Sを積載保持するためのトレイである。
本実施形態の記録ヘッド8は、フルラインタイプのカラーインクジェット記録ヘッドであり、記録データに従ってインクを吐出する吐出口が、図1におけるy方向に沿って記録媒体Sの幅に相当する分だけ複数配列されている。記録ヘッド8が待機位置にあるとき、記録ヘッド8の吐出口面8aは、図1のように鉛直下方を向きキャップユニット10によってキャップされている。記録動作を行う際は、後述するプリントコントローラ202によって、吐出口面8aがプラテン9と対向するように記録ヘッド8の向きが変更される。プラテン9は、y方向に延在する平板によって構成され、記録ヘッド8によって記録動作が行われる記録媒体Sを背面から支持する。
インクタンクユニット14は、記録ヘッド8へ供給される4色のインクをそれぞれ貯留する。インク供給ユニット15は、インクタンクユニット14と記録ヘッド8を接続する流路の途中に設けられ、記録ヘッド8内のインクの圧力及び流量を適切な範囲に調整する。本実施形態では循環型のインク供給系を採用しており、インク供給ユニット15は記録ヘッド8へ供給されるインクの圧力と記録ヘッド8から回収されるインクの流量を適切な範囲に調整する。
メンテナンスユニット16は、キャップユニット10とワイピングユニット17を備え、所定のタイミングにこれらを作動させて、記録ヘッド8に対するメンテナンス動作を行う。
以下、上記説明した装置の構成を踏まえ、本発明の好適な実施例について説明する。
図2は、本実施例における、記録装置の制御構成例を示すブロック図である。
記録装置100は本発明に係る情報処理装置である。ホストPC190は、記録装置に対して印刷ジョブの送信等を行う端末装置である。ホストPC190と記録装置100はホストインターフェース191で接続している。ホストインターフェース191は、無線によって通信するインターフェースであっても有線によって通信するインターフェースで合っても良い。ホストインターフェース191は、無線であれば例えば、Wi-FiやBluetooth(登録商標)によって通信し、有線であれば例えば、Universal Serial Bus(USB)や有線LANで通信する。
記録装置100の内部構成を説明する。ROM115、RAM117、UI部119及びホストインターフェース191は第1の集積回路チップ110に接続している。RAM127、印刷部130は第2の集積回路チップ120に接続している。第1の集積回路チップ110と第2の集積回路チップ120は内部バス180で接続している。第2の集積回路チップ120と印刷部130は内部バス181で接続している。
ROM115は、第1の集積回路チップ110や第2の集積回路チップ120が実行する制御プログラムや組込オペレーティングシステム(OS)プログラム等を記憶する。本実施形態では、ROM115に記憶されている各制御プログラムは、ROM115に記憶されている組込OSの管理下で、スケジューリングやタスクスイッチ等のソフトウェア制御を行う。
RAM117は、SRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)等で構成されるメモリである。RAM117は、プログラム制御変数等のデータや、ユーザが登録した設定値やホストPC190の管理データ等のデータを記憶する。なお、RAM117には、第1の集積回路チップ110によるプログラムの実行のための各種ワーク用バッファ領域が設けられている。
UI部119は、各種入力操作画面や、記録装置100の動作状況画面、ステータス状況画面の表示等を行うことができる。本実施形態では、UI部119は、スイッチやパネルによりユーザによる操作を受け付け、ユーザによって操作が実行されたことを検知する操作部の役割もはたす。
第1の集積回路チップ110は、記録装置100のシステムコントローラであり、ホストPC190との通信制御により画像データの受信や応答、UI部119の制御等を行う。
第2の集積回路チップ120は、記録装置100のデバイスコントローラであり、第1の集積回路チップ110より受信した画像データを印刷データに変換し印刷制御を行う。なお、第1の集積回路チップ110は、例えば、画像データを、ホストPC190から印刷ジョブとして受信する。
RAM127は、第2の集積回路チップ120によるプログラム実行のための各種ワーク用バッファ領域を含み、画像データを記憶するための読み書き可能なメモリである。なお、第2の集積回路チップ120が実行するプログラムは、ROM115に格納されており、第2の集積回路チップ120は、当該プログラムを第1の集積回路チップ110から受信する。
印刷部130は、第2の集積回路チップ120から受信した印刷データに基づき記録媒体上に記録剤によって画像を形成し、印刷物を生成する。本実施形態では、印刷部130は、紙等の記録媒体上にインクを吐出することで画像を形成するインクジェット方式によって印刷物を生成する。
第1の集積回路チップ110の内部構成を説明する。
CPU111は第1の集積回路チップ110の中央演算処理装置であり、プログラムに従って処理を実行する。
ホスト通信部112はホストPC190とのデータ通信を行う。本実施形態では、例えば、ホスト通信部112は、ホストPC190から印刷ジョブを受信する。
UI制御部113は、UI部119に表示させる画面を制御したり、UI部119に対する操作を検知する。
ROMコントローラ部114は、ROM115との通信を行う。RAMコントローラ116は、RAM117との通信を行う。内部通信部118は、第2の集積回路チップ120との通信を行う。
第2の集積回路チップ120の内部構成を説明する。
CPU121は第2の集積回路チップ120の中央演算処理装置であり、プログラムに従って処理を実行する。
内部通信部124は、印刷部130との通信を行う。RAMコントローラ126は、RAM127との通信を行う。内部通信部128は、第1の集積回路チップ110との通信を行う。
印刷部130の内部構成を説明する。
内部通信部131は、第2の集積回路チップ120との通信を行う。印刷制御部132は、内部通信部131からの制御に基づき、EEPROM(Electrically Erasable Programmable Read-Only Memory)150との通信及びインク吐出部160へのデータ転送を行う。印刷制御部132は、EEPROM150とI2Cバスで接続され、EEPROM150に対するライト・アクセス/リード・アクセスを実行可能である。印刷制御部132は、インク吐出部160への吐出データの転送や、インク吐出部160の温度の検出及び調節等を行う。
図3は、内部通信部の受信バッファにデータが誤取り込みされたことが、ライト・トランザクションに与える影響を説明するためのブロック図である。
本実施形態では、内部バス180としてPCI-Express(以下PCIe)が用いられているものとする。そのため内部通信部124及び内部通信部131はPCIeのntellectual Property Core(以下、IP)である。送信バッファ311は内部通信部124の送信バッファであり、受信バッファ312は内部通信部124の受信バッファである。また、受信バッファ321は内部通信部131の受信バッファであり、送信バッファ322は内部通信部131の送信バッファである。なお、内部通信部118や内部通信部128も同様の構成であり、本発明は、内部通信部118や内部通信部128間の通信においても適用可能である。
第2の集積回路チップ120は、送信バッファ311に格納されたデータを受信バッファ321に送信することで、印刷部130にデータを送信する。ところで、受信バッファ321へのデータの送信の際、PCIe通信ラインにノイズが重畳されることにより、受信バッファ321へ送信されるデータの内容が変質し、壊れたデータが受信バッファ321に受信されてしまうことがある。そして、壊れたデータが、印刷部130の内部回路に渡されず、受信バッファ321に蓄積されてしまうことがある。
また、例えば、受信バッファ321が、巡回冗長検査(Cyclic Redundancy Check(CRC))等により、受信バッファ321に受信されたデータが壊れていないかどうかを確認する機能を有していることがある。このような機能を有している受信バッファ321は、受信されたデータが壊れていることを確認したならば、データの再送を送信バッファ311に依頼する。送信バッファ311はデータの再送が依頼されたならば、先に送信したデータと同じデータを受信バッファ321に再送する。なお、このように、再送により回復可能な範囲で壊れている(変質している、エラーが生じている)データが受信されることを、コレクタブル・エラー(Correctable・Error)という。
しかしながら、再送されたデータを受信した受信バッファ321は、壊れたデータを印刷部130の内部回路に渡してしまい、再送されたデータを受信バッファ321に蓄積させてしまうことがある。なお、印刷部130の内部回路に渡されたデータは、受信バッファ321から削除される。
上述のようにして、受信バッファ321に蓄積されてしまうデータ(壊れたデータや、再送されたデータ)を、以下、誤取り込みデータという。図3(a)は、受信バッファ321に誤取り込みデータが蓄積された状態の第2の集積回路チップ120及び印刷部130の図である。
図3(b)は、受信バッファ321に誤取り込みデータが蓄積された状態で、第2の集積回路チップ120側の内部回路がライト・アクセス(印刷部130へのデータの送信のためのアクセス)した場合の第2の集積回路チップ120及び印刷部130の図である。なお、第2の集積回路チップ120側の内部回路とは、例えばCPU121やDMACである。印刷部130側の内部回路とは、例えば印刷制御部132である。
第2の集積回路チップ120は、ライトデータを送信バッファ311に一度格納し、PCIeのプロトコルに従って、ライト先のアドレス等を指定した後、ライトデータを受信バッファ321に送信する。ライトデータを受信した受信バッファ321は、本来であれば、当該ライトデータを印刷部130の内部回路の指定されたアドレスにライト(格納)
するはずである。しかしながら、受信バッファ321は、先に受信されたデータを優先して内部回路にライトするため、受信バッファ321に誤取り込みデータが存在すると、誤取り込みデータを印刷部130の内部回路の指定されたアドレスにライトしてしまう。その結果、誤取り込みデータが受信バッファ321から削除され、指定されたライトデータが受信バッファ321に蓄積されてしまう。すなわち、所望のアドレスに所望のデータが書き込まれないことがあるという課題が生じる。
図3(c)は、誤取り込みデータがライトデータの代わりに印刷部130の内部回路にライトされてしまったことにより、ライトデータが受信バッファ321に蓄積された(残された)状態の第2の集積回路チップ120及び印刷部130の図である。この後、さらに次のライトデータが受信バッファ321によって受信されても、当該次のライトデータのライト先のアドレスに、受信バッファ321に蓄積されていた前のライトデータがライトされてしまう。すなわち、次のライトデータも、前のライトデータも、所望のアドレスに書き込まれないことがあるという課題がある。
図4は、内部通信部の受信バッファにデータが誤取り込みされたことが、リード・トランザクションに与える影響を説明するためのブロック図である。
図4(a)は、受信バッファ312に誤取り込みデータが蓄積された状態の第2の集積回路チップ120及び印刷部130の図である。
図4(b)は、受信バッファ312に誤取り込みデータが蓄積された状態で、第2の集積回路チップ120側の内部回路がリード・アクセス(印刷部130からのデータ受信のためのアクセス)した場合の第2の集積回路チップ120及び印刷部130の図である。第2の集積回路チップ120は、印刷部130からデータを受信するために、受信したいデータが格納されているアドレスを指定してリード・リクエストをPCIeを介して内部通信部131に送信する。なお、リード・リクエストは受信バッファ321に蓄積されない。内部通信部131を介して印刷部130の内部回路にリード・リクエストが到達すると、内部通信部131は印刷部130の内部回路からリードデータを受信する。リードデータは送信バッファ322に一度格納され、PCIeのプロトコルに従って受信バッファ312に送信される。リードデータを受信した受信バッファ312は、本来であれば、当該リードデータをリード・リクエストの発行元である第2の集積回路チップ120の内部回路に転送するはずである。しかしながら、受信バッファ312は、先に受信されたデータを優先して内部回路に転送するため、受信バッファ312に誤取り込みデータが存在すると、誤取り込みデータを第2の集積回路チップ120の内部回路に転送してしまう。その結果、誤取り込みデータが受信バッファ312から削除され、指定されたリードデータが受信バッファ312に蓄積されてしまう。すなわち、第2の集積回路チップ120の内部回路が、指定したアドレスに格納されているデータとして本来読み出すべきデータを読み出すことができないという課題が生じる。
図4(c)は、誤取り込みデータがリードデータの代わりに第2の集積回路チップ120の内部回路にリードされてしまったことにより、リードデータが受信バッファ312に蓄積された状態の第2の集積回路チップ120及び印刷部130の図である。この後、さらに次のリードデータが受信バッファ312によって受信されても、当該次のリードデータに優先して、受信バッファ321に既に蓄積されていたリードデータが内部回路に転送されてしまう。すなわち、次のリードデータを読み出す際に指定したアドレスから取得したデータが、次のリードデータではなく、前のリードデータとなってしまうという課題がある。
上述の課題を解決するために、本実施形態では、データの誤取り込みが発生している(誤取り込みデータが受信バッファに蓄積されている)ことを検知するための誤取り込み判定処理を実行する。そして、誤取り込み判定処理の結果に応じて、リセット処理を実行する。
図5は、誤取り込み判定処理が実行されている状態の第2の集積回路チップ120及び印刷部130の図である。
本実施形態では、第2の集積回路チップ120は、受信バッファ321における誤取り込みデータを検知するために、誤取り込み判定処理のためのライト・トランザクションと、誤取り込み判定処理のためのリード・トランザクションの両方を実行する。
内部回路500は印刷部130の内部回路である。内部回路500には、読み書き可能な第1のレジスタ(レジスタ501)及び第2のレジスタ(レジスタ502)が含まれる。なお、レジスタ502は、読み出しのみ可能な(リード・オンリー)レジスタであっても良い。本実施形態において受信バッファ321及び312は、8段の格納領域を有しているものとする。なお、1回のトランザクション(1回のデータ受信)ごとに1段の格納領域が用いられる。図5(a)は、誤取り込み判定処理のためのライト・トランザクションの説明図である。
まず第2の集積回路チップ120の内部回路に含まれるCPU121は、レジスタ501に対する第1の値(ここでは0x5555_5555)のライトを、受信バッファ321が有する格納領域の段数と同じ回数(本実施形態では8回)行う。すなわち、CPU121は、受信バッファ321が有する格納領域の段数と同じ回数のライトを、同一のアドレスのレジスタを指定して行う。
次にCPU121は、第1の値のライト先と同一のアドレスのレジスタ(ここではレジスタ501)に対する、先に書き込んだ第1の値と異なる第2の値(ここでは、0xAAAA_AAAA)のライトを1回行う。この結果、レジスタ501に書かれている値は、受信バッファ321に誤読み込みデータが無い場合、第2の値となる。一方で、レジスタ501に書かれている値は、受信バッファ321に誤読み込みデータが有る場合、第1の値となる。
これは上述したように、受信バッファ321にデータが格納された場合、受信バッファ321に先に受信されたデータが印刷部130の内部回路に優先的に渡され、レジスタに書き込まれるためである。誤取り込みデータが受信バッファ321にある状態でライトが開始されると、まず、誤取り込みデータが受信バッファ321からなくなるまで、レジスタ501には誤取り込みデータが書き込まれる。そして、誤取り込みデータが受信バッファ321からなくなった後のライトにより、第1の値がレジスタ501に書き込まれる。結果、第2の値のライト・トランザクション(最後のライト)では、第2の値がレジスタ501には書き込まれず、第1の値がレジスタ501に書き込まれる。
ここで、誤取り込み判定処理のためのライトとして、受信バッファ321が有する格納領域の段数と同じ回数の第1の値のライトを行った後、第2の値のライトを行う理由について説明する。ノイズによるデータの破壊が複数回行われた場合、複数段にわたり誤取り込みデータが受信バッファ321に格納されることがある。そして、誤取り込み判定処理のためのライトとして、誤取り込みデータが格納されている格納領域の数以下の回数しか第1の値のライトが行われないとする。その場合、誤取り込みデータが格納されている格納領域の段数がライト回数より多ければ、誤取り込み判定処理のためのライトが終わった後に、レジスタ501には、誤取り込みデータが書き込まれていることになる。
ところで、ライトされるデータがノイズにより壊れると、データ内容が変更されるため、例えば、誤取り込みデータの内容が、第1の値や第2の値と偶然同じ値になることもある。そして、例えば、レジスタ501に書き込まれた誤取り込みデータが、第1の値や第2の値と偶然同じ値になっている場合は、CPU121は、後述の判定処理において誤判定を生じさせてしまうことがある。すなわち、CPU121は、誤取り込みデータを参照して、誤取り込み判定処理を実行しないことが好ましい。
誤取り込み判定処理のためのライトとして、受信バッファ321が有する格納領域の段数と同じ回数の第1の値のライトが行われることで、レジスタ501の状態は、誤取り込みデータが書き込まれていない状態になる。そのため、誤取り込みデータを参照することによる判定が行われなくなるため、誤判定を抑制できる。
なお、誤取り込み判定処理のためのライトにかかる時間の抑制を優先しても良い。その場合、例えば、誤取り込み判定処理のためのライトとして、受信バッファ321が有する格納領域の段数より少ない回数の第1の値のライト行った後、第2の値のライトが実行されても良い。また例えば、誤取り込み判定処理のためのライトとして、1回の第2の値のライトを行い、第1の値のライトを行わなくとも良い。
図5(b)は、誤取り込み判定処理のためのリード・トランザクションの説明図である。誤取り込み判定処理のためのリード・トランザクションは、誤取り込み判定処理のためのライト・トランザクションに続いて実行される。
まずCPU121は、レジスタ501に格納されている値のリードを、受信バッファ312が有する格納領域の段数より1以上大きい回数(本実施形態では9回)行う。すなわち、CPU121は、受信バッファ312が有する格納領域の段数より1以上大きい回数のリードを、同一のアドレスのレジスタを指定して行う。そして、CPU121は、リードによりCPU121に転送された値が、第1の値であれば、第1の値の書き込み時に受信バッファ321に誤取り込みデータが格納されていたと判定する。なお、第1の値の書き込み時に受信バッファ321に誤取り込みデータが格納されていれば、第2の値の書き込み時に受信バッファ321に第1の値が格納されていたことになる。そのため、CPU121は、リードによりCPU121に転送された値が、第1の値であれば、第2の値の書き込み時に受信バッファ321に第1の値が格納されていたと判定しても良い。そして、CPU121は、リードによりCPU121に転送された値が、第2の値であれば、第1の値の書き込み時に受信バッファ321に誤取り込みデータが格納されていなかったと判定する。なお、第1の値の書き込み時に受信バッファ321に誤取り込みデータが格納されていなければ、第2の値の書き込み時に受信バッファ321に第1の値が格納されていなかったことになる。そのため、CPU121は、リードによりCPU121に転送された値が、第2の値であれば、第2の値の書き込み時に受信バッファ321に第1の値が格納されていなかったと判定しても良い。 次にCPU121は、受信バッファ312における誤取り込みデータを検知するために、誤取り込み判定処理のためのリード・トランザクションを実行する。具体的には、CPU121は、レジスタ501と異なるアドレスのレジスタ(ここではレジスタ502)に格納されている値のリードを1回行う。なお、レジスタ502には、CPU121が把握している第3の値(0xBBBB_BBBB)が格納されているものとする。
CPU121は、リードによりCPU121に転送された値が、第3の値であれば、レジスタ501からの読み取り時に受信バッファ312に誤取り込みデータが格納されていなかったと判定する。一方、CPU121は、リードによりCPU121に転送された値が、レジスタ501に格納されている値(第1の値か第2の値)であれば、レジスタ501からの読み取り時に受信バッファ312に誤取り込みデータが格納されていたと判定する。
ここで、誤取り込み判定処理のためのリードとして、受信バッファ312が有する格納領域の段数より1大きい回数のリードを行うのは、誤取り込み判定処理のためのライトと同様、誤判定の抑制のためである。
なお、誤取り込み判定処理のためのリードにかかる時間の抑制を優先しても良い。その場合、例えば、誤取り込み判定処理のためのレジスタ501からのリードとして、受信バッファ312が有する格納領域の段数より1大きい回数より少ない回数のリードを行った後、レジスタ502からのリードが実行されても良い。
図6は、データの誤取り込みの判定結果と誤取り込みデータの有無の関係を示す表である。
9回目のリード・リクエストによりCPU121に転送された値が第2の値(0xAAAA_AAAA)の場合(601、603)、第1の値の書き込み時に、受信バッファ321に誤取り込みデータが無かったと判定される。一方、9回目のリード・リクエストによりCPU121に転送された値が第1の値(0x5555_5555)の場合(602、604)、第1の値の書き込み時に、受信バッファ321に誤取り込みデータが有ったと判定される。また、10回目のリード・リクエストによりCPU121に転送された値が第3の値(0xBBBB_BBBB)の場合(601、602)、レジスタ501からの読み取り時に、受信バッファ312に誤取り込みデータが無かったと判定される。一方、10回目のリード・リクエストによりCPU121に転送された値がそれ以外の値の場合(603、604)、レジスタ501からの読み取り時に、受信バッファ312に誤取り込みデータが有ったと判定される。
図7は、記録装置100によって実行される、上述の誤取り込み判定処理を示すフローチャートである。本フローチャートは、例えば、ROM115等のメモリに格納されたプログラムを第2の集積回路チップ120のCPU121がRAM127に読み出して実行することにより実現される。
まずCPU121は、S701において、印刷部130の内部レジスタ501の第1のアドレスを格納先として指定して、第1の値のライトを、受信バッファ321が有する格納領域の段数と同じ回数実行する。ここで、第1のアドレスは、0x8000_0018であり、第1の値は、0x5555_5555であるものとする。
次にCPU121は、S702において、第1のアドレスを格納先として指定して、第2の値(0xAAAA_AAAA)のライトを1回実行する。
次にCPU121は、S703において、第1のアドレスから、第1のアドレスに格納されている値を、受信バッファ312が有する格納領域の段数と同じ回数リードする。CPU121は、このリードによってCPU121に転送されたデータについては参照しない。受信バッファ312に誤取り込みデータが蓄積されていたとしても、この処理によって受信バッファ312から誤取り込みデータが取り除かれるため、誤判定を抑制できる。
次にCPU121は、S704において、第1のアドレスから、第1のアドレスに格納されている値を、1回リードする。CPU121は、このリードによってCPU121に転送された値をデータ(A)とし、RAM127等のメモリに保存しておく。S703とS704により、第1のアドレスから受信バッファ321が有する格納領域の段数より1大きい回数のリードが行われる。
次にCPU121は、S705において、第2のアドレス(0x8000_0020)から、第1のアドレスに格納されている値を、1回リードする。なお、第2のアドレスには、CPU121が予め認識している第3の値(0xBBBB_BBBB)が格納されている。
CPU121は、このリードによってCPU121に転送された値をデータ(B)とし、RAM127等のメモリに保存しておく。
次にCPU121は、S706において、データ(A)が第2の値と一致するか否かを判定する。CPU121は、YES判定である場合には、第2の値のライト時に受信バッファ321にデータが既に格納されていなかったと判定し、S707を実行する。一方、CPU121は、NO判定である場合には、第2の値のライト時に受信バッファ321にデータが既に格納されていたと判定し、S708を実行する。
次にCPU121は、S707において、データ(B)がCPU121が予め認識している第3の値と一致するか否かを判定する。CPU121は、YES判定である場合には、第3の値のリード時に受信バッファ312にデータが既に格納されていなかったと判定する。すなわち、CPU121は、誤取り込みデータが第2の集積回路チップ120の内部通信部124にも印刷部130の内部通信部131にもなかったことを特定し、誤取り込みデータ検出フラグを立てずに処理を終了する。一方、CPU121は、NO判定である場合には、第3の値のリード時に受信バッファ312にデータが既に格納されていたと判定し、S708を実行する。
CPU121は、S708において、誤取り込みデータが第2の集積回路チップ120の内部通信部124と印刷部130の内部通信部131のうち少なくとも一方にあったことを特定し、誤取り込みデータ検出フラグを立てて処理を終了する。
図8は、誤取り込みデータが検出された場合に記録装置100によって実行される回復処理を示すフローチャートである。本フローチャートは、例えば、ROM115等のメモリに格納されたプログラムを第2の集積回路チップ120のCPU121がRAM127に読み出して実行することにより実現される。
CPU121は、S801において、第2の集積回路チップ120の内部通信部124及び印刷部130の内部通信部131をリセットするためのリセット処理を開始する。具体的には、CPU121は、内部通信部124が有する格納領域から、当該格納領域に蓄積されている全てのデータを削除し、当該格納領域を空にする処理を開始する。また、CPU121は、内部通信部131が有する格納領域から、全てのデータが取り除かれるためのリセット信号を内部通信部131に送信する。これにより、誤取り込みデータや、誤取り込みデータが存在していたことにより内部回路に送信されずに残っているデータが、それぞれの内部通信部が有する格納領域から削除される。
CPU121は、S802において、それぞれの内部通信部が有する格納領域が空になったことを特定し、リセット処理を終了(解除)する。
CPU121は、S803において、第2の集積回路チップ120の内部通信部124による通信及び印刷部130の内部通信部131による通信を再開するための通信設定を実行する。当該設定は、具体的には、転送速度の設定や通信に利用されるアドレスの設定等である。
なお、回復処理は、例えば、誤取り込みデータが存在したことをユーザに通知する通知処理等であっても良い。
以下に、本発明の誤取り込み判定処理を含む一連の処理を示すフローチャートについて説明する。すなわち、以下に説明するフローチャートが示す処理が実行される場合に、本発明の誤取り込み判定処理が実行される。
図9は、内部通信部124と内部通信部131と間の通信時において、記録装置100によって実行される処理を示すフローチャートである。本フローチャートは、例えば、ROM115等のメモリに格納されたプログラムを第2の集積回路チップ120のCPU121がRAM127に読み出して実行することにより実現される。また、本フローチャートが示す処理は、内部通信部124と内部通信部131と間の通信が開始された場合に開始される。内部通信部124と内部通信部131と間の通信は、例えば、内部通信部124による、印刷データのライト・トランザクションや、吐出データの履歴情報のリード・トランザクションである。また、内部通信部124によるライト・トランザクションが行われる場合は、内部通信部131が、コレクタブル・エラーが生じたか否かを巡回冗長検査によって検知しているものとする。また、内部通信部124によるリード・トランザクションが行われる場合は、内部通信部124が、コレクタブル・エラーが生じたか否かを巡回冗長検査によって検知しているものとする。コレクタブル・エラーが生じたことが検知された場合、コレクタブル・エラーの通知のための割り込みがCPU121に対して発生する。巡回冗長検査は、1回のトランザクション毎に実行される。
CPU121は、S901において、コレクタブル・エラーの通知のための割り込みが発生したか否かを判定する。CPU121は、YES判定であれば、コレクタブル・エラーが発生したことを特定し、S902の処理を実行し、NO判定であれば、コレクタブル・エラーが発生していないことを特定し、S901の処理を再び実行する。
CPU121は、S902において、内部通信部124と内部通信部131と間の通信を一時停止する。
CPU121は、S903において、図7に示す誤取り込み判定処理を実行する。
CPU121は、S904において、S903の誤取り込み判定処理により、内部通信部124と内部通信部131のうち少なくとも一方において誤取り込みデータがあることが検出されたか否かを判定する。具体的にはCPU121は、誤取り込みデータ検出フラグが立っているかどうかを判定する。CPU121は、YES判定であれば、S905の処理を実行し、NO判定であれば、S906の処理を実行する。なお、コレクタブル・エラーが発生したにも関わらず、誤取り込みデータがないケースとは、コレクタブル・エラーの発生により再送されたデータが、内部回路に正しく受け渡されたケースである。
CPU121は、S905において、図8に示す回復処理を実行する。なおこの時、CPU121は、誤取り込みデータの存在により適切にライトもしくはリードされなかった情報を、再度ライトもしくはリードしても良い。
CPU121は、S906において、S902で停止した通信を再開する。
図10は、印刷制御部132とEEPROM150と間の通信(ライト)時において、記録装置100によって実行される処理を示すフローチャートである。本フローチャートは、例えば、ROM115等のメモリに格納されたプログラムを第2の集積回路チップ120のCPU121がRAM127に読み出して実行することにより実現される。すなわち、印刷制御部132とEEPROM150と間の通信は、内部通信部124と内部通信部131と間の通信を介してCPU121により遠隔で制御される。また、本フローチャートが示す処理は、印刷制御部132とEEPROM150との間の通信が開始される場合に開始される。
CPU121は、S1001において、EEPROM150との通信に利用するEEPROM150内の格納領域のアドレス(ライト先のアドレス)を設定する。具体的には、CPU121は、ライト先のアドレスに関する情報を内部通信部124によって内部通信部131に対してライトする。なお、内部通信部131に対してライトされた情報は、印刷制御部132に受け渡される。
CPU121は、S1002において、S1001において設定したアドレスに書き込むデータを設定する。具体的には、CPU121は、S1001において設定したアドレスに書き込むデータを内部通信部124によって内部通信部131に対してライトする。
CPU121は、S1003において、S1001において設定したデータを、ライトするためのライト設定を実行する。具体的には、CPU121は、ライト設定に関するデータを内部通信部124によって内部通信部131に対してライトする。
CPU121は、S1004において、図7に示す誤取り込み判定処理を実行する。
CPU121は、S1005において、S1004の誤取り込み判定処理により、内部通信部124と内部通信部131のうち少なくとも一方において誤取り込みデータがあることが検出されたか否かを判定する。具体的にはCPU121は、誤取り込みデータ検出フラグが立っているかどうかを判定する。CPU121は、YES判定であれば、S1006の処理を実行し、NO判定であれば、S1007の処理を実行する。
CPU121は、S1006において、図8に示す回復処理を実行する。その後、CPU121は、S1001からの処理を再び実行する。
CPU121は、S1007において、S1001~S1003で通信されたデータに基づいて、S1002において設定されたデータを印刷制御部132によってEEPROM150に対してライトする。
なお、S1001~S1003における内部通信部124と内部通信部131と間の通信時には、図9に示す処理が実行されている。
図9に示す処理では、コレクタブル・エラーの通知のための割り込みが発生した場合に、誤取り込み判定処理(S903)が実行される。しかしながら、コレクタブル・エラーが発生した時間と、割り込みがCPU121に届く時間との間に時差が生じる場合がある。すなわち、コレクタブル・エラーが発生した時間と、S903の処理が実行される時間との間に時差が生じる場合がある。すなわち、この時差においては、誤取り込みデータが発生していても、誤取り込みデータが検知されないが、この時差において通信されたデータに基づいて、印刷制御部132とEEPROM150との間の通信が実行されてしまうことがある。その場合、EEPROM150の正しいアドレスに正しいデータがライトされないことがある。この事態を回避するために、本実施形態では、印刷制御部132とEEPROM150との間の通信が実行される前(S1004)にも、誤取り込み判定処理を実行する。これにより、EEPROM150の正しいアドレスに正しいデータがライトされないことを抑制できる。
なお、EEPROM150に対して書き込み可能な回数は限られている。すなわち、受信バッファ312に誤取り込みデータがあり正確な書き込みが行われない状態にも関わらずEEPROM150に対して書き込みをしてしまうと、EEPROM150の寿命を無駄に縮めてしまう。本処理により、EEPROM150への書き込み前に誤取り込み判定処理が実行されるため、EEPROM150の寿命が無駄に縮待ってしまうことを抑制できる。
図11は、印刷制御部132とEEPROM150と間の通信(リード)時において、記録装置100によって実行される処理を示すフローチャートである。本フローチャートは、例えば、ROM115等のメモリに格納されたプログラムを第2の集積回路チップ120のCPU121がRAM127に読み出して実行することにより実現される。すなわち、印刷制御部132とEEPROM150と間の通信は、内部通信部124と内部通信部131と間の通信を介してCPU121により遠隔で制御される。また、本フローチャートが示す処理は、印刷制御部132とEEPROM150との間の通信が開始される場合に開始される。
CPU121は、S1101において、EEPROM150との通信に利用するEEPROM150内の格納領域のアドレス(リード先のアドレス)を設定する。具体的には、CPU121は、リード先のアドレスに関する情報を内部通信部124によって内部通信部131に対してライトする。
CPU121は、S1102において、S1101において設定したアドレスからデータをリードするためのリード設定を実行する。具体的には、CPU121は、リード設定に関するデータを内部通信部124によって内部通信部131に対してライトする。
CPU121は、S1103において、図7に示す誤取り込み判定処理を実行する。
CPU121は、S1104において、S1103の誤取り込み判定処理により、内部通信部124と内部通信部131のうち少なくとも一方において誤取り込みデータがあることが検出されたか否かを判定する。具体的にはCPU121は、誤取り込みデータ検出フラグが立っているかどうかを判定する。CPU121は、YES判定であれば、S1105の処理を実行し、NO判定であれば、S1106の処理を実行する。
CPU121は、S1105において、図8に示す回復処理を実行する。その後、CPU121は、S1101からの処理を再び実行する。
CPU121は、S1106において、S1101、S1102で通信されたデータに基づいて、S1101において設定されたアドレスからデータを印刷制御部132によってEEPROM150からリードする。印刷制御部132によってリードされたデータは、内部通信部124と内部通信部131と間の通信を介してCPU121に送信される。
このように、本実施形態では、印刷制御部132とEEPROM150との間の通信が実行される前(S1103)にも、誤取り込み判定処理を実行する。これは、図10の説明にて述べたように、コレクタブル・エラーが発生した時間と、S903の処理が実行される時間との間に時差が生じる場合があるためである。これにより、EEPROM150の正しいアドレスからデータがリードされないことを抑制できる。
なお、EEPROM150から情報を読み取り可能な回数は限られている。すなわち、受信バッファ321に誤取り込みデータがあり正確な読み取りが行われない状態にも関わらずEEPROM150から読み取りをしてしまうと、EEPROM150の寿命を無駄に縮めてしまう。本処理により、EEPROM150からの読み取り前に誤取り込み判定処理が実行されるため、EEPROM150の寿命が無駄に縮待ってしまうことを抑制できる。
図12は、印刷制御部132とインク吐出部160と間の通信(ヘッド温度パラメータ設定)時において、記録装置100によって実行される処理を示すフローチャートである。本フローチャートは、例えば、ROM115等のメモリに格納されたプログラムを第2の集積回路チップ120のCPU121がRAM127に読み出して実行することにより実現される。すなわち、印刷制御部132とインク吐出部160と間の通信は、内部通信部124と内部通信部131と間の通信を介してCPU121により遠隔で制御される。また、本フローチャートが示す処理は、印刷制御部132とインク吐出部160との間の通信が開始される場合に開始される。
CPU121は、S1201において、インク吐出のためのインク吐出部160の昇温温度パラメータを設定する。具体的には、CPU121は、インク吐出のためのインク吐出部160の昇温温度パラメータを内部通信部124によって内部通信部131に対してライトする。
CPU121は、S1202において、図7に示す誤取り込み判定処理を実行する。
CPU121は、S1203において、S1202の誤取り込み判定処理により、内部通信部124と内部通信部131のうち少なくとも一方において誤取り込みデータがあることが検出されたか否かを判定する。具体的にはCPU121は、誤取り込みデータ検出フラグが立っているかどうかを判定する。CPU121は、YES判定であれば、S1204の処理を実行し、NO判定であれば、S1205の処理を実行する。
CPU121は、S1204において、図8に示す回復処理を実行する。その後、CPU121は、S1201からの処理を再び実行する。
CPU121は、S1205において、S1201で通信されたデータに基づいて、昇温温度パラメータを、インク吐出部160にライトする。インク吐出部160は、昇温温度パラメータのライトを受け付けた場合、昇温温度パラメータに基づいて、インク吐出部160の温度を調整する。
このように、本実施形態では、印刷制御部132とインク吐出部160との間の通信が実行される前(S1202)にも、誤取り込み判定処理を実行する。これは、図10の説明にて述べたように、コレクタブル・エラーが発生した時間と、S903の処理が実行される時間との間に時差が生じる場合があるためである。これにより、インク吐出部160に正しいデータがライトされないことを抑制できる。
また、昇温温度パラメータとして、インク吐出部160に正しいデータがライトされない場合、インク吐出部160の温度が適切に調整されず、印刷品位等に影響が生じてしまうことがある。本処理により、昇温温度パラメータが書き込まれる前に誤取り込み判定処理が実行されるため、印刷品位等に影響が生じてしまうことを抑制できる。
なお、昇温温度パラメータが通信される前以外にも、重要なデータが通信される前には、誤取り込み判定処理が実行されることが好ましい。
また、本実施形態では、第2の集積回路チップ120と印刷部130の間の通信において誤取り込み検知処理が実行される形態を説明したが、これに限定されない。例えば、第1の集積回路チップ110と第2の集積回路チップ120の間の通信においても同様に誤取り込み検知処理を実行可能である。
(第2実施形態)
第1実施形態では、内部通信部124と内部通信部131のうち少なくとも一方において誤取り込みデータがあることが検出された場合に、内部通信部124と内部通信部131の両方に対してリセット処理が実行される形態について説明した。本実施形態では、誤取り込み判定処理において取得されたデータに基づいて、リセット処理が実行される領域を変更する形態について説明する。
なお、回復処理以外の処理のシーケンスや、記録装置100の構成は、第1実施形態と同様であるものとする。
図13は、誤取り込みデータが検出された場合に記録装置100によって実行される回復処理を示すフローチャートである。本フローチャートは、例えば、ROM115等のメモリに格納されたプログラムを第2の集積回路チップ120のCPU121がRAM127に読み出して実行することにより実現される。
CPU121は、S1301において、印刷部130の受信バッファ321に誤取り込みデータがなかったか否かを判定する。具体的には、CPU121は、データ(A)が第2の値と一致するか否かを判定する。CPU121は、YES判定である場合には、S1303を実行し、NO判定である場合には、S1304を実行する。
CPU121は、S1302において、第2の集積回路チップ120の受信バッファ312に誤取り込みデータがなかったか否かを判定する。具体的には、CPU121は、データ(B)が第3の値と一致するか否かを判定する。CPU121は、YES判定である場合には、S1304を実行し、NO判定である場合には、S1305を実行する。
CPU121は、S1303において、第2の集積回路チップ120の受信バッファ312をリセットするためのリセット処理を開始する。具体的には、CPU121は、第2の集積回路チップ120の受信バッファ312が有する格納領域から、全てのデータを取り除き、当該格納領域を空にする処理を開始する。なお、S1301がYES判定である場合に必ずS1303が実行されるのは、図7の処理で既に誤取り込みデータが検知されている以上、S1301がYES判定である場合には、受信バッファ312に誤取り込みデータがあったためである。
CPU121は、S1304において、印刷部130の受信バッファ321をリセットするためのリセット処理を開始する。具体的には、CPU121は、印刷部130の受信バッファ321が有する格納領域から、全てのデータが取り除かれるためのリセット信号を内部通信部131に送信する。
CPU121は、S1305において、第2の集積回路チップ120の受信バッファ312及び印刷部130の受信バッファ321をリセットするためのリセット処理を開始する。
CPU121は、S1306において、リセット対象の受信バッファが有する格納領域が空になったことを特定し、リセット処理を終了(解除)する。
CPU121は、S1307において、第2の集積回路チップ120の内部通信部124による通信及び印刷部130の内部通信部131による通信を再開するための通信設定を実行する。
図6に示すように、誤取り込み判定処理によって取得されるデータ(A)やデータ(B)の内容に応じて、いずれの受信バッファに誤取り込みデータが存在していたかが特定される。そのため、本実施形態により、誤取り込みデータが存在していた受信バッファにのみ、リセット処理を実行することができる。すなわち、回復処理に係る時間を短縮することができる。
なお、本実施形態は、S706がNO判定の場合と、S707がNO判定の場合とで、同じフラグが立っている形態としたが、例えば、それぞれの場合で異なるフラグが立つような形態としても良い。そして、回復処理では、いずれのフラグが立っているかどうかを判定することで、S1303~S1305のうちいずれの処理を実行するかを判定しても良い。
(その他の実施形態)
上述では、誤取り込み判定処理においてレジスタ501からのリードが行われた後に、レジスタ502からのリードが行われる形態を説明したが、この形態に限定されない。誤取り込み判定処理において、レジスタ502からのリードが先に行われ、受信バッファ312に誤取り込みデータが格納されていたか否かを先に判定して良い。
上述の実施形態における誤取り込み判定処理は、ライト・トランザクションとリード・トランザクションの両方を実行する。この誤取り込み判定処理は、第2の集積回路チップ120がライトのみを実行するパターンと、第2の集積回路チップ120がライトとリードを並行して実行するパターンにおいて特に有効である。なお、第2の集積回路チップ120がリードのみを実行するパターンにおいては、CPU121は、ライト・トランザクションを実行せず、リード・トランザクションのみ実行する誤取り込み判定処理を実行して良い。
具体的には、CPU121は、誤取り込み判定処理におけるライト・トランザクションを実行せず、レジスタ502以外のレジスタに格納されている値のリードを、受信バッファ321が有する格納領域の段数と同じ回数行う。すなわち、CPU121は、受信バッファ321が有する格納領域の段数と同じ回数のリードを、同一のアドレスのレジスタを指定して行う。その後、CPU121は、レジスタ502に格納されている値のリードを、一回行う。そして、CPU121は、最後に実行したリードによってCPU121に転送された値が、第3の値であれば、受信バッファ312に誤取り込みデータが格納されていなかったと判定する。すなわち、CPU121は、第3の値のリード時に、既に受信バッファ312にデータが格納されていなかったと判定する。一方、CPU121は、最後に実行したリードによってCPU121に転送された値が、第3の値以外の値であれば、受信バッファ312に誤取り込みデータが格納されていなかったと判定する。すなわち、CPU121は、第3の値のリード時に、既に受信バッファ312にデータが格納されていたと判定する。
なお、誤取り込み判定処理のためのリードにかかる時間の抑制を優先しても良い。その場合、例えば、誤取り込み判定処理のためのレジスタ502以外のレジスタからのリードとして、受信バッファ312が有する格納領域の段数と同じ回数より少ない回数のリードを行った後、レジスタ502からのリードが実行されても良い。また例えば、レジスタ502に格納されている値のリードを1回のみ行う形態とし、レジスタ502以外のレジスタからのリードを行わない形態としても良い。
また、上述では、コレクタブル・エラーの通知のための割り込みが発生した場合、誤取り込み判定処理におけるライト・トランザクションが開始されていた。例えば、割り込みの発生源に応じて、処理が切り替えられる構成でも良い。具体的には、受信バッファ321が受信したデータにコレクタブル・エラーが発生したことにより割り込みが生じていたならば、誤取り込み判定処理におけるライト・トランザクション及びリード・トランザクションが開始されても良い。また、受信バッファ312が受信したデータにコレクタブル・エラーが発生したことにより割り込みが生じていたならば、誤取り込み判定処理におけるライト・トランザクションを実行せず、リード・トランザクションのみ実行しても良い。
110 第1の集積回路チップ
120 第2の集積回路チップ
130 印刷部

Claims (34)

  1. 少なくとも1つのプロセッサーと、
    所定の記憶領域と、
    データを受信し、受信したデータを前記所定の記憶領域に格納する第1受信バッファと、
    データを受信し、受信したデータを前記少なくとも1つのプロセッサーに転送する第2受信バッファと、
    を有する情報処理装置であって、
    前記所定の記憶領域の第1のアドレスを格納先として指定して、第1のデータを前記第1受信バッファに送信する送信手段と、
    前記所定の記憶領域の前記第1のアドレスに格納されているデータを、前記第2受信バッファによって、前記第1のデータが前記第1受信バッファに送信された後に受信する受信手段と、
    前記所定の記憶領域の前記第1のアドレスに格納されているデータが前記第2受信バッファによって受信されたことに応じて前記少なくとも1つのプロセッサーに転送されたデータに基づいて、前記第1のデータが前記第1受信バッファに送信された時に前記第1受信バッファに既にデータが格納されていたか否かを判定する判定処理を実行する判定手段と、を有することを特徴とする情報処理装置。
  2. 前記第1のデータが前記第1受信バッファに送信された時に前記第1受信バッファに既にデータが格納されていたと判定された場合、所定の処理を実行する実行手段を更に有することを特徴とする請求項1に記載の情報処理装置。
  3. 前記所定の処理は、前記第1受信バッファに格納されているデータを削除する処理であることを特徴とする請求項2に記載の情報処理装置。
  4. 前記所定の記憶領域の前記第1のアドレスに格納されているデータが前記第2受信バッファによって受信されたことに応じて前記少なくとも1つのプロセッサーに転送されたデータが、前記第1のデータである場合、前記第1のデータが前記第1受信バッファに送信された時に前記第1受信バッファに既にデータが格納されていなかったと判定され、
    前記所定の記憶領域の前記第1のアドレスに格納されているデータが前記第2受信バッファによって受信されたことに応じて前記少なくとも1つのプロセッサーに転送されたデータが、前記第1のデータでない場合、前記第1のデータが前記第1受信バッファに送信された時に前記第1受信バッファに既にデータが格納されていたと判定されることを特徴とする請求項1乃至3のいずれか記載の情報処理装置。
  5. 前記所定の記憶領域の前記第1のアドレスが格納先として指定されて、前記第1のデータと異なる第2のデータが前記第1受信バッファに、前記第1のデータが前記第1受信バッファに送信される前に送信され、
    前記所定の記憶領域の前記第1のアドレスに格納されているデータが、前記第2受信バッファによって、前記第1のデータ及び前記第2のデータが前記第1受信バッファに送信された後に受信されることを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
  6. 前記所定の記憶領域の前記第1のアドレスが格納先として指定されて、前記第1受信バッファが有する格納領域の段数と同じ回数、前記第2のデータが前記第1受信バッファに、前記第1のデータが前記第1受信バッファに送信される前に送信され、
    前記第1受信バッファが実行する1回のデータ受信において、1段の前記格納領域が用いられることを特徴とする請求項5に記載の情報処理装置。
  7. 前記第1受信バッファが受信したデータにエラーが生じているかどうかを判定するエラー判定手段と、
    前記第1受信バッファが受信したデータにエラーが生じていると判定された場合に、前記判定処理が実行されることを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
  8. 前記第1受信バッファが受信したデータにエラーが生じている場合に発行される割り込みを、前記少なくとも1つのプロセッサーにより受け付ける受け付け手段をさらに有し、
    前記割り込みが前記少なくとも1つのプロセッサーにより受け付けられた場合、前記判定処理が実行されることを特徴とする請求項7に記載の情報処理装置。
  9. 巡回冗長検査により、前記第1受信バッファが受信したデータにエラーが生じているかどうかが判定されることを特徴とする請求項7又は8に記載の情報処理装置。
  10. 前記第1受信バッファがデータを受信することに基づいて前記所定の記憶領域に格納された所定のデータを、前記所定の記憶領域と異なる他の記憶領域に送信する第2送信手段をさらに有し、
    前記所定のデータが、前記他の記憶領域に送信される前に、前記判定処理が実行されることを特徴とする請求項1乃至9のいずれか1項に記載の情報処理装置。
  11. 前記他の記憶領域は、Electrically Erasable Programmable Read-Only Memoryであることを特徴とする請求項10に記載の情報処理装置。
  12. 前記所定のデータは、前記情報処理装置が有するいずれかの構成の温度を調節するためのデータであることを特徴とする請求項10に記載の情報処理装置。
  13. 前記所定の記憶領域の前記第1のアドレスと異なる第2のアドレスに格納されているデータを、前記第2受信バッファによって受信する第2受信手段と、
    前記所定の記憶領域の前記第2のアドレスに格納されているデータが前記第2受信バッファによって受信されたことに応じて前記少なくとも1つのプロセッサーに転送されたデータに基づいて、前記所定の記憶領域の前記第2のアドレスに格納されているデータが前記第2受信バッファに送信された時に前記第2受信バッファに既にデータが格納されていたか否かを判定する第2判定処理を実行する第2判定手段と、をさらに有することを特徴とする請求項1乃至12のいずれか1項に記載の情報処理装置。
  14. 前記所定の記憶領域の前記第2のアドレスに格納されているデータが前記第2受信バッファに送信された時に前記第2受信バッファに既にデータが格納されていたと判定された場合、特定の処理を実行する第2実行手段と、をさらに有することを特徴とする請求項13に記載の情報処理装置。
  15. 前記特定の処理は、前記第2受信バッファに格納されているデータを削除する処理であることを特徴とする請求項14に記載の情報処理装置。
  16. 前記所定の記憶領域の前記第2のアドレスには、第3のデータが格納されており、
    前記所定の記憶領域の前記第2のアドレスに格納されているデータが前記第2受信バッファによって受信されたことに応じて前記少なくとも1つのプロセッサーに転送されたデータが、前記第3のデータである場合、前記所定の記憶領域の前記第2のアドレスに格納されているデータが前記第2受信バッファに送信された時に前記第2受信バッファに既にデータが格納されていなかったと判定され、
    前記所定の記憶領域の前記第2のアドレスに格納されているデータが前記第2受信バッファによって受信されたことに応じて前記少なくとも1つのプロセッサーに転送されたデータが、前記第3のデータでない場合、前記所定の記憶領域の前記第2のアドレスに格納されているデータが前記第2受信バッファに送信された時に前記第2受信バッファに既にデータが格納されていたと判定されることを特徴とする請求項13乃至15のいずれか1項に記載の情報処理装置。
  17. 前記所定の記憶領域の前記第2のアドレスに格納されているデータが、前記第2受信バッファによって、前記所定の記憶領域の前記第1のアドレスに格納されているデータが前記第2受信バッファによって受信された後に受信されることを特徴とする請求項13乃至16のいずれか1項に記載の情報処理装置。
  18. 前記所定の記憶領域の前記第2のアドレスに格納されているデータが、前記第2受信バッファによって、前記第2受信バッファが有する格納領域の段数と同じ回数、前記所定の記憶領域の前記第1のアドレスに格納されているデータが前記第2受信バッファによって受信された後に受信され、
    前記第2受信バッファが実行する1回のデータ受信において、1段の前記格納領域が用いられることを特徴とする請求項13乃至17のいずれか1項に記載の情報処理装置。
  19. 前記所定の記憶領域と異なる他の記憶領域から送信された特定のデータを、前記第2受信バッファによって受信する第2受信手段をさらに有し、
    前記特定のデータが前記第2受信バッファによって受信される前に、前記第2判定処理が実行されることを特徴とする請求項13乃至18のいずれか1項に記載の情報処理装置。
  20. 記録剤によって記録媒体に印刷を実行する印刷手段をさらに有することを特徴とする請求項1乃至19のいずれか1項に記載の情報処理装置。
  21. 少なくとも1つのプロセッサーと、
    所定の記憶領域と、
    データを受信し、受信したデータを前記少なくとも1つのプロセッサーに転送する受信バッファと、
    を有する情報処理装置であって、
    前記所定の記憶領域の所定のアドレスに格納されているデータを、前記受信バッファによって受信する受信手段と、
    前記所定の記憶領域の前記所定のアドレスに格納されており、前記少なくとも1つのプロセッサーが予め認識しているデータが前記受信バッファによって受信されたことに応じて前記少なくとも1つのプロセッサーに転送されたデータに基づいて、所定のデータが前記受信バッファに送信された時に前記受信バッファに既にデータが格納されていたか否かを判定する判定処理を実行する判定手段と、を有することを特徴とする情報処理装置。
  22. 前記所定のデータが前記受信バッファに送信された時に前記受信バッファに既にデータが格納されていたと判定された場合、所定の処理を実行する実行手段と、をさらに有することを特徴とする請求項21に記載の情報処理装置。
  23. 前記所定の処理は、前記受信バッファに格納されているデータを削除する処理であることを特徴とする請求項22に記載の情報処理装置。
  24. 前記所定の記憶領域の前記所定のアドレスには、前記所定のデータが格納されており、
    前記所定の記憶領域の前記所定のアドレスに格納されているデータが前記受信バッファによって受信されたことに応じて前記少なくとも1つのプロセッサーに転送されたデータが、前記所定のデータである場合、前記所定のデータが前記受信バッファに送信された時に前記受信バッファに既にデータが格納されていなかったと判定され、
    前記所定の記憶領域の前記所定のアドレスに格納されているデータが前記受信バッファによって受信されたことに応じて前記少なくとも1つのプロセッサーに転送されたデータが、前記所定のデータでない場合、前記所定のデータが前記受信バッファに送信された時に前記受信バッファに既にデータが格納されていたと判定されることを特徴とする請求項21乃至23のいずれか1項に記載の情報処理装置。
  25. 前記所定の記憶領域の前記所定のアドレスに格納されているデータが、前記受信バッファによって、前記所定の記憶領域の前記所定のアドレスと異なる他のアドレスに格納されているデータが前記受信バッファによって受信された後に受信されることを特徴とする請求項24に記載の情報処理装置。
  26. 前記所定の記憶領域の前記所定のアドレスに格納されているデータが、前記受信バッファによって、前記受信バッファが有する格納領域の段数と同じ回数、前記所定の記憶領域の前記他のアドレスに格納されているデータが前記受信バッファによって受信された後に受信されることを特徴とする請求項25に記載の情報処理装置。
  27. 前記受信バッファが受信したデータにエラーが生じているかどうかを判定するエラー判定手段と、
    前記受信バッファが受信したデータにエラーが生じていると判定された場合に、前記判定処理が実行されることを特徴とする請求項21乃至26のいずれか1項に記載の情報処理装置。
  28. 前記受信バッファが受信したデータにエラーが生じている場合に発行される割り込みを、前記少なくとも1つのプロセッサーにより受け付ける受け付け手段をさらに有し、
    前記割り込みが前記少なくとも1つのプロセッサーにより受け付けられた場合、前記判定処理が実行されることを特徴とする請求項27に記載の情報処理装置。
  29. 巡回冗長検査により、前記受信バッファが受信したデータにエラーが生じているかどうかが判定されることを特徴とする請求項27又は28に記載の情報処理装置。
  30. 前記所定の記憶領域と異なる他の記憶領域から送信された特定のデータを、前記受信バッファによって受信する第2受信手段をさらに有し、
    前記特定のデータが前記受信バッファによって受信される前に、前記判定処理が実行されることを特徴とする請求項21乃至29のいずれか1項に記載の情報処理装置。
  31. 記録剤によって記録媒体に印刷を実行する印刷手段をさらに有することを特徴とする請求項21乃至30のいずれか1項に記載の情報処理装置。
  32. 少なくとも1つのプロセッサーと、
    所定の記憶領域と、
    データを受信し、受信したデータを前記所定の記憶領域に格納する第1受信バッファと、
    データを受信し、受信したデータを前記少なくとも1つのプロセッサーに転送する第2受信バッファと、
    を有する情報処理装置の制御方法であって、
    前記所定の記憶領域の第1のアドレスを格納先として指定して、第1のデータを前記第1受信バッファに送信する送信ステップと、
    前記所定の記憶領域の前記第1のアドレスに格納されているデータを、前記第2受信バッファによって、前記第1のデータが前記第1受信バッファに送信された後に受信する受信ステップと、
    前記所定の記憶領域の前記第1のアドレスに格納されているデータが前記第2受信バッファによって受信されたことに応じて前記少なくとも1つのプロセッサーに転送されたデータに基づいて、前記第1のデータが前記第1受信バッファに送信された時に前記第1受信バッファに既にデータが格納されていたか否かを判定する判定処理を実行する判定ステップと、を有することを特徴とする制御方法。
  33. 少なくとも1つのプロセッサーと、
    所定の記憶領域と、
    データを受信し、受信したデータを前記少なくとも1つのプロセッサーに転送する受信バッファと、
    を有する情報処理装置の制御方法であって、
    前記所定の記憶領域の所定のアドレスに格納されており、前記少なくとも1つのプロセッサーが予め認識しているデータを、前記受信バッファによって受信する受信ステップと、
    前記所定の記憶領域の前記所定のアドレスに格納されているデータが前記受信バッファによって受信されたことに応じて前記少なくとも1つのプロセッサーに転送されたデータに基づいて、所定のデータが前記受信バッファに送信された時に前記受信バッファに既にデータが格納されていたか否かを判定する判定処理を実行する判定ステップと、を有することを特徴とする制御方法。
  34. 請求項1乃至31のいずれか1項に記載の情報処理装置の各手段としてコンピュータを動作させることを特徴とするプログラム。
JP2018035524A 2018-02-28 2018-02-28 情報処理装置、制御方法及びプログラム Active JP7016725B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018035524A JP7016725B2 (ja) 2018-02-28 2018-02-28 情報処理装置、制御方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018035524A JP7016725B2 (ja) 2018-02-28 2018-02-28 情報処理装置、制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2019152907A JP2019152907A (ja) 2019-09-12
JP7016725B2 true JP7016725B2 (ja) 2022-02-07

Family

ID=67946262

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018035524A Active JP7016725B2 (ja) 2018-02-28 2018-02-28 情報処理装置、制御方法及びプログラム

Country Status (1)

Country Link
JP (1) JP7016725B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003085129A (ja) 2001-07-03 2003-03-20 Sharp Corp データ通信コントローラ及びデータ転送装置
US20080148135A1 (en) 2006-12-13 2008-06-19 Hughes William A Partial CRC Insertion in Data Packets for Early Forwarding
JP2010092493A (ja) 2009-11-24 2010-04-22 Toshiba Storage Device Corp インターフェース装置及びパケット転送方法
JP2010238150A (ja) 2009-03-31 2010-10-21 Toshiba Corp PCIExpress通信システム、及びその通信方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934831A (ja) * 1995-07-21 1997-02-07 Nec Eng Ltd バスアダプタのデータ転送方式

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003085129A (ja) 2001-07-03 2003-03-20 Sharp Corp データ通信コントローラ及びデータ転送装置
US20080148135A1 (en) 2006-12-13 2008-06-19 Hughes William A Partial CRC Insertion in Data Packets for Early Forwarding
JP2010238150A (ja) 2009-03-31 2010-10-21 Toshiba Corp PCIExpress通信システム、及びその通信方法
JP2010092493A (ja) 2009-11-24 2010-04-22 Toshiba Storage Device Corp インターフェース装置及びパケット転送方法

Also Published As

Publication number Publication date
JP2019152907A (ja) 2019-09-12

Similar Documents

Publication Publication Date Title
JP7381676B2 (ja) 印刷装置及びその制御方法
JP6261305B2 (ja) 原稿読取装置、原稿読取装置の制御方法、及びプログラム
US9230205B2 (en) Image forming apparatus, non-transitory computer-readable recording medium storing an image forming program, and image forming method
JP5761486B2 (ja) 画像形成装置および画像形成方法
JP7016725B2 (ja) 情報処理装置、制御方法及びプログラム
JP5939024B2 (ja) 画像処理装置
JP6406219B2 (ja) 通信装置及び画像形成装置
EP2192759B1 (en) Image-forming device
JP4788974B2 (ja) 画像処理装置
US10949139B2 (en) Printing apparatus having a predetermined memory used as spool buffer for print jobs
JP2023112360A (ja) 情報処理装置および情報処理方法
US10678486B2 (en) Printing apparatus controlling spooling of image data in volatile and non-volatile memories based on memory capacity
US20120268789A1 (en) Image forming apparatus and method for controlling image forming apparatus
CN109814813B (zh) 具有多个存储器的装置、控制方法和存储介质
JP2019179292A (ja) 記録装置、その制御方法、及びプログラム
JP2019034455A (ja) 画像形成装置、消耗品の管理方法、及びプログラム
JP2009053935A (ja) 情報処理装置及び履歴情報管理プログラム
JP2010128274A (ja) 画像形成装置
JP2016218741A (ja) 画像形成装置
JP4816284B2 (ja) 画像形成装置の制御方法及び画像形成装置
JP5743531B2 (ja) 画像処理装置、その制御方法及びプログラム
JP2008186094A (ja) 印刷システム
JP2007174538A (ja) 画像形成装置及び画像形成方法
JP2003060821A (ja) 画像出力装置
JP2019102013A (ja) 電子装置及び画像形成システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210922

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211210

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: 20211228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220126