KR20200010139A - 스토리지 시스템 및 스토리지 디바이스의 동작 모드 선택 방법 - Google Patents

스토리지 시스템 및 스토리지 디바이스의 동작 모드 선택 방법 Download PDF

Info

Publication number
KR20200010139A
KR20200010139A KR1020190087932A KR20190087932A KR20200010139A KR 20200010139 A KR20200010139 A KR 20200010139A KR 1020190087932 A KR1020190087932 A KR 1020190087932A KR 20190087932 A KR20190087932 A KR 20190087932A KR 20200010139 A KR20200010139 A KR 20200010139A
Authority
KR
South Korea
Prior art keywords
sff
connector
host
mode
pcie
Prior art date
Application number
KR1020190087932A
Other languages
English (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
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20200010139A publication Critical patent/KR20200010139A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0036Small computer system interface [SCSI]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Information Transfer Systems (AREA)

Abstract

본 개시에 따른 시스템은 스토리지 디바이스; 스토리지 디바이스 컨트롤러; 스토리지 디바이스 컨트롤러를 스토리지 디바이스에 연결하도록 구성된 제1 인터페이스; 및 스토리지 디바이스 컨트롤러를 호스트 디바이스에 연결하도록 구성된 제2 인터페이스를 포함하고, 스토리지 디바이스는 호스트 디바이스에서 수신된 명령에 기초하는 제2 인터페이스에서의 신호의 상태에 기초하여 제1 모드 또는 제2 모드에서 동작하도록 구성된다.

Description

스토리지 시스템 및 스토리지 디바이스의 동작 모드 선택 방법{STORAGE SYSTEM AND METHOD OF SELECTING OPERATING MODE FOR A STORAGE DEVICE}
본 개시에 따른 실시예들의 하나 이상의 양태는 SFF-TA(technology affiliate)-100X 기반의 멀티-모드 프로토콜 솔리드 스테이트 디바이스들에 관련된다.
비-휘발성 메모리(NVM) 익스프레스(non-volatile memory express: NVMe)는 PCIe(Peripheral Component Interconnect Express) 버스를 통해 비-휘발성 메모리 서브시스템(예컨대, SSD(solid state drive))과 통신하도록 호스트 소프트웨어를 위한 레지스터-레벨 인터페이스를 정의하는 표준이다. NVMe는 호스트와 주변 타켓 스토리지 디바이스 또는 시스템 사이에서 데이터를 연결하고 전송하기 위한 SCSI(Small Computer System Interface) 표준의 대안이다. PCIe에 연결된 NVMe SSD들은 애플리케이션들이 스토리지와 직접적으로 통신할 수 있게 한다.
본 배경기술 섹션에서 개시된 전술한 정보는 단지 본 발명의 배경 기술에 대한 이해를 높이기 위한 것이므로, 종래 기술을 구성하지 않는 정보를 포함할 수 있다.
본 개시의 일부 예시적 실시예들의 양태들은 SFF-TA-100X 기반의 멀티-모드 프로토콜 솔리드 스테이트 디바이스들에 관련된다.
본 내용은 상세한 설명에서 이하에서 더 설명되는 본 개시의 실시예들의 특징들 및 개념들의 선택을 소개하기 위해 제공된다. 본 내용은 청구 대상의 핵심적이거나 필수적인 특징들을 식별하도록 의도된 것은 아니며, 청구 대상의 범위를 제한하여 사용하도록 의도되지 않는다. 설명된 특징들 중 하나 이상은 운용가능한 디바이스를 제공하도록 하나 이상의 다른 설명된 특징들과 결합될 수 있다.
일부 실시예에서, 시스템은 스토리지 디바이스; 스토리지 디바이스 컨트롤러; 스토리지 디바이스 컨트롤러를 스토리지 디바이스에 연결하도록 구성된 제1 인터페이스; 및 스토리지 디바이스 컨트롤러를 호스트 디바이스에 연결하도록 구성된 제2 인터페이스를 포함하고, 스토리지 디바이스는 호스트 디바이스로부터 수신된 명령에 기초하는 제2 인터페이스에서 신호의 상태에 기초하여 제1 모드 또는 제2 모드에서 동작하도록 구성된다.
일부 실시예에서, 스토리지 디바이스는 NF1 SSD(new form factor 1 solid state drive), eSSD(Ethernet SSD), 또는 임베디드 SDD 중 하나이고, 스토리지 디바이스 컨트롤러는 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)이다. 일부 실시예에서, 제1 인터페이스는 PCIe 인터페이스(peripheral component interconnect express interface) 또는 U.2 커넥터이고, 그리고 제2 인터페이스는 SFF-TA-100X 커넥터(small form factor-technology affiliate-100X connector)이며, 여기에서 X는 2, 6, 7, 8, 또는 9 중 하나이고, 스토리지 디바이스는 SFF-8201 2.5″드라이브 폼 팩터 디멘션; 시리얼 커넥터를 갖는 SFF-8223 2.5″드라이브 폼 팩터; SFF-8301 3.5″드라이브 폼 팩터 디멘션; 또는 시리얼 커넥터를 갖는 SFF-8323 3.5″드라이브 폼 팩터 중 하나를 가진다.
일부 실시예에서, 스토리지 디바이스의 동작의 제1 모드 및 제2 모드는 각각 NVMe 모드(non-volatile memory express mode) 및 NVMe-oF 모드(NVMe over fabrics mode)이다. 일부 실시예에서, 제2 인터페이스는 SFF-TA 1008 커넥터(SFF-technology affiliate-1008 connector)이고, 제2 인터페이스에서 신호의 상태는 SFF-TA-1008 커넥터의 RFU 핀(reserved for future use pin)에서 신호의 상태와 동일하며, 스토리지 디바이스는 SFF-TA-1008 커넥터의 RFU 핀에서의 신호의 상태가 하이(high)인 경우 NVMe 모드에서 동작하고, 스토리지 디바이스는 SFF-TA-1008 커넥터의 RFU 핀에서의 신호의 상태가 로우(low)인 경우 NVMe-oF 모드에서 동작하며, NVMe 모드 및 NVMe-oF 모드 각각에서 SFF-TA-1008는 X4 싱글 포트, X4 듀얼 포트, X8 싱글 포트, X8 듀얼 포트, X16 싱글 포트, 및 X16 듀얼 포트 모드에서 동작한다.
일부 실시예에서, 스토리지 디바이스 및 SFF-TA-1008 커넥터가 NVMe-oF 모드 및 X4 싱글 포트 모드에서 각각 동작하는 경우, SFF-TA-1008 커넥터의 PCIe 신호 PERp2, PERn2, PETp2, 및 PETn2는 컨트롤 호스트 A 및 이더넷 포트0으로 구성되고, 그리고 SFF-TA-1008 커넥터의 PCIe 신호 PERp3, PERn3, PETp3, 및 PETn3는 컨트롤 호스트 A 및 이더넷 포트1로 구성된다. 일부 실시예에서, 스토리지 디바이스 및 SFF-TA-1008 커넥터가 NVMe-oF 및 X4 듀얼 포트 모드에서 각각 동작하는 경우, SFF-TA-1008 커넥터의 PCIe 신호 PERp1, PERn1, PETp1, 및 PETn1는 호스트 A 및 이더넷 포트0으로 구성되고, 그리고 SFF-TA-1008 커넥터의 PCIe 신호 PERp3, PERn3, PETp3, 및 PETn3은 호스트 B 및 이더넷 포트1으로 구성된다 . 일부 실시예에서, 스토리지 디바이스 및 SFF-TA-1008 커넥터가 NVMe-oF 및 X8 싱글 포트 모드에서 각각 동작하는 경우, SFF-TA-1008 커넥터의 PCIe 신호 PERp4, PERn4, PETp4, 및 PETn4는 호스트 A 및 이더넷 포트0으로 구성되고, SFF-TA-1008 커넥터의 PCIe 신호 PERp5, PERn5, PETp5, 및 PETn5는 호스트 A 및 이더넷 포트1으로 구성되고, SFF-TA-1008 커넥터의 PCIe 신호 PERp6, PERn6, PETp6, 및 PETn6은 호스트 A 및 이더넷 포트2로 구성되고, 그리고 SFF-TA-1008 커넥터의 PCIe 신호 PERp7, PERn7, PETp7, 및 PETn7은 호스트 A 및 이더넷 포트3로 구성된다.
일부 실시예에서, 스토리지 디바이스 및 SFF-TA-1008 커넥터가 NVMe-oF 및 X8 싱글 포트 모드에서 각각 동작하는 경우, SFF-TA-1008 커넥터의 PCIe 신호 PERp2, PERn2, PETp2, 및 PETn2는 호스트 A 및 이더넷 포트 0으로 구성되고, SFF-TA-1008 커넥터의 PCIe 신호 PERp3, PERn3, PETp3, 및 PETn3는 호스트 A 및 이더넷 포트 1로 구성되고, SFF-TA-1008 커넥터의 PCIe 신호 PERp6, PERn6, PETp6, 및 PETn6는 호스트 B 및 이더넷 포트 2로 구성되며, 그리고 SFF-TA-1008 커넥터의 PCIe 신호 PERp7, PERn7, PETp7, 및 PETn7는 호스트 B 및 이더넷 포트 3로 구성된다.
일부 실시예에서, 스토리지 디바이스 및 SFF-TA-1008 커넥터가 NVMe-oF 및 X16 싱글 포트 모드에서 각각 동작하는 경우, SFF-TA-1008 커넥터의 PCIe 신호 PERp8, PERn8, PETp8, 및 PETn8가 호스트 A 및 이더넷 포트 0으로 구성되고, SFF-TA-1008 커넥터의 PCIe 신호 PERp9, PERn9, PETp9, 및 PETn9가 호스트 A 및 이더넷 포트 1로 구성되고, SFF-TA-1008 커넥터의 PCIe 신호 PERp10, PERn10, PETp10, 및 PETn10가 호스트 A 및 이더넷 포트 2로 구성되고, SFF-TA-1008 커넥터의 PCIe 신호 PERp11, PERn11, PETp11, 및 PETn11가 호스트 A 및 이더넷 포트 3로 구성되고, SFF-TA-1008 커넥터의 PCIe 신호 PERp12, PERn12, PETp12, 및 PETn12가 호스트 A 및 이더넷 포트 4로 구성되고, SFF-TA-1008 커넥터의 PCIe 신호 PERp13, PERn13, PETp13, 및 PETn13가 호스트 A 및 이더넷 포트 5로 구성되고, SFF-TA-1008 커넥터의 PCIe 신호 PERp14, PERn14, PETp14, 및 PETn14가 호스트 A 및 이더넷 포트 6으로 구성되며, 그리고 SFF-TA-1008 커넥터의 PCIe 신호 PERp15, PERn15, PETp15, 및 PETn15가 호스트 A 및 이더넷 포트 7으로 구성된다.
일부 실시예에서, 스토리지 디바이스 및 SFF-TA-1008 커넥터가 NVMe-oF 및 X16 듀얼 포트 모드에서 각각 동작하는 경우, SFF-TA-1008 커넥터의 PCIe 신호 PERp8, PERn8, PETp8, 및 PETn8가 호스트 A 및 이더넷 포트 0으로 구성되고, SFF-TA-1008 커넥터의 PCIe 신호 PERp9, PERn9, PETp9, 및 PETn9가 호스트 A 및 이더넷 포트 1으로 구성되고, SFF-TA-1008 커넥터의 PCIe 신호 PERp10, PERn10, PETp10, 및 PETn10가 호스트 B 및 이더넷 포트 0으로 구성되고, SFF-TA-1008 커넥터의 PCIe 신호 PERp11, PERn11, PETp11, 및 PETn11가 호스트 B 및 이더넷 포트 1으로 구성되고, SFF-TA-1008 커넥터의 PCIe 신호 PERp12, PERn12, PETp12, 및 PETn12가 호스트 A 및 이더넷 포트 2로 구성되고, SFF-TA-1008 커넥터의 PCIe 신호 PERp13, PERn13, PETp13, 및 PETn13가 호스트 A 및 이더넷 포트 3로 구성되고, SFF-TA-1008 커넥터의 PCIe 신호 PERp14, PERn14, PETp14, 및 PETn14가 호스트 B 및 이더넷 포트 2로 구성되며, 그리고 SFF-TA-1008 커넥터의 PCIe 신호 PERp15, PERn15, PETp15, 및 PETn15가 호스트 B 및 이더넷 포트 3로 구성된다.
일부 실시예에서, 시스템은 컴퓨팅 디바이스; 및 제1 인터페이스를 통해 컴퓨팅 디바이스에 연결된 스토리지 디바이스를 포함하고, 컴퓨팅 디바이스는 스토리지 디바이스의 컨트롤러로서 동작하도록 구성되고, 그리고 컴퓨팅 디바이스는 제2 인터페이스를 통해 호스트 디바이스에 연결된다.
일부 실시예에서, 스토리지 디바이스는 NF1 SSD(new form factor 1 solid state drive), eSSD(Ethernet SSD), 또는 임베디드 SSD 중 하나이고, 그리고 컴퓨팅 디바이스는 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)이고, 제1 인터페이스는 PCIe 인터페이스(peripheral component interconnect express interface) 또는 U.2 커넥터이고, 그리고 제2 인터페이스는 SFF-TA 1008 커넥터(small form factor-technology affiliate-1008 connector)이고, 스토리지 디바이스는 RFU에 연결하는 GPIO(general purpose input output)를 통해 호스트 디바이스로부터 수신된 명령에 기초하는 SFF-TA-1008 커넥터의 RFU 핀(reserved for future use pin)에서 신호의 상태에 기초하여, NVMe 모드(non-volatile memory express mode) 또는 NVMe-oF 모드(NVMe over fabrics mode)에서 동작하도록 구성되며, 그리고 스토리지 디바이스는 SFF-TA-1008 커넥터의 RFU 핀에서 신호의 상태가 하이인 경우, NVMe 모드에서 동작하고 그리고 스토리지 디바이스는 SFF-TA-1008 커넥터의 RFU 핀에서 신호의 상태가 로우인 경우, NVMe-oF 모드에서 동작하며, NVMe 모드 및 NVMe-oF 모드 각각에서 SFF-TA-1008 커넥터는 X4 싱글 포트, X4 듀얼 포트, X8 싱글 포트, X8 듀얼 포트, X16 싱글 포트, 및 X16 듀얼 포트 모드에서 동작한다.
일부 실시예에서, X4 싱글 포트 모드에서, SFF-TA-1008 커넥터의 RFU 핀이 로우에서 하이 상태로 전환하는 경우, SFF-TA-1008 커넥터의 PCIe 신호 PERp2, PERn2, PETp2, 및 PETn2는 호스트 A, PCIe 레인 2에서 호스트 A, 이더넷 포트 0으로 구성되도록 전환하고, 그리고 SFF-TA-1008 커넥터의 PCIe 신호 PERp3, PERn3, PETp3, 및 PETn3는 호스트 A, PCIe 레인 3에서 호스트 A, 이더넷 포트 1으로 구성되도록 전환하고, 그리고 X4 듀얼 포트 모드에서, SFF-TA-1008 커넥터의 RFU 핀이 로우에서 하이 상태로 전환하는 경우, SFF-TA-1008 커넥터의 PCIe 신호 PERp1, PERn1, PETp1, 및 PETn1는 호스트 A, PCIe 레인 1에서 호스트 A, 이더넷 포트 0으로 구성되도록 전환하고, 그리고 SFF-TA-1008 커넥터의 PCIe 신호 PERp3, PERn3, PETp3, 및 PETn3는 호스트 B, PCIe 레인 1에서 호스트 B, 이더넷 포트 1으로 구성되도록 전환한다.
일부 실시예에서, X8 싱글 포트 모드에서, SFF-TA-1008 커넥터의 RFU 핀이 로우에서 하이 상태로 전환하는 경우, SFF-TA-1008 커넥터의 PCIe 신호 PERp4, PERn4, PETp4, 및 PETn4는 호스트 A, PCIe 레인 4에서 호스트 A, 이더넷 포트 0으로 구성되도록 전환하고, SFF-TA-1008 커넥터의 PCIe 신호 PERp5, PERn5, PETp5, 및 PETn5는 호스트 A, PCIe 레인 5에서 호스트 A, 이더넷 포트 1으로 구성되도록 전환하고, SFF-TA-1008 커넥터의 PCIe 신호 PERp6, PERn6, PETp6, 및 PETn6는 호스트 A, PCIe 레인 6에서 호스트 A, 이더넷 포트 2로 전환하도록 구성되며, 그리고 SFF-TA-1008 커넥터의 PCIe 신호 PERp7, PERn7, PETp7, 및 PETn7는 호스트 A, PCIe 레인 7에서 호스트 A, 이더넷 포트 3로 전환하도록 구성되고, 그리고 X8 듀얼 포트 모드에서, SFF-TA-1008 커넥터의 RFU 핀이 로우에서 하이 상태로 전환하는 경우, SFF-TA-1008 커넥터의 PCIe 신호 PERp2, PERn2, PETp2, 및 PETn2는 호스트 B, PCIe 레인 0에서 호스트 A, 이더넷 포트 0으로 구성되도록 전환하고, SFF-TA-1008 커넥터의 PCIe 신호 PERp3, PERn3, PETp3, 및 PETn3는 호스트 B, PCIe 레인 1에서 호스트 A, 이더넷 포트 1으로 구성되도록 전환하고, SFF-TA-1008 커넥터의 PCIe 신호 PERp6, PERn6, PETp6, 및 PETn6는 호스트 B, PCIe 레인 2에서 호스트 B, 이더넷 포트 2로 구성되도록 전환하며, 그리고 SFF-TA-1008 커넥터의 PCIe 신호 PERp7, PERn7, PETp7, 및 PETn7는 호스트 B, 레인 3에서 호스트 B, 이더넷 포트 3로 구성되도록 전환한다.
일부 실시예에서, X16 싱글 포트 모드에서, SFF-TA-1008 커넥터의RFU 핀이 로우에서 하이 상태로 전환하는 경우, SFF-TA-1008 커넥터의 PCIe 신호 PERp8, PERn8, PETp8, 및 PETn8은 호스트 A, PCIe 레인 8에서 호스트 A, 이더넷 포트 0으로 구성되도록 전환하고, SFF-TA-1008 커넥터의 PCIe 신호 PERp9, PERn9, PETp9, 및 PETn9는 호스트 A, PCIe 레인 9에서 호스트 A, 이더넷 포트 1으로 구성되도록 전환하고, SFF-TA-1008 커넥터의 PCIe 신호 PERp10, PERn10, PETp10, 및 PETn10은 호스트 A, PCIe 레인 10에서 호스트 A, 이더넷 포트 2로 구성되도록 전환하고, SFF-TA-1008 커넥터의 PCIe 신호 PERp11, PERn11, PETp11, 및 PETn11는 호스트 A, PCIe 레인 11에서 호스트 A, 이더넷 포트 3로 구성되도록 전환하고, SFF-TA-1008 커넥터의 PCIe 신호 PERp12, PERn12, PETp12, 및 PETn12는 호스트 A, PCIe 레인 12에서 호스트 A, 이더넷 포트 4로 구성되도록 전환하고, SFF-TA-1008 커넥터의 PCIe 신호 PERp13, PERn13, PETp13, 및 PETn13는 호스트 A, PCIe 레인 13 에서 호스트 A, 이더넷 포트 5로 구성되도록 전환하고, SFF-TA-1008 커넥터의 PCIe 신호 PERp14, PERn14, PETp14, 및 PETn14는 호스트 A, 레인 14 에서 호스트 A, 이더넷 포트 6로 전환하도록 구성되며, 그리고 SFF-TA-1008 커넥터의 PCIe 신호 PERp15, PERn15, PETp15, 및 PETn15는 호스트 A, 레인 15에서 호스트 A, 이더넷 포트 7으로 구성되도록 전환한다.
일부 실시예에서, X16 듀얼 포트 모드에서, SFF-TA-1008 커넥터의 RFU 핀이 로우에서 하이 상태로 전환하는 경우, SFF-TA-1008 커넥터의 PCIe 신호 PERp8, PERn8, PETp8, 및 PETn8은 호스트 A, PCIe 레인 4에서 호스트 A, 이더넷 포트 0으로 구성되도록 전환하고, SFF-TA-1008 커넥터의 PCIe 신호 PERp9, PERn9, PETp9, 및 PETn9는 호스트 A, PCIe 레인 5에서 호스트 A 및 이더넷 포트 1으로 구성되도록 전환하고, SFF-TA-1008 커넥터의 PCIe 신호 PERp10, PERn10, PETp10, 및 PETn10은 호스트 B, PCIe 레인 4에서 호스트 B, 이더넷 포트 0으로 구성되도록 전환하고, SFF-TA-1008 커넥터의 PCIe 신호 PERp11, PERn11, PETp11, 및 PETn11은 호스트 B, PCIe 레인 5에서 호스트 B, 이더넷 포트 1으로 구성되도록 전환하고, SFF-TA-1008 커넥터의 PCIe 신호 PERp12, PERn12, PETp12, 및 PETn12는 호스트 A, PCIe 레인 6에서 호스트 A, 이더넷 포트 2로 구성되도록 전환하고, SFF-TA-1008 커넥터의 PCIe 신호 PERp13, PERn13, PETp13, 및 PETn13은 호스트 A, PCIe 레인 7에서 호스트 A, 이더넷 포트 3로 구성되도록 전환하고, SFF-TA-1008 커넥터의 PCIe 신호 PERp14, PERn14, PETp14, 및 PETn14는 호스트 B, PCIe 레인 6에서 호스트 B, 이더넷 포트 2로 구성되도록 전환하고, 그리고 SFF-TA-1008 커넥터의 PCIe 신호 PERp15, PERn15, PETp15, 및 PETn15는 호스트 B, PCIe 레인 7에서 호스트 B, 이더넷 포트 3로 구성되도록 전환한다..
일부 실시예에서, 스토리지 디바이스의 동작 모드를 선택하는 방법으로서, 스토리지 디바이스는 제1 인터페이스를 통해 스토리지 디바이스 컨트롤러에 연결되고, 스토리지 디바이스 컨트롤러는 제2 인터페이스를 통해 호스트 디바이스에 연결되며, 상기 방법은 제2 인터페이스에서의 신호의 상태를 결정하는 단계; 제2 인터페이스의 신호의 상태에 기초하여 스토리지 디바이스의 동작 모드를 결정하는 단계; 및 스토리지 디바이스가 싱글 포트 모드 또는 듀얼 포트 모드에서 동작하면 결정하도록 호스트 디바이스의 듀얼 포트 핀의 상태를 결정하는 단계를 포함한다.
일부 실시예에서, 스토리지 디바이스는 NF1 SSD(new form factor 1 solid state drive), eSSD(Ethernet SSD), 또는 임베디드 SSD 중 하나이고, 그리고 스토리지 디바이스 컨트롤러는 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)이고, 제1 인터페이스는 PCIe 인터페이스(peripheral component interconnect express interface) 또는 U.2 커넥터이고, 그리고 제2 인터페이스는 SFF-TA-1008 커넥터(small form factor-technology affiliate-1008 connector)이고, 스토리지 디바이스의 동작 모드는 NVMe 모드(non-volatile memory express mode) 또는 NVMe-oF 모드(NVMe over fabrics mode)이고, 제2 인터페이스에서 신호의 상태는 SFF-TA-1008 커넥터의 RFU 핀(reserved for future use pin)에서의 신호의 상태이고, 스토리지 디바이스는 SFF-TA-1008 커넥터의 RFU 핀에서의 신호의 상태가 하이인 경우 NVMe 모드에서 동작하고 그리고 스토리지 디바이스는 SFF-TA-1008 커넥터의 RFU 핀에서의 신호의 상태가 로우인 경우 NVMe-oF 모드에서 동작하며, 그리고 스토리지 디바이스는 듀얼 포트 핀의 상태가 로우인 경우 듀얼 포트 모드에서 동작하고 그리고 스토리지 디바이스는 듀얼 포트 핀의 상태가 하이인 경우 싱글 포트 모드에서 동작한다.
일부 실시예에서, 방법은 스토리지 디바이스가 듀얼 포트 NVMe-oF 모드에서 동작하는 경우 듀얼 포트 모드를 위한 NVMe-oF 이미지 또는 마이크로코드를 스토리지 디바이스에 다운로드하는 단계, 스토리지 디바이스가 싱글 포트 NVMe-oF 모드에서 동작하는 경우 싱글 포트 모드를 위한 NVMe-oF 이미지 또는 마이크로코드를 스토리지 디바이스에 다운로드하는 단계, 스토리지 디바이스가 듀얼 포트 NVMe 모드에서 동작하는 경우 듀얼 포트 모드를 위한 NVMe 이미지 또는 마이크로코드를 스토리지 디바이스에 다운로드하는 단계, 및 스토리지 디바이스가 싱글 포트 NVMe 모드에서 동작하는 경우 싱글 포트 모드를 위한 NVMe 이미지 또는 마이크로코드를 스토리지 디바이스에 다운로드하는 단계를 더 포함한다.
본 개시의 일부 예시적 실시예의 이들 및 다른 특징들은 명세서, 청구범위 및 첨부하는 도면을 참조하여 인식되고 이해될 것이며, 여기에서:
도 1은 본 개시의 일부 실시예에 따르는, SFF-TA-1008 커넥터를 도시하고;
도 2a는 본 개시의 일부 실시예에 따르는, 예시적인 SSD 디바이스를 나타내는 블록 다이어그램을 도시하고;
도 2b는 본 개시의 일부 실시예에 따르는, 도 2a의 예시적인 SSD 디바이스의 다른 실시예를 도시하고;
도 3은 본 개시의 일부 실시예에 따르는, SSD 및 SSD 컨트롤러가 함께 임베디드된 SSD 디바이스를 도시하며; 그리고
도 4는 본 개시의 일부 실시예에 따르는, SSD 디바이스에 대한 모드 또는 프로토콜 선택의 예시적인 방법을 도시한다.
SFF-TA-100X 기반의 멀티-모드 프로토콜 기반의 솔리드 스테이트 디바이스의 일부 예시적인 실시예의 설명으로 의도된 것이며, 본 발명이 구성되거나 이용될 수있는 유일한 형태를 나타내는 것으로 의도되는 것은 아니다. 발명의 설명은 도시된 실시예들과 관련하여 본 개시의 특징들을 설명한다. 그러나, 본 개시의 범위 내에 포함되는 것으로 의도된 다른 실시예들에 의해 동일하거나 균등한 기능들 및 구조들이 완성 될 수 있음을 이해해야한다. 본 명세서의 다른 곳에서 언급되었듯이, 유사한 구성 요소 번호들은 유사한 구성들 또는 특징들을 나타 내기위한 것이다.
비-휘발성 메모리(NVM) 익스프레스(NVMe)는 주변 디바이스 상호 연결 익스프레스(PCIe) 버스를 통해 비-휘발성 메모리 서브시스템(예 : 솔리드 스테이트 드라이브 (SSD))과 통신하는 호스트 소프트웨어에 대한 레지스터-레벨 인터페이스를 정의하는 표준이다. NVMe는 호스트와 주변 타켓 스토리지 디바이스 또는 시스템 사이에서 데이터를 연결하고 전송하기 위한 Small Computer System Interface(SCSI) 표준의 대안이다. NVMe SSD와 연결된 PCIe은 애플리케이션들이 스토리지와 직접적으로 통신할 수 있게 한다.
eSSD(이더넷 SSD)는 PCIe 버스를 통해 미드 플레인을 거쳐 시스템과 인터페이스하기 위해 SSD (예를 들어, U.2) 커넥터를 이용할 수 있다. U.2 (SFF-8639)는 SSD를 컴퓨터에 연결하기 위한 컴퓨터 인터페이스이다. U.2 커넥터는 PCIe SSD에서 2개의 SATA(Serial Advanced Technology Attachment) 또는 SAS(Serial Attached SCSI) 포트들과 병렬 I/O의 최대 4개 레인들(X4)을 지원할 수 있다. 2개의 PCIe 레인들 1 및 2가 사용되지 않을 경우, 필요에 따라 2개의 PCIe 레인들 1 및 2는 선택적으로 추가 SAS 포트들로서 사용될 수 있다. U.2 커넥터는 NVMe 용으로 표준화되고 PCIe 3.0 X4를 지원하며, 예를 들어, SATA SSD 속도보다 5배 빠른 속도를 제공한다.
NVMe over fabric (NVMe-oF)은 NVMe 표준을 확장한 것으로, PCIe 이외의 다양한 패브릭(또는 인터커넥트)을 통해 동작이 가능하다. 여기에서, "패브릭"(fabric)이란 용어는 네트워크 노드들이 다양한 상호연결 프로토콜들, 포트들 및 스위치들을 통해 서로 데이터를 전달할 수 있는 네트워크 토폴로지를 나타낸다. 예를 들어, 이더넷이 부착된 SSD는 패브릭에 직접적으로 부착할 수 있으며, 이 경우 패브릭은 이더넷이다.
NVMe-oF는 NVMe 호스트 디바이스와 NVMe 스토리지 드라이브 또는 서브시스템이 연결할 수 있는 거리를 확장하는 PCIe에 대한 대체 전송의 사용을 가능하게 한다. 따라서, NVMe-oF는 비-휘발성 메모리 익스프레스-메시지 기반의 명령들이 호스트 컴퓨터와 타켓 솔리드-스테이트 스토리지 디바이스(예를 들어, eSSD 또는 NVMe-oF 디바이스) 또는 시스템 간에, 예를 들어, 이더넷, 파이버 채널(Fibre Channel, FC) 또는 인피니밴드(InfiniBand)와 같은, 네트워크를 통해 데이터를 직접 전송할 수 있도록 설계된 기술 사양이다. NVMe-oF 표준을 지원하도록 구성된 시스템은 이더넷뿐만 아니라 파이버 채널(FC), 인피니밴드(InfiniBand) 및 다른 네트워크 패브릭을 비롯한 다양한 패브릭들을 지원할 수 있다. 예를 들어, eSSD는 패브릭에 직접 부착할 수 있으며, 이 경우 패브릭은 이더넷이다. eSSD는 NVMe-oF 프로토콜들을 지원할 수 있는 SSD를 지칭할 수 있다.
다양한 SSD 커넥터들이, 예를 들어, U2 커넥터(SAS4 및 PCIe 4세대 프로토콜들에 대한 최대 속도가 될 수 있는 24Gbps(Giga bites per second)), 또는 SFF-TA-100X(X는 2,6,7,8 또는 9등이 될 수 있다.)를 포함하는 SSD와 데이터를 교환하는데 활용될 수 있다.
50G 및/또는 100G eSSD(Ethernet SSD) 및 PCIe gen 5의 출현으로, U2 커넥터들은 스케일 업(scale up) 할 수 없다. SFF-TA-100X는 PCIe gen 5 이상과 같은 훨씬 더 높은 데이터 트랜잭션(transaction)을 지원할 수 있다. 그러나, SFF-TA-100X는 NVMe 또는 NVMe-oF와 같은 멀티-모드 또는 프로토콜들을 지원하지 않을 수 있다. 그러므로, 일부 실시예들은 NVMe 또는 NVMe-oF와 같이 다중 프로토콜들을 지원할 수 있고 다양한 제품들에 사용될 수있는 단일 공통 SFF-TA-100X(예 : SFF-TA-1008) 디바이스를 포함할 수 있다. SSD 디바이스들에는 FPGA+SSD, 패브릭이 부착된 SSD 또는 eSSD는 물론 SSD가 포함될 수 있다.
본 개시의 일부 실시예들은 NVMe 또는 NVMe-oF와 같은 다중 프로토콜들을 지원할 수있는 SFF-TA-100X(예를 들어, SFF-TA-1008)디바이스를 포함한다. 제안된 멀티-모드 디바이스는 SFF-TA-100X(예를 들어, SFF-TA-1008) 커넥터의 알려진 위치 또는 "섀시 유형(Chassis Type)" 또는 "프로토콜 선택기" 핀으로부터 정보를 검출함으로써 NVMe 또는 NVMe-oF를 지원할 수 있다.
예를 들어, SFF-TA-1006 SSD는, 예를 들어, 서버 및 스토리지 시스템들에서 확장 가능한 주 스토리지와 가속에 최적화된 데이터 센터들에서 사용될 수 있다. SFF-TA-1006 SSD의 크기는 케이스 없이 31.5mm x 111.5mm x 5.75 또는 7.55mm이며 최대 12W를 지원한다. SFF-TA-1006 SSD는 또한 SFF-TA-1002 1C(예를 들어, PCIe x4)를 지원한다. SFF-TA-1006 SSD는 최대 32 GT/s의 PCIe를 지원한다 . SFF-TA-1006 SSD는 대용량 또는 고밀도 NVMe 폼 팩터(Form Factor), 예를 들어, 1U 랙(rack) 공간에 최대 36개의 모듈들 및/또는 모듈 당 최대 12 개의 14x18mm 패키지(예를 들어, 432 패키지들/U)를 가진다. 또한, SFF-TA-1006 SSD는 통합된 데이터-중심의 계산을 지원하고 케이스 및 케이스가 없는 옵션들을 제공한다.
일부 실시예들에 있어서, SSD는 SFF-8201 2.5″드라이브 폼 팩터(form factor) 치수; 직렬 커넥터가 있는 SFF-8223 2.5″드라이브 폼 팩터(form factor); SFF-8301 3.5″드라이브 폼 팩터(form factor) 치수; 또는 직렬 커넥터가 있는 SFF-8323 3.5″드라이브 폼 팩터(form factor)일 수 있다. SFF-100x은 모두 SFF-1002 커넥터를 사용하는 일련의 폼 팩터(form factor)들이다.
다른 예로, 도 1은 SFF-TA-1008 커넥터를 도시한다. 도 1에 도시 된 바와 같이, SFF-TA-1008 커넥터(100)는 FPGA+SSD 디바이스에 부착될 수 있으며, 그 조합은 데이터 센터들 (예를 들어, 서버 및 스토리지 인클로져(storage enclosure)에 최적화된 1U 및 2U) 적용될 수 있다. SFF-TA-1008-SSD(예를 들어, SFF-TA-1008 커넥터에 연결된 FPGA+SSD)의 다른 크기들은 최대 25W까지 지원하는 7.5 x 76 x 142.2 mm, 최대 35W까지 지원하는 7.5 x 76 x 104.9 mm, 최대 70W까지 지원하는 16.8 x 76 x 104.9 mm이다. SFF-TA-1008-SSD는 SFF-TA-1002 1C, 2C,및/또는 4C를 지원한다.(예를 들어, PCIe x4-x16). SFF-TA-1008 SSD는 802.3 표준의 112 GT/s인 PCIe gen 5를 32 GT/s까지 지원한다. SFF-TA-1008-SSD는 대용량 및/또는 고밀도 NVMe 폼 팩터(form factor)를 가진다. 예를 들어, 7.5 mm 폼 팩터(form factor) SFF-TA-1008-SSD(예를 들어, 25W까지 지원하는 7.5 x 76 x 104.9 mm, 25W까지 지원하는 7.5 x 76 x 142.2 mm)는 최대 48개의 모듈들을 지원한다. 예를 들어, 104.9는 모듈 당 최대 24개의 14x18 mm 패키지들(576/U)을 갖고, 또는 142.2는 모듈 당 최대 48개의 14x18 mm 패키지들을 갖는다. 예를 들어 16.8mm 폼 팩터(form factor) SFF-TA-1008-SSD(예를 들어, 70W까지 지원하는 16.8 x 76 x 104.9mm, 70W까지 지원하는 16.8 x 76 x 142.2mm)는 최대 24개 모듈들 또는 모듈 당 최대 48개의 14x18mm 플래시 패키지들(960/U)을 지원한다. An SFF-TA-1008-SSD는 데이터-중심의 계산을 지원하고, 예를 들어, SFF-TA-1008-SSD는 패키지들을 줄여 통합된 가속기를 위한 공간을 확보한다. SFF-TA-1008 SSD는 정전기 방전(ElectroStatic Discharge, ESD) 보호 및 핫-플러그 지원에 대한 케이스가 포함될 수 있으며, ZSFF 223 및 ZSFF 224(Gen-Z Scalable Form Factors)에 정렬된다. 케이스는 열 관리를 위한 방열판 또는 스프레더로 사용될 수 있다.
일부 실시예들에 있어서, SFF-TA-1008 커넥터에서, 향후 사용을 위해 예약된 핀(Reserved for Future Use, RFU)은 "샤시 타입(Chassis Type)" 또는 "프로토콜 선택기"로서 사용될 수있다. 예를 들어, SFF-TA-1008 커넥터의 RFU 핀이 로우(Low)일 때 , 이는 NVMe 프로토콜 또는 샤시(chassis)를 나타낸다. 또는, RFU 핀이 하이(high)일 때, 디바이스(예를 들어, SFF-TA-1008 커넥터에 연결된 FPGA+SSD)는 NVMe-oF "샤시(chassis)"에 디바이스가 있음을 감지할 수 있고, 그에 따라 동작하거나 그 반대로 동작할 수 있다. 예를 들어, 본 개시에 따른 일부 실시예들에 있어서, RFU 핀은 SFF-TA-100X 디바이스(예를 들어, SFF-TA-1008 커넥터에 연결된 FPGA+SSD)가 NVMe 및 NVMe-oF 프로토콜을 모두 지원할 수 있도록 RFU=NVMe-oF 모드에 의해 재정의될 수 있다. 예를 들어, 디바이스(예를 들어, SFF-TA-1008 커넥터에 연결된 FPGA + SSD)는, 하드웨어를 변경없이, 50G에서 100G이상의 다양한 이더넷 속도들로 동작할 수 있다. SFF-TA-1008 커넥터에 연결된 FPGA+SSD의 NVMe 모드 및 NVMe-oF 모드 각각에 대해, SFF-TA-1008 커넥터는 X4 싱글 포트, X4 듀얼 포트, X8 싱글 포트, X8 듀얼 포트, X16 싱글 포트 및 X16 듀얼 포트 모드들에서 동작할 수 있다.
일부 실시예들에 있어서, NVMe 샤시(chassis)에 존재하는 경우, 디바이스(예를 들어, SFF-TA-1008 커넥터에 연결된 FPGA+SSD)는 아래에 도시된 바와 같이 엔터프라이즈 데이터 센터 소형 폼 팩터 사양 개정 0.9(Enterprise Data Center Small Form Factor specification revision 0.9)의 표 2를 따를 것이다 (표 1). 아래 표(표 1)은 RFU 핀이 로우(low)이거나, 디바이스(예를 들어, SFF-TA-1008 커넥터에 연결된 FPGA+SSD)가 NVMe “샤시”(chassis)에 존재하는 경우, 싱글 및 듀얼 포트 구현에서의 표준 SFF-TA-1008 PCIe 레인들의 연결성을 도시한다.
Figure pat00001
표 1: 단일 및 듀얼 포트 구현에서 표준 SFF-TA-1008 PCIe 레인 연결.
일부 실시들예에 있어서, 예를 들어, 디바이스(예를 들어, SFF-TA-1008 커넥터에 연결된 FPGA+SSD)가 NVMe-oF "샤시"에 존재하면, 예를 들어, RFU 핀이 하이(high)일 때, SFF-TA-1008 커넥터의 이더넷 포트들는 아래 표 2에 정의 된바와 같이 단지 PCIe만 사용할 것이다. 현재는, NVMe.Org에 의해 지정된 표준 구현이 없다. 일부 실시예들에 있어서, 프로토콜의 선택(예를 들어, NVMe 또는 NVMe-oF)은 FPGA 이미지의 다운로드 이전에 결정될 수있다. 기가-트랜시버들(giga-transceivers)은 PCIe 또는 이더넷 프로토콜에 사용될 수 있다.
이 경우, 모든 PCIe 포트는 마더 보드의 로컬 중앙 처리 디바이스 (CPU) 및/또는 스위치의 베이스 보드 관리 컨트롤러(BMC)와 통신할 수 있으며, PCIe 트랜잭션, 디바이스 초기화 및/또는 BMC 또는 CPU 및 디바이스(예 : SSD) 간의 펌웨어 업그레이드를 정상적으로 수행하기 위한 컨트롤 플레인으로서 사용된다. 아래 표(표 2)는 싱글 포트, 듀얼 포트 구현 및 NVMe-oF 모드에서의 SFF-TA-1008 PCIe 레인들 연결을 도시한다. 예를 들어, RFU 핀이 하이(high) 일 때, 디바이스(예를 들어, SFF-TA-1008 커넥터에 연결된 FPGA+SSD)는 NVMe-oF 샤시"chassis"에 존재한다.
Figure pat00002
표 2: RFU 핀을 재 정의하여 싱글 포트, 듀얼 포트 구현 및 NVMe-OF 모드에서 SFF-TA-1008 PCIe 레인들 연결.
위에서 논의한 바와 같이, SFF-TA-1008 커넥터의 RFU 핀이 하이(high)일 때, SFF-TA-1008 커넥터에 연결된 FPGA+SSD는, NVMe-oF 모드에서 동작하고, SFF-TA-1008 커넥터의 RFU 핀이 로우(low)일 때, SFF-TA-1008e에 연결된 FPGA+SSD는 NVM 모드에서 동작한다. 위의 표 2에 도시된 바와 같이, 일부 실시예들에 있어서, 디바이스(예를 들어, SFF-TA-1008 커넥터에 부착된 FPGA+SSD) 및 SFF-TA-1008 커넥터가 NVMe-oF 및 X4 싱글 포트 모드(예 : X2 싱글 포트 및 1x50G 이더넷 포트)에서 동작할 때, 각각, SFF-TA-1008 커넥터의 PCIe 신호들 PERp2, PERn2, PETp2 및 PETn2는, 호스트 A 및 이더넷 포트 0으로 구성될 수 있으며, SFF-TA-1008 커넥터의 PCIe 신호들 PERp3, PERn3, PETp3 및 PETn3은 호스트 A의 이더넷 포트 1로 구성될 있다. 호스트 A는 듀얼 포트 구성의 첫번째 포트를 나타내거나 설명하는데 사용되고 호스트 B는 두번째 포트를 나타내기 위해 사용된다.
표 1(NVMe 모드) 및 표 2(NVMe-oF 모드)로부터 명백하게 나타나듯이, 일부 실시예들에 있어서, X4 싱글 포트 모드에서는, SFF-TA-1008 커넥터의 RFU 핀이 로우(low)(NVMe 모드)에서 하이(high)(NVMe-oF 모드)로 전환될 때, 예를 들어, SFF-TA-1008 커넥터에 연결된 FPGA+SSD가 NVMe 모드에서 NVMe-oF 모드로 전환될 때, SFF-TA-1008 커넥터의 PCIe 신호들 PERp2, PERn2, PETp2 및 PETn2은, 호스트 A, PCIe 레인 2에서 호스트 A, 이더넷 포트 0으로 전환되고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp3, PERn3, PETp3, 및 PETn3은 호스트 A, PCIe 레인 3에서 호스트 A, 이더넷 포트 1로 전환한다.
일부 실시예들에 있어서, 디바이스(예를 들어, SFF-TA-1008 커넥터에 연결된 FPGA+SSD) 및 SFF-TA-1008 커넥터는 NVMe-oF 및 X4 듀얼 포트 모드(예를 들어, (2 포트 x1)+(2 x 25G 이더넷 포트들))에서 동작할 때,각각, SFF-TA-1008 커넥터의 PCIe 신호들 PERp1, PERn1, PETp1 및 PETn1은 호스트 A 및 이더넷 포트 0으로 구성될 수 있으며, SFF-TA-1008 커넥터의 PCIe 신호들 PERp3 , PERn3, PETp3 및 PETn3은 호스트 B 및 이더넷 포트 1으로 구성될 수 있다.
표 1 (NVMe 모드) 및 표 2 (NVMe-oF 모드)로부터 명백한 바와 같이, 일부 실시 예에서, X4 듀얼 포트 모드에서, SFF-TA-1008 커넥터의 RFU 핀이 로우(low)(NVMe 모드)에서 하이(high)(NVMe-oF 모드), 예를 들어, SFF-TA-1008 커넥터에 연결된 FPGA+SSD가 NVMe 모드에서 NVMe-oF 모드로 전환 할 때, SFF-TA-1008 커넥터의 PCIe 신호들 PERp1, PERn1, PETp1 및 PETn1이 호스트 A, PCIe 레인 1에서 호스트 A, 이더넷 포트 0으로 전환되고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp3, PERn3, PETp3 및 PETn3이 호스트 B, PCIe 레인 1 에서 호스트 B, 이더넷 포트 1로 구성되도록 전환될 수 있다.
일부 실시예들에 있어서, 디바이스(예를 들어, SFF-TA-1008 커넥터에 연결된 FPGA+SSD) 및 SFF-TA-1008 커넥터가 NVMe-oF 및 X8 싱글 포트 모드(예를 들어, (1 포트 x4)+(1x100G 이더넷))에서 동작할 때, 각각, SFF-TA-1008 커넥터의 PCIe 신호들 PERp4, PERn4, PETp4 및 PETn4은 호스트 A 및 이더넷 포트 0으로 구성되고, PCIe 신호들 PERp5, PERn5, PETp5 , 및 PETn5는 호스트 A 및 이더넷 포트 1로 구성될 수 있으며, SFF-TA-1008 커넥터의 PCIe 신호들 PERp6, PERn6, PETp6 및 PETn6은 호스트 A ALC 이더넷 포트 2로 구성될 수 있고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp7, PERn7, PETp7 및 PETn7은 호스트 A 및 이더넷 포트 3로 구성될 수 있다.
표 1(NVMe 모드) 및 표 2(NVMe-oF 모드)로부터 명백한 바와 같이, 일부 실시예들에서, X8 싱글 포트 모드에서, SFF-TA-1008 커넥터의 RFU 핀이 로우(low)(NVMe 모드)에서 하이(high)(NVMe-oF 모드)로 전환될 때, 예를 들어, SFF-TA-1008 커넥터에 연결된 FPGA+SSD가 NVMe 모드에서 NVMe-oF 모드로 전환될 때, SFF-TA-1008의 PCIe 신호들 PERp4, PERn4, PETp4 및 PETn4는 호스트 A, PCIe 레인 4에서 호스트 A, 이더넷 포트 0로 구성되도록 전환되고, SFF-TA-1008의 PCIe 신호 PERp5, PERn5, PETp5 및 PETn5는 PCIe 레인 5에서 호스트 A로 구성되도록 전환되고, SFF-TA-1008 커넥터의 PCIe 신호 PERp6, PERn6, PETp6 및 PETn6는 PCIe 레인 6에서 호스트 A, 이더넷 포트 2로 구성되도록 전환되고, SFF-TA-1008 커넥터의 PCIe 신호 PERp7, PERn7, PETp7 및 PETn7은 PCIe 레인 7에서 호스트 A, 이더넷 포트 3로 구성되도록 전환될 수 있다.
일 실시예에 있어서, 디바이스(SFF-TA-1008에 연결된 FPGA+SSD)와 SFF-TA-1008 커넥터가 NVMe-oF 모드 및 X8 듀얼 포트 모드에서 동작할 때, 각각, SFF-TA-1008 커넥터의 PCIe 신호들 PERp2, PERn2, PETp2 및 PETn2는 호스트 A 및 이더넷 포트 0으로 구성될 수 있으며, SFF-TA-1008 커넥터의 PCIe 신호들 PERp3, PERn3, PETp3 및 PETn3은 호스트 A 및 이더넷 포트 1로 구성될 수 있고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp6, PERn6, PETp6 및 PETn6 호스트 B 및 이더넷 포트 2, 및 SFF-TA-1008의 PCIe 신호들 PERp7, PERn7, PETp7 및 PETn7은 호스트 B 및 이더넷 포트 3로 구성될 수 있다.
표 1(NVMe 모드) 및 표 2(NVMe-oF 모드)에서 명백한 바와 같이, 일부 실시예들에 있어서, X8 듀얼 포트 모드에서 SFF-TA-1008 커넥터의 RFU 핀이 로우(low)(NVMe 모드)에서 하이(high)(NVMe-oF 모드)로 전환될 때, 예를 들어, SFF-TA-1008 커넥터에 연결된 FPGA+SSD가 NVMe 모드에서 NVMe-oF 모드로 전환될 때 , SFF-TA-1008 커넥터의 PCIe 신호들 PERp2, PERn2, PETp2 및 PETn2는 호스트 B, PCIe 레인 0에서 호스트 A, 이더넷 포트 0으로 구성되도록 전환되고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp3, PERn3, PETp3 및 PETn3은 호스트 B, PCIe 레인 1에서 호스트 A, 이더넷 포트 1으로 구성되도록 전환되고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp6, PERn6, PETp6 및 PETn6은 호스트 B, PCIe 레인 2에서 호스트 B, 이더넷 포트 2로 구성되도록 전환되고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp7, PERn7, PETp7 및 PETn7은 호스트 B, PCle 레인 3에서 호스트 B, 이더넷 포트 3로 구성되도록 전환된다.
일부 실시예들에 있어서, 디바이스(예를 들어, SFF-TA-1008 커넥터에 연결된 FPGA+SSD) 및 SFF-TA-1008 커넥터가 NVMe-oF 모드 및 X16 싱글 포트 모드(예를 들어, (1 포트 x8)+(2x100G 이더넷 포트))에서 동작할 때, SFF-TA-1008 커넥터의 PCIe 신호들 PERp8, PERn8, PETp8 및 PETn8은 호스트 A 및 이더넷 포트 0로 구성될 수 있고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp9, PERn9 , PETp9 및 PETn9는 호스트 A 및 이더넷 포트 1로 구성될 수 있고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp10, PERn10, PETp10 및 PETn10은 호스트 A 및 이더넷 포트 2로 구성될 수 있고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp11, PERn11, PETp11 및 PETn11은 호스트 A 및 이더넷 포트 3로 구성될 수 있고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp12, PERn12, PETp12 및 PETn12는 호스트 A 및 이더넷 포트 4로 구성될 수 있고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp13, PERn13, PETp13 및 PETn13은 호스트 A 및 이더넷 포트 5로 구성될 수 있고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp14, PERn14, PETp14 및 PETn14는 호스트 A 및 이더넷 포트 6로 구성될 수 있고, SFF-TA-1008 커넥터의 PCIe 신호들은 PERp15, PERn15, PETp15 및 PETn15는 호스트 A 및 이더넷 포트 7로 구성될 수 있다.
표 1(NVMe 모드) 및 표 2(NVMe-oF 모드)로부터 명백한 바와 같이, 일부 실시예들에 있어서, X16 싱글 포트 모드에서, SFF-TA-1008 커넥터의 RFU 핀이 로우(low)(NVMe 모드)에서 하이(high)(NVMe-oF 모드)로 전환될 때, 예를 들어,SFF-TA-1008 커넥터에 연결된 FPGA+SSD가 NVMe 모드에서 NVMe-oF 모드로 전환되고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp8, PERn8, PETp8, 및 PETn8은 호스트 A, PCIe 레인 8에서 호스트 A, 이더넷 포트 0으로 구성되도록 전환되고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp9, PERn9, PETp9, 및 PETn9은 호스트 A, PCIe 레인 9에서 호스트 A, 이더넷 포트 1로 구성되도록 전환되고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp10, PERn10, PETp10, 및 PETn10은 호스트 A, PCIe 레인 10에서 호스트 A, 이더넷 포트 2로 구성되도록 전환되고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp11, PERn11, PETp11, 및 PETn11은 호스트 A, PCIe 레인 11에서 호스트 A, 이더넷 포트 3로 구성되도록 전환되고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp12, PERn12, PETp12, 및 PETn12은 호스트 A, PCIe 레인 12에서 호스트 A, 이더넷 포트 4로 구성되도록 전환되고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp13,PERn13, PETp13, 및 PETn13은 호스트 A, PCIe 레인 13에서 호스트 A, 이더넷 포트 5로 구성되도록 전환되고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp14, PERn14, PETp14, 및 PETn14은 호스트 A, PCIe 레인 14에서 호스트 A, 이더넷 포트 6으로 구성되도록 전환되고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp15, PERn15, PETp15, 및 PETn15은 호스트 A, PCIe 레인 15에서 호스트 A, 이더넷 포트 7로 구성되도록 전환된다.
일부 실시예들에 있어서, 디바이스(예를 들어, SFF-TA-1008 커넥터에 연결된 FPGA+SSD)가 NVMe-oF, X16 듀얼 포트 모드(예를 들어, (2 포트 ×4) + (2 × 100G))에서 동작할 때, SFF-TA-1008 커넥터의 PCIe 신호들 PERp8, PERn8, PETp8 및 PETn8은 호스트 A 및 이더넷 포트 0으로 구성될 수 있고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp9, PERn9, PETp9 및 PETn9는 호스트 A 및 이더넷 포트 1으로 구성될 수 있고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp10, PERn10, PETp10 및 PETn10은 호스트 B 및 이더넷 포트 0으로 구성될 수 있고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp11, PERn11, PETp11 및 PETn11은 호스트 B 및 이더넷 포트 1로 구성될 수 있고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp12, PERn12, PETp12 및 PETn12는 호스트 A 및 이더넷 포트 2로 구성될 수 있고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp13, PERn13, PETp13 및 PETn13은 호스트 A 및 이더넷 포트 3로 구성될 수 있고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp14, PERn14, PETp14 및 PETn14는 호스트 B 및 이더넷 포트 2로 구성될 수 있고, SFF-TA-1008 커넥터의 PCIe 신호 PERp15, PERn15, PETp15 및 PETn15는 호스트 B 및 이더넷 포트 3로 구성될 수 있다.
표 1(NVMe 모드) 및 표 2(NVMe-oF 모드)에서 명백한 바와 같이, 일부 실시예들에 있어서, X16 듀얼 포트 모드에서, SFF-TA-1008 커넥터의 RFU 핀이 로우(low)(NVMe 모드)에서 하이(high)(NVMe-of 모드)로 전환될 때, SFF-TA-1008 커넥터의 PCIe 신호들 PERp8, PERn8, PETp8 및 PETn8은 호스트 A, PCIe 레인 4에서 호스트 A, 이더넷 포트 0으로 구성되도록 전환되고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp9, PERn9, PETp9 및 PETn9는 호스트 A, PCIe 레인 5에서 호스트 A, 이더넷 포트 1으로 구성되도록 전환되고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp10, PERn10, PETp10 및 PETn10은 호스트 A, PCIe 레인 4에서 호스트 B, 이더넷 포트 0으로 구성되도록 전환되고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp11, PERn11, PETp11 및 PETn11은 호스트 B, PCIe 레인 5에서 호스트 B, 이더넷 포트 1으로 구성되도록 전환되고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp12, PERn12, PETp12 및 PETn12는 호스트 A, PCIe 레인 6에서 호스트 A, 이더넷 포트 2로 구성되도록 전환되고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp13, PERn13, PETp13 및 PETn13는 호스트 A, PCIe 레인 7에서 호스트 A, 이더넷 포트 3로 구성되도록 전환되고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp14, PERn14, PETp14 및 PETn14는 호스트 B, PCIe 레인 6에서 호스트 B, 이더넷 포트 2로 구성되도록 전환되고, SFF-TA-1008 커넥터의 PCIe 신호들 PERp15, PERn15, PETp15 및 PETn15는 호스트 B, PCIe 레인 7에서 호스트 B, 이더넷 포트 3로 구성되도록 전환된다.
아래의 표(표 3)는 싱글 포트, 듀얼 포트 구현 및 NVMe(RFU 핀이 로우(low)일 때) 또는 NVMe-oF(예를 들어, RFU 핀이 하이(high)일 때)모드에서 RFU 핀을 재 정의함으로써 SFF-TA-1008 커넥터 PCIe 레인들 연결 상태를 도시한다.
Figure pat00003
표 3 : 단일 포트, 듀얼 포트 구현 및 NVMe (RFU 핀이 로우 (낮음) 일 때) 또는 NVMe-oF (예 : RFU 핀이 하이 (하이) 일 때 SFF- ) 모드에서 RFU 핀을 재정의한다.
도 2A는 본 개시의 일부 실시예들에 따른 예시적인 SSD 디바이스(200)를 나타내는 블록 다이어그램이다. SSD 디바이스(200)는 컴퓨팅 디바이스, 예를 들어, SSD(202)(예를 들어, 새로운 폼 팩터 1(NF1), SSD, eSSD 또는 임베디드 SSD(embedded SSD))에 연결된 필드 프로그래머블 게이트 어레이(Field Programmable Gate Array, FPGA)(201)를 포함할 수 있다. FPGA(201)는 SSD(202)에 대한 컨트롤러로서 동작할 수 있고, SFF-TA-100X 커넥터 또는 인터페이스, 예를 들어, SFF-TA-1008 커넥터(206)와 SSD(202) 사이를 인터페이스하고, 복수의 플래시 드라이브들(예를 들어, 203A 및 203B) 사이를 인터페이스 할 수 있다. SFF-TA-1008 커넥터(206)는 마더 보드 및/또는 호스트 디바이스의 스위치의 BMC에 연결될 수 있다.
FPGA(201)는 포트들(207 및 208)(예를 들어, PCIe RP X8 포트 및 PCIe RP X4 포트) 및 멀티플렉서들(218A 및 218B)을 통해 PCIe 인터페이스(209)(예를 들어, PCIe X8 인터페이스)를 거쳐 SSD(202)와 인터페이스 할 수 있다. 예를 들어, FPGA(201)의 포트(207)는 PCIe X4 버스들(216A 및 216B)를 통해 멀티플렉서(218A)에 연결된다. FPGA(201)의 포트(207)는 PCIe X4 버스(216E)를 통해 멀티플렉서(218B)에 연결된다. FPGA(201)의 포트(208)는 PCIe X4 버스(216C)를 통해 멀티플렉서(218A)에 연결되고, FPGA(201)의 포트(208)는 PCIe X4 버스(216F)를 통해 멀티플렉서(218B)에 연결된다.
멀티플렉서(218A)는 PCIe X8 전송 버스를 통해 PCIe X8 인터페이스 (209)를 거쳐 SSD(202)에 연결되고, 멀티플렉서(218B)는 PCIe X8 수신 버스를 통해 PCIe X8 인터페이스 (209)를 거쳐 SSD (202)에 연결된다. 따라서, FPGA(201)는 PCIe X4 전송 버스들(216A, 216B 및 216C)을 사용하여 포트들(207 및 208)을 통해 전송 멀티플렉서(218A)를 거쳐 SSD(202)로 데이터를 전송할 수 있고, FPGA(201)는 PCIe X4 수신 버스들(216D, 216E, 및 216F)을 사용하는 포트들(207 및 208)을 통해 수신 멀티플렉서(218B)를 거쳐 SSD(202)로부터 데이터를 수신할 수 있다. 또한, 포트(207)는 고대역폭 메모리(High Bandwidth Memory, HBM)(220A)에 연결되고 포트(208)는 다른 HBM(220B)에 접속된다. HBM(220A) 및 HBM(220B) 각각은 HBM 컨트롤러(222)에 접속된다. 일부 실시예들에 있어서, FPGA(201)는 또한 플래시 드라이브들(203A, 203B) 및 클록 회로(214)에 접속된다.
SFF-TA-1008 커넥터(206)는 2개의 멀티플렉서들(210 및 212)을 통해 2개의 PCIe X4 포트들(204 및 205)를 거쳐 FPGA(201)에 연결될 수 있다. PCIe X4 포트(204)는 PCIe X4 버스를 사용하여 멀티플렉서(210)를 통해 SFF-TA-1008 커넥터(206)를 거쳐 미드-플레인 상의 마더보드로 신호 또는 패킷들을 전송할 수 있고, 마더 보드에 전송할 수 있고, 다른 PCIe X4 버스를 사용하는 멀티플렉서(212)를 통해 SFF-TA-1008 커넥터(206)를 통해 미드-플레인 상의 마더보드로부터 신호 또는 패킷들을 수신할 수 있다. PCIe X4 포트(205)는 PCIe X1 버스를 사용하여 멀티플렉서(210)를 통해 SFF-TA-1008 커넥터(206)를 거쳐 미드-플레인 상의 마더보드로 신호 또는 패킷들을 전송할 수 있고, 다른 PCIe X1 버스를 사용하여 멀티플렉서(212)를 통해 SFF-TA-1008 커넥터(206)를 거쳐 미드-플레인 상의 마더보드로부터 신호 또는 패킷들을 수신할 수 있다. 멀티플렉서(210)는 PCIe X4 버스를 통해 SFF-TA-1008 커넥터(206)로 신호를 전송할 수 있고, 멀티플렉서(212)는 다른 PCIe X4 버스를 통해 SFF-TA-1008 커넥터(206)로부터 신호를 수신할 수 있다.
일부 실시예들에 있어서, 향후 사용을 위해 예약된 SFF-TA-1008 커넥터의 RFU 핀(224)은 SSD(202)가 NVMe 및 NVMe-oF 프로토콜을 모두 지원할 수 있도록 RFU=NVMe-oF 모드에 의해 재정의 된다. 예를 들어, SSD(202)는 RFU 핀(224)의 상태(하이(high) 또는 로우(low))에 기초하여 하드웨어를 전혀 변경하지 않고, 50G부터 최대 100G 또는 그 이상의 다양한 이더넷 속도로 동작할 수 있다. 예를 들어, SFU-TA-1008 커넥터(206)를 통해 (RFU에 연결하는 범용 입출력(General Purpose Input Output, (GPIO)를 거쳐) 마더보드 또는 호스트 디바이스의 BMC로부터 수신된 명령들에 기초하여, RFU 핀(224)이 하이(high)일 때, SSD(202)는 NVMe-oF 모드에서 동작하고, FPGA(201)는 이더넷 포트 0 및 이더넷 포트 1을 사용하여 SFF-TA-1008 커넥터에 연결할 수 있다. 반면에, 예들 들어, SFU-TA-1008 커넥터(206)를 통해 (RFU에 연결하는 GPIO를 거쳐) 마더보드 또는 호스트 디바이스의 BMC로부터 수신된 명령들에 기초하여, RFU 핀(224)이 로우(low)일 때, SSD(202)는 NVMe 모드로 동작하고, FPGA(201)는 PCIe 포트들(204, 205) 및 멀티플렉서들(210 및 212)을 사용하여 SFF-TA-1008 커넥터에 연결할 수 있다.
도 2B는 도 2A의 예시적인 SSD 디바이스(200)의 다른 실시예를 도시한다. 도 2B의 실시예는 도 2A의 실시예의 모든 구성들을 포함한다. 예외적으로, 도 2B의 실시예에서, FPGA와 SSD(202) 사이의 PCIe X8 인터페이스(209)는, U.2 커넥터로 대체된다. 도 2B의 실시예는 또한 포트(207 및 208)에 연결된 HBM(220A) 및 HBM(220B)가 없으며, HBM(220A) 및 HBM(220B) 각각에 연결된 HBM 컨트롤러(222)가 없다. 도 2B의 실시예에 있어서, RFU 핀(224)이 하이(high)일 때, 즉, SSD(202)가 NVMe-oF 모드로 동작할 때, FPGA(201)는 이더넷 포트 1 및 이더넷 포트 2를 사용하여 SFF-TA-1008 커넥터에 연결할 수 있다.
도 3은 SSD(301) 및 SSD 컨트롤러(302)가 함께 내장된 SSD 디바이스(300)를 도시한다. SSD 컨트롤러(302)는 FPGA 디바이스 또는 ASIC(Application Specific Integrated Circuit)일 수 있다. SSD 디바이스(300)에서, SFF-TA-1008 커넥터(304)는 PCIe X2 포트(306) 및 이더넷 포트(310)(예를 들어, 이더넷 포트 0 및 이더넷 포트 1)를 통해 SSD 컨트롤러(302)에 연결될 수 있다. SSD 컨트롤러(302)는 PCIe X2 포트(306) 및 이더넷 포트(310)를 통해 SFF-TA-1008 커넥터(304)를 거쳐 미드-플레인 상의 마더보드에 신호 또는 패킷들을 전송 또는 수신할 수 있다. 일부 실시예들에 있어서, 향후 사용을 위해 예약된, SFF-TA-1008 커넥터(304)의 RFU 핀(308)은 SSD(301)가 NVMe 및 NVMe-oF 프로토콜을 모두 지원할 수 있도록, RFU=NVMe-oF 모드에 의해 재정의된다. 예를 들어, SSD(301)는 RFU 핀(308)의 상태(하이(high))에 기초하여 하드웨어를 전혀 변경하지 않고, 50G에서 최대 100G 또는 그 이상까지 다양한 이더넷 속도들로 동작할 수 있다. RFU 핀(308)이 하이(high)일 때, 즉, SSD(301)가 NVMe-oF 모드로 동작할 때, SSD 제어기 (302)는 이더넷 포트(310 (예를 들어, 이더넷 포트 0 및 이더넷 포트 1)이며 50G에서 100G 이상의 다른 이더넷 속도로 동작할 수 있다.
도 4는 SSD 디바이스에 대한 모드 또는 프로토콜(NVMe 또는 NVMe-oF) 선택의 예시적인 방법을 도시한다. SSD 디바이스는 도 2A의 SSD 디바이스(200)일 수있다.
방법(400)에서, 디바이스(예를 들어, SSD디바이스 (200))는 401에서 리셋된다.
402에서, SSD 디바이스(예를 들어, SSD 디바이스 (200))의 SSD 컨트롤러(예를 들어, FPGA(201))는 SSD 디바이스(예를 들어, SSD 디바이스 200)의 프론트 엔드(front end)에 연결된 SFF-TA-1008 커넥터(예를 들어, SFF-TA-1008 커넥터(206))의 RFU 핀(예를 들어, RFU 핀 224)의 상태를 확인한다.
402에서, RFU 핀(예를 들어, RFU 핀 (224))의 상태가 하이(high)로 결정되면, 404에서, SSD 컨트롤러(예를 들어, FPGA(201))에 연결된 SSD(예를 들어, SSD(202))는, NVMe-oF 모드로 동작을 시작한다.
SSD(예를 들어, SSD(200))가 404에서 NVMe-oF 모드로 동작하기 시작하면, SSD 컨트롤러(예를 들어, FPGA(201))는 SSD 디바이스에(예를 들어, SSD 디바이스(202)) 연결된 호스트 디바이스의 듀얼 포트 핀의 상태를 확인한다. SFF-TA-1008 커넥터(예를 들어, SFF-TA-1008 커넥터 206)의 프론트 엔드(front end)를 통해 SSD 디바이스(예 : SSD 디바이스 200)에 연결된 호스트 디바이스의 듀얼 포트 핀의 상태를 체크한다.
406에서, SSD 디바이스(예를 들어, SSD 디바이스 (200))에 연결된 호스트 디바이스의 듀얼 포트 핀의 상태가 로우(low)로 결정되면, 408에서, SSD(예를 들어, SSD (202))는 듀얼 포트 NVMe-oF 모드로 동작을 시작하고, 410에서, SSD 컨트롤러(예를 들어, FPGA(201))는 SSD(예를 들어, SSD (202))가 , 듀얼 포트 NVMe-oF 모드로 동작하도록, SSD 디바이스(예 : SSD 디바이스 200)에 연결된 호스트 디바이스로부터, SFF-TA-1008 커넥터(예 : SFF-TA-1008 커넥터 206)의 프론트 엔드(front end)를 통해, 듀얼 포트 모드에 대한 NVMe-oF 이미지 또는 마이크로코드를 다운로드 한다.
그러나, 406에서, SSD 디바이스(예를 들어, SSD 디바이스(200))에 연결된 호스트 디바이스의 듀얼 포트 핀의 상태가 하이(high)로 결정되면, 412에서, SSD(예를 들어, SSD(202))는 싱글 포트 NVMe-oF 모드로 동작을 시작하고, 414에서, SSD 컨트롤러(예를 들어, FPGA(201))는 SSD(예를 들어, SSD(202))가 싱글 포트 NVMe-oF 모드로 동작하도록, SSD 디바이스(예 : SSD 디바이스(200))에 연결된 호스트 디바이스로부터, SFF-TA-1008 커넥터(예를 들어, SFF-TA-1008 커넥터(206))의 프론트 엔드(front end)를 통해, 싱글 포트 모드에 대한 NVMe-oF 이미지 또는 마이크로코드를 다운로드 한다.
402에서, RFU 핀(예를 들어 RFU 핀(224))의 상태가 로우(low)로 결정되면, 416에서, SSD 컨트롤러(예를 들어, FPGA(201))에 연결된 SSD(예를 들어, SSD(202))가 NVMe 모드로 동작을 시작한다.
SSD(예를 들어, SSD(200))가 418에서 418에서 NVMe 모드로 동작을 시작하면, SSD 디바이스(예를 들어, SSD 디바이스 (200))의 SSD 컨트롤러(예를 들어, FPGA(201))는 SFF-TA-1008 커넥터(예를 들어, SFF-TA-1008 커넥터(206))를 통해, SSD 디바이스(예를 들어, SSD 디바이스(200))에 연결된 호스트 디바이스의 듀얼 포트 핀의 상태를 확인한다.
418에서, SSD 디바이스(예를 들어, SSD 디바이스(200))에 연결된 호스트 디바이스의 듀얼 포트 핀의 상태가 로우(low)로 결정되면, 420에서,SSD(예를 들어, SSD (202))는 듀얼 포트 NVMe 모드로 동작을 시작하고, 422에서, SSD 컨트롤러(예를 들어, FPGA(201))는 SSD(예를 들어, SSD(202))가 듀얼 포트 NVMe-oF 모드로 동작하도록, SSD 디바이스(예 : SSD 디바이스(200))에 연결된 호스트 디바이스로부터, SFF-TA-1008 커넥터(예를 들어, SFF-TA-1008 커넥터(206))의 프론트 엔드(front end)를 통해, 듀얼 포트 모드에 대한 NVMe 이미지 또는 마이크로코드를 다운로드 한다.
반면, 418에서, SSD 디바이스(예를 들어, SSD 디바이스(200))에 접속된 호스트 디바이스의 듀얼 포트 핀의 상태가 424에서 하이로 결정되면, SSD(예를 들어, SSD (202))는 싱글 포트 NVMe 모드에서 동작하고, 426에서, SSD 컨트롤러(예를 들어, FPGA (201))는 SSD(예를 들어, SSD (202))가 싱글 포트 NVMe 모드로 동작하도록 싱글 포트 모드에 대한 NVMe 이미지 또는 마이크로코드를 SSD 디바이스(예를 들어, SSD 디바이스(200))에 연결된 호스트 장치로부터, (예를 들어, SFF-TA-1008 커넥터(206)와 같은)SFF-TA-1008의 프론트 엔드를 통해 다운로드 한다.
"제1", "제2", "제3" 등의 용어는 본 명세서에서 다양한 성분, 구성 요소, 영역, 층 및/또는 섹션을 설명하기 위해 사용될 수 있지만, 이들 성분, 구성 요소, 영역, 층 및/또는 섹션이 위의 용어로 제한되지 않는다. 이러한 용어는 하나의 성분, 구성 요소, 영역, 층 또는 섹션을 다른 성분, 구성 요소, 영역, 층 또는 섹션과 구별하는데 사용된다. 따라서, 본 명세서에서 논의되는 제1 요소, 제1 구성 요소, 제1 영역, 제1 층 또는 제1 섹션은 본 발명의 사상 및 범위를 벗어나지 않으면서, 제2 요소, 제2 구성 요소, 제2 영역, 제2 층 또는 제2 섹션으로 지칭될 수 있다.
본 명세서에서 "아래에", “아래”, "위에", "위", “상에”등과 같은 공간적으로 상대적인 용어는 하나의 요소 또는 특징과 도면들에 도시된 다른 요소(들) 또는 특징(들)과의 관계를 쉽게 설명하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시된 방위에 추가하여 디바이스의 사용 또는 동작 시에 상이한 방위를 포함하도록 의도된 것으로 해석될 수 있다. 예를 들어, 도면의 디바이스가 뒤집어지면, 다른 구성 요소 또는 특징의 "아래" 또는 “밑에” 또는 "아래에 "있는 것으로 기술된 구성 요소는 다른 구성 요소 또는 특징의 "위에" 있는 것일 수 있다. 따라서, “아래” 및 "밑에"라는 예시적인 용어는 “위”와 “아래”의 방향을 모두 포함할 수 있다. 디바이스는 다른 방향으로 배향될 수 있고(예를 들어, 90도 또는 다른 배향으로 회전될 수 있음), 본 명세서에서 사용된 공간적으로 상대인 기술어는 그에 따라 해석되어야 한다. 또한, 하나의 층이 2개의 층 사이에 있는 것으로 언급될 때, 그 층은 2개의 층 사이의 유일한 층일 수 있거나, 또한 하나 이상의 중간 층들이 존재할 수 있다.
본 명세서에서 사용되는 용어는 특정 실시예들을 설명하기 위한 것이며, 본 발명의 개념을 제한하지 않는다. 본 명세서에 사용된 바와 같이, "실질적으로", "대략" 및 이와 유사한 용어는 근사(approximation)의 용어로서 사용되며 정도(degree)의 용어로서 사용되지는 않으며, 당업자에게 자명하게 인식되는 측정 값 또는 계산 값의 고유한 변화를 설명하는 것일 수 있다.
본 명세서에서 사용된 단수 형태 "a" 및 "an"은 문맥상 명백히 다르게 지시하지 않는 한 복수 형태를 포함할 수 있다. "포함하는" 이라는 용어는 본 명세서에서 사용될 때, 언급된 특징, 정수, 단계, 동작, 성분 및/또는 구성요소의 존재를 특정하는 것이나, 하나 이상의 다른 특징, 정수, 단계, 동작, 성분, 구성 요소 및/ 또는 이들의 그룹의 존재나 추가를 배제하는 것은 아니다. 본 명세서에 사용된 바와 같이, "및/또는"이라는 용어는 하나 이상의 관련된 목록화된 항목의 임의의 조합과 모든 조합을 포함한다. 구성 요소들의 목록 앞의 "적어도 하나"와 같은 표현은, 구성 요소들의 전체 목록을 수식하고, 목록의 개별 구성 요소들을 수식하지 않는다. 또한, 본 발명의 개념의 실시예를 기술할 때 사용되는 "할 수 있다"는 표현은 "본 발명의 개념의 하나 이상의 실시 예"를 의미할 수 있다. 또한, "예시적인"이라는 용어는 예 또는 실례를 나타내는 것을 의미한다. 본 명세서에 사용된 바와 같이, 용어 "사용하다", "사용하는" 및 "사용된"은 각각 용어 "이용", "이용"및 "이용된"과 동의어로 간주될 수 있다.
구성 요소 또는 층이 다른 구성 요소 또는 층의 "위에", "연결된", "결합된" 또는 "인접한"으로 언급될 때, 이는 구성 요소 또는 층이 다른 구성 요소 또는 층에 직접 연결될 수 있고, 또는 다른 요소 또는 층에 인접하여 결합되거나, 또는 하나 이상의 개재 요소 또는 층이 존재할 수 있다. 구성 요소 또는 층이 다른 구성 요소 또는 층에 "직접적으로", "직접적으로 연결된", "직접적으로 결합 된" 또는 "바로 인접한"으로 언급될 때, 개재하는 요소 또는 층이 존재하지 않을 수 있다.
본 명세서에서 인용된 임의의 수치 범위는 인용된 범위 내에 포함된 동일한 수치 정밀도의 모든 하위 범위를 포함하는 것으로 의도된다. 예를 들어, "1.0 내지 10.0"의 범위에는, 지정된 최소 값 1.0과 지정된 최대 값 10.0의 값의 사이의 모든 부분 범위가 포함되며, 예를 들어, 2.4 내지 7.6과 같이 최소 값과 동일하거나 1.0보다 크고 최대 값과 동일하거나 10.0보다 작은 것을 포함한다. 본 명세서에 인용된 임의의 최대 수치 한정은 그것에 포함되는 더 낮은 모든 수치 한정을 포함도록 의도되며, 본 명세서에 인용 된 임의의 최소 수치 한정은 그것에 포함되는 모든 더 높은 수치 한정을 포함하도록 의도된다.
본 명세서에 기술된 본 개시의 실시예에 따른 전자 또는 전기 디바이스들 및/또는 임의의 다른 관련 디바이스들 또는 구성요소들은 임의의 적합한 하드웨어, 펌웨어(예를 들어, 특정-용도의 집적 회로), 소프트웨어, 또는 소프트웨어, 펌웨어 및 하드웨어의 조합을 이용하여 구현될 수 있다. 예를 들어, 상기 디바이스들의 다양한 구성 요소들은 하나의 집적 회로(IC) 칩 상에 또는 개별 IC 칩들 상에 형성될 수 있다. 또한, 상기 디바이스들의 다양한 구성 요소는 플렉서블(flexible) 인쇄 회로 필름, 테이프 캐리어 패키지(tape carrier package, TCP), 인쇄 회로 기판(printed circuit board, PCB) 상에 구현되거나 또는 하나의 기판 상에 형성될 수 있다. 또한, 상기 디바이스들의 다양한 구성 요소들은, 본 명세서에서 기술된 다양한 기능들을 수행하기 위해 하나 이상의 프로세서 상에서 실행되고, 하나 이상의 컴퓨팅 디바이스들에서 컴퓨터 프로그램 명령어들을 실행하고, 다른 시스템 구성요소들과 상호 작용하는 프로세스 또는 스레드(thread)일 수 있다. 컴퓨터 프로그램 명령들은, 예를 들어, 랜덤 액세스 메모리 (RAM)와 같은 표준 메모리 디바이스를 사용하여 컴퓨팅 디바이스에 구현될 수 있는 메모리에 저장된다. 컴퓨터 프로그램 명령어들은 또한, 예를 들어, CD-ROM, 플래시 드라이브 또는 이와 같은 다른 일시적이지 않은 컴퓨터 판독 가능 매체에 저장될 수 있다. 또한, 당해 분야의 통상의 기술자는 다양한 컴퓨팅 디바이스의 기능이 단일 컴퓨팅 디바이스에 결합되거나 통합될 수 있고, 또는 특정 컴퓨팅 디바이스의 기능이 하나 이상의 다른 컴퓨팅 디바이스에 분산될 수 있음을 본 개시 예시적인 실시예들의 사상 및 범위로부터 벗어나지 않는 범위에서 인식해야 한다.
SFF-TA-100X 기반의 멀티-모드 프로토콜 솔리드 스테이트 디바이스의 예시적인 실시예들이 본 명세서에서 구체적으로 설명되고 예시되었지만, 다수의 변형 및 변화들이 당해 분야의 통상의 기술자에게 명백할 수 있다. 따라서, SFF-TA-100X 기반의 멀티-모드 프로토콜에 대해, 본 개시의 원리에 따라 구성된 멀티-모드 프로토콜 솔리드 스테이트 디바이스가 본 명에서에서 구체적으로 설명된 것 이외에도 구현될 수 있다는 것을 이해해야한다. 본 발명의 개념은 또한 이하의 청구범위 및 그 균등범위에 의해 정의된다.

Claims (20)

  1. 스토리지 디바이스;
    스토리지 디바이스 컨트롤러;
    상기 스토리지 디바이스 컨트롤러를 상기 스토리지 디바이스에 연결하는 제1 인터페이스; 및
    상기 스토리지 디바이스 컨트롤러를 호스트 디바이스에 연결하는 제2 인터페이스
    를 포함하고,
    상기 스토리지 디바이스는 상기 호스트 디바이스로부터 수신된 명령(instructions)에 기초하는 상기 제2 인터페이스의 신호의 상태에 기초하여 제1 모드 또는 제2 모드를 동작하도록 구성되는,시스템.
  2. 제1항에 있어서,
    상기 스토리지 디바이스는 NF1 SSD(new form factor 1 solid state drive), eSSD(Ethernet SSD), 및 임베디드 SDD 중 하나이고, 상기 스토리지 디바이스 컨트롤러는 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)인 것인, 시스템.
  3. 제1항에 있어서,
    상기 제1 인터페이스는 PCIe 인터페이스(peripheral component interconnect express interface) 또는 U.2 커넥터이고, 그리고 상기 제2 인터페이스는 SFF- TA-100X 커넥터(small form factor-technology affiliate-100X connector)이고 여기에서 X는 2, 6, 7, 8, 및 9 중 하나이고, 상기 스토리지 디바이스는 SFF-8201 2.5″드라이브 폼 팩터 디멘션(drive form factor dimensions); 시리얼 커넥터를 갖는 SFF-8223 2.5″드라이브 폼 팩터; SFF-8301 3.5″드라이브 폼 팩터 디멘션; 및 시리얼 커넥터를 갖는 SFF-8323 3.5″드라이브 폼 팩터 중 하나를 가지는 것인, 시스템.
  4. 제1항에 있어서,
    상기 스토리지 디바이스의 동작의 상기 제1 모드 및 상기 제2 모드는 각각 NVMe 모드(non-volatile memory express mode) 및 NVMe-oF 모드(NVMe over fabrics mode)인 것인, 시스템.
  5. 제4항에 있어서,
    상기 제2 인터페이스는 SFF-TA-1008 커넥터이고 그리고 상기 제2 인터페이스에서의 신호의 상태는 상기 SFF-TA-1008 커넥터의 RFU 핀(reserved for future use pin)에서의 신호의 상태이고, 상기 스토리지 디바이스는 상기 SFF-TA-1008 커넥터의 RFU 핀(reserved for future use pin)에서의 신호의 상태가 로우(low) 인 경우 NVMe 모드에서 동작하고 그리고 상기 스토리지 디바이스는 SFF-TA-1008 커넥터의 RFU 핀에서의 신호의 상태가 하이(high)인 경우 NVMe-oF 모드에서 동작하며,
    상기 NVMe 모드 및 상기 NVMe-oF 모드 각각에서 상기 SFF-TA-1008는 X4 싱글 포트 모드, X4 듀얼 포트 모드, X8 싱글 포트 모드, X8 듀얼 포트 모드, X16 싱글 포트 모드, 및 X16 듀얼 포트 모드 중 어느 하나로 동작하는 것인, 시스템.
  6. 제5항에 있어서,
    상기 스토리지 디바이스 및 상기 SFF-TA-1008 커넥터가 NVMe-oF 모드 및 X4 싱글 포트 모드에서 각각 동작하는 경우, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp2, PERn2, PETp2, 및 PETn2는 호스트 A 및 이더넷 포트0으로 구성되고, 그리고 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp3, PERn3, PETp3, 및 PETn3는 호스트 A 및 이더넷 포트1로 구성되는 것인, 시스템.
  7. 제5항에 있어서,
    상기 스토리지 디바이스 및 상기 SFF-TA-1008 커넥터가 NVMe-oF 모드 및 X4 듀얼 포트 모드에서 각각 동작하는 경우, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp1, PERn1, PETp1, 및 PETn1은 호스트 A 및 이더넷 포트0으로 구성되고, 그리고 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp3, PERn3, PETp3, 및 PETn3은 호스트 B 및 이더넷 포트1으로 구성되는 것인, 시스템.
  8. 제5항에 있어서,
    상기 스토리지 디바이스 및 상기 SFF-TA-1008 커넥터가 NVMe-oF 모드 및 X8 싱글 포트 모드에서 각각 동작하는 경우, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp4, PERn4, PETp4, 및 PETn4는 호스트 A 및 이더넷 포트0으로 구성되고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp5, PERn5, PETp5, 및 PETn5는호스트 A 및 이더넷 포트1으로 구성되고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp6, PERn6, PETp6, 및 PETn6은 호스트 A 및 이더넷 포트2로 구성되고, 그리고 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp7, PERn7, PETp7, 및 PETn7은 호스트 A 및 이더넷 포트3로 구성되는 것인, 시스템.
  9. 제5항에 있어서,
    상기 스토리지 디바이스 및 상기 SFF-TA-1008 커넥터가 NVMe-oF 모드 및 X8 듀얼 포트 모드에서 각각 동작하는 경우, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp2, PERn2, PETp2, 및 PETn2는 호스트 A 및 이더넷 포트 0으로 구성되고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp3, PERn3, PETp3, 및 PETn3는 호스트 A 및 이더넷 포트 1로 구성되고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp6, PERn6, PETp6, 및 PETn6는 호스트 B 및 이더넷 포트 2로 구성되며, 그리고 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp7, PERn7, PETp7, 및 PETn7는 호스트 B 및 이더넷 포트 3로 구성되는 것인, 시스템.
  10. 제5항에 있어서,
    상기 스토리지 디바이스 및 상기 SFF-TA-1008 커넥터가 NVMe-oF 모드 및 X16 싱글 포트 모드에서 각각 동작하는 경우, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp8, PERn8, PETp8, 및 PETn8가 호스트 A 및 이더넷 포트 0으로 구성되고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp9, PERn9, PETp9, 및 PETn9가 호스트 A 및 이더넷 포트 1로 구성되고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp10, PERn10, PETp10, 및 PETn10가 호스트 A 및 이더넷 포트 2로 구성되고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp11, PERn11, PETp11, 및 PETn11가 호스트 A 및 이더넷 포트 3로 구성되고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp12, PERn12, PETp12, 및 PETn12가 호스트 A 및 이더넷 포트 4로 구성되고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp13, PERn13, PETp13, 및 PETn13가 호스트 A 및 이더넷 포트 5로 구성되고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp14, PERn14, PETp14, 및 PETn14가 호스트 A 및 이더넷 포트 6으로 구성되며, 그리고 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp15, PERn15, PETp15, 및 PETn15가 호스트 A 및 이더넷 포트 7으로 구성되는 것인, 시스템.
  11. 제 5항에 있어서,
    상기 스토리지 디바이스 및 상기 SFF-TA-1008 커넥터가 NVMe-oF 모드 및 X16 듀얼 포트 모드에서 각각 동작하는 경우, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp8, PERn8, PETp8, 및 PETn8가 호스트 A 및 이더넷 포트 0으로 구성되고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp9, PERn9, PETp9, 및 PETn9가 호스트 A 및 이더넷 포트 1으로 구성되고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp10, PERn10, PETp10, 및 PETn10가 호스트 B 및 이더넷 포트 0으로 구성되고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp11, PERn11, PETp11, 및 PETn11가 호스트 B 및 이더넷 포트 1으로 구성되고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp12, PERn12, PETp12, 및 PETn12가 호스트 A 및 이더넷 포트 2로 구성되고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp13, PERn13, PETp13, 및 PETn13가 호스트 A 및 이더넷 포트 3로 구성되고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp14, PERn14, PETp14, 및 PETn14가 호스트 B 및 이더넷 포트 2로 구성되며, 그리고 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp15, PERn15, PETp15, 및 PETn15가 호스트 B 및 이더넷 포트 3로 구성되는 것인, 시스템.
  12. 컴퓨팅 디바이스; 및
    제1 인터페이스를 통해 컴퓨팅 디바이스에 연결된 스토리지 디바이스
    를 포함하고,
    상기 컴퓨팅 디바이스는 상기 스토리지 디바이스의 컨트롤러로서 동작하도록 구성되고, 그리고
    상기 컴퓨팅 디바이스는 제2 인터페이스를 통해 호스트 디바이스에 연결되는 것인, 시스템.
  13. 제12항에 있어서,
    상기 스토리지 디바이스는 NF1 SSD(new form factor 1 solid state drive), eSSD(Ethernet SSD), 및 임베디드 SSD 중 하나이고, 그리고 상기 컴퓨팅 디바이스는 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)이고,
    상기 제1 인터페이스는 PCIe 인터페이스(peripheral component interconnect express interface) 또는 U.2 커넥터이고, 그리고 상기 제2 인터페이스는 SFF-TA 1008 커넥터(small form factor-technology affiliate-1008 connector)이고,
    상기 스토리지 디바이스는 RFU(reserved for future use) 핀에 연결하는 GPIO(general purpose input output)를 통해 상기 호스트 디바이스로부터 수신된 명령에 기초하는 상기 SFF-TA-1008 커넥터의 RFU 핀에서의 신호의 상태에 기초하여, NVMe 모드(non-volatile memory express mode) 모드 또는 NVMe-oF 모드(NVMe over fabrics mode)에서 동작하도록 구성되며, 그리고
    상기 스토리지 디바이스는 상기 SFF-TA-1008 커넥터의 상기 RFU 핀에서 신호의 상태가 로우(low)인 경우, 상기 NVMe 모드에서 동작하고 그리고 상기 스토리지 디바이스는 상기 SFF-TA-1008 커넥터의 상기 RFU 핀에서 신호의 상태가 하이(high)인 경우, 상기 NVMe-oF 모드에서 동작하며, 상기 NVMe 모드 및 상기 NVMe-oF 모드 각각에서 상기 SFF-TA-1008 커넥터는 X4 싱글 포트 모드, X4 듀얼 포트 모드, X8 싱글 포트 모드, X8 듀얼 포트 모드, X16 싱글 포트 모드, 및 X16 듀얼 포트 모드 중 어느 하나로 동작하는 것인, 시스템.
  14. 제13항에 있어서,
    상기 X4 싱글 포트 모드에서, 상기 SFF-TA-1008 커넥터의 상기 RFU 핀이 로우에서 하이 상태로 전환하는 경우, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp2, PERn2, PETp2, 및 PETn2는 호스트 A, PCIe 레인 2에서 호스트 A, 이더넷 포트 0으로 구성되도록 전환하고, 그리고 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp3, PERn3, PETp3, 및 PETn3는 호스트 A, PCIe 레인 3에서 호스트 A, 이더넷 포트 1으로 구성되도록 전환하고, 그리고 상기 X4 듀얼 포트 모드에서, 상기 SFF-TA-1008 커넥터의 상기 RFU 핀이 로우에서 하이 상태로 전환하는 경우, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp1, PERn1, PETp1, 및 PETn1는 호스트 A, PCIe 레인 1에서 호스트 A, 이더넷 포트 0으로 구성되도록 전환하고, 그리고 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp3, PERn3, PETp3, 및 PETn3는 호스트 B, PCIe 레인 1에서 호스트 B, 이더넷 포트 1으로 구성되도록 전환하는 것인, 시스템.
  15. 제13항에 있어서,
    상기 X8 싱글 포트 모드에서, 상기 SFF-TA-1008 커넥터의 상기 RFU 핀이 로우에서 하이 상태로 전환하는 경우, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp4, PERn4, PETp4, 및 PETn4는 호스트 A, PCIe 레인 4에서 호스트 A, 이더넷 포트 0으로 구성되도록 전환하고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp5, PERn5, PETp5, 및 PETn5는 호스트 A, PCIe 레인 5에서 호스트 A, 이더넷 포트 1으로 구성되도록 전환하고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp6, PERn6, PETp6, 및 PETn6는 호스트 A, PCIe 레인 6에서 호스트 A, 이더넷 포트 2로 전환하도록 구성되며, 그리고 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp7, PERn7, PETp7, 및 PETn7는 호스트 A, PCIe 레인 7에서 호스트 A, 이더넷 포트 3로 전환하도록 구성되고, 그리고 상기 X8 듀얼 포트 모드에서, 상기 SFF-TA-1008 커넥터의 상기 RFU 핀이 로우에서 하이 상태로 전환하는 경우, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp2, PERn2, PETp2, 및 PETn2는 호스트 B, PCIe 레인 0에서 호스트 A, 이더넷 포트 0으로 구성되도록 전환하고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp3, PERn3, PETp3, 및 PETn3는 호스트 B, PCIe 레인 1에서 호스트 A, 이더넷 포트 1으로 구성되도록 전환하고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp6, PERn6, PETp6, 및 PETn6는 호스트 B, PCIe 레인 2에서 호스트 B, 이더넷 포트 2로 구성되도록 전환하며, 그리고 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp7, PERn7, PETp7, 및 PETn7는 호스트 B, PCIe레인 3에서 호스트 B, 이더넷 포트 3로 구성되도록 전환하는 것인, 시스템.
  16. 제13항에 있어서,
    상기 X16 싱글 포트 모드에서, 상기 SFF-TA-1008 커넥터의 상기 RFU 핀이 로우에서 하이 상태로 전환하는 경우, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp8, PERn8, PETp8, 및 PETn8은 호스트 A, PCIe 레인 8에서 호스트 A, 이더넷 포트 0으로 구성되도록 전환하고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp9, PERn9, PETp9, 및 PETn9는 호스트 A, PCIe 레인 9에서 호스트 A, 이더넷 포트 1으로 구성되도록 전환하고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp10, PERn10, PETp10, 및 PETn10은 호스트 A, PCIe 레인 10에서 호스트 A, 이더넷 포트 2로 구성되도록 전환하고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp11, PERn11, PETp11, 및 PETn11는 호스트 A, PCIe 레인 11에서 호스트 A, 이더넷 포트 3로 구성되도록 전환하고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp12, PERn12, PETp12, 및 PETn12는 호스트 A, PCIe 레인 12에서 호스트 A, 이더넷 포트 4로 구성되도록 전환하고, SFF-TA-1008 커넥터의 PCIe 신호 PERp13, PERn13, PETp13, 및 PETn13는 호스트 A, PCIe 레인 13 에서 호스트 A, 이더넷 포트 5로 구성되도록 전환하고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp14, PERn14, PETp14, 및 PETn14는 호스트 A, PCIe레인 14 에서 호스트 A, 이더넷 포트 6로 전환하도록 구성되며, 그리고 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp15, PERn15, PETp15, 및 PETn15는 호스트 A, PCIe레인 15에서 호스트 A, 이더넷 포트 7으로 구성되도록 전환하는 것인, 시스템.
  17. 제13항에 있어서,
    상기 X16 듀얼 포트 모드에서, 상기 SFF-TA-1008 커넥터의 상기 RFU 핀이 로우에서 하이 상태로 전환하는 경우, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp8, PERn8, PETp8, 및 PETn8은 호스트 A, PCIe 레인 4에서 호스트 A, 이더넷 포트 0으로 구성되도록 전환하고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp9, PERn9, PETp9, 및 PETn9는 호스트 A, PCIe 레인 5에서 호스트 A 및 이더넷 포트 1으로 구성되도록 전환하고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp10, PERn10, PETp10, 및 PETn10은 호스트 B, PCIe 레인 4에서 호스트 B, 이더넷 포트 0으로 구성되도록 전환하고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp11, PERn11, PETp11, 및 PETn11은 호스트 B, PCIe 레인 5에서 호스트 B, 이더넷 포트 1으로 구성되도록 전환하고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp12, PERn12, PETp12, 및 PETn12는 호스트 A, PCIe 레인 6에서 호스트 A, 이더넷 포트 2로 구성되도록 전환하고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp13, PERn13, PETp13, 및 PETn13은 호스트 A, PCIe 레인 7에서 호스트 A, 이더넷 포트 3로 구성되도록 전환하고, 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp14, PERn14, PETp14, 및 PETn14는 호스트 B, PCIe 레인 6에서 호스트 B, 이더넷 포트 2로 구성되도록 전환하고, 그리고 상기 SFF-TA-1008 커넥터의 PCIe 신호 PERp15, PERn15, PETp15, 및 PETn15는 호스트 B, PCIe 레인 7에서 호스트 B, 이더넷 포트 3로 구성되도록 전환하는 것인, 시스템.
  18. 스토리지 디바이스의 동작 모드를 선택하는 방법으로서, 상기 스토리지 디바이스는 제1 인터페이스를 통해 스토리지 디바이스 컨트롤러에 연결되고, 상기 스토리지 디바이스 컨트롤러는 제2 인터페이스를 통해 호스트 디바이스에 연결되며, 상기 방법은:
    상기 제2 인터페이스의 신호의 상태를 결정하는 단계;
    상기 제2 인터페이스에서의 신호의 상태에 기초하여 스토리지 디바이스의 동작 모드를 결정하는 단계; 및
    상기 스토리지 디바이스가 싱글 포트 모드 또는 듀얼 포트 모드에서 동작하면 결정하도록 상기 호스트 디바이스의 듀얼 포트 핀의 상태를 결정하는 단계;
    를 포함하는 스토리지 디바이스의 동작 모드를 선택하는 방법.
  19. 제18항에 있어서,
    상기 스토리지 디바이스는 NF1 SSD(new form factor 1 solid state drive), eSSD(Ethernet SSD), 및 임베디드 SSD 중 하나이고, 그리고 상기 스토리지 디바이스 컨트롤러는 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)이고,
    상기 제1 인터페이스는 PCIe 인터페이스(peripheral component interconnect express interface) 또는 U.2 커넥터이고, 그리고 상기 제2 인터페이스는 SFF-TA-1008 커넥터(small form factor-technology affiliate-1008 connector)이고,
    상기 스토리지 디바이스의 동작 모드는 NVMe 모드(non-volatile memory express mode) 또는 NVMe-oF 모드(NVMe over fabrics mode)이고,
    상기 제2 인터페이스에서의 신호의 상태는 상기 SFF-TA-1008 커넥터의 상기 RFU 핀(reserved for future use pin)에서의 신호의 상태이고,
    상기 스토리지 디바이스는 상기 SFF-TA-1008 커넥터의 상기 RFU 핀에서의 신호의 상태가 로우인 경우 상기 NVMe 모드에서 동작하고 그리고 상기 스토리지 디바이스는 상기 SFF-TA-1008 커넥터의 상기 RFU 핀에서의 신호의 상태가 하이인 경우 상기 NVMe-oF 모드에서 동작하며, 그리고
    상기 스토리지 디바이스는 상기 듀얼 포트 핀의 상태가 로우인 경우 상기 듀얼 포트 모드에서 동작하고 그리고 상기 스토리지 디바이스는 상기 듀얼 포트 핀의 상태가 하이인 경우 상기 싱글 포트 모드에서 동작하는 것인, 스토리지 디바이스의 동작 모드를 선택하는 방법.
  20. 제19항에 있어서,
    상기 스토리지 디바이스의 동작 모드를 선택하는 방법은:
    상기 스토리지 디바이스가 듀얼 포트 모드 및 NVMe-oF 모드에서 동작하는 경우, 상기 듀얼 포트 모드를 위한 NVMe-oF 이미지 또는 마이크로코드를 상기 스토리지 디바이스에 다운로드하는 단계,
    상기 스토리지 디바이스가 싱글 포트 모드 및 NVMe-oF 모드에서 동작하는 경우, 상기 싱글 포트 모드를 위한 NVMe-oF 이미지 또는 마이크로코드를 상기 스토리지 디바이스에 다운로드하는 단계,
    상기 스토리지 디바이스가 듀얼 포트 모드 및 NVMe 모드에서 동작하는 경우, 상기 듀얼 포트 모드를 위한 NVMe 이미지 또는 마이크로코드를 상기 스토리지 디바이스에 다운로드하는 단계, 및
    상기 스토리지 디바이스가 싱글 포트 모드 및 NVMe 모드에서 동작하는 경우, 상기 싱글 포트 모드를 위한 NVMe 이미지 또는 마이크로코드를 상기 스토리지 디바이스에 다운로드하는 단계를 더 포함하는, 스토리지 디바이스의 동작 모드를 선택하는 방법.
KR1020190087932A 2018-07-20 2019-07-19 스토리지 시스템 및 스토리지 디바이스의 동작 모드 선택 방법 KR20200010139A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862701494P 2018-07-20 2018-07-20
US62/701,494 2018-07-20
US16/509,342 US11238005B2 (en) 2018-07-20 2019-07-11 SFF-TA-100X based multi-mode protocols solid state devices
US16/509,342 2019-07-11

Publications (1)

Publication Number Publication Date
KR20200010139A true KR20200010139A (ko) 2020-01-30

Family

ID=69162422

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190087932A KR20200010139A (ko) 2018-07-20 2019-07-19 스토리지 시스템 및 스토리지 디바이스의 동작 모드 선택 방법

Country Status (3)

Country Link
US (3) US11238005B2 (ko)
KR (1) KR20200010139A (ko)
CN (1) CN110737611A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11809344B2 (en) 2021-06-01 2023-11-07 SK Hynix Inc. Peripheral component interconnect express interface device and operating method thereof
US11815941B2 (en) 2021-05-26 2023-11-14 SK Hynix Inc. Peripheral component interconnect express device and operating method thereof
US11921657B2 (en) 2021-05-26 2024-03-05 SK Hynix Inc. Peripheral component interconnect express (PCIE) device for supporting separate reference clock(s) operating between host and direct memory access (DMA) controller
US11940942B2 (en) 2021-06-01 2024-03-26 SK Hynix Inc. Peripheral component interconnect express interface device and operating method thereof

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11983138B2 (en) 2015-07-26 2024-05-14 Samsung Electronics Co., Ltd. Self-configuring SSD multi-protocol support in host-less environment
US11461258B2 (en) 2016-09-14 2022-10-04 Samsung Electronics Co., Ltd. Self-configuring baseboard management controller (BMC)
US20190109720A1 (en) 2016-07-26 2019-04-11 Samsung Electronics Co., Ltd. Modular system (switch boards and mid-plane) for supporting 50g or 100g ethernet speeds of fpga+ssd
US10210123B2 (en) 2016-07-26 2019-02-19 Samsung Electronics Co., Ltd. System and method for supporting multi-path and/or multi-mode NMVe over fabrics devices
US10346041B2 (en) 2016-09-14 2019-07-09 Samsung Electronics Co., Ltd. Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host
US10372659B2 (en) * 2016-07-26 2019-08-06 Samsung Electronics Co., Ltd. Multi-mode NMVE over fabrics devices
US11921555B2 (en) 2019-07-26 2024-03-05 Samsung Electronics Co., Ltd. Systems, methods, and devices for providing power to devices through connectors
KR20210097545A (ko) * 2020-01-30 2021-08-09 삼성전자주식회사 전자장치 및 그 제어방법
US11087801B1 (en) 2020-02-06 2021-08-10 Micron Technology, Inc. Configuring a host interface of a memory device based on mode of operation
US11068421B1 (en) * 2020-02-20 2021-07-20 Silicon Motion, Inc. Memory device and associated flash memory controller
US11243896B2 (en) * 2020-03-25 2022-02-08 Micron Technology, Inc. Multiple pin configurations of memory devices
CN113472744B (zh) * 2021-05-31 2023-04-07 浪潮(北京)电子信息产业有限公司 不同存储协议下的数据交互方法、装置、设备及介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080071963A1 (en) * 2003-11-22 2008-03-20 Super Talent Electronics Inc. Express card with extended USB interface
US20050251609A1 (en) * 2004-05-04 2005-11-10 Horng-Yee Chou Removable peripheral device
US9734086B2 (en) 2006-12-06 2017-08-15 Sandisk Technologies Llc Apparatus, system, and method for a device shared between multiple independent hosts
US8972627B2 (en) 2009-09-09 2015-03-03 Fusion-Io, Inc. Apparatus, system, and method for managing operations for data storage media
US9263102B2 (en) 2010-09-28 2016-02-16 SanDisk Technologies, Inc. Apparatus, system, and method for data transformations within a data storage device
WO2012125504A2 (en) * 2011-03-11 2012-09-20 Skyworks Solutions, Inc. Dual mode serial/parallel interface and use thereof in improved wireless devices and switching components
WO2013176303A1 (en) 2012-05-23 2013-11-28 Taejin Info Tech Co., Ltd. Impedance matching between fpga and memory modules
KR101254647B1 (ko) 2012-08-13 2013-04-15 주식회사 유니테스트 솔리드 스테이트 드라이브 테스트장치
CN103870481A (zh) * 2012-12-12 2014-06-18 Sap股份公司 可配置的多目的推荐
US9887008B2 (en) * 2014-03-10 2018-02-06 Futurewei Technologies, Inc. DDR4-SSD dual-port DIMM device
US9606953B2 (en) * 2014-03-13 2017-03-28 Nokia Technologies Oy Method, apparatus, and computer program product for entering accessory docking mode in USB type C
US10275356B2 (en) * 2015-12-11 2019-04-30 Quanta Computer Inc. Component carrier with converter board
US10346041B2 (en) * 2016-09-14 2019-07-09 Samsung Electronics Co., Ltd. Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host
US10210123B2 (en) * 2016-07-26 2019-02-19 Samsung Electronics Co., Ltd. System and method for supporting multi-path and/or multi-mode NMVe over fabrics devices
US9965356B2 (en) 2016-09-02 2018-05-08 Alibaba Group Holding Limited Method and system of high-availability PCIE SSD with software-hardware jointly assisted implementation to enhance immunity on multi-cell upset
TWI765944B (zh) 2016-12-14 2022-06-01 成真股份有限公司 標準大宗商品化現場可編程邏輯閘陣列(fpga)積體電路晶片組成之邏輯驅動器
US20180188974A1 (en) * 2016-12-30 2018-07-05 Intel Corporation Computer program product, system, and method to allow a host and a storage device to communicate using different fabric, transport, and direct memory access protocols
US10713203B2 (en) 2017-02-28 2020-07-14 Cisco Technology, Inc. Dynamic partition of PCIe disk arrays based on software configuration / policy distribution
US10141050B1 (en) * 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US11238203B2 (en) 2017-06-30 2022-02-01 Intel Corporation Systems and methods for accessing storage-as-memory
US10992533B1 (en) * 2018-01-30 2021-04-27 Pure Storage, Inc. Policy based path management
US10264701B1 (en) * 2018-06-28 2019-04-16 Hewlett Packard Enterprise Development Lp Multi-configuration resource module bay

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11815941B2 (en) 2021-05-26 2023-11-14 SK Hynix Inc. Peripheral component interconnect express device and operating method thereof
US11921657B2 (en) 2021-05-26 2024-03-05 SK Hynix Inc. Peripheral component interconnect express (PCIE) device for supporting separate reference clock(s) operating between host and direct memory access (DMA) controller
US11809344B2 (en) 2021-06-01 2023-11-07 SK Hynix Inc. Peripheral component interconnect express interface device and operating method thereof
US11940942B2 (en) 2021-06-01 2024-03-26 SK Hynix Inc. Peripheral component interconnect express interface device and operating method thereof

Also Published As

Publication number Publication date
CN110737611A (zh) 2020-01-31
US11741040B2 (en) 2023-08-29
US20200026683A1 (en) 2020-01-23
US20230350838A1 (en) 2023-11-02
US11238005B2 (en) 2022-02-01
US20220188002A1 (en) 2022-06-16

Similar Documents

Publication Publication Date Title
KR20200010139A (ko) 스토리지 시스템 및 스토리지 디바이스의 동작 모드 선택 방법
US11907150B2 (en) Multi-protocol IO infrastructure for a flexible storage platform
TWI756488B (zh) 支援多模式及/或多速度之跨架構高速非揮發性記憶體裝置的系統與方法及儲存裝置
US11520714B2 (en) Method and apparatus for supporting a field programmable gate array (FPGA) based add-in-card (AIC) solid state drive (SSD)
US11194743B2 (en) Method of accessing a dual line SSD device through PCIe EP and network interface simultaneously
CN107871524B (zh) 对存储装置进行复位的电子装置和操作该电子装置的方法
US11599482B2 (en) Systems, methods and apparatus for a storage controller with multi-mode PCIe functionalities
US20230198182A1 (en) MULTI-MODE AND/OR MULTI-SPEED NON-VOLATILE MEMORY (NVM) EXPRESS (NVMe) OVER FABRICS (NVMe-oF) DEVICE
US11157204B2 (en) Method of NVMe over fabric RAID implementation for read command execution
US9720864B2 (en) Flexible server system
KR20190056951A (ko) 호스트의 개입 없이 외부 장치와 피어-투-피어 통신을 수행하는 스토리지 장치

Legal Events

Date Code Title Description
E902 Notification of reason for refusal