JP5244037B2 - メモリデバイス、メモリデバイス制御装置 - Google Patents

メモリデバイス、メモリデバイス制御装置 Download PDF

Info

Publication number
JP5244037B2
JP5244037B2 JP2009160941A JP2009160941A JP5244037B2 JP 5244037 B2 JP5244037 B2 JP 5244037B2 JP 2009160941 A JP2009160941 A JP 2009160941A JP 2009160941 A JP2009160941 A JP 2009160941A JP 5244037 B2 JP5244037 B2 JP 5244037B2
Authority
JP
Japan
Prior art keywords
memory device
data
adapter
unit
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009160941A
Other languages
English (en)
Other versions
JP2010044750A (ja
Inventor
英明 山下
健 大塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2009160941A priority Critical patent/JP5244037B2/ja
Publication of JP2010044750A publication Critical patent/JP2010044750A/ja
Application granted granted Critical
Publication of JP5244037B2 publication Critical patent/JP5244037B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、メモリデバイスおよびメモリデバイス制御装置に関する。
メモリデバイスは、データを記憶可能な半導体記憶素子を内蔵している。メモリデバイス制御装置は、メモリデバイスに接続可能である。メモリデバイス制御装置は、メモリデバイスにデータを書き込んだり、メモリデバイスからデータを読み出したりすることができる。
従来のメモリデバイスおよびメモリデバイス制御装置は、それぞれバスを備えている。メモリデバイスのバスとメモリデバイス制御装置のバスとは、異なる速度で動作している。
特開2006−195948号公報には、異なる速度で動作するバス間においてデータを転送可能とするバスブリッジを開示している。バスブリッジは、複数の様々な周波数に対応し、バス間に並列に接続されている。双方のバスのクロック周波数の関係に応じて、バスブリッジを選択することにより、異なった2つのバスが異なる速度で動作していても、バス間においてデータの転送が可能である。
図25は、従来のメモリデバイスおよびメモリデバイス制御装置のブロック図である。ホストPC101は、パーソナルコンピュータなどに代表される情報処理装置である。メモリデバイス103は、フラッシュメモリなどの不揮発性メモリを搭載している。アダプタ102は、ホストPC101とメモリデバイス103とを接続することができる。アダプタ102は、第1のバスブリッジ2221、第2のバスブリッジ2222、第3のバスブリッジ2223、第4のバスブリッジ2224、第1の選択部2231、および第2の選択部2232を備えている。第1のバスブリッジ2221、第2のバスブリッジ2222、第3のバスブリッジ2223、第4のバスブリッジ2224は、それぞれ異なる周波数で動作する。第1の選択部2231は、ホストPC101の動作周波数に応じてバスブリッジを選択可能である。第2の選択部2232は、メモリデバイス103の動作周波数に応じてバスブリッジの選択可能である。
特開2006−195948号公報
しかしながら、図25に示すメモリデバイス及びメモリデバイス制御装置は、ホストPCとメモリデバイスとは最大の動作周波数で動作させることができるが、各バス、ホストPC、メモリデバイスの特性に合わせて最適な動作モードで動作させることができない。
本発明のメモリデバイスおよびメモリデバイス制御装置は、各バス、ホストPC、メモリデバイスの特性に合わせて最適な動作モードで動作可能とすること目的とする。
本発明のメモリデバイス制御装置は、メモリデバイスを接続可能なメモリデバイス制御装置であって、当該メモリデバイス制御装置に前記メモリデバイスが接続されたことを認識した時に、前記メモリデバイスに対してデバイス情報を要求するデバイス情報要求部と、前記デバイス情報要求部で取得したデバイス情報に基づき、前記メモリデバイスの拡張機能を有効化する拡張機能有効化部とを備え、前記メモリデバイスにおける前記拡張機能を用いて前記メモリデバイスへアクセスを行うとともに、前記デバイス情報要求部は、ストライピング構成をデバイス情報として受け取り、ストライピング単位でデータ転送が完了した領域を判別する領域判定部と転送が完了したストライピング単位のデータを管理する領域カウンタによってストライピングサイズで内部バッファの管理を行い、前記メモリデバイスから当該メモリデバイス制御装置に転送されたデータのホスト機器への転送を開始するものである。
本発明によれば、各バス、ホストPC、メモリデバイスの特性に合わせて最適な動作モードで動作可能とすることができる。
実施の形態1にかかるメモリデバイスおよびメモリデバイス制御装置のブロック図 実施の形態1にかかるメモリデバイス制御装置の動作を示すフロー図 実施の形態1にかかるメモリデバイスとメモリデバイス制御装置との間におけるコマンドとデータの流れを示す模式図 実施の形態1にかかるメモリデバイスおよびメモリデバイス制御装置のバッファ管理を説明する模式図 実施の形態1にかかるメモリデバイスおよびメモリデバイス制御装置のバッファ管理を説明する模式図 実施の形態2にかかるメモリデバイスおよびメモリデバイス制御装置のブロック図 実施の形態2にかかるメモリデバイスおよびメモリデバイス制御装置の制限値を示す特性図 実施の形態2にかかるメモリデバイスおよびメモリデバイス制御装置の制限値を示す特性図 実施の形態2にかかるメモリデバイスおよびメモリデバイス制御装置の制限値を示す特性図 実施の形態2にかかるメモリデバイスおよびメモリデバイス制御装置の制限値を示す特性図 実施の形態2にかかるメモリデバイスおよびメモリデバイス制御装置の動作を示すフロー図 実施の形態3にかかるメモリデバイスおよびメモリデバイス制御装置のブロック図 実施の形態3にかかるメモリデバイスおよびメモリデバイス制御装置の処理データの流れを説明する模式図 実施の形態4にかかるメモリデバイスおよびメモリデバイス制御装置間で転送可能なデータテーブルを示す模式図 実施の形態5にかかるメモリデバイスおよびメモリデバイス制御装置のプロトコル変換を説明する模式図 実施の形態6にかかるメモリデバイスおよびメモリデバイス制御装置のブロック図 実施の形態6にかかるメモリデバイスおよびメモリデバイス制御装置のデータ転送を説明する模式図 実施の形態6にかかるメモリデバイスおよびメモリデバイス制御装置のデータ転送を説明する模式図 実施の形態6にかかるメモリデバイスおよびメモリデバイス制御装置のデータ転送を説明する模式図 実施の形態6にかかるメモリデバイスおよびメモリデバイス制御装置のデータ転送を説明する模式図 実施の形態7にかかるメモリデバイスおよびメモリデバイス制御装置の構成を示すブロック図 実施の形態7にかかるメモリデバイスおよびメモリデバイス制御装置を説明する模式図 実施の形態7にかかるメモリデバイスおよびメモリデバイス制御装置のHDD上のアクセス順を示す模式図 実施の形態7にかかるメモリデバイスおよびメモリデバイス制御装置のHDD上のアクセス順を示す模式図 実施の形態8にかかるメモリデバイス及びメモリデバイス制御装置間のデータ転送の具体例を示すタイミングチャート 規格情報のデータ構造を示す模式図 拡張機能の有効化処理の流れを示すフローチャート 従来のメモリデバイスおよびメモリデバイス制御装置のブロック図
本発明の第1のメモリデバイス制御装置は、メモリデバイスを接続可能なメモリデバイス制御装置であって、当該メモリデバイス制御装置に前記メモリデバイスが接続されたことを認識した時に、前記メモリデバイスに対してデバイス情報を要求するデバイス情報要求部と、前記デバイス情報要求部で取得したデバイス情報に基づき、前記メモリデバイスの拡張機能を有効化する拡張機能有効化部とを備え、前記メモリデバイスにおける拡張機能を用いて前記メモリデバイスへアクセスを行うものである。
本発明の第2のメモリデバイス制御装置は、ホスト機器とアダプタとを備え、メモリデバイスを制御可能なメモリデバイス制御装置であって、前記ホスト機器は、前記アダプタに対して満たさなければならない動作制約を通知する動作制約通知部を備え、前記アダプタは、前記動作制約通知部からの動作制約とメモリデバイスから取得したデバイス情報とをもとに有効にする拡張機能を選択する拡張機能選択部を備えたものである。
本発明のメモリデバイス制御装置は、上記構成を基本として、以下のような態様をとることができる。
本発明のメモリデバイス制御装置において、前記拡張機能有効化部は、前記デバイス情報要求部が取得した前記デバイス情報に拡張情報が含まれているか判断し、前記拡張情報が含まれている場合は、前記メモリデバイスにおける拡張機能を用いて前記メモリデバイスにアクセスを行う構成とすることができる。
本発明のメモリデバイス制御装置において、前記デバイス情報要求部は、最大データバス幅をデバイス情報として受け取り、前記拡張機能有効化部は、最大データバス幅で動作することを要求する構成とすることができる。
本発明のメモリデバイス制御装置において、前記デバイス情報要求部は、ストライピング構成をデバイス情報として受け取り、内部バッファの管理をストライピングサイズで行う構成とすることができる。
本発明のメモリデバイス制御装置において、動作制約と前記メモリデバイスからのデバイス情報とをもとに有効にする拡張機能を選択する拡張機能選択部を、さらに備えた構成とすることができる。
本発明のメモリデバイス制御装置において、前記拡張機能選択部は、動作制約の下限の制限値を満たす拡張機能とパラメータとを求め、次に、動作制約の上限の制約値を超えないように性能を高める拡張機能とパラメータとを求める構成とすることができる。
本発明のメモリデバイス制御装置において、前記デバイス情報通知部からのデバイス情報と前記動作制約通知部からの動作制約とから冗長部分を削減したプロトコルを生成する新プロトコル生成部を、さらに備え、前記メモリデバイスへ新プロトコルを通知して、新プロトコルでアクセスを行う構成とすることができる。
本発明のメモリデバイス制御装置において、前記新プロトコル生成部は、前記メモリデバイス標準のコマンド内で受け渡しする情報の中から、前記ホスト機器の制御に必要な情報のみを受け渡しする新コマンドを生成する構成とすることができる。
本発明のメモリデバイス制御装置において、前記新プロトコル生成部は、前記ホスト機器とのデータ転送のアクセス単位と同サイズの情報を受け渡しする新コマンドを生成する構成とすることができる。
本発明のメモリデバイス制御装置において、前記新プロトコル生成部は、前記アダプタ内に所定サイズのバッファを設けて前記メモリデバイス間の転送を物理的に連続した領域への転送に変換する構成とすることができる。
本発明のメモリデバイス制御装置において、前記新プロトコル生成部は、前記アダプタ内のバッファに蓄積後、前記ホスト機器のアドレス空間に変換して転送する構成とすることができる。
本発明のメモリデバイスは、メモリデバイス制御装置とインターフェースを介して接続可能なメモリデバイスであって、当該メモリデバイスの拡張機能を制御する拡張機能制御部と、前記メモリデバイス制御装置からの要求に対して前記メモリデバイス制御装置にデバイス情報を通知するデバイス情報通知部とを備え、前記拡張機能制御部は、前記メモリデバイス制御装置からの拡張機能の有効化の要求に対して拡張機能を有効にするものである。
本発明のメモリデバイスは、上記構成を基本として、以下のような態様をとることができる。
本発明のメモリデバイスにおいて、前記デバイス情報通知部は、動作クロックの最大動作周波数をデバイス情報として通知し、前記メモリデバイス制御装置からの最大動作周波数で動作することの要求を受けて、前記メモリデバイス制御装置からの拡張機能を用いたアクセスに応答する構成とすることができる。
本発明のメモリデバイスにおいて、前記デバイス情報通知部は、最大データバス幅をデバイス情報として通知し、前記メモリデバイス制御装置からの最大データバス幅で動作することの要求を受けて、前記メモリデバイス制御装置からの拡張機能を用いたアクセスに応答する構成とすることができる。
本発明のメモリデバイスにおいて、前記デバイス情報通知部は、ストライピング構成をデバイス情報として通知し、前記メモリデバイス制御装置からの最大データバス幅で動作することの要求を受けて、前記メモリデバイス制御装置からの拡張機能を用いたアクセスに応答する構成とすることができる。
本発明のメモリデバイスにおいて、前記メモリデバイス制御装置が生成した新プロトコルに対応する新プロトコル制御部を、さらに備えた構成とすることができる。
本発明のメモリデバイス制御装置において、前記デバイス情報要求部は、動作クロックの最大動作周波数をデバイス情報として前記メモリデバイスから受け取り、前記拡張機能有効化部は、最大動作周波数で動作することを要求する構成とすることができる。
(実施の形態1)
図1は、本発明の実施の形態1におけるメモリデバイスおよびメモリデバイス制御装置のブロック図である。
ホストPC101は、パーソナルコンピューターなどに代表される情報処理装置である。ホストPC101は、中央演算処理装置(CPU)、ハードディスクドライブ(HDD)、ランダムアクセスメモリ(RAM)を備えている。
アダプタ102は、ホストPC101とメモリデバイス103とに接続することができる。アダプタ102は、拡張機能有効化部121とデバイス情報要求部122とを備えている。拡張機能有効化部121は、デバイス情報要求部122がメモリデバイス103から取得したデバイス情報に基づき、メモリデバイス103の拡張機能制御部131に対して拡張機能の有効化を要求する。デバイス情報要求部122は、メモリデバイス103における機能及び特徴やアダプタ102とのインターフェースのデバイス情報などを取得するために、デバイス情報通知部132に対してデバイス情報の取得を要求する。
メモリデバイス103は、フラッシュメモリなどの不揮発性メモリを搭載している。メモリデバイス103は、少なくともデータを書き込みまたは読み出し可能な記憶素子を内蔵していればよい。メモリデバイス103は、拡張機能制御部131とデバイス情報通知部132とを備えている。拡張機能制御部131は、拡張機能有効化部121から有効化要求があれば、メモリデバイス103の拡張機能を有効化する。デバイス情報通知部132は、メモリデバイス103の機能及び特徴、およびメモリデバイス103とアダプタ102とのインターフェースなどのデバイス情報を、管理する。デバイス情報通知部132は、デバイス情報要求部122によるデバイス情報の取得要求があった際に、デバイス情報をデバイス情報要求部122に送る。
図2は、メモリデバイス制御装置の動作を示すフローチャートである。図2を参照して、アダプタ102に拡張機能を有するメモリデバイス103が接続された場合と、アダプタ102に拡張機能を有しないメモリデバイス103が接続された場合の動作を説明する。
まず、スタートステップS201において、アダプタ102の電源が投入されて初期化が完了する。次に、アダプタ102は、メモリデバイス103が接続されるまで待機する(S202)。アダプタ102にメモリデバイス103が接続されると、デバイス情報要求部122はメモリデバイス103からデバイス情報を取得する(S203)。次に、拡張機能有効化部121は、デバイス情報要求部122において取得したデバイス情報に拡張機能が存在する情報が含まれているか否かを判定する(S204)。拡張機能有効化部121は、デバイス情報に拡張機能が存在する情報が含まれている場合は、拡張機能を選択する(S211)。一方、拡張機能有効化部121は、デバイス情報に拡張機能が存在する情報が含まれていない場合は、通常動作を実行する(S221)。アダプタ102は、通常動作(S221)においては、拡張機能を有効にすることなく、ホストPC101の標準の汎用インターフェースとして動作する。
拡張機能有効化部121は、拡張機能が選択された場合(S211)、メモリデバイス103の拡張機能制御部131に、拡張機能を有効にする要求を送る(S212)。次に、アダプタ102は、利用する拡張機能を有効にする(S213)。次に、アダプタ102は、拡張機能を利用してメモリデバイス103に対してアクセスを行う(S214)。
図3から図5を参照して、さらに詳しく拡張機能を有効にする場合の動作について具体的に説明を行う。
図3は、アダプタ102とメモリデバイス103との間のコマンドとデータの受け渡しを示すシーケンス図である。図3に示すように、まずアダプタ102は、メモリデバイス103に対してデバイス情報を要求する。メモリデバイス103は、アダプタ102からデバイス情報の要求があれば、デバイス情報をアダプタ102へ送る。デバイス情報は、最大動作周波数、最大データバス幅、ストライプ構成などが含まれている。次に、アダプタ102は、メモリデバイス103から送られるデバイス情報に基づき、メモリデバイス103に対して拡張機能を有効化する命令を送る。メモリデバイス103は、アダプタ102から拡張機能を有効化する命令が送られると、自身の拡張機能を有効化する。メモリデバイス103は、拡張機能の有効化処理が終われば、完了通知をアダプタ102に送る。アダプタ102は、メモリデバイス103から完了通知を受けると、メモリデバイス103に対するアクセスを開始する。このアクセスは、例えば、メモリデバイス103にデータを書き込むためのアクセス、メモリデバイス103に記憶されているデータを読み出すためのアクセスなどである。なお、アダプタ102は、メモリデバイス103が拡張機能に対応していない場合、あるいはメモリデバイス103における拡張機能が非動作状態の場合は、拡張機能を除く機能に基づいてメモリデバイス103にアクセスする。
拡張機能の一例として、最大周波数の変更を行う場合の動作を説明する。アダプタ102の拡張機能有効化部121は、メモリデバイス103から動作可能な最大周波数の通知を受けると、アダプタ102側において動作可能な最大周波数を選択する。
具体的には、外部インターフェースがCardBus規格に準拠したメモリデバイス103は、ホストPC101と直接接続する際には、CardBus規格で決められている方法で接続される。つまり、動作周波数は、CardBus規格における最大の動作周波数である33MHzに設定される。メモリデバイス103が66MHzで動作可能な拡張機能を備えていたとしても、ホストPC101がCardBus規格に準拠した33MHzの動作周波数にしか対応していない場合は、ホストPC101とメモリデバイス103とは33MHzの動作周波数に基づいてアクセス可能な状態になる。なお、「PCMCIA」は、「Personal Computer Memory Card International Association」の略称である。「CardBus規格」は、PCMCIAが策定した32ビットインターフェース規格である。
一方、このメモリデバイス103を、拡張機能に対応したアダプタ102に接続した場合、メモリデバイス103は、アダプタ102からの制御により拡張機能が「有効」に設定され、66MHzの動作周波数で動作することができる。すなわち、CardBus規格準拠のデータ転送に比べて、約2倍の転送速度でデータ転送が可能になる。
図4、図5を参照して、メモリデバイス103に物理メモリを複数内蔵して、データのストライピングを行った場合の動作を説明する。まず、アダプタ102は、メモリデバイス103から、デバイス情報としてストライプ情報を取得する。アダプタ102は、メモリデバイス103から取得したストライプ情報を用いて、自身の制御方法を変更する。
図4は、ストライプ情報を利用していないデフォルト状態のバッファ構成である。図4に示すアダプタ102には、サイズが128バイトのバッファメモリを4つ備えている。つまり、アダプタ102は、ホストPC101からのアクセスを128バイトの基本単位で管理している。アダプタ102は、この基本単位に基づいて、メモリデバイス103へのアクセスを行う。
ここで、アダプタ102は、ストライプ情報を参照することによって、メモリデバイス103のバッファ構成が図5に示すバッファ構成(4Kバイト×4メモリ)であることを認識した場合、バッファの管理を32Kバイト(8Kバイト×4)で管理する。アダプタ102は、メモリデバイス103への基本アクセス単位をメモリデバイス103のバッファ構成と合致させることにより、メモリデバイス103の特性に合わせた最適なアクセスが可能になる。なお、「ストライプ情報」は、ストライプサイズとストライプ数の情報を含む。
具体的には、近年の不揮発性メモリデバイスとして主流であるフラッシュメモリを用いたメモリデバイス103は、複数のフラッシュメモリを内蔵し、複数のフラッシュメモリを並列に動作させている。このような複数のフラッシュメモリを、管理テーブル等を用いてまとめて管理を行うことで、処理のオーバヘッドを削減して、データ転送速度の高速化を図っている。したがって、アダプタ102は、メモリデバイス103に対してストライピングの単位を意識したアクセスを行うことで、メモリデバイス103との間で高速にアクセスすることが可能になる。上記構成では、データサイズを変更することでアクセスの高速化を可能としているが、最大データバス幅などを変更したとしてもアクセスの高速化が可能である。
本実施の形態によれば、アダプタ102においてメモリデバイス103におけるストライプ情報を取得し、取得したストライプ情報に合わせてバッファ管理を行う構成としたことで、メモリデバイス103の特性に合わせた最適なアクセスが可能となる。したがって、アダプタ102とメモリデバイス103との間におけるアクセスを高速化できる。
なお、本実施の形態におけるホストPC101は、本発明のホスト機器の一例である。本実施の形態におけるアダプタ102は、本発明のメモリデバイス制御装置の一例である。本実施の形態におけるメモリデバイス103は、本発明のメモリデバイスの一例である。本実施の形態における拡張機能有効化部121は、本発明の拡張機能有効化部の一例である。本実施の形態におけるデバイス情報要求部122は、本発明のデバイス情報要求部の一例である。本実施の形態における拡張機能制御部131は、本発明の拡張機能制御部の一例である。本実施の形態におけるデバイス情報通知部132は、本発明のデバイス情報通知部の一例である。
(実施の形態2)
図6は、本発明の実施の形態2におけるメモリデバイスおよびメモリデバイス制御装置のブロック図である。
ホストPC101は、パーソナルコンピューターなどに代表される情報処理装置である。ホストPC101は、中央演算処理装置(CPU)、ハードディスクドライブ(HDD)、ランダムアクセスメモリ(RAM)を備えている。ホストPC101は、動作制約通知部611を備えている。
アダプタ102は、ホストPC101とメモリデバイス103とに接続することができる。アダプタ102は、拡張機能有効化部121とデバイス情報要求部122とを備えている。拡張機能有効化部121は、デバイス情報要求部122がメモリデバイス103から取得したデバイス情報に基づき、拡張機能制御部131に対して拡張機能の有効化を要求する。デバイス情報要求部122は、メモリデバイス103における機能及び特徴やアダプタ102とのインターフェースのデバイス情報などを取得するために、デバイス情報通知部132に対してデバイス情報の取得を要求する。アダプタ102は、さらに拡張機能選択部621を備えている。
メモリデバイス103は、フラッシュメモリなどの不揮発性メモリを搭載している。メモリデバイス103は、少なくともデータを書き込みまたは読み出し可能な記憶素子を内蔵していればよい。メモリデバイス103は、拡張機能制御部131とデバイス情報通知部132とを備えている。拡張機能制御部131は、拡張機能有効化部121から有効化要求があれば、メモリデバイス103の拡張機能を有効化する。デバイス情報通知部132は、メモリデバイス103の機能及び特徴、メモリデバイス103とアダプタ102とのインターフェースのデバイス情報などの情報を、管理する。デバイス情報通知部132は、デバイス情報要求部122によるデバイス情報の取得要求があった際に、デバイス情報をデバイス情報要求部122に送る。
動作制約通知部611は、メモリデバイス103を利用する上での動作制約をアダプタ102に通知する。動作制約は、電力の上限値の情報、データの転送速度の情報を含む。電力の上限値は、ホストPC101がアプリケーションプログラムを実行する時の電力の上限値である。転送速度は、映像(動画)をスムーズに表示することができるデータ転送の速度である。
拡張機能選択部621は、動作制約通知部611から通知される動作制約を満たすように、拡張機能を選択する。
図7Aは、動作周波数とデータの転送速度との関係を示すグラフである。図7Bは、データ幅とデータの転送速度との関係を示すグラフである。図7Cは、動作周波数とホストPCの電力との関係を示すグラフである。図7Dは、データ幅とホストPCの電力との関係を示すグラフである。以下、拡張機能選択部621が、ホストPC101が要求する動作制約を満たすように、拡張機能とそのパラメータを選択する動作について説明する。
まず、デバイス情報通知部132は、デバイス情報を保持している。デバイス情報通知部132が保持しているデバイス情報は、図7A〜図7Dに示すように、メモリデバイス103として設定可能なパラメータと、そのパラメータを変化させた時に変化する値の関係である。デバイス情報通知部132が保持しているデバイス情報は、例えば、動作周波数を変更した場合の転送速度(図7A参照)と、データ幅を変更した場合の転送速度(図7B参照)と、動作周波数を変更した場合の電力(図7C参照)と、データ幅を変更した場合の電力(図7D参照)などである。これらのデバイス情報は、数式、または不連続なサンプル点での値で表すことができる。図7A〜図7Dに示す破線は、ホストPC101での動作制約の制限値である。
拡張機能選択部621は、図7A〜図7Dに示す特性値(図中の実線)と制限値(破線)との関係より、拡張機能を選択することができる。すなわち、拡張機能選択部621は、図7A〜図7Dにおいて実線で示すメモリデバイス103の特性と、破線で示すホストPC101の動作制約の制限値とに基づいて、最適な拡張機能とそのパラメータとを選択する。最適な拡張機能とそのパラメータとを選択する方法について、図8を参照して説明する。
図8は、拡張機能選択部621が最適な拡張機能とそのパラメータとを選択する際のフローを示す。拡張機能選択部621は、選択フローに入ると、下限値の動作制約を選択し(S801)、ホストPC101の要求が満たせる設定値を演算して求める(S802)。制約項目の選択は、ホストPC101からの要求により選択することができる。制約項目の選択は、ホストPC101から要求がなければ、アダプタ102で所定の順序で選択したり、不規則な順序で選択することができる。拡張機能選択部621は、処理S801及びS802を、設定可能な設定値が求まるまで繰り返す(S803、S807)。設定値は、制限値を超え、かつ設定可能な最小の設定値を選択する。
ここで、このパラメータが制限値(上限値)に影響が及ぶ場合には、パラメータがすべての制限値(上限値)を超えないことを確認する。パラメータのうち、制限値(上限値)を超えるパラメータが一つでもある場合には、「設定不可能な値」として処理する(S803におけるNO判断)。演算結果が「設定可能な値」であれば(S803におけるYES判断)、動作制約項目(上限値)を選択するステップへ進む(S804)。一方、全動作制約項目で設定可能な値を求めることができなければ、終了処理を行う(S811)。
設定可能な値が求まった場合の動作制約項目(上限値)の選択動作(S805)について説明する。下限値の設定値は、ホストPC101が要求する最低限の動作性能を保証する値である。上限値の設定処理は、アダプタ102とメモリデバイス103とを動作可能な最大の性能で動作させるための設定値を設定する処理である。処理S805では、処理S801と同様に設定可能な制約項目を選択して、制限値を超えない設定値を演算する。拡張機能選択部621は、処理S804及びS805を、動作制約項目が無くなるまで繰り返し実行する。拡張機能選択部621は、全ての制約項目に対して設定値を演算する(S806)。
本実施の形態によれば、アダプタ102に対して、ホストPC101の動作制約通知部611が動作制約を通知し、メモリデバイス103のデバイス情報通知部132がデバイス情報を通知し、アダプタ102の拡張機能有効化部121がメモリデバイス103の拡張機能を有効にすることにより、ホストPC101の制約を満たした上で、メモリデバイス103の標準の転送速度を超えて高速にデータ転送を行うことができる。
なお、本実施の形態では、設定項目として、動作周波数、データ幅、転送速度、電力を例に挙げたが、他の項目においても同等に処理可能である。
本実施の形態におけるホストPC101は、本発明のホスト機器の一例である。本実施の形態におけるアダプタ102は、本発明のメモリデバイス制御装置の一例である。本実施の形態におけるメモリデバイス103は、本発明のメモリデバイスの一例である。本実施の形態における拡張機能有効化部121は、本発明の拡張機能有効化部の一例である。本実施の形態におけるデバイス情報要求部122は、本発明のデバイス情報要求部の一例である。本実施の形態における拡張機能制御部131は、本発明の拡張機能制御部の一例である。本実施の形態におけるデバイス情報通知部132は、本発明のデバイス情報通知部の一例である。本実施の形態における動作制約通知部611は、本発明の動作制約通知部の一例である。本実施の形態における拡張機能選択部621は、本発明の拡張機能選択部の一例である。
(実施の形態3)
図9は、本発明の実施の形態3におけるメモリデバイスおよびメモリデバイス制御装置のブロック図である。
ホストPC101は、パーソナルコンピューターなどに代表される情報処理装置である。ホストPC101は、中央演算処理装置(CPU)、ハードディスクドライブ(HDD)、ランダムアクセスメモリ(RAM)を備えている。ホストPC101は、動作制約通知部611を備えている。
アダプタ102は、ホストPC101とメモリデバイス103とに接続することができる。アダプタ102は、拡張機能有効化部121とデバイス情報要求部122とを備えている。拡張機能有効化部121は、デバイス情報要求部122がメモリデバイス103から取得したデバイス情報に基づき、拡張機能制御部131に対して拡張機能の有効化を要求する。デバイス情報要求部122は、メモリデバイス103における機能及び特徴やアダプタ102とのインターフェースのデバイス情報などを取得するために、デバイス情報通知部132に対してデバイス情報の取得を要求する。アダプタ102は、さらに拡張機能選択部621、新プロトコル生成部921を備えている。
メモリデバイス103は、フラッシュメモリなどの不揮発性メモリを搭載している。メモリデバイス103は、少なくともデータを書き込みまたは読み出し可能な記憶素子を内蔵していればよい。メモリデバイス103は、拡張機能制御部131とデバイス情報通知部132とを備えている。拡張機能制御部131は、拡張機能有効化部121から有効化要求があれば、メモリデバイス103の拡張機能を有効化する。デバイス情報通知部132は、メモリデバイス103の機能及び特徴、メモリデバイス103とアダプタ102とのインターフェースのデバイス情報などの情報を、管理する。デバイス情報通知部132は、デバイス情報要求部122によるデバイス情報の取得要求があった際に、デバイス情報をデバイス情報要求部122に送る。メモリデバイス103は、さらに新プロトコル制御部931を備えている。
動作制約通知部611は、メモリデバイス103を利用する上での動作制約をアダプタ102に通知する。動作制約は、電力の上限値の情報、データの転送速度の情報を含む。電力の上限値は、ホストPC101がアプリケーションプログラムを実行する時の電力の上限値である。転送速度は、映像(動画)をスムーズに表示することができるデータ転送の速度である。
拡張機能選択部621は、動作制約通知部611から通知される動作制約を満たすように、拡張機能を選択する。
図9に示すように、本実施の形態のメモリデバイスおよびメモリデバイス制御装置は、アダプタ102の新プロトコル生成部921とメモリデバイス103の新プロトコル制御部931との間において、新しいコマンドを定義する。新しいコマンドを定義することにより、コマンド処理のオーバヘッドを最小化することができる。
図10は、新プロトコルの生成シーケンスを示す模式図である。新プロトコル生成前のシーケンスは、アダプタ102において、ホストPC101で必要な情報を特定していなかった。具体的には、アダプタ102は、メモリデバイス103から、情報[1]〜[100]の100個の情報を定型的に取り出し、ホストPC101へ通知していた。つまり、アダプタ102は、ホストPC101で必要な情報が[10],[20],[21],[30]であったとしても、情報[1]〜[100]をメモリデバイス103から取得していたため、不必要な情報をメモリデバイス103からアダプタ102へ転送していることになる。メモリデバイス103から取得する情報が、動的に変化する情報であり、かつデータの書き込み及び読み出し時にコマンド発行が必要である場合、データ転送時間のオーバヘッドが発生し、転送時間が長くなってしまう。本実施の形態では、アダプタ102とメモリデバイス103との間において新プロトコルとして必要な情報を通知するコマンドを、新プロトコル生成部921と新プロトコル制御部931とで定義する。このような構成とすることにより、不必要な情報の送受信を減らすことができるのでデータの転送時間を短縮することができ、転送性能を上げることが可能になる。
さらに、ホストPC101とアダプタ102との間の通信プロトコルが、PCI−Express規格などのようにパケットでの通信を行うプロトコルである場合、アダプタ102とメモリデバイス103との間のコマンドを、パケット化に適したサイズを選択することができる。このような構成とすることにより、ホストPC101とアダプタ102との間のデータ転送を、さらに効率的に行うことが可能になる。
本実施の形態では、新プロトコル生成部921と新プロトコル制御部931との間において、新しいコマンドを定義することにより、コマンド処理のオーバヘッドを最小化することができる。よって、不必要な情報の送受信を減らすことができ、転送性能を上げることが可能になる。
すなわち、アダプタ102の新プロトコル生成部921により、ホストPC101側とメモリデバイス103側の転送の冗長部分を削除することにより、転送を効率化することができる。
本実施の形態におけるホストPC101は、本発明のホスト機器の一例である。本実施の形態におけるアダプタ102は、本発明のメモリデバイス制御装置の一例である。本実施の形態におけるメモリデバイス103は、本発明のメモリデバイスの一例である。本実施の形態における拡張機能有効化部121は、本発明の拡張機能有効化部の一例である。本実施の形態におけるデバイス情報要求部122は、本発明のデバイス情報要求部の一例である。本実施の形態における拡張機能制御部131は、本発明の拡張機能制御部の一例である。本実施の形態におけるデバイス情報通知部132は、本発明のデバイス情報通知部の一例である。本実施の形態における動作制約通知部611は、本発明の動作制約通知部の一例である。本実施の形態における拡張機能選択部621は、本発明の拡張機能選択部の一例である。本実施の形態における新プロトコル生成部921は、本発明の新プロトコル生成部の一例である。本実施の形態における新プロトコル制御部931は、本発明の新プロトコル制御部の一例である。
(実施の形態4)
図11は、メモリデバイスとメモリデバイス制御装置との間で転送可能なデータテーブルを示す模式図である。なお、図11に示すデータは、図9に示すメモリデバイスとメモリデバイス制御装置との間で転送されるデータである。
近年のホストPC101のメモリ管理方式は、限られた物理的なメモリ空間を有効に使うために、ページ単位で管理を行なっていることが多い。ページは、メモリデバイス103の記憶領域において離散的に配置されていることが多い。したがって、メモリデバイス103を直接ホストPC101へ接続してデータ転送を行う際には、ホストPC101は、メモリデバイス103からホストPC101へ転送するデータがどのページに対応するかを記載したリスト(SGリスト)を、メモリデバイス103から取得する。ホストPC101は、SGリストに従って、メモリデバイス103からデータを転送する。
このようなデータ転送を実行するためには、図11の処理OP1〜OP6に示すように、各ページ(例えば処理OP2)の転送が完了した時点で、次のページを知るためにSGリスト取得処理(例えば処理OP3)が必要となる。図11の処理OP1〜処理OP6に示す処理では、データ転送時のオーバヘッドが拡大し、メモリデバイス103からホストPC101へのデータ転送を効率的に行うことができない。
本実施の形態では、図11の処理OP7,OP8に示すように、アダプタ102内でページの連続領域を確保して転送する。これにより、データ転送途中のSGリスト取得処理が不要になる。よって、SGリスト取得処理のオーバヘッドを削減することができ、メモリデバイス103からホストPC101へのデータ転送を効率的に行うことが可能になる。
(実施の形態5)
図12は、ホストPC101とアダプタ102とメモリデバイス103との間におけるデータ転送の概念を示すブロック図である。なお、図12に示すデータ転送動作は、図9に示すメモリデバイスおよびメモリデバイス制御装置が実行することができる。
近年のホストPCは、主記憶領域の増大により、CPUは32ビット空間から64ビット空間への拡張が図られている。図12に示すように、32ビット空間にのみ対応しているメモリデバイス103を64ビット空間に対応しているホストPC101に接続し、メモリデバイス103からホストPC101へデータ転送を行う場合には、ホストPC101は、自身の32ビット空間へデータを転送した後、そのデータの複製を作成する。したがって、ホストPC101において、無駄な処理が発生していた。
本実施の形態では、上記のような無駄な処理の発生を無くすことができる。まず、メモリデバイス103からアダプタ102へデータ転送を行う。具体的には、アダプタ102は、ホストPC101からの転送要求を受けた場合、メモリデバイス103に転送要求を発行する。アダプタ102が発行する転送要求は、アダプタ102内部のバッファ(32ビット空間以内に配置)に対してデータ転送を行う転送要求である。アダプタ102は、メモリデバイス103から自身のバッファへ転送されたデータを、ホストPC101が要求したアドレス(64ビット空間に対応)へ転送する。
アダプタ102は、32ビット空間にのみ対応しているメモリデバイス103のプロトコルを、64ビット空間へデータを転送可能なプロトコルへ変換する。したがって、ホストPC101がアダプタ102に対して64ビット空間への対応を要求した場合、アダプタ102は、32ビット空間にのみ対応しているメモリデバイス103から読み出したデータを、ホストPC101における64ビット空間へ転送することができる。これにより、ホストPC101における無駄な処理を不要にすることができ、効率的に処理を行うことが可能になる。
(実施の形態6)
図13は、本発明の実施の形態6におけるメモリデバイスおよびメモリデバイス制御装置のブロック図である。
ホストPC101は、パーソナルコンピューターなどに代表される情報処理装置である。ホストPC101は、中央演算処理装置(CPU)、ハードディスクドライブ(HDD)、ランダムアクセスメモリ(RAM)を備えている。アダプタ102は、ホストPC101とメモリデバイス103とに接続することができる。メモリデバイス103は、フラッシュメモリなどの不揮発性メモリを搭載している。メモリデバイス103は、少なくともデータを書き込みまたは読み出し可能な記憶素子を内蔵していればよい。
メモリデバイス103は、フラッシュメモリの管理単位でストライピングの基本単位であるフラッシュメモリモジュールA(1330)、フラッシュメモリモジュールB(1331)、フラッシュメモリモジュールC(1332)、およびフラッシュメモリモジュールD(1333)を備えている。メモリデバイス103は、フラッシュメモリモジュール1330〜1333に対するデータの書き込み及び読み出し制御を行うメモリコントローラー1334を備えている。
アダプタ102は、共有メモリ1321、インターフェース制御部1322、CPU1323、領域カウンタ1324、および領域判別部1325を備えている。共有メモリ1321は、メモリデバイス103とホストPC101との間のデータの受け渡しを行うことができる。インターフェース制御部1322は、ホストPC101側のインターフェースとメモリデバイス103側のインターフェースとの接続を制御することができる。CPU1323は、アダプタ102全体のシーケンスを制御することができる。領域カウンタ1324は、フラッシュメモリモジュール1330〜1333におけるデータ転送が完了した領域を管理することができる。領域判別部1325は、フラッシュメモリモジュール1330〜1333に含まれる記憶領域のうち、データ転送が完了した領域を判別する。
図14は、ホストPC101、アダプタ102、メモリデバイス103間におけるコマンド及びデータ転送の流れを示すタイミングチャートである。図14を参照して、PCIバス、PCI−Expressバスなど、汎用のPCインターフェースを経由した転送(メモリデバイス103からホストPC101への転送)を行う場合の処理について説明する。なお、データの転送方式は、DMA(Direct Memory Access)転送方式を用いた。
図14(a)は、ホストPC101からアダプタ102へのコマンドである。図14(b)は、メモリデバイス103からアダプタ102へのDMA転送の処理である。図14(c)は、アダプタ102からホストPC101へのDMA転送の処理である。
まず、アダプタ102は、ホストPC101からコマンド1を受けると、メモリデバイス103からデータ1の転送が行われる。PCI規格、PCI−Express規格上、転送の順序は問わない。データ転送の順序は、メモリデバイス103内の処理に依存するため、アダプタ102は、メモリデバイス103からデータ1の転送が完了した後に、ホストPC101へのDMA転送(データ1)を開始する。したがって、ホストPC101は、アダプタ102からのDMA転送が完了しなければ、次のコマンド(コマンド2)を発行しない。そのため、メモリモジュール103からホストPC101へデータが届くまでのレイテンシ時間は、メモリデバイス103からアダプタ102へのDMA転送時間に、アダプタ102からホストPC101へのDMA転送時間を加えた時間になる。したがって、メモリモジュール103に記憶されている映像データ(動画)を再生する時などにおいては、ユーザーがホストPC101に再生命令を入力してから、表示装置に映像が表示されるまでの時間が長くなってしまう。
図15を参照して、ホストPC101から見たときのメモリデバイス103内のデータのアドレス順序を説明する。フラッシュメモリモジュールA(1330)、フラッシュメモリモジュールB(1331)、フラッシュメモリモジュールC(1332)、フラッシュメモリモジュールD(1333)の順でストライピングする場合、アドレス順序は、フラッシュメモリモジュールA(1330)、フラッシュメモリモジュールB(1331)、フラッシュメモリモジュールC(1332)、フラッシュメモリモジュールD(1333)の順に繰り返し振られていくことになる。フラッシュメモリモジュールA(1330)のアドレス順は、アドレス0,アドレス4,アドレス8,アドレス12となる。
フラッシュメモリモジュール1330〜1333は、各々独立して並列に動作しているために、メモリデバイス103から転送されるそれぞれのフラッシュメモリモジュール1330〜1333間でのデータの順序は決められない。しかし、それぞれのフラッシュメモリモジュール1330〜1333内でのデータの順は、決めることが可能である。つまり、フラッシュメモリモジュールA(1330)においては、アドレス0、アドレス4、アドレス8、アドレス12の順でデータを出力することができる。したがって、この出力順をメモリデバイス103で規定することにより、メモリデバイス103からすべてのデータの転送が完了する前に、メモリデバイス103から出力されたデータを特定することが可能になる。
具体的には、領域判別部1325は、それぞれのフラッシュメモリモジュール1330〜1333単位で転送されたデータを判別し、判別結果を領域カウンタ1324へ送る。領域カウンタ1324は、転送が完了したストライピング単位のデータ(以下、ストライプデータ)を管理する。管理データの例を、図16を参照して説明する。
図16は、フラッシュメモリモジュールA(1330)において、アドレス0とアドレス4が転送完了し、「転送済」を表すフラグを立てて転送が完了したことを管理している図である。領域判別部1325は、例えば、それぞれのフラッシュメモリモジュール1330〜1333のストライプデータの最後のデータが転送されたかどうかで、転送が完了したことを判断することができる。また、メモリデバイス103のストライピング構成の情報を取得するには、実施の形態1にかかる方法で取得することができる。
本実施の形態によれば、メモリデバイス103からアダプタ102へのデータ転送を、フラッシュメモリモジュール1330〜1333におけるストライピング単位で管理するため、ホストPC101がデータを取得するまでのレイテンシ時間を短くすることが可能になる。
図17は、本実施の形態にかかるホストPC101、アダプタ102、メモリデバイス103間におけるコマンド及びデータ転送の流れを示すタイミングチャートである。図17に示すように、メモリデバイス103からアダプタ102へDMA転送を実行する場合、フラッシュメモリモジュール1330〜1333から所定のストライピング単位分の転送が完了した時点T1で、アダプタ102からホストPC101への転送を開始することが可能になる。したがって、ホストPC101がデータを取得するまでのレイテンシ時間を短くすることが可能になる。
また、本実施の形態によれば、メモリデバイス103のそれぞれのフラッシュメモリモジュール内での転送順序を固定し、アダプタ102がフラッシュメモリモジュールごとに領域判別部1325で転送経過を確認することができる。このような構成とすることにより、ホストPC101への転送開始までの時間を短縮することができ、高速な転送が可能になる。
なお、本実施の形態において、フラッシュメモリモジュールとして、4つのモジュール構成で説明したが、4つ以外の構成でも良い。
また、本実施の形態では、所定のストライピング単位をアドレス0のデータとしたが、他のストライピング単位としてもよい。例えば、メモリデバイス103からアダプタ102へアドレス0とアドレス1のデータ転送後、アダプタ102からホストPC101へアドレス0とアドレス1のデータを転送する構成とすることができる。
(実施の形態7)
図18は、本発明の実施の形態7におけるメモリデバイスおよびメモリデバイス制御装置のブロック図である。
ホストPC101は、パーソナルコンピューターなどに代表される情報処理装置である。アダプタ102は、ホストPC101とメモリデバイス1830〜1833とに接続することができる。メモリデバイス1830〜1833は、フラッシュメモリなどの不揮発性メモリを搭載している。メモリデバイス1830〜1833は、少なくともデータを書き込みまたは読み出し可能な記憶素子を内蔵していればよい。
アダプタ102は、共有メモリ1321、インターフェース制御部1322、データ送出制御部1821、および速度計測部1822を備えている。共有メモリ1321は、メモリデバイス1830〜1833とホストPC101との間のデータの受け渡しを行うことができる。インターフェース制御部1322は、ホストPC101側のインターフェースとメモリデバイス103側のインターフェースとの接続を制御することができる。データ送出制御部1821は、ホストPC101へ設定された所定の転送条件に従ってデータを転送するよう制御する。速度計測部1822は、データ送出制御部1821の転送条件ごとに転送速度を計測して、計測結果を保持する。アダプタ102は、メモリデバイスA(1830)、メモリデバイスB(1831)、メモリデバイスC(1832)、およびメモリデバイスD(1833)の全てあるいは少なくともいずれか一つに接続可能である。
ホストPC101は、ハードディスクドライブ(HDD)1811を備えている。HDD1811は、ホストPC101内で利用するデータを蓄積するとともに、アダプタ102との間でデータ転送を行うためのデータを蓄積することができる。
ホストPC101が複数のメモリデバイス1830〜1833へアクセスを行った場合、データ送出制御部1821は、メモリデバイス1830〜1833からのアクセスが所定の条件を満たした場合に、メモリデバイス1830〜1833からホストPC101へデータの転送を行う。具体的には、データ送出制御部1821は、タイマーによる所定のタイムスライス間隔や、所定のデータサイズごとにデータ転送を行うよう制御する。速度計測部1822は、データ送出制御部1821におけるタイムスライス間隔またはデータサイズを変更し、転送速度の変化を計測し、性能が引き出せる設定値(タイムスライス間隔、データサイズ)を特定する。
図19は、データ転送の概念を示すブロック図である。図19に示すように、メモリデバイスA(1830)は、ファイル0Aとファイル0Bとを記憶している。メモリデバイスB(1831)は、ファイル1Aとファイル1Bとを記憶している。メモリデバイスC(1832)は、ファイル2Aとファイル2Bとを記憶している。メモリデバイスD(1833)は、ファイル3Aとファイル3Bとを記憶している。図19は、ホストPC101がアダプタ102経由で、メモリデバイスA(1830)のファイル0A、メモリデバイスB(1831)のファイル1A、メモリデバイスC(1832)のファイル2A、およびメモリデバイスD(1833)のファイル3Aを読み出した場合のデータの流れを示している。
ファイルは、バスまたはメモリデバイスにおけるデータ転送速度、バスまたはメモリデバイスのバッファサイズに応じて分断化されて、アダプタ102に転送される。たとえば、メモリデバイスA(1830)のファイル0Aは、データ0A(0),データ0A(1),データ0A(2)に分割されて、アダプタ102に転送される。メモリデバイスB(1831)のファイル1Aは、データ1A(0),データ1A(1),データ1A(2)に分割されて、アダプタ102に転送される。メモリデバイスC(1832)のファイル2Aは、データ2A(0),データ2A(1),データ2A(2)に分割されて、アダプタ102に転送される。メモリデバイスD(1833)のファイル3Aは、データ3A(0),データ3A(1),データ3A(2)に分割されて、アダプタ102に転送される。これらの分割されたデータは、アダプタ102への到着順に、アダプタ102からホストPC101へ転送される。図19に示す例では、データ0A(0)、データ1A(0),データ2A(0),データ3A(0)の順で、ホストPC101へ転送される。
図20は、HDD1811へのアクセス動作を説明するための模式図である。ホストPC101におけるHDD1811のアクセス動作について、図20を参照して説明する。HDD1811に記録されたファイルは、通常、HDD1811における記憶領域に連続して配置される。図20に示すように、HDD1811に記録されたファイルは、ファイル0A、ファイル1A、ファイル2A、ファイル3Aのように物理的に連続した領域が確保される。これらのファイルに対して、データ0A(0)、データ1A(0)、データ2A(0)の順でアクセスすると、各データにアクセスするたびにHDD1811のヘッドが移動(ヘッドシーク)する。ヘッドシークは、物理的にヘッドが移動するために、移動時間が長く、データ転送速度が低下するということにつながる。
図21は、データ送出制御部1821により、所定の条件を満たした上で転送した場合の転送動作を説明するための図である。図21に示すように、ファイル0Aにおいては、データ0A(0)、データ0A(1)、データ0A(2)、データ0A(3)をまとめて転送する。図21に示す例では、データ0A(0)、データ0A(1)、データ0A(2)、データ0A(3)の転送を行った後に、ヘッドシークが発生する。ファイル1A、ファイル2A、ファイル3Aへのアクセスも、ファイル0Aへのアクセス時と同様に動作する。図21に示すアクセス方法によれば、ヘッドシークの発生回数が、図20に示すアクセス方法におけるヘッドシークの発生回数の4分の1になり、全体の転送速度が向上する。
本実施の形態によれば、アダプタ102に、データ送出制御部1821を設けてホストPC101へのデータ転送を行う条件を設定することにより、ホストPC101内にHDD1821のようにシークにより転送時間が低下するデバイスに対しても、転送速度の低下を最低限にすることができる。
(実施の形態8)
図22は、実施の形態8にかかるメモリデバイス及びメモリデバイス制御装置間のデータ転送の具体例を示すシーケンス図である。図22は、主にアダプタ102とメモリデバイス103との間におけるコマンドやデータの送受信の具体例を示す。なお、図22に示すコマンドやデータは一例であり、本発明は図22に示す内容に限定されない。また、図22に示すシーケンスは、実施の形態1〜7にかかるメモリデバイス及びメモリデバイス制御装置に適用可能である。
図23は、規格情報のデータ構造を示す模式図である。
まず、ホストPC101とアダプタ102とが接続されていることを前提とする。ホストPC101は、所定時間(例えば1秒)おきに、アダプタ102におけるメモリデバイス103の接続状態を監視している。アダプタ102は、メモリデバイス103が接続された場合、メモリデバイス103に対してデバイス情報を要求する(S1)。
メモリデバイス103は、アダプタ102からデバイス情報の要求があれば、デバイス情報を発行する(S2)。デバイス情報は、例えばベンダーID、デバイスIDを含む。ベンダーIDは、メモリデバイス103のベンダー名などのベンダー固有の情報である。デバイスIDは、メモリデバイスの品番情報やシリアル番号などのデバイス固有の情報である。
アダプタ102は、デバイス情報を受け取ると、メモリデバイスの初期設定を開始する(S3)。処理S1〜S3は、CardBus規格に基づく物理的接続を確立する処理である。
次に、アダプタ102は、Identify_Device命令をメモリデバイス103へ送る(S4)。
メモリデバイス103は、アダプタ102から送られるIdentify_Device命令に対して、規格情報2200を返す(S5)。規格情報2200は、図23に示すように、ATA規格(ATA:Advanced Technology Attachment)に関する情報2201と、ベンダーユニーク情報2202とを含む。ATA規格に関する情報2201は、メモリデバイス103の容量の情報、ATAプロトコルのバージョン情報、デバイスの名称情報などが含まれている。ベンダーユニーク情報2202は、データのバス幅、ストライプ情報などが含まれている。ベンダーユニーク情報2202は、図23に示すように拡張機能情報2203を含む。拡張機能情報2203は、メモリデバイス103が拡張機能に対応しているか否かを表すフラグである。拡張機能情報2203におけるフラグが「1」の場合は、拡張機能に対応していることを表している。拡張機能は、例えば66MHzの動作周波数で動作可能な機能である。
アダプタ102は、メモリデバイス103から送られる規格情報に基づき、初期設定を行う(S6)。処理S4〜S6を実行することにより、ホストPC101は、メモリデバイス103へのデータの書き込み及びメモリデバイス103からのデータの読み出しの制御が可能な状態になる。なお、処理S4〜S6は、ATA規格上で動作する処理である。
図24は、拡張機能を有効化する処理を示すフローチャートである。まず、アダプタ102は、接続されたメモリデバイス103の規格情報を参照し(S11)、接続されたメモリデバイス103が拡張機能に対応したメモリデバイスであるか否かを判断する(S12)。アダプタ102は、メモリデバイス103が拡張機能に対応しているメモリデバイスであると判断した場合、規格情報2200内の拡張機能情報2203(図23参照)を参照する(S13)。アダプタ102は、拡張機能情報2203のフラグが「1」であると判断した場合(S14のYES判断)、拡張機能を有効化する。具体的には、アダプタ102は、66MHzの動作周波数でメモリデバイス103にアクセス可能な状態に初期設定する(S15)。
一方、アダプタ102は、接続されたメモリデバイス103が拡張機能に対応していないメモリデバイスであると判断した場合(S12におけるNO判断)、デフォルトの動作周波数である33MHzでメモリデバイス103にアクセス可能な状態に初期設定する(S16)。また、アダプタ102は、拡張機能情報2203のフラグが「0」であると判断した場合(S14のNO判断)、デフォルトの動作周波数である33MHzでメモリデバイス103にアクセス可能な状態に初期設定する(S16)。
本実施の形態によれば、アダプタ102は、接続されたメモリデバイス103が拡張機能に対応し、かつ拡張機能情報のフラグが「1」に設定されていると判断した場合、拡張機能を有効化し、メモリデバイス103に対して動作周波数66MHzでアクセス可能な状態にする。したがって、アダプタ102は、メモリデバイス103に最適な動作周波数でアクセスが可能となる。
なお、本実施の形態では,CardBus規格及びATA規格に準拠したアダプタ102及びメモリデバイス103について説明したが、本発明のメモリデバイス及びメモリデバイス制御装置は、これらの規格に限定されない。
本実施の形態に関して、以下の付記を開示する。
(付記1)
メモリデバイスを接続可能なメモリデバイス制御装置であって、
当該メモリデバイス制御装置に前記メモリデバイスが接続されたことを認識した時に、前記メモリデバイスに対してデバイス情報を要求するデバイス情報要求部と、
前記デバイス情報要求部で取得した前記デバイス情報に基づき、前記メモリデバイスの拡張機能を有効化する拡張機能有効化部とを備え、
前記メモリデバイスにおける前記拡張機能を用いて前記メモリデバイスへアクセスを行う、メモリデバイス制御装置。
(付記2)
前記拡張機能有効化部は、
前記デバイス情報要求部が取得した前記デバイス情報に拡張情報が含まれているか判断し、
前記拡張情報が含まれている場合は、前記メモリデバイスにおける拡張機能を用いて前記メモリデバイスにアクセスを行う、付記1記載のメモリデバイス制御装置。
(付記3)
前記デバイス情報要求部は、動作クロックの最大動作周波数をデバイス情報として前記メモリデバイスから受け取り、
前記拡張機能有効化部は、最大動作周波数で動作することを要求する、付記1または2記載のメモリデバイス制御装置。
(付記4)
前記デバイス情報要求部は、最大データバス幅をデバイス情報として受け取り、
前記拡張機能有効化部は、最大データバス幅で動作することを要求する、付記1から3のうちいずれか一項に記載のメモリデバイス制御装置。
(付記5)
前記デバイス情報要求部は、ストライピング構成をデバイス情報として受け取り、
内部バッファの管理をストライピングサイズで行う、付記1から4のうちいずれか一項に記載のメモリデバイス制御装置。
(付記6)
動作制約と前記メモリデバイスからのデバイス情報とをもとに、有効にする拡張機能を選択する拡張機能選択部を、さらに備えた、付記1から5のうちいずれか一項に記載のメモリデバイス制御装置。
(付記7)
ホスト機器とアダプタとを備え、メモリデバイスを制御可能なメモリデバイス制御装置であって、
前記ホスト機器は、前記アダプタに対して動作制約を通知する動作制約通知部を備え、
前記アダプタは、前記動作制約通知部からの動作制約とメモリデバイスから取得したデバイス情報とをもとに、有効にする拡張機能を選択する拡張機能選択部を備えた、メモリデバイス制御装置。
(付記8)
前記拡張機能選択部は、
前記動作制約の下限の制限値を満たす拡張機能とパラメータとを求め、
次に、前記動作制約の上限の制約値を超えないように性能を高める拡張機能とパラメータとを求める、付記7記載のメモリデバイス制御装置。
(付記9)
前記デバイス情報通知部からのデバイス情報と前記動作制約通知部からの動作制約とから冗長部分を削減した新プロトコルを生成する新プロトコル生成部を、さらに備え、
前記メモリデバイスへ前記新プロトコルを通知して、前記新プロトコルでアクセスを行う、付記7または8に記載のメモリデバイス制御装置。
(付記10)
前記新プロトコル生成部は、前記メモリデバイスの標準のコマンド内で受け渡しする情報の中から、前記ホスト機器の制御に必要な情報のみを受け渡しする新コマンドを生成する、付記9記載のメモリデバイス制御装置。
(付記11)
前記新プロトコル生成部は、前記ホスト機器とのデータ転送のアクセス単位と同サイズの情報を受け渡しする新コマンドを生成する、付記9記載のメモリデバイス制御装置。
(付記12)
前記新プロトコル生成部は、前記アダプタ内に所定サイズのバッファを設けて前記メモリデバイス間の転送を物理的に連続した領域への転送に変換する、付記9記載のメモリデバイス制御装置。
(付記13)
前記新プロトコル生成部は、前記アダプタ内のバッファに蓄積後、前記ホスト機器のアドレス空間に変換して転送する、付記9記載のメモリデバイス制御装置。
(付記14)
メモリデバイス制御装置とインターフェースを介して接続可能なメモリデバイスであって、
当該メモリデバイスの拡張機能を制御する拡張機能制御部と、
前記メモリデバイス制御装置からの要求に対して前記メモリデバイス制御装置にデバイス情報を通知するデバイス情報通知部とを備え、
前記拡張機能制御部は、前記メモリデバイス制御装置からの拡張機能の有効化の要求に対して拡張機能を有効にする、メモリデバイス。
(付記15)
前記デバイス情報通知部は、動作クロックの最大動作周波数をデバイス情報として通知し、
前記メモリデバイス制御装置からの最大動作周波数で動作することの要求を受けて、前記メモリデバイス制御装置からの拡張機能を用いたアクセスに応答する、付記14記載のメモリデバイス。
(付記16)
前記デバイス情報通知部は、最大データバス幅をデバイス情報として通知し、
前記メモリデバイス制御装置からの最大データバス幅で動作することの要求を受けて、前記メモリデバイス制御装置からの拡張機能を用いたアクセスに応答する、付記14または15に記載のメモリデバイス。
(付記17)
前記デバイス情報通知部は、ストライピング構成をデバイス情報として通知し、
前記メモリデバイス制御装置からの最大データバス幅で動作することの要求を受けて、前記メモリデバイス制御装置からの拡張機能を用いたアクセスに応答する、付記14から16のうちいずれか一項に記載のメモリデバイス。
(付記18)
前記メモリデバイス制御装置が生成した新プロトコルに対応する新プロトコル制御部を、さらに備えた、付記14から17のうちいずれか一項に記載のメモリデバイス。
本発明にかかるメモリデバイスおよびメモリデバイス制御装置は、従来の標準PCのインターフェースで接続するメモリデバイスなどを、標準PCのより高速なインターフェースで接続する場合、標準PCとメモリデバイスの性能を最大限に引き出すことが可能になる装置である。したがって、パーソナルコンピュータ(PC)やディジタルカメラなどの記録媒体として利用される不揮発性メモリデバイスなどのメモリデバイスおよびメモリデバイス制御装置として有用である。
101 ホストPC
102 アダプタ
103 メモリデバイス
121 拡張機能有効化部
122 デバイス情報要求部
131 拡張機能制御部
132 デバイス情報通知部
611 動作制約通知部
621 拡張機能選択部
921 新プロトコル生成部
931 新プロトコル制御部
1321 共有メモリ
1322 IF制御部
1323 CPU
1324 領域カウンタ
1325 領域判別部
1330 フラッシュメモリモジュール0
1331 フラッシュメモリモジュール1
1332 フラッシュメモリモジュール2
1333 フラッシュメモリモジュール3
1811 HDD
1821 データ送出制御部
1822 速度計測部
1830 メモリデバイス0
1831 メモリデバイス1
1832 メモリデバイス2
1833 メモリデバイス3

Claims (1)

  1. メモリデバイスを接続可能なメモリデバイス制御装置であって、
    当該メモリデバイス制御装置に前記メモリデバイスが接続されたことを認識した時に、前記メモリデバイスに対してデバイス情報を要求するデバイス情報要求部と、
    前記デバイス情報要求部で取得した前記デバイス情報に基づき、前記メモリデバイスの拡張機能を有効化する拡張機能有効化部とを備え、
    前記メモリデバイスにおける前記拡張機能を用いて前記メモリデバイスへアクセスを行うとともに、
    前記デバイス情報要求部は、ストライピング構成をデバイス情報として受け取り、
    ストライピング単位でデータ転送が完了した領域を判別する領域判定部と転送が完了したストライピング単位のデータを管理する領域カウンタによってストライピングサイズで内部バッファの管理を行い、前記メモリデバイスから当該メモリデバイス制御装置に転送されたデータのホスト機器への転送を開始する、メモリデバイス制御装置。
JP2009160941A 2008-07-15 2009-07-07 メモリデバイス、メモリデバイス制御装置 Active JP5244037B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009160941A JP5244037B2 (ja) 2008-07-15 2009-07-07 メモリデバイス、メモリデバイス制御装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008184044 2008-07-15
JP2008184044 2008-07-15
JP2009160941A JP5244037B2 (ja) 2008-07-15 2009-07-07 メモリデバイス、メモリデバイス制御装置

Publications (2)

Publication Number Publication Date
JP2010044750A JP2010044750A (ja) 2010-02-25
JP5244037B2 true JP5244037B2 (ja) 2013-07-24

Family

ID=41531265

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009160941A Active JP5244037B2 (ja) 2008-07-15 2009-07-07 メモリデバイス、メモリデバイス制御装置

Country Status (2)

Country Link
US (1) US10565137B2 (ja)
JP (1) JP5244037B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291146B2 (en) * 2010-07-15 2012-10-16 Ati Technologies Ulc System and method for accessing resources of a PCI express compliant device
JP2023127385A (ja) 2022-03-01 2023-09-13 キオクシア株式会社 メモリシステム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7380092B2 (en) * 2002-06-28 2008-05-27 Rambus Inc. Memory device and system having a variable depth write buffer and preload method
TW276312B (ja) * 1992-10-20 1996-05-21 Cirrlis Logic Inc
US5604843A (en) * 1992-12-23 1997-02-18 Microsoft Corporation Method and system for interfacing with a computer output device
US5678065A (en) * 1994-09-19 1997-10-14 Advanced Micro Devices, Inc. Computer system employing an enable line for selectively adjusting a peripheral bus clock frequency
JP3503272B2 (ja) * 1995-05-29 2004-03-02 カシオ計算機株式会社 アダプタシステムと当該システムに用いる拡張アダプタおよび記憶装置
US5822251A (en) * 1997-08-25 1998-10-13 Bit Microsystems, Inc. Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers
US6240480B1 (en) * 1998-05-07 2001-05-29 Advanced Micro Devices, Inc. Bus bridge that provides selection of optimum timing speed for transactions
JP2001027921A (ja) * 1999-07-15 2001-01-30 Mitsubishi Electric Corp Pcカードインターフェースおよびpcカード
JP5090591B2 (ja) * 2000-04-12 2012-12-05 ソニー株式会社 電子装置の制御方法,電子装置及び電子装置の機能の認識方法
JP2004046498A (ja) * 2002-07-11 2004-02-12 Toshiba Corp 情報処理装置
EP1553519B1 (en) * 2002-10-15 2012-01-25 Panasonic Corporation Adapter, memory card, and memory card module
AU2003303995A1 (en) 2003-03-12 2004-09-30 Matsushita Electric Industrial Co., Ltd. Camera recorder and data recording medium
JP3603079B2 (ja) * 2003-03-12 2004-12-15 松下電器産業株式会社 カメラレコーダおよびデータ記録媒体
JP4311288B2 (ja) * 2004-06-30 2009-08-12 パナソニック株式会社 記憶装置
JP2006195948A (ja) 2004-12-16 2006-07-27 Matsushita Electric Ind Co Ltd バスアダプタ装置
US20070180186A1 (en) * 2006-01-27 2007-08-02 Cornwell Michael J Non-volatile memory management
JP2008003820A (ja) * 2006-06-22 2008-01-10 Matsushita Electric Ind Co Ltd 不揮発性記憶装置及びアダプタ装置
US7596643B2 (en) * 2007-02-07 2009-09-29 Siliconsystems, Inc. Storage subsystem with configurable buffer
EP2141634A4 (en) * 2007-04-20 2011-11-02 Panasonic Corp INSERT / REMOVE DETECTOR
US7624211B2 (en) * 2007-06-27 2009-11-24 Micron Technology, Inc. Method for bus width negotiation of data storage devices
US8347005B2 (en) * 2007-07-31 2013-01-01 Hewlett-Packard Development Company, L.P. Memory controller with multi-protocol interface
US20090292838A1 (en) * 2008-05-20 2009-11-26 Ling Jun Wong Simplified data transfer using intermediary
US8166316B2 (en) * 2008-06-27 2012-04-24 Oracle America, Inc. Single interface access to multiple bandwidth and power memory zones

Also Published As

Publication number Publication date
US10565137B2 (en) 2020-02-18
JP2010044750A (ja) 2010-02-25
US20100017541A1 (en) 2010-01-21

Similar Documents

Publication Publication Date Title
TWI390520B (zh) 包含快閃式介面的硬碟驅動器之可調整儲存系統
TWI426444B (zh) 包含快閃式介面的硬碟驅動器之可調整儲存系統
CN101908379B (zh) 基于访问时间调整对非易失性半导体存储器的访问
EP1389760B1 (en) Data transfer control system, program and data transfer control method
JP5551512B2 (ja) 通信制御装置、データ通信方法及びプログラム
JP4992835B2 (ja) ディスク記憶装置およびプログラム
JP2002541554A (ja) ユニバーサル・シリアル・バスに基づくpcフラッシュディスクのためのアーキテクチャ
JPWO2004077306A1 (ja) Sdioコントローラ
TW201626242A (zh) 用於低電力記憶體裝置之通用晶粒實作技術
KR20210038313A (ko) 레이턴시에 중점을 둔 판독 동작과 대역폭에 중점을 둔 판독 동작 사이의 동적 변경
US20160335206A1 (en) System and method for direct memory access in a flash storage
KR20130107070A (ko) Ssd 콘트롤러 및 그의 제어 방법
CN116225998A (zh) Dma数据传输系统
JP5244037B2 (ja) メモリデバイス、メモリデバイス制御装置
US9990311B2 (en) Peripheral interface circuit
JP2010026592A (ja) メモリデバイスおよびメモリデバイス制御装置
JP2004500656A (ja) データ・トランザクション・アクセス・システムおよび方法
JP2005234794A (ja) ファイルシステム制御装置
US20040167999A1 (en) Data transfer control device, electronic instrument, program and method of fabricating electronic instrument
CN112732166B (zh) 访问固态硬盘的方法及装置
JP2003186582A (ja) メモリカードコントローラ及びメモリカードコントロール方法
JP7372385B1 (ja) 情報処理装置および制御方法
JP2007011659A (ja) インターフェース装置、ディスクドライブ及びインターフェース制御方法
JP2008299747A (ja) Usbホストシステム及び転送データの転送方法
JP7506125B2 (ja) ストレージデバイス、及び情報処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120710

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120910

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130326

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130405

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160412

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5244037

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150