(57)【要約】【課題】チップ面積を縮小する。【解決手段】半導体記憶装置は、メモリ１０と、メモリ１０との間のデータ転送を行い、第１のビット幅でデータを転送する第１のモードと、第２のビット幅でデータを転送する第２のモードとを有するデータ転送部１７とを含む。データ転送部１７は、メモリ１０から読み出された第１のデータを保持する第１のラッチ回路７０と、第１のモードにおいて、第１のデータのうち第１のビット幅を有する第２のデータを保持し、第２のモードにおいて、第１のデータのうち第２のビット幅を有する第３のデータを保持する第２のラッチ回路７１と、第１のラッチ回路７０と第２のラッチ回路７１とを接続し、第１及び第２のモードで共有されるデータバスとを含む。【選択図】      図３
2012128921.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、
前記メモリとの間のデータ転送を行い、第１のビット幅でデータを転送する第１のモードと、第２のビット幅でデータを転送する第２のモードとを有するデータ転送部とを具備し、
前記データ転送部は、
前記メモリから読み出された第１のデータを保持する第１のラッチ回路と、
前記第１のモードにおいて、前記第１のデータのうち前記第１のビット幅を有する第２のデータを保持し、前記第２のモードにおいて、前記第１のデータのうち前記第２のビット幅を有する第３のデータを保持する第２のラッチ回路と、
前記第１のラッチ回路と前記第２のラッチ回路とを接続し、前記第１及び第２のモードで共有されるデータバスと、
を具備することを特徴とする半導体記憶装置。
【請求項２】
前記第１のデータは、前記第１のビット幅の２倍のビット幅を有し、
前記第２のラッチ回路は、前記第２のデータを保持する第１のラッチ部分と、前記第３のデータを保持する第２のラッチ部分とを含み、
前記第１のラッチ回路は、第１の周期を有する第１のクロックに応じて前記第１のデータを取り込み、前記第１の周期の半分の第２の周期を有する第２のクロックに応じて前記第１のビット幅でデータを出力し、
前記第１のラッチ部分は、前記第２の周期を有するクロックに応じて保持動作を行うことを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記第１のラッチ部分は、誤りを訂正するＥＣＣ部に接続され、
前記第２のラッチ部分は、外部との間でデータの受け渡しを行うインターフェース部に接続されることを特徴とする請求項２に記載の半導体記憶装置。
【請求項４】
第１の基準クロックを用いて前記第１のモード用の第１のクロックを生成し、第２の基準クロックを用いて前記第２のモード用の第２のクロックを生成するクロック生成回路をさらに具備し、
前記クロック生成回路は、前記第１及び第の基準クロックの遅延時間を調整し、前記第１及び第２のモードで共有される遅延回路を含むことを特徴とする請求項１に記載の半導体記憶装置。
【請求項５】
前記遅延回路は、複数のキャパシタと、複数の抵抗を含むことを特徴とする請求項４に記載の半導体記憶装置。
【請求項６】
メモリと、
前記メモリからページ単位でデータを読み出し、前記メモリから読み出された読み出しデータを格納するページバッファと、
前記ページバッファから転送された読み出しデータに対して誤りを訂正し、この訂正された読み出しデータを前記ページバッファに書き戻すＥＣＣ部と、
前記ページバッファに書き戻された読み出しデータを出力するインターフェース部と、
を具備することを特徴とする半導体記憶装置。
【請求項７】
前記ページバッファは、前記インターフェース部に入力された書き込みデータを格納し、
前記ＥＣＣ部は、前記ページバッファから転送された書き込みデータに対してパリティデータを生成し、前記パリティデータ及び前記書き込みデータを前記ページバッファに書き戻すことを特徴とする請求項６に記載の半導体記憶装置。
【請求項８】
第１のビット幅でデータを転送する第１のモードと、前記第１のビット幅と異なる第２のビット幅でデータを転送する第２のモードとを実行するコントローラをさらに具備し、
前記ＥＣＣ部は、前記第１及び第２のモードで共有されることを特徴とする請求項６又は７に記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体記憶装置に関する。
【背景技術】
【０００２】
不揮発性半導体メモリとして、ＮＡＮＤ型フラッシュメモリが知られている。ＮＡＮＤ型フラッシュメモリは、ページと呼ばれる単位でデータの読み出し及び書き込みが行われる。メモリセルアレイから読み出されたページデータは、ページバッファに格納される。
【０００３】
ページバッファに格納されたページデータは、ＮＡＮＤ型フラッシュメモリに備わる各種の動作モードに応じて、特定のビット幅でデータ転送される。このため、特定のビット幅を有するデータバスや、転送データを保持する多くのラッチ回路が必要となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−２５９３２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
実施形態は、チップ面積を縮小することが可能な半導体記憶装置を提供する。
【課題を解決するための手段】
【０００６】
実施形態に係る半導体記憶装置は、メモリと、前記メモリとの間のデータ転送を行い、第１のビット幅でデータを転送する第１のモードと、第２のビット幅でデータを転送する第２のモードとを有するデータ転送部とを具備する。前記データ転送部は、前記メモリから読み出された第１のデータを保持する第１のラッチ回路と、前記第１のモードにおいて、前記第１のデータのうち前記第１のビット幅を有する第２のデータを保持し、前記第２のモードにおいて、前記第１のデータのうち前記第２のビット幅を有する第３のデータを保持する第２のラッチ回路と、前記第１のラッチ回路と前記第２のラッチ回路とを接続し、前記第１及び第２のモードで共有されるデータバスとを具備する。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態に係るメモリシステム１のブロック図。
【図２】メモリセルアレイ１０の回路図。
【図３】データ転送部１７の回路図。
【図４】比較例に係るデータ転送部の回路図。
【図５】ＯｎｅＮＡＮＤモードにおけるデータ転送方式を説明する模式図。
【図６】ＯｎｅＮＡＮＤモードにおけるデータ転送方式を説明するタイミングチャート。
【図７】ＮＡＮＤシーケンサ１４の構成を示すブロック図。
【図８】比較例に係るデータ転送方式を説明する模式図。
【図９】比較例に係るデータ転送方式を説明するタイミングチャート。
【図１０】第２の実施形態に係るメモリシステム１の概略図。
【図１１】ＰｕｒｅＮＡＮＤモードにおけるプログラム動作を説明する模式図。
【図１２】ＰｕｒｅＮＡＮＤモードにおけるプログラム動作を示すフローチャート。
【図１３】ＰｕｒｅＮＡＮＤモードにおける読み出し動作を説明する模式図。
【図１４】ＰｕｒｅＮＡＮＤモードにおける読み出し動作を示すフローチャート。
【図１５】クロック生成回路１４ｂの一例を示す回路図。
【図１６】第３の実施形態に係るクロック生成回路８０のブロック図。
【図１７】ＯｎｅＮＡＮＤモード用のクロックを説明する図。
【図１８】ＰｕｒｅＮＡＮＤモード用のクロックを説明する図。
【図１９】入力切替回路８１及び遅延回路８２，８５の回路図。
【図２０】デコーダ８３の回路図。
【図２１】選択信号Ｓｒを説明する図。
【図２２】選択回路８４の回路図。
【図２３】出力回路８８の回路図。
【発明を実施するための形態】
【０００８】
以下、実施形態について図面を参照して説明する。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【０００９】
［第１の実施形態］
＜１．メモリシステムの全体構成＞
図１は、第１の実施形態に係る半導体記憶装置（メモリシステム）１のブロック図である。メモリシステム１は、ＮＡＮＤ型フラッシュメモリ２、ＲＡＭ部３、及びコントローラ４を備えている。ＮＡＮＤ型フラッシュメモリ２、ＲＡＭ部３、及びコントローラ４は、同一の半導体基板上に形成され、１つのチップに集積されている。以下、メモリシステム１を構成する各モジュールについて詳細に説明する。
【００１０】
＜１−１．ＮＡＮＤ型フラッシュメモリ２＞
ＮＡＮＤ型フラッシュメモリ２は、メモリシステム１の主記憶部として機能する。ＮＡＮＤ型フラッシュメモリ２は、メモリセルアレイ（NAND Cell Array）１０、ロウデコーダ（Row Dec.）１１、ページバッファ１２、電圧発生回路（Voltage Supply）１３、ＮＡＮＤシーケンサ１４、オシレータ（ＯＳＣ）１５，１６、及びデータ転送部１７を備えている。
【００１１】
メモリセルアレイ１０は、複数のメモリセルトランジスタを備えている。図２は、メモリセルアレイ１０の回路図である。メモリセルアレイ１０は、複数のメモリセルユニットＣＵを備えている。各メモリセルユニットＣＵは、例えば３２個のメモリセルトランジスタＭＴと、２個の選択トランジスタＳＴ１、ＳＴ２とから構成されている。メモリセルトランジスタＭＴは、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層（例えば浮遊ゲート電極）と、電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極とを有する積層ゲート構造を備えている。メモリセルトランジスタＭＴは、電荷蓄積層としての窒化膜に電子をトラップさせる方式を用いたＭＯＮＯＳ（Metal Oxide Nitride Oxide Silicon）構造であっても良い。
【００１２】
隣接するメモリセルトランジスタＭＴ同士の電流経路は直列接続されている。直列接続されたメモリセルトランジスタＭＴの一端側のドレインは選択トランジスタＳＴ１のソースに接続され、他端側のソースは選択トランジスタＳＴ２のドレインに接続されている。
【００１３】
同一行にあるメモリセルトランジスタＭＴの各制御ゲート電極は、ワード線ＷＬ０〜ＷＬ３１のいずれかに共通接続されている。同一行にある選択トランジスタＳＴ１、ＳＴ２の各ゲートは、選択ゲート線ＳＧＤ、ＳＧＳにそれぞれ共通接続されている。選択トランジスタＳＴ１の各ドレインは、ビット線ＢＬ０〜ＢＬｎ（ｎは１以上の整数）のいずれかに接続されている。選択トランジスタＳＴ２のソースはソース線ＳＬに共通接続されている。
【００１４】
同一のワード線ＷＬに接続された複数のメモリセルトランジスタＭＴはページを構成する。データの書き込み及び読み出しは、１つのページ内のメモリセルトランジスタＭＴに対して一括して行なわれる。また、複数のページのデータが一括して消去されるように構成されており、この消去の単位をメモリブロックと呼ぶ。図２には、１個のメモリブロックしか図示していないが、実際には複数のメモリブロックがメモリセルアレイ１０に含まれる。
【００１５】
各メモリセルトランジスタＭＴは、例えば、浮遊ゲート電極に注入された電子の多寡による閾値電圧の変化に応じて、１ビットのデータを記憶することが可能である。閾値電圧の制御を細分化し、各メモリセルトランジスタＭＴに２ビット以上のデータを記憶する構成としても良い。
【００１６】
図１において、ロウデコーダ１１は、データの書き込み、読み出し、及び消去の際に、ワード線ＷＬ０〜ＷＬ３１及び選択ゲート線ＳＧＤ、ＳＧＳを選択する。そして、必要な電圧をワード線ＷＬ０〜ＷＬ３１及び選択ゲート線ＳＧＤ、ＳＧＳに印加する。
【００１７】
ページバッファ１２は、メモリセルアレイ１０のページと同じ大きさのデータを保持できるように構成されている。すなわち、ページバッファ１２は、読み出しの際はメモリセルアレイ１０から読み出された１ページ分のデータを一時的に格納し、書き込みの際はメモリセルアレイ１０に書き込むべき１ページ分のデータを一時的に格納する。また、ページバッファ１２は、ページデータのうちアドレスで指定された６４ビットのデータをデータ転送部１７へ送り、６４ビットのデータをデータ転送部１７から受けるように構成されている。さらに、ページバッファ１２は、書き込みデータをメモリセルアレイ１０に書き込み、かつメモリセルアレイ１０からデータを読み出すセンスアンプを含んでいる。
【００１８】
電圧発生回路１３は、データの書き込み、読み出し、及び消去に必要な電圧を生成し、この電圧をロウデコーダ１１などに供給する。
【００１９】
ＮＡＮＤシーケンサ１４は、ＮＡＮＤ型フラッシュメモリ２全体の動作を司る。すなわち、ＮＡＮＤシーケンサ１４は、コントローラ４から各種の命令を受けると、これに応答して、データの書き込み、読み出し、及び消去などのシーケンスを実行する。そして、このシーケンスに従って、電圧発生回路１３やページバッファ１２の動作を制御する。
【００２０】
オシレータ１５は、内部クロックＩＣＬＫを生成し、この内部クロックＩＣＬＫをＮＡＮＤシーケンサ１４に供給する。ＮＡＮＤシーケンサ１４は、この内部クロックＩＣＬＫに同期して動作する。また、ＮＡＮＤシーケンサ１４は、内部クロックＩＣＬＫから幾つかのクロック信号を生成し、このクロックをデータ転送部１７に供給する。
【００２１】
オシレータ１６は、内部クロックＡＣＬＫを生成し、この内部クロックＡＣＬＫをコントローラ４やＲＡＭ部３へ供給する。内部クロックＡＣＬＫは、コントローラ４やＲＡＭ部３が動作するための基準クロックである。
【００２２】
データ転送部１７は、ページバッファ１２とＲＡＭ部３との間のデータ転送を制御し、より詳細には、ページバッファ１２とＥＣＣ部２０との間のデータ転送、及びページバッファ１２とＩ／Ｆ部４０との間のデータ転送を制御する。この制御のために、データ転送部１７は、複数のバスと、複数のラッチ回路とを備えており、さらにシーケンサ１４からクロックを受ける。データ転送部１７の具体的な構成については、後述する。
【００２３】
＜１−２．ＲＡＭ部３＞
次に、図１に示したＲＡＭ部３の構成について説明する。ＲＡＭ部３は、ＥＣＣ部２０、ＳＲＡＭ（Static Random Access Memory）３０、インターフェース部（Ｉ／Ｆ部）４０、及びアクセスコントローラ５０を備えている。
【００２４】
メモリシステム１では、ＮＡＮＤ型フラッシュメモリ２が主記憶部として機能し、ＲＡＭ部３のＳＲＡＭ３０がメモリバッファとして機能する。従って、ＮＡＮＤ型フラッシュメモリ２からデータを外部に読み出すには、まずメモリセルアレイ１０から読み出されたデータが、ページバッファ１２を介してＲＡＭ部３のＳＲＡＭ３０に格納される。その後、ＳＲＡＭ３０内のデータがインターフェース部４０に転送されて、外部に出力される。他方、データをＮＡＮＤ型フラッシュメモリ２に記憶させるには、まず外部から入力されたデータが、インターフェース部４０を介してＳＲＡＭ３０に格納される。その後、ＳＲＡＭ３０内のデータがページバッファ１２へ転送されて、メモリセルアレイ１０に書き込まれる。
【００２５】
以下の説明では、データがメモリセルアレイ１０から読み出されてから、ページバッファ１２を介してＳＲＡＭ３０に転送されるまでの動作を、データの“ロード（load）”と呼ぶ。また、ＳＲＡＭ３０内のデータが、インターフェース部４０内のバッファ４１を介してインターフェース４２に転送されるまでの動作を、データの“読み出し（read）”と呼ぶ。
【００２６】
また、ＮＡＮＤ型フラッシュメモリ２に記憶させるべきデータが、インターフェース４２からバッファ４１を介してＳＲＡＭ３０に転送されるまでの動作を、データの“書き込み（write）”と呼ぶ。また、ＳＲＡＭ３０内のデータがページバッファ１２を介してメモリセルアレイ１０に書き込まれるまでの動作を、データの“プログラム（program）”と呼ぶ。
【００２７】
＜１−２−１．ＥＣＣ部２０＞
ＥＣＣ部２０は、ＥＣＣ（Error Checking and Correcting）処理を行う。すなわち、ロード時には、ＮＡＮＤ型フラッシュメモリ２から読み出されたデータについてエラーの検出及び訂正を行う。他方、プログラム時には、プログラムすべきデータについてのパリティを生成する。ＥＣＣ部２０は、ＥＣＣバッファ２１及びＥＣＣエンジン２２を備えている。
【００２８】
ＥＣＣバッファ２１は、ＮＡＮＤデータバスによってデータ転送部１７と接続され、ＥＣＣデータバスによってＳＲＡＭ３０と接続される。ＥＣＣバッファ２１は、ＥＣＣ処理（ロード時は誤り訂正、プログラム時はパリティ生成）のために一時的にデータを格納する。ＥＣＣバッファ２１は、３２ビット幅のデータバスでデータ転送部１７と接続されている。ＥＣＣエンジン２２は、ＥＣＣバッファ２１に保持されるデータを用いてＥＣＣ処理を行う。具体的には、ＥＣＣエンジン２２は、ＥＣＣバッファ２１に入力されたデータ（Data）の誤り訂正し、訂正したデータ（Correct）を再びＥＣＣバッファ２１に出力する。
【００２９】
＜１−２−２．ＳＲＡＭ３０＞
ＳＲＡＭ３０は、ＮＡＮＤ型フラッシュメモリ２に対するバッファメモリとして機能する。ＳＲＡＭ３０は、ＤＱバッファ３１、メモリセルアレイ（SRAM Cell Array）３２、センスアンプ（Ｓ／Ａ）３３、及びロウデコーダ（Row Dec.）３４を備えている。ＤＱバッファ３１は、データのロード、読み出し、書き込み、及びプログラムの際に、メモリセルアレイ３２へのデータまたはメモリセルアレイ３２からのデータを一時的に格納する。メモリセルアレイ３２は、複数のＳＲＡＭセルを備えている。センスアンプ３３は、ＳＲＡＭセルからのデータを検知及び増幅し、また、ＤＱバッファ３１内のデータをＳＲＡＭセルに書き込む際の負荷としても機能する。ロウデコーダ３４は、メモリセルアレイ３２内の特定のワード線を選択する。
【００３０】
＜１−２−３．インターフェース部４０＞
インターフェース部４０は、バースト読み出し／書き込みバッファ（Burst Read/Write Buffer）４１、及びインターフェース（Ｉ／Ｆ）４２を備えている。
【００３１】
インターフェース４２は、メモリシステム１外部のホスト機器との間で、データ、制御信号、及びアドレス等の様々な信号の受け渡しを行なう。制御信号の一例は、メモリシステム１全体をイネーブルにするチップイネーブル信号／ＣＥ、アドレスをラッチさせるためのアドレスバリッド信号／ＡＶＤ、バースト読み出し用のクロックＣＬＫ、書き込み動作をイネーブルにするためのライトイネーブル信号／ＷＥ、及びデータの外部への出力をイネーブルにするためのアウトプットイネーブル信号／ＯＥなどである。また、インターフェース４２は、ホスト機器からの書き込み要求及び読み出し要求などに係る制御信号をアクセスコントローラ５０へ送る。
【００３２】
バッファ４１は、例えば１６ビット幅を有するＤＩＮ／ＤＯＵＴバスによりインターフェース４２と接続されている。バッファ４１は、データ読み出し及び書き込みのために、データを一時的に格納する。
【００３３】
＜１−２−４．アクセスコントローラ５０＞
アクセスコントローラ５０は、インターフェース４２から制御信号及びアドレスを受ける。そして、ホスト機器の要求を満たす動作を実行するように、ＳＲＡＭ３０及びコントローラ４を制御する。具体的には、アクセスコントローラ５０は、ホスト機器の要求に応じて、ＳＲＡＭ３０とコントローラ４の後述するレジスタ６０とのいずれかをアクティブ状態とする。そして、ＳＲＡＭ３０またはレジスタ６０に対するデータの書き込みコマンドまたは読み出しコマンド（Write/Read）を発行する。これらの制御により、ＳＲＡＭ３０及びコントローラ４は動作を開始する。
【００３４】
＜１−３．コントローラ４＞
コントローラ４は、メモリシステム１全体の動作を司る。コントローラ４は、レジスタ６０、コマンドユーザインターフェース（ＣＵＩ）６１、ステートマシン６２、ＮＡＮＤアドレス／コマンド発生回路（NAND Add/Command Gen.）６３、及びＳＲＡＭアドレス／タイミング発生回路（SRAM Add/Timing）６４を備えている。
【００３５】
レジスタ６０は、アクセスコントローラ５０からのコマンドに応じて、ファンクションの動作状態を設定するために使用される。具体的には、レジスタ６０は、例えば読み出しコマンドや書き込みコマンドを保持する。
【００３６】
コマンドユーザインターフェース６１は、所定のコマンドがレジスタ６０に保持されることで、メモリシステム１に対してファンクション実行コマンドが与えられたことを認識する。そして、内部コマンド信号（Command）をステートマシン６２へ送る。
【００３７】
ステートマシン６２は、コマンドユーザインターフェース６１から与えられる内部コマンド信号に基づいて、メモリシステム１内部におけるシーケンス動作を制御する。ステートマシン６２がサポートするファンクションは、書き込み、読み出し、及び消去を含め多数のものがある。ステートマシン６２は、これらのファンクションを実行するように、ＮＡＮＤ型フラッシュメモリ２及びＲＡＭ部３の動作を制御する。
【００３８】
アドレス／コマンド発生回路６３は、ステートマシン６２の制御に基づいてＮＡＮＤ型フラッシュメモリ２の動作を制御する。具体的には、アドレスやコマンド（Write/Read/Load）等を生成し、これらをＮＡＮＤ型フラッシュメモリ２へ送る。アドレス／コマンド発生回路６３は、オシレータ１６の生成する内部クロックＡＣＬＫと同期しながら、これらのアドレスやコマンドを出力する。
【００３９】
アドレス／タイミング発生回路６４は、ステートマシン６２の制御に基づいてＲＡＭ部３の動作を制御する。具体的には、ＲＡＭ部３において必要なアドレスやコマンドを発行して、これらをアクセスコントローラ５０及びＥＣＣエンジン２２へ送る。
【００４０】
＜１−４．メモリシステム１の動作＞
次に、メモリシステム１の動作について説明する。
【００４１】
メモリシステム１は、ＮＡＮＤ型フラッシュメモリ２とホスト機器との間のデータの受け渡しをＳＲＡＭ３０を介して行う第１の動作モード（ＯｎｅＮＡＮＤ（登録商標）モード）と、ＮＡＮＤ型フラッシュメモリ２とホスト機器との間のデータの受け渡しをＳＲＡＭ３０を介さないで行う第２の動作モード（ｐｕｒｅＮＡＮＤモード）とを有している。すなわち、ｐｕｒｅＮＡＮＤモードでは、ＮＡＮＤ型フラッシュメモリ２からのデータが直接Ｉ／Ｆ部４０に送られ、また、ホスト機器からのデータ（Ｉ／Ｆ部４０からのデータ）が直接ＮＡＮＤ型フラッシュメモリ２に送られる。
【００４２】
ｐｕｒｅＮＡＮＤモードとＯｎｅＮＡＮＤモードとでは、データ転送方式が異なるため、動作の定義が異なる。ＯｎｅＮＡＮＤモードでの動作の定義は、前述した通りである。ｐｕｒｅＮＡＮＤモードでは、ＳＲＡＭ３０を介したデータ転送が行われない。このため、ｐｕｒｅＮＡＮＤモードでは、一般的なＮＡＮＤ型フラッシュメモリと同様の読み出し動作、プログラム動作（書き込み動作という場合もある）、及び消去動作が実行される。
【００４３】
ＯｎｅＮＡＮＤモードにおいて、ホスト機器がＮＡＮＤ型フラッシュメモリ２にデータを記憶させるには、まずホスト機器からの書き込みコマンドとＳＲＡＭ３０のアドレスとに従って、データがＳＲＡＭ３０に格納される。その後、ホスト機器からのプログラムコマンドとＮＡＮＤ型フラッシュメモリ２のアドレスとに従って、ＳＲＡＭ３０に格納されたデータが、ページ単位で一括してＮＡＮＤ型フラッシュメモリ２に書き込まれる。
【００４４】
また、ＯｎｅＮＡＮＤモードにおいて、ホスト機器がＮＡＮＤ型フラッシュメモリ２内のデータを読み出すには、まずホスト機器からのロードコマンド、ＮＡＮＤ型フラッシュメモリ２のアドレス、及びＳＲＡＭ３０のアドレスに従って、データがＮＡＮＤ型フラッシュメモリ２から読み出され、ＳＲＡＭ３０に格納される。その後、ホスト機器からの読み出しコマンドとＳＲＡＭ３０のアドレスとに従って、ＳＲＡＭ３０に保持されたデータが、インターフェース部４０を介してホスト機器に送られる。
【００４５】
他方、ｐｕｒｅＮＡＮＤモードにおいて、ホスト機器がＮＡＮＤ型フラッシュメモリ２にデータを記憶させるには、ホスト機器からのプログラムコマンドとＮＡＮＤ型フラッシュメモリ２のアドレスとに従って、インターフェース部４０に入力されたデータが、ページ単位で一括してＮＡＮＤ型フラッシュメモリ２に書き込まれる。
【００４６】
また、ｐｕｒｅＮＡＮＤモードにおいて、ホスト機器がＮＡＮＤ型フラッシュメモリ２内のデータを読み出すには、ホスト機器からの読み出しコマンドとＮＡＮＤ型フラッシュメモリ２のアドレスとに従って、データがＮＡＮＤ型フラッシュメモリ２から読み出され、インターフェース部４０を介してホスト機器に送られる。
【００４７】
＜２．データ転送部１７＞
次に、データ転送部１７の構成及び動作について説明する。図３は、データ転送部１７の回路図である。ＯｎｅＮＡＮＤモード及びｐｕｒｅＮＡＮＤモードでは、データ転送時のビット幅が異なる。具体的には、ＯｎｅＮＡＮＤモードでは、データ転送部１７は、例えば３２ビット単位でデータ転送を実行する。また、ｐｕｒｅＮＡＮＤモードでは、データ転送部１７は、例えば１６ビット単位（又は８ビット単位）でデータ転送を実行する。
【００４８】
データ転送部１７は、第１のラッチ回路７０、第２のラッチ回路７１（７１Ａ及び７１Ｂを含む）、第３のラッチ回路７２、及び複数のデータバスを備えている。第１のラッチ回路７０は、ＯｎｅＮＡＮＤモード及びｐｕｒｅＮＡＮＤモードで共有されるラッチである。第２のラッチ回路７１Ａは、ＯｎｅＮＡＮＤモード用のラッチである。第２のラッチ回路７１Ｂ及び第３のラッチ回路７２は、ｐｕｒｅＮＡＮＤモード用のラッチである。第１のラッチ回路７０は、６４ビットのデータを保持する。第２のラッチ回路７１Ａは、３２ビットのデータを保持する。第２のラッチ回路７１Ｂは、１６ビットのデータを保持する。第３のラッチ回路７２は、１６ビットのデータを保持する。なお、図３に示したラッチ回路の１個の四角は、８ビットのデータを保持するラッチを示しており、以下の説明では、１個の四角を１個のラッチと呼ぶ。
【００４９】
第１のラッチ回路７０の一端は、データバスＩＯ／ＩＯｎ〈63:0〉を介してページバッファ１２に接続されている。図３には、アドレスで指定された６４ビット分のページバッファを抽出して示しており、実際には、ページバッファ１２は、図３より多くの容量を有している。
【００５０】
第１のラッチ回路７０の１６ビット分のラッチ（例えば、左から３番目及び４番目のラッチ）の他端は、８ビットのデータバスＯＵＴＬＬｎ〈7:0〉を介して、第２のラッチ回路７１Ａの８ビット分のラッチ（例えば、最も左側のラッチ）の一端に接続されている。第１のラッチ回路７０の１６ビット分のラッチ（例えば、右から３番目及び４番目のラッチ）の他端は、８ビットのデータバスＯＵＴＬＬｎ〈15:8〉を介して、第２のラッチ回路７１Ａの８ビット分のラッチ（例えば、左から２番目のラッチ）の一端に接続されている。
【００５１】
第１のラッチ回路７０の１６ビット分のラッチ（例えば、左から２個のラッチ）の他端は、８ビットのデータバスＯＵＴＬＬｎ〈23:16〉を介して、第２のラッチ回路７１Ａの８ビット分のラッチ（例えば、右から２番目のラッチ）の一端に接続されている。第１のラッチ回路７０の１６ビット分のラッチ（例えば、右から２個のラッチ）の他端は、８ビットのデータバスＯＵＴＬＬｎ〈31:24〉を介して、第２のラッチ回路７１Ａの８ビット分のラッチ（例えば、最も右側のラッチ）の一端に接続されている。
【００５２】
第２のラッチ回路７１Ａの他端は、３２ビットのバスＮＡＮＤ_ＲＷＤ〈31:0〉を介して、ＥＣＣ部２０に接続されている。
【００５３】
また、第１のラッチ回路７０の３２ビット分のラッチ（例えば、左から４個のラッチ）の他端は、８ビットのデータバスＯＵＴＬＬｎ〈7:0〉を介して、第２のラッチ回路７１Ｂの８ビット分のラッチ（例えば、左のラッチ）の一端に接続されている。第１のラッチ回路７０の３２ビット分のラッチ（例えば、右から４個のラッチ）の他端は、８ビットのデータバスＯＵＴＬＬｎ〈15:8〉を介して、第２のラッチ回路７１Ｂの一端に接続されている。
【００５４】
第２のラッチ回路７１Ｂの他端は、１６ビットのデータバスＯＵＴＬｎＸ８〈15:0〉を介して、第３のラッチ回路７２の一端に接続されている。第３のラッチ回路７２の他端は、１６ビットのデータバスＤＯＵＴ_ＮＡＮＤ〈15:0〉を介して、インターフェース部４０に接続されている。
【００５５】
図４は、比較例に係るデータ転送部の回路図である。比較例では、ＯｎｅＮＡＮＤモード及びｐｕｒｅＮＡＮＤモードで別々にバスが用意されている。すなわち、第１のラッチ回路７０は、ＯｎｅＮＡＮＤモード用のデータバスＯＵＴＬＬｎ〈63:0〉を介して、第２のラッチ回路７１Ｃに接続されると共に、ｐｕｒｅＮＡＮＤモード用のデータバスＮＳＯＵＴｎ〈15:0〉を介して、第２のラッチ回路７１Ｂに接続されている。第２のラッチ回路７１Ｃは、データバスＯＵＴＬｎ〈31:0〉を介して、第３のラッチ回路７２Ａに接続されている。第３のラッチ回路７２Ａは、データバスＮＡＮＤ_ＲＷＤ〈31:0〉を介して、ＥＣＣ部２０に接続されている。また、第２のラッチ回路７１Ｂは、第３のラッチ回路７２Ｂ、及びデータバスＤＯＵＴ_ＮＡＮＤ〈15:0〉を介して、インターフェース部４０に接続されている。
【００５６】
図３と図４とを比較すると、本実施形態では、第１のラッチ回路７０と第２のラッチ回路７１との間のデータバスをＯｎｅＮＡＮＤモード及びｐｕｒｅＮＡＮＤモードで共有することで、バスの本数を８０本から３２本へと大幅に削減している。また、比較例と比べて、ＯｎｅＮＡＮＤモード用の第２のラッチ回路７１Ａを３２ビット分に削減するとともに、ＯｎｅＮＡＮＤモード用の第３のラッチ回路を削除している。これにより、データ転送部１７のサイズを大幅に削減することができる。
【００５７】
図５は、ＯｎｅＮＡＮＤモードにおけるデータ転送方式を説明する模式図である。図６は、ＯｎｅＮＡＮＤモードにおけるデータ転送方式を説明するタイミングチャートである。
【００５８】
本実施形態のＯｎｅＮＡＮＤモードは、「ページバッファ（６４ビット）→第１のラッチ回路（６４→３２ビット）→第２のラッチ回路（３２ビット）」の２ステージでのデータ転送方式である。ページバッファ１２は、２５ｎｓ周期クロックＣＬＫ０を受け、このクロックＣＬＫ０の立ち上がりに同期して６４ビット単位でデータＤＡＴＡ０を出力する。
【００５９】
第１のラッチ回路７０は、２５ｎｓ周期クロックＣＬＫ２ａを受け、このクロックＣＬＫ２ａの立ち上がりに同期して６４ビット単位でデータＤＡＴＡ２ａを取り込む。さらに、第１のラッチ回路７０は、クロックＣＬＫ２_Ｌ及びＣＬＫ２_Ｕを受け、このクロックＣＬＫ２_Ｌ及びＣＬＫ２_Ｕの立ち上がりに同期して３２ビット単位でデータＤＡＴＡ２を出力する。
【００６０】
具体的には、第１のラッチ回路７０は、クロックＣＬＫ２_Ｌの立ち上がりに同期して、６４ビットデータＤ０〈63:0〉のうち３２ビットのＬｏｗｅｒデータＤ０_Ｌを出力する。続いて、第１のラッチ回路７０は、クロックＣＬＫ２_Ｕの立ち上がりに同期して、６４ビットデータＤ０〈63:0〉のうち３２ビットのＵｐｐｅｒデータＤ０_Ｕを出力する。図６のクロックＣＬＫ２ｂ及びＣＬＫ２ｃは、クロックＣＬＫ２_Ｌ及びＣＬＫ２_Ｕを生成するためのクロックである。クロックＣＬＫ２ｂは、２５ｎｓ周期クロックであり、クロックＣＬＫ２ｃは、１２．５ｎｓ周期クロックである。
【００６１】
第２のラッチ回路７１Ａは、１２．５ｎｓ周期クロックＣＬＫ３を受け、このクロックＣＬＫ３の立ち下がりに同期して３２ビット単位でデータＤＡＴＡ３を出力する。ＥＣＣ部２０は、１２．５ｎｓ周期クロックの立ち上がりに同期して、データ転送部１７から３２ビット単位でデータを受ける。
【００６２】
図６に示した各種のクロックは、ＮＡＮＤシーケンサ１４からデータ転送部１７に供給される。図７は、ＮＡＮＤシーケンサ１４の構成を示すブロック図である。例えば、クロックＣＬＫ０は、オシレータ１５によって生成される。クロックＣＬＫ２ａは、クロック生成回路１４ａによって生成される。クロックＣＬＫ２_Ｌ及びＣＬＫ２_Ｕは、クロック生成回路１４ｂによって生成される。クロックＣＬＫ３は、クロック生成回路１４ｃによって生成される。
【００６３】
図８は、比較例に係るデータ転送方式を説明する模式図である。図９は、比較例に係るデータ転送方式を説明するタイミングチャートである。比較例は、「ページバッファ（６４ビット）→第１のラッチ回路（６４ビット）→第２のラッチ回路（６４→３２ビット）→第３のラッチ回路（３２ビット）」の３ステージでのデータ転送方式である。
【００６４】
第１のラッチ回路７０は、プリフェッチと呼ばれるデータ先読み動作を実行する。第１のラッチ回路７０は、２５ｎｓ周期クロックＣＬＫ１を受け、このクロックＣＬＫ１の立ち下がりに同期して６４ビット単位でデータＤＡＴＡ１を出力する。
【００６５】
第２のラッチ回路７１Ｃは、１２．５ｎｓ周期クロックＣＬＫ２_Ｌ及びＣＬＫ２_Ｕを受け、このクロックＣＬＫ２_Ｌ及びＣＬＫ２_Ｕの立ち上がりに同期して３２ビット単位でデータＤＡＴＡ２を出力する。第３のラッチ回路７２Ａは、１２．５ｎｓ周期クロックＣＬＫ３を受け、このクロックＣＬＫ３の立ち上がりに同期して３２ビット単位でデータＤＡＴＡ３を出力する。
【００６６】
本実施形態では、比較例のようなプリフェッチを行わず、かつ第１のラッチ回路７０が６４ビットから３２ビットへの変換を行うようにすることで、バスの本数及びラッチ回路を削減した場合でも、メモリシステム１がＯｎｅＮＡＮＤモードを実現できる。また、図６と図９とを比較すると、比較例ではクロックＣＬＫ３の４パルス目でデータＤＯ_ＬがＥＣＣ部２０に転送されるのに対し、本実施形態ではクロックＣＬＫ３の２パルス目でデータＤＯ_ＬをＥＣＣ部２０に転送することができる。
【００６７】
なお、ＥＣＣ部２０からデータ転送部１７を介してページバッファ１２へのデータ転送動作は、図５のフローが逆になる。また、ｐｕｒｅＮＡＮＤモードでは、ビット幅の変換が不要であるため、第１のラッチ回路７０、第２のラッチ回路７１Ｂ、及び第３のラッチ回路７２により同じクロック（例えば２５ｎｍ周期クロック）でデータ転送が行われる。
【００６８】
（効果）
以上詳述したように第１の実施形態では、コントローラ４は、データ転送時のビット幅が異なる２種類の動作モード（ＯｎｅＮＡＮＤモード及びｐｕｒｅＮＡＮＤモード）を実行する。ＯｎｅＮＡＮＤモードは、ＮＡＮＤ型フラッシュメモリ２とホスト機器との間のデータの受け渡しをＳＲＡＭ３０を介して行う動作モードであり、この動作モードにおいて、データ転送部１７は、ページバッファ１２とＥＣＣ部２０との間のデータ転送を受け持つ。ｐｕｒｅＮＡＮＤモードは、ＮＡＮＤ型フラッシュメモリ２とホスト機器との間のデータの受け渡しをＳＲＡＭ３０を介さないで行う動作モードであり、この動作モードにおいて、データ転送部１７は、ページバッファ１２とインターフェース部４０との間のデータ転送を受け持つ。そして、データ転送部１７は、ＯｎｅＮＡＮＤモード及びｐｕｒｅＮＡＮＤモードにおいてデータバスを共有するようにしている。さらに、データ転送部１７は、ラッチ動作の第１ステージにおいて、６４ビットから３２ビットへ変換してデータ転送を行うようにしている。
【００６９】
従って第１の実施形態によれば、ページバッファ１２及びＥＣＣ部２０間に設けられたデータバスの本数を大幅に削減することができる。これにより、チップ面積を縮小することが可能となる。
【００７０】
また、データバスの本数削減に応じて、データ転送部１７のデータ転送方式を変更したことで、データ転送部１７に含まれるラッチ回路の数を削減することができる。これにより、チップ面積を縮小することができる。
【００７１】
また、ＯｎｅＮＡＮＤモードにおいて、プリフェッチを行わずに正確にデータ転送が実現できる。これにより、データ転送速度を向上させることができる。
【００７２】
［第２の実施形態］
ＯｎｅＮＡＮＤモードとＰｕｒｅＮＡＮＤモードとではデータ転送方式が異なるため、ＥＣＣ部２０は、ＯｎｅＮＡＮＤモード用のデータの流れに最適なように設計されている。第２の実施形態では、ＯｎｅＮＡＮＤモード用に設けられたＥＣＣ部２０をＰｕｒｅＮＡＮＤモードにおいて使用できるようにするための構成例である。
【００７３】
図１０は、第２の実施形態に係るメモリシステム１の概略図である。図１０には、図１のブロック図のうち、ＰｕｒｅＮＡＮＤモードにおける誤り訂正動作に関与するブロック（コントローラ４、メモリセルアレイ（NAND Cell Array）１０、ページバッファ１２、ＮＡＮＤシーケンサ１４、データ転送部１７、ＥＣＣ部２０、及びインターフェース部４０）を抽出して示している。図１０に示されたブロック以外の構成は、図１と同じである。
【００７４】
ページバッファ１２は、例えば５１２バイトのサイズをそれぞれが有する８個のセクタ（１ｓｅｃ〜８ｓｅｃ）を含み、そのサイズは「５１２バイト×８＝４０９６バイト（＝４Ｋバイト、但しＫは１０２４）」である。パリティ生成及び誤り訂正は、セクタ単位で行われる。
【００７５】
まず、ＰｕｒｅＮＡＮＤモードにおいて、ホスト機器からの書き込みデータをメモリセルアレイ１０にプログラムする動作について説明する。図１１は、ＰｕｒｅＮＡＮＤモードにおけるプログラム動作を説明する模式図である。図１２は、ＰｕｒｅＮＡＮＤモードにおけるプログラム動作を示すフローチャートである。
【００７６】
まず、インターフェース部４０は、ホスト機器からプログラムコマンド、アドレス、及び１ページ分の書き込みデータを受ける。続いて、コントローラ４は、ＰｕｒｅＮＡＮＤモードに入る。そして、データ転送部１７は、書き込みデータをインターフェース部４０からページバッファ１２へ転送する（ステップＳ１００）。
【００７７】
続いて、コントローラ４は、第１セクタのデータをデータ転送部１７を介してＥＣＣ部２０へ転送する（ステップＳ１０１）。この時、コントローラ４は、ＯｎｅＮＡＮＤモードに切り替わり、同時にクロックもＯｎｅＮＡＮＤモードで使用するクロックに切り替わる。そして、コントローラ４は、３２ビット単位でページバッファ１２及びＥＣＣ部２０間のデータ転送を実行する。
【００７８】
続いて、ＥＣＣ部２０は、第１セクタのデータに対してパリティデータを生成する（ステップＳ１０２）。続いて、ＥＣＣ部２０は、書き込みデータ及びパリティデータをページバッファ１２へ転送する（書き戻す）（ステップＳ１０３）。続いて、コントローラ４は、ステップＳ１０１〜Ｓ１０３を、第８セクタのデータ転送が完了するまで繰り返す（ステップＳ１０４）。その後、コントローラ４は、ＰｕｒｅＮＡＮＤモードに戻る。
【００７９】
続いて、ＮＡＮＤシーケンサ１４は、ページバッファ１２のデータをメモリセルアレイ１０にプログラムする（ステップＳ１０５）。
【００８０】
次に、ＰｕｒｅＮＡＮＤモードにおいて、メモリセルアレイ１０からデータを読み出す動作について説明する。図１３は、ＰｕｒｅＮＡＮＤモードにおける読み出し動作を説明する模式図である。図１４は、ＰｕｒｅＮＡＮＤモードにおける読み出し動作を示すフローチャートである。
【００８１】
まず、インターフェース部４０は、ホスト機器から読み出しコマンド、及びアドレスを受ける。続いて、コントローラ４は、ＰｕｒｅＮＡＮＤモードに入る。そして、ページバッファ１２は、メモリセルアレイ１０からデータを読み出し（ステップＳ２００）、この読み出しデータを格納する。
【００８２】
続いて、コントローラ４は、第１セクタのデータを、ページバッファ１２からデータ転送部１７を介してＥＣＣ部２０へ転送する（ステップＳ２０１）。この時、コントローラ４は、ＯｎｅＮＡＮＤモードに切り替わり、同時にクロックもＯｎｅＮＡＮＤモードで使用するクロックに切り替わる。そして、コントローラ４は、３２ビット単位でページバッファ１２及びＥＣＣ部２０間のデータ転送を実行する。
【００８３】
続いて、ＥＣＣ部２０は、第１セクタのデータに対して誤り検出を行う（ステップＳ２０２）。第１セクタのデータに誤りが存在する場合（ステップＳ２０３）、ＥＣＣ部２０は、誤り情報（エラーアドレス、信号ＬＯＷＥＲＲ／ＵＰＥＲＲ）をコントローラ４へ送る（ステップＳ２０４）。信号ＬＯＷＥＲＲ／ＵＰＥＲＲは、６４ビットデータのうち、ＬｏｗｅｒデータとＵｐｐｅｒデータとのどちらの３２ビットデータに誤りが存在するかを示す情報である。
【００８４】
続いて、データ転送部１７は、誤りを含んだ３２ビットデータをページバッファ１２からＥＣＣ部２０へ転送する。具体的には、コントローラ４の制御の下、ＮＡＮＤシーケンサ１４は、エラーアドレスに対応するカラム選択信号ＣＳＬを活性化する。このカラム選択信号ＣＳＬはページバッファ１２に送られ、ページバッファ１２は、カラム選択信号ＣＳＬに対応する３２ビットデータを出力する（ステップＳ２０５）。
【００８５】
ページバッファ１２からＥＣＣ部２０へデータ転送する際、データ転送部１７は、誤りを含んだ３２ビットデータがＬｏｗｅｒデータであるかＵｐｐｅｒデータであるかを判断する。ＯｎｅＮＡＮＤモードのロード動作では、図６に示すように、Ｌｏｗｅｒ側のクロックＣＬＫ２_Ｌからデータ転送を開始して、「Ｌｏｗｅｒデータ→Ｕｐｐｅｒデータ→Ｌｏｗｅｒデータ→Ｕｐｐｅｒデータ・・・」と１３２クロックを繰り返して５１２バイトデータを転送する。誤り訂正時のデータ転送動作は、ロード動作と基本動作は同じであり、ＮＡＮＤシーケンサ１４は、誤りを含んだ３２ビットデータを転送するのに必要なクロックをデータ転送部１７に供給する。
【００８６】
誤り訂正時のデータ転送では、Ｌｏｗｅｒデータに誤りが存在する場合にはＬＯＷＥＲＲ＝１／ＵＰＥＲＲ＝０となり、Ｌｏｗｅｒ側のクロックＣＬＫ２_Ｌのみを動作させる。一方、Ｕｐｐｅｒデータに誤りが存在する場合にはＬＯＷＥＲＲ＝０／ＵＰＥＲＲ＝１となり、Ｕｐｐｅｒ側のクロックＣＬＫ２_Ｕのみを動作させる。このクロックＣＬＫ２_Ｌ及びＣＬＫ２_Ｕを生成するクロック生成回路１４ｂの一例を図１５に示す。
【００８７】
クロックＣＬＫ２ｃは、インバータ回路ＩＶ１の入力に供給されている。インバータ回路ＩＶ１の出力は、インバータ回路ＩＶ２を介してＮＡＮＤ回路ＮＤ１の第１の入力に接続されると共に、ＮＯＲ回路ＮＲ１の第１の入力に接続されている。
【００８８】
クロックＣＬＫ２ｂは、インバータ回路ＩＶ４及びクロックドインバータ回路ＩＶ５の入力に供給されている。クロックドインバータ回路ＩＶ５の出力は、インバータ回路ＩＶ７の入力に接続されている。インバータ回路ＩＶ４の出力は、クロックドインバータ回路ＩＶ６を介してインバータ回路ＩＶ７の入力に接続されている。インバータ回路ＩＶ７の出力は、ＮＡＮＤ回路ＮＤ１及びＮＯＲ回路ＮＲ１の第２の入力に接続されている。クロックドインバータ回路ＩＶ５は、信号ＵＰＥＲＲ＝１の時に動作する。クロックドインバータ回路ＩＶ６は、信号ＬＯＷＥＲＲ＝１の時に動作する。
【００８９】
ＮＡＮＤ回路ＮＤ１の出力は、インバータ回路ＩＶ３の入力に接続され、インバータ回路ＩＶ３は、クロックＣＬＫ２_Ｕを出力する。ＮＯＲ回路ＮＲ１の出力は、インバータ回路ＩＶ８を介して、インバータ回路ＩＶ９の入力に接続されている。インバータ回路ＩＶ９は、クロックＣＬＫ２_Ｌを出力する。
【００９０】
このように構成されたクロック生成回路１４ｂでは、カラム選択信号ＣＳＬによって選択された３２ビットデータを転送する際、ＬＯＷＥＲＲ＝１の時にＬｏｗｅｒ側のクロックＣＬＫ２_Ｌのみが動作し、ＵＰＥＲＲ＝１の時にＵｐｐｅｒ側のクロックＣＬＫ２_Ｕのみが動作する。これにより、データ転送部１７は、クロックＣＬＫ２_Ｌ或いはクロックＣＬＫ２_Ｕを受けることで、カラム選択信号ＣＳＬによって選択された３２ビットデータをＥＣＣ部２０へ転送することができる。
【００９１】
続いて、誤りを含んだ３２ビットデータがＥＣＣ部２０へ転送されると（ステップＳ２０６）、ＥＣＣ部２０は、誤り訂正を行う（ステップＳ２０７）。続いて、データ転送部１７は、誤り訂正された３２ビットデータをＥＣＣ部２０からページバッファ１２へ転送する（書き戻す）（ステップＳ２０８）。このステップＳ２０８でのクロック制御は、ステップＳ２０６と同じである。
【００９２】
続いて、コントローラ４は、ステップＳ２０１〜Ｓ２０８を、第８セクタのデータ転送が完了するまで繰り返す（ステップＳ２０９）。その後、コントローラ４は、ＰｕｒｅＮＡＮＤモードに戻る。
【００９３】
続いて、データ転送部１７は、８ビット単位又は１６ビット単位で、ページバッファ１２のデータをインターフェース部４０に転送する（ステップＳ２１０）。そして、インターフェース部４０に転送されたデータは、ホスト機器に出力される。
【００９４】
以上詳述したように第２の実施形態によれば、ＰｕｒｅＮＡＮＤモードにおけるデータ転送時に、ＯｎｅＮＡＮＤモード用に設けられたＥＣＣ部２０を用いて誤り訂正が実現できる。このため、ＰｕｒｅＮＡＮＤモードのデータ転送方式に対応したＥＣＣ回路をチップ外部或いはチップ内部に新たに設ける必要がない。これにより、メモリシステム１の製造コストを低減しつつ、ＰｕｒｅＮＡＮＤモード時のデータ信頼性を向上することができる。
【００９５】
［第３の実施形態］
ＯｎｅＮＡＮＤモード及びＰｕｒｅＮＡＮＤモードでは、複数種類のクロックを使用している。このクロックを生成するクロック生成回路は、遅延回路を用いてクロック周期を調整している。この遅延回路に使用されるキャパシタや抵抗はトランジスタに比べて面積が大きく、チップ面積の縮小化を妨げる要因の１つである。第３の実施形態は、ＯｎｅＮＡＮＤモード及びＰｕｒｅＮＡＮＤモードにおいてクロック生成回路に含まれる遅延回路を共有することで、チップ面積を縮小するようにしている。
【００９６】
図１６は、第３の実施形態に係るクロック生成回路８０のブロック図である。クロック生成回路８０は、入力切替回路８１、２個の遅延回路８２及び８５、２個のデコーダ８３及び８６、選択回路８４及び８７、及び出力回路８８を備えている。
【００９７】
クロック生成回路８０は、ＯｎｅＮＡＮＤモード用のクロックＳｉｇ−Ｏｎｅを受け、このクロックＳｉｇ-Ｏｎｅを用いてクロックＤ−Ｏｎｅを生成する。また、クロック生成回路８０は、ＰｕｒｅＮＡＮＤモード用のクロックＳｉｇ−Ｐｕｒｅを受け、このクロックＳｉｇ−Ｐｕｒｅを用いてクロックＤ−Ｐｕｒｅを生成する。
【００９８】
図１７は、ＯｎｅＮＡＮＤモード用のクロックを説明する図である。クロックＳｉｇ−Ｏｎｅは、チップ内部で生成される信号であり、２５ｎｓ周期で動作するように設計されている。クロックＤ−Ｏｎｅは、クロックＳｉｇ−Ｏｎｅから生成される信号であり、ＯｎｅＮＡＮＤモードを実行するために、２５ｎｓ周期の半分の１２．５ｎｓ周期で動作するよう要求されている。第１の実施形態との対応関係を説明すると、クロック生成回路８０は、クロック生成回路１４ｃや、クロック生成回路１４ｂに含まれるクロックＣＬＫ２ｃを生成する回路に対応し、これに加えて、ＰｕｒｅＮＡＮＤモード用のクロックを生成する回路を含む構成である。クロックＳｉｇ−Ｏｎｅは、図６のクロックＣＬＫ０に対応する。クロックＤ−Ｏｎｅは、図６のクロックＣＬＫ２ｃ及びクロックＣＬＫ３に対応する。
【００９９】
図１８は、ＰｕｒｅＮＡＮＤモード用のクロックを説明する図である。クロックＳｉｇ−Ｐｕｒｅは、例えば外部から入力される信号であり、周期は製品の仕様に応じて異なるが、一般的には２５ｎｓ周期である。本実施形態では、クロックＳｉｇ−Ｐｕｒｅの周期を２５ｎｓとする。クロックＤ−Ｐｕｒｅは、クロックＳｉｇ−Ｐｕｒｅから生成される信号であり、ＰｕｒｅＮＡＮＤモードを実行するために、２５ｎｓ周期で動作するよう要求されている。第１の実施形態との対応関係を説明すると、クロックＤ−Ｐｕｒｅは、図３の第２のラッチ回路７１Ｂ及び第３のラッチ回路７２を動作させるためのクロックである。
【０１００】
図１９は、入力切替回路８１及び遅延回路８２，８５の回路図である。入力切替回路８１は、２個のクロックドインバータ回路８１−１，８１−２、及び２個のインバータ回路８１−３，８１−４を備えている。
【０１０１】
クロックドインバータ回路８１−１の入力には、クロックＳｉｇ−Ｏｎｅが供給されている。クロックドインバータ回路８１−１の出力は、インバータ回路８１−４の入力に接続されている。クロックドインバータ回路８１−２の入力には、クロックＳｉｇ−Ｐｕｒｅが供給されている。クロックドインバータ回路８１−２の出力は、インバータ回路８１−４の入力に接続されている。
【０１０２】
インバータ回路８１−３の入力には、ＯｎｅＮＡＮＤモードとＰｕｒｅＮＡＮＤモードとを切り替えるための信号Ｆ−ｍｏｄｅが供給されている。インバータ回路８１−３は、信号Ｆ−ｍｏｄｅの反転信号Ｆ−ｍｏｄｅｎを出力する。信号Ｆ−ｍｏｄｅは、コントローラ４から供給される。信号Ｆ−ｍｏｄｅは、ＯｎｅＮＡＮＤモードの時にローレベル、ＰｕｒｅＮＡＮＤモードの時にハイレベルとなる。クロックドインバータ回路８１−１はＯｎｅＮＡＮＤモードの時に動作し、クロックドインバータ回路８１−２はＰｕｒｅＮＡＮＤモードの時に動作する。よって、クロックＳｉｇ−ＯｎｅはＯｎｅＮＡＮＤモードの時に有効となり、クロックＳｉｇ−ＰｕｒｅはＰｕｒｅＮＡＮＤモードの時に有効となる。
【０１０３】
インバータ回路８１−４の出力は、遅延回路８２の入力に接続されている。また、インバータ回路８１−４の出力は、インバータ回路８１−５を介して遅延回路８５の入力に接続されている。
【０１０４】
遅延回路８２は、ＰチャネルＭＯＳＦＥＴ（Metal Oxide Semiconductor Field Effect Transistor）８２−１、抵抗８２−２、ＮチャネルＭＯＳＦＥＴ８２−３、１４個のキャパシタＣ、選択トランジスタ群９０、及び選択トランジスタ群９１を備えている。
【０１０５】
ＰＭＯＳＦＥＴ８２−１のソースは電源端子ＶＤＤに接続され、ゲートはインバータ回路８１−４の出力に接続され、ドレインは抵抗８２−２の一端に接続されている。ＮＭＯＳＦＥＴ８２−３のドレインはノードＣ１を介して抵抗８２−２の他端に接続され、ゲートはインバータ回路８１−４の出力に接続され、ソースは接地端子ＶＳＳに接続されている。
【０１０６】
選択トランジスタ群９０は、例えば７個のＮＭＯＳＦＥＴ９０−１〜９０−７からなる。ＮＭＯＳＦＥＴ９０−１〜９０−７のドレインはそれぞれ７個のキャパシタＣの一方の電極に接続され、ゲートにはそれぞれデコーダ８３から選択信号Ｓｒ１〜Ｓｒ７が供給され、ソースはそれぞれ接地端子ＶＳＳに接続されている。選択トランジスタ群９０に接続された７個のキャパシタＣの他方の電極は、ノードＣ１に接続されている。
【０１０７】
選択トランジスタ群９１は、例えば７個のＮＭＯＳＦＥＴ９１−１〜９１−７からなる。ＮＭＯＳＦＥＴ９１−１〜９１−７のドレインはそれぞれ７個のキャパシタＣの一方の電極に接続され、ゲートにはそれぞれ選択回路８４から選択信号ＳｒＦ１〜ＳｒＦ７が供給され、ソースはそれぞれ接地端子ＶＳＳに接続されている。選択トランジスタ群９１に接続された７個のキャパシタＣの他方の電極は、ノードＣ１に接続されている。遅延回路８２に含まれるキャパシタＣの数は、任意に設定可能である。
【０１０８】
遅延回路８５は、ＰＭＯＳＦＥＴ８５−１、抵抗８５−２、ＮチャネルＭＯＳＦＥＴ８５−３、１４個のキャパシタＣ、選択トランジスタ群９２、及び選択トランジスタ群９３を備えている。
【０１０９】
ＰＭＯＳＦＥＴ８５−１のソースは電源端子ＶＤＤに接続され、ゲートはインバータ回路８１−５の出力に接続され、ドレインは抵抗８５−２の一端に接続されている。ＮＭＯＳＦＥＴ８５−３のドレインはノードＣ２を介して抵抗８５−２の他端に接続され、ゲートはインバータ回路８１−５の出力に接続され、ソースは接地端子ＶＳＳに接続されている。
【０１１０】
選択トランジスタ群９２は、例えば７個のＮＭＯＳＦＥＴ９２−１〜９２−７からなる。ＮＭＯＳＦＥＴ９２−１〜９２−７のドレインはそれぞれ７個のキャパシタＣの一方の電極に接続され、ゲートにはそれぞれデコーダ８６から選択信号Ｓｆ１〜Ｓｆ７が供給され、ソースはそれぞれ接地端子ＶＳＳに接続されている。選択トランジスタ群９２に接続された７個のキャパシタＣの他方の電極は、ノードＣ２に接続されている。
【０１１１】
選択トランジスタ群９３は、例えば７個のＮＭＯＳＦＥＴ９３−１〜９３−７からなる。ＮＭＯＳＦＥＴ９３−１〜９３−７のドレインはそれぞれ７個のキャパシタＣの一方の電極に接続され、ゲートにはそれぞれ選択回路８７から選択信号ＳｆＦ１〜ＳｆＦ７が供給され、ソースはそれぞれ接地端子ＶＳＳに接続されている。選択トランジスタ群９３に接続された７個のキャパシタＣの他方の電極は、ノードＣ２に接続されている。遅延回路８５に含まれるキャパシタＣの数は、任意に設定可能である。遅延回路８２及び８５に含まれるキャパシタＣは、全て同じ容量である。
【０１１２】
図２０は、デコーダ８３の回路図である。デコーダ８３は、３個のＮＯＲ回路８３−１〜８３−３、ＡＮＤ回路８３−４、ＯＲ回路８３−５、３個のＮＡＮＤ回路８３−６〜８３−８、８個のインバータ回路８３−９〜８３−１６を備えている。
【０１１３】
デコーダ８３は、クロックのタイミングを調整するためのトリム信号ｔｒｍ１〈２：０〉を受け、このトリム信号ｔｒｍ１〈２：０〉をデコードして選択信号Ｓｒ１〜Ｓｒ７を生成する。トリム信号ｔｒｍ１〈２：０〉は、コントローラ４から供給される。図２１は、選択信号Ｓｒを説明する図である。この選択信号Ｓｒによって選択トランジスタ群９０のうちオンするＮＭＯＳＦＥＴの数を制御できるため、ノードＣ１の容量を制御できる。
【０１１４】
デコーダ８６は、デコーダ８３と同様の構成であり、図２０のトリム信号ｔｒｍ１〈２：０〉をｔｒｍ２〈２：０〉に変更し、選択信号ＳｒをＳｆに変更することで実現できる。
【０１１５】
図２２は、選択回路８４の回路図である。選択回路８４は、選択信号Ｓｒの数に対応する７個の回路部分８４−１〜８４−７を備えている。回路部分８４−１は、ＮＡＮＤ回路８４Ａ及びインバータ回路８４Ｂを備えている。ＮＡＮＤ回路８４Ａの第１の入力には、選択信号Ｓｒ１が供給されている。ＮＡＮＤ回路８４Ａの第２の入力には、信号Ｆ−ｍｏｄｅが供給されている。ＮＡＮＤ回路８４Ａの出力は、インバータ回路８４Ｂの入力に接続されている。インバータ回路８４Ｂは、選択信号Ｓｒ１Ｆを出力する。回路部分８４−２〜８４−７の構成は、回路部分８４−１と同じである。選択回路８４は、信号Ｆ−ｍｏｄｅがハイレベルの時、すなわちＰｕｒｅＮＡＮＤモード時に、選択信号Ｓｒ〈７：１〉Ｆを活性化する。
【０１１６】
図２３は、出力回路８８の回路図である。出力回路８８は、差動増幅器８８−１、インバータ回路８８−２、及び出力選択回路８８−３を備えている。
【０１１７】
差動増幅器８８−１は、２個のＰＭＯＳＦＥＴ８８Ａ，８８Ｂ、及び３個のＮＭＯＳＦＥＴ８８Ｃ〜８８Ｅを備えている。ＰＭＯＳＦＥＴ８８Ａのソースは電源端子ＶＤＤに接続され、ゲートは自身のソースに接続されるとともにＮＭＯＳＦＥＴ８８Ｃのドレインに接続されている。ＮＭＯＳＦＥＴ８８Ｃのゲートは遅延回路８５のノードＣ２に接続され、ソースはＮＭＯＳＦＥＴ８８Ｅのドレインに接続されている。ＮＭＯＳＦＥＴ８８Ｅのゲートには参照電圧ＲＥＦが印加され、ソースは接地端子ＶＳＳに接続されている。
【０１１８】
ＰＭＯＳＦＥＴ８８Ｂのソースは電源端子ＶＤＤに接続され、ゲートはＰＭＯＳＦＥＴ８８Ａのゲートに接続され、ドレインはＮＭＯＳＦＥＴ８８Ｄのドレインに接続されている。ＮＭＯＳＦＥＴ８８Ｄのゲートは遅延回路８２のノードＣ１に接続され、ソースはＮＭＯＳＦＥＴ８８Ｅのドレインに接続されている。
【０１１９】
差動増幅器８８−１は、ノードＣ１とノードＣ２との電圧差を増幅して出力する。差動増幅器８８−１の出力は、インバータ回路８８−２の入力に接続されている。インバータ回路８８−２は、クロックＤ−Ｓａｍｅを出力する。クロックＤ−Ｓａｍｅは、出力切替回路８８−３に供給されている。
【０１２０】
出力切替回路８８−３は、２個ＮＡＮＤ回路８８Ｆ，８８Ｈ、及び２個のインバータ回路８８Ｇ，８８Ｉを備えている。ＮＡＮＤ回路８８Ｆの第１の入力にはクロックＤ−Ｓａｍｅが供給され、第２の入力には信号Ｆ−ｍｏｄｅｎが供給されている。ＮＡＮＤ回路８８Ｆの出力は、インバータ回路８８Ｇの入力に接続されている。インバータ回路８８Ｇは、クロックＤ−Ｏｎｅを出力する。
【０１２１】
ＮＡＮＤ回路８８Ｈの第１の入力にはクロックＤ−Ｓａｍｅが供給され、第２の入力には信号Ｆ−ｍｏｄｅが供給されている。ＮＡＮＤ回路８８Ｈの出力は、インバータ回路８８Ｉの入力に接続されている。インバータ回路８８Ｉは、クロックＤ−Ｐｕｒｅを出力する。
【０１２２】
出力切替回路８８−３は、信号Ｆ−ｍｏｄｅがハイレベルの時、すなわちＰｕｒｅＮＡＮＤモード時に、クロックＤ−Ｐｕｒｅを出力する。また、出力切替回路８８−３は、信号Ｆ−ｍｏｄｅがローレベルの時、すなわちＯｎｅＮＡＮＤモード時に、クロックＤ−Ｏｎｅを出力する。
【０１２３】
次に、このように構成されたクロック生成回路８０の動作について説明する。クロック生成回路８０は、ノードＣ１及びノードＣ２の容量の充放電時間の差で、クロックの遅延時間を調整している。
【０１２４】
ＯｎｅＮＡＮＤモードとＰｕｒｅＮＡＮＤモードとでは要求される遅延時間が異なるため、遅延回路８２及び８５は、ＯｎｅＮＡＮＤモードとＰｕｒｅＮＡＮＤモードとで活性化されるキャパシタＣの数が制御できるよう構成されている。
【０１２５】
遅延回路８２は、ＯｎｅＮＡＮＤモードにおいては、選択トランジスタ群９０に接続された７個のキャパシタＣを使用し、ＰｕｒｅＮＡＮＤモードにおいては、選択トランジスタ群９０及び９１に接続された１４個のキャパシタＣを使用する。同様に、遅延回路８５は、ＯｎｅＮＡＮＤモードにおいては、選択トランジスタ群９２に接続された７個のキャパシタＣを使用し、ＰｕｒｅＮＡＮＤモードにおいては、選択トランジスタ群９２及び９３に接続された１４個のキャパシタＣを使用する。ＯｎｅＮＡＮＤモード時に比べてＰｕｒｅＮＡＮＤモード時に使用するキャパシタＣの数が多いのは、ＰｕｒｅＮＡＮＤモード用のクロックＤ−Ｐｕｒｅの周期が長いからである。
【０１２６】
また、図１７に示すように、ＯｎｅＮＡＮＤモードにおいて、トリム信号ｔｒｍ１〈２：０〉及びトリム信号ｔｒｍ２〈２：０〉を制御することで、クロックＤ−Ｏｎｅの立ち上がり及び立ち下がりのタイミングを調整することができる。同様に、図１８に示すように、ＰｕｒｅＮＡＮＤモードにおいて、トリム信号ｔｒｍ１〈２：０〉及びトリム信号ｔｒｍ２〈２：０〉を制御することで、クロックＤ−Ｐｕｒｅの立ち上がり及び立ち下がりのタイミングを調整することができる。
【０１２７】
以上詳述したように第３の実施形態によれば、１個のクロック生成回路８０によって、ＯｎｅＮＡＮＤモード用の１２．５ｎｓ周期クロックＤ−Ｏｎｅと、ＰｕｒｅＮＡＮＤモード用の２５ｎｓ周期クロックＤ−Ｐｕｒｅとを生成することができる。
【０１２８】
また、ＯｎｅＮＡＮＤモードとＰｕｒｅＮＡＮＤモードとで、遅延回路８２及び８５を構成するキャパシタ及び抵抗と、デコーダ８３及び８６を共有することができる。一方で、キャパシタ、抵抗、及びデコーダを共有することで、入力切替回路８１、選択回路８４及び８７、及び出力切替回路８８−３を追加する必要があるが、クロック生成回路８０のうちキャパシタ、抵抗、及びデコーダが面積の約８０％を占めており、そのほとんどが共有化できるので、チップ面積の削減効果は大きい。
【０１２９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１３０】
１…メモリシステム、２…ＮＡＮＤ型フラッシュメモリ、３…ＲＡＭ部、４…コントローラ、１０…メモリセルアレイ、１１…ロウデコーダ、１２…ページバッファ、１３…電圧発生回路、１４…ＮＡＮＤシーケンサ、１５，１６…オシレータ、１７…データ転送部、２０…ＥＣＣ部、２１…ＥＣＣバッファ、２２…ＥＣＣエンジン、３０…ＳＲＡＭ、３１…ＤＱバッファ、３２…メモリセルアレイ、３３…センスアンプ、３４…ロウデコーダ、４０…インターフェース部、４１…バースト読み出し／書き込みバッファ、４２…インターフェース、５０…アクセスコントローラ、６０…レジスタ、６１…コマンドユーザインターフェース、６２…ステートマシン、６３…コマンド発生回路、６４…タイミング発生回路、７０〜７３…ラッチ回路、８０…クロック生成回路、８１…入力切替回路、８２，８５…遅延回路、８３，８６…デコーダ、８４，８７…選択回路、８８…出力回路。
【図１】
2012128921.tif 000003
【図２】
2012128921.tif 000004
【図３】
2012128921.tif 000005
【図４】
2012128921.tif 000006
【図５】
2012128921.tif 000007
【図６】
2012128921.tif 000008
【図７】
2012128921.tif 000009
【図８】
2012128921.tif 000010
【図９】
2012128921.tif 000011
【図１０】
2012128921.tif 000012
【図１１】
2012128921.tif 000013
【図１２】
2012128921.tif 000014
【図１３】
2012128921.tif 000015
【図１４】
2012128921.tif 000016
【図１５】
2012128921.tif 000017
【図１６】
2012128921.tif 000018
【図１７】
2012128921.tif 000019
【図１８】
2012128921.tif 000020
【図１９】
2012128921.tif 000021
【図２０】
2012128921.tif 000022
【図２１】
2012128921.tif 000023
【図２２】
2012128921.tif 000024
【図２３】
2012128921.tif 000025