[go: up one dir, main page]

JP2014182812A - Data storage device - Google Patents

Data storage device Download PDF

Info

Publication number
JP2014182812A
JP2014182812A JP2014044947A JP2014044947A JP2014182812A JP 2014182812 A JP2014182812 A JP 2014182812A JP 2014044947 A JP2014044947 A JP 2014044947A JP 2014044947 A JP2014044947 A JP 2014044947A JP 2014182812 A JP2014182812 A JP 2014182812A
Authority
JP
Japan
Prior art keywords
memory
data
solid state
control circuit
interface
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.)
Pending
Application number
JP2014044947A
Other languages
Japanese (ja)
Other versions
JP2014182812A5 (en
Inventor
Dale Murphy Robert
ロバート・デイル・マーフィー
Edward Moon John
ジョン・エドワード・ムーン
Keeler Stanton
スタントン・キーラー
Esten Bohn Richard
リチャード・エステン・ボーン
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.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
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
Priority claimed from US14/028,528 external-priority patent/US20160011965A1/en
Application filed by Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of JP2014182812A publication Critical patent/JP2014182812A/en
Publication of JP2014182812A5 publication Critical patent/JP2014182812A5/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a data storage device having a hybrid storage architecture.SOLUTION: A device and a method achieve a changing pass-through storage architecture. The device includes a control circuit configured so as to allocate data at least between a first memory hierarchy and a second memory hierarchy. The first memory hierarchy can include a solid-state memory. The second memory hierarchy can include a non-volatile memory. In one embodiment, a pass-through storage device can be achieved. The device in the embodiment can further include the control circuit, and one or more interfaces configured so as to permit communication between one or more memories, devices and systems, and any combination thereof.

Description

関連出願の相互参照
本出願は、2013年3月15日に出願された、「パススルー階層記憶設計を用いた拡張容量SSD(Extended Capacity SSD Using Pass Through Tiered Storage Design)」という題名の係属中の米国仮特許出願第61/790,978号に対する優先権を主張するものであり、これはその全体が参照により本明細書に組み込まれる。
CROSS REFERENCE TO RELATED APPLICATIONS This application is a pending US application entitled “Extended Capacity SSD Using Pass Through Tiered Storage Design” filed March 15, 2013. This application claims priority to provisional patent application 61 / 790,978, which is hereby incorporated by reference in its entirety.

本開示は、少なくとも2つの異なるタイプのデータ記憶媒体を持つハイブリッド記憶アーキテクチャを有するデータ記憶デバイスに関する。   The present disclosure relates to data storage devices having a hybrid storage architecture with at least two different types of data storage media.

米国仮特許出願第61/790,978号US Provisional Patent Application No. 61 / 790,978

本明細書に開示される実施形態は、一般的に、パススルー型記憶デバイスのための装置および方法を提供する。装置の一部の実施形態は、少なくとも第1のメモリ階層と第2のメモリ階層との間にデータを割り当てるように構成された制御回路を含み得る。第1のメモリ階層は、不揮発性ソリッドステートメモリを含み、第2のメモリ階層は、別の不揮発性メモリを含むことがある。この装置は、ホストインターフェースおよびデータ記憶デバイスインターフェースを含み得る。このホストインターフェースは、制御回路とホストデバイスとの間で通信するように構成され得る。このデータ記憶デバイスインターフェースは、制御回路と、第2のメモリ階層を含むデータ記憶デバイスとの間で通信するように構成され得る。データ記憶デバイスインターフェースは、データ記憶デバイスがホストデバイスと直接にインターフェースしているかのように該装置とインターフェースするように、ホストインターフェースを模倣または複製し得る。制御回路は、ホストデバイス、第1のメモリ階層、および第2のメモリ階層に対するデータの転送を管理するように更に構成され得る。   Embodiments disclosed herein generally provide apparatus and methods for pass-through storage devices. Some embodiments of the apparatus may include a control circuit configured to allocate data between at least the first memory hierarchy and the second memory hierarchy. The first memory hierarchy may include non-volatile solid state memory and the second memory hierarchy may include another non-volatile memory. The apparatus can include a host interface and a data storage device interface. The host interface may be configured to communicate between the control circuit and the host device. The data storage device interface may be configured to communicate between a control circuit and a data storage device that includes a second memory hierarchy. The data storage device interface may mimic or duplicate the host interface to interface with the device as if the data storage device were directly interfaced with the host device. The control circuit may be further configured to manage the transfer of data to the host device, the first memory hierarchy, and the second memory hierarchy.

一部の実施形態は、制御回路、イニシエータインターフェース、および目標インターフェースを含む装置を提供する。制御回路は、少なくとも第1のメモリ階層および第2のメモリ階層との間にデータを割り当てるように構成され得るが、第1のメモリ階層は、不揮発性ソリッドステートメモリを含み、第2のメモリ階層は、別の不揮発性メモリを含む。このイニシエータインターフェースは、制御回路とイニシエータデバイスとの間で通信するように構成され得る。この目標インターフェースは、制御回路と目標デバイスとの間で通信するように構成され得る。イニシエータインターフェースおよび目標インターフェースのうちの少なくとも一方は、第2のメモリ階層インターフェースの不揮発性メモリを含むデータ記憶デバイスが、ホストデバイスとインターフェースしているかのように該装置とインターフェースするように、ホストコントローラを模倣し得る。   Some embodiments provide an apparatus that includes a control circuit, an initiator interface, and a target interface. The control circuit may be configured to allocate data between at least the first memory hierarchy and the second memory hierarchy, wherein the first memory hierarchy includes a non-volatile solid state memory, and the second memory hierarchy Includes another non-volatile memory. The initiator interface can be configured to communicate between the control circuit and the initiator device. The target interface may be configured to communicate between the control circuit and the target device. At least one of the initiator interface and the target interface is configured to cause the host controller to interface with the device as if the data storage device including the non-volatile memory of the second memory hierarchy interface is interfaced with the host device. Can be imitated.

ある実施形態は、選択されたデータを書き込む要求をホストシステムから受信するように構成された制御回路を含む装置を提供する。この制御回路は、選択されたデータを第1の不揮発性ソリッドステートメモリにキャッシングするように更に構成され得る。制御回路は、選択されたデータの少なくともサブ集合を、トリガ事象に基づいて、第2の不揮発性メモリに更に記憶し得る。該装置は、ホストインターフェースおよびデータ記憶インターフェースを更に含み得る。ホストインターフェースは、制御回路とホストシステムとの間で通信するように構成され得る。データ記憶インターフェースは、制御回路と第2の不揮発性メモリとの間で通信するように構成され得る。データ記憶インターフェースは、データ記憶デバイスが、ホストシステムと直接にインターフェースしているかのように該装置とインターフェースするように、ホストインターフェースを模倣し得る。   Certain embodiments provide an apparatus that includes a control circuit configured to receive a request to write selected data from a host system. The control circuit may be further configured to cache selected data to the first non-volatile solid state memory. The control circuit may further store at least a subset of the selected data in the second non-volatile memory based on the trigger event. The apparatus may further include a host interface and a data storage interface. The host interface may be configured to communicate between the control circuit and the host system. The data storage interface may be configured to communicate between the control circuit and the second non-volatile memory. The data storage interface may mimic the host interface so that the data storage device interfaces with the device as if it were directly interfaced with the host system.

パススルー型記憶デバイスのある実施形態の図である。1 is a diagram of an embodiment of a pass-through storage device. FIG. パススルー型記憶デバイスのある実施形態の機能ブロック図である。1 is a functional block diagram of an embodiment of a pass-through storage device. FIG. パススルー型記憶デバイスのある実施形態の機能ブロック図である。1 is a functional block diagram of an embodiment of a pass-through storage device. FIG. パススルー型記憶デバイスのための方法のある実施形態のフローチャートである。2 is a flowchart of an embodiment of a method for a pass-through storage device. パススルー型記憶デバイスのための方法のある実施形態のフローチャートである。2 is a flowchart of an embodiment of a method for a pass-through storage device.

実施形態の以下の詳細な説明において、本明細書の一部を形成し、その明細書において特定の実施形態の例示として示される、添付の図面に対する参照がなされる。本開示の範囲から逸脱することなく、説明する様々な実施形態の特徴を組み合わせ得ること、他の実施形態が利用し得ること、および構造を変更し得ることを理解すべきである。   In the following detailed description of the embodiments, reference is made to the accompanying drawings that form a part hereof, and which are shown by way of illustration of specific embodiments in the specification. It should be understood that features of the various embodiments described may be combined, other embodiments may be utilized, and structures may be changed without departing from the scope of the present disclosure.

図1は、本発明の一部の実施形態に関わる、拡張ソリッドステートデバイス(extended solid state device:XSSD)モジュール104を含むシステム100の図である。システム100は、ホスト102と、XSSDモジュール104に接続することが可能なデータ記憶媒体(data storage medium:DSM)106(以後,DSM106と呼ぶ)を有するデータ記憶デバイス(data storage device:DSD)とを更に含み得る。   FIG. 1 is a diagram of a system 100 that includes an extended solid state device (XSSD) module 104, according to some embodiments of the present invention. The system 100 includes a host 102 and a data storage device (DSD) having a data storage medium (DSM) 106 (hereinafter referred to as DSM 106) that can be connected to the XSSD module 104. It may further include.

ホスト102はまた、ホストシステムまたはホストコンピュータとも呼ばれ得る。ホスト102は、デスクコンピュータ、ラップトップコンピュータ、サーバ、携帯情報端末(personal digital assistant:PDA)、電話、音楽プレーヤー、別の電子デバイスまたはこれらのいずれかの組み合わせであったりする。DSM106は、ホスト102に関してリストアップしたデバイスのうちのいずれか、または、ハードディスクドライブ(HDD)などの、データを記憶するまたは回収するために用いられ得る他のいずれかのデバイスであり得る。   Host 102 may also be referred to as a host system or host computer. The host 102 may be a desk computer, laptop computer, server, personal digital assistant (PDA), telephone, music player, another electronic device, or any combination thereof. The DSM 106 can be any of the devices listed for the host 102 or any other device that can be used to store or retrieve data, such as a hard disk drive (HDD).

一部の実施形態では、XSSDモジュール104は、ホスト102およびDSM106に接続して、これらとインターフェースするように構成されたブリッジアダプタに統合することが可能である。こうする代わりにまたはこうすることに加えて、XSSDモジュール104は、ホスト102またはDSM106に統合することが可能である。   In some embodiments, the XSSD module 104 can be integrated into a bridge adapter that is configured to connect to and interface with the host 102 and the DSM 106. Alternatively or in addition to this, the XSSD module 104 can be integrated into the host 102 or DSM 106.

XSSDモジュール104は、XSSDモジュール104をホスト102、DSM106、または双方から物理的に取り外すことを許容するコネクタを含み得る1つ以上のインターフェース108、110を介してホスト102およびDSM106と通信することが可能である。インターフェース108は、ハードウェア回路、ロジック、ファームウエアまたはこれらのいずれかの組み合わせを含み得る。一部の実施形態では、インターフェース108は、次の規格のうちの1つ以上に準拠するインターフェースを備える:ユニバーサルシリアルバス(universal serial bus:USB)、IEEE1394、シリアルアドバンストテクノロジーアタッチメント(serial advanced technology attachment:SATA)、エクスターナルSATA(eSATA)、パラレルアドバンストテクノロジーアタッチメント(parallel advanced technology attachment:PATA)、スモールコンピュータシステムインターフェース(small computer system interface:SCSI)、シリアルアタッチトSCSI(SAS)、ペリフェラルコンポーネントインターコネクトエクスプレス(peripheral component interconnect express:PCIe)、およびファイバチャネル(fiber channel:FC)。しかしながら、XSSDモジュール104が、ホスト102、DSM106、または双方と通信することを許容するのに適した他のいずれかのインターフェースを、用いることができる。XSSDモジュール104、DSM106、または双方は、ホスト102の筐体の内部または外部に配置し得る。   The XSSD module 104 can communicate with the host 102 and the DSM 106 via one or more interfaces 108, 110 that may include connectors that allow the XSSD module 104 to be physically removed from the host 102, the DSM 106, or both. It is. Interface 108 may include hardware circuitry, logic, firmware, or any combination thereof. In some embodiments, interface 108 comprises an interface that conforms to one or more of the following standards: universal serial bus (USB), IEEE 1394, serial advanced technology attachment: SATA), external SATA (eSATA), parallel advanced technology attachment (PATA), small computer system interface (SCSI), serial attached SCSI (SAS), peripheral component interconnect express (peripheral component interconnect express (PCIe), and fiber channel (FC). However, any other interface suitable to allow the XSSD module 104 to communicate with the host 102, the DSM 106, or both can be used. The XSSD module 104, the DSM 106, or both may be located inside or outside the housing of the host 102.

図2を参照すると、拡張ソリッドステートモジュールデバイス(XSSD)モジュール104を含むシステム200の例示の実施形態の機能ブロック図が示されている。XSSDモジュール104は、例えば、1つ以上のタイプの不揮発性データ記憶媒体などの様々なデバイスをそこに接続することを許容するための複数のポートを含み得る。   Referring to FIG. 2, a functional block diagram of an exemplary embodiment of a system 200 that includes an extended solid state module device (XSSD) module 104 is shown. The XSSD module 104 may include multiple ports to allow various devices, such as one or more types of non-volatile data storage media, to be connected thereto.

XSSDモジュール104は、イニシエータインターフェース202および目標インターフェース204を含み得る。イニシエータインターフェース202は、XSSDモジュール104がイニシエータ206とインターフェースすることを許容するように構成することが可能であり、目標インターフェース204は、XSSDモジュール104が目標208と通信することを許容するように構成することが可能である。一部の実施形態では、イニシエータ206は、図1のホスト102に関連して上述したタイプのデバイスなどのホストデバイスであり得る。目標208は、図1のDSM106に関連して上述したタイプなどのデータ記憶デバイスであり得る。他の実施形態では、データ記憶デバイスがイニシエータ206とみなされ、ホストデバイスが目標208とみなされる場合もある。   The XSSD module 104 may include an initiator interface 202 and a target interface 204. Initiator interface 202 can be configured to allow XSSD module 104 to interface with initiator 206, and target interface 204 can be configured to allow XSSD module 104 to communicate with target 208. It is possible. In some embodiments, initiator 206 may be a host device, such as a device of the type described above in connection with host 102 of FIG. Target 208 may be a data storage device such as the type described above in connection with DSM 106 of FIG. In other embodiments, the data storage device may be considered the initiator 206 and the host device may be considered the target 208.

XSSDモジュール104は、1つ以上の関連付けされたプロセッサ212を有する制御回路210を含むことができる。制御回路210は、イニシエータ206、目標208、または双方から受信された、またはこれによって要求されたデータの割り当てを追跡して判定するハイブリッドファイルシステムを制御して実行するように構成し得る。   The XSSD module 104 can include a control circuit 210 having one or more associated processors 212. The control circuit 210 may be configured to control and execute a hybrid file system that tracks and determines the allocation of data received from or requested by the initiator 206, the target 208, or both.

一部の実施形態では、XSSDモジュール104は、少なくとも部分的に、1つ以上のキャッシュ基準を満たすデータのためのキャッシュとして用いられることになっているソリッドステートメモリ(SSM)214を含み得る。SSM214は、スタティックランダムアクセスメモリ(SRAM)またはダイナミックランダムアクセスメモリ(DRAM)などの揮発性ソリッドステートメモリ(VSSM)であったり、またはSSM214は、フラッシュメモリなどの不揮発性ソリッドステートメモリ(NVSSM)であったりする。次の説明は主としてNVSSM、すなわちフラッシュメモリ214を参照するが、他のいかなるタイプまたは、SSM214もしくはNVSSMの組み合わせも用い得ることを理解すべきである。   In some embodiments, the XSSD module 104 may include a solid state memory (SSM) 214 that is to be used at least in part as a cache for data that meets one or more cache criteria. SSM 214 is volatile solid state memory (VSSM) such as static random access memory (SRAM) or dynamic random access memory (DRAM), or SSM 214 is non-volatile solid state memory (NVSSM) such as flash memory. Or The following description primarily refers to NVSSM, ie flash memory 214, but it should be understood that any other type or combination of SSM 214 or NVSSM may be used.

XSSDモジュール104は、バッファメモリ218として用いられる1つ以上のメモリユニットに/からデータを割り当てることが可能なバッファマネージャ216を含み得る。例えば、XSSDモジュール104は、イニシエータ206に/から、目標208に/から、NVSSMに/から、またはこれらのいずれかの組み合わせに/からの読み出し動作および書き込み動作中に送信されたデータを一時的に記憶するために用いられる1つ以上のSRAMまたはDRAMユニット218を有し得る。バッファメモリ218は、アクセス動作を実行待ち状態に一時的に記憶することが可能な指令待ち行列(図示せず)を含み得る。SRAM/DRAMユニット218は、XSSDモジュール104内に常駐しているものとして図2に示されているが、これらは、これに加えてまたはこうする代わりに、例えば、図3に示すDRAMユニット312などのXSSDモジュール104の外部に配置され得ることを理解すべきである。   The XSSD module 104 may include a buffer manager 216 that can allocate data to / from one or more memory units used as the buffer memory 218. For example, the XSSD module 104 may temporarily transmit data transmitted during read and write operations to / from the initiator 206, to / from the target 208, to / from the NVSSM, or any combination thereof. There may be one or more SRAM or DRAM units 218 used for storage. The buffer memory 218 may include a command queue (not shown) that can temporarily store access operations in an execution wait state. Although the SRAM / DRAM unit 218 is shown in FIG. 2 as resident in the XSSD module 104, these may be in addition to or instead of, for example, the DRAM unit 312 shown in FIG. It should be understood that the external XSSD module 104 may be located externally.

XSSDモジュール104は、先入れ先出し(first-in-first-out:FIFO)メモリユニット220と、自身は、制御回路210に通信可能に連結されるバッファマネージャ216に対してフラッシュメモリ214を通信可能に連結するフラッシュプロトコルプロセッサ222とを含むことが更に可能である。FIFOメモリユニット220は、バッファマネージャ216からデータを受信して、このデータを、それが先入れ先出し方式でフラッシュプロトコルプロセッサ222に送信されるまで記憶し得る。FIFOメモリユニット220は、FIFOメモリユニット220に受信されたデータにチェックを実施し、かつこのデータの保全性が維持されるようにいかなる誤りビットをも訂正するために、誤り訂正符号(error correction code:ECC)を含むことが可能である。   The XSSD module 104 communicatively couples the flash memory 214 to a first-in-first-out (FIFO) memory unit 220 and a buffer manager 216 communicatively coupled to the control circuit 210. It is further possible to include a flash protocol processor 222. The FIFO memory unit 220 may receive data from the buffer manager 216 and store this data until it is sent to the flash protocol processor 222 in a first-in first-out manner. The FIFO memory unit 220 performs a check on the data received by the FIFO memory unit 220 and corrects any error bits so that the integrity of this data is maintained. : ECC).

フラッシュプロトコルプロセッサ222は、フラッシュプロトコルプロセッサ222がフラッシュメモリ214に記憶するに適したフォーマットでデータを送信するように1つ以上の通信プロトコルに従ってFIFOメモリユニット220から受信したデータを抽出し/処理し/構成することに専用の特殊化したプロセッサであり得る。   The flash protocol processor 222 extracts / processes / receives data received from the FIFO memory unit 220 according to one or more communication protocols so that the flash protocol processor 222 transmits the data in a format suitable for storage in the flash memory 214. It can be a specialized processor dedicated to configuration.

こうする代わりにまたはこうすることに加えて、XSSDモジュール104は、1つ以上の外部フラッシュ(または他のいずれかのタイプのNVSSM)メモリユニット214の取り付けを許容するように構成され得る。図2は、1つ以上のフラッシュ入力/出力(I/O)ポート224を介してフラッシュプロトコルプロセッサ222に通信可能に連結されているフラッシュメモリ214の機能を示す。1つの外部フラッシュメモリ214が示されているが、複数の外部フラッシュメモリユニット214を、XSSDモジュール104に取り付けることが可能であることを理解すべきである。   Alternatively or in addition to this, the XSSD module 104 may be configured to allow installation of one or more external flash (or any other type of NVSSM) memory unit 214. FIG. 2 illustrates the functionality of flash memory 214 that is communicatively coupled to flash protocol processor 222 via one or more flash input / output (I / O) ports 224. Although one external flash memory 214 is shown, it should be understood that multiple external flash memory units 214 can be attached to the XSSD module 104.

XSSDモジュール104は、XSSDモジュール104に対するGPIOピン(図示せず)の動作を制御することが可能な汎用の入力/出力(general purpose input/output:GPIO)制御機器226を更に含み得る。その上、XSSDモジュール104は、XSSDモジュール104と組み合わせて用いられるデバイスを接続するのに適した1つ以上の更なるポートを更に含み得る。例えば、XSSDモジュール104は、モデムまたは類似の通信デバイスとインターフェースするために、RS−232規格に準拠した1つ以上のシリアルポート228を含むことがある。別の例として、XSSDモジュール104は、例えば、XSSDモジュール104の問題点を診断するために用いることが可能な試験デバイスとインターフェースするために、1つ以上の診断ポート230を含むことがある。   The XSSD module 104 may further include a general purpose input / output (GPIO) controller 226 that can control the operation of GPIO pins (not shown) to the XSSD module 104. Moreover, the XSSD module 104 may further include one or more additional ports suitable for connecting devices used in combination with the XSSD module 104. For example, the XSSD module 104 may include one or more serial ports 228 compliant with the RS-232 standard for interfacing with a modem or similar communication device. As another example, the XSSD module 104 may include one or more diagnostic ports 230, for example, to interface with a test device that can be used to diagnose problems with the XSSD module 104.

図3は、拡張ソリッドステートデバイス(XSSD)モジュール104を含むシステム300の別の例示の実施形態の機能ブロック図を示す。XSSDモジュール104は、一部の実施形態では、図2を参照して上述した制御回路210の例であるコントローラ302を含み得る。   FIG. 3 shows a functional block diagram of another exemplary embodiment of a system 300 that includes an extended solid state device (XSSD) module 104. The XSSD module 104 may include a controller 302, which in some embodiments is an example of the control circuit 210 described above with reference to FIG.

コントローラ302は、ホストコントローラ304を含むインターフェースを介してホストシステム102と通信し得る。コントローラ302はまた、ホストインターフェースを模倣するコントローラ306を含むインターフェース110を介してデータ記憶デバイス(DSD)106と通信することが可能である。ホストインターフェース模倣コントローラ306が模倣すると言われるのは、それが、DSD106がホストシステム102と直接にインターフェースしているかのようにXSSDモジュール104とインターフェースするように、すなわちDSD106がXSSDモジュール104とインターフェースすることとホストシステム102とインターフェースすることとの間に相違がありえないようにホストコントローラ304を複製するように構成することが可能であるからである。   Controller 302 may communicate with host system 102 via an interface that includes host controller 304. The controller 302 can also communicate with a data storage device (DSD) 106 via an interface 110 that includes a controller 306 that mimics a host interface. The host interface mimic controller 306 is said to mimic that it interfaces with the XSSD module 104 as if the DSD 106 interfaces directly with the host system 102, ie, the DSD 106 interfaces with the XSSD module 104. This is because the host controller 304 can be configured to be replicated so that there can be no difference between the interface and the host system 102.

コントローラ302は、1つ以上のNVSSMコントローラ310を介して1つ以上の不揮発性ソリッドステートメモリ(NVSSM)ユニット308と更に通信し得る。一部の実施形態では、NVSSMユニット308は、NANDフラッシュメモリユニットであり、NVSSMコントローラ310は、NANDコントローラである。XSSDモジュール104は、NVSSMユニット308を不揮発性キャッシュとして用い、DSD106を永久記憶装置として更に用い得る。したがって、XSSDモジュール104は、不揮発性キャッシュとして用いるのに適したいずれかのタイプのメモリと、永久記憶装置として用いるのに適したいずれかのタイプのメモリとに連結され、かつこれらと通信するように構成され得ることを理解すべきである。   The controller 302 may further communicate with one or more non-volatile solid state memory (NVSSM) units 308 via one or more NVSSM controllers 310. In some embodiments, the NVSSM unit 308 is a NAND flash memory unit and the NVSSM controller 310 is a NAND controller. The XSSD module 104 may further use the NVSSM unit 308 as a non-volatile cache and the DSD 106 as a permanent storage device. Thus, the XSSD module 104 is coupled to and in communication with any type of memory suitable for use as a non-volatile cache and any type of memory suitable for use as a permanent storage device. It should be understood that it can be configured as follows.

コントローラ302は、バッファメモリコントローラ314を含むインターフェースを介してバッファメモリユニット312と更に通信し得る。一部の実施形態では、バッファメモリコントローラ314は、バッファメモリ312に/からデータを割り当てるために用いられるバッファマネージャ316のコンポーネントであり得る。バッファメモリユニット312は、イニシエータ206に/から、目標208に/から、NVSSMに/から、またはこれらのいずれかの組み合わせに/からの読み出し動作および書き込み動作中に送信されたデータを一時的に記憶するために用いられ得る。バッファメモリユニット312は、アクセス動作を実行待ち状態に一時的に記憶することが可能な指令待ち行列(図示せず)を含み得る。バッファメモリユニット312は、XSSDモジュール104の外部の1つのDRAMユニットとして図3に示されているが、コントローラ302は、複数のバッファメモリユニット312(図2を参照して上述したように1つ以上のDRAMユニットを含む)と通信し得ることと、バッファメモリユニット312は、その上またはこうする代わりに、XSSDモジュール104内に常駐し得ることとを理解すべきである。   The controller 302 may further communicate with the buffer memory unit 312 via an interface that includes the buffer memory controller 314. In some embodiments, the buffer memory controller 314 may be a component of the buffer manager 316 that is used to allocate data to / from the buffer memory 312. The buffer memory unit 312 temporarily stores data transmitted during read and write operations to / from the initiator 206, to / from the target 208, to / from the NVSSM, or any combination thereof. Can be used to The buffer memory unit 312 may include a command queue (not shown) that can temporarily store access operations in an execution wait state. Although the buffer memory unit 312 is illustrated in FIG. 3 as one DRAM unit external to the XSSD module 104, the controller 302 may include a plurality of buffer memory units 312 (one or more as described above with reference to FIG. 2). It is to be understood that the buffer memory unit 312 can reside in the XSSD module 104 in addition to or instead.

一部の実施形態では、コントローラ302と、ホストシステム102、DSD106、NVSSMユニット308およびバッファメモリユニット312の各々との間のインターフェースは、次の規格のうちの1つ以上に準拠する1つ以上のインターフェースを備える:ユニバーサルシリアルバス(USB)、IEEE1394、シリアルアドバンストテクノロジーアタッチメント(SATA)、エクスターナルSATA(eSATA)、パラレルアドバンストテクノロジーアタッチメント(PATA)、スモールコンピュータシステムインターフェース(SCSI)、シリアルアタッチトSCSI(SAS)、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)およびファイバチャネル(FC)。しかしながら、コントローラ302が、ホストシステム102、DSD106、NVSSMユニット308、バッファメモリユニット312またはこれらの組み合わせと通信することを許容するのに適した他のいずれかのインターフェースを、用い得る。   In some embodiments, the interface between the controller 302 and each of the host system 102, DSD 106, NVSSM unit 308, and buffer memory unit 312 is one or more compliant with one or more of the following standards: Interface: Universal Serial Bus (USB), IEEE 1394, Serial Advanced Technology Attachment (SATA), External SATA (eSATA), Parallel Advanced Technology Attachment (PATA), Small Computer System Interface (SCSI), Serial Attached SCSI (SAS) Peripheral Component Interconnect Express (PCIe) and Fiber Channel (FC). However, any other interface suitable to allow the controller 302 to communicate with the host system 102, DSD 106, NVSSM unit 308, buffer memory unit 312 or combinations thereof may be used.

コントローラ302は、指令CPU318、変換層CPU320、指令メモリ322およびデータメモリ324を含み得る。コントローラ302に送信された指令データは指令メモリ322に一時的に記憶することが可能であり、一方、コントローラ302に送信されたユーザデータはデータメモリ324に一時的に記憶することが可能である。したがって、指令メモリ322およびデータメモリ324は、事実上バッファメモリユニット、または中間バッファメモリユニット(すなわち、バッファメモリユニット312とCPU318、320との間に配置されたバッファメモリユニット)であって、指令CPU318、変換層CPU320または双方による実行を待っている読み出しおよび書き込みの動作中に送信されたデータを一時的に記憶するために用いられる。   The controller 302 can include a command CPU 318, a conversion layer CPU 320, a command memory 322, and a data memory 324. Command data transmitted to the controller 302 can be temporarily stored in the command memory 322, while user data transmitted to the controller 302 can be temporarily stored in the data memory 324. Accordingly, the command memory 322 and the data memory 324 are effectively buffer memory units or intermediate buffer memory units (ie, buffer memory units disposed between the buffer memory unit 312 and the CPUs 318, 320) and the command CPU 318. Used to temporarily store data transmitted during read and write operations awaiting execution by conversion layer CPU 320 or both.

一部の実施形態によれば、指令CPU318は、読み出し要求および書き込み要求を受信して、これら要求と関連付けられたユーザデータをホストシステム102、DSD106、NVSSMユニット308およびバッファメモリユニット312の間にこれら要求を割り当てるように構成することが可能である。変換層CPU320は、NVSSMユニット308に対する読み出しおよび書き込みのアクセスを管理するソフトウエア層を処理するように構成し得る。変換層CPU320またはプロトコルプロセッサは、NANDフラッシュメモリに割り当てられたデータを、この割り当てられたデータがNANDフラッシュメモリによって読み出し可能となるように変換するフラッシュ変換層(flash translation layer:FTL)CPUであったりする。   According to some embodiments, the command CPU 318 receives read requests and write requests and passes user data associated with these requests between the host system 102, DSD 106, NVSSM unit 308 and buffer memory unit 312. It can be configured to assign requests. The conversion layer CPU 320 may be configured to process a software layer that manages read and write access to the NVSSM unit 308. The conversion layer CPU 320 or the protocol processor may be a flash translation layer (FTL) CPU that converts data assigned to the NAND flash memory so that the assigned data can be read by the NAND flash memory. To do.

図2〜3に示すコンポーネントの一部または全ては、1つのプロセッサまたはコントローラチップに構築し得るし、また、XSSDモジュール104およびシステム200、300に関して本明細書で述べた機能および動作を実施するように、ファームウエアまたは回路を通じて、構成することが可能である。   Some or all of the components shown in FIGS. 2-3 may be built into a single processor or controller chip, and may perform the functions and operations described herein with respect to the XSSD module 104 and the systems 200, 300. In addition, it can be configured through firmware or a circuit.

図4は、階層型記憶アーキテクチャを実現するための方法400のある例示の実施形態のフローチャートを示す。図4によって例示される方法400の実施形態を説明するに際して、方法400のある態様を明瞭化するために、図1〜3も参照する。   FIG. 4 shows a flowchart of an example embodiment of a method 400 for implementing a hierarchical storage architecture. In describing the embodiment of the method 400 illustrated by FIG. 4, reference is also made to FIGS. 1-3 to clarify certain aspects of the method 400.

ブロック402で、XSSDモジュール104は読み出し要求を受信する。例えば、ホストシステム102は、読み出し要求をXSSDモジュール104に送信し得る。しかしながら、この読み出し要求は、XSSDモジュール104が通信可能に連結されるいかなるデバイスまたはシステムからも発し得る。   At block 402, the XSSD module 104 receives a read request. For example, the host system 102 may send a read request to the XSSD module 104. However, this read request can originate from any device or system to which the XSSD module 104 is communicatively coupled.

ブロック404で、XSSDモジュール104が、読み出し要求はキャッシュヒットである(すなわち、要求されたデータは要求時にはキャッシュに記憶されている)と判定すると、XSSDモジュール104は、この要求されたデータがDRAM(またはSRAM)にキャッシングされているかどうかを、ブロック405で判定する。要求されたデータがDRAM中にキャッシングされていれば、ブロック410で、XSSDモジュール104は、このデータをDRAMから回収して、このデータを読み出しリクエスタ(すなわち、この読み出し要求を始動したデバイスまたはシステム)に提供する。要求されたデータがDRAM中にキャッシングされていなければ、XSSDモジュール104は、このデータを第1のメモリ階層の不揮発性ソリッドステートメモリ(NVSSM)から、ブロック406で回収して、このデータを、ブロック410で、読み出しリクエスタに提供する。   If, at block 404, the XSSD module 104 determines that the read request is a cache hit (ie, the requested data is stored in the cache at the time of the request), the XSSD module 104 stores the requested data in DRAM ( Alternatively, it is determined in block 405 whether the data is cached in SRAM. If the requested data is cached in the DRAM, at block 410, the XSSD module 104 retrieves this data from the DRAM and reads this data from the requestor (ie, the device or system that initiated the read request). To provide. If the requested data is not cached in the DRAM, the XSSD module 104 retrieves this data from the first memory tier non-volatile solid state memory (NVSSM) at block 406 and stores this data in the block. At 410, the read requester is provided.

しかしながら、ブロック404で、XSSDモジュール104が、読み出し要求がキャッシュヒットではないと判定すれば、XSSDモジュール104は、このデータを第2のメモリ階層のデータ記憶デバイス/媒体から、ブロック408で回収して、このデータを、ブロック410で読み出しリクエスタに提供する。   However, if at block 404 the XSSD module 104 determines that the read request is not a cache hit, the XSSD module 104 retrieves this data from the second memory tier data storage device / medium at block 408. This data is then provided to the read requester at block 410.

本明細書では、「第1のメモリ階層」という用語は、キャッシュとして用いられるNVSSMを含むメモリ階層を、永久記憶装置として用いられる不揮発性メモリを含む「第2のメモリ階層」から区別するために用いられる。しかしながら、「第1のメモリ階層」および「第2のメモリ階層」という用語は、どちらも、本開示の実施形態を2つのメモリ階層に制限することを意図するものでもなく、また、第1のメモリ階層および第2のメモリ階層の前、間または後における1つ以上のメモリ階層を排除することを意図するものでもない。図2〜3のフラッシュメモリ214、308は、一部の実施形態の第1のメモリ階層に含まれるNVSSMを例示する。図3のデータ記憶デバイス/媒体(DSD/DSM)106は、一部の実施形態の第2のメモリ階層に含まれる不揮発性メモリを例示する。   In this specification, the term “first memory hierarchy” is used to distinguish a memory hierarchy containing NVSSM used as a cache from a “second memory hierarchy” containing non-volatile memory used as permanent storage. Used. However, the terms “first memory hierarchy” and “second memory hierarchy” are neither intended to limit the embodiments of the present disclosure to two memory hierarchies, and the first It is not intended to exclude one or more memory hierarchies before, during or after the memory hierarchy and the second memory hierarchy. The flash memories 214, 308 of FIGS. 2-3 illustrate NVSSMs that are included in the first memory hierarchy of some embodiments. The data storage device / medium (DSD / DSM) 106 of FIG. 3 illustrates non-volatile memory included in the second memory hierarchy of some embodiments.

一部の実施形態では、XSSDモジュール104は、要求されたデータが、それぞれキャッシュ基準および永久記憶装置基準の一方または双方を満たすかどうかを判定する。XSSDモジュール104が、データがそのキャッシュ基準を満足すると判定すれば、データは第1のメモリ階層のNVSSMに、まだそこに記憶されていなければ、書き込まれる。XSSDモジュール104が、データがその永久記憶装置基準を満足すると判定すれば、データは第2のメモリ階層の不揮発性メモリを含むDSD/DSMに、まだそこに記憶されていなければ、書き込まれる。一部の実施形態では、キャッシュ基準、永久記憶装置基準または双方は、1つ以上のパラメータに基づいて事前決定される。しかしながら、一部の実施形態では、キャッシュ基準、永久記憶装置基準のためのパラメータ、または双方は、XSSDモジュール104によって決定するまたはオンザフライで更新することが可能である。キャッシュ基準、永久記憶装置基準または双方の基礎となり得るパラメータは、これに限られないが、年齢(タイミング)、容量(全体に対するパーセンテージ)、電力事象(例えば、シャットダウン)、検出されたアイドルタイム、他のパラメータ、またはこれらの組み合わせが可能である。   In some embodiments, the XSSD module 104 determines whether the requested data meets one or both of the cache criteria and the persistent storage criteria, respectively. If the XSSD module 104 determines that the data meets its cache criteria, the data is written to the NVSSM of the first memory hierarchy if it is not already stored there. If the XSSD module 104 determines that the data meets its permanent storage criteria, the data is written to the DSD / DSM that includes the non-volatile memory of the second memory hierarchy, if not already stored there. In some embodiments, the cache criteria, permanent storage criteria, or both are predetermined based on one or more parameters. However, in some embodiments, the cache criteria, parameters for permanent storage criteria, or both can be determined by the XSSD module 104 or updated on the fly. Parameters that may be the basis for cache criteria, permanent storage criteria, or both include, but are not limited to, age (timing), capacity (percentage of the whole), power events (eg, shutdown), detected idle time, etc. Or a combination of these are possible.

図5は、階層型記憶アーキテクチャを実現するための方法500の別の例示の実施形態のフローチャートである。図5に例示される方法500の実施形態を説明するに際して、方法500のある態様を明瞭化するために、図1〜3も参照する。   FIG. 5 is a flowchart of another exemplary embodiment of a method 500 for implementing a hierarchical storage architecture. In describing the embodiment of the method 500 illustrated in FIG. 5, reference is also made to FIGS. 1-3 to clarify certain aspects of the method 500.

ブロック502で、XSSDモジュール104は書き込み要求を受信する。例えば、ホストシステム102は、書き込み要求をXSSDモジュール104に送信し得る。しかしながら、この書き込み要求は、XSSDモジュール104が通信可能に連結されるいかなるデバイスまたはシステムからも発し得る。一部の実施形態では、書き込み要求は、揮発性メモリにバッファリングされた指令データおよびユーザデータを含み得る。   At block 502, the XSSD module 104 receives a write request. For example, the host system 102 may send a write request to the XSSD module 104. However, this write request can originate from any device or system to which the XSSD module 104 is communicatively coupled. In some embodiments, the write request may include command data and user data buffered in volatile memory.

方法500のある実施形態では、ブロック504で、XSSDモジュール104は、選択されたデータ(すなわち、受信された書き込み要求の結果、書き込まれることになっているデータ)を、第1のメモリ階層の不揮発性ソリッドステートメモリ(NVSSM)に書き込むことが可能である。したがって、全ての選択されたデータは、選択されたデータのいずれかをそれがどこか別のところでプッシュする前に、第1のメモリ階層のNVSSMにキャッシングすることが可能である。   In an embodiment of the method 500, at block 504, the XSSD module 104 transfers the selected data (ie, data that is to be written as a result of a received write request) to a non-volatile in the first memory hierarchy. It is possible to write to a solid state memory (NVSSM). Thus, all selected data can be cached in the first memory hierarchy NVSSM before pushing any of the selected data somewhere else.

ある実施形態では、XSSDモジュール104を通過する全てのデータは、NVSSMに記憶され得る。例えば、揮発性ランダムアクセスメモリであり得るキャッシュバッファにおけるしきい値時間後に、すべての書き込み内容をNVSSMに対して提供することが可能である。このしきい値時間の後で(または別のトリガに基づいて)NVSSMに対してキャッシュをフラッシュすると、フラッシュメモリの1ページに等しいものなどの最小量の書き込みデータが必要とされ得る。更に、XSSDモジュール104によって受信された読み出し内容は、NVSSMに記憶し得る。一部の実施形態では、読み出し指令によるデータはXSSDモジュール104に記憶されると、少なくとも項目が、NVSSMに記憶され得る。第一に、ホストによって要求された実際のデータが記憶され、第二に、更なる読み出しルックアヘッドデータがNVSSMに記憶され得る。例えば、ホスト102が論理ブロックアドレス(logical block address:LBA)100からデータを要求し、しかも、それがNVSSM中には既にない場合、XSSDモジュール104は、このデータをDSD106から回収して、このデータをLBA100からホスト102に返送する。XSSDモジュール104はまた、LBA100からのデータを、将来の読み出しのためにNVSSMに記憶し、また、ホスト102からの後続の要求がLBA101向けである場合に備えて、LBA101からの更なる読み出しルックアヘッドデータを記憶する。XSSDモジュール104かDSD106かのいずれかは、読み出しルックアヘッドデータに対する読み出しを始動することが可能であるが、これは次にXSSDモジュール104のNVSSMに記憶され得る。   In some embodiments, all data passing through the XSSD module 104 may be stored in the NVSSM. For example, all write content can be provided to the NVSSM after a threshold time in the cache buffer, which can be a volatile random access memory. After this threshold time (or based on another trigger), flushing the cache to the NVSSM may require a minimum amount of write data, such as one equal to one page of flash memory. Further, the read content received by the XSSD module 104 may be stored in the NVSSM. In some embodiments, when data from a read command is stored in the XSSD module 104, at least items may be stored in the NVSSM. First, the actual data requested by the host is stored, and second, further read lookahead data can be stored in the NVSSM. For example, if the host 102 requests data from a logical block address (LBA) 100 and it is not already in the NVSSM, the XSSD module 104 retrieves this data from the DSD 106 and returns this data Is returned from the LBA 100 to the host 102. The XSSD module 104 also stores data from the LBA 100 in the NVSSM for future reads, and further read look-ahead from the LBA 101 in case a subsequent request from the host 102 is directed to the LBA 101. Store the data. Either the XSSD module 104 or the DSD 106 can initiate a read for read lookahead data, which can then be stored in the NVSSM of the XSSD module 104.

ブロック506で、XSSDモジュール104は、選択されたデータのいずれかまたは全てに対して、永久記憶装置トリガ事象が発生したかどうか、または、1つ以上の永久記憶装置基準が満足されたかどうか、または、これらの組み合わせを判定する。イエスであれば、XSSDモジュール104は、ブロック508で、選択されたデータの少なくともサブ集合を第2のメモリ階層の不揮発性メモリに移動させる。永久記憶装置トリガ事象、永久記憶装置基準またはこれらの組み合わせは、年齢(タイミング)、容量(全体に対するパーセンテージ)、電力事象(例えば、シャットダウン)、検出されたアイドルタイム、他のパラメータまたはこれらの組み合わせなどの1つ以上のパラメータに基づいて判定され得る。   At block 506, the XSSD module 104 determines whether a permanent storage trigger event has occurred for any or all of the selected data, or whether one or more permanent storage criteria are met, or The combination of these is determined. If yes, the XSSD module 104 moves at least a subset of the selected data to non-volatile memory in the second memory hierarchy at block 508. Permanent storage trigger events, permanent storage criteria or combinations thereof include age (timing), capacity (percentage of total), power events (eg, shutdown), detected idle time, other parameters, or combinations thereof, etc. Can be determined based on one or more of the parameters.

図5は、方法500が、それが選択されたデータのいずれかをどこか別のところにプッシュする前に、第1のメモリ階層のNVSSMに対してすべての選択されたデータをキャッシングするところを図示しているが、ある実施形態では、例えば、図4を参照して上述したキャッシュ基準などの所定のまたはオンザフライで決定されたキャッシュ基準を満足するデータのみがキャッシングされ得る。   FIG. 5 illustrates that the method 500 caches all selected data to the NVSSM in the first memory hierarchy before pushing any of the selected data somewhere else. Although illustrated, in certain embodiments, only data that satisfies a predetermined or on-the-fly cache criterion, such as the cache criterion described above with reference to FIG. 4, may be cached.

図1〜5を参照して上述した装置および方法のこのような実施例を持つ一部の実施形態では、ハイブリッドデータ記憶システムは、ホストシステムまたはデータ記憶デバイス(例えば、ハードディスクドライブ(HDD))をほとんどまたは全く修正することなく実現することが可能である。更に、XSSDモジュール104は、不揮発性キャッシュとして用いられるまたはアドレス可能な記憶スペースとして用いられる複数のデバイスの間に、記憶スペースを選択的に割り当て得る。一部の例では、不揮発性ソリッドステートメモリ(NVSSM)は、入力するデータもしくは出力するデータまたは、HDDより読み出しアクセス時間が早いようにキャッシュにピン止めされたデータのために、不揮発性キャッシュとして用いられ得るが、一方、HDDは永久記憶装置として用いられ得る。ある実施形態では、ホストシステムに報告されたストレージの合計容量は、HDDの容量にNVSSMの容量を加えたものであり得る。更に、一部の実施形態では、複数の記憶デバイス/媒体は、互に対するバックアップとして機能し得るが、例えば、HDDは、NVSSMに対してバックアップであり得るし、逆も成り立つ。   In some embodiments with such examples of apparatus and methods described above with reference to FIGS. 1-5, the hybrid data storage system includes a host system or data storage device (eg, a hard disk drive (HDD)). It can be implemented with little or no modification. Further, the XSSD module 104 may selectively allocate storage space among multiple devices used as non-volatile caches or as addressable storage space. In some examples, a non-volatile solid state memory (NVSSM) is used as a non-volatile cache for data that is input or output or data that is pinned to the cache so that the read access time is faster than the HDD. On the other hand, the HDD can be used as a permanent storage device. In one embodiment, the total storage capacity reported to the host system may be the HDD capacity plus the NVSSM capacity. Further, in some embodiments, multiple storage devices / media may function as backups to each other, for example, an HDD may be a backup to NVSSM and vice versa.

XSSDモジュール104は、データをホストシステム、第1のメモリ階層および第2のメモリ階層の間に送信することが可能なように、少なくとも部分的にホストシステムに統合され得る。これに加えてまたはこうする代わりに、XSSDモジュール104は、データをホストシステム、第1のメモリ階層、および第2のメモリ階層の間に送信することが可能なように、第2のメモリ階層の不揮発性メモリを含むデータ記憶デバイスに、少なくとも部分的に統合され得る。これに加えてまたはこうする代わりに、XSSDモジュール104は、データをホストシステム、第1のメモリ階層、および第2のメモリ階層の間に送信することが可能なように、XSSDモジュール104が、ホストシステムと、第2のメモリ階層の不揮発性メモリを含むデータ記憶デバイスとに連結されることを許容するように構成されたブリッジアダプタに、少なくとも部分的に統合され得る。   The XSSD module 104 may be at least partially integrated into the host system so that data can be transmitted between the host system, the first memory hierarchy and the second memory hierarchy. In addition or alternatively, the XSSD module 104 can transmit data between the host system, the first memory tier, and the second memory tier so that data can be transmitted between the second memory tier and the second memory tier. It may be at least partially integrated into a data storage device including non-volatile memory. In addition or alternatively, the XSSD module 104 may allow the host to send data between the host system, the first memory hierarchy, and the second memory hierarchy. It may be at least partially integrated into a bridge adapter configured to allow coupling to the system and a data storage device that includes a non-volatile memory of the second memory hierarchy.

様々な実施形態によれば、本明細書に説明する方法は、コンピュータプロセッサまたはコントローラ206などのコントローラ上を走行する1つ以上のソフトウエアプログラムとして実現され得る。別の実施形態によれば、本明細書に記載された方法は、ディスクドライブを使用しているパーソナルコンピュータなどのコンピューティングデバイス上で動く1つ以上のソフトウェアプログラムとして実装され得る。限定されるものではないが、特定用途向け集積回路、プログラム可能な論理アレイ、および他のハードウェアデバイスを含む専用ハードウェアの実装は、本明細書に記載された方法を実装するように同様に構築され得る。更に、本明細書に記載された方法は、実行されるときにプロセッサに方法を行わせる命令を含むコンピュータで読み出し可能な媒体として実装され得る。   According to various embodiments, the methods described herein may be implemented as one or more software programs running on a controller, such as a computer processor or controller 206. According to another embodiment, the methods described herein may be implemented as one or more software programs running on a computing device such as a personal computer using a disk drive. Dedicated hardware implementations, including but not limited to application specific integrated circuits, programmable logic arrays, and other hardware devices are similarly implemented to implement the methods described herein. Can be built. Further, the methods described herein may be implemented as a computer readable medium containing instructions that, when executed, cause a processor to perform the method.

本明細書に記載された実施形態の実例は、さまざまな実施形態の構造の一般的な理解を与えることを意図される。実例は、本明細書に記載された構造もしくは方法を利用する装置およびシステムの要素や特徴の全ての完全な記載として供されることを意図されない。多くの他の実施形態は、開示を検討すれば、当業者に明らかであろう。他の実施形態は、構造的および論理的置換や変更が開示の範囲から逸脱することなくなされ得るように、利用され得、開示から導かれ得る。その上、特定の実施形態が本明細書に例示され記載されたが、同じまたは類似目的を達成するように設計された任意の後続の配置が、示された特定の実施形態に置換され得ることが理解されるべきである。   The examples of embodiments described herein are intended to give a general understanding of the structure of the various embodiments. The examples are not intended to serve as a complete description of all of the elements and features of apparatus and systems that utilize the structures or methods described herein. Many other embodiments will be apparent to those of skill in the art upon reviewing the disclosure. Other embodiments may be utilized and derived from the disclosure so that structural and logical substitutions and changes may be made without departing from the scope of the disclosure. Moreover, while specific embodiments have been illustrated and described herein, any subsequent arrangement designed to achieve the same or similar purpose can be substituted for the specific embodiments shown. Should be understood.

この開示は、さまざまな実施形態の任意のおよび全ての後続の適応または変形を包含することが意図される。上記実施形態の組み合わせ、および本明細書に特に記載されていない他の実施形態は、説明を再検討すれば、当業者に明らかになるであろう。更に、実例は、単に代表するものであり、縮尺に合わせて描かれていない可能性がある。実例の範囲内の一定部分は、誇張され得る一方で、他の部分は縮小され得る。したがって、開示および図面は、限定的なものではなくて、例示的なものであるとして、みなされるべきである。   This disclosure is intended to cover any and all subsequent adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the description. Further, the examples are merely representative and may not be drawn to scale. Certain parts within the scope of the examples may be exaggerated while other parts may be reduced. Accordingly, the disclosure and drawings are to be regarded as illustrative rather than restrictive.

100 システム、102 ホスト、104 XSSDモジュール、106 データ記憶媒体、108,110 インターフェース。   100 systems, 102 hosts, 104 XSSD modules, 106 data storage media, 108, 110 interfaces.

Claims (20)

装置であって、
少なくとも第1のメモリ階層と第2のメモリ階層との間にデータを割り当てるように構成された制御回路を備え、前記第1のメモリ階層は、不揮発性ソリッドステートメモリを含み、前記第2のメモリ階層は、別の不揮発性メモリを含み、
前記装置は、
前記制御回路とホストデバイスとの間で通信するように構成されたホストインターフェースと、
前記制御回路および、前記第2のメモリ階層を含むデータ記憶デバイスの間で通信するように構成され、前記データ記憶デバイスが前記ホストデバイスと直接にインターフェースしているかのように、前記データ記憶デバイスが前記装置とインターフェースするように前記ホストインターフェースを模倣する、データ記憶デバイスインターフェースとを備え、
前記制御回路は、前記ホストデバイス、前記第1のメモリ階層、および前記第2のメモリ階層に対するデータの転送を管理するようにさらに構成される、装置。
A device,
And a control circuit configured to allocate data between at least a first memory hierarchy and a second memory hierarchy, wherein the first memory hierarchy includes a non-volatile solid state memory, and the second memory The hierarchy includes another non-volatile memory,
The device is
A host interface configured to communicate between the control circuit and a host device;
The data storage device is configured to communicate between the control circuit and a data storage device including the second memory hierarchy, wherein the data storage device is directly interfaced with the host device. A data storage device interface that mimics the host interface to interface with the device;
The apparatus, wherein the control circuit is further configured to manage transfer of data to the host device, the first memory hierarchy, and the second memory hierarchy.
前記制御回路は、前記ホストデバイス、前記第1のメモリ階層、および前記第2のメモリ階層の間でデータを送信することが可能であるように、前記ホストデバイスに統合される、請求項1に記載の装置。   The control circuit of claim 1, wherein the control circuit is integrated with the host device so as to be able to transmit data between the host device, the first memory hierarchy, and the second memory hierarchy. The device described. 前記制御回路は、前記ホストデバイス、前記第1のメモリ階層、および前記第2のメモリ階層の間でデータを送信することが可能であるように、前記第2のメモリ階層の前記不揮発性メモリを含む前記データ記憶デバイスに統合される、請求項1に記載の装置。   The control circuit includes the non-volatile memory of the second memory hierarchy so that data can be transmitted between the host device, the first memory hierarchy, and the second memory hierarchy. The apparatus of claim 1, wherein the apparatus is integrated with the data storage device. 前記ホストインターフェースおよび前記データ記憶デバイスから接続を切ることが可能な個別に取り外し可能なハードウェアデバイスであって、バッファとして構成された不揮発性ソリッドステートメモリを含む、請求項1に記載の装置。   The apparatus of claim 1, comprising an individually removable hardware device that can be disconnected from the host interface and the data storage device, comprising a non-volatile solid state memory configured as a buffer. データが前記不揮発性ソリッドステートメモリに割り当てられると、前記割り当てられたデータが前記不揮発性ソリッドステートメモリによって読み出し可能なフォーマットとなるように、前記割り当てられたデータを変換するプロトコル変換層を実現するように構成された不揮発性ソリッドステートメモリプロトコルプロセッサをさらに備える、請求項4に記載の装置。   Implementing a protocol conversion layer for converting the allocated data so that when the data is allocated to the non-volatile solid state memory, the allocated data is in a format readable by the non-volatile solid state memory. 5. The apparatus of claim 4, further comprising a non-volatile solid state memory protocol processor configured in 前記制御回路と通信し、バッファとして構成された1つ以上の揮発性メモリユニットにデータを割り当てるように構成されたバッファマネージャと、
前記バッファマネージャから受信したデータを記憶し、前記受信したデータを前記不揮発性ソリッドステートメモリプロトコルプロセッサに送信するように構成された先入れ先出し(FIFO)メモリユニットとをさらに備える、請求項5に記載の装置。
A buffer manager configured to communicate with the control circuit and allocate data to one or more volatile memory units configured as buffers;
6. The apparatus of claim 5, further comprising a first in first out (FIFO) memory unit configured to store data received from the buffer manager and send the received data to the non-volatile solid state memory protocol processor. .
前記不揮発性ソリッドステートメモリはフラッシュメモリであり、前記不揮発性メモリは磁気データ記憶媒体であり、
前記装置は、前記制御回路と通信し、かつ、バッファとして構成された1つ以上の揮発性メモリユニットにデータを割り当てるように構成されたバッファマネージャをさらに備える、請求項5に記載の装置。
The non-volatile solid state memory is a flash memory, and the non-volatile memory is a magnetic data storage medium;
The apparatus of claim 5, further comprising a buffer manager configured to communicate with the control circuit and allocate data to one or more volatile memory units configured as buffers.
前記第1のメモリ階層と、
前記不揮発性ソリッドステートメモリプロトコルプロセッサからの出力部とをさらに備え、
前記出力部は、前記不揮発性ソリッドステートメモリプロトコルプロセッサを前記不揮発性ソリッドステートメモリに連結するように構成される、請求項5に記載の装置。
The first memory hierarchy;
An output from the non-volatile solid state memory protocol processor;
The apparatus of claim 5, wherein the output is configured to couple the non-volatile solid state memory protocol processor to the non-volatile solid state memory.
前記不揮発性ソリッドステートメモリプロトコルプロセッサと前記不揮発性ソリッドステートメモリとの間で通信するように構成された不揮発性ソリッドステートメモリインターフェースをさらに備え、
前記第1のメモリ階層は、前記装置から接続を切ることが可能な1つ以上の個別に取り外し可能なハードウェアデバイスに統合される、請求項5に記載の装置。
A non-volatile solid state memory interface configured to communicate between the non-volatile solid state memory protocol processor and the non-volatile solid state memory;
6. The apparatus of claim 5, wherein the first memory hierarchy is integrated into one or more individually removable hardware devices that can be disconnected from the apparatus.
前記制御回路は、
1つ以上のキャッシュ基準を満足するデータを、前記第1のメモリ階層の前記不揮発性ソリッドステートメモリにキャッシングし、かつ
前記第2のメモリ階層に対する1つ以上の記憶基準を満足するデータを、少なくとも部分的に記憶スペースとしての前記第2の階層の前記不揮発性メモリに記憶するようにさらに構成される、請求項1に記載の装置。
The control circuit includes:
Caching data that satisfies one or more cache criteria to the non-volatile solid state memory of the first memory hierarchy, and at least data that satisfies one or more storage criteria for the second memory hierarchy The apparatus of claim 1, further configured to store partly in the non-volatile memory of the second tier as storage space.
前記1つ以上のキャッシュ基準および前記1つ以上の記憶基準は、タイミング、容量、電力事象、およびアイドルタイムからなる群から選択される1つ以上のパラメータに基づいて判定される、請求項10に記載の装置。   11. The one or more cache criteria and the one or more storage criteria are determined based on one or more parameters selected from the group consisting of timing, capacity, power event, and idle time. The device described. 装置であって、
少なくとも第1のメモリ階層と第2のメモリ階層との間にデータを割り当てるように構成された制御回路を備え、前記第1のメモリ階層は、不揮発性ソリッドステートメモリを含み、前記第2のメモリ階層は、別の不揮発性メモリを含み、
前記装置は、
前記制御回路とイニシエータデバイスとの間で通信するように構成されたイニシエータインターフェースと、
前記制御回路と目標デバイスとの間で通信するように構成された目標インターフェースとを備え、
前記イニシエータインターフェースおよび前記目標インターフェースのうちの少なくとも一方は、前記第2のメモリ階層の前記不揮発性メモリを含むデータ記憶デバイスがホストデバイスとインターフェースしているかのように前記装置とインターフェースするように、ホストインターフェースを複製し、
前記制御回路は、前記ホストデバイス、前記第1のメモリ階層、および前記第2のメモリ階層に対するデータの転送を管理するようにさらに構成される、装置。
A device,
And a control circuit configured to allocate data between at least a first memory hierarchy and a second memory hierarchy, wherein the first memory hierarchy includes a non-volatile solid state memory, and the second memory The hierarchy includes another non-volatile memory,
The device is
An initiator interface configured to communicate between the control circuit and an initiator device;
A target interface configured to communicate between the control circuit and a target device;
At least one of the initiator interface and the target interface is configured to interface with the apparatus as if a data storage device including the non-volatile memory of the second memory hierarchy is interfaced with the host device. Duplicate the interface
The apparatus, wherein the control circuit is further configured to manage transfer of data to the host device, the first memory hierarchy, and the second memory hierarchy.
前記イニシエータインターフェースおよび前記目標インターフェースは各々は、インターフェース規格に準拠する、請求項12に記載の装置。   The apparatus of claim 12, wherein the initiator interface and the target interface each conform to an interface standard. 前記制御回路は、全てのデータを、前記第2のメモリ階層の前記不揮発性メモリに記憶する前に、前記第1のメモリ階層の前記不揮発性ソリッドステートメモリに前記データをキャッシングするように構成される、請求項12に記載の装置。   The control circuit is configured to cache the data in the nonvolatile solid state memory of the first memory hierarchy before storing all the data in the nonvolatile memory of the second memory hierarchy. The apparatus according to claim 12. 前記制御回路と通信し、また、バッファとして構成された1つ以上の揮発性メモリユニットにデータを割り当てるように構成されたバッファマネージャをさらに備える、請求項14に記載の装置。   The apparatus of claim 14, further comprising a buffer manager configured to communicate with the control circuit and to allocate data to one or more volatile memory units configured as buffers. データが前記不揮発性ソリッドステートメモリに割り当てられると、前記割り当てられたデータが前記不揮発性ソリッドステートメモリによって読み出し可能なフォーマットとなるように、前記割り当てられたデータを変換するプロトコル変換層を実現するように構成された不揮発性ソリッドステートメモリプロトコルプロセッサをさらに備える、請求項15に記載の装置。   Implementing a protocol conversion layer for converting the allocated data so that when the data is allocated to the non-volatile solid state memory, the allocated data is in a format readable by the non-volatile solid state memory. 16. The apparatus of claim 15, further comprising a non-volatile solid state memory protocol processor configured in 前記不揮発性ソリッドステートメモリプロトコルプロセッサと前記不揮発性ソリッドステートメモリとの間で通信するように構成された不揮発性ソリッドステートメモリインターフェースと、
前記バッファマネージャと、バッファとして構成された1つ以上の揮発性メモリユニットとの間で通信するように構成された揮発性メモリインターフェースとをさらに備える、請求項16に記載の装置。
A non-volatile solid state memory interface configured to communicate between the non-volatile solid state memory protocol processor and the non-volatile solid state memory;
The apparatus of claim 16, further comprising: the buffer manager and a volatile memory interface configured to communicate between one or more volatile memory units configured as a buffer.
装置であって、
制御回路を備え、
前記制御回路は、
選択されたデータを書き込む要求を、ホストシステムから受信し、
前記選択されたデータを、第1の不揮発性ソリッドステートメモリにキャッシングし、
前記選択されたデータの少なくともサブ集合を第2の不揮発性メモリに対して、トリガ事象に基づいて記憶するように構成され、
前記装置は、
前記制御回路と前記ホストシステムとの間で通信するように構成されたホストインターフェースと、
前記制御回路と前記第2の不揮発性メモリとの間で通信するように構成され、前記データ記憶デバイスが前記ホストシステムと直接にインターフェースしているかのように、前記データ記憶デバイスが前記装置とインターフェースするように前記ホストインターフェースを模倣する、データ記憶インターフェースとを備える、装置。
A device,
Equipped with a control circuit,
The control circuit includes:
Receives a request from the host system to write the selected data,
Caching the selected data into a first non-volatile solid state memory;
Configured to store at least a subset of the selected data to a second non-volatile memory based on a trigger event;
The device is
A host interface configured to communicate between the control circuit and the host system;
The data storage device is configured to communicate between the control circuit and the second non-volatile memory, and the data storage device interfaces with the apparatus as if the data storage device is directly interfaced with the host system. And a data storage interface that mimics the host interface.
前記選択されたデータは、前記選択されたデータが前記第1の不揮発性ソリッドステートメモリによって読み出し可能なフォーマットとなるように、前記第1の不揮発性ソリッドステートメモリにキャッシングされる前に、プロトコルプロセッサによって変換される、請求項18に記載の装置。   The selected data is transmitted to a protocol processor before being cached in the first non-volatile solid state memory such that the selected data is in a format readable by the first non-volatile solid state memory. The apparatus of claim 18, converted by 前記プロトコルプロセッサと前記第1の不揮発性ソリッドステートメモリとの間で通信するように構成された不揮発性ソリッドステートメモリインターフェースをさらに備える、請求項19に記載の装置。   The apparatus of claim 19, further comprising a non-volatile solid state memory interface configured to communicate between the protocol processor and the first non-volatile solid state memory.
JP2014044947A 2013-03-15 2014-03-07 Data storage device Pending JP2014182812A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361790978P 2013-03-15 2013-03-15
US61/790,978 2013-03-15
US14/028,528 US20160011965A1 (en) 2013-03-15 2013-09-16 Pass through storage devices
US14/028,528 2013-09-16

Publications (2)

Publication Number Publication Date
JP2014182812A true JP2014182812A (en) 2014-09-29
JP2014182812A5 JP2014182812A5 (en) 2015-03-26

Family

ID=51701386

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014044947A Pending JP2014182812A (en) 2013-03-15 2014-03-07 Data storage device

Country Status (2)

Country Link
JP (1) JP2014182812A (en)
KR (1) KR101569049B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107025190A (en) * 2016-02-02 2017-08-08 爱思开海力士有限公司 System and its operating method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102396441B1 (en) * 2015-08-11 2022-05-10 삼성전자주식회사 Storage device operating to prevent data loss when communication is interrupted

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09297659A (en) * 1996-04-30 1997-11-18 Toshiba Corp NONVOLATILE MEMORY DEVICE AND CONTROL METHOD THEREOF
JP2007193440A (en) * 2006-01-17 2007-08-02 Toshiba Corp Storage device using nonvolatile cache memory and control method thereof

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140040870A (en) 2009-07-07 2014-04-04 엘에스아이 코포레이션 Systems and methods for tiered non-volatile storage

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09297659A (en) * 1996-04-30 1997-11-18 Toshiba Corp NONVOLATILE MEMORY DEVICE AND CONTROL METHOD THEREOF
JP2007193440A (en) * 2006-01-17 2007-08-02 Toshiba Corp Storage device using nonvolatile cache memory and control method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107025190A (en) * 2016-02-02 2017-08-08 爱思开海力士有限公司 System and its operating method

Also Published As

Publication number Publication date
KR101569049B1 (en) 2015-11-20
KR20140113370A (en) 2014-09-24

Similar Documents

Publication Publication Date Title
US9304901B2 (en) System and method for handling I/O write requests
US8850114B2 (en) Storage array controller for flash-based storage devices
KR101480659B1 (en) Two-level system main memory
US8683131B2 (en) Direct memory address for solid-state drives
JP5759623B2 (en) Apparatus including memory system controller and associated method
US9824041B2 (en) Dual access memory mapped data structure memory
US9075729B2 (en) Storage system and method of controlling data transfer in storage system
US20160011965A1 (en) Pass through storage devices
US20150339058A1 (en) Storage system and control method
US11893269B2 (en) Apparatus and method for improving read performance in a system
US12386565B2 (en) Method and device for data storage based on redundant array of independent disks
US20130086308A1 (en) Storage device and method of accessing copy destination data
US9547460B2 (en) Method and system for improving cache performance of a redundant disk array controller
US9542284B2 (en) Buffered automated flash controller connected directly to processor memory bus
TW201608469A (en) Method and apparatus for efficiently destaging sequential I/O streams
TWI782847B (en) Method and apparatus for performing pipeline-based accessing management in a storage server
US20210255794A1 (en) Optimizing Data Write Size Using Storage Device Geometry
JP2014182812A (en) Data storage device
KR102435910B1 (en) Storage device and operation method thereof
WO2021048709A1 (en) Dynamically switching between memory copy and memory mapping to optimize 1/o performance

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150204

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160126

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160712

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20161011

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161117

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170323

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170404

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20170428

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180418