KR20190106680A - 멀티-모드 및/또는 멀티-속도 NVMe-oF 장치 - Google Patents
멀티-모드 및/또는 멀티-속도 NVMe-oF 장치 Download PDFInfo
- Publication number
- KR20190106680A KR20190106680A KR1020190016912A KR20190016912A KR20190106680A KR 20190106680 A KR20190106680 A KR 20190106680A KR 1020190016912 A KR1020190016912 A KR 1020190016912A KR 20190016912 A KR20190016912 A KR 20190016912A KR 20190106680 A KR20190106680 A KR 20190106680A
- Authority
- KR
- South Korea
- Prior art keywords
- ssd
- nvme
- pcb
- connector
- fpga
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01R—ELECTRICALLY-CONDUCTIVE CONNECTIONS; STRUCTURAL ASSOCIATIONS OF A PLURALITY OF MUTUALLY-INSULATED ELECTRICAL CONNECTING ELEMENTS; COUPLING DEVICES; CURRENT COLLECTORS
- H01R12/00—Structural associations of a plurality of mutually-insulated electrical connecting elements, specially adapted for printed circuits, e.g. printed circuit boards [PCB], flat or ribbon cables, or like generally planar structures, e.g. terminal strips, terminal blocks; Coupling devices specially adapted for printed circuits, flat or ribbon cables, or like generally planar structures; Terminals specially adapted for contact with, or insertion into, printed circuits, flat or ribbon cables, or like generally planar structures
- H01R12/70—Coupling devices
- H01R12/71—Coupling devices for rigid printing circuits or like structures
- H01R12/72—Coupling devices for rigid printing circuits or like structures coupling with the edge of the rigid printed circuits or like structures
- H01R12/73—Coupling devices for rigid printing circuits or like structures coupling with the edge of the rigid printed circuits or like structures connecting to other rigid printed circuits or like structures
- H01R12/735—Printed circuits including an angle between each other
- H01R12/737—Printed circuits being substantially perpendicular to each other
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01R—ELECTRICALLY-CONDUCTIVE CONNECTIONS; STRUCTURAL ASSOCIATIONS OF A PLURALITY OF MUTUALLY-INSULATED ELECTRICAL CONNECTING ELEMENTS; COUPLING DEVICES; CURRENT COLLECTORS
- H01R12/00—Structural associations of a plurality of mutually-insulated electrical connecting elements, specially adapted for printed circuits, e.g. printed circuit boards [PCB], flat or ribbon cables, or like generally planar structures, e.g. terminal strips, terminal blocks; Coupling devices specially adapted for printed circuits, flat or ribbon cables, or like generally planar structures; Terminals specially adapted for contact with, or insertion into, printed circuits, flat or ribbon cables, or like generally planar structures
- H01R12/70—Coupling devices
- H01R12/71—Coupling devices for rigid printing circuits or like structures
- H01R12/72—Coupling devices for rigid printing circuits or like structures coupling with the edge of the rigid printed circuits or like structures
- H01R12/721—Coupling devices for rigid printing circuits or like structures coupling with the edge of the rigid printed circuits or like structures cooperating directly with the edge of the rigid printed circuits
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01R—ELECTRICALLY-CONDUCTIVE CONNECTIONS; STRUCTURAL ASSOCIATIONS OF A PLURALITY OF MUTUALLY-INSULATED ELECTRICAL CONNECTING ELEMENTS; COUPLING DEVICES; CURRENT COLLECTORS
- H01R43/00—Apparatus or processes specially adapted for manufacturing, assembling, maintaining, or repairing of line connectors or current collectors or for joining electric conductors
- H01R43/20—Apparatus or processes specially adapted for manufacturing, assembling, maintaining, or repairing of line connectors or current collectors or for joining electric conductors for assembling or disassembling contact members with insulating base, case or sleeve
- H01R43/205—Apparatus or processes specially adapted for manufacturing, assembling, maintaining, or repairing of line connectors or current collectors or for joining electric conductors for assembling or disassembling contact members with insulating base, case or sleeve with a panel or printed circuit board
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01R—ELECTRICALLY-CONDUCTIVE CONNECTIONS; STRUCTURAL ASSOCIATIONS OF A PLURALITY OF MUTUALLY-INSULATED ELECTRICAL CONNECTING ELEMENTS; COUPLING DEVICES; CURRENT COLLECTORS
- H01R43/00—Apparatus or processes specially adapted for manufacturing, assembling, maintaining, or repairing of line connectors or current collectors or for joining electric conductors
- H01R43/26—Apparatus or processes specially adapted for manufacturing, assembling, maintaining, or repairing of line connectors or current collectors or for joining electric conductors for engaging or disengaging the two parts of a coupling device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/351—Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05K—PRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
- H05K3/00—Apparatus or processes for manufacturing printed circuits
- H05K3/30—Assembling printed circuits with electric components, e.g. with resistor
- H05K3/303—Surface mounted components, e.g. affixing before soldering, aligning means, spacing means
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05K—PRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
- H05K1/00—Printed circuits
- H05K1/18—Printed circuits structurally associated with non-printed electric components
- H05K1/181—Printed circuits structurally associated with non-printed electric components associated with surface mounted components
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05K—PRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
- H05K2201/00—Indexing scheme relating to printed circuits covered by H05K1/00
- H05K2201/10—Details of components or other objects attached to or integrated in a printed circuit board
- H05K2201/10007—Types of components
- H05K2201/10159—Memory
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05K—PRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
- H05K2201/00—Indexing scheme relating to printed circuits covered by H05K1/00
- H05K2201/10—Details of components or other objects attached to or integrated in a printed circuit board
- H05K2201/10007—Types of components
- H05K2201/10189—Non-printed connector
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05K—PRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
- H05K2201/00—Indexing scheme relating to printed circuits covered by H05K1/00
- H05K2201/10—Details of components or other objects attached to or integrated in a printed circuit board
- H05K2201/10007—Types of components
- H05K2201/10212—Programmable component
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05K—PRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
- H05K2201/00—Indexing scheme relating to printed circuits covered by H05K1/00
- H05K2201/10—Details of components or other objects attached to or integrated in a printed circuit board
- H05K2201/10431—Details of mounted components
- H05K2201/10507—Involving several components
- H05K2201/10522—Adjacent components
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05K—PRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
- H05K2201/00—Indexing scheme relating to printed circuits covered by H05K1/00
- H05K2201/10—Details of components or other objects attached to or integrated in a printed circuit board
- H05K2201/10431—Details of mounted components
- H05K2201/10507—Involving several components
- H05K2201/10545—Related components mounted on both sides of the PCB
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
Abstract
본 발명의 실시예에 따른 일부 예시적인 실시예들에 따르면, 장치는 인쇄 회로 기판(PCB), 적어도 하나의 SSD 커넥터를 경유하여 PCB의 제1 면에 연결되는 솔리드 스테이트 드라이브(SSD), PCB의 제2 면에서 PCB에 실장되는 적어도 하나의 필드 프로그래머블 게이트 어레이(FPGA), 및 PCB의 제3 면에서 PCB에 부착되는 적어도 하나의 커넥터를 포함하되, 장치는 적어도 하나의 커넥터를 경유하여 수신되는 제1 입력에 기초하여, 복수의 동작 속도들에서 제1 속도로 동작한다.
Description
본 발명에 따른 하나 이상의 양상들은 네트워크-결합 장치들(network-attached devices), 예를 들어 멀티-모드 및/또는 멀티-속도 불휘발성 메모리 (NVM) 익스프레스 (NVMe) 오버 패브릭스 (NVMe-oF) 장치에 관한 것이다.
NVMe-oF 구성들, 예를 들어, 이더넷-부착(Ethernet-attached) NVMe SSD(solid state drive)들을 사용하는 구성들과 함께, 이더넷 및 SSD의 비용 및 성능의 향상이 도전 과제로 나타날 수 있다. 예를 들어, SSD 성능은 PCIe(Peripheral Component Interconnect Express) 인터페이스 및 NAND들의 기술에 의존하는 동안, 이더넷 속도는 50G/100G 기술 및 향후 기술의 출현으로 증가해오고 있다. 각각의 장치가 점 대 점(point-to-point) 연결을 제공할 수 있으므로, 패브릭-부착 SSD들은 소거 코드 데이터 보호를 지원하기 위한 추가적인 고유한 설계 도전 과제들을 제시할 수 있다.
따라서, NVMe 및 NVMe-oF 프로토콜들을 지원할 수 있고 다른 이더넷 속도들로 동작할 수 있는 스토리지 장치가 바람직하다.
이러한 배경 기술에서 상술된 정보는 단순히 본 발명의 배경의 이해의 강화를 위한 것이므로, 종래 기술을 구성하지 않는 정보를 포함할 수 있다.
본 발명은 멀티-모드 및/또는 멀티-속도 NVMe-oF (Non-volatile memory Express over Fabrics) 장치들을 지원하는 장치 및 방법을 제공한다.
본 발명의 실시예들의 양상들은, 인쇄 회로 기판(PCB), 적어도 하나의 SSD 커넥터를 경유하여 PCB의 제1 면에 연결되는 적어도 하나의 솔리드 스테이트 드라이브(SSD), PCB의 제2 면에서 PCB에 실장되는 적어도 하나의 필드 프로그래머블 게이트 어레이(FPGA), 및 PCB의 제3 면에서 PCB에 부착되는 적어도 하나의 커넥터를 포함하는 장치를 나타내며, 이러한 장치는 적어도 하나의 커넥터를 경유하여 수신되는 제1 입력에 기초하여, 복수의 동작 속도들에서 제1 속도로 동작하도록 구성된다.
일례로, 적어도 하나의 SSD는 제1 SSD 및 제2 SSD를 포함하고, 적어도 하나의 SSD 커넥터는 제1 SSD 커넥터 및 제2 SSD 커넥터를 포함하고, 제1 SSD는 제1 SSD 커넥터를 경유하여 PCB의 제1 면에서 PCB에 연결되고, 제2 SSD는 제2 SSD 커넥터를 경유하여 PCB의 제1 면에서 PCB에 연결되고, 제1 SSD 및 제2 SSD 각각은 새로운 폼 팩터 1(NF1) SSD이고, 적어도 하나의 커넥터는 U.2 커넥터이고, 제1 SSD 커넥터 및 제2 SSD 커넥터 각각은 M.2 커넥터이다.
일례로, 적어도 하나의 SSD 커넥터는 적어도 하나의 SSD의 제1 면에서 적어도 하나의 SSD에 부착 및 전기적으로 연결되고, 적어도 하나의 SSD 커넥터는 PCB의 제1 면에서 PCB에 부착되고, 적어도 하나의 SSD 커넥터는 PCB의 제1 면에 수직이다.
일례로, 장치는 PCB의 제2 면 및 적어도 하나의 SSD의 제2 면 사이에 배치되는 구조적 지지대를 더 포함하되, 구조적 지지대는 플라스틱 지지대 또는 스탠드오프이다. 일례로, 적어도 하나의 SSD의 길이는 110mm이고, PCB의 길이는 110mm 및 142.2mm 사이이다. 일례로, 적어도 하나의 FPGA의 제1 면은 PCB의 제2 면에 부착되고, 적어도 하나의 FPGA는 PCB에 전기적으로 연결된다.
일례로, 장치는 적어도 하나의 SSD의 제3 면에 부착되는 제1 인터페이스 레이어, 및 적어도 하나의 FPGA의 제2 면에 부착되는 제2 인터페이스 레이어를 더 포함하되, 제1 인터페이스 레이어 및 제2 인터페이스 레이어는 적어도 하나의 SSD 및 적어도 하나의 FPGA의 동작 동안 적어도 하나의 SSD 및 적어도 하나의 FPGA에 의하여 생성되는 열을 전달하는데 사용된다.
일례로, 적어도 하나의 커넥터는 SFF-TA-1008 커넥터이다. 일례로, PCB의 길이는 적어도 하나의 SSD의 길이 이상이다. 일례로, PCB의 길이는 적어도 하나의 FPGA의 길이 이상이고, 적어도 하나의 FPGA의 길이는 80mm이다. 일례로, 적어도 하나의 SSD는 복수의 동작 속도들에서 제2 속도로 동작하며, 장치의 복수의 동작 속도들은 10G 이상의 2개 이상의 속도들이다. 일례로, 제1 입력은 적어도 하나의 커넥터를 경유하여 미드-플레인으로부터 수신되며, 제1 입력은 FPGA 내부의 하나 이상의 내부 레지스터들 또는 마더보드의 로컬 중앙 처리 유닛(CPU) 또는 스위치의 베이스보드 관리 컨트롤러(BMC)에 의하여 제어되는 2개의 범용 입출력(GPIO) 핀들을 사용함으로써, 제어된다.
일례로, 시스템은, 제1 인터페이스 레이어, 적어도 하나의 SSD의 제1 면에서 제1 인터페이스 레이어에 부착되는 적어도 하나의 솔리드 스테이트 드라이브(SSD), 적어도 하나의 SSD 커넥터를 경유하여 PCB의 제1 면에서 적어도 하나의 SSD에 연결되는 인쇄 회로 기판(PCB), PCB의 제2 면에서 PCB에 실장되되 FPGA의 제1 면이 PCB에 부착되는 적어도 하나의 필드 프로그래머블 게이트 어레이(FPGA), FPGA의 제2 면에서 FPGA에 부착되는 제2 인터페이스 레이어, 및 PCB의 제3 면에서 PCB에 부착되는 적어도 하나의 커넥터를 포함하되, 시스템은 적어도 하나의 커넥터를 경유하여 수신되는 제1 입력에 기초하여, 복수의 동작 속도들에서 제1 속도로 동작하도록 구성된다.
일례로, 적어도 하나의 커넥터는 U.2 커넥터 또는 SFF-TA-1008 커넥터이고, 적어도 하나의 SSD 커넥터는 M.2 커넥터이고, 적어도 하나의 SSD 커넥터는 PCB의 제1 면에 수직이다.
일례로, 시스템은 PCB의 제2 면 및 적어도 하나의 SSD의 제2 면 사이에 배치되는 구조적 지지대를 더 포함하되, 구조적 지지대는 플라스틱 지지대 또는 스탠드오프이다. 일례로, 적어도 하나의 SSD의 길이는 110mm이고, PCB의 길이는 110mm 및 142.2mm 사이이고, 적어도 하나의 FPGA의 길이는 80mm이다. 일례로, PCB의 길이는 적어도 하나의 SSD의 길이 이상이고, PCB의 길이는 적어도 하나의 FPGA의 길이 이상이다.
일례로, 방법은, 적어도 하나의 솔리드 스테이트 드라이브(SSD)의 제1 면에 제1 인터페이스 레이어를 부착하는 단계, 적어도 하나의 SSD 커넥터를 경유하여 인쇄 회로 기판(PCB)의 제1 면에 적어도 하나의 SSD를 연결하는 단계, PCB의 제2 면에 적어도 하나의 필드 프로그래머블 게이트 어레이(FPGA)를 실장하되, 적어도 하나의 FPGA의 제1 면이 PCB에 부착되는 단계, 적어도 하나의 FPGA의 제2 면에 제2 인터페이스 레이어를 부착하는 단계, 및 PCB의 제3 면에 적어도 하나의 커넥터를 부착하는 단계를 포함하되, 적어도 하나의 SSD는 적어도 하나의 커넥터를 경유하여 수신되는 제1 입력에 기초하여, 복수의 동작 속도들에서 제1 속도로 동작하도록 구성된다.
일례로, PCB의 제2 면 및 적어도 하나의 SSD의 제2 면 사이에 구조적 지지대를 포함시키는 단계를 더 포함하되, 구조적 지지대는 플라스틱 지지대 또는 스탠드오프이고, 적어도 하나의 SSD 커넥터는 PCB의 제1 면에 수직이다. 일례로, PCB의 길이는 적어도 하나의 SSD의 길이 이상이고, PCB의 길이는 적어도 하나의 FPGA의 길이 이상이다.
본 발명은 다양한 동작 모드 및/또는 다양한 속도를 제공하는 NVMe-oF 장치들을 지원하는 장치 및 방법을 제공할 수 있다.
도 1은 본 발명의 일부 예시적인 실시예들에 따른 NVMe-oF 장치의 평면도를 도시한다.
도 2는 본 발명의 일부 예시적인 실시예들에 따른 NVMe-oF 장치의 단면도를 도시한다.
도 3a는 본 발명의 일부 예시적인 실시예들에 NVMe-oF 장치의 구성을 도시한다.
도 3b는 본 발명의 일부 예시적인 실시예들에 따른 예시적인 SSD의 블록도를 도시한다.
도 4는 본 발명의 일부 예시적인 실시예들에 따른 미드-플레인 또는 복합 프로그래머블 논리 장치(complex programmable logic device (CPLD))를 도시한다.
도 5는 본 발명의 일부 예시적인 실시예들에 따른 예시적인 멀티-모드 NVMe-oF 장치의 구성에 따른 U.2 커넥터의 예시적인 사용을 도시하는 예시적인 도표를 도시한다.
도 6a 및 도 6b는 본 발명의 일부 예시적인 실시예들에 따른 non-HA (non-high availability)로 동작하는 예시적인 NVMe-oF 장치의 블록도를 도시한다.
도 6c 및 도 6d는 본 발명의 일부 예시적인 실시예들에 따른 HA (high-availability)로 동작하는 예시적인 NVMe-oF 장치의 블록도를 도시한다.
도 7a는 본 발명의 일부 예시적인 실시예들에 따른 하나 이상의 SSD들에 연결된 예시적인 필드 프로그래머블 게이트 어레이(field programmable gate array (FPGA)) 장치의 블록도를 도시한다.
도 7b는 본 발명의 일부 예시적인 실시예들에 따른 하나 이상의 SSD들에 연결된 예시적인 FPGA 장치의 블록도를 도시한다.
도 8은 본 발명의 일부 예시적인 실시예들에 따른 예시적인 스위치의 블록도를 도시한다.
도 9는 본 발명의 일부 예시적인 실시예들에 따른 스토리지 장치의 동작 방법에 대한 순서도를 도시한다.
도 10a 및 도 10b는 본 발명의 일부 예시적인 실시예들에 따른 어셈블리의 평면도 및 배면도를 각각 도시한다.
도 2는 본 발명의 일부 예시적인 실시예들에 따른 NVMe-oF 장치의 단면도를 도시한다.
도 3a는 본 발명의 일부 예시적인 실시예들에 NVMe-oF 장치의 구성을 도시한다.
도 3b는 본 발명의 일부 예시적인 실시예들에 따른 예시적인 SSD의 블록도를 도시한다.
도 4는 본 발명의 일부 예시적인 실시예들에 따른 미드-플레인 또는 복합 프로그래머블 논리 장치(complex programmable logic device (CPLD))를 도시한다.
도 5는 본 발명의 일부 예시적인 실시예들에 따른 예시적인 멀티-모드 NVMe-oF 장치의 구성에 따른 U.2 커넥터의 예시적인 사용을 도시하는 예시적인 도표를 도시한다.
도 6a 및 도 6b는 본 발명의 일부 예시적인 실시예들에 따른 non-HA (non-high availability)로 동작하는 예시적인 NVMe-oF 장치의 블록도를 도시한다.
도 6c 및 도 6d는 본 발명의 일부 예시적인 실시예들에 따른 HA (high-availability)로 동작하는 예시적인 NVMe-oF 장치의 블록도를 도시한다.
도 7a는 본 발명의 일부 예시적인 실시예들에 따른 하나 이상의 SSD들에 연결된 예시적인 필드 프로그래머블 게이트 어레이(field programmable gate array (FPGA)) 장치의 블록도를 도시한다.
도 7b는 본 발명의 일부 예시적인 실시예들에 따른 하나 이상의 SSD들에 연결된 예시적인 FPGA 장치의 블록도를 도시한다.
도 8은 본 발명의 일부 예시적인 실시예들에 따른 예시적인 스위치의 블록도를 도시한다.
도 9는 본 발명의 일부 예시적인 실시예들에 따른 스토리지 장치의 동작 방법에 대한 순서도를 도시한다.
도 10a 및 도 10b는 본 발명의 일부 예시적인 실시예들에 따른 어셈블리의 평면도 및 배면도를 각각 도시한다.
첨부된 도면들과 관련하여 아래에서 진술되는 상세한 설명은, 본 발명에 따라 제공되는 멀티-모드 및/또는 멀티-속도 NVMe-oF 장치를 지원하기 위한 시스템 및 방법의 일부 예시적인 실시예들에 대한 설명으로 의도되고, 본 발명이 구성되거나 이용될 수 있는 유일한 형식들을 나타내는 것으로 의도되지 않는다. 상세한 설명은 도시된 실시예들과 관련하여 본 발명의 특징들을 진술한다. 그러나, 동일하거나 동등한 기능들 및 구조들은, 또한 본 발명의 범위 내에 포함되는 것으로 의도되는 다른 실시예들에 의하여 달성될 수 있음이 이해될 것이다. 여기에서 달리 표시되지 않는 한, 같은 도면 부호들은 같은 구성들 또는 특징들을 지시하는 것으로 의도된다.
NVMe는 PCIe 버스를 통하여 불휘발성 메모리 서브 시스템 (예를 들어, SSD)과 통신하는 호스트 소프트웨어를 위한 레지스터-레벨 인터페이스를 정의하는 표준이다. NVMe는 호스트와 주변 타겟 스토리지 장치 또는 시스템 사이의 데이터를 전달 및 연결하기 위한 SCSI(Small Computer System Interface) 표준에 대한 대안이다. PCIe-커넥티드 NVMe SSD들은 어플리케이션들이 스토리지와 직접 통신하도록 허용한다.
NVMe의 물리적인 연결은 PCIe 버스에 기초한다. 전형적인 이더넷 SSD(eSSD)는 PCIe 버스를 통하여 미드-플레인(mid-plane)을 경유하여 시스템과 인터페이스 하도록 표준 SSD (예를 들어, U.2) 커넥터를 갖는다. U.2 (SFF-8639)는 SSD들을 컴퓨터에 연결하기 위한 컴퓨터 인터페이스이다. U.2 커넥터는 2개의 SATA(Serial Advanced Technology Attachment) 또는 SAS(Serial Attached SCSI) 포트들을 지원할 수 있고, PCIe SSD들에 병렬 I/O의 4개의 레인(lane)들(X4)까지 지원할 수 있다. 만약 사용되지 않는다면, 2개의 PCIe 레인들 1 및 2는 필요하다면 추가적인 SAS 포트들로 선택적으로 사용될 수 있다. U.2 커넥터는, NVMe용으로 표준화되고 PCIe 3.0 X4를 지원하여 전형적인 SATA SSD의 5배 속도를 제공한다.
NVMe-oF는 PCIe와 다른 다양한 패브릭(fabric)들 (또는 인터커넥트들)을 통한 동작을 가능케하는 NVMe 표준의 확장이다. 여기에서, 용어 “패브릭”은, 네트워크 노드들이 다양한 인터커넥트 프로토콜들, 포트들, 및 스위치들을 통하여 서로 데이터를 통과시킬 수 있는 네트워크 토폴로지를 나타낸다. 예를 들어, 이더넷-부착(Ethernet-attached) SSD들은 패브릭에 직접 부착될 수 있고, 이 경우 패브릭은 이더넷이다.
NVMe-oF는 PCIe로 상호적인 이동들의 사용을 가능케 하여, NVMe 호스트 장치와 NVMe 스토리지 드라이브 또는 서브 시스템이 연결할 수 있는 거리들을 확장할 수 있다. 그러므로, NVMe-oF는 불휘발성 메모리 익스프레스(nonvolatile memory express) 메시지-기반의 커맨드들이 이더넷, FC(Fibre Channel) 또는 InfiniBand와 같은 네트워크를 통하여 호스트 컴퓨터와 타겟 솔리드-스테이트 스토리지 장치 (예를 들어, eSSD 또는 NVMe-oF 장치) 또는 시스템 사이에서 직접 데이터를 전달할 수 있게 설계된 기술 사양이다. NVMe-oF 표준을 지원하도록 구성되는 경우, 시스템은 이더넷뿐만 아니라, Fibre Channel, InfiniBand, 및 다른 네트워크 패브릭들을 포함하는 다양한 패브릭들을 지원할 수 있다. 예를 들어, eSSD는 패브릭에 직접 부착될 수 있고, 이 경우 패브릭은 이더넷이다. eSSD는 NVMe-oF 프로토콜들을 지원할 수 있는 SSD를 나타낼 수 있다. 설명의 편의상, 아래의 예시들 및 실시예들은 이더넷-부착 NVMe-oF 장치들을 보여줄 수 있다. 그러나, 임의의 다른 타입의 NVMe-oF 장치들이 본 발명의 범위를 벗어나지 않고 사용될 수 있음이 주목된다.
상술한 바와 같이, NVMe의 물리적인 연결은 PCIe 버스에 기초한다. 최근, PCIe 4.0의 출현으로, 대역폭 불일치가 PCIe 3.0보다 높을 수 있다. 단일(single) 25G 이더넷은 SSD로부터 (8GB/s까지의) X4 PCIe 4.0에 의한 백엔드를 맞추기 위한 충분한 대역폭을 갖지 않는다. 50G 또는 100G 이더넷은 SSD로부터 X4 PCIe 4.0을 위한 더 나은 일치를 제공한다. 그러므로, 본 발명의 실시예들은 NVMe 및 NVMe-oF 프로토콜들 모두를 지원할 수 있는 스토리지 장치 (예를 들어, eSSD)를 포함할 수 있고, NVMe-oF 모드의 경우에, 스토리지 장치는 그들의 하드웨어의 어떠한 변경 없이, 10G에서 100G 이상까지의 다른 이더넷 속도로 동작할 수 있다.
하나의 구성에서, 100G 이상의 장치 (예를 들어, NVMe-oF 장치) 속도를 지원하기 위하여, 본 발명의 예시적인 실시예들은 단일한 FPGA(field programmable gate array)와 함께 패키징되는 2개의 스몰 폼 팩터 (2.5인치 하드 드라이브 폼-팩터) SSD들을 가질 수 있다. 단일한 FPGA는 동일한 FPGA 비용을 유지하면서 성능을 증가시키도록 다수의 SSD들을 지원할 수 있다. 추가적으로, 적어도 하나의 FPGA 및 복수의 SSD들을 갖는 본 발명의 NVMe-oF 장치의 예시적인 실시예들은 기존 및/또는 새로운 SSD 폼 팩터들 (예를 들어, 스몰 폼 팩터(SFF) 또는 표준 PCIe 카드 폼 팩터, 예를 들어, FH-FL(full-height, full length) 카드 아웃라인, 또는 FH-HL(full-height, half length) 아웃라인)에 들어맞을 수 있다. 본 발명의 NVMe-oF 장치의 예시적인 실시예들의 성능 및 용량은 또한 더 많은 유사한 장치들 및/또는 섀시를 추가함으로써 선형적으로 조정할 수 있다.
나아가, 본 발명의 실시예들은 임의의 플랫폼 시스템을 가능케 하여, 다른 공급자들에서 다른 타입의 NVMe-oF를 지원할 수 있다. 스위치 보드, 미드-플레인, 및 이더넷 SSD들과 같은 공용 빌딩 블록(common building block)을 사용함으로써, 생태계 제공자(eco-system provider)들은 기존의 시스템들보다 빠르게 시장에 진입할 수 있고 다양한 소비자들을 만족하도록 다양한 가격/성능의 제품들을 제공할 수 있다. 일부 예시적인 실시예들은 나아가 PM1725a 또는 PM1735와 같은 표준 U.2를 갖는 NVMe-oF 장치들 및 NF1 SSD들과 같은 새로이 부상하는 장치를 지원할 수 있는 공용 시스템 플랫폼을 가능케 할 수 있다. 하나의 구성에서, NF1 SSD들은 또한 NGSFF 또는 M.3 기반의 SSD들로 불릴 수 있다.
본 시스템의 다른 실시예들은 NVMe 및 NVMe-oF 장치들 모두를 지원할 수 있는 공용 빌딩 블록들 및 단일 플랫폼을 제공할 수 있고, NVMe-oF 모드의 경우에, 시스템은 그들의 하드웨어의 어떠한 변경 없이, 10G 이상의 다른 이더넷 속도들로 동작할 수 있다. NVMe 및 NVMe-oF 장치들 모두를 지원할 수 있는 공용 빌딩 블록들은 스위치 보드, 미드-플레인, 및 eSSD들을 포함할 수 있다. 본 시스템은 또한 PM1725a, PM1735 또는 M.3 또는 NGSFF 기반의 SSD들과 같은 표준 SSD 커넥터를 갖는 NVMe-oF 장치들을 지원할 수 있는 공용 시스템 플랫폼을 제공할 수 있다. 본 시스템의 다른 구성들은 또한 50G 및 100G 이상의 속도의 이더넷 및 PCIe 4.0과 같은 기술 발전과 호환될 수 있다. 특히, 본 발명의 다른 구성들은 NVMe 및 NVMe-oF 장치들 모두를 지원할 수 있는 시스템, 및 다양한 타입의 패브릭-부착 SSD들 (예를 들어, eSSD들)을 제공한다. 나아가, 본 발명의 다른 구성들은, 섀시 및 장치 (예를 들어, eSSD)가 장치에 대하여 조화되는 방식에 관한 개시물을 제공하여, 이것이 배치되는 곳, 그리고 데이터 셋의 특정 장소에 그의 배치 결과로 채택되어야 하는 특성이 무엇인지 이해하게 할 수 있다.
여기에서 개시되는 패브릭-부착 SSD (eSSD)는 NVMe 및 NVMe-oF 표준들과 호환되는 다수의 시스템들에 사용될 수 있는 단일한 공용 장치이다. 이더넷 SSD들은 U.2와 같은 표준 SSD 커넥터들을 사용하여 미드-플레인을 경유하여 호스트 장치와 인터페이스할 수 있다. U.2 커넥터들은 25Gbps (100G-KR4) 이더넷을 지원할 수 있다. 여기에서 개시된 eSSD는 NVMe 및 NVMe-oF 표준들과 호환되는 다수의 시스템들에 사용될 수 있는 장치일 수 있다. 이와 같이, 패브릭-부착 SSD (eSSD)는 또한 멀티-모드 NVMe-oF 장치로 지칭될 수 있다. 멀티-모드 NVMe-oF 장치는 알려진 위치 (예를 들어, 마더보드 또는 미드-플레인으로부터 직접 구동될 수 있는 U.2의 섀시 타입 핀 E6)로부터 제품 정보를 검출함으로써 NVMe 또는 NVMe-oF 표준을 지원할 수 있다. 예를 들어, U.2 커넥터 상의 정의된 신호 (예를 들어, 모드 신호)는 NVMe 또는 NVMe-oF 모드로 동작할지 여부를 드라이브에 보여줄 수 있다. NVMe 섀시에 존재한다면, U.2 커넥터의 PCIe X4 레인은 eSSD 컨트롤러의 PCIe 엔진에 의하여 구동될 것이다. 이 경우, 장치는 패브릭 부착된 포트들 (예를 들어, 이더넷 포트들, Fibre Channel 포트들, 또는 Infini Band 포트들)을 디스에이블 할 수 있고, 모든 NVMe 프로토콜들 및 기능들은 지원 또는 인에이블될 수 있다. NVMe-oF 섀시에 존재한다면, 패브릭 부착된 포트들은, 사용되지 않고 이용 가능한 SAS 핀들만 사용함으로써, 인에이블될 수 있다.
도 1은 NVMe-oF 장치(100)의 평면도를 도시한다. 도 1의 NVMe-oF 장치(100)는 적어도 하나의 SSD(102), FPGA PCB(printed circuit board) (104), M.2와 같은 적어도 2개의 표준 SSD 커넥터들(106, 108), 및 적어도 하나의 U.2 커넥터(110)를 포함한다. 적어도 2개의 M.2 커넥터들(106, 108)은 하나 이상의 SSD들 (예를 들어, 102)을 FPGA PCB(104)에 연결하기 위한 수직 또는 90도 커넥터들일 수 있다. 수직 M.2 커넥터들(106, 108)은 FPGA PCB(104)의 제1 면 (예를 들어, 도 1의 상면) (112)에 대하여 수직이다. 적어도 하나의 SSD(102)는 새로운 폼 팩터 1(NF1) SSD일 수 있다. 적어도 하나의 SSD(102)는 수직 M.2 커넥터(106)를 경유하여 FPGA PCB(104)의 제1 면(112)에서 FPGA PCB(104)에 연결될 수 있다. 하나의 구성에서, 적어도 하나의 SSD(102)의 길이는 110mm일 수 있고, FPGA PCB(104)의 길이는 110 및 142.2mm 사이일 수 있다. 그렇지 않으면, NVMe-oF 장치(100)는 표준 섀시에 삽입되지 않을 수 있다. 일례로, M.2 표준은 12mm, 16mm, 22mm, 및 30mm의 모듈 또는 섀시 폭들, 및 16mm, 26mm, 30mm, 38mm, 42 mm, 60 mm, 80 mm, 및 110 mm의 모듈 또는 섀시 길이들을 허용한다. 일례로, FPGA PCB(104)의 길이는 적어도 하나의 SSD(102)의 길이 이상일 수 있다.
일례로, 추가적인 SSD는 또한 수직 M.2 커넥터(108)를 경유하여 FPGA PCB(104)의 제1 면(112)에서 연결될 수 있다. 하나의 구성에서, NVMe-oF 장치(100)는, U.2 커넥터(110)를 경유하여, 복수의 SAS 포트들 (예를 들어, SAS0 및 SAS1)을 지원할 수 있고, 4개의 PCIe X4 레인들까지 지원할 수 있다. 2개의 SAS 포트들(SAS0 및 SAS1)은 NVMe-oF 장치(100)에 의하여 이더넷 포트들로 사용될 수 있다. NVMe-oF 장치(100)는 하드웨어의 어떠한 변경 없이, 10G에서 100G 이상까지의 다른 이더넷 속도로 동작할 수 있다. 일례로, SFF-TA-1008 커넥터는 U.2 커넥터(110) 대신에 사용되어, SFF-TA-1002 커넥터를 경유하여 미드-플레인과 NVMe-oF 장치(100)를 연결하여, 미드-플레인에 연결될 수 있다.
일례로, (예를 들어, 도 2에 도시된) FPGA는 적어도 하나의 SSD(102)가 수직 M.2 커넥터(106)를 경유하여 연결되는 FPGA PCB(104)의 제1 면(112)과 마주하는 제2 면에서 FPGA PCB(104)에 연결될 수 있다. 하나의 구성에서, NVMe-oF 장치가 케이스에 배치되는 경우, 하나 이상의 TIM(thermal interface material) 레이어들이 케이스 및 NVMe-oF 장치(100) 사이에 배치될 수 있다. 일례로, FPGA PCB(104)의 길이는 적어도 하나의 SSD(102) 및 FPGA의 길이 이상일 수 있다. 하나의 구성에서, FPGA의 길이는 80mm일 수 있다.
일례로, NF1 SSD(102)에서의 컨트롤러 ASIC 및/또는 슈퍼 캡들과 같은 파워 손실 보호 구성이 NF1 SSD(102)로부터 FPGA PCB(104)로 옮겨져, NF1 SSD(102)의 스토리지 용량을 확장하도록 추가적인 NAND 플래시 패키지들을 위한 NF1 SSD(102)의 이용 가능한 추가적인 공간을 만들 수 있다.
도 2는 금속 케이스(202)에서 NVMe-oF 장치(200)의 단면도를 도시한다. NVMe-oF 장치(200)는 도 1의 NVMe-oF 장치(100)일 수 있다. NVMe-oF 장치(200)는 금속 케이스(202), 제1 TIM 레이어(240), 적어도 하나의 NF1 SSD(204), 적어도 하나의 수직 M.2 커넥터(210), 플라스틱 또는 금속 지지대 또는 스탠드오프(212), FPGA PCB(216), FPGA(222), 제2 TIM 레이어(236), 및 U.2 커넥터(214)와 같은 표준 SSD 커넥터를 포함한다.
도 2의 예시적인 실시예에서, 제1 TIM 레이어(240)의 제1 면(246)은 금속 또는 열전도 케이스(202)의 제1 면(242)에 부착 (또는 열 접촉)된다. 제1 TIM 레이어(240)의 제2 면(248)은 NF1 SSD(204)의 제1 면(224)에 부착 (또는 열 접촉)된다. NF1 SSD(204)는 수직 M.2 커넥터(210)를 경유하여 FPGA PCB(216)에 연결되며, 수직 M.2 커넥터(210)는 NF1 SSD(204)의 제2 면(206)에서 NF1 SSD(204)에 부착되고 전기적으로 연결된다. 수직 M.2 커넥터(210)는 FPGA PCB(216)에 실장된다. 일례로, 수직 M.2 커넥터(210) 및 FPGA PCB(216)는 에어 갭에 의하여 분리된다. 하나의 구성에서, NF1 SSD(204)의 길이는 표준 길이 (예를 들어, 110mm)일 수 있고, FPGA PCB(216)의 길이는 110mm보다 길 수 있다. 일례로, FPGA PCB(216)의 길이는 NF1 SSD(204)의 길이 이상일 수 있다.
일례로, NF1 SSD(204)에 구조적 지지대를 제공하는 플라스틱 (또는 다른 적합한 절연재) 지지대 또는 스탠드오프(212)는 FPGA PCB(216)의 제3 면(230) 및 NF1 SSD(204)의 제3 면(226) 사이에 배치될 수 있다. 플라스틱 지지대 또는 스탠드오프(212)는 FPGA PCB(216)의 제4 면(220) 및 NF1 SSD(204)의 제4 면(208)에 인접하게 배치될 수 있다.
일례로, U.2 커넥터(214)는 FPGA PCB(216)에 전기적으로 연결되고 실장된다. 하나의 구성에서, NVMe-oF 장치(200)는, U.2 커넥터(214)를 경유하여, 복수의 SAS 포트들 (예를 들어, SAS0 및 SAS1)을 지원할 수 있고, PCIe X4 버스의 4개의 PCIe X4 레인들까지 지원할 수 있다. 2개의 SAS 포트들(SAS0 및 SAS1)은 NVMe-oF 장치에 의하여 사용되지 않고, NVMe-oF 장치(200)에 의하여 이더넷 포트들로 사용될 수 있다. NVMe-oF 장치(200)는 하드웨어의 어떠한 변경 없이, 10G에서 100G 이상까지의 다른 이더넷 속도로 동작할 수 있다.
도 2의 NVMe-oF 장치(200)에서, FPGA PCB(216)의 제3 면(230)은 FPGA(222)의 제1 면(232)에 부착된다. 일례로, FPGA(222)는 FPGA PCB(216)의 제3 면(230)에 실장될 수 있고, FPGA PCB(216)에 전기적으로 연결될 수 있다. FPGA(222)의 제2 면(234)는 제2 TIM 레이어(236)의 제1 면(250)에서 제2 TIM 레이어(236)에 부착 (또는 열 접촉)된다. 제2 TIM 레이어(236)의 제2 면(252)은 금속 케이스(202)의 제2 면(244)에 부착 (또는 열 접촉)된다. 제1 TIM 레이어(240) 및 제2 TIM 레이어(236)는 NF1 SSD(204) 및 FPGA(222)의 정상 동작 동안, NF1 SSD(204)와 같은 전자 장치들 및 FPGA(222)에 의하여 발생되는 열을 확산 및 소멸시키는데 사용되어, 생성된 열을 케이스(202)를 경유하여 NVMe-oF 장치(200) 외부로 전달함으로써, NVMe-oF 장치(200)의 과열을 방지할 수 있다. 일례로, 제2 TIM 레이어(236)의 길이는 FPGA(222)의 길이 이상일 수 있다. 추가적인 TIM들이 (도 3a에 도시된 바와 같이) DDR4 메모리와 같은 다른 전자 장치들을 위하여 요구될 수 있다.
도 3a는 NVMe-oF 장치(300)의 구성을 도시한다. NVMe-oF 장치(300)는 도 1의 NVMe-oF 장치(100) 또는 도 2의 NVMe-oF 장치(200)일 수 있다. 도 3a의 NVMe-oF 장치(300)는 FPGA(302), 제1 NF1 SSD(314), 제2 NF1 SSD(316), 2개의 DDR4(double data rate fourth-generation) 메모리들(332, 324), 및 4개의 커패시터들(326, 328, 330, 및 332)을 포함한다. NVMe-oF 장치(300)는 또한 U.2 커넥터(312)에 연결되고, U.2 커넥터(312)를 경유하여, NVMe-oF 장치(300)는 2개의 SAS 포트들(SAS0 및 SAS1)을 지원할 수 있고, PCIe X4 버스의 4개의 PCIe X4 레인들까지 지원할 수 있다. 2개의 SAS 포트들(SAS0 및 SAS1)은 NVMe-oF 장치(300)에 의하여 이더넷 포트들로 사용될 수 있다. NVMe-oF 장치(300)는 하드웨어의 어떠한 변경 없이, 10G에서 100G 이상까지의 다른 이더넷 속도로 동작할 수 있다.
도 3b는 일 실시예에 따른, 예시적인 NF1 SSD(334)의 블록도를 도시한다. NF1 SSD(334)는 도 3a의 SSD(314) 또는 SSD(316)일 수 있다. NF1 SSD(334)의 새로운 폼 팩터 1(NF1)은 NAND 플래시 장치들의 다수의 행들 또는 채널들을 수용할 수 있고, 따라서 모듈형 SSD들의 용량들을 최대화할 수 있다. NF1 SSD(334)는 PCIe X4 버스(336)을 경유하여 FPGA에 연결될 수 있다. FPGA는 도 3a의 FPGA(302)일 수 있고, PCIe X4 버스(336)는 도 3a의 PCIe X4 버스들(318 또는 320) 중 하나일 수 있다. NF1 SSD(334)는 또한, FPGA (예를 들어, 도 3a의 FPGA(302))에 연결하기 위하여 사용되는 M.2 커넥터의 사용되지 않거나 남겨진(reserved) (예를 들어, 고속의) 핀들을 사용하여 적어도 하나의 선택적 이더넷 포트(338) (Ethernet port A 및/또는 Ethernet port B)를 수용할 수 있다. 적어도 하나의 이더넷 포트(338)는 NF1 SSD(334)가 NVMe-oF 모드로 동작하는 경우에 사용될 수 있다.
일부 실시예들에서, NF1 SSD(334)는 2.5인치 하드 드라이브 폼 팩터 (또는 스몰 폼 팩터(SFF)) 표준에 따를 수 있으나 확장된 길이를 가질 수 있다. 다른 실시예들에서, NF1 SSD(334)는 표준 PCIe 카드 폼 팩터, 예를 들어 FH-FL(full-height, full length) 카드 아웃라인, 또는 FH-HL(full-height, half length) 아웃라인에 따를 수 있다. NF1 SSD(334)는 또한 컨트롤러, 버퍼 메모리, 및 플래시 메모리를 포함할 수 있다. 컨트롤러는, 예를 들어 버퍼 메모리 또는 컨트롤러의 (또는 컨트롤러로부터 분리된) ROM(read-only memory)에 저장된 소프트웨어, NVMe 커맨드들, 및/또는 펌웨어를 실행할 수 있다. 도 3b에서, eSSD ASIC(340)는 FTL(Flash Translation Layer) 및 플래시 컨트롤러들을 포함하는 강화된 SSD 컨트롤러이다. 일례로, eSSD ASIC(340)는 NF1 SSD(334)의 파워 손실 보호 구성 요소로 사용될 수 있다.
도 3a로 다시 돌아가서, NVMe-oF 장치(300)는 NVNe 모드 또는 NVMe-oF 모드로 동작하도록 구성될 수 있다. NVMe-oF 모드에서, NVMe-oF 장치(300)는 2개의 PCIe 레인들(PCIe 1 및 PCIe 2)을 이더넷 포트(306, Ethernet port B) 및 이더넷 포트(310, Ethernet port D)로 구성할 수 있다. NVMe-oF 장치(300)는 2개의 SAS 포트들(SAS0 및 SAS1)을 이더넷 포트(304, Ethernet port A) 및 이더넷 포트(308, Ethernet port C)로 더 구성할 수 있다. 제1 25G 이더넷 포트(304)는 U.2 커넥터(312)의 핀들 S2, S3, S5, 및 S6에 연결될 수 있고, 제2 25G 이더넷 포트(306)는 U.2 커넥터(312)의 핀들 S17, S18, S20, 및 S21에 연결될 수 있고, 제3 25G 이더넷 포트(308)는 U.2 커넥터(312)의 핀들 S9, S10, S12, 및 S13에 연결될 수 있고, 제4 25G 이더넷 포트(310)는 U.2 커넥터(312)의 핀들 S23, S24, S26, 및 S27에 연결될 수 있다. NVMe-oF 모드의 경우에, NVMe-oF 장치(300)는 10G에서 100G 이상까지의 다른 이더넷 속도로 동작할 수 있다.
도 3a에서, NVMe-oF 장치(300)가 NVMe-oF 모드로 구성되는 경우에, FPGA(302)는 4개의 25Gbps 이더넷 포트들(304, 306, 308, 310) 및 2개의 NF1 SSD들(314, 316) 사이의 인터페이스를 제공할 수 있다. 4개의 25G 이더넷 포트들(304, 306, 308, 310)은 NVMe-oF 장치(300)의 동작 모드에 의존하는 미드-플레인을 통하여 마더보드에 연결될 수 있다. 하나의 구성에서, 마더보드는 하나 이상의 스위치 소자들, 하나 이상의 메모리 소자들, 하나 이상의 I/O 소자들 등을 포함할 수 있다. FPGA(302)는 제1 PCIe X4 버스(318)를 경유하여 제1 NF1 SSD(314)와 인터페이스할 수 있고, FPGA(302)는 제2 PCIe X4 버스(320)를 경유하여 제2 NF1 SSD(316)와 인터페이스할 수 있다. 제1 PCIe X4 버스(318) 및 제2 PCIe X4 버스(320)는 그들 각각의 M.2/M.3 커넥터들을 통하여 제1 NF1 SSD(314) 및 제2 NF1 SSD(316)에 연결될 수 있다. 이 경우, SSD들(314 및 316)에 부착된 M.2 커넥터들의 사용되지 않거나 남겨진(reserved) (예를 들어, 고속의) 핀들은 이더넷 연결을 위하여 사용될 수 있다. 이러한 모드에서, FPGA(302)는 NVMe-oF 타겟으로 기능할 수 있다. eSSD ASIC/FPGA(302) 상에 구현되는 NVMe-oF 타겟은 타겟 장치의 마더보드 상의 X86-기반의 CPU(central processing unit)의 필요성을 배제하는 모든 네트워크 및 스토리지 프로토콜 처리를 제공한다. NVMe-oF 기반의 시스템의 경우, 마더보드 상의 X86-기반의 CPU는 타겟 장치 자체가 데이터를 이동시킬 수 있기 때문에 이니시에이터(initiator) (예를 들어, 호스트 소프트웨어) 및 타겟 장치 (즉, NVMe-oF 장치) 사이의 데이터를 이동하는데 더 이상 필요로 하지 않는다.
하나의 구성에서, 멀티-모드 NVMe-oF 장치(300)가 NVMe-oF 모드인 경우에, NVMe-oF 장치(300)는 제1 (port A) 및 제2 (port B) 이더넷 포트들을 위한 제어 플레인을 위하여 2개의 X1 PCIe 레인들(PCIe 0 및 PCIe 3)을 가질 수 있다. 이러한 구성들은 추가적인 25G 이더넷 포트들(Ethernet port B 및 D)에 2개의 PCIe 레인들(PCIe 1 및 PCIe 2)이 사용될 수 있게 한다. 일부 구성들에서, NVMe-oF 장치(300)가 NVMe-oF 모드에서 10G (단일 포트 또는 듀얼 포트) 또는 25G (단일 포트 또는 듀얼 포트) 속도로 동작하는 경우, SAS 포트 0은 이더넷 포트 A (제1 포트)에 사용되고, SAS 포트 1은 사용되지 않는다. PCIe 레인들 0 및 3은 제1 (포트 A) 및 제2 (포트 B) 이더넷 부착된 NVMe-oF 컨트롤러들을 위한 제어 플레인으로 사용되고, PCIe 레인 1은 이더넷 포트 B (제2 포트)에 사용되고, PCIe 레인 2는 사용되지 않는다. 일부 다른 구성들에서, NVMe-oF 장치(300)가 NVMe-oF 모드로 50G (단일 포트 또는 듀얼 포트) 또는 100G (단일 포트만) 속도로 동작하는 경우, SAS 포트 0은 이더넷 포트 A (제1 포트)에 사용되고, SAS 포트 1은 이더넷 포트 C (제3 포트)로 사용된다. PCIe 레인들 0 및 3은 제1 (포트 A) 및 제2 (포트 B) 이더넷 부착된 NVMe-oF 컨트롤러들을 위한 제어 플레인으로 사용되고, PCIe 레인 1은 이더넷 포트 B (제2 포트)에 사용되고, PCIe 레인 2는 이더넷 포트 D (제4 포트)에 사용된다. NVMe-oF 장치(300)가 NVMe-oF 모드에서 100G 속도로 동작하는 경우, 듀얼 포트가 100G 속도에서 지원되지 않기 때문에, PCIe 레인 3은 사용되지 않는다.
하나의 구성에서, NVMe-oF 장치(300)는 NVMe 모드로 구성될 수 있다. NVMe 모드에서, NVMe-oF 장치(300)는 (단일 포트 모드에서) 4개의 PCIe X4 레인들 모두를 사용하여, PCIe X4 버스를 통하여 PCIe 신호들을 운반할 수 있다. PCIe X4 버스는 미드-플레인에 연결되고, PCIe 버스는 데이터 및 제어 플레인들로 사용된다. 일 측면에서, 주어진 시간에, NVMe-oF 장치(300)의 제1 NF1 SSD(314) 및 제2 NF1 SSD(316)는 모두 NVMe 모드 또는 NVMe-oF 모드로 동작할 수 있다. 다른 측면에서, 주어진 시간에, 제1 NF1 SSD(314)는 NVMe 모드로 동작할 수 있고, 제2 NF1 SSD(316)는 NVMe-oF 모드로 동작할 수 있다. 또 다른 측면에서, 주어진 시간에, 제1 NF1 SSD(314)는 NVMe-oF 모드로 동작할 수 있고, 제2 NF1 SSD(316)는 NVMe 모드로 동작할 수 있다.
NVMe-oF 장치(300)의 동작 모드는 물리적인 핀 (예를 들어, U.2 커넥터(312)의 핀 E6은 섀시에 사용될 수 있는 프로토콜 (NVMe 또는 NVMe-oF)을 나타내는 섀시 타입 핀으로 사용될 수 있다.)을 사용하거나, 마더보드의 BMC(baseboard management controller)로부터의 대역 내 커맨드에 의하여, 자체-구성되거나 외부적으로 설정될 수 있다. 이더넷을 통하여 검색된 관리 용이성 정보는 “대역 내” 정보로 지칭되며, 반면 PCIe 버스를 통하여 검색된 관리 용이성 정보는 “대역 외” 정보로 지칭된다. NVMe-oF 장치로 구성되는 경우, 멀티-모드 NVMe-oF 장치(300) (섀시 타입 핀 E6=하이(high))는 단일 포트 NVMe-oF 모드 또는 듀얼 포트 NVMe-oF 모드로 구성될 수 있다. 단일 포트 NVMe-oF 모드에서, U.2 커넥터(312)의 핀 E25는 하이 (어설트되지 않거나 활성화되지 않음)일 수 있고, 듀얼 포트 NVMe-oF 모드에서, U.2 커넥터(312)의 핀 E25는 어설트 로우(asserted low)되거나 활성화될 수 있다.
하나의 구성에서, 도 4에 도시된 바와 같이, NVMe-oF 장치(300)의 다른 동작 속도들은, Reset#(407) 신호가 어설트되는 동안, 미드-플레인 상에 배치되는 2개의 추가적인 GPIO(general-purpose input/output) (ESpeed [1:0]) 핀들(402)을 사용함으로써, 또는 또는 CPLD(404)에 의하여 성취될 수 있으며, 이는 마더보드의 BMC나 로컬 CPU, 또는 미드-플레인 상의 외부 핀들에 의하여 제어될 수 있다. MUX의 출력은 U.2 커넥터(312)의 핀들 E23 및 E24에 연결된다. 전자의 선택에서, ESpeed 핀들(402)은 CPLD(404) 내부의 U.2 I2C 핀들과 멀티플렉싱되고, 리셋(407)이 어설트된 (하이에서 로우로) 후에 래치될 수 있다. 하나의 구성에서, MUX로의 입력은 마더보드의 로컬 CPU 또는 BMC 또는 CPLD(404)에 의하여 구동된다. 그러나, 일부 구성들에서, MUX의 위치는 CPLD(404) 내부에 있다. MUX들의 개수는 지원되는 NVMe-oF 장치들의 최대 개수 또는 섀시의 슬롯들의 최대 개수와 동일하다. 이러한 방식으로 각각의 장치는 개별적으로, 독립적으로 리셋될 수 있고, 다른 이더넷 속도로 동작할 수 있다. 이러한 접근법은 핫-플러그(hot-pluggable) 이벤트들 (핫 추가(hot add) 및 핫 제거(hot removal))을 지원할 수 있다. 모든 장치들을 공유하는 하나의 MUX가 존재한다면, 새로운 장치가 핫 삽입될 때, 이는 리셋 사이클로 인하여 섀시의 기존 장치들에 영향을 줄 수 있으며, 바람직하지 않을 수 있다.
이 경우, CPLD(404)는 마더보드의 로컬 CPU 또는 BMC에 의하여 제어되고, 로컬 CPU 또는 BMC로부터의 제어 신호는 CPLD(404)에 CPLD/BMC GPIO 핀들(406)에서 수신될 수 있다. 아래의 표 1은 NVMe-oF 장치(300)의 다른 동작 속도 동안 ESpeed 핀들의 상태를 도시한다.
이더넷 속도 | ESpeed 핀 1 | ESpeed 핀 0 |
10G | 하이 | 하이 |
25G | 하이 | 로우 |
50G | 로우 | 하이 |
100G | 로우 | 로우 |
나아가, 이더넷 속도는 파워 온 리셋 또는 PCIe 리셋 동안 SMBus(408)를 사용하여 선택된다. 하나의 구성에서, 멀티플렉서는 파워 온 또는 리셋 신호(407)에 의하여 선택되고, 리셋(407)이 활성화 로우인 경우, 멀티플렉서는 외부 레지스터 칩을 경유하여 FPGA(302)로 Espeed (0:1) (402)를 선택할 수 있고, 리셋(407)이 하이인 경우, 멀티플렉서는 스위치 보드 상의 BMC에 각각의 슬롯의 SMBus(408)을 연결할 수 있다. 일례로, 리셋 동안, FPGA(302)는 완전하게 기능하지 않을 수 있다. FPGA(302)가 비트-파일들 (이미지들)을 완전히 다운로드 하기 위하여 수 분이 걸릴 수 있다. 비트-파일들의 다운로드 동안, FPGA(302)는 등록된 버퍼 칩으로부터의 이더넷 속도 입력 핀들에 기초하여, 적합한 이더넷 관련 비트-파일들을 선택할 수 있다.
하나의 구성에서, 멀티-모드 NVMe-oF 장치(300)는 NVMe 모드에서, 또는 NVMe-oF 모드에서, 단일 포트 또는 듀얼 포트로 구성될 수 있다.
도 5는 멀티-모드 NVMe-oF 장치(300)의 구성에 따른 U.2 커넥터(312)의 예시적인 사용을 도시한다. NVMe 장치 (섀시 타입 핀 E6=로우(low))로 구성된 경우에, 멀티-모드 NVMe-oF 장치(300)는 U.2 커넥터(312)의 듀얼 포트 EN# 핀 E25에 의존하여, 단일 포트 NVMe 모드 또는 듀얼 포트 NVMe 모드로 구성될 수 있다. 단일 포트 NVMe 모드에서, U.2 커넥터(312)의 듀얼 포트 EN# 핀 E25는 어설트 하이 (활성화되지 않음)일 수 있다. 단일 포트 NVMe 모드에서, U.2 커넥터(312)의 PCIe 레인들 0-3은 4개의 레인들이 하나로 사용될 수 있다. 듀얼 포트 NVMe 모드에서, U.2 커넥터(312)의 듀얼 포트 EN# 핀 E25는 어설트 로우 (활성화됨)일 수 있다. 듀얼 포트 NVMe 모드에서, PCIe 레인들 0-3은 2개의 레인들씩 2개로 나뉘어질 수 있으며, PCIe 레인들 0 및 1은 제1 포트 (포트 A)에 사용되고, PCIe 레인들 2 및 3은 제2 포트 (포트 B)에 사용된다.
일부 구성들에서, 제품 정보가 (예를 들어, EEPROM 또는 CPLD를 경유하여) 섀시에 저장된다면, U.2 커넥터(312) 상의 PCIe 버스의 (듀얼 포트 모드에서) 2개의 레인들씩 2개의 선택 또는 (단일 포트 모드에서) 4개의 레인들의 하나로의 선택은 EEPROM에 의하여 구동될 수 있다. NVMe 모드로 동작하는 경우, 멀티-모드 NVMe-oF 장치(300)는 이더넷 엔진을 디스에이블할 수 있고, NVMe 프로토콜들 및 기능들은 지원 또는 인에이블될 수 있다. NVMe-oF 장치로 동작하는 경우, 제품 정보는 선택된 이더넷 속도 및 듀얼 포트 기능에 대하여 적합한 SAS 및 PCIe 포트를 구성하는데 사용된다.
일부 구성들에서, 자체-구성에 사용되는 제품 정보는 VPD(vital product data)의 일부로 섀시에 저장된다. 시작 동안, 멀티-모드 NVMe-oF 장치(300)는 섀시로부터 VPD 정보를 검색할 수 있고, VPD에 기초하여 자체 구성할 수 있다. 일부 구성들에서, 멀티-모드 NVMe-oF 장치(300)는 본 발명의 범위를 벗어나지 않고, 다양한 방식들로 구성될 수 있다. 예를 들어, 멀티-모드 NVMe-oF 장치(300)는 멀티-모드 NVMe-oF 장치(300)가 연결되는 마더보드의 BMC에 의하여 발행된 PCIe 버스를 통한 제어 커맨드에 의하여 구성될 수 있다. 본 시스템은 최소의 하드웨어 변경으로 non-HA(non-high availability) 모드 (즉, 단일-경로 입/출력(I/O)) 또는 HA 모드 (즉, 멀티-경로 I/O)에서, 다양한 타입의 NVMe 및 NVMe-oF 장치들을 지원할 수 있는 플랫폼을 제공한다.
나아가, 멀티-모드 NVMe-oF 장치(300)를 동작시키는 방법에 관한 세부 설명들은 2018년 6월 13일에 출원되고, “SYSTEM AND METHOD FOR SUPPORTING MULTI-MODE AND/OR MULTI-SPEED NON-VOLATILE MEMORY (NVM) EXPRESS (NVME) OVER FABRICS (NVME-OF) DEVICES”로 명명된 미국 특허 출원 No. 16/007,949에서 발견될 수 있고, 이의 완전한 내용은 이에 의하여 명확하게 포함된다.
도 6a 및 도 6b는 일 실시예에 따른, non-HA 모드에서 동작하는 예시적인 NVMe-oF 장치(600)의 블록도를 도시한다. NVMe-oF 장치(600)는 도 1의 NVMe-oF 장치(100) 또는 도 2의 NVMe-oF 장치(200) 또는 도 3의 NVMe-oF 장치(300)일 수 있다. 이러한 예시에서, NVMe-oF 장치(600)는 하드웨어의 어떠한 변경 없이, 단일-경로 I/O들을 지원할 수 있고, 10G 및 25G의 다른 이더넷 속도들로 동작할 수 있다. NVMe-oF 장치(600)는 FPGA(602), 제1 NF1 SSD(614), 제2 NF1 SSD(616), 및 2개의 DDR4 메모리들(622 및 624)을 포함할 수 있다. FPGA(602)는 제1 PCIe X4 버스(618)를 경유하여 제1 NF1 SSD(614)와 인터페이스할 수 있고, FPGA(602)는 제2 PCIe X4 버스(620)를 경유하여 제2 NF1 SSD(616)과 인터페이스할 수 있다. NVMe-oF 장치(600)는 또한 U.2 커넥터(612)에 연결되고, NVMe-oF 장치(600)는 U.2 커넥터(612)를 경유하여 2개의 SAS 포트들(SAS0 및 SAS1)을 지원할 수 있고, PCIe X4 버스의 4개의 PCIe X4 레인들까지 지원할 수 있다. 2개의 SAS 포트들(SAS0 및 SAS1)은 이더넷 포트들로 사용될 수 있다. NVMe-oF 장치(600)는 이더넷 포트들(606 및 610) (Ethernet port B 및 Ethernet port D)로 2개의 PCIe 레인들(PCIe 1 및 PCIe 2)를 구성할 수 있다. NVMe-oF 장치(600)는 이더넷 포트들(604 및 608) (Ethernet port A 및 Ethernet port C)로 2개의 SAS 포트들(SAS0 및 SAS1)을 더 구성할 수 있다. 제1 25G 이더넷 포트(604)는 U.2 커넥터(612)의 핀들 S2, S3, S5, 및 S6에 연결될 수 있고, 제2 25G 이더넷 포트(606)는 U.2 커넥터(612)의 핀들 S17, S18, S20, 및 S21에 연결될 수 있고, 제3 25G 이더넷 포트(608)는 U.2 커넥터(612)의 핀들 S9, S10, S12, 및 S13에 연결될 수 있고, 제4 25G 이더넷 포트(610)는 U.2 커넥터(612)의 핀들 S23, S24, S26, 및 S27에 연결될 수 있다.
하나의 구성에서, 이더넷 포트들(604, 606, 608, 및 610)은, 모든 이더넷 포트들(604, 606, 608, 및 610) 및 SMBus, 리셋, 클럭 등과 같은 다른 고속이 아닌 제어 신호들을 총괄적으로 전달할 수 있는 몇 개의 고속 몰렉스(Molex) 커넥터들(628)을 경유하여 미드-플레인(626)을 통하여 마더보드(601)에 연결될 수 있다. 마더보드(601)는 로컬 CPU(634), BMC(632), 이더넷 스위치 컨트롤러(636), PCIe 스위치(638), 및 2개의 DDR4 메모리들(640 및 642)를 포함할 수 있다. 일부 구성들에서, 마더보드(601)는 미드-플레인(626)을 통하여, 다양한 신호들을 NVMe-oF 장치(600)로 밀어낼 수 있고, 이더넷 포트들(604, 606, 608, 및 610)을 통하여 NVMe-oF 장치(600)에 다양한 서비스들을 수행할 수 있다. 예를 들어, 마더보드(601)는 이더넷 포트들(604, 606, 608, 및 610)을 통하여 NVMe-oF 장치(600)로부터 장치-특정 정보를 수신할 수 있으며, 장치-특정 정보는 NVMe-oF 장치(600)의 센서 정보, FRU(field-replaceable unit) 정보, 및 건강 상태 정보를 포함하지만 이에 제한되지 않는다. 마더보드(601)는 또한 이더넷 포트들(604, 606, 608, 및 610)을 통하여 다양한 서비스들을 수행할 수 있으며, 다양한 서비스들은 BMC (예를 들어, BMC(632)) 또는 로컬 호스트 CPU (예를 들어, CPU(634))에 대한 검색 서비스들 및 펌웨어 업그레이드를 수행하기 위하여 새로운 eSSD 펌웨어에 대한 다운로드 서비스들을 포함하지만, 이에 제한되지 않는다.
도 6c 및 도 6d는 일 실시예에 따른, HA 모드에서 동작하는 예시적인 NVMe-oF 장치(600)의 블록도를 도시한다. 이러한 예시에서, NVMe-oF 장치(600)는 하드웨어의 어떠한 변경 없이, 멀티-경로 I/O들을 지원할 수 있고, 10G 및 25G의 다른 이더넷 속도들로 동작할 수 있다. HA 모드에서, NVMe-oF 장치(600)는 2개의 마더보드들(601 및 603)에 연결되어, 미드-플레인(626)을 경유하여 (HA 모드의) 듀얼 포트 구성에서의 멀티 I/O를 지원할 수 있다. 시스템 구성에 의존하여, 신호 완전성은 공용 미드-플레인(626)이 구성들 모두에 대하여 지원할 수 있음을 보장하도록 테스트될 것을 필요로 할 수 있다. 신호 완전성이 충분하지 않다면, 시스템은 HA 모드를 위한 제1 미드-플레인 및 non-HA 모드를 위한 제2 미드-플레인을 포함하는 2가지 버전의 미드-플레인들을 가질 수 있다. U.2 커넥터(612)의 E25 핀은 듀얼 포트 구성을 가능케 하는데 사용될 수 있다. NVMe-oF 장치(600)는 물리적인 핀 (예를 들어, 마더보드(601 또는 603)의 섀시 상에 공급 업체의 정의된 핀(Pin E6))을 사용하거나, 마더보드(601 또는 603 미도시)의 BMC(632 또는 644)로부터 대역 내 커맨드에 의하여, 동작 모드를 자체-구성할 수 있다.
하나의 구성에서, HA 모드로 동작하는 경우에, NVMe-oF 장치(600)의 이더넷 포트(604) (Ethernet port A) 및 이더넷 포트(606) (Ethernet port B)는, 이더넷 포트들(604 및 606) 및 SMBus, 리셋, 클럭 등과 같은 다른 고속이 아닌 제어 신호들을 총괄적으로 전달할 수 있는 몇 개의 고속 몰렉스(Molex) 커넥터들(628)을 경유하여 미드-플레인(626)을 통하여 마더보드(601)에 연결될 수 있다. 또한, HA 모드에서, NVMe-oF 장치(600)의 이더넷 포트(608) (Ethernet port C) 및 이더넷 포트(610) (Ethernet port D)는, 이더넷 포트들(608 및 610) 및 SMBus, 리셋, 클럭 등과 같은 다른 고속이 아닌 제어 신호들을 총괄적으로 전달할 수 있는 몇 개의 고속 몰렉스(Molex) 커넥터들(656)을 경유하여 미드-플레인(626)을 통하여 마더보드(603)에 연결될 수 있다. 제2 마더보드(603)는 로컬 CPU(646), BMC(644), 이더넷 스위치 컨트롤러(648), PCIe 스위치(650), 및 2개의 DDR4 메모리들(652 및 654)을 포함할 수 있다.
멀티-모드 NVMe-oF 장치(600)가 NVMe 모드 및 NVMe-oF 모드 모두로 동작할 수 있으므로, 장치들을 효율적으로 사용하고 개발하기 위한 비용이 감소될 수 있는데, 이는 동일한 장치들이 NVMe 모드 및 NVMe-oF 모드로 사용될 수 있기 때문이다. 유사한 이유로, 멀티-모드 NVMe-oF 장치(600)는 더 빠른 출시 속도를 가질 수 있다. 멀티-모드 NVMe-oF 장치는 다양한 제품들 및 섀시에 사용될 수 있다. PCIe 버스의 2개의 레인들은 제어 플레인을 통한 표준 특성들을 위하여 남겨진(reserved)다. 로컬 CPU, BMC, 및 다른 장치들은 PCIe 버스의 2개의 레인들을 제어 플레인으로 사용하여, 추가적인 비용 없이 섀시 내부의 NVMe-oF 장치 각각과 통신할 수 있다. NVMe 미드-플레인은 변경 없이 사용될 수 있고, 미드-플레인(626) 상에 배치된 추가적인 GPIO 핀들 (예를 들어, 도 4의 ESpeed [1:0] (402))로 인하여 NVMe-oF 장치(600)에 새로운 커넥터를 필요로 하지 않는다. 나아가, 임의의 플랫폼 시스템이 다른 공급자들로의 다른 타입의 NVMe-oF 장치를 지원하는 것이 바람직하다. 스위치 보드, 미드-플레인, 및 이더넷 SSD들과 같은 공용 빌딩 블록들을 사용함으로써, 본 발명의 다른 실시예들은 기존의 생태계 제공자(eco-system provider)들이 더 빠르게 시장에 진입하고 다양한 다양한 소비자들을 만족하도록 다양한 가격/성능의 제품들을 제공하게 할 수 있다. 또한 PM1725a 또는 PM1735와 같은 표준 U.2를 갖는 NVMe-oF 장치들 및 M.3 또는 NGSFF 기반의 SSD들과 같은 새로이 부상하는 장치를 지원할 수 있는 공용 시스템 플랫폼을 갖는 것이 바람직하다.
도 7a는 일 실시예에 따른, 2개의 NF1 SSD들(718A, 718B)에 연결되는 예시적인 FPGA 장치(700)를 도시한 블록도이다. FPGA 장치(700)는 FPGA(701)를 포함한다. FPGA(701)는 U.2 커넥터(706)와 복수의 플래시 드라이브들 (예를 들어, 703A 및 703B) 사이의 인터페이스를 제공할 수 있다. FPGA(701)는 M.2 커넥터(709A)를 통하여 PCIe X4 버스(716A)에 연결되는 포트(707)를 경유하여 NF1 SSD(718A)와 인터페이스할 수 있다. FPGA(701) M.2 커넥터(709B)를 통하여 PCIe X4 버스(716B)에 연결되는 포트(708)를 경유하여 NF1 SSD(718B)와 인터페이스할 수 있다. 하나의 구성에서, M.2 커넥터들(709A 및 709B)은 NF1 SSD들(718A 및 718B)을 FPGA 장치(700)에 비스듬히 연결하는 수직 또는 90도 커넥터들일 수 있다. FPGA(701)는 또한 복수의 DDR4 메모리들 (예를 들어, 702A 내지 702J)에 연결될 수 있다. FPGA(701)는 또한 플래시 드라이브들 (703A, 703B) 및 클럭 회로(714)에 연결된다.
U.2 커넥터(706)는 2개의 멀티플렉서들(710 및 712)을 통하고 2개의 PCIe X4 버스들(704 및 705)을 경유하여, FPGA(701)에 연결될 수 있다. PCIe X4 버스(704)는 멀티플렉서(710)를 통하고 U.2 커넥터(706)를 경유하여 미드-플레인을 거쳐 마더보드로 신호 또는 패킷들을 전송하는데 사용될 수 있고, PCIe X4 버스(705)는 멀티플렉서(712)를 통하고 U.2 커넥터(706)를 경유하여 미드-플레인을 거쳐 마더보드로부터 패킷들을 수신하는데 사용될 수 있다. 일부 구성들에서, FPGA(701)에 연결되는 복수의 플래시 드라이브들, 예를 들어 NF1 SSD들(718A, 718B)의 다른 동작 속도들은 FPGA(701) 내부의 하나 이상의 내부 레지스터들에 의하여 제어될 수 있는 미드-플레인 또는 CPLD (예를 들어, 도 4의 404) 상에 배치되는 2개의 추가적인 GPIO (Espeed [1:0]) 핀들 (예를 들어, 도 4의 핀들(402))을 사용함으로써, 성취될 수 있다. 표 1은 FPGA(701)에 연결되는 플래시 드라이브들(703A 및 703B)의 다른 동작 속도들 동안의 ESpeed 핀들의 상태를 도시한다.
도 7b는 도 7a의 FPGA 장치(700)의 물리적인 구성을 도시한다. 도 7b에서, FPGA 장치(700)는 제1 수직 M.2 커넥터(709A)를 경유하여 제1 NF1 SSD(718A)에 연결되고, 제2 수직 M.2 커넥터(709B)를 경유하여 제2 NF1 SSD(718B)에 연결된다. 도 7b의 어셈블리 (FPGA 장치(700) 및 NF1 SSD들(718A 및 718B))의 평면도는, NF1 SSD들(718A 및 718B)이 FPGA 장치(700)의 상부에 배치되는 것으로 나타날 수 있다. 하나의 구성에서, 도 7b의 어셈블리 (FPGA 장치(700) 및 NF1 SSD들(718A 및 718B))는 도 1의 NVMe-oF 장치(100) 또는 도 2의 NVMe-oF 장치(200)일 수 있고, U.2 커넥터(706)를 경유하여, 복수의 SAS 포트들(SAS0 및 SAS1)을 지원할 수 있고, PCIe X4 버스의 4개의 PCIe X4 레인들까지 지원할 수 있다. 2개의 SAS 포트들(SAS0 및 SAS1)은 도 7b의 어셈블리 (FPGA 장치(700) 및 NF1 SSD들(718A 및 718B))에 의하여 이더넷 포트들로 사용될 수 있다. 도 7b의 어셈블리 (FPGA 장치(700) 및 NF1 SSD들(718A 및 718B))는 하드웨어의 어떠한 변경들 없이, 10G에서 100G 이상까지의 다른 이더넷 속도들로 동작할 수 있다.
일례로, FPGA(701)는 제1 NF1 SSD(718A)가 제1 수직 M.2 커넥터(709A)를 경유하여 연결되고 제2 NF1 SSD(718B)가 제2 수직 M.2 커넥터(709B)를 경유하여 연결되는 FPGA PCB(720)의 면과 마주하는 제2 면(미도시)에서 FPGA PCB(720)에 연결될 수 있다.
도 8은 일 실시예에 따른 2개의 마더보드들을 포함하는 예시적인 스위치를 도시하는 블록도이다. 스위치(800)는 미드-플레인(861)을 경유하여 (HA 모드의) 듀얼 포트 구성에서의 멀티 I/O를 지원하도록 2개의 마더보드들(801A 및 801B)을 포함한다. 마더보드(801A)는 이더넷 스위치(804A) 및 PCIe 스위치(805A)를 포함하고, 마더보드(801B)는 이더넷 스위치(804B) 및 PCIe 스위치(805B)를 포함한다. 마더보드들(801A 및 801B) 각각은, 도 6a에 도시된 예시적인 마더보드(601)에 도시된 바와 같이, 다른 구성 요소들 및 모듈들, 예를 들어, 로컬 CPU(806A, 806B), BMC(807A, 807B), 등을 포함할 수 있다.
몇 개의 eSSD들은 스위치(800)의 장치 포트들에 플러그 접속될 수 있다. 예를 들어, eSSD들 각각은 U.2 커넥터를 사용하여 스위치(800)에 연결된다. 각각의 eSSD는 마더보드(801A) 및 마더보드(801B) 모두에 연결될 수 있다. 현재 예시에서, 스위치(800)에 플러그 접속된 eSSD들은 PCIe 버스 및 이더넷 포트들을 경유하여 미드-플레인(861)을 통하여 스위치(800)로의 연결을 요구하는 NVMe-oF 장치로 구성된다.
도 9는 본 발명의 실시예에 따른 스토리지 장치의 동작 방법에 대한 순서도이다. 스토리지 장치는 도 6b의 NVMe-oF 장치(600)일 수 있다.
901 단계에서, 스토리지 장치는 제1 입력을 수신한다. 스토리지 장치는 미드-플레인을 통하여 복수의 장치 포트들을 경유하여 마더보드 또는 BMC로부터 제1 입력을 수신할 수 있다. 예를 들어, NVMe-oF 장치(600)는 도 6a 및 도 6b의 미드-플레인(626)을 통하여 장치 포트들(604 내지 606)을 경유하여 마더보드(601) 또는 BMC(632)로부터 제1 입력을 수신할 수 있다.
하나의 구성에서, 제1 입력은 마더보드의 섀시 상의 물리적인 핀을 사용하거나 BMC로부터의 대역 내 커맨드에 의하여 제어될 수 있다. 예를 들어, NVMe-oF 장치(600)에서 수신된 제1 입력은 도 6a의 마더 보드(601)의 섀시 상의 물리적인 핀(E6)을 사용함으로써 제어될 수 있다.
902 단계에서, 제1 입력에 기초하여, 스토리지 장치는 제1 동작 모드로 동작할지 제2 동작 모드로 동작할지 판단한다. 하나의 구성에서, 스토리지 장치의 제1 동작 모드 및 제2 동작 모드는 NVMe 모드 및 NVMe-oF 모드일 수 있다. 예를 들어, 제1 입력에 기초하여, NVMe-oF 장치(600)는 NVMe 모드로 동작할지 NVMe-oF 모드로 동작할지 판단한다.
902 단계에서, 제1 입력에 기초하여, 스토리지 장치가 제1 동작 모드로 동작하기로 결정한다면, 903 단계에서, 스토리지 장치는 제1 동작 모드에 따라 스토리지 동작들을 수행한다. 예를 들어, 제1 입력에 기초하여, NVMe-oF 장치(600)가 NVMe 모드로 동작하기로 결정한다면, NVMe-oF 장치(600)는 NVMe 프로토콜에 따라 스토리지 동작들을 수행한다.
그러나, 902 단계에서, 제1 입력에 기초하여, 스토리지 장치가 제2 동작 모드로 동작하기로 결정한다면, 904 단계에서, 스토리지 장치는 제2 동작 모드에 따라 스토리지 동작들을 수행한다. 예를 들어, 제1 입력에 기초하여, NVMe-oF 장치(600)가 NVMe-oF 모드로 동작하기로 결정한다면, NVMe-oF 장치(600)는 NVMe-oF 프로토콜에 따라 스토리지 동작들을 수행한다.
905 단계에서, 제2 동작 모드로 동작하는 경우, 스토리지 장치는 제2 입력을 수신한다. 스토리지 장치는 복수의 장치 포트들을 경유하여 미드-플레인으로부터 제2 입력을 수신할 수 있다. 예를 들어, NVMe-oF 모드로 동작하는 동안, NVMe-oF 장치(600)는 도 6b의 복수의 장치 포트들(604 내지 606)을 경유하여 미드-플레인(626)으로부터 제2 입력을 수신할 수 있다.
하나의 구성에서, 제2 입력은 미드-플레인 상에 배치된 2개의 GPIO 핀들을 사용함으로써 제어되고, 마더보드의 BMC 또는 로컬 CPU, 또는 스토리지 장치의 FPGA 내부의 하나 이상의 내부 레지스터들에 의하여 제어된다. 예를 들어, 제2 입력은 도 6a 및 도 6b의 NVMe-oF 장치(600)의 FPGA(602) 내부의 하나 이상의 내부 레지스터들, 또는 마더보드(601)의 BMC(634) 또는 로컬 CPU(634)에 의하여 제어되는 미드-플레인(626) 상에 배치된 2개의 GPIO 핀들 (예를 들어, 도 4의 (Espeed [1:0]) 핀들(402))을 사용함으로써, 제어될 수 있다.
906 단계에서, 제2 입력에 기초하여, 스토리지 장치는 스토리지 장치에 대한 복수의 동작 속도들로부터 동작 속도를 선택한다. 예를 들어, 제2 입력에 기초하여, 도 6b의 NVMe-oF 장치(600)는 스토리지 장치에 대한 복수의 동작 속도들로부터 동작 속도를 선택한다. 예를 들어, NVMe-oF 모드로 동작하는 동안, 제2 입력에 기초하여, 도 6b의 NVMe-oF 장치(600)는 100G 이상의 동작 속도를 선택한다. 하나의 구성에서, 스토리지 장치의 복수의 동작 속도들은 10G 및 100G 이상 사이에서 임의의 개수의 속도들일 수 있다.
907 단계에서, 제2 동작 모드로 동작하는 동안, 스토리지 장치는 선택된 동작 속도로 동작한다. 예를 들어, NVMe-oF 모드로 동작하는 동안, 도 6b의 NVMe-oF 장치(600)는 100G 이상의 동작 속도로 동작한다.
도 10a 및 도 10b는 어셈블리(1000)의 평면도 및 배면도를 각각 도시한다. 어셈블리는 표준 드라이브 트레이(1004)에서의 SFF SSD(1002)를 포함한다. 일례로, 어셈블리(1000)의 길이는 7''정도일 수 있다. 일례로, SFF SSD(1002)는 5.75'' 또는 146mm일 수 있고, 2.5 인치 SFF 표준 섀시는 5.75'' 길이까지의 장치를 위한 공간을 제공하므로, SFF SSD(1002)는 2.5인치 SFF 표준 섀시에 들어맞을 수 있다.
일례로, SFF SSD(1002)는 도 1의 NF1 SSD(102)일 수 있다. SFF SSD(1002)가 실장될 수 있는 PCB (예를 들어, FPGA PCB(104))의 길이는 110mm 및 142.2mm 사이에 있을 수 있다. 이러한 길이는, SFF SSD(1002)가 실장될 수 있는 PCB가 (U.2 커넥터(110)를 대신하여) SFF-TA-1008 커넥터를 지원할 수 있게 하여, 미드-플레인에 연결될 수 있는 SFF-TA-1002 커넥터를 경유하여 미드-플레인과 SFF SSD(1002)를 연결할 수 있다.
“제1”, “제2”, “제3”, 등의 용어들이 다양한 성분들, 구성 요소들, 영역들, 레이어들, 및/또는 섹션들을 설명하도록 여기에서 사용될 수 있으나, 이러한 성분들, 구성 요소들, 영역들, 레이어들, 및/또는 섹션들은 이러한 용어들에 제한되지 않아야 함이 이해될 것이다. 이러한 용어들은 단순히, 하나의 성분, 구성 요소, 영역, 레이어, 또는 섹션을 다른 성분, 구성 요소, 영역, 레이어, 또는 섹션과 구별하도록 사용된다. 따라서, 여기에서 설명되는 제1 성분, 구성 요소, 영역, 레이어, 또는 섹션은 본 발명의 사상 및 범위를 벗어나지 않고, 제2 성분, 구성 요소, 영역, 레이어, 또는 섹션으로 지칭될 수 있다.
“아래에”, “밑에”, “더 낮은”, “하에”, “위에”, “상에” 등과 같이, 공간적으로 상대적인 용어들은, 도면들에 도시되는 바와 같이, 하나의 성분 또는 특징들의 다른 성분(들) 또는 특징(들)에 대한 연관관계를 설명하도록, 설명의 편의상 여기에서 사용될 수 있다. 이러한 공간적으로 상대적인 용어들은, 도면들에 도시된 방향에 덧붙여, 사용 또는 동작 시의 장치의 다른 방향들을 포함하도록 의도되는 것으로 이해될 것이다. 예를 들어, 도면들의 장치가 뒤집힌다면, 다른 성분들 또는 특징들 “아래에” 또는 “밑에” 또는 “하에”로 설명되는 성분들은 다른 성분들 또는 특징들 “위에”로 향할 것이다. 따라서, “아래에” 및 “하에”의 예시적인 용어들은 위와 아래 방향 모두를 포함할 수 있다. 장치는 달리 향하여질 수 있고 (예를 들어, 90도 또는 다른 방향으로 회전), 여기에서 사용되는 공간적으로 상대적인 서술들은 이에 따라 해석되어야 한다. 덧붙여서, 레이어가 두 개의 레이어들 “사이에” 있는 것으로 나타날 때, 이는 단지 두 개의 레이어들 사이에 레이어가 있을 수 있다거나, 하나 이상의 끼워진 레이어들이 또한 존재할 수 있다는 것이 이해될 것이다.
여기에서 사용되는 용어들은 단순히 특정 실시예들을 설명하는 목적을 위한 것이고, 본 발명을 제한하는 것으로 의도되지 않는다. 여기에서 사용되는 “실질적으로”, “대략” 용어들 및 유사한 용어들은 정도에 대한 용어가 아닌, 근사에 대한 용어들로 사용되는 것이고, 당업자에 의하여 인식되는 측정되거나 계산된 값들의 내재된 편차를 설명하는 것으로 의도된다.
여기에서 사용되는 단수 형식들 “a” 및 “an”은, 문맥이 달리 명확하게 지칭하지 않는 한, 복수 형식들을 또한 포함하는 것으로 의도된다. “포함하다” 및/또는 “포함하는” 용어들은, 상세한 설명에 사용될 때, 진술된 특징들, 정수들, 단계들, 동작들, 성분들, 및/또는 구성 요소들의 존재를 구체화하나, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 성분들, 구성 요소들, 및/또는 이의 그룹들의 존재 또는 추가를 제외하는 것은 아님이 더 이해될 것이다. 여기에서 사용되는 “및/또는” 용어는 하나 이상의 연관된 열거 물품들의 임의의 모든 조합들을 포함한다. “적어도 하나”와 같은 표현들은, 성분들의 명단에 선행할 때, 성분들의 완전한 명단을 수정하나, 명단에 대한 개개의 성분들을 수정하지 않는다. 나아가, “할 수 있다”의 사용은, 본 발명의 실시예들을 설명할 때, “본 발명의 하나 이상의 실시예들”을 나타낸다. 또한, “예시적인” 용어는 예시 또는 도시를 나타내는 것으로 의도된다. 여기에서 사용되는 “사용하다”, “사용하는”, 및 “사용되는” 용어들은 각각 “이용하다”, “이용하는”, “이용되는” 용어들과 동의어로 고려될 수 있다.
성분 또는 레이어가 다른 성분 또는 레이어 “상에”, “에 연결되는”, “에 결합되는”, “에 인접한” 것으로 나타날 때, 이는 직접적으로 다른 성분 또는 레이어 “상에”, “에 연결되는”, “에 결합되는”, “에 인접한” 것이거나, 하나 이상의 끼워진 성분들 또는 레이어들이 존재할 수 있다. 반면에, 성분 또는 레이어가 다른 성분 또는 레이어 “상에 직접”, “에 직접 연결되는”, “에 직접 결합되는”, “에 직접 인접한”것으로 나타날 때, 끼워진 성분들 또는 레이어들이 존재하지 않는다.
여기에서 열거되는 수치적인 범위는 열거된 범위 이내에 포함되는 동일한 수치적인 정도의 모든 서브-범위들을 포함하는 것으로 의도된다. 예를 들어, “1.0에서 10.0”의 범위는 열거된 최소값 1.0과 열거된 최대값 10.0 사이의 (및 포함하는) 모든 서브-범위들을 포함하는 것으로 의도된다. 즉, 예를 들어, 2.4에서 7.6과 같이, 최소값은 1.0 이상을 갖고, 최대값은 10.0 이하를 갖는다. 여기에서 열거되는 임의의 최대 수치 제한은 그 안에 포함되는 모든 더 낮은 수치 제한들을 포함하는 것으로 의도되고, 열거되는 최소 수치 제한은 그 안에 포함되는 모든 더 높은 수치 제한들을 포함하는 것으로 의도된다.
멀티-모드 및/또는 멀티-속도 불휘발성 메모리 (NVM) 익스프레스 (NVMe) 오버 패브릭스 (NVMe-oF) 장치의 예시적인 실시예들이 여기에서 구체적으로 설명 및 도시되나, 많은 수정들 및 변형들이 통상의 기술자에 명백할 것이다. 따라서, 본 발명의 원리들에 따라 해석되는 멀티-모드 및/또는 멀티-속도 NVMe-oF 장치들을 지원하는 시스템 및 방법은 여기에서 구체적으로 설명되는 바와 달리 실시될 수 있다. 본 발명은 또한 이하의 청구항들 및 이의 균등물들에서 정의된다.
100, 200, 300, 600: NVMe-oF 장치
102: SSD
104, 216: FPGA PCB
106, 108, 210, 709A, 709B: 수직 M.2 커넥터
110, 214, 312, 612, 706: U.2 커넥터
204, 314, 316, 334, 614, 616, 718A, 718B: NF1 SSD
222, 302, 602, 701: FPGA
304, 306, 308, 310, 338, 602, 606, 608, 610: 이더넷 포트
318, 320, 336, 618, 620, 716A, 716B: PCIe X4 버스
601, 603, 801A, 801B: 마더보드
626, 861: 미드-플레인
700: FPGA 장치
1000: 어셈블리
1002: SFF SSD
102: SSD
104, 216: FPGA PCB
106, 108, 210, 709A, 709B: 수직 M.2 커넥터
110, 214, 312, 612, 706: U.2 커넥터
204, 314, 316, 334, 614, 616, 718A, 718B: NF1 SSD
222, 302, 602, 701: FPGA
304, 306, 308, 310, 338, 602, 606, 608, 610: 이더넷 포트
318, 320, 336, 618, 620, 716A, 716B: PCIe X4 버스
601, 603, 801A, 801B: 마더보드
626, 861: 미드-플레인
700: FPGA 장치
1000: 어셈블리
1002: SFF SSD
Claims (10)
- 인쇄 회로 기판(PCB);
적어도 하나의 SSD 커넥터를 경유하여 상기 PCB의 제1 면에 연결되는 적어도 하나의 솔리드 스테이트 드라이브(SSD);
상기 PCB의 제2 면에서 상기 PCB에 실장되는 적어도 하나의 필드 프로그래머블 게이트 어레이(FPGA); 및
상기 PCB의 제3 면에서 상기 PCB에 부착되는 적어도 하나의 커넥터를 포함하되,
상기 적어도 하나의 커넥터를 경유하여 수신되는 제1 입력에 기초하여, 복수의 동작 속도들에서 제1 속도로 동작하는 장치. - 제1 항에 있어서,
상기 적어도 하나의 SSD는 제1 SSD 및 제2 SSD를 포함하고,
상기 적어도 하나의 SSD 커넥터는 제1 SSD 커넥터 및 제2 SSD 커넥터를 포함하되,
상기 제1 SSD는 상기 제1 SSD 커넥터를 경유하여 상기 PCB의 상기 제1 면에서 상기 PCB에 연결되고, 상기 제2 SSD는 상기 제2 SSD 커넥터를 경유하여 상기 PCB의 상기 제1 면에서 상기 PCB에 연결되고,
상기 제1 SSD 및 상기 제2 SSD 각각은 새로운 폼 팩터 1(NF1) SSD이고, 상기 적어도 하나의 커넥터는 U.2 커넥터이고, 상기 제1 SSD 커넥터 및 상기 제2 SSD 커넥터 각각은 M.2 커넥터인 장치. - 제1 항에 있어서,
상기 적어도 하나의 SSD 커넥터는 상기 적어도 하나의 SSD의 제1 면에서 상기 적어도 하나의 SSD에 부착 및 전기적으로 연결되고, 상기 적어도 하나의 SSD 커넥터는 상기 PCB의 상기 제1 면에서 상기 PCB에 부착되고, 상기 적어도 하나의 SSD 커넥터는 상기 PCB의 상기 제1 면에 수직인 장치. - 제1 항에 있어서,
상기 PCB의 상기 제2 면 및 상기 적어도 하나의 SSD의 제2 면 사이에 배치되는 구조적 지지대를 더 포함하되,
상기 구조적 지지대는 플라스틱 지지대 또는 스탠드오프인 장치. - 제1 항에 있어서,
상기 적어도 하나의 SSD의 길이는 110mm이고, 상기 PCB의 길이는 110mm 및 142.2mm 사이인 장치. - 제1 항에 있어서,
상기 적어도 하나의 FPGA의 제1 면은 상기 PCB의 상기 제2 면에 부착되고, 상기 적어도 하나의 FPGA는 상기 PCB에 전기적으로 연결되는 장치. - 제6 항에 있어서,
상기 적어도 하나의 SSD의 제3 면에 부착되는 제1 인터페이스 레이어, 및 상기 적어도 하나의 FPGA의 제2 면에 부착되는 제2 인터페이스 레이어를 더 포함하되,
상기 제1 인터페이스 레이어 및 상기 제2 인터페이스 레이어는, 상기 적어도 하나의 SSD 및 상기 적어도 하나의 FPGA의 동작 동안 상기 적어도 하나의 SSD 및 상기 적어도 하나의 FPGA에 의하여 생성되는 열을 전달하는데 사용되는 장치. - 적어도 하나의 솔리드 스테이트 드라이브(SSD)의 제1 면에 제1 인터페이스 레이어를 부착하는 단계;
적어도 하나의 SSD 커넥터를 경유하여 인쇄 회로 기판(PCB)의 제1 면에 상기 적어도 하나의 SSD를 연결하는 단계;
상기 PCB의 제2 면에 적어도 하나의 필드 프로그래머블 게이트 어레이(FPGA)를 실장하되, 상기 적어도 하나의 FPGA의 제1 면이 상기 PCB에 부착되는 단계;
상기 적어도 하나의 FPGA의 제2 면에 제2 인터페이스 레이어를 부착하는 단계; 및
상기 PCB의 제3 면에 적어도 하나의 커넥터를 부착하는 단계를 포함하되,
상기 적어도 하나의 SSD는 상기 적어도 하나의 커넥터를 경유하여 수신되는 제1 입력에 기초하여, 복수의 동작 속도들에서 제1 속도로 동작하는 방법. - 제8 항에 있어서,
상기 PCB의 상기 제2 면 및 상기 적어도 하나의 SSD의 제2 면 사이에 구조적 지지대를 포함시키는 단계를 더 포함하되,
상기 구조적 지지대는 플라스틱 지지대 또는 스탠드오프이고, 상기 적어도 하나의 SSD 커넥터는 상기 PCB의 상기 제1 면에 수직인 방법. - 제8 항에 있어서,
상기 PCB의 길이는 상기 적어도 하나의 SSD의 길이 이상이고, 상기 PCB의 길이는 상기 적어도 하나의 FPGA의 길이 이상인 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220187662A KR20230008678A (ko) | 2018-03-09 | 2022-12-28 | 멀티-모드 및/또는 멀티-속도 NVMe-oF 장치 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862641250P | 2018-03-09 | 2018-03-09 | |
US62/641,250 | 2018-03-09 | ||
US16/033,141 | 2018-07-11 | ||
US16/033,141 US11018444B2 (en) | 2018-03-09 | 2018-07-11 | Multi-mode and/or multi-speed non-volatile memory (NVM) express (NVMe) over fabrics (NVMe-of) device |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220187662A Division KR20230008678A (ko) | 2018-03-09 | 2022-12-28 | 멀티-모드 및/또는 멀티-속도 NVMe-oF 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190106680A true KR20190106680A (ko) | 2019-09-18 |
KR102483969B1 KR102483969B1 (ko) | 2023-01-03 |
Family
ID=67842156
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190016912A KR102483969B1 (ko) | 2018-03-09 | 2019-02-13 | 멀티-모드 및/또는 멀티-속도 NVMe-oF 장치 |
KR1020220187662A KR20230008678A (ko) | 2018-03-09 | 2022-12-28 | 멀티-모드 및/또는 멀티-속도 NVMe-oF 장치 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220187662A KR20230008678A (ko) | 2018-03-09 | 2022-12-28 | 멀티-모드 및/또는 멀티-속도 NVMe-oF 장치 |
Country Status (3)
Country | Link |
---|---|
US (3) | US11018444B2 (ko) |
KR (2) | KR102483969B1 (ko) |
CN (1) | CN110247860B (ko) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11921555B2 (en) | 2019-07-26 | 2024-03-05 | Samsung Electronics Co., Ltd. | Systems, methods, and devices for providing power to devices through connectors |
US11087801B1 (en) | 2020-02-06 | 2021-08-10 | Micron Technology, Inc. | Configuring a host interface of a memory device based on mode of operation |
US11243896B2 (en) * | 2020-03-25 | 2022-02-08 | Micron Technology, Inc. | Multiple pin configurations of memory devices |
CN112162941B (zh) * | 2020-09-29 | 2022-09-27 | 超越科技股份有限公司 | 一种NVMe固态存储系统的实现方法及架构 |
US11509751B2 (en) * | 2020-12-23 | 2022-11-22 | Dell Products L.P. | Self-describing system using single-source/multi-destination cable |
US11853555B2 (en) * | 2021-10-11 | 2023-12-26 | Western Digital Technologies, Inc. | NVMe dual port enterprise SSD optimization |
CN113676421B (zh) * | 2021-10-25 | 2022-01-28 | 之江实验室 | 一种基于PCIe的多端口网络报文收发方法 |
CN116860679A (zh) | 2022-03-28 | 2023-10-10 | 富联精密电子(天津)有限公司 | 热插拔方法、服务器系统及计算机可读存储介质 |
US12072381B2 (en) * | 2022-10-18 | 2024-08-27 | Micron Technology, Inc. | Multi-modal memory apparatuses and systems |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150351277A1 (en) * | 2014-05-30 | 2015-12-03 | Emc Corporation | Flash module |
KR20160106493A (ko) * | 2015-03-02 | 2016-09-12 | 삼성전자주식회사 | 하드 디스크 드라이브 폼 팩터 솔리드 스테이트 드라이브 멀티-카드 어댑터 및 그것을 포함하는 컴퓨터 서버 시스템 |
US20170220505A1 (en) * | 2016-01-29 | 2017-08-03 | Liqid Inc. | ENHANCED PCIe STORAGE DEVICE FORM FACTORS |
KR20180012201A (ko) * | 2016-07-26 | 2018-02-05 | 삼성전자주식회사 | 패브릭을 통한 멀티-모드 불휘발성 메모리 익스프레스 장치들을 위한 액티브 패스-쓰루 보드를 지원하는 시스템 아키텍처 |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030191883A1 (en) | 2002-04-05 | 2003-10-09 | Sycamore Networks, Inc. | Interface for upgrading serial backplane application from ethernet to gigabit ethernet |
KR20040104120A (ko) * | 2003-06-03 | 2004-12-10 | 삼성전자주식회사 | 컴퓨터 시스템 및 그 제어방법 |
US7347739B2 (en) * | 2005-05-11 | 2008-03-25 | Siemens Energy & Automation, Inc. | Devices, systems, and methods for coupling electrical wiring |
US7573940B2 (en) | 2005-12-07 | 2009-08-11 | Intel Corporation | Data transmission at energy efficient rates |
CN1968203A (zh) * | 2006-08-31 | 2007-05-23 | 孙利 | 一种基于AoE协议的网络存储设备及其数据处理方法 |
US7843852B2 (en) | 2008-04-23 | 2010-11-30 | International Business Machines Corporation | Portable device for fibre channel configuration and analysis |
US9377967B2 (en) | 2009-05-27 | 2016-06-28 | Dell Products L.P. | Systems and methods for scalable storage management |
US8508928B2 (en) | 2009-09-24 | 2013-08-13 | Jabil Circuit, Inc. | Incorporation of multiple, 2.5-inch or smaller hard disk drives into a single drive carrier with a single midplane or baseboard connector |
US9008129B2 (en) | 2010-02-18 | 2015-04-14 | Broadcom Corporation | System and method for frequency division multiplexed high speed physical layer devices |
WO2012159168A1 (en) | 2011-05-25 | 2012-11-29 | The Silanna Group Pty Ltd | Usb isolator integrated circuit with usb 2.0 high speed mode and automatic speed detection |
US9164861B2 (en) | 2011-09-22 | 2015-10-20 | American Megatrends, Inc. | Drive mapping using a plurality of connected enclosure management controllers |
CN102662608B (zh) * | 2012-03-30 | 2015-11-25 | 华为技术有限公司 | 一种降低读延时的方法及装置 |
GB2506572A (en) | 2012-07-05 | 2014-04-09 | Ibm | Blade enclosure with control and expansion canisters |
US9098402B2 (en) | 2012-12-21 | 2015-08-04 | Intel Corporation | Techniques to configure a solid state drive to operate in a storage mode or a memory mode |
US9577955B2 (en) | 2013-03-12 | 2017-02-21 | Forrest Lawrence Pierson | Indefinitely expandable high-capacity data switch |
US9015353B2 (en) | 2013-03-14 | 2015-04-21 | DSSD, Inc. | Method and system for hybrid direct input/output (I/O) with a storage device |
US10452316B2 (en) | 2013-04-17 | 2019-10-22 | Apeiron Data Systems | Switched direct attached shared storage architecture |
KR102108839B1 (ko) * | 2013-06-12 | 2020-05-29 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법 |
US9785356B2 (en) | 2013-06-26 | 2017-10-10 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over ethernet-type networks |
US9430412B2 (en) | 2013-06-26 | 2016-08-30 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over Ethernet-type networks |
US9311110B2 (en) * | 2013-07-08 | 2016-04-12 | Intel Corporation | Techniques to initialize from a remotely accessible storage device |
GB2523839B (en) | 2014-03-07 | 2018-08-08 | Xyratex Tech Limited | A solid state storage carrier and a storage system |
US20150261446A1 (en) * | 2014-03-12 | 2015-09-17 | Futurewei Technologies, Inc. | Ddr4-onfi ssd 1-to-n bus adaptation and expansion controller |
US9565269B2 (en) | 2014-11-04 | 2017-02-07 | Pavilion Data Systems, Inc. | Non-volatile memory express over ethernet |
CN104714913A (zh) * | 2015-03-30 | 2015-06-17 | 张维加 | 一种可扩展速度与性能的电路装置 |
US10025357B2 (en) | 2015-06-15 | 2018-07-17 | Seagate Technology Llc | Enclosure system for computing equipment |
US20180032471A1 (en) * | 2016-07-26 | 2018-02-01 | Samsung Electronics Co., Ltd. | Self-configuring ssd multi-protocol support in host-less environment |
CN106775434B (zh) | 2015-11-19 | 2019-11-29 | 华为技术有限公司 | 一种NVMe网络化存储的实现方法、终端、服务器及系统 |
US10275356B2 (en) | 2015-12-11 | 2019-04-30 | Quanta Computer Inc. | Component carrier with converter board |
US10275160B2 (en) | 2015-12-21 | 2019-04-30 | Intel Corporation | Method and apparatus to enable individual non volatile memory express (NVME) input/output (IO) Queues on differing network addresses of an NVME controller |
US10210121B2 (en) | 2016-01-27 | 2019-02-19 | Quanta Computer Inc. | System for switching between a single node PCIe mode and a multi-node PCIe mode |
US10467170B2 (en) | 2016-04-18 | 2019-11-05 | Hewlett Packard Enterprise Development Lp | Storage array including a bridge module interconnect to provide bridge connections to different protocol bridge protocol modules |
US10379745B2 (en) * | 2016-04-22 | 2019-08-13 | Samsung Electronics Co., Ltd. | Simultaneous kernel mode and user mode access to a device using the NVMe interface |
US10691628B2 (en) | 2016-05-06 | 2020-06-23 | Quanta Computer Inc. | Systems and methods for flexible HDD/SSD storage support |
US20170357610A1 (en) | 2016-06-14 | 2017-12-14 | Kazan Networks Corporation | Split nvme ssd implementation using nvme over fabrics protocol |
US10452576B2 (en) | 2016-06-24 | 2019-10-22 | Avago Technologies International Sales Pte. Limited | NVMe drive detection from a SAS/SATA connector |
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 |
US10200309B2 (en) * | 2016-08-12 | 2019-02-05 | Samsung Electronics Co., Ltd. | Two-headed switch including a drive bay for fabric-attached devices |
CN106502593A (zh) | 2016-11-04 | 2017-03-15 | 郑州云海信息技术有限公司 | 一种高速互联混合存储系统 |
US20190245924A1 (en) * | 2018-02-06 | 2019-08-08 | Alibaba Group Holding Limited | Three-stage cost-efficient disaggregation for high-performance computation, high-capacity storage with online expansion flexibility |
US11811609B2 (en) * | 2018-05-04 | 2023-11-07 | International Business Machines Corporation | Storage target discovery in a multi-speed and multi-protocol ethernet environment |
-
2018
- 2018-07-11 US US16/033,141 patent/US11018444B2/en active Active
-
2019
- 2019-02-13 KR KR1020190016912A patent/KR102483969B1/ko active IP Right Grant
- 2019-03-04 CN CN201910159821.2A patent/CN110247860B/zh active Active
-
2021
- 2021-05-10 US US17/316,596 patent/US11588261B2/en active Active
-
2022
- 2022-12-28 KR KR1020220187662A patent/KR20230008678A/ko active Application Filing
-
2023
- 2023-02-16 US US18/110,601 patent/US20230198182A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150351277A1 (en) * | 2014-05-30 | 2015-12-03 | Emc Corporation | Flash module |
KR20160106493A (ko) * | 2015-03-02 | 2016-09-12 | 삼성전자주식회사 | 하드 디스크 드라이브 폼 팩터 솔리드 스테이트 드라이브 멀티-카드 어댑터 및 그것을 포함하는 컴퓨터 서버 시스템 |
US20170220505A1 (en) * | 2016-01-29 | 2017-08-03 | Liqid Inc. | ENHANCED PCIe STORAGE DEVICE FORM FACTORS |
KR20180012201A (ko) * | 2016-07-26 | 2018-02-05 | 삼성전자주식회사 | 패브릭을 통한 멀티-모드 불휘발성 메모리 익스프레스 장치들을 위한 액티브 패스-쓰루 보드를 지원하는 시스템 아키텍처 |
Also Published As
Publication number | Publication date |
---|---|
KR20230008678A (ko) | 2023-01-16 |
US20190280411A1 (en) | 2019-09-12 |
CN110247860B (zh) | 2022-09-27 |
US11588261B2 (en) | 2023-02-21 |
US20230198182A1 (en) | 2023-06-22 |
US11018444B2 (en) | 2021-05-25 |
CN110247860A (zh) | 2019-09-17 |
KR102483969B1 (ko) | 2023-01-03 |
US20210265755A1 (en) | 2021-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102483969B1 (ko) | 멀티-모드 및/또는 멀티-속도 NVMe-oF 장치 | |
US20210279198A1 (en) | SYSTEM AND METHOD FOR SUPPORTING MULTI-MODE AND/OR MULTI-SPEED NON-VOLATILE MEMORY (NVM) EXPRESS (NVMe) OVER FABRICS (NVMe-oF) DEVICES | |
US11003609B2 (en) | Multi-protocol IO infrastructure for a flexible storage platform | |
JP7134894B2 (ja) | ストレージシステム、及びプログラマブルロジックデバイス | |
KR102265669B1 (ko) | 패브릭을 통한 멀티-모드 불휘발성 메모리 익스프레스 장치들을 위한 액티브 패스-쓰루 보드를 지원하는 시스템 아키텍처 | |
KR102403627B1 (ko) | Fpga 기반의 aic ssd를 지원하는 장치 및 방법 | |
KR100708565B1 (ko) | 복수의 처리 노드를 시리얼 버스에 의해 상호 접속하는장치 | |
US20230350838A1 (en) | Sff-ta-100x based multi-mode protocols solid state devices | |
JP6713791B2 (ja) | モジュール型不揮発性フラッシュメモリブレード及びその動作方法 | |
US10210128B2 (en) | Redirection of lane resources | |
US6829658B2 (en) | Compatible signal-to-pin connector assignments for usage with fibre channel and advanced technology attachment disk drives |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |