(57)【特許請求の範囲】
【請求項１】
半導体記憶装置であって、
カウント値を計数してアクセスの対象となる対象アドレスを指定すると共に、データの読み出し時と書き込み時とで最大カウント値が異なるアドレスカウンタと、
前記アドレスカウンタによって指定された対象アドレスに至るまでシーケンシャルにアクセスされる不揮発性のメモリアレイと、
前記メモリアレイの前記対象アドレスから所定のアドレス単位にて書き込みデータを書き込むデータ書き込み手段と、
前記メモリアレイの対象アドレスからデータを読み出すデータ読み出し手段とを備え、
前記メモリアレイは、
第１の最終アドレスを有し、データの書き込みが可能な格納領域である第１の格納領域と、
第２の最終アドレスを有し、データの読み出しのみが可能な格納領域であると共に前記第１の格納領域に続く第２の格納領域とを備え、
前記第１の最終アドレスの値は前記第２の最終アドレスの値よりも小さく、 
前記書き込み時の最大カウント値は、前記第１の最終アドレスに対応するカウント値であり、
前記読み出し時の最大カウント値は、前記第２の最終アドレスに対応するカウント値に所定値を加えた値である半導体記憶装置。
【請求項２】
請求項１に記載の半導体記憶装置において、
前記アドレスカウンタは、前記最大カウント値のいずれかまでカウント値を計数した後、前記メモリアレイの先頭アドレスを指定する半導体記憶装置。
【請求項３】
請求項２に記載の半導体記憶装置において、
前記アドレスカウンタは、前記半導体記憶装置の外部から入力される外部クロック信号に同期して前記外部クロック信号数を計数する半導体記憶装置。
【請求項４】
請求項１に記載の半導体記憶装置において、
前記アドレスカウンタは、各前記最大カウント値まで計数した後、前記メモリアレイにおける前記第１の格納領域の先頭アドレスを指定する半導体記憶装置。
【請求項５】
請求項１に記載の半導体記憶装置において、
前記第１の格納領域は１２８ビットのデータを格納可能な格納領域であり、
前記第２の格納領域は６４ビットのデータを格納可能な格納領域であり、
前記アドレスカウンタは８ビットのアドレスカウンタであり、書き込み時には最上位ビットである８ビット目の値が１を取った後に、前記第１の格納領域の先頭アドレスを指定し、読み出し時には８ビットの値が全て１を取った後に、前記第１の格納領域の先頭アドレスを指定する半導体記憶装置。
【請求項６】
外部クロックに同期して計数するアドレスカウンタによって指定された対象アドレスに至るまでシーケンシャルにアクセスされる不揮発性のメモリアレイを備える半導体記憶装置におけるアドレス管理方法であって、
前記メモリアレイに対するアクセスの要求が、書き込み要求または読み出し要求のいずれであるか判断し、
前記アクセスの要求が書き込みの要求の場合には、前記外部クロックを第１の最大カウント値まで計数して、前記メモリアレイの先頭アドレスを指定し、
前記アクセスの要求が読み出しの要求の場合には、前記外部クロックを前記第１の最大カウント値よりも大きな第２の最大カウント値まで計数して、前記メモリアレイの先頭アドレスを指定する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シーケンシャルにアクセスされる半導体記憶装置およびシーケンシャルにアクセスされる半導体記憶装置におけるアドレス管理方法に関する。
【背景技術】
【０００２】
メモリアレイのデータセルに対してシーケンシャルなアクセスのみを許容する半導体記憶装置、例えば、ＥＥＰＲＯＭが知られている。このような半導体記憶装置は、比較的廉価であることから、消費材の残量または消費量に関するデータを保持させるための記憶装置として用いられている。また、複数のデータ格納領域、例えば、ＥＥＰＲＯＭ領域とマスクＲＯＭ領域を有する半導体記憶装置も実用化されている。複数のデータ格納領域を有する半導体記憶装置では、マスクＲＯＭ領域を利用することによって、半導体記憶装置に対する読み出し専用データの書き込みが不要となる利点がある。
【０００３】
【特許文献１】特開平７−２１９８５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、シーケンシャルアクセス型の半導体記憶装置が、読み出し専用領域よりも小さい書き込み可能な領域を有する単一のデータ格納領域を備える場合には、読み出し専用領域の最後のアドレスまでカウントアップされた後でなければ、書き込み可能領域の先頭アドレスに戻ることができない。この結果、データの読み出しよりも時間を要するデータの書き込み処理に時間を要するという問題がある。
【０００５】
さらに、半導体記憶装置においては、一般的に、アドレスデコーダを用いてアクセス先のアドレスが指定されるため、複数のデータ格納領域を備える半導体記憶装置においては、各データ格納領域に対してアドレスデコーダを備えなければならず、回路構成規模が大きくなる傾向にある。
【０００６】
本発明は、上記課題を解決するためになされたものであり、半導体記憶装置において、データの書き込み時間の短縮化を図ると共に、アドレスの指定に必要な回路構成の小型化を図ることを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために本発明の第１の態様は、半導体記憶装置を提供する。本発明の第１の態様に係る半導体記憶装置は、カウント値を計数してアクセスの対象となる対象アドレスを指定すると共に、データの読み出し時と書き込み時とで最大カウント値が異なるアドレスカウンタと、前記アドレスカウンタによって指定された対象アドレスに至るまでシーケンシャルにアクセスされる不揮発性のメモリアレイと、前記メモリアレイの前記対象アドレスから所定のアドレス単位にて書き込みデータを書き込むデータ書き込み手段と、前記メモリアレイの対象アドレスからデータを読み出すデータ読み出し手段とを備える。
【０００８】
本発明の第１の態様に係る半導体記憶装置によれば、データの読み出し時と書き込み時とで最大カウント値が異なるアドレスカウンタを用いて、アクセスの対象となる対象アドレスを指定するので、データの書き込み時間の短縮化を図ると共に、アドレスの指定に必要な回路構成の小型化を図ることができる。
【０００９】
本発明の第１の態様に係る半導体記憶装置において、前記アドレスカウンタは、前記最大カウント値のいずれかまでカウント値を計数した後、前記メモリアレイの先頭アドレスを指定しても良い。この場合には、カウント値が最大カウント値に到達した後に、メモリアレイの先頭アドレスに戻ることができる。
【００１０】
本発明の第１の態様に係る半導体記憶装置において、前記アドレスカウンタは、前記半導体記憶装置の外部から入力される外部クロック信号に同期して前記外部クロック信号数を計数しても良い。この場合には、外部クロック信号によってメモリアレイの所望のアドレスを指定することができる。
【００１１】
本発明の第１の態様に係る半導体記憶装置において、前記メモリアレイは、第１の最終アドレスを有する第１の格納領域と、第２の最終アドレスを有すると共に前記第１の格納領域に続く第２の格納領域とを備え、前記書き込み時の最大カウント値は、前記第１の最終アドレスに対応するカウント値であり、前記読み出し時の最大カウント値は、前記第２の最終アドレスに対応するカウント値に所定値を加えた値であっても良い。この場合には、データの書き込み時に第２の格納領域に対するアドレス指定処理が実行されないので、第１の格納領域に対するデータの書き込みに要する時間を短縮することができる。
【００１２】
本発明の第１の態様に係る半導体記憶装置において、前記アドレスカウンタは、各前記最大カウント値まで計数した後、前記メモリアレイにおける前記第１の格納領域の先頭アドレスを指定しても良い。この場合には、カウント値が最大カウント値に到達した後に、第１の格納領域の先頭アドレスに戻ることができる。
【００１３】
本発明の第１に態様に係る半導体記憶装置において、前記第１の格納領域はデータの書き込みが可能な格納領域であり、前記第２の格納領域はデータの読み出しのみが可能な格納領域であっても良い。この場合には、データの書き込み時には、第１の格納領域に対するアドレス指定処理のみが実行されると共に、データの読み出し時には、第１および第２の格納領域に対するアドレス指定処理が実行される。
【００１４】
本発明の第１の態様に係る半導体記憶装置において、前記第１の格納領域は１２８ビットのデータを格納可能な格納領域であり、前記第２の格納領域は６４ビットのデータを格納可能な格納領域であり、前記アドレスカウンタは８ビットのアドレスカウンタであり、書き込み時には８ビット目の値が１を取った後に、前記第１の格納領域の先頭アドレスを指定し、読み出し時には８ビットの値が全て１を取った後に、前記第１の格納領域の先頭アドレスを指定しても良い。この場合には、データの読み出し時にはカウント値が２５６に到達した後に、データの書き込み時にはカウント値が１２８ビットに到達した後に第１の格納領域の先頭アドレスに戻ることができる。
【００１５】
本発明の第２の態様は、外部クロックに同期して計数するアドレスカウンタによって指定された対象アドレスに至るまでシーケンシャルにアクセスされる不揮発性のメモリアレイを備える半導体記憶装置におけるアドレス管理方法を提供する。本発明の第２の態様に係るアドレス管理方法は、前記メモリアレイに対するアクセスの要求が、書き込み要求または読み出し要求のいずれであるか判断し、前記アクセスの要求が書き込みの要求であり、前記外部クロックを第１の最大カウント値まで計数した場合には、前記メモリアレイの先頭アドレスを指定し、前記アクセスの要求が読み出しの要求であり、前記外部クロックを前記第１の最大カウント値よりも大きな第２の最大カウント値まで計数した場合には、前記メモリアレイの先頭アドレスを指定しても良い。
【００１６】
本発明の第２の態様に係るアドレス管理方法によれば、本発明の第１の態様に係る半導体記憶装置と同様の作用効果を得ることができると共に、本発明の第２の態様に係るアドレス管理方法は、本発明の第１の態様に係る半導体記憶装置と同様にして種々の態様にて実現され得る。
【００１７】
本発明の第２の態様に係る方法は、この他にも、プログラム、およびプログラムを記録したコンピュータが読み取り可能な記録媒体としても実現され得る。
【発明を実施するための最良の形態】
【００１８】
以下、本発明に係る半導体記憶装置および半導体記憶装置におけるアドレス管理方法について図面を参照しつつ、実施例に基づいて説明する。
【００１９】
・半導体記憶装置の構成
図１および図２を参照して本実施例に半導体記憶装置の構成について説明する。図１は本実施例に係る半導体記憶装置の機能的な内部構成を示すブロック図である。図２は本実施例に係る半導体記憶装置が備えるメモリアレイの内部構成マップを模式的に示す説明図である。
【００２０】
本実施例に係る半導体記憶装置１０は、外部からアクセス先のアドレスを指定するアドレスデータを入力する必要のないシーケンシャルアクセス方式の記憶装置である。半導体記憶装置１０は、メモリアレイ１００、アドレスカウンタ１１０、ＩＮ／ＯＵＴコントローラ１２０、ＩＤコンパレータ１３０、ライト／リードコントローラ１４０、インクリメントコントローラ１５０、チャージポンプ回路１６０、８ビットラッチレジスタ１７０を備えている。これら各回路は、バス式の信号線によって接続されている。
【００２１】
メモリアレイ１００は、ＥＥＰＲＯＭアレイ１０１とマスクＲＯＭアレイ１０２とを備えている。ＥＥＰＲＯＭアレイ１０１は、データの電気的な消去、書き込みが可能なＥＥＰＲＯＭの特性を有する記憶領域である。マスクＲＯＭアレイ１０２は、製造工程時にデータが書き込まれる消去、書き換え不能なマスクＲＯＭの特性を有する記憶領域である。
【００２２】
メモリアレイ１００のＥＥＰＲＯＭアレイ１０１およびマスクＲＯＭアレイ１０２には、図２に模式的に示す１ビットの情報を格納するデータセル（メモリセル）が複数備えられている。本実施例では、図２に示すようにメモリアレイ１００は、１行に８アドレス（データ８ビット分のアドレス）を所定のアドレス単位として備えており、例えば、ＥＥＰＲＯＭアレイ１０１には、１行に８個のデータセル（８ビット）、１列に１６個のデータセル（１６ワード）が配置されており、１６ワード×８ビット（１２８ビット）のデータを格納することができる。マスクＲＯＭアレイ１０２には、１行に８個のデータセル（８ビット）、１列に８個のデータセル（８ワード）が配置されており、８ワード×８ビット（６４ビット）のデータを格納することができる。
【００２３】
図２を参照してメモリアレイ１００のアドレスマップについて説明する。本実施例におけるメモリアレイ１００は、既述の通りＥＥＰＲＯＭアレイ１０１とマスクＲＯＭアレイ１０２とを備えている。ＥＥＰＲＯＭアレイ１０１の先頭３アドレス（１行目のＡ０〜Ａ２列、３ビット）には、各半導体記憶装置を識別するための識別情報（ＩＤ情報）が格納されている。先頭３アドレスを含む第１行目に対する書き込みは禁止されており、例えば、工場出荷後には書き換えることはできない。
【００２４】
図２の例では、ＥＥＰＲＯＭアレイ１０１の第９アドレス（０８Ｈ）〜第１６アドレス（０ＦＨ）および第１７アドレス（１０Ｈ）〜第２４アドレス（０７Ｈ）には、一定条件の下、書き換え可能な１６ビットの情報が格納されている。なお、本実施例においては、この第９アドレス〜第１６アドレスおよび第１７アドレス〜第２４アドレスにより構成される行を書き込み制限行、あるいは、この第９アドレス〜第１６アドレスおよび第１７アドレス〜第２４アドレスの各８アドレスを、所定アドレス単位の書き込み制限格納アドレス、と呼ぶことがある。また、一定条件とは、例えば、格納されている情報がインク消費量に関する情報の場合には、書き込まれるデータの値が既存のデータの値よりも大きな場合、あるいは、格納されている情報がインク残量に関する情報の場合には、書き込まれるデータの値が既存のデータの値よりも小さな場合である。
【００２５】
ＥＥＰＲＯＭアレイ１０１の第２５アドレス以降は書き込みが禁止されている読み出し専用領域となり、例えば、工場出荷後には書き換えることはできない。なお、これら各アドレスの属性（アドレスマップ）は例示に過ぎず、書き込み制限領域に加えて、書き込みの制限のない書き込み可能領域を備えるように各アドレスの属性が決定されても良い。
【００２６】
マスクＲＯＭアレイ１０２は、メモリアレイ製造時に情報（データ）が書き込まれており、メモリアレイ製造後は、工場出荷前であっても書き込みを実行することはできない。なお、マスクＲＯＭアレイ１０２は、６４ビットのデータ格納領域であり、論理的に指定可能なマスクＲＯＭアレイ１０２の最大アドレスは１９２（ＢＦＨ）となるが、メモリアレイ１００は、マスクＲＯＭアレイ１０２の最大アドレスを超えた後であっても、第２５６アドレス（ＦＦＨ）までは、ダミーデータ（例えば、０）を出力する回路構成を備えている。この結果、メモリアレイ１００は、１２８ワード×１２８ビットの記憶領域を仮想的に２つ備える扱いやすいメモリアレイとなる。
【００２７】
本実施例におけるメモリアレイ１００は、上述のように８ビットを単位とする複数の行を備えているが、各行は独立したデータセル列ではなく、いわば、１本のデータセル列を８ビット単位で折り曲げることによって実現されている。すなわち、便宜的に９ビット目を含む行を２バイト目、１７ビット目を含む行を３バイト目と呼んでいるに過ぎない。この結果、メモリアレイ１００における所望のアドレスにアクセスするためには、先頭から順次アクセスする、いわゆる、シーケンシャルアクセス方式によるアクセスが必要となり、ランダムアクセス方式の場合に可能な所望のアドレスに対する直接的なアクセスは不可能となる。
【００２８】
メモリアレイ１００における各データセルには、ワード線とビット（データ）線が接続されており、対応するワード線（行）を選択（選択電圧を印加）して、対応するビット線に書き込み電圧を印加することによってデータセルにデータが書き込まれる。また、対応するワード線（行）を選択し、対応するビット線をＩＮ／ＯＵＴコントローラ１２０と接続し、電流の検出の有無によってデータセルのデータ（１または０）が読み出される。なお、本実施例における所定アドレス単位とは、１本のワード線に書き込み電圧を加えることにより書き込みが可能なアドレス数（データセル数）であるということができる。
【００２９】
カラム選択回路１０３は、アドレスカウンタ１１０によりカウントされた外部クロックパルス数に応じて順次、列（ビット線）をＩＮ／ＯＵＴコントローラ１２０と接続する。例えば、カラム選択回路１０３は、アドレスカウンタ１１０によってカウントされるクロックパルス数を示す８ビットの値の下位４ビットの値に応じてビット線を選択する。
【００３０】
ロー選択回路１０４は、アドレスカウンタ１１０によりカウントされた外部クロックパルス数に応じて順次、行（ワード線）に選択電圧を印加する。例えば、ロー選択回路１０４は、アドレスカウンタ１１０によってカウントされるクロックパルス数を示す８ビット値の上位４ビットの値に応じてワード線を選択する。以上のように、本実施例に係る半導体記憶装置１０では、アドレスデータを用いたメモリアレイ１００に対するアクセスは実行されず、専らアドレスカウンタ１１０によってカウントされたクロックパルス数にしたがって、所望のアドレスに対するアクセスが実行される。
【００３１】
アドレスカウンタ１１０は、リセット信号端子ＲＳＴＴ、クロック信号端子ＳＣＫＴ、カラム選択回路１０３、ロー選択回路１０４、ライト／リードコントローラ１４０と接続されている。アドレスカウンタ１１０は、リセット信号端子ＲＳＴＴを介して入力されるリセット信号を０（またはロー）にすることにより初期値にリセットされ、リセット信号が１とされた後に外部クロック信号端子ＳＣＫＴを介して入力されるクロックパルスの立ち下がりに同期してクロックパルス数をカウント（カウント値をインクリメント）する。
【００３２】
本実施例に用いられるアドレスカウンタ１１０は、メモリアレイ１００の１行のデータセル数（ビット数）に対応する８個のクロックパルス数を格納する８ビットのアドレスカウンタである。なお、初期値はメモリアレイ１００の先頭位置と関連付けられていればどのような値でも良く、一般的には０が初期値として用いられる。
【００３３】
アドレスカウンタ１１０は、カウントすべきクロックパルス数の最大カウント値を設定するためのキャリーアップ部１１１を備えている。アドレスカウンタ１１０は、カウントされたクロックパルス数が最大カウント値に到達すると、カウント値をメモリアレイ１００の先頭位置に対応する初期値に戻す。すなわち、アドレスカウンタ１１０によって指定されるアドレスは、メモリアレイ１００の先頭アドレスとなる。
【００３４】
本実施例において用いられるアドレスカウンタ１１０は、メモリアレイ１００に対してデータを書き込む際と、メモリアレイ１００からデータを読み出す際とで異なる最大カウント値を用いる。具体的には、アドレスカウンタ１１０は、ライト／リードコントローラ１４０から、要求されているアクセスがデータの書き込みである旨の通知を受けると、キャリーアップ部１１１における最大カウント値を１２８ビットに設定する。一方、アドレスカウンタ１１０は、ライト／リードコントローラ１４０から、要求されているアクセスがデータの読み出しである旨の通知を受けると、キャリーアップ部１１１における最大カウント値を２５６ビットに設定する。
【００３５】
本実施例では、既述の通り、ＥＥＰＲＯＭアレイ１０１とマスクＲＯＭアレイ１０２とを備えるメモリアレイ１００が用いられている。ＥＥＰＲＯＭアレイ１０１は、第１アドレス（００Ｈ）〜第１２８アドレス（７ＦＨ）の１２８アドレスを備えており、マスクＲＯＭアレイ１０２は、第１２９アドレス（８０Ｈ）〜第１９２アドレス（ＢＦＨ）の６４アドレスを備えている。マスクＲＯＭアレイ１０２に対してはデータを書き込むことができないので、データ書き込み時にはアドレスカウンタ１１０の最大カウント値、すなわち、アドレスカウンタ１１０によって指定可能なメモリアレイ１００の最大アドレスは第１２８アドレスとされる。この結果、データを書き込むことができないマスクＲＯＭアレイ１０２に相当するアドレスのカウントを省略することが可能となり、データ書き込みに要する時間を低減することができる。
【００３６】
一方、データの読み出し時には、アドレスカウンタ１１０の最大カウント値、すなわち、アドレスカウンタ１１０によって指定可能なメモリアレイ１００の最大アドレスは第２５６アドレスとされる。この結果、マスクＲＯＭアレイ１０２に相当するアドレスに対してもアクセスが可能となり、マスクＲＯＭアレイ１０２に格納されているデータを読み出すことが可能となる。なお、マスクＲＯＭアレイ１０２は、６４ビットのデータ格納領域であり、論理的に指定可能なマスクＲＯＭアレイ１０２の最大アドレスは１９２となるが、既述の通り、マスクＲＯＭアレイ１０２の最大アドレスを超えた後は、アドレスが２５６（ＦＦＨ）に達するまで、ダミーデータが出力される。
【００３７】
ＩＮ／ＯＵＴコントローラ１２０は、メモリアレイ１００に対してデータ信号端子ＳＤＡＴに入力された書き込みデータを転送し、あるいは、メモリアレイ１００から読み出されたデータを受信してデータ信号端子ＳＤＡＴに出力するための回路である。ＩＮ／ＯＵＴコントローラ１２０は、データ信号端子ＳＤＡＴ、リセット信号端子ＲＳＴＴ、メモリアレイ１００、ライト／リードコントローラ１４０と接続されており、ライト／ロードコントローラ１４０からの要求に従ってメモリアレイ１００に対するデータ転送方向ならびにデータ信号端子ＳＤＡＴに対する（データ信号端子ＳＤＡＴと接続されている信号線の）データ転送方向を切り換え制御する。ＩＮ／ＯＵＴコントローラ１２０に対するデータ信号端子ＳＤＡＴからの入力信号線には、データ信号端子ＳＤＡＴから入力された書き込みデータを一時的に格納する８ビットラッチレジスタ１７０が接続されている。
【００３８】
８ビットラッチレジスタ１７０には、データ信号端子ＳＤＡＴから入力信号線を介して入力されるデータ列（ＭＳＢ）が８ビットとなるまで保持され、８ビット分揃ったところで、ＥＥＰＲＯＭアレイ１０１に対して保持されている８ビットのデータが書き込まれる。８ビットラッチレジスタ１７０は、いわゆるＦＩＦＯタイプのシフトレジスタであり、入力データの９ビット目が新たにラッチされると、既にラッチされていた１ビット目のデータが放出される。
【００３９】
ＩＮ／ＯＵＴコントローラ１２０は、電源ＯＮ時、リセット時には、メモリアレイ１００に対するデータ転送方向を読み出し方向に設定し、８ビットラッチレジスタ１７０とＩＮ／ＯＵＴコントローラ１２０との間における入力信号線をハイインピーダンスとすることでデータ信号端子ＳＤＡＴに対するデータ入力を禁止する。この状態は、ライト／リードコントローラ１４０から書き込み処理要求が入力されるまで維持される。したがって、リセット信号入力後にデータ信号端子ＳＤＡＴを介して入力されるデータ列の先頭４ビットのデータはメモリアレイ１００に書き込まれることはなく、一方で、メモリアレイ１００の先頭４ビット（内４ビット目はドントケア）に格納されているデータは、ＩＤコンパレータ１３０に送出される。この結果、メモリアレイ１００の先頭４ビットは読み出し専用状態となる。
【００４０】
ＩＤコンパレータ１３０は、クロック信号端子ＳＣＫＴ、データ信号端子ＳＤＡＴ、リセット信号端子ＲＳＴＴと接続されており、データ信号端子ＳＤＡＴを介して入力された入力データ列に含まれる識別データとメモリアレイ１００（ＥＥＰＲＯＭアレイ１０１）に格納されている識別データとが一致するか否かを判定する。詳述すると、ＩＤコンパレータ１３０は、リセット信号ＲＳＴが入力された後に入力されるオペレーションコードの先頭３ビットのデータ、すなわち識別データを取得する。ＩＤコンパレータ１３０は、入力データ列に含まれる識別データを格納する３ビットレジスタ（図示しない）、ＩＮ／ＯＵＴコントローラ１２０を介してメモリアレイ１００から取得した最上位３ビットの識別データを格納する３ビットレジスタ（図示しない）を有しており、両レジスタの値が一致するか否かによって識別データが一致するか否かを判定する。ＩＤコンパレータ１３０は、両識別データが一致する場合には、アクセス許可信号ＥＮをライト／リードコントローラ１４０に送出する。ＩＤコンパレータ１３０は、リセット信号ＲＳＴが入力（ＲＳＴ＝０またはＬｏｗ）されるとレジスタの値をクリアする。
【００４１】
ライト／リードコントローラ１４０は、ＩＮ／ＯＵＴコントローラ１２０、ＩＤコンパレータ１３０、インクリメントコントローラ１５０、チャージポンプ回路１６０、クロック信号端子ＳＣＫＴ、データ信号端子ＳＤＡＴ、リセット信号端子ＲＳＴＴと接続されている。ライト／ロードコントローラ１４０は、リセット信号ＲＳＴが入力された後の４つめのクロック信号に同期してデータ信号端子ＳＤＡＴを介して入力される書き込み／読み出し制御情報（３ビットのＩＤ情報に続く４ビット目の情報）を確認し、半導体記憶装置１０の内部動作を書き込みまたは読み出しのいずれかに切り換える回路である。具体的には、ライト／リードコントローラ１４０は、ＩＤコンパレータ１３０からのアクセス許可信号ＡＥＮおよびインクリメントコントローラＷＥＮ１からの書き込み許可信号ＷＥＮ１が入力されると、取得した書き込み／読み出しコマンドを解析する。ライト／リードコントローラ１４０は、書き込みコマンドであれば、ＩＮ／ＯＵＴコントローラ１２０に対して、バス信号線のデータ転送方向を書き込み方向に切り換え、書き込みを許可する書き込み許可信号ＷＥＮ２を送信し、チャージポンプ回路１６０に対して書き込み電圧の生成を要求する。
【００４２】
本実施例では、書き込み制限行に書き込まれる書き込みデータＤＩが、値が増加（インクリメント）する特性を有するデータである場合には、書き込みデータＤＩが書き込み制限行に既に格納されている既存データＤＥよりも大きな値であるか否かを判断し、書き込みデータＤＩが、値が減少（デクリメント）する特性を有するデータである場合には、書き込みデータＤＩが書き込み制限行に既に格納されている既存データＤＥよりも小さな値であるか否かを判断することで、書き込みデータＤＩのデータ化け、誤ったデータの入力を低減又は防止する。この機能は、前者の場合にはインクリメントコントローラ、後者の場合にはデクリメントコントローラによって提供される。本実施例では以下の説明において、前者を例にとって説明する。  
【００４３】
インクリメントコントローラ１５０は、リセット信号端子ＲＳＴＴ、ライト／リードコントローラ１４０、チャージポンプ回路１６０と信号線を介して接続されている。インクリメントコントローラ１５０は、内部に４ビットカウンタ１５１および８ビット内部レジスタ１５２、１５３を有している。インクリメントコントローラ１５０は、書き込み制限行に書き込まれる書き込みデータＤＩが書き込み制限行に既に格納されている既存データＤＥよりも大きな値であるか否かを判断し、さらにＥＥＰＲＯＭアレイ１０１に書き込まれたデータが正しく書き込まれたか否かの判断（ベリファイ、検証）を実行する。
【００４４】
インクリメントコントローラ１５０は、書き込みデータＤＩを８ビットラッチレジスタ１７０にラッチするタイミングで、ＥＥＰＲＯＭアレイ１０１の書き込み制限行から既存データＤＥを読み出し、内部に備える８ビット内部レジスタ１５２に格納する。インクリメントコントローラ１５０は、読み出される既存データＥＤと８ビットラッチレジスタ１７０に入力される書き込みデータＤＩとを１ビット単位で比較して、書き込みデータＤＩが既存データＤＥよりも大きな値のデータであるか否かを判定する。なお、処理の迅速化および回路規模削減のため、入力される書き込みデータはＭＳＢであることが望ましい。
【００４５】
インクリメントコントローラ１５０は、書き込みデータＤＩが既存データＤＥよりも大きな値のデータである場合には、ライト／リードコントローラ１４０に対して書き込み許可信号ＷＥＮ１を出力する。なお、書き込み制限行が複数行に亘る場合には、全ての書き込み制限行において書き込みデータＤＩが既存データＤＥよりも大きな値のデータである場合にのみ、インクリメントコントローラ１５０は、書き込み許可信号ＷＥＮ１を出力する。
【００４６】
インクリメントコントローラ１５０は、書き込みデータを書き込んだ後、正しくデータが書き込まれたか否かを検証し、書き込みデータが正しく書き込まれていない場合には、内部に備える８ビット内部レジスタ１５２に格納されている既存データＤＥをメモリアレイ１００に対して書き戻す。書き込みデータの検証に際して、インクリメントコントローラ１５０に備えられている４ビットカウンタ１５１は、書き込みスタンバイ状態から外部クロック信号に対して８ビット遅れで、チャージポンプ回路１６０に備えられている内部発振器１６２から内部クロック信号を受けてカウントアップを開始する。４ビットカウンタ１５１によってカウントアップされたカウント値は、カラム選択回路１０３、ロー選択回路１０４に入力され、書き込まれたばかりの既存データＤＥが読み出される。
【００４７】
チャージポンプ回路１６０は、既述の通り、ライト／リードコントローラ１４０からの要求信号に基づいて、ＥＥＰＲＯＭアレイ１０１に対してデータを書き込む際に必要な書き込み電圧をカラム選択回路１０３を介して選択されたビット線に供給するための回路である。チャージポンプ回路１６０は、電圧昇圧時に必要な動作周波数を生成する内部発振器１６２を備え、正極電源端子ＶＤＤＴを介して得られる電圧を昇圧することで、必要な書き込み電圧を生成する。
【００４８】
・読み出し処理
図３および図４を参照して本実施例に係る半導体記憶装置１０における読み出し動作について説明する。図３は読み出し動作実行時におけるリセット信号ＲＳＴ、外部クロック信号ＳＣＫ、データ信号ＳＤＡ、アドレスカウンタ値の時間的関係を示すタイミングチャートである。図４は本実施例の半導体記憶装置１０およびホスト計算機によって実行されるデータ読み出し処理の処理ルーチンを示すフローチャートである。
【００４９】
読み出し動作に先立って、オペレーションコードに基づく、識別情報の確認、読み出し／書き込みコマンドの確認処理について説明する。ホスト計算機（例えば、図８参照）によって、リセット状態（ＲＳＴ＝０またはＬｏｗ）が解除される（ＲＳＴ＝１またはＨｉ）と（ステップＳｈ１００）、半導体記憶装置１０はメモリ側読み出し処理を開始する。ホスト計算機は、４ビットのオペレーションコードを含むデータ信号ＳＤＡを外部クロック信号と同期させて、半導体記憶装置１０のデータ信号端子ＳＤＡＴに入力する。より具体的には、ホスト計算機は、先ず、３ビットの識別情報を半導体記憶装置１０に対して送信する（ステップＳｆ１０２）。メモリアレイ１００には、図３に示すように、先頭３ビットに識別情報ＩＤ０、ＩＤ１、ＩＤ２、先頭から４ビット目に書き込みまたは読み出しを決定するためのコマンドビットが格納されている。識別情報の比較は以下の通り実行される。
【００５０】
半導体記憶装置１０のＩＤコンパレータ１３０は、入力された識別情報とメモリアレイ１００に格納されている識別情報とが一致するか否かを判定するＩＤ検索処理を実行する（Ｓｍ１００）。具体的には、ＩＤコンパレータ１３０は、リセット信号ＲＳＴがローからハイに切り替えられた後の３つのクロック信号ＳＣＫの立ち上がりエッジに同期してデータ信号端子ＳＤＡＴに入力されたデータ、すなわち、３ビットの識別情報を取得して第１の３ビットレジスタに格納する。これと同時にＩＤコンパレータ１３０は、アドレスカウンタ１１０のカウンタ値００、０１、０２によって指定されるメモリアレイ１００のアドレスからデータを取得し、すなわち、メモリアレイ１００に格納されている識別情報を取得して、第２の３ビットレジスタに格納する。
【００５１】
ＩＤコンパレータ１３０は、第１、第２レジスタに格納された識別情報が一致するか否かを判定し、識別情報が一致しない場合には（ステップＳｍ１００：不一致）、ＩＮ／ＯＵＴコントローラ１２０によって、８ビットラッチレジスタ１７０とＩＮ／ＯＵＴコントローラ１２０との間における入力信号線に対するハイインピーダンスの状態が保持される。この結果、メモリアレイ１００に対するアクセスは許されず、データの読み出し処理が終了する。一方、ＩＤコンパレータ１３０は、第１、第２レジスタに格納された識別情報が一致する場合には（ステップＳｍ１００：一致）、ライト／リードコントローラ１４０に対してアクセス許可信号ＡＥＮを出力する。
【００５２】
ホスト計算機は、リセット信号ＲＳＴのローからハイへの切り替わり後の４つ目のクロック信号ＳＣＫの立ち上がりエッジに同期してコマンドビット（読み出しコマンド、例えば、０のビット）をデータ信号端子ＳＤＡＴに入力する（ステップＳｈ１０４）。アクセス許可信号ＡＥＮを受信したライト／リードコントローラ１４０は、データ信号端子ＳＤＡＴを介してバス信号線に送出されたコマンドビットを取得して書き込み命令であるか否かを判定する。ライト／リードコントローラ１４０は、取得したコマンドビットが書き込みコマンドでない場合には、ＩＮ／ＯＵＴコントローラ１２０に対して読み出し命令を出力する。読み出し命令を受信したＩＮ／ＯＵＴコントローラ１２０は、メモリアレイ１００に対するデータ転送方向を読み出し方向（出力状態）に変更し（ステップＳｍ１０２）、メモリアレイ１００からのデータ転送を許容する。
【００５３】
また、ライト／リードコントローラ１４０は、アドレスカウンタ１１０に対して、要求されているアクセスがデータの読み出しである旨を通知する。この通知を受けて、アドレスカウンタ１１０のカウントアップ部１１１は、最大カウント値を２５６ビットに設定する。
【００５４】
ホスト計算機は、アクセスを所望するアドレス、すなわち、読み出しを所望するデータが格納されているアドレスに対応するクロックパルス数のクロック信号ＳＣＫを半導体記憶装置１０のクロック信号端子ＳＣＫＴに対して出力する（ステップＳｈ１０６）。
【００５５】
半導体記憶装置１０のアドレスカウンタ１１０は、クロック信号ＳＣＫの立ち下がりに同期してカウントアップして、入力クロックパルス数を計数する（Ｓｍ１０４）。なお、オペレーションコード入力後のアドレスカウンタ１１０のカウンタ値は０４であるから、メモリアレイ１００の０４Ｈに格納されている既存データＤＥから読み出される。本実施例に係る半導体記憶装置１０のメモリアレイ１００は、００Ｈ〜ＢＦＨまでのアドレスしか有していないが、既述の通り、アドレスカウンタ１１０は、キャリーアップ部１１１において設定されている２５６ビット（アドレスＦＦＨ）までカウントアップを実行する。アドレスＣ０Ｈ〜ＦＦＨまでは、疑似領域であり、対応するアドレスはメモリアレイ１００には存在せず、かかる疑似領域にアクセスしている期間は、データ信号端子ＳＤＡＴに対して値「０」が出力される。アドレスカウンタ１１０によってアドレスＦＦＨに対応するクロックパルス数、すなわち、２５６までカウントアップされると、アドレスカウンタ１１０によって指定されるメモリアレイ１００上のアドレスはアドレス００Ｈに戻る（ステップＳｍ１０６）。すなわち、アドレスカウンタ１１０の８ビットレジスタの値（ビット）が全て１となった時点で、メモリアレイ１００におけるＥＥＰＲＯＭ１０１の先頭アドレス００Ｈが次のアクセスアドレスとして指定される。
【００５６】
メモリアレイに格納されている既存データＤＥは、クロック信号ＳＣＫの立ち下がりに同期してＩＮ／ＯＵＴコントローラ１２０を介して、データ信号端子ＳＤＡＴに順次出力され（ステップＳｍ１０８）、出力された既存データＤＥはクロック信号ＳＣＫの次の立ち下がりまでの期間は保持される。クロック信号ＳＣＫが立ち下がると、アドレスカウンタ１１０におけるカウント値は１つインクリメントされ、この結果、メモリアレイ１００における次のアドレス（データセル）に格納されている既存データＤＥがデータ信号端子ＳＤＡＴに出力される。この動作の繰り返しが、所望のアドレスに到達するまで、クロック信号ＳＣＫに同期して実行される。すなわち、本実施例における半導体記憶装置１０はシーケンシャルアクセスタイプの記憶装置であるから、ホスト計算機は、読み出し、または書き込みを所望するアドレスに対応する数のクロック信号パルスを発行し、アドレスカウンタ１１０のカウンタ値を所定のアドレスに対応するカウント値までインクリメントしなければならない。この結果、既存データＤＥは、クロック信号ＳＣＫに同期して順次インクリメントされるアドレスカウンタ１１０のカウンタ値によって指定されるアドレスからシーケンシャルに読み出しされる。
【００５７】
ホスト計算機は、半導体記憶装置１０からシーケンシャルに出力されるデータを受信する（ステップＳｈ１０８）。既述の通り、本実施例におけるメモリアレイ１００は、シーケンシャルアクセスメモリであるから、所望のアドレスに到達するまでメモリアレイ１００に格納されているデータが順次読み出される。ホスト計算機は、半導体記憶装置１０から出力されるデータと、半導体記憶装置１０に対して出力したクロックパルス数とを対応付けて管理することで、所望のアドレスのデータを特定し、取得する（Ｓｈ１１０）。
【００５８】
読み出し動作終了後には、ホスト計算機から０またはＬＯＷのリセット信号ＲＳＴが入力され、半導体記憶装置１０は、オペレーションコードの受け付け待機状態とされる。リセット信号ＲＳＴ（＝０またはＬＯＷ）が入力されると、アドレスカウンタ１１０、ＩＮ／ＯＵＴコントローラ１２０、ＩＤコンパレータ１３０、ライト／リードコントローラ１４０およびインクリメントコントローラ１５０は初期化される。
【００５９】
・書き込み処理
図５および図６を参照して本実施例に係る半導体記憶装置１０における書き込み動作について説明する。図５は書き込み動作実行時におけるリセット信号ＲＳＴ、外部クロック信号ＳＣＫ、データ信号ＳＤＡ、アドレスカウンタ値の時間的関係を示すタイミングチャートである。図６は本実施例の半導体記憶装置１０およびホスト計算機によって実行されるデータ書き込み処理の処理ルーチンを示すフローチャートである。本実施例に係る半導体記憶装置１０では、書き込みは行単位（８ビット単位）、すなわち所定アドレス単位（８アドレス単位）で実行される。
【００６０】
ホスト計算機（例えば、図８参照）によって、リセット状態（ＲＳＴ＝０またはＬｏｗ）が解除される（ＲＳＴ＝１またはＨｉ）と（ステップＳｈ２００）、半導体記憶装置１０はメモリ側書き込み処理を開始する。なお、厳密には、オペレーションコードの解析処理中は、書き込み処理であるか読み出し処理であるか決定されていないが、説明の都合上、以下ではオペレーションコードの解析処理中も含めて書き込み処理と呼ぶことがある。
【００６１】
ホスト計算機は、４ビットのオペレーションコードを含むデータ信号ＳＤＡを外部クロック信号と同期させて、半導体記憶装置１０のデータ信号端子ＳＤＡＴに入力する。より具体的には、ホスト計算機は、先ず、３ビットの識別情報を半導体記憶装置１０に対して送信する（ステップＳｆ２０２）。
【００６２】
半導体記憶装置１０のＩＤコンパレータ１３０は、入力された識別情報とメモリアレイ１００に格納されている識別情報とが一致するか否かを判定するＩＤ検索処理を実行する（Ｓｍ２００）。具体的には、ＩＤコンパレータ１３０は、リセット信号ＲＳＴがローからハイに切り替えられた後の３つのクロック信号ＳＣＫの立ち上がりエッジに同期してデータ信号端子ＳＤＡＴに入力されたデータ、すなわち、３ビットの識別情報を取得して第１の３ビットレジスタに格納する。これと同時にＩＤコンパレータ１３０は、アドレスカウンタ１１０のカウンタ値００、０１、０２によって指定されるメモリアレイ１００のアドレスからデータを取得し、すなわち、メモリアレイ１００に格納されている識別情報を取得して、第２の３ビットレジスタに格納する。
【００６３】
ＩＤコンパレータ１３０は、第１、第２レジスタに格納された識別情報が一致するか否かを判定し、識別情報が一致しない場合には（ステップＳｍ２００：不一致）、ＩＮ／ＯＵＴコントローラ１２０によって、８ビットラッチレジスタ１７０とＩＮ／ＯＵＴコントローラ１２０との間における入力信号線に対するハイインピーダンスの状態が保持される。この結果、メモリアレイ１００に対するアクセスは許されず、データの読み出し処理が終了する。一方、ＩＤコンパレータ１３０は、第１、第２レジスタに格納された識別情報が一致する場合には（ステップＳｍ２００：一致）、ライト／リードコントローラ１４０に対してアクセス許可信号ＡＥＮを出力する。
【００６４】
ホスト計算機は、リセット信号ＲＳＴのローからハイへの切り替わり後の４つ目のクロック信号ＳＣＫの立ち上がりエッジに同期してコマンドビット（書き込みコマンド、例えば、１のビット）をデータ信号端子ＳＤＡＴに入力する（ステップＳｈ２０４）。アクセス許可信号ＡＥＮを受信したライト／リードコントローラ１４０は、データ信号端子ＳＤＡＴを介してバス信号線に送出されたコマンドビットを取得して書き込み命令であるか否かを判定する。ライト／リードコントローラ１４０は、取得したコマンドビットが書き込みコマンドであると共に、インクリメントコントローラ１５０から書き込み許可信号ＷＥＮ１を受信した場合には、ＩＮ／ＯＵＴコントローラ１２０に対して書き込み許可信号ＷＥＮ２を出力する。書き込み命令を受信したＩＮ／ＯＵＴコントローラ１２０は、メモリアレイ１００に対するデータ転送方向を書き込み方向（入力状態）に変更し（ステップＳｍ２０２）、メモリアレイ１００に対するデータ転送を許容する。
【００６５】
また、ライト／リードコントローラ１４０は、アドレスカウンタ１１０に対して、要求されているアクセスがデータの書き込みである旨を通知する。この通知を受けて、アドレスカウンタ１１０のカウントアップ部１１１は、最大カウント値を１２８ビットに設定する。
【００６６】
ホスト計算機は、アクセスを所望するアドレス、すなわち、データの書き込みを所望するアドレスに対応するクロックパルス数のクロック信号ＳＣＫを半導体記憶装置１０のクロック信号端子ＳＣＫＴに対して出力する（ステップＳｈ２０６）。アドレスカウンタ１１０によってアドレス７ＦＨに対応するクロックパルス数、すなわち、１２８までカウントアップされると、アドレスカウンタ１１０によって指定されるメモリアレイ１００上のアドレスはアドレス００Ｈに戻る（ステップＳｍ２０６）。すなわち、アドレスカウンタ１１０の８ビットレジスタの８ビット目の値（最上位ビット）が１となった時点で、メモリアレイ１００におけるＥＥＰＲＯＭ１０１の先頭アドレス００Ｈが次のアクセスアドレスとして指定される。
【００６７】
オペレーションコードが入力された後、図５に示す通り、クロック信号端子ＳＣＫＴにはダミーライトクロックとして４クロック信号が入力され、書き込みスタンバイ状態とされる。ホスト計算機は書き込みデータを半導体記憶装置１０のデータ信号端子ＳＤＡＴに送信する。アドレスカウンタ１１０は、クロック信号ＳＣＫの立ち下がりに同期してカウントアップするため、書き込みスタンバイ状態後の、アドレスカウンタ１１０のカウンタ値は０８となる。したがって、データ信号端子ＳＤＡＴを介して受信したデータは、カウントアップに応じてメモリアレイ１００のアドレス０８Ｈから８ビット単位で書き込まれる（ステップＳｍ２０８）。
【００６８】
本実施例では、１行８ビットのメモリアレイ１００に対して、１６ビット長の書き込みデータが書き込まれる。書き込み処理に際しては、先ず、書き込みデータＤＩの最上位ビット（ＭＳＢ）から８ビットのデータが、クロック信号ＳＣＫの立ち上がりに同期して、８ビットラッチレジスタ１７０に順次ラッチされる。また、ＩＮ／ＯＵＴコントローラ１２０に対して書き込み許可信号ＷＥＮ２が出力されるまでは、クロック信号ＳＣＫの立ち下がりに同期して、メモリアレイ１００の第８アドレス以後の既存データが順次、データ出力信号線（データ信号端子ＳＤＡ）上に出力される。データ出力信号線上に出力された既存データＤＥは、インクリメントコントローラ１５０に入力され、８ビットラッチレジスタ１７０にラッチされた書き込みデータＤＩと共に、インクリメントコントローラ１５０における書き込みデータＤＩが既存データＤＥよりも大きな値であるか否かを判定するために用いられる。この判断処理は、書き込みスタンバイ状態後の８サイクル目のクロック信号ＳＣＫ立ち上がり後（＝１またはＨｉ）に実行される。
【００６９】
書き込み許可信号ＷＥＮ２を受信したＩＮ／ＯＵＴコントローラ１２０は、メモリアレイ１００に対するデータ転送方向を書き込み方向に変更し、８ビットラッチレジスタ１７０とＩＮ／ＯＵＴコントローラとの間における信号線のハイインピーダンス設定を解除してデータ転送を許容する。この結果、メモリアレイ１００の各ビット線には書き込みデータＤＩの値（０または１）が転送される。ライト／リードコントローラ１４０は、書き込みスタンバイ状態後の８サイクル目のクロック信号ＳＣＫ立ち上がり後に、チャージポンプ回路１６０に対して書き込み電圧の生成を要求し、生成された書き込み電圧は、カラム選択回路１０３によって選択されているビット線、本実施例では全てのビット線に印加され、この結果、８ビットラッチレジスタ１７０に格納されている８ビットのデータ「１」と「０」が、一度に書き込み制限行に書き込まれる。
【００７０】
８サイクル目のクロック信号ＳＣＫが立ち下がると、アドレスカウンタ１１０のカウント値が１つインクリメントされ、次のアドレス（８アドレス分）に書き込まれるべき書き込みデータＤＩ（２バイト目のデータ）の取り込みが実行される。また、８サイクル目のクロック信号ＳＣＫが立ち下がった後のクロック・ロー期間で、書き込まれたばかりの既存データＤＥと書き込みに用いられた書き込みデータＤＩとが一致するか否かのベリファイ処理が実行される。すなわち、クロック・ロー期間の間に、インクリメントコントローラ１５０に備えられている４ビットカウンタ１５１によって書き込まれたばかりの８ビットの既存データＤＥのアドレスを指定するためのカウント値がカラム選択回路１０３およびロー選択回路１０４に対して入力される。この結果、ＩＮ／ＯＵＴコントローラ１２０からは、書き込まれたばかりの８ビットの既存データＤＥが出力され、ＩＮ／ＯＵＴコントローラ１２０を介して、インクリメントコントローラ１５０が備える８ビット内部レジスタ１５３に格納される。インクリメントコントローラ１５０は、８ビット内部レジスタ１５３に格納されている８ビットの既存データＤＥと８ビットラッチレジスタ１７０に格納されている８ビットの書き込みデータＤＩとが一致するか否かを検証する。
【００７１】
本実施例では、書き込みデータＤＩは１６ビット長のデータであり、書き込み制限行は２行（８アドレス×２）であるため、上記の処理が２度実行されると、書き込み制限行に対する書き込みデータＤＩの書き込みは完了する。書き込みデータＤＩの書き込み完了後、ホスト計算機からリセット信号ＲＳＴ（＝０またはＬＯＷ）がリセット信号端子ＲＳＴＴに入力され、オペレーションコードの受け付け待機状態とされて、書き込み処理が終了する。
【００７２】
なお、ホスト計算機から送出される書き込みデータは、書き換えを所望するアドレスに対応するデータを除いて、メモリアレイ１００に現在格納されているデータと同一の値（０または１）を有している。すなわち、メモリアレイ１００における書き換えられないアドレスのデータは、同一の値によって上書きされる。
【００７３】
リセット信号ＲＳＴ（＝０またはＬＯＷ）が入力されると、アドレスカウンタ１１０、ＩＮ／ＯＵＴコントローラ１２０、ＩＤコンパレータ１３０、ライト／リードコントローラ１４０およびインクリメントコントローラ１５０は初期化される。
【００７４】
図７を参照して、本実施例に係る半導体記憶装置１０の応用例について説明する。図７は本実施例に係る半導体記憶装置の応用例を示す説明図である。本実施例に係る半導体記憶装置１０は、消費材を収容する収容容器、例えば、印刷記録材としてのインクを収容するインク収容体３１０、３１１、３１２に備えられる。各インク収容体３１０、３１１、３１２が印刷装置に装着されると、印刷装置に備えられるホスト計算機３００と、バス接続される。すなわち、ホスト計算機３００からのデータ信号線ＳＤＡ、クロック信号線ＳＣＫ、リセット信号線ＲＳＴ、正極電源線ＶＤＤ、および負極電源線ＶＳＳは、各インク収容体３１０、３１１、３１２に備えられている半導体記憶装置１０と接続されている。この応用例では、インク残量またはインク消費量といったインクに関する量の情報が半導体記憶装置１０に格納される。
【００７５】
以上説明したとおり、本実施例に係る半導体記憶装置１０によれば、データの書き込み時とデータの読み出し時とでは、アドレスカウンタ１１０の最大カウント値が異なるので、半導体記憶装置１０が複数の異なるデータ格納エリアを備える場合であっても、アドレスの指定に必要な回路構成を小型化し、半導体記憶装置１０をコンパクトにすることができる。すなわち、データの書き込み時には、データの書き込みが可能なＥＥＰＲＯＭアレイ１０１の最大アドレスに対応する値を最大カウント値として設定し、データ読み出し時にはマスクＲＯＭアレイ１０２の最大アドレス（論理アドレス数＋仮想アドレス数）に対応する値を最大カウント値として設定するので、単一のアドレスカウンタ１１０によって、ＥＥＰＲＯＭアレイ１０１に対するデータの書き込み、ＥＥＰＲＯＭアレイ１０１およびマスクＲＯＭアレイ１０２からのデータの読み出しを行うことができる。また、本実施例では、メモリアレイ１００における記憶容量の最大値が２nに設定されているので、アドレスカウンタ１１０からメモリアレイ１００に引かれるべき信号線は２本で足り、アドレスをデコードするための回路の簡略化を行うことが出来る。これに対して、一般的には、ＥＥＰＲＯＭアレイ１０１とマスクＲＯＭアレイ１０２のそれぞれに対してアドレスをデコードするための回路構成を備える必要があり、半導体記憶装置の回路規模が大きくなるという問題がある。また、メモリアレイにおける記憶容量の最大値が２nでない場合には、アドレスカウンタからメモリアレイに引かれるべき制御線は３本以上必要なため回路規模が大きくなってしまう。
【００７６】
また、データの書き込み時における最大カウント値がデータの読み出し時における最大カウント値よりも小さいので、半導体記憶装置１０における、データの書き込み処理速度の向上を図ることができる。すなわち、データの書き込みは、データの読み出しと比較して時間を要するが、データの書き込み時には、データの書き込みができないマスクＲＯＭアレイ１０２に対するアドレス指定処理を実行しないので、半導体記憶装置１０における、データの書き込み時間の短縮化を図ることができる。一方、データ読み出し時には、マスクＲＯＭアレイ１０２に対してもアドレス指定処理が実行されるので、ＥＥＰＲＯＭアレイ１０１およびマスクＲＯＭアレイ１０２から所望のデータを読み出すことができる。
【００７７】
その他の実施例：
（１）半導体記憶装置１０における、データの書き込み処理速度の向上は、工場出荷時における、ＥＥＰＲＯＭエリア１０１に対するデータ、識別情報の書き込み処理時に更に顕著となる。ＥＥＰＲＯＭエリア１０１に対して、データおよび識別情報が書き込まれる前は、ＥＥＰＲＯＭエリア１０１の先頭３ビットには仮の識別情報、例えば、１１１が格納されている。ホスト計算機は、オペレーションコードの識別情報として、１１１を半導体記憶装置１０に送信し、ＥＥＰＲＯＭアレイ１０１に対するデータの書き込みを開始する。データの書き込みは、ＥＥＰＲＯＭアレイ１０１の２行目から１６行目への書き込みを経て、１行目に対して識別情報を書き込んで完了する。
【００７８】
すなわち、アドレス０８Ｈから８ビット単位にてデータが書き込まれ、アドレス７８Ｈ（１６行目）に対するデータの書き込みが完了すると、アドレスは７ＦＨ（入力されたクロックパルス数は１２８）であるから、次のクロックパルスの入力に応じてアドレスカウンタ１１０によって指定されるアドレスは、ＥＥＰＲＯＭアレイ１０１の先頭アドレスである、００Ｈとなる。ホスト計算機は、１行目に書き込むべき情報、例えば、インク色、インク種に対応する識別情報を含む８ビットのデータを半導体記憶装置１０に対して出力する。この結果、ＥＥＰＲＯＭアレイ１０１の１行目には、所望の識別情報が書き込まれる。このように、ＥＥＰＲＯＭアレイ１０１の１行目に格納すべき識別情報を最後に書き込むことによって、通常の半導体記憶装置１０に対するアクセスロジックを利用して、ＥＥＰＲＯＭアレイ１０１のプログラミング（初期データの書き込み）を実行することができる。
【００７９】
また、ＥＥＰＲＯＭアレイ１０１およびマスクＲＯＭアレイ１０２のプログラミングが正常に実行されたか否かを検証する際には、アドレスカウンタ１１０の最大カウント値はマスクＲＯＭアレイ１０２の最大アドレス（論理的なアドレス数＋仮想的なアドレス数）に設定されるので、マスクＲＯＭアレイのアドレスＢＦＨまでデータの読み出しを実行することができる。開始される。
【００８０】
（２）上記実施例では、インクカートリッジを応用例として用いたが、この他にもトナーカートリッジにおいても同様の効果を得ることができる。また、プリペイドカード等の通貨相当情報を格納する媒体において適用した場合にも同様の効果を得ることができる。
【００８１】
（３）上記実施例におけるベリファイ処理は、４ビットカウンタおよび内部発振器１６２を用いて、８ビット内部レジスタ１５３にラッチされている既存データＤＥ１と８ビットラッチレジスタ１７０にラッチされている書き込みＤＩ１を用いて８ビット単位で実行されても良い。あるいは、４ビットカウンタ１５１および８ビット内部レジスタ１５３を備えることなく、８ビットラッチレジスタ１７０からＭＳＢにて１ビット単位で放出される１バイト目の書き込みデータＤＩ１と、メモリアレイ１００の第１の書き込み制限行からＭＳＢにて１ビット単位で読み出される既存データＤＥ１とを１ビット単位で比較することによって実行されても良い。かかる場合には、インクリメントコントローラ１５０は、必要ない。
【００８２】
（４）上記実施例では、複数の異なるデータ格納領域を例にとって説明したが、例えば、ＥＥＰＲＯＭアレイ１０１のみを備える場合にも適用することができる。すなわち、ＥＥＰＲＯＭアレイ１０１の所定行以降の書き換えが禁止されており、所定行までの書き換えが実行される場合には、所定行の最終アドレスを最大カウント値とすることで、ＥＥＰＲＯＭアレイにおける所定行以降の書き込みが防止されると共に、所定行までの書き換え処理を迅速化することができる。
【００８３】
（５）上記実施例では、１６ビット長の書き込みデータを例にとって説明しているが、この他にも、２４ビット長、３２ビット長といった、メモリアレイ１００の１行のビット長の倍数のデータ長を有するデータに対しても同様に適用することができると共に、同様の効果を得ることができる。  
【００８４】
以上、いくつかの実施例に基づき本発明に係る半導体記憶装置、半導体記憶装置におけるアドレス管理方法を説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることはもちろんである。
【図面の簡単な説明】
【００８５】
【図１】本実施例に係る半導体記憶装置の機能的な内部構成を示すブロック図である。
【図２】本実施例に係る半導体記憶装置が備えるメモリアレイの内部構成マップを模式的に示す説明図である。
【図３】読み出し動作実行時におけるリセット信号ＲＳＴ、外部クロック信号ＳＣＫ、データ信号ＳＤＡ、アドレスカウンタ値の時間的関係を示すタイミングチャートである。
【図４】本実施例の半導体記憶装置およびホスト計算機によって実行されるデータ読み出し処理の処理ルーチンを示すフローチャートである。
【図５】書き込み動作実行時におけるリセット信号ＲＳＴ、外部クロック信号ＳＣＫ、データ信号ＳＤＡ、アドレスカウンタ値の時間的関係を示すタイミングチャートである。
【図６】本実施例の半導体記憶装置１０およびホスト計算機によって実行されるデータ書き込み処理の処理ルーチンを示すフローチャートである。
【図７】本実施例に係る半導体記憶装置の応用例を示す説明図である。
【符号の説明】
【００８６】
１０…半導体記憶装置
１００…メモリアレイ
１０１…ＥＥＰＲＯＭアレイ
１０２…マスクＲＯＭアレイ
１０３…カラム選択回路
１０４…ロー選択回路
１１０…アドレスカウンタ
１１１…キャリーアップ部
１２０…ＩＮ／ＯＵＴコントローラ
１３０…ＩＤコンパレータ
１４０…ライト／リードコントローラ
１５０…インクリメントコントローラ
１５１…４ビットカウンタ
１５２、１５３…８ビット内部レジスタ
１６０…チャージポンプ回路
１６２…内部発振器
１７０…８ビットラッチレジスタ
３００…ホスト計算機
３１０、３１１、３１２…インクカートリッジ
【図１】
0004839714.tif 000002
【図２】
0004839714.tif 000003
【図３】
0004839714.tif 000004
【図４】
0004839714.tif 000005
【図５】
0004839714.tif 000006
【図６】
0004839714.tif 000007
【図７】
0004839714.tif 000008