(57)【要約】【課題】デバイスコードが確定されていない種類のメモリデバイスを判別できるメモリカードを提供することにある。【解決手段】コントローラ２０は、初期化時に、メモリデバイス１０のシステムエリア１００からデバイスコードを読出してレジスタ２００に保存する。コントローラ２０は、ＩＤリード動作によりメモリデバイス１０から読出したデバイスコードと、レジスタ２００に保存されたデバイスコードとを比較して、対応可能なメモリデバイスの種類を判別する。【選択図】      図１
2005157684.tif 000002
【特許請求の範囲】
【請求項１】
ユーザデータ記憶領域以外に、メモリの種類を識別するためのデバイスコードを記憶した第１の特定記憶領域、及び前記ユーザデータ以外のデータで当該デバイスコードを含むデータの記憶が可能な第２の特定記憶領域を含むメモリデバイスと、
前記第１の特定記憶領域から読出したデバイスコードと、前記第２の特定記憶領域から読出したデバイスコードとを比較し、比較結果が一致した場合に当該デバイスコードにより識別されるメモリの種類に従った制御動作を実行するコントローラと
を具備したことを特徴とするメモリカード。
【請求項２】
前記コントローラは、前記第２の特定記憶領域から読出したデバイスコードを保存するレジスタを有することを特徴とする請求項１に記載のメモリカード。
【請求項３】
前記第２の特定記憶領域は、外部から書き込むシステムデータを格納する領域と、外部から書き込む前記デバイスコードを格納する領域とを有することを特徴とする請求項１に記載のメモリカード。
【請求項４】
前記コントローラは、前記第２の特定記憶領域から読出したデバイスコードを保存するレジスタを有し、
初期化時に、前記第２の特定記憶領域から前記デバイスコードを読出して前記レジスタに保存し、
前記第１の特定記憶領域から読出したデバイスコードと、前記レジスタに保存されたデバイスコードとを比較することを特徴とする請求項１に記載のメモリカード。
【請求項５】
前記コントローラは、前記第２の特定記憶領域からデバイスコードの読出しが不可能なときには、予め決められたエラー処理を実行することを特徴とする請求項１または請求項４のいずれか１項に記載のメモリカード。
【請求項６】
前記コントローラは、前記比較結果が不一致の場合には、予め決められたエラー処理を実行することを特徴とする請求項１または請求項４のいずれか１項に記載のメモリカード。
【請求項７】
前記コントローラは、初期化時に、予め用意されたデバイスコードと、前記第１の特定記憶領域から読出したデバイスコードとを比較し、
当該比較結果が不一致の場合に、前記第２の特定記憶領域から読出したデバイスコードと、前記第１の特定記憶領域から読出したデバイスコードとを比較することを特徴とする請求項１又は請求項４のいずれか１項に記載のメモリカード。
【請求項８】
ユーザデータ記憶領域以外に、メモリの種類を識別するためのデバイスコードを記憶した第１の特定記憶領域、及び前記ユーザデータ以外のデータで当該デバイスコードを含むデータの記憶が可能な第２の特定記憶領域を含むメモリデバイスと、当該メモリデバイスの動作を制御するコントローラとを有するメモリカードに適用するメモリ判別方法であって、
前記コントローラは、
前記第２の特定記憶領域からデバイスコードを読出すステップと、
前記第１の特定記憶領域からデバイスコードを読出すステップと、
読出した各デバイスコードを比較するステップと、
比較結果が一致した場合に当該デバイスコードにより識別されるメモリの種類に従った制御動作を実行するステップと
を有する手順を実行することを特徴とするメモリ判別方法。
【請求項９】
初期化時に、前記第２の特定記憶領域から前記デバイスコードを読出してレジスタに保存するステップを有し、
前記比較ステップは、
前記第１の特定記憶領域から読出したデバイスコードと、前記レジスタに保存されたデバイスコードとを比較することを特徴とする請求項８に記載のメモリ判別方法。
【請求項１０】
初期化時に、予め用意されたデバイスコードと、前記第１の特定記憶領域から読出したデバイスコードとを比較するステップと、
前記比較ステップは、
当該比較結果が不一致の場合に、前記第２の特定記憶領域から読出したデバイスコードと、前記第１の特定記憶領域から読出したデバイスコードとを比較することを特徴とする請求項８又は請求項９のいずれか１項に記載のメモリ判別方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはメモリカードの分野に関し、特に、実装されたメモリデバイスの種類を判別するメモリ判別技術に関する。
【背景技術】
【０００２】
近年、例えばＳＤ（Secure Digital）規格のメモリカードが、各種のデジタル機器の記憶デバイスとして普及している。一般的に、メモリカードは、例えばＮＡＮＤ型ＥＥＰＲＯＭからなるメモリデバイスと、当該メモリデバイスを制御するコントローラとを内蔵している。
【０００３】
メモリカードでは、実装されるメモリデバイスの種類（主として記憶容量が異なる）により、コントローラの動作モードが異なる。具体的には、記憶容量により、メモリデバイスに設定されるユーザデータの記憶領域や、認証処理に必要な記憶領域が変更となるため、コントローラは、それらの仕様に適した制御動作を行なうことになる。
【０００４】
通常では、メモリカードでは、コントローラは、初期化時に、実装されているメモリデバイスの種類を判別するためのメモリ判別処理を実行する。具体的には、ＩＤリード動作を実行してメモリデバイスの内部に予め保存されているＩＤコードを読出す。そして、コントローラは、当該ＩＤコードに含まれるデバイスコードにより、実装されているメモリデバイスの種類を判別する（例えば、非特許文献１を参照）。
【非特許文献１】暫定資料  東芝ＭＯＳ形デジタル集積回路シリコンモノリシック  シリコンゲートＣＭＯＳ  １２８メガビット（１６Ｍ×８ビット）ＣＭＯＳ  ＮＡＮＤＥＥＰＲＯＭ（２００１年１２月４日、第２１頁を参照）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来のメモリ判別処理では、コントローラは、前述したように、初期化時にメモリデバイスの内部に予め保存されているＩＤコードを読出す。コントローラは、当該ＩＤコードに含まれるデバイスコードと、予めコントローラの内部メモリに保存されている既知のデバイスコードとを比較し、比較結果が一致した当該デバイスコードで指定される記憶容量に従った制御動作を実行する。
【０００６】
しかしながら、従来のメモリ判別方法では、実装されているメモリデバイスが、コントローラの内部に記憶されている既知のデバイスコードに対応する場合のみ、メモリカードは使用可能となる。換言すれば、まだデバイスコードが確定されてない種類のメモリデバイスが開発された場合に、既存のコントローラは、当該種類のメモリデバイスを判別できないことになる。
【０００７】
そこで、本発明の目的は、デバイスコードが確定されていない種類のメモリデバイスも判別できるメモリカードを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一観点に従ったメモリカードは、ユーザデータ記憶領域以外に、メモリの種類を識別するためのデバイスコードを記憶した第１の特定記憶領域、及び前記ユーザデータ以外のデータで当該デバイスコードを含むデータの記憶が可能な第２の特定記憶領域を含むメモリデバイスと、前記第１の特定記憶領域から読出したデバイスコードと、前記第２の特定記憶領域から読出したデバイスコードとを比較し、比較結果が一致した場合に当該デバイスコードにより識別されるメモリの種類に従った制御動作を実行するコントローラとを備えたものである。
【発明の効果】
【０００９】
以上詳述したように本発明によれば、メモリデバイスの種類を示すデバイスコードに基づいて、メモリデバイスの制御動作を決定するメモリカードにおいて、当該デバイスコードが確定されていない種類のメモリデバイスにも対応できるメモリカードを提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下図面を参照して、本発明の実施形態を説明する。
【００１１】
図１は、本実施形態に関するメモリカードの要部を示すブロック図である。
【００１２】
（メモリカードの構成）
本実施形態のメモリカード１は、図１に示すように、大別して、例えばＮＡＮＤ型ＥＥＰＲＯＭからなるメモリデバイス１０と、コントローラ２０と、インターフェース３０とを実装している。
【００１３】
メモリデバイス１０は、ユーザデータを記憶するユーザ記憶領域以外に、システムデータを格納するシステムエリア１００（第２の特定記憶領域）と、メモリデバイスの種類（主として記憶容量）を判別するデバイスコードを格納するデバイスコード記憶エリア１１０（第１の特定記憶領域）を有する。
【００１４】
システムエリア１００は、通常ではユーザからは書き換えができないライトプロテクト記憶領域である。システムエリア１００は、通常のシステムデータ（メモリカードの動作仕様などを指定する情報）を格納する領域と、後述するデバイスコードを格納する領域とを含む。デバイスコード記憶エリア１１０は、メモリデバイス１０の製造工程時に書き込まれたデバイスコードを格納するライトプロテクト記憶領域である。
【００１５】
コントローラ２０は、メモリデバイス１０を制御するメモリコントローラと、インターフェース３０を介して外部（ホストシステム）とのデータやコマンドの交換を制御するインターフェースコントローラとを含む。
【００１６】
本実施形態のコントローラ２０は、システムエリア１００から読出したデバイスコード（設定デバイスコードと表記する場合がある）を保存するためのレジスタ２００と、デバイスコード記憶エリア１１０から読出したデバイスコード（固有デバイスコードと表記する場合がある）を格納するレジスタ２１０とを有する。さらに、コントローラ２０は、各レジスタ２００，２１０に格納された各デバイスコードを比較するコンパレータ２２０を有する。
【００１７】
（メモリ判別処理の手順）
以下、図１と共に、図２のフローチャートを参照して、本実施形態に関するメモリ判別処理の手順を説明する。
【００１８】
まず、メモリカード１に実装される前のメモリデバイス１０は、製造工程時に、
デバイスコード記憶エリア１１０には、当該メモリデバイスの種類（記憶容量など）を示すデバイスコード（固有デバイスコード）が書き込まれる。ここで、デバイスコードは、メーカーコードと共にＩＤコードに含まれる。
【００１９】
一方、メモリカード１に実装された後のメモリデバイス１０は、メモリカード１の出荷前に、システムエリア１００には、システムデータが書き込まれる。本実施形態では、システムエリア１００には、システムデータと共に、コントローラ２０が対応可能で、実装されたメモリデバイス１０の種類を示すデバイスコード（設定デバイスコード）が書き込まれる。
【００２０】
要するに、本実施形態のメモリデバイス１０は、メモリカード１に実装される前に書き込まれたデバイスコード（固有デバイスコード）と、実装後に書き込まれたデバイスコード（設定デバイスコード）の両コードを記憶している。
【００２１】
コントローラ２０は、メモリカード１に電源が投入されると、所定の初期化処理を開始する（ステップＳ１のＹＥＳ）。この初期化時に、コントローラ２０は、メモリデバイス１０のシステムエリア１００からシステムデータを読出すと共に、デバイスコードを読出す（ステップＳ２）。
【００２２】
ここで、コントローラ２０は、システムエリア１００からデバイスコードを読出すことができない場合には、以後の処理を停止して所定のエラー処理に移行する（ステップＳ３のＹＥＳ）。具体的には、コントローラ２０は、インターフェース３０を介して、ホストシステム側に動作エラーが発生したことを通知する。
【００２３】
一方、コントローラ２０は、システムエリア１００から読出したデバイスコード（設定デバイスコード）をレジスタ２００に格納する（ステップＳ３のＮＯ，Ｓ４）。次に、コントローラ２０は、通常のＩＤリード動作を実行して、メモリデバイス１０からＩＤコードを読出すときに、デバイスコード記憶エリア１１０からデバイスコード（固有デバイスコード）を読出して、レジスタ２１０に格納する（ステップＳ５）。
【００２４】
コントローラ２０は、各レジスタ２００，２１０に格納された設定デバイスコードと固有デバイスコードとを、コンパレータ２２０により比較する（ステップＳ６）。コンパレータ２２０の比較結果が一致している場合には、コントローラ２０は、当該デバイスコードにより指定される種類（大記憶容量や多値ＮＡＮＤなど）に適した制御動作を実行する（ステップＳ７のＹＥＳ）。
【００２５】
一方、コンパレータ２２０の比較結果が不一致の場合には、コントローラ２０は、以後の処理を停止して所定のエラー処理に移行する（ステップＳ７のＮＯ）。具体的には、コントローラ２０は、インターフェース３０を介して、ホストシステム側に動作エラーが発生したことを通知する。
【００２６】
以上のように本実施形態によれば、コントローラ２０が対応可能な種類のメモリデバイスを指定するデバイスコード（設定デバイスコード）を、メモリカード１に実装されたメモリデバイスのシステムエリア１００に書き込むことにより、新たに開発された種類のメモリデバイスにも対応可能となる。換言すれば、現時点では確定されていないデバイスコードもシステムエリア１００に書き込むことができるため、メモリカード１に実装されたメモリデバイス１０が、未知のＩＤコードを有する大容量のメモリデバイスでも、コントローラ２０は対応可能となる。従って、メモリカード１に実装されるメモリデバイス１０は、例えば多値ＮＡＮＤメモリや、大ブロックＮＡＮＤメモリなどの種類が新たに開発された場合でも、それらのメモリデバイスに対応可能なメモリカードを実現することができる。
【００２７】
（他の本実施形態）
図３は、他の実施形態に関するフローチャートである。
【００２８】
本実施形態のメモリ判別処理は、初期化時に、コントローラ２０は、最初に通常のデバイスコードの比較処理を実行する。即ち、コントローラ２０は、通常のＩＤリード動作を実行して、メモリデバイス１０のデバイスコード記憶エリア１１０からデバイスコード（固有デバイスコード）を読出す（ステップＳ１１）。
【００２９】
ここで、コントローラ２０は、予め内部メモリに保存している既知のデバイスコードと、メモリデバイス１０から読出した固有デバイスコードとを比較する（ステップＳ１２）。比較結果が一致であれば、コントローラ２０は、既知のデバイスコードにより指定される種類に適した制御動作を実行する（ステップＳ１３のＹＥＳ）。
【００３０】
一方、比較結果が不一致の場合に、コントローラ２０は、システムエリア１００からデバイスコードを読出して、レジスタ２００に格納する（ステップＳ１３のＮＯ，Ｓ１４，Ｓ１５）。
【００３１】
次に、コントローラ２０は、前記のＩＤリード動作により読出したデバイスコード（固有デバイスコード）と、レジスタ２００に格納された設定デバイスコードとを、コンパレータ２２０により比較する（ステップＳ１６）。コンパレータ２２０の比較結果が一致している場合には、コントローラ２０は、当該デバイスコードにより指定される種類（大記憶容量や多値ＮＡＮＤなど）に適した制御動作を実行する（ステップＳ１７のＹＥＳ）。
【００３２】
コンパレータ２２０の比較結果が不一致の場合には、コントローラ２０は、以後の処理を停止して所定のエラー処理に移行する（ステップＳ１７のＮＯ）。具体的には、コントローラ２０は、インターフェース３０を介して、ホストシステム側に動作エラーが発生したことを通知する。
【００３３】
以上のように本実施形態によれば、コントローラ２０は、既知のデバイスコードにより指定される種類のメモリデバイス、及び確定されていない未知のデバイスコードにより指定される種類のメモリデバイスのいずれにも対応可能である。この場合、既知のデバイスコードにより指定される種類のメモリデバイスに対しては、コントローラ２０は、システムエリア１００からデバイスコードを読出すことなく、制御動作に移行することができる。従って、常にシステムエリア１００からデバイスコードを読出す方法に対して、初期化処理の時間を相対的に短縮できる効果がある。
【００３４】
なお、本実施形態及び他の実施形態において、ＩＤリード動作により、メモリデバイス１０から固有デバイスコードを読出すときに、メモリの種類により当該ＩＤリードサイクルとして、２サイクルと５サイクルのものが存在する。変形例として、いずれの種類の場合でも、ＩＤリードサイクルを２サイクルで打ち切るようにしてもよい。
【００３５】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施形態に関するメモリカードの要部を示すブロック図。
【図２】本実施形態に関するメモリ判別方法の手順を説明するためのフローチャート。
【図３】他の実施形態に関するメモリ判別方法の手順を説明するためのフローチャート。
【符号の説明】
【００３７】
１…メモリカード、１０…メモリデバイス、２０…コントローラ、
３０…インターフェース、１００…システムエリア、
１１０…デバイスコード記憶エリア、２００，２１０…レジスタ、
２２０…コンパレータ。
【図１】
2005157684.tif 000003
【図２】
2005157684.tif 000004
【図３】
2005157684.tif 000005