JP6517549B2 - メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム - Google Patents

メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム Download PDF

Info

Publication number
JP6517549B2
JP6517549B2 JP2015050896A JP2015050896A JP6517549B2 JP 6517549 B2 JP6517549 B2 JP 6517549B2 JP 2015050896 A JP2015050896 A JP 2015050896A JP 2015050896 A JP2015050896 A JP 2015050896A JP 6517549 B2 JP6517549 B2 JP 6517549B2
Authority
JP
Japan
Prior art keywords
storage device
address space
address
information
specific
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
JP2015050896A
Other languages
English (en)
Other versions
JP2016170696A (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.)
Kioxia Corp
Original Assignee
Toshiba Memory Corp
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 Toshiba Memory Corp filed Critical Toshiba Memory Corp
Priority to JP2015050896A priority Critical patent/JP6517549B2/ja
Priority to US14/922,577 priority patent/US20160266827A1/en
Publication of JP2016170696A publication Critical patent/JP2016170696A/ja
Application granted granted Critical
Publication of JP6517549B2 publication Critical patent/JP6517549B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Computer Security & Cryptography (AREA)

Description

本発明の実施形態は、メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラムに関する。
高速化を続けるSSD(Solid State Drive)において、バスインタフェースにPCIe(Peripheral Components Interconnect Express)を採用するものが普及しつつある。PCIeは、PC、サーバ等のコンピュータにグラフィックカード等の拡張デバイスを接続するためのインタフェースであり、拡張デバイス内の記憶領域をシステムメモリのアドレス空間の特定の領域として割当てることが可能である。この機能を用いることで、ホストプロセッサは、アクセスすべき記憶領域を示すメモリアドレスを用いて拡張デバイス内の記憶領域に対して読出し及び書込みを行うことが可能となる。
不揮発性メモリと、ホストプロセッサがメモリアドレスでアクセス可能なRAMとを有し、電源遮断時にRAMに記憶されているデータを不揮発性メモリに退避させ、電源復帰時に退避させたデータを不揮発性メモリから読み出すことによりRAMの状態を復旧させる記憶装置がある。
また、不揮発性メモリと、ホストプロセッサがメモリアドレスでアクセス可能なRAMとを有し、メモリアドレスと対応する不揮発性メモリの記憶位置をテーブルで管理する記憶装置がある。
米国特許出願公開第2013/0205065号公報 米国特許第8683131号公報 NVM Express http://www.nvmexpress.org/wp-content/uploads/NVM-Express-1_1b.pdf
記憶装置のバックアップ、スナップショットの作成等を行う際には、記憶装置間でデータ転送を行う必要がある。一般的なコンピュータアーキテクチャでは、SSD、HDD(Hard Disk Drive)等の記憶装置は、ホストコンピュータの主記憶領域の二次記憶領域として使用される。ホストコンピュータの主記憶領域は、当該記憶装置にとっては外部メモリとなる。そのため、SATA(Serial Advanced Technology Attachment))、NVMe(Non-Volatile Memory Express)等の記憶装置向けインタフェースは、主記憶領域と記憶装置内の記憶領域との間でのデータ転送を前提とした設計がなされている。そのため、記憶装置間でデータ転送を行う場合には、記憶装置外の主記憶領域(外部メモリ)を中継したデータ転送を行わなければならない。
そこで、以下の実施形態では、外部メモリを中継することなく複数の記憶装置間におけるデータ転送を可能にすることを目的とする。
実施形態のメモリコントローラは、記憶装置と他の記憶装置との間で行われるデータ転送を制御するメモリコントローラであって、データ転送中におけるデータの読出し位置又は書込み位置である第1の記憶領域を示す第1のアドレス情報を含むコマンド情報を取得する取得部と、第1の記憶領域が、外部メモリの特定のアドレス空間である特定外部アドレス空間に属するかを判定する判定部と、第1の記憶領域が特定外部アドレス空間に属する場合に、特定外部アドレス空間と記憶装置に実装されたメモリの特定のアドレス空間である特定内部アドレス空間との対応関係を示す変換情報に基づいて、第1のアドレス情報を特定内部アドレス空間に属する第2の記憶領域を示す第2のアドレス情報に変換する変換部と、第1のアドレス情報を含むコマンド情報、又は第1のアドレス情報が第2のアドレス情報に変換されたコマンド情報に基づいてデータを転送する転送部とを備えることを特徴とする。
第1の実施形態のデータ転送システムの構成を例示する図。 コマンド情報を例示する図。 データサイズを示す情報を含むアドレス情報を例示する図。 外部アドレス空間情報を例示する図。 特定外部アドレス空間に含まれる記憶領域(第1のアクセス位置)を特定内部アドレス空間に含まれる記憶領域(第2のアクセス位置)に変換する処理を模式的に示す図。 第1の実施形態のデータ転送システムのハードウェア構成を例示する図。 第1の記憶装置における処理の流れを例示するフローチャート。 第1の実施形態のデータ転送システムにおける読出し処理の流れを例示するフローチャート。 第1の実施形態のデータ転送システムにおける書込み処理の流れを例示するフローチャート。 第2の実施形態のデータ転送システムの構成を例示する図。 第2の実施形態のデータ転送システムにおける読出し処理の流れを例示するフローチャート。 第2の実施形態のデータ転送システムにおける書込み処理の流れを例示するフローチャート。 第3の実施形態のデータ転送システムの構成を例示する図。 第3の実施形態のデータ転送システムにおける読出し及び書込み処理の流れを例示するフローチャート。 第4の実施形態のデータ転送システムの構成を例示する図。 第4の実施形態のデータ転送システムにおける読出し及び書込み処理の流れを例示するフローチャート。
(第1の実施形態)
図1は、第1の実施形態におけるデータ転送システム1の構成を例示する図である。データ転送システム1は、第1の記憶装置11(記憶装置)、第2の記憶装置12(他の記憶装置)、及び外部メモリ13を含む。
第1の記憶装置11と第2の記憶装置12との間でデータ転送が行われる。第1の記憶装置11及び第2の記憶装置12はSSDであることを想定するが、これに限定されるものでない。外部メモリ13はホストコンピュータのRAMを含む主記憶領域であることを想定するが、これに限定されるものではない。本実施形態においては、データ転送が外部メモリ13を中継して行われる場合と、第1の記憶装置11と第2の記憶装置12との間で直接行われる場合とがある。
第1の記憶装置11は、不揮発性メモリ21、揮発性メモリ22、メモリコントローラ23、及び転送部24を含む。
不揮発性メモリ21は、第1の記憶装置11の主要な記憶媒体として機能するメモリであり、データ転送の対象となるデータを保持する。不揮発性メモリ21は一般的なSSDで利用されるNANDフラッシュメモリ等であることを想定するが、これに限定されるものではない。不揮発性メモリ21は不揮発であることを想定するが、DRAM等の揮発性メモリを用い、電源遮断時にデータを所定のメモリに退避させる等の適宜なデータ保護手段を備える構成であってもよい。不揮発性メモリ21を1つ以上のモジュールで構成し、複数のモジュールを並列動作させることにより、処理の高速化を実現することができる。
揮発性メモリ22は、ホストコンピュータ、第2の記憶装置12等の外部装置がメモリアドレスを用いてアクセス可能な記憶領域を有するメモリである。揮発性メモリ22はDRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)等であることを想定するが、これに限定されるものではない。図1において、揮発性メモリ22は後述するメモリコントローラ23の外部に実装されている構成が示されているが、メモリコントローラ23の内部に実装されてもよい。揮発性メモリ22は揮発性であることを想定するが、MRAM(Magnetoresistive Random Access Memory)等の不揮発性メモリを用いてもよい。上記不揮発性メモリ21と同様に、揮発性メモリ22を複数のモジュールで構成することにより、高速化を実現することができる。
メモリコントローラ23は、データ転送を行う際に第1の記憶装置11を制御するユニットである。メモリコントローラ23はプログラムにより制御されるCPU、適宜な論理回路等を用いて構成されることを想定するが、これに限定されるものではない。メモリコントローラ23は、機能部として取得部31、判定部32、変換部33、及び記憶部34を含む。
取得部31は、データ転送に関する処理を実行するためのコマンド情報を取得する。コマンド情報は、第1の記憶装置11を外部から操作するための情報であって、例えば外部メモリ13を内蔵するホストコンピュータにより生成された(外部メモリ13に記憶された)情報であることを想定するが、これに限定されるものではない。
図2は、コマンド情報41を例示する図である。本例のコマンド情報41は、4バイト×6ワードからなり、コマンド識別子42、論理ブロックアドレス情報43、及びアドレス情報44を含む。本例のコマンド情報41はSATA規格又はNVMe規格に準拠するものであることを想定するが、これに限定されるものではない。
コマンド識別子42は、データ転送における処理の内容を示す情報であり、例えば読出し又は書込みを特定する情報である。コマンド識別子42が読出しである場合、当初のコマンド情報41には、第1の記憶装置11又は第2の記憶装置12からデータを読み出して外部メモリ13へ書き込む指示が含まれている。コマンド識別子42が書込みである場合、当初のコマンド情報41には、外部メモリ13からデータを読み出して第1の記憶装置11又は第2の記憶装置12へ書き込む指示が含まれている。
論理ブロックアドレス情報43は、所定の纏まったサイズのデータブロックを基本単位(例えば512バイト)とするアクセス位置を示す情報である。なお、当該サイズ、データブロック数をコマンド情報により特定してもよいし、後述するアドレス情報44から判断してもよい。
アドレス情報44は、データ転送を行う際のアクセス先となる記憶領域を示すメモリアドレスを含む情報である。コマンド識別子42が読出しである場合、不揮発性メモリ21から読み出したデータはアドレス情報44が示す記憶領域に書き込まれる。コマンド識別子42が書込みである場合、アドレス情報44が示す記憶領域からデータが読み出され、読み出されたデータは不揮発性メモリ21に書き込まれる。本実施形態においては、アドレス情報44に含まれるメモリアドレスはアドレス空間における32bit又は64bitで表現される特定のバイトを示す情報(バイトアドレッシング)であることを想定するが、これに限定されるものではない。また、1つのコマンド情報41に含まれるアドレス情報は、NVMeにおけるPRP(Physical Region Page)リストのように、複数のメモリアドレスからなるリスト構造であってもよい。
1つのアドレス情報44で特定されるデータのサイズは、例えば4KB等の固定サイズであってもよいし、アドレス情報44毎に異なる可変サイズであってもよい。可変サイズとする場合、アドレス情報44にメモリアドレスに加え、データサイズを示す情報を付加すればよい。図3は、データサイズを示す情報を含むアドレス情報44’を例示する図である。本例のアドレス情報44’は、NVMe、SCSI(Small Computer System Interface)等で定義される情報であり、記憶領域を示すメモリアドレスとデータのサイズを示す情報とを含む。
判定部32は、コマンド情報41と外部アドレス空間情報51とに基づいて、アドレス情報44が示す記憶領域が外部メモリ13内の特定外部アドレス空間55に属するかを判定する。特定外部アドレス空間55とは、外部メモリ13の記憶領域のうちの特定のアドレス空間である。特定外部アドレス空間55に対応する記憶領域(後述する特定内部アドレス空間56)は、第1の記憶装置11(本実施形態においては揮発性メモリ21)に物理的に実装されることが想定され、外部メモリ13に実装される必要はない。特定外部アドレス空間55は予め設定された固定値であることを想定するが、これに限定されるものではない。外部アドレス空間情報51は、特定外部アドレス空間55を示す情報である。図1においては、外部アドレス空間情報51がメモリコントローラ23内に設けられた記憶部34に記憶されている構成が示されているが、これに限定されるものではない。
図4は、外部アドレス空間情報51を例示する図である。本例の外部アドレス空間情報51は、アドレス空間の先頭を示すアドレス情報StartAddrとアドレス空間の長さを示すLengthとを含む。本例の外部アドレス空間情報51は、0x00100000から0x00010000(65536)バイト分の領域を示している。すなわち、メモリアドレスが0x00100000から0x0010FFFFまでのアドレス空間が特定外部アドレス空間55であることが示されている。
PCIeでは、PCIコンフィグレーションレジスタの1つであるBAR(Base Address Register)を制御することで、特定のアドレス空間にPCIeデバイスの記憶領域を割当てることができる。外部アドレス空間情報51は、第1の記憶装置11側で固定された情報であってもよいし、BARのように外部からプログラム可能な情報であってもよい。
変換部33は、アドレス情報44(第1のアドレス情報)が示す記憶領域(第1の記憶領域)が特定外部アドレス空間55に属する場合に、変換情報52に基づいて、当該アドレス情報44(第1のアドレス情報)を、特定内部アドレス空間56に属する記憶領域(第2の記憶領域)を示すアドレス情報44(第2のアドレス情報)に変換する。特定内部アドレス空間56とは、第1の記憶装置11の揮発性メモリ22の記憶領域のうちの特定のアドレス空間である。特定内部アドレス空間56は予め設定された固定値であることを想定するが、これに限定されるものではない。変換情報52とは、特定外部アドレス空間55と特定内部アドレス空間56との対応関係を示す情報である。図1においては、変換情報52がメモリコントローラ23内に設けられた記憶部34に記憶されている構成が示されているが、これに限定されるものではない。
図5は、特定外部アドレス空間55に属する記憶領域(第1の記憶領域)を特定内部アドレス空間56に属する記憶領域(第2の記憶領域)に変換する処理を模式的に例示する図である。本例では、メモリアドレス0x4100〜0x4300で特定される特定外部アドレス空間55が、メモリアドレス0x8700〜0x8900で特定される特定内部アドレス空間56に対応することが示されている。
例えば、取得部31により取得されたコマンド情報41のアドレス情報44がメモリアドレス「0x4180」を含む場合、判定部32は、外部アドレス空間情報51に基づいて、当該メモリアドレス「0x4180」は特定外部アドレス空間55「0x4100〜0x4300」に属すると判定する。その後、変換部33は、変換情報52に基づいて、当該メモリアドレス「0x4180」を含むアドレス情報44を特定内部アドレス空間56内の対応するメモリアドレス「0x8780」を含むアドレス情報44に変換する。変換部33は上記のようにアドレス情報44を変換したコマンド情報41を、後述する転送部24へ出力する。
一方、取得部31が取得したアドレス情報44が例えばメモリアドレス「0x4480」を含む場合、判定部32は当該メモリアドレス「0x4480」は特定外部アドレス空間55「0x4100〜0x4300」に属さないと判定する。その後、変換部33は当該メモリアドレス「0x4480」を含むコマンド情報41をそのまま転送部24へ出力する。
転送部24は、変換部33から出力されたコマンド情報41に従ってデータ転送の対象となるデータを不揮発性メモリ21、揮発性メモリ22、第2の記憶装置12、及び外部メモリ13の間で転送する。
例えば、コマンド識別子42により読出しが指示された場合、転送部24は不揮発性メモリ21からデータを読出し、アドレス情報44が示す記憶領域に当該データの書込みを行う。ここで、判定部32により上記第1の記憶領域が特定外部アドレス空間55に属すると判定され、変換部33によりアドレス情報44が上記第2の記憶領域を示すように変換された場合には、揮発性メモリ22の特定内部アドレス空間56に書込みを行う。一方、判定部32による上記第1の記憶領域が特定外部アドレス空間55に属さないと判定され、アドレス情報44が変換されなかった場合には、外部メモリ13に書込みが行われる。
コマンド識別子42により書込みが指示された場合、転送部24はアドレス情報44が示す記憶領域からデータを読出し、不揮発性メモリ21に当該データを書き込む。ここで、判定部32により上記第1の記憶領域が特定外部アドレス空間55に属すると判定され、変換部33によりアドレス情報44が上記第2の記憶領域を示すように変換された場合には、揮発性メモリ22の特定内部アドレス空間56から読出しを行う。一方、判定部32による上記第1の記憶領域が特定外部アドレス空間55に属さないと判定され、アドレス情報44が変換されなかった場合には、外部メモリ13から読出しが行われる。
なお、転送部24はコマンド情報41に応じて、アクセスする不揮発性メモリ21の領域を特定する。このとき、一般的なSSDと同様に、コマンド情報41の論理ブロックアドレス情報43が示す論理アドレスと、これに対応する不揮発性メモリ21の記憶領域を特定する物理アドレスとの対応表(論物変換テーブル)を用いることを想定するが、これに限定されるものではない。
図6は、データ転送システム1のハードウェア構成を例示する図である。図6において、第1の記憶装置11、第2の記憶装置12、及びホストコンピュータ15が示されている。
第1の記憶装置11及び第2の記憶装置12は、それぞれCPU61A,61B、NANDフラッシュ等の不揮発性メモリ62A,62B、DRAM等のRAM63A,63B、及び入出力ポート(I/O)64A,64Bがバス65A,65Bで接続された構成を有している。第1の記憶装置11のCPU61Aは、不揮発性メモリ62Aに記憶されたプログラムに従って上記取得部31、判定部32、及び変換部33の機能を実現するための処理を行う。第2の記憶装置12のCPU61Bは、必ずしも第1の記憶装置11のCPU61Aと同一の処理を行う機能を有している必要はない。
ホストコンピュータ15は、CPU66、不揮発性メモリ67、RAM68、キーボード、マウス等の入力デバイス69、ディスプレイ等の出力デバイス70、及び入出力ポート(I/O)71がバス72で接続された構成を有している。CPU66は、不揮発性メモリ67に記憶されたプログラムに従って上記コマンド情報41を生成するための処理等を行う。RAM68は、上記外部メモリ13の少なくとも一部を構成する。
なお、図6に示すハードウェア構成は例示に過ぎず、他の様々な構成が適用され得る。例えば、データ転送を行う記憶装置11,12の数は2つに限られず、3つ以上であってもよい。また、外部メモリ13は1つの外部装置(ホストコンピュータ15)により構成されることに限られず、複数の外部装置により構成されてもよい。
図7は、第1の記憶装置11における処理の流れを例示するフローチャートである。取得部31(図1参照)がコマンド情報41(図2参照)を取得すると(S101)、判定部32は外部アドレス空間情報51(図4参照)に基づいて、アドレス情報44が示す第1の記憶領域が特定外部アドレス空間55(図5参照)に属するかを判定する(S102)。
ステップS102において、YESと判定された場合、変換部33はアドレス情報44を、特定内部アドレス空間56(図5参照)に属する第2の記憶領域を示すアドレス情報44に変換して出力する(S103)。一方、ステップS102において、NOと判定された場合、変換部33はアドレス情報44を変換せずに出力する(S104)。転送部24は、変換部33から出力されたコマンド情報41に含まれるアドレス情報44に従ってデータを転送する(S105)。
図8は、データ転送システム1における読出し処理の流れを例示するフローチャートである。取得部31はコマンド情報41を取得し(S201)、コマンド情報41の内容を解釈する(S202)。本例では、コマンド識別子42で指定される動作は読出しであり、2つのアドレス情報44が含まれ、一方のアドレス情報44は特定外部アドレス空間55に属する第1の記憶領域を示し、他方のアドレス情報44は特定外部アドレス空間55以外の外部メモリ13内のアドレス空間に属する第2の記憶領域を示すものとする。
判定部32は、一方のアドレス情報44について判定を行い、判定結果がYESである(一方のアドレス情報44が示す記憶領域は特定外部アドレス空間55に属する)と判定する(S203)。この判定結果に基づき、変換部33は、一方のアドレス情報44を特定内部アドレス空間56に属する記憶領域を示すアドレス情報44に変換して出力する(S204)。
転送部24は、変換されたアドレス情報44を含むコマンド情報41に基づき不揮発性メモリ21に対して読出し要求を行う(S205)。不揮発性メモリ21は、読出し要求に基づきデータを読み出す(S206)。転送部24は、変換されたアドレス情報44に基づき、揮発性メモリ22に対して、読み出されたデータの書込み要求を行う(S207)。揮発性メモリ22は、書込み要求に基づき特定内部アドレス空間56内の記憶領域にデータを書き込む(S208)。
一方、判定部32は、他方のアドレス情報44について判定を行い、判定結果がNOである(他方のアドレス情報44が示す記憶領域は特定外部アドレス空間55に属さない)と判定する(S209)。この判定結果に基づき、変換部33は、他方のアドレス情報44を変換せずに出力する(S210)。
転送部24は、コマンド情報41に基づき不揮発性メモリ21に対して読出し要求を行う(S211)。不揮発性メモリ21は、読出し要求に基づきデータを読み出す(S212)。読出しが完了すると、転送部24は、アドレス情報44に基づき外部メモリ13に対してデータの書込み要求を行う(S213)。外部メモリ13は、書込み要求に基づきデータを書き込む(S214)。
図9は、データ転送システム1における書込み処理の流れを例示するフローチャートである。取得部31はコマンド情報41を取得し(S301)、コマンド情報41の内容を解釈する(S302)。本例では,コマンド識別子42で指定される動作は書込みであり、2つのアドレス情報44が含まれ、一方のアドレス情報44は特定外部アドレス空間55に属する第1の記憶領域を示し、他方のアドレス情報44は特定外部アドレス空間55以外の外部メモリ13内のアドレス空間に属する第2の記憶領域を示すものとする。
判定部32は、一方のアドレス情報44のアドレス判定を行い、判定結果がYESであると判定する(S303)。この判定結果に基づき、変換部33は、一方のアドレス情報44を特定内部アドレス空間56に属する記憶領域を示すアドレス情報44に変換して出力する(S304)。
転送部24は、変換されたアドレス情報44を含むコマンド情報41に基づき揮発性メモリ22に読出し要求を行う(S305)。揮発性メモリ22は、読出し要求に基づきデータを読み出す(S306)。読出しが完了すると、転送部24は、コマンド情報41に基づき不揮発性メモリ21に対してデータの書込み要求を行う(S307)。不揮発性メモリ21は、書込み要求に基づきデータを書き込む(S308)。
一方、判定部32は、他方のアドレス情報44について判定を行い、判定結果がNOであると判定する(S309)。この判定結果に基づき、変換部33は、他方のアドレス情報44を変換せずに出力する(S310)。
転送部24は、コマンド情報41に基づき外部メモリ13に対して読出し要求を行う(S311)。外部メモリ13は、読出し要求に基づきデータを読み出す(S312)。読出しが完了すると、転送部24は、コマンド情報41に基づき不揮発性メモリ21に対してデータの書込み要求を行う(S313)。不揮発性メモリ21は、書込み要求に基づきデータを書き込む(S314)。
本実施形態によれば、コマンド情報41に含まれるアドレス情報44が特定外部アドレス空間55に属する記憶領域を示す場合には、データ転送の対象となるデータの転送先が第1の記憶装置11の揮発性メモリ22の特定内部アドレス空間56内の記憶領域に変換される。これにより、第1の記憶装置11と第2の記憶装置12との間で行われるデータ転送を、外部メモリ13を介することなく行うことが可能となる。
以下、図面を参照して他の実施形態について説明するが、上記第1の実施形態と同一又は同様の作用効果を奏する箇所については同一の符号を付してその説明を省略する場合がある。
(第2の実施形態)
図10は、第2の実施形態におけるデータ転送システム81の構成を例示する図である。データ転送システム81は、第3の記憶装置91、第2の記憶装置12、及び外部メモリ13を含む。第3の記憶装置91と第2の記憶装置12との間でデータ転送が行われる。
第3の記憶装置81は、不揮発性メモリ21、揮発性メモリ22、及びメモリコントローラ92を含む。メモリコントローラ92は、取得部31、判定部32、変換部33、記憶部34、バッファメモリ95、及び転送部96を含む。
バッファメモリ95は、データ転送の対象となるデータを一時的に記憶するメモリである。バッファメモリ95はDRAM、SRAM等に代表される揮発性メモリであることを想定するが、これに限定されるものではない。バッファメモリ95は、例えば所定の大きさのデータブロックを纏めて不揮発性メモリ21に書き込む際等に利用される。バッファメモリ95は、メモリコントローラ92により適切なフロー制御がなされる。バッファメモリ95の全ての記憶領域が使用された状態(フル状態)では、新しいデータをバッファメモリ95に書込むことができない。フロー制御としては、例えば、未使用のメモリアドレスをフリーリストとしてキュー等により管理し、書込みを行う際に適切なメモリアドレスを割当て、使用が終了した際にそのメモリアドレスを解放する方式を想定するが、これに限定されるものではない。
また、バッファメモリ95は、不揮発性メモリ21のアクセス速度と揮発性メモリ22又は外部メモリ13のアクセス速度との差を吸収する役割を担うこともある。バッファメモリ95は、複数のデータブロック間にまたがるエラー訂正符号(ECC)のエンコード・デコード、データの暗号化・複合化、圧縮処理等の作業領域として利用されてもよい。本実施形態においては、バッファメモリ95はメモリコントローラ92に実装されているが、これに限定されるものではない。また、揮発性メモリ22の一部の領域をバッファメモリとして利用してもよい。
本実施形態における転送部96は、バッファメモリ95を中継してデータ転送を行う。ここで、判定部32による判定結果がYESの場合(アドレス情報44が示す記憶領域が特定外部アドレス空間55に属する場合)、データ転送の対象となるデータの読出し位置又は書込み位置は、揮発性メモリ22の特定内部アドレス空間56内となる。このとき、バッファメモリ95を中継すると、内部メモリ同士のデータ転送が発生するため、処理効率が悪くなる。そこで、転送部96は、判定部32による判定結果がYESの場合には、バッファメモリ95への中継をスキップし、揮発性メモリ22へ直接アクセスをする。なお、本実施形態においては、転送部96はメモリコントローラ92に実装されているが、これに限定されるものではない。
図11は、データ転送システム81における読出し処理の流れを例示するフローチャートである。取得部31は、コマンド情報41を取得し(S401)、コマンド情報41の内容を解釈する(S402)。本例では、コマンド識別子42で指定される動作は読出しであり、2つのアドレス情報44を含み、一方のアドレス情報44は特定外部アドレス空間55に属する第1の記憶領域を示し、他方のアドレス情報44は特定外部アドレス空間55以外の外部メモリ13内のアドレス空間に属する第2の記憶領域を示すものとする。
判定部32は、一方のアドレス情報44について判定を行い、判定結果がYESである(一方のアドレス情報44が示す記憶領域は特定外部アドレス空間55に属する)と判定する(S403)。この判定結果に基づき、変換部33は、一方のアドレス情報44を特定内部アドレス空間56に属する記憶領域を示すアドレス情報44に変換して出力する(S404)。
転送部96は、コマンド情報41に基づき不揮発性メモリ21に対して読出し要求を行う(S405)。不揮発性メモリ21は、読出し要求に基づきデータを読み出す(S406)。転送部96は、変換されたアドレス情報44に基づき、揮発性メモリ22に対して、読み出されたデータの書込み要求を行う(S407)。このとき、転送部96は、バッファメモリ95への書込み要求及び読出し要求を行わない。揮発性メモリ22は、書込み要求に基づき特定内部アドレス空間56内の記憶領域にデータを書き込む(S408)。
一方、判定部32は、他方のアドレス情報44について判定を行い、判定結果がNOである(他方のアドレス情報44が示す記憶領域は特定外部アドレス空間55に属さない)と判定する(S409)。この判定結果に基づき、変換部33は、他方のアドレス情報44を変換せずに出力する(S410)。
転送部96は、コマンド情報41に基づき不揮発性メモリ21に対して読出し要求を行う(S411)。不揮発性メモリ21は、読出し要求に基づきデータを読み出す(S412)。読出しが完了すると、転送部96は、フロー制御に従って割当てられたバッファメモリ95の記憶領域に、読み出されたデータの書込み要求を行う(S413)。バッファメモリ95は、書き込み要求に基づきデータを書き込む(S414)。バッファメモリ95への書込みが完了すると、転送部96は、バッファメモリ95に対して読出し要求を行う(S415)。バッファメモリ95は、読出し要求に基づきデータを読み出す(S416)。読出しが完了すると、転送部96は、コマンド情報41に基づき外部メモリ13にデータの書込み要求を行う(S417)。外部メモリ13は、書込み要求に基づきデータを書き込む(S418)。
図12は、データ転送システム81における書込み処理の流れを例示するフローチャートである。取得部31は、コマンド情報41を取得し(S501)、コマンド情報41の内容を解釈する(S502)。本例では、コマンド識別子42で指定される動作は書込みであり、2つのアドレス情報44を含み、一方のアドレス情報44は特定外部アドレス空間55に属する第1の記憶領域を示し、他方のアドレス情報44は特定外部アドレス空間55以外の外部メモリ13内のアドレス空間に属する第2の記憶領域を示すものとする。
判定部32は、一方のアドレス情報44のアドレス判定を行い、判定結果がYESであると判定する(S503)。この判定結果に基づき、変換部33は、一方のアドレス情報44を特定内部アドレス空間56に属する記憶領域を示すアドレス情報44に変換して出力する(S504)。
転送部96は、変換されたアドレス情報44を含むコマンド情報41に基づき揮発性メモリ22に読出し要求を行う(S505)。揮発性メモリ22は、読出し要求に基づきデータを読み出す(S506)。読出しが完了すると、転送部96は、コマンド情報41に基づき不揮発性メモリ21に対してデータの書込み要求を行う(S507)。このとき、転送部96は、バッファメモリ95への書き込み要求及び読出し要求を行わない。不揮発性メモリ21は、書込み要求に基づきデータを書き込む(S508)。
一方、判定部32は、他方のアドレス情報44について判定を行い、判定結果がNOであると判定する(S509)。この判定結果に基づき、変換部33は、他方のアドレス情報44を変換せずに出力する(S510)。
転送部96は、コマンド情報41に基づき外部メモリ13に対して読出し要求を行う(S511)。外部メモリ13は、読出し要求に基づきデータを読み出す(S512)。読出しが完了すると、転送部96は、フロー制御に従って割当てられたバッファメモリ95の記憶領域に、読出されたデータの書込み要求を行う(S513)。バッファメモリ95は、書き込み要求に基づきデータを書き込む(S514)。バッファメモリ95への書込みが完了すると、転送部96は、バッファメモリ95に対して読出し要求を行う(S515)。バッファメモリ95は、読出し要求に基づきデータを読み出す(S516)。読出しが完了すると、転送部96は、コマンド情報41に基づき不揮発性メモリ21にデータの書込み要求を行う(S517)。不揮発性メモリ21は、書込み要求に基づきデータを書き込む(S518)。
本実施形態によれば、アドレス情報44が示す記憶領域が外部メモリ13から内部メモリである揮発性メモリ22に変更された場合には、外部メモリ13へのアクセスを省略できるだけでなく、バッファメモリ95へのアクセスも省略できる。
(第3の実施形態)
図13は、第3の実施形態におけるデータ転送システム101の構成を例示する図である。データ転送システム101は、第1の記憶装置11、書込み用記憶装置111、制御装置112、及び回線交換装置113を含む。本実施形態においては、上記メモリコントローラ23を備える第1の記憶装置11が読出し用記憶装置として用いられる。
第1の記憶装置11は、上述したように、外部装置からメモリアドレスによってアクセス可能な揮発性メモリ22を備え、メモリコントローラ23によって外部メモリ13の記憶領域を示すメモリアドレス(アドレス情報44)を揮発性メモリ22の特定内部アドレス空間56内の記憶領域を示すメモリアドレスに変換するアドレス変換機能を有する。このようなアドレス変換があった場合には、第1の記憶装置11は読出されたデータを揮発性メモリ22に記憶する。
書込み用記憶装置111は、第1の記憶装置11から読み出されたデータを記憶する機能を有するが、メモリコントローラ23によるアドレス変換機能を有していなくてもよい。書込み用記憶装置111は、書込みコマンドに基づいて、外部メモリ13又は第1の記憶装置11の揮発性メモリ22から読み出したデータを自らの不揮発性メモリに書き込む。
制御装置112は、システム全体を制御する役割を担い、第1の記憶装置11および書込み用記憶装置111のホストとしてコマンド情報41の生成、発行等を行う。制御装置112はPC、サーバ等のコンピュータであることを想定するが、これに限定されるものではない。
回線交換装置113は、第1の記憶装置11、書込み用記憶装置111、及び制御装置112を相互に接続し、各装置間でデータの送受を可能にする装置である。回線交換装置112はクロスバスイッチのように単独で複数の装置を相互接続する装置であることを想定するが、これに限定されるものではない。例えば、ルータを組み合わせたネットワークによりパケット交換を行う構成等を回線交換装置113の代わりに適用することができる。また、回線交換装置113が階層構造を有することで、様々な構成(トポロジ)の相互結合網、例えばメッシュネットワーク、ツリーネットワーク等を構築することができる。
図14は、データ転送システム101における読出し及び書込み処理の流れを例示するフローチャートである。制御装置112は、第1の記憶装置11に記憶されているデータを読み出すためのコマンド情報41を生成し、第1の記憶装置11に対する読出し要求を行う(S601)。このとき、コマンド情報41に含まれる1つ以上のアドレス情報44は、第1の記憶装置11の揮発性メモリ22内の記憶領域を示す。このコマンド情報41は回線交換装置113に入力され、回線交換装置113はコマンド情報41を第1の記憶装置11に転送する(S602)。第1の記憶装置11は、取得したコマンド情報41に従って不揮発性メモリ21からデータを読出し(S603)、当該コマンド情報41に含まれるアドレス情報44に従って、読出したデータを揮発性メモリ22に書き込む(S604)。
上記読出し処理が完了すると、制御装置112は、書込み用記憶装置111にデータを書き込むためのコマンド情報41を生成し、書込み用記憶装置111に対する書込み要求を行う(S605)。このとき、コマンド情報41に含まれる1つ以上のアドレス情報44は、上記読出し処理時のコマンド情報41に含まれる1つ以上のアドレス情報44を含む。書込み処理のコマンド情報41は回線交換装置113に入力され、回線交換装置113はこのコマンド情報41を書込み用記憶装置111に転送する(S606)。書込み用記憶装置111は、取得したコマンド情報41に含まれるアドレス情報44に従って、第1の記憶装置11の揮発性メモリ22又は外部メモリ13に対する読出し要求を行う(S607)。このとき、書込み用記憶装置111は、データが揮発性メモリ22に記憶されている場合であっても、これに関わらず外部メモリ13に対する読出し要求を行う。読出し要求を取得した第1の記憶装置11は、揮発性メモリ22(読出し要求された外部メモリ13の特定外部アドレス空間55に対応する特定内部アドレス空間56)からデータを読み出す(S608)。読出されたデータは回線交換装置113に入力され、回線交換装置113はデータを書込み用記憶装置111へ転送する(S609)。書込み用記憶装置111は、コマンド情報41に従って、取得したデータを不揮発性メモリに書き込む(S610)。
本実施形態が示すように、メモリコントローラ23を備える第1の記憶装置22を読み出し用記憶装置として使用すれば、これを書込み用記憶装置111として使用しなくても、外部メモリへのアクセスを省略することができる。また、特殊なコマンドを用いる必要がないため、一般的なインタフェース(例えばNVMe)の仕様を崩さずに実現することが可能である。
(第4の実施形態)
図15は、第4の実施形態におけるデータ転送システム201の構成を例示する図である。データ転送システム201は、第1の記憶装置11、読出し用記憶装置211、制御装置112、及び回線交換装置113を含む。本実施形態においては、上記メモリコントローラ23を備える第1の記憶装置11が書込み用記憶装置として用いられる。
読出し用記憶装置211は、第1の記憶装置11に書き込まれるデータを記憶し且つ読み出す機能を有するが、メモリコントローラ23によるアドレス変換機能を有していなくてもよい。読出し用記憶装置211は、読出しコマンドに基づいて、自らの不揮発性メモリに記憶されたデータを読み出す。
図16は、データ転送システム201における読出し及び書込み処理の流れを例示するフローチャートである。制御装置112は、読出し用記憶装置211に記憶されているデータを読み出すためのコマンド情報41を生成し、読出し用記憶装置211に対する読出し要求を行う(S701)。このとき、コマンド情報41に含まれる1つ以上のアドレス情報44は、第1の記憶装置111の揮発性メモリ22内の記憶領域を示す。このコマンド情報41は回線交換装置113に入力され、回線交換装置113はコマンド情報41を読み出し用記憶装置211に転送する(S702)。読出し用記憶装置211は、取得したコマンド情報41に従って自らの不揮発性メモリからデータを読出し(S703)、当該コマンド情報41に含まれるアドレス情報44に従って、外部メモリ13に対する書込み要求を行う(S704)。このとき、読出し用記憶装置211は、データの書込み先が第1の記憶装置11の揮発性メモリ22であっても、これに関わらず外部メモリ13に対する書込み要求を行う。読み出されたデータは回線交換装置113に入力され、回線交換装置113はデータを第1の記憶装置11へ転送する(S705)。読み出されたデータと書込み要求を取得した第1の記憶装置11は、データを揮発性メモリ22へ書き込む(S706)。
上記読出し処理が完了すると、制御装置112は、第1の記憶装置11にデータを書き込むためのコマンド情報41を生成し、第1の記憶装置11に対する書込み要求を行う(S707)。このとき、コマンド情報41に含まれる1つ以上のアドレス情報44は、上記読出し処理時のコマンド情報41に含まれる1つ以上のアドレス情報44を含む。書込み処理のコマンド情報41は回線交換装置113に入力され、回線交換装置113はこのコマンド情報41を第1の記憶装置11に転送する(S708)。第1の記憶装置11は、取得したコマンド情報41に含まれるアドレス情報44(特定内部アドレス空間56内の記憶領域を示すように変換されたアドレス情報44)に従って揮発性メモリ22からデータを読出し(S709)、読み出したデータを不揮発性メモリに書き込む(S710)。
本実施形態が示すように、メモリコントローラ23を備える第1の記憶装置22を書込み用記憶装置として使用すれば、これを読出し用記憶装置211として使用しなくても、外部メモリへのアクセスを省略することができる。また、特殊なコマンドを用いる必要がないため、一般的なインタフェース(例えばNVMe)の仕様を崩さずに実現することが可能である。
上記機能を実現させるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD等のコンピュータで読み取り可能な記録媒体に記録されて提供することができる。また、プログラムは、ネットワークに接続された所定の記憶装置から所定の情報処理装置にダウンロードすることにより提供されてもよいし、予めROM等に組み込まれて所定の情報処理装置に提供されてもよい。また、プログラムは、上記各部の機能を実現する複数のモジュールから構成されてもよい。
以上、本発明の実施形態を説明したが、これらの実施形態は例として提示したものであり、発明の範囲を限定することを意図するものではない。この新規な実施形態はその他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施形態及びその変形は発明の範囲及び要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1,81,101,201 データ転送システム
11 第1の記憶装置(記憶装置)
12 第2の記憶装置(他の記憶装置)
91 第3の記憶装置(記憶装置)
13 外部メモリ
21 不揮発性メモリ
22 揮発性メモリ
23,92 メモリコントローラ
24,96 転送部
31 取得部
32 判定部
33 変換部
34 記憶部
41 コマンド情報
42 コマンド識別子
43 論理ブロックアドレス情報
44,44’ アドレス情報
51 外部アドレス空間情報
52 変換情報
55 特定外部アドレス空間
56 特定内部アドレス空間
95 バッファメモリ
111 書込み用記憶装置
112 制御装置
113 回線交換装置
211 読出し用記憶装置

Claims (13)

  1. 記憶装置と他の記憶装置との間で行われるデータ転送を制御するメモリコントローラであって、
    データ転送中におけるデータの読出し位置又は書込み位置である第1の記憶領域を示す第1のアドレス情報を含むコマンド情報を取得する取得部と、
    前記第1の記憶領域が、外部メモリの特定のアドレス空間である特定外部アドレス空間に属するかを判定する判定部と、
    前記第1の記憶領域が前記特定外部アドレス空間に属する場合に、前記特定外部アドレス空間と前記記憶装置に実装されたメモリの特定のアドレス空間である特定内部アドレス空間との対応関係を示す変換情報に基づいて、前記第1のアドレス情報を前記特定内部アドレス空間に属する第2の記憶領域を示す第2のアドレス情報に変換する変換部と、
    前記第1のアドレス情報を含む前記コマンド情報、又は前記第1のアドレス情報が前記第2のアドレス情報に変換された前記コマンド情報に基づいて前記データを転送する転送部と、
    を備えるメモリコントローラ。
  2. 前記記憶装置及び前記他の記憶装置は、SSDである、
    請求項1に記載のメモリコントローラ。
  3. 前記コマンド情報は、SATA規格に準拠する処理を行うための情報を含む、
    請求項2に記載のメモリコントローラ。
  4. 前記コマンド情報は、SCSI規格に準拠する処理を行うための情報を含む、
    請求項2に記載のメモリコントローラ。
  5. 前記コマンド情報は、NVMe規格に準拠する処理を行うための情報を含む、
    請求項2に記載のメモリコントローラ。
  6. 前記特定内部アドレス空間は、前記記憶装置の作業領域内に設定される、
    請求項1〜5のいずれか1項に記載のメモリコントローラ。
  7. 前記データ転送の対象となるデータを一時的に保存するバッファメモリ、
    を更に備え、
    前記転送部は、前記第1の記憶領域が前記特定外部アドレス空間に含まれる場合に、前記データを前記バッファメモリに転送することなく前記第2の記憶領域に転送する、
    請求項1〜6のいずれか1項に記載のメモリコントローラ。
  8. 他の記憶装置との間で行われるデータ転送を制御するメモリコントローラを備える記憶装置であって、
    前記メモリコントローラは、
    データ転送中におけるデータの読出し位置又は書込み位置である第1の記憶領域を示す第1のアドレス情報を含むコマンド情報を取得する取得部と、
    前記第1の記憶領域が、外部メモリの特定のアドレス空間である特定外部アドレス空間に属するかを判定する判定部と、
    前記第1の記憶領域が前記特定外部アドレス空間に属する場合に、前記特定外部アドレス空間と前記記憶装置に実装されたメモリの特定のアドレス空間である特定内部アドレス空間との対応関係を示す変換情報に基づいて、前記第1のアドレス情報を前記特定内部アドレス空間に属する第2の記憶領域を示す第2のアドレス情報に変換する変換部と、
    前記第1のアドレス情報を含む前記コマンド情報、又は前記第1のアドレス情報が前記第2のアドレス情報に変換された前記コマンド情報に基づいて前記データを転送する転送部と、
    を備える記憶装置。
  9. 記憶装置、他の記憶装置、及び制御装置を含むデータ転送システムであって、
    前記記憶装置は、前記他の記憶装置との間で行われるデータ転送を制御するメモリコントローラを備え、
    前記制御装置は、外部メモリを備え、データ転送中におけるデータの読出し位置又は書込み位置である第1の記憶領域を示す第1のアドレス情報を含むコマンド情報を生成し、
    前記メモリコントローラは、
    前記コマンド情報を取得する取得部と、
    前記第1の記憶領域が、前記外部メモリの特定のアドレス空間である特定外部アドレス空間に属するかを判定する判定部と、
    前記第1の記憶領域が前記特定外部アドレス空間に属する場合に、前記特定外部アドレス空間と前記記憶装置に実装されたメモリの特定のアドレス空間である特定内部アドレス空間との対応関係を示す変換情報に基づいて、前記第1のアドレス情報を前記特定内部アドレス空間に属する第2の記憶領域を示す第2のアドレス情報に変換する変換部と、
    前記第1のアドレス情報を含む前記コマンド情報、又は前記第1のアドレス情報が前記第2のアドレス情報に変換された前記コマンド情報に基づいて前記データを転送する転送部と、
    を備えるデータ転送システム。
  10. 前記記憶装置は、読出し用記憶装置として用いられ、
    前記他の記憶装置は、書込み用記憶装置として用いられる、
    請求項9に記載のデータ転送システム。
  11. 前記記憶装置は、書込み用記憶装置として用いられ、
    前記他の記憶装置は、読出し用記憶装置として用いられる、
    請求項9に記載のデータ転送システム。
  12. 記憶装置と他の記憶装置との間で行われるデータ転送を制御するコンピュータが、
    データ転送中におけるデータの読出し位置又は書込み位置である第1の記憶領域を示す第1のアドレス情報を含むコマンド情報を取得するステップと、
    前記第1の記憶領域が、外部メモリの特定のアドレス空間である特定外部アドレス空間に属するかを判定するステップと、
    前記第1の記憶領域が前記特定外部アドレス空間に属する場合に、前記特定外部アドレス空間と前記記憶装置に実装されたメモリの特定のアドレス空間である特定内部アドレス空間との対応関係を示す変換情報に基づいて、前記第1のアドレス情報を前記特定内部アドレス空間に属する第2の記憶領域を示す第2のアドレス情報に変換するステップと、
    前記第1のアドレス情報を含む前記コマンド情報、又は前記第1のアドレス情報が前記第2のアドレス情報に変換された前記コマンド情報に基づいて前記データを転送するステップと、
    を実行するデータ転送方法。
  13. 他の記憶装置との間でデータ転送を行う記憶装置を制御するコンピュータに、
    データ転送中におけるデータの読出し位置又は書込み位置である第1の記憶領域を示す第1のアドレス情報を含むコマンド情報を取得する処理と、
    前記第1の記憶領域が、外部メモリの特定のアドレス空間である特定外部アドレス空間に属するかを判定する処理と、
    前記第1の記憶領域が前記特定外部アドレス空間に属する場合に、前記特定外部アドレス空間と前記記憶装置に実装されたメモリの特定のアドレス空間である特定内部アドレス空間との対応関係を示す変換情報に基づいて、前記第1のアドレス情報を前記特定内部アドレス空間に属する第2の記憶領域を示す第2のアドレス情報に変換する処理と、
    前記第1のアドレス情報を含む前記コマンド情報、又は前記第1のアドレス情報が前記第2のアドレス情報に変換された前記コマンド情報に基づいて前記データを転送する処理と、
    を実行させるデータ転送プログラム。
JP2015050896A 2015-03-13 2015-03-13 メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム Active JP6517549B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015050896A JP6517549B2 (ja) 2015-03-13 2015-03-13 メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム
US14/922,577 US20160266827A1 (en) 2015-03-13 2015-10-26 Memory controller, memory device, data transfer system, data transfer method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015050896A JP6517549B2 (ja) 2015-03-13 2015-03-13 メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム

Publications (2)

Publication Number Publication Date
JP2016170696A JP2016170696A (ja) 2016-09-23
JP6517549B2 true JP6517549B2 (ja) 2019-05-22

Family

ID=56887998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015050896A Active JP6517549B2 (ja) 2015-03-13 2015-03-13 メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム

Country Status (2)

Country Link
US (1) US20160266827A1 (ja)
JP (1) JP6517549B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6848060B2 (ja) * 2016-11-26 2021-03-24 華為技術有限公司Huawei Technologies Co.,Ltd. データ移行方法、ホスト、およびソリッドステートディスク
JP6810962B2 (ja) * 2017-03-30 2021-01-13 株式会社アクセル データ処理装置、データ転送装置、データ処理方法、及びデータ転送プログラム
US11321249B2 (en) * 2018-03-26 2022-05-03 Samsung Electronics Co., Ltd. Mechanism to autonomously manage SSDS in an array
JP2019191909A (ja) 2018-04-25 2019-10-31 東芝メモリ株式会社 メモリシステムおよび制御方法
KR102538222B1 (ko) * 2018-06-26 2023-06-01 삼성전자주식회사 스토리지 장치, 스토리지 장치를 포함하는 스토리지 시스템, 그리고 스토리지 장치를 액세스하는 방법

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3241402A1 (de) * 1982-11-09 1984-05-10 Siemens AG, 1000 Berlin und 8000 München Verfahren zum steuern des datentransfers zwischen einem datensender und einem datenempfaenger ueber einen bus mit hilfe einer am bus angeschlossenen steuereinrichtung
DE3382152D1 (de) * 1982-12-09 1991-03-07 Sequoia Systems Inc Sicherstellungsspeichersystem.
US4819154A (en) * 1982-12-09 1989-04-04 Sequoia Systems, Inc. Memory back up system with one cache memory and two physically separated main memories
US4797853A (en) * 1985-11-15 1989-01-10 Unisys Corporation Direct memory access controller for improved system security, memory to memory transfers, and interrupt processing
US5499361A (en) * 1992-03-12 1996-03-12 Mita Industrial Co., Ltd. Density processing method
US5598568A (en) * 1993-05-06 1997-01-28 Mercury Computer Systems, Inc. Multicomputer memory access architecture
US6006019A (en) * 1995-08-10 1999-12-21 Nec Corporation Network system capable of managing a network unit from an agent
JP3371078B2 (ja) * 1996-11-29 2003-01-27 三菱電機株式会社 デバイス間データ転送装置及びその方法
US6260101B1 (en) * 1997-03-07 2001-07-10 Advanced Micro Devices, Inc. Microcontroller having dedicated hardware for memory address space expansion supporting both static and dynamic memory devices
JP3408740B2 (ja) * 1998-03-20 2003-05-19 富士通株式会社 タイムスロット・アサインメント回路
US6240482B1 (en) * 1998-06-02 2001-05-29 Adaptec, Inc. Host adapter having a plurality of register sets and corresponding operating nodes
JP2000235542A (ja) * 1999-02-16 2000-08-29 Sony Corp データ処理装置及び記録媒体
JP2001188748A (ja) * 1999-12-27 2001-07-10 Matsushita Electric Ind Co Ltd データ転送装置
JP4612139B2 (ja) * 2000-02-08 2011-01-12 富士通セミコンダクター株式会社 入力回路及びその入力回路を利用する半導体装置
US6697919B2 (en) * 2000-06-10 2004-02-24 Hewlett-Packard Development Company, L.P. System and method for limited fanout daisy chaining of cache invalidation requests in a shared-memory multiprocessor system
US6927776B2 (en) * 2001-05-17 2005-08-09 Matsushita Electric Industrial Co., Ltd. Data transfer device and method
JP3749507B2 (ja) * 2002-07-01 2006-03-01 株式会社ルネサステクノロジ 圧縮コードを処理するマイクロコントローラ
US7519779B2 (en) * 2002-08-26 2009-04-14 International Business Machines Corporation Dumping using limited system address space
JP4446373B2 (ja) * 2003-03-19 2010-04-07 パナソニック株式会社 プロセッサ、データ共有装置
US7296109B1 (en) * 2004-01-29 2007-11-13 Integrated Device Technology, Inc. Buffer bypass circuit for reducing latency in information transfers to a bus
KR100706246B1 (ko) * 2005-05-24 2007-04-11 삼성전자주식회사 읽기 성능을 향상시킬 수 있는 메모리 카드
JP2007004707A (ja) * 2005-06-27 2007-01-11 Toshiba Corp インタフェース装置、記憶装置、制御方法、及びシステム
JP2008139908A (ja) * 2006-11-29 2008-06-19 Matsushita Electric Ind Co Ltd メモリ制御装置、コンピュータシステム及びデータ再生記録装置
JP5087347B2 (ja) * 2007-09-06 2012-12-05 株式会社日立製作所 半導体記憶装置及び半導体記憶装置の制御方法
JP5330409B2 (ja) * 2008-11-28 2013-10-30 パナソニック株式会社 メモリ制御装置、データプロセッサ及びデータ読み出し方法
JP4551958B2 (ja) * 2008-12-22 2010-09-29 株式会社東芝 半導体記憶装置および半導体記憶装置の制御方法
JP5439808B2 (ja) * 2008-12-25 2014-03-12 富士通セミコンダクター株式会社 複数バスを有するシステムlsi
US8688901B2 (en) * 2009-12-08 2014-04-01 Intel Corporation Reconfigurable load-reduced memory buffer
JP5441216B2 (ja) * 2010-02-24 2014-03-12 ルネサスエレクトロニクス株式会社 半導体装置及びデータ処理システム
US8183452B2 (en) * 2010-03-23 2012-05-22 Yamaha Corporation Tone generation apparatus
WO2011151859A1 (en) * 2010-06-01 2011-12-08 Hitachi, Ltd. Data transfer device and method of controlling the same
JP2013061799A (ja) * 2011-09-13 2013-04-04 Toshiba Corp 記憶装置、記憶装置の制御方法およびコントローラ
JP5422687B2 (ja) * 2012-02-20 2014-02-19 京セラドキュメントソリューションズ株式会社 通信処理装置および画像形成装置
JP2014026531A (ja) * 2012-07-27 2014-02-06 Hitachi Ltd 情報処理装置及び情報処理装置のデータ転送方法
KR102039537B1 (ko) * 2013-03-15 2019-11-01 삼성전자주식회사 불휘발성 저장 장치 및 그것의 운영체제 이미지 프로그램 방법
CN105027092B (zh) * 2013-03-27 2018-01-30 株式会社日立制作所 具有sdram接口的dram、混合闪存存储器模块
US9251047B1 (en) * 2013-05-13 2016-02-02 Amazon Technologies, Inc. Backup of volatile memory to persistent storage
WO2015008375A1 (ja) * 2013-07-19 2015-01-22 株式会社日立製作所 ストレージ装置および記憶制御方法
CN105408874B (zh) * 2013-07-31 2018-09-18 慧与发展有限责任合伙企业 用于移动数据块的方法、存储器系统及存储介质
EP3049938B1 (en) * 2013-09-27 2019-03-13 Hewlett-Packard Enterprise Development LP Data management on memory modules
WO2015074232A1 (zh) * 2013-11-22 2015-05-28 华为技术有限公司 一种内存数据的迁移方法、计算机和装置
US9696922B2 (en) * 2013-12-24 2017-07-04 Hitachi, Ltd. Storage system
CN105095095B (zh) * 2014-05-12 2018-04-06 上海大学 一种计算机系统及数据读写方法
US10120832B2 (en) * 2014-05-27 2018-11-06 Mellanox Technologies, Ltd. Direct access to local memory in a PCI-E device
US9710167B2 (en) * 2014-10-30 2017-07-18 ScaleFlux Direct non-volatile cache access across devices
KR20160061703A (ko) * 2014-11-24 2016-06-01 삼성전자주식회사 내부 카피 동작을 수행하는 메모리 장치
KR102354848B1 (ko) * 2014-11-28 2022-01-21 삼성전자주식회사 캐시 메모리 장치 및 이를 포함하는 전자 시스템
JP6749072B2 (ja) * 2014-12-12 2020-09-02 富士通株式会社 ストレージ管理装置及びストレージ管理プログラム
US9785552B2 (en) * 2015-01-14 2017-10-10 Kabushiki Kaisha Toshiba Computer system including virtual memory or cache

Also Published As

Publication number Publication date
US20160266827A1 (en) 2016-09-15
JP2016170696A (ja) 2016-09-23

Similar Documents

Publication Publication Date Title
JP6538940B2 (ja) 不揮発性メモリの制御方法
JP6517549B2 (ja) メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム
US10761977B2 (en) Memory system and non-transitory computer readable recording medium
JP6479639B2 (ja) 情報処理装置、プログラム、及び、情報処理システム
JP5597666B2 (ja) 半導体記憶装置、情報処理システムおよび制御方法
JP6406707B2 (ja) 半導体記憶装置
TWI502594B (zh) 用於快閃儲存裝置之半區塊管理
TW201939288A (zh) 資料移動方法及儲存控制器
JP6034183B2 (ja) 半導体記憶装置
KR20150022630A (ko) 스토리지 디바이스 및 데이터 처리 방법
US20220237114A1 (en) Memory system and non-transitory computer readable recording medium
JP5996497B2 (ja) ストレージ装置
KR20180126656A (ko) 데이터 저장 장치 및 그것의 동작 방법
US10235284B2 (en) Memory system
US9582411B2 (en) Memory controller, storage apparatus, information processing system, and control method therefor
JP6689325B2 (ja) メモリ装置の制御方法
TW201624490A (zh) 記憶體裝置及非暫態電腦可讀取記錄媒體
JP2007233838A (ja) メモリシステムの制御方法
US20220253381A1 (en) Memory system and non-transitory computer readable recording medium
JP2019212103A (ja) メモリシステム
JP5989614B2 (ja) ストレージ装置
JP6313242B2 (ja) メモリシステム及びプログラム
TW201624288A (zh) 快取記憶體裝置及非暫態電腦可讀取記錄媒體
JP5694212B2 (ja) 管理情報生成方法およびメモリシステム
JP6276208B2 (ja) メモリシステム及びプログラム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20170605

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180424

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180904

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20180905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181029

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: 20190319

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190418

R150 Certificate of patent or registration of utility model

Ref document number: 6517549

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350