KR20190106676A - Fpga 기반의 aic ssd를 지원하는 장치 및 방법 - Google Patents

Fpga 기반의 aic ssd를 지원하는 장치 및 방법 Download PDF

Info

Publication number
KR20190106676A
KR20190106676A KR1020190012280A KR20190012280A KR20190106676A KR 20190106676 A KR20190106676 A KR 20190106676A KR 1020190012280 A KR1020190012280 A KR 1020190012280A KR 20190012280 A KR20190012280 A KR 20190012280A KR 20190106676 A KR20190106676 A KR 20190106676A
Authority
KR
South Korea
Prior art keywords
ssd
connector
pcie
fpga
aic
Prior art date
Application number
KR1020190012280A
Other languages
English (en)
Other versions
KR102403627B1 (ko
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 KR20190106676A publication Critical patent/KR20190106676A/ko
Application granted granted Critical
Publication of KR102403627B1 publication Critical patent/KR102403627B1/ko

Links

Images

Classifications

    • 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/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/4063Device-to-bus coupling
    • G06F13/409Mechanical coupling
    • 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/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K1/00Printed circuits
    • H05K1/18Printed circuits structurally associated with non-printed electric components
    • H05K1/182Printed circuits structurally associated with non-printed electric components associated with components mounted in the printed circuit board, e.g. insert mounted components [IMC]
    • 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/16Memory access

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)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Information Transfer Systems (AREA)

Abstract

본 발명의 실시예에 따른 일부 예시적인 실시예들에 따르면, 장치는 인쇄 회로 기판(PCB), 적어도 하나의 SSD 커넥터를 경유하여 PCB의 제1 면에 연결되는 솔리드 스테이트 드라이브(SSD), PCB의 제2 면에서 PCB에 부착되는 적어도 하나의 필드 프로그래머블 게이트 어레이(FPGA), 및 PCB의 제3 면에서 PCB에 부착되는 적어도 하나의 프론트 엔드 커넥터를 포함하되, 장치는 적어도 하나의 프론트 엔드 커넥터를 경유하여 수신되는 커맨드에 기초하여, SSD에 저장된 데이터를 처리한다.

Description

FPGA 기반의 AIC SSD를 지원하는 장치 및 방법{METHOD AND APPARATUS FOR SUPPORTING A FIELD PROGRAMMABLE GATE ARRAY (FPGA) BASED ADD-IN-CARD (AIC) SOLID STATE DRIVE (SSD)}
본 발명에 따른 하나 이상의 양상들은 네트워크-결합 장치들(network-attached devices), 예를 들어 FPGA(field programmable gate array) 기반의 AIC(add-in-card) SSD(solid state drive)에 관한 것이다.
NVMe(Non-volatile memory express)는 PCIe(peripheral component interconnect express) 버스를 통하여 불휘발성 메모리 서브 시스템 (예를 들어, 솔리드 스테이트 드라이브(solid state drive, SSD))과 통신하는 호스트 소프트웨어를 위한 레지스터-레벨 인터페이스를 정의하는 표준이다. NVMe는 호스트와 주변 타겟 스토리지 장치 또는 시스템 사이의 데이터를 전달 및 연결하기 위한 SCSI(Small Computer System Interface) 표준에 대한 대안이다. PCIe-커넥티드 NVMe SSD들은 어플리케이션들이 스토리지와 직접 통신하도록 허용한다.
이러한 배경 기술에서 상술된 정보는 단순히 본 발명의 배경의 이해의 강화를 위한 것이므로, 종래 기술을 구성하지 않는 정보를 포함할 수 있다.
본 발명은 FPGA(field programmable gate array) 기반의 AIC(add-in-card) SSD(solid state drive)를 지원하는 장치 및 방법을 제공한다.
아래에서 더욱 상세하게 설명되는 본 발명의 실시예들의 특징들 및 개념들의 선택을 소개하도록 요약이 제공된다. 이러한 요약은 청구된 주제의 핵심 또는 본질적인 특징들을 식별하는 것으로 의도되는 것도 아니고, 청구된 주제의 범위를 제한하는데 사용되는 것으로 의도되는 것도 아니다. 하나 이상의 설명된 특징들은 하나 이상의 다른 설명된 특징들과 결합되어 운용 가능한 장치를 제공할 수 있다.
본 발명의 예시적인 실시예들의 양상들은 FPGA(field programmable gate array) 기반의 AIC(add-in-card) SSD(solid state drive)를 지원하는 장치 및 방법에 관한 것이다.
본 발명에 따른 일부 예시적인 실시예들에 따르면, 장치는 인쇄 회로 기판(printed circuit board, PCB), 적어도 하나의 SSD 커넥터를 경유하여 PCB의 제1 면에 연결되는 솔리드 스테이트 드라이브(solid state drive, SSD), PCB의 제2 면에서 PCB에 부착되는 적어도 하나의 필드 프로그래머블 게이트 어레이(field programmable gate array, FPGA), 및 PCB의 제3 면에서 PCB에 부착되는 적어도 하나의 프론트 엔드 커넥터를 포함하되, 장치는 적어도 하나의 프론트 엔드 커넥터를 경유하여 수신되는 커맨드에 기초하여, SSD에 저장된 데이터를 처리하도록 구성된다.
일부 예시적인 실시예들에서, SSD는 주변 컴포넌트 인터커넥트 익스프레스(peripheral component interconnect express, PCIe) 애드-인-카드(add-in-card, AIC) SSD이고, 적어도 하나의 SSD 커넥터는 제1 SSD 커넥터 및 제2 SSD 커넥터를 포함하되, 제1 SSD 커넥터는 수직 PCIe 엣지 커넥터이고, 제2 SSD 커넥터는 PCIe 리셉터클 커넥터이다. 일부 예시적인 실시예들에서, 수직 PCIe 엣지 커넥터의 제1 면은 PCIe AIC SSD의 제1 면에서 PCIe AIC SSD에 부착 및 전기적으로 연결되고, 수직 PCIe 엣지 커넥터의 제2 면은 PCIe 리셉터클 커넥터의 제1 면에 부착 및 전기적으로 연결되고, PCIe 리셉터클 커넥터의 제2 면은 상기 PCB의 상기 제1 면에 부착 및 전기적으로 연결된다.
일부 예시적인 실시예들에서, 장치는 제1 구조적 지지대, 제2 구조적 지지대, 제3 구조적 지지대, 및 제4 구조적 지지대를 더 포함하되, 제1 구조적 지지대 및 제2 구조적 지지대는 PCB의 제2 면 및 SSD의 제1 면 사이에 배치되고, 제3 구조적 지지대 및 제4 구조적 지지대는 PCB의 제2 면 및 금속 케이스의 제1 면 사이에 배치되고, 장치는 금속 케이스에 싸여지고, 제1 구조적 지지대, 제2 구조적 지지대, 제3 구조적 지지대, 및 제4 구조적 지지대는 금속 스탠드오프들이다. 일부 예시적인 실시예들에서, SSD의 길이는 110mm이고, 장치의 길이는 110mm 및 142.2mm 사이이다. 일부 예시적인 실시예들에서, 적어도 하나의 FPGA의 제1 면은 PCB의 제2 면에 부착되고, 적어도 하나의 FPGA는 PCB에 전기적으로 연결되고 하나 이상의 가속 기능들을 수행한다.
일부 예시적인 실시예들에서, 장치는 SSD의 제2 면에 부착되는 제1 인터페이스 레이어, 및 적어도 하나의 FPGA의 제2 면에 부착되는 제2 인터페이스 레이어를 더 포함하되, 제1 인터페이스 레이어 및 제2 인터페이스 레이어는, SSD 및 적어도 하나의 FPGA의 동작 동안 SSD 및 적어도 하나의 FPGA에 의하여 생성되는 열을 전달하는데 사용된다. 일부 예시적인 실시예들에서, PCB의 길이는 SSD의 길이 이상이다. 일부 예시적인 실시예들에서, PCB의 길이는 적어도 하나의 FPGA의 길이 이상이고, 적어도 하나의 FPGA의 길이는 80mm이다.
일부 예시적인 실시예들에서, SSD는 U.2 SSD 또는 SFF-TA-1008 SSD이고, SSD가 U.2 SSD인 경우, 적어도 하나의 SSD 커넥터는 U.2 커넥터이고, SSD가 SFF-TA-1008 SSD인 경우, 적어도 하나의 SSD 커넥터는 SFF-TA-1008 커넥터이다. 일부 예시적인 실시예들에서, 적어도 하나의 프론트 엔드 커넥터는 U.2 커넥터 또는 SFF-TA-1008 SSD이다. 일부 예시적인 실시예들에서, 7.5 x 76 x 104.9mm SFF-TA-1008 커넥터는 25W까지 지원하고, 7.5 x 76 x 142.2mm SFF-TA-1008 커넥터는 35W까지 지원하고, 16.8 x 76 x 104.9mm SFF-TA-1008 커넥터는 70W까지 지원하고, 16.8 x 76 x 142.2mm SFF-TA-1008 커넥터는 70W까지 지원한다.
일부 예시적인 실시예들에서, 시스템은 제1 인터페이스 레이어, SSD의 제1 면에서 제1 인터페이스 레이어에 부착되는 솔리드 스테이트 드라이브(SSD), SSD의 제2 면에 연결되고, PCB의 제1 면이 적어도 하나의 SSD 커넥터를 경유하여 SSD의 제2 면에 연결되는 인쇄 회로 기판(PCB), PCB의 제2 면에서 PCB에 부착되고, FPGA의 제1 면이 PCB에 부착되는 필드 프로그래머블 게이트 어레이(FPGA), FPGA의 제2 면에서 FPGA에 부착되는 제2 인터페이스 레이어, 및 PCB의 제3 면에서 PCB에 부착되는 적어도 하나의 프론트 엔드 커넥터를 포함하되, 시스템은 적어도 하나의 프론트 엔드 커넥터를 경유하여 수신되는 커맨드에 기초하여, SSD에 저장된 데이터를 처리하도록 구성된다.
일부 예시적인 실시예들에서, SSD는 주변 컴포넌트 인터커넥트 익스프레스(PCIe) 애드-인-카드(AIC) SSD이고, 적어도 하나의 SSD 커넥터는 제1 SSD 커넥터 및 제2 SSD 커넥터를 포함하되, 제1 SSD 커넥터는 수직 PCIe 엣지 커넥터이고, 제2 SSD 커넥터는 PCIe 리셉터클 커넥터이다. 일부 예시적인 실시예들에서, 수직 PCIe 엣지 커넥터의 제1 면은 PCIe AIC SSD의 제1 면에서 PCIe AIC SSD에 부착 및 전기적으로 연결되고, 수직 PCIe 엣지 커넥터의 제2 면은 PCIe 리셉터클 커넥터의 제1 면에 부착 및 전기적으로 연결되고, PCIe 리셉터클 커넥터의 제2 면은 상기 PCB의 상기 제1 면에 부착 및 전기적으로 연결된다.
일부 예시적인 실시예들에서, 시스템은 제1 구조적 지지대, 제2 구조적 지지대, 제3 구조적 지지대, 및 제4 구조적 지지대를 더 포함하되, 제1 구조적 지지대 및 제2 구조적 지지대는 PCB의 제2 면 및 SSD의 제2 면 사이에 배치되고, 제3 구조적 지지대 및 제4 구조적 지지대는 PCB의 제2 면 및 금속 케이스의 제1 면 사이에 배치되고, 시스템은 금속 케이스에 싸여지고, 제1 구조적 지지대, 제2 구조적 지지대, 제3 구조적 지지대, 및 제4 구조적 지지대는 금속 스탠드오프들이다. 일부 예시적인 실시예들에서, SSD의 길이는 110mm이고, 시스템의 길이는 110mm 및 142.2mm 사이이고, 적어도 하나의 FPGA의 길이는 80mm이고, 적어도 하나의 FPGA는 하나 이상의 가속 기능들을 수행한다.
일부 예시적인 실시예들에서, 방법은, 처리 장치에서, 호스트 장치로부터 커맨드를 수신하는 단계, 처리 장치에서, 적어도 하나의 SSD 커넥터를 경유하여 처리 장치에 연결된 솔리드 스테이트 드라이브(SSD)에 저장된 데이터 셋을 수신하는 단계, 처리 장치에서, 호스트 장치로부터 수신되는 커맨드에 기초하여, SSD로부터 수신되는 데이터 셋을 처리하는 단계, 및 처리 장치에서, SSD로부터 수신되는 데이터 셋의 처리로부터의 하나 이상의 결과들을 호스트 장치로 전송하는 단계를 포함한다.
일부 예시적인 실시예들에서, 방법은 처리 장치에 인접하게 배치되는 복수의 스토리지 장치들에서, SSD로부터 수신된 데이터 셋을 저장하는 단계를 더 포함하되, 처리 장치는 필드 프로그래머블 게이트 어레이(FPGA) 장치이고, 처리 장치에 인접하게 배치되는 복수의 스토리지 장치들은 복수의 DDR4 메모리들이다. 일부 예시적인 실시예들에서, SSD는 주변 컴포넌트 인터커넥트 익스프레스(PCIe) 애드-인-카드(AIC) SSD이고, 적어도 하나의 SSD 커넥터는 제1 SSD 커넥터 및 제2 SSD 커넥터를 포함하되, 제1 SSD 커넥터는 수직 PCIe 엣지 커넥터이고, 제2 SSD 커넥터는 PCIe 리셉터클 커넥터이다.
본 발명은 더 빠르고 에너지 효율적인 솔루션을 제공하는 FPGA 기반의 AIC SSD를 지원하는 장치 및 방법을 제공할 수 있다.
도 1은 본 발명의 일부 예시적인 실시예들에 따른 SSD에 연결되는 예시적인 PCIe AIC(add-in-card)의 블록도를 도시한다.
도 2는 본 발명의 일부 예시적인 실시예들에 따른 금속 케이스에서의 장치의 단면도를 도시한다.
도 3은 본 발명의 일부 예시적인 실시예들에 따른 SSD에 부착되는 PCIe AIC에서 수행되는 스토리지 내 처리 방법에 대한 순서도를 도시한다.
도 4는 본 발명의 일부 예시적인 실시예에 따른 어셈블리의 평면도를 도시한다.
첨부된 도면들과 관련하여 아래에서 진술되는 상세한 설명은, 본 발명에 따라 제공되는 FPGA 기반의 AIC(add-in-card) SSD를 지원하기 위한 시스템 및 방법의 일부 예시적인 실시예들에 대한 설명으로 의도되고, 본 발명이 구성되거나 이용될 수 있는 유일한 형식들을 나타내는 것으로 의도되지 않는다. 상세한 설명은 도시된 실시예들과 관련하여 본 발명의 특징들을 진술한다. 그러나, 동일하거나 동등한 기능들 및 구조들은, 또한 본 발명의 범위 내에 포함되는 것으로 의도되는 다른 실시예들에 의하여 달성될 수 있음이 이해될 것이다. 여기에서 달리 표시되지 않는 한, 같은 도면 부호들은 같은 구성들 또는 특징들을 지시하는 것으로 의도된다.
NVMe는 PCIe 버스를 통하여 불휘발성 메모리 서브 시스템 (예를 들어, SSD)과 통신하는 호스트 소프트웨어를 위한 레지스터-레벨 인터페이스를 정의하는 표준이다. NVMe는 호스트와 주변 타겟 스토리지 장치 또는 시스템 사이의 데이터를 전달 및 연결하기 위한 SCSI 표준에 대한 대안이다. PCIe-커넥티드 NVMe SSD들은 어플리케이션들이 스토리지와 직접 통신하도록 허용한다.
NVMe의 물리적인 연결은 PCIe 버스에 기초한다. 전형적인 SSD는 PCIe 버스를 통하여 미드-플레인(mid-plane)을 경유하여 시스템과 인터페이스 하도록 표준 커넥터 (예를 들어, 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(NVMe over fabric)는 PCIe와 다른 다양한 패브릭(fabric)들 (또는 인터커넥트들)을 통한 동작을 가능케하는 NVMe 표준의 확장이다. 여기에서, 용어 “패브릭”은, 네트워크 노드들이 다양한 인터커넥트 프로토콜들, 포트들, 및 스위치들을 통하여 서로 데이터를 전달할 수 있는 네트워크 토폴로지를 나타낸다. 예를 들어, 이더넷-부착된(Ethernet-attached) SSD들은 패브릭에 직접 부착할 수 있고, 이 경우 패브릭은 이더넷이다.
NVMe-oF는 NVMe 호스트 장치와 NVMe 스토리지 드라이브 또는 서브 시스템이 연결할 수 있는 거리들을 확장하는 PCIe에 대한 교대 이동들의 사용을 가능케 한다. 그러므로, NVMe-oF는 불휘발성 메모리 익스프레스(nonvolatile memory express) 메시지-기반의 커맨드들이 이더넷, FC(Fibre Channel) 또는 InfiniBand와 같은 네트워크를 통하여 호스트 컴퓨터와 타겟 솔리드-스테이트 스토리지 장치 (예를 들어, eSSD 또는 NVMe-oF 장치) 또는 시스템 사이에서 직접 데이터를 전달할 수 있게 설계된 기술 사양이다. NVMe-oF 표준을 지원하도록 구성되는 경우, 시스템은 이더넷뿐만 아니라, Fibre Channel, InfiniBand, 및 다른 네트워크 패브릭들을 포함하는 다양한 패브릭들을 지원할 수 있다. 예를 들어, eSSD는 패브릭에 직접 부착할 수 있고, 이 경우 패브릭은 이더넷이다. eSSD는 NVMe-oF 프로토콜들을 지원할 수 있는 SSD를 나타낼 수 있다.
PCIe AIC SSD들은 SATA SSD들보다 높은 속도에 도달할 수 있다. PCIe AIC SSD들은 PCIe 인터페이스에 의하여 제공되는 높은 대역폭을 갖는 HHHL (Half Height Half Length)/ FHHL (Full Height Half Length) AIC 폼 팩터이다. 일부 실시예들에서, PCIe 2.0 X1은 5Gb/s의 속도를 제공할 수 있고, PCIe 2.0 X4는 20Gb/s의 속도를 제공할 수 있고, PCIe 2.0 X8은 40Gb/s의 속도를 제공할 수 있다. 이와 같이, PCIe AIC SSD들은 시중에 이용 가능한 다른 SSD들보다 더 높은 속도를 특징으로 가질 수 있다. PCIe AIC SSD들에서 큰 PCB는 단일 드라이브에서의 매우 높은 용량과 동일한 복수의 NAND들을 위한 공간이 존재함을 의미한다. PCIe AIC SSD들에서, 열 흡수원(heatsink)을 위한 공간이 또한 존재하며, 이는 드라이브들이 빈번하게 지속적인 기간 동안 부하를 받는 산업계에서 유용할 수 있다.
일부 구성들에서, PCIe SSD들을 갖는 FPGA의 구현은 2개의 주된 구성들, i) FPGA, DDR4 메모리, SPI NOR, 클럭 생성기 등으로 구성되는 인터포저 보드 및 ii) AIC1725와 같은 표준 NVMe SSD들을 요구한다. 추가적으로, NVMe-oF SSD (eSSD)들은 하위 호환성(backward compatibility)을 위한 NVMe 프로토콜을 지원할 것이 요구될 수 있다. 그러나, PCIe 리셋 이후 10ms 이내에 자동적으로 (양단에서 PCIe 상태 머신들에 의하여) 발생하는 고속의 PCIe 링크 트레이닝으로 인하여, 기존의 PCIe IP를 변경하지 않고 FPGA 내의 유사한 기능을 구현하는 것이 요구될 수 있다. 예를 들어, SSD는 (SSD에 부착되는) FPGA에 의존하여 SSD가 존재하는 섀시 (NVMe 또는 NVMe-oF) 또는 동작이 요구되는 프로토콜을 결정할 수 있다. 일부 실시예들에서, 이러한 결정은, 리셋(Reset)이 디-어설트된(de-asserted) 이후 120mS보다 작은(<120mS) PCIe 링크 트레이닝 기간의 위반을 초래하는데 수 분이 걸릴 수 있고, FPGA 비트 파일이 성공적으로 다운로드된 이후 다른 PCIe 버스 스캔을 요구할 수 있다. FPGA 기반의 인터포저는 PCIe 폼 팩터를 포함하는 기존의 NVMe-기반의 SSD들을 지원할 수 있다. 그러므로, 낮은 레이턴시 및 높은 성능을 갖는 비용 효율적인 FPGA 기반의 PCIe AIC SSD가 요망될 수 있다.
본 발명의 실시예들은 스토리지 장치, 예를 들어 NVMe 및 NVMe-oF 프로토콜들 모두를 지원할 수 있는 FPGA 기반의 PCIe AIC SSD를 포함할 수 있고, NVMe-oF 모드의 경우에, FPGA 기반의 PCIe AIC SSD는 그들의 하드웨어의 어떠한 변경 없이, 10Gbps(Giga bit per second)에서 100Gbps 이상까지의 다른 이더넷 속도로 동작할 수 있다. 하나의 구성에서, PCIe AIC SSD는 단일한 FPGA와 함께 패키징 되는 확장된 2.5” 스몰 폼 팩터 SSD에 있을 수 있다. 단일한 FPGA는 동일한 FPGA 비용을 유지하면서 성능을 증가시키도록 AIC SSD를 지원할 수 있다. 추가적으로, 적어도 하나의 FPGA 및 AIC SSD를 갖는 본 발명의 예시적인 실시예들은 기존 및/또는 새로운 SSD 폼 팩터들 (예를 들어, SFF-TA-1008 또는 표준 PCIe 카드 폼 팩터들, 예를 들어 FH-FL(full-height, full length) 카드 아웃라인, 또는 FH-HL(full-height, half length) 아웃라인)에 들어맞을 수 있다.
본 발명의 다른 구성들은 또한 50G, 100G 이상 및 PCIe 4.0와 같은 기술 발전과 호환될 수 있다. 특히, 본 발명의 다른 구성들은 NVMe 및 NVMe-oF 프로토콜들과 AIC SSD 모두를 지원할 수 있는 시스템을 제공할 수 있다. 나아가, 본 발명의 다른 구성들은, FPGA 기반의 AIC SSD가 배치되는 곳, 그리고 데이터 셋의 특정 장소에 그의 배치 결과로 채택되어야 하는 특성이 무엇인지 이해하는 방식에 관한 개시물을 제공할 수 있다.
일부 예시적인 실시예들에서, 여기에서 개시되는 FPGA 기반의 PCIe AIC SSD는 NVMe 및 NVMe-oF 표준들과 호환되는 다수의 시스템들에 사용될 수 있는 단일한 공용 장치이다. FPGA 기반의 PCIe AIC SSD는 미드-플레인을 경유하여 호스트 장치와 인터페이스 하도록, U.2 또는 SFF-TA-1008과 같은 표준 SSD 커넥터들을 사용할 수 있다. U.2 커넥터들의 사용되지 않는 SAS 핀들은 25Gbps (100G-KR4) 이더넷을 지원하는데 사용될 수 있다. 여기에서 개시되는 FPGA 기반의 AIC SSD는 NVMe 및 NVMe-oF 표준들과 호환되는 다수의 시스템들에 사용될 수 있는 장치일 수 있다. 이와 같이, FPGA 기반의 AIC SSD는 또한 멀티-모드 장치로 지칭될 수 있다.
FPGA 기반의 AIC SSD는 알려진 위치 (예를 들어, 마더보드 또는 미드-플레인으로부터 직접 구동될 수 있는 U.2의 섀시 타입 핀 E6)로부터 제품 정보를 검출함으로써, NVMe 또는 NVMe-oF 표준을 지원할 수 있다. 예를 들어, U.2 커넥터 상의 공급 업체의 정의된 신호 (예를 들어, 모드 신호)는 NVMe 또는 NVMe-oF 모드로 동작할지 여부를 FPGA 드라이브에 보여줄 수 있다. NVMe 섀시에 존재한다면, U.2 커넥터의 PCIe X4 레인은 AIC SSD 컨트롤러 (또는 FPGA 컨트롤러)의 EEPROM에 의하여 구동될 수 있다. 이 경우, 장치는 패브릭 부착된 포트들 (예를 들어, 이더넷 포트들, Fibre Channel 포트들, 또는 Infini Band 포트들)을 디스에이블 할 수 있고, 모든 NVMe 프로토콜들 및 기능들은 지원 또는 인에이블될 수 있다. NVMe-oF 섀시에 존재한다면, 패브릭 부착된 포트들은, 사용되지 않고 이용 가능한 SAS 핀들만 사용함으로써, 인에이블될 수 있다. 또한 일부 실시예들에서, 듀얼 포트 구성들의 동작 시에, 본 발명의 FPGA 기반의 AIC SSD는 FPGA와 독립적으로 PCIe 인터페이스를 자동적으로 구성 및 셋업할 수 있다.
도 1은 일 실시예에 따른 SSD(118)에 연결되는 예시적인 PCIe AIC(100)를 도시한 블록도이다. PCIe AIC(100)는 FPGA(101)를 포함할 수 있다. FPGA(101)는 PCIe 인터페이스 또는 PCIe X8 커넥터(109)를 경유하여 프론트 엔드 U.2 커넥터(106) 및 SSD(118) 사이의 인터페이스를 제공할 수 있다. FPGA(101)는 또한 PCIe AIC(100)에 인접하게 배치되는 복수의 DDR4 메모리들에 연결될 수 있다. FPGA(101)는 나아가 플래시 드라이브들(103A, 103B) 및 클럭 생성기 회로(114)에 연결될 수 있다. 프론트 엔드 U.2 커넥터(106)는, 2개의 고속 멀티플렉서들(110, 112)을 통하고 2개의 내부 PCIe X4 EP(End Point) (104, 105)를 경유하여, FPGA(101)에 연결될 수 있다. FPGA(101)는 나아가 2개의 이더넷 연결들 (예를 들어, Ethernet 1 및 Ethernet 2)을 경유하여 U.2 커넥터(106)에 연결된다. PCIe X4 EP(104) 및 PCIe X4 EP(105)는 멀티플렉서(110)를 통하고 U.2 커넥터(106)를 경유하고 미드-플레인을 거쳐 마더보드로 신호들 또는 패킷들을 전송하는데 사용될 수 있고, 멀티플렉서(112)를 통하고 U.2 커넥터(106)를 경유하고 미드-플레인을 거쳐 마더보드로부터 패킷들을 수신하는데 사용될 수 있다.
FPGA(101)는 2개의 멀티플렉서들(111, 113) 및 PCIe X8 커넥터(109)를 통하고 복수의 PCIe X4 버스들(116A~116F)에 연결되는 PCIe RP(Root Port) (107) 및 PCIe RP(108)를 경유하여 SSD(118)와 인터페이스할 수 있다. 하나의 구성에서, PCIe X8 커넥터(109)는 PCIe AIC(100)의 PCIe AIC PCB를 SSD(118)에 비스듬히 연결하도록 수직 또는 90도 커넥터일 수 있다. 일부 예시적인 실시예들에서, PCIe X8은 8개의 PCIe 익스프레스 레인들의 모음을 나타낸다. 그러므로, PCIe X8 커넥터에 이용 가능한 대역폭은 PCIe X4 커넥터에 이용 가능한 대역폭의 2배일 수 있다. 이와 같이, PCIe X8 커넥터(109)는 PCIe X4 커넥터와 비교하여 (2배까지) 더 높은 IO 처리량 및 대역폭을 지원할 수 있다. PCIe X8 커넥터(109)를 경유하여 FPGA(101)에 연결되는 SSD(118)는 또한 FPGA(101)가 FPGA(101) 및 SSD(118) 사이의 증가된 버스 대역폭으로 인한 높은 가속도를 달성하게 할 수 있다.
일부 예시적인 실시예들에서, SSD(118)에 연결되는 PCIe AIC(100)는 NVMe 및 NVMe-oF 프로토콜들 모두를 지원할 수 있고, NVMe-oF 모드의 경우에, SSD(118)에 연결되는 FPGA 기반의 PCIe AIC(100)는 하드웨어의 어떠한 변경 없이, 10Gbps에서 100Gbps 이상까지의 다른 이더넷 속도로 동작할 수 있다. 일부 예시적인 실시예들에서, SSD(118)에 연결되는 PCIe AIC(100)의 동작 모드 (NVMe 또는 NVMe-oF)는 물리적인 핀 (예를 들어, U.2 커넥터(106)의 핀 E6은 섀시에 사용될 수 있는 프로토콜 (NVMe 또는 NVMe-oF)을 나타내는 섀시 타입 핀으로 사용될 수 있다.)을 사용하거나, 마더보드의 BMC(baseboard management controller)로부터의 대역 내 (공급 업체의 정의된) 커맨드에 의하여, 자체-구성되거나 외부적으로 설정될 수 있다. 이더넷 커넥터들(Ethernet 1 및 Ethernet 2)을 경유하여 이더넷을 통하여 검색된 관리 용이성 정보는 “대역 내” 정보로 언급되며, 반면 하나 이상의 PCIe X4 버스들 (예를 들어, 116A~116F)을 통하여 검색된 관리 용이성 정보는 “대역 외” 정보로 언급된다.
일부 예시적인 실시예들에서, NVMe-oF 장치로 구성되는 경우, 즉, 섀시 타입 핀 E6=하이(high)인 경우, SSD(118)에 연결되는 멀티-모드 PCIe AIC(100)는 단일 포트 NVMe-oF 모드 또는 듀얼 포트 NVMe-oF 모드로 구성될 수 있다. 단일 포트 NVMe-oF 모드에서, U.2 커넥터(106)의 핀 E25는 하이 (어설트되지 않거나 활성화되지 않음)일 수 있고, 듀얼 포트 NVMe-oF 모드에서, U.2 커넥터(106)의 핀 E25는 어설트 로우(asserted low)되거나 활성화될 수 있다. 일부 구성들에서, SSD(118)에 연결되는 PCIe AIC(100)의 다른 동작 속도는 FPGA(101) 내의 하나 이상의 내부 레지스터들에 의하여 제어될 수 있는 미드-플레인 또는 CPLD 상에 배치되는 2개의 추가적인 GPIO (Espeed [1:0])를 사용함으로써, 성취될 수 있다.
일부 예시적인 실시예들에서, 효율적인 스토리지 내(in-storage) 계산은 SSD(118)에 연결되는 FPGA 기반의 PCIe AIC(100)를 사용함으로써 달성될 수 있으며, 데이터-집약적인 처리(의 일부)는 호스트 CPU로부터 데이터 소스 (예를 들어, SSD(118)) 자체 (“스토리지 내 처리”)와 근접한 PCIe AIC(100)로 옮겨질 수 있다. 데이터 소스 (예를 들어, SSD(118))와 근접한 PCIe AIC(100)를 사용한 스토리지 내 처리 접근법은 호스트로 전달되는 데이터 양을 급격하게 줄일 수 있고, 결국 SSD(118)의 데이터 경로를 따르는 모든 구성들 (예를 들어, PCIe AIC(100))이 균형잡힌 방식으로 이용되게 할 수 있다. 일부 예시적인 실시예들에서, 스토리지 내 처리는 스캔 동작에 대해 13배 이상 전통적인 CPU 기반의 처리를 능가한다. 일부 다른 예시적인 실시예들에서, 스토리지 내 처리는 7배까지의 상당한 에너지 절약을 제공할 수 있다.
예를 들어, SSD(118)에 연결되는 PCIe AIC(100)가 하드웨어 가속 모드로 동작하는 경우, 프론트 엔드 U.2 커넥터(106)를 경유하여 PCIe AIC(100)에 연결되는 호스트 장치는 SSD(118)에 저장된 이미지 또는 특정 파일을 필요로 할 수 있다. 이러한 경우에, 호스트 장치는 PCIe AIC(100)의 FPGA(101)로 SSD(118)에 저장된 이미지 또는 특정 파일을 요청하는 커맨드를 전송할 수 있다. 호스트 장치로부터 이러한 커맨드를 수신할 때, 호스트 CPU가 데이터를 처리하고 요청된 이미지 또는 파일을 복구하기 위하여, 호스트 장치로 SSD(118)에 저장된 전체의 데이터 셋을 전송하는 대신에, PCIe AIC(100)와 인접하게 배치되는 하나 이상의 로컬 CPU들이 SSD(118)에 저장된 전체 또는 일부 데이터 셋을 PCIe AIC(100)로 전달할 수 있고, SSD(118)로부터 전달된 데이터를 처리하여 요청된 이미지 또는 특정 파일을 판단할 수 있다. PCIe AIC(100)에 인접하게 배치되는 하나 이상의 로컬 CPU들에 의하여 SSD(118)로부터 전달된 데이터의 처리 동안, SSD(118)로부터 전달된 데이터는 PCIe AIC(100)에 인접하게 배치되는 복수의 DDR4 메모리들에 임시로 저장될 수 있다. 일단 SSD(118)로부터 전달된 데이터가 성공적으로 처리되면, PCIe AIC(100)의 FPGA(101)는 처리 동작의 최종 결과 (예를 들어, 요청된 이미지 또는 파일)를 호스트 장치에 반환할 수 있다. 일부 예시적인 실시예들에서, PCIe AIC(100)에 인접하게 배치되는 하나 이상의 CPU들에 의한 처리 동작의 간헐적인 단계들로부터의 결과들은 PCIe AIC(100)에 인접하게 배치되는 복수의 DDR4 메모리들에 저장될 수 있다.
그러므로, PCIe AIC(100)의 FPGA(101) 및 호스트 장치 사이에 전달되는 데이터 양은 PCIe AIC(100)의 FPGA(101) 및 SSD(118) 사이에 전달되는 데이터 양보다 훨씬 적을 수 있으며, 결국 SSD(118)에 저장된 데이터를 호스트 메모리로 그리고 호스트 메모리에서 호스트 CPU 장치로 전달하는데 요구될 수 있는 대역폭 및 에너지를 절약할 수 있다. 일부 예시적인 실시예들에서, 외부 스토리지 (예를 들어, SSD)에서 호스트 장치로 데이터를 전달하는데 요구되는 에너지는 스토리지 장치 (예를 들어, SSD)와 스토리지 장치에 직접 연결되는 FPGA 사이에 데이터를 전달하는데 요구되는 에너지보다 10,000배 높을 수 있다. 이와 같이, 본 발명의 다른 예시적인 예시들은 스토리지 장치, 예를 들어 SSD(118)에서 데이터를 처리하는 더 빠르고 에너지 효율적인 솔루션을 제공할 수 있다.
도 2는 금속 케이스(202)에서의 장치(200)의 단면도를 도시한다. 장치(200)는 도 1의 SSD(118)에 연결되는 PCIe AIC(100)일 수 있다. 장치(200)는 금속 케이스(202), 제1 TIM (thermal interface material) 레이어(240), SSD 모듈(204), 수직 (90o) PCIe 엣지 커넥터(206), PCIe 리셉터클(receptacle) 커넥터(254), 복수의 금속 지지대들 또는 스탠드오프들 (또는 스크류들) (210, 212, 256, 258), FPGA PCB(216), FPGA(222) 제2 TIM 레이어(236), 및 U.2 커넥터와 같은 프론트 엔드 커넥터(214)를 포함한다.
도 2의 예시적인 실시예에서, 제1 TIM 레이어(240)의 제1 면(246)은 금속 또는 열전도 금속 케이스(202)의 제1 면(242)에 부착 (또는 열 접촉)된다. 제1 TIM 레이어(240)의 제2 면(248)은 SSD 모듈(204)의 제1 면(224)에 부착 (또는 열 접촉)된다. SSD 모듈(204)은 수직 (90o) PCIe 엣지 커넥터(206) 및 PCIe 리셉터클 커넥터(254)를 경유하여 FPGA PCB(216)에 연결된다. 수직 (90o) PCIe 엣지 커넥터(206)의 제1 면(260)은 SSD 모듈(204)의 제2 면(226)에서 SSD 모듈(204)에 부착되고 전기적으로 연결된다. 수직 (90o) PCIe 엣지 커넥터(206)는 직각으로 SSD 모듈(204)에 부착된다. 수직 (90o) PCIe 엣지 커넥터(206)의 제2 면(262)은 PCIe 리셉터클 커넥터(254)의 제1 면(264)에 전기적으로 연결되고 부착된다. PCIe 리셉터클 커넥터(254)의 제2 면(268)은 FPGA PCB(216)의 제1 면(228)에 전기적으로 연결되고 부착된다. 일부 예시적인 실시예들에서, SSD 모듈(204)의 길이는 표준 길이 (예를 들어, 110mm)일 수 있고, 장치(200)의 길이는 110mm보다 길 수 있다. 일례로, FPGA PCB(216)의 길이는 SSD 모듈(204)의 길이 이상일 수 있다.
일례로, SSD 모듈(204)에 구조적 지지대를 제공하는 제1 금속 (또는 다른 적합한 절연재) 지지대 또는 스탠드오프(212)는 FPFA PCB(216)의 제2 면(230) 및 SSD 모듈(204)의 제2 면(226) 사이에 배치될 수 있다. 제1 금속 지지대 또는 스탠드오프(212)는 FPGA PCB(216)의 제4 면(220) 및 SSD 모듈(204)의 제3 면(208)에 인접하게 배치될 수 있다. SSD 모듈(204)에 구조적 지지대를 제공하는 제2 금속 지지대 또는 스탠드오프(210)는 또한 FPGA PCB(216)의 제2 면(230) 및 SSD 모듈(204)의 제2 면(226) 사이에 배치될 수 있다. 제2 금속 지지대 또는 스탠드오프(210)는 FPGA PCB(216)의 제3 면(218)에 인접하게 배치될 수 있다. 제3 금속 스탠드오프(258) 및 제4 금속 스탠드오프(256)는 FPGA PCB(216)의 제2 면(340) 및 금속 케이스(202)의 제2 면(244) 사이에 배치되어 FPGA PCB(216)에 구조적 지지대를 제공할 수 있다.
도 2의 장치에서, FPGA PCB(216)의 제2 면(230)은 FPGA(222)의 제1 면(232)에 부착된다. 일례로, FPGA(222)는 FPGA PCB(216)의 제2 면(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)는, SSD 모듈(204) 및 FPGA(222)의 정상 동작 동안, SSD 모듈(204)과 같은 전자 장치들 및 FPGA(222)에 의하여 발생되는 열을 확산 및 소멸시키는데 사용되어, 생성된 열을 금속 케이스(202)를 경유하여 장치(200) 외부로 전달함으로써, 장치(200)의 과열을 방지할 수 있다. 일례로, 제2 TIM 레이어(236)의 길이는 FPGA(222)의 길이와 같거나 길거나 약간 작을 수 있다. 추가적인 TIM들이 DDR4 메모리와 같은 다른 전자 장치들에 요구될 수 있다. 일부 예시적인 실시예들에서, FPGA(222)의 길이는 80mm이다.
일부 예시적인 실시예들에서, SSD 모듈(204)은 PCIe SSD 모듈 (예를 들어, 도 2에 도시된 PCIe AIC SSD), U.2 SSD 모듈 (예를 들어, 이와 같은 경우에 커넥터(206)는 U.2 커넥터로 대체될 것이다.), 또는 SFF-TA-1008 SSD 모듈 (예를 들어, 이와 같은 경우에 커넥터(206)는 SFF-TA-1008 커넥터로 대체될 것이다.)일 수 있다. 일부 예시적인 실시예들에서, SSD 모듈은 복수의 스토리지 소자들 (예를 들어, NAND), 컨트롤러, 및 하나 이상의 커넥터들을 포함할 수 있다. 일부 예시적인 실시예들에서, SSD 장치는 케이스 내에 SSD 모듈을 포함할 수 있다.
일례로, 프론트 엔드 커넥터(214)는 FPGA PCB(216)에 실장 (또는 부착)되고 전기적으로 연결된다. 하나의 구성에서, 장치(200)는 프론트 엔드 커넥터(214), 예를 들어, U.2 커넥터를 경유하여, 복수의 SAS 포트들 (예를 들어, SAS0 및 SAS1)을 지원할 수 있고, PCIe X4 버스의 4개의 PCIe X4 레인들까지 지원할 수 있다. 2개의 SAS 포트들(SAS0 및 SAS1)은 장치(200)에 의하여 사용되지 않고, NVMe-oF 모드로 동작하는 경우, 장치(200)에 의하여 이더넷 포트들로 사용될 수 있다. 장치(200)는 하드웨어의 어떠한 변경 없이, 10Gbps에서 100Gbps 이상까지의 다른 이더넷 속도로 동작할 수 있다.
일부 예시적인 실시예들에서, SFF-TA-1008 커넥터는 프론트 엔드 커넥터(214)로 사용되어 미드-플레인과 장치(200)를 연결할 수 있다. 일부 예시적인 실시예들에서, 장치(200)의 길이는 110mm 및 142.2mm 사이일 수 있다. 이러한 길이는 장치(200)가 (U.2 커넥터를 대신해서) SFF-TA-1008 커넥터를 지원할 수 있게 하여 미드-플레인과 장치(200)를 연결할 수 있다. 일부 예시적인 실시예들에서, 7.5 x 76 x 104.9mm SFF-TA-1008 커넥터는 25W까지 지원할 수 있고, 7.5 x 76 x 142.2mm SFF-TA-1008 커넥터는 35W까지 지원할 수 있고, 16.8 x 76 x 104.9mm SFF-TA-1008 커넥터는 70W까지 지원할 수 있고, 16.8 x 76 x 142.2mm SFF-TA-1008 커넥터는 70W까지 지원할 수 있다.
도 3은 본 발명의 실시예에 따른, SSD에 부착된 PCIe AIC에서 수행되는 스토리지 내 처리 방법(300)에 대한 순서도를 도시한다. PCIe AIC는 도 1의 PCIe AIC(100)일 수 있고, SSD는 도 1의 SSD(118)일 수 있다.
302 단계에서, PCIe AIC는 프론트 엔드 커넥터를 경유하여 PCIe AIC에 연결되는 호스트 장치로부터 입력되는 커맨드를 수신한다. 예를 들어, PCIe AIC(100)는 프론트 엔드 U.2 커넥터(106)를 경유하여 PCIe AIC(100)에 연결되는 호스트 장치로부터, SSD(118)에 저장된 이미지 또는 특정 파일을 요청하는 커맨드를 수신할 수 있다.
304 단계에서, PCIe AIC는, PCIe AIC에 부착된 SSD가 하드웨어 가속 모드로 동작하는지 (예를 들어, FPGA가 존재하는지) 판단한다. 예를 들어, 호스트 장치로부터 커맨드를 수신할 때, PCIe AIC(100)는 SSD(118)가 하드웨어 가속 모드로 동작하는지 판단할 수 있다.
304 단계에서, PCIe AIC가, PCIe AIC에 부착된 SSD가 하드웨어 가속 모드로 동작하는 것으로 판단한다면, 306 단계에서, PCIe AIC는, PCIe AIC에 부착되는 SSD에 저장된 데이터의 전체 또는 일부 셋을 수신한다. 예를 들어, 호스트 장치로부터 SSD(118)에 저장된 이미지 또는 특정 파일을 요청하는 커맨드를 수신할 때, 호스트 CPU가 데이터를 처리하고 요청된 이미지 또는 파일을 복구하기 위하여, 호스트 장치로 SSD(118)에 저장된 전체의 데이터 셋을 전달하는 대신에, PCIe AIC(100)에 인접하게 배치되는 하나 이상의 로컬 CPU들은 SSD(118)에 저장된 전체 또는 일부 데이터 셋을 PCIe AIC(100)로 전달할 수 있다.
308 단계에서, SSD로부터 전송된 데이터 셋은 PCIe AIC에 인접하게 배치되는 복수의 로컬 메모리들에 저장될 수 있다. 예를 들어, PCIe AIC(100)에 인접하게 배치되는 하나 이상의 로컬 CPU들에 의하여 SSD(118)로부터 전송된 데이터의 처리 동안, SSD(118)로부터 전송된 데이터는 PCIe AIC(100)에 인접하게 배치되는 복수의 DDR4 메모리들에 임시로 저장될 수 있다.
310 단계에서, PCIe AIC는 호스트 장치로부터 수신된 커맨드에 기초하여, PCIe AIC에 부착되는 SSD에 저장된 데이터의 전체 또는 일부 셋을 처리한다. 예를 들어, PCIe AIC(100)는 SSD(118)로부터 전송된 데이터를 처리하여, PCIe AIC(100)에서 수신된 커맨드로 호스트 장치에 의하여 요청된 이미지 또는 특정 파일을 판단할 수 있다.
312 단계에서, PCIe AIC는 호스트 장치로 결과들을 반환할 수 있다. 예를 들어, 일단 SSD(118)로부터 전송된 데이터가 성공적으로 처리된다면, PCIe AIC는 최종 결과 (예를 들어, 요청된 이미지 또는 파일)를 호스트 장치로 반환할 수 있다. 일부 예시적인 실시예들에서, PCIe AIC(100)에 인접하게 배치되는 하나 이상의 로컬 CPU들에 의한 처리 동작의 간헐적인 단계들로부터의 결과들은 PCIe AIC(100)에 인접하게 배치되는 복수의 DDR4 메모리들에 저장될 수 있다.
데이터 소스 (예를 들어, SSD(118))와 근접한 PCIe AIC(100)를 사용한 스토리지 내 처리 접근법 (예를 들어, 방법(300))은 호스트로 전달되는 데이터 양을 급격하게 줄일 수 있고, 결국 SSD(118)의 데이터 경로를 따르는 모든 구성들 (예를 들어, PCIe AIC(100))이 균형잡힌 방식으로 이용되게 할 수 있다. PCIe AIC 및 호스트 장치 사이에 전달되는 데이터 양은 PCIe AIC 및 SSD(118) 사이에 전달되는 데이터 양보다 훨씬 적을 수 있으므로, SSD(118)에 저장된 데이터를 호스트 장치로 전달하는데 요구될 수 있는 대역폭 및 에너지가 절약될 수 있다. 일부 예시적인 실시예들에서, 외부 스토리지 (예를 들어, SSD)에 저장된 데이터를 호스트 장치로 전달하는데 요구되는 에너지는 스토리지 장치 (예를 들어, SSD)와 스토리지 장치에 직접 연결되는 FPGA 사이에 데이터를 전달하는데 요구되는 에너지보다 10,000배 높을 수 있다. 이와 같이, 방법(300)은 스토리지 장치, 예를 들어 SSD(118)에서 데이터를 처리하는 더 빠르고 에너지 효율적인 솔루션을 제공할 수 있다.
도 4는 본 발명의 일부 예시적인 실시예에 따른 어셈블리(400)의 평면도를 도시한다. 어셈블리는 도 2의 금속 케이스(202)에서의 장치(200)일 수 있다. 일부 예시적인 실시예들에서, SSD(402)는 도 2의 SSD 모듈(204)일 수 있고, PCB(406)는 도 2의 FPGA PCB(216)일 수 있고, 커넥터(404)는 도 2의 수직 (90o) PCIe 엣지 커넥터(206)일 수 있고, 리셉터클(408)은 도 2의 PCIe 리셉터클 커넥터(254)일 수 있다. 일부 예시적인 실시예들에서, 커넥터(404)는 SFF-TA-1008 커넥터일 수 있다. 일부 예시적인 실시예들에서, 7.5 x 76 x 104.9mm SFF-TA-1008 커넥터는 25W까지 지원할 수 있고, 7.5 x 76 x 142.2mm SFF-TA-1008 커넥터는 35W까지 지원할 수 있고, 16.8 x 76 x 104.9mm SFF-TA-1008 커넥터는 70W까지 지원할 수 있고, 16.8 x 76 x 142.2mm SFF-TA-1008 커넥터는 70W까지 지원할 수 있다.
“제1”, “제2”, “제3”, 등의 용어들이 다양한 성분들, 구성 요소들, 영역들, 레이어들, 및/또는 섹션들을 설명하도록 여기에서 사용될 수 있으나, 이러한 성분들, 구성 요소들, 영역들, 레이어들, 및/또는 섹션들은 이러한 용어들에 제한되지 않아야 함이 이해될 것이다. 이러한 용어들은 단순히, 하나의 성분, 구성 요소, 영역, 레이어, 또는 섹션을 다른 성분, 구성 요소, 영역, 레이어, 또는 섹션과 구별하도록 사용된다. 따라서, 여기에서 설명되는 제1 성분, 구성 요소, 영역, 레이어, 또는 섹션은 본 발명의 사상 및 범위를 벗어나지 않고, 제2 성분, 구성 요소, 영역, 레이어, 또는 섹션으로 지칭될 수 있다.
“아래에”, “밑에”, “더 낮은”, “하에”, “위에”, “상에” 등과 같이, 공간적으로 상대적인 용어들은, 도면들에 도시되는 바와 같이, 하나의 성분 또는 특징들의 다른 성분(들) 또는 특징(들)에 대한 연관관계를 설명하도록, 설명의 편의상 여기에서 사용될 수 있다. 이러한 공간적으로 상대적인 용어들은, 도면들에 도시된 방향에 덧붙여, 사용 또는 동작 시의 장치의 다른 방향들을 포함하도록 의도되는 것으로 이해될 것이다. 예를 들어, 도면들의 장치가 뒤집힌다면, 다른 성분들 또는 특징들 “아래에” 또는 “밑에” 또는 “하에”로 설명되는 성분들은 다른 성분들 또는 특징들 “위에”로 향할 것이다. 따라서, “아래에” 및 “하에”의 예시적인 용어들은 위와 아래 방향 모두를 포함할 수 있다. 장치는 달리 향하여질 수 있고 (예를 들어, 90도 또는 다른 방향으로 회전), 여기에서 사용되는 공간적으로 상대적인 서술들은 이에 따라 해석되어야 한다. 덧붙여서, 레이어가 두 개의 레이어들 “사이에” 있는 것으로 나타날 때, 이는 단지 두 개의 레이어들 사이에 레이어가 있을 수 있다거나, 하나 이상의 끼워진 레이어들이 또한 존재할 수 있다는 것이 이해될 것이다.
여기에서 사용되는 용어들은 단순히 특정 실시예들을 설명하는 목적을 위한 것이고, 본 발명을 제한하는 것으로 의도되지 않는다. 여기에서 사용되는 “실질적으로”, “대략” 용어들 및 유사한 용어들은 정도에 대한 용어가 아닌, 근사에 대한 용어들로 사용되는 것이고, 당업자에 의하여 인식되는 측정되거나 계산된 값들의 내재된 편차를 설명하는 것으로 의도된다.
여기에서 사용되는 단수 형식들 “a” 및 “an”은, 문맥이 달리 명확하게 지칭하지 않는 한, 복수 형식들을 또한 포함하는 것으로 의도된다. “포함하다” 및/또는 “포함하는” 용어들은, 상세한 설명에 사용될 때, 진술된 특징들, 정수들, 단계들, 동작들, 성분들, 및/또는 구성 요소들의 존재를 구체화하나, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 성분들, 구성 요소들, 및/또는 이의 그룹들의 존재 또는 추가를 제외하는 것은 아님이 더 이해될 것이다. 여기에서 사용되는 “및/또는” 용어는 하나 이상의 연관된 열거 물품들의 임의의 모든 조합들을 포함한다. “적어도 하나”와 같은 표현들은, 성분들의 명단에 선행할 때, 성분들의 완전한 명단을 수정하나, 명단에 대한 개개의 성분들을 수정하지 않는다. 나아가, “할 수 있다”의 사용은, 본 발명의 실시예들을 설명할 때, “본 발명의 하나 이상의 실시예들”을 나타낸다. 또한, “예시적인” 용어는 예시 또는 도시를 나타내는 것으로 의도된다. 여기에서 사용되는 “사용하다”, “사용하는”, 및 “사용되는” 용어들은 각각 “이용하다”, “이용하는”, “이용되는” 용어들과 동의어로 고려될 수 있다.
성분 또는 레이어가 다른 성분 또는 레이어 “상에”, “에 연결되는”, “에 결합되는”, “에 인접한” 것으로 나타날 때, 이는 직접적으로 다른 성분 또는 레이어 “상에”, “에 연결되는”, “에 결합되는”, “에 인접한” 것이거나, 하나 이상의 끼워진 성분들 또는 레이어들이 존재할 수 있다. 반면에, 성분 또는 레이어가 다른 성분 또는 레이어 “상에 직접”, “에 직접 연결되는”, “에 직접 결합되는”, “에 직접 인접한”것으로 나타날 때, 끼워진 성분들 또는 레이어들이 존재하지 않는다.
여기에서 열거되는 수치적인 범위는 열거된 범위 이내에 포함되는 동일한 수치적인 정도의 모든 서브-범위들을 포함하는 것으로 의도된다. 예를 들어, “1.0에서 10.0”의 범위는 열거된 최소값 1.0과 열거된 최대값 10.0 사이의 (및 포함하는) 모든 서브-범위들을 포함하는 것으로 의도된다. 즉, 예를 들어, 2.4에서 7.6과 같이, 최소값은 1.0 이상을 갖고, 최대값은 10.0 이하를 갖는다. 여기에서 열거되는 임의의 최대 수치 제한은 그 안에 포함되는 모든 더 낮은 수치 제한들을 포함하는 것으로 의도되고, 열거되는 최소 수치 제한은 그 안에 포함되는 모든 더 높은 수치 제한들을 포함하는 것으로 의도된다.
여기에서 설명되는 본 발명의 실시예들에 따른 전자 또는 전기 장치들 및/또는 임의의 다른 연관된 장치들 또는 구성 요소들은 임의의 적합한 하드웨어, 펌웨어 (예를 들어, ASIC(application-specific integrated circuit)), 소프트웨어, 또는 소프트웨어, 펌웨어, 및 하드웨어의 조합을 이용하여 구현될 수 있다. 예를 들어, 이러한 장치들의 다양한 구성 요소들은 하나의 집적 회로(IC, integrated circuit) 칩에 형성되거나 또는 분리된 IC 칩들에 형성될 수 있다. 나아가, 이러한 장치들의 다양한 구성 요소들은 연성 인쇄 회로 필름, TCP(tape carrier package), PCB(printed circuit board)로 구현될 수 있거나, 하나의 기판에 형성될 수 있다. 나아가, 이러한 장치들의 다양한 구성 요소들은, 여기에서 설명되는 다양한 기능들을 수행하기 위하여, 하나 이상의 컴퓨팅 장치들에서, 하나 이상의 프로세서들을 운용하고, 컴퓨터 프로그램 명령어들을 실행하고, 다른 시스템 구성 요소들과 상호작용하는 프로세스 또는 쓰레드일 수 있다. 컴퓨터 프로그램 명령어들은 메모리에 저장되며, 이러한 메모리는 예를 들어, RAM(random access memory)과 같이, 표준 메모리 장치를 사용하는 컴퓨팅 장치에 구현될 수 있다. 컴퓨터 프로그램 명령어들은 또한, CD-ROM, 플래시 드라이브 등과 같이, 다른 비-일시적 컴퓨터-판독 가능한 매체에 저장될 수 있다. 또한, 통상의 기술자는 본 발명의 예시적인 실시예들의 사상 및 범위를 벗어남이 없이, 다양한 컴퓨팅 장치들의 기능이 단일 컴퓨팅 장치에 조합 또는 통합될 수 있다거나, 특정 컴퓨팅 장치의 기능이 하나 이상의 다른 컴퓨팅 장치들에 걸쳐 분리될 수 있음을 인식하여야 할 것이다.
FPGA 기반의 AIC SSD를 지원하는 시스템 및 방법의 예시적인 실시예들이 여기에서 구체적으로 설명 및 도시되나, 많은 수정들 및 변형들이 통상의 기술자에 명백할 것이다. 따라서, 본 발명의 원리들에 따라 해석되는 FPGA 기반의 AIC SSD를 지원하는 시스템 및 방법은 여기에서 구체적으로 설명되는 바와 달리 실시될 수 있다. 본 발명은 또한 이하의 청구항들 및 이의 균등물들에서 정의된다.
100: PCIe AIC 101: FPGA
106: 프론트 엔드 U.2 커넥터 109: PCIe X8 커넥터
118: SSD 200: 장치
202: 금속 케이스 204: SSD 모듈
206: 수직 (90o) PCIe 엣지 커넥터 214: 프론트 엔드 커넥터
216: FPGA PCB 222: FPGA
254: PCIe 리셉터클 커넥터 400: 어셈블리
402: SSD 404: 커넥터
406: PCB 408: 리셉터클

Claims (10)

  1. 인쇄 회로 기판(PCB);
    적어도 하나의 SSD 커넥터를 경유하여 상기 PCB의 제1 면에 연결되는 솔리드 스테이트 드라이브(SSD);
    상기 PCB의 제2 면에서 상기 PCB에 부착되는 적어도 하나의 필드 프로그래머블 게이트 어레이(FPGA); 및
    상기 PCB의 제3 면에서 상기 PCB에 부착되는 적어도 하나의 프론트 엔드 커넥터를 포함하되,
    상기 적어도 하나의 프론트 엔드 커넥터를 경유하여 수신되는 커맨드에 기초하여, 상기 SSD에 저장된 데이터를 처리하는 장치.
  2. 제1 항에 있어서,
    상기 SSD는 주변 컴포넌트 인터커넥트 익스프레스(PCIe) 애드-인-카드(AIC) SSD이고,
    상기 적어도 하나의 SSD 커넥터는 제1 SSD 커넥터 및 제2 SSD 커넥터를 포함하되,
    상기 제1 SSD 커넥터는 수직 PCIe 엣지 커넥터이고, 상기 제2 SSD 커넥터는 PCIe 리셉터클 커넥터인 장치.
  3. 제2 항에 있어서,
    상기 수직 PCIe 엣지 커넥터의 제1 면은 상기 PCIe AIC SSD의 제1 면에서 상기 PCIe AIC SSD에 부착 및 전기적으로 연결되고, 상기 수직 PCIe 엣지 커넥터의 제2 면은 상기 PCIe 리셉터클 커넥터의 제1 면에 부착 및 전기적으로 연결되고, 상기 PCIe 리셉터클 커넥터의 제2 면은 상기 PCB의 상기 제1 면에 부착 및 전기적으로 연결되는 장치.
  4. 제1 항에 있어서,
    제1 구조적 지지대, 제2 구조적 지지대, 제3 구조적 지지대, 및 제4 구조적 지지대를 더 포함하되,
    상기 제1 구조적 지지대 및 상기 제2 구조적 지지대는 상기 PCB의 상기 제2 면 및 상기 SSD의 제1 면 사이에 배치되고, 상기 제3 구조적 지지대 및 상기 제4 구조적 지지대는 상기 PCB의 상기 제2 면 및 금속 케이스의 제1 면 사이에 배치되고, 상기 장치는 상기 금속 케이스에 싸여지고, 상기 제1 구조적 지지대, 상기 제2 구조적 지지대, 상기 제3 구조적 지지대, 및 상기 제4 구조적 지지대는 금속 스탠드오프들인 장치.
  5. 제1 항에 있어서,
    상기 SSD의 길이는 110mm이고, 상기 장치의 길이는 110mm 및 142.2mm 사이인 장치.
  6. 제1 항에 있어서,
    상기 적어도 하나의 FPGA의 제1 면은 상기 PCB의 상기 제2 면에 부착되고, 상기 적어도 하나의 FPGA는 상기 PCB에 전기적으로 연결되고 하나 이상의 가속 기능들을 수행하는 장치.
  7. 제6 항에 있어서,
    상기 SSD의 제2 면에 부착되는 제1 인터페이스 레이어, 및 상기 적어도 하나의 FPGA의 제2 면에 부착되는 제2 인터페이스 레이어를 더 포함하되,
    상기 제1 인터페이스 레이어 및 상기 제2 인터페이스 레이어는, 상기 SSD 및 상기 적어도 하나의 FPGA의 동작 동안 상기 SSD 및 상기 적어도 하나의 FPGA에 의하여 생성되는 열을 전달하는데 사용되는 장치.
  8. 처리 장치에서, 호스트 장치로부터 커맨드를 수신하는 단계;
    상기 처리 장치에서, 적어도 하나의 SSD 커넥터를 경유하여 상기 처리 장치에 연결된 솔리드 스테이트 드라이브(SSD)에 저장된 데이터 셋을 수신하는 단계;
    상기 처리 장치에서, 상기 호스트 장치로부터 수신되는 커맨드에 기초하여, 상기 SSD로부터 수신되는 상기 데이터 셋을 처리하는 단계; 및
    상기 처리 장치에서, 상기 SSD로부터 수신되는 상기 데이터 셋의 처리로부터의 하나 이상의 결과들을 상기 호스트 장치로 전송하는 단계를 포함하는 방법.
  9. 제8 항에 있어서,
    상기 처리 장치에 인접하게 배치되는 복수의 스토리지 장치들에 상기 SSD로부터 수신된 상기 데이터 셋을 저장하는 단계를 더 포함하되,
    상기 처리 장치는 필드 프로그래머블 게이트 어레이(FPGA) 장치이고, 상기 처리 장치에 인접하게 배치되는 상기 복수의 스토리지 장치들은 복수의 DDR4 메모리들인 방법.
  10. 제8 항에 있어서,
    상기 SSD는 주변 컴포넌트 인터커넥트 익스프레스(PCIe) 애드-인-카드(AIC) SSD이고,
    상기 적어도 하나의 SSD 커넥터는 제1 SSD 커넥터 및 제2 SSD 커넥터를 포함하되,
    상기 제1 SSD 커넥터는 수직 PCIe 엣지 커넥터이고, 상기 제2 SSD 커넥터는 PCIe 리셉터클 커넥터인 방법.
KR1020190012280A 2018-03-09 2019-01-30 Fpga 기반의 aic ssd를 지원하는 장치 및 방법 KR102403627B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862641253P 2018-03-09 2018-03-09
US62/641,253 2018-03-09
US16/115,338 US10915469B2 (en) 2018-03-09 2018-08-28 Method and apparatus for supporting a field programmable gate array (FPGA) based add-in-card (AIC) solid state drive (SSD)
US16/115,338 2018-08-28

Publications (2)

Publication Number Publication Date
KR20190106676A true KR20190106676A (ko) 2019-09-18
KR102403627B1 KR102403627B1 (ko) 2022-05-30

Family

ID=67842626

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190012280A KR102403627B1 (ko) 2018-03-09 2019-01-30 Fpga 기반의 aic ssd를 지원하는 장치 및 방법

Country Status (3)

Country Link
US (3) US10915469B2 (ko)
KR (1) KR102403627B1 (ko)
CN (1) CN110245105A (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11249651B2 (en) * 2019-10-29 2022-02-15 Samsung Electronics Co., Ltd. System and method for hierarchical sort acceleration near storage
US11593240B2 (en) 2020-02-12 2023-02-28 Samsung Electronics Co., Ltd. Device and method for verifying a component of a storage device
CN111338700B (zh) * 2020-02-24 2022-11-25 杭州迪普科技股份有限公司 加载fpga版本的方法及装置、存储介质
CN111538695A (zh) * 2020-04-22 2020-08-14 上海御渡半导体科技有限公司 一种基于fpga实现的pcie与spi转换适配器及方法
US11442733B2 (en) 2021-01-29 2022-09-13 Seagate Technology Llc Embedded computation instruction performance profiling
CN114996193B (zh) * 2021-06-28 2024-05-03 河南科家创新科技集团有限公司 一种计算机督导及前端处理器系统
CN114003170B (zh) * 2021-09-17 2024-03-19 方一信息科技(上海)有限公司 一种基于FPGA的Raid卡驱动方法
US11880568B2 (en) 2021-11-17 2024-01-23 Seagate Technology Llc On demand configuration of FPGA interfaces
US20240192847A1 (en) * 2022-12-09 2024-06-13 Dell Products L.P. Data storage placement system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170220505A1 (en) * 2016-01-29 2017-08-03 Liqid Inc. ENHANCED PCIe STORAGE DEVICE FORM FACTORS

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8725946B2 (en) * 2009-03-23 2014-05-13 Ocz Storage Solutions, Inc. Mass storage system and method of using hard disk, solid-state media, PCIe edge connector, and raid controller
US9252985B2 (en) 2011-04-04 2016-02-02 Taejin Info Tech Co., Ltd Impedance matching between FPGA and memory modules
KR20130019479A (ko) * 2011-08-17 2013-02-27 주식회사 히타치엘지 데이터 스토리지 코리아 나스 시스템의 통풍 장치
US9128662B2 (en) * 2011-12-23 2015-09-08 Novachips Canada Inc. Solid state drive memory system
US10114784B2 (en) 2014-04-25 2018-10-30 Liqid Inc. Statistical power handling in a scalable storage system
US9501110B2 (en) 2014-06-05 2016-11-22 Liqid Inc. Adjustable data storage drive module carrier assembly
US20150371684A1 (en) * 2014-06-18 2015-12-24 NXGN Data, Inc. Ultra high capacity ssd
US9645902B2 (en) 2014-06-23 2017-05-09 Liqid Inc. Modular switched fabric for data storage systems
CN106462498B (zh) * 2014-06-23 2019-08-02 利奇德股份有限公司 用于数据存储系统的模块化交换架构
CN106339343B (zh) * 2015-07-10 2021-03-26 爱思开海力士有限公司 快速外设组件互联卡
US10467163B1 (en) * 2015-10-27 2019-11-05 Pavilion Data Systems, Inc. Solid state drive multiplexer
CN105677595A (zh) 2016-01-21 2016-06-15 方一信息科技(上海)有限公司 一种同时实现计算加速和pciessd存储的fpga方法
US20170269871A1 (en) 2016-03-16 2017-09-21 Intel Corporation Data storage system with persistent status display for memory storage devices
CN109478166A (zh) 2016-07-08 2019-03-15 深圳市大疆创新科技有限公司 用于存储图像的方法和系统
CN206147640U (zh) * 2016-09-28 2017-05-03 济南浪潮高新科技投资发展有限公司 一种基于国产fpga芯片的加解密电路板
US11288017B2 (en) * 2017-02-23 2022-03-29 Smart IOPS, Inc. Devices, systems, and methods for storing data using distributed control
US10635339B2 (en) * 2017-05-02 2020-04-28 Smart Ipos, Inc. Devices, systems, and methods for reducing storage utilization with data deduplication

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170220505A1 (en) * 2016-01-29 2017-08-03 Liqid Inc. ENHANCED PCIe STORAGE DEVICE FORM FACTORS

Also Published As

Publication number Publication date
US10915469B2 (en) 2021-02-09
US11520714B2 (en) 2022-12-06
US20190278720A1 (en) 2019-09-12
US20210124697A1 (en) 2021-04-29
CN110245105A (zh) 2019-09-17
KR102403627B1 (ko) 2022-05-30
US20230101283A1 (en) 2023-03-30

Similar Documents

Publication Publication Date Title
KR102403627B1 (ko) Fpga 기반의 aic ssd를 지원하는 장치 및 방법
US11741040B2 (en) SFF-TA-100X based multi-mode protocols solid state devices
US10776299B2 (en) Multi-protocol I/O infrastructure for a flexible storage platform
US11016924B2 (en) System and method for supporting multi-mode and/or multi-speed non-volatile memory (NVM) express (NVMe) over fabrics (NVMe-oF) devices
US11018444B2 (en) Multi-mode and/or multi-speed non-volatile memory (NVM) express (NVMe) over fabrics (NVMe-of) device
US9720864B2 (en) Flexible server system
US11194743B2 (en) Method of accessing a dual line SSD device through PCIe EP and network interface simultaneously
US11003607B2 (en) NVMF storage to NIC card coupling over a dedicated bus
US10657077B2 (en) HyperConverged NVMF storage-NIC card
TWI579762B (zh) 固態硬碟控制電路及相關的固態硬碟裝置與固態硬碟存取系統

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant