KR101569049B1 - Pass through storage devices - Google Patents

Pass through storage devices Download PDF

Info

Publication number
KR101569049B1
KR101569049B1 KR1020140026611A KR20140026611A KR101569049B1 KR 101569049 B1 KR101569049 B1 KR 101569049B1 KR 1020140026611 A KR1020140026611 A KR 1020140026611A KR 20140026611 A KR20140026611 A KR 20140026611A KR 101569049 B1 KR101569049 B1 KR 101569049B1
Authority
KR
South Korea
Prior art keywords
memory
data
solid state
tier
interface
Prior art date
Application number
KR1020140026611A
Other languages
Korean (ko)
Other versions
KR20140113370A (en
Inventor
로버트 데일 머피
존 에드워드 문
스탠턴 킬러
리차드 이스턴 본
Original Assignee
시게이트 테크놀로지 엘엘씨
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 시게이트 테크놀로지 엘엘씨 filed Critical 시게이트 테크놀로지 엘엘씨
Publication of KR20140113370A publication Critical patent/KR20140113370A/en
Application granted granted Critical
Publication of KR101569049B1 publication Critical patent/KR101569049B1/en

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/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

본 발명은 변환하는 패스 스루 스토리지 아키텍처를 구현하기 위한 장치 및 방법들에 관한 것이다. 실시예들은 일반적으로 적어도 제 1 메모리 티어 및 제 2 메모리 티어 간에 데이터를 할당하도록 구성된 제어 회로를 포함한다. 제 1 메모리 티어는 고체 상태 메모리를 포함할 수 있고 제 2 메모리 티어는 비휘발성 메모리를 포함할 수 있다. 일부 실시예들에서, 패스 스루 스토리지 디바이스가 구현될 수 있다. 실시예들은 추가로 제어 회로 및 하나 이상의 메모리들, 디바이스들, 시스템들, 또는 그것의 임의 조합 사이에서 통신을 허용하도록 구성된 하나 이상의 인터페이스들을 포함할 수 있다.The present invention relates to an apparatus and methods for implementing a translating pass-through storage architecture. Embodiments generally include a control circuit configured to allocate data between at least a first memory tier and a second memory tier. The first memory tier may comprise a solid state memory and the second memory tier may comprise a non-volatile memory. In some embodiments, a pass through storage device may be implemented. Embodiments may further include one or more interfaces configured to permit communication between the control circuitry and one or more memories, devices, systems, or any combination thereof.

Description

패스 스루 스토리지 디바이스들 {PASS THROUGH STORAGE DEVICES}[0001] PASS THROUGH STORAGE DEVICES [0002]

관련 출원들에 대한 상호 참조Cross reference to related applications

본 출원은 “패스 스루 티어된 스토리지 디자인을 이용하여 확장된 용량 SSD” 명칭의 2013년 3월 15일 출원되어 계류중인 U.S. 가특허 출원 번호 61/790,978에 대한 우선권을 주장하고, 그것의 내용은 그 전체가 참조로서 본 출원에 통합된다.This application is a continuation-in-part of U.S. Provisional Application No. < RTI ID = 0.0 > filed March 15,2013 < / RTI > entitled " Extended Capacity SSD Using Passthru Tiered Storage Design & Claims priority to patent application No. 61 / 790,978, the contents of which are incorporated by reference in their entirety.

본 발명은 적어도 두개의 개별 유형들의 데이터 스토리지 미디어를 갖는 하이브리드 스토리지 아키텍처를 갖는 데이터 스토리지 디바이스들에 관한 것이다. The present invention relates to data storage devices having a hybrid storage architecture having at least two separate types of data storage media.

본 출원에서 개시된 실시예들은 일반적으로 패스 스루 스토리지 디바이스를 위한 장치들 및 방법들을 제공한다. 장치의 일부 실시예들은 적어도 제 1 메모리 티어 및 제 2 메모리 티어 사이에서 데이터를 할당하도록 구성된 제어 회로를 포함할 수 있다. 상기 제 1 메모리 티어는 비휘발성 고체 상태 메모리를 포함할 수 있고 상기 제 2 메모리 티어는 다른 비휘발성 메모리를 포함할 수 있다. 상기 장치는 호스트 인터페이스 및 데이터 스토리지 디바이스 인터페이스를 추가로 포함할 수 있다. 상기 호스트 인터페이스는 상기 제어 회로 및 호스트 디바이스 사이에서 통신하도록 구성될 수 있다. 상기 데이터 스토리지 디바이스 인터페이스는 상기 제어 회로 및 상기 제 2 메모리 티어를 포함하는 데이터 스토리지 디바이스 사이에서 통신하도록 구성될 수 있다. 상기 데이터 스토리지 디바이스 인터페이스는 상기 호스트 인터페이스를 모조하거나 복제할 수 있어서 상기 데이터 스토리지 디바이스 인터페이스들은 마치 상기 데이터 스토리지 디바이스가 상기 호스트 디바이스와 직접 인터페이스 하는 것처럼 상기 장치와 인터페이스한다. 상기 제어 회로는 호스트 디바이스, 상기 제 1 메모리 티어 및 상기 제 2 메모리 티어로의 데이터 전송을 관리하도록 추가로 구성된다. The embodiments disclosed herein generally provide devices and methods for a pass through storage device. Some embodiments of the apparatus may comprise control circuitry configured to allocate data between at least a first memory tier and a second memory tier. The first memory tier may comprise a non-volatile solid state memory and the second memory tier may comprise another non-volatile memory. The device may further 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 the control circuit and a data storage device comprising the second memory tier. The data storage device interface may be able to fake or replicate the host interface so that the data storage device interfaces with the device as if the data storage device directly interfaces with the host device. The control circuit is further configured to manage data transfer to the host device, the first memory tier, and the second memory tier.

일부 실시예들은 제어 회로, 이니시에이터 인터페이스 및 타겟 인터페이스를 포함하는 장치를 제공한다. 상기 제어 회로는 적어도 제 1 메모리 티어 및 제 2 메모리 티어 간에 데이터를 할당하도록 구성될 수 있고 상기 제 1 메모리 티어는 비휘발성 고체 상태 메모리를 포함하고 상기 제 2 메모리 티어는 다른 비휘발성 메모리를 포함한다. 상기 이니시에이터 인터페이스는 상기 제어 회로 및 이니시에이터 디바이스 사이에서 통신하도록 구성될 수 있다. 상기 타켓 인터페이스는 상기 제어 회로 및 타켓 디바이스 사이에서 통신하도록 구성될 수 있다. 상기 이니시에이터 인터페이스 및 상기 타겟 인터페이스 중 적어도 하나는 호스트 제어기를 모조할 수 있어서 상기 제 2 메모리 티어의 상기 비휘발성 메모리를 포함하는 데이터 스토리지 디바이스는 마치 그것이 호스트 디바이스와 인터페이스 하는 것처럼 상기 장치와 인터페이스한다.Some embodiments provide an apparatus comprising a control circuit, an initiator interface and a target interface. The control circuit may be configured to allocate data between at least a first memory tier and a second memory tier and the first memory tier includes a non-volatile solid state memory and the second memory tier includes another non-volatile memory . The initiator interface may 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. Wherein at least one of the initiator interface and the target interface is capable of dodging a host controller such that the data storage device comprising the nonvolatile memory of the second memory tier interfaces with the device as if it were a host device.

임의의 실시예들은 선택된 데이터를 기록하기 위한 요청을 호스트 시스템으로부터 수신하도록 구성된 제어 회로를 포함하는 장치를 제공한다. 상기 제어 회로는 제 1 비휘발성 고체 상태 메모리에 상기 선택된 데이터를 캐시하도록 추가로 구성될 수 있다. 더구나, 상기 제어 회로는 트리거 이벤트에 기반하여 적어도 상기 선택된 데이터 서브셋을 제 2 비휘발성 메모리에 저장할 수 있다. 상기 장치는 호스트 인터페이스 및 데이터 스토리지 인터페이스를 추가로 포함할 수 있다. 상기 호스트 인터페이스는 상기 제어 회로 및 상기 호스트 시스템 사이에서 통신하도록 구성될 수 있다. 상기 데이터 스토리지 인터페이스는 상기 제어 회로 및 상기 제 2 비휘발성 메모리 사이에서 통신하도록 구성될 수 있다. 상기 데이터 스토리지 인터페이스는 상기 호스트 인터페이스를 모조할 수 있어서 상기 데이터 스토리지 디바이스 인터페이스들은 마치 상기 데이터 스토리지 디바이스가 상기 호스트 시스템과 직접 인터페이스 하는 것처럼 상기 장치와 인터페이스한다.Certain embodiments provide an apparatus comprising control circuitry configured to receive from a host system a request to write selected data. The control circuit may be further configured to cache the selected data in a first non-volatile solid state memory. In addition, the control circuit may store at least the selected data subset in the second non-volatile memory based on the trigger event. The device 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 nonvolatile memory. The data storage interface may counterfeit the host interface so that the data storage device interfaces interface with the device as if the data storage device directly interfaces with the host system.

도 1은 패스 스루 스토리지 디바이스의 임의 실시예들에 대한 다이어그램이다;
도 2는 패스 스루 스토리지 디바이스의 임의 실시예들에 대한 기능 블럭 다이어그램이다;
도 3은 패스 스루 스토리지 디바이스의 임의 실시예들에 대한 기능 블럭 다이어그램이다;
도 4는 패스 스루 스토리지 디바이스들을 위한 임의 실시예들의 방법의 흐름도이다; 및
도 5는 패스 스루 스토리지 디바이스들을 위한 임의 실시예들의 방법의 흐름도이다.
1 is a diagram of certain embodiments of a pass through storage device;
2 is a functional block diagram of certain embodiments of a pass through storage device;
3 is a functional block diagram of certain embodiments of a pass through storage device;
4 is a flow diagram of a method of certain embodiments for pass through storage devices; And
5 is a flow diagram of a method of certain embodiments for pass through storage devices.

실시예들에 대한 이하의 상세한 설명에는, 상세한 설명의 일부를 형성하는 첨부 도면들에 도면 번호가 제공되고, 도면들에는 특정 실시예들을 예시하는 방식으로 도시된다. 다양한 설명된 실시예들의 특징들은 조합될 수 있고, 다른 실시예들이 활용될 수 있고 구조상의 변화들이 본 발명의 범위를 벗어남이 없이 제공될 수 있다는 것이 이해될 것이다.In the following detailed description of the embodiments, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific embodiments. It is to be understood that the features of the various described embodiments may be combined, that other embodiments may be utilized, and structural changes may be provided without departing from the scope of the present invention.

도 1은 본 발명의 몇몇 실시예들에 따라 확장된 고체 상태 디바이스(XSSD) 모듈(104)를 포함하는 시스템(100)의 다이어그램을 보여준다. 시스템(100)은 XSSD 모듈(104)에 연결될 수 있는 데이터 스토리지 매체(DSM)(106)(이하에서 DSM(106)으로 지칭된다)을 갖는 데이터 스토리지 디바이스(DSD) 및 호스트(102)를 추가로 포함할 수 있다.FIG. 1 shows a diagram of a system 100 including an extended solid state device (XSSD) module 104 in accordance with some embodiments of the invention. The system 100 further includes a data storage device (DSD) 106 having a data storage medium (DSM) 106 (hereinafter referred to as DSM 106) that can be coupled to the XSSD module 104 and a host 102 .

호스트(102)는 또한 호스트 시스템 또는 호스트 컴퓨터로 지칭될 수 있다. 호스트(102)는 데스크탑 컴퓨터, 랩탑 컴퓨터, 서버, 개인 디지털 보조장치(PDA), 전화기, 뮤직 플레이어, 다른 전자 디바이스, 또는 그것의 임의 조합일 수 있다. DSM(106)은 호스트(102)에 대하여 상기 열거된 임의의 디바이스들이거나 하드 디스크 드라이브(HDD)와 같이 데이터를 저장하거나 검색하기 위해 사용될 수 있는 임의의 다른 디바이스일 수 있다. Host 102 may also be referred to as a host system or host computer. Host 102 may be a desktop computer, a laptop computer, a server, a personal digital assistant (PDA), a telephone, a music player, other electronic devices, or any combination thereof. The DSM 106 may be any of the devices listed above for the host 102 or any other device that may be used to store or retrieve data, such as a hard disk drive (HDD).

일부 실시예들에서, XSSD 모듈(104)은 호스트(102) 및 DSM(106)와 인터페이스하고 연결하도록 구성된 브리지 어댑터상에 통합될 수 있다. 대안적으로 또는 추가적으로, XSSD 모듈(104)은 호스트(102) 또는 DSM(106)상에 통합될 수 있다.In some embodiments, the XSSD module 104 may be integrated on a bridge adapter configured to interface with and connect to the host 102 and the DSM 106. Alternatively or additionally, the XSSD module 104 may be integrated on the host 102 or the DSM 106.

XSSD 모듈(104)을 호스트(102), DSM(106), 또는 둘모두로부터 물리적으로 제거되는 것을 허용하는 커넥터를 포함할 수 있는 하나 이상의 인터페이스들(108),(110)을 통하여 XSSD 모듈(104)은 호스트(102) 및 DSM(106)와 통신할 수 있다. 인터페이스(들)(108)은 하드웨어 회로들, 로직, 펌웨어, 또는 그것의 임의 조합을 포함할 수 있다. 일부 실시예들에서, 인터페이스(들)(108)은 이하의 표준들: USB(universal serial bus), IEEE 1394, SATA(serial advanced technology attachment), eSATA(external SATA), PATA(parallel advanced technology attachment), SCSI(small computer system interface), SAS(serial attached SCSI), PCIe(peripheral component interconnect express) 및 FC(fiber channel) 중 하나 이상을 준수하는 인터페이스를 포함한다. 그러나, XSSD 모듈(104)을 호스트(102), DSM(106), 또는 둘모두와 통신하도록 허용하는 적절한 임의의 다른 인터페이스가 사용될 수 있다. XSSD 모듈(104), DSM(106), 또는 둘모두는 호스트(102)의 인클로저 내부 또는 외부에 배치될 수 있다.The XSSD module 104 may be coupled to the XSSD module 104 via one or more interfaces 108,101 that may include connectors that allow the XSSD module 104 to be physically removed from the host 102, the DSM 106, May communicate with the host 102 and the DSM 106. The interface (s) 108 may comprise hardware circuits, logic, firmware, or any combination thereof. In some embodiments, the interface (s) 108 may include 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) , A small computer system interface (SCSI), a serial attached SCSI (SAS), a peripheral component interconnect express (PCIe), and a fiber channel (FC). However, any other suitable interface that allows the XSSD module 104 to communicate with the host 102, DSM 106, or both can be used. The XSSD module 104, the DSM 106, or both may be located inside or outside the enclosure of the host 102.

도 2 에 관련하여, 확장된 고체 상태 모듈 디바이스(XSSD) 모듈(104)를 포함하는 시스템(200)의 대표적인 실시예의 기능 블럭 다이어그램이 도시된다. XSSD 모듈(104)은 예를 들어, 하나 이상의 유형들의 비휘발성 데이터 스토리지 미디어와 같은 다양한 디바이스들의 연결을 거기에 허용하는 다수의 포트들을 포함할 수 있다.Referring to Figure 2, a functional block diagram of an exemplary embodiment of a system 200 including an extended solid state module device (XSSD) module 104 is shown. The XSSD module 104 may include a number of ports, for example, that allow connection of various devices, such as one or more types of non-volatile data storage media.

XSSD 모듈(104)은 이니시에이터 인터페이스(202) 및 타겟 인터페이스(204)를 포함할 수 있다. 이니시에이터 인터페이스(202)는 XSSD 모듈(104)을 이니시에이터(206)와 인터페이스 하는 것을 허용하도록 구성될 수 있고 타겟 인터페이스(204)는 XSSD 모듈(104)을 타겟(208)과 통신하는 것을 허용하도록 구성될 수 있다. 일부 실시예들에서, 이니시에이터(206)는 도 1의 호스트(102)를 참고로 하여 상기에서 설명된 디바이스들의 유형들과 같은 호스트 디바이스일 수 있다. 타겟(208)은 도 1의 DSM(106)를 참고로 하여 상기에서 설명된 유형들과 같은 데이터 스토리지 디바이스일 수 있다. 다른 실시예들에서, 데이터 스토리지 디바이스는 이니시에이터(206)로 간주될 수 있고 호스트 디바이스는 타겟(208)으로 간주될 수 있다.The XSSD module 104 may include an initiator interface 202 and a target interface 204. The initiator interface 202 may be configured to allow the XSSD module 104 to interface with the initiator 206 and the target interface 204 may be configured to allow the XSSD module 104 to communicate with the target 208 . In some embodiments, the initiator 206 may be a host device, such as the types of devices described above with reference to the host 102 of FIG. The target 208 may be a data storage device, such as the types described above with reference to the DSM 106 of FIG. In other embodiments, the data storage device may be considered as an initiator 206 and the host device may be considered as a target 208.

XSSD 모듈(104)은 하나 이상의 관련된 프로세서들(212)을 갖는 제어 회로(210)를 포함할 수 있다. 제어 회로(210)는 이니시에이터(206), 타겟(208), 또는 둘모두에 의해 요청되거나 거기로부터 수신된 데이터의 배정을 결정하고 추적하는 하이브리드 파일 시스템을 실행하고 제어하도록 구성될 수 있다.The XSSD module 104 may include a control circuit 210 having one or more associated processors 212. The control circuitry 210 may be configured to execute and control a hybrid file system that determines and tracks the allocation of data requested by or received from the initiator 206, the target 208, or both.

일부 실시예들에서, XSSD 모듈(104)은 적어도 부분적으로 하나 이상의 캐시 기준을 충족시키는 데이터에 대한 캐시로서 사용되는 고체 상태 메모리(SSM)(214)를 포함할 수 있다. SSM(214)은 휘발성 고체 상태 메모리(VSSM), 예컨대 정적 랜덤-액세스 메모리(SRAM) 또는 동적 랜덤-액세스 메모리(DRAM)일 수 있거나 SSM(214)은 비휘발성 고체 상태 메모리(NVSSM), 예컨대 플래시 메모리일 수 있다. 비록 이하의 설명은 NVSSM 또는 플래시 메모리(214)을 주로 언급하지만, 임의의 다른 유형(들) 또는 조합(들) SSM(214) 또는 NVSSM 사용될 수 있다는 것이 이해되어야 한다.In some embodiments, the XSSD module 104 may include a solid state memory (SSM) 214 that is used as a cache for data that at least partially meets one or more cache criteria. The SSM 214 may be a volatile solid state memory (VSSM), such as a static random-access memory (SRAM) or a dynamic random-access memory Memory. It should be understood that any other type (s) or combination (s) SSM 214 or NVSSM may be used, although the following description refers primarily to NVSSM or flash memory 214. [

XSSD 모듈(104)은 버퍼 메모리(218)로서 사용되는 하나 이상의 메모리 유닛들로부터/유닛으로 데이터를 할당할 수 있는 버퍼 관리기(216)를 포함할 수 있다. 예를 들어, XSSD 모듈(104)은 이니시에이터(206)으로부터의/로의, 타겟(208)으로부터의/로의, NVSSM으로부터의/로의, 또는 그것의 임의 조합의 판독 및 기록 동작들 동안에 송신되는 데이터를 일시적으로 저장하는데 사용되는 하나 이상의 SRAM 또는 DRAM 유닛들(218)을 가질 수 있다. 버퍼 메모리(218)는 액세스 동작들이 실행을 기다리는 동안 일시적으로 저장될 수 있는 명령어 큐(미도시)를 포함할 수 있다. 비록 SRAM/DRAM 유닛(들)(218)이 XSSD 모듈(104)내에 존재하는 것으로 도 2에 도시되지만, 그것들은 추가적으로 또는 대안적으로 XSSD 모듈(104) 외부에, 예컨대, 예를 들어, 도 3에 도시된 DRAM 유닛(312)에 배치될 수 있다는 것이 이해되어야 한다. The XSSD module 104 may include a buffer manager 216 that may allocate data from / to one or more memory units used as the buffer memory 218. For example, the XSSD module 104 may transfer data that is transmitted during read and write operations to / from the target 208, to / from the NVSSM, or any combination thereof, from / to the initiator 206 And may have one or more SRAM or DRAM units 218 used for temporary storage. Buffer memory 218 may include an instruction queue (not shown) that may be temporarily stored while access operations are waiting for execution. Although SRAM / DRAM unit (s) 218 are shown in Figure 2 as being present in XSSD module 104, they may additionally or alternatively be provided outside XSSD module 104, e.g., In DRAM unit 312 shown in FIG.

XSSD 모듈(104)은 플래시 메모리(214)를 버퍼 관리기(216)에 통신에 관하여 결합하는 플래시 프로토콜 프로세서(222) 및 FIFO(first-in-first-out) 메모리 유닛(220)을 추가로 포함할 수 있고, 그것은, 차례로, 제어 회로(210)에 통신에 관하여 결합된다. FIFO 메모리 유닛(220)은 버퍼 관리기(216)로부터 데이터를 수신할 수 있고 데이터가 플래시 프로토콜 프로세서(222)로 FIFO 베이시스에 기초하여 송신될 때까지 데이터를 저장할 수 있다. FIFO 메모리 유닛(220)은 FIFO 메모리 유닛(220)에서 수신된 데이터 상에서의 체크들을 구현하는 에러 정정 코드(ECC)를 포함할 수 있고 임의의 에러 비트들을 정정할 수 있어서 데이터 무결성이 유지된다.The XSSD module 104 further includes a flash protocol processor 222 and a first-in-first-out (FIFO) memory unit 220 for coupling the flash memory 214 to the buffer manager 216 with respect to communication Which, in turn, is coupled to the control circuit 210 in terms of communication. The FIFO memory unit 220 may receive data from the buffer manager 216 and may store data until it is transmitted to the flash protocol processor 222 based on the FIFO basis. The FIFO memory unit 220 may include an error correction code (ECC) that implements checks on the data received in the FIFO memory unit 220 and may correct any error bits so that data integrity is maintained.

플래시 프로토콜 프로세서(222)는 하나 이상의 통신 프로토콜들에 따라 FIFO 메모리 유닛(220)으로부터 수신된 데이터를 추출/프로세싱/구성하는데 전용되는 특화된 프로세서일 수 있어서 플래시 프로토콜 프로세서(222)는 플래시 메모리(214)내 스토리지에 대해 적절한 포맷으로 데이터를 송신한다. Flash protocol processor 222 may be a specialized processor dedicated to extracting / processing / constructing data received from FIFO memory unit 220 in accordance with one or more communication protocols, Send data in the proper format for my storage.

대안적으로 또는 추가적으로, XSSD 모듈(104)은 하나 이상의 외부 플래시(또는 임의의 다른 유형의 NVSSM) 메모리 유닛들(214)의 부가를 허용하도록 구성될 수 있다. 도 2는 하나 이상의 플래시 입력/출력(I/O) 포트들(224)를 통하여 플래시 프로토콜 프로세서(222)에 통신에 관하여 결합되는 플래시 메모리(214)의 성능을 도시한다. 비록 단일 외부 플래시 메모리(214)가 도시되지만, 복수개의 외부 플래시 메모리 유닛들(214)이 XSSD 모듈(104)에 부착될 수 있다는 것이 이해되어야 한다.Alternatively or additionally, the XSSD module 104 may be configured to allow the addition of one or more external flashes (or any other type of NVSSM) memory units 214. Figure 2 illustrates the performance of the flash memory 214 coupled with communication to the flash protocol processor 222 via one or more flash input / output (I / O) ports 224. It should be understood that a plurality of external flash memory units 214 may be attached to the XSSD module 104, although a single external flash memory 214 is shown.

XSSD 모듈(104)은 XSSD 모듈(104) 상의 GPIO 핀(미도시)의 행동을 제어할 수 있는 범용 입력/출력(GPIO) 제어(226)를 추가로 포함할 수 있다. 게다가, XSSD 모듈(104)은 XSSD 모듈(104)와 조합하여 사용될 디바이스를 연결하기 위한 적절한 하나 이상의 추가 포트들을 추가로 포함할 수 있다. 예를 들어, XSSD 모듈(104)은 모뎀 또는 유사한 통신 디바이스와 인터페이스하는 RS-232 표준을 준수하는 하나 이상의 직렬 포트들(228)을 포함할 수 있다. 다른 예로서, XXSD 모듈(104)은 예를 들어, XSSD 모듈(104)와의 이슈들을 진단하기 위해 사용될 수 있는 테스팅 디바이스와 인터페이스하기 위한 하나 이상의 진단 포트들(230)을 포함할 수 있다.The XSSD module 104 may further include a general purpose input / output (GPIO) control 226 that can control the behavior of GPIO pins (not shown) on the XSSD module 104. In addition, the XSSD module 104 may additionally include one or more additional ports for connecting the device to be used in combination with the XSSD module 104. [ For example, the XSSD module 104 may include one or more serial ports 228 that conform to the RS-232 standard to interface with a modem or similar communication device. As another example, the XXSD module 104 may include one or more diagnostic ports 230 for interfacing with a testing device that may be used to diagnose issues with the XSSD module 104, for example.

도 3은 확장된 고체 상태 디바이스(XSSD) 모듈(104)를 포함하는 시스템(300)의 다른 대표적인 실시예의 기능 블럭 다이어그램이 도시된다. XSSD 모듈(104)은 제어기(302)를 포함할 수 있고, 제어기는, 일부 실시예들에서, 도 2를 참고로 하여 상기에서 설명된 제어 회로(210)의 일 예이다. FIG. 3 is 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), 그것은 호스트 제어기(304)를 복제하도록 구성될 수 있기 때문에 모조하는 것으로 불리우고 DSD(106)는 마치 DSD가 호스트 시스템(102)과 직접 인터페이스되는 것처럼 XSSD 모듈(104)와 인터페이스하고 즉, DSD(106)는 XSSD 모듈(104) 및 호스트 시스템(102)과의 인터페이스 사이에서 구별할 수 없다.Controller 302 may communicate with host system 102 via an interface that includes host controller 304. Controller 302 may also communicate with data storage device (DSD) 106 via interface 110, which includes host interface-dummy controller 306. The host interface-dummy controller 306, which is referred to as dummy because it can be configured to replicate the host controller 304, and the DSD 106 is connected to the XSSD module 104 as if the DSD were directly interfaced with the host system 102. [ I.e., the DSD 106 can not distinguish between the interfaces with the XSSD module 104 and the host system 102.

제어기(302)는 추가로 하나 이상의 NVSSM 제어기들(310)을 통하여 하나 이상의 비휘발성 고체 상태 메모리(NVSSM) 유닛들(308)과 통신할 수 있다. 일부 실시예들에서, NVSSM 유닛들(308)은 NAND 플래시 메모리 유닛들이고 NVSSM 제어기들(310)은 NAND 제어기들이다. 더구나, XSSD 모듈(104)는 비-휘발성 캐시로서 NVSSM 유닛들(308)을 사용할 수 있고 영구 스토리지로서 DSD(106)를 사용할 수 있다. 따라서, 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, NVSSM units 308 are NAND flash memory units and NVSSM controllers 310 are NAND controllers. Furthermore, XSSD module 104 may use NVSSM units 308 as non-volatile cache and may use DSD 106 as persistent storage. Thus, it should be understood that the XSSD module 104 may be configured to communicate and be coupled to any type of memory suitable for use as a persistent storage, and any type of memory suitable for use as a non-volatile cache.

제어기(302)는 추가로 버퍼 메모리 제어기(314)를 포함하는 인터페이스를 통하여 버퍼 메모리 유닛(312)과 통신할 수 있다. 일부 실시예들에서, 버퍼 메모리 제어기(314)는 버퍼 메모리(312)으로부터/로 데이터를 할당하기 위해 사용되는 버퍼 관리기(316)의 컴포넌트일 수 있다. 버퍼 메모리 유닛(312)은 이니시에이터(206)으로부터/로, 타겟(208)으로부터/로, NVSSM으로부터/로, 또는 그것의 임의 조합의 판독 및 기록 동작들 동안에 송신되는 데이터를 일시적으로 저장하기 위해 사용될 수 있다. 버퍼 메모리(312)는 액세스 동작들이 실행을 기다리는 동안 일시적으로 저장될 수 있는 명령어 큐(미도시)를 포함할 수 있다. 비록 버퍼 메모리 유닛(312)은 XSSD 모듈(104)에 대해 외부의 단일 DRAM 유닛으로 도 3에 도시되지만, 제어기(302)는 복수개의 버퍼 메모리 유닛들(312)(도 2를 참고로 하여 상기에서 설명된 것처럼 하나 이상의 DRAM 유닛들을 포함하는)와 통신할 수 있고 그리고 버퍼 메모리 유닛들(312)은 XSSD 모듈(104)내에 추가적으로 또는 대안적으로 존재할 수 있다는 것에 이해되어야 한다.The controller 302 may further communicate with the buffer memory unit 312 via an interface including a buffer memory controller 314. In some embodiments, the buffer memory controller 314 may be a component of the buffer manager 316 used to allocate data to / from the buffer memory 312. The buffer memory unit 312 may be used to temporarily store data to be transmitted during read and write operations to / from the target 208, from / to the NVSSM, or any combination thereof. . Buffer memory 312 may include an instruction queue (not shown) that may be temporarily stored while access operations are waiting to be executed. Although the buffer memory unit 312 is shown in FIG. 3 as an external single DRAM unit for the XSSD module 104, the controller 302 includes a plurality of buffer memory units 312 (see FIG. 2) It should be understood that the buffer memory units 312 may communicate with one or more DRAM units (as described, including one or more DRAM units) and that the buffer memory units 312 may additionally or alternatively reside within the XSSD module 104.

일부 실시예들에서, 제어기(302) 및 각각의 호스트 시스템(들)(102), DSD(들)(106), NVSSM 유닛(들)(308) 및 버퍼 메모리 유닛(들)(312) 사이의 인터페이스(들)은 이하의 표준들: USB(universal serial bus), IEEE 1394, SATA(serial advanced technology attachment), eSATA(external SATA), PATA(parallel advanced technology attachment), SCSI(small computer system interface), SAS(serial attached SCSI), PCIe(peripheral component interconnect express) 및 FC(fiber channel) 중 하나 이상을 준수하는 하나 이상의 인터페이스를 포함할 수 있다. 그러나, 제어기(302)를 호스트 시스템(들)(102), DSD(들)(106), NVSSM 유닛(들)(308), 버퍼 메모리 유닛(들)(312), 또는 그것의 임의 조합와 통신하도록 허용하기 위한 적절한 임의의 다른 인터페이스가 사용될 수 있다.In some embodiments, the controller 302 and each host system (s) 102, DSD (s) 106, NVSSM unit (s) 308 and buffer memory unit (s) The interface (s) may include one or more of the following standards: universal serial bus (USB), IEEE 1394, serial advanced technology attachment (SATA), external SATA, parallel advanced technology attachment (PATA) (SAS), peripheral component interconnect express (PCIe), and fiber channel (FC). However, it is contemplated that controller 302 may be configured to communicate with host system (s) 102, DSD (s) 106, NVSSM unit (s) 308, buffer memory unit (s) 312, Any other suitable interface may be used to allow.

제어기(302)는 명령어 CPU(318), 번역 계층 CPU(320), 명령어 메모리(322) 및 데이터 메모리(324)를 포함할 수 있다. 제어기(302)에 송신된 명령어 데이터는 명령어 메모리(322)에 일시적으로 저장될 수 있고 동시에 제어기(302)에 송신된 유저 데이터는 데이터 메모리(324)에 일시적으로 저장될 수 있다. 따라서, 명령어 메모리(322) 및 데이터 메모리(324)는 사실상 명령어 CPU(318) 또는 번역 계층 CPU(320) 또는 둘모두에 의해 실행될 때까지 판독 및 기록 동작들 동안에 송신된 데이터를 일시적으로 저장하기 위해 사용되는 버퍼 메모리 유닛들, 또는 중간 버퍼 메모리 유닛들(즉, 버퍼 메모리 유닛(312) 및 CPU들(318),(320)사이에 배치된 버퍼 메모리 유닛들)이다. The controller 302 may include an instruction CPU 318, a translation layer CPU 320, an instruction memory 322 and a data memory 324. The instruction data sent to the controller 302 may be temporarily stored in the instruction memory 322 and the user data transmitted to the controller 302 at the same time may be temporarily stored in the data memory 324. [ Accordingly, the instruction memory 322 and the data memory 324 are used to temporarily store data transmitted during read and write operations until they are actually executed by the instruction CPU 318 or the translation layer CPU 320 or both Or buffer memory units (i.e., buffer memory units disposed between buffer memory unit 312 and CPUs 318, 320).

일부 실시예들에 따라, 명령어 CPU(318)는 판독 및 기록 요청들을 수신하도록 구성될 수 있고 호스트 시스템(들)(102), DSD(들)(106), NVSSM 유닛(들)(308) 및 버퍼 메모리 유닛(들)(312) 간의 요청들과 관련된 유저 데이터를 할당한다. 번역 계층 CPU(320)는 NVSSM 유닛(들)(308)에 대한 판독 및 기록 액세스를 관리하는 소프트웨어 계층을 프로세스하도록 구성될 수 있다. 번역 계층 CPU(320) 또는 프로토콜 프로세서는 NAND 플래시 메모리에 할당된 데이터를 번역하는 플래시 번역 계층(FTL) CPU 일 수 있어서 할당된 데이터는 NAND 플래시 메모리에 의해 판독가능하게 된다. In accordance with some embodiments, the instruction CPU 318 may be configured to receive read and write requests and may include host system (s) 102, DSD (s) 106, NVSSM unit (s) 308, And allocates user data associated with requests between the buffer memory unit (s) Translation layer CPU 320 may be configured to process a software layer that manages read and write access to NVSSM unit (s) 308. [ The translation layer CPU 320 or the protocol processor may be a flash translation layer (FTL) CPU that translates the data allocated to the NAND flash memory so that the allocated data is readable by the NAND flash memory.

도면들 2-3에 도시된 컴포넌트들의 전부 또는 일부는 단일 프로세서 또는 제어기 칩내에 건조될 수 있고 XSSD 모듈(104) 및 시스템들(200, 300)을 대하여 본 출원에서 논의된 기능들 및 동작들을 수행하도록 펌웨어 또는 회로부를 통하여 구성될 수 있다. All or a portion of the components shown in Figures 2-3 may be built into a single processor or controller chip and perform the functions and operations discussed herein with respect to the XSSD module 104 and systems 200, Lt; RTI ID = 0.0 > and / or < / RTI >

도 4는 티어된 스토리지 아키텍처를 구현하기 위한 방법(400)의 대표적인 실시예의 플로우 차트를 보여준다. 도 4에 의해 예시된 방법(400)에 대한 실시예들을 설명할 때, 방법(400)의 어떤 측면들을 명확하게 하기 위해서 도면들 1-3에 또한 도면 번호가 제공될 것이다.FIG. 4 shows a flowchart of an exemplary embodiment of a method 400 for implementing a tiered storage architecture. When describing the embodiments of the method 400 illustrated by FIG. 4, the drawing numbers will also be provided in 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, the read request may originate from any device or system to which the XSSD module 104 is coupled with respect to communication.

만약, 블럭(404)에서, XSSD 모듈(104)은 판독 요청이 캐시 적중(cache hit)인지를 결정하고(즉, 요청된 데이터가 요청의 시간에 캐시에 저장된지), 그런다음 XSSD 모듈(104)은 블럭(405)에서 요청된 데이터가 DRAM(또는 SRAM)에 캐시된지 아닌지를 결정한다. 만약 요청된 데이터가 DRAM에 캐시되면, 그러면 XSSD 모듈(104)은 DRAM 에서 데이터를 검색하고 블럭(410)에서 판독 요청자에게(즉, 판독 요청을 개시했던 디바이스 또는 시스템)데이터를 제공한다. 만약 요청된 데이터가 DRAM에 캐시되지 않으면, 그러면 XSSD 모듈(104)은 블럭(406)에서 제 1 메모리 티어의 비휘발성 고체 상태 메모리(NVSSM)에서 데이터를 검색하고 블럭(410)에서 판독 요청자에게 데이터를 제공한다.If the XSSD module 104 determines that the read request is a cache hit (i.e., if the requested data is stored in the cache at the time of the request), then the XSSD module 104 ) Determines at block 405 whether the requested data is cached in the DRAM (or SRAM). If the requested data is cached in the DRAM, then the XSSD module 104 retrieves the data from the DRAM and provides data to the read requester (i. E., The device or system that initiated the read request) at block 410. If the requested data is not cached in the DRAM then the XSSD module 104 retrieves the data from the nonvolatile solid state memory (NVSSM) of the first memory tier at block 406 and sends the data to the read requester at block 410 Lt; / RTI >

그러나 만약 블럭(404)에서, XSSD 모듈(104)이 판독 요청이 캐시 적중이 아니라고 결정하면, 그러면 XSSD 모듈(104)은 블럭(408)에서 제 2 메모리 티어의 데이터 스토리지 디바이스/매체에서 데이터를 검색하고 블럭(410)에서 판독 요청자에게 데이터를 제공한다.If, however, at block 404 the XSSD module 104 determines that the read request is not a cache hit, then the XSSD module 104 retrieves the data from the data storage device / media of the second memory tier at block 408 And provides data to the read requestor at block < RTI ID = 0.0 > 410. < / RTI >

본 출원에서 사용되는, 용어 제 1 메모리 티어”는 영구 스토리지로서 사용되는 비휘발성 메모리를 포함하는 “제 2 메모리 티어”와 캐시로서 사용되는 NVSSM을 포함하는 메모리 티어를 구별하기 위해 사용된다. 그러나 용어 “제 1 메모리 티어” 및 “제 2 메모리 티어”는 두개의 메모리 티어들로 본 발명의 실시예들을 제한하려고 의도되지 않고 그것들은 제 1 메모리 티어 및 제 2 메모리 티어 앞에, 사이에 또는 그 뒤에 하나이상의 메모리 티어들을 배제하려고 의도되지도 않는다. 도면들 2-3의 플래시 메모리(214,308)는 일부 실시예들의 제 1 메모리 티어내에 포함된 NVSSM를 예시한다. 도 3의 데이터 스토리지 디바이스/매체(DSD/DSM)(106)은 일부 실시예들의 제 2 메모리 티어에 포함된 비휘발성 메모리를 예시한다. As used in this application, the term " first memory tier " is used to distinguish a memory tier that includes a " second memory tier " that includes non-volatile memory used as persistent storage and an NVSSM that is used as a cache. However, the terms " first memory tier " and " second memory tier " are not intended to limit embodiments of the present invention to two memory tiers, Nor is it intended to exclude one or more memory tiers after. Flash memory 214, 308 in Figures 2-3 illustrates NVSSM included in the first memory tier of some embodiments. The data storage device / medium (DSD / DSM) 106 of FIG. 3 illustrates a non-volatile memory included in a second memory tier of some embodiments.

일부 실시예들에서, XSSD 모듈(104)은 캐시 기준 및 영구 스토리지 기준, 각각에 대하여 둘모두 또는 어느 하나를 충족하는지 아닌지를 결정한다. 만약 데이터가 그것의 캐시 기준을 충족한다고 XSSD 모듈(104)이 결정하고, 그런다음 데이터가 그 내부에 아직 저장되지 않았다면 제 1 메모리 티어의 NVSSM에 기록된다. 만약 데이터가 그것의 영구 스토리지 기준을 충족한다고 XSSD 모듈(104)이 결정하고, 그런다음 데이터가 그 내부에 아직 저장되지 않았다면 제 2 메모리 티어의 DSD/DSM에 기록된다. 일부 실시예들에서 캐시 기준, 영구 스토리지 기준, 또는 둘모두는 하나 이상의 파라미터들에 기반하여 미리 결정될 수 있다. 그러나, 일부 실시예들에서, 캐시 기준, 영구 스토리지 기준에 대한 파라미터들, 또는 둘모두는 XSSD 모듈(104)에 의해 그때 그때(on-the-fly) 업데이트되거나 결정될 수 있다. 캐시 기준, 영구 스토리지 기준, 또는 둘모두에 기반 될 수 있는 파라미터들은 에이지(타이밍), 용량(% 풀), 파워 이벤트(예를 들어, 셧다운), 감지된 아이들 시간 또는 파라미터들, 또는 그것의 임의 조합을 포함하지만, 그것에 제한되는 것은 아니다.In some embodiments, the XSSD module 104 determines whether it meets either or both of the cache criteria and the persistent storage criteria, respectively. The XSSD module 104 determines that the data meets its cache criteria and then is written to the NVSSM of the first memory tier if the data has not yet been stored therein. If the XSSD module 104 determines that the data meets its persistent storage criteria, then it is written to the DSD / DSM of the second memory tier if the data has not yet been stored therein. In some embodiments, cache criteria, persistent storage criteria, or both may be predetermined based on one or more parameters. However, in some embodiments, cache criteria, parameters for persistent storage criteria, or both may be updated or determined on-the-fly by the XSSD module 104. The parameters that may be based on cache criteria, persistent storage criteria, or both may be aging (timing), capacity (% pool), power events (e.g., shutdown), sensed idle time or parameters, Combinations thereof, but are not limited thereto.

도 5는 티어된 스토리지 아키텍처를 구현하기 위한 방법(500)의 다른 대표적인 실시예의 플로우 차트를 보여준다. 도 5에 의해 예시된 방법(500)에 대한 실시예들을 설명할 때, 방법(500)의 어떤 측면들을 명확하게 하기 위해서 도면들 1-3에 또한 도면 번호가 제공될 것이다.FIG. 5 shows a flowchart of another exemplary embodiment of a method 500 for implementing a tiered storage architecture. When describing embodiments of the method 500 illustrated by FIG. 5, the drawing numbers will also be provided in 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 may receive a write request. For example, the host system 102 may send a write request to the XSSD module 104. However, the write request may originate from any device or system to which the XSSD module 104 is coupled with respect to communication. In some embodiments, the write request may include user data and command data buffered in volatile memory.

방법(500)의 임의 실시예들에서, XSSD 모듈(104)은 블럭(504)에서 제 1 메모리 티어의 비휘발성 고체 상태 메모리(NVSSM)에 선택된 데이터를(즉, 수신된 기록 요청 중 결과로서 기록될 데이터) 기록할 수 있다. 따라서, 모든 선택된 데이터는 제 1 메모리 티어가 임의의 선택된 데이터를 어디 다른곳에 밀어내기전에 제 1 메모리 티어의 NVSSM에 캐시될 수 있다. In some embodiments of the method 500, the XSSD module 104 determines at block 504 data selected in the non-volatile solid state memory (NVSSM) of the first memory tier (i.e., Data) can be recorded. Thus, all selected data may be cached in the NVSSM of the first memory tier before the first memory tier has pushed any selected data elsewhere.

어떤 실시예들에서, XSSD 모듈(104)를 패스 스루하는 모든 데이터는 NVSSM에 저장될 수 있다. 예를 들어, 모든 기록들은 휘발성 랜덤 액세스 메모리일 수 있는 캐시 버퍼에서 임계 시간후에 NVSSM으로 향하게 될 수 있다. 캐시가 임계 시간(또는 다른 트리거에 기반하여)후에 NVSSM로 플러쉬될 때, 최소의 기록 데이터의 양 예컨대 플래시 메모리의 페이지와 같은 양이 필요로 될 수 있다. 더구나, XSSD 모듈(104)에 의해 수신된 판독들이 NVSSM에 저장될 수 있다. 일부 예들에서, 판독 명령어로부터의 데이터가 XSSD 모듈(104)에 저장될 때, 최소한의 아이템들이 NVSSM에 저장될 수 있다. 첫째, 호스트에 의해 요청된 실제 데이터가 저장될 수 있고 그리고 둘째, 추가 판독 룩 어헤드(Read Look Ahead) 데이터가 NVSSM에 저장될 수 있다. 예를 들어 만약 호스트(102)가 로직 블럭 어드레스(LBA) (100)로부터 데이터를 찾을것이고 그것은 아직 NVSSM에 없다면, XSSD 모듈(104)은 DSD(106)로부터 데이터를 검색할 것이고 LBA(100)로부터 호스트(102)로 데이터를 리턴할 것이다. XSSD 모듈(104)은 또한 LBA(100)로부터 미래의 판독들을 위해 NVSSM에 데이터를 저장할 것이고 호스트(102)로부터의 후속 요청이 LBA(101)에 대한 것인 경우에 LBA(101)로부터 추가의 판독 룩 어헤드(Read Look Ahead) 데이터를 또한 저장할 것이다. XSSD 모듈(104) 또는 DSD(106)는 판독 룩 어헤드(Read Look Ahead) 데이터에 대한 판독을 개시할 수 있고, 그런다음 이것은 XSSD 모듈(104)의 NVSSM에 저장될 수 있다.In some embodiments, all data passing through the XSSD module 104 may be stored in the NVSSM. For example, all writes may be directed to the NVSSM after a threshold time in the cache buffer, which may be a volatile random access memory. When the cache is flushed to the NVSSM after a critical time (or based on another trigger), a minimum amount of write data, such as a page in the flash memory, may be required. Furthermore, readings received by the XSSD module 104 may be stored in the NVSSM. In some instances, when data from a read command is stored in the XSSD module 104, a minimum number of items may be stored in the NVSSM. First, the actual data requested by the host can be stored, and second, additional Read Look Ahead data can be stored in the NVSSM. For example, if the host 102 will seek data from a logical block address (LBA) 100 and it is not yet in the NVSSM, then the XSSD module 104 will retrieve the data from the DSD 106, And return data to the host 102. The XSSD module 104 may also store data in the NVSSM for future reads from the LBA 100 and further read from the LBA 101 if the subsequent request from the host 102 is for the LBA 101. [ It will also store Read Look Ahead data. The XSSD module 104 or the DSD 106 may initiate a read for Read Look Ahead data which may then be stored in the NVSSM of the XSSD module 104. [

블럭(506)에서, XSSD 모듈(104)은 선택된 데이터의 일부 또는 전부에 대하여 영구 스토리지 트리거 이벤트 발생했는지 여부, 또는 하나 이상의 영구 스토리지 기준이 만족되는지 여부, 또는 그것의 조합을 결정할 수 있다. 만약 그렇다면, 그러면 XSSD 모듈(104)은 블럭(508)에서 제 2 메모리 티어의 비 휘발성 메모리로 선택된 데이터의 최소한의 서브셋을 이동시킨다. 영구 스토리지 트리거 이벤트, 영구 스토리지 기준, 또는 그것의 조합은 하나 이상의 파라미터들, 예컨대: 에이지(타이밍), 용량(% 풀), 파워 이벤트(예를 들어, 셧다운), 감지된 아이들 시간, 다른 파라미터들, 또는 그것의 임의 조합에 기반하여 결정될 수 있다.At block 506, the XSSD module 104 may determine whether a persistent storage trigger event has occurred for some or all of the selected data, whether one or more persistent storage criteria are satisfied, or a combination thereof. If so, then the XSSD module 104 moves at block 508 a minimal subset of the selected data to the non-volatile memory of the second memory tier. The persistent storage trigger event, persistent storage criteria, or a combination thereof may include one or more parameters such as: aging (timing), capacity (% pool), power events (e.g., shutdown), sensed idle time, , ≪ / RTI > or any combination thereof.

비록 도 5는 제 1 메모리 티어가 임의의 선택된 데이터를 어디 다른곳으로 밀어내기 전에 모든 선택된 데이터를 제 1 메모리 티어의 NVSSM로 캐시하는 것의 방법(500)을 보여주지만, 임의의 실시예들은 미리 결정되거나 그때 그때 결정된 캐시 기준, 예컨대, 예를 들어, 도 4를 참고로 하여 상기에서 설명된 캐시 기준을 충족시키는 데이터만을 캐시하는 것을 포함할 수 있다. Although FIG. 5 shows a method 500 of caching all selected data to the NVSSM of the first memory tier before the first memory tier has pushed any selected data elsewhere, Or caching only those data that meet the cache criteria, as described above with reference to FIG. 4, for example.

일부 실시예들에서, 도면들 1-5에 대한 상기에서 설명된 장치 및 방법들의 이런 구현예들을 가진, 하이브리드 데이터 스토리지 시스템은 호스트 시스템 또는 데이터 스토리지 디바이스 [예를 들어, 하드 디스크 드라이브(HDD)]의 거의 수정없이 또는 전혀 수정없이 구현될 수 있다. 더구나, XSSD 모듈(104)은 자체 어드레스를 가진 스토리지 스페이스로서 사용되도록 또는 비휘발성 캐시로서 사용되도록 다수의 디바이스들 간에 스토리지 스페이스를 선택적으로 할당할 수 있다. 일부 예들에서, HDD가 영구 스토리지로 사용될 수 있는데 반하여 비휘발성 고체 상태 메모리(NVSSM)는 HDD로부터 보다 빠른 판독 액세스 시간들을 위해 캐시에 고정된 데이터에 대해 또는 착신 및 송출 데이터에 대해 비휘발성 캐시로서 사용될 수 있다. 어떤 실시예들에서, 호스트 시스템에 보고된 스토리지 전체 용량은 HDD의 용량에 추가하여 NVSSM의 용량일 수 있다. 더구나, 일부 실시예들에서, 다수의 스토리지 디바이스들/매체들은 예를 들어, HDD는 NVSSM를 위한 백업일 수 있거나 또는 반대이거나 어느 한쪽에 대해 백업으로서의 역할을 할 수 있다. In some embodiments, a hybrid data storage system, with these implementations of the apparatus and methods described above with respect to Figures 1-5, may be implemented in a host system or a data storage device (e.g., a hard disk drive (HDD) Can be implemented with little or no modifications. Furthermore, the XSSD module 104 may selectively allocate storage space among a plurality of devices to be used as a storage space with its own address or as a non-volatile cache. In some instances, the HDD may be used as permanent storage, while the non-volatile solid state memory (NVSSM) may be used for data that is fixed in the cache for faster read access times from the HDD, or as nonvolatile cache for incoming and outgoing data . In some embodiments, the total storage capacity reported to the host system may be the capacity of the NVSSM in addition to the capacity of the HDD. Moreover, in some embodiments, multiple storage devices / media may, for example, be a backup for the NVSSM, or may act as a backup for either or both.

XSSD 모듈(104)은 적어도 부분적으로 호스트 시스템상에 통합될 수 있어서 데이터는 호스트 시스템, 제 1 메모리 티어 및 제 2 메모리 티어간에 송신될 수 있다. 추가적으로 또는 대안적으로, XSSD 모듈(104)은 제 2 메모리 티어의 비휘발성 메모리를 포함하는 데이터 스토리지 디바이스상에 적어도 부분적으로 통합될 수 있어서 데이터는 호스트 시스템, 제 1 메모리 티어 및 제 2 메모리 티어 간에 송신될 수 있다. 추가적으로 또는 대안적으로, XSSD 모듈(104)를 제 2 메모리 티어의 비휘발성 메모리를 포함하는 데이터 스토리지 디바이스 및 호스트 시스템에 결합하는 것을 허용하도록 구성된 브리지 어댑터상에 XSSD 모듈(104)가 적어도 부분적으로 통합될 수 있어서 데이터는 호스트 시스템, 제 1 메모리 티어 및 제 2 메모리 티어 간에 송신될 수 있다.The XSSD module 104 may be at least partially integrated on the host system so that data may be transmitted between the host system, the first memory tier, and the second memory tier. Additionally or alternatively, the XSSD module 104 may be at least partially integrated on a data storage device including a non-volatile memory of a second memory tier so that data is transferred between the host system, the first memory tier, Lt; / RTI > Additionally or alternatively, the XSSD module 104 may be integrated, at least partially, on a bridge adapter configured to allow coupling of the XSSD module 104 to a data storage device and host system comprising a non-volatile memory of a second memory tier So that data can be transmitted between the host system, the first memory tier and the second memory tier.

다양한 실시예들에 따라, 본 출원에서 설명된 방법들은 컴퓨터 프로세서 또는 제어기, 예컨대 제어기(206) 상에서 운영하는 하나 이상의 소프트웨어 프로그램들로 구현될 수 있다. 다른 실시예에 따라, 본 출원에서 설명된 방법들은 디스크 드라이브를 사용하는 컴퓨팅 디바이스, 예컨대 퍼스널 컴퓨터 상에서 운영하는 하나 이상의 소프트웨어 프로그램들로 구현될 수 있다. 한정되는 것은 아니지만, 애플리케이션 특정 집적 회로들, 프로그램 가능한 로직 어레이들 및 다른 하드웨어 디바이스들을 포함하는 전용 하드웨어 구현예들이 마찬가지로 본 출원에서 설명된 방법들을 구현하기 위해 구성될 수 있다. 더구나, 본 출원에서 설명된 방법들은 프로세서로 하여금 방법들을 수행하게 실행되는 명령들을 포함하는 컴퓨터 판독가능한 매체로 구현될 수 있다. According to various embodiments, the methods described in this application may be implemented as a computer processor or a controller, e.g., one or more software programs operating on a controller 206. [ According to another embodiment, the methods described in this application may be implemented with one or more software programs running on a computing device, e.g., 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 may likewise be configured to implement the methods described in this application. Moreover, the methods described in this application may be embodied in a computer-readable medium including instructions that are executable by a processor to perform the methods.

본 출원에서 설명된 실시예들의 예시들은 다양한 실시예들의 구조에 대한 일반적 이해를 제공하도록 의도된다. 예시들은 본 출원에서 설명된 구조들 또는 방법들을 활용하는 장치 및 시스템들의 모든 엘리먼트들 및 특징부들의 완전한 설명 역할을 하도록 의되되지 않는다. 본 발명을 검토하면 많은 다른 실시예들이 관련 기술 분야의 통상의 기술자들에 명확해질 것이다. 다른 실시예들이 본 발명으로부터 활용될 수 있고 도출될 수 있어서 구조상의 및 로직상의 대체물들 및 변화들이 본 발명의 범위를 벗어남이 없이 제공될 수 있다. 게다가, 비록 특정 실시예들이 본 출원에서 설명되고 예시되었지만, 동일하거나 유사한 목적을 달성하기 위해 디자인된 임의의 후속 배열이 도시된 특정 실시예들을 대체할 수 있다는 것이 이해되어야 한다. The examples of embodiments described in this application are intended to provide a general understanding of the structure of the various embodiments. The examples are not intended to serve as a complete description of all the elements and features of the devices and systems utilizing the structures or methods described in this application. Many other embodiments will be apparent to those of ordinary skill in the art upon review of the present invention. Other embodiments may be utilized and derived from the present invention, so that structural and logical alternatives and variations may be provided without departing from the scope of the present invention. In addition, it should be understood that although certain embodiments have been described and illustrated in this application, any subsequent arrangement designed to achieve the same or similar purposes may be substituted for the specific embodiments shown.

본 발명은 다양한 실시예들의 임의 및 모든 후속 개조들 또는 변형예들을 커버하는 것으로 의도된다. 상기 실시예들의 조합, 및 본 출원에 구체적으로 설명되지 않은 다른 실시예들이 상세한 설명을 검토해 보면 이 기술분야의 숙련자들에게 명백할 것이다. 추가적으로, 예시들은 단지 대표적이고 축적에 맞도록 도시되지 않을 수 있다. 예제들 내에서 어떤 부분들은 과장될 수 있지만 반면 다른 부분들은 축소될 수 있다. 따라서, 발명들 및 도면들은 예시적이고 제한적이지 않은 것으로 간주될 것이다.The present invention is intended to cover any and all subsequent modifications or variations of the various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those skilled in the art upon examination of the detailed description. In addition, the examples are merely representative and may not be drawn to scale. In the examples, some parts can be exaggerated, while others can be reduced. Accordingly, the invention and the drawings are to be regarded as illustrative and not restrictive.

Claims (20)

장치에 있어서,
적어도 제 1 메모리 티어 및 제 2 메모리 티어 간에 데이터를 할당하도록 구성된 제어 회로로서, 상기 제 1 메모리 티어는 비휘발성 고체 상태 메모리를 포함하고 그리고 상기 제 2 메모리 티어는 다른 비휘발성 메모리를 포함하는, 상기 제어 회로;
상기 제어 회로 및 호스트 디바이스 사이에서 통신하도록 구성된 호스트 인터페이스;
상기 제 2 메모리 티어를 포함하는 데이터 스토리지 디바이스 및 상기 제어 회로 사이에서 통신하도록 구성된 데이터 스토리지 디바이스 인터페이스로서, 상기 데이터 스토리지 디바이스 인터페이스는 상기 호스트 인터페이스를 모조하여 상기 데이터 스토리지 디바이스는 마치 상기 데이터 스토리지 디바이스가 상기 호스트 디바이스와 직접 인터페이스하는 것처럼 상기 장치와 인터페이스하는, 상기 데이터 스토리지 디바이스 인터페이스; 및
상기 제어 회로는 상기 호스트 디바이스, 상기 제 1 메모리 티어 및 상기 제 2 메모리 티어로의 데이터 전송을 관리하도록 추가로 구성되는, 장치.
In the apparatus,
A control circuit configured to allocate data between at least a first memory tier and a second memory tier, wherein the first memory tier comprises a non-volatile solid state memory and the second memory tier comprises another non- A control circuit;
A host interface configured to communicate between the control circuit and the host device;
A data storage device interface configured to communicate between the data storage device comprising the second memory tier and the control circuit, the data storage device interface mimicking the host interface, The data storage device interface that interfaces with the device as if it were directly interfacing with a host device; And
Wherein the control circuit is further configured to manage data transfer to the host device, the first memory tier and the second memory tier.
청구항 1에 있어서,
상기 제어 회로가 상기 호스트 디바이스상에 통합되어 데이터가 상기 호스트 디바이스, 상기 제 1 메모리 티어 및 상기 제 2 메모리 티어 간에 송신되는 것을 추가로 포함하는, 장치.
The method according to claim 1,
Wherein the control circuit is integrated on the host device such that data is transmitted between the host device, the first memory tier, and the second memory tier.
청구항 1에 있어서,
상기 제어 회로가 상기 제 2 메모리 티어의 상기 비휘발성 메모리를 포함하는 상기 데이터 스토리지 디바이스에 통합되어 데이터가 상기 호스트 디바이스, 상기 제 1 메모리 티어 및 상기 제 2 메모리 티어 간에 송신되는 것을 추가로 포함하는, 장치.
The method according to claim 1,
Wherein the control circuit is integrated with the data storage device comprising the non-volatile memory of the second memory tier, wherein data is transmitted between the host device, the first memory tier and the second memory tier. Device.
청구항 1에 있어서,
상기 장치는 상기 호스트 인터페이스 및 상기 데이터 스토리지 디바이스 인터페이스로부터 접속 해제 가능하여 개별적으로 착탈 가능한 하드웨어 디바이스이고, 상기 장치는 버퍼로서 구성된 상기 비휘발성 고체 상태 메모리를 포함하는, 장치.
The method according to claim 1,
Wherein the device is a separately detachable hardware device capable of being disconnected from the host interface and the data storage device interface and the device comprises the nonvolatile solid state memory configured as a buffer.
청구항 4에 있어서,
데이터가 상기 비휘발성 고체 상태 메모리에 할당될 때, 상기 할당된 데이터를 번역하는 프로토콜 번역 계층을 구현하도록 구성된 비휘발성 고체 상태 메모리 프로토콜 프로세서를 추가로 포함하여 상기 할당된 데이터는 상기 비휘발성 고체 상태 메모리에 의해 판독가능한 포맷인, 장치.
The method of claim 4,
Further comprising a non-volatile solid state memory protocol processor configured to implement a protocol translation layer that translates the assigned data when data is assigned to the non-volatile solid state memory, In a format readable by the device.
청구항 5에 있어서,
상기 제어 회로와 통신하고 버퍼로서 구성된 하나 이상의 휘발성 메모리 유닛들 간에 데이터를 할당하도록 구성된 버퍼 관리기; 및
상기 버퍼 관리기로부터 수신된 데이터를 저장하고 상기 수신된 데이터를 상기 비휘발성 고체 상태 메모리 프로토콜 프로세서로 송신하도록 구성된 FIFO(first-in-first-out) 메모리 유닛;을 추가로 포함하는, 장치.
The method of claim 5,
A buffer manager configured to communicate with the control circuit and allocate data between one or more volatile memory units configured as buffers; And
Further comprising: a first-in-first-out (FIFO) memory unit configured to store data received from the buffer manager and to transmit the received data to the non-volatile solid state memory protocol processor.
청구항 5에 있어서,
상기 비휘발성 고체 상태 메모리는 플래시 메모리이고 상기 비휘발성 메모리는 자기 데이터 스토리지 매체이며, 상기 장치는 버퍼로서 구성된 하나 이상의 휘발성 메모리 유닛들간에 데이터를 할당하고 상기 제어 회로와 통신하도록 구성된 버퍼 관리기를 추가로 포함하는, 장치.
The method of claim 5,
Wherein the non-volatile solid state memory is a flash memory and the non-volatile memory is a magnetic data storage medium, wherein the apparatus further comprises a buffer manager configured to allocate data between one or more volatile memory units configured as buffers and to communicate with the control circuit Comprising:
청구항 5에 있어서,
상기 제 1 메모리 티어; 및
상기 비휘발성 고체 상태 메모리 프로토콜 프로세서로부터의 출력부로서, 상기 출력부는 상기 비휘발성 고체 상태 메모리 프로토콜 프로세서를 상기 비휘발성 고체 상태 메모리에 결합하도록 구성된, 상기 출력부;를 추가로 포함하는, 장치.
The method of claim 5,
The first memory tier; And
And an output from the non-volatile solid state memory protocol processor, the output configured to couple the non-volatile solid state memory protocol processor to the non-volatile solid state memory.
청구항 5에 있어서,
상기 비휘발성 고체 상태 메모리 프로토콜 프로세서 및 상기 비휘발성 고체 상태 메모리 사이에서 통신하도록 구성된 비휘발성 고체 상태 메모리 인터페이스를 추가로 포함하고, 상기 제 1 메모리 티어는 상기 장치로부터 연결 해제 가능한 하나 이상의 개별적으로 착탈 가능한 하드웨어 디바이스들상에 통합되는, 장치.
The method of claim 5,
Further comprising 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, wherein the first memory tier comprises one or more individually detachable Lt; RTI ID = 0.0 > hardware devices. ≪ / RTI >
청구항 1에 있어서,
상기 제어 회로는
하나 이상의 캐시 기준을 충족시키는 데이터에 대하여 상기 제 1 메모리 티어의 상기 비휘발성 고체 상태 메모리에 데이터를 캐시하고; 및
상기 제 2 메모리 티어에 대한 하나 이상의 스토리지 기준을 충족시키는 데이터에 대하여 적어도 부분적으로 스토리지 스페이스로서의 상기 제 2 메모리 티어의 상기 비휘발성 메모리에 데이터를 저장하도록 추가로 구성되는, 장치.
The method according to claim 1,
The control circuit
Cache data in the non-volatile solid state memory of the first memory tier for data that meets one or more cache criteria; And
And store data in the non-volatile memory of the second memory tier at least partially as storage space for data that meets one or more storage criteria for the second memory tier.
청구항 10에 있어서,
상기 하나 이상의 캐시 기준 및 상기 하나 이상의 스토리지 기준은 타이밍, 용량, 파워 이벤트 및 아이들 시간으로 구성된 그룹에서 선택된 하나 이상의 파라미터들에 기반하여 결정되는 것을 추가로 포함하는, 장치.
The method of claim 10,
Wherein 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.
장치에 있어서,
적어도 제 1 메모리 티어 및 제 2 메모리 티어 간에 데이터를 할당하도록 구성된 제어 회로서, 상기 제 1 메모리 티어는 비휘발성 고체 상태 메모리를 포함하고 및 상기 제 2 메모리 티어는 다른 비휘발성 메모리를 포함하는, 상기 제어회로;
상기 제어 회로 및 이니시에이터 디바이스 사이에서 통신하도록 구성된 이니시에이터 인터페이스;
상기 제어 회로 및 타겟 디바이스 사이에서 통신하도로 구성된 타겟 인터페이스;
상기 이니시에이터 인터페이스 및 상기 타겟 인터페이스 중 적어도 하나가 호스트 인터페이스를 복제하여 상기 제 2 메모리 티어의 상기 비휘발성 메모리를 포함하는 데이터 스토리지 디바이스는 마치 그것이 호스트 디바이스와 인터페이스하는 것처럼 상기 장치와 인터페이스하고; 및
상기 제어 회로는 상기 호스트 디바이스, 상기 제 1 메모리 티어 및 상기 제 2 메모리 티어로의 데이터 전송을 관리하도록 추가로 구성되는, 장치.
In the apparatus,
A control circuit configured to allocate data between at least a first memory tier and a second memory tier, wherein the first memory tier includes a non-volatile solid state memory and the second memory tier comprises another non-volatile memory. A control circuit;
An initiator interface configured to communicate between the control circuit and the initiator device;
A target interface configured to communicate between the control circuit and the target device;
Wherein at least one of the initiator interface and the target interface duplicates a host interface so that the data storage device comprising the non-volatile memory of the second memory tier interfaces with the device as if it were a host device; And
Wherein the control circuit is further configured to manage data transfer to the host device, the first memory tier and the second memory tier.
청구항 12에 있어서,
상기 이니시에이터 인터페이스 및 상기 타겟 인터페이스는 각각 인터페이스 표준을 준수하는 것을 추가로 포함하는, 장치.
The method of claim 12,
Wherein the initiator interface and the target interface each comply with an interface standard.
청구항 12에 있어서,
상기 제 2 메모리 티어의 상기 비휘발성 메모리로 상기 데이터를 저장하기 전에 상기 제 1 메모리 티어의 상기 비휘발성 고체 상태 메모리로 모든 데이터를 캐시하도록 구성되는 상기 제어 회로를 추가로 포함하는, 장치.
The method of claim 12,
And to cache all data in the non-volatile solid state memory of the first memory tier prior to storing the data in the non-volatile memory of the second memory tier.
청구항 14에 있어서,
버퍼로서 구성된 하나 이상의 휘발성 메모리 유닛들간에 데이터를 할당하고 상기 제어 회로와 통신하도록 구성된 버퍼 관리기를 추가로 포함하는, 장치.
15. The method of claim 14,
Further comprising a buffer manager configured to allocate data and communicate with the control circuitry between one or more volatile memory units configured as buffers.
청구항 15에 있어서,
데이터가 상기 비휘발성 고체 상태 메모리에 할당될 때, 상기 할당된 데이터를 번역하는 프로토콜 번역 계층을 구현하도록 구성된 비휘발성 고체 상태 메모리 프로토콜 프로세서를 추가로 포함하여 상기 할당된 데이터는 상기 비휘발성 고체 상태 메모리에 의해 판독가능한 포맷인, 장치.
16. The method of claim 15,
Further comprising a non-volatile solid state memory protocol processor configured to implement a protocol translation layer that translates the assigned data when data is assigned to the non-volatile solid state memory, In a format readable by the device.
청구항 16에 있어서,
상기 비휘발성 고체 상태 메모리 프로토콜 프로세서 및 상기 비휘발성 고체 상태 메모리 사이에서 통신하도록 구성된 비휘발성 고체 상태 메모리 인터페이스; 및
버퍼로서 구성된 하나 이상의 휘발성 메모리 유닛들 및 상기 버퍼 관리기 사이에서 통신하도록 구성된 휘발성 메모리 인터페이스;를 추가로 포함하는, 장치.
18. The method of claim 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; And
Further comprising: a volatile memory interface configured to communicate between the buffer manager and one or more volatile memory units configured as buffers.
장치에 있어서,
선택된 데이터를 기록하기 위한 요청을 호스트 시스템으로부터 수신하고;
상기 선택된 데이터를 제 1 비휘발성 고체 상태 메모리로 캐시하고; 및
트리거 이벤트에 기반하여 적어도 상기 선택된 데이터 서브셋을 제 2 비휘발성 메모리에 저장하도록 구성된 제어회로;
상기 제어 회로 및 상기 호스트 시스템 사이에서 통신하도록 구성된 호스트 인터페이스;
상기 제 2 비휘발성 메모리 및 상기 제어 회로 사이에서 통신하도록 구성된 데이터 스토리지 디바이스 인터페이스로서, 상기 데이터 스토리지 디바이스 인터페이스는 상기 호스트 인터페이스를 모조하여 상기 데이터 스토리지 디바이스는 마치 상기 데이터 스토리지 디바이스가 상기 호스트 시스템과 직접 인터페이스하는 것처럼 상기 장치와 인터페이스하는, 상기 데이터 스토리지 디바이스 인터페이스;를 포함하는, 장치.
In the apparatus,
Receive a request from the host system to record the selected data;
Cache the selected data to a first non-volatile solid state memory; And
A control circuit configured to store at least the selected data subset in a second non-volatile memory based on a trigger event;
A host interface configured to communicate between the control circuit and the host system;
A data storage device interface configured to communicate between the second non-volatile memory and the control circuit, the data storage device interface mimicking the host interface such that the data storage device is directly interfaceable with the host system Wherein the data storage device interface interfaces with the device as if it were a data storage device.
청구항 18에 있어서,
상기 선택된 데이터는 그것이 상기 제 1 비휘발성 고체 상태 메모리로 캐시되기 전에 프로토콜 프로세서에 의해 번역되어 상기 선택된 데이터는 상기 제 1 비휘발성 고체 상태 메모리에 의해 판독가능한 포맷인, 장치.
19. The method of claim 18,
Wherein the selected data is interpreted by a protocol processor before it is cached in the first non-volatile solid state memory so that the selected data is readable by the first non-volatile solid state memory.
청구항 19에 있어서,
상기 프로토콜 프로세서 및 상기 제 1 비휘발성 고체 상태 메모리 사이에서 통신하도록 구성된 비휘발성 고체 상태 메모리 인터페이스를 추가로 포함하는, 장치.
The method of claim 19,
And a non-volatile solid state memory interface configured to communicate between the protocol processor and the first non-volatile solid state memory.
KR1020140026611A 2013-03-15 2014-03-06 Pass through storage devices KR101569049B1 (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 2013-09-16
US14/028,528 US20160011965A1 (en) 2013-03-15 2013-09-16 Pass through storage devices

Publications (2)

Publication Number Publication Date
KR20140113370A KR20140113370A (en) 2014-09-24
KR101569049B1 true KR101569049B1 (en) 2015-11-20

Family

ID=51701386

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140026611A KR101569049B1 (en) 2013-03-15 2014-03-06 Pass through storage devices

Country Status (2)

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

Families Citing this family (2)

* 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
KR102507219B1 (en) * 2016-02-02 2023-03-09 에스케이하이닉스 주식회사 System and operating method for system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011005249A1 (en) 2009-07-07 2011-01-13 Lsi Corporation Systems and methods for tiered non-volatile storage

Family Cites Families (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 Non-volatile storage device and control method for the same
JP2007193440A (en) * 2006-01-17 2007-08-02 Toshiba Corp Storage device using nonvolatile cache memory, and control method therefor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011005249A1 (en) 2009-07-07 2011-01-13 Lsi Corporation Systems and methods for tiered non-volatile storage

Also Published As

Publication number Publication date
KR20140113370A (en) 2014-09-24
JP2014182812A (en) 2014-09-29

Similar Documents

Publication Publication Date Title
CN106445724B (en) Storing parity data separately from protected data
KR101573591B1 (en) Apparatus including memory system controllers and related methods
US9256384B2 (en) Method and system for reducing write latency in a data storage system by using a command-push model
US9304901B2 (en) System and method for handling I/O write requests
KR101560469B1 (en) Apparatus including memory system controllers and related methods
US9348747B2 (en) Solid state memory command queue in hybrid device
KR101532863B1 (en) Apparatus including memory system controllers and related methods
US20160011965A1 (en) Pass through storage devices
US9075729B2 (en) Storage system and method of controlling data transfer in storage system
US20180089088A1 (en) Apparatus and method for persisting blocks of data and metadata in a non-volatile memory (nvm) cache
US10180792B1 (en) Cache management in data storage systems
US20150339058A1 (en) Storage system and control method
US10664193B2 (en) Storage system for improved efficiency of parity generation and minimized processor load
US9547460B2 (en) Method and system for improving cache performance of a redundant disk array controller
US11074010B2 (en) Storage system and control method thereof
TWI782847B (en) Method and apparatus for performing pipeline-based accessing management in a storage server
KR101569049B1 (en) Pass through storage devices
US10564882B2 (en) Writing data to storage device based on information about memory in the storage device
US8683161B2 (en) Method and apparatus for increasing file copy performance on solid state mass storage devices
US11733920B2 (en) NVMe simple copy command support using dummy virtual function
US11016692B2 (en) Dynamically switching between memory copy and memory mapping to optimize I/O performance
JP7242928B2 (en) Storage system and input/output control method
US9946490B2 (en) Bit-level indirection defragmentation

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee