(57)【要約】【課題】従来のインタフェースの機器との接続互換性を保ちつつ、データ転送速度を向上できるメモリデバイスおよびメモリデバイス制御装置を提供する。【解決手段】メモリデバイス１０３とホスト装置１０１の間に介在するメモリデバイス制御装置１０２は、クロック信号に同期してメモリデバイスとの間でデータを転送するデータ転送手段１２３を備える。データ転送手段１２３は、クロック信号の立ち上がりエッジ及び立下りエッジの一方に同期してデータを転送するシングルエッジ同期モード、または、立ち上がりエッジと立下りエッジとの双方に同期してデータを転送するダブルエッジ同期モードに対応する。メモリデバイス１０３がバスマスタとして動作してデータ転送を行う際、データ転送手段１２３はメモリデバイスに対してダブルエッジ同期モードでデータ転送を行う。【選択図】図１
2010267259.tif 000002
【特許請求の範囲】
【請求項１】
メモリデバイス制御装置を介してホスト装置と接続可能なメモリデバイスであって、
データを格納するメモリモジュールと、
前記メモリモジュールへのデータ書き込み又は前記メモリモジュールからのデータ読み出しのために、所定のクロック信号に同期して前記メモリデバイス制御装置との間でデータを転送するデータ転送手段とを備え、
前記データ転送手段は、前記クロック信号の立ち上がりエッジ及び立下りエッジの一方に同期してデータを転送するシングルエッジ同期モード、または、前記立ち上がりエッジ及び前記立下りエッジの双方に同期してデータを転送するダブルエッジ同期モードでデータ転送が可能であり、
前記メモリデバイスはバスマスタとして動作するように設定可能であり、
前記メモリデバイスがバスマスタとして動作するよう設定された場合、前記データ転送手段はダブルエッジ同期モードでデータ転送を行う、
メモリデバイス。
【請求項２】
前記メモリモジュールから読み出し又は前記メモリモジュールへ書き込みするデータを一時的に格納するバッファメモリをさらに備え、
前記メモリデバイスがバスマスタとなってデータ転送を行う際、前記データ転送手段は、前記バッファメモリのデータ格納状態に応じて、前記シングルエッジ同期モードと前記ダブルエッジ同期モードとを切り替える、請求項１記載のメモリデバイス。
【請求項３】
前記バッファメモリの空き容量を判定する判定手段をさらに備え、
前記メモリデバイスがバスマスタとなって前記メモリデバイス制御装置から前記メモリデバイスへデータを転送する際、前記データ転送手段は、前記判定手段の判定結果に基づき、前記バッファメモリの空き容量が所定値以上のときは、前記ダブルエッジ同期モードでデータを転送し、前記バッファメモリの空き容量が所定値未満のときは、前記シングルエッジ同期モードでデータを転送する、請求項２記載のメモリデバイス。
【請求項４】
前記バッファメモリのデータ格納量を判定する判定手段をさらに備え、
前記メモリデバイスがバスマスタとなって前記メモリデバイスから前記メモリデバイス制御装置へデータを転送する際、前記データ転送手段は、前記判定手段の判定結果に基づき、前記バッファメモリのデータ格納量が所定値以上のときは、前記ダブルエッジ同期モードでデータを転送し、前記バッファメモリのデータ格納量が所定値未満のときは、前記シングルエッジ同期モードでデータを転送する、請求項２記載のメモリデバイス。
【請求項５】
メモリデバイスとホスト装置の間に介在し、メモリデバイスとの間で所定のインタフェースで接続可能なメモリデバイス制御装置であって、
クロック信号に同期して前記メモリデバイスとの間でデータを転送するデータ転送手段を備え、
前記データ転送手段は、前記クロック信号の立ち上がりエッジ及び立下りエッジの一方に同期してデータを転送するシングルエッジ同期モード、または、前記立ち上がりエッジと前記立下りエッジとの双方に同期してデータを転送するダブルエッジ同期モードに対応し、
前記メモリデバイスがバスマスタとして動作してデータ転送を行う際、前記データ転送手段は、前記ダブルエッジ同期モードでデータを転送する、メモリデバイス制御装置。
【請求項６】
前記メモリデバイス制御装置に前記メモリデバイスが接続されたことを認識した時に、前記メモリデバイスに対してデバイス情報を要求するデバイス情報要求手段をさらに備え、
前記データ転送部は、前記メモリデバイスから取得したデバイス情報に基づいて、前記ダブルエッジ同期モード転送と前記シングルエッジ同期モード転送とを切り替えてデータ転送を行う、請求項５記載のメモリデバイス制御装置。
【請求項７】
前記メモリデバイスから受信したデバイス情報に基づき、前記メモリデバイスがダブルエッジ同期モードに対応可能か否かを判断し、対応可能である場合に、前記メモリデバイスに対して、前記メモリデバイスをバスマスタとしてダブルエッジ同期モードでのデータ転送動作させることを指示するコマンドを送信する、請求項６記載のメモリデバイス制御装置。
【請求項８】
前記メモリデバイスから受信したデバイス情報に基づき、前記メモリデバイスが対応可能なインタフェース仕様を判断し、前記メモリデバイスの仕様を、前記対応可能と判断されたインタフェース仕様に変更する、請求項６記載のメモリデバイス制御装置。
【請求項９】
前記デバイス情報は、前記メモリデバイスへの書き込みおよび／または読み出し速度に関する情報を含む、請求項６記載のメモリデバイス制御装置。
【請求項１０】
前記デバイス情報は、前記ダブルエッジ同期モードでの書き込みおよび読み出し時の消費電流と、前記シングルエッジ同期モードでの書き込み時および読み出し時の消費電流に関する情報を含む、請求項６記載のメモリデバイス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パーソナルコンピュータ（以下「ＰＣ」と称する）やディジタルカメラなどの記録媒体として利用される汎用のインタフェース（以下「ＩＦ」と称する）をもつ不揮発性メモリなどのメモリデバイスおよびメモリデバイス制御装置に関する。
【背景技術】
【０００２】
メモリデバイスをＰＣで利用可能とするためのメモリデバイス制御装置（アダプタ）がある。メモリデバイスとメモリデバイス制御装置はそれぞれのバスが異なった速度で動作する場合がある。例えば、メモリデバイスはＳＤカードＩＦを採用し、ＰＣがＰＣＩバスＩＦを採用している場合、メモリデバイス制御装置はＳＤカードＩＦに準拠した転送とＰＣＩバスＩＦに準拠した転送間の調整を行う。そのような場合、それらの動作クロックが変更可能なシステムにおいて、動作クロックやデータ幅に依存せず、双方のバス間の転送を可能とする必要があった。
【０００３】
このような問題を解決するため、例えば、特許文献１では、様々な周波数に対応した複数のバスブリッジを並列に配置して、メモリデバイスとメモリデバイス制御装置間のクロック周波数の関係に応じてバスブリッジを選択することにより、異なる速度で動作する２つのバス間の通信を可能にしている。
【０００４】
図１０に、特許文献１に記載された従来のメモリデバイスおよびメモリデバイス制御装置（アダプタ）の構成を示す。
【０００５】
図１０において、ホストＰＣ１０１とメモリデバイス１０３間にアダプタ１０２が接続されている。アダプタ１０２は、各々異なった動作周波数で動作する、第１ないし第４のバスブリッジ１０２１〜１０２４と、ホストＰＣ１０１の動作周波数に応じてバスブリッジを選択する第１の選択部１０３１と、メモリデバイス１０３の動作周波数に応じてバスブリッジを選択する第２の選択部１０３２とを備えている。
【０００６】
このように、さまざまな周波数に対応したバスブリッジ群１０２１〜１０２４は並列に構成される。ホストＰＣ１０１とメモリデバイス１０３間の動作周波数の関係に応じて、複数のバスブリッジ１０２１〜１０２４の中から、転送速度を最も大きくする１つのバスブリッジが選択される。これにより、任意の動作クロックにおいてホストＰＣ１０１とメモリデバイス１０３間の転送が可能になる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−１９５９４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら上記従来の構成では、メモリデバイスが例えばＣａｒｄＢｕｓＩＦのような汎用ＰＣの標準ＩＦを採用している場合、ホストＰＣが例えばＰＣＩ−Ｅｘｐｒｅｓｓのような高速ＩＦであったとしても、通信速度は、ＣａｒｄＢｕｓＩＦの性能に制限され、このため、高速ＩＦの性能を最大限引き出すことができないという問題があった。
【０００９】
本発明は、従来のインタフェースの機器との接続互換性を保ちつつ、データ転送速度を向上できるメモリデバイスおよびメモリデバイス制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
第１の態様において、メモリデバイス制御装置を介してホスト装置と接続可能なメモリデバイスが提供される。メモリデバイスは、データを格納するメモリモジュールと、メモリモジュールへのデータ書き込み又はメモリモジュールからのデータ読み出しのために、所定のクロック信号に同期してメモリデバイス制御装置との間でデータを転送するデータ転送手段とを備える。データ転送手段は、クロック信号の立ち上がりエッジ及び立下りエッジの一方に同期してデータを転送するシングルエッジ同期モード、または、立ち上がりエッジ及び立下りエッジの双方に同期してデータを転送するダブルエッジ同期モードでデータ転送が可能である。メモリデバイスはバスマスタとして動作するように設定可能である。メモリデバイスがバスマスタとして動作するよう設定された場合、データ転送手段はダブルエッジ同期モードでデータ転送を行う。
【００１１】
第２の態様において、メモリデバイスとホスト装置の間に介在し、メモリデバイスとの間で所定のインタフェースで接続可能なメモリデバイス制御装置が提供される。メモリデバイス制御装置は、クロック信号に同期してメモリデバイスとの間でデータを転送するデータ転送手段を備える。データ転送手段は、クロック信号の立ち上がりエッジ及び立下りエッジの一方に同期してデータを転送するシングルエッジ同期モード、または、立ち上がりエッジと立下りエッジとの双方に同期してデータを転送するダブルエッジ同期モードに対応する。メモリデバイスがバスマスタとして動作してデータ転送を行う際、データ転送手段は、ダブルエッジ同期モードでデータを転送する。
【発明の効果】
【００１２】
上記の構成によれば、メモリデバイスをバスマスタで動作させるとともにダブルエッジ同期モードでデータ転送させることが可能となる。これにより、高速なデータ転送を実現することができる。また、メモリデバイスをシングルエッジ同期モードでも動作させることができる。このため、従来のインタフェースとの互換性を保ちつつ、メモリデバイスのインタフェースの転送性能のボトルネックを解消し、ホストＰＣの要求する転送性能を実現することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１におけるメモリデバイスおよびアダプタ（メモリデバイス制御装置）の構成を示すブロック図
【図２】実施の形態１におけるメモリデバイスが接続された場合のアダプタの処理を説明したフローチャート
【図３】実施の形態１におけるメモリデバイスとアダプタ間のコマンドとデータの流れを説明する模式図
【図４】実施の形態１におけるメモリデバイスとアダプタ間のコマンドとデータの流れを説明する図
【図５】実施の形態２におけるメモリデバイスおよびアダプタ間のコマンドとデータの流れを説明する模式図
【図６】実施の形態２におけるメモリデバイスのＩＦ仕様に関する拡張機能を示した説明図
【図７】実施の形態２におけるメモリデバイスおよびアダプタのＩＦ仕様の切り替えを説明する図
【図８】実施の形態３におけるメモリデバイスおよびアダプタの構成を示すブロック図
【図９】実施の形態３におけるメモリデバイスおよびアダプタ間のコマンドとデータを説明する図
【図１０】従来のメモリデバイスおよびアダプタ（メモリデバイス制御装置）の構成を示すブロック図
【発明を実施するための形態】
【００１４】
以下に、実施の形態について添付の図面を参照しながら説明する。
【００１５】
実施の形態１
１．構成
図１は、実施の形態１におけるメモリデバイスおよびアダプタ（メモリデバイス制御装置）の構成を示した図である。図２から図６は、本実施の形態のメモリデバイスおよびアダプタ（メモリデバイス制御装置）の具体的な動作を説明するための図である。
【００１６】
図１において、ホストＰＣ１０１は、パーソナルコンピュータなどに代表される情報処理装置である。メモリデバイス１０３は、フラッシュメモリなどの不揮発性メモリを搭載している。ホストＰＣ１０１とメモリデバイス１０３間に、インタフェースの異なる両者間の通信を可能とするためにアダプタ１０２が接続されている。すなわち、アダプタ１０２は、例えば、メモリデバイス１０３を装着可能なデバイス（例えば、ホストＰＣ１０１用の拡張用ボード）である。
【００１７】
ホストＰＣ１０１とアダプタ１０２との間はホストＰＣ１０１で採用するバスインタフェースに準拠した速度でデータ転送がなされる。なお、以下の説明では、ホストＰＣ１０１とアダプタ１０２間のデータ転送については、従来どおりであるので説明は省略し、主として、アダプタ１０２とメモリデバイス１０３間のデータ転送動作について説明する。
【００１８】
アダプタ１０２は、メモリデバイス１０３の拡張機能を有効にする拡張機能有効化部１２１と、メモリデバイス１０３にデバイス情報を要求するデバイス情報要求部１２２と、ホストＰＣ１０１及びメモリデバイス１０３のそれぞれとの間のデータ転送を制御するデータ転送部１２３とを有する。
【００１９】
メモリデバイス１０３は、拡張機能を制御する拡張機能制御部１３１と、要求に応じてデバイス情報を送信するデバイス情報通知部１３２と、データの入出力を制御するデータ転送部１３３と、読み出しおよび書き込みデータを一時的に格納するバッファメモリ１３４と、フラッシュメモリモジュール１３７と、フラッシュメモリモジュール１３７に対するデータの書き込みおよび読み出し制御を行うメモリコントローラ１３６とを備える。フラッシュメモリモジュール１３７は、例えば、複数のＳＤカードで構成され、データを不揮発的に格納できる記録媒体である。
【００２０】
メモリデバイス１０３は、アダプタ１０２から有効化されることが可能である拡張機能を有する。ここで、拡張機能とは、従来のインタフェースの転送速度の２倍の速度でデータ転送を可能とする機能である。具体的には、メモリデバイス１０３は通常、クロック信号の立ち上がり及び立下りのいずれかのタイミングに同期してデータ転送を行う。拡張機能では、クロック信号の立ち上がり及び立下りの双方のタイミングに同期したデータ転送を行う機能が含まれる。以下、クロック信号の立ち上がり及び立下りのいずれかのタイミングに同期することを「シングルエッジ同期」と称し、クロック信号の立ち上がり及び立下りの双方のタイミングに同期することを「ダブルエッジ同期」と称す。また、シングルエッジ同期でデータ転送を行うモードを「シングルエッジ同期モード」と称し、ダブルエッジ同期でデータ転送を行うモードを「ダブルエッジ同期モード」と称する。ダブルエッジ同期モードでのデータ転送により、シングルエッジ同期モードでのデータ転送の２倍速の転送が可能となる。
【００２１】
以下、アダプタ１０２とメモリデバイス１０３間の拡張機能設定動作の概要を説明する。アダプタ１０２のデバイス情報要求部１２２は、メモリデバイス１０３のデバイス情報などを取得するために、メモリデバイス１０３のデバイス情報通知部１３２に対してデバイス情報の取得を要求する。デバイス情報は、メモリデバイス１０３における機能及び特徴や、アダプタ１０２とのインタフェースのための情報を含む。例えば、デバイス情報は、メモリデバイス１０３に対する書き込み速度／読み出し速度に関する情報、ダブルエッジ同期モードでの書き込み時／読み出し時それぞれの消費電流に関する情報、及び／または、シングルエッジ同期モードでの書き込み時／読み出し時それぞれの消費電流に関する情報を含む。
【００２２】
デバイス情報通知部１３２は、デバイス情報などの情報を管理し、デバイス情報要求部１２２からのデバイス情報の取得の要求に応答して、デバイス情報をデバイス情報要求部１２２に送信する。
【００２３】
アダプタ１０２の拡張機能有効化部１２１は、メモリデバイス１０３から取得したデバイス情報をもとに、アダプタ１０２が対応可能なメモリデバイス１０３の拡張機能を有効にするために、メモリデバイス１０３の拡張機能制御部１３１に対して拡張機能を有効化する要求を行う。拡張機能有効化部１２１からの要求に応答して、メモリデバイス１０３の拡張機能制御部１３１はメモリデバイス１０３の拡張機能を有効化する。拡張機能の有効化として、高速度でデータ転送を行うための準備（設定の変更）が行われる。例えば、クロック信号の周波数の設定、シングルエンド信号から差動信号に変更するための新たな信号端子の定義、ＩＯ電圧の設定等の変更が行われる。
【００２４】
２．動作
図２を参照し、メモリデバイスが接続された場合のアダプタ１０２の処理を説明する。
【００２５】
図２のフローチャートは、アダプタ１０２の電源が投入されて初期化が完了したときに開始される（Ｓ２０１）。アダプタ１０２にメモリデバイス１０３が挿入されると（Ｓ２０２）、アダプタ１０２のデバイス情報要求部１２２は、メモリデバイス１０３にデバイス情報を要求して、メモリデバイス１０３からデバイス情報を取得する（Ｓ２０３）。アダプタ１０２の拡張機能有効化部１２１は、取得したデバイス情報に基づき、メモリデバイス１０３が拡張機能を有するか否かを判定する（Ｓ２０４）。この判定は、例えば、デバイス情報に拡張機能を示す情報が存在するか否かで判断できる。メモリデバイス１０３が拡張機能を有する場合、拡張機能が選択される（Ｓ２１１）。メモリデバイス１０３が拡張機能を有していない場合、通常動作が実行される（Ｓ２２１）。ここで、通常動作では、拡張機能を有効にすることなく、ホストＰＣ１０１標準の汎用ＩＦに準拠した転送動作が行われる。
【００２６】
拡張機能が選択された場合（Ｓ２１１）は、メモリデバイス１０３とアダプタ１０２の対応している拡張機能より、有効にする拡張機能が選択される。次に、アダプタ１０２の拡張機能有効化部１２１は、メモリデバイス１０３の拡張機能制御部１３１に対して、拡張機能を有効にするための要求を発行する（Ｓ２１２）。続いて、アダプタ１０２は、アダプタ１０２内部の設定について、利用する拡張機能に関連した機能を有効にする（Ｓ２１３）。その後、アダプタ１０２は、拡張機能を利用してメモリデバイス１０３に対してアクセスを行う（Ｓ２１４）。
【００２７】
以上のように、拡張機能を有するメモリデバイス１０３がアダプタ１０２に接続された場合、メモリデバイス１０３の拡張機能が有効にされ、高速なデータ転送速度でアクセスが実行される一方で、拡張機能を有しないメモリデバイス１０３がアダプタ１０２に接続された場合は、通常の方法でのアクセスがなされ、インタフェース本来の速度でのデータ転送が実行される。
【００２８】
図３、図４を参照して、アダプタ１０２によるメモリデバイス１０３の拡張機能の有効化動作について詳細な説明を行う。
【００２９】
図３は、アダプタ１０２とメモリデバイス１０３間の、拡張機能の有効化動作に関連するコマンドとデータの送受信を説明した図である。図３に示すように、まずアダプタ１０２は、メモリデバイス１０３に対してデバイス情報要求を行う。メモリデバイス１０３は、アダプタ１０２からのデバイス情報要求に応じてデバイス情報をアダプタ１０２に送信する。デバイス情報として、クロック信号のダブルエッジ同期転送対応などの拡張機能情報を含む情報が送信される。
【００３０】
アダプタ１０２は、メモリデバイス１０３からデバイス情報を受けると、メモリデバイス１０３に対して拡張機能有効化の命令を送信する。メモリデバイス１０３は、アダプタ１０３からの拡張機能有効化命令に従って、拡張機能を有効化する。拡張機能の有効化において、高速度でデータ転送を行うための準備が行われる。
【００３１】
メモリデバイス１０３は、拡張機能の有効化処理が終了すると、完了通知をアダプタ１０２に送る。アダプタ１０２は、メモリデバイス１０３からの拡張機能の有効化の完了通知を受けて、メモリデバイス１０３に対する拡張機能を含むアクセスを開始する。
【００３２】
クロックの立ち上がりエッジと立下りエッジとのダブルエッジ同期でデータ転送を行う場合の動作をさらに詳しく説明する。
【００３３】
図４は１回のＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送シーケンスのタイミング図である。
【００３４】
ホストＰＣ１０１により、アダプタ１０２経由でメモリデバイス１０３の所定のレジスタに、転送元アドレス、転送先アドレス、転送サイズを含むスキャッタ・ギャザ（Ｓｃａｔｔｅｒ−Ｇａｔｈｅｒ）ディスクリプタテーブル（以下「ＳＧテーブル」と称す）のアドレスや、その他ＤＭＡ転送制御に必要な情報（１０ａ〜１０ｃ）が設定される。なお、ＳＧテーブルはホストＰＣ１０１の主メモリ内に格納されている。その後、アダプタ１０２は、バスマスタ転送を伴うＤＭＡ実行コマンド（以下「バスマスタＤＭＡ転送コマンド」と称す）１１をメモリデバイス１０３に発行する。アドレス設定１０ａ〜１０ｃ及びバスマスタＤＭＡ転送コマンド１１の転送は、シングルエッジ同期で行われている。
【００３５】
メモリデバイス１０３はバスマスタＤＭＡ転送コマンド１１を受信すると、データ転送部１３３は、メモリデバイス１０３がバスマスタとして動作するように制御するとともに、ダブルエッジ同期でデータ転送を行う。
【００３６】
具体的には、メモリデバイス１０３は、ＳＧテーブル１３を読み込むためのリードコマンドを発行し、ホストＰＣ１０１からＳＧテーブル１３を読み込み、ＳＧテーブル１３に含まれる情報をメモリデバイス１０３の内部にある転送先アドレスレジスタや転送ワードレジスタに格納する。メモリデバイス１０３は、レジスタに格納した情報に基づいて、ライトコマンドを発行してメインデータ１５の転送を開始する。データの転送が完了すると、同様にして、メモリデバイス１０３は、次のＳＧテーブルをホストＰＣ１０１から読み込んでデータ転送を行う。ＳＧテーブルにおいてデータの終了か継続かを示す情報が記載されており、メモリデバイス１０３は、ＳＧテーブルにおいてデータの終了を検出するまで、順次ＳＧテーブルの読み込みとデータ転送を繰り返す。全データの転送が完了すれば、メモリデバイス１０３は、転送完了１７を通知する。
【００３７】
以上のように、バスマスタＤＭＡ転送コマンドの発行までは、クロックの立ち上がりまたは立ち下がりのいずれかのエッジに同期タイミングで（すなわちシングルエッジ同期で）アクセスが行われ、メモリデバイス１０３がバスマスタとなってＤＭＡ転送を行う区間は、クロックの立ち上がり及び立下りの両エッジに同期して（すなわちダブルエッジ同期で）データ転送が行われる。このように、本実施の形態では、データ転送をダブルエッジ同期で行うことによって転送速度を向上している。ここで、レジスタに対するアクセスにおいて、メモリデバイス１０３に対してホストＰＣ１０１からのアクセスは、従来のインタフェース同様にシングルエッジ同期で行うので、既存のインタフェースとの互換性が保たれる。よって、拡張機能に対応していない従来のアダプタに対しても、メモリデバイス１０３を接続することが可能になる。
【００３８】
なお、上記では、あらかじめメモリデバイス１０３に対して拡張機能有効化設定を行った後、メモリデバイス１０３がバスマスタＤＭＡ転送コマンドを受けると、ダブルエッジ同期でデータを転送した。これに代わり、ダブルエッジ同期で、かつ、メモリデバイス側がバスマスタとなって転送を行うことを指示する新たな転送コマンド（以下「ダブルエッジ同期バスマスタＤＭＡ転送コマンド」と称す）を定義しておいてもよい。そして、拡張機能有効化設定を行う代わりに、このダブルエッジ同期バスマスタＤＭＡ転送コマンドをメモリデバイス１０３に発行することでダブルエッジ同期の転送を行ってもよい。この場合、メモリデバイス１０３は、拡張機能に対応したアダプタ１０２から、ダブルエッジ同期バスマスタＤＭＡ転送コマンドを受けると、自らがマスタとして動作してダブルエッジ同期のデータ転送を行う。一方、メモリデバイス１０３がホストＣ１０１や従来のアダプタに接続されたときは、従来のバスマスタＤＭＡ転送コマンドに対して、シングルエッジ同期のデータ転送を行うように動作する。これにより、メモリデバイス１０３は、従来の機器との間ではインタフェース互換を保ちつつ、拡張機能に対応した機器と接続した場合には、高速なデータ転送を実現することが可能となる。
【００３９】
また、アダプタ１０２は、メモリデバイス１０３のデバイス情報として、メモリデバイスの書き込みおよび読み出し速度性能、ダブルエッジ同期モードでの書き込みおよび読み出し時の消費電流、シングルエッジ同期モードでの書き込みおよび読み出し時の消費電流を取得し、それらの情報をもとに、ダブルエッジ同期でのＤＭＡ転送要求もしくはシングルエッジ同期でのＤＭＡ転送要求を切り替えて行ってもよい。これにより、インタフェースの転送速度を必要以上に上げることなく、消費電力を削減することができる。
【００４０】
３．まとめ
以上のように、本実施の形態では、メモリデバイス１０３が拡張機能に対応する場合、アダプタ１０２により、メモリデバイス１０３の拡張機能を有効にし、ダブルエッジ同期でのデータ転送を実現する。これにより、メモリデバイス１０３のバスインタフェース本来の速度よりも速い速度でのデータ転送が可能となる。
【００４１】
また、本実施の形態では、データ転送時においてメモリデバイス１０３がバスマスタとなって動作する。バスマスタで動作することにより、メモリデバイス１０３側でデータ転送が制御できるようになる。このため、メモリデバイス１０３が自身の状態を判断でき、状態に応じたアクセス速度を設定できる。例えば、メモリデバイス１０３が温度センサーを備えて自身の温度情報を取得したり、または周囲の温度の情報を外部から取得したりして、温度が高温になったときに発熱量を抑制するため、メモリデバイス１０３のアクセス速度を低速（シングルエンド同期での転送）にすることが可能となる。また、内蔵のバッファメモリ１３４のデータ格納状態を判断し、アクセス速度（シングルエッジ同期モード／ダブルエッジ同期モード）を切り替えることも可能となる。これらの詳細は実施の形態３で説明する。
【００４２】
なお、上記の例では、バスマスタＤＭＡ転送コマンドは、アダプタ１０２が発行したが、ホストＰＣ１０１側で発行し、アダプタ１０２を介してメモリデバイス１０３に送信されてもよい。
【００４３】
実施の形態２
図５〜図７を参照し、実施の形態２におけるメモリデバイス１０３およびアダプタ（メモリデバイス制御装置）１０２の具体的な動作を説明する。本実施の形態におけるメモリデバイス１０３およびアダプタ（メモリデバイス制御装置）１０２も実施の形態１のものと構成、動作は基本的に同様であり、同様の機能、構成についての説明は省略する。本実施の形態では、拡張機能として高速なデータ転送を可能とするために、インタフェース仕様の変更が行われる。
【００４４】
図５は、本実施の形態のアダプタ１０２とメモリデバイス１０３との間のコマンドとデータの送受信を説明した図である。
【００４５】
メモリデバイス１０３がアダプタ１０２に装着されると、アダプタ１０２は、メモリデバイス１０３に対してデバイス情報を要求する。メモリデバイス１０３は、このデバイス情報要求に応答して、デバイス情報をアダプタ１０２に送信する。本実施の形態では、デバイス情報として、例えば、ＩＯ電圧、クロック信号の種類、最高動作周波数、データＩＯ方式等に関する情報を含んでもよい。
【００４６】
アダプタ１０２は、デバイス情報に基づきメモリデバイス１０３が拡張機能に対応しているか否かを判断し、対応していると判断すると、メモリデバイス１０３に対して拡張機能有効化の命令を出力する。メモリデバイス１０３はアダプタ１０３からの拡張機能有効化命令に従って拡張機能を有効化する。
【００４７】
メモリデバイス１０３は、拡張機能の有効化処理が終了すると、完了通知をアダプタ１０２に送る。アダプタ１０２は、メモリデバイス１０３からの拡張機能の有効化の完了通知を受けて、拡張機能に対応するようにインタフェース仕様を変更し、メモリデバイス１０３に対してアクセスを開始する。
【００４８】
アダプタ１０２とメモリデバイス１０３間のインタフェース仕様変更の動作を詳しく説明する。図６は、メモリデバイスに対して設定するインタフェース仕様に関する拡張機能情報を示した図である。この情報は少なくともアダプタ１０２内に格納される必要があるが、メモリデバイス１０３に同様の情報を格納してもよい。
【００４９】
図６において、仕様（Ａ）がＣａｒｄＢｕｓ規格（ＰＣＭＣＩＡ規格）を示し、仕様（Ｂ）および仕様（Ｃ）が拡張仕様を示す。具体的には、仕様（Ｂ）は、ＩＯ電圧が３．３Ｖ、クロック信号がシングルエンド、最高動作周波数が６６ＭＨｚ、シングルエッジ同期の仕様を示している。仕様（Ｃ）は、ＩＯ電圧が１．８Ｖ、クロック信号が差動信号、最高動作周波数が６６ＭＨｚ、ダブルエッジ同期の拡張仕様を示している。
【００５０】
ホストＰＣ１０１の電源投入直後またはメモリデバイス１０３のアダプタ１０２への接続直後は、アダプタ１０２とメモリデバイス１０３間は、ＣａｒｄＢｕｓ規格に準拠したインタフェースで接続される。その際、アダプタ１０２の拡張機能有効化部１２１は、メモリデバイス１０３から受けたデバイス情報に基づきメモリデバイス１０３が拡張機能を有すると判断すると、メモリデバイス１０３が対応可能な拡張機能を選択して、インタフェース仕様を切り替える。例えば、拡張機能有効化部１２１は、メモリデバイス１０３のデバイス情報（ＩＯ電圧、最高動作周波数、等）に基づき、図６の仕様（Ｂ）及び仕様（Ｃ）に示すＩＦ仕様のうち、メモリデバイス１０３が対応可能で且つより高速な仕様を選択し、その選択したＩＦ仕様に設定する。
【００５１】
図７はインタフェース仕様切り替えのタイミングを説明した図である。図７は、仕様（Ａ）から仕様（Ｃ）への切替を説明している。
【００５２】
図７に示すように、メモリデバイス１０３から拡張機能有効化完了通知を受けた後（図７（ａ）参照）、アダプタ１０２は、制御信号やデータなどの、クロック信号以外の信号のＩＯ電圧を３．３Ｖから１．８Ｖに切り替え、リセット信号をアサートする（図７（ｂ）参照）。アダプタ１０２は、リセット信号アサート後、クロック信号出力を３．３Ｖ、３３ＭＨｚシングルエンド（仕様（Ａ））から、１．８Ｖ、６６ＭＨｚ差動信号（仕様（Ｃ））に切り替え、リセット信号をデアサートする（図７（ａ）〜（ｂ）参照）。メモリデバイス１０３は、拡張機能有効化完了をアダプタ１０２に通知した後、ＩＯ電圧を１．８Ｖに変更し、リセット信号によって、クロック信号をシングルエンドから差動信号に切り替える。リセット以降は、アダプタ１０２とメモリデバイス１０３とのインタフェースは６６ＭＨｚクロックのダブルエッジ同期で動作し、従来のＣａｒｄＢｕｓ規格に対して４倍速の転送が可能となる。
【００５３】
以上のように、本実施の形態では、メモリデバイス１０３のＩＦ仕様を切り替えることで高速化を実現している。なお、本実施の形態においても、ＩＦ仕様変更後、メモリデバイス１０３がマスタとして動作してダブルエッジ同期でデータ転送を行う。
【００５４】
実施の形態３
図８は、実施の形態３におけるメモリデバイスおよびアダプタ（メモリデバイス制御装置）の構成図である。図９は、実施の形態３におけるメモリデバイスおよびアダプタ（メモリデバイス制御装置）の具体的な動作を説明するための図である。なお、図１に示す構成要素と同じ構成要素については、同じ符号を付与し、詳しい説明を省略する。
【００５５】
図８に示すように、本実施の形態のメモリデバイス１０３は、図１に示すメモリデバイスの構成に加えて、さらにバッファメモリ状態判定部１３５を備える。データ転送部１３３はバッファメモリ状態判定部１３５の判定結果にしたがいデータ転送速度を切り替える。
【００５６】
メモリデバイス１０３は、拡張機能有効化が行われた後、バスマスタＤＭＡ転送コマンドを受信すると、シングルエッジ同期メモリアクセスコマンド又はダブルエッジ同期メモリアクセスコマンドを、アダプタ１０２に対して発行してデータ転送を行う。
【００５７】
拡張機能有効化後のバスマスタＤＭＡ転送コマンドに対する、メモリデバイス１０３の動作について詳しく説明する。
【００５８】
＜メモリデバイスへのデータ書き込み＞
まず、メモリデバイス１０３に対して書き込みを行う場合について説明する。アダプタ１０２は、バスマスタＤＭＡライトコマンドをメモリデバイス１０３に対して発行する。メモリデバイス１０３は、バスマスタＤＭＡライトコマンドを受けると、マスタとして動作し、メモリデバイス１０３へのデータ書き込みのためにアダプタ１０２（ホストＰＣ１０１）からのリード動作を行う。
【００５９】
メモリデバイス１０３は、転送先アドレスとサイズを示すＳＧテーブルを取得するために、アダプタ１０２（ホストＰＣ１０１）に対してダブルエッジ同期メモリリードコマンド２２を発行し、クロック信号のダブルエッジ同期でＳＧテーブルのデータを読み込む。そして、メモリデバイス１０３は、ＳＧテーブルの情報に基づいてアダプタ１０２からデータを転送する（読み込む）。アダプタ１０２から転送されたデータは、一旦バッファメモリ１３４に格納される。その後、バッファメモリ１３４からデータが読み出されてフラッシュメモリモジュール１３７に書き込まれる。
【００６０】
その際、バッファメモリ状態判定部１３５は、バッファメモリ１３４の空き容量と、２種類のしきい値ａおよびｂ（０＜ａ＜ｂ＜バッファメモリ１３４の容量）とを比較し、バッファメモリ１３４の空き状態を判定する。データ転送部１３３はバッファメモリ１３４の空き容量に応じて、アダプタ１０２に対して発行するメモリリードコマンド２１、２２を切り替える。
【００６１】
具体的には、データ転送部１３３は、空き容量＞ｂである場合、ダブルエッジ同期メモリリードを行うように制御する。この場合、バッファメモリ１３４の空き容量が多いため、高速な書き込みが行われる。ａ＜空き容量＜ｂである場合、データ転送部１３３は、シングルエッジ同期でメモリリードを行うように制御する。この場合、空き容量が十分でないことから、ダブルエッジ同期でデータ転送しても、電力ばかり消費して高速転送の効果が十分に得られない場合もある。よって、データ転送部１３３は、転送速度よりも消費電力を優先させ、インタフェースの転送速度を必要以上に上げないようにして消費電力を削減するようにする。空き容量＜ａである場合は、データ転送部１３３は、データ書き込みに十分な空き容量が確保できていないと考えられるため、メモリリードを行わない。
【００６２】
このように、メモリデバイス１０３への書き込み時において、バッファメモリ１３４に空き領域が十分にある場合は、クロックのダブルエッジ同期転送を行うことによって転送速度を向上することができる。一方、バッファメモリ１３４の空き領域が少ないときは、シングルエッジ同期転送を行うことによって、インタフェースの転送速度を必要以上に上げず、消費電力を削減することができる。
【００６３】
なお、図９（ｂ）、（ｃ）に示すように、同期メモリリードコマンド２１、２２の転送は常にシングルエッジ同期で行われ、その後のデータ転送はメモリリードコマンド２１、２２の種類に応じて、ダブルエッジ同期もしくはシングルエッジ同期で行われる。
【００６４】
＜メモリデバイスからのデータ読み出し＞
次に、メモリデバイス１０３から読み出しを行う場合について説明する。アダプタ１０２は、バスマスタＤＭＡリードコマンドをメモリデバイス１０３に対して発行する。メモリデバイス１０３は、バスマスタＤＭＡリードコマンドを受けると、マスタとして動作し、メモリデバイス１０３からのデータ読み出しのためにアダプタ１０２（ホストＰＣ１０１）に対してライト動作を行う。
【００６５】
メモリデバイス１０３は、転送先アドレスとサイズを示すＳＧテーブルを取得するために、アダプタ１０２（ホストＰＣ１０１）に対してダブルエッジ同期メモリリードコマンドを発行し、クロック信号のダブルエッジ同期でＳＧテーブルのデータを読み込む。そして、メモリデバイス１０３は、ＳＧテーブルの情報に基づいてアダプタ１０２に対してデータを転送する（書き込む）。フラッシュメモリモジュール１３７から読み出されたデータは、一旦バッファメモリ１３４に格納される。その後、バッファメモリ１３４からデータが読み出されてアダプタ１０２に転送される。
【００６６】
その際、バッファメモリ状態判定部１３５は、バッファメモリ１３４の格納データ量と、２種類のしきい値ａおよびｂ（０＜ａ＜ｂ＜バッファメモリ１３４の容量）とを比較する。データ転送部１３３は、バッファメモリ１３４の格納データ量にしたがって、アダプタ１０２に対して発行するメモリライトコマンドを切り替える。
【００６７】
具体的には、データ転送部１３３は、格納データ量＞ｂである場合、転送されるべきデータ量が十分に多いと判断されるため、ダブルエッジ同期メモリライトを行うように制御する。ａ＜格納データ量＜ｂである場合は、データ転送部１３３は、シングルエッジ同期メモリライトを行うように制御する。この場合、格納データ量が少ないため、ダブルエッジ同期でデータ転送しても、電力ばかり消費して高速転送の効果が十分に得られない場合もある。よって、データ転送部１３３は、転送速度よりも消費電力を優先させ、インタフェースの転送速度を必要以上に上げないようにして消費電力を削減するようにする。格納データ量＜ａである場合、データ転送部１３３は、メモリライトを行わない。
【００６８】
図９（ｂ）、（ｃ）に示すように、同期メモリライトコマンド２１、２２の転送は、常にシングルエッジ同期で行われ、その後のデータ転送はメモリライトコマンド２１、２２の種類に応じて、ダブルエッジ同期もしくはシングルエッジ同期で行われる。
【００６９】
このように、メモリデバイス１０３からの読み出し時に、バッファメモリ１３４の格納データ量が十分にある場合は、クロックのダブルエッジ同期転送を行うことによって転送速度を向上することができる。一方、バッファメモリ１３４の格納データ量が少ないときは、シングルエッジ同期転送を行うことによって、ＩＦの転送速度を必要以上に上げず、消費電力を削減することができる。
【００７０】
以上のように、本実施の形態では、メモリデバイス１０３がバスマスタとして動作することにより、バッファメモリ１３４のデータ格納状態（又は空き容量の状態）を把握して、その状態に応じたデータ転送速度を適宜切り替えることが可能となる。これにより、高速転送が実質的に有効な場合にのみ、ダブルエッジ同期で転送することができ、高速転送を実現しつつ電力消費の低減を図ることができる。
【産業上の利用可能性】
【００７１】
本実施の形態によれば、従来の標準ＰＣのインタフェースで接続するメモリデバイスを、標準ＰＣのインタフェースよりも高速なインタフェースでメモリデバイス制御装置に接続する場合、転送速度を向上することができる。このため、本実施の形態にかかるメモリデバイスおよびメモリデバイス制御装置は、パーソナルコンピュータ（ＰＣ）やディジタルカメラなどの記録媒体として利用される不揮発性メモリデバイスなどのメモリデバイスおよびメモリデバイス制御装置に有用である。
【符号の説明】
【００７２】
１０１    ホストＰＣ
１０２    アダプタ
１０３    メモリデバイス
１２１    拡張機能有効化部
１２２    デバイス情報要求部
１３１    拡張機能制御部
１３２    デバイス情報通知部
１３３    データ転送部
１３４    バッファメモリ
１３５    バッファメモリ状態判定部
１３６    メモリコントローラ
１３７    フラッシュメモリモジュール
【図１】
2010267259.tif 000003
【図２】
2010267259.tif 000004
【図３】
2010267259.tif 000005
【図４】
2010267259.tif 000006
【図５】
2010267259.tif 000007
【図６】
2010267259.tif 000008
【図７】
2010267259.tif 000009
【図８】
2010267259.tif 000010
【図９】
2010267259.tif 000011
【図１０】
2010267259.tif 000012