(57)【要約】【課題】  外部接続ピン数を増加させることなく、不揮発性半導体メモリに直接アクセスする動作モードを使用可能なメモリシステム及びコントローラを提供する。【解決手段】  ＮＡＮＤ型フラッシュメモリ４と、ホスト機器２が出力したコマンド及びアドレスを受け取るホストインタフェース５１と、ホストインタフェース５１が受け取ったアドレスを変換し、この変換されたアドレスを用いてＮＡＮＤ型フラッシュメモリ４にアクセスする第１モードと、ホストインタフェース５１が受け取ったアドレスを用いてホスト機器２がＮＡＮＤ型フラッシュメモリ４に直接アクセスする第２モードとで動作し、第１モードと第２モードとの動作モードの切り替えをコマンドに応じて制御するコントローラ３ａとを備える。【選択図】    図１
2007272635.tif 000002
【特許請求の範囲】
【請求項１】
ホスト機器に接続して使用するメモリシステムであって、
不揮発性半導体メモリと、
前記ホスト機器が出力したコマンド及びアドレスを受け取るホストインタフェースと、
前記ホストインタフェースが受け取った前記アドレスを変換し、この変換されたアドレスを用いて前記不揮発性半導体メモリにアクセスする第１モードと、前記ホストインタフェースが受け取った前記アドレスを用いて前記ホスト機器が前記不揮発性半導体メモリに直接アクセスする第２モードとで動作し、前記第１モードと前記第２モードとの動作モードの切り替えを前記コマンドに応じて制御するコントローラ
とを備えることを特徴とするメモリシステム。
【請求項２】
前記ホストインタフェースが、前記ホスト機器が出力した特定のコマンドシーケンスを受け取り、前記コントローラが、前記第１モードと前記第２モードとの動作モードの切り替えを前記特定のコマンドシーケンスに応じて切り替えることを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記コントローラは、電源投入時において、前記ホスト機器と前記不揮発性半導体メモリの間にアクセス経路を設定するアクセス経路設定部を備えることを特徴とする請求項１又は２に記載のメモリシステム。
【請求項４】
前記コントローラは、前記第１モード時において、前記ホスト機器が前記不揮発性半導体メモリの消去ブロックサイズよりも小さい消去ブロックサイズを想定して発行するコマンドシーケンスを処理し、前記不揮発性半導体メモリに対する書き込み、読み出し、及び消去の動作を制御することを特徴とする請求項１〜３のいずれか１項に記載のメモリシステム。
【請求項５】
ホスト機器に接続して使用するメモリシステムに搭載されるコントローラであって、
前記ホスト機器が出力したコマンド及びアドレスを受け取るホストインタフェースと、
前記ホストインタフェースが受け取った前記アドレスを変換し、この変換されたアドレスを用いて前記不揮発性半導体メモリにアクセスする第１モードと、前記ホストインタフェースが受け取った前記アドレスを用いて前記ホスト機器が前記不揮発性半導体メモリに直接アクセスする第２モードとで動作し、前記第１モードと前記第２モードとの動作モードの切り替えを前記コマンドに応じて制御する処理部
とを備えることを特徴とするコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は不揮発性半導体メモリを搭載したメモリシステム及びそのコントローラに関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ（ＰＣ）、ＰＤＡ、カメラ、携帯電話等の様々な携帯用電子機器においては、リムーバブル記憶デバイスの１つであるメモリカード等のメモリシステムが多く用いられている。メモリカードの中には、コントローラを搭載せずＮＡＮＤ型フラッシュメモリだけを搭載したものがある。この従来のＮＡＮＤ型フラッシュメモリでは、通常、消去ブロックサイズが小さく、例えば１６Ｋバイトに定められている。
【０００３】
ところで、現在、メモリカードに搭載されるＮＡＮＤ型フラッシュメモリには、大容量で安価な、消去ブロックサイズが大きいＮＡＮＤ型フラッシュメモリが用いられつつある。このＮＡＮＤ型フラッシュメモリでは、コントローラを搭載し、例えば消去ブロックサイズが２５６Ｋバイトに定められている。
【０００４】
また、コントローラを搭載するメモリカードの出荷テストでは、コントローラと不揮発性半導体メモリを個別にテストする必要がある。不揮発性半導体メモリを単独でテストするため、コントローラを介さずに不揮発性半導体メモリに直接アクセスするパススルーモードが知られている。パススルーモードを実現するため、外部接続ピンとしてのモード端子から入力されるモード信号に応じて第１動作モードとパススルーモードを切り替える手法が提案されている（例えば、特許文献１参照。）。
【０００５】
しかしながら、モード端子を設ける上記の手法では、外部接続ピン数の増加によってメモリカード全体のサイズ及び製造コスト等が増加する。更に、外部接続ピン数の増加に対応するため、メモリカードをテストするホスト機器（テスタ）側の構造を変更する必要が生じる。
【特許文献１】特開２００４−１５８０９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、外部接続ピン数を増加させることなく、不揮発性半導体メモリに直接アクセスする動作モードを使用可能なメモリシステム及びコントローラを提供する。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、ホスト機器に接続して使用するメモリシステムであって、不揮発性半導体メモリと、ホスト機器が出力したコマンド及びアドレスを受け取るホストインタフェースと、ホストインタフェースが受け取ったアドレスを変換し、この変換されたアドレスを用いて不揮発性半導体メモリにアクセスする第１モードと、ホストインタフェースが受け取ったアドレスを用いてホスト機器が不揮発性半導体メモリに直接アクセスする第２モードとで動作し、第１モードと第２モードとの動作モードの切り替えをコマンドに応じて制御するコントローラとを備えるメモリシステムが提供される。
【０００８】
本発明の他の態様によれば、ホスト機器に接続して使用するメモリシステムに搭載されるコントローラであって、ホスト機器が出力したコマンド及びアドレスを受け取るホストインタフェースと、ホストインタフェースが受け取ったアドレスを変換し、この変換されたアドレスを用いて不揮発性半導体メモリにアクセスする第１モードと、ホストインタフェースが受け取ったアドレスを用いてホスト機器が不揮発性半導体メモリに直接アクセスする第２モードとで動作し、第１モードと第２モードとの動作モードの切り替えをコマンドに応じて制御する処理部とを備えるコントローラが提供される。
【発明の効果】
【０００９】
本発明によれば、外部接続ピン数を増加させることなく、不揮発性半導体メモリに直接アクセスする動作モードを使用可能なメモリシステム及びコントローラを提供できる。
【発明を実施するための最良の形態】
【００１０】
次に、図面を参照して、本発明の第１及び第２実施形態を説明する。以下の第１及び第２実施形態における図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。また、メモリシステムとして、ホスト機器に着脱可能なメモリカードを例に説明する。
【００１１】
（第１実施形態）
本発明の第１実施形態に係るメモリカード１ａは、出荷テスト時において図１に示すように、テスタとしてのホスト機器２と電気的に接続される。メモリカード１ａは、ホスト機器２とデータ等をやり取りするコントローラ３ａと、不揮発性半導体メモリとしてのＮＡＮＤ型フラッシュメモリ４と、ホスト機器２及びコントローラ３ａの間のインタフェース処理を行うホストインタフェース（Ｉ／Ｆ）５１と、コントローラ３ａ及びＮＡＮＤ型フラッシュメモリ４との間のインタフェース処理を行うメモリインタフェース（Ｉ／Ｆ）５２を備える。ホストＩ／Ｆ５１は、ホスト機器２が出力したコマンド及びアドレスを受け取る。コントローラ３ａは、ホストＩ／Ｆ５１が受け取ったアドレスを変換し、この変換されたアドレスを用いてＮＡＮＤ型フラッシュメモリ４にアクセスする第１モードと、ホストＩ／Ｆ５１が受け取ったアドレスを用いてホスト機器２がＮＡＮＤ型フラッシュメモリ４に直接アクセスする第２モードとで動作し、第１モードと第２モードとの動作モードの切り替えをコマンドに応じて制御する。
【００１２】
以下においては、第１モードから第２モードへの切り替え動作を移行動作と呼び、第２モードから第１モードへ切り替え動作を復帰動作と呼ぶ。なお、「第１モード」とは、ホスト機器２がＮＡＮＤ型フラッシュメモリ４に直接アクセスしない動作モードであり、実使用時と同様の動作モードを意味する。
【００１３】
出荷テスト時において、ホスト機器２は、コントローラ３ａとＮＡＮＤ型フラッシュメモリ４を個別にテストする。以下の説明においては、コントローラ３ａのみを対象にして実行するテストを「コントローラ単体テスト」と、ＮＡＮＤ型フラッシュメモリ４のみを対象にして実行するテストを「ＮＡＮＤ単体テスト」とそれぞれ呼ぶ。コントローラ単体テスト時においては、動作モードが第１モードに設定される。これに対してＮＡＮＤ単体テスト時においては、動作モードが第２モードに設定される。
【００１４】
ＮＡＮＤ型フラッシュメモリ４は、例えば、１Ｇビット以上の記憶容量を有し、消去単位である消去ブロックのサイズが２５６Ｋバイトに定められ、データの書き込み及び読み出しが１６Ｋバイト単位で行われる。ＮＡＮＤ型フラッシュメモリ４の記憶容量が１Ｇビットである場合、消去ブロックの数は５１２個となる。なお、ＮＡＮＤ型フラッシュメモリ４は、例えば０．０９μｍプロセス技術を用いて製造され、デザインルールは０．１μｍ未満となっている。
【００１５】
コントローラ３ａは、処理部３１ａ、アクセス経路設定部３２ａ、バッファメモリ３３、ＲＯＭ３４、及びＲＡＭ３５を備える。ＲＯＭ３４は、処理部３１ａにより実行される制御プログラム（ファームウェア）等を格納する。処理部３１ａは、ＲＯＭ３４に格納された制御プログラムを実行することで各種の処理を実行する。ＲＡＭ３５は、処理部３１ａの作業領域として使用され、制御プログラムや各種のテーブルを一時的に記憶する。
【００１６】
処理部３１ａは、第１モード時において、ＲＯＭ３４の中に格納されている制御プログラムをＲＡＭ３５上にロードして所定の処理を実行する。この結果、処理部３１ａは、各種のテーブルをＲＡＭ３５上で作成したり、ホスト機器２から書き込みコマンド、読み出しコマンド、及び消去コマンド等を受けてＮＡＮＤ型フラッシュメモリ４に対するアクセスを実行したり、バッファメモリ３３を通じたデータ転送処理を制御したりする。
【００１７】
バッファメモリ３３は、第１モード時において、ホスト機器２から送られてくるデータをＮＡＮＤ型フラッシュメモリ４へ書き込む際に、一定量（例えば１ページ分）のデータを一時的に記憶したり、ＮＡＮＤ型フラッシュメモリ４から読み出されたデータをホスト機器２へ送り出す際に、一定量のデータを一時的に記憶したりする。
【００１８】
アクセス経路設定部３２ａは、第２モード時において、ホスト機器２がＮＡＮＤ型フラッシュメモリ４に直接アクセスするアクセス経路を設定する。一例として、アクセス経路設定部３２ａは、例えば、バッファメモリ３３及びホストＩ／Ｆ５１の間に接続された第１スイッチＳＷ１と、バッファメモリ３３及びメモリＩ／Ｆ５２との間に接続された第２スイッチＳＷ２を備える。第１及び第２スイッチＳＷ１，ＳＷ２は、処理部３１ａからの切り替え制御信号に応じて、ホストＩ／Ｆ５１、バッファメモリ３３、及びメモリＩ／Ｆ５２の接続関係を切り替える。この結果、第２モード時においては、書き込みデータ及び読み出しデータ等がバッファメモリ３３を迂回し、且つホスト機器２が発行するコマンド等をＮＡＮＤ型フラッシュメモリ４に直接伝達できる。
【００１９】
このように、移行動作と復帰動作をコマンドに応じて制御する構成としているので、外部接続ピン数を増加させることなく第２モードを実現できる。
【００２０】
メモリカード１ａの外部接続ピンの配置例を図２に示す。図２においては、メモリカード１ａのピン形成面から見た様子を示している。メモリカード１ａは、第１〜第１８ピンＰ１〜Ｐ１８の合計１８個の外部接続ピンを有している。第１〜第１８ピンＰ１〜Ｐ１８の各ピンと各ピンに割り当てられる信号例を図３に示す。なお、図３中の属性“タイプ”において、記号“Ｓ”は電源電圧を示し、記号“Ｉ”はメモリカード１ａへの入力であることを示し、記号“Ｏ”はメモリカード１ａからの出力であることを示し、記号“Ｉ／Ｏ”はメモリカード１ａに対する入出力であることを示す。また、ピン名（信号名）の頭に付した記号“−”は、ロウ・トゥルー信号であること、すなわち“Ｌ”レベルのとき活性化を指示する信号であることを示す。
【００２１】
第１及び第９ピンＰ１，Ｐ９は接地電圧ＧＮＤに、第１８ピンＰ１８は電源電圧Ｖｃｃにそれぞれ割り当てられている。
【００２２】
第２ピンＰ２は、メモリカード１ａの内部動作状態をホスト機器２に知らせるためのレディ・ビジー（Ｒ／−Ｂ）信号に割り当てられている。書き込み、読み出し、及び消去時等、内部にて動作実行中は第２ピンＰ２からビジー信号が出力され、動作が完了するとレディ信号が出力される。
【００２３】
第３ピンＰ３はデータを出力させる読み出しイネーブル（−ＲＥ）信号に、第４ピンＰ４はメモリカード１ａを動作可能状態にするカードイネーブル（−ＣＥ）信号にそれぞれ割り当てられている。
【００２４】
第５ピンＰ５はコマンドの取り込みを制御するためのコマンドラッチイネーブル（ＣＬＥ）信号に、第６ピンＰ６はアドレスの取り込みを制御するためのアドレスラッチイネーブル（ＡＬＥ）信号にそれぞれ割り当てられている。
【００２５】
第７ピンＰ７はデータをメモリカード１ａに書き込むための書き込みイネーブル信号（−ＷＥ）信号に、第８ピンＰ８は書き込み及び消去を強制的に禁止させるための書き込みプロテクト（−ＷＰ）信号にそれぞれ割り当てられている。
【００２６】
第１０〜第１７ピンＰ１０〜Ｐ１７は、コマンド、アドレス、及びデータの各ビットＤ０〜Ｄ７にそれぞれ割り当てられている。
【００２７】
一方、ＮＡＮＤ型フラッシュメモリ４及びメモリＩ／Ｆ５２は、図３に示したホストＩ／Ｆ５１が有するピンと同様のピン構成を有している。具体的にはＮＡＮＤ型フラッシュメモリ４及びメモリＩ／Ｆ５２は、コマンド、アドレス、及びデータが入出力される入出力（Ｉ／Ｏ）ピン１〜８と、レディ・ビジー信号を出力するＲ／−Ｂピンと、読み出しイネーブル信号が入力される−ＲＥピンと、チップイネーブル信号が入力される−ＣＥピンと、コマンドラッチイネーブル信号が入力されるＣＬＥピンと、アドレスラッチイネーブル信号が入力されるＡＬＥピンと、書き込みイネーブル信号が入力される−ＷＥピンと、書き込みプロテクト信号が入力される−ＷＰピンとを備える。
【００２８】
このように、メモリカード１ａは、ＮＡＮＤ型フラッシュメモリ４のピン構成に対応したピン構成を有しており、ホスト機器２がＮＡＮＤ型フラッシュメモリ４に対するコマンドシーケンスによりメモリカード１ａにアクセスを行うことが可能となっている。ここで「コマンドシーケンス」とは、１つのコマンドとアドレス等との組み合わせ、複数のコマンドの組み合わせ、あるいは、コマンド、アドレス、データをいずれかもしくはすべてを１つないしは複数組み合わせたものを意味する。
【００２９】
上述したように、コントローラ３ａは、移行動作と復帰動作をコマンドに応じて制御するが、コマンドによって移行動作及び復帰動作を制御する場合、コントローラ３ａが書き込み時や読み出し時であると認識して誤動作する恐れがある。また、復帰動作を指示するコマンド（例えば“ＦＦｈ”コマンド（ｈ；１６進を示す））と同一のアドレス又はデータ等が入力された場合、コントローラ３ａは意図しない復帰動作を実行してしまう。
【００３０】
そこで、コマンドシーケンスにより移行動作及び復帰動作を制御することで、コントローラ３ａの誤動作を回避できる。具体的には、ＮＡＮＤ単体テストを実行する場合、ホスト機器２は、メモリカード１ａの電源投入後、移行動作を指示するコマンドシーケンスを発行する。移行動作を指示するコマンドシーケンスによって動作モードが第２モードに設定された場合、コントローラ３ａは、復帰動作を指示するコマンドシーケンスが発行されるまで第２モードを維持する。この結果、コントローラ３ａが第２モード中に意図しない復帰動作を実行する不具合を回避できる。
【００３１】
更に、第１モード時においてホスト機器２は、消去ブロックサイズが１６Ｋバイトに定められているＮＡＮＤ型フラッシュメモリ４を使用することを前提として、１６Ｋバイト単位で論理アドレス及び物理アドレスの割り当てを行う。多くの場合、論理アドレス１６Ｋバイト分に関してシーケンシャルに書き込みアクセス若しくは読み出しアクセスを行うため、該当するコマンドを発行する。なお、以下の説明において使用する用語「論理ブロックアドレス」及び「物理ブロックアドレス」は、ブロック自体の論理アドレス及び物理アドレスをそれぞれ意味する。用語「論理アドレス」及び「物理アドレス」は、主に、ブロック自体の論理アドレス及び物理アドレスをそれぞれ意味するが、ブロック単位よりも細かな分解能の単位に相当するアドレスである場合もあり得る。
【００３２】
また、ホスト機器２は、メモリカード１ａ内部の物理状態、例えば何処の物理ブロックアドレスに、何番目の論理セクタアドレスデータが含まれているか、あるいは何処のブロックが消去状態であるか等を管理し、メモリカード１ａ内のＮＡＮＤ型フラッシュメモリ４を直接制御するものとして構築されている。
【００３３】
消去ブロックサイズが１６Ｋバイトに定められているＮＡＮＤ型フラッシュメモリ４を使用することを想定してホスト機器２が動作する場合、ＮＡＮＤ型フラッシュメモリ４の実際の消去ブロックサイズが２５６Ｋバイトであるため、メモリカード１ａは正常に応答できずに誤動作することとなる。
【００３４】
メモリカード１ａの誤動作を回避するため、コントローラ３ａは、第１モード時において、ホスト機器２がＮＡＮＤ型フラッシュメモリ４の消去ブロックサイズよりも小さい消去ブロックサイズを想定して発行するコマンドシーケンスを処理し、ＮＡＮＤ型フラッシュメモリ４に対する書き込み、読み出し、及び消去の動作を制御する。
【００３５】
図４を用いて、ホスト機器２が想定しているＮＡＮＤ型フラッシュメモリと、実際に使用するＮＡＮＤ型フラッシュメモリ（メモリカード１ａ内のＮＡＮＤ型フラッシュメモリ４）とのデータ配置の差異を説明する。
【００３６】
ホスト機器２が想定しているＮＡＮＤ型フラッシュメモリでは、各ページが、５１２バイト分のデータ記憶部と１６バイト分の冗長部とからなる５２８バイトの記憶容量を有しており、３２ページ分が１つの消去単位（１６Ｋバイト＋０．５Ｋバイト）となる。以下では、説明の便宜上、このようなＮＡＮＤ型フラッシュメモリを搭載したメモリカードを「小ブロックカード」と称する場合がある。
【００３７】
一方、実際に使用するＮＡＮＤ型フラッシュメモリ４では、各ページは、例えば５１２バイト分のデータ記憶部が４つと、１０バイト分の冗長部が４つと、２４バイト分の管理データ記憶部とからなる２１１２バイトの記憶容量を有しており、１２８ページ分が１つの消去単位（２５６Ｋバイト＋８Ｋバイト）となる。以下では、説明の便宜上、このようなＮＡＮＤ型フラッシュメモリ４を搭載したメモリカード１ａを「大ブロックカード」と称する場合がある。一例として、小ブロックカードの消去単位は１６Ｋバイトであり、大ブロックカードの消去単位は２５６Ｋバイトである。
【００３８】
また、ホスト機器２が想定しているＮＡＮＤ型フラッシュメモリ及び実際に使用するＮＡＮＤ型フラッシュメモリ４は、ＮＡＮＤ型フラッシュメモリへのデータ入出力を行うためのページバッファ４１ａ，４１ｂをそれぞれ備えている。ホスト機器２が想定しているＮＡＮＤ型フラッシュメモリに備えられるページバッファ４１ａの記憶容量は、５２８バイト（５１２バイト＋１６バイト）である。一方、実際に使用するＮＡＮＤ型フラッシュメモリ４に備えられるページバッファ４１ｂの記憶容量は、２１１２バイト（２０４８バイト＋６４バイト）である。データ書き込み等の際には、ＮＡＮＤ型フラッシュメモリに対するデータ入出力処理は、各ページバッファ４１ａ，４１ｂの記憶容量に相当する１ページ分の単位で実行される。
【００３９】
上述したように、ホスト機器２が想定しているＮＡＮＤ型フラッシュメモリと実際に使用するＮＡＮＤ型フラッシュメモリ４とは異なるため、コントローラ３ａは、ホスト機器２がＮＡＮＤ型フラッシュメモリ４を取り扱い可能とするための各種処理を実行する。
【００４０】
ホスト機器２及びメモリカード１ａの各機能構成例を図５に示す。ホスト機器２は、ホスト機器２側のＲＯＭ（図示省略）等に格納されたプログラムをＣＰＵ（図示省略）等にて実行することにより、図５に示すアプリケーション処理部２１、ファイルシステム部２２、ドライバ部２３、及び物理アクセス部２４の各機能を実現する。
【００４１】
一方、メモリカード１ａは、例えばＲＯＭ３４に格納された制御プログラムを処理部３１ａにて実行することにより、図５に示す第１物理アクセス部１１、物理／論理変換部１２、論理／物理変換部１３、及び第２物理アクセス部１４の各機能を実現する。
【００４２】
ホスト機器２側のアプリケーション処理部２１がファイルの書き込みをファイルシステム部２２に要求すると、ファイルシステム部２２は、小ブロックカードの論理ブロックアドレスに基づきシーケンシャルなセクタ書き込みをドライバ部２３に指示する。これを受けて、ドライバ部２３は、小ブロックカードの論理ブロックアドレスに基づく１６Ｋバイトブロック毎のシーケンシャルな書き込みを実現するに当たり、論理／物理ブロック変換を行い、物理アクセス部２４を通じて、小ブロックカードの物理ブロックアドレスによるランダムな書き込みコマンドを大ブロックカードに対して発行し、データ転送を行う。
【００４３】
書き込みアクセスにおいては、小ブロックカードの場合も大ブロックカードの場合も、プロトコル上、（１）コマンド、（２）ページアドレス（ロウアドレス）、（３）カラムアドレス、（４）データ、（５）プログラム確認コマンド、といった順序で情報の授受が行われる。
【００４４】
メモリカード１ａ側の第１物理アクセス部１１は、ホスト機器２から小ブロックカードの物理ブロックアドレスによる書き込みコマンドを受けると、物理ブロックアドレスやデータのほか、これに付随する付随データに含まれている論理ブロックアドレスを取得する。
【００４５】
物理／論理変換部１２は、データ読み出し等の際に小ブロックカードの物理ブロックアドレス（１６Ｋバイトブロック分に対応）から小ブロックカードの論理ブロックアドレス（１６Ｋバイトブロック分に対応）への変換処理を行うための第１テーブルを作成する。第１テーブルは、ＲＡＭ３５の第１テーブル格納領域３５１に保持される。物理／論理変換部１２は、第１物理アクセス部１１が書き込みコマンドを受けて小ブロックカードの論理ブロックアドレスを取得したときにはこれを第１テーブルに反映させる。物理ブロックアドレスに関しても、第１テーブルに反映させる。
【００４６】
論理／物理変換部１３は、データ読み出し等の際に小ブロックカードの論理ブロックアドレス（シーケンシャルな１６Ｋバイトブロック×１６個分に対応）から大ブロックカードの物理ブロックアドレス（２５６Ｋバイト物理ブロック分に対応）への変換処理を行うための第２テーブルを作成する。第２テーブルは、ＲＡＭ３５の第２テーブル格納領域３５２に保持される。物理／論理変換部１２は、第１物理アクセス部１１が書き込みコマンドを受けて小ブロックカードの論理ブロックアドレスを取得したときにはこれを第２テーブルに反映させる。
【００４７】
第２物理アクセス部１４は、第１物理アクセス部１１が書き込みコマンドを受けて取得した小ブロックカードの論理ブロックアドレスに基づき、ＮＡＮＤ型フラッシュメモリ４内部のデータ配置を決定し、２５６Ｋバイト物理ブロック内において２Ｋバイト（１ページ）単位でシーケンシャルに１６Ｋバイト分のデータを書き込む。また、第２物理アクセス部１４は、取得した小ブロックカードの論理ブロックアドレスや物理ブロックアドレスをＮＡＮＤ型フラッシュメモリ４内部における管理データ領域内の所定の領域に格納する。
【００４８】
このように、ホスト機器２は小ブロックカードの物理ブロックアドレスに基づくコマンドを発行するので、メモリカード１ａ側では、小ブロックカードの物理ブロックアドレスに対応するデータがどの２５６Ｋバイト物理ブロックの中に存在するのかが分かるように管理する。具体的には、１６Ｋバイトブロック毎に小ブロックカードの論理／物理ブロックアドレスの対応関係を管理すると共に、小ブロックカードの連続した２５６Ｋバイトブロック分の論理ブロックアドレスに対応するデータがメモリカード１ａのＮＡＮＤ型フラッシュメモリ４のどの２５６Ｋバイト物理ブロックに格納されているかが分かるように管理する。
【００４９】
次に図６を参照して、ホスト機器２からメモリカード１ａに送られるコマンドのフォーマット例を説明する。ホスト機器２側から送られるコマンドのパケットは、図６（ａ）に示すように、コマンド種別情報（例えば書き込みコマンド）と、アドレス（物理ブロックアドレス）と、データ（コンテンツ等の実データ及び付随データ（５１２バイト＋１６バイト））といった各種情報を含んでいる。
【００５０】
このようなフォーマットのパケットにおいては、図６（ｂ）に示すように、付随データ１６バイト中の所定の位置に小ブロックカードの論理ブロックアドレス（アクセス対象となる１６Ｋバイトブロックに対応する論理アドレス）が配置されている。メモリカード１ａは、コマンド種別情報、物理ブロックアドレス、及びデータを取得するほか、特に論理ブロックアドレスを取得する。なお、論理ブロックアドレスは、読み出しコマンドの場合には付加されない。
【００５１】
次に図７を参照して、第１モード時において、ホスト機器２側が想定しているブロック書き込み操作と、メモリカード１ａが実際に行う書き込み処理とを対比して説明する。
【００５２】
ホスト機器２側では、図７（ａ）に示すように、小ブロックカードの論理アドレスに基づく１６Ｋバイトブロック単位のシーケンシャルな書き込み操作の発生時に、小ブロックカードの物理ブロックアドレスによる１６Ｋバイトブロック単位のランダムな書き込み操作を行う。
【００５３】
一方、メモリカード１ａ側では、図７（ｂ）に示すように、ホスト機器２側から書き込みコマンドを受けた場合、小ブロックカードの論理ブロックアドレスに基づく１６バイトブロック単位のデータをＮＡＮＤ型フラッシュメモリ４内にシーケンシャルに書き込む。
【００５４】
前述のように、ホスト機器２は、小ブロックの物理アドレスによる１６バイト単位のランダムな書き込み操作を行う。このようなランダムな書き込み操作では、一般に、大ブロック（２５６Ｋバイト）の一部のみを書き換えるための処理が多発する。ＮＡＮＤ型フラッシュメモリ４ではブロック単位でしか消去を行えないため、ブロックの一部のみを書き換える場合は、書き換える新データを消去済みの新ブロックに書き込み、新データに書き換えられる旧データを含む旧ブロックから、書き換えられない残りのデータを新ブロックにコピーする必要がある。
【００５５】
このように、ブロックの一部のみを書き換える処理は、書き換えられないデータのコピー動作（巻き添えデータコピー）を伴うため、ブロックの一部のみを書き換える処理が多発すると、オーバーヘッドが非常に増大することになる。そこで、第１実施形態では、ホスト機器２側から得られる論理アドレスの順序に従って、メモリカード１ａ側で物理アドレスを再度割り当てることにより、ブロックの一部のみの書き込みの発生を低減し、オーバーヘッドの増大を抑制している。
【００５６】
次に図８を参照して、ＮＡＮＤ型フラッシュメモリ４のブロックフォーマット（消去単位である２５６Ｋバイト物理ブロック分）について説明する。
【００５７】
ＮＡＮＤ型フラッシュメモリ４では、消去単位である２５６Ｋバイト物理ブロックの中に、ホスト機器２側が管理する単位である１６Ｋバイトに相当するデータを書き込むためのブロック（以下、「ホスト管理ブロック」という。）が１６個分含まれている。データ書き込みの際には、小ブロックカードにおける論理ブロックアドレスの順に個々のデータが配置される。
【００５８】
各ホスト管理ブロックは、８個のページで構成される。各ページは、５１２バイトデータ領域を４個分含むと共に、各データ領域に対応する１０バイト誤り訂正符号（ＥＣＣ）領域を含んでいる。また、ページ中の最後の５１２バイトデータ領域（４番目の５１２バイトデータ領域）の後には、２４バイト管理データ領域も設けられる。このため、ページ中の最後の１０バイトＥＣＣ領域は、４番目の５１２バイトデータ領域と２４バイト管理データ領域の両方に対応する構成となっている。
【００５９】
消去単位である２５６Ｋバイトの物理ブロックに含まれる１２８個の２４バイト管理データ領域のうち、例えば最後の２４バイト管理データ領域には、ホスト機器２側から送られてくるコマンドから取得された物理ブロックアドレスに相当するアドレス情報、及び論理ブロックアドレスに相当するアドレス情報がまとめて格納されるようになっている。これらのアドレス情報は、上述した第１及び第２テーブルを作成する際に使用される。
【００６０】
次に図９を参照して、第１モード時において、メモリカード１ａに対してホスト機器２が書き込みを行う際に、メモリカード１ａの入出力（Ｉ／Ｏ）ピン（第１０〜第１７ピンＰ１０〜Ｐ１７）とレディ／ビジー（Ｒ／−Ｂ）ピン（第２ピンＰ２）に入出力される信号例を説明する。
【００６１】
ホスト機器２は、メモリカード１ａが１６Ｋバイトの消去ブロックサイズを有する不揮発性メモリであると仮定してメモリカード１ａを制御しているため、メモリカード１ａに対する書き込みの際には、ホスト機器２は、シリアルデータインプットコマンド“８０ｈ”をＩ／Ｏピン（第１０ピンＰ１０〜ピン１７）へ入力する。次に、ホスト機器２は、カラムアドレス“Ｃ／Ａ”及びページアドレス“Ｐ／Ａ”をＩ／Ｏピンへ入力する。なお、ここでカラムアドレス“Ｃ／Ａ”及びページアドレス“Ｐ／Ａ”は、ホスト機器２がメモリカード１ａに対して想定している仮想物理アドレス空間におけるカラムアドレス及びページアドレスである。
【００６２】
更に、ホスト機器２は、書き込みデータを、Ｉ／Ｏピン（第１０ピンＰ１０〜ピン１７）の個々に対し、５２８回入力する。具体的には、ホスト機器２は書き込みイネーブルピンへの入力信号を５２８回クロッキングしながら、それぞれのＩ／Ｏピンに対し５２８ビット（すべてのＩ／Ｏピン合計で５２８バイト）のデータを順次シフトインする。データのシフトインが完了すると、ホスト機器２は、プログラムコマンド“１０ｈ”をＩ／Ｏピンへ入力する。これに応答してメモリカード１ａは、そのＲ／−Ｂピンに“Ｌ”の信号を出力し、メモリカード１ａがビジー状態であることを示す。その後、所定期間後にＲ／−Ｂピンに“Ｈ”レベルの信号を出力することでメモリカード１ａがレディ状態になったことを示す。
【００６３】
しかしながら、図９におけるＲ／−Ｂピンの状態は、あくまでもホスト機器２に対してメモリカード１ａがどのような状態かを示す。つまり、図９において、プログラムコマンド“１０ｈ”の入力に応答して、Ｒ／−Ｂピンがビジー状態（つまり“Ｌ”を出力）を示したとしても、内部でＮＡＮＤ型フラッシュメモリ４に対する書き込み動作（ページバッファからメモリセルアレイへのデータ転送）が実際に行われているとは限らない。また、Ｒ／−Ｂピンがレディ状態に復帰したとしても、内部でＮＡＮＤ型フラッシュメモリ４に対する書き込み動作が実際に完了しているとは限らない。
【００６４】
一方、第１モード時において、メモリカード１ａ内のＮＡＮＤ型フラッシュメモリ４に対し、メモリカード１ａ内のコントローラ３ａが書き込みを行う際に、ＮＡＮＤ型フラッシュメモリ４のＩ／Ｏピン１〜８とＲ／−Ｂピンに入出力される信号例を図１０に示す。
【００６５】
コントローラ３ａは、ＮＡＮＤ型フラッシュメモリ４が２５６Ｋバイトの消去ブロックサイズを有する不揮発性メモリであると認識している。例えば、ＮＡＮＤ型フラッシュメモリ４に対する書き込みの際には、コントローラ３ａは、シリアルデータインプットコマンド“８０ｈ”をＩ／Ｏピン１〜８へ入力する。次に、コントローラ３ａは、カラムアドレス“Ｃ／Ａ”及びページアドレス“Ｐ／Ａ”を、Ｉ／Ｏピン１〜８へ入力する。なお、ここでカラムアドレス“Ｃ／Ａ”及びページアドレス“Ｐ／Ａ”は、ＮＡＮＤ型フラッシュメモリ４の実物理アドレス空間におけるカラムアドレス及びページアドレスである。したがって、図９におけるカラムアドレス“Ｃ／Ａ”及びページアドレス“Ｐ／Ａ”とは必ずしも一致していない。
【００６６】
更に、コントローラ３ａは、書き込みデータを、Ｉ／Ｏピン１〜８の個々に対し、２１１２回入力する。具体的には、コントローラ３ａは、書き込みイネーブルピンへの入力信号を２１１２回クロッキングしながら、それぞれのＩ／Ｏピンに対し２１１２ビット（すべてのＩ／Ｏピン合計で２１１２バイト）のデータを順次シフトインする。データのシフトインが完了すると、コントローラ３ａは、プログラムコマンド“１０ｈ”をＩ／Ｏピン１〜８へ入力する。これに応答してメモリカード１ａは、そのＲ／−Ｂピンに“Ｌ”の信号を出力し、メモリカード１ａがビジー状態であることを示す。その後、所定期間後にＲ／−Ｂピンに“Ｈ”レベルの信号を出力することでメモリカード１ａがレディ状態になったことを示す。図１０におけるＲ／−Ｂピンの状態は、コントローラ３ａに対してＮＡＮＤ型フラッシュメモリ４が実際にどのような状態かを示す。
【００６７】
なお、図９及び図１０においては、カラムアドレス“Ｃ／Ａ”及びページアドレス“Ｐ／Ａ”の入力をそれぞれ１つのサイクルで示しているが、メモリカード１ａの容量又はＮＡＮＤ型フラッシュメモリ４の容量に応じて、適宜２サイクル以上になる場合もある。
【００６８】
また、図９及び図１０においては第１モード時における書き込み動作を説明したが、第２モード時においてはホスト機器２がメモリカード１ａのＮＡＮＤ型フラッシュメモリ４に対して図１０に示す書き込み動作を直接実行することとなる。
【００６９】
以下に、図１１に示すフローチャートを参照して、第１実施形態に係るメモリカードテスト方法について説明する。
【００７０】
先ずステップＳ１０１にて、ＮＡＮＤ単体テストを実行するか否か判定される。ＮＡＮＤ単体テストを実行する場合、ステップＳ１０２に進む。一方、ＮＡＮＤ単体テストを実行しない場合、ステップＳ１０５に進む。
【００７１】
ステップＳ１０２にて、ホスト機器２は、メモリカード１ａに対して移行動作を指示するコマンドシーケンス、例えば“ＸＸ−ＹＹ−ＺＺ”等のコマンドシーケンスを出力する。処理部３１ａは、移行動作を指示するコマンドシーケンスに応じて動作モードを第２モードに設定する。具体的には処理部３１ａが、アクセス経路設定部３２ａの第１及び第２スイッチＳＷ１，ＳＷ２に切り替え制御信号を供給することで、アクセス経路が設定される。動作モードが第２モードに設定されると、ステップＳ１０３に進む。
【００７２】
ステップＳ１０３にて、ホスト機器２はＮＡＮＤ単体テストを実行する。例えば、書き込みデータと読み出しデータの整合性を確認することで、ＮＡＮＤ型フラッシュメモリ４に不具合箇所が含まれているか判定される。この結果、ＮＡＮＤ型フラッシュメモリ４において、誤ったデータが保持されるビット（フェイルビット）、及び書き込みも読み出しもできないブロック（バッドブロック）等の有無が判定される。ＮＡＮＤ単体テストが完了すると、ステップＳ１０４に進む。
【００７３】
ステップＳ１０４にて、ホスト機器２は、メモリカード１ａに対して復帰動作を指示するコマンドシーケンスを出力する。復帰動作を指示するコマンドシーケンスがメモリカード１ａに伝達されると、ステップＳ１０５に進む。
【００７４】
ステップＳ１０５にて、処理部３１ａは、動作モードを第１モードに設定する。
【００７５】
ステップＳ１０６にて、コントローラ単体テストを実行するか否か判定される。コントローラ単体テストを実行する場合、ステップＳ１０７に進む。コントローラ単体テストを実行しない場合、ステップＳ１０５に戻る。
【００７６】
ステップＳ１０７にて、ホスト機器２はコントローラ単体テストを実行する。一例として、ホスト機器２がコントローラ３ａに任意のコマンド等を入力し、コントローラ３ａが正常に応答するか等のテストが実行される。コントローラ単体テストが完了すると、ステップＳ１０８に進む。
【００７７】
ステップＳ１０８にて、ＮＡＮＤ単体テストを実行するか否か判定される。ＮＡＮＤ単体テストを実行する場合、ステップＳ１０２に戻る。ＮＡＮＤ単体テストを実行しない場合、テスト動作が終了する。
【００７８】
以上詳細に説明したように、第１実施形態によれば、コマンドにより移行動作及び復帰動作を制御するため、ピン数を増加させることなく第２モードを実現できる。更に、特定のコマンドシーケンスによって第２モードを制御することで、書き込み時や読み出し時であるとして誤動作することを回避できる。また、ホスト機器２が、第２モード時において第１モード時よりも大きい消去ブロックサイズを取り扱うため、ＮＡＮＤ型フラッシュメモリ４の単体テストに要する時間を短縮できる。
【００７９】
（第２実施形態）
本発明の第２実施形態に係るメモリカード１ｂは、図１２に示すように、アクセス経路設定部３２ｂが、電源の投入を検知して、ホスト機器２と不揮発性半導体メモリの間にアクセス経路を自動的に設定する構成である点で、図１に示すメモリカード１ａと異なっている。その他の構成については図１に示すメモリカード１ａの構成と同様である。
【００８０】
上述した第１実施形態に係るメモリカード１ａでは、処理部３１ａ等の起動中に不具合が発生した場合、第２モードに移行できず、解析（テスト）を進めることができない。このため、電源投入時は自動的に第２モードに設定することでＮＡＮＤ単体テストを確実に実行可能となる。
【００８１】
アクセス経路設定部３２ｂは、図２及び図３に示す第１及び第９ピンＰ１，Ｐ９に接地電圧ＧＮＤが、第１８ピンＰ１８に電源電圧Ｖｃｃがそれぞれ印加されると、例えば電源電圧Ｖｃｃの立ち上がりをトリガとしてアクセス経路を設定する。
【００８２】
メモリカード１ｂの電源投入時に自動的に設定された第２モードから第１モードに復帰する際には、復帰動作を指示するコマンドシーケンスに限らず、復帰動作を指示するコマンド、例えば“ＦＦｈ”コマンドを使用すれば良い。すなわち、図１２に示すコントローラ３ｂは、コマンド及びコマンドシーケンスのいずれによっても復帰動作を実行可能である。ただし、図１に示すコントローラ３ａと同様に、移行動作を指示するコマンドシーケンスによって第２モードが設定された場合、復帰動作を指示するコマンドシーケンスでなければ第１モードに復帰できないものとする。
【００８３】
以下に、図１３に示すフローチャートを参照して、第２実施形態に係るメモリカードテスト方法を説明する。ただし、第１実施形態に係るメモリカードテスト方法と重複する処理については重複する説明を省略する。
【００８４】
先ずステップＳ２０１にて、メモリカード１ｂがホスト機器２の図示を省略するカードスロットに挿入され、ホスト機器２からメモリカード１ｂに電源が供給される。メモリカード１ｂに電源が供給されると、動作モードが第２モードに自動的に設定される。
【００８５】
ステップＳ１０１にて、ＮＡＮＤ単体テストを実行するか否か判定される。ＮＡＮＤ単体テストを実行する場合、ステップＳ１０２に進む。一方、ＮＡＮＤ単体テストを実行しない場合、ステップＳ２０２に進む。
【００８６】
ステップＳ２０２においては、復帰動作を指示するコマンドがホスト機器２からメモリカード１ｂへ入力される。復帰動作を指示するコマンドがホスト機器２からメモリカード１ｂへ供給されると、ステップＳ１０５に進む。
【００８７】
ステップＳ１０２〜ステップＳ１０８の各処理は、図１１と同様にして実行される。
【００８８】
このように第２実施形態によれば、電源投入直後は自動的に第２モードに設定することにより、コントローラ３ｂに異常があった場合でもＮＡＮＤ単体テストを実行可能となる。
【００８９】
（その他の実施形態）
上記のように、本発明は第１及び第２実施形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施形態、実施例及び運用技術が明らかとなる。
【００９０】
既に述べた第１実施形態においては、ＮＡＮＤ型フラッシュメモリ４の消去単位が２５６Ｋバイトである場合を説明したが、消去単位が例えば１２８Ｋバイトとなるように構築することも実用上有効である。この場合、１２８Ｋバイトブロックの数は、１０２４個となる。
【００９１】
上述した第１及び第２実施形態においては、不揮発性半導体メモリとしてＮＡＮＤ型フラッシュメモリ４を用いる一例を説明したが、ＮＯＲ型メモリ等の他の不揮発性半導体メモリにも適用できる。
【００９２】
なお、ＮＡＮＤ型フラッシュメモリ４及びコントローラ３ａは、ハイブリッド集積回路としてプリント回路基板（ＰＣＢ）上に実装されていても良いし、モノリシック集積回路として同一の半導体チップ上に集積化されていても良い。
【００９３】
更に、ＮＡＮＤ型フラッシュメモリ４は、１つのメモリセルに１ビットの情報を記憶する２値メモリであっても良いし、１つのメモリセルに１ビットより多い情報（例えば２ビット）を記憶する多値メモリであっても良い。
【００９４】
更に、上述した第１及び第２実施形態においては、ホスト機器が想定しているＮＡＮＤ型フラッシュメモリの消去ブロックサイズと、実際に使用するＮＡＮＤ型フラッシュメモリの消去ブロックサイズとが異なる場合を説明したが、これらの消去ブロックサイズは同一であっても良い。
【００９５】
更に、上述した第１及び第２実施形態においては、ホスト機器が物理アドレスを用いてメモリカードに対してアクセスを実行する場合を説明したが、ホスト機器は論理アドレスを用いてメモリカードに対してアクセスを実行しても良い。この場合、メモリカード内のコントローラは、第１モード時において、ホスト機器から受け取った論理アドレスをＮＡＮＤ型フラッシュメモリの物理アドレスに変換してＮＡＮＤ型フラッシュメモリに対するアクセスを実行する。
【００９６】
このように本発明は、ここでは記載していない様々な実施形態等を包含するということを理解すべきである。したがって、本発明はこの開示から妥当な特許請求の範囲の発明特定事項によってのみ限定されるものである。
【図面の簡単な説明】
【００９７】
【図１】第１実施形態に係るメモリカードの構成例を示すブロック図である。
【図２】第１実施形態に係るメモリカードの外観例及びピン配置例を示す平面図である。
【図３】第１実施形態に係るメモリカードのピンアサイン例を示す図である。
【図４】第１モード時においてホスト機器が想定するＮＡＮＤ型フラッシュメモリと、メモリカードに実際に搭載されるＮＡＮＤ型フラッシュメモリのデータ配置の関係を示す模式図である。
【図５】第１実施形態に係るホスト機器及びメモリカードのそれぞれの機能構成例を示す機能ブロック図である。
【図６】図６（ａ）及び（ｂ）は、第１実施形態に係るメモリカードに入力されるコマンドのフォーマット例を示す模式図である。
【図７】図７（ａ）は第１モード時においてホスト機器が想定するブロック書き込み動作を示す模式図であり、図７（ｂ）は第１実施形態に係るメモリカードにおけるブロック書き込み動作を示す模式図である。
【図８】第１実施形態に係るメモリカードのブロックフォーマット例を示す模式図である。
【図９】第１実施形態に係るメモリカードに対してホスト機器が第１モード時において書き込みを行う際に、ホスト機器から出力される信号例を示すタイムチャートである。
【図１０】第１実施形態に係るメモリカードに対してホスト機器が書き込みを行う際に、ホスト機器から出力される信号例を示すタイムチャートである。
【図１１】第１実施形態に係るメモリカードにおけるテスト動作例を示すフローチャートである。
【図１２】第２実施形態に係るメモリカードの構成例を示すブロック図である。
【図１３】第２実施形態に係るメモリカードにおけるテスト動作例を示すフローチャートである。
【符号の説明】
【００９８】
１ａ，１ｂ…メモリカード
２…ホスト機器
３ａ，３ｂ…コントローラ
４…ＮＡＮＤ型フラッシュメモリ（不揮発性半導体メモリ）
３１ａ，３１ｂ…処理部
３２ａ，３２ｂ…アクセス経路設定部
５１…ホストＩ／Ｆ
【図１】
2007272635.tif 000003
【図２】
2007272635.tif 000004
【図３】
2007272635.tif 000005
【図４】
2007272635.tif 000006
【図５】
2007272635.tif 000007
【図６】
2007272635.tif 000008
【図７】
2007272635.tif 000009
【図８】
2007272635.tif 000010
【図９】
2007272635.tif 000011
【図１０】
2007272635.tif 000012
【図１１】
2007272635.tif 000013
【図１２】
2007272635.tif 000014
【図１３】
2007272635.tif 000015