(57)【要約】半導体記憶装置１０は、入力された書き込みデータが、メモリアレイ１００の既存データの値以上の値である場合に、メモリアレイ１００に対する入力された書き込みデータの書き込みを許容する。具体的には、インクリメントコントローラ１５０は、メモリアレイ１００から既存データを読み出し、８ビットラッチレジスタ１７０にラッチされている書き込みデータと比較する。インクリメントコントローラ１５０は、書き込みデータの値が既存データの値以上の場合には、ライト／リードコントローラ１４０に対して書き込み許可信号ＷＥＮ１を出力し、メモリアレイ１００に対する８ビットラッチレジスタ１７０にラッチされている書き込みデータの書き込みを実行する。【特許請求の範囲】
【請求項１】
半導体記憶装置であって、
値が増大する特性のデータを格納する所定のアドレス単位の書き込み制限格納アドレスを有し、シーケンシャルにアクセスされる不揮発性のメモリアレイと、
前記書き込み制限格納アドレスに書き込むべき書き込みデータを所定のアドレス単位で保持する書き込みデータ保持手段と、
前記保持されている書き込みデータを、前記書き込み制限格納アドレスに対して前記所定のアドレス単位にて書き込むデータ書き込み手段と、
前記メモリアレイにおける、前記書き込み制限格納アドレスに格納されている既存データを読み出す読み出し手段と、
前記保持されている書き込みデータの値が、前記読み出された既存データの値以上の値であるか否かを判定する判定手段と、
前記書き込みデータの値が前記既存データの値未満の場合には、前記書き込み手段による前記メモリアレイの前記書き込み制限格納アドレスに対する前記書き込みデータの書き込みを実行しない制御部とを備える半導体記憶装置。
【請求項２】
請求の範囲１に記載の半導体記憶装置において、
前記制御部は、前記書き込みデータの値が前記既存データの値以上の場合には、前記書き込み制限格納アドレスに対する前記書き込みデータの書き込みを実行する半導体記憶装置。
【請求項３】
請求の範囲１に記載の半導体記憶装置において、
前記書き込み制限格納アドレス数が、前記所定のアドレス単位のｎ倍（ｎは自然数）である場合には、
前記判定手段は、前記所定のアドレス単位毎に、前記書き込みデータの値が前記既存データの値未満であるか否かを判定し、
前記制御部は、前記書き込み制限格納アドレスにおけるいずれかのアドレスにおいて、前記書き込みデータの値が前記既存データの値未満の場合には、前記全ての書き込み制限格納アドレスに対する、前記書き込みデータの書き込みを実行しない半導体記憶装置。
【請求項４】
請求の範囲３に記載の半導体記憶装置において、
前記制御部は、全ての前記書き込み制限格納アドレスにおいて、前記既存データの値が前記書き込みデータの値以上の場合には、前記メモリアレイの全ての前記書き込み制限格納アドレスに対して前記書き込み手段による前記書き込みデータの書き込みを実行する半導体記憶装置。
【請求項５】
請求の範囲１から４のいずれかに記載の半導体記憶装置において、
前記判定手段は、前記読み出し手段によって前記既存データが１アドレス毎に読み出される毎に、前記書き込みデータ保持手段から前記書き込みデータを１アドレス毎に読み出して、前記書き込みデータの値が前記読み出された既存データの値未満の値であるか否かを判定する半導体記憶装置。
【請求項６】
請求の範囲１から４のいずれかに記載の半導体記憶装置において、
前記判定手段は、前記読み出し手段によって１アドレス毎に読み出された前記所定のアドレス単位の既存データと、前記書き込みデータ保持手段に保持されている前記所定アドレス単位の書き込みデータとを用いて、前記書き込みデータの値が前記読み出された既存データの値未満の値であるか否かを判定する半導体記憶装置。
【請求項７】
請求の範囲１から６のいずれかに記載の半導体記憶装置において、
前記メモリアレイにおける書き込み制限格納アドレスには、最上位ビットから順にデータが格納されており、
前記データ書き込み手段は、前記メモリアレイに対して、最上位ビットから順にデータの書き込みを実行する半導体記憶装置。
【請求項８】
半導体記憶装置であって、
値が減少する特性のデータを格納する所定のアドレス単位の書き込み制限格納アドレスを有し、シーケンシャルにアクセスされる不揮発性のメモリアレイと、
前記書き込み制限格納アドレスに書き込むべき書き込みデータを所定のアドレス単位で保持する書き込みデータ保持手段と、
前記保持されている書き込みデータを、前記書き込み制限格納アドレスに対して前記所定のアドレス単位にて書き込むデータ書き込み手段と、
前記メモリアレイにおける、前記書き込み制限格納アドレスに格納されている既存データを読み出す読み出し手段と、
前記保持されている書き込みデータの値が、前記読み出された既存データの値以下であるか否かを判定する判定手段と、
前記書き込みデータの値が前記既存データの値より大きいの場合には、前記書き込み手段による前記メモリアレイの前記書き込み制限格納アドレスに対する前記書き込みデータの書き込みを実行しない制御部とを備える半導体記憶装置。
【請求項９】
請求の範囲８に記載の半導体記憶装置において、
前記制御部は、前記書き込みデータの値が前記既存データの値以下の場合には、前記書き込み制限格納アドレスに対する前記書き込みデータの書き込みを実行する半導体記憶装置。
【請求項１０】
値が増大する特性のデータを書き換え可能データとして記憶する半導体記憶装置であって、
シーケンシャルにアクセスされると共に１ビットのデータを格納するデータセルを１行に８個有し、前記書き換え可能データを格納する書き込み制限行を有する不揮発性のメモリアレイと、
前記メモリアレイの前記書き込み制限行に書き込むべき、８ビットの倍数の書き込みデータを受信するデータ受信手段と、
前記受信された書き込みデータのうち、８ビット分の書き込みデータを保持する書き込みデータ保持手段と、
前記保持されている８ビットの書き込みデータを、前記書き込み制限行に対して８ビット単位にて書き込むデータ書き込み手段と、
前記メモリアレイにおける、前記書き込み制限行のデータセルに格納されている既存データを読み出す読み出し手段と、
前記書き込みデータの値が、前記読み出された既存データの値以上の値であるか否かを、８ビット単位の書き込みデータ毎に判定する判定手段と、
８ビット単位の書き込みデータのいずれかにおいて、前記前記書き込みデータの値が既存データの値未満の場合には、前記書き込み手段による前記書き込み制限行の全ての対象データセルに対する前記書き込みデータの書き込みを実行しない制御部とを備える半導体記憶装置。
【請求項１１】
請求の範囲１０に記載の半導体記憶装置において、
前記制御部は、前記８ビット単位の書き込みデータの全てにおいて、前記書き込みデータの値が前記既存データの値以上の場合には、前記書き込み制限行の全ての対象データセルに対する、前記書き込みデータの書き込みを実行する半導体記憶装置。
【請求項１２】
請求の範囲１０または請求の範囲１１に記載の半導体記憶装置において、
前記判定手段は、前記読み出し手段によって前記既存データが１ビット毎に読み出される毎に、前記書き込みデータ保持手段から前記書き込みデータを１ビット毎に読み出して、前記書き込みデータの値が前記読み出された既存データの値未満の値であるか否かを判定する半導体記憶装置。
【請求項１３】
請求の範囲１０または請求の範囲１１に記載の半導体記憶装置において、
前記判定手段は、前記読み出し手段によって１ビット毎に読み出された前記８ビットの倍数の既存データと、前記書き込みデータ保持手段に保持されている前記８ビットの書き込みデータとを用いて、前記書き込みデータの値が前記読み出された既存データの値未満の値であるか否かを判定する半導体記憶装置。
【請求項１４】
請求の範囲１０から１３のいずれかに記載の半導体記憶装置において、
前記書き込み制限行のデータセルには、最上位ビットから順にデータが格納されており、
前記データ書き込み手段は、前記メモリアレイに対して、最上位ビットから順にデータの書き込みを実行する半導体記憶装置。
【請求項１５】
値が減少する特性のデータを書き換え可能データとして記憶する半導体記憶装置であって、
シーケンシャルにアクセスされると共に１ビットのデータを格納するデータセルを１行に８個有し、前記書き換え可能データを格納する書き込み制限行を有する不揮発性のメモリアレイと、
前記メモリアレイの前記書き込み制限行に書き込むべき、８ビットの倍数の書き込みデータを受信するデータ受信手段と、
前記受信された書き込みデータのうち、８ビット分の書き込みデータを保持する書き込みデータ保持手段と、
前記保持されている８ビットの書き込みデータを、前記書き込み制限行に対して８ビット単位にて書き込むデータ書き込み手段と、
前記メモリアレイにおける、前記書き込み制限行のデータセルに格納されている既存データを読み出す読み出し手段と、
前記書き込みデータの値が、前記読み出された既存データの値以下の値であるか否かを、８ビット単位の書き込みデータ毎に判定する判定手段と、
８ビット単位の書き込みデータのいずれかにおいて、前記前記書き込みデータの値が既存データの値より大きい場合には、前記書き込み手段によって前記書き込み制限行の全ての対象データセルに対する前記書き込みデータの書き込みを実行しない制御部とを備える半導体記憶装置。
【請求項１６】
請求の範囲１５に記載の半導体記憶装置において、
前記制御部は、前記８ビット単位の書き込みデータの全てにおいて、前記書き込みデータの値が前記既存データの値以下の場合には、前記書き込み制限行の全ての対象データセルに対する、前記書き込みデータの書き込みを実行する半導体記憶装置。
【請求項１７】
値が増大する特性のデータを格納する所定のアドレス単位の書き込み制限格納アドレスを有する不揮発性のメモリアレイを備え、メモリアレイに対して所定のアドレス単位にてデータが書き込まれる半導体記憶装置におけるデータの書き込み制御方法であって、
前記メモリアレイにおける、前記書き込み制限格納アドレスに格納されている既存データを読み出し、
前記書き込み制限格納アドレスに書き込まれる書き込みデータの値が、前記読み出された既存データの値未満の値であるか否かを判定し、
前記書き込みデータの値が前記既存データの値未満の場合には、前記書き込み制限格納アドレスに対して前記書き込みデータを前記所定のアドレス単位にて書き込まない方法。
【請求項１８】
値が減少する特性のデータを格納する所定のアドレス単位の書き込み制限格納アドレスを有する不揮発性のメモリアレイを備え、メモリアレイに対して所定のアドレス単位にてデータが書き込まれる半導体記憶装置におけるデータの書き込み制御方法であって、
前記メモリアレイにおける、前記書き込み制限格納アドレスに格納されている既存データを読み出し、
前記書き込み制限格納アドレスに書き込まれる書き込みデータの値が、前記読み出された既存データの値より大きな値であるか否かを判定し、
前記書き込みデータの値が前記既存データの値より大きな値の場合には、前記書き込み制限格納アドレスに対して前記書き込みデータを前記所定のアドレス単位にて書き込まない方法。
【請求項１９】
シーケンシャルにアクセスされると共に１ビットのデータを格納するデータセルを１行に８個有し、値が増大する特性の書き換え可能データを格納する書き込み制限行を有する不揮発性のメモリアレイを備え、メモリアレイに対して８ビット単位にてデータが書き込まれる半導体記憶装置におけるデータの書き込み制御方法であって、
前記メモリアレイに書き込むべき、８ビットの倍数の書き込みデータを受信し、
前記受信された書き込みデータのうち、８ビット分の書き込みデータを保持し、
前記メモリアレイにおける、前記書き込み制限行のデータセルに格納されている既存データを読み出し、
前記書き込みデータの値が、前記読み出された既存データの値未満の値であるか否かを、８ビット単位の書き込みデータ毎に判定し、
８ビット単位の書き込みデータのいずれかにおいて、前記前記書き込みデータの値が既存データの値未満の場合には、前記書き込み制限行の全てのデータセルに対して前記書き込みデータを書き込まない方法。
【請求項２０】
シーケンシャルにアクセスされると共に１ビットのデータを格納するデータセルを１行に８個有し、値が減少する特性の書き換え可能データを格納する書き込み制限行を有する不揮発性のメモリアレイを備え、メモリアレイに対して８ビット単位にてデータが書き込まれる半導体記憶装置におけるデータの書き込み制御方法であって、
前記メモリアレイに書き込むべき、８ビットの倍数の書き込みデータを受信し、
前記受信された書き込みデータのうち、８ビット分の書き込みデータを保持し、
前記メモリアレイにおける、前記書き込み制限行のデータセルに格納されている既存データを読み出し、
前記書き込みデータの値が、前記読み出された既存データの値より大きな値であるか否かを、８ビット単位の書き込みデータ毎に判定し、
８ビット単位の書き込みデータのいずれかにおいて、前記前記書き込みデータの値が既存データの値より大きな値の場合には、前記書き込み制限行の全てのデータセルに対して前記書き込みデータを書き込まない方法。
【請求項２１】
半導体記憶装置であって、
不揮発性のメモリアレイと、
前記メモリアレイに対するデータの書き込みおよび前記メモリアレイからのデータの読み出しを制御するリードライトコントローラと、を備え、
前記リードライトコントローラは、
前記メモリアレイに対するデータの書き込みが要求された場合において、入力される複数ビットの書き込みデータの値と、前記複数ビットの書き込みデータを書き込むべき複数ビットの記憶領域に記憶されている複数ビットの記憶データの値とを比較し、前記記憶データの値に対して所定の大小関係を満たしている前記複数ビットの書き込みデータについては、前記複数ビットの記憶領域への書き込みを実行し、前記大小関係を満たしていない前記複数ビットの書き込みデータについては前記複数ビットの記憶領域への書き込みを禁止する
半導体記憶装置。
【請求項２２】
半導体記憶装置であって、
不揮発性のメモリアレイと、
前記メモリアレイに対するデータの書き込みおよび前記メモリアレイからのデータの読み出しを制御するリードライトコントローラと、を備え、
前記リードライトコントローラは、
前記メモリアレイに対するデータの書き込みが要求された場合において、入力される複数ビットの書き込みデータの値と、前記複数ビットの書き込みデータを書き込むべき複数ビットの記憶領域に記憶されている複数ビットの記憶データの値とを、前記複数ビットの書き込みデータのうち最大ビットから１ビット単位で順に比較し、前記記憶データの各ビットの値に対して所定の大小関係を満たしていると判定されるビットがあった場合には、そのビット以降のビットの書き込みデータについて書き込みを実行し、前記所定の大小関係を満たしていないビットがあった場合には、そのビット以降のビットの書き込みデータについて書き込みを禁止する
半導体記憶装置。
【請求項２３】
不揮発性のメモリアレイを有する半導体記憶装置の書き込み制御方法であって、
前記メモリアレイに対するデータの書き込み要求を受信し、
入力される複数ビットの書き込みデータの値と、前記複数ビットの書き込みデータを書き込むべき複数ビットの記憶領域に記憶されている複数ビットの記憶データの値とを比較し、
前記記憶データの値に対して所定の大小関係を満たしている前記複数ビットの書き込みデータについては、前記複数ビットの記憶領域への書き込みを実行し、前記大小関係を満たしていない前記複数ビットの書き込みデータについては前記複数ビットの記憶領域への書き込みを禁止する
半導体記憶装置の書き込み制御方法。
【請求項２４】
不揮発性のメモリアレイを有する半導体記憶装置の書き込み制御方法であって、
前記メモリアレイに対するデータの書き込み要求を受信し、
入力される複数ビットの書き込みデータの値と、前記複数ビットの書き込みデータを書き込むべき複数ビットの記憶領域に記憶されている複数ビットの記憶データの値とを、前記複数ビットの書き込みデータのうち最大ビットから１ビット単位で順に比較し、
前記記憶データの各ビットの値に対して所定の大小関係を満たしていると判定されるビットがあった場合には、そのビット以降のビットの書き込みデータについて書き込みを実行し、前記所定の大小関係を満たしていないビットがあった場合には、そのビット以降のビットの書き込みデータについて書き込みを禁止する半導体記憶装置の書き込み制御方法。
【請求項２５】
不揮発性のメモリアレイを有する半導体記憶装置の書き込みを制御するためのコンピュータプログラムを格納するコンピュータ読み取り可能媒体であって、前記コンピュータプログラムは、
前記メモリアレイに対するデータの書き込み要求を受信する機能と、
入力される複数ビットの書き込みデータの値と、前記複数ビットの書き込みデータを書き込むべき複数ビットの記憶領域に記憶されている複数ビットの記憶データの値とを比較する機能と、
前記記憶データの値に対して所定の大小関係を満たしている前記複数ビットの書き込みデータについては、前記複数ビットの記憶領域への書き込みを実行し、前記大小関係を満たしていない前記複数ビットの書き込みデータについては前記複数ビットの記憶領域への書き込みを禁止する機能とを
コンピュータによって実行させるコンピュータ読み取り可能媒体。
【請求項２６】
不揮発性のメモリアレイを有する半導体記憶装置の書き込みを制御するコンピュータプログラムを格納するコンピュータ読み取り可能媒体であって、前記コンピュータプログラムは、
前記メモリアレイに対するデータの書き込み要求を受信する機能と、
入力される複数ビットの書き込みデータの値と、前記複数ビットの書き込みデータを書き込むべき複数ビットの記憶領域に記憶されている複数ビットの記憶データの値とを、前記複数ビットの書き込みデータのうち最大ビットから１ビット単位で順に比較する機能と、
前記記憶データの各ビットの値に対して所定の大小関係を満たしていると判定されるビットがあった場合には、そのビット以降のビットの書き込みデータについて書き込みを実行し、前記所定の大小関係を満たしていないビットがあった場合には、そのビット以降のビットの書き込みデータについて書き込みを禁止する機能とを
コンピュータによって実行させるコンピュータ読み取り可能媒体。
【請求項２７】
印刷装置に着脱可能に装着される、印刷記録材を収容する印刷記録材容器であって、
前記印刷記録材を収容する収容部と、
前記印刷記録材の量に関する情報を格納する、請求の範囲１〜１６、２１および２２のいずれかに記載の半導体記憶装置とを備える印刷記録材容器。
【請求項２８】
半導体記憶装置であって、
消費材の量に関するデータであって、値が増大する特性を有する消費材量データを格納する不揮発性のメモリアレイと、
前記メモリアレイに格納されるべき、新規消費材量データを書き込むデータ書き込み手段と、
前記メモリアレイから、既に格納されている既存消費材量データを読み出す読み出し手段と、
前記新規消費材量データの値が前記既存消費材量データの値未満の場合には、前記データ書き込み手段による前記新規消費材量データの書き込みは行わず、前記新規消費材量データの値が前記既存消費材量データの値以上の場合には、前記データ書き込み手段による前記新規消費材量データの書き込を実行する制御部とを備える半導体記憶装置。
【請求項２９】
印刷装置に着脱可能に装着される、印刷記録材を収容する印刷記録材容器であって、
前記印刷記録材を収容する収容部と、
前記印刷記録材の量に関する情報を格納する、請求の範囲２８に記載の半導体記憶装置とを備える印刷記録材容器。
【請求項３０】
印刷装置と、印刷装置に着脱可能に装着される請求の範囲２７または２９に記載の印刷記録材容器とを備える印刷システムであって、
前記印刷装置は、前記印刷記録材容器に装着される半導体記憶装置とデータ信号線、クロック信号線、リセット信号線、正極電源線、および負極電源線を介してバス接続されるホスト計算機であって、印刷装置において消費された印刷記録材に関する量の情報を前記半導体記憶装置に送信するホスト計算機を備え、
前記印刷記録材容器に装着されている半導体記憶装置は、受信した印刷記録材に関する量の情報を前記メモリアレイに格納する
印刷システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの書き換えが可能な半導体記憶装置、シーケンシャルにアクセスされる半導体記憶装置およびシーケンシャルにアクセスされる半導体記憶装置に対するデータ書き込み制御方法に関する。
【背景技術】
【０００２】
ＥＥＰＲＯＭやフラッシュＲＯＭ等のデータの書き換えが可能な半導体記憶装置が、種々の電子機器の記憶装置として多く利用されている。このような半導体記憶装置は、電子機器において、あらかじめ定められているデータ条件を満足する入力データの書き換えについては制限しないが、そのデータ条件を満足しない入力データの書き換えについては制限するような態様で利用することが望まれる場合がある。例えば、「書き換えデータが、半導体記憶装置に記憶されているデータ（「被書き換えデータ」と呼ぶ。）よりも大きい場合においてのみ、書き換えを実行する。」という条件や、「書き換えデータが、被書き換えデータよりも小さい場合においてのみ、書き換えを実行する。」というデータ条件を設定する場合が考えられる。
しかしながら、従来の書き換えが可能な半導体記憶装置は、データの書き換えを制限する仕組みを有しておらず、データを書き込むための所定のシーケンスを満足すれば、記憶されているデータを書き換えることが可能であるため、上記のようなデータ条件での書き換えに対応することができなかった。
なお、記憶装置に対するデータの書き込みを制御する技術として、例えば、記憶装置の外部に記憶装置に対する書き込み禁止装置を設置する技術が知られている。あるいは、記憶装置使用時に、記憶装置におけるデータ格納領域より後ろのアドレスにデータ格納領域に対する書き込み不許可を示す情報を書き込むことで、データ格納領域に対する書き込みを禁止する技術が知られている。
また、メモリアレイのデータセルに対してシーケンシャルなアクセスのみを許容する半導体記憶装置、例えば、ＥＥＰＲＯＭが知られている。このような半導体記憶装置は、比較的廉価であることから、消費材の残量または消費量に関するデータを保持させるための記憶装置として用いられている。ここで、消費材は使用に伴い減少するため、更新に用いられるデータ、すなわち、メモリアレイに書き込まれるデータが、消費量に関するデータの場合には、書き込まれるデータの値は、メモリアレイに既に格納されている既存のデータの値よりも大きな値でなければならない。一方、メモリアレイに書き込まれるデータが、残量に関するデータの場合には、書き込まれるデータの値は、メモリアレイに既に格納されている既存のデータの値よりも小さな値でなければならない。
【発明の開示】
【０００３】
しかしながら、例えば、半導体記憶装置に対して入力されるデータが転送中にデータ化けを起こすこともあり、かかる場合には、半導体記憶装置において正常にデータの書き換えが行われたとしても、半導体記憶装置には誤ったデータが記録されることになる。すなわち、例えば、データが増大する特性を有する場合に、半導体記憶装置に対して既存データよりも小さな値のデータが書き込まれてしまうおそれがある。ここで、消費材を利用する装置の損傷、不具合を抑制または防止するために、消費材の残量または消費量に関するデータが用いられている場合には、消費材の残量または消費量に関するデータが本来の増減特性と逆方向へと化けた場合には、消費材を利用する装置に不具合が発生する場合がある。
本発明は、上記課題を解決するためになされたものであり、半導体記憶装置において、書き込みデータが有する増減特性に反する値のデータの書き込みを制限することを目的とする。本発明はまた、半導体記憶装置において、所定のデータ条件を満足しない入力データの書きこみを禁止することを目的とする。
上記課題を解決するために本発明の第１の態様は、半導体記憶装置を提供する。本発明の第１の態様に係る半導体記憶装置は、値が増大する特性のデータを格納する所定のアドレス単位の書き込み制限格納アドレスを有し、シーケンシャルにアクセスされる不揮発性のメモリアレイと、前記書き込み制限格納アドレスに書き込むべき書き込みデータを所定のアドレス単位で保持する書き込みデータ保持手段と、前記保持されている書き込みデータを、前記書き込み制限格納アドレスに対して前記所定のアドレス単位にて書き込むデータ書き込み手段と、前記メモリアレイにおける、前記書き込み制限格納アドレスに格納されている既存データを読み出す読み出し手段と、前記保持されている書き込みデータの値が、前記読み出された既存データの値未満の値であるか否かを判定する判定手段と、前記書き込みデータの値が前記既存データの値未満の場合には、前記書き込み手段による前記メモリアレイの前記書き込み制限格納アドレスに対する前記書き込みデータの書き込みを実行しない制御部とを備える。
本発明の第１の態様に係る半導体記憶装置において、前記制御部は、前記書き込みデータの値が前記既存データの値以上の場合には、前記書き込み制限格納アドレスに対する前記書き込みデータの書き込みを実行しても良い。
本発明の第１の態様に係る半導体記憶装置によれば、判定手段によって、保持されている書き込みデータの値が、読み出された既存データの値未満の値であるか否かが判定され、制御部によって、書き込みデータの値が既存データの値以上の場合には、書き込み手段によってメモリアレイの書き込み制限格納アドレスに対する書き込みデータの書き込みを実行する。また、制御部は、書き込みデータの値が既存データの値未満の場合には、書き込み制限格納アドレスに対する書き込みデータの書き込みを実行しない。したがって、値が増大する書き込みデータの特性に反する値のデータの書き込みを制限することができる。
本発明の第１の態様に係る半導体記憶装置において、前記書き込み制限格納アドレス数が、前記所定のアドレス単位のｎ倍（ｎは自然数）である場合には、前記判定手段は、前記所定のアドレス単位毎に、前記書き込みデータの値が前記既存データの値未満であるか否かを判定し、前記制御部は、前記書き込み制限格納アドレスにおけるいずれかのアドレスにおいて、前記既存データの値が前記書き込みデータの値未満の場合には、前記メモリアレイの全ての前記書き込み制限格納アドレスに対して前記書き込み手段による前記書き込みデータの書き込みを実行しなくても良い。
本発明の第１の態様に係る半導体記憶装置において、前記制御部は、全ての前記書き込み制限格納アドレスにおいて、前記書き込みデータの値が前記既存データの値以上の場合には、前記全ての書き込み制限格納アドレスに対する、前記書き込みデータの書き込みを実行しても良い。
以上の場合には、半導体記憶装置に複数の書き込み制限格納アドレスが備えられている場合に、全ての制限格納アドレスにおいて、値が増大する書き込みデータの特性に反する値のデータの書き込みを制限することができる。
本発明の第１の態様に係る半導体記憶装置において、前記判定手段は、前記読み出し手段によって前記既存データが１アドレス毎に読み出される毎に、前記書き込みデータ保持手段から前記書き込みデータを１アドレス毎に読み出して、前記書き込みデータの値が前記読み出された既存データの値未満の値であるか否かを判定しても良い。かかる場合には、読み出した既存データを格納するための構成を必要とすることなく、書き込みデータの値が読み出された既存データの値未満の値であるか否かを判定することができる。
本発明の第１の態様に係る半導体記憶装置において、前記判定手段は、前記読み出し手段によって１アドレス毎に読み出された前記所定のアドレス単位の既存データと、前記書き込みデータ保持手段に保持されている前記所定アドレス単位の書き込みデータとを用いて、前記書き込みデータの値が前記読み出された既存データの値未満の値であるか否かを判定しても良い。かかる場合には、所定のアドレス単位でまとめて、書き込みデータの値が読み出された既存データの値未満の値であるか否かを判定することができる。
本発明の第１の態様に係る半導体記憶装置において、前記メモリアレイにおける書き込み制限格納アドレスには、最上位ビットから順にデータが格納されており、前記データ書き込み手段は、前記メモリアレイに対して、最上位ビットから順にデータの書き込みを実行しても良い。かかる場合には、書き込みデータの値が読み出された既存データの値以上の値であるか否かを判定をより迅速に実行することができる。
書き込まれるデータの特性が、値が減少する特性を有している場合には、本発明の第１の態様に係る半導体記憶装置は、値が減少する特性のデータを格納する所定のアドレス単位の書き込み制限格納アドレスを有し、シーケンシャルにアクセスされる不揮発性のメモリアレイと、前記書き込み制限格納アドレスに書き込むべき書き込みデータを所定のアドレス単位で保持する書き込みデータ保持手段と、前記保持されている書き込みデータを、前記書き込み制限格納アドレスに対して前記所定のアドレス単位にて書き込むデータ書き込み手段と、前記メモリアレイにおける、前記書き込み制限格納アドレスに格納されている既存データを読み出す読み出し手段と、前記保持されている書き込みデータの値が、前記読み出された既存データの値より大きな値であるか否かを判定する判定手段と、前記書き込みデータの値が前記既存データの値より大きな値の場合には、前記書き込み手段による前記メモリアレイの前記書き込み制限格納アドレスに対する前記書き込みデータの書き込みを実行しない制御部とを備えても良い。
また、前記制御部は、前記書き込みデータの値が前記既存データの値以下の場合には、前記書き込み制限格納アドレスに対する前記書き込みデータの書き込みを実行しても良い。
書き込まれるデータの特性が、値が減少する特性を有している場合には、本発明の第１の態様に係る半導体記憶装置は、判定手段によって、保持されている書き込みデータの値が、読み出された既存データの値より大きな値であるか否かが判定され、制御部によって、書き込みデータの値が既存データの値以下の場合には、書き込み手段によってメモリアレイの書き込み制限格納アドレスに対する書き込みデータの書き込みを実行する。また、書き込みデータの値が既存データの値より大きい場合には、書き込み制限格納アドレスに対する前記書き込みデータの書き込みを実行しないので、値が減少する書き込みデータの特性に反する値のデータの書き込みを制限することができる。
本発明の第２の態様は、値が増大する特性のデータを書き換え可能データとして記憶する半導体記憶装置を提供する。本発明の第２の態様に係る半導体記憶装置は、シーケンシャルにアクセスされると共に１ビットのデータを格納するデータセルを１行に８個有し、前記書き換え可能データを格納する書き込み制限行を有する不揮発性のメモリアレイと、前記メモリアレイの前記書き込み制限行に書き込むべき、８ビットの倍数の書き込みデータを受信するデータ受信手段と、前記受信された書き込みデータのうち、８ビット分の書き込みデータを保持する書き込みデータ保持手段と、前記保持されている８ビットの書き込みデータを、前記書き込み制限行に対して８ビット単位にて書き込むデータ書き込み手段と、前記メモリアレイにおける、前記書き込み制限行のデータセルに格納されている既存データを読み出す読み出し手段と、前記書き込みデータの値が、前記読み出された既存データの値未満の値であるか否かを、８ビット単位の書き込みデータ毎に判定する判定手段と、８ビット単位の書き込みデータのいずれかにおいて、前記前記書き込みデータの値が既存データの値未満の場合には、前記書き込み手段によって前記書き込み制限行の全ての対象データセルに対する前記書き込みデータの書き込みを実行しない制御部とを備える。
本発明の第２の態様に係る半導体記憶装置において、前記制御部は、前記８ビット単位の書き込みデータの全てにおいて、前記書き込みデータの値が前記既存データの値以上の場合には、前記書き込み制限行の全ての対象データセルに対する、前記書き込みデータの書き込みを実行しても良い。
本発明の第２の態様に係る半導体記憶装置によれば、判定手段によって、書き込みデータの値が、読み出された既存データの値未満の値であるか否かを、８ビット単位の書き込みデータ毎に判定し、８ビット単位の書き込みデータの全てにおいて、書き込みデータの値が既存データの値以上の場合には、書き込み手段によって書き込み制限行の全ての対象データセルに対する書き込みデータの書き込みを実行する。また、制御部は、８ビット単位の書き込みデータのいずれかにおいて、書き込みデータの値が既存データの値未満の場合には、書き込み制限行の全ての対象データセルに対する、書き込みデータの書き込みを実行しない。したがって、値が増大する書き込みデータの特性に反する値のデータの書き込みを制限することができる。
本発明の第２の態様に係る半導体記憶装置において、前記判定手段は、前記読み出し手段によって前記既存データが１ビット毎に読み出される毎に、前記書き込みデータ保持手段から前記書き込みデータを１ビット毎に読み出して、前記書き込みデータの値が前記読み出された既存データの値未満の値であるか否かを判定しても良い。かかる場合には、読み出した既存データを格納するための構成を必要とすることなく、書き込みデータの値が読み出された既存データの値未満の値であるか否かを判定することができる。
本発明の第２の態様に係る半導体記憶装置において、前記判定手段は、前記読み出し手段によって１ビット毎に読み出された前記８ビットの倍数の既存データと、前記書き込みデータ保持手段に保持されている前記８ビットの書き込みデータとを用いて、前記書き込みデータの値が前記読み出された既存データの値未満の値であるか否かを判定しても良い。かかる場合には、８ビット単位でまとめて、書き込みデータの値が読み出された既存データの値未満の値であるか否かを判定することができる。
本発明の第２の態様に係る半導体記憶装置において、前記書き込み制限行のデータセルには、最上位ビットから順にデータが格納されており、前記データ書き込み手段は、前記メモリアレイに対して、最上位ビットから順にデータの書き込みを実行しても良い。かかる場合には、書き込みデータの値が読み出された既存データの値未満の値であるか否かを判定をより迅速に実行することができる。
書き込まれるデータの特性が、値が減少する特性を有している場合には、本発明の第２の態様に係る半導体記憶装置は、シーケンシャルにアクセスされると共に１ビットのデータを格納するデータセルを１行に８個有し、前記書き換え可能データを格納する書き込み制限行を有する不揮発性のメモリアレイと、前記メモリアレイの前記書き込み制限行に書き込むべき、８ビットの倍数の書き込みデータを受信するデータ受信手段と、前記受信された書き込みデータのうち、８ビット分の書き込みデータを保持する書き込みデータ保持手段と、前記保持されている８ビットの書き込みデータを、前記書き込み制限行に対して８ビット単位にて書き込むデータ書き込み手段と、前記メモリアレイにおける、前記書き込み制限行のデータセルに格納されている既存データを１ビット単位で読み出す読み出し手段と、前記書き込みデータの値が、前記読み出された既存データの値より大きな値であるか否かを、８ビット単位の書き込みデータ毎に判定する判定手段と、８ビット単位の書き込みデータのいずれかにおいて、前記前記書き込みデータの値が既存データの値より大きな場合には、前記書き込み手段によって前記書き込み制限行の全ての対象データセルに対する前記書き込みデータの書き込みを実行しない制御部とを備えても良い。
また、前記制御部は、前記８ビット単位の書き込みデータの全てにおいて、前記書き込みデータの値が前記既存データの値以下の場合には、前記書き込み制限行の全ての対象データセルに対する、前記書き込みデータの書き込みを実行しても良い。
書き込まれるデータの特性が、値が減少する特性を有している場合には、本発明の第２の態様に係る半導体記憶装置は、判定手段によって、書き込みデータの値が、読み出された既存データの値より大きな値であるか否かを、８ビット単位の書き込みデータ毎に判定し、８ビット単位の書き込みデータの全てにおいて、書き込みデータの値が既存データの値以下の場合には、書き込み手段によって書き込み制限行の全ての対象データセルに対する書き込みデータの書き込みを実行する。また、制御部は、８ビット単位の書き込みデータのいずれかにおいて、書き込みデータの値が既存データの値より大きな値の場合には、書き込み制限行の全ての対象データセルに対する、書き込みデータの書き込みを実行しない。したがって、値が減少する書き込みデータの特性に反する値のデータの書き込みを制限することができる。
本発明の第３の態様は、値が増大する特性のデータを格納する所定のアドレス単位の書き込み制限格納アドレスを有する不揮発性のメモリアレイを備え、メモリアレイに対して所定のアドレス単位にてデータが書き込まれる半導体記憶装置におけるデータの書き込み制御方法を提供する。本発明の第３の態様に係る方法は、前記メモリアレイにおける、前記書き込み制限格納アドレスに格納されている既存データを読み出し、前記書き込み制限格納アドレスに書き込まれる書き込みデータの値が、前記読み出された既存データの値未満の値であるか否かを判定し、前記書き込みデータの値が前記既存データの値未満上の場合には、前記書き込み制限格納アドレスに対して前記書き込みデータを前記所定のアドレス単位にて書き込まないことを備える。
書き込まれるデータの特性が、値が減少する特性を有している場合には、本発明の第３の態様に係る方法は、前記メモリアレイにおける、前記書き込み制限格納アドレスに格納されている既存データを読み出し、前記書き込み制限格納アドレスに書き込まれる書き込みデータの値が、前記読み出された既存データの値より大きな値であるか否かを判定し、前記書き込みデータの値が前記既存データの値より大きな値の場合には、前記書き込み制限格納アドレスに対して前記書き込みデータを前記所定のアドレス単位にて書きまないことを備えても良い。
本発明の第３の態様に係るデータの書き込み制御方法によれば、本発明の第１の態様に係る半導体記憶装置と同様の作用効果を得ることができると共に、本発明の第３の態様に係るデータの書き込み制御方法は、本発明の第１の態様に係る半導体記憶装置と同様にして種々の態様にて実現され得る。
本発明の第４の態様は、シーケンシャルにアクセスされると共に１ビットのデータを格納するデータセルを１行に８個有し、値が増大する特性の書き換え可能データを格納する書き込み制限行を有する不揮発性のメモリアレイを備え、メモリアレイに対して８ビット単位にてデータが書き込まれる半導体記憶装置におけるデータの書き込み制御方法を提供する。本発明の第４の態様に係る方法は、前記メモリアレイに書き込むべき、８ビットの倍数の書き込みデータを受信し、前記受信された書き込みデータのうち、８ビット分の書き込みデータを保持し、前記メモリアレイにおける、前記書き込み制限行のデータセルに格納されている既存データを読み出し、前記書き込みデータの値が、前記読み出された既存データの値未満の値であるか否かを、８ビット単位の書き込みデータ毎に判定し、８ビット単位の書き込みデータのいずれかにおいて、前記前記書き込みデータの値が既存データの値未満の場合には、前記書き込み制限行の全てのデータセルに対して前記書き込みデータを書き込まないことを備える。
書き込まれるデータの特性が、値が減少する特性を有している場合には、本発明に第４の態様に係る方法は、前記メモリアレイに書き込むべき、８ビットの倍数の書き込みデータを受信し、前記受信された書き込みデータのうち、８ビット分の書き込みデータを保持し、前記メモリアレイにおける、前記書き込み制限行のデータセルに格納されている既存データを読み出し、前記書き込みデータの値が、前記読み出された既存データの値より大きなの値であるか否かを、８ビット単位の書き込みデータ毎に判定し、８ビット単位の書き込みデータのいずれかにおいて、前記前記書き込みデータの値が既存データの値より大きな場合には、前記書き込み制限行の全てのデータセルに対して前記書き込みデータを書き込まないことを備えても良い。
本発明の第４の態様に係るデータの書き込み制御方法によれば、本発明の第２の態様に係る半導体記憶装置と同様の作用効果を得ることができると共に、本発明の第４の態様に係るデータの書き込み制御方法は、本発明の第２の態様に係る半導体記憶装置と同様にして種々の態様にて実現され得る。
本発明の第３および第４の態様に係る方法は、この他にも、プログラム、およびプログラムを記録したコンピュータが読み取り可能な記録媒体としても実現され得る。
本発明の第５の態様は半導体記憶装置を提供する。本発明の第５の態様に係る半導体記憶装置は、不揮発性のメモリアレイと、前記メモリアレイに対するデータの書き込みおよび前記メモリアレイからのデータの読み出しを制御するリードライトコントローラと、を備え、前記リードライトコントローラは、前記メモリアレイに対するデータの書き込みが要求された場合において、入力される複数ビットの書き込みデータの値と、前記複数ビットの書き込みデータを書き込むべき複数ビットの記憶領域に記憶されている複数ビットの記憶データの値とを比較し、所定の大小関係を満たしている前記複数ビットの書き込みデータについては前記複数ビットの記憶領域への書き込みを実行し、前記大小関係を満たしていない前記複数ビットの書き込みデータについては前記複数ビットの記憶領域への書き込みを禁止する。
本発明の第５の態様に係る半導体記憶装置によれば、記憶データに対して所定の大小関係を満たしていない書き込みデータの書き込みを禁止することが可能である。
本発明の第５の態様に係る半導体記憶装置は、以下の通り構成されても良い。本発明の第５の態様に係る半導体記憶装置は、不揮発性のメモリアレイと、前記メモリアレイに対するデータの書き込みおよび前記メモリアレイからのデータの読み出しを制御するリードライトコントローラと、を備え、前記リードライトコントローラは、前記メモリアレイに対するデータの書き込みが要求された場合において、入力される複数ビットの書き込みデータの値と、前記複数ビットの書き込みデータを書き込むべき複数ビットの記憶領域に記憶されている複数ビットの記憶データの値とを、前記複数ビットの書き込みデータのうち最大ビットから１ビット単位で順に比較し、前記記憶データの各ビットの値に対して所定の大小関係を満たしていると判定されるビットがあった場合には、そのビット以降のビットの書き込みデータについて書き込みを実行し、前記所定の大小関係を満たしていないビットがあった場合には、そのビット以降のビットの書き込みデータについて書き込みを禁止する。
上記構成を備える本発明の第５の態様に係る半導体記憶装置によれば、１ビット単位でデータのアクセスが実行される半導体記憶装置において、記憶データに対して所定の大小関係を満たしていない書き込みデータの書き込みを禁止することが容易である。
なお、本発明の第５の態様に係る半導体記憶装置は、半導体記憶装置に対する書き込み制御方法、プログラム、プログラムを記録したコンピュータ読み取り可能な記録媒体としても実現され得る。
本発明の第６の態様は半導体記憶装置を提供する。本発明の第６の態様に係る半導体記憶装置は、消費材の量に関するデータであって、値が増大する特性を有する消費材量データを格納する不揮発性のメモリアレイと、前記メモリアレイに格納されるべき、新規消費材量データを書き込むデータ書き込み手段と、前記メモリアレイから、既に格納されている既存消費材量データを読み出す読み出し手段と、前記新規消費材量データの値が前記既存消費材量データの値未満の場合には、前記データ書き込み手段による前記新規消費材量データの書き込みは行わず、前記新規消費材量データの値が前記既存消費材量データの値以上の場合には、前記データ書き込み手段による前記新規消費材量データの書き込を実行する制御部とを備える。本発明の第６の態様に係る半導体記憶装置によれば、本発明の第１または第２の態様に係る半導体記憶装置と同様の作用効果を得ることができる。
本発明の第１、２、５および６の態様に係る半導体記憶装置は、前記印刷記録材の量に関する情報を格納するために、印刷装置に着脱可能に装着される、印刷記録材を収容する印刷記録材容器であって、前記印刷記録材を収容する収容部に装着されて用いられても良い。この場合には、印刷記録材の量に関する情報の信頼性を向上させることができる。
本発明の第７の態様は、印刷装置と、印刷装置に着脱可能に装着される本発明の第１、２、５および６の態様に係る半導体記憶装置を有する印刷記録材容器とを備える印刷システムを提供する。本発明の第７の態様に係る印刷システムにおいて、前記印刷装置は、前記印刷記録材容器に装着される半導体記憶装置とデータ信号線、クロック信号線、リセット信号線、正極電源線、および負極電源線を介してバス接続されるホスト計算機であって、印刷装置において消費された印刷記録材に関する量の情報を前記半導体記憶装置に送信するホスト計算機を備え、前記印刷記録材容器に装着されている半導体記憶装置は、受信した印刷記録材に関する量の情報を前記メモリアレイに格納する。本発明の第６の態様によれば、印刷に伴い消費される印刷記録材の量に関する情報を格納するにあたり、半導体記憶装置において、書き込みデータが有する増減特性に反する値のデータの書き込みを制限することができる。
【図面の簡単な説明】
【０００４】
図１は第１の実施例に係る半導体記憶装置の機能的な内部構成を示すブロック図である。
図２は第１の実施例に係る半導体記憶装置が備えるメモリアレイの内部構成マップを模式的に示す説明図である。
図３は第１の実施例に係る半導体記憶装置の読み出し動作実行時におけるリセット信号ＲＳＴ、外部クロック信号ＳＣＫ、データ信号ＳＤＡ、アドレスカウンタ値の時間的関係を示すタイミングチャートである。
図４は第１の実施例に係る半導体記憶装置の書き込み動作実行時におけるリセット信号ＲＳＴ、外部クロック信号ＳＣＫ、データ信号ＳＤＡ、アドレスカウンタ値の時間的関係を示すタイミングチャートである。
図５は第１の実施例に係る半導体記憶装置によって実行される書き込み処理におけるインクリメント確認処理の処理ルーチンを示すフローチャートである。
図６は第１の実施例に係る半導体記憶装置によって実行される書き込み処理におけるインクリメント確認処理の処理ルーチンを示すフローチャートである。
図７は第１の実施例に係る半導体記憶装置１０によって実行される書き込み処理におけるデータベリファイ処理の処理ルーチンを示すフローチャートである。
図８は第１の実施例におけるインクリメント確認処理の結果の一例を示す説明図である。
図９は第１の実施例に係る半導体記憶装置の応用例を示す説明図である。
図１０は第２の実施例に係る半導体メモリ装置の内部回路構成を示すブロック図である。
図１１は第２の実施例におけるデータの書き込み動作の手順を示すフローチャートである。
図１２は第３の実施例に係る半導体メモリ装置の内部回路構成を示すブロック図である。
図１３は第３の実施例におけるデータの書き込み動作の手順を示すフローチャートである。
図１４は第３の実施例の変形例としてのデータの書き込み動作の手順を示すフローチャートである。
図１５は第３の実施例の変形例としてのデータの書き込み動作の手順を示すフローチャートである。
【発明を実施するための最良の形態】
【０００５】
以下、本発明に係る半導体記憶装置および半導体記憶装置に対するデータの書き込み制御方法について図面を参照しつつ、実施例に基づいて説明する。
第１の実施例：
・半導体記憶装置の構成
図１および図２を参照して第１の実施例に半導体記憶装置の構成について説明する。図１は第１の実施例に係る半導体記憶装置の機能的な内部構成を示すブロック図である。図２は第１の実施例に係る半導体記憶装置が備えるメモリアレイの内部構成マップを模式的に示す説明図である。
第１の実施例に係る半導体記憶装置１０は、外部からアクセス先のアドレスを指定するアドレスデータを入力する必要のないシーケンシャルアクセス方式の記憶装置である。半導体記憶装置１０は、メモリアレイ１００、アドレスカウンタ１１０、ＩＮ／ＯＵＴコントローラ１２０、ＩＤコンパレータ１３０、ライト／リードコントローラ１４０、インクリメントコントローラ１５０、チャージポンプ回路１６０、８ビットラッチレジスタ１７０を備えている。これら各回路は、バス式の信号線によって接続されている。
メモリアレイ１００は、ＥＥＰＲＯＭアレイ１０１とマスクＲＯＭアレイ１０２とを備えている。ＥＥＰＲＯＭアレイ１０１は、データの電気的な消去、書き込みが可能なＥＥＰＲＯＭの特性を有する記憶領域であり、本実施例に用いられるＥＥＰＲＯＭアレイ１０１は、データの書き込みに際して、既存データを消去することなく直ちにデータを書き込むことができる。マスクＲＯＭアレイ１０２は、製造工程時にデータが書き込まれる消去、書き換え不能なマスクＲＯＭの特性を有する記憶領域である。
メモリアレイ１００のＥＥＰＲＯＭアレイ１０１およびマスクＲＯＭアレイ１０２には、図２に模式的に示す１ビットの情報を格納するデータセル（メモリセル）が複数備えられている。本実施例では、図２に示すようにメモリアレイ１００は、１行に８アドレス（データ８ビット分のアドレス）を所定のアドレス単位として備えており、例えば、ＥＥＰＲＯＭアレイ１０１には、１行に８個のデータセル（８ビット）、１列に１６個のデータセル（１６ワード）が配置されており、１６ワード×８ビット（１２８ビット）のデータを格納することができる。マスクＲＯＭアレイ１０２には、１行に８個のデータセル（８ビット）、１列に８個のデータセル（８ワード）が配置されており、８ワード×８ビット（６４ビット）のデータを格納することができる。
図２を参照してメモリアレイ１００のアドレスマップについて説明する。本実施例におけるメモリアレイ１００は、既述の通りＥＥＰＲＯＭアレイ１０１とマスクＲＯＭアレイ１０２とを備えている。ＥＥＰＲＯＭアレイ１０１の先頭３アドレス（１行目のＡ０〜Ａ２列、３ビット）には、各半導体記憶装置を識別するための識別情報（ＩＤ情報）が格納されている。先頭３アドレスを含む第１行目に対する書き込みは禁止されており、例えば、工場出荷後には書き換えることはできない。
図２の例では、ＥＥＰＲＯＭアレイ１０１の第９アドレス（０８Ｈ）〜第１６アドレス（０ＦＨ）および第１７アドレス（１０Ｈ）〜第２４アドレス（０７Ｈ）には、一定条件の下、書き換え可能な１６ビットの情報が格納されている。なお、本実施例においては、この第９アドレス〜第１６アドレスおよび第１７アドレス〜第２４アドレスにより構成される行を書き込み制限行、あるいは、この第９アドレス〜第１６アドレスおよび第１７アドレス〜第２４アドレスの各８アドレスを、所定アドレス単位の書き込み制限格納アドレス、と呼ぶことがある。また、一定条件とは、例えば、格納されている情報がインク消費量に関する情報の場合には、書き込まれるデータの値が既存のデータの値よりも大きな場合、あるいは、格納されている情報がインク残量に関する情報の場合には、書き込まれるデータの値が既存のデータの値よりも小さな場合である。
ＥＥＰＲＯＭアレイ１０１の第２５アドレス以降は書き込みが禁止されている読み出し専用領域となり、例えば、工場出荷後には書き換えることはできない。
マスクＲＯＭアレイ１０２は、メモリアレイ製造時に情報（データ）が書き込まれており、メモリアレイ製造後は、工場出荷前であっても書き込みを実行することはできない。
本実施例におけるメモリアレイ１００は、上述のように８ビットを単位とする複数の行を備えているが、各行は独立したデータセル列ではなく、いわば、１本のデータセル列を８ビット単位で折り曲げることによって実現されている。すなわち、便宜的に９ビット目を含む行を２バイト目、１７ビット目を含む行を３バイト目と呼んでいるに過ぎない。この結果、メモリアレイ１００における所望のアドレスにアクセスするためには、先頭から順次アクセスする、いわゆる、シーケンシャルアクセス方式によるアクセスが必要となり、ランダムアクセス方式の場合に可能な所望のアドレスに対する直接的なアクセスは不可能となる。
メモリアレイ１００における各データセルには、ワード線とビット（データ）線が接続されており、対応するワード線（行）を選択（選択電圧を印加）して、対応するビット線に書き込み電圧を印加することによってデータセルにデータが書き込まれる。また、対応するワード線（行）を選択し、対応するビット線をＩＮ／ＯＵＴコントローラ１２０と接続し、電流の検出の有無によってデータセルのデータ（１または０）が読み出される。なお、本実施例における所定アドレス単位とは、１本のワード線に書き込み電圧を加えることにより書き込みが可能なアドレス数（データセル数）であるということができる。
カラム選択回路１０３は、アドレスカウンタ１１０によりカウントされた外部クロックパルス数に応じて順次、列（ビット線）をＩＮ／ＯＵＴコントローラ１２０と接続する。ロー選択回路１０４は、アドレスカウンタ１１０によりカウントされた外部クロックパルス数に応じて順次、行（ワード線）に選択電圧を印加する。すなわち、本実施例に係る半導体記憶装置１０では、アドレスデータを用いたメモリアレイ１００に対するアクセスは実行されず、専らアドレスカウンタ１１０によってカウントされたクロックパルス数にしたがって、所望のアドレスに対するアクセスが実行される。
アドレスカウンタ１１０は、リセット信号端子ＲＳＴＴ、クロック信号端子ＳＣＫＴ、カラム選択回路１０３、ロー選択回路１０４と接続されている。アドレスカウンタ１１０は、リセット信号端子ＲＳＴＴを介して入力されるリセット信号を０（またはロー）にすることにより初期値にリセットされ、リセット信号が１とされた後に外部クロック信号端子ＳＣＫＴを介して入力されるクロックパルスの立ち下がりに同期してクロックパルス数をカウント（カウント値をインクリメント）する。本実施例に用いられるアドレスカウンタ１１０は、メモリアレイ１００の１行のデータセル数（ビット数）に対応する８個のクロックパルス数を格納する８ビットのアドレスカウンタである。なお、初期値はメモリアレイ１００の先頭位置と関連付けられていればどのような値でも良く、一般的には０が初期値として用いられる。
ＩＮ／ＯＵＴコントローラ１２０は、メモリアレイ１００に対してデータ信号端子ＳＤＡＴに入力された書き込みデータを転送し、あるいは、メモリアレイ１００から読み出されたデータを受信してデータ信号端子ＳＤＡＴに出力するための回路である。ＩＮ／ＯＵＴコントローラ１２０は、データ信号端子ＳＤＡＴ、リセット信号端子ＲＳＴＴ、メモリアレイ１００、ライト／リードコントローラ１４０と接続されており、ライト／ロードコントローラ１４０からの要求に従ってメモリアレイ１００に対するデータ転送方向ならびにデータ信号端子ＳＤＡＴに対する（データ信号端子ＳＤＡＴと接続されている信号線の）データ転送方向を切り換え制御する。ＩＮ／ＯＵＴコントローラ１２０に対するデータ信号端子ＳＤＡＴからの入力信号線には、データ信号端子ＳＤＡＴから入力された書き込みデータを一時的に格納する８ビットラッチレジスタ１７０が接続されている。
８ビットラッチレジスタ１７０には、データ信号端子ＳＤＡＴから入力信号線を介して入力されるデータ列（ＭＳＢ）が８ビットとなるまで保持され、８ビット分揃ったところで、ＥＥＰＲＯＭアレイ１０１に対して保持されている８ビットのデータが書き込まれる。８ビットラッチレジスタ１７０は、いわゆるＦＩＦＯタイプのシフトレジスタであり、入力データの９ビット目が新たにラッチされると、既にラッチされていた１ビット目のデータが放出される。
ＩＮ／ＯＵＴコントローラ１２０は、電源ＯＮ時、リセット時には、メモリアレイ１００に対するデータ転送方向を読み出し方向に設定し、８ビットラッチレジスタ１７０とＩＮ／ＯＵＴコントローラ１２０との間における入力信号線をハイインピーダンスとすることでデータ信号端子ＳＤＡＴに対するデータ入力を禁止する。この状態は、ライト／リードコントローラ１４０から書き込み処理要求が入力されるまで維持される。したがって、リセット信号入力後にデータ信号端子ＳＤＡＴを介して入力されるデータ列の先頭４ビットのデータはメモリアレイ１００に書き込まれることはなく、一方で、メモリアレイ１００の先頭４ビット（内４ビット目はドントケア）に格納されているデータは、ＩＤコンパレータ１３０に送出される。この結果、メモリアレイ１００の先頭４ビットは読み出し専用状態となる。
ＩＤコンパレータ１３０は、クロック信号端子ＳＣＫＴ、データ信号端子ＳＤＡＴ、リセット信号端子ＲＳＴＴと接続されており、データ信号端子ＳＤＡＴを介して入力された入力データ列に含まれる識別データとメモリアレイ１００（ＥＥＰＲＯＭアレイ１０１）に格納されている識別データとが一致するか否かを判定する。詳述すると、ＩＤコンパレータ１００は、リセット信号ＲＳＴが入力された後に入力されるオペレーションコードの先頭３ビットのデータ、すなわち識別データを取得する。ＩＤコンパレータ１３０は、入力データ列に含まれる識別データを格納する３ビットレジスタ（図示しない）、ＩＮ／ＯＵＴコントローラ１２０を介してメモリアレイ１００から取得した最上位３ビットの識別データを格納する３ビットレジスタ（図示しない）を有しており、両レジスタの値が一致するか否かによって識別データが一致するか否かを判定する。ＩＤコンパレータ１３０は、両識別データが一致する場合には、アクセス許可信号ＥＮをライト／リードコントローラ１４０に送出する。ＩＤコンパレータ１３０は、リセット信号ＲＳＴが入力（ＲＳＴ＝０またはＬｏｗ）されるとレジスタの値をクリアする。
ライト／リードコントローラ１４０は、ＩＮ／ＯＵＴコントローラ１２０、ＩＤコンパレータ１３０、インクリメントコントローラ１５０、チャージポンプ回路１６０、クロック信号端子ＳＣＫＴ、データ信号端子ＳＤＡＴ、リセット信号端子ＲＳＴＴと接続されている。ライト／ロードコントローラ１４０は、リセット信号ＲＳＴが入力された後の４つめのクロック信号に同期してデータ信号端子ＳＤＡＴを介して入力される書き込み／読み出し制御情報（３ビットのＩＤ情報に続く４ビット目の情報）を確認し、半導体記憶装置１０の内部動作を書き込みまたは読み出しのいずれかに切り換える回路である。具体的には、ライト／リードコントローラ１４０は、ＩＤコンパレータ１３０からのアクセス許可信号ＡＥＮおよびインクリメントコントローラＷＥＮ１からの書き込み許可信号ＷＥＮ１が入力されると、取得した書き込み／読み出しコマンドを解析する。ライト／リードコントローラ１４０は、書き込みコマンドであれば、ＩＮ／ＯＵＴコントローラ１２０に対して、バス信号線のデータ転送方向を書き込み方向に切り換え、書き込みを許可する書き込み許可信号ＷＥＮ２を送信し、チャージポンプ回路１６０に対して書き込み電圧の生成を要求する。
本実施例では、書き込み制限行に書き込まれる書き込みデータＤＩが、値が増加（インクリメント）する特性を有するデータである場合には、書き込みデータＤＩが書き込み制限行に既に格納されている既存データＤＥよりも大きな値であるか否かを判断し、書き込みデータＤＩが、値が減少（デクリメント）する特性を有するデータである場合には、書き込みデータＤＩが書き込み制限行に既に格納されている既存データＤＥよりも小さな値であるか否かを判断することで、書き込みデータＤＩのデータ化け、誤ったデータの入力を低減又は防止する。この機能は、前者の場合にはインクリメントコントローラ、後者の場合にはデクリメントコントローラによって提供される。本実施例では以下の説明において、前者を例にとって説明する。
インクリメントコントローラ１５０は、リセット信号端子ＲＳＴＴ、ライト／リードコントローラ１４０、チャージポンプ回路１６０と信号線を介して接続されている。インクリメントコントローラ１５０は、内部に４ビットカウンタ１５１および８ビット内部レジスタ１５２、１５３を有している。インクリメントコントローラ１５０は、書き込み制限行に書き込まれる書き込みデータＤＩが書き込み制限行に既に格納されている既存データＤＥよりも大きな値であるか否かを判断し、さらにＥＥＰＲＯＭアレイ１０１に書き込まれたデータが正しく書き込まれたか否かの判断（ベリファイ、検証）を実行する。
インクリメントコントローラ１５０は、書き込みデータＤＩを８ビットラッチレジスタ１７０にラッチするタイミングで、ＥＥＰＲＯＭアレイ１０１の書き込み制限行から既存データＤＥを読み出し、内部に備える８ビット内部レジスタ１５２に格納する。インクリメントコントローラ１５０は、読み出される既存データＥＤと８ビットラッチレジスタ１７０に入力される書き込みデータＤＩとを１ビット単位で比較して、書き込みデータＤＩが既存データＤＥよりも大きな値のデータであるか否かを判定する。なお、処理の迅速化のため、入力される書き込みデータはＭＳＢであることが望ましい。
インクリメントコントローラ１５０は、書き込みデータＤＩが既存データＤＥよりも大きな値のデータである場合には、ライト／リードコントローラ１４０に対して書き込み許可信号ＷＥＮ１を出力する。なお、書き込み制限行が複数行に亘る場合には、全ての書き込み制限行において書き込みデータＤＩが既存データＤＥよりも大きな値のデータである場合にのみ、インクリメントコントローラ１５０は、書き込み許可信号ＷＥＮ１を出力する。
インクリメントコントローラ１５０は、書き込みデータを書き込んだ後、正しくデータが書き込まれたか否かを検証し、書き込みデータが正しく書き込まれていない場合には、内部に備える８ビット内部レジスタ１５２に格納されている既存データＤＥをメモリアレイ１００に対して書き戻す。書き込みデータの検証に際して、インクリメントコントローラ１５０に備えられている４ビットカウンタ１５１は、書き込みスタンバイ状態から外部クロック信号に対して８ビット遅れで、チャージポンプ回路１６０に備えられている内部発振器１６２から内部クロック信号を受けてカウントアップを開始する。４ビットカウンタ１５１によってカウントアップされたカウント値は、カラム選択回路１０３、ロー選択回路１０４に入力され、書き込まれたばかりの既存データＤＥが読み出される。
チャージポンプ回路１６０は、既述の通り、ライト／リードコントローラ１４０からの要求信号に基づいて、ＥＥＰＲＯＭアレイに対してデータを書き込む際に必要な書き込み電圧をカラム選択回路１０３を介して選択されたビット線に供給するための回路である。チャージポンプ回路１６０は、電圧昇圧時に必要な動作周波数を生成する内部発振器１６２を備え、正極電源端子ＶＤＤＴを介して得られる電圧を昇圧することで、必要な書き込み電圧を生成する。
・読み出し処理
図３を参照して第１の実施例に係る半導体記憶装置１０における読み出し動作について説明する。図３は第１の実施例に係る半導体記憶装置の読み出し動作実行時におけるリセット信号ＲＳＴ、外部クロック信号ＳＣＫ、データ信号ＳＤＡ、アドレスカウンタ値の時間的関係を示すタイミングチャートである。
読み出し動作に先立って、オペレーションコードに基づく、識別情報の確認、読み出し／書き込みコマンドの確認処理について説明する。リセット状態（ＲＳＴ＝０またはＬｏｗ）が解除される（ＲＳＴ＝１またはＨｉ）と、図示しないホスト計算機から、４ビットのオペレーションコードを含むデータ信号ＳＤＡが外部クロック信号に同期してデータ信号端子ＳＤＡＴに入力される。オペレーションコードは、図３に示すように、先頭３ビットに識別情報ＩＤ０、ＩＤ１、ＩＤ２を含み、先頭から４ビット目には、書き込みまたは読み出しを決定するためのコマンドビットを含んでいる。識別情報の比較は以下の通り実行される。
ＩＤコンパレータ１３０は、リセット信号ＲＳＴがローからハイに切り替えられた後の３つのクロック信号ＳＣＫの立ち上がりエッジに同期してデータ信号端子ＳＤＡＴに入力されたデータ、すなわち、３ビットの識別情報を取得して第１の３ビットレジスタに格納する。これと同時にＩＤコンパレータ１３０は、アドレスカウンタ１１０のカウンタ値００、０１、０２によって指定されるメモリアレイ１００のアドレスからデータを取得し、すなわち、メモリアレイ１００に格納されている識別情報を取得して、第２の３ビットレジスタに格納する。
ＩＤコンパレータ１３０は、第１、第２レジスタに格納された識別情報が一致するか否かを判定し、識別情報が一致しない場合には、ＩＮ／ＯＵＴコントローラ１２０によって、８ビットラッチレジスタ１７０とＩＮ／ＯＵＴコントローラ１２０との間における入力信号線に対するハイインピーダンスの状態が保持される。一方、ＩＤコンパレータ１３０は、第１、第２レジスタに格納された識別情報が一致する場合には、ライト／リードコントローラ１４０に対してアクセス許可信号ＡＥＮを出力する。アクセス許可信号ＡＥＮを受信したライト／リードコントローラ１４０は、リセット信号ＲＳＴのローからハイへの切り替わり後の４つ目のクロック信号ＳＣＫの立ち上がりエッジに同期してバス信号線に送出されたコマンドビットを取得して書き込み命令であるか否かを判定する。ライト／リードコントローラ１４０は、取得したコマンドビットが書き込みコマンドでない場合には、ＩＮ／ＯＵＴコントローラ１２０に対して読み出し命令を出力する。
読み出し命令を受信したＩＮ／ＯＵＴコントローラ１２０は、メモリアレイ１００に対するデータ転送方向を読み出し方向に変更し、データ転送を許容する。アドレスカウンタ１１０は、クロック信号ＳＣＫの立ち下がりに同期してカウントアップするため、オペレーションコード入力後のアドレスカウンタ１１０のカウンタ値は０４であり、メモリアレイ１００の０４Ｈに格納されている既存データＤＥから読み出される。メモリアレイに格納されている既存データＤＥは、クロック信号ＳＣＫの立ち下がりに同期してＩＮ／ＯＵＴコントローラ１２０を介して、データ信号端子ＳＤＡＴに順次出力され、出力された既存データＤＥはクロック信号ＳＣＫの次の立ち下がりまでの期間は保持される。クロック信号ＳＣＫが立ち下がると、アドレスカウンタ１１０におけるカウント値は１つインクリメントされ、この結果、メモリアレイ１００における次のアドレス（データセル）に格納されている既存データＤＥがデータ信号端子ＳＤＡＴに出力される。この動作の繰り返しが、所望のアドレスに到達するまで、クロック信号ＳＣＫに同期して実行される。すなわち、本実施例における半導体記憶装置１０はシーケンシャルアクセスタイプの記憶装置であるから、ホスト計算機は、読み出し、または書き込みを所望するアドレスに対応する数のクロック信号パルスを発行し、アドレスカウンタ１１０のカウンタ値を所定のアドレスに対応するカウント値までインクリメントしなければならない。この結果、既存データＤＥは、クロック信号ＳＣＫに同期して順次インクリメントされるアドレスカウンタ１１０のカウンタ値によって指定されるアドレスからシーケンシャルに読み出しされる。
本実施例に係る半導体記憶装置１０のメモリアレイ１００は、００Ｈ〜ＢＦＨまでのアドレスしか有していないが、アドレスカウンタ１１０はアドレスＦＦＨまでカウントアップを実行する。アドレスＣ０Ｈ〜ＦＦＨまでは、疑似領域であり、対応するアドレスはメモリアレイ１００には存在せず、かかる疑似領域にアクセスしている期間は、データ信号端子ＳＤＡＴに対して値「０」が出力される。アドレスカウンタ１１０によってアドレスＦＦＨまでカウントアップされると、アドレスはアドレス００Ｈに戻る。読み出し動作終了後には、ホスト計算機から０またはＬＯＷのリセット信号ＲＳＴが入力され、半導体記憶装置１０は、オペレーションコードの受け付け待機状態とされる。
リセット信号ＲＳＴ（＝０またはＬＯＷ）が入力されると、アドレスカウンタ１１０、ＩＮ／ＯＵＴコントローラ１２０、ＩＤコンパレータ１３０、ライト／リードコントローラ１４０およびインクリメントコントローラ１５０は初期化される。
・書き込み処理
図４を参照して第１の実施例に係る半導体記憶装置１０における書き込み動作について説明する。図４は第１の実施例に係る半導体記憶装置の書き込み動作実行時におけるリセット信号ＲＳＴ、外部クロック信号ＳＣＫ、データ信号ＳＤＡ、アドレスカウンタ値の時間的関係を示すタイミングチャートである。本実施例に係る半導体記憶装置１０では、書き込みは行単位（８ビット単位）、すなわち所定アドレス単位（８アドレス単位）で実行される。
既述のＩＤコンパレータ１３０により識別情報の一致が確認された後、ライト／リードコントローラ１４０は、取得したコマンドビットが書き込みコマンドであると共に、インクリメントコントローラ１５０から書き込み許可信号ＷＥＮ１を受信した場合には、ＩＮ／ＯＵＴコントローラ１２０に対して書き込み許可信号ＷＥＮ２を出力する。
図４に示す通り、オペレーションコードが入力された後、クロック信号端子ＳＣＫＴにはダミーライトクロックとして４クロック信号が入力され、書き込みスタンバイ状態とされる。アドレスカウンタ１１０は、クロック信号ＳＣＫの立ち下がりに同期してカウントアップするため、書き込みスタンバイ状態後の、アドレスカウンタ１１０のカウンタ値は０８となり、メモリアレイ１００のアドレス０８Ｈからデータが書き込まれることとなる。
本実施例では、１行８ビットのメモリアレイ１００に対して、１６ビット長の書き込みデータが書き込まれる。書き込み処理に際しては、先ず、書き込みデー夕ＤＩの最上位ビット（ＭＳＢ）から８ビットのデータが、クロック信号ＳＣＫの立ち上がりに同期して、８ビットラッチレジスタ１７０に順次ラッチされる。また、ＩＮ／ＯＵＴコントローラ１２０に対して書き込み許可信号ＷＥＮ２が出力されるまでは、クロック信号ＳＣＫの立ち下がりに同期して、メモリアレイ１００の第８アドレス以後の既存データが順次、データ出力信号線（データ信号端子ＳＤＡ）上に出力される。データ出力信号線上に出力された既存データＤＥは、インクリメントコントローラ１５０に入力され、８ビットラッチレジスタ１７０にラッチされた書き込みデータＤＩと共に、後述するように、インクリメントコントローラ１５０における書き込みデータＤＩが既存データＤＥよりも大きな値であるか否かを判定するために用いられる。この判断処理は、書き込みスタンバイ状態後の８サイクル目のクロック信号ＳＣＫ立ち上がり後（＝１またはＨｉ）に実行される。
書き込み許可信号ＷＥＮ２を受信したＩＮ／ＯＵＴコントローラ１２０は、メモリアレイ１００に対するデータ転送方向を書き込み方向に変更し、８ビットラッチレジスタ１７０とＩＮ／ＯＵＴコントローラとの間における信号線のハイインピーダンス設定を解除してデータ転送を許容する。この結果、メモリアレイ１００の各ビット線には書き込みデータＤＩの値（０または１）が転送される。ライト／リードコントローラ１４０は、書き込みスタンバイ状態後の８サイクル目のクロック信号ＳＣＫ立ち上がり後に、チャージポンプ回路１６０に対して書き込み電圧の生成を要求し、生成された書き込み電圧は、カラム選択回路１０３によって選択されているビット線、本実施例では全てのビット線に印加され、この結果、８ビットラッチレジスタ１７０に格納されている８ビットのデータ「１」と「０」が、一度に書き込み制限行に書き込まれる。
８サイクル目のクロック信号ＳＣＫが立ち下がると、アドレスカウンタ１１０のカウント値が１つインクリメントされ、次のアドレス（８アドレス分）に書き込まれるべき書き込みデータＤＩ（２バイト目のデータ）の取り込みが実行される。また、８サイクル目のクロック信号ＳＣＫが立ち下がった後のクロック・ロー期間で、書き込まれたばかりの既存データＤＥと書き込みに用いられた書き込みデータＤＩとが一致するか否かのベリファイ処理が実行される。すなわち、クロック・ロー期間の間に、インクリメントコントローラ１５０に備えられている４ビットカウンタ１５１によって書き込まれたばかりの８ビットの既存データＤＥのアドレスを指定するためのカウント値がカラム選択回路１０３およびロー選択回路１０４に対して入力される。この結果、ＩＮ／ＯＵＴコントローラ１２０からは、書き込まれたばかりの８ビットの既存データＤＥが出力され、ＩＮ／ＯＵＴコントローラ１２０を介して、インクリメントコントローラ１５０が備える８ビット内部レジスタ１５３に格納される。インクリメントコントローラ１５０は、８ビット内部レジスタ１５３に格納されている８ビットの既存データＤＥと８ビットラッチレジスタ１７０に格納されている８ビットの書き込みデータＤＩとが一致するか否かを検証する。
本実施例では、書き込みデータＤＩは１６ビット長のデータであり、書き込み制限行は２行（８アドレス×２）であるため、上記の処理が２度実行されると、書き込みデータＤＩの書き込みは完了する。書き込みデータＤＩの書き込み完了後、ホスト計算機からリセット信号ＲＳＴ（＝０またはＬＯＷ）がリセット信号端子ＲＳＴＴに入力され、オペレーションコードの受け付け待機状態とされて、書き込み処理が終了する。
なお、ホスト計算機から送出される書き込みデータは、書き換えを所望するアドレスに対応するデータを除いて、メモリアレイ１００に現在格納されているデータと同一の値（０または１）を有している。すなわち、メモリアレイ１００における書き換えられないアドレスのデータは、同一の値によって上書きされる。
リセット信号ＲＳＴ（＝０またはＬＯＷ）が入力されると、アドレスカウンタ１１０、ＩＮ／ＯＵＴコントローラ１２０、ＩＤコンパレータ１３０、ライト／リードコントローラ１４０およびインクリメントコントローラ１５０は初期化される。
・インクリメント確認処理：
図５〜図８を参照して、第１の実施例に係る半導体記憶装置１０によって実行される書き込み処理におけるインクリメント確認処理、データベリファイ処理について説明する。図５および図６は第１の実施例に係る半導体記憶装置１０によって実行される書き込み処理におけるインクリメント確認処理の処理ルーチンを示すフローチャートである。図７は第１の実施例に係る半導体記憶装置１０によって実行される書き込み処理におけるデータベリファイ処理の処理ルーチンを示すフローチャートである。図８は第１の実施例におけるインクリメント確認処理の結果の一例を示す説明図である。
書き込み処理が開始されると、１６ビット（２バイト）長の書き込みデータＤＩの内、１バイト目の書き込みデータＤＩ１が８ビットラッチレジスタ１７０にラッチされるタイミングで、インクリメントコントローラ１５０は、メモリアレイ１００の第１の書き込み制限行に格納されている対応既存データＤＥ１を１ビット単位にて読み出す（ステップＳ１００）。以降、第１の書き込み制限行に格納されている８ビットの既存データＤＥ１を構成する１ビットの各既存データＤＥ１を既存データＤＥ１ｎ（ｎ＝１〜８）とする。また、８ビットの書き込みデータＤＩ１を構成する１ビットの各書き込みデータＤＩ１を書き込みデータＤＩ１ｎ（ｎ＝１〜８）とする。
すなわち、インクリメントコントローラ１５０は、２バイト目の各書き込みデータＤＩ２ｎを８ビットラッチレジスタ１７０へラッチする際に用いられるクロック信号ＳＣＫの立ち下がりに同期してＩＮ／ＯＵＴコントローラ１２０から出力される、メモリアレイ１００の第１の書き込み制限行に格納されている対応既存データＤＥ１を１ビット単位にて読み出す。なお、１バイト目の書き込みデータが書き込まれるべきメモリアレイ１００のアドレスは、第１の書き込み制限行に対応する８アドレスであり、８アドレスが所定の単位のアドレスとなる。
インクリメントコントローラ１５０は、今回のタイミングで８ビットラッチレジスタ１７０にラッチされた１ビットの書き込みデータＤＩ１を読み出す（ステップＳ１０２）。なお、本実施例では、書き込みデータＤＩは最上位ビット（ＭＳＢ）から順に半導体記憶装置１０に入力され、８ビットラッチレジスタ１７０には、ＭＳＢにて書き込みデータＤＩ１ｎが順次ラッチされる。
インクリメントコントローラ１５０は、８ビットラッチレジスタ１７０から読み出した書き込みデータＤＩ１ｎの値がメモリアレイ１００の第１の書き込み制限行から読み出した既存データＤＥ１ｎの値以上であるか否か、すなわち、ＤＩ１ｎ≧ＤＥ１ｎであるか判断する（ステップＳ１０４）。インクリメントコントローラ１５０は、ＤＩ１ｎ＜ＤＥ１ｎであると判断した場合には（ステップＳ１０４：Ｎｏ）、本処理ルーチンを終了する。すなわち、書き込みデータＤＩ１の書き込みは実行されない。なお、図５では、書き込みデータＤＩ１ｎの値が既存データＤＥ１ｎの値以上であるか否か、すなわち、ＤＩ１ｎ≧ＤＥ１ｎの判断が記載されているが、この判断は、ＤＩ１ｎ＜ＤＥ１ｎであるか、すなわち、書き込みデータＤＩ１ｎの値が既存データＤＥ１ｎの値未満であるかの判断と置き換えられても良い。ＤＩ１ｎ＜ＤＥ１ｎの判断に置き換えられた場合には、Ｙｅｓ、Ｎｏの判断が入れ替わるに過ぎない。
インクリメントコントローラ１５０は、ＤＩ１ｎ≧ＤＥ１ｎであると判断した場合には（ステップＳ１０６：Ｙｅｓ）、第１の書き込み制限行から読み出した既存データＤＥ１ｎを、内部に備える８ビット内部レジスタ１５２に格納する（ステップＳ１０６）。
インクリメントコントローラ１５０は、第１の書き込み制限行に格納されている８ビットの既存データＤＥ１ｎと８ビットラッチレジスタ１７０に格納されている８ビットの書き込みデータＤＩ１ｎとの対比が完了したか否かを判定し（ステップＳ１０８）、完了していないと判定した場合には（ステップＳ１０８：Ｎｏ）、ステップＳ１００〜Ｓ１０６を繰り返して実行する。
インクリメントコントローラ１５０は、第１の書き込み制限行に格納されている８ビットの既存データＤＥ１ｎと８ビットラッチレジスタ１７０に格納されている８ビットの書き込みデータＤＩ１ｎとの対比が完了したと判定した場合には（ステップＳ１０８：Ｙｅｓ）、８ビットラッチレジスタ１７０に格納されている書き込みデータＤＩ１をメモリアレイ１００の第１の書き込み制限行に対して書き込む（ステップＳ１１２）。すなわち、ＤＥ１←ＤＩ１となり、書き込みデータＤＩ１が新たな既存データＤＥ１となる。より詳細には、既述のように、インクリメントコントローラ１５０がメモリアレイ１００に対する書き込みデータＤＩ１の書き込みを直接実行するのではなく、８ビットラッチレジスタ１７０に格納されている書き込みデータＤＩ１をメモリアレイ１００の第１の書き込み制限行に書き込みことを許可する、書き込み許可信号ＷＥＮ１をライト／リードコントローラ１４０に対して出力し、書き込み許可信号ＷＥＮ１を受信したライト／リードコントローラ１４０によって書き込みが実行される。
インクリメントコントローラ１５０は、データベリファイ処理を実行し（ステップＳ１１２）、書き込みが正常に完了していた場合には（ステップＳ１１４：Ｙｅｓ）、図６のＡ以降のステップを実行する。一方、インクリメントコントローラ１５０は、データベリファイ処理を実行し（ステップＳ１１２）、書き込みが正常に完了していなかった場合には（ステップＳ１１４：Ｎｏ）、書き込み処理を終了する。
データベリファイ処理について図７を参照して説明する。インクリメントコントローラ１５０は、メモリアレイ１００の第１の書き込み制限行から、書き込んだばかりの既存データＤＥ１を読み出し（ステップＳ２００）、８ビットラッチレジスタ１７０にはに格納されてる書き込みデータＤＩ１と比較する（ステップＳ２１０）。具体的には、インクリメントコントローラ１５０は、１バイト目の書き込み終了後におけるクロック・ロー期間に、チャージポンプ回路１６０の内部発振器１６２によって生成される内部クロック信号を用いて、４ビットカウンタ１５１をカウントアップさせる。インクリメントコントローラ１５０は、４ビットカウンタ１５１のカウント値をカラム選択回路１０３およびロー選択回路１０４に入力し、メモリアレイ１００の第１の書き込み制限行から書き込んだばかりの８ビットの既存データＤＥ１をアドレス順に、ＩＮ／ＯＵＴコントローラ１２０を介して読み出し、８ビット内部レジスタ１５３にラッチする。すなわち、内部クロック信号は書き込みスタンバイ状態から８ビット（８クロック）遅れで出力されることとなる。
インクリメントコントローラ１５０は、８ビット内部レジスタ１５３にラッチされた既存データＤＥ１と８ビットラッチレジスタ１７０にラッチされている第１の書き込み制限行に対する書き込みに用いられた書き込みデータＤＩ１とが一致するか否かを判定する（ステップＳ２０４）。インクリメントコントローラ１５０は、第１の書き込み制限行から読み出された８ビット内部レジスタ１５３に格納されている既存データＤＥ１が８ビットラッチレジスタ１７０に格納されている書き込みデータＤＩ１と一致する場合には（ステップＳ２０４：Ｙｅｓ）、書き込みが正常に完了したものと判断し（ステップＳ２０６）、本処理ルーチンを完了する。
インクリメントコントローラ１５０は、第１の書き込み制限行から読み出された８ビット内部レジスタ１５３にラッチされている既存データＤＥ１が８ビットラッチレジスタ１７０に格納されている書き込みデータＤＩ１と一致しない場合には（ステップＳ２０４：Ｎｏ）、書き込みが正常に完了しなかった、すなわち、書き込み異常であると判断する（ステップＳ２０８）。インクリメントコントローラ１５０は、第１の書き込み制限行から読み出された８ビット内部レジスタ１５３にラッチされている既存データＤＥ１と、８ビット内部レジスタ１５２に格納されている書き込み前の既存データＤＥ１ｏｌｄとが一致するか否かを判定し（ステップＳ２１０）、ＤＥ１＝ＤＥ１ｏｌｄであると判定した場合には（ステップＳ２１０：Ｙｅｓ）、本処理ルーチンを終了する。一方、インクリメントコントローラ１５０は、ＤＥ１≠ＤＥ１ｏｌｄであると判定した場合には（ステップＳ２１０：Ｎｏ）、８ビット内部レジスタ１５２に格納されている書き込み前の既存データＤＥ１ｏｌｄをメモリセル１００の第１の書き込み制限行に対して書き戻し（ステップＳ２１２）、本処理ルーチンを終了する。書き込み異常の判定がなされた場合には、第２の書き込み制限行に対する残りの書き込みデータＤＩ２の書き込み処理は実行されない。
書き戻し処理は、第２の書き込み制限行に対する書き込み処理サイクルに実行される。すなわち、２バイト目の書き込みデータＤＩ２の書き込みサイクルにおいて、８ビットラッチに格納されている既存データＤＥ１ｏｌｄがＩＮ／ＯＵＴコントローラ１２０に入力され、データ信号端子ＳＤＡＴを介して入力されたデータと同様にして、メモリアレイ１００の第１の書き込み制限行に対する書き込み処理が実行される。この結果、メモリアレイ１００の第１および第２の書き込み制限行におけるデータは、書き込み処理実行前の値に戻される。
図６に戻り、インクリメント確認処理について説明する。１６ビット長の書き込みデータＤＩの内、１バイト目の書き込みデータＤＩ１の書き込みが正常に完了すると、残りの２バイト目の書き込みデータＤＩ２が８ビットラッチレジスタ１７０にラッチされるタイミングで、インクリメントコントローラ１５０は、メモリアレイ１００の第２の書き込み制限行に格納されている対応既存データＤＥ２を１ビット単位にて読み出す（ステップＳ１１６）。以降、第２の書き込み制限行に格納されている８ビットの既存データＤＥ２を構成する１ビットの各既存データＤＥ２を既存データＤＥ２ｎ（ｎ＝１〜８）とする。また、８ビットの書き込みデータＤＩ２を構成する１ビットの各書き込みデータＤＩ２を書き込みデータＤＩ２ｎ（ｎ＝１〜８）とする。
すなわち、インクリメントコントローラ１５０は、２バイト目の各書き込みデータＤＩ２ｎを８ビットラッチレジスタ１７０へラッチする際に用いられるクロック信号ＳＣＫの立ち下がりに同期してＩＮ／ＯＵＴコントローラ１２０から出力される、メモリアレイ１００の第２の書き込み制限行に格納されている対応既存データＤＥ２ｎを読み出す。なお、１バイト目の書き込みデータが書き込まれるべきメモリアレイ１００のアドレスは、第２の書き込み制限行に対応する８アドレスであり、８アドレスが所定の単位のアドレスとなる。
インクリメントコントローラ１５０は、今回のタイミングで８ビットラッチレジスタ１７０にラッチされた書き込みデータＤＩ２ｎを読み出す（ステップＳ１１８）。なお、本実施例では、書き込みデータＤＩは最上位ビット（ＭＳＢ）から順に半導体記憶装置１０に入力され、８ビットラッチレジスタ１７０には、ＭＳＢにて書き込みデータＤＩ２ｎが順次ラッチされる。
インクリメントコントローラ１５０は、８ビットラッチレジスタ１７０から読み出した書き込みデータＤＩ２ｎの値がメモリアレイ１００の第１の書き込み制限行から読み出した既存データＤＥ２ｎの値より大きな値であるか否か、すなわち、ＤＩ２ｎ＞ＤＥ２ｎであるか判断する（ステップＳ１２０）。インクリメントコントローラ１５０は、ＤＩ２ｎ≦ＤＥ２ｎであると判断した場合には（ステップＳ１２０：Ｎｏ）、本処理ルーチンを終了する。すなわち、書き込みデータＤＩ２の書き込みは実行されない。
インクリメントコントローラ１５０は、ＤＩ２ｎ＞ＤＥ２ｎであると判断した場合には（ステップＳ１２０：Ｙｅｓ）、第２の書き込み制限行に格納されている８ビットの既存データＤＥ２ｎと８ビットラッチレジスタ１７０に格納されている８ビットの書き込みデータＤＩ２ｎとの対比が完了したか否かを判定し（ステップＳ１２２）、完了していないと判定した場合には（ステップＳ１２２：Ｎｏ）、ステップＳ１１６〜Ｓ１２０を繰り返して実行する。
インクリメントコントローラ１５０は、第２の書き込み制限行に格納されている８ビットの既存データＤＥ２ｎと８ビットラッチレジスタ１７０に格納されている８ビットの書き込みデータＤＩ２ｎとの対比が完了したと判定した場合には（ステップＳ１２２：Ｙｅｓ）、８ビットラッチレジスタ１７０に格納されている書き込みデータＤＩ２をメモリアレイ１００の第２の書き込み制限行に対して書き込み（ステップＳ１２４）、本処理ルーチンを完了する。すなわち、ＤＥ２←ＤＩ２となり、書き込みデータＤＩ２が新たな既存データＤＥ２となる。より詳細には、既述のように、インクリメントコントローラ１５０がメモリアレイ１００に対する書き込みデータＤＩ１の書き込みを直接実行するのではなく、８ビットラッチレジスタ１７０に格納されている書き込みデータＤＩ２をメモリアレイ１００の第２の書き込み制限行に書き込みことを許可する、書き込み許可信号ＷＥＮ１をライト／リードコントローラ１４０に対して出力し、書き込み許可信号ＷＥＮ１を受信したライト／リードコントローラ１４０によって書き込みが実行される。
図８を参照して、メモリアレイ１００に対して書き込みが許容される場合と書き込みが許容されない場合について例示的に説明する。図８ではメモリアレイ１００のアドレスが横軸に取られており、左端が最上位ビット（ＭＳＢ）であり右端が最下位ビット（ＬＳＢ）となる。アドレス０８〜０Ｆまでは第１の書き込み制限行に相当し、アドレス１０〜１７までは第２の書き込み制限行に相当する。
・第１の例では、第１の書き込み制限行に対応する書き込みデータＤＩ１と既存データＤＥ１とが一致し、第２の書き込み制限行に対応する書き込みデータＤＩ２は既存データＤＥ２よりも大きいので書き込みが許容される。
・第２の例では、第１の書き込み制限行に対応する書き込みデータＤＩ１と既存データＤＥ１とが一致し、第２の書き込み制限行に対応する書き込みデータＤＩ２は既存データＤＥ２よりも小さいので書き込みが許容されない。
・第３の例では、第１の書き込み制限行に対応する書き込みデータＤＩ１は既存データＤＥ１よりも大きいが、第２の書き込み制限行に対応する書き込みデータＤＩ２は既存データＤＥ２よりも小さいので書き込みが許容されない。
・第４の例では、第１の書き込み制限行に対応する書き込みデータＤＩ１は既存データＤＥ１よりも小さいので、第２の書き込み制限行に対応する書き込みデータＤＩ２と既存データＤＥ２との大小関係に関わりなく書き込みが許容されない。
図９を参照して、第１の実施例に係る半導体記憶装置１０の応用例について説明する。図９は第１の実施例に係る半導体記憶装置の応用例を示す説明図である。第１の実施例に係る半導体記憶装置１０は、消費材を収容する収容容器、例えば、印刷記録材としてのインクを収容するインク収容体３１０、３１１、３１２に備えられる。各インク収容体３１０、３１１、３１２が印刷装置に装着されると、印刷装置に備えられるホスト計算機３００と、バス接続される。すなわち、ホスト計算機３００からのデータ信号線ＳＤＡ、クロック信号線ＳＣＫ、リセット信号線ＲＳＴ、正極電源線ＶＤＤ、および負極電源線ＶＳＳは、各インク収容体３１０、３１１、３１２に備えられている半導体記憶装置１０と接続されている。この応用例では、インク残量またはインク消費量といったインクに関する量の情報が半導体記憶装置１０に格納される。
以上説明したとおり、第１の実施例に係る半導体記憶装置１０によれば、半導体記憶装置１０には、既存データＤＥよりも大きな値の書き込みデータＤＩのみが書き込まれる。したがって、値が増加する特性を有するデータの更新精度を向上させることができる。すなわち、ホスト計算機から送信される書き込みデータＤＩがノイズによって、先の値よりも小さな値に変更されてしまった場合、あるいは、ホスト計算機から誤って先の値よりも小さな値が送信された場合には、半導体記憶装置１０に対する書き込みは実行されない。したがって、消費材の消費量によって装置の制御が行われている場合、例えば、インクジェット式プリンタにおけるインクヘッドの空撃ち防止をインク消費量によって監視している場合に、空撃ちによるインクヘッドの損傷をより高い精度にて抑制または防止することができる。
第１の実施例の変形例：
（１）上記第１の実施例では、書き込みデータＤＩ２が既存データＤＥ２よりも大きな値を有する場合に、第２の書き込み制限行に対する書き込みを許容しているが、書き込みデータＤＩ２と既存データＤＥ２とが等しい場合に書き込みを許容しても良い。かかる場合には、少なくともメモリアレイ１００に格納されている消費材の消費量に関するデータが低減されることはなく、データの低減に伴う不具合を低減または防止することができる。この場合、既存データＤＥ２は同値の書き込みデータＤＩ２によって上書きされる。
（２）上記第１の実施例では、半導体記憶装置１０に対して、値が増加する特性のデータを格納する場合、すなわち、消費材の消費量が記録される場合について説明したが、値が低減する特性のデータを格納する場合、すなわち、消費材の残量が記録される場合にも同様の利益を享受することができる。この場合には、インクリメントコントローラ１５０に代えて、書き込みデータＤＩが既存データＤＥよりも小さな値のデータであるか否かを判定するデクリメントコントローラを備えればよい。
（３）上記第１の実施例では、インクカートリッジを応用例として用いたが、この他にもトナーカートリッジにおいても同様の効果を得ることができる。また、プリペイドカード等の通貨相当情報を格納する媒体において適用した場合にも同様の効果を得ることができる。
（４）上記第１の実施例では、ベリファイ処理において、４ビットカウンタおよび内部発振器１６２が用いられているが、これら回路を用いることなくベリファイ処理を実行しても良い。すなわち、上記実施例では８ビット内部レジスタ１５３にラッチされている既存データＤＥ１はと８ビットラッチレジスタ１７０にラッチされている書き込みＤＩ１を用いて８ビット単位でベリファイ処理が実行されているが、１ビット単位で実行されても良い。かかる場合には、インクリメントコントローラ１５０は、４ビットカウンタ１５１および８ビット内部レジスタ１５３を備える必要がない。
具体的には、インクリメントコントローラ１５０は、２バイト目の書き込みデータＤＩ２の各ビットが８ビットラッチレジスタ１７０にラッチされるタイミングにて、メモリアレイ１００の第１の書き込み制限行から書き込まれたばかりの既存データＤＥ１をＭＳＢから１ビット単位にて読み出す。かかる既存データＤＥ１の読み出しは、例えば、ベリファイ処理時（２バイト目の書き込みデータＤＩ２のラッチ時）には、カラム選択回路１０３およびロー選択回路１０４が、アドレスカウンタ１１０から入力されるカウント値から８カウント分を減算し、減算したカウント値を用いてメモリアレイ１００の読み出しデータを選択するようにすればよい。あるいは、カラム選択回路１０３およびロー選択回路１０４が、１サイクル前の読み出しアドレスを記憶しておき、アドレスカウンタ１１０から入力されるカウント値に基づいて記憶されたアドレスを順次、選択するようにしておいても良い。
一方、８ビットラッチレジスタ１７０はＦＩＦＯタイプのレジスタであるから、２バイト目の書き込みデータＤＩ２が１ビット単位でラッチされる毎に既にラッチされている書き込みデータＤＩ１が１ビット単位で放出される。インクリメントコントローラ１５０は、８ビットラッチレジスタ１７０からＭＳＢにて１ビット単位で放出される１バイト目の書き込みデータＤＩ１と、メモリアレイ１００の第１の書き込み制限行からＭＳＢにて１ビット単位で読み出される既存データＤＥ１とを比較することによって、書き込まれるべき書き込みデータＤＩ１がメモリアレイ１００の第１の書き込み制限行に正しく書き込まれているか否か、すなわち、各ビットの値が一致するか否か、を判定することができる。このビット単位の比較処理を８回繰り返すことで、１バイト目の書き込みデータＤＩ１が正しく書き込まれたか否かを判定することができる。第１の書き込み制限行に書き込まれた８ビットの既存データＤＥ１の全てについて正しく書き込まれている場合には、２バイト目の書き込みデータＤＩ２に対するインクリメント確認処理が実行された後、メモリアレイ１００の第２の書き込み制限行に対する書き込みデータＤＩ２の書き込みが実行される。
（５）上記第１の実施例では、ベリファイ処理の結果、第１の書き込み制限行に対して１バイト目の書き込みデータＤＩ１が正しく書き込まれていない場合には、８ビット内部レジスタ１５２にラッチされている書き込み前の既存データＤＥ１ｏｌｄが第１の書き込み制限行に対して書き戻されるが、書き戻しを実行しなくてもよい。かかる場合であっても、第２の書き込み制限行に対する２バイト目の書き込みデータＤＩ２の書き込みは実行されず、下位８ビットの値は正常に書き込まれた値であることが保証される。一方、上位８ビットの値については、一般的に、短い期間で大きく変動する値でないことから、ホスト計算機側において、前回の値との確からしさを検証することによって、不具合を回避することができる。
（６）上記第１の実施例では、１６ビット長の書き込みデータを例にとって説明しているが、この他にも、２４ビット長、３２ビット長といった、メモリアレイ１００の１行のビット長の倍数のデータ長を有するデータに対しても同様に適用することができると共に、同様の効果を得ることができる。
第２の実施例：
半導体メモリ装置の構成：
第２の実施例に係る半導体メモリ装置は、不揮発的に記憶内容を保持すると共に１ビット単位にて先頭アドレスからシーケンシャルにアクセスされるＥＥＰＲＯＭである。
図１０は第２の実施例に係る半導体メモリ装置の内部回路構成を示すブロック図である。この半導体メモリ装置１０Ａは、アクセスコントローラ１１１０、リードライトコントローラ１１２０、アドレスカウンタ１１３０およびメモリアレイ１１４０を備えている。
メモリアレイ１１４０は、所定容量、例えば、２５６ビットの記憶領域を有している。
アドレスカウンタ１１３０は、クロック信号端子ＣＫＴに入力されるクロック信号ＣＬＫに同期してそのカウンタ値をインクリメントする回路である。より具体的には、アドレスカウンタ１１３０は、リードライトコントローラ１１２０から出力されるカウントアップ信号ＣＰに同期してそのカウンタ値をインクリメント（カウントアップ）する回路である。ただし、カウントアップ信号ＣＰは、リードライトコントローラ１１２０から出力されるクロック信号であり、内部クロック信号ＩＣＫに相当する。また、内部クロック信号ＩＣＫは、コントローラ１１１０から出力されるクロック信号であり、クロック信号ＣＬＫに相当する。したがって、カウントアップ信号ＣＰは、クロック信号ＣＬＫに相当するクロック信号であり、アドレスカウンタ１１３０は、クロック信号ＣＬＫに同期してそのカウンタ値をカウントアップすることになる。
アドレスカウンタ１１３０のカウンタ値は、メモリアレイ１１４０の２５６ビットの記憶領域位置を示すアドレスＡＤＤとしてメモリアレイ１１４０に入力されており、アドレスカウンタ１１３０のカウンタ値によってメモリアレイ１１４０における書き込み位置または読み出し位置を指定することができる。
アドレスカウンタ１１３０は、また、カウンタリセット信号ＣＲＳＴが入力されると、カウンタ値を初期値にリセットする。ここで、初期値はメモリアレイ１１４０の先頭位置と関連付けられていればどのような値でもよく、一般的には０が初期値として用いられる。なお、カウンタリセット信号ＣＲＳＴは、装置の起動時や、アクセス（データの読み出しまたは書き込み）の開始または終了時に、リードライトコントローラ１１２０から出力される。
したがって、アドレスカウンタ１１３０は、初期値から順にカウントアップされるカウンタ値によりメモリアレイ１１４０の書き込み位置または読み出し位置を順に指定することができる。
アクセスコントローラ１１１０は、チップセレクト端子ＣＳＴと、クロック信号端子ＣＫＴと、データ信号端子ＩＯと接続されており、チップセレクト端子ＣＫＴを介してチップセレクト信号ＣＳ＃が入力され、クロック信号端子ＣＫＴを介してクロック信号ＣＬＫが入力され、データ信号端子ＩＯを介してデータ信号ＤＡが入力あるいは出力される。入力されたクロック信号ＣＬＫは内部クロック信号ＩＣＫとしてリードライトコントローラ１１２０に送出される。データ信号ＤＡが入力データ信号の場合には、入力データ信号ＩＤＡとしてリードライトコントローラ１１２０に送出され、書き込みデータ信号ＷＤＡとしてメモリアレイ１１４０に送出される。データ信号ＤＡが出力データ信号である場合には、メモリアレイ１１４０から送出された読み出しデータ信号ＲＤＡがデータ信号ＤＡとして出力される。
また、アクセスコントローラ１１１０は、チップセレクト信号ＣＳ＃と、クロック信号ＣＬＫに同期して入力されるデータ信号ＤＡとに基づいて、アクセスの開始および終了を制御する。具体的には、アクセスコントローラ１１１０は、チップセレクト信号ＣＳ＃が入力され、データの読み出しまたは書き込みを指示するコマンドデータがあらかじめ定められたタイミングでデータ信号ＤＡとして入力されると、アクセス許可信号ＡＥＮをリードライトコントローラ１１２０およびアドレスカウンタ１１３０に送出するとともに、指示されたアクセスが書き込みである場合には、書き込みアクセス開始信号ＷＲＳをリードライトコントローラ１１２０に送出することにより、アクセスの開始を制御する。また、アクセスコントローラ１１１０は、チップセレクト信号ＣＳ＃の入力が終了すると、アクセス許可信号ＡＥＮの送出を終了するとともに、書き込みアクセス開始信号ＷＲＳを送出している場合にはその送出を終了することにより、アクセスの終了を制御する。
リードライトコントローラ１１２０は、データの読み出しを制御するリード制御部１１２２と、データの書き込みを制御するライト制御部１１２４と、リード制御部１１２２からの指示に従ってリード実行信号ＲＤをメモリアレイ１１４０に送出するとともに、ライト制御部１１２４からの指示に従ってリード実行信号ＲＤおよびライト実行信号ＷＲをメモリアレイ１１４０に送出するリードライト実行部１１２６と、を備えており、データの読み出しあるいは書き込みを実際に制御する。具体的には、アクセスコントローラ１１１０からアクセス許可信号ＡＥＮおよび書き込み開始信号ＷＲＳのうち、アクセス許可信号ＡＥＮのみが入力される場合には、リード制御部１１２２およびリードライト実行部１１２６が動作して、内部クロック信号ＩＣＫの立ち下がり（立ち上がり）に同期したリード実行信号ＲＤをメモリアレイ１１４０に送出して、データの読み出し処理を実行する。このとき、メモリアレイ１１４０からの読み出しデータ信号ＲＤＡに含まれる読み出しデータ（単に「読み出しデータＲＤＡ」とも呼ぶ。）は、アクセスコントローラ１１１０に入力され、データ信号端子ＩＯを介して出力データ信号ＤＡとして出力される。また、アクセスコントローラ１１１０からアクセス許可信号ＡＥＮおよび書き込みアクセス開始信号ＷＲＳが入力される場合には、ライト制御部１１２４およびリードライト実行部１１２６が動作して、内部クロック信号ＩＣＫの立ち下がり（立ち上がり）に同期したリード実行信号ＲＤおよび内部クロック信号ＩＣＫの立ち上がり（立ち下がり）に同期したライト実行信号ＷＲをメモリアレイ１１４０に送出して、後述するようにデータの読み出しおよび書き込み処理を実行する。このとき、データ信号端子ＩＯを介してアクセスコントローラ１１１０に入力されたデータ信号ＤＡが、書き込みデータ信号ＷＤＡとしてメモリアレイ１１４０に送出され、書き込みデータ信号ＷＤＡの表すデータ（単に「書き込みデータＷＤＡ」とも呼ぶ。）は、メモリアレイ１１４０に入力される順に書き込まれる。
なお、本実施例の半導体メモリ装置の特徴は、ライト制御部１１２４によるデータの書き込み動作の部分にあり、リード制御部１１２２によるデータの読み出し動作の部分については、従来の半導体メモリ装置と同様であるので、以下では、データの書き込み動作について説明を加える。
書き込み動作：
前提として、データ信号ＤＡとしてデータ信号端子ＩＯを介して順に入力される複数ビットのデータは、必ず最大ビット（ＭＳＢ）から順に１ビット単位で入力され、メモリアレイ１１４０の記憶領域位置も最大ビットに関連付けられたアドレスから順番にアクセスされることとする。
図１１は、第２の実施例におけるデータの書き込み動作の手順を示すフローチャートである。この動作は、上記したように、アクセスコントローラ１１１０からリードライトコントローラ１１２０にアクセス許可信号ＡＥＮが入力されるとともに、書き込みアクセス開始信号ＷＲＳが入力される場合に、ライト制御部１１２４によって実行される。
書き込み動作を開始すると、ライト制御部１１２４は、まず、リードライト実行部１１２６にデータの読み出しを実行させる（ステップＳ１１０２）。例えば、リードライト実行部１１２６は、内部クロック信号ＩＣＫの立ち下がりに同期してリード実行信号ＲＤをメモリアレイ１１４０に送出する。このとき、リード実行信号ＲＤに従って、メモリアレイ１１４０の、アドレスカウンタ１１３０から送出されているアドレス信号ＡＤＤの表すアドレス値に対応する記憶領域位置の記憶領域から、記憶されているデータ（記憶データ）が読み出される。なお、リード実行信号ＲＤの送出は、以下で説明する他の読み出し処理においても、内部クロック信号ＩＣＫの立ち下がりに同期して行われることとする。
そして、ライト制御部１１２４は、上記のようにして読み出されてメモリアレイ１１４０から送出されている読み出しデータ信号ＲＤＡの表すデータ（単に「読み出しデータ」と呼ぶ。）と、このとき、データ信号端子ＩＯを介して入力され、アクセスコントローラ１１１０から送出されている入力データ信号ＩＤＡの表すデータ（単に「入力データ」と呼ぶ。）と、を比較し（ステップＳ１１０４）、読み出しデータの値と入力データの値とが一致しているか否かを判断する（ステップＳ１１０６）。
読み出しデータの値と入力データの値とが一致している場合には（ステップＳ１１０６：Ｙｅｓ）、ライト制御部１１２４は、アドレスカウンタ１１３０のカウンタ値を１つカウントアップさせ（ステップＳ１１０８）、さらに、アクセス動作を終了するか否か判断し（ステップＳ１１１０）、アクセス動作を継続する場合には（ステップＳ１１１０：Ｎｏ）、再び、リードライト実行部１１２６にデータの読み出しを実行させる（ステップＳ１１０２）。例えば、リードライトコントローラ１１２０は、リードライト実行部１２２６がリード実行信号ＲＤを送出した後の、内部クロック信号ＩＣＫの次の立ち下がりに同期してカウントアップ信号ＣＰをカウンタ１１３０に送出する。このとき、カウントアップ信号ＣＰに従って、カウンタ１１３０のカウンタ値が１つカウントアップされる。なお、カウンタ１１３０は、内部クロック信号ＩＣＫに相当するカウントアップ信号ＣＰの各立ち下がりタイミング（カウントアップタイミング）で、毎周期カウンタ値をカウントアップする。
したがって、ライト制御部１１２４は、読み出しデータと入力データとが不一致となる（ステップＳ１１０６：Ｎｏ）まで、データの読み出し処理（ステップＳ１１０２）および入力データとの比較処理（ステップＳ１１０４）を繰り返す。
なお、ライト制御部１１２４は、上記アクセス動作の終了判断（ステップＳ１１１０）において、アクセス動作を終了すると判断される場合には（ステップＳ１１１０：Ｙｅｓ）、アドレスカウンタ１１３０のカウンタ値をリセットして（ステップＳ１１２４）、この書き込み動作を終了する。アクセス動作の終了は、チップセレクト信号＃ＣＳあるいはアクセス許可信号ＡＥＮが入力されているか否かにより、判断することができる。具体的には、判断の対象となる信号、例えば、アクセス許可信号ＡＥＮの状態が非アクティブ状態であればアクセス動作終了と判断することができる。
一方、ライト制御部１１２４は、上記読み出しデータの値と入力データの値が一致しているか否かの判断において（ステップＳ１１０６）、読み出しデータの値と入力データの値とが一致していない場合には（ステップＳ１１０６：Ｎｏ）、さらに、入力データの値が［１］であるか否か判断する（ステップＳ１１１２）。
入力データの値が［１］である場合には（ステップＳ１１１２：Ｙｅｓ）、書き込み許可フラグを設定して（ステップＳ１１１４）、リードライト実行部１１２６に書き込みデータとしての入力データの書き込みを実行させる（ステップＳ１１１６）。例えば、リードライト実行部１１２６は、内部クロック信号ＩＣＫの立ち上がりに同期してライト実行信号ＷＲをメモリアレイ１１４０に送出する。このとき、メモリアレイ１１４０の、アドレスカウンタ１１３０から送出されているアドレス信号ＡＤＤの表すアドレス値に対応する記憶領域位置の記憶領域に対して、入力データ（書き込みデータ）が書き込まれる。
そして、ライト制御部１１２４は、次のカウントアップタイミングでアドレスカウンタ１１３０のカウンタ値を１つカウントアップさせて（ステップＳ１１１８）、さらに、アクセス動作を終了するか否か判断する（ステップＳ１１２０）。
アクセス動作を継続する場合には（ステップＳ１１２０：Ｎｏ）、再び、データの書き込み処理（ステップＳ１１１６）およびアドレスのカウントアップ処理（ステップＳ１１１８）を実行させる。一方、アクセス動作を終了する場合には（ステップＳ１１２０：Ｙｅｓ）、書き込み許可フラグの設定を解除し（ステップＳ１１２２）、アドレスカウンタ１１３０のカウンタ値をリセットして（ステップＳ１１２４）、この書き込み動作を終了する。
また、ライト制御部１１２４は、上記入力データの値が［１］であるか否かの判断（ステップＳ１１１０）において、入力データの値が［１］でないと判断される場合には（ステップＳ１１１０：Ｎｏ）、アクセス動作が終了するまで（ステップＳ１１２８：Ｎｏ）、入力データの書き込みを禁止して（ステップＳ１１２６）、リードライト実行部１１２６の動作を停止させる。一方、アクセス動作を終了する場合には（ステップＳ１１２８：Ｙｅｓ）、アドレスカウンタ１１３０のカウンタ値をリセットして（ステップＳ１１２４）、この書き込み動作を終了する。
次に、上記書き込み動作による具体例を説明する。説明を容易にするため、４ビットの記憶領域に４ビットのバイナリデータを書き込場合を前提とする。例えば、４ビットの各記憶領域にデータ［１０１０ｂ］が記憶されているとする。なお、［］中の［ｂ］はバイナリデータであることを示しており、４つの［１］または［０］の値のうち、左端が最大ビット（ＭＳＢ）で右端が最小ビット（ＬＳＢ）を示している。
例えば、入力データ（書き込みデータ）［１０１０ｂ］が左端の最大ビットから順に入力されると、記憶データ［１０１０ｂ］の対応するビットと順に比較されることになる。このとき、入力データと記憶データとは各ビットの値が一致しているので、データの書き込みは行われない。
また、入力データ［１１００ｂ］が入力される場合には、記憶データ［１０１０ｂ］に対して、左から２ビット目の入力データの値が［１］で、記憶データの値が［０］で不一致であり、かつ、入力データの値は［１］であるので、入力データの値は記憶データの値よりも大きいことになる。この結果、書き込み許可フラグが設定されて、左から２ビット目の［１］、３ビット目の［０］および４ビット目の［０］が順に書き込まれて、４ビットの各記憶領域に記憶されているデータ［１０１０ｂ］が、入力データ［１１００ｂ］に書き換えられる。
さらに、入力データ［１００１ｂ］が入力される場合には、記憶データ［１０１０ｂ］に対して、左から３ビット目の入力データの値が［０］で、記憶データの値が［１］で不一致となるが、入力データの値は［０］であるので、入力データの値は記憶データの値よりも小さいことになる。この結果、書き込み許可フラグは設定されず、入力データ［１００１ｂ］の書き込みは禁止される。
以上、説明したように、第２の実施例の書き込み動作では、書き込みデータとしての入力データの値が、記憶データの値よりも大きい場合においてのみ、データの書き換えを行うことができ、書き込みデータが記憶データよりも小さい場合には、書き込みを禁止することができる。これにより、あらかじめ定められたデータ条件による書き込み以外の書き込みを防止することができる。
なお、上記第２の実施例の書き込み動作では、書き込みデータと記憶データとが一致している場合には、入力データの書き込みが行われないこととして説明したが、一致している場合にも書き込み許可フラグを設定して入力データの書き込みを行い、書き込みデータの方が記憶データよりも小さい場合においてのみデータの書き込みを禁止するようにしてもよい。
また、上記第２の実施例の書き込み動作では、１ビット単位で順にデータを書き込むことを前提に説明したが、ｎビット単位のデータをまとめて一度に書き込むようにしてもよい。ただし、このようにする場合には、ｎビットのデータが全て入力されるまで、各ビットの入力データを保持するためのデータバッファを備える必要がある。
ところで、第２の実施例の書き込み動作は、「書き込みデータが記憶データよりも大きい」というデータ条件を満たす場合においてのみ、データの書き換みを可能とするものである。しかしながら、ライト実行信号ＷＲの発生期間を短くするように、例えば、ライト実行信号ＷＲの発生の基準となるクロック信号ＣＬＫのタイミングを変化させて書き込み動作を行わせた場合には、データ条件を満たさないデータを書き込めてしまう可能性がある。そこで、以下では、この不具合に対応させた実施例の半導体メモリ装置について説明を加える。
・第３の実施例：
半導体メモリ装置の構成：
第３の実施例に係る半導体メモリ装置も、第２実施例と同様に、不揮発的に記憶内容を保持すると共に１ビット単位にて先頭アドレスからシーケンシャルにアクセスされるＥＥＰＲＯＭであるとする。
図１２は、第３の実施例に係る半導体メモリ装置の内部回路構成を示すブロック図である。この半導体メモリ装置２０Ａは、アクセスコントローラ１２１０、リードライトコントローラ１２２０、アドレスカウンタ１２３０およびメモリアレイ１２４０に加えて、データバッファ１２２８および減算器１２３２を備えている。
アクセスコントローラ１２１０、アドレスカウンタ１２３０およびメモリアレイ１２４０は、第２の実施例の半導体メモリ装置（図１０参照。）のアクセスコントローラ１１１０、アドレスカウンタ１１３０およびメモリアレイ１１４０と同じである。
データバッファ１２２８は、リードライトコントローラ１２２０から入力されるラッチ信号ＤＬＴに従って、アクセスコントローラ１２１０からの入力データ信号ＩＤＡをラッチするとともに、ラッチデータを書き込みデータ信号ＷＤＡとしてメモリアレイ１１４０に送出する。
減算器１２３２は、リードライトコントローラ１２２０からの減算信号ＤＥＣに従って、アドレスカウンタ１２３０のカウンタ値で表されるアドレス（「非減算アドレス」と呼ぶ。）、あるいは、カウンタ値を減算した値で表されるアドレス（「減算アドレス」と呼ぶ。）を、アドレス信号ＡＤＤとしてメモリアレイ１１４０に送出する。
リードライトコントローラ１２２０は、リード制御部１２２２、ライト制御部１２２４およびリードライト実行部１２２６を備えており、基本的には、第２の実施例のリードライトコントローラ１１２０と同様に、アクセス（データの読み出しあるいはデータの書き込み）を実際に制御する。リード制御部１２２２およびリードライト実行部１２２６は、第２の実施例のリード制御部１１２２およびリードライト実行部１１２６と同じである。
ライト制御部１２２４は、アドレスカウンタ１２３０、リードライト実行部１２２６、データバッファ１２２８および減算器１２３２の動作を制御して、後述するデータの書き込み動作を制御する。
なお、本実施例の半導体メモリ装置の特徴も、ライト制御部１２２４の制御によるデータの書き込み動作の部分にあり、リード制御部１１２２によるデータの読み出し動作の部分については、従来の半導体メモリ装置と同様であるので、以下では、ライト制御部１２２４によるデータの書き込み動作について説明を加える。
書き込み動作：
前提として、第２の実施例における書き込み動作の場合と同様に、データ信号ＤＡとしてデータ信号端子ＩＯを介して順に入力される複数ビットのデータは、必ず最大ビット（ＭＳＢ）から順に１ビット単位で入力され、メモリアレイ１２４０の記憶領域位置も最大ビットに関連付けられたアドレスから順番にアクセスされることとする。
図１３は、第３の実施例におけるデータの書き込み動作の手順を示すフローチャートである。この動作は、第２の実施例の場合と同様に、アクセスコントローラ１２１０からリードライトコントローラ１２２０にアクセス許可信号ＡＥＮが入力されるとともに、書き込みアクセス開始信号ＷＲＳが入力される場合に、ライト制御部１２２４によって実行される。
書き込み動作を開始すると、ライト制御部１２２４は、まず、リードライト実行部１２２６にデータの読み出しを実行させる（ステップＳ１２０２）。例えば、リードライト実行部１２２６は、内部クロック信号ＩＣＫの立ち下がりに同期してリード実行信号ＲＤをメモリアレイ１２４０に送出する。このとき、リード実行信号ＲＤに従って、メモリアレイ１２４０の、アドレスカウンタ１２３０から送出されているアドレス信号ＡＤＤの表すアドレス値に対応する記憶領域位置の記憶領域から、記憶されているデータ（記憶データ）が読み出される。なお、リード実行信号ＲＤの送出は、以下で説明する他の読み出し処理においても、内部クロック信号ＩＣＫの立下りに同期して行われることとする。
そして、ライト制御部１２２４は、上記のようにして読み出されたメモリアレイ１２４０からの読み出しデータと、入力データとを比較し（ステップＳ１２０４）、読み出しデータの値と入力データの値とが一致しているか否かを判断する（ステップＳ１２０６）。
読み出しデータの値と入力データの値とが一致している場合には（ステップＳ１２０６：Ｙｅｓ）、ライト制御部１２２４は、データバッファ１２２８に入力データをラッチさせた（ステップＳ１２０８）後、アドレスカウンタ１２３０のカウンタ値を１つカウントアップさせ（ステップＳ１２１０）、さらに、アクセス動作を終了するか否か判断し（ステップＳ１２１２）、アクセス動作を継続する場合には（ステップＳ１２１２：Ｎｏ）、再び、リードライト実行部１１２６にデータの読み出しを実行させる（ステップＳ１２０２）。例えば、リードライトコントローラ１２２０は、リードライト実行部１２２６がリード実行信号ＲＤを送出した後の、内部クロック信号ＩＣＫの次の立ち上がりに同期してラッチ信号ＤＬＴをデータバッファ１２２８に送出する。このとき、ラッチ信号ＤＬＴに従って、アクセスコントローラ１１１０から送出されている入力データ信号ＩＤＡの表すデータ（入力データ）がデータバッファ１２２８にラッチされる。さらに、リードライトコントローラ１２２０は、リードライト実行部１２２６がラッチ信号ＤＬＴをデータバッファ１２２８に送出した後の、内部クロック信号ＩＣＫの次の立ち下がりに同期してカウントアップ信号ＣＰをカウンタ１２３０に送出する。このとき、カウントアップ信号ＣＰに従って、カウンタ１２３０のカウンタ値が１つカウントアップされる。なお、データバッファ１２２８は、内部クロック信号ＩＣＫの各立ち上がりタイミング（ラッチタイミング）で、毎周期入力データをラッチする。また、カウンタ１２３０は、内部クロック信号ＩＣＫに相当するカウントアップ信号ＣＰの各立ち下がりタイミング（カウントアップタイミング）で、毎周期カウンタ値をカウントアップする。
したがって、ライト制御部１２２４は、読み出しデータと入力データとが不一致となるまで（ステップＳ１２０６：Ｎｏ）、データの読み出し処理（ステップＳ１２０２）および入力データとの比較処理（ステップＳ１２０４）を繰り返す。
なお、ライト制御部１２２４は、上記アクセス動作の終了判断（ステップＳ１２１２）において、アクセス動作を終了すると判断される場合には（ステップＳ１２１２：Ｙｅｓ）、アドレスカウンタ１２３０のカウンタ値をリセットして（ステップＳ１２５０）、この書き込み動作を終了する。アクセス動作の終了は、チップセレクト信号＃ＣＳあるいはアクセス許可信号ＡＥＮが入力されているか否かにより、判断することができる。具体的には、判断の対象となる信号、例えば、アクセス許可信号ＡＥＮの状態が非アクティブ状態であればアクセス動作終了と判断することができる。
一方、ライト制御部１２２４は、上記読み出しデータの値と入力データの値とが一致しているか否かの判断において（ステップＳ１２０６）、読み出しデータの値と入力データの値とが一致していないと判断される場合には（ステップＳ１２０６：Ｎｏ）、さらに、入力データの値が［１］であるか否か判断する（ステップＳ１２１４）。
入力データの値が［１］である場合には（ステップＳ１２１４：Ｙｅｓ）、書き込み許可フラグを設定して（ステップＳ１２１６）、次のラッチタイミングでデータバッファ１２２８に入力データをラッチさせ（ステップＳ１２１８）、また、リードライト実行部１２２６にデータの書き込みを実行させる（ステップＳ１２２０）。例えば、リードライトコントローラ１２２０は、リードライト実行部１２２６がリード実行信号ＲＤを送出した後の、内部クロック信号ＩＣＫの次の立ち上がりに同期してラッチ信号ＤＬＴをデータバッファ１２２８に送出する。このとき、ラッチ信号ＤＬＴに従って入力データがデータバッファ１２２８にラッチされる。また、リードライト実行部は、リード実行信号ＲＤを送出した後の、内部クロック信号ＩＣＫの次の立ち上がりに同期してライト実行信号ＷＲをメモリアレイ１２４０に送出する。このとき、メモリアレイ１２４０の、アドレスカウンタ１２３０から送出されているアドレス信号ＡＤＤの表すアドレス値に対応する記憶領域位置の記憶領域に対して、入力データ（書き込みデータ）が書き込まれる。
そして、ライト制御部１２２４は、次のアドレスカウントアップタイミングでアドレスカウンタ１２３０のカウンタ値を１つカウントアップさせる（ステップＳ１２２０）。
次に、ライト制御部１２２４は、減算器１２３２に、アドレスカウンタ１２３０のカウンタ値（アドレス値）から［１］を減算した値のアドレス（減算アドレス）を、読み出しアドレスとして設定させ（ステップＳ１２２４）、リードライト実行部１２２６にデータの読み出しを実行させる（ステップＳ１２２６）。
そして、ライト制御部１２２４は、読み出しデータと、書き込みデータに相当し、データバッファ１２２８にラッチされているデータ（ラッチデータ）と、を比較し（ステップＳ１２２８）、読み出しデータの値とラッチデータの値とが一致しているか否かを判断する（ステップＳ１２３０）。
読み出しデータの値とラッチデータの値とが一致している場合には（ステップＳ１２３０：Ｙｅｓ）、まず、次のラッチタイミングでデータバッファ１２２８に入力データをラッチさせ（ステップＳ１２３２）、減算器１２３２に、アドレスカウンタ１２３０のカウンタ値のアドレス（非減算アドレス）を書き込みアドレスとして設定させて（ステップＳ１２３４）、リードライト実行部１１２６に書き込みデータとしての入力データの書き込みを実行させる（ステップＳ１２３６）。
そして、ライト制御部１２２４は、次のカウントアップタイミングでアドレスカウンタ１２３０のカウンタ値を１つカウントアップさせて（ステップＳ１２３８）、さらに、アクセス動作を終了するか否か判断する（ステップＳ１２４０）。
アクセス動作を継続する場合には（ステップＳ１２４０：Ｎｏ）、再び、入力データのラッチ処理（ステップＳ１２３２）からアドレスカウントアップ処理（ステップＳ１２３８）までを実行させる。一方、アクセス動作を終了する場合には（ステップＳ１２４０：Ｙｅｓ）、書き込み許可フラグの設定を解除し（ステップＳ１２４２）、アドレスカウンタ１２３０のカウンタ値をリセットして（ステップＳ１２５０）、この書き込み動作を終了する。
また、ライト制御部１２２４は、上記読み出しデータの値とラッチデータの値とが一致しているか否かの判断（ステップＳ１２３０）において、読み出しデータの値とラッチデータの値とが一致していない場合には（ステップＳ１２３０：Ｎｏ）、書き込み許可フラグの設定を解除し（ステップＳ１２４４）、アクセス動作が終了するまで（ステップＳ１２４８：Ｎｏ）、入力データの書き込みを禁止して（ステップＳ１２４６）、リードライト実行部１２２６の動作を停止させる。一方、アクセス動作を終了する場合には（ステップＳ１２４８：Ｙｅｓ）、アドレスカウンタ１２３０のカウンタ値をリセットして（ステップＳ１２５０）、この書き込み動作を終了する。
次に、上記書き込み動作による具体例を説明する。説明を容易にするため、４ビットの記憶領域に４ビットのデータを書き込場合を前提とする。例えば、４ビットの各記憶領域にデータ［１０１０ｂ］が記憶されているとする。なお、［］中の［ｂ］はバイナリデータであることを示しており、４つの［１］または［０］の値のうち、左端が最大ビット（ＭＳＢ）で右端が最小ビット（ＬＳＢ）を示している。
例えば、入力データ（書き込みデータ）［１１００ｂ］が左端の最大ビットから順に入力されると、記憶データ［１０１０ｂ］の対応するビットと順に比較されることになる。このとき、左から２ビット目の入力データの値が［１］で、記憶データの値が［０］で不一致であり、かつ、入力データの値は［１］であるので、この入力データの値は記憶データの値よりも大きいことになる。この結果、書き込み許可フラグが設定されて、２ビット目から４ビット目までの各ビットの入力データの書き込みを順に実行する。ここで、まず、左から２ビット目の入力データを書き込んだ後、その書き込まれたデータを読み出して、読み出しデータの値が［０］であった場合には、書き込みデータの値［１］が書き込まれていないことになるので、３ビット目および４ビット目の書き込みが禁止されることになる。
以上、説明したように、第３の実施例の書き込み動作では、書き込みデータとしての入力データと記憶データとしての記憶データとを、最大ビット側から順にビット単位で大小比較し、入力データの方が大きい場合には、書き込みを許可し、そのビットのデータを書き込んだ後、そのデータが正しく書き込まれているか否か検査する。そして、正しく書き込まれていない場合には、書き込み許可を解除して、以降の書き込みを禁止することができる。これにより、あらかじめ定められたデータ条件による書き込み以外の書き込みの防止を第２の実施例の場合よりもさらに強化することができる。
書き込み動作の変形例：
上記第３の実施例の書き込み動作は、書き込み動作を１ビット単位で順に実行することを前提に説明したが、ｎビット単位（ｎは２以上の整数）のデータをまとめて一度に書き込むようにしてもよい。
図１４および図１５は、第３の実施例の変形例としてのデータの書き込み動作の手順を示すフローチャートである。この動作は、図１３に示した書き込み動作におけるステップＳ１２１８からステップＳ１２４４までを、ステップＳ１３０２からステップＳ１３４０までに変更したものであり、変更している点以外の処理は同じである。以下では、変更した処理についてのみ説明を加えることとする。
ライト制御部１２２４は、書き込み許可フラグを設定すると（ステップＳ１２１６）、アドレスカウンタ１２３０から出力されるアドレスの下位ｎビット（Ａ０，Ａ１，．．．，Ａｎ−１）の各値が全て［１］となるまで（ステップＳ１３０４：Ｎｏ）、順に入力される入力データを各ラッチタイミングでデータバッファ１２２８にラッチさせ（ステップＳ１３０２）、各アドレスカウントアップタイミングでアドレスカウンタ１２３０のカウンタ値を順にカウントアップさせる（ステップＳ１３０６）。そして、下位ｎビットのアドレスの各値が全て［１］となった場合には（ステップＳ１３０４：Ｙｅｓ））、リードライト実行部１２２６にデータバッファ１２２８にラッチされているｎビットのラッチデータの書き込みをまとめて実行させ（ステップＳ１３０８）、次のアドレスカウントアップタイミングでアドレスカウンタ１２３０のカウンタ値を１つカウントアップさせる（ステップＳ１３１０）。
次に、ライト制御部１２２４は、減算器１２３２に、アドレスカウンタ１２３０のカウンタ値（アドレス値）から［ｎ］を減算した値の減算アドレスを、読み出しアドレスとして設定させ（ステップＳ１３１２）、リードライト実行部１２２６にデータの読み出しを実行させる（ステップＳ１３１４）。
そして、ライト制御部１２２４は、読み出しデータと、書き込みデータに相当し、データバッファ１２２８にラッチされているデータ（ラッチデータ）と、を比較し（ステップＳ１３１６）、読み出しデータの値とラッチデータの値とが一致しているか否かを判断する（ステップＳ１３１８）。
読み出しデータの値とラッチデータの値とが一致していない場合には（ステップＳ１３１８：Ｎｏ）、書き込み許可フラグの設定を解除して（ステップＳ１３２６）、入力データの書き込みを禁止する（ステップＳ１２４６）。一方、読み出しデータの値とラッチデータの値とが一致している場合には（ステップＳ１３１８：Ｙｅｓ）、アドレスカウンタ１２３０から出力される下位ｎビットの読み出しアドレスの各値が全て［１］となるまで（ステップＳ１３２０：Ｎｏ）、アドレスのカウントアップ処理（ステップＳ１３２２）、入力データのラッチ処理（ステップＳ１３２４）、読み出しアドレスの設定処理（ステップＳ１３１２）、データの読み出し処理（ステップＳ１３１４）、ラッチデータとの比較処理（ステップＳ１３１６）および判断処理（ステップＳ１３１８）を繰り返す。一方、下位ｎビットの読み出しアドレスの各値が全て［１］となった場合には（ステップＳ１３２０：Ｙｅｓ）、減算器１２３２に、アドレスカウンタ１２３０のカウンタ値で表される非減算アドレスを、書き込みアドレスとして設定させ（ステップＳ１３２８）、リードライト実行部１１２６にデータバッファ１２２８にラッチされているｎビットのラッチデータの書き込みをまとめて実行させる（ステップＳ１３３０）。
次に、ライト制御部１２２４は、下位ｎビットの書き込みアドレスの各ビット値が全て［１］となるまで（ステップＳ１３３２：Ｎｏ）、各アドレスカウントアップタイミングでアドレスカウンタ１２３０のカウンタ値を１つカウントアップさせ（ステップＳ１３３４）、さらに、アクセス動作を終了しない場合には（ステップＳ１３３６：Ｎｏ）、入力データを対応するラッチタイミングでデータバッファ１２２８にラッチさせる（ステップＳ１３３８）。下位ｎビットの書き込みアドレスの各ビット値が全て［１］となった場合には（ステップＳ１３３２：Ｙｅｓ）、リードライト実行部１１２６にデータバッファ１２２８にラッチされているｎビットのラッチデータの書き込みをまとめて実行させる（ステップＳ１３３０）。
そして、アクセス動作を終了する場合には（ステップＳ１３３６：Ｙｅｓ）、書き込み許可フラグの設定を解除して（ステップＳ１３４０）、入力データの書き込みを禁止する（ステップＳ１２４６）。
以上説明した書き込み動作では、ｎビットのデータをまとめて書き込むことができる。
第２および第３の実施例の変形例：
（１）上記第２および第３の実施例では、メモリアレイの容量を２５６ビットとして説明しているが、これに限定されるものでなく、格納すべきデータ量に応じて適宜変更され得るものである。
（２）上記第２および第３の実施例では、書き込みデータが記憶データよりも大きい場合において書き込みを許可し、書き込みデータが記憶データよりも小さい場合において書き込みを禁止する場合を例に説明したが、書き込みデータが記憶データよりも小さい場合において書き込みを許可し、書き込みデータが記憶データよりも小さい場合において書き込みを禁止するようにすることも可能である。
（３）上記第２および第３の実施例では、半導体メモリ装置としてＥＥＰＲＯＭを用いて説明したが、書き換えが可能であると共に、格納データを不揮発的に維持することができるメモリ装置であれば、ＥＥＰＲＯＭに限られず、複数ビット単位で読み出しまたは書き込みが実行されるメモリ装置であってもよい。
以上、いくつかの実施例に基づき本発明を説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることはもちろんである。
【図１】
2006129779.tif 000002
【図２】
2006129779.tif 000003
【図３】
2006129779.tif 000004
【図４】
2006129779.tif 000005
【図５】
2006129779.tif 000006
【図６】
2006129779.tif 000007
【図７】
2006129779.tif 000008
【図８】
2006129779.tif 000009
【図９】
2006129779.tif 000010
【図１０】
2006129779.tif 000011
【図１１】
2006129779.tif 000012
【図１２】
2006129779.tif 000013
【図１３】
2006129779.tif 000014
【図１４】
2006129779.tif 000015
【図１５】
2006129779.tif 000016
【国際調査報告】
2006129779.tif 000017
2006129779.tif 000018
2006129779.tif 000019
2006129779.tif 000020