不揮発性メモリと、第1の制御信号の立ち上がりエッジ及び立ち下がりエッジの一方に応答してデータ転送を行う第1のモードと、第2の制御信号の立ち上がりエッジ及び立ち下がりエッジの両方に応答してデータ転送を行う第2のモードとを有し、データ入力時に前記第1のモードを用いかつデータ出力時に前記第2のモードを用いるように前記第1及び第2のモードを切り替えるコントローラと、を具備することを特徴とする不揮発性半導体記憶装置。前記コントローラは、コマンド及びパラメータを含むコマンドシーケンスを受け、かつ前記コマンドシーケンスに基づいて前記第1及び第2のモードを切り替えることを特徴とする請求項1に記載の不揮発性半導体記憶装置。前記コントローラは、パラメータを受け、かつ前記パラメータに基づいて前記第1及び第2のモードを切り替えることを特徴とする請求項1に記載の不揮発性半導体記憶装置。前記コントローラは、コマンドを受け、かつ前記コマンドに基づいて前記第1及び第2のモードを切り替えることを特徴とする請求項1に記載の不揮発性半導体記憶装置。前記第2の制御信号は、前記第1の制御信号と同じ周波数であることを特徴とする請求項1乃至4のいずれかに記載の不揮発性半導体記憶装置。実施形態は、データ転送速度の切り替えが可能な不揮発性半導体記憶装置を提供する。実施形態に係る不揮発性半導体記憶装置は、不揮発性メモリと、第1の制御信号の立ち上がりエッジ及び立ち下がりエッジの一方に応答してデータ転送を行う第1のモードと、第2の制御信号の立ち上がりエッジ及び立ち下がりエッジの両方に応答してデータ転送を行う第2のモードとを有し、データ入力時に前記第1のモードを用いかつデータ出力時に前記第2のモードを用いるように前記第1及び第2のモードを切り替えるコントローラとを具備する。以下に示す幾つかの実施形態は、本発明の技術思想を具体化するための装置および方法を例示したものであって、構成部品の形状、構造、配置などによって、本発明の技術思想が特定されるものではない。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。[第1の実施形態][1.不揮発性半導体記憶装置の構成]図1は、第1の実施形態に係る不揮発性半導体記憶装置としてのNAND型フラッシュメモリ1のブロック図である。NAND型フラッシュメモリ1は、入出力線I/O線及び制御信号線を介してホスト装置ホストコントローラ2と接続されている。メモリセルアレイ10は、電気的に書き換え可能なフラッシュメモリセルがマトリクス状に配置されて構成されている。メモリセルアレイ10には、カラム方向に延在する複数のビット線BL、ロウ方向に延在する複数のワード線WL、及びロウ方向に延在するソース線SLが配設されている。ビット線BLには、ビット線制御回路11が接続されている。ビット線制御回路11は、ビット線BLを選択し、かつビット線BLの電圧を制御することで、メモリセルのデータ消去、メモリセルへのデータ書き込み、及びメモリセルからのデータ読み出しを行う。ビット線制御回路11は、カラムデコーダ、センスアンプSA、ページバッファなどを含んでいる。ワード線WLには、ワード線制御回路12が接続されている。ワード線制御回路12は、ワード線WLを選択し、また、消去、書き込み及び読み出しに必要な電圧をワード線WLに印加する。ワード線制御回路12は、ロウデコーダ、ワード線ドライバなどを含んでいる。ソース線制御回路13は、ソース線SLの電圧を制御する。Pウェル制御回路14は、メモリセルアレイ10が形成されるp型ウェルの電圧を制御する。データ入出力バッファ15は、ホストコントローラ2にI/O線を介して接続されており、書き込みデータの受け取り、読み出しデータの出力、アドレスやコマンドの受け取りを行う。データ入出力バッファ15は、受け取った書き込みデータをビット線制御回路11に送り、ビット線制御回路11から読み出された読み出しデータを受け取る。また、データ入出力バッファ15は、メモリセルを選択するために、ホストコントローラ2からのアドレスをビット線制御回路11やワード線制御回路12に制御部17を介して送る。さらに、データ入出力バッファ15は、ホストコントローラ2からのコマンドをコマンドインターフェイス16に送る。コマンドインターフェイス16は、ホストコントローラ2から制御信号線を介して各種制御信号を受け、これら制御信号を制御部17に送る。また、コマンドインターフェイス16は、データ入出力バッファ15に入力されたデータが書き込みデータ、コマンド及びアドレスのいずれであるかを判断し、コマンドであればこれを受け取り、コマンド信号として制御部17に送る。制御部17は、NAND型フラッシュメモリ1全体の管理を行う。制御部17は、ホストコントローラ2からのコマンドを解釈し、データの入出力、読み出し、書き込みプログラム、消去などの各種動作を実行する。また、制御部17は、ホストコントローラ2とのデータ転送を行うためのデータ転送モードとして、SDRSingleDataRateモード及びDDRDoubleDataRateモードを有している。SDRモードとは、制御信号の立ち上がりエッジ及び立ち下がりエッジの一方に応答してデータ転送を行うモードである。DDRモードとは、制御信号の立ち上がりエッジ及び立ち下がりエッジの両方に応答してデータ転送を行うモードであり、すなわち高速転送モードである。よって、DDRモードは、同じ制御信号を用いた場合、SDRモードに比べて2倍のデータ転送速度を有することになる。制御部17は、SDRモード及びDDRモードを用いて、ホストコントローラ2との間でデータ転送処理を実行する。ラッチ回路18は、制御部17の制御のもと、NAND型フラッシュメモリ1の動作に必要な各種設定データを格納する。制御部17は、ラッチ回路18に格納された各種設定データを確認しながら各種動作を実行する。さらに、ラッチ回路18は、SDRモード及びDDRモードのいずれを実施するかを決定するモードデータを格納する。制御部17は、ラッチ回路18に格納されたモードデータを確認することで、現在のデータ転送モードがSDRモード及びDDRモードのいずれであるかを認識することができる。ラッチ回路18としては、揮発性メモリが用いられる。図2は、メモリセルアレイ10の回路図である。メモリセルアレイ10は、j個のブロックBLK0~BLKj-1jは、1以上の整数を備えている。ブロックBLKは、データ消去の最小単位である。各ブロックBLKは、ロウ方向に沿って順に配列されたm個のNANDストリングを備えているmは、1以上の整数。NANDストリングに含まれる選択トランジスタST1は、ドレインがビット線BLに接続され、ゲートが選択ゲート線SGDに共通接続されている。NANDストリングに含まれる選択トランジスタST2は、ソースがソース線SLに共通接続され、ゲートが選択ゲート線SGSに共通接続されている。各メモリセルトランジスタメモリセルとも言うMTは、p型ウェル上に形成された積層ゲート構造を備えたMOSFETMetalOxideSemiconductorFieldEffectTransistorにより構成されている。積層ゲート構造は、p型ウェル上にゲート絶縁膜を介在して形成された電荷蓄積層浮遊ゲート電極、及び浮遊ゲート電極上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセルトランジスタMTは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。メモリセルトランジスタMTは、2値データ1ビットデータを記憶するように構成されていてもよいし、多値データ2ビット以上のデータを記憶するように構成されていてもよい。メモリセルトランジスタMTは、浮遊ゲート電極を有するフローティングゲート構造に限らず、MONOSMetalOxideNitrideOxideSilicon型など、電荷蓄積層としての窒化膜界面に電子をトラップさせることにより閾値電圧が調整可能な構造であってもよい。MONOS構造のメモリセルトランジスタMTについても同様に、2値データを記憶するように構成されていてもよいし、多値データを記憶するように構成されていてもよい。各NANDストリングにおいて、n個nは、1以上の整数のメモリセルトランジスタMTは、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に、それぞれの電流経路が直列接続されるように配置されている。すなわち、n個のメモリセルトランジスタMTは、隣接するもの同士で拡散領域ソース/ドレイン領域を共有するような形でカラム方向に直列接続される。各NANDストリングにおいて、最もソース側に位置するメモリセルトランジスタMTから順に、制御ゲート電極がワード線WL0~WLn-1にそれぞれ接続されている。従って、ワード線WLn-1に接続されたメモリセルトランジスタMTのドレインは選択トランジスタST1のソースに接続され、ワード線WL0に接続されたメモリセルトランジスタMTのソースは選択トランジスタST2のドレインに接続されている。ワード線WL0~WLn-1は、ブロックBLK内のNANDストリング間で、メモリセルトランジスタMTの制御ゲート電極を共通に接続している。つまり、ブロック内において同一行にあるメモリセルトランジスタMTの制御ゲート電極は、同一のワード線WLに接続される。この同一のワード線WLに接続されるm個のメモリセルトランジスタMTは1ページとして取り扱われ、このページごとにデータの書き込み及びデータの読み出しが行われる。また、ビット線BL0~BLm-1は、ブロックBLK間で、選択トランジスタST1のドレインを共通に接続している。つまり、ブロックBLK0~BLKj-1内において同一列にあるNANDストリングは、同一のビット線BLに接続される。各ビット線BLは、ビット線制御回路11に含まれるセンスアンプSAに接続される。なお、図2は、各ビット線BLに1個のセンスアンプSAが接続された構成例を示しているが、2本のビット線に対して1個のセンスアンプSAを配置するようにしてもよい。[2.動作]上記のように構成されたNAND型フラッシュメモリ1の動作について説明する。まず、NAND型フラッシュメモリ1の起動時におけるデータ転送モードの設定動作について説明する。図3は、データ転送モードの設定動作を説明する図である。メモリセルアレイ10は、NAND型フラッシュメモリ1の起動時に使用されるブートプログラムを格納する記憶領域10Aを備えている。パワーオン時、制御部17は、メモリセルアレイ10の記憶領域10Aからブートプログラムを読み出し、このブートプログラムを用いて初期化動作を実行する。このブートプログラムには、データ転送モードを決定するデフォルトのモードデータが含まれており、制御部17は、このモードデータをラッチ回路18の記憶領域18Aに格納する。以後、制御部17は、ラッチ回路18に格納されたモードデータで指定されたデータ転送モードを実行する。次に、データ転送モードの切り替え動作について説明する。図4aは、データ転送モードをSDRモードに切り替える動作を説明するフロー図である。図4の数字は16進数hexadecimalnumber表記であり、1つの楕円は8ビット1バイト分のデータを表している。図4に示すように、1つのコマンドは、例えば8ビットで定義される。まず、NAND型フラッシュメモリ1は、ホストコントローラ2からセットコマンドシーケンスPSを受ける。セットコマンドシーケンスPSは、図4に示した1つのセットコマンドであってもよいし、複数のコマンドを含むセットコマンドシーケンスであってもよい。続いて、制御部17は、ホストコントローラ2から、スイッチコマンドシーケンスを受ける。このスイッチコマンドシーケンスは、スイッチコマンドSW、アドレスAD、及びパラメータ00hを含む。パラメータの最下位ビットは、データ出力におけるデータ転送モードを指定し、最下位から2ビット目は、データ入力におけるデータ転送モードを指定する。データ0はSDRモードを表し、データ1はDDRモードを表している。図4aのスイッチコマンドシーケンスに含まれるパラメータ00hの下位2ビットは、00であるので、データ出力及びデータ入力のデータ転送モードがともにSDRモードに指定されている。制御部17は、上記スイッチコマンドシーケンスを解釈した後、ラッチ回路18の記憶領域18Aに、データ出力及びデータ入力のデータ転送モードをともにSDRモードに設定するモードデータを上書きする。その後、NAND型フラッシュメモリ1は、ラッチ回路18に格納されたモードデータを確認することで、SDRモードを用いてホストコントローラ2との間でデータ出力及びデータ入力を実行する。なお、データ転送モードを切り替えるためのコマンドとしてコマンドシーケンスを定義したが、これに限定されるものではなく、スイッチコマンドのみでデータ転送モードを切り替えるようにしてもよいし、パラメータのみでデータ転送モードを切り替えるようにしてもよい。図4bは、SDRモード時におけるデータ入力動作及びデータ出力動作を説明するフロー図である。NAND型フラッシュメモリ1は、ホストコントローラ2から、プログラムコマンドシーケンス及びデータを受ける。プログラムコマンドシーケンスは、コマンド80h、アドレス、及びコマンド10hを含む。プログラム時のアドレスは、1バイトのアドレスADが例えば5サイクル分のデータで定義される。このプログラムコマンドシーケンスに応答して、制御部17は、SDRモードを用いてデータ入力処理を実行する。続いて、制御部17は、ホストコントローラ2から受けたデータをページ単位でメモリセルアレイ10に書き込む。同様に、ホストコントローラ2が望む書き込みデータが全てNAND型フラッシュメモリ1に書き込まれるまで、プログラムコマンドシーケンスが繰り返し実行される。続いて、NAND型フラッシュメモリ1は、ホストコントローラ2から、読み出しコマンドシーケンスを受ける。読み出しコマンドシーケンスは、コマンド00h、アドレス、及びコマンド30hを含む。読み出し時のアドレスは、1バイトのアドレスADが例えば5サイクル分のデータで定義される。この読み出しコマンドシーケンスに応答して、制御部17は、メモリセルアレイ10からアドレスに対応するデータをページ単位で読み出す。続いて、制御部17は、SDRモードを用いてデータ出力処理を実行する。同様に、ホストコントローラ2が望む読み出しデータが全てNAND型フラッシュメモリ1から読み出されるまで、読み出しコマンドシーケンスが繰り返し実行される。図5aは、データ転送モードをDDRモードに切り替える動作を説明するフロー図である。まず、NAND型フラッシュメモリ1は、ホストコントローラ2からセットコマンドシーケンスPSを受ける。続いて、制御部17は、ホストコントローラ2から、スイッチコマンドシーケンスを受ける。このスイッチコマンドシーケンスは、スイッチコマンドSW、アドレスAD、及びパラメータ03hを含む。パラメータ03hの下位2ビットは、11であるので、データ出力及びデータ入力のデータ転送モードがともにDDRモードに指定されている。制御部17は、上記スイッチコマンドシーケンスを解釈した後、ラッチ回路18の記憶領域18Aに、データ出力及びデータ入力のデータ転送モードをともにDDRモードに設定するモードデータを上書きする。その後、NAND型フラッシュメモリ1は、ラッチ回路18に格納されたモードデータを確認することで、DDRモードを用いてホストコントローラ2との間でデータ出力及びデータ入力を実行する。図5bは、DDRモード時におけるデータ入力動作及びデータ出力動作を説明するフロー図である。NAND型フラッシュメモリ1は、ホストコントローラ2から、プログラムコマンドシーケンス及びデータを受ける。このプログラムコマンドシーケンスに応答して、制御部17は、DDRモードを用いてデータ入力処理を実行する。続いて、制御部17は、ホストコントローラ2から受けたデータをページ単位でメモリセルアレイ10に書き込む。同様に、ホストコントローラ2が望む書き込みデータが全てNAND型フラッシュメモリ1に書き込まれるまで、プログラムコマンドシーケンスが繰り返し実行される。続いて、NAND型フラッシュメモリ1は、ホストコントローラ2から、読み出しコマンドシーケンスを受ける。この読み出しコマンドシーケンスに応答して、制御部17は、メモリセルアレイ10からアドレスに対応するデータをページ単位で読み出す。続いて、制御部17は、DDRモードを用いてデータ出力処理を実行する。同様に、ホストコントローラ2が望む読み出しデータが全てNAND型フラッシュメモリ1から読み出されるまで、読み出しコマンドシーケンスが繰り返し実行される。図6は、SDRモードにおけるデータ入力処理を説明するタイミングチャートである。NAND型フラッシュメモリ1は、ホストコントローラ2から、コマンドラッチイネーブル信号CLE、チップイネーブル信号/CE、アドレスラッチイネーブル信号ALE、及びライトイネーブル信号/WEを制御信号として受ける。tCLS、tCS、tALS、及びtDSはセットアップ時間、tCLH、tCH、tALH、及びtDHはホールド時間、tWCは書き込みサイクル時間、tWPは書き込みパルス幅、tWHは/WEのハイホールド時間である。図6に示すように、制御部17は、ライトイネーブル信号/WEの立ち上がりエッジに応答して、入力データDを取り込む。すなわち、制御部17は、ライトイネーブル信号/WEを制御信号として、SDRモードを用いてデータ入力処理を実行している。ライトイネーブル信号/WEのサイクル時間書き込みサイクル時間tWCは、例えば20nsである。よって、SDRモードにおけるデータ入力処理では、50Mbpsの転送速度を実現している。図7は、SDRモードにおけるデータ出力処理を説明するタイミングチャートである。NAND型フラッシュメモリ1は、ホストコントローラ2からチップイネーブル信号/CE、及びリードイネーブル信号/REを制御信号として受け、また、ホストコントローラ2にレディ/ビジー信号RY//BYを制御信号として送る。tCRは/CEがローから/REがローまでの時間、tRCはリードサイクル時間、tRPはリードパルス幅、tREHは/REのハイホールド時間、tCHZは/CEがハイから出力ハイインピーダンスまでの時間、tRHOHは/REがハイからの出力ホールド時間、tREAは/REアクセス時間、tRHZは/REがハイから出力ハイインピーダンスまでの時間、tRRはレディ状態から/REの立ち下がりエッジまでの時間である。図7に示すように、制御部17は、リードイネーブル信号/REの立ち上がりエッジに応答して、データを出力する。すなわち、制御部17は、リードイネーブル信号/REを制御信号として、SDRモードを用いてデータ出力処理を実行している。リードイネーブル信号/REのサイクル時間リードサイクル時間tRCは、例えば20nsである。よって、SDRモードにおけるデータ出力処理では、50Mbpsの転送速度を実現している。図8は、DDRモードにおけるデータ入力処理を説明するタイミングチャートである。NAND型フラッシュメモリ1は、ホストコントローラ2から、コマンドラッチイネーブル信号CLE、チップイネーブル信号/CE、アドレスラッチイネーブル信号ALE、及びデータストローブ信号DQSを制御信号として受ける。tCALSはCLE/ALEセットアップ時間、tCDQSSはデータ入力開始のためのDQSセットアップ時間、tWPREはライトプリアンブル、tDSCはデータストローブサイクル時間、tDQSHはDQSハイパルス幅、tDQSLはDQSローパルス幅、tWPSTはライトポストアンブル、tWPSTHはライトポストアンブルホールド時間である。図8に示すように、制御部17は、データストローブ信号DQSの立ち上がりエッジ及び立ち下がりエッジの両方に応答して、入力データDを取り込む。すなわち、制御部17は、データストローブ信号DQSを制御信号として、DDRモードを用いてデータ入力処理を実行している。データストローブ信号DQSのサイクル時間データストローブサイクル時間tDSCは、例えば20nsである。よって、DDRモードにおけるデータ入力処理では、100Mbpsの転送速度を実現している。図9は、DDRモードにおけるデータ出力処理を説明するタイミングチャートである。NAND型フラッシュメモリ1は、ホストコントローラ2からチップイネーブル信号/CE、リードイネーブル信号/RE、及びデータストローブ信号DQSを制御信号として受ける。tRPREはリードプリアンブル、tRPSTはリードポストアンブル、tRPSTHはリードポストアンブルホールド時間、tDQSREは/REからDQSまでの遅延、tDQSQはデータ出力とDQSとのスキュー、tQHはDQSからの出力ホールド時間、tQHSはDQSホールドスキューファクタ、tDVWは出力データ有効ウィンドウ、Hi-zはハイインピーダンスである。図9に示すように、制御部17は、データストローブ信号DQSの立ち上がりエッジ及び立ち下がりエッジの両方に応答して、データDを出力する。すなわち、制御部17は、データストローブ信号DQSを制御信号として、DDRモードを用いてデータ出力処理を実行している。データストローブ信号DQSのサイクル時間は、リードサイクル時間tRCと同じであり、例えば20nsである。よって、DDRモードにおけるデータ出力処理では、100Mbpsの転送速度を実現している。[3.効果]以上詳述したように第1の実施形態では、制御部コントローラ17は、制御信号の立ち上がりエッジ及び立ち下がりエッジの一方に応答してデータ転送を行うSDRモードと、制御信号の立ち上がりエッジ及び立ち下がりエッジの両方に応答してデータ転送を行うDDRモードとを有している。そして、制御部17は、ホストコントローラ2から送られるスイッチコマンドシーケンスに基づいて、SDRモードとDDRモードとを切り替えるようにしている。従って第1の実施形態によれば、DDRモードを用いてデータ入力処理及びデータ出力処理を実行することで、データ入力及びデータ出力における転送速度を高速化できる。一方、DDRモードは、SDRモードのおおよそ2倍の転送処理が必要となる。このため、DDRモードでは、データ入力及びデータ出力における消費電流のピークピーク電流、若しくはデータ転送期間の平均消費電流が増加してしまう。このように、NAND型フラッシュメモリにおいて大きなピーク電流が発生すると、このNAND型フラッシュメモリを含むシステムの電源電圧を低下させる原因となり、システムが誤動作を起こす可能性がある。このような条件のシステムにおいては、NAND型フラッシュメモリがSDRモードを用いてデータ入力処理及びデータ出力処理を実行することで、ピーク電流を低減することができる。これにより、システムが誤動作を起こすのを抑制することができる。このように、本実施形態のNAND型フラッシュメモリは、周辺モジュールの条件に応じて容易にSDRモードとDDRモードとを切り替えることができるため、データ転送速度の高速化と、NAND型フラッシュメモリを含むシステムの誤動作抑制という効果を得ることができる。また、本実施形態では、データ転送時に基準となるクロック制御信号として、SDRモードとDDRモードとで同じサイクル時間若しくは同じ周波数の制御信号を用いている。これにより、ホストコントローラ2は、クロックを生成するための水晶振動子を複数持つ必要がなくなり、コスト低減を図ることができる。なお、SDRモード時の制御信号とDDRモード時の制御信号とで、サイクル時間が異なっていてもよい。[第2の実施形態]第2の実施形態は、データ入力処理においてSDRモードを用い、データ出力処理においてDDRモードを用いるというように、データ入力処理とデータ出力処理とで異なるデータ転送モードを実行するようにしている。図10aは、データ入力及びデータ出力をそれぞれSDRモード及びDDRモードに切り替える動作を説明するフロー図である。まず、NAND型フラッシュメモリ1は、ホストコントローラ2からセットコマンドシーケンスPSを受ける。続いて、制御部17は、ホストコントローラ2から、スイッチコマンドシーケンスを受ける。このスイッチコマンドシーケンスは、スイッチコマンドSW、アドレスAD、及びパラメータ01hを含む。パラメータの最下位ビットは、データ出力におけるデータ転送モードを指定し、最下位から2ビット目は、データ入力におけるデータ転送モードを指定する。データ0はSDRモードを表し、データ1はDDRモードを表している。図10aのスイッチコマンドシーケンスに含まれるパラメータ01hの下位2ビットは、01であるので、データ入力がSDRモード、データ出力がDDRモードに指定されている。制御部17は、上記スイッチコマンドシーケンスを解釈した後、ラッチ回路18の記憶領域18Aに、データ入力をSDRモード、データ出力をDDRモードに設定するモードデータを上書きする。その後、NAND型フラッシュメモリ1は、ラッチ回路18に格納されたモードデータを確認することで、ホストコントローラ2との間で、SDRモードを用いてデータ入力処理を実行するとともに、DDRモードを用いてデータ出力処理を実行する。図10bは、SDRモードによるデータ入力動作及びDDRモードによるデータ出力動作を説明するフロー図である。NAND型フラッシュメモリ1は、ホストコントローラ2から、プログラムコマンドシーケンス及びデータを受ける。このプログラムコマンドシーケンスに応答して、制御部17は、SDRモードを用いてデータ入力処理を実行する。このデータ入力処理は、図6と同じである。続いて、制御部17は、ホストコントローラ2から受けたデータをページ単位でメモリセルアレイ10に書き込む。同様に、ホストコントローラ2が望む書き込みデータが全てNAND型フラッシュメモリ1に書き込まれるまで、プログラムコマンドシーケンスが繰り返し実行される。続いて、NAND型フラッシュメモリ1は、ホストコントローラ2から、読み出しコマンドシーケンスを受ける。この読み出しコマンドシーケンスに応答して、制御部17は、メモリセルアレイ10からアドレスに対応するデータをページ単位で読み出す。続いて、制御部17は、DDRモードを用いてデータ出力処理を実行する。このデータ出力処理は、図9と同じである。同様に、ホストコントローラ2が望む読み出しデータが全てNAND型フラッシュメモリ1から読み出されるまで、読み出しコマンドシーケンスが繰り返し実行される。NAND型フラッシュメモリのプログラム処理では、メモリセルトランジスタの閾値設定が高精度で要求されるため、プログラム電圧の印加動作とベリファイ動作とからなるプログラムステージが複数回実行される。このため、NAND型フラッシュメモリでは、読み出し処理にかかる読み出し時間は、プログラム処理にかかるプログラム時間に比べて速い。よって、DDRモードでデータ出力を行うことで、ホストコントローラが読み出しコマンドシーケンスを発行してからデータを受けるまでの時間を高速化することができる。一方、NAND型フラッシュメモリのプログラム処理には時間がかかるため、データ入力を高速化しても、ホストコントローラがプログラムコマンドシーケンスを発行してからメモリセルアレイにデータがプログラムされるまでの時間はそれほど短縮化できない。このため、本実施形態では、データ入力ではSDRモードを用いることで、NAND型フラッシュメモリのピーク電流を低減している。また、データ入力及びデータ出力にそれぞれDDRモード及びSDRモードを用いるようにしてもよい。図11aは、データ入力及びデータ出力をそれぞれDDRモード及びSDRモードに切り替える動作を説明するフロー図である。まず、NAND型フラッシュメモリ1は、ホストコントローラ2からセットコマンドシーケンスPSを受ける。続いて、制御部17は、ホストコントローラ2から、スイッチコマンドシーケンスを受ける。このスイッチコマンドシーケンスは、スイッチコマンドSW、アドレスAD、及びパラメータ02hを含む。パラメータ02hの下位2ビットは、10であるので、データ入力がDDRモード、データ出力がSDRモードに指定されている。制御部17は、上記スイッチコマンドシーケンスを解釈した後、ラッチ回路18の記憶領域18Aに、データ入力をDDRモード、データ出力をSDRモードに設定するモードデータを上書きする。その後、NAND型フラッシュメモリ1は、ラッチ回路18に格納されたモードデータを確認することで、ホストコントローラ2との間で、DDRモードを用いてデータ入力処理を実行するとともに、SDRモードを用いてデータ出力処理を実行する。図11bは、DDRモードによるデータ入力動作及びSDRモードによるデータ出力動作を説明するフロー図である。NAND型フラッシュメモリ1は、ホストコントローラ2から、プログラムコマンドシーケンス及びデータを受ける。このプログラムコマンドシーケンスに応答して、制御部17は、DDRモードを用いてデータ入力処理を実行する。このデータ入力処理は、図8と同じである。続いて、制御部17は、ホストコントローラ2から受けたデータをページ単位でメモリセルアレイ10に書き込む。同様に、ホストコントローラ2が望む書き込みデータが全てNAND型フラッシュメモリ1に書き込まれるまで、プログラムコマンドシーケンスが繰り返し実行される。続いて、NAND型フラッシュメモリ1は、ホストコントローラ2から、読み出しコマンドシーケンスを受ける。この読み出しコマンドシーケンスに応答して、制御部17は、メモリセルアレイ10からアドレスに対応するデータをページ単位で読み出す。続いて、制御部17は、SDRモードを用いてデータ出力処理を実行する。このデータ出力処理は、図7と同じである。同様に、ホストコントローラ2が望む読み出しデータが全てNAND型フラッシュメモリ1から読み出されるまで、読み出しコマンドシーケンスが繰り返し実行される。効果以上詳述したように第2の実施形態では、制御部コントローラ17は、制御信号の立ち上がりエッジ及び立ち下がりエッジの一方に応答してデータ転送を行うSDRモードと、制御信号の立ち上がりエッジ及び立ち下がりエッジの両方に応答してデータ転送を行うDDRモードとを有している。そして、制御部17は、データ入力時にSDRモードを用いかつデータ出力時にDDRモードを用いるようにSDRモードとDDRモードとを切り替えている。従って第2の実施形態によれば、時間がかかるプログラム処理にはSDRモードを対応付け、プログラム処理に比べて時間がかからない読み出し処理にはDDRモードを対応付けるというように、NAND型フラッシュメモリ1の動作特性に応じてSDRモードとDDRモードとを切り替えているため、データ転送速度を高速化しつつ、ピーク電流を低減することができる。その他の効果は、第1の実施形態と同じである。なお、データ入力及びデータ出力にそれぞれDDRモード及びSDRモードを用いるようにしてもよい。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。