説明

メモリデバイスおよびメモリデバイス制御装置

【課題】従来のインタフェースの機器との接続互換性を保ちつつ、データ転送速度を向上できるメモリデバイスおよびメモリデバイス制御装置を提供する。
【解決手段】メモリデバイス103とホスト装置101の間に介在するメモリデバイス制御装置102は、クロック信号に同期してメモリデバイスとの間でデータを転送するデータ転送手段123を備える。データ転送手段123は、クロック信号の立ち上がりエッジ及び立下りエッジの一方に同期してデータを転送するシングルエッジ同期モード、または、立ち上がりエッジと立下りエッジとの双方に同期してデータを転送するダブルエッジ同期モードに対応する。メモリデバイス103がバスマスタとして動作してデータ転送を行う際、データ転送手段123はメモリデバイスに対してダブルエッジ同期モードでデータ転送を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パーソナルコンピュータ(以下「PC」と称する)やディジタルカメラなどの記録媒体として利用される汎用のインタフェース(以下「IF」と称する)をもつ不揮発性メモリなどのメモリデバイスおよびメモリデバイス制御装置に関する。
【背景技術】
【0002】
メモリデバイスをPCで利用可能とするためのメモリデバイス制御装置(アダプタ)がある。メモリデバイスとメモリデバイス制御装置はそれぞれのバスが異なった速度で動作する場合がある。例えば、メモリデバイスはSDカードIFを採用し、PCがPCIバスIFを採用している場合、メモリデバイス制御装置はSDカードIFに準拠した転送とPCIバスIFに準拠した転送間の調整を行う。そのような場合、それらの動作クロックが変更可能なシステムにおいて、動作クロックやデータ幅に依存せず、双方のバス間の転送を可能とする必要があった。
【0003】
このような問題を解決するため、例えば、特許文献1では、様々な周波数に対応した複数のバスブリッジを並列に配置して、メモリデバイスとメモリデバイス制御装置間のクロック周波数の関係に応じてバスブリッジを選択することにより、異なる速度で動作する2つのバス間の通信を可能にしている。
【0004】
図10に、特許文献1に記載された従来のメモリデバイスおよびメモリデバイス制御装置(アダプタ)の構成を示す。
【0005】
図10において、ホストPC101とメモリデバイス103間にアダプタ102が接続されている。アダプタ102は、各々異なった動作周波数で動作する、第1ないし第4のバスブリッジ1021〜1024と、ホストPC101の動作周波数に応じてバスブリッジを選択する第1の選択部1031と、メモリデバイス103の動作周波数に応じてバスブリッジを選択する第2の選択部1032とを備えている。
【0006】
このように、さまざまな周波数に対応したバスブリッジ群1021〜1024は並列に構成される。ホストPC101とメモリデバイス103間の動作周波数の関係に応じて、複数のバスブリッジ1021〜1024の中から、転送速度を最も大きくする1つのバスブリッジが選択される。これにより、任意の動作クロックにおいてホストPC101とメモリデバイス103間の転送が可能になる。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2006−195948号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら上記従来の構成では、メモリデバイスが例えばCardBusIFのような汎用PCの標準IFを採用している場合、ホストPCが例えばPCI−Expressのような高速IFであったとしても、通信速度は、CardBusIFの性能に制限され、このため、高速IFの性能を最大限引き出すことができないという問題があった。
【0009】
本発明は、従来のインタフェースの機器との接続互換性を保ちつつ、データ転送速度を向上できるメモリデバイスおよびメモリデバイス制御装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
第1の態様において、メモリデバイス制御装置を介してホスト装置と接続可能なメモリデバイスが提供される。メモリデバイスは、データを格納するメモリモジュールと、メモリモジュールへのデータ書き込み又はメモリモジュールからのデータ読み出しのために、所定のクロック信号に同期してメモリデバイス制御装置との間でデータを転送するデータ転送手段とを備える。データ転送手段は、クロック信号の立ち上がりエッジ及び立下りエッジの一方に同期してデータを転送するシングルエッジ同期モード、または、立ち上がりエッジ及び立下りエッジの双方に同期してデータを転送するダブルエッジ同期モードでデータ転送が可能である。メモリデバイスはバスマスタとして動作するように設定可能である。メモリデバイスがバスマスタとして動作するよう設定された場合、データ転送手段はダブルエッジ同期モードでデータ転送を行う。
【0011】
第2の態様において、メモリデバイスとホスト装置の間に介在し、メモリデバイスとの間で所定のインタフェースで接続可能なメモリデバイス制御装置が提供される。メモリデバイス制御装置は、クロック信号に同期してメモリデバイスとの間でデータを転送するデータ転送手段を備える。データ転送手段は、クロック信号の立ち上がりエッジ及び立下りエッジの一方に同期してデータを転送するシングルエッジ同期モード、または、立ち上がりエッジと立下りエッジとの双方に同期してデータを転送するダブルエッジ同期モードに対応する。メモリデバイスがバスマスタとして動作してデータ転送を行う際、データ転送手段は、ダブルエッジ同期モードでデータを転送する。
【発明の効果】
【0012】
上記の構成によれば、メモリデバイスをバスマスタで動作させるとともにダブルエッジ同期モードでデータ転送させることが可能となる。これにより、高速なデータ転送を実現することができる。また、メモリデバイスをシングルエッジ同期モードでも動作させることができる。このため、従来のインタフェースとの互換性を保ちつつ、メモリデバイスのインタフェースの転送性能のボトルネックを解消し、ホストPCの要求する転送性能を実現することが可能となる。
【図面の簡単な説明】
【0013】
【図1】実施の形態1におけるメモリデバイスおよびアダプタ(メモリデバイス制御装置)の構成を示すブロック図
【図2】実施の形態1におけるメモリデバイスが接続された場合のアダプタの処理を説明したフローチャート
【図3】実施の形態1におけるメモリデバイスとアダプタ間のコマンドとデータの流れを説明する模式図
【図4】実施の形態1におけるメモリデバイスとアダプタ間のコマンドとデータの流れを説明する図
【図5】実施の形態2におけるメモリデバイスおよびアダプタ間のコマンドとデータの流れを説明する模式図
【図6】実施の形態2におけるメモリデバイスのIF仕様に関する拡張機能を示した説明図
【図7】実施の形態2におけるメモリデバイスおよびアダプタのIF仕様の切り替えを説明する図
【図8】実施の形態3におけるメモリデバイスおよびアダプタの構成を示すブロック図
【図9】実施の形態3におけるメモリデバイスおよびアダプタ間のコマンドとデータを説明する図
【図10】従来のメモリデバイスおよびアダプタ(メモリデバイス制御装置)の構成を示すブロック図
【発明を実施するための形態】
【0014】
以下に、実施の形態について添付の図面を参照しながら説明する。
【0015】
実施の形態1
1.構成
図1は、実施の形態1におけるメモリデバイスおよびアダプタ(メモリデバイス制御装置)の構成を示した図である。図2から図6は、本実施の形態のメモリデバイスおよびアダプタ(メモリデバイス制御装置)の具体的な動作を説明するための図である。
【0016】
図1において、ホストPC101は、パーソナルコンピュータなどに代表される情報処理装置である。メモリデバイス103は、フラッシュメモリなどの不揮発性メモリを搭載している。ホストPC101とメモリデバイス103間に、インタフェースの異なる両者間の通信を可能とするためにアダプタ102が接続されている。すなわち、アダプタ102は、例えば、メモリデバイス103を装着可能なデバイス(例えば、ホストPC101用の拡張用ボード)である。
【0017】
ホストPC101とアダプタ102との間はホストPC101で採用するバスインタフェースに準拠した速度でデータ転送がなされる。なお、以下の説明では、ホストPC101とアダプタ102間のデータ転送については、従来どおりであるので説明は省略し、主として、アダプタ102とメモリデバイス103間のデータ転送動作について説明する。
【0018】
アダプタ102は、メモリデバイス103の拡張機能を有効にする拡張機能有効化部121と、メモリデバイス103にデバイス情報を要求するデバイス情報要求部122と、ホストPC101及びメモリデバイス103のそれぞれとの間のデータ転送を制御するデータ転送部123とを有する。
【0019】
メモリデバイス103は、拡張機能を制御する拡張機能制御部131と、要求に応じてデバイス情報を送信するデバイス情報通知部132と、データの入出力を制御するデータ転送部133と、読み出しおよび書き込みデータを一時的に格納するバッファメモリ134と、フラッシュメモリモジュール137と、フラッシュメモリモジュール137に対するデータの書き込みおよび読み出し制御を行うメモリコントローラ136とを備える。フラッシュメモリモジュール137は、例えば、複数のSDカードで構成され、データを不揮発的に格納できる記録媒体である。
【0020】
メモリデバイス103は、アダプタ102から有効化されることが可能である拡張機能を有する。ここで、拡張機能とは、従来のインタフェースの転送速度の2倍の速度でデータ転送を可能とする機能である。具体的には、メモリデバイス103は通常、クロック信号の立ち上がり及び立下りのいずれかのタイミングに同期してデータ転送を行う。拡張機能では、クロック信号の立ち上がり及び立下りの双方のタイミングに同期したデータ転送を行う機能が含まれる。以下、クロック信号の立ち上がり及び立下りのいずれかのタイミングに同期することを「シングルエッジ同期」と称し、クロック信号の立ち上がり及び立下りの双方のタイミングに同期することを「ダブルエッジ同期」と称す。また、シングルエッジ同期でデータ転送を行うモードを「シングルエッジ同期モード」と称し、ダブルエッジ同期でデータ転送を行うモードを「ダブルエッジ同期モード」と称する。ダブルエッジ同期モードでのデータ転送により、シングルエッジ同期モードでのデータ転送の2倍速の転送が可能となる。
【0021】
以下、アダプタ102とメモリデバイス103間の拡張機能設定動作の概要を説明する。アダプタ102のデバイス情報要求部122は、メモリデバイス103のデバイス情報などを取得するために、メモリデバイス103のデバイス情報通知部132に対してデバイス情報の取得を要求する。デバイス情報は、メモリデバイス103における機能及び特徴や、アダプタ102とのインタフェースのための情報を含む。例えば、デバイス情報は、メモリデバイス103に対する書き込み速度/読み出し速度に関する情報、ダブルエッジ同期モードでの書き込み時/読み出し時それぞれの消費電流に関する情報、及び/または、シングルエッジ同期モードでの書き込み時/読み出し時それぞれの消費電流に関する情報を含む。
【0022】
デバイス情報通知部132は、デバイス情報などの情報を管理し、デバイス情報要求部122からのデバイス情報の取得の要求に応答して、デバイス情報をデバイス情報要求部122に送信する。
【0023】
アダプタ102の拡張機能有効化部121は、メモリデバイス103から取得したデバイス情報をもとに、アダプタ102が対応可能なメモリデバイス103の拡張機能を有効にするために、メモリデバイス103の拡張機能制御部131に対して拡張機能を有効化する要求を行う。拡張機能有効化部121からの要求に応答して、メモリデバイス103の拡張機能制御部131はメモリデバイス103の拡張機能を有効化する。拡張機能の有効化として、高速度でデータ転送を行うための準備(設定の変更)が行われる。例えば、クロック信号の周波数の設定、シングルエンド信号から差動信号に変更するための新たな信号端子の定義、IO電圧の設定等の変更が行われる。
【0024】
2.動作
図2を参照し、メモリデバイスが接続された場合のアダプタ102の処理を説明する。
【0025】
図2のフローチャートは、アダプタ102の電源が投入されて初期化が完了したときに開始される(S201)。アダプタ102にメモリデバイス103が挿入されると(S202)、アダプタ102のデバイス情報要求部122は、メモリデバイス103にデバイス情報を要求して、メモリデバイス103からデバイス情報を取得する(S203)。アダプタ102の拡張機能有効化部121は、取得したデバイス情報に基づき、メモリデバイス103が拡張機能を有するか否かを判定する(S204)。この判定は、例えば、デバイス情報に拡張機能を示す情報が存在するか否かで判断できる。メモリデバイス103が拡張機能を有する場合、拡張機能が選択される(S211)。メモリデバイス103が拡張機能を有していない場合、通常動作が実行される(S221)。ここで、通常動作では、拡張機能を有効にすることなく、ホストPC101標準の汎用IFに準拠した転送動作が行われる。
【0026】
拡張機能が選択された場合(S211)は、メモリデバイス103とアダプタ102の対応している拡張機能より、有効にする拡張機能が選択される。次に、アダプタ102の拡張機能有効化部121は、メモリデバイス103の拡張機能制御部131に対して、拡張機能を有効にするための要求を発行する(S212)。続いて、アダプタ102は、アダプタ102内部の設定について、利用する拡張機能に関連した機能を有効にする(S213)。その後、アダプタ102は、拡張機能を利用してメモリデバイス103に対してアクセスを行う(S214)。
【0027】
以上のように、拡張機能を有するメモリデバイス103がアダプタ102に接続された場合、メモリデバイス103の拡張機能が有効にされ、高速なデータ転送速度でアクセスが実行される一方で、拡張機能を有しないメモリデバイス103がアダプタ102に接続された場合は、通常の方法でのアクセスがなされ、インタフェース本来の速度でのデータ転送が実行される。
【0028】
図3、図4を参照して、アダプタ102によるメモリデバイス103の拡張機能の有効化動作について詳細な説明を行う。
【0029】
図3は、アダプタ102とメモリデバイス103間の、拡張機能の有効化動作に関連するコマンドとデータの送受信を説明した図である。図3に示すように、まずアダプタ102は、メモリデバイス103に対してデバイス情報要求を行う。メモリデバイス103は、アダプタ102からのデバイス情報要求に応じてデバイス情報をアダプタ102に送信する。デバイス情報として、クロック信号のダブルエッジ同期転送対応などの拡張機能情報を含む情報が送信される。
【0030】
アダプタ102は、メモリデバイス103からデバイス情報を受けると、メモリデバイス103に対して拡張機能有効化の命令を送信する。メモリデバイス103は、アダプタ103からの拡張機能有効化命令に従って、拡張機能を有効化する。拡張機能の有効化において、高速度でデータ転送を行うための準備が行われる。
【0031】
メモリデバイス103は、拡張機能の有効化処理が終了すると、完了通知をアダプタ102に送る。アダプタ102は、メモリデバイス103からの拡張機能の有効化の完了通知を受けて、メモリデバイス103に対する拡張機能を含むアクセスを開始する。
【0032】
クロックの立ち上がりエッジと立下りエッジとのダブルエッジ同期でデータ転送を行う場合の動作をさらに詳しく説明する。
【0033】
図4は1回のDMA(Direct Memory Access)転送シーケンスのタイミング図である。
【0034】
ホストPC101により、アダプタ102経由でメモリデバイス103の所定のレジスタに、転送元アドレス、転送先アドレス、転送サイズを含むスキャッタ・ギャザ(Scatter−Gather)ディスクリプタテーブル(以下「SGテーブル」と称す)のアドレスや、その他DMA転送制御に必要な情報(10a〜10c)が設定される。なお、SGテーブルはホストPC101の主メモリ内に格納されている。その後、アダプタ102は、バスマスタ転送を伴うDMA実行コマンド(以下「バスマスタDMA転送コマンド」と称す)11をメモリデバイス103に発行する。アドレス設定10a〜10c及びバスマスタDMA転送コマンド11の転送は、シングルエッジ同期で行われている。
【0035】
メモリデバイス103はバスマスタDMA転送コマンド11を受信すると、データ転送部133は、メモリデバイス103がバスマスタとして動作するように制御するとともに、ダブルエッジ同期でデータ転送を行う。
【0036】
具体的には、メモリデバイス103は、SGテーブル13を読み込むためのリードコマンドを発行し、ホストPC101からSGテーブル13を読み込み、SGテーブル13に含まれる情報をメモリデバイス103の内部にある転送先アドレスレジスタや転送ワードレジスタに格納する。メモリデバイス103は、レジスタに格納した情報に基づいて、ライトコマンドを発行してメインデータ15の転送を開始する。データの転送が完了すると、同様にして、メモリデバイス103は、次のSGテーブルをホストPC101から読み込んでデータ転送を行う。SGテーブルにおいてデータの終了か継続かを示す情報が記載されており、メモリデバイス103は、SGテーブルにおいてデータの終了を検出するまで、順次SGテーブルの読み込みとデータ転送を繰り返す。全データの転送が完了すれば、メモリデバイス103は、転送完了17を通知する。
【0037】
以上のように、バスマスタDMA転送コマンドの発行までは、クロックの立ち上がりまたは立ち下がりのいずれかのエッジに同期タイミングで(すなわちシングルエッジ同期で)アクセスが行われ、メモリデバイス103がバスマスタとなってDMA転送を行う区間は、クロックの立ち上がり及び立下りの両エッジに同期して(すなわちダブルエッジ同期で)データ転送が行われる。このように、本実施の形態では、データ転送をダブルエッジ同期で行うことによって転送速度を向上している。ここで、レジスタに対するアクセスにおいて、メモリデバイス103に対してホストPC101からのアクセスは、従来のインタフェース同様にシングルエッジ同期で行うので、既存のインタフェースとの互換性が保たれる。よって、拡張機能に対応していない従来のアダプタに対しても、メモリデバイス103を接続することが可能になる。
【0038】
なお、上記では、あらかじめメモリデバイス103に対して拡張機能有効化設定を行った後、メモリデバイス103がバスマスタDMA転送コマンドを受けると、ダブルエッジ同期でデータを転送した。これに代わり、ダブルエッジ同期で、かつ、メモリデバイス側がバスマスタとなって転送を行うことを指示する新たな転送コマンド(以下「ダブルエッジ同期バスマスタDMA転送コマンド」と称す)を定義しておいてもよい。そして、拡張機能有効化設定を行う代わりに、このダブルエッジ同期バスマスタDMA転送コマンドをメモリデバイス103に発行することでダブルエッジ同期の転送を行ってもよい。この場合、メモリデバイス103は、拡張機能に対応したアダプタ102から、ダブルエッジ同期バスマスタDMA転送コマンドを受けると、自らがマスタとして動作してダブルエッジ同期のデータ転送を行う。一方、メモリデバイス103がホストC101や従来のアダプタに接続されたときは、従来のバスマスタDMA転送コマンドに対して、シングルエッジ同期のデータ転送を行うように動作する。これにより、メモリデバイス103は、従来の機器との間ではインタフェース互換を保ちつつ、拡張機能に対応した機器と接続した場合には、高速なデータ転送を実現することが可能となる。
【0039】
また、アダプタ102は、メモリデバイス103のデバイス情報として、メモリデバイスの書き込みおよび読み出し速度性能、ダブルエッジ同期モードでの書き込みおよび読み出し時の消費電流、シングルエッジ同期モードでの書き込みおよび読み出し時の消費電流を取得し、それらの情報をもとに、ダブルエッジ同期でのDMA転送要求もしくはシングルエッジ同期でのDMA転送要求を切り替えて行ってもよい。これにより、インタフェースの転送速度を必要以上に上げることなく、消費電力を削減することができる。
【0040】
3.まとめ
以上のように、本実施の形態では、メモリデバイス103が拡張機能に対応する場合、アダプタ102により、メモリデバイス103の拡張機能を有効にし、ダブルエッジ同期でのデータ転送を実現する。これにより、メモリデバイス103のバスインタフェース本来の速度よりも速い速度でのデータ転送が可能となる。
【0041】
また、本実施の形態では、データ転送時においてメモリデバイス103がバスマスタとなって動作する。バスマスタで動作することにより、メモリデバイス103側でデータ転送が制御できるようになる。このため、メモリデバイス103が自身の状態を判断でき、状態に応じたアクセス速度を設定できる。例えば、メモリデバイス103が温度センサーを備えて自身の温度情報を取得したり、または周囲の温度の情報を外部から取得したりして、温度が高温になったときに発熱量を抑制するため、メモリデバイス103のアクセス速度を低速(シングルエンド同期での転送)にすることが可能となる。また、内蔵のバッファメモリ134のデータ格納状態を判断し、アクセス速度(シングルエッジ同期モード/ダブルエッジ同期モード)を切り替えることも可能となる。これらの詳細は実施の形態3で説明する。
【0042】
なお、上記の例では、バスマスタDMA転送コマンドは、アダプタ102が発行したが、ホストPC101側で発行し、アダプタ102を介してメモリデバイス103に送信されてもよい。
【0043】
実施の形態2
図5〜図7を参照し、実施の形態2におけるメモリデバイス103およびアダプタ(メモリデバイス制御装置)102の具体的な動作を説明する。本実施の形態におけるメモリデバイス103およびアダプタ(メモリデバイス制御装置)102も実施の形態1のものと構成、動作は基本的に同様であり、同様の機能、構成についての説明は省略する。本実施の形態では、拡張機能として高速なデータ転送を可能とするために、インタフェース仕様の変更が行われる。
【0044】
図5は、本実施の形態のアダプタ102とメモリデバイス103との間のコマンドとデータの送受信を説明した図である。
【0045】
メモリデバイス103がアダプタ102に装着されると、アダプタ102は、メモリデバイス103に対してデバイス情報を要求する。メモリデバイス103は、このデバイス情報要求に応答して、デバイス情報をアダプタ102に送信する。本実施の形態では、デバイス情報として、例えば、IO電圧、クロック信号の種類、最高動作周波数、データIO方式等に関する情報を含んでもよい。
【0046】
アダプタ102は、デバイス情報に基づきメモリデバイス103が拡張機能に対応しているか否かを判断し、対応していると判断すると、メモリデバイス103に対して拡張機能有効化の命令を出力する。メモリデバイス103はアダプタ103からの拡張機能有効化命令に従って拡張機能を有効化する。
【0047】
メモリデバイス103は、拡張機能の有効化処理が終了すると、完了通知をアダプタ102に送る。アダプタ102は、メモリデバイス103からの拡張機能の有効化の完了通知を受けて、拡張機能に対応するようにインタフェース仕様を変更し、メモリデバイス103に対してアクセスを開始する。
【0048】
アダプタ102とメモリデバイス103間のインタフェース仕様変更の動作を詳しく説明する。図6は、メモリデバイスに対して設定するインタフェース仕様に関する拡張機能情報を示した図である。この情報は少なくともアダプタ102内に格納される必要があるが、メモリデバイス103に同様の情報を格納してもよい。
【0049】
図6において、仕様(A)がCardBus規格(PCMCIA規格)を示し、仕様(B)および仕様(C)が拡張仕様を示す。具体的には、仕様(B)は、IO電圧が3.3V、クロック信号がシングルエンド、最高動作周波数が66MHz、シングルエッジ同期の仕様を示している。仕様(C)は、IO電圧が1.8V、クロック信号が差動信号、最高動作周波数が66MHz、ダブルエッジ同期の拡張仕様を示している。
【0050】
ホストPC101の電源投入直後またはメモリデバイス103のアダプタ102への接続直後は、アダプタ102とメモリデバイス103間は、CardBus規格に準拠したインタフェースで接続される。その際、アダプタ102の拡張機能有効化部121は、メモリデバイス103から受けたデバイス情報に基づきメモリデバイス103が拡張機能を有すると判断すると、メモリデバイス103が対応可能な拡張機能を選択して、インタフェース仕様を切り替える。例えば、拡張機能有効化部121は、メモリデバイス103のデバイス情報(IO電圧、最高動作周波数、等)に基づき、図6の仕様(B)及び仕様(C)に示すIF仕様のうち、メモリデバイス103が対応可能で且つより高速な仕様を選択し、その選択したIF仕様に設定する。
【0051】
図7はインタフェース仕様切り替えのタイミングを説明した図である。図7は、仕様(A)から仕様(C)への切替を説明している。
【0052】
図7に示すように、メモリデバイス103から拡張機能有効化完了通知を受けた後(図7(a)参照)、アダプタ102は、制御信号やデータなどの、クロック信号以外の信号のIO電圧を3.3Vから1.8Vに切り替え、リセット信号をアサートする(図7(b)参照)。アダプタ102は、リセット信号アサート後、クロック信号出力を3.3V、33MHzシングルエンド(仕様(A))から、1.8V、66MHz差動信号(仕様(C))に切り替え、リセット信号をデアサートする(図7(a)〜(b)参照)。メモリデバイス103は、拡張機能有効化完了をアダプタ102に通知した後、IO電圧を1.8Vに変更し、リセット信号によって、クロック信号をシングルエンドから差動信号に切り替える。リセット以降は、アダプタ102とメモリデバイス103とのインタフェースは66MHzクロックのダブルエッジ同期で動作し、従来のCardBus規格に対して4倍速の転送が可能となる。
【0053】
以上のように、本実施の形態では、メモリデバイス103のIF仕様を切り替えることで高速化を実現している。なお、本実施の形態においても、IF仕様変更後、メモリデバイス103がマスタとして動作してダブルエッジ同期でデータ転送を行う。
【0054】
実施の形態3
図8は、実施の形態3におけるメモリデバイスおよびアダプタ(メモリデバイス制御装置)の構成図である。図9は、実施の形態3におけるメモリデバイスおよびアダプタ(メモリデバイス制御装置)の具体的な動作を説明するための図である。なお、図1に示す構成要素と同じ構成要素については、同じ符号を付与し、詳しい説明を省略する。
【0055】
図8に示すように、本実施の形態のメモリデバイス103は、図1に示すメモリデバイスの構成に加えて、さらにバッファメモリ状態判定部135を備える。データ転送部133はバッファメモリ状態判定部135の判定結果にしたがいデータ転送速度を切り替える。
【0056】
メモリデバイス103は、拡張機能有効化が行われた後、バスマスタDMA転送コマンドを受信すると、シングルエッジ同期メモリアクセスコマンド又はダブルエッジ同期メモリアクセスコマンドを、アダプタ102に対して発行してデータ転送を行う。
【0057】
拡張機能有効化後のバスマスタDMA転送コマンドに対する、メモリデバイス103の動作について詳しく説明する。
【0058】
<メモリデバイスへのデータ書き込み>
まず、メモリデバイス103に対して書き込みを行う場合について説明する。アダプタ102は、バスマスタDMAライトコマンドをメモリデバイス103に対して発行する。メモリデバイス103は、バスマスタDMAライトコマンドを受けると、マスタとして動作し、メモリデバイス103へのデータ書き込みのためにアダプタ102(ホストPC101)からのリード動作を行う。
【0059】
メモリデバイス103は、転送先アドレスとサイズを示すSGテーブルを取得するために、アダプタ102(ホストPC101)に対してダブルエッジ同期メモリリードコマンド22を発行し、クロック信号のダブルエッジ同期でSGテーブルのデータを読み込む。そして、メモリデバイス103は、SGテーブルの情報に基づいてアダプタ102からデータを転送する(読み込む)。アダプタ102から転送されたデータは、一旦バッファメモリ134に格納される。その後、バッファメモリ134からデータが読み出されてフラッシュメモリモジュール137に書き込まれる。
【0060】
その際、バッファメモリ状態判定部135は、バッファメモリ134の空き容量と、2種類のしきい値aおよびb(0<a<b<バッファメモリ134の容量)とを比較し、バッファメモリ134の空き状態を判定する。データ転送部133はバッファメモリ134の空き容量に応じて、アダプタ102に対して発行するメモリリードコマンド21、22を切り替える。
【0061】
具体的には、データ転送部133は、空き容量>bである場合、ダブルエッジ同期メモリリードを行うように制御する。この場合、バッファメモリ134の空き容量が多いため、高速な書き込みが行われる。a<空き容量<bである場合、データ転送部133は、シングルエッジ同期でメモリリードを行うように制御する。この場合、空き容量が十分でないことから、ダブルエッジ同期でデータ転送しても、電力ばかり消費して高速転送の効果が十分に得られない場合もある。よって、データ転送部133は、転送速度よりも消費電力を優先させ、インタフェースの転送速度を必要以上に上げないようにして消費電力を削減するようにする。空き容量<aである場合は、データ転送部133は、データ書き込みに十分な空き容量が確保できていないと考えられるため、メモリリードを行わない。
【0062】
このように、メモリデバイス103への書き込み時において、バッファメモリ134に空き領域が十分にある場合は、クロックのダブルエッジ同期転送を行うことによって転送速度を向上することができる。一方、バッファメモリ134の空き領域が少ないときは、シングルエッジ同期転送を行うことによって、インタフェースの転送速度を必要以上に上げず、消費電力を削減することができる。
【0063】
なお、図9(b)、(c)に示すように、同期メモリリードコマンド21、22の転送は常にシングルエッジ同期で行われ、その後のデータ転送はメモリリードコマンド21、22の種類に応じて、ダブルエッジ同期もしくはシングルエッジ同期で行われる。
【0064】
<メモリデバイスからのデータ読み出し>
次に、メモリデバイス103から読み出しを行う場合について説明する。アダプタ102は、バスマスタDMAリードコマンドをメモリデバイス103に対して発行する。メモリデバイス103は、バスマスタDMAリードコマンドを受けると、マスタとして動作し、メモリデバイス103からのデータ読み出しのためにアダプタ102(ホストPC101)に対してライト動作を行う。
【0065】
メモリデバイス103は、転送先アドレスとサイズを示すSGテーブルを取得するために、アダプタ102(ホストPC101)に対してダブルエッジ同期メモリリードコマンドを発行し、クロック信号のダブルエッジ同期でSGテーブルのデータを読み込む。そして、メモリデバイス103は、SGテーブルの情報に基づいてアダプタ102に対してデータを転送する(書き込む)。フラッシュメモリモジュール137から読み出されたデータは、一旦バッファメモリ134に格納される。その後、バッファメモリ134からデータが読み出されてアダプタ102に転送される。
【0066】
その際、バッファメモリ状態判定部135は、バッファメモリ134の格納データ量と、2種類のしきい値aおよびb(0<a<b<バッファメモリ134の容量)とを比較する。データ転送部133は、バッファメモリ134の格納データ量にしたがって、アダプタ102に対して発行するメモリライトコマンドを切り替える。
【0067】
具体的には、データ転送部133は、格納データ量>bである場合、転送されるべきデータ量が十分に多いと判断されるため、ダブルエッジ同期メモリライトを行うように制御する。a<格納データ量<bである場合は、データ転送部133は、シングルエッジ同期メモリライトを行うように制御する。この場合、格納データ量が少ないため、ダブルエッジ同期でデータ転送しても、電力ばかり消費して高速転送の効果が十分に得られない場合もある。よって、データ転送部133は、転送速度よりも消費電力を優先させ、インタフェースの転送速度を必要以上に上げないようにして消費電力を削減するようにする。格納データ量<aである場合、データ転送部133は、メモリライトを行わない。
【0068】
図9(b)、(c)に示すように、同期メモリライトコマンド21、22の転送は、常にシングルエッジ同期で行われ、その後のデータ転送はメモリライトコマンド21、22の種類に応じて、ダブルエッジ同期もしくはシングルエッジ同期で行われる。
【0069】
このように、メモリデバイス103からの読み出し時に、バッファメモリ134の格納データ量が十分にある場合は、クロックのダブルエッジ同期転送を行うことによって転送速度を向上することができる。一方、バッファメモリ134の格納データ量が少ないときは、シングルエッジ同期転送を行うことによって、IFの転送速度を必要以上に上げず、消費電力を削減することができる。
【0070】
以上のように、本実施の形態では、メモリデバイス103がバスマスタとして動作することにより、バッファメモリ134のデータ格納状態(又は空き容量の状態)を把握して、その状態に応じたデータ転送速度を適宜切り替えることが可能となる。これにより、高速転送が実質的に有効な場合にのみ、ダブルエッジ同期で転送することができ、高速転送を実現しつつ電力消費の低減を図ることができる。
【産業上の利用可能性】
【0071】
本実施の形態によれば、従来の標準PCのインタフェースで接続するメモリデバイスを、標準PCのインタフェースよりも高速なインタフェースでメモリデバイス制御装置に接続する場合、転送速度を向上することができる。このため、本実施の形態にかかるメモリデバイスおよびメモリデバイス制御装置は、パーソナルコンピュータ(PC)やディジタルカメラなどの記録媒体として利用される不揮発性メモリデバイスなどのメモリデバイスおよびメモリデバイス制御装置に有用である。
【符号の説明】
【0072】
101 ホストPC
102 アダプタ
103 メモリデバイス
121 拡張機能有効化部
122 デバイス情報要求部
131 拡張機能制御部
132 デバイス情報通知部
133 データ転送部
134 バッファメモリ
135 バッファメモリ状態判定部
136 メモリコントローラ
137 フラッシュメモリモジュール

【特許請求の範囲】
【請求項1】
メモリデバイス制御装置を介してホスト装置と接続可能なメモリデバイスであって、
データを格納するメモリモジュールと、
前記メモリモジュールへのデータ書き込み又は前記メモリモジュールからのデータ読み出しのために、所定のクロック信号に同期して前記メモリデバイス制御装置との間でデータを転送するデータ転送手段とを備え、
前記データ転送手段は、前記クロック信号の立ち上がりエッジ及び立下りエッジの一方に同期してデータを転送するシングルエッジ同期モード、または、前記立ち上がりエッジ及び前記立下りエッジの双方に同期してデータを転送するダブルエッジ同期モードでデータ転送が可能であり、
前記メモリデバイスはバスマスタとして動作するように設定可能であり、
前記メモリデバイスがバスマスタとして動作するよう設定された場合、前記データ転送手段はダブルエッジ同期モードでデータ転送を行う、
メモリデバイス。
【請求項2】
前記メモリモジュールから読み出し又は前記メモリモジュールへ書き込みするデータを一時的に格納するバッファメモリをさらに備え、
前記メモリデバイスがバスマスタとなってデータ転送を行う際、前記データ転送手段は、前記バッファメモリのデータ格納状態に応じて、前記シングルエッジ同期モードと前記ダブルエッジ同期モードとを切り替える、請求項1記載のメモリデバイス。
【請求項3】
前記バッファメモリの空き容量を判定する判定手段をさらに備え、
前記メモリデバイスがバスマスタとなって前記メモリデバイス制御装置から前記メモリデバイスへデータを転送する際、前記データ転送手段は、前記判定手段の判定結果に基づき、前記バッファメモリの空き容量が所定値以上のときは、前記ダブルエッジ同期モードでデータを転送し、前記バッファメモリの空き容量が所定値未満のときは、前記シングルエッジ同期モードでデータを転送する、請求項2記載のメモリデバイス。
【請求項4】
前記バッファメモリのデータ格納量を判定する判定手段をさらに備え、
前記メモリデバイスがバスマスタとなって前記メモリデバイスから前記メモリデバイス制御装置へデータを転送する際、前記データ転送手段は、前記判定手段の判定結果に基づき、前記バッファメモリのデータ格納量が所定値以上のときは、前記ダブルエッジ同期モードでデータを転送し、前記バッファメモリのデータ格納量が所定値未満のときは、前記シングルエッジ同期モードでデータを転送する、請求項2記載のメモリデバイス。
【請求項5】
メモリデバイスとホスト装置の間に介在し、メモリデバイスとの間で所定のインタフェースで接続可能なメモリデバイス制御装置であって、
クロック信号に同期して前記メモリデバイスとの間でデータを転送するデータ転送手段を備え、
前記データ転送手段は、前記クロック信号の立ち上がりエッジ及び立下りエッジの一方に同期してデータを転送するシングルエッジ同期モード、または、前記立ち上がりエッジと前記立下りエッジとの双方に同期してデータを転送するダブルエッジ同期モードに対応し、
前記メモリデバイスがバスマスタとして動作してデータ転送を行う際、前記データ転送手段は、前記ダブルエッジ同期モードでデータを転送する、メモリデバイス制御装置。
【請求項6】
前記メモリデバイス制御装置に前記メモリデバイスが接続されたことを認識した時に、前記メモリデバイスに対してデバイス情報を要求するデバイス情報要求手段をさらに備え、
前記データ転送部は、前記メモリデバイスから取得したデバイス情報に基づいて、前記ダブルエッジ同期モード転送と前記シングルエッジ同期モード転送とを切り替えてデータ転送を行う、請求項5記載のメモリデバイス制御装置。
【請求項7】
前記メモリデバイスから受信したデバイス情報に基づき、前記メモリデバイスがダブルエッジ同期モードに対応可能か否かを判断し、対応可能である場合に、前記メモリデバイスに対して、前記メモリデバイスをバスマスタとしてダブルエッジ同期モードでのデータ転送動作させることを指示するコマンドを送信する、請求項6記載のメモリデバイス制御装置。
【請求項8】
前記メモリデバイスから受信したデバイス情報に基づき、前記メモリデバイスが対応可能なインタフェース仕様を判断し、前記メモリデバイスの仕様を、前記対応可能と判断されたインタフェース仕様に変更する、請求項6記載のメモリデバイス制御装置。
【請求項9】
前記デバイス情報は、前記メモリデバイスへの書き込みおよび/または読み出し速度に関する情報を含む、請求項6記載のメモリデバイス制御装置。
【請求項10】
前記デバイス情報は、前記ダブルエッジ同期モードでの書き込みおよび読み出し時の消費電流と、前記シングルエッジ同期モードでの書き込み時および読み出し時の消費電流に関する情報を含む、請求項6記載のメモリデバイス制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−267259(P2010−267259A)
【公開日】平成22年11月25日(2010.11.25)
【国際特許分類】
【出願番号】特願2010−95173(P2010−95173)
【出願日】平成22年4月16日(2010.4.16)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】