(57)【要約】【課題】  入出力データの幅の異なる２つの機能ブロックの通信を可能にする。【解決手段】  第１周期の第１クロック、第１周期の２倍の第２周期の第２クロックが生成される。第２クロックのハイ、ローの期間の各後半の間のみそれぞれハイを維持する第３、第４クロックが生成される。第１バッファ12は、第１ビット幅でデータを出力する。第１ラッチ71は、第１バッファから第１ビット幅でデータを受け取り、第２周期の第２クロックに合わせて第１ビット幅でデータを出力する。第２ラッチ72は、第１ビット幅で第１ラッチからデータを受け取り、保持している第１データの前半部を第３クロックの立ち上がり時に第１ビット幅の半分の第２ビット幅のデータを出力し、第１データの後半部を第４クロックの立ち上がり時に出力する。第２バッファ21は、第２ビット幅のデータを第２ラッチから受け取る。【選択図】      図３
2011022925.tif 000002
【特許請求の範囲】
【請求項１】
第１周期の第１クロックを生成する第１クロック生成部と、
前記第１クロックから、前記第１周期の２倍の第２周期を有し且つ前記第１クロックの立ち上がりと同じタイミングで立ち上がる第２クロックを生成する第２クロック生成部と、
前記第１、第２クロックから、前記第２クロックのハイの期間の後半の間のみハイを維持する第３クロックを生成する第３クロック生成部と、
前記第１、第２クロックから、前記第２クロックのローの期間の後半の間のみハイを維持する第４クロックを生成する第４クロック生成部と、
前記第２クロックを受け取り、前記第２クロックの立ち上がり時に第１ビット幅でデータを出力する第１バッファと、
前記第２クロックを受け取り、前記第１ビット幅で前記第１バッファからデータを受け取り、前記第２クロックの立ち下がり時に前記第１ビット幅でデータを出力する第１ラッチと、
前記第２、第３、第４クロックを受け取り、前記第１ビット幅で前記第１ラッチからデータを受け取り、保持している第１データの前半部を前記第３クロックの立ち上がり時に前記第１ビット幅の半分の第２ビット幅で出力し、前記第１データの後半部を前記第４クロックの立ち上がり時に前記第２ビット幅で出力する、第２ラッチと、
前記第１周期のクロックを受け取り、前記第２ビット幅で前記第２ラッチからデータを受け取る第２バッファと、
を具備する、データ転送装置。
【請求項２】
第１周期の第１クロックを生成する第１クロック生成部と、
前記第１クロックから、前記第１クロックの第ｉ番目の１周期にわたってローを維持するとともに第ｉ＋１番目の１周期にわたってハイを維持する第２クロックを生成する第２クロック生成部と、
前記第１クロックから、前記第１クロックの奇数番目のハイの間のみハイを維持する第３クロックを生成する第３クロック生成部と、
前記第１クロックから、前記第１クロックの偶数番目のハイの間のみハイを維持する第４クロックを生成する第４クロック生成部と、
前記第１クロックを受け取り、前記第１クロックの立ち上がり時に第１ビット幅でデータを出力する第１バッファと、
前記第３、第４クロックを受け取り、前記第１ビット幅で前記第１バッファからデータを受け取り、供給されているデータ第１ビット幅の第１部分データを前記第３クロックの立ち上がり時に保持し、前記第３クロックの前記立ち上がりの直後の前記４クロックの立ち上がり時に前記第１部分データおよび前記第１データに続いて受け取った前記第１ビット幅の第２部分データを連続して、前記第１ビット幅の２倍の第２ビット幅で出力する、第１ラッチと、
前記第２ビット幅でデータを前記第１ラッチから受け取り、ハイレベルのイネーブル信号を受けている間、前記第２ビット幅で受け取るデータを出力する、第２ラッチと、
前記第２クロックを受け取り、前記第２ビット幅でデータ前記第２ラッチから受け取り、受け取っているデータを前記第２クロックの立ち下がり時に取り込む、第２バッファと、
を具備する、データ転送装置。
【請求項３】
第１周期の第１クロックの立ち上がり時に第１ビット幅の第１データをラッチにおいて取り込み、
取り込まれた前記第１データの前半部を前記第１クロックのハイの期間の後半の間のみハイを維持する第２クロックの立ち下がり時に前記ラッチの前記第１ビット幅の半分の第２ビット幅の第１出力端から出力し、前記第１データの後半部を前記第１クロックのローの期間の後半の間のみハイを維持する第３クロックの立ち下がり時に前記第１出力端から出力し、
前記第１出力端から出力されるデータを、前記クロックの半分の周期の第４クロックの立ち上がり時にバッファにおいて取り込む、
ことを具備する、データ転送方法。
【請求項４】
第１周期の第１クロックの奇数番目のハイの間のみハイを維持する第２クロックの立ち上がり時に、第１データの第１ビット幅の半分のビット幅の第１入力端で前記第１データの前半部をラッチにおいてラッチし、
前記第１データの前半部の受け取り後に前記第１データの後半部を前記第１入力端で受け取り、
前記第１クロックの偶数番目のハイの間のみハイを維持する第３クロックの立ち上がり時に、ラッチされている前記第１データの前半部および前記第１データの後半部を連続して前記ラッチから出力し、
前記第３クロックの立ち上がりから前記第２クロックの立ち上がりまでハイを維持する第４クロックの立ち下がり時に、前記第１出力端から出力された前記第１データの前半部および前記第１データの前半部に連続する前記第１データの後半部をバッファにおいて取り込む、
ことを具備する、データ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置およびデータ転送方法に関し、例えば、メモリ部を有する半導体装置におけるメモリ部と別の部分との間のデータ転送装置およびデータ転送方法に関する。
【背景技術】
【０００２】
不揮発性の半導体メモリとして、ＮＡＮＤ型フラッシュメモリが広く知られている。ＮＡＮＤ型フラッシュメモリは、特定の大きさのデータを、特定の数のメモリセルに一括して記憶する。また、ＮＡＮＤ型フラッシュメモリは、特定の大きさのデータをメモリセルから一括して外部に出力する。
【０００３】
また、各々が様々な機能を有する機能ブロックを１つの半導体チップに搭載してシステムを構成することが行なわれている。このように、複数の機能ブロックを適当に組み合わせることによって、半導体装置を所望の機能を提供するように構成することができる。このような機能ブロックには、例えば、ＮＡＮＤ型フラッシュメモリや、ＲＡＭ（random access memory）が含まれる。
【０００４】
各機能ブロックは、各々の目的を達成できるように開発されている。このため、各機能ブロックは、必ずしも、あらゆるタイプの別の機能ブロックと、特別な対策を講じることなく、通信できるように構成されているとは限らない。このため、ある機能ブロック同士を協働させるために何らかの方法が必要である。また、機能ブロックによっては、それ自体が複雑な構成を有しており、仕様の変更は容易ではない。そこで、ある第１部分が、このような仕様の変更が困難な第２部分と通信するために、第１部分が第２部分に合わせて設計される。
【０００５】
このようなシステムの性能を向上させるために、ある部分に対して変更が必要な場合がある。この変更によって、別の部分の一部または全体への変更が必要になる。しかし、上記のように、機能ブロックによっては、機能ブロックの設計を最初からやり直すでもしない限り、仕様の変更がほぼ不可能である。ＮＡＮＤ型フラッシュメモリは、そのようなブロックの１つである。このため、具体例として、以下のような問題が生じる。
【０００６】
あるＮＡＮＤ型フラッシュメモリは、データを６４ビットの幅で転送し、この幅を変更することは非常に困難である。一方、システム内においてＮＡＮＤ型フラッシュメモリと通信する機能ブロックの入出力データの幅を３２ビットにすることが試みられている。これは、システムのチップサイズを縮小することを目的としている。しかし、ＮＡＮＤ型フラッシュメモリは、このような変更に容易に対処できない。また、ＮＡＮＤ型フラッシュメモリと通信する機能ブロックの入出力データの幅を３２ビットにすると、単位時間当たりの転送量は変更前から低下する。しかし、システムの動作速度を維持することも同時に要求されているので、入出力データの幅の変更とデータ転送速度の維持を両立させる必要がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−１７２４６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、入出力データの幅の異なる２つの機能ブロックの通信を可能にするデータ転送装置およびデータ転送方法を提供しようとするものである。
【課題を解決するための手段】
【０００９】
本発明の一態様によるデータ転送装置は、第１周期の第１クロックを生成する第１クロック生成部と、前記第１クロックから、前記第１周期の２倍の第２周期を有し且つ前記第１クロックの立ち上がりと同じタイミングで立ち上がる第２クロックを生成する第２クロック生成部と、前記第１、第２クロックから、前記第２クロックのハイの期間の後半の間のみハイを維持する第３クロックを生成する第３クロック生成部と、前記第１、第２クロックから、前記第２クロックのローの期間の後半の間のみハイを維持する第４クロックを生成する第４クロック生成部と、前記第２クロックを受け取り、前記第２クロックの立ち上がり時に第１ビット幅でデータを出力する第１バッファと、前記第２クロックを受け取り、前記第１ビット幅で前記第１バッファからデータを受け取り、前記第２クロックの立ち下がり時に前記第１ビット幅でデータを出力する第１ラッチと、前記第２、第３、第４クロックを受け取り、前記第１ビット幅で前記第１ラッチからデータを受け取り、保持している第１データの前半部を前記第３クロックの立ち上がり時に前記第１ビット幅の半分の第２ビット幅で出力し、前記第１データの後半部を前記第４クロックの立ち上がり時に前記第２ビット幅で出力する、第２ラッチと、前記第１周期のクロックを受け取り、前記第２ビット幅で前記第２ラッチからデータを受け取る第２バッファと、を具備する。
【００１０】
本発明の一態様によるデータ転送装置は、第１周期の第１クロックを生成する第１クロック生成部と、前記第１クロックから、前記第１クロックの第ｉ番目の１周期にわたってローを維持するとともに第ｉ＋１番目の１周期にわたってハイを維持する第２クロックを生成する第２クロック生成部と、前記第１クロックから、前記第１クロックの奇数番目のハイの間のみハイを維持する第３クロックを生成する第３クロック生成部と、前記第１クロックから、前記第１クロックの偶数番目のハイの間のみハイを維持する第４クロックを生成する第４クロック生成部と、前記第１クロックを受け取り、前記第１クロックの立ち上がり時に第１ビット幅でデータを出力する第１バッファと、前記第３、第４クロックを受け取り、前記第１ビット幅で前記第１バッファからデータを受け取り、供給されているデータ第１ビット幅の第１部分データを前記第３クロックの立ち上がり時に保持し、前記第３クロックの前記立ち上がりの直後の前記４クロックの立ち上がり時に前記第１部分データおよび前記第１データに続いて受け取った前記第１ビット幅の第２部分データを連続して、前記第１ビット幅の２倍の第２ビット幅で出力する、第１ラッチと、前記第２ビット幅でデータを前記第１ラッチから受け取り、ハイレベルのイネーブル信号を受けている間、前記第２ビット幅で受け取るデータを出力する、第２ラッチと、前記第２クロックを受け取り、前記第２ビット幅でデータ前記第２ラッチから受け取り、受け取っているデータを前記第２クロックの立ち下がり時に取り込む、第２バッファと、を具備する。
【００１１】
本発明の一態様によるデータ転送方法は、第１周期の第１クロックの立ち上がり時に第１ビット幅の第１データをラッチにおいて取り込み、取り込まれた前記第１データの前半部を前記第１クロックのハイの期間の後半の間のみハイを維持する第２クロックの立ち下がり時に前記ラッチの前記第１ビット幅の半分の第２ビット幅の第１出力端から出力し、前記第１データの後半部を前記第１クロックのローの期間の後半の間のみハイを維持する第３クロックの立ち下がり時に前記第１出力端から出力し、前記第１出力端から出力されるデータを、前記クロックの半分の周期の第４クロックの立ち上がり時にバッファにおいて取り込む、ことを具備する。
【００１２】
本発明の一態様によるデータ転送方法は、第１周期の第１クロックの奇数番目のハイの間のみハイを維持する第２クロックの立ち上がり時に、第１データの第１ビット幅の半分のビット幅の第１入力端で前記第１データの前半部をラッチにおいてラッチし、前記第１データの前半部の受け取り後に前記第１データの後半部を前記第１入力端で受け取り、前記第１クロックの偶数番目のハイの間のみハイを維持する第３クロックの立ち上がり時に、ラッチされている前記第１データの前半部および前記第１データの後半部を連続して前記ラッチから出力し、前記第３クロックの立ち上がりから前記第２クロックの立ち上がりまでハイを維持する第４クロックの立ち下がり時に、前記第１出力端から出力された前記第１データの前半部および前記第１データの前半部に連続する前記第１データの後半部をバッファにおいて取り込む、ことを具備する。
【発明の効果】
【００１３】
本発明によれば、入出力データの幅の異なる２つの機能ブロックの通信を可能にするデータ転送装置およびデータ転送方法を提供できる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係るメモリシステムのブロック図。
【図２】本発明の実施形態に係るＮＡＮＤ型フラッシュメモリのメモリセルアレイの回路図。
【図３】本発明の実施形態に係るＮＡＮＤバスのロードに関する構成のブロック図。
【図４】ＮＡＮＤシーケンサのブロック図。
【図５】クロック生成回路を示す回路図。
【図６】ロジック回路の詳細を示す回路図。
【図７】クロック生成回路を示す回路図。
【図８】一貫して同じビット幅を有するＮＡＮＤバスのロードに関するブロック図。
【図９】図８のＮＡＮＤバスの信号のタイミングチャート。
【図１０】本発明の実施形態に係るＮＡＮＤバスのロードに関する信号のタイミングチャート。
【図１１】本発明の実施形態に係るＮＡＮＤバスのプログラムに関する構成のブロック図。
【図１２】第２ラッチの構成を示す回路図。
【図１３】クロック生成回路を示す回路図。
【図１４】一貫して同じビット幅を有するＮＡＮＤバスのプログラムに関するブロック図。
【図１５】図１４のＮＡＮＤバスの信号のタイミングチャート。
【図１６】本発明の実施形態に係るＮＡＮＤバスのプログラムに関する信号のタイミングチャート。
【発明を実施するための形態】
【００１５】
以下に本発明の実施形態について図面を参照して説明する。以下の説明において、略同一の機能および構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００１６】
＜１．メモリシステムの全体構成＞
図１は、本実施形態に係る半導体装置（メモリシステム）のブロック図である。図に示すように、本実施形態に係るメモリシステム１は、大まかに、ＮＡＮＤ型フラッシュメモリ２、ＲＡＭ３、およびコントローラ部４を備えている。ＮＡＮＤ型フラッシュメモリ２、ＲＡＭ３、およびコントローラ部４は、同一の半導体基板上に形成され、１つのチップに集積されている。以下、各ブロックについて詳細に説明する。
【００１７】
＜１−１．ＮＡＮＤ型フラッシュメモリ２＞
フラッシュメモリ２は、メモリシステム１の主記憶部として機能する。図に示すように、フラッシュメモリ２は、メモリセルアレイ１０、ロウデコーダ１１、ページバッファ１２、電圧発生回路１３、シーケンサ１４、オシレータ１５、１６、およびＮＡＮＤバス１７を含んでいる。
【００１８】
メモリセルアレイ１０は、複数のメモリセルトランジスタを含んでいる。図２はメモリセルアレイ１０の回路図である。図に示すように、メモリセルアレイ１０は、複数のメモリセルユニットＣＵを備えている。メモリセルユニットＣＵの各々は、例えば３２個のメモリセルトランジスタＭＴと、選択トランジスタＳＴ１、ＳＴ２とを含んでいる。メモリセルトランジスタＭＴは、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層（例えば浮遊ゲート）と、電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲートとを有する積層ゲート構造を含んでいる。また、メモリセルトランジスタＭＴは、窒化膜に電子をトラップさせる方式を用いたＭＯＮＯＳ（Metal Oxide Nitride Oxide Silicon）構造であっても良い。
【００１９】
隣接するメモリセルトランジスタＭＴ同士の電流経路は直列接続されている。直列接続されたメモリセルトランジスタＭＴの一端側のドレインは選択トランジスタＳＴ１のソースに接続され、他端側のソースは選択トランジスタＳＴ２のドレインに接続されている。
【００２０】
同一行にあるメモリセルトランジスタＭＴの各制御ゲートは、ワード線ＷＬ０〜ＷＬ３１のいずれか同じものに接続される。また同一行にある選択トランジスタＳＴ１、ＳＴ２の各ゲートは、それぞれセレクトゲート線ＳＧＤ、ＳＧＳに接続されている。選択トランジスタＳＴ１の各ドレインは、ビット線ＢＬ０〜ＢＬｎ（ｎは自然数）のいずれかに接続されている。選択トランジスタＳＴ２のソースはソース線ＳＬに共通接続されている。
【００２１】
同一のワード線ＷＬ０〜ＷＬ３１に接続された複数のメモリセルトランジスタＭＴはページを構成する。データの書き込みおよび読み出しは、１つのページ内のメモリセルトランジスタＭＴに対して一括して行なわれる。また、複数のページのデータが一括して消去されるように構成されており、この消去の単位をメモリブロックと呼ぶ。
【００２２】
各メモリセルトランジスタＭＴは、例えば、浮遊ゲートに注入された電子の多寡によるトランジスタの閾値電圧の変化に応じて、１ビットのデータを保持することが可能である。閾値電圧の制御を細分化し、各々のメモリセルトランジスタＭＴに２ビット以上のデータを保持する構成としても良い。
【００２３】
引き続き図１に戻って、フラッシュメモリ２の構成について説明を続ける。ロウデコーダ１１は、データの書き込み、読み出し、および消去の際に、ワード線ＷＬ０〜ＷＬ３１およびセレクトゲート線ＳＧＤ、ＳＧＳを選択する。そして、必要な電圧をワード線ＷＬ０〜ＷＬ３１およびセレクトゲート線ＳＧＤ、ＳＧＳに印加する。
【００２４】
ページバッファ１２はメモリセルアレイ１１のページと同じ大きさ（例えば（２０４８＋６４）バイト）のデータを保持できるように構成されている。すなわち、ページバッファは、読み出しの際はメモリセルアレイ１１から読み出された１ページ分のデータを一時的に保持し、書き込みの際はメモリセルアレイ１１に書き込むべき１ページ分のデータを一時的に保持する。また、ページバッファ１２は、６４ビットの幅のデータをＮＡＮＤバス１７へ出力し、この幅のデータをＮＡＮＤバス１７から入力するように構成されている。
【００２５】
電圧発生回路１３は、データの書き込み、読み出し、および消去に必要な電圧を生成し、生成された電圧を例えばロウデコーダ１１に供給する。
【００２６】
シーケンサ１４は、フラッシュメモリ２全体の動作を司る。すなわち、シーケンサ１４は、コントローラ部４からプログラム命令（Program）、ロード命令（Load）、または消去命令（図示せず）を受けると、これに応答して、データのプログラム、読み出し、および消去を実行するためのシーケンスを実行する。そして、このシーケンスに従って、電圧発生回路１３やページバッファ１２の動作を制御する。
【００２７】
オシレータ１５は、内部クロックＩＣＬＫを生成し、生成され内部クロックＩＣＬＫをシーケンサ１４に供給する。シーケンサ１４は、この内部クロックＩＣＬＫに同期して動作する。また、シーケンサ１４は、内部クロックＩＣＬＫから幾つかのクロック信号ＢＣＬＫを生成し、このクロックＢＣＬＫをＮＡＮＤバス１７に供給する。
【００２８】
オシレータ１６は内部クロックＡＣＬＫを生成し、生成された内部クロックＡＣＬＫをコントローラ部４やＲＡＭ３へ供給する。内部クロックＡＣＬＫは、コントローラ部４やＲＡＭ３の動作の基準となるクロックである。
【００２９】
ＮＡＮＤバス１７は、ページバッファ１２とＲＡＭ３との間のデータの転送のための経路である。ＮＡＮＤバス１７は、シーケンサ１４から、クロック信号ＢＣＬＫを供給される。クロックＢＣＬＫは、後に詳述の複数のクロックを包括的に指している。ＮＡＮＤバス１７のさらに詳しい構成については、後に述べる。
【００３０】
＜１−２．ＲＡＭ３＞
引き続き図１を参照して、ＲＡＭ３について説明する。ＲＡＭ３は、大まかに、ＥＣＣ部２０、ＳＲＡＭ（Static Ramdom Access Memory）３０、インターフェース部４０、およびアクセスコントローラ５０を含んでいる。
【００３１】
メモリシステム１では、フラッシュメモリ２が主記憶部として機能し、ＲＡＭ３のＳＲＡＭ３０がバッファとして機能する。従って、フラッシュメモリ２からデータを外部に読み出すには、まずフラッシュメモリ２のメモリセルアレイ１０から読み出されたデータが、ページバッファ１２およびＮＡＮＤバス１７を介してＲＡＭ３のＳＲＡＭ３０に格納される。その後、ＳＲＡＭ３０内のデータがインターフェース部４０に転送されて、外部に出力される。他方、データをフラッシュメモリ２に記憶させるには、まず外部から与えられたデータが、インターフェース部４０を介してＲＡＭ３内のＳＲＡＭ３０に格納される。その後、ＳＲＡＭ３０内のデータがページバッファ１２へ転送されて、メモリセルアレイ１０に書き込まれる。
【００３２】
以下の説明では、データがメモリセルアレイ１０から読み出されてから、ページバッファ１２を介してＳＲＡＭ３０に転送されるまでの動作を、データの“ロード（load）”と呼ぶ。また、ＳＲＡＭ３０内のデータが、インターフェース部４０内のバーストバッファ４１、４２（後述する）を介してインターフェース４３に転送されるまでの動作を、データの“リード（read）”と呼ぶ。
【００３３】
また、フラッシュメモリ２に記憶させるべきデータが、インターフェース４３からバーストバッファ４１、４２を介してＳＲＡＭ３０に転送されるまでの動作を、データの“ライト（write）”と呼ぶ。また、ＳＲＡＭ３０内のデータがページバッファ１２に転送されて、メモリセルアレイ１０に書き込まれるまでの動作を、データの“プログラム（program）”と呼ぶ。
【００３４】
＜１−２−１．ＥＣＣ部２０＞
ＥＣＣ部２０は、ＥＣＣ処理を行う。すなわち、データのロード時には、フラッシュメモリ２から読み出されたデータについてエラーの検出および訂正を行う。他方、データのプログラム時には、プログラムすべきデータについてのパリティを生成する。ＥＣＣ部２０は、ＥＣＣバッファ２１およびＥＣＣエンジン２２を含んでいる。
【００３５】
ＥＣＣバッファ２１は、ＮＡＮＤバス１７によってページバッファ１２と接続され、ＥＣＣバスによりＳＲＡＭ３０と接続される。ＥＣＣバッファ２１は、ＥＣＣ処理（データロード時は誤り訂正、データプログラム時はパリティ生成）のために一時的にデータを格納する。ＥＣＣバッファ２１は、６４ビットの幅でＮＡＮＤバス１７と接続されている。ＥＣＣエンジン２２は、ＥＣＣバッファ２１に保持されるデータを用いてＥＣＣ処理を行う。
【００３６】
＜１−２−２．ＳＲＡＭ３０＞
ＳＲＡＭ３０は、フラッシュメモリ２に対するバッファメモリとして機能する。ＳＲＡＭ３０は、前述のＤＱバッファ３１、メモリセルアレイ３２、センスアンプ３３、およびロウデコーダ３４を含んでいる。ＤＱバッファ３１は、データのロード、リード、ライト、プログラムの際に、メモリセルアレイ３２へのデータまたはメモリセルアレイ３２からのデータを一時的に格納する。メモリセルアレイ３２は、データ保持可能な複数のＳＲＡＭセルを含んでいる。センスアンプ３３は、ＳＲＡＭセルからのデータをセンスおよび増幅し、また、ＤＱバッファ３１内のデータをＳＲＡＭセルに書き込む際の負荷としても機能する。ロウデコーダ３４は、メモリセルアレイ３２内の特定のワード線を選択する。
【００３７】
＜１−２−３．インターフェース部４０＞
インターフェース部４０は、バーストバッファ４１、４２、およびインターフェース４３を含んでいる。
【００３８】
インターフェース４３は、メモリシステム１外部のホスト機器との間で、データ、制御信号、およびアドレス等の様々な信号の入出力を行なう。制御信号の一例は、メモリシステム１全体をイネーブルにするチップイネーブル信号／ＣＥ、アドレスをラッチさせるためのアドレスバリッド信号／ＡＶＤ、バーストリード用のクロックＣＬＫ、書き込み動作をイネーブルにするためのライトイネーブル信号／ＷＥ、データの外部への出力をイネーブルにするためのアウトプットイネーブル信号／ＯＥ、などである。また、インターフェース４３は、ホスト機器からのデータのリード要求、ロード要求、ライト要求、およびプログラム要求等に係る制御信号をアクセスコントローラ５０へ転送する。
【００３９】
バーストバッファ４１、４２は、例えば１６ビットの幅を有するＤＩＮ／ＤＯＵＴバスによりインターフェース４３と接続されている。バーストバッファ４１、４２は、ＤＱバッファ３１、コントローラ部４、およびインターフェース４３とデータを転送可能に構成されている。また、バーストバッファ４１、４２は、ホスト機器からのデータ、またはＤＱバッファ３１からのデータを、一時的に保持する。
【００４０】
＜１−２−４．アクセスコントローラ５０＞＞
アクセスコントローラ５０は、インターフェース４３から制御信号およびアドレスを受け取る。そして、ホスト機器の要求を満たす動作を実行するよう、ＳＲＡＭ３０およびコントローラ部４を制御する。より具体的には、アクセスコントローラ５０は、ホスト機器の要求に応じて、ＳＲＡＭ３０とコントローラ４の後述するレジスタ６０とのいずれかをアクティブ状態とする。そして、ＳＲＡＭ３０またはレジスタ６０に対するデータのライトコマンドまたはリードコマンド（Write/Read）を発行する。これらの制御により、ＳＲＡＭ３０およびコントローラ部４は動作を開始する。
【００４１】
＜１−３．コントローラ部４＞
コントローラ部４は、メモリシステム１全体の動作を統括する。コントローラ部４は、レジスタ６０、コマンドユーザインターフェース６１、ステートマシン６２、アドレス／コマンド発生回路６３、およびアドレス／タイミング発生回路６４を含んでいる。
【００４２】
レジスタ６０は、アクセスコントローラ５０からのコマンドに応じて、ファンクションの動作状態を設定するためのものである。より具体的には、レジスタ６０は、例えばロードコマンドや、プログラムコマンドを保持する。
【００４３】
コマンドユーザインターフェース６１は、所定のコマンドがレジスタ６０に保持されることで、メモリシステム１に対してファンクション実行コマンドが与えられたことを認識する。そして、内部コマンド信号（Command）をステートマシン６２へ出力する。
【００４４】
ステートマシン６２は、コマンドユーザインターフェース６１から与えられる内部コマンド信号に基づいて、メモリシステム１内部におけるシーケンス動作を制御する。ステートマシン６２がサポートするファンクションは、ロード、プログラム、および消去を含め多数のものがある。ステートマシン６２は、これらのファンクションを実行するよう、フラッシュメモリ２およびＲＡＭ３の動作を制御する。
【００４５】
アドレス／コマンド発生回路６３は、ステートマシン６２の制御に基づいてフラッシュメモリ２の動作を制御する。より具体的には、アドレスやコマンド（Program/Load）等を生成し、これらをフラッシュメモリ２へ出力する。アドレス／コマンド発生回路６３は、オシレータ１６の生成する内部クロックＡＣＬＫと同期しながら、これらのアドレスやコマンドを出力する。
【００４６】
アドレス／タイミング発生回路６４は、ステートマシン６２の制御に基づいてＲＡＭ３の動作を制御する。より具体的には、ＲＡＭ３において必要なアドレスやコマンドを発行して、これらをアクセスコントローラ５０およびＥＣＣエンジン２２へ出力する。
【００４７】
＜１−４．メモリシステム１の動作＞
次に、メモリシステム１における動作について簡単に説明する。上記の通り、フラッシュメモリ２とホスト機器との間のデータの授受は、ＳＲＡＭ３０を介して行われる。ホスト機器がメモリシステム１のフラッシュメモリ２にデータを記憶させるためには、まずホスト機器からのライトコマンドとＳＲＡＭ３０のアドレスに従って、データがＳＲＡＭ３０に格納される。その後、ホスト機器からのプログラムコマンドとフラッシュメモリ２のアドレスに従って、ＳＲＡＭ３０に格納されたデータが、ページ単位で一括してフラッシュメモリ２にプログラムされる。
【００４８】
また、ホスト機器がフラッシュメモリ２内のデータを読み出すためには、まずホスト機器からのロードコマンド、フラッシュメモリ２のアドレス、およびＳＲＡＭ３０のアドレスに従って、データがフラッシュメモリ２から読み出され、ＳＲＡＭ３０に格納される。その後、ホスト機器からのリードコマンドとＳＲＡＭ３０のアドレスに従って、ＳＲＡＭ３０に保持されるデータが、インターフェース部４０を介してホスト機器に読み出される。
【００４９】
以下に、ロードの場合の動作手順の一例について、簡単に説明する。  
まず、ホスト機器がインターフェース部４０に対して、ロードすべきフラッシュメモリ２のアドレスおよびＳＲＡＭのアドレスを入力し、またロードコマンドを入力する。このコマンドに応答して、アクセスコントローラ５０は、当該アドレスおよびコマンドをレジスタ６０において保持する。コマンドユーザインターフェース６１は、レジスタ６０にコマンドが保持されたことを検知すると、内部コマンド信号を発行する。ロードの場合にはロードコマンドが発行される。
【００５０】
ユーザインターフェース６１からロードコマンドを受信することにより、ステートマシン６２が起動する。ステートマシン６２は、各回路ブロックについて必要な初期化を行った後、フラッシュメモリ２に対してセンスコマンドを発行するようアドレス／コマンド発生回路６３に要求する。するとアドレス／コマンド発生回路６３は、レジスタ６０に設定されたアドレスのデータのセンスを行うよう、シーケンサ１４に対してセンスコマンドを発行する。
【００５１】
アドレス／コマンド発生回路６３からセンスコマンドを受けると、シーケンサ１４が起動する。シーケンサ１４は、フラッシュメモリ２内の必要な初期化を行った後、指定されたアドレスのデータに対してセンス動作を行う。すなわち、シーケンサ１４は、電圧発生回路１３、ロウデコーダ１１、センスアンプ、およびページバッファ１２を制御し、センスされたデータをページバッファ１２に格納させる。その後シーケンサ１４は、センス動作が終了したことを、ステートマシン６２に通知する。
【００５２】
ステートマシン６２は、フラッシュメモリ２に対して転送コマンドを発行するようアドレス／コマンド発生回路６３に命令する。この命令に応じてアドレス／コマンド発生回路６３は、転送コマンドをシーケンサ１４へ出力する。シーケンサ１４は、転送コマンドを受けると、ページバッファ１２およびＮＡＮＤバス１７を制御して、ＮＡＮＤバスを介してページバッファ１２内のデータをＥＣＣバッファ２１へ転送する。
【００５３】
ステートマシン６２は、ＥＣＣ部２０にエラー訂正開始制御信号を供給する。この信号に応答して、ＥＣＣ部２０はＥＣＣ処理を行う。そして、ＥＣＣ処理されたデータが、ＥＣＣ部２０からＥＣＣバスを介してＤＱバッファ３１に転送される。引き続き、アクセスコントローラ５０の命令に従って、ＤＱバッファ３１内のデータが、ＳＲＡＭ３０のメモリセルアレイ３２に書き込まれる。
【００５４】
以上のステップにより、データのロードが完了する。その後、ホスト機器はインターフェース部４０を介してリードコマンドを発行することで、メモリセルアレイ３２に書き込まれたデータを読み出す。
【００５５】
＜２．ＮＡＮＤバス１７＞
次に、図を参照して、ＮＡＮＤバス１７について説明する。また、ＮＡＮＤバス１７の動作に必要なその他の部分についても併せて説明する。
【００５６】
＜２−１．ロード＞
まず、ＮＡＮＤバス１７のロードに必要な構成および動作について説明する。
【００５７】
＜２−１−１．構成＞
図３は、ＮＡＮＤバス１７のロードに必要な構成を示すブロック図である。図に示すように、ＮＡＮＤバス１７は、少なくとも２つの第１ラッチ７１および第２ラッチ７２を有している。図の例では、ＮＡＮＤバス１７は、さらに、第３ラッチ７３を有している。第３ラッチ７３は、動作のマージンの向上等の目的で設けられており、本実施形態において必須の構成ではない。
【００５８】
第１〜第３ラッチ７１〜７３は、各々、第１入出力端および第２入出力端を有する。第１ラッチ７１の第１、第２入出力端は、両方とも、ページバッファ１２のメモリセルアレイ１０と反対側の第１入出力端と同じビット幅（並列のビット数）を有し、ページバッファ１２の第１入出力端と接続されている。以下の説明では、ページバッファ１２の第１入出力端のビット幅が６４ビットであるものとする。ロードの際は、第１ラッチ７１は第１入出力端においてデータを受け取り、第２入出力端からデータを出力する。
【００５９】
第２ラッチ７２の第１入出力端は、第１ラッチ７１の第２入出力端のビット幅と同じビット幅（例えば６４ビット）を有し、第１ラッチ７１の第２入出力端と接続されている。他方、第２ラッチ７２の第２入出力端は、第２ラッチ７２の第１入出力端のビット幅の半分のビット幅（例えば３２ビット）を有する。ロードの際は、第２ラッチ７２は第１入出力端においてデータを受け取り、第２出力端からデータを出力する。
【００６０】
第３ラッチ７３の第１、第２入出力端は、第２ラッチ７２の第２入出力端のビット幅と同じビット幅（例えば３２ビット）を有する。第３ラッチ７３の第１入出力端は、第３ラッチ７３の第２入出力端と接続されている。第３ラッチ７３の第２入出力端は、ＥＣＣバッファの入出力端（以下、第１入出力端と称する）と接続されている。ＥＣＣバッファの第１入出力端のビット幅は、第３ラッチ７３の第１入出力端のビット幅と同じである。ロードの際は、第３ラッチ７３は第１入出力端においてデータを受け取り、第２出力端からデータを出力する。
【００６１】
ＥＣＣバッファ２１は、第１周期のクロックを受け取る。このクロックは、オシレータ１６から内部クロックＡＣＬＫを受け取るアドレス／コマンド発生回路６３から供給される。第３ラッチ７３が設けられない場合については、第２ラッチ７２の第２入出力端とＥＣＣバッファ２１の第１入出力端が接続されていると読み替えた説明と等価である。
【００６２】
ロードにおいては、ページバッファ１２、第１ラッチ７１、第３ラッチ７３は、シーケンサ１４から、それぞれ、クロックＣＬＫ０、ＣＬＫ１、ＣＬＫ３を受け取る。第２ラッチは、シーケンサ１４から、クロックＣＬＫ２ａ、クロックＣＬＫ２Ｌ、ＣＬＫ２Ｕを受け取る。クロックＣＬＫ０、ＣＬＫ１、ＣＬＫ３の周期は、クロックＣＬＫ２ａ、クロックＣＬＫ２Ｌ、ＣＬＫ２Ｕの周期の２倍の第２周期である。
【００６３】
ＮＡＮＤシーケンサ１４は、図４に示すように、これらのクロックを生成するためのクロック生成回路８１、８２を含んでいる。シーケンサ１４は、クロック生成回路８１を用いて、第１周期のクロックから第２周期（第１周期の２倍）のクロックを生成する。以下の説明では、第１周期は１２．５ｎｓで、第２周期は２５ｎｓであるものとする。
【００６４】
図５は、クロック生成回路８１を示す回路図である。図に示すように、クロック生成回路８１は、インバータＩＶ１〜ＩＶ６、ロジック回路ＬＧ１〜ＬＧ４を含んでいる。インバータＩＶ１はクロックＣＬＫ２ｃを受け取る。クロックＣＬＫ２ｃは、クロックＣＬＫ２Ｌ、ＣＬＫ２Ｕを生成するためのものであり、１２．５ｎｓの周期を有し、クロックＣＬＫ３と同じタイミングで立ち上がるとともに立ち下がる。クロックＣＬＫ２ｃは、オシレータ１５によって生成される。
【００６５】
インバータＩＶ１から出力されるクロックＣＬＫは、インバータＩＶ２に供給される。インバータＩＶ２は、クロック／ＣＬＫを出力する。信号名の先頭の「／」はこの信号の反転論理を意味する。
【００６６】
ロジック回路ＬＧ１〜ＬＧ４は、各々、図６に示す構成を有している。図６に示すように、ロジック回路ＬＧ１〜ＬＧ４は、２つのｐ型ＭＯＳＦＥＴ（metal oxide semiconductor field effect transistor）Ｔ１、Ｔ２、および２つのｎ型ＭＯＳＦＥＴ  Ｔ３、Ｔ４を有している。トランジスタＴ１〜Ｔ４は直列接続されている。トランジスタＴ１のトランジスタＴ２と反対の端部は、電源供給端Ｖｄｄに接続されている。トランジスタＴ４のトランジスタＴ３と反対の端部は、接地されている。トランジスタＴ１のゲートは信号ＣＬＫを受け取り、トランジスタＴ４のゲートは／ＣＬＫを受け取る。トランジスタＴ２、Ｔ３の各ゲートがロジック回路の入力端であり、トランジスタＴ２とＴ３との接続ノードがロジック回路の出力端である。そして、図６に示す構造を有し且つトランジスタトランジスタＴ１およびＴ４の各ゲートが受け取る信号を併せて表記した記号が、図５に示すロジック回路ＬＧ１〜ＬＧ４を示す記号である。したがって、ロジック回路ＬＧ１、ＬＧ４の各々は、トランジスタＴ１、Ｔ２の各ゲートにおいてクロックＣＬＫ、／ＣＬＫをそれぞれ受け取る。一方、ロジック回路ＬＧ２、ＬＧ３の各々は、トランジスタＴ１、Ｔ４の各ゲートにおいてクロックＣＬＫ、／ＣＬＫをそれぞれ受け取る。
【００６７】
再び、図５に示すように、ロジック回路ＬＧ１、インバータＩＶ３、ロジック回路ＬＧ２、インバータＩＶ４、ＩＶ５は、この順に、ある要素の入力端が隣の要素の出力端とされながら、直列接続されている。インバータＩＶ５の出力端は、ロジック回路ＬＧ１の入力端およびインバータＩＶ６の入力端に接続されている。インバータＩＶ３の入力端および出力端は、ロジック回路ＬＧ３の出力端および入力端に、それぞれ接続されている。また、インバータＩＶ４の入力端および出力端は、ロジック回路ＬＧ４の出力端および入力端に、それぞれ接続されている。インバータＩＶ６の出力端から、クロックＣＬＫ２ｂが出力される。
【００６８】
クロックＣＬＫ２ｂは、クロックＣＬＫ２Ｌ、ＣＬＫ２Ｕを生成するためのクロックであり、２５ｎｓの周期を有し、クロックＣＬＫ０、ＣＬＫ１、ＣＬＫａと同じタイミングで立ち上がるとともに立ち下がる。
【００６９】
図７は、クロック生成回路８２を示す回路図である。図に示すように、クロック生成回路８２は、インバータＩＶ７〜ＩＶ１０、ＮＡＮＤ回路ＮＤ１、ＮＯＲ回路ＮＲ１を含んでいる。インバータＩＮＶ７は、クロックＣＬＫ２ｃを受け取り、その出力をＮＡＮＤ回路ＮＤ１の第１入力端に供給する。ＮＡＮＤ回路ＮＤ１は、第２入力端においてクロックＣＬＫ２ｂを受け取り、出力をインバータＩＶ８に供給する。インバータＩＶ８は、クロックＣＬＫ２Ｌを出力する。
【００７０】
クロックＣＬＫ２ｂ、２ｃはまた、ノア回路ＮＲ１に供給されている。ノア回路ＮＲ１の出力は、インバータＩＶ９、ＩＶ１０を介して、クロックＣＬＫ２Ｕとして機能する。
【００７１】
＜２−１−２．動作＞
本実施形態での動作の説明に先立ち、一貫して同じビット幅（例えば６４ビット）を有するＮＡＮＤバスについて簡単に説明する。図８に示すように、ページバッファ１０１、ＥＣＣバッファ１０２の間には、直列接続されたラッチ１０３、１０４、および１０５が接続されている。ページバッファ１０１、ＥＣＣバッファ１０２、ラッチ１０３〜１０５の入出力端のビット幅は皆６４ビットである。また、ページバッファ１０１、ラッチ１０３〜１０５は、同じ周期（例えば２５ｎｓ）のクロックＣＬＫ１００〜ＣＬＫ１０３を、それぞれ受け取る。ＥＣＣバッファも同じ周期のクロックを受け取る。
【００７２】
図９は、図８のバッファに関する信号のタイミングチャートである。図に示すように、ページバッファ１０１は、クロックＣＬＫ１００の立ち上りの度に保持しているデータＤ０、Ｄ１、Ｄ２、Ｄ３を順次出力する（ＤＡＴＡ０）。データＤ０〜Ｄ３は、みな、６４ビットの幅を有する。
【００７３】
ラッチ１０３、１０４は、クロックＣＬＫ１がハイの間に受け取るデータをラッチし、クロックＣＬＫ１０１の立ち下がりの度にラッチしているデータを出力する。したがって、ラッチ１０３は、ラッチしているデータＤ０〜Ｄ３を、順次出力する（ＤＡＴＡ１０１）。同様に、ラッチ１０４は、ハイの間に受け取るデータをラッチし、クロックＣＬＫ１０２の立ち下がりの度にラッチしているデータを出力する。したがって、ラッチ１０４は、ラッチしているデータＤ０〜Ｄ３を、順次出力する（ＤＡＴＡ１０２）。ＥＣＣバッファ１０５は、受け取っているデータＤ０〜Ｄ３（ＤＡＴＡ１０２）を、立ち上がりの度に順次取り込む。
【００７４】
一方、本実施形態に係るＮＡＮＤバス１７のロードの際の信号のタイミングチャートは、図１０のようになっている。図１０について、図３を参照しながら以下に説明する。図３および図１０に示すように、ページバッファ１２は、シーケンサ１４からのデータ出力命令を受けると、その次のＣＬＫ０の最初の立ち上がりを待つ。ページバッファ１２は、クロックＣＬＫ０の立ち上がりの度に保持しているデータを出力する。したがって、ページバッファ１２は、保持しているデータＤ０、Ｄ１、Ｄ２、Ｄ３を第１ラッチ７１に順次出力する（ＤＡＴＡ０）。データＤ０〜Ｄ３は、みな、６４ビットの幅を有する。データＤ０〜Ｄ３の各々は、クロックＣＬＫ０の１周期で出力される。
【００７５】
第１ラッチ７１は、クロックＣＬＫ１が立ち上がった後に受け取るデータを順次ラッチし、クロックＣＬＫ１の立ち下がりを検出して、ラッチされているデータを順次出力する。したがって、第１ラッチ７１は、順次ラッチされている６４ビットのデータＤ０〜Ｄ３を、第２ラッチ７２に順次出力する（ＤＡＴＡ１）。
【００７６】
第２ラッチ７２は、クロックＣＬＫ２ａが立ち上がった後に受け取るデータを順次ラッチする。したがって、第２ラッチ７２は、６４ビットのデータＤ０〜Ｄ３を順次ラッチする（ＤＡＴＡ２ａ）。第２ラッチ７２は、上記のように、クロックＣＬＫ２Ｌ、ＣＬＫ２Ｕを受け取っている。クロックＣＬＫ２、ＣＬＫ２Ｕは、図７の回路によってクロックＣＬＫ２ｂ、ＣＬＫ２ｃから作られており、また、クロックＣＬＫ２ｂ、ＣＬＫ２ｃは、周期の比が２で且つ同じタイミングで立ち上がる。このため、図１０に示すように、クロックＣＬＫ２ＬはクロックＣＬＫ２ｂのハイの期間の後半の期間にわたってハイを維持し、クロックＣＬＫ２ＵはクロックＣＬＫ２ｂのローの期間の後半の期間にわたってハイを維持する。また、クロックＣＬＫ２Ｌ、ＣＬＫ２Ｕの一方のハイ期間の中心は他方のロー期間の中心と一致し、ＣＬＫ２Ｌ、ＣＬＫ２Ｕの各ハイ期間が交互に現われる。クロックＣＬＫ２Ｌ、ＣＬＫ２Ｕを合成した波形は、クロックＣＬＫ２ｃと同じ波形である。ただし、この合成波形とクロックＣＬＫ２ｃの位相は半周期遅れている。
【００７７】
第２ラッチ７２は、クロックＣＬＫ２Ｌの立ち上がりを検出すると、ラッチしている６４ビットのデータ（例えばＤ０）の後半部分（ロワーデータ（３２ビット）と称する）を出力する（データＤ０Ｌ）。次いで、第２ラッチ７２は、クロックＣＬＫ２Ｌの立ち上がり後の最初のクロックＣＬＫ２Ｕの立ち上がりを検出すると、対応するクロックＣＬＫ２Ｌの立ち上がりで出力したデータＤ０の前半部分（アッパーデータ（３２ビット）と称する）を出力する（データＤ０Ｕ）。クロックＣＬＫ２Ｌ、ＣＬＫ２Ｕの立ち上がりのタイミングが上記のようになっている。このため、クロックＣＬＫ２Ｕは、ラッチされているある６４ビットデータ（例えばＤ０）のロワーデータの出力の完了と同時に立ち上がる。よって、ある６４ビットデータのロワーデータの出力完了と同時に同じ６４ビットデータのアッパーデータの出力が開始する。６４ビットデータ（例えばデータＤ０）のロワーデータとアッパーデータの出力に要する期間は、ページバッファ１２と第１、第２ラッチ７２、７２の間で６４ビットデータ（データＤ０）の転送に要する期間と同じである。
【００７８】
同様に、ある６４ビットデータ（例えばデータＤ０）のアッパーデータの出力完了と同時に、この６４ビットデータに続いて第２ラッチ７２が受け取った６４ビットデータ（例えばＤ１）のロワーデータの出力が開始する。第２ラッチ７２が上記の動作と同様の動作を繰り返すことによって、第２ラッチ７２は、データＤ１〜Ｄ３の各々を、連続するロワーデータとアッパーでデータの形態で、第３ラッチ７３に出力する（データＤＡＴＡ２のデータＤ１Ｌ、Ｄ１Ｕ、Ｄ２Ｌ、Ｄ２Ｕ、Ｄ３Ｌ、Ｄ３Ｕ）。
【００７９】
第３ラッチ７３は、受け取っている３２ビットのデータＤ０Ｌ、Ｄ０Ｕ、Ｄ１Ｌ、Ｄ１Ｕ、Ｄ２Ｌ、Ｄ２Ｕ、Ｄ３Ｌ、Ｄ３Ｕを、クロックＣＬＫ３の各立ち上がりの度に順次出力する（ＤＡＴＡ３）。
【００８０】
＜２−２．プログラム＞
次に、ＮＡＮＤバス１７のプログラムに必要な構成および動作について説明する。
【００８１】
＜２−２−１．構成＞
図１１は、ＮＡＮＤバス１７のプログラムに必要な構成を示すブロック図である。図に示すように、ページバッファ１２、第１〜第３ラッチ７１〜７３、およびＥＣＣバッファの接続は、ロードに必要な構成（図３）と同じである。ただし、プログラムのための構成は、データを受け取る入出力端およびデータを出力する入出力端、および供給されるクロックが、ロードのための構成と異なる。以下に、これらの相違点について説明する。
【００８２】
プログラムにおいては、第１〜第３ラッチ７１〜７３は、各々の第２入出力端からデータを受け取り、各々の第１出力端からデータを出力する。したがって、第１〜第３ラッチ７１〜７３における第１入出力端と第２入出力端の間の信号の経路は、ロード時とプログラム時とで異なる。同様に、ページバッファ１２は、第１入出力端において、ロード時はデータを出力し、プログラム時はデータを受け取り、ＥＣＣバッファは、第１入出力端において、ロード時はデータを受け取り、プログラム時はデータを出力する。ページバッファ１２、第１〜第３ラッチ７１〜７３、およびＥＣＣバッファ２１は、各々、上記のロード時の動作および下記のプログラム時の動作を行なえるように構成されている。
【００８３】
次に、第２ラッチ７２について説明する。図１２は、第２ラッチ７２の構成を示す回路図である。図１２に示すように、第２ラッチ７２は、ロジック回路ＬＧ５〜ＬＧ８、インバータＩＶ１１、ＩＶ１２、ナンド回路ＮＤ２、ＮＤ３、ノア回路ＮＲ２、ＮＲ３、ｐ型ＭＯＳＦＥＴ  Ｔ７、Ｔ８、ｎ型ＭＯＳＦＥＴ  Ｔ６、Ｔ８を含んでいる。ロジック回路ＬＧ５は、トランジスタＴ１、Ｔ２の各ゲートにおいてクロック／ＣＬＫ２Ｌ、ＣＬＫ２Ｌをそれぞれ受け取る。ロジック回路ＬＧ６は、トランジスタＴ１、Ｔ２の各ゲートにおいてクロックＣＬＫ２Ｌ、／ＣＬＫ２Ｌをそれぞれ受け取る。ロジック回路ＬＧ７、ＬＧ８の各々は、トランジスタＴ１、Ｔ２の各ゲートにおいて共通電位（接地電位）ＶＳＳ、電源電位ＶＤＤをそれぞれ受け取る。
【００８４】
図に示すように、第３ラッチ７３から与えられるデータＤＡＴＡ５は、ロジック回路ＬＧ５に供給される。ロジック回路ＬＧ５の出力はインバータＩＶ１１の入力端に接続されている。インバータＩＶ１１の入力端および出力端は、ロジック回路ＬＧ６の出力端および入力端とそれぞれ接続されている。インバータＩＶ１１の出力端は、また、ＮＡＮＤ回路ＮＤ２およびノア回路ＮＲ２の各第１入力端に接続されている。ＮＡＮＤ回路ＮＤ２の第２入力端、ノア回路ＮＲ２の第２入力端には、クロックＣＬＫ２Ｕ、／ＣＬＫ２Ｕが、それぞれ供給される。ナンド回路ＮＤ２の出力端は、トランジスタＴ５のゲートに接続されている。トランジスタＴ５の一端は電源供給端と接続されている。ノア回路ＮＲ２の出力端は、トランジスタＴ６のゲートに接続されている。トランジスタＴ６は、トランジスタＴ５の他端と共通電位端との間に接続されている。トランジスタＴ５、Ｔ６の接続ノードからデータＤＡＴＡ６が取り出される。ロジック回路ＬＧ５、ＬＧ６、インバータＩＶ１１、ナンド回路ＮＤ２、ノア回路ＮＲ２、トランジスタＴ５、Ｔ６は、ロワーデータのための回路である。
【００８５】
第３ラッチ７３から与えられるデータＤＡＴＡ５は、また、ロジック回路ＬＧ７に供給される。ロジック回路ＬＧ７の出力はインバータＩＶ１２の入力端に接続されている。インバータＩＶ１２の入力端および出力端は、ロジック回路ＬＧ８の出力端および入力端とそれぞれ接続されている。インバータＩＶ１２の出力端は、また、ＮＡＮＤ回路ＮＤ３およびノア回路ＮＲ３の各第１入力端に接続されている。ＮＡＮＤ回路ＮＤ３の第２入力端、ノア回路ＮＲ３の第２入力端には、クロックＣＬＫ２Ｕ、／ＣＬＫ２Ｕが、それぞれ供給される。ナンド回路ＮＤ３の出力端は、トランジスタＴ７のゲートに接続されている。トランジスタＴ７の一端は電源供給端と接続されている。ノア回路ＮＲ３の出力端は、トランジスタＴ８のゲートに接続されている。トランジスタＴ８は、トランジスタＴ７の他端と共通電位端との間に接続されている。トランジスタＴ７、Ｔ８の接続ノードからデータＤＡＴＡ６が取り出される。ロジック回路ＬＧ７、ＬＧ８、インバータＩＶ１２、ナンド回路ＮＤ３、ノア回路ＮＲ３、トランジスタＴ７、Ｔ８は、アッパーデータのための回路である。
【００８６】
第２ラッチ７２のプログラムのための構成は、ページバッファ１２および第１〜第３ラッチ７１〜７３が受け取る制御信号の点でも、ロードのための構成と異なる。この制御信号には、クロックおよびライトイネーブル信号が含まれる。具体的には、以下の通りである。第３ラッチ７３は、１２．５ｎｓのクロックＣＬＫ４を受け取る。クロックＣＬＫ４は、シーケンサ１４から供給される。第２ラッチ７２は、クロックＣＬＫ２Ｌ、ＣＬＫ２Ｕを受け取る。クロックＣＬＫ２Ｌ、ＣＬＫ２Ｕは、ロード時に用いられるものと同じである。第１ラッチ７１は、シーケンサ１４からライトイネーブル信号ＷＥを受け取る。ページバッファ１２は、クロックＣＬＫ５を受け取る。
【００８７】
ＮＡＮＤシーケンサ１４は、図４に示すように、これらのクロックを生成するためのクロック生成回路８３を含んでいる。シーケンサ１４は、クロック生成回路８３を用いて、第１周期のクロックから第２周期（第１周期の２倍）のクロックを生成する。
【００８８】
図１３は、クロック生成回路８３を示す回路図である。図に示すように、クロック生成回路８３は、インバータＩＶ１３〜２２、ロジック回路ＬＧ９〜１６を含んでいる。インバータＩＶ１３はクロックＣＬＫ４を受け取る。クロックＣＬＫ４は、オシレータ１５によって生成される。インバータＩＶ１３から出力されるクロック／ＣＬＫは、インバータＩＶ１４に供給される。インバータＩＶ１４は、クロックＣＬＫを出力する。
【００８９】
ロジック回路ＬＧ９、ＬＧ１２、ＬＧ１３、ＬＧ１６の各々は、トランジスタＴ１、Ｔ２の各ゲートにおいてクロックＣＬＫ、／ＣＬＫをそれぞれ受け取る。一方、ロジック回路ＬＧ１０、ＬＧ１１、ＬＧ１４、ＬＧ１５の各々は、トランジスタＴ１、Ｔ２の各ゲートにおいてクロック／ＣＬＫ、ＣＬＫをそれぞれ受け取る。
【００９０】
ロジック回路ＬＧ９、インバータＩＶ１５、ロジック回路ＬＧ１０、インバータＩＶ１６、ＩＶ１７は、この順に、ある要素の入力端が隣の要素の出力端とされながら、直列接続されている。インバータＩＶ１７の出力端は、ロジック回路ＬＧ９の入力端およびインバータＩＶ１８の入力端に接続されている。インバータＩＶ１５の入力端および出力端は、ロジック回路ＬＧ１１の出力端および入力端に、それぞれ接続されている。また、インバータＩＶ１６の入力端および出力端は、ロジック回路ＬＧ１２の出力端および入力端に、それぞれ接続されている。インバータＩＶ１８の出力端から、クロックＣＬＫ４ｂが出力される。クロックＣＬＫ４ｂは、第２周期（２５ｎｓ）を有する。
【００９１】
クロックＣＬＫ４ｂは、ロジック回路ＬＧ１３に供給される。ロジック回路ＬＧ１３、インバータＩＶ１９、ロジック回路ＬＧ１４、インバータＩＶ２０〜ＩＶ２２は、この順に、ある要素の入力端が隣の要素の出力端とされながら、直列接続されている。インバータＩＶ１９の入力端および出力端は、ロジック回路ＬＧ１５の出力端および入力端に、それぞれ接続されている。また、インバータＩＶ１２０の入力端および出力端は、ロジック回路ＬＧ１６の出力端および入力端に、それぞれ接続されている。インバータＩＶ２２の出力端から、クロックＣＬＫ５が出力される。クロックＣＬＫ５は、第２周期（２５ｎｓ）を有する。
【００９２】
＜２−２−２．動作＞
本実施形態での動作の説明に先立ち、一貫して同じビット幅（例えば６４ビット）を有するＮＡＮＤバッファについて簡単に説明する。図１４に示すように、また、ページバッファ１０１、ラッチ１０４は、同じ周期（例えば２５ｎｓ）のクロックＣＬＫ１０５、ＣＬＫ１０４をそれぞれ受け取る。ＥＣＣバッファも同じ周期のクロックを受け取る。ラッチ１０３、１０４は、ライトイネーブル信号を受け取る。
【００９３】
図１５は、図１４のバッファに関する信号のタイミングチャートである。図に示すように、ＥＣＣバッファ１０５は、保持している６４ビットのデータＤ０、Ｄ１、Ｄ２、Ｄ３を順次出力する（ＤＡＴＡ４）。ラッチ１０４は、クロックＣＬＫ１０４の立ち上がりの度に保持しているデータを順次出力する（ＤＡＴＡ１０５）。ラッチ１０３は、クロックＣＬＫ１０４の立ち上がりの以前より、ハイレベルのイネーブル信号の供給を受け続けている。このイネーブル信号ゆえに、供給されるデータＤ０〜Ｄ３を、そのまま順次出力する（ＤＡＴＡ１０６）。ラッチ１０２も、ハイレベルのライトイネーブル信号の供給を受け続けているので、供給されるデータＤ０〜Ｄ３を、そのまま順次出力する（ＤＡＴＡ１０７）。
【００９４】
ページバッファ１０１は、クロックＣＬＫ１０５の立ち上がり後に供給されるデータをラッチし、その後のクロックＣＬＫ１０５の立ち下がりの度に、ラッチしているデータを取り込む（ＤＡＴＡ１０８）
一方、本実施形態に係るＮＡＮＤバス１７のプログラムの際の信号のタイミングチャートは、図１６のようになっている。図１６について、図１１を参照しながら以下に説明する。図１１および図１６に示すように、ＥＣＣバッファは、３２ビットのデータＤ０Ｌ、Ｄ０Ｕ、Ｄ１Ｌ、Ｄ１Ｕ、Ｄ２Ｌ、Ｄ２Ｕ、Ｄ３Ｌ、Ｄ３Ｕを、第３ラッチ７３に順次出力する（ＤＡＴＡ４）。各データの出力に要する期間は、１２．５ｎｓである。第３ラッチ７３は、受け取っている３２ビットのデータＤ０Ｌ、Ｄ０Ｕ、Ｄ１Ｌ、Ｄ１Ｕ、Ｄ２Ｌ、Ｄ２Ｕ、Ｄ３Ｌ、Ｄ３Ｕを、クロックＣＬＫ４の立ち上がりの度に出力する。クロックＣＬＫ４は１２．５ｎｓを有しているので、第３ラッチ７３は、１２．５ｎｓ経過毎にデータを出力する。この結果、第３ラッチ７３は、データＤ０Ｌ、Ｄ０Ｕ、Ｄ１Ｌ、Ｄ１Ｕ、Ｄ２Ｌ、Ｄ２Ｕ、Ｄ３Ｌ、Ｄ３Ｕを順次、第２ラッチ７２に出力する（ＤＡＴＡ５）。
【００９５】
上記のように、第２ラッチ７２は、クロックＣＬＫ２Ｌ、ＣＬＫ２Ｕを受け取っている。クロックＣＬＫ２Ｌは、クロックＣＬＫ４の奇数番（または偶数番）目のハイの期間と同じタイミングで同じ期間にわたってハイを維持する。一方、クロックＣＬＫ２Ｕは、クロックＣＬＫ４の偶数番（または奇数番）目のハイの期間と同じタイミング同じ期間にわたってハイを維持する。このようなクロックＣＬＫ２Ｕ、ＣＬＫ２ＬとデータＤＡＴＡＤ５が図１２の回路に供給されることにより、以下のような信号が生成される。すなわち、クロックＣＬＫ２Ｌの立ち上がりによって、データＤＡＴＡ５の３２ビットデータ（Ｄ０Ｌ）が、インバータＩＶ１１とロジック回路ＬＧ６のループにラッチされる（データＤＡＴＡ５ａ）。このラッチされたデータは、このループに後続するＮＡＮＤ回路ＮＤ２がクロックＣＬＫ２Ｕを受け取っていないので、データＤＡＴＡ６には現われない。
【００９６】
一方、データＤＡＴＡ５内のデータＤ０Ｌの転送が終了すると、データＤ０Ｕが第２ラッチ７２に供給され始める。データＤ０Ｕは、第２ラッチ７２内の図１２のアッパー側の回路に供給される。ロジックＬＧ７、ＬＧ８のトランジスタＴ１、Ｔ２には、固定の電位が供給されているので、データＤＵ０は、特にラッチされることなく、ナンド回路ＮＤ３、ノア回路ＮＲ３に供給される。
【００９７】
データＤ０Ｕの供給の開始と前後して、クロックＣＬＫ２Ｕが立ち上がる。この立ち上がりを検知すると、第２ラッチ７２は、図１２の回路においてラッチしていたデータＤ０Ｌと、データＤ０Ｌを一括して出力する（データＤＡＴＡ６）。この出力されたデータは、データＤ０のアッパー側の部分Ｄ０Ｕとロワー側の部分Ｄ０Ｌとからなる６４ビットのデータＤ０である。以上の第２ラッチ７２の動作が、クロックＣＬＫ２Ｌ、ＣＬＫ２Ｕの立ち上がりの度に繰り返されることによって、６４ビットのデータＤ１、Ｄ２、Ｄ３が、第２ラッチ７２から第３ラッチ７３に出力される（データＤＡＴＡ６）。
【００９８】
第１ラッチ７１は、ハイレベルのライトイネーブル信号を受け取っている間、供給されるデータをそのまま出力する。第１ラッチ７１は、ハイレベルのライトイネーブル信号を受け取り続けているので、供給されるデータＤ０、Ｄ１、Ｄ２、Ｄ３を、ページバッファ１２に順次出力する。
【００９９】
ページバッファ１２は、クロックＣＬＫ５の立ち下がりを検出して、第１ラッチ７１から供給されるデータＤ０、Ｄ１、Ｄ２、Ｄ３を順次取り込む（ＤＡＴＡ８）。
【０１００】
ページバッファ１２、１０１とも、クロックの立ち下がりを検出して、供給されるデータを取り込むように構成されている。従来では、ページバッファ１０１の動作を規定するクロックＣＬＫ１０５は、ＣＬＫ１０４と同一である。そして、クロックＣＬＫ４の立ち上がりでラッチ１０５から出力されたデータは、クロックＣＬＫ４の立ち上がりの直後（ほぼ同時）には、既にページバッファ１０１に到達している。ラッチ１０４から出力されるデータは、ラッチ１０３、１０２を単に通過するだけだからである。したがって、ページバッファ１０１によるあるデータの取り込みの開始は、このデータがＥＣＣバッファ１０５からの出力開始の時点から、第２周期（２５ｎｓ）の半周期後である。クロックＣＬＫ４とクロックＣＬＫ５は、同じ周期で同じタイミングで立ち上がる信号で、ページバッファ１０１によるデータの取り込みは、クロックＣＬＫ１０５の立ち下がりで開始するからである。
【０１０１】
一方、本実施形態では、第２ラッチ７２からのデータの出力は、第３ラッチからのデータの出力を規定するクロックＣＬＫ４の立ち上がりから、第２周期（２５ｎｓ）の半周期遅れる。このデータ出力が、クロックＣＬＫ２Ｌの立ち上がりで行なわれ、クロックＣＬＫ２の立ち上がりが時刻Ｔ１から第２周期（２５ｎｓ）の半分だけ遅れているからである。このため、仮にクロックＣＬＫ５の立ち上がりのタイミングを、従来と同様に、第３ラッチ７３にデータの取り込みを開始させるタイミングと同じにすると、ページバッファ１２によるあるデータの取り込みの開始は、このデータのＥＣＣバッファ２１からの出力開始の時点から第２周期の１．５周期後となる。第２ラッチ７２からのデータの出力が時刻Ｔ１から第２周期の半周期後に開始するとともに、ページバッファによるデータの取り込みが、クロックＣＬＫ３（ＣＬＫ５）の立ち上がりから半周期後の立ち下がりで開始するからである。
【０１０２】
これに対して、本実施形態では、クロックＣＬＫ５は、図１３の回路を用いてクロックＣＬＫ４から作られ、図１６に示すように、クロックＣＬＫ２Ｕの立ち上がりで立ち上がり、クロックＣＬＫ２Ｌの立ち上がりで立ち下がる。このため、あるデータの第３ラッチ７３への取り込みを規定するクロックＣＬＫ４の立ち上がりから第２周期（２５ｎｓ）経過の時点で、ページバッファ１２によるデータの取り込みが開始する。このタイミングは、第２ラッチ７２のデータの出力開始から第２周期の半分経過後である。
【０１０３】
以上、述べたように、本実施形態に係るデータ転送装置によれば、あるビット幅の入出力端を有する第１機能ブロックと、この第１機能ブロックの入出力端のビット幅の半分のビット幅の入出力端を有する第２ブロックの間のデータを転送することができる。さらに、本実施形態では、入出力端のビット幅が同じ２つの部分を結ぶデータ転送装置が用いられる場合の制御クロックの半分の制御クロックが用いられる。このため、接続される２つの機能ブロックの一方の入出力端のビット幅が他方の機能ブロックの入出力端の半分になっても、データ転送速度の大幅な低下を抑制できる。
【０１０４】
なお、実施形態では、ＮＡＮＤ型フラッシュメモリ２、ＲＡＭ３、およびコントローラ部４がワンチップに集積された例を挙げて説明した。このようなメモリシステム２の具体例としては、「ＯｎｅＮＡＮＤ（登録商標）」型のフラッシュメモリが挙げられる。しかし、必ずしもワンチップ化されている場合に限らず、ＮＡＮＤ型フラッシュメモリ２、ＲＡＭ３、およびコントローラ部４が別々の半導体チップで実現されている場合であっても良い。
【０１０５】
その他、本発明の思想の範疇において、当業者であれば、各種の変更例および修正例に想到し得るものであり、それら変更例および修正例についても本発明の範囲に属するものと了解される。
【符号の説明】
【０１０６】
１…メモリシステム、２…ＮＡＮＤ型フラッシュメモリ、３…ＲＡＭ、４…コントローラ部、１０、３２…メモリセルアレイ、１１、３４…ロウデコーダ、１２…ページバッファ、１３…電圧発生回路、１４…シーケンサ、１５、１６…オシレータ、１７…ＮＡＮＤバス、２０…ＥＣＣ部、２１…ＥＣＣバッファ、２２…ＥＣＣエンジン、３０…ＳＲＡＭ、
３１…ＤＱバッファ、３３…センスアンプ、４０…インターフェース部、４１、４２…バーストバッファ、４３…インターフェース、５０…アクセスコントローラ、６０…レジスタ、６１…コマンドユーザインターフェース、６２…ステートマシン、６３…アドレス／コマンド発生回路、６４…アドレス／０タイミング発生回路、７１〜７３…ラッチ。
【図１】
2011022925.tif 000003
【図２】
2011022925.tif 000004
【図３】
2011022925.tif 000005
【図４】
2011022925.tif 000006
【図５】
2011022925.tif 000007
【図６】
2011022925.tif 000008
【図７】
2011022925.tif 000009
【図８】
2011022925.tif 000010
【図９】
2011022925.tif 000011
【図１０】
2011022925.tif 000012
【図１１】
2011022925.tif 000013
【図１２】
2011022925.tif 000014
【図１３】
2011022925.tif 000015
【図１４】
2011022925.tif 000016
【図１５】
2011022925.tif 000017
【図１６】
2011022925.tif 000018