(57)【要約】【課題】汎用ＰＣのＩＦを持つメモリデバイスを、より高速な汎用ＰＣのＩＦをもつアダプタを経由して接続しても、メモリデバイス側の汎用ＩＦの速度を超えて転送することができなかった。【解決手段】アダプタ１０２にメモリデバイス１０３が接続されたことを認識した時に、メモリデバイス１０３に対してデバイス情報を要求するデバイス情報要求部１２２と、デバイス情報要求部１２２で取得したデバイス情報に基づき、メモリデバイス１０３の拡張機能を有効化する拡張機能有効化部１２１とを備え、メモリデバイス１０３における拡張機能を用いてメモリデバイス１０３へアクセスを行うものである。【選択図】図１
2010026592.tif 000002
【特許請求の範囲】
【請求項１】
メモリデバイス制御装置と所定のインターフェースで接続可能なメモリデバイスであって、
複数のメモリモジュールを備え、
それぞれの前記メモリモジュール内でのデータを前記メモリデバイス制御装置にアドレスの順序で転送する、メモリデバイス。
【請求項２】
複数のメモリモジュールを備えたメモリデバイスと所定のインターフェースで接続可能なメモリデバイス制御装置であって、
当該装置に前記メモリデバイスが接続されたことを認識した時に、前記メモリデバイスに対してデバイス情報を要求するデバイス情報要求手段と、
前記メモリデバイスから取得したデータを記憶する共有メモリと、
前記共有メモリとのデータ転送時に前記メモリモジュール単位で転送データのアドレスを判別する領域判別手段と、
前記領域判別手段における判別結果に基づいてデータ転送が完了した範囲を記憶する領域カウンタと、
前記領域カウンタの結果をもとに処理を行う中央演算処理部とを備えた、メモリデバイス制御装置。
【請求項３】
前記領域判別手段は、前記メモリデバイス内部のストライピング単位でデータを管理して、それぞれの領域の最終アドレスのデータが転送されたことを判別条件とする、請求項２記載のメモリデバイス制御装置。
【請求項４】
当該装置はホスト機器に接続可能であり、
前記ホスト機器と前記共有メモリとの間でデータ転送を行うよう制御するインターフェース制御手段を、さらに備え、
前記中央演算処理部は、前記領域カウンタの結果をもとに、前記ホスト機器との転送を行うデータの範囲を確認して前記インターフェース制御手段へ転送の要求を行う、請求項２または３記載のメモリデバイス制御装置。
【請求項５】
前記領域判別手段は、前記ホスト機器へ転送するデータの転送サイズごとの領域で管理して、それぞれの領域の最終アドレスのデータが転送されたことを判別条件とする、請求項４記載のメモリデバイス制御装置。
【請求項６】
ホスト機器とアダプタとを備え、複数のメモリデバイスを制御可能なメモリデバイス制御装置であって、
前記アダプタは、前記ホスト機器と前記メモリデバイスとの間の制御方式を変更して転送を行うデータ送出制御部を備えた、メモリデバイス制御装置。
【請求項７】
前記アダプタは、
前記共有メモリと前記インタフェース制御手段と、
前記ホスト機器と前記メモリデバイスとの間の転送速度を計測する速度計測部とを、さらに備え、
前記データ送出制御部は、前記速度計測部の測定値を元にデータ転送方式を選択する、請求項６記載のメモリデバイス制御装置。
【請求項８】
前記データ送出制御部は、タイムスライス間隔で間欠的に転送を行い、当該タイムスライス間隔を変更して転送を行う、請求項７記載のメモリデバイス制御装置。
【請求項９】
前記データ送出制御部は、転送サイズを変更して転送を行う、請求項７記載のメモリデバイス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パーソナルコンピュータ（以下ＰＣと称する）やディジタルカメラなどの記録媒体として利用される汎用のインターフェース（以下ＩＦと称する）をもつ不揮発性メモリデバイスなどのメモリデバイスおよびメモリデバイス制御装置に関する。
【背景技術】
【０００２】
従来のメモリデバイスおよびメモリデバイス制御装置は、異なった２つのバスが異なる速度で動作しており、これらの動作クロックが変更可能なシステムにおいて、どのような動作クロックやデータ幅においても双方のバス間の転送を可能とする必要があった。その対応のために、複数の様々な周波数に対応したバスブリッジを並列に構成して、双方のクロック周波数の関係に応じて、バスブリッジを選択することにより、異なった２つのバスが異なる速度で動作していても利用可能にしていた（例えば、特許文献１参照）。
【０００３】
図２２は、特許文献１に記載された従来のメモリデバイスおよびメモリデバイス制御装置の構成を示す。
【０００４】
図２２において、ホストＰＣ１０１は、パーソナルコンピュータなどに代表される情報処理装置である。メモリデバイス１０３は、フラッシュメモリなどの不揮発性メモリを搭載している。アダプタ１０２は、ホストＰＣ１０１とメモリデバイス１０３とを接続するものである。また、アダプタ１０２は、各々異なった動作周波数で動作する第１のバスブリッジ２２２１、第２のバスブリッジ２２２２、第３のバスブリッジ２２２３、第４のバスブリッジ２２２４と、ホストＰＣ１０１の動作周波数に応じてバスブリッジの選択を切り替える第１の選択部２２３１と、メモリデバイス１０３の動作周波数に応じてバスブリッジの選択を切り替える第２の選択部２２３２とを備えている。
【０００５】
この構成により、さまざまな周波数に対応したバスブリッジ群２２２１〜２２２４を並列に構成し、動作周波数の関係に応じて、複数のバスブリッジ２２２１〜２２３２の中より転送速度を最も大きくするバスブリッジを選択することにより、どのような動作クロックにおいてもバス間の転送が可能になる。
【特許文献１】特開２００６−１９５９４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら上記従来の構成では、ホストＰＣとメモリデバイスとは最大の動作周波数で動作させることができるが、各バス、ホストＰＣ、メモリデバイスの特性に合わせて最適な動作モードで動作させることができないという課題を有していた。特に、消去ブロックサイズが固定され、高速化のために複数のメモリを並列して動作させる構成の不揮発性メモリでは、デバイスの特性に合わせたアクセスサイズ・アライメントでのアクセスは高速に転送ができるためにアクセス方法も変更する必要がある。
【０００７】
また、メモリデバイス側が汎用ＰＣの標準ＩＦであれば、その規格内でしか転送性能を引き出すことができず、ホストＰＣ側が汎用ＰＣの高速なＩＦであったとしてもその最大性能を引き出すことができないという課題も有していた。
【０００８】
さらに、ホストＰＣ側の要求する動作性能を満たすように動作させることができないという課題も有していた。
【０００９】
本発明は、メモリデバイスの特性とホストＰＣの動作制約をもとに最高の性能が引き出せる動作モードで動作でき、各々のバスプロトコルに対して最適な性能を引き出せるプロトコルに変換できることを可能とするメモリデバイスおよびメモリデバイス制御装置を提供すること目的とする。
【課題を解決するための手段】
【００１０】
本発明のメモリデバイスは、メモリデバイス制御装置と所定のインターフェースで接続可能なメモリデバイスであって、複数のメモリモジュールを備え、それぞれの前記メモリモジュール内でのデータを前記メモリデバイス制御装置にアドレスの順序で転送するものである。
【００１１】
本発明の第１のメモリデバイス制御装置は、複数のメモリモジュールを備えたメモリデバイスと所定のインターフェースで接続可能なメモリデバイス制御装置であって、当該装置に前記メモリデバイスが接続されたことを認識した時に、前記メモリデバイスに対してデバイス情報を要求するデバイス情報要求手段と、前記メモリデバイスから取得したデータを記憶する共有メモリと、前記共有メモリとのデータ転送時に前記メモリモジュール単位で転送データのアドレスを判別する領域判別手段と、前記領域判別手段における判別結果に基づいてデータ転送が完了した範囲を記憶する領域カウンタと、前記領域カウンタの結果をもとに処理を行う中央演算処理部とを備えたものである。
【００１２】
本発明の第２のメモリデバイス制御装置は、ホスト機器とアダプタとを備え、複数のメモリデバイスを制御可能なメモリデバイス制御装置であって、前記アダプタは、前記ホスト機器と前記メモリデバイスとの間の制御方式を変更して転送を行うデータ送出制御部を備えたものである。
【発明の効果】
【００１３】
本発明によれば、ホストＰＣと高速なＩＦを有するアダプタを接続することにより、メモリデバイスのＩＦの転送性能のボトルネックを解消し、ホストＰＣの要求する転送性能を実現することが可能になる。
【発明を実施するための最良の形態】
【００１４】
本発明のメモリデバイス制御装置は、上記構成を基本として、以下のような態様をとることができる。
【００１５】
すなわち、本発明の第１のメモリデバイス制御装置において、前記領域判別手段は、前記メモリデバイス内部のストライピング単位でデータを管理して、それぞれの領域の最終アドレスのデータが転送されたことを判別条件とする構成とすることができる。
【００１６】
本発明の第１のメモリデバイス制御装置において、当該装置はホスト機器に接続可能であり、前記ホスト機器と前記共有メモリとの間でデータ転送を行うよう制御するインターフェース制御手段を、さらに備え、前記中央演算処理部は、前記領域カウンタの結果をもとに、前記ホスト機器との転送を行うデータの範囲を確認して前記インターフェース制御手段へ転送の要求を行う構成とすることができる。
【００１７】
本発明の第１のメモリデバイス制御装置において、前記領域判別手段は、前記ホスト機器へ転送するデータの転送サイズごとの領域で管理して、それぞれの領域の最終アドレスのデータが転送されたことを判別条件とする構成とすることができる。
【００１８】
本発明の第２のメモリデバイス制御装置において、前記アダプタは、前記共有メモリと前記インタフェース制御手段と、前記ホスト機器と前記メモリデバイスとの間の転送速度を計測する速度計測部とを、さらに備え、前記データ送出制御部は、前記速度計測部の測定値を元にデータ転送方式を選択する構成とすることができる。
【００１９】
本発明の第２のメモリデバイス制御装置において、前記データ送出制御部は、タイムスライス間隔で間欠的に転送を行い、当該タイムスライス間隔を変更して転送を行う構成とすることができる。
【００２０】
本発明の第２のメモリデバイス制御装置において、前記データ送出制御部は、転送サイズを変更して転送を行う構成とすることができる。
【００２１】
（実施の形態１）
図１は、本発明の実施の形態１におけるメモリデバイスおよびメモリデバイス制御装置の構成図である。また、図２から図６は、具体的に動作を説明するための図である。なお、図２２に示す構成要素と同じ構成要素については、同じ符号を付与し、詳しい説明を省略する。
【００２２】
図１において、アダプタ１０２は、拡張機能有効化部１２１とデバイス情報要求部１２２とを有する。メモリデバイス１０３は、拡張機能制御部１３１とデバイス情報通知部１３２とを有する。デバイス情報要求部１２２は、メモリデバイス１０３における機能及び特徴やアダプタ１０２とのＩＦのデバイス情報などを取得するために、デバイス情報通知部１３２に対してデバイス情報の取得を要求する。デバイス情報通知部１３２は、メモリデバイス１０３における機能及び特徴やアダプタ１０２とのＩＦのデバイス情報などの情報を管理し、デバイス情報要求部１２２からのデバイス情報の取得の要求に対して、デバイス情報を通知する。拡張機能有効化部１２１は、デバイス情報要求部１２２がメモリデバイス１０３から取得したデバイス情報をもとに、アダプタ１０２が対応可能なメモリデバイス１０３の拡張機能を有効にするために、拡張機能制御部１３１に対して拡張機能を有効化する要求を行う。拡張機能制御部１３１は、拡張機能有効化部１２１からの要求をもとに、メモリデバイス１０３の拡張機能を有効化する。
【００２３】
図２を参照して、アダプタ１０２に拡張機能を有するメモリデバイス１０３が接続された場合と、拡張機能を有しないメモリデバイス１０３が接続された場合のフローを説明する。
【００２４】
まず、スタートステップＳ２０１において、アダプタ１０２の電源が挿入されて初期化が完了する。次に、アダプタ１０２にメモリデバイス１０３が挿入されるまで待機する（Ｓ２０２）。アダプタ１０２にメモリデバイス１０３が挿入されると、デバイス情報要求部１２２はメモリデバイス１０３からデバイス情報を取得する（Ｓ２０３）。次に、拡張機能有効化部１２１は、デバイス情報要求部１２２において取得したデバイス情報に拡張機能が存在する情報が含まれているか否かを判定する（Ｓ２０４）。デバイス情報に拡張機能が存在する情報が含まれている場合は、拡張機能が選択される（Ｓ２１１）。一方、デバイス情報に拡張機能が存在する情報が含まれていない場合は、通常動作を実行する（Ｓ２２１）。通常動作（Ｓ２２１）では、拡張機能を有効にすることなく、ホストＰＣ１０１標準の汎用ＩＦとして動作する。
【００２５】
拡張機能が選択された場合（Ｓ２１１）は、メモリデバイス１０３とアダプタ１０２の対応している拡張機能より、有効にする拡張機能を選択する。次に、アダプタ１０２における拡張機能有効化部１２１は、メモリデバイス１０３の拡張機能制御部１３１に対して拡張機能を有効にする要求を発行する（Ｓ２１２）。次に、アダプタ１０２は、利用する拡張機能を有効にする（Ｓ２１３）。次に、アダプタ１０２は、拡張機能を利用してメモリデバイス１０３に対してアクセスを行う（Ｓ２１４）。
【００２６】
図３から図５を参照して、さらに詳しく拡張機能を有効にする場合の動作について具体的に説明を行う。なお、図３〜図５において、図１と同じ構成要素については同じ符号を付与して、詳しい説明を省略する。
【００２７】
図３は、アダプタ１０２とメモリデバイス１０３との間のコマンドとデータの受け渡しを示すシーケンス図である。図３に示すように、まずアダプタ１０２は、メモリデバイス１０３に対してデバイス情報要求を行う。メモリデバイス１０３は、アダプタ１０２からのデバイス情報要求に応じて、デバイス情報として、最大動作周波数、最大データバス幅、ストライプ構成などをアダプタ１０２に通知する。次に、アダプタ１０２は、メモリデバイス１０３からデバイス情報を受けて、メモリデバイス１０３に対して拡張機能有効化の命令を行う。メモリデバイス１０３は、アダプタ１０２からの拡張機能有効化命令に基づき、拡張機能を有効化する。メモリデバイス１０３は、拡張機能の有効化処理が終われば、完了通知をアダプタ１０２に送る。アダプタ１０２は、メモリデバイス１０３からの拡張機能の有効化の完了通知を受けて、メモリデバイス１０３に対する拡張機能を含むアクセスを開始する。
【００２８】
動作最大周波数の変更を行う場合の動作をさらに詳しく説明する。アダプタ１０２の拡張機能有効化部１２１（図１参照）は、メモリデバイス１０３からの対応可能な動作最大周波数の通知を受けて、アダプタ１０２側が対応可能な動作最大周波数を選択して、アダプタ１０２とメモリデバイス１０３ともに動作可能な動作周波数への切り替えを行う。具体的には、外部ＩＦがＣａｒｄＢｕｓ（ＰＣＭＣＩＡ規格）であるメモリデバイス１０３は、ホストＰＣ１０１と直接接続する際には、ＣａｒｄＢｕｓとして接続される。つまり、動作周波数は、ＩＦの規格としての最大周波数３３ＭＨｚで動作する。このメモリデバイス１０３が拡張機能として、６６ＭＨｚで動作可能であるとしても標準のホストＰＣ１０１では規格に準拠した形態で動作し３３ＭＨｚでのみ動作する。しかし、このメモリデバイス１０３をアダプタ１０２に接続した場合は、メモリデバイス１０３は拡張機能を有効にして、６６ＭＨｚの動作周波数で動作し、２倍速の転送が可能になる。
【００２９】
図４、図５を参照して、メモリデバイス１０３内の物理メモリを複数配置して並列化して動作させて高速化するストライピングを行った場合の動作を説明する。まず、アダプタ１０２は、メモリデバイス１０３からデバイス情報としてストライプ構成の情報を取得して、取得したストライプ情報を用いて制御方法を変更する。図４は、ストライプ情報を利用していないデフォルト状態のバッファ構成であり、本実施の形態では、１２８バイトを４面構成で管理している。つまり、ホストＰＣ１０１からのアクセスをアダプタ１０２内部で１２８バイトの基本単位で管理し、この基本単位に基づいてメモリデバイス１０３へのアクセスを行う。
【００３０】
ここで、アダプタ１０２は、ストライプ情報として、図５に示すように４Ｋバイトで４メモリへのストライピングを行っているメモリデバイス１０３であることが分かった場合、バッファの管理を３２ＫＢ（８ＫＢ×４）での管理を行い、メモリデバイス１０３への基本アクセス単位をストライプ構成と合致させることにより、メモリデバイス１０３の特性に合わせた最適なアクセスが可能になる。
【００３１】
具体的には、近年の不揮発性メモリデバイスとして主流であるフラッシュメモリを用いたメモリデバイス１０３は、高速化のために複数のフラッシュメモリを並列に動作させており、並列して動作させる複数のフラッシュメモリをまとめて内部のテーブル管理等を行うことで、処理のオーバヘッドを削減して高速化を図っている。したがって、ストライピングの単位を意識したアクセスをメモリデバイス１０３に行うことで、高速にアクセスを実現することが可能になる。同様に、最大データバス幅などの変更も同様の手順で行う。
【００３２】
以上のように本実施の形態によれば、アダプタ１０２においてメモリデバイス１０３におけるストライプ情報を取得し、取得したストライプ情報に合わせてバッファ管理を行う構成としたことで、メモリデバイス１０３の特性に合わせた最適なアクセスが可能となる。
【００３３】
（実施の形態２）
図６は、本発明の実施の形態２におけるメモリデバイスおよびメモリデバイス制御装置の構成を示す。また、図７Ａ〜図７Ｄ，図８は、実施の形態２におけるメモリデバイスおよびメモリデバイス制御装置の具体的な動作を説明するための図である。なお、図６において、図１と同じ構成要素については同じ符号を付与し、詳しい説明を省略する。
【００３４】
図６において、ホストＰＣ１０１の動作制約通知部６１１は、ホストＰＣ１０１上でアプリケーションを実行する上で、必ず満たさなければならない電力値の上限値や、映像（動画）をスムーズに表示するために最低限満たさなければならない転送速度など、メモリデバイス１０３を利用する上での制約をアダプタ１０２に通知するものである。アダプタ１０２の拡張機能選択部６２１は、動作制約通知部６１１からの動作制約を満たすように拡張機能を選択する。
【００３５】
具体的に、拡張機能選択部６２１が、ホストＰＣ１０１の要求する動作制約を満たすように、拡張機能とそのパラメータを選択する動作について詳しく説明する。まず、メモリデバイス１０３のデバイス情報通知部１３２には、デバイス情報として、図７Ａ〜図７Ｄに示すようにメモリデバイス１０３として設定可能なパラメータとその設定値を変化させた時に変化する値の関係を保持する。デバイス情報通知部１３２に保持されているデバイス情報は、たとえば、図７Ａに示す動作周波数を変更した場合の転送速度と、図７Ｂに示すデータ幅を変更した場合の転送速度と、図７Ｃに示す動作周波数を変更した場合の電力と、図７Ｄに示すデータ幅を変更した場合の電力などである。これらは、数式で持つことや、不連続なサンプル点での値を持つことで実現できる。また、ホストＰＣ１０１での動作制約の制限値は、図７Ａ〜図７Ｄにおいて破線で示している。アダプタ１０２における拡張機能選択部６２１は、図７Ａ〜図７Ｄに示す特性値（図中の実線）と制限値（破線）との関係より、拡張機能を選択するものとする。図７Ａ〜図７Ｄにおける実線で示すメモリデバイス１０３の特性と、破線で示すホストＰＣ１０１の制約から、アダプタ１０２の拡張機能選択部６２１が最適な拡張機能とそのパラメータを選択する。
【００３６】
より詳しく、図８のフローを参照して最適な拡張機能とそのパラメータを選択する方法を説明する。拡張機能選択部６２１の選択ルーチンに入ると、下限値の動作制約を選択し（Ｓ８０１）、ホストＰＣ１０１の要求が満たせる設定値を演算して求める（Ｓ８０２）。制約項目の選択は、ホストＰＣ１０１からの要求により選択してもよいし、特に要求がなければアダプタ１０２で所定の順序で選択したり、ランダムな順で選択する。処理Ｓ８０１及びＳ８０２を、設定可能な設定値が求まるまで繰り返す（Ｓ８０３、Ｓ８０７）。設定値の演算方法は、制限値を超える設定可能な最小の設定値を選択する。
【００３７】
ここで、このパラメータが制限値（上限値）に影響が及ぶ場合には、すべての制限値（上限値）が超えないことを確認する。制限値（上限値）を一つでも超えている場合には、設定不可能な値として処理する（Ｓ８０３におけるＮＯ判断）。演算結果が設定可能な値であれば（Ｓ８０３におけるＹＥＳ判断）、動作制約項目（上限値）を選択するステップへ進む（Ｓ８０４）。一方、全動作制約項目で設定可能な値を求めることができなければ、終了処理を行う（Ｓ８１１）。
【００３８】
設定可能な値が求まった場合の動作制約項目（上限値）の選択動作（Ｓ８０５）について説明する。下限値の設定値は、ホストＰＣ１０１が要求する最低限の動作性能を保証するものであり、これから説明する上限値の設定は、アダプタ１０２とメモリデバイス１０３を動作可能な最大の性能で動作させるための設定値を設定する処理である。処理Ｓ８０５では、処理Ｓ８０１と同様に設定可能な制約項目を選択して、制限値を超えない設定値を演算する。この処理を動作制約項目が無くなるまで繰り返し、全動作制約項目に対して設定値を演算する（Ｓ８０６）。
【００３９】
なお、本実施の形態では、設定項目として、動作周波数、データ幅、転送速度、電力を例に挙げたが、他の項目においても同等に処理可能である。
【００４０】
（実施の形態３）
図９は、本発明の実施の形態３におけるメモリデバイスおよびメモリデバイス制御装置の構成を示す。また、図１０は、具体的に動作を説明するための図である。なお、図９において、図１、図６、図２２などと同じ構成要素については同じ符号を付与し、詳しい説明を省略する。
【００４１】
図９に示すように、本実施の形態のメモリデバイスおよびメモリデバイス制御装置は、アダプタ１０２の新プロトコル生成部９２１と、メモリデバイス１０３の新プロトコル制御部９３１との間において、新規のコマンドを定義することにより、コマンド処理のオーバヘッドを最小化することを可能にする。
【００４２】
新規プロトコルの生成方法を図１０を参照して詳しく説明する。新プロトコル生成前のシーケンスは、アダプタ１０２はメモリデバイス１０３から情報［１］から［１００］までの１００個の情報を定型的に取り出し、ホストＰＣ１０１へ通知する例である。つまり、ホストＰＣ１０１で必要な情報［１０］と［２０］と［２１］と［３０］に対して、不必要な情報をメモリデバイス１０３からアダプタ１０２へ転送している。この情報が動的に変化する情報であり、データのリード・ライト時に必ずコマンド発行が必要なコマンドである場合、データ転送時間のオーバヘッドになり、転送時間に加算される。ここで、アダプタ１０２とメモリデバイス１０３との間で、新プロトコルとして必要な情報を通知するコマンドを新プロトコル生成部９２１と新プロトコル制御部９３１とで定義し、不必要な情報の送受信を減らすことにより、転送性能を上げることが可能になる。
【００４３】
さらに、ホストＰＣ１０１とアダプタ１０２との間がＰＣＩＥｘｐｒｅｓｓなどで代表されるパケットでの通信を行うプロトコルである場合、アダプタ１０２とメモリデバイス１０３間のコマンドを、パケット化に適したサイズを選択することにより、ホストＰＣ１０１とアダプタ１０２間の転送をさらに効率的に行うことが可能になる。
【００４４】
以上のように本実施の形態では、アダプタ１０２の新プロトコル生成部９２１と、メモリデバイス１０３の新プロトコル制御部９３１との間において、新規のコマンドを定義することにより、コマンド処理のオーバヘッドを最小化することを可能にする。よって、不必要な情報の送受信を減らすことにより、転送性能を上げることが可能になる。
【００４５】
（実施の形態４）
図１１は、具体的に動作を説明するための図である。なお、図１１に示す動作は、図９に示すメモリデバイスおよびメモリデバイス制御装置により実行される。
【００４６】
近年のホストＰＣ１０１のメモリ管理方式は、限られた物理的なメモリ空間を有効に使うために、ページ単位で管理を行なっている。ページは、離散的に配置されているために、メモリデバイス１０３を直接ホストＰＣ１０１へ接続して利用する際には、転送するデータがどのページに対応するかを記載したリスト（ＳＧリスト）で通知し、そのリストに従って転送する。この転送を行うためには、各ページの転送が完了した時点で、次のページの知るためにＳＧリスト取得処理が必要となる。転送が高速化するにつれ、この処理のオーバヘッドが表面化してきているため、本実施の形態のようにアダプタ１０２内で連続領域を確保して転送することにより、転送途中のＳＧリスト取得処理が不要になる。よって、ＳＧリスト取得処理のオーバヘッドを削減することができ、メモリデバイス１０３の転送速度を効率的に行うことが可能になる。
【００４７】
（実施の形態５）
図１２は、具体的に動作を説明するための図である。なお、図１２に示す動作は、図９に示すメモリデバイスおよびメモリデバイス制御装置により実行される。
【００４８】
近年のホストＰＣ１０１は、主記憶領域の増大により、対応ＣＰＵ（central processing unit）は３２ビット空間から６４ビット空間への拡張が図られている。３２ビット空間にのみ対応しているメモリデバイス１０３を６４ビット対応のホストＰＣ１０１に接続した場合には、ホストＰＣ１０１の３２ビット空間への転送後、そのデータの複製を所定の必要な領域へ作成する。したがって、ホストＰＣ１０１において、無駄な処理が発生していた。
【００４９】
まず、メモリデバイス１０３からアダプタ１０２へデータ転送を行う。具体的には、アダプタ１０２は、ホストＰＣ１０１からの転送要求を受けた場合、メモリデバイス１０３に対して、アダプタ１０２内部のバッファ（３２ビット空間以内に配置）に対してデータ転送を行うように転送要求を発行する。アダプタ１０２は、メモリデバイス１０３からバッファへ転送されたデータを、ホストＰＣ１０１が要求したアドレス（６４ビット空間に対応）へ転送する。
【００５０】
このように、ホストＰＣ１０１が、６４ビット空間への対応を要求した場合、メモリデバイス１０３の転送を６４ビット空間に対応したアダプタ１０２を経由することにより、３２ビット空間のみに対応しているメモリデバイス１０３を、６４ビット空間への転送を可能とするプロトコルへ変換する。これにより、ホストＰＣ１０１の無駄な処理を不要にすることができ、効率的に処理を行うことが可能になる。
【００５１】
（実施の形態６）
図１３は、本発明の実施の形態６におけるメモリデバイスおよびメモリデバイス制御装置の構成を示す。また、図１４から図１６は、具体的に動作を説明するための図である。なお、図１３において、図１、図６などと同じ構成要素については同じ符号を付与し、詳しい説明を省略する。
【００５２】
メモリデバイス１０３は、フラッシュメモリを管理単位でストライピングの基本単位であるフラッシュメモリモジュール０（１３３０）、フラッシュメモリモジュール１（１３３１）、フラッシュメモリモジュール２（１３３２）、フラッシュメモリモジュール３（１３３３）、フラッシュメモリモジュール１３３０〜１３３３に対するデータの書き込み及び読み出し制御を行うメモリコントローラー１３３４を有する。
【００５３】
アダプタ１０２は、メモリデバイス１０３とホストＰＣ１０１との間のデータの受け渡しを行う共有メモリ１３２１と、ホストＰＣ１０１側のＩＦとメモリデバイス１０３側のＩＦの制御を行うＩＦ制御部１３２２と、アダプタ１０２全体のシーケンスを制御するＣＰＵ１３２３と、それぞれのフラッシュメモリモジュール（１３３０から１３３３）の転送を完了した領域を管理する領域カウンタ１３２４と、それぞれのフラッシュメモリモジュール（１３３０から１３３３）がどこまで転送が完了したかを判別する領域判別部１３２５を有する。
【００５４】
まず、図１４を参照して、ＰＣＩバス、ＰＣＩ−Ｅｘｐｒｅｓｓなど、汎用のＰＣインターフェースを経由した転送（メモリデバイス１０３からホストＰＣ１０１への転送）を行う場合の処理の流れについて説明する。
【００５５】
図１４（ａ）は、ホストＰＣ１０１からアダプタ１０２へのコマンドである。図１４（ｂ）は、メモリデバイス１０３からアダプタ１０２へのＤＭＡ転送の処理である。図１４（ｃ）は、アダプタ１０２からホストＰＣ１０１へのＤＭＡ転送の処理である。まず、アダプタ１０２は、ホストＰＣ１０１からコマンド１を受けると、メモリデバイス１０３からデータ１の転送が行われる。ＰＣＩ、ＰＣＩ−Ｅｘｐｒｅｓｓの規格上、転送の順序は問わなく、メモリデバイス１０３内の処理に依存するためにデータ１のデータすべてが完了したの後に、アダプタ１０２からホストＰＣ１０１へのＤＭＡ転送（データ１）を開始する必要がある。したがって、アダプタ１０２からホストＰＣ１０１へのＤＭＡ転送が完了しなければ、次のコマンド（コマンド２）への移行ができない。そのために、ホストＰＣ１０１へデータが届くまでのレイテンシ時間は、メモリデバイス１０３からアダプタ１０２へのＤＭＡ転送時間に、アダプタ１０２からホストＰＣ１０１へのＤＭＡ転送時間を加えた時間になる。したがって、映像データ（動画）の再生時などにおいては、データが表示されるまでの時間が長くなってしまう。
【００５６】
図１５を参照して、ホストＰＣ１０１から見たときのメモリデバイス１０３内のデータのアドレス順序を説明する。フラッシュメモリモジュール０（１３３０）、フラッシュメモリモジュール１（１３３１）、フラッシュメモリモジュール２（１３３２）、フラッシュメモリモジュール３（１３３３）の順でストライピングする場合、アドレス順序は、フラッシュメモリモジュール０（１３３０）、フラッシュメモリモジュール１（１３３１）、フラッシュメモリモジュール２（１３３２）、フラッシュメモリモジュール３（１３３３）の順に繰り返し振られていくことになる。フラッシュメモリモジュール０（１３３０）については、アドレス０，アドレス４，アドレス８，アドレス１２の順になる。それぞれのフラッシュメモリモジュール１３３０は、独立して並列に動作しているために、メモリデバイス１０３から転送されるそれぞれのフラッシュメモリモジュール０（１３３０）、フラッシュメモリモジュール１（１３３１）、フラッシュメモリモジュール２（１３３２）、フラッシュメモリモジュール３（１３３３）間でのデータの順序は決められないが、それぞれのフラッシュメモリモジュール０（１３３０）、フラッシュメモリモジュール１（１３３１）、フラッシュメモリモジュール２（１３３３）、フラッシュメモリモジュール３（１３３３）内でのデータの順は、決めることが可能である。つまり、フラッシュメモリモジュール０（１３３０）においては、アドレス０、アドレス４、アドレス８、アドレス１２の順でデータが出力される。したがって、この順での出力をメモリデバイス１０３で規定することにより、すべてのデータの転送が完了する前に、メモリデバイス１０３から出力されたデータを特定することが可能になる。それぞれのフラッシュメモリモジュール０（１３３０）、フラッシュメモリモジュール１（１３３１）、フラッシュメモリモジュール２（１３３２）、フラッシュメモリモジュール３（１３３）単位で転送されたデータを領域判別部１３２５で判断して、転送が完了したストライピング単位のデータ（以下、ストライプデータ）を領域カウンタ１３２４で管理する。管理データの例を図１６を参照してさらに詳しく説明する。
【００５７】
図１６は、フラッシュメモリモジュール０（１３３０）において、アドレス０とアドレス４が転送完了し、「転送済」を表すフラグを立てて転送が完了したことを管理している図である。領域判別部１３２５は、例えば、それぞれのフラッシュメモリモジュール（１３３０から１３３３）のストライプデータの最後のデータが転送されたかどうかで、転送が完了したことを判断することができる。また、メモリデバイス１０３のストライピング構成の情報を取得するには、実施の形態１により取得するものとする。
【００５８】
以上のように本実施の形態によれば、図１７に示すように、メモリデバイス１０３からアダプタ１０２への転送（図１７（ｂ）参照）が、あるフラッシュメモリモジュール（１３３０から１３３３）からストライピング単位分の転送が完了した時点Ｔ１で、アダプタ１０２からホストＰＣ１０１への転送を開始することが可能になり、ホストＰＣ１０１がデータを取得するまでのレイテンシ時間を短くすることが可能になる。
【００５９】
なお、本実施の形態において、フラッシュメモリモジュールとして、４つのモジュール構成で説明したが、４つ以外の構成でも良い。
【００６０】
（実施の形態７）
図１８は、本発明の実施の形態７におけるメモリデバイスおよびメモリデバイス制御装置の構成を示す。また、図１９から図２１は、具体的に動作を説明するための図である。なお、図１８において、図１、図６、図１３と同じ構成要素については同じ符号を付与し、詳しい説明を省略する。
【００６１】
図１８に示すように、アダプタ１０２は、ホストＰＣ１０１へ設定された所定の転送条件に従ってデータを転送するよう制御するデータ送出制御部１８２１と、データ送出制御部１８２１の転送条件ごとに転送速度を計測して結果を保持する速度計測部１８２２とを有する。ホストＰＣ１０１には、ホストＰＣ１０１内で利用するデータを蓄積するとともに、アダプタ１０２との間でデータ転送を行うためのデータを蓄積するＨＤＤ１８２１を有する。また、アダプタ１０２には、メモリデバイス０（１８３０）、メモリデバイス１（１８３１）、メモリデバイス２（１８３２）、メモリデバイス３（１８３３）が接続される。
【００６２】
ホストＰＣ１０１が複数のメモリデバイス（１８３０から１８３３）へのアクセスを行った場合、データ送出制御部１８２１は、メモリデバイス１８３０〜１８３３からのアクセスが所定の条件を満たした場合に、メモリデバイス１８３０〜１８３３からホストＰＣ１０１へデータの転送を行う。具体的には、タイマーによる所定のタイムスライス間隔や、所定のサイズごとにデータ転送を行う。この所定の設定値を変更することにより、転送速度の変化を速度計測部１８２２が計測して、性能が引き出せる設定値を特定する。
【００６３】
図１９を参照して、より詳しく動作の説明を行う。図１９に示すように、メモリデバイス０（１８３０）にはファイル０Ａとファイル０Ｂ、メモリデバイス１（１８３１）にはファイル１Ａとファイル１Ｂ、メモリデバイス２（１８３２）にはファイル２Ａとファイル２Ｂ、メモリデバイス３（１８３３）にはファイル３Ａと３Ｂが、それぞれ記憶されている。図１９は、ホストＰＣ１０１がアダプタ１０２経由で、メモリデバイス０（１８３０）のファイル０Ａ、メモリデバイス１（１８３１）のファイル１Ａ、メモリデバイス２（１８３２）のファイル２Ａ、メモリデバイス３（１８３３）からの読み出しを行った場合のデータの流れを示している。それぞれのファイルは、並列して動作してバス・メモリデバイスの速度／バッファサイズに応じて分断化されて、アダプタ１０２に転送される。たとえば、メモリデバイス０（１８３０）のファイル０Ａは、データ０Ａ（０），データ０Ａ（１），データ０Ａ（２）に分割されて、アダプタ１０２に転送される。他のメモリデバイスも同様に動作する。これらの分割されたデータは、到着順に、アダプタ１０２からホストＰＣ１０１へ転送される。図１９では、データ０Ａ（０）、データ１Ａ（０），データ２Ａ（０），データ３Ａ（０）の順で、ホストＰＣ１０１へ転送される。
【００６４】
ここで、ホストＰＣ１０１におけるＨＤＤ１８２１のアクセス動作について、図２０を参照して詳しく説明する。ＨＤＤ１８２１に記録されたファイルは、通常連続して配置される、図２０に示すように、ファイル０Ａ、ファイル１Ａ、ファイル２Ａ、ファイル３Ａのように物理的に連続した領域が確保される。これらのファイルに対して、データ０Ａ（０）、データ１Ａ（０）、データ２Ａ（０）の順でアクセスすると、アクセス毎にＨＤＤ１８２１のヘッドが移動（シーク）が発生する。シークは、物理的にヘッドが移動するために、移動時間が大きく、転送速度が低下するということにつながる。
【００６５】
図２１は、データ送出制御部１８２１により、所定の条件を満たした上で転送した場合の転送動作を説明するための図である。図２１に示すように、ファイル０Ａにおいては、データ０Ａ（０）、データ０Ａ（１）、データ０Ａ（２）、データ０Ａ（３）をまとめて転送する結果を示している。この例では、データ０Ａ（０）、データ０Ａ（１）、データ０Ａ（２）、データ０Ａ（３）の転送を行った後に、シークが発生することになる。同様にファイル１Ａ、ファイル２Ａ、ファイル３Ａも動作すると、シークの発生回数が４分の１になり、全体の転送速度が向上する。
【００６６】
かかる構成によれば、アダプタ１０２に対して、ホストＰＣ１０１の動作制約通知部６１１が動作制約を通知し、メモリデバイス１０３のデバイス情報通知部１３２がデバイス情報を通知し、アダプタ１０２の拡張機能有効化部１２１がメモリデバイス１０３の拡張機能を有効にすることにより、ホストＰＣ１０１の制約を満たした上で、メモリデバイス１０３標準の転送速度を超えて高速にデータ転送を行うことができる。
【００６７】
また、アダプタ１０２の新プロトコル生成部９２１により、ホストＰＣ１０１側とメモリデバイス１０３側の転送の冗長部分を削除することにより、転送を効率化することができる。
【００６８】
また、メモリデバイス１０３のそれぞれのフラッシュメモリモジュール内での転送順序を固定し、アダプタ１０２がフラッシュメモリモジュールごとに領域判別部１３２５で転送経過を確認し、ホストＰＣ１０１への転送開始までの時間を短縮することができ高速な転送が可能になる。
【００６９】
また、アダプタ１０２に、データ送出制御部１８２１を設けてホストＰＣ１０１へのデータ転送を行う条件を設定することにより、ホストＰＣ１０１内にＨＤＤ１８２１のようにシークにより転送時間が低下するデバイスに対しても、転送速度の低下を最低限にすることができる。
【産業上の利用可能性】
【００７０】
本発明にかかるメモリデバイスおよびメモリデバイス制御装置は、従来の標準ＰＣのＩＦで接続するメモリデバイスなどを、標準ＰＣのより高速なＩＦで接続する場合、標準ＰＣとメモリデバイスの性能を最大限に引き出すことが可能になるもので、パーソナルコンピュータ（ＰＣ）やディジタルカメラなどの記録媒体として利用される不揮発性メモリデバイスなどのメモリデバイスおよびメモリデバイス制御装置として有用である。
【図面の簡単な説明】
【００７１】
【図１】本発明の実施の形態１におけるメモリデバイスおよびメモリデバイス制御装置の構成を示すブロック図
【図２】本発明の実施の形態１におけるメモリデバイスおよびメモリデバイス制御装置を説明するフロー図
【図３】本発明の実施の形態１におけるメモリデバイスおよびメモリデバイス制御装置のコマンドとデータの流れを説明するための模式図
【図４】本発明の実施の形態１におけるメモリデバイスおよびメモリデバイス制御装置のバッファ管理を説明する模式図（１）
【図５】本発明の実施の形態１におけるメモリデバイスおよびメモリデバイス制御装置のバッファ管理を説明する模式図（２）
【図６】本発明の実施の形態２におけるメモリデバイスおよびメモリデバイス制御装置の構成を示すブロック図
【図７Ａ】本発明の実施の形態２におけるメモリデバイスおよびメモリデバイス制御装置を説明する制限値を示す特性図
【図７Ｂ】本発明の実施の形態２におけるメモリデバイスおよびメモリデバイス制御装置を説明する制限値を示す特性図
【図７Ｃ】本発明の実施の形態２におけるメモリデバイスおよびメモリデバイス制御装置を説明する制限値を示す特性図
【図７Ｄ】本発明の実施の形態２におけるメモリデバイスおよびメモリデバイス制御装置を説明する制限値を示す特性図
【図８】本発明の実施の形態２におけるメモリデバイスおよびメモリデバイス制御装置を説明するフロー図
【図９】本発明の実施の形態３におけるメモリデバイスおよびメモリデバイス制御装置の構成を示すブロック図
【図１０】本発明の実施の形態３におけるメモリデバイスおよびメモリデバイス制御装置の処理データの流れを説明する模式図
【図１１】本発明の実施の形態４におけるメモリデバイスおよびメモリデバイス制御装置のテーブルを説明する模式図
【図１２】本発明の実施の形態５におけるメモリデバイスおよびメモリデバイス制御装置のプロトコル変換を説明する模式図
【図１３】本発明の実施の形態６におけるメモリデバイスおよびメモリデバイス制御装置の構成を示すブロック図
【図１４】本発明の実施の形態６におけるメモリデバイスおよびメモリデバイス制御装置のデータ転送を説明する模式図（１）
【図１５】本発明の実施の形態６におけるメモリデバイスおよびメモリデバイス制御装置のデータ転送を説明する模式図（２）
【図１６】本発明の実施の形態６におけるメモリデバイスおよびメモリデバイス制御装置のデータ転送を説明する模式図（３）
【図１７】本発明の実施の形態６におけるメモリデバイスおよびメモリデバイス制御装置のデータ転送を説明する模式図（４）
【図１８】本発明の実施の形態７におけるメモリデバイスおよびメモリデバイス制御装置の構成を示すブロック図
【図１９】本発明の実施の形態７におけるメモリデバイスおよびメモリデバイス制御装置を説明する模式図（１）
【図２０】本発明の実施の形態７におけるメモリデバイスおよびメモリデバイス制御装置のＨＤＤ上のアクセス順を示す模式図（１）
【図２１】本発明の実施の形態７におけるメモリデバイスおよびメモリデバイス制御装置のＨＤＤ上のアクセス順を示す模式図（２）
【図２２】従来のメモリデバイスおよびメモリデバイス制御装置の構成を示すブロック図
【符号の説明】
【００７２】
１０１    ホストＰＣ
１０２    アダプタ
１０３    メモリデバイス
１２１    拡張機能有効化部
１２２    デバイス情報要求部
１３１    拡張機能制御部
１３２    デバイス情報通知部
６１１    動作制約通知部
６２１    拡張機能選択部
９２１    新プロトコル生成部
９３１    新プロトコル制御部
１３２１  共有メモリ
１３２２  ＩＦ制御部
１３２３  ＣＰＵ
１３２４  領域カウンタ
１３２５  領域判別部
１３３０  フラッシュメモリモジュール０
１３３１  フラッシュメモリモジュール１
１３３２  フラッシュメモリモジュール２
１３３３  フラッシュメモリモジュール３
１８１１  ＨＤＤ
１８２１  データ送出制御部
１８２２  速度計測部
１８３０  メモリデバイス０
１８３１  メモリデバイス１
１８３２  メモリデバイス２
１８３３  メモリデバイス３
【図１】
2010026592.tif 000003
【図２】
2010026592.tif 000004
【図３】
2010026592.tif 000005
【図４】
2010026592.tif 000006
【図５】
2010026592.tif 000007
【図６】
2010026592.tif 000008
【図７Ａ】
2010026592.tif 000009
【図７Ｂ】
2010026592.tif 000010
【図７Ｃ】
2010026592.tif 000011
【図７Ｄ】
2010026592.tif 000012
【図８】
2010026592.tif 000013
【図９】
2010026592.tif 000014
【図１０】
2010026592.tif 000015
【図１１】
2010026592.tif 000016
【図１２】
2010026592.tif 000017
【図１３】
2010026592.tif 000018
【図１４】
2010026592.tif 000019
【図１５】
2010026592.tif 000020
【図１６】
2010026592.tif 000021
【図１７】
2010026592.tif 000022
【図１８】
2010026592.tif 000023
【図１９】
2010026592.tif 000024
【図２０】
2010026592.tif 000025
【図２１】
2010026592.tif 000026
【図２２】
2010026592.tif 000027