(57)【特許請求の範囲】
【請求項１】
ホスト装置との通信処理を行う制御部と、
前記ホスト装置から送信された書き込みデータパケットに含まれる書き込みデータが書き込まれる記憶部と、
前記記憶部のアクセス制御を行う記憶制御部と、
を含み、
前記制御部は、
前記ホスト装置から、前記書き込みデータパケットを受信し、
前記書き込みデータパケットに含まれる前記書き込みデータと付加データとによって構成されるデータパターンが、特定パターンと一致しないと判定された場合は、前記記憶制御部に対して、前記書き込みデータを前記記憶部に書き込む際のアドレスを特定する情報であるアドレス情報の更新指示を行うとともに、前記書き込みデータの書き込み指示を行い、
前記書き込みデータと前記付加データとによって構成される前記データパターンが、前記特定パターンと一致すると判定された場合は、前記記憶制御部に対して、前記アドレス情報の更新指示を行う一方で、前記書き込みデータの書き込み指示を行わず、
前記付加データは、前記書き込みデータのエラーチェック用のデータであり、
前記特定パターンは、前記エラーチェックにおいてエラーと判定されるデータであることを特徴とする記憶装置。
【請求項２】
請求項１において、
前記制御部は、
前記書き込みデータパケットと前記付加データに基づく前記エラーチェックにおいてエラーと判定され、且つ、前記データパターンが前記特定パターンと一致しないと判定した場合は、前記ホスト装置に対してデータエラーを表す情報を送信することを特徴とする記憶装置。
【請求項３】
請求項１又は２において、
前記書き込みデータパケットは、前記付加データとしてパリティーデータを含み、
前記制御部は、
前記書き込みデータと前記パリティーデータにより構成される前記データパターンが前記特定パターンと一致しないと判定され、且つ、前記書き込みデータと前記パリティーデータの関係が肯定されている場合は、前記記憶制御部に対して、前記アドレス情報の更新指示を行うとともに、前記書き込みデータの書き込み指示を行い、
前記書き込みデータと前記パリティーデータとによって構成される前記データパターンが、前記特定パターンと一致すると判定された場合は、前記記憶制御部に対して、前記アドレス情報の更新指示を行う一方で、前記書き込みデータの書き込み指示を行わないことを特徴とする記憶装置。
【請求項４】
請求項１又は２において、
前記書き込みデータパケットは、前記付加データとして前記書き込みデータの反転データを含み、
前記制御部は、
前記書き込みデータと前記反転データにより構成される前記データパターンが前記特定パターンと一致しないと判定された場合は、前記記憶制御部に対して、前記アドレス情報の更新指示を行うとともに、前記書き込みデータの書き込み指示を行い、
前記書き込みデータと前記反転データとによって構成される前記データパターンが、前記特定パターンと一致すると判定された場合は、前記記憶制御部に対して、前記アドレス情報の更新指示を行う一方で、前記書き込みデータの書き込み指示を行わないことを特徴とする記憶装置。
【請求項５】
請求項４において、
前記特定パターンは、第１のデータと、前記第１のデータの反転データではない第２のデータにより構成されるパターンであることを特徴とする記憶装置。
【請求項６】
請求項１又は２において、
前記書き込みデータパケットは、前記付加データとしてパリティーデータ及び前記書き込みデータの反転データを含み、
前記制御部は、
前記書き込みデータ、前記パリティーデータ及び前記反転データにより構成される前記データパターンが前記特定パターンと一致しないと判定され、且つ、前記書き込みデータと前記パリティーデータの関係が肯定されている場合は、前記記憶制御部に対して、前記アドレス情報の更新指示を行うとともに、前記書き込みデータの書き込み指示を行い、
前記書き込みデータ、前記パリティーデータ及び前記反転データによって構成される前記データパターンが、前記特定パターンと一致すると判定された場合は、前記記憶制御部に対して、前記アドレス情報の更新指示を行う一方で、前記書き込みデータの書き込み指示を行わないことを特徴とする記憶装置。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記制御部は、
コマンドパケットに対する前記書き込みデータパケットとして、第１〜第ｍ（ｍは２以上の整数）の書込みデータパケットを受信し、
前記第１〜第ｍの書込みデータパケットのうち、第ｉ（ｉは１≦ｉ≦ｍを満たす整数）の書込みデータパケットは、第ｉの書き込みデータと、第ｉの付加データを含み、
前記第ｉの書き込みデータと前記第ｉの付加データにより構成される前記データパターンが前記特定パターンと一致しないと判定された場合は、前記記憶制御部に対して、前記アドレス情報の更新指示を行うとともに、前記第ｉの書き込みデータの書き込み指示を行い、
前記第ｉの書き込みデータと前記第ｉの付加データとによって構成される前記データパターンが、前記特定パターンと一致すると判定された場合は、前記記憶制御部に対して、前記アドレス情報の更新指示を行う一方で、前記第ｉの書き込みデータの書き込み指示を
行わないことを特徴とする記憶装置。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記制御部は、
前記データパターンと前記特定パターンとを比較する比較部と、
前記付加データに基づくエラーチェックを行うエラー検出部と、
を含むことを特徴とする記憶装置。
【請求項９】
請求項１乃至８のいずれかに記載の記憶装置を含むことを特徴とする液体容器。
【請求項１０】
第１の記憶装置〜第ｎ（ｎは２以上の整数）の記憶装置との通信処理を行う通信処理部と、
前記通信処理部を制御する制御部と、
を含み、
前記通信処理部は、
前記第１の記憶装置〜前記第ｎの記憶装置のうちの第ｊ（ｊは１≦ｊ≦ｎを満たす整数）の記憶装置に対して、コマンドパケットと、前記コマンドパケットに対応する複数の書き込みデータパケットを送信する場合に、
前記複数の書き込みデータパケットの各書き込みデータパケットは、書き込みデータと付加データを含み、
前記第ｊの記憶装置の記憶部に前記書き込みデータを書き込まない前記書き込みデータパケットは、前記書き込みデータと前記付加データとによって構成されるデータパターンが、特定パターンと一致するように設定し、
前記第ｊの記憶装置の前記記憶部に前記書き込みデータを書き込む前記書き込みデータパケットは、前記書き込みデータと前記付加データとによって構成される前記データパターンが、前記特定パターンと一致しないように設定し、
前記付加データは、前記書き込みデータのエラーチェック用のデータであり、
前記特定パターンは、前記エラーチェックにおいてエラーと判定されるデータであることを特徴とするホスト装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置、液体容器及びホスト装置に関する。
【背景技術】
【０００２】
従来、ホスト装置から送信されるデータをシーケンシャルに記憶する記憶装置が知られている。このような記憶装置は、所望の論理アドレスに対応するデータの書き込み処理を実行するために、当該所望の論理アドレスよりも前にアクセスされる論理アドレスのデータに対する処理が必要となる場合がある。例えば、第１〜第ｋ（ｋは２以上の整数）の書き込みデータパケットがホスト装置から順次送信される場合、記憶装置で第ｋの書き込みデータパケットの書き込み処理を行うためには、第１〜第ｋ−１の書き込みデータパケットも受信しておく必要がある。この際、記憶装置が第１〜第ｋ−１の書き込みデータパケットの書き込み処理を実行すると、書き込み時間が増大してしまう。
【０００３】
これに対して、書き込み不要なデータパケットを非書き込みとする記憶装置やホスト装置が開示されている。
【０００４】
特許文献１には、書き込みデータパケットにデータパリティービットを付加して、記憶装置に送信するホスト装置と、誤り検出オペレーションデコーダーがパリティーをチェックし、誤りがあるときには書き込みイネーブルとしない記憶装置が開示されている。特許文献１の手法では、書き込み不要のアドレスについては、ホスト装置が誤りのあるデータ（送り用符号化データ）を生成して記憶装置に送信することで、記憶装置は書き込み処理を省略できる。
【０００５】
また特許文献２には、書き込みイネーブルビットＷＥを含むデータパケットを記憶装置に送信するホスト装置と、書き込みイネーブルビットＷＥが、書き込み非許可のときには、アドレスのみ更新し、書き込みは実行しない記憶装置が開示されている。特許文献２の手法では、ホスト装置が書き込みイネーブルビットＷＥを書き込み非許可に設定して記憶装置に送信することで、記憶装置は書き込み処理を省略できる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−２５９２２５号公報
【特許文献２】特開２０１２−８８７７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の手法では、誤りを検出した場合に、記憶装置は、本当にエラーが発生したのか、ホスト装置が送り用符号化データを送信したのかを判別することができない。また、特許文献２の手法では、ホスト装置は、送信するデータパケットに書き込みイネーブルビットＷＥを含めなくてはいけない。そのため、データパケットのサイズが大きくなってしまう、或いはデータパケットに含まれる書き込み用のデータのサイズが小さくなってしまう。
【０００８】
本発明の幾つかの態様によれば、効率的なデータ構成により適切に書き込みと非書き込みを制御する記憶装置、液体容器及びホスト装置を提供できる。
【課題を解決するための手段】
【０００９】
本発明の一態様は、ホスト装置との通信処理を行う制御部と、前記ホスト装置から送信された書き込みデータパケットに含まれる書き込みデータが書き込まれる記憶部と、前記記憶部のアクセス制御を行う記憶制御部と、を含み、前記制御部は、前記ホスト装置から、前記書込みデータパケットを受信し、前記書き込みデータパケットに含まれる前記書き込みデータと付加データとによって構成されるデータパターンが、特定パターンと一致しないと判定された場合は、前記記憶制御部に対して、アドレス情報の更新指示を行うとともに、前記書き込みデータの書き込み指示を行い、前記書き込みデータと前記付加データとによって構成される前記データパターンが、前記特定パターンと一致すると判定された場合は、前記記憶制御部に対して、前記アドレス情報の更新指示を行う一方で、前記書き込みデータの書き込み指示を行わない記憶装置に関係する。
【００１０】
本発明の一態様では、記憶装置の制御部は、書き込みデータと付加データにより構成されるデータパターンと、特定パターンとの一致判定の結果に基づいて、書き込みデータの書き込み指示を行うか否かを決定する。これにより、書き込み判定専用のデータ（ビット）を用いる必要がないため、効率的なデータ構成により書き込み処理のスキップを行う記憶装置の実現が可能となる。
【００１１】
また、本発明の一態様では、前記付加データは、前記書き込みデータのエラーチェック用のデータであってもよい。
【００１２】
これにより、エラーチェック用のデータが、書き込みを行うか否かの判定（スキップ判定）用データとしても用いられるため、効率的なデータ構成により書き込み処理のスキップを行う記憶装置の実現が可能となる。
【００１３】
また、本発明の一態様では、前記制御部は、前記書き込みデータパケットと前記付加データに基づく前記エラーチェックにおいてエラーと判定され、且つ、前記データパターンが前記特定パターンと一致しないと判定した場合は、前記ホスト装置に対してデータエラーを表す情報を送信してもよい。
【００１４】
これにより、エラーチェック処理と、スキップ判定処理の両方を行うことで、データエラーを適切に判定することが可能になる。
【００１５】
また、本発明の一態様では、前記特定パターンは、前記エラーチェックにおいてエラーと判定されるデータであってもよい。
【００１６】
これにより、書き込み対象である書き込みデータを非書き込みと誤判定する可能性を抑止できる。
【００１７】
また、本発明の一態様では、前記書き込みデータパケットは、前記付加データとしてパリティーデータを含み、前記制御部は、前記書き込みデータと前記パリティーデータにより構成される前記データパターンが前記特定パターンと一致しないと判定され、且つ、前記書き込みデータと前記パリティーデータの関係が肯定されている場合は、前記記憶制御部に対して、前記アドレス情報の更新指示を行うとともに、前記書き込みデータの書き込み指示を行い、前記書き込みデータと前記パリティーデータとによって構成される前記データパターンが、前記特定パターンと一致すると判定された場合は、前記記憶制御部に対して、前記アドレス情報の更新指示を行う一方で、前記書き込みデータの書き込み指示を行わなくてもよい。
【００１８】
これにより、付加データとしてパリティーデータを用いることが可能になる。
【００１９】
また、本発明の一態様では、前記書き込みデータパケットは、前記付加データとして前記書き込みデータの反転データを含み、前記制御部は、前記書き込みデータと前記反転データにより構成される前記データパターンが前記特定パターンと一致しないと判定された場合は、前記記憶制御部に対して、前記アドレス情報の更新指示を行うとともに、前記書き込みデータの書き込み指示を行い、前記書き込みデータと前記反転データとによって構成される前記データパターンが、前記特定パターンと一致すると判定された場合は、前記記憶制御部に対して、前記アドレス情報の更新指示を行う一方で、前記書き込みデータの書き込み指示を行わなくてもよい。
【００２０】
これにより、付加データとして反転データを用いることが可能になる。
【００２１】
また、本発明の一態様では、前記特定パターンは、第１のデータと、前記第１のデータの反転データではない第２のデータにより構成されるパターンであってもよい。
【００２２】
これにより、書き込み対象である書き込みデータを非書き込みと誤判定する可能性を抑止できる。
【００２３】
また、本発明の一態様では、前記書き込みデータパケットは、前記付加データとしてパリティーデータ及び前記書き込みデータの反転データを含み、前記制御部は、前記書き込みデータ、前記パリティーデータ及び前記反転データにより構成される前記データパターンが前記特定パターンと一致しないと判定され、且つ、前記書き込みデータと前記パリティーデータの関係が肯定されている場合は、前記記憶制御部に対して、前記アドレス情報の更新指示を行うとともに、前記書き込みデータの書き込み指示を行い、前記書き込みデータ、前記パリティーデータ及び前記反転データによって構成される前記データパターンが、前記特定パターンと一致すると判定された場合は、前記記憶制御部に対して、前記アドレス情報の更新指示を行う一方で、前記書き込みデータの書き込み指示を行わなくてもよい。
【００２４】
これにより、付加データとしてパリティーデータ及び反転データを用いることが可能になる。
【００２５】
また、本発明の一態様では、前記制御部は、コマンドパケットに対する前記書き込みデータパケットとして、第１〜第ｍ（ｍは２以上の整数）の書込みデータパケットを受信し、前記第１〜第ｍの書込みデータパケットのうち、第ｉ（ｉは１≦ｉ≦ｍを満たす整数）の書込みデータパケットは、第ｉの書き込みデータと、第ｉの付加データを含み、前記第ｉの書き込みデータと前記第ｉの付加データにより構成される前記データパターンが前記特定パターンと一致しないと判定された場合は、前記記憶制御部に対して、前記アドレス情報の更新指示を行うとともに、前記第ｉの書き込みデータの書き込み指示を行い、前記第ｉの書き込みデータと前記第ｉの付加データとによって構成される前記データパターンが、前記特定パターンと一致すると判定された場合は、前記記憶制御部に対して、前記アドレス情報の更新指示を行う一方で、前記第ｉの書き込みデータの書き込み指示を行わなくてもよい。
【００２６】
これにより、ホスト装置から複数の書き込みデータパケットを受信する場合に、制御部は、記憶制御部に対する書き込み指示を行うか否かを、各書き込みデータパケットについて決定することが可能になる。
【００２７】
また、本発明の一態様では、前記制御部は、前記データパターンと前記特定パターンとを比較する比較部と、前記付加データに基づくエラーチェックを行うエラー検出部と、を含んでもよい。
【００２８】
これにより、制御部は、スキップ判定と、エラーチェック処理を行うことが可能になる。
【００２９】
また、本発明の他の態様は、上記の記憶装置を含む液体容器に関係する。
【００３０】
また、本発明の他の態様は、第１の記憶装置〜第ｎ（ｎは２以上の整数）の記憶装置との通信処理を行う通信処理部と、前記通信処理部を制御する制御部と、を含み、前記通信処理部は、前記第１の記憶装置〜前記第ｎの記憶装置のうちの第ｊ（ｊは１≦ｊ≦ｎを満たす整数）の記憶装置に対して、コマンドパケットと、前記コマンドパケットに対応する複数の書き込みデータパケットを送信する場合に、前記複数の書き込みデータパケットの各書き込みデータパケットは、書き込みデータと付加データを含み、前記第ｊの記憶装置の記憶部に前記書き込みデータを書き込まない前記書き込みデータパケットは、前記書き込みデータと前記付加データとによって構成されるデータパターンが、特定パターンと一致するように設定し、前記第ｊの記憶装置の前記記憶部に前記書き込みデータを書き込む前記書き込みデータパケットは、前記書き込みデータと前記付加データとによって構成される前記データパターンが、前記特定パターンと一致しないように設定するホスト装置に関係する。
【００３１】
本発明の他の態様では、ホスト装置は、記憶装置の記憶部に書き込みデータを書き込むか否かに応じて、書き込みデータと付加データとにより構成されるデータパターンの設定を行う。これにより、ホスト装置は、記憶装置に対して効率的なデータ構成により書き込み処理のスキップを行わせるための情報を送信することが可能になる。
【図面の簡単な説明】
【００３２】
【図１】記憶装置及びホスト装置の基本的な構成例。
【図２】比較部及びエラー検出部の構成例。
【図３】従来手法の通信パケットの構成例。
【図４】本実施形態の通信パケットの構成例。
【図５】各論理アドレスに対応するデータ構成例。
【図６】論理アドレスと物理アドレスの関係例。
【図７】論理アドレスと論理ページの関係例。
【図８】記憶制御部における書き込み処理を説明するフローチャート。
【図９】制御部におけるスキップ判定及びエラーチェック処理を説明するフローチャート。
【図１０】本実施形態の書き込み処理を説明するタイミングチャート。
【図１１】従来手法の書き込み処理を説明するタイミングチャート。
【図１２】システムの構成例。
【図１３】液体容器の詳細な構成例。
【図１４】回路基板の詳細な構成例。
【図１５】回路基板の詳細な構成例。
【図１６】本実施形態の通信パケットの他の構成例。
【図１７】制御部におけるスキップ判定及びエラーチェック処理を説明する他のフローチャート。
【発明を実施するための形態】
【００３３】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３４】
１．本実施形態の手法
まず本実施形態の手法について説明する。ホスト装置との間でシーケンシャルにデータの通信を行う記憶装置では、データの書き込み／非書き込みを制御することで、書き込み処理を高速化することが可能である。
【００３５】
ホスト装置と記憶装置との間で送受信される通信パケットは、例えば図３を用いて後述する従来手法のように、ＩＤパケットＩＤＰＫと、コマンドパケットＣＭＰＫと、ｍ個のデータパケットＤＰＫ１〜ＤＰＫｍを含む。このデータパケットのうち、第ｋ（ｋは１＜ｋ≦ｍを満たす整数）のデータパケットＤＰＫｋのみを書き込み、その他のデータパケットについては書き込む必要が無い場合がある。例えば、ホスト装置側の処理により、データパケットＤＰＫｋに対応するデータの値が更新されたが、他のデータは非更新で現在の値を保持すればよい場合には、データパケットＤＰＫｋのみの書き込みを行えば充分である。
【００３６】
しかし、シーケンシャルアクセスの記憶装置にデータを書き込む場合、ホスト装置は、データパケットを先頭から順次送信する。そのため、ホスト装置はコマンドパケットＣＭＰＫに続けて第ｋのデータパケットＤＰＫｋを送信することはできず、第１〜第ｋ−１のデータパケットＤＰＫ１〜ＤＰＫｋ−１を含んだ通信パケットを記憶装置に送信する。その際、記憶装置が第１〜第ｋ−１のデータパケットＤＰＫ１〜ＤＰＫｋ−１の全てについて書き込み処理を行うと、処理に要する時間が長くなり非効率的である。また、ホスト装置の電源異常により限られた時間の中で必要なデータを記憶装置に退避する場合のように、重要なデータを高速で書き込むことに対する要求がある。
【００３７】
特許文献１や特許文献２では、書き込み不要のデータパケットを、非書き込みとする手法が開示されている。しかし特許文献１の手法では、ホスト装置でパリティーエラーとなるように非書き込み用のデータパケット（送り用符号化データ）を生成、送信し、記憶装置はパリティーエラーを検出した場合に書き込み処理を省略する。そのため、パリティーエラーが検出された場合に、記憶装置では本当にデータエラーが発生しているのか、送り用符号化データであるかを判別できず、パリティービットによるエラー検出ができなくなる。
【００３８】
また、特許文献２の手法では、記憶装置は書き込みイネーブルビットＷＥを用いて非書き込みを判定する。後述する図３が特許文献２の手法を説明する図であるが、図３の例であれば、Ｄ０〜Ｄ７の８ビットのデータを送信する際に、ホスト装置はＤ０〜Ｄ７と、書き込みイネーブルビットＷＥと、パリティービットＤＰの１０ビットのデータパケットを送信する。そのため、データパケットのサイズが増えてしまう。また、Ｄ０〜Ｄ７のいずれかのビットを書き込みイネーブルビットＷＥとして利用することでデータパケットのサイズを抑えた場合、データ部分が７ビットに減ってしまう。
【００３９】
本実施形態に係る記憶装置１００は、図１に示したようにホスト装置４００との通信処理を行う制御部１１０と、ホスト装置４００から送信された書き込みデータパケットに含まれる書き込みデータが書き込まれる記憶部１２０と、記憶部１２０のアクセス制御を行う記憶制御部１３０を含む。そして制御部１１０は、ホスト装置４００から、書込みデータパケットを受信し、書き込みデータパケットに含まれる書き込みデータと付加データとによって構成されるデータパターンが、特定パターンと一致しないと判定された場合は、記憶制御部１３０に対して、アドレス情報の更新指示を行うとともに、書き込みデータの書き込み指示を行う。一方、制御部１１０は、書き込みデータと付加データとによって構成されるデータパターンが、特定パターンと一致すると判定された場合は、記憶制御部１３０に対して、アドレス情報の更新指示を行う一方で、書き込みデータの書き込み指示を行わない。
【００４０】
ここで書き込みデータパケットとは、ｇビットの書き込みデータと、ｈビットの付加データとを含むデータである。ｇは正の整数であり例えばｇ＝８となる。ｈは正の整数であり、パリティービットの場合ｈ＝１となる。図１６を用いて後述する変形例のように、付加データはパリティービットに限定されない。なお、データパターンが特定パターンと一致した場合、その書き込みデータパケットに含まれるデータは記憶部１２０への書き込み対象とならないが、その場合も書き込みデータパケットのうちのｇビットを書き込みデータ、ｈビットを付加データと表記する。
【００４１】
また、データパターンとは、書き込みデータと付加データに含まれるビットの値の配列（並び）を表す。ホスト装置４００から書き込みデータが８ビット送信され、書き込みデータの後に１ビットの付加データが送信される例であれば、０又は１の値が９個組み合わされた情報がデータパターンとなる。この例ではデータパターンは２９通りのパターンを取り得る。
【００４２】
また、特定パターンとは、書き込みデータと付加データから構成されるデータパターンとの比較対象となるパターンである。そのため、特定パターンの形式は書き込みデータと付加データから構成されるデータパターンと同様になり、上記の例であれば特定パターンは、０又は１の値が９個組み合わされた情報となる。
【００４３】
本実施形態の手法によれば、書き込みデータと付加データとによって構成されるデータパターンが、固定の特定パターンと一致するか否かに基づいて、記憶装置１００（制御部１１０）は書き込み／非書き込みを判定することができる。
【００４４】
固定の特定パターンを用いるため、非書き込みを意図していないにもかかわらず、データパターンがエラーにより偶発的に特定パターンと一致してしまう可能性を抑止できる。言い換えれば、本実施形態の記憶装置１００は、エラー状態と非書き込み状態とを混同してしまう可能性を抑止できる。例えば付加データが奇数パリティーによるパリティービットであり、特定パターンとしてＦＦｈ＋‘０’（‘１１１１１１１１０’）を用いた場合を考える。この場合、エラーによりデータパターンが特定パターンと一致するのは、書き込みデータがＦＦｈ（‘１１１１１１１１’）であって、パリティーエラーにより本来‘１’となるべきパリティービットが‘０’となった場合等、特定の場合に限定される。さらに、図１６を用いて後述する変形例の場合であれば、多数のビットにエラーが生じない限り、書き込みを意図している書き込みデータパケットのデータパターンが特定パターンと一致してしまうことがなく、記憶装置１００がエラー状態と非書き込み状態とを誤判定する可能性を抑止できる。
【００４５】
また、本実施形態の記憶装置１００は、書き込みデータと付加データとにより書き込みか非書き込みかの判定（スキップ判定）を行えるため、特許文献２の書き込みイネーブルビットＷＥのようなスキップ判定専用のビットを用いる必要がない。そのため、書き込みデータパケットのサイズが増えたり、書き込みデータのサイズが減ることがなく、効率的なデータ構成により非書き込み状態を判定できる。
【００４６】
なお、付加データとはスキップ判定以外の何らかの用途のために付加されるデータであり、書き込みデータパケットに付加データを含めることによるサイズの増大は問題とならない。具体的には、付加データは、書き込みデータのエラーチェック用のデータである。つまり付加データをエラーチェックとスキップ判定の両方に用いることができ、データを無駄なく利用できる。スキップ判定に用いたとしても、付加データがエラーチェック機能を喪失する可能性が低いことは、上述したとおりである。
【００４７】
以下、本実施形態に係る記憶装置１００とホスト装置４００の構成例を説明し、その後、ホスト装置４００から記憶装置１００に送信される通信パケットの構造例、及び記憶装置１００で記憶されるデータの構造例（メモリーマップの例）を説明する。さらに、本実施形態でのデータの書き込み処理の流れを説明した後、ホスト装置４００、記憶装置１００を含むシステム（印刷システム、印刷装置及び液体容器を含むシステム）の例を説明する。最後に、データ構成の変形例を説明する。
【００４８】
なお、以下では特定パターンは‘１１１１１１１１０’であるものとして説明を行い、異なる実施形態については変形例として後述する。
【００４９】
２．記憶装置及びホスト装置
図１に本実施形態の記憶装置及びホスト装置の基本的な構成例を示す。本実施形態の記憶装置１００は、制御部１１０、記憶部１２０、記憶制御部１３０、クロック端子ＴＣＫ、データ端子ＴＤＡ、リセット端子ＴＲＳＴを含む。また、本実施形態のホスト装置４００は、通信処理部４１０、制御部４２０、クロック端子ＨＣＫ、データ端子ＨＤＡ、リセット端子ＨＲＳＴを含む。なお、本実施形態の記憶装置及びホスト装置は、図１の構成に限定されず、その構成要素の一部を省略したり、他の構成要素に置き換えたり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００５０】
記憶装置１００（１００−１〜１００−ｎ（ｎは２以上の整数））は、バスＢＳを介してホスト装置４００と接続される。バスＢＳは、例えば図１に示すように、クロック信号線ＳＣＫ、データ信号線ＳＤＡ、リセット信号線ＸＲＳＴを含む。クロック信号線ＳＣＫを介して、ホスト装置４００は、複数の記憶装置１００−１〜１００−ｎに対してクロックを供給する。また、データ信号線ＳＤＡを介して、ホスト装置４００と各記憶装置１００との間でデータ等のやり取りが行われる。また、リセット信号線ＸＲＳＴを介して、ホスト装置４００は、複数の記憶装置１００−１〜１００−ｎに対してリセット信号を出力する。
【００５１】
複数の記憶装置１００−１〜１００−ｎは各々ＩＤ情報を有し、ホスト装置４００は、このＩＤ情報を指定することで、複数の記憶装置１００−１〜１００−ｎのうちの１つの記憶装置に対してコマンドやデータを送信することができる。例えば図１では、第１の記憶装置１００−１のＩＤ情報はＩＤ＝１であり、第２の記憶装置１００−２のＩＤ情報はＩＤ＝２である。
【００５２】
記憶装置１００は、クロック端子ＴＣＫ（広義には第１の端子）、データ端子ＴＤＡ（広義には第２の端子）及びリセット端子ＴＲＳＴ（広義には第３の端子）を含む。クロック端子ＴＣＫにはクロック信号線ＳＣＫが接続され、データ端子ＴＤＡにはデータ信号線ＳＤＡが接続され、リセット端子ＴＲＳＴにはリセット信号線ＸＲＳＴが接続される。
【００５３】
記憶装置１００の制御部１１０は、バスＢＳを介して接続されるホスト装置４００との通信処理を行う。具体的には、図１に示すように、ホスト装置４００からのクロック及びリセット信号に基づいて、データ信号線ＳＤＡを介してホスト装置４００から送信されるコマンド（コマンドパケット）や書き込みデータ（書き込みデータパケット）などを受信し、またデータ信号線ＳＤＡを介してホスト装置４００に対して記憶部１２０から読み出されたデータや後述するアクノリッジ（Acknowledge）などを送信する。
【００５４】
記憶部１２０は、不揮発性メモリー装置であって、ホスト装置４００からのデータが書き込まれる。記憶部１２０は、ＭＯＮＯＳ（Metal-Oxide-Nitride-Oxide-Silicon）型メモリーにより実現される。ただし、記憶部１２０は例えばＭＯＮＯＳ型ではないＥＥＰＲＯＭや強誘電体メモリーなどにより実現することも可能である。記憶制御部１３０は、記憶部１２０のアクセス制御を行う。
【００５５】
制御部１１０は、例えばＩＤコンパレーターＩＤ＿ＣＯＭＰ、Ｉ／ＯコントローラーＩ／Ｏ＿ＣＮＴＬ、オペレーションコードデコーダーＯＰＣＤＥＣ、アドレスカウンターＡＤＤＲ＿ＣＯＵＮＴを含む。ＩＤコンパレーターＩＤ＿ＣＯＭＰは、ホスト装置４００から送信されたＩＤ情報が自分自身のＩＤ情報と一致するか否かを比較する。一致する場合には、オペレーションコードデコーダーＯＰＣＤＥＣに対してイネーブル信号を出力し、オペレーションコードデコーダーＯＰＣＤＥＣはホスト装置４００から送信されたコマンド（オペレーションコード）をデコードする。一方、ホスト装置４００から送信されたＩＤ情報が自分自身のＩＤ情報と一致しない場合には、制御部１１０は次のアクティブなリセット信号が入力されるまで自身をディスエイブル状態とする。
【００５６】
オペレーションコードデコーダーＯＰＣＤＥＣがホスト装置４００から送信されたコマンド（オペレーションコード）をデコードした結果、ホスト装置４００から送信されたコマンドが書き込みコマンドである場合には、Ｉ／ＯコントローラーＩ／Ｏ＿ＣＮＴＬは、ホスト装置４００からの書き込みデータを受信する。記憶制御部１３０は、オペレーションコードデコーダーＯＰＣＤＥＣからの書き込み命令ｗｒに基づいて、受信した書き込みデータをメモリーデータｍ＿ｄａｔａとして記憶部１２０に書き込む。この書き込む際のアドレス情報ａｄｄｒは、ホスト装置４００からのクロックに基づいてアドレスカウンターＡＤＤＲ＿ＣＯＵＮＴにより生成され、書き込みデータはシーケンシャルに、すなわち送信された順番に記憶部１２０に書き込まれる。書き込みデータが記憶部１２０に正常に書き込まれた場合には、記憶制御部１３０は、内部アクノリッジ（Acknowledge）ｉ＿ａｃｋをＩ／ＯコントローラーＩ／Ｏ＿ＣＮＴＬに出力する。
【００５７】
また、制御部１１０は、データパターンと特定パターンとを比較する比較部ＣＯＭＰと、付加データに基づくエラーチェックを行うエラー検出部ＥＲＲ＿ＤＥＴを含む。図２に比較部ＣＯＭＰと、エラー検出部ＥＲＲ＿ＤＥＴの構成例を示す。図２に示したように、比較部ＣＯＭＰには書き込みデータパケット（書き込みデータ及び付加データ）と、特定パターンが入力され、比較部ＣＯＭＰはこの２つを比較する。エラー検出部ＥＲＲ＿ＤＥＴには書き込みデータ及び付加データが入力され、エラー検出部ＥＲＲ＿ＤＥＴは、付加データに基づく書き込みデータのエラーチェックを行う。
【００５８】
ホスト装置４００から送信されたコマンドが読み出しコマンドである場合には、記憶制御部１３０は、オペレーションコードデコーダーＯＰＣＤＥＣからの読み出し命令ｒｄに基づいて、記憶部１２０からメモリーデータｍ＿ｄａｔａを読み出す。この読み出す際のアドレス情報ａｄｄｒもホスト装置４００からのクロックに基づいてアドレスカウンターＡＤＤＲ＿ＣＯＵＮＴにより生成され、シーケンシャルに読み出される。
【００５９】
本実施形態の記憶装置１００では、受信した書き込みデータパケットのデータパターンと特定パターンとの比較処理により、その書き込みデータパケットのデータを書き込むか否かを制御部１１０が判断することができる。すなわち、制御部１１０は、ホスト装置４００からコマンドパケット及びコマンドパケットに対応する書き込みデータパケットを受信した場合に、データパターンと特定パターンが一致しない場合には、アドレス情報ａｄｄｒの更新指示を記憶制御部１３０に対して行うと共に、書き込みデータパケットのデータの書き込み指示ｗｒを記憶制御部１３０に対して行う。一方、データパターンと特定パターンが一致している場合には、アドレス情報ａｄｄｒの更新指示を記憶制御部１３０に対して行う一方で、書き込みデータパケットのデータの書き込み指示ｗｒを記憶制御部１３０に対して行わない。こうすることで、記憶装置１００は、データパターンに基づいて、書き込みの許可又は非許可を判断し、書き込み非許可の書き込みデータパケットについては書き込みを行わずに、次の書き込みデータパケットの受信処理及び書き込み処理に移行することができる。その結果、記憶装置１００に対するデータ書き込み処理の時間を短縮することができる。なお、データ書き込み処理の詳細については、後述する。
【００６０】
ホスト装置４００の通信処理部４１０は、第１の記憶装置〜第ｎの記憶装置のうちの第ｊ（ｊは１≦ｊ≦ｎを満たす整数）の記憶装置に対して、コマンドパケットと、コマンドパケットに対応する複数の書き込みデータパケットを送信する場合に、複数の書き込みデータパケットの各書き込みデータパケットには、書き込みデータと付加データを含ませる。記憶部１２０に書き込まない書き込みデータパケットには、書き込みデータと付加データとによって構成されるデータパターンが、特定パターンと一致するように（例えば‘１１１１１１１１０’）設定する。これにより、通信処理部４１０は、その書き込みデータパケットのデータの書き込みを非許可にすることができる。
【００６１】
また通信処理部４１０は、第ｊの記憶装置１００−ｊの記憶部１２０に書き込みデータを書き込まない書き込みデータパケットは、書き込みデータと付加データとによって構成されるデータパターンが、特定パターンと一致しないように設定する。これにより、通信処理部４１０は、その書き込みデータパケットのデータの書き込みを許可にすることができる。
【００６２】
具体的には、本実施形態における特定パターンは、前記エラーチェックにおいてエラーと判定されるデータである。特定パターン（‘１１１１１１１１０’）をパリティーエラーと判定される情報とした場合、書き込みデータに対して正常なパリティービットを付加すれば、データパターンは特定パターンと一致しない。
【００６３】
このようにすることで、書き込みデータパケットを受信した記憶装置１００は、データパターンと特定パターンとの比較処理に基づいて、書き込む必要がない書き込みデータパケットについては書き込みを行わずに、次の書き込みデータパケットの受信処理及び書き込み処理に移行することができる。その結果、記憶装置１００に対するデータ書き込み処理の時間を短縮することができる。
【００６４】
また通信処理部４１０は、データを書き込まない書き込みデータパケットを第ｊの記憶装置１００−ｊに送信した後、第ｊの記憶装置１００−ｊから、通信エラーが無いことを通知するアクノリッジＡＣＫが返信された場合に、次の書き込みデータパケットを送信してもよい。こうすることで、ホスト装置４００は、通信エラーが生じなかったことを確認してから、次のデータパケットの送信処理に移行することができる。
【００６５】
３．データ構成の例
図３、図４は、ホスト装置４００から記憶装置１００に送信されるＩＤパケット、コマンドパケット及び書き込みデータパケットを説明する図である。図３は、比較例として、特許文献２に開示された書き込みイネーブルビットＷＥを含むデータパケットを示し、図４は、本実施形態の記憶装置１００及びホスト装置４００で用いられる、書き込みデータパケットを示す。
【００６６】
図３、図４に示すように、ＩＤパケットＩＤＰＫは、記憶装置１００のＩＤ情報に関するパケットであって、例えばＩＤ０〜ＩＤ７の８ビットで構成され、これにパリティービットＩＰが付加される。またコマンドパケットＣＭＰＫは、例えばＣ０〜Ｃ７の８ビットで構成され、これにパリティービットＣＰが付加される。また書き込みデータパケットＤＰＫは、Ｄ０〜Ｄ７の８ビットで構成されるデータ部分（書き込みデータ）とパリティービットＤＰを含む。パリティービットＩＰ、ＣＰ、ＤＰは、パリティーチェックのために付加されるビットであって、１の個数が常に偶数若しくは奇数のいずれかとなるように付加されるビットである。本明細書では、１の個数が奇数となる奇数パリティーを例にとって説明する。
【００６７】
図３に示したように、特許文献２の手法では、各データパケットＤＰＫは、書き込みデータＤ０〜Ｄ７の他に、書き込みイネーブルビットＷＥを含み、さらにパリティービットＤＰが付加される。それに対して、本実施形態では図４に示したように、書き込みデータＤ０〜Ｄ７とパリティービットＤＰにより構成されるデータパターンにより書き込み／非書き込みを判定するため、書き込みイネーブルビットＷＥが不要である。なお、特許文献２の手法を図４に示したデータ構成により実現することも可能であるが、その場合、Ｄ０〜Ｄ７のいずれかのビットが書き込みイネーブルビットＷＥとして用いられることになり、実質的な書き込みデータが７ビットに減ってしまう。
【００６８】
各パケットはクロックＳＣＫに同期して、ＩＤパケットＩＤＰＫ、コマンドパケットＣＭＰＫ、データパケットＤＰＫの順に、ホスト装置４００から記憶装置１００へ送信される。複数のデータパケットを送信する場合は、ホスト装置４００による第１のデータパケットＤＰＫ１の送信後に、記憶装置１００がホスト装置４００へアクノリッジＡＣＫを返信するための期間を設けて、その後にホスト装置４００から記憶装置１００へ第２のデータパケットＤＰＫ２が送信される。
【００６９】
なお、本実施形態の記憶装置１００及びホスト装置４００における各パケットの構成は、図４に示した構成に限定されず、その構成要素の一部を省略したり、他の構成要素に置き換えたり、他の構成要素を追加するなどの種々の変形実施が可能である。例えば、各パケットのビット数を増減してもよい。
【００７０】
図５、図６、図７は、記憶部１２０に記憶されるデータの構成（メモリーマップ）を説明する図である。図５は、論理アドレスと、各論理アドレスに対応するデータの構造を表す図であり、図６は論理アドレスと物理アドレスの対応関係を示す図であり、図７は論理ページと論理アドレスの対応関係を示す図である。
【００７１】
図５に示すように、例えば記憶部１２０は第１〜第ｍ（ｍは２以上の整数）の論理アドレスＡ１〜Ａｍを有し、各アドレスに対して３２ビットのデータを記憶することができる。Ａ１に示すように、１つの論理アドレスには８ビットのデータが格納されるとともに、他の２４ビットを用いて付加的なデータを記憶する。なお、データのビット数は８ビットに限定されず増減が可能である。
【００７２】
ここでの付加的なデータとは、例えば誤り訂正符号（ＥＣＣ）である。また、付加的なデータは、ライトロックビットＷＬＣＫを含むことができる。ライトロックビットＷＬＣＫは、各アドレスに設けられ、そのアドレスに対する書き込み禁止（ライトロック）を設定するためのビットである。例えばアドレスＡ１のライトロックビットＷＬＣＫが１に設定されている場合には、記憶制御部１３０により、アドレスＡ１に対する書き込みが禁止される。通常は、ライトロックビットＷＬＣＫは工場出荷時に設定され、その後はライトロックビットＷＬＣＫを書き換えることはできない。またライトロックビットＷＬＣＫを１ビットではなく、複数のビットで構成してもよい。また、付加的なデータとしてＥＣＣやライトロックビットＷＬＣＫ以外のビットを設けてもよい。また、必ず値が‘１’或いは‘０’で固定されるビットを設けてもよい。
【００７３】
記憶装置１００が受信した第１〜第ｍのデータパケットＤＰＫ１〜ＤＰＫｍは、受信した順番に（シーケンシャルに）、アドレスカウンターＡＤＤＲ＿ＣＯＵＮＴにより論理アドレスが割り振られる。すなわち第１のデータパケットＤＰＫ１は、第１の論理アドレスＡ１が割り振られ、第２のデータパケットＤＰＫ２は、第２の論理アドレスＡ２が割り振られ、同様にして第３〜第ｍのデータパケットＤＰＫ３〜ＤＰＫｍは、それぞれ第３〜第ｍの論理アドレスＡ３〜Ａｍが割り振られる。この論理アドレスは図１のアドレス情報ａｄｄｒに対応するものであり、制御部１１０がアドレスカウンターＡＤＤＲ＿ＣＯＵＮＴに更新指示を行うことで、データパケットを受信する毎にアドレス情報ａｄｄｒが更新（インクリメント）される。
【００７４】
上述したように、本実施形態の記憶装置及びホスト装置では、書き込みデータパケットＤＰＫのデータパターンが特定パターンと一致している場合には、アドレス情報ａｄｄｒの更新指示（インクリメント）を行うが、書き込みデータの書き込みは行わない。
【００７５】
具体的には、制御部１１０は、コマンドパケットＣＭＰＫに対応する第１〜第ｍのデータパケットＤＰＫ１〜ＤＰＫｍを受信する。第１〜第ｍの書込みデータパケットＤＰＫ１〜ＤＰＫｍのうち、第ｉ（ｉは１≦ｉ≦ｍを満たす整数）の書込みデータパケットは、第ｉの書き込みデータと、第ｉの付加データを含む。そして制御部１１０は、第ｉの書き込みデータと第ｉの付加データにより構成されるデータパターンが特定パターンと一致しないと判定された場合は、記憶制御部１３０に対して、アドレス情報ａｄｄｒの更新指示（例えばインクリメント）を行うとともに、第ｉの書き込みデータの書き込み指示を行う。第ｉの書き込みデータと第ｉの付加データとによって構成されるデータパターンが、特定パターンと一致すると判定された場合は、制御部１１０は、記憶制御部１３０に対して、アドレス情報ａｄｄｒの更新指示を行う一方で、第ｉの書き込みデータの書き込み指示を行わない。
【００７６】
このようにすることで、記憶装置１００は、書き込み非許可に設定されたＤＰＫｉのデータの書き込み処理を行わずに、次のデータパケットＤＰＫｉ＋１の受信処理に移行することができ、ＤＰＫｉ＋１が書き込み許可である場合には、次の論理アドレスＡｉ＋１に対応する物理アドレスに、ＤＰＫｉ＋１の書き込みデータＤ０〜Ｄ７を書き込むことができる。
【００７７】
図６に示した例では、１つの論理アドレスＡｉが１つの物理アドレスＰＡｉに対応するため、ＤＰＫｉが書き込み許可である場合には、論理アドレスＡｉに対応する物理アドレスＰＡｉに、ＤＰＫｉの書き込みデータＤ０〜Ｄ７を書き込む。図６では、記憶制御部１３０（狭義には不図示の物理アドレス生成部）は、１つの論理アドレスを１つの物理アドレスに変換する例を説明したがこれには限定されない。記憶制御部１３０は、１つの論理アドレスに対して、１又は複数の物理アドレスを割り当ててもよい。このようにすれば、所与の論理アドレスに対応付けられたデータを、複数の物理アドレスのうち、あらかじめ決められたルールにより選択された１つの物理アドレスに書き込むことが可能になる。
【００７８】
或いは、記憶制御部１３０は、図７に示したようにページを単位として、１つの論理ページＰに対して複数の論理アドレスを割り当ててもよい。図７の例では、４つの論理アドレスが１つの論理ページに対応付けられる。
【００７９】
なお、本実施形態の記憶部の構成は、図５、図６、図７に示した構成に限定されず、その構成要素の一部を省略したり、他の構成要素に置き換えたり、他の構成要素を追加するなどの種々の変形実施が可能である。例えば、１アドレスに記憶されるビット数を増減してもよい。
【００８０】
４．書き込み処理
図８は、本実施形態に係る記憶装置１００での書き込み処理を説明するフローチャートである。図８の各ステップの処理は、記憶装置１００の記憶制御部１３０により行われる。記憶装置１００は、１ページ単位での書き込みを行う不揮発性メモリーであり、図８は１ページ分の書き込み制御を説明する図である。なお、ここでの１ページは、例えば４アドレスに対応する１２８ビットの領域である。
【００８１】
この処理が開始されると、まず記憶制御部１３０は、通信エラーフラグ及びスキップフラグを初期化する（ステップＳ１０１，Ｓ１０２）。通信エラーフラグとは、通信エラーが発生したか否かを表すフラグであり、ステップＳ１０１の初期化により通信エラーが発生していないことを表す状態となる。また、スキップフラグとは、各論理アドレスに対応して設けられるフラグであり、対応する論理アドレスが割り当てられる書き込みデータの書き込みをスキップするか（非書き込みとするか）否かを表すフラグである。ステップＳ１０２の初期化により、１ページ分の全アドレスについて、書き込みをスキップしない状態が初期状態として設定される。
【００８２】
記憶制御部１３０は、対象としている１ページ分のデータを一時バッファーにコピーする（ステップＳ１０３）。
【００８３】
そして、記憶制御部１３０は、制御部１１０から１アドレス分の書き込みデータパケットの受信結果を取得する（ステップＳ１０４）。この際、制御部１１０では、ホスト装置から受信した書き込みデータパケットＤＰＫに対して、スキップ判定及びエラーチェック（通信エラー判定）を行っている。
【００８４】
図９は、制御部１１０におけるスキップ判定及び通信エラー判定を説明するフローチャートである。この処理が開始されると、制御部１１０（狭義には比較部ＣＯＭＰ）は、書き込みデータＤ０〜Ｄ７と付加データ（パリティービットＤＰ）から構成されるデータパターンが、特定パターン（ＦＦｈ＋‘０’）と一致するかを判定する（ステップＳ２０１）。一致する場合には、制御部１１０は、“アドレススキップ”であると判定して処理を終了する。
【００８５】
データパターンと特定パターンが一致しない場合（ステップＳ２０１でＮｏの場合）は、制御部１１０（狭義にはエラー検出部ＥＲＲ＿ＤＥＴ）は、パリティーエラーであるか否かを判定する（ステップＳ２０２）。パリティーエラーが検出された場合は、制御部１１０は、“通信エラー”であると判定して処理を終了する。
【００８６】
パリティーエラーが検出されない場合（ステップＳ２０２でＮｏの場合）は、制御部１１０は、“通常書き込み”と判定して処理を終了する。
【００８７】
記憶制御部１３０は、ステップＳ１０４において書き込みデータＤ０〜Ｄ７（ｄａｔａ）を受信するとともに、図９に示した処理の判定結果を制御部１１０から受信する。すなわち、記憶制御部１３０は、“アドレススキップ”、“通信エラー”、“通常書き込み”のいずれであるかの判定結果を取得する。
【００８８】
記憶制御部１３０は、“アドレススキップ”であるかを判定し（ステップＳ１０５）、Ｎｏの場合には“通信エラー”であるかを判定する（ステップＳ１０６）。“通信エラー”でもない、すなわち“通常書き込み”の場合には、記憶制御部１３０は、ステップＳ１０３で一時バッファーにコピーしておいたデータのうち、対象としているアドレスのデータを受信した書き込みデータにより更新する（ステップＳ１０７）。
【００８９】
“通信エラー”である場合には、記憶制御部１３０は、通信エラーフラグを、通信エラーが発生していることを表す状態にセットする（ステップＳ１０８）。一方、“アドレススキップ”の場合（ステップＳ１０５でＹｅｓの場合）は、ステップＳ１０７、Ｓ１０８のいずれの処理も行わずに、ステップＳ１０９に移行する。これにより、“アクセススキップ”の場合には、制御部１１０は、一時バッファーの更新なしに、次の書き込みデータパケットの受信を行うことが可能になる。具体的な動作例は、図１０のタイミングチャートを用いて後述する。
【００９０】
そして、記憶制御部１３０は全アドレスに対する処理が終了したかを判定し（ステップＳ１０９）、終了していない場合には、ステップＳ１０４に戻り、処理を継続する。全アドレスに対する処理が終了したら、通信エラーフラグの状態を判定する（ステップＳ１１０）。
【００９１】
通信エラーフラグがセットされている（通信エラーが発生している）場合は、記憶制御部１３０は、１ページ分の書き込みが異常終了したと判定する。この場合、制御部１１０は、ホスト装置に対して通信エラーを通知する。
【００９２】
通信エラーフラグがセットされていない場合（ステップＳ１１０でＮｏの場合）は、記憶制御部１３０は、スキップフラグを参照し、１ページ分の全アドレスについてスキップフラグがセットされているか否かを判定する（ステップＳ１１１）。ステップＳ１１１でＹｅｓの場合、すなわち全アドレスで非書き込みと判定された場合は、書き込み自体を行う必要がないため、そのまま１ページ分の書き込みを正常終了する。ステップＳ１１１でＮｏの場合は、更新が必要なデータがあるため、対象の１ページのデータを消去し、ステップＳ１０７で更新した一時バッファーのデータをメモリーセルアレイ部１２０の対応する領域に書き込む（Ｓ１１２）。ステップＳ１１２の処理後も、記憶制御部１３０は１ページ分の書き込みを正常終了する。
【００９３】
図８、図９に示したように、書き込み処理をスキップする場合は、データパターンと特定パターンが一致したことを条件とすればよいが、書き込み処理を実行する場合は、データパターンと特定パターンが不一致であることだけでなく、通信エラーが無いことも条件となる。具体的には、制御部１１０は、書き込みデータとパリティーデータにより構成されるデータパターンが特定パターンと一致しないと判定され、且つ、書き込みデータとパリティーデータの関係が肯定されている場合は、記憶制御部１３０に対して、アドレス情報の更新指示を行うとともに、書き込みデータの書き込み指示を行う。また制御部１１０は、書き込みデータとパリティーデータとによって構成されるデータパターンが、特定パターンと一致すると判定された場合は、記憶制御部１３０に対して、アドレス情報の更新指示を行う一方で、書き込みデータの書き込み指示を行わない。
【００９４】
このようにすれば、図９に示したように、制御部１１０において書き込み処理のスキップ判定と、通信エラー判定の両方を実行することが可能になる。
【００９５】
また、特定パターンはエラーチェックにおいてエラーと判定されるようなデータ構成を用いるため、制御部１１０は、付加データに基づきエラーを検出したとしても、それだけでは本当に通信エラーなのか、特定パターンとなる書き込みデータパケットを受信したかを判別できない。よって制御部１１０は、書き込みデータパケットと付加データに基づくエラーチェックにおいてエラーと判定され、且つ、データパターンが特定パターンと一致しないと判定した場合は、ホスト装置４００に対してデータエラーを表す情報を送信する。これは、図９で言えば、ステップＳ２０１でＮｏ且つステップＳ２０２でＹｅｓの場合に、“通信エラー”と判定する処理フローに対応する。
【００９６】
このようにすれば、“アドレススキップ”と“通信エラー”を適切に判別することが可能になる。
【００９７】
図１０に、本実施形態の記憶装置１００、ホスト装置４００の書き込み処理のタイミングチャートを示す。図１０には、リセット信号ＸＲＳＴ、クロック信号ＳＣＫ及びデータ信号ＳＤＡの各信号波形と、記憶装置１００における制御部１１０、記憶部１２０の動作状態及び内部信号ｗｒ、ｉ＿ａｃｋの信号波形とを示す。
【００９８】
図１０において、Ｉはアイドル期間、ＩＤＣはＩＤ認識期間、ＣＭＤはコマンド認識期間、ＤＡＴはデータ受信期間、ＩＡＫＷは内部アクノリッジ待ち期間、ＭＷＲＴはメモリー書き込み期間、ＡＫＳはアクノリッジ返信期間、ＮＷは、受信したデータパケットが書き込み非許可に設定されている場合で、書き込み処理を行わずに、通信エラーの有無を判断する期間である。なお、ここでは図７を用いて上述したように、１ページが４つの論理アドレスに対応する例を説明する。また、図８のフローチャートを用いて上述したように、書き込みスキップを行うか否かは、書き込み単位である１ページ分のデータを用いて判定する例を説明する。
【００９９】
図１０の例では、第１〜第４のデータパケットＤＰＫ１〜ＤＰＫ４、及び第９〜第１２のデータパケットＤＰＫ９〜ＤＰＫ１２の全ての書き込みデータがＦＦｈ（‘１１１１１１１１’）、パリティービットＤＰが‘０’に設定される。すなわち、第１〜第４のデータパケットＤＰＫ１〜ＤＰＫ４、及び第９〜第１２のデータパケットＤＰＫ９〜ＤＰＫ１２はデータパターンが特定パターンと一致するように設定される。一方、第５〜第８のデータパケットＤＰＫ５〜ＤＰＫ８及び第１３〜第１６のデータパケットＤＰＫ１３〜ＤＰＫ１６では、４つのデータパケットのうちの少なくとも１つのデータパケットのデータパターンは、特定パターンと一致しないように設定されている。
【０１００】
最初に、ホスト装置４００は、リセット信号ＸＲＳＴをＬレベル（低電位レベル、広義には第２の論理レベル）からＨレベル（高電位レベル、広義には第１の論理レベル）に設定して記憶装置のリセットを解除する。そして制御部１１０は、アイドル状態になる。
【０１０１】
次にホスト装置４００は、記憶装置１００に対してＩＤパケットＩＤＰＫ、コマンドパケットＣＭＰＫ及びデータパケットＤＰＫ１〜ＤＰＫ４を送信し、その後に記憶装置１００からのアクノリッジＡＣＫ返信を待つステートに移行する。
【０１０２】
記憶装置１００のＩＤコンパレーターＩＤ＿ＣＯＭＰは、ＩＤ認識期間ＩＤＣにおいて、受信したＩＤ情報と自身のＩＤ情報とが一致することを認識する。続くコマンド認識期間ＣＭＤにおいて、オペレーションコードデコーダーＯＰＣＤＥＣは、受信したコマンドが書き込みコマンドであることを認識する。次のデータ受信期間ＤＡＴにおいて、Ｉ／ＯコントローラーＩ／Ｏ＿ＣＮＴＬは、書き込みデータパケットＤＰＫ１〜ＤＰＫ４を受信し、比較部ＣＯＭＰは、書き込みデータパケットのデータパターンが特定パターンと一致するか否かを判断する。具体的には、第１〜第４のデータパケットＤＰＫ１〜ＤＰＫ４のそれぞれについて、データパターンが特定パターンと一致するか否かを判断する。
【０１０３】
図１０に示すように、ＤＰＫ１〜ＤＰＫ４の全てのデータパケットについて、データパターンと特定パターンが一致する場合には、制御部１１０は書き込み指示を記憶制御部１３０に対して行わない。そして制御部１１０は、通信エラーの有無をチェックして、通信エラーが無いと判断された場合にはホスト装置４００に対してアクノリッジＡＣＫを返信する。ホスト装置４００は、通信エラーが無いことを通知するアクノリッジＡＣＫを受け取った後、第２のページに対応するデータパケット（第５〜第８のデータパケットＤＰＫ５〜ＤＰＫ８）を送信する。
【０１０４】
制御部１１０は、第１〜第４のデータパケットＤＰＫ１〜ＤＰＫ４（広義には第ｉのページに対応するデータパケット）が書き込み非許可状態に設定されている場合には、記憶制御部１３０からの内部アクノリッジｉ＿ａｃｋを待たずに次のページのデータパケットＤＰＫ５〜ＤＰＫ８（広義には第ｉ＋１のページに対応するデータパケット）の受信処理を行う。
【０１０５】
第５〜第８のデータパケットＤＰＫ５〜ＤＰＫ８は、少なくとも１つのデータパケットのデータパターンが特定パターンと一致しないように設定されているから、制御部１１０は、ＤＰＫ５〜ＤＰＫ８の受信後に書き込み指示ｗｒを記憶制御部１３０に対して行う。記憶部１２０は、書き込み指示ｗｒに基づいて、メモリー書き込み期間ＭＷＲＴにおいて、データを書き込む。このメモリー書き込み期間ＭＷＲＴにおいて、制御部１１０は内部アクノリッジ待ち期間ＩＡＫＷとなり、記憶制御部１３０から内部アクノリッジ信号ｉ＿ａｃｋが出力されるのを待つ。データが正常に書き込まれた場合には、記憶制御部１３０は、内部アクノリッジ信号ｉ＿ａｃｋを制御部１１０に出力する。制御部１１０は、内部アクノリッジ信号ｉ＿ａｃｋを受け取ると、ホスト装置４００に対してアクノリッジＡＣＫを返信する。ホスト装置４００は、アクノリッジＡＣＫを受け取った後、第３のページに対応するデータパケット（ＤＰＫ９〜ＤＰＫ１２）を送信する。
【０１０６】
図１０の例では、ＤＰＫ９〜ＤＰＫ１２の全てのデータパケットが書き込み非許可状態に設定されているから、制御部１１０は、ＤＰＫ９〜ＤＰＫ１２の受信後、通信エラーの有無をチェックして、通信エラーが無いと判断された場合にはホスト装置４００に対してアクノリッジＡＣＫを返信する。ホスト装置４００は、通信エラーが無いことを通知するアクノリッジＡＣＫを受け取った後、第４のページに対応するデータパケット（ＤＰＫ１３〜ＤＰＫ１６）を送信する。
【０１０７】
ＤＰＫ１３〜ＤＰＫ１６のうちの少なくとも１つのデータパケットは書き込み許可状態に設定されているから、制御部１１０は、ＤＰＫ１３〜ＤＰＫ１６の受信後に書き込み指示ｗｒを記憶制御部１３０に対して行う。記憶部１２０は、書き込み指示ｗｒに基づいて、メモリー書き込み期間ＭＷＲＴにおいて、データを書き込む。データが正常に書き込まれた場合には、記憶制御部１３０は、内部アクノリッジ信号ｉ＿ａｃｋを制御部１１０に出力する。制御部１１０は、内部アクノリッジ信号ｉ＿ａｃｋを受け取ると、ホスト装置４００に対してアクノリッジＡＣＫを返信する。
【０１０８】
図１１に、比較例として、書き込みスキップを行わない場合の、書き込み処理のタイミングチャートを示す。図１１の比較例では、ｍ個のページに対応するデータパケット（ＤＰＫ１〜ＤＰＫ４、ＤＰＫ５〜ＤＰＫ８、…、ＤＰＫ４ｍ−３〜ＤＰＫ４ｍ）のそれぞれについてメモリー書き込み期間ＭＷＲＴが必要である。データパケットの送信に要する時間は、例えば約１００μｓ程度であるのに対して、メモリー書き込み期間ＭＷＲＴの長さＴＭ（書き込み必要時間）は、約５ｍｓである。従って、ｍページのデータパケットＤＰＫ１〜ＤＰＫ４ｍを書き込む場合の書き込み処理時間は少なくともｍ×ＴＭとなる。
【０１０９】
一方、本実施形態の記憶装置１００、ホスト装置４００によれば、書き込む必要のあるデータパケットを選択して書き込むことができる。すなわち、データパターンと特定パターンが一致しないように設定した書き込みデータパケット（具体的には当該書き込みデータパケットを含む１ページ分のデータ）に限定してデータを書き込むことができるから、書き込み処理時間を短縮することができる。
【０１１０】
５．システム、液体装置及び回路基板
図１２に本実施形態のシステムの基本的な構成例を示す。本実施形態のシステムは、例えばインクジェット方式のプリンターなどであって、第１の記憶装置１００−１〜第ｎ（ｎは２以上の整数）の記憶装置１００−ｎ、記憶装置が実装されるｎ個の回路基板２００−１〜２００−ｎ、回路基板を備えるｎ個の液体容器３００−１〜３００−ｎ及びホスト装置４００を含む。なお、本実施形態のシステムは図１２の構成に限定されず、その構成要素の一部を省略したり、他の構成要素に置き換えたり、他の構成要素を追加するなどの種々の変形実施が可能である。
【０１１１】
以下では、ホスト装置４００がインクジェット方式のプリンター本体であり、液体容器３００がインクカートリッジであり、回路基板２００がインクカートリッジに設けられた回路基板である場合を例に説明する。但し、本実施形態では、ホスト装置、液体容器、回路基板は、他の装置、容器、回路基板であってもよい。例えば、ホスト装置はメモリーカードのリーダー／ライターであってもよく、回路基板はメモリーカードに設けられた回路基板であってもよい。
【０１１２】
第１の記憶装置１００−１〜第ｎの記憶装置１００−ｎは、それぞれリセット端子ＴＲＳＴ、クロック端子ＴＣＫ、データ端子ＴＤＡ、第１の電源端子ＶＤＤ及び第２の電源端子ＶＳＳを含む。これらｎ個の記憶装置１００−１〜１００−ｎの各々は、記憶部１２０（例えば不揮発性メモリー等）を含み、それぞれの記憶部１２０にはｎ個の液体容器（例えばインクカートリッジ等）３００−１〜３００−ｎを識別するためのＩＤ（Identification）情報（例えばＩＤ＝１、ＩＤ＝２、ＩＤ＝３など）が記憶されている。ＩＤは、液体容器が収容する液体の色などの種類毎に異なるものが付与される。また記憶部１２０には、液体容器のインク残量（又はインク消費量）などのデータが、ホスト装置４００により書き込まれる。
【０１１３】
ホスト装置４００は、例えばプリンター本体などであって、ホスト側リセット端子ＨＲＳＴ、ホスト側クロック端子ＨＣＫ、ホスト側データ端子ＨＤＡ、第１の電源端子ＶＤＤ及び第２の電源端子ＶＳＳを含む。
【０１１４】
上述したように、本実施形態の記憶装置１００、ホスト装置４００及びシステムによれば、ホスト装置４００から記憶装置１００に対して送信される書き込みデータパケットのデータパターンを用いて、書き込みデータの書き込み許可状態又は非許可状態を設定することができる。
【０１１５】
そして記憶装置１００は、受信した書き込みデータパケットのデータパターンと特定パターンの比較処理に基づいて、そのデータを記憶部１２０に書き込むか否かを判断し、書き込み非許可の場合にはデータを書き込まずに、次のデータパケットの受信処理及び書き込み処理に移行することができる。すなわち、書き込む必要のない書き込みデータパケットについてはデータの書き込みをスキップして、次の書き込みデータパケットの処理に移行することができる。その結果、記憶装置１００に対するデータ書き込み処理の時間を短縮することができる。また書き込む必要のないデータについては、書き込み処理を行わないから、既に記憶されているデータを書き込み時のエラー等により破壊するおそれを低減することができる。
【０１１６】
図１３に、本実施形態の液体容器（インクカートリッジ）３００の詳細な構成例を示す。液体容器３００の内部には、インクを収容するための図示しないインク室が形成される。また、液体容器３００には、インク室に連通するインク供給口３４０が設けられる。このインク供給口３４０は、液体容器３００がプリンターに装着された時に、印刷ヘッドユニットにインクを供給するためのものである。
【０１１７】
液体容器３００は、回路基板２００を含む。回路基板２００には、本実施形態の記憶装置１００が設けられ、インク消費量などのデータの記憶やホスト装置４００とのデータ送受信を行う。回路基板２００は、例えばプリント基板により実現され、液体容器３００の表面に設けられる。回路基板２００には、第１の電源端子ＶＤＤ等の端子が設けられる。そして、液体容器３００がプリンターに装着された時に、それらの端子とプリンター側の端子が接触（電気的に接続）することで、電源やデータのやり取りが行われる。
【０１１８】
図１４、図１５に、本実施形態の記憶装置１００が設けられた回路基板２００の詳細な構成例を示す。図１４に示すように、回路基板２００の表面（プリンターと接続される面）には、複数の端子を有する端子群が設けられる。この端子群は、第１の電源端子ＶＤＤ、第２の電源端子ＶＳＳ、リセット端子ＴＲＳＴ、クロック端子ＴＣＫ、データ端子ＴＤＡを含む。各端子は、例えば矩形状（略矩形状）に形成された金属端子により実現される。そして、各端子は、回路基板２００に設けられた図示しない配線パターン層やスルーホールを介して、記憶装置１００に接続される。
【０１１９】
図１５に示すように、回路基板２００の裏面（プリンターと接続される面の裏側の面）には、本実施形態の記憶装置１００が設けられる。記憶装置１００は、例えば、ＭＯＮＯＳ型メモリーを有する半導体記憶装置により実現できる。この記憶装置１００には、インク又は液体容器３００に関連する種々のデータが格納され、例えば、液体容器３００を識別するためのＩＤ情報やインクの消費量等のデータが格納される。インク消費量のデータは、液体容器３００内に収容されたインクについて、印刷の実行等に伴い消費されるインク量の累計を示すデータである。このインク消費量のデータは、液体容器３００内のインク量を示す情報であってもよく、消費したインク量の割合を示す情報であってもよい。
【０１２０】
６．変形例
以上では、書き込みデータパケットが８ビットの書き込みデータと１ビットのパリティービットである付加データとにより構成されるものとしたが、これには限定されない。図１６に通信パケットの変形例を示す。
【０１２１】
図１６に示したように、書き込みデータパケットは、付加データとして書き込みデータの反転データを含んでもよい。Ｄ０〜Ｄ７が書き込みデータであり、／Ｄ０〜／Ｄ７が反転データである。ここでの反転データとは、各ビットの値の０と１とが反転したデータであり、書き込みデータで‘１’であるビットは反転データでは‘０’となり、書き込みデータで‘０’であるビットは反転データでは‘１’となる。例えば、書き込みデータがＦＦｈ（‘１１１１１１１１’）であれば、反転データは００ｈ（‘００００００００’）となる。
【０１２２】
反転データは、書き込みデータのエラーチェックに用いられる情報である。具体的には、制御部１１０は、書き込みデータと反転データを取得し、反転データが、書き込みデータがビット反転されたデータであるか否かを判定する。例えば、制御部１１０（エラー検出部ＥＲＲ＿ＤＥＴ）は、書き込みデータと反転データのＸＯＲ（排他的論理和）と、ＦＦｈ（‘１１１１１１１１’）が一致するか否かを判定する。正常状態では、書き込みデータと反転データのＸＯＲと、ＦＦｈが一致するため、制御部１１０は、一致した場合は通信エラーでないと判定し、一致しない場合は通信エラーであると判定する。
【０１２３】
この場合、書き込みデータと付加データ（反転データ）により構成されるデータパターンは１６ビットとなるため、特定パターンも１６ビットとなる。また、書き込みを意図しているデータと特定パターンとが一致することは好ましくないため、特定パターンはエラーチェックによりエラーと判定されるデータとする。
【０１２４】
具体的には、特定パターンは、第１のデータと、第１のデータの反転データではない第２のデータにより構成されるパターンとする。例えばＦＦｈ＋ＦＦｈ（‘１１１１１１１１１１１１１１１１’）を特定パターンとすればよい。
【０１２５】
ホスト装置４００は、書き込み処理を行う書き込みデータパケットは、書き込みデータとその反転データを含むように設定し、書き込み処理を行わない書き込みデータパケットは、ＦＦｈ＋ＦＦｈとなるように設定する。
【０１２６】
記憶装置１００では、受信した書き込みデータパケットのデータパターンと、特定パターン（ＦＦｈ＋ＦＦｈ）を比較する。具体的には、制御部１１０は、書き込みデータと反転データにより構成されるデータパターンが特定パターンと一致しないと判定された場合は、記憶制御部１３０に対して、アドレス情報の更新指示を行うとともに、書き込みデータの書き込み指示を行い、書き込みデータと反転データとによって構成されるデータパターンが、特定パターンと一致すると判定された場合は、記憶制御部１３０に対して、アドレス情報の更新指示を行う一方で、書き込みデータの書き込み指示を行わない。
【０１２７】
この場合も、制御部１１０は、書き込みイネーブルビットＷＥを用いることなく、書き込み／非書き込みを判定できる。また、多数のビットに通信エラーが発生しない限り、書き込みを意図した書き込みデータパケットのデータパターンが、特定パターンと一致することはない。例えば、書き込みデータがＦＦｈの場合、反転データは００ｈとなるため、これが通信エラーによりＦＦｈ＋ＦＦｈと一致する場合には、８ビットにエラーが発生していることになる。多数のビットに通信エラーが発生する可能性は非常に低いため、記憶装置１００では、書き込み処理の対象の書き込みデータパケットを誤って非書き込みとしてしまう可能性を抑止できる。
【０１２８】
なお、図１６に示したように、書き込みデータパケットは、付加データとしてパリティーデータ及び書き込みデータの反転データを含んでもよい。図１６の例では、書き込みデータパケットは、書き込みデータＤ０〜Ｄ７と、書き込みデータのパリティービットＤＰと、反転データ／Ｄ０〜／Ｄ７と、反転データのパリティービット／ＤＰを含む。
【０１２９】
ここでパリティービットＤＰは、書き込みデータＤ０〜Ｄ７とパリティービットＤＰの９ビットにおいて、‘１’となるビット数が奇数（奇数パリティーの場合）となるように設定されるビットである。また、パリティービット／ＤＰは、反転データ／Ｄ０〜／Ｄ７とパリティービット／ＤＰの９ビットにおいて、‘１’となるビット数が奇数となるように設定されるビットである。つまり、／ＤＰはＤＰがビット反転されたデータではない。
【０１３０】
この場合、書き込みデータと付加データ（反転データ及びパリティービット）により構成されるデータパターンは１８ビットとなるため、特定パターンも１８ビットとなる。特定パターンは、第１のデータと、第１のデータの反転データではない第２のデータと、エラーチェックによりパリティーエラーと判定されるビットと、により構成されるパターンとする。例えばＦＦｈ＋‘０’＋ＦＦｈ＋‘０’（‘１１１１１１１１０１１１１１１１１０’）を特定パターンとすればよい。
【０１３１】
記憶装置１００では、受信した書き込みデータパケットのデータパターンと、特定パターン（ＦＦｈ＋‘０’＋ＦＦｈ＋‘０’）を比較する。具体的には、制御部１１０は、書き込みデータ、パリティーデータ及び反転データにより構成されるデータパターンが特定パターンと一致しないと判定され、且つ、書き込みデータとパリティーデータの関係が肯定されている場合は、記憶制御部１３０に対して、アドレス情報の更新指示を行うとともに、書き込みデータの書き込み指示を行う。また制御部１１０は、書き込みデータ、パリティーデータ及び反転データによって構成されるデータパターンが、特定パターンと一致すると判定された場合は、記憶制御部１３０に対して、アドレス情報の更新指示を行う一方で、書き込みデータの書き込み指示を行わない。
【０１３２】
このようにすれば、制御部１１０は、反転データとパリティービットの両方をエラーチェックに用いるため、精度よく通信エラーを検出できる。また、通信エラーにより偶発的に書き込みデータパケットのデータパターンが特定パターンと一致してしまう可能性を抑止できるため、書き込み対象である書き込みデータパケットを非書き込みであると誤判定する可能性を抑止できる。
【０１３３】
図１６のデータを用いる場合の、制御部１１０でのエラーチェック、スキップ判定を説明するフローチャートを図１７に示す。この処理が開始されると、制御部１１０（比較部ＣＯＭＰ）は、データパターンと特定パターンが一致するかを判定する（ステップＳ３０１）。一致する場合には、制御部１１０は、“アドレススキップ”と判定する。
【０１３４】
一致しない場合には、制御部１１０（エラー検出部ＥＲＲ＿ＤＥＴ）は、書き込みデータＤ０〜Ｄ７と、パリティービットＤＰを用いたパリティーチェックを行いエラーがないかを判定する（ステップＳ３０２）。エラーが検出された場合には、制御部１１０は、“通信エラー”であると判定する。
【０１３５】
ステップＳ３０２でパリティーエラーでない場合には、反転データ／Ｄ０〜／Ｄ７と、パリティービット／ＤＰを用いたパリティーチェックを行いエラーがないかを判定する（ステップＳ３０３）。エラーが検出された場合には、制御部１１０は、“通信エラー”であると判定する。
【０１３６】
ステップＳ３０２でパリティーエラーでない場合には、制御部１１０は、反転データが書き込みデータのビット反転であるかを判定する（ステップＳ３０４）。例えば上述したように、書き込みデータと反転データのＸＯＲと、ＦＦｈとの比較処理を行えばよい。反転データが書き込みデータのビット反転でない場合は、制御部１１０は、“通信エラー”であると判定する。反転データが書き込みデータのビット反転である場合（ステップＳ３０４でＹｅｓの場合）は、制御部１１０は、“通常書き込み”であると判定する。
【０１３７】
なお、この場合、図９に示した処理を図１７に示した処理に置き換えればよく、記憶制御部１３０で行われる処理の流れは、図８と同様である。
【０１３８】
また、以上では特定パターンのうち、書き込みデータに対応するビット（第１のデータ）の値がＦＦｈであるものとしたがこれには限定されず、００ｈ〜ＦＦｈの任意の値を第１のデータとして用いることが可能である。その場合、特定パターンのうちの付加データに対応するビット（第２のデータ）の値は、書き込みデータに対応するビットの値に応じて決定すればよい。
【０１３９】
付加データが奇数パリティーのパリティービットである場合、第１のデータが００ｈであれば、第２のデータはパリティーエラーと判定されるビット、すなわち‘０’とすればよく、特定パターンは００ｈ＋‘０’となる。同様に第１のデータが０１ｈ（‘０００００００１’）であれば、第２のデータを‘１’とし、特定パターンは０１ｈ＋‘１’（‘０００００００１１’）となる。その他、第１のデータがどのような値であっても、対応する特定パターンを設定可能である。
【０１４０】
また、付加データが書き込みデータの反転データである場合、第１のデータが００ｈであれば、第２のデータはビット反転でないデータ、例えば００ｈとすればよく、特定パターンは００ｈ＋００ｈとなる。同様に第１のデータが０１ｈであれば、第２のデータを０１ｈとし、特定パターンは０１ｈ＋０１ｈとなる。この場合も、第１のデータがどのような値であっても、対応する特定パターンを設定可能である。また、付加データが書き込みデータの反転データとパリティービットである場合も同様である。
【０１４１】
また、特定パターンは１つの固定値に限定されず、複数の固定の特定パターンを用いることが可能である。その場合、制御部１１０は、複数の特定パターンを同時に用いてもよい。具体的には、制御部１１０は、データパターンが複数の特定パターンのいずれかに一致する場合に、書き込みデータパケットの書き込み処理をスキップする。ただし、同時に用いる特定パターンの数を増やすことで、書き込み処理を行う書き込みデータパケットを誤って非書き込みとしてしまう可能性が増してしまう。よって、制御部１１０では、複数の特定パターンを用意しておき、そのうちの少数（狭義には１つ）を選択して用いてもよい。
【０１４２】
なお、書き込み処理のスキップとは直接関係しないが、図１６に示したように、通信パケットに含まれるＩＤパケットＩＤＰＫ及びコマンドパケットＣＭＰＫについても、反転データを含む構成とすることが可能である。このようにすれば、記憶装置１００の制御部１１０では、ＩＤパケットＩＤＰＫ及びコマンドパケットＣＭＰＫに関する通信エラーも精度よく検出することが可能になる。
【０１４３】
なお、以上のように本実施形態及び変形例について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また記憶装置、ホスト装置の構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【０１４４】
ＡＤＤＲ＿ＣＯＵＮＴ…アドレスカウンター、ＢＳ…バス、
ＣＭＰＫ…コマンドパケット、ＣＯＭＰ…比較部、ＤＰＫ…データパケット、
ＥＲＲ＿ＤＥＴ…エラー検出部、ＨＣＫ…クロック端子、ＨＤＡ…データ端子、
ＨＲＳＴ…リセット端子、Ｉ／Ｏ＿ＣＮＴＬ…Ｉ／Ｏコントローラー、
ＩＤ＿ＣＯＭＰ…ＩＤコンパレーター、ＩＤＰＫ…ＩＤパケット、
ＯＰＣＤＥＣ…オペレーションコードデコーダー、ＳＣＫ…クロック信号線、
ＳＤＡ…データ信号線、ＴＣＫ…クロック端子、ＴＤＡ…データ端子、
ＴＲＳＴ…リセット端子、ＸＲＳＴ…リセット信号線、１００…記憶装置、
１１０…制御部、１２０…記憶部、１３０…記憶制御部、２００…回路基板、
３００…液体容器、３４０…インク供給口、４００…ホスト装置、４１０…通信処理部、
４２０…制御部
【図１】
0006679971.tif 000002
【図２】
0006679971.tif 000003
【図３】
0006679971.tif 000004
【図４】
0006679971.tif 000005
【図５】
0006679971.tif 000006
【図６】
0006679971.tif 000007
【図７】
0006679971.tif 000008
【図８】
0006679971.tif 000009
【図９】
0006679971.tif 000010
【図１０】
0006679971.tif 000011
【図１１】
0006679971.tif 000012
【図１２】
0006679971.tif 000013
【図１３】
0006679971.tif 000014
【図１４】
0006679971.tif 000015
【図１５】
0006679971.tif 000016
【図１６】
0006679971.tif 000017
【図１７】
0006679971.tif 000018