(57)【要約】【課題】書き込みデータにおける値の偏りを平準化する際に要する時間を短縮する。【解決手段】半導体記憶装置は、第１の値と、第２の値とのいずれかを示すデータを記憶するメモリセルを複数有するメモリアレイと、メモリアレイに記憶させたデータにおいて、第１の値の数と、第２の値の数とのいずれが多いかを判定する転送済データ判定部と、外部から入力されるデータのデータ量がメモリアレイへの書き込み単位に達するごとに、メモリアレイに書き込むデータにおいて、第１の値と、第２の値とのいずれの値が多く含まれているかを判定する書込データ判定部と、転送データ判定部の判定結果及び書込データ判定部の判定結果に応じて、各ビットの値を反転させた書き込みデータと、書き込みデータとのいずれかを選択してメモリアレイに記憶させる書込データ選択部を備えている。【選択図】図１
2012133831.tif 000002
【特許請求の範囲】
【請求項１】
第１の値と、第２の値とのいずれかを示すデータを記憶するメモリセルを複数有するメモリアレイと、
前記メモリアレイに記憶させたデータにおいて、前記第１の値の数と、前記第２の値の数とのいずれが多いかを判定する転送済データ判定部と、
外部から入力されるデータのデータ量が前記メモリアレイへの書き込み単位に達するごとに、前記メモリアレイに書き込むデータにおいて、前記第１の値と、前記第２の値とのいずれの値が多く含まれているかを判定する書込データ判定部と、
前記転送済データ判定部が前記第１の値の数が多いと判定し、かつ前記書込データ判定部が前記第１の値の数が多いと判定した場合、あるいは、前記転送済データ判定部が前記２の数が多いと判定し、かつ前記書込データ判定部が前記２の値の数が多いと判定した場合、前記書き込みデータが有する各２値のデータを反転したデータを前記メモリアレイに記憶させ、前記転送済データ判定部が前記第１の値の数が多いと判定し、かつ前記書込データ判定部が前記第２の値の数が多いと判定した場合、あるいは、前記転送済データ判定部が前記２の数が多いと判定し、かつ前記書込データ判定部が前記１の値の数が多いと判定した場合、前記書き込みデータを前記メモリアレイに記憶させる書込データ選択部と
を具備していることを特徴とする半導体記憶装置。
【請求項２】
前記メモリアレイには、
前記書き込みデータを反転して前記メモリセルに記憶させたか否かを示す反転情報と、前記書き込みデータとが対応付けて記憶される
ことを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記書き込みデータと、当該書き込みデータに対応する前記反転情報とを前記複数のメモリセルから読み出し、読み出した前記反転情報に基づいて、読み出した前記書き込みデータと、読み出した前記書き込みデータを反転したデータとのいずれかを外部に出力するデータ読出部
を更に具備していることを特徴とする請求項２に記載の半導体記憶装置。
【請求項４】
第１の値と、第２の値とのいずれかを示すデータを記憶するメモリセルを複数有するメモリアレイを具備する半導体記憶装置における記憶方法であって、
前記メモリアレイに記憶させたデータにおいて、前記第１の値の数と、前記第２の値の数とのいずれが多いかを判定する転送済データ判定ステップと、
外部から入力されるデータのデータ量が前記メモリアレイへの書き込み単位に達するごとに、前記メモリアレイに書き込むデータにおいて、前記第１の値と、前記第２の値とのいずれの値が多く含まれているかを判定する書込データ判定ステップと、
前記転送済データ判定ステップにおいて前記第１の値の数が多いと判定し、かつ前記書込データ判定ステップにおいて前記第１の値の数が多いと判定した場合、あるいは、前記転送済データ判定ステップにおいて前記２の数が多いと判定し、かつ前記書込データ判定ステップにおいて前記２の値の数が多いと判定した場合、前記書き込みデータが有する各２値のデータを反転したデータを前記メモリアレイに記憶させ、前記転送済データ判定ステップにおいて前記第１の値の数が多いと判定し、かつ前記書込データ判定ステップにおいて前記第２の値の数が多いと判定した場合、あるいは、前記転送済データ判定ステップにおいて前記２の数が多いと判定し、かつ前記書込データ判定ステップにおいて前記１の値の数が多いと判定した場合、前記書き込みデータを前記メモリアレイに記憶させる書込データ選択ステップと
を有していることを特徴とする記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置、及び記憶方法に関する。
【背景技術】
【０００２】
デジタルカメラや、携帯電話、携帯型オーディオプレーヤーなどの普及により、大容量の半導体記憶装置の需要が拡大している。この半導体記憶装置として、ＮＡＮＤ型フラッシュメモリが広く用いられている。
また、製造プロセスの微細化に伴い、ＮＡＮＤ型フラッシュメモリのビットあたりの単価が低下しており、ＨＤＤ（Hard Disk Drive）などの補助記憶装置の換わりに用いられるなど、ＮＡＮＤ型フラッシュメモリの用途が広がっている。
【０００３】
ＮＡＮＤ型フラッシュメモリは、複数のメモリセル（フローティングゲート型を有するトランジスタ）が直列に接続されたＮＡＮＤストリングを複数含み構成されている。そのため、ＮＡＮＤストリングのメモリセルからデータを読み出す際には、読み出し対象のメモリセル以外のゲートに所定の電圧を印加してドレイン−ソースを導通状態にするとともに、読み出し対象のメモリセルのゲートに読み出し用の電圧を印加し、各ＮＡＮＤストリングに流れる電流に応じて、読み出し対象のメモリセルに記憶されているデータを判定する。
【０００４】
各ＮＡＮＤストリングに記憶されている「０」データと「１」データの値に偏りが生じると、その偏りに応じてドレイン−ソース間に流れる電流量が変化し、メモリセルに記憶されているデータを正しく読み出すことができず、信頼性が低下してしまうことがある。
【０００５】
そこで、特許文献１に記載されている技術は、書き込む２値データの偏り具合に応じて、書き込むデータに対して所定の演算をするスクランブルを行い、「０」又は「１」のいずれかの値に偏らないように、平準化を行っている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１０８０２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載されている技術では、所定の単位（ページ単位）ごとに、外部のホストから入力された書き込みデータにおける「０」又は「１」の偏りの割合を算出し、算出した割合に応じて選択されるスクランブル方法により、「０」と「１」との偏りを平準化している。
すなわち、ホストから順次入力されるデータが、１ページ分入力されてから、スクランブル方法を選択し、選択したスクランブル方法に基づいてスクランブルを行うため、書き込むデータを平準化するまでに時間を要してしまうという問題があった。
【０００８】
本発明は、上記問題を解決すべくなされたもので、その目的は、書き込みデータにおける値の偏りを平準化する際に要する時間を短縮することができる半導体記憶装置、及び記憶方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記問題を解決するために、本発明は、第１の値と、第２の値とのいずれかを示すデータを記憶するメモリセルを複数有するメモリアレイと、前記メモリアレイに記憶させたデータにおいて、前記第１の値の数と、前記第２の値の数とのいずれが多いかを判定する転送済データ判定部と、外部から入力されるデータのデータ量が前記メモリアレイへの書き込み単位に達するごとに、前記メモリアレイに書き込むデータにおいて、前記第１の値と、前記第２の値とのいずれの値が多く含まれているかを判定する書込データ判定部と、前記転送済データ判定部が前記第１の値の数が多いと判定し、かつ前記書込データ判定部が前記第１の値の数が多いと判定した場合、あるいは、前記転送済データ判定部が前記２の数が多いと判定し、かつ前記書込データ判定部が前記２の値の数が多いと判定した場合、前記書き込みデータが有する各２値のデータを反転したデータを前記メモリアレイに記憶させ、前記転送済データ判定部が前記第１の値の数が多いと判定し、かつ前記書込データ判定部が前記第２の値の数が多いと判定した場合、あるいは、前記転送済データ判定部が前記２の数が多いと判定し、かつ前記書込データ判定部が前記１の値の数が多いと判定した場合、前記書き込みデータを前記メモリアレイに記憶させる書込データ選択部とを具備していることを特徴とする半導体記憶装置である。
この発明では、外部より入力される書き込みデータのデータ量がメモリアレイへの書き込み単位に達するごとに、転送データ判定部の判定結果及び書込データ判定部の判定結果に応じて、書き込みデータを反転させてメモリアレイに記憶させる書き込みデータの平準化を逐次行う。
【００１０】
また、本発明は、上記に記載の発明において、前記メモリアレイには、前記書き込みデータを反転して前記メモリセルに記憶させたか否かを示す反転情報と、前記書き込みデータとが対応付けて記憶されることを特徴とする。
また、本発明は、上記に記載の発明において、前記書き込みデータと、当該書き込みデータに対応する前記反転情報とを前記複数のメモリセルから読み出し、読み出した前記反転情報に基づいて、読み出した前記書き込みデータと、読み出した前記書き込みデータを反転したデータとのいずれかを外部に出力するデータ読出部を更に具備していることを特徴とする。
【００１１】
また、本発明は、第１の値と、第２の値とのいずれかを示すデータを記憶するメモリセルを複数有するメモリアレイを具備する半導体記憶装置における記憶方法であって、前記メモリアレイに記憶させたデータにおいて、前記第１の値の数と、前記第２の値の数とのいずれが多いかを判定する転送済データ判定ステップと、外部から入力されるデータのデータ量が前記メモリアレイへの書き込み単位に達するごとに、前記メモリアレイに書き込むデータにおいて、前記第１の値と、前記第２の値とのいずれの値が多く含まれているかを判定する書込データ判定ステップと、前記転送済データ判定ステップにおいて前記第１の値の数が多いと判定し、かつ前記書込データ判定ステップにおいて前記第１の値の数が多いと判定した場合、あるいは、前記転送済データ判定ステップにおいて前記２の数が多いと判定し、かつ前記書込データ判定ステップにおいて前記２の値の数が多いと判定した場合、前記書き込みデータが有する各２値のデータを反転したデータを前記メモリアレイに記憶させ、前記転送済データ判定ステップにおいて前記第１の値の数が多いと判定し、かつ前記書込データ判定ステップにおいて前記第２の値の数が多いと判定した場合、あるいは、前記転送済データ判定ステップにおいて前記２の数が多いと判定し、かつ前記書込データ判定ステップにおいて前記１の値の数が多いと判定した場合、前記書き込みデータを前記メモリアレイに記憶させる書込データ選択ステップとを有していることを特徴とする記憶方法である。
【発明の効果】
【００１２】
この発明によれば、データ量がメモリアレイへの書き込み単位に達するごとに、メモリアレイに書き込むデータに対して逐次平準化を行うので、メモリアレイに書き込むデータ全てが揃うまで待たずとも平準化を行うことができ、平準化に要する時間を短縮することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態における半導体記憶装置１の構成を示す概略ブロック図である。
【図２】本実施形態におけるデータ書込回路１４の構成を示す概略ブロック図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、本発明の実施形態における半導体記憶装置、及び記憶方法を説明する。ここで、本実施形態において、半導体記憶装置は、４キロバイト／ページで、同一ページへの書き込み制限１回（Number Of Program；ＮＯＰ＝１）のＮＡＮＤフラッシュメモリである場合を例にして説明する。また、半導体記憶装置にデータを記憶させる際、外部のホストより４キロバイトのデータが１バイト単位で入力され、８サイクルごとに、入力された８バイト（６４ビット）のデータに対して平準化を行う。
【００１５】
図１は、本実施形態における半導体記憶装置１の構成を示す概略ブロック図である。同図に示すように、半導体記憶装置１は、フラッシュ・コア１１、制御回路１２、デコーダ回路１３、データ書込回路１４、転送済回数カウンタ回路１５、転送済１データカウンタ回路１６、及びデータ読出回路１７を具備している。
【００１６】
フラッシュ・コア１１は、フローティングゲート型を有する複数のＭＯＳトランジスタ（メモリセル）を直列に接続したＮＡＮＤストリングを複数有し、各ＮＡＮＤストリングのソース端が共通ソース線に接続され、各ＮＡＮＤストリングに接続された異なるビット線を介して記憶するデータが入力されるとともに、当該ビット線を介してメモリセルに記憶されているデータを出力する。ここで、メモリセルが記憶するデータ（値）は、「１」又は「０」のいずれかのデータである。フラッシュ・コア１１は、データ書込回路１４から転送されるデータを１ページ単位で記憶する。
【００１７】
制御回路１２は、データの書き込み又はデータの読み出しを示す制御信号が外部のホストから入力され、入力された制御信号に応じて、データ書込回路１４又はデータ読出回路１７のいずれかを動作させる制御を行う。
デコーダ回路１３は、外部のホストから制御信号とともに入力されるアドレス信号ＡＤ［ｎ：０］（ｎ＞１の自然数）をデコードし、デコード結果に応じた電圧のワード信号ＷＤ［ｍ：０］（ｍ＞ｎの自然数）をフラッシュ・コア１１に出力し、データを書き込む対象のメモリセル、又はデータを読み出す対象のメモリセルを選択する。
【００１８】
データ書込回路１４は、外部のホストから１バイト（８ビット）ずつ入力される書き込みデータＷｒ［７：０］を記憶し、記憶している書き込みデータが８バイトになると、記憶している８バイトのデータＤＱ［６３：０］に、１ビットの反転情報ＤＱ［６４］を加えた６５ビットの書き込みデータｉＤＱ［６４：０］をフラッシュ・コア１１に転送して記憶させる。
このとき、データ書込回路１４は、フラッシュ・コア１１に既に転送した書き込みデータにおいて、「１」データの数（ビット数）がデータ全体の過半数以上か否か、及びホストから入力されたデータＤＱ［６３：０］が有する「１」データの数に応じて、データＤＱ［６３：０］のを反転するか否かを決定する。また、反転情報ｉＤＱ［６４］は、データＤＱ［６３：０］を反転したか否かを示す情報である。
【００１９】
転送済回数カウンタ回路１５は、データを書き込むページに対して、データ書込回路１４がフラッシュ・コア１１にデータｉＤＱ［６４：０］を転送した回数をカウントし、カウントした回数を示す転送回数信号をデータ書込回路１４に出力する。
転送済１データカウンタ回路１６は、データを書き込むページにおいて、データ書込回路１４がフラッシュ・コア１１に転送したデータのうち、「１」データの個数をカウントし、カウントした個数を示す総１データ数信号をデータ書込回路１４に出力する。なお、転送済回数カウンタ回路１５及び転送済１データカウンタ回路１６は、データを書き込むページが替わると、カウントした回数及び個数を「０」にリセットする。
【００２０】
データ読出回路１７は、フラッシュ・コア１１からデータＤＱ［６４：０］を読み出し、読み出したデータＤＱ［６４］の値に応じて、データＤＱ［６３：０］を反転して出力するか、反転せずに出力するかを選択し、データＤＱ［６３：０］を８サイクルに亘って１バイトずつ外部のホストに出力する。
【００２１】
図２は、本実施形態におけるデータ書込回路１４の構成を示す概略ブロック図である。同図に示すようにデータ書込回路１４は、書込データ記憶回路１４１、データ反転回路１４２、書込データ判定回路１４３、転送済データ判定回路１４４、データ反転決定回路１４５、及び書込データ選択回路１４６を有している。
書込データ記憶回路１４１は、１バイト（８ビット）ずつ入力される書き込みデータＷｒ［７：０］を入力された順に記憶し、記憶している書き込みデータが８バイトになると、記憶している８バイトのデータを書き込みデータＤＱ［６３：０］として、データ反転回路１４２、書込データ判定回路１４３、及び書込データ選択回路１４６に出力する。
【００２２】
データ反転回路１４２は、書込データ記憶回路１４１から入力される書き込みデータＤＱ［６３：０］の各ビットの値を反転し、反転した書き込みデータ〜ＤＱ［６３：０］を書込データ選択回路１４６に出力する。ここで、「〜」はデータを反転することを表し、書き込みデータ〜ＤＱ［６３：０］は書き込みデータＤＱ［６３：０］の各ビットの値を反転したデータを示す。
書込データ判定回路１４３は、書込データ記憶回路１４１から入力される書き込みデータＤＱ［６３：０］のうち、「１」データの数をカウントし、カウントした「１」データの数が書き込みデータＤＱ［６３：０］の半数以上であるか否かを判定し、判定結果を示す１データ数信号をデータ反転決定回路１４５に出力する。
【００２３】
転送済データ判定回路１４４には、転送済回数カウンタ回路１５から転送回数信号と、転送済１データカウンタ回路１６から総１データ数信号とが入力される。また、転送済データ判定回路１４４は、入力された転送回数信号及び総１データ数信号に基づいて、フラッシュ・コア１１に転送した書き込みデータの半数に対する「１」データの数の差分である偏りＲ（ｘ）を算出し、偏りＲ（ｘ）を示す信号をデータ反転決定回路１４５に出力する。
【００２４】
データ反転決定回路１４５には、書込データ判定回路１４３から書き込みデータＤＱ［６３：０］の半数が「１」データであるか否かを示す信号と、転送済データ判定回路１４４から偏りを示す信号とが入力される。また、データ反転決定回路１４５は、書込データ判定回路１４３及び転送済データ判定回路１４４から入力される信号に基づいて、書き込みデータＤＱ「６３：０」を反転したデータと、書き込みデータＤＱ［６３：０］とのいずれをフラッシュ・コア１１に転送するかを決定する。
また、データ反転決定回路１４５は、決定結果に基づいて、データ反転回路１４２が出力するデータＤＱ〜［６３：０］と、書込データ記憶回路１４１が出力するデータＤＱ［６３：０］とのいずれか一方を選択させ、データｉＤＱ［６３：０］としてフラッシュ・コア１１に転送させる制御を書込データ選択回路１４６に対して行う。また、データ反転決定回路１４５は、決定結果である反転情報をデータｉＤＱ［６４］としてフラッシュ・コア１１に転送する。
【００２５】
書込データ選択回路１４６は、データ反転決定回路１４５の制御に応じて、データ反転回路１４２が出力するデータＤＱ〜［６３：０］と、書込データ記憶回路１４１が出力するデータＤＱ［６３：０］とのいずれか一方を選択して、フラッシュ・コア１１に転送する。
【００２６】
次に、データ反転決定回路１４５における書き込みデータＤＱ［６３：０］を反転するか否かを決定する処理について説明する。転送済データ判定回路１４４は、データのｘ回目の転送を行う際に、フラッシュ・コア１１に転送したデータにおいて、転送したデータの半数に対する「１」データの数の偏りＲ（ｘ）を次式（１）と定義し、式（１）により偏りＲ（ｘ）算出する。
【００２７】
［数１］
Ｒ（ｘ）≡ｎＤａｔａ１−ｎＴｉｍｅｓ＊６５／２  …（１）
【００２８】
ここで、ｎＤａｔａ１は、今までにフラッシュ・コア１１に転送した「１」データの数（ビット数）であり、転送済１データカウンタ回路１６から出力される総１データ数信号が示す値である。ｎＴｉｍｅｓは、今までにフラッシュ・コア１１に書き込みデータｉＤＱ［６４：０］を転送した回数であり、転送済回数カウンタ回路１５から出力される転送回数信号が示す値である。
【００２９】
算出された偏りＲ（ｘ）が、Ｒ（ｘ）＞＝０の場合、フラッシュ・コア１１に転送したデータのうち、半分以上が「１」データであることを意味する。
このとき、データ反転決定回路１４５は、書込データ判定回路１４３が出力する信号に基づいて、書込データ記憶回路１４１から出力される書き込みデータＤＱ［６３：０］のデータのうち半分以上が「１」データであれば、書き込みデータＤＱ［６３：０］を反転させる決定をする。一方、データ反転決定回路１４５は、書込データ判定回路１４３が出力する信号に基づいて、書き込みデータＤＱ［６３：０］のデータのうち半分以上が「０」データであれば、書き込みデータＤＱ［６３：０］を反転させない決定をする。
【００３０】
具体的には、書込データ記憶回路１４１から出力される書き込みデータＤＱ［６３：０］のデータのうち、半分以上が「１」データであれば、書き込みデータＤＱ［６３：０］を反転したことを示す「１」データをｉＤＱ［６４］にし、書き込みデータＤＱ［６３：０］を反転した書き込みデータ〜ＤＱ［６３：０］をｉＤＱ［６３：０］にする。すなわち、フラッシュ・コア１１に転送するデータｉＤＱ［６４：０］は、データｉＤＱ［６４］（＝１）と、データｉＤＱ［６３：０］を連接した、ｉＤＱ［６４：０］＝｛１’ｂ１，〜ＤＱ［６３：０］｝となる。
一方、書込データ記憶回路１４１から出力される書き込みデータＤＱ［６３：０］のデータのうち、半分以上が「０」データであれば、書き込みデータＤＱ［６３：０］を反転していないことを示す「０」データをｉＤＱ［６４］にし、書き込みデータＤＱ［６３：０］をｉＤＱ［６３：０］にする。すなわち、フラッシュ・コア１１に転送するデータｉＤＱ［６４：０］は、ｉＤＱ［６４：０］＝｛１’ｂ０、ＤＱ［６３：０］｝となる。
【００３１】
Ｒ（ｘ）＞＝０の場合において、上述のように、フラッシュ・コア１１に転送するデータｉＤＱ［６４：０］を決定することにより、ｎＴｉｍｅｓは「１」増加し、ｎＤａｔａ１は最大でも「３２」（＝３１＋１）しか増加しないので、８バイトの書き込みデータをフラッシュ・コア１１に転送した後の偏りＲ（ｘ＋１）は、次式（２）のようになる。
【００３２】
［数２］
Ｒ（ｘ＋１）≦Ｒ（ｘ）＋３２−１＊６５／２＝Ｒ（ｘ）  …（２）
【００３３】
なお、式（２）において、（６５／２）の演算結果は、ビット右シフトを用いて算出することを想定して（６５／２＝３２）としている。
偏りＲ（ｘ）が非負であれば、次の８バイトを転送した後の偏りＲ（ｘ＋１）の値は、変わらないか、又は減少する。
【００３４】
また、算出された偏りＲ（ｘ）が、Ｒ（ｘ）＜の場合、フラッシュ・コア１１に転送されたデータのうち、半分未満が「１」データであることを意味する。
このとき、データ反転決定回路１４５は、書込データ記憶回路１４１から出力される書き込みデータＤＱ［６３：０］のデータのうち、半分以上が「１」データであれば、書き込みデータＤＱ［６３：０］を反転させない決定をし、半分以上が「０」データであれば、書き込みデータＤＱ［６３：０］を反転させる決定をする。
【００３５】
具体的には、書込データ記憶回路１４１から出力される書き込みデータＤＱ［６３：０］のデータのうち、半分以上が「１」データであれば、フラッシュ・コア１１に転送するデータｉＤＱ［６４：０］は、ｉＤＱ［６４：０］＝｛１’ｂ０，ＤＱ［６３：０］｝となる。
一方、書込データ記憶回路１４１から出力される書き込みデータＤＱ［６３：０］のデータのうち、半分以上が「０」データであれば、フラッシュ・コア１１に転送するデータｉＤＱ［６４：０］は、ｉＤＱ［６４：０］＝｛１’ｂ１、〜ＤＱ［６３：０］｝となる。
【００３６】
Ｒ（ｘ）＜０の場合において、上述のように、フラッシュ・コア１１に転送するデータｉＤＱ［６４：０］を決定することにより、ｎＴｉｍｅｓは「１」増加し、ｎＤａｔａ１は少なくとも「３２」（＝３１＋１）増加するので、８バイトの書き込みデータをフラッシュ・コア１１に転送した後の偏りＲ（ｘ＋１）は、次式（３）のようになる。
【００３７】
［数３］
Ｒ（ｘ＋１）≧Ｒ（ｘ）＋３２−１＊６５／２＝Ｒ（ｘ）  …（３）
【００３８】
なお、式（３）において、式（２）と同様に、（６５／２）の演算結果は、ビット右シフトを用いて行うことを想定して（６５／２＝３２）としている。
偏りＲ（ｘ）が負であれば、次の８バイトを転送した後の偏りＲ（ｘ＋１）の値は、変わらないか、又は増加する。
【００３９】
本実施形態の半導体記憶装置１において、転送済データ判定回路１４４が、フラッシュ・コア１１に転送したデータにおいて「１」データの数が半数以上であるか否かを判定し、データ反転決定回路１４５が、転送済データ判定回路１４４の判定結果と、書込データ判定回路１４３の判定結果とに基づいて、書き込みデータＤＱ［６３：０］を反転するか否かを決定する。これにより、書き込みデータが、「０」データと「１」データとのいずれかに偏ることを抑制することができる。
なお、最初の書き込みデータｉＤＱ［６４：０］を転送する際には、ｎＤａｔａ１とｎＴｉｍｅｓは「０」であるので、最も書き込みデータｉＤＱが偏るのは、ＤＱ［６３：０］の全ビットが「０」データ又は「１」データの場合である。このとき、偏りＲ（１）は、｜Ｒ（１）｜＝｜０−１＊６５／２｜＝３２となる。４キロ・バイトのデータをフラッシュ・コア１１に転送するには、５１２回（＝４０９６［バイト］／８［バイト／回］）の書き込みデータｉＤＱの転送が必要になる。
【００４０】
上述したように、偏り｜Ｒ（ｘ）｜の値は、データｉＤＱをフラッシュ・コア１１に転送するごとに、「０」に近づくか、変わらないかのいずれかであるので、ページに転送する全ての書き込みデータｉＤＱを転送し終えたときには、偏り｜Ｒ（５１２）｜＝｜ｎＤａｔａ１−５１２＊６５／２｜≦３２となる。
したがって、１ページ（５１２×６５［セル］）に転送される「１」データの数は、次式（４）で表される範囲内の数になる。
【００４１】
［数４］
−３２≦（ｎＤａｔａ１−５１２×６５÷２）≦３２  …（４）
【００４２】
式（４）を変形すると、「（１ページにおけるセル数の半分の数）−３２≦ｎＤａｔａ１≦（１ページにおけるセル数の半分の数）＋３２」となり、ページ内の書き込みデータが「０」データと「１」データとのいずれかに偏ることを抑制することができる。
【００４３】
続いて、フラッシュ・コア１１からデータを読み出す際におけるデータ読出回路１７の動作について説明する。
データ読出回路１７は、フラッシュ・コア１１から実データ（ｉＤＱ［６３：０］）と、反転情報（ｉＤＱ［６４］）とを読み出し、読み出した反転情報（ｉＤＱ［６４］）が「０」の場合、読み出した実データ（ｉＤＱ［６３：０］）を外部のホストに１バイトずつ順次出力する。
一方、データ読出回路１７は、読み出した反転情報（ｉＤＱ［６４］）が「１」の場合、読み出した実データ（ｉＤＱ［６３：０］）を反転したデータ（〜ｉＤＱ［６３：０］）を外部のホストに１バイトずつ順次出力する。
【００４４】
なお、データ読出回路１７において、実データ（ｉＤＱ［６３：０］）の反転を、１バイトごとに行うようにし、データ読出回路１７の回路規模を小さくするようにしてもよい。また、データ読出回路１７は、データ書込回路１４の動作検証などのために、フラッシュ・コア１１から読み出したデータｉＤＱ［６４：０］を出力するようするテストモードを備えてもよい。
【００４５】
上述したように、本実施形態の半導体記憶装置１は、外部のホストから書き込みデータが８バイト入力されるごとに、データ書込回路１４が今までにフラッシュ・コア１１に転送した書き込みデータにおける「１」データの偏りに基づいて、書き込みデータを反転するか否かを決定してフラッシュ・コア１１に当該書き込みデータを転送する。
このように、書き込みデータが８バイト入力されるたびに、書き込みデータに対して逐次平準化を行うため、１ページ分の書き込みデータ全てが外部のホストより入力されるまで待つ必要がなくなり、書き込みデータにおける値の偏りを平準化に要する時間を短縮することができる。
【００４６】
また、「１」データと「０」データとの偏りを平準化することにより、フラッシュ・コア１１からデータを読み出す際に共通ソース線に流れる電流負荷の変動を抑制することができる。これにより、共通ソース線の電流負荷の変動により生じる読み出し特性のばらつきを抑えることができ、書き込みにおけるメモリセルのデータの検証、及びメモリセルからのデータの読み出しの精度を向上させることができる。
【００４７】
また、本実施形態の半導体記憶装置１は、特許文献１に記載されている技術のように、書き込みデータにおける値の偏りを平準化するためのテーブルを用いることなく、小規模な順序回路を用いて書き込みデータにおける値の偏りを平準化するための半導体記憶装置１の回路規模を小さくすることができる。
例えば、データ書込回路１４は、６４ビットの書き込みデータＤＱ［６３：０］の極性を切り替えるマルチプレクサと、１７ビットの全加算器とを用いて構成できる。転送済回数カウンタ回路１５は９ビットの同期全加算器を用いて構成でき、転送済１データカウンタ回路１６は１６ビットの同期全加算器を用いて構成できる。データ読出回路１７は、最も少ない場合で、８ビットのデータの極性を切り替えるマルチプレクサを用いて構成できる。このとき、フラッシュ・コア１１において、反転情報を記憶するための領域として、６４ビット当たり１ビット、すなわち、１．６％の記憶領域（メモリセル）を追加するだけで構成できる。
このように、本実施形態の半導体記憶装置１において、書き込みデータの平準化に要する回路規模の増加量を抑えることができ、回路の実装面積の増加量を低減させることができる。
【００４８】
また、特許文献１に記載されている技術では、入力された１ページ分のデータのさまざまな組合せ、すなわち、「０」と「１」とのさまざまな組合せに対応できるようにスクランブルテーブルを設ける必要があるため、スクランブルテーブル自体を信頼性の高い不揮発性メモリに記憶するなどの対応が必要となり、回路規模及び実装面積の増加を招いている。一方、本実施形態における半導体記憶装置１は、同一のページに転送したデータに含まれる「１」の数に基づいて、次にフラッシュ・コア１１に転送する８バイト分のデータの各ビットを反転するか否かを決定し、８バイトのデータを反転するという簡便な構成を用いて、フラッシュ・コア１１に転送する「０」データと「１」データとの偏りを平準化している。
これにより、半導体記憶装置１は、大規模な回路を追加することなく、フラッシュ・コア１１に転送するデータにおける「０」データと「１」データとの極性分布を平準化することができる。
【００４９】
なお、本実施形態における、半導体記憶装置１とホストとの間のデータ幅、フラッシュ・コア１１におけるページあたりのバイト数、データ書込回路１４及びデータ読出回路１７とフラッシュ・コア１１との間のデータ幅などは、一例であって、半導体記憶装置１を使用する目的や、要求される仕様に応じて、適宜変更してもよい。
また、本実施形態では、不揮発性の半導体記憶領域を有するフラッシュ・コア１１に対して書き込むデータを平準化する構成について説明したが、これに限ることなく、記憶させるデータにおける偏りの平準化が要求される記憶装置に対して用いるようにしてもよい。
【符号の説明】
【００５０】
１…半導体記憶装置
１１…フラッシュ・コア（メモリアレイ）
１２…制御回路
１３…デコーダ回路
１４…データ書込回路
１５…転送済回数カウンタ回路
１６…転送済１データカウンタ回路
１７…データ読出回路
１４１…書込データ記憶回路
１４２…データ反転回路
１４３…書込データ判定回路
１４４…転送済データ判定回路
１４５…データ反転決定回路
１４６…書込データ選択回路
【図１】
2012133831.tif 000003
【図２】
2012133831.tif 000004