(57)【要約】【課題】半導体メモリにおけるコマンドの変更や追加に伴う負担を軽減する。【解決手段】メモリカード３をコンピュータ２に装着したときに、メモリコントローラ３０はメモリアレイ３２に記憶されているコマンド情報９０をコンピュータ２に向けて送信する。そして、コンピュータ２はメモリカード３から受信したコマンド情報９０をＲＡＭ２１に記憶する。コンピュータ２は、記憶したコマンド情報９０に基づいて必要に応じてコマンドを生成し、生成したコマンドをメモリカード３に送信する。メモリカード３がコンピュータ２からコマンドを受信すると、メモリコントローラ３０はコマンド解析情報９１を参照することにより、受信したコマンドを解析し、実行する。【選択図】図１
2008250395.tif 000002
【特許請求の範囲】
【請求項１】
外部装置に接続されるメモリシステムであって、
前記外部装置においてコマンドを発行するためのコマンド情報を記憶するメモリアレイと、
前記外部装置が前記コマンド情報に基づいて発行するコマンドを解析するためのコマンド解析情報を記憶する記憶部と、
前記外部装置が前記コマンド情報に基づいて発行したコマンドを受信する通信部と、
前記通信部が受信した前記コマンドを前記コマンド解析情報に基づいて解析して実行するメモリコントローラと、
を備えることを特徴とするメモリシステム。
【請求項２】
請求項１に記載のメモリシステムであって、
前記記憶部は、前記メモリアレイ内に設けられることを特徴とするメモリシステム。
【請求項３】
請求項１または２に記載のメモリシステムであって、
前記記憶部に記憶されているコマンド解析情報が転送され記憶されるバッファをさらに備え、
前記メモリコントローラは、前記バッファに記憶されているコマンド解析情報に基づいて前記コマンドを解析することを特徴とするメモリシステム。
【請求項４】
請求項１ないし３のいずれかに記載のメモリシステムであって、
前記記憶部は、前記外部装置からの参照が禁止されていることを特徴とするメモリシステム。
【請求項５】
コンピュータとメモリシステムとを備えるコンピュータシステムであって、
前記メモリシステムが、
前記コンピュータにおいてコマンドを発行するためのコマンド情報を記憶するメモリアレイと、
前記コンピュータが前記コマンド情報に基づいて発行するコマンドを解析するためのコマンド解析情報を記憶する記憶部と、
前記コンピュータが前記コマンド情報に基づいて発行したコマンドを受信する通信部と、
前記通信部が受信した前記コマンドを前記コマンド解析情報に基づいて解析して実行するメモリコントローラと、
を備え、
前記コンピュータは、前記コマンド情報に基づいて必要なコマンドを生成して、前記メモリシステムに送信することを特徴とするコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリの仕様変更に伴う負担を軽減する技術に関する。
【背景技術】
【０００２】
ゲームデータ等を格納する不揮発性半導体メモリでは、外部のシステムよりコマンドが入力され、そのコマンドに応じて所望のアドレスからのデータの読み出し、所望のブロックの消去、所望のページへのデータの書き込みなどの処理が行われる。
【０００３】
【特許文献１】特開２００１−２８３１７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
半導体メモリとして、例えばゲーム装置で使用されるゲームカセットを想定した場合、ゲームソフトの不正コピーを防止するために、システム内で暗号化されたコマンドを用いるのが一般的である。しかし、この暗号化されたコマンドが解読された場合、すみやかに半導体メモリの仕様を変更しなければならない。
【０００５】
ところが、従来の半導体メモリでは、コマンドの組合せやその動作は、当該半導体メモリごとに固定であり、コマンドの変更や追加などを行う場合は、半導体メモリ全体の再設計が必要となるという問題があった。
【０００６】
また、半導体メモリの仕様が変更された場合には、これを使用する外部システム（ゲーム装置等）もその変更に対応しなければならず、さらにコストがかかるという問題があった。さらに、外部システムがゲーム装置などの場合、互換性を担保するため、比較的、長期間にわたって仕様を変更しないことが好ましいという事情もある。
【０００７】
本発明は、上記課題に鑑みなされたものであり、半導体メモリにおけるコマンドの変更や追加に伴う負担を軽減することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するため、請求項１の発明は、外部装置に接続されるメモリシステムであって、前記外部装置においてコマンドを発行するためのコマンド情報を記憶するメモリアレイと、前記外部装置が前記コマンド情報に基づいて発行するコマンドを解析するためのコマンド解析情報を記憶する記憶部と、前記外部装置が前記コマンド情報に基づいて発行したコマンドを受信する通信部と、前記通信部が受信した前記コマンドを前記コマンド解析情報に基づいて解析して実行するメモリコントローラとを備えることを特徴とする。
【０００９】
また、請求項２の発明は、請求項１の発明に係るメモリシステムであって、前記記憶部は、前記メモリアレイ内に設けられることを特徴とする。
【００１０】
また、請求項３の発明は、請求項１または２の発明に係るメモリシステムであって、前記記憶部に記憶されているコマンド解析情報が転送され記憶されるバッファをさらに備え、前記メモリコントローラは、前記バッファに記憶されているコマンド解析情報に基づいて前記コマンドを解析することを特徴とする。
【００１１】
また、請求項４の発明は、請求項１ないし３のいずれかの発明に係るメモリシステムであって、前記記憶部は、前記外部装置からの参照が禁止されていることを特徴とする。
【００１２】
また、請求項５の発明は、コンピュータとメモリシステムとを備えるコンピュータシステムであって、前記メモリシステムが、前記コンピュータにおいてコマンドを発行するためのコマンド情報を記憶するメモリアレイと、前記コンピュータが前記コマンド情報に基づいて発行するコマンドを解析するためのコマンド解析情報を記憶する記憶部と、前記コンピュータが前記コマンド情報に基づいて発行したコマンドを受信する通信部と、前記通信部が受信した前記コマンドを前記コマンド解析情報に基づいて解析して実行するメモリコントローラとを備え、前記コンピュータは、前記コマンド情報に基づいて必要なコマンドを生成して、前記メモリシステムに送信することを特徴とする。
【発明の効果】
【００１３】
請求項１ないし４に記載の発明では、外部装置においてコマンドを発行するためのコマンド情報と、外部装置がコマンド情報に基づいて発行するコマンドを解析するためのコマンド解析情報と記憶し、コマンドをコマンド解析情報に基づいて解析して実行することにより、ハードウェアを変更することなく、コマンド情報とコマンド解析情報とを書き換えるだけで、コマンドの変更や追加が可能となる。したがって、メモリシステムの仕様変更の開発負担が軽減される。
【００１４】
請求項２に記載の発明では、コマンド解析情報を記憶する記憶部がメモリアレイ内に設けられることにより、コマンドの追加や変更に必要な情報（コマンド情報及びコマンド解析情報）が全てメモリアレイに記憶されるので、メモリアレイに格納されたデータの書き換えのみでメモリシステムの仕様変更に対応できる。
【００１５】
請求項３に記載の発明では、記憶部に記憶されているコマンド解析情報が転送され記憶されるバッファをさらに備え、メモリコントローラは、バッファに記憶されているコマンド解析情報に基づいてコマンドを解析することにより、例えば、バッファをメモリアレイよりも高速にアクセスできる記憶素子で構成することにより、コマンド解析処理を高速化できる。
【００１６】
請求項５に記載の発明では、メモリシステムはコンピュータにおいてコマンドを発行するためのコマンド情報とコンピュータがコマンド情報に基づいて発行するコマンドを解析するためのコマンド解析情報とを記憶し、コンピュータはメモリシステムから予め取得したコマンド情報に基づいてメモリシステムにコマンドを発行し、メモリシステムはコンピュータから受信したコマンドをコマンド解析情報に基づいて解析して実行することにより、メモリシステムが仕様変更されてた場合でもコンピュータの構成を変更する必要がない。また、メモリシステムのハードウェアを変更する必要がない。したがって、メモリシステムの仕様変更の開発負担が軽減される。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の好適な実施の形態について、添付の図面を参照しつつ、詳細に説明する。
【００１８】
＜１．  第１の実施の形態＞
図１は、本発明に係るコンピュータシステム１の構成を示す図である。
【００１９】
コンピュータシステム１は、コンピュータ２と、コンピュータ２に装着されるメモリカード３とを備えている。
【００２０】
コンピュータ２は、各種データの演算を行うＣＰＵ２０、各種データを記憶するＲＡＭ２１、ユーザのための入出力装置２２及びインタフェース２３を備え、一般的なパーソナルコンピュータとしての機能を有する。
【００２１】
なお、本実施の形態においてコンピュータ２は汎用的な装置として説明するが、コンピュータ２は、専用の用途に用いられるゲーム装置や、ＰＤＡ、あるいは携帯電話等であってもよい。例えば、コンピュータ２がゲーム装置である場合、メモリカード３はゲーム装置に装着されるゲームカセットであり、ユーザ情報９２はゲーム装置にロードされるゲームプログラムである。
【００２２】
ＣＰＵ２０は、ＲＡＭ２１を一時的なワーキングエリアとして使用しつつ、各種データの演算等を行うとともに、各種制御信号を生成することにより、コンピュータ２の各構成を制御する。
【００２３】
本実施の形態におけるＣＰＵ２０は、インタフェース２３を介してメモリカード３からコマンド情報９０を取得してＲＡＭ２１に記憶させる。これにより、メモリアレイ３２に記憶されているコマンド情報９０が、メモリアレイ３２からＲＡＭ２１に転送される。なお、コマンド情報９０は必ずしも予めコンピュータ２に転送されなくてもよい。
【００２４】
コマンド情報９０とは、コンピュータ２においてメモリカード３に対するコマンドを発行するために必要な情報である。コマンド情報９０には、当該情報のうち、メモリカード３の仕様を変更する際に更新する必要のある全ての情報が含まれる。
【００２５】
本実施の形態におけるコマンド情報９０は、コマンドを発行するプログラムコード（以下、「コマンド発行プログラム」と称する）及び当該コマンド発行プログラムが使用するパラメータ等で構成される情報である。
【００２６】
なお、例えば、コマンド発行プログラムを起動するためには、コンピュータ２において少なくとも起動用の別プログラムが必要であり、当該プログラムコードも「コンピュータ２においてコマンドを発行するために必要な情報」と言える。しかし、このプログラムコードはメモリカード３の仕様を変更したからといって必ずしも変更する必要のない情報であるから、このような情報はコマンド情報９０に含まれていなくてもよい。また、例えば、コマンド発行プログラムが仕様変更の前後において共通に動作するように設計されているのであれば、コマンド情報９０はパラメータ等の情報のみであってもよい。
【００２７】
また、ＣＰＵ２０は、必要に応じて、ＲＡＭ２１に記憶されているコマンド情報９０に基づいてコマンドを生成し、生成したコマンドをメモリカード３に送信する。すなわち、ＣＰＵ２０は、コマンド発行プログラムを起動し、当該プログラムに従って動作することにより、メモリカード３に対してコマンドを発行する。
【００２８】
入出力装置２２とは、ユーザに対して各種データを表示するディスプレイやＬＥＤ、文字や画像等を印字するプリンタ、ユーザがデータを入力するための各種ボタン類やスキャナ、マウス、キーボード、ジョイスティックあるいはコントローラ等の各種装置類が該当する。
【００２９】
なお、コンピュータ２は、ここに挙げたすべての装置類を備えている必要はなく、また、入出力装置２２はここに挙げた装置類に限定されるものでもない。コンピュータ２はコンピュータシステム１の用途等に応じて、入出力装置２２として、適宜必要な構成を備えていればよい。
【００３０】
インタフェース２３は、メモリカード３との間でデータ通信を行う機能を有している。インタフェース２３はメモリカード３を装着するカードスロットを備えており、当該カードスロットにメモリカード３が装着されることによって、コンピュータ２とメモリカード３とが電気的に、かつ、データ通信可能に接続される。
【００３１】
メモリカード３は、メモリコントローラ３０、バッファ３１、メモリアレイ３２及びインタフェース３３を備え、主に本発明におけるメモリシステムに相当する。メモリカード３は、主にコンピュータ２によって使用されるユーザ情報９２を記憶する装置として使用される。
【００３２】
メモリコントローラ３０は、メモリアレイ３２に記憶されているコマンド解析情報９１を予めバッファ３１に転送するとともに、転送したコマンド解析情報９１を参照しつつ、インタフェース３３を介してコンピュータ２から受信したコマンドを解析する。そして、この解析結果に応じて、当該コマンドを実行する。
【００３３】
なお、コマンド解析情報９１とは、コンピュータ２がコマンド情報９０に基づいて発行するコマンドを解析するための情報である。コマンド情報９０がメモリカード３の仕様変更により変更されると、これによって発行されるコマンドも変更されるため、これを解析するための情報であるコマンド解析情報９１もそれに応じて変更されていなければならない。すなわち、コマンド情報９０とコマンド解析情報９１とは、互いに対となる情報である。
【００３４】
また、メモリコントローラ３０は、インタフェース３３を介して、メモリアレイ３２に記憶されているコマンド情報９０をコンピュータ２に向けて送信する。このようにして送信されたコマンド情報９０は、先述のように、コンピュータ２のＲＡＭ２１に記憶される。
【００３５】
バッファ３１は揮発性の記憶素子から構成されており、コマンド解析情報９１を記憶することが可能な記憶容量を有している。先述のように、バッファ３１にはメモリコントローラ３０によってコマンド解析情報９１が転送され記憶される。
【００３６】
なお、バッファ３１を構成する記憶素子は、メモリアレイ３２を構成する記憶素子よりも、メモリコントローラ３０によるアクセス速度が高速な記憶素子である。このように、コマンド解析処理において参照する記憶装置として、メモリアレイ３２よりも高速なバッファ３１を使用することにより、メモリコントローラ３０におけるコマンド解析処理を高速化することができる。
【００３７】
メモリアレイ３２は、不揮発性の複数の記憶素子から構成され、図１に示すように、ユーザ情報９２とともに、コマンド情報９０及びコマンド解析情報９１を記憶する。本実施の形態におけるメモリアレイ３２を構成する記憶素子は、データの読み出しのみならず、消去や書換も可能な記憶素子である。このような記憶素子としては、例えば、ＮＡＮＤ素子を採用することができるが、メモリアレイ３２を構成する記憶素子は、必ずしも消去や書換が可能でなくてもよく、少なくとも各種データを記憶することができる素子であればよい。
【００３８】
インタフェース３３は、コンピュータ２との間でデータ通信を行う機能を有している。インタフェース３３がコンピュータ２のインタフェース２３と迎合することによって、先述のように、コンピュータ２とメモリカード３とが電気的に、かつ、データ通信可能に接続される。
【００３９】
以上が本実施の形態におけるコンピュータシステム１の構成及び機能の説明である。次に、コンピュータシステム１の動作について説明する。
【００４０】
図２は、コンピュータ２の動作を示す流れ図である。コンピュータ２は、電源が投入された後に所定の初期設定を行い、監視状態となる。なお、コンピュータ２は、メモリカード３の使用の可否を示す状態テーブルを記憶しており、初期設定が行われた時点において、当該状態テーブルにはメモリカード３は使用不能であると示されているものとする。
【００４１】
監視状態においてＣＰＵ２０は、メモリカード３を検出したか否か（ステップＳ１）、メモリカード３へのアクセス要求が発生したか否か（ステップＳ４）、及び、終了指示があったか否か（ステップＳ８）を監視する。ただし、監視状態において、ＣＰＵ２０は必ずしも待機している必要はなく、何らかの処理を並行して実行していてもよい。
【００４２】
監視状態において、メモリカード３が検出されると、ＣＰＵ２０はステップＳ１においてＹｅｓと判定し、メモリカード３からコマンド情報９０を取得する（ステップＳ２）。
【００４３】
なお、詳しく言えば、ステップＳ１におけるメモリカード３の検出とは、先述の状態テーブルにおいてメモリカード３が使用不能であると示されている状態で、メモリカード３を検出したか否かを言う。すなわち、メモリカード３の最初の検出のことを意味するのであって、継続して装着されているメモリカード３に対する検出を意味するのではない。具体的には、コンピュータ２の電源投入時に既にメモリカード３が挿入されていた場合には、ステップＳ１の判定が初めて行われるときにＹｅｓと判定される。また、コンピュータ２の電源投入時に未だメモリカード３が挿入されていなかった場合には、メモリカード３がインタフェース２３に挿入された後、初めてステップＳ１の判定が行われるときにＹｅｓと判定される。
【００４４】
ステップＳ２の処理を具体的に説明すると、まず、ＣＰＵ２０は、ステップＳ１において検出したメモリカード３に対して、コマンド情報９０の送信を要求する情報（以下、単に「要求」と称する）を送信する。この要求に応じて、当該メモリカード３からコマンド情報９０が送信される。そこで、ＣＰＵ２０は、メモリカード３から送信されたコマンド情報９０をインタフェース２３を介して受信し、当該コマンド情報９０をＲＡＭ２１に格納する。
【００４５】
ステップＳ２の処理はメモリカード３のバージョンに影響されない処理として構成されている。すなわち、仕様を変更する前のメモリカード３のメモリアレイ３２には更新前のコマンド情報９０が記憶されており、更新前のメモリカード３がコンピュータ２に装着された状態では、更新前のコマンド情報９０がコンピュータ２に送信され、ＲＡＭ２１に記憶される。一方、仕様を変更した後のメモリカード３のメモリアレイ３２には更新後のコマンド情報９０が記憶されており、更新後のメモリカード３がコンピュータ２に装着された状態では、更新後のコマンド情報９０がコンピュータ２に送信され、ＲＡＭ２１に記憶される。
【００４６】
このようにしてコマンド情報９０の取得が完了すると、ＣＰＵ２０は、メモリカード３の使用を許可して（ステップＳ３）、監視状態に戻る。ステップＳ３の処理は、先述の状態テーブルに、メモリカード３が使用可能となったことを示す情報を格納することにより行う。
【００４７】
監視状態において、メモリカード３へのアクセス要求があると、ＣＰＵ２０はステップＳ４においてＹｅｓと判定し、メモリカード３の使用可否を確認する（ステップＳ５）。
【００４８】
未だステップＳ３が実行されていない場合、状態テーブルは初期設定のままであるから、状態テーブルにおいてメモリカード３は使用可能となっていない。したがって、ＣＰＵ２０はステップＳ５においてＮｏと判定しステップＳ６，Ｓ７の処理をスキップする。
【００４９】
一方、既にステップＳ３が実行されて状態テーブルが書き換えられ、メモリカード３が使用可能となっていれば、ＣＰＵ２０はステップＳ５においてＹｅｓと判定する。この場合、ＣＰＵ２０は、ＲＡＭ２１に記憶されているコマンド情報９０に基づいて必要なコマンドを生成し、生成したコマンドをメモリカード３に向けて送信するようインタフェース２３を制御する。このようにして、コンピュータ２はコマンドを発行し、メモリカードに送信する（ステップＳ６）。
【００５０】
図３は、コンピュータ２において要求される動作と、それに応じて発行されるコマンドとの対応関係を例示する図である。ステップＳ６が開始されると、ＣＰＵ２０は、コマンド情報９０に含まれるコマンド発行プログラムを起動して、要求する動作を示す識別子（図示せず）に基づいて、当該要求する動作に対応するコマンドを演算により生成する。
【００５１】
例えば、メモリカード３に格納されているユーザ情報９２を読み出す（リードコマンドを発行する）必要が生じた場合、ＣＰＵ２０は、コマンド情報９０に基づいて読み出し動作に対応するコマンドを生成する。図３に示す例では、読み出し動作に対応するコマンドコードは「ｃｏｍＡ」である。したがって、メモリカード３からユーザ情報９２を読み出す必要が生じた場合、ＣＰＵ２０は、コマンド情報９０に基づいて、コマンド「ｃｏｍＡ」を生成して、メモリカード３に送信する。
【００５２】
このように、コマンド情報９０を用いるだけで、コンピュータ２は要求する動作に応じて必要なコマンドを生成することができる。なお、コンピュータ２からメモリカード３に送信されるコマンドには、アクセスすべきメモリアレイ３２の位置を示すアドレスが、必要に応じて含まれる。このアドレスは、コマンド情報９０に基づいて生成されてもよいし、別途生成されて付加されてもよい。
【００５３】
コマンドの送信を完了すると、ＣＰＵ２０は、メモリカード３から、当該コマンドに対する結果を取得するまで待機する（ステップＳ７）。そして、当該結果を取得すると、コンピュータ２は監視状態に戻る。
【００５４】
先述のように「ｃｏｍＡ」は読み出し動作を行うコマンドであるから、コマンドとして「ｃｏｍＡ」を送信した例において取得される結果には、正常に読み出せたか否かを示す情報と、正常に読み出せた場合は読み出したユーザ情報９２とが含まれる。
【００５５】
このように、コンピュータ２には、予めメモリカード３からコマンド情報９０が送信され記憶されるので、コンピュータ２（ＣＰＵ２０）はメモリカード３に対する任意のコマンドを生成することが可能である。
【００５６】
先述のように、コマンド情報９０には、コンピュータ２がコマンドを発行するために必要な情報のうち、メモリカード３の仕様を変更する際に更新する必要のある全ての情報が含まれている。
【００５７】
詳細は後述するが、更新されたコマンド情報９０がステップＳ２において取得されている場合（更新後のメモリカード３が装着されている場合）、コンピュータ２は更新されたコマンド情報９０に基づいてコマンドを発行するので、発行されるコマンドは仕様変更後の新たなコマンドとなる。すなわち、メモリカード３の仕様を変更する場合において、コンピュータ２における構成（ソフトウェア及びハードウェア）を変更する必要はない。したがって、メモリカード３の仕様変更に伴う負担が軽減される。
【００５８】
また、更新される前のコマンド情報９０がステップＳ２において取得されている場合（更新前のメモリカード３が装着されている場合）、コンピュータ２は更新される前のコマンド情報９０に基づいてコマンドを発行するので、発行されるコマンドは仕様変更前のコマンドとなる。したがって、新たな仕様のメモリカード３が製造された後も、更新される前のメモリカード３をコンピュータ２において使用することができるので、互換性を維持することができる。
【００５９】
監視状態において終了指示があると、ＣＰＵ２０はステップＳ８においてＹｅｓと判定し、全ての処理を終了する。
【００６０】
以上が、コンピュータシステム１の主にコンピュータ２の動作である。なお、図２の流れ図では説明を省略したが、コンピュータ２は常にメモリカード３が取り外されたか否かを監視している。そして、メモリカード３が取り外された場合、ＣＰＵ２０は状態テーブルにメモリカード３が使用不能となったことを示す情報を書き込む。
【００６１】
次に、メモリカード３の動作を説明する。
【００６２】
図４は、メモリカード３の動作を示す流れ図である。メモリカード３のメモリコントローラ３０は、立ち上げ後に、まず、メモリアレイ３２にアクセスして、そこに記憶されているコマンド解析情報９１を、バッファ３１に転送し記憶させる（ステップＳ１１）。そして、コマンド解析情報９１の転送が終了すると、監視状態となる。
【００６３】
メモリコントローラ３０は、監視状態において、コンピュータ２からコマンド情報９０の送信を求める要求を受信したか否か（ステップＳ１２）、コンピュータ２からコマンドを受信したか否か（ステップＳ１４）、及び、終了指示があったか否か（ステップＳ１８）を監視する。
【００６４】
監視状態においてコンピュータ２から要求を受信すると、メモリコントローラ３０はステップＳ１２においてＹｅｓと判定する。そして、メモリコントローラ３０は、メモリアレイ３２にアクセスして、そこに記憶されているコマンド情報９０をコンピュータ２に向けて送信するようインタフェース３３を制御する。このようにしてメモリカード３は、コマンド情報９０をコンピュータ２に送信する（ステップＳ１３）。
【００６５】
ステップＳ１３が実行されることによりコンピュータ２に向けて送信されたコマンド情報９０は、先述のように（図２に示すステップＳ２）、コンピュータ２によって取得され、ＲＡＭ２１に記憶される。なお、コマンド情報９０の送信を終了すると、メモリコントローラ３０は、監視状態に戻る。
【００６６】
監視状態においてコンピュータ２からコマンドを受信すると、メモリコントローラ３０はステップＳ１４においてＹｅｓと判定し、コマンド解析処理を実行する（ステップＳ１５）。
【００６７】
先述のステップＳ６ではメモリカード３にコマンド「ｃｏｍＡ」を送信する例を説明した。ここでは、このとき送信された「ｃｏｍＡ」を受信した例で、ステップＳ１５の処理を説明する。
【００６８】
コマンド解析処理が開始されると、メモリコントローラ３０は、まず、バッファ３１にアクセスして、コマンド解析情報９１を参照する。
【００６９】
図５は、コマンドテーブル９１０の例を示す図である。また、図６は、コマンドインストラクション情報９１１の例を示す図である。図１では図示を省略したが、本実施の形態におけるコマンド解析情報９１には、図５に示すコマンドテーブル９１０と、図６に示すコマンドインストラクション情報９１１とが含まれている。
【００７０】
コマンドテーブル９１０は、各コマンドと、各コマンドのインストラクションを規定したアドレスとを互いに関連付けるテーブル構造の情報であり、当該アドレスで指定される領域には、対応するコマンドのマイクロコードが格納されている。また、コマンドインストラクション情報９１１とは、所定のアドレスで指定される領域に存在する情報であって、当該領域に格納されたマイクロコードの集合体とも言える。なお、マイクロコードとは、メモリコントローラのコマンドシーケンサ（図示せず）がコマンドを実行する際に必要とするコードである。
【００７１】
メモリコントローラ３０のコマンド判定回路（図示せず）は、受信したコマンド「ｃｏｍＡ」によって、コマンドテーブル９１０を検索し、当該コマンドに対するアドレス「ａｄｄＡ」を取得する。
【００７２】
次に、メモリコントローラ３０のコマンドシーケンサは、コマンド判定回路が取得したアドレス「ａｄｄＡ」で示される領域にアクセスして、マイクロコード「ｍｃｏｄｅＡ」を取得する。これにより、メモリコントローラ３０（コマンドシーケンサ）は、マイクロコード「ｍｃｏｄｅＡ」に基づいて、受信したコマンドを解析することが可能となる。ここに示す例では、受信したコマンド「ｃｏｍＡ」がメモリアレイ３２からデータを読み出すコマンドであると判定する。
【００７３】
なお、上記説明では、簡略的に、マイクロコードを一度参照しただけでコマンドの解析が完了する例を説明したが、一般には、マイクロコードを何度も参照しつつ演算を行うことによりコマンドが解析される。このように、複数回の繰り返し演算が行われる場合、何らかの暗号アルゴリズムを用いることが好ましい。このような暗号アルゴリズムとしては、例えば、コマンド情報９０とコマンド解析情報９１とが対となる共通鍵暗号方式、あるいはこれらが対となる公開鍵暗号方式となっていてもよい。なお、コンピュータシステム１では、コマンド情報９０は、メモリカード３の外部（コンピュータ２）に転送されるので、公開鍵暗号方式が好ましい。
【００７４】
コマンド解析処理が終了すると、メモリコントローラ３０は、当該コマンドを実行し（ステップＳ１６）、その結果をコンピュータ２に向けて送信し（ステップＳ１７）、監視状態に戻る。
【００７５】
ここに示す例では、コマンド「ｃｏｍＡ」に含まれているアドレスによって指定されるメモリアレイ３２の領域から、データ（ユーザ情報９２）を読み出して、読み出したユーザ情報９２をコンピュータ２に送信する。このように、メモリカード３は、コマンド解析情報９１を記憶しているため、コンピュータ２から受信したコマンドを解析して実行することができる。
【００７６】
以上が、本実施の形態におけるコンピュータシステム１の動作の説明である。
【００７７】
次に、メモリカード３の仕様が変更される場合について説明する。ここでは、図３、図５及び図６に示した仕様から、消去動作（デリートコマンド）が廃止され、読み出し動作（リードコマンド）が変更され、遷移動作（遷移コマンド）が新たに追加された例で説明する。
【００７８】
図７は、コンピュータにおいて要求される動作とその動作に応じて発行されるコマンドとの対応関係を変更後において例示する図である。
【００７９】
まず、更新後のコマンド情報９０では、廃止された消去動作とコマンドとが対応付けられていないので、廃止された消去動作に対応するコマンドを生成することができない。したがって、コンピュータ２が誤って、既に廃止されたコマンドを生成し、当該コマンドを使用することができない更新後のメモリカード３に送信することはない。
【００８０】
また、変更された読み出し動作に対応するコマンドは、更新後のコマンド情報９０においてもそのまま「ｃｏｍＡ」に対応付けられている。したがって、読み出し動作を行う場合、コンピュータ２は変更されたことを意識することなく、そのままコマンド「ｃｏｍＡ」を生成してメモリカード３に送信する。
【００８１】
また、追加された遷移動作は、更新後のコマンド情報９０によって、新たに「ｃｏｍＤ」と対応付けられている。したがって、遷移動作を行う場合、コンピュータ２は他のコマンドと同様に、コマンド「ｃｏｍＤ」を生成し、更新後のメモリカード３に送信する。
【００８２】
先述のように、コンピュータシステム１では、更新前であるか更新後であるかに関わらず、コンピュータ２に装着されたメモリカード３から当該コンピュータ２にコマンド情報９０が転送され記憶される。したがって、コンピュータ２は、メモリカード３の仕様変更に応じたコマンドを発行することができる。
【００８３】
また、コンピュータ２は、メモリカード３が装着されたときにコマンド情報９０を要求するので、メモリカード３とメモリカード３に記憶されているコマンド情報９０，９０ａとの対応が整っていれば、コンピュータ２は正常に動作する。したがって、メモリカード３の仕様を変更しても、コンピュータ２の仕様を変更する必要がないので、仕様変更にかかるコストを抑制できる。
【００８４】
なお、図３から明らかであるが、更新前のメモリカード３から取得されるコマンド情報９０では、遷移動作とコマンド「ｃｏｍＤ」とが対応付けられていない。したがって、更新前のコマンド情報９０を取得した場合、コンピュータ２は、追加前のコマンド「ｃｏｍＤ」を発行することができず、更新前のメモリカード３に誤ってコマンド「ｃｏｍＤ」が送信されることはない。
【００８５】
また、変更されたコマンド（上記の例では読み出し動作に対応するコマンド）は、必ずしも変更前のコマンドコードがそのまま発行されなくてもよい。例えば、追加されたコマンドと同様に、新たなコマンドコードに対応付けられていてもよい。
【００８６】
図８は、変更後のコマンドテーブル９１０ａの例を示す図である。また、図９は、変更後のコマンドインストラクション情報９１１ａの例を示す図である。
【００８７】
まず、廃止されたコマンド「ｃｏｍＢ」はコマンドテーブル９１０ａには存在しない。先述のように、消去動作に対応するコマンド「ｃｏｍＢ」はコンピュータ２において生成できないので、メモリカード３がコマンド「ｃｏｍＢ」を受信することはないが、例え受信したとしても、コマンドテーブル９１０ａから削除されているので、誤動作を起こすことはない。
【００８８】
また、変更された読み出し動作に応じて発行されるコマンド「ｃｏｍＡ」は、そのままコマンドテーブル９１０ａに登録されている。したがって、メモリカード３がコマンド「ｃｏｍＡ」を受信した場合、メモリコントローラ３０はアドレス「ａｄｄＡ」を取得する。
【００８９】
そして、図６に示すように、コマンドインストラクション情報９１１ａにおいて、アドレス「ａｄｄＡ」の領域のマイクロコードは、仕様変更前の「ｍｃｏｄｅＡ」ではなく、「ｍｃｏｄｅＡ１」となっている。したがって、メモリコントローラ３０はコマンド「ｃｏｍＡ」に対して、変更前と異なる変更後の動作を実行する。このように、変更されたコマンドについても、当該変更の内容が間違いなく反映される。
【００９０】
また、追加された遷移動作に応じて発行されるコマンド「ｃｏｍＤ」は、更新後のコマンドテーブル９１０ａに登録されている。したがって、メモリカード３がコマンド「ｃｏｍＤ」を受信すると、メモリコントローラ３０はアドレス「ａｄｄＢ」を取得する。そして、コマンドインストラクション情報９１１ａにおいて、アドレス「ａｄｄＢ」の領域のマイクロコードは、仕様変更前の「ｍｃｏｄｅＢ」ではなく、「ｍｃｏｄｅＤ」である。したがって、メモリコントローラ３０はコマンド「ｃｏｍＤ」に対して、変更後の動作（遷移動作）を実行する。このように、新たに追加されたコマンドについても、メモリコントローラ３０によって問題なく実行される。
【００９１】
以上のように、本実施の形態におけるコンピュータシステム１では、コンピュータ２においてコマンドを発行するためのコマンド情報９０と、コンピュータ２がコマンド情報９０に基づいて発行するコマンドを解析するためのコマンド解析情報９１とを記憶しておき、コンピュータ２がコマンド情報９０に基づいて発行したコマンドをメモリカード３がコマンド解析情報９１に基づいて解析して実行する。これにより、データ（コマンド情報９０及びコマンド解析情報９１）の書き換えのみで、コマンドの変更、追加、削除が可能となる。したがって、ハードウェアを何ら変更する必要がないので、メモリカード３の仕様変更等の開発負担が軽減される。
【００９２】
また、コマンドの追加や変更に必要な情報（コマンド情報９０及びコマンド解析情報９１）が全てメモリアレイ３２に記憶されるので、メモリアレイ３２に格納されたデータの書き換えのみで対応できる。すなわち、コンピュータ２の構成を変更する必要がないので、さらに負担が軽減される。
【００９３】
また、メモリコントローラ３０は、予めメモリアレイ３２に記憶されているコマンド解析情報９１をバッファ３１に転送し、バッファ３１に転送されたコマンド解析情報９１に基づいて解析する。これによって、バッファ３１をメモリアレイ３２よりも高速にアクセスできる記憶素子で構成することにより、コマンド解析処理を高速化できる。
【００９４】
なお、コマンド解析情報９１を記憶する領域は、メモリアレイ３２に限定されるものではなく、メモリカード３内の他の記憶領域が使用されてもよい。さらに、コマンド解析情報９１を記憶する領域は、コンピュータ２から参照することができない領域であってもよい。すなわち、コンピュータシステム１では、少なくともメモリカード３のコマンド情報９０とユーザ情報９２とが参照できればよい。
【００９５】
また、本実施の形態では、コマンド解析情報９１にはコマンドテーブル９１０が含まれており、メモリカード３はコマンドとアドレスとの対応関係を記憶していた。しかし、アドレスをそのままコマンドとして使用すれば、メモリカード３においてコマンドテーブル９１０を記憶しておく必要はない。例えば、コンピュータ２において読み出し動作が必要となった場合には、コマンド情報９０によって、コマンドとして「ｃｏｍＡ」ではなく、「ａｄｄＡ」を生成し、メモリカード３に送信するようにしてもよい。
【００９６】
＜２．  変形例＞
以上、本発明の実施の形態について説明してきたが、本発明は上記実施の形態に限定されるものではなく様々な変形が可能である。
【００９７】
例えば、図２及び図４に示した流れ図は例示であって、コンピュータシステム１の動作はこれに限定されるものではない。すなわち、同様の効果が得られるのであれば、アルゴリズムは適宜変更されてもよい。例えば、コンピュータ２は送信したコマンドに対する結果を、ステップＳ７において待機すると説明したが、もちろん結果を受け取るまで待機せずに、そのまま監視状態に戻ってもよい。その場合は、他の処理を実行しつつ、結果を受信した場合に、当該結果に対する処理を実行すればよい。
【００９８】
また、上記実施の形態では、コマンドインストラクション情報９１１には、コマンドのマイクロコードが格納されている例で説明したが、パラメータや演算子、または演算機能を含む回路群の制御情報の集合体であってもよい。すなわち、外部（コンピュータ２）から入力されたコマンドを解析して処理するための情報であれば、その内容は限定されない。
【００９９】
また、メモリコントローラ３０がコマンド解析情報９１をバッファ３１に転送するタイミング（ステップＳ１１を実行するタイミング）は、メモリカード３の立ち上げ後であると説明したが、例えば、コンピュータ２から最初のコマンドを受信した直後であってもよい。すなわち、メモリコントローラ３０が最初のコマンドを解析するまでに転送されていればよい。
【図面の簡単な説明】
【０１００】
【図１】本発明に係るコンピュータシステムの構成を示す図である。
【図２】コンピュータの動作を示す流れ図である。
【図３】コンピュータにおいて要求される動作とその動作に応じて発行されるコマンドとの対応関係を例示する図である。
【図４】メモリカードの動作を示す流れ図である。
【図５】コマンドテーブルの例を示す図である。
【図６】コマンドインストラクション情報の例を示す図である。
【図７】コンピュータにおいて要求される動作とその動作に応じて発行されるコマンドとの対応関係を変更後において例示する図である。
【図８】変更後のコマンドテーブルの例を示す図である。
【図９】変更後のコマンドインストラクション情報の例を示す図である。
【符号の説明】
【０１０１】
１  コンピュータシステム
２  コンピュータ
２０  ＣＰＵ
２１  ＲＡＭ
２３  インタフェース
３  メモリカード
３０  メモリコントローラ
３１  バッファ
３２  メモリアレイ
３３  インタフェース
９０  コマンド情報
９１  コマンド解析情報
９１０，９１０ａ  コマンドテーブル
９１１，９１１ａ  コマンドインストラクション情報
９２  ユーザ情報
【図１】
2008250395.tif 000003
【図２】
2008250395.tif 000004
【図３】
2008250395.tif 000005
【図４】
2008250395.tif 000006
【図５】
2008250395.tif 000007
【図６】
2008250395.tif 000008
【図７】
2008250395.tif 000009
【図８】
2008250395.tif 000010
【図９】
2008250395.tif 000011