JP2012133831A - 半導体記憶装置、及び記憶方法 - Google Patents
半導体記憶装置、及び記憶方法 Download PDFInfo
- Publication number
- JP2012133831A JP2012133831A JP2010283125A JP2010283125A JP2012133831A JP 2012133831 A JP2012133831 A JP 2012133831A JP 2010283125 A JP2010283125 A JP 2010283125A JP 2010283125 A JP2010283125 A JP 2010283125A JP 2012133831 A JP2012133831 A JP 2012133831A
- Authority
- JP
- Japan
- Prior art keywords
- data
- write data
- write
- values
- memory array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Read Only Memory (AREA)
Abstract
【課題】書き込みデータにおける値の偏りを平準化する際に要する時間を短縮する。
【解決手段】半導体記憶装置は、第1の値と、第2の値とのいずれかを示すデータを記憶するメモリセルを複数有するメモリアレイと、メモリアレイに記憶させたデータにおいて、第1の値の数と、第2の値の数とのいずれが多いかを判定する転送済データ判定部と、外部から入力されるデータのデータ量がメモリアレイへの書き込み単位に達するごとに、メモリアレイに書き込むデータにおいて、第1の値と、第2の値とのいずれの値が多く含まれているかを判定する書込データ判定部と、転送データ判定部の判定結果及び書込データ判定部の判定結果に応じて、各ビットの値を反転させた書き込みデータと、書き込みデータとのいずれかを選択してメモリアレイに記憶させる書込データ選択部を備えている。
【選択図】図1
【解決手段】半導体記憶装置は、第1の値と、第2の値とのいずれかを示すデータを記憶するメモリセルを複数有するメモリアレイと、メモリアレイに記憶させたデータにおいて、第1の値の数と、第2の値の数とのいずれが多いかを判定する転送済データ判定部と、外部から入力されるデータのデータ量がメモリアレイへの書き込み単位に達するごとに、メモリアレイに書き込むデータにおいて、第1の値と、第2の値とのいずれの値が多く含まれているかを判定する書込データ判定部と、転送データ判定部の判定結果及び書込データ判定部の判定結果に応じて、各ビットの値を反転させた書き込みデータと、書き込みデータとのいずれかを選択してメモリアレイに記憶させる書込データ選択部を備えている。
【選択図】図1
Description
本発明は、半導体記憶装置、及び記憶方法に関する。
デジタルカメラや、携帯電話、携帯型オーディオプレーヤーなどの普及により、大容量の半導体記憶装置の需要が拡大している。この半導体記憶装置として、NAND型フラッシュメモリが広く用いられている。
また、製造プロセスの微細化に伴い、NAND型フラッシュメモリのビットあたりの単価が低下しており、HDD(Hard Disk Drive)などの補助記憶装置の換わりに用いられるなど、NAND型フラッシュメモリの用途が広がっている。
また、製造プロセスの微細化に伴い、NAND型フラッシュメモリのビットあたりの単価が低下しており、HDD(Hard Disk Drive)などの補助記憶装置の換わりに用いられるなど、NAND型フラッシュメモリの用途が広がっている。
NAND型フラッシュメモリは、複数のメモリセル(フローティングゲート型を有するトランジスタ)が直列に接続されたNANDストリングを複数含み構成されている。そのため、NANDストリングのメモリセルからデータを読み出す際には、読み出し対象のメモリセル以外のゲートに所定の電圧を印加してドレイン−ソースを導通状態にするとともに、読み出し対象のメモリセルのゲートに読み出し用の電圧を印加し、各NANDストリングに流れる電流に応じて、読み出し対象のメモリセルに記憶されているデータを判定する。
各NANDストリングに記憶されている「0」データと「1」データの値に偏りが生じると、その偏りに応じてドレイン−ソース間に流れる電流量が変化し、メモリセルに記憶されているデータを正しく読み出すことができず、信頼性が低下してしまうことがある。
そこで、特許文献1に記載されている技術は、書き込む2値データの偏り具合に応じて、書き込むデータに対して所定の演算をするスクランブルを行い、「0」又は「1」のいずれかの値に偏らないように、平準化を行っている。
しかしながら、特許文献1に記載されている技術では、所定の単位(ページ単位)ごとに、外部のホストから入力された書き込みデータにおける「0」又は「1」の偏りの割合を算出し、算出した割合に応じて選択されるスクランブル方法により、「0」と「1」との偏りを平準化している。
すなわち、ホストから順次入力されるデータが、1ページ分入力されてから、スクランブル方法を選択し、選択したスクランブル方法に基づいてスクランブルを行うため、書き込むデータを平準化するまでに時間を要してしまうという問題があった。
すなわち、ホストから順次入力されるデータが、1ページ分入力されてから、スクランブル方法を選択し、選択したスクランブル方法に基づいてスクランブルを行うため、書き込むデータを平準化するまでに時間を要してしまうという問題があった。
本発明は、上記問題を解決すべくなされたもので、その目的は、書き込みデータにおける値の偏りを平準化する際に要する時間を短縮することができる半導体記憶装置、及び記憶方法を提供することにある。
上記問題を解決するために、本発明は、第1の値と、第2の値とのいずれかを示すデータを記憶するメモリセルを複数有するメモリアレイと、前記メモリアレイに記憶させたデータにおいて、前記第1の値の数と、前記第2の値の数とのいずれが多いかを判定する転送済データ判定部と、外部から入力されるデータのデータ量が前記メモリアレイへの書き込み単位に達するごとに、前記メモリアレイに書き込むデータにおいて、前記第1の値と、前記第2の値とのいずれの値が多く含まれているかを判定する書込データ判定部と、前記転送済データ判定部が前記第1の値の数が多いと判定し、かつ前記書込データ判定部が前記第1の値の数が多いと判定した場合、あるいは、前記転送済データ判定部が前記2の数が多いと判定し、かつ前記書込データ判定部が前記2の値の数が多いと判定した場合、前記書き込みデータが有する各2値のデータを反転したデータを前記メモリアレイに記憶させ、前記転送済データ判定部が前記第1の値の数が多いと判定し、かつ前記書込データ判定部が前記第2の値の数が多いと判定した場合、あるいは、前記転送済データ判定部が前記2の数が多いと判定し、かつ前記書込データ判定部が前記1の値の数が多いと判定した場合、前記書き込みデータを前記メモリアレイに記憶させる書込データ選択部とを具備していることを特徴とする半導体記憶装置である。
この発明では、外部より入力される書き込みデータのデータ量がメモリアレイへの書き込み単位に達するごとに、転送データ判定部の判定結果及び書込データ判定部の判定結果に応じて、書き込みデータを反転させてメモリアレイに記憶させる書き込みデータの平準化を逐次行う。
この発明では、外部より入力される書き込みデータのデータ量がメモリアレイへの書き込み単位に達するごとに、転送データ判定部の判定結果及び書込データ判定部の判定結果に応じて、書き込みデータを反転させてメモリアレイに記憶させる書き込みデータの平準化を逐次行う。
また、本発明は、上記に記載の発明において、前記メモリアレイには、前記書き込みデータを反転して前記メモリセルに記憶させたか否かを示す反転情報と、前記書き込みデータとが対応付けて記憶されることを特徴とする。
また、本発明は、上記に記載の発明において、前記書き込みデータと、当該書き込みデータに対応する前記反転情報とを前記複数のメモリセルから読み出し、読み出した前記反転情報に基づいて、読み出した前記書き込みデータと、読み出した前記書き込みデータを反転したデータとのいずれかを外部に出力するデータ読出部を更に具備していることを特徴とする。
また、本発明は、上記に記載の発明において、前記書き込みデータと、当該書き込みデータに対応する前記反転情報とを前記複数のメモリセルから読み出し、読み出した前記反転情報に基づいて、読み出した前記書き込みデータと、読み出した前記書き込みデータを反転したデータとのいずれかを外部に出力するデータ読出部を更に具備していることを特徴とする。
また、本発明は、第1の値と、第2の値とのいずれかを示すデータを記憶するメモリセルを複数有するメモリアレイを具備する半導体記憶装置における記憶方法であって、前記メモリアレイに記憶させたデータにおいて、前記第1の値の数と、前記第2の値の数とのいずれが多いかを判定する転送済データ判定ステップと、外部から入力されるデータのデータ量が前記メモリアレイへの書き込み単位に達するごとに、前記メモリアレイに書き込むデータにおいて、前記第1の値と、前記第2の値とのいずれの値が多く含まれているかを判定する書込データ判定ステップと、前記転送済データ判定ステップにおいて前記第1の値の数が多いと判定し、かつ前記書込データ判定ステップにおいて前記第1の値の数が多いと判定した場合、あるいは、前記転送済データ判定ステップにおいて前記2の数が多いと判定し、かつ前記書込データ判定ステップにおいて前記2の値の数が多いと判定した場合、前記書き込みデータが有する各2値のデータを反転したデータを前記メモリアレイに記憶させ、前記転送済データ判定ステップにおいて前記第1の値の数が多いと判定し、かつ前記書込データ判定ステップにおいて前記第2の値の数が多いと判定した場合、あるいは、前記転送済データ判定ステップにおいて前記2の数が多いと判定し、かつ前記書込データ判定ステップにおいて前記1の値の数が多いと判定した場合、前記書き込みデータを前記メモリアレイに記憶させる書込データ選択ステップとを有していることを特徴とする記憶方法である。
この発明によれば、データ量がメモリアレイへの書き込み単位に達するごとに、メモリアレイに書き込むデータに対して逐次平準化を行うので、メモリアレイに書き込むデータ全てが揃うまで待たずとも平準化を行うことができ、平準化に要する時間を短縮することができる。
以下、図面を参照して、本発明の実施形態における半導体記憶装置、及び記憶方法を説明する。ここで、本実施形態において、半導体記憶装置は、4キロバイト/ページで、同一ページへの書き込み制限1回(Number Of Program;NOP=1)のNANDフラッシュメモリである場合を例にして説明する。また、半導体記憶装置にデータを記憶させる際、外部のホストより4キロバイトのデータが1バイト単位で入力され、8サイクルごとに、入力された8バイト(64ビット)のデータに対して平準化を行う。
図1は、本実施形態における半導体記憶装置1の構成を示す概略ブロック図である。同図に示すように、半導体記憶装置1は、フラッシュ・コア11、制御回路12、デコーダ回路13、データ書込回路14、転送済回数カウンタ回路15、転送済1データカウンタ回路16、及びデータ読出回路17を具備している。
フラッシュ・コア11は、フローティングゲート型を有する複数のMOSトランジスタ(メモリセル)を直列に接続したNANDストリングを複数有し、各NANDストリングのソース端が共通ソース線に接続され、各NANDストリングに接続された異なるビット線を介して記憶するデータが入力されるとともに、当該ビット線を介してメモリセルに記憶されているデータを出力する。ここで、メモリセルが記憶するデータ(値)は、「1」又は「0」のいずれかのデータである。フラッシュ・コア11は、データ書込回路14から転送されるデータを1ページ単位で記憶する。
制御回路12は、データの書き込み又はデータの読み出しを示す制御信号が外部のホストから入力され、入力された制御信号に応じて、データ書込回路14又はデータ読出回路17のいずれかを動作させる制御を行う。
デコーダ回路13は、外部のホストから制御信号とともに入力されるアドレス信号AD[n:0](n>1の自然数)をデコードし、デコード結果に応じた電圧のワード信号WD[m:0](m>nの自然数)をフラッシュ・コア11に出力し、データを書き込む対象のメモリセル、又はデータを読み出す対象のメモリセルを選択する。
デコーダ回路13は、外部のホストから制御信号とともに入力されるアドレス信号AD[n:0](n>1の自然数)をデコードし、デコード結果に応じた電圧のワード信号WD[m:0](m>nの自然数)をフラッシュ・コア11に出力し、データを書き込む対象のメモリセル、又はデータを読み出す対象のメモリセルを選択する。
データ書込回路14は、外部のホストから1バイト(8ビット)ずつ入力される書き込みデータWr[7:0]を記憶し、記憶している書き込みデータが8バイトになると、記憶している8バイトのデータDQ[63:0]に、1ビットの反転情報DQ[64]を加えた65ビットの書き込みデータiDQ[64:0]をフラッシュ・コア11に転送して記憶させる。
このとき、データ書込回路14は、フラッシュ・コア11に既に転送した書き込みデータにおいて、「1」データの数(ビット数)がデータ全体の過半数以上か否か、及びホストから入力されたデータDQ[63:0]が有する「1」データの数に応じて、データDQ[63:0]のを反転するか否かを決定する。また、反転情報iDQ[64]は、データDQ[63:0]を反転したか否かを示す情報である。
このとき、データ書込回路14は、フラッシュ・コア11に既に転送した書き込みデータにおいて、「1」データの数(ビット数)がデータ全体の過半数以上か否か、及びホストから入力されたデータDQ[63:0]が有する「1」データの数に応じて、データDQ[63:0]のを反転するか否かを決定する。また、反転情報iDQ[64]は、データDQ[63:0]を反転したか否かを示す情報である。
転送済回数カウンタ回路15は、データを書き込むページに対して、データ書込回路14がフラッシュ・コア11にデータiDQ[64:0]を転送した回数をカウントし、カウントした回数を示す転送回数信号をデータ書込回路14に出力する。
転送済1データカウンタ回路16は、データを書き込むページにおいて、データ書込回路14がフラッシュ・コア11に転送したデータのうち、「1」データの個数をカウントし、カウントした個数を示す総1データ数信号をデータ書込回路14に出力する。なお、転送済回数カウンタ回路15及び転送済1データカウンタ回路16は、データを書き込むページが替わると、カウントした回数及び個数を「0」にリセットする。
転送済1データカウンタ回路16は、データを書き込むページにおいて、データ書込回路14がフラッシュ・コア11に転送したデータのうち、「1」データの個数をカウントし、カウントした個数を示す総1データ数信号をデータ書込回路14に出力する。なお、転送済回数カウンタ回路15及び転送済1データカウンタ回路16は、データを書き込むページが替わると、カウントした回数及び個数を「0」にリセットする。
データ読出回路17は、フラッシュ・コア11からデータDQ[64:0]を読み出し、読み出したデータDQ[64]の値に応じて、データDQ[63:0]を反転して出力するか、反転せずに出力するかを選択し、データDQ[63:0]を8サイクルに亘って1バイトずつ外部のホストに出力する。
図2は、本実施形態におけるデータ書込回路14の構成を示す概略ブロック図である。同図に示すようにデータ書込回路14は、書込データ記憶回路141、データ反転回路142、書込データ判定回路143、転送済データ判定回路144、データ反転決定回路145、及び書込データ選択回路146を有している。
書込データ記憶回路141は、1バイト(8ビット)ずつ入力される書き込みデータWr[7:0]を入力された順に記憶し、記憶している書き込みデータが8バイトになると、記憶している8バイトのデータを書き込みデータDQ[63:0]として、データ反転回路142、書込データ判定回路143、及び書込データ選択回路146に出力する。
書込データ記憶回路141は、1バイト(8ビット)ずつ入力される書き込みデータWr[7:0]を入力された順に記憶し、記憶している書き込みデータが8バイトになると、記憶している8バイトのデータを書き込みデータDQ[63:0]として、データ反転回路142、書込データ判定回路143、及び書込データ選択回路146に出力する。
データ反転回路142は、書込データ記憶回路141から入力される書き込みデータDQ[63:0]の各ビットの値を反転し、反転した書き込みデータ〜DQ[63:0]を書込データ選択回路146に出力する。ここで、「〜」はデータを反転することを表し、書き込みデータ〜DQ[63:0]は書き込みデータDQ[63:0]の各ビットの値を反転したデータを示す。
書込データ判定回路143は、書込データ記憶回路141から入力される書き込みデータDQ[63:0]のうち、「1」データの数をカウントし、カウントした「1」データの数が書き込みデータDQ[63:0]の半数以上であるか否かを判定し、判定結果を示す1データ数信号をデータ反転決定回路145に出力する。
書込データ判定回路143は、書込データ記憶回路141から入力される書き込みデータDQ[63:0]のうち、「1」データの数をカウントし、カウントした「1」データの数が書き込みデータDQ[63:0]の半数以上であるか否かを判定し、判定結果を示す1データ数信号をデータ反転決定回路145に出力する。
転送済データ判定回路144には、転送済回数カウンタ回路15から転送回数信号と、転送済1データカウンタ回路16から総1データ数信号とが入力される。また、転送済データ判定回路144は、入力された転送回数信号及び総1データ数信号に基づいて、フラッシュ・コア11に転送した書き込みデータの半数に対する「1」データの数の差分である偏りR(x)を算出し、偏りR(x)を示す信号をデータ反転決定回路145に出力する。
データ反転決定回路145には、書込データ判定回路143から書き込みデータDQ[63:0]の半数が「1」データであるか否かを示す信号と、転送済データ判定回路144から偏りを示す信号とが入力される。また、データ反転決定回路145は、書込データ判定回路143及び転送済データ判定回路144から入力される信号に基づいて、書き込みデータDQ「63:0」を反転したデータと、書き込みデータDQ[63:0]とのいずれをフラッシュ・コア11に転送するかを決定する。
また、データ反転決定回路145は、決定結果に基づいて、データ反転回路142が出力するデータDQ〜[63:0]と、書込データ記憶回路141が出力するデータDQ[63:0]とのいずれか一方を選択させ、データiDQ[63:0]としてフラッシュ・コア11に転送させる制御を書込データ選択回路146に対して行う。また、データ反転決定回路145は、決定結果である反転情報をデータiDQ[64]としてフラッシュ・コア11に転送する。
また、データ反転決定回路145は、決定結果に基づいて、データ反転回路142が出力するデータDQ〜[63:0]と、書込データ記憶回路141が出力するデータDQ[63:0]とのいずれか一方を選択させ、データiDQ[63:0]としてフラッシュ・コア11に転送させる制御を書込データ選択回路146に対して行う。また、データ反転決定回路145は、決定結果である反転情報をデータiDQ[64]としてフラッシュ・コア11に転送する。
書込データ選択回路146は、データ反転決定回路145の制御に応じて、データ反転回路142が出力するデータDQ〜[63:0]と、書込データ記憶回路141が出力するデータDQ[63:0]とのいずれか一方を選択して、フラッシュ・コア11に転送する。
次に、データ反転決定回路145における書き込みデータDQ[63:0]を反転するか否かを決定する処理について説明する。転送済データ判定回路144は、データのx回目の転送を行う際に、フラッシュ・コア11に転送したデータにおいて、転送したデータの半数に対する「1」データの数の偏りR(x)を次式(1)と定義し、式(1)により偏りR(x)算出する。
[数1]
R(x)≡nData1−nTimes*65/2 …(1)
R(x)≡nData1−nTimes*65/2 …(1)
ここで、nData1は、今までにフラッシュ・コア11に転送した「1」データの数(ビット数)であり、転送済1データカウンタ回路16から出力される総1データ数信号が示す値である。nTimesは、今までにフラッシュ・コア11に書き込みデータiDQ[64:0]を転送した回数であり、転送済回数カウンタ回路15から出力される転送回数信号が示す値である。
算出された偏りR(x)が、R(x)>=0の場合、フラッシュ・コア11に転送したデータのうち、半分以上が「1」データであることを意味する。
このとき、データ反転決定回路145は、書込データ判定回路143が出力する信号に基づいて、書込データ記憶回路141から出力される書き込みデータDQ[63:0]のデータのうち半分以上が「1」データであれば、書き込みデータDQ[63:0]を反転させる決定をする。一方、データ反転決定回路145は、書込データ判定回路143が出力する信号に基づいて、書き込みデータDQ[63:0]のデータのうち半分以上が「0」データであれば、書き込みデータDQ[63:0]を反転させない決定をする。
このとき、データ反転決定回路145は、書込データ判定回路143が出力する信号に基づいて、書込データ記憶回路141から出力される書き込みデータDQ[63:0]のデータのうち半分以上が「1」データであれば、書き込みデータDQ[63:0]を反転させる決定をする。一方、データ反転決定回路145は、書込データ判定回路143が出力する信号に基づいて、書き込みデータDQ[63:0]のデータのうち半分以上が「0」データであれば、書き込みデータDQ[63:0]を反転させない決定をする。
具体的には、書込データ記憶回路141から出力される書き込みデータDQ[63:0]のデータのうち、半分以上が「1」データであれば、書き込みデータDQ[63:0]を反転したことを示す「1」データをiDQ[64]にし、書き込みデータDQ[63:0]を反転した書き込みデータ〜DQ[63:0]をiDQ[63:0]にする。すなわち、フラッシュ・コア11に転送するデータiDQ[64:0]は、データiDQ[64](=1)と、データiDQ[63:0]を連接した、iDQ[64:0]={1’b1,〜DQ[63:0]}となる。
一方、書込データ記憶回路141から出力される書き込みデータDQ[63:0]のデータのうち、半分以上が「0」データであれば、書き込みデータDQ[63:0]を反転していないことを示す「0」データをiDQ[64]にし、書き込みデータDQ[63:0]をiDQ[63:0]にする。すなわち、フラッシュ・コア11に転送するデータiDQ[64:0]は、iDQ[64:0]={1’b0、DQ[63:0]}となる。
一方、書込データ記憶回路141から出力される書き込みデータDQ[63:0]のデータのうち、半分以上が「0」データであれば、書き込みデータDQ[63:0]を反転していないことを示す「0」データをiDQ[64]にし、書き込みデータDQ[63:0]をiDQ[63:0]にする。すなわち、フラッシュ・コア11に転送するデータiDQ[64:0]は、iDQ[64:0]={1’b0、DQ[63:0]}となる。
R(x)>=0の場合において、上述のように、フラッシュ・コア11に転送するデータiDQ[64:0]を決定することにより、nTimesは「1」増加し、nData1は最大でも「32」(=31+1)しか増加しないので、8バイトの書き込みデータをフラッシュ・コア11に転送した後の偏りR(x+1)は、次式(2)のようになる。
[数2]
R(x+1)≦R(x)+32−1*65/2=R(x) …(2)
R(x+1)≦R(x)+32−1*65/2=R(x) …(2)
なお、式(2)において、(65/2)の演算結果は、ビット右シフトを用いて算出することを想定して(65/2=32)としている。
偏りR(x)が非負であれば、次の8バイトを転送した後の偏りR(x+1)の値は、変わらないか、又は減少する。
偏りR(x)が非負であれば、次の8バイトを転送した後の偏りR(x+1)の値は、変わらないか、又は減少する。
また、算出された偏りR(x)が、R(x)<の場合、フラッシュ・コア11に転送されたデータのうち、半分未満が「1」データであることを意味する。
このとき、データ反転決定回路145は、書込データ記憶回路141から出力される書き込みデータDQ[63:0]のデータのうち、半分以上が「1」データであれば、書き込みデータDQ[63:0]を反転させない決定をし、半分以上が「0」データであれば、書き込みデータDQ[63:0]を反転させる決定をする。
このとき、データ反転決定回路145は、書込データ記憶回路141から出力される書き込みデータDQ[63:0]のデータのうち、半分以上が「1」データであれば、書き込みデータDQ[63:0]を反転させない決定をし、半分以上が「0」データであれば、書き込みデータDQ[63:0]を反転させる決定をする。
具体的には、書込データ記憶回路141から出力される書き込みデータDQ[63:0]のデータのうち、半分以上が「1」データであれば、フラッシュ・コア11に転送するデータiDQ[64:0]は、iDQ[64:0]={1’b0,DQ[63:0]}となる。
一方、書込データ記憶回路141から出力される書き込みデータDQ[63:0]のデータのうち、半分以上が「0」データであれば、フラッシュ・コア11に転送するデータiDQ[64:0]は、iDQ[64:0]={1’b1、〜DQ[63:0]}となる。
一方、書込データ記憶回路141から出力される書き込みデータDQ[63:0]のデータのうち、半分以上が「0」データであれば、フラッシュ・コア11に転送するデータiDQ[64:0]は、iDQ[64:0]={1’b1、〜DQ[63:0]}となる。
R(x)<0の場合において、上述のように、フラッシュ・コア11に転送するデータiDQ[64:0]を決定することにより、nTimesは「1」増加し、nData1は少なくとも「32」(=31+1)増加するので、8バイトの書き込みデータをフラッシュ・コア11に転送した後の偏りR(x+1)は、次式(3)のようになる。
[数3]
R(x+1)≧R(x)+32−1*65/2=R(x) …(3)
R(x+1)≧R(x)+32−1*65/2=R(x) …(3)
なお、式(3)において、式(2)と同様に、(65/2)の演算結果は、ビット右シフトを用いて行うことを想定して(65/2=32)としている。
偏りR(x)が負であれば、次の8バイトを転送した後の偏りR(x+1)の値は、変わらないか、又は増加する。
偏りR(x)が負であれば、次の8バイトを転送した後の偏りR(x+1)の値は、変わらないか、又は増加する。
本実施形態の半導体記憶装置1において、転送済データ判定回路144が、フラッシュ・コア11に転送したデータにおいて「1」データの数が半数以上であるか否かを判定し、データ反転決定回路145が、転送済データ判定回路144の判定結果と、書込データ判定回路143の判定結果とに基づいて、書き込みデータDQ[63:0]を反転するか否かを決定する。これにより、書き込みデータが、「0」データと「1」データとのいずれかに偏ることを抑制することができる。
なお、最初の書き込みデータiDQ[64:0]を転送する際には、nData1とnTimesは「0」であるので、最も書き込みデータiDQが偏るのは、DQ[63:0]の全ビットが「0」データ又は「1」データの場合である。このとき、偏りR(1)は、|R(1)|=|0−1*65/2|=32となる。4キロ・バイトのデータをフラッシュ・コア11に転送するには、512回(=4096[バイト]/8[バイト/回])の書き込みデータiDQの転送が必要になる。
なお、最初の書き込みデータiDQ[64:0]を転送する際には、nData1とnTimesは「0」であるので、最も書き込みデータiDQが偏るのは、DQ[63:0]の全ビットが「0」データ又は「1」データの場合である。このとき、偏りR(1)は、|R(1)|=|0−1*65/2|=32となる。4キロ・バイトのデータをフラッシュ・コア11に転送するには、512回(=4096[バイト]/8[バイト/回])の書き込みデータiDQの転送が必要になる。
上述したように、偏り|R(x)|の値は、データiDQをフラッシュ・コア11に転送するごとに、「0」に近づくか、変わらないかのいずれかであるので、ページに転送する全ての書き込みデータiDQを転送し終えたときには、偏り|R(512)|=|nData1−512*65/2|≦32となる。
したがって、1ページ(512×65[セル])に転送される「1」データの数は、次式(4)で表される範囲内の数になる。
したがって、1ページ(512×65[セル])に転送される「1」データの数は、次式(4)で表される範囲内の数になる。
[数4]
−32≦(nData1−512×65÷2)≦32 …(4)
−32≦(nData1−512×65÷2)≦32 …(4)
式(4)を変形すると、「(1ページにおけるセル数の半分の数)−32≦nData1≦(1ページにおけるセル数の半分の数)+32」となり、ページ内の書き込みデータが「0」データと「1」データとのいずれかに偏ることを抑制することができる。
続いて、フラッシュ・コア11からデータを読み出す際におけるデータ読出回路17の動作について説明する。
データ読出回路17は、フラッシュ・コア11から実データ(iDQ[63:0])と、反転情報(iDQ[64])とを読み出し、読み出した反転情報(iDQ[64])が「0」の場合、読み出した実データ(iDQ[63:0])を外部のホストに1バイトずつ順次出力する。
一方、データ読出回路17は、読み出した反転情報(iDQ[64])が「1」の場合、読み出した実データ(iDQ[63:0])を反転したデータ(〜iDQ[63:0])を外部のホストに1バイトずつ順次出力する。
データ読出回路17は、フラッシュ・コア11から実データ(iDQ[63:0])と、反転情報(iDQ[64])とを読み出し、読み出した反転情報(iDQ[64])が「0」の場合、読み出した実データ(iDQ[63:0])を外部のホストに1バイトずつ順次出力する。
一方、データ読出回路17は、読み出した反転情報(iDQ[64])が「1」の場合、読み出した実データ(iDQ[63:0])を反転したデータ(〜iDQ[63:0])を外部のホストに1バイトずつ順次出力する。
なお、データ読出回路17において、実データ(iDQ[63:0])の反転を、1バイトごとに行うようにし、データ読出回路17の回路規模を小さくするようにしてもよい。また、データ読出回路17は、データ書込回路14の動作検証などのために、フラッシュ・コア11から読み出したデータiDQ[64:0]を出力するようするテストモードを備えてもよい。
上述したように、本実施形態の半導体記憶装置1は、外部のホストから書き込みデータが8バイト入力されるごとに、データ書込回路14が今までにフラッシュ・コア11に転送した書き込みデータにおける「1」データの偏りに基づいて、書き込みデータを反転するか否かを決定してフラッシュ・コア11に当該書き込みデータを転送する。
このように、書き込みデータが8バイト入力されるたびに、書き込みデータに対して逐次平準化を行うため、1ページ分の書き込みデータ全てが外部のホストより入力されるまで待つ必要がなくなり、書き込みデータにおける値の偏りを平準化に要する時間を短縮することができる。
このように、書き込みデータが8バイト入力されるたびに、書き込みデータに対して逐次平準化を行うため、1ページ分の書き込みデータ全てが外部のホストより入力されるまで待つ必要がなくなり、書き込みデータにおける値の偏りを平準化に要する時間を短縮することができる。
また、「1」データと「0」データとの偏りを平準化することにより、フラッシュ・コア11からデータを読み出す際に共通ソース線に流れる電流負荷の変動を抑制することができる。これにより、共通ソース線の電流負荷の変動により生じる読み出し特性のばらつきを抑えることができ、書き込みにおけるメモリセルのデータの検証、及びメモリセルからのデータの読み出しの精度を向上させることができる。
また、本実施形態の半導体記憶装置1は、特許文献1に記載されている技術のように、書き込みデータにおける値の偏りを平準化するためのテーブルを用いることなく、小規模な順序回路を用いて書き込みデータにおける値の偏りを平準化するための半導体記憶装置1の回路規模を小さくすることができる。
例えば、データ書込回路14は、64ビットの書き込みデータDQ[63:0]の極性を切り替えるマルチプレクサと、17ビットの全加算器とを用いて構成できる。転送済回数カウンタ回路15は9ビットの同期全加算器を用いて構成でき、転送済1データカウンタ回路16は16ビットの同期全加算器を用いて構成できる。データ読出回路17は、最も少ない場合で、8ビットのデータの極性を切り替えるマルチプレクサを用いて構成できる。このとき、フラッシュ・コア11において、反転情報を記憶するための領域として、64ビット当たり1ビット、すなわち、1.6%の記憶領域(メモリセル)を追加するだけで構成できる。
このように、本実施形態の半導体記憶装置1において、書き込みデータの平準化に要する回路規模の増加量を抑えることができ、回路の実装面積の増加量を低減させることができる。
例えば、データ書込回路14は、64ビットの書き込みデータDQ[63:0]の極性を切り替えるマルチプレクサと、17ビットの全加算器とを用いて構成できる。転送済回数カウンタ回路15は9ビットの同期全加算器を用いて構成でき、転送済1データカウンタ回路16は16ビットの同期全加算器を用いて構成できる。データ読出回路17は、最も少ない場合で、8ビットのデータの極性を切り替えるマルチプレクサを用いて構成できる。このとき、フラッシュ・コア11において、反転情報を記憶するための領域として、64ビット当たり1ビット、すなわち、1.6%の記憶領域(メモリセル)を追加するだけで構成できる。
このように、本実施形態の半導体記憶装置1において、書き込みデータの平準化に要する回路規模の増加量を抑えることができ、回路の実装面積の増加量を低減させることができる。
また、特許文献1に記載されている技術では、入力された1ページ分のデータのさまざまな組合せ、すなわち、「0」と「1」とのさまざまな組合せに対応できるようにスクランブルテーブルを設ける必要があるため、スクランブルテーブル自体を信頼性の高い不揮発性メモリに記憶するなどの対応が必要となり、回路規模及び実装面積の増加を招いている。一方、本実施形態における半導体記憶装置1は、同一のページに転送したデータに含まれる「1」の数に基づいて、次にフラッシュ・コア11に転送する8バイト分のデータの各ビットを反転するか否かを決定し、8バイトのデータを反転するという簡便な構成を用いて、フラッシュ・コア11に転送する「0」データと「1」データとの偏りを平準化している。
これにより、半導体記憶装置1は、大規模な回路を追加することなく、フラッシュ・コア11に転送するデータにおける「0」データと「1」データとの極性分布を平準化することができる。
これにより、半導体記憶装置1は、大規模な回路を追加することなく、フラッシュ・コア11に転送するデータにおける「0」データと「1」データとの極性分布を平準化することができる。
なお、本実施形態における、半導体記憶装置1とホストとの間のデータ幅、フラッシュ・コア11におけるページあたりのバイト数、データ書込回路14及びデータ読出回路17とフラッシュ・コア11との間のデータ幅などは、一例であって、半導体記憶装置1を使用する目的や、要求される仕様に応じて、適宜変更してもよい。
また、本実施形態では、不揮発性の半導体記憶領域を有するフラッシュ・コア11に対して書き込むデータを平準化する構成について説明したが、これに限ることなく、記憶させるデータにおける偏りの平準化が要求される記憶装置に対して用いるようにしてもよい。
また、本実施形態では、不揮発性の半導体記憶領域を有するフラッシュ・コア11に対して書き込むデータを平準化する構成について説明したが、これに限ることなく、記憶させるデータにおける偏りの平準化が要求される記憶装置に対して用いるようにしてもよい。
1…半導体記憶装置
11…フラッシュ・コア(メモリアレイ)
12…制御回路
13…デコーダ回路
14…データ書込回路
15…転送済回数カウンタ回路
16…転送済1データカウンタ回路
17…データ読出回路
141…書込データ記憶回路
142…データ反転回路
143…書込データ判定回路
144…転送済データ判定回路
145…データ反転決定回路
146…書込データ選択回路
11…フラッシュ・コア(メモリアレイ)
12…制御回路
13…デコーダ回路
14…データ書込回路
15…転送済回数カウンタ回路
16…転送済1データカウンタ回路
17…データ読出回路
141…書込データ記憶回路
142…データ反転回路
143…書込データ判定回路
144…転送済データ判定回路
145…データ反転決定回路
146…書込データ選択回路
Claims (4)
- 第1の値と、第2の値とのいずれかを示すデータを記憶するメモリセルを複数有するメモリアレイと、
前記メモリアレイに記憶させたデータにおいて、前記第1の値の数と、前記第2の値の数とのいずれが多いかを判定する転送済データ判定部と、
外部から入力されるデータのデータ量が前記メモリアレイへの書き込み単位に達するごとに、前記メモリアレイに書き込むデータにおいて、前記第1の値と、前記第2の値とのいずれの値が多く含まれているかを判定する書込データ判定部と、
前記転送済データ判定部が前記第1の値の数が多いと判定し、かつ前記書込データ判定部が前記第1の値の数が多いと判定した場合、あるいは、前記転送済データ判定部が前記2の数が多いと判定し、かつ前記書込データ判定部が前記2の値の数が多いと判定した場合、前記書き込みデータが有する各2値のデータを反転したデータを前記メモリアレイに記憶させ、前記転送済データ判定部が前記第1の値の数が多いと判定し、かつ前記書込データ判定部が前記第2の値の数が多いと判定した場合、あるいは、前記転送済データ判定部が前記2の数が多いと判定し、かつ前記書込データ判定部が前記1の値の数が多いと判定した場合、前記書き込みデータを前記メモリアレイに記憶させる書込データ選択部と
を具備していることを特徴とする半導体記憶装置。 - 前記メモリアレイには、
前記書き込みデータを反転して前記メモリセルに記憶させたか否かを示す反転情報と、前記書き込みデータとが対応付けて記憶される
ことを特徴とする請求項1に記載の半導体記憶装置。 - 前記書き込みデータと、当該書き込みデータに対応する前記反転情報とを前記複数のメモリセルから読み出し、読み出した前記反転情報に基づいて、読み出した前記書き込みデータと、読み出した前記書き込みデータを反転したデータとのいずれかを外部に出力するデータ読出部
を更に具備していることを特徴とする請求項2に記載の半導体記憶装置。 - 第1の値と、第2の値とのいずれかを示すデータを記憶するメモリセルを複数有するメモリアレイを具備する半導体記憶装置における記憶方法であって、
前記メモリアレイに記憶させたデータにおいて、前記第1の値の数と、前記第2の値の数とのいずれが多いかを判定する転送済データ判定ステップと、
外部から入力されるデータのデータ量が前記メモリアレイへの書き込み単位に達するごとに、前記メモリアレイに書き込むデータにおいて、前記第1の値と、前記第2の値とのいずれの値が多く含まれているかを判定する書込データ判定ステップと、
前記転送済データ判定ステップにおいて前記第1の値の数が多いと判定し、かつ前記書込データ判定ステップにおいて前記第1の値の数が多いと判定した場合、あるいは、前記転送済データ判定ステップにおいて前記2の数が多いと判定し、かつ前記書込データ判定ステップにおいて前記2の値の数が多いと判定した場合、前記書き込みデータが有する各2値のデータを反転したデータを前記メモリアレイに記憶させ、前記転送済データ判定ステップにおいて前記第1の値の数が多いと判定し、かつ前記書込データ判定ステップにおいて前記第2の値の数が多いと判定した場合、あるいは、前記転送済データ判定ステップにおいて前記2の数が多いと判定し、かつ前記書込データ判定ステップにおいて前記1の値の数が多いと判定した場合、前記書き込みデータを前記メモリアレイに記憶させる書込データ選択ステップと
を有していることを特徴とする記憶方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010283125A JP2012133831A (ja) | 2010-12-20 | 2010-12-20 | 半導体記憶装置、及び記憶方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010283125A JP2012133831A (ja) | 2010-12-20 | 2010-12-20 | 半導体記憶装置、及び記憶方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012133831A true JP2012133831A (ja) | 2012-07-12 |
Family
ID=46649270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010283125A Pending JP2012133831A (ja) | 2010-12-20 | 2010-12-20 | 半導体記憶装置、及び記憶方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012133831A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10497445B2 (en) | 2017-07-25 | 2019-12-03 | Fujitsu Limited | Memory control circuit, memory, and memory control method |
-
2010
- 2010-12-20 JP JP2010283125A patent/JP2012133831A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10497445B2 (en) | 2017-07-25 | 2019-12-03 | Fujitsu Limited | Memory control circuit, memory, and memory control method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10901837B2 (en) | Error correction code (ECC) operations in memory | |
TWI594256B (zh) | 用來進行記憶體存取管理之方法以及記憶裝置及其控制器 | |
JP5732147B2 (ja) | データセンシングのための方法、装置、およびシステム | |
TWI646783B (zh) | 解碼方法及儲存控制器 | |
US8599613B2 (en) | Nonvolatile semiconductor memory | |
KR102193883B1 (ko) | 클럭 신호 처리기 및 이를 포함하는 비휘발성 메모리 장치 | |
US9627079B1 (en) | Storage device, memory system having the same, and operating method thereof | |
TW201911326A (zh) | 具有讀取位準校準之記憶體裝置 | |
TW201913686A (zh) | 錯誤檢查糾正解碼方法與裝置 | |
US9136875B2 (en) | Decoding method, memory storage device and rewritable non-volatile memory module | |
JP6012811B2 (ja) | 特定のデータ量子化のメモリからの出力 | |
JP2008217857A (ja) | メモリコントローラ及び半導体装置 | |
TW201546815A (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
US7941733B2 (en) | Semiconductor memory device | |
US20070220400A1 (en) | Semiconductor memory device | |
TW201514999A (zh) | 非揮發性記憶體裝置及其資料驗證方法 | |
US8520447B2 (en) | Semiconductor memory device and method of operating the same | |
JP2007058940A (ja) | 記憶装置、ファイル記憶装置、およびコンピュータシステム | |
US9607706B1 (en) | Semiconductor memory device | |
JP2010027163A (ja) | 半導体メモリコントローラ、および半導体メモリシステム、および半導体メモリシステムの記録再生方法 | |
JP2001202792A (ja) | 半導体記憶装置のエラー訂正符号化方法及び半導体記憶装置 | |
TWI836534B (zh) | 非揮發性記憶體 | |
JP2012133831A (ja) | 半導体記憶装置、及び記憶方法 | |
US11817154B2 (en) | Optimized threshold translation from serialized pipeline | |
JP4358299B2 (ja) | メモリコントローラ及び半導体装置 |