(57)【要約】【課題】平均消費電流を抑制することが可能なメモリシステムを提供する。【解決手段】メモリシステムは、データ保持可能な不揮発性の第１のチップ１１ａと第２のチップ１１ａとを有するメモリ部１１と、ホスト機器２００から受信したデータを第１のチップ１１ａおよび第２のチップ１１ａに同時に転送するメモリコントローラ１２と、予め設定されたずらし時間が経過したことを計測するタイマー２２と、ずらし時間の経過直後に、第２のチップ１１ａへのデータの書き込みを開始させるタイマー制御部１８ａとを有する。【選択図】      図３
2011233114.tif 000002
【特許請求の範囲】
【請求項１】
データ保持可能な不揮発性の第１の半導体メモリチップと第２の半導体メモリチップとを有する半導体記憶部と、
ホスト機器から受信したデータを前記第１の半導体メモリチップおよび前記第２の半導体メモリチップに同時に転送するメモリコントローラと、
予め設定された第１の期間が経過したことを計測する計測部と、
前記第１の期間の経過直後に、前記第２の半導体メモリチップへの前記データの書き込みを開始させる制御部と
を有することを特徴とするメモリシステム。
【請求項２】
データ保持可能な不揮発性の第１の半導体メモリチップと第２の半導体メモリチップとを有する半導体記憶部と、
ホスト機器から受信したデータを前記第１の半導体メモリチップおよび前記第２の半導体メモリチップに交互に転送するメモリコントローラと
予め設定された第１の期間が経過したことを計測する計測部と、
前記第１の期間の経過直後に、前記第２の半導体メモリチップへの前記データの入力を開始させる制御部と
を有することを特徴とするメモリシステム。
【請求項３】
前記第１の期間には上限が設定されていることを特徴とする請求項１または２に記載のメモリシステム。
【請求項４】
異なる複数の前記第１の期間を保持可能とされた記憶領域を更に備え、
前記制御部は、前記記憶領域における前記複数の第１の期間からいずれかの前記第１の期間を選択する
ことを特徴とする請求項１乃至３のいずれか一項に記載のメモリシステム。
【請求項５】
前記第１の期間は、前記ホスト機器からのデータの転送速度に基づいて決定されることを特徴とする請求項１乃至４のいずれか一項に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
近年、半導体記憶装置、例えば、不揮発性の半導体記憶媒体であるフラッシュメモリカードの開発が行われ、ホスト機器であるデジタルカメラ等の情報機器の外部記憶装置として普及している。ホスト機器が扱うデータが大容量化したことに伴い、フラッシュメモリの大容量化および高密度化が進んでいる。
【０００３】
このフラッシュメモリカードにおいて、フラッシュメモリへのデータの書き込みの高速化を図る方法が考えられている。しかし、フラッシュメモリカードの消費電流が増加してしまうという問題もあった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２０７１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
平均消費電流を抑制することが可能なメモリシステムを提供する。
【課題を解決するための手段】
【０００６】
実施形態のメモリシステムは、データ保持可能な不揮発性の第１のチップと第２のチップとを有するメモリ部と、ホスト機器から受信したデータを第１のチップおよび第２のチップに同時に転送するメモリコントローラと、予め設定されたずらし時間が経過したことを計測するタイマーと、ずらし時間の経過直後に、第２のチップへのデータの書き込みを開始させるタイマー制御部とを有する。
【図面の簡単な説明】
【０００７】
【図１】実施形態に係るメモリシステムを概略的に示したブロック図である。
【図２】実施形態に係るコネクタにおける各ピンに対する信号の割り当てを示した図である。
【図３】実施形態に係るメモリカードの構成を概略的に示したブロック図である。
【図４】実施形態に係るメモリ部の構成を概略的に示したブロック図である。
【図５】実施形態に係るチップの内部構成について概略的に示したブロック図である。
【図６】実施形態に係るメモリセルブロックの一部領域の回路図である。
【図７】第１の実施形態に係るパラレル制御を概略的に示した図である。
【図８】第１の実施形態に係るパラレル制御の基本的なタイミングチャートである。
【図９】第１の実施形態に係るパラレル制御の基本的なフローチャートである。
【図１０】第１の実施形態に係る平均消費電流、およびＢｕｓｙずらし時間の関係を示した図である。
【図１１】実施形態に係る平均消費電流と、Ｂｕｓｙずらし時間またはデータインずらし時間との関係を示した図である。
【図１２】第１の実施形態に係る平均消費電流の閾値、およびＢｕｓｙずらし時間の関係の一例を示す図である。
【図１３】第１の実施形態に係るパラレル制御のタイミングチャートの一例である。
【図１４】第１の実施形態に係るパラレル制御のタイミングチャートの他の例である。
【図１５】第２の実施形態に係るインターリーブ制御を概略的に示した図である。
【図１６】第２の実施形態に係るインターリーブ制御の基本的なタイミングチャートである。
【図１７】第２の実施形態に係るインターリーブ制御の基本的なフローチャートである。
【図１８】第２の実施形態に係る平均消費電流、およびデータインずらし時間の関係を示した図である。
【図１９】第２の実施形態に係る平均消費電流の閾値、およびデータインずらし時間の関係の一例を示した図である。
【図２０】第２の実施形態に係るインターリーブ制御のタイミングチャートの一例である。
【図２１】第２の実施形態に係るインターリーブ制御のタイミングチャートの他の例である。
【図２２】第３の実施形態に係るホスト機器、および外部インタフェース部間のデータの転送速度とＢｕｓｙずらしまたはデータインずらし時間との関係を示した図である。
【図２３】第３の実施形態に係る平均消費電流と、Ｂｕｓｙずらしまたはデータインずらし時間との関係を示した図である。
【発明を実施するための形態】
【０００８】
以下、実施形態の詳細を図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【０００９】
（第１の実施形態）
第１の実施形態に係る半導体装置の構成について、図１を用いて説明する。図１は、本実施形態に係るメモリシステムのブロック図である。
【００１０】
＜メモリシステムの全体構成＞
図１に示すように、メモリシステムであるメモリカード１００は、コネクタ１３を介してホスト機器２００に接続される。ホスト機器２００は、コネクタ１３を介して接続されるメモリカード１００に対しアクセスを行うためのハードウェアおよびソフトウェアを備えている。メモリカード１００は、ホスト機器２００に接続された時に電源供給を受けて動作し、ホスト機器２００からのアクセスに応じた処理を行う。
【００１１】
＜メモリカードの構成＞
メモリカード１００は、例えばホスト機器２００に装着されて使用され、ホスト機器２００の外部記憶装置として用いられるＳＤメモリカードである。ホスト機器２００としては、画像データまたは音楽データなどの各種データを処理するパーソナルコンピュータやデジタルカメラ等を含む情報処理装置が挙げられる。  
なお、本実施形態では、このメモリカード１００が適用されるホスト機器２００と含めてメモリシステムとして構成されていてもよいし、カードの形態としてではなく、フラッシュメモリとこのフラッシュメモリを制御するコントローラがホスト機器２００に組み込まれてメモリシステムを構成してもよい。なお、ホスト機器２００としては、上述で挙げたものの他に、ＰＤＡ、電子ブック、デジタルビデオ、携帯電話などの電子機器類も考えられる。
【００１２】
メモリカード１００は、ホスト機器２００とコネクタ１３を介して情報の授受を行う。メモリカード１００は、ＮＡＮＤ型フラッシュメモリチップ（単にＮＡＮＤ型フラッシュメモリ、またはフラッシュメモリと呼ぶことがある）であるメモリ部（不揮発性の半導体記憶部）１１、メモリ部１１を制御するメモリコントローラ（カードコントローラ）１２、および複数の信号ピン（ピン１乃至ピン９）であるコネクタ１３を備えている。
【００１３】
コネクタ１３は、メモリコントローラ１２と電気的に接続されている。コネクタ１３におけるピン１乃至ピン９に対する信号の割り当ては、例えば図２に示すようになっている。図２は、ピン１乃至ピン９と、それらに割り当てられた信号とを示す表である。なお、図２において、ＳＤモード（１ビット、４ビット）およびＳＰＩモードとは、ＳＤメモリカードの規格で規定されているデータ転送の動作モードである。なお、メモリカード１００の転送モードは、転送クロック周波数等により、最大２５ＭＨｚまでサポートしているノーマルスピードモード（「ＮＳＭ」とも呼ぶ）と、最大５０ＭＨｚまでサポートしているハイスピードモード（「ＨＳＭ」とも呼ぶ）に加えて、最大１０４ＭＨｚまでサポートしているウルトラハイスピードモード（「ＵＨＳＭ」とも呼ぶ）等もある。
【００１４】
本発明による実施形態は、例えば、このウルトラハイスピードモード（ＵＨＳＭ）などのように高速なデータ転送を行うに際し、消費電流制限を複数の段階で規定するような場合に適用するとより効果的である。
【００１５】
データＤＡＴ０、ＤＡＴ１、ＤＡＴ２、ＤＡＴ３はそれぞれ、ピン７、ピン８、ピン９、ピン１に割り当てられている。また、ピン１は、カード検出信号ＣＤにも割り当てられている。コマンドＣＭＤと、このコマンドＣＭＤに対するメモリカード１００の応答信号であるレスポンスＲＥＳは、ピン２に割り当てられている。クロック信号ＣＬＫは、ピン５に割り当てられている。電源電圧ＶＤＤはピン４に、接地電圧ＶＳＳ１はピン３に、接地電圧ＶＳＳ２はピン６に割り当てられている。
【００１６】
また、メモリカード１００は、ホスト機器２００に設けられたスロットに対して挿抜可能なように形成されている。ホスト機器２００に設けられたホストコントローラ（図示せず）は、これらピン１乃至ピン９を介してメモリカード１００内のメモリコントローラ１２と各種信号およびデータを通信する。例えば、メモリカード１００にデータが書き込まれる際には、ホストコントローラは、書き込みコマンドを、ピン２を介してメモリコントローラ１２にシリアルな信号として転送する。このとき、メモリコントローラ１２は、ピン５に供給されているクロック信号に応答して、ピン２に与えられる書き込みコマンドを取り込む。
【００１７】
前述のように、ＳＤメモリカードであるメモリカード１００のデータ転送時の動作モード（以下、「転送モード」とも呼ぶ）としては、ＳＤモードとＳＰＩモードとが規定されている。さらに、ＳＤモードの転送モードには、データＤＡＴ０のみを用いる１ビットモードと、データＤＡＴ０〜ＤＡＴ３を用いる４ビットモードとの２つが規定されている。なお、メモリカード１００の転送モードは、転送クロック周波数等により、様々な転送速度のモードがある。
【００１８】
４ビットバス幅単位でデータ転送を行うＳＤモード（ＳＤ４ビットモード）では、データ用の４つのピン１、ピン７、ピン８、ピン９がすべてデータ転送に使用される。一方、１ビットバス幅単位でデータ転送を行うＳＤモード（ＳＤ１ビットモード）では、ピン７のみがデータ転送に使用され、データ用のピン８、ピン９は使用されない。また、ピン１は、例えばメモリカード１００からホスト機器２００への非同期割り込み等のために使用される規定となっている。
【００１９】
ＳＰＩモードは、１ビットバス幅の転送モードであり、ピン７がメモリカード１００からホスト機器２００へのデータ信号線（ＤＡＴＡＯＵＴ）に用いられる。ピン２は、ホスト機器２００からメモリカード１００へのデータ信号線（ＤＡＴＡＩＮ）に用いられる。ピン８、ピン９は、使用されない。また、ＳＰＩモードでは、ピン１がホスト機器２００からメモリカード１００へのチップセレクト信号ＣＳの送信に用いられる規定となっている。
【００２０】
なお、ＳＤモードを使用するか、ＳＰＩモードを使用するかは、メモリカード１００の初期化時に決定される。また、ＳＤモードの１ビットモードと４ビットモードとは、ホストからのコマンド（ＳＥＴ  ＢＵＳ  ＷＩＤＴＨ）によって選択される。
【００２１】
ここで、前述したように、書き込みコマンドは、ピン２のみを利用してメモリコントローラ１２にシリアルに入力される。コマンドの入力に割り当てられているピン２は、図２に示すように、ピン１と接地電位Ｖｓｓ用のピン３との間に配置されている。つまり、コネクタ１３は、ホスト機器２００内のホストコントローラとメモリカード１００とが通信するのに使用される。
【００２２】
これに対し、メモリ部１１とメモリコントローラ１２との間の通信は、ＮＡＮＤ型フラッシュメモリ用のメモリインタフェース部（以下、単にＮＡＮＤバスまたはＮＡＮＤインタフェースと呼ぶことがある）２１によって行われる。したがって、ここでは図示しないが、メモリ部１１とメモリコントローラ１２とは例えば８ビットの入出力（Ｉ／Ｏ）線により接続されている。
【００２３】
例えば、メモリコントローラ１２がメモリ部１１にデータを書き込む際には、メモリコントローラ１２は、これらＩ／Ｏ線を介してデータの入力コマンド８０Ｈ、カラムアドレス、ページアドレス、データ、およびプログラムコマンド１０Ｈ（或いはキャッシュプログラムコマンド１５Ｈ）をメモリ部１１に順次入力する。ここで、コマンド８０Ｈの“Ｈ”は１６進数を示すものであり、実際には“１０００００００”という８ビットの信号が、８ビットのＩ／Ｏ線にパラレルに与えられる。つまり、この外部インタフェース部１５では、複数ビットのコマンドがパラレルに与えられる。
【００２４】
また、メモリインタフェース部２１では、メモリ部１１に対するコマンドとデータが同じＩ／Ｏ線を共用して通信されている。このように、ホスト機器２００内のホストコントローラとメモリカード１００とが通信するインタフェース（コネクタ１３）と、メモリ部１１とメモリコントローラ１２とが通信するインタフェース（ＮＡＮＤバス２１）とは異なる。
【００２５】
＜メモリコントローラの構成＞  
次に、図１に示すメモリカード１００の備えるメモリコントローラの内部構成について図３を用いて説明する。図３はメモリカード１００のブロック図である。
【００２６】
メモリ部１１は、不揮発性の半導体メモリであり、複数のＮＡＮＤ型のフラッシュメモリにより構成されている。ホスト機器２００から送信されたデータなどは、このメモリ部１１に記憶される。また、制御プログラムであるファームウェア（システム情報）等も記憶されていても良い。
【００２７】
また、コネクタ１３は、バス１４を介してメモリコントローラ１２に接続されている。バス１４は、ＣＬＫライン、ＣＭＤ／ＲＥＳライン、ＤＡＴ０ライン、ＤＡＴ１ライン、ＤＡＴ２ライン、ＣＤ／ＤＡＴ３ライン、ＶＤＤライン、ＶＳＳ１ライン、およびＶＳＳ２ラインを含む。メモリコントローラ１２は、例えば８ビットバス幅のバスを介してメモリ部１１と接続されている。
【００２８】
メモリコントローラ１２は、メモリ部１１内部の物理状態（例えば、何処の物理ブロックアドレスに、何番目の論理セクタアドレスデータが含まれているか、あるいは、何処のブロックが消去状態であるか）を管理する。メモリコントローラ１２は、外部インタフェース部１５と、コマンド制御部１６と、データ制御部１７と、ＭＰＵ（Micro Processing Unit）１８と、ＲＯＭ（Read Only Memory）１９と、ＲＡＭ（Random Access Memory）２０と、メモリインタフェース部２１と、タイマー（計測部）２２とを備えている。
【００２９】
外部インタフェース部１５は、メモリコントローラ１２とホスト機器２００との間のインタフェース処理を行う。具体的には、外部インタフェース部１５は、コネクタ１３を介してホスト機器２００と接続されており、ＭＰＵ（制御部）１８の制御のもと、所定のプロトコルに従ってコマンドあるいは各種データ等の送受信を行う機能ブロックである。
【００３０】
コマンド制御部１６は、ホスト機器２００から送信されるコマンドＣＭＤを受け取り、このコマンドＣＭＤを解釈する。また、コマンド制御部１６は、コマンドＣＭＤに対する応答信号であるレスポンスＲＥＳを生成し、このレスポンスＲＥＳをホスト機器２００に送信する。
【００３１】
データ制御部１７は、ホスト機器２００から送信されるコマンドＣＭＤに基づいて、データの送受信を行う。また、データ制御部１７は、メモリカード１００の動作状態などを示すステータスデータ（ＳＴＡＴＵＳ）を生成し、このステータスデータをホスト機器２００に送信する。
【００３２】
ＭＰＵ１８は、メモリカード１００全体の動作を制御するものである。ＭＰＵ１８は、例えばメモリカード１００が電源供給を受けたときに、ＲＯＭ１９やメモリ部１１に格納されているファームウェア（システム情報）をＲＡＭ２０に読み出して所定の処理を実行することにより、各種のテーブルをＲＡＭ２０に作成する。また、ＭＰＵ１８は、ホスト機器２００から書き込みコマンド、読み出しコマンド、あるいは消去コマンド等を受け取り、メモリ部１１に対して所定の処理を実行したり、バッファを通じたデータ転送処理を制御したりする。より具体的には、例えばデータの書き込みの際には、書き込みコマンドを発行する。書き込みコマンドは、例えばＮＡＮＤインタフェースで規定されている“８０Ｈ”や“１０Ｈ”等である。また、ＭＰＵ１８は、タイマー２２の制御を行うタイマー制御部（計測制御部）１８ａを有している。このタイマー制御部１８ａは、タイマー２２に計測時間を設定したり、タイマー２２からの時間計測完了の信号によってＭＰＵ１８やメモリインタフェース部２１の制御を行ったりすることができる。具体的には、タイマー制御部１８ａは、メモリインタフェース部２１の制御を行い、ＭＰＵ１８の発行した書き込みコマンドの転送やデータの入力（データイン）の実行を制御する（遅らせる）。なお、タイマー制御部１８ａは、計測完了の信号をＭＰＵ１８に供給しても良い。また、このタイマー制御部１８ａは、ＭＰＵ１８の外に設けられていても良い。
【００３３】
ＲＯＭ１９は、ＭＰＵ１８により実行されるファームウェアなどを格納するメモリである。ＲＡＭ２０は、ＭＰＵ１８の作業エリアとして使用され、ファームウェアや各種のテーブル（表）を記憶するメモリである。メモリインタフェース部２１は、メモリコントローラ１２とメモリ部１１との間のインタフェース処理を行う機能ブロックである。
【００３４】
また、メモリインタフェース部２１は、例えばタイマー制御部１８ａからの時間計測完了の信号等を受けて、メモリ部１１へのＭＰＵ１８の発行した書き込みコマンドの転送やデータの入力（データイン）を行う。なお、図３ではＭＰＵ１８とメモリインタフェース部２１とを別々の回路ブロックとして図示しているが、例えばＭＰＵ１８における書き込みコマンドを発行する機能がメモリインタフェース部２１に含まれていても良い。
【００３５】
タイマー２２は、１ＣＬＫ（クロック）の立ち上がりから立下りまでを最小単位として時間の計測（カウント）を行う。また、タイマー２２は、タイマー制御部１８ａに、時間の計測が完了すると、その旨を通知する。
【００３６】
また、メモリコントローラ１２には、図示しないバッファが設けられており、ホスト機器２００から送られてくるデータをメモリ部１１へ書き込む際に、一定量のデータ（例えば、１ページ分）を一時的に記憶したり、メモリ部１１から読み出されるデータをホスト機器２００へ送り出す際に、一定量のデータを一時的に記憶したりすることができる。
【００３７】
＜メモリ部の構成＞
次に、図４を用いて、メモリ部１１の構成について概略的に説明する。図４は、メモリ部１１のブロック図である。図示するように、メモリ部１１は、複数（例えばチップ０〜チップｎ−１のｎ個）のチップ（不揮発性の半導体メモリチップ）１１ａを有している。各チップ１１ａは、ＮＡＮＤ型フラッシュメモリである。
【００３８】
＜ＮＡＮＤ型フラッシュメモリの構成＞  
次に、図５を用いて、チップ１１ａの内部構成について概略的に説明する。図５はチップ１１ａのブロック図である。図示するようにチップ１１ａは、メモリセルアレイ３０、ロウデコーダ３１、カラムバッファ（ページバッファ）３２、およびデータキャッシュ３３を備えている。
【００３９】
＜メモリセルアレイの構成＞  
まずメモリセルアレイ３０について説明する。メモリセルアレイ３０は、複数のメモリセルブロックＢＬＫ（例えばＢＬＫ０〜ＢＬＫｍ−１のｍ個）（ｍは自然数）を備えている。
【００４０】
メモリセルブロックＢＬＫは、複数のページ０〜ｐ−１（ｐは自然数）から構成されている。ページとは、データが一括して書き込まれる単位であり、データを保持可能な複数のメモリセルトランジスタの集合である。また、データの消去はメモリセルブロックＢＬＫ単位で行われる。すなわち、同一メモリセルブロックＢＬＫ内のデータは一括して消去される。
【００４１】
＜ロウデコーダについて＞  
次に、チップ１１ａの備えるロウデコーダ３１について説明する。ロウデコーダ３１は、メモリコントローラ１２からロウアドレスを受信し、デコードする。ロウアドレスには、いずれかのメモリセルブロックＢＬＫを指定するブロックアドレスと、いずれかのページを指定するページアドレスとを含む。そして、ロウデコーダ３１はロウアドレスに基づいて、いずれかのメモリセルブロックＢＬＫにおけるいずれかのページを選択する。
【００４２】
＜データキャッシュについて＞  
データキャッシュ３３は、ページサイズのデータを一時的に保持可能とされている。
【００４３】
データキャッシュ３３は、メモリコントローラ１２との間でデータの授受を行う。すなわち、データの読み出し時には、カラムバッファ３２から与えられるデータをメモリコントローラ１２へ転送し、書き込み時にはメモリコントローラ１２から与えられるデータを受信し、これをカラムバッファ３２へページ単位で転送する。
【００４４】
＜カラムバッファについて＞  
カラムバッファ３２は、ページサイズのデータを一時的に保持可能とされている。
【００４５】
カラムバッファ３２は、データの読み出し時には、メモリセルアレイ３０からページ単位で読み出されたデータを一時的に保持し、これをデータキャッシュ３３へ転送する。また書き込み時には、データキャッシュ３３から転送されたデータをビット線ＢＬ０〜ＢＬｎに転送し、データのページ単位でのプログラムを実行する。
【００４６】
＜メモリセルブロック＞  
次に、図６を用いて、メモリセルブロックＢＬＫの構成の詳細について説明する。図６はメモリセルブロックＢＬＫの一部領域の回路図である。
【００４７】
図示するようにメモリセルブロックＢＬＫは、複数のＮＡＮＤセルを有している。ＮＡＮＤセルの各々は、複数（例えば８個）のメモリセルトランジスタＭＴと、選択トランジスタＳＴ１、ＳＴ２とを含んでいる。メモリセルトランジスタＭＴは、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層（例えばフローティングゲート）と、電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲートとを有する積層ゲート構造を備えている。なお、メモリセルトランジスタＭＴの個数は８個に限られず、１６個や３２個であってもよく、その数は限定されるものではない。メモリセルトランジスタＭＴは、隣接するメモリセルトランジスタＭＴ同士でソース、ドレインを共有している。そして、選択トランジスタＳＴ１、ＳＴ２間に、その電流経路が直列接続されるようにして配置されている。そして、直列接続されたメモリセルトランジスタＭＴの一端側のドレイン領域が選択トランジスタＳＴ１のソース領域に接続され、他端側のソース領域が選択トランジスタＳＴ２のドレイン領域に接続されている。
【００４８】
同一行にあるメモリセルトランジスタＭＴの制御ゲートはワード線ＷＬ０〜ＷＬ７のいずれかに共通接続され、同一行にあるメモリセルの選択トランジスタＳＴ１、ＳＴ２のゲートは、それぞれセレクトゲート線ＳＧＤ、ＳＧＳに共通接続されている。また、メモリセルアレイにおいて同一列にある選択トランジスタＳＴ１のドレインはビット線ＢＬ０〜ＢＬｑ−１（ｑは自然数）のいずれかに共通接続される。選択トランジスタＳＴ２のソースはソース線ＳＬに共通接続される。
【００４９】
上記構成においてデータは、同一のワード線ＷＬに接続された複数のメモリセルトランジスタＭＴにつき、一括して書き込まれ、また読み出される。メモリセルトランジスタＭＴは、例えば１ビットのデータを保持可能である。この場合、１本のワード線ＷＬに１ページが割り当てられる。従って図６の例では、１つのメモリセルブロックＢＬＫは８ページを含むことになる。他方、メモリセルトランジスタＭＴは複数ビットを保持しても良い。この場合、ビット毎にデータの書き込み及び読み出しが行われる。例えば２ビットのデータを保持する場合には、１本のワード線ＷＬに、下位ビット及び上位ビットに対応してそれぞれページが割り当てられる。従ってこの場合、図６の例では１つのメモリセルブロックＢＬＫは（８×２）＝１６ページを含むことになる。
【００５０】
＜メモリコントローラ１２によるメモリ部１１の制御について＞  
次に、上記構成のメモリシステムにおける、メモリコントローラ１２によるメモリ部１１の制御について説明する。本実施形態に係るメモリコントローラ１２は、メモリ部１１における複数のチップ１１ａを同時にアクセス出来る。これをパラレル制御と呼ぶ。
【００５１】
＜パラレル制御の基本動作＞  
上記パラレル制御を、図７および図８を用いて説明する。図７は、パラレル制御を概略的に示した図であり、ホスト機器から転送されたデータ（外部データ）が、各チップ１１ａに転送される様子を示す。また図８は、パラレル制御の基本的なタイミングチャートであり、各チップ１１ａについてのデータの入力、データ書き込み、及びＲｅａｄｙ／Ｂｕｓｙ（Ｒ／Ｂ）信号を示す。
【００５２】
図７に示すように、パラレル制御では、ホスト機器２００から転送されてきたデータは複数に分割され、複数のチップ１１ａのページに同時にアクセスされる（書き込まれる）。より具体的には、１つのデータは複数個（図７の例では（ｎ−１）個）のデータ列Ｄ０〜Ｄｎ−１に分割されている。そして各データ列Ｄ０〜Ｄｎ−１には、ホスト機器２００によってアドレスが割り当てられている。例えば各データ列Ｄ０〜Ｄｎ−１には、チップ０〜ｎ−１に対応するアドレスが割り当てられているとする。この場合、各データ列Ｄ０〜Ｄｎ−１は、チップ０〜ｎ−１に並列的に転送される。
【００５３】
図８に示すように、メモリコントローラ１２は、時刻ｔ０から時刻ｔ１にかけて、データが書き込まれるチップ１１ａに対して同時にデータ列を入力する。この際、各チップ１１ａはアクセス可能な状態（データ受信可能な状態）、すなわちＲｅａｄｙ状態であるので、Ｈｉｇｈレベル（単にＨとも書く）のＲ／Ｂ信号を出力している。
【００５４】
そして、時刻ｔ１においてメモリコントローラ１２は書き込み命令（１０Ｈ）を発行する。これに応答して各チップ１１ａは時刻ｔ１から時刻ｔ２にかけて、データ列の書き込み（プログラミング）を行う。この期間、チップ１１ａはアクセス禁止の状態（データ受信禁止の状態）、すなわちＢｕｓｙ状態であるので、Ｌｏｗレベル（単にＬとも書く）のＲ／Ｂ信号を出力している。なお、以下ではプログラミングを開始してから終了するまでの時間をＢｕｓｙ時間と呼ぶ。本実施形態において、簡単のためにＢｕｓｙ時間をチップ１１ａのプログラミング時間と同等して扱う。
【００５５】
そして、各チップ１１ａにおいてプログラミングが完了すると、各チップ１１ａはＲｅａｄｙ状態に復帰する。よってメモリコントローラ１２は、時刻ｔ２から時刻ｔ３にかけて各チップ１１ａへのデータ列の入力を行う。以降同様にして、プログラミングおよびデータ列の入力を繰り返す。
【００５６】
＜Ｂｕｓｙずらし＞  
本実施形態に係るメモリコントローラ１２は、上記パラレル制御において、チップ１１ａ間でプログラム開始時刻をずらす制御を行う。これを「Ｂｕｓｙずらし」と呼ぶ。以下、Ｂｕｓｙずらしにつき、図９を用いて説明する。図９は、第１の実施形態に係るパラレル制御の基本的なフローチャートであり、メモリシステムの動作の流れを示している。また、本例では、チップ０〜チップｎ−１のｎ個のチップに対して同時に書き込みを行う場合について説明している。
【００５７】
［ステップＳ１００１］
まずメモリコントローラ１２は、メモリカード１００が電源供給を受けたときに、ＲＯＭ１９やメモリ部１１に記録してあるファームウェア（システム情報）やメモリ部１１に記録してあるプログラムズレ時間（単にずらし時間や第１の期間とも呼ぶことがある）の情報をＲＡＭ２０上に展開する。この制御は、例えばＭＰＵ１８によって行われる。
【００５８】
［ステップＳ１００２］
次に、ホスト機器２００から外部インタフェース部１５に、消費電流の制限、ホスト機器２００およびメモリコントローラ１２間の転送速度などを含む設定情報が供給される。
【００５９】
［ステップＳ１００３］
ＭＰＵ１８は、前記設定情報に基づいて、ＲＡＭ２０からプログラムズレ時間を引き出す。この際、例えばＲＡＭ２０上に展開されているテーブルからプログラムズレ時間を引き出す。このプログラムズレ時間は、例えばメモリ部１１に予め格納されている。また、このプログラムズレ時間に関しては後述で詳細に説明する。
【００６０】
［ステップＳ１００４］
次に、ＭＰＵ１８は、前記プログラムズレ時間（コマンド１０Ｈの発行タイミング）をタイマー制御部１８ａに設定する。そして、タイマー制御部１８ａはタイマー２２に前記プログラムズレ時間を設定する。
【００６１】
［ステップＳ１００５］
次に、メモリカード１００は、ホスト機器２００から外部インタフェース部１５に書き込み要求が供給される。メモリ部１１が書き込み可能な状態の場合、ＭＰＵ１８は、ホスト機器２００へと書き込み可能であることを示すレスポンスを返す。
【００６２】
［ステップＳ１００６］
次に、データ制御部１７は、ホスト機器２００から外部インタフェース部１５を介して複数に分割されたデータが供給される。この分割されたデータは、元のデータは物理的には分かれていないが、書き込まれるチップ１１ａの宛先が複数に分割されているデータである。
【００６３】
［ステップＳ１００７］
次に、メモリコントローラ１２は、分割された複数のデータ列を、その宛先に応じて、メモリ部１１内の複数チップ１１ａのカラムバッファ３２にそれぞれ同時に入力する（データイン）。分割された複数のデータ列はカラムバッファ３２に一時的に保持される。その後ＭＰＵ１８は、書き込みコマンド（１０Ｈ）を発行する。
【００６４】
［ステップＳ１００８］
タイマー制御部１８ａは、メモリインタフェース部２１を制御し、タイマー２２に設定したプログラムズレ時間に応じてメモリ部１１に対する書き込みコマンド１０Ｈの転送タイミングを遅らせる。
【００６５】
［ステップＳ１００９］
タイマー２２の計測によって、各チップ１１ａに対してデータ列の書き込みが順次行われる。
【００６６】
本例では、内蔵しているタイマー２２で時間を計測して、チップ１１ａ毎にプログラムの実行タイミングをずらしている。このことを「Ｂｕｓｙずらし」と呼ぶ。
【００６７】
次に、ステップＳ１００３で説明したプログラムズレ時間（Ｂｕｓｙずらし時間）Ｔｂｄについて説明する。
【００６８】
データ列をメモリ部１１内部へ格納するのに要する時間をデータイン時間Ｔｄｉと定義し、データ列がメモリ部１１内部へ格納されてから実際にメモリ部１１へ記録されるまでに要する時間をプログラム時間Ｔｐｇと定義する。このときの電気量Ｑとすると、Ｂｕｓｙずらしが無い場合の平均消費電流Ｉｍは、以下の式（１）のようになる。  
Ｉｍ＝Ｑ／(Ｔｄｉ＋Ｔｐｇ)           （１）
Ｂｕｓｙずらしを行う場合、全チップ１１ａへの格納とプログラムに要する時間は、Ｂｕｓｙずらしを行わない場合に比べて、Ｔｂｄ×(Ｎｃ−１)だけ長くなる。但しＮｃは全チップ数である。この場合、Ｂｕｓｙずらしが有る場合の平均消費電流Ｉｍは、以下の式（２）のようになる。  
Ｉｍ＝Ｑ／(Ｔｄｉ＋Ｔｐｇ＋Ｔｂｄ(Ｎｃ−１))       （２）
これにより、図１０に示す関係が得られる。図１０は、Ｂｕｓｙずらし時間Ｔｂｄに対する平均消費電流Ｉｍを示すグラフである。図示するように、Ｂｕｓｙずらし時間Ｔｂｄが増加するほど、平均消費電流Ｉｍが減少することがわかる。なお、ここで説明している平均消費電流Ｉｍとは、メモリ部１１へのデータ列の書き込み開始からデータ列の書き込み終了までの消費電流の平均のことを指している。
【００６９】
また、図１１は、平均消費電流の制限とＢｕｓｙずらし時間との関係を示すダイアグラムである。外部からの平均消費電流の制限がない、すなわち図１０においてＩ０以上である場合は、メモリ部１１への書き込み速度性能が最大の場合、Ｂｕｓｙずらし時間はＴ０＝０となる。つまり、平均消費電流に特に制限が無ければ、Ｂｕｓｙずらしを行う必要はない。しかし制限がある場合には、その制限に応じてＢｕｓｙずらし時間を設定する。例えば外部からの平均消費電流制限がＩ１の場合にはＢｕｓｙずらし時間はＴ１(Ｔ１＞０)、電流制限がＩ２(Ｉ２＜Ｉ１)の場合にはＢｕｓｙずらし時間はＴ２(Ｔ２＞Ｔ１)、となり、電流制限がＩｎ−１の場合にはＢｕｓｙずらし時間はＴｎ−１となるようにメモリコントローラ１２で制御する。この図１１によれば、Ｉ０＞Ｉ１＞Ｉ２＞Ｉ３＞・・・＞Ｉｎとなり、Ｔｎ＞Ｔｎ−１＞Ｔｎ−２＞・・・＞Ｔ０＝０となることがわかる。これにより、許容される最大平均消費電流が減少するほど、Ｂｕｓｙずらし時間Ｔｂｄを増加させれば良いことがわかる。
【００７０】
＜Ｂｕｓｙずらし時間設定方法＞
ところで、Ｂｕｓｙずらし時間（プログラムズレ時間）の設定方法としては、平均消費電流の閾値に基づいてＢｕｓｙずらし時間を設定する方法、ＲＡＭ２０に展開されたテーブルに基づいてＢｕｓｙずらし時間を設定する方法、または平均消費電流に対応するＢｕｓｙずらし時間を計算によって設定する方法、などが考えられる。
【００７１】
まず、平均消費電流の閾値に基づいてＢｕｓｙずらし時間を設定する方法について説明する。この方法としては、ＭＰＵ１８は、予めＲＡＭ２０に平均消費電流の閾値、および前記閾値の大小に対応するＢｕｓｙずらし時間を用意しておく。これらの情報は、例えばＲＯＭ１９やメモリ部１１からＲＡＭ２０に読み出されても良い。そして、ホスト機器２００から転送された設定情報内に設定された消費電流（要求消費電流）Ｉｓが、前記閾値以上の場合、Ｂｕｓｙずらし時間Ｔｂｄ１（Ｔｂｄ１≧０）が選択され、前記閾値よりも低い場合、Ｂｕｓｙずらし時間Ｔｂｄ２（Ｔｂｄ２＞Ｔｂｄ１）が選択される。この際、書き込みの速度性能を考慮し、Ｔｂｄ２には上限が設定されている。このように、ある１つの閾値を基準にして、要求消費電流Ｉｓがこの閾値より高いか低いかによってＢｕｓｙずらし時間を設定出来る。
【００７２】
次に、ＲＡＭ２０に展開されたテーブルに基づいてＢｕｓｙずらし時間を設定する方法について説明する。この方法としては、ＭＰＵ１８は、予めＲＡＭ２０に複数（例えば１０〜２０個程度）の平均消費電流の閾値、および前記複数の閾値に対応するＢｕｓｙずらし時間を用意しておく。これらの情報は、例えばＲＯＭ１９やメモリ部１１からＲＡＭ２０に読み出されても良い。そして、ホスト機器２００から転送された設定情報内に設定された消費電流（要求消費電流）に応じて、Ｂｕｓｙずらし時間が選択される。このように、複数の閾値を基準にしてＢｕｓｙずらし時間を設定出来る。この場合、よりきめ細かいＢｕｓｙずらし時間の設定が可能である。
【００７３】
この平均消費電流の閾値、およびＢｕｓｙずらし時間の関係の一例は、図１２に示すように、例えば上述で導出された（２）式に対応している。図１２は、要求消費電流ＩｓとＢｕｓｙずらし時間との関係を示すグラフである。図示するように、要求消費電流Ｉｓが閾値Ｉ０≧Ｉｓ＞閾値Ｉ１の場合、閾値Ｉ０およびＩ１間に対応するＢｕｓｙずらし時間０およびＴ１間のＴｂｄ０（０≦Ｔｂｄ０＜Ｔ１）が選択される。また、要求消費電流Ｉｓが閾値Ｉ１≧Ｉｓ＞閾値Ｉ２の場合、前記関係に基づいて、閾値Ｉ０およびＩ１間に対応するＢｕｓｙずらし時間Ｔ１およびＴ２間のＴｂｄ１（Ｔ１≦Ｔｂｄ１＜Ｔ２）が選択される。また、要求消費電流Ｉｓが閾値Ｉ１０以下（Ｉｓ≦Ｉ１０）の場合、前記関係に基づいて、前記閾値Ｉ１０に対応するＢｕｓｙずらし時間Ｔ１０以上のＴｂｄ１０（Ｔ１０≦Ｔｂｄ１０）が選択される。ただし、書き込みの速度性能を考慮し、Ｔｂｄ１０には上限が設定されており、例えばＴｂｄ１０＝Ｔ１０となる。
【００７４】
次に、平均消費電流に対応するＢｕｓｙずらし時間を計算によって設定する方法について説明する。この方法は、メモリコントローラ１２内に図示せぬ計算用のアナログ回路を設け、ホスト機器２００から転送される設定情報に基づき上述した（２）式を計算することで、Ｂｕｓｙずらし時間を導出する。
【００７５】
このように、Ｂｕｓｙずらし時間は可変であり、ホスト機器２００からの要求によってはＢｕｓｙずらし時間は０でも良い。
【００７６】
＜Ｂｕｓｙずらし具体例＞
次に、図１３を用いて、Ｂｕｓｙずらし時間が時間Ｔａの際の具体的なパラレル制御に関して説明する。図１３は、第１の実施形態に係るパラレル制御のタイミングチャートの一例であり、ホスト機器から転送されたデータ（外部データ）が、各チップ１１ａに転送される様子を示す。
【００７７】
図１３に示すように、時刻ｔａ０において、全チップ０〜ｎ−１はＲｅａｄｙ状態である。よってメモリコントローラ１２は、チップ０〜ｎ−１に対して同時にデータ列の入力を行う。例えば図７の例であると、メモリコントローラ１２は、データ列Ｄ０〜Ｄｎ−１を、それぞれチップ０〜ｎ−１に並列的に転送する。このデータ列の転送は時刻ｔａ０〜ｔａ１の期間に行われる。
【００７８】
そして、全データ列の格納が完了した後、メモリコントローラ１２は、時刻ｔａ１においてデータ列の書き込みを行う。すなわち、ＭＰＵ１８は書き込みコマンド（１０Ｈ）を発行し、これをメモリインタフェース部２１へ供給する。この際、タイマー制御部１８ａは、メモリインタフェース部２１を制御し、チップ１〜ｎ−１へのデータ列の書き込みコマンドの発行を遅らせる。
【００７９】
より具体的には、メモリインタフェース部２１は、まず書き込みコマンドをチップ０へ発行する。これにより、チップ０は、データ列の書き込みが行われることによって、Ｂｕｓｙ状態となる。よってチップ０のＲ／Ｂ信号はＬとなる。そして、タイマー２２は、チップ０からのＲ／Ｂ信号がＬであることを認識し、タイマー制御部１８ａによって設定されたＢｕｓｙずらし時間Ｔａのカウント（計測）を開始する。メモリインタフェース部２１は、タイマー制御部１８ａからの通知があった際に、チップ１〜ｎ−１に対して書き込み命令を発行出来る。
【００８０】
次に、タイマー２２は、時刻ｔａ１から設定されたＢｕｓｙずらし時間Ｔａの経過を計測すると、その時刻ｔａ２において、タイマー制御部１８ａにその旨を通知する。そして、タイマー制御部１８ａは、この通知を受けて、メモリインタフェース部２１に、その旨を通知する。この通知を受けてメモリインタフェース部２１は、書き込みコマンドをチップ１に発行する。あるいは、タイマー制御部１８ａが、メモリインタフェース部２１に対して、次のチップ１へデータ列の書き込みコマンドを発行するよう、命令または要求しても良い。これにより、チップ１はデータ列の書き込みを開始する。これによりチップ１はＢｕｓｙ状態となり、チップ１のＲ／Ｂ信号はＬとなる。そして、タイマー２２は、チップ１からのＲ／Ｂ信号がＬであることを認識し、例えばカウント（計測）をリセットし、０からタイマー制御部１８ａによって設定されたＢｕｓｙずらし時間Ｔａまでカウント（計測）する。
【００８１】
次に、タイマー２２は、時刻ｔａ２から設定されたＢｕｓｙずらし時間Ｔａの経過を計測すると、その時刻ｔａ３において、タイマー制御部１８ａにその旨を通知する。そして、タイマー制御部１８ａは、この通知を受けて、メモリインタフェース部２１に、その旨を通知する。この通知を受けてメモリインタフェース部２１は、書き込みコマンドをチップ２に発行する。あるいは、タイマー制御部１８ａが、メモリインタフェース部２１に対して、次のチップ２へデータ列の書き込みコマンドを発行するよう、命令または要求しても良い。これにより、チップ２はデータ列の書き込みを開始する。これによりチップ２はＢｕｓｙ状態となり、チップ２のＲ／Ｂ信号はＬとなる。そして、タイマー２２は、チップ２からのＲ／Ｂ信号がＬであることを認識し、計測をリセットし、０からタイマー制御部１８ａによって設定されたＢｕｓｙずらし時間Ｔａまで計測する。
【００８２】
同様にして、タイマー制御部１８ａは、メモリインタフェース部２１を制御し、チップｘ（ｘは自然数）からＲ／Ｂ信号のＬを認識する度に時間０から時間Ｔａまで計測する。そして、タイマー２２が、時間Ｔａの計測を終えると、メモリインタフェース部２１は、チップｘ＋１へデータ列の書き込みコマンドの発行を行う。このように、チップｎ−１に達するまで、タイマー２２が時間Ｔａを計測する毎にメモリインタフェース部２１は、書き込みコマンドの発行を行う。このため、チップ０〜チップｎ−１は、順にずれてデータ列の書き込みが行われる。
【００８３】
全チップ１１ａへのデータ列の書き込みが完了した時刻ｔ´ａ０において、全チップ０〜ｎ−１はＲｅａｄｙ状態である。よってメモリコントローラ１２は、チップ０〜ｎ−１に対して同時にデータ列の入力を行う。以降同様にして、データ列の書き込みおよびデータ列の入力を繰り返す。
【００８４】
次に、図１４を用いて、Ｂｕｓｙずらし時間が時間Ｔｂ（Ｔｂ＞Ｔａ）の際の具体的なパラレル制御に関して説明する。図１４は、第１の実施形態に係るパラレル制御のタイミングチャートの他の例である。
【００８５】
図１４に示すように、時刻ｔｂ０において、全チップ０〜ｎ−１はＲｅａｄｙ状態である。よってメモリコントローラ１２は、チップ０〜ｎ−１に対して同時にデータ列の入力を行う。
【００８６】
そして、全データ列の格納が完了した後、メモリコントローラ１２は、時刻ｔｂ１においてデータ列の書き込みを行う。すなわち、ＭＰＵ１８は書き込みコマンドを発行し、これをメモリインタフェース部２１へ供給する。この際、タイマー制御部１８ａは、メモリインタフェース部２１を制御し、チップ１〜ｎ−１へのデータ列の書き込みコマンドの発行を遅らせる。
【００８７】
次に、タイマー２２は、時刻ｔｂ１から設定されたＢｕｓｙずらし時間Ｔｂの経過を計測すると、その時刻ｔｂ２において、タイマー制御部１８ａにその旨を通知する。そして、タイマー制御部１８ａは、この通知を受けて、メモリインタフェース部２１に、その旨を通知する。この通知を受けてメモリインタフェース部２１は、書き込みコマンドをチップ１に発行する。これにより、チップ１はデータ列の書き込みを開始する。これによりチップ１のＲ／Ｂ信号はＬとなる。そして、タイマー２２は、チップ１からのＲ／Ｂ信号がＬであることを認識し、例えば計測をリセットし、０からタイマー制御部１８ａによって設定されたＢｕｓｙずらし時間Ｔｂまで計測する。
【００８８】
次に、タイマー２２は、時刻ｔｂ２から設定されたＢｕｓｙずらし時間Ｔｂの経過を計測すると、その時刻ｔｂ３において、タイマー制御部１８ａにその旨を通知する。そして、タイマー制御部１８ａは、この通知を受けて、メモリインタフェース部２１に、その旨を通知する。この通知を受けてメモリインタフェース部２１は、書き込みコマンドをチップ２に発行する。これにより、チップ２はデータ列の書き込みを開始する。これによりチップ２のＲ／Ｂ信号はＬとなる。そして、タイマー２２は、チップ２からのＲ／Ｂ信号がＬであることを認識し、計測をリセットし、０からＢｕｓｙずらし時間Ｔｂまで計測する。
【００８９】
同様にして、チップｎ−１に達するまで、タイマー２２が、時間Ｔｂを計測する毎にメモリインタフェース部２１は、書き込みコマンドの発行を行う。このため、チップ０〜チップｎ−１は、順にずれてデータ列の書き込みが行われる。
【００９０】
全チップ１１ａへのデータ列の書き込みが完了した時刻ｔ´ｂ０において、全チップ０〜ｎ−１はＲｅａｄｙ状態である。よってメモリコントローラ１２は、チップ０〜ｎ−１に対して同時にデータ列の入力を行う。以降同様にして、データ列の書き込みおよびデータ列の入力を繰り返す。
【００９１】
図１３および図１４に示すように、Ｂｕｓｙずらし時間Ｔｂｄを大きくすることで、同時にデータ列の書き込まれるチップ１１ａの数が減少することがわかる。
【００９２】
＜効果＞  
上述した実施形態によれば、メモリシステムは、データ保持可能な不揮発性の第１のチップ０と第２のチップ１とを有するメモリ部１１と、ホスト機器２００から受信したデータを第１のチップ０および第２のチップ１に同時に転送するメモリコントローラ１２と、予め設定されたＢｕｓｙずらし時間が経過したことを計測するタイマー２２と、Ｂｕｓｙずらし時間の経過直後に、第２のチップ１へのデータの書き込みを開始させるタイマー制御部１８ａとを有する。また、メモリシステムは、異なる複数Ｂｕｓｙずらし時間を保持可能とされたＲＡＭ２０を備え、タイマー制御部１８ａは、ＲＡＭ２０における複数のＢｕｓｙずらし時間からいずれかのＢｕｚｙずらし時間を選択する。
【００９３】
パラレル制御では、複数のチップ１１ａに対して同時に書き込みが行われるため、消費電流が増大してしまう。しかし、ホスト機器２００からの設定情報に応じて、各チップ１１ａへのデータ列の書き込みタイミングをずらすことで、同時にデータ列の書き込みが行われるチップ１１ａの数を抑制し、平均または瞬間の消費電流を抑えることができる。これにより、ホスト機器２００から要求された平均消費電流の値以内に抑えることが可能である。その結果、平均消費電流または瞬間消費電流を抑制することが可能なメモリシステムを得ることができる。
【００９４】
（第２の実施形態）
次に、図１５〜図２１を用いて、第２の実施形態に係るメモリシステムにおける、メモリコントローラ１２によるメモリ部１１の制御について説明する。本実施形態に係るメモリコントローラ１２は、メモリ部１１におけるチップ１１ａへのデータ列の書き込みが行われている最中に、他のチップ１１ａへのアクセスを開始することが出来る。これをインターリーブ制御と呼ぶ。なお、この説明において、上記第１の実施形態と重複する部分の説明を省略する。
【００９５】
＜インターリーブ制御の基本動作＞  
上記インターリーブ制御を、図１５および図１６を用いて説明する。図１５は、インターリーブ制御を概略的に示した図であり、ホスト機器２００から転送された（外部データ）が、各チップ１１ａに転送される様子を示す。また、図１６は、インターリーブ制御の基本的なタイミングチャートであり、各チップ１１ａについてのデータの入力、データ書き込み、およびＲｅａｄｙ／Ｂｕｓｙ（Ｒ／Ｂ）信号を示す。また、本実施形態では、一例として、チップ０およびチップ１の二つのチップ１１ａに対してインターリーブ制御を行っている。
【００９６】
図１５に示すように、インターリーブ制御では、ホスト機器２００から転送されてきたデータＤ´０をチップ０に転送し、データＤ´０をチップ０に書き込んでいる間に、ホスト機器２００から転送されてきた新たなデータＤ´１をチップ０とは異なるチップ１に転送し、書き込む。なお、データＤ´０〜Ｄ´２ｐ−１はそれぞれ異なるデータである。そして、各データＤ´０〜Ｄ´２ｐ−１には、ホスト機器２００によって、チップ０またはチップ１に対応するアドレスが割り当てられている。
【００９７】
図１６に示すように、メモリコントローラ１２は、時刻ｔ０から時刻ｔ１にかけてデータが書き込まれるチップ０に対してデータを入力する。この際、二つのチップ０およびチップ１はＲｅａｄｙ状態であるので、ＨｉｇｈレベルのＲ／Ｂ信号を出力している。
【００９８】
そして、時刻ｔ１において、メモリコントローラ１２は書き込み命令を（１０Ｈ）を発行する。これに応答してチップ０は時刻ｔ１から時刻ｔ３にかけて、チップ０のデータの書き込みを行う。この期間、チップ０はアクセス禁止の状態（データ受信禁止の状態）、すなわちＢｕｓｙ状態であるので、ＬｏｗレベルのＲ／Ｂ信号を出力している。また、メモリコントローラ１２は、チップ０からＬｏｗレベルのＲ／Ｂ信号を認識すると、チップ１へのデータの入力を開始する。この期間、チップ１はＨｉｇｈレベルのＲ／Ｂ信号を出力している。
【００９９】
そして、時刻ｔ２において、メモリコントローラ１２は書き込み命令を（１０Ｈ）を発行する。これに応答してチップ１は時刻ｔ２から時刻ｔ４にかけて、チップ１のデータの書き込みを行う。この期間、チップ１はＢｕｓｙ状態であるので、ＬｏｗレベルのＲ／Ｂ信号を出力している。
【０１００】
次に、時刻ｔ３において、チップ０のデータの書き込みが完了すると、チップ０は、Ｒｅａｄｙ状態に復帰する。これにより、メモリコントローラ１２は、時刻ｔ３から時刻ｔ４にかけてチップ０に対してデータを入力する。以降同様にして、プログラミングおよびデータの入力を繰り返す。
【０１０１】
＜データインずらし＞
本実施形態に係るメモリコントローラ１２は、上記インターリーブ制御において、チップ１１ａ間でデータの入力時間をずらす制御を行う。これを「データインずらし」と呼ぶ。以下、データインずらしにつき、図１７を用いて説明する。図１７は、第２の実施形態に係るインターリーブ制御の基本的なフローチャートであり、メモリシステムの動作の流れを示している。また、本例では、チップ０およびチップ１の２個のチップに対して同時に書き込みを行う場合について説明している。
【０１０２】
［ステップＳ２００１］
まず、メモリコントローラ１２は、メモリカード１００が電源供給を受けたときにＲＯＭ１９やメモリ部１１に記録してあるファームウェア（システム情報）やメモリ部１１に記録してあるデータインずらし時間（単にズレ時間や第１の期間とも呼ぶことがある）の情報をＲＡＭ２０上に展開する。この制御は、例えばＭＰＵ１８によって行われる。
【０１０３】
［ステップＳ２００２］
次に、ホスト機器２００から外部インタフェース部１５に、消費電流の制限、ホスト機器２００およびメモリコントローラ１２間の転送速度などを含む設定情報が供給される。
【０１０４】
［ステップＳ２００３］
ＭＰＵ１８は、前記設定情報に基づいて、ＲＡＭ２０からデータインずらし時間を引き出す。この際、例えばＲＡＭ２０上に展開されているテーブルからデータインずらし時間を引き出す。このデータインずらし時間は、例えばメモリ部１１に予め格納されている。また、このデータインずらし時間に関しては後述で詳細に説明する。
【０１０５】
［ステップＳ２００４］
次に、ＭＰＵ１８は、前記データインずらし時間（データの入力タイミング）をタイマー制御部１８ａに設定する。そして、タイマー制御部１８ａはタイマー２２に前記データインずらし時間を設定する。
【０１０６】
［ステップＳ２００５］
次に、メモリカード１００は、ホスト機器２００から外部インタフェース部１５に書き込み要求が供給される。メモリ部１１が書き込み可能な状態の場合、ＭＰＵ１８は、ホスト機器２００へと書き込み可能であることを示すレスポンスを返す。
【０１０７】
［ステップＳ２００６］
次に、データ制御部１７は、ホスト機器２００から外部インタフェース部１５を介してデータが供給される。このデータは、メモリコントローラ１２内のバッファに一時的に保持される。
【０１０８】
［ステップＳ２００７］
次に、タイマー制御部１８ａは、前記データインずらし時間に基づいて、メモリインタフェース部２１を制御し、メモリ部１１にデータを転送するタイミングを遅らせる。
【０１０９】
［ステップＳ２００８］
メモリコントローラ１２は、メモリ部１１のカラムバッファ３２へデータを供給する（データイン）。その後ＭＰＵ１８は、書き込みコマンド（１０Ｈ）を発行する。
【０１１０】
［ステップＳ２００９］
タイマー２２の計測によって、各チップ１１ａに対してデータの書き込みが順次行われる。
【０１１１】
本例では、内蔵しているタイマー２２で時間を計測して、データの入力のタイミングをずらす。
【０１１２】
次に、ステップＳ２００３で説明したデータインずらし時間Ｔｄｄについて説明する。
【０１１３】
データをメモリ部１１内部へ格納するのに要する時間をデータイン時間Ｔｄｉと定義し、データがメモリ部１１内部へ格納されてから実際にメモリ部１１へ記録されるまでに要する時間をプログラム時間Ｔｐｇと定義する。平均消費電流Ｉｍは、書き込みサイズが十分に大きければ、チップ０の最初のＴｄｉの時間は無視できるほど小さくなる。このときの電気量Ｑとすると、データインずらしが無い場合の平均消費電流Ｉｍは、以下の式（３）のようになる。
【０１１４】
Ｉｍ≒Ｑ／(Ｔｄｉ＋Ｔｐｇ)          （３）
データインずらしを行う場合、チップ０およびチップ１への格納とプログラミングに要する時間は、データインずらしを行わない場合に比べて、Ｔｄｄ×２（Ｔｄｄの２倍）だけ長くなる。この場合、データインずらしが有る場合の平均消費電流Ｉｍは、以下の式（４）のようになる。
【０１１５】
Ｉｍ≒Ｑ／(Ｔｄｉ＋Ｔｐｇ＋２Ｔｄｄ)        （４）
これにより、図１８に示す関係が得られる。図１８は、データインずらし時間Ｔｄｄに対する平均消費電流Ｉｍを示すグラフである。図示するように、データインずらし時間Ｔｄｄが増加するほど、平均消費電流Ｉｍが減少することがわかる。
【０１１６】
また、図１１は、平均消費電流の制限とデータインずらし時間との関係を示すダイアグラムである。外部からの平均消費電流の制限がＩ０以上である場合、つまり、平均消費電流の制限がなく、メモリ部１１への書き込み速度性能が最大の場合、データインずらし時間はＴ０＝０となる。つまり、平均消費電流に特に制限がなければ、データインずらしを行う必要は無い。しかし、制限がある場合には、その制限に応じてデータインずらし時間を設定する。例えば外部からの平均消費電流制限がＩ１の場合にはデータインずらし時間はＴ１(Ｔ１＞０)、電流制限がＩ２(Ｉ２＜Ｉ１)の場合にはデータインずらし時間はＴ２(Ｔ２＞Ｔ１)、となり、電流制限がＩｎ−１の場合にはデータインずらし時間はＴｎ−１となるようにメモリコントローラ１２で制御する。この図１１によれば、Ｉ０＞Ｉ１＞Ｉ２＞Ｉ３＞・・・＞Ｉｎとなり、Ｔｎ＞Ｔｎ−１＞Ｔｎ−２＞・・・＞Ｔ０＝０となることがわかる。これにより、許容される最大の平均消費電流が減少するほど、データインずらし時間Ｔｄｄを増加させればよいことがわかる。
【０１１７】
＜データインずらし時間設定方法＞
ところで、データインずらし時間の設定方法としては、上述した第１の実施形態と同様に、平均消費電流の閾値に基づいてデータインずらし時間を設定する方法、ＲＡＭ２０に展開されたテーブルに基づいてデータインずらし時間を設定する方法、または平均消費電流に対応するデータインずらし時間を計算によって設定する方法、などが考えられる。なお、データインずらし時間の基本的な導出方法は、上述で説明したＢｕｓｙずらし時間と同様である。
【０１１８】
まず、平均消費電流の閾値に基づいてデータインずらし時間を設定する方法について説明する。この方法としては、ＭＰＵ１８は、予めＲＡＭ２０に平均消費電流の閾値、および前記閾値の大小に対応するデータインずらし時間を用意しておく。これらの情報は、例えばＲＯＭ１９やメモリ部１１からＲＡＭ２０に読み出されても良い。そして、ホスト機器２００から転送された設定情報内に設定された消費電流（要求消費電流）Ｉｓが、前記閾値以上の場合、データインずらし時間Ｔｄｄ１（Ｔｄｄ１≧０）が選択され、前記閾値よりも低い場合、データインずらし時間Ｔｄｄ２（Ｔｄｄ２＞Ｔｄｄ１）が選択される。この際、書き込みの速度性能を考慮し、Ｔｄｄ２には上限が設定されている。このように、ある一つの閾値を基準にして、要求消費電流Ｉｓがこの閾値より高いか低いかによって、データインずらし時間を設定できる。
【０１１９】
次に、ＲＡＭ２０に展開されたテーブルに基づいてデータインずらし時間を設定する方法について説明する。この方法としては、ＭＰＵ１８は、予めＲＡＭ２０に複数（例えば１０〜２０個程度）の平均消費電流の閾値、および前記複数の閾値に対応するデータインずらし時間を用意しておく。これらの情報は、例えばＲＯＭ１９やメモリ部１１からＲＡＭ２０に読み出されても良い。そして、ホスト機器２００から転送された設定情報内に設定された消費電流（要求消費電流）に応じて、データインずらし時間が選択される。このように、複数の閾値を基準にしてデータインずらし時間を設定できる。この場合、よりきめ細かいデータインずらし時間の設定が可能である。
【０１２０】
この平均消費電流の閾値、およびデータインずらし時間の関係の一例は、図１９に示すように、例えば上述で導出された（２）式に対応している。図１９は、要求消費電流Ｉｓとデータインずらし時間との関係を示すグラフである。図示するように、要求消費電流Ｉｓが閾値Ｉ０≧Ｉｓ＞閾値Ｉ１の場合、閾値Ｉ０およびＩ１間に対応するデータインずらし時間０およびＴ１間のＴｄｄ０（０≦Ｔｄｄ０＜Ｔ１）が選択される。また、要求消費電流Ｉｓが閾値Ｉ１≧Ｉｓ＞閾値Ｉ２の場合、前記関係に基づいて、閾値Ｉ０およびＩ１間に対応するデータインずらし時間Ｔ１およびＴ２間のＴｄｄ１（Ｔ１≦Ｔｄｄ１＜Ｔ２）が選択される。また、要求消費電流Ｉｓが閾値Ｉ１０≧Ｉｓの場合、前記関係に基づいて、前記閾値Ｉ１０に対応するデータインずらし時間Ｔ１０以上のＴｄｄ１０（Ｔ１０≦Ｔｄｄ１０）が選択される。ただし、書き込みの速度性能を考慮し、Ｔｄｄ１０には上限が設定されており、例えばＴｄｄ１０＝Ｔ１０となる。
【０１２１】
次に、平均消費電流に対応するデータインずらし時間を計算によって設定する方法について説明する。この方法は、メモリコントローラ１２内に図示せぬ計算用のアナログ回路を設け、ホスト機器２００から転送される設定情報に基づき上述した（４）式を計算することで、データインずらし時間を導出する。
【０１２２】
このように、データインずらし時間は可変であり、ホスト機器２００からの要求によってはデータインずらし時間は０でも良い。
【０１２３】
＜データインずらし具体例＞
次に、図２０を用いて、データインずらし時間が時間Ｔｃの際の具体的なインターリーブ制御に関して説明する。図２０は、第２の実施形態に係るインターリーブ制御のタイミングチャートの一例であり、ホスト機器２００から転送されたデータ（外部データ）が、各チップ１１ａに転送される様子を示す。
【０１２４】
図２０に示すように、時刻ｔｃ０において、チップ０およびチップ１はＲｅａｄｙ状態である。よって、メモリコントローラ１２は、チップ０に対してデータの入力を行う。
【０１２５】
そして、チップ０へのデータの格納が完了した後、メモリコントローラ１２は、時刻ｔｃ１においてデータの書き込みを行う。すなわち、ＭＰＵ１８は書き込みコマンドを発行し、これをメモリインタフェース部２１へ供給する。そして、チップ０はデータの書き込みが行われる。この際、タイマー制御部１８ａは、メモリインタフェース部２１を制御し、チップ１へのデータの入力を遅らせる。
【０１２６】
より具体的には、メモリインタフェース部２１は、まず書き込みコマンドをチップ０へ発行する。これにより、チップ０は、データの書き込みが行われることによって、Ｂｕｓｙ状態となる。よって、チップ０のＲ／Ｂ信号はＬとなる。そして、タイマー２２は、チップ０からのＲ／Ｂ信号がＬであることを認識し、タイマー制御部１８ａによって設定されたデータインずらし時間Ｔｃの計測を開始する。メモリインタフェース部２１は、タイマー制御部１８ａからの通知があった際に、チップ０またはチップ１に対してデータの入力を行うことができる。
【０１２７】
次に、タイマー２２は、時刻ｔｃ１から設定されたデータインずらし時間Ｔｃの経過を計測すると、その時刻ｔｃ２において、タイマー制御部１８ａにその旨を通知する。そして、タイマー制御部１８ａは、この通知を受けて、メモリインタフェース部２１に、その旨を通知する。この通知を受けてメモリインタフェース部２１は、チップ１にデータの入力を行う。あるいは、タイマー制御部１８ａが、メモリインタフェース部２１に対して、次のチップ１へのデータの入力をおこなうよう、命令または要求しても良い。これにより、チップ１にデータの入力が行われる。
【０１２８】
そして、時刻ｔｃ３において、チップ１へのデータの書き込みを行う。これによって、チップ１のＲ／Ｂ信号はＬとなる。
【０１２９】
次に、時刻ｔｃ４において、チップ０のデータの書き込みが完了する。これによりチップ０はＲｅａｄｙ状態となり、チップ０のＲ／Ｂ信号はＨとなる。そして、タイマー２２は、チップ０からのＲ／Ｂ信号がＨであることを認識し、計測をリセットし、０からタイマー制御部１８ａによって設定されたデータインずらし時間Ｔｃまで計測する。
【０１３０】
次に、タイマー２２は、時刻ｔｃ４から設定されたデータインずらし時間Ｔｃの経過を計測すると、その時刻ｔｃ５において、タイマー制御部１８ａにその旨を通知する。そして、タイマー制御部１８ａは、この通知を受けて、メモリインタフェース部２１に、その旨を通知する。この通知を受けてメモリインタフェース部２１は、チップ０にデータの入力を行う。あるいは、タイマー制御部１８ａが、メモリインタフェース部２１に対して、次のチップ０へのデータの入力をおこなうよう、命令または要求しても良い。これにより、チップ０にデータの入力が行われる。
【０１３１】
同様にして、タイマー２２は、チップｙ（ｙは０または１）からＲ／Ｂ信号のＨを認識する度に時間０から時間Ｔｃまで計測する。そして、タイマー２２が、時間Ｔｃの計測を終えると、メモリインタフェース部２１は、チップｙへデータの入力を行う。このように、タイマー２２が時間Ｔｃを計測する毎にメモリインタフェース部２１は、データの入力を行う。このため、チップ０およびチップ１は、順にずれてデータの書き込みが行われる。以降同様にして、データの書き込みおよびデータの入力を繰り返す。
【０１３２】
次に、図２１を用いて、プログラムズレ時間が時間Ｔｄ（Ｔｄ＞Ｔｃ）の際の具体的なインターリーブ制御に関して説明する。図２１は、第２の実施形態に係るインターリーブ制御のタイミングチャートの他の例である。
【０１３３】
図２１に示すように、時刻ｔｄ０において、チップ０およびチップ１はＲｅａｄｙ状態である。よって、メモリコントローラ１２は、チップ０に対してデータの入力を行う。
【０１３４】
そして、チップ０へのデータの格納が完了した後、メモリコントローラ１２は、時刻ｔｄ１においてデータの書き込みを行う。すなわち、ＭＰＵ１８は書き込みコマンドを発行し、これをメモリインタフェース部２１へ供給する。そして、チップ０はデータの書き込みが行われる。この際、タイマー２２は、メモリインタフェース部２１を制御し、チップ１へのデータの入力を遅らせる。
【０１３５】
より具体的には、メモリインタフェース部２１は、まず書き込みコマンドをチップ０へ発行する。これにより、チップ０のＲ／Ｂ信号はＬとなる。そして、タイマー２２は、チップ０からのＲ／Ｂ信号がＬであることを認識し、タイマー制御部１８ａによって設定されたデータインずらし時間Ｔｄの計測を開始する。メモリインタフェース部２１は、タイマー２２からの通知があった際に、チップ０またはチップ１に対してデータの入力を行うことができる。
【０１３６】
次に、タイマー２２は、時刻ｔｄ１から設定されたデータインずらし時間Ｔｄの経過を計測すると、その時刻ｔｄ２において、その旨を通知する。この通知を受けてメモリインタフェース部２１は、チップ１にデータの入力を行う。あるいは、タイマー２２が、メモリインタフェース部２１に対して、次のチップ１へのデータの入力をおこなうよう、命令または要求しても良い。これにより、チップ１にデータの入力が行われる。
【０１３７】
そして、時刻ｔｄ３において、チップ１へのデータの書き込みを行う。これによって、チップ１のＲ／Ｂ信号はＬとなる。
【０１３８】
次に、時刻ｔｄ４において、チップ０のデータの書き込みが完了する。これによりチップ０はＲｅａｄｙ状態となり、チップ０のＲ／Ｂ信号はＨとなる。そして、タイマー２２は、チップ０からのＲ／Ｂ信号がＨであることを認識し、計測をリセットし、０からタイマー制御部１８ａによって設定されたデータインずらし時間Ｔｄまで計測する。
【０１３９】
次に、タイマー２２は、時刻ｔｄ４から設定されたデータインずらし時間Ｔｄの経過を計測すると、その時刻ｔｄ５において、その旨を通知する。この通知を受けてメモリインタフェース部２１は、チップ０にデータの入力を行う。あるいは、タイマー２２が、メモリインタフェース部２１に対して、次のチップ０へのデータの入力をおこなうよう、命令または要求しても良い。これにより、チップ０にデータの入力が行われる。
【０１４０】
以降同様にして、データの書き込みおよびデータの入力を繰り返す。
【０１４１】
図２０および図２１に示すように、データインずらし時間Ｔｄｄを大きくすることで、二つのチップ１１ａに対して同時にデータの書き込まれる時間が減少することがわかる。
【０１４２】
＜効果＞  
上述した実施形態によれば、メモリシステムは、データ保持可能な不揮発性の第１のチップ０と第２のチップ１とを有するメモリ部１１と、ホスト機器２００から受信したデータを第１のチップ０および第２のチップ１に交互に転送するメモリコントローラ１２と、予め設定されたデータインずらし時間が経過したことを計測するタイマー２２と、データインずらし時間の経過直後に、第２のチップ１へのデータの入力を開始させるタイマー制御部１８ａとを有する。また、メモリシステムは、異なる複数のデータインずらし時間を保持可能とされた２０ＲＡＭを備え、タイマー制御部１８ａは、ＲＡＭ２０における複数のデータインずらし時間からいずれかのデータインずらし時間を選択する。
【０１４３】
インターリーブ制御では、例えば二つのチップ１１ａに対して同時に書き込みが行われるため、消費電流が増大してしまう。しかし、ホスト機器２００からの設定情報に応じて、各チップ１１ａへのデータの入力タイミングをずらすことで、複数のチップ１１ａに対して同時にデータの書き込まれる時間を抑制し、平均または瞬間の消費電流を抑えることができる。これにより、ホスト機器２００から要求された平均消費電流の値以内に抑えることが可能である。その結果、平均消費電流または瞬間消費電流を抑制することが可能なメモリシステムを得ることができる。
【０１４４】
（第３の実施形態）
次に、図２２を用いて、第３の実施形態に係るメモリシステムについて説明する。本実施形態では、ホスト機器２００および外部インタフェース部１５間のデータの転送速度（バス転送速度）に基づいてＢｕｓｙずらし時間またはデータインずらし時間を設定している。なお、この説明において、上記第１および第２の実施形態と重複する部分の説明を省略する。
【０１４５】
図２２は、ホスト機器２００および外部インタフェース部１５間のデータの転送速度ＶとＢｕｓｙずらしまたはデータインずらし時間（単にずらし時間とも呼ぶ）Ｔとの関係を示した図である。
【０１４６】
ホスト機器２００およびメモリコントローラ１２間のデータの最大転送速度Ｖｘが、メモリコントローラ１２およびメモリ部１１間のデータの最大転送速度Ｖｙ（Ｖｙ＞Ｖｘ）よりも遅い場合がある。なお、ずらし時間Ｔを長く設定することで、メモリシステムの速度は低下する。しかし、ホスト機器２００およびメモリコントローラ１２間のデータの最大転送速度Ｖｘが、メモリコントローラ１２およびメモリ部１１間の最大転送速度Ｖｙよりも遅いため、メモリシステムのデータの最大転送速度は、速度Ｖｘになる。このため、図１２に示すように、０≦Ｔ≦Ｔｘの間でずらし時間Ｔを設定しても、メモリシステムのデータの最大転送速度は低下しないことがわかる。
【０１４７】
この最小ずらし時間Ｔｘの求め方は、このホスト機器２００およびメモリコントローラ１２間のデータの最大転送速度Ｖｘは、例えば外部インタフェース部１５により導出され、ＭＰＵ１８にこの速度情報が供給される。また、メモリ部１１などに格納されている、データ転送速度とずらし時間との関係のテーブルをＲＡＭ２０に展開する。そして、ＭＰＵ１８は、ＲＡＭ２０に展開されているテーブルから、最大転送速度Ｖｘに対応する最小ずらし時間Ｔｘを導出する。
【０１４８】
＜効果＞
上述した実施形態によれば、メモリシステムはＢｕｓｙずらし時間またはデータインずらし時間（第１の期間）は、ホスト機器２００からのデータの転送速度に基づいて決定される。
【０１４９】
ホスト機器２００およびメモリコントローラ１２間のデータの転送速度が、メモリコントローラ１２およびメモリ部１１間のデータの転送速度よりも遅い場合、メモリシステム全体の速度性能は、ホスト機器２００およびメモリコントローラ１２間のデータの転送速度に依存することになる。
【０１５０】
しかし、図２３に示すように、ずらし時間Ｔが時間Ｔｘの場合、平均消費電流Ｉｍは電流Ｉｘ（Ｉｘ＜Ｉ０）となる。図示するように、ずらし時間Ｔが増加するほど、平均消費電流Ｉｍが減少することがわかる。そして、ずらし時間が０≦Ｔ≦Ｔｘの間であれば良いので、平均消費電流をＩ０よりも低くすることができる。
【０１５１】
このように、ホスト機器２００およびメモリコントローラ１２間のデータの転送速度を基づいて、Ｂｕｓｙずらし時間やデータインずらし時間Ｔを制御する事で、メモリシステム全体の速度性能を落とさずに、平均消費電流を抑える事ができる。その結果、速度性能を落とさずに、平均消費電流または瞬間消費電流を抑制することが可能なメモリシステムを得ることができる。
【０１５２】
なお、上記第１乃至第３実施形態ではＳＤメモリカードを一例として説明したが、同様のバス構造を持つ半導体記憶装置であれば、他のメモリカード、メモリデバイスまたは内部メモリ等にも適用可能であり、メモリカード１００等と同様の作用効果を奏することができる。例えばホスト機器内に複数のメモリチップが実装された半導体装置にも適用できる。また、メモリチップはＮＡＮＤ型フラッシュメモリに限らず、その他の半導体メモリであっても良い。
【０１５３】
また、上述した各実施形態では、タイマー２２がメモリインタフェース部２１を制御することで、ＭＰＵ１８の書き込みコマンドの発行（１０Ｈ）やデータの入力（データイン）の実行を制御していた。しかし、タイマー２２が、第１の期間の計測を終了したことをＭＰＵ１８に知らせることで、ＭＰＵ１８が、書き込みコマンドの発行（１０Ｈ）やデータの入力（データイン）の実行を制御して（遅らせて）も良い。
【０１５４】
また、上述した第１および第２の実施形態では、パラレル制御とインターリーブ制御とを別々に行っているが、パラレル制御とインターリーブ制御とを組み合わせることも可能である。このため、第１および第２の実施形態のＢｕｓｙずらしとデータインずらしを同時に行うことが可能である。
【０１５５】
以上、本発明の実施形態を説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない範囲内において種々変形して実施することが可能である。さらに、上記実施形態には種々の段階の発明が含まれており、開示された構成要件を適宜組み合わせることによって種々の発明が抽出される。例えば、開示された構成要件からいくつかの構成要件が削除されても、所定の効果が得られるものであれば、発明として抽出され得る。
【符号の説明】
【０１５６】
１１…メモリ部、１１ａ…チップ、１２…メモリコントローラ、１３…コネクタ、      １４…バス、１５…外部インタフェース部、１６…コマンド制御部、  
１７…データ制御部、１８…ＭＰＵ、１８ａ…タイマー制御部、１９…ＲＯＭ、  
２０…ＲＡＭ、２１…メモリインタフェース部、２２…タイマー、
３０…メモリセルアレイ、３１…ロウデコーダ、３２…カラムバッファ、
３３…データキャッシュ、１００…メモリカード、２００…ホスト機器、
【図１】
2011233114.tif 000003
【図２】
2011233114.tif 000004
【図３】
2011233114.tif 000005
【図４】
2011233114.tif 000006
【図５】
2011233114.tif 000007
【図６】
2011233114.tif 000008
【図７】
2011233114.tif 000009
【図８】
2011233114.tif 000010
【図９】
2011233114.tif 000011
【図１０】
2011233114.tif 000012
【図１１】
2011233114.tif 000013
【図１２】
2011233114.tif 000014
【図１３】
2011233114.tif 000015
【図１４】
2011233114.tif 000016
【図１５】
2011233114.tif 000017
【図１６】
2011233114.tif 000018
【図１７】
2011233114.tif 000019
【図１８】
2011233114.tif 000020
【図１９】
2011233114.tif 000021
【図２０】
2011233114.tif 000022
【図２１】
2011233114.tif 000023
【図２２】
2011233114.tif 000024
【図２３】
2011233114.tif 000025